From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: [PATCH v3] drm/i915/icl: combo port vswing programming changes per BSPEC Date: Tue, 11 Dec 2018 11:40:43 +0200 Message-ID: <20181211094043.GE16782@ideak-desk.fi.intel.com> References: <1543618681-15255-1-git-send-email-clinton.a.taylor@intel.com> <1543966869-9759-1-git-send-email-clinton.a.taylor@intel.com> <20181205163222.GA8944@ideak-desk.fi.intel.com> Reply-To: imre.deak@intel.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8D1FA6E035 for ; Tue, 11 Dec 2018 09:40:46 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20181205163222.GA8944@ideak-desk.fi.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: clinton.a.taylor@intel.com Cc: Intel-gfx@lists.freedesktop.org, Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBEZWMgMDUsIDIwMTggYXQgMDY6MzI6MjJQTSArMDIwMCwgSW1yZSBEZWFrIHdyb3Rl Ogo+IE9uIFR1ZSwgRGVjIDA0LCAyMDE4IGF0IDAzOjQxOjA5UE0gLTA4MDAsIGNsaW50b24uYS50 YXlsb3JAaW50ZWwuY29tIHdyb3RlOgo+ID4gRnJvbTogQ2xpbnQgVGF5bG9yIDxjbGludG9uLmEu dGF5bG9yQGludGVsLmNvbT4KPiA+IAo+ID4gSW4gQXVndXN0IDIwMTggdGhlIEJTUEVDIGNoYW5n ZWQgdGhlIElDTCBwb3J0IHByb2dyYW1taW5nIHNlcXVlbmNlIHRvCj4gPiBjbG9zZWx5IHJlc2Vt YmxlIGVhcmxpZXIgZ2VuIHByb2dyYW1taW5nIHNlcXVlbmNlLgo+ID4gCj4gPiB2MjogcmVtb3Zl IGRlYnVnIGNvZGUgdGhhdCBJbXJlIGZvdW5kCj4gPiB2Mzogc2ltcGxpZnkgdHJhbnNsYXRpb24g dGFibGUgaWYtZWxzZQo+ID4gCj4gPiBCU3BlYzogMjEyNTcKPiA+IENjOiBWaWxsZSBTeXJqw6Rs w6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4gQ2M6IEltcmUgRGVhayA8aW1y ZS5kZWFrQGludGVsLmNvbT4KPiA+IENjOiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRl bC5jb20+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBDbGludCBUYXlsb3IgPGNsaW50b24uYS50YXlsb3JA aW50ZWwuY29tPgo+ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAg fCAgIDQgKwo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIHwgMjI0ICsrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gIDIgZmlsZXMgY2hhbmdlZCwg ODUgaW5zZXJ0aW9ucygrKSwgMTQzIGRlbGV0aW9ucygtKQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVnLmgKPiA+IGluZGV4IDBhN2Q2MDUuLjI5YWNkYjkgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlZy5oCj4gPiBAQCAtMTg2Niw2ICsxODY2LDEwIEBAIGVudW0gaTkxNV9wb3dlcl93 ZWxsX2lkIHsKPiA+ICAKPiA+ICAjZGVmaW5lIENOTF9QT1JUX1RYX0RXN19HUlAocG9ydCkJX01N SU8oX0NOTF9QT1JUX1RYX0RXX0dSUCgocG9ydCksIDcpKQo+ID4gICNkZWZpbmUgQ05MX1BPUlRf VFhfRFc3X0xOMChwb3J0KQlfTU1JTyhfQ05MX1BPUlRfVFhfRFdfTE4wKChwb3J0KSwgNykpCj4g PiArI2RlZmluZSBJQ0xfUE9SVF9UWF9EVzdfQVVYKHBvcnQpCV9NTUlPKF9JQ0xfUE9SVF9UWF9E V19BVVgoNywgcG9ydCkpCj4gPiArI2RlZmluZSBJQ0xfUE9SVF9UWF9EVzdfR1JQKHBvcnQpCV9N TUlPKF9JQ0xfUE9SVF9UWF9EV19HUlAoNywgcG9ydCkpCj4gPiArI2RlZmluZSBJQ0xfUE9SVF9U WF9EVzdfTE4wKHBvcnQpCV9NTUlPKF9JQ0xfUE9SVF9UWF9EV19MTig3LCAwLCBwb3J0KSkKPiA+ ICsjZGVmaW5lIElDTF9QT1JUX1RYX0RXN19MTihwb3J0LCBsbikJX01NSU8oX0lDTF9QT1JUX1RY X0RXX0xOKDcsIGxuLCBwb3J0KSkKPiAKPiBMb29rcyBsaWtlIF9DTkxfUE9SVF9UWF9EV19HUlAo KSBpcyBpbmNvbnNpc3RlbnQgd2l0aCB0aGUgSUNMCj4gY291bnRlcnBhcnQgYW5kIENOTF9QT1JU X1RYX0RXMl8qIC8gQ05MX1BPUlRfVFhfRFc1XyogYXJlIGJyb2tlbiBhdG0sCj4gdGhleSBuZWVk IHRvIGJlIGZpeGVkIGFzIGEgZm9sbG93LXVwLgo+IAo+ID4gICNkZWZpbmUgICBOX1NDQUxBUih4 KQkJCSgoeCkgPDwgMjQpCj4gPiAgI2RlZmluZSAgIE5fU0NBTEFSX01BU0sJCQkoMHg3RiA8PCAy NCkKPiA+ICAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGku YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gPiBpbmRleCBmM2UxZDZhLi5k NzhlYzE3IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMK PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gPiBAQCAtNDk0LDEw MyArNDk0LDYzIEBAIHN0cnVjdCBjbmxfZGRpX2J1Zl90cmFucyB7Cj4gPiAgCXsgMHgyLCAweDdG LCAweDNGLCAweDAwLCAweDAwIH0sCS8qIDQwMCAgIDQwMCAgICAgIDAuMCAgICovCj4gPiAgfTsK PiA+ICAKPiA+IC1zdHJ1Y3QgaWNsX2NvbWJvX3BoeV9kZGlfYnVmX3RyYW5zIHsKPiA+IC0JdTMy IGR3Ml9zd2luZ19zZWxlY3Q7Cj4gPiAtCXUzMiBkdzJfc3dpbmdfc2NhbGFyOwo+ID4gLQl1MzIg ZHc0X3NjYWxpbmc7Cj4gPiAtfTsKPiA+IC0KPiA+IC0vKiBWb2x0YWdlIFN3aW5nIFByb2dyYW1t aW5nIGZvciBWY2NJTyAwLjg1ViBmb3IgRFAgKi8KPiA+IC1zdGF0aWMgY29uc3Qgc3RydWN0IGlj bF9jb21ib19waHlfZGRpX2J1Zl90cmFucyBpY2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNf ZHBfaGRtaV8wXzg1VltdID0gewo+ID4gLQkJCQkvKiBWb2x0YWdlIG1WICBkYiAgICAqLwo+ID4g LQl7IDB4MiwgMHg5OCwgMHgwMDE4IH0sCS8qIDQwMCAgICAgICAgIDAuMCAgICovCj4gPiAtCXsg MHgyLCAweDk4LCAweDMwMTUgfSwJLyogNDAwICAgICAgICAgMy41ICAgKi8KPiA+IC0JeyAweDIs IDB4OTgsIDB4NjAxMiB9LAkvKiA0MDAgICAgICAgICA2LjAgICAqLwo+ID4gLQl7IDB4MiwgMHg5 OCwgMHg5MDBGIH0sCS8qIDQwMCAgICAgICAgIDkuNSAgICovCj4gPiAtCXsgMHhCLCAweDcwLCAw eDAwMTggfSwJLyogNjAwICAgICAgICAgMC4wICAgKi8KPiA+IC0JeyAweEIsIDB4NzAsIDB4MzAx NSB9LAkvKiA2MDAgICAgICAgICAzLjUgICAqLwo+ID4gLQl7IDB4QiwgMHg3MCwgMHg2MDEyIH0s CS8qIDYwMCAgICAgICAgIDYuMCAgICovCj4gPiAtCXsgMHg1LCAweDAwLCAweDAwMTggfSwJLyog ODAwICAgICAgICAgMC4wICAgKi8KPiA+IC0JeyAweDUsIDB4MDAsIDB4MzAxNSB9LAkvKiA4MDAg ICAgICAgICAzLjUgICAqLwo+ID4gLQl7IDB4NiwgMHg5OCwgMHgwMDE4IH0sCS8qIDEyMDAgICAg ICAgIDAuMCAgICovCj4gPiAtfTsKPiA+IC0KPiA+IC0vKiBGSVhNRSAtIEFmdGVyIHRhYmxlIGlz IHVwZGF0ZWQgaW4gQnNwZWMgKi8KPiA+IC0vKiBWb2x0YWdlIFN3aW5nIFByb2dyYW1taW5nIGZv ciBWY2NJTyAwLjg1ViBmb3IgZURQICovCj4gPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBpY2xfY29t Ym9fcGh5X2RkaV9idWZfdHJhbnMgaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2VkcF8w Xzg1VltdID0gewo+ID4gLQkJCQkvKiBWb2x0YWdlIG1WICBkYiAgICAqLwo+ID4gLQl7IDB4MCwg MHgwMCwgMHgwMCB9LAkvKiAyMDAgICAgICAgICAwLjAgICAqLwo+ID4gLQl7IDB4MCwgMHgwMCwg MHgwMCB9LAkvKiAyMDAgICAgICAgICAxLjUgICAqLwo+ID4gLQl7IDB4MCwgMHgwMCwgMHgwMCB9 LAkvKiAyMDAgICAgICAgICA0LjAgICAqLwo+ID4gLQl7IDB4MCwgMHgwMCwgMHgwMCB9LAkvKiAy MDAgICAgICAgICA2LjAgICAqLwo+ID4gLQl7IDB4MCwgMHgwMCwgMHgwMCB9LAkvKiAyNTAgICAg ICAgICAwLjAgICAqLwo+ID4gLQl7IDB4MCwgMHgwMCwgMHgwMCB9LAkvKiAyNTAgICAgICAgICAx LjUgICAqLwo+ID4gLQl7IDB4MCwgMHgwMCwgMHgwMCB9LAkvKiAyNTAgICAgICAgICA0LjAgICAq Lwo+ID4gLQl7IDB4MCwgMHgwMCwgMHgwMCB9LAkvKiAzMDAgICAgICAgICAwLjAgICAqLwo+ID4g LQl7IDB4MCwgMHgwMCwgMHgwMCB9LAkvKiAzMDAgICAgICAgICAxLjUgICAqLwo+ID4gLQl7IDB4 MCwgMHgwMCwgMHgwMCB9LAkvKiAzNTAgICAgICAgICAwLjAgICAqLwo+ID4gKy8qIGljbF9jb21i b19waHlfZGRpX3RyYW5zbGF0aW9ucyAqLwo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY25sX2Rk aV9idWZfdHJhbnMgaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwW10gPSB7Cj4gPiAr CQkJCQkJLyogTlQgbVYgVHJhbnMgbVYgZGIgICAgKi8KPiA+ICsJeyAweEEsIDB4MzUsIDB4M0Ys IDB4MDAsIDB4MDAgfSwJLyogMzUwICAgMzUwICAgICAgMC4wICAgKi8KPiA+ICsJeyAweEEsIDB4 NEYsIDB4MzcsIDB4MDAsIDB4MDggfSwJLyogMzUwICAgNTAwICAgICAgMy4xICAgKi8KPiA+ICsJ eyAweEMsIDB4NzEsIDB4MkYsIDB4MDAsIDB4MTAgfSwJLyogMzUwICAgNzAwICAgICAgNi4wICAg Ki8KPiA+ICsJeyAweDYsIDB4N0YsIDB4MkIsIDB4MDAsIDB4MTQgfSwJLyogMzUwICAgOTAwICAg ICAgOC4yICAgKi8KPiA+ICsJeyAweEEsIDB4NEMsIDB4M0YsIDB4MDAsIDB4MDAgfSwJLyogNTAw ICAgNTAwICAgICAgMC4wICAgKi8KPiA+ICsJeyAweEMsIDB4NzMsIDB4MzQsIDB4MDAsIDB4MEIg fSwJLyogNTAwICAgNzAwICAgICAgMi45ICAgKi8KPiA+ICsJeyAweDYsIDB4N0YsIDB4MkYsIDB4 MDAsIDB4MTAgfSwJLyogNTAwICAgOTAwICAgICAgNS4xICAgKi8KPiA+ICsJeyAweEMsIDB4NkMs IDB4M0MsIDB4MDAsIDB4MDMgfSwJLyogNjUwICAgNzA1ICAgICAgMC42ICAgKi8KPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLS1eIDcwMAo+ IAo+ID4gKwl7IDB4NiwgMHg3RiwgMHgzNSwgMHgwMCwgMHgwQSB9LAkvKiA2MDAgICA5MDAgICAg ICAzLjUgICAqLwo+ID4gKwl7IDB4NiwgMHg3RiwgMHgzRiwgMHgwMCwgMHgwMCB9LAkvKiA5MDAg ICA5MDAgICAgICAwLjAgICAqLwo+ID4gIH07Cj4gPiAgCj4gPiAtLyogVm9sdGFnZSBTd2luZyBQ cm9ncmFtbWluZyBmb3IgVmNjSU8gMC45NVYgZm9yIERQICovCj4gPiAtc3RhdGljIGNvbnN0IHN0 cnVjdCBpY2xfY29tYm9fcGh5X2RkaV9idWZfdHJhbnMgaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNs YXRpb25zX2RwX2hkbWlfMF85NVZbXSA9IHsKPiA+IC0JCQkJLyogVm9sdGFnZSBtViAgZGIgICAg Ki8KPiA+IC0JeyAweDIsIDB4OTgsIDB4MDAxOCB9LAkvKiA0MDAgICAgICAgICAwLjAgICAqLwo+ ID4gLQl7IDB4MiwgMHg5OCwgMHgzMDE1IH0sCS8qIDQwMCAgICAgICAgIDMuNSAgICovCj4gPiAt CXsgMHgyLCAweDk4LCAweDYwMTIgfSwJLyogNDAwICAgICAgICAgNi4wICAgKi8KPiA+IC0JeyAw eDIsIDB4OTgsIDB4OTAwRiB9LAkvKiA0MDAgICAgICAgICA5LjUgICAqLwo+ID4gLQl7IDB4NCwg MHg5OCwgMHgwMDE4IH0sCS8qIDYwMCAgICAgICAgIDAuMCAgICovCj4gPiAtCXsgMHg0LCAweDk4 LCAweDMwMTUgfSwJLyogNjAwICAgICAgICAgMy41ICAgKi8KPiA+IC0JeyAweDQsIDB4OTgsIDB4 NjAxMiB9LAkvKiA2MDAgICAgICAgICA2LjAgICAqLwo+ID4gLQl7IDB4NSwgMHg3NiwgMHgwMDE4 IH0sCS8qIDgwMCAgICAgICAgIDAuMCAgICovCj4gPiAtCXsgMHg1LCAweDc2LCAweDMwMTUgfSwJ LyogODAwICAgICAgICAgMy41ICAgKi8KPiA+IC0JeyAweDYsIDB4OTgsIDB4MDAxOCB9LAkvKiAx MjAwICAgICAgICAwLjAgICAqLwo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY25sX2RkaV9idWZf dHJhbnMgaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2VkcF9sb3dzd2luZ1tdID0gewo+ ID4gKwkJCQkJCS8qIE5UIG1WIFRyYW5zIG1WIGRiICAgICovCj4gPiArCXsgMHgwLCAweDdGLCAw eDNGLCAweDAwLCAweDAwIH0sCS8qIDIwMCAgIDIwMCAgICAgIDAuMCAgICovCj4gPiArCXsgMHg4 LCAweDdGLCAweDM4LCAweDAwLCAweDA3IH0sCS8qIDIwMCAgIDI1MCAgICAgIDEuOSAgICovCj4g PiArCXsgMHgxLCAweDdGLCAweDMzLCAweDAwLCAweDBDIH0sCS8qIDIwMCAgIDMwMCAgICAgIDMu NSAgICovCj4gPiArCXsgMHg5LCAweDdGLCAweDMxLCAweDAwLCAweDBFIH0sCS8qIDIwMCAgIDM1 MCAgICAgIDQuOSAgICovCj4gPiArCXsgMHg4LCAweDdGLCAweDNGLCAweDAwLCAweDAwIH0sCS8q IDI1MCAgIDI1MCAgICAgIDAuMCAgICovCj4gPiArCXsgMHgxLCAweDdGLCAweDM4LCAweDAwLCAw eDA3IH0sCS8qIDI1MCAgIDMwMCAgICAgIDEuNiAgICovCj4gPiArCXsgMHg5LCAweDdGLCAweDM1 LCAweDAwLCAweDBBIH0sCS8qIDI1MCAgIDM1MCAgICAgIDIuOSAgICovCj4gPiArCXsgMHgxLCAw eDdGLCAweDNGLCAweDAwLCAweDAwIH0sCS8qIDMwMCAgIDMwMCAgICAgIDAuMCAgICovCj4gPiAr CXsgMHg5LCAweDdGLCAweDM4LCAweDAwLCAweDA3IH0sCS8qIDMwMCAgIDM1MCAgICAgIDEuMyAg ICovCj4gPiArCXsgMHg5LCAweDdGLCAweDNGLCAweDAwLCAweDAwIH0sCS8qIDM1MCAgIDM1MCAg ICAgIDAuMCAgICovCj4gPiAgfTsKPiA+ICAKPiA+IC0vKiBGSVhNRSAtIEFmdGVyIHRhYmxlIGlz IHVwZGF0ZWQgaW4gQnNwZWMgKi8KPiA+IC0vKiBWb2x0YWdlIFN3aW5nIFByb2dyYW1taW5nIGZv ciBWY2NJTyAwLjk1ViBmb3IgZURQICovCj4gPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBpY2xfY29t Ym9fcGh5X2RkaV9idWZfdHJhbnMgaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2VkcF8w Xzk1VltdID0gewo+ID4gLQkJCQkvKiBWb2x0YWdlIG1WICBkYiAgICAqLwo+ID4gLQl7IDB4MCwg MHgwMCwgMHgwMCB9LAkvKiAyMDAgICAgICAgICAwLjAgICAqLwo+ID4gLQl7IDB4MCwgMHgwMCwg MHgwMCB9LAkvKiAyMDAgICAgICAgICAxLjUgICAqLwo+ID4gLQl7IDB4MCwgMHgwMCwgMHgwMCB9 LAkvKiAyMDAgICAgICAgICA0LjAgICAqLwo+ID4gLQl7IDB4MCwgMHgwMCwgMHgwMCB9LAkvKiAy MDAgICAgICAgICA2LjAgICAqLwo+ID4gLQl7IDB4MCwgMHgwMCwgMHgwMCB9LAkvKiAyNTAgICAg ICAgICAwLjAgICAqLwo+ID4gLQl7IDB4MCwgMHgwMCwgMHgwMCB9LAkvKiAyNTAgICAgICAgICAx LjUgICAqLwo+ID4gLQl7IDB4MCwgMHgwMCwgMHgwMCB9LAkvKiAyNTAgICAgICAgICA0LjAgICAq Lwo+ID4gLQl7IDB4MCwgMHgwMCwgMHgwMCB9LAkvKiAzMDAgICAgICAgICAwLjAgICAqLwo+ID4g LQl7IDB4MCwgMHgwMCwgMHgwMCB9LAkvKiAzMDAgICAgICAgICAxLjUgICAqLwo+ID4gLQl7IDB4 MCwgMHgwMCwgMHgwMCB9LAkvKiAzNTAgICAgICAgICAwLjAgICAqLwo+ID4gK3N0YXRpYyBjb25z dCBzdHJ1Y3QgY25sX2RkaV9idWZfdHJhbnMgaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25z X2VkcF9oYnIzW10gPSB7Cj4gPiArCQkJCQkJLyogTlQgbVYgVHJhbnMgbVYgZGIgICAgKi8KPiA+ ICsJeyAweEEsIDB4MzUsIDB4M0YsIDB4MDAsIDB4MDAgfSwJLyogMzUwICAgMzUwICAgICAgMC4w ICAgKi8KPiA+ICsJeyAweEEsIDB4NEYsIDB4MzcsIDB4MDAsIDB4MDggfSwJLyogMzUwICAgNTAw ICAgICAgMy4xICAgKi8KPiA+ICsJeyAweEMsIDB4NzEsIDB4MkYsIDB4MDAsIDB4MTAgfSwJLyog MzUwICAgNzAwICAgICAgNi4wICAgKi8KPiA+ICsJeyAweDYsIDB4N0YsIDB4MkIsIDB4MDAsIDB4 MTQgfSwJLyogMzUwICAgOTAwICAgICAgOC4yICAgKi8KPiA+ICsJeyAweEEsIDB4NEMsIDB4M0Ys IDB4MDAsIDB4MDAgfSwJLyogNTAwICAgNTAwICAgICAgMC4wICAgKi8KPiA+ICsJeyAweEMsIDB4 NzMsIDB4MzQsIDB4MDAsIDB4MEIgfSwJLyogNTAwICAgNzAwICAgICAgMi45ICAgKi8KPiA+ICsJ eyAweDYsIDB4N0YsIDB4MkYsIDB4MDAsIDB4MTAgfSwJLyogNTAwICAgOTAwICAgICAgNS4xICAg Ki8KPiA+ICsJeyAweEMsIDB4NkMsIDB4M0MsIDB4MDAsIDB4MDMgfSwJLyogNjUwICAgNzAwICAg ICAgMC42ICAgKi8KPiA+ICsJeyAweDYsIDB4N0YsIDB4MzUsIDB4MDAsIDB4MEEgfSwJLyogNjAw ICAgOTAwICAgICAgMy41ICAgKi8KPiA+ICsJeyAweDYsIDB4N0YsIDB4M0YsIDB4MDAsIDB4MDAg fSwJLyogOTAwICAgOTAwICAgICAgMC4wICAgKi8KPiA+ICB9Owo+ID4gIAo+ID4gLS8qIFZvbHRh Z2UgU3dpbmcgUHJvZ3JhbW1pbmcgZm9yIFZjY0lPIDEuMDVWIGZvciBEUCAqLwo+ID4gLXN0YXRp YyBjb25zdCBzdHJ1Y3QgaWNsX2NvbWJvX3BoeV9kZGlfYnVmX3RyYW5zIGljbF9jb21ib19waHlf ZGRpX3RyYW5zbGF0aW9uc19kcF9oZG1pXzFfMDVWW10gPSB7Cj4gPiAtCQkJCS8qIFZvbHRhZ2Ug bVYgIGRiICAgICovCj4gPiAtCXsgMHgyLCAweDk4LCAweDAwMTggfSwJLyogNDAwICAgICAgICAg MC4wICAgKi8KPiA+IC0JeyAweDIsIDB4OTgsIDB4MzAxNSB9LAkvKiA0MDAgICAgICAgICAzLjUg ICAqLwo+ID4gLQl7IDB4MiwgMHg5OCwgMHg2MDEyIH0sCS8qIDQwMCAgICAgICAgIDYuMCAgICov Cj4gPiAtCXsgMHgyLCAweDk4LCAweDkwMEYgfSwJLyogNDAwICAgICAgICAgOS41ICAgKi8KPiA+ IC0JeyAweDQsIDB4OTgsIDB4MDAxOCB9LAkvKiA2MDAgICAgICAgICAwLjAgICAqLwo+ID4gLQl7 IDB4NCwgMHg5OCwgMHgzMDE1IH0sCS8qIDYwMCAgICAgICAgIDMuNSAgICovCj4gPiAtCXsgMHg0 LCAweDk4LCAweDYwMTIgfSwJLyogNjAwICAgICAgICAgNi4wICAgKi8KPiA+IC0JeyAweDUsIDB4 NzEsIDB4MDAxOCB9LAkvKiA4MDAgICAgICAgICAwLjAgICAqLwo+ID4gLQl7IDB4NSwgMHg3MSwg MHgzMDE1IH0sCS8qIDgwMCAgICAgICAgIDMuNSAgICovCj4gPiAtCXsgMHg2LCAweDk4LCAweDAw MTggfSwJLyogMTIwMCAgICAgICAgMC4wICAgKi8KPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGNu bF9kZGlfYnVmX3RyYW5zIGljbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19oZG1pW10gPSB7 Cj4gPiArCQkJCQkJLyogTlQgbVYgVHJhbnMgbVYgZGIgICAgKi8KPiA+ICsJeyAweEEsIDB4NjAs IDB4M0YsIDB4MDAsIDB4MDAgfSwJLyogNDUwICAgNDUwICAgICAgMC4wICAgKi8KPiA+ICsJeyAw eEIsIDB4NzMsIDB4MzYsIDB4MDAsIDB4MDkgfSwJLyogNDUwICAgNjUwICAgICAgMy4yICAgKi8K PiA+ICsJeyAweDYsIDB4N0YsIDB4MzEsIDB4MDAsIDB4MEUgfSwJLyogNDUwICAgODUwICAgICAg NS41ICAgKi8KPiA+ICsJeyAweEIsIDB4NzMsIDB4M0YsIDB4MDAsIDB4MDAgfSwJLyogNjUwICAg NjUwICAgICAgMC4wICAgQUxTICovCj4gPiArCXsgMHg2LCAweDdGLCAweDM3LCAweDAwLCAweDA4 IH0sCS8qIDY1MCAgIDg1MCAgICAgIDIuMyAgICovCj4gPiArCXsgMHg2LCAweDdGLCAweDNGLCAw eDAwLCAweDAwIH0sCS8qIDg1MCAgIDg1MCAgICAgIDAuMCAgICovCj4gPiArCXsgMHg2LCAweDdG LCAweDM1LCAweDAwLCAweDBBIH0sCS8qIDYwMCAgIDg1MCAgICAgIDMuMCAgICovCj4gPiAgfTsK PiA+ICAKPiA+IC0vKiBGSVhNRSAtIEFmdGVyIHRhYmxlIGlzIHVwZGF0ZWQgaW4gQnNwZWMgKi8K PiA+IC0vKiBWb2x0YWdlIFN3aW5nIFByb2dyYW1taW5nIGZvciBWY2NJTyAxLjA1ViBmb3IgZURQ ICovCj4gPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBpY2xfY29tYm9fcGh5X2RkaV9idWZfdHJhbnMg aWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2VkcF8xXzA1VltdID0gewo+ID4gLQkJCQkv KiBWb2x0YWdlIG1WICBkYiAgICAqLwo+ID4gLQl7IDB4MCwgMHgwMCwgMHgwMCB9LAkvKiAyMDAg ICAgICAgICAwLjAgICAqLwo+ID4gLQl7IDB4MCwgMHgwMCwgMHgwMCB9LAkvKiAyMDAgICAgICAg ICAxLjUgICAqLwo+ID4gLQl7IDB4MCwgMHgwMCwgMHgwMCB9LAkvKiAyMDAgICAgICAgICA0LjAg ICAqLwo+ID4gLQl7IDB4MCwgMHgwMCwgMHgwMCB9LAkvKiAyMDAgICAgICAgICA2LjAgICAqLwo+ ID4gLQl7IDB4MCwgMHgwMCwgMHgwMCB9LAkvKiAyNTAgICAgICAgICAwLjAgICAqLwo+ID4gLQl7 IDB4MCwgMHgwMCwgMHgwMCB9LAkvKiAyNTAgICAgICAgICAxLjUgICAqLwo+ID4gLQl7IDB4MCwg MHgwMCwgMHgwMCB9LAkvKiAyNTAgICAgICAgICA0LjAgICAqLwo+ID4gLQl7IDB4MCwgMHgwMCwg MHgwMCB9LAkvKiAzMDAgICAgICAgICAwLjAgICAqLwo+ID4gLQl7IDB4MCwgMHgwMCwgMHgwMCB9 LAkvKiAzMDAgICAgICAgICAxLjUgICAqLwo+ID4gLQl7IDB4MCwgMHgwMCwgMHgwMCB9LAkvKiAz NTAgICAgICAgICAwLjAgICAqLwo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY25sX2RkaV9idWZf dHJhbnMgaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX21pcGlbXSA9IHsKPiA+ICsJCQkJ CQkvKiBOVCBtViBUcmFucyBtViBkYiAgICAqLwo+ID4gKwl7IDB4MiwgMHg3RiwgMHgzRiwgMHgw MCwgMHgwMCB9LAkvKiA0MDAgICA0MDAgICAgICAwLjAgICAqLwo+IAo+IFRoZSBEU0kgY29kZSBo YXMgaXRzIG93biBQSFkgcHJvZ3JhbW1pbmcgYXRtLCBhbmQgdGhpcyB0YWJsZSBoZXJlIGlzCj4g dW51c2VkIHNvIG5vIG5lZWQgYWRkaW5nIGl0Lgo+IAo+IFVucmVsYXRlZCBidXQgbG9va3MgbGlr ZSB0aGUgRFNJIGNvZGUgZG9lc24ndCBwcm9ncmFtIElDTF9QT1JUX1RYX0RXNywKPiB0aGF0IHNo b3VsZCBiZSBmaXhlZCBhcyBhIGZvbGxvdy11cC4KPiAKPiA+ICB9Owo+ID4gIAo+ID4gIHN0cnVj dCBpY2xfbWdfcGh5X2RkaV9idWZfdHJhbnMgewo+ID4gQEAgLTg3MSw0MyArODMxLDI0IEBAIHN0 YXRpYyBpbnQgc2tsX2J1Zl90cmFuc19udW1fZW50cmllcyhlbnVtIHBvcnQgcG9ydCwgaW50IG5f ZW50cmllcykKPiA+ICAJfQo+ID4gIH0KPiA+ICAKPiA+IC1zdGF0aWMgY29uc3Qgc3RydWN0IGlj bF9jb21ib19waHlfZGRpX2J1Zl90cmFucyAqCj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBjbmxf ZGRpX2J1Zl90cmFucyAqCj4gPiAgaWNsX2dldF9jb21ib19idWZfdHJhbnMoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQgcG9ydCwKPiA+ICAJCQlpbnQgdHlwZSwg aW50ICpuX2VudHJpZXMpCj4gPiAgewo+ID4gLQl1MzIgdm9sdGFnZSA9IEk5MTVfUkVBRChJQ0xf UE9SVF9DT01QX0RXMyhwb3J0KSkgJiBWT0xUQUdFX0lORk9fTUFTSzsKPiA+IC0KPiA+IC0JaWYg KHR5cGUgPT0gSU5URUxfT1VUUFVUX0VEUCAmJiBkZXZfcHJpdi0+dmJ0LmVkcC5sb3dfdnN3aW5n KSB7Cj4gPiAtCQlzd2l0Y2ggKHZvbHRhZ2UpIHsKPiA+IC0JCWNhc2UgVk9MVEFHRV9JTkZPXzBf ODVWOgo+ID4gLQkJCSpuX2VudHJpZXMgPSBBUlJBWV9TSVpFKGljbF9jb21ib19waHlfZGRpX3Ry YW5zbGF0aW9uc19lZHBfMF84NVYpOwo+ID4gLQkJCXJldHVybiBpY2xfY29tYm9fcGh5X2RkaV90 cmFuc2xhdGlvbnNfZWRwXzBfODVWOwo+ID4gLQkJY2FzZSBWT0xUQUdFX0lORk9fMF85NVY6Cj4g PiAtCQkJKm5fZW50cmllcyA9IEFSUkFZX1NJWkUoaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRp b25zX2VkcF8wXzk1Vik7Cj4gPiAtCQkJcmV0dXJuIGljbF9jb21ib19waHlfZGRpX3RyYW5zbGF0 aW9uc19lZHBfMF85NVY7Cj4gPiAtCQljYXNlIFZPTFRBR0VfSU5GT18xXzA1VjoKPiA+IC0JCQkq bl9lbnRyaWVzID0gQVJSQVlfU0laRShpY2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZWRw XzFfMDVWKTsKPiA+IC0JCQlyZXR1cm4gaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2Vk cF8xXzA1VjsKPiA+IC0JCWRlZmF1bHQ6Cj4gPiAtCQkJTUlTU0lOR19DQVNFKHZvbHRhZ2UpOwo+ ID4gLQkJCXJldHVybiBOVUxMOwo+ID4gLQkJfQo+ID4gLQl9IGVsc2Ugewo+ID4gLQkJc3dpdGNo ICh2b2x0YWdlKSB7Cj4gPiAtCQljYXNlIFZPTFRBR0VfSU5GT18wXzg1VjoKPiA+IC0JCQkqbl9l bnRyaWVzID0gQVJSQVlfU0laRShpY2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGRt aV8wXzg1Vik7Cj4gPiAtCQkJcmV0dXJuIGljbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19k cF9oZG1pXzBfODVWOwo+ID4gLQkJY2FzZSBWT0xUQUdFX0lORk9fMF85NVY6Cj4gPiAtCQkJKm5f ZW50cmllcyA9IEFSUkFZX1NJWkUoaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hk bWlfMF85NVYpOwo+ID4gLQkJCXJldHVybiBpY2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNf ZHBfaGRtaV8wXzk1VjsKPiA+IC0JCWNhc2UgVk9MVEFHRV9JTkZPXzFfMDVWOgo+ID4gLQkJCSpu X2VudHJpZXMgPSBBUlJBWV9TSVpFKGljbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19kcF9o ZG1pXzFfMDVWKTsKPiA+IC0JCQlyZXR1cm4gaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25z X2RwX2hkbWlfMV8wNVY7Cj4gPiAtCQlkZWZhdWx0Ogo+ID4gLQkJCU1JU1NJTkdfQ0FTRSh2b2x0 YWdlKTsKPiA+IC0JCQlyZXR1cm4gTlVMTDsKPiA+IC0JCX0KPiA+ICsKPiA+ICsJaWYgKHR5cGUg PT0gSU5URUxfT1VUUFVUX0hETUkpIHsKPiA+ICsJCSpuX2VudHJpZXMgPSBBUlJBWV9TSVpFKGlj bF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19oZG1pKTsKPiA+ICsJCXJldHVybiBpY2xfY29t Ym9fcGh5X2RkaV90cmFuc2xhdGlvbnNfaGRtaTsKPiA+ICsJfSBlbHNlIGlmICh0eXBlID09IElO VEVMX09VVFBVVF9FRFAgJiYgZGV2X3ByaXYtPnZidC5lZHAubG93X3Zzd2luZykgewo+ID4gKwkJ Km5fZW50cmllcyA9IEFSUkFZX1NJWkUoaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2Vk cF9sb3dzd2luZyk7Cj4gPiArCQlyZXR1cm4gaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25z X2VkcF9sb3dzd2luZzsKPiAKPiBIbSwgYm90aCBpbiB0aGUgQ05MIGFuZCB0aGlzIElDTCBjb2Rl LCBub3Qgc3VyZSB3aHkgd2Ugd291bGQgdXNlIHRoZQo+IEhCUjIgdGFibGUgd2hlbiB0aGUgbG93 X3Zzd2luZyBwYXJhbSBpcyBzZXQuIEl0IHdvdWxkIGJlIG1vcmUgbG9naWNhbCB0bwo+IG1lIHRo YXQgSEJSMiBpcyB0byBiZSB1c2VkIHdoZW4gdGhlIGFjdHVhbCBsaW5rIHJhdGUgaXMgSEJSMiwg ZWxzZSB3ZSdkCj4gdXNlIHRoZSBIQlIzIHRhYmxlLiBCWFQsIElDTCBzdGlsbCBkZWZpbmVkIHRo ZXNlIGxvdyB2c3dpbmcgdGFibGVzIGJ1dAo+IENOTCBhbmQgSUNMIGRvbid0LiBXZSBzaG91bGQg YXQgbGVhc3QgYXNrIGZvciBjbGFyaWZpY2F0aW9uIGFib3V0IHRoaXMKPiBpbiBCU3BlYy4KCkJh c2VkIG9uIHRoZSByZWNlbnQgQlNwZWMgdXBkYXRlLCB3ZSBzaG91bGQganVzdCBpZ25vcmUKZGV2 X3ByaXYtPnZidC5lZHAubG93X3Zzd2luZyBhbmQgdXNlIHRoZSAiZWRwIHVwIHRvIEhCUjIiIHRh YmxlIGlmIHRoZQpsaW5rIHJhdGUgaXMgPD0gSEJSMiBhbmQgdGhlICJlZHAgSEJSMyIgdGFibGUg b3RoZXJ3aXNlLgoKQ291bGQgeW91IHJlc2VuZCB0aGUgcGF0Y2ggd2l0aCB0aGF0IGNoYW5nZWQg KGFuZCB0aGUgMiBvdGhlciBpc3N1ZXMKYWJvdmUgYWRkcmVzc2VkKT8KClRoYW5rcywKSW1yZQoK PiAKPiBPdGhlciB0aGFuIHRoZSBhYm92ZSB0aGUgcGF0Y2ggbG9va3Mgb2ssIGJ1dCBJJ2Qgd2Fp dCBmb3IgdGhlIEJTcGVjCj4gY2xhcmlmaWNhdGlvbiB1bnRpbCBhZGRpbmcgUi1iLgo+IAo+ID4g Kwl9IGVsc2UgaWYgKHR5cGUgPT0gSU5URUxfT1VUUFVUX0VEUCkgewo+ID4gKwkJKm5fZW50cmll cyA9IEFSUkFZX1NJWkUoaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2VkcF9oYnIzKTsK PiA+ICsJCXJldHVybiBpY2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZWRwX2hicjM7Cj4g PiAgCX0KPiA+ICsKPiA+ICsJKm5fZW50cmllcyA9IEFSUkFZX1NJWkUoaWNsX2NvbWJvX3BoeV9k ZGlfdHJhbnNsYXRpb25zX2RwKTsKPiA+ICsJcmV0dXJuIGljbF9jb21ib19waHlfZGRpX3RyYW5z bGF0aW9uc19kcDsKPiA+ICB9Cj4gPiAgCj4gPiAgc3RhdGljIGludCBpbnRlbF9kZGlfaGRtaV9s ZXZlbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBwb3J0KQo+ ID4gQEAgLTI0NjQsNyArMjQwNSw3IEBAIHN0YXRpYyB2b2lkIGNubF9kZGlfdnN3aW5nX3NlcXVl bmNlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gIHN0YXRpYyB2b2lkIGljbF9k ZGlfY29tYm9fdnN3aW5nX3Byb2dyYW0oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ID4gIAkJCQkJIHUzMiBsZXZlbCwgZW51bSBwb3J0IHBvcnQsIGludCB0eXBlKQo+ID4gIHsK PiA+IC0JY29uc3Qgc3RydWN0IGljbF9jb21ib19waHlfZGRpX2J1Zl90cmFucyAqZGRpX3RyYW5z bGF0aW9ucyA9IE5VTEw7Cj4gPiArCWNvbnN0IHN0cnVjdCBjbmxfZGRpX2J1Zl90cmFucyAqZGRp X3RyYW5zbGF0aW9ucyA9IE5VTEw7Cj4gPiAgCXUzMiBuX2VudHJpZXMsIHZhbDsKPiA+ICAJaW50 IGxuOwo+ID4gIAo+ID4gQEAgLTI0NzgsMzQgKzI0MTksMjMgQEAgc3RhdGljIHZvaWQgaWNsX2Rk aV9jb21ib192c3dpbmdfcHJvZ3JhbShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs Cj4gPiAgCQlsZXZlbCA9IG5fZW50cmllcyAtIDE7Cj4gPiAgCX0KPiA+ICAKPiA+IC0JLyogU2V0 IFBPUlRfVFhfRFc1IFJ0ZXJtIFNlbCB0byAxMTBiLiAqLwo+ID4gKwkvKiBTZXQgUE9SVF9UWF9E VzUgKi8KPiA+ICAJdmFsID0gSTkxNV9SRUFEKElDTF9QT1JUX1RYX0RXNV9MTjAocG9ydCkpOwo+ ID4gLQl2YWwgJj0gflJURVJNX1NFTEVDVF9NQVNLOwo+ID4gKwl2YWwgJj0gfihTQ0FMSU5HX01P REVfU0VMX01BU0sgfCBSVEVSTV9TRUxFQ1RfTUFTSyB8Cj4gPiArCQkgIFRBUDJfRElTQUJMRSB8 IFRBUDNfRElTQUJMRSk7Cj4gPiArCXZhbCB8PSBTQ0FMSU5HX01PREVfU0VMKDB4Mik7Cj4gPiAg CXZhbCB8PSBSVEVSTV9TRUxFQ1QoMHg2KTsKPiA+IC0JSTkxNV9XUklURShJQ0xfUE9SVF9UWF9E VzVfR1JQKHBvcnQpLCB2YWwpOwo+ID4gLQo+ID4gLQkvKiBQcm9ncmFtIFBPUlRfVFhfRFc1ICov Cj4gPiAtCXZhbCA9IEk5MTVfUkVBRChJQ0xfUE9SVF9UWF9EVzVfTE4wKHBvcnQpKTsKPiA+IC0J LyogU2V0IERpc2FibGVUYXAyIGFuZCBEaXNhYmxlVGFwMyBpZiBNSVBJIERTSQo+ID4gLQkgKiBD bGVhciBEaXNhYmxlVGFwMiBhbmQgRGlzYWJsZVRhcDMgZm9yIGFsbCBvdGhlciBQb3J0cwo+ID4g LQkgKi8KPiA+IC0JaWYgKHR5cGUgPT0gSU5URUxfT1VUUFVUX0RTSSkgewo+ID4gLQkJdmFsIHw9 IFRBUDJfRElTQUJMRTsKPiA+IC0JCXZhbCB8PSBUQVAzX0RJU0FCTEU7Cj4gPiAtCX0gZWxzZSB7 Cj4gPiAtCQl2YWwgJj0gflRBUDJfRElTQUJMRTsKPiA+IC0JCXZhbCAmPSB+VEFQM19ESVNBQkxF Owo+ID4gLQl9Cj4gPiArCXZhbCB8PSBUQVAzX0RJU0FCTEU7Cj4gPiAgCUk5MTVfV1JJVEUoSUNM X1BPUlRfVFhfRFc1X0dSUChwb3J0KSwgdmFsKTsKPiA+ICAKPiA+ICAJLyogUHJvZ3JhbSBQT1JU X1RYX0RXMiAqLwo+ID4gIAl2YWwgPSBJOTE1X1JFQUQoSUNMX1BPUlRfVFhfRFcyX0xOMChwb3J0 KSk7Cj4gPiAgCXZhbCAmPSB+KFNXSU5HX1NFTF9MT1dFUl9NQVNLIHwgU1dJTkdfU0VMX1VQUEVS X01BU0sgfAo+ID4gIAkJIFJDT01QX1NDQUxBUl9NQVNLKTsKPiA+IC0JdmFsIHw9IFNXSU5HX1NF TF9VUFBFUihkZGlfdHJhbnNsYXRpb25zW2xldmVsXS5kdzJfc3dpbmdfc2VsZWN0KTsKPiA+IC0J dmFsIHw9IFNXSU5HX1NFTF9MT1dFUihkZGlfdHJhbnNsYXRpb25zW2xldmVsXS5kdzJfc3dpbmdf c2VsZWN0KTsKPiA+ICsJdmFsIHw9IFNXSU5HX1NFTF9VUFBFUihkZGlfdHJhbnNsYXRpb25zW2xl dmVsXS5kdzJfc3dpbmdfc2VsKTsKPiA+ICsJdmFsIHw9IFNXSU5HX1NFTF9MT1dFUihkZGlfdHJh bnNsYXRpb25zW2xldmVsXS5kdzJfc3dpbmdfc2VsKTsKPiA+ICAJLyogUHJvZ3JhbSBSY29tcCBz Y2FsYXIgZm9yIGV2ZXJ5IHRhYmxlIGVudHJ5ICovCj4gPiAtCXZhbCB8PSBSQ09NUF9TQ0FMQVIo ZGRpX3RyYW5zbGF0aW9uc1tsZXZlbF0uZHcyX3N3aW5nX3NjYWxhcik7Cj4gPiArCXZhbCB8PSBS Q09NUF9TQ0FMQVIoMHg5OCk7Cj4gPiAgCUk5MTVfV1JJVEUoSUNMX1BPUlRfVFhfRFcyX0dSUChw b3J0KSwgdmFsKTsKPiA+ICAKPiA+ICAJLyogUHJvZ3JhbSBQT1JUX1RYX0RXNCAqLwo+ID4gQEAg LTI1MTQsOSArMjQ0NCwxNyBAQCBzdGF0aWMgdm9pZCBpY2xfZGRpX2NvbWJvX3Zzd2luZ19wcm9n cmFtKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ICAJCXZhbCA9IEk5MTVf UkVBRChJQ0xfUE9SVF9UWF9EVzRfTE4ocG9ydCwgbG4pKTsKPiA+ICAJCXZhbCAmPSB+KFBPU1Rf Q1VSU09SXzFfTUFTSyB8IFBPU1RfQ1VSU09SXzJfTUFTSyB8Cj4gPiAgCQkJIENVUlNPUl9DT0VG Rl9NQVNLKTsKPiA+IC0JCXZhbCB8PSBkZGlfdHJhbnNsYXRpb25zW2xldmVsXS5kdzRfc2NhbGlu ZzsKPiA+ICsJCXZhbCB8PSBQT1NUX0NVUlNPUl8xKGRkaV90cmFuc2xhdGlvbnNbbGV2ZWxdLmR3 NF9wb3N0X2N1cnNvcl8xKTsKPiA+ICsJCXZhbCB8PSBQT1NUX0NVUlNPUl8yKGRkaV90cmFuc2xh dGlvbnNbbGV2ZWxdLmR3NF9wb3N0X2N1cnNvcl8yKTsKPiA+ICsJCXZhbCB8PSBDVVJTT1JfQ09F RkYoZGRpX3RyYW5zbGF0aW9uc1tsZXZlbF0uZHc0X2N1cnNvcl9jb2VmZik7Cj4gPiAgCQlJOTE1 X1dSSVRFKElDTF9QT1JUX1RYX0RXNF9MTihwb3J0LCBsbiksIHZhbCk7Cj4gPiAgCX0KPiA+ICsK PiA+ICsJLyogUHJvZ3JhbSBQT1JUX1RYX0RXNyAqLwo+ID4gKwl2YWwgPSBJOTE1X1JFQUQoSUNM X1BPUlRfVFhfRFc3X0xOMChwb3J0KSk7Cj4gPiArCXZhbCAmPSB+Tl9TQ0FMQVJfTUFTSzsKPiA+ ICsJdmFsIHw9IE5fU0NBTEFSKGRkaV90cmFuc2xhdGlvbnNbbGV2ZWxdLmR3N19uX3NjYWxhcik7 Cj4gPiArCUk5MTVfV1JJVEUoSUNMX1BPUlRfVFhfRFc3X0dSUChwb3J0KSwgdmFsKTsKPiA+ICB9 Cj4gPiAgCj4gPiAgc3RhdGljIHZvaWQgaWNsX2NvbWJvX3BoeV9kZGlfdnN3aW5nX3NlcXVlbmNl KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gLS0gCj4gPiAxLjkuMQo+ID4gCj4g X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1n ZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=