From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 1/3] drm/i915: Convert intel_tv connector properties to atomic. Date: Thu, 9 Mar 2017 19:36:02 +0200 Message-ID: <20170309173602.GU31595@intel.com> References: <1489064777-5460-1-git-send-email-maarten.lankhorst@linux.intel.com> <1489064777-5460-2-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id E6E4B6EC29 for ; Thu, 9 Mar 2017 17:36:05 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1489064777-5460-2-git-send-email-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBNYXIgMDksIDIwMTcgYXQgMDI6MDY6MTVQTSArMDEwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gQXMgYSBwcm9vZiBvZiBjb25jZXB0LCBmaXJzdCB0cnkgdG8gY29udmVydCBp bnRlbF90diwgd2hpY2ggaXMgYSByYXJlbHkKPiB1c2VkIGNvbm5lY3Rvci4gSXQgaGFzIDUgcHJv cGVydGllcywgdHYgZm9ybWF0IGFuZCA0IG1hcmdpbnMuCgpTaW5jZSBpdCdzIHNvIHJhcmUsIGlm IHlvdSB3YW50IHNvbWVvbmUgdG8gYWN0dWFsbHkgdGVzdCB0aGUgY29kZQppdCdsbCBwcm9iYWJs eSBtYWtlIHNlbnNlIHRvIHBpY2sgYW5vdGhlciBjb25uZWN0b3IgOykKCj4gCj4gSSdtIGxlc3Mg Y2VydGFpbiBhYm91dCB0aGUgc3RhdGUgYmVoYXZpb3IgaXRzZWxmLCBzaG91bGQgd2UgcGFzcyBh IHNpemUKPiBwYXJhbWV0ZXIgdG8gaW50ZWxfY29ubmVjdG9yX2FsbG9jIGluc3RlYWQsIHNvIGR1 cGxpY2F0ZV9zdGF0ZQo+IGNhbiBiZSBkb25lIGdsb2JhbGx5IGlmIGl0IGNhbiBiZSBibGluZGx5 IGNvcGllZD8KPiAKPiBDYW4gd2UgYWxzbyBoYXZlIGEgYXRvbWljX2NoZWNrIGZ1bmN0aW9uIGZv ciBjb25uZWN0b3JzLCBzbyB0aGUKPiBjcnRjX3N0YXRlLT5jb25uZWN0b3JzX2NoYW5nZWQgY2Fu IGJlIHNldCB0aGVyZT8gSXQgd291bGQgYmUgY2xlYW5lcgo+IGFuZCBtb3JlIGF0b21pYy1saWtl LgoKSG1tLiBJIHRoaW5rIGl0IG1pZ3RoIGJlIHJlYWxseSB1c2VmdWwgb25seSBpZiB3ZSBoYXZl IHNvbWUKaW50ZXJhY3Rpb25zIGJldHdlZW4gbXVsdGlwbGUgcHJvcGVydGllcyB0aGF0IHJlYWxs eSBuZWVkIHRvIGJlCmNoZWNrZWQuIFdlIG1pZ2h0IGhhdmUgdGhvc2UgYWxyZWFkeSBJIHN1cHBv c2UgYnV0IHdlIGRvbid0IHNlZW0KdG8gY2hlY2sgYW55IG9mIGl0IGN1cnJlbnRseS4gU28gYXMg YSBmaXJzdCBzdGVwIEkgZ3Vlc3Mgd2UgY2FuCmp1c3Qga2VlcCBpZ25vcmluZyBhbnkgc3VjaCBp c3N1ZXMuCgo+IAo+IFRvIG1hdGNoIHRoZSBsZWdhY3kgYmVoYXZpb3IsIGZvcm1hdCBjYW4gYmUg Y2hhbmdlZCBieSBwcm9iaW5nIGp1c3QgbGlrZQo+IGluIGxlZ2FjeSBtb2RlLgoKU2VsZiBtb2Rp Znlpbmcgc3RhdGUgaXJrcyBtZSwgYnV0IGl0J3Mgd2hhdCB3ZSd2ZSBiZWVuIGRvaW5nIHNvIEkg Z3Vlc3MKd2Ugc2hvdWxkIGtlZXAgaXQuCgo+IAo+IFNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFu a2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3R2LmMgfCAyMzggKysrKysrKysrKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLQo+ICAxIGZpbGUgY2hhbmdlZCwgMTM2IGluc2VydGlvbnMoKyksIDEw MiBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfdHYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3R2LmMKPiBpbmRleCA2ZWQxYTNj ZTQ3YjcuLjBmYjFkODYyMWZlOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF90di5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdHYuYwo+IEBAIC00 OCw4ICs0OCw2IEBAIHN0cnVjdCBpbnRlbF90diB7Cj4gIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciBi YXNlOwo+ICAKPiAgCWludCB0eXBlOwo+IC0JY29uc3QgY2hhciAqdHZfZm9ybWF0Owo+IC0JaW50 IG1hcmdpbls0XTsKPiAgCXUzMiBzYXZlX1RWX0hfQ1RMXzE7Cj4gIAl1MzIgc2F2ZV9UVl9IX0NU TF8yOwo+ICAJdTMyIHNhdmVfVFZfSF9DVExfMzsKPiBAQCAtODUsNiArODMsMTYgQEAgc3RydWN0 IGludGVsX3R2IHsKPiAgCXUzMiBzYXZlX1RWX0NUTDsKPiAgfTsKPiAgCj4gK3N0cnVjdCBpbnRl bF90dl9jb25uZWN0b3Jfc3RhdGUgewo+ICsJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgYmFz ZTsKPiArCj4gKwlpbnQgZm9ybWF0Owo+ICsJaW50IG1hcmdpbls0XTsKPiArfTsKPiArCj4gKyNk ZWZpbmUgdG9faW50ZWxfdHZfY29ubmVjdG9yX3N0YXRlKHN0YXRlKSBcCj4gKwljb250YWluZXJf b2YoKHN0YXRlKSwgc3RydWN0IGludGVsX3R2X2Nvbm5lY3Rvcl9zdGF0ZSwgYmFzZSkKPiArCj4g IHN0cnVjdCB2aWRlb19sZXZlbHMgewo+ICAJdTE2IGJsYW5rLCBibGFjazsKPiAgCXU4IGJ1cnN0 Owo+IEBAIC04NzMsMzIgKzg4MSwxOCBAQCBpbnRlbF9kaXNhYmxlX3R2KHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAo+ICAJSTkxNV9XUklURShUVl9DVEwsIEk5MTVfUkVBRChUVl9DVEwp ICYgflRWX0VOQ19FTkFCTEUpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgY29uc3Qgc3RydWN0IHR2X21v ZGUgKgo+IC1pbnRlbF90dl9tb2RlX2xvb2t1cChjb25zdCBjaGFyICp0dl9mb3JtYXQpCj4gK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgdHZfbW9kZSAqaW50ZWxfdHZfbW9kZV9maW5kKHN0cnVjdCBkcm1f Y29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICB7Cj4gLQlpbnQgaTsKPiArCWludCBmb3Jt YXQgPSB0b19pbnRlbF90dl9jb25uZWN0b3Jfc3RhdGUoY29ubl9zdGF0ZSktPmZvcm1hdDsKPiAg Cj4gLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSh0dl9tb2Rlcyk7IGkrKykgewo+IC0JCWNv bnN0IHN0cnVjdCB0dl9tb2RlICp0dl9tb2RlID0gJnR2X21vZGVzW2ldOwo+IC0KPiAtCQlpZiAo IXN0cmNtcCh0dl9mb3JtYXQsIHR2X21vZGUtPm5hbWUpKQo+IC0JCQlyZXR1cm4gdHZfbW9kZTsK PiAtCX0KPiAtCXJldHVybiBOVUxMOwo+IC19Cj4gLQo+IC1zdGF0aWMgY29uc3Qgc3RydWN0IHR2 X21vZGUgKgo+IC1pbnRlbF90dl9tb2RlX2ZpbmQoc3RydWN0IGludGVsX3R2ICppbnRlbF90dikK PiAtewo+IC0JcmV0dXJuIGludGVsX3R2X21vZGVfbG9va3VwKGludGVsX3R2LT50dl9mb3JtYXQp Owo+ICsJcmV0dXJuICZ0dl9tb2Rlc1tmb3JtYXRdOwo+ICB9Cj4gIAo+ICBzdGF0aWMgZW51bSBk cm1fbW9kZV9zdGF0dXMKPiAgaW50ZWxfdHZfbW9kZV92YWxpZChzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yLAo+ICAJCSAgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSkKPiAg ewo+IC0Jc3RydWN0IGludGVsX3R2ICppbnRlbF90diA9IGludGVsX2F0dGFjaGVkX3R2KGNvbm5l Y3Rvcik7Cj4gLQljb25zdCBzdHJ1Y3QgdHZfbW9kZSAqdHZfbW9kZSA9IGludGVsX3R2X21vZGVf ZmluZChpbnRlbF90dik7Cj4gKwljb25zdCBzdHJ1Y3QgdHZfbW9kZSAqdHZfbW9kZSA9IGludGVs X3R2X21vZGVfZmluZChjb25uZWN0b3ItPnN0YXRlKTsKCkl0IGZlZWxzIGEgYml0IGZpc2h5IHRv IHVzZSB0aGUgc3RhdGUgaGVyZS4gR2VuZXJhbGx5IHRoYXQncyBhIG5vLW5vLgpCdXQgaW4gdGhp cyBjYXNlIEkgd29uZGVyIGlmIGl0J3MgdGhlIHJpZ2h0IGNob2ljZSBhZnRlciBhbGwuIAoKTm90 IHN1cmUgaWYgc29tZSBraW5kIG9mICJhdXRvbWF0aWMiIGVudW0gdmFsdWUgbWlnaHQgYWxzbyB3 b3JrLiBJdAp3b3VsZCBhdCBsZWFzdCBhdm9pZCB0aGUgc2VsZiBtb2RpZnlpbmcgcHJvcGVydHkg cHJvYmxlbS4gQWx0aG91Z2ggSQp3b25kZXIgaWYgdGhlIHVzZXIgd291bGQgc3RpbGwgbGlrZSB0 byBrbm93IHdoYXQgd2FzIGFjdHVhbGx5IHVzZWQKaWYgdGhleSBjaG9zZSB0aGV5IGF1dG9tYXRp YyBtb2RlLCBzbyB3ZSBtaWdodCBuZWVkIGEgc2VsZiBtb2RpZnlpbmcKUk8gcHJvcGVydHkgZm9y IHRoZSBjdXJyZW50IG1vZGUgYW55d2F5LgoKQnV0IHRoYXQgc3RpbGwgbGVhdmVzIHRoZSBwcm9i bGVtIG9mIGhvdyB0aGUgdXNlciB3b3VsZCBrbm93IHdoaWNoIG1vZGVzCnRoZXkgc2hvdWxkIGJl IGFibGUgdG8gdXNlIGlmIC5nZXRfbW9kZXMoKS8ubW9kZV92YWxpZCgpIGRvZXNuJ3QgcmVzcGVj dAp0aGUgdXNlcnMgY2hvaWNlIG9mIHRoZSB0diBmb3JtYXQuIEhtbSwgdHJpY2t5LiBNaWdodCBi ZSB0aGUgc2VsZgptb2RpZnlpbmcgcHJvcGVydHkgaXMgdGhlIG9ubHkgZ29vZCBjaG9pY2UuCgpC dXQgaWYgd2Ugd291bGQgdXNlIHRoZSBzdGF0ZSBoZXJlLCB3aGF0J3MgdGhlIHN0b3J5IHdpdGgg bG9ja2luZyBnb2luZwp0byBiZT8gY29ubmVjdGlvbl9tdXRleCBpcyB3aGF0IHByb3RlY3RzIHRo aXMgc3R1ZmYsIGJ1dCB3ZSdyZSBub3QKaG9sZGluZyB0aGF0IGR1cmluZyBtb2RlIGVudW1lcmF0 aW9uLgoKPiAgCWludCBtYXhfZG90Y2xrID0gdG9faTkxNShjb25uZWN0b3ItPmRldiktPm1heF9k b3RjbGtfZnJlcTsKPiAgCj4gIAlpZiAobW9kZS0+Y2xvY2sgPiBtYXhfZG90Y2xrKQo+IEBAIC05 MjUsOCArOTE5LDcgQEAgaW50ZWxfdHZfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsCj4gIAkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywK PiAgCQkJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCj4gIHsKPiAtCXN0 cnVjdCBpbnRlbF90diAqaW50ZWxfdHYgPSBlbmNfdG9fdHYoZW5jb2Rlcik7Cj4gLQljb25zdCBz dHJ1Y3QgdHZfbW9kZSAqdHZfbW9kZSA9IGludGVsX3R2X21vZGVfZmluZChpbnRlbF90dik7Cj4g Kwljb25zdCBzdHJ1Y3QgdHZfbW9kZSAqdHZfbW9kZSA9IGludGVsX3R2X21vZGVfZmluZChjb25u X3N0YXRlKTsKPiAgCj4gIAlpZiAoIXR2X21vZGUpCj4gIAkJcmV0dXJuIGZhbHNlOwo+IEBAIC0x MDMyLDcgKzEwMjUsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF90dl9wcmVfZW5hYmxlKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAq aW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+YmFzZS5jcnRjKTsKPiAgCXN0cnVj dCBpbnRlbF90diAqaW50ZWxfdHYgPSBlbmNfdG9fdHYoZW5jb2Rlcik7Cj4gLQljb25zdCBzdHJ1 Y3QgdHZfbW9kZSAqdHZfbW9kZSA9IGludGVsX3R2X21vZGVfZmluZChpbnRlbF90dik7Cj4gKwlj b25zdCBzdHJ1Y3QgdHZfbW9kZSAqdHZfbW9kZSA9IGludGVsX3R2X21vZGVfZmluZChjb25uX3N0 YXRlKTsKPiAgCXUzMiB0dl9jdGw7Cj4gIAl1MzIgc2NjdGwxLCBzY2N0bDIsIHNjY3RsMzsKPiAg CWludCBpLCBqOwo+IEBAIC0xMDQxLDYgKzEwMzQsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF90dl9w cmVfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJYm9vbCBidXJzdF9l bmE7Cj4gIAlpbnQgeHBvcyA9IDB4MCwgeXBvcyA9IDB4MDsKPiAgCXVuc2lnbmVkIGludCB4c2l6 ZSwgeXNpemU7Cj4gKwlzdHJ1Y3QgaW50ZWxfdHZfY29ubmVjdG9yX3N0YXRlICp0dl9zdGF0ZSA9 Cj4gKwkJdG9faW50ZWxfdHZfY29ubmVjdG9yX3N0YXRlKGNvbm5fc3RhdGUpOwo+ICAKPiAgCWlm ICghdHZfbW9kZSkKPiAgCQlyZXR1cm47CS8qIGNhbid0IGhhcHBlbiAobW9kZV9wcmVwYXJlIHBy ZXZlbnRzIHRoaXMpICovCj4gQEAgLTExMzUsMTIgKzExMzAsMTIgQEAgc3RhdGljIHZvaWQgaW50 ZWxfdHZfcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCWVsc2UK PiAgCQl5c2l6ZSA9IDIqdHZfbW9kZS0+bmJyX2VuZCArIDE7Cj4gIAo+IC0JeHBvcyArPSBpbnRl bF90di0+bWFyZ2luW1RWX01BUkdJTl9MRUZUXTsKPiAtCXlwb3MgKz0gaW50ZWxfdHYtPm1hcmdp bltUVl9NQVJHSU5fVE9QXTsKPiAtCXhzaXplIC09IChpbnRlbF90di0+bWFyZ2luW1RWX01BUkdJ Tl9MRUZUXSArCj4gLQkJICBpbnRlbF90di0+bWFyZ2luW1RWX01BUkdJTl9SSUdIVF0pOwo+IC0J eXNpemUgLT0gKGludGVsX3R2LT5tYXJnaW5bVFZfTUFSR0lOX1RPUF0gKwo+IC0JCSAgaW50ZWxf dHYtPm1hcmdpbltUVl9NQVJHSU5fQk9UVE9NXSk7Cj4gKwl4cG9zICs9IHR2X3N0YXRlLT5tYXJn aW5bVFZfTUFSR0lOX0xFRlRdOwo+ICsJeXBvcyArPSB0dl9zdGF0ZS0+bWFyZ2luW1RWX01BUkdJ Tl9UT1BdOwo+ICsJeHNpemUgLT0gKHR2X3N0YXRlLT5tYXJnaW5bVFZfTUFSR0lOX0xFRlRdICsK PiArCQkgIHR2X3N0YXRlLT5tYXJnaW5bVFZfTUFSR0lOX1JJR0hUXSk7Cj4gKwl5c2l6ZSAtPSAo dHZfc3RhdGUtPm1hcmdpbltUVl9NQVJHSU5fVE9QXSArCj4gKwkJICB0dl9zdGF0ZS0+bWFyZ2lu W1RWX01BUkdJTl9CT1RUT01dKTsKPiAgCUk5MTVfV1JJVEUoVFZfV0lOX1BPUywgKHhwb3M8PDE2 KXx5cG9zKTsKPiAgCUk5MTVfV1JJVEUoVFZfV0lOX1NJWkUsICh4c2l6ZTw8MTYpfHlzaXplKTsK PiAgCj4gQEAgLTEyODgsNyArMTI4Myw3IEBAIGludGVsX3R2X2RldGVjdF90eXBlKHN0cnVjdCBp bnRlbF90diAqaW50ZWxfdHYsCj4gIHN0YXRpYyB2b2lkIGludGVsX3R2X2ZpbmRfYmV0dGVyX2Zv cm1hdChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICB7Cj4gIAlzdHJ1Y3QgaW50 ZWxfdHYgKmludGVsX3R2ID0gaW50ZWxfYXR0YWNoZWRfdHYoY29ubmVjdG9yKTsKPiAtCWNvbnN0 IHN0cnVjdCB0dl9tb2RlICp0dl9tb2RlID0gaW50ZWxfdHZfbW9kZV9maW5kKGludGVsX3R2KTsK PiArCWNvbnN0IHN0cnVjdCB0dl9tb2RlICp0dl9tb2RlID0gaW50ZWxfdHZfbW9kZV9maW5kKGNv bm5lY3Rvci0+c3RhdGUpOwo+ICAJaW50IGk7Cj4gIAo+ICAJaWYgKChpbnRlbF90di0+dHlwZSA9 PSBEUk1fTU9ERV9DT05ORUNUT1JfQ29tcG9uZW50KSA9PQo+IEBAIC0xMzA0LDkgKzEyOTksNyBA QCBzdGF0aWMgdm9pZCBpbnRlbF90dl9maW5kX2JldHRlcl9mb3JtYXQoc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvcikKPiAgCQkJYnJlYWs7Cj4gIAl9Cj4gIAo+IC0JaW50ZWxfdHYtPnR2 X2Zvcm1hdCA9IHR2X21vZGUtPm5hbWU7Cj4gLQlkcm1fb2JqZWN0X3Byb3BlcnR5X3NldF92YWx1 ZSgmY29ubmVjdG9yLT5iYXNlLAo+IC0JCWNvbm5lY3Rvci0+ZGV2LT5tb2RlX2NvbmZpZy50dl9t b2RlX3Byb3BlcnR5LCBpKTsKPiArCXRvX2ludGVsX3R2X2Nvbm5lY3Rvcl9zdGF0ZShjb25uZWN0 b3ItPnN0YXRlKS0+Zm9ybWF0ID0gaTsKPiAgfQo+ICAKPiAgLyoqCj4gQEAgLTEzNDQsMTggKzEz MzcsMTcgQEAgaW50ZWxfdHZfZGV0ZWN0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Is IGJvb2wgZm9yY2UpCj4gIAkJfSBlbHNlCj4gIAkJCXN0YXR1cyA9IGNvbm5lY3Rvcl9zdGF0dXNf dW5rbm93bjsKPiAgCj4gKwkJaWYgKHN0YXR1cyA9PSBjb25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3Rl ZCkgewo+ICsJCQlpbnRlbF90di0+dHlwZSA9IHR5cGU7Cj4gKwkJCWludGVsX3R2X2ZpbmRfYmV0 dGVyX2Zvcm1hdChjb25uZWN0b3IpOwo+ICsJCX0KPiArCj4gIAkJZHJtX21vZGVzZXRfZHJvcF9s b2NrcygmY3R4KTsKPiAgCQlkcm1fbW9kZXNldF9hY3F1aXJlX2ZpbmkoJmN0eCk7Cj4gLQl9IGVs c2UKPiAtCQlyZXR1cm4gY29ubmVjdG9yLT5zdGF0dXM7Cj4gIAo+IC0JaWYgKHN0YXR1cyAhPSBj b25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZCkKPiAgCQlyZXR1cm4gc3RhdHVzOwo+IC0KPiAtCWlu dGVsX3R2LT50eXBlID0gdHlwZTsKPiAtCWludGVsX3R2X2ZpbmRfYmV0dGVyX2Zvcm1hdChjb25u ZWN0b3IpOwo+IC0KPiAtCXJldHVybiBjb25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZDsKPiArCX0g ZWxzZQo+ICsJCXJldHVybiBjb25uZWN0b3ItPnN0YXR1czsKPiAgfQo+ICAKPiAgc3RhdGljIGNv bnN0IHN0cnVjdCBpbnB1dF9yZXMgewo+IEBAIC0xMzc4LDggKzEzNzAsNyBAQCBzdGF0aWMgdm9p ZAo+ICBpbnRlbF90dl9jaG9zZV9wcmVmZXJyZWRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvciwKPiAgCQkJICAgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlX3B0 cikKPiAgewo+IC0Jc3RydWN0IGludGVsX3R2ICppbnRlbF90diA9IGludGVsX2F0dGFjaGVkX3R2 KGNvbm5lY3Rvcik7Cj4gLQljb25zdCBzdHJ1Y3QgdHZfbW9kZSAqdHZfbW9kZSA9IGludGVsX3R2 X21vZGVfZmluZChpbnRlbF90dik7Cj4gKwljb25zdCBzdHJ1Y3QgdHZfbW9kZSAqdHZfbW9kZSA9 IGludGVsX3R2X21vZGVfZmluZChjb25uZWN0b3ItPnN0YXRlKTsKPiAgCj4gIAlpZiAodHZfbW9k ZS0+bmJyX2VuZCA8IDQ4MCAmJiBtb2RlX3B0ci0+dmRpc3BsYXkgPT0gNDgwKQo+ICAJCW1vZGVf cHRyLT50eXBlIHw9IERSTV9NT0RFX1RZUEVfUFJFRkVSUkVEOwo+IEBAIC0xNDAzLDggKzEzOTQs NyBAQCBzdGF0aWMgaW50Cj4gIGludGVsX3R2X2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZV9wdHI7 Cj4gLQlzdHJ1Y3QgaW50ZWxfdHYgKmludGVsX3R2ID0gaW50ZWxfYXR0YWNoZWRfdHYoY29ubmVj dG9yKTsKPiAtCWNvbnN0IHN0cnVjdCB0dl9tb2RlICp0dl9tb2RlID0gaW50ZWxfdHZfbW9kZV9m aW5kKGludGVsX3R2KTsKPiArCWNvbnN0IHN0cnVjdCB0dl9tb2RlICp0dl9tb2RlID0gaW50ZWxf dHZfbW9kZV9maW5kKGNvbm5lY3Rvci0+c3RhdGUpOwo+ICAJaW50IGosIGNvdW50ID0gMDsKPiAg CXU2NCB0bXA7Cj4gIAo+IEBAIC0xNDYyLDU2ICsxNDUyLDk3IEBAIGludGVsX3R2X2Rlc3Ryb3ko c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgCWtmcmVlKGNvbm5lY3Rvcik7Cj4g IH0KPiAgCj4gLQo+ICBzdGF0aWMgaW50Cj4gLWludGVsX3R2X3NldF9wcm9wZXJ0eShzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSwK PiAtCQkgICAgICB1aW50NjRfdCB2YWwpCj4gK2ludGVsX3R2X2F0b21pY19zZXRfcHJvcGVydHko c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiArCQkJICAgICBzdHJ1Y3QgZHJtX2Nv bm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSwKPiArCQkJICAgICBzdHJ1Y3QgZHJtX3Byb3BlcnR5 ICpwcm9wZXJ0eSwKPiArCQkJICAgICB1aW50NjRfdCB2YWwpCj4gIHsKPiAgCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmRldjsKPiAtCXN0cnVjdCBpbnRlbF90diAqaW50ZWxf dHYgPSBpbnRlbF9hdHRhY2hlZF90dihjb25uZWN0b3IpOwo+IC0Jc3RydWN0IGRybV9jcnRjICpj cnRjID0gaW50ZWxfdHYtPmJhc2UuYmFzZS5jcnRjOwo+IC0JaW50IHJldCA9IDA7Cj4gKwo+ICsJ c3RydWN0IGludGVsX3R2X2Nvbm5lY3Rvcl9zdGF0ZSAqdHZfc3RhdGUgPQo+ICsJCXRvX2ludGVs X3R2X2Nvbm5lY3Rvcl9zdGF0ZShjb25uX3N0YXRlKTsKPiAgCWJvb2wgY2hhbmdlZCA9IGZhbHNl Owo+ICAKPiAtCXJldCA9IGRybV9vYmplY3RfcHJvcGVydHlfc2V0X3ZhbHVlKCZjb25uZWN0b3It PmJhc2UsIHByb3BlcnR5LCB2YWwpOwo+IC0JaWYgKHJldCA8IDApCj4gLQkJZ290byBvdXQ7Cj4g LQo+IC0JaWYgKHByb3BlcnR5ID09IGRldi0+bW9kZV9jb25maWcudHZfbGVmdF9tYXJnaW5fcHJv cGVydHkgJiYKPiAtCQlpbnRlbF90di0+bWFyZ2luW1RWX01BUkdJTl9MRUZUXSAhPSB2YWwpIHsK PiAtCQlpbnRlbF90di0+bWFyZ2luW1RWX01BUkdJTl9MRUZUXSA9IHZhbDsKPiAtCQljaGFuZ2Vk ID0gdHJ1ZTsKPiAtCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gZGV2LT5tb2RlX2NvbmZpZy50dl9y aWdodF9tYXJnaW5fcHJvcGVydHkgJiYKPiAtCQlpbnRlbF90di0+bWFyZ2luW1RWX01BUkdJTl9S SUdIVF0gIT0gdmFsKSB7Cj4gLQkJaW50ZWxfdHYtPm1hcmdpbltUVl9NQVJHSU5fUklHSFRdID0g dmFsOwo+IC0JCWNoYW5nZWQgPSB0cnVlOwo+IC0JfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBkZXYt Pm1vZGVfY29uZmlnLnR2X3RvcF9tYXJnaW5fcHJvcGVydHkgJiYKPiAtCQlpbnRlbF90di0+bWFy Z2luW1RWX01BUkdJTl9UT1BdICE9IHZhbCkgewo+IC0JCWludGVsX3R2LT5tYXJnaW5bVFZfTUFS R0lOX1RPUF0gPSB2YWw7Cj4gLQkJY2hhbmdlZCA9IHRydWU7Cj4gLQl9IGVsc2UgaWYgKHByb3Bl cnR5ID09IGRldi0+bW9kZV9jb25maWcudHZfYm90dG9tX21hcmdpbl9wcm9wZXJ0eSAmJgo+IC0J CWludGVsX3R2LT5tYXJnaW5bVFZfTUFSR0lOX0JPVFRPTV0gIT0gdmFsKSB7Cj4gLQkJaW50ZWxf dHYtPm1hcmdpbltUVl9NQVJHSU5fQk9UVE9NXSA9IHZhbDsKPiAtCQljaGFuZ2VkID0gdHJ1ZTsK PiArCWlmIChwcm9wZXJ0eSA9PSBkZXYtPm1vZGVfY29uZmlnLnR2X2xlZnRfbWFyZ2luX3Byb3Bl cnR5KSB7Cj4gKwkJY2hhbmdlZCA9IHR2X3N0YXRlLT5tYXJnaW5bVFZfTUFSR0lOX0xFRlRdICE9 IHZhbDsKPiArCj4gKwkJdHZfc3RhdGUtPm1hcmdpbltUVl9NQVJHSU5fTEVGVF0gPSB2YWw7Cj4g Kwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGRldi0+bW9kZV9jb25maWcudHZfcmlnaHRfbWFyZ2lu X3Byb3BlcnR5KSB7Cj4gKwkJY2hhbmdlZCA9IHR2X3N0YXRlLT5tYXJnaW5bVFZfTUFSR0lOX1JJ R0hUXSAhPSB2YWw7Cj4gKwo+ICsJCXR2X3N0YXRlLT5tYXJnaW5bVFZfTUFSR0lOX1JJR0hUXSA9 IHZhbDsKPiArCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gZGV2LT5tb2RlX2NvbmZpZy50dl90b3Bf bWFyZ2luX3Byb3BlcnR5KSB7Cj4gKwkJY2hhbmdlZCA9IHR2X3N0YXRlLT5tYXJnaW5bVFZfTUFS R0lOX1RPUF0gIT0gdmFsOwo+ICsKPiArCQl0dl9zdGF0ZS0+bWFyZ2luW1RWX01BUkdJTl9UT1Bd ID0gdmFsOwo+ICsJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBkZXYtPm1vZGVfY29uZmlnLnR2X2Jv dHRvbV9tYXJnaW5fcHJvcGVydHkpIHsKPiArCQljaGFuZ2VkID0gdHZfc3RhdGUtPm1hcmdpbltU Vl9NQVJHSU5fQk9UVE9NXSAhPSB2YWw7Cj4gKwo+ICsJCXR2X3N0YXRlLT5tYXJnaW5bVFZfTUFS R0lOX0JPVFRPTV0gPSB2YWw7Cj4gIAl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGRldi0+bW9kZV9j b25maWcudHZfbW9kZV9wcm9wZXJ0eSkgewo+ICAJCWlmICh2YWwgPj0gQVJSQVlfU0laRSh0dl9t b2RlcykpIHsKPiAtCQkJcmV0ID0gLUVJTlZBTDsKPiAtCQkJZ290byBvdXQ7Cj4gKwkJCURSTV9E RUJVR19BVE9NSUMoInZhbHVlICVsbHUgb3V0IG9mIHR2X21vZGVzIGFycmF5IGJvdW5kc1xuIiwg dmFsKTsKPiArCj4gKwkJCXJldHVybiAtRUlOVkFMOwo+ICAJCX0KPiAtCQlpZiAoIXN0cmNtcChp bnRlbF90di0+dHZfZm9ybWF0LCB0dl9tb2Rlc1t2YWxdLm5hbWUpKQo+IC0JCQlnb3RvIG91dDsK PiAgCj4gLQkJaW50ZWxfdHYtPnR2X2Zvcm1hdCA9IHR2X21vZGVzW3ZhbF0ubmFtZTsKPiAtCQlj aGFuZ2VkID0gdHJ1ZTsKPiArCQljaGFuZ2VkID0gdHZfc3RhdGUtPmZvcm1hdCAhPSB2YWw7Cj4g KwkJdHZfc3RhdGUtPmZvcm1hdCA9IHZhbDsKPiArCX0gZWxzZSB7Cj4gKwkJRFJNX0RFQlVHX0FU T01JQygiVW5rbm93biBhdG9taWMgcHJvcGVydHkgJXNcbiIsIHByb3BlcnR5LT5uYW1lKTsKPiAr CQlyZXR1cm4gLUVJTlZBTDsKPiArCX0KPiArCj4gKwkvKiBUcmlnZ2VyIGEgbW9kZXNldCB3aGVu IGNvbm5lY3RvciBwcm9wZXJ0aWVzIGFyZSBjaGFuZ2VkLiAqLwo+ICsJaWYgKGNoYW5nZWQgJiYg Y29ubl9zdGF0ZS0+Y3J0Yykgewo+ICsJCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSA9Cj4gKwkJCWRybV9hdG9taWNfZ2V0X2V4aXN0aW5nX2NydGNfc3RhdGUoY29ubl9zdGF0ZS0+ c3RhdGUsCj4gKwkJCQkJCQkgICBjb25uX3N0YXRlLT5jcnRjKTsKPiArCj4gKwkJY3J0Y19zdGF0 ZS0+Y29ubmVjdG9yc19jaGFuZ2VkID0gdHJ1ZTsKPiArCX0KPiArCXJldHVybiAwOwo+ICt9Cj4g Kwo+ICtzdGF0aWMgaW50Cj4gK2ludGVsX3R2X2F0b21pY19nZXRfcHJvcGVydHkoc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiArCQkJCSAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5l Y3Rvcl9zdGF0ZSAqc3RhdGUsCj4gKwkJCQkgICAgc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVy dHksCj4gKwkJCQkgICAgdWludDY0X3QgKnZhbCkKPiArewo+ICsJc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9IGNvbm5lY3Rvci0+ZGV2Owo+ICsJc3RydWN0IGludGVsX3R2X2Nvbm5lY3Rvcl9zdGF0 ZSAqdHZfc3RhdGUgPQo+ICsJCXRvX2ludGVsX3R2X2Nvbm5lY3Rvcl9zdGF0ZShzdGF0ZSk7Cj4g Kwo+ICsJaWYgKHByb3BlcnR5ID09IGRldi0+bW9kZV9jb25maWcudHZfbGVmdF9tYXJnaW5fcHJv cGVydHkpCj4gKwkJKnZhbCA9IHR2X3N0YXRlLT5tYXJnaW5bVFZfTUFSR0lOX0xFRlRdOwo+ICsJ ZWxzZSBpZiAocHJvcGVydHkgPT0gZGV2LT5tb2RlX2NvbmZpZy50dl9yaWdodF9tYXJnaW5fcHJv cGVydHkpCj4gKwkJKnZhbCA9IHR2X3N0YXRlLT5tYXJnaW5bVFZfTUFSR0lOX1JJR0hUXTsKPiAr CWVsc2UgaWYgKHByb3BlcnR5ID09IGRldi0+bW9kZV9jb25maWcudHZfdG9wX21hcmdpbl9wcm9w ZXJ0eSkKPiArCQkqdmFsID0gdHZfc3RhdGUtPm1hcmdpbltUVl9NQVJHSU5fVE9QXTsKPiArCWVs c2UgaWYgKHByb3BlcnR5ID09IGRldi0+bW9kZV9jb25maWcudHZfYm90dG9tX21hcmdpbl9wcm9w ZXJ0eSkKPiArCQkqdmFsID0gdHZfc3RhdGUtPm1hcmdpbltUVl9NQVJHSU5fQk9UVE9NXTsKPiAr CWVsc2UgaWYgKHByb3BlcnR5ID09IGRldi0+bW9kZV9jb25maWcudHZfbW9kZV9wcm9wZXJ0eSkg ewo+ICsJCSp2YWwgPSB0dl9zdGF0ZS0+Zm9ybWF0Owo+ICAJfSBlbHNlIHsKPiAtCQlyZXQgPSAt RUlOVkFMOwo+IC0JCWdvdG8gb3V0Owo+ICsJCURSTV9ERUJVR19BVE9NSUMoIlVua25vd24gYXRv bWljIHByb3BlcnR5ICVzXG4iLCBwcm9wZXJ0eS0+bmFtZSk7Cj4gKwkJcmV0dXJuIC1FSU5WQUw7 Cj4gIAl9Cj4gIAo+IC0JaWYgKGNoYW5nZWQgJiYgY3J0YykKPiAtCQlpbnRlbF9jcnRjX3Jlc3Rv cmVfbW9kZShjcnRjKTsKPiAtb3V0Ogo+IC0JcmV0dXJuIHJldDsKPiArCXJldHVybiAwOwo+ICt9 Cj4gKwo+ICtzdGF0aWMgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKgo+ICtpbnRlbF90dl9k dXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiArewo+ICsJ c3RydWN0IGludGVsX3R2X2Nvbm5lY3Rvcl9zdGF0ZSAqc3RhdGU7Cj4gKwo+ICsJc3RhdGUgPSBr bWVtZHVwKCZjb25uZWN0b3ItPnN0YXRlLCBzaXplb2YoKnN0YXRlKSwgR0ZQX0tFUk5FTCk7Cj4g KwlpZiAoc3RhdGUpCj4gKwkJX19kcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZHVwbGljYXRl X3N0YXRlKGNvbm5lY3RvciwgJnN0YXRlLT5iYXNlKTsKPiArCj4gKwlyZXR1cm4gJnN0YXRlLT5i YXNlOwo+ICB9Cj4gIAo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3JfZnVuY3Mg aW50ZWxfdHZfY29ubmVjdG9yX2Z1bmNzID0gewo+IEBAIC0xNTIwLDExICsxNTUxLDEyIEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcyBpbnRlbF90dl9jb25uZWN0b3Jf ZnVuY3MgPSB7Cj4gIAkubGF0ZV9yZWdpc3RlciA9IGludGVsX2Nvbm5lY3Rvcl9yZWdpc3RlciwK PiAgCS5lYXJseV91bnJlZ2lzdGVyID0gaW50ZWxfY29ubmVjdG9yX3VucmVnaXN0ZXIsCj4gIAku ZGVzdHJveSA9IGludGVsX3R2X2Rlc3Ryb3ksCj4gLQkuc2V0X3Byb3BlcnR5ID0gaW50ZWxfdHZf c2V0X3Byb3BlcnR5LAo+IC0JLmF0b21pY19nZXRfcHJvcGVydHkgPSBpbnRlbF9jb25uZWN0b3Jf YXRvbWljX2dldF9wcm9wZXJ0eSwKPiArCS5zZXRfcHJvcGVydHkgPSBkcm1fYXRvbWljX2hlbHBl cl9jb25uZWN0b3Jfc2V0X3Byb3BlcnR5LAo+ICsJLmF0b21pY19zZXRfcHJvcGVydHkgPSBpbnRl bF90dl9hdG9taWNfc2V0X3Byb3BlcnR5LAo+ICsJLmF0b21pY19nZXRfcHJvcGVydHkgPSBpbnRl bF90dl9hdG9taWNfZ2V0X3Byb3BlcnR5LAo+ICAJLmZpbGxfbW9kZXMgPSBkcm1faGVscGVyX3By b2JlX3NpbmdsZV9jb25uZWN0b3JfbW9kZXMsCj4gIAkuYXRvbWljX2Rlc3Ryb3lfc3RhdGUgPSBk cm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZGVzdHJveV9zdGF0ZSwKPiAtCS5hdG9taWNfZHVw bGljYXRlX3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2R1cGxpY2F0ZV9zdGF0 ZSwKPiArCS5hdG9taWNfZHVwbGljYXRlX3N0YXRlID0gaW50ZWxfdHZfZHVwbGljYXRlX3N0YXRl LAo+ICB9Owo+ICAKPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9m dW5jcyBpbnRlbF90dl9jb25uZWN0b3JfaGVscGVyX2Z1bmNzID0gewo+IEBAIC0xNTQ3LDYgKzE1 NzksNyBAQCBpbnRlbF90dl9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK PiAgCXUzMiB0dl9kYWNfb24sIHR2X2RhY19vZmYsIHNhdmVfdHZfZGFjOwo+ICAJY29uc3QgY2hh ciAqdHZfZm9ybWF0X25hbWVzW0FSUkFZX1NJWkUodHZfbW9kZXMpXTsKPiAgCWludCBpLCBpbml0 aWFsX21vZGUgPSAwOwo+ICsJc3RydWN0IGludGVsX3R2X2Nvbm5lY3Rvcl9zdGF0ZSAqc3RhdGU7 Cj4gIAo+ICAJaWYgKChJOTE1X1JFQUQoVFZfQ1RMKSAmIFRWX0ZVU0VfU1RBVEVfTUFTSykgPT0g VFZfRlVTRV9TVEFURV9ESVNBQkxFRCkKPiAgCQlyZXR1cm47Cj4gQEAgLTE1ODAsMTYgKzE2MTMs MTcgQEAgaW50ZWxfdHZfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4g IAkJcmV0dXJuOwo+ICAKPiAgCWludGVsX3R2ID0ga3phbGxvYyhzaXplb2YoKmludGVsX3R2KSwg R0ZQX0tFUk5FTCk7Cj4gLQlpZiAoIWludGVsX3R2KSB7Cj4gLQkJcmV0dXJuOwo+IC0JfQo+IC0K PiAtCWludGVsX2Nvbm5lY3RvciA9IGludGVsX2Nvbm5lY3Rvcl9hbGxvYygpOwo+IC0JaWYgKCFp bnRlbF9jb25uZWN0b3IpIHsKPiArCWludGVsX2Nvbm5lY3RvciA9IGt6YWxsb2Moc2l6ZW9mKCpp bnRlbF9jb25uZWN0b3IpLCBHRlBfS0VSTkVMKTsKPiArCXN0YXRlID0ga3phbGxvYyhzaXplb2Yo KnN0YXRlKSwgR0ZQX0tFUk5FTCk7Cj4gKwlpZiAoIWludGVsX3R2IHx8ICFpbnRlbF9jb25uZWN0 b3IgfHwgIXN0YXRlKSB7Cj4gKwkJa2ZyZWUoaW50ZWxfY29ubmVjdG9yKTsKPiArCQlrZnJlZShz dGF0ZSk7Cj4gIAkJa2ZyZWUoaW50ZWxfdHYpOwo+ICAJCXJldHVybjsKPiAgCX0KPiAgCj4gKwlf X2RybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9yZXNldCgmaW50ZWxfY29ubmVjdG9yLT5iYXNl LCAmc3RhdGUtPmJhc2UpOwo+ICsKPiAgCWludGVsX2VuY29kZXIgPSAmaW50ZWxfdHYtPmJhc2U7 Cj4gIAljb25uZWN0b3IgPSAmaW50ZWxfY29ubmVjdG9yLT5iYXNlOwo+ICAKPiBAQCAtMTYyOSwx MiArMTY2MywxMiBAQCBpbnRlbF90dl9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKPiAgCWludGVsX3R2LT50eXBlID0gRFJNX01PREVfQ09OTkVDVE9SX1Vua25vd247Cj4g IAo+ICAJLyogQklPUyBtYXJnaW4gdmFsdWVzICovCj4gLQlpbnRlbF90di0+bWFyZ2luW1RWX01B UkdJTl9MRUZUXSA9IDU0Owo+IC0JaW50ZWxfdHYtPm1hcmdpbltUVl9NQVJHSU5fVE9QXSA9IDM2 Owo+IC0JaW50ZWxfdHYtPm1hcmdpbltUVl9NQVJHSU5fUklHSFRdID0gNDY7Cj4gLQlpbnRlbF90 di0+bWFyZ2luW1RWX01BUkdJTl9CT1RUT01dID0gMzc7Cj4gKwlzdGF0ZS0+bWFyZ2luW1RWX01B UkdJTl9MRUZUXSA9IDU0Owo+ICsJc3RhdGUtPm1hcmdpbltUVl9NQVJHSU5fVE9QXSA9IDM2Owo+ ICsJc3RhdGUtPm1hcmdpbltUVl9NQVJHSU5fUklHSFRdID0gNDY7Cj4gKwlzdGF0ZS0+bWFyZ2lu W1RWX01BUkdJTl9CT1RUT01dID0gMzc7Cj4gIAo+IC0JaW50ZWxfdHYtPnR2X2Zvcm1hdCA9IHR2 X21vZGVzW2luaXRpYWxfbW9kZV0ubmFtZTsKPiArCXN0YXRlLT5mb3JtYXQgPSBpbml0aWFsX21v ZGU7Cj4gIAo+ICAJZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfYWRkKGNvbm5lY3RvciwgJmludGVsX3R2 X2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MpOwo+ICAJY29ubmVjdG9yLT5pbnRlcmxhY2VfYWxsb3dl ZCA9IGZhbHNlOwo+IEBAIC0xNjQ4LDE3ICsxNjgyLDE3IEBAIGludGVsX3R2X2luaXQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJCQkJICAgICAgdHZfZm9ybWF0X25hbWVz KTsKPiAgCj4gIAlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmY29ubmVjdG9yLT5iYXNlLCBk ZXYtPm1vZGVfY29uZmlnLnR2X21vZGVfcHJvcGVydHksCj4gLQkJCQkgICBpbml0aWFsX21vZGUp Owo+ICsJCQkJICAgc3RhdGUtPmZvcm1hdCk7Cj4gIAlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0 eSgmY29ubmVjdG9yLT5iYXNlLAo+ICAJCQkJICAgZGV2LT5tb2RlX2NvbmZpZy50dl9sZWZ0X21h cmdpbl9wcm9wZXJ0eSwKPiAtCQkJCSAgIGludGVsX3R2LT5tYXJnaW5bVFZfTUFSR0lOX0xFRlRd KTsKPiArCQkJCSAgIHN0YXRlLT5tYXJnaW5bVFZfTUFSR0lOX0xFRlRdKTsKPiAgCWRybV9vYmpl Y3RfYXR0YWNoX3Byb3BlcnR5KCZjb25uZWN0b3ItPmJhc2UsCj4gIAkJCQkgICBkZXYtPm1vZGVf Y29uZmlnLnR2X3RvcF9tYXJnaW5fcHJvcGVydHksCj4gLQkJCQkgICBpbnRlbF90di0+bWFyZ2lu W1RWX01BUkdJTl9UT1BdKTsKPiArCQkJCSAgIHN0YXRlLT5tYXJnaW5bVFZfTUFSR0lOX1RPUF0p Owo+ICAJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJmNvbm5lY3Rvci0+YmFzZSwKPiAgCQkJ CSAgIGRldi0+bW9kZV9jb25maWcudHZfcmlnaHRfbWFyZ2luX3Byb3BlcnR5LAo+IC0JCQkJICAg aW50ZWxfdHYtPm1hcmdpbltUVl9NQVJHSU5fUklHSFRdKTsKPiArCQkJCSAgIHN0YXRlLT5tYXJn aW5bVFZfTUFSR0lOX1JJR0hUXSk7Cj4gIAlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmY29u bmVjdG9yLT5iYXNlLAo+ICAJCQkJICAgZGV2LT5tb2RlX2NvbmZpZy50dl9ib3R0b21fbWFyZ2lu X3Byb3BlcnR5LAo+IC0JCQkJICAgaW50ZWxfdHYtPm1hcmdpbltUVl9NQVJHSU5fQk9UVE9NXSk7 Cj4gKwkJCQkgICBzdGF0ZS0+bWFyZ2luW1RWX01BUkdJTl9CT1RUT01dKTsKPiAgfQo+IC0tIAo+ IDIuNy40Cj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4CgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK