From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 3/7] drm/i915/tgl: Select master trasconder for MST stream Date: Wed, 27 Nov 2019 21:59:39 +0200 Message-ID: <20191127195939.GO1208@intel.com> References: <20191123005459.155383-1-jose.souza@intel.com> <20191123005459.155383-3-jose.souza@intel.com> <20191126200553.GG1208@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 804696E5B4 for ; Wed, 27 Nov 2019 19:59:43 +0000 (UTC) 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: "Souza, Jose" Cc: "intel-gfx@lists.freedesktop.org" , "De Marchi, Lucas" List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBOb3YgMjYsIDIwMTkgYXQgMDg6MzA6MzFQTSArMDAwMCwgU291emEsIEpvc2Ugd3Jv dGU6Cj4gT24gVHVlLCAyMDE5LTExLTI2IGF0IDIyOjA1ICswMjAwLCBWaWxsZSBTeXJqw6Rsw6Qg d3JvdGU6Cj4gPiBPbiBGcmksIE5vdiAyMiwgMjAxOSBhdCAwNDo1NDo1NVBNIC0wODAwLCBKb3PD qSBSb2JlcnRvIGRlIFNvdXphCj4gPiB3cm90ZToKPiA+ID4gT24gVEdMIHRoZSBibGVuZGluZyBv ZiBhbGwgdGhlIHN0cmVhbXMgaGF2ZSBtb3ZlZCBmcm9tIERESSB0bwo+ID4gPiB0cmFuc2NvZGVy LCBzbyBub3cgZXZlcnkgdHJhbnNjb2RlciB3b3JraW5nIG92ZXIgdGhlIHNhbWUgTVNUIHBvcnQK PiA+ID4gbXVzdAo+ID4gPiBzZW5kIGl0cyBzdHJlYW0gdG8gYSBtYXN0ZXIgdHJhbnNjb2RlciBh bmQgbWFzdGVyIHdpbGwgc2VuZCB0byBEREkKPiA+ID4gcmVzcGVjdGluZyB0aGUgdGltZSBzbG90 cy4KPiA+ID4gCj4gPiA+IEEgcHJldmlvdXMgYXBwcm9hY2ggd2FzIHVzaW5nIHRoZSBsb3dlc3Qg cGlwZS90cmFuc2NvZGVyIGFzIG1hc3Rlcgo+ID4gPiB0cmFuc2NvZGVyIGJ1dCBhcyB0aGUgY29t bWVudCBpbiBza2xfY29tbWl0X21vZGVzZXRfZW5hYmxlcygpCj4gPiA+IHN0YXRlcywKPiA+ID4g dGhhdCBpcyBub3QgYWx3YXlzIHRydWUuCj4gPiA+IAo+ID4gPiBTbyBoZXJlIHByb21vdGluZyB0 aGUgZmlyc3QgcGlwZS90cmFuc2NvZGVyIG9mIHRoZSBzdHJlYW0gYXMKPiA+ID4gbWFzdGVyLgo+ ID4gPiBUaGF0IGNhdXNlZCBzZXZlcmFsIG90aGVyIHByb2JsZW1zIGFzIGR1cmluZyB0aGUgY29t bWl0IHBoYXNlIHRoZQo+ID4gPiBzdGF0ZSBjb21wdXRlZCBzaG91bGQgbm90IGJlIGNoYW5nZWQu Cj4gPiA+IAo+ID4gPiBTbyB0aGUgbWFzdGVyIHRyYW5zY29kZXIgaXMgc3RvcmUgaW50byBpbnRl bF9kcCBhbmQgdGhlIG1vZGVzZXQgaW4KPiA+ID4gc2xhdmUgcGlwZXMvdHJhbnNjb2RlcnMgaXMg Zm9yY2VkIHVzaW5nIG1zdF9tYXN0ZXJfdHJhbnNfcGVuZGluZy4KPiA+ID4gCj4gPiA+IHYyOgo+ ID4gPiAtIGFkZGVkIG1pc3NpbmcgY29uZmlnIGNvbXB1dGUgdG8gdHJpZ2dlciBmdWxsbW9kZXNl dCBpbiBzbGF2ZQo+ID4gPiB0cmFuc2NvZGVycwo+ID4gPiAKPiA+ID4gQlNwZWM6IDUwNDkzCj4g PiA+IEJTcGVjOiA0OTE5MAo+ID4gPiBDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxh QGxpbnV4LmludGVsLmNvbT4KPiA+ID4gQ2M6IEx1Y2FzIERlIE1hcmNoaSA8bHVjYXMuZGVtYXJj aGlAaW50ZWwuY29tPgo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBKb3PDqSBSb2JlcnRvIGRlIFNvdXph IDxqb3NlLnNvdXphQGludGVsLmNvbT4KPiA+ID4gLS0tCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jICAgICAgfCAgMTAgKy0KPiA+ID4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jICB8ICA1OCArKysrKystCj4gPiA+ICAu Li4vZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmggICAgfCAgIDMgKwo+ID4g PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jICAgICAgIHwgICAxICsK PiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmMgICB8IDE0 OQo+ID4gPiArKysrKysrKysrKysrKysrKy0KPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZHBfbXN0LmggICB8ICAgMiArCj4gPiA+ICA2IGZpbGVzIGNoYW5nZWQsIDIx NiBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQo+ID4gPiAKPiA+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMKPiA+ID4gYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jCj4gPiA+IGluZGV4IGE5NzY2MDZkMjFj Ny4uZDJmMGQzOTNkM2VlIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2RkaS5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfZGRpLmMKPiA+ID4gQEAgLTM1LDYgKzM1LDcgQEAKPiA+ID4gICNpbmNsdWRlICJp bnRlbF9kaXNwbGF5X3R5cGVzLmgiCj4gPiA+ICAjaW5jbHVkZSAiaW50ZWxfZHAuaCIKPiA+ID4g ICNpbmNsdWRlICJpbnRlbF9kcF9saW5rX3RyYWluaW5nLmgiCj4gPiA+ICsjaW5jbHVkZSAiaW50 ZWxfZHBfbXN0LmgiCj4gPiA+ICAjaW5jbHVkZSAiaW50ZWxfZHBpb19waHkuaCIKPiA+ID4gICNp bmNsdWRlICJpbnRlbF9kc2kuaCIKPiA+ID4gICNpbmNsdWRlICJpbnRlbF9maWZvX3VuZGVycnVu LmgiCj4gPiA+IEBAIC0xOTAzLDggKzE5MDQsMTMgQEAgaW50ZWxfZGRpX3RyYW5zY29kZXJfZnVu Y19yZWdfdmFsX2dldChjb25zdAo+ID4gPiBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKPiA+ID4gIAkJdGVtcCB8PSBUUkFOU19ERElfTU9ERV9TRUxFQ1RfRFBfTVNUOwo+ID4g PiAgCQl0ZW1wIHw9IERESV9QT1JUX1dJRFRIKGNydGNfc3RhdGUtPmxhbmVfY291bnQpOwo+ID4g PiAgCj4gPiA+IC0JCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEyKQo+ID4gPiAtCQkJdGVt cCB8PQo+ID4gPiBUUkFOU19ERElfTVNUX1RSQU5TUE9SVF9TRUxFQ1QoY3J0Y19zdGF0ZS0+Y3B1 X3RyYW5zY29kZXIpOwo+ID4gPiArCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMikgewo+ ID4gPiArCQkJZW51bSB0cmFuc2NvZGVyIG1hc3RlcjsKPiA+ID4gKwo+ID4gPiArCQkJbWFzdGVy ID0KPiA+ID4gaW50ZWxfZHBfbXN0X21hc3Rlcl90cmFuc19nZXQoZW5jb2Rlcik7Cj4gPiAKPiA+ IFdoeSBpc24ndCB0aGF0IGp1c3Qgc3RvcmVkIGluIHRoZSBjcnRjIHN0YXRlIGxpa2UgZXZlcnl0 aGluZyBlbHNlPwo+ID4gCj4gPiBJJ20gdGhpbmtpbmcgd2Ugc2hvdWxkIG1heWJlIGRvIGl0IGp1 c3QgbGlrZSBwb3J0IHN5bmMgYW5kIGhhdmUgYm90aAo+ID4gbWFzdGVyICsgc2xhdmVfbWFzay4g VGhhdCB3YXkgaXQgc2hvdWxkIGJlIHByZXR0eSB0cml2aWFsIHRvIGFkZCBhbGwKPiA+IHRoZSBy ZWxldmFudCBjcnRjcyB0byB0aGUgc3RhdGUgd2hlbiBuZWVkZWQuCj4gCj4gSSBndWVzcyBwb3J0 IHN5bmMgaXMgbm90IGRvaW5nIHRoZSByaWdodCB0aGluZyBhbmQgaXQgY291bGQgY2F1c2UKPiB1 bmRlcnJ1bnMuCj4gV2hlbiBpdCBpcyBnb2luZyB0byBlbmFibGUgdGhlIG1hc3RlciBDUlRDIG9m IHRoZSBwb3J0IHN5bmMgaXQgZm9yY2libHkKPiBlbmFibGVzIHRoZSBzbGF2ZSBmaXJzdCwgd2hh dCBjb3VsZCBjYXVzZSB1bmRlcnJ1bnMgYmVjYXVzZSBvZiBvdmVybGFwCj4gaW4gZGRiIGFsbG9j YXRpb25zKHRoYXQgaXMgd2hhdCBJIHVuZGVyc3Rvb2QgZnJvbSB0aGUgY29tbWVudCBpbgo+IHNr bF9jb21taXRfbW9kZXNldF9lbmFibGVzKCkpLgoKTm90IG5lY2Vzc2FyaWx5IGp1c3QgdW5kZXJy dW5zIGJ1dCBldmVuIGEgc3lzdGVtIGhhbmcuIFRoZSBmaXggc2hvdWxkIGJlCmEgdHJpdmlhbCAi Y2hlY2sgdGhlIHNsYXZlIGZvciBkZGIgb3ZlcmxhcCBhcyB3ZWxsIiwgYnV0IGFwcGFyZW50bHkg SQpmYWlsZWQgYXQgY29udmljaW5nIHBlb3BsZSB0byBkbyB0aGF0LgoKSSd2ZSBhY3R1YWxseSBi ZWVuIHBvbmRlcmluZyBhYm91dCBkZWNvdXBsaW5nIHRoZSBwbGFuZSB1cGRhdGVzIGZyb20KdGhl IGNydGMgZW5hYmxlIHN0dWZmIGVudGlyZWx5LiBBdCBsZWFzdCB0aGVvcmV0aWNhbGx5IGNydGMg ZW5hYmxlCnNob3VsZCBiZSBhYmxlIHRvIGV4Y3V0ZSBpbiBhbnkgb3JkZXIgYXMgbG9uZyB3ZSBk b24ndCBlbmFibGUgYW55Cm5ldyBwbGFuZXMuCgpCdXQgbm9uZSBvZiB0aGF0IHJlYWxseSBtYXR0 ZXJzIGZvciB0aGUgZGlzY3Vzc2lvbiBhdCBoYW5kLiBUaG91Z2gKdGhlcmUgYXJlIG90aGVyIHBy b2JsZW1zIHdpdGggdGhlIHBvcnQgc3luYyBzdHVmZiB0aGF0IHdvdWxkIG5lZWQKdG8gYmUgaGFu ZGxlZCBiZXR0ZXIuIEVnLiBJIHRoaW5rIGl0IG5vdyBhZGRzIGJvdGggY3J0Y3MgdG8gdGhlIHN0 YXRlCmFsd2F5cyB3aGljaCBpcyBnb2luZyB0byBjdXQgdGhlIGZwcyBpbiBoYWxmLiBBbHNvIHRo ZSBwbGFjZSB3aGVyZQppdCBkb2VzIHRoYXQgc3R1ZmYgaXMgcmF0aGVyIHN1c3BpY2lvdXMuIEFs bCB0aGF0IHN0dWZmIHNob3VsZCBiZQpzb21ld2hlcmUgYSBiaXQgaGlnaGVyIHVwIElNTy4KCj4g Cj4gU28gZm9yIE1TVCB3ZSBvbmx5IGtub3cgd2hvIGlzIHRoZSBtYXN0ZXIgaW4gdGhlIGNvbW1p dCBwaGFzZSBhbmQgYXQKPiB0aGlzIHBvaW50IHdlIHNob3VsZCBub3QgbW9kaWZ5IHRoZSBjb21w dXRlZCBzdGF0ZS4KCkknbSBub3Qgc3VnZ2VzdGluZyBtb2RpZnlpbmcgYW55dGhpbmcgZHVyaW5n IGNvbW1pdCBwaGFzZS4gSSB0aGluawp5b3UgYXJlIGVmZmVjdGllbHkgZG9pbmcgdGhhdCByaWdo dCBub3cgYnkgc3R1ZmZpbmcgdGhhdCBtc3QgbWFzdGVyCnRyYW5zY29kZXIgaW50byBpbnRlbF9k cC4KCj4gCj4gPiAKPiA+ID4gKwkJCVdBUk5fT04obWFzdGVyID09IElOVkFMSURfVFJBTlNDT0RF Uik7Cj4gPiA+ICsJCQl0ZW1wIHw9IFRSQU5TX0RESV9NU1RfVFJBTlNQT1JUX1NFTEVDVChtYXN0 ZXIpOwo+ID4gPiArCQl9Cj4gPiA+ICAJfSBlbHNlIHsKPiA+ID4gIAkJdGVtcCB8PSBUUkFOU19E RElfTU9ERV9TRUxFQ1RfRFBfU1NUOwo+ID4gPiAgCQl0ZW1wIHw9IERESV9QT1JUX1dJRFRIKGNy dGNfc3RhdGUtPmxhbmVfY291bnQpOwo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiBpbmRleCA4MDFiOTc1YzdkMzkuLjM1YTU5 MTA4MTk0ZSAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kaXNwbGF5LmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kaXNwbGF5LmMKPiA+ID4gQEAgLTQ2LDYgKzQ2LDcgQEAKPiA+ID4gICNpbmNsdWRlICJk aXNwbGF5L2ludGVsX2NydC5oIgo+ID4gPiAgI2luY2x1ZGUgImRpc3BsYXkvaW50ZWxfZGRpLmgi Cj4gPiA+ICAjaW5jbHVkZSAiZGlzcGxheS9pbnRlbF9kcC5oIgo+ID4gPiArI2luY2x1ZGUgImRp c3BsYXkvaW50ZWxfZHBfbXN0LmgiCj4gPiA+ICAjaW5jbHVkZSAiZGlzcGxheS9pbnRlbF9kc2ku aCIKPiA+ID4gICNpbmNsdWRlICJkaXNwbGF5L2ludGVsX2R2by5oIgo+ID4gPiAgI2luY2x1ZGUg ImRpc3BsYXkvaW50ZWxfZ21idXMuaCIKPiA+ID4gQEAgLTUzNjUsNiArNTM2NiwzNiBAQCBpbnRl bF9nZXRfY3J0Y19uZXdfZW5jb2Rlcihjb25zdCBzdHJ1Y3QKPiA+ID4gaW50ZWxfYXRvbWljX3N0 YXRlICpzdGF0ZSwKPiA+ID4gIAlyZXR1cm4gZW5jb2RlcjsKPiA+ID4gIH0KPiA+ID4gIAo+ID4g PiArLyoKPiA+ID4gKyAqIEZpbmRzIHRoZSBlbmNvZGVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2 ZW4gQ1JUQy4gVGhpcyBjYW4gb25seQo+ID4gPiBiZQo+ID4gPiArICogdXNlZCB3aGVuIHdlIGtu b3cgdGhhdCB0aGUgQ1JUQyBpc24ndCBmZWVkaW5nIG11bHRpcGxlCj4gPiA+IGVuY29kZXJzIQo+ ID4gPiArICovCj4gPiA+ICtzdGF0aWMgc3RydWN0IGludGVsX2VuY29kZXIgKgo+ID4gPiAraW50 ZWxfZ2V0X2NydGNfb2xkX2VuY29kZXIoY29uc3Qgc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAq c3RhdGUsCj4gPiA+ICsJCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKPiA+ID4gK3sKPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiA+ID4gKwljb25zdCBzdHJ1Y3QgZHJtX2Nv bm5lY3Rvcl9zdGF0ZSAqY29ubmVjdG9yX3N0YXRlOwo+ID4gPiArCWNvbnN0IHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3I7Cj4gPiA+ICsJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIgPSBOVUxMOwo+ID4gPiArCWludCBudW1fZW5jb2RlcnMgPSAwOwo+ID4gPiArCWludCBpOwo+ ID4gPiArCj4gPiA+ICsJZm9yX2VhY2hfb2xkX2Nvbm5lY3Rvcl9pbl9zdGF0ZSgmc3RhdGUtPmJh c2UsIGNvbm5lY3RvciwKPiA+ID4gKwkJCQkJY29ubmVjdG9yX3N0YXRlLCBpKSB7Cj4gPiA+ICsJ CWlmIChjb25uZWN0b3Jfc3RhdGUtPmNydGMgIT0gJmNydGMtPmJhc2UpCj4gPiA+ICsJCQljb250 aW51ZTsKPiA+ID4gKwo+ID4gPiArCQllbmNvZGVyID0gdG9faW50ZWxfZW5jb2Rlcihjb25uZWN0 b3Jfc3RhdGUtCj4gPiA+ID5iZXN0X2VuY29kZXIpOwo+ID4gPiArCQludW1fZW5jb2RlcnMrKzsK PiA+ID4gKwl9Cj4gPiA+ICsKPiA+ID4gKwlXQVJOKG51bV9lbmNvZGVycyAhPSAxLCAiJWQgZW5j b2RlcnMgZm9yIHBpcGUgJWNcbiIsCj4gPiA+ICsJICAgICBudW1fZW5jb2RlcnMsIHBpcGVfbmFt ZShjcnRjLT5waXBlKSk7Cj4gPiA+ICsKPiA+ID4gKwlyZXR1cm4gZW5jb2RlcjsKPiA+ID4gK30K PiA+IAo+ID4gQXJnaC4gSSB3YXMgaG9waW5nIHRvIGtpbGwgdGhlIG90aGVyIG9uZSBvZiB0aGVz ZS4gR290IGl0IGRvd24gdG8gMQo+ID4gcmVtYWluaW5nIHVzZXIgbm93IEkgdGhpbmsuCj4gPiAK PiA+ID4gKwo+ID4gPiAgLyoKPiA+ID4gICAqIEVuYWJsZSBQQ0ggcmVzb3VyY2VzIHJlcXVpcmVk IGZvciBQQ0ggcG9ydHM6Cj4gPiA+ICAgKiAgIC0gUENIIFBMTHMKPiA+ID4gQEAgLTEzMzY1LDYg KzEzMzk2LDEyIEBAIGludGVsX3BpcGVfY29uZmlnX2NvbXBhcmUoY29uc3Qgc3RydWN0Cj4gPiA+ IGludGVsX2NydGNfc3RhdGUgKmN1cnJlbnRfY29uZmlnLAo+ID4gPiAgI3VuZGVmIFBJUEVfQ09O Rl9DSEVDS19DT0xPUl9MVVQKPiA+ID4gICN1bmRlZiBQSVBFX0NPTkZfUVVJUksKPiA+ID4gIAo+ ID4gPiArCWlmIChmYXN0c2V0ICYmIHBpcGVfY29uZmlnLT5tc3RfbWFzdGVyX3RyYW5zX3BlbmRp bmcpIHsKPiA+ID4gKwkJRFJNX0RFQlVHX0tNUygiW0NSVEM6JWQ6JXNdIGZhc3RzZXQgbWlzbWF0 Y2ggaW4KPiA+ID4gbXN0X21hc3Rlcl90cmFuc1xuIiwKPiA+ID4gKwkJCSAgICAgIGNydGMtPmJh c2UuYmFzZS5pZCwgY3J0Yy0+YmFzZS5uYW1lKTsKPiA+ID4gKwkJcmV0ID0gZmFsc2U7Cj4gPiA+ ICsJfQo+ID4gPiArCj4gPiA+ICAJcmV0dXJuIHJldDsKPiA+ID4gIH0KPiA+ID4gIAo+ID4gPiBA QCAtMTQ0NDksMjIgKzE0NDg2LDM1IEBAIHN0YXRpYyB2b2lkCj4gPiA+IGludGVsX2NvbW1pdF9t b2Rlc2V0X2Rpc2FibGVzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ID4gPiAg CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOwo+ID4gPiAgCWludCBpOwo+ID4gPiAgCj4gPiA+IC0J LyogT25seSBkaXNhYmxlIHBvcnQgc3luYyBzbGF2ZXMgKi8KPiA+ID4gKwkvKiBPbmx5IGRpc2Fi bGUgcG9ydCBzeW5jIGFuZCBNU1Qgc2xhdmVzICovCj4gPiA+ICAJZm9yX2VhY2hfb2xkbmV3X2lu dGVsX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsCj4gPiA+IG9sZF9jcnRjX3N0YXRlLAo+ID4g PiAgCQkJCQkgICAgbmV3X2NydGNfc3RhdGUsIGkpIHsKPiA+ID4gIAkJaWYgKCFuZWVkc19tb2Rl c2V0KG5ld19jcnRjX3N0YXRlKSB8fCAhY3J0Yy0+YWN0aXZlKQo+ID4gPiAgCQkJY29udGludWU7 Cj4gPiA+ICAKPiA+ID4gKwkJaWYgKCFpc190cmFuc19wb3J0X3N5bmNfbW9kZShuZXdfY3J0Y19z dGF0ZSkgJiYKPiA+ID4gKwkJICAgICFpbnRlbF9jcnRjX2hhc190eXBlKG9sZF9jcnRjX3N0YXRl LAo+ID4gPiBJTlRFTF9PVVRQVVRfRFBfTVNUKSkKPiA+ID4gKwkJCWNvbnRpbnVlOwo+ID4gPiAr Cj4gPiA+ICAJCS8qIEluIGNhc2Ugb2YgVHJhbnNjb2RlciBwb3J0IFN5bmMgbWFzdGVyIHNsYXZl IENSVENzCj4gPiA+IGNhbiBiZQo+ID4gPiAgCQkgKiBhc3NpZ25lZCBpbiBhbnkgb3JkZXIgYW5k IHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQKPiA+ID4gIAkJICogc2xhdmUgQ1JUQ3MgYXJlIGRp c2FibGVkIGZpcnN0IGFuZCB0aGVuIG1hc3RlciBDUlRDCj4gPiA+IHNpbmNlCj4gPiA+ICAJCSAq IFNsYXZlIHZibGFua3MgYXJlIG1hc2tlZCB0aWxsIE1hc3RlciBWYmxhbmtzLgo+ID4gPiAgCQkg Ki8KPiA+ID4gLQkJaWYgKCFpc190cmFuc19wb3J0X3N5bmNfbW9kZShvbGRfY3J0Y19zdGF0ZSkp Cj4gPiA+IC0JCQljb250aW51ZTsKPiA+ID4gLQkJaWYgKGlzX3RyYW5zX3BvcnRfc3luY19tYXN0 ZXIob2xkX2NydGNfc3RhdGUpKQo+ID4gPiArCQlpZiAoaXNfdHJhbnNfcG9ydF9zeW5jX21vZGUo bmV3X2NydGNfc3RhdGUpICYmCj4gPiA+ICsJCSAgICBpc190cmFuc19wb3J0X3N5bmNfbWFzdGVy KG5ld19jcnRjX3N0YXRlKSkKPiA+ID4gIAkJCWNvbnRpbnVlOwo+ID4gPiAgCj4gPiA+ICsJCWlm IChpbnRlbF9jcnRjX2hhc190eXBlKG9sZF9jcnRjX3N0YXRlLAo+ID4gPiBJTlRFTF9PVVRQVVRf RFBfTVNUKSkgewo+ID4gPiArCQkJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7Cj4gPiA+ ICsKPiA+ID4gKwkJCWVuY29kZXIgPSBpbnRlbF9nZXRfY3J0Y19vbGRfZW5jb2RlcihzdGF0ZSwK PiA+ID4gKwkJCQkJCQkgICAgIG9sZF9jcnRjX3MKPiA+ID4gdGF0ZSk7Cj4gPiA+ICsJCQlpZiAo aW50ZWxfZHBfbXN0X21hc3Rlcl90cmFuc19nZXQoZW5jb2RlcikgPT0KPiA+ID4gKwkJCSAgICBv bGRfY3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29kZXIpCj4gPiA+ICsJCQkJY29udGludWU7Cj4gPiA+ ICsJCX0KPiA+ID4gKwo+ID4gPiAgCQlpbnRlbF9wcmVfcGxhbmVfdXBkYXRlKG9sZF9jcnRjX3N0 YXRlLCBuZXdfY3J0Y19zdGF0ZSk7Cj4gPiA+ICAJCWludGVsX29sZF9jcnRjX3N0YXRlX2Rpc2Fi bGVzKHN0YXRlLCBvbGRfY3J0Y19zdGF0ZSwKPiA+ID4gIAkJCQkJICAgICAgbmV3X2NydGNfc3Rh dGUsIGNydGMpOwo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaAo+ID4gPiBpbmRleCA4M2VhMDQxNDliNzcuLjIzZDc0 N2NkY2E2NCAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kaXNwbGF5X3R5cGVzLmgKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKPiA+ID4gQEAgLTEwNTIsNiArMTA1Miw4IEBAIHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlIHsKPiA+ID4gIAkvKiBQb2ludGVyIHRvIG1hc3RlciB0cmFu c2NvZGVyIGluIGNhc2Ugb2YgdGlsZWQgZGlzcGxheXMgKi8KPiA+ID4gIAllbnVtIHRyYW5zY29k ZXIgbWFzdGVyX3RyYW5zY29kZXI7Cj4gPiA+ICAKPiA+ID4gKwlib29sIG1zdF9tYXN0ZXJfdHJh bnNfcGVuZGluZzsKPiA+ID4gKwo+ID4gPiAgCS8qIEJpdG1hc2sgdG8gaW5kaWNhdGUgc2xhdmVz IGF0dGFjaGVkICovCj4gPiA+ICAJdTggc3luY19tb2RlX3NsYXZlc19tYXNrOwo+ID4gPiAgfTsK PiA+ID4gQEAgLTEyODQsNiArMTI4Niw3IEBAIHN0cnVjdCBpbnRlbF9kcCB7Cj4gPiA+ICAJYm9v bCBjYW5fbXN0OyAvKiB0aGlzIHBvcnQgc3VwcG9ydHMgbXN0ICovCj4gPiA+ICAJYm9vbCBpc19t c3Q7Cj4gPiA+ICAJaW50IGFjdGl2ZV9tc3RfbGlua3M7Cj4gPiA+ICsJZW51bSB0cmFuc2NvZGVy IG1zdF9tYXN0ZXJfdHJhbnNjb2RlcjsgLyogT25seSB1c2VkIGluIFRHTCsgKi8KPiA+ID4gIAo+ ID4gPiAgCS8qCj4gPiA+ICAJICogRFBfVFBfKiByZWdpc3RlcnMgbWF5IGJlIGVpdGhlciBvbiBw b3J0IG9yIHRyYW5zY29kZXIKPiA+ID4gcmVnaXN0ZXIgc3BhY2UuCj4gPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMKPiA+ID4gYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMKPiA+ID4gaW5kZXggMzEyMzk1OGUyMDgx Li5jZWZmNjkwMTQ1MWEgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZHAuYwo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2RwLmMKPiA+ID4gQEAgLTc0MjQsNiArNzQyNCw3IEBAIGludGVsX2RwX2luaXRfY29u bmVjdG9yKHN0cnVjdAo+ID4gPiBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAo+ ID4gPiAgCWludGVsX2RwLT5yZXNldF9saW5rX3BhcmFtcyA9IHRydWU7Cj4gPiA+ICAJaW50ZWxf ZHAtPnBwc19waXBlID0gSU5WQUxJRF9QSVBFOwo+ID4gPiAgCWludGVsX2RwLT5hY3RpdmVfcGlw ZSA9IElOVkFMSURfUElQRTsKPiA+ID4gKwlpbnRlbF9kcC0+bXN0X21hc3Rlcl90cmFuc2NvZGVy ID0gSU5WQUxJRF9UUkFOU0NPREVSOwo+ID4gPiAgCj4gPiA+ICAJLyogUHJlc2VydmUgdGhlIGN1 cnJlbnQgaHcgc3RhdGUuICovCj4gPiA+ICAJaW50ZWxfZHAtPkRQID0gSTkxNV9SRUFEKGludGVs X2RwLT5vdXRwdXRfcmVnKTsKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmMKPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2RwX21zdC5jCj4gPiA+IGluZGV4IGY4YTM1MDM1OTM0Ni4uOTczMWMzYzFkM2Yy IDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rw X21zdC5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBf bXN0LmMKPiA+ID4gQEAgLTg3LDYgKzg3LDQ3IEBAIHN0YXRpYyBpbnQKPiA+ID4gaW50ZWxfZHBf bXN0X2NvbXB1dGVfbGlua19jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4g PiA+ICAJcmV0dXJuIDA7Cj4gPiA+ICB9Cj4gPiA+ICAKPiA+ID4gK3N0YXRpYyBpbnQKPiA+ID4g K2ludGVsX2RwX21zdF9tYXN0ZXJfdHJhbnNfY29tcHV0ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKPiA+ID4gKwkJCQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZp ZywKPiA+ID4gKwkJCQkgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlCj4gPiA+ICpjb25uX3N0 YXRlKQo+ID4gPiArewo+ID4gPiArCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0K PiA+ID4gdG9faW50ZWxfYXRvbWljX3N0YXRlKHBpcGVfY29uZmlnLT51YXBpLnN0YXRlKTsKPiA+ ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXIt PmJhc2UuZGV2KTsKPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3Rh dGU7Cj4gPiA+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGM7Cj4gPiA+ICsJZW51bSB0cmFuc2Nv ZGVyIG1hc3RlcjsKPiA+ID4gKwlpbnQgaTsKPiA+ID4gKwo+ID4gPiArCWlmIChJTlRFTF9HRU4o ZGV2X3ByaXYpIDwgMTIpCj4gPiA+ICsJCXJldHVybiAwOwo+ID4gPiArCj4gPiA+ICsJaWYgKCFj b25uX3N0YXRlLT5jcnRjKQo+ID4gPiArCQlyZXR1cm4gMDsKPiA+ID4gKwo+ID4gPiArCW1hc3Rl ciA9IGludGVsX2RwX21zdF9tYXN0ZXJfdHJhbnNfZ2V0KGVuY29kZXIpOwo+ID4gPiArCWlmICht YXN0ZXIgPT0gSU5WQUxJRF9UUkFOU0NPREVSKQo+ID4gPiArCQlyZXR1cm4gMDsKPiA+ID4gKwo+ ID4gPiArCWZvcl9lYWNoX25ld19pbnRlbF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBuZXdf Y3J0Y19zdGF0ZSwKPiA+ID4gaSkgewo+ID4gPiArCQkvKgo+ID4gPiArCQkgKiBjcHVfdHJhbnNj b2RlciBpcyBzZXQgd2hlbiBjb21wdXRpbmcgQ1JUQyBzdGF0ZSBpZgo+ID4gPiBpdCB3aWxsCj4g PiA+ICsJCSAqIGJlIGRpc2FibGVkIGl0IHdpbGwgbm90IGhhcHBlbiwgc28gY2hlY2tpbmcgcGlw ZQo+ID4gPiBpbnN0ZWFkCj4gPiA+ICsJCSAqLwo+ID4gPiArCQlpZiAoY3J0Yy0+cGlwZSAhPSAo ZW51bSBwaXBlKW1hc3RlcikKPiA+ID4gKwkJCWNvbnRpbnVlOwo+ID4gPiArCj4gPiA+ICsJCWlm ICghZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQoJm5ld19jcnRjX3N0YXRlLQo+ID4gPiA+ dWFwaSkgJiYKPiA+ID4gKwkJICAgIG5ld19jcnRjX3N0YXRlLT51YXBpLmVuYWJsZSkKPiA+ID4g KwkJCWNvbnRpbnVlOwo+ID4gPiArCj4gPiA+ICsJCXBpcGVfY29uZmlnLT5tc3RfbWFzdGVyX3Ry YW5zX3BlbmRpbmcgPSB0cnVlOwo+ID4gPiArCQlicmVhazsKPiA+ID4gKwl9Cj4gPiA+ICsKPiA+ ID4gKwlyZXR1cm4gMDsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiAgc3RhdGljIGludCBpbnRlbF9k cF9tc3RfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIKPiA+ID4gKmVuY29kZXIs Cj4gPiA+ICAJCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlCj4gPiA+ICpwaXBlX2Nv bmZpZywKPiA+ID4gIAkJCQkgICAgICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUKPiA+ID4g KmNvbm5fc3RhdGUpCj4gPiA+IEBAIC0xNTQsNiArMTk1LDk1IEBAIHN0YXRpYyBpbnQgaW50ZWxf ZHBfbXN0X2NvbXB1dGVfY29uZmlnKHN0cnVjdAo+ID4gPiBpbnRlbF9lbmNvZGVyICplbmNvZGVy LAo+ID4gPiAgCj4gPiA+ICAJaW50ZWxfZGRpX2NvbXB1dGVfbWluX3ZvbHRhZ2VfbGV2ZWwoZGV2 X3ByaXYsIHBpcGVfY29uZmlnKTsKPiA+ID4gIAo+ID4gPiArCXJldCA9IGludGVsX2RwX21zdF9t YXN0ZXJfdHJhbnNfY29tcHV0ZShlbmNvZGVyLCBwaXBlX2NvbmZpZywKPiA+ID4gKwkJCQkJCWNv bm5fc3RhdGUpOwo+ID4gPiArCWlmIChyZXQpCj4gPiA+ICsJCXJldHVybiByZXQ7Cj4gPiA+ICsK PiA+ID4gKwlyZXR1cm4gMDsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiArc3RhdGljIGludAo+ID4g PiAraW50ZWxfZHBfbXN0X2F0b21pY19tYXN0ZXJfdHJhbnNfY2hlY2soc3RydWN0IGRybV9jb25u ZWN0b3IKPiA+ID4gKmNvbm5lY3RvciwKPiA+ID4gKwkJCQkgICAgICAgc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKnN0YXRlKQo+ID4gPiArewo+ID4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5kZXYpOwo+ID4gPiArCXN0cnVjdCBpbnRl bF9jb25uZWN0b3IgKmludGVsX2Nvbm4gPQo+ID4gPiB0b19pbnRlbF9jb25uZWN0b3IoY29ubmVj dG9yKTsKPiA+ID4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqbmV3X2Nvbm5fc3RhdGUs ICpvbGRfY29ubl9zdGF0ZTsKPiA+ID4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXIg Y29ubl9saXN0X2l0ZXI7Cj4gPiA+ICsJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmludGVsX2Ny dGNfc3RhdGU7Cj4gPiA+ICsJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwo+ID4g PiArCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uX2l0ZXI7Cj4gPiA+ICsKPiA+ID4gKwlpZiAo SU5URUxfR0VOKGRldl9wcml2KSA8IDEyKQo+ID4gPiArCQlyZXR1cm4gMDsKPiA+ID4gKwo+ID4g PiArCW5ld19jb25uX3N0YXRlID0gZHJtX2F0b21pY19nZXRfbmV3X2Nvbm5lY3Rvcl9zdGF0ZShz dGF0ZSwKPiA+ID4gY29ubmVjdG9yKTsKPiA+ID4gKwlvbGRfY29ubl9zdGF0ZSA9IGRybV9hdG9t aWNfZ2V0X29sZF9jb25uZWN0b3Jfc3RhdGUoc3RhdGUsCj4gPiA+IGNvbm5lY3Rvcik7Cj4gPiA+ ICsKPiA+ID4gKwlpZiAoIW9sZF9jb25uX3N0YXRlLT5jcnRjICYmICFuZXdfY29ubl9zdGF0ZS0+ Y3J0YykKPiA+ID4gKwkJcmV0dXJuIDA7Cj4gPiA+ICsKPiA+ID4gKwkvKgo+ID4gPiArCSAqIDMg Y2FzZXMgdGhhdCBuZWVkcyBiZSBoYW5kbGVkIGhlcmU6Cj4gPiA+ICsJICogLSBjb25uZWN0b3Ig Z29pbmcgZnJvbSBkaXNhYmxlZCB0byBlbmFibGVkCj4gPiA+ICsJICogLSBjb25uZWN0b3IgZ29p bmcgZnJvbSBlbmFibGVkIHRvIGRpc2FibGVkOgo+ID4gPiArCSAqIGlmIHRoaXMgdHJhbnNjb2Rl ciB3YXMgdGhlIG1hc3RlciwgYWxsIHNsYXZlcyBuZWVkcyBhCj4gPiA+IG1vZGVzZXQKPiA+ID4g KwkgKiAtIGNvbm5lY3RvciBnb2luZyBmcm9tIGVuYWJsZWQgdG8gZW5hYmxlZCBidXQgaXQgbmVl ZHMgYQo+ID4gPiBtb2Rlc2V0Ogo+ID4gPiArCSAqIGlmIHRoaXMgdHJhbnNjb2RlciB3YXMgdGhl IG1hc3RlciwgYWxsIHNsYXZlcyBhbHNvIG5lZWRzIGEKPiA+ID4gbW9kZXNldAo+ID4gPiArCSAq Lwo+ID4gPiArCj4gPiA+ICsJLyogZGlzYWJsZWQgLT4gZW5hYmxlZCAqLwo+ID4gPiArCWlmICgh b2xkX2Nvbm5fc3RhdGUtPmNydGMgJiYgbmV3X2Nvbm5fc3RhdGUtPmNydGMpCj4gPiA+ICsJCXJl dHVybiAwOwo+ID4gPiArCj4gPiA+ICsJLyogZW5hYmxlZCAtPiBlbmFibGVkKG1vZGVzZXQpPyAq Lwo+ID4gPiArCWlmIChuZXdfY29ubl9zdGF0ZS0+Y3J0Yykgewo+ID4gPiArCQljcnRjX3N0YXRl ID0gZHJtX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUsCj4gPiA+IG5ld19jb25uX3N0 YXRlLT5jcnRjKTsKPiA+ID4gKwkJaWYgKCFkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNldChj cnRjX3N0YXRlKSkKPiA+ID4gKwkJCXJldHVybiAwOwo+ID4gPiArCX0KPiA+ID4gKwo+ID4gPiAr CS8qIGhhbmRsaW5nIGVuYWJsZWQgLT4gZW5hYmxlZChtb2Rlc2V0KSBhbmQgZW5hYmxlZCAtPiBk aXNhYmxlZAo+ID4gPiAqLwo+ID4gPiArCWNydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9vbGRf Y3J0Y19zdGF0ZShzdGF0ZSwKPiA+ID4gb2xkX2Nvbm5fc3RhdGUtPmNydGMpOwo+ID4gPiArCWlu dGVsX2NydGNfc3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGNydGNfc3RhdGUpOwo+ID4gPiAr Cj4gPiA+ICsJLyogSWYgbm90IG1hc3Rlciwgbm90aGluZyBlbHNlIG5lZWRzIHRvIGJlIGhhbmRs ZWQgKi8KPiA+ID4gKwlpZiAoaW50ZWxfY29ubi0+bXN0X3BvcnQtPm1zdF9tYXN0ZXJfdHJhbnNj b2RlciAhPQo+ID4gPiArCSAgICBpbnRlbF9jcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2RlcikKPiA+ ID4gKwkJcmV0dXJuIDA7Cj4gPiA+ICsKPiA+ID4gKwkvKiBJcyBtYXN0ZXIsIG1hcmsgYWxsIG90 aGVyIENSVENzIGFzIG5lZWRpbmcgYSBtb2Rlc2V0ICovCj4gPiA+ICsJZHJtX2Nvbm5lY3Rvcl9s aXN0X2l0ZXJfYmVnaW4oc3RhdGUtPmRldiwgJmNvbm5fbGlzdF9pdGVyKTsKPiA+ID4gKwlkcm1f Zm9yX2VhY2hfY29ubmVjdG9yX2l0ZXIoY29ubl9pdGVyLCAmY29ubl9saXN0X2l0ZXIpIHsKPiA+ ID4gKwkJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubl9pdGVyOwo+ID4gPiArCQlz dHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9pdGVyX3N0YXRlOwo+ID4gPiArCj4gPiA+ ICsJCWludGVsX2Nvbm5faXRlciA9IHRvX2ludGVsX2Nvbm5lY3Rvcihjb25uX2l0ZXIpOwo+ID4g PiArCQlpZiAoaW50ZWxfY29ubl9pdGVyLT5tc3RfcG9ydCAhPSBpbnRlbF9jb25uLT5tc3RfcG9y dCkKPiA+ID4gKwkJCWNvbnRpbnVlOwo+ID4gPiArCj4gPiA+ICsJCWNvbm5faXRlcl9zdGF0ZSA9 IGRybV9hdG9taWNfZ2V0X2Nvbm5lY3Rvcl9zdGF0ZShzdGF0ZSwKPiA+ID4gKwkJCQkJCQkJIGNv bm5faQo+ID4gPiB0ZXIpOwo+ID4gPiArCQlpZiAoSVNfRVJSKGNvbm5faXRlcl9zdGF0ZSkpIHsK PiA+ID4gKwkJCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2VuZCgmY29ubl9saXN0X2l0ZXIpOwo+ ID4gPiArCQkJcmV0dXJuIFBUUl9FUlIoY29ubl9pdGVyX3N0YXRlKTsKPiA+ID4gKwkJfQo+ID4g PiArCj4gPiA+ICsJCWlmICghY29ubl9pdGVyX3N0YXRlLT5jcnRjKQo+ID4gPiArCQkJY29udGlu dWU7Cj4gPiA+ICsKPiA+ID4gKwkJY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X2NydGNfc3Rh dGUoc3RhdGUsCj4gPiA+IGNvbm5faXRlcl9zdGF0ZS0+Y3J0Yyk7Cj4gPiA+ICsJCWlmIChJU19F UlIoY3J0Y19zdGF0ZSkpIHsKPiA+ID4gKwkJCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2VuZCgm Y29ubl9saXN0X2l0ZXIpOwo+ID4gPiArCQkJcmV0dXJuIFBUUl9FUlIoY29ubl9pdGVyX3N0YXRl KTsKPiA+ID4gKwkJfQo+ID4gPiArCj4gPiA+ICsJCWludGVsX2NydGNfc3RhdGUgPSB0b19pbnRl bF9jcnRjX3N0YXRlKGNydGNfc3RhdGUpOwo+ID4gPiArCQljcnRjX3N0YXRlLT5tb2RlX2NoYW5n ZWQgPSB0cnVlOwo+ID4gPiArCX0KPiA+ID4gKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9lbmQo JmNvbm5fbGlzdF9pdGVyKTsKPiA+ID4gKwo+ID4gPiAgCXJldHVybiAwOwo+ID4gPiAgfQo+ID4g PiAgCj4gPiA+IEBAIC0xNzUsNiArMzA1LDEwIEBAIGludGVsX2RwX21zdF9hdG9taWNfY2hlY2so c3RydWN0IGRybV9jb25uZWN0b3IKPiA+ID4gKmNvbm5lY3RvciwKPiA+ID4gIAlpZiAocmV0KQo+ ID4gPiAgCQlyZXR1cm4gcmV0Owo+ID4gPiAgCj4gPiA+ICsJcmV0ID0gaW50ZWxfZHBfbXN0X2F0 b21pY19tYXN0ZXJfdHJhbnNfY2hlY2soY29ubmVjdG9yLCBzdGF0ZSk7Cj4gPiA+ICsJaWYgKHJl dCkKPiA+ID4gKwkJcmV0dXJuIHJldDsKPiA+ID4gKwo+ID4gPiAgCWlmICghb2xkX2Nvbm5fc3Rh dGUtPmNydGMpCj4gPiA+ICAJCXJldHVybiAwOwo+ID4gPiAgCj4gPiA+IEBAIC0yNTksNiArMzkz LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfbXN0X3Bvc3RfZGlzYWJsZV9kcChzdHJ1Y3QKPiA+ID4g aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ID4gIAkJaW50ZWxfZHBfc2lua19kcG1zKGludGVs X2RwLCBEUk1fTU9ERV9EUE1TX09GRik7Cj4gPiA+ICAJCWludGVsX2RpZ19wb3J0LT5iYXNlLnBv c3RfZGlzYWJsZSgmaW50ZWxfZGlnX3BvcnQtCj4gPiA+ID5iYXNlLAo+ID4gPiAgCQkJCQkJICBv bGRfY3J0Y19zdGF0ZSwKPiA+ID4gTlVMTCk7Cj4gPiA+ICsJCWludGVsX2RwLT5tc3RfbWFzdGVy X3RyYW5zY29kZXIgPSBJTlZBTElEX1RSQU5TQ09ERVI7Cj4gPiA+ICAJfQo+ID4gPiAgCj4gPiA+ ICAJRFJNX0RFQlVHX0tNUygiYWN0aXZlIGxpbmtzICVkXG4iLCBpbnRlbF9kcC0+YWN0aXZlX21z dF9saW5rcyk7Cj4gPiA+IEBAIC0zMTQsOCArNDQ5LDExIEBAIHN0YXRpYyB2b2lkIGludGVsX21z dF9wcmVfZW5hYmxlX2RwKHN0cnVjdAo+ID4gPiBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4g PiAgCj4gPiA+ICAJRFJNX0RFQlVHX0tNUygiYWN0aXZlIGxpbmtzICVkXG4iLCBpbnRlbF9kcC0+ YWN0aXZlX21zdF9saW5rcyk7Cj4gPiA+ICAKPiA+ID4gLQlpZiAoZmlyc3RfbXN0X3N0cmVhbSkK PiA+ID4gKwlpZiAoZmlyc3RfbXN0X3N0cmVhbSkgewo+ID4gPiArCQlXQVJOX09OKGludGVsX2Rw LT5tc3RfbWFzdGVyX3RyYW5zY29kZXIgIT0KPiA+ID4gSU5WQUxJRF9UUkFOU0NPREVSKTsKPiA+ ID4gKwkJaW50ZWxfZHAtPm1zdF9tYXN0ZXJfdHJhbnNjb2RlciA9IHBpcGVfY29uZmlnLQo+ID4g PiA+Y3B1X3RyYW5zY29kZXI7Cj4gPiA+ICAJCWludGVsX2RwX3NpbmtfZHBtcyhpbnRlbF9kcCwg RFJNX01PREVfRFBNU19PTik7Cj4gPiA+ICsJfQo+ID4gPiAgCj4gPiA+ICAJZHJtX2RwX3NlbmRf cG93ZXJfdXBkb3duX3BoeSgmaW50ZWxfZHAtPm1zdF9tZ3IsIGNvbm5lY3Rvci0KPiA+ID4gPnBv cnQsIHRydWUpOwo+ID4gPiAgCj4gPiA+IEBAIC03MTcsMyArODU1LDEyIEBAIGludGVsX2RwX21z dF9lbmNvZGVyX2NsZWFudXAoc3RydWN0Cj4gPiA+IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxf ZGlnX3BvcnQpCj4gPiA+ICAJZHJtX2RwX21zdF90b3BvbG9neV9tZ3JfZGVzdHJveSgmaW50ZWxf ZHAtPm1zdF9tZ3IpOwo+ID4gPiAgCS8qIGVuY29kZXJzIHdpbGwgZ2V0IGtpbGxlZCBieSBub3Jt YWwgY2xlYW51cCAqLwo+ID4gPiAgfQo+ID4gPiArCj4gPiA+ICtlbnVtIHRyYW5zY29kZXIKPiA+ ID4gK2ludGVsX2RwX21zdF9tYXN0ZXJfdHJhbnNfZ2V0KHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyKQo+ID4gPiArewo+ID4gPiArCXN0cnVjdCBpbnRlbF9kcF9tc3RfZW5jb2RlciAqaW50 ZWxfbXN0ID0gZW5jX3RvX21zdCgmZW5jb2Rlci0KPiA+ID4gPmJhc2UpOwo+ID4gPiArCXN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHAgPSAmaW50ZWxfbXN0LT5wcmltYXJ5LT5kcDsKPiA+ID4gKwo+ ID4gPiArCXJldHVybiBpbnRlbF9kcC0+bXN0X21hc3Rlcl90cmFuc2NvZGVyOwo+ID4gPiArfQo+ ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9t c3QuaAo+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmgK PiA+ID4gaW5kZXggZjY2MGFkODBkYjA0Li5lNmYyOGE1MTcxODIgMTAwNjQ0Cj4gPiA+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmgKPiA+ID4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9tc3QuaAo+ID4gPiBAQCAtNyw5 ICs3LDExIEBACj4gPiA+ICAjZGVmaW5lIF9fSU5URUxfRFBfTVNUX0hfXwo+ID4gPiAgCj4gPiA+ ICBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0Owo+ID4gPiArc3RydWN0IGludGVsX2VuY29kZXI7 Cj4gPiA+ICAKPiA+ID4gIGludCBpbnRlbF9kcF9tc3RfZW5jb2Rlcl9pbml0KHN0cnVjdCBpbnRl bF9kaWdpdGFsX3BvcnQKPiA+ID4gKmludGVsX2RpZ19wb3J0LCBpbnQgY29ubl9pZCk7Cj4gPiA+ ICB2b2lkIGludGVsX2RwX21zdF9lbmNvZGVyX2NsZWFudXAoc3RydWN0IGludGVsX2RpZ2l0YWxf cG9ydAo+ID4gPiAqaW50ZWxfZGlnX3BvcnQpOwo+ID4gPiAgaW50IGludGVsX2RwX21zdF9lbmNv ZGVyX2FjdGl2ZV9saW5rcyhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0Cj4gPiA+ICppbnRlbF9k aWdfcG9ydCk7Cj4gPiA+ICtlbnVtIHRyYW5zY29kZXIgaW50ZWxfZHBfbXN0X21hc3Rlcl90cmFu c19nZXQoc3RydWN0IGludGVsX2VuY29kZXIKPiA+ID4gKmVuY29kZXIpOwo+ID4gPiAgCj4gPiA+ ICAjZW5kaWYgLyogX19JTlRFTF9EUF9NU1RfSF9fICovCj4gPiA+IC0tIAo+ID4gPiAyLjI0LjAK Ci0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0B95CC432C0 for ; Wed, 27 Nov 2019 19:59:46 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id DB0C8205ED for ; Wed, 27 Nov 2019 19:59:45 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DB0C8205ED Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 65A0A6E5B4; Wed, 27 Nov 2019 19:59:45 +0000 (UTC) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 804696E5B4 for ; Wed, 27 Nov 2019 19:59:43 +0000 (UTC) X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 27 Nov 2019 11:59:42 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,250,1571727600"; d="scan'208";a="206872163" Received: from stinkbox.fi.intel.com (HELO stinkbox) ([10.237.72.174]) by fmsmga008.fm.intel.com with SMTP; 27 Nov 2019 11:59:40 -0800 Received: by stinkbox (sSMTP sendmail emulation); Wed, 27 Nov 2019 21:59:39 +0200 Date: Wed, 27 Nov 2019 21:59:39 +0200 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= To: "Souza, Jose" Message-ID: <20191127195939.GO1208@intel.com> References: <20191123005459.155383-1-jose.souza@intel.com> <20191123005459.155383-3-jose.souza@intel.com> <20191126200553.GG1208@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) Subject: Re: [Intel-gfx] [PATCH 3/7] drm/i915/tgl: Select master trasconder for MST stream X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "intel-gfx@lists.freedesktop.org" , "De Marchi, Lucas" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Message-ID: <20191127195939.qFGaFeO9eJ4GwqhWrgNC3rOVsOcrXdMMCNK37h3HyjM@z> T24gVHVlLCBOb3YgMjYsIDIwMTkgYXQgMDg6MzA6MzFQTSArMDAwMCwgU291emEsIEpvc2Ugd3Jv dGU6Cj4gT24gVHVlLCAyMDE5LTExLTI2IGF0IDIyOjA1ICswMjAwLCBWaWxsZSBTeXJqw6Rsw6Qg d3JvdGU6Cj4gPiBPbiBGcmksIE5vdiAyMiwgMjAxOSBhdCAwNDo1NDo1NVBNIC0wODAwLCBKb3PD qSBSb2JlcnRvIGRlIFNvdXphCj4gPiB3cm90ZToKPiA+ID4gT24gVEdMIHRoZSBibGVuZGluZyBv ZiBhbGwgdGhlIHN0cmVhbXMgaGF2ZSBtb3ZlZCBmcm9tIERESSB0bwo+ID4gPiB0cmFuc2NvZGVy LCBzbyBub3cgZXZlcnkgdHJhbnNjb2RlciB3b3JraW5nIG92ZXIgdGhlIHNhbWUgTVNUIHBvcnQK PiA+ID4gbXVzdAo+ID4gPiBzZW5kIGl0cyBzdHJlYW0gdG8gYSBtYXN0ZXIgdHJhbnNjb2RlciBh bmQgbWFzdGVyIHdpbGwgc2VuZCB0byBEREkKPiA+ID4gcmVzcGVjdGluZyB0aGUgdGltZSBzbG90 cy4KPiA+ID4gCj4gPiA+IEEgcHJldmlvdXMgYXBwcm9hY2ggd2FzIHVzaW5nIHRoZSBsb3dlc3Qg cGlwZS90cmFuc2NvZGVyIGFzIG1hc3Rlcgo+ID4gPiB0cmFuc2NvZGVyIGJ1dCBhcyB0aGUgY29t bWVudCBpbiBza2xfY29tbWl0X21vZGVzZXRfZW5hYmxlcygpCj4gPiA+IHN0YXRlcywKPiA+ID4g dGhhdCBpcyBub3QgYWx3YXlzIHRydWUuCj4gPiA+IAo+ID4gPiBTbyBoZXJlIHByb21vdGluZyB0 aGUgZmlyc3QgcGlwZS90cmFuc2NvZGVyIG9mIHRoZSBzdHJlYW0gYXMKPiA+ID4gbWFzdGVyLgo+ ID4gPiBUaGF0IGNhdXNlZCBzZXZlcmFsIG90aGVyIHByb2JsZW1zIGFzIGR1cmluZyB0aGUgY29t bWl0IHBoYXNlIHRoZQo+ID4gPiBzdGF0ZSBjb21wdXRlZCBzaG91bGQgbm90IGJlIGNoYW5nZWQu Cj4gPiA+IAo+ID4gPiBTbyB0aGUgbWFzdGVyIHRyYW5zY29kZXIgaXMgc3RvcmUgaW50byBpbnRl bF9kcCBhbmQgdGhlIG1vZGVzZXQgaW4KPiA+ID4gc2xhdmUgcGlwZXMvdHJhbnNjb2RlcnMgaXMg Zm9yY2VkIHVzaW5nIG1zdF9tYXN0ZXJfdHJhbnNfcGVuZGluZy4KPiA+ID4gCj4gPiA+IHYyOgo+ ID4gPiAtIGFkZGVkIG1pc3NpbmcgY29uZmlnIGNvbXB1dGUgdG8gdHJpZ2dlciBmdWxsbW9kZXNl dCBpbiBzbGF2ZQo+ID4gPiB0cmFuc2NvZGVycwo+ID4gPiAKPiA+ID4gQlNwZWM6IDUwNDkzCj4g PiA+IEJTcGVjOiA0OTE5MAo+ID4gPiBDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxh QGxpbnV4LmludGVsLmNvbT4KPiA+ID4gQ2M6IEx1Y2FzIERlIE1hcmNoaSA8bHVjYXMuZGVtYXJj aGlAaW50ZWwuY29tPgo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBKb3PDqSBSb2JlcnRvIGRlIFNvdXph IDxqb3NlLnNvdXphQGludGVsLmNvbT4KPiA+ID4gLS0tCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jICAgICAgfCAgMTAgKy0KPiA+ID4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jICB8ICA1OCArKysrKystCj4gPiA+ICAu Li4vZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmggICAgfCAgIDMgKwo+ID4g PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jICAgICAgIHwgICAxICsK PiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmMgICB8IDE0 OQo+ID4gPiArKysrKysrKysrKysrKysrKy0KPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZHBfbXN0LmggICB8ICAgMiArCj4gPiA+ICA2IGZpbGVzIGNoYW5nZWQsIDIx NiBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQo+ID4gPiAKPiA+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMKPiA+ID4gYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jCj4gPiA+IGluZGV4IGE5NzY2MDZkMjFj Ny4uZDJmMGQzOTNkM2VlIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2RkaS5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfZGRpLmMKPiA+ID4gQEAgLTM1LDYgKzM1LDcgQEAKPiA+ID4gICNpbmNsdWRlICJp bnRlbF9kaXNwbGF5X3R5cGVzLmgiCj4gPiA+ICAjaW5jbHVkZSAiaW50ZWxfZHAuaCIKPiA+ID4g ICNpbmNsdWRlICJpbnRlbF9kcF9saW5rX3RyYWluaW5nLmgiCj4gPiA+ICsjaW5jbHVkZSAiaW50 ZWxfZHBfbXN0LmgiCj4gPiA+ICAjaW5jbHVkZSAiaW50ZWxfZHBpb19waHkuaCIKPiA+ID4gICNp bmNsdWRlICJpbnRlbF9kc2kuaCIKPiA+ID4gICNpbmNsdWRlICJpbnRlbF9maWZvX3VuZGVycnVu LmgiCj4gPiA+IEBAIC0xOTAzLDggKzE5MDQsMTMgQEAgaW50ZWxfZGRpX3RyYW5zY29kZXJfZnVu Y19yZWdfdmFsX2dldChjb25zdAo+ID4gPiBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKPiA+ID4gIAkJdGVtcCB8PSBUUkFOU19ERElfTU9ERV9TRUxFQ1RfRFBfTVNUOwo+ID4g PiAgCQl0ZW1wIHw9IERESV9QT1JUX1dJRFRIKGNydGNfc3RhdGUtPmxhbmVfY291bnQpOwo+ID4g PiAgCj4gPiA+IC0JCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEyKQo+ID4gPiAtCQkJdGVt cCB8PQo+ID4gPiBUUkFOU19ERElfTVNUX1RSQU5TUE9SVF9TRUxFQ1QoY3J0Y19zdGF0ZS0+Y3B1 X3RyYW5zY29kZXIpOwo+ID4gPiArCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMikgewo+ ID4gPiArCQkJZW51bSB0cmFuc2NvZGVyIG1hc3RlcjsKPiA+ID4gKwo+ID4gPiArCQkJbWFzdGVy ID0KPiA+ID4gaW50ZWxfZHBfbXN0X21hc3Rlcl90cmFuc19nZXQoZW5jb2Rlcik7Cj4gPiAKPiA+ IFdoeSBpc24ndCB0aGF0IGp1c3Qgc3RvcmVkIGluIHRoZSBjcnRjIHN0YXRlIGxpa2UgZXZlcnl0 aGluZyBlbHNlPwo+ID4gCj4gPiBJJ20gdGhpbmtpbmcgd2Ugc2hvdWxkIG1heWJlIGRvIGl0IGp1 c3QgbGlrZSBwb3J0IHN5bmMgYW5kIGhhdmUgYm90aAo+ID4gbWFzdGVyICsgc2xhdmVfbWFzay4g VGhhdCB3YXkgaXQgc2hvdWxkIGJlIHByZXR0eSB0cml2aWFsIHRvIGFkZCBhbGwKPiA+IHRoZSBy ZWxldmFudCBjcnRjcyB0byB0aGUgc3RhdGUgd2hlbiBuZWVkZWQuCj4gCj4gSSBndWVzcyBwb3J0 IHN5bmMgaXMgbm90IGRvaW5nIHRoZSByaWdodCB0aGluZyBhbmQgaXQgY291bGQgY2F1c2UKPiB1 bmRlcnJ1bnMuCj4gV2hlbiBpdCBpcyBnb2luZyB0byBlbmFibGUgdGhlIG1hc3RlciBDUlRDIG9m IHRoZSBwb3J0IHN5bmMgaXQgZm9yY2libHkKPiBlbmFibGVzIHRoZSBzbGF2ZSBmaXJzdCwgd2hh dCBjb3VsZCBjYXVzZSB1bmRlcnJ1bnMgYmVjYXVzZSBvZiBvdmVybGFwCj4gaW4gZGRiIGFsbG9j YXRpb25zKHRoYXQgaXMgd2hhdCBJIHVuZGVyc3Rvb2QgZnJvbSB0aGUgY29tbWVudCBpbgo+IHNr bF9jb21taXRfbW9kZXNldF9lbmFibGVzKCkpLgoKTm90IG5lY2Vzc2FyaWx5IGp1c3QgdW5kZXJy dW5zIGJ1dCBldmVuIGEgc3lzdGVtIGhhbmcuIFRoZSBmaXggc2hvdWxkIGJlCmEgdHJpdmlhbCAi Y2hlY2sgdGhlIHNsYXZlIGZvciBkZGIgb3ZlcmxhcCBhcyB3ZWxsIiwgYnV0IGFwcGFyZW50bHkg SQpmYWlsZWQgYXQgY29udmljaW5nIHBlb3BsZSB0byBkbyB0aGF0LgoKSSd2ZSBhY3R1YWxseSBi ZWVuIHBvbmRlcmluZyBhYm91dCBkZWNvdXBsaW5nIHRoZSBwbGFuZSB1cGRhdGVzIGZyb20KdGhl IGNydGMgZW5hYmxlIHN0dWZmIGVudGlyZWx5LiBBdCBsZWFzdCB0aGVvcmV0aWNhbGx5IGNydGMg ZW5hYmxlCnNob3VsZCBiZSBhYmxlIHRvIGV4Y3V0ZSBpbiBhbnkgb3JkZXIgYXMgbG9uZyB3ZSBk b24ndCBlbmFibGUgYW55Cm5ldyBwbGFuZXMuCgpCdXQgbm9uZSBvZiB0aGF0IHJlYWxseSBtYXR0 ZXJzIGZvciB0aGUgZGlzY3Vzc2lvbiBhdCBoYW5kLiBUaG91Z2gKdGhlcmUgYXJlIG90aGVyIHBy b2JsZW1zIHdpdGggdGhlIHBvcnQgc3luYyBzdHVmZiB0aGF0IHdvdWxkIG5lZWQKdG8gYmUgaGFu ZGxlZCBiZXR0ZXIuIEVnLiBJIHRoaW5rIGl0IG5vdyBhZGRzIGJvdGggY3J0Y3MgdG8gdGhlIHN0 YXRlCmFsd2F5cyB3aGljaCBpcyBnb2luZyB0byBjdXQgdGhlIGZwcyBpbiBoYWxmLiBBbHNvIHRo ZSBwbGFjZSB3aGVyZQppdCBkb2VzIHRoYXQgc3R1ZmYgaXMgcmF0aGVyIHN1c3BpY2lvdXMuIEFs bCB0aGF0IHN0dWZmIHNob3VsZCBiZQpzb21ld2hlcmUgYSBiaXQgaGlnaGVyIHVwIElNTy4KCj4g Cj4gU28gZm9yIE1TVCB3ZSBvbmx5IGtub3cgd2hvIGlzIHRoZSBtYXN0ZXIgaW4gdGhlIGNvbW1p dCBwaGFzZSBhbmQgYXQKPiB0aGlzIHBvaW50IHdlIHNob3VsZCBub3QgbW9kaWZ5IHRoZSBjb21w dXRlZCBzdGF0ZS4KCkknbSBub3Qgc3VnZ2VzdGluZyBtb2RpZnlpbmcgYW55dGhpbmcgZHVyaW5n IGNvbW1pdCBwaGFzZS4gSSB0aGluawp5b3UgYXJlIGVmZmVjdGllbHkgZG9pbmcgdGhhdCByaWdo dCBub3cgYnkgc3R1ZmZpbmcgdGhhdCBtc3QgbWFzdGVyCnRyYW5zY29kZXIgaW50byBpbnRlbF9k cC4KCj4gCj4gPiAKPiA+ID4gKwkJCVdBUk5fT04obWFzdGVyID09IElOVkFMSURfVFJBTlNDT0RF Uik7Cj4gPiA+ICsJCQl0ZW1wIHw9IFRSQU5TX0RESV9NU1RfVFJBTlNQT1JUX1NFTEVDVChtYXN0 ZXIpOwo+ID4gPiArCQl9Cj4gPiA+ICAJfSBlbHNlIHsKPiA+ID4gIAkJdGVtcCB8PSBUUkFOU19E RElfTU9ERV9TRUxFQ1RfRFBfU1NUOwo+ID4gPiAgCQl0ZW1wIHw9IERESV9QT1JUX1dJRFRIKGNy dGNfc3RhdGUtPmxhbmVfY291bnQpOwo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiBpbmRleCA4MDFiOTc1YzdkMzkuLjM1YTU5 MTA4MTk0ZSAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kaXNwbGF5LmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kaXNwbGF5LmMKPiA+ID4gQEAgLTQ2LDYgKzQ2LDcgQEAKPiA+ID4gICNpbmNsdWRlICJk aXNwbGF5L2ludGVsX2NydC5oIgo+ID4gPiAgI2luY2x1ZGUgImRpc3BsYXkvaW50ZWxfZGRpLmgi Cj4gPiA+ICAjaW5jbHVkZSAiZGlzcGxheS9pbnRlbF9kcC5oIgo+ID4gPiArI2luY2x1ZGUgImRp c3BsYXkvaW50ZWxfZHBfbXN0LmgiCj4gPiA+ICAjaW5jbHVkZSAiZGlzcGxheS9pbnRlbF9kc2ku aCIKPiA+ID4gICNpbmNsdWRlICJkaXNwbGF5L2ludGVsX2R2by5oIgo+ID4gPiAgI2luY2x1ZGUg ImRpc3BsYXkvaW50ZWxfZ21idXMuaCIKPiA+ID4gQEAgLTUzNjUsNiArNTM2NiwzNiBAQCBpbnRl bF9nZXRfY3J0Y19uZXdfZW5jb2Rlcihjb25zdCBzdHJ1Y3QKPiA+ID4gaW50ZWxfYXRvbWljX3N0 YXRlICpzdGF0ZSwKPiA+ID4gIAlyZXR1cm4gZW5jb2RlcjsKPiA+ID4gIH0KPiA+ID4gIAo+ID4g PiArLyoKPiA+ID4gKyAqIEZpbmRzIHRoZSBlbmNvZGVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2 ZW4gQ1JUQy4gVGhpcyBjYW4gb25seQo+ID4gPiBiZQo+ID4gPiArICogdXNlZCB3aGVuIHdlIGtu b3cgdGhhdCB0aGUgQ1JUQyBpc24ndCBmZWVkaW5nIG11bHRpcGxlCj4gPiA+IGVuY29kZXJzIQo+ ID4gPiArICovCj4gPiA+ICtzdGF0aWMgc3RydWN0IGludGVsX2VuY29kZXIgKgo+ID4gPiAraW50 ZWxfZ2V0X2NydGNfb2xkX2VuY29kZXIoY29uc3Qgc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAq c3RhdGUsCj4gPiA+ICsJCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKPiA+ID4gK3sKPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiA+ID4gKwljb25zdCBzdHJ1Y3QgZHJtX2Nv bm5lY3Rvcl9zdGF0ZSAqY29ubmVjdG9yX3N0YXRlOwo+ID4gPiArCWNvbnN0IHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3I7Cj4gPiA+ICsJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIgPSBOVUxMOwo+ID4gPiArCWludCBudW1fZW5jb2RlcnMgPSAwOwo+ID4gPiArCWludCBpOwo+ ID4gPiArCj4gPiA+ICsJZm9yX2VhY2hfb2xkX2Nvbm5lY3Rvcl9pbl9zdGF0ZSgmc3RhdGUtPmJh c2UsIGNvbm5lY3RvciwKPiA+ID4gKwkJCQkJY29ubmVjdG9yX3N0YXRlLCBpKSB7Cj4gPiA+ICsJ CWlmIChjb25uZWN0b3Jfc3RhdGUtPmNydGMgIT0gJmNydGMtPmJhc2UpCj4gPiA+ICsJCQljb250 aW51ZTsKPiA+ID4gKwo+ID4gPiArCQllbmNvZGVyID0gdG9faW50ZWxfZW5jb2Rlcihjb25uZWN0 b3Jfc3RhdGUtCj4gPiA+ID5iZXN0X2VuY29kZXIpOwo+ID4gPiArCQludW1fZW5jb2RlcnMrKzsK PiA+ID4gKwl9Cj4gPiA+ICsKPiA+ID4gKwlXQVJOKG51bV9lbmNvZGVycyAhPSAxLCAiJWQgZW5j b2RlcnMgZm9yIHBpcGUgJWNcbiIsCj4gPiA+ICsJICAgICBudW1fZW5jb2RlcnMsIHBpcGVfbmFt ZShjcnRjLT5waXBlKSk7Cj4gPiA+ICsKPiA+ID4gKwlyZXR1cm4gZW5jb2RlcjsKPiA+ID4gK30K PiA+IAo+ID4gQXJnaC4gSSB3YXMgaG9waW5nIHRvIGtpbGwgdGhlIG90aGVyIG9uZSBvZiB0aGVz ZS4gR290IGl0IGRvd24gdG8gMQo+ID4gcmVtYWluaW5nIHVzZXIgbm93IEkgdGhpbmsuCj4gPiAK PiA+ID4gKwo+ID4gPiAgLyoKPiA+ID4gICAqIEVuYWJsZSBQQ0ggcmVzb3VyY2VzIHJlcXVpcmVk IGZvciBQQ0ggcG9ydHM6Cj4gPiA+ICAgKiAgIC0gUENIIFBMTHMKPiA+ID4gQEAgLTEzMzY1LDYg KzEzMzk2LDEyIEBAIGludGVsX3BpcGVfY29uZmlnX2NvbXBhcmUoY29uc3Qgc3RydWN0Cj4gPiA+ IGludGVsX2NydGNfc3RhdGUgKmN1cnJlbnRfY29uZmlnLAo+ID4gPiAgI3VuZGVmIFBJUEVfQ09O Rl9DSEVDS19DT0xPUl9MVVQKPiA+ID4gICN1bmRlZiBQSVBFX0NPTkZfUVVJUksKPiA+ID4gIAo+ ID4gPiArCWlmIChmYXN0c2V0ICYmIHBpcGVfY29uZmlnLT5tc3RfbWFzdGVyX3RyYW5zX3BlbmRp bmcpIHsKPiA+ID4gKwkJRFJNX0RFQlVHX0tNUygiW0NSVEM6JWQ6JXNdIGZhc3RzZXQgbWlzbWF0 Y2ggaW4KPiA+ID4gbXN0X21hc3Rlcl90cmFuc1xuIiwKPiA+ID4gKwkJCSAgICAgIGNydGMtPmJh c2UuYmFzZS5pZCwgY3J0Yy0+YmFzZS5uYW1lKTsKPiA+ID4gKwkJcmV0ID0gZmFsc2U7Cj4gPiA+ ICsJfQo+ID4gPiArCj4gPiA+ICAJcmV0dXJuIHJldDsKPiA+ID4gIH0KPiA+ID4gIAo+ID4gPiBA QCAtMTQ0NDksMjIgKzE0NDg2LDM1IEBAIHN0YXRpYyB2b2lkCj4gPiA+IGludGVsX2NvbW1pdF9t b2Rlc2V0X2Rpc2FibGVzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ID4gPiAg CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOwo+ID4gPiAgCWludCBpOwo+ID4gPiAgCj4gPiA+IC0J LyogT25seSBkaXNhYmxlIHBvcnQgc3luYyBzbGF2ZXMgKi8KPiA+ID4gKwkvKiBPbmx5IGRpc2Fi bGUgcG9ydCBzeW5jIGFuZCBNU1Qgc2xhdmVzICovCj4gPiA+ICAJZm9yX2VhY2hfb2xkbmV3X2lu dGVsX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsCj4gPiA+IG9sZF9jcnRjX3N0YXRlLAo+ID4g PiAgCQkJCQkgICAgbmV3X2NydGNfc3RhdGUsIGkpIHsKPiA+ID4gIAkJaWYgKCFuZWVkc19tb2Rl c2V0KG5ld19jcnRjX3N0YXRlKSB8fCAhY3J0Yy0+YWN0aXZlKQo+ID4gPiAgCQkJY29udGludWU7 Cj4gPiA+ICAKPiA+ID4gKwkJaWYgKCFpc190cmFuc19wb3J0X3N5bmNfbW9kZShuZXdfY3J0Y19z dGF0ZSkgJiYKPiA+ID4gKwkJICAgICFpbnRlbF9jcnRjX2hhc190eXBlKG9sZF9jcnRjX3N0YXRl LAo+ID4gPiBJTlRFTF9PVVRQVVRfRFBfTVNUKSkKPiA+ID4gKwkJCWNvbnRpbnVlOwo+ID4gPiAr Cj4gPiA+ICAJCS8qIEluIGNhc2Ugb2YgVHJhbnNjb2RlciBwb3J0IFN5bmMgbWFzdGVyIHNsYXZl IENSVENzCj4gPiA+IGNhbiBiZQo+ID4gPiAgCQkgKiBhc3NpZ25lZCBpbiBhbnkgb3JkZXIgYW5k IHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQKPiA+ID4gIAkJICogc2xhdmUgQ1JUQ3MgYXJlIGRp c2FibGVkIGZpcnN0IGFuZCB0aGVuIG1hc3RlciBDUlRDCj4gPiA+IHNpbmNlCj4gPiA+ICAJCSAq IFNsYXZlIHZibGFua3MgYXJlIG1hc2tlZCB0aWxsIE1hc3RlciBWYmxhbmtzLgo+ID4gPiAgCQkg Ki8KPiA+ID4gLQkJaWYgKCFpc190cmFuc19wb3J0X3N5bmNfbW9kZShvbGRfY3J0Y19zdGF0ZSkp Cj4gPiA+IC0JCQljb250aW51ZTsKPiA+ID4gLQkJaWYgKGlzX3RyYW5zX3BvcnRfc3luY19tYXN0 ZXIob2xkX2NydGNfc3RhdGUpKQo+ID4gPiArCQlpZiAoaXNfdHJhbnNfcG9ydF9zeW5jX21vZGUo bmV3X2NydGNfc3RhdGUpICYmCj4gPiA+ICsJCSAgICBpc190cmFuc19wb3J0X3N5bmNfbWFzdGVy KG5ld19jcnRjX3N0YXRlKSkKPiA+ID4gIAkJCWNvbnRpbnVlOwo+ID4gPiAgCj4gPiA+ICsJCWlm IChpbnRlbF9jcnRjX2hhc190eXBlKG9sZF9jcnRjX3N0YXRlLAo+ID4gPiBJTlRFTF9PVVRQVVRf RFBfTVNUKSkgewo+ID4gPiArCQkJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7Cj4gPiA+ ICsKPiA+ID4gKwkJCWVuY29kZXIgPSBpbnRlbF9nZXRfY3J0Y19vbGRfZW5jb2RlcihzdGF0ZSwK PiA+ID4gKwkJCQkJCQkgICAgIG9sZF9jcnRjX3MKPiA+ID4gdGF0ZSk7Cj4gPiA+ICsJCQlpZiAo aW50ZWxfZHBfbXN0X21hc3Rlcl90cmFuc19nZXQoZW5jb2RlcikgPT0KPiA+ID4gKwkJCSAgICBv bGRfY3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29kZXIpCj4gPiA+ICsJCQkJY29udGludWU7Cj4gPiA+ ICsJCX0KPiA+ID4gKwo+ID4gPiAgCQlpbnRlbF9wcmVfcGxhbmVfdXBkYXRlKG9sZF9jcnRjX3N0 YXRlLCBuZXdfY3J0Y19zdGF0ZSk7Cj4gPiA+ICAJCWludGVsX29sZF9jcnRjX3N0YXRlX2Rpc2Fi bGVzKHN0YXRlLCBvbGRfY3J0Y19zdGF0ZSwKPiA+ID4gIAkJCQkJICAgICAgbmV3X2NydGNfc3Rh dGUsIGNydGMpOwo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaAo+ID4gPiBpbmRleCA4M2VhMDQxNDliNzcuLjIzZDc0 N2NkY2E2NCAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kaXNwbGF5X3R5cGVzLmgKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKPiA+ID4gQEAgLTEwNTIsNiArMTA1Miw4IEBAIHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlIHsKPiA+ID4gIAkvKiBQb2ludGVyIHRvIG1hc3RlciB0cmFu c2NvZGVyIGluIGNhc2Ugb2YgdGlsZWQgZGlzcGxheXMgKi8KPiA+ID4gIAllbnVtIHRyYW5zY29k ZXIgbWFzdGVyX3RyYW5zY29kZXI7Cj4gPiA+ICAKPiA+ID4gKwlib29sIG1zdF9tYXN0ZXJfdHJh bnNfcGVuZGluZzsKPiA+ID4gKwo+ID4gPiAgCS8qIEJpdG1hc2sgdG8gaW5kaWNhdGUgc2xhdmVz IGF0dGFjaGVkICovCj4gPiA+ICAJdTggc3luY19tb2RlX3NsYXZlc19tYXNrOwo+ID4gPiAgfTsK PiA+ID4gQEAgLTEyODQsNiArMTI4Niw3IEBAIHN0cnVjdCBpbnRlbF9kcCB7Cj4gPiA+ICAJYm9v bCBjYW5fbXN0OyAvKiB0aGlzIHBvcnQgc3VwcG9ydHMgbXN0ICovCj4gPiA+ICAJYm9vbCBpc19t c3Q7Cj4gPiA+ICAJaW50IGFjdGl2ZV9tc3RfbGlua3M7Cj4gPiA+ICsJZW51bSB0cmFuc2NvZGVy IG1zdF9tYXN0ZXJfdHJhbnNjb2RlcjsgLyogT25seSB1c2VkIGluIFRHTCsgKi8KPiA+ID4gIAo+ ID4gPiAgCS8qCj4gPiA+ICAJICogRFBfVFBfKiByZWdpc3RlcnMgbWF5IGJlIGVpdGhlciBvbiBw b3J0IG9yIHRyYW5zY29kZXIKPiA+ID4gcmVnaXN0ZXIgc3BhY2UuCj4gPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMKPiA+ID4gYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMKPiA+ID4gaW5kZXggMzEyMzk1OGUyMDgx Li5jZWZmNjkwMTQ1MWEgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZHAuYwo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2RwLmMKPiA+ID4gQEAgLTc0MjQsNiArNzQyNCw3IEBAIGludGVsX2RwX2luaXRfY29u bmVjdG9yKHN0cnVjdAo+ID4gPiBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAo+ ID4gPiAgCWludGVsX2RwLT5yZXNldF9saW5rX3BhcmFtcyA9IHRydWU7Cj4gPiA+ICAJaW50ZWxf ZHAtPnBwc19waXBlID0gSU5WQUxJRF9QSVBFOwo+ID4gPiAgCWludGVsX2RwLT5hY3RpdmVfcGlw ZSA9IElOVkFMSURfUElQRTsKPiA+ID4gKwlpbnRlbF9kcC0+bXN0X21hc3Rlcl90cmFuc2NvZGVy ID0gSU5WQUxJRF9UUkFOU0NPREVSOwo+ID4gPiAgCj4gPiA+ICAJLyogUHJlc2VydmUgdGhlIGN1 cnJlbnQgaHcgc3RhdGUuICovCj4gPiA+ICAJaW50ZWxfZHAtPkRQID0gSTkxNV9SRUFEKGludGVs X2RwLT5vdXRwdXRfcmVnKTsKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmMKPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2RwX21zdC5jCj4gPiA+IGluZGV4IGY4YTM1MDM1OTM0Ni4uOTczMWMzYzFkM2Yy IDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rw X21zdC5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBf bXN0LmMKPiA+ID4gQEAgLTg3LDYgKzg3LDQ3IEBAIHN0YXRpYyBpbnQKPiA+ID4gaW50ZWxfZHBf bXN0X2NvbXB1dGVfbGlua19jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4g PiA+ICAJcmV0dXJuIDA7Cj4gPiA+ICB9Cj4gPiA+ICAKPiA+ID4gK3N0YXRpYyBpbnQKPiA+ID4g K2ludGVsX2RwX21zdF9tYXN0ZXJfdHJhbnNfY29tcHV0ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKPiA+ID4gKwkJCQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZp ZywKPiA+ID4gKwkJCQkgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlCj4gPiA+ICpjb25uX3N0 YXRlKQo+ID4gPiArewo+ID4gPiArCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0K PiA+ID4gdG9faW50ZWxfYXRvbWljX3N0YXRlKHBpcGVfY29uZmlnLT51YXBpLnN0YXRlKTsKPiA+ ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXIt PmJhc2UuZGV2KTsKPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3Rh dGU7Cj4gPiA+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGM7Cj4gPiA+ICsJZW51bSB0cmFuc2Nv ZGVyIG1hc3RlcjsKPiA+ID4gKwlpbnQgaTsKPiA+ID4gKwo+ID4gPiArCWlmIChJTlRFTF9HRU4o ZGV2X3ByaXYpIDwgMTIpCj4gPiA+ICsJCXJldHVybiAwOwo+ID4gPiArCj4gPiA+ICsJaWYgKCFj b25uX3N0YXRlLT5jcnRjKQo+ID4gPiArCQlyZXR1cm4gMDsKPiA+ID4gKwo+ID4gPiArCW1hc3Rl ciA9IGludGVsX2RwX21zdF9tYXN0ZXJfdHJhbnNfZ2V0KGVuY29kZXIpOwo+ID4gPiArCWlmICht YXN0ZXIgPT0gSU5WQUxJRF9UUkFOU0NPREVSKQo+ID4gPiArCQlyZXR1cm4gMDsKPiA+ID4gKwo+ ID4gPiArCWZvcl9lYWNoX25ld19pbnRlbF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBuZXdf Y3J0Y19zdGF0ZSwKPiA+ID4gaSkgewo+ID4gPiArCQkvKgo+ID4gPiArCQkgKiBjcHVfdHJhbnNj b2RlciBpcyBzZXQgd2hlbiBjb21wdXRpbmcgQ1JUQyBzdGF0ZSBpZgo+ID4gPiBpdCB3aWxsCj4g PiA+ICsJCSAqIGJlIGRpc2FibGVkIGl0IHdpbGwgbm90IGhhcHBlbiwgc28gY2hlY2tpbmcgcGlw ZQo+ID4gPiBpbnN0ZWFkCj4gPiA+ICsJCSAqLwo+ID4gPiArCQlpZiAoY3J0Yy0+cGlwZSAhPSAo ZW51bSBwaXBlKW1hc3RlcikKPiA+ID4gKwkJCWNvbnRpbnVlOwo+ID4gPiArCj4gPiA+ICsJCWlm ICghZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQoJm5ld19jcnRjX3N0YXRlLQo+ID4gPiA+ dWFwaSkgJiYKPiA+ID4gKwkJICAgIG5ld19jcnRjX3N0YXRlLT51YXBpLmVuYWJsZSkKPiA+ID4g KwkJCWNvbnRpbnVlOwo+ID4gPiArCj4gPiA+ICsJCXBpcGVfY29uZmlnLT5tc3RfbWFzdGVyX3Ry YW5zX3BlbmRpbmcgPSB0cnVlOwo+ID4gPiArCQlicmVhazsKPiA+ID4gKwl9Cj4gPiA+ICsKPiA+ ID4gKwlyZXR1cm4gMDsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiAgc3RhdGljIGludCBpbnRlbF9k cF9tc3RfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIKPiA+ID4gKmVuY29kZXIs Cj4gPiA+ICAJCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlCj4gPiA+ICpwaXBlX2Nv bmZpZywKPiA+ID4gIAkJCQkgICAgICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUKPiA+ID4g KmNvbm5fc3RhdGUpCj4gPiA+IEBAIC0xNTQsNiArMTk1LDk1IEBAIHN0YXRpYyBpbnQgaW50ZWxf ZHBfbXN0X2NvbXB1dGVfY29uZmlnKHN0cnVjdAo+ID4gPiBpbnRlbF9lbmNvZGVyICplbmNvZGVy LAo+ID4gPiAgCj4gPiA+ICAJaW50ZWxfZGRpX2NvbXB1dGVfbWluX3ZvbHRhZ2VfbGV2ZWwoZGV2 X3ByaXYsIHBpcGVfY29uZmlnKTsKPiA+ID4gIAo+ID4gPiArCXJldCA9IGludGVsX2RwX21zdF9t YXN0ZXJfdHJhbnNfY29tcHV0ZShlbmNvZGVyLCBwaXBlX2NvbmZpZywKPiA+ID4gKwkJCQkJCWNv bm5fc3RhdGUpOwo+ID4gPiArCWlmIChyZXQpCj4gPiA+ICsJCXJldHVybiByZXQ7Cj4gPiA+ICsK PiA+ID4gKwlyZXR1cm4gMDsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiArc3RhdGljIGludAo+ID4g PiAraW50ZWxfZHBfbXN0X2F0b21pY19tYXN0ZXJfdHJhbnNfY2hlY2soc3RydWN0IGRybV9jb25u ZWN0b3IKPiA+ID4gKmNvbm5lY3RvciwKPiA+ID4gKwkJCQkgICAgICAgc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKnN0YXRlKQo+ID4gPiArewo+ID4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5kZXYpOwo+ID4gPiArCXN0cnVjdCBpbnRl bF9jb25uZWN0b3IgKmludGVsX2Nvbm4gPQo+ID4gPiB0b19pbnRlbF9jb25uZWN0b3IoY29ubmVj dG9yKTsKPiA+ID4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqbmV3X2Nvbm5fc3RhdGUs ICpvbGRfY29ubl9zdGF0ZTsKPiA+ID4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXIg Y29ubl9saXN0X2l0ZXI7Cj4gPiA+ICsJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmludGVsX2Ny dGNfc3RhdGU7Cj4gPiA+ICsJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwo+ID4g PiArCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uX2l0ZXI7Cj4gPiA+ICsKPiA+ID4gKwlpZiAo SU5URUxfR0VOKGRldl9wcml2KSA8IDEyKQo+ID4gPiArCQlyZXR1cm4gMDsKPiA+ID4gKwo+ID4g PiArCW5ld19jb25uX3N0YXRlID0gZHJtX2F0b21pY19nZXRfbmV3X2Nvbm5lY3Rvcl9zdGF0ZShz dGF0ZSwKPiA+ID4gY29ubmVjdG9yKTsKPiA+ID4gKwlvbGRfY29ubl9zdGF0ZSA9IGRybV9hdG9t aWNfZ2V0X29sZF9jb25uZWN0b3Jfc3RhdGUoc3RhdGUsCj4gPiA+IGNvbm5lY3Rvcik7Cj4gPiA+ ICsKPiA+ID4gKwlpZiAoIW9sZF9jb25uX3N0YXRlLT5jcnRjICYmICFuZXdfY29ubl9zdGF0ZS0+ Y3J0YykKPiA+ID4gKwkJcmV0dXJuIDA7Cj4gPiA+ICsKPiA+ID4gKwkvKgo+ID4gPiArCSAqIDMg Y2FzZXMgdGhhdCBuZWVkcyBiZSBoYW5kbGVkIGhlcmU6Cj4gPiA+ICsJICogLSBjb25uZWN0b3Ig Z29pbmcgZnJvbSBkaXNhYmxlZCB0byBlbmFibGVkCj4gPiA+ICsJICogLSBjb25uZWN0b3IgZ29p bmcgZnJvbSBlbmFibGVkIHRvIGRpc2FibGVkOgo+ID4gPiArCSAqIGlmIHRoaXMgdHJhbnNjb2Rl ciB3YXMgdGhlIG1hc3RlciwgYWxsIHNsYXZlcyBuZWVkcyBhCj4gPiA+IG1vZGVzZXQKPiA+ID4g KwkgKiAtIGNvbm5lY3RvciBnb2luZyBmcm9tIGVuYWJsZWQgdG8gZW5hYmxlZCBidXQgaXQgbmVl ZHMgYQo+ID4gPiBtb2Rlc2V0Ogo+ID4gPiArCSAqIGlmIHRoaXMgdHJhbnNjb2RlciB3YXMgdGhl IG1hc3RlciwgYWxsIHNsYXZlcyBhbHNvIG5lZWRzIGEKPiA+ID4gbW9kZXNldAo+ID4gPiArCSAq Lwo+ID4gPiArCj4gPiA+ICsJLyogZGlzYWJsZWQgLT4gZW5hYmxlZCAqLwo+ID4gPiArCWlmICgh b2xkX2Nvbm5fc3RhdGUtPmNydGMgJiYgbmV3X2Nvbm5fc3RhdGUtPmNydGMpCj4gPiA+ICsJCXJl dHVybiAwOwo+ID4gPiArCj4gPiA+ICsJLyogZW5hYmxlZCAtPiBlbmFibGVkKG1vZGVzZXQpPyAq Lwo+ID4gPiArCWlmIChuZXdfY29ubl9zdGF0ZS0+Y3J0Yykgewo+ID4gPiArCQljcnRjX3N0YXRl ID0gZHJtX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUsCj4gPiA+IG5ld19jb25uX3N0 YXRlLT5jcnRjKTsKPiA+ID4gKwkJaWYgKCFkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNldChj cnRjX3N0YXRlKSkKPiA+ID4gKwkJCXJldHVybiAwOwo+ID4gPiArCX0KPiA+ID4gKwo+ID4gPiAr CS8qIGhhbmRsaW5nIGVuYWJsZWQgLT4gZW5hYmxlZChtb2Rlc2V0KSBhbmQgZW5hYmxlZCAtPiBk aXNhYmxlZAo+ID4gPiAqLwo+ID4gPiArCWNydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9vbGRf Y3J0Y19zdGF0ZShzdGF0ZSwKPiA+ID4gb2xkX2Nvbm5fc3RhdGUtPmNydGMpOwo+ID4gPiArCWlu dGVsX2NydGNfc3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGNydGNfc3RhdGUpOwo+ID4gPiAr Cj4gPiA+ICsJLyogSWYgbm90IG1hc3Rlciwgbm90aGluZyBlbHNlIG5lZWRzIHRvIGJlIGhhbmRs ZWQgKi8KPiA+ID4gKwlpZiAoaW50ZWxfY29ubi0+bXN0X3BvcnQtPm1zdF9tYXN0ZXJfdHJhbnNj b2RlciAhPQo+ID4gPiArCSAgICBpbnRlbF9jcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2RlcikKPiA+ ID4gKwkJcmV0dXJuIDA7Cj4gPiA+ICsKPiA+ID4gKwkvKiBJcyBtYXN0ZXIsIG1hcmsgYWxsIG90 aGVyIENSVENzIGFzIG5lZWRpbmcgYSBtb2Rlc2V0ICovCj4gPiA+ICsJZHJtX2Nvbm5lY3Rvcl9s aXN0X2l0ZXJfYmVnaW4oc3RhdGUtPmRldiwgJmNvbm5fbGlzdF9pdGVyKTsKPiA+ID4gKwlkcm1f Zm9yX2VhY2hfY29ubmVjdG9yX2l0ZXIoY29ubl9pdGVyLCAmY29ubl9saXN0X2l0ZXIpIHsKPiA+ ID4gKwkJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubl9pdGVyOwo+ID4gPiArCQlz dHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9pdGVyX3N0YXRlOwo+ID4gPiArCj4gPiA+ ICsJCWludGVsX2Nvbm5faXRlciA9IHRvX2ludGVsX2Nvbm5lY3Rvcihjb25uX2l0ZXIpOwo+ID4g PiArCQlpZiAoaW50ZWxfY29ubl9pdGVyLT5tc3RfcG9ydCAhPSBpbnRlbF9jb25uLT5tc3RfcG9y dCkKPiA+ID4gKwkJCWNvbnRpbnVlOwo+ID4gPiArCj4gPiA+ICsJCWNvbm5faXRlcl9zdGF0ZSA9 IGRybV9hdG9taWNfZ2V0X2Nvbm5lY3Rvcl9zdGF0ZShzdGF0ZSwKPiA+ID4gKwkJCQkJCQkJIGNv bm5faQo+ID4gPiB0ZXIpOwo+ID4gPiArCQlpZiAoSVNfRVJSKGNvbm5faXRlcl9zdGF0ZSkpIHsK PiA+ID4gKwkJCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2VuZCgmY29ubl9saXN0X2l0ZXIpOwo+ ID4gPiArCQkJcmV0dXJuIFBUUl9FUlIoY29ubl9pdGVyX3N0YXRlKTsKPiA+ID4gKwkJfQo+ID4g PiArCj4gPiA+ICsJCWlmICghY29ubl9pdGVyX3N0YXRlLT5jcnRjKQo+ID4gPiArCQkJY29udGlu dWU7Cj4gPiA+ICsKPiA+ID4gKwkJY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X2NydGNfc3Rh dGUoc3RhdGUsCj4gPiA+IGNvbm5faXRlcl9zdGF0ZS0+Y3J0Yyk7Cj4gPiA+ICsJCWlmIChJU19F UlIoY3J0Y19zdGF0ZSkpIHsKPiA+ID4gKwkJCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2VuZCgm Y29ubl9saXN0X2l0ZXIpOwo+ID4gPiArCQkJcmV0dXJuIFBUUl9FUlIoY29ubl9pdGVyX3N0YXRl KTsKPiA+ID4gKwkJfQo+ID4gPiArCj4gPiA+ICsJCWludGVsX2NydGNfc3RhdGUgPSB0b19pbnRl bF9jcnRjX3N0YXRlKGNydGNfc3RhdGUpOwo+ID4gPiArCQljcnRjX3N0YXRlLT5tb2RlX2NoYW5n ZWQgPSB0cnVlOwo+ID4gPiArCX0KPiA+ID4gKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9lbmQo JmNvbm5fbGlzdF9pdGVyKTsKPiA+ID4gKwo+ID4gPiAgCXJldHVybiAwOwo+ID4gPiAgfQo+ID4g PiAgCj4gPiA+IEBAIC0xNzUsNiArMzA1LDEwIEBAIGludGVsX2RwX21zdF9hdG9taWNfY2hlY2so c3RydWN0IGRybV9jb25uZWN0b3IKPiA+ID4gKmNvbm5lY3RvciwKPiA+ID4gIAlpZiAocmV0KQo+ ID4gPiAgCQlyZXR1cm4gcmV0Owo+ID4gPiAgCj4gPiA+ICsJcmV0ID0gaW50ZWxfZHBfbXN0X2F0 b21pY19tYXN0ZXJfdHJhbnNfY2hlY2soY29ubmVjdG9yLCBzdGF0ZSk7Cj4gPiA+ICsJaWYgKHJl dCkKPiA+ID4gKwkJcmV0dXJuIHJldDsKPiA+ID4gKwo+ID4gPiAgCWlmICghb2xkX2Nvbm5fc3Rh dGUtPmNydGMpCj4gPiA+ICAJCXJldHVybiAwOwo+ID4gPiAgCj4gPiA+IEBAIC0yNTksNiArMzkz LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfbXN0X3Bvc3RfZGlzYWJsZV9kcChzdHJ1Y3QKPiA+ID4g aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ID4gIAkJaW50ZWxfZHBfc2lua19kcG1zKGludGVs X2RwLCBEUk1fTU9ERV9EUE1TX09GRik7Cj4gPiA+ICAJCWludGVsX2RpZ19wb3J0LT5iYXNlLnBv c3RfZGlzYWJsZSgmaW50ZWxfZGlnX3BvcnQtCj4gPiA+ID5iYXNlLAo+ID4gPiAgCQkJCQkJICBv bGRfY3J0Y19zdGF0ZSwKPiA+ID4gTlVMTCk7Cj4gPiA+ICsJCWludGVsX2RwLT5tc3RfbWFzdGVy X3RyYW5zY29kZXIgPSBJTlZBTElEX1RSQU5TQ09ERVI7Cj4gPiA+ICAJfQo+ID4gPiAgCj4gPiA+ ICAJRFJNX0RFQlVHX0tNUygiYWN0aXZlIGxpbmtzICVkXG4iLCBpbnRlbF9kcC0+YWN0aXZlX21z dF9saW5rcyk7Cj4gPiA+IEBAIC0zMTQsOCArNDQ5LDExIEBAIHN0YXRpYyB2b2lkIGludGVsX21z dF9wcmVfZW5hYmxlX2RwKHN0cnVjdAo+ID4gPiBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4g PiAgCj4gPiA+ICAJRFJNX0RFQlVHX0tNUygiYWN0aXZlIGxpbmtzICVkXG4iLCBpbnRlbF9kcC0+ YWN0aXZlX21zdF9saW5rcyk7Cj4gPiA+ICAKPiA+ID4gLQlpZiAoZmlyc3RfbXN0X3N0cmVhbSkK PiA+ID4gKwlpZiAoZmlyc3RfbXN0X3N0cmVhbSkgewo+ID4gPiArCQlXQVJOX09OKGludGVsX2Rw LT5tc3RfbWFzdGVyX3RyYW5zY29kZXIgIT0KPiA+ID4gSU5WQUxJRF9UUkFOU0NPREVSKTsKPiA+ ID4gKwkJaW50ZWxfZHAtPm1zdF9tYXN0ZXJfdHJhbnNjb2RlciA9IHBpcGVfY29uZmlnLQo+ID4g PiA+Y3B1X3RyYW5zY29kZXI7Cj4gPiA+ICAJCWludGVsX2RwX3NpbmtfZHBtcyhpbnRlbF9kcCwg RFJNX01PREVfRFBNU19PTik7Cj4gPiA+ICsJfQo+ID4gPiAgCj4gPiA+ICAJZHJtX2RwX3NlbmRf cG93ZXJfdXBkb3duX3BoeSgmaW50ZWxfZHAtPm1zdF9tZ3IsIGNvbm5lY3Rvci0KPiA+ID4gPnBv cnQsIHRydWUpOwo+ID4gPiAgCj4gPiA+IEBAIC03MTcsMyArODU1LDEyIEBAIGludGVsX2RwX21z dF9lbmNvZGVyX2NsZWFudXAoc3RydWN0Cj4gPiA+IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxf ZGlnX3BvcnQpCj4gPiA+ICAJZHJtX2RwX21zdF90b3BvbG9neV9tZ3JfZGVzdHJveSgmaW50ZWxf ZHAtPm1zdF9tZ3IpOwo+ID4gPiAgCS8qIGVuY29kZXJzIHdpbGwgZ2V0IGtpbGxlZCBieSBub3Jt YWwgY2xlYW51cCAqLwo+ID4gPiAgfQo+ID4gPiArCj4gPiA+ICtlbnVtIHRyYW5zY29kZXIKPiA+ ID4gK2ludGVsX2RwX21zdF9tYXN0ZXJfdHJhbnNfZ2V0KHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyKQo+ID4gPiArewo+ID4gPiArCXN0cnVjdCBpbnRlbF9kcF9tc3RfZW5jb2RlciAqaW50 ZWxfbXN0ID0gZW5jX3RvX21zdCgmZW5jb2Rlci0KPiA+ID4gPmJhc2UpOwo+ID4gPiArCXN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHAgPSAmaW50ZWxfbXN0LT5wcmltYXJ5LT5kcDsKPiA+ID4gKwo+ ID4gPiArCXJldHVybiBpbnRlbF9kcC0+bXN0X21hc3Rlcl90cmFuc2NvZGVyOwo+ID4gPiArfQo+ ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9t c3QuaAo+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmgK PiA+ID4gaW5kZXggZjY2MGFkODBkYjA0Li5lNmYyOGE1MTcxODIgMTAwNjQ0Cj4gPiA+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmgKPiA+ID4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9tc3QuaAo+ID4gPiBAQCAtNyw5 ICs3LDExIEBACj4gPiA+ICAjZGVmaW5lIF9fSU5URUxfRFBfTVNUX0hfXwo+ID4gPiAgCj4gPiA+ ICBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0Owo+ID4gPiArc3RydWN0IGludGVsX2VuY29kZXI7 Cj4gPiA+ICAKPiA+ID4gIGludCBpbnRlbF9kcF9tc3RfZW5jb2Rlcl9pbml0KHN0cnVjdCBpbnRl bF9kaWdpdGFsX3BvcnQKPiA+ID4gKmludGVsX2RpZ19wb3J0LCBpbnQgY29ubl9pZCk7Cj4gPiA+ ICB2b2lkIGludGVsX2RwX21zdF9lbmNvZGVyX2NsZWFudXAoc3RydWN0IGludGVsX2RpZ2l0YWxf cG9ydAo+ID4gPiAqaW50ZWxfZGlnX3BvcnQpOwo+ID4gPiAgaW50IGludGVsX2RwX21zdF9lbmNv ZGVyX2FjdGl2ZV9saW5rcyhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0Cj4gPiA+ICppbnRlbF9k aWdfcG9ydCk7Cj4gPiA+ICtlbnVtIHRyYW5zY29kZXIgaW50ZWxfZHBfbXN0X21hc3Rlcl90cmFu c19nZXQoc3RydWN0IGludGVsX2VuY29kZXIKPiA+ID4gKmVuY29kZXIpOwo+ID4gPiAgCj4gPiA+ ICAjZW5kaWYgLyogX19JTlRFTF9EUF9NU1RfSF9fICovCj4gPiA+IC0tIAo+ID4gPiAyLjI0LjAK Ci0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4