From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.5 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B8C03C433E4 for ; Mon, 25 May 2020 15:41:30 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 895732071C for ; Mon, 25 May 2020 15:41:30 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="bL7fka2O" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 895732071C Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 8BA5389FDE; Mon, 25 May 2020 15:41:28 +0000 (UTC) Received: from mail-ot1-x343.google.com (mail-ot1-x343.google.com [IPv6:2607:f8b0:4864:20::343]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1371B89FDE for ; Mon, 25 May 2020 15:41:27 +0000 (UTC) Received: by mail-ot1-x343.google.com with SMTP id d7so14073452ote.6 for ; Mon, 25 May 2020 08:41:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=zYUPEElB6SHPIaR83Q3Yt5fFzV13Ip0LESvRbzBJyIQ=; b=bL7fka2OmqIPNvU4eqRQTo9buZO/2uzYTO/WEQHUiFIlOHj0ScnlII8JKkIfpEOBUP ANZ2qitDJNYbm86W6AucL7Tke1jYd5bmNQevH3Lf6sYo3RUgU/CsBFv8BF7chkhP9uZX wwlfFu/ZBNk0/2rhifTsTwP+VzFdxa6x3y7H0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=zYUPEElB6SHPIaR83Q3Yt5fFzV13Ip0LESvRbzBJyIQ=; b=pxtyuzo2AjDGauhezGIbUAC25V68LVEmqSOqk2eW952tC7n5u7UNYYUevT3Ceq5RsB vHd7mdgU71TvHDCKbeSoZGl08CqD4Mwr5bERDNoblkeNS4NB86ddJ4MSSnGqoNlMCzR+ BC9PT5D2ltFIYE0Xr+756dUeTK5EFMpzIUtIixs623zsseF7ErodTkAcxPDTv8H0hH/D 42+T2YXPYa0IBpUYQ0fHKlTKDVR66iraIT0rj3XOiPqqmUCRjmHIPwuK9hvG4chbnZ7U D8Ule6MQAiQFmXJlVREFGsnTc0ne8qyBl//Cs7GwWwPUodlbckk3KlJ+gaCGMkiwaELI AEFw== X-Gm-Message-State: AOAM53244GNBTDQAl4i8puISVrzH2NBEY+Opn17v005eV2JgzuzXsdIv 6XHLiRa7XJgpA2ZsuknMkX5JzPouSw0388y3wfX+hw== X-Google-Smtp-Source: ABdhPJxDeg6x5my5LKn+9Ue8mEioUs+sBVpXbgJDwHT0bo6qoMHMxf0oluqUVBmzdrIqQ6r5PPEDajJlyy1R+oTFe/A= X-Received: by 2002:a9d:768a:: with SMTP id j10mr5100612otl.188.1590421286362; Mon, 25 May 2020 08:41:26 -0700 (PDT) MIME-Version: 1.0 References: <20200512085944.222637-1-daniel.vetter@ffwll.ch> <20200512085944.222637-3-daniel.vetter@ffwll.ch> <158927426244.15653.14406159524439944950@build.alporthouse.com> In-Reply-To: <158927426244.15653.14406159524439944950@build.alporthouse.com> From: Daniel Vetter Date: Mon, 25 May 2020 17:41:15 +0200 Message-ID: Subject: Re: [RFC 02/17] dma-fence: basic lockdep annotations To: Chris Wilson X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-rdma , intel-gfx , LKML , amd-gfx list , "moderated list:DMA BUFFER SHARING FRAMEWORK" , DRI Development , Daniel Vetter , =?UTF-8?Q?Christian_K=C3=B6nig?= , "open list:DMA BUFFER SHARING FRAMEWORK" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" T24gVHVlLCBNYXkgMTIsIDIwMjAgYXQgMTE6MDQgQU0gQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJp cy13aWxzb24uY28udWs+IHdyb3RlOgo+Cj4gUXVvdGluZyBEYW5pZWwgVmV0dGVyICgyMDIwLTA1 LTEyIDA5OjU5OjI5KQo+ID4gRGVzaWduIGlzIHNpbWlsYXIgdG8gdGhlIGxvY2tkZXAgYW5ub3Rh dGlvbnMgZm9yIHdvcmtlcnMsIGJ1dCB3aXRoCj4gPiBzb21lIHR3aXN0czoKPiA+Cj4gPiAtIFdl IHVzZSBhIHJlYWQtbG9jayBmb3IgdGhlIGV4ZWN1dGlvbi93b3JrZXIvY29tcGxldGlvbiBzaWRl LCBzbyB0aGF0Cj4gPiAgIHRoaXMgZXhwbGljaXQgYW5ub3RhdGlvbiBjYW4gYmUgbW9yZSBsaWJl cmFsbHkgc3ByaW5rbGVkIGFyb3VuZC4KPiA+ICAgV2l0aCByZWFkIGxvY2tzIGxvY2tkZXAgaXNu J3QgZ29pbmcgdG8gY29tcGxhaW4gaWYgdGhlIHJlYWQtc2lkZQo+ID4gICBpc24ndCBuZXN0ZWQg dGhlIHNhbWUgd2F5IHVuZGVyIGFsbCBjaXJjdW1zdGFuY2VzLCBzbyBBQkJBIGRlYWRsb2Nrcwo+ ID4gICBhcmUgb2suIFdoaWNoIHRoZXkgYXJlLCBzaW5jZSB0aGlzIGlzIGFuIGFubm90YXRpb24g b25seS4KPiA+Cj4gPiAtIFdlJ3JlIHVzaW5nIG5vbi1yZWN1cnNpdmUgbG9ja2RlcCByZWFkIGxv Y2sgbW9kZSwgc2luY2UgaW4gcmVjdXJzaXZlCj4gPiAgIHJlYWQgbG9jayBtb2RlIGxvY2tkZXAg ZG9lcyBub3QgY2F0Y2ggcmVhZCBzaWRlIGhhemFyZHMuIEFuZCB3ZQo+ID4gICBfdmVyeV8gbXVj aCB3YW50IHJlYWQgc2lkZSBoYXphcmRzIHRvIGJlIGNhdWdodC4gRm9yIGZ1bGwgZGV0YWlscyBv Zgo+ID4gICB0aGlzIGxpbWl0YXRpb24gc2VlCj4gPgo+ID4gICBjb21taXQgZTkxNDk4NTg5NzQ2 MDY1ZTNhZTk1ZDlhMDBiMDY4ZTUyNWVlYzM0Zgo+ID4gICBBdXRob3I6IFBldGVyIFppamxzdHJh IDxwZXRlcnpAaW5mcmFkZWFkLm9yZz4KPiA+ICAgRGF0ZTogICBXZWQgQXVnIDIzIDEzOjEzOjEx IDIwMTcgKzAyMDAKPiA+Cj4gPiAgICAgICBsb2NraW5nL2xvY2tkZXAvc2VsZnRlc3RzOiBBZGQg bWl4ZWQgcmVhZC13cml0ZSBBQkJBIHRlc3RzCj4gPgo+ID4gLSBUbyBhbGxvdyBuZXN0aW5nIG9m IHRoZSByZWFkLXNpZGUgZXhwbGljaXQgYW5ub3RhdGlvbnMgd2UgZXhwbGljaXRseQo+ID4gICBr ZWVwIHRyYWNrIG9mIHRoZSBuZXN0aW5nLiBsb2NrX2lzX2hlbGQoKSBhbGxvd3MgdXMgdG8gZG8g dGhhdC4KPiA+Cj4gPiAtIFRoZSB3YWl0LXNpZGUgYW5ub3RhdGlvbiBpcyBhIHdyaXRlIGxvY2ss IGFuZCBlbnRpcmVseSBkb25lIHdpdGhpbgo+ID4gICBkbWFfZmVuY2Vfd2FpdCgpIGZvciBldmVy eW9uZSBieSBkZWZhdWx0Lgo+ID4KPiA+IC0gVG8gYmUgYWJsZSB0byBmcmVlbHkgYW5ub3RhdGUg aGVscGVyIGZ1bmN0aW9ucyBJIHdhbnQgdG8gbWFrZSBpdCBvawo+ID4gICB0byBjYWxsIGRtYV9m ZW5jZV9iZWdpbi9lbmRfc2lnbmFsbGluZyBmcm9tIHNvZnQvaGFyZGlycSBjb250ZXh0Lgo+ID4g ICBGaXJzdCBhdHRlbXB0IHdhcyB1c2luZyB0aGUgaGFyZGlycSBsb2NraW5nIGNvbnRleHQgZm9y IHRoZSB3cml0ZQo+ID4gICBzaWRlIGluIGxvY2tkZXAsIGJ1dCB0aGlzIGZvcmNlcyBhbGwgbm9y bWFsIHNwaW5sb2NrcyBuZXN0ZWQgd2l0aGluCj4gPiAgIGRtYV9mZW5jZV9iZWdpbi9lbmRfc2ln bmFsbGluZyB0byBiZSBzcGlubG9ja3MuIFRoYXQgYm9sbG9ja3MuCj4gPgo+ID4gICBUaGUgYXBw cm9hY2ggbm93IGlzIHRvIHNpbXBsZSBjaGVjayBpbl9hdG9taWMoKSwgYW5kIGZvciB0aGVzZSBj YXNlcwo+ID4gICBlbnRpcmVseSByZWx5IG9uIHRoZSBtaWdodF9zbGVlcCgpIGNoZWNrIGluIGRt YV9mZW5jZV93YWl0KCkuIFRoYXQKPiA+ICAgd2lsbCBjYXRjaCBhbnkgd3JvbmcgbmVzdGluZyBh Z2FpbnN0IHNwaW5sb2NrcyBmcm9tIHNvZnQvaGFyZGlycQo+ID4gICBjb250ZXh0cy4KPiA+Cj4g PiBUaGUgaWRlYSBoZXJlIGlzIHRoYXQgZXZlcnkgY29kZSBwYXRoIHRoYXQncyBjcml0aWNhbCBm b3IgZXZlbnR1YWxseQo+ID4gc2lnbmFsbGluZyBhIGRtYV9mZW5jZSBzaG91bGQgYmUgYW5ub3Rh dGVkIHdpdGgKPiA+IGRtYV9mZW5jZV9iZWdpbi9lbmRfc2lnbmFsbGluZy4gVGhlIGFubm90YXRp b24gaWRlYWxseSBzdGFydHMgcmlnaHQKPiA+IGFmdGVyIGEgZG1hX2ZlbmNlIGlzIHB1Ymxpc2hl ZCAoYWRkZWQgdG8gYSBkbWFfcmVzdiwgZXhwb3NlZCBhcyBhCj4gPiBzeW5jX2ZpbGUgZmQsIGF0 dGFjaGVkIHRvIGEgZHJtX3N5bmNvYmogZmQsIG9yIGFueXRoaW5nIGVsc2UgdGhhdAo+ID4gbWFr ZXMgdGhlIGRtYV9mZW5jZSB2aXNpYmxlIHRvIG90aGVyIGtlcm5lbCB0aHJlYWRzKSwgdXAgdG8g YW5kCj4gPiBpbmNsdWRpbmcgdGhlIGRtYV9mZW5jZV93YWl0KCkuIEV4YW1wbGVzIGFyZSBpcnEg aGFuZGxlcnMsIHRoZQo+ID4gc2NoZWR1bGVyIHJ0IHRocmVhZHMsIHRoZSB0YWlsIG9mIGV4ZWNi dWYgKGFmdGVyIHRoZSBjb3JyZXNwb25kaW5nCj4gPiBmZW5jZXMgYXJlIHZpc2libGUpLCBhbnkg d29ya2VycyB0aGF0IGVuZCB1cCBzaWduYWxsaW5nIGRtYV9mZW5jZXMgYW5kCj4gPiByZWFsbHkg YW55dGhpbmcgZWxzZS4gTm90IGFubm90YXRlZCBzaG91bGQgYmUgY29kZSBwYXRocyB0aGF0IG9u bHkKPiA+IGNvbXBsZXRlIGZlbmNlcyBvcHBvcnR1bmlzdGljYWxseSBhcyB0aGUgZ3B1IHByb2dy ZXNzZXMsIGxpa2UgZS5nLgo+ID4gc2hyaW5rZXIvZXZpY3Rpb24gY29kZS4KPiA+Cj4gPiBUaGUg bWFpbiBjbGFzcyBvZiBkZWFkbG9ja3MgdGhpcyBpcyBzdXBwb3NlZCB0byBjYXRjaCBhcmU6Cj4g Pgo+ID4gVGhyZWFkIEE6Cj4gPgo+ID4gICAgICAgICBtdXRleF9sb2NrKEEpOwo+ID4gICAgICAg ICBtdXRleF91bmxvY2soQSk7Cj4gPgo+ID4gICAgICAgICBkbWFfZmVuY2Vfc2lnbmFsKCk7Cj4g Pgo+ID4gVGhyZWFkIEI6Cj4gPgo+ID4gICAgICAgICBtdXRleF9sb2NrKEEpOwo+ID4gICAgICAg ICBkbWFfZmVuY2Vfd2FpdCgpOwo+ID4gICAgICAgICBtdXRleF91bmxvY2soQSk7Cj4gPgo+ID4g VGhyZWFkIEIgaXMgYmxvY2tlZCBvbiBBIHNpZ25hbGxpbmcgdGhlIGZlbmNlLCBidXQgQSBuZXZl ciBnZXRzIGFyb3VuZAo+ID4gdG8gdGhhdCBiZWNhdXNlIGl0IGNhbm5vdCBhY3F1aXJlIHRoZSBs b2NrIEEuCj4gPgo+ID4gTm90ZSB0aGF0IGRtYV9mZW5jZV93YWl0KCkgaXMgYWxsb3dlZCB0byBi ZSBuZXN0ZWQgd2l0aGluCj4gPiBkbWFfZmVuY2VfYmVnaW4vZW5kX3NpZ25hbGxpbmcgc2VjdGlv bnMuIFRvIGFsbG93IHRoaXMgdG8gaGFwcGVuIHRoZQo+ID4gcmVhZCBsb2NrIG5lZWRzIHRvIGJl IHVwZ3JhZGVkIHRvIGEgd3JpdGUgbG9jaywgd2hpY2ggbWVhbnMgdGhhdCBhbnkKPiA+IG90aGVy IGxvY2sgaXMgYWNxdWlyZWQgYmV0d2VlbiB0aGUgZG1hX2ZlbmNlX2JlZ2luX3NpZ25hbGxpbmco KSBjYWxsIGFuZAo+ID4gdGhlIGNhbGwgdG8gZG1hX2ZlbmNlX3dhaXQoKSwgYW5kIHN0aWxsIGhl bGQsIHRoaXMgd2lsbCByZXN1bHQgaW4gYW4KPiA+IGltbWVkaWF0ZSBsb2NrZGVwIGNvbXBsYWlu dC4gVGhlIG9ubHkgb3RoZXIgb3B0aW9uIHdvdWxkIGJlIHRvIG5vdAo+ID4gYW5ub3RhdGUgc3Vj aCBjYWxscywgZGVmZWF0aW5nIHRoZSBwb2ludC4gVGhlcmVmb3JlIHRoZXNlIGFubm90YXRpb25z Cj4gPiBjYW5ub3QgYmUgc3ByaW5rbGVkIG92ZXIgdGhlIGNvZGUgZW50aXJlbHkgbWluZGxlc3Mg dG8gYXZvaWQgZmFsc2UKPiA+IHBvc2l0aXZlcy4KPiA+Cj4gPiB2MjogaGFuZGxlIHNvZnQvaGFy ZGlycSBjdHggYmV0dGVyIGFnYWluc3Qgd3JpdGUgc2lkZSBhbmQgZG9udCBmb3JnZXQKPiA+IEVY UE9SVF9TWU1CT0wsIGRyaXZlcnMgY2FuJ3QgdXNlIHRoaXMgb3RoZXJ3aXNlLgo+ID4KPiA+IENj OiBsaW51eC1tZWRpYUB2Z2VyLmtlcm5lbC5vcmcKPiA+IENjOiBsaW5hcm8tbW0tc2lnQGxpc3Rz LmxpbmFyby5vcmcKPiA+IENjOiBsaW51eC1yZG1hQHZnZXIua2VybmVsLm9yZwo+ID4gQ2M6IGFt ZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiBDYzogaW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwo+ID4gQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVr Pgo+ID4gQ2M6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRl bC5jb20+Cj4gPiBDYzogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29t Pgo+ID4gU2lnbmVkLW9mZi1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBpbnRlbC5j b20+Cj4gPiAtLS0KPiA+ICBkcml2ZXJzL2RtYS1idWYvZG1hLWZlbmNlLmMgfCA1MyArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gPiAgaW5jbHVkZS9saW51eC9kbWEtZmVu Y2UuaCAgIHwgMTIgKysrKysrKysrCj4gPiAgMiBmaWxlcyBjaGFuZ2VkLCA2NSBpbnNlcnRpb25z KCspCj4gPgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtZmVuY2UuYyBiL2Ry aXZlcnMvZG1hLWJ1Zi9kbWEtZmVuY2UuYwo+ID4gaW5kZXggNjgwMjEyNTM0OWZiLi5kNWMwZmQy ZWZjNzAgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2RtYS1idWYvZG1hLWZlbmNlLmMKPiA+ICsr KyBiL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtZmVuY2UuYwo+ID4gQEAgLTExMCw2ICsxMTAsNTIgQEAg dTY0IGRtYV9mZW5jZV9jb250ZXh0X2FsbG9jKHVuc2lnbmVkIG51bSkKPiA+ICB9Cj4gPiAgRVhQ T1JUX1NZTUJPTChkbWFfZmVuY2VfY29udGV4dF9hbGxvYyk7Cj4gPgo+ID4gKyNpZmRlZiBDT05G SUdfTE9DS0RFUAo+ID4gK3N0cnVjdCBsb2NrZGVwX21hcCAgICAgZG1hX2ZlbmNlX2xvY2tkZXBf bWFwID0gewo+ID4gKyAgICAgICAubmFtZSA9ICJkbWFfZmVuY2VfbWFwIgo+ID4gK307Cj4KPiBO b3QgYW5vdGhlciBmYWxzZSBnbG9iYWwgc2hhcmluZyBsb2NrbWFwLgoKU28gaW4gc29tZSBtZWV0 aW5ncyB5b3UgYWxzbyBtZW50aW9uZWQgbmVzdGluZyBpcyBnb2luZyB0byBiZSBhCnByb2JsZW0g aGVyZS4gSSBzZWUgYWJvdXQgdGhyZWUgZGlmZmVyZW50IGtpbmRzIG9mIG5lc3RpbmcgaGVyZSwg YnV0Cm5vbmUgc2hvdWxkIGJlIGEgZnVuZGFtZW50YWwgcHJvYmxlbToKCi0gbmVzdGluZyBvZiBm ZW5jZSBkcml2ZXJzLCBzcGVjaWZpY2FsbHkgdGhlIHN5bmNvYmogdGltZWxpbmUgZmVuY2VzCmJ1 dCB0aGVyZSdzIG90aGVycyBhcm91bmQgZG1hX2ZlbmNlLT5sb2NrLiBUaGlzIHNlcmllcyBpcyBh Ym91dApibG9ja2luZyBkZWFkbG9ja3MsIGl0IGRvZXNuJ3QgY2FyZSBhYm91dCBpcnFzYXZlIHNw aW5sb2NrcyBhdCBhbGwuIFNvCmFsbCB0aGUgbmVzdGluZyBnb2luZyBvbiB0aGVyZSBpcyBlbnRp cmVseSB1bmNoYW5nZWQuIFZhbGlkYXRpb24KYWdhaW5zdCBhdG9taWMgc2VjdGlvbiByZWxpZXMg b24gdGhlIG1pZ2h0X3NsZWVwIGFubm90YXRpb24gaW4gdGhlCmZpcnN0IHBhdGNoLgoKLSBuZXN0 aW5nIG9mIGNhbGxlcnMsIGZvciBiZXR0ZXIgY29kZSBjb21wb3NhYmlsaXR5LiBUaGUgYW5ub3Rh dGlvbnMKYXJlIHJlY3Vyc2l2ZSwgSSd2ZSB0ZXN0ZWQgaXQgd2l0aCBhbWRncHUsIHdvcmtzLgoK LSBuZXN0aW5nIG9mIHRpbWVsaW5lcywgd2hlcmUgZS5nLiB5b3UgaGF2ZSBzb21lIHNjaGVkdWxl ciBjb21wbGV0aW9uCmV2ZW50cyB0aGF0IGRyaXZlIHRoZSBzY2hlZHVsZXIgbG9naWMsIHdoaWNo IGV2ZW50dWFsbHkgd2lsbCBhbHNvCnJlc3VsdCBpbiB1c2Vyc3BhY2UgdmlzaWJsZSBmZW5jZXMg b24gc29tZSBjb250ZXh0IGdldHRpbmcgY29tcGxldGVkLgpXb3JrcyBmb3IgYW1kZ3B1LCB0aGF0 J3Mgd2h5IEkgYW5ub3RhdGVkIHRoZSBzY2hlZHVsZXIuIEFsc28sIG5vdCBhCnByb2JsZW0gZm9y IHR3byByZWFzb25zOgoKMS4gdWFwaSByZWxldmFudCBmZW5jZXMgYXJlIHRoZSByZWxldmFudCBm ZW5jZXMgZm9yIHRoZSBjcm9zcy1kcml2ZXIKY29udHJhY3QuIEJ1aWxkaW5nIHNvbWV0aGluZyBv dXRzaWRlIG9mIHRoZW0gZmV3IGZld2VyIGNvbnN0cmFpbnRzCmRvZXNuJ3QgbWFrZSBzZW5zZSwg dGhhdCB3b3VsZCBqdXN0IG1lYW4gd2UgbWFrZSB0aGUgZG1hX2ZlbmNlCmNyb3NzLWRyaXZlciBj b250cmFjdCBsZXNzIHN0cmljdCAoYnV0IHRoZW4gZm9yIGV2ZXJ5b25lLCBub3QganVzdCBmb3IK b25lIGRyaXZlciwgY2F1c2UgdGhhdCBhc3ltbWV0cmljIGRvZXNuJ3QgcmVhbGx5IHdvcmspCgoy LiBmZW5jZXMgZW50aXJlbHkgaGlkZGVuIGluIGRyaXZlcnMsIHdoaWNoIGRyaXZlciBzb21ldGhp bmcKdW5kZXJuZWF0aCB0aGUgdWFwaSB2aXNpYmxlIGZlbmNlcyAobGlrZSBzY2hlZHVsZXIgb3Ig d2hhdGV2ZXIpLiBUaG9zZQpjYW4gYmUgbW9yZSBjb25zdHJhaW50LCBidXQgYXMgbG9uZyBhcyB0 aGV5J3JlIGRyaXZpbmcgdGhlIHB1YmxpYwpmZW5jZXMsIGNhbid0IGJlIGxlc3MgY29uc3RyYWlu ZWQuIFNvIGNyb3NzLWRyaXZlciBhbm5vdGF0aW9ucyBkb24ndApnaXZlIHlvdSBhbnkgbGltaXRh dGlvbnMsIHlvdSBzdGlsbCBjYW4gZG8geW91ciBvd24gZHJpdmVyLWludGVybmFsCmFubm90YXRp b25zIHRvIHRyYWNrIHRoaXMgbW9yZSBzdHJpY3QgY29uc3RyYWludHMuCgpTbyByZWFsbHkgbm90 IHNlZWluZyB0aGUgZmVuY2UgbmVzdGluZyBpc3N1ZSBoZXJlLCBlaXRoZXIgaXQncyBhCnRvdGFs bHkgZGlmZmVyZW50IG9uZSwgb3IgSSdtIG1pc3VuZGVyc3Rvb2Qgc29tZXRoaW5nLgoKSSBndWVz cyB0aGUgb3RoZXIgaXNzdWUgaXMgdGhhdCB0aGVyZSdzIGEgdG9uIG9mIGNvZGUgdGhhdCdzIGJy b2tlbgphbGwgYXJvdW5kIGluIHZhcmlvdXMgZHJpdmVycywgYnV0IHRoYXQncyB3aHkgdGhlIFJG QyBwYXJ0LiBJCnNwZWNpZmljYWxseSBoaWdobGlnaHRlZCB0aGF0IHRoZSBwcmltaW5nIHBhdGNo IG5lZWRzIHNvbWUgc2VyaW91cwpkaXNjdXNzaW9uLCBidXQgIm5vcGUgSSBkb24ndCB3YW50IGEg Y3Jvc3MgZHJpdmVyIGNvbnRyYWN0IiByZWFsbHkKaXNuJ3QgdGhhdC4KCkNoZWVycywgRGFuaWVs Ci0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgor NDEgKDApIDc5IDM2NSA1NyA0OCAtIGh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QK ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=