From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH 12/16] drm/omap: use DRM_FORMAT_* instead of OMAP_DSS_COLOR_* Date: Wed, 24 May 2017 13:36:27 +0300 Message-ID: <3945241.nnDS3cs0Jk@avalon> References: <1493893412-12178-1-git-send-email-tomi.valkeinen@ti.com> <1493893412-12178-13-git-send-email-tomi.valkeinen@ti.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from galahad.ideasonboard.com (galahad.ideasonboard.com [IPv6:2001:4b98:dc2:45:216:3eff:febb:480d]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0BFE2897AC for ; Wed, 24 May 2017 10:36:10 +0000 (UTC) In-Reply-To: <1493893412-12178-13-git-send-email-tomi.valkeinen@ti.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Tomi Valkeinen Cc: Jyri Sarha , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org SGkgVG9taSwKClRoYW5rIHlvdSBmb3IgdGhlIHBhdGNoLgoKT24gVGh1cnNkYXkgMDQgTWF5IDIw MTcgMTM6MjM6MjggVG9taSBWYWxrZWluZW4gd3JvdGU6Cj4gVGhpcyBwYXRjaCBjaGFuZ2VzIG9t YXBkcm0gdG8gdXNlIERSTV9GT1JNQVRfKiB2YWx1ZXMgaW5zdGVhZCBvZgo+IE9NQVBfRFNTX0NP TE9SXyogZW51bS4gVGhpcyBwYXRjaCBvbmx5IGNoYW5nZXMgdGhlIHVzZXMgb2YKPiBPTUFQX0RT U19DT0xPUl8qLCBzbyB3ZSBzdGlsbCBrZWVwIHRoZSBlbnVtIG9tYXBfY29sb3JfbW9kZS4gSS5l LiB3ZSBub3cKPiB0ZW1wb3JhcmlseSBwYXNzIERSTV9GT1JNQVRfKiB2YWx1ZXMgd2l0aCBlbnVt IG9tYXBfY29sb3JfbW9kZS4KPiAKPiBUaGlzIGNhdXNlcyBhIGZldyBjb21waWxlIHdhcm5pbmdz IHdpdGggc3dpdGNoKCllcywgc28gdGhvc2UgbmVlZCBhCj4gdHlwZWNhc3QgdG8gKHUzMikgdG8g c2lsZW5jZSB0aGUgd2FybmluZ3MuCgpBcyBjb21tZW50ZWQgaW4gcGF0Y2ggMTMvMTYsIHRoZSB3 YXJuaW5nIGlzIHRoZXJlIGZvciBhIHJlYXNvbiwgSSB0aGluayB5b3UgCnNob3VsZCBtb3ZlIHBh dGNoIDEzLzE2IGJlZm9yZSB0aGlzIG9uZS4KCj4gU2lnbmVkLW9mZi1ieTogVG9taSBWYWxrZWlu ZW4gPHRvbWkudmFsa2VpbmVuQHRpLmNvbT4KCkknbGwgdHJ1c3QgeW91ciBzZWFyY2ggJiByZXBs YWNlIHNraWxscyBhbmQgd29uJ3QgdmVyaWZ5IHRoZSBmb3JtYXRzLiBGb3IgdGhlIApyZXN0LAoK QWNrZWQtYnk6IExhdXJlbnQgUGluY2hhcnQgPGxhdXJlbnQucGluY2hhcnRAaWRlYXNvbmJvYXJk LmNvbT4KCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9kaXNwYy5jICAgICAg ICB8IDE1NyArKysrKysrKysrKysrLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9vbWFw ZHJtL2Rzcy9kc3NfZmVhdHVyZXMuYyB8IDExNyArKysrKysrKysrLS0tLS0tLS0tLS0KPiAgZHJp dmVycy9ncHUvZHJtL29tYXBkcm0vZHNzL29tYXBkc3MuaCAgICAgIHwgIDE2ICstLQo+ICBkcml2 ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2ZiLmMgICAgICAgICAgfCAgMzIgKysrLS0tCj4gIDQg ZmlsZXMgY2hhbmdlZCwgMTU1IGluc2VydGlvbnMoKyksIDE2NyBkZWxldGlvbnMoLSkKPiAKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZHNzL2Rpc3BjLmMKPiBiL2RyaXZl cnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9kaXNwYy5jIGluZGV4IGRjZDgzZWZkYTNhZi4uYzBmODEw OTA0MmM2Cj4gMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZHNzL2Rpc3Bj LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3MvZGlzcGMuYwo+IEBAIC00MCw2 ICs0MCw3IEBACj4gICNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KPiAgI2luY2x1ZGUgPGxpbnV4 L29mLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4KPiArI2luY2x1ZGUgPGRybS9k cm1fZm91cmNjLmg+Cj4gCj4gICNpbmNsdWRlICJvbWFwZHNzLmgiCj4gICNpbmNsdWRlICJkc3Mu aCIKPiBAQCAtMTU4LDcgKzE1OSw3IEBAIGVudW0gb21hcF9jb2xvcl9jb21wb25lbnQgewo+ICAJ ICovCj4gIAlESVNQQ19DT0xPUl9DT01QT05FTlRfUkdCX1kJCT0gMSA8PCAwLAo+ICAJLyogdXNl ZCBmb3IgVVYgY29tcG9uZW50IGZvcgo+IC0JICogT01BUF9EU1NfQ09MT1JfWVVWMiwgT01BUF9E U1NfQ09MT1JfVVlWWSwgT01BUF9EU1NfQ09MT1JfTlYxMgo+ICsJICogRFJNX0ZPUk1BVF9ZVVlW LCBEUk1fRk9STUFUX1VZVlksIERSTV9GT1JNQVRfTlYxMgo+ICAJICogY29sb3IgZm9ybWF0cyBv biBPTUFQNAo+ICAJICovCj4gIAlESVNQQ19DT0xPUl9DT01QT05FTlRfVVYJCT0gMSA8PCAxLAo+ IEBAIC05MTAsNjUgKzkxMSw2NSBAQCBzdGF0aWMgdm9pZCBkaXNwY19vdmxfc2V0X2NvbG9yX21v ZGUoZW51bQo+IG9tYXBfcGxhbmVfaWQgcGxhbmUsIHsKPiAgCXUzMiBtID0gMDsKPiAgCWlmIChw bGFuZSAhPSBPTUFQX0RTU19HRlgpIHsKPiAtCQlzd2l0Y2ggKGNvbG9yX21vZGUpIHsKPiAtCQlj YXNlIE9NQVBfRFNTX0NPTE9SX05WMTI6Cj4gKwkJc3dpdGNoICgodTMyKWNvbG9yX21vZGUpIHsK PiArCQljYXNlIERSTV9GT1JNQVRfTlYxMjoKPiAgCQkJbSA9IDB4MDsgYnJlYWs7Cj4gLQkJY2Fz ZSBPTUFQX0RTU19DT0xPUl9SR0JYMTY6Cj4gKwkJY2FzZSBEUk1fRk9STUFUX1hSR0I0NDQ0Ogo+ ICAJCQltID0gMHgxOyBicmVhazsKPiAtCQljYXNlIE9NQVBfRFNTX0NPTE9SX1JHQkExNjoKPiAr CQljYXNlIERSTV9GT1JNQVRfUkdCQTQ0NDQ6Cj4gIAkJCW0gPSAweDI7IGJyZWFrOwo+IC0JCWNh c2UgT01BUF9EU1NfQ09MT1JfUkdCMTJVOgo+ICsJCWNhc2UgRFJNX0ZPUk1BVF9SR0JYNDQ0NDoK PiAgCQkJbSA9IDB4NDsgYnJlYWs7Cj4gLQkJY2FzZSBPTUFQX0RTU19DT0xPUl9BUkdCMTY6Cj4g KwkJY2FzZSBEUk1fRk9STUFUX0FSR0I0NDQ0Ogo+ICAJCQltID0gMHg1OyBicmVhazsKPiAtCQlj YXNlIE9NQVBfRFNTX0NPTE9SX1JHQjE2Ogo+ICsJCWNhc2UgRFJNX0ZPUk1BVF9SR0I1NjU6Cj4g IAkJCW0gPSAweDY7IGJyZWFrOwo+IC0JCWNhc2UgT01BUF9EU1NfQ09MT1JfQVJHQjE2XzE1NTU6 Cj4gKwkJY2FzZSBEUk1fRk9STUFUX0FSR0IxNTU1Ogo+ICAJCQltID0gMHg3OyBicmVhazsKPiAt CQljYXNlIE9NQVBfRFNTX0NPTE9SX1JHQjI0VToKPiArCQljYXNlIERSTV9GT1JNQVRfWFJHQjg4 ODg6Cj4gIAkJCW0gPSAweDg7IGJyZWFrOwo+IC0JCWNhc2UgT01BUF9EU1NfQ09MT1JfUkdCMjRQ Ogo+ICsJCWNhc2UgRFJNX0ZPUk1BVF9SR0I4ODg6Cj4gIAkJCW0gPSAweDk7IGJyZWFrOwo+IC0J CWNhc2UgT01BUF9EU1NfQ09MT1JfWVVWMjoKPiArCQljYXNlIERSTV9GT1JNQVRfWVVZVjoKPiAg CQkJbSA9IDB4YTsgYnJlYWs7Cj4gLQkJY2FzZSBPTUFQX0RTU19DT0xPUl9VWVZZOgo+ICsJCWNh c2UgRFJNX0ZPUk1BVF9VWVZZOgo+ICAJCQltID0gMHhiOyBicmVhazsKPiAtCQljYXNlIE9NQVBf RFNTX0NPTE9SX0FSR0IzMjoKPiArCQljYXNlIERSTV9GT1JNQVRfQVJHQjg4ODg6Cj4gIAkJCW0g PSAweGM7IGJyZWFrOwo+IC0JCWNhc2UgT01BUF9EU1NfQ09MT1JfUkdCQTMyOgo+ICsJCWNhc2Ug RFJNX0ZPUk1BVF9SR0JBODg4ODoKPiAgCQkJbSA9IDB4ZDsgYnJlYWs7Cj4gLQkJY2FzZSBPTUFQ X0RTU19DT0xPUl9SR0JYMzI6Cj4gKwkJY2FzZSBEUk1fRk9STUFUX1JHQlg4ODg4Ogo+ICAJCQlt ID0gMHhlOyBicmVhazsKPiAtCQljYXNlIE9NQVBfRFNTX0NPTE9SX1hSR0IxNl8xNTU1Ogo+ICsJ CWNhc2UgRFJNX0ZPUk1BVF9YUkdCMTU1NToKPiAgCQkJbSA9IDB4ZjsgYnJlYWs7Cj4gIAkJZGVm YXVsdDoKPiAgCQkJQlVHKCk7IHJldHVybjsKPiAgCQl9Cj4gIAl9IGVsc2Ugewo+IC0JCXN3aXRj aCAoY29sb3JfbW9kZSkgewo+IC0JCWNhc2UgT01BUF9EU1NfQ09MT1JfUkdCMTJVOgo+ICsJCXN3 aXRjaCAoKHUzMiljb2xvcl9tb2RlKSB7Cj4gKwkJY2FzZSBEUk1fRk9STUFUX1JHQlg0NDQ0Ogo+ ICAJCQltID0gMHg0OyBicmVhazsKPiAtCQljYXNlIE9NQVBfRFNTX0NPTE9SX0FSR0IxNjoKPiAr CQljYXNlIERSTV9GT1JNQVRfQVJHQjQ0NDQ6Cj4gIAkJCW0gPSAweDU7IGJyZWFrOwo+IC0JCWNh c2UgT01BUF9EU1NfQ09MT1JfUkdCMTY6Cj4gKwkJY2FzZSBEUk1fRk9STUFUX1JHQjU2NToKPiAg CQkJbSA9IDB4NjsgYnJlYWs7Cj4gLQkJY2FzZSBPTUFQX0RTU19DT0xPUl9BUkdCMTZfMTU1NToK PiArCQljYXNlIERSTV9GT1JNQVRfQVJHQjE1NTU6Cj4gIAkJCW0gPSAweDc7IGJyZWFrOwo+IC0J CWNhc2UgT01BUF9EU1NfQ09MT1JfUkdCMjRVOgo+ICsJCWNhc2UgRFJNX0ZPUk1BVF9YUkdCODg4 ODoKPiAgCQkJbSA9IDB4ODsgYnJlYWs7Cj4gLQkJY2FzZSBPTUFQX0RTU19DT0xPUl9SR0IyNFA6 Cj4gKwkJY2FzZSBEUk1fRk9STUFUX1JHQjg4ODoKPiAgCQkJbSA9IDB4OTsgYnJlYWs7Cj4gLQkJ Y2FzZSBPTUFQX0RTU19DT0xPUl9SR0JYMTY6Cj4gKwkJY2FzZSBEUk1fRk9STUFUX1hSR0I0NDQ0 Ogo+ICAJCQltID0gMHhhOyBicmVhazsKPiAtCQljYXNlIE9NQVBfRFNTX0NPTE9SX1JHQkExNjoK PiArCQljYXNlIERSTV9GT1JNQVRfUkdCQTQ0NDQ6Cj4gIAkJCW0gPSAweGI7IGJyZWFrOwo+IC0J CWNhc2UgT01BUF9EU1NfQ09MT1JfQVJHQjMyOgo+ICsJCWNhc2UgRFJNX0ZPUk1BVF9BUkdCODg4 ODoKPiAgCQkJbSA9IDB4YzsgYnJlYWs7Cj4gLQkJY2FzZSBPTUFQX0RTU19DT0xPUl9SR0JBMzI6 Cj4gKwkJY2FzZSBEUk1fRk9STUFUX1JHQkE4ODg4Ogo+ICAJCQltID0gMHhkOyBicmVhazsKPiAt CQljYXNlIE9NQVBfRFNTX0NPTE9SX1JHQlgzMjoKPiArCQljYXNlIERSTV9GT1JNQVRfUkdCWDg4 ODg6Cj4gIAkJCW0gPSAweGU7IGJyZWFrOwo+IC0JCWNhc2UgT01BUF9EU1NfQ09MT1JfWFJHQjE2 XzE1NTU6Cj4gKwkJY2FzZSBEUk1fRk9STUFUX1hSR0IxNTU1Ogo+ICAJCQltID0gMHhmOyBicmVh azsKPiAgCQlkZWZhdWx0Ogo+ICAJCQlCVUcoKTsgcmV0dXJuOwo+IEBAIC05ODAsMTAgKzk4MSwx MCBAQCBzdGF0aWMgdm9pZCBkaXNwY19vdmxfc2V0X2NvbG9yX21vZGUoZW51bQo+IG9tYXBfcGxh bmVfaWQgcGxhbmUsCj4gCj4gIHN0YXRpYyBib29sIGZvcm1hdF9pc195dXYoZW51bSBvbWFwX2Nv bG9yX21vZGUgY29sb3JfbW9kZSkKPiAgewo+IC0Jc3dpdGNoIChjb2xvcl9tb2RlKSB7Cj4gLQlj YXNlIE9NQVBfRFNTX0NPTE9SX1lVVjI6Cj4gLQljYXNlIE9NQVBfRFNTX0NPTE9SX1VZVlk6Cj4g LQljYXNlIE9NQVBfRFNTX0NPTE9SX05WMTI6Cj4gKwlzd2l0Y2ggKCh1MzIpY29sb3JfbW9kZSkg ewo+ICsJY2FzZSBEUk1fRk9STUFUX1lVWVY6Cj4gKwljYXNlIERSTV9GT1JNQVRfVVlWWToKPiAr CWNhc2UgRFJNX0ZPUk1BVF9OVjEyOgo+ICAJCXJldHVybiB0cnVlOwo+ICAJZGVmYXVsdDoKPiAg CQlyZXR1cm4gZmFsc2U7Cj4gQEAgLTE2MTgsMTUgKzE2MTksMTUgQEAgc3RhdGljIHZvaWQgZGlz cGNfb3ZsX3NldF9hY2N1X3V2KGVudW0gb21hcF9wbGFuZV9pZAo+IHBsYW5lLCByZXR1cm47Cj4g IAl9Cj4gCj4gLQlzd2l0Y2ggKGNvbG9yX21vZGUpIHsKPiAtCWNhc2UgT01BUF9EU1NfQ09MT1Jf TlYxMjoKPiArCXN3aXRjaCAoKHUzMiljb2xvcl9tb2RlKSB7Cj4gKwljYXNlIERSTV9GT1JNQVRf TlYxMjoKPiAgCQlpZiAoaWxhY2UpCj4gIAkJCWFjY3VfdGFibGUgPSBhY2N1X252MTJfaWxhY2U7 Cj4gIAkJZWxzZQo+ICAJCQlhY2N1X3RhYmxlID0gYWNjdV9udjEyOwo+ICAJCWJyZWFrOwo+IC0J Y2FzZSBPTUFQX0RTU19DT0xPUl9ZVVYyOgo+IC0JY2FzZSBPTUFQX0RTU19DT0xPUl9VWVZZOgo+ ICsJY2FzZSBEUk1fRk9STUFUX1lVWVY6Cj4gKwljYXNlIERSTV9GT1JNQVRfVVlWWToKPiAgCQlh Y2N1X3RhYmxlID0gYWNjdV95dXY7Cj4gIAkJYnJlYWs7Cj4gIAlkZWZhdWx0Ogo+IEBAIC0xNzI2 LDggKzE3MjcsOCBAQCBzdGF0aWMgdm9pZCBkaXNwY19vdmxfc2V0X3NjYWxpbmdfdXYoZW51bQo+ IG9tYXBfcGxhbmVfaWQgcGxhbmUsIGRpc3BjX292bF9zZXRfYWNjdV91dihwbGFuZSwgb3JpZ193 aWR0aCwgb3JpZ19oZWlnaHQsCj4gb3V0X3dpZHRoLCBvdXRfaGVpZ2h0LCBpbGFjZSwgY29sb3Jf bW9kZSwgcm90YXRpb24pOwo+IAo+IC0Jc3dpdGNoIChjb2xvcl9tb2RlKSB7Cj4gLQljYXNlIE9N QVBfRFNTX0NPTE9SX05WMTI6Cj4gKwlzd2l0Y2ggKCh1MzIpY29sb3JfbW9kZSkgewo+ICsJY2Fz ZSBEUk1fRk9STUFUX05WMTI6Cj4gIAkJaWYgKGNocm9tYV91cHNjYWxlKSB7Cj4gIAkJCS8qIFVW IGlzIHN1YnNhbXBsZWQgYnkgMiBob3Jpem9udGFsbHkgYW5kIHZlcnRpY2FsbHkgCiovCj4gIAkJ CW9yaWdfaGVpZ2h0ID4+PSAxOwo+IEBAIC0xNzM5LDggKzE3NDAsOCBAQCBzdGF0aWMgdm9pZCBk aXNwY19vdmxfc2V0X3NjYWxpbmdfdXYoZW51bQo+IG9tYXBfcGxhbmVfaWQgcGxhbmUsIH0KPiAK PiAgCQlicmVhazsKPiAtCWNhc2UgT01BUF9EU1NfQ09MT1JfWVVWMjoKPiAtCWNhc2UgT01BUF9E U1NfQ09MT1JfVVlWWToKPiArCWNhc2UgRFJNX0ZPUk1BVF9ZVVlWOgo+ICsJY2FzZSBEUk1fRk9S TUFUX1VZVlk6Cj4gIAkJLyogRm9yIFlVVjQyMiB3aXRoIDkwLzI3MCByb3RhdGlvbiwgd2UgZG9u J3QgdXBzYW1wbGUgY2hyb21hIAoqLwo+ICAJCWlmIChyb3RhdGlvbiA9PSBPTUFQX0RTU19ST1Rf MCB8fAo+ICAJCQkJcm90YXRpb24gPT0gT01BUF9EU1NfUk9UXzE4MCkgewo+IEBAIC0xODEyLDgg KzE4MTMsOCBAQCBzdGF0aWMgdm9pZCBkaXNwY19vdmxfc2V0X3JvdGF0aW9uX2F0dHJzKGVudW0K PiBvbWFwX3BsYW5lX2lkIHBsYW5lLCB1OCByb3RhdGlvbiwgYm9vbCByb3dfcmVwZWF0ID0gZmFs c2U7Cj4gIAlpbnQgdmlkcm90ID0gMDsKPiAKPiAtCWlmIChjb2xvcl9tb2RlID09IE9NQVBfRFNT X0NPTE9SX1lVVjIgfHwKPiAtCQkJY29sb3JfbW9kZSA9PSBPTUFQX0RTU19DT0xPUl9VWVZZKSB7 Cj4gKwlpZiAoY29sb3JfbW9kZSA9PSBEUk1fRk9STUFUX1lVWVYgfHwKPiArCQkJY29sb3JfbW9k ZSA9PSBEUk1fRk9STUFUX1VZVlkpIHsKPiAKPiAgCQlpZiAobWlycm9yaW5nKSB7Cj4gIAkJCXN3 aXRjaCAocm90YXRpb24pIHsKPiBAQCAtMTg1OCw3ICsxODU5LDcgQEAgc3RhdGljIHZvaWQgZGlz cGNfb3ZsX3NldF9yb3RhdGlvbl9hdHRycyhlbnVtCj4gb21hcF9wbGFuZV9pZCBwbGFuZSwgdTgg cm90YXRpb24sICogTlYxMiBpbiAxRCBtb2RlIG11c3QgdXNlIFJPVEFUSU9OPTEuCj4gT3RoZXJ3 aXNlIERTUyB3aWxsIGZldGNoIGV4dHJhICogcm93cyBiZXlvbmQgdGhlIGZyYW1lYnVmZmVyLCB3 aGljaCBtYXkKPiBjYXVzZSBPQ1AgZXJyb3IuCj4gIAkgKi8KPiAtCWlmIChjb2xvcl9tb2RlID09 IE9NQVBfRFNTX0NPTE9SX05WMTIgJiYKPiArCWlmIChjb2xvcl9tb2RlID09IERSTV9GT1JNQVRf TlYxMiAmJgo+ICAJCQlyb3RhdGlvbl90eXBlICE9IE9NQVBfRFNTX1JPVF9USUxFUikKPiAgCQl2 aWRyb3QgPSAxOwo+IAo+IEBAIC0xODY3LDkgKzE4NjgsOSBAQCBzdGF0aWMgdm9pZCBkaXNwY19v dmxfc2V0X3JvdGF0aW9uX2F0dHJzKGVudW0KPiBvbWFwX3BsYW5lX2lkIHBsYW5lLCB1OCByb3Rh dGlvbiwgUkVHX0ZMRF9NT0QoRElTUENfT1ZMX0FUVFJJQlVURVMocGxhbmUpLAo+ICAJCQlyb3df cmVwZWF0ID8gMSA6IDAsIDE4LCAxOCk7Cj4gCj4gLQlpZiAoZHNzX2ZlYXRfY29sb3JfbW9kZV9z dXBwb3J0ZWQocGxhbmUsIE9NQVBfRFNTX0NPTE9SX05WMTIpKSB7Cj4gKwlpZiAoZHNzX2ZlYXRf Y29sb3JfbW9kZV9zdXBwb3J0ZWQocGxhbmUsIERSTV9GT1JNQVRfTlYxMikpIHsKPiAgCQlib29s IGRvdWJsZXN0cmlkZSA9Cj4gLQkJCWNvbG9yX21vZGUgPT0gT01BUF9EU1NfQ09MT1JfTlYxMiAm Jgo+ICsJCQljb2xvcl9tb2RlID09IERSTV9GT1JNQVRfTlYxMiAmJgo+ICAJCQlyb3RhdGlvbl90 eXBlID09IE9NQVBfRFNTX1JPVF9USUxFUiAmJgo+ICAJCQkocm90YXRpb24gPT0gT01BUF9EU1Nf Uk9UXzAgfHwgcm90YXRpb24gPT0gCk9NQVBfRFNTX1JPVF8xODApOwo+IAo+IEBAIC0xODgwLDI1 ICsxODgxLDI1IEBAIHN0YXRpYyB2b2lkIGRpc3BjX292bF9zZXRfcm90YXRpb25fYXR0cnMoZW51 bQo+IG9tYXBfcGxhbmVfaWQgcGxhbmUsIHU4IHJvdGF0aW9uLAo+IAo+ICBzdGF0aWMgaW50IGNv bG9yX21vZGVfdG9fYnBwKGVudW0gb21hcF9jb2xvcl9tb2RlIGNvbG9yX21vZGUpCj4gIHsKPiAt CXN3aXRjaCAoY29sb3JfbW9kZSkgewo+IC0JY2FzZSBPTUFQX0RTU19DT0xPUl9OVjEyOgo+ICsJ c3dpdGNoICgodTMyKWNvbG9yX21vZGUpIHsKPiArCWNhc2UgRFJNX0ZPUk1BVF9OVjEyOgo+ICAJ CXJldHVybiA4Owo+IC0JY2FzZSBPTUFQX0RTU19DT0xPUl9SR0IxMlU6Cj4gLQljYXNlIE9NQVBf RFNTX0NPTE9SX1JHQjE2Ogo+IC0JY2FzZSBPTUFQX0RTU19DT0xPUl9BUkdCMTY6Cj4gLQljYXNl IE9NQVBfRFNTX0NPTE9SX1lVVjI6Cj4gLQljYXNlIE9NQVBfRFNTX0NPTE9SX1VZVlk6Cj4gLQlj YXNlIE9NQVBfRFNTX0NPTE9SX1JHQkExNjoKPiAtCWNhc2UgT01BUF9EU1NfQ09MT1JfUkdCWDE2 Ogo+IC0JY2FzZSBPTUFQX0RTU19DT0xPUl9BUkdCMTZfMTU1NToKPiAtCWNhc2UgT01BUF9EU1Nf Q09MT1JfWFJHQjE2XzE1NTU6Cj4gKwljYXNlIERSTV9GT1JNQVRfUkdCWDQ0NDQ6Cj4gKwljYXNl IERSTV9GT1JNQVRfUkdCNTY1Ogo+ICsJY2FzZSBEUk1fRk9STUFUX0FSR0I0NDQ0Ogo+ICsJY2Fz ZSBEUk1fRk9STUFUX1lVWVY6Cj4gKwljYXNlIERSTV9GT1JNQVRfVVlWWToKPiArCWNhc2UgRFJN X0ZPUk1BVF9SR0JBNDQ0NDoKPiArCWNhc2UgRFJNX0ZPUk1BVF9YUkdCNDQ0NDoKPiArCWNhc2Ug RFJNX0ZPUk1BVF9BUkdCMTU1NToKPiArCWNhc2UgRFJNX0ZPUk1BVF9YUkdCMTU1NToKPiAgCQly ZXR1cm4gMTY7Cj4gLQljYXNlIE9NQVBfRFNTX0NPTE9SX1JHQjI0UDoKPiArCWNhc2UgRFJNX0ZP Uk1BVF9SR0I4ODg6Cj4gIAkJcmV0dXJuIDI0Owo+IC0JY2FzZSBPTUFQX0RTU19DT0xPUl9SR0Iy NFU6Cj4gLQljYXNlIE9NQVBfRFNTX0NPTE9SX0FSR0IzMjoKPiAtCWNhc2UgT01BUF9EU1NfQ09M T1JfUkdCQTMyOgo+IC0JY2FzZSBPTUFQX0RTU19DT0xPUl9SR0JYMzI6Cj4gKwljYXNlIERSTV9G T1JNQVRfWFJHQjg4ODg6Cj4gKwljYXNlIERSTV9GT1JNQVRfQVJHQjg4ODg6Cj4gKwljYXNlIERS TV9GT1JNQVRfUkdCQTg4ODg6Cj4gKwljYXNlIERSTV9GT1JNQVRfUkdCWDg4ODg6Cj4gIAkJcmV0 dXJuIDMyOwo+ICAJZGVmYXVsdDoKPiAgCQlCVUcoKTsKPiBAQCAtMTkzOSw4ICsxOTQwLDggQEAg c3RhdGljIHZvaWQgY2FsY19vZmZzZXQodTE2IHNjcmVlbl93aWR0aCwgdTE2IHdpZHRoLAo+IAo+ ICAJKnJvd19pbmMgPSBwaXhpbmMoMSArICh5X3ByZWRlY2ltICogc2NyZWVuX3dpZHRoIC0gd2lk dGggKiB4X3ByZWRlY2ltKSAKKwo+ICAJCQkoZmllbGRtb2RlID8gc2NyZWVuX3dpZHRoIDogMCks IHBzKTsKPiAtCWlmIChjb2xvcl9tb2RlID09IE9NQVBfRFNTX0NPTE9SX1lVVjIgfHwKPiAtCQlj b2xvcl9tb2RlID09IE9NQVBfRFNTX0NPTE9SX1VZVlkpCj4gKwlpZiAoY29sb3JfbW9kZSA9PSBE Uk1fRk9STUFUX1lVWVYgfHwKPiArCQljb2xvcl9tb2RlID09IERSTV9GT1JNQVRfVVlWWSkKPiAg CQkqcGl4X2luYyA9IHBpeGluYyh4X3ByZWRlY2ltLCAyICogcHMpOwo+ICAJZWxzZQo+ICAJCSpw aXhfaW5jID0gcGl4aW5jKHhfcHJlZGVjaW0sIHBzKTsKPiBAQCAtMjAzNyw3ICsyMDM4LDcgQEAg c3RhdGljIHVuc2lnbmVkIGxvbmcgY2FsY19jb3JlX2Nsa19maXZlX3RhcHModW5zaWduZWQKPiBs b25nIHBjbGssIGRvX2Rpdih0bXAsIG91dF93aWR0aCk7Cj4gIAkJY29yZV9jbGsgPSBtYXhfdCh1 MzIsIGNvcmVfY2xrLCB0bXApOwo+IAo+IC0JCWlmIChjb2xvcl9tb2RlID09IE9NQVBfRFNTX0NP TE9SX1JHQjI0VSkKPiArCQlpZiAoY29sb3JfbW9kZSA9PSBEUk1fRk9STUFUX1hSR0I4ODg4KQo+ ICAJCQljb3JlX2NsayA8PD0gMTsKPiAgCX0KPiAKPiBAQCAtMjI2NSw3ICsyMjY2LDcgQEAgc3Rh dGljIGludCBkaXNwY19vdmxfY2FsY19zY2FsaW5nXzQ0eHgodW5zaWduZWQgbG9uZwo+IHBjbGss IHVuc2lnbmVkIGxvbmcgbGNsaywgcmV0dXJuIC1FSU5WQUw7Cj4gIAl9Cj4gCj4gLQlpZiAoKmRl Y2ltX3ggPiA0ICYmIGNvbG9yX21vZGUgIT0gT01BUF9EU1NfQ09MT1JfTlYxMikgewo+ICsJaWYg KCpkZWNpbV94ID4gNCAmJiBjb2xvcl9tb2RlICE9IERSTV9GT1JNQVRfTlYxMikgewo+ICAJCS8q Cj4gIAkJICogTGV0J3MgZGlzYWJsZSBhbGwgc2NhbGluZyB0aGF0IHJlcXVpcmVzIGhvcml6b250 YWwKPiAgCQkgKiBkZWNpbWF0aW9uIHdpdGggaGlnaGVyIGZhY3RvciB0aGFuIDQsIHVudGlsIHdl IGhhdmUKPiBAQCAtMjQ5NCw3ICsyNDk1LDcgQEAgc3RhdGljIGludCBkaXNwY19vdmxfc2V0dXBf Y29tbW9uKGVudW0gb21hcF9wbGFuZV9pZAo+IHBsYW5lLCBkaXNwY19vdmxfc2V0X2JhMChwbGFu ZSwgcGFkZHIgKyBvZmZzZXQwKTsKPiAgCWRpc3BjX292bF9zZXRfYmExKHBsYW5lLCBwYWRkciAr IG9mZnNldDEpOwo+IAo+IC0JaWYgKE9NQVBfRFNTX0NPTE9SX05WMTIgPT0gY29sb3JfbW9kZSkg ewo+ICsJaWYgKGNvbG9yX21vZGUgPT0gRFJNX0ZPUk1BVF9OVjEyKSB7Cj4gIAkJZGlzcGNfb3Zs X3NldF9iYTBfdXYocGxhbmUsIHBfdXZfYWRkciArIG9mZnNldDApOwo+ICAJCWRpc3BjX292bF9z ZXRfYmExX3V2KHBsYW5lLCBwX3V2X2FkZHIgKyBvZmZzZXQxKTsKPiAgCX0KPiBAQCAtMjU4NCwx NSArMjU4NSwxNSBAQCBpbnQgZGlzcGNfd2Jfc2V0dXAoY29uc3Qgc3RydWN0Cj4gb21hcF9kc3Nf d3JpdGViYWNrX2luZm8gKndpLCB3aS0+cHJlX211bHRfYWxwaGEsIGdsb2JhbF9hbHBoYSwKPiB3 aS0+cm90YXRpb25fdHlwZSwKPiAgCQlyZXBsaWNhdGlvbiwgdm0sIG1lbV90b19tZW0pOwo+IAo+ IC0Jc3dpdGNoICh3aS0+Y29sb3JfbW9kZSkgewo+IC0JY2FzZSBPTUFQX0RTU19DT0xPUl9SR0Ix NjoKPiAtCWNhc2UgT01BUF9EU1NfQ09MT1JfUkdCMjRQOgo+IC0JY2FzZSBPTUFQX0RTU19DT0xP Ul9BUkdCMTY6Cj4gLQljYXNlIE9NQVBfRFNTX0NPTE9SX1JHQkExNjoKPiAtCWNhc2UgT01BUF9E U1NfQ09MT1JfUkdCMTJVOgo+IC0JY2FzZSBPTUFQX0RTU19DT0xPUl9BUkdCMTZfMTU1NToKPiAt CWNhc2UgT01BUF9EU1NfQ09MT1JfWFJHQjE2XzE1NTU6Cj4gLQljYXNlIE9NQVBfRFNTX0NPTE9S X1JHQlgxNjoKPiArCXN3aXRjaCAoKHUzMil3aS0+Y29sb3JfbW9kZSkgewo+ICsJY2FzZSBEUk1f Rk9STUFUX1JHQjU2NToKPiArCWNhc2UgRFJNX0ZPUk1BVF9SR0I4ODg6Cj4gKwljYXNlIERSTV9G T1JNQVRfQVJHQjQ0NDQ6Cj4gKwljYXNlIERSTV9GT1JNQVRfUkdCQTQ0NDQ6Cj4gKwljYXNlIERS TV9GT1JNQVRfUkdCWDQ0NDQ6Cj4gKwljYXNlIERSTV9GT1JNQVRfQVJHQjE1NTU6Cj4gKwljYXNl IERSTV9GT1JNQVRfWFJHQjE1NTU6Cj4gKwljYXNlIERSTV9GT1JNQVRfWFJHQjQ0NDQ6Cj4gIAkJ dHJ1bmNhdGlvbiA9IHRydWU7Cj4gIAkJYnJlYWs7Cj4gIAlkZWZhdWx0Ogo+IEBAIC0zOTE4LDcg KzM5MTksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRpc3BjX2VycmF0YV9pNzM0X2RhdGEgewo+ ICAJLm92bGkgPSB7Cj4gIAkJLnNjcmVlbl93aWR0aCA9IDEsCj4gIAkJLndpZHRoID0gMSwgLmhl aWdodCA9IDEsCj4gLQkJLmNvbG9yX21vZGUgPSBPTUFQX0RTU19DT0xPUl9SR0IyNFUsCj4gKwkJ LmNvbG9yX21vZGUgPSBEUk1fRk9STUFUX1hSR0I4ODg4LAo+ICAJCS5yb3RhdGlvbiA9IE9NQVBf RFNTX1JPVF8wLAo+ICAJCS5yb3RhdGlvbl90eXBlID0gT01BUF9EU1NfUk9UX05PTkUsCj4gIAkJ Lm1pcnJvciA9IDAsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9k c3NfZmVhdHVyZXMuYwo+IGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZHNzL2Rzc19mZWF0dXJl cy5jIGluZGV4Cj4gZjliMDMyNGNjMjYzLi5mZTU4YTZjZjQyNjMgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL29tYXBkcm0vZHNzL2Rzc19mZWF0dXJlcy5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL29tYXBkcm0vZHNzL2Rzc19mZWF0dXJlcy5jCj4gQEAgLTIyLDYgKzIyLDcgQEAKPiAg I2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9lcnIuaD4KPiAgI2lu Y2x1ZGUgPGxpbnV4L3NsYWIuaD4KPiArI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+Cj4gCj4g ICNpbmNsdWRlICJvbWFwZHNzLmgiCj4gICNpbmNsdWRlICJkc3MuaCIKPiBAQCAtMjM1LDk4ICsy MzYsOTggQEAgc3RhdGljIGNvbnN0IGVudW0gb21hcF9jb2xvcl9tb2RlCj4gKm9tYXAyX2Rzc19z dXBwb3J0ZWRfY29sb3JfbW9kZXNbXSA9IHsKPiAKPiAgCS8qIE9NQVBfRFNTX0dGWCAqLwo+ICAJ Q09MT1JfQVJSQVkoCj4gLQlPTUFQX0RTU19DT0xPUl9SR0IxMlUsIE9NQVBfRFNTX0NPTE9SX1JH QjE2LAo+IC0JT01BUF9EU1NfQ09MT1JfUkdCMjRVLCBPTUFQX0RTU19DT0xPUl9SR0IyNFApLAo+ ICsJRFJNX0ZPUk1BVF9SR0JYNDQ0NCwgRFJNX0ZPUk1BVF9SR0I1NjUsCj4gKwlEUk1fRk9STUFU X1hSR0I4ODg4LCBEUk1fRk9STUFUX1JHQjg4OCksCj4gCj4gIAkvKiBPTUFQX0RTU19WSURFTzEg Ki8KPiAgCUNPTE9SX0FSUkFZKAo+IC0JT01BUF9EU1NfQ09MT1JfUkdCMTYsIE9NQVBfRFNTX0NP TE9SX1JHQjI0VSwKPiAtCU9NQVBfRFNTX0NPTE9SX1JHQjI0UCwgT01BUF9EU1NfQ09MT1JfWVVW MiwKPiAtCU9NQVBfRFNTX0NPTE9SX1VZVlkpLAo+ICsJRFJNX0ZPUk1BVF9SR0I1NjUsIERSTV9G T1JNQVRfWFJHQjg4ODgsCj4gKwlEUk1fRk9STUFUX1JHQjg4OCwgRFJNX0ZPUk1BVF9ZVVlWLAo+ ICsJRFJNX0ZPUk1BVF9VWVZZKSwKPiAKPiAgCS8qIE9NQVBfRFNTX1ZJREVPMiAqLwo+ICAJQ09M T1JfQVJSQVkoCj4gLQlPTUFQX0RTU19DT0xPUl9SR0IxNiwgT01BUF9EU1NfQ09MT1JfUkdCMjRV LAo+IC0JT01BUF9EU1NfQ09MT1JfUkdCMjRQLCBPTUFQX0RTU19DT0xPUl9ZVVYyLAo+IC0JT01B UF9EU1NfQ09MT1JfVVlWWSksCj4gKwlEUk1fRk9STUFUX1JHQjU2NSwgRFJNX0ZPUk1BVF9YUkdC ODg4OCwKPiArCURSTV9GT1JNQVRfUkdCODg4LCBEUk1fRk9STUFUX1lVWVYsCj4gKwlEUk1fRk9S TUFUX1VZVlkpLAo+ICB9Owo+IAo+ICBzdGF0aWMgY29uc3QgZW51bSBvbWFwX2NvbG9yX21vZGUg Km9tYXAzX2Rzc19zdXBwb3J0ZWRfY29sb3JfbW9kZXNbXSA9IHsKPiAgCS8qIE9NQVBfRFNTX0dG WCAqLwo+ICAJQ09MT1JfQVJSQVkoCj4gLQlPTUFQX0RTU19DT0xPUl9SR0IxMlUsIE9NQVBfRFNT X0NPTE9SX0FSR0IxNiwKPiAtCU9NQVBfRFNTX0NPTE9SX1JHQjE2LCBPTUFQX0RTU19DT0xPUl9S R0IyNFUsCj4gLQlPTUFQX0RTU19DT0xPUl9SR0IyNFAsIE9NQVBfRFNTX0NPTE9SX0FSR0IzMiwK PiAtCU9NQVBfRFNTX0NPTE9SX1JHQkEzMiwgT01BUF9EU1NfQ09MT1JfUkdCWDMyKSwKPiArCURS TV9GT1JNQVRfUkdCWDQ0NDQsIERSTV9GT1JNQVRfQVJHQjQ0NDQsCj4gKwlEUk1fRk9STUFUX1JH QjU2NSwgRFJNX0ZPUk1BVF9YUkdCODg4OCwKPiArCURSTV9GT1JNQVRfUkdCODg4LCBEUk1fRk9S TUFUX0FSR0I4ODg4LAo+ICsJRFJNX0ZPUk1BVF9SR0JBODg4OCwgRFJNX0ZPUk1BVF9SR0JYODg4 OCksCj4gCj4gIAkvKiBPTUFQX0RTU19WSURFTzEgKi8KPiAgCUNPTE9SX0FSUkFZKAo+IC0JT01B UF9EU1NfQ09MT1JfUkdCMjRVLCBPTUFQX0RTU19DT0xPUl9SR0IyNFAsCj4gLQlPTUFQX0RTU19D T0xPUl9SR0IxMlUsIE9NQVBfRFNTX0NPTE9SX1JHQjE2LAo+IC0JT01BUF9EU1NfQ09MT1JfWVVW MiwgT01BUF9EU1NfQ09MT1JfVVlWWSksCj4gKwlEUk1fRk9STUFUX1hSR0I4ODg4LCBEUk1fRk9S TUFUX1JHQjg4OCwKPiArCURSTV9GT1JNQVRfUkdCWDQ0NDQsIERSTV9GT1JNQVRfUkdCNTY1LAo+ ICsJRFJNX0ZPUk1BVF9ZVVlWLCBEUk1fRk9STUFUX1VZVlkpLAo+IAo+ICAJLyogT01BUF9EU1Nf VklERU8yICovCj4gIAlDT0xPUl9BUlJBWSgKPiAtCU9NQVBfRFNTX0NPTE9SX1JHQjEyVSwgT01B UF9EU1NfQ09MT1JfQVJHQjE2LAo+IC0JT01BUF9EU1NfQ09MT1JfUkdCMTYsIE9NQVBfRFNTX0NP TE9SX1JHQjI0VSwKPiAtCU9NQVBfRFNTX0NPTE9SX1JHQjI0UCwgT01BUF9EU1NfQ09MT1JfWVVW MiwKPiAtCU9NQVBfRFNTX0NPTE9SX1VZVlksIE9NQVBfRFNTX0NPTE9SX0FSR0IzMiwKPiAtCU9N QVBfRFNTX0NPTE9SX1JHQkEzMiwgT01BUF9EU1NfQ09MT1JfUkdCWDMyKSwKPiArCURSTV9GT1JN QVRfUkdCWDQ0NDQsIERSTV9GT1JNQVRfQVJHQjQ0NDQsCj4gKwlEUk1fRk9STUFUX1JHQjU2NSwg RFJNX0ZPUk1BVF9YUkdCODg4OCwKPiArCURSTV9GT1JNQVRfUkdCODg4LCBEUk1fRk9STUFUX1lV WVYsCj4gKwlEUk1fRk9STUFUX1VZVlksIERSTV9GT1JNQVRfQVJHQjg4ODgsCj4gKwlEUk1fRk9S TUFUX1JHQkE4ODg4LCBEUk1fRk9STUFUX1JHQlg4ODg4KSwKPiAgfTsKPiAKPiAgc3RhdGljIGNv bnN0IGVudW0gb21hcF9jb2xvcl9tb2RlICpvbWFwNF9kc3Nfc3VwcG9ydGVkX2NvbG9yX21vZGVz W10gPSB7Cj4gIAkvKiBPTUFQX0RTU19HRlggKi8KPiAgCUNPTE9SX0FSUkFZKAo+IC0JT01BUF9E U1NfQ09MT1JfUkdCMTJVLCBPTUFQX0RTU19DT0xPUl9BUkdCMTYsCj4gLQlPTUFQX0RTU19DT0xP Ul9SR0IxNiwgT01BUF9EU1NfQ09MT1JfUkdCMjRVLAo+IC0JT01BUF9EU1NfQ09MT1JfUkdCMjRQ LCBPTUFQX0RTU19DT0xPUl9BUkdCMzIsCj4gLQlPTUFQX0RTU19DT0xPUl9SR0JBMzIsIE9NQVBf RFNTX0NPTE9SX1JHQlgzMiwKPiAtCU9NQVBfRFNTX0NPTE9SX0FSR0IxNl8xNTU1LCBPTUFQX0RT U19DT0xPUl9SR0JYMTYsCj4gLQlPTUFQX0RTU19DT0xPUl9SR0JBMTYsIE9NQVBfRFNTX0NPTE9S X1hSR0IxNl8xNTU1KSwKPiArCURSTV9GT1JNQVRfUkdCWDQ0NDQsIERSTV9GT1JNQVRfQVJHQjQ0 NDQsCj4gKwlEUk1fRk9STUFUX1JHQjU2NSwgRFJNX0ZPUk1BVF9YUkdCODg4OCwKPiArCURSTV9G T1JNQVRfUkdCODg4LCBEUk1fRk9STUFUX0FSR0I4ODg4LAo+ICsJRFJNX0ZPUk1BVF9SR0JBODg4 OCwgRFJNX0ZPUk1BVF9SR0JYODg4OCwKPiArCURSTV9GT1JNQVRfQVJHQjE1NTUsIERSTV9GT1JN QVRfWFJHQjQ0NDQsCj4gKwlEUk1fRk9STUFUX1JHQkE0NDQ0LCBEUk1fRk9STUFUX1hSR0IxNTU1 KSwKPiAKPiAgCS8qIE9NQVBfRFNTX1ZJREVPMSAqLwo+ICAJQ09MT1JfQVJSQVkoCj4gLQlPTUFQ X0RTU19DT0xPUl9SR0IxNiwgT01BUF9EU1NfQ09MT1JfUkdCMTJVLAo+IC0JT01BUF9EU1NfQ09M T1JfWVVWMiwgT01BUF9EU1NfQ09MT1JfQVJHQjE2XzE1NTUsCj4gLQlPTUFQX0RTU19DT0xPUl9S R0JBMzIsIE9NQVBfRFNTX0NPTE9SX05WMTIsCj4gLQlPTUFQX0RTU19DT0xPUl9SR0JBMTYsIE9N QVBfRFNTX0NPTE9SX1JHQjI0VSwKPiAtCU9NQVBfRFNTX0NPTE9SX1JHQjI0UCwgT01BUF9EU1Nf Q09MT1JfVVlWWSwKPiAtCU9NQVBfRFNTX0NPTE9SX0FSR0IxNiwgT01BUF9EU1NfQ09MT1JfWFJH QjE2XzE1NTUsCj4gLQlPTUFQX0RTU19DT0xPUl9BUkdCMzIsIE9NQVBfRFNTX0NPTE9SX1JHQlgx NiwKPiAtCU9NQVBfRFNTX0NPTE9SX1JHQlgzMiksCj4gKwlEUk1fRk9STUFUX1JHQjU2NSwgRFJN X0ZPUk1BVF9SR0JYNDQ0NCwKPiArCURSTV9GT1JNQVRfWVVZViwgRFJNX0ZPUk1BVF9BUkdCMTU1 NSwKPiArCURSTV9GT1JNQVRfUkdCQTg4ODgsIERSTV9GT1JNQVRfTlYxMiwKPiArCURSTV9GT1JN QVRfUkdCQTQ0NDQsIERSTV9GT1JNQVRfWFJHQjg4ODgsCj4gKwlEUk1fRk9STUFUX1JHQjg4OCwg RFJNX0ZPUk1BVF9VWVZZLAo+ICsJRFJNX0ZPUk1BVF9BUkdCNDQ0NCwgRFJNX0ZPUk1BVF9YUkdC MTU1NSwKPiArCURSTV9GT1JNQVRfQVJHQjg4ODgsIERSTV9GT1JNQVRfWFJHQjQ0NDQsCj4gKwlE Uk1fRk9STUFUX1JHQlg4ODg4KSwKPiAKPiAgICAgICAgIC8qIE9NQVBfRFNTX1ZJREVPMiAqLwo+ ICAJQ09MT1JfQVJSQVkoCj4gLQlPTUFQX0RTU19DT0xPUl9SR0IxNiwgT01BUF9EU1NfQ09MT1Jf UkdCMTJVLAo+IC0JT01BUF9EU1NfQ09MT1JfWVVWMiwgT01BUF9EU1NfQ09MT1JfQVJHQjE2XzE1 NTUsCj4gLQlPTUFQX0RTU19DT0xPUl9SR0JBMzIsIE9NQVBfRFNTX0NPTE9SX05WMTIsCj4gLQlP TUFQX0RTU19DT0xPUl9SR0JBMTYsIE9NQVBfRFNTX0NPTE9SX1JHQjI0VSwKPiAtCU9NQVBfRFNT X0NPTE9SX1JHQjI0UCwgT01BUF9EU1NfQ09MT1JfVVlWWSwKPiAtCU9NQVBfRFNTX0NPTE9SX0FS R0IxNiwgT01BUF9EU1NfQ09MT1JfWFJHQjE2XzE1NTUsCj4gLQlPTUFQX0RTU19DT0xPUl9BUkdC MzIsIE9NQVBfRFNTX0NPTE9SX1JHQlgxNiwKPiAtCU9NQVBfRFNTX0NPTE9SX1JHQlgzMiksCj4g KwlEUk1fRk9STUFUX1JHQjU2NSwgRFJNX0ZPUk1BVF9SR0JYNDQ0NCwKPiArCURSTV9GT1JNQVRf WVVZViwgRFJNX0ZPUk1BVF9BUkdCMTU1NSwKPiArCURSTV9GT1JNQVRfUkdCQTg4ODgsIERSTV9G T1JNQVRfTlYxMiwKPiArCURSTV9GT1JNQVRfUkdCQTQ0NDQsIERSTV9GT1JNQVRfWFJHQjg4ODgs Cj4gKwlEUk1fRk9STUFUX1JHQjg4OCwgRFJNX0ZPUk1BVF9VWVZZLAo+ICsJRFJNX0ZPUk1BVF9B UkdCNDQ0NCwgRFJNX0ZPUk1BVF9YUkdCMTU1NSwKPiArCURSTV9GT1JNQVRfQVJHQjg4ODgsIERS TV9GT1JNQVRfWFJHQjQ0NDQsCj4gKwlEUk1fRk9STUFUX1JHQlg4ODg4KSwKPiAKPiAgCS8qIE9N QVBfRFNTX1ZJREVPMyAqLwo+ICAJQ09MT1JfQVJSQVkoCj4gLQlPTUFQX0RTU19DT0xPUl9SR0Ix NiwgT01BUF9EU1NfQ09MT1JfUkdCMTJVLAo+IC0JT01BUF9EU1NfQ09MT1JfWVVWMiwgT01BUF9E U1NfQ09MT1JfQVJHQjE2XzE1NTUsCj4gLQlPTUFQX0RTU19DT0xPUl9SR0JBMzIsIE9NQVBfRFNT X0NPTE9SX05WMTIsCj4gLQlPTUFQX0RTU19DT0xPUl9SR0JBMTYsIE9NQVBfRFNTX0NPTE9SX1JH QjI0VSwKPiAtCU9NQVBfRFNTX0NPTE9SX1JHQjI0UCwgT01BUF9EU1NfQ09MT1JfVVlWWSwKPiAt CU9NQVBfRFNTX0NPTE9SX0FSR0IxNiwgT01BUF9EU1NfQ09MT1JfWFJHQjE2XzE1NTUsCj4gLQlP TUFQX0RTU19DT0xPUl9BUkdCMzIsIE9NQVBfRFNTX0NPTE9SX1JHQlgxNiwKPiAtCU9NQVBfRFNT X0NPTE9SX1JHQlgzMiksCj4gKwlEUk1fRk9STUFUX1JHQjU2NSwgRFJNX0ZPUk1BVF9SR0JYNDQ0 NCwKPiArCURSTV9GT1JNQVRfWVVZViwgRFJNX0ZPUk1BVF9BUkdCMTU1NSwKPiArCURSTV9GT1JN QVRfUkdCQTg4ODgsIERSTV9GT1JNQVRfTlYxMiwKPiArCURSTV9GT1JNQVRfUkdCQTQ0NDQsIERS TV9GT1JNQVRfWFJHQjg4ODgsCj4gKwlEUk1fRk9STUFUX1JHQjg4OCwgRFJNX0ZPUk1BVF9VWVZZ LAo+ICsJRFJNX0ZPUk1BVF9BUkdCNDQ0NCwgRFJNX0ZPUk1BVF9YUkdCMTU1NSwKPiArCURSTV9G T1JNQVRfQVJHQjg4ODgsIERSTV9GT1JNQVRfWFJHQjQ0NDQsCj4gKwlEUk1fRk9STUFUX1JHQlg4 ODg4KSwKPiAKPiAgCS8qIE9NQVBfRFNTX1dCICovCj4gIAlDT0xPUl9BUlJBWSgKPiAtCU9NQVBf RFNTX0NPTE9SX1JHQjE2LCBPTUFQX0RTU19DT0xPUl9SR0IxMlUsCj4gLQlPTUFQX0RTU19DT0xP Ul9ZVVYyLCBPTUFQX0RTU19DT0xPUl9BUkdCMTZfMTU1NSwKPiAtCU9NQVBfRFNTX0NPTE9SX1JH QkEzMiwgT01BUF9EU1NfQ09MT1JfTlYxMiwKPiAtCU9NQVBfRFNTX0NPTE9SX1JHQkExNiwgT01B UF9EU1NfQ09MT1JfUkdCMjRVLAo+IC0JT01BUF9EU1NfQ09MT1JfUkdCMjRQLCBPTUFQX0RTU19D T0xPUl9VWVZZLAo+IC0JT01BUF9EU1NfQ09MT1JfQVJHQjE2LCBPTUFQX0RTU19DT0xPUl9YUkdC MTZfMTU1NSwKPiAtCU9NQVBfRFNTX0NPTE9SX0FSR0IzMiwgT01BUF9EU1NfQ09MT1JfUkdCWDE2 LAo+IC0JT01BUF9EU1NfQ09MT1JfUkdCWDMyKSwKPiArCURSTV9GT1JNQVRfUkdCNTY1LCBEUk1f Rk9STUFUX1JHQlg0NDQ0LAo+ICsJRFJNX0ZPUk1BVF9ZVVlWLCBEUk1fRk9STUFUX0FSR0IxNTU1 LAo+ICsJRFJNX0ZPUk1BVF9SR0JBODg4OCwgRFJNX0ZPUk1BVF9OVjEyLAo+ICsJRFJNX0ZPUk1B VF9SR0JBNDQ0NCwgRFJNX0ZPUk1BVF9YUkdCODg4OCwKPiArCURSTV9GT1JNQVRfUkdCODg4LCBE Uk1fRk9STUFUX1VZVlksCj4gKwlEUk1fRk9STUFUX0FSR0I0NDQ0LCBEUk1fRk9STUFUX1hSR0Ix NTU1LAo+ICsJRFJNX0ZPUk1BVF9BUkdCODg4OCwgRFJNX0ZPUk1BVF9YUkdCNDQ0NCwKPiArCURS TV9GT1JNQVRfUkdCWDg4ODgpLAo+ICB9Owo+IAo+ICBzdGF0aWMgY29uc3QgZW51bSBvbWFwX292 ZXJsYXlfY2FwcyBvbWFwMl9kc3Nfb3ZlcmxheV9jYXBzW10gPSB7Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9vbWFwZHNzLmgKPiBiL2RyaXZlcnMvZ3B1L2RybS9v bWFwZHJtL2Rzcy9vbWFwZHNzLmggaW5kZXggMzM0NjgwNjczMDc0Li5jYjE5YzM4OGExMzUKPiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3Mvb21hcGRzcy5oCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZHNzL29tYXBkc3MuaAo+IEBAIC05MywyMSArOTMs NyBAQCBlbnVtIG9tYXBfY2hhbm5lbCB7Cj4gIH07Cj4gCj4gIGVudW0gb21hcF9jb2xvcl9tb2Rl IHsKPiAtCU9NQVBfRFNTX0NPTE9SX1JHQjEyVQk9IDEgPDwgNCwgIC8qIFJHQjEyLCAxNi1iaXQg Y29udGFpbmVyICovCj4gLQlPTUFQX0RTU19DT0xPUl9BUkdCMTYJPSAxIDw8IDUsICAvKiBBUkdC MTYgKi8KPiAtCU9NQVBfRFNTX0NPTE9SX1JHQjE2CT0gMSA8PCA2LCAgLyogUkdCMTYgKi8KPiAt CU9NQVBfRFNTX0NPTE9SX1JHQjI0VQk9IDEgPDwgNywgIC8qIFJHQjI0LCAzMi1iaXQgY29udGFp bmVyICovCj4gLQlPTUFQX0RTU19DT0xPUl9SR0IyNFAJPSAxIDw8IDgsICAvKiBSR0IyNCwgMjQt Yml0IGNvbnRhaW5lciAqLwo+IC0JT01BUF9EU1NfQ09MT1JfWVVWMgk9IDEgPDwgOSwgIC8qIFlV VjIgNDoyOjIgY28tc2l0ZWQgKi8KPiAtCU9NQVBfRFNTX0NPTE9SX1VZVlkJPSAxIDw8IDEwLCAv KiBVWVZZIDQ6MjoyIGNvLXNpdGVkICovCj4gLQlPTUFQX0RTU19DT0xPUl9BUkdCMzIJPSAxIDw8 IDExLCAvKiBBUkdCMzIgKi8KPiAtCU9NQVBfRFNTX0NPTE9SX1JHQkEzMgk9IDEgPDwgMTIsIC8q IFJHQkEzMiAqLwo+IC0JT01BUF9EU1NfQ09MT1JfUkdCWDMyCT0gMSA8PCAxMywgLyogUkdCeDMy ICovCj4gLQlPTUFQX0RTU19DT0xPUl9OVjEyCQk9IDEgPDwgMTQsIC8qIE5WMTIgZm9ybWF0OiBZ VVYgNDoyOjAgCiovCj4gLQlPTUFQX0RTU19DT0xPUl9SR0JBMTYJCT0gMSA8PCAxNSwgLyogUkdC QTE2IC0gNDQ0NCAqLwo+IC0JT01BUF9EU1NfQ09MT1JfUkdCWDE2CQk9IDEgPDwgMTYsIC8qIFJH QngxNiAtIDQ0NDQgKi8KPiAtCU9NQVBfRFNTX0NPTE9SX0FSR0IxNl8xNTU1CT0gMSA8PCAxNywg LyogQVJHQjE2IC0gMTU1NSAqLwo+IC0JT01BUF9EU1NfQ09MT1JfWFJHQjE2XzE1NTUJPSAxIDw8 IDE4LCAvKiB4UkdCMTYgLSAxNTU1ICovCj4gKwlfVU5VU0VEXywKPiAgfTsKPiAKPiAgZW51bSBv bWFwX2Rzc19sb2FkX21vZGUgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRy bS9vbWFwX2ZiLmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZmIuYyBpbmRleCBh NTMwMjJjYmIxNGYuLmNjOGM5ZmZiNjhkYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v b21hcGRybS9vbWFwX2ZiLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2Zi LmMKPiBAQCAtMzUsMjQgKzM1LDI0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgewo+ICAJdWludDMy X3QgcGl4ZWxfZm9ybWF0Owo+ICB9IGZvcm1hdHNbXSA9IHsKPiAgCS8qIDE2YnBwIFtBXVJHQjog Ki8KPiAtCXsgT01BUF9EU1NfQ09MT1JfUkdCMTYsICAgICAgIERSTV9GT1JNQVRfUkdCNTY1IH0s ICAgLyogUkdCMTYtNTY1ICovCj4gLQl7IE9NQVBfRFNTX0NPTE9SX1JHQjEyVSwgICAgICBEUk1f Rk9STUFUX1JHQlg0NDQ0IH0sIC8qIFJHQjEyeC00NDQ0ICovCj4gLQl7IE9NQVBfRFNTX0NPTE9S X1JHQlgxNiwgICAgICBEUk1fRk9STUFUX1hSR0I0NDQ0IH0sIC8qIHhSR0IxMi00NDQ0ICovCj4g LQl7IE9NQVBfRFNTX0NPTE9SX1JHQkExNiwgICAgICBEUk1fRk9STUFUX1JHQkE0NDQ0IH0sIC8q IFJHQkExMi00NDQ0ICovCj4gLQl7IE9NQVBfRFNTX0NPTE9SX0FSR0IxNiwgICAgICBEUk1fRk9S TUFUX0FSR0I0NDQ0IH0sIC8qIEFSR0IxNi00NDQ0ICovCj4gLQl7IE9NQVBfRFNTX0NPTE9SX1hS R0IxNl8xNTU1LCBEUk1fRk9STUFUX1hSR0IxNTU1IH0sIC8qIHhSR0IxNS0xNTU1ICovCj4gLQl7 IE9NQVBfRFNTX0NPTE9SX0FSR0IxNl8xNTU1LCBEUk1fRk9STUFUX0FSR0IxNTU1IH0sIC8qIEFS R0IxNi0xNTU1ICovCj4gKwl7IERSTV9GT1JNQVRfUkdCNTY1LCAgICAgICBEUk1fRk9STUFUX1JH QjU2NSB9LCAgIC8qIFJHQjE2LTU2NSAqLwo+ICsJeyBEUk1fRk9STUFUX1JHQlg0NDQ0LCAgICAg IERSTV9GT1JNQVRfUkdCWDQ0NDQgfSwgLyogUkdCMTJ4LTQ0NDQgKi8KPiArCXsgRFJNX0ZPUk1B VF9YUkdCNDQ0NCwgICAgICBEUk1fRk9STUFUX1hSR0I0NDQ0IH0sIC8qIHhSR0IxMi00NDQ0ICov Cj4gKwl7IERSTV9GT1JNQVRfUkdCQTQ0NDQsICAgICAgRFJNX0ZPUk1BVF9SR0JBNDQ0NCB9LCAv KiBSR0JBMTItNDQ0NCAqLwo+ICsJeyBEUk1fRk9STUFUX0FSR0I0NDQ0LCAgICAgIERSTV9GT1JN QVRfQVJHQjQ0NDQgfSwgLyogQVJHQjE2LTQ0NDQgKi8KPiArCXsgRFJNX0ZPUk1BVF9YUkdCMTU1 NSwgRFJNX0ZPUk1BVF9YUkdCMTU1NSB9LCAvKiB4UkdCMTUtMTU1NSAqLwo+ICsJeyBEUk1fRk9S TUFUX0FSR0IxNTU1LCBEUk1fRk9STUFUX0FSR0IxNTU1IH0sIC8qIEFSR0IxNi0xNTU1ICovCj4g IAkvKiAyNGJwcCBSR0I6ICovCj4gLQl7IE9NQVBfRFNTX0NPTE9SX1JHQjI0UCwgICAgICBEUk1f Rk9STUFUX1JHQjg4OCB9LCAgIC8qIFJHQjI0LTg4OCAqLwo+ICsJeyBEUk1fRk9STUFUX1JHQjg4 OCwgICAgICBEUk1fRk9STUFUX1JHQjg4OCB9LCAgIC8qIFJHQjI0LTg4OCAqLwo+ICAJLyogMzJi cHAgW0FdUkdCOiAqLwo+IC0JeyBPTUFQX0RTU19DT0xPUl9SR0JYMzIsICAgICAgRFJNX0ZPUk1B VF9SR0JYODg4OCB9LCAvKiBSR0J4MjQtODg4OCAqLwo+IC0JeyBPTUFQX0RTU19DT0xPUl9SR0Iy NFUsICAgICAgRFJNX0ZPUk1BVF9YUkdCODg4OCB9LCAvKiB4UkdCMjQtODg4OCAqLwo+IC0JeyBP TUFQX0RTU19DT0xPUl9SR0JBMzIsICAgICAgRFJNX0ZPUk1BVF9SR0JBODg4OCB9LCAvKiBSR0JB MzItODg4OCAqLwo+IC0JeyBPTUFQX0RTU19DT0xPUl9BUkdCMzIsICAgICAgRFJNX0ZPUk1BVF9B UkdCODg4OCB9LCAvKiBBUkdCMzItODg4OCAqLwo+ICsJeyBEUk1fRk9STUFUX1JHQlg4ODg4LCAg ICAgIERSTV9GT1JNQVRfUkdCWDg4ODggfSwgLyogUkdCeDI0LTg4ODggKi8KPiArCXsgRFJNX0ZP Uk1BVF9YUkdCODg4OCwgICAgICBEUk1fRk9STUFUX1hSR0I4ODg4IH0sIC8qIHhSR0IyNC04ODg4 ICovCj4gKwl7IERSTV9GT1JNQVRfUkdCQTg4ODgsICAgICAgRFJNX0ZPUk1BVF9SR0JBODg4OCB9 LCAvKiBSR0JBMzItODg4OCAqLwo+ICsJeyBEUk1fRk9STUFUX0FSR0I4ODg4LCAgICAgIERSTV9G T1JNQVRfQVJHQjg4ODggfSwgLyogQVJHQjMyLTg4ODggKi8KPiAgCS8qIFlVVjogKi8KPiAtCXsg T01BUF9EU1NfQ09MT1JfTlYxMiwgICAgICAgIERSTV9GT1JNQVRfTlYxMiB9LAo+IC0JeyBPTUFQ X0RTU19DT0xPUl9ZVVYyLCAgICAgICAgRFJNX0ZPUk1BVF9ZVVlWIH0sCj4gLQl7IE9NQVBfRFNT X0NPTE9SX1VZVlksICAgICAgICBEUk1fRk9STUFUX1VZVlkgfSwKPiArCXsgRFJNX0ZPUk1BVF9O VjEyLCAgICAgICAgRFJNX0ZPUk1BVF9OVjEyIH0sCj4gKwl7IERSTV9GT1JNQVRfWVVZViwgICAg ICAgIERSTV9GT1JNQVRfWVVZViB9LAo+ICsJeyBEUk1fRk9STUFUX1VZVlksICAgICAgICBEUk1f Rk9STUFUX1VZVlkgfSwKPiAgfTsKPiAKPiAgLyogY29udmVydCBmcm9tIG92ZXJsYXkncyBwaXhl bCBmb3JtYXRzIGJpdG1hc2sgdG8gYW4gYXJyYXkgb2YgZm91cmNjJ3MgKi8KPiBAQCAtMjQ3LDcg KzI0Nyw3IEBAIHZvaWQgb21hcF9mcmFtZWJ1ZmZlcl91cGRhdGVfc2Nhbm91dChzdHJ1Y3QKPiBk cm1fZnJhbWVidWZmZXIgKmZiLCAvKiBjb252ZXJ0IHRvIHBpeGVsczogKi8KPiAgCWluZm8tPnNj cmVlbl93aWR0aCAvPSBmb3JtYXQtPmNwcFswXTsKPiAKPiAtCWlmIChvbWFwX2ZiLT5kc3NfZm9y bWF0ID09IE9NQVBfRFNTX0NPTE9SX05WMTIpIHsKPiArCWlmIChvbWFwX2ZiLT5kc3NfZm9ybWF0 ID09IERSTV9GT1JNQVRfTlYxMikgewo+ICAJCXBsYW5lID0gJm9tYXBfZmItPnBsYW5lc1sxXTsK PiAKPiAgCQlpZiAoaW5mby0+cm90YXRpb25fdHlwZSA9PSBPTUFQX0RTU19ST1RfVElMRVIpIHsK Ci0tIApSZWdhcmRzLAoKTGF1cmVudCBQaW5jaGFydAoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vZHJpLWRldmVsCg==