From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [RFC 2/3] drm: Add helper iterator functions to iterate over plane damage. Date: Thu, 5 Apr 2018 12:10:07 +0200 Message-ID: <20180405101007.GU3881@phenom.ffwll.local> References: <1522885748-67122-1-git-send-email-drawat@vmware.com> <1522885748-67122-3-git-send-email-drawat@vmware.com> <20180405075205.GQ3881@phenom.ffwll.local> <0edfe662-6463-a143-e00a-d3d4bc06a229@vmware.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x233.google.com (mail-wm0-x233.google.com [IPv6:2a00:1450:400c:c09::233]) by gabe.freedesktop.org (Postfix) with ESMTPS id A30C46E44D for ; Thu, 5 Apr 2018 10:10:11 +0000 (UTC) Received: by mail-wm0-x233.google.com with SMTP id f125so5368698wme.4 for ; Thu, 05 Apr 2018 03:10:11 -0700 (PDT) Content-Disposition: inline In-Reply-To: <0edfe662-6463-a143-e00a-d3d4bc06a229@vmware.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Thomas Hellstrom Cc: airlied@linux.ie, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-graphics-maintainer@vmware.com, Deepak Rawat , lukasz.spintzyk@displaylink.com List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBBcHIgMDUsIDIwMTggYXQgMTA6NDk6MDlBTSArMDIwMCwgVGhvbWFzIEhlbGxzdHJv bSB3cm90ZToKPiBPbiAwNC8wNS8yMDE4IDA5OjUyIEFNLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+ ID4gT24gV2VkLCBBcHIgMDQsIDIwMTggYXQgMDQ6NDk6MDdQTSAtMDcwMCwgRGVlcGFrIFJhd2F0 IHdyb3RlOgo+ID4gPiBXaXRoIGRhbWFnZSBwcm9wZXJ0eSBpbiBkcm1fcGxhbmVfc3RhdGUsIHRo aXMgcGF0Y2ggYWRkcyBoZWxwZXIgaXRlcmF0b3IKPiA+ID4gdG8gdHJhdmVyc2UgdGhlIGRhbWFn ZSBjbGlwcy4gSXRlcmF0b3Igd2lsbCByZXR1cm4gdGhlIGRhbWFnZSByZWN0YW5nbGVzCj4gPiA+ IGluIGZyYW1lYnVmZmVyLCBwbGFuZSBvciBjcnRjIGNvb3JkaW5hdGVzIGFzIG5lZWQgYnkgZHJp dmVyCj4gPiA+IGltcGxlbWVudGF0aW9uLgo+ID4gPiAKPiA+ID4gU2lnbmVkLW9mZi1ieTogRGVl cGFrIFJhd2F0IDxkcmF3YXRAdm13YXJlLmNvbT4KPiA+IEknZCByZWFsbHkgbGlrZSBzZWxmdGVz dC91bml0dGVzdHMgZm9yIHRoaXMgc3R1ZmYuIFRoZXJlJ3MgYW4gYXdmdWwgbG90IG9mCj4gPiBj b3JuZXJjYXNlcyBpbiB0aGlzIGhlcmUgKGZvciBhbnkgb2YgdGhlIHRyYW5zZm9ybWVkIGl0ZXJh dG9ycyBhdCBsZWFzdCksCj4gPiBhbmQgdW5pdCB0ZXN0cyBpcyB0aGUgYmVzdCB3YXkgdG8gbWFr ZSBzdXJlIHdlIGhhbmRsZSB0aGVtIGFsbCBjb3JyZWN0bHkuCj4gPiAKPiA+IEJvbnVzIHBvaW50 cyBpZiB5b3UgaW50ZWdyYXRlIHRoZSBuZXcgc2VsZnRlc3RzIGludG8gaWd0IHNvIGludGVsIENJ IGNhbgo+ID4gcnVuIHRoZW0sIHNlZWwgaWd0L3Rlc3RzL2RybV9tbS5jIGZvciBhbiBleGFtcGxl LiBkcm1fbW0gc2VsZnRlc3QgaXMgYWxzbwo+ID4gdGhlIGZyYW1ld29yayBJJ2QgY29weSBmb3Ig dGhpcyBzdHVmZi4KPiA+IAo+ID4gPiAtLS0KPiA+ID4gICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0 b21pY19oZWxwZXIuYyB8IDEyMiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK PiA+ID4gICBpbmNsdWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5oICAgICB8ICAzOSArKysrKysr KysrKysKPiA+ID4gICAyIGZpbGVzIGNoYW5nZWQsIDE2MSBpbnNlcnRpb25zKCspCj4gPiA+IAo+ ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+ID4gPiBpbmRleCA1NWI0NGUzLi4z NTViNTE0IDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxw ZXIuYwo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+ID4g PiBAQCAtMzg2NSwzICszODY1LDEyNSBAQCB2b2lkIF9fZHJtX2F0b21pY19oZWxwZXJfcHJpdmF0 ZV9vYmpfZHVwbGljYXRlX3N0YXRlKHN0cnVjdCBkcm1fcHJpdmF0ZV9vYmogKm9iago+ID4gPiAg IAltZW1jcHkoc3RhdGUsIG9iai0+c3RhdGUsIHNpemVvZigqc3RhdGUpKTsKPiA+ID4gICB9Cj4g PiA+ICAgRVhQT1JUX1NZTUJPTChfX2RybV9hdG9taWNfaGVscGVyX3ByaXZhdGVfb2JqX2R1cGxp Y2F0ZV9zdGF0ZSk7Cj4gPiA+ICsKPiA+ID4gKy8qKgo+ID4gPiArICogZHJtX2F0b21pY19oZWxw ZXJfZGFtYWdlX2l0ZXJfaW5pdCAtIGluaXRpYWxpemUgdGhlIGRhbWFnZSBpdGVyYXRvcgo+ID4g PiArICogQGl0ZXI6IFRoZSBpdGVyYXRvciB0byBpbml0aWFsaXplLgo+ID4gPiArICogQHR5cGU6 IENvb3JkaW5hdGUgdHlwZSBjYWxsZXIgaXMgaW50ZXJlc3RlZCBpbi4KPiA+ID4gKyAqIEBzdGF0 ZTogcGxhbmVfc3RhdGUgZnJvbSB3aGljaCB0byBpdGVyYXRlIHRoZSBkYW1hZ2UgY2xpcHMuCj4g PiA+ICsgKiBAaGRpc3BsYXk6IFdpZHRoIG9mIGNydGMgb24gd2hpY2ggcGxhbmUgaXMgc2Nhbm5l ZCBvdXQuCj4gPiA+ICsgKiBAdmRpc3BsYXk6IEhlaWdodCBvZiBjcnRjIG9uIHdoaWNoIHBsYW5l IGlzIHNjYW5uZWQgb3V0Lgo+ID4gPiArICoKPiA+ID4gKyAqIEluaXRpYWxpemUgYW4gaXRlcmF0 b3IgdGhhdCBpcyB1c2VkIHRvIHRyYW5zbGF0ZSBhbmQgY2xpcCBhIHNldCBvZiBkYW1hZ2UKPiA+ ID4gKyAqIHJlY3RhbmdsZXMgaW4gZnJhbWVidWZmZXIgY29vcmRpbmF0ZXMgdG8gcGxhbmUgYW5k IGNydGMgY29vcmRpbmF0ZXMuIFRoZSB0eXBlCj4gPiA+ICsgKiBhcmd1bWVudCBzcGVjaWZ5IHdo aWNoIHR5cGUgb2YgY29vcmRpbmF0ZSB0byBpdGVyYXRlIGluLgo+ID4gPiArICoKPiA+ID4gKyAq IFJldHVybnM6IDAgb24gc3VjY2VzcyBhbmQgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBlcnJvci4g SWYgYW4gZXJyb3IgY29kZSBpcwo+ID4gPiArICogcmV0dXJuZWQgdGhlbiBpdCBtZWFucyB0aGUg cGxhbmUgc3RhdGUgc2hvdWxkIG5vdCB1cGRhdGUuCj4gPiA+ICsgKi8KPiA+ID4gK2ludAo+ID4g PiArZHJtX2F0b21pY19oZWxwZXJfZGFtYWdlX2l0ZXJfaW5pdChzdHJ1Y3QgZHJtX2F0b21pY19o ZWxwZXJfZGFtYWdlX2l0ZXIgKml0ZXIsCj4gPiA+ICsJCQkJICAgZW51bSBkcm1fYXRvbWljX2hl bHBlcl9kYW1hZ2VfY2xpcF90eXBlIHR5cGUsCj4gPiA+ICsJCQkJICAgY29uc3Qgc3RydWN0IGRy bV9wbGFuZV9zdGF0ZSAqc3RhdGUsCj4gPiA+ICsJCQkJICAgdWludDMyX3QgaGRpc3BsYXksIHVp bnQzMl90IHZkaXNwbGF5KQo+ID4gPiArewo+ID4gPiArCWlmICghc3RhdGUgfHwgIXN0YXRlLT5j cnRjIHx8ICFzdGF0ZS0+ZmIpCj4gPiA+ICsJCXJldHVybiAtRUlOVkFMOwo+ID4gPiArCj4gPiA+ ICsJbWVtc2V0KGl0ZXIsIDAsIHNpemVvZigqaXRlcikpOwo+ID4gPiArCWl0ZXItPmNsaXBzID0g KHN0cnVjdCBkcm1fcmVjdCAqKXN0YXRlLT5kYW1hZ2VfY2xpcHMtPmRhdGE7Cj4gPiA+ICsJaXRl ci0+bnVtX2NsaXBzID0gc3RhdGUtPm51bV9jbGlwczsKPiA+ID4gKwlpdGVyLT50eXBlID0gdHlw ZTsKPiA+ID4gKwo+ID4gPiArCS8qCj4gPiA+ICsJICogRnVsbCB1cGRhdGUgaW4gY2FzZSBvZiBz Y2FsaW5nIG9yIHJvdGF0aW9uLiBJbiBmdXR1cmUgc3VwcG9ydCBmb3IKPiA+ID4gKwkgKiBzY2Fs aW5nL3JvdGF0aW5nIGRhbWFnZSBjbGlwcyBjYW4gYmUgYWRkZWQKPiA+ID4gKwkgKi8KPiA+ID4g KwlpZiAoc3RhdGUtPmNydGNfdyAhPSAoc3RhdGUtPnNyY193ID4+IDE2KSB8fAo+ID4gPiArCSAg ICBzdGF0ZS0+Y3J0Y19oICE9IHN0YXRlLT5zcmNfaCA+PiAxNiB8fCBzdGF0ZS0+cm90YXRpb24g IT0gMCkgewo+ID4gPiArCQlpdGVyLT5jdXJyX2NsaXAgPSBpdGVyLT5udW1fY2xpcHM7Cj4gPiA+ ICsJCXJldHVybiAwOwo+ID4gR2l2ZW4gdGhlcmUncyBubyB1c2VyIG9mIHRoaXMgSSBoYXZlIG5v IGlkZWEgaG93IHRoaXMgbWFuYWdlcyB0byBwcm92b2tlIGEKPiA+IGZ1bGwgY2xpcCByZWN0LiBz ZWxmdGVzdCBjb2RlIHdvdWxkIGJlIHBlcmZlY3QgZm9yIHN0dWZmIGxpa2UgdGhpcy4KPiA+IAo+ ID4gQWxzbywgSSB0aGluayB3ZSBzaG91bGQgcHJvdmlkZSBhIGZ1bGwgY2xpcCBmb3IgdGhlIGNh c2Ugb2YgbnVtX2NsaXBzID09Cj4gPiAwLCBzbyB0aGF0IGRyaXZlciBjb2RlIGNhbiBzaW1wbHkg aXRlcmF0ZSBvdmVyIGFsbCBjbGlwcyBhbmQgZG9lc24ndCBldmVyCj4gPiBoYXZlIHRvIGhhbmRs ZSB0aGUgIm5vIGNsaXAgcmVjdHMgcHJvdmlkZWQiIGNhc2UgYXMgYSBzcGVjaWFsIGNhc2UgaXRz ZWxmLgo+ID4gCj4gPiA+ICsJfQo+ID4gPiArCj4gPiA+ICsJaXRlci0+ZmJfc3JjLngxID0gMDsK PiA+ID4gKwlpdGVyLT5mYl9zcmMueTEgPSAwOwo+ID4gPiArCWl0ZXItPmZiX3NyYy54MiA9IHN0 YXRlLT5mYi0+d2lkdGg7Cj4gPiA+ICsJaXRlci0+ZmJfc3JjLnkyID0gc3RhdGUtPmZiLT5oZWln aHQ7Cj4gPiA+ICsKPiA+ID4gKwlpdGVyLT5wbGFuZV9zcmMueDEgPSBzdGF0ZS0+c3JjX3ggPj4g MTY7Cj4gPiA+ICsJaXRlci0+cGxhbmVfc3JjLnkxID0gc3RhdGUtPnNyY195ID4+IDE2Owo+ID4g PiArCWl0ZXItPnBsYW5lX3NyYy54MiA9IGl0ZXItPnBsYW5lX3NyYy54MSArIChzdGF0ZS0+c3Jj X3cgPj4gMTYpOwo+ID4gPiArCWl0ZXItPnBsYW5lX3NyYy55MiA9IGl0ZXItPnBsYW5lX3NyYy55 MSArIChzdGF0ZS0+c3JjX2ggPj4gMTYpOwo+ID4gPiArCWl0ZXItPnRyYW5zbGF0ZV9wbGFuZV94 ID0gLWl0ZXItPnBsYW5lX3NyYy54MTsKPiA+ID4gKwlpdGVyLT50cmFuc2xhdGVfcGxhbmVfeSA9 IC1pdGVyLT5wbGFuZV9zcmMueTE7Cj4gPiA+ICsKPiA+ID4gKwkvKiBDbGlwIHBsYW5lIHNyYyBy ZWN0IHRvIGZiIGRpbWVuc2lvbnMgKi8KPiA+ID4gKwlkcm1fcmVjdF9pbnRlcnNlY3QoJml0ZXIt PnBsYW5lX3NyYywgJml0ZXItPmZiX3NyYyk7Cj4gPiBUaGlzIHNtZWxscyBsaWtlIGRyaXZlciBi dWcuIEFsc28sIHNlZSBWaWxsZSdzIHJlY2VudCBlZmZvcnRzIHRvIGltcHJvdmUKPiA+IHRoZSBh dG9taWMgcGxhbmUgY2xpcHBpbmcsIEkgdGhpbmsgZHJtX3BsYW5lX3N0YXRlIGFscmVhZHkgaGFz IGFsbCB0aGUKPiA+IGNsaXAgcmVjdHMgeW91IHdhbnQuCj4gPiAKPiA+ID4gKwo+ID4gPiArCWl0 ZXItPmNydGNfc3JjLngxID0gMDsKPiA+ID4gKwlpdGVyLT5jcnRjX3NyYy55MSA9IDA7Cj4gPiA+ ICsJaXRlci0+Y3J0Y19zcmMueDIgPSBoZGlzcGxheTsKPiA+ID4gKwlpdGVyLT5jcnRjX3NyYy55 MiA9IHZkaXNwbGF5Owo+ID4gPiArCWl0ZXItPnRyYW5zbGF0ZV9jcnRjX3ggPSAtKGl0ZXItPnBs YW5lX3NyYy54MSAtIHN0YXRlLT5jcnRjX3gpOwo+ID4gPiArCWl0ZXItPnRyYW5zbGF0ZV9jcnRj X3ggPSAtKGl0ZXItPnBsYW5lX3NyYy55MSAtIHN0YXRlLT5jcnRjX3kpOwo+ID4gPiArCj4gPiA+ ICsJLyogQ2xpcCBjcnRjIHNyYyByZWN0IHRvIHBsYW5lIGRpbWVuc2lvbnMgKi8KPiA+ID4gKwlk cm1fcmVjdF90cmFuc2xhdGUoJml0ZXItPmNydGNfc3JjLCAtaXRlci0+dHJhbnNsYXRlX2NydGNf eCwKPiA+ID4gKwkJCSAgIC1pdGVyLT50cmFuc2xhdGVfY3J0Y194KTsKPiA+IFdlIGNhbiBhbHNv IHNjYWxlLgo+IAo+IEkgc3VnZ2VzdCB3ZSBsZWF2ZSBvdXQgc2NhbGluZyBmb3Igbm93IHVudGls IHNvbWVvbmUgYWN0dWFsbHkgbmVlZHMgaXQuCgpJbiB0aGF0IGNhc2Ugd2UgbmVlZCB0byBXQVJO X09OIGFuZCBiYWlsIG91dCBpZiB0aGVyZSdzIHNjYWxpbmcgZ29pbmcgb24uCkknbSB0b3RhbGx5 IGZpbmUgd2l0aCBub3Qgc29sdmluZyB0aGUgd29ybGQgaGVyZSwgYnV0IHBsZWFzZSBubyB0cmFw ZG9vcnMKZm9yIGZvbGxvd2luZyBkcml2ZXIncyB1c2UtY2FzZXMuCgo+IAo+ID4gCj4gPiA+ICsJ ZHJtX3JlY3RfaW50ZXJzZWN0KCZpdGVyLT5jcnRjX3NyYywgJml0ZXItPnBsYW5lX3NyYyk7Cj4g PiA+ICsKPiA+ID4gKwlyZXR1cm4gMDsKPiA+ID4gK30KPiA+ID4gK0VYUE9SVF9TWU1CT0woZHJt X2F0b21pY19oZWxwZXJfZGFtYWdlX2l0ZXJfaW5pdCk7Cj4gPiA+ICsKPiA+ID4gKy8qKgo+ID4g PiArICogZHJtX2F0b21pY19oZWxwZXJfZGFtYWdlX2l0ZXJfbmV4dCAtIGFkdmFuY2UgdGhlIGRh bWFnZSBpdGVyYXRvcgo+ID4gPiArICogQGl0ZXI6IFRoZSBpdGVyYXRvciB0byBhZHZhbmNlLgo+ ID4gPiArICogQHJlY3Q6IFJldHVybiBhIHJlY3RhbmdsZSBpbiBjb29yZGluYXRlIHNwZWNpZmll ZCBkdXJpbmcgaXRlcmF0b3IgaW5pdC4KPiA+ID4gKyAqCj4gPiA+ICsgKiBSZXR1cm5zOiAgdHJ1 ZSBpZiB0aGUgb3V0cHV0IGlzIHZhbGlkLCBmYWxzZSBpZiB3ZSd2ZSByZWFjaGVkIHRoZSBlbmQg b2YgdGhlCj4gPiA+ICsgKiByZWN0YW5nbGUgbGlzdC4gSWYgdGhlIGZpcnN0IGNhbGwgcmV0dXJu IGZhbHNlLCBtZWFucyBuZWVkIGZ1bGwgdXBkYXRlLgo+ID4gPiArICovCj4gPiA+ICtib29sCj4g PiA+ICtkcm1fYXRvbWljX2hlbHBlcl9kYW1hZ2VfaXRlcl9uZXh0KHN0cnVjdCBkcm1fYXRvbWlj X2hlbHBlcl9kYW1hZ2VfaXRlciAqaXRlciwKPiA+ID4gKwkJCQkgICBzdHJ1Y3QgZHJtX3JlY3Qg KnJlY3QpCj4gPiA+ICt7Cj4gPiA+ICsJY29uc3Qgc3RydWN0IGRybV9yZWN0ICpjdXJyX2NsaXA7 Cj4gPiA+ICsKPiA+ID4gK25leHRfY2xpcDoKPiA+ID4gKwlpZiAoaXRlci0+Y3Vycl9jbGlwID49 IGl0ZXItPm51bV9jbGlwcykKPiA+ID4gKwkJcmV0dXJuIGZhbHNlOwo+ID4gPiArCj4gPiA+ICsJ Y3Vycl9jbGlwID0gJml0ZXItPmNsaXBzW2l0ZXItPmN1cnJfY2xpcF07Cj4gPiA+ICsJaXRlci0+ Y3Vycl9jbGlwKys7Cj4gPiA+ICsKPiA+ID4gKwlyZWN0LT54MSA9IGN1cnJfY2xpcC0+eDE7Cj4g PiA+ICsJcmVjdC0+eDIgPSBjdXJyX2NsaXAtPngyOwo+ID4gPiArCXJlY3QtPnkxID0gY3Vycl9j bGlwLT55MTsKPiA+ID4gKwlyZWN0LT55MiA9IGN1cnJfY2xpcC0+eTI7Cj4gPiA+ICsKPiA+ID4g KwkvKiBDbGlwIGRhbWFnZSByZWN0IHdpdGhpbiBmYiBsaW1pdCAqLwo+ID4gPiArCWlmICghZHJt X3JlY3RfaW50ZXJzZWN0KHJlY3QsICZpdGVyLT5mYl9zcmMpKQo+ID4gPiArCQlnb3RvIG5leHRf Y2xpcDsKPiA+ID4gKwllbHNlIGlmIChpdGVyLT50eXBlICYgRFJNX0FUT01JQ19IRUxQRVJfREFN QUdFX0NMSVBfVFlQRV9GQikKPiA+ID4gKwkJcmV0dXJuIHRydWU7Cj4gPiA+ICsKPiA+ID4gKwkv KiBDbGlwIGRhbWFnZSByZWN0IHdpdGhpbiBwbGFuZSBsaW1pdCAqLwo+ID4gPiArCWlmICghZHJt X3JlY3RfaW50ZXJzZWN0KHJlY3QsICZpdGVyLT5wbGFuZV9zcmMpKQo+ID4gPiArCQlnb3RvIG5l eHRfY2xpcDsKPiA+ID4gKwllbHNlIGlmIChpdGVyLT50eXBlICYgRFJNX0FUT01JQ19IRUxQRVJf REFNQUdFX0NMSVBfVFlQRV9QTEFORSkgewo+ID4gPiArCQlkcm1fcmVjdF90cmFuc2xhdGUocmVj dCwgaXRlci0+dHJhbnNsYXRlX3BsYW5lX3gsCj4gPiA+ICsJCQkJICAgaXRlci0+dHJhbnNsYXRl X3BsYW5lX3kpOwo+ID4gPiArCQlyZXR1cm4gdHJ1ZTsKPiA+ID4gKwl9Cj4gPiA+ICsKPiA+ID4g KwkvKiBDbGlwIGRhbWFnZSByZWN0IHdpdGhpbiBjcnRjIGxpbWl0ICovCj4gPiA+ICsJaWYgKCFk cm1fcmVjdF9pbnRlcnNlY3QocmVjdCwgJml0ZXItPmNydGNfc3JjKSkKPiA+ID4gKwkJZ290byBu ZXh0X2NsaXA7Cj4gPiA+ICsKPiA+ID4gKwlkcm1fcmVjdF90cmFuc2xhdGUocmVjdCwgaXRlci0+ dHJhbnNsYXRlX2NydGNfeCwKPiA+ID4gKwkJCSAgIGl0ZXItPnRyYW5zbGF0ZV9jcnRjX3kpOwo+ ID4gPiArCj4gPiA+ICsJcmV0dXJuIHRydWU7Cj4gPiA+ICt9Cj4gPiA+ICtFWFBPUlRfU1lNQk9M KGRybV9hdG9taWNfaGVscGVyX2RhbWFnZV9pdGVyX25leHQpOwo+ID4gPiBkaWZmIC0tZ2l0IGEv aW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9hdG9taWNf aGVscGVyLmgKPiA+ID4gaW5kZXggMjZhYWJhNS4uZWJkNGI2NiAxMDA2NDQKPiA+ID4gLS0tIGEv aW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaAo+ID4gPiArKysgYi9pbmNsdWRlL2RybS9k cm1fYXRvbWljX2hlbHBlci5oCj4gPiA+IEBAIC0zNiw2ICszNiwzNyBAQCBzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZTsKPiA+ID4gICBzdHJ1Y3QgZHJtX3ByaXZhdGVfb2JqOwo+ID4gPiAgIHN0cnVj dCBkcm1fcHJpdmF0ZV9zdGF0ZTsKPiA+ID4gKy8qKgo+ID4gPiArICogZW51bSBkcm1fYXRvbWlj X2hlbHBlcl9kYW1hZ2VfY2xpcF90eXBlIC0gdHlwZSBvZiBjbGlwcyB0byBpdGVyYXRvciBvdmVy Cj4gPiA+ICsgKgo+ID4gPiArICogV2hpbGUgdXNpbmcgZHJtX2F0b21pY19oZWxwZXJfZGFtYWdl X2l0ZXIgdGhlIHR5cGUgb2YgY2xpcCBjb29yZGluYXRlcyBjYWxsZXIKPiA+ID4gKyAqIGlzIGlu dGVyZXN0ZWQgaW4uCj4gPiA+ICsgKi8KPiA+ID4gK2VudW0gZHJtX2F0b21pY19oZWxwZXJfZGFt YWdlX2NsaXBfdHlwZSB7Cj4gPiA+ICsJRFJNX0FUT01JQ19IRUxQRVJfREFNQUdFX0NMSVBfVFlQ RV9GQiAgICAgICA9IDB4MCwKPiA+ID4gKwlEUk1fQVRPTUlDX0hFTFBFUl9EQU1BR0VfQ0xJUF9U WVBFX1BMQU5FICAgID0gMHgxLAo+ID4gPiArCURSTV9BVE9NSUNfSEVMUEVSX0RBTUFHRV9DTElQ X1RZUEVfQ1JUQyAgICAgPSAweDIsCj4gPiBJJ20gY29uZnVzZWQgd2l0aCB3aGF0IGV4YWN0bHkg dGhlc2UgZGlmZmVyZW50IHR5cGVzIG9mIGl0ZXJhdG9ycyBhcmUKPiA+IHN1cHBvc2VkIHRvIGFj aGlldmUuIFRZUEVfRkIgbWFrZXMgc2Vuc2UsIHRoYXQncyB3aGF0IHZtd2dmeCBhbmQgb3RoZXIK PiA+IHZpcnR1YWwgZHJpdmVycyBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hpY2ggcGFydHMgb2YgYSBi dWZmZXIgdG8gdXBsb2FkIHRvCj4gPiB0aGUgaG9zdC4KPiA+IAo+ID4gVFlQRV9QTEFORSBJIGhh dmUgbm8gaWRlYSB3aG8gbmVlZHMgdGhhdC4gSSBzdWdnZXN0IHdlIGp1c3QgZHJvcCBpdC4KPiA+ IAo+ID4gVFlQRV9DUlRDIGlzIHdoYXQgSSdkIHdhbnQgdG8gdXNlIGZvciBtYW51YWwgdXBsb2Fk IGh3LCB3ZXJlIGluc3RlYWQgb2YKPiA+IGNvbXBvc2l0aW5nIHRoZSBlbnRpcmUgc2NyZWVuIHdl IGNhbiBsaW1pdCB0aGUgdXBsb2FkZWQgYXJlYSB0byAxIG9yIDIKPiA+IHJlY3RhbmdsZXMgKGRl cGVuZGluZyB1cG9uIGhvdyB0aGUgaHcgd29ya3MpLiBCdXQgdGhvc2UgZHJpdmVycyB3YW50IGFs bAo+ID4gdGhlIGNydGMgY2xpcCByZWN0cyBmb3IgX2FsbF8gdGhlIHBsYW5lcyBjb21iaW5lZCwg bm90IGZvciBlYWNoIHBsYW5lCj4gPiBpbmRpdmlkdWFsbHkuCj4gPiAKPiA+IE15IHN1Z2dlc3Rp b24gaXMgdG8gZHJvcCBUWVBFX0NSVEMgdW50aWwgc29tZW9uZSBuZWVkcyBpdCBmb3IgYSBkcml2 ZXIuCj4gPiBBbmQgbW9zdCBsaWtlbHkgdGhlIG9ubHkgaXRlcmF0b3Igd2Ugd2FudCBmb3IgVFlQ RV9DUlRDIGlzIG9uZSB0aGF0IGdpdmVzCj4gPiB5b3UgdGhlIG92ZXJhbGwgZGFtYWdlIGFyZWEs IGluY2x1ZGluZyBhbHBoYS9jdG0vZ2FtbWEvZXZlcnl0aGluZyBlbHNlLAo+ID4gY29hbGVzY2Vk IGludG8ganVzdCAxIGNsaXAgcmVjdC4gU28gcHJvYmFibHkgYW4gZW50aXJlbHkgZGlmZmVyZW50 Cj4gPiBmdW5jdGlvbi4KPiAKPiBBY3R1YWxseSBmb3Igdm13Z2Z4LCB0aGUgZGlzcGxheSBwYXJ0 IG9mIHRoZSBoYXJkd2FyZSBjb21lcyBpbiBkaWZmZXJlbnQKPiB2ZXJzaW9ucyBhbmQgd2UnZCB0 eXBpY2FsbHkgZXhwZWN0IGJvdGggdGhlIEZCIGNvb3JkaW5hdGVzIGFuZCB0aGUgQ1JUQwo+IGNv b3JkaW5hdGVzLiBJbiB0aGUgbGF0ZXN0IHZlcnNpb24gdGhlIHN1cmZhY2UgYmFja2luZyB0aGUg c2NyZWVuIG5lZWRzIHRvCj4gZXhhY3RseSBmaXQgdGhlIENSVEMgc2Nhbm91dCBhcmVhLCBhbmQg aWYgdGhlIEZCIGRvZXNuJ3QgZG8gdGhhdCwgd2UgbmVlZCB0bwo+IGNyZWF0ZSBhIHN1cmZhY2Ug dGhhdCBkb2VzIGFuZCBjb3B5IGluIHRoZSBrZXJuZWwgZHJpdmVyLiBBZnRlciB0aGF0LCBhcyBh Cj4gc2Vjb25kIHN0ZXAsIHdlIG5lZWQgdG8gbm90aWZ5IHRoZSBkaXNwbGF5IHN5c3RlbSBvZiB0 aGUgZGFtYWdlZCBhcmVhIGluCj4gQ1JUQyBjb29yZGluYXRlcy4KCkhtLCB0aGF0J3MgYW4gdW5l eHBlY3RlZCB1c2UtY2FzZS4gSSdtIGxlYW5pbmcgdG93YXJkcyBqdXN0IGhhdmluZyBhIGZiCmNv b3JkaW5hdGlvbiBpdGVyYXRvciBhbmQgYWRqdXN0aW5nIHRoZSBzdGF0aWMgb2Zmc2V0IGluIHZt d2dmeCBjb2RlLiBZb3VyCnVzZS1jYXNlIGlzIHJhdGhlciBkaWZmZXJlbnQgZnJvbSBtYW51YWwg dXBsb2FkIHNjcmVlbnMgSSB0aGluaywgc28gaGF2aW5nCmEgQ1JUQyBkYW1hZ2UgaXRlcmF0b3Ig d2hpY2ggZG9lc24ndCBhY3R1YWxseSBkbyB3aGF0IG1vc3Qgb3RoZXIgZHJpdmVycwp3YW50IHdp bGwgYmUgY29uZnVzaW5nLgoKQW5kIHNpbmNlIGl0J3MganVzdCBhIHN0YXRpYyBkcm1fcmVjdF90 cmFuc2xhdGUgZm9yIHlvdSBpdCdsbCBiZSBvbmx5IDEKYWRkaXRpb25hbCBsaW5lIGluIHZtd2dm eC4gSW1vIHRoYXQncyB3b3J0aCB0aGUgc2FmZXIvY2xlYW5lciBzZW1hbnRpY3MKZm9yIHRoZSBj b3JlIGhlbHBlcnMuCgpNYW51YWwgdXBsb2FkIGh3IGRyaXZlciB1c2UgY2FzZSBoZXJlIG1lYW5z OgotIE11bHRpcGxlIHBsYW5lcywgcG9zaXRpb25lZCBhbGwgb3ZlciB0aGUgc2NyZWVuLgotIERl ZmluaXRlbHkgc2NhbGluZyBpbnZvbHZlZC4KLSBBbHBoYSwgZ2FtbWEsIGJsZW5kaW5nIGFsbCBt YXR0ZXIgKHNpbmNlIGl0J3Mgb25seSB0aGUgZmluYWwgY29tcG9zaXRlZAogIHBpeGVsIHZhbHVl IHdlIGRlY2lkZSB0byB1cGxvYWQgb3Igbm90IHVwbG9hZCksIGFuZCB0aGUgaHcgd2l0aCBwc3Iv ZHNpCiAgcGFuZWxzIHRlbmQgdG8gYWxsIGhhdmUgcmF0aGVyIGZhbmN5IGh3IGNvbXBvc2l0aW9u IGVuZ2luZXMuCi0gSnVzdCAxIG9yIDIgcmVjdGFuZ2xlcyBpbiBDUlRDIGNvb3JkaW5hdGVzLgoK WW91ciBDUlRDIGNvb3JkaW5hdGlvbiB1c2UgY2FzZSBvdG9oIGlzIHNpbXBseSBmYWxsb3V0IGZy b20geW91cgpyZXF1aXJlbWVudCB0aGF0IHlvdSBjYW4ndCBwb3NpdGlvbiB0aGUgZnJhbWVidWZm ZXIgYW55d2hlcmUgZWxzZSB0aGFuIGF0CjAsMCwgd2l0aCBzaXplIGV4YWN0bHkgbWF0Y2hpbmcg dGhlIHNjcmVlbiwgcGx1cyB0aGUgcmVhc29uYWJsZSBkZWNpc2lvbgp0byBoYW5kbGUgdGhhdCBp bXBlbmRlbmNlIG1pc21hdGNoIGluIHlvdXIgZHJpdmVyIChzaW5jZSB1c2Vyc3BhY2Ugd2lsbCBi ZQp1bmhhcHB5IGFib3V0IHRoaXMsIGF0IGxlYXN0IGdlbmVyaWMgb25lKS4KCkkgdGhpbmsgZXZl biBhcyBmYXIgYXMgdmlydHVhbCBoYXJkd2FyZSBndWVzcywgdGhhdCdzIGZhaXJseSBzcGVjaWFs LCBhbmQKcHJvYmFibHkgbm90IHRoZSBjYXNlIHdlIHNob3VsZCBvcHRpbWl6ZSBoZWxwZXJzIGZv ci4KClRob3VnaHRzPwoKVGhhbmtzLCBEYW5pZWwKCj4gPiBTdW1tYXJpemluZyBhbGwgdGhpcywg SSdkIHNpbXBsaWZ5IHRoZSBpdGVyYXRvciB0bzoKPiA+IAo+ID4gZHJtX2F0b21pY19oZWxwZXJf ZGFtYWdlX2l0ZXJfaW5pdChpdGVyLCBwbGFuZV9zdGF0ZSk7Cj4gPiAKPiA+IEFuZCBsZWF2ZSB0 aGUgb3RoZXIgMiB1c2UtY2FzZXMgdG8gdGhlIG5leHQgcGF0Y2ggc2VyaWVzLiBGb3IgY3J0YyBk YW1hZ2UKPiA+IHdlIHByb2JhYmx5IHdhbnQ6Cj4gPiAKPiA+IGRybV9hdG9taWNfaGVscGVyX2Ny dGNfZGFtYWdlKGRybV9hdG9taWNfc3RhdGUsIHJlY3QpCj4gPiAKPiA+IFdoaWNoIGludGVybmFs bHkgbG9vcHMgb3ZlciBhbGwgcGxhbmVzIGFuZCBhbHNvIHRha2VzIGFsbCB0aGUgb3RoZXIgc3Rh dGUKPiA+IGNoYW5nZXMgaW50byBhY2NvdW50LiBUaGF0IHdheSB5b3UgYWxzbyBkb24ndCBoYXZl IHRvIGZpeCB0aGUgc2NhbGluZwo+ID4gaXNzdWUsIHNpbmNlIHlvdXIgY3VycmVudCBjb2RlIG9u bHkgaGFuZGxlcyB0cmFuc2xhdGlvbi4KPiA+IAo+ID4gQW5vdGhlciBiaXQ6IGRybV9hdG9taWNf aGVscGVyLmMgaXMgaHVnZSwgSSdkIHZvdGUgdG8gcHV0IGFsbCB0aGlzIHN0dWZmCj4gPiBpbnRv IGEgbmV3IGRybV9kYW1hZ2VfaGVscGVyLltoY10sIGluY2x1ZGluZyBuZXcgc2VjdGlvbiBpbiBk cm0ta21zLnJzdAo+ID4gYW5kIGFsbCB0aGF0LiBTcGxpdHRpbmcgdXAgZHJtX2F0b21pY19oZWxw ZXIuW2hjXSBpcyBzb21ld2hlcmUgb24gbXkgdG9kbwo+ID4gLi4uCj4gPiAKPiA+IENoZWVycywg RGFuaWVsCj4gCj4gL1Rob21hcwo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCj4gZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+IGRyaS1kZXZlbEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2RyaS1kZXZlbAoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIs IEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJp LWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=