From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jerome Glisse Subject: Re: about mmap dma-buf and sync Date: Sun, 23 Aug 2015 21:41:49 -0400 Message-ID: <20150824014148.GA5394@gmail.com> References: <55D50442.5080102@intel.com> <55D57837.4080301@vmware.com> <20150820145340.GA2309@gmail.com> <55D62CE0.5060904@shipmail.org> <20150820203437.GA3973@gmail.com> <55D6B633.2070103@vmware.com> <20150821133221.GA3244@gmail.com> <55D73299.3000704@vmware.com> <20150821160024.GC3244@gmail.com> <55D79F75.5040007@vmware.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qg0-f42.google.com (mail-qg0-f42.google.com [209.85.192.42]) by gabe.freedesktop.org (Postfix) with ESMTPS id 71EE86E474 for ; Sun, 23 Aug 2015 18:42:18 -0700 (PDT) Received: by qgeb6 with SMTP id b6so78364647qge.3 for ; Sun, 23 Aug 2015 18:42:17 -0700 (PDT) Content-Disposition: inline In-Reply-To: <55D79F75.5040007@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: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gU2F0LCBBdWcgMjIsIDIwMTUgYXQgMTI6MDA6MjFBTSArMDIwMCwgVGhvbWFzIEhlbGxzdHJv bSB3cm90ZToKPiBPbiAwOC8yMS8yMDE1IDA2OjAwIFBNLCBKZXJvbWUgR2xpc3NlIHdyb3RlOgo+ ID4gT24gRnJpLCBBdWcgMjEsIDIwMTUgYXQgMDQ6MTU6NTNQTSArMDIwMCwgVGhvbWFzIEhlbGxz dHJvbSB3cm90ZToKPiA+PiBPbiAwOC8yMS8yMDE1IDAzOjMyIFBNLCBKZXJvbWUgR2xpc3NlIHdy b3RlOgo+ID4+PiBPbiBGcmksIEF1ZyAyMSwgMjAxNSBhdCAwNzoyNTowN0FNICswMjAwLCBUaG9t YXMgSGVsbHN0cm9tIHdyb3RlOgo+ID4+Pj4gT24gMDgvMjAvMjAxNSAxMDozNCBQTSwgSmVyb21l IEdsaXNzZSB3cm90ZToKPiA+Pj4+PiBPbiBUaHUsIEF1ZyAyMCwgMjAxNSBhdCAwOTozOToxMlBN ICswMjAwLCBUaG9tYXMgSGVsbHN0cm9tIHdyb3RlOgo+ID4+Pj4+PiBPbiAwOC8yMC8yMDE1IDA0 OjUzIFBNLCBKZXJvbWUgR2xpc3NlIHdyb3RlOgo+ID4+Pj4+Pj4gT24gVGh1LCBBdWcgMjAsIDIw MTUgYXQgMDg6NDg6MjNBTSArMDIwMCwgVGhvbWFzIEhlbGxzdHJvbSB3cm90ZToKPiA+Pj4+Pj4+ PiBIaSwgVGlhZ28hCj4gPj4+Pj4+Pj4KPiA+Pj4+Pj4+PiBPbiAwOC8yMC8yMDE1IDEyOjMzIEFN LCBUaWFnbyBWaWduYXR0aSB3cm90ZToKPiA+Pj4+Pj4+Pj4gSGV5IFRob21hcywgeW91IGhhdmVu J3QgYW5zd2VyZWQgbXkgZW1haWwgYWJvdXQgbWFraW5nIFNZTkNfKiBtYW5kYXRvcnk6Cj4gPj4+ Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IGh0dHBzOi8vdXJsZGVmZW5zZS5wcm9vZnBvaW50LmNvbS92Mi91 cmw/dT1odHRwLTNBX19saXN0cy5mcmVlZGVza3RvcC5vcmdfYXJjaGl2ZXNfZHJpLTJEZGV2ZWxf MjAxNS0yREF1Z3VzdF8wODgzNzYuaHRtbCZkPUJRSURBdyZjPVNxY2wwRXo2TTBYOGFlTTY3TEtJ aURKQVhWZUF3LVlpaFZNTnRYdC11RXMmcj12cHVrUGtCdHBvTlFwMklVS3VGdmlPbVBOWVdWS21l bjNKZWV1NTV6bUVBJm09RVgzdzhQTTc5TjVxTGVYeW9nZVNQTjlKNXBJdkJWNklLcmhCanp3SkRF TSZzPVMzTnFGMGtQTnRCS1EzLVdpZmZMMlQ5TkZLOTZYQnA1NnZrYjN1amYtaW8mZT0gCj4gPj4+ Pj4+Pj4gSG1tLCBmb3Igc29tZSByZWFzb24gaXQgZG9lc24ndCBzaG93IHVwIGluIG15IG1haWwg YXBwLCBidXQgSSBmb3VuZCBpdAo+ID4+Pj4+Pj4+IGluIHRoZSBhcmNoaXZlcy4gQW4gYXR0ZW1w dCB0byBleHBsYWluIHRoZSBzaXR1YXRpb24gZnJvbSB0aGUgdm13Z2Z4Cj4gPj4+Pj4+Pj4gcGVy c3BlY3RpdmUuCj4gPj4+Pj4+Pj4KPiA+Pj4+Pj4+PiBUaGUgZmFjdCB0aGF0IHRoZSBpbnRlcmZh Y2UgaXMgZ2VuZXJpYyBtZWFucyB0aGF0IHBlb3BsZSB3aWxsIHN0YXJ0Cj4gPj4+Pj4+Pj4gdXNp bmcgaXQgZm9yIHRoZSB6ZXJvLWNvcHkgY2FzZS4gVGhlcmUgaGFzIGJlZW4gYSBjb3VwbGUgb2Yg bW9yZSBvciBsZXNzCj4gPj4+Pj4+Pj4gaGFja2lzaCBhdHRlbXB0cyB0byBkbyB0aGlzIGJlZm9y ZSwgYW5kIGlmIGl0J3MgYSBfZHJpdmVyXyBpbnRlcmZhY2Ugd2UKPiA+Pj4+Pj4+PiBkb24ndCBu ZWVkIHRvIGJlIHRoYXQgY2FyZWZ1bCBidXQgaWYgaXQgaXMgYSBfZ2VuZXJpY18gaW50ZXJmYWNl IHdlIG5lZWQKPiA+Pj4+Pj4+PiB0byBiZSB2ZXJ5IGNhcmVmdWwgdG8gbWFrZSBpdCBmaXQgKmFs bCogdGhlIGhhcmR3YXJlIG91dCB0aGVyZSBhbmQgdGhhdAo+ID4+Pj4+Pj4+IHdlIG1ha2UgYWxs IHBvdGVudGlhbCB1c2VycyB1c2UgdGhlIGludGVyZmFjZSBpbiBhIHdheSB0aGF0IGNvbmZvcm1z Cj4gPj4+Pj4+Pj4gd2l0aCB0aGUgaW50ZXJmYWNlIHNwZWNpZmljYXRpb24uCj4gPj4+Pj4+Pj4K PiA+Pj4+Pj4+PiBXaGF0IHdpbGwgaGFwcGVuIG90aGVyd2lzZSBpcyB0aGF0IGFwcHMgd3JpdHRl biBmb3IgY29oZXJlbnQgZmFzdAo+ID4+Pj4+Pj4+IGhhcmR3YXJlIG1pZ2h0LCBmb3IgZXhhbXBs ZSwgaWdub3JlIGNhbGxpbmcgdGhlIFNZTkMgYXBpLCBqdXN0IGJlY2F1c2UKPiA+Pj4+Pj4+PiB0 aGUgYXBwIHdyaXRlciBvbmx5IGNhcmVkIGFib3V0IGhpcyBvd24gaGFyZHdhcmUgb24gd2hpY2gg dGhlIGFwcCB3b3Jrcwo+ID4+Pj4+Pj4+IGZpbmUuIFRoYXQgd291bGQgZmFpbCBtaXNlcmFibHkg aWYgdGhlIHNhbWUgYXBwIHdhcyBydW4gb24gaW5jb2hlcmVudAo+ID4+Pj4+Pj4+IGhhcmR3YXJl LCBvciB0aGUgaW5jb2hlcmVudCBoYXJkd2FyZSBkcml2ZXIgbWFpbnRhaW5lcnMgd291bGQgYmUg Zm9yY2VkCj4gPj4+Pj4+Pj4gdG8gYmFzZSBhbiBpbXBsZW1lbnRhdGlvbiBvbiBwYWdlLWZhdWx0 cyB3aGljaCB3b3VsZCBiZSB2ZXJ5IHNsb3cuCj4gPj4+Pj4+Pj4KPiA+Pj4+Pj4+PiBTbyBhc3N1 bWUgdGhlIGZvbGxvd2luZyB1c2UgY2FzZTogQW4gYXBwIHVwZGF0ZXMgYSAxMHgxMCBhcmVhIHVz aW5nIHRoZQo+ID4+Pj4+Pj4+IENQVSBvbiBhIDE2MDB4MTIwMCBkbWEtYnVmLCBhbmQgaXQgd2ls bCB0aGVuIHVzZSB0aGUgZG1hLWJ1ZiBmb3IKPiA+Pj4+Pj4+PiB0ZXh0dXJpbmcuIE9uIHNvbWUg aGFyZHdhcmUgdGhlIGRtYS1idWYgbWlnaHQgYmUgdGlsZWQgaW4gYSB2ZXJ5Cj4gPj4+Pj4+Pj4g c3BlY2lmaWMgd2F5LCBvbiB2bXdnZnggdGhlIGRtYS1idWYgaXMgYSBHUFUgYnVmZmVyIG9uIHRo ZSBob3N0LCBvbmx5Cj4gPj4+Pj4+Pj4gYWNjZXNzaWJsZSB1c2luZyBETUEuIE9uIHZtd2dmeCB0 aGUgU1lOQyBvcGVyYXRpb24gbXVzdCBjYXJyeSBvdXQgYQo+ID4+Pj4+Pj4+IDEweDEwIERNQSBm cm9tIHRoZSBob3N0IEdQVSBidWZmZXIgdG8gYSBndWVzdCBDUFUgYnVmZmVyIGJlZm9yZSB0aGUg Q1BVCj4gPj4+Pj4+Pj4gd3JpdGUgYW5kIGEgRE1BIGJhY2sgYWdhaW4gYWZ0ZXIgdGhlIHdyaXRl LCBiZWZvcmUgR1BVIHVzYWdlLiBPbiB0aGUKPiA+Pj4+Pj4+PiB0aWxlZCBhcmNoaXRlY3R1cmUg dGhlIFNZTkMgb3BlcmF0aW9uIG11c3QgdW50aWxlIGJlZm9yZSBDUFUgYWNjZXNzIGFuZAo+ID4+ Pj4+Pj4+IHByb2JhYmx5IHRpbGUgYWdhaW4gYmVmb3JlIEdQVSBhY2Nlc3MuCj4gPj4+Pj4+Pj4K PiA+Pj4+Pj4+PiBJZiB3ZSBub3cgaGF2ZSBhIG9uZS1kaW1lbnNpb25hbCBTWU5DIGFwaSwgaW4g dGhpcyBwYXJ0aWN1bGFyIGNhc2Ugd2UnZAo+ID4+Pj4+Pj4+IGVpdGhlciBuZWVkIHRvIHN5bmMg YSBmYXIgdG9vIGxhcmdlIGFyZWEgKDE2MDB4MTApIG9yIGNhbGwgU1lOQyAxMCB0aW1lcwo+ID4+ Pj4+Pj4+IGJlZm9yZSB3cml0aW5nLCBhbmQgdGhlbiBhZ2FpbiBhZnRlciB3cml0aW5nLiBJZiB0 aGUgYXBwIGZvcmdvdCB0byBjYWxsCj4gPj4+Pj4+Pj4gU1lOQyB3ZSBtdXN0IGVycm9yLgo+ID4+ Pj4+Pj4+Cj4gPj4+Pj4+Pj4gU28gdG8gc3VtbWFyaXplLCB0aGUgZmFjdCB0aGF0IHRoZSBpbnRl cmZhY2UgaXMgZ2VuZXJpYyBJTU8gbWVhbnM6Cj4gPj4+Pj4+Pj4KPiA+Pj4+Pj4+PiAxKSBBbnkg dXNlciBtdXN0IGJlIGFibGUgdG8gbWFrZSB2YWxpZCBhc3N1bXB0aW9ucyBhYm91dCB0aGUgaW50 ZXJuYWwKPiA+Pj4+Pj4+PiBmb3JtYXQgb2YgdGhlIGRtYS1idWYuICh1bnRpbGVkLCBjb2xvciBm b3JtYXQsIHN0cmlkZSBldGMuKQo+ID4+Pj4+Pj4+IDIpIEFueSB1c2VyICptdXN0KiBjYWxsIFNZ TkMgYmVmb3JlIGFuZCBhZnRlciBDUFUgYWNjZXNzLiBPbiBjb2hlcmVudAo+ID4+Pj4+Pj4+IGFy Y2hpdGVjdHVyZXMsIHRoZSBTWU5DIGlzIGEgTlVMTCBvcGVyYXRpb24gYW55d2F5LCBhbmQgdGhh dCBzaG91bGQgYmUKPiA+Pj4+Pj4+PiBkb2N1bWVudGVkIHNvbWV3aGVyZSBzbyB0aGF0IG1haW50 YWluZXJzIG9mIGRyaXZlcnMgb2YgdW5jb2hlcmVudAo+ID4+Pj4+Pj4+IGFyY2hpdGVjdHVyZXMg aGF2ZSBzb21ld2hlcmUgdG8gcG9pbnQgdGhlaXIgZmluZ2Vycy4KPiA+Pj4+Pj4+PiAzKSBEcml2 ZXItc3BlY2lmaWMgaW1wbGVtZW50YXRpb25zIG11c3QgYmUgYWxsb3dlZCB0byBlcnJvciAoc2Vn ZmF1bHQpCj4gPj4+Pj4+Pj4gaWYgU1lOQyBoYXMgbm90IGJlZW4gdXNlZC4KPiA+Pj4+Pj4+IEkg dGhpbmsgaGVyZSB5b3UgYXJlIHRvbyBsYXgsIHRoZSBjb21tb24gY29kZSBtdXN0IHNlZ2ZhdWx0 IG9yCj4gPj4+Pj4+PiBlcnJvciBiYWRseSBpZiBTWU5DIGhhcyBub3QgYmVlbiB1c2UgaW4gYWxs IGNhc2VzIGV2ZW4gb24gY2FjaGUKPiA+Pj4+Pj4+IGNvaGVyZW50IGFyY2guIFRoZSBkZXZpY2Ug ZHJpdmVyIHN5bmMgY2FsbGJhY2sgY2FuIHN0aWxsIGJlIGEKPiA+Pj4+Pj4+IG5vIG9wZXJhdGlv bi4gQnV0IGkgdGhpbmsgdGhhdCB3ZSBuZWVkIHRvIGluc2lzdCBzdHJvbmdseSBvbiBhCj4gPj4+ Pj4+PiBwcm9wZXIgc3luYyBjYWxsIGJlaW5nIG1hZGUgKGFuZCB3ZSBzaG91bGQgZm9yYmlkIGVt cHR5IGFyZWEKPiA+Pj4+Pj4+IHN5bmMgY2FsbCkuIFRoaXMgd291bGQgYmUgdGhlIG9ubHkgd2F5 IHRvIG1ha2Ugc3VyZSB1c2Vyc3BhY2UKPiA+Pj4+Pj4+IGJlaGF2ZSBwcm9wZXJseSBhcyBvdGhl cndpc2Ugd2UgZW5kdXAgaW4gdGhlIHNpdHVhdGlvbiB5b3Ugd2VyZQo+ID4+Pj4+Pj4gZGVzY3Jp YmluZyBhYm92ZSwgd2hlcmUgdGhlIGFwcCBpcyBkZXNpZ24gb24gYSBjYWNoZSBjb2hlcmVudAo+ ID4+Pj4+Pj4gYXJjaCBhbmQgd29ya3MgZmluZSB0aGVyZSBidXQgYnJva2UgaW4gc3VidGxlIHdh eSBvbiBub24gY2FjaGUKPiA+Pj4+Pj4+IGNvaGVyZW50IGFyY2ggYW5kIGFwcCBkZXZlbG9wZXIg aXMgY2x1ZWxlc3Mgb2Ygd2h5Lgo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+IEkganVzdCBkbyBub3QgdHJ1 c3QgdXNlcnNwYWNlLgo+ID4+Pj4+PiBJIGFncmVlIGFuZCBpZGVhbGx5IGknZCB3YW50IGl0IHRo aXMgd2F5IGFzIHdlbGwuIFRoZSBxdWVzdGlvbiBpcywgaXMgaXQKPiA+Pj4+Pj4gcG9zc2libGU/ IENhbiB0aGlzIGJlIGRvbmUgd2l0aG91dCBhIGZhdWx0KCkgaGFuZGxlciBpbiB0aGUgZ2VuZXJp Ywo+ID4+Pj4+PiBrZXJuZWwgY29kZT8KPiA+Pj4+Pj4KPiA+Pj4+Pj4+PiA0KSBUaGUgdXNlLWNh c2Ugc3RhdGVkIGFib3ZlIGNsZWFybHkgc2hvd3MgdGhlIGJlbmVmaXQgb2YgYQo+ID4+Pj4+Pj4+ IDItZGltZW5zaW9uYWwgc3luYyBpbnRlcmZhY2UgKHdlIHdhbnQgdG8gc3luYyB0aGUgMTB4MTAg cmVnaW9uKSwgYnV0Cj4gPj4+Pj4+Pj4gd2hhdCBpZiBzb21lb25lIGluIHRoZSBmdXR1cmUgd2Fu dHMgdG8gdXNlIHRoaXMgaW50ZXJmYWNlIGZvciBhIDNECj4gPj4+Pj4+Pj4gdGV4dHVyZT8gV2ls bCBhIDJEIHN5bmMgc3VmZmljZT8gQ2FuIHdlIG1ha2UgdGhlIFNZTkMgaW50ZXJmYWNlCj4gPj4+ Pj4+Pj4gZXh0ZW5kYWJsZSBpbiBhIHdheSB0aGF0IGFuIGVudW0gc3luY190eXBlIG1lbWJlciBk ZWZpbmVzIHRoZSBsYXlvdXQgb2YKPiA+Pj4+Pj4+PiB0aGUgYXJndW1lbnQsIGFuZCBpbml0aWFs bHkgd2UgaW1wbGVtZW50IG9ubHkgMWQsIDJkIHN5bmMsIGxlYXZpbmcgM2QKPiA+Pj4+Pj4+PiBm b3IgdGhlIGZ1dHVyZT8KPiA+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+IEFsc28sIEkgYWdyZWUgdGhlcmUg aXMgcHJvYmFibHkgbm8gZ29vZCB3YXkgdG8gZ2VuZXJpY2FsbHkgaW1wbGVtZW50IGFuCj4gPj4+ Pj4+Pj4gZXJyb3IgaWYgU1lOQyBoYXMgbm90IGJlZW4gY2FsbGVkLiBUaGF0IG5lZWRzIHRvIGJl IGxlZnQgYXMgYW4gb3B0aW9uIHRvCj4gPj4+Pj4+Pj4gZHJpdmVycy4KPiA+Pj4+Pj4+IEkgdGhp bmsgdGhlcmUgaXMsIGp1c3QgZm9yYmlkIGFueSBmdXJ0aGVyIHVzZSBvZiB0aGUgZG1hIGJ1ZmZl ciwgbWFyawo+ID4+Pj4+Pj4gaXQgYXMgaW52YWxpZCBhbmQgcHJpbnRrIGEgYmlnIGVycm9yLiBV c2Vyc3BhY2UgYXBwIGRldmVsb3BlciB3aWxsCj4gPj4+Pj4+PiBxdWlja2x5IHNlZSB0aGF0IHNv bWV0aGluZyBpcyB3cm9uZyBhbmQgbG9va2luZyBhdCBrZXJuZWwgbG9nIHNob3VsZAo+ID4+Pj4+ Pj4gZXhwbGFpbiB3aHkuCj4gPj4+Pj4+IFRoZSBwcm9ibGVtIGlzIGlmIHNvbWVvbmUgY2FsbHMg bW1hcCgpIGFuZCB0aGVuIGRlY2lkZXMgdG8gbm90IGFjY2Vzcwo+ID4+Pj4+PiB0aGUgYnVmZmVy IGJlZm9yZSBtdW5tYXAoKSBvciBHUFUgdXNhZ2UuIEhvdyBkbyB3ZSByZWNvZ25pemUgdGhhdCBj YXNlCj4gPj4+Pj4+IGFuZCBzZXBhcmF0ZSBpdCBmcm9tIGEgQ1BVIGFjY2VzcyBvY2N1cmVkIG91 dHNpZGUgYSBzeW5jPyBXZSBjb3VsZCwgYXMKPiA+Pj4+Pj4gbWVudGlvbmVkIGFib3ZlIGhhdmUg YSBmYXVsdCgpIGhhbmRsZXIgaW4gdGhlIGdlbmVyaWMga2VybmVsIGNvZGUgYW5kCj4gPj4+Pj4+ IG1ha2Ugc3VyZSBkcml2ZXJzIGRvbid0IHBvcHVsYXRlIFBURXMgdW50aWwgdGhlIGZpcnN0IGZh dWx0KCkuIEFub3RoZXIKPiA+Pj4+Pj4gb3B0aW9uIHdvdWxkIGJlIHRvIHNjYW4gYWxsIFBURXMg Zm9yIGFuICJhY2Nlc3NlZCIgZmxhZywgYnV0IEknbSBub3QKPiA+Pj4+Pj4gZXZlbiBzdXJlIGFs bCBDUFUgYXJjaGl0ZWN0dXJlcyBoYXZlIHN1Y2ggYSBmbGFnPwo+ID4+Pj4+Pgo+ID4+Pj4+PiBC dXQgdGhlcmUgbWlnaHQgYmUgYSBzaW1wbGVyIHNvbHV0aW9uIHRoYXQgSSBoYXZlIG92ZXJsb29r ZWQ/Cj4gPj4+Pj4gQWxsIGFyY2ggaGF2ZSBhIGRpcnR5IGZsYWcsIHNvIHlvdSBjb3VsZCBjaGVj ayB0aGF0LCBhcyBhbGwgd2UKPiA+Pj4+PiByZWFsbHkgY2FyZSBhYm91dCBpcyBDUFUgd3JpdGUg YWNjZXNzLiBTbyBhbGwgeW91IG5lZWQgaXMgY2xlYXJpbmcKPiA+Pj4+PiB0aGUgZGlydHkgYml0 IGFmdGVyIGVhY2ggc3VjY2Vzc2Z1bGwgR1BVIGNvbW1hbmQgc3RyZWFtIGlvY3RsCj4gPj4+Pj4g YW5kIGNoZWNraW5nIHRoYXQgbm8gZGlydHkgYml0IGlzIHNldCBpbiBhIHJlZ2lvbiBub3QgY292 ZXIgYnkKPiA+Pj4+PiBhIGZsdXNoKCkuIE5vdGUgdGhhdCB0aGUgY2xlYXIgYW5kIGNoZWNrIGNh biBoYXBwZW4gaW4gdGhlIHNhbWUKPiA+Pj4+PiBmdW5jdGlvbiBhcyBwYXJ0IG9mIGJ1ZmZlciB2 YWxpZGF0aW9uIGZvciB0aGUgR1BVIGNvbW1hbmQgc3RyZWFtLgo+ID4+Pj4gQWN0dWFsbHksIEkg ZG8gdGhpbmsgd2UgY2FyZSBhYm91dCByZWFkaW5nIGFzIHdlbGwsIHNpbmNlIHJlYWRpbmcKPiA+ Pj4+IHdpdGhvdXQgZmx1c2hpbmcgYW55dGhpbmcgd3JpdHRlbiBieSB0aGUgR1BVIHdpbGwKPiA+ Pj4+IHlpZWxkIGdhcmJhZ2Ugb24gYSBub24tY29oZXJlbnQgYXJjaGl0ZWN0dXJlLiBJbnN0ZWFk IHdlIG1pZ2h0IGNoZWNrIGZvcgo+ID4+Pj4gdGhlIFBBR0VfQUNDRVNTRUQgYml0Lgo+ID4+PiBJ IGRvIG5vdCB0aGluayB0aGUgcmVhZCBhY2Nlc3MgYWZ0ZXIgR1BVIG1hdHRlci4gSWYgcGVvcGxl IHRoaW5rIGl0IGRvZXMKPiA+Pj4gdGhlbiBpdCBpcyBzaW1wbGUsIGF0IGJ1ZmZlciB2YWxpZGF0 aW9uIGluIGJ1ZmZlciBtYXBwaW5nIHdlIGludmFsaWRhdGUKPiA+Pj4gQ1BVIHBhZ2UgdGFibGUg bWFwcGluZyBhbmQgdGhlIHByZXBhcmUgYWNjZXNzIGlvY3RsIHBvcHVsYXRlIHRoZW0gYWZ0ZXIK PiA+Pj4gY2hlY2tpbmcgdGhhdCBHUFUgaXMgZmx1c2guCj4gPj4+Cj4gPj4+PiBTbyB0aGUgZnVs bCB2ZXJzaW9uIG9mIHRoaXMgd291bGQga2VlcCB0cmFjayBvZiBhbGwgc3luY2VkIHJlZ2lvbnMg YW5kCj4gPj4+PiBhdCBidWZmZXIgdmFsaWRhdGlvbiB0aW1lLCBvciB1bm1hcCB0aW1lIGVycm9y IGlmIHRoZXJlCj4gPj4+PiBpcyBhIHBhZ2UgY29tcGxldGVseSBvdXRzaWRlIHRoZSB1bmlvbiBv ZiBhbGwgc3luY2VkIHJlZ2lvbnMgaW4gYW55IFZNQQo+ID4+Pj4gYmVsb25naW5nIHRvIHRoZSBk bWEtYnVmIGFkZHJlc3Mgc3BhY2UsIHRoZW4gdW5tYXJrIGFsbCBhY2Nlc3NlZCBQVEVzCj4gPj4+ PiBhbmQgaW52YWxpZGF0ZSBUTEJzIGFjY29yZGluZ2x5LCB0eXBpY2FsbHkgY2F1c2luZyBhIGds b2JhbCBUTEIgZmx1c2guCj4gPj4+PiBZZWFoLCB3ZSBjb3VsZCBwcm9iYWJseSBwdXQgdG9nZXRo ZXIgYSBoZWxwZXIgZnVuY3Rpb24gdGhhdCBkb2VzIHRoaXMsCj4gPj4+PiBidXQgaXQgd2lsbCBi ZSBleHBlbnNpdmUgdG8gcnVuIGFuZCB0aGUgd2hvbGUgcG9pbnQgb2YgdGhpcyBBUEkgaXMgdG8g YmUKPiA+Pj4+IGFibGUgdG8gaW1wcm92ZSBwZXJmb3JtYW5jZS4KPiA+Pj4gTm8gbmVlZCBmb3Ig c3VjaCBjb21wbGV4aXR5LCB0aGUgc3luYyBpb2N0bCB3b3VsZCBnbyBvdmVyIHRoZSBwYWdlIHRh YmxlCj4gPj4+IGFuZCBjbGVhciBkaXJ0eSBiaXQgZm9yIGFsbCBwYWdlIGluIHJhbmdlIHRoYXQg aXMgc3luY2hyb25pemVkLiBTbyBvbmNlCj4gPj4+IHlvdSBnZXQgdG8gdGhlIGNvbW1hbmQgaW9j dGwgeW91IGtub3cgdGhhdCBhbGwgZGlydHkgYml0IG11c3QgYmUgY2xlYXIuCj4gPj4+IE5vdGUg dGhpcyBpcyBvbmx5IGEgcGFnZSB0YWJsZSB3YWxrIGluIGFsbCBjYXNlLiBJIGRvIG5vdCBjb25z aWRlciB0aGlzCj4gPj4+IHRvIGJlIHRoYXQgZXhwZW5zaXZlLgo+ID4+Pgo+ID4+Pgo+ID4+IFRo ZSBleHBlbnNpdmUgcGFydCBpcyB0aGUgVExCIGZsdXNoaW5nIGFmdGVyIHRoZSBQVEUgdXBkYXRl LCB3aGljaAo+ID4+IHR5cGljYWxseSBuZWVkcyB0byBiZSBwZXJmb3JtZWQgb24gYWxsIGNvcmVz LiBBbHRob3VnaCB3aXRob3V0IGEKPiA+PiBiZW5jaG1hcmsgSSdtIG5vdCBzdXJlIGhvdyBleHBl bnNpdmUuIEl0IG1pZ2h0IGJlIHRoYXQgaXQgZG9lc24ndAo+ID4+IG1hdHRlci4gQWZ0ZXIgYWxs LCB0aGUgdm13Z2Z4LSBhbmQgSSBiZWxpZXZlIHRoZSBxeGwgZHJpdmVyIGJvdGggdXNlIGEKPiA+ PiBzaW1pbGFyIGFwcHJvYWNoIGZvciBmYmRldiB1c2VyLXNwYWNlIGFjY2VzcywgYnV0IHRoYXQg aGFzIG5ldmVyIGJlZW4KPiA+PiBjb3NpZGVyZWQgcGVyZm9ybWFuY2UtY3JpdGljYWwuLi4KPiA+ IFRoZXJlIGlzIG5vIG5lZWQgdG8gZmx1c2ggdGhlIFRMQiAhIEF0IGxlYXN0IG5vdCBmb3IgdGhl IHdyaXRlIGNhc2UuCj4gPiBDbGVhcmluZyB0aGUgZGlydHkgYml0IGlzIGNhY2hlIGNvaGVyZW50 LiBUTEIgYXJlIGFib3V0IGNhY2hpbmcgcGFnZQo+ID4gdGFibGUgZGlyZWN0b3J5IHRyZWUuIFRv IGNvbnZpbmNlIHlvdXJzZWxmIGxvb2sgYXQgcGFnZV9ta2NsZWFuX29uZSgpCj4gPiBpbiBtbS9y bWFwLmMgd2hpY2gsIGJ5IHRoZSB3YXksIGlzIGFsbW9zdCB3aGF0IHdlIHdhbnQgKHJlbW92ZSB0 aGUgbW11Cj4gPiBub3RpZmllciBwYXJ0IGFuZCB0aGUgd3JpdGUgcHJvdGVjdGlvbiBwYXJ0IGFu ZCBmb3JjZSByZWFsIENQVSBjYWNoZQo+ID4gZmx1c2ggaWYgbmVlZGVkIGJhc2Ugb24gZGV2aWNl IGZsYWcpLgo+IAo+IEhtbT8gTGFzdCB0aW1lIEkgdmlzaXRlZCB0aGlzIGNvZGUsIHBhZ2VfbWtj bGVhbl9vbmUoKSB3YXMgZXZlbnR1YWxseQo+IGNhbGxpbmcgZmx1c2hfdGxiX3BhZ2UoKSB0aHJv dWdoIHB0ZXBfY2xlYXJfZmx1c2hfbm90aWZ5KCkuIEkgd2FzIHVuZGVyCj4gdGhlIGltcHJlc3Np b24gdGhhdCB5b3UgYWx3YXlzIGhhdmUgdG8gZmx1c2ggdGhlIFRMQiB3aGVuIHlvdSBjbGVhciBh Cj4gUFRFIHN0YXR1cyBiaXQsIGJ1dCB0eXBpY2FsbHkgbm90IHdoZW4geW91IHNldCBpdC4gQXJl IHlvdSBzYXlpbmcgdGhhdAo+IHRoYXQncyBub3QgdGhlIGNhc2U/CgpXZWxsIHRoaXMgaXMgdmVy eSBkb3duIHRvIHRoZSBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIG9mIGh3LCBjb25zaWRlcmF0aW9u CmFuZCBteSBtZW1vcnkgaXMgdGhhdCB0aGUgQU1EL0ludGVsIGRvYyBzYXlzIHRoYXQgd3JpdGUg aXMgYSBsb2NrZWQgcmVhZAptb2RpZnkgd3JpdGUgb3BlcmF0aW9uIGllIGl0IGlzIGF0b21pYy4g Tm93IHRoZXJlIGlzIGEgYml0IG9mIHVua25vd24gb24KaG93IGV4YWN0bHkgdGhpcyBoYXBwZW5z IChkb2VzIHRoZSBoYXJkd2FyZSByZXRyYXZlcnNlIHRoZSBmdWxsIGRpcmVjdG9yeQpoaWVyYXJj aHkgPyBkb2VzIGl0IGtlZXBzIGEgcG9pbnRlciB0byB0aGUgcGFnZSB0YWJsZSBlbnRyeSA/IC4u LikuCgpTbyBiYXNpY2x5IHRoaXMgbWVhbnMgdGhhdCBhdCB0aW1lIG9mIHZhbGlkYXRpb24gaWYg YW55IENQVSBkaWQgd3JpdGUgdG8KYW55IHBhZ2UgaW5zaWRlIHRoZSByYW5nZSB3ZSB3b3VsZCBz ZWUgdGhlIGRpcnR5IHNldCwgd2UgZG8gbm90IG5lZWQgdG8KZmx1c2ggYW55dGhpbmcgdG8gc2Vl IHRoYXQgaGFwcGVuaW5nICh1bmxlc3MgdGhpbmdzIGFyZSBtYXBwZWQgd3JpdGUKY29tYmluZSku CgpXZWxsIHRoZXJlIGlzIGEgcmFjZSB3aW5kb3cgaWYgQ1BVIGlzIHdyaXRpbmcgdG8gdGhlIGJ1 ZmZlciB3aGlsZSB3ZSBhcmUKZG9pbmcgdGhlIHZhbGlkYXRpb24gb24gYW5vdGhlciBDUFUuIEJ1 dCB0aGVyZSBpcyBubyB3YXkgYXJvdW5kIHRoYXQgcmFjZQpleGNlcHQgdG8gdW5tYXAgYW5kIGZs dXNoIFRMQi4gV2hpY2ggaXMgbm90IHdoYXQgd2Ugd2FudC4KCk5vdywgdGhlcmUgaXMgc29tZXRo aW5nIGkgYW0gbm90IHN1cmUsIGRvZXMgQ1BVIGtlZXAgVExCIGVudHJ5IGFyb3VuZAp3aXRoIGRp cnR5IGJpdCBzZXQgYW5kIGRvIG5vdCByZWRvIHRoZSBSTVcgbG9ja2VkIHNlcXVlbmNlLCBvciBk b2VzIGl0CmRvIHRoZSBSTVcgbG9ja2VkIHNlcXVlbmNlIGV2ZXJ5dGltZSBpdCB3cml0ZSB0byBh IGNhY2hlbGluZS4gSSB3b3VsZApndWVzcyB0aGUgZm9ybWVyIGlmIG9ubHkgZm9yIHBlcmYgcmVh c29ucy4gSW4gdGhpcyBjYXNlIHdlIHdvdWxkIG5lZWQKVExCIGZsdXNoIGJ1dCBsaW51eCBrZXJu ZWwgYWxyZWFkeSBvZmZlciBoZWxwZXJzIHRvIG9wdGltaXplIHRoaXMgYXdheS4KCgpBbGwgdGhp cyBraW5kIG9mIG1ha2UgbWUgdGhpbmsgdGhhdCB0aGVyZSBpcyBubyBzYW5lIHdheSBhcm91bmQg dGhpcy4KSSBtZWFuIHdlIGFyZSB0cnlpbmcgdG8gd29yayBhcm91bmQgcG90ZW50aWFseSBicm9r ZW4gdXNlcnNwYWNlIG1vc3RseQpiZWNhdXNlIG1vc3Qgb2YgdGhlIEdQVSBkcml2ZXIgaXMgaW4g dXNlcnNwYWNlIGFuZCB3ZSBjYW4ndCB0cnVzdCBpdC4KSSB0aGluayB0aGlzIGlzIGp1c3QgYSBs b3N0IGJhdHRsZSBhbmQgaXQgd291bGQgYmUgYmV0dGVyIHRvIGp1c3QKcHJvdmlkZSB0aGUgQVBJ IGFuZCBzYXlzIHRoYXQgeW91IG11c3Qgc3luYyBhbmQgdXNlcnNwYWNlIHRoYXQgZG8gbm90Cndp bGwgZ2V0IHRvIGJlYXIgdGhlIGNvbnNlcXVlbmNlIHNvb25lciBvciBsYXR0ZXIuCgpDaGVlcnMs CkrDqXLDtG1lCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==