From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id C39176E6EB for ; Tue, 5 Feb 2019 13:14:43 +0000 (UTC) References: <20190201111544.7920-1-maarten.lankhorst@linux.intel.com> <20190201111544.7920-3-maarten.lankhorst@linux.intel.com> From: "Sharma, Swati2" Message-ID: <8d6ab2f0-afbb-6b74-9cf5-877576974320@intel.com> Date: Tue, 5 Feb 2019 18:44:40 +0530 MIME-Version: 1.0 In-Reply-To: <20190201111544.7920-3-maarten.lankhorst@linux.intel.com> Content-Language: en-US Subject: Re: [igt-dev] [PATCH i-g-t 3/4] lib/igt_fb: Add support for Y21x formats as well. List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Maarten Lankhorst , igt-dev@lists.freedesktop.org List-ID: Ck9uIDAxLUZlYi0xOSA0OjQ1IFBNLCBNYWFydGVuIExhbmtob3JzdCB3cm90ZToKPiBUaG9zZSBm b3JtYXRzIGFyZSBwYWNrZWQgbGlrZSBZVVlWLCBidXQgb25seSAxNiBiaXRzIHBlciBjb21wb25l bnQuCj4KPiBTaWduZWQtb2ZmLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9y c3RAbGludXguaW50ZWwuY29tPgo+IC0tLQo+ICAgaW5jbHVkZS9kcm0tdWFwaS9kcm1fZm91cmNj LmggfCAgIDYgKy0KPiAgIGxpYi9pZ3RfY29sb3JfZW5jb2RpbmcuYyAgICAgIHwgICAzICsKPiAg IGxpYi9pZ3RfZmIuYyAgICAgICAgICAgICAgICAgIHwgMTQ2ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKPiAgIDMgZmlsZXMgY2hhbmdlZCwgMTU0IGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkKPgo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS11YXBpL2RybV9mb3VyY2Mu aCBiL2luY2x1ZGUvZHJtLXVhcGkvZHJtX2ZvdXJjYy5oCj4gaW5kZXggYzlhNWU1Nzg3MDMxLi44 ZjFiNWY4MzJhMDkgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0tdWFwaS9kcm1fZm91cmNjLmgK PiArKysgYi9pbmNsdWRlL2RybS11YXBpL2RybV9mb3VyY2MuaAo+IEBAIC0xNDksMTAgKzE0OSwx NCBAQCBleHRlcm4gIkMiIHsKPiAgICNkZWZpbmUgRFJNX0ZPUk1BVF9ZVllVCQlmb3VyY2NfY29k ZSgnWScsICdWJywgJ1knLCAnVScpIC8qIFszMTowXSBDYjA6WTE6Q3IwOlkwIDg6ODo4OjggbGl0 dGxlIGVuZGlhbiAqLwo+ICAgI2RlZmluZSBEUk1fRk9STUFUX1VZVlkJCWZvdXJjY19jb2RlKCdV JywgJ1knLCAnVicsICdZJykgLyogWzMxOjBdIFkxOkNyMDpZMDpDYjAgODo4Ojg6OCBsaXR0bGUg ZW5kaWFuICovCj4gICAjZGVmaW5lIERSTV9GT1JNQVRfVllVWQkJZm91cmNjX2NvZGUoJ1YnLCAn WScsICdVJywgJ1knKSAvKiBbMzE6MF0gWTE6Q2IwOlkwOkNyMCA4Ojg6ODo4IGxpdHRsZSBlbmRp YW4gKi8KPiAtCj4gICAjZGVmaW5lIERSTV9GT1JNQVRfQVlVVgkJZm91cmNjX2NvZGUoJ0EnLCAn WScsICdVJywgJ1YnKSAvKiBbMzE6MF0gQTpZOkNiOkNyIDg6ODo4OjggbGl0dGxlIGVuZGlhbiAq Lwo+ICAgI2RlZmluZSBEUk1fRk9STUFUX1hZVVY4ODg4CWZvdXJjY19jb2RlKCdYJywgJ1knLCAn VScsICdWJykgLyogWzMxOjBdIFg6WTpDYjpDciA4Ojg6ODo4IGxpdHRsZSBlbmRpYW4gKi8KPiAg IAo+ICsvKiBMaWtlIFlVWVYsIGJ1dCAxNiBicGMsIGxvd2VzdCBiaXRzIHVudXNlZCBsaWtlIGlu IERSTV9GT1JNQVRfUDAxWCAqLwo+ICsjZGVmaW5lIERSTV9GT1JNQVRfWTIxMAkJZm91cmNjX2Nv ZGUoJ1knLCAnMicsICcxJywgJzAnKQo+ICsjZGVmaW5lIERSTV9GT1JNQVRfWTIxMgkJZm91cmNj X2NvZGUoJ1knLCAnMicsICcxJywgJzInKQo+ICsjZGVmaW5lIERSTV9GT1JNQVRfWTIxNgkJZm91 cmNjX2NvZGUoJ1knLCAnMicsICcxJywgJzYnKQo+ICsKPiAgIC8qCj4gICAgKiBwYWNrZWQgWUNi Q3I0MjAgMngyIHRpbGVkIGZvcm1hdHMKPiAgICAqIGZpcnN0IDY0IGJpdHMgd2lsbCBjb250YWlu IFksQ2IsQ3IgY29tcG9uZW50cyBmb3IgYSAyeDIgdGlsZQo+IGRpZmYgLS1naXQgYS9saWIvaWd0 X2NvbG9yX2VuY29kaW5nLmMgYi9saWIvaWd0X2NvbG9yX2VuY29kaW5nLmMKPiBpbmRleCBiN2Ex MmExZTA3ZjcuLjZmODJmY2VjNjJlNCAxMDA2NDQKPiAtLS0gYS9saWIvaWd0X2NvbG9yX2VuY29k aW5nLmMKPiArKysgYi9saWIvaWd0X2NvbG9yX2VuY29kaW5nLmMKPiBAQCAtMTQ0LDYgKzE0NCw5 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY29sb3JfZW5jb2RpbmdfZm9ybWF0IHsKPiAgIAl7IERS TV9GT1JNQVRfUDAxMCwgNjU0NzIuZiwgNDA5Ni5mLCA2MDE2MC5mLCA0MDk2LmYsIDMyNzY4LmYs IDYxNDQwLmYgfSwKPiAgIAl7IERSTV9GT1JNQVRfUDAxMiwgNjU1MjAuZiwgNDA5Ni5mLCA2MDE2 MC5mLCA0MDk2LmYsIDMyNzY4LmYsIDYxNDQwLmYgfSwKPiAgIAl7IERSTV9GT1JNQVRfUDAxNiwg NjU1MzUuZiwgNDA5Ni5mLCA2MDE2MC5mLCA0MDk2LmYsIDMyNzY4LmYsIDYxNDQwLmYgfSwKPiAr CXsgRFJNX0ZPUk1BVF9ZMjEwLCA2NTQ3Mi5mLCA0MDk2LmYsIDYwMTYwLmYsIDQwOTYuZiwgMzI3 NjguZiwgNjE0NDAuZiB9LAo+ICsJeyBEUk1fRk9STUFUX1kyMTIsIDY1NTIwLmYsIDQwOTYuZiwg NjAxNjAuZiwgNDA5Ni5mLCAzMjc2OC5mLCA2MTQ0MC5mIH0sCj4gKwl7IERSTV9GT1JNQVRfWTIx NiwgNjU1MzUuZiwgNDA5Ni5mLCA2MDE2MC5mLCA0MDk2LmYsIDMyNzY4LmYsIDYxNDQwLmYgfSwK PiAgIH07Cj4gICAKPiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY29sb3JfZW5jb2RpbmdfZm9ybWF0 ICpsb29rdXBfZm91cmNjKHVpbnQzMl90IGZvdXJjYykKPiBkaWZmIC0tZ2l0IGEvbGliL2lndF9m Yi5jIGIvbGliL2lndF9mYi5jCj4gaW5kZXggOGJkMDQyMGZjMmU0Li5jMTRjYzEwZDFiNzMgMTAw NjQ0Cj4gLS0tIGEvbGliL2lndF9mYi5jCj4gKysrIGIvbGliL2lndF9mYi5jCj4gQEAgLTE1MSw2 ICsxNTEsMTggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmb3JtYXRfZGVzY19zdHJ1Y3Qgewo+ICAg CSAgLmNhaXJvX2lkID0gQ0FJUk9fRk9STUFUX1JHQjI0LAo+ICAgCSAgLm51bV9wbGFuZXMgPSAx LCAucGxhbmVfYnBwID0geyAxNiwgfSwKPiAgIAl9LAo+ICsJeyAubmFtZSA9ICJZMjEwIiwgLmRl cHRoID0gLTEsIC5kcm1faWQgPSBEUk1fRk9STUFUX1kyMTAsCj4gKwkgIC5jYWlyb19pZCA9IENB SVJPX0ZPUk1BVF9SR0I5NkYsCj4gKwkgIC5udW1fcGxhbmVzID0gMSwgLnBsYW5lX2JwcCA9IHsg MzIsIH0sCj4gKwl9LAo+ICsJeyAubmFtZSA9ICJZMjEyIiwgLmRlcHRoID0gLTEsIC5kcm1faWQg PSBEUk1fRk9STUFUX1kyMTIsCj4gKwkgIC5jYWlyb19pZCA9IENBSVJPX0ZPUk1BVF9SR0I5NkYs Cj4gKwkgIC5udW1fcGxhbmVzID0gMSwgLnBsYW5lX2JwcCA9IHsgMzIsIH0sCj4gKwl9LAo+ICsJ eyAubmFtZSA9ICJZMjE2IiwgLmRlcHRoID0gLTEsIC5kcm1faWQgPSBEUk1fRk9STUFUX1kyMTYs Cj4gKwkgIC5jYWlyb19pZCA9IENBSVJPX0ZPUk1BVF9SR0I5NkYsCj4gKwkgIC5udW1fcGxhbmVz ID0gMSwgLnBsYW5lX2JwcCA9IHsgMzIsIH0sCj4gKwl9LAo+ICAgCXsgLm5hbWUgPSAiUDAxMCIs IC5kZXB0aCA9IC0xLCAuZHJtX2lkID0gRFJNX0ZPUk1BVF9QMDEwLAo+ICAgCSAgLmNhaXJvX2lk ID0gQ0FJUk9fRk9STUFUX1JHQjk2RiwKPiAgIAkgIC5udW1fcGxhbmVzID0gMiwgLnBsYW5lX2Jw cCA9IHsgMTYsIDMyIH0sCj4gQEAgLTU1Myw2ICs1NjUsMTMgQEAgc3RhdGljIGludCBjcmVhdGVf Ym9fZm9yX2ZiKHN0cnVjdCBpZ3RfZmIgKmZiKQo+ICAgCQkJCQlmYi0+b2Zmc2V0c1sxXSAvIHNp emVvZih3Y2hhcl90KSk7Cj4gICAJCQkJd21lbXNldChwdHIgKyBmYi0+b2Zmc2V0c1sxXSwgMHg4 MDAwODAwMCwKPiAgIAkJCQkJRElWX1JPVU5EX1VQKGZiLT5oZWlnaHQsMikgKiBmYi0+c3RyaWRl c1sxXSAvIHNpemVvZih3Y2hhcl90KSk7Cj4gKwkJCWNhc2UgRFJNX0ZPUk1BVF9ZMjEwOgo+ICsJ CQljYXNlIERSTV9GT1JNQVRfWTIxMjoKPiArCQkJY2FzZSBEUk1fRk9STUFUX1kyMTY6Cj4gKwkJ CQl3bWVtc2V0KHB0ciArIGZiLT5vZmZzZXRzWzBdLAo+ICsJCQkJCWZ1bGxfcmFuZ2UgPyAweDgw MDAwMDAwIDogMHg4MDAwMTAwMCwKPiArCQkJCQlmYi0+c3RyaWRlc1swXSAqIGZiLT5wbGFuZV9o ZWlnaHRbMF0gLyBzaXplb2Yod2NoYXJfdCkpOwo+ICsJCQkJYnJlYWs7Cj4gICAJCQl9Cj4gICAJ CQlnZW1fbXVubWFwKHB0ciwgZmItPnNpemUpOwoKSGkgTWFhcnRlbiwKCldoaWxlIHRlc3Rpbmcg WTIxMCBwaXhlbCBmb3JtYXQsIElHVCBpcyBmYWlsaW5nIHdpdGggZGVidWcgbWVzc2FnZSAKc2hv d2luZyBpZ3RfY3JlYXRlX2ZiKCkgZmFpbHVyZQoKKGttc19wbGFuZTozOTc0KSBpZ3RfZmItQ1JJ VElDQUw6IFRlc3QgYXNzZXJ0aW9uIGZhaWx1cmUgZnVuY3Rpb24gCmlndF9jcmVhdGVfZmJfd2l0 aF9ib19zaXplLCBmaWxlIC4uL2xpYi9pZ3RfZmIuYzoxMDUxOgooa21zX3BsYW5lOjM5NzQpIGln dF9mYi1DUklUSUNBTDogRmFpbGVkIGFzc2VydGlvbjogKF9fa21zX2FkZGZiKGZiLT5mZCwgCmZi LT5nZW1faGFuZGxlLCBmYi0+d2lkdGgsIGZiLT5oZWlnaHQsIGZiLT5kcm1fZm9ybWF0LCBmYi0+ dGlsaW5nLCAKZmItPnN0cmlkZXMsIGZiLT5vZmZzZXRzLCBmYi0+bnVtX3BsYW5lcywgZmxhZ3Ms ICZmYi0+ZmJfaWQpKSA9PSAwCihrbXNfcGxhbmU6Mzk3NCkgaWd0X2ZiLUNSSVRJQ0FMOiBMYXN0 IGVycm5vOiAyMiwgSW52YWxpZCBhcmd1bWVudAoKZG1lc2cgc2hvd2luZyBiYWQgcGl0Y2ggMTI4 MDAgZm9yIFkyMTAgcGl4ZWwgZm9ybWF0CgpbwqAgNjM0LjA2NjYwOF0gW2RybTpkcm1faW50ZXJu YWxfZnJhbWVidWZmZXJfY3JlYXRlXSBiYWQgcGl0Y2ggMTI4MDAgZm9yIApwbGFuZSAwClvCoCA2 MzQuMTA0NDQ0XSBbSUdUXSBrbXNfcGxhbmU6IGV4aXRpbmcsIHJldD05OQoKQ2FuIHlvdSBwbGVh c2UgY29uZmlybSB3aGV0aGVyIGNoYW5nZXMgbmVlZHMgdG8gYmUgZG9uZSBmcm9tIGlndCBvciBz b21lIAppc3N1ZSB3aXRoIFkyeHggZHJpdmVyIHBhdGNoZXM/Cgo+IEBAIC0yMTM5LDYgKzIxNTgs MTIwIEBAIHN0YXRpYyB2b2lkIGNvbnZlcnRfZmxvYXRfdG9fcDAxWChzdHJ1Y3QgZmJfY29udmVy dCAqY3Z0KQo+ICAgCX0KPiAgIH0KPiAgIAo+ICsKPiArc3RhdGljIHZvaWQgY29udmVydF9ZMjFY X3RvX2Zsb2F0KHN0cnVjdCBmYl9jb252ZXJ0ICpjdnQpCj4gK3sKPiArCWludCBpLCBqOwo+ICsJ Y29uc3QgdWludDE2X3QgKnl1eXY7Cj4gKwl1aW50MTZfdCAqYnVmOwo+ICsJZmxvYXQgKnB0ciA9 IGN2dC0+ZHN0LnB0cjsKPiArCXVuc2lnbmVkIGludCBmbG9hdF9zdHJpZGUgPSBjdnQtPmRzdC5m Yi0+c3RyaWRlc1swXSAvIHNpemVvZigqcHRyKTsKPiArCXVuc2lnbmVkIGludCB5dXl2X3N0cmlk ZSA9IGN2dC0+c3JjLmZiLT5zdHJpZGVzWzBdIC8gc2l6ZW9mKCp5dXl2KTsKPiArCXN0cnVjdCBp Z3RfbWF0NCBtID0gaWd0X3ljYmNyX3RvX3JnYl9tYXRyaXgoY3Z0LT5zcmMuZmItPmRybV9mb3Jt YXQsCj4gKwkJCQkJCSAgICBjdnQtPmRzdC5mYi0+ZHJtX2Zvcm1hdCwKPiArCQkJCQkJICAgIGN2 dC0+c3JjLmZiLT5jb2xvcl9lbmNvZGluZywKPiArCQkJCQkJICAgIGN2dC0+c3JjLmZiLT5jb2xv cl9yYW5nZSk7Cj4gKwo+ICsJaWd0X2Fzc2VydCgoY3Z0LT5zcmMuZmItPmRybV9mb3JtYXQgPT0g RFJNX0ZPUk1BVF9ZMjEwIHx8Cj4gKwkJICAgIGN2dC0+c3JjLmZiLT5kcm1fZm9ybWF0ID09IERS TV9GT1JNQVRfWTIxMiB8fAo+ICsJCSAgICBjdnQtPnNyYy5mYi0+ZHJtX2Zvcm1hdCA9PSBEUk1f Rk9STUFUX1kyMTYpICYmCj4gKwkJICAgY3Z0LT5kc3QuZmItPmRybV9mb3JtYXQgPT0gSUdUX0ZP Uk1BVF9GTE9BVCk7Cj4gKwo+ICsJeXV5diA9IGJ1ZiA9IGNvbnZlcnRfc3JjX2dldChjdnQpOwo+ ICsKPiArCWZvciAoaSA9IDA7IGkgPCBjdnQtPmRzdC5mYi0+aGVpZ2h0OyBpKyspIHsKPiArCQlm b3IgKGogPSAwOyBqIDwgY3Z0LT5kc3QuZmItPndpZHRoIC8gMjsgaisrKSB7Cj4gKwkJCS8qIENv bnZlcnQgMngxIHBpeGVsIGJsb2NrcyAqLwo+ICsJCQlzdHJ1Y3QgaWd0X3ZlYzQgeXV2WzJdOwo+ ICsJCQlzdHJ1Y3QgaWd0X3ZlYzQgcmdiWzJdOwo+ICsKPiArCQkJeXV2WzBdLmRbMF0gPSB5dXl2 W2ogKiA0ICsgMF07Cj4gKwkJCXl1dlsxXS5kWzBdID0geXV5dltqICogNCArIDJdOwo+ICsJCQl5 dXZbMF0uZFsxXSA9IHl1dlsxXS5kWzFdID0geXV5dltqICogNCArIDFdOwo+ICsJCQl5dXZbMF0u ZFsyXSA9IHl1dlsxXS5kWzJdID0geXV5dltqICogNCArIDNdOwo+ICsJCQl5dXZbMF0uZFszXSA9 IHl1dlsxXS5kWzNdID0gMS4wZjsKPiArCj4gKwkJCXJnYlswXSA9IGlndF9tYXRyaXhfdHJhbnNm b3JtKCZtLCAmeXV2WzBdKTsKPiArCQkJcmdiWzFdID0gaWd0X21hdHJpeF90cmFuc2Zvcm0oJm0s ICZ5dXZbMV0pOwo+ICsKPiArCQkJd3JpdGVfcmdiZigmcHRyW2ogKiA2ICsgMF0sICZyZ2JbMF0p Owo+ICsJCQl3cml0ZV9yZ2JmKCZwdHJbaiAqIDYgKyAzXSwgJnJnYlsxXSk7Cj4gKwkJfQo+ICsK PiArCQlpZiAoY3Z0LT5kc3QuZmItPndpZHRoICYgMSkgewo+ICsJCQlzdHJ1Y3QgaWd0X3ZlYzQg eXV2Owo+ICsJCQlzdHJ1Y3QgaWd0X3ZlYzQgcmdiOwo+ICsKPiArCQkJeXV2LmRbMF0gPSB5dXl2 W2ogKiA0ICsgMF07Cj4gKwkJCXl1di5kWzFdID0geXV5dltqICogNCArIDFdOwo+ICsJCQl5dXYu ZFsyXSA9IHl1eXZbaiAqIDQgKyAzXTsKPiArCQkJeXV2LmRbM10gPSAxLjBmOwo+ICsKPiArCQkJ cmdiID0gaWd0X21hdHJpeF90cmFuc2Zvcm0oJm0sICZ5dXYpOwo+ICsKPiArCQkJd3JpdGVfcmdi ZigmcHRyW2ogKiA2ICsgMF0sICZyZ2IpOwo+ICsJCX0KPiArCj4gKwkJcHRyICs9IGZsb2F0X3N0 cmlkZTsKPiArCQl5dXl2ICs9IHl1eXZfc3RyaWRlOwo+ICsJfQo+ICsKPiArCWNvbnZlcnRfc3Jj X3B1dChjdnQsIGJ1Zik7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGNvbnZlcnRfZmxvYXRfdG9f WTIxWChzdHJ1Y3QgZmJfY29udmVydCAqY3Z0KQo+ICt7Cj4gKwlpbnQgaSwgajsKPiArCXVpbnQx Nl90ICp5dXl2ID0gY3Z0LT5kc3QucHRyOwo+ICsJY29uc3QgZmxvYXQgKnB0ciA9IGN2dC0+c3Jj LnB0cjsKPiArCXVuc2lnbmVkIGZsb2F0X3N0cmlkZSA9IGN2dC0+c3JjLmZiLT5zdHJpZGVzWzBd IC8gc2l6ZW9mKCpwdHIpOwo+ICsJdW5zaWduZWQgeXV5dl9zdHJpZGUgPSBjdnQtPmRzdC5mYi0+ c3RyaWRlc1swXSAvIHNpemVvZigqeXV5dik7Cj4gKwlzdHJ1Y3QgaWd0X21hdDQgbSA9IGlndF9y Z2JfdG9feWNiY3JfbWF0cml4KGN2dC0+c3JjLmZiLT5kcm1fZm9ybWF0LAo+ICsJCQkJCQkgICAg Y3Z0LT5kc3QuZmItPmRybV9mb3JtYXQsCj4gKwkJCQkJCSAgICBjdnQtPmRzdC5mYi0+Y29sb3Jf ZW5jb2RpbmcsCj4gKwkJCQkJCSAgICBjdnQtPmRzdC5mYi0+Y29sb3JfcmFuZ2UpOwo+ICsKPiAr CWlndF9hc3NlcnQoY3Z0LT5zcmMuZmItPmRybV9mb3JtYXQgPT0gSUdUX0ZPUk1BVF9GTE9BVCAm Jgo+ICsJCSAgIChjdnQtPmRzdC5mYi0+ZHJtX2Zvcm1hdCA9PSBEUk1fRk9STUFUX1kyMTAgfHwK PiArCQkgICAgY3Z0LT5kc3QuZmItPmRybV9mb3JtYXQgPT0gRFJNX0ZPUk1BVF9ZMjEyIHx8Cj4g KwkJICAgIGN2dC0+ZHN0LmZiLT5kcm1fZm9ybWF0ID09IERSTV9GT1JNQVRfWTIxNikpOwo+ICsK PiArCWZvciAoaSA9IDA7IGkgPCBjdnQtPmRzdC5mYi0+aGVpZ2h0OyBpKyspIHsKPiArCQlmb3Ig KGogPSAwOyBqIDwgY3Z0LT5kc3QuZmItPndpZHRoIC8gMjsgaisrKSB7Cj4gKwkJCS8qIENvbnZl cnQgMngxIHBpeGVsIGJsb2NrcyAqLwo+ICsJCQlzdHJ1Y3QgaWd0X3ZlYzQgcmdiWzJdOwo+ICsJ CQlzdHJ1Y3QgaWd0X3ZlYzQgeXV2WzJdOwo+ICsKPiArCQkJcmVhZF9yZ2JmKCZyZ2JbMF0sICZw dHJbaiAqIDYgKyAwXSk7Cj4gKwkJCXJlYWRfcmdiZigmcmdiWzFdLCAmcHRyW2ogKiA2ICsgM10p Owo+ICsKPiArCQkJeXV2WzBdID0gaWd0X21hdHJpeF90cmFuc2Zvcm0oJm0sICZyZ2JbMF0pOwo+ ICsJCQl5dXZbMV0gPSBpZ3RfbWF0cml4X3RyYW5zZm9ybSgmbSwgJnJnYlsxXSk7Cj4gKwo+ICsJ CQl5dXl2W2ogKiA0ICsgMF0gPSB5dXZbMF0uZFswXTsKPiArCQkJeXV5dltqICogNCArIDJdID0g eXV2WzFdLmRbMF07Cj4gKwkJCXl1eXZbaiAqIDQgKyAxXSA9ICh5dXZbMF0uZFsxXSArIHl1dlsx XS5kWzFdKSAvIDIuMGY7Cj4gKwkJCXl1eXZbaiAqIDQgKyAzXSA9ICh5dXZbMF0uZFsyXSArIHl1 dlsxXS5kWzJdKSAvIDIuMGY7Cj4gKwkJfQo+ICsKPiArCQlpZiAoY3Z0LT5kc3QuZmItPndpZHRo ICYgMSkgewo+ICsJCQlzdHJ1Y3QgaWd0X3ZlYzQgcmdiOwo+ICsJCQlzdHJ1Y3QgaWd0X3ZlYzQg eXV2Owo+ICsKPiArCQkJcmVhZF9yZ2JmKCZyZ2IsICZwdHJbaiAqIDYgKyAwXSk7Cj4gKwo+ICsJ CQl5dXYgPSBpZ3RfbWF0cml4X3RyYW5zZm9ybSgmbSwgJnJnYik7Cj4gKwo+ICsJCQl5dXl2W2og KiA0ICsgMF0gPSB5dXYuZFswXTsKPiArCQkJeXV5dltqICogNCArIDFdID0geXV2LmRbMV07Cj4g KwkJCXl1eXZbaiAqIDQgKyAzXSA9IHl1di5kWzJdOwo+ICsJCX0KPiArCj4gKwkJcHRyICs9IGZs b2F0X3N0cmlkZTsKPiArCQl5dXl2ICs9IHl1eXZfc3RyaWRlOwo+ICsJfQo+ICt9Cj4gKwo+ICAg c3RhdGljIHZvaWQgY29udmVydF9waXhtYW4oc3RydWN0IGZiX2NvbnZlcnQgKmN2dCkKPiAgIHsK PiAgIAlwaXhtYW5fZm9ybWF0X2NvZGVfdCBzcmNfcGl4bWFuID0gZHJtX2Zvcm1hdF90b19waXht YW4oY3Z0LT5zcmMuZmItPmRybV9mb3JtYXQpOwo+IEBAIC0yMjIxLDYgKzIzNTQsMTEgQEAgc3Rh dGljIHZvaWQgZmJfY29udmVydChzdHJ1Y3QgZmJfY29udmVydCAqY3Z0KQo+ICAgCQljYXNlIERS TV9GT1JNQVRfUDAxNjoKPiAgIAkJCWNvbnZlcnRfcDAxWF90b19mbG9hdChjdnQpOwo+ICAgCQkJ cmV0dXJuOwo+ICsJCWNhc2UgRFJNX0ZPUk1BVF9ZMjEwOgo+ICsJCWNhc2UgRFJNX0ZPUk1BVF9Z MjEyOgo+ICsJCWNhc2UgRFJNX0ZPUk1BVF9ZMjE2Ogo+ICsJCQljb252ZXJ0X1kyMVhfdG9fZmxv YXQoY3Z0KTsKPiArCQkJcmV0dXJuOwo+ICAgCQl9Cj4gICAJfSBlbHNlIGlmIChjdnQtPnNyYy5m Yi0+ZHJtX2Zvcm1hdCA9PSBJR1RfRk9STUFUX0ZMT0FUKSB7Cj4gICAJCXN3aXRjaCAoY3Z0LT5k c3QuZmItPmRybV9mb3JtYXQpIHsKPiBAQCAtMjIyOSw2ICsyMzY3LDExIEBAIHN0YXRpYyB2b2lk IGZiX2NvbnZlcnQoc3RydWN0IGZiX2NvbnZlcnQgKmN2dCkKPiAgIAkJY2FzZSBEUk1fRk9STUFU X1AwMTY6Cj4gICAJCQljb252ZXJ0X2Zsb2F0X3RvX3AwMVgoY3Z0KTsKPiAgIAkJCXJldHVybjsK PiArCQljYXNlIERSTV9GT1JNQVRfWTIxMDoKPiArCQljYXNlIERSTV9GT1JNQVRfWTIxMjoKPiAr CQljYXNlIERSTV9GT1JNQVRfWTIxNjoKPiArCQkJY29udmVydF9mbG9hdF90b19ZMjFYKGN2dCk7 Cj4gKwkJCXJldHVybjsKPiAgIAkJfQo+ICAgCX0KPiAgIAo+IEBAIC0yNTgzLDYgKzI3MjYsOSBA QCBib29sIGlndF9mb3JtYXRfaXNfeXV2KHVpbnQzMl90IGRybV9mb3JtYXQpCj4gICAJY2FzZSBE Uk1fRk9STUFUX1AwMTA6Cj4gICAJY2FzZSBEUk1fRk9STUFUX1AwMTI6Cj4gICAJY2FzZSBEUk1f Rk9STUFUX1AwMTY6Cj4gKwljYXNlIERSTV9GT1JNQVRfWTIxMDoKPiArCWNhc2UgRFJNX0ZPUk1B VF9ZMjEyOgo+ICsJY2FzZSBEUk1fRk9STUFUX1kyMTY6Cj4gICAJY2FzZSBEUk1fRk9STUFUX1lV WVY6Cj4gICAJY2FzZSBEUk1fRk9STUFUX1lWWVU6Cj4gICAJY2FzZSBEUk1fRk9STUFUX1VZVlk6 CgotLSAKVGhhbmtzIGFuZCBSZWdhcmRzLApTd2F0aQoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pZ3QtZGV2Cg==