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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 772B1C7EE23 for ; Fri, 26 May 2023 15:46:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:To:Subject:MIME-Version: Date:Message-ID:Reply-To:Cc:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=6g2DC5Ap04fliPjkiM9FF+BRaEzyTZmMEbxVDPAiH6w=; b=VS8nKgJQgFynFT+AoYXdqODCr8 5m7mum0Zx0O5YXA9QZfU4L1vTpVP1SRAr4KzEpbNg/HjvVcC/5GJKPYxAvUbCneOn2UN7g5p9o+dP I7bA/ksgSD9owg3iltFpbMJ4fD/Lagz2TAbfGdMU+5dWebwTfnVu0LjmJEuOZscflN+7+r8rQrWed SwRTdZaY+t+8fwOMvoMTd4RmjdEQ+mOPe5RgaYfxVKxlyLEnPZjvseJZUpYW5PkCS/jSwXWL62ZWL ofbvD+opyikUFhpHCwcI9HoZG01RWhJ93HY7Fnl0uf3YXgjSfx7dgjCjEiorjzTt4eMV+e/65cbbn cUYdz9KA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1q2Zdb-0031Bs-3D; Fri, 26 May 2023 15:45:55 +0000 Received: from mail-wr1-x443.google.com ([2a00:1450:4864:20::443]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1q2ZdX-0031AJ-2O for linux-arm-kernel@lists.infradead.org; Fri, 26 May 2023 15:45:55 +0000 Received: by mail-wr1-x443.google.com with SMTP id ffacd0b85a97d-30ad752f433so511270f8f.3 for ; Fri, 26 May 2023 08:45:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20221208.gappssmtp.com; s=20221208; t=1685115949; x=1687707949; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=OX879Xbtaq85/UPwb2f8tq7maPJyO+QLeOiqV5vIfjA=; b=wcwdcdzgtFryBiRdWxpCymHOki7j+wUintN3/adfIJ575HFiGwWvvLiGL3NjuxwRQ3 gnUjpSgJCSKNn+8anAU5m8DeoSjJYKZLGPLMI87dIP859SN/KobgtxhHNXERf3MpE9K5 wJZUC7GW/spdUYxb446kFGqU4Uox1guSsugZJ1mL4Sxg+LrCdgMTx4Y4akJ/Mt/7RFwi B5nFj66Up8V+9vb6gRJa0CQVT00R3zPujsuOvvvrh439gLa0zVGQpFB4Xigr6dOrgHbQ bI0KYS1ghZCHj0a5KknxdXkNKb6dYjp57m9fazVfgxJPBaDmVRu6NgMEzB6jnFMUzpvT dqXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685115949; x=1687707949; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=OX879Xbtaq85/UPwb2f8tq7maPJyO+QLeOiqV5vIfjA=; b=abqDZthZ+4w4M1skrLhvrSV3GaDADF8yF0iQ9mmdabqNqRIWv+zHYVm7ghV2Pz0xG4 NL/YrMU4DZDC+RJP0SnpjG3ckfDBNcp+TRohcp7AJtiiEhx5Pr3o9LHz3r0qPOMCQDFF brXu1qCAvf4lEotdapmjAm/tw6NkHkGMrB1JjQMyyWOMdc7Geo/VVosaf2NMiRhpD2uI ZSdMsRxwF2IePxqeYkzwzpuOq3hdDvtd4Beg+0fDKsX+UrDnEv7JnsNLUfwKrmYwapum 6ASKtgWZhi2z9In+atvrDJ7ia3K5IRCMZDz/ahRSKlWAlsZzaDPE4ijbMjd7ClxDOPPR AWdA== X-Gm-Message-State: AC+VfDyBwPiLVaeKjGhWOsXggN27098o3hxGqVwxCGW2OzGDCmLJSAlm 6L0+3V2pPvgoAZrUd5CsClRc9Q== X-Google-Smtp-Source: ACHHUZ5UA+yXPBx7fP3hSIrT+zIrLky1zEBpDc0IHgjMDGgcI9UwC6u1LCxdVBVyifx+CDLiyp1GIA== X-Received: by 2002:a5d:6ac4:0:b0:309:e24:57b0 with SMTP id u4-20020a5d6ac4000000b003090e2457b0mr2066240wrw.30.1685115949116; Fri, 26 May 2023 08:45:49 -0700 (PDT) Received: from [10.1.4.6] (laubervilliers-658-1-213-31.w90-63.abo.wanadoo.fr. [90.63.244.31]) by smtp.gmail.com with ESMTPSA id c11-20020adfe74b000000b0030630120e56sm2580734wrn.57.2023.05.26.08.45.47 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 26 May 2023 08:45:48 -0700 (PDT) Message-ID: <01591ec1-7c87-514c-047b-bec1c45ddfa5@baylibre.com> Date: Fri, 26 May 2023 17:45:47 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 Subject: Re: [PATCH 0/7] Add a DRM driver to support AI Processing Unit (APU) Content-Language: en-US To: Oded Gabbay , Kevin Hilman , Jeffrey Hugo , airlied@gmail.com, maarten.lankhorst@linux.intel.com, mripard@kernel.org, tzimmermann@suse.de, devicetree@vger.kernel.org, conor+dt@kernel.org, bero@baylibre.com, jstephan@baylibre.com, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, christian.koenig@amd.com, linaro-mm-sig@lists.linaro.org, robh+dt@kernel.org, linux-mediatek@lists.infradead.org, nbelin@baylibre.com, krzysztof.kozlowski+dt@linaro.org, matthias.bgg@gmail.com, linux-media@vger.kernel.org, sumit.semwal@linaro.org, linux-arm-kernel@lists.infradead.org, angelogioacchino.delregno@collabora.com References: <20230517145237.295461-1-abailon@baylibre.com> <7ha5xud3m7.fsf@baylibre.com> From: Alexandre Bailon In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230526_084551_782617_4BF00BB8 X-CRM114-Status: GOOD ( 47.95 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org CgpPbiA1LzI0LzIzIDEyOjQwLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+IE9uIFdlZCwgTWF5IDI0 LCAyMDIzIGF0IDAxOjI3OjAwUE0gKzAzMDAsIE9kZWQgR2FiYmF5IHdyb3RlOgo+PiBPbiBXZWQs IE1heSAyNCwgMjAyMyBhdCAyOjM04oCvQU0gS2V2aW4gSGlsbWFuIDxraGlsbWFuQGJheWxpYnJl LmNvbT4gd3JvdGU6Cj4+Pgo+Pj4gSmVmZnJleSBIdWdvIDxxdWljX2podWdvQHF1aWNpbmMuY29t PiB3cml0ZXM6Cj4+Pgo+Pj4+IE9uIDUvMTcvMjAyMyA4OjUyIEFNLCBBbGV4YW5kcmUgQmFpbG9u IHdyb3RlOgo+Pj4+PiBUaGlzIGFkZHMgYSBEUk0gZHJpdmVyIHRoYXQgaW1wbGVtZW50cyBjb21t dW5pY2F0aW9uIGJldHdlZW4gdGhlIENQVSBhbmQgYW4KPj4+Pj4gQVBVLiBUaGUgZHJpdmVyIHRh cmdldCBlbWJlZGRlZCBkZXZpY2UgdGhhdCB1c3VhbGx5IHJ1biBpbmZlcmVuY2UgdXNpbmcgc29t ZQo+Pj4+PiBwcmVidWlsdCBtb2RlbHMuIFRoZSBnb2FsIGlzIHRvIHByb3ZpZGUgY29tbW9uIGlu ZnJhc3RydWN0dXJlIHRoYXQgY291bGQgYmUKPj4+Pj4gcmUtdXNlZCB0byBzdXBwb3J0IG1hbnkg YWNjZWxlcmF0b3JzLiBCb3RoIGtlcm5lbCwgdXNlcnNwYWNlIGFuZCBmaXJtd2FyZSB0cmllcwo+ Pj4+PiB0byB1c2Ugc3RhbmRhcmQgYW5kIGV4aXN0aW5nIHRvIGxldmVyYWdlIHRoZSBkZXZlbG9w bWVudCBhbmQgbWFpbnRlbmFuY2UgZWZmb3J0Lgo+Pj4+PiBUaGUgc2VyaWVzIGltcGxlbWVudHMg dHdvIHBsYXRmb3JtIGRyaXZlcnMsIG9uZSBmb3Igc2ltdWxhdGlvbiBhbmQgYW5vdGhlciBvbmUg Zm9yCj4+Pj4+IHRoZSBtdDgxODMgKGNvbXBhdGlibGUgd2l0aCBtdDgzNjUpLgo+Pj4+Cj4+Pj4g VGhpcyBsb29rcyBsaWtlIHRoZSAzIGV4aXN0aW5nIEFjY2VsIGRyaXZlcnMuICBXaHkgaXMgdGhp cyBpbiBEUk0/Cj4+Pgo+Pj4gWWVzLCB0aGlzIGJlbG9uZ3MgaW4gYWNjZWwuICBJIHRoaW5rIEFs ZXggaGFkIHNvbWUgaXNzdWVzIGFyb3VuZCB0aGUKPj4+IGluZnJhIGluIGFjY2VsIHdpdGggZGV2 aWNlIG5vZGVzIG5vdCBhcHBlYXJpbmcvb3BlbmluZyBwcm9wZXJseSwgYnV0Cj4+PiBJJ2xsIGxl dCBoaW0gY29tbWVudCB0aGVyZS4gIEJ1dCBlaXRoZXIgd2F5LCB0aGUgcmlnaHQgYXBwcm9hY2gg c2hvdWxkCj4+PiBiZSB0byBmaXggYW55IGlzc3VlcyBpbiBhY2NlbCBhbmQgbW92ZSBpdCB0aGVy ZS4KPj4+Cj4+PiBbLi4uXQo+Pj4KPj4+Pj4gICAgLi4uL2RldmljZXRyZWUvYmluZGluZ3MvZ3B1 L210ayxhcHUtZHJtLnlhbWwgIHwgIDM4ICsrCj4+Pj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9LY29u ZmlnICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArCj4+Pj4+ICAgIGRyaXZlcnMvZ3B1L2Ry bS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCj4+Pj4+ICAgIGRyaXZlcnMv Z3B1L2RybS9hcHUvS2NvbmZpZyAgICAgICAgICAgICAgICAgICB8ICAyMiArCj4+Pj4+ICAgIGRy aXZlcnMvZ3B1L2RybS9hcHUvTWFrZWZpbGUgICAgICAgICAgICAgICAgICB8ICAxMCArCj4+Pj4+ ICAgIGRyaXZlcnMvZ3B1L2RybS9hcHUvYXB1X2Rydi5jICAgICAgICAgICAgICAgICB8IDI4MiAr KysrKysrKysKPj4+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2FwdS9hcHVfZ2VtLmMgICAgICAgICAg ICAgICAgIHwgMjMwICsrKysrKysKPj4+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2FwdS9hcHVfaW50 ZXJuYWwuaCAgICAgICAgICAgIHwgMjA1ICsrKysrKwo+Pj4+PiAgICBkcml2ZXJzL2dwdS9kcm0v YXB1L2FwdV9zY2hlZC5jICAgICAgICAgICAgICAgfCA1OTIgKysrKysrKysrKysrKysrKysrCj4+ Pj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9hcHUvc2ltdV9hcHUuYyAgICAgICAgICAgICAgICB8IDMx MyArKysrKysrKysKPj4+Pj4gICAgaW5jbHVkZS91YXBpL2RybS9hcHVfZHJtLmggICAgICAgICAg ICAgICAgICAgIHwgIDgxICsrKwo+Pj4+Cj4+Pj4gImFwdSIgc2VlbXMgdG9vIGdlbmVyaWMuICBX ZSBhbHJlYWR5IGhhdmUgMyAiQUkgcHJvY2Vzc2luZyB1bml0cyIgb3Zlcgo+Pj4+IGluIGRyaXZl cnMvYWNjZWwgYWxyZWFkeS4uLgo+Pj4KPj4+IEluZGVlZCwgaXQgaXMgZ2VuZXJpYywgYnV0IHRo YXQncyBraW5kIG9mIHRoZSBwb2ludCBmb3IgdGhpcyBkcml2ZXIKPj4+IHNpbmNlIGl0J3MgdGFy Z2V0dGVkIGF0IGdlbmVyYWxpemluZyB0aGUgaW50ZXJmYWNlIHdpdGggIkFJIHByb2Nlc3NpbmcK Pj4+IHVuaXRzIiBvbiBhIGdyb3dpbmcgbnVtYmVyIG9mIGVtYmVkZGVkIFNvQ3MgKEFSTSwgUklT Qy1WLCBldGMuKSAgSW4KPj4+IGFkZGl0aW9uLCB0aGUgZ2VuZXJpYyBuYW1pbmcgaXMgaW50ZW50 aW9uYWwgYmVjYXVzZSB0aGUgZ29hbCBpcyBiaWdnZXIKPj4+IHRoYW4gdGhlIGtlcm5lbCBhbmQg aXMgd29ya2luZyB0b3dhcmRzIGEgZ2VuZXJpYywgc2hhcmVkICJsaWJBUFUiCj4+PiB1c2Vyc3Bh Y2VbMV0sIGJ1dCBhbHNvIGNvbW1vbiBmaXJtd2FyZSBmb3IgRFNQLXN0eWxlIGluZmVyZW5jZSBl bmdpbmVzCj4+PiAoZS5nLiBhbmFsZ291cyBTb3VuZCBPcGVuIEZpcm13YXJlIGZvciBhdWRpbyBE U1BzLikKPj4+Cj4+PiBBcyB1c3VhbCwgdGhlIHZhcmlvdXMgU29DIHZlbmRvcnMgdXNlIGRpZmZl cmVudCBuYW1lcyAoQVBVLCBOUFUsIE5OCj4+PiB1bml0LCBldGMuKSAgYnV0IHdlJ2QgbGlrZSBh IGdlbmVyaWMgbmFtZSBmb3IgdGhlIGNsYXNzIG9mIGRldmljZXMKPj4+IHRhcmdldHRlZCBieSB0 aGlzIGRyaXZlci4gIEFuZCB1bmZvcnR1bmF0ZWx5LCBpdCBsb29rcyBsaWtlIHRoZSBlcXVhbGx5 Cj4+PiBnZW5lcmljICJWZXJzYXRpbGUgcHJvY2Vzc2luZyB1bml0IiBpcyBhbHJlYWR5IHRha2Vu IEludGVsJ3MKPj4+IGRyaXZlcnMvYWNjZWwvaXZwdS4gOikKPj4+Cj4+PiBNYXliZSBzaW5jZSB0 aGlzIGlzIG1vcmUgYWJvdXQgZ2VuZXJhbGl6aW5nIHRoZSBpbnRlcmZhY2UgYmV0d2VlbiB0aGUK Pj4+IENQVSBydW5uaW5nIGxpbnV4IGFuZCB0aGUgQVBVLCB3aGF0IGFib3V0IHRoZSBuYW1lIGFw dV9pZj8gIEJ1dCBJIGd1ZXNzCj4+PiB0aGF0IGFwcGxpZXMgdG8gdGhlIG90aGVyIDMgZHJpdmVy cyBpbiBkcml2ZXJzL2FjY2VsbCBhbHNvLiAgSG1tbS4uLgo+Pj4KPj4+IE5hbWluZyB0aGluZ3Mg aXMgaGFyZFsyXSwgc28gd2UncmUgZGVmaW5pdGx5IG9wZW4gdG8gb3RoZXIgaWRlYXMuICBBbnkK Pj4+IHN1Z2dlc3Rpb25zPwo+PiBNYXliZSBtb2RlbCBpdCBhY2NvcmRpbmcgdG8gdGhlIHRpbnkg ZHJpdmVyIGluIGRybSBkaXNwbGF5ID8gWW91IGNhbgo+PiB0aGVuIGNhbGwgaXQgdGlueV9hcHUg Oi0pCj4+IERpc2Nsb3N1cmU6IEl0IHdhcyBEYW5pZWwncyBzdWdnZXN0aW9uLCBoZSBjYW4gY2hp bWUgaW4gd2l0aCBtb3JlCj4+IGRldGFpbHMgb24gdGhlIHRpbnkgZHJpdmVyIGNvbmNlcHQuCj4g Cj4gWWVhaCBzbyBtYXliZSBhIGJpdCBtb3JlIGRldGFpbCBvbiBteSB0aG91Z2h0czoKPiAKPiBG aXJzdCB0aGlzIHNtZWxscyBsaWtlIGEgbmVlZCBieXBhc3Mgb2YgdGhlIGVudGlyZSAid2Ugd2Fu dCBvcGVuIHVzZXJzcGFjZQo+IGZvciBhY2NlbCBkcml2ZXJzIiBydWxlLiBUaGUgcnVsZSBpc24n dCBxdWl0ZSBhIHN0cmljdCBhcyBmb3IgZHJtIGdwdQo+IGRyaXZlcnMgKG5vdCBzdXJlIHdlIGVu ZGVkIHVwIGRvY3VtZW50aW5nIGV4YWN0bHkgd2hhdCwgYnV0IGlpcmMgdGhlCj4gY29uc2Vuc3Vz IHdhcyB0aGF0IGZvciBidWlsZC10aW1lIG9ubHkgZGVwZW5kZW5jaWVzIHdlJ3JlIG9rIHdpdGgK PiBkb3duc3RyZWFtIGNvbXBpbGVycyksIGJ1dCBpdCdzIHN0aWxsIHRoZXJlLgpXaGF0IGlzIGxl dHRpbmcgeW91IHRoaW5rIHRoYXQgd2Ugd2FudCB0byBieXBhc3Mgb3BlbiBzb3VyY2UgcmVxdWly ZW1lbnRzID8KQWx0aG91Z2ggdGhlIG5ldXJhbCBuZXR3b3JrIGZpcm13YXJlIGFuZCB1c2Vyc3Bh Y2UgYXBwbGljYXRpb24gYXJlIG5vdCB5ZXQKb3BlbnNvdXJjZSwgb3VyIGludGVudGlvbiBpcyB0 byBkZXZlbG9wIGEgZnVsbCBvcGVuIHNvdXJjZSBzdGFjay4KQ3VycmVudGx5LCB3ZSBvbmx5IHN1 cHBvcnQgTWVkaWF0ZWsgQVBVIChhbiBYdGVuc2EgVlA2KSBhbmQgd2UgaGF2ZSB0byAKdXNlIGNs b3NlZCBzb3VyY2Ugc290ZndhcmUgdG8gZXhlY3V0ZSBpbmZlcmVuY2VzIG9uIHRoZSBhY2NlbGVy YXRvci4KQXMgZmFyIEkga25vdywgdGhlcmUgc29mdHdhcmUgc3RhY2sgc2ltaWxhciB0byBtZXNh IHdoZXJlIHdlIGNvdWxkIGFkZApzdXBwb3J0IG9mIGEgbmV3IGFjY2VsZXJhdG9yICh0aGlzIGlz IGFsc28gdHJ1ZSBmb3IgZmlybXdhcmUpLgpUaGF0IGlzIGFjdHVhbGx5IHdoYXQgd2Ugd291bGQg bGlrZSB0byBkby4gQnV0IHRoaXMgd2lsbCB0YWtlIGEgbG90IG9mIAp0aW1lIGFuZCB3ZSBjb25z aWRlciB0aGlzIGRyaXZlciBhcyBhIGZpcnN0IChzbWFsbCkgc3RlcC4KPiAKPiBBbmQgYXQgbGVh c3QgZnJvbSBhIHF1aWNrIGxvb2sgYXB1LmtvIGFuZCBsaWJhcHUganVzdCBsb29rIGxpa2UgYSBn ZW5lcmljCj4gYWNjZWwgaW50ZXJmYWNlLCBhbmQgdGhhdCdzIG5vdCBlbm91Z2guCj4gCj4gRm9y IHRoZSBiaWcgdHJhaW5pbmcgZW5naW5lcyBpdCdzIG1vcmUgb3IgbGVzcyAiZW5vdWdoIHRvIHJ1 biBweXRvcmNoLCBidXQKPiBpdCBjYW4gYmUgcmVhbGx5IHNsb3ciLCBub3Qgc3VyZSB3aGF0IHRo ZSByaWdodCBzdGFuZGFyZCBmb3IgdGhlc2UKPiBpbmZlcmVuY2Utb25seSBkcml2ZXJzIHNob3Vs ZCBiZS4KVG8gYmUgaG9uZXN0LCBJIGRvbid0IGtub3cgd2hhdCB3b3VsZCBiZSByZXF1aXJlZCBm b3IgdHJhaW5pbmcgZW5naW5lcy4KV2Ugb25seSB0YXJnZXQgYWNjZWxlcmF0b3JzIGZvciBlbWJl ZGRlZCBkZXZpY2UgdGhhdCB1c3VhbGx5IG9ubHkgcnVuIAppbmZlcmVuY2VzLiBJbiBteSBvcGlu aW9uLCB0aGlzIGlzIDIgZGlmZmVyZW50IHVzZSBjYXNlcyBhbmQgSSBkb24ndCAKdGhpbmsgd2Ug Y291bGQgYWRkcmVzcyB0aGVtIGluIHRoZSBzYW1lIHdheS4KPiAKPiBTbyB0aGF0J3MgdGhlIGZp cnN0IHJlYXNvbiB3aHkgSSBkb24ndCBsaWtlIHRoaXMuCj4gCj4gVGhlIG90aGVyIGlzIHRoYXQg SSB0aGluayBpZiB3ZSBkbyBlbmQgdXAgd2l0aCBhIHBpbGUgb2YgdGlueSBhY2NlbAo+IGRyaXZl cnMsIHdlIHNob3VsZCBwcm9iYWJseSBsb29rIGludG8gc29tZXRoaW5nIGxpa2Ugc2ltbXBsZWRy bSBmb3IgdGhlCj4gdGlueSBkaXNwbGF5IGRyaXZlcnMuIFByb2JhYmx5IHN0aWxsIElQIHNwZWNp ZmljIGlvY3RscyAoYXQgbGVhc3QgbW9zdCkgc28KPiB0aGF0IElQIHNwZWNpZmljIGpvYiBrbm93 cyBhbmQgYWxsIHRoYXQgYXJlIGVhc3ksIGJ1dCB0aGVuIGp1c3QgcGFzcyB0byBhCj4gZnJhbWV3 b3JrIHRoYXQgc2ltcGxpZmllcyBhIGRybSBnZW0gZHJpdmVyIHRvICJ3cml0ZSBwdGVzIiBhbmQg InJ1biBqb2IiCj4gY2FsbGJhY2ssIG1heWJlIHdpdGggYW4gb3B0aW9uYWwgImNyZWF0ZS9kZXN0 cm95IHZtL2N0eCIgZm9yIGh3IHdoaWNoIGNhbgo+IGRvIHRoYXQuCj4gCj4gU28gbWF5YmUgd2Ug ZW5kIHVwIHdpdGggYSBkcml2ZXJzL2FjY2VsL3RpbnkgYW5kIGEgYnVuY2ggbW9yZSBoZWxwZXJz Cj4gYXJvdW5kIHRoZSBleGlzdGluZyBnZW0gb25lcy4gVGhlIHJ1bGUgd2UgaGF2ZSBmb3IgZHJt L3RpbnkgaXMgIjEgZmlsZSwKPiBsZXNzIHRoYW4gMWtsb2MiLCBhbmQgdGhlcmUncyBhIGJ1bmNo IG9mIHRoZW0uIEkgZG8gdGhpbmsgd2UgY2FuIGFjaGlldmUKPiB0aGUgc2FtZSBmb3IgdGlueSBh Y2NlbCBpbmZlcmVuY2UgZW5naW5lcyAoYnV0IGl0J3Mgc3RpbGwgYSBiaXQgYSByb2FkKS4KPiBN YXliZSB0aW55IGFjY2VsIGlzIG1vcmUgbGlrZSAibGVzcyB0aGFuIDVrbG9jIiBzaW5jZSB5b3Ug bmVlZCBhIGJpdCBtb3JlCj4gZ2x1ZSBmb3IgdGhlIGRyaXZlciBzcGVjaWZpYyBpb2N0bCBzdHVm ZiAtIG1heWJlIHRoYXQncyBvbmx5IG5lZWRlZCBmb3IKPiB0aGUgc3VibWl0IGlvY3RsLCBtYXli ZSBhbHNvIGZvciBidWZmZXIgbWFwL3VubWFwIGFuZCBjcmVhdGlvbi4KVGhpcyBtYWtlcyBzZW5z ZSB0byBtZS4KPiAKPiBBbHNvIG5vdGUgdGhhdCB0aGVyZSdzIGFuIGVudGlyZSBwaWxlIG9mIGlu LWZsaWdodCB3b3JrIGZvciBhZGRpbmcgbmV3Cj4gaGVscGVycyB0byB0aGUgZ2VtIHdvcmxkIHRv IG1ha2UgdGhpcyBhbGwgZWFzaWVyLiBPbmNlIHdlIGhhdmUgZ3B1dmEgYW5kCj4gZXhlYyBoZWxw ZXJzIHRoZXJlIG5vdCBtdWNoIGdsdWUgbGVmdCB0byB0aWUgaXQgYWxsIHRvZ2V0aGVyIHdpdGgg dGhlCj4gc2NoZWR1bGVyLgpJIHdyb3RlIHRoaXMgc2VyaWVzIGEgbG9uZyB0aW1lIGFnbyBhbmQg anVzdCByZWJhc2VkIGl0IHJlY2VudGx5LgpJIHdpbGwgdGFrZSBzb21lIHRpbWUgdG8gc2VlIHRo ZSBpbi1mbGlnaHQgd29yayBhbmQgc2VlIGlmIHRoYXQgCnNvbWV0aGluZyBJIGNvdWxkIHN0YXJ0 IHVzaW5nLgo+IAo+IEJ1dCB0aGUgcmVhbCBjcnV4IGlzIHRoYXQgYW4gYWNjZWwgaW5mZXJlbmNl IGRyaXZlciByZWFsbHkgbmVlZHMgdG8gaGF2ZQo+IGVub3VnaCB1c2Vyc3BhY2UgdG8gZG8gYW4g YWN0dWFsIGluZmVyZW5jZSBqb2Igd2l0aCBzb21lCj4gYW5kcm9pZC9jcm9zL3doYXRldmVyIGZy YW1ld29yayBmb3IgaW5mZXJlbmNlICh0aGVyZSdzIGp1c3QgdG9vIG1hbnkpLgpXZSBhcmUgY3Vy cmVudGx5IHN0dWNrIHdpdGggY2xvc2VkIHNvdXJjZSBmaW1yd2FyZSwgdXNlcnNwYWNlIAphcHBs aWNhdGlvbnMgYW5kIHRvb2xjaGFpbnMgKHdvcmtzIHdpdGggYW5kcm9pZCBhbmQgbGludXgpLgpX ZSBhcmUgbG9va2luZyBmb3IgYSBzb2x1dGlvbiBidXQgaW1wbGVtZW50aW5nIHNvbWV0aGluZyB3 aWxsIHRha2Ugc29tZSAKdGltZS4KCkFsZXhhbmRyZQo+IC1EYW5pZWwKPiAKPj4gT2RlZAo+Pgo+ Pj4KPj4+IEtldmluCj4+Pgo+Pj4gWzFdIGh0dHBzOi8vZ2l0bGFiLmJheWxpYnJlLmNvbS9iYXls aWJyZS9saWJhcHUvbGliYXB1Cj4+Pgo+Pj4gWzJdCj4+PiAiVGhlcmUgYXJlIDIgaGFyZCBwcm9i bGVtcyBpbiBjb21wdXRlciBzY2llbmNlOiBjYWNoZSBpbnZhbGlkYXRpb24sCj4+PiAgIG5hbWlu ZyB0aGluZ3MgYW5kIG9mZi1ieS0xIGVycm9ycy4iCj4+PiAgIC0tIGh0dHBzOi8vdHdpdHRlci5j b20vc2VjcmV0R2Vlay9zdGF0dXMvNzI2OTk5Nzg2OAo+Pj4KPiAKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBs aXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5m cmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK