From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm/i915: Add support for CHV pipe B sprite CSC Date: Thu, 30 Oct 2014 10:30:47 +0200 Message-ID: <20141030083047.GO10649@intel.com> References: <1413823673-22549-1-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 3725C6E641 for ; Thu, 30 Oct 2014 01:31:14 -0700 (PDT) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Rodrigo Vivi Cc: intel-gfx List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBPY3QgMjksIDIwMTQgYXQgMDE6NDc6MzVQTSAtMDcwMCwgUm9kcmlnbyBWaXZpIHdy b3RlOgo+IEZpcnN0IG9mIGFsbCB0aGFua3MgZm9yIHRoZSBzcGVjCj4gCj4gT24gTW9uLCBPY3Qg MjAsIDIwMTQgYXQgOTo0NyBBTSwgIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4gd3Jv dGU6Cj4gPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwu Y29tPgo+ID4KPiA+IENIViBoYXMgYSBwcm9ncmFtbWFibGUgQ1NDIHVuaXQgb24gdGhlIHBpcGUg QiBzcHJpdGVzLiBQcm9ncmFtIHRoZSB1bml0Cj4gPiBhcHByb3ByaWF0ZWx5IGZvciBCVC42MDEg bGltaXRlZCByYW5nZSBZQ2JDciB0byBmdWxsIHJhbmdlIFJHQiBjb2xvcgo+ID4gY29udmVyc2lv bi4gVGhpcyBtYXRjaGVzIHRoZSBwcm9ncmFtbWluZyB3ZSBjdXJyZW50bHkgZG8gZm9yIHNwcml0 ZXMKPiA+IG9uIHRoZSBvdGhlciBwaXBlcyBhbmQgb24gb3RoZXIgcGxhdGZvcm1zLgo+ID4KPiA+ IEl0IHNlZW1zIHRoZSBDU0Mgb25seSB3b3JrcyB3aGVuIHRoZSBpbnB1dCBkYXRhIGlzIFlDYkNy LiBGb3IgUkdCCj4gPiBwaXhlbCBmb3JtYXRzIGl0IGRvZXNuJ3QgbWF0dGVyIHdoYXQgd2UgcHJv Z3JhbSBpbnRvIHRoZSBDU0MgcmVnaXN0ZXJzLgo+ID4gRG9lc24ndCBtYWtlIG11Y2ggc2Vuc2Ug dG8gbWUgZXNwZWNpYWxseSBzaW5jZSB0aGUgcmVnaXN0ZXIgbmFtZXMgZ2l2ZQo+ID4gdGhlIGlt cHJlc3Npb24gdGhhdCBSR0IgaW5wdXQgZGF0YSB3b3VsZCBhbHNvIHdvcmsuIEJ1dCB0aGF0J3Mg aG93Cj4gPiBpdCBiZWhhdmVzIGhlcmUuCj4gPgo+ID4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3ly asOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+IC0tLQo+ID4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggICAgIHwgMzMgKysrKysrKysrKysrKysrKysKPiA+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYyB8IDcwICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0KPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDg5IGluc2VydGlv bnMoKyksIDE0IGRlbGV0aW9ucygtKQo+ID4KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ID4g aW5kZXggOWRlZTA2My4uMDVlN2ZkMyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcmVnLmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgK PiA+IEBAIC00NTg0LDYgKzQ1ODQsMzkgQEAgZW51bSBwdW5pdF9wb3dlcl93ZWxsIHsKPiA+ICAj ZGVmaW5lIFNQQ09OU1RBTFBIQShwaXBlLCBwbGFuZSkgX1BJUEUocGlwZSAqIDIgKyBwbGFuZSwg X1NQQUNPTlNUQUxQSEEsIF9TUEJDT05TVEFMUEhBKQo+ID4gICNkZWZpbmUgU1BHQU1DKHBpcGUs IHBsYW5lKSBfUElQRShwaXBlICogMiArIHBsYW5lLCBfU1BBR0FNQywgX1NQQkdBTUMpCj4gPgo+ ID4gKy8qCj4gPiArICogQ0hWIHBpcGUgQiBzcHJpdGUgQ1NDCj4gPiArICoKPiA+ICsgKiB8Y3J8 ICAgfGMwIGMxIGMyfCAgIHxjciArIGNyX2lvZmZ8ICAgfGNyX29vZmZ8Cj4gPiArICogfHlnfCA9 IHxjMyBjNCBjNXwgeCB8eWcgKyB5Z19pb2ZmfCArIHx5Z19vb2ZmfAo+ID4gKyAqIHxjYnwgICB8 YzYgYzcgYzh8ICAgfGNiICsgY3JfaW9mZnwgICB8Y2Jfb29mZnwKPiA+ICsgKi8KPiA+ICsjZGVm aW5lIFNQQ1NDWUdPRkYoc3ByaXRlKSAgICAgKFZMVl9ESVNQTEFZX0JBU0UgKyAweDZkOTAwICsg KHNwcml0ZSkgKiAweDEwMDApCj4gPiArI2RlZmluZSBTUENTQ0NCT0ZGKHNwcml0ZSkgICAgIChW TFZfRElTUExBWV9CQVNFICsgMHg2ZDkwNCArIChzcHJpdGUpICogMHgxMDAwKQo+ID4gKyNkZWZp bmUgU1BDU0NDUk9GRihzcHJpdGUpICAgICAoVkxWX0RJU1BMQVlfQkFTRSArIDB4NmQ5MDggKyAo c3ByaXRlKSAqIDB4MTAwMCkKPiA+ICsjZGVmaW5lICBTUENTQ19PT0ZGKHgpICAgICAgICAgKCgo eCkgJiAweDdmZikgPDwgMTYpIC8qIHMxMSAqLwo+ID4gKyNkZWZpbmUgIFNQQ1NDX0lPRkYoeCkg ICAgICAgICAoKCh4KSAmIDB4N2ZmKSA8PCAwKSAvKiBzMTEgKi8KPiA+ICsKPiA+ICsjZGVmaW5l IFNQQ1NDQzAxKHNwcml0ZSkgICAgICAgKFZMVl9ESVNQTEFZX0JBU0UgKyAweDZkOTBjICsgKHNw cml0ZSkgKiAweDEwMDApCj4gPiArI2RlZmluZSBTUENTQ0MyMyhzcHJpdGUpICAgICAgIChWTFZf RElTUExBWV9CQVNFICsgMHg2ZDkxMCArIChzcHJpdGUpICogMHgxMDAwKQo+ID4gKyNkZWZpbmUg U1BDU0NDNDUoc3ByaXRlKSAgICAgICAoVkxWX0RJU1BMQVlfQkFTRSArIDB4NmQ5MTQgKyAoc3By aXRlKSAqIDB4MTAwMCkKPiA+ICsjZGVmaW5lIFNQQ1NDQzY3KHNwcml0ZSkgICAgICAgKFZMVl9E SVNQTEFZX0JBU0UgKyAweDZkOTE4ICsgKHNwcml0ZSkgKiAweDEwMDApCj4gPiArI2RlZmluZSBT UENTQ0M4KHNwcml0ZSkgICAgICAgICAgICAgICAgKFZMVl9ESVNQTEFZX0JBU0UgKyAweDZkOTFj ICsgKHNwcml0ZSkgKiAweDEwMDApCj4gPiArI2RlZmluZSAgU1BDU0NfQzEoeCkgICAgICAgICAg ICgoKHgpICYgMHg3ZmZmKSA8PCAxNikgLyogczMuMTIgKi8KPiA+ICsjZGVmaW5lICBTUENTQ19D MCh4KSAgICAgICAgICAgKCgoeCkgJiAweDdmZmYpIDw8IDApIC8qIHMzLjEyICovCj4gPiArCj4g PiArI2RlZmluZSBTUENTQ1lHSUNMQU1QKHNwcml0ZSkgIChWTFZfRElTUExBWV9CQVNFICsgMHg2 ZDkyMCArIChzcHJpdGUpICogMHgxMDAwKQo+ID4gKyNkZWZpbmUgU1BDU0NDQklDTEFNUChzcHJp dGUpICAoVkxWX0RJU1BMQVlfQkFTRSArIDB4NmQ5MjQgKyAoc3ByaXRlKSAqIDB4MTAwMCkKPiA+ ICsjZGVmaW5lIFNQQ1NDQ1JJQ0xBTVAoc3ByaXRlKSAgKFZMVl9ESVNQTEFZX0JBU0UgKyAweDZk OTI4ICsgKHNwcml0ZSkgKiAweDEwMDApCj4gPiArI2RlZmluZSAgU1BDU0NfSU1BWCh4KSAgICAg ICAgICgoKHgpICYgMHg3ZmYpIDw8IDE2KSAvKiBzMTEgKi8KPiA+ICsjZGVmaW5lICBTUENTQ19J TUlOKHgpICAgICAgICAgKCgoeCkgJiAweDdmZikgPDwgMCkgLyogczExICovCj4gPiArCj4gPiAr I2RlZmluZSBTUENTQ1lHT0NMQU1QKHNwcml0ZSkgIChWTFZfRElTUExBWV9CQVNFICsgMHg2ZDky YyArIChzcHJpdGUpICogMHgxMDAwKQo+ID4gKyNkZWZpbmUgU1BDU0NDQk9DTEFNUChzcHJpdGUp ICAoVkxWX0RJU1BMQVlfQkFTRSArIDB4NmQ5MzAgKyAoc3ByaXRlKSAqIDB4MTAwMCkKPiA+ICsj ZGVmaW5lIFNQQ1NDQ1JPQ0xBTVAoc3ByaXRlKSAgKFZMVl9ESVNQTEFZX0JBU0UgKyAweDZkOTM0 ICsgKHNwcml0ZSkgKiAweDEwMDApCj4gPiArI2RlZmluZSAgU1BDU0NfT01BWCh4KSAgICAgICAg ICgoeCkgPDwgMTYpIC8qIHUxMCAqLwo+ID4gKyNkZWZpbmUgIFNQQ1NDX09NSU4oeCkgICAgICAg ICAoKHgpIDw8IDApIC8qIHUxMCAqLwo+ID4gKwo+ID4gIC8qIFNreWxha2UgcGxhbmUgcmVnaXN0 ZXJzICovCj4gPgo+ID4gICNkZWZpbmUgX1BMQU5FX0NUTF8xX0EgICAgICAgICAgICAgICAgICAg ICAgICAgMHg3MDE4MAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3Nwcml0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiA+IGluZGV4 IGE0NTI4MTkuLmZiNmFlNWYgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9zcHJpdGUuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRl LmMKPiA+IEBAIC0zNyw2ICszNywyMCBAQAo+ID4gICNpbmNsdWRlIDxkcm0vaTkxNV9kcm0uaD4K PiA+ICAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKPiA+Cj4gPiArc3RhdGljIGJvb2wKPiA+ICtmb3Jt YXRfaXNfeXV2KHVpbnQzMl90IGZvcm1hdCkKPiA+ICt7Cj4gPiArICAgICAgIHN3aXRjaCAoZm9y bWF0KSB7Cj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9ZVVlWOgo+ID4gKyAgICAgICBjYXNl IERSTV9GT1JNQVRfVVlWWToKPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX1ZZVVk6Cj4gPiAr ICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9ZVllVOgo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiB0 cnVlOwo+ID4gKyAgICAgICBkZWZhdWx0Ogo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiBmYWxz ZTsKPiA+ICsgICAgICAgfQo+ID4gK30KPiA+ICsKPiA+ICBzdGF0aWMgaW50IHVzZWNzX3RvX3Nj YW5saW5lcyhjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwgaW50IHVzZWNzKQo+ ID4gIHsKPiA+ICAgICAgICAgLyogcGFyYW5vaWEgKi8KPiA+IEBAIC0zMjAsNiArMzM0LDQ1IEBA IHNrbF9nZXRfY29sb3JrZXkoc3RydWN0IGRybV9wbGFuZSAqZHJtX3BsYW5lLAo+ID4gIH0KPiA+ Cj4gPiAgc3RhdGljIHZvaWQKPiA+ICtjaHZfdXBkYXRlX2NzYyhzdHJ1Y3QgaW50ZWxfcGxhbmUg KmludGVsX3BsYW5lLCB1aW50MzJfdCBmb3JtYXQpCj4gPiArewo+ID4gKyAgICAgICBzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBpbnRlbF9wbGFuZS0+YmFzZS5kZXYtPmRldl9w cml2YXRlOwo+ID4gKyAgICAgICBpbnQgcGxhbmUgPSBpbnRlbF9wbGFuZS0+cGxhbmU7Cj4gPiAr Cj4gPiArICAgICAgIC8qIFNlZW1zIFJHQiBkYXRhIGJ5cGFzc2VzIHRoZSBDU0MgYWx3YXlzICov Cj4gPiArICAgICAgIGlmICghZm9ybWF0X2lzX3l1dihmb3JtYXQpKQo+ID4gKyAgICAgICAgICAg ICAgIHJldHVybjsKPiA+ICsKPiA+ICsgICAgICAgLyoKPiA+ICsgICAgICAgICogQlQuNjAxIGxp bWl0ZWQgcmFuZ2UgWUNiQ3IgLT4gZnVsbCByYW5nZSBSR0IKPiA+ICsgICAgICAgICoKPiA+ICsg ICAgICAgICogfHJ8ICAgfCA2NTM3IDQ3NjkgICAgIDB8ICAgfGNyICB8Cj4gPiArICAgICAgICAq IHxnfCA9IHwtMzMzMCA0NzY5IC0xNjA1fCB4IHx5LTY0fAo+ID4gKyAgICAgICAgKiB8YnwgICB8 ICAgIDAgNDc2OSAgODI2M3wgICB8Y2IgIHwKPiAKPiBXaGVyZSBkaWQgeW91IGdldCB0aGlzIHZh bHVlcz8gdGhlIG9uZXMgYXQgd2lraXBlZGlhIGRpZG4ndCBtYXRjaC4uLgoKSSBoYWQgdGhlIFJH Qi0+WUNiQ3IgbWF0cml4LCBpbnZlcnRlZCBpdCBhbmQgdGhlIHZhbHVlcyBjYW1lIG91dC4gQnV0 IHRoZXkKc2hvdWxkIG1hdGNoIHRoZSB3aWtpcGVkaWEgYXJ0aWNsZS4gQWxzbyBrZWVwIGluIG1p bmQgdGhhdCB0aGUgY29lZmZpY2llbnRzCmFyZSBpbiAuMTIgaW4gZml4ZWQgcG9pbnQgZm9ybWF0 LCBoZW5jZSB3ZSBuZWVkIGEgMTw8MTIgZmFjdG9yLiBTbyBsZXQncwp0cnkgaXQ6CgpLYj0uMTE0 CktyPS4yOTkKKDE8PDEyKSAqIDI1NS8yMTkgfj0gNDc2OQotKDE8PDEyKSAqIDI1NS8xMTIqKDEt S2IpKktiLygxLUtiLUtyKSB+PSAtMTYwNQotKDE8PDEyKSAqIDI1NS8xMTIqKDEtS3IpKktyLygx LUtiLUtyKSB+PSAtMzMzMAooMTw8MTIpICogMjU1LzExMiooMS1Lcikgfj0gNjUzNwooMTw8MTIp ICogMjU1LzExMiooMS1LYikgfj0gODI2MwoKTG9va3MgbGlrZSB0aGUgc2FtZSB2YWx1ZXMgdG8g bWUuCgo+IAo+ID4gKyAgICAgICAgKgo+ID4gKyAgICAgICAgKiBDYiBhbmQgQ3IgYXBwYXJlbnRs eSBjb21lIGluIGFzIHNpZ25lZCBhbHJlYWR5LCBzbyBubwo+ID4gKyAgICAgICAgKiBuZWVkIGZv ciBhbnkgb2Zmc2V0LiBGb3IgWSB3ZSBuZWVkIHRvIHJlbW92ZSB0aGUgb2Zmc2V0Lgo+ID4gKyAg ICAgICAgKi8KPiA+ICsgICAgICAgSTkxNV9XUklURShTUENTQ1lHT0ZGKHBsYW5lKSwgU1BDU0Nf T09GRigwKSB8IFNQQ1NDX0lPRkYoLTY0KSk7Cj4gPiArICAgICAgIEk5MTVfV1JJVEUoU1BDU0ND Qk9GRihwbGFuZSksIFNQQ1NDX09PRkYoMCkgfCBTUENTQ19JT0ZGKDApKTsKPiA+ICsgICAgICAg STkxNV9XUklURShTUENTQ0NST0ZGKHBsYW5lKSwgU1BDU0NfT09GRigwKSB8IFNQQ1NDX0lPRkYo MCkpOwo+ID4gKwo+ID4gKyAgICAgICBJOTE1X1dSSVRFKFNQQ1NDQzAxKHBsYW5lKSwgU1BDU0Nf QzEoNDc2OSkgfCBTUENTQ19DMCg2NTM3KSk7Cj4gPiArICAgICAgIEk5MTVfV1JJVEUoU1BDU0ND MjMocGxhbmUpLCBTUENTQ19DMSgtMzMzMCkgfCBTUENTQ19DMCgwKSk7Cj4gPiArICAgICAgIEk5 MTVfV1JJVEUoU1BDU0NDNDUocGxhbmUpLCBTUENTQ19DMSgtMTYwNSkgfCBTUENTQ19DMCg0NzY5 KSk7Cj4gPiArICAgICAgIEk5MTVfV1JJVEUoU1BDU0NDNjcocGxhbmUpLCBTUENTQ19DMSg0NzY5 KSB8IFNQQ1NDX0MwKDApKTsKPiA+ICsgICAgICAgSTkxNV9XUklURShTUENTQ0M4KHBsYW5lKSwg U1BDU0NfQzAoODI2MykpOwo+ID4gKwo+ID4gKyAgICAgICBJOTE1X1dSSVRFKFNQQ1NDWUdJQ0xB TVAocGxhbmUpLCBTUENTQ19JTUFYKDk0MCkgfCBTUENTQ19JTUlOKDY0KSk7Cj4gPiArICAgICAg IEk5MTVfV1JJVEUoU1BDU0NDQklDTEFNUChwbGFuZSksIFNQQ1NDX0lNQVgoNDQ4KSB8IFNQQ1ND X0lNSU4oLTQ0OCkpOwo+ID4gKyAgICAgICBJOTE1X1dSSVRFKFNQQ1NDQ1JJQ0xBTVAocGxhbmUp LCBTUENTQ19JTUFYKDQ0OCkgfCBTUENTQ19JTUlOKC00NDgpKTsKPiAKPiB3aGVyZSBkaWQgeW91 IGdldCB0aGVzZSBtaW4vbWF4PwoKVGhlIGhhcmR3YXJlIGFwcGFyZW50bHkgZGVhbHMgaW4gMTBi aXQgdmFsdWVzLCBzbyB3ZSBuZWVkIHRvIG11bHRpcGx5IGV2ZXJ5dGhpbmcKYnkgNCB3aGVuIHdl IHN0YXJ0IHdpdGggdGhlIDhiaXQgbWluL21heCB2YWx1ZXMuCgpZID0gWzE2OjIzNV0gKiA0ID0g WzY0Ojk0MF0KQ2JDciA9IChbMTY6MjQwXSAtIDEyOCkgKiA0ID0gWy0xMTI6MTEyXSAqIDQgPSBb LTQ0ODo0NDhdCgpUaGUgLTEyOCBiZWluZyB0aGUgLTAuNSBiaWFzIHRoYXQgdGhlIGhhcmR3YXJl IGFscmVhZHkgYXBwbGllZCBiZWZvcmUKdGhlIGRhdGEgZW50ZXJlZCB0aGUgQ1NDIHVuaXQuCgo+ IAo+ID4gKwo+ID4gKyAgICAgICBJOTE1X1dSSVRFKFNQQ1NDWUdPQ0xBTVAocGxhbmUpLCBTUENT Q19PTUFYKDEwMjMpIHwgU1BDU0NfT01JTigwKSk7Cj4gPiArICAgICAgIEk5MTVfV1JJVEUoU1BD U0NDQk9DTEFNUChwbGFuZSksIFNQQ1NDX09NQVgoMTAyMykgfCBTUENTQ19PTUlOKDApKTsKPiA+ ICsgICAgICAgSTkxNV9XUklURShTUENTQ0NST0NMQU1QKHBsYW5lKSwgU1BDU0NfT01BWCgxMDIz KSB8IFNQQ1NDX09NSU4oMCkpOwo+IAo+IGFuZCB0aGVzZSBvbmVzPwoKSnVzdCAxMGJwYyBSR0Ig ZGF0YSBnb2luZyBvdXQuCgo+IAo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgdm9pZAo+ID4gIHZs dl91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqZHBsYW5lLCBzdHJ1Y3QgZHJtX2NydGMg KmNydGMsCj4gPiAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ ID4gICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLCBpbnQg Y3J0Y194LCBpbnQgY3J0Y195LAo+ID4gQEAgLTQzMCw2ICs0ODMsOSBAQCB2bHZfdXBkYXRlX3Bs YW5lKHN0cnVjdCBkcm1fcGxhbmUgKmRwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ID4K PiA+ICAgICAgICAgaW50ZWxfdXBkYXRlX3ByaW1hcnlfcGxhbmUoaW50ZWxfY3J0Yyk7Cj4gPgo+ ID4gKyAgICAgICBpZiAoSVNfQ0hFUlJZVklFVyhkZXYpICYmIHBpcGUgPT0gUElQRV9CKQo+ID4g KyAgICAgICAgICAgICAgIGNodl91cGRhdGVfY3NjKGludGVsX3BsYW5lLCBmYi0+cGl4ZWxfZm9y bWF0KTsKPiA+ICsKPiA+ICAgICAgICAgSTkxNV9XUklURShTUFNUUklERShwaXBlLCBwbGFuZSks IGZiLT5waXRjaGVzWzBdKTsKPiA+ICAgICAgICAgSTkxNV9XUklURShTUFBPUyhwaXBlLCBwbGFu ZSksIChjcnRjX3kgPDwgMTYpIHwgY3J0Y194KTsKPiA+Cj4gPiBAQCAtMTAwNCwyMCArMTA2MCw2 IEBAIGlsa19nZXRfY29sb3JrZXkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsIHN0cnVjdCBkcm1f aW50ZWxfc3ByaXRlX2NvbG9ya2V5ICprZXkpCj4gPiAgICAgICAgICAgICAgICAga2V5LT5mbGFn cyA9IEk5MTVfU0VUX0NPTE9SS0VZX05PTkU7Cj4gPiAgfQo+ID4KPiA+IC1zdGF0aWMgYm9vbAo+ ID4gLWZvcm1hdF9pc195dXYodWludDMyX3QgZm9ybWF0KQo+ID4gLXsKPiA+IC0gICAgICAgc3dp dGNoIChmb3JtYXQpIHsKPiA+IC0gICAgICAgY2FzZSBEUk1fRk9STUFUX1lVWVY6Cj4gPiAtICAg ICAgIGNhc2UgRFJNX0ZPUk1BVF9VWVZZOgo+ID4gLSAgICAgICBjYXNlIERSTV9GT1JNQVRfVllV WToKPiA+IC0gICAgICAgY2FzZSBEUk1fRk9STUFUX1lWWVU6Cj4gPiAtICAgICAgICAgICAgICAg cmV0dXJuIHRydWU7Cj4gPiAtICAgICAgIGRlZmF1bHQ6Cj4gPiAtICAgICAgICAgICAgICAgcmV0 dXJuIGZhbHNlOwo+ID4gLSAgICAgICB9Cj4gPiAtfQo+ID4gLQo+ID4gIHN0YXRpYyBib29sIGNv bG9ya2V5X2VuYWJsZWQoc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSkKPiA+ICB7Cj4g PiAgICAgICAgIHN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5IGtleTsKPiA+IC0tCj4g PiAyLjAuNAo+ID4KPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCj4gPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gPiBJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCj4gPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cj4gCj4gV2l0aCBudW1iZXJzIGV4cGxhaW5lZCB0aGUgcmVzdCBpcyBv ayBhbmQgeW91IGNhbiB1c2UgUmV2aWV3ZWQtYnk6Cj4gUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZp dmlAaW50ZWwuY29tPgo+IAo+IAo+IC0tIAo+IFJvZHJpZ28gVml2aQo+IEJsb2c6IGh0dHA6Ly9i bG9nLnZpdmkuZW5nLmJyCgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=