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 smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (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 14C0AC77B61 for ; Mon, 10 Apr 2023 06:41:12 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id 7D1D181EEB; Mon, 10 Apr 2023 06:41:12 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org 7D1D181EEB Authentication-Results: smtp1.osuosl.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=L9QWoRHA X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 3rWv-Mp-PlXU; Mon, 10 Apr 2023 06:41:11 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by smtp1.osuosl.org (Postfix) with ESMTPS id 7FCA781327; Mon, 10 Apr 2023 06:41:10 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org 7FCA781327 Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 43CB0C0036; Mon, 10 Apr 2023 06:41:10 +0000 (UTC) Received: from smtp2.osuosl.org (smtp2.osuosl.org [IPv6:2605:bc80:3010::133]) by lists.linuxfoundation.org (Postfix) with ESMTP id 68C0CC002A for ; Mon, 10 Apr 2023 06:41:09 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 3B6C141C42 for ; Mon, 10 Apr 2023 06:41:09 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 3B6C141C42 Authentication-Results: smtp2.osuosl.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=L9QWoRHA X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0EnpMipredjs for ; Mon, 10 Apr 2023 06:41:07 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 86CE0403AE Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by smtp2.osuosl.org (Postfix) with ESMTPS id 86CE0403AE for ; Mon, 10 Apr 2023 06:41:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1681108865; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=k4pLaMe47OKHF0WyKAbJn34fGtIueICflu8O42qOIgQ=; b=L9QWoRHAVokd5J/b6iB+AK09QoQQieGmJPZzUUOxIX31oyRiMWKqaAYraddJnFrDBVkNQN 0+iaNwL3S9FMkAZM1XRLmxQHferEzCvIf354t8HGdL0VKMw0i5iWVtF09BxMw3jpuQm1Hl sF1tEMrhrGJJzA0/MpjWwVZZLAjNcSk= Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-39-yh405o2COi-NfV2fWIPQ6A-1; Mon, 10 Apr 2023 02:41:03 -0400 X-MC-Unique: yh405o2COi-NfV2fWIPQ6A-1 Received: by mail-wm1-f70.google.com with SMTP id h8-20020a05600c314800b003ef649aa8c7so305023wmo.6 for ; Sun, 09 Apr 2023 23:41:03 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1681108862; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=k4pLaMe47OKHF0WyKAbJn34fGtIueICflu8O42qOIgQ=; b=X1QINftzFgxLXLRVwpku/Amc9sYmh9YILJFfJG23i12mftM2iyGY295fs2HnU6BYdz VYVe28mCz/TOdG8NKneDYg7mDZ8o/fUZ6WnsQF6CbEyqUJQf8/hBdBTHYD3xGREQpKP4 aIDbrzu3pCKzGuYzWuW8w2oCJID7fzciQzXL3aOnmCZYXFGUb5w+govYUI9dq11XdMTz Lkv9eLz1cUEVwqw+t+XjAnVWUQg2vkdAunNOkDbaou+TeJ71nwlXK6NaKtkNTIQwhMBV dR8bf6bCb2yVz4nv4tauRqVnyf6mIFtUcUCznuRAkzQ0duyZCn/rETK9Oyc09bwpwWg2 kscA== X-Gm-Message-State: AAQBX9cgv7msbYCKQh72nrgMqu8Tj7nZVohl0Toxei6ox4qub3V1mNUV QRRzmkgZRHMpfWAvA0kDedQnTFeYrkxaIWwo+5ZTgJOZxojpHLjnaVxV7f8DgAY463mkchc1gD0 p1VR5e9K/4dsZ/aEQYW5VesxczicQcIS2KAekMDoSiQ== X-Received: by 2002:a05:600c:2184:b0:3ef:64b4:b081 with SMTP id e4-20020a05600c218400b003ef64b4b081mr4100587wme.39.1681108862207; Sun, 09 Apr 2023 23:41:02 -0700 (PDT) X-Google-Smtp-Source: AKy350akgc/SlhaM4iUD9n0y1zUv2S6HLfwMR03vnUDBrwcLI65BhOkIUfx+9/WPeXd91eI0Xj/2Jg== X-Received: by 2002:a05:600c:2184:b0:3ef:64b4:b081 with SMTP id e4-20020a05600c218400b003ef64b4b081mr4100572wme.39.1681108861784; Sun, 09 Apr 2023 23:41:01 -0700 (PDT) Received: from redhat.com ([2.52.31.213]) by smtp.gmail.com with ESMTPSA id a2-20020a1cf002000000b003f049a42689sm12685142wmb.25.2023.04.09.23.41.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 09 Apr 2023 23:41:01 -0700 (PDT) Date: Mon, 10 Apr 2023 02:40:58 -0400 From: "Michael S. Tsirkin" To: Xuan Zhuo Subject: Re: [PATCH vhost v6 08/11] virtio_ring: introduce virtqueue_dma_dev() Message-ID: <20230410024029-mutt-send-email-mst@kernel.org> References: <20230327040536.48338-1-xuanzhuo@linux.alibaba.com> <20230327040536.48338-9-xuanzhuo@linux.alibaba.com> <73a24f95-b779-44ac-be28-45b35d1bf540@roeck-us.net> <20230407064634-mutt-send-email-mst@kernel.org> <1681097397.338332-4-xuanzhuo@linux.alibaba.com> <1681106617.2219903-5-xuanzhuo@linux.alibaba.com> MIME-Version: 1.0 In-Reply-To: <1681106617.2219903-5-xuanzhuo@linux.alibaba.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Disposition: inline Cc: Christoph Hellwig , Guenter Roeck , virtualization@lists.linux-foundation.org X-BeenThere: virtualization@lists.linux-foundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Linux virtualization List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: virtualization-bounces@lists.linux-foundation.org Sender: "Virtualization" T24gTW9uLCBBcHIgMTAsIDIwMjMgYXQgMDI6MDM6MzdQTSArMDgwMCwgWHVhbiBaaHVvIHdyb3Rl Ogo+IE9uIE1vbiwgMTAgQXByIDIwMjMgMTM6MTQ6MTMgKzA4MDAsIEphc29uIFdhbmcgPGphc293 YW5nQHJlZGhhdC5jb20+IHdyb3RlOgo+ID4gT24gTW9uLCBBcHIgMTAsIDIwMjMgYXQgMTE6NDji gK9BTSBYdWFuIFpodW8gPHh1YW56aHVvQGxpbnV4LmFsaWJhYmEuY29tPiB3cm90ZToKPiA+ID4K PiA+ID4gT24gRnJpLCA3IEFwciAyMDIzIDA3OjAyOjM0IC0wNDAwLCAiTWljaGFlbCBTLiBUc2ly a2luIiA8bXN0QHJlZGhhdC5jb20+IHdyb3RlOgo+ID4gPiA+IE9uIFRodSwgQXByIDA2LCAyMDIz IGF0IDEwOjIwOjA5QU0gLTA3MDAsIEd1ZW50ZXIgUm9lY2sgd3JvdGU6Cj4gPiA+ID4gPiBIaSwK PiA+ID4gPiA+Cj4gPiA+ID4gPiBPbiBNb24sIE1hciAyNywgMjAyMyBhdCAxMjowNTozM1BNICsw ODAwLCBYdWFuIFpodW8gd3JvdGU6Cj4gPiA+ID4gPiA+IEFkZGVkIHZpcnRxdWV1ZV9kbWFfZGV2 KCkgdG8gZ2V0IERNQSBkZXZpY2UgZm9yIHZpcnRpby4gVGhlbiB0aGUKPiA+ID4gPiA+ID4gY2Fs bGVyIGNhbiBkbyBkbWEgb3BlcmF0aW9uIGluIGFkdmFuY2UuIFRoZSBwdXJwb3NlIGlzIHRvIGtl ZXAgbWVtb3J5Cj4gPiA+ID4gPiA+IG1hcHBlZCBhY3Jvc3MgbXVsdGlwbGUgYWRkL2dldCBidWYg b3BlcmF0aW9ucy4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogWHVhbiBa aHVvIDx4dWFuemh1b0BsaW51eC5hbGliYWJhLmNvbT4KPiA+ID4gPiA+ID4gQWNrZWQtYnk6IEph c29uIFdhbmcgPGphc293YW5nQHJlZGhhdC5jb20+Cj4gPiA+ID4gPgo+ID4gPiA+ID4gT24gc3Bh cmM2NCwgdGhpcyBwYXRjaCByZXN1bHRzIGluCj4gPiA+ID4gPgo+ID4gPiA+ID4gWyAgICA0LjM2 NDY0M10gVW5hYmxlIHRvIGhhbmRsZSBrZXJuZWwgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlCj4g PiA+ID4gPiBbICAgIDQuMzY1MTU3XSB0c2stPnttbSxhY3RpdmVfbW19LT5jb250ZXh0ID0gMDAw MDAwMDAwMDAwMDAwMAo+ID4gPiA+ID4gWyAgICA0LjM2NTM5NF0gdHNrLT57bW0sYWN0aXZlX21t fS0+cGdkID0gZmZmZmY4MDAwMDQwMjAwMAo+ID4gPiA+ID4gWyAgICA0LjM2NTYxMV0gICAgICAg ICAgICAgICBcfC8gX19fXyBcfC8KPiA+ID4gPiA+IFsgICAgNC4zNjU2MTFdICAgICAgICAgICAg ICAgIkAnLyAuLiBcYEAiCj4gPiA+ID4gPiBbICAgIDQuMzY1NjExXSAgICAgICAgICAgICAgIC9f fCBcX18vIHxfXAo+ID4gPiA+ID4gWyAgICA0LjM2NTYxMV0gICAgICAgICAgICAgICAgICBcX19V Xy8KPiA+ID4gPiA+IFsgICAgNC4zNjYxNjVdIHN3YXBwZXIvMCgxKTogT29wcyBbIzFdCj4gPiA+ ID4gPiBbICAgIDQuMzY2NjMwXSBDUFU6IDAgUElEOiAxIENvbW06IHN3YXBwZXIvMCBUYWludGVk OiBHICAgICAgICAgICAgICAgICBOIDYuMy4wLXJjNS1uZXh0LTIwMjMwNDA1ICMxCj4gPiA+ID4g PiBbICAgIDQuMzY3MTIxXSBUU1RBVEU6IDAwMDAwMDQ0MTEwMDE2MDYgVFBDOiAwMDAwMDAwMDAw NDM3NWMwIFROUEM6IDAwMDAwMDAwMDA0Mzc1YzQgWTogMDAwMDAwMDIgICAgVGFpbnRlZDogRyAg ICAgICAgICAgICAgICAgTgo+ID4gPiA+ID4gWyAgICA0LjM2NzU0OF0gVFBDOiA8ZG1hXzR1X3N1 cHBvcnRlZCsweDIwLzB4NDA+Cj4gPiA+ID4gPiBbICAgIDQuMzY4MTExXSBnMDogMDAwMDAwMDAw MDAwMDAwMCBnMTogMDAwMDAwMDAwMWE5M2E1MCBnMjogMDAwMDAwMDAwMDAwMDAwMCBnMzogMDAw MDAwMDAwMWE5NjE3MAo+ID4gPiA+ID4gWyAgICA0LjM2ODQzOV0gZzQ6IGZmZmZmODAwMDQxNmU5 YTAgZzU6IGZmZmZmODAwMWRjOTgwMDAgZzY6IGZmZmZmODAwMDQxNzAwMDAgZzc6IDAwMDAwMDAw MDAwMDAwMDUKPiA+ID4gPiA+IFsgICAgNC4zNjg3NjldIG8wOiAwMDAwMDAwMDAwMDAwMDAwIG8x OiBmZmZmZmZmZmZmZmZmZmZmIG8yOiAwMDAwMDAwMDAwMDAwMDAxIG8zOiBmZmZmZjgwMDA0MGI3 OGQ4Cj4gPiA+ID4gPiBbICAgIDQuMzY5MDk1XSBvNDogMDAwMDAwMDAwMDAwMDAwMCBvNTogMDAw MDAwMDAwMDAwMDAwMCBzcDogZmZmZmY4MDAwNDE3MmQ1MSByZXRfcGM6IDAwMDAwMDAwMDA0Mzc1 YWMKPiA+ID4gPiA+IFsgICAgNC4zNjk5MzRdIFJQQzogPGRtYV80dV9zdXBwb3J0ZWQrMHhjLzB4 NDA+Cj4gPiA+ID4gPiBbICAgIDQuMzcwMTYwXSBsMDogMDAwMDAwMDAwMDAwMDAwMiBsMTogMDAw MDAwMDAwMDAwMDAwMiBsMjogMDAwMDAwMDAwMDAwMDAwMCBsMzogMDAwMDAwMDBmZmZmZmZmZgo+ ID4gPiA+ID4gWyAgICA0LjM3MDQ5M10gbDQ6IDAwMDAwMDAwMDAwMDAwMDEgbDU6IDAwMDAwMDAw MDExOWQyYjAgbDY6IGZmZmZmODAwMDQxNmU5YTAgbDc6IDAwMDAwMDAwMDE4ZGYwMDAKPiA+ID4g PiA+IFsgICAgNC4zNzA4MjBdIGkwOiAwMDAwMDAwMDAwMDAwMDAxIGkxOiBmZmZmZmZmZmZmZmZm ZmZmIGkyOiBmZmZmZjgwMDA0NjU3NzU4IGkzOiAwMDAwMDAwMDAxMjVhYzAwCj4gPiA+ID4gPiBb ICAgIDQuMzcxMTQ1XSBpNDogMDAwMDAwMDAwMjM2MjQwMCBpNTogMDAwMDAwMDAwMDAwMDAwMCBp NjogZmZmZmY4MDAwNDE3MmUwMSBpNzogMDAwMDAwMDAwMDUwZTI4OAo+ID4gPiA+ID4gWyAgICA0 LjM3MTQ3M10gSTc6IDxkbWFfc2V0X21hc2srMHgyOC8weDgwPgo+ID4gPiA+ID4gWyAgICA0LjM3 MTY4M10gQ2FsbCBUcmFjZToKPiA+ID4gPiA+IFsgICAgNC4zNzE4NjRdIFs8MDAwMDAwMDAwMDUw ZTI4OD5dIGRtYV9zZXRfbWFzaysweDI4LzB4ODAKPiA+ID4gPiA+IFsgICAgNC4zNzIxMjNdIFs8 MDAwMDAwMDAwMGE4MzIzND5dIHZpcnRpb19kZXZfcHJvYmUrMHgxNC8weDQwMAo+ID4gPiA+ID4g WyAgICA0LjM3MjM0OF0gWzwwMDAwMDAwMDAwYWM3YTE4Pl0gcmVhbGx5X3Byb2JlKzB4YjgvMHgz NDAKPiA+ID4gPiA+IFsgICAgNC4zNzI1NTVdIFs8MDAwMDAwMDAwMGFjN2Q2ND5dIGRyaXZlcl9w cm9iZV9kZXZpY2UrMHgyNC8weDEyMAo+ID4gPiA+ID4gWyAgICA0LjM3Mjc5NF0gWzwwMDAwMDAw MDAwYWM4MDEwPl0gX19kcml2ZXJfYXR0YWNoKzB4OTAvMHgxYTAKPiA+ID4gPiA+IFsgICAgNC4z NzMwMTJdIFs8MDAwMDAwMDAwMGFjNWI0Yz5dIGJ1c19mb3JfZWFjaF9kZXYrMHg0Yy8weGEwCj4g PiA+ID4gPiBbICAgIDQuMzczMjI2XSBbPDAwMDAwMDAwMDBhYzZkODA+XSBidXNfYWRkX2RyaXZl cisweDE0MC8weDFlMAo+ID4gPiA+ID4gWyAgICA0LjM3MzQ0MF0gWzwwMDAwMDAwMDAwYWM4ZDk0 Pl0gZHJpdmVyX3JlZ2lzdGVyKzB4NzQvMHgxMjAKPiA+ID4gPiA+IFsgICAgNC4zNzM2NTNdIFs8 MDAwMDAwMDAwMWIyYTY5MD5dIHZpcnRpb19uZXRfZHJpdmVyX2luaXQrMHg3NC8weGE4Cj4gPiA+ ID4gPiBbICAgIDQuMzczODg2XSBbPDAwMDAwMDAwMDA0MjdlZTA+XSBkb19vbmVfaW5pdGNhbGwr MHg2MC8weDM0MAo+ID4gPiA+ID4gWyAgICA0LjM3NDA5OV0gWzwwMDAwMDAwMDAxYjAyZjUwPl0g a2VybmVsX2luaXRfZnJlZWFibGUrMHgxYmMvMHgyMjgKPiA+ID4gPiA+IFsgICAgNC4zNzQzMzBd IFs8MDAwMDAwMDAwMGYzNzI2ND5dIGtlcm5lbF9pbml0KzB4MTgvMHgxMzQKPiA+ID4gPiA+IFsg ICAgNC4zNzQ1MzRdIFs8MDAwMDAwMDAwMDQwNjBlOD5dIHJldF9mcm9tX2ZvcmsrMHgxYy8weDJj Cj4gPiA+ID4gPiBbICAgIDQuMzc0NzM4XSBbPDAwMDAwMDAwMDAwMDAwMDA+XSAweDAKPiA+ID4g PiA+IFsgICAgNC4zNzQ5ODFdIERpc2FibGluZyBsb2NrIGRlYnVnZ2luZyBkdWUgdG8ga2VybmVs IHRhaW50Cj4gPiA+ID4gPiBbICAgIDQuMzc1MjM3XSBDYWxsZXJbMDAwMDAwMDAwMDUwZTI4OF06 IGRtYV9zZXRfbWFzaysweDI4LzB4ODAKPiA+ID4gPiA+IFsgICAgNC4zNzU0NzddIENhbGxlclsw MDAwMDAwMDAwYTgzMjM0XTogdmlydGlvX2Rldl9wcm9iZSsweDE0LzB4NDAwCj4gPiA+ID4gPiBb ICAgIDQuMzc1NzA0XSBDYWxsZXJbMDAwMDAwMDAwMGFjN2ExOF06IHJlYWxseV9wcm9iZSsweGI4 LzB4MzQwCj4gPiA+ID4gPiBbICAgIDQuMzc1OTE2XSBDYWxsZXJbMDAwMDAwMDAwMGFjN2Q2NF06 IGRyaXZlcl9wcm9iZV9kZXZpY2UrMHgyNC8weDEyMAo+ID4gPiA+ID4gWyAgICA0LjM3NjE0Nl0g Q2FsbGVyWzAwMDAwMDAwMDBhYzgwMTBdOiBfX2RyaXZlcl9hdHRhY2grMHg5MC8weDFhMAo+ID4g PiA+ID4gWyAgICA0LjM3NjM2NV0gQ2FsbGVyWzAwMDAwMDAwMDBhYzViNGNdOiBidXNfZm9yX2Vh Y2hfZGV2KzB4NGMvMHhhMAo+ID4gPiA+ID4gWyAgICA0LjM3NjU4M10gQ2FsbGVyWzAwMDAwMDAw MDBhYzZkODBdOiBidXNfYWRkX2RyaXZlcisweDE0MC8weDFlMAo+ID4gPiA+ID4gWyAgICA0LjM3 NjgwNV0gQ2FsbGVyWzAwMDAwMDAwMDBhYzhkOTRdOiBkcml2ZXJfcmVnaXN0ZXIrMHg3NC8weDEy MAo+ID4gPiA+ID4gWyAgICA0LjM3NzAyNV0gQ2FsbGVyWzAwMDAwMDAwMDFiMmE2OTBdOiB2aXJ0 aW9fbmV0X2RyaXZlcl9pbml0KzB4NzQvMHhhOAo+ID4gPiA+ID4gWyAgICA0LjM3NzI2Ml0gQ2Fs bGVyWzAwMDAwMDAwMDA0MjdlZTBdOiBkb19vbmVfaW5pdGNhbGwrMHg2MC8weDM0MAo+ID4gPiA+ ID4gWyAgICA0LjM3NzQ4MF0gQ2FsbGVyWzAwMDAwMDAwMDFiMDJmNTBdOiBrZXJuZWxfaW5pdF9m cmVlYWJsZSsweDFiYy8weDIyOAo+ID4gPiA+ID4gWyAgICA0LjM3NzcyMV0gQ2FsbGVyWzAwMDAw MDAwMDBmMzcyNjRdOiBrZXJuZWxfaW5pdCsweDE4LzB4MTM0Cj4gPiA+ID4gPiBbICAgIDQuMzc3 OTMwXSBDYWxsZXJbMDAwMDAwMDAwMDQwNjBlOF06IHJldF9mcm9tX2ZvcmsrMHgxYy8weDJjCj4g PiA+ID4gPiBbICAgIDQuMzc4MTQwXSBDYWxsZXJbMDAwMDAwMDAwMDAwMDAwMF06IDB4MAo+ID4g PiA+ID4gWyAgICA0LjM3ODMwOV0gSW5zdHJ1Y3Rpb24gRFVNUDoKPiA+ID4gPiA+IFsgICAgNC4z NzgzMzldICA4MGEyMjAwMAo+ID4gPiA+ID4gWyAgICA0LjM3ODU1Nl0gIDEyNDAwMDA2Cj4gPiA+ ID4gPiBbICAgIDQuMzc4NjU0XSAgYjAxMDIwMDEKPiA+ID4gPiA+IFsgICAgNC4zNzg3NDZdIDxj MjA3NjY1OD4KPiA+ID4gPiA+IFsgICAgNC4zNzg4MzhdICBiMDEwMjAwMAo+ID4gPiA+ID4gWyAg ICA0LjM3ODkzMF0gIDgwYTA0MDE5Cj4gPiA+ID4gPiBbICAgIDQuMzc5MDIyXSAgYjE2NTMwMDEK PiA+ID4gPiA+IFsgICAgNC4zNzkxMTVdICA4MWNmZTAwOAo+ID4gPiA+ID4gWyAgICA0LjM3OTUw N10gIDkxM2EyMDAwCj4gPiA+ID4gPiBbICAgIDQuMzc5NjE3XQo+ID4gPiA+ID4gWyAgICA0LjM4 MDUwNF0gS2VybmVsIHBhbmljIC0gbm90IHN5bmNpbmc6IEF0dGVtcHRlZCB0byBraWxsIGluaXQh IGV4aXRjb2RlPTB4MDAwMDAwMDkKPiA+ID4gPiA+Cj4gPiA+ID4gPiBSZXZlcnRpbmcgaXQgZml4 ZXMgdGhlIHByb2JsZW0uIEJpc2VjdCBsb2cgYXR0YWNoZWQuCj4gPiA+ID4gPgo+ID4gPiA+ID4g VGhlIHJlYXNvbiBpcyB0aGF0IGRtYV9zdXBwb3J0ZWQoKSBjYWxscyBkbWFfNHVfc3VwcG9ydGVk KCksIHdoaWNoCj4gPiA+ID4gPiBleHBlY3RzIHRoYXQgZGV2LT5hcmNoZGF0YS5pb21tdSBoYXMg YmVlbiBpbml0aWFsaXplZC4gSG93ZXZlciwKPiA+ID4gPiA+IHRoaXMgaXMgbm90IHRoZSBjYXNl IGZvciB0aGUgdmlydGlvIGRldmljZS4gUmVzdWx0IGlzIGEgbnVsbCBwb2ludGVyCj4gPiA+ID4g PiBkZXJlZmVyZW5jZSBpbiBkbWFfNHVfc3VwcG9ydGVkKCkuCj4gPiA+ID4gPgo+ID4gPiA+ID4g c3RhdGljIGludCBkbWFfNHVfc3VwcG9ydGVkKHN0cnVjdCBkZXZpY2UgKmRldiwgdTY0IGRldmlj ZV9tYXNrKQo+ID4gPiA+ID4gewo+ID4gPiA+ID4gICAgICAgICBzdHJ1Y3QgaW9tbXUgKmlvbW11 ID0gZGV2LT5hcmNoZGF0YS5pb21tdTsKPiA+ID4gPiA+Cj4gPiA+ID4gPiAgICAgICAgIGlmIChh bGlfc291bmRfZG1hX2hhY2soZGV2LCBkZXZpY2VfbWFzaykpCj4gPiA+ID4gPiAgICAgICAgICAg ICAgICAgcmV0dXJuIDE7Cj4gPiA+ID4gPgo+ID4gPiA+ID4gICAgICAgICBpZiAoZGV2aWNlX21h c2sgPCBpb21tdS0+ZG1hX2FkZHJfbWFzaykKPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAg ICBeXl5eXl5eXl5eXl5eXl5eXl5eXiBDcmFzaCBsb2NhdGlvbgo+ID4gPiA+ID4gICAgICAgICAg ICAgICAgIHJldHVybiAwOwo+ID4gPiA+ID4gICAgICAgICByZXR1cm4gMTsKPiA+ID4gPiA+IH0K PiA+ID4gPiA+Cj4gPiA+ID4gPiBHdWVudGVyCj4gPiA+ID4KPiA+ID4gPiBUaGlzIGlzIGZyb20g dGhlIHVuY29uZGl0aW9uYWwgY2FsbCB0byBkbWFfc2V0X21hc2tfYW5kX2NvaGVyZW50LCByaWdo dD8KPiA+ID4KPiA+ID4gTWF5YmUgbm90Lgo+ID4gPgo+ID4gPiBUaGUgcHJvYmxlbSBpcyB0aGF0 IHRoZSBkbWFfNHVfc3VwcG9ydGVkKCkgd2lsbCBiZSBjYWxsZWQgaW4gZG1hX3N1cHBvcnRlZCgp Lgo+ID4gPiBUaGUgcHJlbWlzZSBvZiB0aGlzIGZ1bmN0aW9uIGlzIHRoYXQgSU9NTVUgaGFzIGJl ZW4gaW5pdGlhbGl6ZWQuCj4gPiA+Cj4gPiA+IFdlIGhvcGUgdG8gdHVybiB2aXJ0aW8gZGV2IGlu dG8gYSBkaXJlY3QgZG1hIGRldmljZSBieSBkZXYtPm9wcyBpcyBudWxsLgo+ID4gPgo+ID4gPiBU aGUgZmlyc3Qgc3RlcCBpbiBETUEgZnJhbWUgaXMgb2J0YWluaW5nIG9wcy4gSW4gbWFueSBjYXNl cywgZ2V0X2FyY2hfZG1hX29wcygpCj4gPiA+IHJldHVybnMgbnVsbC4gV2hlbiBvcHMgaXMgbnVs bCwgZG1hIGZyYW1lIHdpbGwgdXNlIGRpcmVjdCBkbWEuCj4gPiA+Cj4gPiA+IHN0YXRpYyBpbmxp bmUgY29uc3Qgc3RydWN0IGRtYV9tYXBfb3BzICpnZXRfZG1hX29wcyhzdHJ1Y3QgZGV2aWNlICpk ZXYpCj4gPiA+IHsKPiA+ID4gICAgICAgICBpZiAoZGV2LT5kbWFfb3BzKQo+ID4gPiAgICAgICAg ICAgICAgICAgcmV0dXJuIGRldi0+ZG1hX29wczsKPiA+ID4gICAgICAgICByZXR1cm4gZ2V0X2Fy Y2hfZG1hX29wcygpOwo+ID4gPiB9Cj4gPiA+Cj4gPiA+IEJ1dCByZXRoaW5rLCB0aGlzIGlzIHVu cmVsaWFibGUuIFNvbWUgcGxhdGZvcm1zIGhhdmUgcmV0dXJuZWQgdGhlaXIgb3duIG9wcywKPiA+ ID4gaW5jbHVkaW5nIFg4Ni4KPiA+ID4KPiA+ID4gQmVjYXVzZSB0aGUgcHJpb3JpdHkgb2YgZGV2 LT5kbWFfb3BzIGlzIGhpZ2hlciB0aGFuIGdldF9hcmNoX2RtYV9vcHMoKSwgd2UKPiA+ID4gc2hv dWxkIG5vdCBsZXQgZGV2LT5kbWFfb3BzIGJlIG51bGwuIFdlIHNob3VsZCBkZWZpbmUgYSBzZXQg b2YgZG1hX29wcyB0bwo+ID4gPiBhY3RpdmVseSBpbXBsZW1lbnQgZGlyZWN0IGRNQS4KPiA+Cj4g PiBUaGVuIHRoaXMgd2lsbCBkdXBsaWNhdGUgd2l0aCBleGlzdGluZyBETUEgQVBJIGhlbHBlcnMu IENvdWxkIHdlIHR3ZWFrCj4gPiB0aGUgc3BhcmMgb3IgaW50cm9kdWNlIGEgbmV3IGZsYWcgZm9y IHRoZSBkZXZpY2Ugc3RydWN0dXJlIHRoZW4gdGhlCj4gPiBETUEgQVBJIGtub3dzIGl0IG5lZWRz IHRvIHVzZSBkaXJlY3QgbWFwcGluZz8KPiAKPiBJZiB3ZSBhZGQgYSBuZXcgZmxhZyB3aWxsIGJl dHRlci4gVGhpcyBpcyBub3QgdGhlIHByb2JsZW0gb2Ygc3BhcmMsIHg4NiBtYXkKPiBvY2N1cnMg dGhpcyBhbHNvLgo+IAo+IFRoYW5rcy4KCkxvb2tzIGxpa2UgSSBzaG91bGQgZHJvcCB0aGlzIGZy b20gbXkgdHJlZSBmb3Igbm93IHdoaWxlIHlvdSBndXlzCndvcmsgb3V0IGEgc29sdXRpb24/Cgo+ IAo+ID4KPiA+IEFkZGluZyBDaHJpc3RvcGggZm9yIG1vcmUgY29tbWVudHMuCj4gPgo+ID4gPgo+ ID4gPgo+ID4gPiA+Cj4gPiA+ID4gWHVhbiBaaHVvLCBJIGZlZWwgdGhlcmUgc2hvdWxkIGFuIGV4 cGxhbmF0aW9uIGluIHRoZSBjb21taXQgbG9nCj4gPiA+ID4gYWJvdXQgbWFraW5nIHRoaXMgdW5j b25kaXRpb25hbCBjYWxsLiBXaHkgYXJlIHlvdSBtYWtpbmcgaXQKPiA+ID4gPiBpbiBwcm9iZT8K PiA+ID4gPgo+ID4gPiA+IEkgbm90ZSB0aGF0IGRpZmZlcmVudCB2aXJ0aW8gdHJhbnNwb3J0cyBo YW5kbGUgdGhpcyBkaWZmZXJlbnRseS4KPiA+ID4gPiBBbmQgbG9va2luZyBhdCB0aGlzIG1vcmUg SSBmZWVsIHRoaXMgc2hvdWxkIG1heWJlIGJlIHJldmVydGVkIGZvciBub3c6Cj4gPiA+ID4KPiA+ ID4gPiBZb3VyIHBhdGNoIGRvZXM6Cj4gPiA+ID4KPiA+ID4gPiBAQCAtMjQzLDYgKzI0NCwxMSBA QCBzdGF0aWMgaW50IHZpcnRpb19kZXZfcHJvYmUoc3RydWN0IGRldmljZSAqX2QpCj4gPiA+ID4g ICAgICAgICB1NjQgZHJpdmVyX2ZlYXR1cmVzOwo+ID4gPiA+ICAgICAgICAgdTY0IGRyaXZlcl9m ZWF0dXJlc19sZWdhY3k7Cj4gPiA+ID4KPiA+ID4gPiArICAgICAgIF9kLT5kbWFfbWFzayA9ICZf ZC0+Y29oZXJlbnRfZG1hX21hc2s7Cj4gPiA+ID4gKyAgICAgICBlcnIgPSBkbWFfc2V0X21hc2tf YW5kX2NvaGVyZW50KF9kLCBETUFfQklUX01BU0soNjQpKTsKPiA+ID4gPiArICAgICAgIGlmIChl cnIpCj4gPiA+ID4gKyAgICAgICAgICAgICAgIHJldHVybiBlcnI7Cj4gPiA+ID4gKwo+ID4gPiA+ ICAgICAgICAgLyogV2UgaGF2ZSBhIGRyaXZlciEgKi8KPiA+ID4gPgo+ID4gPiA+Cj4gPiA+ID4g YnV0IGZvciBleGFtcGxlIHZpcnRpbyBQQ0kgaGFzIGEgMzIgYml0IGZhbGxiYWNrLgo+ID4gPiA+ Cj4gPiA+ID4gRm9yIGV4YW1wbGUgVmlydGlvIGxlZ2FjeSBhbHNvIGNhbid0IGFjY2VzcyA2NCBi aXQgYWRkcmVzc2VzIGF0IGFsbCwKPiA+ID4gPiBzbyBpdCBkb2VzOgo+ID4gPiA+Cj4gPiA+ID4g ICAgICAgICByYyA9IGRtYV9zZXRfbWFzaygmcGNpX2Rldi0+ZGV2LCBETUFfQklUX01BU0soNjQp KTsKPiA+ID4KPiA+ID4gZG1hX3NldF9tYXNrKCkgd2lsbCBhbHNvIGNhbGwgZG1hX3N1cHBvcnRl ZCgpLgo+ID4gPgo+ID4gPgo+ID4gPiA+ICAgICAgICAgaWYgKHJjKSB7Cj4gPiA+ID4gICAgICAg ICAgICAgICAgIHJjID0gZG1hX3NldF9tYXNrX2FuZF9jb2hlcmVudCgmcGNpX2Rldi0+ZGV2LCBE TUFfQklUX01BU0soMzIpKTsKPiA+ID4gPiAgICAgICAgIH0gZWxzZSB7Cj4gPiA+ID4gICAgICAg ICAgICAgICAgIC8qCj4gPiA+ID4gICAgICAgICAgICAgICAgICAqIFRoZSB2aXJ0aW8gcmluZyBi YXNlIGFkZHJlc3MgaXMgZXhwcmVzc2VkIGFzIGEgMzItYml0IFBGTiwKPiA+ID4gPiAgICAgICAg ICAgICAgICAgICogd2l0aCBhIHBhZ2Ugc2l6ZSBvZiAxIDw8IFZJUlRJT19QQ0lfUVVFVUVfQURE Ul9TSElGVC4KPiA+ID4gPiAgICAgICAgICAgICAgICAgICovCj4gPiA+ID4gICAgICAgICAgICAg ICAgIGRtYV9zZXRfY29oZXJlbnRfbWFzaygmcGNpX2Rldi0+ZGV2LAo+ID4gPiA+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgRE1BX0JJVF9NQVNLKDMyICsgVklSVElPX1BDSV9RVUVV RV9BRERSX1NISUZUKSk7Cj4gPiA+ID4gICAgICAgICB9Cj4gPiA+ID4KPiA+ID4gPgo+ID4gPiA+ IG1taW8gdHJpZXMgYSBmYWxsYmFjayB0byAzMiBiaXQgaWYgNjQgYml0IGZhaWxzIHdoaWNoIGRv ZXMgbm90IG1ha2UKPiA+ID4gPiBzZW5zZSB0byBtZSwgYnV0IG1heWJlIEkgYW0gd3JvbmcuCj4g PiA+ID4KPiA+ID4gPgo+ID4gPgo+ID4gPiBUaGVzZSBwaHlzaWNhbCBkZXZpY2VzIGhhdmUgSU9N TVUsIHNvIGl0IGlzIG5vcm1hbCwgYnV0IFZpcnRpbyBEZXYgZG9lcyBub3QgaGF2ZQo+ID4gPiBh bnkgcGh5c2ljYWwgSU9NTVUsIHNvIHRoZXJlIGFyZSBwcm9ibGVtcy4gSSBib3Jyb3cgZnJvbSBW RFBBLiBTbyBJIHRoaW5rCj4gPiA+IHRoZXJlIGFyZSBzaW1pbGFyIHByb2JsZW1zIHdpdGggVkRQ QS4KPiA+Cj4gPiBZZXMuCj4gPgo+ID4gVGhhbmtzCj4gPgo+ID4gPgo+ID4gPgo+ID4gPiBUaGFu a3MuCj4gPiA+Cj4gPiA+Cj4gPiA+ID4KPiA+ID4gPgo+ID4gPiA+Cj4gPiA+ID4KPiA+ID4gPiA+ IC0tLQo+ID4gPiA+ID4gIyBiYWQ6IFs4NDE3YzhmNTAwN2JmNDU2N2NjZmZkYTg1MGEzMTU3Yzdk OTA1ZjY3XSBBZGQgbGludXgtbmV4dCBzcGVjaWZpYyBmaWxlcyBmb3IgMjAyMzA0MDUKPiA+ID4g PiA+ICMgZ29vZDogWzdlMzY0ZTU2MjkzYmI5OGNhZTFiNTVmZDgzNWY1OTkxYzRlOTZlN2RdIExp bnV4IDYuMy1yYzUKPiA+ID4gPiA+IGdpdCBiaXNlY3Qgc3RhcnQgJ0hFQUQnICd2Ni4zLXJjNScK PiA+ID4gPiA+ICMgZ29vZDogWzY5OWMxNDZlYjVhMDM0NThmMjllOTRjZmRlNGQ3ZGQ3YTM2ZGVl YjRdIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBvZiBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2Nt L2xpbnV4L2tlcm5lbC9naXQvaGVyYmVydC9jcnlwdG9kZXYtMi42LmdpdAo+ID4gPiA+ID4gZ2l0 IGJpc2VjdCBnb29kIDY5OWMxNDZlYjVhMDM0NThmMjllOTRjZmRlNGQ3ZGQ3YTM2ZGVlYjQKPiA+ ID4gPiA+ICMgZ29vZDogW2VmZTc0ZTY0NzZhOWYwNDI2MzI4ODAwOTkxMGYwN2EyNjU5NzM4NmZd IE1lcmdlIGJyYW5jaCAnZm9yLW5leHQnIG9mIGdpdDovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20v bGludXgva2VybmVsL2dpdC9rcnprL2xpbnV4LWR0LmdpdAo+ID4gPiA+ID4gZ2l0IGJpc2VjdCBn b29kIGVmZTc0ZTY0NzZhOWYwNDI2MzI4ODAwOTkxMGYwN2EyNjU5NzM4NmYKPiA+ID4gPiA+ICMg Z29vZDogWzI0YmU2MDdlZWRiMjI2YzE2Mjc5NzMxOTBhMGI2NWNhYjM5NDQwYjldIE1lcmdlIGJy YW5jaCAnY2hhci1taXNjLW5leHQnIG9mIGdpdDovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGlu dXgva2VybmVsL2dpdC9ncmVna2gvY2hhci1taXNjLmdpdAo+ID4gPiA+ID4gZ2l0IGJpc2VjdCBn b29kIDI0YmU2MDdlZWRiMjI2YzE2Mjc5NzMxOTBhMGI2NWNhYjM5NDQwYjkKPiA+ID4gPiA+ICMg Z29vZDogWzUyMTMyODVlM2YyMTJjZjI2NmMwODVjMWMxMTA0MWFkZGEyYmM2M2ZdIE1lcmdlIGJy YW5jaCAnZm9yLW5leHQnIG9mIGdpdDovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2Vy bmVsL2dpdC9ta3Avc2NzaS5naXQKPiA+ID4gPiA+IGdpdCBiaXNlY3QgZ29vZCA1MjEzMjg1ZTNm MjEyY2YyNjZjMDg1YzFjMTEwNDFhZGRhMmJjNjNmCj4gPiA+ID4gPiAjIGJhZDogW2U4ZjVkN2Ux Nzg3MTA0ZGE1OTc3NzczYmE1YjNlMWQ1MDJmZGI5ZTNdIE1lcmdlIGJyYW5jaCAnZm9yLW5leHQn IG9mIGdpdDovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dpdC90aGllcnJ5 LnJlZGluZy9saW51eC1wd20uZ2l0Cj4gPiA+ID4gPiBnaXQgYmlzZWN0IGJhZCBlOGY1ZDdlMTc4 NzEwNGRhNTk3Nzc3M2JhNWIzZTFkNTAyZmRiOWUzCj4gPiA+ID4gPiAjIGJhZDogW2MwOGI1YWQz MzAwMTIyNzkwY2VmMWJmN2MxZjUxYzU1NGM3NzhlNGRdIE1lcmdlIGJyYW5jaCAnZ3Bpby9mb3It bmV4dCcgb2YgZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L2Jy Z2wvbGludXguZ2l0Cj4gPiA+ID4gPiBnaXQgYmlzZWN0IGJhZCBjMDhiNWFkMzMwMDEyMjc5MGNl ZjFiZjdjMWY1MWM1NTRjNzc4ZTRkCj4gPiA+ID4gPiAjIGdvb2Q6IFs0ZWEwYzk3Nzc2YmY4YzYz ODA1ZWIwZjgxODJkOWMyMDA3MjIxOWQ5XSBncGlvbGliOiBDaGVjayBhcnJheV9pbmZvIGZvciBO VUxMIG9ubHkgb25jZSBpbiBncGlvZF9nZXRfYXJyYXkoKQo+ID4gPiA+ID4gZ2l0IGJpc2VjdCBn b29kIDRlYTBjOTc3NzZiZjhjNjM4MDVlYjBmODE4MmQ5YzIwMDcyMjE5ZDkKPiA+ID4gPiA+ICMg Z29vZDogW2I4ZTRiYjBmMDViZWY4MzM0ZTY4OTYxOGM3NWNmZWQxMjJmM2EyOTJdIHZkcGFfc2lt OiB1c2Uga3RocmVhZCB3b3JrZXIKPiA+ID4gPiA+IGdpdCBiaXNlY3QgZ29vZCBiOGU0YmIwZjA1 YmVmODMzNGU2ODk2MThjNzVjZmVkMTIyZjNhMjkyCj4gPiA+ID4gPiAjIGJhZDogW2FjMWZhMTA2 ZjUyYTNlYTJkMjcxOGEwZGU3ZDUzMmQzZDZjMDNlNGVdIE1lcmdlIGJyYW5jaCAnbGludXgtbmV4 dCcgb2YgZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L21zdC92 aG9zdC5naXQKPiA+ID4gPiA+IGdpdCBiaXNlY3QgYmFkIGFjMWZhMTA2ZjUyYTNlYTJkMjcxOGEw ZGU3ZDUzMmQzZDZjMDNlNGUKPiA+ID4gPiA+ICMgZ29vZDogWzU2YzhjZjM3ZmIwODAwYWQ2NmM5 MjZlYjNkMDQ0ZTUwNjkxYWZhNmVdIHZpcnRpb19yaW5nOiBwYWNrZWQ6IHNlcGFyYXRlIGRtYSBj b2Rlcwo+ID4gPiA+ID4gZ2l0IGJpc2VjdCBnb29kIDU2YzhjZjM3ZmIwODAwYWQ2NmM5MjZlYjNk MDQ0ZTUwNjkxYWZhNmUKPiA+ID4gPiA+ICMgZ29vZDogW2YxOTk4NmI5M2FiN2FhMjNmNzZkZWRm OWZkODY1N2Y4NjUzMjRmNzhdIHZpcnRpb19yaW5nOiB1cGRhdGUgZG9jdW1lbnQgZm9yIHZpcnRx dWV1ZV9hZGRfKgo+ID4gPiA+ID4gZ2l0IGJpc2VjdCBnb29kIGYxOTk4NmI5M2FiN2FhMjNmNzZk ZWRmOWZkODY1N2Y4NjUzMjRmNzgKPiA+ID4gPiA+ICMgYmFkOiBbNjA2MDJiMzY3ZGM5MjhlMmIz ZDZjMWYyMWRmNWQwNWY5MGUzN2ZhM10gdmlydGlvX3Jpbmc6IGNvcnJlY3QgdGhlIGV4cHJlc3Np b24gb2YgdGhlIGRlc2NyaXB0aW9uIG9mIHZpcnRxdWV1ZV9yZXNpemUoKQo+ID4gPiA+ID4gZ2l0 IGJpc2VjdCBiYWQgNjA2MDJiMzY3ZGM5MjhlMmIzZDZjMWYyMWRmNWQwNWY5MGUzN2ZhMwo+ID4g PiA+ID4gIyBiYWQ6IFszYTA2MzUzNDc5MTExZTFjOWUwNzI4MjViYjBkMDczMGUzYTBmNGU3XSB2 aXJ0aW9fcmluZzogaW50cm9kdWNlIHZpcnRxdWV1ZV9kbWFfZGV2KCkKPiA+ID4gPiA+IGdpdCBi aXNlY3QgYmFkIDNhMDYzNTM0NzkxMTFlMWM5ZTA3MjgyNWJiMGQwNzMwZTNhMGY0ZTcKPiA+ID4g PiA+ICMgZmlyc3QgYmFkIGNvbW1pdDogWzNhMDYzNTM0NzkxMTFlMWM5ZTA3MjgyNWJiMGQwNzMw ZTNhMGY0ZTddIHZpcnRpb19yaW5nOiBpbnRyb2R1Y2UgdmlydHF1ZXVlX2RtYV9kZXYoKQo+ID4g PiA+Cj4gPiA+Cj4gPgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KVmlydHVhbGl6YXRpb24gbWFpbGluZyBsaXN0ClZpcnR1YWxpemF0aW9uQGxpc3RzLmxp bnV4LWZvdW5kYXRpb24ub3JnCmh0dHBzOi8vbGlzdHMubGludXhmb3VuZGF0aW9uLm9yZy9tYWls bWFuL2xpc3RpbmZvL3ZpcnR1YWxpemF0aW9u