From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: Re: [PATCH 0/1] drm/xen-zcopy: Add Xen zero-copy helper DRM driver Date: Tue, 24 Apr 2018 11:08:41 +0200 Message-ID: <0657bbb5-5cb7-4c63-5490-fbfc7dec1e59__36040.9609777436$1524560857$gmane$org@suse.com> References: <5d8fec7f-956c-378f-be90-f45029385740@gmail.com> <20180416192905.GA18096@downor-Z87X-UD5H> <20180417075928.GT31310@phenom.ffwll.local> <20180417205744.GA15930@downor-Z87X-UD5H> <41487acb-a67a-8933-d0c3-702c19b0938e@gmail.com> <20180418073508.ptvntwedczpvl7bx@MacBook-Pro-de-Roger.local> <20180418101058.hyqk3gr3b2ibxswu@MacBook-Pro-de-Roger.local> <20180420071914.GG31310@phenom.ffwll.local> <76cdc65a-7bb1-9377-7bc5-6164e32f7b5d@gmail.com> <20180423115242.ywdwqblj2aseu3fr@citrix.com> <61105351-8896-072b-abf0-757c7f6c0edf@gmail.com> <30ddb005-96c8-f47c-2e23-4e0d354e5842@gmail.com> <6089d701-5221-75b4-38eb-b23bc5dc30cd@suse.com> <85fc8f82-6d4d-9343-2737-85b7d7391168@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1fAtwS-0003Ll-2T for xen-devel@lists.xenproject.org; Tue, 24 Apr 2018 09:08:52 +0000 In-Reply-To: <85fc8f82-6d4d-9343-2737-85b7d7391168@gmail.com> Content-Language: de-DE List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Oleksandr Andrushchenko , Boris Ostrovsky , Wei Liu Cc: Artem Mygaiev , Dongwon Kim , "Oleksandr_Andrushchenko@epam.com" , airlied@linux.ie, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, "Potrola, MateuszX" , daniel.vetter@intel.com, xen-devel@lists.xenproject.org, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= List-Id: xen-devel@lists.xenproject.org T24gMjQvMDQvMTggMTE6MDMsIE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOgo+IE9uIDA0 LzI0LzIwMTggMTE6NDAgQU0sIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6Cj4+IE9uIDI0LzA0LzE4IDEw OjA3LCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToKPj4+IE9uIDA0LzI0LzIwMTggMTA6 NTEgQU0sIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6Cj4+Pj4gT24gMjQvMDQvMTggMDc6NDMsIE9sZWtz YW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOgo+Pj4+PiBPbiAwNC8yNC8yMDE4IDAxOjQxIEFNLCBC b3JpcyBPc3Ryb3Zza3kgd3JvdGU6Cj4+Pj4+PiBPbiAwNC8yMy8yMDE4IDA4OjEwIEFNLCBPbGVr c2FuZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToKPj4+Pj4+PiBPbiAwNC8yMy8yMDE4IDAyOjUyIFBN LCBXZWkgTGl1IHdyb3RlOgo+Pj4+Pj4+PiBPbiBGcmksIEFwciAyMCwgMjAxOCBhdCAwMjoyNToy MFBNICswMzAwLCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbwo+Pj4+Pj4+PiB3cm90ZToKPj4+Pj4+ Pj4+Pj4gwqDCoMKgwqDCoMKgwqAgdGhlIGdudGRldi4KPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4g SSB0aGluayB0aGlzIGlzIGdlbmVyaWMgZW5vdWdoIHRoYXQgaXQgY291bGQgYmUgaW1wbGVtZW50 ZWQgYnkgYQo+Pj4+Pj4+Pj4+PiBkZXZpY2Ugbm90IHRpZWQgdG8gWGVuLiBBRkFJQ1QgdGhlIGh5 cGVyX2RtYSBndXlzIGFsc28gd2FudGVkCj4+Pj4+Pj4+Pj4+IHNvbWV0aGluZyBzaW1pbGFyIHRv IHRoaXMuCj4+Pj4+Pj4+Pj4gWW91IGNhbid0IGp1c3Qgd3JhcCByYW5kb20gdXNlcnNwYWNlIG1l bW9yeSBpbnRvIGEgZG1hLWJ1Zi4gV2UndmUKPj4+Pj4+Pj4+PiBqdXN0IGhhZAo+Pj4+Pj4+Pj4+ IHRoaXMgZGlzY3Vzc2lvbiB3aXRoIGt2bS9xZW11IGZvbGtzLCB3aG8gcHJvcG9zZWQganVzdCB0 aGF0LCBhbmQKPj4+Pj4+Pj4+PiBhZnRlciBhCj4+Pj4+Pj4+Pj4gYml0IG9mIGRpc2N1c3Npb24g dGhleSdsbCBub3cgdHJ5IHRvIGhhdmUgYSBkcml2ZXIgd2hpY2gganVzdAo+Pj4+Pj4+Pj4+IHdy YXBzIGEKPj4+Pj4+Pj4+PiBtZW1mZCBpbnRvIGEgZG1hLWJ1Zi4KPj4+Pj4+Pj4+IFNvLCB3ZSBo YXZlIHRvIGRlY2lkZSBlaXRoZXIgd2UgaW50cm9kdWNlIGEgbmV3IGRyaXZlcgo+Pj4+Pj4+Pj4g KHNheSwgdW5kZXIgZHJpdmVycy94ZW4veGVuLWRtYS1idWYpIG9yIGV4dGVuZCB0aGUgZXhpc3Rp bmcKPj4+Pj4+Pj4+IGdudGRldi9iYWxsb29uIHRvIHN1cHBvcnQgZG1hLWJ1ZiB1c2UtY2FzZXMu Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gQ2FuIGFueWJvZHkgZnJvbSBYZW4gY29tbXVuaXR5IGV4cHJl c3MgdGhlaXIgcHJlZmVyZW5jZSBoZXJlPwo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4gT2xla3NhbmRyIHRh bGtlZCB0byBtZSBvbiBJUkMgYWJvdXQgdGhpcywgaGUgc2FpZCBhIGZldyBJT0NUTHMKPj4+Pj4+ Pj4gbmVlZCB0bwo+Pj4+Pj4+PiBiZSBhZGRlZCB0byBlaXRoZXIgZXhpc3RpbmcgZHJpdmVycyBv ciBhIG5ldyBkcml2ZXIuCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IEkgd2VudCB0aHJvdWdoIHRoaXMgdGhy ZWFkIHR3aWNlIGFuZCBza2ltbWVkIHRocm91Z2ggdGhlIHJlbGV2YW50Cj4+Pj4+Pj4+IGRvY3Vt ZW50cywgYnV0IEkgY291bGRuJ3Qgc2VlIGFueSBvYnZpb3VzIHByb3MgYW5kIGNvbnMgZm9yIGVp dGhlcgo+Pj4+Pj4+PiBhcHByb2FjaC4gU28gSSBkb24ndCByZWFsbHkgaGF2ZSBhbiBvcGluaW9u IG9uIHRoaXMuCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IEJ1dCwgYXNzdW1pbmcgaWYgaW1wbGVtZW50ZWQg aW4gZXhpc3RpbmcgZHJpdmVycywgdGhvc2UgSU9DVExzCj4+Pj4+Pj4+IG5lZWQgdG8KPj4+Pj4+ Pj4gYmUgYWRkZWQgdG8gZGlmZmVyZW50IGRyaXZlcnMsIHdoaWNoIG1lYW5zIHVzZXJzcGFjZSBw cm9ncmFtCj4+Pj4+Pj4+IG5lZWRzIHRvCj4+Pj4+Pj4+IHdyaXRlIG1vcmUgY29kZSBhbmQgZ2V0 IG1vcmUgaGFuZGxlcywgaXQgd291bGQgYmUgc2xpZ2h0bHkKPj4+Pj4+Pj4gYmV0dGVyIHRvCj4+ Pj4+Pj4+IGltcGxlbWVudCBhIG5ldyBkcml2ZXIgZnJvbSB0aGF0IHBlcnNwZWN0aXZlLgo+Pj4+ Pj4+IElmIGdudGRldi9iYWxsb29uIGV4dGVuc2lvbiBpcyBzdGlsbCBjb25zaWRlcmVkOgo+Pj4+ Pj4+Cj4+Pj4+Pj4gQWxsIHRoZSBJT0NUTHMgd2lsbCBiZSBpbiBnbnRkZXYgZHJpdmVyIChpbiBj dXJyZW50IHhlbi16Y29weQo+Pj4+Pj4+IHRlcm1pbm9sb2d5KToKPj4+Pj4+PiDCoMKgwqDCoC0g RFJNX0lDT1RMX1hFTl9aQ09QWV9EVU1CX0ZST01fUkVGUwo+Pj4+Pj4+IMKgwqDCoMKgLSBEUk1f SU9DVExfWEVOX1pDT1BZX0RVTUJfVE9fUkVGUwo+Pj4+Pj4+IMKgwqDCoMKgLSBEUk1fSU9DVExf WEVOX1pDT1BZX0RVTUJfV0FJVF9GUkVFCj4+Pj4+Pj4KPj4+Pj4+PiBCYWxsb29uIGRyaXZlciBl eHRlbnNpb24sIHdoaWNoIGlzIG5lZWRlZCBmb3IgY29udGlndW91cy9ETUEKPj4+Pj4+PiBidWZm ZXJzLCB3aWxsIGJlIHRvIHByb3ZpZGUgbmV3ICprZXJuZWwgQVBJKiwgbm8gVUFQSSBpcyBuZWVk ZWQuCj4+Pj4+Pj4KPj4+Pj4+IFNvIEkgYW0gb2J2aW91c2x5IGEgYml0IGxhdGUgdG8gdGhpcyB0 aHJlYWQsIGJ1dCB3aHkgZG8geW91IG5lZWQKPj4+Pj4+IHRvIGFkZAo+Pj4+Pj4gbmV3IGlvY3Rs cyB0byBnbnRkZXYgYW5kIGJhbGxvb24/IERvZXNuJ3QgdGhpcyBkcml2ZXIgbWFuYWdlIHRvIGRv Cj4+Pj4+PiB3aGF0Cj4+Pj4+PiB5b3Ugd2FudCB3aXRob3V0IGFueSBleHRlbnNpb25zPwo+Pj4+ PiAxLiBJIG9ubHkgKG1heSkgbmVlZCB0byBhZGQgSU9DVExzIHRvIGdudGRldgo+Pj4+PiAyLiBi YWxsb29uIGRyaXZlciBuZWVkcyB0byBiZSBleHRlbmRlZCwgc28gaXQgY2FuIGFsbG9jYXRlCj4+ Pj4+IGNvbnRpZ3VvdXMgKERNQSkgbWVtb3J5LCBub3QgSU9DVExzL1VBUEkgaGVyZSwgYWxsIGxp dmVzCj4+Pj4+IGluIHRoZSBrZXJuZWwuCj4+Pj4+IDMuIFRoZSByZWFzb24gSSBuZWVkIHRvIGV4 dGVuZCBnbnR0YWIgd2l0aCBuZXcgSU9DVExzIGlzIHRvCj4+Pj4+IHByb3ZpZGUgbmV3IGZ1bmN0 aW9uYWxpdHkgdG8gY3JlYXRlIGEgZG1hLWJ1ZiBmcm9tIGdyYW50IHJlZmVyZW5jZXMKPj4+Pj4g YW5kIHRvIHByb2R1Y2UgZ3JhbnQgcmVmZXJlbmNlcyBmb3IgYSBkbWEtYnVmLiBUaGlzIGlzIHdo YXQgSSBoYXZlIGFzCj4+Pj4+IFVBUEkKPj4+Pj4gZGVzY3JpcHRpb24gZm9yIHhlbi16Y29weSBk cml2ZXI6Cj4+Pj4+Cj4+Pj4+IDEuIERSTV9JT0NUTF9YRU5fWkNPUFlfRFVNQl9GUk9NX1JFRlMK Pj4+Pj4gVGhpcyB3aWxsIGNyZWF0ZSBhIERSTSBkdW1iIGJ1ZmZlciBmcm9tIGdyYW50IHJlZmVy ZW5jZXMgcHJvdmlkZWQKPj4+Pj4gYnkgdGhlIGZyb250ZW5kLiBUaGUgaW50ZW5kZWQgdXNhZ2Ug aXM6Cj4+Pj4+IMKgwqDCoCAtIEZyb250ZW5kCj4+Pj4+IMKgwqDCoMKgwqAgLSBjcmVhdGVzIGEg ZHVtYi9kaXNwbGF5IGJ1ZmZlciBhbmQgYWxsb2NhdGVzIG1lbW9yeQo+Pj4+PiDCoMKgwqDCoMKg IC0gZ3JhbnRzIGZvcmVpZ24gYWNjZXNzIHRvIHRoZSBidWZmZXIgcGFnZXMKPj4+Pj4gwqDCoMKg wqDCoCAtIHBhc3NlcyBncmFudGVkIHJlZmVyZW5jZXMgdG8gdGhlIGJhY2tlbmQKPj4+Pj4gwqDC oMKgIC0gQmFja2VuZAo+Pj4+PiDCoMKgwqDCoMKgIC0gaXNzdWVzIERSTV9YRU5fWkNPUFlfRFVN Ql9GUk9NX1JFRlMgaW9jdGwgdG8gbWFwCj4+Pj4+IMKgwqDCoMKgwqDCoMKgIGdyYW50ZWQgcmVm ZXJlbmNlcyBhbmQgY3JlYXRlIGEgZHVtYiBidWZmZXIKPj4+Pj4gwqDCoMKgwqDCoCAtIHJlcXVl c3RzIGhhbmRsZSB0byBmZCBjb252ZXJzaW9uIHZpYQo+Pj4+PiBEUk1fSU9DVExfUFJJTUVfSEFO RExFX1RPX0ZECj4+Pj4+IMKgwqDCoMKgwqAgLSByZXF1ZXN0cyByZWFsIEhXIGRyaXZlci9jb25z dW1lciB0byBpbXBvcnQgdGhlIFBSSU1FIGJ1ZmZlcgo+Pj4+PiB3aXRoCj4+Pj4+IMKgwqDCoMKg wqDCoMKgIERSTV9JT0NUTF9QUklNRV9GRF9UT19IQU5ETEUKPj4+Pj4gwqDCoMKgwqDCoCAtIHVz ZXMgaGFuZGxlIHJldHVybmVkIGJ5IHRoZSByZWFsIEhXIGRyaXZlcgo+Pj4+PiDCoMKgwqAgLSBh dCB0aGUgZW5kOgo+Pj4+PiDCoMKgwqDCoMKgIG8gY2xvc2VzIHJlYWwgSFcgZHJpdmVyJ3MgaGFu ZGxlIHdpdGggRFJNX0lPQ1RMX0dFTV9DTE9TRQo+Pj4+PiDCoMKgwqDCoMKgIG8gY2xvc2VzIHpl cm8tY29weSBkcml2ZXIncyBoYW5kbGUgd2l0aCBEUk1fSU9DVExfR0VNX0NMT1NFCj4+Pj4+IMKg wqDCoMKgwqAgbyBjbG9zZXMgZmlsZSBkZXNjcmlwdG9yIG9mIHRoZSBleHBvcnRlZCBidWZmZXIK Pj4+Pj4KPj4+Pj4gMi4gRFJNX0lPQ1RMX1hFTl9aQ09QWV9EVU1CX1RPX1JFRlMKPj4+Pj4gVGhp cyB3aWxsIGdyYW50IHJlZmVyZW5jZXMgdG8gYSBkdW1iL2Rpc3BsYXkgYnVmZmVyJ3MgbWVtb3J5 Cj4+Pj4+IHByb3ZpZGVkIGJ5Cj4+Pj4+IHRoZQo+Pj4+PiBiYWNrZW5kLiBUaGUgaW50ZW5kZWQg dXNhZ2UgaXM6Cj4+Pj4+IMKgwqDCoCAtIEZyb250ZW5kCj4+Pj4+IMKgwqDCoMKgwqAgLSByZXF1 ZXN0cyBiYWNrZW5kIHRvIGFsbG9jYXRlIGR1bWIvZGlzcGxheSBidWZmZXIgYW5kIGdyYW50Cj4+ Pj4+IHJlZmVyZW5jZXMKPj4+Pj4gwqDCoMKgwqDCoMKgwqAgdG8gaXRzIHBhZ2VzCj4+Pj4+IMKg wqDCoCAtIEJhY2tlbmQKPj4+Pj4gwqDCoMKgwqDCoCAtIHJlcXVlc3RzIHJlYWwgSFcgZHJpdmVy IHRvIGNyZWF0ZSBhIGR1bWIgd2l0aAo+Pj4+PiBEUk1fSU9DVExfTU9ERV9DUkVBVEVfRFVNQgo+ Pj4+PiDCoMKgwqDCoMKgIC0gcmVxdWVzdHMgaGFuZGxlIHRvIGZkIGNvbnZlcnNpb24gdmlhCj4+ Pj4+IERSTV9JT0NUTF9QUklNRV9IQU5ETEVfVE9fRkQKPj4+Pj4gwqDCoMKgwqDCoCAtIHJlcXVl c3RzIHplcm8tY29weSBkcml2ZXIgdG8gaW1wb3J0IHRoZSBQUklNRSBidWZmZXIgd2l0aAo+Pj4+ PiDCoMKgwqDCoMKgwqDCoCBEUk1fSU9DVExfUFJJTUVfRkRfVE9fSEFORExFCj4+Pj4+IMKgwqDC oMKgwqAgLSBpc3N1ZXMgRFJNX1hFTl9aQ09QWV9EVU1CX1RPX1JFRlMgaW9jdGwgdG8KPj4+Pj4g wqDCoMKgwqDCoMKgwqAgZ3JhbnQgcmVmZXJlbmNlcyB0byB0aGUgYnVmZmVyJ3MgbWVtb3J5Lgo+ Pj4+PiDCoMKgwqDCoMKgIC0gcGFzc2VzIGdyYW50IHJlZmVyZW5jZXMgdG8gdGhlIGZyb250ZW5k Cj4+Pj4+IMKgwqDCoC0gYXQgdGhlIGVuZDoKPj4+Pj4gwqDCoMKgwqDCoCAtIGNsb3NlcyB6ZXJv LWNvcHkgZHJpdmVyJ3MgaGFuZGxlIHdpdGggRFJNX0lPQ1RMX0dFTV9DTE9TRQo+Pj4+PiDCoMKg wqDCoMKgIC0gY2xvc2VzIHJlYWwgSFcgZHJpdmVyJ3MgaGFuZGxlIHdpdGggRFJNX0lPQ1RMX0dF TV9DTE9TRQo+Pj4+PiDCoMKgwqDCoMKgIC0gY2xvc2VzIGZpbGUgZGVzY3JpcHRvciBvZiB0aGUg aW1wb3J0ZWQgYnVmZmVyCj4+Pj4+Cj4+Pj4+IDMuIERSTV9YRU5fWkNPUFlfRFVNQl9XQUlUX0ZS RUUKPj4+Pj4gVGhpcyB3aWxsIGJsb2NrIHVudGlsIHRoZSBkdW1iIGJ1ZmZlciB3aXRoIHRoZSB3 YWl0IGhhbmRsZSBwcm92aWRlZCBiZQo+Pj4+PiBmcmVlZDoKPj4+Pj4gdGhpcyBpcyBuZWVkZWQg Zm9yIHN5bmNocm9uaXphdGlvbiBiZXR3ZWVuIGZyb250ZW5kIGFuZCBiYWNrZW5kIGluCj4+Pj4+ IGNhc2UKPj4+Pj4gZnJvbnRlbmQgcHJvdmlkZXMgZ3JhbnQgcmVmZXJlbmNlcyBvZiB0aGUgYnVm ZmVyIHZpYQo+Pj4+PiBEUk1fWEVOX1pDT1BZX0RVTUJfRlJPTV9SRUZTIElPQ1RMIGFuZCB3aGlj aCBtdXN0IGJlIHJlbGVhc2VkIGJlZm9yZQo+Pj4+PiBiYWNrZW5kIHJlcGxpZXMgd2l0aCBYRU5E SVNQTF9PUF9EQlVGX0RFU1RST1kgcmVzcG9uc2UuCj4+Pj4+IHdhaXRfaGFuZGxlIG11c3QgYmUg dGhlIHNhbWUgdmFsdWUgcmV0dXJuZWQgd2hpbGUgY2FsbGluZwo+Pj4+PiBEUk1fWEVOX1pDT1BZ X0RVTUJfRlJPTV9SRUZTIElPQ1RMLgo+Pj4+Pgo+Pj4+PiBTbywgYXMgeW91IGNhbiBzZWUgdGhl IGFib3ZlIGZ1bmN0aW9uYWxpdHkgaXMgbm90IGNvdmVyZWQgYnkgdGhlCj4+Pj4+IGV4aXN0aW5n IFVBUEkKPj4+Pj4gb2YgdGhlIGdudGRldiBkcml2ZXIuCj4+Pj4+IE5vdywgaWYgd2UgY2hhbmdl IGR1bWIgLT4gZG1hLWJ1ZiBhbmQgcmVtb3ZlIERSTSBjb2RlICh3aGljaCBpcyBvbmx5IGEKPj4+ Pj4gd3JhcHBlcgo+Pj4+PiBoZXJlIG9uIHRvcCBvZiBkbWEtYnVmKSB3ZSBnZXQgbmV3IGRyaXZl ciBmb3IgZG1hLWJ1ZiBmb3IgWGVuLgo+Pj4+Pgo+Pj4+PiBUaGlzIGlzIHdoeSBJIGhhdmUgMiBv cHRpb25zIGhlcmU6IGVpdGhlciBjcmVhdGUgYSBkZWRpY2F0ZWQgZHJpdmVyCj4+Pj4+IGZvcgo+ Pj4+PiB0aGlzCj4+Pj4+IChlLmcuIHJlLXdvcmsgeGVuLXpjb3B5IHRvIGJlIERSTSBpbmRlcGVu ZGVudCBhbmQgcHV0IGl0IHVuZGVyCj4+Pj4+IGRyaXZlcnMveGVuL3hlbi1kbWEtYnVmLCBmb3Ig ZXhhbXBsZSkgb3IgZXh0ZW5kIHRoZSBleGlzdGluZyBnbnRkZXYKPj4+Pj4gZHJpdmVyCj4+Pj4+ IHdpdGggdGhlIGFib3ZlIFVBUEkgKyBtYWtlIGNoYW5nZXMgdG8gdGhlIGJhbGxvb24gZHJpdmVy IHRvIHByb3ZpZGUKPj4+Pj4ga2VybmVsCj4+Pj4+IEFQSSBmb3IgRE1BIGJ1ZmZlciBhbGxvY2F0 aW9ucy4KPj4+PiBXaGljaCB1c2VyIGNvbXBvbmVudCB3b3VsZCB1c2UgdGhlIG5ldyBpb2N0bHM/ Cj4+PiBJdCBpcyBjdXJyZW50bHkgdXNlZCBieSB0aGUgZGlzcGxheSBiYWNrZW5kIFsxXSBhbmQg d2lsbAo+Pj4gcHJvYmFibHkgYmUgdXNlZCBieSB0aGUgaHlwZXItZG1hYnVmIGZyb250ZW5kL2Jh Y2tlbmQKPj4+IChEb25nd29uIGZyb20gSW50ZWwgY2FuIHByb3ZpZGUgbW9yZSBpbmZvIG9uIHRo aXMpLgo+Pj4+IEknbSBhc2tpbmcgYmVjYXVzZSBJJ20gbm90IHZlcnkgZm9uZCBvZiBhZGRpbmcg bW9yZSBsaW51eCBzcGVjaWZpYwo+Pj4+IGZ1bmN0aW9ucyB0byBsaWJnbnR0YWIgd2hpY2ggYXJl IG5vdCByZWxhdGVkIHRvIGEgc3BlY2lmaWMgWGVuIHZlcnNpb24sCj4+Pj4gYnV0IHRvIGEga2Vy bmVsIHZlcnNpb24uCj4+PiBIbSwgSSB3YXMgbm90IHRoaW5raW5nIGFib3V0IHRoaXMgVUFQSSB0 byBiZSBhZGRlZCB0byBsaWJnbnR0YWIuCj4+PiBJdCBzZWVtcyBpdCBjYW4gYmUgdXNlZCBkaXJl Y3RseSB3L28gd3JhcHBlcnMgaW4gdXNlci1zcGFjZQo+PiBXb3VsZCB0aGlzIHByb2dyYW0gdXNl IGxpYmdudHRhYiBpbiBwYXJhbGxlbD8KPiBJbiBjYXNlIG9mIHRoZSBkaXNwbGF5IGJhY2tlbmQg LSB5ZXMsIGZvciBzaGFyZWQgcmluZ3MsCj4gZXh0cmFjdGluZyBncmVmcyBmcm9tIGRpc3BsaWYg cHJvdG9jb2wgaXQgdXNlcyBnbnRkZXYgdmlhCj4gaGVscGVyIGxpYnJhcnkgWzFdCj4+IMKgIElm IHllcyBob3cgd291bGQgdGhlIHR3bwo+PiB1c2FnZSBwYXRocyBiZSBjb21iaW5lZCAoc2FtZSBh cHBsaWVzIHRvIHRoZSBzZXBhcmF0ZSBkcml2ZXIsIGJ0dyk/IFRoZQo+PiBnbnRkZXYgZHJpdmVy IG1hbmFnZXMgcmVzb3VyY2VzIHBlciBmaWxlIGRlc2NyaXB0b3IgYW5kIGxpYmdudHRhYiBpcwo+ PiBoaWRpbmcgdGhlIGZpbGUgZGVzY3JpcHRvciBpdCBpcyB1c2luZyBmb3IgYSBjb25uZWN0aW9u Lgo+IEFoLCBhdCB0aGUgbW9tZW50IHRoZSBVQVBJIHdhcyBub3QgdXNlZCBpbiBwYXJhbGxlbCBh cyB0aGVyZSB3ZXJlCj4gMiBkcml2ZXJzIGZvciB0aGF0OiBnbnRkZXYgKyB4ZW4temNvcHkgd2l0 aCBkaWZmZXJlbnQgVUFQSXMuCj4gQnV0IG5vdywgaWYgd2UgZXh0ZW5kIGdudGRldiB3aXRoIHRo ZSBuZXcgQVBJIHRoZW4geW91IGFyZSByaWd0aDoKPiBlaXRoZXIgbGliZ250dGFiIG5lZWRzIHRv IGJlIGV4dGVuZGVkIG9yIHRoYXQgbmV3IHBhcnQgb2YgdGhlCj4gZ250ZGV2IFVBUEkgbmVlZHMg dG8gYmUgb3Blbi1jb2RlZCBieSB0aGUgYmFja2VuZAo+PiDCoCBPciB3b3VsZCB0aGUKPj4gdXNl ciBwcm9ncmFtIHVzZSBvbmx5IHRoZSBuZXcgZHJpdmVyIGZvciBjb21tdW5pY2F0aW5nIHdpdGgg dGhlIGdudGRldgo+PiBkcml2ZXI/IEluIHRoaXMgY2FzZSBpdCBtaWdodCBiZSBhbiBvcHRpb24g dG8gZXh0ZW5kIHRoZSBnbnRkZXYgZHJpdmVyCj4+IHRvIHByZXNlbnQgYSBuZXcgZGV2aWNlIChl LmcuICJnbnRkbWFkZXYiKSBmb3IgdGhhdCBwdXJwb3NlLgo+IE5vLCBpdCBzZWVtcyB0aGF0IGxp YmdudHRhYiBhbmQgdGhpcyBuZXcgZHJpdmVyJ3MgVUFQSSB3aWxsIGJlIHVzZWQKPiBpbiBwYXJh bGxlbAo+Pj4+IFNvIGRvaW5nIHRoaXMgaW4gYSBzZXBhcmF0ZSBkcml2ZXIgc2VlbXMgdG8gYmUg dGhlIGJldHRlciBvcHRpb24gaW4KPj4+PiB0aGlzIHJlZ2FyZC4KPj4+IFdlbGwsIGZyb20gbWFp bnRlbmFuY2UgUE9WIGl0IGlzIGVhc2llciBmb3IgbWUgdG8gaGF2ZSBpdCBhbGwgaW4KPj4+IGEg c2VwYXJhdGUgZHJpdmVyIGFzIGFsbCBkbWEtYnVmIHJlbGF0ZWQgZnVuY3Rpb25hbGl0eSB3aWxs Cj4+PiByZXNpZGUgYXQgb25lIHBsYWNlLiBUaGlzIGFsc28gbWVhbnMgdGhhdCBubyBjaGFuZ2Vz IHRvIGV4aXN0aW5nCj4+PiBkcml2ZXJzIHdpbGwgYmUgbmVlZGVkIChpZiBpdCBpcyBvayB0byBo YXZlIGJhbGxvb25pbmcgaW4vb3V0Cj4+PiBjb2RlIGZvciBETUEgYnVmZmVycyAoYWxsb2NhdGVk IHdpdGggZG1hX2FsbG9jX3h4eCkgbm90IGluIHRoZSBiYWxsb29uCj4+PiBkcml2ZXIpCj4+IEkg dGhpbmsgaW4gdGhlIGVuZCB0aGlzIHJlYWxseSBkZXBlbmRzIG9uIGhvdyB0aGUgY29tcGxldGUg c29sdXRpb24KPj4gd2lsbCBsb29rIGxpa2UuIGdudGRldiBpcyBhIHNwZWNpYWwgd3JhcHBlciBm b3IgdGhlIGdudHRhYiBkcml2ZXIuCj4+IEluIGNhc2UgdGhlIG5ldyBkbWEtYnVmIGRyaXZlciBu ZWVkcyB0byB1c2UgcGFydHMgb2YgZ250ZGV2IEknZCByYXRoZXIKPj4gaGF2ZSBhIG5ldyBkcml2 ZXIgYWJvdmUgZ250dGFiICgiZ250dXNlciI/KSB1c2VkIGJ5IGdudGRldiBhbmQgZG1hLWJ1Zi4K PiBUaGUgbmV3IGRyaXZlciBkb2Vzbid0IHVzZSBnbnRkZXYncyBleGlzdGluZyBBUEksIGJ1dCBl eHRlbmRzIGl0LAo+IGUuZy4gYnkgYWRkaW5nIG5ldyB3YXlzIHRvIGV4cG9ydC9pbXBvcnQgZ3Jl ZnMgZm9yIGEgZG1hLWJ1ZiBhbmQKPiBtYW5hZ2UgZG1hLWJ1ZidzIGtlcm5lbCBvcHMuIFRodXMs IGdudGRldiwgd2hpY2ggYWxyZWFkeSBwcm92aWRlcwo+IFVBUEksIHNlZW1zIHRvIGJlIGEgZ29v ZCBjYW5kaWRhdGUgZm9yIHN1Y2ggYW4gZXh0ZW5zaW9uCgpTbyB0aGlzIHdvdWxkIG1lYW4geW91 IG5lZWQgYSBtb2RpZmljYXRpb24gb2YgbGliZ250dGFiLCByaWdodD8gVGhpcyBpcwpzb21ldGhp bmcgdGhlIFhlbiB0b29scyBtYWludGFpbmVycyBuZWVkIHRvIGRlY2lkZS4gSW4gY2FzZSB0aGV5 IGRvbid0Cm9iamVjdCBleHRlbmRpbmcgdGhlIGdudGRldiBkcml2ZXIgd291bGQgYmUgdGhlIG5h dHVyYWwgdGhpbmcgdG8gZG8uCgoKSnVlcmdlbgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlz dHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xp c3RpbmZvL3hlbi1kZXZlbA==