From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Hellstrom Subject: Re: about mmap dma-buf and sync Date: Sat, 22 Aug 2015 00:00:21 +0200 Message-ID: <55D79F75.5040007@vmware.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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from smtp-outbound-1.vmware.com (smtp-outbound-1.vmware.com [208.91.2.12]) by gabe.freedesktop.org (Postfix) with ESMTPS id CA5A56E063 for ; Fri, 21 Aug 2015 15:00:30 -0700 (PDT) Received: from sc9-mailhost3.vmware.com (sc9-mailhost3.vmware.com [10.113.161.73]) by smtp-outbound-1.vmware.com (Postfix) with ESMTP id D933A283BE for ; Fri, 21 Aug 2015 15:02:45 -0700 (PDT) Received: from EX13-CAS-003.vmware.com (ex13-cas-003.vmware.com [10.113.191.53]) by sc9-mailhost3.vmware.com (Postfix) with ESMTP id B5C05406E7 for ; Fri, 21 Aug 2015 15:00:28 -0700 (PDT) In-Reply-To: <20150821160024.GC3244@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gMDgvMjEvMjAxNSAwNjowMCBQTSwgSmVyb21lIEdsaXNzZSB3cm90ZToKPiBPbiBGcmksIEF1 ZyAyMSwgMjAxNSBhdCAwNDoxNTo1M1BNICswMjAwLCBUaG9tYXMgSGVsbHN0cm9tIHdyb3RlOgo+ PiBPbiAwOC8yMS8yMDE1IDAzOjMyIFBNLCBKZXJvbWUgR2xpc3NlIHdyb3RlOgo+Pj4gT24gRnJp LCBBdWcgMjEsIDIwMTUgYXQgMDc6MjU6MDdBTSArMDIwMCwgVGhvbWFzIEhlbGxzdHJvbSB3cm90 ZToKPj4+PiBPbiAwOC8yMC8yMDE1IDEwOjM0IFBNLCBKZXJvbWUgR2xpc3NlIHdyb3RlOgo+Pj4+ PiBPbiBUaHUsIEF1ZyAyMCwgMjAxNSBhdCAwOTozOToxMlBNICswMjAwLCBUaG9tYXMgSGVsbHN0 cm9tIHdyb3RlOgo+Pj4+Pj4gT24gMDgvMjAvMjAxNSAwNDo1MyBQTSwgSmVyb21lIEdsaXNzZSB3 cm90ZToKPj4+Pj4+PiBPbiBUaHUsIEF1ZyAyMCwgMjAxNSBhdCAwODo0ODoyM0FNICswMjAwLCBU aG9tYXMgSGVsbHN0cm9tIHdyb3RlOgo+Pj4+Pj4+PiBIaSwgVGlhZ28hCj4+Pj4+Pj4+Cj4+Pj4+ Pj4+IE9uIDA4LzIwLzIwMTUgMTI6MzMgQU0sIFRpYWdvIFZpZ25hdHRpIHdyb3RlOgo+Pj4+Pj4+ Pj4gSGV5IFRob21hcywgeW91IGhhdmVuJ3QgYW5zd2VyZWQgbXkgZW1haWwgYWJvdXQgbWFraW5n IFNZTkNfKiBtYW5kYXRvcnk6Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gaHR0cHM6Ly91cmxkZWZlbnNl LnByb29mcG9pbnQuY29tL3YyL3VybD91PWh0dHAtM0FfX2xpc3RzLmZyZWVkZXNrdG9wLm9yZ19h cmNoaXZlc19kcmktMkRkZXZlbF8yMDE1LTJEQXVndXN0XzA4ODM3Ni5odG1sJmQ9QlFJREF3JmM9 U3FjbDBFejZNMFg4YWVNNjdMS0lpREpBWFZlQXctWWloVk1OdFh0LXVFcyZyPXZwdWtQa0J0cG9O UXAySVVLdUZ2aU9tUE5ZV1ZLbWVuM0plZXU1NXptRUEmbT1FWDN3OFBNNzlONXFMZVh5b2dlU1BO OUo1cEl2QlY2SUtyaEJqendKREVNJnM9UzNOcUYwa1BOdEJLUTMtV2lmZkwyVDlORks5NlhCcDU2 dmtiM3VqZi1pbyZlPSAKPj4+Pj4+Pj4gSG1tLCBmb3Igc29tZSByZWFzb24gaXQgZG9lc24ndCBz aG93IHVwIGluIG15IG1haWwgYXBwLCBidXQgSSBmb3VuZCBpdAo+Pj4+Pj4+PiBpbiB0aGUgYXJj aGl2ZXMuIEFuIGF0dGVtcHQgdG8gZXhwbGFpbiB0aGUgc2l0dWF0aW9uIGZyb20gdGhlIHZtd2dm eAo+Pj4+Pj4+PiBwZXJzcGVjdGl2ZS4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gVGhlIGZhY3QgdGhhdCB0 aGUgaW50ZXJmYWNlIGlzIGdlbmVyaWMgbWVhbnMgdGhhdCBwZW9wbGUgd2lsbCBzdGFydAo+Pj4+ Pj4+PiB1c2luZyBpdCBmb3IgdGhlIHplcm8tY29weSBjYXNlLiBUaGVyZSBoYXMgYmVlbiBhIGNv dXBsZSBvZiBtb3JlIG9yIGxlc3MKPj4+Pj4+Pj4gaGFja2lzaCBhdHRlbXB0cyB0byBkbyB0aGlz IGJlZm9yZSwgYW5kIGlmIGl0J3MgYSBfZHJpdmVyXyBpbnRlcmZhY2Ugd2UKPj4+Pj4+Pj4gZG9u J3QgbmVlZCB0byBiZSB0aGF0IGNhcmVmdWwgYnV0IGlmIGl0IGlzIGEgX2dlbmVyaWNfIGludGVy ZmFjZSB3ZSBuZWVkCj4+Pj4+Pj4+IHRvIGJlIHZlcnkgY2FyZWZ1bCB0byBtYWtlIGl0IGZpdCAq YWxsKiB0aGUgaGFyZHdhcmUgb3V0IHRoZXJlIGFuZCB0aGF0Cj4+Pj4+Pj4+IHdlIG1ha2UgYWxs IHBvdGVudGlhbCB1c2VycyB1c2UgdGhlIGludGVyZmFjZSBpbiBhIHdheSB0aGF0IGNvbmZvcm1z Cj4+Pj4+Pj4+IHdpdGggdGhlIGludGVyZmFjZSBzcGVjaWZpY2F0aW9uLgo+Pj4+Pj4+Pgo+Pj4+ Pj4+PiBXaGF0IHdpbGwgaGFwcGVuIG90aGVyd2lzZSBpcyB0aGF0IGFwcHMgd3JpdHRlbiBmb3Ig Y29oZXJlbnQgZmFzdAo+Pj4+Pj4+PiBoYXJkd2FyZSBtaWdodCwgZm9yIGV4YW1wbGUsIGlnbm9y ZSBjYWxsaW5nIHRoZSBTWU5DIGFwaSwganVzdCBiZWNhdXNlCj4+Pj4+Pj4+IHRoZSBhcHAgd3Jp dGVyIG9ubHkgY2FyZWQgYWJvdXQgaGlzIG93biBoYXJkd2FyZSBvbiB3aGljaCB0aGUgYXBwIHdv cmtzCj4+Pj4+Pj4+IGZpbmUuIFRoYXQgd291bGQgZmFpbCBtaXNlcmFibHkgaWYgdGhlIHNhbWUg YXBwIHdhcyBydW4gb24gaW5jb2hlcmVudAo+Pj4+Pj4+PiBoYXJkd2FyZSwgb3IgdGhlIGluY29o ZXJlbnQgaGFyZHdhcmUgZHJpdmVyIG1haW50YWluZXJzIHdvdWxkIGJlIGZvcmNlZAo+Pj4+Pj4+ PiB0byBiYXNlIGFuIGltcGxlbWVudGF0aW9uIG9uIHBhZ2UtZmF1bHRzIHdoaWNoIHdvdWxkIGJl IHZlcnkgc2xvdy4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gU28gYXNzdW1lIHRoZSBmb2xsb3dpbmcgdXNl IGNhc2U6IEFuIGFwcCB1cGRhdGVzIGEgMTB4MTAgYXJlYSB1c2luZyB0aGUKPj4+Pj4+Pj4gQ1BV IG9uIGEgMTYwMHgxMjAwIGRtYS1idWYsIGFuZCBpdCB3aWxsIHRoZW4gdXNlIHRoZSBkbWEtYnVm IGZvcgo+Pj4+Pj4+PiB0ZXh0dXJpbmcuIE9uIHNvbWUgaGFyZHdhcmUgdGhlIGRtYS1idWYgbWln aHQgYmUgdGlsZWQgaW4gYSB2ZXJ5Cj4+Pj4+Pj4+IHNwZWNpZmljIHdheSwgb24gdm13Z2Z4IHRo ZSBkbWEtYnVmIGlzIGEgR1BVIGJ1ZmZlciBvbiB0aGUgaG9zdCwgb25seQo+Pj4+Pj4+PiBhY2Nl c3NpYmxlIHVzaW5nIERNQS4gT24gdm13Z2Z4IHRoZSBTWU5DIG9wZXJhdGlvbiBtdXN0IGNhcnJ5 IG91dCBhCj4+Pj4+Pj4+IDEweDEwIERNQSBmcm9tIHRoZSBob3N0IEdQVSBidWZmZXIgdG8gYSBn dWVzdCBDUFUgYnVmZmVyIGJlZm9yZSB0aGUgQ1BVCj4+Pj4+Pj4+IHdyaXRlIGFuZCBhIERNQSBi YWNrIGFnYWluIGFmdGVyIHRoZSB3cml0ZSwgYmVmb3JlIEdQVSB1c2FnZS4gT24gdGhlCj4+Pj4+ Pj4+IHRpbGVkIGFyY2hpdGVjdHVyZSB0aGUgU1lOQyBvcGVyYXRpb24gbXVzdCB1bnRpbGUgYmVm b3JlIENQVSBhY2Nlc3MgYW5kCj4+Pj4+Pj4+IHByb2JhYmx5IHRpbGUgYWdhaW4gYmVmb3JlIEdQ VSBhY2Nlc3MuCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IElmIHdlIG5vdyBoYXZlIGEgb25lLWRpbWVuc2lv bmFsIFNZTkMgYXBpLCBpbiB0aGlzIHBhcnRpY3VsYXIgY2FzZSB3ZSdkCj4+Pj4+Pj4+IGVpdGhl ciBuZWVkIHRvIHN5bmMgYSBmYXIgdG9vIGxhcmdlIGFyZWEgKDE2MDB4MTApIG9yIGNhbGwgU1lO QyAxMCB0aW1lcwo+Pj4+Pj4+PiBiZWZvcmUgd3JpdGluZywgYW5kIHRoZW4gYWdhaW4gYWZ0ZXIg d3JpdGluZy4gSWYgdGhlIGFwcCBmb3Jnb3QgdG8gY2FsbAo+Pj4+Pj4+PiBTWU5DIHdlIG11c3Qg ZXJyb3IuCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IFNvIHRvIHN1bW1hcml6ZSwgdGhlIGZhY3QgdGhhdCB0 aGUgaW50ZXJmYWNlIGlzIGdlbmVyaWMgSU1PIG1lYW5zOgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiAxKSBB bnkgdXNlciBtdXN0IGJlIGFibGUgdG8gbWFrZSB2YWxpZCBhc3N1bXB0aW9ucyBhYm91dCB0aGUg aW50ZXJuYWwKPj4+Pj4+Pj4gZm9ybWF0IG9mIHRoZSBkbWEtYnVmLiAodW50aWxlZCwgY29sb3Ig Zm9ybWF0LCBzdHJpZGUgZXRjLikKPj4+Pj4+Pj4gMikgQW55IHVzZXIgKm11c3QqIGNhbGwgU1lO QyBiZWZvcmUgYW5kIGFmdGVyIENQVSBhY2Nlc3MuIE9uIGNvaGVyZW50Cj4+Pj4+Pj4+IGFyY2hp dGVjdHVyZXMsIHRoZSBTWU5DIGlzIGEgTlVMTCBvcGVyYXRpb24gYW55d2F5LCBhbmQgdGhhdCBz aG91bGQgYmUKPj4+Pj4+Pj4gZG9jdW1lbnRlZCBzb21ld2hlcmUgc28gdGhhdCBtYWludGFpbmVy cyBvZiBkcml2ZXJzIG9mIHVuY29oZXJlbnQKPj4+Pj4+Pj4gYXJjaGl0ZWN0dXJlcyBoYXZlIHNv bWV3aGVyZSB0byBwb2ludCB0aGVpciBmaW5nZXJzLgo+Pj4+Pj4+PiAzKSBEcml2ZXItc3BlY2lm aWMgaW1wbGVtZW50YXRpb25zIG11c3QgYmUgYWxsb3dlZCB0byBlcnJvciAoc2VnZmF1bHQpCj4+ Pj4+Pj4+IGlmIFNZTkMgaGFzIG5vdCBiZWVuIHVzZWQuCj4+Pj4+Pj4gSSB0aGluayBoZXJlIHlv dSBhcmUgdG9vIGxheCwgdGhlIGNvbW1vbiBjb2RlIG11c3Qgc2VnZmF1bHQgb3IKPj4+Pj4+PiBl cnJvciBiYWRseSBpZiBTWU5DIGhhcyBub3QgYmVlbiB1c2UgaW4gYWxsIGNhc2VzIGV2ZW4gb24g Y2FjaGUKPj4+Pj4+PiBjb2hlcmVudCBhcmNoLiBUaGUgZGV2aWNlIGRyaXZlciBzeW5jIGNhbGxi YWNrIGNhbiBzdGlsbCBiZSBhCj4+Pj4+Pj4gbm8gb3BlcmF0aW9uLiBCdXQgaSB0aGluayB0aGF0 IHdlIG5lZWQgdG8gaW5zaXN0IHN0cm9uZ2x5IG9uIGEKPj4+Pj4+PiBwcm9wZXIgc3luYyBjYWxs IGJlaW5nIG1hZGUgKGFuZCB3ZSBzaG91bGQgZm9yYmlkIGVtcHR5IGFyZWEKPj4+Pj4+PiBzeW5j IGNhbGwpLiBUaGlzIHdvdWxkIGJlIHRoZSBvbmx5IHdheSB0byBtYWtlIHN1cmUgdXNlcnNwYWNl Cj4+Pj4+Pj4gYmVoYXZlIHByb3Blcmx5IGFzIG90aGVyd2lzZSB3ZSBlbmR1cCBpbiB0aGUgc2l0 dWF0aW9uIHlvdSB3ZXJlCj4+Pj4+Pj4gZGVzY3JpYmluZyBhYm92ZSwgd2hlcmUgdGhlIGFwcCBp cyBkZXNpZ24gb24gYSBjYWNoZSBjb2hlcmVudAo+Pj4+Pj4+IGFyY2ggYW5kIHdvcmtzIGZpbmUg dGhlcmUgYnV0IGJyb2tlIGluIHN1YnRsZSB3YXkgb24gbm9uIGNhY2hlCj4+Pj4+Pj4gY29oZXJl bnQgYXJjaCBhbmQgYXBwIGRldmVsb3BlciBpcyBjbHVlbGVzcyBvZiB3aHkuCj4+Pj4+Pj4KPj4+ Pj4+PiBJIGp1c3QgZG8gbm90IHRydXN0IHVzZXJzcGFjZS4KPj4+Pj4+IEkgYWdyZWUgYW5kIGlk ZWFsbHkgaSdkIHdhbnQgaXQgdGhpcyB3YXkgYXMgd2VsbC4gVGhlIHF1ZXN0aW9uIGlzLCBpcyBp dAo+Pj4+Pj4gcG9zc2libGU/IENhbiB0aGlzIGJlIGRvbmUgd2l0aG91dCBhIGZhdWx0KCkgaGFu ZGxlciBpbiB0aGUgZ2VuZXJpYwo+Pj4+Pj4ga2VybmVsIGNvZGU/Cj4+Pj4+Pgo+Pj4+Pj4+PiA0 KSBUaGUgdXNlLWNhc2Ugc3RhdGVkIGFib3ZlIGNsZWFybHkgc2hvd3MgdGhlIGJlbmVmaXQgb2Yg YQo+Pj4+Pj4+PiAyLWRpbWVuc2lvbmFsIHN5bmMgaW50ZXJmYWNlICh3ZSB3YW50IHRvIHN5bmMg dGhlIDEweDEwIHJlZ2lvbiksIGJ1dAo+Pj4+Pj4+PiB3aGF0IGlmIHNvbWVvbmUgaW4gdGhlIGZ1 dHVyZSB3YW50cyB0byB1c2UgdGhpcyBpbnRlcmZhY2UgZm9yIGEgM0QKPj4+Pj4+Pj4gdGV4dHVy ZT8gV2lsbCBhIDJEIHN5bmMgc3VmZmljZT8gQ2FuIHdlIG1ha2UgdGhlIFNZTkMgaW50ZXJmYWNl Cj4+Pj4+Pj4+IGV4dGVuZGFibGUgaW4gYSB3YXkgdGhhdCBhbiBlbnVtIHN5bmNfdHlwZSBtZW1i ZXIgZGVmaW5lcyB0aGUgbGF5b3V0IG9mCj4+Pj4+Pj4+IHRoZSBhcmd1bWVudCwgYW5kIGluaXRp YWxseSB3ZSBpbXBsZW1lbnQgb25seSAxZCwgMmQgc3luYywgbGVhdmluZyAzZAo+Pj4+Pj4+PiBm b3IgdGhlIGZ1dHVyZT8KPj4+Pj4+Pj4KPj4+Pj4+Pj4gQWxzbywgSSBhZ3JlZSB0aGVyZSBpcyBw cm9iYWJseSBubyBnb29kIHdheSB0byBnZW5lcmljYWxseSBpbXBsZW1lbnQgYW4KPj4+Pj4+Pj4g ZXJyb3IgaWYgU1lOQyBoYXMgbm90IGJlZW4gY2FsbGVkLiBUaGF0IG5lZWRzIHRvIGJlIGxlZnQg YXMgYW4gb3B0aW9uIHRvCj4+Pj4+Pj4+IGRyaXZlcnMuCj4+Pj4+Pj4gSSB0aGluayB0aGVyZSBp cywganVzdCBmb3JiaWQgYW55IGZ1cnRoZXIgdXNlIG9mIHRoZSBkbWEgYnVmZmVyLCBtYXJrCj4+ Pj4+Pj4gaXQgYXMgaW52YWxpZCBhbmQgcHJpbnRrIGEgYmlnIGVycm9yLiBVc2Vyc3BhY2UgYXBw IGRldmVsb3BlciB3aWxsCj4+Pj4+Pj4gcXVpY2tseSBzZWUgdGhhdCBzb21ldGhpbmcgaXMgd3Jv bmcgYW5kIGxvb2tpbmcgYXQga2VybmVsIGxvZyBzaG91bGQKPj4+Pj4+PiBleHBsYWluIHdoeS4K Pj4+Pj4+IFRoZSBwcm9ibGVtIGlzIGlmIHNvbWVvbmUgY2FsbHMgbW1hcCgpIGFuZCB0aGVuIGRl Y2lkZXMgdG8gbm90IGFjY2Vzcwo+Pj4+Pj4gdGhlIGJ1ZmZlciBiZWZvcmUgbXVubWFwKCkgb3Ig R1BVIHVzYWdlLiBIb3cgZG8gd2UgcmVjb2duaXplIHRoYXQgY2FzZQo+Pj4+Pj4gYW5kIHNlcGFy YXRlIGl0IGZyb20gYSBDUFUgYWNjZXNzIG9jY3VyZWQgb3V0c2lkZSBhIHN5bmM/IFdlIGNvdWxk LCBhcwo+Pj4+Pj4gbWVudGlvbmVkIGFib3ZlIGhhdmUgYSBmYXVsdCgpIGhhbmRsZXIgaW4gdGhl IGdlbmVyaWMga2VybmVsIGNvZGUgYW5kCj4+Pj4+PiBtYWtlIHN1cmUgZHJpdmVycyBkb24ndCBw b3B1bGF0ZSBQVEVzIHVudGlsIHRoZSBmaXJzdCBmYXVsdCgpLiBBbm90aGVyCj4+Pj4+PiBvcHRp b24gd291bGQgYmUgdG8gc2NhbiBhbGwgUFRFcyBmb3IgYW4gImFjY2Vzc2VkIiBmbGFnLCBidXQg SSdtIG5vdAo+Pj4+Pj4gZXZlbiBzdXJlIGFsbCBDUFUgYXJjaGl0ZWN0dXJlcyBoYXZlIHN1Y2gg YSBmbGFnPwo+Pj4+Pj4KPj4+Pj4+IEJ1dCB0aGVyZSBtaWdodCBiZSBhIHNpbXBsZXIgc29sdXRp b24gdGhhdCBJIGhhdmUgb3Zlcmxvb2tlZD8KPj4+Pj4gQWxsIGFyY2ggaGF2ZSBhIGRpcnR5IGZs YWcsIHNvIHlvdSBjb3VsZCBjaGVjayB0aGF0LCBhcyBhbGwgd2UKPj4+Pj4gcmVhbGx5IGNhcmUg YWJvdXQgaXMgQ1BVIHdyaXRlIGFjY2Vzcy4gU28gYWxsIHlvdSBuZWVkIGlzIGNsZWFyaW5nCj4+ Pj4+IHRoZSBkaXJ0eSBiaXQgYWZ0ZXIgZWFjaCBzdWNjZXNzZnVsbCBHUFUgY29tbWFuZCBzdHJl YW0gaW9jdGwKPj4+Pj4gYW5kIGNoZWNraW5nIHRoYXQgbm8gZGlydHkgYml0IGlzIHNldCBpbiBh IHJlZ2lvbiBub3QgY292ZXIgYnkKPj4+Pj4gYSBmbHVzaCgpLiBOb3RlIHRoYXQgdGhlIGNsZWFy IGFuZCBjaGVjayBjYW4gaGFwcGVuIGluIHRoZSBzYW1lCj4+Pj4+IGZ1bmN0aW9uIGFzIHBhcnQg b2YgYnVmZmVyIHZhbGlkYXRpb24gZm9yIHRoZSBHUFUgY29tbWFuZCBzdHJlYW0uCj4+Pj4gQWN0 dWFsbHksIEkgZG8gdGhpbmsgd2UgY2FyZSBhYm91dCByZWFkaW5nIGFzIHdlbGwsIHNpbmNlIHJl YWRpbmcKPj4+PiB3aXRob3V0IGZsdXNoaW5nIGFueXRoaW5nIHdyaXR0ZW4gYnkgdGhlIEdQVSB3 aWxsCj4+Pj4geWllbGQgZ2FyYmFnZSBvbiBhIG5vbi1jb2hlcmVudCBhcmNoaXRlY3R1cmUuIElu c3RlYWQgd2UgbWlnaHQgY2hlY2sgZm9yCj4+Pj4gdGhlIFBBR0VfQUNDRVNTRUQgYml0Lgo+Pj4g SSBkbyBub3QgdGhpbmsgdGhlIHJlYWQgYWNjZXNzIGFmdGVyIEdQVSBtYXR0ZXIuIElmIHBlb3Bs ZSB0aGluayBpdCBkb2VzCj4+PiB0aGVuIGl0IGlzIHNpbXBsZSwgYXQgYnVmZmVyIHZhbGlkYXRp b24gaW4gYnVmZmVyIG1hcHBpbmcgd2UgaW52YWxpZGF0ZQo+Pj4gQ1BVIHBhZ2UgdGFibGUgbWFw cGluZyBhbmQgdGhlIHByZXBhcmUgYWNjZXNzIGlvY3RsIHBvcHVsYXRlIHRoZW0gYWZ0ZXIKPj4+ IGNoZWNraW5nIHRoYXQgR1BVIGlzIGZsdXNoLgo+Pj4KPj4+PiBTbyB0aGUgZnVsbCB2ZXJzaW9u IG9mIHRoaXMgd291bGQga2VlcCB0cmFjayBvZiBhbGwgc3luY2VkIHJlZ2lvbnMgYW5kCj4+Pj4g YXQgYnVmZmVyIHZhbGlkYXRpb24gdGltZSwgb3IgdW5tYXAgdGltZSBlcnJvciBpZiB0aGVyZQo+ Pj4+IGlzIGEgcGFnZSBjb21wbGV0ZWx5IG91dHNpZGUgdGhlIHVuaW9uIG9mIGFsbCBzeW5jZWQg cmVnaW9ucyBpbiBhbnkgVk1BCj4+Pj4gYmVsb25naW5nIHRvIHRoZSBkbWEtYnVmIGFkZHJlc3Mg c3BhY2UsIHRoZW4gdW5tYXJrIGFsbCBhY2Nlc3NlZCBQVEVzCj4+Pj4gYW5kIGludmFsaWRhdGUg VExCcyBhY2NvcmRpbmdseSwgdHlwaWNhbGx5IGNhdXNpbmcgYSBnbG9iYWwgVExCIGZsdXNoLgo+ Pj4+IFllYWgsIHdlIGNvdWxkIHByb2JhYmx5IHB1dCB0b2dldGhlciBhIGhlbHBlciBmdW5jdGlv biB0aGF0IGRvZXMgdGhpcywKPj4+PiBidXQgaXQgd2lsbCBiZSBleHBlbnNpdmUgdG8gcnVuIGFu ZCB0aGUgd2hvbGUgcG9pbnQgb2YgdGhpcyBBUEkgaXMgdG8gYmUKPj4+PiBhYmxlIHRvIGltcHJv dmUgcGVyZm9ybWFuY2UuCj4+PiBObyBuZWVkIGZvciBzdWNoIGNvbXBsZXhpdHksIHRoZSBzeW5j IGlvY3RsIHdvdWxkIGdvIG92ZXIgdGhlIHBhZ2UgdGFibGUKPj4+IGFuZCBjbGVhciBkaXJ0eSBi aXQgZm9yIGFsbCBwYWdlIGluIHJhbmdlIHRoYXQgaXMgc3luY2hyb25pemVkLiBTbyBvbmNlCj4+ PiB5b3UgZ2V0IHRvIHRoZSBjb21tYW5kIGlvY3RsIHlvdSBrbm93IHRoYXQgYWxsIGRpcnR5IGJp dCBtdXN0IGJlIGNsZWFyLgo+Pj4gTm90ZSB0aGlzIGlzIG9ubHkgYSBwYWdlIHRhYmxlIHdhbGsg aW4gYWxsIGNhc2UuIEkgZG8gbm90IGNvbnNpZGVyIHRoaXMKPj4+IHRvIGJlIHRoYXQgZXhwZW5z aXZlLgo+Pj4KPj4+Cj4+IFRoZSBleHBlbnNpdmUgcGFydCBpcyB0aGUgVExCIGZsdXNoaW5nIGFm dGVyIHRoZSBQVEUgdXBkYXRlLCB3aGljaAo+PiB0eXBpY2FsbHkgbmVlZHMgdG8gYmUgcGVyZm9y bWVkIG9uIGFsbCBjb3Jlcy4gQWx0aG91Z2ggd2l0aG91dCBhCj4+IGJlbmNobWFyayBJJ20gbm90 IHN1cmUgaG93IGV4cGVuc2l2ZS4gSXQgbWlnaHQgYmUgdGhhdCBpdCBkb2Vzbid0Cj4+IG1hdHRl ci4gQWZ0ZXIgYWxsLCB0aGUgdm13Z2Z4LSBhbmQgSSBiZWxpZXZlIHRoZSBxeGwgZHJpdmVyIGJv dGggdXNlIGEKPj4gc2ltaWxhciBhcHByb2FjaCBmb3IgZmJkZXYgdXNlci1zcGFjZSBhY2Nlc3Ms IGJ1dCB0aGF0IGhhcyBuZXZlciBiZWVuCj4+IGNvc2lkZXJlZCBwZXJmb3JtYW5jZS1jcml0aWNh bC4uLgo+IFRoZXJlIGlzIG5vIG5lZWQgdG8gZmx1c2ggdGhlIFRMQiAhIEF0IGxlYXN0IG5vdCBm b3IgdGhlIHdyaXRlIGNhc2UuCj4gQ2xlYXJpbmcgdGhlIGRpcnR5IGJpdCBpcyBjYWNoZSBjb2hl cmVudC4gVExCIGFyZSBhYm91dCBjYWNoaW5nIHBhZ2UKPiB0YWJsZSBkaXJlY3RvcnkgdHJlZS4g VG8gY29udmluY2UgeW91cnNlbGYgbG9vayBhdCBwYWdlX21rY2xlYW5fb25lKCkKPiBpbiBtbS9y bWFwLmMgd2hpY2gsIGJ5IHRoZSB3YXksIGlzIGFsbW9zdCB3aGF0IHdlIHdhbnQgKHJlbW92ZSB0 aGUgbW11Cj4gbm90aWZpZXIgcGFydCBhbmQgdGhlIHdyaXRlIHByb3RlY3Rpb24gcGFydCBhbmQg Zm9yY2UgcmVhbCBDUFUgY2FjaGUKPiBmbHVzaCBpZiBuZWVkZWQgYmFzZSBvbiBkZXZpY2UgZmxh ZykuCgpIbW0/IExhc3QgdGltZSBJIHZpc2l0ZWQgdGhpcyBjb2RlLCBwYWdlX21rY2xlYW5fb25l KCkgd2FzIGV2ZW50dWFsbHkKY2FsbGluZyBmbHVzaF90bGJfcGFnZSgpIHRocm91Z2ggcHRlcF9j bGVhcl9mbHVzaF9ub3RpZnkoKS4gSSB3YXMgdW5kZXIKdGhlIGltcHJlc3Npb24gdGhhdCB5b3Ug YWx3YXlzIGhhdmUgdG8gZmx1c2ggdGhlIFRMQiB3aGVuIHlvdSBjbGVhciBhClBURSBzdGF0dXMg Yml0LCBidXQgdHlwaWNhbGx5IG5vdCB3aGVuIHlvdSBzZXQgaXQuIEFyZSB5b3Ugc2F5aW5nIHRo YXQKdGhhdCdzIG5vdCB0aGUgY2FzZT8KVGhlIHF1ZXN0aW9uIGFzIEkgc2VlIGl0IGlzIHJhdGhl ciB3aGV0aGVyIHlvdSB3YW50IHRvIGZsdXNoIFRMQiBvbiBhCnBlci1QVEUgYmFzaXMgb3IgZG8g aXQgYXMgYSBnbG9iYWwgZmx1c2ggYWZ0ZXIgYSBiYXRjaGVkIFBURSBzdGF0dXMgYml0CmNsZWFy aW5nLgoKL1Rob21hcwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2 ZWwK