From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Nicolai_H=c3=a4hnle?= Subject: Re: RFC for a render API to support adaptive sync and VRR Date: Wed, 11 Apr 2018 08:57:08 +0200 Message-ID: <72c1d357-db72-b181-9421-04f99b3bbf2f@amd.com> References: <435ebd04-0435-5a6a-9f1e-e4c4fc629aa9@amd.com> <20180409214554.GB13967@intel.com> <1e8d1857-faba-85da-0136-ea7c29ec1b84@amd.com> <063d6dff-2b97-ef01-12bb-8a24125a58ec@daenzer.net> <65006f34-39b9-5aca-e0c0-77a591b69c3a@daenzer.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: "Cyr, Aric" , =?UTF-8?Q?Michel_D=c3=a4nzer?= , "Koenig, Christian" , "Wentland, Harry" , Manasi Navare Cc: Daniel Vetter , "Daenzer, Michel" , amd-gfx mailing list , dri-devel , "Deucher, Alexander" , "Koo, Anthony" List-Id: dri-devel@lists.freedesktop.org T24gMTAuMDQuMjAxOCAyMzo0NSwgQ3lyLCBBcmljIHdyb3RlOgo+Pj4+Pj4+PiBGb3IgdmlkZW8g Z2FtZXMgd2UgaGF2ZSBhIHNpbWlsYXIgc2l0dWF0aW9uIHdoZXJlIGEgZnJhbWUgaXMgcmVuZGVy ZWQKPj4+Pj4+Pj4gZm9yIGEgY2VydGFpbiB3b3JsZCB0aW1lIGFuZCBpbiB0aGUgaWRlYWwgY2Fz ZSB3ZSB3b3VsZCBhY3R1YWxseQo+Pj4+Pj4+PiBkaXNwbGF5IHRoZSBmcmFtZSBhdCB0aGlzIHdv cmxkIHRpbWUuCj4+Pj4+Pj4KPj4+Pj4+PiBUaGF0IHNlZW1zIGxpa2UgaXQgd291bGQgYmUgYSBw b29ybHkgd3JpdHRlbiBnYW1lIHRoYXQgZmxpcHMgbGlrZQo+Pj4+Pj4+IHRoYXQsIHVubGVzcyB0 aGV5IGFyZSBleHBsaWNpdGx5IHRyeWluZyB0byB0aHJvdHRsZSB0aGUgZnJhbWVyYXRlIGZvcgo+ Pj4+Pj4+IHNvbWUgcmVhc29uLiAgV2hlbiBhIGdhbWUgcHJlc2VudHMgYSBjb21wbGV0ZWQgZnJh bWUsIHRoZXnigJlkIGxpa2UKPj4+Pj4+PiB0aGF0IHRvIGhhcHBlbiBhcyBzb29uIGFzIHBvc3Np YmxlLgo+Pj4+Pj4KPj4+Pj4+IFdoYXQgeW91J3JlIGRlc2NyaWJpbmcgaXMgd2hhdCBtb3N0IGdh bWVzIGhhdmUgYmVlbiBkb2luZyB0cmFkaXRpb25hbGx5Lgo+Pj4+Pj4gQ3JvdGVhbSdzIHJlc2Vh cmNoIHNob3dzIHRoYXQgdGhpcyByZXN1bHRzIGluIG1pY3JvLXN0dXR0ZXJpbmcsIGJlY2F1c2UK Pj4+Pj4+IGZyYW1lcyBtYXkgYmUgcHJlc2VudGVkIHRvbyBlYXJseS4gVG8gYXZvaWQgdGhhdCwg dGhleSB3YW50IHRvCj4+Pj4+PiBleHBsaWNpdGx5IHRpbWUgZWFjaCBwcmVzZW50YXRpb24gYXMg ZGVzY3JpYmVkIGJ5IENocmlzdGlhbi4KPj4+Pj4KPj4+Pj4gWWVzLCBJIGFncmVlIGNvbXBsZXRl bHkuICBIb3dldmVyIHRoYXQncyBvbmx5IHRydWx5IHJlbGV2YW50IGZvciBmaXhlZAo+Pj4+PiBy ZWZyZXNoZWQgcmF0ZSBkaXNwbGF5cy4KPj4+Pgo+Pj4+IE5vLCBpdCBhbHNvIGFmZmVjdHMgdmFy aWFibGUgcmVmcmVzaDsgcG9zc2libHkgZXZlbiBtb3JlIGluIHNvbWUgY2FzZXMsCj4+Pj4gYmVj YXVzZSB0aGUgcHJlc2VudGF0aW9uIHRpbWUgaXMgbGVzcyBwcmVkaWN0YWJsZS4KPj4+Cj4+PiBZ ZXMsIGFuZCB0aGF0J3Mgd2h5IHlvdSBkb24ndCB3YW50IHRvIGRvIGl0IHdoZW4geW91IGhhdmUg dmFyaWFibGUgcmVmcmVzaC4gIFRoZSBoYXJkd2FyZSBpbiB0aGUgbW9uaXRvciBhbmQgR1BVIHdp bGwgZG8gaXQgZm9yIHlvdSwKPj4gc28gd2h5IGJvdGhlcj8KPj4KPj4gSSB0aGluayBNaWNoZWwn cyBwb2ludCBpcyB0aGF0IHRoZSBtb25pdG9yIGFuZCBHUFUgaGFyZHdhcmUgKmNhbm5vdCoKPj4g cmVhbGx5IGRvIHRoaXMsIGJlY2F1c2UgdGhlcmUncyBzeW5jaHJvbml6YXRpb24gd2l0aCBhdWRp byB0byB0YWtlIGludG8KPj4gYWNjb3VudCwgd2hpY2ggdGhlIEdQVSBvciBtb25pdG9yIGRvbid0 IGtub3cgYWJvdXQuCj4gCj4gSG93IGRvZXMgaXQgd29yayBmaW5lIHRvZGF5IGdpdmVuIHRoYXQg YWxsIGtlcm5lbCBzZWVtcyB0byBrbm93IGlzICdjdXJyZW50JyBvciAnY3VycmVudCsxJyB2c3lu Y3MuCj4gUHJlc3VtYWJseSB0aGUgYXBwbGljYXRpb25zIHNvbWVob3cgc2NoZWR1bGUgYWxsIHRo aXMganVzdCBmaW5lLgo+IElmIHRoaXMgd29ya3Mgd2l0aG91dCB2YXJpYWJsZSByZWZyZXNoIGZv ciA2MEh6LCB3aWxsIGl0IG5vdCB3b3JrIGZvciBhIGZpeGVkLXJhdGUgIjQ4SHoiIG1vbml0b3Ig KGFzc3VtaW5nIGEgMjRIeiB2aWRlbyk/CgpZb3UncmUgcmlnaHQuIEkgZ3Vlc3MgYSBiZXR0ZXIg d2F5IHRvIHN0YXRlIHRoZSBwb2ludCBpcyB0aGF0IGl0IAoqZG9lc24ndCogcmVhbGx5IHdvcmsg dG9kYXkgd2l0aCBmaXhlZCByZWZyZXNoLCBidXQgaWYgd2UncmUgZ29pbmcgdG8gCmludHJvZHVj ZSBhIG5ldyBBUEksIHRoZW4gd2h5IG5vdCBkbyBzbyBpbiBhIHdheSB0aGF0IGNhbiBmaXggdGhl c2UgCmFkZGl0aW9uYWwgcHJvYmxlbXMgYXMgd2VsbD8KCgo+PiBBbHNvLCBhcyBJIHdyb3RlIHNl cGFyYXRlbHksIHRoZXJlJ3MgdGhlIGNhc2Ugb2Ygc3luY2hyb25pemluZyBtdWx0aXBsZQo+PiBt b25pdG9ycy4KPiAKPiBGb3IgbXVsdGltb25pdG9yIHRvIHdvcmsgd2l0aCBWUlIsIHRoZXknbGwg aGF2ZSB0byBiZSB0aW1pbmcgYW5kIGZsaXAgc3luY2hyb25pemVkLgo+IFRoaXMgaXMgaW1wb3Nz aWJsZSBmb3IgYW4gYXBwbGljYXRpb24gdG8gbWFuYWdlLCBpdCBuZWVkcyBkcml2ZXIvSFcgY29u dHJvbCBvciB5b3UgZW5kIHVwIHdpdGggb25lIGRpc3BsYXkgZmxpcHBpbmcgYmVmb3JlIHRoZSBv dGhlciBhbmQgaXQgbG9va3MgdGVycmlibGUuCj4gQW5kIGRlZmluaXRlbHkgZm9yZ2V0IGFib3V0 IG11bHRpR1BVIHdpdGhvdXQgcHJvZmVzc2lvbmFsIHdvcmtzdGF0aW9uLXR5cGUgc3VwcG9ydCBu ZWVkZWQgdG8gc3luYyB0aGUgZGlzcGxheXMgYWNyb3NzIGFkYXB0ZXJzLgoKSSdtIG5vdCBhIGRp c3BsYXkgZXhwZXJ0LCBidXQgSSBmaW5kIGl0IGhhcmQgdG8gYmVsaWV2ZSB0aGF0IGl0J3MgdGhh dCAKZGlmZmljdWx0LiBQZXJoYXBzIHlvdSBjYW4gaGVscCB1cyB1bmRlcnN0YW5kPwoKU2F5IHlv dSBoYXZlIGEgbXVsdGktR1BVIHN5c3RlbSwgYW5kIGVhY2ggR1BVIGhhcyBtdWx0aXBsZSBkaXNw bGF5cyAKYXR0YWNoZWQsIGFuZCBhIHNpbmdsZSBhcHBsaWNhdGlvbiBpcyBkcml2aW5nIHRoZW0g YWxsLiBUaGUgYXBwbGljYXRpb24gCnF1ZXVlcyBmbGlwcyBmb3IgYWxsIGRpc3BsYXlzIHdpdGgg dGhlIHNhbWUgdGFyZ2V0X3ByZXNlbnRfdGltZV9ucyAKYXR0cmlidXRlLiBTdGFydGluZyBhdCBz b21lIHRpbWUgVCwgdGhlIGFwcGxpY2F0aW9uIHNpbXBseSBhc2tzIGZvciB0aGUgCnNhbWUgcHJl c2VudCB0aW1lIFQgKyBpICogMTY2NjY2NjcgKG9yIHdoYXRldmVyKSBmb3IgZnJhbWUgaSBmcm9t IGFsbCAKZGlzcGxheXMuCgpPZiBjb3Vyc2UgaXQncyB0byBiZSBleHBlY3RlZCB0aGF0IHNvbWUg KG9yIGFsbCkgb2YgdGhlIGRpc3BsYXlzIHdpbGwgCm5vdCBiZSBhYmxlIHRvIGhpdCB0aGUgdGFy Z2V0IHRpbWUgb24gdGhlIGZpcnN0IGJ1bmNoIG9mIGZsaXBzIGR1ZSB0byAKaGFyZHdhcmUgbGlt aXRhdGlvbnMsIGJ1dCBhcyBsb25nIGFzIHRoZSByYW5nZSBvZiBzdXBwb3J0ZWQgZnJhbWUgdGlt ZXMgCmlzIHdpZGUgZW5vdWdoLCBJJ2QgZXhwZWN0IGFsbCBvZiB0aGVtIHRvIGRyaWZ0IHRvd2Fy ZHMgcHJlc2VudGluZyBhdCAKdGhlIGNvcnJlY3QgdGltZSBldmVudHVhbGx5LCBldmVuIGFjcm9z cyBtdWx0aXBsZSBHUFVzLCB3aXRoIHRoaXMgc2ltcGxlIApzY2hlbWUuCgpXaHkgd291bGQgdGhh dCBub3Qgd29yayB0byBzeW5jIHVwIGFsbCBkaXNwbGF5cyBhbG1vc3QgcGVyZmVjdGx5PwoKCltz bmlwXQo+PiBBcmUgdGhlcmUgYW55IHJlYWwgcHJvYmxlbXMgd2l0aCBleHBvc2luZyBhbiBhYnNv bHV0ZSB0YXJnZXQgcHJlc2VudCB0aW1lPwo+IAo+IFJlYWxpc3RpY2FsbHksIGhvdyBmYXIgaW50 byB0aGUgZnV0dXJlIGFyZSB5b3UgcmVxdWVzdGluZyBhIHByZXNlbnRhdGlvbiB0aW1lPyBXb24n dCBpdCBhbG1vc3QgYWx3YXlzIGJlIHNvbWV0aGluZyBsaWtlIGN1cnJlbnRfdGltZSsxMDAwL3Zp ZGVvX2ZyYW1lX3JhdGU/Cj4gSWYgc28sIHdoeSBub3QganVzdCB0ZWxsIHRoZSBkcml2ZXIgdG8g c2V0IDEwMDAvdmlkZW9fZnJhbWVfcmF0ZSBhbmQgaGF2ZSB0aGUgR1BVL21vbml0b3IgY3JlYXRl IG5pY2VseSBzcGFjZWQgVlNZTkNzIGZvciB5b3UgdGhhdCBtYXRjaCB0aGUgc291cmNlIGNvbnRl bnQ/Cj4gCj4gSW4gZmFjdCwgeW91IHByb2JhYmx5IHdvdWxkbid0IGV2ZW4gbmVlZCB0byBjaGFu Z2UgeW91ciB2aWRlbyBwbGF5ZXIgYXQgYWxsLCBvdGhlciB0aGFuIGhhdmluZyBpdCBwYXNzIHRo ZSB0YXJnZXRfZnJhbWVfZHVyYXRpb25fbnMuICBZb3UgY291bGQgY29uc2lkZXIgdGhpcyBhICdo aW50JyBhcyB5b3Ugc3VnZ2VzdGVkLCBzaW5jZSBpdCdzIGNhbm5vdCBiZSBndWFyYW50ZWVkIGlu IGNhc2VzIHlvdXIgZHJpdmVyIG9yIEhXIGRvZXNuJ3Qgc3VwcG9ydCB2YXJpYWJsZSByZWZyZXNo LiAgSWYgdGhlIHRhcmdldF9mcmFtZV9kdXJhdGlvbl9ucyBoaW50IGlzIHN1cHBvcnRlZC9hcHBs aWVkLCB0aGVuIHRoZSB2aWRlbyBhcHAgc2hvdWxkIGhhdmUgbm90aGluZyBleHRyYSB0byBkbyB0 aGF0IGl0IHdvdWxkbid0IGFscmVhZHkgZG8gZm9yIGFueSBhcmJpdHJhcnkgZml4ZWQtcmVmcmVz aCByYXRlIGRpc3BsYXkuICBJZiBub3Qgc3VwcG9ydGVkIChzYXkgdGhlIGRybV9hdG9taWNfY2hl Y2sgZmFpbHMgd2l0aCAtRUlOVkFMIG9yIHNvbWV0aGluZyksIHRoZSB2aWRlbyBhcHAgZmFsbHMg Y2FuIHN0b3AgcmVxdWVzdGluZyBhIGZpeGVkIHRhcmdldF9mcmFtZV9kdXJhdGlvbl9ucy4KPiAK PiBBIGZ1bmRhbWVudGFsIHByb2JsZW0gSSBoYXZlIHdpdGggYSB0YXJnZXQgcHJlc2VudCB0aW1l IHRob3VnaCBpcyBob3cgdG8gYWNjb21tb2RhdGUgcHJlc2VudCB0aW1lcyB0aGF0IGFyZSBsYXJn ZXIgdGhhbiBvbmUgVlNZTkMgdGltZT8gIElmIG15IG1vbml0b3IgaGFzIGEgNDBIei02MEh6IHZh cmlhYmxlIHJlZnJlc2gsIGl0J3MgZWFzeSB0byB0cmFuc2xhdGUgIm15IGNvbnRlbnQgaXMgMjRI eiwgcmVwZWF0IHRoaXMgbmV4dCBmcmFtZSBhbiBpbnRlZ2VyIG11bHRpcGxlIG51bWJlciBvZiB0 aW1lcyBzbyB0aGF0IGl0IGxhbmRzIHdpdGhpbiB0aGUgbW9uaXRvciByYW5nZSIuICBEcml2ZXIg Zml4ZXMgZGlzcGxheSB0byBhbiBldmVuIDQ4SHogYW5kIGV2ZXJ5dGhpbmcgZ29vZCAobm8gd29y c2UgdGhhbiBhIDMwSHogY2xpcCBvbiBhIHRyYWRpdGlvbmFsIDYwSHogZGlzcGxheSBhbnl3YXlz KS4gIFRoaXMgZnJhbWUtZG91YmxpbmcgaXMgYWxsIGhhcmR3YXJlIGJhc2VkIGFuZCBkb2Vzbid0 IHJlcXVpcmUgYW55IHBvbGxpbmcuCj4gCj4gTm93IGlmIHlvdSBjaGFuZ2UgdGhhdCB0byAic2hv dyBteSBjb250ZW50IGluIGF0IGxlYXN0IFggbmFub3NlY29uZHMiIGl0IGNhbiB3b3JrIG9uIGFs bCBkaXNwbGF5cywgYnV0IHRoZSBpbnRlbnQgb2YgdGhlIGFwcCBpcyBnb25lIGFuZCBkcml2ZXIv R1BVL2Rpc3BsYXkgY2Fubm90IG9wdGltaXplLiAgRm9yIGV4YW1wbGUsIHRoZSBIRE1JIFZSUiBz cGVjIGRlZmluZXMgYSAiQ2luZW1hVlJSIiBtb2RlIHdoZXJlIHRhcmdldCByZWZyZXNoIHJhdGUg ZXJyb3IgaXMgYWNjb3VudGVkIGZvciBiYXNlZCBvbiAwLjElIGRldmlhdGlvbiBmcm9tIHJlcXVl c3RlZCBhbmQgdGhlIHZfdG90YWwgbGluZXMgYXJlIGluY3JlbWVudGVkL2RlY3JlbWVudGVkIHRv IGNvbXBlbnNhdGUuICBJZiB3ZSBkb24ndCBrbm93IHRoZSB0YXJnZXQgcmF0ZSwgd2Ugd2lsbCBu b3QgYmUgYWJsZSB0byBjb21wbHkgdG8gdGhpcyBpbmR1c3RyeSBzdGFuZGFyZCBzcGVjaWZpY2F0 aW9uLgoKT2theSwgdGhhdCdzIGludGVyZXN0aW5nLiBEb2VzIHRoaXMgbWVhbiB0aGF0IHRoZSBk aXNwbGF5IGRyaXZlciBzdGlsbCAKcHJvZ3JhbXMgYSByZWZyZXNoIHJhdGUgdG8gc29tZSBoYXJk d2FyZSByZWdpc3Rlcj8KCldoYXQgaWYgeW91IHdhbnQgdG8gaW5pdGlhdGUgc29tZSBDUFUtY29u dHJvbGxlZCBkcmlmdCwgaS5lLiB5b3Uga25vdyAKeW91J3JlIHRhcmdldGluZyAyKjI0SHosIGJ1 dCB5b3UnZCBsaWtlIHRvIHNoaWZ0IGFsbCBmbGlwIHRpbWVzIHRvIGJlIFggCm1zIGxhdGVyPyBD YW4geW91IHByb2dyYW0gaGFyZHdhcmUgZm9yIHRoYXQsIGFuZCBob3cgZG9lcyBpdCB3b3JrPyBE byAKaGF2ZSB5b3UgdHdpZGRsZSB0aGUgcmVmcmVzaCByYXRlLCBvciBjYW4gdGhlIGhhcmR3YXJl IGRvIGl0IG5hdGl2ZWx5PwoKSG93IGFib3V0IHdoYXQgSSB3cm90ZSBpbiBhbiBlYXJsaWVyIG1h aWwgb2YgaGF2aW5nIGF0dHJpYnV0ZXM6CgotIHRhcmdldF9wcmVzZW50X3RpbWVfbnMKLSBoaW50 X2ZyYW1lX3RpbWVfbnMgKG9wdGlvbmFsKQoKLi4uIGFuZCBpZiBhIHZpZGVvIHBsYXllciBzZXQg Ym90aCwgdGhlIGRyaXZlciBjb3VsZCBzdGlsbCBkbyB0aGUgCm9wdGltaXphdGlvbnMgeW91J3Zl IGV4cGxhaW5lZD8KCgo+IEFsc28sIGhvdyB3b3VsZCB5b3UgbWFuYWdlIGFuIGFic29sdXRlIHRh cmdldCBwcmVzZW50IHRpbWUgaW4ga2VybmVsPyAgSSBndWVzcyBhcHAgYW5kIGRyaXZlciBuZWVk IHRvIHVzZSBhIGNvbW1vbiBzeXN0ZW0gY2xvY2sgb3IgdGljayBjb3VudCwgYnV0IHdoZW4gd291 bGQgeW91IGtub3cgdG8gJ3dha2UgdXAnIGFuZCBleGVjdXRlIHRoZSBmbGlwPyAgSWYgeW91IHdh aXQgZm9yIFZTWU5DIHRoZW4geW91J2xsIGFsd2F5cyB0aW1lb3V0IG91dCBvbiB2X3RvdGFsX21h eCAoaS5lLiBtaW5pbXVtIHJlZnJlc2ggcmF0ZSksIGNoZWNrIHlvdXIgdGltZSBhbmQgc2VlICJ5 dXAsIG5lZWQgdG8gcHJlc2VudCBub3ciIGFuZCB0aGVuIGZsaXAuICBOb3cgeW91ciBtb25pdG9y IGp1c3QganVtcGVkIGZyb20gbG93ZXN0IHJlZnJlc2ggcmF0ZSB0byBzb21ldGhpbmcgZWxzZSB3 aGljaCBjYW4gY2F1c2Ugb3RoZXIgcHJvYmxlbXMuICBJZiB5b3UgdXNlIHNvbWUgdGltZXIsIHRo ZW4geW91J3JlIGJ1cm5pbmcgbmVlZGxlc3MgcG93ZXIgcG9sbGluZyBzb21lIGNvdW50ZXIgYW5k IHN0aWxsIHdvdWxkbid0IGhhdmUgdGhlIHNhbWUgYWNjdXJhY3kgeW91IGNvdWxkIGFjaGlldmUg d2l0aCBhIGZpeGVkIGR1cmF0aW9uLgoKRm9yIHRoZSBjbG9jaywgd2UganVzdCBoYXZlIHRvIHNw ZWNpZnkgd2hpY2ggb25lIHRvIHRha2UuIEkgYmVsaWV2ZSAKQ0xPQ0tfTU9OT1RPTklDIG1ha2Vz IHRoZSBtb3N0IHNlbnNlIGZvciB0aGlzIGtpbmQgb2YgdGhpbmcuCgpGb3IgeW91ciBvdGhlciBx dWVzdGlvbnMsIEknbSBhZnJhaWQgSSBqdXN0IGRvbid0IGtub3cgZW5vdWdoIGFib3V0IAptb2Rl cm4gZGlzcGxheSBoYXJkd2FyZSB0byBnaXZlIGEgcmVhbGx5IGdvb2QgYW5zd2VyLCBidXQgd2l0 aCBteSBuYWl2ZSAKdW5kZXJzdGFuZGluZyBJIHdvdWxkIGltYWdpbmUgc29tZXRoaW5nIGxpa2Ug dGhlIGZvbGxvd2luZzoKCjEuIFdoZW4gdGhlIGF0b21pYyBjb21taXQgaGFwcGVucywgdGhlIGRy aXZlciB0d2lkZGxlcyB3aXRoIHRoZSBkaXNwbGF5IAp0aW1pbmdzIHRvIGdldCB0aGUgc3RhcnQg b2Ygc2Nhbm91dCBmb3IgdGhlIG5leHQgZnJhbWUgYXMgY2xvc2UgYXMgCnBvc3NpYmxlIHRvIHRo ZSBzcGVjaWZpZWQgdGFyZ2V0IHByZXNlbnQgdGltZSAoSSBhc3N1bWUgdGhpcyBpcyB3aGF0IAp2 X3RvdGFsX21heCBpcyBhYm91dD8pCgoyLiBUaGUga2VybmVsIHRoZW4gc2NoZWR1bGVzIGEgdGlt ZXIgZm9yIHRoZSB0aW1lIHdoZW4gdGhlIGRpc3BsYXkgCmhhcmR3YXJlIGlzIGZpbmlzaGVkIHNj YW5uaW5nIG91dCB0aGUgcHJldmlvdXMgZnJhbWUgYW5kIHN0YXJ0cyB2YmxhbmsuCgozLiBJbiB0 aGUgaGFuZGxlciBmb3IgdGhhdCB0aW1lciwgdGhlIGtlcm5lbCBjaGVja3Mgd2hldGhlciBhbnkg ZmVuY2UgCmFzc29jaWF0ZWQgdG8gdGhlIG5ldyBmcmFtZSdzIHN1cmZhY2UgaGFzIHNpZ25hbGVk LiBJZiB5ZXMsIGl0IGNoYW5nZXMgCnRoZSBkaXNwbGF5IGhhcmR3YXJlJ3MgZnJhbWVidWZmZXIg cG9pbnRlciB0byB0aGUgbmV3IGZyYW1lLiBPdGhlcndpc2UsIAppdCBhdG9taWNhbGx5IHJlZ2lz dGVycyBmb3IgdGhlIGhhbmRsZXIgdG8gYmUgcnVuIGFnYWluIHdoZW4gdGhlIGZlbmNlIAppcyBz aWduYWxlZC4KCjNiLiBUaGUgaGFuZGxlciBzaG91bGQgY2hlY2sgaWYgdmJsYW5rIGhhcyBhbHJl YWR5IGVuZGVkIChlaXRoZXIgZHVlIHRvIApleHRyZW1lIENQVSBvdmVybG9hZCBvciBiZWNhdXNl IHRoZSBmZW5jZSB3YXMgc2lnbmFsZWQgdG9vIGxhdGUpLgoKQWN0dWFsbHksIHRoYXQgbGFzdCBw b2ludCBtYWtlcyBtZSB3b25kZXIgaG93IHRoZSBjYXNlIG9mICJwcmVzZW50IEFTQVAiIAppcyBh Y3R1YWxseSBpbXBsZW1lbnRlZCBpbiBoYXJkd2FyZS4KCkJ1dCBhZ2FpbiwgYWxsIHRoaXMgaXMg anVzdCBmcm9tIG15IG5haXZlIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGRpc3BsYXkgCmhhcmR3YXJl LgoKQ2hlZXJzLApOaWNvbGFpCgo+IAo+IFJlZ2FyZHMsCj4gICAgQXJpYwo+IAoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcg bGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==