From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jerome Glisse Subject: Re: about mmap dma-buf and sync Date: Fri, 21 Aug 2015 09:32:22 -0400 Message-ID: <20150821133221.GA3244@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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qk0-f180.google.com (mail-qk0-f180.google.com [209.85.220.180]) by gabe.freedesktop.org (Postfix) with ESMTPS id 985A66E61C for ; Fri, 21 Aug 2015 06:32:32 -0700 (PDT) Received: by qkfh127 with SMTP id h127so31581199qkf.1 for ; Fri, 21 Aug 2015 06:32:31 -0700 (PDT) Content-Disposition: inline In-Reply-To: <55D6B633.2070103@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 T24gRnJpLCBBdWcgMjEsIDIwMTUgYXQgMDc6MjU6MDdBTSArMDIwMCwgVGhvbWFzIEhlbGxzdHJv bSB3cm90ZToKPiBPbiAwOC8yMC8yMDE1IDEwOjM0IFBNLCBKZXJvbWUgR2xpc3NlIHdyb3RlOgo+ ID4gT24gVGh1LCBBdWcgMjAsIDIwMTUgYXQgMDk6Mzk6MTJQTSArMDIwMCwgVGhvbWFzIEhlbGxz dHJvbSB3cm90ZToKPiA+PiBPbiAwOC8yMC8yMDE1IDA0OjUzIFBNLCBKZXJvbWUgR2xpc3NlIHdy b3RlOgo+ID4+PiBPbiBUaHUsIEF1ZyAyMCwgMjAxNSBhdCAwODo0ODoyM0FNICswMjAwLCBUaG9t YXMgSGVsbHN0cm9tIHdyb3RlOgo+ID4+Pj4gSGksIFRpYWdvIQo+ID4+Pj4KPiA+Pj4+IE9uIDA4 LzIwLzIwMTUgMTI6MzMgQU0sIFRpYWdvIFZpZ25hdHRpIHdyb3RlOgo+ID4+Pj4+IEhleSBUaG9t YXMsIHlvdSBoYXZlbid0IGFuc3dlcmVkIG15IGVtYWlsIGFib3V0IG1ha2luZyBTWU5DXyogbWFu ZGF0b3J5Ogo+ID4+Pj4+Cj4gPj4+Pj4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNo aXZlcy9kcmktZGV2ZWwvMjAxNS1BdWd1c3QvMDg4Mzc2Lmh0bWwKPiA+Pj4+IEhtbSwgZm9yIHNv bWUgcmVhc29uIGl0IGRvZXNuJ3Qgc2hvdyB1cCBpbiBteSBtYWlsIGFwcCwgYnV0IEkgZm91bmQg aXQKPiA+Pj4+IGluIHRoZSBhcmNoaXZlcy4gQW4gYXR0ZW1wdCB0byBleHBsYWluIHRoZSBzaXR1 YXRpb24gZnJvbSB0aGUgdm13Z2Z4Cj4gPj4+PiBwZXJzcGVjdGl2ZS4KPiA+Pj4+Cj4gPj4+PiBU aGUgZmFjdCB0aGF0IHRoZSBpbnRlcmZhY2UgaXMgZ2VuZXJpYyBtZWFucyB0aGF0IHBlb3BsZSB3 aWxsIHN0YXJ0Cj4gPj4+PiB1c2luZyBpdCBmb3IgdGhlIHplcm8tY29weSBjYXNlLiBUaGVyZSBo YXMgYmVlbiBhIGNvdXBsZSBvZiBtb3JlIG9yIGxlc3MKPiA+Pj4+IGhhY2tpc2ggYXR0ZW1wdHMg dG8gZG8gdGhpcyBiZWZvcmUsIGFuZCBpZiBpdCdzIGEgX2RyaXZlcl8gaW50ZXJmYWNlIHdlCj4g Pj4+PiBkb24ndCBuZWVkIHRvIGJlIHRoYXQgY2FyZWZ1bCBidXQgaWYgaXQgaXMgYSBfZ2VuZXJp Y18gaW50ZXJmYWNlIHdlIG5lZWQKPiA+Pj4+IHRvIGJlIHZlcnkgY2FyZWZ1bCB0byBtYWtlIGl0 IGZpdCAqYWxsKiB0aGUgaGFyZHdhcmUgb3V0IHRoZXJlIGFuZCB0aGF0Cj4gPj4+PiB3ZSBtYWtl IGFsbCBwb3RlbnRpYWwgdXNlcnMgdXNlIHRoZSBpbnRlcmZhY2UgaW4gYSB3YXkgdGhhdCBjb25m b3Jtcwo+ID4+Pj4gd2l0aCB0aGUgaW50ZXJmYWNlIHNwZWNpZmljYXRpb24uCj4gPj4+Pgo+ID4+ Pj4gV2hhdCB3aWxsIGhhcHBlbiBvdGhlcndpc2UgaXMgdGhhdCBhcHBzIHdyaXR0ZW4gZm9yIGNv aGVyZW50IGZhc3QKPiA+Pj4+IGhhcmR3YXJlIG1pZ2h0LCBmb3IgZXhhbXBsZSwgaWdub3JlIGNh bGxpbmcgdGhlIFNZTkMgYXBpLCBqdXN0IGJlY2F1c2UKPiA+Pj4+IHRoZSBhcHAgd3JpdGVyIG9u bHkgY2FyZWQgYWJvdXQgaGlzIG93biBoYXJkd2FyZSBvbiB3aGljaCB0aGUgYXBwIHdvcmtzCj4g Pj4+PiBmaW5lLiBUaGF0IHdvdWxkIGZhaWwgbWlzZXJhYmx5IGlmIHRoZSBzYW1lIGFwcCB3YXMg cnVuIG9uIGluY29oZXJlbnQKPiA+Pj4+IGhhcmR3YXJlLCBvciB0aGUgaW5jb2hlcmVudCBoYXJk d2FyZSBkcml2ZXIgbWFpbnRhaW5lcnMgd291bGQgYmUgZm9yY2VkCj4gPj4+PiB0byBiYXNlIGFu IGltcGxlbWVudGF0aW9uIG9uIHBhZ2UtZmF1bHRzIHdoaWNoIHdvdWxkIGJlIHZlcnkgc2xvdy4K PiA+Pj4+Cj4gPj4+PiBTbyBhc3N1bWUgdGhlIGZvbGxvd2luZyB1c2UgY2FzZTogQW4gYXBwIHVw ZGF0ZXMgYSAxMHgxMCBhcmVhIHVzaW5nIHRoZQo+ID4+Pj4gQ1BVIG9uIGEgMTYwMHgxMjAwIGRt YS1idWYsIGFuZCBpdCB3aWxsIHRoZW4gdXNlIHRoZSBkbWEtYnVmIGZvcgo+ID4+Pj4gdGV4dHVy aW5nLiBPbiBzb21lIGhhcmR3YXJlIHRoZSBkbWEtYnVmIG1pZ2h0IGJlIHRpbGVkIGluIGEgdmVy eQo+ID4+Pj4gc3BlY2lmaWMgd2F5LCBvbiB2bXdnZnggdGhlIGRtYS1idWYgaXMgYSBHUFUgYnVm ZmVyIG9uIHRoZSBob3N0LCBvbmx5Cj4gPj4+PiBhY2Nlc3NpYmxlIHVzaW5nIERNQS4gT24gdm13 Z2Z4IHRoZSBTWU5DIG9wZXJhdGlvbiBtdXN0IGNhcnJ5IG91dCBhCj4gPj4+PiAxMHgxMCBETUEg ZnJvbSB0aGUgaG9zdCBHUFUgYnVmZmVyIHRvIGEgZ3Vlc3QgQ1BVIGJ1ZmZlciBiZWZvcmUgdGhl IENQVQo+ID4+Pj4gd3JpdGUgYW5kIGEgRE1BIGJhY2sgYWdhaW4gYWZ0ZXIgdGhlIHdyaXRlLCBi ZWZvcmUgR1BVIHVzYWdlLiBPbiB0aGUKPiA+Pj4+IHRpbGVkIGFyY2hpdGVjdHVyZSB0aGUgU1lO QyBvcGVyYXRpb24gbXVzdCB1bnRpbGUgYmVmb3JlIENQVSBhY2Nlc3MgYW5kCj4gPj4+PiBwcm9i YWJseSB0aWxlIGFnYWluIGJlZm9yZSBHUFUgYWNjZXNzLgo+ID4+Pj4KPiA+Pj4+IElmIHdlIG5v dyBoYXZlIGEgb25lLWRpbWVuc2lvbmFsIFNZTkMgYXBpLCBpbiB0aGlzIHBhcnRpY3VsYXIgY2Fz ZSB3ZSdkCj4gPj4+PiBlaXRoZXIgbmVlZCB0byBzeW5jIGEgZmFyIHRvbyBsYXJnZSBhcmVhICgx NjAweDEwKSBvciBjYWxsIFNZTkMgMTAgdGltZXMKPiA+Pj4+IGJlZm9yZSB3cml0aW5nLCBhbmQg dGhlbiBhZ2FpbiBhZnRlciB3cml0aW5nLiBJZiB0aGUgYXBwIGZvcmdvdCB0byBjYWxsCj4gPj4+ PiBTWU5DIHdlIG11c3QgZXJyb3IuCj4gPj4+Pgo+ID4+Pj4gU28gdG8gc3VtbWFyaXplLCB0aGUg ZmFjdCB0aGF0IHRoZSBpbnRlcmZhY2UgaXMgZ2VuZXJpYyBJTU8gbWVhbnM6Cj4gPj4+Pgo+ID4+ Pj4gMSkgQW55IHVzZXIgbXVzdCBiZSBhYmxlIHRvIG1ha2UgdmFsaWQgYXNzdW1wdGlvbnMgYWJv dXQgdGhlIGludGVybmFsCj4gPj4+PiBmb3JtYXQgb2YgdGhlIGRtYS1idWYuICh1bnRpbGVkLCBj b2xvciBmb3JtYXQsIHN0cmlkZSBldGMuKQo+ID4+Pj4gMikgQW55IHVzZXIgKm11c3QqIGNhbGwg U1lOQyBiZWZvcmUgYW5kIGFmdGVyIENQVSBhY2Nlc3MuIE9uIGNvaGVyZW50Cj4gPj4+PiBhcmNo aXRlY3R1cmVzLCB0aGUgU1lOQyBpcyBhIE5VTEwgb3BlcmF0aW9uIGFueXdheSwgYW5kIHRoYXQg c2hvdWxkIGJlCj4gPj4+PiBkb2N1bWVudGVkIHNvbWV3aGVyZSBzbyB0aGF0IG1haW50YWluZXJz IG9mIGRyaXZlcnMgb2YgdW5jb2hlcmVudAo+ID4+Pj4gYXJjaGl0ZWN0dXJlcyBoYXZlIHNvbWV3 aGVyZSB0byBwb2ludCB0aGVpciBmaW5nZXJzLgo+ID4+Pj4gMykgRHJpdmVyLXNwZWNpZmljIGlt cGxlbWVudGF0aW9ucyBtdXN0IGJlIGFsbG93ZWQgdG8gZXJyb3IgKHNlZ2ZhdWx0KQo+ID4+Pj4g aWYgU1lOQyBoYXMgbm90IGJlZW4gdXNlZC4KPiA+Pj4gSSB0aGluayBoZXJlIHlvdSBhcmUgdG9v IGxheCwgdGhlIGNvbW1vbiBjb2RlIG11c3Qgc2VnZmF1bHQgb3IKPiA+Pj4gZXJyb3IgYmFkbHkg aWYgU1lOQyBoYXMgbm90IGJlZW4gdXNlIGluIGFsbCBjYXNlcyBldmVuIG9uIGNhY2hlCj4gPj4+ IGNvaGVyZW50IGFyY2guIFRoZSBkZXZpY2UgZHJpdmVyIHN5bmMgY2FsbGJhY2sgY2FuIHN0aWxs IGJlIGEKPiA+Pj4gbm8gb3BlcmF0aW9uLiBCdXQgaSB0aGluayB0aGF0IHdlIG5lZWQgdG8gaW5z aXN0IHN0cm9uZ2x5IG9uIGEKPiA+Pj4gcHJvcGVyIHN5bmMgY2FsbCBiZWluZyBtYWRlIChhbmQg d2Ugc2hvdWxkIGZvcmJpZCBlbXB0eSBhcmVhCj4gPj4+IHN5bmMgY2FsbCkuIFRoaXMgd291bGQg YmUgdGhlIG9ubHkgd2F5IHRvIG1ha2Ugc3VyZSB1c2Vyc3BhY2UKPiA+Pj4gYmVoYXZlIHByb3Bl cmx5IGFzIG90aGVyd2lzZSB3ZSBlbmR1cCBpbiB0aGUgc2l0dWF0aW9uIHlvdSB3ZXJlCj4gPj4+ IGRlc2NyaWJpbmcgYWJvdmUsIHdoZXJlIHRoZSBhcHAgaXMgZGVzaWduIG9uIGEgY2FjaGUgY29o ZXJlbnQKPiA+Pj4gYXJjaCBhbmQgd29ya3MgZmluZSB0aGVyZSBidXQgYnJva2UgaW4gc3VidGxl IHdheSBvbiBub24gY2FjaGUKPiA+Pj4gY29oZXJlbnQgYXJjaCBhbmQgYXBwIGRldmVsb3BlciBp cyBjbHVlbGVzcyBvZiB3aHkuCj4gPj4+Cj4gPj4+IEkganVzdCBkbyBub3QgdHJ1c3QgdXNlcnNw YWNlLgo+ID4+IEkgYWdyZWUgYW5kIGlkZWFsbHkgaSdkIHdhbnQgaXQgdGhpcyB3YXkgYXMgd2Vs bC4gVGhlIHF1ZXN0aW9uIGlzLCBpcyBpdAo+ID4+IHBvc3NpYmxlPyBDYW4gdGhpcyBiZSBkb25l IHdpdGhvdXQgYSBmYXVsdCgpIGhhbmRsZXIgaW4gdGhlIGdlbmVyaWMKPiA+PiBrZXJuZWwgY29k ZT8KPiA+Pgo+ID4+Pj4gNCkgVGhlIHVzZS1jYXNlIHN0YXRlZCBhYm92ZSBjbGVhcmx5IHNob3dz IHRoZSBiZW5lZml0IG9mIGEKPiA+Pj4+IDItZGltZW5zaW9uYWwgc3luYyBpbnRlcmZhY2UgKHdl IHdhbnQgdG8gc3luYyB0aGUgMTB4MTAgcmVnaW9uKSwgYnV0Cj4gPj4+PiB3aGF0IGlmIHNvbWVv bmUgaW4gdGhlIGZ1dHVyZSB3YW50cyB0byB1c2UgdGhpcyBpbnRlcmZhY2UgZm9yIGEgM0QKPiA+ Pj4+IHRleHR1cmU/IFdpbGwgYSAyRCBzeW5jIHN1ZmZpY2U/IENhbiB3ZSBtYWtlIHRoZSBTWU5D IGludGVyZmFjZQo+ID4+Pj4gZXh0ZW5kYWJsZSBpbiBhIHdheSB0aGF0IGFuIGVudW0gc3luY190 eXBlIG1lbWJlciBkZWZpbmVzIHRoZSBsYXlvdXQgb2YKPiA+Pj4+IHRoZSBhcmd1bWVudCwgYW5k IGluaXRpYWxseSB3ZSBpbXBsZW1lbnQgb25seSAxZCwgMmQgc3luYywgbGVhdmluZyAzZAo+ID4+ Pj4gZm9yIHRoZSBmdXR1cmU/Cj4gPj4+Pgo+ID4+Pj4gQWxzbywgSSBhZ3JlZSB0aGVyZSBpcyBw cm9iYWJseSBubyBnb29kIHdheSB0byBnZW5lcmljYWxseSBpbXBsZW1lbnQgYW4KPiA+Pj4+IGVy cm9yIGlmIFNZTkMgaGFzIG5vdCBiZWVuIGNhbGxlZC4gVGhhdCBuZWVkcyB0byBiZSBsZWZ0IGFz IGFuIG9wdGlvbiB0bwo+ID4+Pj4gZHJpdmVycy4KPiA+Pj4gSSB0aGluayB0aGVyZSBpcywganVz dCBmb3JiaWQgYW55IGZ1cnRoZXIgdXNlIG9mIHRoZSBkbWEgYnVmZmVyLCBtYXJrCj4gPj4+IGl0 IGFzIGludmFsaWQgYW5kIHByaW50ayBhIGJpZyBlcnJvci4gVXNlcnNwYWNlIGFwcCBkZXZlbG9w ZXIgd2lsbAo+ID4+PiBxdWlja2x5IHNlZSB0aGF0IHNvbWV0aGluZyBpcyB3cm9uZyBhbmQgbG9v a2luZyBhdCBrZXJuZWwgbG9nIHNob3VsZAo+ID4+PiBleHBsYWluIHdoeS4KPiA+PiBUaGUgcHJv YmxlbSBpcyBpZiBzb21lb25lIGNhbGxzIG1tYXAoKSBhbmQgdGhlbiBkZWNpZGVzIHRvIG5vdCBh Y2Nlc3MKPiA+PiB0aGUgYnVmZmVyIGJlZm9yZSBtdW5tYXAoKSBvciBHUFUgdXNhZ2UuIEhvdyBk byB3ZSByZWNvZ25pemUgdGhhdCBjYXNlCj4gPj4gYW5kIHNlcGFyYXRlIGl0IGZyb20gYSBDUFUg YWNjZXNzIG9jY3VyZWQgb3V0c2lkZSBhIHN5bmM/IFdlIGNvdWxkLCBhcwo+ID4+IG1lbnRpb25l ZCBhYm92ZSBoYXZlIGEgZmF1bHQoKSBoYW5kbGVyIGluIHRoZSBnZW5lcmljIGtlcm5lbCBjb2Rl IGFuZAo+ID4+IG1ha2Ugc3VyZSBkcml2ZXJzIGRvbid0IHBvcHVsYXRlIFBURXMgdW50aWwgdGhl IGZpcnN0IGZhdWx0KCkuIEFub3RoZXIKPiA+PiBvcHRpb24gd291bGQgYmUgdG8gc2NhbiBhbGwg UFRFcyBmb3IgYW4gImFjY2Vzc2VkIiBmbGFnLCBidXQgSSdtIG5vdAo+ID4+IGV2ZW4gc3VyZSBh bGwgQ1BVIGFyY2hpdGVjdHVyZXMgaGF2ZSBzdWNoIGEgZmxhZz8KPiA+Pgo+ID4+IEJ1dCB0aGVy ZSBtaWdodCBiZSBhIHNpbXBsZXIgc29sdXRpb24gdGhhdCBJIGhhdmUgb3Zlcmxvb2tlZD8KPiA+ IEFsbCBhcmNoIGhhdmUgYSBkaXJ0eSBmbGFnLCBzbyB5b3UgY291bGQgY2hlY2sgdGhhdCwgYXMg YWxsIHdlCj4gPiByZWFsbHkgY2FyZSBhYm91dCBpcyBDUFUgd3JpdGUgYWNjZXNzLiBTbyBhbGwg eW91IG5lZWQgaXMgY2xlYXJpbmcKPiA+IHRoZSBkaXJ0eSBiaXQgYWZ0ZXIgZWFjaCBzdWNjZXNz ZnVsbCBHUFUgY29tbWFuZCBzdHJlYW0gaW9jdGwKPiA+IGFuZCBjaGVja2luZyB0aGF0IG5vIGRp cnR5IGJpdCBpcyBzZXQgaW4gYSByZWdpb24gbm90IGNvdmVyIGJ5Cj4gPiBhIGZsdXNoKCkuIE5v dGUgdGhhdCB0aGUgY2xlYXIgYW5kIGNoZWNrIGNhbiBoYXBwZW4gaW4gdGhlIHNhbWUKPiA+IGZ1 bmN0aW9uIGFzIHBhcnQgb2YgYnVmZmVyIHZhbGlkYXRpb24gZm9yIHRoZSBHUFUgY29tbWFuZCBz dHJlYW0uCj4gCj4gQWN0dWFsbHksIEkgZG8gdGhpbmsgd2UgY2FyZSBhYm91dCByZWFkaW5nIGFz IHdlbGwsIHNpbmNlIHJlYWRpbmcKPiB3aXRob3V0IGZsdXNoaW5nIGFueXRoaW5nIHdyaXR0ZW4g YnkgdGhlIEdQVSB3aWxsCj4geWllbGQgZ2FyYmFnZSBvbiBhIG5vbi1jb2hlcmVudCBhcmNoaXRl Y3R1cmUuIEluc3RlYWQgd2UgbWlnaHQgY2hlY2sgZm9yCj4gdGhlIFBBR0VfQUNDRVNTRUQgYml0 LgoKSSBkbyBub3QgdGhpbmsgdGhlIHJlYWQgYWNjZXNzIGFmdGVyIEdQVSBtYXR0ZXIuIElmIHBl b3BsZSB0aGluayBpdCBkb2VzCnRoZW4gaXQgaXMgc2ltcGxlLCBhdCBidWZmZXIgdmFsaWRhdGlv biBpbiBidWZmZXIgbWFwcGluZyB3ZSBpbnZhbGlkYXRlCkNQVSBwYWdlIHRhYmxlIG1hcHBpbmcg YW5kIHRoZSBwcmVwYXJlIGFjY2VzcyBpb2N0bCBwb3B1bGF0ZSB0aGVtIGFmdGVyCmNoZWNraW5n IHRoYXQgR1BVIGlzIGZsdXNoLgoKPiAKPiBTbyB0aGUgZnVsbCB2ZXJzaW9uIG9mIHRoaXMgd291 bGQga2VlcCB0cmFjayBvZiBhbGwgc3luY2VkIHJlZ2lvbnMgYW5kCj4gYXQgYnVmZmVyIHZhbGlk YXRpb24gdGltZSwgb3IgdW5tYXAgdGltZSBlcnJvciBpZiB0aGVyZQo+IGlzIGEgcGFnZSBjb21w bGV0ZWx5IG91dHNpZGUgdGhlIHVuaW9uIG9mIGFsbCBzeW5jZWQgcmVnaW9ucyBpbiBhbnkgVk1B Cj4gYmVsb25naW5nIHRvIHRoZSBkbWEtYnVmIGFkZHJlc3Mgc3BhY2UsIHRoZW4gdW5tYXJrIGFs bCBhY2Nlc3NlZCBQVEVzCj4gYW5kIGludmFsaWRhdGUgVExCcyBhY2NvcmRpbmdseSwgdHlwaWNh bGx5IGNhdXNpbmcgYSBnbG9iYWwgVExCIGZsdXNoLgo+IFllYWgsIHdlIGNvdWxkIHByb2JhYmx5 IHB1dCB0b2dldGhlciBhIGhlbHBlciBmdW5jdGlvbiB0aGF0IGRvZXMgdGhpcywKPiBidXQgaXQg d2lsbCBiZSBleHBlbnNpdmUgdG8gcnVuIGFuZCB0aGUgd2hvbGUgcG9pbnQgb2YgdGhpcyBBUEkg aXMgdG8gYmUKPiBhYmxlIHRvIGltcHJvdmUgcGVyZm9ybWFuY2UuCgpObyBuZWVkIGZvciBzdWNo IGNvbXBsZXhpdHksIHRoZSBzeW5jIGlvY3RsIHdvdWxkIGdvIG92ZXIgdGhlIHBhZ2UgdGFibGUK YW5kIGNsZWFyIGRpcnR5IGJpdCBmb3IgYWxsIHBhZ2UgaW4gcmFuZ2UgdGhhdCBpcyBzeW5jaHJv bml6ZWQuIFNvIG9uY2UKeW91IGdldCB0byB0aGUgY29tbWFuZCBpb2N0bCB5b3Uga25vdyB0aGF0 IGFsbCBkaXJ0eSBiaXQgbXVzdCBiZSBjbGVhci4KTm90ZSB0aGlzIGlzIG9ubHkgYSBwYWdlIHRh YmxlIHdhbGsgaW4gYWxsIGNhc2UuIEkgZG8gbm90IGNvbnNpZGVyIHRoaXMKdG8gYmUgdGhhdCBl eHBlbnNpdmUuCgo+IAo+IElNTyB3ZSBzaG91bGQgcHJvYmFibHkgZG8gdGhpcyBhbmQgYWZ0ZXIg cmVsZXZhbnQgcGVyZm9ybWFuY2UgdGVzdGluZwo+IGRlY2lkZSB3aGV0aGVyIHRvIGVpdGhlciBl eHBvc2UgYSB3YXkgdG8gdHVybiBpdCBvZmYsIGVpdGhlciB1c2luZyBhCj4gY29tcGlsZS10aW1l IG9wdGlvbiBvciBydW4tdGltZSwgbGlrZSBhIGZsYWcgaW4gdGhlIFNZTkMgaW9jdGwuCgpGbGFn IGluIHRoZSBzeW5jIGlvY3RsIGlzIGJhZCBJTUhPIGFzIGkgYW0gc3VyZSB1c2Vyc3BhY2Ugd2ls bCBhYnVzZSBpdC4KR2l2ZW4gb3JpZ2luYWwgZGVzY3JpcHRpb24gd2hlcmUgdGhlIGJ1ZmZlciBv YmplY3QgaXMgYWxsb2NhdGVkIGJ5IGEKcHJpdmlsZWdlIHVzZXJzcGFjZSBzcGFjZSBwcm9jZXNz LCBpIHdvdWxkIHJhdGhlciBhZGQgYSBkZXZpY2Ugc3BlY2lmaWMKaW9jdGwgYW5kIHRodXMgcHJp dmlsZWdlIHVzZXJzcGFjZSB0aGF0IGtub3dzIGFib3V0IHRoZSBodyBjYW4gY2FsbCB0aGF0Cmlv Y3RsIHRvIGRpc2FibGUgc3luYyBhbGxvd2luZyBwbGF0Zm9ybSB0aGF0IGFyZSBjYWNoZSBjb2hl cmVudCB0byBub3QKcGF5IHRoZSBwcmljZS4gQnV0IHRoaXMgd291bGQgbGVhdmUgb3BlbiB0aGUg ZG9vciBmb3IgYXBwbGljYXRpb24gdG8gcmVseQpvbiBhIHNwZWNpZmljIHBsYXRmb3JtIGJlaGF2 aW9yLgoKSSB3b3VsZCByYXRoZXIgZmlyc3Qgc2VlIGJlbmNobWFyayB0byBjb21wYXJlIGNvc3Qg b2YgZG9pbmcgc3luYyBjaGVjawphbmQgbm90IGRvaW5nIGl0LiBJIHdvdWxkIGxpa2UgdG8gdGhp bmsgdGhhdCB0aGUgcGFnZSB0YWJsZSBjaGVjayB3b3VsZApiZSBidXJyeSBpbiB0aGUgbm9pc2Uu CgpDaGVlcnMsCkrDqXLDtG1lCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJp LWRldmVsCg==