From xen-api-bounces@lists.xen.org Mon Dec 01 15:50:24 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2014 15:50:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1XvTEs-0001lo-Jt; Mon, 01 Dec 2014 15:50:14 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <list@dorkington-hackers.com>) id 1XvTEs-0001lh-5Y
	for xen-api@lists.xensource.com; Mon, 01 Dec 2014 15:50:14 +0000
Received: from [193.109.254.147] by server-13.bemta-14.messagelabs.com id
	4B/D1-02699-53E8C745; Mon, 01 Dec 2014 15:50:13 +0000
X-Env-Sender: list@dorkington-hackers.com
X-Msg-Ref: server-13.tower-27.messagelabs.com!1417449012!12254042!1
X-Originating-IP: [209.85.212.179]
X-SpamReason: No, hits=0.4 required=7.0 tests=HTML_30_40,HTML_MESSAGE,
	RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 11549 invoked from network); 1 Dec 2014 15:50:12 -0000
Received: from mail-wi0-f179.google.com (HELO mail-wi0-f179.google.com)
	(209.85.212.179)
	by server-13.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	1 Dec 2014 15:50:12 -0000
Received: by mail-wi0-f179.google.com with SMTP id ex7so17851208wid.12
	for <xen-api@lists.xensource.com>; Mon, 01 Dec 2014 07:50:12 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:content-type;
	bh=zBJ7aBK7p0c8jZk5w3ohZtj9X2gaVco5jcI5YP8+BKM=;
	b=UtY2tvsOSkRkICy064llM/oZgD17nvRSn/NzkvxIkbLvrOPM5ku5Cwcx2g7v5ICmFa
	CeeKk+RVXMc3/bNAOTy4koH8CZHCY+slbf9CEFuyz33ZAr7zt0jWXaYrA2CC2Jkq+Cp1
	OnpQrcNxI0WhZBMAQ8Qc2CpzJ5GkO8WQeCuBN+LqIMRbDt9gPiVs8wgnCSTiScwRXeSd
	z5tC20eeojXkmV/p8SmntZ2zJKMnCbkClLKwx12PmxNLgcftDCTkEbmA4zjcO47ixLBZ
	k//TMKPrWex6siqYf1PwjGY3WD9HuPBhbB8T9gm1BiVJdB0M17i5PO9gNql/N46miYZp
	70SA==
X-Gm-Message-State: ALoCoQm49bW3Gr8LMAY7rZekaCSqZoTFUt5Toz5UzU4TI97zwZF8GgjLA6SVZNvhoinMQg+KmyRh
MIME-Version: 1.0
X-Received: by 10.180.198.211 with SMTP id je19mr32311493wic.27.1417449012094; 
	Mon, 01 Dec 2014 07:50:12 -0800 (PST)
Received: by 10.194.71.195 with HTTP; Mon, 1 Dec 2014 07:50:12 -0800 (PST)
X-Originating-IP: [109.239.90.187]
In-Reply-To: <CAFbCf9CYcz4UMGR7MNzWQ=b_j5ULhmrFpcsAqdTPky7VEJ9_rA@mail.gmail.com>
References: <CAFbCf9B7MUdCHVr7M5u36cspRPDG6PC8dfa+Ahtc8+xwkcx5Pg@mail.gmail.com>
	<CAFbCf9CYcz4UMGR7MNzWQ=b_j5ULhmrFpcsAqdTPky7VEJ9_rA@mail.gmail.com>
Date: Mon, 1 Dec 2014 15:50:12 +0000
Message-ID: <CAFbCf9BoRrXfzPgD5qyiTVM0pK9HmDbu1CNquPK1WDeUhpAA+A@mail.gmail.com>
From: Mailing Lists <list@dorkington-hackers.com>
To: "xen-api@lists.xensource.com" <xen-api@lists.xensource.com>
Subject: Re: [Xen-API] Memory only snapshot
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============7769083684998591900=="
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

--===============7769083684998591900==
Content-Type: multipart/alternative; boundary=047d7b62536ada83ee05092990a7

--047d7b62536ada83ee05092990a7
Content-Type: text/plain; charset=UTF-8

Hi,

Is this maybe posted in the wrong list? A simple no would be enough for me
to start considering other alternatives.

Thanks in advance
Jon

On Tue, Nov 11, 2014 at 11:07 AM, Mailing Lists <list@dorkington-hackers.com
> wrote:

> Apologies for double post
>
> On Mon, Nov 10, 2014 at 12:01 PM, Mailing Lists <
> list@dorkington-hackers.com> wrote:
>
>> Hi,
>>
>> This may be a stupid request and potentially covered at some point - I
>> did find a wiki entry relating to the broad concept here
>> <http://wiki.xen.org/wiki/Proposal:_Disk_import/export>.
>>
>> Basically I want to be able to selectively snapshot different aspects of
>> a VM. We have a lot of machines running off a small OS disk, with larger
>> data disks. I want to be able to do a snapshot of the OS disk selectively,
>> which I can do with the API and the exposing mechanism from the wiki. This
>> is because the data on the larger disks is usually part of a separate
>> backup process and can be recovered with different methods - also most of
>> the SR's that we run these VMs on are not really large enough to be able to
>> snapshot all of the disks. However, if I do it this way it means that I
>> also open myself up to having potentially unrestorable machine images.
>>
>> What I am wondering is if there is a way of performing a memory only
>> snapshot? My strategy would be that I pause a vm, snapshot the OS disk,
>> then dump the memory somehow, unpause the VM and then sync the snapshots to
>> a backup unit. Given that I can perform a disk and memory snapshot, I
>> wouldn't have thought this would be too out of the question?
>>
>> Please feel free to point out that what I'm asking for is completely
>> stupid - I freely admit I haven't done a giant amount of research on this
>> point.
>>
>> Thanks
>> Jon
>>
>>
>

--047d7b62536ada83ee05092990a7
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div><div>Hi,<br><br></div>Is this maybe posted in the wro=
ng list? A simple no would be enough for me to start considering other alte=
rnatives.<br><br>Thanks in advance<br></div>Jon<br></div><div class=3D"gmai=
l_extra"><br><div class=3D"gmail_quote">On Tue, Nov 11, 2014 at 11:07 AM, M=
ailing Lists <span dir=3D"ltr">&lt;<a href=3D"mailto:list@dorkington-hacker=
s.com" target=3D"_blank">list@dorkington-hackers.com</a>&gt;</span> wrote:<=
br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left=
:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">Apologies for double pos=
t<br></div><div class=3D"HOEnZb"><div class=3D"h5"><div class=3D"gmail_extr=
a"><br><div class=3D"gmail_quote">On Mon, Nov 10, 2014 at 12:01 PM, Mailing=
 Lists <span dir=3D"ltr">&lt;<a href=3D"mailto:list@dorkington-hackers.com"=
 target=3D"_blank">list@dorkington-hackers.com</a>&gt;</span> wrote:<br><bl=
ockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #=
ccc solid;padding-left:1ex"><div><div><div dir=3D"ltr"><div class=3D"gmail_=
quote"><div dir=3D"ltr"><div><div><div>Hi,<br><br>This may be a stupid requ=
est and potentially covered at some point - I did find a wiki entry relatin=
g to the broad concept <a href=3D"http://wiki.xen.org/wiki/Proposal:_Disk_i=
mport/export" target=3D"_blank">here</a>.<br><br></div>Basically I want to =
be able to selectively snapshot different aspects of a VM. We have a lot of=
 machines running off a small OS disk, with larger data disks. I want to be=
 able to do a snapshot of the OS disk selectively, which I can do with the =
API and the exposing mechanism from the wiki. This is because the data on t=
he larger disks is usually part of a separate backup process and can be rec=
overed with different methods - also most of the SR&#39;s that we run these=
 VMs on are not really large enough to be able to snapshot all of the disks=
. However, if I do it this way it means that I also open myself up to havin=
g potentially unrestorable machine images.<br><br>What I am wondering is if=
 there is a way of performing a memory only snapshot? My strategy would be =
that I pause a vm, snapshot the OS disk, then dump the memory somehow, unpa=
use the VM and then sync the snapshots to a backup unit. Given that I can p=
erform a disk and memory snapshot, I wouldn&#39;t have thought this would b=
e too out of the question?<br><br></div>Please feel free to point out that =
what I&#39;m asking for is completely stupid - I freely admit I haven&#39;t=
 done a giant amount of research on this point. <br><br></div>Thanks<br>Jon=
<br></div>
</div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>

--047d7b62536ada83ee05092990a7--


--===============7769083684998591900==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

--===============7769083684998591900==--


From xen-api-bounces@lists.xen.org Mon Dec 01 15:50:24 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 01 Dec 2014 15:50:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1XvTEs-0001lo-Jt; Mon, 01 Dec 2014 15:50:14 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <list@dorkington-hackers.com>) id 1XvTEs-0001lh-5Y
	for xen-api@lists.xensource.com; Mon, 01 Dec 2014 15:50:14 +0000
Received: from [193.109.254.147] by server-13.bemta-14.messagelabs.com id
	4B/D1-02699-53E8C745; Mon, 01 Dec 2014 15:50:13 +0000
X-Env-Sender: list@dorkington-hackers.com
X-Msg-Ref: server-13.tower-27.messagelabs.com!1417449012!12254042!1
X-Originating-IP: [209.85.212.179]
X-SpamReason: No, hits=0.4 required=7.0 tests=HTML_30_40,HTML_MESSAGE,
	RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 11549 invoked from network); 1 Dec 2014 15:50:12 -0000
Received: from mail-wi0-f179.google.com (HELO mail-wi0-f179.google.com)
	(209.85.212.179)
	by server-13.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	1 Dec 2014 15:50:12 -0000
Received: by mail-wi0-f179.google.com with SMTP id ex7so17851208wid.12
	for <xen-api@lists.xensource.com>; Mon, 01 Dec 2014 07:50:12 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:content-type;
	bh=zBJ7aBK7p0c8jZk5w3ohZtj9X2gaVco5jcI5YP8+BKM=;
	b=UtY2tvsOSkRkICy064llM/oZgD17nvRSn/NzkvxIkbLvrOPM5ku5Cwcx2g7v5ICmFa
	CeeKk+RVXMc3/bNAOTy4koH8CZHCY+slbf9CEFuyz33ZAr7zt0jWXaYrA2CC2Jkq+Cp1
	OnpQrcNxI0WhZBMAQ8Qc2CpzJ5GkO8WQeCuBN+LqIMRbDt9gPiVs8wgnCSTiScwRXeSd
	z5tC20eeojXkmV/p8SmntZ2zJKMnCbkClLKwx12PmxNLgcftDCTkEbmA4zjcO47ixLBZ
	k//TMKPrWex6siqYf1PwjGY3WD9HuPBhbB8T9gm1BiVJdB0M17i5PO9gNql/N46miYZp
	70SA==
X-Gm-Message-State: ALoCoQm49bW3Gr8LMAY7rZekaCSqZoTFUt5Toz5UzU4TI97zwZF8GgjLA6SVZNvhoinMQg+KmyRh
MIME-Version: 1.0
X-Received: by 10.180.198.211 with SMTP id je19mr32311493wic.27.1417449012094; 
	Mon, 01 Dec 2014 07:50:12 -0800 (PST)
Received: by 10.194.71.195 with HTTP; Mon, 1 Dec 2014 07:50:12 -0800 (PST)
X-Originating-IP: [109.239.90.187]
In-Reply-To: <CAFbCf9CYcz4UMGR7MNzWQ=b_j5ULhmrFpcsAqdTPky7VEJ9_rA@mail.gmail.com>
References: <CAFbCf9B7MUdCHVr7M5u36cspRPDG6PC8dfa+Ahtc8+xwkcx5Pg@mail.gmail.com>
	<CAFbCf9CYcz4UMGR7MNzWQ=b_j5ULhmrFpcsAqdTPky7VEJ9_rA@mail.gmail.com>
Date: Mon, 1 Dec 2014 15:50:12 +0000
Message-ID: <CAFbCf9BoRrXfzPgD5qyiTVM0pK9HmDbu1CNquPK1WDeUhpAA+A@mail.gmail.com>
From: Mailing Lists <list@dorkington-hackers.com>
To: "xen-api@lists.xensource.com" <xen-api@lists.xensource.com>
Subject: Re: [Xen-API] Memory only snapshot
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============7769083684998591900=="
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

--===============7769083684998591900==
Content-Type: multipart/alternative; boundary=047d7b62536ada83ee05092990a7

--047d7b62536ada83ee05092990a7
Content-Type: text/plain; charset=UTF-8

Hi,

Is this maybe posted in the wrong list? A simple no would be enough for me
to start considering other alternatives.

Thanks in advance
Jon

On Tue, Nov 11, 2014 at 11:07 AM, Mailing Lists <list@dorkington-hackers.com
> wrote:

> Apologies for double post
>
> On Mon, Nov 10, 2014 at 12:01 PM, Mailing Lists <
> list@dorkington-hackers.com> wrote:
>
>> Hi,
>>
>> This may be a stupid request and potentially covered at some point - I
>> did find a wiki entry relating to the broad concept here
>> <http://wiki.xen.org/wiki/Proposal:_Disk_import/export>.
>>
>> Basically I want to be able to selectively snapshot different aspects of
>> a VM. We have a lot of machines running off a small OS disk, with larger
>> data disks. I want to be able to do a snapshot of the OS disk selectively,
>> which I can do with the API and the exposing mechanism from the wiki. This
>> is because the data on the larger disks is usually part of a separate
>> backup process and can be recovered with different methods - also most of
>> the SR's that we run these VMs on are not really large enough to be able to
>> snapshot all of the disks. However, if I do it this way it means that I
>> also open myself up to having potentially unrestorable machine images.
>>
>> What I am wondering is if there is a way of performing a memory only
>> snapshot? My strategy would be that I pause a vm, snapshot the OS disk,
>> then dump the memory somehow, unpause the VM and then sync the snapshots to
>> a backup unit. Given that I can perform a disk and memory snapshot, I
>> wouldn't have thought this would be too out of the question?
>>
>> Please feel free to point out that what I'm asking for is completely
>> stupid - I freely admit I haven't done a giant amount of research on this
>> point.
>>
>> Thanks
>> Jon
>>
>>
>

--047d7b62536ada83ee05092990a7
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div><div>Hi,<br><br></div>Is this maybe posted in the wro=
ng list? A simple no would be enough for me to start considering other alte=
rnatives.<br><br>Thanks in advance<br></div>Jon<br></div><div class=3D"gmai=
l_extra"><br><div class=3D"gmail_quote">On Tue, Nov 11, 2014 at 11:07 AM, M=
ailing Lists <span dir=3D"ltr">&lt;<a href=3D"mailto:list@dorkington-hacker=
s.com" target=3D"_blank">list@dorkington-hackers.com</a>&gt;</span> wrote:<=
br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left=
:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">Apologies for double pos=
t<br></div><div class=3D"HOEnZb"><div class=3D"h5"><div class=3D"gmail_extr=
a"><br><div class=3D"gmail_quote">On Mon, Nov 10, 2014 at 12:01 PM, Mailing=
 Lists <span dir=3D"ltr">&lt;<a href=3D"mailto:list@dorkington-hackers.com"=
 target=3D"_blank">list@dorkington-hackers.com</a>&gt;</span> wrote:<br><bl=
ockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #=
ccc solid;padding-left:1ex"><div><div><div dir=3D"ltr"><div class=3D"gmail_=
quote"><div dir=3D"ltr"><div><div><div>Hi,<br><br>This may be a stupid requ=
est and potentially covered at some point - I did find a wiki entry relatin=
g to the broad concept <a href=3D"http://wiki.xen.org/wiki/Proposal:_Disk_i=
mport/export" target=3D"_blank">here</a>.<br><br></div>Basically I want to =
be able to selectively snapshot different aspects of a VM. We have a lot of=
 machines running off a small OS disk, with larger data disks. I want to be=
 able to do a snapshot of the OS disk selectively, which I can do with the =
API and the exposing mechanism from the wiki. This is because the data on t=
he larger disks is usually part of a separate backup process and can be rec=
overed with different methods - also most of the SR&#39;s that we run these=
 VMs on are not really large enough to be able to snapshot all of the disks=
. However, if I do it this way it means that I also open myself up to havin=
g potentially unrestorable machine images.<br><br>What I am wondering is if=
 there is a way of performing a memory only snapshot? My strategy would be =
that I pause a vm, snapshot the OS disk, then dump the memory somehow, unpa=
use the VM and then sync the snapshots to a backup unit. Given that I can p=
erform a disk and memory snapshot, I wouldn&#39;t have thought this would b=
e too out of the question?<br><br></div>Please feel free to point out that =
what I&#39;m asking for is completely stupid - I freely admit I haven&#39;t=
 done a giant amount of research on this point. <br><br></div>Thanks<br>Jon=
<br></div>
</div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>

--047d7b62536ada83ee05092990a7--


--===============7769083684998591900==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

--===============7769083684998591900==--


From xen-api-bounces@lists.xen.org Wed Dec 03 09:59:10 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2014 09:59:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Xw6i5-0006hK-Gt; Wed, 03 Dec 2014 09:59:01 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <siddharth.vinothkumar@citrix.com>)
	id 1Xw6i4-0006hF-5x
	for xen-api@lists.xen.org; Wed, 03 Dec 2014 09:59:00 +0000
Received: from [193.109.254.147] by server-16.bemta-14.messagelabs.com id
	D2/ED-02576-3EEDE745; Wed, 03 Dec 2014 09:58:59 +0000
X-Env-Sender: siddharth.vinothkumar@citrix.com
X-Msg-Ref: server-8.tower-27.messagelabs.com!1417600732!12675657!1
X-Originating-IP: [103.14.252.240]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
	Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 9678 invoked from network); 3 Dec 2014 09:58:55 -0000
Received: from smtp.citrix.com.au (HELO SMTP.CITRIX.COM.AU) (103.14.252.240)
	by server-8.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	3 Dec 2014 09:58:55 -0000
X-IronPort-AV: E=Sophos;i="5.07,507,1413244800"; d="scan'208";a="11973401"
From: Siddharth Vinoth Kumar <siddharth.vinothkumar@citrix.com>
To: Euan Harris <euan.harris@citrix.com>, Dave Scott <Dave.Scott@citrix.com>
Thread-Topic: [Xen-API] Nominate Siddharth Vinoth Kumar as a Committer
Thread-Index: AQHQCWRQFuMKtEK9+E+hbsjxGXrmNJxz3SaAgAAECgCAABK5gIAAAkUAgAm1wQA=
Date: Wed, 3 Dec 2014 09:58:46 +0000
Message-ID: <654788A196486E4F875F04A96D0F626724BF7990@SINPEX01CL01.citrite.net>
References: <20141126102803.GA1956@mlvm.uk.xensource.com> <,>
	<54771485.6020703@citrix.com>
	<4B8F5D33B081C044AA43634E84ED7F96504A42@AMSPEX01CL03.citrite.net>
	<BAF824B3-F408-4F90-BCCC-A9F05F673C68@citrix.com>
	<20141127133916.GA15139@citrix.com>
In-Reply-To: <20141127133916.GA15139@citrix.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
MIME-Version: 1.0
X-DLP: SIN1
Cc: Jonathan Ludlam <Jonathan.Ludlam@citrix.com>,
	"xen-api@lists.xen.org" <xen-api@lists.xen.org>
Subject: Re: [Xen-API] Nominate Siddharth Vinoth Kumar as a Committer
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

Hi All,

I would like to thank everyone who has acknowledged my request to be nominated as a xapi-project developer. It's been almost two years since I've started towards its various components. 

Thanks,
Siddharth


-----Original Message-----
From: xen-api-bounces@lists.xen.org [mailto:xen-api-bounces@lists.xen.org] On Behalf Of Euan Harris
Sent: 27 November 2014 19:09
To: Dave Scott
Cc: Jonathan Ludlam; xen-api@lists.xen.org
Subject: Re: [Xen-API] Nominate Siddharth Vinoth Kumar as a Committer

+1

On Thu, Nov 27, 2014 at 01:31:09PM +0000, Dave Scott wrote:
> +1
> 
> > On 27 Nov 2014, at 12:24, Simon Beaumont <simon.beaumont@citrix.com> wrote:
> > 
> > +1
> > ________________________________________
> > From: xen-api-bounces@lists.xen.org [xen-api-bounces@lists.xen.org] 
> > on behalf of Jon Ludlam [jonathan.ludlam@citrix.com]
> > Sent: 27 November 2014 12:09
> > To: xen-api@lists.xen.org
> > Subject: Re: [Xen-API] Nominate Siddharth Vinoth Kumar as a 
> > Committer
> > 
> > +1
> > 
> > Jon
> > 
> > On 26/11/14 10:28, Mate Lakat wrote:
> >> Hi all,
> >> 
> >> Siddharth has been contributing to various parts of the project. 
> >> For a list of his contributions, please see:
> >> 
> >>    xen-api:
> >>    https://github.com/xapi-project/xen-api/commits/master?author=siddharthv
> >>    sm:
> >>    https://github.com/xapi-project/sm/commits/master?author=siddharthv
> >>    xcp-rrdd:
> >>    
> >> https://github.com/xapi-project/xcp-rrdd/commits/master?author=sidd
> >> harthv
> >> 
> >> I would like to nominate him as Committer.
> >> 
> >> Cheers,
> >> Mate
> >> 
> >> 
> > 
> > 
> > _______________________________________________
> > Xen-api mailing list
> > Xen-api@lists.xen.org
> > http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api
> > 
> > _______________________________________________
> > Xen-api mailing list
> > Xen-api@lists.xen.org
> > http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api
> 
> 
> _______________________________________________
> Xen-api mailing list
> Xen-api@lists.xen.org
> http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

From xen-api-bounces@lists.xen.org Wed Dec 03 09:59:10 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2014 09:59:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Xw6i5-0006hK-Gt; Wed, 03 Dec 2014 09:59:01 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <siddharth.vinothkumar@citrix.com>)
	id 1Xw6i4-0006hF-5x
	for xen-api@lists.xen.org; Wed, 03 Dec 2014 09:59:00 +0000
Received: from [193.109.254.147] by server-16.bemta-14.messagelabs.com id
	D2/ED-02576-3EEDE745; Wed, 03 Dec 2014 09:58:59 +0000
X-Env-Sender: siddharth.vinothkumar@citrix.com
X-Msg-Ref: server-8.tower-27.messagelabs.com!1417600732!12675657!1
X-Originating-IP: [103.14.252.240]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
	Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 9678 invoked from network); 3 Dec 2014 09:58:55 -0000
Received: from smtp.citrix.com.au (HELO SMTP.CITRIX.COM.AU) (103.14.252.240)
	by server-8.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	3 Dec 2014 09:58:55 -0000
X-IronPort-AV: E=Sophos;i="5.07,507,1413244800"; d="scan'208";a="11973401"
From: Siddharth Vinoth Kumar <siddharth.vinothkumar@citrix.com>
To: Euan Harris <euan.harris@citrix.com>, Dave Scott <Dave.Scott@citrix.com>
Thread-Topic: [Xen-API] Nominate Siddharth Vinoth Kumar as a Committer
Thread-Index: AQHQCWRQFuMKtEK9+E+hbsjxGXrmNJxz3SaAgAAECgCAABK5gIAAAkUAgAm1wQA=
Date: Wed, 3 Dec 2014 09:58:46 +0000
Message-ID: <654788A196486E4F875F04A96D0F626724BF7990@SINPEX01CL01.citrite.net>
References: <20141126102803.GA1956@mlvm.uk.xensource.com> <,>
	<54771485.6020703@citrix.com>
	<4B8F5D33B081C044AA43634E84ED7F96504A42@AMSPEX01CL03.citrite.net>
	<BAF824B3-F408-4F90-BCCC-A9F05F673C68@citrix.com>
	<20141127133916.GA15139@citrix.com>
In-Reply-To: <20141127133916.GA15139@citrix.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
MIME-Version: 1.0
X-DLP: SIN1
Cc: Jonathan Ludlam <Jonathan.Ludlam@citrix.com>,
	"xen-api@lists.xen.org" <xen-api@lists.xen.org>
Subject: Re: [Xen-API] Nominate Siddharth Vinoth Kumar as a Committer
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

Hi All,

I would like to thank everyone who has acknowledged my request to be nominated as a xapi-project developer. It's been almost two years since I've started towards its various components. 

Thanks,
Siddharth


-----Original Message-----
From: xen-api-bounces@lists.xen.org [mailto:xen-api-bounces@lists.xen.org] On Behalf Of Euan Harris
Sent: 27 November 2014 19:09
To: Dave Scott
Cc: Jonathan Ludlam; xen-api@lists.xen.org
Subject: Re: [Xen-API] Nominate Siddharth Vinoth Kumar as a Committer

+1

On Thu, Nov 27, 2014 at 01:31:09PM +0000, Dave Scott wrote:
> +1
> 
> > On 27 Nov 2014, at 12:24, Simon Beaumont <simon.beaumont@citrix.com> wrote:
> > 
> > +1
> > ________________________________________
> > From: xen-api-bounces@lists.xen.org [xen-api-bounces@lists.xen.org] 
> > on behalf of Jon Ludlam [jonathan.ludlam@citrix.com]
> > Sent: 27 November 2014 12:09
> > To: xen-api@lists.xen.org
> > Subject: Re: [Xen-API] Nominate Siddharth Vinoth Kumar as a 
> > Committer
> > 
> > +1
> > 
> > Jon
> > 
> > On 26/11/14 10:28, Mate Lakat wrote:
> >> Hi all,
> >> 
> >> Siddharth has been contributing to various parts of the project. 
> >> For a list of his contributions, please see:
> >> 
> >>    xen-api:
> >>    https://github.com/xapi-project/xen-api/commits/master?author=siddharthv
> >>    sm:
> >>    https://github.com/xapi-project/sm/commits/master?author=siddharthv
> >>    xcp-rrdd:
> >>    
> >> https://github.com/xapi-project/xcp-rrdd/commits/master?author=sidd
> >> harthv
> >> 
> >> I would like to nominate him as Committer.
> >> 
> >> Cheers,
> >> Mate
> >> 
> >> 
> > 
> > 
> > _______________________________________________
> > Xen-api mailing list
> > Xen-api@lists.xen.org
> > http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api
> > 
> > _______________________________________________
> > Xen-api mailing list
> > Xen-api@lists.xen.org
> > http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api
> 
> 
> _______________________________________________
> Xen-api mailing list
> Xen-api@lists.xen.org
> http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

From xen-api-bounces@lists.xen.org Wed Dec 03 13:46:09 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2014 13:46:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1XwAFk-0003nv-Iz; Wed, 03 Dec 2014 13:46:00 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <russell.pavlicek@citrix.com>)
	id 1XwAFj-0003na-C8; Wed, 03 Dec 2014 13:45:59 +0000
Received: from [193.109.254.147] by server-4.bemta-14.messagelabs.com id
	C4/16-02954-6141F745; Wed, 03 Dec 2014 13:45:58 +0000
X-Env-Sender: russell.pavlicek@citrix.com
X-Msg-Ref: server-3.tower-27.messagelabs.com!1417614354!12642055!1
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n,
	received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 3806 invoked from network); 3 Dec 2014 13:45:57 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
	by server-3.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	3 Dec 2014 13:45:57 -0000
X-IronPort-AV: E=Sophos;i="5.07,507,1413244800"; d="scan'208";a="199396524"
From: Russell Pavlicek <russell.pavlicek@citrix.com>
To: "xen-users@lists.xen.org" <xen-users@lists.xen.org>,
	"xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
	"xen-api@lists.xen.org"
	<xen-api@lists.xen.org>, "xen-announce@lists.xenproject.org"
	<xen-announce@lists.xenproject.org>, "xs-devel@lists.xenserver.org"
	<xs-devel@lists.xenserver.org>, "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>
Thread-Topic: Announcing Xen Project Test Day for 4.5 RC3 on December	4
Thread-Index: AQHQDmhP3KthO1lmv0KpABJgHiXx6A==
Date: Wed, 3 Dec 2014 13:45:40 +0000
Message-ID: <55E78A57290FB64FA0D3CF672F9F3DA2050D17DF@SJCPEX01CL03.citrite.net>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
MIME-Version: 1.0
Subject: [Xen-API] Announcing Xen Project Test Day for 4.5 RC3 on December	4
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

Folks,

This Thursday, December 4, is our third Test Day for the 4.5 release
cycle. Release Candidate 3 will be available for assessment on 
Wednesday.  Now is the time to see if the upcoming release of the 
Xen Project Hypervisor will work in your environment.

Information about testing this release can be found here:
http://wiki.xenproject.org/wiki/Xen_4.5_RC3_test_instructions

To learn more about Test Days, including the proposed dates 
for the RC4 Test Day and final release, check out:
http://wiki.xenproject.org/wiki/Xen_Project_Test_Days

See you in #xentest on IRC this Thursday for Test Day!


_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

From xen-api-bounces@lists.xen.org Wed Dec 03 13:46:09 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 03 Dec 2014 13:46:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1XwAFk-0003nv-Iz; Wed, 03 Dec 2014 13:46:00 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <russell.pavlicek@citrix.com>)
	id 1XwAFj-0003na-C8; Wed, 03 Dec 2014 13:45:59 +0000
Received: from [193.109.254.147] by server-4.bemta-14.messagelabs.com id
	C4/16-02954-6141F745; Wed, 03 Dec 2014 13:45:58 +0000
X-Env-Sender: russell.pavlicek@citrix.com
X-Msg-Ref: server-3.tower-27.messagelabs.com!1417614354!12642055!1
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
	VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n,
	received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 3806 invoked from network); 3 Dec 2014 13:45:57 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
	by server-3.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	3 Dec 2014 13:45:57 -0000
X-IronPort-AV: E=Sophos;i="5.07,507,1413244800"; d="scan'208";a="199396524"
From: Russell Pavlicek <russell.pavlicek@citrix.com>
To: "xen-users@lists.xen.org" <xen-users@lists.xen.org>,
	"xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
	"xen-api@lists.xen.org"
	<xen-api@lists.xen.org>, "xen-announce@lists.xenproject.org"
	<xen-announce@lists.xenproject.org>, "xs-devel@lists.xenserver.org"
	<xs-devel@lists.xenserver.org>, "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>
Thread-Topic: Announcing Xen Project Test Day for 4.5 RC3 on December	4
Thread-Index: AQHQDmhP3KthO1lmv0KpABJgHiXx6A==
Date: Wed, 3 Dec 2014 13:45:40 +0000
Message-ID: <55E78A57290FB64FA0D3CF672F9F3DA2050D17DF@SJCPEX01CL03.citrite.net>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
MIME-Version: 1.0
Subject: [Xen-API] Announcing Xen Project Test Day for 4.5 RC3 on December	4
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

Folks,

This Thursday, December 4, is our third Test Day for the 4.5 release
cycle. Release Candidate 3 will be available for assessment on 
Wednesday.  Now is the time to see if the upcoming release of the 
Xen Project Hypervisor will work in your environment.

Information about testing this release can be found here:
http://wiki.xenproject.org/wiki/Xen_4.5_RC3_test_instructions

To learn more about Test Days, including the proposed dates 
for the RC4 Test Day and final release, check out:
http://wiki.xenproject.org/wiki/Xen_Project_Test_Days

See you in #xentest on IRC this Thursday for Test Day!


_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

From xen-api-bounces@lists.xen.org Tue Dec 09 11:08:17 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2014 11:08:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1XyIeF-0004uj-Nf; Tue, 09 Dec 2014 11:08:07 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <ixgbevf@gmail.com>) id 1XyIeE-0004uV-CC
	for xen-api@lists.xen.org; Tue, 09 Dec 2014 11:08:06 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	A4/79-09842-518D6845; Tue, 09 Dec 2014 11:08:05 +0000
X-Env-Sender: ixgbevf@gmail.com
X-Msg-Ref: server-5.tower-21.messagelabs.com!1418123284!14354954!1
X-Originating-IP: [209.85.217.176]
X-SpamReason: No, hits=0.4 required=7.0 tests=HTML_50_60,HTML_MESSAGE,
	RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20089 invoked from network); 9 Dec 2014 11:08:05 -0000
Received: from mail-lb0-f176.google.com (HELO mail-lb0-f176.google.com)
	(209.85.217.176)
	by server-5.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	9 Dec 2014 11:08:05 -0000
Received: by mail-lb0-f176.google.com with SMTP id p9so284953lbv.7
	for <xen-api@lists.xen.org>; Tue, 09 Dec 2014 03:08:04 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:date:message-id:subject:from:to:content-type;
	bh=JKWfRLnVCP1WcdjxGW6SPLLBoccuXyK/WkLyZEAYTzY=;
	b=likQzkbpNWFycNi+Hx7TtD9rytaR/Z9keen2Up476LUIZHhLiLXwHGLV19KP2dXzrl
	iEktScYIrrpKLhCiAXvoFNMJOiI3O0wWnIhqzb/0jDwzoU0K/6EcHa46NHsILk2qTR9/
	XnDmxjm+7fvozK46BlmrKSA44pYjw2UVScGeL/uibCyvKfbKBc81jPY0/9JIdADtKoBO
	9Gg7czW2vK6p7Ws4AeoaywkuwBv65mPUFPY1F/EkubyBII9WNCJg923qIjzeaMEf2ye2
	UnWDXqA3uclfyJy5zIJo98+xc9ow2N4HTXD01U0esIMVNOXNP4KpO3Sdd3X97qk0UVrW
	l5lg==
MIME-Version: 1.0
X-Received: by 10.152.8.194 with SMTP id t2mr21119257laa.21.1418123284519;
	Tue, 09 Dec 2014 03:08:04 -0800 (PST)
Received: by 10.25.133.8 with HTTP; Tue, 9 Dec 2014 03:08:04 -0800 (PST)
Date: Tue, 9 Dec 2014 20:08:04 +0900
Message-ID: <CA+EnKhPAznx18_XtAsUExy2T3NS81ybignbsQJmyXQ2L=1jaKQ@mail.gmail.com>
From: nu li <ixgbevf@gmail.com>
To: xen-api@lists.xen.org
Subject: [Xen-API] Xenserver 6.2 & intel 82599 sriov vf DHCP problem
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============7647535396354137745=="
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

--===============7647535396354137745==
Content-Type: multipart/alternative; boundary=089e0158b7929f1e2e0509c68e17

--089e0158b7929f1e2e0509c68e17
Content-Type: text/plain; charset=UTF-8

We have two hosts with 82599 NIC, OS is Xenserver 6.2 SP1,
VM 1 is on host 1, OS is CentOS6.4 64-bit, as the dhcp server
VM 2 is on host 2, OS is CentOS6.4 64-bit, as the dhcp client
VM 2 has a VF configured  dhcp, and can get an IP address at the first time,
But after 'service network restart' it can't get an IP address any more

When VM 2 can get an IP address at the first time
tcpdump result on VM2,VM1,host1,host2 are the same
When it can't get an IP
we can still see both dhcp request and dhcp reply package on VM1 and host1
But only dhcp request package on VM2 and host2

Can anyone give a clue
Thanks in advance

--089e0158b7929f1e2e0509c68e17
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><span style=3D"font-size:13px">We have two hosts with 8259=
9 NIC, OS is Xenserver 6.2 SP1,</span><br style=3D"font-size:13px"><span st=
yle=3D"font-size:13px">VM 1 is on host 1, OS is CentOS6.4 64-bit, as the dh=
cp server</span><br style=3D"font-size:13px"><span style=3D"font-size:13px"=
>VM 2 is on host 2, OS is CentOS6.4 64-bit, as the dhcp client</span><br st=
yle=3D"font-size:13px"><span style=3D"font-size:13px">VM 2 has a VF configu=
red=C2=A0 dhcp, and can get an IP address at the first time,</span><br styl=
e=3D"font-size:13px"><span style=3D"font-size:13px">But after &#39;service =
network restart&#39; it can&#39;t get an IP address any more</span><br styl=
e=3D"font-size:13px"><br style=3D"font-size:13px"><span style=3D"font-size:=
13px">When VM 2 can get an IP address at the first time</span><br style=3D"=
font-size:13px"><span style=3D"font-size:13px">tcpdump result on VM2,VM1,ho=
st1,host2 are the same</span><br style=3D"font-size:13px"><span style=3D"fo=
nt-size:13px">When it can&#39;t get an IP</span><br style=3D"font-size:13px=
"><span style=3D"font-size:13px">we can still see both dhcp request and dhc=
p reply package on VM1 and host1</span><br style=3D"font-size:13px"><span s=
tyle=3D"font-size:13px">But only dhcp request package on VM2 and host2</spa=
n><br style=3D"font-size:13px"><br style=3D"font-size:13px"><span style=3D"=
font-size:13px">Can anyone give a clue</span><br style=3D"font-size:13px"><=
span style=3D"font-size:13px">Thanks in advance</span><br style=3D"font-siz=
e:13px"></div>

--089e0158b7929f1e2e0509c68e17--


--===============7647535396354137745==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

--===============7647535396354137745==--


From xen-api-bounces@lists.xen.org Tue Dec 09 11:08:17 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Dec 2014 11:08:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1XyIeF-0004uj-Nf; Tue, 09 Dec 2014 11:08:07 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <ixgbevf@gmail.com>) id 1XyIeE-0004uV-CC
	for xen-api@lists.xen.org; Tue, 09 Dec 2014 11:08:06 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	A4/79-09842-518D6845; Tue, 09 Dec 2014 11:08:05 +0000
X-Env-Sender: ixgbevf@gmail.com
X-Msg-Ref: server-5.tower-21.messagelabs.com!1418123284!14354954!1
X-Originating-IP: [209.85.217.176]
X-SpamReason: No, hits=0.4 required=7.0 tests=HTML_50_60,HTML_MESSAGE,
	RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20089 invoked from network); 9 Dec 2014 11:08:05 -0000
Received: from mail-lb0-f176.google.com (HELO mail-lb0-f176.google.com)
	(209.85.217.176)
	by server-5.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	9 Dec 2014 11:08:05 -0000
Received: by mail-lb0-f176.google.com with SMTP id p9so284953lbv.7
	for <xen-api@lists.xen.org>; Tue, 09 Dec 2014 03:08:04 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:date:message-id:subject:from:to:content-type;
	bh=JKWfRLnVCP1WcdjxGW6SPLLBoccuXyK/WkLyZEAYTzY=;
	b=likQzkbpNWFycNi+Hx7TtD9rytaR/Z9keen2Up476LUIZHhLiLXwHGLV19KP2dXzrl
	iEktScYIrrpKLhCiAXvoFNMJOiI3O0wWnIhqzb/0jDwzoU0K/6EcHa46NHsILk2qTR9/
	XnDmxjm+7fvozK46BlmrKSA44pYjw2UVScGeL/uibCyvKfbKBc81jPY0/9JIdADtKoBO
	9Gg7czW2vK6p7Ws4AeoaywkuwBv65mPUFPY1F/EkubyBII9WNCJg923qIjzeaMEf2ye2
	UnWDXqA3uclfyJy5zIJo98+xc9ow2N4HTXD01U0esIMVNOXNP4KpO3Sdd3X97qk0UVrW
	l5lg==
MIME-Version: 1.0
X-Received: by 10.152.8.194 with SMTP id t2mr21119257laa.21.1418123284519;
	Tue, 09 Dec 2014 03:08:04 -0800 (PST)
Received: by 10.25.133.8 with HTTP; Tue, 9 Dec 2014 03:08:04 -0800 (PST)
Date: Tue, 9 Dec 2014 20:08:04 +0900
Message-ID: <CA+EnKhPAznx18_XtAsUExy2T3NS81ybignbsQJmyXQ2L=1jaKQ@mail.gmail.com>
From: nu li <ixgbevf@gmail.com>
To: xen-api@lists.xen.org
Subject: [Xen-API] Xenserver 6.2 & intel 82599 sriov vf DHCP problem
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============7647535396354137745=="
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

--===============7647535396354137745==
Content-Type: multipart/alternative; boundary=089e0158b7929f1e2e0509c68e17

--089e0158b7929f1e2e0509c68e17
Content-Type: text/plain; charset=UTF-8

We have two hosts with 82599 NIC, OS is Xenserver 6.2 SP1,
VM 1 is on host 1, OS is CentOS6.4 64-bit, as the dhcp server
VM 2 is on host 2, OS is CentOS6.4 64-bit, as the dhcp client
VM 2 has a VF configured  dhcp, and can get an IP address at the first time,
But after 'service network restart' it can't get an IP address any more

When VM 2 can get an IP address at the first time
tcpdump result on VM2,VM1,host1,host2 are the same
When it can't get an IP
we can still see both dhcp request and dhcp reply package on VM1 and host1
But only dhcp request package on VM2 and host2

Can anyone give a clue
Thanks in advance

--089e0158b7929f1e2e0509c68e17
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><span style=3D"font-size:13px">We have two hosts with 8259=
9 NIC, OS is Xenserver 6.2 SP1,</span><br style=3D"font-size:13px"><span st=
yle=3D"font-size:13px">VM 1 is on host 1, OS is CentOS6.4 64-bit, as the dh=
cp server</span><br style=3D"font-size:13px"><span style=3D"font-size:13px"=
>VM 2 is on host 2, OS is CentOS6.4 64-bit, as the dhcp client</span><br st=
yle=3D"font-size:13px"><span style=3D"font-size:13px">VM 2 has a VF configu=
red=C2=A0 dhcp, and can get an IP address at the first time,</span><br styl=
e=3D"font-size:13px"><span style=3D"font-size:13px">But after &#39;service =
network restart&#39; it can&#39;t get an IP address any more</span><br styl=
e=3D"font-size:13px"><br style=3D"font-size:13px"><span style=3D"font-size:=
13px">When VM 2 can get an IP address at the first time</span><br style=3D"=
font-size:13px"><span style=3D"font-size:13px">tcpdump result on VM2,VM1,ho=
st1,host2 are the same</span><br style=3D"font-size:13px"><span style=3D"fo=
nt-size:13px">When it can&#39;t get an IP</span><br style=3D"font-size:13px=
"><span style=3D"font-size:13px">we can still see both dhcp request and dhc=
p reply package on VM1 and host1</span><br style=3D"font-size:13px"><span s=
tyle=3D"font-size:13px">But only dhcp request package on VM2 and host2</spa=
n><br style=3D"font-size:13px"><br style=3D"font-size:13px"><span style=3D"=
font-size:13px">Can anyone give a clue</span><br style=3D"font-size:13px"><=
span style=3D"font-size:13px">Thanks in advance</span><br style=3D"font-siz=
e:13px"></div>

--089e0158b7929f1e2e0509c68e17--


--===============7647535396354137745==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

--===============7647535396354137745==--


From xen-api-bounces@lists.xen.org Thu Dec 11 19:47:05 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2014 19:47:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Xz9hP-00032z-4j; Thu, 11 Dec 2014 19:46:55 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <russell.pavlicek.xen@gmail.com>)
	id 1Xz9hN-00032c-DK; Thu, 11 Dec 2014 19:46:53 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	60/73-25276-CA4F9845; Thu, 11 Dec 2014 19:46:52 +0000
X-Env-Sender: russell.pavlicek.xen@gmail.com
X-Msg-Ref: server-9.tower-21.messagelabs.com!1418327211!15058148!1
X-Originating-IP: [209.85.217.178]
X-SpamReason: No, hits=2.5 required=7.0 tests=RCVD_BY_IP,
  SUSPICIOUS_RECIPS
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20381 invoked from network); 11 Dec 2014 19:46:51 -0000
Received: from mail-lb0-f178.google.com (HELO mail-lb0-f178.google.com)
	(209.85.217.178)
	by server-9.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	11 Dec 2014 19:46:51 -0000
Received: by mail-lb0-f178.google.com with SMTP id f15so5197951lbj.37
	for <multiple recipients>; Thu, 11 Dec 2014 11:46:51 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:sender:date:message-id:subject:from:to:content-type;
	bh=jTY3SSCjJXKEkf0lLNCG3D4OEA4TBYcqNWbuxLuBsqE=;
	b=ZVOOerKuoKO8uvY4FQJVhQzyS2DypGUJrpGJFgfsvPz9B0xb8/woIGWAPL86hOCpsD
	G5g86oG/+DstykIeQBc603LzkXPJsuRb7f8s4PAunf+9XnuPu06Xrs+E4qOPDpKCtPLp
	n132wkgWUuEccvqtdzpJKjVu4gaZ6P/kSUqeLFkQ/JeqdawK9tWjDInzzZmmiOkrjmQS
	1iiSi3v1xd8GevAV6qg9DhPsgoB57SJ3orLVNDSqKWtJx/Qo3+kQhnmq++1M8hA50pgw
	WWMYHVKf9RcymasoWn8OPIhad8cFP7JUufNrvTC8xu6pP2zpngT1OBmPcr3cHA7lmpM7
	4VrA==
MIME-Version: 1.0
X-Received: by 10.153.7.170 with SMTP id dd10mr11602423lad.44.1418327211131;
	Thu, 11 Dec 2014 11:46:51 -0800 (PST)
Received: by 10.112.0.104 with HTTP; Thu, 11 Dec 2014 11:46:51 -0800 (PST)
Date: Thu, 11 Dec 2014 14:46:51 -0500
X-Google-Sender-Auth: pHn9gd75f98-3gyK4Perd-dUCNY
Message-ID: <CAHehzX00Hg7CRLQt1Edmf2E6AW-ndZ54Tcofqcr2ovsyw1MYZQ@mail.gmail.com>
From: Russ Pavlicek <russell.pavlicek@xenproject.org>
To: xen-devel@lists.xen.org, 
	"xen-users@lists.xen.org" <xen-users@lists.xen.org>,
	xen-api@lists.xen.org, 
	xs-devel@lists.xenserver.org, mirageos-devel@lists.xenproject.org
Subject: [Xen-API] Monday is the Last Xen Project Document Day of 2014
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

Monday, December 15, will be our last Document Day of the year.

Given the 4.5 RC4 Testing scheduled for Wednesday of next week and the holidays
which occur later in the month, we have scheduled Document Day for Monday.

This is a great time to get our documentation ready for the new
release.  Have you
added a new feature in this release?  Make sure it is in the Wiki.
Have you noticed
pages which might be confusing for a new installation?  Now is a great
time to clean
it up.  Have you information on better integrating Xen Project with
other projects?
Share that information with others.

All the information you need to participate in Document Day is here:

http://wiki.xenproject.org/wiki/Xen_Document_Days

If you get a few moments before Monday, please take a look at the
current TODO list to see other items which need attention:

http://wiki.xenproject.org/wiki/Xen_Document_Days/TODO

Please think about how you can help out.  If you haven't requested
to be made a Wiki editor, save time and do it now so you are ready to
go on Document Day.  Just fill out the form below:

http://xenproject.org/component/content/article/100-misc/145-request-to-be-made-a-wiki-editor.html

We hope to see you Monday in #xendocs!

_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

From xen-api-bounces@lists.xen.org Thu Dec 11 19:47:05 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 11 Dec 2014 19:47:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Xz9hP-00032z-4j; Thu, 11 Dec 2014 19:46:55 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <russell.pavlicek.xen@gmail.com>)
	id 1Xz9hN-00032c-DK; Thu, 11 Dec 2014 19:46:53 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	60/73-25276-CA4F9845; Thu, 11 Dec 2014 19:46:52 +0000
X-Env-Sender: russell.pavlicek.xen@gmail.com
X-Msg-Ref: server-9.tower-21.messagelabs.com!1418327211!15058148!1
X-Originating-IP: [209.85.217.178]
X-SpamReason: No, hits=2.5 required=7.0 tests=RCVD_BY_IP,
  SUSPICIOUS_RECIPS
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20381 invoked from network); 11 Dec 2014 19:46:51 -0000
Received: from mail-lb0-f178.google.com (HELO mail-lb0-f178.google.com)
	(209.85.217.178)
	by server-9.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	11 Dec 2014 19:46:51 -0000
Received: by mail-lb0-f178.google.com with SMTP id f15so5197951lbj.37
	for <multiple recipients>; Thu, 11 Dec 2014 11:46:51 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:sender:date:message-id:subject:from:to:content-type;
	bh=jTY3SSCjJXKEkf0lLNCG3D4OEA4TBYcqNWbuxLuBsqE=;
	b=ZVOOerKuoKO8uvY4FQJVhQzyS2DypGUJrpGJFgfsvPz9B0xb8/woIGWAPL86hOCpsD
	G5g86oG/+DstykIeQBc603LzkXPJsuRb7f8s4PAunf+9XnuPu06Xrs+E4qOPDpKCtPLp
	n132wkgWUuEccvqtdzpJKjVu4gaZ6P/kSUqeLFkQ/JeqdawK9tWjDInzzZmmiOkrjmQS
	1iiSi3v1xd8GevAV6qg9DhPsgoB57SJ3orLVNDSqKWtJx/Qo3+kQhnmq++1M8hA50pgw
	WWMYHVKf9RcymasoWn8OPIhad8cFP7JUufNrvTC8xu6pP2zpngT1OBmPcr3cHA7lmpM7
	4VrA==
MIME-Version: 1.0
X-Received: by 10.153.7.170 with SMTP id dd10mr11602423lad.44.1418327211131;
	Thu, 11 Dec 2014 11:46:51 -0800 (PST)
Received: by 10.112.0.104 with HTTP; Thu, 11 Dec 2014 11:46:51 -0800 (PST)
Date: Thu, 11 Dec 2014 14:46:51 -0500
X-Google-Sender-Auth: pHn9gd75f98-3gyK4Perd-dUCNY
Message-ID: <CAHehzX00Hg7CRLQt1Edmf2E6AW-ndZ54Tcofqcr2ovsyw1MYZQ@mail.gmail.com>
From: Russ Pavlicek <russell.pavlicek@xenproject.org>
To: xen-devel@lists.xen.org, 
	"xen-users@lists.xen.org" <xen-users@lists.xen.org>,
	xen-api@lists.xen.org, 
	xs-devel@lists.xenserver.org, mirageos-devel@lists.xenproject.org
Subject: [Xen-API] Monday is the Last Xen Project Document Day of 2014
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

Monday, December 15, will be our last Document Day of the year.

Given the 4.5 RC4 Testing scheduled for Wednesday of next week and the holidays
which occur later in the month, we have scheduled Document Day for Monday.

This is a great time to get our documentation ready for the new
release.  Have you
added a new feature in this release?  Make sure it is in the Wiki.
Have you noticed
pages which might be confusing for a new installation?  Now is a great
time to clean
it up.  Have you information on better integrating Xen Project with
other projects?
Share that information with others.

All the information you need to participate in Document Day is here:

http://wiki.xenproject.org/wiki/Xen_Document_Days

If you get a few moments before Monday, please take a look at the
current TODO list to see other items which need attention:

http://wiki.xenproject.org/wiki/Xen_Document_Days/TODO

Please think about how you can help out.  If you haven't requested
to be made a Wiki editor, save time and do it now so you are ready to
go on Document Day.  Just fill out the form below:

http://xenproject.org/component/content/article/100-misc/145-request-to-be-made-a-wiki-editor.html

We hope to see you Monday in #xendocs!

_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

From xen-api-bounces@lists.xen.org Sat Dec 13 13:57:57 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 13 Dec 2014 13:57:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1XznCX-0003g8-M9; Sat, 13 Dec 2014 13:57:41 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1XznCW-0003fu-5t
	for xen-api@lists.xen.org; Sat, 13 Dec 2014 13:57:40 +0000
Received: from [193.109.254.147] by server-13.bemta-14.messagelabs.com id
	7D/C3-02699-3D54C845; Sat, 13 Dec 2014 13:57:39 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-13.tower-27.messagelabs.com!1418479055!14871429!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.2 required=7.0 tests=RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5519 invoked from network); 13 Dec 2014 13:57:35 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-13.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 13 Dec 2014 13:57:35 -0000
Received: from [10.12.2.241] (no-dns-yet.convergencegroup.co.uk
	[37.205.61.202]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id afd8c733;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Sat, 13 Dec 2014 14:03:16 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.1 \(1993\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <3A5650C9-9F0F-47F1-9204-4A90D1A04F9D@recoil.org>
Date: Sat, 13 Dec 2014 13:57:37 +0000
Message-Id: <AF9C4C28-9B0E-4E79-9B8D-5B23AEAC3FEE@recoil.org>
References: <1395927366.3749.13.camel@Guybrush> <533450C5.5070005@xen.org>
	<3A5650C9-9F0F-47F1-9204-4A90D1A04F9D@recoil.org>
To: lars.kurth@xen.org
X-Mailer: Apple Mail (2.1993)
Cc: "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>,
	"xen-api@lists.xen.org" <xen-api@lists.xen.org>
Subject: Re: [Xen-API] [MirageOS-devel] Issues and questions related to
	contribution metrics dashboard for XAPI and Mirage OS
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Type: text/plain; charset="windows-1252"
Content-Transfer-Encoding: quoted-printable
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

Hi Lars,

Better late than never, but here is the current list of Mirage repositories=
 (relative to GitHub).

https://raw.githubusercontent.com/mirage/mirage-www/master/TROVE

Replicated below as full URLs:

https://github.com/avsm/ezxmlm
https://github.com/avsm/ocaml-github
https://github.com/djs55/ocaml-xenstore-clients
https://github.com/mirage/cowabloga
https://github.com/mirage/dyntype
https://github.com/mirage/ezjsonm
https://github.com/mirage/io-page
https://github.com/mirage/irmin
https://github.com/mirage/merge-queues
https://github.com/mirage/merge-ropes
https://github.com/mirage/mirage
https://github.com/mirage/mirage-block-unix
https://github.com/mirage/mirage-block-volume
https://github.com/mirage/mirage-block-xen
https://github.com/mirage/mirage-clock
https://github.com/mirage/mirage-console
https://github.com/mirage/mirage-decks
https://github.com/mirage/mirage-entropy
https://github.com/mirage/mirage-fs-unix
https://github.com/mirage/mirage-http
https://github.com/mirage/mirage-net-macosx
https://github.com/mirage/mirage-net-unix
https://github.com/mirage/mirage-net-xen
https://github.com/mirage/mirage-platform
https://github.com/mirage/mirage-profile
https://github.com/mirage/mirage-skeleton
https://github.com/mirage/mirage-tc
https://github.com/mirage/mirage-tcpip
https://github.com/mirage/mirage-vagrant-vms
https://github.com/mirage/mirage-www
https://github.com/mirage/mirage-xen-minios
https://github.com/mirage/ocaml-cohttp
https://github.com/mirage/ocaml-conduit
https://github.com/mirage/ocaml-cow
https://github.com/mirage/ocaml-crunch
https://github.com/mirage/ocaml-cstruct
https://github.com/mirage/ocaml-dns
https://github.com/mirage/ocaml-fat
https://github.com/mirage/ocaml-git
https://github.com/mirage/ocaml-hex
https://github.com/mirage/ocaml-ipaddr
https://github.com/mirage/ocaml-lazy-trie
https://github.com/mirage/ocaml-mstruct
https://github.com/mirage/ocaml-mbr
https://github.com/mirage/ocaml-pcap
https://github.com/mirage/ocaml-tuntap
https://github.com/mirage/ocaml-tar
https://github.com/mirage/ocaml-uri
https://github.com/mirage/ocaml-vchan
https://github.com/mirage/ocaml-vmnet
https://github.com/mirage/ocaml-xenstore
https://github.com/mirage/shared-memory-ring
https://github.com/mirage/xen-disk
https://github.com/mirleft/ocaml-tls
https://github.com/mirleft/ocaml-x509
https://github.com/mirleft/ocaml-nocrypto
https://github.com/mirleft/ocaml-asn1-combinators
https://github.com/ocamllabs/ocaml-ctypes
https://github.com/samoht/alcotest
https://github.com/talex5/mirage-trace-viewer

The consolidated changelog is present at:
http://openmirage.org/releases

-anil

> On 27 Mar 2014, at 16:28, Anil Madhavapeddy <anil@recoil.org> wrote:
> =

> Dave and I are currently going through our repository list to normalize t=
his for Mirage.
> =

> https://github.com/mirage/mirage/issues/236
> =

> We'll update you shortly when the "trove" is completed.  That will have a=
n authoritative list of libraries, as well as spotting any licensing incons=
istencies or incorrect fork orders.
> =

> cheers,
> Anil
> =

> On 27 Mar 2014, at 16:24, Lars Kurth <lars.kurth@xen.org> wrote:
> =

>> Hi all,
>> =

>> a while ago I kicked a conversation related to putting a dashboard for t=
he Xen project sub projects together. As it turns out there is an issue in =
 XAPI and MirageOS repositories on github. Some of them are forks of upstre=
ams, which are hard for the tool to analyze. My proposal would be to *not a=
nalyse them* and include them into statistics. If I don't hear any screams,=
 then this will be the default. The list of forks detected are listed below=
 ...
>> =

>> Also, it would be good to let me know of any other repos that you dont w=
ant to analyse. The full list is at http://bitergia.com/projects/citrix-xen=
-dashboard/browser/scm-repos.html (note that there is 79 pages of them) whi=
ch should be aggregated into buckets for XAPI and opam
>> =

>> Regards
>> Lars
>> =

>> =3D Detected forks in XAPI Project =3D
>> xen-unstable-mirror git://github.com/xapi-project/xen-unstable-mirror.git
>> PRDup git://github.com/xapi-project/PRDup.git
>> blktap-dkms git://github.com/xapi-project/blktap-dkms.git
>> cdrom git://github.com/xapi-project/cdrom.git
>> ffs git://github.com/xapi-project/ffs.git
>> libvhd git://github.com/xapi-project/libvhd.git
>> nbd git://github.com/xapi-project/nbd.git
>> netdev git://github.com/xapi-project/netdev.git
>> ocaml-fd-send-recv git://github.com/xapi-project/ocaml-fd-send-recv.git
>> ocaml-opasswd git://github.com/xapi-project/ocaml-opasswd.git
>> ocaml-sha git://github.com/xapi-project/ocaml-sha.git
>> ocaml-tar git://github.com/xapi-project/ocaml-tar.git
>> ocaml-vhd git://github.com/xapi-project/ocaml-vhd.git
>> ocaml-xenstore-clients git://github.com/xapi-project/ocaml-xenstore-clie=
nts.git
>> ocamltest git://github.com/xapi-project/ocamltest.git
>> oclock git://github.com/xapi-project/oclock.git
>> opam git://github.com/xapi-project/opam.git
>> opam-repository git://github.com/xapi-project/opam-repository.git
>> python-github2 git://github.com/xapi-project/python-github2.git
>> tapctl git://github.com/xapi-project/tapctl.git
>> vhd-tool git://github.com/xapi-project/vhd-tool.git
>> vncterm git://github.com/xapi-project/vncterm.git
>> wsproxy git://github.com/xapi-project/wsproxy.git
>> xcp-eliloader git://github.com/xapi-project/xcp-eliloader.git
>> xcp-guest-templates git://github.com/xapi-project/xcp-guest-templates.git
>> xcp-idl git://github.com/xapi-project/xcp-idl.git
>> xcp-storage-managers git://github.com/xapi-project/xcp-storage-managers.=
git
>> xen-api-backports git://github.com/xapi-project/xen-api-backports.git
>> xen-api-client git://github.com/xapi-project/xen-api-client.git
>> xen-api-libs-specs git://github.com/xapi-project/xen-api-libs-specs.git
>> xen-api-libs-transitional git://github.com/xapi-project/xen-api-libs-tra=
nsitional.git
>> xs-pull-request-build-scripts git://github.com/xapi-project/xs-pull-requ=
est-build-scripts.git
>> =

>> =3D Detected forks in Mirage OS =3D
>> xen git://github.com/mirage/xen.git
>> mirari git://github.com/mirage/mirari.git
>> ocaml-cohttp git://github.com/mirage/ocaml-cohttp.git
>> ocaml-crypto-keys git://github.com/mirage/ocaml-crypto-keys.git
>> ocaml-cstruct git://github.com/mirage/ocaml-cstruct.git
>> ocaml-dns git://github.com/mirage/ocaml-dns.git
>> ocaml-openflow git://github.com/mirage/ocaml-openflow.git
>> ocaml-re git://github.com/mirage/ocaml-re.git
>> ocaml-tuntap git://github.com/mirage/ocaml-tuntap.git
>> ocaml-uri git://github.com/mirage/ocaml-uri.git
>> ocaml-xenstore git://github.com/mirage/ocaml-xenstore.git
>> opam-repository git://github.com/mirage/opam-repository.git
>> =

>> =

>> =

>> =

>> -------- Original Message --------
>> Subject:	Removing forks from the analysis
>> Date:	Thu, 27 Mar 2014 14:36:06 +0100
>> From:	Santiago Due=F1as <sduenas@bitergia.com>
>> To:	Lars Kurth <lars.kurth@xen.org>
>> CC:	citrix@lists.bitergia.com
>> =

>> Hi again Lars,
>> =

>> during our analysis, we found that some of your git repos are forks from
>> upstream repositories. I don not know whether you talk to Manrique or
>> Jesus about that but I prefer to remember you which possibilities we
>> offer and which one we have follow.
>> =

>> The repositories that we have already analyzed are listed on the
>> scm-repos page:
>> =

>> =

>> http://bitergia.com/projects/citrix-xen-dashboard/browser/scm-repos.html
>> =

>> =

>> We offer three possibilities for treating these cases:
>> =

>> - Do not analyze forks. This is the default option. We have removed from
>> the analysis those repositories marked as forks in Github and others
>> from upstream such as "ocaml" and "opam" series (see the attached file
>> that includes the full list of forks).
>> =

>> Probably, you will want to remove more. If this is your choice, please
>> have a look at the repositories page and send me an email with the list
>> of git repositories you want to remove from the analysis.
>> =

>> - Analyze forks. Take into account that this can affect the whole
>> numbers and stats, particularly if your team is not really active in
>> these repos.
>> =

>> - Analyze differences between upstream and local repositories. Due this
>> functionality is out of the basic dashboard, please talk to Manrique or
>> Jesus to get more details, if interested.
>> =

>> Santi
>> -- =

>> Santiago Due=F1as
>> =

>> sduenas@bitergia.com
>> =

>> Bitergia S.L.L
>> =

>> =

>> =

>> =

>> =

>> <xen_forks.txt>_______________________________________________
>> Xen-api mailing list
>> Xen-api@lists.xen.org
>> http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api
> =

> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

From xen-api-bounces@lists.xen.org Sat Dec 13 13:57:57 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 13 Dec 2014 13:57:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1XznCX-0003g8-M9; Sat, 13 Dec 2014 13:57:41 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <anil@recoil.org>) id 1XznCW-0003fu-5t
	for xen-api@lists.xen.org; Sat, 13 Dec 2014 13:57:40 +0000
Received: from [193.109.254.147] by server-13.bemta-14.messagelabs.com id
	7D/C3-02699-3D54C845; Sat, 13 Dec 2014 13:57:39 +0000
X-Env-Sender: anil@recoil.org
X-Msg-Ref: server-13.tower-27.messagelabs.com!1418479055!14871429!1
X-Originating-IP: [5.153.225.51]
X-SpamReason: No, hits=0.2 required=7.0 tests=RCVD_ILLEGAL_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5519 invoked from network); 13 Dec 2014 13:57:35 -0000
Received: from bark.recoil.org (HELO bark.recoil.org) (5.153.225.51)
	by server-13.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
	SMTP; 13 Dec 2014 13:57:35 -0000
Received: from [10.12.2.241] (no-dns-yet.convergencegroup.co.uk
	[37.205.61.202]); 
	by bark.recoil.org (OpenSMTPD) with ESMTPSA id afd8c733;
	TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; 
	Sat, 13 Dec 2014 14:03:16 +0000 (GMT)
Mime-Version: 1.0 (Mac OS X Mail 8.1 \(1993\))
From: Anil Madhavapeddy <anil@recoil.org>
In-Reply-To: <3A5650C9-9F0F-47F1-9204-4A90D1A04F9D@recoil.org>
Date: Sat, 13 Dec 2014 13:57:37 +0000
Message-Id: <AF9C4C28-9B0E-4E79-9B8D-5B23AEAC3FEE@recoil.org>
References: <1395927366.3749.13.camel@Guybrush> <533450C5.5070005@xen.org>
	<3A5650C9-9F0F-47F1-9204-4A90D1A04F9D@recoil.org>
To: lars.kurth@xen.org
X-Mailer: Apple Mail (2.1993)
Cc: "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>,
	"xen-api@lists.xen.org" <xen-api@lists.xen.org>
Subject: Re: [Xen-API] [MirageOS-devel] Issues and questions related to
	contribution metrics dashboard for XAPI and Mirage OS
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Type: text/plain; charset="windows-1252"
Content-Transfer-Encoding: quoted-printable
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

Hi Lars,

Better late than never, but here is the current list of Mirage repositories=
 (relative to GitHub).

https://raw.githubusercontent.com/mirage/mirage-www/master/TROVE

Replicated below as full URLs:

https://github.com/avsm/ezxmlm
https://github.com/avsm/ocaml-github
https://github.com/djs55/ocaml-xenstore-clients
https://github.com/mirage/cowabloga
https://github.com/mirage/dyntype
https://github.com/mirage/ezjsonm
https://github.com/mirage/io-page
https://github.com/mirage/irmin
https://github.com/mirage/merge-queues
https://github.com/mirage/merge-ropes
https://github.com/mirage/mirage
https://github.com/mirage/mirage-block-unix
https://github.com/mirage/mirage-block-volume
https://github.com/mirage/mirage-block-xen
https://github.com/mirage/mirage-clock
https://github.com/mirage/mirage-console
https://github.com/mirage/mirage-decks
https://github.com/mirage/mirage-entropy
https://github.com/mirage/mirage-fs-unix
https://github.com/mirage/mirage-http
https://github.com/mirage/mirage-net-macosx
https://github.com/mirage/mirage-net-unix
https://github.com/mirage/mirage-net-xen
https://github.com/mirage/mirage-platform
https://github.com/mirage/mirage-profile
https://github.com/mirage/mirage-skeleton
https://github.com/mirage/mirage-tc
https://github.com/mirage/mirage-tcpip
https://github.com/mirage/mirage-vagrant-vms
https://github.com/mirage/mirage-www
https://github.com/mirage/mirage-xen-minios
https://github.com/mirage/ocaml-cohttp
https://github.com/mirage/ocaml-conduit
https://github.com/mirage/ocaml-cow
https://github.com/mirage/ocaml-crunch
https://github.com/mirage/ocaml-cstruct
https://github.com/mirage/ocaml-dns
https://github.com/mirage/ocaml-fat
https://github.com/mirage/ocaml-git
https://github.com/mirage/ocaml-hex
https://github.com/mirage/ocaml-ipaddr
https://github.com/mirage/ocaml-lazy-trie
https://github.com/mirage/ocaml-mstruct
https://github.com/mirage/ocaml-mbr
https://github.com/mirage/ocaml-pcap
https://github.com/mirage/ocaml-tuntap
https://github.com/mirage/ocaml-tar
https://github.com/mirage/ocaml-uri
https://github.com/mirage/ocaml-vchan
https://github.com/mirage/ocaml-vmnet
https://github.com/mirage/ocaml-xenstore
https://github.com/mirage/shared-memory-ring
https://github.com/mirage/xen-disk
https://github.com/mirleft/ocaml-tls
https://github.com/mirleft/ocaml-x509
https://github.com/mirleft/ocaml-nocrypto
https://github.com/mirleft/ocaml-asn1-combinators
https://github.com/ocamllabs/ocaml-ctypes
https://github.com/samoht/alcotest
https://github.com/talex5/mirage-trace-viewer

The consolidated changelog is present at:
http://openmirage.org/releases

-anil

> On 27 Mar 2014, at 16:28, Anil Madhavapeddy <anil@recoil.org> wrote:
> =

> Dave and I are currently going through our repository list to normalize t=
his for Mirage.
> =

> https://github.com/mirage/mirage/issues/236
> =

> We'll update you shortly when the "trove" is completed.  That will have a=
n authoritative list of libraries, as well as spotting any licensing incons=
istencies or incorrect fork orders.
> =

> cheers,
> Anil
> =

> On 27 Mar 2014, at 16:24, Lars Kurth <lars.kurth@xen.org> wrote:
> =

>> Hi all,
>> =

>> a while ago I kicked a conversation related to putting a dashboard for t=
he Xen project sub projects together. As it turns out there is an issue in =
 XAPI and MirageOS repositories on github. Some of them are forks of upstre=
ams, which are hard for the tool to analyze. My proposal would be to *not a=
nalyse them* and include them into statistics. If I don't hear any screams,=
 then this will be the default. The list of forks detected are listed below=
 ...
>> =

>> Also, it would be good to let me know of any other repos that you dont w=
ant to analyse. The full list is at http://bitergia.com/projects/citrix-xen=
-dashboard/browser/scm-repos.html (note that there is 79 pages of them) whi=
ch should be aggregated into buckets for XAPI and opam
>> =

>> Regards
>> Lars
>> =

>> =3D Detected forks in XAPI Project =3D
>> xen-unstable-mirror git://github.com/xapi-project/xen-unstable-mirror.git
>> PRDup git://github.com/xapi-project/PRDup.git
>> blktap-dkms git://github.com/xapi-project/blktap-dkms.git
>> cdrom git://github.com/xapi-project/cdrom.git
>> ffs git://github.com/xapi-project/ffs.git
>> libvhd git://github.com/xapi-project/libvhd.git
>> nbd git://github.com/xapi-project/nbd.git
>> netdev git://github.com/xapi-project/netdev.git
>> ocaml-fd-send-recv git://github.com/xapi-project/ocaml-fd-send-recv.git
>> ocaml-opasswd git://github.com/xapi-project/ocaml-opasswd.git
>> ocaml-sha git://github.com/xapi-project/ocaml-sha.git
>> ocaml-tar git://github.com/xapi-project/ocaml-tar.git
>> ocaml-vhd git://github.com/xapi-project/ocaml-vhd.git
>> ocaml-xenstore-clients git://github.com/xapi-project/ocaml-xenstore-clie=
nts.git
>> ocamltest git://github.com/xapi-project/ocamltest.git
>> oclock git://github.com/xapi-project/oclock.git
>> opam git://github.com/xapi-project/opam.git
>> opam-repository git://github.com/xapi-project/opam-repository.git
>> python-github2 git://github.com/xapi-project/python-github2.git
>> tapctl git://github.com/xapi-project/tapctl.git
>> vhd-tool git://github.com/xapi-project/vhd-tool.git
>> vncterm git://github.com/xapi-project/vncterm.git
>> wsproxy git://github.com/xapi-project/wsproxy.git
>> xcp-eliloader git://github.com/xapi-project/xcp-eliloader.git
>> xcp-guest-templates git://github.com/xapi-project/xcp-guest-templates.git
>> xcp-idl git://github.com/xapi-project/xcp-idl.git
>> xcp-storage-managers git://github.com/xapi-project/xcp-storage-managers.=
git
>> xen-api-backports git://github.com/xapi-project/xen-api-backports.git
>> xen-api-client git://github.com/xapi-project/xen-api-client.git
>> xen-api-libs-specs git://github.com/xapi-project/xen-api-libs-specs.git
>> xen-api-libs-transitional git://github.com/xapi-project/xen-api-libs-tra=
nsitional.git
>> xs-pull-request-build-scripts git://github.com/xapi-project/xs-pull-requ=
est-build-scripts.git
>> =

>> =3D Detected forks in Mirage OS =3D
>> xen git://github.com/mirage/xen.git
>> mirari git://github.com/mirage/mirari.git
>> ocaml-cohttp git://github.com/mirage/ocaml-cohttp.git
>> ocaml-crypto-keys git://github.com/mirage/ocaml-crypto-keys.git
>> ocaml-cstruct git://github.com/mirage/ocaml-cstruct.git
>> ocaml-dns git://github.com/mirage/ocaml-dns.git
>> ocaml-openflow git://github.com/mirage/ocaml-openflow.git
>> ocaml-re git://github.com/mirage/ocaml-re.git
>> ocaml-tuntap git://github.com/mirage/ocaml-tuntap.git
>> ocaml-uri git://github.com/mirage/ocaml-uri.git
>> ocaml-xenstore git://github.com/mirage/ocaml-xenstore.git
>> opam-repository git://github.com/mirage/opam-repository.git
>> =

>> =

>> =

>> =

>> -------- Original Message --------
>> Subject:	Removing forks from the analysis
>> Date:	Thu, 27 Mar 2014 14:36:06 +0100
>> From:	Santiago Due=F1as <sduenas@bitergia.com>
>> To:	Lars Kurth <lars.kurth@xen.org>
>> CC:	citrix@lists.bitergia.com
>> =

>> Hi again Lars,
>> =

>> during our analysis, we found that some of your git repos are forks from
>> upstream repositories. I don not know whether you talk to Manrique or
>> Jesus about that but I prefer to remember you which possibilities we
>> offer and which one we have follow.
>> =

>> The repositories that we have already analyzed are listed on the
>> scm-repos page:
>> =

>> =

>> http://bitergia.com/projects/citrix-xen-dashboard/browser/scm-repos.html
>> =

>> =

>> We offer three possibilities for treating these cases:
>> =

>> - Do not analyze forks. This is the default option. We have removed from
>> the analysis those repositories marked as forks in Github and others
>> from upstream such as "ocaml" and "opam" series (see the attached file
>> that includes the full list of forks).
>> =

>> Probably, you will want to remove more. If this is your choice, please
>> have a look at the repositories page and send me an email with the list
>> of git repositories you want to remove from the analysis.
>> =

>> - Analyze forks. Take into account that this can affect the whole
>> numbers and stats, particularly if your team is not really active in
>> these repos.
>> =

>> - Analyze differences between upstream and local repositories. Due this
>> functionality is out of the basic dashboard, please talk to Manrique or
>> Jesus to get more details, if interested.
>> =

>> Santi
>> -- =

>> Santiago Due=F1as
>> =

>> sduenas@bitergia.com
>> =

>> Bitergia S.L.L
>> =

>> =

>> =

>> =

>> =

>> <xen_forks.txt>_______________________________________________
>> Xen-api mailing list
>> Xen-api@lists.xen.org
>> http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api
> =

> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@lists.xenproject.org
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

From xen-api-bounces@lists.xen.org Mon Dec 15 03:56:19 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2014 03:56:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Y0MlS-0002dS-TL; Mon, 15 Dec 2014 03:56:06 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <russell.pavlicek.xen@gmail.com>)
	id 1Y0MlR-0002d7-IS; Mon, 15 Dec 2014 03:56:05 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	DF/76-15461-4DB5E845; Mon, 15 Dec 2014 03:56:04 +0000
X-Env-Sender: russell.pavlicek.xen@gmail.com
X-Msg-Ref: server-3.tower-21.messagelabs.com!1418615763!15204616!1
X-Originating-IP: [209.85.215.41]
X-SpamReason: No, hits=2.5 required=7.0 tests=RCVD_BY_IP,
  SUSPICIOUS_RECIPS
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 32592 invoked from network); 15 Dec 2014 03:56:03 -0000
Received: from mail-la0-f41.google.com (HELO mail-la0-f41.google.com)
	(209.85.215.41)
	by server-3.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	15 Dec 2014 03:56:03 -0000
Received: by mail-la0-f41.google.com with SMTP id hv19so8818982lab.28
	for <multiple recipients>; Sun, 14 Dec 2014 19:56:03 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:sender:in-reply-to:references:date:message-id:subject
	:from:to:cc:content-type;
	bh=zU5ONomH9f2+bGyxrvK3wQvBVh5+CTNuxsoFrg6cTFw=;
	b=byn2sSnXSXTnIM0BhwuN/LQFqmtZoZqxtq18b6sXSsy6OgUgPH6ntwR39I36RGa9ON
	oyTXEyJ7k+kJqLICDAPSj9/HdsQ5raVgRRWUN7I+crR6x5ZbcJ+Ngl6xwC9gDEM2u9kg
	RqfzuFngUbEapupi+0x7zEAHhxlEIwRAsJgRTY5hYcJFlj8WJAwP1y0T7NJzy5thiX81
	/gkGb+Wyzy/LOAvNP7aCK575Q9lUT1WUFYajxWfWDXGHNjDbFNiZAQe/ij0yx1RJcVq2
	W5URJoCC3P47lguo3RBbeQ78B+NPrAslqQ7GrPZNHmlXisbTZPhKx31qGHtRUMQM3PBH
	TJUw==
MIME-Version: 1.0
X-Received: by 10.152.22.199 with SMTP id g7mr28280771laf.23.1418615763113;
	Sun, 14 Dec 2014 19:56:03 -0800 (PST)
Received: by 10.112.0.104 with HTTP; Sun, 14 Dec 2014 19:56:03 -0800 (PST)
In-Reply-To: <CAHehzX00Hg7CRLQt1Edmf2E6AW-ndZ54Tcofqcr2ovsyw1MYZQ@mail.gmail.com>
References: <CAHehzX00Hg7CRLQt1Edmf2E6AW-ndZ54Tcofqcr2ovsyw1MYZQ@mail.gmail.com>
Date: Sun, 14 Dec 2014 22:56:03 -0500
X-Google-Sender-Auth: MKNeBMXQW11hrsybPbY5vDfwTEo
Message-ID: <CAHehzX2E33iRk44xUuqZaSqhVHdpDZd4BQ4pD5eMobrFJGCrKw@mail.gmail.com>
From: Russ Pavlicek <russell.pavlicek@xenproject.org>
To: Russ Pavlicek <russell.pavlicek@xenproject.org>
Cc: "xen-users@lists.xen.org" <xen-users@lists.xen.org>, xen-api@lists.xen.org,
	xs-devel@lists.xenserver.org,
	mirageos-devel@lists.xenproject.org, xen-devel@lists.xen.org
Subject: Re: [Xen-API] Monday is the Last Xen Project Document Day of 2014
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

Reminder: Today is Document Day!

Give someone a present and document a new capability, or improve an
older page so it is up to date.

More information is below.  See you in #xendocs on IRC.

On Thu, Dec 11, 2014 at 2:46 PM, Russ Pavlicek
<russell.pavlicek@xenproject.org> wrote:
> Monday, December 15, will be our last Document Day of the year.
>
> Given the 4.5 RC4 Testing scheduled for Wednesday of next week and the holidays
> which occur later in the month, we have scheduled Document Day for Monday.
>
> This is a great time to get our documentation ready for the new
> release.  Have you
> added a new feature in this release?  Make sure it is in the Wiki.
> Have you noticed
> pages which might be confusing for a new installation?  Now is a great
> time to clean
> it up.  Have you information on better integrating Xen Project with
> other projects?
> Share that information with others.
>
> All the information you need to participate in Document Day is here:
>
> http://wiki.xenproject.org/wiki/Xen_Document_Days
>
> If you get a few moments before Monday, please take a look at the
> current TODO list to see other items which need attention:
>
> http://wiki.xenproject.org/wiki/Xen_Document_Days/TODO
>
> Please think about how you can help out.  If you haven't requested
> to be made a Wiki editor, save time and do it now so you are ready to
> go on Document Day.  Just fill out the form below:
>
> http://xenproject.org/component/content/article/100-misc/145-request-to-be-made-a-wiki-editor.html
>
> We hope to see you Monday in #xendocs!

_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

From xen-api-bounces@lists.xen.org Mon Dec 15 03:56:19 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2014 03:56:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Y0MlS-0002dS-TL; Mon, 15 Dec 2014 03:56:06 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <russell.pavlicek.xen@gmail.com>)
	id 1Y0MlR-0002d7-IS; Mon, 15 Dec 2014 03:56:05 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	DF/76-15461-4DB5E845; Mon, 15 Dec 2014 03:56:04 +0000
X-Env-Sender: russell.pavlicek.xen@gmail.com
X-Msg-Ref: server-3.tower-21.messagelabs.com!1418615763!15204616!1
X-Originating-IP: [209.85.215.41]
X-SpamReason: No, hits=2.5 required=7.0 tests=RCVD_BY_IP,
  SUSPICIOUS_RECIPS
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 32592 invoked from network); 15 Dec 2014 03:56:03 -0000
Received: from mail-la0-f41.google.com (HELO mail-la0-f41.google.com)
	(209.85.215.41)
	by server-3.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	15 Dec 2014 03:56:03 -0000
Received: by mail-la0-f41.google.com with SMTP id hv19so8818982lab.28
	for <multiple recipients>; Sun, 14 Dec 2014 19:56:03 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:sender:in-reply-to:references:date:message-id:subject
	:from:to:cc:content-type;
	bh=zU5ONomH9f2+bGyxrvK3wQvBVh5+CTNuxsoFrg6cTFw=;
	b=byn2sSnXSXTnIM0BhwuN/LQFqmtZoZqxtq18b6sXSsy6OgUgPH6ntwR39I36RGa9ON
	oyTXEyJ7k+kJqLICDAPSj9/HdsQ5raVgRRWUN7I+crR6x5ZbcJ+Ngl6xwC9gDEM2u9kg
	RqfzuFngUbEapupi+0x7zEAHhxlEIwRAsJgRTY5hYcJFlj8WJAwP1y0T7NJzy5thiX81
	/gkGb+Wyzy/LOAvNP7aCK575Q9lUT1WUFYajxWfWDXGHNjDbFNiZAQe/ij0yx1RJcVq2
	W5URJoCC3P47lguo3RBbeQ78B+NPrAslqQ7GrPZNHmlXisbTZPhKx31qGHtRUMQM3PBH
	TJUw==
MIME-Version: 1.0
X-Received: by 10.152.22.199 with SMTP id g7mr28280771laf.23.1418615763113;
	Sun, 14 Dec 2014 19:56:03 -0800 (PST)
Received: by 10.112.0.104 with HTTP; Sun, 14 Dec 2014 19:56:03 -0800 (PST)
In-Reply-To: <CAHehzX00Hg7CRLQt1Edmf2E6AW-ndZ54Tcofqcr2ovsyw1MYZQ@mail.gmail.com>
References: <CAHehzX00Hg7CRLQt1Edmf2E6AW-ndZ54Tcofqcr2ovsyw1MYZQ@mail.gmail.com>
Date: Sun, 14 Dec 2014 22:56:03 -0500
X-Google-Sender-Auth: MKNeBMXQW11hrsybPbY5vDfwTEo
Message-ID: <CAHehzX2E33iRk44xUuqZaSqhVHdpDZd4BQ4pD5eMobrFJGCrKw@mail.gmail.com>
From: Russ Pavlicek <russell.pavlicek@xenproject.org>
To: Russ Pavlicek <russell.pavlicek@xenproject.org>
Cc: "xen-users@lists.xen.org" <xen-users@lists.xen.org>, xen-api@lists.xen.org,
	xs-devel@lists.xenserver.org,
	mirageos-devel@lists.xenproject.org, xen-devel@lists.xen.org
Subject: Re: [Xen-API] Monday is the Last Xen Project Document Day of 2014
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

Reminder: Today is Document Day!

Give someone a present and document a new capability, or improve an
older page so it is up to date.

More information is below.  See you in #xendocs on IRC.

On Thu, Dec 11, 2014 at 2:46 PM, Russ Pavlicek
<russell.pavlicek@xenproject.org> wrote:
> Monday, December 15, will be our last Document Day of the year.
>
> Given the 4.5 RC4 Testing scheduled for Wednesday of next week and the holidays
> which occur later in the month, we have scheduled Document Day for Monday.
>
> This is a great time to get our documentation ready for the new
> release.  Have you
> added a new feature in this release?  Make sure it is in the Wiki.
> Have you noticed
> pages which might be confusing for a new installation?  Now is a great
> time to clean
> it up.  Have you information on better integrating Xen Project with
> other projects?
> Share that information with others.
>
> All the information you need to participate in Document Day is here:
>
> http://wiki.xenproject.org/wiki/Xen_Document_Days
>
> If you get a few moments before Monday, please take a look at the
> current TODO list to see other items which need attention:
>
> http://wiki.xenproject.org/wiki/Xen_Document_Days/TODO
>
> Please think about how you can help out.  If you haven't requested
> to be made a Wiki editor, save time and do it now so you are ready to
> go on Document Day.  Just fill out the form below:
>
> http://xenproject.org/component/content/article/100-misc/145-request-to-be-made-a-wiki-editor.html
>
> We hope to see you Monday in #xendocs!

_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

From xen-api-bounces@lists.xen.org Mon Dec 15 19:33:49 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2014 19:33:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Y0bOj-00010d-Js; Mon, 15 Dec 2014 19:33:37 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <russell.pavlicek.xen@gmail.com>)
	id 1Y0bOh-000102-UE; Mon, 15 Dec 2014 19:33:36 +0000
Received: from [85.158.139.211] by server-17.bemta-5.messagelabs.com id
	11/AA-28865-F873F845; Mon, 15 Dec 2014 19:33:35 +0000
X-Env-Sender: russell.pavlicek.xen@gmail.com
X-Msg-Ref: server-8.tower-206.messagelabs.com!1418672014!13452195!1
X-Originating-IP: [209.85.215.44]
X-SpamReason: No, hits=2.5 required=7.0 tests=RCVD_BY_IP,
  SUSPICIOUS_RECIPS
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 26279 invoked from network); 15 Dec 2014 19:33:34 -0000
Received: from mail-la0-f44.google.com (HELO mail-la0-f44.google.com)
	(209.85.215.44)
	by server-8.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	15 Dec 2014 19:33:34 -0000
Received: by mail-la0-f44.google.com with SMTP id gd6so10151006lab.17
	for <multiple recipients>; Mon, 15 Dec 2014 11:33:33 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:sender:date:message-id:subject:from:to:content-type;
	bh=7JCCyf6D6ODSy4vnOa90gWOm+uFIx/9shetJ8P46w/w=;
	b=0lPeIKL1KavE5vlhlt0ZK3siMWqX/67GZ8psLRisgiAHyEOjPthGVoQwtRJKht0HyI
	i3lmi75MXlnJ7j7x/ZI4IpVa+Gm53icpQib0WbAhjw5+CHh9kIQ4uT/n8X91UxvbHYZp
	Z6TbOPE53maVPP4fhIRDF+oBw3FShl0MKpJ86fJavhwh7a+gSzUGjP/LT9AVyXY39QHp
	k0f9Dqzpjtr1bNmuAXW0gEDKe6KIHyaa5LqJSYll4Bh/8JCH3OO0YdeiekJNSjmw+1dG
	VT1ukNLUvL/AJVYb0ZDxMfFSRQ+K4nAesRFCHadpVMj1ekQxX7CboxLzNV80nsqj+mb+
	z7CA==
MIME-Version: 1.0
X-Received: by 10.152.22.199 with SMTP id g7mr32128361laf.23.1418672013522;
	Mon, 15 Dec 2014 11:33:33 -0800 (PST)
Received: by 10.112.0.104 with HTTP; Mon, 15 Dec 2014 11:33:33 -0800 (PST)
Date: Mon, 15 Dec 2014 14:33:33 -0500
X-Google-Sender-Auth: yMPoFFj8CUUqcuCLhNWJRWHDkNI
Message-ID: <CAHehzX0pBPaWuUjZE-wMR+D=2_A06VJN7Nr=rrmxpYiVCQTNug@mail.gmail.com>
From: Russ Pavlicek <russell.pavlicek@xenproject.org>
To: xen-devel@lists.xen.org, 
	"xen-users@lists.xen.org" <xen-users@lists.xen.org>,
	xen-announce@lists.xenproject.org, 
	xs-devel@lists.xenserver.org, mirageos-devel@lists.xenproject.org, 
	xen-api@lists.xen.org
Subject: [Xen-API] Xen Project 4.5 RC4 is Ready Today; Test Day is Wednesday
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

Folks,

This Wednesday, December 17, is our fourth and FINAL Test Day
for the 4.5 release cycle (barring any changes which may result from
Wednesday's Test Day). Release Candidate 4 is available for
assessment today.

If you've held off testing the new release until it matures, delay no
longer!  Test and state your concerns now or the next release you
see could be the official one

Information about testing this release can be found here:
http://wiki.xenproject.org/wiki/Xen_4.5_RC4_test_instructions

To learn more about Test Days, including the scheduled date
for the final release, check out:
http://wiki.xenproject.org/wiki/Xen_Project_Test_Days

See you in #xentest on IRC this Wednesday for Test Day!

_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

From xen-api-bounces@lists.xen.org Mon Dec 15 19:33:49 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 15 Dec 2014 19:33:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Y0bOj-00010d-Js; Mon, 15 Dec 2014 19:33:37 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <russell.pavlicek.xen@gmail.com>)
	id 1Y0bOh-000102-UE; Mon, 15 Dec 2014 19:33:36 +0000
Received: from [85.158.139.211] by server-17.bemta-5.messagelabs.com id
	11/AA-28865-F873F845; Mon, 15 Dec 2014 19:33:35 +0000
X-Env-Sender: russell.pavlicek.xen@gmail.com
X-Msg-Ref: server-8.tower-206.messagelabs.com!1418672014!13452195!1
X-Originating-IP: [209.85.215.44]
X-SpamReason: No, hits=2.5 required=7.0 tests=RCVD_BY_IP,
  SUSPICIOUS_RECIPS
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 26279 invoked from network); 15 Dec 2014 19:33:34 -0000
Received: from mail-la0-f44.google.com (HELO mail-la0-f44.google.com)
	(209.85.215.44)
	by server-8.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	15 Dec 2014 19:33:34 -0000
Received: by mail-la0-f44.google.com with SMTP id gd6so10151006lab.17
	for <multiple recipients>; Mon, 15 Dec 2014 11:33:33 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:sender:date:message-id:subject:from:to:content-type;
	bh=7JCCyf6D6ODSy4vnOa90gWOm+uFIx/9shetJ8P46w/w=;
	b=0lPeIKL1KavE5vlhlt0ZK3siMWqX/67GZ8psLRisgiAHyEOjPthGVoQwtRJKht0HyI
	i3lmi75MXlnJ7j7x/ZI4IpVa+Gm53icpQib0WbAhjw5+CHh9kIQ4uT/n8X91UxvbHYZp
	Z6TbOPE53maVPP4fhIRDF+oBw3FShl0MKpJ86fJavhwh7a+gSzUGjP/LT9AVyXY39QHp
	k0f9Dqzpjtr1bNmuAXW0gEDKe6KIHyaa5LqJSYll4Bh/8JCH3OO0YdeiekJNSjmw+1dG
	VT1ukNLUvL/AJVYb0ZDxMfFSRQ+K4nAesRFCHadpVMj1ekQxX7CboxLzNV80nsqj+mb+
	z7CA==
MIME-Version: 1.0
X-Received: by 10.152.22.199 with SMTP id g7mr32128361laf.23.1418672013522;
	Mon, 15 Dec 2014 11:33:33 -0800 (PST)
Received: by 10.112.0.104 with HTTP; Mon, 15 Dec 2014 11:33:33 -0800 (PST)
Date: Mon, 15 Dec 2014 14:33:33 -0500
X-Google-Sender-Auth: yMPoFFj8CUUqcuCLhNWJRWHDkNI
Message-ID: <CAHehzX0pBPaWuUjZE-wMR+D=2_A06VJN7Nr=rrmxpYiVCQTNug@mail.gmail.com>
From: Russ Pavlicek <russell.pavlicek@xenproject.org>
To: xen-devel@lists.xen.org, 
	"xen-users@lists.xen.org" <xen-users@lists.xen.org>,
	xen-announce@lists.xenproject.org, 
	xs-devel@lists.xenserver.org, mirageos-devel@lists.xenproject.org, 
	xen-api@lists.xen.org
Subject: [Xen-API] Xen Project 4.5 RC4 is Ready Today; Test Day is Wednesday
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

Folks,

This Wednesday, December 17, is our fourth and FINAL Test Day
for the 4.5 release cycle (barring any changes which may result from
Wednesday's Test Day). Release Candidate 4 is available for
assessment today.

If you've held off testing the new release until it matures, delay no
longer!  Test and state your concerns now or the next release you
see could be the official one

Information about testing this release can be found here:
http://wiki.xenproject.org/wiki/Xen_4.5_RC4_test_instructions

To learn more about Test Days, including the scheduled date
for the final release, check out:
http://wiki.xenproject.org/wiki/Xen_Project_Test_Days

See you in #xentest on IRC this Wednesday for Test Day!

_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

From xen-api-bounces@lists.xen.org Tue Dec 23 09:35:17 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Dec 2014 09:35:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Y3Lrq-0005Te-E9; Tue, 23 Dec 2014 09:35:02 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <md.benson@gmail.com>) id 1Y3Lrp-0005TZ-0Z
	for xen-api@lists.xen.org; Tue, 23 Dec 2014 09:35:01 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	F8/DC-15461-44739945; Tue, 23 Dec 2014 09:35:00 +0000
X-Env-Sender: md.benson@gmail.com
X-Msg-Ref: server-8.tower-21.messagelabs.com!1419327299!17425123!1
X-Originating-IP: [209.85.215.47]
X-SpamReason: No, hits=0.1 required=7.0 tests=HTML_30_40,HTML_MESSAGE
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 26680 invoked from network); 23 Dec 2014 09:34:59 -0000
Received: from mail-la0-f47.google.com (HELO mail-la0-f47.google.com)
	(209.85.215.47)
	by server-8.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	23 Dec 2014 09:34:59 -0000
Received: by mail-la0-f47.google.com with SMTP id hz20so5080223lab.6
	for <xen-api@lists.xen.org>; Tue, 23 Dec 2014 01:34:59 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:references:from:date:message-id:subject:to:cc
	:content-type; bh=op5vmeSvPkLriB0H1U80CytyTSQWGexqx3QfFJ43jvk=;
	b=q3nOyotxTKTXQ45EngHt7jaNeBEX3M8pHarfntRtqnA80Ci0ai0ryjDSWsIi5iEG2w
	OmWEHITE4pKLovQ1qOTph781RiEQsqg+slFDKoWKBJldn6lV8ofzhXeGdnep15H3MeSL
	CvPhwxOp5Hi2ShozuhmRsIlB8b3hOJexFOfUkDaToAyNTJEs5Hw0FAAEWnxZC6DSS+Vr
	qx6cM8GrtMmkGD/GF5kWb6pSFlmVLXV/aekxXSgj0d5xLqGYnYnGY+AAMk1nlrDrHn18
	amR9iKzQ7udPNLWH6yyOC1KYYaTNH1uxjk38lFXPdvQDIGBIb70uTPlTk2DP+bcFsAa5
	sCPg==
X-Received: by 10.152.7.206 with SMTP id l14mr26376540laa.1.1419327298989;
	Tue, 23 Dec 2014 01:34:58 -0800 (PST)
MIME-Version: 1.0
References: <CAE3peV7exrfC+Lb5SDmcCupMK5HQuixSKM3XufPypV5Mw0s_xA@mail.gmail.com>
	<CACJ1ZNuxUTB+EwEeCNhzh8XfetyPKcRMDCDsVpB8=Hj_XZB0TQ@mail.gmail.com>
	<CAE3peV7coyP3y1XY6jUg=qdiznmkLqKtxzoVt___mRog1Qgbug@mail.gmail.com>
	<CACJ1ZNtZuSriat+XDyzroYMBac-qJO85Z2yUthyCRAdGoggG1A@mail.gmail.com>
From: Mark Benson <md.benson@gmail.com>
Date: Tue, 23 Dec 2014 09:34:58 +0000
Message-ID: <CAE3peV5zZPCW-4y9Jm3P_rmY0Aon-REj4Q45q5U1kgEEOodBiw@mail.gmail.com>
To: Olivier Lambert <lambert.olivier@gmail.com>
Cc: xen-api@lists.xen.org
Subject: Re: [Xen-API] Cleanly shutdown server
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============4619014852988431279=="
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

--===============4619014852988431279==
Content-Type: multipart/alternative; boundary=001a11c34b6479f43b050adee3df

--001a11c34b6479f43b050adee3df
Content-Type: text/plain; charset=UTF-8

Following up from this, if I use a 'halt -p' the system halts but does not
power down. It spews a lot of blktap errors to the dom0 local console
*after* it stops the dom0 daemons and prints "will now halt".

The upshot is the system isn't powering off and I suspect it's not pullung
down Xen cleanly either.

-- 

Mark

On Fri, 28 Nov 2014 16:52 Olivier Lambert <lambert.olivier@gmail.com> wrote:

> If you have SSH/console access to the Dom0 of XenServer itself, "halt"
> is enough, no need to use "xe" (if the host in alone, i.e not in a
> pool. In this case, I think using "xe" is better).
>
> On Fri, Nov 28, 2014 at 5:26 PM, Mark Benson <md.benson@gmail.com> wrote:
> >
> > On Fri, 28 Nov 2014 16:18 Olivier Lambert <lambert.olivier@gmail.com>
> wrote:
> >
> > If I'm right, you could do it by logging on the server (SSH or access
> > it directly), and type "halt". It should shutdown the VMs gracefully
> > then stop itself. You could also automate this stuff with a CRON job
> > in the XenServer, or also send the command with "xo-cli" ("xo-cli
> > host.stop id=<id of your host>") from any machine using Xen Orchestra.
> >
> >
> >
> > I use xapi (hence posting here), does that still hold true with xapi?
> >
> > I don't use XenOrchestra so xo-cli is not available. Is there an xe
> command
> > or set of commands to do it?
> >
> > --
> >
> > Mark Benson
>

--001a11c34b6479f43b050adee3df
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<p dir=3D"ltr">Following up from this, if I use a &#39;halt -p&#39; the sys=
tem halts but does not power down. It spews a lot of blktap errors to the d=
om0 local console *after* it stops the dom0 daemons and prints &quot;will n=
ow halt&quot;.</p>
<p dir=3D"ltr">The upshot is the system isn&#39;t powering off and I suspec=
t it&#39;s not pullung down Xen cleanly either.</p>
<p dir=3D"ltr">-- </p>
<p dir=3D"ltr">Mark</p>
<br><div class=3D"gmail_quote">On Fri, 28 Nov 2014 16:52=C2=A0Olivier Lambe=
rt &lt;<a href=3D"mailto:lambert.olivier@gmail.com">lambert.olivier@gmail.c=
om</a>&gt; wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 =
0 .8ex;border-left:1px #ccc solid;padding-left:1ex">If you have SSH/console=
 access to the Dom0 of XenServer itself, &quot;halt&quot;<br>
is enough, no need to use &quot;xe&quot; (if the host in alone, i.e not in =
a<br>
pool. In this case, I think using &quot;xe&quot; is better).<br>
<br>
On Fri, Nov 28, 2014 at 5:26 PM, Mark Benson &lt;<a href=3D"mailto:md.benso=
n@gmail.com" target=3D"_blank">md.benson@gmail.com</a>&gt; wrote:<br>
&gt;<br>
&gt; On Fri, 28 Nov 2014 16:18 Olivier Lambert &lt;<a href=3D"mailto:lamber=
t.olivier@gmail.com" target=3D"_blank">lambert.olivier@gmail.com</a>&gt; wr=
ote:<br>
&gt;<br>
&gt; If I&#39;m right, you could do it by logging on the server (SSH or acc=
ess<br>
&gt; it directly), and type &quot;halt&quot;. It should shutdown the VMs gr=
acefully<br>
&gt; then stop itself. You could also automate this stuff with a CRON job<b=
r>
&gt; in the XenServer, or also send the command with &quot;xo-cli&quot; (&q=
uot;xo-cli<br>
&gt; host.stop id=3D&lt;id of your host&gt;&quot;) from any machine using X=
en Orchestra.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; I use xapi (hence posting here), does that still hold true with xapi?<=
br>
&gt;<br>
&gt; I don&#39;t use XenOrchestra so xo-cli is not available. Is there an x=
e command<br>
&gt; or set of commands to do it?<br>
&gt;<br>
&gt; --<br>
&gt;<br>
&gt; Mark Benson<br>
</blockquote></div>

--001a11c34b6479f43b050adee3df--


--===============4619014852988431279==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

--===============4619014852988431279==--


From xen-api-bounces@lists.xen.org Tue Dec 23 09:35:17 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 23 Dec 2014 09:35:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Y3Lrq-0005Te-E9; Tue, 23 Dec 2014 09:35:02 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <md.benson@gmail.com>) id 1Y3Lrp-0005TZ-0Z
	for xen-api@lists.xen.org; Tue, 23 Dec 2014 09:35:01 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	F8/DC-15461-44739945; Tue, 23 Dec 2014 09:35:00 +0000
X-Env-Sender: md.benson@gmail.com
X-Msg-Ref: server-8.tower-21.messagelabs.com!1419327299!17425123!1
X-Originating-IP: [209.85.215.47]
X-SpamReason: No, hits=0.1 required=7.0 tests=HTML_30_40,HTML_MESSAGE
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 26680 invoked from network); 23 Dec 2014 09:34:59 -0000
Received: from mail-la0-f47.google.com (HELO mail-la0-f47.google.com)
	(209.85.215.47)
	by server-8.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	23 Dec 2014 09:34:59 -0000
Received: by mail-la0-f47.google.com with SMTP id hz20so5080223lab.6
	for <xen-api@lists.xen.org>; Tue, 23 Dec 2014 01:34:59 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:references:from:date:message-id:subject:to:cc
	:content-type; bh=op5vmeSvPkLriB0H1U80CytyTSQWGexqx3QfFJ43jvk=;
	b=q3nOyotxTKTXQ45EngHt7jaNeBEX3M8pHarfntRtqnA80Ci0ai0ryjDSWsIi5iEG2w
	OmWEHITE4pKLovQ1qOTph781RiEQsqg+slFDKoWKBJldn6lV8ofzhXeGdnep15H3MeSL
	CvPhwxOp5Hi2ShozuhmRsIlB8b3hOJexFOfUkDaToAyNTJEs5Hw0FAAEWnxZC6DSS+Vr
	qx6cM8GrtMmkGD/GF5kWb6pSFlmVLXV/aekxXSgj0d5xLqGYnYnGY+AAMk1nlrDrHn18
	amR9iKzQ7udPNLWH6yyOC1KYYaTNH1uxjk38lFXPdvQDIGBIb70uTPlTk2DP+bcFsAa5
	sCPg==
X-Received: by 10.152.7.206 with SMTP id l14mr26376540laa.1.1419327298989;
	Tue, 23 Dec 2014 01:34:58 -0800 (PST)
MIME-Version: 1.0
References: <CAE3peV7exrfC+Lb5SDmcCupMK5HQuixSKM3XufPypV5Mw0s_xA@mail.gmail.com>
	<CACJ1ZNuxUTB+EwEeCNhzh8XfetyPKcRMDCDsVpB8=Hj_XZB0TQ@mail.gmail.com>
	<CAE3peV7coyP3y1XY6jUg=qdiznmkLqKtxzoVt___mRog1Qgbug@mail.gmail.com>
	<CACJ1ZNtZuSriat+XDyzroYMBac-qJO85Z2yUthyCRAdGoggG1A@mail.gmail.com>
From: Mark Benson <md.benson@gmail.com>
Date: Tue, 23 Dec 2014 09:34:58 +0000
Message-ID: <CAE3peV5zZPCW-4y9Jm3P_rmY0Aon-REj4Q45q5U1kgEEOodBiw@mail.gmail.com>
To: Olivier Lambert <lambert.olivier@gmail.com>
Cc: xen-api@lists.xen.org
Subject: Re: [Xen-API] Cleanly shutdown server
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============4619014852988431279=="
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

--===============4619014852988431279==
Content-Type: multipart/alternative; boundary=001a11c34b6479f43b050adee3df

--001a11c34b6479f43b050adee3df
Content-Type: text/plain; charset=UTF-8

Following up from this, if I use a 'halt -p' the system halts but does not
power down. It spews a lot of blktap errors to the dom0 local console
*after* it stops the dom0 daemons and prints "will now halt".

The upshot is the system isn't powering off and I suspect it's not pullung
down Xen cleanly either.

-- 

Mark

On Fri, 28 Nov 2014 16:52 Olivier Lambert <lambert.olivier@gmail.com> wrote:

> If you have SSH/console access to the Dom0 of XenServer itself, "halt"
> is enough, no need to use "xe" (if the host in alone, i.e not in a
> pool. In this case, I think using "xe" is better).
>
> On Fri, Nov 28, 2014 at 5:26 PM, Mark Benson <md.benson@gmail.com> wrote:
> >
> > On Fri, 28 Nov 2014 16:18 Olivier Lambert <lambert.olivier@gmail.com>
> wrote:
> >
> > If I'm right, you could do it by logging on the server (SSH or access
> > it directly), and type "halt". It should shutdown the VMs gracefully
> > then stop itself. You could also automate this stuff with a CRON job
> > in the XenServer, or also send the command with "xo-cli" ("xo-cli
> > host.stop id=<id of your host>") from any machine using Xen Orchestra.
> >
> >
> >
> > I use xapi (hence posting here), does that still hold true with xapi?
> >
> > I don't use XenOrchestra so xo-cli is not available. Is there an xe
> command
> > or set of commands to do it?
> >
> > --
> >
> > Mark Benson
>

--001a11c34b6479f43b050adee3df
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<p dir=3D"ltr">Following up from this, if I use a &#39;halt -p&#39; the sys=
tem halts but does not power down. It spews a lot of blktap errors to the d=
om0 local console *after* it stops the dom0 daemons and prints &quot;will n=
ow halt&quot;.</p>
<p dir=3D"ltr">The upshot is the system isn&#39;t powering off and I suspec=
t it&#39;s not pullung down Xen cleanly either.</p>
<p dir=3D"ltr">-- </p>
<p dir=3D"ltr">Mark</p>
<br><div class=3D"gmail_quote">On Fri, 28 Nov 2014 16:52=C2=A0Olivier Lambe=
rt &lt;<a href=3D"mailto:lambert.olivier@gmail.com">lambert.olivier@gmail.c=
om</a>&gt; wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 =
0 .8ex;border-left:1px #ccc solid;padding-left:1ex">If you have SSH/console=
 access to the Dom0 of XenServer itself, &quot;halt&quot;<br>
is enough, no need to use &quot;xe&quot; (if the host in alone, i.e not in =
a<br>
pool. In this case, I think using &quot;xe&quot; is better).<br>
<br>
On Fri, Nov 28, 2014 at 5:26 PM, Mark Benson &lt;<a href=3D"mailto:md.benso=
n@gmail.com" target=3D"_blank">md.benson@gmail.com</a>&gt; wrote:<br>
&gt;<br>
&gt; On Fri, 28 Nov 2014 16:18 Olivier Lambert &lt;<a href=3D"mailto:lamber=
t.olivier@gmail.com" target=3D"_blank">lambert.olivier@gmail.com</a>&gt; wr=
ote:<br>
&gt;<br>
&gt; If I&#39;m right, you could do it by logging on the server (SSH or acc=
ess<br>
&gt; it directly), and type &quot;halt&quot;. It should shutdown the VMs gr=
acefully<br>
&gt; then stop itself. You could also automate this stuff with a CRON job<b=
r>
&gt; in the XenServer, or also send the command with &quot;xo-cli&quot; (&q=
uot;xo-cli<br>
&gt; host.stop id=3D&lt;id of your host&gt;&quot;) from any machine using X=
en Orchestra.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; I use xapi (hence posting here), does that still hold true with xapi?<=
br>
&gt;<br>
&gt; I don&#39;t use XenOrchestra so xo-cli is not available. Is there an x=
e command<br>
&gt; or set of commands to do it?<br>
&gt;<br>
&gt; --<br>
&gt;<br>
&gt; Mark Benson<br>
</blockquote></div>

--001a11c34b6479f43b050adee3df--


--===============4619014852988431279==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

--===============4619014852988431279==--


From xen-api-bounces@lists.xen.org Tue Dec 30 14:45:19 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2014 14:45:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Y5y2k-0000c5-8P; Tue, 30 Dec 2014 14:45:06 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <dkadds2@gmail.com>) id 1Y5y2i-0000c0-FS
	for xen-api@lists.xen.org; Tue, 30 Dec 2014 14:45:05 +0000
Received: from [85.158.139.211] by server-12.bemta-5.messagelabs.com id
	51/13-25714-F6AB2A45; Tue, 30 Dec 2014 14:45:03 +0000
X-Env-Sender: dkadds2@gmail.com
X-Msg-Ref: server-5.tower-206.messagelabs.com!1419950699!15641997!1
X-Originating-IP: [209.85.212.173]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19725 invoked from network); 30 Dec 2014 14:44:59 -0000
Received: from mail-wi0-f173.google.com (HELO mail-wi0-f173.google.com)
	(209.85.212.173)
	by server-5.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Dec 2014 14:44:59 -0000
Received: by mail-wi0-f173.google.com with SMTP id r20so24035196wiv.12
	for <xen-api@lists.xen.org>; Tue, 30 Dec 2014 06:44:59 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=message-id:date:from:user-agent:mime-version:to:subject
	:content-type:content-transfer-encoding;
	bh=geQkgLDG7X23gSIuli9y1BzLTdd5iRguckHDdj0b2d8=;
	b=mZ2dxuKpqAR0RfwoaxNaJ0GDgRIIWnjxb8OAGg7eYapqxrIms3I3RfQeSaDgvj5N+Z
	1mxXiflnzH/SK39k79yhKVOLASygKsbG1N3W6LuvXtBVJ1DGJFI1RS/BZGyHwO2doi3n
	2GdY3Jd2Hdj3MACE19ZV7JamVlS3UBOySqT/ihYXFotJ9tNb7TpjnD5SrJav5+3ZaJ0T
	3tLkbOxImPkfgwegCglysRMc4cUWr7kDpiiqdwbAtd4Gp7qmQhn414J9RnOh/jWfDN7O
	0Kcf0fh0BtOYWf0On82dXont0e/70MhiQp0dcmLzerun66KGs7AB4XOuBIy3TazJIX13
	4ItA==
X-Received: by 10.180.93.167 with SMTP id cv7mr108866155wib.12.1419950698873; 
	Tue, 30 Dec 2014 06:44:58 -0800 (PST)
Received: from BlackApple.local (awp120.neoplus.adsl.tpnet.pl. [83.27.75.120])
	by mx.google.com with ESMTPSA id
	be4sm43642895wib.16.2014.12.30.06.44.56 for <xen-api@lists.xen.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 30 Dec 2014 06:44:58 -0800 (PST)
Message-ID: <54A2BA68.2060105@gmail.com>
Date: Tue, 30 Dec 2014 15:44:56 +0100
From: David <dkadds2@gmail.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10;
	rv:31.0) Gecko/20100101 Thunderbird/31.3.0
MIME-Version: 1.0
To: xen-api@lists.xen.org
Subject: [Xen-API] NFS exported from ZFS on Ubuntu 14.04
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

Hi Guys,

I'm looking for your help as I'm facing issue with Xen and NFS Storage 
Repository.
The problem I'm facing is that vm-import fails due to blktap2 issue 
(seems like).
Last call is about vdi_activate failure (full dump below):

generic exception: vdi_activate: EXCEPTION <type 
'exceptions.AttributeError'>, 'CommandFailure' object has no attribute 
'status'

Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 1560, in _activate
Dec 30 06:51:38 g6xentest SM: [5266] 
self._get_pool_config(sr_uuid).get("mem-pool-size"))
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 1243, in _tap_activate
Dec 30 06:51:38 g6xentest SM: [5266]     tapdisk = 
Tapdisk.find_by_path(phy_path)


On backend side NFS is exported from ZFS (localhost) encrypted with 
dedup on if it would matter.
Xenserver is compiled from sources from buildroot.

I've tried to use FileSR but it failed miserably too.
To get to the stage where I am now I've had to fix some static paths 
within SR adapters.

Any help and hints is more than appreciated.

btw. why do I use ZFS exported via NFS? I need compression and 
deduplication. Host itself has plenty of resources and will be running 
couple of VMs with almost same configuration and won't be highly loaded. 
Therefore I'm not after performance but more concerned about storage space.
Any hints on how to put SR on ZFS on Linux (Ubuntu preferred) would be 
great.
I've tested so far FileSR, tried to expose ZFS block device and loopback 
but it didn't work.
Creating file on ZFS mounted via loopback to create vg/pv/lv seems like 
an overkill.

The last option which I've figured out would be to expose ZFS via iSCSI, 
but this seems to be an overkill too.
The easiest for me and fully acceptable would be to use VHD (VDI) files 
directly on ZFS but it didn't work neither.

Thanks,
Dawid


Dec 30 06:51:38 g6xentest SM: [5266] ['/usr/sbin/td-util', 'query', 
'vhd', '-vpf', 
'/var/run/sr-mount/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/cae30e9b-ebd4-4450-8ce0-9f4035ca62f1.vhd']
Dec 30 06:51:38 g6xentest SM: [5266]   pread SUCCESS
Dec 30 06:51:38 g6xentest SM: [5266] 
PhyLink(/dev/sm/phy/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/cae30e9b-ebd4-4450-8ce0-9f4035ca62f1) 
-> 
/var/run/sr-mount/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/cae30e9b-ebd4-4450-8ce0-9f4035ca62f1.vhd
Dec 30 06:51:38 g6xentest xapi: [ info|g6xentest|4363 UNIX 
/var/lib/xcp/xapi|session.login_with_password D:96522b0bba4b|xapi] 
Session.create trackid=b40ee0f70df6669d28d67cd077003734 pool=false 
uname=root originator= is_local_superuser=true auth_user_sid= 
parent=trackid=9834f5af41c964e225f24279aefe4e49
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4363 UNIX 
/var/lib/xcp/xapi|session.login_with_password D:96522b0bba4b|mscgen] 
xapi=>xapi [label="session.get_uuid"];
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4364 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:session.get_uuid 
D:ca81a60b135e created by task D:96522b0bba4b
Dec 30 06:51:38 g6xentest xapi: [ info|g6xentest|4371 UNIX 
/var/lib/xcp/xapi|session.logout D:d45fe29cc472|xapi] Session.destroy 
trackid=b40ee0f70df6669d28d67cd077003734
Dec 30 06:51:38 g6xentest SM: [5266] Exception in activate/attach
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4372 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:VDI.get_by_uuid 
D:816bae444f6c created by task D:7b03301c184c
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4373 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:host.get_by_uuid 
D:9c05de3c6f24 created by task D:7b03301c184c
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4374 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:VDI.get_sm_config 
D:0a4f152ffe26 created by task D:7b03301c184c
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4375 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task 
dispatch:VDI.remove_from_sm_config D:cb677dfe97f0 created by task 
D:7b03301c184c
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4375 UNIX 
/var/lib/xcp/xapi|dispatch:VDI.remove_from_sm_config 
D:cb677dfe97f0|api_effect] VDI.remove_from_sm_config
Dec 30 06:51:38 g6xentest xapi: 
[20141230T05:51:38.396Z|audit|g6xentest|4375 UNIX 
/var/lib/xcp/xapi|VDI.remove_from_sm_config D:550b87e7d87f|audit] 
('trackid=be2e0d0044616f90c8b73f608309541e' 'LOCAL_SUPERUSER' 
'__sm__backend' 'ALLOWED' 'OK' 'API' 'VDI.remove_from_sm_config' 
(('self' 'XOA System' 'cae30e9b-ebd4-4450-8ce0-9f4035ca62f1' 
'OpaqueRef:0b132ca6-b8e7-c11f-6fff-dec08432cafe')))
Dec 30 06:51:38 g6xentest SM: [5266] Removed host key 
host_OpaqueRef:bc001d57-65ce-8b2b-74b4-cd71976272c0 for 
cae30e9b-ebd4-4450-8ce0-9f4035ca62f1
Dec 30 06:51:38 g6xentest SM: [5266] ***** BLKTAP2:<function 
_activate_locked at 0x7f611a801ed8>: EXCEPTION <type 
'exceptions.AttributeError'>, 'CommandFailure' object has no attribute 
'status'
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 83, in wrapper
Dec 30 06:51:38 g6xentest SM: [5266]     ret = op(self, *args)
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 1522, in _activate_locked
Dec 30 06:51:38 g6xentest SM: [5266]     dev_path = 
self._activate(sr_uuid, vdi_uuid, options)
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 1560, in _activate
Dec 30 06:51:38 g6xentest SM: [5266] 
self._get_pool_config(sr_uuid).get("mem-pool-size"))
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 1243, in _tap_activate
Dec 30 06:51:38 g6xentest SM: [5266]     tapdisk = 
Tapdisk.find_by_path(phy_path)
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 690, in find_by_path
Dec 30 06:51:38 g6xentest SM: [5266]     return cls.find(path=path)
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 678, in find
Dec 30 06:51:38 g6xentest SM: [5266]     found = list(cls.list(**args))
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 653, in list
Dec 30 06:51:38 g6xentest SM: [5266]     for row in TapCtl.list(**args):
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 118, in loop
Dec 30 06:51:38 g6xentest SM: [5266]     return f(*__t, **__d)
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 348, in list
Dec 30 06:51:38 g6xentest SM: [5266]     if e.status in transient:
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 162, in __getattr__
Dec 30 06:51:38 g6xentest SM: [5266]     return 
object.__getattribute__(self, key)
Dec 30 06:51:38 g6xentest SM: [5266]
Dec 30 06:51:38 g6xentest SM: [5266] lock: released 
/var/lock/sm/cae30e9b-ebd4-4450-8ce0-9f4035ca62f1/vdi
Dec 30 06:51:38 g6xentest SM: [5266] ***** generic exception: 
vdi_activate: EXCEPTION <type 'exceptions.AttributeError'>, 
'CommandFailure' object has no attribute 'status'
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/SRCommand.py", line 110, in run
Dec 30 06:51:38 g6xentest SM: [5266]     return self._run_locked(sr)
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/SRCommand.py", line 159, in _run_locked
Dec 30 06:51:38 g6xentest SM: [5266]     rv = self._run(sr, target)
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/SRCommand.py", line 263, in _run
Dec 30 06:51:38 g6xentest SM: [5266]     writable, caching_params)
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 1486, in activate
Dec 30 06:51:38 g6xentest SM: [5266]     if 
self._activate_locked(sr_uuid, vdi_uuid, options):
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 83, in wrapper
Dec 30 06:51:38 g6xentest SM: [5266]     ret = op(self, *args)
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 1522, in _activate_locked
Dec 30 06:51:38 g6xentest SM: [5266]     dev_path = 
self._activate(sr_uuid, vdi_uuid, options)
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 1560, in _activate
Dec 30 06:51:38 g6xentest SM: [5266] 
self._get_pool_config(sr_uuid).get("mem-pool-size"))
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 1243, in _tap_activate
Dec 30 06:51:38 g6xentest SM: [5266]     tapdisk = 
Tapdisk.find_by_path(phy_path)
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 690, in find_by_path
Dec 30 06:51:38 g6xentest SM: [5266]     return cls.find(path=path)
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 678, in find
Dec 30 06:51:38 g6xentest SM: [5266]     found = list(cls.list(**args))
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 653, in list
Dec 30 06:51:38 g6xentest SM: [5266]     for row in TapCtl.list(**args):
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 118, in loop
Dec 30 06:51:38 g6xentest SM: [5266]     return f(*__t, **__d)
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 348, in list
Dec 30 06:51:38 g6xentest SM: [5266]     if e.status in transient:
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 162, in __getattr__
Dec 30 06:51:38 g6xentest SM: [5266]     return 
object.__getattribute__(self, key)
Dec 30 06:51:38 g6xentest SM: [5266]
Dec 30 06:51:38 g6xentest SM: [5266] lock: closed 
/var/lock/sm/cae30e9b-ebd4-4450-8ce0-9f4035ca62f1/vdi
Dec 30 06:51:38 g6xentest SM: [5266] lock: closed 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/sr
Dec 30 06:51:38 g6xentest forkexecd: [error|g6xentest|0||forkexecd] 5266 
(/opt/xensource/sm/NFSSR 
<methodCall><methodName>vdi_activate</methodName><par...) exitted with 
code 1
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4340|sm_exec 
D:74a592aeddb3|xapi] Raised at file \"lib/forkhelpers.ml\", line 181, 
characters 31-75\nCalled from file \"lib/pervasiveext.ml\", line 22, 
characters 2-9\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4340|sm_exec 
D:74a592aeddb3|xapi] Raised at file \"sm_exec.ml\", line 193, characters 
10-100\nCalled from file \"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4340|sm_exec 
D:74a592aeddb3|xapi] Raised at file \"lib/pervasiveext.ml\", line 26, 
characters 22-25\nCalled from file \"sm_exec.ml\", line 175, characters 
23-1023\nCalled from file \"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:38 g6xentest xapi: [ info|g6xentest|4340|sm_exec 
D:74a592aeddb3|xapi] Session.destroy 
trackid=be2e0d0044616f90c8b73f608309541e
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4340|sm_exec 
D:74a592aeddb3|backtrace] Raised at file \"lib/pervasiveext.ml\", line 
26, characters 22-25\nCalled from file \"server_helpers.ml\", line 72, 
characters 11-23\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4340|sm_exec 
D:74a592aeddb3|dispatcher] Server_helpers.exec exception_handler: Got 
exception SR_BACKEND_FAILURE: [ non-zero exit; ; Traceback (most recent 
call last):#012  File "/opt/xensource/sm/NFSSR", line 278, in 
<module>#012    SRCommand.run(NFSSR, DRIVER_INFO)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 344, in run#012    ret = 
cmd.run(sr)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 110, in 
run#012    return self._run_locked(sr)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 159, in _run_locked#012    rv = 
self._run(sr, target)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 
263, in _run#012    writable, caching_params)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 1486, in activate#012    if 
self._activate_locked(sr_uuid, vdi_uuid, options):#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 83, in wrapper#012    ret = op(self, 
*args)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1522, in 
_activate_locked#012    dev_path = self._activate(sr_uuid, vdi_uuid, 
options)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1560, in 
_activate#012 self._get_pool_config(sr_uuid).get("mem-pool-size"))#012  
File "/usr/lib/xapi/sm/blktap2.py", line 1243, in _tap_activate#012 
tapdisk = Tapdisk.find_by_path(phy_path)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 690, in find_by_path#012 return 
cls.find(path=path)#012  File "/usr/lib/xapi/sm/blktap2.py", line 678, 
in find#012    found = list(cls.list(**args))#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 653, in list#012    for row in 
TapCtl.list(**args):#012  File "/usr/lib/xapi/sm/blktap2.py", line 118, 
in loop#012    return f(*__t, **__d)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 348, in list#012    if e.status in 
transient:#012  File "/usr/lib/xapi/sm/blktap2.py", line 162, in 
__getattr__#012    return object.__getattribute__(self, 
key)#012AttributeError: 'CommandFailure' object has no attribute 
'status'#012 ]
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4340|sm_exec 
D:74a592aeddb3|dispatcher] Raised at file \"hashtbl.ml\", line 136, 
characters 19-28\nCalled from file \"lib/debug.ml\", line 172, 
characters 37-64\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4340|sm_exec 
D:74a592aeddb3|backtrace] Raised at file \"hashtbl.ml\", line 136, 
characters 19-28\nCalled from file \"lib/debug.ml\", line 172, 
characters 37-64\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4340|sm_exec 
D:74a592aeddb3|xapi] Raised at file \"server_helpers.ml\", line 90, 
characters 14-15\nCalled from file \"lib/pervasiveext.ml\", line 22, 
characters 2-9\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4340|VDI.activate 
D:7b03301c184c|xapi] Raised at file \"lib/pervasiveext.ml\", line 26, 
characters 22-25\nCalled from file \"lib/debug.ml\", line 57, characters 
17-20\nRe-raised at file \"lib/debug.ml\", line 62, characters 
10-11\nCalled from file \"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4340|VDI.activate 
D:7b03301c184c|backtrace] Raised at file \"lib/pervasiveext.ml\", line 
26, characters 22-25\nCalled from file \"sm.ml\", line 171, characters 
21-72\nCalled from file \"server_helpers.ml\", line 72, characters 11-23\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4340|VDI.activate 
D:7b03301c184c|dispatcher] Server_helpers.exec exception_handler: Got 
exception SR_BACKEND_FAILURE: [ non-zero exit; ; Traceback (most recent 
call last):#012  File "/opt/xensource/sm/NFSSR", line 278, in 
<module>#012    SRCommand.run(NFSSR, DRIVER_INFO)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 344, in run#012    ret = 
cmd.run(sr)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 110, in 
run#012    return self._run_locked(sr)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 159, in _run_locked#012    rv = 
self._run(sr, target)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 
263, in _run#012    writable, caching_params)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 1486, in activate#012    if 
self._activate_locked(sr_uuid, vdi_uuid, options):#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 83, in wrapper#012    ret = op(self, 
*args)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1522, in 
_activate_locked#012    dev_path = self._activate(sr_uuid, vdi_uuid, 
options)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1560, in 
_activate#012 self._get_pool_config(sr_uuid).get("mem-pool-size"))#012  
File "/usr/lib/xapi/sm/blktap2.py", line 1243, in _tap_activate#012 
tapdisk = Tapdisk.find_by_path(phy_path)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 690, in find_by_path#012 return 
cls.find(path=path)#012  File "/usr/lib/xapi/sm/blktap2.py", line 678, 
in find#012    found = list(cls.list(**args))#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 653, in list#012    for row in 
TapCtl.list(**args):#012  File "/usr/lib/xapi/sm/blktap2.py", line 118, 
in loop#012    return f(*__t, **__d)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 348, in list#012    if e.status in 
transient:#012  File "/usr/lib/xapi/sm/blktap2.py", line 162, in 
__getattr__#012    return object.__getattribute__(self, 
key)#012AttributeError: 'CommandFailure' object has no attribute 
'status'#012 ]
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4340|VDI.activate 
D:7b03301c184c|dispatcher] Raised at file \"hashtbl.ml\", line 136, 
characters 19-28\nCalled from file \"lib/debug.ml\", line 172, 
characters 37-64\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4340|VDI.activate 
D:7b03301c184c|backtrace] Raised at file \"hashtbl.ml\", line 136, 
characters 19-28\nCalled from file \"lib/debug.ml\", line 172, 
characters 37-64\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4340|VDI.activate 
D:7b03301c184c|xapi] Raised at file \"server_helpers.ml\", line 90, 
characters 14-15\nCalled from file \"lib/pervasiveext.ml\", line 22, 
characters 2-9\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4340||xapi] Raised at 
file \"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from 
file \"lib/debug.ml\", line 57, characters 17-20\nRe-raised at file 
\"lib/debug.ml\", line 62, characters 10-11\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:38 g6xentest xapi: [error|g6xentest|4325 UNIX 
/var/lib/xcp/xapi|VBD.plug R:6a9fba3a1166|storage_impl] Storage_impl: 
dp:vbd/0/xvda sr:787b0874-8e8b-e7d8-8ba9-74f55ff2ea16 
vdi:cae30e9b-ebd4-4450-8ce0-9f4035ca62f1 op:activate 
error:Storage_interface.Backend_error(_) backtrace:Called from file 
"storage_impl.ml", line 299, characters 7-50
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4325 UNIX 
/var/lib/xcp/xapi|VBD.plug R:6a9fba3a1166|xapi] Called from file 
\"storage_impl.ml\", line 299, characters 7-50\nRe-raised at file 
\"storage_impl.ml\", line 319, characters 11-12\nCalled from file 
\"list.ml\", line 84, characters 24-34\nCalled from file 
\"storage_impl.ml\", line 341, characters 6-55\nRe-raised at file 
\"storage_impl.ml\", line 345, characters 12-13\nCalled from file 
\"storage_impl.ml\", line 445, characters 14-77\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:38 g6xentest xapi: [error|g6xentest|4325 UNIX 
/var/lib/xcp/xapi|VBD.plug R:6a9fba3a1166|storage_access] Re-raising as 
SR_BACKEND_FAILURE [ non-zero exit; ; Traceback (most recent call 
last):#012  File "/opt/xensource/sm/NFSSR", line 278, in <module>#012    
SRCommand.run(NFSSR, DRIVER_INFO)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 344, in run#012    ret = 
cmd.run(sr)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 110, in 
run#012    return self._run_locked(sr)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 159, in _run_locked#012    rv = 
self._run(sr, target)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 
263, in _run#012    writable, caching_params)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 1486, in activate#012    if 
self._activate_locked(sr_uuid, vdi_uuid, options):#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 83, in wrapper#012    ret = op(self, 
*args)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1522, in 
_activate_locked#012    dev_path = self._activate(sr_uuid, vdi_uuid, 
options)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1560, in 
_activate#012 self._get_pool_config(sr_uuid).get("mem-pool-size"))#012  
File "/usr/lib/xapi/sm/blktap2.py", line 1243, in _tap_activate#012 
tapdisk = Tapdisk.find_by_path(phy_path)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 690, in find_by_path#012 return 
cls.find(path=path)#012  File "/usr/lib/xapi/sm/blktap2.py", line 678, 
in find#012    found = list(cls.list(**args))#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 653, in list#012    for row in 
TapCtl.list(**args):#012  File "/usr/lib/xapi/sm/blktap2.py", line 118, 
in loop#012    return f(*__t, **__d)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 348, in list#012    if e.status in 
transient:#012  File "/usr/lib/xapi/sm/blktap2.py", line 162, in 
__getattr__#012    return object.__getattribute__(self, 
key)#012AttributeError: 'CommandFailure' object has no attribute 
'status'#012 ]
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4325 UNIX 
/var/lib/xcp/xapi|VBD.plug R:6a9fba3a1166|xapi] Raised at file 
\"storage_access.ml\", line 971, characters 9-48\nCalled from file 
\"storage_access.ml\", line 967, characters 2-6\nRe-raised at file 
\"storage_access.ml\", line 972, characters 56-57\nCalled from file 
\"message_forwarding.ml\", line 233, characters 25-44\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4325 UNIX 
/var/lib/xcp/xapi|VBD.plug R:6a9fba3a1166|backtrace] Raised at file 
\"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from file 
\"message_forwarding.ml\", line 3502, characters 3-194\nCalled from file 
\"rbac.ml\", line 227, characters 16-23\n
Dec 30 06:51:38 g6xentest xapi: 
[20141230T05:51:38.465Z|audit|g6xentest|4325 UNIX 
/var/lib/xcp/xapi|VBD.plug R:6a9fba3a1166|audit] 
('trackid=ca1e0e02f1c6f9fcc980368e710d8c8b' 'LOCAL_SUPERUSER' 
'OpaqueRef:bc001d57-65ce-8b2b-74b4-cd71976272c0' 'ALLOWED' 
'ERROR:SR_BACKEND_FAILURE: [ non-zero exit; ; Traceback (most recent 
call last):   File \"/opt/xensource/sm/NFSSR\", line 278, in 
<module>     SRCommand.run(NFSSR, DRIVER_INFO)   File 
\"/usr/lib/xapi/sm/SRCommand.py\", line 344, in run     ret = 
cmd.run(sr)   File \"/usr/lib/xapi/sm/SRCommand.py\", line 110, in 
run     return self._run_locked(sr)   File 
\"/usr/lib/xapi/sm/SRCommand.py\", line 159, in _run_locked     rv = 
self._run(sr, target)   File \"/usr/lib/xapi/sm/SRCommand.py\", line 
263, in _run     writable, caching_params)   File 
\"/usr/lib/xapi/sm/blktap2.py\", line 1486, in activate     if 
self._activate_locked(sr_uuid, vdi_uuid, options):   File 
\"/usr/lib/xapi/sm/blktap2.py\", line 83, in wrapper     ret = op(self, 
*args)   File \"/usr/lib/xapi/sm/blktap2.py\", line 1522, in 
_activate_locked     dev_path = self._activate(sr_uuid, vdi_uuid, 
options)   File \"/usr/lib/xapi/sm/blktap2.py\", line 1560, in _activate 
self._get_pool_config(sr_uuid).get(\"mem-pool-size\"))   File 
\"/usr/lib/xapi/sm/blktap2.py\", line 1243, in _tap_activate tapdisk = 
Tapdisk.find_by_path(phy_path)   File \"/usr/lib/xapi/sm/blktap2.py\", 
line 690, in find_by_path return cls.find(path=path)   File 
\"/usr/lib/xapi/sm/blktap2.py\", line 678, in find     found = 
list(cls.list(**args))   File \"/usr/lib/xapi/sm/blktap2.py\", line 653, 
in list     for row in TapCtl.list(**args):   File 
\"/usr/lib/xapi/sm/blktap2.py\", line 118, in loop     return f(*__t, 
**__d)   File \"/usr/lib/xapi/sm/blktap2.py\", line 348, in list     if 
e.status in transient:   File \"/usr/lib/xapi/sm/blktap2.py\", line 162, 
in __getattr__     return object.__getattribute__(self, key) 
AttributeError: \'CommandFailure\' object has no attribute \'status\'  
]' 'API' 'VBD.plug' (('self' '' '55716ecf-1a27-b265-6021-f21994a346df' 
'OpaqueRef:62934ed8-606c-9a27-ca66-625b42213fd1')))
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4325 UNIX 
/var/lib/xcp/xapi|VBD.plug R:6a9fba3a1166|backtrace] Raised at file 
\"rbac.ml\", line 236, characters 10-15\nCalled from file 
\"server_helpers.ml\", line 75, characters 11-41\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4325 UNIX 
/var/lib/xcp/xapi|VBD.plug R:6a9fba3a1166|dispatcher] 
Server_helpers.exec exception_handler: Got exception SR_BACKEND_FAILURE: 
[ non-zero exit; ; Traceback (most recent call last):#012  File 
"/opt/xensource/sm/NFSSR", line 278, in <module>#012    
SRCommand.run(NFSSR, DRIVER_INFO)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 344, in run#012    ret = 
cmd.run(sr)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 110, in 
run#012    return self._run_locked(sr)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 159, in _run_locked#012    rv = 
self._run(sr, target)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 
263, in _run#012    writable, caching_params)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 1486, in activate#012    if 
self._activate_locked(sr_uuid, vdi_uuid, options):#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 83, in wrapper#012    ret = op(self, 
*args)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1522, in 
_activate_locked#012    dev_path = self._activate(sr_uuid, vdi_uuid, 
options)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1560, in 
_activate#012 self._get_pool_config(sr_uuid).get("mem-pool-size"))#012  
File "/usr/lib/xapi/sm/blktap2.py", line 1243, in _tap_activate#012 
tapdisk = Tapdisk.find_by_path(phy_path)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 690, in find_by_path#012 return 
cls.find(path=path)#012  File "/usr/lib/xapi/sm/blktap2.py", line 678, 
in find#012    found = list(cls.list(**args))#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 653, in list#012    for row in 
TapCtl.list(**args):#012  File "/usr/lib/xapi/sm/blktap2.py", line 118, 
in loop#012    return f(*__t, **__d)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 348, in list#012    if e.status in 
transient:#012  File "/usr/lib/xapi/sm/blktap2.py", line 162, in 
__getattr__#012    return object.__getattribute__(self, 
key)#012AttributeError: 'CommandFailure' object has no attribute 
'status'#012 ]
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4325 UNIX 
/var/lib/xcp/xapi|VBD.plug R:6a9fba3a1166|dispatcher] Raised at file 
\"rbac.ml\", line 236, characters 10-15\nCalled from file 
\"server_helpers.ml\", line 75, characters 11-41\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4325 UNIX 
/var/lib/xcp/xapi|VBD.plug R:6a9fba3a1166|backtrace] Raised at file 
\"rbac.ml\", line 236, characters 10-15\nCalled from file 
\"server_helpers.ml\", line 75, characters 11-41\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4325 UNIX 
/var/lib/xcp/xapi|VBD.plug R:6a9fba3a1166|xapi] Raised at file 
\"server_helpers.ml\", line 90, characters 14-15\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4325 UNIX 
/var/lib/xcp/xapi|dispatch:VBD.plug D:a065a8a06ea5|xapi] Raised at file 
\"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from file 
\"lib/debug.ml\", line 57, characters 17-20\nRe-raised at file 
\"lib/debug.ml\", line 62, characters 10-11\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4325 UNIX 
/var/lib/xcp/xapi|dispatch:VBD.plug D:a065a8a06ea5|backtrace] Raised at 
file \"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from 
file \"lib/debug.ml\", line 57, characters 17-20\nRe-raised at file 
\"lib/debug.ml\", line 62, characters 10-11\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\nRe-raised at file 
\"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from file 
\"server_helpers.ml\", line 136, characters 10-106\nCalled from file 
\"server.ml\", line 25047, characters 23-161\nCalled from file 
\"server_helpers.ml\", line 115, characters 4-7\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4303 INET :::80|VM 
import R:dbdb0ee5ae16|xapi] Raised at file \"client.ml\", line 6, 
characters 37-75\nCalled from file \"client.ml\", line 18, characters 
55-110\nCalled from file \"client.ml\", line 10530, characters 
6-53\nCalled from file \"list.ml\", line 73, characters 12-15\nCalled 
from file \"attach_helpers.ml\", line 79, characters 7-787\nCalled from 
file \"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4303 INET :::80|VM 
import R:dbdb0ee5ae16|mscgen] xapi=>xapi [label="session.slave_login"];
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4376 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:session.slave_login 
D:e29a1093437b created by task R:dbdb0ee5ae16
Dec 30 06:51:38 g6xentest xapi: [ info|g6xentest|4376 UNIX 
/var/lib/xcp/xapi|session.slave_login D:53f5a509153c|xapi] 
Session.create trackid=43bee4954daf50bb8c163bcd68702fd4 pool=true uname= 
originator= is_local_superuser=true auth_user_sid= 
parent=trackid=9834f5af41c964e225f24279aefe4e49
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4376 UNIX 
/var/lib/xcp/xapi|session.slave_login D:53f5a509153c|mscgen] xapi=>xapi 
[label="session.get_uuid"];
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4377 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:session.get_uuid 
D:00c5bef3f954 created by task D:53f5a509153c
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4303 INET :::80|VM 
import R:dbdb0ee5ae16|mscgen] xapi=>xapi [label="VBD.unplug"];
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4378 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:VBD.unplug 
D:28c1d1528ed1 created by task R:dbdb0ee5ae16
Dec 30 06:51:38 g6xentest xapi: [ info|g6xentest|4378 UNIX 
/var/lib/xcp/xapi|dispatch:VBD.unplug D:28c1d1528ed1|taskhelper] task 
VBD.unplug R:4dc35778c95d (uuid:3e1e7e97-ad3d-f6ea-74b0-b658f6a234c2) 
created (trackid=43bee4954daf50bb8c163bcd68702fd4) by task R:dbdb0ee5ae16
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4378 UNIX 
/var/lib/xcp/xapi|VBD.unplug R:4dc35778c95d|audit] VBD.unplug: VBD = 
'55716ecf-1a27-b265-6021-f21994a346df'
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4378 UNIX 
/var/lib/xcp/xapi|VBD.unplug R:4dc35778c95d|backtrace] Raised at file 
\"xapi_vbd_helpers.ml\", line 201, characters 33-72\nCalled from file 
\"message_forwarding.ml\", line 3430, characters 5-65\nCalled from file 
\"message_forwarding.ml\", line 283, characters 5-8\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4378 UNIX 
/var/lib/xcp/xapi|VBD.unplug R:4dc35778c95d|xapi] Caught exception while 
DEVICE_ALREADY_DETACHED: [ 
OpaqueRef:62934ed8-606c-9a27-ca66-625b42213fd1 ] in message forwarder: 
marking VBD for VBD.unplug
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4378 UNIX 
/var/lib/xcp/xapi|VBD.unplug R:4dc35778c95d|backtrace] Raised at file 
\"xapi_vbd_helpers.ml\", line 201, characters 33-72\nCalled from file 
\"message_forwarding.ml\", line 3430, characters 5-65\nCalled from file 
\"message_forwarding.ml\", line 283, characters 5-8\nRe-raised at file 
\"message_forwarding.ml\", line 286, characters 8-9\nCalled from file 
\"lib/threadext.ml\", line 20, characters 20-24\nRe-raised at file 
\"lib/threadext.ml\", line 20, characters 62-65\nCalled from file 
\"message_forwarding.ml\", line 149, characters 19-25\nCalled from file 
\"message_forwarding.ml\", line 3435, characters 3-87\nCalled from file 
\"message_forwarding.ml\", line 3511, characters 3-200\nCalled from file 
\"rbac.ml\", line 227, characters 16-23\n
Dec 30 06:51:38 g6xentest xapi: 
[20141230T05:51:38.539Z|audit|g6xentest|4378 UNIX 
/var/lib/xcp/xapi|VBD.unplug R:4dc35778c95d|audit] 
('trackid=43bee4954daf50bb8c163bcd68702fd4' 'LOCAL_SUPERUSER' 
'OpaqueRef:bc001d57-65ce-8b2b-74b4-cd71976272c0' 'ALLOWED' 
'ERROR:DEVICE_ALREADY_DETACHED: [ 
OpaqueRef:62934ed8-606c-9a27-ca66-625b42213fd1 ]' 'API' 'VBD.unplug' 
(('self' '' '55716ecf-1a27-b265-6021-f21994a346df' 
'OpaqueRef:62934ed8-606c-9a27-ca66-625b42213fd1')))
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4378 UNIX 
/var/lib/xcp/xapi|VBD.unplug R:4dc35778c95d|backtrace] Raised at file 
\"rbac.ml\", line 236, characters 10-15\nCalled from file 
\"server_helpers.ml\", line 75, characters 11-41\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4378 UNIX 
/var/lib/xcp/xapi|VBD.unplug R:4dc35778c95d|dispatcher] 
Server_helpers.exec exception_handler: Got exception 
DEVICE_ALREADY_DETACHED: [ OpaqueRef:62934ed8-606c-9a27-ca66-625b42213fd1 ]
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4378 UNIX 
/var/lib/xcp/xapi|VBD.unplug R:4dc35778c95d|dispatcher] Raised at file 
\"rbac.ml\", line 236, characters 10-15\nCalled from file 
\"server_helpers.ml\", line 75, characters 11-41\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4378 UNIX 
/var/lib/xcp/xapi|VBD.unplug R:4dc35778c95d|backtrace] Raised at file 
\"rbac.ml\", line 236, characters 10-15\nCalled from file 
\"server_helpers.ml\", line 75, characters 11-41\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4378 UNIX 
/var/lib/xcp/xapi|VBD.unplug R:4dc35778c95d|xapi] Raised at file 
\"server_helpers.ml\", line 90, characters 14-15\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4378 UNIX 
/var/lib/xcp/xapi|dispatch:VBD.unplug D:28c1d1528ed1|xapi] Raised at 
file \"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from 
file \"lib/debug.ml\", line 57, characters 17-20\nRe-raised at file 
\"lib/debug.ml\", line 62, characters 10-11\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4378 UNIX 
/var/lib/xcp/xapi|dispatch:VBD.unplug D:28c1d1528ed1|backtrace] Raised 
at file \"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from 
file \"lib/debug.ml\", line 57, characters 17-20\nRe-raised at file 
\"lib/debug.ml\", line 62, characters 10-11\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\nRe-raised at file 
\"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from file 
\"server_helpers.ml\", line 136, characters 10-106\nCalled from file 
\"server.ml\", line 25068, characters 23-161\nCalled from file 
\"server_helpers.ml\", line 115, characters 4-7\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4303 INET :::80|VM 
import R:dbdb0ee5ae16|xapi] safe_unplug caught DEVICE_ALREADY_DETACHED: 
this is safe to ignore
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4303 INET :::80|VM 
import R:dbdb0ee5ae16|mscgen] xapi=>xapi [label="VBD.destroy"];
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4379 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:VBD.destroy 
D:d2a2ffe1ee4f created by task R:dbdb0ee5ae16
Dec 30 06:51:38 g6xentest xapi: [ info|g6xentest|4379 UNIX 
/var/lib/xcp/xapi|dispatch:VBD.destroy D:d2a2ffe1ee4f|taskhelper] task 
VBD.destroy R:76c8f8af8ec3 (uuid:2891c38f-8c95-4a84-01be-f3fb921b7eb8) 
created (trackid=43bee4954daf50bb8c163bcd68702fd4) by task R:dbdb0ee5ae16
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4379 UNIX 
/var/lib/xcp/xapi|VBD.destroy R:76c8f8af8ec3|audit] VBD.destroy: VBD = 
'55716ecf-1a27-b265-6021-f21994a346df'
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4379 UNIX 
/var/lib/xcp/xapi|VBD.destroy R:76c8f8af8ec3|xapi] VBD.destroy (uuid = 
55716ecf-1a27-b265-6021-f21994a346df; ref = 
OpaqueRef:62934ed8-606c-9a27-ca66-625b42213fd1)
Dec 30 06:51:38 g6xentest xapi: 
[20141230T05:51:38.583Z|audit|g6xentest|4379 UNIX 
/var/lib/xcp/xapi|VBD.destroy R:76c8f8af8ec3|audit] 
('trackid=43bee4954daf50bb8c163bcd68702fd4' 'LOCAL_SUPERUSER' 
'OpaqueRef:bc001d57-65ce-8b2b-74b4-cd71976272c0' 'ALLOWED' 'OK' 'API' 
'VBD.destroy' (('self' '' '55716ecf-1a27-b265-6021-f21994a346df' 
'OpaqueRef:62934ed8-606c-9a27-ca66-625b42213fd1') ('VDI' 'XOA System' 
'cae30e9b-ebd4-4450-8ce0-9f4035ca62f1' 
'OpaqueRef:0b132ca6-b8e7-c11f-6fff-dec08432cafe')))
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4303 INET :::80|VM 
import R:dbdb0ee5ae16|mscgen] xapi=>xapi [label="session.logout"];
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4380 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:session.logout 
D:33d121ae703c created by task R:dbdb0ee5ae16
Dec 30 06:51:38 g6xentest xapi: [ info|g6xentest|4380 UNIX 
/var/lib/xcp/xapi|session.logout D:b68a5fb9f585|xapi] Session.destroy 
trackid=43bee4954daf50bb8c163bcd68702fd4
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4303 INET :::80|VM 
import R:dbdb0ee5ae16|backtrace] Raised at file \"lib/pervasiveext.ml\", 
line 26, characters 22-25\nCalled from file \"list.ml\", line 73, 
characters 12-15\nCalled from file \"stream_vdi.ml\", line 58, 
characters 2-32\nCalled from file \"import.ml\", line 1493, characters 
36-124\n
Dec 30 06:51:38 g6xentest xapi: [error|g6xentest|4303 INET :::80|VM 
import R:dbdb0ee5ae16|import] Caught exception during import: 
SR_BACKEND_FAILURE: [ non-zero exit; ; Traceback (most recent call 
last):#012  File "/opt/xensource/sm/NFSSR", line 278, in <module>#012    
SRCommand.run(NFSSR, DRIVER_INFO)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 344, in run#012    ret = 
cmd.run(sr)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 110, in 
run#012    return self._run_locked(sr)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 159, in _run_locked#012    rv = 
self._run(sr, target)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 
263, in _run#012    writable, caching_params)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 1486, in activate#012    if 
self._activate_locked(sr_uuid, vdi_uuid, options):#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 83, in wrapper#012    ret = op(self, 
*args)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1522, in 
_activate_locked#012    dev_path = self._activate(sr_uuid, vdi_uuid, 
options)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1560, in 
_activate#012 self._get_pool_config(sr_uuid).get("mem-pool-size"))#012  
File "/usr/lib/xapi/sm/blktap2.py", line 1243, in _tap_activate#012 
tapdisk = Tapdisk.find_by_path(phy_path)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 690, in find_by_path#012 return 
cls.find(path=path)#012  File "/usr/lib/xapi/sm/blktap2.py", line 678, 
in find#012    found = list(cls.list(**args))#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 653, in list#012    for row in 
TapCtl.list(**args):#012  File "/usr/lib/xapi/sm/blktap2.py", line 118, 
in loop#012    return f(*__t, **__d)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 348, in list#012    if e.status in 
transient:#012  File "/usr/lib/xapi/sm/blktap2.py", line 162, in 
__getattr__#012    return object.__getattribute__(self, 
key)#012AttributeError: 'CommandFailure' object has no attribute 
'status'#012 ]
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4303 INET :::80|VM 
import R:dbdb0ee5ae16|backtrace] Raised at file \"lib/pervasiveext.ml\", 
line 26, characters 22-25\nCalled from file \"list.ml\", line 73, 
characters 12-15\nCalled from file \"stream_vdi.ml\", line 58, 
characters 2-32\nCalled from file \"import.ml\", line 1493, characters 
36-124\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4303 INET :::80|VM 
import R:dbdb0ee5ae16|import] Cleaning up after import failure: 
SR_BACKEND_FAILURE: [ non-zero exit; ; Traceback (most recent call 
last):#012  File "/opt/xensource/sm/NFSSR", line 278, in <module>#012    
SRCommand.run(NFSSR, DRIVER_INFO)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 344, in run#012    ret = 
cmd.run(sr)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 110, in 
run#012    return self._run_locked(sr)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 159, in _run_locked#012    rv = 
self._run(sr, target)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 
263, in _run#012    writable, caching_params)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 1486, in activate#012    if 
self._activate_locked(sr_uuid, vdi_uuid, options):#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 83, in wrapper#012    ret = op(self, 
*args)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1522, in 
_activate_locked#012    dev_path = self._activate(sr_uuid, vdi_uuid, 
options)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1560, in 
_activate#012 self._get_pool_config(sr_uuid).get("mem-pool-size"))#012  
File "/usr/lib/xapi/sm/blktap2.py", line 1243, in _tap_activate#012 
tapdisk = Tapdisk.find_by_path(phy_path)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 690, in find_by_path#012 return 
cls.find(path=path)#012  File "/usr/lib/xapi/sm/blktap2.py", line 678, 
in find#012    found = list(cls.list(**args))#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 653, in list#012    for row in 
TapCtl.list(**args):#012  File "/usr/lib/xapi/sm/blktap2.py", line 118, 
in loop#012    return f(*__t, **__d)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 348, in list#012    if e.status in 
transient:#012  File "/usr/lib/xapi/sm/blktap2.py", line 162, in 
__getattr__#012    return object.__getattribute__(self, 
key)#012AttributeError: 'CommandFailure' object has no attribute 
'status'#012 ]
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4303 INET 
:::80|VM.import (cleanup) R:09dd9c768450|mscgen] xapi=>xapi 
[label="session.slave_login"];
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4381 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:session.slave_login 
D:2d6fe045e67d created by task R:09dd9c768450
Dec 30 06:51:38 g6xentest xapi: [ info|g6xentest|4381 UNIX 
/var/lib/xcp/xapi|session.slave_login D:095689d3702c|xapi] 
Session.create trackid=ef3cd4745f1b43b77a99acfe3afbae8f pool=true uname= 
originator= is_local_superuser=true auth_user_sid= 
parent=trackid=9834f5af41c964e225f24279aefe4e49
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4381 UNIX 
/var/lib/xcp/xapi|session.slave_login D:095689d3702c|mscgen] xapi=>xapi 
[label="session.get_uuid"];
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4382 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:session.get_uuid 
D:66485c08ca4a created by task D:095689d3702c
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4303 INET 
:::80|VM.import (cleanup) R:09dd9c768450|mscgen] xapi=>xapi 
[label="VIF.destroy"];
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4383 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:VIF.destroy 
D:4b7119580895 created by task R:09dd9c768450
Dec 30 06:51:38 g6xentest xapi: [ info|g6xentest|4383 UNIX 
/var/lib/xcp/xapi|dispatch:VIF.destroy D:4b7119580895|taskhelper] task 
VIF.destroy R:d4bf2c6c0049 (uuid:213cdb59-8ba7-3029-35e1-a5aec5b715a0) 
created (trackid=ef3cd4745f1b43b77a99acfe3afbae8f) by task R:09dd9c768450
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4383 UNIX 
/var/lib/xcp/xapi|VIF.destroy R:d4bf2c6c0049|audit] VIF.destroy: VIF = 
'c40d19c8-1964-eb04-e572-344b74bb7701'
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4383 UNIX 
/var/lib/xcp/xapi|VIF.destroy R:d4bf2c6c0049|xapi] VIF.destroy
Dec 30 06:51:38 g6xentest xapi: 
[20141230T05:51:38.628Z|audit|g6xentest|4383 UNIX 
/var/lib/xcp/xapi|VIF.destroy R:d4bf2c6c0049|audit] 
('trackid=ef3cd4745f1b43b77a99acfe3afbae8f' 'LOCAL_SUPERUSER' 
'OpaqueRef:bc001d57-65ce-8b2b-74b4-cd71976272c0' 'ALLOWED' 'OK' 'API' 
'VIF.destroy' (('self' '' 'c40d19c8-1964-eb04-e572-344b74bb7701' 
'OpaqueRef:55e3990c-9eb4-1d2f-c34d-17851cb87df8')))
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|89|xapi events 
D:b6497e2a8b15|xenops] Event on VM be764dde-ba6d-48f5-bdc2-8ae87ad74559; 
resident_here = true
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4303 INET 
:::80|VM.import (cleanup) R:09dd9c768450|mscgen] xapi=>xapi 
[label="VBD.destroy"];
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4384 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:VBD.destroy 
D:206e6030d791 created by task R:09dd9c768450
Dec 30 06:51:38 g6xentest xapi: [ info|g6xentest|4384 UNIX 
/var/lib/xcp/xapi|dispatch:VBD.destroy D:206e6030d791|taskhelper] task 
VBD.destroy R:0a7f5e962c4a (uuid:c2e5bc64-b3d2-f2fa-27e7-f8dc235281c8) 
created (trackid=ef3cd4745f1b43b77a99acfe3afbae8f) by task R:09dd9c768450
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4384 UNIX 
/var/lib/xcp/xapi|VBD.destroy R:0a7f5e962c4a|audit] VBD.destroy: VBD = 
'35870bde-8ccb-d001-3999-c6acad0c2b0a'
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4384 UNIX 
/var/lib/xcp/xapi|VBD.destroy R:0a7f5e962c4a|xapi] VBD.destroy (uuid = 
35870bde-8ccb-d001-3999-c6acad0c2b0a; ref = 
OpaqueRef:34bbcf5e-1c44-8a03-f1f2-0dc494b2846a)
Dec 30 06:51:38 g6xentest xapi: 
[20141230T05:51:38.671Z|audit|g6xentest|4384 UNIX 
/var/lib/xcp/xapi|VBD.destroy R:0a7f5e962c4a|audit] 
('trackid=ef3cd4745f1b43b77a99acfe3afbae8f' 'LOCAL_SUPERUSER' 
'OpaqueRef:bc001d57-65ce-8b2b-74b4-cd71976272c0' 'ALLOWED' 'OK' 'API' 
'VBD.destroy' (('self' '' '35870bde-8ccb-d001-3999-c6acad0c2b0a' 
'OpaqueRef:34bbcf5e-1c44-8a03-f1f2-0dc494b2846a') ('VDI' 'XOA System' 
'cae30e9b-ebd4-4450-8ce0-9f4035ca62f1' 
'OpaqueRef:0b132ca6-b8e7-c11f-6fff-dec08432cafe')))
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|89|xapi events 
D:b6497e2a8b15|mscgen] xapi=>xapi [label="event.from"];
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4385 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:event.from 
D:b10ddc2b5796 created by task D:b6497e2a8b15
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4303 INET 
:::80|VM.import (cleanup) R:09dd9c768450|mscgen] xapi=>xapi 
[label="VM.destroy"];
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4386 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:VM.destroy 
D:46b69d81a56f created by task R:09dd9c768450
Dec 30 06:51:38 g6xentest xapi: [ info|g6xentest|4386 UNIX 
/var/lib/xcp/xapi|dispatch:VM.destroy D:46b69d81a56f|taskhelper] task 
VM.destroy R:43577c42dd09 (uuid:a0b80bba-249a-4439-8424-1965efb19459) 
created (trackid=ef3cd4745f1b43b77a99acfe3afbae8f) by task R:09dd9c768450
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4386 UNIX 
/var/lib/xcp/xapi|VM.destroy R:43577c42dd09|audit] VM.destroy: VM = 
'3b16c2e7-08e7-3c0f-452d-458c3a008685 (XOA 3.6 Basic)'
Dec 30 06:51:38 g6xentest xcp-rrdd: [debug|g6xentest|1325 
unix_rpc||http] Request { frame = false; method = POST; uri = 
/var/lib/xcp/xcp-rrdd; query = [  ]; content_length = [ 266 ]; transfer 
encoding = ; version = 1.1; cookie = [ = ]; task = ; subtask_of = ; 
content-type = ; host = ; user_agent = /usr/sbin/xapi }
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4386 UNIX 
/var/lib/xcp/xapi|VM.destroy R:43577c42dd09|xapi] VM.destroy: deleting 
DB records
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4386 UNIX 
/var/lib/xcp/xapi|VM.destroy R:43577c42dd09|xapi] Raised at file 
\"db_cache_types.ml\", line 107, characters 27-69\nCalled from file 
\"db_cache_impl.ml\", line 240, characters 11-44\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:38 g6xentest xapi: 
[20141230T05:51:38.718Z|audit|g6xentest|4386 UNIX 
/var/lib/xcp/xapi|VM.destroy R:43577c42dd09|audit] 
('trackid=ef3cd4745f1b43b77a99acfe3afbae8f' 'LOCAL_SUPERUSER' 
'OpaqueRef:bc001d57-65ce-8b2b-74b4-cd71976272c0' 'ALLOWED' 'OK' 'API' 
'VM.destroy' (('self' 'XOA 3.6 Basic' 
'3b16c2e7-08e7-3c0f-452d-458c3a008685' 
'OpaqueRef:ec37ed87-e7c7-f67a-e0ae-8ba7079f4f84')))
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4303 INET 
:::80|VM.import (cleanup) R:09dd9c768450|mscgen] xapi=>xapi 
[label="VDI.destroy"];
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4387 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:VDI.destroy 
D:5395d7e29d84 created by task R:09dd9c768450
Dec 30 06:51:38 g6xentest xapi: [ info|g6xentest|4387 UNIX 
/var/lib/xcp/xapi|dispatch:VDI.destroy D:5395d7e29d84|taskhelper] task 
VDI.destroy R:eb73ba917080 (uuid:26ba88fa-28f0-f22e-e418-ae460115c4af) 
created (trackid=ef3cd4745f1b43b77a99acfe3afbae8f) by task R:09dd9c768450
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4387 UNIX 
/var/lib/xcp/xapi|VDI.destroy R:eb73ba917080|audit] VDI.destroy: VDI = 
'cae30e9b-ebd4-4450-8ce0-9f4035ca62f1'
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4387 UNIX 
/var/lib/xcp/xapi|VDI.destroy R:eb73ba917080|xapi] Marking SR for 
VDI.destroy (task=OpaqueRef:eb73ba91-7080-dc74-8ec1-beca0146bf0d)
Dec 30 06:51:38 g6xentest xapi: [ info|g6xentest|4387 UNIX 
/var/lib/xcp/xapi|VDI.destroy R:eb73ba917080|storage_impl] VDI.destroy 
dbg:OpaqueRef:eb73ba91-7080-dc74-8ec1-beca0146bf0d 
sr:787b0874-8e8b-e7d8-8ba9-74f55ff2ea16 
vdi:cae30e9b-ebd4-4450-8ce0-9f4035ca62f1
Dec 30 06:51:38 g6xentest xapi: [ info|g6xentest|4387 UNIX 
/var/lib/xcp/xapi|VDI.destroy R:eb73ba917080|storage_impl] Attempting to 
destroy datapath dp:vbd/0/xvda sr:787b0874-8e8b-e7d8-8ba9-74f55ff2ea16 
vdi:cae30e9b-ebd4-4450-8ce0-9f4035ca62f1
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4388||dummytaskhelper] 
task VDI.detach D:136386636701 created by task R:eb73ba917080
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4388|VDI.detach 
D:136386636701|sm] SM nfs vdi_detach 
sr=OpaqueRef:521231d6-df3b-790b-1e22-b344a83d9d39 
vdi=OpaqueRef:0b132ca6-b8e7-c11f-6fff-dec08432cafe
Dec 30 06:51:38 g6xentest xapi: [ info|g6xentest|4388|sm_exec 
D:8418c2e72cc7|xapi] Session.create 
trackid=1d82ccf0a6619430098a53727371f855 pool=false uname= originator= 
is_local_superuser=true auth_user_sid= 
parent=trackid=9834f5af41c964e225f24279aefe4e49
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4388|sm_exec 
D:8418c2e72cc7|mscgen] xapi=>xapi [label="session.get_uuid"];
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4389 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:session.get_uuid 
D:e6cafcef1d61 created by task D:8418c2e72cc7
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4388|sm_exec 
D:8418c2e72cc7|mscgen] smapiv2=>smapiv1 [label="vdi_detach"];
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4390 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:host.get_other_config 
D:33b0b7636dc9 created by task D:136386636701
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4391 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:SR.get_sm_config 
D:d5f1c6df32eb created by task D:136386636701
Dec 30 06:51:38 g6xentest SM: [5322] lock: acquired 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/sr
Dec 30 06:51:38 g6xentest SM: [5322] ['/usr/sbin/td-util', 'query', 
'vhd', '-vpf', 
'/var/run/sr-mount/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/cae30e9b-ebd4-4450-8ce0-9f4035ca62f1.vhd']
Dec 30 06:51:38 g6xentest SM: [5322]   pread SUCCESS
Dec 30 06:51:38 g6xentest SM: [5322] vdi_detach {'sr_uuid': 
'787b0874-8e8b-e7d8-8ba9-74f55ff2ea16', 'subtask_of': 
'DummyRef:|13638663-6701-1091-57d1-cba68304ef6a|VDI.detach', 'vdi_ref': 
'OpaqueRef:0b132ca6-b8e7-c11f-6fff-dec08432cafe', 'vdi_on_boot': 
'persist', 'args': [], 'vdi_location': 
'cae30e9b-ebd4-4450-8ce0-9f4035ca62f1', 'host_ref': 
'OpaqueRef:bc001d57-65ce-8b2b-74b4-cd71976272c0', 'session_ref': 
'OpaqueRef:8f6fd5ed-9b88-0ecd-d0dc-2652ebe54969', 'device_config': 
{'SRmaster': 'true', 'serverpath': '/mnt/zbiornik/testvol/', 'server': 
'127.0.0.1'}, 'command': 'vdi_detach', 'vdi_allow_caching': 'false', 
'sr_ref': 'OpaqueRef:521231d6-df3b-790b-1e22-b344a83d9d39', 'vdi_uuid': 
'cae30e9b-ebd4-4450-8ce0-9f4035ca62f1'}
Dec 30 06:51:38 g6xentest SM: [5322] lock: closed 
/var/lock/sm/cae30e9b-ebd4-4450-8ce0-9f4035ca62f1/vdi
Dec 30 06:51:38 g6xentest SM: [5322] lock: released 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/sr
Dec 30 06:51:38 g6xentest SM: [5322] lock: closed 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/sr
Dec 30 06:51:39 g6xentest xapi: [ info|g6xentest|4388|sm_exec 
D:8418c2e72cc7|xapi] Session.destroy 
trackid=1d82ccf0a6619430098a53727371f855
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4387 UNIX 
/var/lib/xcp/xapi|VDI.destroy R:eb73ba917080|storage_impl] 
dbg:OpaqueRef:eb73ba91-7080-dc74-8ec1-beca0146bf0d dp:vbd/0/xvda 
sr:787b0874-8e8b-e7d8-8ba9-74f55ff2ea16 
vdi:cae30e9b-ebd4-4450-8ce0-9f4035ca62f1 superstate:detached
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4392||dummytaskhelper] 
task VDI.destroy D:11fda1a1522a created by task R:eb73ba917080
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4392|VDI.destroy 
D:11fda1a1522a|sm] SM nfs vdi_delete 
sr=OpaqueRef:521231d6-df3b-790b-1e22-b344a83d9d39 
vdi=OpaqueRef:0b132ca6-b8e7-c11f-6fff-dec08432cafe
Dec 30 06:51:39 g6xentest xapi: [ info|g6xentest|4392|sm_exec 
D:4ba93da78635|xapi] Session.create 
trackid=7bce8892b6f84f2fe7dfbce532468abf pool=false uname= originator= 
is_local_superuser=true auth_user_sid= 
parent=trackid=9834f5af41c964e225f24279aefe4e49
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4392|sm_exec 
D:4ba93da78635|mscgen] xapi=>xapi [label="session.get_uuid"];
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4393 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:session.get_uuid 
D:3add1a864c11 created by task D:4ba93da78635
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4392|sm_exec 
D:4ba93da78635|mscgen] smapiv2=>smapiv1 [label="vdi_delete"];
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4394 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:host.get_other_config 
D:6242d3ea51db created by task D:11fda1a1522a
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4395 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:SR.get_sm_config 
D:a271bf3e8ab6 created by task D:11fda1a1522a
Dec 30 06:51:39 g6xentest SM: [5330] lock: acquired 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/sr
Dec 30 06:51:39 g6xentest SM: [5330] ['/usr/sbin/td-util', 'query', 
'vhd', '-vpf', 
'/var/run/sr-mount/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/cae30e9b-ebd4-4450-8ce0-9f4035ca62f1.vhd']
Dec 30 06:51:39 g6xentest SM: [5330]   pread SUCCESS
Dec 30 06:51:39 g6xentest SM: [5330] vdi_delete {'sr_uuid': 
'787b0874-8e8b-e7d8-8ba9-74f55ff2ea16', 'subtask_of': 
'DummyRef:|11fda1a1-522a-5c2e-fccc-c4b4a3a60600|VDI.destroy', 'vdi_ref': 
'OpaqueRef:0b132ca6-b8e7-c11f-6fff-dec08432cafe', 'vdi_on_boot': 
'persist', 'args': [], 'vdi_location': 
'cae30e9b-ebd4-4450-8ce0-9f4035ca62f1', 'host_ref': 
'OpaqueRef:bc001d57-65ce-8b2b-74b4-cd71976272c0', 'session_ref': 
'OpaqueRef:3a15ce97-0316-f04e-e93f-a7726f563e51', 'device_config': 
{'SRmaster': 'true', 'serverpath': '/mnt/zbiornik/testvol/', 'server': 
'127.0.0.1'}, 'command': 'vdi_delete', 'vdi_allow_caching': 'false', 
'sr_ref': 'OpaqueRef:521231d6-df3b-790b-1e22-b344a83d9d39', 'vdi_uuid': 
'cae30e9b-ebd4-4450-8ce0-9f4035ca62f1'}
Dec 30 06:51:39 g6xentest SM: [5330] ['/usr/bin/vhd-util', 'set', 
'--debug', '-n', 
'/var/run/sr-mount/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/cae30e9b-ebd4-4450-8ce0-9f4035ca62f1.vhd', 
'-f', 'hidden', '-v', '1']
Dec 30 06:51:39 g6xentest SM: [5330]   pread SUCCESS
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4396 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:VDI.get_by_uuid 
D:559f707a1835 created by task D:11fda1a1522a
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4397 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:VDI.db_forget 
D:7294fcb274ef created by task D:11fda1a1522a
Dec 30 06:51:39 g6xentest xapi: [ info|g6xentest|4397 UNIX 
/var/lib/xcp/xapi|dispatch:VDI.db_forget D:7294fcb274ef|taskhelper] task 
VDI.db_forget R:721552054cc8 (uuid:b202374a-148c-5d3a-f816-26cee5011830) 
created (trackid=7bce8892b6f84f2fe7dfbce532468abf) by task D:11fda1a1522a
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4397 UNIX 
/var/lib/xcp/xapi|VDI.db_forget R:721552054cc8|xapi] db_forget 
uuid=cae30e9b-ebd4-4450-8ce0-9f4035ca62f1
Dec 30 06:51:39 g6xentest xapi: 
[20141230T05:51:39.307Z|audit|g6xentest|4397 UNIX 
/var/lib/xcp/xapi|VDI.db_forget R:721552054cc8|audit] 
('trackid=7bce8892b6f84f2fe7dfbce532468abf' 'LOCAL_SUPERUSER' 
'__sm__backend' 'ALLOWED' 'OK' 'API' 'VDI.db_forget' (('vdi' '' '' 
'OpaqueRef:0b132ca6-b8e7-c11f-6fff-dec08432cafe')))
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4398 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task 
dispatch:SR.get_virtual_allocation D:0a63c6106fc9 created by task 
D:11fda1a1522a
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4399 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:SR.get_by_uuid 
D:7254c48a6b00 created by task D:11fda1a1522a
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4400 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task 
dispatch:SR.set_virtual_allocation D:1e78e2fea3dc created by task 
D:11fda1a1522a
Dec 30 06:51:39 g6xentest xapi: 
[20141230T05:51:39.341Z|audit|g6xentest|4400 UNIX 
/var/lib/xcp/xapi|SR.set_virtual_allocation D:ef31ec008c45|audit] 
('trackid=7bce8892b6f84f2fe7dfbce532468abf' 'LOCAL_SUPERUSER' 
'__sm__backend' 'ALLOWED' 'OK' 'API' 'SR.set_virtual_allocation' 
(('self' 'local nfs' '787b0874-8e8b-e7d8-8ba9-74f55ff2ea16' 
'OpaqueRef:521231d6-df3b-790b-1e22-b344a83d9d39')))
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4401 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:SR.set_physical_size 
D:eeb42cfa9aeb created by task D:11fda1a1522a
Dec 30 06:51:39 g6xentest xapi: 
[20141230T05:51:39.345Z|audit|g6xentest|4401 UNIX 
/var/lib/xcp/xapi|SR.set_physical_size D:b58348f5367a|audit] 
('trackid=7bce8892b6f84f2fe7dfbce532468abf' 'LOCAL_SUPERUSER' 
'__sm__backend' 'ALLOWED' 'OK' 'API' 'SR.set_physical_size' (('self' 
'local nfs' '787b0874-8e8b-e7d8-8ba9-74f55ff2ea16' 
'OpaqueRef:521231d6-df3b-790b-1e22-b344a83d9d39')))
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4402 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task 
dispatch:SR.set_physical_utilisation D:c50ae404e957 created by task 
D:11fda1a1522a
Dec 30 06:51:39 g6xentest xapi: 
[20141230T05:51:39.349Z|audit|g6xentest|4402 UNIX 
/var/lib/xcp/xapi|SR.set_physical_utilisation D:f9015de20301|audit] 
('trackid=7bce8892b6f84f2fe7dfbce532468abf' 'LOCAL_SUPERUSER' 
'__sm__backend' 'ALLOWED' 'OK' 'API' 'SR.set_physical_utilisation' 
(('self' 'local nfs' '787b0874-8e8b-e7d8-8ba9-74f55ff2ea16' 
'OpaqueRef:521231d6-df3b-790b-1e22-b344a83d9d39')))
Dec 30 06:51:39 g6xentest SM: [5330] lock: tried lock 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/running, acquired: 
True (exists: True)
Dec 30 06:51:39 g6xentest SM: [5330] lock: released 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/running
Dec 30 06:51:39 g6xentest SM: [5330] Kicking GC
Dec 30 06:51:39 g6xentest SMGC: [5330] === SR 
787b0874-8e8b-e7d8-8ba9-74f55ff2ea16: gc ===
Dec 30 06:51:39 g6xentest SMGC: [5342] Will finish as PID [5343]
Dec 30 06:51:39 g6xentest SMGC: [5330] New PID [5342]
Dec 30 06:51:39 g6xentest SM: [5330] lock: closed 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/running
Dec 30 06:51:39 g6xentest SM: [5330] lock: released 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/sr
Dec 30 06:51:39 g6xentest SM: [5330] lock: closed 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/sr
Dec 30 06:51:39 g6xentest xapi: [ info|g6xentest|4403 UNIX 
/var/lib/xcp/xapi|session.login_with_password D:044f99cccf96|xapi] 
Session.create trackid=875c3e601a042db2714f9fb83af9fcd7 pool=false 
uname=root originator= is_local_superuser=true auth_user_sid= 
parent=trackid=9834f5af41c964e225f24279aefe4e49
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4403 UNIX 
/var/lib/xcp/xapi|session.login_with_password D:044f99cccf96|mscgen] 
xapi=>xapi [label="session.get_uuid"];
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4404 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:session.get_uuid 
D:a8da81d425e8 created by task D:044f99cccf96
Dec 30 06:51:39 g6xentest SMGC: [5343] Found 0 cache files
Dec 30 06:51:39 g6xentest xapi: [ info|g6xentest|4392|sm_exec 
D:4ba93da78635|xapi] Session.destroy 
trackid=7bce8892b6f84f2fe7dfbce532468abf
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4387 UNIX 
/var/lib/xcp/xapi|VDI.destroy R:eb73ba917080|xapi] Unmarking SR after 
VDI.destroy (task=OpaqueRef:eb73ba91-7080-dc74-8ec1-beca0146bf0d)
Dec 30 06:51:39 g6xentest SM: [5343] lock: tried lock 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/sr, acquired: True 
(exists: True)
Dec 30 06:51:39 g6xentest xapi: 
[20141230T05:51:39.457Z|audit|g6xentest|4387 UNIX 
/var/lib/xcp/xapi|VDI.destroy R:eb73ba917080|audit] 
('trackid=ef3cd4745f1b43b77a99acfe3afbae8f' 'LOCAL_SUPERUSER' 
'OpaqueRef:bc001d57-65ce-8b2b-74b4-cd71976272c0' 'ALLOWED' 'OK' 'API' 
'VDI.destroy' (('self' 'XOA System' 
'cae30e9b-ebd4-4450-8ce0-9f4035ca62f1' 
'OpaqueRef:0b132ca6-b8e7-c11f-6fff-dec08432cafe')))
Dec 30 06:51:39 g6xentest SM: [5343] ['/usr/bin/vhd-util', 'scan', '-f', 
'-c', '-m', '/var/run/sr-mount/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/*.vhd']
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET 
:::80|VM.import (cleanup) R:09dd9c768450|mscgen] xapi=>xapi 
[label="session.logout"];
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4415 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:session.logout 
D:ed15a846833e created by task R:09dd9c768450
Dec 30 06:51:39 g6xentest xapi: [ info|g6xentest|4415 UNIX 
/var/lib/xcp/xapi|session.logout D:294449be0a58|xapi] Session.destroy 
trackid=ef3cd4745f1b43b77a99acfe3afbae8f
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET :::80|VM 
import R:dbdb0ee5ae16|xapi] Raised at file \"import.ml\", line 1525, 
characters 20-21\nCalled from file \"lib/pervasiveext.ml\", line 22, 
characters 2-9\n
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET :::80|VM 
import R:dbdb0ee5ae16|import] Closing pipes
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4306||xapi] Raised by 
primitive operation at file \"unix.ml\", line 252, characters 
7-34\nCalled from file \"lib/unixext.ml\", line 222, characters 
13-34\nCalled from file \"import.ml\", line 1273, characters 
12-53\nCalled from file \"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:39 g6xentest forkexecd: [error|g6xentest|0||forkexecd] 5217 
(/bin/nice -n 19 /usr/bin/ionice -c 3 /bin/gzip --decompress --stdout 
--force) exitted with code 1
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4306||xapi] Raised at 
file \"pervasives.ml\", line 20, characters 22-33\nCalled from file 
\"lib/pervasiveext.ml\", line 26, characters 4-14\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4306||xapi] Raised at 
file \"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from 
file \"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET :::80|VM 
import R:dbdb0ee5ae16|backtrace] Raised at file \"import.ml\", line 
1525, characters 20-21\nCalled from file \"lib/pervasiveext.ml\", line 
22, characters 2-9\nRe-raised at file \"lib/pervasiveext.ml\", line 26, 
characters 22-25\nCalled from file \"import.ml\", line 1459, characters 
9-1023\nRe-raised at file \"import.ml\", line 1554, characters 
14-15\nCalled from file \"server_helpers.ml\", line 72, characters 11-23\n
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET :::80|VM 
import R:dbdb0ee5ae16|dispatcher] Server_helpers.exec exception_handler: 
Got exception SR_BACKEND_FAILURE: [ non-zero exit; ; Traceback (most 
recent call last):#012  File "/opt/xensource/sm/NFSSR", line 278, in 
<module>#012 SRCommand.run(NFSSR, DRIVER_INFO)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 344, in run#012    ret = 
cmd.run(sr)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 110, in 
run#012    return self._run_locked(sr)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 159, in _run_locked#012    rv = 
self._run(sr, target)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 
263, in _run#012    writable, caching_params)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 1486, in activate#012    if 
self._activate_locked(sr_uuid, vdi_uuid, options):#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 83, in wrapper#012    ret = op(self, 
*args)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1522, in 
_activate_locked#012    dev_path = self._activate(sr_uuid, vdi_uuid, 
options)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1560, in 
_activate#012 self._get_pool_config(sr_uuid).get("mem-pool-size"))#012  
File "/usr/lib/xapi/sm/blktap2.py", line 1243, in _tap_activate#012 
tapdisk = Tapdisk.find_by_path(phy_path)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 690, in find_by_path#012 return 
cls.find(path=path)#012  File "/usr/lib/xapi/sm/blktap2.py", line 678, 
in find#012    found = list(cls.list(**args))#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 653, in list#012    for row in 
TapCtl.list(**args):#012  File "/usr/lib/xapi/sm/blktap2.py", line 118, 
in loop#012    return f(*__t, **__d)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 348, in list#012    if e.status in 
transient:#012  File "/usr/lib/xapi/sm/blktap2.py", line 162, in 
__getattr__#012    return object.__getattribute__(self, 
key)#012AttributeError: 'CommandFailure' object has no attribute 
'status'#012 ]
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET :::80|VM 
import R:dbdb0ee5ae16|dispatcher] Raised at file \"import.ml\", line 
1525, characters 20-21\nCalled from file \"lib/pervasiveext.ml\", line 
22, characters 2-9\nRe-raised at file \"lib/pervasiveext.ml\", line 26, 
characters 22-25\nCalled from file \"import.ml\", line 1459, characters 
9-1023\nRe-raised at file \"import.ml\", line 1554, characters 
14-15\nCalled from file \"server_helpers.ml\", line 72, characters 11-23\n
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET :::80|VM 
import R:dbdb0ee5ae16|backtrace] Raised at file \"import.ml\", line 
1525, characters 20-21\nCalled from file \"lib/pervasiveext.ml\", line 
22, characters 2-9\nRe-raised at file \"lib/pervasiveext.ml\", line 26, 
characters 22-25\nCalled from file \"import.ml\", line 1459, characters 
9-1023\nRe-raised at file \"import.ml\", line 1554, characters 
14-15\nCalled from file \"server_helpers.ml\", line 72, characters 11-23\n
Dec 30 06:51:39 g6xentest SM: [5343]   pread SUCCESS
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET :::80|VM 
import R:dbdb0ee5ae16|xapi] Raised at file \"server_helpers.ml\", line 
90, characters 14-15\nCalled from file \"lib/pervasiveext.ml\", line 22, 
characters 2-9\n
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET :::80|VM 
import R:dbdb0ee5ae16|taskhelper] forwarded task destroyed
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET 
:::80|VM.import D:aa0a28febf06|xapi] Raised at file 
\"server_helpers.ml\", line 90, characters 14-15\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\nRe-raised at file 
\"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from file 
\"lib/debug.ml\", line 57, characters 17-20\nRe-raised at file 
\"lib/debug.ml\", line 62, characters 10-11\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET 
:::80|VM.import D:aa0a28febf06|xapi] Raised at file 
\"server_helpers.ml\", line 90, characters 14-15\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\nRe-raised at file 
\"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from file 
\"lib/debug.ml\", line 57, characters 17-20\nRe-raised at file 
\"lib/debug.ml\", line 62, characters 10-11\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\nRe-raised at file 
\"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET 
:::80|VM.import D:aa0a28febf06|xapi] Raised at file 
\"server_helpers.ml\", line 90, characters 14-15\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\nRe-raised at file 
\"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from file 
\"lib/debug.ml\", line 57, characters 17-20\nRe-raised at file 
\"lib/debug.ml\", line 62, characters 10-11\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\nRe-raised at file 
\"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\nRe-raised at file 
\"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from file 
\"xapi_http.ml\", line 193, characters 4-810\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET 
:::80|VM.import D:aa0a28febf06|mscgen] xapi=>xapi [label="session.logout"];
Dec 30 06:51:39 g6xentest xapi: 
[20141230T05:51:39.615Z|audit|g6xentest|4300 UNIX 
/var/lib/xcp/xapi|event.unregister D:2bfc995fc493|audit] 
('trackid=09a9f582057ad27816e43a4d3c18bf1b' 'LOCAL_SUPERUSER' 'root' 
'ALLOWED' 'OK' 'API' 'event.unregister' ())
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4416 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:session.logout 
D:b676c5227f87 created by task D:aa0a28febf06
Dec 30 06:51:39 g6xentest xapi: [ info|g6xentest|4416 UNIX 
/var/lib/xcp/xapi|session.logout D:1dc7a29a8cdd|xapi] Session.destroy 
trackid=ca1e0e02f1c6f9fcc980368e710d8c8b
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET 
:::80|VM.import D:aa0a28febf06|backtrace] Raised at file 
\"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from file 
\"import.ml\", line 1387, characters 20-1023\nCalled from file 
\"server_helpers.ml\", line 72, characters 11-23\n
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET 
:::80|VM.import D:aa0a28febf06|dispatcher] Server_helpers.exec 
exception_handler: Got exception SR_BACKEND_FAILURE: [ non-zero exit; ; 
Traceback (most recent call last):#012  File "/opt/xensource/sm/NFSSR", 
line 278, in <module>#012 SRCommand.run(NFSSR, DRIVER_INFO)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 344, in run#012    ret = 
cmd.run(sr)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 110, in 
run#012    return self._run_locked(sr)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 159, in _run_locked#012    rv = 
self._run(sr, target)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 
263, in _run#012    writable, caching_params)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 1486, in activate#012    if 
self._activate_locked(sr_uuid, vdi_uuid, options):#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 83, in wrapper#012    ret = op(self, 
*args)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1522, in 
_activate_locked#012    dev_path = self._activate(sr_uuid, vdi_uuid, 
options)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1560, in 
_activate#012 self._get_pool_config(sr_uuid).get("mem-pool-size"))#012  
File "/usr/lib/xapi/sm/blktap2.py", line 1243, in _tap_activate#012 
tapdisk = Tapdisk.find_by_path(phy_path)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 690, in find_by_path#012 return 
cls.find(path=path)#012  File "/usr/lib/xapi/sm/blktap2.py", line 678, 
in find#012    found = list(cls.list(**args))#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 653, in list#012    for row in 
TapCtl.list(**args):#012  File "/usr/lib/xapi/sm/blktap2.py", line 118, 
in loop#012    return f(*__t, **__d)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 348, in list#012    if e.status in 
transient:#012  File "/usr/lib/xapi/sm/blktap2.py", line 162, in 
__getattr__#012    return object.__getattribute__(self, 
key)#012AttributeError: 'CommandFailure' object has no attribute 
'status'#012 ]
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET 
:::80|VM.import D:aa0a28febf06|dispatcher] Raised at file 
\"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from file 
\"import.ml\", line 1387, characters 20-1023\nCalled from file 
\"server_helpers.ml\", line 72, characters 11-23\n
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET 
:::80|VM.import D:aa0a28febf06|backtrace] Raised at file 
\"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from file 
\"import.ml\", line 1387, characters 20-1023\nCalled from file 
\"server_helpers.ml\", line 72, characters 11-23\n
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET 
:::80|VM.import D:aa0a28febf06|xapi] Raised at file 
\"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from file 
\"import.ml\", line 1387, characters 20-1023\nCalled from file 
\"server_helpers.ml\", line 72, characters 11-23\nRe-raised at file 
\"server_helpers.ml\", line 90, characters 14-15\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET :::80||xapi] 
Raised at file \"lib/pervasiveext.ml\", line 26, characters 
22-25\nCalled from file \"import.ml\", line 1387, characters 
20-1023\nCalled from file \"server_helpers.ml\", line 72, characters 
11-23\nRe-raised at file \"server_helpers.ml\", line 90, characters 
14-15\nCalled from file \"lib/pervasiveext.ml\", line 22, characters 
2-9\nRe-raised at file \"lib/pervasiveext.ml\", line 26, characters 
22-25\nCalled from file \"lib/debug.ml\", line 57, characters 
17-20\nRe-raised at file \"lib/debug.ml\", line 62, characters 
10-11\nCalled from file \"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:39 g6xentest xapi: [error|g6xentest|4303 INET :::80||xapi] 
Unhandled Api_errors.Server_error(SR_BACKEND_FAILURE, [ non-zero exit; ; 
Traceback (most recent call last):#012  File "/opt/xensource/sm/NFSSR", 
line 278, in <module>#012 SRCommand.run(NFSSR, DRIVER_INFO)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 344, in run#012    ret = 
cmd.run(sr)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 110, in 
run#012    return self._run_locked(sr)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 159, in _run_locked#012    rv = 
self._run(sr, target)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 
263, in _run#012    writable, caching_params)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 1486, in activate#012    if 
self._activate_locked(sr_uuid, vdi_uuid, options):#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 83, in wrapper#012    ret = op(self, 
*args)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1522, in 
_activate_locked#012    dev_path = self._activate(sr_uuid, vdi_uuid, 
options)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1560, in 
_activate#012 self._get_pool_config(sr_uuid).get("mem-pool-size"))#012  
File "/usr/lib/xapi/sm/blktap2.py", line 1243, in _tap_activate#012 
tapdisk = Tapdisk.find_by_path(phy_path)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 690, in find_by_path#012 return 
cls.find(path=path)#012  File "/usr/lib/xapi/sm/blktap2.py", line 678, 
in find#012    found = list(cls.list(**args))#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 653, in list#012    for row in 
TapCtl.list(**args):#012  File "/usr/lib/xapi/sm/blktap2.py", line 118, 
in loop#012    return f(*__t, **__d)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 348, in list#012    if e.status in 
transient:#012  File "/usr/lib/xapi/sm/blktap2.py", line 162, in 
__getattr__#012    return object.__getattribute__(self, 
key)#012AttributeError: 'CommandFailure' object has no attribute 
'status'#012 ])
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET 
:::80||backtrace] Raised at file \"lib/pervasiveext.ml\", line 26, 
characters 22-25\nCalled from file \"import.ml\", line 1387, characters 
20-1023\nCalled from file \"server_helpers.ml\", line 72, characters 
11-23\nRe-raised at file \"server_helpers.ml\", line 90, characters 
14-15\nCalled from file \"lib/pervasiveext.ml\", line 22, characters 
2-9\nRe-raised at file \"lib/pervasiveext.ml\", line 26, characters 
22-25\nCalled from file \"lib/debug.ml\", line 57, characters 
17-20\nRe-raised at file \"lib/debug.ml\", line 62, characters 
10-11\nCalled from file \"lib/pervasiveext.ml\", line 22, characters 
2-9\nRe-raised at file \"lib/pervasiveext.ml\", line 26, characters 
22-25\nCalled from file \"xapi_http.ml\", line 295, characters 4-27\n
Dec 30 06:51:39 g6xentest SMGC: [5343] SR 787b ('local nfs') (1 VDIs in 
1 VHD trees):
Dec 30 06:51:39 g6xentest SMGC: [5343] *cae30e9b(8.000G/19.000K)
Dec 30 06:51:39 g6xentest SMGC: [5343]
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4300 UNIX 
/var/lib/xcp/xapi||cli] client-side reports failure
Dec 30 06:51:39 g6xentest SM: [5343] lock: released 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/sr
Dec 30 06:51:39 g6xentest SM: [5343] lock: tried lock 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/running, acquired: 
True (exists: True)
Dec 30 06:51:39 g6xentest SM: [5343] lock: tried lock 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/sr, acquired: True 
(exists: True)
Dec 30 06:51:39 g6xentest SM: [5343] ['/usr/bin/vhd-util', 'scan', '-f', 
'-c', '-m', '/var/run/sr-mount/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/*.vhd']
Dec 30 06:51:39 g6xentest SM: [5343]   pread SUCCESS
Dec 30 06:51:39 g6xentest SMGC: [5343] SR 787b ('local nfs') (1 VDIs in 
1 VHD trees): no changes
Dec 30 06:51:39 g6xentest SM: [5343] lock: released 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/sr
Dec 30 06:51:39 g6xentest SMGC: [5343] Found 1 VDIs for deletion:
Dec 30 06:51:39 g6xentest SMGC: [5343]   *cae30e9b(8.000G/19.000K)
Dec 30 06:51:39 g6xentest SMGC: [5343] Deleting unlinked VDI 
*cae30e9b(8.000G/19.000K)
Dec 30 06:51:39 g6xentest SM: [5343] lock: tried lock 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/sr, acquired: True 
(exists: True)
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4421 UNIX 
/var/lib/xcp/xapi|VDI.get_by_uuid D:e5402c78336c|backtrace] Raised at 
file \"db_cache_impl.ml\", line 198, characters 16-55\nCalled from file 
\"db_actions.ml\", line 13330, characters 27-61\nCalled from file 
\"rbac.ml\", line 227, characters 16-23\nRe-raised at file \"rbac.ml\", 
line 236, characters 10-15\nCalled from file \"server_helpers.ml\", line 
72, characters 11-23\n
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4421 UNIX 
/var/lib/xcp/xapi|VDI.get_by_uuid D:e5402c78336c|dispatcher] 
Server_helpers.exec exception_handler: Got exception UUID_INVALID: [ 
VDI; cae30e9b-ebd4-4450-8ce0-9f4035ca62f1 ]
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4421 UNIX 
/var/lib/xcp/xapi|VDI.get_by_uuid D:e5402c78336c|dispatcher] Raised at 
file \"db_cache_impl.ml\", line 198, characters 16-55\nCalled from file 
\"db_actions.ml\", line 13330, characters 27-61\nCalled from file 
\"rbac.ml\", line 227, characters 16-23\nRe-raised at file \"rbac.ml\", 
line 236, characters 10-15\nCalled from file \"server_helpers.ml\", line 
72, characters 11-23\n
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4421 UNIX 
/var/lib/xcp/xapi|VDI.get_by_uuid D:e5402c78336c|backtrace] Raised at 
file \"db_cache_impl.ml\", line 198, characters 16-55\nCalled from file 
\"db_actions.ml\", line 13330, characters 27-61\nCalled from file 
\"rbac.ml\", line 227, characters 16-23\nRe-raised at file \"rbac.ml\", 
line 236, characters 10-15\nCalled from file \"server_helpers.ml\", line 
72, characters 11-23\n
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4421 UNIX 
/var/lib/xcp/xapi|VDI.get_by_uuid D:e5402c78336c|xapi] Raised at file 
\"db_cache_impl.ml\", line 198, characters 16-55\nCalled from file 
\"db_actions.ml\", line 13330, characters 27-61\nCalled from file 
\"rbac.ml\", line 227, characters 16-23\nRe-raised at file \"rbac.ml\", 
line 236, characters 10-15\nCalled from file \"server_helpers.ml\", line 
72, characters 11-23\nRe-raised at file \"server_helpers.ml\", line 90, 
characters 14-15\nCalled from file \"lib/pervasiveext.ml\", line 22, 
characters 2-9\n
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4421 UNIX 
/var/lib/xcp/xapi|dispatch:VDI.get_by_uuid D:5a5b19c8596f|xapi] Raised 
at file \"db_cache_impl.ml\", line 198, characters 16-55\nCalled from 
file \"db_actions.ml\", line 13330, characters 27-61\nCalled from file 
\"rbac.ml\", line 227, characters 16-23\nRe-raised at file \"rbac.ml\", 
line 236, characters 10-15\nCalled from file \"server_helpers.ml\", line 
72, characters 11-23\nRe-raised at file \"server_helpers.ml\", line 90, 
characters 14-15\nCalled from file \"lib/pervasiveext.ml\", line 22, 
characters 2-9\nRe-raised at file \"lib/pervasiveext.ml\", line 26, 
characters 22-25\nCalled from file \"lib/debug.ml\", line 57, characters 
17-20\nRe-raised at file \"lib/debug.ml\", line 62, characters 
10-11\nCalled from file \"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4421 UNIX 
/var/lib/xcp/xapi|dispatch:VDI.get_by_uuid D:5a5b19c8596f|backtrace] 
Raised at file \"db_cache_impl.ml\", line 198, characters 16-55\nCalled 
from file \"db_actions.ml\", line 13330, characters 27-61\nCalled from 
file \"rbac.ml\", line 227, characters 16-23\nRe-raised at file 
\"rbac.ml\", line 236, characters 10-15\nCalled from file 
\"server_helpers.ml\", line 72, characters 11-23\nRe-raised at file 
\"server_helpers.ml\", line 90, characters 14-15\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\nRe-raised at file 
\"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from file 
\"lib/debug.ml\", line 57, characters 17-20\nRe-raised at file 
\"lib/debug.ml\", line 62, characters 10-11\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\nRe-raised at file 
\"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from file 
\"server_helpers.ml\", line 136, characters 10-106\nCalled from file 
\"server.ml\", line 22402, characters 23-150\nCalled from file 
\"server_helpers.ml\", line 115, characters 4-7\n
Dec 30 06:51:39 g6xentest SM: [5343] lock: released 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/sr
Dec 30 06:51:39 g6xentest SM: [5343] lock: unlinking lock file 
/var/lock/sm/cae30e9b-ebd4-4450-8ce0-9f4035ca62f1/vdi
Dec 30 06:51:39 g6xentest SM: [5343] lock: removing lock dir 
/var/lock/sm/cae30e9b-ebd4-4450-8ce0-9f4035ca62f1
Dec 30 06:51:39 g6xentest SMGC: [5343] Starting asynch srUpdate for SR 
787b0874-8e8b-e7d8-8ba9-74f55ff2ea16
Dec 30 06:51:39 g6xentest xapi: [ info|g6xentest|4424|Async.SR.update 
R:8bf29b029ab9|dispatcher] spawning a new thread to handle the current 
task (trackid=875c3e601a042db2714f9fb83af9fcd7)
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4424|Async.SR.update 
R:8bf29b029ab9|audit] SR.update: SR = 
'787b0874-8e8b-e7d8-8ba9-74f55ff2ea16 (local nfs)'
Dec 30 06:51:39 g6xentest xapi: [ info|g6xentest|4424|Async.SR.update 
R:8bf29b029ab9|storage_impl] SR.stat 
dbg:OpaqueRef:8bf29b02-9ab9-3f8e-7f95-471dc322cf9f 
sr:787b0874-8e8b-e7d8-8ba9-74f55ff2ea16
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4426||dummytaskhelper] 
task SR.stat D:04483281650a created by task R:8bf29b029ab9
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4426|SR.stat 
D:04483281650a|sm] SM nfs sr_update 
sr=OpaqueRef:521231d6-df3b-790b-1e22-b344a83d9d39
Dec 30 06:51:39 g6xentest xapi: [ info|g6xentest|4426|sm_exec 
D:de69815603af|xapi] Session.create 
trackid=c1839615d7fc71e0107d18c1c4397bdf pool=false uname= originator= 
is_local_superuser=true auth_user_sid= 
parent=trackid=9834f5af41c964e225f24279aefe4e49
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4426|sm_exec 
D:de69815603af|mscgen] xapi=>xapi [label="session.get_uuid"];
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4427 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:session.get_uuid 
D:93d48568da8c created by task D:de69815603af
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4426|sm_exec 
D:de69815603af|mscgen] smapiv2=>smapiv1 [label="sr_update"];
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4428 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:host.get_other_config 
D:bcccb75cca6c created by task D:04483281650a
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4429 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:SR.get_sm_config 
D:f0493eefc730 created by task D:04483281650a
Dec 30 06:51:39 g6xentest SM: [5373] sr_update {'sr_uuid': 
'787b0874-8e8b-e7d8-8ba9-74f55ff2ea16', 'subtask_of': 
'DummyRef:|04483281-650a-7f1b-5e03-2a8cac209cf5|SR.stat', 'args': [], 
'host_ref': 'OpaqueRef:bc001d57-65ce-8b2b-74b4-cd71976272c0', 
'session_ref': 'OpaqueRef:375f5540-70a4-4040-4b08-fe070fc28285', 
'device_config': {'SRmaster': 'true', 'serverpath': 
'/mnt/zbiornik/testvol/', 'server': '127.0.0.1'}, 'command': 
'sr_update', 'sr_ref': 'OpaqueRef:521231d6-df3b-790b-1e22-b344a83d9d39'}
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4430 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task 
dispatch:SR.get_virtual_allocation D:d031ec9841d0 created by task 
D:04483281650a
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4431 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:SR.get_by_uuid 
D:e101c6ef40f7 created by task D:04483281650a
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4432 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task 
dispatch:SR.set_virtual_allocation D:53c96ed79ea0 created by task 
D:04483281650a
Dec 30 06:51:39 g6xentest xapi: 
[20141230T05:51:39.960Z|audit|g6xentest|4432 UNIX 
/var/lib/xcp/xapi|SR.set_virtual_allocation D:c63db6de10a8|audit] 
('trackid=c1839615d7fc71e0107d18c1c4397bdf' 'LOCAL_SUPERUSER' 
'__sm__backend' 'ALLOWED' 'OK' 'API' 'SR.set_virtual_allocation' 
(('self' 'local nfs' '787b0874-8e8b-e7d8-8ba9-74f55ff2ea16' 
'OpaqueRef:521231d6-df3b-790b-1e22-b344a83d9d39')))
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4433 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:SR.set_physical_size 
D:cc05c69dd818 created by task D:04483281650a
Dec 30 06:51:39 g6xentest xapi: 
[20141230T05:51:39.964Z|audit|g6xentest|4433 UNIX 
/var/lib/xcp/xapi|SR.set_physical_size D:25e58ef3eb06|audit] 
('trackid=c1839615d7fc71e0107d18c1c4397bdf' 'LOCAL_SUPERUSER' 
'__sm__backend' 'ALLOWED' 'OK' 'API' 'SR.set_physical_size' (('self' 
'local nfs' '787b0874-8e8b-e7d8-8ba9-74f55ff2ea16' 
'OpaqueRef:521231d6-df3b-790b-1e22-b344a83d9d39')))
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4434 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task 
dispatch:SR.set_physical_utilisation D:049eb44a11d2 created by task 
D:04483281650a
Dec 30 06:51:39 g6xentest xapi: 
[20141230T05:51:39.970Z|audit|g6xentest|4434 UNIX 
/var/lib/xcp/xapi|SR.set_physical_utilisation D:ae38bbd06d6d|audit] 
('trackid=c1839615d7fc71e0107d18c1c4397bdf' 'LOCAL_SUPERUSER' 
'__sm__backend' 'ALLOWED' 'OK' 'API' 'SR.set_physical_utilisation' 
(('self' 'local nfs' '787b0874-8e8b-e7d8-8ba9-74f55ff2ea16' 
'OpaqueRef:521231d6-df3b-790b-1e22-b344a83d9d39')))
Dec 30 06:51:39 g6xentest SM: [5373] lock: closed 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/sr
Dec 30 06:51:39 g6xentest xapi: [ info|g6xentest|4426|sm_exec 
D:de69815603af|xapi] Session.destroy 
trackid=c1839615d7fc71e0107d18c1c4397bdf
Dec 30 06:51:39 g6xentest xapi: 
[20141230T05:51:39.991Z|audit|g6xentest|4424|Async.SR.update 
R:8bf29b029ab9|audit] ('trackid=875c3e601a042db2714f9fb83af9fcd7' 
'LOCAL_SUPERUSER' 'root' 'ALLOWED' 'OK' 'API' 'SR.update' (('sr' 'local 
nfs' '787b0874-8e8b-e7d8-8ba9-74f55ff2ea16' 
'OpaqueRef:521231d6-df3b-790b-1e22-b344a83d9d39')))
Dec 30 06:51:40 g6xentest xapi: [debug|g6xentest|4300 UNIX 
/var/lib/xcp/xapi||xapi] Raised at file \"cli_util.ml\", line 134, 
characters 10-67\nCalled from file \"lib/pervasiveext.ml\", line 22, 
characters 2-9\n
Dec 30 06:51:40 g6xentest xapi: 
[20141230T05:51:40.644Z|audit|g6xentest|4300 UNIX 
/var/lib/xcp/xapi|task.destroy D:afc218562a1b|audit] 
('trackid=09a9f582057ad27816e43a4d3c18bf1b' 'LOCAL_SUPERUSER' 'root' 
'ALLOWED' 'OK' 'API' 'task.destroy' (('self' 'VM import' 
'70859ad6-0420-baa8-17ac-759cb01acde3' 
'OpaqueRef:dbdb0ee5-ae16-0f3d-0c0e-dcaf23a52a88')))
Dec 30 06:51:40 g6xentest xapi: [debug|g6xentest|4300 UNIX 
/var/lib/xcp/xapi||xapi] Raised at file \"lib/pervasiveext.ml\", line 
26, characters 22-25\nCalled from file \"cli_operations.ml\", line 3283, 
characters 18-111\nCalled from file \"xapi_cli.ml\", line 119, 
characters 18-58\nCalled from file \"lib/pervasiveext.ml\", line 22, 
characters 2-9\n
Dec 30 06:51:40 g6xentest xapi: [ info|g6xentest|4300 UNIX 
/var/lib/xcp/xapi|session.logout D:a74027f037bd|xapi] Session.destroy 
trackid=09a9f582057ad27816e43a4d3c18bf1b
Dec 30 06:51:40 g6xentest xapi: [debug|g6xentest|4300 UNIX 
/var/lib/xcp/xapi||backtrace] Raised at file \"lib/pervasiveext.ml\", 
line 26, characters 22-25\nCalled from file \"xapi_cli.ml\", line 118, 
characters 2-139\nCalled from file \"xapi_cli.ml\", line 221, characters 
7-44\nCalled from file \"xapi_cli.ml\", line 273, characters 4-23\n
Dec 30 06:51:40 g6xentest xapi: [debug|g6xentest|4300 UNIX 
/var/lib/xcp/xapi||cli] Xapi_cli.exception_handler: Got exception 
SR_BACKEND_FAILURE: [ non-zero exit; ; Traceback (most recent call 
last):#012  File "/opt/xensource/sm/NFSSR", line 278, in <module>#012    
SRCommand.run(NFSSR, DRIVER_INFO)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 344, in run#012    ret = 
cmd.run(sr)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 110, in 
run#012    return self._run_locked(sr)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 159, in _run_locked#012    rv = 
self._run(sr, target)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 
263, in _run#012    writable, caching_params)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 1486, in activate#012    if 
self._activate_locked(sr_uuid, vdi_uuid, options):#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 83, in wrapper#012    ret = op(self, 
*args)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1522, in 
_activate_locked#012    dev_path = self._activate(sr_uuid, vdi_uuid, 
options)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1560, in 
_activate#012 self._get_pool_config(sr_uuid).get("mem-pool-size"))#012  
File "/usr/lib/xapi/sm/blktap2.py", line 1243, in _tap_activate#012 
tapdisk = Tapdisk.find_by_path(phy_path)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 690, in find_by_path#012 return 
cls.find(path=path)#012  File "/usr/lib/xapi/sm/blktap2.py", line 678, 
in find#012    found = list(cls.list(**args))#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 653, in list#012    for row in 
TapCtl.list(**args):#012  File "/usr/lib/xapi/sm/blktap2.py", line 118, 
in loop#012    return f(*__t, **__d)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 348, in list#012    if e.status in 
transient:#012  File "/usr/lib/xapi/sm/blktap2.py", line 162, in 
__getattr__#012    return object.__getattribute__(self, 
key)#012AttributeError: 'CommandFailure' object has no attribute 
'status'#012 ]
Dec 30 06:51:40 g6xentest xapi: [debug|g6xentest|4300 UNIX 
/var/lib/xcp/xapi||cli] Raised at file \"lib/pervasiveext.ml\", line 26, 
characters 22-25\nCalled from file \"xapi_cli.ml\", line 118, characters 
2-139\nCalled from file \"xapi_cli.ml\", line 221, characters 
7-44\nCalled from file \"xapi_cli.ml\", line 273, characters 4-23\n
Dec 30 06:51:40 g6xentest SMGC: [5343] SR.update_asynch status changed 
to [success]
Dec 30 06:51:40 g6xentest SM: [5343] lock: released 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/running
Dec 30 06:51:40 g6xentest SM: [5343] lock: tried lock 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/sr, acquired: True 
(exists: True)
Dec 30 06:51:40 g6xentest SM: [5343] ['/usr/bin/vhd-util', 'scan', '-f', 
'-c', '-m', '/var/run/sr-mount/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/*.vhd']
Dec 30 06:51:40 g6xentest SM: [5343]   pread SUCCESS
Dec 30 06:51:40 g6xentest SMGC: [5343] SR 787b ('local nfs') (0 VDIs in 
0 VHD trees): showing only VHD trees that changed:
Dec 30 06:51:40 g6xentest SMGC: [5343] Tree 
cae30e9b-ebd4-4450-8ce0-9f4035ca62f1 gone
Dec 30 06:51:40 g6xentest SMGC: [5343]
Dec 30 06:51:40 g6xentest SM: [5343] lock: released 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/sr
Dec 30 06:51:40 g6xentest SMGC: [5343] No work, exiting
Dec 30 06:51:40 g6xentest SMGC: [5343] In cleanup
Dec 30 06:51:40 g6xentest SMGC: [5343] SR 787b ('local nfs') (0 VDIs in 
0 VHD trees): no changes
Dec 30 06:51:40 g6xentest xapi: [ info|g6xentest|4437 UNIX 
/var/lib/xcp/xapi|session.logout D:62093672901c|xapi] Session.destroy 
trackid=875c3e601a042db2714f9fb83af9fcd7
Dec 30 06:51:40 g6xentest xcp-rrdd: [debug|g6xentest|1326 
unix_rpc||http] Request { frame = false; method = POST; uri = 
/var/lib/xcp/xcp-rrdd; query = [  ]; content_length = [ 330 ]; transfer 
encoding = ; version = 1.1; cookie = [ = ]; task = ; subtask_of = ; 
content-type = ; host = ; user_agent = /usr/sbin/xapi }
Dec 30 06:51:41 g6xentest xcp-rrdd: [debug|g6xentest|0 
monitor|main|rrdd_stats] system stats: MemTotal: 8141572 KiB; MemFree: 
6811472 KiB; Buffered: 77624 KiB; Cached: 762040 KiB; SwapTotal: 0 KiB; 
SwapFree: 0 KiB
Dec 30 06:51:41 g6xentest xcp-rrdd: [debug|g6xentest|0 
monitor|main|rrdd_stats] Clock drift: 0
Dec 30 06:51:41 g6xentest xcp-rrdd: [debug|g6xentest|0 
monitor|main|rrdd_stats] xcp-rrdd stats (n = 1): size: 340776 KiB; rss: 
8112 KiB; data: 316292 KiB; stack: 136 KiB
Dec 30 06:51:41 g6xentest xcp-rrdd: [debug|g6xentest|0 
monitor|main|rrdd_stats] xapi stats (n = 2): size: 3322164 KiB; rss: 
46944 KiB; data: 3226392 KiB; stack: 272 KiB
Dec 30 06:51:41 g6xentest forkexecd: [error|g6xentest|0||forkexecd] 5394 
(/bin/pidof xenopsd) exitted with code 1
Dec 30 06:51:41 g6xentest xcp-rrdd: [debug|g6xentest|0 
monitor|main|rrdd_stats] xenopsd stats (n = 0): size: 0 KiB; rss: 0 KiB; 
data: 0 KiB; stack: 0 KiB

_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

From xen-api-bounces@lists.xen.org Tue Dec 30 14:45:19 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2014 14:45:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Y5y2k-0000c5-8P; Tue, 30 Dec 2014 14:45:06 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <dkadds2@gmail.com>) id 1Y5y2i-0000c0-FS
	for xen-api@lists.xen.org; Tue, 30 Dec 2014 14:45:05 +0000
Received: from [85.158.139.211] by server-12.bemta-5.messagelabs.com id
	51/13-25714-F6AB2A45; Tue, 30 Dec 2014 14:45:03 +0000
X-Env-Sender: dkadds2@gmail.com
X-Msg-Ref: server-5.tower-206.messagelabs.com!1419950699!15641997!1
X-Originating-IP: [209.85.212.173]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 19725 invoked from network); 30 Dec 2014 14:44:59 -0000
Received: from mail-wi0-f173.google.com (HELO mail-wi0-f173.google.com)
	(209.85.212.173)
	by server-5.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Dec 2014 14:44:59 -0000
Received: by mail-wi0-f173.google.com with SMTP id r20so24035196wiv.12
	for <xen-api@lists.xen.org>; Tue, 30 Dec 2014 06:44:59 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=message-id:date:from:user-agent:mime-version:to:subject
	:content-type:content-transfer-encoding;
	bh=geQkgLDG7X23gSIuli9y1BzLTdd5iRguckHDdj0b2d8=;
	b=mZ2dxuKpqAR0RfwoaxNaJ0GDgRIIWnjxb8OAGg7eYapqxrIms3I3RfQeSaDgvj5N+Z
	1mxXiflnzH/SK39k79yhKVOLASygKsbG1N3W6LuvXtBVJ1DGJFI1RS/BZGyHwO2doi3n
	2GdY3Jd2Hdj3MACE19ZV7JamVlS3UBOySqT/ihYXFotJ9tNb7TpjnD5SrJav5+3ZaJ0T
	3tLkbOxImPkfgwegCglysRMc4cUWr7kDpiiqdwbAtd4Gp7qmQhn414J9RnOh/jWfDN7O
	0Kcf0fh0BtOYWf0On82dXont0e/70MhiQp0dcmLzerun66KGs7AB4XOuBIy3TazJIX13
	4ItA==
X-Received: by 10.180.93.167 with SMTP id cv7mr108866155wib.12.1419950698873; 
	Tue, 30 Dec 2014 06:44:58 -0800 (PST)
Received: from BlackApple.local (awp120.neoplus.adsl.tpnet.pl. [83.27.75.120])
	by mx.google.com with ESMTPSA id
	be4sm43642895wib.16.2014.12.30.06.44.56 for <xen-api@lists.xen.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 30 Dec 2014 06:44:58 -0800 (PST)
Message-ID: <54A2BA68.2060105@gmail.com>
Date: Tue, 30 Dec 2014 15:44:56 +0100
From: David <dkadds2@gmail.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10;
	rv:31.0) Gecko/20100101 Thunderbird/31.3.0
MIME-Version: 1.0
To: xen-api@lists.xen.org
Subject: [Xen-API] NFS exported from ZFS on Ubuntu 14.04
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

Hi Guys,

I'm looking for your help as I'm facing issue with Xen and NFS Storage 
Repository.
The problem I'm facing is that vm-import fails due to blktap2 issue 
(seems like).
Last call is about vdi_activate failure (full dump below):

generic exception: vdi_activate: EXCEPTION <type 
'exceptions.AttributeError'>, 'CommandFailure' object has no attribute 
'status'

Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 1560, in _activate
Dec 30 06:51:38 g6xentest SM: [5266] 
self._get_pool_config(sr_uuid).get("mem-pool-size"))
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 1243, in _tap_activate
Dec 30 06:51:38 g6xentest SM: [5266]     tapdisk = 
Tapdisk.find_by_path(phy_path)


On backend side NFS is exported from ZFS (localhost) encrypted with 
dedup on if it would matter.
Xenserver is compiled from sources from buildroot.

I've tried to use FileSR but it failed miserably too.
To get to the stage where I am now I've had to fix some static paths 
within SR adapters.

Any help and hints is more than appreciated.

btw. why do I use ZFS exported via NFS? I need compression and 
deduplication. Host itself has plenty of resources and will be running 
couple of VMs with almost same configuration and won't be highly loaded. 
Therefore I'm not after performance but more concerned about storage space.
Any hints on how to put SR on ZFS on Linux (Ubuntu preferred) would be 
great.
I've tested so far FileSR, tried to expose ZFS block device and loopback 
but it didn't work.
Creating file on ZFS mounted via loopback to create vg/pv/lv seems like 
an overkill.

The last option which I've figured out would be to expose ZFS via iSCSI, 
but this seems to be an overkill too.
The easiest for me and fully acceptable would be to use VHD (VDI) files 
directly on ZFS but it didn't work neither.

Thanks,
Dawid


Dec 30 06:51:38 g6xentest SM: [5266] ['/usr/sbin/td-util', 'query', 
'vhd', '-vpf', 
'/var/run/sr-mount/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/cae30e9b-ebd4-4450-8ce0-9f4035ca62f1.vhd']
Dec 30 06:51:38 g6xentest SM: [5266]   pread SUCCESS
Dec 30 06:51:38 g6xentest SM: [5266] 
PhyLink(/dev/sm/phy/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/cae30e9b-ebd4-4450-8ce0-9f4035ca62f1) 
-> 
/var/run/sr-mount/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/cae30e9b-ebd4-4450-8ce0-9f4035ca62f1.vhd
Dec 30 06:51:38 g6xentest xapi: [ info|g6xentest|4363 UNIX 
/var/lib/xcp/xapi|session.login_with_password D:96522b0bba4b|xapi] 
Session.create trackid=b40ee0f70df6669d28d67cd077003734 pool=false 
uname=root originator= is_local_superuser=true auth_user_sid= 
parent=trackid=9834f5af41c964e225f24279aefe4e49
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4363 UNIX 
/var/lib/xcp/xapi|session.login_with_password D:96522b0bba4b|mscgen] 
xapi=>xapi [label="session.get_uuid"];
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4364 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:session.get_uuid 
D:ca81a60b135e created by task D:96522b0bba4b
Dec 30 06:51:38 g6xentest xapi: [ info|g6xentest|4371 UNIX 
/var/lib/xcp/xapi|session.logout D:d45fe29cc472|xapi] Session.destroy 
trackid=b40ee0f70df6669d28d67cd077003734
Dec 30 06:51:38 g6xentest SM: [5266] Exception in activate/attach
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4372 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:VDI.get_by_uuid 
D:816bae444f6c created by task D:7b03301c184c
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4373 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:host.get_by_uuid 
D:9c05de3c6f24 created by task D:7b03301c184c
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4374 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:VDI.get_sm_config 
D:0a4f152ffe26 created by task D:7b03301c184c
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4375 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task 
dispatch:VDI.remove_from_sm_config D:cb677dfe97f0 created by task 
D:7b03301c184c
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4375 UNIX 
/var/lib/xcp/xapi|dispatch:VDI.remove_from_sm_config 
D:cb677dfe97f0|api_effect] VDI.remove_from_sm_config
Dec 30 06:51:38 g6xentest xapi: 
[20141230T05:51:38.396Z|audit|g6xentest|4375 UNIX 
/var/lib/xcp/xapi|VDI.remove_from_sm_config D:550b87e7d87f|audit] 
('trackid=be2e0d0044616f90c8b73f608309541e' 'LOCAL_SUPERUSER' 
'__sm__backend' 'ALLOWED' 'OK' 'API' 'VDI.remove_from_sm_config' 
(('self' 'XOA System' 'cae30e9b-ebd4-4450-8ce0-9f4035ca62f1' 
'OpaqueRef:0b132ca6-b8e7-c11f-6fff-dec08432cafe')))
Dec 30 06:51:38 g6xentest SM: [5266] Removed host key 
host_OpaqueRef:bc001d57-65ce-8b2b-74b4-cd71976272c0 for 
cae30e9b-ebd4-4450-8ce0-9f4035ca62f1
Dec 30 06:51:38 g6xentest SM: [5266] ***** BLKTAP2:<function 
_activate_locked at 0x7f611a801ed8>: EXCEPTION <type 
'exceptions.AttributeError'>, 'CommandFailure' object has no attribute 
'status'
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 83, in wrapper
Dec 30 06:51:38 g6xentest SM: [5266]     ret = op(self, *args)
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 1522, in _activate_locked
Dec 30 06:51:38 g6xentest SM: [5266]     dev_path = 
self._activate(sr_uuid, vdi_uuid, options)
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 1560, in _activate
Dec 30 06:51:38 g6xentest SM: [5266] 
self._get_pool_config(sr_uuid).get("mem-pool-size"))
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 1243, in _tap_activate
Dec 30 06:51:38 g6xentest SM: [5266]     tapdisk = 
Tapdisk.find_by_path(phy_path)
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 690, in find_by_path
Dec 30 06:51:38 g6xentest SM: [5266]     return cls.find(path=path)
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 678, in find
Dec 30 06:51:38 g6xentest SM: [5266]     found = list(cls.list(**args))
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 653, in list
Dec 30 06:51:38 g6xentest SM: [5266]     for row in TapCtl.list(**args):
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 118, in loop
Dec 30 06:51:38 g6xentest SM: [5266]     return f(*__t, **__d)
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 348, in list
Dec 30 06:51:38 g6xentest SM: [5266]     if e.status in transient:
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 162, in __getattr__
Dec 30 06:51:38 g6xentest SM: [5266]     return 
object.__getattribute__(self, key)
Dec 30 06:51:38 g6xentest SM: [5266]
Dec 30 06:51:38 g6xentest SM: [5266] lock: released 
/var/lock/sm/cae30e9b-ebd4-4450-8ce0-9f4035ca62f1/vdi
Dec 30 06:51:38 g6xentest SM: [5266] ***** generic exception: 
vdi_activate: EXCEPTION <type 'exceptions.AttributeError'>, 
'CommandFailure' object has no attribute 'status'
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/SRCommand.py", line 110, in run
Dec 30 06:51:38 g6xentest SM: [5266]     return self._run_locked(sr)
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/SRCommand.py", line 159, in _run_locked
Dec 30 06:51:38 g6xentest SM: [5266]     rv = self._run(sr, target)
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/SRCommand.py", line 263, in _run
Dec 30 06:51:38 g6xentest SM: [5266]     writable, caching_params)
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 1486, in activate
Dec 30 06:51:38 g6xentest SM: [5266]     if 
self._activate_locked(sr_uuid, vdi_uuid, options):
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 83, in wrapper
Dec 30 06:51:38 g6xentest SM: [5266]     ret = op(self, *args)
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 1522, in _activate_locked
Dec 30 06:51:38 g6xentest SM: [5266]     dev_path = 
self._activate(sr_uuid, vdi_uuid, options)
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 1560, in _activate
Dec 30 06:51:38 g6xentest SM: [5266] 
self._get_pool_config(sr_uuid).get("mem-pool-size"))
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 1243, in _tap_activate
Dec 30 06:51:38 g6xentest SM: [5266]     tapdisk = 
Tapdisk.find_by_path(phy_path)
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 690, in find_by_path
Dec 30 06:51:38 g6xentest SM: [5266]     return cls.find(path=path)
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 678, in find
Dec 30 06:51:38 g6xentest SM: [5266]     found = list(cls.list(**args))
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 653, in list
Dec 30 06:51:38 g6xentest SM: [5266]     for row in TapCtl.list(**args):
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 118, in loop
Dec 30 06:51:38 g6xentest SM: [5266]     return f(*__t, **__d)
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 348, in list
Dec 30 06:51:38 g6xentest SM: [5266]     if e.status in transient:
Dec 30 06:51:38 g6xentest SM: [5266]   File 
"/usr/lib/xapi/sm/blktap2.py", line 162, in __getattr__
Dec 30 06:51:38 g6xentest SM: [5266]     return 
object.__getattribute__(self, key)
Dec 30 06:51:38 g6xentest SM: [5266]
Dec 30 06:51:38 g6xentest SM: [5266] lock: closed 
/var/lock/sm/cae30e9b-ebd4-4450-8ce0-9f4035ca62f1/vdi
Dec 30 06:51:38 g6xentest SM: [5266] lock: closed 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/sr
Dec 30 06:51:38 g6xentest forkexecd: [error|g6xentest|0||forkexecd] 5266 
(/opt/xensource/sm/NFSSR 
<methodCall><methodName>vdi_activate</methodName><par...) exitted with 
code 1
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4340|sm_exec 
D:74a592aeddb3|xapi] Raised at file \"lib/forkhelpers.ml\", line 181, 
characters 31-75\nCalled from file \"lib/pervasiveext.ml\", line 22, 
characters 2-9\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4340|sm_exec 
D:74a592aeddb3|xapi] Raised at file \"sm_exec.ml\", line 193, characters 
10-100\nCalled from file \"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4340|sm_exec 
D:74a592aeddb3|xapi] Raised at file \"lib/pervasiveext.ml\", line 26, 
characters 22-25\nCalled from file \"sm_exec.ml\", line 175, characters 
23-1023\nCalled from file \"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:38 g6xentest xapi: [ info|g6xentest|4340|sm_exec 
D:74a592aeddb3|xapi] Session.destroy 
trackid=be2e0d0044616f90c8b73f608309541e
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4340|sm_exec 
D:74a592aeddb3|backtrace] Raised at file \"lib/pervasiveext.ml\", line 
26, characters 22-25\nCalled from file \"server_helpers.ml\", line 72, 
characters 11-23\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4340|sm_exec 
D:74a592aeddb3|dispatcher] Server_helpers.exec exception_handler: Got 
exception SR_BACKEND_FAILURE: [ non-zero exit; ; Traceback (most recent 
call last):#012  File "/opt/xensource/sm/NFSSR", line 278, in 
<module>#012    SRCommand.run(NFSSR, DRIVER_INFO)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 344, in run#012    ret = 
cmd.run(sr)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 110, in 
run#012    return self._run_locked(sr)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 159, in _run_locked#012    rv = 
self._run(sr, target)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 
263, in _run#012    writable, caching_params)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 1486, in activate#012    if 
self._activate_locked(sr_uuid, vdi_uuid, options):#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 83, in wrapper#012    ret = op(self, 
*args)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1522, in 
_activate_locked#012    dev_path = self._activate(sr_uuid, vdi_uuid, 
options)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1560, in 
_activate#012 self._get_pool_config(sr_uuid).get("mem-pool-size"))#012  
File "/usr/lib/xapi/sm/blktap2.py", line 1243, in _tap_activate#012 
tapdisk = Tapdisk.find_by_path(phy_path)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 690, in find_by_path#012 return 
cls.find(path=path)#012  File "/usr/lib/xapi/sm/blktap2.py", line 678, 
in find#012    found = list(cls.list(**args))#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 653, in list#012    for row in 
TapCtl.list(**args):#012  File "/usr/lib/xapi/sm/blktap2.py", line 118, 
in loop#012    return f(*__t, **__d)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 348, in list#012    if e.status in 
transient:#012  File "/usr/lib/xapi/sm/blktap2.py", line 162, in 
__getattr__#012    return object.__getattribute__(self, 
key)#012AttributeError: 'CommandFailure' object has no attribute 
'status'#012 ]
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4340|sm_exec 
D:74a592aeddb3|dispatcher] Raised at file \"hashtbl.ml\", line 136, 
characters 19-28\nCalled from file \"lib/debug.ml\", line 172, 
characters 37-64\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4340|sm_exec 
D:74a592aeddb3|backtrace] Raised at file \"hashtbl.ml\", line 136, 
characters 19-28\nCalled from file \"lib/debug.ml\", line 172, 
characters 37-64\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4340|sm_exec 
D:74a592aeddb3|xapi] Raised at file \"server_helpers.ml\", line 90, 
characters 14-15\nCalled from file \"lib/pervasiveext.ml\", line 22, 
characters 2-9\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4340|VDI.activate 
D:7b03301c184c|xapi] Raised at file \"lib/pervasiveext.ml\", line 26, 
characters 22-25\nCalled from file \"lib/debug.ml\", line 57, characters 
17-20\nRe-raised at file \"lib/debug.ml\", line 62, characters 
10-11\nCalled from file \"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4340|VDI.activate 
D:7b03301c184c|backtrace] Raised at file \"lib/pervasiveext.ml\", line 
26, characters 22-25\nCalled from file \"sm.ml\", line 171, characters 
21-72\nCalled from file \"server_helpers.ml\", line 72, characters 11-23\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4340|VDI.activate 
D:7b03301c184c|dispatcher] Server_helpers.exec exception_handler: Got 
exception SR_BACKEND_FAILURE: [ non-zero exit; ; Traceback (most recent 
call last):#012  File "/opt/xensource/sm/NFSSR", line 278, in 
<module>#012    SRCommand.run(NFSSR, DRIVER_INFO)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 344, in run#012    ret = 
cmd.run(sr)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 110, in 
run#012    return self._run_locked(sr)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 159, in _run_locked#012    rv = 
self._run(sr, target)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 
263, in _run#012    writable, caching_params)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 1486, in activate#012    if 
self._activate_locked(sr_uuid, vdi_uuid, options):#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 83, in wrapper#012    ret = op(self, 
*args)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1522, in 
_activate_locked#012    dev_path = self._activate(sr_uuid, vdi_uuid, 
options)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1560, in 
_activate#012 self._get_pool_config(sr_uuid).get("mem-pool-size"))#012  
File "/usr/lib/xapi/sm/blktap2.py", line 1243, in _tap_activate#012 
tapdisk = Tapdisk.find_by_path(phy_path)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 690, in find_by_path#012 return 
cls.find(path=path)#012  File "/usr/lib/xapi/sm/blktap2.py", line 678, 
in find#012    found = list(cls.list(**args))#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 653, in list#012    for row in 
TapCtl.list(**args):#012  File "/usr/lib/xapi/sm/blktap2.py", line 118, 
in loop#012    return f(*__t, **__d)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 348, in list#012    if e.status in 
transient:#012  File "/usr/lib/xapi/sm/blktap2.py", line 162, in 
__getattr__#012    return object.__getattribute__(self, 
key)#012AttributeError: 'CommandFailure' object has no attribute 
'status'#012 ]
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4340|VDI.activate 
D:7b03301c184c|dispatcher] Raised at file \"hashtbl.ml\", line 136, 
characters 19-28\nCalled from file \"lib/debug.ml\", line 172, 
characters 37-64\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4340|VDI.activate 
D:7b03301c184c|backtrace] Raised at file \"hashtbl.ml\", line 136, 
characters 19-28\nCalled from file \"lib/debug.ml\", line 172, 
characters 37-64\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4340|VDI.activate 
D:7b03301c184c|xapi] Raised at file \"server_helpers.ml\", line 90, 
characters 14-15\nCalled from file \"lib/pervasiveext.ml\", line 22, 
characters 2-9\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4340||xapi] Raised at 
file \"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from 
file \"lib/debug.ml\", line 57, characters 17-20\nRe-raised at file 
\"lib/debug.ml\", line 62, characters 10-11\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:38 g6xentest xapi: [error|g6xentest|4325 UNIX 
/var/lib/xcp/xapi|VBD.plug R:6a9fba3a1166|storage_impl] Storage_impl: 
dp:vbd/0/xvda sr:787b0874-8e8b-e7d8-8ba9-74f55ff2ea16 
vdi:cae30e9b-ebd4-4450-8ce0-9f4035ca62f1 op:activate 
error:Storage_interface.Backend_error(_) backtrace:Called from file 
"storage_impl.ml", line 299, characters 7-50
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4325 UNIX 
/var/lib/xcp/xapi|VBD.plug R:6a9fba3a1166|xapi] Called from file 
\"storage_impl.ml\", line 299, characters 7-50\nRe-raised at file 
\"storage_impl.ml\", line 319, characters 11-12\nCalled from file 
\"list.ml\", line 84, characters 24-34\nCalled from file 
\"storage_impl.ml\", line 341, characters 6-55\nRe-raised at file 
\"storage_impl.ml\", line 345, characters 12-13\nCalled from file 
\"storage_impl.ml\", line 445, characters 14-77\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:38 g6xentest xapi: [error|g6xentest|4325 UNIX 
/var/lib/xcp/xapi|VBD.plug R:6a9fba3a1166|storage_access] Re-raising as 
SR_BACKEND_FAILURE [ non-zero exit; ; Traceback (most recent call 
last):#012  File "/opt/xensource/sm/NFSSR", line 278, in <module>#012    
SRCommand.run(NFSSR, DRIVER_INFO)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 344, in run#012    ret = 
cmd.run(sr)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 110, in 
run#012    return self._run_locked(sr)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 159, in _run_locked#012    rv = 
self._run(sr, target)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 
263, in _run#012    writable, caching_params)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 1486, in activate#012    if 
self._activate_locked(sr_uuid, vdi_uuid, options):#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 83, in wrapper#012    ret = op(self, 
*args)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1522, in 
_activate_locked#012    dev_path = self._activate(sr_uuid, vdi_uuid, 
options)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1560, in 
_activate#012 self._get_pool_config(sr_uuid).get("mem-pool-size"))#012  
File "/usr/lib/xapi/sm/blktap2.py", line 1243, in _tap_activate#012 
tapdisk = Tapdisk.find_by_path(phy_path)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 690, in find_by_path#012 return 
cls.find(path=path)#012  File "/usr/lib/xapi/sm/blktap2.py", line 678, 
in find#012    found = list(cls.list(**args))#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 653, in list#012    for row in 
TapCtl.list(**args):#012  File "/usr/lib/xapi/sm/blktap2.py", line 118, 
in loop#012    return f(*__t, **__d)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 348, in list#012    if e.status in 
transient:#012  File "/usr/lib/xapi/sm/blktap2.py", line 162, in 
__getattr__#012    return object.__getattribute__(self, 
key)#012AttributeError: 'CommandFailure' object has no attribute 
'status'#012 ]
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4325 UNIX 
/var/lib/xcp/xapi|VBD.plug R:6a9fba3a1166|xapi] Raised at file 
\"storage_access.ml\", line 971, characters 9-48\nCalled from file 
\"storage_access.ml\", line 967, characters 2-6\nRe-raised at file 
\"storage_access.ml\", line 972, characters 56-57\nCalled from file 
\"message_forwarding.ml\", line 233, characters 25-44\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4325 UNIX 
/var/lib/xcp/xapi|VBD.plug R:6a9fba3a1166|backtrace] Raised at file 
\"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from file 
\"message_forwarding.ml\", line 3502, characters 3-194\nCalled from file 
\"rbac.ml\", line 227, characters 16-23\n
Dec 30 06:51:38 g6xentest xapi: 
[20141230T05:51:38.465Z|audit|g6xentest|4325 UNIX 
/var/lib/xcp/xapi|VBD.plug R:6a9fba3a1166|audit] 
('trackid=ca1e0e02f1c6f9fcc980368e710d8c8b' 'LOCAL_SUPERUSER' 
'OpaqueRef:bc001d57-65ce-8b2b-74b4-cd71976272c0' 'ALLOWED' 
'ERROR:SR_BACKEND_FAILURE: [ non-zero exit; ; Traceback (most recent 
call last):   File \"/opt/xensource/sm/NFSSR\", line 278, in 
<module>     SRCommand.run(NFSSR, DRIVER_INFO)   File 
\"/usr/lib/xapi/sm/SRCommand.py\", line 344, in run     ret = 
cmd.run(sr)   File \"/usr/lib/xapi/sm/SRCommand.py\", line 110, in 
run     return self._run_locked(sr)   File 
\"/usr/lib/xapi/sm/SRCommand.py\", line 159, in _run_locked     rv = 
self._run(sr, target)   File \"/usr/lib/xapi/sm/SRCommand.py\", line 
263, in _run     writable, caching_params)   File 
\"/usr/lib/xapi/sm/blktap2.py\", line 1486, in activate     if 
self._activate_locked(sr_uuid, vdi_uuid, options):   File 
\"/usr/lib/xapi/sm/blktap2.py\", line 83, in wrapper     ret = op(self, 
*args)   File \"/usr/lib/xapi/sm/blktap2.py\", line 1522, in 
_activate_locked     dev_path = self._activate(sr_uuid, vdi_uuid, 
options)   File \"/usr/lib/xapi/sm/blktap2.py\", line 1560, in _activate 
self._get_pool_config(sr_uuid).get(\"mem-pool-size\"))   File 
\"/usr/lib/xapi/sm/blktap2.py\", line 1243, in _tap_activate tapdisk = 
Tapdisk.find_by_path(phy_path)   File \"/usr/lib/xapi/sm/blktap2.py\", 
line 690, in find_by_path return cls.find(path=path)   File 
\"/usr/lib/xapi/sm/blktap2.py\", line 678, in find     found = 
list(cls.list(**args))   File \"/usr/lib/xapi/sm/blktap2.py\", line 653, 
in list     for row in TapCtl.list(**args):   File 
\"/usr/lib/xapi/sm/blktap2.py\", line 118, in loop     return f(*__t, 
**__d)   File \"/usr/lib/xapi/sm/blktap2.py\", line 348, in list     if 
e.status in transient:   File \"/usr/lib/xapi/sm/blktap2.py\", line 162, 
in __getattr__     return object.__getattribute__(self, key) 
AttributeError: \'CommandFailure\' object has no attribute \'status\'  
]' 'API' 'VBD.plug' (('self' '' '55716ecf-1a27-b265-6021-f21994a346df' 
'OpaqueRef:62934ed8-606c-9a27-ca66-625b42213fd1')))
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4325 UNIX 
/var/lib/xcp/xapi|VBD.plug R:6a9fba3a1166|backtrace] Raised at file 
\"rbac.ml\", line 236, characters 10-15\nCalled from file 
\"server_helpers.ml\", line 75, characters 11-41\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4325 UNIX 
/var/lib/xcp/xapi|VBD.plug R:6a9fba3a1166|dispatcher] 
Server_helpers.exec exception_handler: Got exception SR_BACKEND_FAILURE: 
[ non-zero exit; ; Traceback (most recent call last):#012  File 
"/opt/xensource/sm/NFSSR", line 278, in <module>#012    
SRCommand.run(NFSSR, DRIVER_INFO)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 344, in run#012    ret = 
cmd.run(sr)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 110, in 
run#012    return self._run_locked(sr)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 159, in _run_locked#012    rv = 
self._run(sr, target)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 
263, in _run#012    writable, caching_params)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 1486, in activate#012    if 
self._activate_locked(sr_uuid, vdi_uuid, options):#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 83, in wrapper#012    ret = op(self, 
*args)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1522, in 
_activate_locked#012    dev_path = self._activate(sr_uuid, vdi_uuid, 
options)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1560, in 
_activate#012 self._get_pool_config(sr_uuid).get("mem-pool-size"))#012  
File "/usr/lib/xapi/sm/blktap2.py", line 1243, in _tap_activate#012 
tapdisk = Tapdisk.find_by_path(phy_path)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 690, in find_by_path#012 return 
cls.find(path=path)#012  File "/usr/lib/xapi/sm/blktap2.py", line 678, 
in find#012    found = list(cls.list(**args))#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 653, in list#012    for row in 
TapCtl.list(**args):#012  File "/usr/lib/xapi/sm/blktap2.py", line 118, 
in loop#012    return f(*__t, **__d)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 348, in list#012    if e.status in 
transient:#012  File "/usr/lib/xapi/sm/blktap2.py", line 162, in 
__getattr__#012    return object.__getattribute__(self, 
key)#012AttributeError: 'CommandFailure' object has no attribute 
'status'#012 ]
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4325 UNIX 
/var/lib/xcp/xapi|VBD.plug R:6a9fba3a1166|dispatcher] Raised at file 
\"rbac.ml\", line 236, characters 10-15\nCalled from file 
\"server_helpers.ml\", line 75, characters 11-41\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4325 UNIX 
/var/lib/xcp/xapi|VBD.plug R:6a9fba3a1166|backtrace] Raised at file 
\"rbac.ml\", line 236, characters 10-15\nCalled from file 
\"server_helpers.ml\", line 75, characters 11-41\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4325 UNIX 
/var/lib/xcp/xapi|VBD.plug R:6a9fba3a1166|xapi] Raised at file 
\"server_helpers.ml\", line 90, characters 14-15\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4325 UNIX 
/var/lib/xcp/xapi|dispatch:VBD.plug D:a065a8a06ea5|xapi] Raised at file 
\"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from file 
\"lib/debug.ml\", line 57, characters 17-20\nRe-raised at file 
\"lib/debug.ml\", line 62, characters 10-11\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4325 UNIX 
/var/lib/xcp/xapi|dispatch:VBD.plug D:a065a8a06ea5|backtrace] Raised at 
file \"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from 
file \"lib/debug.ml\", line 57, characters 17-20\nRe-raised at file 
\"lib/debug.ml\", line 62, characters 10-11\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\nRe-raised at file 
\"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from file 
\"server_helpers.ml\", line 136, characters 10-106\nCalled from file 
\"server.ml\", line 25047, characters 23-161\nCalled from file 
\"server_helpers.ml\", line 115, characters 4-7\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4303 INET :::80|VM 
import R:dbdb0ee5ae16|xapi] Raised at file \"client.ml\", line 6, 
characters 37-75\nCalled from file \"client.ml\", line 18, characters 
55-110\nCalled from file \"client.ml\", line 10530, characters 
6-53\nCalled from file \"list.ml\", line 73, characters 12-15\nCalled 
from file \"attach_helpers.ml\", line 79, characters 7-787\nCalled from 
file \"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4303 INET :::80|VM 
import R:dbdb0ee5ae16|mscgen] xapi=>xapi [label="session.slave_login"];
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4376 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:session.slave_login 
D:e29a1093437b created by task R:dbdb0ee5ae16
Dec 30 06:51:38 g6xentest xapi: [ info|g6xentest|4376 UNIX 
/var/lib/xcp/xapi|session.slave_login D:53f5a509153c|xapi] 
Session.create trackid=43bee4954daf50bb8c163bcd68702fd4 pool=true uname= 
originator= is_local_superuser=true auth_user_sid= 
parent=trackid=9834f5af41c964e225f24279aefe4e49
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4376 UNIX 
/var/lib/xcp/xapi|session.slave_login D:53f5a509153c|mscgen] xapi=>xapi 
[label="session.get_uuid"];
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4377 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:session.get_uuid 
D:00c5bef3f954 created by task D:53f5a509153c
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4303 INET :::80|VM 
import R:dbdb0ee5ae16|mscgen] xapi=>xapi [label="VBD.unplug"];
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4378 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:VBD.unplug 
D:28c1d1528ed1 created by task R:dbdb0ee5ae16
Dec 30 06:51:38 g6xentest xapi: [ info|g6xentest|4378 UNIX 
/var/lib/xcp/xapi|dispatch:VBD.unplug D:28c1d1528ed1|taskhelper] task 
VBD.unplug R:4dc35778c95d (uuid:3e1e7e97-ad3d-f6ea-74b0-b658f6a234c2) 
created (trackid=43bee4954daf50bb8c163bcd68702fd4) by task R:dbdb0ee5ae16
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4378 UNIX 
/var/lib/xcp/xapi|VBD.unplug R:4dc35778c95d|audit] VBD.unplug: VBD = 
'55716ecf-1a27-b265-6021-f21994a346df'
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4378 UNIX 
/var/lib/xcp/xapi|VBD.unplug R:4dc35778c95d|backtrace] Raised at file 
\"xapi_vbd_helpers.ml\", line 201, characters 33-72\nCalled from file 
\"message_forwarding.ml\", line 3430, characters 5-65\nCalled from file 
\"message_forwarding.ml\", line 283, characters 5-8\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4378 UNIX 
/var/lib/xcp/xapi|VBD.unplug R:4dc35778c95d|xapi] Caught exception while 
DEVICE_ALREADY_DETACHED: [ 
OpaqueRef:62934ed8-606c-9a27-ca66-625b42213fd1 ] in message forwarder: 
marking VBD for VBD.unplug
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4378 UNIX 
/var/lib/xcp/xapi|VBD.unplug R:4dc35778c95d|backtrace] Raised at file 
\"xapi_vbd_helpers.ml\", line 201, characters 33-72\nCalled from file 
\"message_forwarding.ml\", line 3430, characters 5-65\nCalled from file 
\"message_forwarding.ml\", line 283, characters 5-8\nRe-raised at file 
\"message_forwarding.ml\", line 286, characters 8-9\nCalled from file 
\"lib/threadext.ml\", line 20, characters 20-24\nRe-raised at file 
\"lib/threadext.ml\", line 20, characters 62-65\nCalled from file 
\"message_forwarding.ml\", line 149, characters 19-25\nCalled from file 
\"message_forwarding.ml\", line 3435, characters 3-87\nCalled from file 
\"message_forwarding.ml\", line 3511, characters 3-200\nCalled from file 
\"rbac.ml\", line 227, characters 16-23\n
Dec 30 06:51:38 g6xentest xapi: 
[20141230T05:51:38.539Z|audit|g6xentest|4378 UNIX 
/var/lib/xcp/xapi|VBD.unplug R:4dc35778c95d|audit] 
('trackid=43bee4954daf50bb8c163bcd68702fd4' 'LOCAL_SUPERUSER' 
'OpaqueRef:bc001d57-65ce-8b2b-74b4-cd71976272c0' 'ALLOWED' 
'ERROR:DEVICE_ALREADY_DETACHED: [ 
OpaqueRef:62934ed8-606c-9a27-ca66-625b42213fd1 ]' 'API' 'VBD.unplug' 
(('self' '' '55716ecf-1a27-b265-6021-f21994a346df' 
'OpaqueRef:62934ed8-606c-9a27-ca66-625b42213fd1')))
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4378 UNIX 
/var/lib/xcp/xapi|VBD.unplug R:4dc35778c95d|backtrace] Raised at file 
\"rbac.ml\", line 236, characters 10-15\nCalled from file 
\"server_helpers.ml\", line 75, characters 11-41\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4378 UNIX 
/var/lib/xcp/xapi|VBD.unplug R:4dc35778c95d|dispatcher] 
Server_helpers.exec exception_handler: Got exception 
DEVICE_ALREADY_DETACHED: [ OpaqueRef:62934ed8-606c-9a27-ca66-625b42213fd1 ]
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4378 UNIX 
/var/lib/xcp/xapi|VBD.unplug R:4dc35778c95d|dispatcher] Raised at file 
\"rbac.ml\", line 236, characters 10-15\nCalled from file 
\"server_helpers.ml\", line 75, characters 11-41\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4378 UNIX 
/var/lib/xcp/xapi|VBD.unplug R:4dc35778c95d|backtrace] Raised at file 
\"rbac.ml\", line 236, characters 10-15\nCalled from file 
\"server_helpers.ml\", line 75, characters 11-41\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4378 UNIX 
/var/lib/xcp/xapi|VBD.unplug R:4dc35778c95d|xapi] Raised at file 
\"server_helpers.ml\", line 90, characters 14-15\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4378 UNIX 
/var/lib/xcp/xapi|dispatch:VBD.unplug D:28c1d1528ed1|xapi] Raised at 
file \"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from 
file \"lib/debug.ml\", line 57, characters 17-20\nRe-raised at file 
\"lib/debug.ml\", line 62, characters 10-11\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4378 UNIX 
/var/lib/xcp/xapi|dispatch:VBD.unplug D:28c1d1528ed1|backtrace] Raised 
at file \"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from 
file \"lib/debug.ml\", line 57, characters 17-20\nRe-raised at file 
\"lib/debug.ml\", line 62, characters 10-11\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\nRe-raised at file 
\"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from file 
\"server_helpers.ml\", line 136, characters 10-106\nCalled from file 
\"server.ml\", line 25068, characters 23-161\nCalled from file 
\"server_helpers.ml\", line 115, characters 4-7\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4303 INET :::80|VM 
import R:dbdb0ee5ae16|xapi] safe_unplug caught DEVICE_ALREADY_DETACHED: 
this is safe to ignore
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4303 INET :::80|VM 
import R:dbdb0ee5ae16|mscgen] xapi=>xapi [label="VBD.destroy"];
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4379 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:VBD.destroy 
D:d2a2ffe1ee4f created by task R:dbdb0ee5ae16
Dec 30 06:51:38 g6xentest xapi: [ info|g6xentest|4379 UNIX 
/var/lib/xcp/xapi|dispatch:VBD.destroy D:d2a2ffe1ee4f|taskhelper] task 
VBD.destroy R:76c8f8af8ec3 (uuid:2891c38f-8c95-4a84-01be-f3fb921b7eb8) 
created (trackid=43bee4954daf50bb8c163bcd68702fd4) by task R:dbdb0ee5ae16
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4379 UNIX 
/var/lib/xcp/xapi|VBD.destroy R:76c8f8af8ec3|audit] VBD.destroy: VBD = 
'55716ecf-1a27-b265-6021-f21994a346df'
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4379 UNIX 
/var/lib/xcp/xapi|VBD.destroy R:76c8f8af8ec3|xapi] VBD.destroy (uuid = 
55716ecf-1a27-b265-6021-f21994a346df; ref = 
OpaqueRef:62934ed8-606c-9a27-ca66-625b42213fd1)
Dec 30 06:51:38 g6xentest xapi: 
[20141230T05:51:38.583Z|audit|g6xentest|4379 UNIX 
/var/lib/xcp/xapi|VBD.destroy R:76c8f8af8ec3|audit] 
('trackid=43bee4954daf50bb8c163bcd68702fd4' 'LOCAL_SUPERUSER' 
'OpaqueRef:bc001d57-65ce-8b2b-74b4-cd71976272c0' 'ALLOWED' 'OK' 'API' 
'VBD.destroy' (('self' '' '55716ecf-1a27-b265-6021-f21994a346df' 
'OpaqueRef:62934ed8-606c-9a27-ca66-625b42213fd1') ('VDI' 'XOA System' 
'cae30e9b-ebd4-4450-8ce0-9f4035ca62f1' 
'OpaqueRef:0b132ca6-b8e7-c11f-6fff-dec08432cafe')))
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4303 INET :::80|VM 
import R:dbdb0ee5ae16|mscgen] xapi=>xapi [label="session.logout"];
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4380 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:session.logout 
D:33d121ae703c created by task R:dbdb0ee5ae16
Dec 30 06:51:38 g6xentest xapi: [ info|g6xentest|4380 UNIX 
/var/lib/xcp/xapi|session.logout D:b68a5fb9f585|xapi] Session.destroy 
trackid=43bee4954daf50bb8c163bcd68702fd4
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4303 INET :::80|VM 
import R:dbdb0ee5ae16|backtrace] Raised at file \"lib/pervasiveext.ml\", 
line 26, characters 22-25\nCalled from file \"list.ml\", line 73, 
characters 12-15\nCalled from file \"stream_vdi.ml\", line 58, 
characters 2-32\nCalled from file \"import.ml\", line 1493, characters 
36-124\n
Dec 30 06:51:38 g6xentest xapi: [error|g6xentest|4303 INET :::80|VM 
import R:dbdb0ee5ae16|import] Caught exception during import: 
SR_BACKEND_FAILURE: [ non-zero exit; ; Traceback (most recent call 
last):#012  File "/opt/xensource/sm/NFSSR", line 278, in <module>#012    
SRCommand.run(NFSSR, DRIVER_INFO)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 344, in run#012    ret = 
cmd.run(sr)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 110, in 
run#012    return self._run_locked(sr)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 159, in _run_locked#012    rv = 
self._run(sr, target)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 
263, in _run#012    writable, caching_params)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 1486, in activate#012    if 
self._activate_locked(sr_uuid, vdi_uuid, options):#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 83, in wrapper#012    ret = op(self, 
*args)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1522, in 
_activate_locked#012    dev_path = self._activate(sr_uuid, vdi_uuid, 
options)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1560, in 
_activate#012 self._get_pool_config(sr_uuid).get("mem-pool-size"))#012  
File "/usr/lib/xapi/sm/blktap2.py", line 1243, in _tap_activate#012 
tapdisk = Tapdisk.find_by_path(phy_path)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 690, in find_by_path#012 return 
cls.find(path=path)#012  File "/usr/lib/xapi/sm/blktap2.py", line 678, 
in find#012    found = list(cls.list(**args))#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 653, in list#012    for row in 
TapCtl.list(**args):#012  File "/usr/lib/xapi/sm/blktap2.py", line 118, 
in loop#012    return f(*__t, **__d)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 348, in list#012    if e.status in 
transient:#012  File "/usr/lib/xapi/sm/blktap2.py", line 162, in 
__getattr__#012    return object.__getattribute__(self, 
key)#012AttributeError: 'CommandFailure' object has no attribute 
'status'#012 ]
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4303 INET :::80|VM 
import R:dbdb0ee5ae16|backtrace] Raised at file \"lib/pervasiveext.ml\", 
line 26, characters 22-25\nCalled from file \"list.ml\", line 73, 
characters 12-15\nCalled from file \"stream_vdi.ml\", line 58, 
characters 2-32\nCalled from file \"import.ml\", line 1493, characters 
36-124\n
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4303 INET :::80|VM 
import R:dbdb0ee5ae16|import] Cleaning up after import failure: 
SR_BACKEND_FAILURE: [ non-zero exit; ; Traceback (most recent call 
last):#012  File "/opt/xensource/sm/NFSSR", line 278, in <module>#012    
SRCommand.run(NFSSR, DRIVER_INFO)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 344, in run#012    ret = 
cmd.run(sr)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 110, in 
run#012    return self._run_locked(sr)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 159, in _run_locked#012    rv = 
self._run(sr, target)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 
263, in _run#012    writable, caching_params)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 1486, in activate#012    if 
self._activate_locked(sr_uuid, vdi_uuid, options):#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 83, in wrapper#012    ret = op(self, 
*args)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1522, in 
_activate_locked#012    dev_path = self._activate(sr_uuid, vdi_uuid, 
options)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1560, in 
_activate#012 self._get_pool_config(sr_uuid).get("mem-pool-size"))#012  
File "/usr/lib/xapi/sm/blktap2.py", line 1243, in _tap_activate#012 
tapdisk = Tapdisk.find_by_path(phy_path)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 690, in find_by_path#012 return 
cls.find(path=path)#012  File "/usr/lib/xapi/sm/blktap2.py", line 678, 
in find#012    found = list(cls.list(**args))#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 653, in list#012    for row in 
TapCtl.list(**args):#012  File "/usr/lib/xapi/sm/blktap2.py", line 118, 
in loop#012    return f(*__t, **__d)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 348, in list#012    if e.status in 
transient:#012  File "/usr/lib/xapi/sm/blktap2.py", line 162, in 
__getattr__#012    return object.__getattribute__(self, 
key)#012AttributeError: 'CommandFailure' object has no attribute 
'status'#012 ]
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4303 INET 
:::80|VM.import (cleanup) R:09dd9c768450|mscgen] xapi=>xapi 
[label="session.slave_login"];
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4381 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:session.slave_login 
D:2d6fe045e67d created by task R:09dd9c768450
Dec 30 06:51:38 g6xentest xapi: [ info|g6xentest|4381 UNIX 
/var/lib/xcp/xapi|session.slave_login D:095689d3702c|xapi] 
Session.create trackid=ef3cd4745f1b43b77a99acfe3afbae8f pool=true uname= 
originator= is_local_superuser=true auth_user_sid= 
parent=trackid=9834f5af41c964e225f24279aefe4e49
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4381 UNIX 
/var/lib/xcp/xapi|session.slave_login D:095689d3702c|mscgen] xapi=>xapi 
[label="session.get_uuid"];
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4382 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:session.get_uuid 
D:66485c08ca4a created by task D:095689d3702c
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4303 INET 
:::80|VM.import (cleanup) R:09dd9c768450|mscgen] xapi=>xapi 
[label="VIF.destroy"];
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4383 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:VIF.destroy 
D:4b7119580895 created by task R:09dd9c768450
Dec 30 06:51:38 g6xentest xapi: [ info|g6xentest|4383 UNIX 
/var/lib/xcp/xapi|dispatch:VIF.destroy D:4b7119580895|taskhelper] task 
VIF.destroy R:d4bf2c6c0049 (uuid:213cdb59-8ba7-3029-35e1-a5aec5b715a0) 
created (trackid=ef3cd4745f1b43b77a99acfe3afbae8f) by task R:09dd9c768450
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4383 UNIX 
/var/lib/xcp/xapi|VIF.destroy R:d4bf2c6c0049|audit] VIF.destroy: VIF = 
'c40d19c8-1964-eb04-e572-344b74bb7701'
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4383 UNIX 
/var/lib/xcp/xapi|VIF.destroy R:d4bf2c6c0049|xapi] VIF.destroy
Dec 30 06:51:38 g6xentest xapi: 
[20141230T05:51:38.628Z|audit|g6xentest|4383 UNIX 
/var/lib/xcp/xapi|VIF.destroy R:d4bf2c6c0049|audit] 
('trackid=ef3cd4745f1b43b77a99acfe3afbae8f' 'LOCAL_SUPERUSER' 
'OpaqueRef:bc001d57-65ce-8b2b-74b4-cd71976272c0' 'ALLOWED' 'OK' 'API' 
'VIF.destroy' (('self' '' 'c40d19c8-1964-eb04-e572-344b74bb7701' 
'OpaqueRef:55e3990c-9eb4-1d2f-c34d-17851cb87df8')))
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|89|xapi events 
D:b6497e2a8b15|xenops] Event on VM be764dde-ba6d-48f5-bdc2-8ae87ad74559; 
resident_here = true
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4303 INET 
:::80|VM.import (cleanup) R:09dd9c768450|mscgen] xapi=>xapi 
[label="VBD.destroy"];
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4384 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:VBD.destroy 
D:206e6030d791 created by task R:09dd9c768450
Dec 30 06:51:38 g6xentest xapi: [ info|g6xentest|4384 UNIX 
/var/lib/xcp/xapi|dispatch:VBD.destroy D:206e6030d791|taskhelper] task 
VBD.destroy R:0a7f5e962c4a (uuid:c2e5bc64-b3d2-f2fa-27e7-f8dc235281c8) 
created (trackid=ef3cd4745f1b43b77a99acfe3afbae8f) by task R:09dd9c768450
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4384 UNIX 
/var/lib/xcp/xapi|VBD.destroy R:0a7f5e962c4a|audit] VBD.destroy: VBD = 
'35870bde-8ccb-d001-3999-c6acad0c2b0a'
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4384 UNIX 
/var/lib/xcp/xapi|VBD.destroy R:0a7f5e962c4a|xapi] VBD.destroy (uuid = 
35870bde-8ccb-d001-3999-c6acad0c2b0a; ref = 
OpaqueRef:34bbcf5e-1c44-8a03-f1f2-0dc494b2846a)
Dec 30 06:51:38 g6xentest xapi: 
[20141230T05:51:38.671Z|audit|g6xentest|4384 UNIX 
/var/lib/xcp/xapi|VBD.destroy R:0a7f5e962c4a|audit] 
('trackid=ef3cd4745f1b43b77a99acfe3afbae8f' 'LOCAL_SUPERUSER' 
'OpaqueRef:bc001d57-65ce-8b2b-74b4-cd71976272c0' 'ALLOWED' 'OK' 'API' 
'VBD.destroy' (('self' '' '35870bde-8ccb-d001-3999-c6acad0c2b0a' 
'OpaqueRef:34bbcf5e-1c44-8a03-f1f2-0dc494b2846a') ('VDI' 'XOA System' 
'cae30e9b-ebd4-4450-8ce0-9f4035ca62f1' 
'OpaqueRef:0b132ca6-b8e7-c11f-6fff-dec08432cafe')))
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|89|xapi events 
D:b6497e2a8b15|mscgen] xapi=>xapi [label="event.from"];
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4385 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:event.from 
D:b10ddc2b5796 created by task D:b6497e2a8b15
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4303 INET 
:::80|VM.import (cleanup) R:09dd9c768450|mscgen] xapi=>xapi 
[label="VM.destroy"];
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4386 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:VM.destroy 
D:46b69d81a56f created by task R:09dd9c768450
Dec 30 06:51:38 g6xentest xapi: [ info|g6xentest|4386 UNIX 
/var/lib/xcp/xapi|dispatch:VM.destroy D:46b69d81a56f|taskhelper] task 
VM.destroy R:43577c42dd09 (uuid:a0b80bba-249a-4439-8424-1965efb19459) 
created (trackid=ef3cd4745f1b43b77a99acfe3afbae8f) by task R:09dd9c768450
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4386 UNIX 
/var/lib/xcp/xapi|VM.destroy R:43577c42dd09|audit] VM.destroy: VM = 
'3b16c2e7-08e7-3c0f-452d-458c3a008685 (XOA 3.6 Basic)'
Dec 30 06:51:38 g6xentest xcp-rrdd: [debug|g6xentest|1325 
unix_rpc||http] Request { frame = false; method = POST; uri = 
/var/lib/xcp/xcp-rrdd; query = [  ]; content_length = [ 266 ]; transfer 
encoding = ; version = 1.1; cookie = [ = ]; task = ; subtask_of = ; 
content-type = ; host = ; user_agent = /usr/sbin/xapi }
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4386 UNIX 
/var/lib/xcp/xapi|VM.destroy R:43577c42dd09|xapi] VM.destroy: deleting 
DB records
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4386 UNIX 
/var/lib/xcp/xapi|VM.destroy R:43577c42dd09|xapi] Raised at file 
\"db_cache_types.ml\", line 107, characters 27-69\nCalled from file 
\"db_cache_impl.ml\", line 240, characters 11-44\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:38 g6xentest xapi: 
[20141230T05:51:38.718Z|audit|g6xentest|4386 UNIX 
/var/lib/xcp/xapi|VM.destroy R:43577c42dd09|audit] 
('trackid=ef3cd4745f1b43b77a99acfe3afbae8f' 'LOCAL_SUPERUSER' 
'OpaqueRef:bc001d57-65ce-8b2b-74b4-cd71976272c0' 'ALLOWED' 'OK' 'API' 
'VM.destroy' (('self' 'XOA 3.6 Basic' 
'3b16c2e7-08e7-3c0f-452d-458c3a008685' 
'OpaqueRef:ec37ed87-e7c7-f67a-e0ae-8ba7079f4f84')))
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4303 INET 
:::80|VM.import (cleanup) R:09dd9c768450|mscgen] xapi=>xapi 
[label="VDI.destroy"];
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4387 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:VDI.destroy 
D:5395d7e29d84 created by task R:09dd9c768450
Dec 30 06:51:38 g6xentest xapi: [ info|g6xentest|4387 UNIX 
/var/lib/xcp/xapi|dispatch:VDI.destroy D:5395d7e29d84|taskhelper] task 
VDI.destroy R:eb73ba917080 (uuid:26ba88fa-28f0-f22e-e418-ae460115c4af) 
created (trackid=ef3cd4745f1b43b77a99acfe3afbae8f) by task R:09dd9c768450
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4387 UNIX 
/var/lib/xcp/xapi|VDI.destroy R:eb73ba917080|audit] VDI.destroy: VDI = 
'cae30e9b-ebd4-4450-8ce0-9f4035ca62f1'
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4387 UNIX 
/var/lib/xcp/xapi|VDI.destroy R:eb73ba917080|xapi] Marking SR for 
VDI.destroy (task=OpaqueRef:eb73ba91-7080-dc74-8ec1-beca0146bf0d)
Dec 30 06:51:38 g6xentest xapi: [ info|g6xentest|4387 UNIX 
/var/lib/xcp/xapi|VDI.destroy R:eb73ba917080|storage_impl] VDI.destroy 
dbg:OpaqueRef:eb73ba91-7080-dc74-8ec1-beca0146bf0d 
sr:787b0874-8e8b-e7d8-8ba9-74f55ff2ea16 
vdi:cae30e9b-ebd4-4450-8ce0-9f4035ca62f1
Dec 30 06:51:38 g6xentest xapi: [ info|g6xentest|4387 UNIX 
/var/lib/xcp/xapi|VDI.destroy R:eb73ba917080|storage_impl] Attempting to 
destroy datapath dp:vbd/0/xvda sr:787b0874-8e8b-e7d8-8ba9-74f55ff2ea16 
vdi:cae30e9b-ebd4-4450-8ce0-9f4035ca62f1
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4388||dummytaskhelper] 
task VDI.detach D:136386636701 created by task R:eb73ba917080
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4388|VDI.detach 
D:136386636701|sm] SM nfs vdi_detach 
sr=OpaqueRef:521231d6-df3b-790b-1e22-b344a83d9d39 
vdi=OpaqueRef:0b132ca6-b8e7-c11f-6fff-dec08432cafe
Dec 30 06:51:38 g6xentest xapi: [ info|g6xentest|4388|sm_exec 
D:8418c2e72cc7|xapi] Session.create 
trackid=1d82ccf0a6619430098a53727371f855 pool=false uname= originator= 
is_local_superuser=true auth_user_sid= 
parent=trackid=9834f5af41c964e225f24279aefe4e49
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4388|sm_exec 
D:8418c2e72cc7|mscgen] xapi=>xapi [label="session.get_uuid"];
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4389 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:session.get_uuid 
D:e6cafcef1d61 created by task D:8418c2e72cc7
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4388|sm_exec 
D:8418c2e72cc7|mscgen] smapiv2=>smapiv1 [label="vdi_detach"];
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4390 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:host.get_other_config 
D:33b0b7636dc9 created by task D:136386636701
Dec 30 06:51:38 g6xentest xapi: [debug|g6xentest|4391 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:SR.get_sm_config 
D:d5f1c6df32eb created by task D:136386636701
Dec 30 06:51:38 g6xentest SM: [5322] lock: acquired 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/sr
Dec 30 06:51:38 g6xentest SM: [5322] ['/usr/sbin/td-util', 'query', 
'vhd', '-vpf', 
'/var/run/sr-mount/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/cae30e9b-ebd4-4450-8ce0-9f4035ca62f1.vhd']
Dec 30 06:51:38 g6xentest SM: [5322]   pread SUCCESS
Dec 30 06:51:38 g6xentest SM: [5322] vdi_detach {'sr_uuid': 
'787b0874-8e8b-e7d8-8ba9-74f55ff2ea16', 'subtask_of': 
'DummyRef:|13638663-6701-1091-57d1-cba68304ef6a|VDI.detach', 'vdi_ref': 
'OpaqueRef:0b132ca6-b8e7-c11f-6fff-dec08432cafe', 'vdi_on_boot': 
'persist', 'args': [], 'vdi_location': 
'cae30e9b-ebd4-4450-8ce0-9f4035ca62f1', 'host_ref': 
'OpaqueRef:bc001d57-65ce-8b2b-74b4-cd71976272c0', 'session_ref': 
'OpaqueRef:8f6fd5ed-9b88-0ecd-d0dc-2652ebe54969', 'device_config': 
{'SRmaster': 'true', 'serverpath': '/mnt/zbiornik/testvol/', 'server': 
'127.0.0.1'}, 'command': 'vdi_detach', 'vdi_allow_caching': 'false', 
'sr_ref': 'OpaqueRef:521231d6-df3b-790b-1e22-b344a83d9d39', 'vdi_uuid': 
'cae30e9b-ebd4-4450-8ce0-9f4035ca62f1'}
Dec 30 06:51:38 g6xentest SM: [5322] lock: closed 
/var/lock/sm/cae30e9b-ebd4-4450-8ce0-9f4035ca62f1/vdi
Dec 30 06:51:38 g6xentest SM: [5322] lock: released 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/sr
Dec 30 06:51:38 g6xentest SM: [5322] lock: closed 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/sr
Dec 30 06:51:39 g6xentest xapi: [ info|g6xentest|4388|sm_exec 
D:8418c2e72cc7|xapi] Session.destroy 
trackid=1d82ccf0a6619430098a53727371f855
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4387 UNIX 
/var/lib/xcp/xapi|VDI.destroy R:eb73ba917080|storage_impl] 
dbg:OpaqueRef:eb73ba91-7080-dc74-8ec1-beca0146bf0d dp:vbd/0/xvda 
sr:787b0874-8e8b-e7d8-8ba9-74f55ff2ea16 
vdi:cae30e9b-ebd4-4450-8ce0-9f4035ca62f1 superstate:detached
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4392||dummytaskhelper] 
task VDI.destroy D:11fda1a1522a created by task R:eb73ba917080
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4392|VDI.destroy 
D:11fda1a1522a|sm] SM nfs vdi_delete 
sr=OpaqueRef:521231d6-df3b-790b-1e22-b344a83d9d39 
vdi=OpaqueRef:0b132ca6-b8e7-c11f-6fff-dec08432cafe
Dec 30 06:51:39 g6xentest xapi: [ info|g6xentest|4392|sm_exec 
D:4ba93da78635|xapi] Session.create 
trackid=7bce8892b6f84f2fe7dfbce532468abf pool=false uname= originator= 
is_local_superuser=true auth_user_sid= 
parent=trackid=9834f5af41c964e225f24279aefe4e49
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4392|sm_exec 
D:4ba93da78635|mscgen] xapi=>xapi [label="session.get_uuid"];
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4393 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:session.get_uuid 
D:3add1a864c11 created by task D:4ba93da78635
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4392|sm_exec 
D:4ba93da78635|mscgen] smapiv2=>smapiv1 [label="vdi_delete"];
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4394 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:host.get_other_config 
D:6242d3ea51db created by task D:11fda1a1522a
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4395 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:SR.get_sm_config 
D:a271bf3e8ab6 created by task D:11fda1a1522a
Dec 30 06:51:39 g6xentest SM: [5330] lock: acquired 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/sr
Dec 30 06:51:39 g6xentest SM: [5330] ['/usr/sbin/td-util', 'query', 
'vhd', '-vpf', 
'/var/run/sr-mount/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/cae30e9b-ebd4-4450-8ce0-9f4035ca62f1.vhd']
Dec 30 06:51:39 g6xentest SM: [5330]   pread SUCCESS
Dec 30 06:51:39 g6xentest SM: [5330] vdi_delete {'sr_uuid': 
'787b0874-8e8b-e7d8-8ba9-74f55ff2ea16', 'subtask_of': 
'DummyRef:|11fda1a1-522a-5c2e-fccc-c4b4a3a60600|VDI.destroy', 'vdi_ref': 
'OpaqueRef:0b132ca6-b8e7-c11f-6fff-dec08432cafe', 'vdi_on_boot': 
'persist', 'args': [], 'vdi_location': 
'cae30e9b-ebd4-4450-8ce0-9f4035ca62f1', 'host_ref': 
'OpaqueRef:bc001d57-65ce-8b2b-74b4-cd71976272c0', 'session_ref': 
'OpaqueRef:3a15ce97-0316-f04e-e93f-a7726f563e51', 'device_config': 
{'SRmaster': 'true', 'serverpath': '/mnt/zbiornik/testvol/', 'server': 
'127.0.0.1'}, 'command': 'vdi_delete', 'vdi_allow_caching': 'false', 
'sr_ref': 'OpaqueRef:521231d6-df3b-790b-1e22-b344a83d9d39', 'vdi_uuid': 
'cae30e9b-ebd4-4450-8ce0-9f4035ca62f1'}
Dec 30 06:51:39 g6xentest SM: [5330] ['/usr/bin/vhd-util', 'set', 
'--debug', '-n', 
'/var/run/sr-mount/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/cae30e9b-ebd4-4450-8ce0-9f4035ca62f1.vhd', 
'-f', 'hidden', '-v', '1']
Dec 30 06:51:39 g6xentest SM: [5330]   pread SUCCESS
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4396 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:VDI.get_by_uuid 
D:559f707a1835 created by task D:11fda1a1522a
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4397 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:VDI.db_forget 
D:7294fcb274ef created by task D:11fda1a1522a
Dec 30 06:51:39 g6xentest xapi: [ info|g6xentest|4397 UNIX 
/var/lib/xcp/xapi|dispatch:VDI.db_forget D:7294fcb274ef|taskhelper] task 
VDI.db_forget R:721552054cc8 (uuid:b202374a-148c-5d3a-f816-26cee5011830) 
created (trackid=7bce8892b6f84f2fe7dfbce532468abf) by task D:11fda1a1522a
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4397 UNIX 
/var/lib/xcp/xapi|VDI.db_forget R:721552054cc8|xapi] db_forget 
uuid=cae30e9b-ebd4-4450-8ce0-9f4035ca62f1
Dec 30 06:51:39 g6xentest xapi: 
[20141230T05:51:39.307Z|audit|g6xentest|4397 UNIX 
/var/lib/xcp/xapi|VDI.db_forget R:721552054cc8|audit] 
('trackid=7bce8892b6f84f2fe7dfbce532468abf' 'LOCAL_SUPERUSER' 
'__sm__backend' 'ALLOWED' 'OK' 'API' 'VDI.db_forget' (('vdi' '' '' 
'OpaqueRef:0b132ca6-b8e7-c11f-6fff-dec08432cafe')))
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4398 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task 
dispatch:SR.get_virtual_allocation D:0a63c6106fc9 created by task 
D:11fda1a1522a
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4399 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:SR.get_by_uuid 
D:7254c48a6b00 created by task D:11fda1a1522a
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4400 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task 
dispatch:SR.set_virtual_allocation D:1e78e2fea3dc created by task 
D:11fda1a1522a
Dec 30 06:51:39 g6xentest xapi: 
[20141230T05:51:39.341Z|audit|g6xentest|4400 UNIX 
/var/lib/xcp/xapi|SR.set_virtual_allocation D:ef31ec008c45|audit] 
('trackid=7bce8892b6f84f2fe7dfbce532468abf' 'LOCAL_SUPERUSER' 
'__sm__backend' 'ALLOWED' 'OK' 'API' 'SR.set_virtual_allocation' 
(('self' 'local nfs' '787b0874-8e8b-e7d8-8ba9-74f55ff2ea16' 
'OpaqueRef:521231d6-df3b-790b-1e22-b344a83d9d39')))
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4401 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:SR.set_physical_size 
D:eeb42cfa9aeb created by task D:11fda1a1522a
Dec 30 06:51:39 g6xentest xapi: 
[20141230T05:51:39.345Z|audit|g6xentest|4401 UNIX 
/var/lib/xcp/xapi|SR.set_physical_size D:b58348f5367a|audit] 
('trackid=7bce8892b6f84f2fe7dfbce532468abf' 'LOCAL_SUPERUSER' 
'__sm__backend' 'ALLOWED' 'OK' 'API' 'SR.set_physical_size' (('self' 
'local nfs' '787b0874-8e8b-e7d8-8ba9-74f55ff2ea16' 
'OpaqueRef:521231d6-df3b-790b-1e22-b344a83d9d39')))
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4402 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task 
dispatch:SR.set_physical_utilisation D:c50ae404e957 created by task 
D:11fda1a1522a
Dec 30 06:51:39 g6xentest xapi: 
[20141230T05:51:39.349Z|audit|g6xentest|4402 UNIX 
/var/lib/xcp/xapi|SR.set_physical_utilisation D:f9015de20301|audit] 
('trackid=7bce8892b6f84f2fe7dfbce532468abf' 'LOCAL_SUPERUSER' 
'__sm__backend' 'ALLOWED' 'OK' 'API' 'SR.set_physical_utilisation' 
(('self' 'local nfs' '787b0874-8e8b-e7d8-8ba9-74f55ff2ea16' 
'OpaqueRef:521231d6-df3b-790b-1e22-b344a83d9d39')))
Dec 30 06:51:39 g6xentest SM: [5330] lock: tried lock 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/running, acquired: 
True (exists: True)
Dec 30 06:51:39 g6xentest SM: [5330] lock: released 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/running
Dec 30 06:51:39 g6xentest SM: [5330] Kicking GC
Dec 30 06:51:39 g6xentest SMGC: [5330] === SR 
787b0874-8e8b-e7d8-8ba9-74f55ff2ea16: gc ===
Dec 30 06:51:39 g6xentest SMGC: [5342] Will finish as PID [5343]
Dec 30 06:51:39 g6xentest SMGC: [5330] New PID [5342]
Dec 30 06:51:39 g6xentest SM: [5330] lock: closed 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/running
Dec 30 06:51:39 g6xentest SM: [5330] lock: released 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/sr
Dec 30 06:51:39 g6xentest SM: [5330] lock: closed 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/sr
Dec 30 06:51:39 g6xentest xapi: [ info|g6xentest|4403 UNIX 
/var/lib/xcp/xapi|session.login_with_password D:044f99cccf96|xapi] 
Session.create trackid=875c3e601a042db2714f9fb83af9fcd7 pool=false 
uname=root originator= is_local_superuser=true auth_user_sid= 
parent=trackid=9834f5af41c964e225f24279aefe4e49
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4403 UNIX 
/var/lib/xcp/xapi|session.login_with_password D:044f99cccf96|mscgen] 
xapi=>xapi [label="session.get_uuid"];
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4404 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:session.get_uuid 
D:a8da81d425e8 created by task D:044f99cccf96
Dec 30 06:51:39 g6xentest SMGC: [5343] Found 0 cache files
Dec 30 06:51:39 g6xentest xapi: [ info|g6xentest|4392|sm_exec 
D:4ba93da78635|xapi] Session.destroy 
trackid=7bce8892b6f84f2fe7dfbce532468abf
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4387 UNIX 
/var/lib/xcp/xapi|VDI.destroy R:eb73ba917080|xapi] Unmarking SR after 
VDI.destroy (task=OpaqueRef:eb73ba91-7080-dc74-8ec1-beca0146bf0d)
Dec 30 06:51:39 g6xentest SM: [5343] lock: tried lock 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/sr, acquired: True 
(exists: True)
Dec 30 06:51:39 g6xentest xapi: 
[20141230T05:51:39.457Z|audit|g6xentest|4387 UNIX 
/var/lib/xcp/xapi|VDI.destroy R:eb73ba917080|audit] 
('trackid=ef3cd4745f1b43b77a99acfe3afbae8f' 'LOCAL_SUPERUSER' 
'OpaqueRef:bc001d57-65ce-8b2b-74b4-cd71976272c0' 'ALLOWED' 'OK' 'API' 
'VDI.destroy' (('self' 'XOA System' 
'cae30e9b-ebd4-4450-8ce0-9f4035ca62f1' 
'OpaqueRef:0b132ca6-b8e7-c11f-6fff-dec08432cafe')))
Dec 30 06:51:39 g6xentest SM: [5343] ['/usr/bin/vhd-util', 'scan', '-f', 
'-c', '-m', '/var/run/sr-mount/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/*.vhd']
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET 
:::80|VM.import (cleanup) R:09dd9c768450|mscgen] xapi=>xapi 
[label="session.logout"];
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4415 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:session.logout 
D:ed15a846833e created by task R:09dd9c768450
Dec 30 06:51:39 g6xentest xapi: [ info|g6xentest|4415 UNIX 
/var/lib/xcp/xapi|session.logout D:294449be0a58|xapi] Session.destroy 
trackid=ef3cd4745f1b43b77a99acfe3afbae8f
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET :::80|VM 
import R:dbdb0ee5ae16|xapi] Raised at file \"import.ml\", line 1525, 
characters 20-21\nCalled from file \"lib/pervasiveext.ml\", line 22, 
characters 2-9\n
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET :::80|VM 
import R:dbdb0ee5ae16|import] Closing pipes
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4306||xapi] Raised by 
primitive operation at file \"unix.ml\", line 252, characters 
7-34\nCalled from file \"lib/unixext.ml\", line 222, characters 
13-34\nCalled from file \"import.ml\", line 1273, characters 
12-53\nCalled from file \"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:39 g6xentest forkexecd: [error|g6xentest|0||forkexecd] 5217 
(/bin/nice -n 19 /usr/bin/ionice -c 3 /bin/gzip --decompress --stdout 
--force) exitted with code 1
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4306||xapi] Raised at 
file \"pervasives.ml\", line 20, characters 22-33\nCalled from file 
\"lib/pervasiveext.ml\", line 26, characters 4-14\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4306||xapi] Raised at 
file \"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from 
file \"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET :::80|VM 
import R:dbdb0ee5ae16|backtrace] Raised at file \"import.ml\", line 
1525, characters 20-21\nCalled from file \"lib/pervasiveext.ml\", line 
22, characters 2-9\nRe-raised at file \"lib/pervasiveext.ml\", line 26, 
characters 22-25\nCalled from file \"import.ml\", line 1459, characters 
9-1023\nRe-raised at file \"import.ml\", line 1554, characters 
14-15\nCalled from file \"server_helpers.ml\", line 72, characters 11-23\n
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET :::80|VM 
import R:dbdb0ee5ae16|dispatcher] Server_helpers.exec exception_handler: 
Got exception SR_BACKEND_FAILURE: [ non-zero exit; ; Traceback (most 
recent call last):#012  File "/opt/xensource/sm/NFSSR", line 278, in 
<module>#012 SRCommand.run(NFSSR, DRIVER_INFO)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 344, in run#012    ret = 
cmd.run(sr)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 110, in 
run#012    return self._run_locked(sr)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 159, in _run_locked#012    rv = 
self._run(sr, target)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 
263, in _run#012    writable, caching_params)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 1486, in activate#012    if 
self._activate_locked(sr_uuid, vdi_uuid, options):#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 83, in wrapper#012    ret = op(self, 
*args)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1522, in 
_activate_locked#012    dev_path = self._activate(sr_uuid, vdi_uuid, 
options)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1560, in 
_activate#012 self._get_pool_config(sr_uuid).get("mem-pool-size"))#012  
File "/usr/lib/xapi/sm/blktap2.py", line 1243, in _tap_activate#012 
tapdisk = Tapdisk.find_by_path(phy_path)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 690, in find_by_path#012 return 
cls.find(path=path)#012  File "/usr/lib/xapi/sm/blktap2.py", line 678, 
in find#012    found = list(cls.list(**args))#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 653, in list#012    for row in 
TapCtl.list(**args):#012  File "/usr/lib/xapi/sm/blktap2.py", line 118, 
in loop#012    return f(*__t, **__d)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 348, in list#012    if e.status in 
transient:#012  File "/usr/lib/xapi/sm/blktap2.py", line 162, in 
__getattr__#012    return object.__getattribute__(self, 
key)#012AttributeError: 'CommandFailure' object has no attribute 
'status'#012 ]
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET :::80|VM 
import R:dbdb0ee5ae16|dispatcher] Raised at file \"import.ml\", line 
1525, characters 20-21\nCalled from file \"lib/pervasiveext.ml\", line 
22, characters 2-9\nRe-raised at file \"lib/pervasiveext.ml\", line 26, 
characters 22-25\nCalled from file \"import.ml\", line 1459, characters 
9-1023\nRe-raised at file \"import.ml\", line 1554, characters 
14-15\nCalled from file \"server_helpers.ml\", line 72, characters 11-23\n
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET :::80|VM 
import R:dbdb0ee5ae16|backtrace] Raised at file \"import.ml\", line 
1525, characters 20-21\nCalled from file \"lib/pervasiveext.ml\", line 
22, characters 2-9\nRe-raised at file \"lib/pervasiveext.ml\", line 26, 
characters 22-25\nCalled from file \"import.ml\", line 1459, characters 
9-1023\nRe-raised at file \"import.ml\", line 1554, characters 
14-15\nCalled from file \"server_helpers.ml\", line 72, characters 11-23\n
Dec 30 06:51:39 g6xentest SM: [5343]   pread SUCCESS
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET :::80|VM 
import R:dbdb0ee5ae16|xapi] Raised at file \"server_helpers.ml\", line 
90, characters 14-15\nCalled from file \"lib/pervasiveext.ml\", line 22, 
characters 2-9\n
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET :::80|VM 
import R:dbdb0ee5ae16|taskhelper] forwarded task destroyed
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET 
:::80|VM.import D:aa0a28febf06|xapi] Raised at file 
\"server_helpers.ml\", line 90, characters 14-15\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\nRe-raised at file 
\"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from file 
\"lib/debug.ml\", line 57, characters 17-20\nRe-raised at file 
\"lib/debug.ml\", line 62, characters 10-11\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET 
:::80|VM.import D:aa0a28febf06|xapi] Raised at file 
\"server_helpers.ml\", line 90, characters 14-15\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\nRe-raised at file 
\"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from file 
\"lib/debug.ml\", line 57, characters 17-20\nRe-raised at file 
\"lib/debug.ml\", line 62, characters 10-11\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\nRe-raised at file 
\"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET 
:::80|VM.import D:aa0a28febf06|xapi] Raised at file 
\"server_helpers.ml\", line 90, characters 14-15\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\nRe-raised at file 
\"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from file 
\"lib/debug.ml\", line 57, characters 17-20\nRe-raised at file 
\"lib/debug.ml\", line 62, characters 10-11\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\nRe-raised at file 
\"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\nRe-raised at file 
\"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from file 
\"xapi_http.ml\", line 193, characters 4-810\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET 
:::80|VM.import D:aa0a28febf06|mscgen] xapi=>xapi [label="session.logout"];
Dec 30 06:51:39 g6xentest xapi: 
[20141230T05:51:39.615Z|audit|g6xentest|4300 UNIX 
/var/lib/xcp/xapi|event.unregister D:2bfc995fc493|audit] 
('trackid=09a9f582057ad27816e43a4d3c18bf1b' 'LOCAL_SUPERUSER' 'root' 
'ALLOWED' 'OK' 'API' 'event.unregister' ())
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4416 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:session.logout 
D:b676c5227f87 created by task D:aa0a28febf06
Dec 30 06:51:39 g6xentest xapi: [ info|g6xentest|4416 UNIX 
/var/lib/xcp/xapi|session.logout D:1dc7a29a8cdd|xapi] Session.destroy 
trackid=ca1e0e02f1c6f9fcc980368e710d8c8b
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET 
:::80|VM.import D:aa0a28febf06|backtrace] Raised at file 
\"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from file 
\"import.ml\", line 1387, characters 20-1023\nCalled from file 
\"server_helpers.ml\", line 72, characters 11-23\n
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET 
:::80|VM.import D:aa0a28febf06|dispatcher] Server_helpers.exec 
exception_handler: Got exception SR_BACKEND_FAILURE: [ non-zero exit; ; 
Traceback (most recent call last):#012  File "/opt/xensource/sm/NFSSR", 
line 278, in <module>#012 SRCommand.run(NFSSR, DRIVER_INFO)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 344, in run#012    ret = 
cmd.run(sr)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 110, in 
run#012    return self._run_locked(sr)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 159, in _run_locked#012    rv = 
self._run(sr, target)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 
263, in _run#012    writable, caching_params)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 1486, in activate#012    if 
self._activate_locked(sr_uuid, vdi_uuid, options):#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 83, in wrapper#012    ret = op(self, 
*args)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1522, in 
_activate_locked#012    dev_path = self._activate(sr_uuid, vdi_uuid, 
options)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1560, in 
_activate#012 self._get_pool_config(sr_uuid).get("mem-pool-size"))#012  
File "/usr/lib/xapi/sm/blktap2.py", line 1243, in _tap_activate#012 
tapdisk = Tapdisk.find_by_path(phy_path)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 690, in find_by_path#012 return 
cls.find(path=path)#012  File "/usr/lib/xapi/sm/blktap2.py", line 678, 
in find#012    found = list(cls.list(**args))#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 653, in list#012    for row in 
TapCtl.list(**args):#012  File "/usr/lib/xapi/sm/blktap2.py", line 118, 
in loop#012    return f(*__t, **__d)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 348, in list#012    if e.status in 
transient:#012  File "/usr/lib/xapi/sm/blktap2.py", line 162, in 
__getattr__#012    return object.__getattribute__(self, 
key)#012AttributeError: 'CommandFailure' object has no attribute 
'status'#012 ]
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET 
:::80|VM.import D:aa0a28febf06|dispatcher] Raised at file 
\"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from file 
\"import.ml\", line 1387, characters 20-1023\nCalled from file 
\"server_helpers.ml\", line 72, characters 11-23\n
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET 
:::80|VM.import D:aa0a28febf06|backtrace] Raised at file 
\"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from file 
\"import.ml\", line 1387, characters 20-1023\nCalled from file 
\"server_helpers.ml\", line 72, characters 11-23\n
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET 
:::80|VM.import D:aa0a28febf06|xapi] Raised at file 
\"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from file 
\"import.ml\", line 1387, characters 20-1023\nCalled from file 
\"server_helpers.ml\", line 72, characters 11-23\nRe-raised at file 
\"server_helpers.ml\", line 90, characters 14-15\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET :::80||xapi] 
Raised at file \"lib/pervasiveext.ml\", line 26, characters 
22-25\nCalled from file \"import.ml\", line 1387, characters 
20-1023\nCalled from file \"server_helpers.ml\", line 72, characters 
11-23\nRe-raised at file \"server_helpers.ml\", line 90, characters 
14-15\nCalled from file \"lib/pervasiveext.ml\", line 22, characters 
2-9\nRe-raised at file \"lib/pervasiveext.ml\", line 26, characters 
22-25\nCalled from file \"lib/debug.ml\", line 57, characters 
17-20\nRe-raised at file \"lib/debug.ml\", line 62, characters 
10-11\nCalled from file \"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:39 g6xentest xapi: [error|g6xentest|4303 INET :::80||xapi] 
Unhandled Api_errors.Server_error(SR_BACKEND_FAILURE, [ non-zero exit; ; 
Traceback (most recent call last):#012  File "/opt/xensource/sm/NFSSR", 
line 278, in <module>#012 SRCommand.run(NFSSR, DRIVER_INFO)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 344, in run#012    ret = 
cmd.run(sr)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 110, in 
run#012    return self._run_locked(sr)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 159, in _run_locked#012    rv = 
self._run(sr, target)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 
263, in _run#012    writable, caching_params)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 1486, in activate#012    if 
self._activate_locked(sr_uuid, vdi_uuid, options):#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 83, in wrapper#012    ret = op(self, 
*args)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1522, in 
_activate_locked#012    dev_path = self._activate(sr_uuid, vdi_uuid, 
options)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1560, in 
_activate#012 self._get_pool_config(sr_uuid).get("mem-pool-size"))#012  
File "/usr/lib/xapi/sm/blktap2.py", line 1243, in _tap_activate#012 
tapdisk = Tapdisk.find_by_path(phy_path)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 690, in find_by_path#012 return 
cls.find(path=path)#012  File "/usr/lib/xapi/sm/blktap2.py", line 678, 
in find#012    found = list(cls.list(**args))#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 653, in list#012    for row in 
TapCtl.list(**args):#012  File "/usr/lib/xapi/sm/blktap2.py", line 118, 
in loop#012    return f(*__t, **__d)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 348, in list#012    if e.status in 
transient:#012  File "/usr/lib/xapi/sm/blktap2.py", line 162, in 
__getattr__#012    return object.__getattribute__(self, 
key)#012AttributeError: 'CommandFailure' object has no attribute 
'status'#012 ])
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4303 INET 
:::80||backtrace] Raised at file \"lib/pervasiveext.ml\", line 26, 
characters 22-25\nCalled from file \"import.ml\", line 1387, characters 
20-1023\nCalled from file \"server_helpers.ml\", line 72, characters 
11-23\nRe-raised at file \"server_helpers.ml\", line 90, characters 
14-15\nCalled from file \"lib/pervasiveext.ml\", line 22, characters 
2-9\nRe-raised at file \"lib/pervasiveext.ml\", line 26, characters 
22-25\nCalled from file \"lib/debug.ml\", line 57, characters 
17-20\nRe-raised at file \"lib/debug.ml\", line 62, characters 
10-11\nCalled from file \"lib/pervasiveext.ml\", line 22, characters 
2-9\nRe-raised at file \"lib/pervasiveext.ml\", line 26, characters 
22-25\nCalled from file \"xapi_http.ml\", line 295, characters 4-27\n
Dec 30 06:51:39 g6xentest SMGC: [5343] SR 787b ('local nfs') (1 VDIs in 
1 VHD trees):
Dec 30 06:51:39 g6xentest SMGC: [5343] *cae30e9b(8.000G/19.000K)
Dec 30 06:51:39 g6xentest SMGC: [5343]
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4300 UNIX 
/var/lib/xcp/xapi||cli] client-side reports failure
Dec 30 06:51:39 g6xentest SM: [5343] lock: released 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/sr
Dec 30 06:51:39 g6xentest SM: [5343] lock: tried lock 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/running, acquired: 
True (exists: True)
Dec 30 06:51:39 g6xentest SM: [5343] lock: tried lock 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/sr, acquired: True 
(exists: True)
Dec 30 06:51:39 g6xentest SM: [5343] ['/usr/bin/vhd-util', 'scan', '-f', 
'-c', '-m', '/var/run/sr-mount/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/*.vhd']
Dec 30 06:51:39 g6xentest SM: [5343]   pread SUCCESS
Dec 30 06:51:39 g6xentest SMGC: [5343] SR 787b ('local nfs') (1 VDIs in 
1 VHD trees): no changes
Dec 30 06:51:39 g6xentest SM: [5343] lock: released 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/sr
Dec 30 06:51:39 g6xentest SMGC: [5343] Found 1 VDIs for deletion:
Dec 30 06:51:39 g6xentest SMGC: [5343]   *cae30e9b(8.000G/19.000K)
Dec 30 06:51:39 g6xentest SMGC: [5343] Deleting unlinked VDI 
*cae30e9b(8.000G/19.000K)
Dec 30 06:51:39 g6xentest SM: [5343] lock: tried lock 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/sr, acquired: True 
(exists: True)
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4421 UNIX 
/var/lib/xcp/xapi|VDI.get_by_uuid D:e5402c78336c|backtrace] Raised at 
file \"db_cache_impl.ml\", line 198, characters 16-55\nCalled from file 
\"db_actions.ml\", line 13330, characters 27-61\nCalled from file 
\"rbac.ml\", line 227, characters 16-23\nRe-raised at file \"rbac.ml\", 
line 236, characters 10-15\nCalled from file \"server_helpers.ml\", line 
72, characters 11-23\n
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4421 UNIX 
/var/lib/xcp/xapi|VDI.get_by_uuid D:e5402c78336c|dispatcher] 
Server_helpers.exec exception_handler: Got exception UUID_INVALID: [ 
VDI; cae30e9b-ebd4-4450-8ce0-9f4035ca62f1 ]
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4421 UNIX 
/var/lib/xcp/xapi|VDI.get_by_uuid D:e5402c78336c|dispatcher] Raised at 
file \"db_cache_impl.ml\", line 198, characters 16-55\nCalled from file 
\"db_actions.ml\", line 13330, characters 27-61\nCalled from file 
\"rbac.ml\", line 227, characters 16-23\nRe-raised at file \"rbac.ml\", 
line 236, characters 10-15\nCalled from file \"server_helpers.ml\", line 
72, characters 11-23\n
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4421 UNIX 
/var/lib/xcp/xapi|VDI.get_by_uuid D:e5402c78336c|backtrace] Raised at 
file \"db_cache_impl.ml\", line 198, characters 16-55\nCalled from file 
\"db_actions.ml\", line 13330, characters 27-61\nCalled from file 
\"rbac.ml\", line 227, characters 16-23\nRe-raised at file \"rbac.ml\", 
line 236, characters 10-15\nCalled from file \"server_helpers.ml\", line 
72, characters 11-23\n
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4421 UNIX 
/var/lib/xcp/xapi|VDI.get_by_uuid D:e5402c78336c|xapi] Raised at file 
\"db_cache_impl.ml\", line 198, characters 16-55\nCalled from file 
\"db_actions.ml\", line 13330, characters 27-61\nCalled from file 
\"rbac.ml\", line 227, characters 16-23\nRe-raised at file \"rbac.ml\", 
line 236, characters 10-15\nCalled from file \"server_helpers.ml\", line 
72, characters 11-23\nRe-raised at file \"server_helpers.ml\", line 90, 
characters 14-15\nCalled from file \"lib/pervasiveext.ml\", line 22, 
characters 2-9\n
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4421 UNIX 
/var/lib/xcp/xapi|dispatch:VDI.get_by_uuid D:5a5b19c8596f|xapi] Raised 
at file \"db_cache_impl.ml\", line 198, characters 16-55\nCalled from 
file \"db_actions.ml\", line 13330, characters 27-61\nCalled from file 
\"rbac.ml\", line 227, characters 16-23\nRe-raised at file \"rbac.ml\", 
line 236, characters 10-15\nCalled from file \"server_helpers.ml\", line 
72, characters 11-23\nRe-raised at file \"server_helpers.ml\", line 90, 
characters 14-15\nCalled from file \"lib/pervasiveext.ml\", line 22, 
characters 2-9\nRe-raised at file \"lib/pervasiveext.ml\", line 26, 
characters 22-25\nCalled from file \"lib/debug.ml\", line 57, characters 
17-20\nRe-raised at file \"lib/debug.ml\", line 62, characters 
10-11\nCalled from file \"lib/pervasiveext.ml\", line 22, characters 2-9\n
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4421 UNIX 
/var/lib/xcp/xapi|dispatch:VDI.get_by_uuid D:5a5b19c8596f|backtrace] 
Raised at file \"db_cache_impl.ml\", line 198, characters 16-55\nCalled 
from file \"db_actions.ml\", line 13330, characters 27-61\nCalled from 
file \"rbac.ml\", line 227, characters 16-23\nRe-raised at file 
\"rbac.ml\", line 236, characters 10-15\nCalled from file 
\"server_helpers.ml\", line 72, characters 11-23\nRe-raised at file 
\"server_helpers.ml\", line 90, characters 14-15\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\nRe-raised at file 
\"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from file 
\"lib/debug.ml\", line 57, characters 17-20\nRe-raised at file 
\"lib/debug.ml\", line 62, characters 10-11\nCalled from file 
\"lib/pervasiveext.ml\", line 22, characters 2-9\nRe-raised at file 
\"lib/pervasiveext.ml\", line 26, characters 22-25\nCalled from file 
\"server_helpers.ml\", line 136, characters 10-106\nCalled from file 
\"server.ml\", line 22402, characters 23-150\nCalled from file 
\"server_helpers.ml\", line 115, characters 4-7\n
Dec 30 06:51:39 g6xentest SM: [5343] lock: released 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/sr
Dec 30 06:51:39 g6xentest SM: [5343] lock: unlinking lock file 
/var/lock/sm/cae30e9b-ebd4-4450-8ce0-9f4035ca62f1/vdi
Dec 30 06:51:39 g6xentest SM: [5343] lock: removing lock dir 
/var/lock/sm/cae30e9b-ebd4-4450-8ce0-9f4035ca62f1
Dec 30 06:51:39 g6xentest SMGC: [5343] Starting asynch srUpdate for SR 
787b0874-8e8b-e7d8-8ba9-74f55ff2ea16
Dec 30 06:51:39 g6xentest xapi: [ info|g6xentest|4424|Async.SR.update 
R:8bf29b029ab9|dispatcher] spawning a new thread to handle the current 
task (trackid=875c3e601a042db2714f9fb83af9fcd7)
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4424|Async.SR.update 
R:8bf29b029ab9|audit] SR.update: SR = 
'787b0874-8e8b-e7d8-8ba9-74f55ff2ea16 (local nfs)'
Dec 30 06:51:39 g6xentest xapi: [ info|g6xentest|4424|Async.SR.update 
R:8bf29b029ab9|storage_impl] SR.stat 
dbg:OpaqueRef:8bf29b02-9ab9-3f8e-7f95-471dc322cf9f 
sr:787b0874-8e8b-e7d8-8ba9-74f55ff2ea16
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4426||dummytaskhelper] 
task SR.stat D:04483281650a created by task R:8bf29b029ab9
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4426|SR.stat 
D:04483281650a|sm] SM nfs sr_update 
sr=OpaqueRef:521231d6-df3b-790b-1e22-b344a83d9d39
Dec 30 06:51:39 g6xentest xapi: [ info|g6xentest|4426|sm_exec 
D:de69815603af|xapi] Session.create 
trackid=c1839615d7fc71e0107d18c1c4397bdf pool=false uname= originator= 
is_local_superuser=true auth_user_sid= 
parent=trackid=9834f5af41c964e225f24279aefe4e49
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4426|sm_exec 
D:de69815603af|mscgen] xapi=>xapi [label="session.get_uuid"];
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4427 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:session.get_uuid 
D:93d48568da8c created by task D:de69815603af
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4426|sm_exec 
D:de69815603af|mscgen] smapiv2=>smapiv1 [label="sr_update"];
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4428 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:host.get_other_config 
D:bcccb75cca6c created by task D:04483281650a
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4429 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:SR.get_sm_config 
D:f0493eefc730 created by task D:04483281650a
Dec 30 06:51:39 g6xentest SM: [5373] sr_update {'sr_uuid': 
'787b0874-8e8b-e7d8-8ba9-74f55ff2ea16', 'subtask_of': 
'DummyRef:|04483281-650a-7f1b-5e03-2a8cac209cf5|SR.stat', 'args': [], 
'host_ref': 'OpaqueRef:bc001d57-65ce-8b2b-74b4-cd71976272c0', 
'session_ref': 'OpaqueRef:375f5540-70a4-4040-4b08-fe070fc28285', 
'device_config': {'SRmaster': 'true', 'serverpath': 
'/mnt/zbiornik/testvol/', 'server': '127.0.0.1'}, 'command': 
'sr_update', 'sr_ref': 'OpaqueRef:521231d6-df3b-790b-1e22-b344a83d9d39'}
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4430 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task 
dispatch:SR.get_virtual_allocation D:d031ec9841d0 created by task 
D:04483281650a
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4431 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:SR.get_by_uuid 
D:e101c6ef40f7 created by task D:04483281650a
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4432 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task 
dispatch:SR.set_virtual_allocation D:53c96ed79ea0 created by task 
D:04483281650a
Dec 30 06:51:39 g6xentest xapi: 
[20141230T05:51:39.960Z|audit|g6xentest|4432 UNIX 
/var/lib/xcp/xapi|SR.set_virtual_allocation D:c63db6de10a8|audit] 
('trackid=c1839615d7fc71e0107d18c1c4397bdf' 'LOCAL_SUPERUSER' 
'__sm__backend' 'ALLOWED' 'OK' 'API' 'SR.set_virtual_allocation' 
(('self' 'local nfs' '787b0874-8e8b-e7d8-8ba9-74f55ff2ea16' 
'OpaqueRef:521231d6-df3b-790b-1e22-b344a83d9d39')))
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4433 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task dispatch:SR.set_physical_size 
D:cc05c69dd818 created by task D:04483281650a
Dec 30 06:51:39 g6xentest xapi: 
[20141230T05:51:39.964Z|audit|g6xentest|4433 UNIX 
/var/lib/xcp/xapi|SR.set_physical_size D:25e58ef3eb06|audit] 
('trackid=c1839615d7fc71e0107d18c1c4397bdf' 'LOCAL_SUPERUSER' 
'__sm__backend' 'ALLOWED' 'OK' 'API' 'SR.set_physical_size' (('self' 
'local nfs' '787b0874-8e8b-e7d8-8ba9-74f55ff2ea16' 
'OpaqueRef:521231d6-df3b-790b-1e22-b344a83d9d39')))
Dec 30 06:51:39 g6xentest xapi: [debug|g6xentest|4434 UNIX 
/var/lib/xcp/xapi||dummytaskhelper] task 
dispatch:SR.set_physical_utilisation D:049eb44a11d2 created by task 
D:04483281650a
Dec 30 06:51:39 g6xentest xapi: 
[20141230T05:51:39.970Z|audit|g6xentest|4434 UNIX 
/var/lib/xcp/xapi|SR.set_physical_utilisation D:ae38bbd06d6d|audit] 
('trackid=c1839615d7fc71e0107d18c1c4397bdf' 'LOCAL_SUPERUSER' 
'__sm__backend' 'ALLOWED' 'OK' 'API' 'SR.set_physical_utilisation' 
(('self' 'local nfs' '787b0874-8e8b-e7d8-8ba9-74f55ff2ea16' 
'OpaqueRef:521231d6-df3b-790b-1e22-b344a83d9d39')))
Dec 30 06:51:39 g6xentest SM: [5373] lock: closed 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/sr
Dec 30 06:51:39 g6xentest xapi: [ info|g6xentest|4426|sm_exec 
D:de69815603af|xapi] Session.destroy 
trackid=c1839615d7fc71e0107d18c1c4397bdf
Dec 30 06:51:39 g6xentest xapi: 
[20141230T05:51:39.991Z|audit|g6xentest|4424|Async.SR.update 
R:8bf29b029ab9|audit] ('trackid=875c3e601a042db2714f9fb83af9fcd7' 
'LOCAL_SUPERUSER' 'root' 'ALLOWED' 'OK' 'API' 'SR.update' (('sr' 'local 
nfs' '787b0874-8e8b-e7d8-8ba9-74f55ff2ea16' 
'OpaqueRef:521231d6-df3b-790b-1e22-b344a83d9d39')))
Dec 30 06:51:40 g6xentest xapi: [debug|g6xentest|4300 UNIX 
/var/lib/xcp/xapi||xapi] Raised at file \"cli_util.ml\", line 134, 
characters 10-67\nCalled from file \"lib/pervasiveext.ml\", line 22, 
characters 2-9\n
Dec 30 06:51:40 g6xentest xapi: 
[20141230T05:51:40.644Z|audit|g6xentest|4300 UNIX 
/var/lib/xcp/xapi|task.destroy D:afc218562a1b|audit] 
('trackid=09a9f582057ad27816e43a4d3c18bf1b' 'LOCAL_SUPERUSER' 'root' 
'ALLOWED' 'OK' 'API' 'task.destroy' (('self' 'VM import' 
'70859ad6-0420-baa8-17ac-759cb01acde3' 
'OpaqueRef:dbdb0ee5-ae16-0f3d-0c0e-dcaf23a52a88')))
Dec 30 06:51:40 g6xentest xapi: [debug|g6xentest|4300 UNIX 
/var/lib/xcp/xapi||xapi] Raised at file \"lib/pervasiveext.ml\", line 
26, characters 22-25\nCalled from file \"cli_operations.ml\", line 3283, 
characters 18-111\nCalled from file \"xapi_cli.ml\", line 119, 
characters 18-58\nCalled from file \"lib/pervasiveext.ml\", line 22, 
characters 2-9\n
Dec 30 06:51:40 g6xentest xapi: [ info|g6xentest|4300 UNIX 
/var/lib/xcp/xapi|session.logout D:a74027f037bd|xapi] Session.destroy 
trackid=09a9f582057ad27816e43a4d3c18bf1b
Dec 30 06:51:40 g6xentest xapi: [debug|g6xentest|4300 UNIX 
/var/lib/xcp/xapi||backtrace] Raised at file \"lib/pervasiveext.ml\", 
line 26, characters 22-25\nCalled from file \"xapi_cli.ml\", line 118, 
characters 2-139\nCalled from file \"xapi_cli.ml\", line 221, characters 
7-44\nCalled from file \"xapi_cli.ml\", line 273, characters 4-23\n
Dec 30 06:51:40 g6xentest xapi: [debug|g6xentest|4300 UNIX 
/var/lib/xcp/xapi||cli] Xapi_cli.exception_handler: Got exception 
SR_BACKEND_FAILURE: [ non-zero exit; ; Traceback (most recent call 
last):#012  File "/opt/xensource/sm/NFSSR", line 278, in <module>#012    
SRCommand.run(NFSSR, DRIVER_INFO)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 344, in run#012    ret = 
cmd.run(sr)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 110, in 
run#012    return self._run_locked(sr)#012  File 
"/usr/lib/xapi/sm/SRCommand.py", line 159, in _run_locked#012    rv = 
self._run(sr, target)#012  File "/usr/lib/xapi/sm/SRCommand.py", line 
263, in _run#012    writable, caching_params)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 1486, in activate#012    if 
self._activate_locked(sr_uuid, vdi_uuid, options):#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 83, in wrapper#012    ret = op(self, 
*args)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1522, in 
_activate_locked#012    dev_path = self._activate(sr_uuid, vdi_uuid, 
options)#012  File "/usr/lib/xapi/sm/blktap2.py", line 1560, in 
_activate#012 self._get_pool_config(sr_uuid).get("mem-pool-size"))#012  
File "/usr/lib/xapi/sm/blktap2.py", line 1243, in _tap_activate#012 
tapdisk = Tapdisk.find_by_path(phy_path)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 690, in find_by_path#012 return 
cls.find(path=path)#012  File "/usr/lib/xapi/sm/blktap2.py", line 678, 
in find#012    found = list(cls.list(**args))#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 653, in list#012    for row in 
TapCtl.list(**args):#012  File "/usr/lib/xapi/sm/blktap2.py", line 118, 
in loop#012    return f(*__t, **__d)#012  File 
"/usr/lib/xapi/sm/blktap2.py", line 348, in list#012    if e.status in 
transient:#012  File "/usr/lib/xapi/sm/blktap2.py", line 162, in 
__getattr__#012    return object.__getattribute__(self, 
key)#012AttributeError: 'CommandFailure' object has no attribute 
'status'#012 ]
Dec 30 06:51:40 g6xentest xapi: [debug|g6xentest|4300 UNIX 
/var/lib/xcp/xapi||cli] Raised at file \"lib/pervasiveext.ml\", line 26, 
characters 22-25\nCalled from file \"xapi_cli.ml\", line 118, characters 
2-139\nCalled from file \"xapi_cli.ml\", line 221, characters 
7-44\nCalled from file \"xapi_cli.ml\", line 273, characters 4-23\n
Dec 30 06:51:40 g6xentest SMGC: [5343] SR.update_asynch status changed 
to [success]
Dec 30 06:51:40 g6xentest SM: [5343] lock: released 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/running
Dec 30 06:51:40 g6xentest SM: [5343] lock: tried lock 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/sr, acquired: True 
(exists: True)
Dec 30 06:51:40 g6xentest SM: [5343] ['/usr/bin/vhd-util', 'scan', '-f', 
'-c', '-m', '/var/run/sr-mount/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/*.vhd']
Dec 30 06:51:40 g6xentest SM: [5343]   pread SUCCESS
Dec 30 06:51:40 g6xentest SMGC: [5343] SR 787b ('local nfs') (0 VDIs in 
0 VHD trees): showing only VHD trees that changed:
Dec 30 06:51:40 g6xentest SMGC: [5343] Tree 
cae30e9b-ebd4-4450-8ce0-9f4035ca62f1 gone
Dec 30 06:51:40 g6xentest SMGC: [5343]
Dec 30 06:51:40 g6xentest SM: [5343] lock: released 
/var/lock/sm/787b0874-8e8b-e7d8-8ba9-74f55ff2ea16/sr
Dec 30 06:51:40 g6xentest SMGC: [5343] No work, exiting
Dec 30 06:51:40 g6xentest SMGC: [5343] In cleanup
Dec 30 06:51:40 g6xentest SMGC: [5343] SR 787b ('local nfs') (0 VDIs in 
0 VHD trees): no changes
Dec 30 06:51:40 g6xentest xapi: [ info|g6xentest|4437 UNIX 
/var/lib/xcp/xapi|session.logout D:62093672901c|xapi] Session.destroy 
trackid=875c3e601a042db2714f9fb83af9fcd7
Dec 30 06:51:40 g6xentest xcp-rrdd: [debug|g6xentest|1326 
unix_rpc||http] Request { frame = false; method = POST; uri = 
/var/lib/xcp/xcp-rrdd; query = [  ]; content_length = [ 330 ]; transfer 
encoding = ; version = 1.1; cookie = [ = ]; task = ; subtask_of = ; 
content-type = ; host = ; user_agent = /usr/sbin/xapi }
Dec 30 06:51:41 g6xentest xcp-rrdd: [debug|g6xentest|0 
monitor|main|rrdd_stats] system stats: MemTotal: 8141572 KiB; MemFree: 
6811472 KiB; Buffered: 77624 KiB; Cached: 762040 KiB; SwapTotal: 0 KiB; 
SwapFree: 0 KiB
Dec 30 06:51:41 g6xentest xcp-rrdd: [debug|g6xentest|0 
monitor|main|rrdd_stats] Clock drift: 0
Dec 30 06:51:41 g6xentest xcp-rrdd: [debug|g6xentest|0 
monitor|main|rrdd_stats] xcp-rrdd stats (n = 1): size: 340776 KiB; rss: 
8112 KiB; data: 316292 KiB; stack: 136 KiB
Dec 30 06:51:41 g6xentest xcp-rrdd: [debug|g6xentest|0 
monitor|main|rrdd_stats] xapi stats (n = 2): size: 3322164 KiB; rss: 
46944 KiB; data: 3226392 KiB; stack: 272 KiB
Dec 30 06:51:41 g6xentest forkexecd: [error|g6xentest|0||forkexecd] 5394 
(/bin/pidof xenopsd) exitted with code 1
Dec 30 06:51:41 g6xentest xcp-rrdd: [debug|g6xentest|0 
monitor|main|rrdd_stats] xenopsd stats (n = 0): size: 0 KiB; rss: 0 KiB; 
data: 0 KiB; stack: 0 KiB

_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

From xen-api-bounces@lists.xen.org Tue Dec 30 15:30:42 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2014 15:30:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Y5ykk-0001KT-5X; Tue, 30 Dec 2014 15:30:34 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Dave.Scott@citrix.com>) id 1Y5yki-0001KO-F6
	for xen-api@lists.xen.org; Tue, 30 Dec 2014 15:30:32 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	E0/A8-15461-715C2A45; Tue, 30 Dec 2014 15:30:31 +0000
X-Env-Sender: Dave.Scott@citrix.com
X-Msg-Ref: server-4.tower-21.messagelabs.com!1419953426!18466238!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
	Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 14193 invoked from network); 30 Dec 2014 15:30:27 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-4.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Dec 2014 15:30:27 -0000
X-IronPort-AV: E=Sophos;i="5.07,666,1413244800"; d="scan'208";a="28281624"
From: Dave Scott <Dave.Scott@citrix.com>
To: David <dkadds2@gmail.com>
Thread-Topic: [Xen-API] NFS exported from ZFS on Ubuntu 14.04
Thread-Index: AQHQJD9sNFTn2HT1iEqxhckPLUk7k5yoMcSA
Date: Tue, 30 Dec 2014 15:30:24 +0000
Message-ID: <101E8D96-8243-48BB-AE07-804E785BC24C@citrix.com>
References: <54A2BA68.2060105@gmail.com>
In-Reply-To: <54A2BA68.2060105@gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Content-ID: <2A4A77EAD075694A9CEBBAA6C55EAFA6@citrix.com>
MIME-Version: 1.0
X-DLP: AMS1
Cc: Xen API mailing list <xen-api@lists.xen.org>
Subject: Re: [Xen-API] NFS exported from ZFS on Ubuntu 14.04
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

SGksDQoNCj4gT24gMzAgRGVjIDIwMTQsIGF0IDE0OjQ0LCBEYXZpZCA8ZGthZGRzMkBnbWFpbC5j
b20+IHdyb3RlOg0KPiANCj4gSGkgR3V5cywNCj4gDQo+IEknbSBsb29raW5nIGZvciB5b3VyIGhl
bHAgYXMgSSdtIGZhY2luZyBpc3N1ZSB3aXRoIFhlbiBhbmQgTkZTIFN0b3JhZ2UgUmVwb3NpdG9y
eS4NCj4gVGhlIHByb2JsZW0gSSdtIGZhY2luZyBpcyB0aGF0IHZtLWltcG9ydCBmYWlscyBkdWUg
dG8gYmxrdGFwMiBpc3N1ZSAoc2VlbXMgbGlrZSkuDQo+IExhc3QgY2FsbCBpcyBhYm91dCB2ZGlf
YWN0aXZhdGUgZmFpbHVyZSAoZnVsbCBkdW1wIGJlbG93KToNCj4gDQo+IGdlbmVyaWMgZXhjZXB0
aW9uOiB2ZGlfYWN0aXZhdGU6IEVYQ0VQVElPTiA8dHlwZSAnZXhjZXB0aW9ucy5BdHRyaWJ1dGVF
cnJvcic+LCAnQ29tbWFuZEZhaWx1cmUnIG9iamVjdCBoYXMgbm8gYXR0cmlidXRlICdzdGF0dXMn
DQo+IA0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICBGaWxlICIvdXNy
L2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDE1NjAsIGluIF9hY3RpdmF0ZQ0KPiBEZWMg
MzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gc2VsZi5fZ2V0X3Bvb2xfY29uZmlnKHNy
X3V1aWQpLmdldCgibWVtLXBvb2wtc2l6ZSIpKQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0
IFNNOiBbNTI2Nl0gICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDEy
NDMsIGluIF90YXBfYWN0aXZhdGUNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUy
NjZdICAgICB0YXBkaXNrID0gVGFwZGlzay5maW5kX2J5X3BhdGgocGh5X3BhdGgpDQo+IA0KPiAN
Cj4gT24gYmFja2VuZCBzaWRlIE5GUyBpcyBleHBvcnRlZCBmcm9tIFpGUyAobG9jYWxob3N0KSBl
bmNyeXB0ZWQgd2l0aCBkZWR1cCBvbiBpZiBpdCB3b3VsZCBtYXR0ZXIuDQo+IFhlbnNlcnZlciBp
cyBjb21waWxlZCBmcm9tIHNvdXJjZXMgZnJvbSBidWlsZHJvb3QuDQo+IA0KPiBJJ3ZlIHRyaWVk
IHRvIHVzZSBGaWxlU1IgYnV0IGl0IGZhaWxlZCBtaXNlcmFibHkgdG9vLg0KPiBUbyBnZXQgdG8g
dGhlIHN0YWdlIHdoZXJlIEkgYW0gbm93IEkndmUgaGFkIHRvIGZpeCBzb21lIHN0YXRpYyBwYXRo
cyB3aXRoaW4gU1IgYWRhcHRlcnMuDQoNCkRvIHlvdXIgcGF0aCBtb2RpZmljYXRpb25zIGxvb2sg
c2ltaWxhciB0byBCb2LigJlzPyAoYWxzbyBjYzpkIGluIGNhc2UgaGUgY2FuIHNwb3Qgc29tZXRo
aW5nKQ0KDQpodHRwczovL2dpdGh1Yi5jb20veGVuc2VydmVyL2J1aWxkcm9vdC9wdWxsLzU4MA0K
DQpJ4oCZbSBzdXNwaWNpb3VzIGJlY2F1c2Ugb2Ygb25lIG9mIHRoZSBzZWN0aW9ucyBvZiB0aGUg
c3RhY2sgdHJhY2UgYmVsb3c6DQoNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUy
NjZdICAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA2NTMsIGluIGxp
c3QNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAgICBmb3Igcm93IGlu
IFRhcEN0bC5saXN0KCoqYXJncyk6DQoNCuKAlCB0aGlzIGlzIHdoZXJlIHRoZSBTTSBwbHVnaW4g
cnVucyDigJx0YXAtY3RsIGxpc3TigJ0gYW5kIHBhcnNlcyB0aGUgb3V0cHV0LiBDb3VsZCB0aGUg
cGF0aCB0byB0aGlzIGNvbW1hbmQgYmUgd3Jvbmc/DQoNCg0KPiANCj4gQW55IGhlbHAgYW5kIGhp
bnRzIGlzIG1vcmUgdGhhbiBhcHByZWNpYXRlZC4NCj4gDQo+IGJ0dy4gd2h5IGRvIEkgdXNlIFpG
UyBleHBvcnRlZCB2aWEgTkZTPyBJIG5lZWQgY29tcHJlc3Npb24gYW5kIGRlZHVwbGljYXRpb24u
IEhvc3QgaXRzZWxmIGhhcyBwbGVudHkgb2YgcmVzb3VyY2VzIGFuZCB3aWxsIGJlIHJ1bm5pbmcg
Y291cGxlIG9mIFZNcyB3aXRoIGFsbW9zdCBzYW1lIGNvbmZpZ3VyYXRpb24gYW5kIHdvbid0IGJl
IGhpZ2hseSBsb2FkZWQuIFRoZXJlZm9yZSBJJ20gbm90IGFmdGVyIHBlcmZvcm1hbmNlIGJ1dCBt
b3JlIGNvbmNlcm5lZCBhYm91dCBzdG9yYWdlIHNwYWNlLg0KPiBBbnkgaGludHMgb24gaG93IHRv
IHB1dCBTUiBvbiBaRlMgb24gTGludXggKFVidW50dSBwcmVmZXJyZWQpIHdvdWxkIGJlIGdyZWF0
Lg0KPiBJJ3ZlIHRlc3RlZCBzbyBmYXIgRmlsZVNSLCB0cmllZCB0byBleHBvc2UgWkZTIGJsb2Nr
IGRldmljZSBhbmQgbG9vcGJhY2sgYnV0IGl0IGRpZG4ndCB3b3JrLg0KPiBDcmVhdGluZyBmaWxl
IG9uIFpGUyBtb3VudGVkIHZpYSBsb29wYmFjayB0byBjcmVhdGUgdmcvcHYvbHYgc2VlbXMgbGlr
ZSBhbiBvdmVya2lsbC4NCj4gDQo+IFRoZSBsYXN0IG9wdGlvbiB3aGljaCBJJ3ZlIGZpZ3VyZWQg
b3V0IHdvdWxkIGJlIHRvIGV4cG9zZSBaRlMgdmlhIGlTQ1NJLCBidXQgdGhpcyBzZWVtcyB0byBi
ZSBhbiBvdmVya2lsbCB0b28uDQo+IFRoZSBlYXNpZXN0IGZvciBtZSBhbmQgZnVsbHkgYWNjZXB0
YWJsZSB3b3VsZCBiZSB0byB1c2UgVkhEIChWREkpIGZpbGVzIGRpcmVjdGx5IG9uIFpGUyBidXQg
aXQgZGlkbid0IHdvcmsgbmVpdGhlci4NCg0KSSB0aGluayB1c2luZyAudmhkIGZpbGVzIGRpcmVj
dGx5IG9uIGFuIFpGUyBtb3VudCB2aWEgRmlsZVNSIHdvdWxkIGJlIGlkZWFsLiBPbmNlIHdl4oCZ
dmUgZmlndXJlZCBvdXQgd2hhdOKAmXMgd3Jvbmcgd2l0aCB0aGUgc2hhcmVkIGJsa3RhcDIucHkg
Y29kZSB0aGF0IHNob3VsZCB3b3JrLg0KDQpDaGVlcnMsDQpEYXZlDQo+IA0KPiBUaGFua3MsDQo+
IERhd2lkDQo+IA0KPiANCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdIFsn
L3Vzci9zYmluL3RkLXV0aWwnLCAncXVlcnknLCAndmhkJywgJy12cGYnLCAnL3Zhci9ydW4vc3It
bW91bnQvNzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2L2NhZTMwZTliLWViZDQt
NDQ1MC04Y2UwLTlmNDAzNWNhNjJmMS52aGQnXQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0
IFNNOiBbNTI2Nl0gICBwcmVhZCBTVUNDRVNTDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3Qg
U006IFs1MjY2XSBQaHlMaW5rKC9kZXYvc20vcGh5Lzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0
ZjU1ZmYyZWExNi9jYWUzMGU5Yi1lYmQ0LTQ0NTAtOGNlMC05ZjQwMzVjYTYyZjEpIC0+IC92YXIv
cnVuL3NyLW1vdW50Lzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWExNi9jYWUzMGU5
Yi1lYmQ0LTQ0NTAtOGNlMC05ZjQwMzVjYTYyZjEudmhkDQo+IERlYyAzMCAwNjo1MTozOCBnNnhl
bnRlc3QgeGFwaTogWyBpbmZvfGc2eGVudGVzdHw0MzYzIFVOSVggL3Zhci9saWIveGNwL3hhcGl8
c2Vzc2lvbi5sb2dpbl93aXRoX3Bhc3N3b3JkIEQ6OTY1MjJiMGJiYTRifHhhcGldIFNlc3Npb24u
Y3JlYXRlIHRyYWNraWQ9YjQwZWUwZjcwZGY2NjY5ZDI4ZDY3Y2QwNzcwMDM3MzQgcG9vbD1mYWxz
ZSB1bmFtZT1yb290IG9yaWdpbmF0b3I9IGlzX2xvY2FsX3N1cGVydXNlcj10cnVlIGF1dGhfdXNl
cl9zaWQ9IHBhcmVudD10cmFja2lkPTk4MzRmNWFmNDFjOTY0ZTIyNWYyNDI3OWFlZmU0ZTQ5DQo+
IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzYzIFVO
SVggL3Zhci9saWIveGNwL3hhcGl8c2Vzc2lvbi5sb2dpbl93aXRoX3Bhc3N3b3JkIEQ6OTY1MjJi
MGJiYTRifG1zY2dlbl0geGFwaT0+eGFwaSBbbGFiZWw9InNlc3Npb24uZ2V0X3V1aWQiXTsNCj4g
RGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzNjQgVU5J
WCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0YXNrIGRpc3BhdGNoOnNlc3Np
b24uZ2V0X3V1aWQgRDpjYTgxYTYwYjEzNWUgY3JlYXRlZCBieSB0YXNrIEQ6OTY1MjJiMGJiYTRi
DQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogWyBpbmZvfGc2eGVudGVzdHw0Mzcx
IFVOSVggL3Zhci9saWIveGNwL3hhcGl8c2Vzc2lvbi5sb2dvdXQgRDpkNDVmZTI5Y2M0NzJ8eGFw
aV0gU2Vzc2lvbi5kZXN0cm95IHRyYWNraWQ9YjQwZWUwZjcwZGY2NjY5ZDI4ZDY3Y2QwNzcwMDM3
MzQNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdIEV4Y2VwdGlvbiBpbiBh
Y3RpdmF0ZS9hdHRhY2gNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8
ZzZ4ZW50ZXN0fDQzNzIgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0
YXNrIGRpc3BhdGNoOlZESS5nZXRfYnlfdXVpZCBEOjgxNmJhZTQ0NGY2YyBjcmVhdGVkIGJ5IHRh
c2sgRDo3YjAzMzAxYzE4NGMNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVi
dWd8ZzZ4ZW50ZXN0fDQzNzMgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVy
XSB0YXNrIGRpc3BhdGNoOmhvc3QuZ2V0X2J5X3V1aWQgRDo5YzA1ZGUzYzZmMjQgY3JlYXRlZCBi
eSB0YXNrIEQ6N2IwMzMwMWMxODRjDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTog
W2RlYnVnfGc2eGVudGVzdHw0Mzc0IFVOSVggL3Zhci9saWIveGNwL3hhcGl8fGR1bW15dGFza2hl
bHBlcl0gdGFzayBkaXNwYXRjaDpWREkuZ2V0X3NtX2NvbmZpZyBEOjBhNGYxNTJmZmUyNiBjcmVh
dGVkIGJ5IHRhc2sgRDo3YjAzMzAxYzE4NGMNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4
YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzNzUgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0
YXNraGVscGVyXSB0YXNrIGRpc3BhdGNoOlZESS5yZW1vdmVfZnJvbV9zbV9jb25maWcgRDpjYjY3
N2RmZTk3ZjAgY3JlYXRlZCBieSB0YXNrIEQ6N2IwMzMwMWMxODRjDQo+IERlYyAzMCAwNjo1MToz
OCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0Mzc1IFVOSVggL3Zhci9saWIveGNw
L3hhcGl8ZGlzcGF0Y2g6VkRJLnJlbW92ZV9mcm9tX3NtX2NvbmZpZyBEOmNiNjc3ZGZlOTdmMHxh
cGlfZWZmZWN0XSBWREkucmVtb3ZlX2Zyb21fc21fY29uZmlnDQo+IERlYyAzMCAwNjo1MTozOCBn
NnhlbnRlc3QgeGFwaTogWzIwMTQxMjMwVDA1OjUxOjM4LjM5Nlp8YXVkaXR8ZzZ4ZW50ZXN0fDQz
NzUgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWREkucmVtb3ZlX2Zyb21fc21fY29uZmlnIEQ6NTUw
Yjg3ZTdkODdmfGF1ZGl0XSAoJ3RyYWNraWQ9YmUyZTBkMDA0NDYxNmY5MGM4YjczZjYwODMwOTU0
MWUnICdMT0NBTF9TVVBFUlVTRVInICdfX3NtX19iYWNrZW5kJyAnQUxMT1dFRCcgJ09LJyAnQVBJ
JyAnVkRJLnJlbW92ZV9mcm9tX3NtX2NvbmZpZycgKCgnc2VsZicgJ1hPQSBTeXN0ZW0nICdjYWUz
MGU5Yi1lYmQ0LTQ0NTAtOGNlMC05ZjQwMzVjYTYyZjEnICdPcGFxdWVSZWY6MGIxMzJjYTYtYjhl
Ny1jMTFmLTZmZmYtZGVjMDg0MzJjYWZlJykpKQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0
IFNNOiBbNTI2Nl0gUmVtb3ZlZCBob3N0IGtleSBob3N0X09wYXF1ZVJlZjpiYzAwMWQ1Ny02NWNl
LThiMmItNzRiNC1jZDcxOTc2MjcyYzAgZm9yIGNhZTMwZTliLWViZDQtNDQ1MC04Y2UwLTlmNDAz
NWNhNjJmMQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gKioqKiogQkxL
VEFQMjo8ZnVuY3Rpb24gX2FjdGl2YXRlX2xvY2tlZCBhdCAweDdmNjExYTgwMWVkOD46IEVYQ0VQ
VElPTiA8dHlwZSAnZXhjZXB0aW9ucy5BdHRyaWJ1dGVFcnJvcic+LCAnQ29tbWFuZEZhaWx1cmUn
IG9iamVjdCBoYXMgbm8gYXR0cmlidXRlICdzdGF0dXMnDQo+IERlYyAzMCAwNjo1MTozOCBnNnhl
bnRlc3QgU006IFs1MjY2XSAgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxp
bmUgODMsIGluIHdyYXBwZXINCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZd
ICAgICByZXQgPSBvcChzZWxmLCAqYXJncykNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBT
TTogWzUyNjZdICAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNTIy
LCBpbiBfYWN0aXZhdGVfbG9ja2VkDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1
MjY2XSAgICAgZGV2X3BhdGggPSBzZWxmLl9hY3RpdmF0ZShzcl91dWlkLCB2ZGlfdXVpZCwgb3B0
aW9ucykNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAgRmlsZSAiL3Vz
ci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNTYwLCBpbiBfYWN0aXZhdGUNCj4gRGVj
IDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdIHNlbGYuX2dldF9wb29sX2NvbmZpZyhz
cl91dWlkKS5nZXQoIm1lbS1wb29sLXNpemUiKSkNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVz
dCBTTTogWzUyNjZdICAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAx
MjQzLCBpbiBfdGFwX2FjdGl2YXRlDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1
MjY2XSAgICAgdGFwZGlzayA9IFRhcGRpc2suZmluZF9ieV9wYXRoKHBoeV9wYXRoKQ0KPiBEZWMg
MzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICBGaWxlICIvdXNyL2xpYi94YXBpL3Nt
L2Jsa3RhcDIucHkiLCBsaW5lIDY5MCwgaW4gZmluZF9ieV9wYXRoDQo+IERlYyAzMCAwNjo1MToz
OCBnNnhlbnRlc3QgU006IFs1MjY2XSAgICAgcmV0dXJuIGNscy5maW5kKHBhdGg9cGF0aCkNCj4g
RGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAgRmlsZSAiL3Vzci9saWIveGFw
aS9zbS9ibGt0YXAyLnB5IiwgbGluZSA2NzgsIGluIGZpbmQNCj4gRGVjIDMwIDA2OjUxOjM4IGc2
eGVudGVzdCBTTTogWzUyNjZdICAgICBmb3VuZCA9IGxpc3QoY2xzLmxpc3QoKiphcmdzKSkNCj4g
RGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAgRmlsZSAiL3Vzci9saWIveGFw
aS9zbS9ibGt0YXAyLnB5IiwgbGluZSA2NTMsIGluIGxpc3QNCj4gRGVjIDMwIDA2OjUxOjM4IGc2
eGVudGVzdCBTTTogWzUyNjZdICAgICBmb3Igcm93IGluIFRhcEN0bC5saXN0KCoqYXJncyk6DQo+
IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2XSAgIEZpbGUgIi91c3IvbGliL3hh
cGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTE4LCBpbiBsb29wDQo+IERlYyAzMCAwNjo1MTozOCBn
NnhlbnRlc3QgU006IFs1MjY2XSAgICAgcmV0dXJuIGYoKl9fdCwgKipfX2QpDQo+IERlYyAzMCAw
Njo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2XSAgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxr
dGFwMi5weSIsIGxpbmUgMzQ4LCBpbiBsaXN0DQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3Qg
U006IFs1MjY2XSAgICAgaWYgZS5zdGF0dXMgaW4gdHJhbnNpZW50Og0KPiBEZWMgMzAgMDY6NTE6
MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIu
cHkiLCBsaW5lIDE2MiwgaW4gX19nZXRhdHRyX18NCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVz
dCBTTTogWzUyNjZdICAgICByZXR1cm4gb2JqZWN0Ll9fZ2V0YXR0cmlidXRlX18oc2VsZiwga2V5
KQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0NCj4gRGVjIDMwIDA2OjUx
OjM4IGc2eGVudGVzdCBTTTogWzUyNjZdIGxvY2s6IHJlbGVhc2VkIC92YXIvbG9jay9zbS9jYWUz
MGU5Yi1lYmQ0LTQ0NTAtOGNlMC05ZjQwMzVjYTYyZjEvdmRpDQo+IERlYyAzMCAwNjo1MTozOCBn
NnhlbnRlc3QgU006IFs1MjY2XSAqKioqKiBnZW5lcmljIGV4Y2VwdGlvbjogdmRpX2FjdGl2YXRl
OiBFWENFUFRJT04gPHR5cGUgJ2V4Y2VwdGlvbnMuQXR0cmlidXRlRXJyb3InPiwgJ0NvbW1hbmRG
YWlsdXJlJyBvYmplY3QgaGFzIG5vIGF0dHJpYnV0ZSAnc3RhdHVzJw0KPiBEZWMgMzAgMDY6NTE6
MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFu
ZC5weSIsIGxpbmUgMTEwLCBpbiBydW4NCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTog
WzUyNjZdICAgICByZXR1cm4gc2VsZi5fcnVuX2xvY2tlZChzcikNCj4gRGVjIDMwIDA2OjUxOjM4
IGc2eGVudGVzdCBTTTogWzUyNjZdICAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1hbmQu
cHkiLCBsaW5lIDE1OSwgaW4gX3J1bl9sb2NrZWQNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVz
dCBTTTogWzUyNjZdICAgICBydiA9IHNlbGYuX3J1bihzciwgdGFyZ2V0KQ0KPiBEZWMgMzAgMDY6
NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL1NSQ29t
bWFuZC5weSIsIGxpbmUgMjYzLCBpbiBfcnVuDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3Qg
U006IFs1MjY2XSAgICAgd3JpdGFibGUsIGNhY2hpbmdfcGFyYW1zKQ0KPiBEZWMgMzAgMDY6NTE6
MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIu
cHkiLCBsaW5lIDE0ODYsIGluIGFjdGl2YXRlDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3Qg
U006IFs1MjY2XSAgICAgaWYgc2VsZi5fYWN0aXZhdGVfbG9ja2VkKHNyX3V1aWQsIHZkaV91dWlk
LCBvcHRpb25zKToNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAgRmls
ZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA4MywgaW4gd3JhcHBlcg0KPiBE
ZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICAgIHJldCA9IG9wKHNlbGYsICph
cmdzKQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICBGaWxlICIvdXNy
L2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDE1MjIsIGluIF9hY3RpdmF0ZV9sb2NrZWQN
Cj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAgICBkZXZfcGF0aCA9IHNl
bGYuX2FjdGl2YXRlKHNyX3V1aWQsIHZkaV91dWlkLCBvcHRpb25zKQ0KPiBEZWMgMzAgMDY6NTE6
MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIu
cHkiLCBsaW5lIDE1NjAsIGluIF9hY3RpdmF0ZQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0
IFNNOiBbNTI2Nl0gc2VsZi5fZ2V0X3Bvb2xfY29uZmlnKHNyX3V1aWQpLmdldCgibWVtLXBvb2wt
c2l6ZSIpKQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICBGaWxlICIv
dXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDEyNDMsIGluIF90YXBfYWN0aXZhdGUN
Cj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAgICB0YXBkaXNrID0gVGFw
ZGlzay5maW5kX2J5X3BhdGgocGh5X3BhdGgpDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3Qg
U006IFs1MjY2XSAgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgNjkw
LCBpbiBmaW5kX2J5X3BhdGgNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZd
ICAgICByZXR1cm4gY2xzLmZpbmQocGF0aD1wYXRoKQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50
ZXN0IFNNOiBbNTI2Nl0gICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5l
IDY3OCwgaW4gZmluZA0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICAg
IGZvdW5kID0gbGlzdChjbHMubGlzdCgqKmFyZ3MpKQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50
ZXN0IFNNOiBbNTI2Nl0gICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5l
IDY1MywgaW4gbGlzdA0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICAg
IGZvciByb3cgaW4gVGFwQ3RsLmxpc3QoKiphcmdzKToNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVu
dGVzdCBTTTogWzUyNjZdICAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGlu
ZSAxMTgsIGluIGxvb3ANCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAg
ICByZXR1cm4gZigqX190LCAqKl9fZCkNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTog
WzUyNjZdICAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAzNDgsIGlu
IGxpc3QNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAgICBpZiBlLnN0
YXR1cyBpbiB0cmFuc2llbnQ6DQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2
XSAgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTYyLCBpbiBfX2dl
dGF0dHJfXw0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICAgIHJldHVy
biBvYmplY3QuX19nZXRhdHRyaWJ1dGVfXyhzZWxmLCBrZXkpDQo+IERlYyAzMCAwNjo1MTozOCBn
NnhlbnRlc3QgU006IFs1MjY2XQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2
Nl0gbG9jazogY2xvc2VkIC92YXIvbG9jay9zbS9jYWUzMGU5Yi1lYmQ0LTQ0NTAtOGNlMC05ZjQw
MzVjYTYyZjEvdmRpDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2XSBsb2Nr
OiBjbG9zZWQgL3Zhci9sb2NrL3NtLzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWEx
Ni9zcg0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IGZvcmtleGVjZDogW2Vycm9yfGc2eGVu
dGVzdHwwfHxmb3JrZXhlY2RdIDUyNjYgKC9vcHQveGVuc291cmNlL3NtL05GU1NSIDxtZXRob2RD
YWxsPjxtZXRob2ROYW1lPnZkaV9hY3RpdmF0ZTwvbWV0aG9kTmFtZT48cGFyLi4uKSBleGl0dGVk
IHdpdGggY29kZSAxDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2
eGVudGVzdHw0MzQwfHNtX2V4ZWMgRDo3NGE1OTJhZWRkYjN8eGFwaV0gUmFpc2VkIGF0IGZpbGUg
XCJsaWIvZm9ya2hlbHBlcnMubWxcIiwgbGluZSAxODEsIGNoYXJhY3RlcnMgMzEtNzVcbkNhbGxl
ZCBmcm9tIGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMg
Mi05XG4NCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0
fDQzNDB8c21fZXhlYyBEOjc0YTU5MmFlZGRiM3x4YXBpXSBSYWlzZWQgYXQgZmlsZSBcInNtX2V4
ZWMubWxcIiwgbGluZSAxOTMsIGNoYXJhY3RlcnMgMTAtMTAwXG5DYWxsZWQgZnJvbSBmaWxlIFwi
bGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuDQo+IERlYyAz
MCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzQwfHNtX2V4ZWMg
RDo3NGE1OTJhZWRkYjN8eGFwaV0gUmFpc2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1s
XCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJzbV9leGVj
Lm1sXCIsIGxpbmUgMTc1LCBjaGFyYWN0ZXJzIDIzLTEwMjNcbkNhbGxlZCBmcm9tIGZpbGUgXCJs
aWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMgMi05XG4NCj4gRGVjIDMw
IDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbIGluZm98ZzZ4ZW50ZXN0fDQzNDB8c21fZXhlYyBE
Ojc0YTU5MmFlZGRiM3x4YXBpXSBTZXNzaW9uLmRlc3Ryb3kgdHJhY2tpZD1iZTJlMGQwMDQ0NjE2
ZjkwYzhiNzNmNjA4MzA5NTQxZQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtk
ZWJ1Z3xnNnhlbnRlc3R8NDM0MHxzbV9leGVjIEQ6NzRhNTkyYWVkZGIzfGJhY2t0cmFjZV0gUmFp
c2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMg
MjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDcyLCBj
aGFyYWN0ZXJzIDExLTIzXG4NCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVi
dWd8ZzZ4ZW50ZXN0fDQzNDB8c21fZXhlYyBEOjc0YTU5MmFlZGRiM3xkaXNwYXRjaGVyXSBTZXJ2
ZXJfaGVscGVycy5leGVjIGV4Y2VwdGlvbl9oYW5kbGVyOiBHb3QgZXhjZXB0aW9uIFNSX0JBQ0tF
TkRfRkFJTFVSRTogWyBub24temVybyBleGl0OyA7IFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KTojMDEyICBGaWxlICIvb3B0L3hlbnNvdXJjZS9zbS9ORlNTUiIsIGxpbmUgMjc4LCBp
biA8bW9kdWxlPiMwMTIgICAgU1JDb21tYW5kLnJ1bihORlNTUiwgRFJJVkVSX0lORk8pIzAxMiAg
RmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1hbmQucHkiLCBsaW5lIDM0NCwgaW4gcnVuIzAx
MiAgICByZXQgPSBjbWQucnVuKHNyKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vU1JDb21t
YW5kLnB5IiwgbGluZSAxMTAsIGluIHJ1biMwMTIgICAgcmV0dXJuIHNlbGYuX3J1bl9sb2NrZWQo
c3IpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1hbmQucHkiLCBsaW5lIDE1OSwg
aW4gX3J1bl9sb2NrZWQjMDEyICAgIHJ2ID0gc2VsZi5fcnVuKHNyLCB0YXJnZXQpIzAxMiAgRmls
ZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1hbmQucHkiLCBsaW5lIDI2MywgaW4gX3J1biMwMTIg
ICAgd3JpdGFibGUsIGNhY2hpbmdfcGFyYW1zKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20v
YmxrdGFwMi5weSIsIGxpbmUgMTQ4NiwgaW4gYWN0aXZhdGUjMDEyICAgIGlmIHNlbGYuX2FjdGl2
YXRlX2xvY2tlZChzcl91dWlkLCB2ZGlfdXVpZCwgb3B0aW9ucyk6IzAxMiAgRmlsZSAiL3Vzci9s
aWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA4MywgaW4gd3JhcHBlciMwMTIgICAgcmV0ID0g
b3Aoc2VsZiwgKmFyZ3MpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5Iiwg
bGluZSAxNTIyLCBpbiBfYWN0aXZhdGVfbG9ja2VkIzAxMiAgICBkZXZfcGF0aCA9IHNlbGYuX2Fj
dGl2YXRlKHNyX3V1aWQsIHZkaV91dWlkLCBvcHRpb25zKSMwMTIgIEZpbGUgIi91c3IvbGliL3hh
cGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTU2MCwgaW4gX2FjdGl2YXRlIzAxMiBzZWxmLl9nZXRf
cG9vbF9jb25maWcoc3JfdXVpZCkuZ2V0KCJtZW0tcG9vbC1zaXplIikpIzAxMiAgRmlsZSAiL3Vz
ci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxMjQzLCBpbiBfdGFwX2FjdGl2YXRlIzAx
MiB0YXBkaXNrID0gVGFwZGlzay5maW5kX2J5X3BhdGgocGh5X3BhdGgpIzAxMiAgRmlsZSAiL3Vz
ci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA2OTAsIGluIGZpbmRfYnlfcGF0aCMwMTIg
cmV0dXJuIGNscy5maW5kKHBhdGg9cGF0aCkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Js
a3RhcDIucHkiLCBsaW5lIDY3OCwgaW4gZmluZCMwMTIgICAgZm91bmQgPSBsaXN0KGNscy5saXN0
KCoqYXJncykpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA2
NTMsIGluIGxpc3QjMDEyICAgIGZvciByb3cgaW4gVGFwQ3RsLmxpc3QoKiphcmdzKTojMDEyICBG
aWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDExOCwgaW4gbG9vcCMwMTIg
ICAgcmV0dXJuIGYoKl9fdCwgKipfX2QpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0
YXAyLnB5IiwgbGluZSAzNDgsIGluIGxpc3QjMDEyICAgIGlmIGUuc3RhdHVzIGluIHRyYW5zaWVu
dDojMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDE2MiwgaW4g
X19nZXRhdHRyX18jMDEyICAgIHJldHVybiBvYmplY3QuX19nZXRhdHRyaWJ1dGVfXyhzZWxmLCBr
ZXkpIzAxMkF0dHJpYnV0ZUVycm9yOiAnQ29tbWFuZEZhaWx1cmUnIG9iamVjdCBoYXMgbm8gYXR0
cmlidXRlICdzdGF0dXMnIzAxMiBdDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTog
W2RlYnVnfGc2eGVudGVzdHw0MzQwfHNtX2V4ZWMgRDo3NGE1OTJhZWRkYjN8ZGlzcGF0Y2hlcl0g
UmFpc2VkIGF0IGZpbGUgXCJoYXNodGJsLm1sXCIsIGxpbmUgMTM2LCBjaGFyYWN0ZXJzIDE5LTI4
XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL2RlYnVnLm1sXCIsIGxpbmUgMTcyLCBjaGFyYWN0ZXJz
IDM3LTY0XG4NCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50
ZXN0fDQzNDB8c21fZXhlYyBEOjc0YTU5MmFlZGRiM3xiYWNrdHJhY2VdIFJhaXNlZCBhdCBmaWxl
IFwiaGFzaHRibC5tbFwiLCBsaW5lIDEzNiwgY2hhcmFjdGVycyAxOS0yOFxuQ2FsbGVkIGZyb20g
ZmlsZSBcImxpYi9kZWJ1Zy5tbFwiLCBsaW5lIDE3MiwgY2hhcmFjdGVycyAzNy02NFxuDQo+IERl
YyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzQwfHNtX2V4
ZWMgRDo3NGE1OTJhZWRkYjN8eGFwaV0gUmFpc2VkIGF0IGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5t
bFwiLCBsaW5lIDkwLCBjaGFyYWN0ZXJzIDE0LTE1XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3Bl
cnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuDQo+IERlYyAzMCAwNjo1
MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzQwfFZESS5hY3RpdmF0ZSBE
OjdiMDMzMDFjMTg0Y3x4YXBpXSBSYWlzZWQgYXQgZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxc
IiwgbGluZSAyNiwgY2hhcmFjdGVycyAyMi0yNVxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9kZWJ1
Zy5tbFwiLCBsaW5lIDU3LCBjaGFyYWN0ZXJzIDE3LTIwXG5SZS1yYWlzZWQgYXQgZmlsZSBcImxp
Yi9kZWJ1Zy5tbFwiLCBsaW5lIDYyLCBjaGFyYWN0ZXJzIDEwLTExXG5DYWxsZWQgZnJvbSBmaWxl
IFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuDQo+IERl
YyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzQwfFZESS5h
Y3RpdmF0ZSBEOjdiMDMzMDFjMTg0Y3xiYWNrdHJhY2VdIFJhaXNlZCBhdCBmaWxlIFwibGliL3Bl
cnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFyYWN0ZXJzIDIyLTI1XG5DYWxsZWQgZnJvbSBm
aWxlIFwic20ubWxcIiwgbGluZSAxNzEsIGNoYXJhY3RlcnMgMjEtNzJcbkNhbGxlZCBmcm9tIGZp
bGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDcyLCBjaGFyYWN0ZXJzIDExLTIzXG4NCj4g
RGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzNDB8VkRJ
LmFjdGl2YXRlIEQ6N2IwMzMwMWMxODRjfGRpc3BhdGNoZXJdIFNlcnZlcl9oZWxwZXJzLmV4ZWMg
ZXhjZXB0aW9uX2hhbmRsZXI6IEdvdCBleGNlcHRpb24gU1JfQkFDS0VORF9GQUlMVVJFOiBbIG5v
bi16ZXJvIGV4aXQ7IDsgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOiMwMTIgIEZp
bGUgIi9vcHQveGVuc291cmNlL3NtL05GU1NSIiwgbGluZSAyNzgsIGluIDxtb2R1bGU+IzAxMiAg
ICBTUkNvbW1hbmQucnVuKE5GU1NSLCBEUklWRVJfSU5GTykjMDEyICBGaWxlICIvdXNyL2xpYi94
YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMzQ0LCBpbiBydW4jMDEyICAgIHJldCA9IGNtZC5y
dW4oc3IpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1hbmQucHkiLCBsaW5lIDEx
MCwgaW4gcnVuIzAxMiAgICByZXR1cm4gc2VsZi5fcnVuX2xvY2tlZChzcikjMDEyICBGaWxlICIv
dXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMTU5LCBpbiBfcnVuX2xvY2tlZCMw
MTIgICAgcnYgPSBzZWxmLl9ydW4oc3IsIHRhcmdldCkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBp
L3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMjYzLCBpbiBfcnVuIzAxMiAgICB3cml0YWJsZSwgY2Fj
aGluZ19wYXJhbXMpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGlu
ZSAxNDg2LCBpbiBhY3RpdmF0ZSMwMTIgICAgaWYgc2VsZi5fYWN0aXZhdGVfbG9ja2VkKHNyX3V1
aWQsIHZkaV91dWlkLCBvcHRpb25zKTojMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3Rh
cDIucHkiLCBsaW5lIDgzLCBpbiB3cmFwcGVyIzAxMiAgICByZXQgPSBvcChzZWxmLCAqYXJncykj
MDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDE1MjIsIGluIF9h
Y3RpdmF0ZV9sb2NrZWQjMDEyICAgIGRldl9wYXRoID0gc2VsZi5fYWN0aXZhdGUoc3JfdXVpZCwg
dmRpX3V1aWQsIG9wdGlvbnMpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5
IiwgbGluZSAxNTYwLCBpbiBfYWN0aXZhdGUjMDEyIHNlbGYuX2dldF9wb29sX2NvbmZpZyhzcl91
dWlkKS5nZXQoIm1lbS1wb29sLXNpemUiKSkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Js
a3RhcDIucHkiLCBsaW5lIDEyNDMsIGluIF90YXBfYWN0aXZhdGUjMDEyIHRhcGRpc2sgPSBUYXBk
aXNrLmZpbmRfYnlfcGF0aChwaHlfcGF0aCkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Js
a3RhcDIucHkiLCBsaW5lIDY5MCwgaW4gZmluZF9ieV9wYXRoIzAxMiByZXR1cm4gY2xzLmZpbmQo
cGF0aD1wYXRoKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUg
Njc4LCBpbiBmaW5kIzAxMiAgICBmb3VuZCA9IGxpc3QoY2xzLmxpc3QoKiphcmdzKSkjMDEyICBG
aWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDY1MywgaW4gbGlzdCMwMTIg
ICAgZm9yIHJvdyBpbiBUYXBDdGwubGlzdCgqKmFyZ3MpOiMwMTIgIEZpbGUgIi91c3IvbGliL3hh
cGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTE4LCBpbiBsb29wIzAxMiAgICByZXR1cm4gZigqX190
LCAqKl9fZCkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDM0
OCwgaW4gbGlzdCMwMTIgICAgaWYgZS5zdGF0dXMgaW4gdHJhbnNpZW50OiMwMTIgIEZpbGUgIi91
c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTYyLCBpbiBfX2dldGF0dHJfXyMwMTIg
ICAgcmV0dXJuIG9iamVjdC5fX2dldGF0dHJpYnV0ZV9fKHNlbGYsIGtleSkjMDEyQXR0cmlidXRl
RXJyb3I6ICdDb21tYW5kRmFpbHVyZScgb2JqZWN0IGhhcyBubyBhdHRyaWJ1dGUgJ3N0YXR1cycj
MDEyIF0NCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0
fDQzNDB8VkRJLmFjdGl2YXRlIEQ6N2IwMzMwMWMxODRjfGRpc3BhdGNoZXJdIFJhaXNlZCBhdCBm
aWxlIFwiaGFzaHRibC5tbFwiLCBsaW5lIDEzNiwgY2hhcmFjdGVycyAxOS0yOFxuQ2FsbGVkIGZy
b20gZmlsZSBcImxpYi9kZWJ1Zy5tbFwiLCBsaW5lIDE3MiwgY2hhcmFjdGVycyAzNy02NFxuDQo+
IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzQwfFZE
SS5hY3RpdmF0ZSBEOjdiMDMzMDFjMTg0Y3xiYWNrdHJhY2VdIFJhaXNlZCBhdCBmaWxlIFwiaGFz
aHRibC5tbFwiLCBsaW5lIDEzNiwgY2hhcmFjdGVycyAxOS0yOFxuQ2FsbGVkIGZyb20gZmlsZSBc
ImxpYi9kZWJ1Zy5tbFwiLCBsaW5lIDE3MiwgY2hhcmFjdGVycyAzNy02NFxuDQo+IERlYyAzMCAw
Njo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzQwfFZESS5hY3RpdmF0
ZSBEOjdiMDMzMDFjMTg0Y3x4YXBpXSBSYWlzZWQgYXQgZmlsZSBcInNlcnZlcl9oZWxwZXJzLm1s
XCIsIGxpbmUgOTAsIGNoYXJhY3RlcnMgMTQtMTVcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvcGVy
dmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMgMi05XG4NCj4gRGVjIDMwIDA2OjUx
OjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzNDB8fHhhcGldIFJhaXNlZCBh
dCBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFyYWN0ZXJzIDIyLTI1
XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL2RlYnVnLm1sXCIsIGxpbmUgNTcsIGNoYXJhY3RlcnMg
MTctMjBcblJlLXJhaXNlZCBhdCBmaWxlIFwibGliL2RlYnVnLm1sXCIsIGxpbmUgNjIsIGNoYXJh
Y3RlcnMgMTAtMTFcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxp
bmUgMjIsIGNoYXJhY3RlcnMgMi05XG4NCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBp
OiBbZXJyb3J8ZzZ4ZW50ZXN0fDQzMjUgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWQkQucGx1ZyBS
OjZhOWZiYTNhMTE2NnxzdG9yYWdlX2ltcGxdIFN0b3JhZ2VfaW1wbDogZHA6dmJkLzAveHZkYSBz
cjo3ODdiMDg3NC04ZThiLWU3ZDgtOGJhOS03NGY1NWZmMmVhMTYgdmRpOmNhZTMwZTliLWViZDQt
NDQ1MC04Y2UwLTlmNDAzNWNhNjJmMSBvcDphY3RpdmF0ZSBlcnJvcjpTdG9yYWdlX2ludGVyZmFj
ZS5CYWNrZW5kX2Vycm9yKF8pIGJhY2t0cmFjZTpDYWxsZWQgZnJvbSBmaWxlICJzdG9yYWdlX2lt
cGwubWwiLCBsaW5lIDI5OSwgY2hhcmFjdGVycyA3LTUwDQo+IERlYyAzMCAwNjo1MTozOCBnNnhl
bnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzI1IFVOSVggL3Zhci9saWIveGNwL3hhcGl8
VkJELnBsdWcgUjo2YTlmYmEzYTExNjZ8eGFwaV0gQ2FsbGVkIGZyb20gZmlsZSBcInN0b3JhZ2Vf
aW1wbC5tbFwiLCBsaW5lIDI5OSwgY2hhcmFjdGVycyA3LTUwXG5SZS1yYWlzZWQgYXQgZmlsZSBc
InN0b3JhZ2VfaW1wbC5tbFwiLCBsaW5lIDMxOSwgY2hhcmFjdGVycyAxMS0xMlxuQ2FsbGVkIGZy
b20gZmlsZSBcImxpc3QubWxcIiwgbGluZSA4NCwgY2hhcmFjdGVycyAyNC0zNFxuQ2FsbGVkIGZy
b20gZmlsZSBcInN0b3JhZ2VfaW1wbC5tbFwiLCBsaW5lIDM0MSwgY2hhcmFjdGVycyA2LTU1XG5S
ZS1yYWlzZWQgYXQgZmlsZSBcInN0b3JhZ2VfaW1wbC5tbFwiLCBsaW5lIDM0NSwgY2hhcmFjdGVy
cyAxMi0xM1xuQ2FsbGVkIGZyb20gZmlsZSBcInN0b3JhZ2VfaW1wbC5tbFwiLCBsaW5lIDQ0NSwg
Y2hhcmFjdGVycyAxNC03N1xuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxc
IiwgbGluZSAyMiwgY2hhcmFjdGVycyAyLTlcbg0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0
IHhhcGk6IFtlcnJvcnxnNnhlbnRlc3R8NDMyNSBVTklYIC92YXIvbGliL3hjcC94YXBpfFZCRC5w
bHVnIFI6NmE5ZmJhM2ExMTY2fHN0b3JhZ2VfYWNjZXNzXSBSZS1yYWlzaW5nIGFzIFNSX0JBQ0tF
TkRfRkFJTFVSRSBbIG5vbi16ZXJvIGV4aXQ7IDsgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOiMwMTIgIEZpbGUgIi9vcHQveGVuc291cmNlL3NtL05GU1NSIiwgbGluZSAyNzgsIGlu
IDxtb2R1bGU+IzAxMiAgICBTUkNvbW1hbmQucnVuKE5GU1NSLCBEUklWRVJfSU5GTykjMDEyICBG
aWxlICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMzQ0LCBpbiBydW4jMDEy
ICAgIHJldCA9IGNtZC5ydW4oc3IpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1h
bmQucHkiLCBsaW5lIDExMCwgaW4gcnVuIzAxMiAgICByZXR1cm4gc2VsZi5fcnVuX2xvY2tlZChz
cikjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMTU5LCBp
biBfcnVuX2xvY2tlZCMwMTIgICAgcnYgPSBzZWxmLl9ydW4oc3IsIHRhcmdldCkjMDEyICBGaWxl
ICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMjYzLCBpbiBfcnVuIzAxMiAg
ICB3cml0YWJsZSwgY2FjaGluZ19wYXJhbXMpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9i
bGt0YXAyLnB5IiwgbGluZSAxNDg2LCBpbiBhY3RpdmF0ZSMwMTIgICAgaWYgc2VsZi5fYWN0aXZh
dGVfbG9ja2VkKHNyX3V1aWQsIHZkaV91dWlkLCBvcHRpb25zKTojMDEyICBGaWxlICIvdXNyL2xp
Yi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDgzLCBpbiB3cmFwcGVyIzAxMiAgICByZXQgPSBv
cChzZWxmLCAqYXJncykjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBs
aW5lIDE1MjIsIGluIF9hY3RpdmF0ZV9sb2NrZWQjMDEyICAgIGRldl9wYXRoID0gc2VsZi5fYWN0
aXZhdGUoc3JfdXVpZCwgdmRpX3V1aWQsIG9wdGlvbnMpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFw
aS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNTYwLCBpbiBfYWN0aXZhdGUjMDEyIHNlbGYuX2dldF9w
b29sX2NvbmZpZyhzcl91dWlkKS5nZXQoIm1lbS1wb29sLXNpemUiKSkjMDEyICBGaWxlICIvdXNy
L2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDEyNDMsIGluIF90YXBfYWN0aXZhdGUjMDEy
IHRhcGRpc2sgPSBUYXBkaXNrLmZpbmRfYnlfcGF0aChwaHlfcGF0aCkjMDEyICBGaWxlICIvdXNy
L2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDY5MCwgaW4gZmluZF9ieV9wYXRoIzAxMiBy
ZXR1cm4gY2xzLmZpbmQocGF0aD1wYXRoKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxr
dGFwMi5weSIsIGxpbmUgNjc4LCBpbiBmaW5kIzAxMiAgICBmb3VuZCA9IGxpc3QoY2xzLmxpc3Qo
KiphcmdzKSkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDY1
MywgaW4gbGlzdCMwMTIgICAgZm9yIHJvdyBpbiBUYXBDdGwubGlzdCgqKmFyZ3MpOiMwMTIgIEZp
bGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTE4LCBpbiBsb29wIzAxMiAg
ICByZXR1cm4gZigqX190LCAqKl9fZCkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3Rh
cDIucHkiLCBsaW5lIDM0OCwgaW4gbGlzdCMwMTIgICAgaWYgZS5zdGF0dXMgaW4gdHJhbnNpZW50
OiMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTYyLCBpbiBf
X2dldGF0dHJfXyMwMTIgICAgcmV0dXJuIG9iamVjdC5fX2dldGF0dHJpYnV0ZV9fKHNlbGYsIGtl
eSkjMDEyQXR0cmlidXRlRXJyb3I6ICdDb21tYW5kRmFpbHVyZScgb2JqZWN0IGhhcyBubyBhdHRy
aWJ1dGUgJ3N0YXR1cycjMDEyIF0NCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBb
ZGVidWd8ZzZ4ZW50ZXN0fDQzMjUgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWQkQucGx1ZyBSOjZh
OWZiYTNhMTE2Nnx4YXBpXSBSYWlzZWQgYXQgZmlsZSBcInN0b3JhZ2VfYWNjZXNzLm1sXCIsIGxp
bmUgOTcxLCBjaGFyYWN0ZXJzIDktNDhcbkNhbGxlZCBmcm9tIGZpbGUgXCJzdG9yYWdlX2FjY2Vz
cy5tbFwiLCBsaW5lIDk2NywgY2hhcmFjdGVycyAyLTZcblJlLXJhaXNlZCBhdCBmaWxlIFwic3Rv
cmFnZV9hY2Nlc3MubWxcIiwgbGluZSA5NzIsIGNoYXJhY3RlcnMgNTYtNTdcbkNhbGxlZCBmcm9t
IGZpbGUgXCJtZXNzYWdlX2ZvcndhcmRpbmcubWxcIiwgbGluZSAyMzMsIGNoYXJhY3RlcnMgMjUt
NDRcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNo
YXJhY3RlcnMgMi05XG4NCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8
ZzZ4ZW50ZXN0fDQzMjUgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWQkQucGx1ZyBSOjZhOWZiYTNh
MTE2NnxiYWNrdHJhY2VdIFJhaXNlZCBhdCBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBs
aW5lIDI2LCBjaGFyYWN0ZXJzIDIyLTI1XG5DYWxsZWQgZnJvbSBmaWxlIFwibWVzc2FnZV9mb3J3
YXJkaW5nLm1sXCIsIGxpbmUgMzUwMiwgY2hhcmFjdGVycyAzLTE5NFxuQ2FsbGVkIGZyb20gZmls
ZSBcInJiYWMubWxcIiwgbGluZSAyMjcsIGNoYXJhY3RlcnMgMTYtMjNcbg0KPiBEZWMgMzAgMDY6
NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFsyMDE0MTIzMFQwNTo1MTozOC40NjVafGF1ZGl0fGc2eGVu
dGVzdHw0MzI1IFVOSVggL3Zhci9saWIveGNwL3hhcGl8VkJELnBsdWcgUjo2YTlmYmEzYTExNjZ8
YXVkaXRdICgndHJhY2tpZD1jYTFlMGUwMmYxYzZmOWZjYzk4MDM2OGU3MTBkOGM4YicgJ0xPQ0FM
X1NVUEVSVVNFUicgJ09wYXF1ZVJlZjpiYzAwMWQ1Ny02NWNlLThiMmItNzRiNC1jZDcxOTc2Mjcy
YzAnICdBTExPV0VEJyAnRVJST1I6U1JfQkFDS0VORF9GQUlMVVJFOiBbIG5vbi16ZXJvIGV4aXQ7
IDsgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOiAgIEZpbGUgXCIvb3B0L3hlbnNv
dXJjZS9zbS9ORlNTUlwiLCBsaW5lIDI3OCwgaW4gPG1vZHVsZT4gICAgIFNSQ29tbWFuZC5ydW4o
TkZTU1IsIERSSVZFUl9JTkZPKSAgIEZpbGUgXCIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5w
eVwiLCBsaW5lIDM0NCwgaW4gcnVuICAgICByZXQgPSBjbWQucnVuKHNyKSAgIEZpbGUgXCIvdXNy
L2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weVwiLCBsaW5lIDExMCwgaW4gcnVuICAgICByZXR1cm4g
c2VsZi5fcnVuX2xvY2tlZChzcikgICBGaWxlIFwiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1hbmQu
cHlcIiwgbGluZSAxNTksIGluIF9ydW5fbG9ja2VkICAgICBydiA9IHNlbGYuX3J1bihzciwgdGFy
Z2V0KSAgIEZpbGUgXCIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weVwiLCBsaW5lIDI2Mywg
aW4gX3J1biAgICAgd3JpdGFibGUsIGNhY2hpbmdfcGFyYW1zKSAgIEZpbGUgXCIvdXNyL2xpYi94
YXBpL3NtL2Jsa3RhcDIucHlcIiwgbGluZSAxNDg2LCBpbiBhY3RpdmF0ZSAgICAgaWYgc2VsZi5f
YWN0aXZhdGVfbG9ja2VkKHNyX3V1aWQsIHZkaV91dWlkLCBvcHRpb25zKTogICBGaWxlIFwiL3Vz
ci9saWIveGFwaS9zbS9ibGt0YXAyLnB5XCIsIGxpbmUgODMsIGluIHdyYXBwZXIgICAgIHJldCA9
IG9wKHNlbGYsICphcmdzKSAgIEZpbGUgXCIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHlcIiwg
bGluZSAxNTIyLCBpbiBfYWN0aXZhdGVfbG9ja2VkICAgICBkZXZfcGF0aCA9IHNlbGYuX2FjdGl2
YXRlKHNyX3V1aWQsIHZkaV91dWlkLCBvcHRpb25zKSAgIEZpbGUgXCIvdXNyL2xpYi94YXBpL3Nt
L2Jsa3RhcDIucHlcIiwgbGluZSAxNTYwLCBpbiBfYWN0aXZhdGUgc2VsZi5fZ2V0X3Bvb2xfY29u
ZmlnKHNyX3V1aWQpLmdldChcIm1lbS1wb29sLXNpemVcIikpICAgRmlsZSBcIi91c3IvbGliL3hh
cGkvc20vYmxrdGFwMi5weVwiLCBsaW5lIDEyNDMsIGluIF90YXBfYWN0aXZhdGUgdGFwZGlzayA9
IFRhcGRpc2suZmluZF9ieV9wYXRoKHBoeV9wYXRoKSAgIEZpbGUgXCIvdXNyL2xpYi94YXBpL3Nt
L2Jsa3RhcDIucHlcIiwgbGluZSA2OTAsIGluIGZpbmRfYnlfcGF0aCByZXR1cm4gY2xzLmZpbmQo
cGF0aD1wYXRoKSAgIEZpbGUgXCIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHlcIiwgbGluZSA2
NzgsIGluIGZpbmQgICAgIGZvdW5kID0gbGlzdChjbHMubGlzdCgqKmFyZ3MpKSAgIEZpbGUgXCIv
dXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHlcIiwgbGluZSA2NTMsIGluIGxpc3QgICAgIGZvciBy
b3cgaW4gVGFwQ3RsLmxpc3QoKiphcmdzKTogICBGaWxlIFwiL3Vzci9saWIveGFwaS9zbS9ibGt0
YXAyLnB5XCIsIGxpbmUgMTE4LCBpbiBsb29wICAgICByZXR1cm4gZigqX190LCAqKl9fZCkgICBG
aWxlIFwiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5XCIsIGxpbmUgMzQ4LCBpbiBsaXN0ICAg
ICBpZiBlLnN0YXR1cyBpbiB0cmFuc2llbnQ6ICAgRmlsZSBcIi91c3IvbGliL3hhcGkvc20vYmxr
dGFwMi5weVwiLCBsaW5lIDE2MiwgaW4gX19nZXRhdHRyX18gICAgIHJldHVybiBvYmplY3QuX19n
ZXRhdHRyaWJ1dGVfXyhzZWxmLCBrZXkpIEF0dHJpYnV0ZUVycm9yOiBcJ0NvbW1hbmRGYWlsdXJl
XCcgb2JqZWN0IGhhcyBubyBhdHRyaWJ1dGUgXCdzdGF0dXNcJyAgXScgJ0FQSScgJ1ZCRC5wbHVn
JyAoKCdzZWxmJyAnJyAnNTU3MTZlY2YtMWEyNy1iMjY1LTYwMjEtZjIxOTk0YTM0NmRmJyAnT3Bh
cXVlUmVmOjYyOTM0ZWQ4LTYwNmMtOWEyNy1jYTY2LTYyNWI0MjIxM2ZkMScpKSkNCj4gRGVjIDMw
IDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMjUgVU5JWCAvdmFy
L2xpYi94Y3AveGFwaXxWQkQucGx1ZyBSOjZhOWZiYTNhMTE2NnxiYWNrdHJhY2VdIFJhaXNlZCBh
dCBmaWxlIFwicmJhYy5tbFwiLCBsaW5lIDIzNiwgY2hhcmFjdGVycyAxMC0xNVxuQ2FsbGVkIGZy
b20gZmlsZSBcInNlcnZlcl9oZWxwZXJzLm1sXCIsIGxpbmUgNzUsIGNoYXJhY3RlcnMgMTEtNDFc
bg0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMy
NSBVTklYIC92YXIvbGliL3hjcC94YXBpfFZCRC5wbHVnIFI6NmE5ZmJhM2ExMTY2fGRpc3BhdGNo
ZXJdIFNlcnZlcl9oZWxwZXJzLmV4ZWMgZXhjZXB0aW9uX2hhbmRsZXI6IEdvdCBleGNlcHRpb24g
U1JfQkFDS0VORF9GQUlMVVJFOiBbIG5vbi16ZXJvIGV4aXQ7IDsgVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOiMwMTIgIEZpbGUgIi9vcHQveGVuc291cmNlL3NtL05GU1NSIiwgbGlu
ZSAyNzgsIGluIDxtb2R1bGU+IzAxMiAgICBTUkNvbW1hbmQucnVuKE5GU1NSLCBEUklWRVJfSU5G
TykjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMzQ0LCBp
biBydW4jMDEyICAgIHJldCA9IGNtZC5ydW4oc3IpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9z
bS9TUkNvbW1hbmQucHkiLCBsaW5lIDExMCwgaW4gcnVuIzAxMiAgICByZXR1cm4gc2VsZi5fcnVu
X2xvY2tlZChzcikjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxp
bmUgMTU5LCBpbiBfcnVuX2xvY2tlZCMwMTIgICAgcnYgPSBzZWxmLl9ydW4oc3IsIHRhcmdldCkj
MDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMjYzLCBpbiBf
cnVuIzAxMiAgICB3cml0YWJsZSwgY2FjaGluZ19wYXJhbXMpIzAxMiAgRmlsZSAiL3Vzci9saWIv
eGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNDg2LCBpbiBhY3RpdmF0ZSMwMTIgICAgaWYgc2Vs
Zi5fYWN0aXZhdGVfbG9ja2VkKHNyX3V1aWQsIHZkaV91dWlkLCBvcHRpb25zKTojMDEyICBGaWxl
ICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDgzLCBpbiB3cmFwcGVyIzAxMiAg
ICByZXQgPSBvcChzZWxmLCAqYXJncykjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3Rh
cDIucHkiLCBsaW5lIDE1MjIsIGluIF9hY3RpdmF0ZV9sb2NrZWQjMDEyICAgIGRldl9wYXRoID0g
c2VsZi5fYWN0aXZhdGUoc3JfdXVpZCwgdmRpX3V1aWQsIG9wdGlvbnMpIzAxMiAgRmlsZSAiL3Vz
ci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNTYwLCBpbiBfYWN0aXZhdGUjMDEyIHNl
bGYuX2dldF9wb29sX2NvbmZpZyhzcl91dWlkKS5nZXQoIm1lbS1wb29sLXNpemUiKSkjMDEyICBG
aWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDEyNDMsIGluIF90YXBfYWN0
aXZhdGUjMDEyIHRhcGRpc2sgPSBUYXBkaXNrLmZpbmRfYnlfcGF0aChwaHlfcGF0aCkjMDEyICBG
aWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDY5MCwgaW4gZmluZF9ieV9w
YXRoIzAxMiByZXR1cm4gY2xzLmZpbmQocGF0aD1wYXRoKSMwMTIgIEZpbGUgIi91c3IvbGliL3hh
cGkvc20vYmxrdGFwMi5weSIsIGxpbmUgNjc4LCBpbiBmaW5kIzAxMiAgICBmb3VuZCA9IGxpc3Qo
Y2xzLmxpc3QoKiphcmdzKSkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHki
LCBsaW5lIDY1MywgaW4gbGlzdCMwMTIgICAgZm9yIHJvdyBpbiBUYXBDdGwubGlzdCgqKmFyZ3Mp
OiMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTE4LCBpbiBs
b29wIzAxMiAgICByZXR1cm4gZigqX190LCAqKl9fZCkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBp
L3NtL2Jsa3RhcDIucHkiLCBsaW5lIDM0OCwgaW4gbGlzdCMwMTIgICAgaWYgZS5zdGF0dXMgaW4g
dHJhbnNpZW50OiMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUg
MTYyLCBpbiBfX2dldGF0dHJfXyMwMTIgICAgcmV0dXJuIG9iamVjdC5fX2dldGF0dHJpYnV0ZV9f
KHNlbGYsIGtleSkjMDEyQXR0cmlidXRlRXJyb3I6ICdDb21tYW5kRmFpbHVyZScgb2JqZWN0IGhh
cyBubyBhdHRyaWJ1dGUgJ3N0YXR1cycjMDEyIF0NCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVz
dCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMjUgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWQkQu
cGx1ZyBSOjZhOWZiYTNhMTE2NnxkaXNwYXRjaGVyXSBSYWlzZWQgYXQgZmlsZSBcInJiYWMubWxc
IiwgbGluZSAyMzYsIGNoYXJhY3RlcnMgMTAtMTVcbkNhbGxlZCBmcm9tIGZpbGUgXCJzZXJ2ZXJf
aGVscGVycy5tbFwiLCBsaW5lIDc1LCBjaGFyYWN0ZXJzIDExLTQxXG4NCj4gRGVjIDMwIDA2OjUx
OjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMjUgVU5JWCAvdmFyL2xpYi94
Y3AveGFwaXxWQkQucGx1ZyBSOjZhOWZiYTNhMTE2NnxiYWNrdHJhY2VdIFJhaXNlZCBhdCBmaWxl
IFwicmJhYy5tbFwiLCBsaW5lIDIzNiwgY2hhcmFjdGVycyAxMC0xNVxuQ2FsbGVkIGZyb20gZmls
ZSBcInNlcnZlcl9oZWxwZXJzLm1sXCIsIGxpbmUgNzUsIGNoYXJhY3RlcnMgMTEtNDFcbg0KPiBE
ZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMyNSBVTklY
IC92YXIvbGliL3hjcC94YXBpfFZCRC5wbHVnIFI6NmE5ZmJhM2ExMTY2fHhhcGldIFJhaXNlZCBh
dCBmaWxlIFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGluZSA5MCwgY2hhcmFjdGVycyAxNC0xNVxu
Q2FsbGVkIGZyb20gZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFj
dGVycyAyLTlcbg0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhl
bnRlc3R8NDMyNSBVTklYIC92YXIvbGliL3hjcC94YXBpfGRpc3BhdGNoOlZCRC5wbHVnIEQ6YTA2
NWE4YTA2ZWE1fHhhcGldIFJhaXNlZCBhdCBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBs
aW5lIDI2LCBjaGFyYWN0ZXJzIDIyLTI1XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL2RlYnVnLm1s
XCIsIGxpbmUgNTcsIGNoYXJhY3RlcnMgMTctMjBcblJlLXJhaXNlZCBhdCBmaWxlIFwibGliL2Rl
YnVnLm1sXCIsIGxpbmUgNjIsIGNoYXJhY3RlcnMgMTAtMTFcbkNhbGxlZCBmcm9tIGZpbGUgXCJs
aWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMgMi05XG4NCj4gRGVjIDMw
IDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMjUgVU5JWCAvdmFy
L2xpYi94Y3AveGFwaXxkaXNwYXRjaDpWQkQucGx1ZyBEOmEwNjVhOGEwNmVhNXxiYWNrdHJhY2Vd
IFJhaXNlZCBhdCBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFyYWN0
ZXJzIDIyLTI1XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL2RlYnVnLm1sXCIsIGxpbmUgNTcsIGNo
YXJhY3RlcnMgMTctMjBcblJlLXJhaXNlZCBhdCBmaWxlIFwibGliL2RlYnVnLm1sXCIsIGxpbmUg
NjIsIGNoYXJhY3RlcnMgMTAtMTFcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0
Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMgMi05XG5SZS1yYWlzZWQgYXQgZmlsZSBcImxpYi9w
ZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyNiwgY2hhcmFjdGVycyAyMi0yNVxuQ2FsbGVkIGZyb20g
ZmlsZSBcInNlcnZlcl9oZWxwZXJzLm1sXCIsIGxpbmUgMTM2LCBjaGFyYWN0ZXJzIDEwLTEwNlxu
Q2FsbGVkIGZyb20gZmlsZSBcInNlcnZlci5tbFwiLCBsaW5lIDI1MDQ3LCBjaGFyYWN0ZXJzIDIz
LTE2MVxuQ2FsbGVkIGZyb20gZmlsZSBcInNlcnZlcl9oZWxwZXJzLm1sXCIsIGxpbmUgMTE1LCBj
aGFyYWN0ZXJzIDQtN1xuDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVn
fGc2eGVudGVzdHw0MzAzIElORVQgOjo6ODB8Vk0gaW1wb3J0IFI6ZGJkYjBlZTVhZTE2fHhhcGld
IFJhaXNlZCBhdCBmaWxlIFwiY2xpZW50Lm1sXCIsIGxpbmUgNiwgY2hhcmFjdGVycyAzNy03NVxu
Q2FsbGVkIGZyb20gZmlsZSBcImNsaWVudC5tbFwiLCBsaW5lIDE4LCBjaGFyYWN0ZXJzIDU1LTEx
MFxuQ2FsbGVkIGZyb20gZmlsZSBcImNsaWVudC5tbFwiLCBsaW5lIDEwNTMwLCBjaGFyYWN0ZXJz
IDYtNTNcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaXN0Lm1sXCIsIGxpbmUgNzMsIGNoYXJhY3RlcnMg
MTItMTVcbkNhbGxlZCBmcm9tIGZpbGUgXCJhdHRhY2hfaGVscGVycy5tbFwiLCBsaW5lIDc5LCBj
aGFyYWN0ZXJzIDctNzg3XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwi
LCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3Qg
eGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzAzIElORVQgOjo6ODB8Vk0gaW1wb3J0IFI6ZGJkYjBl
ZTVhZTE2fG1zY2dlbl0geGFwaT0+eGFwaSBbbGFiZWw9InNlc3Npb24uc2xhdmVfbG9naW4iXTsN
Cj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzNzYg
VU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0YXNrIGRpc3BhdGNoOnNl
c3Npb24uc2xhdmVfbG9naW4gRDplMjlhMTA5MzQzN2IgY3JlYXRlZCBieSB0YXNrIFI6ZGJkYjBl
ZTVhZTE2DQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogWyBpbmZvfGc2eGVudGVz
dHw0Mzc2IFVOSVggL3Zhci9saWIveGNwL3hhcGl8c2Vzc2lvbi5zbGF2ZV9sb2dpbiBEOjUzZjVh
NTA5MTUzY3x4YXBpXSBTZXNzaW9uLmNyZWF0ZSB0cmFja2lkPTQzYmVlNDk1NGRhZjUwYmI4YzE2
M2JjZDY4NzAyZmQ0IHBvb2w9dHJ1ZSB1bmFtZT0gb3JpZ2luYXRvcj0gaXNfbG9jYWxfc3VwZXJ1
c2VyPXRydWUgYXV0aF91c2VyX3NpZD0gcGFyZW50PXRyYWNraWQ9OTgzNGY1YWY0MWM5NjRlMjI1
ZjI0Mjc5YWVmZTRlNDkNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8
ZzZ4ZW50ZXN0fDQzNzYgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxzZXNzaW9uLnNsYXZlX2xvZ2lu
IEQ6NTNmNWE1MDkxNTNjfG1zY2dlbl0geGFwaT0+eGFwaSBbbGFiZWw9InNlc3Npb24uZ2V0X3V1
aWQiXTsNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0
fDQzNzcgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0YXNrIGRpc3Bh
dGNoOnNlc3Npb24uZ2V0X3V1aWQgRDowMGM1YmVmM2Y5NTQgY3JlYXRlZCBieSB0YXNrIEQ6NTNm
NWE1MDkxNTNjDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVu
dGVzdHw0MzAzIElORVQgOjo6ODB8Vk0gaW1wb3J0IFI6ZGJkYjBlZTVhZTE2fG1zY2dlbl0geGFw
aT0+eGFwaSBbbGFiZWw9IlZCRC51bnBsdWciXTsNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVz
dCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzNzggVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVt
bXl0YXNraGVscGVyXSB0YXNrIGRpc3BhdGNoOlZCRC51bnBsdWcgRDoyOGMxZDE1MjhlZDEgY3Jl
YXRlZCBieSB0YXNrIFI6ZGJkYjBlZTVhZTE2DQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3Qg
eGFwaTogWyBpbmZvfGc2eGVudGVzdHw0Mzc4IFVOSVggL3Zhci9saWIveGNwL3hhcGl8ZGlzcGF0
Y2g6VkJELnVucGx1ZyBEOjI4YzFkMTUyOGVkMXx0YXNraGVscGVyXSB0YXNrIFZCRC51bnBsdWcg
Ujo0ZGMzNTc3OGM5NWQgKHV1aWQ6M2UxZTdlOTctYWQzZC1mNmVhLTc0YjAtYjY1OGY2YTIzNGMy
KSBjcmVhdGVkICh0cmFja2lkPTQzYmVlNDk1NGRhZjUwYmI4YzE2M2JjZDY4NzAyZmQ0KSBieSB0
YXNrIFI6ZGJkYjBlZTVhZTE2DQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2Rl
YnVnfGc2eGVudGVzdHw0Mzc4IFVOSVggL3Zhci9saWIveGNwL3hhcGl8VkJELnVucGx1ZyBSOjRk
YzM1Nzc4Yzk1ZHxhdWRpdF0gVkJELnVucGx1ZzogVkJEID0gJzU1NzE2ZWNmLTFhMjctYjI2NS02
MDIxLWYyMTk5NGEzNDZkZicNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVi
dWd8ZzZ4ZW50ZXN0fDQzNzggVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWQkQudW5wbHVnIFI6NGRj
MzU3NzhjOTVkfGJhY2t0cmFjZV0gUmFpc2VkIGF0IGZpbGUgXCJ4YXBpX3ZiZF9oZWxwZXJzLm1s
XCIsIGxpbmUgMjAxLCBjaGFyYWN0ZXJzIDMzLTcyXG5DYWxsZWQgZnJvbSBmaWxlIFwibWVzc2Fn
ZV9mb3J3YXJkaW5nLm1sXCIsIGxpbmUgMzQzMCwgY2hhcmFjdGVycyA1LTY1XG5DYWxsZWQgZnJv
bSBmaWxlIFwibWVzc2FnZV9mb3J3YXJkaW5nLm1sXCIsIGxpbmUgMjgzLCBjaGFyYWN0ZXJzIDUt
OFxuDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0
Mzc4IFVOSVggL3Zhci9saWIveGNwL3hhcGl8VkJELnVucGx1ZyBSOjRkYzM1Nzc4Yzk1ZHx4YXBp
XSBDYXVnaHQgZXhjZXB0aW9uIHdoaWxlIERFVklDRV9BTFJFQURZX0RFVEFDSEVEOiBbIE9wYXF1
ZVJlZjo2MjkzNGVkOC02MDZjLTlhMjctY2E2Ni02MjViNDIyMTNmZDEgXSBpbiBtZXNzYWdlIGZv
cndhcmRlcjogbWFya2luZyBWQkQgZm9yIFZCRC51bnBsdWcNCj4gRGVjIDMwIDA2OjUxOjM4IGc2
eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzNzggVU5JWCAvdmFyL2xpYi94Y3AveGFw
aXxWQkQudW5wbHVnIFI6NGRjMzU3NzhjOTVkfGJhY2t0cmFjZV0gUmFpc2VkIGF0IGZpbGUgXCJ4
YXBpX3ZiZF9oZWxwZXJzLm1sXCIsIGxpbmUgMjAxLCBjaGFyYWN0ZXJzIDMzLTcyXG5DYWxsZWQg
ZnJvbSBmaWxlIFwibWVzc2FnZV9mb3J3YXJkaW5nLm1sXCIsIGxpbmUgMzQzMCwgY2hhcmFjdGVy
cyA1LTY1XG5DYWxsZWQgZnJvbSBmaWxlIFwibWVzc2FnZV9mb3J3YXJkaW5nLm1sXCIsIGxpbmUg
MjgzLCBjaGFyYWN0ZXJzIDUtOFxuUmUtcmFpc2VkIGF0IGZpbGUgXCJtZXNzYWdlX2ZvcndhcmRp
bmcubWxcIiwgbGluZSAyODYsIGNoYXJhY3RlcnMgOC05XG5DYWxsZWQgZnJvbSBmaWxlIFwibGli
L3RocmVhZGV4dC5tbFwiLCBsaW5lIDIwLCBjaGFyYWN0ZXJzIDIwLTI0XG5SZS1yYWlzZWQgYXQg
ZmlsZSBcImxpYi90aHJlYWRleHQubWxcIiwgbGluZSAyMCwgY2hhcmFjdGVycyA2Mi02NVxuQ2Fs
bGVkIGZyb20gZmlsZSBcIm1lc3NhZ2VfZm9yd2FyZGluZy5tbFwiLCBsaW5lIDE0OSwgY2hhcmFj
dGVycyAxOS0yNVxuQ2FsbGVkIGZyb20gZmlsZSBcIm1lc3NhZ2VfZm9yd2FyZGluZy5tbFwiLCBs
aW5lIDM0MzUsIGNoYXJhY3RlcnMgMy04N1xuQ2FsbGVkIGZyb20gZmlsZSBcIm1lc3NhZ2VfZm9y
d2FyZGluZy5tbFwiLCBsaW5lIDM1MTEsIGNoYXJhY3RlcnMgMy0yMDBcbkNhbGxlZCBmcm9tIGZp
bGUgXCJyYmFjLm1sXCIsIGxpbmUgMjI3LCBjaGFyYWN0ZXJzIDE2LTIzXG4NCj4gRGVjIDMwIDA2
OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbMjAxNDEyMzBUMDU6NTE6MzguNTM5WnxhdWRpdHxnNnhl
bnRlc3R8NDM3OCBVTklYIC92YXIvbGliL3hjcC94YXBpfFZCRC51bnBsdWcgUjo0ZGMzNTc3OGM5
NWR8YXVkaXRdICgndHJhY2tpZD00M2JlZTQ5NTRkYWY1MGJiOGMxNjNiY2Q2ODcwMmZkNCcgJ0xP
Q0FMX1NVUEVSVVNFUicgJ09wYXF1ZVJlZjpiYzAwMWQ1Ny02NWNlLThiMmItNzRiNC1jZDcxOTc2
MjcyYzAnICdBTExPV0VEJyAnRVJST1I6REVWSUNFX0FMUkVBRFlfREVUQUNIRUQ6IFsgT3BhcXVl
UmVmOjYyOTM0ZWQ4LTYwNmMtOWEyNy1jYTY2LTYyNWI0MjIxM2ZkMSBdJyAnQVBJJyAnVkJELnVu
cGx1ZycgKCgnc2VsZicgJycgJzU1NzE2ZWNmLTFhMjctYjI2NS02MDIxLWYyMTk5NGEzNDZkZicg
J09wYXF1ZVJlZjo2MjkzNGVkOC02MDZjLTlhMjctY2E2Ni02MjViNDIyMTNmZDEnKSkpDQo+IERl
YyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0Mzc4IFVOSVgg
L3Zhci9saWIveGNwL3hhcGl8VkJELnVucGx1ZyBSOjRkYzM1Nzc4Yzk1ZHxiYWNrdHJhY2VdIFJh
aXNlZCBhdCBmaWxlIFwicmJhYy5tbFwiLCBsaW5lIDIzNiwgY2hhcmFjdGVycyAxMC0xNVxuQ2Fs
bGVkIGZyb20gZmlsZSBcInNlcnZlcl9oZWxwZXJzLm1sXCIsIGxpbmUgNzUsIGNoYXJhY3RlcnMg
MTEtNDFcbg0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRl
c3R8NDM3OCBVTklYIC92YXIvbGliL3hjcC94YXBpfFZCRC51bnBsdWcgUjo0ZGMzNTc3OGM5NWR8
ZGlzcGF0Y2hlcl0gU2VydmVyX2hlbHBlcnMuZXhlYyBleGNlcHRpb25faGFuZGxlcjogR290IGV4
Y2VwdGlvbiBERVZJQ0VfQUxSRUFEWV9ERVRBQ0hFRDogWyBPcGFxdWVSZWY6NjI5MzRlZDgtNjA2
Yy05YTI3LWNhNjYtNjI1YjQyMjEzZmQxIF0NCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4
YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzNzggVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWQkQudW5w
bHVnIFI6NGRjMzU3NzhjOTVkfGRpc3BhdGNoZXJdIFJhaXNlZCBhdCBmaWxlIFwicmJhYy5tbFwi
LCBsaW5lIDIzNiwgY2hhcmFjdGVycyAxMC0xNVxuQ2FsbGVkIGZyb20gZmlsZSBcInNlcnZlcl9o
ZWxwZXJzLm1sXCIsIGxpbmUgNzUsIGNoYXJhY3RlcnMgMTEtNDFcbg0KPiBEZWMgMzAgMDY6NTE6
MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM3OCBVTklYIC92YXIvbGliL3hj
cC94YXBpfFZCRC51bnBsdWcgUjo0ZGMzNTc3OGM5NWR8YmFja3RyYWNlXSBSYWlzZWQgYXQgZmls
ZSBcInJiYWMubWxcIiwgbGluZSAyMzYsIGNoYXJhY3RlcnMgMTAtMTVcbkNhbGxlZCBmcm9tIGZp
bGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDc1LCBjaGFyYWN0ZXJzIDExLTQxXG4NCj4g
RGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzNzggVU5J
WCAvdmFyL2xpYi94Y3AveGFwaXxWQkQudW5wbHVnIFI6NGRjMzU3NzhjOTVkfHhhcGldIFJhaXNl
ZCBhdCBmaWxlIFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGluZSA5MCwgY2hhcmFjdGVycyAxNC0x
NVxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hh
cmFjdGVycyAyLTlcbg0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xn
NnhlbnRlc3R8NDM3OCBVTklYIC92YXIvbGliL3hjcC94YXBpfGRpc3BhdGNoOlZCRC51bnBsdWcg
RDoyOGMxZDE1MjhlZDF8eGFwaV0gUmFpc2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1s
XCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvZGVi
dWcubWxcIiwgbGluZSA1NywgY2hhcmFjdGVycyAxNy0yMFxuUmUtcmFpc2VkIGF0IGZpbGUgXCJs
aWIvZGVidWcubWxcIiwgbGluZSA2MiwgY2hhcmFjdGVycyAxMC0xMVxuQ2FsbGVkIGZyb20gZmls
ZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFjdGVycyAyLTlcbg0KPiBE
ZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM3OCBVTklY
IC92YXIvbGliL3hjcC94YXBpfGRpc3BhdGNoOlZCRC51bnBsdWcgRDoyOGMxZDE1MjhlZDF8YmFj
a3RyYWNlXSBSYWlzZWQgYXQgZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyNiwg
Y2hhcmFjdGVycyAyMi0yNVxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9kZWJ1Zy5tbFwiLCBsaW5l
IDU3LCBjaGFyYWN0ZXJzIDE3LTIwXG5SZS1yYWlzZWQgYXQgZmlsZSBcImxpYi9kZWJ1Zy5tbFwi
LCBsaW5lIDYyLCBjaGFyYWN0ZXJzIDEwLTExXG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZh
c2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuUmUtcmFpc2VkIGF0IGZpbGUg
XCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxl
ZCBmcm9tIGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDEzNiwgY2hhcmFjdGVycyAx
MC0xMDZcbkNhbGxlZCBmcm9tIGZpbGUgXCJzZXJ2ZXIubWxcIiwgbGluZSAyNTA2OCwgY2hhcmFj
dGVycyAyMy0xNjFcbkNhbGxlZCBmcm9tIGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5l
IDExNSwgY2hhcmFjdGVycyA0LTdcbg0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6
IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMyBJTkVUIDo6OjgwfFZNIGltcG9ydCBSOmRiZGIwZWU1YWUx
Nnx4YXBpXSBzYWZlX3VucGx1ZyBjYXVnaHQgREVWSUNFX0FMUkVBRFlfREVUQUNIRUQ6IHRoaXMg
aXMgc2FmZSB0byBpZ25vcmUNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVi
dWd8ZzZ4ZW50ZXN0fDQzMDMgSU5FVCA6Ojo4MHxWTSBpbXBvcnQgUjpkYmRiMGVlNWFlMTZ8bXNj
Z2VuXSB4YXBpPT54YXBpIFtsYWJlbD0iVkJELmRlc3Ryb3kiXTsNCj4gRGVjIDMwIDA2OjUxOjM4
IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzNzkgVU5JWCAvdmFyL2xpYi94Y3Av
eGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0YXNrIGRpc3BhdGNoOlZCRC5kZXN0cm95IEQ6ZDJhMmZm
ZTFlZTRmIGNyZWF0ZWQgYnkgdGFzayBSOmRiZGIwZWU1YWUxNg0KPiBEZWMgMzAgMDY6NTE6Mzgg
ZzZ4ZW50ZXN0IHhhcGk6IFsgaW5mb3xnNnhlbnRlc3R8NDM3OSBVTklYIC92YXIvbGliL3hjcC94
YXBpfGRpc3BhdGNoOlZCRC5kZXN0cm95IEQ6ZDJhMmZmZTFlZTRmfHRhc2toZWxwZXJdIHRhc2sg
VkJELmRlc3Ryb3kgUjo3NmM4ZjhhZjhlYzMgKHV1aWQ6Mjg5MWMzOGYtOGM5NS00YTg0LTAxYmUt
ZjNmYjkyMWI3ZWI4KSBjcmVhdGVkICh0cmFja2lkPTQzYmVlNDk1NGRhZjUwYmI4YzE2M2JjZDY4
NzAyZmQ0KSBieSB0YXNrIFI6ZGJkYjBlZTVhZTE2DQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRl
c3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0Mzc5IFVOSVggL3Zhci9saWIveGNwL3hhcGl8VkJE
LmRlc3Ryb3kgUjo3NmM4ZjhhZjhlYzN8YXVkaXRdIFZCRC5kZXN0cm95OiBWQkQgPSAnNTU3MTZl
Y2YtMWEyNy1iMjY1LTYwMjEtZjIxOTk0YTM0NmRmJw0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50
ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM3OSBVTklYIC92YXIvbGliL3hjcC94YXBpfFZC
RC5kZXN0cm95IFI6NzZjOGY4YWY4ZWMzfHhhcGldIFZCRC5kZXN0cm95ICh1dWlkID0gNTU3MTZl
Y2YtMWEyNy1iMjY1LTYwMjEtZjIxOTk0YTM0NmRmOyByZWYgPSBPcGFxdWVSZWY6NjI5MzRlZDgt
NjA2Yy05YTI3LWNhNjYtNjI1YjQyMjEzZmQxKQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0
IHhhcGk6IFsyMDE0MTIzMFQwNTo1MTozOC41ODNafGF1ZGl0fGc2eGVudGVzdHw0Mzc5IFVOSVgg
L3Zhci9saWIveGNwL3hhcGl8VkJELmRlc3Ryb3kgUjo3NmM4ZjhhZjhlYzN8YXVkaXRdICgndHJh
Y2tpZD00M2JlZTQ5NTRkYWY1MGJiOGMxNjNiY2Q2ODcwMmZkNCcgJ0xPQ0FMX1NVUEVSVVNFUicg
J09wYXF1ZVJlZjpiYzAwMWQ1Ny02NWNlLThiMmItNzRiNC1jZDcxOTc2MjcyYzAnICdBTExPV0VE
JyAnT0snICdBUEknICdWQkQuZGVzdHJveScgKCgnc2VsZicgJycgJzU1NzE2ZWNmLTFhMjctYjI2
NS02MDIxLWYyMTk5NGEzNDZkZicgJ09wYXF1ZVJlZjo2MjkzNGVkOC02MDZjLTlhMjctY2E2Ni02
MjViNDIyMTNmZDEnKSAoJ1ZESScgJ1hPQSBTeXN0ZW0nICdjYWUzMGU5Yi1lYmQ0LTQ0NTAtOGNl
MC05ZjQwMzVjYTYyZjEnICdPcGFxdWVSZWY6MGIxMzJjYTYtYjhlNy1jMTFmLTZmZmYtZGVjMDg0
MzJjYWZlJykpKQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhl
bnRlc3R8NDMwMyBJTkVUIDo6OjgwfFZNIGltcG9ydCBSOmRiZGIwZWU1YWUxNnxtc2NnZW5dIHhh
cGk9PnhhcGkgW2xhYmVsPSJzZXNzaW9uLmxvZ291dCJdOw0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4
ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM4MCBVTklYIC92YXIvbGliL3hjcC94YXBp
fHxkdW1teXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6c2Vzc2lvbi5sb2dvdXQgRDozM2QxMjFh
ZTcwM2MgY3JlYXRlZCBieSB0YXNrIFI6ZGJkYjBlZTVhZTE2DQo+IERlYyAzMCAwNjo1MTozOCBn
NnhlbnRlc3QgeGFwaTogWyBpbmZvfGc2eGVudGVzdHw0MzgwIFVOSVggL3Zhci9saWIveGNwL3hh
cGl8c2Vzc2lvbi5sb2dvdXQgRDpiNjhhNWZiOWY1ODV8eGFwaV0gU2Vzc2lvbi5kZXN0cm95IHRy
YWNraWQ9NDNiZWU0OTU0ZGFmNTBiYjhjMTYzYmNkNjg3MDJmZDQNCj4gRGVjIDMwIDA2OjUxOjM4
IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMDMgSU5FVCA6Ojo4MHxWTSBpbXBv
cnQgUjpkYmRiMGVlNWFlMTZ8YmFja3RyYWNlXSBSYWlzZWQgYXQgZmlsZSBcImxpYi9wZXJ2YXNp
dmVleHQubWxcIiwgbGluZSAyNiwgY2hhcmFjdGVycyAyMi0yNVxuQ2FsbGVkIGZyb20gZmlsZSBc
Imxpc3QubWxcIiwgbGluZSA3MywgY2hhcmFjdGVycyAxMi0xNVxuQ2FsbGVkIGZyb20gZmlsZSBc
InN0cmVhbV92ZGkubWxcIiwgbGluZSA1OCwgY2hhcmFjdGVycyAyLTMyXG5DYWxsZWQgZnJvbSBm
aWxlIFwiaW1wb3J0Lm1sXCIsIGxpbmUgMTQ5MywgY2hhcmFjdGVycyAzNi0xMjRcbg0KPiBEZWMg
MzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtlcnJvcnxnNnhlbnRlc3R8NDMwMyBJTkVUIDo6
OjgwfFZNIGltcG9ydCBSOmRiZGIwZWU1YWUxNnxpbXBvcnRdIENhdWdodCBleGNlcHRpb24gZHVy
aW5nIGltcG9ydDogU1JfQkFDS0VORF9GQUlMVVJFOiBbIG5vbi16ZXJvIGV4aXQ7IDsgVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOiMwMTIgIEZpbGUgIi9vcHQveGVuc291cmNlL3Nt
L05GU1NSIiwgbGluZSAyNzgsIGluIDxtb2R1bGU+IzAxMiAgICBTUkNvbW1hbmQucnVuKE5GU1NS
LCBEUklWRVJfSU5GTykjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIs
IGxpbmUgMzQ0LCBpbiBydW4jMDEyICAgIHJldCA9IGNtZC5ydW4oc3IpIzAxMiAgRmlsZSAiL3Vz
ci9saWIveGFwaS9zbS9TUkNvbW1hbmQucHkiLCBsaW5lIDExMCwgaW4gcnVuIzAxMiAgICByZXR1
cm4gc2VsZi5fcnVuX2xvY2tlZChzcikjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL1NSQ29t
bWFuZC5weSIsIGxpbmUgMTU5LCBpbiBfcnVuX2xvY2tlZCMwMTIgICAgcnYgPSBzZWxmLl9ydW4o
c3IsIHRhcmdldCkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxp
bmUgMjYzLCBpbiBfcnVuIzAxMiAgICB3cml0YWJsZSwgY2FjaGluZ19wYXJhbXMpIzAxMiAgRmls
ZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNDg2LCBpbiBhY3RpdmF0ZSMw
MTIgICAgaWYgc2VsZi5fYWN0aXZhdGVfbG9ja2VkKHNyX3V1aWQsIHZkaV91dWlkLCBvcHRpb25z
KTojMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDgzLCBpbiB3
cmFwcGVyIzAxMiAgICByZXQgPSBvcChzZWxmLCAqYXJncykjMDEyICBGaWxlICIvdXNyL2xpYi94
YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDE1MjIsIGluIF9hY3RpdmF0ZV9sb2NrZWQjMDEyICAg
IGRldl9wYXRoID0gc2VsZi5fYWN0aXZhdGUoc3JfdXVpZCwgdmRpX3V1aWQsIG9wdGlvbnMpIzAx
MiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNTYwLCBpbiBfYWN0
aXZhdGUjMDEyIHNlbGYuX2dldF9wb29sX2NvbmZpZyhzcl91dWlkKS5nZXQoIm1lbS1wb29sLXNp
emUiKSkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDEyNDMs
IGluIF90YXBfYWN0aXZhdGUjMDEyIHRhcGRpc2sgPSBUYXBkaXNrLmZpbmRfYnlfcGF0aChwaHlf
cGF0aCkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDY5MCwg
aW4gZmluZF9ieV9wYXRoIzAxMiByZXR1cm4gY2xzLmZpbmQocGF0aD1wYXRoKSMwMTIgIEZpbGUg
Ii91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgNjc4LCBpbiBmaW5kIzAxMiAgICBm
b3VuZCA9IGxpc3QoY2xzLmxpc3QoKiphcmdzKSkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3Nt
L2Jsa3RhcDIucHkiLCBsaW5lIDY1MywgaW4gbGlzdCMwMTIgICAgZm9yIHJvdyBpbiBUYXBDdGwu
bGlzdCgqKmFyZ3MpOiMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxp
bmUgMTE4LCBpbiBsb29wIzAxMiAgICByZXR1cm4gZigqX190LCAqKl9fZCkjMDEyICBGaWxlICIv
dXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDM0OCwgaW4gbGlzdCMwMTIgICAgaWYg
ZS5zdGF0dXMgaW4gdHJhbnNpZW50OiMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFw
Mi5weSIsIGxpbmUgMTYyLCBpbiBfX2dldGF0dHJfXyMwMTIgICAgcmV0dXJuIG9iamVjdC5fX2dl
dGF0dHJpYnV0ZV9fKHNlbGYsIGtleSkjMDEyQXR0cmlidXRlRXJyb3I6ICdDb21tYW5kRmFpbHVy
ZScgb2JqZWN0IGhhcyBubyBhdHRyaWJ1dGUgJ3N0YXR1cycjMDEyIF0NCj4gRGVjIDMwIDA2OjUx
OjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMDMgSU5FVCA6Ojo4MHxWTSBp
bXBvcnQgUjpkYmRiMGVlNWFlMTZ8YmFja3RyYWNlXSBSYWlzZWQgYXQgZmlsZSBcImxpYi9wZXJ2
YXNpdmVleHQubWxcIiwgbGluZSAyNiwgY2hhcmFjdGVycyAyMi0yNVxuQ2FsbGVkIGZyb20gZmls
ZSBcImxpc3QubWxcIiwgbGluZSA3MywgY2hhcmFjdGVycyAxMi0xNVxuQ2FsbGVkIGZyb20gZmls
ZSBcInN0cmVhbV92ZGkubWxcIiwgbGluZSA1OCwgY2hhcmFjdGVycyAyLTMyXG5DYWxsZWQgZnJv
bSBmaWxlIFwiaW1wb3J0Lm1sXCIsIGxpbmUgMTQ5MywgY2hhcmFjdGVycyAzNi0xMjRcbg0KPiBE
ZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMyBJTkVU
IDo6OjgwfFZNIGltcG9ydCBSOmRiZGIwZWU1YWUxNnxpbXBvcnRdIENsZWFuaW5nIHVwIGFmdGVy
IGltcG9ydCBmYWlsdXJlOiBTUl9CQUNLRU5EX0ZBSUxVUkU6IFsgbm9uLXplcm8gZXhpdDsgOyBU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6IzAxMiAgRmlsZSAiL29wdC94ZW5zb3Vy
Y2Uvc20vTkZTU1IiLCBsaW5lIDI3OCwgaW4gPG1vZHVsZT4jMDEyICAgIFNSQ29tbWFuZC5ydW4o
TkZTU1IsIERSSVZFUl9JTkZPKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vU1JDb21tYW5k
LnB5IiwgbGluZSAzNDQsIGluIHJ1biMwMTIgICAgcmV0ID0gY21kLnJ1bihzcikjMDEyICBGaWxl
ICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMTEwLCBpbiBydW4jMDEyICAg
IHJldHVybiBzZWxmLl9ydW5fbG9ja2VkKHNyKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20v
U1JDb21tYW5kLnB5IiwgbGluZSAxNTksIGluIF9ydW5fbG9ja2VkIzAxMiAgICBydiA9IHNlbGYu
X3J1bihzciwgdGFyZ2V0KSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vU1JDb21tYW5kLnB5
IiwgbGluZSAyNjMsIGluIF9ydW4jMDEyICAgIHdyaXRhYmxlLCBjYWNoaW5nX3BhcmFtcykjMDEy
ICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDE0ODYsIGluIGFjdGl2
YXRlIzAxMiAgICBpZiBzZWxmLl9hY3RpdmF0ZV9sb2NrZWQoc3JfdXVpZCwgdmRpX3V1aWQsIG9w
dGlvbnMpOiMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgODMs
IGluIHdyYXBwZXIjMDEyICAgIHJldCA9IG9wKHNlbGYsICphcmdzKSMwMTIgIEZpbGUgIi91c3Iv
bGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTUyMiwgaW4gX2FjdGl2YXRlX2xvY2tlZCMw
MTIgICAgZGV2X3BhdGggPSBzZWxmLl9hY3RpdmF0ZShzcl91dWlkLCB2ZGlfdXVpZCwgb3B0aW9u
cykjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDE1NjAsIGlu
IF9hY3RpdmF0ZSMwMTIgc2VsZi5fZ2V0X3Bvb2xfY29uZmlnKHNyX3V1aWQpLmdldCgibWVtLXBv
b2wtc2l6ZSIpKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUg
MTI0MywgaW4gX3RhcF9hY3RpdmF0ZSMwMTIgdGFwZGlzayA9IFRhcGRpc2suZmluZF9ieV9wYXRo
KHBoeV9wYXRoKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUg
NjkwLCBpbiBmaW5kX2J5X3BhdGgjMDEyIHJldHVybiBjbHMuZmluZChwYXRoPXBhdGgpIzAxMiAg
RmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA2NzgsIGluIGZpbmQjMDEy
ICAgIGZvdW5kID0gbGlzdChjbHMubGlzdCgqKmFyZ3MpKSMwMTIgIEZpbGUgIi91c3IvbGliL3hh
cGkvc20vYmxrdGFwMi5weSIsIGxpbmUgNjUzLCBpbiBsaXN0IzAxMiAgICBmb3Igcm93IGluIFRh
cEN0bC5saXN0KCoqYXJncyk6IzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5
IiwgbGluZSAxMTgsIGluIGxvb3AjMDEyICAgIHJldHVybiBmKCpfX3QsICoqX19kKSMwMTIgIEZp
bGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMzQ4LCBpbiBsaXN0IzAxMiAg
ICBpZiBlLnN0YXR1cyBpbiB0cmFuc2llbnQ6IzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9i
bGt0YXAyLnB5IiwgbGluZSAxNjIsIGluIF9fZ2V0YXR0cl9fIzAxMiAgICByZXR1cm4gb2JqZWN0
Ll9fZ2V0YXR0cmlidXRlX18oc2VsZiwga2V5KSMwMTJBdHRyaWJ1dGVFcnJvcjogJ0NvbW1hbmRG
YWlsdXJlJyBvYmplY3QgaGFzIG5vIGF0dHJpYnV0ZSAnc3RhdHVzJyMwMTIgXQ0KPiBEZWMgMzAg
MDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMyBJTkVUIDo6Ojgw
fFZNLmltcG9ydCAoY2xlYW51cCkgUjowOWRkOWM3Njg0NTB8bXNjZ2VuXSB4YXBpPT54YXBpIFts
YWJlbD0ic2Vzc2lvbi5zbGF2ZV9sb2dpbiJdOw0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0
IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM4MSBVTklYIC92YXIvbGliL3hjcC94YXBpfHxkdW1t
eXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6c2Vzc2lvbi5zbGF2ZV9sb2dpbiBEOjJkNmZlMDQ1
ZTY3ZCBjcmVhdGVkIGJ5IHRhc2sgUjowOWRkOWM3Njg0NTANCj4gRGVjIDMwIDA2OjUxOjM4IGc2
eGVudGVzdCB4YXBpOiBbIGluZm98ZzZ4ZW50ZXN0fDQzODEgVU5JWCAvdmFyL2xpYi94Y3AveGFw
aXxzZXNzaW9uLnNsYXZlX2xvZ2luIEQ6MDk1Njg5ZDM3MDJjfHhhcGldIFNlc3Npb24uY3JlYXRl
IHRyYWNraWQ9ZWYzY2Q0NzQ1ZjFiNDNiNzdhOTlhY2ZlM2FmYmFlOGYgcG9vbD10cnVlIHVuYW1l
PSBvcmlnaW5hdG9yPSBpc19sb2NhbF9zdXBlcnVzZXI9dHJ1ZSBhdXRoX3VzZXJfc2lkPSBwYXJl
bnQ9dHJhY2tpZD05ODM0ZjVhZjQxYzk2NGUyMjVmMjQyNzlhZWZlNGU0OQ0KPiBEZWMgMzAgMDY6
NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM4MSBVTklYIC92YXIvbGli
L3hjcC94YXBpfHNlc3Npb24uc2xhdmVfbG9naW4gRDowOTU2ODlkMzcwMmN8bXNjZ2VuXSB4YXBp
PT54YXBpIFtsYWJlbD0ic2Vzc2lvbi5nZXRfdXVpZCJdOw0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4
ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM4MiBVTklYIC92YXIvbGliL3hjcC94YXBp
fHxkdW1teXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6c2Vzc2lvbi5nZXRfdXVpZCBEOjY2NDg1
YzA4Y2E0YSBjcmVhdGVkIGJ5IHRhc2sgRDowOTU2ODlkMzcwMmMNCj4gRGVjIDMwIDA2OjUxOjM4
IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMDMgSU5FVCA6Ojo4MHxWTS5pbXBv
cnQgKGNsZWFudXApIFI6MDlkZDljNzY4NDUwfG1zY2dlbl0geGFwaT0+eGFwaSBbbGFiZWw9IlZJ
Ri5kZXN0cm95Il07DQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2
eGVudGVzdHw0MzgzIFVOSVggL3Zhci9saWIveGNwL3hhcGl8fGR1bW15dGFza2hlbHBlcl0gdGFz
ayBkaXNwYXRjaDpWSUYuZGVzdHJveSBEOjRiNzExOTU4MDg5NSBjcmVhdGVkIGJ5IHRhc2sgUjow
OWRkOWM3Njg0NTANCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbIGluZm98ZzZ4
ZW50ZXN0fDQzODMgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxkaXNwYXRjaDpWSUYuZGVzdHJveSBE
OjRiNzExOTU4MDg5NXx0YXNraGVscGVyXSB0YXNrIFZJRi5kZXN0cm95IFI6ZDRiZjJjNmMwMDQ5
ICh1dWlkOjIxM2NkYjU5LThiYTctMzAyOS0zNWUxLWE1YWVjNWI3MTVhMCkgY3JlYXRlZCAodHJh
Y2tpZD1lZjNjZDQ3NDVmMWI0M2I3N2E5OWFjZmUzYWZiYWU4ZikgYnkgdGFzayBSOjA5ZGQ5Yzc2
ODQ1MA0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8
NDM4MyBVTklYIC92YXIvbGliL3hjcC94YXBpfFZJRi5kZXN0cm95IFI6ZDRiZjJjNmMwMDQ5fGF1
ZGl0XSBWSUYuZGVzdHJveTogVklGID0gJ2M0MGQxOWM4LTE5NjQtZWIwNC1lNTcyLTM0NGI3NGJi
NzcwMScNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0
fDQzODMgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWSUYuZGVzdHJveSBSOmQ0YmYyYzZjMDA0OXx4
YXBpXSBWSUYuZGVzdHJveQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFsyMDE0
MTIzMFQwNTo1MTozOC42MjhafGF1ZGl0fGc2eGVudGVzdHw0MzgzIFVOSVggL3Zhci9saWIveGNw
L3hhcGl8VklGLmRlc3Ryb3kgUjpkNGJmMmM2YzAwNDl8YXVkaXRdICgndHJhY2tpZD1lZjNjZDQ3
NDVmMWI0M2I3N2E5OWFjZmUzYWZiYWU4ZicgJ0xPQ0FMX1NVUEVSVVNFUicgJ09wYXF1ZVJlZjpi
YzAwMWQ1Ny02NWNlLThiMmItNzRiNC1jZDcxOTc2MjcyYzAnICdBTExPV0VEJyAnT0snICdBUEkn
ICdWSUYuZGVzdHJveScgKCgnc2VsZicgJycgJ2M0MGQxOWM4LTE5NjQtZWIwNC1lNTcyLTM0NGI3
NGJiNzcwMScgJ09wYXF1ZVJlZjo1NWUzOTkwYy05ZWI0LTFkMmYtYzM0ZC0xNzg1MWNiODdkZjgn
KSkpDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw4
OXx4YXBpIGV2ZW50cyBEOmI2NDk3ZTJhOGIxNXx4ZW5vcHNdIEV2ZW50IG9uIFZNIGJlNzY0ZGRl
LWJhNmQtNDhmNS1iZGMyLThhZTg3YWQ3NDU1OTsgcmVzaWRlbnRfaGVyZSA9IHRydWUNCj4gRGVj
IDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMDMgSU5FVCA6
Ojo4MHxWTS5pbXBvcnQgKGNsZWFudXApIFI6MDlkZDljNzY4NDUwfG1zY2dlbl0geGFwaT0+eGFw
aSBbbGFiZWw9IlZCRC5kZXN0cm95Il07DQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFw
aTogW2RlYnVnfGc2eGVudGVzdHw0Mzg0IFVOSVggL3Zhci9saWIveGNwL3hhcGl8fGR1bW15dGFz
a2hlbHBlcl0gdGFzayBkaXNwYXRjaDpWQkQuZGVzdHJveSBEOjIwNmU2MDMwZDc5MSBjcmVhdGVk
IGJ5IHRhc2sgUjowOWRkOWM3Njg0NTANCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBp
OiBbIGluZm98ZzZ4ZW50ZXN0fDQzODQgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxkaXNwYXRjaDpW
QkQuZGVzdHJveSBEOjIwNmU2MDMwZDc5MXx0YXNraGVscGVyXSB0YXNrIFZCRC5kZXN0cm95IFI6
MGE3ZjVlOTYyYzRhICh1dWlkOmMyZTViYzY0LWIzZDItZjJmYS0yN2U3LWY4ZGMyMzUyODFjOCkg
Y3JlYXRlZCAodHJhY2tpZD1lZjNjZDQ3NDVmMWI0M2I3N2E5OWFjZmUzYWZiYWU4ZikgYnkgdGFz
ayBSOjA5ZGQ5Yzc2ODQ1MA0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1
Z3xnNnhlbnRlc3R8NDM4NCBVTklYIC92YXIvbGliL3hjcC94YXBpfFZCRC5kZXN0cm95IFI6MGE3
ZjVlOTYyYzRhfGF1ZGl0XSBWQkQuZGVzdHJveTogVkJEID0gJzM1ODcwYmRlLThjY2ItZDAwMS0z
OTk5LWM2YWNhZDBjMmIwYScNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVi
dWd8ZzZ4ZW50ZXN0fDQzODQgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWQkQuZGVzdHJveSBSOjBh
N2Y1ZTk2MmM0YXx4YXBpXSBWQkQuZGVzdHJveSAodXVpZCA9IDM1ODcwYmRlLThjY2ItZDAwMS0z
OTk5LWM2YWNhZDBjMmIwYTsgcmVmID0gT3BhcXVlUmVmOjM0YmJjZjVlLTFjNDQtOGEwMy1mMWYy
LTBkYzQ5NGIyODQ2YSkNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbMjAxNDEy
MzBUMDU6NTE6MzguNjcxWnxhdWRpdHxnNnhlbnRlc3R8NDM4NCBVTklYIC92YXIvbGliL3hjcC94
YXBpfFZCRC5kZXN0cm95IFI6MGE3ZjVlOTYyYzRhfGF1ZGl0XSAoJ3RyYWNraWQ9ZWYzY2Q0NzQ1
ZjFiNDNiNzdhOTlhY2ZlM2FmYmFlOGYnICdMT0NBTF9TVVBFUlVTRVInICdPcGFxdWVSZWY6YmMw
MDFkNTctNjVjZS04YjJiLTc0YjQtY2Q3MTk3NjI3MmMwJyAnQUxMT1dFRCcgJ09LJyAnQVBJJyAn
VkJELmRlc3Ryb3knICgoJ3NlbGYnICcnICczNTg3MGJkZS04Y2NiLWQwMDEtMzk5OS1jNmFjYWQw
YzJiMGEnICdPcGFxdWVSZWY6MzRiYmNmNWUtMWM0NC04YTAzLWYxZjItMGRjNDk0YjI4NDZhJykg
KCdWREknICdYT0EgU3lzdGVtJyAnY2FlMzBlOWItZWJkNC00NDUwLThjZTAtOWY0MDM1Y2E2MmYx
JyAnT3BhcXVlUmVmOjBiMTMyY2E2LWI4ZTctYzExZi02ZmZmLWRlYzA4NDMyY2FmZScpKSkNCj4g
RGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDg5fHhhcGkg
ZXZlbnRzIEQ6YjY0OTdlMmE4YjE1fG1zY2dlbl0geGFwaT0+eGFwaSBbbGFiZWw9ImV2ZW50LmZy
b20iXTsNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0
fDQzODUgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0YXNrIGRpc3Bh
dGNoOmV2ZW50LmZyb20gRDpiMTBkZGMyYjU3OTYgY3JlYXRlZCBieSB0YXNrIEQ6YjY0OTdlMmE4
YjE1DQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0
MzAzIElORVQgOjo6ODB8Vk0uaW1wb3J0IChjbGVhbnVwKSBSOjA5ZGQ5Yzc2ODQ1MHxtc2NnZW5d
IHhhcGk9PnhhcGkgW2xhYmVsPSJWTS5kZXN0cm95Il07DQo+IERlYyAzMCAwNjo1MTozOCBnNnhl
bnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0Mzg2IFVOSVggL3Zhci9saWIveGNwL3hhcGl8
fGR1bW15dGFza2hlbHBlcl0gdGFzayBkaXNwYXRjaDpWTS5kZXN0cm95IEQ6NDZiNjlkODFhNTZm
IGNyZWF0ZWQgYnkgdGFzayBSOjA5ZGQ5Yzc2ODQ1MA0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50
ZXN0IHhhcGk6IFsgaW5mb3xnNnhlbnRlc3R8NDM4NiBVTklYIC92YXIvbGliL3hjcC94YXBpfGRp
c3BhdGNoOlZNLmRlc3Ryb3kgRDo0NmI2OWQ4MWE1NmZ8dGFza2hlbHBlcl0gdGFzayBWTS5kZXN0
cm95IFI6NDM1NzdjNDJkZDA5ICh1dWlkOmEwYjgwYmJhLTI0OWEtNDQzOS04NDI0LTE5NjVlZmIx
OTQ1OSkgY3JlYXRlZCAodHJhY2tpZD1lZjNjZDQ3NDVmMWI0M2I3N2E5OWFjZmUzYWZiYWU4Zikg
YnkgdGFzayBSOjA5ZGQ5Yzc2ODQ1MA0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6
IFtkZWJ1Z3xnNnhlbnRlc3R8NDM4NiBVTklYIC92YXIvbGliL3hjcC94YXBpfFZNLmRlc3Ryb3kg
Ujo0MzU3N2M0MmRkMDl8YXVkaXRdIFZNLmRlc3Ryb3k6IFZNID0gJzNiMTZjMmU3LTA4ZTctM2Mw
Zi00NTJkLTQ1OGMzYTAwODY4NSAoWE9BIDMuNiBCYXNpYyknDQo+IERlYyAzMCAwNjo1MTozOCBn
NnhlbnRlc3QgeGNwLXJyZGQ6IFtkZWJ1Z3xnNnhlbnRlc3R8MTMyNSB1bml4X3JwY3x8aHR0cF0g
UmVxdWVzdCB7IGZyYW1lID0gZmFsc2U7IG1ldGhvZCA9IFBPU1Q7IHVyaSA9IC92YXIvbGliL3hj
cC94Y3AtcnJkZDsgcXVlcnkgPSBbICBdOyBjb250ZW50X2xlbmd0aCA9IFsgMjY2IF07IHRyYW5z
ZmVyIGVuY29kaW5nID0gOyB2ZXJzaW9uID0gMS4xOyBjb29raWUgPSBbID0gXTsgdGFzayA9IDsg
c3VidGFza19vZiA9IDsgY29udGVudC10eXBlID0gOyBob3N0ID0gOyB1c2VyX2FnZW50ID0gL3Vz
ci9zYmluL3hhcGkgfQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xn
NnhlbnRlc3R8NDM4NiBVTklYIC92YXIvbGliL3hjcC94YXBpfFZNLmRlc3Ryb3kgUjo0MzU3N2M0
MmRkMDl8eGFwaV0gVk0uZGVzdHJveTogZGVsZXRpbmcgREIgcmVjb3Jkcw0KPiBEZWMgMzAgMDY6
NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM4NiBVTklYIC92YXIvbGli
L3hjcC94YXBpfFZNLmRlc3Ryb3kgUjo0MzU3N2M0MmRkMDl8eGFwaV0gUmFpc2VkIGF0IGZpbGUg
XCJkYl9jYWNoZV90eXBlcy5tbFwiLCBsaW5lIDEwNywgY2hhcmFjdGVycyAyNy02OVxuQ2FsbGVk
IGZyb20gZmlsZSBcImRiX2NhY2hlX2ltcGwubWxcIiwgbGluZSAyNDAsIGNoYXJhY3RlcnMgMTEt
NDRcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNo
YXJhY3RlcnMgMi05XG4NCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbMjAxNDEy
MzBUMDU6NTE6MzguNzE4WnxhdWRpdHxnNnhlbnRlc3R8NDM4NiBVTklYIC92YXIvbGliL3hjcC94
YXBpfFZNLmRlc3Ryb3kgUjo0MzU3N2M0MmRkMDl8YXVkaXRdICgndHJhY2tpZD1lZjNjZDQ3NDVm
MWI0M2I3N2E5OWFjZmUzYWZiYWU4ZicgJ0xPQ0FMX1NVUEVSVVNFUicgJ09wYXF1ZVJlZjpiYzAw
MWQ1Ny02NWNlLThiMmItNzRiNC1jZDcxOTc2MjcyYzAnICdBTExPV0VEJyAnT0snICdBUEknICdW
TS5kZXN0cm95JyAoKCdzZWxmJyAnWE9BIDMuNiBCYXNpYycgJzNiMTZjMmU3LTA4ZTctM2MwZi00
NTJkLTQ1OGMzYTAwODY4NScgJ09wYXF1ZVJlZjplYzM3ZWQ4Ny1lN2M3LWY2N2EtZTBhZS04YmE3
MDc5ZjRmODQnKSkpDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2
eGVudGVzdHw0MzAzIElORVQgOjo6ODB8Vk0uaW1wb3J0IChjbGVhbnVwKSBSOjA5ZGQ5Yzc2ODQ1
MHxtc2NnZW5dIHhhcGk9PnhhcGkgW2xhYmVsPSJWREkuZGVzdHJveSJdOw0KPiBEZWMgMzAgMDY6
NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM4NyBVTklYIC92YXIvbGli
L3hjcC94YXBpfHxkdW1teXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6VkRJLmRlc3Ryb3kgRDo1
Mzk1ZDdlMjlkODQgY3JlYXRlZCBieSB0YXNrIFI6MDlkZDljNzY4NDUwDQo+IERlYyAzMCAwNjo1
MTozOCBnNnhlbnRlc3QgeGFwaTogWyBpbmZvfGc2eGVudGVzdHw0Mzg3IFVOSVggL3Zhci9saWIv
eGNwL3hhcGl8ZGlzcGF0Y2g6VkRJLmRlc3Ryb3kgRDo1Mzk1ZDdlMjlkODR8dGFza2hlbHBlcl0g
dGFzayBWREkuZGVzdHJveSBSOmViNzNiYTkxNzA4MCAodXVpZDoyNmJhODhmYS0yOGYwLWYyMmUt
ZTQxOC1hZTQ2MDExNWM0YWYpIGNyZWF0ZWQgKHRyYWNraWQ9ZWYzY2Q0NzQ1ZjFiNDNiNzdhOTlh
Y2ZlM2FmYmFlOGYpIGJ5IHRhc2sgUjowOWRkOWM3Njg0NTANCj4gRGVjIDMwIDA2OjUxOjM4IGc2
eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzODcgVU5JWCAvdmFyL2xpYi94Y3AveGFw
aXxWREkuZGVzdHJveSBSOmViNzNiYTkxNzA4MHxhdWRpdF0gVkRJLmRlc3Ryb3k6IFZESSA9ICdj
YWUzMGU5Yi1lYmQ0LTQ0NTAtOGNlMC05ZjQwMzVjYTYyZjEnDQo+IERlYyAzMCAwNjo1MTozOCBn
NnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0Mzg3IFVOSVggL3Zhci9saWIveGNwL3hh
cGl8VkRJLmRlc3Ryb3kgUjplYjczYmE5MTcwODB8eGFwaV0gTWFya2luZyBTUiBmb3IgVkRJLmRl
c3Ryb3kgKHRhc2s9T3BhcXVlUmVmOmViNzNiYTkxLTcwODAtZGM3NC04ZWMxLWJlY2EwMTQ2YmYw
ZCkNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbIGluZm98ZzZ4ZW50ZXN0fDQz
ODcgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWREkuZGVzdHJveSBSOmViNzNiYTkxNzA4MHxzdG9y
YWdlX2ltcGxdIFZESS5kZXN0cm95IGRiZzpPcGFxdWVSZWY6ZWI3M2JhOTEtNzA4MC1kYzc0LThl
YzEtYmVjYTAxNDZiZjBkIHNyOjc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWExNiB2
ZGk6Y2FlMzBlOWItZWJkNC00NDUwLThjZTAtOWY0MDM1Y2E2MmYxDQo+IERlYyAzMCAwNjo1MToz
OCBnNnhlbnRlc3QgeGFwaTogWyBpbmZvfGc2eGVudGVzdHw0Mzg3IFVOSVggL3Zhci9saWIveGNw
L3hhcGl8VkRJLmRlc3Ryb3kgUjplYjczYmE5MTcwODB8c3RvcmFnZV9pbXBsXSBBdHRlbXB0aW5n
IHRvIGRlc3Ryb3kgZGF0YXBhdGggZHA6dmJkLzAveHZkYSBzcjo3ODdiMDg3NC04ZThiLWU3ZDgt
OGJhOS03NGY1NWZmMmVhMTYgdmRpOmNhZTMwZTliLWViZDQtNDQ1MC04Y2UwLTlmNDAzNWNhNjJm
MQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM4
OHx8ZHVtbXl0YXNraGVscGVyXSB0YXNrIFZESS5kZXRhY2ggRDoxMzYzODY2MzY3MDEgY3JlYXRl
ZCBieSB0YXNrIFI6ZWI3M2JhOTE3MDgwDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFw
aTogW2RlYnVnfGc2eGVudGVzdHw0Mzg4fFZESS5kZXRhY2ggRDoxMzYzODY2MzY3MDF8c21dIFNN
IG5mcyB2ZGlfZGV0YWNoIHNyPU9wYXF1ZVJlZjo1MjEyMzFkNi1kZjNiLTc5MGItMWUyMi1iMzQ0
YTgzZDlkMzkgdmRpPU9wYXF1ZVJlZjowYjEzMmNhNi1iOGU3LWMxMWYtNmZmZi1kZWMwODQzMmNh
ZmUNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbIGluZm98ZzZ4ZW50ZXN0fDQz
ODh8c21fZXhlYyBEOjg0MThjMmU3MmNjN3x4YXBpXSBTZXNzaW9uLmNyZWF0ZSB0cmFja2lkPTFk
ODJjY2YwYTY2MTk0MzAwOThhNTM3MjczNzFmODU1IHBvb2w9ZmFsc2UgdW5hbWU9IG9yaWdpbmF0
b3I9IGlzX2xvY2FsX3N1cGVydXNlcj10cnVlIGF1dGhfdXNlcl9zaWQ9IHBhcmVudD10cmFja2lk
PTk4MzRmNWFmNDFjOTY0ZTIyNWYyNDI3OWFlZmU0ZTQ5DQo+IERlYyAzMCAwNjo1MTozOCBnNnhl
bnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0Mzg4fHNtX2V4ZWMgRDo4NDE4YzJlNzJjYzd8
bXNjZ2VuXSB4YXBpPT54YXBpIFtsYWJlbD0ic2Vzc2lvbi5nZXRfdXVpZCJdOw0KPiBEZWMgMzAg
MDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM4OSBVTklYIC92YXIv
bGliL3hjcC94YXBpfHxkdW1teXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6c2Vzc2lvbi5nZXRf
dXVpZCBEOmU2Y2FmY2VmMWQ2MSBjcmVhdGVkIGJ5IHRhc2sgRDo4NDE4YzJlNzJjYzcNCj4gRGVj
IDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzODh8c21fZXhl
YyBEOjg0MThjMmU3MmNjN3xtc2NnZW5dIHNtYXBpdjI9PnNtYXBpdjEgW2xhYmVsPSJ2ZGlfZGV0
YWNoIl07DQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVz
dHw0MzkwIFVOSVggL3Zhci9saWIveGNwL3hhcGl8fGR1bW15dGFza2hlbHBlcl0gdGFzayBkaXNw
YXRjaDpob3N0LmdldF9vdGhlcl9jb25maWcgRDozM2IwYjc2MzZkYzkgY3JlYXRlZCBieSB0YXNr
IEQ6MTM2Mzg2NjM2NzAxDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVn
fGc2eGVudGVzdHw0MzkxIFVOSVggL3Zhci9saWIveGNwL3hhcGl8fGR1bW15dGFza2hlbHBlcl0g
dGFzayBkaXNwYXRjaDpTUi5nZXRfc21fY29uZmlnIEQ6ZDVmMWM2ZGYzMmViIGNyZWF0ZWQgYnkg
dGFzayBEOjEzNjM4NjYzNjcwMQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTMy
Ml0gbG9jazogYWNxdWlyZWQgL3Zhci9sb2NrL3NtLzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0
ZjU1ZmYyZWExNi9zcg0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTMyMl0gWycv
dXNyL3NiaW4vdGQtdXRpbCcsICdxdWVyeScsICd2aGQnLCAnLXZwZicsICcvdmFyL3J1bi9zci1t
b3VudC83ODdiMDg3NC04ZThiLWU3ZDgtOGJhOS03NGY1NWZmMmVhMTYvY2FlMzBlOWItZWJkNC00
NDUwLThjZTAtOWY0MDM1Y2E2MmYxLnZoZCddDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3Qg
U006IFs1MzIyXSAgIHByZWFkIFNVQ0NFU1MNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBT
TTogWzUzMjJdIHZkaV9kZXRhY2ggeydzcl91dWlkJzogJzc4N2IwODc0LThlOGItZTdkOC04YmE5
LTc0ZjU1ZmYyZWExNicsICdzdWJ0YXNrX29mJzogJ0R1bW15UmVmOnwxMzYzODY2My02NzAxLTEw
OTEtNTdkMS1jYmE2ODMwNGVmNmF8VkRJLmRldGFjaCcsICd2ZGlfcmVmJzogJ09wYXF1ZVJlZjow
YjEzMmNhNi1iOGU3LWMxMWYtNmZmZi1kZWMwODQzMmNhZmUnLCAndmRpX29uX2Jvb3QnOiAncGVy
c2lzdCcsICdhcmdzJzogW10sICd2ZGlfbG9jYXRpb24nOiAnY2FlMzBlOWItZWJkNC00NDUwLThj
ZTAtOWY0MDM1Y2E2MmYxJywgJ2hvc3RfcmVmJzogJ09wYXF1ZVJlZjpiYzAwMWQ1Ny02NWNlLThi
MmItNzRiNC1jZDcxOTc2MjcyYzAnLCAnc2Vzc2lvbl9yZWYnOiAnT3BhcXVlUmVmOjhmNmZkNWVk
LTliODgtMGVjZC1kMGRjLTI2NTJlYmU1NDk2OScsICdkZXZpY2VfY29uZmlnJzogeydTUm1hc3Rl
cic6ICd0cnVlJywgJ3NlcnZlcnBhdGgnOiAnL21udC96Ymlvcm5pay90ZXN0dm9sLycsICdzZXJ2
ZXInOiAnMTI3LjAuMC4xJ30sICdjb21tYW5kJzogJ3ZkaV9kZXRhY2gnLCAndmRpX2FsbG93X2Nh
Y2hpbmcnOiAnZmFsc2UnLCAnc3JfcmVmJzogJ09wYXF1ZVJlZjo1MjEyMzFkNi1kZjNiLTc5MGIt
MWUyMi1iMzQ0YTgzZDlkMzknLCAndmRpX3V1aWQnOiAnY2FlMzBlOWItZWJkNC00NDUwLThjZTAt
OWY0MDM1Y2E2MmYxJ30NCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUzMjJdIGxv
Y2s6IGNsb3NlZCAvdmFyL2xvY2svc20vY2FlMzBlOWItZWJkNC00NDUwLThjZTAtOWY0MDM1Y2E2
MmYxL3ZkaQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTMyMl0gbG9jazogcmVs
ZWFzZWQgL3Zhci9sb2NrL3NtLzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWExNi9z
cg0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTMyMl0gbG9jazogY2xvc2VkIC92
YXIvbG9jay9zbS83ODdiMDg3NC04ZThiLWU3ZDgtOGJhOS03NGY1NWZmMmVhMTYvc3INCj4gRGVj
IDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbIGluZm98ZzZ4ZW50ZXN0fDQzODh8c21fZXhl
YyBEOjg0MThjMmU3MmNjN3x4YXBpXSBTZXNzaW9uLmRlc3Ryb3kgdHJhY2tpZD0xZDgyY2NmMGE2
NjE5NDMwMDk4YTUzNzI3MzcxZjg1NQ0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6
IFtkZWJ1Z3xnNnhlbnRlc3R8NDM4NyBVTklYIC92YXIvbGliL3hjcC94YXBpfFZESS5kZXN0cm95
IFI6ZWI3M2JhOTE3MDgwfHN0b3JhZ2VfaW1wbF0gZGJnOk9wYXF1ZVJlZjplYjczYmE5MS03MDgw
LWRjNzQtOGVjMS1iZWNhMDE0NmJmMGQgZHA6dmJkLzAveHZkYSBzcjo3ODdiMDg3NC04ZThiLWU3
ZDgtOGJhOS03NGY1NWZmMmVhMTYgdmRpOmNhZTMwZTliLWViZDQtNDQ1MC04Y2UwLTlmNDAzNWNh
NjJmMSBzdXBlcnN0YXRlOmRldGFjaGVkDQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFw
aTogW2RlYnVnfGc2eGVudGVzdHw0MzkyfHxkdW1teXRhc2toZWxwZXJdIHRhc2sgVkRJLmRlc3Ry
b3kgRDoxMWZkYTFhMTUyMmEgY3JlYXRlZCBieSB0YXNrIFI6ZWI3M2JhOTE3MDgwDQo+IERlYyAz
MCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzkyfFZESS5kZXN0
cm95IEQ6MTFmZGExYTE1MjJhfHNtXSBTTSBuZnMgdmRpX2RlbGV0ZSBzcj1PcGFxdWVSZWY6NTIx
MjMxZDYtZGYzYi03OTBiLTFlMjItYjM0NGE4M2Q5ZDM5IHZkaT1PcGFxdWVSZWY6MGIxMzJjYTYt
YjhlNy1jMTFmLTZmZmYtZGVjMDg0MzJjYWZlDQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3Qg
eGFwaTogWyBpbmZvfGc2eGVudGVzdHw0MzkyfHNtX2V4ZWMgRDo0YmE5M2RhNzg2MzV8eGFwaV0g
U2Vzc2lvbi5jcmVhdGUgdHJhY2tpZD03YmNlODg5MmI2Zjg0ZjJmZTdkZmJjZTUzMjQ2OGFiZiBw
b29sPWZhbHNlIHVuYW1lPSBvcmlnaW5hdG9yPSBpc19sb2NhbF9zdXBlcnVzZXI9dHJ1ZSBhdXRo
X3VzZXJfc2lkPSBwYXJlbnQ9dHJhY2tpZD05ODM0ZjVhZjQxYzk2NGUyMjVmMjQyNzlhZWZlNGU0
OQ0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM5
MnxzbV9leGVjIEQ6NGJhOTNkYTc4NjM1fG1zY2dlbl0geGFwaT0+eGFwaSBbbGFiZWw9InNlc3Np
b24uZ2V0X3V1aWQiXTsNCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8
ZzZ4ZW50ZXN0fDQzOTMgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0
YXNrIGRpc3BhdGNoOnNlc3Npb24uZ2V0X3V1aWQgRDozYWRkMWE4NjRjMTEgY3JlYXRlZCBieSB0
YXNrIEQ6NGJhOTNkYTc4NjM1DQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2Rl
YnVnfGc2eGVudGVzdHw0MzkyfHNtX2V4ZWMgRDo0YmE5M2RhNzg2MzV8bXNjZ2VuXSBzbWFwaXYy
PT5zbWFwaXYxIFtsYWJlbD0idmRpX2RlbGV0ZSJdOw0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50
ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM5NCBVTklYIC92YXIvbGliL3hjcC94YXBpfHxk
dW1teXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6aG9zdC5nZXRfb3RoZXJfY29uZmlnIEQ6NjI0
MmQzZWE1MWRiIGNyZWF0ZWQgYnkgdGFzayBEOjExZmRhMWExNTIyYQ0KPiBEZWMgMzAgMDY6NTE6
MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM5NSBVTklYIC92YXIvbGliL3hj
cC94YXBpfHxkdW1teXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6U1IuZ2V0X3NtX2NvbmZpZyBE
OmEyNzFiZjNlOGFiNiBjcmVhdGVkIGJ5IHRhc2sgRDoxMWZkYTFhMTUyMmENCj4gRGVjIDMwIDA2
OjUxOjM5IGc2eGVudGVzdCBTTTogWzUzMzBdIGxvY2s6IGFjcXVpcmVkIC92YXIvbG9jay9zbS83
ODdiMDg3NC04ZThiLWU3ZDgtOGJhOS03NGY1NWZmMmVhMTYvc3INCj4gRGVjIDMwIDA2OjUxOjM5
IGc2eGVudGVzdCBTTTogWzUzMzBdIFsnL3Vzci9zYmluL3RkLXV0aWwnLCAncXVlcnknLCAndmhk
JywgJy12cGYnLCAnL3Zhci9ydW4vc3ItbW91bnQvNzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRm
NTVmZjJlYTE2L2NhZTMwZTliLWViZDQtNDQ1MC04Y2UwLTlmNDAzNWNhNjJmMS52aGQnXQ0KPiBE
ZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNNOiBbNTMzMF0gICBwcmVhZCBTVUNDRVNTDQo+IERl
YyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgU006IFs1MzMwXSB2ZGlfZGVsZXRlIHsnc3JfdXVpZCc6
ICc3ODdiMDg3NC04ZThiLWU3ZDgtOGJhOS03NGY1NWZmMmVhMTYnLCAnc3VidGFza19vZic6ICdE
dW1teVJlZjp8MTFmZGExYTEtNTIyYS01YzJlLWZjY2MtYzRiNGEzYTYwNjAwfFZESS5kZXN0cm95
JywgJ3ZkaV9yZWYnOiAnT3BhcXVlUmVmOjBiMTMyY2E2LWI4ZTctYzExZi02ZmZmLWRlYzA4NDMy
Y2FmZScsICd2ZGlfb25fYm9vdCc6ICdwZXJzaXN0JywgJ2FyZ3MnOiBbXSwgJ3ZkaV9sb2NhdGlv
bic6ICdjYWUzMGU5Yi1lYmQ0LTQ0NTAtOGNlMC05ZjQwMzVjYTYyZjEnLCAnaG9zdF9yZWYnOiAn
T3BhcXVlUmVmOmJjMDAxZDU3LTY1Y2UtOGIyYi03NGI0LWNkNzE5NzYyNzJjMCcsICdzZXNzaW9u
X3JlZic6ICdPcGFxdWVSZWY6M2ExNWNlOTctMDMxNi1mMDRlLWU5M2YtYTc3MjZmNTYzZTUxJywg
J2RldmljZV9jb25maWcnOiB7J1NSbWFzdGVyJzogJ3RydWUnLCAnc2VydmVycGF0aCc6ICcvbW50
L3piaW9ybmlrL3Rlc3R2b2wvJywgJ3NlcnZlcic6ICcxMjcuMC4wLjEnfSwgJ2NvbW1hbmQnOiAn
dmRpX2RlbGV0ZScsICd2ZGlfYWxsb3dfY2FjaGluZyc6ICdmYWxzZScsICdzcl9yZWYnOiAnT3Bh
cXVlUmVmOjUyMTIzMWQ2LWRmM2ItNzkwYi0xZTIyLWIzNDRhODNkOWQzOScsICd2ZGlfdXVpZCc6
ICdjYWUzMGU5Yi1lYmQ0LTQ0NTAtOGNlMC05ZjQwMzVjYTYyZjEnfQ0KPiBEZWMgMzAgMDY6NTE6
MzkgZzZ4ZW50ZXN0IFNNOiBbNTMzMF0gWycvdXNyL2Jpbi92aGQtdXRpbCcsICdzZXQnLCAnLS1k
ZWJ1ZycsICctbicsICcvdmFyL3J1bi9zci1tb3VudC83ODdiMDg3NC04ZThiLWU3ZDgtOGJhOS03
NGY1NWZmMmVhMTYvY2FlMzBlOWItZWJkNC00NDUwLThjZTAtOWY0MDM1Y2E2MmYxLnZoZCcsICct
ZicsICdoaWRkZW4nLCAnLXYnLCAnMSddDQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgU006
IFs1MzMwXSAgIHByZWFkIFNVQ0NFU1MNCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBp
OiBbZGVidWd8ZzZ4ZW50ZXN0fDQzOTYgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNr
aGVscGVyXSB0YXNrIGRpc3BhdGNoOlZESS5nZXRfYnlfdXVpZCBEOjU1OWY3MDdhMTgzNSBjcmVh
dGVkIGJ5IHRhc2sgRDoxMWZkYTFhMTUyMmENCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4
YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzOTcgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0
YXNraGVscGVyXSB0YXNrIGRpc3BhdGNoOlZESS5kYl9mb3JnZXQgRDo3Mjk0ZmNiMjc0ZWYgY3Jl
YXRlZCBieSB0YXNrIEQ6MTFmZGExYTE1MjJhDQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3Qg
eGFwaTogWyBpbmZvfGc2eGVudGVzdHw0Mzk3IFVOSVggL3Zhci9saWIveGNwL3hhcGl8ZGlzcGF0
Y2g6VkRJLmRiX2ZvcmdldCBEOjcyOTRmY2IyNzRlZnx0YXNraGVscGVyXSB0YXNrIFZESS5kYl9m
b3JnZXQgUjo3MjE1NTIwNTRjYzggKHV1aWQ6YjIwMjM3NGEtMTQ4Yy01ZDNhLWY4MTYtMjZjZWU1
MDExODMwKSBjcmVhdGVkICh0cmFja2lkPTdiY2U4ODkyYjZmODRmMmZlN2RmYmNlNTMyNDY4YWJm
KSBieSB0YXNrIEQ6MTFmZGExYTE1MjJhDQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFw
aTogW2RlYnVnfGc2eGVudGVzdHw0Mzk3IFVOSVggL3Zhci9saWIveGNwL3hhcGl8VkRJLmRiX2Zv
cmdldCBSOjcyMTU1MjA1NGNjOHx4YXBpXSBkYl9mb3JnZXQgdXVpZD1jYWUzMGU5Yi1lYmQ0LTQ0
NTAtOGNlMC05ZjQwMzVjYTYyZjENCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBb
MjAxNDEyMzBUMDU6NTE6MzkuMzA3WnxhdWRpdHxnNnhlbnRlc3R8NDM5NyBVTklYIC92YXIvbGli
L3hjcC94YXBpfFZESS5kYl9mb3JnZXQgUjo3MjE1NTIwNTRjYzh8YXVkaXRdICgndHJhY2tpZD03
YmNlODg5MmI2Zjg0ZjJmZTdkZmJjZTUzMjQ2OGFiZicgJ0xPQ0FMX1NVUEVSVVNFUicgJ19fc21f
X2JhY2tlbmQnICdBTExPV0VEJyAnT0snICdBUEknICdWREkuZGJfZm9yZ2V0JyAoKCd2ZGknICcn
ICcnICdPcGFxdWVSZWY6MGIxMzJjYTYtYjhlNy1jMTFmLTZmZmYtZGVjMDg0MzJjYWZlJykpKQ0K
PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM5OCBV
TklYIC92YXIvbGliL3hjcC94YXBpfHxkdW1teXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6U1Iu
Z2V0X3ZpcnR1YWxfYWxsb2NhdGlvbiBEOjBhNjNjNjEwNmZjOSBjcmVhdGVkIGJ5IHRhc2sgRDox
MWZkYTFhMTUyMmENCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4
ZW50ZXN0fDQzOTkgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0YXNr
IGRpc3BhdGNoOlNSLmdldF9ieV91dWlkIEQ6NzI1NGM0OGE2YjAwIGNyZWF0ZWQgYnkgdGFzayBE
OjExZmRhMWExNTIyYQ0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xn
NnhlbnRlc3R8NDQwMCBVTklYIC92YXIvbGliL3hjcC94YXBpfHxkdW1teXRhc2toZWxwZXJdIHRh
c2sgZGlzcGF0Y2g6U1Iuc2V0X3ZpcnR1YWxfYWxsb2NhdGlvbiBEOjFlNzhlMmZlYTNkYyBjcmVh
dGVkIGJ5IHRhc2sgRDoxMWZkYTFhMTUyMmENCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4
YXBpOiBbMjAxNDEyMzBUMDU6NTE6MzkuMzQxWnxhdWRpdHxnNnhlbnRlc3R8NDQwMCBVTklYIC92
YXIvbGliL3hjcC94YXBpfFNSLnNldF92aXJ0dWFsX2FsbG9jYXRpb24gRDplZjMxZWMwMDhjNDV8
YXVkaXRdICgndHJhY2tpZD03YmNlODg5MmI2Zjg0ZjJmZTdkZmJjZTUzMjQ2OGFiZicgJ0xPQ0FM
X1NVUEVSVVNFUicgJ19fc21fX2JhY2tlbmQnICdBTExPV0VEJyAnT0snICdBUEknICdTUi5zZXRf
dmlydHVhbF9hbGxvY2F0aW9uJyAoKCdzZWxmJyAnbG9jYWwgbmZzJyAnNzg3YjA4NzQtOGU4Yi1l
N2Q4LThiYTktNzRmNTVmZjJlYTE2JyAnT3BhcXVlUmVmOjUyMTIzMWQ2LWRmM2ItNzkwYi0xZTIy
LWIzNDRhODNkOWQzOScpKSkNCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVi
dWd8ZzZ4ZW50ZXN0fDQ0MDEgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVy
XSB0YXNrIGRpc3BhdGNoOlNSLnNldF9waHlzaWNhbF9zaXplIEQ6ZWViNDJjZmE5YWViIGNyZWF0
ZWQgYnkgdGFzayBEOjExZmRhMWExNTIyYQ0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhh
cGk6IFsyMDE0MTIzMFQwNTo1MTozOS4zNDVafGF1ZGl0fGc2eGVudGVzdHw0NDAxIFVOSVggL3Zh
ci9saWIveGNwL3hhcGl8U1Iuc2V0X3BoeXNpY2FsX3NpemUgRDpiNTgzNDhmNTM2N2F8YXVkaXRd
ICgndHJhY2tpZD03YmNlODg5MmI2Zjg0ZjJmZTdkZmJjZTUzMjQ2OGFiZicgJ0xPQ0FMX1NVUEVS
VVNFUicgJ19fc21fX2JhY2tlbmQnICdBTExPV0VEJyAnT0snICdBUEknICdTUi5zZXRfcGh5c2lj
YWxfc2l6ZScgKCgnc2VsZicgJ2xvY2FsIG5mcycgJzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0
ZjU1ZmYyZWExNicgJ09wYXF1ZVJlZjo1MjEyMzFkNi1kZjNiLTc5MGItMWUyMi1iMzQ0YTgzZDlk
MzknKSkpDQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVz
dHw0NDAyIFVOSVggL3Zhci9saWIveGNwL3hhcGl8fGR1bW15dGFza2hlbHBlcl0gdGFzayBkaXNw
YXRjaDpTUi5zZXRfcGh5c2ljYWxfdXRpbGlzYXRpb24gRDpjNTBhZTQwNGU5NTcgY3JlYXRlZCBi
eSB0YXNrIEQ6MTFmZGExYTE1MjJhDQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTog
WzIwMTQxMjMwVDA1OjUxOjM5LjM0OVp8YXVkaXR8ZzZ4ZW50ZXN0fDQ0MDIgVU5JWCAvdmFyL2xp
Yi94Y3AveGFwaXxTUi5zZXRfcGh5c2ljYWxfdXRpbGlzYXRpb24gRDpmOTAxNWRlMjAzMDF8YXVk
aXRdICgndHJhY2tpZD03YmNlODg5MmI2Zjg0ZjJmZTdkZmJjZTUzMjQ2OGFiZicgJ0xPQ0FMX1NV
UEVSVVNFUicgJ19fc21fX2JhY2tlbmQnICdBTExPV0VEJyAnT0snICdBUEknICdTUi5zZXRfcGh5
c2ljYWxfdXRpbGlzYXRpb24nICgoJ3NlbGYnICdsb2NhbCBuZnMnICc3ODdiMDg3NC04ZThiLWU3
ZDgtOGJhOS03NGY1NWZmMmVhMTYnICdPcGFxdWVSZWY6NTIxMjMxZDYtZGYzYi03OTBiLTFlMjIt
YjM0NGE4M2Q5ZDM5JykpKQ0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNNOiBbNTMzMF0g
bG9jazogdHJpZWQgbG9jayAvdmFyL2xvY2svc20vNzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRm
NTVmZjJlYTE2L3J1bm5pbmcsIGFjcXVpcmVkOiBUcnVlIChleGlzdHM6IFRydWUpDQo+IERlYyAz
MCAwNjo1MTozOSBnNnhlbnRlc3QgU006IFs1MzMwXSBsb2NrOiByZWxlYXNlZCAvdmFyL2xvY2sv
c20vNzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2L3J1bm5pbmcNCj4gRGVjIDMw
IDA2OjUxOjM5IGc2eGVudGVzdCBTTTogWzUzMzBdIEtpY2tpbmcgR0MNCj4gRGVjIDMwIDA2OjUx
OjM5IGc2eGVudGVzdCBTTUdDOiBbNTMzMF0gPT09IFNSIDc4N2IwODc0LThlOGItZTdkOC04YmE5
LTc0ZjU1ZmYyZWExNjogZ2MgPT09DQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgU01HQzog
WzUzNDJdIFdpbGwgZmluaXNoIGFzIFBJRCBbNTM0M10NCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVu
dGVzdCBTTUdDOiBbNTMzMF0gTmV3IFBJRCBbNTM0Ml0NCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVu
dGVzdCBTTTogWzUzMzBdIGxvY2s6IGNsb3NlZCAvdmFyL2xvY2svc20vNzg3YjA4NzQtOGU4Yi1l
N2Q4LThiYTktNzRmNTVmZjJlYTE2L3J1bm5pbmcNCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVz
dCBTTTogWzUzMzBdIGxvY2s6IHJlbGVhc2VkIC92YXIvbG9jay9zbS83ODdiMDg3NC04ZThiLWU3
ZDgtOGJhOS03NGY1NWZmMmVhMTYvc3INCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCBTTTog
WzUzMzBdIGxvY2s6IGNsb3NlZCAvdmFyL2xvY2svc20vNzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTkt
NzRmNTVmZjJlYTE2L3NyDQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogWyBpbmZv
fGc2eGVudGVzdHw0NDAzIFVOSVggL3Zhci9saWIveGNwL3hhcGl8c2Vzc2lvbi5sb2dpbl93aXRo
X3Bhc3N3b3JkIEQ6MDQ0Zjk5Y2NjZjk2fHhhcGldIFNlc3Npb24uY3JlYXRlIHRyYWNraWQ9ODc1
YzNlNjAxYTA0MmRiMjcxNGY5ZmI4M2FmOWZjZDcgcG9vbD1mYWxzZSB1bmFtZT1yb290IG9yaWdp
bmF0b3I9IGlzX2xvY2FsX3N1cGVydXNlcj10cnVlIGF1dGhfdXNlcl9zaWQ9IHBhcmVudD10cmFj
a2lkPTk4MzRmNWFmNDFjOTY0ZTIyNWYyNDI3OWFlZmU0ZTQ5DQo+IERlYyAzMCAwNjo1MTozOSBn
NnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0NDAzIFVOSVggL3Zhci9saWIveGNwL3hh
cGl8c2Vzc2lvbi5sb2dpbl93aXRoX3Bhc3N3b3JkIEQ6MDQ0Zjk5Y2NjZjk2fG1zY2dlbl0geGFw
aT0+eGFwaSBbbGFiZWw9InNlc3Npb24uZ2V0X3V1aWQiXTsNCj4gRGVjIDMwIDA2OjUxOjM5IGc2
eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQ0MDQgVU5JWCAvdmFyL2xpYi94Y3AveGFw
aXx8ZHVtbXl0YXNraGVscGVyXSB0YXNrIGRpc3BhdGNoOnNlc3Npb24uZ2V0X3V1aWQgRDphOGRh
ODFkNDI1ZTggY3JlYXRlZCBieSB0YXNrIEQ6MDQ0Zjk5Y2NjZjk2DQo+IERlYyAzMCAwNjo1MToz
OSBnNnhlbnRlc3QgU01HQzogWzUzNDNdIEZvdW5kIDAgY2FjaGUgZmlsZXMNCj4gRGVjIDMwIDA2
OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbIGluZm98ZzZ4ZW50ZXN0fDQzOTJ8c21fZXhlYyBEOjRi
YTkzZGE3ODYzNXx4YXBpXSBTZXNzaW9uLmRlc3Ryb3kgdHJhY2tpZD03YmNlODg5MmI2Zjg0ZjJm
ZTdkZmJjZTUzMjQ2OGFiZg0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1
Z3xnNnhlbnRlc3R8NDM4NyBVTklYIC92YXIvbGliL3hjcC94YXBpfFZESS5kZXN0cm95IFI6ZWI3
M2JhOTE3MDgwfHhhcGldIFVubWFya2luZyBTUiBhZnRlciBWREkuZGVzdHJveSAodGFzaz1PcGFx
dWVSZWY6ZWI3M2JhOTEtNzA4MC1kYzc0LThlYzEtYmVjYTAxNDZiZjBkKQ0KPiBEZWMgMzAgMDY6
NTE6MzkgZzZ4ZW50ZXN0IFNNOiBbNTM0M10gbG9jazogdHJpZWQgbG9jayAvdmFyL2xvY2svc20v
Nzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2L3NyLCBhY3F1aXJlZDogVHJ1ZSAo
ZXhpc3RzOiBUcnVlKQ0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFsyMDE0MTIz
MFQwNTo1MTozOS40NTdafGF1ZGl0fGc2eGVudGVzdHw0Mzg3IFVOSVggL3Zhci9saWIveGNwL3hh
cGl8VkRJLmRlc3Ryb3kgUjplYjczYmE5MTcwODB8YXVkaXRdICgndHJhY2tpZD1lZjNjZDQ3NDVm
MWI0M2I3N2E5OWFjZmUzYWZiYWU4ZicgJ0xPQ0FMX1NVUEVSVVNFUicgJ09wYXF1ZVJlZjpiYzAw
MWQ1Ny02NWNlLThiMmItNzRiNC1jZDcxOTc2MjcyYzAnICdBTExPV0VEJyAnT0snICdBUEknICdW
REkuZGVzdHJveScgKCgnc2VsZicgJ1hPQSBTeXN0ZW0nICdjYWUzMGU5Yi1lYmQ0LTQ0NTAtOGNl
MC05ZjQwMzVjYTYyZjEnICdPcGFxdWVSZWY6MGIxMzJjYTYtYjhlNy1jMTFmLTZmZmYtZGVjMDg0
MzJjYWZlJykpKQ0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNNOiBbNTM0M10gWycvdXNy
L2Jpbi92aGQtdXRpbCcsICdzY2FuJywgJy1mJywgJy1jJywgJy1tJywgJy92YXIvcnVuL3NyLW1v
dW50Lzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWExNi8qLnZoZCddDQo+IERlYyAz
MCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzAzIElORVQgOjo6
ODB8Vk0uaW1wb3J0IChjbGVhbnVwKSBSOjA5ZGQ5Yzc2ODQ1MHxtc2NnZW5dIHhhcGk9PnhhcGkg
W2xhYmVsPSJzZXNzaW9uLmxvZ291dCJdOw0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhh
cGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDQxNSBVTklYIC92YXIvbGliL3hjcC94YXBpfHxkdW1teXRh
c2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6c2Vzc2lvbi5sb2dvdXQgRDplZDE1YTg0NjgzM2UgY3Jl
YXRlZCBieSB0YXNrIFI6MDlkZDljNzY4NDUwDQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3Qg
eGFwaTogWyBpbmZvfGc2eGVudGVzdHw0NDE1IFVOSVggL3Zhci9saWIveGNwL3hhcGl8c2Vzc2lv
bi5sb2dvdXQgRDoyOTQ0NDliZTBhNTh8eGFwaV0gU2Vzc2lvbi5kZXN0cm95IHRyYWNraWQ9ZWYz
Y2Q0NzQ1ZjFiNDNiNzdhOTlhY2ZlM2FmYmFlOGYNCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVz
dCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMDMgSU5FVCA6Ojo4MHxWTSBpbXBvcnQgUjpkYmRi
MGVlNWFlMTZ8eGFwaV0gUmFpc2VkIGF0IGZpbGUgXCJpbXBvcnQubWxcIiwgbGluZSAxNTI1LCBj
aGFyYWN0ZXJzIDIwLTIxXG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwi
LCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuDQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3Qg
eGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzAzIElORVQgOjo6ODB8Vk0gaW1wb3J0IFI6ZGJkYjBl
ZTVhZTE2fGltcG9ydF0gQ2xvc2luZyBwaXBlcw0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0
IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwNnx8eGFwaV0gUmFpc2VkIGJ5IHByaW1pdGl2ZSBv
cGVyYXRpb24gYXQgZmlsZSBcInVuaXgubWxcIiwgbGluZSAyNTIsIGNoYXJhY3RlcnMgNy0zNFxu
Q2FsbGVkIGZyb20gZmlsZSBcImxpYi91bml4ZXh0Lm1sXCIsIGxpbmUgMjIyLCBjaGFyYWN0ZXJz
IDEzLTM0XG5DYWxsZWQgZnJvbSBmaWxlIFwiaW1wb3J0Lm1sXCIsIGxpbmUgMTI3MywgY2hhcmFj
dGVycyAxMi01M1xuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGlu
ZSAyMiwgY2hhcmFjdGVycyAyLTlcbg0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IGZvcmtl
eGVjZDogW2Vycm9yfGc2eGVudGVzdHwwfHxmb3JrZXhlY2RdIDUyMTcgKC9iaW4vbmljZSAtbiAx
OSAvdXNyL2Jpbi9pb25pY2UgLWMgMyAvYmluL2d6aXAgLS1kZWNvbXByZXNzIC0tc3Rkb3V0IC0t
Zm9yY2UpIGV4aXR0ZWQgd2l0aCBjb2RlIDENCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4
YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMDZ8fHhhcGldIFJhaXNlZCBhdCBmaWxlIFwicGVydmFz
aXZlcy5tbFwiLCBsaW5lIDIwLCBjaGFyYWN0ZXJzIDIyLTMzXG5DYWxsZWQgZnJvbSBmaWxlIFwi
bGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFyYWN0ZXJzIDQtMTRcbkNhbGxlZCBm
cm9tIGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMgMi05
XG4NCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQz
MDZ8fHhhcGldIFJhaXNlZCBhdCBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDI2
LCBjaGFyYWN0ZXJzIDIyLTI1XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5t
bFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuDQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRl
c3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzAzIElORVQgOjo6ODB8Vk0gaW1wb3J0IFI6ZGJk
YjBlZTVhZTE2fGJhY2t0cmFjZV0gUmFpc2VkIGF0IGZpbGUgXCJpbXBvcnQubWxcIiwgbGluZSAx
NTI1LCBjaGFyYWN0ZXJzIDIwLTIxXG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4
dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuUmUtcmFpc2VkIGF0IGZpbGUgXCJsaWIv
cGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxlZCBmcm9t
IGZpbGUgXCJpbXBvcnQubWxcIiwgbGluZSAxNDU5LCBjaGFyYWN0ZXJzIDktMTAyM1xuUmUtcmFp
c2VkIGF0IGZpbGUgXCJpbXBvcnQubWxcIiwgbGluZSAxNTU0LCBjaGFyYWN0ZXJzIDE0LTE1XG5D
YWxsZWQgZnJvbSBmaWxlIFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGluZSA3MiwgY2hhcmFjdGVy
cyAxMS0yM1xuDQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVu
dGVzdHw0MzAzIElORVQgOjo6ODB8Vk0gaW1wb3J0IFI6ZGJkYjBlZTVhZTE2fGRpc3BhdGNoZXJd
IFNlcnZlcl9oZWxwZXJzLmV4ZWMgZXhjZXB0aW9uX2hhbmRsZXI6IEdvdCBleGNlcHRpb24gU1Jf
QkFDS0VORF9GQUlMVVJFOiBbIG5vbi16ZXJvIGV4aXQ7IDsgVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOiMwMTIgIEZpbGUgIi9vcHQveGVuc291cmNlL3NtL05GU1NSIiwgbGluZSAy
NzgsIGluIDxtb2R1bGU+IzAxMiBTUkNvbW1hbmQucnVuKE5GU1NSLCBEUklWRVJfSU5GTykjMDEy
ICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMzQ0LCBpbiBydW4j
MDEyICAgIHJldCA9IGNtZC5ydW4oc3IpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNv
bW1hbmQucHkiLCBsaW5lIDExMCwgaW4gcnVuIzAxMiAgICByZXR1cm4gc2VsZi5fcnVuX2xvY2tl
ZChzcikjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMTU5
LCBpbiBfcnVuX2xvY2tlZCMwMTIgICAgcnYgPSBzZWxmLl9ydW4oc3IsIHRhcmdldCkjMDEyICBG
aWxlICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMjYzLCBpbiBfcnVuIzAx
MiAgICB3cml0YWJsZSwgY2FjaGluZ19wYXJhbXMpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9z
bS9ibGt0YXAyLnB5IiwgbGluZSAxNDg2LCBpbiBhY3RpdmF0ZSMwMTIgICAgaWYgc2VsZi5fYWN0
aXZhdGVfbG9ja2VkKHNyX3V1aWQsIHZkaV91dWlkLCBvcHRpb25zKTojMDEyICBGaWxlICIvdXNy
L2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDgzLCBpbiB3cmFwcGVyIzAxMiAgICByZXQg
PSBvcChzZWxmLCAqYXJncykjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHki
LCBsaW5lIDE1MjIsIGluIF9hY3RpdmF0ZV9sb2NrZWQjMDEyICAgIGRldl9wYXRoID0gc2VsZi5f
YWN0aXZhdGUoc3JfdXVpZCwgdmRpX3V1aWQsIG9wdGlvbnMpIzAxMiAgRmlsZSAiL3Vzci9saWIv
eGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNTYwLCBpbiBfYWN0aXZhdGUjMDEyIHNlbGYuX2dl
dF9wb29sX2NvbmZpZyhzcl91dWlkKS5nZXQoIm1lbS1wb29sLXNpemUiKSkjMDEyICBGaWxlICIv
dXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDEyNDMsIGluIF90YXBfYWN0aXZhdGUj
MDEyIHRhcGRpc2sgPSBUYXBkaXNrLmZpbmRfYnlfcGF0aChwaHlfcGF0aCkjMDEyICBGaWxlICIv
dXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDY5MCwgaW4gZmluZF9ieV9wYXRoIzAx
MiByZXR1cm4gY2xzLmZpbmQocGF0aD1wYXRoKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20v
YmxrdGFwMi5weSIsIGxpbmUgNjc4LCBpbiBmaW5kIzAxMiAgICBmb3VuZCA9IGxpc3QoY2xzLmxp
c3QoKiphcmdzKSkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5l
IDY1MywgaW4gbGlzdCMwMTIgICAgZm9yIHJvdyBpbiBUYXBDdGwubGlzdCgqKmFyZ3MpOiMwMTIg
IEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTE4LCBpbiBsb29wIzAx
MiAgICByZXR1cm4gZigqX190LCAqKl9fZCkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Js
a3RhcDIucHkiLCBsaW5lIDM0OCwgaW4gbGlzdCMwMTIgICAgaWYgZS5zdGF0dXMgaW4gdHJhbnNp
ZW50OiMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTYyLCBp
biBfX2dldGF0dHJfXyMwMTIgICAgcmV0dXJuIG9iamVjdC5fX2dldGF0dHJpYnV0ZV9fKHNlbGYs
IGtleSkjMDEyQXR0cmlidXRlRXJyb3I6ICdDb21tYW5kRmFpbHVyZScgb2JqZWN0IGhhcyBubyBh
dHRyaWJ1dGUgJ3N0YXR1cycjMDEyIF0NCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBp
OiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMDMgSU5FVCA6Ojo4MHxWTSBpbXBvcnQgUjpkYmRiMGVlNWFl
MTZ8ZGlzcGF0Y2hlcl0gUmFpc2VkIGF0IGZpbGUgXCJpbXBvcnQubWxcIiwgbGluZSAxNTI1LCBj
aGFyYWN0ZXJzIDIwLTIxXG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwi
LCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuUmUtcmFpc2VkIGF0IGZpbGUgXCJsaWIvcGVydmFz
aXZlZXh0Lm1sXCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxlZCBmcm9tIGZpbGUg
XCJpbXBvcnQubWxcIiwgbGluZSAxNDU5LCBjaGFyYWN0ZXJzIDktMTAyM1xuUmUtcmFpc2VkIGF0
IGZpbGUgXCJpbXBvcnQubWxcIiwgbGluZSAxNTU0LCBjaGFyYWN0ZXJzIDE0LTE1XG5DYWxsZWQg
ZnJvbSBmaWxlIFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGluZSA3MiwgY2hhcmFjdGVycyAxMS0y
M1xuDQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0
MzAzIElORVQgOjo6ODB8Vk0gaW1wb3J0IFI6ZGJkYjBlZTVhZTE2fGJhY2t0cmFjZV0gUmFpc2Vk
IGF0IGZpbGUgXCJpbXBvcnQubWxcIiwgbGluZSAxNTI1LCBjaGFyYWN0ZXJzIDIwLTIxXG5DYWxs
ZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJz
IDItOVxuUmUtcmFpc2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjYs
IGNoYXJhY3RlcnMgMjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJpbXBvcnQubWxcIiwgbGluZSAx
NDU5LCBjaGFyYWN0ZXJzIDktMTAyM1xuUmUtcmFpc2VkIGF0IGZpbGUgXCJpbXBvcnQubWxcIiwg
bGluZSAxNTU0LCBjaGFyYWN0ZXJzIDE0LTE1XG5DYWxsZWQgZnJvbSBmaWxlIFwic2VydmVyX2hl
bHBlcnMubWxcIiwgbGluZSA3MiwgY2hhcmFjdGVycyAxMS0yM1xuDQo+IERlYyAzMCAwNjo1MToz
OSBnNnhlbnRlc3QgU006IFs1MzQzXSAgIHByZWFkIFNVQ0NFU1MNCj4gRGVjIDMwIDA2OjUxOjM5
IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMDMgSU5FVCA6Ojo4MHxWTSBpbXBv
cnQgUjpkYmRiMGVlNWFlMTZ8eGFwaV0gUmFpc2VkIGF0IGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5t
bFwiLCBsaW5lIDkwLCBjaGFyYWN0ZXJzIDE0LTE1XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3Bl
cnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuDQo+IERlYyAzMCAwNjo1
MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzAzIElORVQgOjo6ODB8Vk0g
aW1wb3J0IFI6ZGJkYjBlZTVhZTE2fHRhc2toZWxwZXJdIGZvcndhcmRlZCB0YXNrIGRlc3Ryb3ll
ZA0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMw
MyBJTkVUIDo6OjgwfFZNLmltcG9ydCBEOmFhMGEyOGZlYmYwNnx4YXBpXSBSYWlzZWQgYXQgZmls
ZSBcInNlcnZlcl9oZWxwZXJzLm1sXCIsIGxpbmUgOTAsIGNoYXJhY3RlcnMgMTQtMTVcbkNhbGxl
ZCBmcm9tIGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMg
Mi05XG5SZS1yYWlzZWQgYXQgZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyNiwg
Y2hhcmFjdGVycyAyMi0yNVxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9kZWJ1Zy5tbFwiLCBsaW5l
IDU3LCBjaGFyYWN0ZXJzIDE3LTIwXG5SZS1yYWlzZWQgYXQgZmlsZSBcImxpYi9kZWJ1Zy5tbFwi
LCBsaW5lIDYyLCBjaGFyYWN0ZXJzIDEwLTExXG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZh
c2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuDQo+IERlYyAzMCAwNjo1MToz
OSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzAzIElORVQgOjo6ODB8Vk0uaW1w
b3J0IEQ6YWEwYTI4ZmViZjA2fHhhcGldIFJhaXNlZCBhdCBmaWxlIFwic2VydmVyX2hlbHBlcnMu
bWxcIiwgbGluZSA5MCwgY2hhcmFjdGVycyAxNC0xNVxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9w
ZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFjdGVycyAyLTlcblJlLXJhaXNlZCBhdCBm
aWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFyYWN0ZXJzIDIyLTI1XG5D
YWxsZWQgZnJvbSBmaWxlIFwibGliL2RlYnVnLm1sXCIsIGxpbmUgNTcsIGNoYXJhY3RlcnMgMTct
MjBcblJlLXJhaXNlZCBhdCBmaWxlIFwibGliL2RlYnVnLm1sXCIsIGxpbmUgNjIsIGNoYXJhY3Rl
cnMgMTAtMTFcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUg
MjIsIGNoYXJhY3RlcnMgMi05XG5SZS1yYWlzZWQgYXQgZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQu
bWxcIiwgbGluZSAyNiwgY2hhcmFjdGVycyAyMi0yNVxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9w
ZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFjdGVycyAyLTlcbg0KPiBEZWMgMzAgMDY6
NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMyBJTkVUIDo6OjgwfFZN
LmltcG9ydCBEOmFhMGEyOGZlYmYwNnx4YXBpXSBSYWlzZWQgYXQgZmlsZSBcInNlcnZlcl9oZWxw
ZXJzLm1sXCIsIGxpbmUgOTAsIGNoYXJhY3RlcnMgMTQtMTVcbkNhbGxlZCBmcm9tIGZpbGUgXCJs
aWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMgMi05XG5SZS1yYWlzZWQg
YXQgZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyNiwgY2hhcmFjdGVycyAyMi0y
NVxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9kZWJ1Zy5tbFwiLCBsaW5lIDU3LCBjaGFyYWN0ZXJz
IDE3LTIwXG5SZS1yYWlzZWQgYXQgZmlsZSBcImxpYi9kZWJ1Zy5tbFwiLCBsaW5lIDYyLCBjaGFy
YWN0ZXJzIDEwLTExXG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBs
aW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuUmUtcmFpc2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZl
ZXh0Lm1sXCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJs
aWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMgMi05XG5SZS1yYWlzZWQg
YXQgZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyNiwgY2hhcmFjdGVycyAyMi0y
NVxuQ2FsbGVkIGZyb20gZmlsZSBcInhhcGlfaHR0cC5tbFwiLCBsaW5lIDE5MywgY2hhcmFjdGVy
cyA0LTgxMFxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAy
MiwgY2hhcmFjdGVycyAyLTlcbg0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtk
ZWJ1Z3xnNnhlbnRlc3R8NDMwMyBJTkVUIDo6OjgwfFZNLmltcG9ydCBEOmFhMGEyOGZlYmYwNnxt
c2NnZW5dIHhhcGk9PnhhcGkgW2xhYmVsPSJzZXNzaW9uLmxvZ291dCJdOw0KPiBEZWMgMzAgMDY6
NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFsyMDE0MTIzMFQwNTo1MTozOS42MTVafGF1ZGl0fGc2eGVu
dGVzdHw0MzAwIFVOSVggL3Zhci9saWIveGNwL3hhcGl8ZXZlbnQudW5yZWdpc3RlciBEOjJiZmM5
OTVmYzQ5M3xhdWRpdF0gKCd0cmFja2lkPTA5YTlmNTgyMDU3YWQyNzgxNmU0M2E0ZDNjMThiZjFi
JyAnTE9DQUxfU1VQRVJVU0VSJyAncm9vdCcgJ0FMTE9XRUQnICdPSycgJ0FQSScgJ2V2ZW50LnVu
cmVnaXN0ZXInICgpKQ0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xn
NnhlbnRlc3R8NDQxNiBVTklYIC92YXIvbGliL3hjcC94YXBpfHxkdW1teXRhc2toZWxwZXJdIHRh
c2sgZGlzcGF0Y2g6c2Vzc2lvbi5sb2dvdXQgRDpiNjc2YzUyMjdmODcgY3JlYXRlZCBieSB0YXNr
IEQ6YWEwYTI4ZmViZjA2DQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogWyBpbmZv
fGc2eGVudGVzdHw0NDE2IFVOSVggL3Zhci9saWIveGNwL3hhcGl8c2Vzc2lvbi5sb2dvdXQgRDox
ZGM3YTI5YThjZGR8eGFwaV0gU2Vzc2lvbi5kZXN0cm95IHRyYWNraWQ9Y2ExZTBlMDJmMWM2Zjlm
Y2M5ODAzNjhlNzEwZDhjOGINCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVi
dWd8ZzZ4ZW50ZXN0fDQzMDMgSU5FVCA6Ojo4MHxWTS5pbXBvcnQgRDphYTBhMjhmZWJmMDZ8YmFj
a3RyYWNlXSBSYWlzZWQgYXQgZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyNiwg
Y2hhcmFjdGVycyAyMi0yNVxuQ2FsbGVkIGZyb20gZmlsZSBcImltcG9ydC5tbFwiLCBsaW5lIDEz
ODcsIGNoYXJhY3RlcnMgMjAtMTAyM1xuQ2FsbGVkIGZyb20gZmlsZSBcInNlcnZlcl9oZWxwZXJz
Lm1sXCIsIGxpbmUgNzIsIGNoYXJhY3RlcnMgMTEtMjNcbg0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4
ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMyBJTkVUIDo6OjgwfFZNLmltcG9ydCBE
OmFhMGEyOGZlYmYwNnxkaXNwYXRjaGVyXSBTZXJ2ZXJfaGVscGVycy5leGVjIGV4Y2VwdGlvbl9o
YW5kbGVyOiBHb3QgZXhjZXB0aW9uIFNSX0JBQ0tFTkRfRkFJTFVSRTogWyBub24temVybyBleGl0
OyA7IFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KTojMDEyICBGaWxlICIvb3B0L3hl
bnNvdXJjZS9zbS9ORlNTUiIsIGxpbmUgMjc4LCBpbiA8bW9kdWxlPiMwMTIgU1JDb21tYW5kLnJ1
bihORlNTUiwgRFJJVkVSX0lORk8pIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1h
bmQucHkiLCBsaW5lIDM0NCwgaW4gcnVuIzAxMiAgICByZXQgPSBjbWQucnVuKHNyKSMwMTIgIEZp
bGUgIi91c3IvbGliL3hhcGkvc20vU1JDb21tYW5kLnB5IiwgbGluZSAxMTAsIGluIHJ1biMwMTIg
ICAgcmV0dXJuIHNlbGYuX3J1bl9sb2NrZWQoc3IpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9z
bS9TUkNvbW1hbmQucHkiLCBsaW5lIDE1OSwgaW4gX3J1bl9sb2NrZWQjMDEyICAgIHJ2ID0gc2Vs
Zi5fcnVuKHNyLCB0YXJnZXQpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1hbmQu
cHkiLCBsaW5lIDI2MywgaW4gX3J1biMwMTIgICAgd3JpdGFibGUsIGNhY2hpbmdfcGFyYW1zKSMw
MTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTQ4NiwgaW4gYWN0
aXZhdGUjMDEyICAgIGlmIHNlbGYuX2FjdGl2YXRlX2xvY2tlZChzcl91dWlkLCB2ZGlfdXVpZCwg
b3B0aW9ucyk6IzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA4
MywgaW4gd3JhcHBlciMwMTIgICAgcmV0ID0gb3Aoc2VsZiwgKmFyZ3MpIzAxMiAgRmlsZSAiL3Vz
ci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNTIyLCBpbiBfYWN0aXZhdGVfbG9ja2Vk
IzAxMiAgICBkZXZfcGF0aCA9IHNlbGYuX2FjdGl2YXRlKHNyX3V1aWQsIHZkaV91dWlkLCBvcHRp
b25zKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTU2MCwg
aW4gX2FjdGl2YXRlIzAxMiBzZWxmLl9nZXRfcG9vbF9jb25maWcoc3JfdXVpZCkuZ2V0KCJtZW0t
cG9vbC1zaXplIikpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGlu
ZSAxMjQzLCBpbiBfdGFwX2FjdGl2YXRlIzAxMiB0YXBkaXNrID0gVGFwZGlzay5maW5kX2J5X3Bh
dGgocGh5X3BhdGgpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGlu
ZSA2OTAsIGluIGZpbmRfYnlfcGF0aCMwMTIgcmV0dXJuIGNscy5maW5kKHBhdGg9cGF0aCkjMDEy
ICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDY3OCwgaW4gZmluZCMw
MTIgICAgZm91bmQgPSBsaXN0KGNscy5saXN0KCoqYXJncykpIzAxMiAgRmlsZSAiL3Vzci9saWIv
eGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA2NTMsIGluIGxpc3QjMDEyICAgIGZvciByb3cgaW4g
VGFwQ3RsLmxpc3QoKiphcmdzKTojMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIu
cHkiLCBsaW5lIDExOCwgaW4gbG9vcCMwMTIgICAgcmV0dXJuIGYoKl9fdCwgKipfX2QpIzAxMiAg
RmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAzNDgsIGluIGxpc3QjMDEy
ICAgIGlmIGUuc3RhdHVzIGluIHRyYW5zaWVudDojMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3Nt
L2Jsa3RhcDIucHkiLCBsaW5lIDE2MiwgaW4gX19nZXRhdHRyX18jMDEyICAgIHJldHVybiBvYmpl
Y3QuX19nZXRhdHRyaWJ1dGVfXyhzZWxmLCBrZXkpIzAxMkF0dHJpYnV0ZUVycm9yOiAnQ29tbWFu
ZEZhaWx1cmUnIG9iamVjdCBoYXMgbm8gYXR0cmlidXRlICdzdGF0dXMnIzAxMiBdDQo+IERlYyAz
MCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzAzIElORVQgOjo6
ODB8Vk0uaW1wb3J0IEQ6YWEwYTI4ZmViZjA2fGRpc3BhdGNoZXJdIFJhaXNlZCBhdCBmaWxlIFwi
bGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFyYWN0ZXJzIDIyLTI1XG5DYWxsZWQg
ZnJvbSBmaWxlIFwiaW1wb3J0Lm1sXCIsIGxpbmUgMTM4NywgY2hhcmFjdGVycyAyMC0xMDIzXG5D
YWxsZWQgZnJvbSBmaWxlIFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGluZSA3MiwgY2hhcmFjdGVy
cyAxMS0yM1xuDQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVu
dGVzdHw0MzAzIElORVQgOjo6ODB8Vk0uaW1wb3J0IEQ6YWEwYTI4ZmViZjA2fGJhY2t0cmFjZV0g
UmFpc2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjYsIGNoYXJhY3Rl
cnMgMjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJpbXBvcnQubWxcIiwgbGluZSAxMzg3LCBjaGFy
YWN0ZXJzIDIwLTEwMjNcbkNhbGxlZCBmcm9tIGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBs
aW5lIDcyLCBjaGFyYWN0ZXJzIDExLTIzXG4NCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4
YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMDMgSU5FVCA6Ojo4MHxWTS5pbXBvcnQgRDphYTBhMjhm
ZWJmMDZ8eGFwaV0gUmFpc2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUg
MjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJpbXBvcnQubWxcIiwgbGlu
ZSAxMzg3LCBjaGFyYWN0ZXJzIDIwLTEwMjNcbkNhbGxlZCBmcm9tIGZpbGUgXCJzZXJ2ZXJfaGVs
cGVycy5tbFwiLCBsaW5lIDcyLCBjaGFyYWN0ZXJzIDExLTIzXG5SZS1yYWlzZWQgYXQgZmlsZSBc
InNlcnZlcl9oZWxwZXJzLm1sXCIsIGxpbmUgOTAsIGNoYXJhY3RlcnMgMTQtMTVcbkNhbGxlZCBm
cm9tIGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMgMi05
XG4NCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQz
MDMgSU5FVCA6Ojo4MHx8eGFwaV0gUmFpc2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1s
XCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJpbXBvcnQu
bWxcIiwgbGluZSAxMzg3LCBjaGFyYWN0ZXJzIDIwLTEwMjNcbkNhbGxlZCBmcm9tIGZpbGUgXCJz
ZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDcyLCBjaGFyYWN0ZXJzIDExLTIzXG5SZS1yYWlzZWQg
YXQgZmlsZSBcInNlcnZlcl9oZWxwZXJzLm1sXCIsIGxpbmUgOTAsIGNoYXJhY3RlcnMgMTQtMTVc
bkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJh
Y3RlcnMgMi05XG5SZS1yYWlzZWQgYXQgZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGlu
ZSAyNiwgY2hhcmFjdGVycyAyMi0yNVxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9kZWJ1Zy5tbFwi
LCBsaW5lIDU3LCBjaGFyYWN0ZXJzIDE3LTIwXG5SZS1yYWlzZWQgYXQgZmlsZSBcImxpYi9kZWJ1
Zy5tbFwiLCBsaW5lIDYyLCBjaGFyYWN0ZXJzIDEwLTExXG5DYWxsZWQgZnJvbSBmaWxlIFwibGli
L3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuDQo+IERlYyAzMCAw
Njo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2Vycm9yfGc2eGVudGVzdHw0MzAzIElORVQgOjo6ODB8
fHhhcGldIFVuaGFuZGxlZCBBcGlfZXJyb3JzLlNlcnZlcl9lcnJvcihTUl9CQUNLRU5EX0ZBSUxV
UkUsIFsgbm9uLXplcm8gZXhpdDsgOyBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
IzAxMiAgRmlsZSAiL29wdC94ZW5zb3VyY2Uvc20vTkZTU1IiLCBsaW5lIDI3OCwgaW4gPG1vZHVs
ZT4jMDEyIFNSQ29tbWFuZC5ydW4oTkZTU1IsIERSSVZFUl9JTkZPKSMwMTIgIEZpbGUgIi91c3Iv
bGliL3hhcGkvc20vU1JDb21tYW5kLnB5IiwgbGluZSAzNDQsIGluIHJ1biMwMTIgICAgcmV0ID0g
Y21kLnJ1bihzcikjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxp
bmUgMTEwLCBpbiBydW4jMDEyICAgIHJldHVybiBzZWxmLl9ydW5fbG9ja2VkKHNyKSMwMTIgIEZp
bGUgIi91c3IvbGliL3hhcGkvc20vU1JDb21tYW5kLnB5IiwgbGluZSAxNTksIGluIF9ydW5fbG9j
a2VkIzAxMiAgICBydiA9IHNlbGYuX3J1bihzciwgdGFyZ2V0KSMwMTIgIEZpbGUgIi91c3IvbGli
L3hhcGkvc20vU1JDb21tYW5kLnB5IiwgbGluZSAyNjMsIGluIF9ydW4jMDEyICAgIHdyaXRhYmxl
LCBjYWNoaW5nX3BhcmFtcykjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHki
LCBsaW5lIDE0ODYsIGluIGFjdGl2YXRlIzAxMiAgICBpZiBzZWxmLl9hY3RpdmF0ZV9sb2NrZWQo
c3JfdXVpZCwgdmRpX3V1aWQsIG9wdGlvbnMpOiMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20v
YmxrdGFwMi5weSIsIGxpbmUgODMsIGluIHdyYXBwZXIjMDEyICAgIHJldCA9IG9wKHNlbGYsICph
cmdzKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTUyMiwg
aW4gX2FjdGl2YXRlX2xvY2tlZCMwMTIgICAgZGV2X3BhdGggPSBzZWxmLl9hY3RpdmF0ZShzcl91
dWlkLCB2ZGlfdXVpZCwgb3B0aW9ucykjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3Rh
cDIucHkiLCBsaW5lIDE1NjAsIGluIF9hY3RpdmF0ZSMwMTIgc2VsZi5fZ2V0X3Bvb2xfY29uZmln
KHNyX3V1aWQpLmdldCgibWVtLXBvb2wtc2l6ZSIpKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkv
c20vYmxrdGFwMi5weSIsIGxpbmUgMTI0MywgaW4gX3RhcF9hY3RpdmF0ZSMwMTIgdGFwZGlzayA9
IFRhcGRpc2suZmluZF9ieV9wYXRoKHBoeV9wYXRoKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkv
c20vYmxrdGFwMi5weSIsIGxpbmUgNjkwLCBpbiBmaW5kX2J5X3BhdGgjMDEyIHJldHVybiBjbHMu
ZmluZChwYXRoPXBhdGgpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5Iiwg
bGluZSA2NzgsIGluIGZpbmQjMDEyICAgIGZvdW5kID0gbGlzdChjbHMubGlzdCgqKmFyZ3MpKSMw
MTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgNjUzLCBpbiBsaXN0
IzAxMiAgICBmb3Igcm93IGluIFRhcEN0bC5saXN0KCoqYXJncyk6IzAxMiAgRmlsZSAiL3Vzci9s
aWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxMTgsIGluIGxvb3AjMDEyICAgIHJldHVybiBm
KCpfX3QsICoqX19kKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxp
bmUgMzQ4LCBpbiBsaXN0IzAxMiAgICBpZiBlLnN0YXR1cyBpbiB0cmFuc2llbnQ6IzAxMiAgRmls
ZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNjIsIGluIF9fZ2V0YXR0cl9f
IzAxMiAgICByZXR1cm4gb2JqZWN0Ll9fZ2V0YXR0cmlidXRlX18oc2VsZiwga2V5KSMwMTJBdHRy
aWJ1dGVFcnJvcjogJ0NvbW1hbmRGYWlsdXJlJyBvYmplY3QgaGFzIG5vIGF0dHJpYnV0ZSAnc3Rh
dHVzJyMwMTIgXSkNCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4
ZW50ZXN0fDQzMDMgSU5FVCA6Ojo4MHx8YmFja3RyYWNlXSBSYWlzZWQgYXQgZmlsZSBcImxpYi9w
ZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyNiwgY2hhcmFjdGVycyAyMi0yNVxuQ2FsbGVkIGZyb20g
ZmlsZSBcImltcG9ydC5tbFwiLCBsaW5lIDEzODcsIGNoYXJhY3RlcnMgMjAtMTAyM1xuQ2FsbGVk
IGZyb20gZmlsZSBcInNlcnZlcl9oZWxwZXJzLm1sXCIsIGxpbmUgNzIsIGNoYXJhY3RlcnMgMTEt
MjNcblJlLXJhaXNlZCBhdCBmaWxlIFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGluZSA5MCwgY2hh
cmFjdGVycyAxNC0xNVxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwg
bGluZSAyMiwgY2hhcmFjdGVycyAyLTlcblJlLXJhaXNlZCBhdCBmaWxlIFwibGliL3BlcnZhc2l2
ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFyYWN0ZXJzIDIyLTI1XG5DYWxsZWQgZnJvbSBmaWxlIFwi
bGliL2RlYnVnLm1sXCIsIGxpbmUgNTcsIGNoYXJhY3RlcnMgMTctMjBcblJlLXJhaXNlZCBhdCBm
aWxlIFwibGliL2RlYnVnLm1sXCIsIGxpbmUgNjIsIGNoYXJhY3RlcnMgMTAtMTFcbkNhbGxlZCBm
cm9tIGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMgMi05
XG5SZS1yYWlzZWQgYXQgZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyNiwgY2hh
cmFjdGVycyAyMi0yNVxuQ2FsbGVkIGZyb20gZmlsZSBcInhhcGlfaHR0cC5tbFwiLCBsaW5lIDI5
NSwgY2hhcmFjdGVycyA0LTI3XG4NCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCBTTUdDOiBb
NTM0M10gU1IgNzg3YiAoJ2xvY2FsIG5mcycpICgxIFZESXMgaW4gMSBWSEQgdHJlZXMpOg0KPiBE
ZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNNR0M6IFs1MzQzXSAqY2FlMzBlOWIoOC4wMDBHLzE5
LjAwMEspDQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgU01HQzogWzUzNDNdDQo+IERlYyAz
MCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzAwIFVOSVggL3Zh
ci9saWIveGNwL3hhcGl8fGNsaV0gY2xpZW50LXNpZGUgcmVwb3J0cyBmYWlsdXJlDQo+IERlYyAz
MCAwNjo1MTozOSBnNnhlbnRlc3QgU006IFs1MzQzXSBsb2NrOiByZWxlYXNlZCAvdmFyL2xvY2sv
c20vNzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2L3NyDQo+IERlYyAzMCAwNjo1
MTozOSBnNnhlbnRlc3QgU006IFs1MzQzXSBsb2NrOiB0cmllZCBsb2NrIC92YXIvbG9jay9zbS83
ODdiMDg3NC04ZThiLWU3ZDgtOGJhOS03NGY1NWZmMmVhMTYvcnVubmluZywgYWNxdWlyZWQ6IFRy
dWUgKGV4aXN0czogVHJ1ZSkNCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCBTTTogWzUzNDNd
IGxvY2s6IHRyaWVkIGxvY2sgL3Zhci9sb2NrL3NtLzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0
ZjU1ZmYyZWExNi9zciwgYWNxdWlyZWQ6IFRydWUgKGV4aXN0czogVHJ1ZSkNCj4gRGVjIDMwIDA2
OjUxOjM5IGc2eGVudGVzdCBTTTogWzUzNDNdIFsnL3Vzci9iaW4vdmhkLXV0aWwnLCAnc2Nhbics
ICctZicsICctYycsICctbScsICcvdmFyL3J1bi9zci1tb3VudC83ODdiMDg3NC04ZThiLWU3ZDgt
OGJhOS03NGY1NWZmMmVhMTYvKi52aGQnXQ0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNN
OiBbNTM0M10gICBwcmVhZCBTVUNDRVNTDQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgU01H
QzogWzUzNDNdIFNSIDc4N2IgKCdsb2NhbCBuZnMnKSAoMSBWRElzIGluIDEgVkhEIHRyZWVzKTog
bm8gY2hhbmdlcw0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNNOiBbNTM0M10gbG9jazog
cmVsZWFzZWQgL3Zhci9sb2NrL3NtLzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWEx
Ni9zcg0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNNR0M6IFs1MzQzXSBGb3VuZCAxIFZE
SXMgZm9yIGRlbGV0aW9uOg0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNNR0M6IFs1MzQz
XSAgICpjYWUzMGU5Yig4LjAwMEcvMTkuMDAwSykNCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVz
dCBTTUdDOiBbNTM0M10gRGVsZXRpbmcgdW5saW5rZWQgVkRJICpjYWUzMGU5Yig4LjAwMEcvMTku
MDAwSykNCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCBTTTogWzUzNDNdIGxvY2s6IHRyaWVk
IGxvY2sgL3Zhci9sb2NrL3NtLzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWExNi9z
ciwgYWNxdWlyZWQ6IFRydWUgKGV4aXN0czogVHJ1ZSkNCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVu
dGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQ0MjEgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxW
REkuZ2V0X2J5X3V1aWQgRDplNTQwMmM3ODMzNmN8YmFja3RyYWNlXSBSYWlzZWQgYXQgZmlsZSBc
ImRiX2NhY2hlX2ltcGwubWxcIiwgbGluZSAxOTgsIGNoYXJhY3RlcnMgMTYtNTVcbkNhbGxlZCBm
cm9tIGZpbGUgXCJkYl9hY3Rpb25zLm1sXCIsIGxpbmUgMTMzMzAsIGNoYXJhY3RlcnMgMjctNjFc
bkNhbGxlZCBmcm9tIGZpbGUgXCJyYmFjLm1sXCIsIGxpbmUgMjI3LCBjaGFyYWN0ZXJzIDE2LTIz
XG5SZS1yYWlzZWQgYXQgZmlsZSBcInJiYWMubWxcIiwgbGluZSAyMzYsIGNoYXJhY3RlcnMgMTAt
MTVcbkNhbGxlZCBmcm9tIGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDcyLCBjaGFy
YWN0ZXJzIDExLTIzXG4NCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8
ZzZ4ZW50ZXN0fDQ0MjEgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWREkuZ2V0X2J5X3V1aWQgRDpl
NTQwMmM3ODMzNmN8ZGlzcGF0Y2hlcl0gU2VydmVyX2hlbHBlcnMuZXhlYyBleGNlcHRpb25faGFu
ZGxlcjogR290IGV4Y2VwdGlvbiBVVUlEX0lOVkFMSUQ6IFsgVkRJOyBjYWUzMGU5Yi1lYmQ0LTQ0
NTAtOGNlMC05ZjQwMzVjYTYyZjEgXQ0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6
IFtkZWJ1Z3xnNnhlbnRlc3R8NDQyMSBVTklYIC92YXIvbGliL3hjcC94YXBpfFZESS5nZXRfYnlf
dXVpZCBEOmU1NDAyYzc4MzM2Y3xkaXNwYXRjaGVyXSBSYWlzZWQgYXQgZmlsZSBcImRiX2NhY2hl
X2ltcGwubWxcIiwgbGluZSAxOTgsIGNoYXJhY3RlcnMgMTYtNTVcbkNhbGxlZCBmcm9tIGZpbGUg
XCJkYl9hY3Rpb25zLm1sXCIsIGxpbmUgMTMzMzAsIGNoYXJhY3RlcnMgMjctNjFcbkNhbGxlZCBm
cm9tIGZpbGUgXCJyYmFjLm1sXCIsIGxpbmUgMjI3LCBjaGFyYWN0ZXJzIDE2LTIzXG5SZS1yYWlz
ZWQgYXQgZmlsZSBcInJiYWMubWxcIiwgbGluZSAyMzYsIGNoYXJhY3RlcnMgMTAtMTVcbkNhbGxl
ZCBmcm9tIGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDcyLCBjaGFyYWN0ZXJzIDEx
LTIzXG4NCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0
fDQ0MjEgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWREkuZ2V0X2J5X3V1aWQgRDplNTQwMmM3ODMz
NmN8YmFja3RyYWNlXSBSYWlzZWQgYXQgZmlsZSBcImRiX2NhY2hlX2ltcGwubWxcIiwgbGluZSAx
OTgsIGNoYXJhY3RlcnMgMTYtNTVcbkNhbGxlZCBmcm9tIGZpbGUgXCJkYl9hY3Rpb25zLm1sXCIs
IGxpbmUgMTMzMzAsIGNoYXJhY3RlcnMgMjctNjFcbkNhbGxlZCBmcm9tIGZpbGUgXCJyYmFjLm1s
XCIsIGxpbmUgMjI3LCBjaGFyYWN0ZXJzIDE2LTIzXG5SZS1yYWlzZWQgYXQgZmlsZSBcInJiYWMu
bWxcIiwgbGluZSAyMzYsIGNoYXJhY3RlcnMgMTAtMTVcbkNhbGxlZCBmcm9tIGZpbGUgXCJzZXJ2
ZXJfaGVscGVycy5tbFwiLCBsaW5lIDcyLCBjaGFyYWN0ZXJzIDExLTIzXG4NCj4gRGVjIDMwIDA2
OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQ0MjEgVU5JWCAvdmFyL2xp
Yi94Y3AveGFwaXxWREkuZ2V0X2J5X3V1aWQgRDplNTQwMmM3ODMzNmN8eGFwaV0gUmFpc2VkIGF0
IGZpbGUgXCJkYl9jYWNoZV9pbXBsLm1sXCIsIGxpbmUgMTk4LCBjaGFyYWN0ZXJzIDE2LTU1XG5D
YWxsZWQgZnJvbSBmaWxlIFwiZGJfYWN0aW9ucy5tbFwiLCBsaW5lIDEzMzMwLCBjaGFyYWN0ZXJz
IDI3LTYxXG5DYWxsZWQgZnJvbSBmaWxlIFwicmJhYy5tbFwiLCBsaW5lIDIyNywgY2hhcmFjdGVy
cyAxNi0yM1xuUmUtcmFpc2VkIGF0IGZpbGUgXCJyYmFjLm1sXCIsIGxpbmUgMjM2LCBjaGFyYWN0
ZXJzIDEwLTE1XG5DYWxsZWQgZnJvbSBmaWxlIFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGluZSA3
MiwgY2hhcmFjdGVycyAxMS0yM1xuUmUtcmFpc2VkIGF0IGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5t
bFwiLCBsaW5lIDkwLCBjaGFyYWN0ZXJzIDE0LTE1XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3Bl
cnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuDQo+IERlYyAzMCAwNjo1
MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0NDIxIFVOSVggL3Zhci9saWIv
eGNwL3hhcGl8ZGlzcGF0Y2g6VkRJLmdldF9ieV91dWlkIEQ6NWE1YjE5Yzg1OTZmfHhhcGldIFJh
aXNlZCBhdCBmaWxlIFwiZGJfY2FjaGVfaW1wbC5tbFwiLCBsaW5lIDE5OCwgY2hhcmFjdGVycyAx
Ni01NVxuQ2FsbGVkIGZyb20gZmlsZSBcImRiX2FjdGlvbnMubWxcIiwgbGluZSAxMzMzMCwgY2hh
cmFjdGVycyAyNy02MVxuQ2FsbGVkIGZyb20gZmlsZSBcInJiYWMubWxcIiwgbGluZSAyMjcsIGNo
YXJhY3RlcnMgMTYtMjNcblJlLXJhaXNlZCBhdCBmaWxlIFwicmJhYy5tbFwiLCBsaW5lIDIzNiwg
Y2hhcmFjdGVycyAxMC0xNVxuQ2FsbGVkIGZyb20gZmlsZSBcInNlcnZlcl9oZWxwZXJzLm1sXCIs
IGxpbmUgNzIsIGNoYXJhY3RlcnMgMTEtMjNcblJlLXJhaXNlZCBhdCBmaWxlIFwic2VydmVyX2hl
bHBlcnMubWxcIiwgbGluZSA5MCwgY2hhcmFjdGVycyAxNC0xNVxuQ2FsbGVkIGZyb20gZmlsZSBc
ImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFjdGVycyAyLTlcblJlLXJhaXNl
ZCBhdCBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFyYWN0ZXJzIDIy
LTI1XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL2RlYnVnLm1sXCIsIGxpbmUgNTcsIGNoYXJhY3Rl
cnMgMTctMjBcblJlLXJhaXNlZCBhdCBmaWxlIFwibGliL2RlYnVnLm1sXCIsIGxpbmUgNjIsIGNo
YXJhY3RlcnMgMTAtMTFcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIs
IGxpbmUgMjIsIGNoYXJhY3RlcnMgMi05XG4NCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4
YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQ0MjEgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxkaXNwYXRj
aDpWREkuZ2V0X2J5X3V1aWQgRDo1YTViMTljODU5NmZ8YmFja3RyYWNlXSBSYWlzZWQgYXQgZmls
ZSBcImRiX2NhY2hlX2ltcGwubWxcIiwgbGluZSAxOTgsIGNoYXJhY3RlcnMgMTYtNTVcbkNhbGxl
ZCBmcm9tIGZpbGUgXCJkYl9hY3Rpb25zLm1sXCIsIGxpbmUgMTMzMzAsIGNoYXJhY3RlcnMgMjct
NjFcbkNhbGxlZCBmcm9tIGZpbGUgXCJyYmFjLm1sXCIsIGxpbmUgMjI3LCBjaGFyYWN0ZXJzIDE2
LTIzXG5SZS1yYWlzZWQgYXQgZmlsZSBcInJiYWMubWxcIiwgbGluZSAyMzYsIGNoYXJhY3RlcnMg
MTAtMTVcbkNhbGxlZCBmcm9tIGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDcyLCBj
aGFyYWN0ZXJzIDExLTIzXG5SZS1yYWlzZWQgYXQgZmlsZSBcInNlcnZlcl9oZWxwZXJzLm1sXCIs
IGxpbmUgOTAsIGNoYXJhY3RlcnMgMTQtMTVcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvcGVydmFz
aXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMgMi05XG5SZS1yYWlzZWQgYXQgZmlsZSBc
ImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyNiwgY2hhcmFjdGVycyAyMi0yNVxuQ2FsbGVk
IGZyb20gZmlsZSBcImxpYi9kZWJ1Zy5tbFwiLCBsaW5lIDU3LCBjaGFyYWN0ZXJzIDE3LTIwXG5S
ZS1yYWlzZWQgYXQgZmlsZSBcImxpYi9kZWJ1Zy5tbFwiLCBsaW5lIDYyLCBjaGFyYWN0ZXJzIDEw
LTExXG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBj
aGFyYWN0ZXJzIDItOVxuUmUtcmFpc2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIs
IGxpbmUgMjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJzZXJ2ZXJfaGVs
cGVycy5tbFwiLCBsaW5lIDEzNiwgY2hhcmFjdGVycyAxMC0xMDZcbkNhbGxlZCBmcm9tIGZpbGUg
XCJzZXJ2ZXIubWxcIiwgbGluZSAyMjQwMiwgY2hhcmFjdGVycyAyMy0xNTBcbkNhbGxlZCBmcm9t
IGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDExNSwgY2hhcmFjdGVycyA0LTdcbg0K
PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNNOiBbNTM0M10gbG9jazogcmVsZWFzZWQgL3Zh
ci9sb2NrL3NtLzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWExNi9zcg0KPiBEZWMg
MzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNNOiBbNTM0M10gbG9jazogdW5saW5raW5nIGxvY2sgZmls
ZSAvdmFyL2xvY2svc20vY2FlMzBlOWItZWJkNC00NDUwLThjZTAtOWY0MDM1Y2E2MmYxL3ZkaQ0K
PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNNOiBbNTM0M10gbG9jazogcmVtb3ZpbmcgbG9j
ayBkaXIgL3Zhci9sb2NrL3NtL2NhZTMwZTliLWViZDQtNDQ1MC04Y2UwLTlmNDAzNWNhNjJmMQ0K
PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNNR0M6IFs1MzQzXSBTdGFydGluZyBhc3luY2gg
c3JVcGRhdGUgZm9yIFNSIDc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWExNg0KPiBE
ZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFsgaW5mb3xnNnhlbnRlc3R8NDQyNHxBc3lu
Yy5TUi51cGRhdGUgUjo4YmYyOWIwMjlhYjl8ZGlzcGF0Y2hlcl0gc3Bhd25pbmcgYSBuZXcgdGhy
ZWFkIHRvIGhhbmRsZSB0aGUgY3VycmVudCB0YXNrICh0cmFja2lkPTg3NWMzZTYwMWEwNDJkYjI3
MTRmOWZiODNhZjlmY2Q3KQ0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1
Z3xnNnhlbnRlc3R8NDQyNHxBc3luYy5TUi51cGRhdGUgUjo4YmYyOWIwMjlhYjl8YXVkaXRdIFNS
LnVwZGF0ZTogU1IgPSAnNzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2IChsb2Nh
bCBuZnMpJw0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFsgaW5mb3xnNnhlbnRl
c3R8NDQyNHxBc3luYy5TUi51cGRhdGUgUjo4YmYyOWIwMjlhYjl8c3RvcmFnZV9pbXBsXSBTUi5z
dGF0IGRiZzpPcGFxdWVSZWY6OGJmMjliMDItOWFiOS0zZjhlLTdmOTUtNDcxZGMzMjJjZjlmIHNy
Ojc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWExNg0KPiBEZWMgMzAgMDY6NTE6Mzkg
ZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDQyNnx8ZHVtbXl0YXNraGVscGVyXSB0
YXNrIFNSLnN0YXQgRDowNDQ4MzI4MTY1MGEgY3JlYXRlZCBieSB0YXNrIFI6OGJmMjliMDI5YWI5
DQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0NDI2
fFNSLnN0YXQgRDowNDQ4MzI4MTY1MGF8c21dIFNNIG5mcyBzcl91cGRhdGUgc3I9T3BhcXVlUmVm
OjUyMTIzMWQ2LWRmM2ItNzkwYi0xZTIyLWIzNDRhODNkOWQzOQ0KPiBEZWMgMzAgMDY6NTE6Mzkg
ZzZ4ZW50ZXN0IHhhcGk6IFsgaW5mb3xnNnhlbnRlc3R8NDQyNnxzbV9leGVjIEQ6ZGU2OTgxNTYw
M2FmfHhhcGldIFNlc3Npb24uY3JlYXRlIHRyYWNraWQ9YzE4Mzk2MTVkN2ZjNzFlMDEwN2QxOGMx
YzQzOTdiZGYgcG9vbD1mYWxzZSB1bmFtZT0gb3JpZ2luYXRvcj0gaXNfbG9jYWxfc3VwZXJ1c2Vy
PXRydWUgYXV0aF91c2VyX3NpZD0gcGFyZW50PXRyYWNraWQ9OTgzNGY1YWY0MWM5NjRlMjI1ZjI0
Mjc5YWVmZTRlNDkNCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4
ZW50ZXN0fDQ0MjZ8c21fZXhlYyBEOmRlNjk4MTU2MDNhZnxtc2NnZW5dIHhhcGk9PnhhcGkgW2xh
YmVsPSJzZXNzaW9uLmdldF91dWlkIl07DQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFw
aTogW2RlYnVnfGc2eGVudGVzdHw0NDI3IFVOSVggL3Zhci9saWIveGNwL3hhcGl8fGR1bW15dGFz
a2hlbHBlcl0gdGFzayBkaXNwYXRjaDpzZXNzaW9uLmdldF91dWlkIEQ6OTNkNDg1NjhkYThjIGNy
ZWF0ZWQgYnkgdGFzayBEOmRlNjk4MTU2MDNhZg0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0
IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDQyNnxzbV9leGVjIEQ6ZGU2OTgxNTYwM2FmfG1zY2dl
bl0gc21hcGl2Mj0+c21hcGl2MSBbbGFiZWw9InNyX3VwZGF0ZSJdOw0KPiBEZWMgMzAgMDY6NTE6
MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDQyOCBVTklYIC92YXIvbGliL3hj
cC94YXBpfHxkdW1teXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6aG9zdC5nZXRfb3RoZXJfY29u
ZmlnIEQ6YmNjY2I3NWNjYTZjIGNyZWF0ZWQgYnkgdGFzayBEOjA0NDgzMjgxNjUwYQ0KPiBEZWMg
MzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDQyOSBVTklYIC92
YXIvbGliL3hjcC94YXBpfHxkdW1teXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6U1IuZ2V0X3Nt
X2NvbmZpZyBEOmYwNDkzZWVmYzczMCBjcmVhdGVkIGJ5IHRhc2sgRDowNDQ4MzI4MTY1MGENCj4g
RGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCBTTTogWzUzNzNdIHNyX3VwZGF0ZSB7J3NyX3V1aWQn
OiAnNzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2JywgJ3N1YnRhc2tfb2YnOiAn
RHVtbXlSZWY6fDA0NDgzMjgxLTY1MGEtN2YxYi01ZTAzLTJhOGNhYzIwOWNmNXxTUi5zdGF0Jywg
J2FyZ3MnOiBbXSwgJ2hvc3RfcmVmJzogJ09wYXF1ZVJlZjpiYzAwMWQ1Ny02NWNlLThiMmItNzRi
NC1jZDcxOTc2MjcyYzAnLCAnc2Vzc2lvbl9yZWYnOiAnT3BhcXVlUmVmOjM3NWY1NTQwLTcwYTQt
NDA0MC00YjA4LWZlMDcwZmMyODI4NScsICdkZXZpY2VfY29uZmlnJzogeydTUm1hc3Rlcic6ICd0
cnVlJywgJ3NlcnZlcnBhdGgnOiAnL21udC96Ymlvcm5pay90ZXN0dm9sLycsICdzZXJ2ZXInOiAn
MTI3LjAuMC4xJ30sICdjb21tYW5kJzogJ3NyX3VwZGF0ZScsICdzcl9yZWYnOiAnT3BhcXVlUmVm
OjUyMTIzMWQ2LWRmM2ItNzkwYi0xZTIyLWIzNDRhODNkOWQzOSd9DQo+IERlYyAzMCAwNjo1MToz
OSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0NDMwIFVOSVggL3Zhci9saWIveGNw
L3hhcGl8fGR1bW15dGFza2hlbHBlcl0gdGFzayBkaXNwYXRjaDpTUi5nZXRfdmlydHVhbF9hbGxv
Y2F0aW9uIEQ6ZDAzMWVjOTg0MWQwIGNyZWF0ZWQgYnkgdGFzayBEOjA0NDgzMjgxNjUwYQ0KPiBE
ZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDQzMSBVTklY
IC92YXIvbGliL3hjcC94YXBpfHxkdW1teXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6U1IuZ2V0
X2J5X3V1aWQgRDplMTAxYzZlZjQwZjcgY3JlYXRlZCBieSB0YXNrIEQ6MDQ0ODMyODE2NTBhDQo+
IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0NDMyIFVO
SVggL3Zhci9saWIveGNwL3hhcGl8fGR1bW15dGFza2hlbHBlcl0gdGFzayBkaXNwYXRjaDpTUi5z
ZXRfdmlydHVhbF9hbGxvY2F0aW9uIEQ6NTNjOTZlZDc5ZWEwIGNyZWF0ZWQgYnkgdGFzayBEOjA0
NDgzMjgxNjUwYQ0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFsyMDE0MTIzMFQw
NTo1MTozOS45NjBafGF1ZGl0fGc2eGVudGVzdHw0NDMyIFVOSVggL3Zhci9saWIveGNwL3hhcGl8
U1Iuc2V0X3ZpcnR1YWxfYWxsb2NhdGlvbiBEOmM2M2RiNmRlMTBhOHxhdWRpdF0gKCd0cmFja2lk
PWMxODM5NjE1ZDdmYzcxZTAxMDdkMThjMWM0Mzk3YmRmJyAnTE9DQUxfU1VQRVJVU0VSJyAnX19z
bV9fYmFja2VuZCcgJ0FMTE9XRUQnICdPSycgJ0FQSScgJ1NSLnNldF92aXJ0dWFsX2FsbG9jYXRp
b24nICgoJ3NlbGYnICdsb2NhbCBuZnMnICc3ODdiMDg3NC04ZThiLWU3ZDgtOGJhOS03NGY1NWZm
MmVhMTYnICdPcGFxdWVSZWY6NTIxMjMxZDYtZGYzYi03OTBiLTFlMjItYjM0NGE4M2Q5ZDM5Jykp
KQ0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDQz
MyBVTklYIC92YXIvbGliL3hjcC94YXBpfHxkdW1teXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6
U1Iuc2V0X3BoeXNpY2FsX3NpemUgRDpjYzA1YzY5ZGQ4MTggY3JlYXRlZCBieSB0YXNrIEQ6MDQ0
ODMyODE2NTBhDQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogWzIwMTQxMjMwVDA1
OjUxOjM5Ljk2NFp8YXVkaXR8ZzZ4ZW50ZXN0fDQ0MzMgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxT
Ui5zZXRfcGh5c2ljYWxfc2l6ZSBEOjI1ZTU4ZWYzZWIwNnxhdWRpdF0gKCd0cmFja2lkPWMxODM5
NjE1ZDdmYzcxZTAxMDdkMThjMWM0Mzk3YmRmJyAnTE9DQUxfU1VQRVJVU0VSJyAnX19zbV9fYmFj
a2VuZCcgJ0FMTE9XRUQnICdPSycgJ0FQSScgJ1NSLnNldF9waHlzaWNhbF9zaXplJyAoKCdzZWxm
JyAnbG9jYWwgbmZzJyAnNzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2JyAnT3Bh
cXVlUmVmOjUyMTIzMWQ2LWRmM2ItNzkwYi0xZTIyLWIzNDRhODNkOWQzOScpKSkNCj4gRGVjIDMw
IDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQ0MzQgVU5JWCAvdmFy
L2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0YXNrIGRpc3BhdGNoOlNSLnNldF9waHlz
aWNhbF91dGlsaXNhdGlvbiBEOjA0OWViNDRhMTFkMiBjcmVhdGVkIGJ5IHRhc2sgRDowNDQ4MzI4
MTY1MGENCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbMjAxNDEyMzBUMDU6NTE6
MzkuOTcwWnxhdWRpdHxnNnhlbnRlc3R8NDQzNCBVTklYIC92YXIvbGliL3hjcC94YXBpfFNSLnNl
dF9waHlzaWNhbF91dGlsaXNhdGlvbiBEOmFlMzhiYmQwNmQ2ZHxhdWRpdF0gKCd0cmFja2lkPWMx
ODM5NjE1ZDdmYzcxZTAxMDdkMThjMWM0Mzk3YmRmJyAnTE9DQUxfU1VQRVJVU0VSJyAnX19zbV9f
YmFja2VuZCcgJ0FMTE9XRUQnICdPSycgJ0FQSScgJ1NSLnNldF9waHlzaWNhbF91dGlsaXNhdGlv
bicgKCgnc2VsZicgJ2xvY2FsIG5mcycgJzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYy
ZWExNicgJ09wYXF1ZVJlZjo1MjEyMzFkNi1kZjNiLTc5MGItMWUyMi1iMzQ0YTgzZDlkMzknKSkp
DQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgU006IFs1MzczXSBsb2NrOiBjbG9zZWQgL3Zh
ci9sb2NrL3NtLzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWExNi9zcg0KPiBEZWMg
MzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFsgaW5mb3xnNnhlbnRlc3R8NDQyNnxzbV9leGVj
IEQ6ZGU2OTgxNTYwM2FmfHhhcGldIFNlc3Npb24uZGVzdHJveSB0cmFja2lkPWMxODM5NjE1ZDdm
YzcxZTAxMDdkMThjMWM0Mzk3YmRmDQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTog
WzIwMTQxMjMwVDA1OjUxOjM5Ljk5MVp8YXVkaXR8ZzZ4ZW50ZXN0fDQ0MjR8QXN5bmMuU1IudXBk
YXRlIFI6OGJmMjliMDI5YWI5fGF1ZGl0XSAoJ3RyYWNraWQ9ODc1YzNlNjAxYTA0MmRiMjcxNGY5
ZmI4M2FmOWZjZDcnICdMT0NBTF9TVVBFUlVTRVInICdyb290JyAnQUxMT1dFRCcgJ09LJyAnQVBJ
JyAnU1IudXBkYXRlJyAoKCdzcicgJ2xvY2FsIG5mcycgJzc4N2IwODc0LThlOGItZTdkOC04YmE5
LTc0ZjU1ZmYyZWExNicgJ09wYXF1ZVJlZjo1MjEyMzFkNi1kZjNiLTc5MGItMWUyMi1iMzQ0YTgz
ZDlkMzknKSkpDQo+IERlYyAzMCAwNjo1MTo0MCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVu
dGVzdHw0MzAwIFVOSVggL3Zhci9saWIveGNwL3hhcGl8fHhhcGldIFJhaXNlZCBhdCBmaWxlIFwi
Y2xpX3V0aWwubWxcIiwgbGluZSAxMzQsIGNoYXJhY3RlcnMgMTAtNjdcbkNhbGxlZCBmcm9tIGZp
bGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMgMi05XG4NCj4g
RGVjIDMwIDA2OjUxOjQwIGc2eGVudGVzdCB4YXBpOiBbMjAxNDEyMzBUMDU6NTE6NDAuNjQ0Wnxh
dWRpdHxnNnhlbnRlc3R8NDMwMCBVTklYIC92YXIvbGliL3hjcC94YXBpfHRhc2suZGVzdHJveSBE
OmFmYzIxODU2MmExYnxhdWRpdF0gKCd0cmFja2lkPTA5YTlmNTgyMDU3YWQyNzgxNmU0M2E0ZDNj
MThiZjFiJyAnTE9DQUxfU1VQRVJVU0VSJyAncm9vdCcgJ0FMTE9XRUQnICdPSycgJ0FQSScgJ3Rh
c2suZGVzdHJveScgKCgnc2VsZicgJ1ZNIGltcG9ydCcgJzcwODU5YWQ2LTA0MjAtYmFhOC0xN2Fj
LTc1OWNiMDFhY2RlMycgJ09wYXF1ZVJlZjpkYmRiMGVlNS1hZTE2LTBmM2QtMGMwZS1kY2FmMjNh
NTJhODgnKSkpDQo+IERlYyAzMCAwNjo1MTo0MCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVu
dGVzdHw0MzAwIFVOSVggL3Zhci9saWIveGNwL3hhcGl8fHhhcGldIFJhaXNlZCBhdCBmaWxlIFwi
bGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFyYWN0ZXJzIDIyLTI1XG5DYWxsZWQg
ZnJvbSBmaWxlIFwiY2xpX29wZXJhdGlvbnMubWxcIiwgbGluZSAzMjgzLCBjaGFyYWN0ZXJzIDE4
LTExMVxuQ2FsbGVkIGZyb20gZmlsZSBcInhhcGlfY2xpLm1sXCIsIGxpbmUgMTE5LCBjaGFyYWN0
ZXJzIDE4LTU4XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5l
IDIyLCBjaGFyYWN0ZXJzIDItOVxuDQo+IERlYyAzMCAwNjo1MTo0MCBnNnhlbnRlc3QgeGFwaTog
WyBpbmZvfGc2eGVudGVzdHw0MzAwIFVOSVggL3Zhci9saWIveGNwL3hhcGl8c2Vzc2lvbi5sb2dv
dXQgRDphNzQwMjdmMDM3YmR8eGFwaV0gU2Vzc2lvbi5kZXN0cm95IHRyYWNraWQ9MDlhOWY1ODIw
NTdhZDI3ODE2ZTQzYTRkM2MxOGJmMWINCj4gRGVjIDMwIDA2OjUxOjQwIGc2eGVudGVzdCB4YXBp
OiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMDAgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8YmFja3RyYWNl
XSBSYWlzZWQgYXQgZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyNiwgY2hhcmFj
dGVycyAyMi0yNVxuQ2FsbGVkIGZyb20gZmlsZSBcInhhcGlfY2xpLm1sXCIsIGxpbmUgMTE4LCBj
aGFyYWN0ZXJzIDItMTM5XG5DYWxsZWQgZnJvbSBmaWxlIFwieGFwaV9jbGkubWxcIiwgbGluZSAy
MjEsIGNoYXJhY3RlcnMgNy00NFxuQ2FsbGVkIGZyb20gZmlsZSBcInhhcGlfY2xpLm1sXCIsIGxp
bmUgMjczLCBjaGFyYWN0ZXJzIDQtMjNcbg0KPiBEZWMgMzAgMDY6NTE6NDAgZzZ4ZW50ZXN0IHhh
cGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMCBVTklYIC92YXIvbGliL3hjcC94YXBpfHxjbGldIFhh
cGlfY2xpLmV4Y2VwdGlvbl9oYW5kbGVyOiBHb3QgZXhjZXB0aW9uIFNSX0JBQ0tFTkRfRkFJTFVS
RTogWyBub24temVybyBleGl0OyA7IFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToj
MDEyICBGaWxlICIvb3B0L3hlbnNvdXJjZS9zbS9ORlNTUiIsIGxpbmUgMjc4LCBpbiA8bW9kdWxl
PiMwMTIgICAgU1JDb21tYW5kLnJ1bihORlNTUiwgRFJJVkVSX0lORk8pIzAxMiAgRmlsZSAiL3Vz
ci9saWIveGFwaS9zbS9TUkNvbW1hbmQucHkiLCBsaW5lIDM0NCwgaW4gcnVuIzAxMiAgICByZXQg
PSBjbWQucnVuKHNyKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vU1JDb21tYW5kLnB5Iiwg
bGluZSAxMTAsIGluIHJ1biMwMTIgICAgcmV0dXJuIHNlbGYuX3J1bl9sb2NrZWQoc3IpIzAxMiAg
RmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1hbmQucHkiLCBsaW5lIDE1OSwgaW4gX3J1bl9s
b2NrZWQjMDEyICAgIHJ2ID0gc2VsZi5fcnVuKHNyLCB0YXJnZXQpIzAxMiAgRmlsZSAiL3Vzci9s
aWIveGFwaS9zbS9TUkNvbW1hbmQucHkiLCBsaW5lIDI2MywgaW4gX3J1biMwMTIgICAgd3JpdGFi
bGUsIGNhY2hpbmdfcGFyYW1zKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5w
eSIsIGxpbmUgMTQ4NiwgaW4gYWN0aXZhdGUjMDEyICAgIGlmIHNlbGYuX2FjdGl2YXRlX2xvY2tl
ZChzcl91dWlkLCB2ZGlfdXVpZCwgb3B0aW9ucyk6IzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9z
bS9ibGt0YXAyLnB5IiwgbGluZSA4MywgaW4gd3JhcHBlciMwMTIgICAgcmV0ID0gb3Aoc2VsZiwg
KmFyZ3MpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNTIy
LCBpbiBfYWN0aXZhdGVfbG9ja2VkIzAxMiAgICBkZXZfcGF0aCA9IHNlbGYuX2FjdGl2YXRlKHNy
X3V1aWQsIHZkaV91dWlkLCBvcHRpb25zKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxr
dGFwMi5weSIsIGxpbmUgMTU2MCwgaW4gX2FjdGl2YXRlIzAxMiBzZWxmLl9nZXRfcG9vbF9jb25m
aWcoc3JfdXVpZCkuZ2V0KCJtZW0tcG9vbC1zaXplIikpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFw
aS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxMjQzLCBpbiBfdGFwX2FjdGl2YXRlIzAxMiB0YXBkaXNr
ID0gVGFwZGlzay5maW5kX2J5X3BhdGgocGh5X3BhdGgpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFw
aS9zbS9ibGt0YXAyLnB5IiwgbGluZSA2OTAsIGluIGZpbmRfYnlfcGF0aCMwMTIgcmV0dXJuIGNs
cy5maW5kKHBhdGg9cGF0aCkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHki
LCBsaW5lIDY3OCwgaW4gZmluZCMwMTIgICAgZm91bmQgPSBsaXN0KGNscy5saXN0KCoqYXJncykp
IzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA2NTMsIGluIGxp
c3QjMDEyICAgIGZvciByb3cgaW4gVGFwQ3RsLmxpc3QoKiphcmdzKTojMDEyICBGaWxlICIvdXNy
L2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDExOCwgaW4gbG9vcCMwMTIgICAgcmV0dXJu
IGYoKl9fdCwgKipfX2QpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5Iiwg
bGluZSAzNDgsIGluIGxpc3QjMDEyICAgIGlmIGUuc3RhdHVzIGluIHRyYW5zaWVudDojMDEyICBG
aWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDE2MiwgaW4gX19nZXRhdHRy
X18jMDEyICAgIHJldHVybiBvYmplY3QuX19nZXRhdHRyaWJ1dGVfXyhzZWxmLCBrZXkpIzAxMkF0
dHJpYnV0ZUVycm9yOiAnQ29tbWFuZEZhaWx1cmUnIG9iamVjdCBoYXMgbm8gYXR0cmlidXRlICdz
dGF0dXMnIzAxMiBdDQo+IERlYyAzMCAwNjo1MTo0MCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2
eGVudGVzdHw0MzAwIFVOSVggL3Zhci9saWIveGNwL3hhcGl8fGNsaV0gUmFpc2VkIGF0IGZpbGUg
XCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxl
ZCBmcm9tIGZpbGUgXCJ4YXBpX2NsaS5tbFwiLCBsaW5lIDExOCwgY2hhcmFjdGVycyAyLTEzOVxu
Q2FsbGVkIGZyb20gZmlsZSBcInhhcGlfY2xpLm1sXCIsIGxpbmUgMjIxLCBjaGFyYWN0ZXJzIDct
NDRcbkNhbGxlZCBmcm9tIGZpbGUgXCJ4YXBpX2NsaS5tbFwiLCBsaW5lIDI3MywgY2hhcmFjdGVy
cyA0LTIzXG4NCj4gRGVjIDMwIDA2OjUxOjQwIGc2eGVudGVzdCBTTUdDOiBbNTM0M10gU1IudXBk
YXRlX2FzeW5jaCBzdGF0dXMgY2hhbmdlZCB0byBbc3VjY2Vzc10NCj4gRGVjIDMwIDA2OjUxOjQw
IGc2eGVudGVzdCBTTTogWzUzNDNdIGxvY2s6IHJlbGVhc2VkIC92YXIvbG9jay9zbS83ODdiMDg3
NC04ZThiLWU3ZDgtOGJhOS03NGY1NWZmMmVhMTYvcnVubmluZw0KPiBEZWMgMzAgMDY6NTE6NDAg
ZzZ4ZW50ZXN0IFNNOiBbNTM0M10gbG9jazogdHJpZWQgbG9jayAvdmFyL2xvY2svc20vNzg3YjA4
NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2L3NyLCBhY3F1aXJlZDogVHJ1ZSAoZXhpc3Rz
OiBUcnVlKQ0KPiBEZWMgMzAgMDY6NTE6NDAgZzZ4ZW50ZXN0IFNNOiBbNTM0M10gWycvdXNyL2Jp
bi92aGQtdXRpbCcsICdzY2FuJywgJy1mJywgJy1jJywgJy1tJywgJy92YXIvcnVuL3NyLW1vdW50
Lzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWExNi8qLnZoZCddDQo+IERlYyAzMCAw
Njo1MTo0MCBnNnhlbnRlc3QgU006IFs1MzQzXSAgIHByZWFkIFNVQ0NFU1MNCj4gRGVjIDMwIDA2
OjUxOjQwIGc2eGVudGVzdCBTTUdDOiBbNTM0M10gU1IgNzg3YiAoJ2xvY2FsIG5mcycpICgwIFZE
SXMgaW4gMCBWSEQgdHJlZXMpOiBzaG93aW5nIG9ubHkgVkhEIHRyZWVzIHRoYXQgY2hhbmdlZDoN
Cj4gRGVjIDMwIDA2OjUxOjQwIGc2eGVudGVzdCBTTUdDOiBbNTM0M10gVHJlZSBjYWUzMGU5Yi1l
YmQ0LTQ0NTAtOGNlMC05ZjQwMzVjYTYyZjEgZ29uZQ0KPiBEZWMgMzAgMDY6NTE6NDAgZzZ4ZW50
ZXN0IFNNR0M6IFs1MzQzXQ0KPiBEZWMgMzAgMDY6NTE6NDAgZzZ4ZW50ZXN0IFNNOiBbNTM0M10g
bG9jazogcmVsZWFzZWQgL3Zhci9sb2NrL3NtLzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1
ZmYyZWExNi9zcg0KPiBEZWMgMzAgMDY6NTE6NDAgZzZ4ZW50ZXN0IFNNR0M6IFs1MzQzXSBObyB3
b3JrLCBleGl0aW5nDQo+IERlYyAzMCAwNjo1MTo0MCBnNnhlbnRlc3QgU01HQzogWzUzNDNdIElu
IGNsZWFudXANCj4gRGVjIDMwIDA2OjUxOjQwIGc2eGVudGVzdCBTTUdDOiBbNTM0M10gU1IgNzg3
YiAoJ2xvY2FsIG5mcycpICgwIFZESXMgaW4gMCBWSEQgdHJlZXMpOiBubyBjaGFuZ2VzDQo+IERl
YyAzMCAwNjo1MTo0MCBnNnhlbnRlc3QgeGFwaTogWyBpbmZvfGc2eGVudGVzdHw0NDM3IFVOSVgg
L3Zhci9saWIveGNwL3hhcGl8c2Vzc2lvbi5sb2dvdXQgRDo2MjA5MzY3MjkwMWN8eGFwaV0gU2Vz
c2lvbi5kZXN0cm95IHRyYWNraWQ9ODc1YzNlNjAxYTA0MmRiMjcxNGY5ZmI4M2FmOWZjZDcNCj4g
RGVjIDMwIDA2OjUxOjQwIGc2eGVudGVzdCB4Y3AtcnJkZDogW2RlYnVnfGc2eGVudGVzdHwxMzI2
IHVuaXhfcnBjfHxodHRwXSBSZXF1ZXN0IHsgZnJhbWUgPSBmYWxzZTsgbWV0aG9kID0gUE9TVDsg
dXJpID0gL3Zhci9saWIveGNwL3hjcC1ycmRkOyBxdWVyeSA9IFsgIF07IGNvbnRlbnRfbGVuZ3Ro
ID0gWyAzMzAgXTsgdHJhbnNmZXIgZW5jb2RpbmcgPSA7IHZlcnNpb24gPSAxLjE7IGNvb2tpZSA9
IFsgPSBdOyB0YXNrID0gOyBzdWJ0YXNrX29mID0gOyBjb250ZW50LXR5cGUgPSA7IGhvc3QgPSA7
IHVzZXJfYWdlbnQgPSAvdXNyL3NiaW4veGFwaSB9DQo+IERlYyAzMCAwNjo1MTo0MSBnNnhlbnRl
c3QgeGNwLXJyZGQ6IFtkZWJ1Z3xnNnhlbnRlc3R8MCBtb25pdG9yfG1haW58cnJkZF9zdGF0c10g
c3lzdGVtIHN0YXRzOiBNZW1Ub3RhbDogODE0MTU3MiBLaUI7IE1lbUZyZWU6IDY4MTE0NzIgS2lC
OyBCdWZmZXJlZDogNzc2MjQgS2lCOyBDYWNoZWQ6IDc2MjA0MCBLaUI7IFN3YXBUb3RhbDogMCBL
aUI7IFN3YXBGcmVlOiAwIEtpQg0KPiBEZWMgMzAgMDY6NTE6NDEgZzZ4ZW50ZXN0IHhjcC1ycmRk
OiBbZGVidWd8ZzZ4ZW50ZXN0fDAgbW9uaXRvcnxtYWlufHJyZGRfc3RhdHNdIENsb2NrIGRyaWZ0
OiAwDQo+IERlYyAzMCAwNjo1MTo0MSBnNnhlbnRlc3QgeGNwLXJyZGQ6IFtkZWJ1Z3xnNnhlbnRl
c3R8MCBtb25pdG9yfG1haW58cnJkZF9zdGF0c10geGNwLXJyZGQgc3RhdHMgKG4gPSAxKTogc2l6
ZTogMzQwNzc2IEtpQjsgcnNzOiA4MTEyIEtpQjsgZGF0YTogMzE2MjkyIEtpQjsgc3RhY2s6IDEz
NiBLaUINCj4gRGVjIDMwIDA2OjUxOjQxIGc2eGVudGVzdCB4Y3AtcnJkZDogW2RlYnVnfGc2eGVu
dGVzdHwwIG1vbml0b3J8bWFpbnxycmRkX3N0YXRzXSB4YXBpIHN0YXRzIChuID0gMik6IHNpemU6
IDMzMjIxNjQgS2lCOyByc3M6IDQ2OTQ0IEtpQjsgZGF0YTogMzIyNjM5MiBLaUI7IHN0YWNrOiAy
NzIgS2lCDQo+IERlYyAzMCAwNjo1MTo0MSBnNnhlbnRlc3QgZm9ya2V4ZWNkOiBbZXJyb3J8ZzZ4
ZW50ZXN0fDB8fGZvcmtleGVjZF0gNTM5NCAoL2Jpbi9waWRvZiB4ZW5vcHNkKSBleGl0dGVkIHdp
dGggY29kZSAxDQo+IERlYyAzMCAwNjo1MTo0MSBnNnhlbnRlc3QgeGNwLXJyZGQ6IFtkZWJ1Z3xn
NnhlbnRlc3R8MCBtb25pdG9yfG1haW58cnJkZF9zdGF0c10geGVub3BzZCBzdGF0cyAobiA9IDAp
OiBzaXplOiAwIEtpQjsgcnNzOiAwIEtpQjsgZGF0YTogMCBLaUI7IHN0YWNrOiAwIEtpQg0KPiAN
Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gWGVu
LWFwaSBtYWlsaW5nIGxpc3QNCj4gWGVuLWFwaUBsaXN0cy54ZW4ub3JnDQo+IGh0dHA6Ly9saXN0
cy54ZW4ub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby94ZW4tYXBpDQoNCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1hcGkgbWFpbGluZyBsaXN0
Clhlbi1hcGlAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy9jZ2ktYmluL21haWxt
YW4vbGlzdGluZm8veGVuLWFwaQo=

From xen-api-bounces@lists.xen.org Tue Dec 30 15:30:42 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2014 15:30:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Y5ykk-0001KT-5X; Tue, 30 Dec 2014 15:30:34 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Dave.Scott@citrix.com>) id 1Y5yki-0001KO-F6
	for xen-api@lists.xen.org; Tue, 30 Dec 2014 15:30:32 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	E0/A8-15461-715C2A45; Tue, 30 Dec 2014 15:30:31 +0000
X-Env-Sender: Dave.Scott@citrix.com
X-Msg-Ref: server-4.tower-21.messagelabs.com!1419953426!18466238!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
	Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 14193 invoked from network); 30 Dec 2014 15:30:27 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-4.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Dec 2014 15:30:27 -0000
X-IronPort-AV: E=Sophos;i="5.07,666,1413244800"; d="scan'208";a="28281624"
From: Dave Scott <Dave.Scott@citrix.com>
To: David <dkadds2@gmail.com>
Thread-Topic: [Xen-API] NFS exported from ZFS on Ubuntu 14.04
Thread-Index: AQHQJD9sNFTn2HT1iEqxhckPLUk7k5yoMcSA
Date: Tue, 30 Dec 2014 15:30:24 +0000
Message-ID: <101E8D96-8243-48BB-AE07-804E785BC24C@citrix.com>
References: <54A2BA68.2060105@gmail.com>
In-Reply-To: <54A2BA68.2060105@gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Content-ID: <2A4A77EAD075694A9CEBBAA6C55EAFA6@citrix.com>
MIME-Version: 1.0
X-DLP: AMS1
Cc: Xen API mailing list <xen-api@lists.xen.org>
Subject: Re: [Xen-API] NFS exported from ZFS on Ubuntu 14.04
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

SGksDQoNCj4gT24gMzAgRGVjIDIwMTQsIGF0IDE0OjQ0LCBEYXZpZCA8ZGthZGRzMkBnbWFpbC5j
b20+IHdyb3RlOg0KPiANCj4gSGkgR3V5cywNCj4gDQo+IEknbSBsb29raW5nIGZvciB5b3VyIGhl
bHAgYXMgSSdtIGZhY2luZyBpc3N1ZSB3aXRoIFhlbiBhbmQgTkZTIFN0b3JhZ2UgUmVwb3NpdG9y
eS4NCj4gVGhlIHByb2JsZW0gSSdtIGZhY2luZyBpcyB0aGF0IHZtLWltcG9ydCBmYWlscyBkdWUg
dG8gYmxrdGFwMiBpc3N1ZSAoc2VlbXMgbGlrZSkuDQo+IExhc3QgY2FsbCBpcyBhYm91dCB2ZGlf
YWN0aXZhdGUgZmFpbHVyZSAoZnVsbCBkdW1wIGJlbG93KToNCj4gDQo+IGdlbmVyaWMgZXhjZXB0
aW9uOiB2ZGlfYWN0aXZhdGU6IEVYQ0VQVElPTiA8dHlwZSAnZXhjZXB0aW9ucy5BdHRyaWJ1dGVF
cnJvcic+LCAnQ29tbWFuZEZhaWx1cmUnIG9iamVjdCBoYXMgbm8gYXR0cmlidXRlICdzdGF0dXMn
DQo+IA0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICBGaWxlICIvdXNy
L2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDE1NjAsIGluIF9hY3RpdmF0ZQ0KPiBEZWMg
MzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gc2VsZi5fZ2V0X3Bvb2xfY29uZmlnKHNy
X3V1aWQpLmdldCgibWVtLXBvb2wtc2l6ZSIpKQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0
IFNNOiBbNTI2Nl0gICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDEy
NDMsIGluIF90YXBfYWN0aXZhdGUNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUy
NjZdICAgICB0YXBkaXNrID0gVGFwZGlzay5maW5kX2J5X3BhdGgocGh5X3BhdGgpDQo+IA0KPiAN
Cj4gT24gYmFja2VuZCBzaWRlIE5GUyBpcyBleHBvcnRlZCBmcm9tIFpGUyAobG9jYWxob3N0KSBl
bmNyeXB0ZWQgd2l0aCBkZWR1cCBvbiBpZiBpdCB3b3VsZCBtYXR0ZXIuDQo+IFhlbnNlcnZlciBp
cyBjb21waWxlZCBmcm9tIHNvdXJjZXMgZnJvbSBidWlsZHJvb3QuDQo+IA0KPiBJJ3ZlIHRyaWVk
IHRvIHVzZSBGaWxlU1IgYnV0IGl0IGZhaWxlZCBtaXNlcmFibHkgdG9vLg0KPiBUbyBnZXQgdG8g
dGhlIHN0YWdlIHdoZXJlIEkgYW0gbm93IEkndmUgaGFkIHRvIGZpeCBzb21lIHN0YXRpYyBwYXRo
cyB3aXRoaW4gU1IgYWRhcHRlcnMuDQoNCkRvIHlvdXIgcGF0aCBtb2RpZmljYXRpb25zIGxvb2sg
c2ltaWxhciB0byBCb2LigJlzPyAoYWxzbyBjYzpkIGluIGNhc2UgaGUgY2FuIHNwb3Qgc29tZXRo
aW5nKQ0KDQpodHRwczovL2dpdGh1Yi5jb20veGVuc2VydmVyL2J1aWxkcm9vdC9wdWxsLzU4MA0K
DQpJ4oCZbSBzdXNwaWNpb3VzIGJlY2F1c2Ugb2Ygb25lIG9mIHRoZSBzZWN0aW9ucyBvZiB0aGUg
c3RhY2sgdHJhY2UgYmVsb3c6DQoNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUy
NjZdICAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA2NTMsIGluIGxp
c3QNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAgICBmb3Igcm93IGlu
IFRhcEN0bC5saXN0KCoqYXJncyk6DQoNCuKAlCB0aGlzIGlzIHdoZXJlIHRoZSBTTSBwbHVnaW4g
cnVucyDigJx0YXAtY3RsIGxpc3TigJ0gYW5kIHBhcnNlcyB0aGUgb3V0cHV0LiBDb3VsZCB0aGUg
cGF0aCB0byB0aGlzIGNvbW1hbmQgYmUgd3Jvbmc/DQoNCg0KPiANCj4gQW55IGhlbHAgYW5kIGhp
bnRzIGlzIG1vcmUgdGhhbiBhcHByZWNpYXRlZC4NCj4gDQo+IGJ0dy4gd2h5IGRvIEkgdXNlIFpG
UyBleHBvcnRlZCB2aWEgTkZTPyBJIG5lZWQgY29tcHJlc3Npb24gYW5kIGRlZHVwbGljYXRpb24u
IEhvc3QgaXRzZWxmIGhhcyBwbGVudHkgb2YgcmVzb3VyY2VzIGFuZCB3aWxsIGJlIHJ1bm5pbmcg
Y291cGxlIG9mIFZNcyB3aXRoIGFsbW9zdCBzYW1lIGNvbmZpZ3VyYXRpb24gYW5kIHdvbid0IGJl
IGhpZ2hseSBsb2FkZWQuIFRoZXJlZm9yZSBJJ20gbm90IGFmdGVyIHBlcmZvcm1hbmNlIGJ1dCBt
b3JlIGNvbmNlcm5lZCBhYm91dCBzdG9yYWdlIHNwYWNlLg0KPiBBbnkgaGludHMgb24gaG93IHRv
IHB1dCBTUiBvbiBaRlMgb24gTGludXggKFVidW50dSBwcmVmZXJyZWQpIHdvdWxkIGJlIGdyZWF0
Lg0KPiBJJ3ZlIHRlc3RlZCBzbyBmYXIgRmlsZVNSLCB0cmllZCB0byBleHBvc2UgWkZTIGJsb2Nr
IGRldmljZSBhbmQgbG9vcGJhY2sgYnV0IGl0IGRpZG4ndCB3b3JrLg0KPiBDcmVhdGluZyBmaWxl
IG9uIFpGUyBtb3VudGVkIHZpYSBsb29wYmFjayB0byBjcmVhdGUgdmcvcHYvbHYgc2VlbXMgbGlr
ZSBhbiBvdmVya2lsbC4NCj4gDQo+IFRoZSBsYXN0IG9wdGlvbiB3aGljaCBJJ3ZlIGZpZ3VyZWQg
b3V0IHdvdWxkIGJlIHRvIGV4cG9zZSBaRlMgdmlhIGlTQ1NJLCBidXQgdGhpcyBzZWVtcyB0byBi
ZSBhbiBvdmVya2lsbCB0b28uDQo+IFRoZSBlYXNpZXN0IGZvciBtZSBhbmQgZnVsbHkgYWNjZXB0
YWJsZSB3b3VsZCBiZSB0byB1c2UgVkhEIChWREkpIGZpbGVzIGRpcmVjdGx5IG9uIFpGUyBidXQg
aXQgZGlkbid0IHdvcmsgbmVpdGhlci4NCg0KSSB0aGluayB1c2luZyAudmhkIGZpbGVzIGRpcmVj
dGx5IG9uIGFuIFpGUyBtb3VudCB2aWEgRmlsZVNSIHdvdWxkIGJlIGlkZWFsLiBPbmNlIHdl4oCZ
dmUgZmlndXJlZCBvdXQgd2hhdOKAmXMgd3Jvbmcgd2l0aCB0aGUgc2hhcmVkIGJsa3RhcDIucHkg
Y29kZSB0aGF0IHNob3VsZCB3b3JrLg0KDQpDaGVlcnMsDQpEYXZlDQo+IA0KPiBUaGFua3MsDQo+
IERhd2lkDQo+IA0KPiANCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdIFsn
L3Vzci9zYmluL3RkLXV0aWwnLCAncXVlcnknLCAndmhkJywgJy12cGYnLCAnL3Zhci9ydW4vc3It
bW91bnQvNzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2L2NhZTMwZTliLWViZDQt
NDQ1MC04Y2UwLTlmNDAzNWNhNjJmMS52aGQnXQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0
IFNNOiBbNTI2Nl0gICBwcmVhZCBTVUNDRVNTDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3Qg
U006IFs1MjY2XSBQaHlMaW5rKC9kZXYvc20vcGh5Lzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0
ZjU1ZmYyZWExNi9jYWUzMGU5Yi1lYmQ0LTQ0NTAtOGNlMC05ZjQwMzVjYTYyZjEpIC0+IC92YXIv
cnVuL3NyLW1vdW50Lzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWExNi9jYWUzMGU5
Yi1lYmQ0LTQ0NTAtOGNlMC05ZjQwMzVjYTYyZjEudmhkDQo+IERlYyAzMCAwNjo1MTozOCBnNnhl
bnRlc3QgeGFwaTogWyBpbmZvfGc2eGVudGVzdHw0MzYzIFVOSVggL3Zhci9saWIveGNwL3hhcGl8
c2Vzc2lvbi5sb2dpbl93aXRoX3Bhc3N3b3JkIEQ6OTY1MjJiMGJiYTRifHhhcGldIFNlc3Npb24u
Y3JlYXRlIHRyYWNraWQ9YjQwZWUwZjcwZGY2NjY5ZDI4ZDY3Y2QwNzcwMDM3MzQgcG9vbD1mYWxz
ZSB1bmFtZT1yb290IG9yaWdpbmF0b3I9IGlzX2xvY2FsX3N1cGVydXNlcj10cnVlIGF1dGhfdXNl
cl9zaWQ9IHBhcmVudD10cmFja2lkPTk4MzRmNWFmNDFjOTY0ZTIyNWYyNDI3OWFlZmU0ZTQ5DQo+
IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzYzIFVO
SVggL3Zhci9saWIveGNwL3hhcGl8c2Vzc2lvbi5sb2dpbl93aXRoX3Bhc3N3b3JkIEQ6OTY1MjJi
MGJiYTRifG1zY2dlbl0geGFwaT0+eGFwaSBbbGFiZWw9InNlc3Npb24uZ2V0X3V1aWQiXTsNCj4g
RGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzNjQgVU5J
WCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0YXNrIGRpc3BhdGNoOnNlc3Np
b24uZ2V0X3V1aWQgRDpjYTgxYTYwYjEzNWUgY3JlYXRlZCBieSB0YXNrIEQ6OTY1MjJiMGJiYTRi
DQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogWyBpbmZvfGc2eGVudGVzdHw0Mzcx
IFVOSVggL3Zhci9saWIveGNwL3hhcGl8c2Vzc2lvbi5sb2dvdXQgRDpkNDVmZTI5Y2M0NzJ8eGFw
aV0gU2Vzc2lvbi5kZXN0cm95IHRyYWNraWQ9YjQwZWUwZjcwZGY2NjY5ZDI4ZDY3Y2QwNzcwMDM3
MzQNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdIEV4Y2VwdGlvbiBpbiBh
Y3RpdmF0ZS9hdHRhY2gNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8
ZzZ4ZW50ZXN0fDQzNzIgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0
YXNrIGRpc3BhdGNoOlZESS5nZXRfYnlfdXVpZCBEOjgxNmJhZTQ0NGY2YyBjcmVhdGVkIGJ5IHRh
c2sgRDo3YjAzMzAxYzE4NGMNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVi
dWd8ZzZ4ZW50ZXN0fDQzNzMgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVy
XSB0YXNrIGRpc3BhdGNoOmhvc3QuZ2V0X2J5X3V1aWQgRDo5YzA1ZGUzYzZmMjQgY3JlYXRlZCBi
eSB0YXNrIEQ6N2IwMzMwMWMxODRjDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTog
W2RlYnVnfGc2eGVudGVzdHw0Mzc0IFVOSVggL3Zhci9saWIveGNwL3hhcGl8fGR1bW15dGFza2hl
bHBlcl0gdGFzayBkaXNwYXRjaDpWREkuZ2V0X3NtX2NvbmZpZyBEOjBhNGYxNTJmZmUyNiBjcmVh
dGVkIGJ5IHRhc2sgRDo3YjAzMzAxYzE4NGMNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4
YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzNzUgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0
YXNraGVscGVyXSB0YXNrIGRpc3BhdGNoOlZESS5yZW1vdmVfZnJvbV9zbV9jb25maWcgRDpjYjY3
N2RmZTk3ZjAgY3JlYXRlZCBieSB0YXNrIEQ6N2IwMzMwMWMxODRjDQo+IERlYyAzMCAwNjo1MToz
OCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0Mzc1IFVOSVggL3Zhci9saWIveGNw
L3hhcGl8ZGlzcGF0Y2g6VkRJLnJlbW92ZV9mcm9tX3NtX2NvbmZpZyBEOmNiNjc3ZGZlOTdmMHxh
cGlfZWZmZWN0XSBWREkucmVtb3ZlX2Zyb21fc21fY29uZmlnDQo+IERlYyAzMCAwNjo1MTozOCBn
NnhlbnRlc3QgeGFwaTogWzIwMTQxMjMwVDA1OjUxOjM4LjM5Nlp8YXVkaXR8ZzZ4ZW50ZXN0fDQz
NzUgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWREkucmVtb3ZlX2Zyb21fc21fY29uZmlnIEQ6NTUw
Yjg3ZTdkODdmfGF1ZGl0XSAoJ3RyYWNraWQ9YmUyZTBkMDA0NDYxNmY5MGM4YjczZjYwODMwOTU0
MWUnICdMT0NBTF9TVVBFUlVTRVInICdfX3NtX19iYWNrZW5kJyAnQUxMT1dFRCcgJ09LJyAnQVBJ
JyAnVkRJLnJlbW92ZV9mcm9tX3NtX2NvbmZpZycgKCgnc2VsZicgJ1hPQSBTeXN0ZW0nICdjYWUz
MGU5Yi1lYmQ0LTQ0NTAtOGNlMC05ZjQwMzVjYTYyZjEnICdPcGFxdWVSZWY6MGIxMzJjYTYtYjhl
Ny1jMTFmLTZmZmYtZGVjMDg0MzJjYWZlJykpKQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0
IFNNOiBbNTI2Nl0gUmVtb3ZlZCBob3N0IGtleSBob3N0X09wYXF1ZVJlZjpiYzAwMWQ1Ny02NWNl
LThiMmItNzRiNC1jZDcxOTc2MjcyYzAgZm9yIGNhZTMwZTliLWViZDQtNDQ1MC04Y2UwLTlmNDAz
NWNhNjJmMQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gKioqKiogQkxL
VEFQMjo8ZnVuY3Rpb24gX2FjdGl2YXRlX2xvY2tlZCBhdCAweDdmNjExYTgwMWVkOD46IEVYQ0VQ
VElPTiA8dHlwZSAnZXhjZXB0aW9ucy5BdHRyaWJ1dGVFcnJvcic+LCAnQ29tbWFuZEZhaWx1cmUn
IG9iamVjdCBoYXMgbm8gYXR0cmlidXRlICdzdGF0dXMnDQo+IERlYyAzMCAwNjo1MTozOCBnNnhl
bnRlc3QgU006IFs1MjY2XSAgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxp
bmUgODMsIGluIHdyYXBwZXINCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZd
ICAgICByZXQgPSBvcChzZWxmLCAqYXJncykNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBT
TTogWzUyNjZdICAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNTIy
LCBpbiBfYWN0aXZhdGVfbG9ja2VkDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1
MjY2XSAgICAgZGV2X3BhdGggPSBzZWxmLl9hY3RpdmF0ZShzcl91dWlkLCB2ZGlfdXVpZCwgb3B0
aW9ucykNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAgRmlsZSAiL3Vz
ci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNTYwLCBpbiBfYWN0aXZhdGUNCj4gRGVj
IDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdIHNlbGYuX2dldF9wb29sX2NvbmZpZyhz
cl91dWlkKS5nZXQoIm1lbS1wb29sLXNpemUiKSkNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVz
dCBTTTogWzUyNjZdICAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAx
MjQzLCBpbiBfdGFwX2FjdGl2YXRlDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1
MjY2XSAgICAgdGFwZGlzayA9IFRhcGRpc2suZmluZF9ieV9wYXRoKHBoeV9wYXRoKQ0KPiBEZWMg
MzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICBGaWxlICIvdXNyL2xpYi94YXBpL3Nt
L2Jsa3RhcDIucHkiLCBsaW5lIDY5MCwgaW4gZmluZF9ieV9wYXRoDQo+IERlYyAzMCAwNjo1MToz
OCBnNnhlbnRlc3QgU006IFs1MjY2XSAgICAgcmV0dXJuIGNscy5maW5kKHBhdGg9cGF0aCkNCj4g
RGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAgRmlsZSAiL3Vzci9saWIveGFw
aS9zbS9ibGt0YXAyLnB5IiwgbGluZSA2NzgsIGluIGZpbmQNCj4gRGVjIDMwIDA2OjUxOjM4IGc2
eGVudGVzdCBTTTogWzUyNjZdICAgICBmb3VuZCA9IGxpc3QoY2xzLmxpc3QoKiphcmdzKSkNCj4g
RGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAgRmlsZSAiL3Vzci9saWIveGFw
aS9zbS9ibGt0YXAyLnB5IiwgbGluZSA2NTMsIGluIGxpc3QNCj4gRGVjIDMwIDA2OjUxOjM4IGc2
eGVudGVzdCBTTTogWzUyNjZdICAgICBmb3Igcm93IGluIFRhcEN0bC5saXN0KCoqYXJncyk6DQo+
IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2XSAgIEZpbGUgIi91c3IvbGliL3hh
cGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTE4LCBpbiBsb29wDQo+IERlYyAzMCAwNjo1MTozOCBn
NnhlbnRlc3QgU006IFs1MjY2XSAgICAgcmV0dXJuIGYoKl9fdCwgKipfX2QpDQo+IERlYyAzMCAw
Njo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2XSAgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxr
dGFwMi5weSIsIGxpbmUgMzQ4LCBpbiBsaXN0DQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3Qg
U006IFs1MjY2XSAgICAgaWYgZS5zdGF0dXMgaW4gdHJhbnNpZW50Og0KPiBEZWMgMzAgMDY6NTE6
MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIu
cHkiLCBsaW5lIDE2MiwgaW4gX19nZXRhdHRyX18NCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVz
dCBTTTogWzUyNjZdICAgICByZXR1cm4gb2JqZWN0Ll9fZ2V0YXR0cmlidXRlX18oc2VsZiwga2V5
KQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0NCj4gRGVjIDMwIDA2OjUx
OjM4IGc2eGVudGVzdCBTTTogWzUyNjZdIGxvY2s6IHJlbGVhc2VkIC92YXIvbG9jay9zbS9jYWUz
MGU5Yi1lYmQ0LTQ0NTAtOGNlMC05ZjQwMzVjYTYyZjEvdmRpDQo+IERlYyAzMCAwNjo1MTozOCBn
NnhlbnRlc3QgU006IFs1MjY2XSAqKioqKiBnZW5lcmljIGV4Y2VwdGlvbjogdmRpX2FjdGl2YXRl
OiBFWENFUFRJT04gPHR5cGUgJ2V4Y2VwdGlvbnMuQXR0cmlidXRlRXJyb3InPiwgJ0NvbW1hbmRG
YWlsdXJlJyBvYmplY3QgaGFzIG5vIGF0dHJpYnV0ZSAnc3RhdHVzJw0KPiBEZWMgMzAgMDY6NTE6
MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFu
ZC5weSIsIGxpbmUgMTEwLCBpbiBydW4NCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTog
WzUyNjZdICAgICByZXR1cm4gc2VsZi5fcnVuX2xvY2tlZChzcikNCj4gRGVjIDMwIDA2OjUxOjM4
IGc2eGVudGVzdCBTTTogWzUyNjZdICAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1hbmQu
cHkiLCBsaW5lIDE1OSwgaW4gX3J1bl9sb2NrZWQNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVz
dCBTTTogWzUyNjZdICAgICBydiA9IHNlbGYuX3J1bihzciwgdGFyZ2V0KQ0KPiBEZWMgMzAgMDY6
NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL1NSQ29t
bWFuZC5weSIsIGxpbmUgMjYzLCBpbiBfcnVuDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3Qg
U006IFs1MjY2XSAgICAgd3JpdGFibGUsIGNhY2hpbmdfcGFyYW1zKQ0KPiBEZWMgMzAgMDY6NTE6
MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIu
cHkiLCBsaW5lIDE0ODYsIGluIGFjdGl2YXRlDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3Qg
U006IFs1MjY2XSAgICAgaWYgc2VsZi5fYWN0aXZhdGVfbG9ja2VkKHNyX3V1aWQsIHZkaV91dWlk
LCBvcHRpb25zKToNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAgRmls
ZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA4MywgaW4gd3JhcHBlcg0KPiBE
ZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICAgIHJldCA9IG9wKHNlbGYsICph
cmdzKQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICBGaWxlICIvdXNy
L2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDE1MjIsIGluIF9hY3RpdmF0ZV9sb2NrZWQN
Cj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAgICBkZXZfcGF0aCA9IHNl
bGYuX2FjdGl2YXRlKHNyX3V1aWQsIHZkaV91dWlkLCBvcHRpb25zKQ0KPiBEZWMgMzAgMDY6NTE6
MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIu
cHkiLCBsaW5lIDE1NjAsIGluIF9hY3RpdmF0ZQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0
IFNNOiBbNTI2Nl0gc2VsZi5fZ2V0X3Bvb2xfY29uZmlnKHNyX3V1aWQpLmdldCgibWVtLXBvb2wt
c2l6ZSIpKQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICBGaWxlICIv
dXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDEyNDMsIGluIF90YXBfYWN0aXZhdGUN
Cj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAgICB0YXBkaXNrID0gVGFw
ZGlzay5maW5kX2J5X3BhdGgocGh5X3BhdGgpDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3Qg
U006IFs1MjY2XSAgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgNjkw
LCBpbiBmaW5kX2J5X3BhdGgNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZd
ICAgICByZXR1cm4gY2xzLmZpbmQocGF0aD1wYXRoKQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50
ZXN0IFNNOiBbNTI2Nl0gICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5l
IDY3OCwgaW4gZmluZA0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICAg
IGZvdW5kID0gbGlzdChjbHMubGlzdCgqKmFyZ3MpKQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50
ZXN0IFNNOiBbNTI2Nl0gICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5l
IDY1MywgaW4gbGlzdA0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICAg
IGZvciByb3cgaW4gVGFwQ3RsLmxpc3QoKiphcmdzKToNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVu
dGVzdCBTTTogWzUyNjZdICAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGlu
ZSAxMTgsIGluIGxvb3ANCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAg
ICByZXR1cm4gZigqX190LCAqKl9fZCkNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTog
WzUyNjZdICAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAzNDgsIGlu
IGxpc3QNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAgICBpZiBlLnN0
YXR1cyBpbiB0cmFuc2llbnQ6DQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2
XSAgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTYyLCBpbiBfX2dl
dGF0dHJfXw0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICAgIHJldHVy
biBvYmplY3QuX19nZXRhdHRyaWJ1dGVfXyhzZWxmLCBrZXkpDQo+IERlYyAzMCAwNjo1MTozOCBn
NnhlbnRlc3QgU006IFs1MjY2XQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2
Nl0gbG9jazogY2xvc2VkIC92YXIvbG9jay9zbS9jYWUzMGU5Yi1lYmQ0LTQ0NTAtOGNlMC05ZjQw
MzVjYTYyZjEvdmRpDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2XSBsb2Nr
OiBjbG9zZWQgL3Zhci9sb2NrL3NtLzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWEx
Ni9zcg0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IGZvcmtleGVjZDogW2Vycm9yfGc2eGVu
dGVzdHwwfHxmb3JrZXhlY2RdIDUyNjYgKC9vcHQveGVuc291cmNlL3NtL05GU1NSIDxtZXRob2RD
YWxsPjxtZXRob2ROYW1lPnZkaV9hY3RpdmF0ZTwvbWV0aG9kTmFtZT48cGFyLi4uKSBleGl0dGVk
IHdpdGggY29kZSAxDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2
eGVudGVzdHw0MzQwfHNtX2V4ZWMgRDo3NGE1OTJhZWRkYjN8eGFwaV0gUmFpc2VkIGF0IGZpbGUg
XCJsaWIvZm9ya2hlbHBlcnMubWxcIiwgbGluZSAxODEsIGNoYXJhY3RlcnMgMzEtNzVcbkNhbGxl
ZCBmcm9tIGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMg
Mi05XG4NCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0
fDQzNDB8c21fZXhlYyBEOjc0YTU5MmFlZGRiM3x4YXBpXSBSYWlzZWQgYXQgZmlsZSBcInNtX2V4
ZWMubWxcIiwgbGluZSAxOTMsIGNoYXJhY3RlcnMgMTAtMTAwXG5DYWxsZWQgZnJvbSBmaWxlIFwi
bGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuDQo+IERlYyAz
MCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzQwfHNtX2V4ZWMg
RDo3NGE1OTJhZWRkYjN8eGFwaV0gUmFpc2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1s
XCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJzbV9leGVj
Lm1sXCIsIGxpbmUgMTc1LCBjaGFyYWN0ZXJzIDIzLTEwMjNcbkNhbGxlZCBmcm9tIGZpbGUgXCJs
aWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMgMi05XG4NCj4gRGVjIDMw
IDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbIGluZm98ZzZ4ZW50ZXN0fDQzNDB8c21fZXhlYyBE
Ojc0YTU5MmFlZGRiM3x4YXBpXSBTZXNzaW9uLmRlc3Ryb3kgdHJhY2tpZD1iZTJlMGQwMDQ0NjE2
ZjkwYzhiNzNmNjA4MzA5NTQxZQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtk
ZWJ1Z3xnNnhlbnRlc3R8NDM0MHxzbV9leGVjIEQ6NzRhNTkyYWVkZGIzfGJhY2t0cmFjZV0gUmFp
c2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMg
MjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDcyLCBj
aGFyYWN0ZXJzIDExLTIzXG4NCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVi
dWd8ZzZ4ZW50ZXN0fDQzNDB8c21fZXhlYyBEOjc0YTU5MmFlZGRiM3xkaXNwYXRjaGVyXSBTZXJ2
ZXJfaGVscGVycy5leGVjIGV4Y2VwdGlvbl9oYW5kbGVyOiBHb3QgZXhjZXB0aW9uIFNSX0JBQ0tF
TkRfRkFJTFVSRTogWyBub24temVybyBleGl0OyA7IFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KTojMDEyICBGaWxlICIvb3B0L3hlbnNvdXJjZS9zbS9ORlNTUiIsIGxpbmUgMjc4LCBp
biA8bW9kdWxlPiMwMTIgICAgU1JDb21tYW5kLnJ1bihORlNTUiwgRFJJVkVSX0lORk8pIzAxMiAg
RmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1hbmQucHkiLCBsaW5lIDM0NCwgaW4gcnVuIzAx
MiAgICByZXQgPSBjbWQucnVuKHNyKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vU1JDb21t
YW5kLnB5IiwgbGluZSAxMTAsIGluIHJ1biMwMTIgICAgcmV0dXJuIHNlbGYuX3J1bl9sb2NrZWQo
c3IpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1hbmQucHkiLCBsaW5lIDE1OSwg
aW4gX3J1bl9sb2NrZWQjMDEyICAgIHJ2ID0gc2VsZi5fcnVuKHNyLCB0YXJnZXQpIzAxMiAgRmls
ZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1hbmQucHkiLCBsaW5lIDI2MywgaW4gX3J1biMwMTIg
ICAgd3JpdGFibGUsIGNhY2hpbmdfcGFyYW1zKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20v
YmxrdGFwMi5weSIsIGxpbmUgMTQ4NiwgaW4gYWN0aXZhdGUjMDEyICAgIGlmIHNlbGYuX2FjdGl2
YXRlX2xvY2tlZChzcl91dWlkLCB2ZGlfdXVpZCwgb3B0aW9ucyk6IzAxMiAgRmlsZSAiL3Vzci9s
aWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA4MywgaW4gd3JhcHBlciMwMTIgICAgcmV0ID0g
b3Aoc2VsZiwgKmFyZ3MpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5Iiwg
bGluZSAxNTIyLCBpbiBfYWN0aXZhdGVfbG9ja2VkIzAxMiAgICBkZXZfcGF0aCA9IHNlbGYuX2Fj
dGl2YXRlKHNyX3V1aWQsIHZkaV91dWlkLCBvcHRpb25zKSMwMTIgIEZpbGUgIi91c3IvbGliL3hh
cGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTU2MCwgaW4gX2FjdGl2YXRlIzAxMiBzZWxmLl9nZXRf
cG9vbF9jb25maWcoc3JfdXVpZCkuZ2V0KCJtZW0tcG9vbC1zaXplIikpIzAxMiAgRmlsZSAiL3Vz
ci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxMjQzLCBpbiBfdGFwX2FjdGl2YXRlIzAx
MiB0YXBkaXNrID0gVGFwZGlzay5maW5kX2J5X3BhdGgocGh5X3BhdGgpIzAxMiAgRmlsZSAiL3Vz
ci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA2OTAsIGluIGZpbmRfYnlfcGF0aCMwMTIg
cmV0dXJuIGNscy5maW5kKHBhdGg9cGF0aCkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Js
a3RhcDIucHkiLCBsaW5lIDY3OCwgaW4gZmluZCMwMTIgICAgZm91bmQgPSBsaXN0KGNscy5saXN0
KCoqYXJncykpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA2
NTMsIGluIGxpc3QjMDEyICAgIGZvciByb3cgaW4gVGFwQ3RsLmxpc3QoKiphcmdzKTojMDEyICBG
aWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDExOCwgaW4gbG9vcCMwMTIg
ICAgcmV0dXJuIGYoKl9fdCwgKipfX2QpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0
YXAyLnB5IiwgbGluZSAzNDgsIGluIGxpc3QjMDEyICAgIGlmIGUuc3RhdHVzIGluIHRyYW5zaWVu
dDojMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDE2MiwgaW4g
X19nZXRhdHRyX18jMDEyICAgIHJldHVybiBvYmplY3QuX19nZXRhdHRyaWJ1dGVfXyhzZWxmLCBr
ZXkpIzAxMkF0dHJpYnV0ZUVycm9yOiAnQ29tbWFuZEZhaWx1cmUnIG9iamVjdCBoYXMgbm8gYXR0
cmlidXRlICdzdGF0dXMnIzAxMiBdDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTog
W2RlYnVnfGc2eGVudGVzdHw0MzQwfHNtX2V4ZWMgRDo3NGE1OTJhZWRkYjN8ZGlzcGF0Y2hlcl0g
UmFpc2VkIGF0IGZpbGUgXCJoYXNodGJsLm1sXCIsIGxpbmUgMTM2LCBjaGFyYWN0ZXJzIDE5LTI4
XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL2RlYnVnLm1sXCIsIGxpbmUgMTcyLCBjaGFyYWN0ZXJz
IDM3LTY0XG4NCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50
ZXN0fDQzNDB8c21fZXhlYyBEOjc0YTU5MmFlZGRiM3xiYWNrdHJhY2VdIFJhaXNlZCBhdCBmaWxl
IFwiaGFzaHRibC5tbFwiLCBsaW5lIDEzNiwgY2hhcmFjdGVycyAxOS0yOFxuQ2FsbGVkIGZyb20g
ZmlsZSBcImxpYi9kZWJ1Zy5tbFwiLCBsaW5lIDE3MiwgY2hhcmFjdGVycyAzNy02NFxuDQo+IERl
YyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzQwfHNtX2V4
ZWMgRDo3NGE1OTJhZWRkYjN8eGFwaV0gUmFpc2VkIGF0IGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5t
bFwiLCBsaW5lIDkwLCBjaGFyYWN0ZXJzIDE0LTE1XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3Bl
cnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuDQo+IERlYyAzMCAwNjo1
MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzQwfFZESS5hY3RpdmF0ZSBE
OjdiMDMzMDFjMTg0Y3x4YXBpXSBSYWlzZWQgYXQgZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxc
IiwgbGluZSAyNiwgY2hhcmFjdGVycyAyMi0yNVxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9kZWJ1
Zy5tbFwiLCBsaW5lIDU3LCBjaGFyYWN0ZXJzIDE3LTIwXG5SZS1yYWlzZWQgYXQgZmlsZSBcImxp
Yi9kZWJ1Zy5tbFwiLCBsaW5lIDYyLCBjaGFyYWN0ZXJzIDEwLTExXG5DYWxsZWQgZnJvbSBmaWxl
IFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuDQo+IERl
YyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzQwfFZESS5h
Y3RpdmF0ZSBEOjdiMDMzMDFjMTg0Y3xiYWNrdHJhY2VdIFJhaXNlZCBhdCBmaWxlIFwibGliL3Bl
cnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFyYWN0ZXJzIDIyLTI1XG5DYWxsZWQgZnJvbSBm
aWxlIFwic20ubWxcIiwgbGluZSAxNzEsIGNoYXJhY3RlcnMgMjEtNzJcbkNhbGxlZCBmcm9tIGZp
bGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDcyLCBjaGFyYWN0ZXJzIDExLTIzXG4NCj4g
RGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzNDB8VkRJ
LmFjdGl2YXRlIEQ6N2IwMzMwMWMxODRjfGRpc3BhdGNoZXJdIFNlcnZlcl9oZWxwZXJzLmV4ZWMg
ZXhjZXB0aW9uX2hhbmRsZXI6IEdvdCBleGNlcHRpb24gU1JfQkFDS0VORF9GQUlMVVJFOiBbIG5v
bi16ZXJvIGV4aXQ7IDsgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOiMwMTIgIEZp
bGUgIi9vcHQveGVuc291cmNlL3NtL05GU1NSIiwgbGluZSAyNzgsIGluIDxtb2R1bGU+IzAxMiAg
ICBTUkNvbW1hbmQucnVuKE5GU1NSLCBEUklWRVJfSU5GTykjMDEyICBGaWxlICIvdXNyL2xpYi94
YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMzQ0LCBpbiBydW4jMDEyICAgIHJldCA9IGNtZC5y
dW4oc3IpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1hbmQucHkiLCBsaW5lIDEx
MCwgaW4gcnVuIzAxMiAgICByZXR1cm4gc2VsZi5fcnVuX2xvY2tlZChzcikjMDEyICBGaWxlICIv
dXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMTU5LCBpbiBfcnVuX2xvY2tlZCMw
MTIgICAgcnYgPSBzZWxmLl9ydW4oc3IsIHRhcmdldCkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBp
L3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMjYzLCBpbiBfcnVuIzAxMiAgICB3cml0YWJsZSwgY2Fj
aGluZ19wYXJhbXMpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGlu
ZSAxNDg2LCBpbiBhY3RpdmF0ZSMwMTIgICAgaWYgc2VsZi5fYWN0aXZhdGVfbG9ja2VkKHNyX3V1
aWQsIHZkaV91dWlkLCBvcHRpb25zKTojMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3Rh
cDIucHkiLCBsaW5lIDgzLCBpbiB3cmFwcGVyIzAxMiAgICByZXQgPSBvcChzZWxmLCAqYXJncykj
MDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDE1MjIsIGluIF9h
Y3RpdmF0ZV9sb2NrZWQjMDEyICAgIGRldl9wYXRoID0gc2VsZi5fYWN0aXZhdGUoc3JfdXVpZCwg
dmRpX3V1aWQsIG9wdGlvbnMpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5
IiwgbGluZSAxNTYwLCBpbiBfYWN0aXZhdGUjMDEyIHNlbGYuX2dldF9wb29sX2NvbmZpZyhzcl91
dWlkKS5nZXQoIm1lbS1wb29sLXNpemUiKSkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Js
a3RhcDIucHkiLCBsaW5lIDEyNDMsIGluIF90YXBfYWN0aXZhdGUjMDEyIHRhcGRpc2sgPSBUYXBk
aXNrLmZpbmRfYnlfcGF0aChwaHlfcGF0aCkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Js
a3RhcDIucHkiLCBsaW5lIDY5MCwgaW4gZmluZF9ieV9wYXRoIzAxMiByZXR1cm4gY2xzLmZpbmQo
cGF0aD1wYXRoKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUg
Njc4LCBpbiBmaW5kIzAxMiAgICBmb3VuZCA9IGxpc3QoY2xzLmxpc3QoKiphcmdzKSkjMDEyICBG
aWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDY1MywgaW4gbGlzdCMwMTIg
ICAgZm9yIHJvdyBpbiBUYXBDdGwubGlzdCgqKmFyZ3MpOiMwMTIgIEZpbGUgIi91c3IvbGliL3hh
cGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTE4LCBpbiBsb29wIzAxMiAgICByZXR1cm4gZigqX190
LCAqKl9fZCkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDM0
OCwgaW4gbGlzdCMwMTIgICAgaWYgZS5zdGF0dXMgaW4gdHJhbnNpZW50OiMwMTIgIEZpbGUgIi91
c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTYyLCBpbiBfX2dldGF0dHJfXyMwMTIg
ICAgcmV0dXJuIG9iamVjdC5fX2dldGF0dHJpYnV0ZV9fKHNlbGYsIGtleSkjMDEyQXR0cmlidXRl
RXJyb3I6ICdDb21tYW5kRmFpbHVyZScgb2JqZWN0IGhhcyBubyBhdHRyaWJ1dGUgJ3N0YXR1cycj
MDEyIF0NCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0
fDQzNDB8VkRJLmFjdGl2YXRlIEQ6N2IwMzMwMWMxODRjfGRpc3BhdGNoZXJdIFJhaXNlZCBhdCBm
aWxlIFwiaGFzaHRibC5tbFwiLCBsaW5lIDEzNiwgY2hhcmFjdGVycyAxOS0yOFxuQ2FsbGVkIGZy
b20gZmlsZSBcImxpYi9kZWJ1Zy5tbFwiLCBsaW5lIDE3MiwgY2hhcmFjdGVycyAzNy02NFxuDQo+
IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzQwfFZE
SS5hY3RpdmF0ZSBEOjdiMDMzMDFjMTg0Y3xiYWNrdHJhY2VdIFJhaXNlZCBhdCBmaWxlIFwiaGFz
aHRibC5tbFwiLCBsaW5lIDEzNiwgY2hhcmFjdGVycyAxOS0yOFxuQ2FsbGVkIGZyb20gZmlsZSBc
ImxpYi9kZWJ1Zy5tbFwiLCBsaW5lIDE3MiwgY2hhcmFjdGVycyAzNy02NFxuDQo+IERlYyAzMCAw
Njo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzQwfFZESS5hY3RpdmF0
ZSBEOjdiMDMzMDFjMTg0Y3x4YXBpXSBSYWlzZWQgYXQgZmlsZSBcInNlcnZlcl9oZWxwZXJzLm1s
XCIsIGxpbmUgOTAsIGNoYXJhY3RlcnMgMTQtMTVcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvcGVy
dmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMgMi05XG4NCj4gRGVjIDMwIDA2OjUx
OjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzNDB8fHhhcGldIFJhaXNlZCBh
dCBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFyYWN0ZXJzIDIyLTI1
XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL2RlYnVnLm1sXCIsIGxpbmUgNTcsIGNoYXJhY3RlcnMg
MTctMjBcblJlLXJhaXNlZCBhdCBmaWxlIFwibGliL2RlYnVnLm1sXCIsIGxpbmUgNjIsIGNoYXJh
Y3RlcnMgMTAtMTFcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxp
bmUgMjIsIGNoYXJhY3RlcnMgMi05XG4NCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBp
OiBbZXJyb3J8ZzZ4ZW50ZXN0fDQzMjUgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWQkQucGx1ZyBS
OjZhOWZiYTNhMTE2NnxzdG9yYWdlX2ltcGxdIFN0b3JhZ2VfaW1wbDogZHA6dmJkLzAveHZkYSBz
cjo3ODdiMDg3NC04ZThiLWU3ZDgtOGJhOS03NGY1NWZmMmVhMTYgdmRpOmNhZTMwZTliLWViZDQt
NDQ1MC04Y2UwLTlmNDAzNWNhNjJmMSBvcDphY3RpdmF0ZSBlcnJvcjpTdG9yYWdlX2ludGVyZmFj
ZS5CYWNrZW5kX2Vycm9yKF8pIGJhY2t0cmFjZTpDYWxsZWQgZnJvbSBmaWxlICJzdG9yYWdlX2lt
cGwubWwiLCBsaW5lIDI5OSwgY2hhcmFjdGVycyA3LTUwDQo+IERlYyAzMCAwNjo1MTozOCBnNnhl
bnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzI1IFVOSVggL3Zhci9saWIveGNwL3hhcGl8
VkJELnBsdWcgUjo2YTlmYmEzYTExNjZ8eGFwaV0gQ2FsbGVkIGZyb20gZmlsZSBcInN0b3JhZ2Vf
aW1wbC5tbFwiLCBsaW5lIDI5OSwgY2hhcmFjdGVycyA3LTUwXG5SZS1yYWlzZWQgYXQgZmlsZSBc
InN0b3JhZ2VfaW1wbC5tbFwiLCBsaW5lIDMxOSwgY2hhcmFjdGVycyAxMS0xMlxuQ2FsbGVkIGZy
b20gZmlsZSBcImxpc3QubWxcIiwgbGluZSA4NCwgY2hhcmFjdGVycyAyNC0zNFxuQ2FsbGVkIGZy
b20gZmlsZSBcInN0b3JhZ2VfaW1wbC5tbFwiLCBsaW5lIDM0MSwgY2hhcmFjdGVycyA2LTU1XG5S
ZS1yYWlzZWQgYXQgZmlsZSBcInN0b3JhZ2VfaW1wbC5tbFwiLCBsaW5lIDM0NSwgY2hhcmFjdGVy
cyAxMi0xM1xuQ2FsbGVkIGZyb20gZmlsZSBcInN0b3JhZ2VfaW1wbC5tbFwiLCBsaW5lIDQ0NSwg
Y2hhcmFjdGVycyAxNC03N1xuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxc
IiwgbGluZSAyMiwgY2hhcmFjdGVycyAyLTlcbg0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0
IHhhcGk6IFtlcnJvcnxnNnhlbnRlc3R8NDMyNSBVTklYIC92YXIvbGliL3hjcC94YXBpfFZCRC5w
bHVnIFI6NmE5ZmJhM2ExMTY2fHN0b3JhZ2VfYWNjZXNzXSBSZS1yYWlzaW5nIGFzIFNSX0JBQ0tF
TkRfRkFJTFVSRSBbIG5vbi16ZXJvIGV4aXQ7IDsgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOiMwMTIgIEZpbGUgIi9vcHQveGVuc291cmNlL3NtL05GU1NSIiwgbGluZSAyNzgsIGlu
IDxtb2R1bGU+IzAxMiAgICBTUkNvbW1hbmQucnVuKE5GU1NSLCBEUklWRVJfSU5GTykjMDEyICBG
aWxlICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMzQ0LCBpbiBydW4jMDEy
ICAgIHJldCA9IGNtZC5ydW4oc3IpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1h
bmQucHkiLCBsaW5lIDExMCwgaW4gcnVuIzAxMiAgICByZXR1cm4gc2VsZi5fcnVuX2xvY2tlZChz
cikjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMTU5LCBp
biBfcnVuX2xvY2tlZCMwMTIgICAgcnYgPSBzZWxmLl9ydW4oc3IsIHRhcmdldCkjMDEyICBGaWxl
ICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMjYzLCBpbiBfcnVuIzAxMiAg
ICB3cml0YWJsZSwgY2FjaGluZ19wYXJhbXMpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9i
bGt0YXAyLnB5IiwgbGluZSAxNDg2LCBpbiBhY3RpdmF0ZSMwMTIgICAgaWYgc2VsZi5fYWN0aXZh
dGVfbG9ja2VkKHNyX3V1aWQsIHZkaV91dWlkLCBvcHRpb25zKTojMDEyICBGaWxlICIvdXNyL2xp
Yi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDgzLCBpbiB3cmFwcGVyIzAxMiAgICByZXQgPSBv
cChzZWxmLCAqYXJncykjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBs
aW5lIDE1MjIsIGluIF9hY3RpdmF0ZV9sb2NrZWQjMDEyICAgIGRldl9wYXRoID0gc2VsZi5fYWN0
aXZhdGUoc3JfdXVpZCwgdmRpX3V1aWQsIG9wdGlvbnMpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFw
aS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNTYwLCBpbiBfYWN0aXZhdGUjMDEyIHNlbGYuX2dldF9w
b29sX2NvbmZpZyhzcl91dWlkKS5nZXQoIm1lbS1wb29sLXNpemUiKSkjMDEyICBGaWxlICIvdXNy
L2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDEyNDMsIGluIF90YXBfYWN0aXZhdGUjMDEy
IHRhcGRpc2sgPSBUYXBkaXNrLmZpbmRfYnlfcGF0aChwaHlfcGF0aCkjMDEyICBGaWxlICIvdXNy
L2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDY5MCwgaW4gZmluZF9ieV9wYXRoIzAxMiBy
ZXR1cm4gY2xzLmZpbmQocGF0aD1wYXRoKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxr
dGFwMi5weSIsIGxpbmUgNjc4LCBpbiBmaW5kIzAxMiAgICBmb3VuZCA9IGxpc3QoY2xzLmxpc3Qo
KiphcmdzKSkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDY1
MywgaW4gbGlzdCMwMTIgICAgZm9yIHJvdyBpbiBUYXBDdGwubGlzdCgqKmFyZ3MpOiMwMTIgIEZp
bGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTE4LCBpbiBsb29wIzAxMiAg
ICByZXR1cm4gZigqX190LCAqKl9fZCkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3Rh
cDIucHkiLCBsaW5lIDM0OCwgaW4gbGlzdCMwMTIgICAgaWYgZS5zdGF0dXMgaW4gdHJhbnNpZW50
OiMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTYyLCBpbiBf
X2dldGF0dHJfXyMwMTIgICAgcmV0dXJuIG9iamVjdC5fX2dldGF0dHJpYnV0ZV9fKHNlbGYsIGtl
eSkjMDEyQXR0cmlidXRlRXJyb3I6ICdDb21tYW5kRmFpbHVyZScgb2JqZWN0IGhhcyBubyBhdHRy
aWJ1dGUgJ3N0YXR1cycjMDEyIF0NCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBb
ZGVidWd8ZzZ4ZW50ZXN0fDQzMjUgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWQkQucGx1ZyBSOjZh
OWZiYTNhMTE2Nnx4YXBpXSBSYWlzZWQgYXQgZmlsZSBcInN0b3JhZ2VfYWNjZXNzLm1sXCIsIGxp
bmUgOTcxLCBjaGFyYWN0ZXJzIDktNDhcbkNhbGxlZCBmcm9tIGZpbGUgXCJzdG9yYWdlX2FjY2Vz
cy5tbFwiLCBsaW5lIDk2NywgY2hhcmFjdGVycyAyLTZcblJlLXJhaXNlZCBhdCBmaWxlIFwic3Rv
cmFnZV9hY2Nlc3MubWxcIiwgbGluZSA5NzIsIGNoYXJhY3RlcnMgNTYtNTdcbkNhbGxlZCBmcm9t
IGZpbGUgXCJtZXNzYWdlX2ZvcndhcmRpbmcubWxcIiwgbGluZSAyMzMsIGNoYXJhY3RlcnMgMjUt
NDRcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNo
YXJhY3RlcnMgMi05XG4NCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8
ZzZ4ZW50ZXN0fDQzMjUgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWQkQucGx1ZyBSOjZhOWZiYTNh
MTE2NnxiYWNrdHJhY2VdIFJhaXNlZCBhdCBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBs
aW5lIDI2LCBjaGFyYWN0ZXJzIDIyLTI1XG5DYWxsZWQgZnJvbSBmaWxlIFwibWVzc2FnZV9mb3J3
YXJkaW5nLm1sXCIsIGxpbmUgMzUwMiwgY2hhcmFjdGVycyAzLTE5NFxuQ2FsbGVkIGZyb20gZmls
ZSBcInJiYWMubWxcIiwgbGluZSAyMjcsIGNoYXJhY3RlcnMgMTYtMjNcbg0KPiBEZWMgMzAgMDY6
NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFsyMDE0MTIzMFQwNTo1MTozOC40NjVafGF1ZGl0fGc2eGVu
dGVzdHw0MzI1IFVOSVggL3Zhci9saWIveGNwL3hhcGl8VkJELnBsdWcgUjo2YTlmYmEzYTExNjZ8
YXVkaXRdICgndHJhY2tpZD1jYTFlMGUwMmYxYzZmOWZjYzk4MDM2OGU3MTBkOGM4YicgJ0xPQ0FM
X1NVUEVSVVNFUicgJ09wYXF1ZVJlZjpiYzAwMWQ1Ny02NWNlLThiMmItNzRiNC1jZDcxOTc2Mjcy
YzAnICdBTExPV0VEJyAnRVJST1I6U1JfQkFDS0VORF9GQUlMVVJFOiBbIG5vbi16ZXJvIGV4aXQ7
IDsgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOiAgIEZpbGUgXCIvb3B0L3hlbnNv
dXJjZS9zbS9ORlNTUlwiLCBsaW5lIDI3OCwgaW4gPG1vZHVsZT4gICAgIFNSQ29tbWFuZC5ydW4o
TkZTU1IsIERSSVZFUl9JTkZPKSAgIEZpbGUgXCIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5w
eVwiLCBsaW5lIDM0NCwgaW4gcnVuICAgICByZXQgPSBjbWQucnVuKHNyKSAgIEZpbGUgXCIvdXNy
L2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weVwiLCBsaW5lIDExMCwgaW4gcnVuICAgICByZXR1cm4g
c2VsZi5fcnVuX2xvY2tlZChzcikgICBGaWxlIFwiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1hbmQu
cHlcIiwgbGluZSAxNTksIGluIF9ydW5fbG9ja2VkICAgICBydiA9IHNlbGYuX3J1bihzciwgdGFy
Z2V0KSAgIEZpbGUgXCIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weVwiLCBsaW5lIDI2Mywg
aW4gX3J1biAgICAgd3JpdGFibGUsIGNhY2hpbmdfcGFyYW1zKSAgIEZpbGUgXCIvdXNyL2xpYi94
YXBpL3NtL2Jsa3RhcDIucHlcIiwgbGluZSAxNDg2LCBpbiBhY3RpdmF0ZSAgICAgaWYgc2VsZi5f
YWN0aXZhdGVfbG9ja2VkKHNyX3V1aWQsIHZkaV91dWlkLCBvcHRpb25zKTogICBGaWxlIFwiL3Vz
ci9saWIveGFwaS9zbS9ibGt0YXAyLnB5XCIsIGxpbmUgODMsIGluIHdyYXBwZXIgICAgIHJldCA9
IG9wKHNlbGYsICphcmdzKSAgIEZpbGUgXCIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHlcIiwg
bGluZSAxNTIyLCBpbiBfYWN0aXZhdGVfbG9ja2VkICAgICBkZXZfcGF0aCA9IHNlbGYuX2FjdGl2
YXRlKHNyX3V1aWQsIHZkaV91dWlkLCBvcHRpb25zKSAgIEZpbGUgXCIvdXNyL2xpYi94YXBpL3Nt
L2Jsa3RhcDIucHlcIiwgbGluZSAxNTYwLCBpbiBfYWN0aXZhdGUgc2VsZi5fZ2V0X3Bvb2xfY29u
ZmlnKHNyX3V1aWQpLmdldChcIm1lbS1wb29sLXNpemVcIikpICAgRmlsZSBcIi91c3IvbGliL3hh
cGkvc20vYmxrdGFwMi5weVwiLCBsaW5lIDEyNDMsIGluIF90YXBfYWN0aXZhdGUgdGFwZGlzayA9
IFRhcGRpc2suZmluZF9ieV9wYXRoKHBoeV9wYXRoKSAgIEZpbGUgXCIvdXNyL2xpYi94YXBpL3Nt
L2Jsa3RhcDIucHlcIiwgbGluZSA2OTAsIGluIGZpbmRfYnlfcGF0aCByZXR1cm4gY2xzLmZpbmQo
cGF0aD1wYXRoKSAgIEZpbGUgXCIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHlcIiwgbGluZSA2
NzgsIGluIGZpbmQgICAgIGZvdW5kID0gbGlzdChjbHMubGlzdCgqKmFyZ3MpKSAgIEZpbGUgXCIv
dXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHlcIiwgbGluZSA2NTMsIGluIGxpc3QgICAgIGZvciBy
b3cgaW4gVGFwQ3RsLmxpc3QoKiphcmdzKTogICBGaWxlIFwiL3Vzci9saWIveGFwaS9zbS9ibGt0
YXAyLnB5XCIsIGxpbmUgMTE4LCBpbiBsb29wICAgICByZXR1cm4gZigqX190LCAqKl9fZCkgICBG
aWxlIFwiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5XCIsIGxpbmUgMzQ4LCBpbiBsaXN0ICAg
ICBpZiBlLnN0YXR1cyBpbiB0cmFuc2llbnQ6ICAgRmlsZSBcIi91c3IvbGliL3hhcGkvc20vYmxr
dGFwMi5weVwiLCBsaW5lIDE2MiwgaW4gX19nZXRhdHRyX18gICAgIHJldHVybiBvYmplY3QuX19n
ZXRhdHRyaWJ1dGVfXyhzZWxmLCBrZXkpIEF0dHJpYnV0ZUVycm9yOiBcJ0NvbW1hbmRGYWlsdXJl
XCcgb2JqZWN0IGhhcyBubyBhdHRyaWJ1dGUgXCdzdGF0dXNcJyAgXScgJ0FQSScgJ1ZCRC5wbHVn
JyAoKCdzZWxmJyAnJyAnNTU3MTZlY2YtMWEyNy1iMjY1LTYwMjEtZjIxOTk0YTM0NmRmJyAnT3Bh
cXVlUmVmOjYyOTM0ZWQ4LTYwNmMtOWEyNy1jYTY2LTYyNWI0MjIxM2ZkMScpKSkNCj4gRGVjIDMw
IDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMjUgVU5JWCAvdmFy
L2xpYi94Y3AveGFwaXxWQkQucGx1ZyBSOjZhOWZiYTNhMTE2NnxiYWNrdHJhY2VdIFJhaXNlZCBh
dCBmaWxlIFwicmJhYy5tbFwiLCBsaW5lIDIzNiwgY2hhcmFjdGVycyAxMC0xNVxuQ2FsbGVkIGZy
b20gZmlsZSBcInNlcnZlcl9oZWxwZXJzLm1sXCIsIGxpbmUgNzUsIGNoYXJhY3RlcnMgMTEtNDFc
bg0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMy
NSBVTklYIC92YXIvbGliL3hjcC94YXBpfFZCRC5wbHVnIFI6NmE5ZmJhM2ExMTY2fGRpc3BhdGNo
ZXJdIFNlcnZlcl9oZWxwZXJzLmV4ZWMgZXhjZXB0aW9uX2hhbmRsZXI6IEdvdCBleGNlcHRpb24g
U1JfQkFDS0VORF9GQUlMVVJFOiBbIG5vbi16ZXJvIGV4aXQ7IDsgVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOiMwMTIgIEZpbGUgIi9vcHQveGVuc291cmNlL3NtL05GU1NSIiwgbGlu
ZSAyNzgsIGluIDxtb2R1bGU+IzAxMiAgICBTUkNvbW1hbmQucnVuKE5GU1NSLCBEUklWRVJfSU5G
TykjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMzQ0LCBp
biBydW4jMDEyICAgIHJldCA9IGNtZC5ydW4oc3IpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9z
bS9TUkNvbW1hbmQucHkiLCBsaW5lIDExMCwgaW4gcnVuIzAxMiAgICByZXR1cm4gc2VsZi5fcnVu
X2xvY2tlZChzcikjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxp
bmUgMTU5LCBpbiBfcnVuX2xvY2tlZCMwMTIgICAgcnYgPSBzZWxmLl9ydW4oc3IsIHRhcmdldCkj
MDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMjYzLCBpbiBf
cnVuIzAxMiAgICB3cml0YWJsZSwgY2FjaGluZ19wYXJhbXMpIzAxMiAgRmlsZSAiL3Vzci9saWIv
eGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNDg2LCBpbiBhY3RpdmF0ZSMwMTIgICAgaWYgc2Vs
Zi5fYWN0aXZhdGVfbG9ja2VkKHNyX3V1aWQsIHZkaV91dWlkLCBvcHRpb25zKTojMDEyICBGaWxl
ICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDgzLCBpbiB3cmFwcGVyIzAxMiAg
ICByZXQgPSBvcChzZWxmLCAqYXJncykjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3Rh
cDIucHkiLCBsaW5lIDE1MjIsIGluIF9hY3RpdmF0ZV9sb2NrZWQjMDEyICAgIGRldl9wYXRoID0g
c2VsZi5fYWN0aXZhdGUoc3JfdXVpZCwgdmRpX3V1aWQsIG9wdGlvbnMpIzAxMiAgRmlsZSAiL3Vz
ci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNTYwLCBpbiBfYWN0aXZhdGUjMDEyIHNl
bGYuX2dldF9wb29sX2NvbmZpZyhzcl91dWlkKS5nZXQoIm1lbS1wb29sLXNpemUiKSkjMDEyICBG
aWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDEyNDMsIGluIF90YXBfYWN0
aXZhdGUjMDEyIHRhcGRpc2sgPSBUYXBkaXNrLmZpbmRfYnlfcGF0aChwaHlfcGF0aCkjMDEyICBG
aWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDY5MCwgaW4gZmluZF9ieV9w
YXRoIzAxMiByZXR1cm4gY2xzLmZpbmQocGF0aD1wYXRoKSMwMTIgIEZpbGUgIi91c3IvbGliL3hh
cGkvc20vYmxrdGFwMi5weSIsIGxpbmUgNjc4LCBpbiBmaW5kIzAxMiAgICBmb3VuZCA9IGxpc3Qo
Y2xzLmxpc3QoKiphcmdzKSkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHki
LCBsaW5lIDY1MywgaW4gbGlzdCMwMTIgICAgZm9yIHJvdyBpbiBUYXBDdGwubGlzdCgqKmFyZ3Mp
OiMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTE4LCBpbiBs
b29wIzAxMiAgICByZXR1cm4gZigqX190LCAqKl9fZCkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBp
L3NtL2Jsa3RhcDIucHkiLCBsaW5lIDM0OCwgaW4gbGlzdCMwMTIgICAgaWYgZS5zdGF0dXMgaW4g
dHJhbnNpZW50OiMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUg
MTYyLCBpbiBfX2dldGF0dHJfXyMwMTIgICAgcmV0dXJuIG9iamVjdC5fX2dldGF0dHJpYnV0ZV9f
KHNlbGYsIGtleSkjMDEyQXR0cmlidXRlRXJyb3I6ICdDb21tYW5kRmFpbHVyZScgb2JqZWN0IGhh
cyBubyBhdHRyaWJ1dGUgJ3N0YXR1cycjMDEyIF0NCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVz
dCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMjUgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWQkQu
cGx1ZyBSOjZhOWZiYTNhMTE2NnxkaXNwYXRjaGVyXSBSYWlzZWQgYXQgZmlsZSBcInJiYWMubWxc
IiwgbGluZSAyMzYsIGNoYXJhY3RlcnMgMTAtMTVcbkNhbGxlZCBmcm9tIGZpbGUgXCJzZXJ2ZXJf
aGVscGVycy5tbFwiLCBsaW5lIDc1LCBjaGFyYWN0ZXJzIDExLTQxXG4NCj4gRGVjIDMwIDA2OjUx
OjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMjUgVU5JWCAvdmFyL2xpYi94
Y3AveGFwaXxWQkQucGx1ZyBSOjZhOWZiYTNhMTE2NnxiYWNrdHJhY2VdIFJhaXNlZCBhdCBmaWxl
IFwicmJhYy5tbFwiLCBsaW5lIDIzNiwgY2hhcmFjdGVycyAxMC0xNVxuQ2FsbGVkIGZyb20gZmls
ZSBcInNlcnZlcl9oZWxwZXJzLm1sXCIsIGxpbmUgNzUsIGNoYXJhY3RlcnMgMTEtNDFcbg0KPiBE
ZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMyNSBVTklY
IC92YXIvbGliL3hjcC94YXBpfFZCRC5wbHVnIFI6NmE5ZmJhM2ExMTY2fHhhcGldIFJhaXNlZCBh
dCBmaWxlIFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGluZSA5MCwgY2hhcmFjdGVycyAxNC0xNVxu
Q2FsbGVkIGZyb20gZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFj
dGVycyAyLTlcbg0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhl
bnRlc3R8NDMyNSBVTklYIC92YXIvbGliL3hjcC94YXBpfGRpc3BhdGNoOlZCRC5wbHVnIEQ6YTA2
NWE4YTA2ZWE1fHhhcGldIFJhaXNlZCBhdCBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBs
aW5lIDI2LCBjaGFyYWN0ZXJzIDIyLTI1XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL2RlYnVnLm1s
XCIsIGxpbmUgNTcsIGNoYXJhY3RlcnMgMTctMjBcblJlLXJhaXNlZCBhdCBmaWxlIFwibGliL2Rl
YnVnLm1sXCIsIGxpbmUgNjIsIGNoYXJhY3RlcnMgMTAtMTFcbkNhbGxlZCBmcm9tIGZpbGUgXCJs
aWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMgMi05XG4NCj4gRGVjIDMw
IDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMjUgVU5JWCAvdmFy
L2xpYi94Y3AveGFwaXxkaXNwYXRjaDpWQkQucGx1ZyBEOmEwNjVhOGEwNmVhNXxiYWNrdHJhY2Vd
IFJhaXNlZCBhdCBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFyYWN0
ZXJzIDIyLTI1XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL2RlYnVnLm1sXCIsIGxpbmUgNTcsIGNo
YXJhY3RlcnMgMTctMjBcblJlLXJhaXNlZCBhdCBmaWxlIFwibGliL2RlYnVnLm1sXCIsIGxpbmUg
NjIsIGNoYXJhY3RlcnMgMTAtMTFcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0
Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMgMi05XG5SZS1yYWlzZWQgYXQgZmlsZSBcImxpYi9w
ZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyNiwgY2hhcmFjdGVycyAyMi0yNVxuQ2FsbGVkIGZyb20g
ZmlsZSBcInNlcnZlcl9oZWxwZXJzLm1sXCIsIGxpbmUgMTM2LCBjaGFyYWN0ZXJzIDEwLTEwNlxu
Q2FsbGVkIGZyb20gZmlsZSBcInNlcnZlci5tbFwiLCBsaW5lIDI1MDQ3LCBjaGFyYWN0ZXJzIDIz
LTE2MVxuQ2FsbGVkIGZyb20gZmlsZSBcInNlcnZlcl9oZWxwZXJzLm1sXCIsIGxpbmUgMTE1LCBj
aGFyYWN0ZXJzIDQtN1xuDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVn
fGc2eGVudGVzdHw0MzAzIElORVQgOjo6ODB8Vk0gaW1wb3J0IFI6ZGJkYjBlZTVhZTE2fHhhcGld
IFJhaXNlZCBhdCBmaWxlIFwiY2xpZW50Lm1sXCIsIGxpbmUgNiwgY2hhcmFjdGVycyAzNy03NVxu
Q2FsbGVkIGZyb20gZmlsZSBcImNsaWVudC5tbFwiLCBsaW5lIDE4LCBjaGFyYWN0ZXJzIDU1LTEx
MFxuQ2FsbGVkIGZyb20gZmlsZSBcImNsaWVudC5tbFwiLCBsaW5lIDEwNTMwLCBjaGFyYWN0ZXJz
IDYtNTNcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaXN0Lm1sXCIsIGxpbmUgNzMsIGNoYXJhY3RlcnMg
MTItMTVcbkNhbGxlZCBmcm9tIGZpbGUgXCJhdHRhY2hfaGVscGVycy5tbFwiLCBsaW5lIDc5LCBj
aGFyYWN0ZXJzIDctNzg3XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwi
LCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3Qg
eGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzAzIElORVQgOjo6ODB8Vk0gaW1wb3J0IFI6ZGJkYjBl
ZTVhZTE2fG1zY2dlbl0geGFwaT0+eGFwaSBbbGFiZWw9InNlc3Npb24uc2xhdmVfbG9naW4iXTsN
Cj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzNzYg
VU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0YXNrIGRpc3BhdGNoOnNl
c3Npb24uc2xhdmVfbG9naW4gRDplMjlhMTA5MzQzN2IgY3JlYXRlZCBieSB0YXNrIFI6ZGJkYjBl
ZTVhZTE2DQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogWyBpbmZvfGc2eGVudGVz
dHw0Mzc2IFVOSVggL3Zhci9saWIveGNwL3hhcGl8c2Vzc2lvbi5zbGF2ZV9sb2dpbiBEOjUzZjVh
NTA5MTUzY3x4YXBpXSBTZXNzaW9uLmNyZWF0ZSB0cmFja2lkPTQzYmVlNDk1NGRhZjUwYmI4YzE2
M2JjZDY4NzAyZmQ0IHBvb2w9dHJ1ZSB1bmFtZT0gb3JpZ2luYXRvcj0gaXNfbG9jYWxfc3VwZXJ1
c2VyPXRydWUgYXV0aF91c2VyX3NpZD0gcGFyZW50PXRyYWNraWQ9OTgzNGY1YWY0MWM5NjRlMjI1
ZjI0Mjc5YWVmZTRlNDkNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8
ZzZ4ZW50ZXN0fDQzNzYgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxzZXNzaW9uLnNsYXZlX2xvZ2lu
IEQ6NTNmNWE1MDkxNTNjfG1zY2dlbl0geGFwaT0+eGFwaSBbbGFiZWw9InNlc3Npb24uZ2V0X3V1
aWQiXTsNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0
fDQzNzcgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0YXNrIGRpc3Bh
dGNoOnNlc3Npb24uZ2V0X3V1aWQgRDowMGM1YmVmM2Y5NTQgY3JlYXRlZCBieSB0YXNrIEQ6NTNm
NWE1MDkxNTNjDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVu
dGVzdHw0MzAzIElORVQgOjo6ODB8Vk0gaW1wb3J0IFI6ZGJkYjBlZTVhZTE2fG1zY2dlbl0geGFw
aT0+eGFwaSBbbGFiZWw9IlZCRC51bnBsdWciXTsNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVz
dCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzNzggVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVt
bXl0YXNraGVscGVyXSB0YXNrIGRpc3BhdGNoOlZCRC51bnBsdWcgRDoyOGMxZDE1MjhlZDEgY3Jl
YXRlZCBieSB0YXNrIFI6ZGJkYjBlZTVhZTE2DQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3Qg
eGFwaTogWyBpbmZvfGc2eGVudGVzdHw0Mzc4IFVOSVggL3Zhci9saWIveGNwL3hhcGl8ZGlzcGF0
Y2g6VkJELnVucGx1ZyBEOjI4YzFkMTUyOGVkMXx0YXNraGVscGVyXSB0YXNrIFZCRC51bnBsdWcg
Ujo0ZGMzNTc3OGM5NWQgKHV1aWQ6M2UxZTdlOTctYWQzZC1mNmVhLTc0YjAtYjY1OGY2YTIzNGMy
KSBjcmVhdGVkICh0cmFja2lkPTQzYmVlNDk1NGRhZjUwYmI4YzE2M2JjZDY4NzAyZmQ0KSBieSB0
YXNrIFI6ZGJkYjBlZTVhZTE2DQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2Rl
YnVnfGc2eGVudGVzdHw0Mzc4IFVOSVggL3Zhci9saWIveGNwL3hhcGl8VkJELnVucGx1ZyBSOjRk
YzM1Nzc4Yzk1ZHxhdWRpdF0gVkJELnVucGx1ZzogVkJEID0gJzU1NzE2ZWNmLTFhMjctYjI2NS02
MDIxLWYyMTk5NGEzNDZkZicNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVi
dWd8ZzZ4ZW50ZXN0fDQzNzggVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWQkQudW5wbHVnIFI6NGRj
MzU3NzhjOTVkfGJhY2t0cmFjZV0gUmFpc2VkIGF0IGZpbGUgXCJ4YXBpX3ZiZF9oZWxwZXJzLm1s
XCIsIGxpbmUgMjAxLCBjaGFyYWN0ZXJzIDMzLTcyXG5DYWxsZWQgZnJvbSBmaWxlIFwibWVzc2Fn
ZV9mb3J3YXJkaW5nLm1sXCIsIGxpbmUgMzQzMCwgY2hhcmFjdGVycyA1LTY1XG5DYWxsZWQgZnJv
bSBmaWxlIFwibWVzc2FnZV9mb3J3YXJkaW5nLm1sXCIsIGxpbmUgMjgzLCBjaGFyYWN0ZXJzIDUt
OFxuDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0
Mzc4IFVOSVggL3Zhci9saWIveGNwL3hhcGl8VkJELnVucGx1ZyBSOjRkYzM1Nzc4Yzk1ZHx4YXBp
XSBDYXVnaHQgZXhjZXB0aW9uIHdoaWxlIERFVklDRV9BTFJFQURZX0RFVEFDSEVEOiBbIE9wYXF1
ZVJlZjo2MjkzNGVkOC02MDZjLTlhMjctY2E2Ni02MjViNDIyMTNmZDEgXSBpbiBtZXNzYWdlIGZv
cndhcmRlcjogbWFya2luZyBWQkQgZm9yIFZCRC51bnBsdWcNCj4gRGVjIDMwIDA2OjUxOjM4IGc2
eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzNzggVU5JWCAvdmFyL2xpYi94Y3AveGFw
aXxWQkQudW5wbHVnIFI6NGRjMzU3NzhjOTVkfGJhY2t0cmFjZV0gUmFpc2VkIGF0IGZpbGUgXCJ4
YXBpX3ZiZF9oZWxwZXJzLm1sXCIsIGxpbmUgMjAxLCBjaGFyYWN0ZXJzIDMzLTcyXG5DYWxsZWQg
ZnJvbSBmaWxlIFwibWVzc2FnZV9mb3J3YXJkaW5nLm1sXCIsIGxpbmUgMzQzMCwgY2hhcmFjdGVy
cyA1LTY1XG5DYWxsZWQgZnJvbSBmaWxlIFwibWVzc2FnZV9mb3J3YXJkaW5nLm1sXCIsIGxpbmUg
MjgzLCBjaGFyYWN0ZXJzIDUtOFxuUmUtcmFpc2VkIGF0IGZpbGUgXCJtZXNzYWdlX2ZvcndhcmRp
bmcubWxcIiwgbGluZSAyODYsIGNoYXJhY3RlcnMgOC05XG5DYWxsZWQgZnJvbSBmaWxlIFwibGli
L3RocmVhZGV4dC5tbFwiLCBsaW5lIDIwLCBjaGFyYWN0ZXJzIDIwLTI0XG5SZS1yYWlzZWQgYXQg
ZmlsZSBcImxpYi90aHJlYWRleHQubWxcIiwgbGluZSAyMCwgY2hhcmFjdGVycyA2Mi02NVxuQ2Fs
bGVkIGZyb20gZmlsZSBcIm1lc3NhZ2VfZm9yd2FyZGluZy5tbFwiLCBsaW5lIDE0OSwgY2hhcmFj
dGVycyAxOS0yNVxuQ2FsbGVkIGZyb20gZmlsZSBcIm1lc3NhZ2VfZm9yd2FyZGluZy5tbFwiLCBs
aW5lIDM0MzUsIGNoYXJhY3RlcnMgMy04N1xuQ2FsbGVkIGZyb20gZmlsZSBcIm1lc3NhZ2VfZm9y
d2FyZGluZy5tbFwiLCBsaW5lIDM1MTEsIGNoYXJhY3RlcnMgMy0yMDBcbkNhbGxlZCBmcm9tIGZp
bGUgXCJyYmFjLm1sXCIsIGxpbmUgMjI3LCBjaGFyYWN0ZXJzIDE2LTIzXG4NCj4gRGVjIDMwIDA2
OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbMjAxNDEyMzBUMDU6NTE6MzguNTM5WnxhdWRpdHxnNnhl
bnRlc3R8NDM3OCBVTklYIC92YXIvbGliL3hjcC94YXBpfFZCRC51bnBsdWcgUjo0ZGMzNTc3OGM5
NWR8YXVkaXRdICgndHJhY2tpZD00M2JlZTQ5NTRkYWY1MGJiOGMxNjNiY2Q2ODcwMmZkNCcgJ0xP
Q0FMX1NVUEVSVVNFUicgJ09wYXF1ZVJlZjpiYzAwMWQ1Ny02NWNlLThiMmItNzRiNC1jZDcxOTc2
MjcyYzAnICdBTExPV0VEJyAnRVJST1I6REVWSUNFX0FMUkVBRFlfREVUQUNIRUQ6IFsgT3BhcXVl
UmVmOjYyOTM0ZWQ4LTYwNmMtOWEyNy1jYTY2LTYyNWI0MjIxM2ZkMSBdJyAnQVBJJyAnVkJELnVu
cGx1ZycgKCgnc2VsZicgJycgJzU1NzE2ZWNmLTFhMjctYjI2NS02MDIxLWYyMTk5NGEzNDZkZicg
J09wYXF1ZVJlZjo2MjkzNGVkOC02MDZjLTlhMjctY2E2Ni02MjViNDIyMTNmZDEnKSkpDQo+IERl
YyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0Mzc4IFVOSVgg
L3Zhci9saWIveGNwL3hhcGl8VkJELnVucGx1ZyBSOjRkYzM1Nzc4Yzk1ZHxiYWNrdHJhY2VdIFJh
aXNlZCBhdCBmaWxlIFwicmJhYy5tbFwiLCBsaW5lIDIzNiwgY2hhcmFjdGVycyAxMC0xNVxuQ2Fs
bGVkIGZyb20gZmlsZSBcInNlcnZlcl9oZWxwZXJzLm1sXCIsIGxpbmUgNzUsIGNoYXJhY3RlcnMg
MTEtNDFcbg0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRl
c3R8NDM3OCBVTklYIC92YXIvbGliL3hjcC94YXBpfFZCRC51bnBsdWcgUjo0ZGMzNTc3OGM5NWR8
ZGlzcGF0Y2hlcl0gU2VydmVyX2hlbHBlcnMuZXhlYyBleGNlcHRpb25faGFuZGxlcjogR290IGV4
Y2VwdGlvbiBERVZJQ0VfQUxSRUFEWV9ERVRBQ0hFRDogWyBPcGFxdWVSZWY6NjI5MzRlZDgtNjA2
Yy05YTI3LWNhNjYtNjI1YjQyMjEzZmQxIF0NCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4
YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzNzggVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWQkQudW5w
bHVnIFI6NGRjMzU3NzhjOTVkfGRpc3BhdGNoZXJdIFJhaXNlZCBhdCBmaWxlIFwicmJhYy5tbFwi
LCBsaW5lIDIzNiwgY2hhcmFjdGVycyAxMC0xNVxuQ2FsbGVkIGZyb20gZmlsZSBcInNlcnZlcl9o
ZWxwZXJzLm1sXCIsIGxpbmUgNzUsIGNoYXJhY3RlcnMgMTEtNDFcbg0KPiBEZWMgMzAgMDY6NTE6
MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM3OCBVTklYIC92YXIvbGliL3hj
cC94YXBpfFZCRC51bnBsdWcgUjo0ZGMzNTc3OGM5NWR8YmFja3RyYWNlXSBSYWlzZWQgYXQgZmls
ZSBcInJiYWMubWxcIiwgbGluZSAyMzYsIGNoYXJhY3RlcnMgMTAtMTVcbkNhbGxlZCBmcm9tIGZp
bGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDc1LCBjaGFyYWN0ZXJzIDExLTQxXG4NCj4g
RGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzNzggVU5J
WCAvdmFyL2xpYi94Y3AveGFwaXxWQkQudW5wbHVnIFI6NGRjMzU3NzhjOTVkfHhhcGldIFJhaXNl
ZCBhdCBmaWxlIFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGluZSA5MCwgY2hhcmFjdGVycyAxNC0x
NVxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hh
cmFjdGVycyAyLTlcbg0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xn
NnhlbnRlc3R8NDM3OCBVTklYIC92YXIvbGliL3hjcC94YXBpfGRpc3BhdGNoOlZCRC51bnBsdWcg
RDoyOGMxZDE1MjhlZDF8eGFwaV0gUmFpc2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1s
XCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvZGVi
dWcubWxcIiwgbGluZSA1NywgY2hhcmFjdGVycyAxNy0yMFxuUmUtcmFpc2VkIGF0IGZpbGUgXCJs
aWIvZGVidWcubWxcIiwgbGluZSA2MiwgY2hhcmFjdGVycyAxMC0xMVxuQ2FsbGVkIGZyb20gZmls
ZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFjdGVycyAyLTlcbg0KPiBE
ZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM3OCBVTklY
IC92YXIvbGliL3hjcC94YXBpfGRpc3BhdGNoOlZCRC51bnBsdWcgRDoyOGMxZDE1MjhlZDF8YmFj
a3RyYWNlXSBSYWlzZWQgYXQgZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyNiwg
Y2hhcmFjdGVycyAyMi0yNVxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9kZWJ1Zy5tbFwiLCBsaW5l
IDU3LCBjaGFyYWN0ZXJzIDE3LTIwXG5SZS1yYWlzZWQgYXQgZmlsZSBcImxpYi9kZWJ1Zy5tbFwi
LCBsaW5lIDYyLCBjaGFyYWN0ZXJzIDEwLTExXG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZh
c2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuUmUtcmFpc2VkIGF0IGZpbGUg
XCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxl
ZCBmcm9tIGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDEzNiwgY2hhcmFjdGVycyAx
MC0xMDZcbkNhbGxlZCBmcm9tIGZpbGUgXCJzZXJ2ZXIubWxcIiwgbGluZSAyNTA2OCwgY2hhcmFj
dGVycyAyMy0xNjFcbkNhbGxlZCBmcm9tIGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5l
IDExNSwgY2hhcmFjdGVycyA0LTdcbg0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6
IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMyBJTkVUIDo6OjgwfFZNIGltcG9ydCBSOmRiZGIwZWU1YWUx
Nnx4YXBpXSBzYWZlX3VucGx1ZyBjYXVnaHQgREVWSUNFX0FMUkVBRFlfREVUQUNIRUQ6IHRoaXMg
aXMgc2FmZSB0byBpZ25vcmUNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVi
dWd8ZzZ4ZW50ZXN0fDQzMDMgSU5FVCA6Ojo4MHxWTSBpbXBvcnQgUjpkYmRiMGVlNWFlMTZ8bXNj
Z2VuXSB4YXBpPT54YXBpIFtsYWJlbD0iVkJELmRlc3Ryb3kiXTsNCj4gRGVjIDMwIDA2OjUxOjM4
IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzNzkgVU5JWCAvdmFyL2xpYi94Y3Av
eGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0YXNrIGRpc3BhdGNoOlZCRC5kZXN0cm95IEQ6ZDJhMmZm
ZTFlZTRmIGNyZWF0ZWQgYnkgdGFzayBSOmRiZGIwZWU1YWUxNg0KPiBEZWMgMzAgMDY6NTE6Mzgg
ZzZ4ZW50ZXN0IHhhcGk6IFsgaW5mb3xnNnhlbnRlc3R8NDM3OSBVTklYIC92YXIvbGliL3hjcC94
YXBpfGRpc3BhdGNoOlZCRC5kZXN0cm95IEQ6ZDJhMmZmZTFlZTRmfHRhc2toZWxwZXJdIHRhc2sg
VkJELmRlc3Ryb3kgUjo3NmM4ZjhhZjhlYzMgKHV1aWQ6Mjg5MWMzOGYtOGM5NS00YTg0LTAxYmUt
ZjNmYjkyMWI3ZWI4KSBjcmVhdGVkICh0cmFja2lkPTQzYmVlNDk1NGRhZjUwYmI4YzE2M2JjZDY4
NzAyZmQ0KSBieSB0YXNrIFI6ZGJkYjBlZTVhZTE2DQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRl
c3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0Mzc5IFVOSVggL3Zhci9saWIveGNwL3hhcGl8VkJE
LmRlc3Ryb3kgUjo3NmM4ZjhhZjhlYzN8YXVkaXRdIFZCRC5kZXN0cm95OiBWQkQgPSAnNTU3MTZl
Y2YtMWEyNy1iMjY1LTYwMjEtZjIxOTk0YTM0NmRmJw0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50
ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM3OSBVTklYIC92YXIvbGliL3hjcC94YXBpfFZC
RC5kZXN0cm95IFI6NzZjOGY4YWY4ZWMzfHhhcGldIFZCRC5kZXN0cm95ICh1dWlkID0gNTU3MTZl
Y2YtMWEyNy1iMjY1LTYwMjEtZjIxOTk0YTM0NmRmOyByZWYgPSBPcGFxdWVSZWY6NjI5MzRlZDgt
NjA2Yy05YTI3LWNhNjYtNjI1YjQyMjEzZmQxKQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0
IHhhcGk6IFsyMDE0MTIzMFQwNTo1MTozOC41ODNafGF1ZGl0fGc2eGVudGVzdHw0Mzc5IFVOSVgg
L3Zhci9saWIveGNwL3hhcGl8VkJELmRlc3Ryb3kgUjo3NmM4ZjhhZjhlYzN8YXVkaXRdICgndHJh
Y2tpZD00M2JlZTQ5NTRkYWY1MGJiOGMxNjNiY2Q2ODcwMmZkNCcgJ0xPQ0FMX1NVUEVSVVNFUicg
J09wYXF1ZVJlZjpiYzAwMWQ1Ny02NWNlLThiMmItNzRiNC1jZDcxOTc2MjcyYzAnICdBTExPV0VE
JyAnT0snICdBUEknICdWQkQuZGVzdHJveScgKCgnc2VsZicgJycgJzU1NzE2ZWNmLTFhMjctYjI2
NS02MDIxLWYyMTk5NGEzNDZkZicgJ09wYXF1ZVJlZjo2MjkzNGVkOC02MDZjLTlhMjctY2E2Ni02
MjViNDIyMTNmZDEnKSAoJ1ZESScgJ1hPQSBTeXN0ZW0nICdjYWUzMGU5Yi1lYmQ0LTQ0NTAtOGNl
MC05ZjQwMzVjYTYyZjEnICdPcGFxdWVSZWY6MGIxMzJjYTYtYjhlNy1jMTFmLTZmZmYtZGVjMDg0
MzJjYWZlJykpKQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhl
bnRlc3R8NDMwMyBJTkVUIDo6OjgwfFZNIGltcG9ydCBSOmRiZGIwZWU1YWUxNnxtc2NnZW5dIHhh
cGk9PnhhcGkgW2xhYmVsPSJzZXNzaW9uLmxvZ291dCJdOw0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4
ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM4MCBVTklYIC92YXIvbGliL3hjcC94YXBp
fHxkdW1teXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6c2Vzc2lvbi5sb2dvdXQgRDozM2QxMjFh
ZTcwM2MgY3JlYXRlZCBieSB0YXNrIFI6ZGJkYjBlZTVhZTE2DQo+IERlYyAzMCAwNjo1MTozOCBn
NnhlbnRlc3QgeGFwaTogWyBpbmZvfGc2eGVudGVzdHw0MzgwIFVOSVggL3Zhci9saWIveGNwL3hh
cGl8c2Vzc2lvbi5sb2dvdXQgRDpiNjhhNWZiOWY1ODV8eGFwaV0gU2Vzc2lvbi5kZXN0cm95IHRy
YWNraWQ9NDNiZWU0OTU0ZGFmNTBiYjhjMTYzYmNkNjg3MDJmZDQNCj4gRGVjIDMwIDA2OjUxOjM4
IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMDMgSU5FVCA6Ojo4MHxWTSBpbXBv
cnQgUjpkYmRiMGVlNWFlMTZ8YmFja3RyYWNlXSBSYWlzZWQgYXQgZmlsZSBcImxpYi9wZXJ2YXNp
dmVleHQubWxcIiwgbGluZSAyNiwgY2hhcmFjdGVycyAyMi0yNVxuQ2FsbGVkIGZyb20gZmlsZSBc
Imxpc3QubWxcIiwgbGluZSA3MywgY2hhcmFjdGVycyAxMi0xNVxuQ2FsbGVkIGZyb20gZmlsZSBc
InN0cmVhbV92ZGkubWxcIiwgbGluZSA1OCwgY2hhcmFjdGVycyAyLTMyXG5DYWxsZWQgZnJvbSBm
aWxlIFwiaW1wb3J0Lm1sXCIsIGxpbmUgMTQ5MywgY2hhcmFjdGVycyAzNi0xMjRcbg0KPiBEZWMg
MzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtlcnJvcnxnNnhlbnRlc3R8NDMwMyBJTkVUIDo6
OjgwfFZNIGltcG9ydCBSOmRiZGIwZWU1YWUxNnxpbXBvcnRdIENhdWdodCBleGNlcHRpb24gZHVy
aW5nIGltcG9ydDogU1JfQkFDS0VORF9GQUlMVVJFOiBbIG5vbi16ZXJvIGV4aXQ7IDsgVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOiMwMTIgIEZpbGUgIi9vcHQveGVuc291cmNlL3Nt
L05GU1NSIiwgbGluZSAyNzgsIGluIDxtb2R1bGU+IzAxMiAgICBTUkNvbW1hbmQucnVuKE5GU1NS
LCBEUklWRVJfSU5GTykjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIs
IGxpbmUgMzQ0LCBpbiBydW4jMDEyICAgIHJldCA9IGNtZC5ydW4oc3IpIzAxMiAgRmlsZSAiL3Vz
ci9saWIveGFwaS9zbS9TUkNvbW1hbmQucHkiLCBsaW5lIDExMCwgaW4gcnVuIzAxMiAgICByZXR1
cm4gc2VsZi5fcnVuX2xvY2tlZChzcikjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL1NSQ29t
bWFuZC5weSIsIGxpbmUgMTU5LCBpbiBfcnVuX2xvY2tlZCMwMTIgICAgcnYgPSBzZWxmLl9ydW4o
c3IsIHRhcmdldCkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxp
bmUgMjYzLCBpbiBfcnVuIzAxMiAgICB3cml0YWJsZSwgY2FjaGluZ19wYXJhbXMpIzAxMiAgRmls
ZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNDg2LCBpbiBhY3RpdmF0ZSMw
MTIgICAgaWYgc2VsZi5fYWN0aXZhdGVfbG9ja2VkKHNyX3V1aWQsIHZkaV91dWlkLCBvcHRpb25z
KTojMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDgzLCBpbiB3
cmFwcGVyIzAxMiAgICByZXQgPSBvcChzZWxmLCAqYXJncykjMDEyICBGaWxlICIvdXNyL2xpYi94
YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDE1MjIsIGluIF9hY3RpdmF0ZV9sb2NrZWQjMDEyICAg
IGRldl9wYXRoID0gc2VsZi5fYWN0aXZhdGUoc3JfdXVpZCwgdmRpX3V1aWQsIG9wdGlvbnMpIzAx
MiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNTYwLCBpbiBfYWN0
aXZhdGUjMDEyIHNlbGYuX2dldF9wb29sX2NvbmZpZyhzcl91dWlkKS5nZXQoIm1lbS1wb29sLXNp
emUiKSkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDEyNDMs
IGluIF90YXBfYWN0aXZhdGUjMDEyIHRhcGRpc2sgPSBUYXBkaXNrLmZpbmRfYnlfcGF0aChwaHlf
cGF0aCkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDY5MCwg
aW4gZmluZF9ieV9wYXRoIzAxMiByZXR1cm4gY2xzLmZpbmQocGF0aD1wYXRoKSMwMTIgIEZpbGUg
Ii91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgNjc4LCBpbiBmaW5kIzAxMiAgICBm
b3VuZCA9IGxpc3QoY2xzLmxpc3QoKiphcmdzKSkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3Nt
L2Jsa3RhcDIucHkiLCBsaW5lIDY1MywgaW4gbGlzdCMwMTIgICAgZm9yIHJvdyBpbiBUYXBDdGwu
bGlzdCgqKmFyZ3MpOiMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxp
bmUgMTE4LCBpbiBsb29wIzAxMiAgICByZXR1cm4gZigqX190LCAqKl9fZCkjMDEyICBGaWxlICIv
dXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDM0OCwgaW4gbGlzdCMwMTIgICAgaWYg
ZS5zdGF0dXMgaW4gdHJhbnNpZW50OiMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFw
Mi5weSIsIGxpbmUgMTYyLCBpbiBfX2dldGF0dHJfXyMwMTIgICAgcmV0dXJuIG9iamVjdC5fX2dl
dGF0dHJpYnV0ZV9fKHNlbGYsIGtleSkjMDEyQXR0cmlidXRlRXJyb3I6ICdDb21tYW5kRmFpbHVy
ZScgb2JqZWN0IGhhcyBubyBhdHRyaWJ1dGUgJ3N0YXR1cycjMDEyIF0NCj4gRGVjIDMwIDA2OjUx
OjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMDMgSU5FVCA6Ojo4MHxWTSBp
bXBvcnQgUjpkYmRiMGVlNWFlMTZ8YmFja3RyYWNlXSBSYWlzZWQgYXQgZmlsZSBcImxpYi9wZXJ2
YXNpdmVleHQubWxcIiwgbGluZSAyNiwgY2hhcmFjdGVycyAyMi0yNVxuQ2FsbGVkIGZyb20gZmls
ZSBcImxpc3QubWxcIiwgbGluZSA3MywgY2hhcmFjdGVycyAxMi0xNVxuQ2FsbGVkIGZyb20gZmls
ZSBcInN0cmVhbV92ZGkubWxcIiwgbGluZSA1OCwgY2hhcmFjdGVycyAyLTMyXG5DYWxsZWQgZnJv
bSBmaWxlIFwiaW1wb3J0Lm1sXCIsIGxpbmUgMTQ5MywgY2hhcmFjdGVycyAzNi0xMjRcbg0KPiBE
ZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMyBJTkVU
IDo6OjgwfFZNIGltcG9ydCBSOmRiZGIwZWU1YWUxNnxpbXBvcnRdIENsZWFuaW5nIHVwIGFmdGVy
IGltcG9ydCBmYWlsdXJlOiBTUl9CQUNLRU5EX0ZBSUxVUkU6IFsgbm9uLXplcm8gZXhpdDsgOyBU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6IzAxMiAgRmlsZSAiL29wdC94ZW5zb3Vy
Y2Uvc20vTkZTU1IiLCBsaW5lIDI3OCwgaW4gPG1vZHVsZT4jMDEyICAgIFNSQ29tbWFuZC5ydW4o
TkZTU1IsIERSSVZFUl9JTkZPKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vU1JDb21tYW5k
LnB5IiwgbGluZSAzNDQsIGluIHJ1biMwMTIgICAgcmV0ID0gY21kLnJ1bihzcikjMDEyICBGaWxl
ICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMTEwLCBpbiBydW4jMDEyICAg
IHJldHVybiBzZWxmLl9ydW5fbG9ja2VkKHNyKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20v
U1JDb21tYW5kLnB5IiwgbGluZSAxNTksIGluIF9ydW5fbG9ja2VkIzAxMiAgICBydiA9IHNlbGYu
X3J1bihzciwgdGFyZ2V0KSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vU1JDb21tYW5kLnB5
IiwgbGluZSAyNjMsIGluIF9ydW4jMDEyICAgIHdyaXRhYmxlLCBjYWNoaW5nX3BhcmFtcykjMDEy
ICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDE0ODYsIGluIGFjdGl2
YXRlIzAxMiAgICBpZiBzZWxmLl9hY3RpdmF0ZV9sb2NrZWQoc3JfdXVpZCwgdmRpX3V1aWQsIG9w
dGlvbnMpOiMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgODMs
IGluIHdyYXBwZXIjMDEyICAgIHJldCA9IG9wKHNlbGYsICphcmdzKSMwMTIgIEZpbGUgIi91c3Iv
bGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTUyMiwgaW4gX2FjdGl2YXRlX2xvY2tlZCMw
MTIgICAgZGV2X3BhdGggPSBzZWxmLl9hY3RpdmF0ZShzcl91dWlkLCB2ZGlfdXVpZCwgb3B0aW9u
cykjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDE1NjAsIGlu
IF9hY3RpdmF0ZSMwMTIgc2VsZi5fZ2V0X3Bvb2xfY29uZmlnKHNyX3V1aWQpLmdldCgibWVtLXBv
b2wtc2l6ZSIpKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUg
MTI0MywgaW4gX3RhcF9hY3RpdmF0ZSMwMTIgdGFwZGlzayA9IFRhcGRpc2suZmluZF9ieV9wYXRo
KHBoeV9wYXRoKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUg
NjkwLCBpbiBmaW5kX2J5X3BhdGgjMDEyIHJldHVybiBjbHMuZmluZChwYXRoPXBhdGgpIzAxMiAg
RmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA2NzgsIGluIGZpbmQjMDEy
ICAgIGZvdW5kID0gbGlzdChjbHMubGlzdCgqKmFyZ3MpKSMwMTIgIEZpbGUgIi91c3IvbGliL3hh
cGkvc20vYmxrdGFwMi5weSIsIGxpbmUgNjUzLCBpbiBsaXN0IzAxMiAgICBmb3Igcm93IGluIFRh
cEN0bC5saXN0KCoqYXJncyk6IzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5
IiwgbGluZSAxMTgsIGluIGxvb3AjMDEyICAgIHJldHVybiBmKCpfX3QsICoqX19kKSMwMTIgIEZp
bGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMzQ4LCBpbiBsaXN0IzAxMiAg
ICBpZiBlLnN0YXR1cyBpbiB0cmFuc2llbnQ6IzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9i
bGt0YXAyLnB5IiwgbGluZSAxNjIsIGluIF9fZ2V0YXR0cl9fIzAxMiAgICByZXR1cm4gb2JqZWN0
Ll9fZ2V0YXR0cmlidXRlX18oc2VsZiwga2V5KSMwMTJBdHRyaWJ1dGVFcnJvcjogJ0NvbW1hbmRG
YWlsdXJlJyBvYmplY3QgaGFzIG5vIGF0dHJpYnV0ZSAnc3RhdHVzJyMwMTIgXQ0KPiBEZWMgMzAg
MDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMyBJTkVUIDo6Ojgw
fFZNLmltcG9ydCAoY2xlYW51cCkgUjowOWRkOWM3Njg0NTB8bXNjZ2VuXSB4YXBpPT54YXBpIFts
YWJlbD0ic2Vzc2lvbi5zbGF2ZV9sb2dpbiJdOw0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0
IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM4MSBVTklYIC92YXIvbGliL3hjcC94YXBpfHxkdW1t
eXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6c2Vzc2lvbi5zbGF2ZV9sb2dpbiBEOjJkNmZlMDQ1
ZTY3ZCBjcmVhdGVkIGJ5IHRhc2sgUjowOWRkOWM3Njg0NTANCj4gRGVjIDMwIDA2OjUxOjM4IGc2
eGVudGVzdCB4YXBpOiBbIGluZm98ZzZ4ZW50ZXN0fDQzODEgVU5JWCAvdmFyL2xpYi94Y3AveGFw
aXxzZXNzaW9uLnNsYXZlX2xvZ2luIEQ6MDk1Njg5ZDM3MDJjfHhhcGldIFNlc3Npb24uY3JlYXRl
IHRyYWNraWQ9ZWYzY2Q0NzQ1ZjFiNDNiNzdhOTlhY2ZlM2FmYmFlOGYgcG9vbD10cnVlIHVuYW1l
PSBvcmlnaW5hdG9yPSBpc19sb2NhbF9zdXBlcnVzZXI9dHJ1ZSBhdXRoX3VzZXJfc2lkPSBwYXJl
bnQ9dHJhY2tpZD05ODM0ZjVhZjQxYzk2NGUyMjVmMjQyNzlhZWZlNGU0OQ0KPiBEZWMgMzAgMDY6
NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM4MSBVTklYIC92YXIvbGli
L3hjcC94YXBpfHNlc3Npb24uc2xhdmVfbG9naW4gRDowOTU2ODlkMzcwMmN8bXNjZ2VuXSB4YXBp
PT54YXBpIFtsYWJlbD0ic2Vzc2lvbi5nZXRfdXVpZCJdOw0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4
ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM4MiBVTklYIC92YXIvbGliL3hjcC94YXBp
fHxkdW1teXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6c2Vzc2lvbi5nZXRfdXVpZCBEOjY2NDg1
YzA4Y2E0YSBjcmVhdGVkIGJ5IHRhc2sgRDowOTU2ODlkMzcwMmMNCj4gRGVjIDMwIDA2OjUxOjM4
IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMDMgSU5FVCA6Ojo4MHxWTS5pbXBv
cnQgKGNsZWFudXApIFI6MDlkZDljNzY4NDUwfG1zY2dlbl0geGFwaT0+eGFwaSBbbGFiZWw9IlZJ
Ri5kZXN0cm95Il07DQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2
eGVudGVzdHw0MzgzIFVOSVggL3Zhci9saWIveGNwL3hhcGl8fGR1bW15dGFza2hlbHBlcl0gdGFz
ayBkaXNwYXRjaDpWSUYuZGVzdHJveSBEOjRiNzExOTU4MDg5NSBjcmVhdGVkIGJ5IHRhc2sgUjow
OWRkOWM3Njg0NTANCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbIGluZm98ZzZ4
ZW50ZXN0fDQzODMgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxkaXNwYXRjaDpWSUYuZGVzdHJveSBE
OjRiNzExOTU4MDg5NXx0YXNraGVscGVyXSB0YXNrIFZJRi5kZXN0cm95IFI6ZDRiZjJjNmMwMDQ5
ICh1dWlkOjIxM2NkYjU5LThiYTctMzAyOS0zNWUxLWE1YWVjNWI3MTVhMCkgY3JlYXRlZCAodHJh
Y2tpZD1lZjNjZDQ3NDVmMWI0M2I3N2E5OWFjZmUzYWZiYWU4ZikgYnkgdGFzayBSOjA5ZGQ5Yzc2
ODQ1MA0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8
NDM4MyBVTklYIC92YXIvbGliL3hjcC94YXBpfFZJRi5kZXN0cm95IFI6ZDRiZjJjNmMwMDQ5fGF1
ZGl0XSBWSUYuZGVzdHJveTogVklGID0gJ2M0MGQxOWM4LTE5NjQtZWIwNC1lNTcyLTM0NGI3NGJi
NzcwMScNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0
fDQzODMgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWSUYuZGVzdHJveSBSOmQ0YmYyYzZjMDA0OXx4
YXBpXSBWSUYuZGVzdHJveQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFsyMDE0
MTIzMFQwNTo1MTozOC42MjhafGF1ZGl0fGc2eGVudGVzdHw0MzgzIFVOSVggL3Zhci9saWIveGNw
L3hhcGl8VklGLmRlc3Ryb3kgUjpkNGJmMmM2YzAwNDl8YXVkaXRdICgndHJhY2tpZD1lZjNjZDQ3
NDVmMWI0M2I3N2E5OWFjZmUzYWZiYWU4ZicgJ0xPQ0FMX1NVUEVSVVNFUicgJ09wYXF1ZVJlZjpi
YzAwMWQ1Ny02NWNlLThiMmItNzRiNC1jZDcxOTc2MjcyYzAnICdBTExPV0VEJyAnT0snICdBUEkn
ICdWSUYuZGVzdHJveScgKCgnc2VsZicgJycgJ2M0MGQxOWM4LTE5NjQtZWIwNC1lNTcyLTM0NGI3
NGJiNzcwMScgJ09wYXF1ZVJlZjo1NWUzOTkwYy05ZWI0LTFkMmYtYzM0ZC0xNzg1MWNiODdkZjgn
KSkpDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw4
OXx4YXBpIGV2ZW50cyBEOmI2NDk3ZTJhOGIxNXx4ZW5vcHNdIEV2ZW50IG9uIFZNIGJlNzY0ZGRl
LWJhNmQtNDhmNS1iZGMyLThhZTg3YWQ3NDU1OTsgcmVzaWRlbnRfaGVyZSA9IHRydWUNCj4gRGVj
IDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMDMgSU5FVCA6
Ojo4MHxWTS5pbXBvcnQgKGNsZWFudXApIFI6MDlkZDljNzY4NDUwfG1zY2dlbl0geGFwaT0+eGFw
aSBbbGFiZWw9IlZCRC5kZXN0cm95Il07DQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFw
aTogW2RlYnVnfGc2eGVudGVzdHw0Mzg0IFVOSVggL3Zhci9saWIveGNwL3hhcGl8fGR1bW15dGFz
a2hlbHBlcl0gdGFzayBkaXNwYXRjaDpWQkQuZGVzdHJveSBEOjIwNmU2MDMwZDc5MSBjcmVhdGVk
IGJ5IHRhc2sgUjowOWRkOWM3Njg0NTANCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBp
OiBbIGluZm98ZzZ4ZW50ZXN0fDQzODQgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxkaXNwYXRjaDpW
QkQuZGVzdHJveSBEOjIwNmU2MDMwZDc5MXx0YXNraGVscGVyXSB0YXNrIFZCRC5kZXN0cm95IFI6
MGE3ZjVlOTYyYzRhICh1dWlkOmMyZTViYzY0LWIzZDItZjJmYS0yN2U3LWY4ZGMyMzUyODFjOCkg
Y3JlYXRlZCAodHJhY2tpZD1lZjNjZDQ3NDVmMWI0M2I3N2E5OWFjZmUzYWZiYWU4ZikgYnkgdGFz
ayBSOjA5ZGQ5Yzc2ODQ1MA0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1
Z3xnNnhlbnRlc3R8NDM4NCBVTklYIC92YXIvbGliL3hjcC94YXBpfFZCRC5kZXN0cm95IFI6MGE3
ZjVlOTYyYzRhfGF1ZGl0XSBWQkQuZGVzdHJveTogVkJEID0gJzM1ODcwYmRlLThjY2ItZDAwMS0z
OTk5LWM2YWNhZDBjMmIwYScNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVi
dWd8ZzZ4ZW50ZXN0fDQzODQgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWQkQuZGVzdHJveSBSOjBh
N2Y1ZTk2MmM0YXx4YXBpXSBWQkQuZGVzdHJveSAodXVpZCA9IDM1ODcwYmRlLThjY2ItZDAwMS0z
OTk5LWM2YWNhZDBjMmIwYTsgcmVmID0gT3BhcXVlUmVmOjM0YmJjZjVlLTFjNDQtOGEwMy1mMWYy
LTBkYzQ5NGIyODQ2YSkNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbMjAxNDEy
MzBUMDU6NTE6MzguNjcxWnxhdWRpdHxnNnhlbnRlc3R8NDM4NCBVTklYIC92YXIvbGliL3hjcC94
YXBpfFZCRC5kZXN0cm95IFI6MGE3ZjVlOTYyYzRhfGF1ZGl0XSAoJ3RyYWNraWQ9ZWYzY2Q0NzQ1
ZjFiNDNiNzdhOTlhY2ZlM2FmYmFlOGYnICdMT0NBTF9TVVBFUlVTRVInICdPcGFxdWVSZWY6YmMw
MDFkNTctNjVjZS04YjJiLTc0YjQtY2Q3MTk3NjI3MmMwJyAnQUxMT1dFRCcgJ09LJyAnQVBJJyAn
VkJELmRlc3Ryb3knICgoJ3NlbGYnICcnICczNTg3MGJkZS04Y2NiLWQwMDEtMzk5OS1jNmFjYWQw
YzJiMGEnICdPcGFxdWVSZWY6MzRiYmNmNWUtMWM0NC04YTAzLWYxZjItMGRjNDk0YjI4NDZhJykg
KCdWREknICdYT0EgU3lzdGVtJyAnY2FlMzBlOWItZWJkNC00NDUwLThjZTAtOWY0MDM1Y2E2MmYx
JyAnT3BhcXVlUmVmOjBiMTMyY2E2LWI4ZTctYzExZi02ZmZmLWRlYzA4NDMyY2FmZScpKSkNCj4g
RGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDg5fHhhcGkg
ZXZlbnRzIEQ6YjY0OTdlMmE4YjE1fG1zY2dlbl0geGFwaT0+eGFwaSBbbGFiZWw9ImV2ZW50LmZy
b20iXTsNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0
fDQzODUgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0YXNrIGRpc3Bh
dGNoOmV2ZW50LmZyb20gRDpiMTBkZGMyYjU3OTYgY3JlYXRlZCBieSB0YXNrIEQ6YjY0OTdlMmE4
YjE1DQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0
MzAzIElORVQgOjo6ODB8Vk0uaW1wb3J0IChjbGVhbnVwKSBSOjA5ZGQ5Yzc2ODQ1MHxtc2NnZW5d
IHhhcGk9PnhhcGkgW2xhYmVsPSJWTS5kZXN0cm95Il07DQo+IERlYyAzMCAwNjo1MTozOCBnNnhl
bnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0Mzg2IFVOSVggL3Zhci9saWIveGNwL3hhcGl8
fGR1bW15dGFza2hlbHBlcl0gdGFzayBkaXNwYXRjaDpWTS5kZXN0cm95IEQ6NDZiNjlkODFhNTZm
IGNyZWF0ZWQgYnkgdGFzayBSOjA5ZGQ5Yzc2ODQ1MA0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50
ZXN0IHhhcGk6IFsgaW5mb3xnNnhlbnRlc3R8NDM4NiBVTklYIC92YXIvbGliL3hjcC94YXBpfGRp
c3BhdGNoOlZNLmRlc3Ryb3kgRDo0NmI2OWQ4MWE1NmZ8dGFza2hlbHBlcl0gdGFzayBWTS5kZXN0
cm95IFI6NDM1NzdjNDJkZDA5ICh1dWlkOmEwYjgwYmJhLTI0OWEtNDQzOS04NDI0LTE5NjVlZmIx
OTQ1OSkgY3JlYXRlZCAodHJhY2tpZD1lZjNjZDQ3NDVmMWI0M2I3N2E5OWFjZmUzYWZiYWU4Zikg
YnkgdGFzayBSOjA5ZGQ5Yzc2ODQ1MA0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6
IFtkZWJ1Z3xnNnhlbnRlc3R8NDM4NiBVTklYIC92YXIvbGliL3hjcC94YXBpfFZNLmRlc3Ryb3kg
Ujo0MzU3N2M0MmRkMDl8YXVkaXRdIFZNLmRlc3Ryb3k6IFZNID0gJzNiMTZjMmU3LTA4ZTctM2Mw
Zi00NTJkLTQ1OGMzYTAwODY4NSAoWE9BIDMuNiBCYXNpYyknDQo+IERlYyAzMCAwNjo1MTozOCBn
NnhlbnRlc3QgeGNwLXJyZGQ6IFtkZWJ1Z3xnNnhlbnRlc3R8MTMyNSB1bml4X3JwY3x8aHR0cF0g
UmVxdWVzdCB7IGZyYW1lID0gZmFsc2U7IG1ldGhvZCA9IFBPU1Q7IHVyaSA9IC92YXIvbGliL3hj
cC94Y3AtcnJkZDsgcXVlcnkgPSBbICBdOyBjb250ZW50X2xlbmd0aCA9IFsgMjY2IF07IHRyYW5z
ZmVyIGVuY29kaW5nID0gOyB2ZXJzaW9uID0gMS4xOyBjb29raWUgPSBbID0gXTsgdGFzayA9IDsg
c3VidGFza19vZiA9IDsgY29udGVudC10eXBlID0gOyBob3N0ID0gOyB1c2VyX2FnZW50ID0gL3Vz
ci9zYmluL3hhcGkgfQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xn
NnhlbnRlc3R8NDM4NiBVTklYIC92YXIvbGliL3hjcC94YXBpfFZNLmRlc3Ryb3kgUjo0MzU3N2M0
MmRkMDl8eGFwaV0gVk0uZGVzdHJveTogZGVsZXRpbmcgREIgcmVjb3Jkcw0KPiBEZWMgMzAgMDY6
NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM4NiBVTklYIC92YXIvbGli
L3hjcC94YXBpfFZNLmRlc3Ryb3kgUjo0MzU3N2M0MmRkMDl8eGFwaV0gUmFpc2VkIGF0IGZpbGUg
XCJkYl9jYWNoZV90eXBlcy5tbFwiLCBsaW5lIDEwNywgY2hhcmFjdGVycyAyNy02OVxuQ2FsbGVk
IGZyb20gZmlsZSBcImRiX2NhY2hlX2ltcGwubWxcIiwgbGluZSAyNDAsIGNoYXJhY3RlcnMgMTEt
NDRcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNo
YXJhY3RlcnMgMi05XG4NCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbMjAxNDEy
MzBUMDU6NTE6MzguNzE4WnxhdWRpdHxnNnhlbnRlc3R8NDM4NiBVTklYIC92YXIvbGliL3hjcC94
YXBpfFZNLmRlc3Ryb3kgUjo0MzU3N2M0MmRkMDl8YXVkaXRdICgndHJhY2tpZD1lZjNjZDQ3NDVm
MWI0M2I3N2E5OWFjZmUzYWZiYWU4ZicgJ0xPQ0FMX1NVUEVSVVNFUicgJ09wYXF1ZVJlZjpiYzAw
MWQ1Ny02NWNlLThiMmItNzRiNC1jZDcxOTc2MjcyYzAnICdBTExPV0VEJyAnT0snICdBUEknICdW
TS5kZXN0cm95JyAoKCdzZWxmJyAnWE9BIDMuNiBCYXNpYycgJzNiMTZjMmU3LTA4ZTctM2MwZi00
NTJkLTQ1OGMzYTAwODY4NScgJ09wYXF1ZVJlZjplYzM3ZWQ4Ny1lN2M3LWY2N2EtZTBhZS04YmE3
MDc5ZjRmODQnKSkpDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2
eGVudGVzdHw0MzAzIElORVQgOjo6ODB8Vk0uaW1wb3J0IChjbGVhbnVwKSBSOjA5ZGQ5Yzc2ODQ1
MHxtc2NnZW5dIHhhcGk9PnhhcGkgW2xhYmVsPSJWREkuZGVzdHJveSJdOw0KPiBEZWMgMzAgMDY6
NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM4NyBVTklYIC92YXIvbGli
L3hjcC94YXBpfHxkdW1teXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6VkRJLmRlc3Ryb3kgRDo1
Mzk1ZDdlMjlkODQgY3JlYXRlZCBieSB0YXNrIFI6MDlkZDljNzY4NDUwDQo+IERlYyAzMCAwNjo1
MTozOCBnNnhlbnRlc3QgeGFwaTogWyBpbmZvfGc2eGVudGVzdHw0Mzg3IFVOSVggL3Zhci9saWIv
eGNwL3hhcGl8ZGlzcGF0Y2g6VkRJLmRlc3Ryb3kgRDo1Mzk1ZDdlMjlkODR8dGFza2hlbHBlcl0g
dGFzayBWREkuZGVzdHJveSBSOmViNzNiYTkxNzA4MCAodXVpZDoyNmJhODhmYS0yOGYwLWYyMmUt
ZTQxOC1hZTQ2MDExNWM0YWYpIGNyZWF0ZWQgKHRyYWNraWQ9ZWYzY2Q0NzQ1ZjFiNDNiNzdhOTlh
Y2ZlM2FmYmFlOGYpIGJ5IHRhc2sgUjowOWRkOWM3Njg0NTANCj4gRGVjIDMwIDA2OjUxOjM4IGc2
eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzODcgVU5JWCAvdmFyL2xpYi94Y3AveGFw
aXxWREkuZGVzdHJveSBSOmViNzNiYTkxNzA4MHxhdWRpdF0gVkRJLmRlc3Ryb3k6IFZESSA9ICdj
YWUzMGU5Yi1lYmQ0LTQ0NTAtOGNlMC05ZjQwMzVjYTYyZjEnDQo+IERlYyAzMCAwNjo1MTozOCBn
NnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0Mzg3IFVOSVggL3Zhci9saWIveGNwL3hh
cGl8VkRJLmRlc3Ryb3kgUjplYjczYmE5MTcwODB8eGFwaV0gTWFya2luZyBTUiBmb3IgVkRJLmRl
c3Ryb3kgKHRhc2s9T3BhcXVlUmVmOmViNzNiYTkxLTcwODAtZGM3NC04ZWMxLWJlY2EwMTQ2YmYw
ZCkNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbIGluZm98ZzZ4ZW50ZXN0fDQz
ODcgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWREkuZGVzdHJveSBSOmViNzNiYTkxNzA4MHxzdG9y
YWdlX2ltcGxdIFZESS5kZXN0cm95IGRiZzpPcGFxdWVSZWY6ZWI3M2JhOTEtNzA4MC1kYzc0LThl
YzEtYmVjYTAxNDZiZjBkIHNyOjc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWExNiB2
ZGk6Y2FlMzBlOWItZWJkNC00NDUwLThjZTAtOWY0MDM1Y2E2MmYxDQo+IERlYyAzMCAwNjo1MToz
OCBnNnhlbnRlc3QgeGFwaTogWyBpbmZvfGc2eGVudGVzdHw0Mzg3IFVOSVggL3Zhci9saWIveGNw
L3hhcGl8VkRJLmRlc3Ryb3kgUjplYjczYmE5MTcwODB8c3RvcmFnZV9pbXBsXSBBdHRlbXB0aW5n
IHRvIGRlc3Ryb3kgZGF0YXBhdGggZHA6dmJkLzAveHZkYSBzcjo3ODdiMDg3NC04ZThiLWU3ZDgt
OGJhOS03NGY1NWZmMmVhMTYgdmRpOmNhZTMwZTliLWViZDQtNDQ1MC04Y2UwLTlmNDAzNWNhNjJm
MQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM4
OHx8ZHVtbXl0YXNraGVscGVyXSB0YXNrIFZESS5kZXRhY2ggRDoxMzYzODY2MzY3MDEgY3JlYXRl
ZCBieSB0YXNrIFI6ZWI3M2JhOTE3MDgwDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFw
aTogW2RlYnVnfGc2eGVudGVzdHw0Mzg4fFZESS5kZXRhY2ggRDoxMzYzODY2MzY3MDF8c21dIFNN
IG5mcyB2ZGlfZGV0YWNoIHNyPU9wYXF1ZVJlZjo1MjEyMzFkNi1kZjNiLTc5MGItMWUyMi1iMzQ0
YTgzZDlkMzkgdmRpPU9wYXF1ZVJlZjowYjEzMmNhNi1iOGU3LWMxMWYtNmZmZi1kZWMwODQzMmNh
ZmUNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbIGluZm98ZzZ4ZW50ZXN0fDQz
ODh8c21fZXhlYyBEOjg0MThjMmU3MmNjN3x4YXBpXSBTZXNzaW9uLmNyZWF0ZSB0cmFja2lkPTFk
ODJjY2YwYTY2MTk0MzAwOThhNTM3MjczNzFmODU1IHBvb2w9ZmFsc2UgdW5hbWU9IG9yaWdpbmF0
b3I9IGlzX2xvY2FsX3N1cGVydXNlcj10cnVlIGF1dGhfdXNlcl9zaWQ9IHBhcmVudD10cmFja2lk
PTk4MzRmNWFmNDFjOTY0ZTIyNWYyNDI3OWFlZmU0ZTQ5DQo+IERlYyAzMCAwNjo1MTozOCBnNnhl
bnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0Mzg4fHNtX2V4ZWMgRDo4NDE4YzJlNzJjYzd8
bXNjZ2VuXSB4YXBpPT54YXBpIFtsYWJlbD0ic2Vzc2lvbi5nZXRfdXVpZCJdOw0KPiBEZWMgMzAg
MDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM4OSBVTklYIC92YXIv
bGliL3hjcC94YXBpfHxkdW1teXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6c2Vzc2lvbi5nZXRf
dXVpZCBEOmU2Y2FmY2VmMWQ2MSBjcmVhdGVkIGJ5IHRhc2sgRDo4NDE4YzJlNzJjYzcNCj4gRGVj
IDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzODh8c21fZXhl
YyBEOjg0MThjMmU3MmNjN3xtc2NnZW5dIHNtYXBpdjI9PnNtYXBpdjEgW2xhYmVsPSJ2ZGlfZGV0
YWNoIl07DQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVz
dHw0MzkwIFVOSVggL3Zhci9saWIveGNwL3hhcGl8fGR1bW15dGFza2hlbHBlcl0gdGFzayBkaXNw
YXRjaDpob3N0LmdldF9vdGhlcl9jb25maWcgRDozM2IwYjc2MzZkYzkgY3JlYXRlZCBieSB0YXNr
IEQ6MTM2Mzg2NjM2NzAxDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVn
fGc2eGVudGVzdHw0MzkxIFVOSVggL3Zhci9saWIveGNwL3hhcGl8fGR1bW15dGFza2hlbHBlcl0g
dGFzayBkaXNwYXRjaDpTUi5nZXRfc21fY29uZmlnIEQ6ZDVmMWM2ZGYzMmViIGNyZWF0ZWQgYnkg
dGFzayBEOjEzNjM4NjYzNjcwMQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTMy
Ml0gbG9jazogYWNxdWlyZWQgL3Zhci9sb2NrL3NtLzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0
ZjU1ZmYyZWExNi9zcg0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTMyMl0gWycv
dXNyL3NiaW4vdGQtdXRpbCcsICdxdWVyeScsICd2aGQnLCAnLXZwZicsICcvdmFyL3J1bi9zci1t
b3VudC83ODdiMDg3NC04ZThiLWU3ZDgtOGJhOS03NGY1NWZmMmVhMTYvY2FlMzBlOWItZWJkNC00
NDUwLThjZTAtOWY0MDM1Y2E2MmYxLnZoZCddDQo+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3Qg
U006IFs1MzIyXSAgIHByZWFkIFNVQ0NFU1MNCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBT
TTogWzUzMjJdIHZkaV9kZXRhY2ggeydzcl91dWlkJzogJzc4N2IwODc0LThlOGItZTdkOC04YmE5
LTc0ZjU1ZmYyZWExNicsICdzdWJ0YXNrX29mJzogJ0R1bW15UmVmOnwxMzYzODY2My02NzAxLTEw
OTEtNTdkMS1jYmE2ODMwNGVmNmF8VkRJLmRldGFjaCcsICd2ZGlfcmVmJzogJ09wYXF1ZVJlZjow
YjEzMmNhNi1iOGU3LWMxMWYtNmZmZi1kZWMwODQzMmNhZmUnLCAndmRpX29uX2Jvb3QnOiAncGVy
c2lzdCcsICdhcmdzJzogW10sICd2ZGlfbG9jYXRpb24nOiAnY2FlMzBlOWItZWJkNC00NDUwLThj
ZTAtOWY0MDM1Y2E2MmYxJywgJ2hvc3RfcmVmJzogJ09wYXF1ZVJlZjpiYzAwMWQ1Ny02NWNlLThi
MmItNzRiNC1jZDcxOTc2MjcyYzAnLCAnc2Vzc2lvbl9yZWYnOiAnT3BhcXVlUmVmOjhmNmZkNWVk
LTliODgtMGVjZC1kMGRjLTI2NTJlYmU1NDk2OScsICdkZXZpY2VfY29uZmlnJzogeydTUm1hc3Rl
cic6ICd0cnVlJywgJ3NlcnZlcnBhdGgnOiAnL21udC96Ymlvcm5pay90ZXN0dm9sLycsICdzZXJ2
ZXInOiAnMTI3LjAuMC4xJ30sICdjb21tYW5kJzogJ3ZkaV9kZXRhY2gnLCAndmRpX2FsbG93X2Nh
Y2hpbmcnOiAnZmFsc2UnLCAnc3JfcmVmJzogJ09wYXF1ZVJlZjo1MjEyMzFkNi1kZjNiLTc5MGIt
MWUyMi1iMzQ0YTgzZDlkMzknLCAndmRpX3V1aWQnOiAnY2FlMzBlOWItZWJkNC00NDUwLThjZTAt
OWY0MDM1Y2E2MmYxJ30NCj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUzMjJdIGxv
Y2s6IGNsb3NlZCAvdmFyL2xvY2svc20vY2FlMzBlOWItZWJkNC00NDUwLThjZTAtOWY0MDM1Y2E2
MmYxL3ZkaQ0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTMyMl0gbG9jazogcmVs
ZWFzZWQgL3Zhci9sb2NrL3NtLzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWExNi9z
cg0KPiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTMyMl0gbG9jazogY2xvc2VkIC92
YXIvbG9jay9zbS83ODdiMDg3NC04ZThiLWU3ZDgtOGJhOS03NGY1NWZmMmVhMTYvc3INCj4gRGVj
IDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbIGluZm98ZzZ4ZW50ZXN0fDQzODh8c21fZXhl
YyBEOjg0MThjMmU3MmNjN3x4YXBpXSBTZXNzaW9uLmRlc3Ryb3kgdHJhY2tpZD0xZDgyY2NmMGE2
NjE5NDMwMDk4YTUzNzI3MzcxZjg1NQ0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6
IFtkZWJ1Z3xnNnhlbnRlc3R8NDM4NyBVTklYIC92YXIvbGliL3hjcC94YXBpfFZESS5kZXN0cm95
IFI6ZWI3M2JhOTE3MDgwfHN0b3JhZ2VfaW1wbF0gZGJnOk9wYXF1ZVJlZjplYjczYmE5MS03MDgw
LWRjNzQtOGVjMS1iZWNhMDE0NmJmMGQgZHA6dmJkLzAveHZkYSBzcjo3ODdiMDg3NC04ZThiLWU3
ZDgtOGJhOS03NGY1NWZmMmVhMTYgdmRpOmNhZTMwZTliLWViZDQtNDQ1MC04Y2UwLTlmNDAzNWNh
NjJmMSBzdXBlcnN0YXRlOmRldGFjaGVkDQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFw
aTogW2RlYnVnfGc2eGVudGVzdHw0MzkyfHxkdW1teXRhc2toZWxwZXJdIHRhc2sgVkRJLmRlc3Ry
b3kgRDoxMWZkYTFhMTUyMmEgY3JlYXRlZCBieSB0YXNrIFI6ZWI3M2JhOTE3MDgwDQo+IERlYyAz
MCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzkyfFZESS5kZXN0
cm95IEQ6MTFmZGExYTE1MjJhfHNtXSBTTSBuZnMgdmRpX2RlbGV0ZSBzcj1PcGFxdWVSZWY6NTIx
MjMxZDYtZGYzYi03OTBiLTFlMjItYjM0NGE4M2Q5ZDM5IHZkaT1PcGFxdWVSZWY6MGIxMzJjYTYt
YjhlNy1jMTFmLTZmZmYtZGVjMDg0MzJjYWZlDQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3Qg
eGFwaTogWyBpbmZvfGc2eGVudGVzdHw0MzkyfHNtX2V4ZWMgRDo0YmE5M2RhNzg2MzV8eGFwaV0g
U2Vzc2lvbi5jcmVhdGUgdHJhY2tpZD03YmNlODg5MmI2Zjg0ZjJmZTdkZmJjZTUzMjQ2OGFiZiBw
b29sPWZhbHNlIHVuYW1lPSBvcmlnaW5hdG9yPSBpc19sb2NhbF9zdXBlcnVzZXI9dHJ1ZSBhdXRo
X3VzZXJfc2lkPSBwYXJlbnQ9dHJhY2tpZD05ODM0ZjVhZjQxYzk2NGUyMjVmMjQyNzlhZWZlNGU0
OQ0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM5
MnxzbV9leGVjIEQ6NGJhOTNkYTc4NjM1fG1zY2dlbl0geGFwaT0+eGFwaSBbbGFiZWw9InNlc3Np
b24uZ2V0X3V1aWQiXTsNCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8
ZzZ4ZW50ZXN0fDQzOTMgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0
YXNrIGRpc3BhdGNoOnNlc3Npb24uZ2V0X3V1aWQgRDozYWRkMWE4NjRjMTEgY3JlYXRlZCBieSB0
YXNrIEQ6NGJhOTNkYTc4NjM1DQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2Rl
YnVnfGc2eGVudGVzdHw0MzkyfHNtX2V4ZWMgRDo0YmE5M2RhNzg2MzV8bXNjZ2VuXSBzbWFwaXYy
PT5zbWFwaXYxIFtsYWJlbD0idmRpX2RlbGV0ZSJdOw0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50
ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM5NCBVTklYIC92YXIvbGliL3hjcC94YXBpfHxk
dW1teXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6aG9zdC5nZXRfb3RoZXJfY29uZmlnIEQ6NjI0
MmQzZWE1MWRiIGNyZWF0ZWQgYnkgdGFzayBEOjExZmRhMWExNTIyYQ0KPiBEZWMgMzAgMDY6NTE6
MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM5NSBVTklYIC92YXIvbGliL3hj
cC94YXBpfHxkdW1teXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6U1IuZ2V0X3NtX2NvbmZpZyBE
OmEyNzFiZjNlOGFiNiBjcmVhdGVkIGJ5IHRhc2sgRDoxMWZkYTFhMTUyMmENCj4gRGVjIDMwIDA2
OjUxOjM5IGc2eGVudGVzdCBTTTogWzUzMzBdIGxvY2s6IGFjcXVpcmVkIC92YXIvbG9jay9zbS83
ODdiMDg3NC04ZThiLWU3ZDgtOGJhOS03NGY1NWZmMmVhMTYvc3INCj4gRGVjIDMwIDA2OjUxOjM5
IGc2eGVudGVzdCBTTTogWzUzMzBdIFsnL3Vzci9zYmluL3RkLXV0aWwnLCAncXVlcnknLCAndmhk
JywgJy12cGYnLCAnL3Zhci9ydW4vc3ItbW91bnQvNzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRm
NTVmZjJlYTE2L2NhZTMwZTliLWViZDQtNDQ1MC04Y2UwLTlmNDAzNWNhNjJmMS52aGQnXQ0KPiBE
ZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNNOiBbNTMzMF0gICBwcmVhZCBTVUNDRVNTDQo+IERl
YyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgU006IFs1MzMwXSB2ZGlfZGVsZXRlIHsnc3JfdXVpZCc6
ICc3ODdiMDg3NC04ZThiLWU3ZDgtOGJhOS03NGY1NWZmMmVhMTYnLCAnc3VidGFza19vZic6ICdE
dW1teVJlZjp8MTFmZGExYTEtNTIyYS01YzJlLWZjY2MtYzRiNGEzYTYwNjAwfFZESS5kZXN0cm95
JywgJ3ZkaV9yZWYnOiAnT3BhcXVlUmVmOjBiMTMyY2E2LWI4ZTctYzExZi02ZmZmLWRlYzA4NDMy
Y2FmZScsICd2ZGlfb25fYm9vdCc6ICdwZXJzaXN0JywgJ2FyZ3MnOiBbXSwgJ3ZkaV9sb2NhdGlv
bic6ICdjYWUzMGU5Yi1lYmQ0LTQ0NTAtOGNlMC05ZjQwMzVjYTYyZjEnLCAnaG9zdF9yZWYnOiAn
T3BhcXVlUmVmOmJjMDAxZDU3LTY1Y2UtOGIyYi03NGI0LWNkNzE5NzYyNzJjMCcsICdzZXNzaW9u
X3JlZic6ICdPcGFxdWVSZWY6M2ExNWNlOTctMDMxNi1mMDRlLWU5M2YtYTc3MjZmNTYzZTUxJywg
J2RldmljZV9jb25maWcnOiB7J1NSbWFzdGVyJzogJ3RydWUnLCAnc2VydmVycGF0aCc6ICcvbW50
L3piaW9ybmlrL3Rlc3R2b2wvJywgJ3NlcnZlcic6ICcxMjcuMC4wLjEnfSwgJ2NvbW1hbmQnOiAn
dmRpX2RlbGV0ZScsICd2ZGlfYWxsb3dfY2FjaGluZyc6ICdmYWxzZScsICdzcl9yZWYnOiAnT3Bh
cXVlUmVmOjUyMTIzMWQ2LWRmM2ItNzkwYi0xZTIyLWIzNDRhODNkOWQzOScsICd2ZGlfdXVpZCc6
ICdjYWUzMGU5Yi1lYmQ0LTQ0NTAtOGNlMC05ZjQwMzVjYTYyZjEnfQ0KPiBEZWMgMzAgMDY6NTE6
MzkgZzZ4ZW50ZXN0IFNNOiBbNTMzMF0gWycvdXNyL2Jpbi92aGQtdXRpbCcsICdzZXQnLCAnLS1k
ZWJ1ZycsICctbicsICcvdmFyL3J1bi9zci1tb3VudC83ODdiMDg3NC04ZThiLWU3ZDgtOGJhOS03
NGY1NWZmMmVhMTYvY2FlMzBlOWItZWJkNC00NDUwLThjZTAtOWY0MDM1Y2E2MmYxLnZoZCcsICct
ZicsICdoaWRkZW4nLCAnLXYnLCAnMSddDQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgU006
IFs1MzMwXSAgIHByZWFkIFNVQ0NFU1MNCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBp
OiBbZGVidWd8ZzZ4ZW50ZXN0fDQzOTYgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNr
aGVscGVyXSB0YXNrIGRpc3BhdGNoOlZESS5nZXRfYnlfdXVpZCBEOjU1OWY3MDdhMTgzNSBjcmVh
dGVkIGJ5IHRhc2sgRDoxMWZkYTFhMTUyMmENCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4
YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzOTcgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0
YXNraGVscGVyXSB0YXNrIGRpc3BhdGNoOlZESS5kYl9mb3JnZXQgRDo3Mjk0ZmNiMjc0ZWYgY3Jl
YXRlZCBieSB0YXNrIEQ6MTFmZGExYTE1MjJhDQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3Qg
eGFwaTogWyBpbmZvfGc2eGVudGVzdHw0Mzk3IFVOSVggL3Zhci9saWIveGNwL3hhcGl8ZGlzcGF0
Y2g6VkRJLmRiX2ZvcmdldCBEOjcyOTRmY2IyNzRlZnx0YXNraGVscGVyXSB0YXNrIFZESS5kYl9m
b3JnZXQgUjo3MjE1NTIwNTRjYzggKHV1aWQ6YjIwMjM3NGEtMTQ4Yy01ZDNhLWY4MTYtMjZjZWU1
MDExODMwKSBjcmVhdGVkICh0cmFja2lkPTdiY2U4ODkyYjZmODRmMmZlN2RmYmNlNTMyNDY4YWJm
KSBieSB0YXNrIEQ6MTFmZGExYTE1MjJhDQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFw
aTogW2RlYnVnfGc2eGVudGVzdHw0Mzk3IFVOSVggL3Zhci9saWIveGNwL3hhcGl8VkRJLmRiX2Zv
cmdldCBSOjcyMTU1MjA1NGNjOHx4YXBpXSBkYl9mb3JnZXQgdXVpZD1jYWUzMGU5Yi1lYmQ0LTQ0
NTAtOGNlMC05ZjQwMzVjYTYyZjENCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBb
MjAxNDEyMzBUMDU6NTE6MzkuMzA3WnxhdWRpdHxnNnhlbnRlc3R8NDM5NyBVTklYIC92YXIvbGli
L3hjcC94YXBpfFZESS5kYl9mb3JnZXQgUjo3MjE1NTIwNTRjYzh8YXVkaXRdICgndHJhY2tpZD03
YmNlODg5MmI2Zjg0ZjJmZTdkZmJjZTUzMjQ2OGFiZicgJ0xPQ0FMX1NVUEVSVVNFUicgJ19fc21f
X2JhY2tlbmQnICdBTExPV0VEJyAnT0snICdBUEknICdWREkuZGJfZm9yZ2V0JyAoKCd2ZGknICcn
ICcnICdPcGFxdWVSZWY6MGIxMzJjYTYtYjhlNy1jMTFmLTZmZmYtZGVjMDg0MzJjYWZlJykpKQ0K
PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM5OCBV
TklYIC92YXIvbGliL3hjcC94YXBpfHxkdW1teXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6U1Iu
Z2V0X3ZpcnR1YWxfYWxsb2NhdGlvbiBEOjBhNjNjNjEwNmZjOSBjcmVhdGVkIGJ5IHRhc2sgRDox
MWZkYTFhMTUyMmENCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4
ZW50ZXN0fDQzOTkgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0YXNr
IGRpc3BhdGNoOlNSLmdldF9ieV91dWlkIEQ6NzI1NGM0OGE2YjAwIGNyZWF0ZWQgYnkgdGFzayBE
OjExZmRhMWExNTIyYQ0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xn
NnhlbnRlc3R8NDQwMCBVTklYIC92YXIvbGliL3hjcC94YXBpfHxkdW1teXRhc2toZWxwZXJdIHRh
c2sgZGlzcGF0Y2g6U1Iuc2V0X3ZpcnR1YWxfYWxsb2NhdGlvbiBEOjFlNzhlMmZlYTNkYyBjcmVh
dGVkIGJ5IHRhc2sgRDoxMWZkYTFhMTUyMmENCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4
YXBpOiBbMjAxNDEyMzBUMDU6NTE6MzkuMzQxWnxhdWRpdHxnNnhlbnRlc3R8NDQwMCBVTklYIC92
YXIvbGliL3hjcC94YXBpfFNSLnNldF92aXJ0dWFsX2FsbG9jYXRpb24gRDplZjMxZWMwMDhjNDV8
YXVkaXRdICgndHJhY2tpZD03YmNlODg5MmI2Zjg0ZjJmZTdkZmJjZTUzMjQ2OGFiZicgJ0xPQ0FM
X1NVUEVSVVNFUicgJ19fc21fX2JhY2tlbmQnICdBTExPV0VEJyAnT0snICdBUEknICdTUi5zZXRf
dmlydHVhbF9hbGxvY2F0aW9uJyAoKCdzZWxmJyAnbG9jYWwgbmZzJyAnNzg3YjA4NzQtOGU4Yi1l
N2Q4LThiYTktNzRmNTVmZjJlYTE2JyAnT3BhcXVlUmVmOjUyMTIzMWQ2LWRmM2ItNzkwYi0xZTIy
LWIzNDRhODNkOWQzOScpKSkNCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVi
dWd8ZzZ4ZW50ZXN0fDQ0MDEgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVy
XSB0YXNrIGRpc3BhdGNoOlNSLnNldF9waHlzaWNhbF9zaXplIEQ6ZWViNDJjZmE5YWViIGNyZWF0
ZWQgYnkgdGFzayBEOjExZmRhMWExNTIyYQ0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhh
cGk6IFsyMDE0MTIzMFQwNTo1MTozOS4zNDVafGF1ZGl0fGc2eGVudGVzdHw0NDAxIFVOSVggL3Zh
ci9saWIveGNwL3hhcGl8U1Iuc2V0X3BoeXNpY2FsX3NpemUgRDpiNTgzNDhmNTM2N2F8YXVkaXRd
ICgndHJhY2tpZD03YmNlODg5MmI2Zjg0ZjJmZTdkZmJjZTUzMjQ2OGFiZicgJ0xPQ0FMX1NVUEVS
VVNFUicgJ19fc21fX2JhY2tlbmQnICdBTExPV0VEJyAnT0snICdBUEknICdTUi5zZXRfcGh5c2lj
YWxfc2l6ZScgKCgnc2VsZicgJ2xvY2FsIG5mcycgJzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0
ZjU1ZmYyZWExNicgJ09wYXF1ZVJlZjo1MjEyMzFkNi1kZjNiLTc5MGItMWUyMi1iMzQ0YTgzZDlk
MzknKSkpDQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVz
dHw0NDAyIFVOSVggL3Zhci9saWIveGNwL3hhcGl8fGR1bW15dGFza2hlbHBlcl0gdGFzayBkaXNw
YXRjaDpTUi5zZXRfcGh5c2ljYWxfdXRpbGlzYXRpb24gRDpjNTBhZTQwNGU5NTcgY3JlYXRlZCBi
eSB0YXNrIEQ6MTFmZGExYTE1MjJhDQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTog
WzIwMTQxMjMwVDA1OjUxOjM5LjM0OVp8YXVkaXR8ZzZ4ZW50ZXN0fDQ0MDIgVU5JWCAvdmFyL2xp
Yi94Y3AveGFwaXxTUi5zZXRfcGh5c2ljYWxfdXRpbGlzYXRpb24gRDpmOTAxNWRlMjAzMDF8YXVk
aXRdICgndHJhY2tpZD03YmNlODg5MmI2Zjg0ZjJmZTdkZmJjZTUzMjQ2OGFiZicgJ0xPQ0FMX1NV
UEVSVVNFUicgJ19fc21fX2JhY2tlbmQnICdBTExPV0VEJyAnT0snICdBUEknICdTUi5zZXRfcGh5
c2ljYWxfdXRpbGlzYXRpb24nICgoJ3NlbGYnICdsb2NhbCBuZnMnICc3ODdiMDg3NC04ZThiLWU3
ZDgtOGJhOS03NGY1NWZmMmVhMTYnICdPcGFxdWVSZWY6NTIxMjMxZDYtZGYzYi03OTBiLTFlMjIt
YjM0NGE4M2Q5ZDM5JykpKQ0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNNOiBbNTMzMF0g
bG9jazogdHJpZWQgbG9jayAvdmFyL2xvY2svc20vNzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRm
NTVmZjJlYTE2L3J1bm5pbmcsIGFjcXVpcmVkOiBUcnVlIChleGlzdHM6IFRydWUpDQo+IERlYyAz
MCAwNjo1MTozOSBnNnhlbnRlc3QgU006IFs1MzMwXSBsb2NrOiByZWxlYXNlZCAvdmFyL2xvY2sv
c20vNzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2L3J1bm5pbmcNCj4gRGVjIDMw
IDA2OjUxOjM5IGc2eGVudGVzdCBTTTogWzUzMzBdIEtpY2tpbmcgR0MNCj4gRGVjIDMwIDA2OjUx
OjM5IGc2eGVudGVzdCBTTUdDOiBbNTMzMF0gPT09IFNSIDc4N2IwODc0LThlOGItZTdkOC04YmE5
LTc0ZjU1ZmYyZWExNjogZ2MgPT09DQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgU01HQzog
WzUzNDJdIFdpbGwgZmluaXNoIGFzIFBJRCBbNTM0M10NCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVu
dGVzdCBTTUdDOiBbNTMzMF0gTmV3IFBJRCBbNTM0Ml0NCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVu
dGVzdCBTTTogWzUzMzBdIGxvY2s6IGNsb3NlZCAvdmFyL2xvY2svc20vNzg3YjA4NzQtOGU4Yi1l
N2Q4LThiYTktNzRmNTVmZjJlYTE2L3J1bm5pbmcNCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVz
dCBTTTogWzUzMzBdIGxvY2s6IHJlbGVhc2VkIC92YXIvbG9jay9zbS83ODdiMDg3NC04ZThiLWU3
ZDgtOGJhOS03NGY1NWZmMmVhMTYvc3INCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCBTTTog
WzUzMzBdIGxvY2s6IGNsb3NlZCAvdmFyL2xvY2svc20vNzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTkt
NzRmNTVmZjJlYTE2L3NyDQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogWyBpbmZv
fGc2eGVudGVzdHw0NDAzIFVOSVggL3Zhci9saWIveGNwL3hhcGl8c2Vzc2lvbi5sb2dpbl93aXRo
X3Bhc3N3b3JkIEQ6MDQ0Zjk5Y2NjZjk2fHhhcGldIFNlc3Npb24uY3JlYXRlIHRyYWNraWQ9ODc1
YzNlNjAxYTA0MmRiMjcxNGY5ZmI4M2FmOWZjZDcgcG9vbD1mYWxzZSB1bmFtZT1yb290IG9yaWdp
bmF0b3I9IGlzX2xvY2FsX3N1cGVydXNlcj10cnVlIGF1dGhfdXNlcl9zaWQ9IHBhcmVudD10cmFj
a2lkPTk4MzRmNWFmNDFjOTY0ZTIyNWYyNDI3OWFlZmU0ZTQ5DQo+IERlYyAzMCAwNjo1MTozOSBn
NnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0NDAzIFVOSVggL3Zhci9saWIveGNwL3hh
cGl8c2Vzc2lvbi5sb2dpbl93aXRoX3Bhc3N3b3JkIEQ6MDQ0Zjk5Y2NjZjk2fG1zY2dlbl0geGFw
aT0+eGFwaSBbbGFiZWw9InNlc3Npb24uZ2V0X3V1aWQiXTsNCj4gRGVjIDMwIDA2OjUxOjM5IGc2
eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQ0MDQgVU5JWCAvdmFyL2xpYi94Y3AveGFw
aXx8ZHVtbXl0YXNraGVscGVyXSB0YXNrIGRpc3BhdGNoOnNlc3Npb24uZ2V0X3V1aWQgRDphOGRh
ODFkNDI1ZTggY3JlYXRlZCBieSB0YXNrIEQ6MDQ0Zjk5Y2NjZjk2DQo+IERlYyAzMCAwNjo1MToz
OSBnNnhlbnRlc3QgU01HQzogWzUzNDNdIEZvdW5kIDAgY2FjaGUgZmlsZXMNCj4gRGVjIDMwIDA2
OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbIGluZm98ZzZ4ZW50ZXN0fDQzOTJ8c21fZXhlYyBEOjRi
YTkzZGE3ODYzNXx4YXBpXSBTZXNzaW9uLmRlc3Ryb3kgdHJhY2tpZD03YmNlODg5MmI2Zjg0ZjJm
ZTdkZmJjZTUzMjQ2OGFiZg0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1
Z3xnNnhlbnRlc3R8NDM4NyBVTklYIC92YXIvbGliL3hjcC94YXBpfFZESS5kZXN0cm95IFI6ZWI3
M2JhOTE3MDgwfHhhcGldIFVubWFya2luZyBTUiBhZnRlciBWREkuZGVzdHJveSAodGFzaz1PcGFx
dWVSZWY6ZWI3M2JhOTEtNzA4MC1kYzc0LThlYzEtYmVjYTAxNDZiZjBkKQ0KPiBEZWMgMzAgMDY6
NTE6MzkgZzZ4ZW50ZXN0IFNNOiBbNTM0M10gbG9jazogdHJpZWQgbG9jayAvdmFyL2xvY2svc20v
Nzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2L3NyLCBhY3F1aXJlZDogVHJ1ZSAo
ZXhpc3RzOiBUcnVlKQ0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFsyMDE0MTIz
MFQwNTo1MTozOS40NTdafGF1ZGl0fGc2eGVudGVzdHw0Mzg3IFVOSVggL3Zhci9saWIveGNwL3hh
cGl8VkRJLmRlc3Ryb3kgUjplYjczYmE5MTcwODB8YXVkaXRdICgndHJhY2tpZD1lZjNjZDQ3NDVm
MWI0M2I3N2E5OWFjZmUzYWZiYWU4ZicgJ0xPQ0FMX1NVUEVSVVNFUicgJ09wYXF1ZVJlZjpiYzAw
MWQ1Ny02NWNlLThiMmItNzRiNC1jZDcxOTc2MjcyYzAnICdBTExPV0VEJyAnT0snICdBUEknICdW
REkuZGVzdHJveScgKCgnc2VsZicgJ1hPQSBTeXN0ZW0nICdjYWUzMGU5Yi1lYmQ0LTQ0NTAtOGNl
MC05ZjQwMzVjYTYyZjEnICdPcGFxdWVSZWY6MGIxMzJjYTYtYjhlNy1jMTFmLTZmZmYtZGVjMDg0
MzJjYWZlJykpKQ0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNNOiBbNTM0M10gWycvdXNy
L2Jpbi92aGQtdXRpbCcsICdzY2FuJywgJy1mJywgJy1jJywgJy1tJywgJy92YXIvcnVuL3NyLW1v
dW50Lzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWExNi8qLnZoZCddDQo+IERlYyAz
MCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzAzIElORVQgOjo6
ODB8Vk0uaW1wb3J0IChjbGVhbnVwKSBSOjA5ZGQ5Yzc2ODQ1MHxtc2NnZW5dIHhhcGk9PnhhcGkg
W2xhYmVsPSJzZXNzaW9uLmxvZ291dCJdOw0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhh
cGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDQxNSBVTklYIC92YXIvbGliL3hjcC94YXBpfHxkdW1teXRh
c2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6c2Vzc2lvbi5sb2dvdXQgRDplZDE1YTg0NjgzM2UgY3Jl
YXRlZCBieSB0YXNrIFI6MDlkZDljNzY4NDUwDQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3Qg
eGFwaTogWyBpbmZvfGc2eGVudGVzdHw0NDE1IFVOSVggL3Zhci9saWIveGNwL3hhcGl8c2Vzc2lv
bi5sb2dvdXQgRDoyOTQ0NDliZTBhNTh8eGFwaV0gU2Vzc2lvbi5kZXN0cm95IHRyYWNraWQ9ZWYz
Y2Q0NzQ1ZjFiNDNiNzdhOTlhY2ZlM2FmYmFlOGYNCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVz
dCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMDMgSU5FVCA6Ojo4MHxWTSBpbXBvcnQgUjpkYmRi
MGVlNWFlMTZ8eGFwaV0gUmFpc2VkIGF0IGZpbGUgXCJpbXBvcnQubWxcIiwgbGluZSAxNTI1LCBj
aGFyYWN0ZXJzIDIwLTIxXG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwi
LCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuDQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3Qg
eGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzAzIElORVQgOjo6ODB8Vk0gaW1wb3J0IFI6ZGJkYjBl
ZTVhZTE2fGltcG9ydF0gQ2xvc2luZyBwaXBlcw0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0
IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwNnx8eGFwaV0gUmFpc2VkIGJ5IHByaW1pdGl2ZSBv
cGVyYXRpb24gYXQgZmlsZSBcInVuaXgubWxcIiwgbGluZSAyNTIsIGNoYXJhY3RlcnMgNy0zNFxu
Q2FsbGVkIGZyb20gZmlsZSBcImxpYi91bml4ZXh0Lm1sXCIsIGxpbmUgMjIyLCBjaGFyYWN0ZXJz
IDEzLTM0XG5DYWxsZWQgZnJvbSBmaWxlIFwiaW1wb3J0Lm1sXCIsIGxpbmUgMTI3MywgY2hhcmFj
dGVycyAxMi01M1xuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGlu
ZSAyMiwgY2hhcmFjdGVycyAyLTlcbg0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IGZvcmtl
eGVjZDogW2Vycm9yfGc2eGVudGVzdHwwfHxmb3JrZXhlY2RdIDUyMTcgKC9iaW4vbmljZSAtbiAx
OSAvdXNyL2Jpbi9pb25pY2UgLWMgMyAvYmluL2d6aXAgLS1kZWNvbXByZXNzIC0tc3Rkb3V0IC0t
Zm9yY2UpIGV4aXR0ZWQgd2l0aCBjb2RlIDENCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4
YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMDZ8fHhhcGldIFJhaXNlZCBhdCBmaWxlIFwicGVydmFz
aXZlcy5tbFwiLCBsaW5lIDIwLCBjaGFyYWN0ZXJzIDIyLTMzXG5DYWxsZWQgZnJvbSBmaWxlIFwi
bGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFyYWN0ZXJzIDQtMTRcbkNhbGxlZCBm
cm9tIGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMgMi05
XG4NCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQz
MDZ8fHhhcGldIFJhaXNlZCBhdCBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDI2
LCBjaGFyYWN0ZXJzIDIyLTI1XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5t
bFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuDQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRl
c3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzAzIElORVQgOjo6ODB8Vk0gaW1wb3J0IFI6ZGJk
YjBlZTVhZTE2fGJhY2t0cmFjZV0gUmFpc2VkIGF0IGZpbGUgXCJpbXBvcnQubWxcIiwgbGluZSAx
NTI1LCBjaGFyYWN0ZXJzIDIwLTIxXG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4
dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuUmUtcmFpc2VkIGF0IGZpbGUgXCJsaWIv
cGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxlZCBmcm9t
IGZpbGUgXCJpbXBvcnQubWxcIiwgbGluZSAxNDU5LCBjaGFyYWN0ZXJzIDktMTAyM1xuUmUtcmFp
c2VkIGF0IGZpbGUgXCJpbXBvcnQubWxcIiwgbGluZSAxNTU0LCBjaGFyYWN0ZXJzIDE0LTE1XG5D
YWxsZWQgZnJvbSBmaWxlIFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGluZSA3MiwgY2hhcmFjdGVy
cyAxMS0yM1xuDQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVu
dGVzdHw0MzAzIElORVQgOjo6ODB8Vk0gaW1wb3J0IFI6ZGJkYjBlZTVhZTE2fGRpc3BhdGNoZXJd
IFNlcnZlcl9oZWxwZXJzLmV4ZWMgZXhjZXB0aW9uX2hhbmRsZXI6IEdvdCBleGNlcHRpb24gU1Jf
QkFDS0VORF9GQUlMVVJFOiBbIG5vbi16ZXJvIGV4aXQ7IDsgVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOiMwMTIgIEZpbGUgIi9vcHQveGVuc291cmNlL3NtL05GU1NSIiwgbGluZSAy
NzgsIGluIDxtb2R1bGU+IzAxMiBTUkNvbW1hbmQucnVuKE5GU1NSLCBEUklWRVJfSU5GTykjMDEy
ICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMzQ0LCBpbiBydW4j
MDEyICAgIHJldCA9IGNtZC5ydW4oc3IpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNv
bW1hbmQucHkiLCBsaW5lIDExMCwgaW4gcnVuIzAxMiAgICByZXR1cm4gc2VsZi5fcnVuX2xvY2tl
ZChzcikjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMTU5
LCBpbiBfcnVuX2xvY2tlZCMwMTIgICAgcnYgPSBzZWxmLl9ydW4oc3IsIHRhcmdldCkjMDEyICBG
aWxlICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMjYzLCBpbiBfcnVuIzAx
MiAgICB3cml0YWJsZSwgY2FjaGluZ19wYXJhbXMpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9z
bS9ibGt0YXAyLnB5IiwgbGluZSAxNDg2LCBpbiBhY3RpdmF0ZSMwMTIgICAgaWYgc2VsZi5fYWN0
aXZhdGVfbG9ja2VkKHNyX3V1aWQsIHZkaV91dWlkLCBvcHRpb25zKTojMDEyICBGaWxlICIvdXNy
L2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDgzLCBpbiB3cmFwcGVyIzAxMiAgICByZXQg
PSBvcChzZWxmLCAqYXJncykjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHki
LCBsaW5lIDE1MjIsIGluIF9hY3RpdmF0ZV9sb2NrZWQjMDEyICAgIGRldl9wYXRoID0gc2VsZi5f
YWN0aXZhdGUoc3JfdXVpZCwgdmRpX3V1aWQsIG9wdGlvbnMpIzAxMiAgRmlsZSAiL3Vzci9saWIv
eGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNTYwLCBpbiBfYWN0aXZhdGUjMDEyIHNlbGYuX2dl
dF9wb29sX2NvbmZpZyhzcl91dWlkKS5nZXQoIm1lbS1wb29sLXNpemUiKSkjMDEyICBGaWxlICIv
dXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDEyNDMsIGluIF90YXBfYWN0aXZhdGUj
MDEyIHRhcGRpc2sgPSBUYXBkaXNrLmZpbmRfYnlfcGF0aChwaHlfcGF0aCkjMDEyICBGaWxlICIv
dXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDY5MCwgaW4gZmluZF9ieV9wYXRoIzAx
MiByZXR1cm4gY2xzLmZpbmQocGF0aD1wYXRoKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20v
YmxrdGFwMi5weSIsIGxpbmUgNjc4LCBpbiBmaW5kIzAxMiAgICBmb3VuZCA9IGxpc3QoY2xzLmxp
c3QoKiphcmdzKSkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5l
IDY1MywgaW4gbGlzdCMwMTIgICAgZm9yIHJvdyBpbiBUYXBDdGwubGlzdCgqKmFyZ3MpOiMwMTIg
IEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTE4LCBpbiBsb29wIzAx
MiAgICByZXR1cm4gZigqX190LCAqKl9fZCkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Js
a3RhcDIucHkiLCBsaW5lIDM0OCwgaW4gbGlzdCMwMTIgICAgaWYgZS5zdGF0dXMgaW4gdHJhbnNp
ZW50OiMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTYyLCBp
biBfX2dldGF0dHJfXyMwMTIgICAgcmV0dXJuIG9iamVjdC5fX2dldGF0dHJpYnV0ZV9fKHNlbGYs
IGtleSkjMDEyQXR0cmlidXRlRXJyb3I6ICdDb21tYW5kRmFpbHVyZScgb2JqZWN0IGhhcyBubyBh
dHRyaWJ1dGUgJ3N0YXR1cycjMDEyIF0NCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBp
OiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMDMgSU5FVCA6Ojo4MHxWTSBpbXBvcnQgUjpkYmRiMGVlNWFl
MTZ8ZGlzcGF0Y2hlcl0gUmFpc2VkIGF0IGZpbGUgXCJpbXBvcnQubWxcIiwgbGluZSAxNTI1LCBj
aGFyYWN0ZXJzIDIwLTIxXG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwi
LCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuUmUtcmFpc2VkIGF0IGZpbGUgXCJsaWIvcGVydmFz
aXZlZXh0Lm1sXCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxlZCBmcm9tIGZpbGUg
XCJpbXBvcnQubWxcIiwgbGluZSAxNDU5LCBjaGFyYWN0ZXJzIDktMTAyM1xuUmUtcmFpc2VkIGF0
IGZpbGUgXCJpbXBvcnQubWxcIiwgbGluZSAxNTU0LCBjaGFyYWN0ZXJzIDE0LTE1XG5DYWxsZWQg
ZnJvbSBmaWxlIFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGluZSA3MiwgY2hhcmFjdGVycyAxMS0y
M1xuDQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0
MzAzIElORVQgOjo6ODB8Vk0gaW1wb3J0IFI6ZGJkYjBlZTVhZTE2fGJhY2t0cmFjZV0gUmFpc2Vk
IGF0IGZpbGUgXCJpbXBvcnQubWxcIiwgbGluZSAxNTI1LCBjaGFyYWN0ZXJzIDIwLTIxXG5DYWxs
ZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJz
IDItOVxuUmUtcmFpc2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjYs
IGNoYXJhY3RlcnMgMjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJpbXBvcnQubWxcIiwgbGluZSAx
NDU5LCBjaGFyYWN0ZXJzIDktMTAyM1xuUmUtcmFpc2VkIGF0IGZpbGUgXCJpbXBvcnQubWxcIiwg
bGluZSAxNTU0LCBjaGFyYWN0ZXJzIDE0LTE1XG5DYWxsZWQgZnJvbSBmaWxlIFwic2VydmVyX2hl
bHBlcnMubWxcIiwgbGluZSA3MiwgY2hhcmFjdGVycyAxMS0yM1xuDQo+IERlYyAzMCAwNjo1MToz
OSBnNnhlbnRlc3QgU006IFs1MzQzXSAgIHByZWFkIFNVQ0NFU1MNCj4gRGVjIDMwIDA2OjUxOjM5
IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMDMgSU5FVCA6Ojo4MHxWTSBpbXBv
cnQgUjpkYmRiMGVlNWFlMTZ8eGFwaV0gUmFpc2VkIGF0IGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5t
bFwiLCBsaW5lIDkwLCBjaGFyYWN0ZXJzIDE0LTE1XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3Bl
cnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuDQo+IERlYyAzMCAwNjo1
MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzAzIElORVQgOjo6ODB8Vk0g
aW1wb3J0IFI6ZGJkYjBlZTVhZTE2fHRhc2toZWxwZXJdIGZvcndhcmRlZCB0YXNrIGRlc3Ryb3ll
ZA0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMw
MyBJTkVUIDo6OjgwfFZNLmltcG9ydCBEOmFhMGEyOGZlYmYwNnx4YXBpXSBSYWlzZWQgYXQgZmls
ZSBcInNlcnZlcl9oZWxwZXJzLm1sXCIsIGxpbmUgOTAsIGNoYXJhY3RlcnMgMTQtMTVcbkNhbGxl
ZCBmcm9tIGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMg
Mi05XG5SZS1yYWlzZWQgYXQgZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyNiwg
Y2hhcmFjdGVycyAyMi0yNVxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9kZWJ1Zy5tbFwiLCBsaW5l
IDU3LCBjaGFyYWN0ZXJzIDE3LTIwXG5SZS1yYWlzZWQgYXQgZmlsZSBcImxpYi9kZWJ1Zy5tbFwi
LCBsaW5lIDYyLCBjaGFyYWN0ZXJzIDEwLTExXG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZh
c2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuDQo+IERlYyAzMCAwNjo1MToz
OSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzAzIElORVQgOjo6ODB8Vk0uaW1w
b3J0IEQ6YWEwYTI4ZmViZjA2fHhhcGldIFJhaXNlZCBhdCBmaWxlIFwic2VydmVyX2hlbHBlcnMu
bWxcIiwgbGluZSA5MCwgY2hhcmFjdGVycyAxNC0xNVxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9w
ZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFjdGVycyAyLTlcblJlLXJhaXNlZCBhdCBm
aWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFyYWN0ZXJzIDIyLTI1XG5D
YWxsZWQgZnJvbSBmaWxlIFwibGliL2RlYnVnLm1sXCIsIGxpbmUgNTcsIGNoYXJhY3RlcnMgMTct
MjBcblJlLXJhaXNlZCBhdCBmaWxlIFwibGliL2RlYnVnLm1sXCIsIGxpbmUgNjIsIGNoYXJhY3Rl
cnMgMTAtMTFcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUg
MjIsIGNoYXJhY3RlcnMgMi05XG5SZS1yYWlzZWQgYXQgZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQu
bWxcIiwgbGluZSAyNiwgY2hhcmFjdGVycyAyMi0yNVxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9w
ZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFjdGVycyAyLTlcbg0KPiBEZWMgMzAgMDY6
NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMyBJTkVUIDo6OjgwfFZN
LmltcG9ydCBEOmFhMGEyOGZlYmYwNnx4YXBpXSBSYWlzZWQgYXQgZmlsZSBcInNlcnZlcl9oZWxw
ZXJzLm1sXCIsIGxpbmUgOTAsIGNoYXJhY3RlcnMgMTQtMTVcbkNhbGxlZCBmcm9tIGZpbGUgXCJs
aWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMgMi05XG5SZS1yYWlzZWQg
YXQgZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyNiwgY2hhcmFjdGVycyAyMi0y
NVxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9kZWJ1Zy5tbFwiLCBsaW5lIDU3LCBjaGFyYWN0ZXJz
IDE3LTIwXG5SZS1yYWlzZWQgYXQgZmlsZSBcImxpYi9kZWJ1Zy5tbFwiLCBsaW5lIDYyLCBjaGFy
YWN0ZXJzIDEwLTExXG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBs
aW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuUmUtcmFpc2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZl
ZXh0Lm1sXCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJs
aWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMgMi05XG5SZS1yYWlzZWQg
YXQgZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyNiwgY2hhcmFjdGVycyAyMi0y
NVxuQ2FsbGVkIGZyb20gZmlsZSBcInhhcGlfaHR0cC5tbFwiLCBsaW5lIDE5MywgY2hhcmFjdGVy
cyA0LTgxMFxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAy
MiwgY2hhcmFjdGVycyAyLTlcbg0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtk
ZWJ1Z3xnNnhlbnRlc3R8NDMwMyBJTkVUIDo6OjgwfFZNLmltcG9ydCBEOmFhMGEyOGZlYmYwNnxt
c2NnZW5dIHhhcGk9PnhhcGkgW2xhYmVsPSJzZXNzaW9uLmxvZ291dCJdOw0KPiBEZWMgMzAgMDY6
NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFsyMDE0MTIzMFQwNTo1MTozOS42MTVafGF1ZGl0fGc2eGVu
dGVzdHw0MzAwIFVOSVggL3Zhci9saWIveGNwL3hhcGl8ZXZlbnQudW5yZWdpc3RlciBEOjJiZmM5
OTVmYzQ5M3xhdWRpdF0gKCd0cmFja2lkPTA5YTlmNTgyMDU3YWQyNzgxNmU0M2E0ZDNjMThiZjFi
JyAnTE9DQUxfU1VQRVJVU0VSJyAncm9vdCcgJ0FMTE9XRUQnICdPSycgJ0FQSScgJ2V2ZW50LnVu
cmVnaXN0ZXInICgpKQ0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xn
NnhlbnRlc3R8NDQxNiBVTklYIC92YXIvbGliL3hjcC94YXBpfHxkdW1teXRhc2toZWxwZXJdIHRh
c2sgZGlzcGF0Y2g6c2Vzc2lvbi5sb2dvdXQgRDpiNjc2YzUyMjdmODcgY3JlYXRlZCBieSB0YXNr
IEQ6YWEwYTI4ZmViZjA2DQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogWyBpbmZv
fGc2eGVudGVzdHw0NDE2IFVOSVggL3Zhci9saWIveGNwL3hhcGl8c2Vzc2lvbi5sb2dvdXQgRDox
ZGM3YTI5YThjZGR8eGFwaV0gU2Vzc2lvbi5kZXN0cm95IHRyYWNraWQ9Y2ExZTBlMDJmMWM2Zjlm
Y2M5ODAzNjhlNzEwZDhjOGINCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVi
dWd8ZzZ4ZW50ZXN0fDQzMDMgSU5FVCA6Ojo4MHxWTS5pbXBvcnQgRDphYTBhMjhmZWJmMDZ8YmFj
a3RyYWNlXSBSYWlzZWQgYXQgZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyNiwg
Y2hhcmFjdGVycyAyMi0yNVxuQ2FsbGVkIGZyb20gZmlsZSBcImltcG9ydC5tbFwiLCBsaW5lIDEz
ODcsIGNoYXJhY3RlcnMgMjAtMTAyM1xuQ2FsbGVkIGZyb20gZmlsZSBcInNlcnZlcl9oZWxwZXJz
Lm1sXCIsIGxpbmUgNzIsIGNoYXJhY3RlcnMgMTEtMjNcbg0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4
ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMyBJTkVUIDo6OjgwfFZNLmltcG9ydCBE
OmFhMGEyOGZlYmYwNnxkaXNwYXRjaGVyXSBTZXJ2ZXJfaGVscGVycy5leGVjIGV4Y2VwdGlvbl9o
YW5kbGVyOiBHb3QgZXhjZXB0aW9uIFNSX0JBQ0tFTkRfRkFJTFVSRTogWyBub24temVybyBleGl0
OyA7IFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KTojMDEyICBGaWxlICIvb3B0L3hl
bnNvdXJjZS9zbS9ORlNTUiIsIGxpbmUgMjc4LCBpbiA8bW9kdWxlPiMwMTIgU1JDb21tYW5kLnJ1
bihORlNTUiwgRFJJVkVSX0lORk8pIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1h
bmQucHkiLCBsaW5lIDM0NCwgaW4gcnVuIzAxMiAgICByZXQgPSBjbWQucnVuKHNyKSMwMTIgIEZp
bGUgIi91c3IvbGliL3hhcGkvc20vU1JDb21tYW5kLnB5IiwgbGluZSAxMTAsIGluIHJ1biMwMTIg
ICAgcmV0dXJuIHNlbGYuX3J1bl9sb2NrZWQoc3IpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9z
bS9TUkNvbW1hbmQucHkiLCBsaW5lIDE1OSwgaW4gX3J1bl9sb2NrZWQjMDEyICAgIHJ2ID0gc2Vs
Zi5fcnVuKHNyLCB0YXJnZXQpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1hbmQu
cHkiLCBsaW5lIDI2MywgaW4gX3J1biMwMTIgICAgd3JpdGFibGUsIGNhY2hpbmdfcGFyYW1zKSMw
MTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTQ4NiwgaW4gYWN0
aXZhdGUjMDEyICAgIGlmIHNlbGYuX2FjdGl2YXRlX2xvY2tlZChzcl91dWlkLCB2ZGlfdXVpZCwg
b3B0aW9ucyk6IzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA4
MywgaW4gd3JhcHBlciMwMTIgICAgcmV0ID0gb3Aoc2VsZiwgKmFyZ3MpIzAxMiAgRmlsZSAiL3Vz
ci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNTIyLCBpbiBfYWN0aXZhdGVfbG9ja2Vk
IzAxMiAgICBkZXZfcGF0aCA9IHNlbGYuX2FjdGl2YXRlKHNyX3V1aWQsIHZkaV91dWlkLCBvcHRp
b25zKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTU2MCwg
aW4gX2FjdGl2YXRlIzAxMiBzZWxmLl9nZXRfcG9vbF9jb25maWcoc3JfdXVpZCkuZ2V0KCJtZW0t
cG9vbC1zaXplIikpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGlu
ZSAxMjQzLCBpbiBfdGFwX2FjdGl2YXRlIzAxMiB0YXBkaXNrID0gVGFwZGlzay5maW5kX2J5X3Bh
dGgocGh5X3BhdGgpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGlu
ZSA2OTAsIGluIGZpbmRfYnlfcGF0aCMwMTIgcmV0dXJuIGNscy5maW5kKHBhdGg9cGF0aCkjMDEy
ICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDY3OCwgaW4gZmluZCMw
MTIgICAgZm91bmQgPSBsaXN0KGNscy5saXN0KCoqYXJncykpIzAxMiAgRmlsZSAiL3Vzci9saWIv
eGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA2NTMsIGluIGxpc3QjMDEyICAgIGZvciByb3cgaW4g
VGFwQ3RsLmxpc3QoKiphcmdzKTojMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIu
cHkiLCBsaW5lIDExOCwgaW4gbG9vcCMwMTIgICAgcmV0dXJuIGYoKl9fdCwgKipfX2QpIzAxMiAg
RmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAzNDgsIGluIGxpc3QjMDEy
ICAgIGlmIGUuc3RhdHVzIGluIHRyYW5zaWVudDojMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3Nt
L2Jsa3RhcDIucHkiLCBsaW5lIDE2MiwgaW4gX19nZXRhdHRyX18jMDEyICAgIHJldHVybiBvYmpl
Y3QuX19nZXRhdHRyaWJ1dGVfXyhzZWxmLCBrZXkpIzAxMkF0dHJpYnV0ZUVycm9yOiAnQ29tbWFu
ZEZhaWx1cmUnIG9iamVjdCBoYXMgbm8gYXR0cmlidXRlICdzdGF0dXMnIzAxMiBdDQo+IERlYyAz
MCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzAzIElORVQgOjo6
ODB8Vk0uaW1wb3J0IEQ6YWEwYTI4ZmViZjA2fGRpc3BhdGNoZXJdIFJhaXNlZCBhdCBmaWxlIFwi
bGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFyYWN0ZXJzIDIyLTI1XG5DYWxsZWQg
ZnJvbSBmaWxlIFwiaW1wb3J0Lm1sXCIsIGxpbmUgMTM4NywgY2hhcmFjdGVycyAyMC0xMDIzXG5D
YWxsZWQgZnJvbSBmaWxlIFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGluZSA3MiwgY2hhcmFjdGVy
cyAxMS0yM1xuDQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVu
dGVzdHw0MzAzIElORVQgOjo6ODB8Vk0uaW1wb3J0IEQ6YWEwYTI4ZmViZjA2fGJhY2t0cmFjZV0g
UmFpc2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjYsIGNoYXJhY3Rl
cnMgMjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJpbXBvcnQubWxcIiwgbGluZSAxMzg3LCBjaGFy
YWN0ZXJzIDIwLTEwMjNcbkNhbGxlZCBmcm9tIGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBs
aW5lIDcyLCBjaGFyYWN0ZXJzIDExLTIzXG4NCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4
YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMDMgSU5FVCA6Ojo4MHxWTS5pbXBvcnQgRDphYTBhMjhm
ZWJmMDZ8eGFwaV0gUmFpc2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUg
MjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJpbXBvcnQubWxcIiwgbGlu
ZSAxMzg3LCBjaGFyYWN0ZXJzIDIwLTEwMjNcbkNhbGxlZCBmcm9tIGZpbGUgXCJzZXJ2ZXJfaGVs
cGVycy5tbFwiLCBsaW5lIDcyLCBjaGFyYWN0ZXJzIDExLTIzXG5SZS1yYWlzZWQgYXQgZmlsZSBc
InNlcnZlcl9oZWxwZXJzLm1sXCIsIGxpbmUgOTAsIGNoYXJhY3RlcnMgMTQtMTVcbkNhbGxlZCBm
cm9tIGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMgMi05
XG4NCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQz
MDMgSU5FVCA6Ojo4MHx8eGFwaV0gUmFpc2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1s
XCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJpbXBvcnQu
bWxcIiwgbGluZSAxMzg3LCBjaGFyYWN0ZXJzIDIwLTEwMjNcbkNhbGxlZCBmcm9tIGZpbGUgXCJz
ZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDcyLCBjaGFyYWN0ZXJzIDExLTIzXG5SZS1yYWlzZWQg
YXQgZmlsZSBcInNlcnZlcl9oZWxwZXJzLm1sXCIsIGxpbmUgOTAsIGNoYXJhY3RlcnMgMTQtMTVc
bkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJh
Y3RlcnMgMi05XG5SZS1yYWlzZWQgYXQgZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGlu
ZSAyNiwgY2hhcmFjdGVycyAyMi0yNVxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9kZWJ1Zy5tbFwi
LCBsaW5lIDU3LCBjaGFyYWN0ZXJzIDE3LTIwXG5SZS1yYWlzZWQgYXQgZmlsZSBcImxpYi9kZWJ1
Zy5tbFwiLCBsaW5lIDYyLCBjaGFyYWN0ZXJzIDEwLTExXG5DYWxsZWQgZnJvbSBmaWxlIFwibGli
L3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuDQo+IERlYyAzMCAw
Njo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2Vycm9yfGc2eGVudGVzdHw0MzAzIElORVQgOjo6ODB8
fHhhcGldIFVuaGFuZGxlZCBBcGlfZXJyb3JzLlNlcnZlcl9lcnJvcihTUl9CQUNLRU5EX0ZBSUxV
UkUsIFsgbm9uLXplcm8gZXhpdDsgOyBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
IzAxMiAgRmlsZSAiL29wdC94ZW5zb3VyY2Uvc20vTkZTU1IiLCBsaW5lIDI3OCwgaW4gPG1vZHVs
ZT4jMDEyIFNSQ29tbWFuZC5ydW4oTkZTU1IsIERSSVZFUl9JTkZPKSMwMTIgIEZpbGUgIi91c3Iv
bGliL3hhcGkvc20vU1JDb21tYW5kLnB5IiwgbGluZSAzNDQsIGluIHJ1biMwMTIgICAgcmV0ID0g
Y21kLnJ1bihzcikjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxp
bmUgMTEwLCBpbiBydW4jMDEyICAgIHJldHVybiBzZWxmLl9ydW5fbG9ja2VkKHNyKSMwMTIgIEZp
bGUgIi91c3IvbGliL3hhcGkvc20vU1JDb21tYW5kLnB5IiwgbGluZSAxNTksIGluIF9ydW5fbG9j
a2VkIzAxMiAgICBydiA9IHNlbGYuX3J1bihzciwgdGFyZ2V0KSMwMTIgIEZpbGUgIi91c3IvbGli
L3hhcGkvc20vU1JDb21tYW5kLnB5IiwgbGluZSAyNjMsIGluIF9ydW4jMDEyICAgIHdyaXRhYmxl
LCBjYWNoaW5nX3BhcmFtcykjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHki
LCBsaW5lIDE0ODYsIGluIGFjdGl2YXRlIzAxMiAgICBpZiBzZWxmLl9hY3RpdmF0ZV9sb2NrZWQo
c3JfdXVpZCwgdmRpX3V1aWQsIG9wdGlvbnMpOiMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20v
YmxrdGFwMi5weSIsIGxpbmUgODMsIGluIHdyYXBwZXIjMDEyICAgIHJldCA9IG9wKHNlbGYsICph
cmdzKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTUyMiwg
aW4gX2FjdGl2YXRlX2xvY2tlZCMwMTIgICAgZGV2X3BhdGggPSBzZWxmLl9hY3RpdmF0ZShzcl91
dWlkLCB2ZGlfdXVpZCwgb3B0aW9ucykjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3Rh
cDIucHkiLCBsaW5lIDE1NjAsIGluIF9hY3RpdmF0ZSMwMTIgc2VsZi5fZ2V0X3Bvb2xfY29uZmln
KHNyX3V1aWQpLmdldCgibWVtLXBvb2wtc2l6ZSIpKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkv
c20vYmxrdGFwMi5weSIsIGxpbmUgMTI0MywgaW4gX3RhcF9hY3RpdmF0ZSMwMTIgdGFwZGlzayA9
IFRhcGRpc2suZmluZF9ieV9wYXRoKHBoeV9wYXRoKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkv
c20vYmxrdGFwMi5weSIsIGxpbmUgNjkwLCBpbiBmaW5kX2J5X3BhdGgjMDEyIHJldHVybiBjbHMu
ZmluZChwYXRoPXBhdGgpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5Iiwg
bGluZSA2NzgsIGluIGZpbmQjMDEyICAgIGZvdW5kID0gbGlzdChjbHMubGlzdCgqKmFyZ3MpKSMw
MTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgNjUzLCBpbiBsaXN0
IzAxMiAgICBmb3Igcm93IGluIFRhcEN0bC5saXN0KCoqYXJncyk6IzAxMiAgRmlsZSAiL3Vzci9s
aWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxMTgsIGluIGxvb3AjMDEyICAgIHJldHVybiBm
KCpfX3QsICoqX19kKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxp
bmUgMzQ4LCBpbiBsaXN0IzAxMiAgICBpZiBlLnN0YXR1cyBpbiB0cmFuc2llbnQ6IzAxMiAgRmls
ZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNjIsIGluIF9fZ2V0YXR0cl9f
IzAxMiAgICByZXR1cm4gb2JqZWN0Ll9fZ2V0YXR0cmlidXRlX18oc2VsZiwga2V5KSMwMTJBdHRy
aWJ1dGVFcnJvcjogJ0NvbW1hbmRGYWlsdXJlJyBvYmplY3QgaGFzIG5vIGF0dHJpYnV0ZSAnc3Rh
dHVzJyMwMTIgXSkNCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4
ZW50ZXN0fDQzMDMgSU5FVCA6Ojo4MHx8YmFja3RyYWNlXSBSYWlzZWQgYXQgZmlsZSBcImxpYi9w
ZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyNiwgY2hhcmFjdGVycyAyMi0yNVxuQ2FsbGVkIGZyb20g
ZmlsZSBcImltcG9ydC5tbFwiLCBsaW5lIDEzODcsIGNoYXJhY3RlcnMgMjAtMTAyM1xuQ2FsbGVk
IGZyb20gZmlsZSBcInNlcnZlcl9oZWxwZXJzLm1sXCIsIGxpbmUgNzIsIGNoYXJhY3RlcnMgMTEt
MjNcblJlLXJhaXNlZCBhdCBmaWxlIFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGluZSA5MCwgY2hh
cmFjdGVycyAxNC0xNVxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwg
bGluZSAyMiwgY2hhcmFjdGVycyAyLTlcblJlLXJhaXNlZCBhdCBmaWxlIFwibGliL3BlcnZhc2l2
ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFyYWN0ZXJzIDIyLTI1XG5DYWxsZWQgZnJvbSBmaWxlIFwi
bGliL2RlYnVnLm1sXCIsIGxpbmUgNTcsIGNoYXJhY3RlcnMgMTctMjBcblJlLXJhaXNlZCBhdCBm
aWxlIFwibGliL2RlYnVnLm1sXCIsIGxpbmUgNjIsIGNoYXJhY3RlcnMgMTAtMTFcbkNhbGxlZCBm
cm9tIGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMgMi05
XG5SZS1yYWlzZWQgYXQgZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyNiwgY2hh
cmFjdGVycyAyMi0yNVxuQ2FsbGVkIGZyb20gZmlsZSBcInhhcGlfaHR0cC5tbFwiLCBsaW5lIDI5
NSwgY2hhcmFjdGVycyA0LTI3XG4NCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCBTTUdDOiBb
NTM0M10gU1IgNzg3YiAoJ2xvY2FsIG5mcycpICgxIFZESXMgaW4gMSBWSEQgdHJlZXMpOg0KPiBE
ZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNNR0M6IFs1MzQzXSAqY2FlMzBlOWIoOC4wMDBHLzE5
LjAwMEspDQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgU01HQzogWzUzNDNdDQo+IERlYyAz
MCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzAwIFVOSVggL3Zh
ci9saWIveGNwL3hhcGl8fGNsaV0gY2xpZW50LXNpZGUgcmVwb3J0cyBmYWlsdXJlDQo+IERlYyAz
MCAwNjo1MTozOSBnNnhlbnRlc3QgU006IFs1MzQzXSBsb2NrOiByZWxlYXNlZCAvdmFyL2xvY2sv
c20vNzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2L3NyDQo+IERlYyAzMCAwNjo1
MTozOSBnNnhlbnRlc3QgU006IFs1MzQzXSBsb2NrOiB0cmllZCBsb2NrIC92YXIvbG9jay9zbS83
ODdiMDg3NC04ZThiLWU3ZDgtOGJhOS03NGY1NWZmMmVhMTYvcnVubmluZywgYWNxdWlyZWQ6IFRy
dWUgKGV4aXN0czogVHJ1ZSkNCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCBTTTogWzUzNDNd
IGxvY2s6IHRyaWVkIGxvY2sgL3Zhci9sb2NrL3NtLzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0
ZjU1ZmYyZWExNi9zciwgYWNxdWlyZWQ6IFRydWUgKGV4aXN0czogVHJ1ZSkNCj4gRGVjIDMwIDA2
OjUxOjM5IGc2eGVudGVzdCBTTTogWzUzNDNdIFsnL3Vzci9iaW4vdmhkLXV0aWwnLCAnc2Nhbics
ICctZicsICctYycsICctbScsICcvdmFyL3J1bi9zci1tb3VudC83ODdiMDg3NC04ZThiLWU3ZDgt
OGJhOS03NGY1NWZmMmVhMTYvKi52aGQnXQ0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNN
OiBbNTM0M10gICBwcmVhZCBTVUNDRVNTDQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgU01H
QzogWzUzNDNdIFNSIDc4N2IgKCdsb2NhbCBuZnMnKSAoMSBWRElzIGluIDEgVkhEIHRyZWVzKTog
bm8gY2hhbmdlcw0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNNOiBbNTM0M10gbG9jazog
cmVsZWFzZWQgL3Zhci9sb2NrL3NtLzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWEx
Ni9zcg0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNNR0M6IFs1MzQzXSBGb3VuZCAxIFZE
SXMgZm9yIGRlbGV0aW9uOg0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNNR0M6IFs1MzQz
XSAgICpjYWUzMGU5Yig4LjAwMEcvMTkuMDAwSykNCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVz
dCBTTUdDOiBbNTM0M10gRGVsZXRpbmcgdW5saW5rZWQgVkRJICpjYWUzMGU5Yig4LjAwMEcvMTku
MDAwSykNCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCBTTTogWzUzNDNdIGxvY2s6IHRyaWVk
IGxvY2sgL3Zhci9sb2NrL3NtLzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWExNi9z
ciwgYWNxdWlyZWQ6IFRydWUgKGV4aXN0czogVHJ1ZSkNCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVu
dGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQ0MjEgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxW
REkuZ2V0X2J5X3V1aWQgRDplNTQwMmM3ODMzNmN8YmFja3RyYWNlXSBSYWlzZWQgYXQgZmlsZSBc
ImRiX2NhY2hlX2ltcGwubWxcIiwgbGluZSAxOTgsIGNoYXJhY3RlcnMgMTYtNTVcbkNhbGxlZCBm
cm9tIGZpbGUgXCJkYl9hY3Rpb25zLm1sXCIsIGxpbmUgMTMzMzAsIGNoYXJhY3RlcnMgMjctNjFc
bkNhbGxlZCBmcm9tIGZpbGUgXCJyYmFjLm1sXCIsIGxpbmUgMjI3LCBjaGFyYWN0ZXJzIDE2LTIz
XG5SZS1yYWlzZWQgYXQgZmlsZSBcInJiYWMubWxcIiwgbGluZSAyMzYsIGNoYXJhY3RlcnMgMTAt
MTVcbkNhbGxlZCBmcm9tIGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDcyLCBjaGFy
YWN0ZXJzIDExLTIzXG4NCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8
ZzZ4ZW50ZXN0fDQ0MjEgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWREkuZ2V0X2J5X3V1aWQgRDpl
NTQwMmM3ODMzNmN8ZGlzcGF0Y2hlcl0gU2VydmVyX2hlbHBlcnMuZXhlYyBleGNlcHRpb25faGFu
ZGxlcjogR290IGV4Y2VwdGlvbiBVVUlEX0lOVkFMSUQ6IFsgVkRJOyBjYWUzMGU5Yi1lYmQ0LTQ0
NTAtOGNlMC05ZjQwMzVjYTYyZjEgXQ0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6
IFtkZWJ1Z3xnNnhlbnRlc3R8NDQyMSBVTklYIC92YXIvbGliL3hjcC94YXBpfFZESS5nZXRfYnlf
dXVpZCBEOmU1NDAyYzc4MzM2Y3xkaXNwYXRjaGVyXSBSYWlzZWQgYXQgZmlsZSBcImRiX2NhY2hl
X2ltcGwubWxcIiwgbGluZSAxOTgsIGNoYXJhY3RlcnMgMTYtNTVcbkNhbGxlZCBmcm9tIGZpbGUg
XCJkYl9hY3Rpb25zLm1sXCIsIGxpbmUgMTMzMzAsIGNoYXJhY3RlcnMgMjctNjFcbkNhbGxlZCBm
cm9tIGZpbGUgXCJyYmFjLm1sXCIsIGxpbmUgMjI3LCBjaGFyYWN0ZXJzIDE2LTIzXG5SZS1yYWlz
ZWQgYXQgZmlsZSBcInJiYWMubWxcIiwgbGluZSAyMzYsIGNoYXJhY3RlcnMgMTAtMTVcbkNhbGxl
ZCBmcm9tIGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDcyLCBjaGFyYWN0ZXJzIDEx
LTIzXG4NCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0
fDQ0MjEgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWREkuZ2V0X2J5X3V1aWQgRDplNTQwMmM3ODMz
NmN8YmFja3RyYWNlXSBSYWlzZWQgYXQgZmlsZSBcImRiX2NhY2hlX2ltcGwubWxcIiwgbGluZSAx
OTgsIGNoYXJhY3RlcnMgMTYtNTVcbkNhbGxlZCBmcm9tIGZpbGUgXCJkYl9hY3Rpb25zLm1sXCIs
IGxpbmUgMTMzMzAsIGNoYXJhY3RlcnMgMjctNjFcbkNhbGxlZCBmcm9tIGZpbGUgXCJyYmFjLm1s
XCIsIGxpbmUgMjI3LCBjaGFyYWN0ZXJzIDE2LTIzXG5SZS1yYWlzZWQgYXQgZmlsZSBcInJiYWMu
bWxcIiwgbGluZSAyMzYsIGNoYXJhY3RlcnMgMTAtMTVcbkNhbGxlZCBmcm9tIGZpbGUgXCJzZXJ2
ZXJfaGVscGVycy5tbFwiLCBsaW5lIDcyLCBjaGFyYWN0ZXJzIDExLTIzXG4NCj4gRGVjIDMwIDA2
OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQ0MjEgVU5JWCAvdmFyL2xp
Yi94Y3AveGFwaXxWREkuZ2V0X2J5X3V1aWQgRDplNTQwMmM3ODMzNmN8eGFwaV0gUmFpc2VkIGF0
IGZpbGUgXCJkYl9jYWNoZV9pbXBsLm1sXCIsIGxpbmUgMTk4LCBjaGFyYWN0ZXJzIDE2LTU1XG5D
YWxsZWQgZnJvbSBmaWxlIFwiZGJfYWN0aW9ucy5tbFwiLCBsaW5lIDEzMzMwLCBjaGFyYWN0ZXJz
IDI3LTYxXG5DYWxsZWQgZnJvbSBmaWxlIFwicmJhYy5tbFwiLCBsaW5lIDIyNywgY2hhcmFjdGVy
cyAxNi0yM1xuUmUtcmFpc2VkIGF0IGZpbGUgXCJyYmFjLm1sXCIsIGxpbmUgMjM2LCBjaGFyYWN0
ZXJzIDEwLTE1XG5DYWxsZWQgZnJvbSBmaWxlIFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGluZSA3
MiwgY2hhcmFjdGVycyAxMS0yM1xuUmUtcmFpc2VkIGF0IGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5t
bFwiLCBsaW5lIDkwLCBjaGFyYWN0ZXJzIDE0LTE1XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3Bl
cnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuDQo+IERlYyAzMCAwNjo1
MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0NDIxIFVOSVggL3Zhci9saWIv
eGNwL3hhcGl8ZGlzcGF0Y2g6VkRJLmdldF9ieV91dWlkIEQ6NWE1YjE5Yzg1OTZmfHhhcGldIFJh
aXNlZCBhdCBmaWxlIFwiZGJfY2FjaGVfaW1wbC5tbFwiLCBsaW5lIDE5OCwgY2hhcmFjdGVycyAx
Ni01NVxuQ2FsbGVkIGZyb20gZmlsZSBcImRiX2FjdGlvbnMubWxcIiwgbGluZSAxMzMzMCwgY2hh
cmFjdGVycyAyNy02MVxuQ2FsbGVkIGZyb20gZmlsZSBcInJiYWMubWxcIiwgbGluZSAyMjcsIGNo
YXJhY3RlcnMgMTYtMjNcblJlLXJhaXNlZCBhdCBmaWxlIFwicmJhYy5tbFwiLCBsaW5lIDIzNiwg
Y2hhcmFjdGVycyAxMC0xNVxuQ2FsbGVkIGZyb20gZmlsZSBcInNlcnZlcl9oZWxwZXJzLm1sXCIs
IGxpbmUgNzIsIGNoYXJhY3RlcnMgMTEtMjNcblJlLXJhaXNlZCBhdCBmaWxlIFwic2VydmVyX2hl
bHBlcnMubWxcIiwgbGluZSA5MCwgY2hhcmFjdGVycyAxNC0xNVxuQ2FsbGVkIGZyb20gZmlsZSBc
ImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFjdGVycyAyLTlcblJlLXJhaXNl
ZCBhdCBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFyYWN0ZXJzIDIy
LTI1XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL2RlYnVnLm1sXCIsIGxpbmUgNTcsIGNoYXJhY3Rl
cnMgMTctMjBcblJlLXJhaXNlZCBhdCBmaWxlIFwibGliL2RlYnVnLm1sXCIsIGxpbmUgNjIsIGNo
YXJhY3RlcnMgMTAtMTFcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIs
IGxpbmUgMjIsIGNoYXJhY3RlcnMgMi05XG4NCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4
YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQ0MjEgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxkaXNwYXRj
aDpWREkuZ2V0X2J5X3V1aWQgRDo1YTViMTljODU5NmZ8YmFja3RyYWNlXSBSYWlzZWQgYXQgZmls
ZSBcImRiX2NhY2hlX2ltcGwubWxcIiwgbGluZSAxOTgsIGNoYXJhY3RlcnMgMTYtNTVcbkNhbGxl
ZCBmcm9tIGZpbGUgXCJkYl9hY3Rpb25zLm1sXCIsIGxpbmUgMTMzMzAsIGNoYXJhY3RlcnMgMjct
NjFcbkNhbGxlZCBmcm9tIGZpbGUgXCJyYmFjLm1sXCIsIGxpbmUgMjI3LCBjaGFyYWN0ZXJzIDE2
LTIzXG5SZS1yYWlzZWQgYXQgZmlsZSBcInJiYWMubWxcIiwgbGluZSAyMzYsIGNoYXJhY3RlcnMg
MTAtMTVcbkNhbGxlZCBmcm9tIGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDcyLCBj
aGFyYWN0ZXJzIDExLTIzXG5SZS1yYWlzZWQgYXQgZmlsZSBcInNlcnZlcl9oZWxwZXJzLm1sXCIs
IGxpbmUgOTAsIGNoYXJhY3RlcnMgMTQtMTVcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvcGVydmFz
aXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMgMi05XG5SZS1yYWlzZWQgYXQgZmlsZSBc
ImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyNiwgY2hhcmFjdGVycyAyMi0yNVxuQ2FsbGVk
IGZyb20gZmlsZSBcImxpYi9kZWJ1Zy5tbFwiLCBsaW5lIDU3LCBjaGFyYWN0ZXJzIDE3LTIwXG5S
ZS1yYWlzZWQgYXQgZmlsZSBcImxpYi9kZWJ1Zy5tbFwiLCBsaW5lIDYyLCBjaGFyYWN0ZXJzIDEw
LTExXG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBj
aGFyYWN0ZXJzIDItOVxuUmUtcmFpc2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIs
IGxpbmUgMjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJzZXJ2ZXJfaGVs
cGVycy5tbFwiLCBsaW5lIDEzNiwgY2hhcmFjdGVycyAxMC0xMDZcbkNhbGxlZCBmcm9tIGZpbGUg
XCJzZXJ2ZXIubWxcIiwgbGluZSAyMjQwMiwgY2hhcmFjdGVycyAyMy0xNTBcbkNhbGxlZCBmcm9t
IGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDExNSwgY2hhcmFjdGVycyA0LTdcbg0K
PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNNOiBbNTM0M10gbG9jazogcmVsZWFzZWQgL3Zh
ci9sb2NrL3NtLzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWExNi9zcg0KPiBEZWMg
MzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNNOiBbNTM0M10gbG9jazogdW5saW5raW5nIGxvY2sgZmls
ZSAvdmFyL2xvY2svc20vY2FlMzBlOWItZWJkNC00NDUwLThjZTAtOWY0MDM1Y2E2MmYxL3ZkaQ0K
PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNNOiBbNTM0M10gbG9jazogcmVtb3ZpbmcgbG9j
ayBkaXIgL3Zhci9sb2NrL3NtL2NhZTMwZTliLWViZDQtNDQ1MC04Y2UwLTlmNDAzNWNhNjJmMQ0K
PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNNR0M6IFs1MzQzXSBTdGFydGluZyBhc3luY2gg
c3JVcGRhdGUgZm9yIFNSIDc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWExNg0KPiBE
ZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFsgaW5mb3xnNnhlbnRlc3R8NDQyNHxBc3lu
Yy5TUi51cGRhdGUgUjo4YmYyOWIwMjlhYjl8ZGlzcGF0Y2hlcl0gc3Bhd25pbmcgYSBuZXcgdGhy
ZWFkIHRvIGhhbmRsZSB0aGUgY3VycmVudCB0YXNrICh0cmFja2lkPTg3NWMzZTYwMWEwNDJkYjI3
MTRmOWZiODNhZjlmY2Q3KQ0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1
Z3xnNnhlbnRlc3R8NDQyNHxBc3luYy5TUi51cGRhdGUgUjo4YmYyOWIwMjlhYjl8YXVkaXRdIFNS
LnVwZGF0ZTogU1IgPSAnNzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2IChsb2Nh
bCBuZnMpJw0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFsgaW5mb3xnNnhlbnRl
c3R8NDQyNHxBc3luYy5TUi51cGRhdGUgUjo4YmYyOWIwMjlhYjl8c3RvcmFnZV9pbXBsXSBTUi5z
dGF0IGRiZzpPcGFxdWVSZWY6OGJmMjliMDItOWFiOS0zZjhlLTdmOTUtNDcxZGMzMjJjZjlmIHNy
Ojc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWExNg0KPiBEZWMgMzAgMDY6NTE6Mzkg
ZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDQyNnx8ZHVtbXl0YXNraGVscGVyXSB0
YXNrIFNSLnN0YXQgRDowNDQ4MzI4MTY1MGEgY3JlYXRlZCBieSB0YXNrIFI6OGJmMjliMDI5YWI5
DQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0NDI2
fFNSLnN0YXQgRDowNDQ4MzI4MTY1MGF8c21dIFNNIG5mcyBzcl91cGRhdGUgc3I9T3BhcXVlUmVm
OjUyMTIzMWQ2LWRmM2ItNzkwYi0xZTIyLWIzNDRhODNkOWQzOQ0KPiBEZWMgMzAgMDY6NTE6Mzkg
ZzZ4ZW50ZXN0IHhhcGk6IFsgaW5mb3xnNnhlbnRlc3R8NDQyNnxzbV9leGVjIEQ6ZGU2OTgxNTYw
M2FmfHhhcGldIFNlc3Npb24uY3JlYXRlIHRyYWNraWQ9YzE4Mzk2MTVkN2ZjNzFlMDEwN2QxOGMx
YzQzOTdiZGYgcG9vbD1mYWxzZSB1bmFtZT0gb3JpZ2luYXRvcj0gaXNfbG9jYWxfc3VwZXJ1c2Vy
PXRydWUgYXV0aF91c2VyX3NpZD0gcGFyZW50PXRyYWNraWQ9OTgzNGY1YWY0MWM5NjRlMjI1ZjI0
Mjc5YWVmZTRlNDkNCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4
ZW50ZXN0fDQ0MjZ8c21fZXhlYyBEOmRlNjk4MTU2MDNhZnxtc2NnZW5dIHhhcGk9PnhhcGkgW2xh
YmVsPSJzZXNzaW9uLmdldF91dWlkIl07DQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFw
aTogW2RlYnVnfGc2eGVudGVzdHw0NDI3IFVOSVggL3Zhci9saWIveGNwL3hhcGl8fGR1bW15dGFz
a2hlbHBlcl0gdGFzayBkaXNwYXRjaDpzZXNzaW9uLmdldF91dWlkIEQ6OTNkNDg1NjhkYThjIGNy
ZWF0ZWQgYnkgdGFzayBEOmRlNjk4MTU2MDNhZg0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0
IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDQyNnxzbV9leGVjIEQ6ZGU2OTgxNTYwM2FmfG1zY2dl
bl0gc21hcGl2Mj0+c21hcGl2MSBbbGFiZWw9InNyX3VwZGF0ZSJdOw0KPiBEZWMgMzAgMDY6NTE6
MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDQyOCBVTklYIC92YXIvbGliL3hj
cC94YXBpfHxkdW1teXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6aG9zdC5nZXRfb3RoZXJfY29u
ZmlnIEQ6YmNjY2I3NWNjYTZjIGNyZWF0ZWQgYnkgdGFzayBEOjA0NDgzMjgxNjUwYQ0KPiBEZWMg
MzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDQyOSBVTklYIC92
YXIvbGliL3hjcC94YXBpfHxkdW1teXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6U1IuZ2V0X3Nt
X2NvbmZpZyBEOmYwNDkzZWVmYzczMCBjcmVhdGVkIGJ5IHRhc2sgRDowNDQ4MzI4MTY1MGENCj4g
RGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCBTTTogWzUzNzNdIHNyX3VwZGF0ZSB7J3NyX3V1aWQn
OiAnNzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2JywgJ3N1YnRhc2tfb2YnOiAn
RHVtbXlSZWY6fDA0NDgzMjgxLTY1MGEtN2YxYi01ZTAzLTJhOGNhYzIwOWNmNXxTUi5zdGF0Jywg
J2FyZ3MnOiBbXSwgJ2hvc3RfcmVmJzogJ09wYXF1ZVJlZjpiYzAwMWQ1Ny02NWNlLThiMmItNzRi
NC1jZDcxOTc2MjcyYzAnLCAnc2Vzc2lvbl9yZWYnOiAnT3BhcXVlUmVmOjM3NWY1NTQwLTcwYTQt
NDA0MC00YjA4LWZlMDcwZmMyODI4NScsICdkZXZpY2VfY29uZmlnJzogeydTUm1hc3Rlcic6ICd0
cnVlJywgJ3NlcnZlcnBhdGgnOiAnL21udC96Ymlvcm5pay90ZXN0dm9sLycsICdzZXJ2ZXInOiAn
MTI3LjAuMC4xJ30sICdjb21tYW5kJzogJ3NyX3VwZGF0ZScsICdzcl9yZWYnOiAnT3BhcXVlUmVm
OjUyMTIzMWQ2LWRmM2ItNzkwYi0xZTIyLWIzNDRhODNkOWQzOSd9DQo+IERlYyAzMCAwNjo1MToz
OSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0NDMwIFVOSVggL3Zhci9saWIveGNw
L3hhcGl8fGR1bW15dGFza2hlbHBlcl0gdGFzayBkaXNwYXRjaDpTUi5nZXRfdmlydHVhbF9hbGxv
Y2F0aW9uIEQ6ZDAzMWVjOTg0MWQwIGNyZWF0ZWQgYnkgdGFzayBEOjA0NDgzMjgxNjUwYQ0KPiBE
ZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDQzMSBVTklY
IC92YXIvbGliL3hjcC94YXBpfHxkdW1teXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6U1IuZ2V0
X2J5X3V1aWQgRDplMTAxYzZlZjQwZjcgY3JlYXRlZCBieSB0YXNrIEQ6MDQ0ODMyODE2NTBhDQo+
IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0NDMyIFVO
SVggL3Zhci9saWIveGNwL3hhcGl8fGR1bW15dGFza2hlbHBlcl0gdGFzayBkaXNwYXRjaDpTUi5z
ZXRfdmlydHVhbF9hbGxvY2F0aW9uIEQ6NTNjOTZlZDc5ZWEwIGNyZWF0ZWQgYnkgdGFzayBEOjA0
NDgzMjgxNjUwYQ0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFsyMDE0MTIzMFQw
NTo1MTozOS45NjBafGF1ZGl0fGc2eGVudGVzdHw0NDMyIFVOSVggL3Zhci9saWIveGNwL3hhcGl8
U1Iuc2V0X3ZpcnR1YWxfYWxsb2NhdGlvbiBEOmM2M2RiNmRlMTBhOHxhdWRpdF0gKCd0cmFja2lk
PWMxODM5NjE1ZDdmYzcxZTAxMDdkMThjMWM0Mzk3YmRmJyAnTE9DQUxfU1VQRVJVU0VSJyAnX19z
bV9fYmFja2VuZCcgJ0FMTE9XRUQnICdPSycgJ0FQSScgJ1NSLnNldF92aXJ0dWFsX2FsbG9jYXRp
b24nICgoJ3NlbGYnICdsb2NhbCBuZnMnICc3ODdiMDg3NC04ZThiLWU3ZDgtOGJhOS03NGY1NWZm
MmVhMTYnICdPcGFxdWVSZWY6NTIxMjMxZDYtZGYzYi03OTBiLTFlMjItYjM0NGE4M2Q5ZDM5Jykp
KQ0KPiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDQz
MyBVTklYIC92YXIvbGliL3hjcC94YXBpfHxkdW1teXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6
U1Iuc2V0X3BoeXNpY2FsX3NpemUgRDpjYzA1YzY5ZGQ4MTggY3JlYXRlZCBieSB0YXNrIEQ6MDQ0
ODMyODE2NTBhDQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogWzIwMTQxMjMwVDA1
OjUxOjM5Ljk2NFp8YXVkaXR8ZzZ4ZW50ZXN0fDQ0MzMgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxT
Ui5zZXRfcGh5c2ljYWxfc2l6ZSBEOjI1ZTU4ZWYzZWIwNnxhdWRpdF0gKCd0cmFja2lkPWMxODM5
NjE1ZDdmYzcxZTAxMDdkMThjMWM0Mzk3YmRmJyAnTE9DQUxfU1VQRVJVU0VSJyAnX19zbV9fYmFj
a2VuZCcgJ0FMTE9XRUQnICdPSycgJ0FQSScgJ1NSLnNldF9waHlzaWNhbF9zaXplJyAoKCdzZWxm
JyAnbG9jYWwgbmZzJyAnNzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2JyAnT3Bh
cXVlUmVmOjUyMTIzMWQ2LWRmM2ItNzkwYi0xZTIyLWIzNDRhODNkOWQzOScpKSkNCj4gRGVjIDMw
IDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQ0MzQgVU5JWCAvdmFy
L2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0YXNrIGRpc3BhdGNoOlNSLnNldF9waHlz
aWNhbF91dGlsaXNhdGlvbiBEOjA0OWViNDRhMTFkMiBjcmVhdGVkIGJ5IHRhc2sgRDowNDQ4MzI4
MTY1MGENCj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbMjAxNDEyMzBUMDU6NTE6
MzkuOTcwWnxhdWRpdHxnNnhlbnRlc3R8NDQzNCBVTklYIC92YXIvbGliL3hjcC94YXBpfFNSLnNl
dF9waHlzaWNhbF91dGlsaXNhdGlvbiBEOmFlMzhiYmQwNmQ2ZHxhdWRpdF0gKCd0cmFja2lkPWMx
ODM5NjE1ZDdmYzcxZTAxMDdkMThjMWM0Mzk3YmRmJyAnTE9DQUxfU1VQRVJVU0VSJyAnX19zbV9f
YmFja2VuZCcgJ0FMTE9XRUQnICdPSycgJ0FQSScgJ1NSLnNldF9waHlzaWNhbF91dGlsaXNhdGlv
bicgKCgnc2VsZicgJ2xvY2FsIG5mcycgJzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYy
ZWExNicgJ09wYXF1ZVJlZjo1MjEyMzFkNi1kZjNiLTc5MGItMWUyMi1iMzQ0YTgzZDlkMzknKSkp
DQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgU006IFs1MzczXSBsb2NrOiBjbG9zZWQgL3Zh
ci9sb2NrL3NtLzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWExNi9zcg0KPiBEZWMg
MzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFsgaW5mb3xnNnhlbnRlc3R8NDQyNnxzbV9leGVj
IEQ6ZGU2OTgxNTYwM2FmfHhhcGldIFNlc3Npb24uZGVzdHJveSB0cmFja2lkPWMxODM5NjE1ZDdm
YzcxZTAxMDdkMThjMWM0Mzk3YmRmDQo+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTog
WzIwMTQxMjMwVDA1OjUxOjM5Ljk5MVp8YXVkaXR8ZzZ4ZW50ZXN0fDQ0MjR8QXN5bmMuU1IudXBk
YXRlIFI6OGJmMjliMDI5YWI5fGF1ZGl0XSAoJ3RyYWNraWQ9ODc1YzNlNjAxYTA0MmRiMjcxNGY5
ZmI4M2FmOWZjZDcnICdMT0NBTF9TVVBFUlVTRVInICdyb290JyAnQUxMT1dFRCcgJ09LJyAnQVBJ
JyAnU1IudXBkYXRlJyAoKCdzcicgJ2xvY2FsIG5mcycgJzc4N2IwODc0LThlOGItZTdkOC04YmE5
LTc0ZjU1ZmYyZWExNicgJ09wYXF1ZVJlZjo1MjEyMzFkNi1kZjNiLTc5MGItMWUyMi1iMzQ0YTgz
ZDlkMzknKSkpDQo+IERlYyAzMCAwNjo1MTo0MCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVu
dGVzdHw0MzAwIFVOSVggL3Zhci9saWIveGNwL3hhcGl8fHhhcGldIFJhaXNlZCBhdCBmaWxlIFwi
Y2xpX3V0aWwubWxcIiwgbGluZSAxMzQsIGNoYXJhY3RlcnMgMTAtNjdcbkNhbGxlZCBmcm9tIGZp
bGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMgMi05XG4NCj4g
RGVjIDMwIDA2OjUxOjQwIGc2eGVudGVzdCB4YXBpOiBbMjAxNDEyMzBUMDU6NTE6NDAuNjQ0Wnxh
dWRpdHxnNnhlbnRlc3R8NDMwMCBVTklYIC92YXIvbGliL3hjcC94YXBpfHRhc2suZGVzdHJveSBE
OmFmYzIxODU2MmExYnxhdWRpdF0gKCd0cmFja2lkPTA5YTlmNTgyMDU3YWQyNzgxNmU0M2E0ZDNj
MThiZjFiJyAnTE9DQUxfU1VQRVJVU0VSJyAncm9vdCcgJ0FMTE9XRUQnICdPSycgJ0FQSScgJ3Rh
c2suZGVzdHJveScgKCgnc2VsZicgJ1ZNIGltcG9ydCcgJzcwODU5YWQ2LTA0MjAtYmFhOC0xN2Fj
LTc1OWNiMDFhY2RlMycgJ09wYXF1ZVJlZjpkYmRiMGVlNS1hZTE2LTBmM2QtMGMwZS1kY2FmMjNh
NTJhODgnKSkpDQo+IERlYyAzMCAwNjo1MTo0MCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVu
dGVzdHw0MzAwIFVOSVggL3Zhci9saWIveGNwL3hhcGl8fHhhcGldIFJhaXNlZCBhdCBmaWxlIFwi
bGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFyYWN0ZXJzIDIyLTI1XG5DYWxsZWQg
ZnJvbSBmaWxlIFwiY2xpX29wZXJhdGlvbnMubWxcIiwgbGluZSAzMjgzLCBjaGFyYWN0ZXJzIDE4
LTExMVxuQ2FsbGVkIGZyb20gZmlsZSBcInhhcGlfY2xpLm1sXCIsIGxpbmUgMTE5LCBjaGFyYWN0
ZXJzIDE4LTU4XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5l
IDIyLCBjaGFyYWN0ZXJzIDItOVxuDQo+IERlYyAzMCAwNjo1MTo0MCBnNnhlbnRlc3QgeGFwaTog
WyBpbmZvfGc2eGVudGVzdHw0MzAwIFVOSVggL3Zhci9saWIveGNwL3hhcGl8c2Vzc2lvbi5sb2dv
dXQgRDphNzQwMjdmMDM3YmR8eGFwaV0gU2Vzc2lvbi5kZXN0cm95IHRyYWNraWQ9MDlhOWY1ODIw
NTdhZDI3ODE2ZTQzYTRkM2MxOGJmMWINCj4gRGVjIDMwIDA2OjUxOjQwIGc2eGVudGVzdCB4YXBp
OiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMDAgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8YmFja3RyYWNl
XSBSYWlzZWQgYXQgZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyNiwgY2hhcmFj
dGVycyAyMi0yNVxuQ2FsbGVkIGZyb20gZmlsZSBcInhhcGlfY2xpLm1sXCIsIGxpbmUgMTE4LCBj
aGFyYWN0ZXJzIDItMTM5XG5DYWxsZWQgZnJvbSBmaWxlIFwieGFwaV9jbGkubWxcIiwgbGluZSAy
MjEsIGNoYXJhY3RlcnMgNy00NFxuQ2FsbGVkIGZyb20gZmlsZSBcInhhcGlfY2xpLm1sXCIsIGxp
bmUgMjczLCBjaGFyYWN0ZXJzIDQtMjNcbg0KPiBEZWMgMzAgMDY6NTE6NDAgZzZ4ZW50ZXN0IHhh
cGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMCBVTklYIC92YXIvbGliL3hjcC94YXBpfHxjbGldIFhh
cGlfY2xpLmV4Y2VwdGlvbl9oYW5kbGVyOiBHb3QgZXhjZXB0aW9uIFNSX0JBQ0tFTkRfRkFJTFVS
RTogWyBub24temVybyBleGl0OyA7IFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToj
MDEyICBGaWxlICIvb3B0L3hlbnNvdXJjZS9zbS9ORlNTUiIsIGxpbmUgMjc4LCBpbiA8bW9kdWxl
PiMwMTIgICAgU1JDb21tYW5kLnJ1bihORlNTUiwgRFJJVkVSX0lORk8pIzAxMiAgRmlsZSAiL3Vz
ci9saWIveGFwaS9zbS9TUkNvbW1hbmQucHkiLCBsaW5lIDM0NCwgaW4gcnVuIzAxMiAgICByZXQg
PSBjbWQucnVuKHNyKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vU1JDb21tYW5kLnB5Iiwg
bGluZSAxMTAsIGluIHJ1biMwMTIgICAgcmV0dXJuIHNlbGYuX3J1bl9sb2NrZWQoc3IpIzAxMiAg
RmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1hbmQucHkiLCBsaW5lIDE1OSwgaW4gX3J1bl9s
b2NrZWQjMDEyICAgIHJ2ID0gc2VsZi5fcnVuKHNyLCB0YXJnZXQpIzAxMiAgRmlsZSAiL3Vzci9s
aWIveGFwaS9zbS9TUkNvbW1hbmQucHkiLCBsaW5lIDI2MywgaW4gX3J1biMwMTIgICAgd3JpdGFi
bGUsIGNhY2hpbmdfcGFyYW1zKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5w
eSIsIGxpbmUgMTQ4NiwgaW4gYWN0aXZhdGUjMDEyICAgIGlmIHNlbGYuX2FjdGl2YXRlX2xvY2tl
ZChzcl91dWlkLCB2ZGlfdXVpZCwgb3B0aW9ucyk6IzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9z
bS9ibGt0YXAyLnB5IiwgbGluZSA4MywgaW4gd3JhcHBlciMwMTIgICAgcmV0ID0gb3Aoc2VsZiwg
KmFyZ3MpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNTIy
LCBpbiBfYWN0aXZhdGVfbG9ja2VkIzAxMiAgICBkZXZfcGF0aCA9IHNlbGYuX2FjdGl2YXRlKHNy
X3V1aWQsIHZkaV91dWlkLCBvcHRpb25zKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxr
dGFwMi5weSIsIGxpbmUgMTU2MCwgaW4gX2FjdGl2YXRlIzAxMiBzZWxmLl9nZXRfcG9vbF9jb25m
aWcoc3JfdXVpZCkuZ2V0KCJtZW0tcG9vbC1zaXplIikpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFw
aS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxMjQzLCBpbiBfdGFwX2FjdGl2YXRlIzAxMiB0YXBkaXNr
ID0gVGFwZGlzay5maW5kX2J5X3BhdGgocGh5X3BhdGgpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFw
aS9zbS9ibGt0YXAyLnB5IiwgbGluZSA2OTAsIGluIGZpbmRfYnlfcGF0aCMwMTIgcmV0dXJuIGNs
cy5maW5kKHBhdGg9cGF0aCkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHki
LCBsaW5lIDY3OCwgaW4gZmluZCMwMTIgICAgZm91bmQgPSBsaXN0KGNscy5saXN0KCoqYXJncykp
IzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA2NTMsIGluIGxp
c3QjMDEyICAgIGZvciByb3cgaW4gVGFwQ3RsLmxpc3QoKiphcmdzKTojMDEyICBGaWxlICIvdXNy
L2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDExOCwgaW4gbG9vcCMwMTIgICAgcmV0dXJu
IGYoKl9fdCwgKipfX2QpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5Iiwg
bGluZSAzNDgsIGluIGxpc3QjMDEyICAgIGlmIGUuc3RhdHVzIGluIHRyYW5zaWVudDojMDEyICBG
aWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDE2MiwgaW4gX19nZXRhdHRy
X18jMDEyICAgIHJldHVybiBvYmplY3QuX19nZXRhdHRyaWJ1dGVfXyhzZWxmLCBrZXkpIzAxMkF0
dHJpYnV0ZUVycm9yOiAnQ29tbWFuZEZhaWx1cmUnIG9iamVjdCBoYXMgbm8gYXR0cmlidXRlICdz
dGF0dXMnIzAxMiBdDQo+IERlYyAzMCAwNjo1MTo0MCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2
eGVudGVzdHw0MzAwIFVOSVggL3Zhci9saWIveGNwL3hhcGl8fGNsaV0gUmFpc2VkIGF0IGZpbGUg
XCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxl
ZCBmcm9tIGZpbGUgXCJ4YXBpX2NsaS5tbFwiLCBsaW5lIDExOCwgY2hhcmFjdGVycyAyLTEzOVxu
Q2FsbGVkIGZyb20gZmlsZSBcInhhcGlfY2xpLm1sXCIsIGxpbmUgMjIxLCBjaGFyYWN0ZXJzIDct
NDRcbkNhbGxlZCBmcm9tIGZpbGUgXCJ4YXBpX2NsaS5tbFwiLCBsaW5lIDI3MywgY2hhcmFjdGVy
cyA0LTIzXG4NCj4gRGVjIDMwIDA2OjUxOjQwIGc2eGVudGVzdCBTTUdDOiBbNTM0M10gU1IudXBk
YXRlX2FzeW5jaCBzdGF0dXMgY2hhbmdlZCB0byBbc3VjY2Vzc10NCj4gRGVjIDMwIDA2OjUxOjQw
IGc2eGVudGVzdCBTTTogWzUzNDNdIGxvY2s6IHJlbGVhc2VkIC92YXIvbG9jay9zbS83ODdiMDg3
NC04ZThiLWU3ZDgtOGJhOS03NGY1NWZmMmVhMTYvcnVubmluZw0KPiBEZWMgMzAgMDY6NTE6NDAg
ZzZ4ZW50ZXN0IFNNOiBbNTM0M10gbG9jazogdHJpZWQgbG9jayAvdmFyL2xvY2svc20vNzg3YjA4
NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2L3NyLCBhY3F1aXJlZDogVHJ1ZSAoZXhpc3Rz
OiBUcnVlKQ0KPiBEZWMgMzAgMDY6NTE6NDAgZzZ4ZW50ZXN0IFNNOiBbNTM0M10gWycvdXNyL2Jp
bi92aGQtdXRpbCcsICdzY2FuJywgJy1mJywgJy1jJywgJy1tJywgJy92YXIvcnVuL3NyLW1vdW50
Lzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWExNi8qLnZoZCddDQo+IERlYyAzMCAw
Njo1MTo0MCBnNnhlbnRlc3QgU006IFs1MzQzXSAgIHByZWFkIFNVQ0NFU1MNCj4gRGVjIDMwIDA2
OjUxOjQwIGc2eGVudGVzdCBTTUdDOiBbNTM0M10gU1IgNzg3YiAoJ2xvY2FsIG5mcycpICgwIFZE
SXMgaW4gMCBWSEQgdHJlZXMpOiBzaG93aW5nIG9ubHkgVkhEIHRyZWVzIHRoYXQgY2hhbmdlZDoN
Cj4gRGVjIDMwIDA2OjUxOjQwIGc2eGVudGVzdCBTTUdDOiBbNTM0M10gVHJlZSBjYWUzMGU5Yi1l
YmQ0LTQ0NTAtOGNlMC05ZjQwMzVjYTYyZjEgZ29uZQ0KPiBEZWMgMzAgMDY6NTE6NDAgZzZ4ZW50
ZXN0IFNNR0M6IFs1MzQzXQ0KPiBEZWMgMzAgMDY6NTE6NDAgZzZ4ZW50ZXN0IFNNOiBbNTM0M10g
bG9jazogcmVsZWFzZWQgL3Zhci9sb2NrL3NtLzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1
ZmYyZWExNi9zcg0KPiBEZWMgMzAgMDY6NTE6NDAgZzZ4ZW50ZXN0IFNNR0M6IFs1MzQzXSBObyB3
b3JrLCBleGl0aW5nDQo+IERlYyAzMCAwNjo1MTo0MCBnNnhlbnRlc3QgU01HQzogWzUzNDNdIElu
IGNsZWFudXANCj4gRGVjIDMwIDA2OjUxOjQwIGc2eGVudGVzdCBTTUdDOiBbNTM0M10gU1IgNzg3
YiAoJ2xvY2FsIG5mcycpICgwIFZESXMgaW4gMCBWSEQgdHJlZXMpOiBubyBjaGFuZ2VzDQo+IERl
YyAzMCAwNjo1MTo0MCBnNnhlbnRlc3QgeGFwaTogWyBpbmZvfGc2eGVudGVzdHw0NDM3IFVOSVgg
L3Zhci9saWIveGNwL3hhcGl8c2Vzc2lvbi5sb2dvdXQgRDo2MjA5MzY3MjkwMWN8eGFwaV0gU2Vz
c2lvbi5kZXN0cm95IHRyYWNraWQ9ODc1YzNlNjAxYTA0MmRiMjcxNGY5ZmI4M2FmOWZjZDcNCj4g
RGVjIDMwIDA2OjUxOjQwIGc2eGVudGVzdCB4Y3AtcnJkZDogW2RlYnVnfGc2eGVudGVzdHwxMzI2
IHVuaXhfcnBjfHxodHRwXSBSZXF1ZXN0IHsgZnJhbWUgPSBmYWxzZTsgbWV0aG9kID0gUE9TVDsg
dXJpID0gL3Zhci9saWIveGNwL3hjcC1ycmRkOyBxdWVyeSA9IFsgIF07IGNvbnRlbnRfbGVuZ3Ro
ID0gWyAzMzAgXTsgdHJhbnNmZXIgZW5jb2RpbmcgPSA7IHZlcnNpb24gPSAxLjE7IGNvb2tpZSA9
IFsgPSBdOyB0YXNrID0gOyBzdWJ0YXNrX29mID0gOyBjb250ZW50LXR5cGUgPSA7IGhvc3QgPSA7
IHVzZXJfYWdlbnQgPSAvdXNyL3NiaW4veGFwaSB9DQo+IERlYyAzMCAwNjo1MTo0MSBnNnhlbnRl
c3QgeGNwLXJyZGQ6IFtkZWJ1Z3xnNnhlbnRlc3R8MCBtb25pdG9yfG1haW58cnJkZF9zdGF0c10g
c3lzdGVtIHN0YXRzOiBNZW1Ub3RhbDogODE0MTU3MiBLaUI7IE1lbUZyZWU6IDY4MTE0NzIgS2lC
OyBCdWZmZXJlZDogNzc2MjQgS2lCOyBDYWNoZWQ6IDc2MjA0MCBLaUI7IFN3YXBUb3RhbDogMCBL
aUI7IFN3YXBGcmVlOiAwIEtpQg0KPiBEZWMgMzAgMDY6NTE6NDEgZzZ4ZW50ZXN0IHhjcC1ycmRk
OiBbZGVidWd8ZzZ4ZW50ZXN0fDAgbW9uaXRvcnxtYWlufHJyZGRfc3RhdHNdIENsb2NrIGRyaWZ0
OiAwDQo+IERlYyAzMCAwNjo1MTo0MSBnNnhlbnRlc3QgeGNwLXJyZGQ6IFtkZWJ1Z3xnNnhlbnRl
c3R8MCBtb25pdG9yfG1haW58cnJkZF9zdGF0c10geGNwLXJyZGQgc3RhdHMgKG4gPSAxKTogc2l6
ZTogMzQwNzc2IEtpQjsgcnNzOiA4MTEyIEtpQjsgZGF0YTogMzE2MjkyIEtpQjsgc3RhY2s6IDEz
NiBLaUINCj4gRGVjIDMwIDA2OjUxOjQxIGc2eGVudGVzdCB4Y3AtcnJkZDogW2RlYnVnfGc2eGVu
dGVzdHwwIG1vbml0b3J8bWFpbnxycmRkX3N0YXRzXSB4YXBpIHN0YXRzIChuID0gMik6IHNpemU6
IDMzMjIxNjQgS2lCOyByc3M6IDQ2OTQ0IEtpQjsgZGF0YTogMzIyNjM5MiBLaUI7IHN0YWNrOiAy
NzIgS2lCDQo+IERlYyAzMCAwNjo1MTo0MSBnNnhlbnRlc3QgZm9ya2V4ZWNkOiBbZXJyb3J8ZzZ4
ZW50ZXN0fDB8fGZvcmtleGVjZF0gNTM5NCAoL2Jpbi9waWRvZiB4ZW5vcHNkKSBleGl0dGVkIHdp
dGggY29kZSAxDQo+IERlYyAzMCAwNjo1MTo0MSBnNnhlbnRlc3QgeGNwLXJyZGQ6IFtkZWJ1Z3xn
NnhlbnRlc3R8MCBtb25pdG9yfG1haW58cnJkZF9zdGF0c10geGVub3BzZCBzdGF0cyAobiA9IDAp
OiBzaXplOiAwIEtpQjsgcnNzOiAwIEtpQjsgZGF0YTogMCBLaUI7IHN0YWNrOiAwIEtpQg0KPiAN
Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gWGVu
LWFwaSBtYWlsaW5nIGxpc3QNCj4gWGVuLWFwaUBsaXN0cy54ZW4ub3JnDQo+IGh0dHA6Ly9saXN0
cy54ZW4ub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby94ZW4tYXBpDQoNCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1hcGkgbWFpbGluZyBsaXN0
Clhlbi1hcGlAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy9jZ2ktYmluL21haWxt
YW4vbGlzdGluZm8veGVuLWFwaQo=

From xen-api-bounces@lists.xen.org Tue Dec 30 15:41:44 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2014 15:41:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Y5yvS-0001Yz-R7; Tue, 30 Dec 2014 15:41:38 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <dkadds2@gmail.com>) id 1Y5yvQ-0001Yu-S7
	for xen-api@lists.xen.org; Tue, 30 Dec 2014 15:41:37 +0000
Received: from [85.158.139.211] by server-1.bemta-5.messagelabs.com id
	B6/E2-24124-0B7C2A45; Tue, 30 Dec 2014 15:41:36 +0000
X-Env-Sender: dkadds2@gmail.com
X-Msg-Ref: server-8.tower-206.messagelabs.com!1419954091!11744838!1
X-Originating-IP: [209.85.212.170]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 3928 invoked from network); 30 Dec 2014 15:41:31 -0000
Received: from mail-wi0-f170.google.com (HELO mail-wi0-f170.google.com)
	(209.85.212.170)
	by server-8.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Dec 2014 15:41:31 -0000
Received: by mail-wi0-f170.google.com with SMTP id bs8so25763169wib.3
	for <xen-api@lists.xen.org>; Tue, 30 Dec 2014 07:41:31 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=message-id:date:from:user-agent:mime-version:to:cc:subject
	:references:in-reply-to:content-type:content-transfer-encoding;
	bh=eeQQy/wNmNUVnHcY77eVDxToOz3+id/FUh+hpc8pqa8=;
	b=qwGEwbQarVmMW43T0ZhEAB6RHR0U3RQU1uu5oU35rad/iwnUbe1UfyXmrgLzPBuoLt
	BaCAJCO4OBpebXypfKEsnncERP4FL74hEzgVTjYdPVhzm/c0KZRjQx5o9+FedudmZxhq
	/xhB5agXTww2tYkUtyR1qKZaAnNVwCF92jWOdUUu07cyPT+e/dooZd18Tr2pCmNX4il0
	IDKbIsJvl0l8CuaUE3DtHczbEj8uljtjWsnOG2pxsQDRWyQouZ2FFgswM5FJ3Ti/FXNs
	NQNwvLWEcFaFN+G93qzj8+RgRqVZ8DZL3eu2wZVdat696fJf/KVPbQKdhunNUqEACc6S
	gaFw==
X-Received: by 10.181.29.198 with SMTP id jy6mr94387917wid.0.1419954090790;
	Tue, 30 Dec 2014 07:41:30 -0800 (PST)
Received: from BlackApple.local ([88.169.214.221])
	by mx.google.com with ESMTPSA id j6sm23913331wjx.12.2014.12.30.07.41.27
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 30 Dec 2014 07:41:29 -0800 (PST)
Message-ID: <54A2C7A6.5070506@gmail.com>
Date: Tue, 30 Dec 2014 16:41:26 +0100
From: David <dkadds2@gmail.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10;
	rv:31.0) Gecko/20100101 Thunderbird/31.3.0
MIME-Version: 1.0
To: Dave Scott <Dave.Scott@citrix.com>
References: <54A2BA68.2060105@gmail.com>
	<101E8D96-8243-48BB-AE07-804E785BC24C@citrix.com>
In-Reply-To: <101E8D96-8243-48BB-AE07-804E785BC24C@citrix.com>
Cc: Xen API mailing list <xen-api@lists.xen.org>
Subject: Re: [Xen-API] NFS exported from ZFS on Ubuntu 14.04
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

SGkgRGF2ZSwKCk1hbnkgdGhhbmtzIGZvciBxdWljayByZXBseSEgUmVhbGx5IGFwcHJlY2lhdGVk
LgpNeSBjb21tZW50cyBpbmxpbmUgYmVsb3cuCgpPbiAzMC8xMi8xNCAxNjozMCwgRGF2ZSBTY290
dCB3cm90ZToKPiBIaSwKPgo+PiBPbiAzMCBEZWMgMjAxNCwgYXQgMTQ6NDQsIERhdmlkIDxka2Fk
ZHMyQGdtYWlsLmNvbT4gd3JvdGU6Cj4+Cj4+IEhpIEd1eXMsCj4+Cj4+IEknbSBsb29raW5nIGZv
ciB5b3VyIGhlbHAgYXMgSSdtIGZhY2luZyBpc3N1ZSB3aXRoIFhlbiBhbmQgTkZTIFN0b3JhZ2Ug
UmVwb3NpdG9yeS4KPj4gVGhlIHByb2JsZW0gSSdtIGZhY2luZyBpcyB0aGF0IHZtLWltcG9ydCBm
YWlscyBkdWUgdG8gYmxrdGFwMiBpc3N1ZSAoc2VlbXMgbGlrZSkuCj4+IExhc3QgY2FsbCBpcyBh
Ym91dCB2ZGlfYWN0aXZhdGUgZmFpbHVyZSAoZnVsbCBkdW1wIGJlbG93KToKPj4KPj4gZ2VuZXJp
YyBleGNlcHRpb246IHZkaV9hY3RpdmF0ZTogRVhDRVBUSU9OIDx0eXBlICdleGNlcHRpb25zLkF0
dHJpYnV0ZUVycm9yJz4sICdDb21tYW5kRmFpbHVyZScgb2JqZWN0IGhhcyBubyBhdHRyaWJ1dGUg
J3N0YXR1cycKPj4KPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAgRmls
ZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNTYwLCBpbiBfYWN0aXZhdGUK
Pj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdIHNlbGYuX2dldF9wb29sX2Nv
bmZpZyhzcl91dWlkKS5nZXQoIm1lbS1wb29sLXNpemUiKSkKPj4gRGVjIDMwIDA2OjUxOjM4IGc2
eGVudGVzdCBTTTogWzUyNjZdICAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5Iiwg
bGluZSAxMjQzLCBpbiBfdGFwX2FjdGl2YXRlCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3Qg
U006IFs1MjY2XSAgICAgdGFwZGlzayA9IFRhcGRpc2suZmluZF9ieV9wYXRoKHBoeV9wYXRoKQo+
Pgo+Pgo+PiBPbiBiYWNrZW5kIHNpZGUgTkZTIGlzIGV4cG9ydGVkIGZyb20gWkZTIChsb2NhbGhv
c3QpIGVuY3J5cHRlZCB3aXRoIGRlZHVwIG9uIGlmIGl0IHdvdWxkIG1hdHRlci4KPj4gWGVuc2Vy
dmVyIGlzIGNvbXBpbGVkIGZyb20gc291cmNlcyBmcm9tIGJ1aWxkcm9vdC4KPj4KPj4gSSd2ZSB0
cmllZCB0byB1c2UgRmlsZVNSIGJ1dCBpdCBmYWlsZWQgbWlzZXJhYmx5IHRvby4KPj4gVG8gZ2V0
IHRvIHRoZSBzdGFnZSB3aGVyZSBJIGFtIG5vdyBJJ3ZlIGhhZCB0byBmaXggc29tZSBzdGF0aWMg
cGF0aHMgd2l0aGluIFNSIGFkYXB0ZXJzLgo+IERvIHlvdXIgcGF0aCBtb2RpZmljYXRpb25zIGxv
b2sgc2ltaWxhciB0byBCb2LigJlzPyAoYWxzbyBjYzpkIGluIGNhc2UgaGUgY2FuIHNwb3Qgc29t
ZXRoaW5nKQo+Cj4gaHR0cHM6Ly9naXRodWIuY29tL3hlbnNlcnZlci9idWlsZHJvb3QvcHVsbC81
ODAKPgo+IEnigJltIHN1c3BpY2lvdXMgYmVjYXVzZSBvZiBvbmUgb2YgdGhlIHNlY3Rpb25zIG9m
IHRoZSBzdGFjayB0cmFjZSBiZWxvdzoKWWVzLCB0aGVzZSBhcmUgc2ltaWxhciwgSSd2ZSBtb2Rp
ZmllZCBwYXRocyBpbjoKdmhkdXRpbC5weSAtIFZIRF9VVElMIHBhdGgKRmlsZVNSLnB5IHRvIHNr
aXAgImIiIHN3aXRjaCBhcyBpdCdzIG5vdCBzdXBwb3J0ZWQgYnkgY3VycmVudCB2ZXJzaW9uLCAK
bGluZSA4NzkgJiA4ODAgKGNvbW1lbnRlZCBvdXQpLgpTUi5weSAtIFRBUERJU0tfVVRJTCBwYXRo
CkFib3ZlIHdlcmUgcXVpY2sgYW5kIGRpcnR5IGlubGluZSBjaGFuZ2VzIGFzIEkgd2FudGVkIHRv
IG1vdmUgZm9yd2FyZC4KCkknbSBoYXBweSB0byBwb3N0IGRpZmZzIGlmIHJlcXVpcmVkLiBJJ3Zl
IGdhdmUgdXAgd2l0aCBGaWxlU1IgYXMgaXQgZ2F2ZSAKbWUgc29tZSBmdXJ0aGVyIGlzc3VlcyBi
dXQgSSdtIGhhcHB5IHRvIHJldmVydCBiYWNrIHRvIEZpbGVTUiBhbmQgZHJvcCAKTkZTIGlmIHlv
dSBndXlzIGNvdWxkIGhlbHAgbWUgd2l0aCBpc3N1ZXMgOikKCj4+IERlYyAzMCAwNjo1MTozOCBn
NnhlbnRlc3QgU006IFs1MjY2XSAgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIs
IGxpbmUgNjUzLCBpbiBsaXN0Cj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2
XSAgICAgZm9yIHJvdyBpbiBUYXBDdGwubGlzdCgqKmFyZ3MpOgo+IOKAlCB0aGlzIGlzIHdoZXJl
IHRoZSBTTSBwbHVnaW4gcnVucyDigJx0YXAtY3RsIGxpc3TigJ0gYW5kIHBhcnNlcyB0aGUgb3V0
cHV0LiBDb3VsZCB0aGUgcGF0aCB0byB0aGlzIGNvbW1hbmQgYmUgd3Jvbmc/Cj4KVGhpcyBvbmUg
ZXhpc3QgZm9yIGNvbnRyYXJ5LCBzbyBubyBuZWVkIHRvIGZpeCBwYXRoLiBUaGUgZXJyb3IgY2Ft
ZSBmcm9tIApvdGhlciBpc3N1ZSBhcyBwZXIgZHVtcC4KCkJMS1RBUDI6PGZ1bmN0aW9uIF9hY3Rp
dmF0ZV9sb2NrZWQgYXQgMHg3ZjYxMWE4MDFlZDg+OiBFWENFUFRJT04gPHR5cGUgJ2V4Y2VwdGlv
bnMuQXR0cmlidXRlRXJyb3InPiwgJ0NvbW1hbmRGYWlsdXJlJyBvYmplY3QgaGFzIG5vIGF0dHJp
YnV0ZSAnc3RhdHVzJwoKRmlsZSBleGlzdHM6CnJvb3RAZzZ4ZW50ZXN0Oi91c3IvbGliL3hhcGkv
c20jIGxzIC1sIC91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weQotcnd4ci14ci14IDEgcm9vdCBy
b290IDg1NzE4IERlYyAyMiAwMjo1MiAvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkKCj4+IEFu
eSBoZWxwIGFuZCBoaW50cyBpcyBtb3JlIHRoYW4gYXBwcmVjaWF0ZWQuCj4+Cj4+IGJ0dy4gd2h5
IGRvIEkgdXNlIFpGUyBleHBvcnRlZCB2aWEgTkZTPyBJIG5lZWQgY29tcHJlc3Npb24gYW5kIGRl
ZHVwbGljYXRpb24uIEhvc3QgaXRzZWxmIGhhcyBwbGVudHkgb2YgcmVzb3VyY2VzIGFuZCB3aWxs
IGJlIHJ1bm5pbmcgY291cGxlIG9mIFZNcyB3aXRoIGFsbW9zdCBzYW1lIGNvbmZpZ3VyYXRpb24g
YW5kIHdvbid0IGJlIGhpZ2hseSBsb2FkZWQuIFRoZXJlZm9yZSBJJ20gbm90IGFmdGVyIHBlcmZv
cm1hbmNlIGJ1dCBtb3JlIGNvbmNlcm5lZCBhYm91dCBzdG9yYWdlIHNwYWNlLgo+PiBBbnkgaGlu
dHMgb24gaG93IHRvIHB1dCBTUiBvbiBaRlMgb24gTGludXggKFVidW50dSBwcmVmZXJyZWQpIHdv
dWxkIGJlIGdyZWF0Lgo+PiBJJ3ZlIHRlc3RlZCBzbyBmYXIgRmlsZVNSLCB0cmllZCB0byBleHBv
c2UgWkZTIGJsb2NrIGRldmljZSBhbmQgbG9vcGJhY2sgYnV0IGl0IGRpZG4ndCB3b3JrLgo+PiBD
cmVhdGluZyBmaWxlIG9uIFpGUyBtb3VudGVkIHZpYSBsb29wYmFjayB0byBjcmVhdGUgdmcvcHYv
bHYgc2VlbXMgbGlrZSBhbiBvdmVya2lsbC4KPj4KPj4gVGhlIGxhc3Qgb3B0aW9uIHdoaWNoIEkn
dmUgZmlndXJlZCBvdXQgd291bGQgYmUgdG8gZXhwb3NlIFpGUyB2aWEgaVNDU0ksIGJ1dCB0aGlz
IHNlZW1zIHRvIGJlIGFuIG92ZXJraWxsIHRvby4KPj4gVGhlIGVhc2llc3QgZm9yIG1lIGFuZCBm
dWxseSBhY2NlcHRhYmxlIHdvdWxkIGJlIHRvIHVzZSBWSEQgKFZESSkgZmlsZXMgZGlyZWN0bHkg
b24gWkZTIGJ1dCBpdCBkaWRuJ3Qgd29yayBuZWl0aGVyLgo+IEkgdGhpbmsgdXNpbmcgLnZoZCBm
aWxlcyBkaXJlY3RseSBvbiBhbiBaRlMgbW91bnQgdmlhIEZpbGVTUiB3b3VsZCBiZSBpZGVhbC4g
T25jZSB3ZeKAmXZlIGZpZ3VyZWQgb3V0IHdoYXTigJlzIHdyb25nIHdpdGggdGhlIHNoYXJlZCBi
bGt0YXAyLnB5IGNvZGUgdGhhdCBzaG91bGQgd29yay4KVXNpbmcgRmlsZVNSIGRpZCBmYWlsIG1p
c2VyYWJseSBhdCBlYXJsaWVyIHN0YWdlLiBJJ2xsIHBvc3QgaW4gYSBzZWMgYSAKbmV3IHRocmVh
ZCB0byBjb3ZlciB0aGlzLCBqdXN0IHRvIG5vdCBtaXggdHdvIGluIG9uZSBhbmQgdG8gbm90IGxv
b3NlIAp0cmFjayBvbiB3aGF0J3MgZ29pbmcgb24gOikKClRoYW5rcywKRGF3aWQKPiBDaGVlcnMs
Cj4gRGF2ZQo+PiBUaGFua3MsCj4+IERhd2lkCj4+Cj4+Cj4+IERlYyAzMCAwNjo1MTozOCBnNnhl
bnRlc3QgU006IFs1MjY2XSBbJy91c3Ivc2Jpbi90ZC11dGlsJywgJ3F1ZXJ5JywgJ3ZoZCcsICct
dnBmJywgJy92YXIvcnVuL3NyLW1vdW50Lzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYy
ZWExNi9jYWUzMGU5Yi1lYmQ0LTQ0NTAtOGNlMC05ZjQwMzVjYTYyZjEudmhkJ10KPj4gRGVjIDMw
IDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAgcHJlYWQgU1VDQ0VTUwo+PiBEZWMgMzAg
MDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gUGh5TGluaygvZGV2L3NtL3BoeS83ODdiMDg3
NC04ZThiLWU3ZDgtOGJhOS03NGY1NWZmMmVhMTYvY2FlMzBlOWItZWJkNC00NDUwLThjZTAtOWY0
MDM1Y2E2MmYxKSAtPiAvdmFyL3J1bi9zci1tb3VudC83ODdiMDg3NC04ZThiLWU3ZDgtOGJhOS03
NGY1NWZmMmVhMTYvY2FlMzBlOWItZWJkNC00NDUwLThjZTAtOWY0MDM1Y2E2MmYxLnZoZAo+PiBE
ZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFsgaW5mb3xnNnhlbnRlc3R8NDM2MyBVTklY
IC92YXIvbGliL3hjcC94YXBpfHNlc3Npb24ubG9naW5fd2l0aF9wYXNzd29yZCBEOjk2NTIyYjBi
YmE0Ynx4YXBpXSBTZXNzaW9uLmNyZWF0ZSB0cmFja2lkPWI0MGVlMGY3MGRmNjY2OWQyOGQ2N2Nk
MDc3MDAzNzM0IHBvb2w9ZmFsc2UgdW5hbWU9cm9vdCBvcmlnaW5hdG9yPSBpc19sb2NhbF9zdXBl
cnVzZXI9dHJ1ZSBhdXRoX3VzZXJfc2lkPSBwYXJlbnQ9dHJhY2tpZD05ODM0ZjVhZjQxYzk2NGUy
MjVmMjQyNzlhZWZlNGU0OQo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1
Z3xnNnhlbnRlc3R8NDM2MyBVTklYIC92YXIvbGliL3hjcC94YXBpfHNlc3Npb24ubG9naW5fd2l0
aF9wYXNzd29yZCBEOjk2NTIyYjBiYmE0Ynxtc2NnZW5dIHhhcGk9PnhhcGkgW2xhYmVsPSJzZXNz
aW9uLmdldF91dWlkIl07Cj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVn
fGc2eGVudGVzdHw0MzY0IFVOSVggL3Zhci9saWIveGNwL3hhcGl8fGR1bW15dGFza2hlbHBlcl0g
dGFzayBkaXNwYXRjaDpzZXNzaW9uLmdldF91dWlkIEQ6Y2E4MWE2MGIxMzVlIGNyZWF0ZWQgYnkg
dGFzayBEOjk2NTIyYjBiYmE0Ygo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFsg
aW5mb3xnNnhlbnRlc3R8NDM3MSBVTklYIC92YXIvbGliL3hjcC94YXBpfHNlc3Npb24ubG9nb3V0
IEQ6ZDQ1ZmUyOWNjNDcyfHhhcGldIFNlc3Npb24uZGVzdHJveSB0cmFja2lkPWI0MGVlMGY3MGRm
NjY2OWQyOGQ2N2NkMDc3MDAzNzM0Cj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1
MjY2XSBFeGNlcHRpb24gaW4gYWN0aXZhdGUvYXR0YWNoCj4+IERlYyAzMCAwNjo1MTozOCBnNnhl
bnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzcyIFVOSVggL3Zhci9saWIveGNwL3hhcGl8
fGR1bW15dGFza2hlbHBlcl0gdGFzayBkaXNwYXRjaDpWREkuZ2V0X2J5X3V1aWQgRDo4MTZiYWU0
NDRmNmMgY3JlYXRlZCBieSB0YXNrIEQ6N2IwMzMwMWMxODRjCj4+IERlYyAzMCAwNjo1MTozOCBn
NnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzczIFVOSVggL3Zhci9saWIveGNwL3hh
cGl8fGR1bW15dGFza2hlbHBlcl0gdGFzayBkaXNwYXRjaDpob3N0LmdldF9ieV91dWlkIEQ6OWMw
NWRlM2M2ZjI0IGNyZWF0ZWQgYnkgdGFzayBEOjdiMDMzMDFjMTg0Ywo+PiBEZWMgMzAgMDY6NTE6
MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM3NCBVTklYIC92YXIvbGliL3hj
cC94YXBpfHxkdW1teXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6VkRJLmdldF9zbV9jb25maWcg
RDowYTRmMTUyZmZlMjYgY3JlYXRlZCBieSB0YXNrIEQ6N2IwMzMwMWMxODRjCj4+IERlYyAzMCAw
Njo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0Mzc1IFVOSVggL3Zhci9s
aWIveGNwL3hhcGl8fGR1bW15dGFza2hlbHBlcl0gdGFzayBkaXNwYXRjaDpWREkucmVtb3ZlX2Zy
b21fc21fY29uZmlnIEQ6Y2I2NzdkZmU5N2YwIGNyZWF0ZWQgYnkgdGFzayBEOjdiMDMzMDFjMTg0
Ywo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM3
NSBVTklYIC92YXIvbGliL3hjcC94YXBpfGRpc3BhdGNoOlZESS5yZW1vdmVfZnJvbV9zbV9jb25m
aWcgRDpjYjY3N2RmZTk3ZjB8YXBpX2VmZmVjdF0gVkRJLnJlbW92ZV9mcm9tX3NtX2NvbmZpZwo+
PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFsyMDE0MTIzMFQwNTo1MTozOC4zOTZa
fGF1ZGl0fGc2eGVudGVzdHw0Mzc1IFVOSVggL3Zhci9saWIveGNwL3hhcGl8VkRJLnJlbW92ZV9m
cm9tX3NtX2NvbmZpZyBEOjU1MGI4N2U3ZDg3ZnxhdWRpdF0gKCd0cmFja2lkPWJlMmUwZDAwNDQ2
MTZmOTBjOGI3M2Y2MDgzMDk1NDFlJyAnTE9DQUxfU1VQRVJVU0VSJyAnX19zbV9fYmFja2VuZCcg
J0FMTE9XRUQnICdPSycgJ0FQSScgJ1ZESS5yZW1vdmVfZnJvbV9zbV9jb25maWcnICgoJ3NlbGYn
ICdYT0EgU3lzdGVtJyAnY2FlMzBlOWItZWJkNC00NDUwLThjZTAtOWY0MDM1Y2E2MmYxJyAnT3Bh
cXVlUmVmOjBiMTMyY2E2LWI4ZTctYzExZi02ZmZmLWRlYzA4NDMyY2FmZScpKSkKPj4gRGVjIDMw
IDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdIFJlbW92ZWQgaG9zdCBrZXkgaG9zdF9PcGFx
dWVSZWY6YmMwMDFkNTctNjVjZS04YjJiLTc0YjQtY2Q3MTk3NjI3MmMwIGZvciBjYWUzMGU5Yi1l
YmQ0LTQ0NTAtOGNlMC05ZjQwMzVjYTYyZjEKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBT
TTogWzUyNjZdICoqKioqIEJMS1RBUDI6PGZ1bmN0aW9uIF9hY3RpdmF0ZV9sb2NrZWQgYXQgMHg3
ZjYxMWE4MDFlZDg+OiBFWENFUFRJT04gPHR5cGUgJ2V4Y2VwdGlvbnMuQXR0cmlidXRlRXJyb3In
PiwgJ0NvbW1hbmRGYWlsdXJlJyBvYmplY3QgaGFzIG5vIGF0dHJpYnV0ZSAnc3RhdHVzJwo+PiBE
ZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICBGaWxlICIvdXNyL2xpYi94YXBp
L3NtL2Jsa3RhcDIucHkiLCBsaW5lIDgzLCBpbiB3cmFwcGVyCj4+IERlYyAzMCAwNjo1MTozOCBn
NnhlbnRlc3QgU006IFs1MjY2XSAgICAgcmV0ID0gb3Aoc2VsZiwgKmFyZ3MpCj4+IERlYyAzMCAw
Njo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2XSAgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxr
dGFwMi5weSIsIGxpbmUgMTUyMiwgaW4gX2FjdGl2YXRlX2xvY2tlZAo+PiBEZWMgMzAgMDY6NTE6
MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICAgIGRldl9wYXRoID0gc2VsZi5fYWN0aXZhdGUoc3Jf
dXVpZCwgdmRpX3V1aWQsIG9wdGlvbnMpCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006
IFs1MjY2XSAgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTU2MCwg
aW4gX2FjdGl2YXRlCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2XSBzZWxm
Ll9nZXRfcG9vbF9jb25maWcoc3JfdXVpZCkuZ2V0KCJtZW0tcG9vbC1zaXplIikpCj4+IERlYyAz
MCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2XSAgIEZpbGUgIi91c3IvbGliL3hhcGkvc20v
YmxrdGFwMi5weSIsIGxpbmUgMTI0MywgaW4gX3RhcF9hY3RpdmF0ZQo+PiBEZWMgMzAgMDY6NTE6
MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICAgIHRhcGRpc2sgPSBUYXBkaXNrLmZpbmRfYnlfcGF0
aChwaHlfcGF0aCkKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAgRmls
ZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA2OTAsIGluIGZpbmRfYnlfcGF0
aAo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICAgIHJldHVybiBjbHMu
ZmluZChwYXRoPXBhdGgpCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2XSAg
IEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgNjc4LCBpbiBmaW5kCj4+
IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2XSAgICAgZm91bmQgPSBsaXN0KGNs
cy5saXN0KCoqYXJncykpCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2XSAg
IEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgNjUzLCBpbiBsaXN0Cj4+
IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2XSAgICAgZm9yIHJvdyBpbiBUYXBD
dGwubGlzdCgqKmFyZ3MpOgo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0g
ICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDExOCwgaW4gbG9vcAo+
PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICAgIHJldHVybiBmKCpfX3Qs
ICoqX19kKQo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICBGaWxlICIv
dXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDM0OCwgaW4gbGlzdAo+PiBEZWMgMzAg
MDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICAgIGlmIGUuc3RhdHVzIGluIHRyYW5zaWVu
dDoKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAgRmlsZSAiL3Vzci9s
aWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNjIsIGluIF9fZ2V0YXR0cl9fCj4+IERlYyAz
MCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2XSAgICAgcmV0dXJuIG9iamVjdC5fX2dldGF0
dHJpYnV0ZV9fKHNlbGYsIGtleSkKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUy
NjZdCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2XSBsb2NrOiByZWxlYXNl
ZCAvdmFyL2xvY2svc20vY2FlMzBlOWItZWJkNC00NDUwLThjZTAtOWY0MDM1Y2E2MmYxL3ZkaQo+
PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gKioqKiogZ2VuZXJpYyBleGNl
cHRpb246IHZkaV9hY3RpdmF0ZTogRVhDRVBUSU9OIDx0eXBlICdleGNlcHRpb25zLkF0dHJpYnV0
ZUVycm9yJz4sICdDb21tYW5kRmFpbHVyZScgb2JqZWN0IGhhcyBubyBhdHRyaWJ1dGUgJ3N0YXR1
cycKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAgRmlsZSAiL3Vzci9s
aWIveGFwaS9zbS9TUkNvbW1hbmQucHkiLCBsaW5lIDExMCwgaW4gcnVuCj4+IERlYyAzMCAwNjo1
MTozOCBnNnhlbnRlc3QgU006IFs1MjY2XSAgICAgcmV0dXJuIHNlbGYuX3J1bl9sb2NrZWQoc3Ip
Cj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2XSAgIEZpbGUgIi91c3IvbGli
L3hhcGkvc20vU1JDb21tYW5kLnB5IiwgbGluZSAxNTksIGluIF9ydW5fbG9ja2VkCj4+IERlYyAz
MCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2XSAgICAgcnYgPSBzZWxmLl9ydW4oc3IsIHRh
cmdldCkKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAgRmlsZSAiL3Vz
ci9saWIveGFwaS9zbS9TUkNvbW1hbmQucHkiLCBsaW5lIDI2MywgaW4gX3J1bgo+PiBEZWMgMzAg
MDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICAgIHdyaXRhYmxlLCBjYWNoaW5nX3BhcmFt
cykKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAgRmlsZSAiL3Vzci9s
aWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNDg2LCBpbiBhY3RpdmF0ZQo+PiBEZWMgMzAg
MDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICAgIGlmIHNlbGYuX2FjdGl2YXRlX2xvY2tl
ZChzcl91dWlkLCB2ZGlfdXVpZCwgb3B0aW9ucyk6Cj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRl
c3QgU006IFs1MjY2XSAgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUg
ODMsIGluIHdyYXBwZXIKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAg
ICByZXQgPSBvcChzZWxmLCAqYXJncykKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTog
WzUyNjZdICAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNTIyLCBp
biBfYWN0aXZhdGVfbG9ja2VkCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2
XSAgICAgZGV2X3BhdGggPSBzZWxmLl9hY3RpdmF0ZShzcl91dWlkLCB2ZGlfdXVpZCwgb3B0aW9u
cykKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAgRmlsZSAiL3Vzci9s
aWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNTYwLCBpbiBfYWN0aXZhdGUKPj4gRGVjIDMw
IDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdIHNlbGYuX2dldF9wb29sX2NvbmZpZyhzcl91
dWlkKS5nZXQoIm1lbS1wb29sLXNpemUiKSkKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBT
TTogWzUyNjZdICAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxMjQz
LCBpbiBfdGFwX2FjdGl2YXRlCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2
XSAgICAgdGFwZGlzayA9IFRhcGRpc2suZmluZF9ieV9wYXRoKHBoeV9wYXRoKQo+PiBEZWMgMzAg
MDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Js
a3RhcDIucHkiLCBsaW5lIDY5MCwgaW4gZmluZF9ieV9wYXRoCj4+IERlYyAzMCAwNjo1MTozOCBn
NnhlbnRlc3QgU006IFs1MjY2XSAgICAgcmV0dXJuIGNscy5maW5kKHBhdGg9cGF0aCkKPj4gRGVj
IDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAgRmlsZSAiL3Vzci9saWIveGFwaS9z
bS9ibGt0YXAyLnB5IiwgbGluZSA2NzgsIGluIGZpbmQKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVu
dGVzdCBTTTogWzUyNjZdICAgICBmb3VuZCA9IGxpc3QoY2xzLmxpc3QoKiphcmdzKSkKPj4gRGVj
IDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAgRmlsZSAiL3Vzci9saWIveGFwaS9z
bS9ibGt0YXAyLnB5IiwgbGluZSA2NTMsIGluIGxpc3QKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVu
dGVzdCBTTTogWzUyNjZdICAgICBmb3Igcm93IGluIFRhcEN0bC5saXN0KCoqYXJncyk6Cj4+IERl
YyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2XSAgIEZpbGUgIi91c3IvbGliL3hhcGkv
c20vYmxrdGFwMi5weSIsIGxpbmUgMTE4LCBpbiBsb29wCj4+IERlYyAzMCAwNjo1MTozOCBnNnhl
bnRlc3QgU006IFs1MjY2XSAgICAgcmV0dXJuIGYoKl9fdCwgKipfX2QpCj4+IERlYyAzMCAwNjo1
MTozOCBnNnhlbnRlc3QgU006IFs1MjY2XSAgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFw
Mi5weSIsIGxpbmUgMzQ4LCBpbiBsaXN0Cj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006
IFs1MjY2XSAgICAgaWYgZS5zdGF0dXMgaW4gdHJhbnNpZW50Ogo+PiBEZWMgMzAgMDY6NTE6Mzgg
ZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHki
LCBsaW5lIDE2MiwgaW4gX19nZXRhdHRyX18KPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBT
TTogWzUyNjZdICAgICByZXR1cm4gb2JqZWN0Ll9fZ2V0YXR0cmlidXRlX18oc2VsZiwga2V5KQo+
PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0KPj4gRGVjIDMwIDA2OjUxOjM4
IGc2eGVudGVzdCBTTTogWzUyNjZdIGxvY2s6IGNsb3NlZCAvdmFyL2xvY2svc20vY2FlMzBlOWIt
ZWJkNC00NDUwLThjZTAtOWY0MDM1Y2E2MmYxL3ZkaQo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50
ZXN0IFNNOiBbNTI2Nl0gbG9jazogY2xvc2VkIC92YXIvbG9jay9zbS83ODdiMDg3NC04ZThiLWU3
ZDgtOGJhOS03NGY1NWZmMmVhMTYvc3IKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBmb3Jr
ZXhlY2Q6IFtlcnJvcnxnNnhlbnRlc3R8MHx8Zm9ya2V4ZWNkXSA1MjY2ICgvb3B0L3hlbnNvdXJj
ZS9zbS9ORlNTUiA8bWV0aG9kQ2FsbD48bWV0aG9kTmFtZT52ZGlfYWN0aXZhdGU8L21ldGhvZE5h
bWU+PHBhci4uLikgZXhpdHRlZCB3aXRoIGNvZGUgMQo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50
ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM0MHxzbV9leGVjIEQ6NzRhNTkyYWVkZGIzfHhh
cGldIFJhaXNlZCBhdCBmaWxlIFwibGliL2ZvcmtoZWxwZXJzLm1sXCIsIGxpbmUgMTgxLCBjaGFy
YWN0ZXJzIDMxLTc1XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBs
aW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFw
aTogW2RlYnVnfGc2eGVudGVzdHw0MzQwfHNtX2V4ZWMgRDo3NGE1OTJhZWRkYjN8eGFwaV0gUmFp
c2VkIGF0IGZpbGUgXCJzbV9leGVjLm1sXCIsIGxpbmUgMTkzLCBjaGFyYWN0ZXJzIDEwLTEwMFxu
Q2FsbGVkIGZyb20gZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFj
dGVycyAyLTlcbgo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhl
bnRlc3R8NDM0MHxzbV9leGVjIEQ6NzRhNTkyYWVkZGIzfHhhcGldIFJhaXNlZCBhdCBmaWxlIFwi
bGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFyYWN0ZXJzIDIyLTI1XG5DYWxsZWQg
ZnJvbSBmaWxlIFwic21fZXhlYy5tbFwiLCBsaW5lIDE3NSwgY2hhcmFjdGVycyAyMy0xMDIzXG5D
YWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0
ZXJzIDItOVxuCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogWyBpbmZvfGc2eGVu
dGVzdHw0MzQwfHNtX2V4ZWMgRDo3NGE1OTJhZWRkYjN8eGFwaV0gU2Vzc2lvbi5kZXN0cm95IHRy
YWNraWQ9YmUyZTBkMDA0NDYxNmY5MGM4YjczZjYwODMwOTU0MWUKPj4gRGVjIDMwIDA2OjUxOjM4
IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzNDB8c21fZXhlYyBEOjc0YTU5MmFl
ZGRiM3xiYWNrdHJhY2VdIFJhaXNlZCBhdCBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBs
aW5lIDI2LCBjaGFyYWN0ZXJzIDIyLTI1XG5DYWxsZWQgZnJvbSBmaWxlIFwic2VydmVyX2hlbHBl
cnMubWxcIiwgbGluZSA3MiwgY2hhcmFjdGVycyAxMS0yM1xuCj4+IERlYyAzMCAwNjo1MTozOCBn
NnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzQwfHNtX2V4ZWMgRDo3NGE1OTJhZWRk
YjN8ZGlzcGF0Y2hlcl0gU2VydmVyX2hlbHBlcnMuZXhlYyBleGNlcHRpb25faGFuZGxlcjogR290
IGV4Y2VwdGlvbiBTUl9CQUNLRU5EX0ZBSUxVUkU6IFsgbm9uLXplcm8gZXhpdDsgOyBUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6IzAxMiAgRmlsZSAiL29wdC94ZW5zb3VyY2Uvc20v
TkZTU1IiLCBsaW5lIDI3OCwgaW4gPG1vZHVsZT4jMDEyICAgIFNSQ29tbWFuZC5ydW4oTkZTU1Is
IERSSVZFUl9JTkZPKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vU1JDb21tYW5kLnB5Iiwg
bGluZSAzNDQsIGluIHJ1biMwMTIgICAgcmV0ID0gY21kLnJ1bihzcikjMDEyICBGaWxlICIvdXNy
L2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMTEwLCBpbiBydW4jMDEyICAgIHJldHVy
biBzZWxmLl9ydW5fbG9ja2VkKHNyKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vU1JDb21t
YW5kLnB5IiwgbGluZSAxNTksIGluIF9ydW5fbG9ja2VkIzAxMiAgICBydiA9IHNlbGYuX3J1bihz
ciwgdGFyZ2V0KSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vU1JDb21tYW5kLnB5IiwgbGlu
ZSAyNjMsIGluIF9ydW4jMDEyICAgIHdyaXRhYmxlLCBjYWNoaW5nX3BhcmFtcykjMDEyICBGaWxl
ICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDE0ODYsIGluIGFjdGl2YXRlIzAx
MiAgICBpZiBzZWxmLl9hY3RpdmF0ZV9sb2NrZWQoc3JfdXVpZCwgdmRpX3V1aWQsIG9wdGlvbnMp
OiMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgODMsIGluIHdy
YXBwZXIjMDEyICAgIHJldCA9IG9wKHNlbGYsICphcmdzKSMwMTIgIEZpbGUgIi91c3IvbGliL3hh
cGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTUyMiwgaW4gX2FjdGl2YXRlX2xvY2tlZCMwMTIgICAg
ZGV2X3BhdGggPSBzZWxmLl9hY3RpdmF0ZShzcl91dWlkLCB2ZGlfdXVpZCwgb3B0aW9ucykjMDEy
ICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDE1NjAsIGluIF9hY3Rp
dmF0ZSMwMTIgc2VsZi5fZ2V0X3Bvb2xfY29uZmlnKHNyX3V1aWQpLmdldCgibWVtLXBvb2wtc2l6
ZSIpKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTI0Mywg
aW4gX3RhcF9hY3RpdmF0ZSMwMTIgdGFwZGlzayA9IFRhcGRpc2suZmluZF9ieV9wYXRoKHBoeV9w
YXRoKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgNjkwLCBp
biBmaW5kX2J5X3BhdGgjMDEyIHJldHVybiBjbHMuZmluZChwYXRoPXBhdGgpIzAxMiAgRmlsZSAi
L3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA2NzgsIGluIGZpbmQjMDEyICAgIGZv
dW5kID0gbGlzdChjbHMubGlzdCgqKmFyZ3MpKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20v
YmxrdGFwMi5weSIsIGxpbmUgNjUzLCBpbiBsaXN0IzAxMiAgICBmb3Igcm93IGluIFRhcEN0bC5s
aXN0KCoqYXJncyk6IzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGlu
ZSAxMTgsIGluIGxvb3AjMDEyICAgIHJldHVybiBmKCpfX3QsICoqX19kKSMwMTIgIEZpbGUgIi91
c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMzQ4LCBpbiBsaXN0IzAxMiAgICBpZiBl
LnN0YXR1cyBpbiB0cmFuc2llbnQ6IzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAy
LnB5IiwgbGluZSAxNjIsIGluIF9fZ2V0YXR0cl9fIzAxMiAgICByZXR1cm4gb2JqZWN0Ll9fZ2V0
YXR0cmlidXRlX18oc2VsZiwga2V5KSMwMTJBdHRyaWJ1dGVFcnJvcjogJ0NvbW1hbmRGYWlsdXJl
JyBvYmplY3QgaGFzIG5vIGF0dHJpYnV0ZSAnc3RhdHVzJyMwMTIgXQo+PiBEZWMgMzAgMDY6NTE6
MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM0MHxzbV9leGVjIEQ6NzRhNTky
YWVkZGIzfGRpc3BhdGNoZXJdIFJhaXNlZCBhdCBmaWxlIFwiaGFzaHRibC5tbFwiLCBsaW5lIDEz
NiwgY2hhcmFjdGVycyAxOS0yOFxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9kZWJ1Zy5tbFwiLCBs
aW5lIDE3MiwgY2hhcmFjdGVycyAzNy02NFxuCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3Qg
eGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzQwfHNtX2V4ZWMgRDo3NGE1OTJhZWRkYjN8YmFja3Ry
YWNlXSBSYWlzZWQgYXQgZmlsZSBcImhhc2h0YmwubWxcIiwgbGluZSAxMzYsIGNoYXJhY3RlcnMg
MTktMjhcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvZGVidWcubWxcIiwgbGluZSAxNzIsIGNoYXJh
Y3RlcnMgMzctNjRcbgo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xn
NnhlbnRlc3R8NDM0MHxzbV9leGVjIEQ6NzRhNTkyYWVkZGIzfHhhcGldIFJhaXNlZCBhdCBmaWxl
IFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGluZSA5MCwgY2hhcmFjdGVycyAxNC0xNVxuQ2FsbGVk
IGZyb20gZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFjdGVycyAy
LTlcbgo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8
NDM0MHxWREkuYWN0aXZhdGUgRDo3YjAzMzAxYzE4NGN8eGFwaV0gUmFpc2VkIGF0IGZpbGUgXCJs
aWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxlZCBm
cm9tIGZpbGUgXCJsaWIvZGVidWcubWxcIiwgbGluZSA1NywgY2hhcmFjdGVycyAxNy0yMFxuUmUt
cmFpc2VkIGF0IGZpbGUgXCJsaWIvZGVidWcubWxcIiwgbGluZSA2MiwgY2hhcmFjdGVycyAxMC0x
MVxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hh
cmFjdGVycyAyLTlcbgo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xn
NnhlbnRlc3R8NDM0MHxWREkuYWN0aXZhdGUgRDo3YjAzMzAxYzE4NGN8YmFja3RyYWNlXSBSYWlz
ZWQgYXQgZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyNiwgY2hhcmFjdGVycyAy
Mi0yNVxuQ2FsbGVkIGZyb20gZmlsZSBcInNtLm1sXCIsIGxpbmUgMTcxLCBjaGFyYWN0ZXJzIDIx
LTcyXG5DYWxsZWQgZnJvbSBmaWxlIFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGluZSA3MiwgY2hh
cmFjdGVycyAxMS0yM1xuCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVn
fGc2eGVudGVzdHw0MzQwfFZESS5hY3RpdmF0ZSBEOjdiMDMzMDFjMTg0Y3xkaXNwYXRjaGVyXSBT
ZXJ2ZXJfaGVscGVycy5leGVjIGV4Y2VwdGlvbl9oYW5kbGVyOiBHb3QgZXhjZXB0aW9uIFNSX0JB
Q0tFTkRfRkFJTFVSRTogWyBub24temVybyBleGl0OyA7IFRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KTojMDEyICBGaWxlICIvb3B0L3hlbnNvdXJjZS9zbS9ORlNTUiIsIGxpbmUgMjc4
LCBpbiA8bW9kdWxlPiMwMTIgICAgU1JDb21tYW5kLnJ1bihORlNTUiwgRFJJVkVSX0lORk8pIzAx
MiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1hbmQucHkiLCBsaW5lIDM0NCwgaW4gcnVu
IzAxMiAgICByZXQgPSBjbWQucnVuKHNyKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vU1JD
b21tYW5kLnB5IiwgbGluZSAxMTAsIGluIHJ1biMwMTIgICAgcmV0dXJuIHNlbGYuX3J1bl9sb2Nr
ZWQoc3IpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1hbmQucHkiLCBsaW5lIDE1
OSwgaW4gX3J1bl9sb2NrZWQjMDEyICAgIHJ2ID0gc2VsZi5fcnVuKHNyLCB0YXJnZXQpIzAxMiAg
RmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1hbmQucHkiLCBsaW5lIDI2MywgaW4gX3J1biMw
MTIgICAgd3JpdGFibGUsIGNhY2hpbmdfcGFyYW1zKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkv
c20vYmxrdGFwMi5weSIsIGxpbmUgMTQ4NiwgaW4gYWN0aXZhdGUjMDEyICAgIGlmIHNlbGYuX2Fj
dGl2YXRlX2xvY2tlZChzcl91dWlkLCB2ZGlfdXVpZCwgb3B0aW9ucyk6IzAxMiAgRmlsZSAiL3Vz
ci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA4MywgaW4gd3JhcHBlciMwMTIgICAgcmV0
ID0gb3Aoc2VsZiwgKmFyZ3MpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5
IiwgbGluZSAxNTIyLCBpbiBfYWN0aXZhdGVfbG9ja2VkIzAxMiAgICBkZXZfcGF0aCA9IHNlbGYu
X2FjdGl2YXRlKHNyX3V1aWQsIHZkaV91dWlkLCBvcHRpb25zKSMwMTIgIEZpbGUgIi91c3IvbGli
L3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTU2MCwgaW4gX2FjdGl2YXRlIzAxMiBzZWxmLl9n
ZXRfcG9vbF9jb25maWcoc3JfdXVpZCkuZ2V0KCJtZW0tcG9vbC1zaXplIikpIzAxMiAgRmlsZSAi
L3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxMjQzLCBpbiBfdGFwX2FjdGl2YXRl
IzAxMiB0YXBkaXNrID0gVGFwZGlzay5maW5kX2J5X3BhdGgocGh5X3BhdGgpIzAxMiAgRmlsZSAi
L3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA2OTAsIGluIGZpbmRfYnlfcGF0aCMw
MTIgcmV0dXJuIGNscy5maW5kKHBhdGg9cGF0aCkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3Nt
L2Jsa3RhcDIucHkiLCBsaW5lIDY3OCwgaW4gZmluZCMwMTIgICAgZm91bmQgPSBsaXN0KGNscy5s
aXN0KCoqYXJncykpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGlu
ZSA2NTMsIGluIGxpc3QjMDEyICAgIGZvciByb3cgaW4gVGFwQ3RsLmxpc3QoKiphcmdzKTojMDEy
ICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDExOCwgaW4gbG9vcCMw
MTIgICAgcmV0dXJuIGYoKl9fdCwgKipfX2QpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9i
bGt0YXAyLnB5IiwgbGluZSAzNDgsIGluIGxpc3QjMDEyICAgIGlmIGUuc3RhdHVzIGluIHRyYW5z
aWVudDojMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDE2Miwg
aW4gX19nZXRhdHRyX18jMDEyICAgIHJldHVybiBvYmplY3QuX19nZXRhdHRyaWJ1dGVfXyhzZWxm
LCBrZXkpIzAxMkF0dHJpYnV0ZUVycm9yOiAnQ29tbWFuZEZhaWx1cmUnIG9iamVjdCBoYXMgbm8g
YXR0cmlidXRlICdzdGF0dXMnIzAxMiBdCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFw
aTogW2RlYnVnfGc2eGVudGVzdHw0MzQwfFZESS5hY3RpdmF0ZSBEOjdiMDMzMDFjMTg0Y3xkaXNw
YXRjaGVyXSBSYWlzZWQgYXQgZmlsZSBcImhhc2h0YmwubWxcIiwgbGluZSAxMzYsIGNoYXJhY3Rl
cnMgMTktMjhcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvZGVidWcubWxcIiwgbGluZSAxNzIsIGNo
YXJhY3RlcnMgMzctNjRcbgo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1
Z3xnNnhlbnRlc3R8NDM0MHxWREkuYWN0aXZhdGUgRDo3YjAzMzAxYzE4NGN8YmFja3RyYWNlXSBS
YWlzZWQgYXQgZmlsZSBcImhhc2h0YmwubWxcIiwgbGluZSAxMzYsIGNoYXJhY3RlcnMgMTktMjhc
bkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvZGVidWcubWxcIiwgbGluZSAxNzIsIGNoYXJhY3RlcnMg
MzctNjRcbgo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRl
c3R8NDM0MHxWREkuYWN0aXZhdGUgRDo3YjAzMzAxYzE4NGN8eGFwaV0gUmFpc2VkIGF0IGZpbGUg
XCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDkwLCBjaGFyYWN0ZXJzIDE0LTE1XG5DYWxsZWQg
ZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDIt
OVxuCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0
MzQwfHx4YXBpXSBSYWlzZWQgYXQgZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAy
NiwgY2hhcmFjdGVycyAyMi0yNVxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9kZWJ1Zy5tbFwiLCBs
aW5lIDU3LCBjaGFyYWN0ZXJzIDE3LTIwXG5SZS1yYWlzZWQgYXQgZmlsZSBcImxpYi9kZWJ1Zy5t
bFwiLCBsaW5lIDYyLCBjaGFyYWN0ZXJzIDEwLTExXG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3Bl
cnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuCj4+IERlYyAzMCAwNjo1
MTozOCBnNnhlbnRlc3QgeGFwaTogW2Vycm9yfGc2eGVudGVzdHw0MzI1IFVOSVggL3Zhci9saWIv
eGNwL3hhcGl8VkJELnBsdWcgUjo2YTlmYmEzYTExNjZ8c3RvcmFnZV9pbXBsXSBTdG9yYWdlX2lt
cGw6IGRwOnZiZC8wL3h2ZGEgc3I6Nzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2
IHZkaTpjYWUzMGU5Yi1lYmQ0LTQ0NTAtOGNlMC05ZjQwMzVjYTYyZjEgb3A6YWN0aXZhdGUgZXJy
b3I6U3RvcmFnZV9pbnRlcmZhY2UuQmFja2VuZF9lcnJvcihfKSBiYWNrdHJhY2U6Q2FsbGVkIGZy
b20gZmlsZSAic3RvcmFnZV9pbXBsLm1sIiwgbGluZSAyOTksIGNoYXJhY3RlcnMgNy01MAo+PiBE
ZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMyNSBVTklY
IC92YXIvbGliL3hjcC94YXBpfFZCRC5wbHVnIFI6NmE5ZmJhM2ExMTY2fHhhcGldIENhbGxlZCBm
cm9tIGZpbGUgXCJzdG9yYWdlX2ltcGwubWxcIiwgbGluZSAyOTksIGNoYXJhY3RlcnMgNy01MFxu
UmUtcmFpc2VkIGF0IGZpbGUgXCJzdG9yYWdlX2ltcGwubWxcIiwgbGluZSAzMTksIGNoYXJhY3Rl
cnMgMTEtMTJcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaXN0Lm1sXCIsIGxpbmUgODQsIGNoYXJhY3Rl
cnMgMjQtMzRcbkNhbGxlZCBmcm9tIGZpbGUgXCJzdG9yYWdlX2ltcGwubWxcIiwgbGluZSAzNDEs
IGNoYXJhY3RlcnMgNi01NVxuUmUtcmFpc2VkIGF0IGZpbGUgXCJzdG9yYWdlX2ltcGwubWxcIiwg
bGluZSAzNDUsIGNoYXJhY3RlcnMgMTItMTNcbkNhbGxlZCBmcm9tIGZpbGUgXCJzdG9yYWdlX2lt
cGwubWxcIiwgbGluZSA0NDUsIGNoYXJhY3RlcnMgMTQtNzdcbkNhbGxlZCBmcm9tIGZpbGUgXCJs
aWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMgMi05XG4KPj4gRGVjIDMw
IDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZXJyb3J8ZzZ4ZW50ZXN0fDQzMjUgVU5JWCAvdmFy
L2xpYi94Y3AveGFwaXxWQkQucGx1ZyBSOjZhOWZiYTNhMTE2NnxzdG9yYWdlX2FjY2Vzc10gUmUt
cmFpc2luZyBhcyBTUl9CQUNLRU5EX0ZBSUxVUkUgWyBub24temVybyBleGl0OyA7IFRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KTojMDEyICBGaWxlICIvb3B0L3hlbnNvdXJjZS9zbS9O
RlNTUiIsIGxpbmUgMjc4LCBpbiA8bW9kdWxlPiMwMTIgICAgU1JDb21tYW5kLnJ1bihORlNTUiwg
RFJJVkVSX0lORk8pIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1hbmQucHkiLCBs
aW5lIDM0NCwgaW4gcnVuIzAxMiAgICByZXQgPSBjbWQucnVuKHNyKSMwMTIgIEZpbGUgIi91c3Iv
bGliL3hhcGkvc20vU1JDb21tYW5kLnB5IiwgbGluZSAxMTAsIGluIHJ1biMwMTIgICAgcmV0dXJu
IHNlbGYuX3J1bl9sb2NrZWQoc3IpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1h
bmQucHkiLCBsaW5lIDE1OSwgaW4gX3J1bl9sb2NrZWQjMDEyICAgIHJ2ID0gc2VsZi5fcnVuKHNy
LCB0YXJnZXQpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1hbmQucHkiLCBsaW5l
IDI2MywgaW4gX3J1biMwMTIgICAgd3JpdGFibGUsIGNhY2hpbmdfcGFyYW1zKSMwMTIgIEZpbGUg
Ii91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTQ4NiwgaW4gYWN0aXZhdGUjMDEy
ICAgIGlmIHNlbGYuX2FjdGl2YXRlX2xvY2tlZChzcl91dWlkLCB2ZGlfdXVpZCwgb3B0aW9ucyk6
IzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA4MywgaW4gd3Jh
cHBlciMwMTIgICAgcmV0ID0gb3Aoc2VsZiwgKmFyZ3MpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFw
aS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNTIyLCBpbiBfYWN0aXZhdGVfbG9ja2VkIzAxMiAgICBk
ZXZfcGF0aCA9IHNlbGYuX2FjdGl2YXRlKHNyX3V1aWQsIHZkaV91dWlkLCBvcHRpb25zKSMwMTIg
IEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTU2MCwgaW4gX2FjdGl2
YXRlIzAxMiBzZWxmLl9nZXRfcG9vbF9jb25maWcoc3JfdXVpZCkuZ2V0KCJtZW0tcG9vbC1zaXpl
IikpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxMjQzLCBp
biBfdGFwX2FjdGl2YXRlIzAxMiB0YXBkaXNrID0gVGFwZGlzay5maW5kX2J5X3BhdGgocGh5X3Bh
dGgpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA2OTAsIGlu
IGZpbmRfYnlfcGF0aCMwMTIgcmV0dXJuIGNscy5maW5kKHBhdGg9cGF0aCkjMDEyICBGaWxlICIv
dXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDY3OCwgaW4gZmluZCMwMTIgICAgZm91
bmQgPSBsaXN0KGNscy5saXN0KCoqYXJncykpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9i
bGt0YXAyLnB5IiwgbGluZSA2NTMsIGluIGxpc3QjMDEyICAgIGZvciByb3cgaW4gVGFwQ3RsLmxp
c3QoKiphcmdzKTojMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5l
IDExOCwgaW4gbG9vcCMwMTIgICAgcmV0dXJuIGYoKl9fdCwgKipfX2QpIzAxMiAgRmlsZSAiL3Vz
ci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAzNDgsIGluIGxpc3QjMDEyICAgIGlmIGUu
c3RhdHVzIGluIHRyYW5zaWVudDojMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIu
cHkiLCBsaW5lIDE2MiwgaW4gX19nZXRhdHRyX18jMDEyICAgIHJldHVybiBvYmplY3QuX19nZXRh
dHRyaWJ1dGVfXyhzZWxmLCBrZXkpIzAxMkF0dHJpYnV0ZUVycm9yOiAnQ29tbWFuZEZhaWx1cmUn
IG9iamVjdCBoYXMgbm8gYXR0cmlidXRlICdzdGF0dXMnIzAxMiBdCj4+IERlYyAzMCAwNjo1MToz
OCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzI1IFVOSVggL3Zhci9saWIveGNw
L3hhcGl8VkJELnBsdWcgUjo2YTlmYmEzYTExNjZ8eGFwaV0gUmFpc2VkIGF0IGZpbGUgXCJzdG9y
YWdlX2FjY2Vzcy5tbFwiLCBsaW5lIDk3MSwgY2hhcmFjdGVycyA5LTQ4XG5DYWxsZWQgZnJvbSBm
aWxlIFwic3RvcmFnZV9hY2Nlc3MubWxcIiwgbGluZSA5NjcsIGNoYXJhY3RlcnMgMi02XG5SZS1y
YWlzZWQgYXQgZmlsZSBcInN0b3JhZ2VfYWNjZXNzLm1sXCIsIGxpbmUgOTcyLCBjaGFyYWN0ZXJz
IDU2LTU3XG5DYWxsZWQgZnJvbSBmaWxlIFwibWVzc2FnZV9mb3J3YXJkaW5nLm1sXCIsIGxpbmUg
MjMzLCBjaGFyYWN0ZXJzIDI1LTQ0XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4
dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuCj4+IERlYyAzMCAwNjo1MTozOCBnNnhl
bnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzI1IFVOSVggL3Zhci9saWIveGNwL3hhcGl8
VkJELnBsdWcgUjo2YTlmYmEzYTExNjZ8YmFja3RyYWNlXSBSYWlzZWQgYXQgZmlsZSBcImxpYi9w
ZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyNiwgY2hhcmFjdGVycyAyMi0yNVxuQ2FsbGVkIGZyb20g
ZmlsZSBcIm1lc3NhZ2VfZm9yd2FyZGluZy5tbFwiLCBsaW5lIDM1MDIsIGNoYXJhY3RlcnMgMy0x
OTRcbkNhbGxlZCBmcm9tIGZpbGUgXCJyYmFjLm1sXCIsIGxpbmUgMjI3LCBjaGFyYWN0ZXJzIDE2
LTIzXG4KPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbMjAxNDEyMzBUMDU6NTE6
MzguNDY1WnxhdWRpdHxnNnhlbnRlc3R8NDMyNSBVTklYIC92YXIvbGliL3hjcC94YXBpfFZCRC5w
bHVnIFI6NmE5ZmJhM2ExMTY2fGF1ZGl0XSAoJ3RyYWNraWQ9Y2ExZTBlMDJmMWM2ZjlmY2M5ODAz
NjhlNzEwZDhjOGInICdMT0NBTF9TVVBFUlVTRVInICdPcGFxdWVSZWY6YmMwMDFkNTctNjVjZS04
YjJiLTc0YjQtY2Q3MTk3NjI3MmMwJyAnQUxMT1dFRCcgJ0VSUk9SOlNSX0JBQ0tFTkRfRkFJTFVS
RTogWyBub24temVybyBleGl0OyA7IFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KTog
ICBGaWxlIFwiL29wdC94ZW5zb3VyY2Uvc20vTkZTU1JcIiwgbGluZSAyNzgsIGluIDxtb2R1bGU+
ICAgICBTUkNvbW1hbmQucnVuKE5GU1NSLCBEUklWRVJfSU5GTykgICBGaWxlIFwiL3Vzci9saWIv
eGFwaS9zbS9TUkNvbW1hbmQucHlcIiwgbGluZSAzNDQsIGluIHJ1biAgICAgcmV0ID0gY21kLnJ1
bihzcikgICBGaWxlIFwiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1hbmQucHlcIiwgbGluZSAxMTAs
IGluIHJ1biAgICAgcmV0dXJuIHNlbGYuX3J1bl9sb2NrZWQoc3IpICAgRmlsZSBcIi91c3IvbGli
L3hhcGkvc20vU1JDb21tYW5kLnB5XCIsIGxpbmUgMTU5LCBpbiBfcnVuX2xvY2tlZCAgICAgcnYg
PSBzZWxmLl9ydW4oc3IsIHRhcmdldCkgICBGaWxlIFwiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1h
bmQucHlcIiwgbGluZSAyNjMsIGluIF9ydW4gICAgIHdyaXRhYmxlLCBjYWNoaW5nX3BhcmFtcykg
ICBGaWxlIFwiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5XCIsIGxpbmUgMTQ4NiwgaW4gYWN0
aXZhdGUgICAgIGlmIHNlbGYuX2FjdGl2YXRlX2xvY2tlZChzcl91dWlkLCB2ZGlfdXVpZCwgb3B0
aW9ucyk6ICAgRmlsZSBcIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weVwiLCBsaW5lIDgzLCBp
biB3cmFwcGVyICAgICByZXQgPSBvcChzZWxmLCAqYXJncykgICBGaWxlIFwiL3Vzci9saWIveGFw
aS9zbS9ibGt0YXAyLnB5XCIsIGxpbmUgMTUyMiwgaW4gX2FjdGl2YXRlX2xvY2tlZCAgICAgZGV2
X3BhdGggPSBzZWxmLl9hY3RpdmF0ZShzcl91dWlkLCB2ZGlfdXVpZCwgb3B0aW9ucykgICBGaWxl
IFwiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5XCIsIGxpbmUgMTU2MCwgaW4gX2FjdGl2YXRl
IHNlbGYuX2dldF9wb29sX2NvbmZpZyhzcl91dWlkKS5nZXQoXCJtZW0tcG9vbC1zaXplXCIpKSAg
IEZpbGUgXCIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHlcIiwgbGluZSAxMjQzLCBpbiBfdGFw
X2FjdGl2YXRlIHRhcGRpc2sgPSBUYXBkaXNrLmZpbmRfYnlfcGF0aChwaHlfcGF0aCkgICBGaWxl
IFwiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5XCIsIGxpbmUgNjkwLCBpbiBmaW5kX2J5X3Bh
dGggcmV0dXJuIGNscy5maW5kKHBhdGg9cGF0aCkgICBGaWxlIFwiL3Vzci9saWIveGFwaS9zbS9i
bGt0YXAyLnB5XCIsIGxpbmUgNjc4LCBpbiBmaW5kICAgICBmb3VuZCA9IGxpc3QoY2xzLmxpc3Qo
KiphcmdzKSkgICBGaWxlIFwiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5XCIsIGxpbmUgNjUz
LCBpbiBsaXN0ICAgICBmb3Igcm93IGluIFRhcEN0bC5saXN0KCoqYXJncyk6ICAgRmlsZSBcIi91
c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weVwiLCBsaW5lIDExOCwgaW4gbG9vcCAgICAgcmV0dXJu
IGYoKl9fdCwgKipfX2QpICAgRmlsZSBcIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weVwiLCBs
aW5lIDM0OCwgaW4gbGlzdCAgICAgaWYgZS5zdGF0dXMgaW4gdHJhbnNpZW50OiAgIEZpbGUgXCIv
dXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHlcIiwgbGluZSAxNjIsIGluIF9fZ2V0YXR0cl9fICAg
ICByZXR1cm4gb2JqZWN0Ll9fZ2V0YXR0cmlidXRlX18oc2VsZiwga2V5KSBBdHRyaWJ1dGVFcnJv
cjogXCdDb21tYW5kRmFpbHVyZVwnIG9iamVjdCBoYXMgbm8gYXR0cmlidXRlIFwnc3RhdHVzXCcg
IF0nICdBUEknICdWQkQucGx1ZycgKCgnc2VsZicgJycgJzU1NzE2ZWNmLTFhMjctYjI2NS02MDIx
LWYyMTk5NGEzNDZkZicgJ09wYXF1ZVJlZjo2MjkzNGVkOC02MDZjLTlhMjctY2E2Ni02MjViNDIy
MTNmZDEnKSkpCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVu
dGVzdHw0MzI1IFVOSVggL3Zhci9saWIveGNwL3hhcGl8VkJELnBsdWcgUjo2YTlmYmEzYTExNjZ8
YmFja3RyYWNlXSBSYWlzZWQgYXQgZmlsZSBcInJiYWMubWxcIiwgbGluZSAyMzYsIGNoYXJhY3Rl
cnMgMTAtMTVcbkNhbGxlZCBmcm9tIGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDc1
LCBjaGFyYWN0ZXJzIDExLTQxXG4KPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBb
ZGVidWd8ZzZ4ZW50ZXN0fDQzMjUgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWQkQucGx1ZyBSOjZh
OWZiYTNhMTE2NnxkaXNwYXRjaGVyXSBTZXJ2ZXJfaGVscGVycy5leGVjIGV4Y2VwdGlvbl9oYW5k
bGVyOiBHb3QgZXhjZXB0aW9uIFNSX0JBQ0tFTkRfRkFJTFVSRTogWyBub24temVybyBleGl0OyA7
IFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KTojMDEyICBGaWxlICIvb3B0L3hlbnNv
dXJjZS9zbS9ORlNTUiIsIGxpbmUgMjc4LCBpbiA8bW9kdWxlPiMwMTIgICAgU1JDb21tYW5kLnJ1
bihORlNTUiwgRFJJVkVSX0lORk8pIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1h
bmQucHkiLCBsaW5lIDM0NCwgaW4gcnVuIzAxMiAgICByZXQgPSBjbWQucnVuKHNyKSMwMTIgIEZp
bGUgIi91c3IvbGliL3hhcGkvc20vU1JDb21tYW5kLnB5IiwgbGluZSAxMTAsIGluIHJ1biMwMTIg
ICAgcmV0dXJuIHNlbGYuX3J1bl9sb2NrZWQoc3IpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9z
bS9TUkNvbW1hbmQucHkiLCBsaW5lIDE1OSwgaW4gX3J1bl9sb2NrZWQjMDEyICAgIHJ2ID0gc2Vs
Zi5fcnVuKHNyLCB0YXJnZXQpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1hbmQu
cHkiLCBsaW5lIDI2MywgaW4gX3J1biMwMTIgICAgd3JpdGFibGUsIGNhY2hpbmdfcGFyYW1zKSMw
MTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTQ4NiwgaW4gYWN0
aXZhdGUjMDEyICAgIGlmIHNlbGYuX2FjdGl2YXRlX2xvY2tlZChzcl91dWlkLCB2ZGlfdXVpZCwg
b3B0aW9ucyk6IzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA4
MywgaW4gd3JhcHBlciMwMTIgICAgcmV0ID0gb3Aoc2VsZiwgKmFyZ3MpIzAxMiAgRmlsZSAiL3Vz
ci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNTIyLCBpbiBfYWN0aXZhdGVfbG9ja2Vk
IzAxMiAgICBkZXZfcGF0aCA9IHNlbGYuX2FjdGl2YXRlKHNyX3V1aWQsIHZkaV91dWlkLCBvcHRp
b25zKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTU2MCwg
aW4gX2FjdGl2YXRlIzAxMiBzZWxmLl9nZXRfcG9vbF9jb25maWcoc3JfdXVpZCkuZ2V0KCJtZW0t
cG9vbC1zaXplIikpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGlu
ZSAxMjQzLCBpbiBfdGFwX2FjdGl2YXRlIzAxMiB0YXBkaXNrID0gVGFwZGlzay5maW5kX2J5X3Bh
dGgocGh5X3BhdGgpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGlu
ZSA2OTAsIGluIGZpbmRfYnlfcGF0aCMwMTIgcmV0dXJuIGNscy5maW5kKHBhdGg9cGF0aCkjMDEy
ICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDY3OCwgaW4gZmluZCMw
MTIgICAgZm91bmQgPSBsaXN0KGNscy5saXN0KCoqYXJncykpIzAxMiAgRmlsZSAiL3Vzci9saWIv
eGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA2NTMsIGluIGxpc3QjMDEyICAgIGZvciByb3cgaW4g
VGFwQ3RsLmxpc3QoKiphcmdzKTojMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIu
cHkiLCBsaW5lIDExOCwgaW4gbG9vcCMwMTIgICAgcmV0dXJuIGYoKl9fdCwgKipfX2QpIzAxMiAg
RmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAzNDgsIGluIGxpc3QjMDEy
ICAgIGlmIGUuc3RhdHVzIGluIHRyYW5zaWVudDojMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3Nt
L2Jsa3RhcDIucHkiLCBsaW5lIDE2MiwgaW4gX19nZXRhdHRyX18jMDEyICAgIHJldHVybiBvYmpl
Y3QuX19nZXRhdHRyaWJ1dGVfXyhzZWxmLCBrZXkpIzAxMkF0dHJpYnV0ZUVycm9yOiAnQ29tbWFu
ZEZhaWx1cmUnIG9iamVjdCBoYXMgbm8gYXR0cmlidXRlICdzdGF0dXMnIzAxMiBdCj4+IERlYyAz
MCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzI1IFVOSVggL3Zh
ci9saWIveGNwL3hhcGl8VkJELnBsdWcgUjo2YTlmYmEzYTExNjZ8ZGlzcGF0Y2hlcl0gUmFpc2Vk
IGF0IGZpbGUgXCJyYmFjLm1sXCIsIGxpbmUgMjM2LCBjaGFyYWN0ZXJzIDEwLTE1XG5DYWxsZWQg
ZnJvbSBmaWxlIFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGluZSA3NSwgY2hhcmFjdGVycyAxMS00
MVxuCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0
MzI1IFVOSVggL3Zhci9saWIveGNwL3hhcGl8VkJELnBsdWcgUjo2YTlmYmEzYTExNjZ8YmFja3Ry
YWNlXSBSYWlzZWQgYXQgZmlsZSBcInJiYWMubWxcIiwgbGluZSAyMzYsIGNoYXJhY3RlcnMgMTAt
MTVcbkNhbGxlZCBmcm9tIGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDc1LCBjaGFy
YWN0ZXJzIDExLTQxXG4KPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8
ZzZ4ZW50ZXN0fDQzMjUgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWQkQucGx1ZyBSOjZhOWZiYTNh
MTE2Nnx4YXBpXSBSYWlzZWQgYXQgZmlsZSBcInNlcnZlcl9oZWxwZXJzLm1sXCIsIGxpbmUgOTAs
IGNoYXJhY3RlcnMgMTQtMTVcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1s
XCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMgMi05XG4KPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVz
dCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMjUgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxkaXNw
YXRjaDpWQkQucGx1ZyBEOmEwNjVhOGEwNmVhNXx4YXBpXSBSYWlzZWQgYXQgZmlsZSBcImxpYi9w
ZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyNiwgY2hhcmFjdGVycyAyMi0yNVxuQ2FsbGVkIGZyb20g
ZmlsZSBcImxpYi9kZWJ1Zy5tbFwiLCBsaW5lIDU3LCBjaGFyYWN0ZXJzIDE3LTIwXG5SZS1yYWlz
ZWQgYXQgZmlsZSBcImxpYi9kZWJ1Zy5tbFwiLCBsaW5lIDYyLCBjaGFyYWN0ZXJzIDEwLTExXG5D
YWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0
ZXJzIDItOVxuCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVu
dGVzdHw0MzI1IFVOSVggL3Zhci9saWIveGNwL3hhcGl8ZGlzcGF0Y2g6VkJELnBsdWcgRDphMDY1
YThhMDZlYTV8YmFja3RyYWNlXSBSYWlzZWQgYXQgZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxc
IiwgbGluZSAyNiwgY2hhcmFjdGVycyAyMi0yNVxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9kZWJ1
Zy5tbFwiLCBsaW5lIDU3LCBjaGFyYWN0ZXJzIDE3LTIwXG5SZS1yYWlzZWQgYXQgZmlsZSBcImxp
Yi9kZWJ1Zy5tbFwiLCBsaW5lIDYyLCBjaGFyYWN0ZXJzIDEwLTExXG5DYWxsZWQgZnJvbSBmaWxl
IFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuUmUtcmFp
c2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMg
MjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDEzNiwg
Y2hhcmFjdGVycyAxMC0xMDZcbkNhbGxlZCBmcm9tIGZpbGUgXCJzZXJ2ZXIubWxcIiwgbGluZSAy
NTA0NywgY2hhcmFjdGVycyAyMy0xNjFcbkNhbGxlZCBmcm9tIGZpbGUgXCJzZXJ2ZXJfaGVscGVy
cy5tbFwiLCBsaW5lIDExNSwgY2hhcmFjdGVycyA0LTdcbgo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4
ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMyBJTkVUIDo6OjgwfFZNIGltcG9ydCBS
OmRiZGIwZWU1YWUxNnx4YXBpXSBSYWlzZWQgYXQgZmlsZSBcImNsaWVudC5tbFwiLCBsaW5lIDYs
IGNoYXJhY3RlcnMgMzctNzVcbkNhbGxlZCBmcm9tIGZpbGUgXCJjbGllbnQubWxcIiwgbGluZSAx
OCwgY2hhcmFjdGVycyA1NS0xMTBcbkNhbGxlZCBmcm9tIGZpbGUgXCJjbGllbnQubWxcIiwgbGlu
ZSAxMDUzMCwgY2hhcmFjdGVycyA2LTUzXG5DYWxsZWQgZnJvbSBmaWxlIFwibGlzdC5tbFwiLCBs
aW5lIDczLCBjaGFyYWN0ZXJzIDEyLTE1XG5DYWxsZWQgZnJvbSBmaWxlIFwiYXR0YWNoX2hlbHBl
cnMubWxcIiwgbGluZSA3OSwgY2hhcmFjdGVycyA3LTc4N1xuQ2FsbGVkIGZyb20gZmlsZSBcImxp
Yi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFjdGVycyAyLTlcbgo+PiBEZWMgMzAg
MDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMyBJTkVUIDo6Ojgw
fFZNIGltcG9ydCBSOmRiZGIwZWU1YWUxNnxtc2NnZW5dIHhhcGk9PnhhcGkgW2xhYmVsPSJzZXNz
aW9uLnNsYXZlX2xvZ2luIl07Cj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2Rl
YnVnfGc2eGVudGVzdHw0Mzc2IFVOSVggL3Zhci9saWIveGNwL3hhcGl8fGR1bW15dGFza2hlbHBl
cl0gdGFzayBkaXNwYXRjaDpzZXNzaW9uLnNsYXZlX2xvZ2luIEQ6ZTI5YTEwOTM0MzdiIGNyZWF0
ZWQgYnkgdGFzayBSOmRiZGIwZWU1YWUxNgo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhh
cGk6IFsgaW5mb3xnNnhlbnRlc3R8NDM3NiBVTklYIC92YXIvbGliL3hjcC94YXBpfHNlc3Npb24u
c2xhdmVfbG9naW4gRDo1M2Y1YTUwOTE1M2N8eGFwaV0gU2Vzc2lvbi5jcmVhdGUgdHJhY2tpZD00
M2JlZTQ5NTRkYWY1MGJiOGMxNjNiY2Q2ODcwMmZkNCBwb29sPXRydWUgdW5hbWU9IG9yaWdpbmF0
b3I9IGlzX2xvY2FsX3N1cGVydXNlcj10cnVlIGF1dGhfdXNlcl9zaWQ9IHBhcmVudD10cmFja2lk
PTk4MzRmNWFmNDFjOTY0ZTIyNWYyNDI3OWFlZmU0ZTQ5Cj4+IERlYyAzMCAwNjo1MTozOCBnNnhl
bnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0Mzc2IFVOSVggL3Zhci9saWIveGNwL3hhcGl8
c2Vzc2lvbi5zbGF2ZV9sb2dpbiBEOjUzZjVhNTA5MTUzY3xtc2NnZW5dIHhhcGk9PnhhcGkgW2xh
YmVsPSJzZXNzaW9uLmdldF91dWlkIl07Cj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFw
aTogW2RlYnVnfGc2eGVudGVzdHw0Mzc3IFVOSVggL3Zhci9saWIveGNwL3hhcGl8fGR1bW15dGFz
a2hlbHBlcl0gdGFzayBkaXNwYXRjaDpzZXNzaW9uLmdldF91dWlkIEQ6MDBjNWJlZjNmOTU0IGNy
ZWF0ZWQgYnkgdGFzayBEOjUzZjVhNTA5MTUzYwo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0
IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMyBJTkVUIDo6OjgwfFZNIGltcG9ydCBSOmRiZGIw
ZWU1YWUxNnxtc2NnZW5dIHhhcGk9PnhhcGkgW2xhYmVsPSJWQkQudW5wbHVnIl07Cj4+IERlYyAz
MCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0Mzc4IFVOSVggL3Zh
ci9saWIveGNwL3hhcGl8fGR1bW15dGFza2hlbHBlcl0gdGFzayBkaXNwYXRjaDpWQkQudW5wbHVn
IEQ6MjhjMWQxNTI4ZWQxIGNyZWF0ZWQgYnkgdGFzayBSOmRiZGIwZWU1YWUxNgo+PiBEZWMgMzAg
MDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFsgaW5mb3xnNnhlbnRlc3R8NDM3OCBVTklYIC92YXIv
bGliL3hjcC94YXBpfGRpc3BhdGNoOlZCRC51bnBsdWcgRDoyOGMxZDE1MjhlZDF8dGFza2hlbHBl
cl0gdGFzayBWQkQudW5wbHVnIFI6NGRjMzU3NzhjOTVkICh1dWlkOjNlMWU3ZTk3LWFkM2QtZjZl
YS03NGIwLWI2NThmNmEyMzRjMikgY3JlYXRlZCAodHJhY2tpZD00M2JlZTQ5NTRkYWY1MGJiOGMx
NjNiY2Q2ODcwMmZkNCkgYnkgdGFzayBSOmRiZGIwZWU1YWUxNgo+PiBEZWMgMzAgMDY6NTE6Mzgg
ZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM3OCBVTklYIC92YXIvbGliL3hjcC94
YXBpfFZCRC51bnBsdWcgUjo0ZGMzNTc3OGM5NWR8YXVkaXRdIFZCRC51bnBsdWc6IFZCRCA9ICc1
NTcxNmVjZi0xYTI3LWIyNjUtNjAyMS1mMjE5OTRhMzQ2ZGYnCj4+IERlYyAzMCAwNjo1MTozOCBn
NnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0Mzc4IFVOSVggL3Zhci9saWIveGNwL3hh
cGl8VkJELnVucGx1ZyBSOjRkYzM1Nzc4Yzk1ZHxiYWNrdHJhY2VdIFJhaXNlZCBhdCBmaWxlIFwi
eGFwaV92YmRfaGVscGVycy5tbFwiLCBsaW5lIDIwMSwgY2hhcmFjdGVycyAzMy03MlxuQ2FsbGVk
IGZyb20gZmlsZSBcIm1lc3NhZ2VfZm9yd2FyZGluZy5tbFwiLCBsaW5lIDM0MzAsIGNoYXJhY3Rl
cnMgNS02NVxuQ2FsbGVkIGZyb20gZmlsZSBcIm1lc3NhZ2VfZm9yd2FyZGluZy5tbFwiLCBsaW5l
IDI4MywgY2hhcmFjdGVycyA1LThcbgo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6
IFtkZWJ1Z3xnNnhlbnRlc3R8NDM3OCBVTklYIC92YXIvbGliL3hjcC94YXBpfFZCRC51bnBsdWcg
Ujo0ZGMzNTc3OGM5NWR8eGFwaV0gQ2F1Z2h0IGV4Y2VwdGlvbiB3aGlsZSBERVZJQ0VfQUxSRUFE
WV9ERVRBQ0hFRDogWyBPcGFxdWVSZWY6NjI5MzRlZDgtNjA2Yy05YTI3LWNhNjYtNjI1YjQyMjEz
ZmQxIF0gaW4gbWVzc2FnZSBmb3J3YXJkZXI6IG1hcmtpbmcgVkJEIGZvciBWQkQudW5wbHVnCj4+
IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0Mzc4IFVO
SVggL3Zhci9saWIveGNwL3hhcGl8VkJELnVucGx1ZyBSOjRkYzM1Nzc4Yzk1ZHxiYWNrdHJhY2Vd
IFJhaXNlZCBhdCBmaWxlIFwieGFwaV92YmRfaGVscGVycy5tbFwiLCBsaW5lIDIwMSwgY2hhcmFj
dGVycyAzMy03MlxuQ2FsbGVkIGZyb20gZmlsZSBcIm1lc3NhZ2VfZm9yd2FyZGluZy5tbFwiLCBs
aW5lIDM0MzAsIGNoYXJhY3RlcnMgNS02NVxuQ2FsbGVkIGZyb20gZmlsZSBcIm1lc3NhZ2VfZm9y
d2FyZGluZy5tbFwiLCBsaW5lIDI4MywgY2hhcmFjdGVycyA1LThcblJlLXJhaXNlZCBhdCBmaWxl
IFwibWVzc2FnZV9mb3J3YXJkaW5nLm1sXCIsIGxpbmUgMjg2LCBjaGFyYWN0ZXJzIDgtOVxuQ2Fs
bGVkIGZyb20gZmlsZSBcImxpYi90aHJlYWRleHQubWxcIiwgbGluZSAyMCwgY2hhcmFjdGVycyAy
MC0yNFxuUmUtcmFpc2VkIGF0IGZpbGUgXCJsaWIvdGhyZWFkZXh0Lm1sXCIsIGxpbmUgMjAsIGNo
YXJhY3RlcnMgNjItNjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJtZXNzYWdlX2ZvcndhcmRpbmcubWxc
IiwgbGluZSAxNDksIGNoYXJhY3RlcnMgMTktMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJtZXNzYWdl
X2ZvcndhcmRpbmcubWxcIiwgbGluZSAzNDM1LCBjaGFyYWN0ZXJzIDMtODdcbkNhbGxlZCBmcm9t
IGZpbGUgXCJtZXNzYWdlX2ZvcndhcmRpbmcubWxcIiwgbGluZSAzNTExLCBjaGFyYWN0ZXJzIDMt
MjAwXG5DYWxsZWQgZnJvbSBmaWxlIFwicmJhYy5tbFwiLCBsaW5lIDIyNywgY2hhcmFjdGVycyAx
Ni0yM1xuCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogWzIwMTQxMjMwVDA1OjUx
OjM4LjUzOVp8YXVkaXR8ZzZ4ZW50ZXN0fDQzNzggVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWQkQu
dW5wbHVnIFI6NGRjMzU3NzhjOTVkfGF1ZGl0XSAoJ3RyYWNraWQ9NDNiZWU0OTU0ZGFmNTBiYjhj
MTYzYmNkNjg3MDJmZDQnICdMT0NBTF9TVVBFUlVTRVInICdPcGFxdWVSZWY6YmMwMDFkNTctNjVj
ZS04YjJiLTc0YjQtY2Q3MTk3NjI3MmMwJyAnQUxMT1dFRCcgJ0VSUk9SOkRFVklDRV9BTFJFQURZ
X0RFVEFDSEVEOiBbIE9wYXF1ZVJlZjo2MjkzNGVkOC02MDZjLTlhMjctY2E2Ni02MjViNDIyMTNm
ZDEgXScgJ0FQSScgJ1ZCRC51bnBsdWcnICgoJ3NlbGYnICcnICc1NTcxNmVjZi0xYTI3LWIyNjUt
NjAyMS1mMjE5OTRhMzQ2ZGYnICdPcGFxdWVSZWY6NjI5MzRlZDgtNjA2Yy05YTI3LWNhNjYtNjI1
YjQyMjEzZmQxJykpKQo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xn
NnhlbnRlc3R8NDM3OCBVTklYIC92YXIvbGliL3hjcC94YXBpfFZCRC51bnBsdWcgUjo0ZGMzNTc3
OGM5NWR8YmFja3RyYWNlXSBSYWlzZWQgYXQgZmlsZSBcInJiYWMubWxcIiwgbGluZSAyMzYsIGNo
YXJhY3RlcnMgMTAtMTVcbkNhbGxlZCBmcm9tIGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBs
aW5lIDc1LCBjaGFyYWN0ZXJzIDExLTQxXG4KPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4
YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzNzggVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWQkQudW5w
bHVnIFI6NGRjMzU3NzhjOTVkfGRpc3BhdGNoZXJdIFNlcnZlcl9oZWxwZXJzLmV4ZWMgZXhjZXB0
aW9uX2hhbmRsZXI6IEdvdCBleGNlcHRpb24gREVWSUNFX0FMUkVBRFlfREVUQUNIRUQ6IFsgT3Bh
cXVlUmVmOjYyOTM0ZWQ4LTYwNmMtOWEyNy1jYTY2LTYyNWI0MjIxM2ZkMSBdCj4+IERlYyAzMCAw
Njo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0Mzc4IFVOSVggL3Zhci9s
aWIveGNwL3hhcGl8VkJELnVucGx1ZyBSOjRkYzM1Nzc4Yzk1ZHxkaXNwYXRjaGVyXSBSYWlzZWQg
YXQgZmlsZSBcInJiYWMubWxcIiwgbGluZSAyMzYsIGNoYXJhY3RlcnMgMTAtMTVcbkNhbGxlZCBm
cm9tIGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDc1LCBjaGFyYWN0ZXJzIDExLTQx
XG4KPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQz
NzggVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWQkQudW5wbHVnIFI6NGRjMzU3NzhjOTVkfGJhY2t0
cmFjZV0gUmFpc2VkIGF0IGZpbGUgXCJyYmFjLm1sXCIsIGxpbmUgMjM2LCBjaGFyYWN0ZXJzIDEw
LTE1XG5DYWxsZWQgZnJvbSBmaWxlIFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGluZSA3NSwgY2hh
cmFjdGVycyAxMS00MVxuCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVn
fGc2eGVudGVzdHw0Mzc4IFVOSVggL3Zhci9saWIveGNwL3hhcGl8VkJELnVucGx1ZyBSOjRkYzM1
Nzc4Yzk1ZHx4YXBpXSBSYWlzZWQgYXQgZmlsZSBcInNlcnZlcl9oZWxwZXJzLm1sXCIsIGxpbmUg
OTAsIGNoYXJhY3RlcnMgMTQtMTVcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0
Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMgMi05XG4KPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVu
dGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzNzggVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxk
aXNwYXRjaDpWQkQudW5wbHVnIEQ6MjhjMWQxNTI4ZWQxfHhhcGldIFJhaXNlZCBhdCBmaWxlIFwi
bGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFyYWN0ZXJzIDIyLTI1XG5DYWxsZWQg
ZnJvbSBmaWxlIFwibGliL2RlYnVnLm1sXCIsIGxpbmUgNTcsIGNoYXJhY3RlcnMgMTctMjBcblJl
LXJhaXNlZCBhdCBmaWxlIFwibGliL2RlYnVnLm1sXCIsIGxpbmUgNjIsIGNoYXJhY3RlcnMgMTAt
MTFcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNo
YXJhY3RlcnMgMi05XG4KPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8
ZzZ4ZW50ZXN0fDQzNzggVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxkaXNwYXRjaDpWQkQudW5wbHVn
IEQ6MjhjMWQxNTI4ZWQxfGJhY2t0cmFjZV0gUmFpc2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZl
ZXh0Lm1sXCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJs
aWIvZGVidWcubWxcIiwgbGluZSA1NywgY2hhcmFjdGVycyAxNy0yMFxuUmUtcmFpc2VkIGF0IGZp
bGUgXCJsaWIvZGVidWcubWxcIiwgbGluZSA2MiwgY2hhcmFjdGVycyAxMC0xMVxuQ2FsbGVkIGZy
b20gZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFjdGVycyAyLTlc
blJlLXJhaXNlZCBhdCBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFy
YWN0ZXJzIDIyLTI1XG5DYWxsZWQgZnJvbSBmaWxlIFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGlu
ZSAxMzYsIGNoYXJhY3RlcnMgMTAtMTA2XG5DYWxsZWQgZnJvbSBmaWxlIFwic2VydmVyLm1sXCIs
IGxpbmUgMjUwNjgsIGNoYXJhY3RlcnMgMjMtMTYxXG5DYWxsZWQgZnJvbSBmaWxlIFwic2VydmVy
X2hlbHBlcnMubWxcIiwgbGluZSAxMTUsIGNoYXJhY3RlcnMgNC03XG4KPj4gRGVjIDMwIDA2OjUx
OjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMDMgSU5FVCA6Ojo4MHxWTSBp
bXBvcnQgUjpkYmRiMGVlNWFlMTZ8eGFwaV0gc2FmZV91bnBsdWcgY2F1Z2h0IERFVklDRV9BTFJF
QURZX0RFVEFDSEVEOiB0aGlzIGlzIHNhZmUgdG8gaWdub3JlCj4+IERlYyAzMCAwNjo1MTozOCBn
NnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzAzIElORVQgOjo6ODB8Vk0gaW1wb3J0
IFI6ZGJkYjBlZTVhZTE2fG1zY2dlbl0geGFwaT0+eGFwaSBbbGFiZWw9IlZCRC5kZXN0cm95Il07
Cj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0Mzc5
IFVOSVggL3Zhci9saWIveGNwL3hhcGl8fGR1bW15dGFza2hlbHBlcl0gdGFzayBkaXNwYXRjaDpW
QkQuZGVzdHJveSBEOmQyYTJmZmUxZWU0ZiBjcmVhdGVkIGJ5IHRhc2sgUjpkYmRiMGVlNWFlMTYK
Pj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbIGluZm98ZzZ4ZW50ZXN0fDQzNzkg
VU5JWCAvdmFyL2xpYi94Y3AveGFwaXxkaXNwYXRjaDpWQkQuZGVzdHJveSBEOmQyYTJmZmUxZWU0
Znx0YXNraGVscGVyXSB0YXNrIFZCRC5kZXN0cm95IFI6NzZjOGY4YWY4ZWMzICh1dWlkOjI4OTFj
MzhmLThjOTUtNGE4NC0wMWJlLWYzZmI5MjFiN2ViOCkgY3JlYXRlZCAodHJhY2tpZD00M2JlZTQ5
NTRkYWY1MGJiOGMxNjNiY2Q2ODcwMmZkNCkgYnkgdGFzayBSOmRiZGIwZWU1YWUxNgo+PiBEZWMg
MzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM3OSBVTklYIC92
YXIvbGliL3hjcC94YXBpfFZCRC5kZXN0cm95IFI6NzZjOGY4YWY4ZWMzfGF1ZGl0XSBWQkQuZGVz
dHJveTogVkJEID0gJzU1NzE2ZWNmLTFhMjctYjI2NS02MDIxLWYyMTk5NGEzNDZkZicKPj4gRGVj
IDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzNzkgVU5JWCAv
dmFyL2xpYi94Y3AveGFwaXxWQkQuZGVzdHJveSBSOjc2YzhmOGFmOGVjM3x4YXBpXSBWQkQuZGVz
dHJveSAodXVpZCA9IDU1NzE2ZWNmLTFhMjctYjI2NS02MDIxLWYyMTk5NGEzNDZkZjsgcmVmID0g
T3BhcXVlUmVmOjYyOTM0ZWQ4LTYwNmMtOWEyNy1jYTY2LTYyNWI0MjIxM2ZkMSkKPj4gRGVjIDMw
IDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbMjAxNDEyMzBUMDU6NTE6MzguNTgzWnxhdWRpdHxn
NnhlbnRlc3R8NDM3OSBVTklYIC92YXIvbGliL3hjcC94YXBpfFZCRC5kZXN0cm95IFI6NzZjOGY4
YWY4ZWMzfGF1ZGl0XSAoJ3RyYWNraWQ9NDNiZWU0OTU0ZGFmNTBiYjhjMTYzYmNkNjg3MDJmZDQn
ICdMT0NBTF9TVVBFUlVTRVInICdPcGFxdWVSZWY6YmMwMDFkNTctNjVjZS04YjJiLTc0YjQtY2Q3
MTk3NjI3MmMwJyAnQUxMT1dFRCcgJ09LJyAnQVBJJyAnVkJELmRlc3Ryb3knICgoJ3NlbGYnICcn
ICc1NTcxNmVjZi0xYTI3LWIyNjUtNjAyMS1mMjE5OTRhMzQ2ZGYnICdPcGFxdWVSZWY6NjI5MzRl
ZDgtNjA2Yy05YTI3LWNhNjYtNjI1YjQyMjEzZmQxJykgKCdWREknICdYT0EgU3lzdGVtJyAnY2Fl
MzBlOWItZWJkNC00NDUwLThjZTAtOWY0MDM1Y2E2MmYxJyAnT3BhcXVlUmVmOjBiMTMyY2E2LWI4
ZTctYzExZi02ZmZmLWRlYzA4NDMyY2FmZScpKSkKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVz
dCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMDMgSU5FVCA6Ojo4MHxWTSBpbXBvcnQgUjpkYmRi
MGVlNWFlMTZ8bXNjZ2VuXSB4YXBpPT54YXBpIFtsYWJlbD0ic2Vzc2lvbi5sb2dvdXQiXTsKPj4g
RGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzODAgVU5J
WCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0YXNrIGRpc3BhdGNoOnNlc3Np
b24ubG9nb3V0IEQ6MzNkMTIxYWU3MDNjIGNyZWF0ZWQgYnkgdGFzayBSOmRiZGIwZWU1YWUxNgo+
PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFsgaW5mb3xnNnhlbnRlc3R8NDM4MCBV
TklYIC92YXIvbGliL3hjcC94YXBpfHNlc3Npb24ubG9nb3V0IEQ6YjY4YTVmYjlmNTg1fHhhcGld
IFNlc3Npb24uZGVzdHJveSB0cmFja2lkPTQzYmVlNDk1NGRhZjUwYmI4YzE2M2JjZDY4NzAyZmQ0
Cj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzAz
IElORVQgOjo6ODB8Vk0gaW1wb3J0IFI6ZGJkYjBlZTVhZTE2fGJhY2t0cmFjZV0gUmFpc2VkIGF0
IGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjItMjVc
bkNhbGxlZCBmcm9tIGZpbGUgXCJsaXN0Lm1sXCIsIGxpbmUgNzMsIGNoYXJhY3RlcnMgMTItMTVc
bkNhbGxlZCBmcm9tIGZpbGUgXCJzdHJlYW1fdmRpLm1sXCIsIGxpbmUgNTgsIGNoYXJhY3RlcnMg
Mi0zMlxuQ2FsbGVkIGZyb20gZmlsZSBcImltcG9ydC5tbFwiLCBsaW5lIDE0OTMsIGNoYXJhY3Rl
cnMgMzYtMTI0XG4KPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZXJyb3J8ZzZ4
ZW50ZXN0fDQzMDMgSU5FVCA6Ojo4MHxWTSBpbXBvcnQgUjpkYmRiMGVlNWFlMTZ8aW1wb3J0XSBD
YXVnaHQgZXhjZXB0aW9uIGR1cmluZyBpbXBvcnQ6IFNSX0JBQ0tFTkRfRkFJTFVSRTogWyBub24t
emVybyBleGl0OyA7IFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KTojMDEyICBGaWxl
ICIvb3B0L3hlbnNvdXJjZS9zbS9ORlNTUiIsIGxpbmUgMjc4LCBpbiA8bW9kdWxlPiMwMTIgICAg
U1JDb21tYW5kLnJ1bihORlNTUiwgRFJJVkVSX0lORk8pIzAxMiAgRmlsZSAiL3Vzci9saWIveGFw
aS9zbS9TUkNvbW1hbmQucHkiLCBsaW5lIDM0NCwgaW4gcnVuIzAxMiAgICByZXQgPSBjbWQucnVu
KHNyKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vU1JDb21tYW5kLnB5IiwgbGluZSAxMTAs
IGluIHJ1biMwMTIgICAgcmV0dXJuIHNlbGYuX3J1bl9sb2NrZWQoc3IpIzAxMiAgRmlsZSAiL3Vz
ci9saWIveGFwaS9zbS9TUkNvbW1hbmQucHkiLCBsaW5lIDE1OSwgaW4gX3J1bl9sb2NrZWQjMDEy
ICAgIHJ2ID0gc2VsZi5fcnVuKHNyLCB0YXJnZXQpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9z
bS9TUkNvbW1hbmQucHkiLCBsaW5lIDI2MywgaW4gX3J1biMwMTIgICAgd3JpdGFibGUsIGNhY2hp
bmdfcGFyYW1zKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUg
MTQ4NiwgaW4gYWN0aXZhdGUjMDEyICAgIGlmIHNlbGYuX2FjdGl2YXRlX2xvY2tlZChzcl91dWlk
LCB2ZGlfdXVpZCwgb3B0aW9ucyk6IzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAy
LnB5IiwgbGluZSA4MywgaW4gd3JhcHBlciMwMTIgICAgcmV0ID0gb3Aoc2VsZiwgKmFyZ3MpIzAx
MiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNTIyLCBpbiBfYWN0
aXZhdGVfbG9ja2VkIzAxMiAgICBkZXZfcGF0aCA9IHNlbGYuX2FjdGl2YXRlKHNyX3V1aWQsIHZk
aV91dWlkLCBvcHRpb25zKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIs
IGxpbmUgMTU2MCwgaW4gX2FjdGl2YXRlIzAxMiBzZWxmLl9nZXRfcG9vbF9jb25maWcoc3JfdXVp
ZCkuZ2V0KCJtZW0tcG9vbC1zaXplIikpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0
YXAyLnB5IiwgbGluZSAxMjQzLCBpbiBfdGFwX2FjdGl2YXRlIzAxMiB0YXBkaXNrID0gVGFwZGlz
ay5maW5kX2J5X3BhdGgocGh5X3BhdGgpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0
YXAyLnB5IiwgbGluZSA2OTAsIGluIGZpbmRfYnlfcGF0aCMwMTIgcmV0dXJuIGNscy5maW5kKHBh
dGg9cGF0aCkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDY3
OCwgaW4gZmluZCMwMTIgICAgZm91bmQgPSBsaXN0KGNscy5saXN0KCoqYXJncykpIzAxMiAgRmls
ZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA2NTMsIGluIGxpc3QjMDEyICAg
IGZvciByb3cgaW4gVGFwQ3RsLmxpc3QoKiphcmdzKTojMDEyICBGaWxlICIvdXNyL2xpYi94YXBp
L3NtL2Jsa3RhcDIucHkiLCBsaW5lIDExOCwgaW4gbG9vcCMwMTIgICAgcmV0dXJuIGYoKl9fdCwg
KipfX2QpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAzNDgs
IGluIGxpc3QjMDEyICAgIGlmIGUuc3RhdHVzIGluIHRyYW5zaWVudDojMDEyICBGaWxlICIvdXNy
L2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDE2MiwgaW4gX19nZXRhdHRyX18jMDEyICAg
IHJldHVybiBvYmplY3QuX19nZXRhdHRyaWJ1dGVfXyhzZWxmLCBrZXkpIzAxMkF0dHJpYnV0ZUVy
cm9yOiAnQ29tbWFuZEZhaWx1cmUnIG9iamVjdCBoYXMgbm8gYXR0cmlidXRlICdzdGF0dXMnIzAx
MiBdCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0
MzAzIElORVQgOjo6ODB8Vk0gaW1wb3J0IFI6ZGJkYjBlZTVhZTE2fGJhY2t0cmFjZV0gUmFpc2Vk
IGF0IGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjIt
MjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaXN0Lm1sXCIsIGxpbmUgNzMsIGNoYXJhY3RlcnMgMTIt
MTVcbkNhbGxlZCBmcm9tIGZpbGUgXCJzdHJlYW1fdmRpLm1sXCIsIGxpbmUgNTgsIGNoYXJhY3Rl
cnMgMi0zMlxuQ2FsbGVkIGZyb20gZmlsZSBcImltcG9ydC5tbFwiLCBsaW5lIDE0OTMsIGNoYXJh
Y3RlcnMgMzYtMTI0XG4KPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8
ZzZ4ZW50ZXN0fDQzMDMgSU5FVCA6Ojo4MHxWTSBpbXBvcnQgUjpkYmRiMGVlNWFlMTZ8aW1wb3J0
XSBDbGVhbmluZyB1cCBhZnRlciBpbXBvcnQgZmFpbHVyZTogU1JfQkFDS0VORF9GQUlMVVJFOiBb
IG5vbi16ZXJvIGV4aXQ7IDsgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOiMwMTIg
IEZpbGUgIi9vcHQveGVuc291cmNlL3NtL05GU1NSIiwgbGluZSAyNzgsIGluIDxtb2R1bGU+IzAx
MiAgICBTUkNvbW1hbmQucnVuKE5GU1NSLCBEUklWRVJfSU5GTykjMDEyICBGaWxlICIvdXNyL2xp
Yi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMzQ0LCBpbiBydW4jMDEyICAgIHJldCA9IGNt
ZC5ydW4oc3IpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1hbmQucHkiLCBsaW5l
IDExMCwgaW4gcnVuIzAxMiAgICByZXR1cm4gc2VsZi5fcnVuX2xvY2tlZChzcikjMDEyICBGaWxl
ICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMTU5LCBpbiBfcnVuX2xvY2tl
ZCMwMTIgICAgcnYgPSBzZWxmLl9ydW4oc3IsIHRhcmdldCkjMDEyICBGaWxlICIvdXNyL2xpYi94
YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMjYzLCBpbiBfcnVuIzAxMiAgICB3cml0YWJsZSwg
Y2FjaGluZ19wYXJhbXMpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5Iiwg
bGluZSAxNDg2LCBpbiBhY3RpdmF0ZSMwMTIgICAgaWYgc2VsZi5fYWN0aXZhdGVfbG9ja2VkKHNy
X3V1aWQsIHZkaV91dWlkLCBvcHRpb25zKTojMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Js
a3RhcDIucHkiLCBsaW5lIDgzLCBpbiB3cmFwcGVyIzAxMiAgICByZXQgPSBvcChzZWxmLCAqYXJn
cykjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDE1MjIsIGlu
IF9hY3RpdmF0ZV9sb2NrZWQjMDEyICAgIGRldl9wYXRoID0gc2VsZi5fYWN0aXZhdGUoc3JfdXVp
ZCwgdmRpX3V1aWQsIG9wdGlvbnMpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAy
LnB5IiwgbGluZSAxNTYwLCBpbiBfYWN0aXZhdGUjMDEyIHNlbGYuX2dldF9wb29sX2NvbmZpZyhz
cl91dWlkKS5nZXQoIm1lbS1wb29sLXNpemUiKSkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3Nt
L2Jsa3RhcDIucHkiLCBsaW5lIDEyNDMsIGluIF90YXBfYWN0aXZhdGUjMDEyIHRhcGRpc2sgPSBU
YXBkaXNrLmZpbmRfYnlfcGF0aChwaHlfcGF0aCkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3Nt
L2Jsa3RhcDIucHkiLCBsaW5lIDY5MCwgaW4gZmluZF9ieV9wYXRoIzAxMiByZXR1cm4gY2xzLmZp
bmQocGF0aD1wYXRoKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxp
bmUgNjc4LCBpbiBmaW5kIzAxMiAgICBmb3VuZCA9IGxpc3QoY2xzLmxpc3QoKiphcmdzKSkjMDEy
ICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDY1MywgaW4gbGlzdCMw
MTIgICAgZm9yIHJvdyBpbiBUYXBDdGwubGlzdCgqKmFyZ3MpOiMwMTIgIEZpbGUgIi91c3IvbGli
L3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTE4LCBpbiBsb29wIzAxMiAgICByZXR1cm4gZigq
X190LCAqKl9fZCkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5l
IDM0OCwgaW4gbGlzdCMwMTIgICAgaWYgZS5zdGF0dXMgaW4gdHJhbnNpZW50OiMwMTIgIEZpbGUg
Ii91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTYyLCBpbiBfX2dldGF0dHJfXyMw
MTIgICAgcmV0dXJuIG9iamVjdC5fX2dldGF0dHJpYnV0ZV9fKHNlbGYsIGtleSkjMDEyQXR0cmli
dXRlRXJyb3I6ICdDb21tYW5kRmFpbHVyZScgb2JqZWN0IGhhcyBubyBhdHRyaWJ1dGUgJ3N0YXR1
cycjMDEyIF0KPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50
ZXN0fDQzMDMgSU5FVCA6Ojo4MHxWTS5pbXBvcnQgKGNsZWFudXApIFI6MDlkZDljNzY4NDUwfG1z
Y2dlbl0geGFwaT0+eGFwaSBbbGFiZWw9InNlc3Npb24uc2xhdmVfbG9naW4iXTsKPj4gRGVjIDMw
IDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzODEgVU5JWCAvdmFy
L2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0YXNrIGRpc3BhdGNoOnNlc3Npb24uc2xh
dmVfbG9naW4gRDoyZDZmZTA0NWU2N2QgY3JlYXRlZCBieSB0YXNrIFI6MDlkZDljNzY4NDUwCj4+
IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogWyBpbmZvfGc2eGVudGVzdHw0MzgxIFVO
SVggL3Zhci9saWIveGNwL3hhcGl8c2Vzc2lvbi5zbGF2ZV9sb2dpbiBEOjA5NTY4OWQzNzAyY3x4
YXBpXSBTZXNzaW9uLmNyZWF0ZSB0cmFja2lkPWVmM2NkNDc0NWYxYjQzYjc3YTk5YWNmZTNhZmJh
ZThmIHBvb2w9dHJ1ZSB1bmFtZT0gb3JpZ2luYXRvcj0gaXNfbG9jYWxfc3VwZXJ1c2VyPXRydWUg
YXV0aF91c2VyX3NpZD0gcGFyZW50PXRyYWNraWQ9OTgzNGY1YWY0MWM5NjRlMjI1ZjI0Mjc5YWVm
ZTRlNDkKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0
fDQzODEgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxzZXNzaW9uLnNsYXZlX2xvZ2luIEQ6MDk1Njg5
ZDM3MDJjfG1zY2dlbl0geGFwaT0+eGFwaSBbbGFiZWw9InNlc3Npb24uZ2V0X3V1aWQiXTsKPj4g
RGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzODIgVU5J
WCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0YXNrIGRpc3BhdGNoOnNlc3Np
b24uZ2V0X3V1aWQgRDo2NjQ4NWMwOGNhNGEgY3JlYXRlZCBieSB0YXNrIEQ6MDk1Njg5ZDM3MDJj
Cj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzAz
IElORVQgOjo6ODB8Vk0uaW1wb3J0IChjbGVhbnVwKSBSOjA5ZGQ5Yzc2ODQ1MHxtc2NnZW5dIHhh
cGk9PnhhcGkgW2xhYmVsPSJWSUYuZGVzdHJveSJdOwo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50
ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM4MyBVTklYIC92YXIvbGliL3hjcC94YXBpfHxk
dW1teXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6VklGLmRlc3Ryb3kgRDo0YjcxMTk1ODA4OTUg
Y3JlYXRlZCBieSB0YXNrIFI6MDlkZDljNzY4NDUwCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRl
c3QgeGFwaTogWyBpbmZvfGc2eGVudGVzdHw0MzgzIFVOSVggL3Zhci9saWIveGNwL3hhcGl8ZGlz
cGF0Y2g6VklGLmRlc3Ryb3kgRDo0YjcxMTk1ODA4OTV8dGFza2hlbHBlcl0gdGFzayBWSUYuZGVz
dHJveSBSOmQ0YmYyYzZjMDA0OSAodXVpZDoyMTNjZGI1OS04YmE3LTMwMjktMzVlMS1hNWFlYzVi
NzE1YTApIGNyZWF0ZWQgKHRyYWNraWQ9ZWYzY2Q0NzQ1ZjFiNDNiNzdhOTlhY2ZlM2FmYmFlOGYp
IGJ5IHRhc2sgUjowOWRkOWM3Njg0NTAKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBp
OiBbZGVidWd8ZzZ4ZW50ZXN0fDQzODMgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWSUYuZGVzdHJv
eSBSOmQ0YmYyYzZjMDA0OXxhdWRpdF0gVklGLmRlc3Ryb3k6IFZJRiA9ICdjNDBkMTljOC0xOTY0
LWViMDQtZTU3Mi0zNDRiNzRiYjc3MDEnCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFw
aTogW2RlYnVnfGc2eGVudGVzdHw0MzgzIFVOSVggL3Zhci9saWIveGNwL3hhcGl8VklGLmRlc3Ry
b3kgUjpkNGJmMmM2YzAwNDl8eGFwaV0gVklGLmRlc3Ryb3kKPj4gRGVjIDMwIDA2OjUxOjM4IGc2
eGVudGVzdCB4YXBpOiBbMjAxNDEyMzBUMDU6NTE6MzguNjI4WnxhdWRpdHxnNnhlbnRlc3R8NDM4
MyBVTklYIC92YXIvbGliL3hjcC94YXBpfFZJRi5kZXN0cm95IFI6ZDRiZjJjNmMwMDQ5fGF1ZGl0
XSAoJ3RyYWNraWQ9ZWYzY2Q0NzQ1ZjFiNDNiNzdhOTlhY2ZlM2FmYmFlOGYnICdMT0NBTF9TVVBF
UlVTRVInICdPcGFxdWVSZWY6YmMwMDFkNTctNjVjZS04YjJiLTc0YjQtY2Q3MTk3NjI3MmMwJyAn
QUxMT1dFRCcgJ09LJyAnQVBJJyAnVklGLmRlc3Ryb3knICgoJ3NlbGYnICcnICdjNDBkMTljOC0x
OTY0LWViMDQtZTU3Mi0zNDRiNzRiYjc3MDEnICdPcGFxdWVSZWY6NTVlMzk5MGMtOWViNC0xZDJm
LWMzNGQtMTc4NTFjYjg3ZGY4JykpKQo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6
IFtkZWJ1Z3xnNnhlbnRlc3R8ODl8eGFwaSBldmVudHMgRDpiNjQ5N2UyYThiMTV8eGVub3BzXSBF
dmVudCBvbiBWTSBiZTc2NGRkZS1iYTZkLTQ4ZjUtYmRjMi04YWU4N2FkNzQ1NTk7IHJlc2lkZW50
X2hlcmUgPSB0cnVlCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2
eGVudGVzdHw0MzAzIElORVQgOjo6ODB8Vk0uaW1wb3J0IChjbGVhbnVwKSBSOjA5ZGQ5Yzc2ODQ1
MHxtc2NnZW5dIHhhcGk9PnhhcGkgW2xhYmVsPSJWQkQuZGVzdHJveSJdOwo+PiBEZWMgMzAgMDY6
NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM4NCBVTklYIC92YXIvbGli
L3hjcC94YXBpfHxkdW1teXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6VkJELmRlc3Ryb3kgRDoy
MDZlNjAzMGQ3OTEgY3JlYXRlZCBieSB0YXNrIFI6MDlkZDljNzY4NDUwCj4+IERlYyAzMCAwNjo1
MTozOCBnNnhlbnRlc3QgeGFwaTogWyBpbmZvfGc2eGVudGVzdHw0Mzg0IFVOSVggL3Zhci9saWIv
eGNwL3hhcGl8ZGlzcGF0Y2g6VkJELmRlc3Ryb3kgRDoyMDZlNjAzMGQ3OTF8dGFza2hlbHBlcl0g
dGFzayBWQkQuZGVzdHJveSBSOjBhN2Y1ZTk2MmM0YSAodXVpZDpjMmU1YmM2NC1iM2QyLWYyZmEt
MjdlNy1mOGRjMjM1MjgxYzgpIGNyZWF0ZWQgKHRyYWNraWQ9ZWYzY2Q0NzQ1ZjFiNDNiNzdhOTlh
Y2ZlM2FmYmFlOGYpIGJ5IHRhc2sgUjowOWRkOWM3Njg0NTAKPj4gRGVjIDMwIDA2OjUxOjM4IGc2
eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzODQgVU5JWCAvdmFyL2xpYi94Y3AveGFw
aXxWQkQuZGVzdHJveSBSOjBhN2Y1ZTk2MmM0YXxhdWRpdF0gVkJELmRlc3Ryb3k6IFZCRCA9ICcz
NTg3MGJkZS04Y2NiLWQwMDEtMzk5OS1jNmFjYWQwYzJiMGEnCj4+IERlYyAzMCAwNjo1MTozOCBn
NnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0Mzg0IFVOSVggL3Zhci9saWIveGNwL3hh
cGl8VkJELmRlc3Ryb3kgUjowYTdmNWU5NjJjNGF8eGFwaV0gVkJELmRlc3Ryb3kgKHV1aWQgPSAz
NTg3MGJkZS04Y2NiLWQwMDEtMzk5OS1jNmFjYWQwYzJiMGE7IHJlZiA9IE9wYXF1ZVJlZjozNGJi
Y2Y1ZS0xYzQ0LThhMDMtZjFmMi0wZGM0OTRiMjg0NmEpCj4+IERlYyAzMCAwNjo1MTozOCBnNnhl
bnRlc3QgeGFwaTogWzIwMTQxMjMwVDA1OjUxOjM4LjY3MVp8YXVkaXR8ZzZ4ZW50ZXN0fDQzODQg
VU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWQkQuZGVzdHJveSBSOjBhN2Y1ZTk2MmM0YXxhdWRpdF0g
KCd0cmFja2lkPWVmM2NkNDc0NWYxYjQzYjc3YTk5YWNmZTNhZmJhZThmJyAnTE9DQUxfU1VQRVJV
U0VSJyAnT3BhcXVlUmVmOmJjMDAxZDU3LTY1Y2UtOGIyYi03NGI0LWNkNzE5NzYyNzJjMCcgJ0FM
TE9XRUQnICdPSycgJ0FQSScgJ1ZCRC5kZXN0cm95JyAoKCdzZWxmJyAnJyAnMzU4NzBiZGUtOGNj
Yi1kMDAxLTM5OTktYzZhY2FkMGMyYjBhJyAnT3BhcXVlUmVmOjM0YmJjZjVlLTFjNDQtOGEwMy1m
MWYyLTBkYzQ5NGIyODQ2YScpICgnVkRJJyAnWE9BIFN5c3RlbScgJ2NhZTMwZTliLWViZDQtNDQ1
MC04Y2UwLTlmNDAzNWNhNjJmMScgJ09wYXF1ZVJlZjowYjEzMmNhNi1iOGU3LWMxMWYtNmZmZi1k
ZWMwODQzMmNhZmUnKSkpCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVn
fGc2eGVudGVzdHw4OXx4YXBpIGV2ZW50cyBEOmI2NDk3ZTJhOGIxNXxtc2NnZW5dIHhhcGk9Pnhh
cGkgW2xhYmVsPSJldmVudC5mcm9tIl07Cj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFw
aTogW2RlYnVnfGc2eGVudGVzdHw0Mzg1IFVOSVggL3Zhci9saWIveGNwL3hhcGl8fGR1bW15dGFz
a2hlbHBlcl0gdGFzayBkaXNwYXRjaDpldmVudC5mcm9tIEQ6YjEwZGRjMmI1Nzk2IGNyZWF0ZWQg
YnkgdGFzayBEOmI2NDk3ZTJhOGIxNQo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6
IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMyBJTkVUIDo6OjgwfFZNLmltcG9ydCAoY2xlYW51cCkgUjow
OWRkOWM3Njg0NTB8bXNjZ2VuXSB4YXBpPT54YXBpIFtsYWJlbD0iVk0uZGVzdHJveSJdOwo+PiBE
ZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM4NiBVTklY
IC92YXIvbGliL3hjcC94YXBpfHxkdW1teXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6Vk0uZGVz
dHJveSBEOjQ2YjY5ZDgxYTU2ZiBjcmVhdGVkIGJ5IHRhc2sgUjowOWRkOWM3Njg0NTAKPj4gRGVj
IDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbIGluZm98ZzZ4ZW50ZXN0fDQzODYgVU5JWCAv
dmFyL2xpYi94Y3AveGFwaXxkaXNwYXRjaDpWTS5kZXN0cm95IEQ6NDZiNjlkODFhNTZmfHRhc2to
ZWxwZXJdIHRhc2sgVk0uZGVzdHJveSBSOjQzNTc3YzQyZGQwOSAodXVpZDphMGI4MGJiYS0yNDlh
LTQ0MzktODQyNC0xOTY1ZWZiMTk0NTkpIGNyZWF0ZWQgKHRyYWNraWQ9ZWYzY2Q0NzQ1ZjFiNDNi
NzdhOTlhY2ZlM2FmYmFlOGYpIGJ5IHRhc2sgUjowOWRkOWM3Njg0NTAKPj4gRGVjIDMwIDA2OjUx
OjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzODYgVU5JWCAvdmFyL2xpYi94
Y3AveGFwaXxWTS5kZXN0cm95IFI6NDM1NzdjNDJkZDA5fGF1ZGl0XSBWTS5kZXN0cm95OiBWTSA9
ICczYjE2YzJlNy0wOGU3LTNjMGYtNDUyZC00NThjM2EwMDg2ODUgKFhPQSAzLjYgQmFzaWMpJwo+
PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhjcC1ycmRkOiBbZGVidWd8ZzZ4ZW50ZXN0fDEz
MjUgdW5peF9ycGN8fGh0dHBdIFJlcXVlc3QgeyBmcmFtZSA9IGZhbHNlOyBtZXRob2QgPSBQT1NU
OyB1cmkgPSAvdmFyL2xpYi94Y3AveGNwLXJyZGQ7IHF1ZXJ5ID0gWyAgXTsgY29udGVudF9sZW5n
dGggPSBbIDI2NiBdOyB0cmFuc2ZlciBlbmNvZGluZyA9IDsgdmVyc2lvbiA9IDEuMTsgY29va2ll
ID0gWyA9IF07IHRhc2sgPSA7IHN1YnRhc2tfb2YgPSA7IGNvbnRlbnQtdHlwZSA9IDsgaG9zdCA9
IDsgdXNlcl9hZ2VudCA9IC91c3Ivc2Jpbi94YXBpIH0KPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVu
dGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzODYgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxW
TS5kZXN0cm95IFI6NDM1NzdjNDJkZDA5fHhhcGldIFZNLmRlc3Ryb3k6IGRlbGV0aW5nIERCIHJl
Y29yZHMKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0
fDQzODYgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWTS5kZXN0cm95IFI6NDM1NzdjNDJkZDA5fHhh
cGldIFJhaXNlZCBhdCBmaWxlIFwiZGJfY2FjaGVfdHlwZXMubWxcIiwgbGluZSAxMDcsIGNoYXJh
Y3RlcnMgMjctNjlcbkNhbGxlZCBmcm9tIGZpbGUgXCJkYl9jYWNoZV9pbXBsLm1sXCIsIGxpbmUg
MjQwLCBjaGFyYWN0ZXJzIDExLTQ0XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4
dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuCj4+IERlYyAzMCAwNjo1MTozOCBnNnhl
bnRlc3QgeGFwaTogWzIwMTQxMjMwVDA1OjUxOjM4LjcxOFp8YXVkaXR8ZzZ4ZW50ZXN0fDQzODYg
VU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWTS5kZXN0cm95IFI6NDM1NzdjNDJkZDA5fGF1ZGl0XSAo
J3RyYWNraWQ9ZWYzY2Q0NzQ1ZjFiNDNiNzdhOTlhY2ZlM2FmYmFlOGYnICdMT0NBTF9TVVBFUlVT
RVInICdPcGFxdWVSZWY6YmMwMDFkNTctNjVjZS04YjJiLTc0YjQtY2Q3MTk3NjI3MmMwJyAnQUxM
T1dFRCcgJ09LJyAnQVBJJyAnVk0uZGVzdHJveScgKCgnc2VsZicgJ1hPQSAzLjYgQmFzaWMnICcz
YjE2YzJlNy0wOGU3LTNjMGYtNDUyZC00NThjM2EwMDg2ODUnICdPcGFxdWVSZWY6ZWMzN2VkODct
ZTdjNy1mNjdhLWUwYWUtOGJhNzA3OWY0Zjg0JykpKQo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50
ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMyBJTkVUIDo6OjgwfFZNLmltcG9ydCAoY2xl
YW51cCkgUjowOWRkOWM3Njg0NTB8bXNjZ2VuXSB4YXBpPT54YXBpIFtsYWJlbD0iVkRJLmRlc3Ry
b3kiXTsKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0
fDQzODcgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0YXNrIGRpc3Bh
dGNoOlZESS5kZXN0cm95IEQ6NTM5NWQ3ZTI5ZDg0IGNyZWF0ZWQgYnkgdGFzayBSOjA5ZGQ5Yzc2
ODQ1MAo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFsgaW5mb3xnNnhlbnRlc3R8
NDM4NyBVTklYIC92YXIvbGliL3hjcC94YXBpfGRpc3BhdGNoOlZESS5kZXN0cm95IEQ6NTM5NWQ3
ZTI5ZDg0fHRhc2toZWxwZXJdIHRhc2sgVkRJLmRlc3Ryb3kgUjplYjczYmE5MTcwODAgKHV1aWQ6
MjZiYTg4ZmEtMjhmMC1mMjJlLWU0MTgtYWU0NjAxMTVjNGFmKSBjcmVhdGVkICh0cmFja2lkPWVm
M2NkNDc0NWYxYjQzYjc3YTk5YWNmZTNhZmJhZThmKSBieSB0YXNrIFI6MDlkZDljNzY4NDUwCj4+
IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0Mzg3IFVO
SVggL3Zhci9saWIveGNwL3hhcGl8VkRJLmRlc3Ryb3kgUjplYjczYmE5MTcwODB8YXVkaXRdIFZE
SS5kZXN0cm95OiBWREkgPSAnY2FlMzBlOWItZWJkNC00NDUwLThjZTAtOWY0MDM1Y2E2MmYxJwo+
PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM4NyBV
TklYIC92YXIvbGliL3hjcC94YXBpfFZESS5kZXN0cm95IFI6ZWI3M2JhOTE3MDgwfHhhcGldIE1h
cmtpbmcgU1IgZm9yIFZESS5kZXN0cm95ICh0YXNrPU9wYXF1ZVJlZjplYjczYmE5MS03MDgwLWRj
NzQtOGVjMS1iZWNhMDE0NmJmMGQpCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTog
WyBpbmZvfGc2eGVudGVzdHw0Mzg3IFVOSVggL3Zhci9saWIveGNwL3hhcGl8VkRJLmRlc3Ryb3kg
UjplYjczYmE5MTcwODB8c3RvcmFnZV9pbXBsXSBWREkuZGVzdHJveSBkYmc6T3BhcXVlUmVmOmVi
NzNiYTkxLTcwODAtZGM3NC04ZWMxLWJlY2EwMTQ2YmYwZCBzcjo3ODdiMDg3NC04ZThiLWU3ZDgt
OGJhOS03NGY1NWZmMmVhMTYgdmRpOmNhZTMwZTliLWViZDQtNDQ1MC04Y2UwLTlmNDAzNWNhNjJm
MQo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFsgaW5mb3xnNnhlbnRlc3R8NDM4
NyBVTklYIC92YXIvbGliL3hjcC94YXBpfFZESS5kZXN0cm95IFI6ZWI3M2JhOTE3MDgwfHN0b3Jh
Z2VfaW1wbF0gQXR0ZW1wdGluZyB0byBkZXN0cm95IGRhdGFwYXRoIGRwOnZiZC8wL3h2ZGEgc3I6
Nzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2IHZkaTpjYWUzMGU5Yi1lYmQ0LTQ0
NTAtOGNlMC05ZjQwMzVjYTYyZjEKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBb
ZGVidWd8ZzZ4ZW50ZXN0fDQzODh8fGR1bW15dGFza2hlbHBlcl0gdGFzayBWREkuZGV0YWNoIEQ6
MTM2Mzg2NjM2NzAxIGNyZWF0ZWQgYnkgdGFzayBSOmViNzNiYTkxNzA4MAo+PiBEZWMgMzAgMDY6
NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM4OHxWREkuZGV0YWNoIEQ6
MTM2Mzg2NjM2NzAxfHNtXSBTTSBuZnMgdmRpX2RldGFjaCBzcj1PcGFxdWVSZWY6NTIxMjMxZDYt
ZGYzYi03OTBiLTFlMjItYjM0NGE4M2Q5ZDM5IHZkaT1PcGFxdWVSZWY6MGIxMzJjYTYtYjhlNy1j
MTFmLTZmZmYtZGVjMDg0MzJjYWZlCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTog
WyBpbmZvfGc2eGVudGVzdHw0Mzg4fHNtX2V4ZWMgRDo4NDE4YzJlNzJjYzd8eGFwaV0gU2Vzc2lv
bi5jcmVhdGUgdHJhY2tpZD0xZDgyY2NmMGE2NjE5NDMwMDk4YTUzNzI3MzcxZjg1NSBwb29sPWZh
bHNlIHVuYW1lPSBvcmlnaW5hdG9yPSBpc19sb2NhbF9zdXBlcnVzZXI9dHJ1ZSBhdXRoX3VzZXJf
c2lkPSBwYXJlbnQ9dHJhY2tpZD05ODM0ZjVhZjQxYzk2NGUyMjVmMjQyNzlhZWZlNGU0OQo+PiBE
ZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM4OHxzbV9l
eGVjIEQ6ODQxOGMyZTcyY2M3fG1zY2dlbl0geGFwaT0+eGFwaSBbbGFiZWw9InNlc3Npb24uZ2V0
X3V1aWQiXTsKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50
ZXN0fDQzODkgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0YXNrIGRp
c3BhdGNoOnNlc3Npb24uZ2V0X3V1aWQgRDplNmNhZmNlZjFkNjEgY3JlYXRlZCBieSB0YXNrIEQ6
ODQxOGMyZTcyY2M3Cj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2
eGVudGVzdHw0Mzg4fHNtX2V4ZWMgRDo4NDE4YzJlNzJjYzd8bXNjZ2VuXSBzbWFwaXYyPT5zbWFw
aXYxIFtsYWJlbD0idmRpX2RldGFjaCJdOwo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhh
cGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM5MCBVTklYIC92YXIvbGliL3hjcC94YXBpfHxkdW1teXRh
c2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6aG9zdC5nZXRfb3RoZXJfY29uZmlnIEQ6MzNiMGI3NjM2
ZGM5IGNyZWF0ZWQgYnkgdGFzayBEOjEzNjM4NjYzNjcwMQo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4
ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM5MSBVTklYIC92YXIvbGliL3hjcC94YXBp
fHxkdW1teXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6U1IuZ2V0X3NtX2NvbmZpZyBEOmQ1ZjFj
NmRmMzJlYiBjcmVhdGVkIGJ5IHRhc2sgRDoxMzYzODY2MzY3MDEKPj4gRGVjIDMwIDA2OjUxOjM4
IGc2eGVudGVzdCBTTTogWzUzMjJdIGxvY2s6IGFjcXVpcmVkIC92YXIvbG9jay9zbS83ODdiMDg3
NC04ZThiLWU3ZDgtOGJhOS03NGY1NWZmMmVhMTYvc3IKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVu
dGVzdCBTTTogWzUzMjJdIFsnL3Vzci9zYmluL3RkLXV0aWwnLCAncXVlcnknLCAndmhkJywgJy12
cGYnLCAnL3Zhci9ydW4vc3ItbW91bnQvNzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJl
YTE2L2NhZTMwZTliLWViZDQtNDQ1MC04Y2UwLTlmNDAzNWNhNjJmMS52aGQnXQo+PiBEZWMgMzAg
MDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTMyMl0gICBwcmVhZCBTVUNDRVNTCj4+IERlYyAzMCAw
Njo1MTozOCBnNnhlbnRlc3QgU006IFs1MzIyXSB2ZGlfZGV0YWNoIHsnc3JfdXVpZCc6ICc3ODdi
MDg3NC04ZThiLWU3ZDgtOGJhOS03NGY1NWZmMmVhMTYnLCAnc3VidGFza19vZic6ICdEdW1teVJl
Zjp8MTM2Mzg2NjMtNjcwMS0xMDkxLTU3ZDEtY2JhNjgzMDRlZjZhfFZESS5kZXRhY2gnLCAndmRp
X3JlZic6ICdPcGFxdWVSZWY6MGIxMzJjYTYtYjhlNy1jMTFmLTZmZmYtZGVjMDg0MzJjYWZlJywg
J3ZkaV9vbl9ib290JzogJ3BlcnNpc3QnLCAnYXJncyc6IFtdLCAndmRpX2xvY2F0aW9uJzogJ2Nh
ZTMwZTliLWViZDQtNDQ1MC04Y2UwLTlmNDAzNWNhNjJmMScsICdob3N0X3JlZic6ICdPcGFxdWVS
ZWY6YmMwMDFkNTctNjVjZS04YjJiLTc0YjQtY2Q3MTk3NjI3MmMwJywgJ3Nlc3Npb25fcmVmJzog
J09wYXF1ZVJlZjo4ZjZmZDVlZC05Yjg4LTBlY2QtZDBkYy0yNjUyZWJlNTQ5NjknLCAnZGV2aWNl
X2NvbmZpZyc6IHsnU1JtYXN0ZXInOiAndHJ1ZScsICdzZXJ2ZXJwYXRoJzogJy9tbnQvemJpb3Ju
aWsvdGVzdHZvbC8nLCAnc2VydmVyJzogJzEyNy4wLjAuMSd9LCAnY29tbWFuZCc6ICd2ZGlfZGV0
YWNoJywgJ3ZkaV9hbGxvd19jYWNoaW5nJzogJ2ZhbHNlJywgJ3NyX3JlZic6ICdPcGFxdWVSZWY6
NTIxMjMxZDYtZGYzYi03OTBiLTFlMjItYjM0NGE4M2Q5ZDM5JywgJ3ZkaV91dWlkJzogJ2NhZTMw
ZTliLWViZDQtNDQ1MC04Y2UwLTlmNDAzNWNhNjJmMSd9Cj4+IERlYyAzMCAwNjo1MTozOCBnNnhl
bnRlc3QgU006IFs1MzIyXSBsb2NrOiBjbG9zZWQgL3Zhci9sb2NrL3NtL2NhZTMwZTliLWViZDQt
NDQ1MC04Y2UwLTlmNDAzNWNhNjJmMS92ZGkKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBT
TTogWzUzMjJdIGxvY2s6IHJlbGVhc2VkIC92YXIvbG9jay9zbS83ODdiMDg3NC04ZThiLWU3ZDgt
OGJhOS03NGY1NWZmMmVhMTYvc3IKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUz
MjJdIGxvY2s6IGNsb3NlZCAvdmFyL2xvY2svc20vNzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRm
NTVmZjJlYTE2L3NyCj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogWyBpbmZvfGc2
eGVudGVzdHw0Mzg4fHNtX2V4ZWMgRDo4NDE4YzJlNzJjYzd8eGFwaV0gU2Vzc2lvbi5kZXN0cm95
IHRyYWNraWQ9MWQ4MmNjZjBhNjYxOTQzMDA5OGE1MzcyNzM3MWY4NTUKPj4gRGVjIDMwIDA2OjUx
OjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzODcgVU5JWCAvdmFyL2xpYi94
Y3AveGFwaXxWREkuZGVzdHJveSBSOmViNzNiYTkxNzA4MHxzdG9yYWdlX2ltcGxdIGRiZzpPcGFx
dWVSZWY6ZWI3M2JhOTEtNzA4MC1kYzc0LThlYzEtYmVjYTAxNDZiZjBkIGRwOnZiZC8wL3h2ZGEg
c3I6Nzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2IHZkaTpjYWUzMGU5Yi1lYmQ0
LTQ0NTAtOGNlMC05ZjQwMzVjYTYyZjEgc3VwZXJzdGF0ZTpkZXRhY2hlZAo+PiBEZWMgMzAgMDY6
NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM5Mnx8ZHVtbXl0YXNraGVs
cGVyXSB0YXNrIFZESS5kZXN0cm95IEQ6MTFmZGExYTE1MjJhIGNyZWF0ZWQgYnkgdGFzayBSOmVi
NzNiYTkxNzA4MAo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhl
bnRlc3R8NDM5MnxWREkuZGVzdHJveSBEOjExZmRhMWExNTIyYXxzbV0gU00gbmZzIHZkaV9kZWxl
dGUgc3I9T3BhcXVlUmVmOjUyMTIzMWQ2LWRmM2ItNzkwYi0xZTIyLWIzNDRhODNkOWQzOSB2ZGk9
T3BhcXVlUmVmOjBiMTMyY2E2LWI4ZTctYzExZi02ZmZmLWRlYzA4NDMyY2FmZQo+PiBEZWMgMzAg
MDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFsgaW5mb3xnNnhlbnRlc3R8NDM5MnxzbV9leGVjIEQ6
NGJhOTNkYTc4NjM1fHhhcGldIFNlc3Npb24uY3JlYXRlIHRyYWNraWQ9N2JjZTg4OTJiNmY4NGYy
ZmU3ZGZiY2U1MzI0NjhhYmYgcG9vbD1mYWxzZSB1bmFtZT0gb3JpZ2luYXRvcj0gaXNfbG9jYWxf
c3VwZXJ1c2VyPXRydWUgYXV0aF91c2VyX3NpZD0gcGFyZW50PXRyYWNraWQ9OTgzNGY1YWY0MWM5
NjRlMjI1ZjI0Mjc5YWVmZTRlNDkKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBb
ZGVidWd8ZzZ4ZW50ZXN0fDQzOTJ8c21fZXhlYyBEOjRiYTkzZGE3ODYzNXxtc2NnZW5dIHhhcGk9
PnhhcGkgW2xhYmVsPSJzZXNzaW9uLmdldF91dWlkIl07Cj4+IERlYyAzMCAwNjo1MTozOSBnNnhl
bnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzkzIFVOSVggL3Zhci9saWIveGNwL3hhcGl8
fGR1bW15dGFza2hlbHBlcl0gdGFzayBkaXNwYXRjaDpzZXNzaW9uLmdldF91dWlkIEQ6M2FkZDFh
ODY0YzExIGNyZWF0ZWQgYnkgdGFzayBEOjRiYTkzZGE3ODYzNQo+PiBEZWMgMzAgMDY6NTE6Mzkg
ZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM5MnxzbV9leGVjIEQ6NGJhOTNkYTc4
NjM1fG1zY2dlbl0gc21hcGl2Mj0+c21hcGl2MSBbbGFiZWw9InZkaV9kZWxldGUiXTsKPj4gRGVj
IDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzOTQgVU5JWCAv
dmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0YXNrIGRpc3BhdGNoOmhvc3QuZ2V0
X290aGVyX2NvbmZpZyBEOjYyNDJkM2VhNTFkYiBjcmVhdGVkIGJ5IHRhc2sgRDoxMWZkYTFhMTUy
MmEKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQz
OTUgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0YXNrIGRpc3BhdGNo
OlNSLmdldF9zbV9jb25maWcgRDphMjcxYmYzZThhYjYgY3JlYXRlZCBieSB0YXNrIEQ6MTFmZGEx
YTE1MjJhCj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgU006IFs1MzMwXSBsb2NrOiBhY3F1
aXJlZCAvdmFyL2xvY2svc20vNzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2L3Ny
Cj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgU006IFs1MzMwXSBbJy91c3Ivc2Jpbi90ZC11
dGlsJywgJ3F1ZXJ5JywgJ3ZoZCcsICctdnBmJywgJy92YXIvcnVuL3NyLW1vdW50Lzc4N2IwODc0
LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWExNi9jYWUzMGU5Yi1lYmQ0LTQ0NTAtOGNlMC05ZjQw
MzVjYTYyZjEudmhkJ10KPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCBTTTogWzUzMzBdICAg
cHJlYWQgU1VDQ0VTUwo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNNOiBbNTMzMF0gdmRp
X2RlbGV0ZSB7J3NyX3V1aWQnOiAnNzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2
JywgJ3N1YnRhc2tfb2YnOiAnRHVtbXlSZWY6fDExZmRhMWExLTUyMmEtNWMyZS1mY2NjLWM0YjRh
M2E2MDYwMHxWREkuZGVzdHJveScsICd2ZGlfcmVmJzogJ09wYXF1ZVJlZjowYjEzMmNhNi1iOGU3
LWMxMWYtNmZmZi1kZWMwODQzMmNhZmUnLCAndmRpX29uX2Jvb3QnOiAncGVyc2lzdCcsICdhcmdz
JzogW10sICd2ZGlfbG9jYXRpb24nOiAnY2FlMzBlOWItZWJkNC00NDUwLThjZTAtOWY0MDM1Y2E2
MmYxJywgJ2hvc3RfcmVmJzogJ09wYXF1ZVJlZjpiYzAwMWQ1Ny02NWNlLThiMmItNzRiNC1jZDcx
OTc2MjcyYzAnLCAnc2Vzc2lvbl9yZWYnOiAnT3BhcXVlUmVmOjNhMTVjZTk3LTAzMTYtZjA0ZS1l
OTNmLWE3NzI2ZjU2M2U1MScsICdkZXZpY2VfY29uZmlnJzogeydTUm1hc3Rlcic6ICd0cnVlJywg
J3NlcnZlcnBhdGgnOiAnL21udC96Ymlvcm5pay90ZXN0dm9sLycsICdzZXJ2ZXInOiAnMTI3LjAu
MC4xJ30sICdjb21tYW5kJzogJ3ZkaV9kZWxldGUnLCAndmRpX2FsbG93X2NhY2hpbmcnOiAnZmFs
c2UnLCAnc3JfcmVmJzogJ09wYXF1ZVJlZjo1MjEyMzFkNi1kZjNiLTc5MGItMWUyMi1iMzQ0YTgz
ZDlkMzknLCAndmRpX3V1aWQnOiAnY2FlMzBlOWItZWJkNC00NDUwLThjZTAtOWY0MDM1Y2E2MmYx
J30KPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCBTTTogWzUzMzBdIFsnL3Vzci9iaW4vdmhk
LXV0aWwnLCAnc2V0JywgJy0tZGVidWcnLCAnLW4nLCAnL3Zhci9ydW4vc3ItbW91bnQvNzg3YjA4
NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2L2NhZTMwZTliLWViZDQtNDQ1MC04Y2UwLTlm
NDAzNWNhNjJmMS52aGQnLCAnLWYnLCAnaGlkZGVuJywgJy12JywgJzEnXQo+PiBEZWMgMzAgMDY6
NTE6MzkgZzZ4ZW50ZXN0IFNNOiBbNTMzMF0gICBwcmVhZCBTVUNDRVNTCj4+IERlYyAzMCAwNjo1
MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0Mzk2IFVOSVggL3Zhci9saWIv
eGNwL3hhcGl8fGR1bW15dGFza2hlbHBlcl0gdGFzayBkaXNwYXRjaDpWREkuZ2V0X2J5X3V1aWQg
RDo1NTlmNzA3YTE4MzUgY3JlYXRlZCBieSB0YXNrIEQ6MTFmZGExYTE1MjJhCj4+IERlYyAzMCAw
Njo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0Mzk3IFVOSVggL3Zhci9s
aWIveGNwL3hhcGl8fGR1bW15dGFza2hlbHBlcl0gdGFzayBkaXNwYXRjaDpWREkuZGJfZm9yZ2V0
IEQ6NzI5NGZjYjI3NGVmIGNyZWF0ZWQgYnkgdGFzayBEOjExZmRhMWExNTIyYQo+PiBEZWMgMzAg
MDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFsgaW5mb3xnNnhlbnRlc3R8NDM5NyBVTklYIC92YXIv
bGliL3hjcC94YXBpfGRpc3BhdGNoOlZESS5kYl9mb3JnZXQgRDo3Mjk0ZmNiMjc0ZWZ8dGFza2hl
bHBlcl0gdGFzayBWREkuZGJfZm9yZ2V0IFI6NzIxNTUyMDU0Y2M4ICh1dWlkOmIyMDIzNzRhLTE0
OGMtNWQzYS1mODE2LTI2Y2VlNTAxMTgzMCkgY3JlYXRlZCAodHJhY2tpZD03YmNlODg5MmI2Zjg0
ZjJmZTdkZmJjZTUzMjQ2OGFiZikgYnkgdGFzayBEOjExZmRhMWExNTIyYQo+PiBEZWMgMzAgMDY6
NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM5NyBVTklYIC92YXIvbGli
L3hjcC94YXBpfFZESS5kYl9mb3JnZXQgUjo3MjE1NTIwNTRjYzh8eGFwaV0gZGJfZm9yZ2V0IHV1
aWQ9Y2FlMzBlOWItZWJkNC00NDUwLThjZTAtOWY0MDM1Y2E2MmYxCj4+IERlYyAzMCAwNjo1MToz
OSBnNnhlbnRlc3QgeGFwaTogWzIwMTQxMjMwVDA1OjUxOjM5LjMwN1p8YXVkaXR8ZzZ4ZW50ZXN0
fDQzOTcgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWREkuZGJfZm9yZ2V0IFI6NzIxNTUyMDU0Y2M4
fGF1ZGl0XSAoJ3RyYWNraWQ9N2JjZTg4OTJiNmY4NGYyZmU3ZGZiY2U1MzI0NjhhYmYnICdMT0NB
TF9TVVBFUlVTRVInICdfX3NtX19iYWNrZW5kJyAnQUxMT1dFRCcgJ09LJyAnQVBJJyAnVkRJLmRi
X2ZvcmdldCcgKCgndmRpJyAnJyAnJyAnT3BhcXVlUmVmOjBiMTMyY2E2LWI4ZTctYzExZi02ZmZm
LWRlYzA4NDMyY2FmZScpKSkKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVi
dWd8ZzZ4ZW50ZXN0fDQzOTggVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVy
XSB0YXNrIGRpc3BhdGNoOlNSLmdldF92aXJ0dWFsX2FsbG9jYXRpb24gRDowYTYzYzYxMDZmYzkg
Y3JlYXRlZCBieSB0YXNrIEQ6MTFmZGExYTE1MjJhCj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRl
c3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0Mzk5IFVOSVggL3Zhci9saWIveGNwL3hhcGl8fGR1
bW15dGFza2hlbHBlcl0gdGFzayBkaXNwYXRjaDpTUi5nZXRfYnlfdXVpZCBEOjcyNTRjNDhhNmIw
MCBjcmVhdGVkIGJ5IHRhc2sgRDoxMWZkYTFhMTUyMmEKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVu
dGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQ0MDAgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8
ZHVtbXl0YXNraGVscGVyXSB0YXNrIGRpc3BhdGNoOlNSLnNldF92aXJ0dWFsX2FsbG9jYXRpb24g
RDoxZTc4ZTJmZWEzZGMgY3JlYXRlZCBieSB0YXNrIEQ6MTFmZGExYTE1MjJhCj4+IERlYyAzMCAw
Njo1MTozOSBnNnhlbnRlc3QgeGFwaTogWzIwMTQxMjMwVDA1OjUxOjM5LjM0MVp8YXVkaXR8ZzZ4
ZW50ZXN0fDQ0MDAgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxTUi5zZXRfdmlydHVhbF9hbGxvY2F0
aW9uIEQ6ZWYzMWVjMDA4YzQ1fGF1ZGl0XSAoJ3RyYWNraWQ9N2JjZTg4OTJiNmY4NGYyZmU3ZGZi
Y2U1MzI0NjhhYmYnICdMT0NBTF9TVVBFUlVTRVInICdfX3NtX19iYWNrZW5kJyAnQUxMT1dFRCcg
J09LJyAnQVBJJyAnU1Iuc2V0X3ZpcnR1YWxfYWxsb2NhdGlvbicgKCgnc2VsZicgJ2xvY2FsIG5m
cycgJzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWExNicgJ09wYXF1ZVJlZjo1MjEy
MzFkNi1kZjNiLTc5MGItMWUyMi1iMzQ0YTgzZDlkMzknKSkpCj4+IERlYyAzMCAwNjo1MTozOSBn
NnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0NDAxIFVOSVggL3Zhci9saWIveGNwL3hh
cGl8fGR1bW15dGFza2hlbHBlcl0gdGFzayBkaXNwYXRjaDpTUi5zZXRfcGh5c2ljYWxfc2l6ZSBE
OmVlYjQyY2ZhOWFlYiBjcmVhdGVkIGJ5IHRhc2sgRDoxMWZkYTFhMTUyMmEKPj4gRGVjIDMwIDA2
OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbMjAxNDEyMzBUMDU6NTE6MzkuMzQ1WnxhdWRpdHxnNnhl
bnRlc3R8NDQwMSBVTklYIC92YXIvbGliL3hjcC94YXBpfFNSLnNldF9waHlzaWNhbF9zaXplIEQ6
YjU4MzQ4ZjUzNjdhfGF1ZGl0XSAoJ3RyYWNraWQ9N2JjZTg4OTJiNmY4NGYyZmU3ZGZiY2U1MzI0
NjhhYmYnICdMT0NBTF9TVVBFUlVTRVInICdfX3NtX19iYWNrZW5kJyAnQUxMT1dFRCcgJ09LJyAn
QVBJJyAnU1Iuc2V0X3BoeXNpY2FsX3NpemUnICgoJ3NlbGYnICdsb2NhbCBuZnMnICc3ODdiMDg3
NC04ZThiLWU3ZDgtOGJhOS03NGY1NWZmMmVhMTYnICdPcGFxdWVSZWY6NTIxMjMxZDYtZGYzYi03
OTBiLTFlMjItYjM0NGE4M2Q5ZDM5JykpKQo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhh
cGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDQwMiBVTklYIC92YXIvbGliL3hjcC94YXBpfHxkdW1teXRh
c2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6U1Iuc2V0X3BoeXNpY2FsX3V0aWxpc2F0aW9uIEQ6YzUw
YWU0MDRlOTU3IGNyZWF0ZWQgYnkgdGFzayBEOjExZmRhMWExNTIyYQo+PiBEZWMgMzAgMDY6NTE6
MzkgZzZ4ZW50ZXN0IHhhcGk6IFsyMDE0MTIzMFQwNTo1MTozOS4zNDlafGF1ZGl0fGc2eGVudGVz
dHw0NDAyIFVOSVggL3Zhci9saWIveGNwL3hhcGl8U1Iuc2V0X3BoeXNpY2FsX3V0aWxpc2F0aW9u
IEQ6ZjkwMTVkZTIwMzAxfGF1ZGl0XSAoJ3RyYWNraWQ9N2JjZTg4OTJiNmY4NGYyZmU3ZGZiY2U1
MzI0NjhhYmYnICdMT0NBTF9TVVBFUlVTRVInICdfX3NtX19iYWNrZW5kJyAnQUxMT1dFRCcgJ09L
JyAnQVBJJyAnU1Iuc2V0X3BoeXNpY2FsX3V0aWxpc2F0aW9uJyAoKCdzZWxmJyAnbG9jYWwgbmZz
JyAnNzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2JyAnT3BhcXVlUmVmOjUyMTIz
MWQ2LWRmM2ItNzkwYi0xZTIyLWIzNDRhODNkOWQzOScpKSkKPj4gRGVjIDMwIDA2OjUxOjM5IGc2
eGVudGVzdCBTTTogWzUzMzBdIGxvY2s6IHRyaWVkIGxvY2sgL3Zhci9sb2NrL3NtLzc4N2IwODc0
LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWExNi9ydW5uaW5nLCBhY3F1aXJlZDogVHJ1ZSAoZXhp
c3RzOiBUcnVlKQo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNNOiBbNTMzMF0gbG9jazog
cmVsZWFzZWQgL3Zhci9sb2NrL3NtLzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWEx
Ni9ydW5uaW5nCj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgU006IFs1MzMwXSBLaWNraW5n
IEdDCj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgU01HQzogWzUzMzBdID09PSBTUiA3ODdi
MDg3NC04ZThiLWU3ZDgtOGJhOS03NGY1NWZmMmVhMTY6IGdjID09PQo+PiBEZWMgMzAgMDY6NTE6
MzkgZzZ4ZW50ZXN0IFNNR0M6IFs1MzQyXSBXaWxsIGZpbmlzaCBhcyBQSUQgWzUzNDNdCj4+IERl
YyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgU01HQzogWzUzMzBdIE5ldyBQSUQgWzUzNDJdCj4+IERl
YyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgU006IFs1MzMwXSBsb2NrOiBjbG9zZWQgL3Zhci9sb2Nr
L3NtLzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWExNi9ydW5uaW5nCj4+IERlYyAz
MCAwNjo1MTozOSBnNnhlbnRlc3QgU006IFs1MzMwXSBsb2NrOiByZWxlYXNlZCAvdmFyL2xvY2sv
c20vNzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2L3NyCj4+IERlYyAzMCAwNjo1
MTozOSBnNnhlbnRlc3QgU006IFs1MzMwXSBsb2NrOiBjbG9zZWQgL3Zhci9sb2NrL3NtLzc4N2Iw
ODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWExNi9zcgo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4
ZW50ZXN0IHhhcGk6IFsgaW5mb3xnNnhlbnRlc3R8NDQwMyBVTklYIC92YXIvbGliL3hjcC94YXBp
fHNlc3Npb24ubG9naW5fd2l0aF9wYXNzd29yZCBEOjA0NGY5OWNjY2Y5Nnx4YXBpXSBTZXNzaW9u
LmNyZWF0ZSB0cmFja2lkPTg3NWMzZTYwMWEwNDJkYjI3MTRmOWZiODNhZjlmY2Q3IHBvb2w9ZmFs
c2UgdW5hbWU9cm9vdCBvcmlnaW5hdG9yPSBpc19sb2NhbF9zdXBlcnVzZXI9dHJ1ZSBhdXRoX3Vz
ZXJfc2lkPSBwYXJlbnQ9dHJhY2tpZD05ODM0ZjVhZjQxYzk2NGUyMjVmMjQyNzlhZWZlNGU0OQo+
PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDQwMyBV
TklYIC92YXIvbGliL3hjcC94YXBpfHNlc3Npb24ubG9naW5fd2l0aF9wYXNzd29yZCBEOjA0NGY5
OWNjY2Y5Nnxtc2NnZW5dIHhhcGk9PnhhcGkgW2xhYmVsPSJzZXNzaW9uLmdldF91dWlkIl07Cj4+
IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0NDA0IFVO
SVggL3Zhci9saWIveGNwL3hhcGl8fGR1bW15dGFza2hlbHBlcl0gdGFzayBkaXNwYXRjaDpzZXNz
aW9uLmdldF91dWlkIEQ6YThkYTgxZDQyNWU4IGNyZWF0ZWQgYnkgdGFzayBEOjA0NGY5OWNjY2Y5
Ngo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNNR0M6IFs1MzQzXSBGb3VuZCAwIGNhY2hl
IGZpbGVzCj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogWyBpbmZvfGc2eGVudGVz
dHw0MzkyfHNtX2V4ZWMgRDo0YmE5M2RhNzg2MzV8eGFwaV0gU2Vzc2lvbi5kZXN0cm95IHRyYWNr
aWQ9N2JjZTg4OTJiNmY4NGYyZmU3ZGZiY2U1MzI0NjhhYmYKPj4gRGVjIDMwIDA2OjUxOjM5IGc2
eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzODcgVU5JWCAvdmFyL2xpYi94Y3AveGFw
aXxWREkuZGVzdHJveSBSOmViNzNiYTkxNzA4MHx4YXBpXSBVbm1hcmtpbmcgU1IgYWZ0ZXIgVkRJ
LmRlc3Ryb3kgKHRhc2s9T3BhcXVlUmVmOmViNzNiYTkxLTcwODAtZGM3NC04ZWMxLWJlY2EwMTQ2
YmYwZCkKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCBTTTogWzUzNDNdIGxvY2s6IHRyaWVk
IGxvY2sgL3Zhci9sb2NrL3NtLzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWExNi9z
ciwgYWNxdWlyZWQ6IFRydWUgKGV4aXN0czogVHJ1ZSkKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVu
dGVzdCB4YXBpOiBbMjAxNDEyMzBUMDU6NTE6MzkuNDU3WnxhdWRpdHxnNnhlbnRlc3R8NDM4NyBV
TklYIC92YXIvbGliL3hjcC94YXBpfFZESS5kZXN0cm95IFI6ZWI3M2JhOTE3MDgwfGF1ZGl0XSAo
J3RyYWNraWQ9ZWYzY2Q0NzQ1ZjFiNDNiNzdhOTlhY2ZlM2FmYmFlOGYnICdMT0NBTF9TVVBFUlVT
RVInICdPcGFxdWVSZWY6YmMwMDFkNTctNjVjZS04YjJiLTc0YjQtY2Q3MTk3NjI3MmMwJyAnQUxM
T1dFRCcgJ09LJyAnQVBJJyAnVkRJLmRlc3Ryb3knICgoJ3NlbGYnICdYT0EgU3lzdGVtJyAnY2Fl
MzBlOWItZWJkNC00NDUwLThjZTAtOWY0MDM1Y2E2MmYxJyAnT3BhcXVlUmVmOjBiMTMyY2E2LWI4
ZTctYzExZi02ZmZmLWRlYzA4NDMyY2FmZScpKSkKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVz
dCBTTTogWzUzNDNdIFsnL3Vzci9iaW4vdmhkLXV0aWwnLCAnc2NhbicsICctZicsICctYycsICct
bScsICcvdmFyL3J1bi9zci1tb3VudC83ODdiMDg3NC04ZThiLWU3ZDgtOGJhOS03NGY1NWZmMmVh
MTYvKi52aGQnXQo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhl
bnRlc3R8NDMwMyBJTkVUIDo6OjgwfFZNLmltcG9ydCAoY2xlYW51cCkgUjowOWRkOWM3Njg0NTB8
bXNjZ2VuXSB4YXBpPT54YXBpIFtsYWJlbD0ic2Vzc2lvbi5sb2dvdXQiXTsKPj4gRGVjIDMwIDA2
OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQ0MTUgVU5JWCAvdmFyL2xp
Yi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0YXNrIGRpc3BhdGNoOnNlc3Npb24ubG9nb3V0
IEQ6ZWQxNWE4NDY4MzNlIGNyZWF0ZWQgYnkgdGFzayBSOjA5ZGQ5Yzc2ODQ1MAo+PiBEZWMgMzAg
MDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFsgaW5mb3xnNnhlbnRlc3R8NDQxNSBVTklYIC92YXIv
bGliL3hjcC94YXBpfHNlc3Npb24ubG9nb3V0IEQ6Mjk0NDQ5YmUwYTU4fHhhcGldIFNlc3Npb24u
ZGVzdHJveSB0cmFja2lkPWVmM2NkNDc0NWYxYjQzYjc3YTk5YWNmZTNhZmJhZThmCj4+IERlYyAz
MCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzAzIElORVQgOjo6
ODB8Vk0gaW1wb3J0IFI6ZGJkYjBlZTVhZTE2fHhhcGldIFJhaXNlZCBhdCBmaWxlIFwiaW1wb3J0
Lm1sXCIsIGxpbmUgMTUyNSwgY2hhcmFjdGVycyAyMC0yMVxuQ2FsbGVkIGZyb20gZmlsZSBcImxp
Yi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFjdGVycyAyLTlcbgo+PiBEZWMgMzAg
MDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMyBJTkVUIDo6Ojgw
fFZNIGltcG9ydCBSOmRiZGIwZWU1YWUxNnxpbXBvcnRdIENsb3NpbmcgcGlwZXMKPj4gRGVjIDMw
IDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMDZ8fHhhcGldIFJh
aXNlZCBieSBwcmltaXRpdmUgb3BlcmF0aW9uIGF0IGZpbGUgXCJ1bml4Lm1sXCIsIGxpbmUgMjUy
LCBjaGFyYWN0ZXJzIDctMzRcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvdW5peGV4dC5tbFwiLCBs
aW5lIDIyMiwgY2hhcmFjdGVycyAxMy0zNFxuQ2FsbGVkIGZyb20gZmlsZSBcImltcG9ydC5tbFwi
LCBsaW5lIDEyNzMsIGNoYXJhY3RlcnMgMTItNTNcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvcGVy
dmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMgMi05XG4KPj4gRGVjIDMwIDA2OjUx
OjM5IGc2eGVudGVzdCBmb3JrZXhlY2Q6IFtlcnJvcnxnNnhlbnRlc3R8MHx8Zm9ya2V4ZWNkXSA1
MjE3ICgvYmluL25pY2UgLW4gMTkgL3Vzci9iaW4vaW9uaWNlIC1jIDMgL2Jpbi9nemlwIC0tZGVj
b21wcmVzcyAtLXN0ZG91dCAtLWZvcmNlKSBleGl0dGVkIHdpdGggY29kZSAxCj4+IERlYyAzMCAw
Njo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzA2fHx4YXBpXSBSYWlz
ZWQgYXQgZmlsZSBcInBlcnZhc2l2ZXMubWxcIiwgbGluZSAyMCwgY2hhcmFjdGVycyAyMi0zM1xu
Q2FsbGVkIGZyb20gZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyNiwgY2hhcmFj
dGVycyA0LTE0XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5l
IDIyLCBjaGFyYWN0ZXJzIDItOVxuCj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTog
W2RlYnVnfGc2eGVudGVzdHw0MzA2fHx4YXBpXSBSYWlzZWQgYXQgZmlsZSBcImxpYi9wZXJ2YXNp
dmVleHQubWxcIiwgbGluZSAyNiwgY2hhcmFjdGVycyAyMi0yNVxuQ2FsbGVkIGZyb20gZmlsZSBc
ImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFjdGVycyAyLTlcbgo+PiBEZWMg
MzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMyBJTkVUIDo6
OjgwfFZNIGltcG9ydCBSOmRiZGIwZWU1YWUxNnxiYWNrdHJhY2VdIFJhaXNlZCBhdCBmaWxlIFwi
aW1wb3J0Lm1sXCIsIGxpbmUgMTUyNSwgY2hhcmFjdGVycyAyMC0yMVxuQ2FsbGVkIGZyb20gZmls
ZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFjdGVycyAyLTlcblJlLXJh
aXNlZCBhdCBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFyYWN0ZXJz
IDIyLTI1XG5DYWxsZWQgZnJvbSBmaWxlIFwiaW1wb3J0Lm1sXCIsIGxpbmUgMTQ1OSwgY2hhcmFj
dGVycyA5LTEwMjNcblJlLXJhaXNlZCBhdCBmaWxlIFwiaW1wb3J0Lm1sXCIsIGxpbmUgMTU1NCwg
Y2hhcmFjdGVycyAxNC0xNVxuQ2FsbGVkIGZyb20gZmlsZSBcInNlcnZlcl9oZWxwZXJzLm1sXCIs
IGxpbmUgNzIsIGNoYXJhY3RlcnMgMTEtMjNcbgo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0
IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMyBJTkVUIDo6OjgwfFZNIGltcG9ydCBSOmRiZGIw
ZWU1YWUxNnxkaXNwYXRjaGVyXSBTZXJ2ZXJfaGVscGVycy5leGVjIGV4Y2VwdGlvbl9oYW5kbGVy
OiBHb3QgZXhjZXB0aW9uIFNSX0JBQ0tFTkRfRkFJTFVSRTogWyBub24temVybyBleGl0OyA7IFRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KTojMDEyICBGaWxlICIvb3B0L3hlbnNvdXJj
ZS9zbS9ORlNTUiIsIGxpbmUgMjc4LCBpbiA8bW9kdWxlPiMwMTIgU1JDb21tYW5kLnJ1bihORlNT
UiwgRFJJVkVSX0lORk8pIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1hbmQucHki
LCBsaW5lIDM0NCwgaW4gcnVuIzAxMiAgICByZXQgPSBjbWQucnVuKHNyKSMwMTIgIEZpbGUgIi91
c3IvbGliL3hhcGkvc20vU1JDb21tYW5kLnB5IiwgbGluZSAxMTAsIGluIHJ1biMwMTIgICAgcmV0
dXJuIHNlbGYuX3J1bl9sb2NrZWQoc3IpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNv
bW1hbmQucHkiLCBsaW5lIDE1OSwgaW4gX3J1bl9sb2NrZWQjMDEyICAgIHJ2ID0gc2VsZi5fcnVu
KHNyLCB0YXJnZXQpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1hbmQucHkiLCBs
aW5lIDI2MywgaW4gX3J1biMwMTIgICAgd3JpdGFibGUsIGNhY2hpbmdfcGFyYW1zKSMwMTIgIEZp
bGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTQ4NiwgaW4gYWN0aXZhdGUj
MDEyICAgIGlmIHNlbGYuX2FjdGl2YXRlX2xvY2tlZChzcl91dWlkLCB2ZGlfdXVpZCwgb3B0aW9u
cyk6IzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA4MywgaW4g
d3JhcHBlciMwMTIgICAgcmV0ID0gb3Aoc2VsZiwgKmFyZ3MpIzAxMiAgRmlsZSAiL3Vzci9saWIv
eGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNTIyLCBpbiBfYWN0aXZhdGVfbG9ja2VkIzAxMiAg
ICBkZXZfcGF0aCA9IHNlbGYuX2FjdGl2YXRlKHNyX3V1aWQsIHZkaV91dWlkLCBvcHRpb25zKSMw
MTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTU2MCwgaW4gX2Fj
dGl2YXRlIzAxMiBzZWxmLl9nZXRfcG9vbF9jb25maWcoc3JfdXVpZCkuZ2V0KCJtZW0tcG9vbC1z
aXplIikpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxMjQz
LCBpbiBfdGFwX2FjdGl2YXRlIzAxMiB0YXBkaXNrID0gVGFwZGlzay5maW5kX2J5X3BhdGgocGh5
X3BhdGgpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA2OTAs
IGluIGZpbmRfYnlfcGF0aCMwMTIgcmV0dXJuIGNscy5maW5kKHBhdGg9cGF0aCkjMDEyICBGaWxl
ICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDY3OCwgaW4gZmluZCMwMTIgICAg
Zm91bmQgPSBsaXN0KGNscy5saXN0KCoqYXJncykpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9z
bS9ibGt0YXAyLnB5IiwgbGluZSA2NTMsIGluIGxpc3QjMDEyICAgIGZvciByb3cgaW4gVGFwQ3Rs
Lmxpc3QoKiphcmdzKTojMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBs
aW5lIDExOCwgaW4gbG9vcCMwMTIgICAgcmV0dXJuIGYoKl9fdCwgKipfX2QpIzAxMiAgRmlsZSAi
L3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAzNDgsIGluIGxpc3QjMDEyICAgIGlm
IGUuc3RhdHVzIGluIHRyYW5zaWVudDojMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3Rh
cDIucHkiLCBsaW5lIDE2MiwgaW4gX19nZXRhdHRyX18jMDEyICAgIHJldHVybiBvYmplY3QuX19n
ZXRhdHRyaWJ1dGVfXyhzZWxmLCBrZXkpIzAxMkF0dHJpYnV0ZUVycm9yOiAnQ29tbWFuZEZhaWx1
cmUnIG9iamVjdCBoYXMgbm8gYXR0cmlidXRlICdzdGF0dXMnIzAxMiBdCj4+IERlYyAzMCAwNjo1
MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzAzIElORVQgOjo6ODB8Vk0g
aW1wb3J0IFI6ZGJkYjBlZTVhZTE2fGRpc3BhdGNoZXJdIFJhaXNlZCBhdCBmaWxlIFwiaW1wb3J0
Lm1sXCIsIGxpbmUgMTUyNSwgY2hhcmFjdGVycyAyMC0yMVxuQ2FsbGVkIGZyb20gZmlsZSBcImxp
Yi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFjdGVycyAyLTlcblJlLXJhaXNlZCBh
dCBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFyYWN0ZXJzIDIyLTI1
XG5DYWxsZWQgZnJvbSBmaWxlIFwiaW1wb3J0Lm1sXCIsIGxpbmUgMTQ1OSwgY2hhcmFjdGVycyA5
LTEwMjNcblJlLXJhaXNlZCBhdCBmaWxlIFwiaW1wb3J0Lm1sXCIsIGxpbmUgMTU1NCwgY2hhcmFj
dGVycyAxNC0xNVxuQ2FsbGVkIGZyb20gZmlsZSBcInNlcnZlcl9oZWxwZXJzLm1sXCIsIGxpbmUg
NzIsIGNoYXJhY3RlcnMgMTEtMjNcbgo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6
IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMyBJTkVUIDo6OjgwfFZNIGltcG9ydCBSOmRiZGIwZWU1YWUx
NnxiYWNrdHJhY2VdIFJhaXNlZCBhdCBmaWxlIFwiaW1wb3J0Lm1sXCIsIGxpbmUgMTUyNSwgY2hh
cmFjdGVycyAyMC0yMVxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwg
bGluZSAyMiwgY2hhcmFjdGVycyAyLTlcblJlLXJhaXNlZCBhdCBmaWxlIFwibGliL3BlcnZhc2l2
ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFyYWN0ZXJzIDIyLTI1XG5DYWxsZWQgZnJvbSBmaWxlIFwi
aW1wb3J0Lm1sXCIsIGxpbmUgMTQ1OSwgY2hhcmFjdGVycyA5LTEwMjNcblJlLXJhaXNlZCBhdCBm
aWxlIFwiaW1wb3J0Lm1sXCIsIGxpbmUgMTU1NCwgY2hhcmFjdGVycyAxNC0xNVxuQ2FsbGVkIGZy
b20gZmlsZSBcInNlcnZlcl9oZWxwZXJzLm1sXCIsIGxpbmUgNzIsIGNoYXJhY3RlcnMgMTEtMjNc
bgo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNNOiBbNTM0M10gICBwcmVhZCBTVUNDRVNT
Cj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzAz
IElORVQgOjo6ODB8Vk0gaW1wb3J0IFI6ZGJkYjBlZTVhZTE2fHhhcGldIFJhaXNlZCBhdCBmaWxl
IFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGluZSA5MCwgY2hhcmFjdGVycyAxNC0xNVxuQ2FsbGVk
IGZyb20gZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFjdGVycyAy
LTlcbgo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8
NDMwMyBJTkVUIDo6OjgwfFZNIGltcG9ydCBSOmRiZGIwZWU1YWUxNnx0YXNraGVscGVyXSBmb3J3
YXJkZWQgdGFzayBkZXN0cm95ZWQKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBb
ZGVidWd8ZzZ4ZW50ZXN0fDQzMDMgSU5FVCA6Ojo4MHxWTS5pbXBvcnQgRDphYTBhMjhmZWJmMDZ8
eGFwaV0gUmFpc2VkIGF0IGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDkwLCBjaGFy
YWN0ZXJzIDE0LTE1XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBs
aW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuUmUtcmFpc2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZl
ZXh0Lm1sXCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJs
aWIvZGVidWcubWxcIiwgbGluZSA1NywgY2hhcmFjdGVycyAxNy0yMFxuUmUtcmFpc2VkIGF0IGZp
bGUgXCJsaWIvZGVidWcubWxcIiwgbGluZSA2MiwgY2hhcmFjdGVycyAxMC0xMVxuQ2FsbGVkIGZy
b20gZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFjdGVycyAyLTlc
bgo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMw
MyBJTkVUIDo6OjgwfFZNLmltcG9ydCBEOmFhMGEyOGZlYmYwNnx4YXBpXSBSYWlzZWQgYXQgZmls
ZSBcInNlcnZlcl9oZWxwZXJzLm1sXCIsIGxpbmUgOTAsIGNoYXJhY3RlcnMgMTQtMTVcbkNhbGxl
ZCBmcm9tIGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMg
Mi05XG5SZS1yYWlzZWQgYXQgZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyNiwg
Y2hhcmFjdGVycyAyMi0yNVxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9kZWJ1Zy5tbFwiLCBsaW5l
IDU3LCBjaGFyYWN0ZXJzIDE3LTIwXG5SZS1yYWlzZWQgYXQgZmlsZSBcImxpYi9kZWJ1Zy5tbFwi
LCBsaW5lIDYyLCBjaGFyYWN0ZXJzIDEwLTExXG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZh
c2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuUmUtcmFpc2VkIGF0IGZpbGUg
XCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxl
ZCBmcm9tIGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMg
Mi05XG4KPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0
fDQzMDMgSU5FVCA6Ojo4MHxWTS5pbXBvcnQgRDphYTBhMjhmZWJmMDZ8eGFwaV0gUmFpc2VkIGF0
IGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDkwLCBjaGFyYWN0ZXJzIDE0LTE1XG5D
YWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0
ZXJzIDItOVxuUmUtcmFpc2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUg
MjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvZGVidWcubWxcIiwg
bGluZSA1NywgY2hhcmFjdGVycyAxNy0yMFxuUmUtcmFpc2VkIGF0IGZpbGUgXCJsaWIvZGVidWcu
bWxcIiwgbGluZSA2MiwgY2hhcmFjdGVycyAxMC0xMVxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9w
ZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFjdGVycyAyLTlcblJlLXJhaXNlZCBhdCBm
aWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFyYWN0ZXJzIDIyLTI1XG5D
YWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0
ZXJzIDItOVxuUmUtcmFpc2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUg
MjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJ4YXBpX2h0dHAubWxcIiwg
bGluZSAxOTMsIGNoYXJhY3RlcnMgNC04MTBcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvcGVydmFz
aXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMgMi05XG4KPj4gRGVjIDMwIDA2OjUxOjM5
IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMDMgSU5FVCA6Ojo4MHxWTS5pbXBv
cnQgRDphYTBhMjhmZWJmMDZ8bXNjZ2VuXSB4YXBpPT54YXBpIFtsYWJlbD0ic2Vzc2lvbi5sb2dv
dXQiXTsKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbMjAxNDEyMzBUMDU6NTE6
MzkuNjE1WnxhdWRpdHxnNnhlbnRlc3R8NDMwMCBVTklYIC92YXIvbGliL3hjcC94YXBpfGV2ZW50
LnVucmVnaXN0ZXIgRDoyYmZjOTk1ZmM0OTN8YXVkaXRdICgndHJhY2tpZD0wOWE5ZjU4MjA1N2Fk
Mjc4MTZlNDNhNGQzYzE4YmYxYicgJ0xPQ0FMX1NVUEVSVVNFUicgJ3Jvb3QnICdBTExPV0VEJyAn
T0snICdBUEknICdldmVudC51bnJlZ2lzdGVyJyAoKSkKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVu
dGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQ0MTYgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8
ZHVtbXl0YXNraGVscGVyXSB0YXNrIGRpc3BhdGNoOnNlc3Npb24ubG9nb3V0IEQ6YjY3NmM1MjI3
Zjg3IGNyZWF0ZWQgYnkgdGFzayBEOmFhMGEyOGZlYmYwNgo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4
ZW50ZXN0IHhhcGk6IFsgaW5mb3xnNnhlbnRlc3R8NDQxNiBVTklYIC92YXIvbGliL3hjcC94YXBp
fHNlc3Npb24ubG9nb3V0IEQ6MWRjN2EyOWE4Y2RkfHhhcGldIFNlc3Npb24uZGVzdHJveSB0cmFj
a2lkPWNhMWUwZTAyZjFjNmY5ZmNjOTgwMzY4ZTcxMGQ4YzhiCj4+IERlYyAzMCAwNjo1MTozOSBn
NnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzAzIElORVQgOjo6ODB8Vk0uaW1wb3J0
IEQ6YWEwYTI4ZmViZjA2fGJhY2t0cmFjZV0gUmFpc2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZl
ZXh0Lm1sXCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJp
bXBvcnQubWxcIiwgbGluZSAxMzg3LCBjaGFyYWN0ZXJzIDIwLTEwMjNcbkNhbGxlZCBmcm9tIGZp
bGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDcyLCBjaGFyYWN0ZXJzIDExLTIzXG4KPj4g
RGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMDMgSU5F
VCA6Ojo4MHxWTS5pbXBvcnQgRDphYTBhMjhmZWJmMDZ8ZGlzcGF0Y2hlcl0gU2VydmVyX2hlbHBl
cnMuZXhlYyBleGNlcHRpb25faGFuZGxlcjogR290IGV4Y2VwdGlvbiBTUl9CQUNLRU5EX0ZBSUxV
UkU6IFsgbm9uLXplcm8gZXhpdDsgOyBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
IzAxMiAgRmlsZSAiL29wdC94ZW5zb3VyY2Uvc20vTkZTU1IiLCBsaW5lIDI3OCwgaW4gPG1vZHVs
ZT4jMDEyIFNSQ29tbWFuZC5ydW4oTkZTU1IsIERSSVZFUl9JTkZPKSMwMTIgIEZpbGUgIi91c3Iv
bGliL3hhcGkvc20vU1JDb21tYW5kLnB5IiwgbGluZSAzNDQsIGluIHJ1biMwMTIgICAgcmV0ID0g
Y21kLnJ1bihzcikjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxp
bmUgMTEwLCBpbiBydW4jMDEyICAgIHJldHVybiBzZWxmLl9ydW5fbG9ja2VkKHNyKSMwMTIgIEZp
bGUgIi91c3IvbGliL3hhcGkvc20vU1JDb21tYW5kLnB5IiwgbGluZSAxNTksIGluIF9ydW5fbG9j
a2VkIzAxMiAgICBydiA9IHNlbGYuX3J1bihzciwgdGFyZ2V0KSMwMTIgIEZpbGUgIi91c3IvbGli
L3hhcGkvc20vU1JDb21tYW5kLnB5IiwgbGluZSAyNjMsIGluIF9ydW4jMDEyICAgIHdyaXRhYmxl
LCBjYWNoaW5nX3BhcmFtcykjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHki
LCBsaW5lIDE0ODYsIGluIGFjdGl2YXRlIzAxMiAgICBpZiBzZWxmLl9hY3RpdmF0ZV9sb2NrZWQo
c3JfdXVpZCwgdmRpX3V1aWQsIG9wdGlvbnMpOiMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20v
YmxrdGFwMi5weSIsIGxpbmUgODMsIGluIHdyYXBwZXIjMDEyICAgIHJldCA9IG9wKHNlbGYsICph
cmdzKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTUyMiwg
aW4gX2FjdGl2YXRlX2xvY2tlZCMwMTIgICAgZGV2X3BhdGggPSBzZWxmLl9hY3RpdmF0ZShzcl91
dWlkLCB2ZGlfdXVpZCwgb3B0aW9ucykjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3Rh
cDIucHkiLCBsaW5lIDE1NjAsIGluIF9hY3RpdmF0ZSMwMTIgc2VsZi5fZ2V0X3Bvb2xfY29uZmln
KHNyX3V1aWQpLmdldCgibWVtLXBvb2wtc2l6ZSIpKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkv
c20vYmxrdGFwMi5weSIsIGxpbmUgMTI0MywgaW4gX3RhcF9hY3RpdmF0ZSMwMTIgdGFwZGlzayA9
IFRhcGRpc2suZmluZF9ieV9wYXRoKHBoeV9wYXRoKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkv
c20vYmxrdGFwMi5weSIsIGxpbmUgNjkwLCBpbiBmaW5kX2J5X3BhdGgjMDEyIHJldHVybiBjbHMu
ZmluZChwYXRoPXBhdGgpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5Iiwg
bGluZSA2NzgsIGluIGZpbmQjMDEyICAgIGZvdW5kID0gbGlzdChjbHMubGlzdCgqKmFyZ3MpKSMw
MTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgNjUzLCBpbiBsaXN0
IzAxMiAgICBmb3Igcm93IGluIFRhcEN0bC5saXN0KCoqYXJncyk6IzAxMiAgRmlsZSAiL3Vzci9s
aWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxMTgsIGluIGxvb3AjMDEyICAgIHJldHVybiBm
KCpfX3QsICoqX19kKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxp
bmUgMzQ4LCBpbiBsaXN0IzAxMiAgICBpZiBlLnN0YXR1cyBpbiB0cmFuc2llbnQ6IzAxMiAgRmls
ZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNjIsIGluIF9fZ2V0YXR0cl9f
IzAxMiAgICByZXR1cm4gb2JqZWN0Ll9fZ2V0YXR0cmlidXRlX18oc2VsZiwga2V5KSMwMTJBdHRy
aWJ1dGVFcnJvcjogJ0NvbW1hbmRGYWlsdXJlJyBvYmplY3QgaGFzIG5vIGF0dHJpYnV0ZSAnc3Rh
dHVzJyMwMTIgXQo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhl
bnRlc3R8NDMwMyBJTkVUIDo6OjgwfFZNLmltcG9ydCBEOmFhMGEyOGZlYmYwNnxkaXNwYXRjaGVy
XSBSYWlzZWQgYXQgZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyNiwgY2hhcmFj
dGVycyAyMi0yNVxuQ2FsbGVkIGZyb20gZmlsZSBcImltcG9ydC5tbFwiLCBsaW5lIDEzODcsIGNo
YXJhY3RlcnMgMjAtMTAyM1xuQ2FsbGVkIGZyb20gZmlsZSBcInNlcnZlcl9oZWxwZXJzLm1sXCIs
IGxpbmUgNzIsIGNoYXJhY3RlcnMgMTEtMjNcbgo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0
IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMyBJTkVUIDo6OjgwfFZNLmltcG9ydCBEOmFhMGEy
OGZlYmYwNnxiYWNrdHJhY2VdIFJhaXNlZCBhdCBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwi
LCBsaW5lIDI2LCBjaGFyYWN0ZXJzIDIyLTI1XG5DYWxsZWQgZnJvbSBmaWxlIFwiaW1wb3J0Lm1s
XCIsIGxpbmUgMTM4NywgY2hhcmFjdGVycyAyMC0xMDIzXG5DYWxsZWQgZnJvbSBmaWxlIFwic2Vy
dmVyX2hlbHBlcnMubWxcIiwgbGluZSA3MiwgY2hhcmFjdGVycyAxMS0yM1xuCj4+IERlYyAzMCAw
Njo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzAzIElORVQgOjo6ODB8
Vk0uaW1wb3J0IEQ6YWEwYTI4ZmViZjA2fHhhcGldIFJhaXNlZCBhdCBmaWxlIFwibGliL3BlcnZh
c2l2ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFyYWN0ZXJzIDIyLTI1XG5DYWxsZWQgZnJvbSBmaWxl
IFwiaW1wb3J0Lm1sXCIsIGxpbmUgMTM4NywgY2hhcmFjdGVycyAyMC0xMDIzXG5DYWxsZWQgZnJv
bSBmaWxlIFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGluZSA3MiwgY2hhcmFjdGVycyAxMS0yM1xu
UmUtcmFpc2VkIGF0IGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDkwLCBjaGFyYWN0
ZXJzIDE0LTE1XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5l
IDIyLCBjaGFyYWN0ZXJzIDItOVxuCj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTog
W2RlYnVnfGc2eGVudGVzdHw0MzAzIElORVQgOjo6ODB8fHhhcGldIFJhaXNlZCBhdCBmaWxlIFwi
bGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFyYWN0ZXJzIDIyLTI1XG5DYWxsZWQg
ZnJvbSBmaWxlIFwiaW1wb3J0Lm1sXCIsIGxpbmUgMTM4NywgY2hhcmFjdGVycyAyMC0xMDIzXG5D
YWxsZWQgZnJvbSBmaWxlIFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGluZSA3MiwgY2hhcmFjdGVy
cyAxMS0yM1xuUmUtcmFpc2VkIGF0IGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDkw
LCBjaGFyYWN0ZXJzIDE0LTE1XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5t
bFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuUmUtcmFpc2VkIGF0IGZpbGUgXCJsaWIvcGVy
dmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxlZCBmcm9tIGZp
bGUgXCJsaWIvZGVidWcubWxcIiwgbGluZSA1NywgY2hhcmFjdGVycyAxNy0yMFxuUmUtcmFpc2Vk
IGF0IGZpbGUgXCJsaWIvZGVidWcubWxcIiwgbGluZSA2MiwgY2hhcmFjdGVycyAxMC0xMVxuQ2Fs
bGVkIGZyb20gZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFjdGVy
cyAyLTlcbgo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtlcnJvcnxnNnhlbnRl
c3R8NDMwMyBJTkVUIDo6OjgwfHx4YXBpXSBVbmhhbmRsZWQgQXBpX2Vycm9ycy5TZXJ2ZXJfZXJy
b3IoU1JfQkFDS0VORF9GQUlMVVJFLCBbIG5vbi16ZXJvIGV4aXQ7IDsgVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOiMwMTIgIEZpbGUgIi9vcHQveGVuc291cmNlL3NtL05GU1NSIiwg
bGluZSAyNzgsIGluIDxtb2R1bGU+IzAxMiBTUkNvbW1hbmQucnVuKE5GU1NSLCBEUklWRVJfSU5G
TykjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMzQ0LCBp
biBydW4jMDEyICAgIHJldCA9IGNtZC5ydW4oc3IpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9z
bS9TUkNvbW1hbmQucHkiLCBsaW5lIDExMCwgaW4gcnVuIzAxMiAgICByZXR1cm4gc2VsZi5fcnVu
X2xvY2tlZChzcikjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxp
bmUgMTU5LCBpbiBfcnVuX2xvY2tlZCMwMTIgICAgcnYgPSBzZWxmLl9ydW4oc3IsIHRhcmdldCkj
MDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMjYzLCBpbiBf
cnVuIzAxMiAgICB3cml0YWJsZSwgY2FjaGluZ19wYXJhbXMpIzAxMiAgRmlsZSAiL3Vzci9saWIv
eGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNDg2LCBpbiBhY3RpdmF0ZSMwMTIgICAgaWYgc2Vs
Zi5fYWN0aXZhdGVfbG9ja2VkKHNyX3V1aWQsIHZkaV91dWlkLCBvcHRpb25zKTojMDEyICBGaWxl
ICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDgzLCBpbiB3cmFwcGVyIzAxMiAg
ICByZXQgPSBvcChzZWxmLCAqYXJncykjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3Rh
cDIucHkiLCBsaW5lIDE1MjIsIGluIF9hY3RpdmF0ZV9sb2NrZWQjMDEyICAgIGRldl9wYXRoID0g
c2VsZi5fYWN0aXZhdGUoc3JfdXVpZCwgdmRpX3V1aWQsIG9wdGlvbnMpIzAxMiAgRmlsZSAiL3Vz
ci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNTYwLCBpbiBfYWN0aXZhdGUjMDEyIHNl
bGYuX2dldF9wb29sX2NvbmZpZyhzcl91dWlkKS5nZXQoIm1lbS1wb29sLXNpemUiKSkjMDEyICBG
aWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDEyNDMsIGluIF90YXBfYWN0
aXZhdGUjMDEyIHRhcGRpc2sgPSBUYXBkaXNrLmZpbmRfYnlfcGF0aChwaHlfcGF0aCkjMDEyICBG
aWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDY5MCwgaW4gZmluZF9ieV9w
YXRoIzAxMiByZXR1cm4gY2xzLmZpbmQocGF0aD1wYXRoKSMwMTIgIEZpbGUgIi91c3IvbGliL3hh
cGkvc20vYmxrdGFwMi5weSIsIGxpbmUgNjc4LCBpbiBmaW5kIzAxMiAgICBmb3VuZCA9IGxpc3Qo
Y2xzLmxpc3QoKiphcmdzKSkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHki
LCBsaW5lIDY1MywgaW4gbGlzdCMwMTIgICAgZm9yIHJvdyBpbiBUYXBDdGwubGlzdCgqKmFyZ3Mp
OiMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTE4LCBpbiBs
b29wIzAxMiAgICByZXR1cm4gZigqX190LCAqKl9fZCkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBp
L3NtL2Jsa3RhcDIucHkiLCBsaW5lIDM0OCwgaW4gbGlzdCMwMTIgICAgaWYgZS5zdGF0dXMgaW4g
dHJhbnNpZW50OiMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUg
MTYyLCBpbiBfX2dldGF0dHJfXyMwMTIgICAgcmV0dXJuIG9iamVjdC5fX2dldGF0dHJpYnV0ZV9f
KHNlbGYsIGtleSkjMDEyQXR0cmlidXRlRXJyb3I6ICdDb21tYW5kRmFpbHVyZScgb2JqZWN0IGhh
cyBubyBhdHRyaWJ1dGUgJ3N0YXR1cycjMDEyIF0pCj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRl
c3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzAzIElORVQgOjo6ODB8fGJhY2t0cmFjZV0gUmFp
c2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMg
MjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJpbXBvcnQubWxcIiwgbGluZSAxMzg3LCBjaGFyYWN0
ZXJzIDIwLTEwMjNcbkNhbGxlZCBmcm9tIGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5l
IDcyLCBjaGFyYWN0ZXJzIDExLTIzXG5SZS1yYWlzZWQgYXQgZmlsZSBcInNlcnZlcl9oZWxwZXJz
Lm1sXCIsIGxpbmUgOTAsIGNoYXJhY3RlcnMgMTQtMTVcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIv
cGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMgMi05XG5SZS1yYWlzZWQgYXQg
ZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyNiwgY2hhcmFjdGVycyAyMi0yNVxu
Q2FsbGVkIGZyb20gZmlsZSBcImxpYi9kZWJ1Zy5tbFwiLCBsaW5lIDU3LCBjaGFyYWN0ZXJzIDE3
LTIwXG5SZS1yYWlzZWQgYXQgZmlsZSBcImxpYi9kZWJ1Zy5tbFwiLCBsaW5lIDYyLCBjaGFyYWN0
ZXJzIDEwLTExXG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5l
IDIyLCBjaGFyYWN0ZXJzIDItOVxuUmUtcmFpc2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0
Lm1sXCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJ4YXBp
X2h0dHAubWxcIiwgbGluZSAyOTUsIGNoYXJhY3RlcnMgNC0yN1xuCj4+IERlYyAzMCAwNjo1MToz
OSBnNnhlbnRlc3QgU01HQzogWzUzNDNdIFNSIDc4N2IgKCdsb2NhbCBuZnMnKSAoMSBWRElzIGlu
IDEgVkhEIHRyZWVzKToKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCBTTUdDOiBbNTM0M10g
KmNhZTMwZTliKDguMDAwRy8xOS4wMDBLKQo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNN
R0M6IFs1MzQzXQo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhl
bnRlc3R8NDMwMCBVTklYIC92YXIvbGliL3hjcC94YXBpfHxjbGldIGNsaWVudC1zaWRlIHJlcG9y
dHMgZmFpbHVyZQo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNNOiBbNTM0M10gbG9jazog
cmVsZWFzZWQgL3Zhci9sb2NrL3NtLzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWEx
Ni9zcgo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNNOiBbNTM0M10gbG9jazogdHJpZWQg
bG9jayAvdmFyL2xvY2svc20vNzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2L3J1
bm5pbmcsIGFjcXVpcmVkOiBUcnVlIChleGlzdHM6IFRydWUpCj4+IERlYyAzMCAwNjo1MTozOSBn
NnhlbnRlc3QgU006IFs1MzQzXSBsb2NrOiB0cmllZCBsb2NrIC92YXIvbG9jay9zbS83ODdiMDg3
NC04ZThiLWU3ZDgtOGJhOS03NGY1NWZmMmVhMTYvc3IsIGFjcXVpcmVkOiBUcnVlIChleGlzdHM6
IFRydWUpCj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgU006IFs1MzQzXSBbJy91c3IvYmlu
L3ZoZC11dGlsJywgJ3NjYW4nLCAnLWYnLCAnLWMnLCAnLW0nLCAnL3Zhci9ydW4vc3ItbW91bnQv
Nzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2LyoudmhkJ10KPj4gRGVjIDMwIDA2
OjUxOjM5IGc2eGVudGVzdCBTTTogWzUzNDNdICAgcHJlYWQgU1VDQ0VTUwo+PiBEZWMgMzAgMDY6
NTE6MzkgZzZ4ZW50ZXN0IFNNR0M6IFs1MzQzXSBTUiA3ODdiICgnbG9jYWwgbmZzJykgKDEgVkRJ
cyBpbiAxIFZIRCB0cmVlcyk6IG5vIGNoYW5nZXMKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVz
dCBTTTogWzUzNDNdIGxvY2s6IHJlbGVhc2VkIC92YXIvbG9jay9zbS83ODdiMDg3NC04ZThiLWU3
ZDgtOGJhOS03NGY1NWZmMmVhMTYvc3IKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCBTTUdD
OiBbNTM0M10gRm91bmQgMSBWRElzIGZvciBkZWxldGlvbjoKPj4gRGVjIDMwIDA2OjUxOjM5IGc2
eGVudGVzdCBTTUdDOiBbNTM0M10gICAqY2FlMzBlOWIoOC4wMDBHLzE5LjAwMEspCj4+IERlYyAz
MCAwNjo1MTozOSBnNnhlbnRlc3QgU01HQzogWzUzNDNdIERlbGV0aW5nIHVubGlua2VkIFZESSAq
Y2FlMzBlOWIoOC4wMDBHLzE5LjAwMEspCj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgU006
IFs1MzQzXSBsb2NrOiB0cmllZCBsb2NrIC92YXIvbG9jay9zbS83ODdiMDg3NC04ZThiLWU3ZDgt
OGJhOS03NGY1NWZmMmVhMTYvc3IsIGFjcXVpcmVkOiBUcnVlIChleGlzdHM6IFRydWUpCj4+IERl
YyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0NDIxIFVOSVgg
L3Zhci9saWIveGNwL3hhcGl8VkRJLmdldF9ieV91dWlkIEQ6ZTU0MDJjNzgzMzZjfGJhY2t0cmFj
ZV0gUmFpc2VkIGF0IGZpbGUgXCJkYl9jYWNoZV9pbXBsLm1sXCIsIGxpbmUgMTk4LCBjaGFyYWN0
ZXJzIDE2LTU1XG5DYWxsZWQgZnJvbSBmaWxlIFwiZGJfYWN0aW9ucy5tbFwiLCBsaW5lIDEzMzMw
LCBjaGFyYWN0ZXJzIDI3LTYxXG5DYWxsZWQgZnJvbSBmaWxlIFwicmJhYy5tbFwiLCBsaW5lIDIy
NywgY2hhcmFjdGVycyAxNi0yM1xuUmUtcmFpc2VkIGF0IGZpbGUgXCJyYmFjLm1sXCIsIGxpbmUg
MjM2LCBjaGFyYWN0ZXJzIDEwLTE1XG5DYWxsZWQgZnJvbSBmaWxlIFwic2VydmVyX2hlbHBlcnMu
bWxcIiwgbGluZSA3MiwgY2hhcmFjdGVycyAxMS0yM1xuCj4+IERlYyAzMCAwNjo1MTozOSBnNnhl
bnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0NDIxIFVOSVggL3Zhci9saWIveGNwL3hhcGl8
VkRJLmdldF9ieV91dWlkIEQ6ZTU0MDJjNzgzMzZjfGRpc3BhdGNoZXJdIFNlcnZlcl9oZWxwZXJz
LmV4ZWMgZXhjZXB0aW9uX2hhbmRsZXI6IEdvdCBleGNlcHRpb24gVVVJRF9JTlZBTElEOiBbIFZE
STsgY2FlMzBlOWItZWJkNC00NDUwLThjZTAtOWY0MDM1Y2E2MmYxIF0KPj4gRGVjIDMwIDA2OjUx
OjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQ0MjEgVU5JWCAvdmFyL2xpYi94
Y3AveGFwaXxWREkuZ2V0X2J5X3V1aWQgRDplNTQwMmM3ODMzNmN8ZGlzcGF0Y2hlcl0gUmFpc2Vk
IGF0IGZpbGUgXCJkYl9jYWNoZV9pbXBsLm1sXCIsIGxpbmUgMTk4LCBjaGFyYWN0ZXJzIDE2LTU1
XG5DYWxsZWQgZnJvbSBmaWxlIFwiZGJfYWN0aW9ucy5tbFwiLCBsaW5lIDEzMzMwLCBjaGFyYWN0
ZXJzIDI3LTYxXG5DYWxsZWQgZnJvbSBmaWxlIFwicmJhYy5tbFwiLCBsaW5lIDIyNywgY2hhcmFj
dGVycyAxNi0yM1xuUmUtcmFpc2VkIGF0IGZpbGUgXCJyYmFjLm1sXCIsIGxpbmUgMjM2LCBjaGFy
YWN0ZXJzIDEwLTE1XG5DYWxsZWQgZnJvbSBmaWxlIFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGlu
ZSA3MiwgY2hhcmFjdGVycyAxMS0yM1xuCj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFw
aTogW2RlYnVnfGc2eGVudGVzdHw0NDIxIFVOSVggL3Zhci9saWIveGNwL3hhcGl8VkRJLmdldF9i
eV91dWlkIEQ6ZTU0MDJjNzgzMzZjfGJhY2t0cmFjZV0gUmFpc2VkIGF0IGZpbGUgXCJkYl9jYWNo
ZV9pbXBsLm1sXCIsIGxpbmUgMTk4LCBjaGFyYWN0ZXJzIDE2LTU1XG5DYWxsZWQgZnJvbSBmaWxl
IFwiZGJfYWN0aW9ucy5tbFwiLCBsaW5lIDEzMzMwLCBjaGFyYWN0ZXJzIDI3LTYxXG5DYWxsZWQg
ZnJvbSBmaWxlIFwicmJhYy5tbFwiLCBsaW5lIDIyNywgY2hhcmFjdGVycyAxNi0yM1xuUmUtcmFp
c2VkIGF0IGZpbGUgXCJyYmFjLm1sXCIsIGxpbmUgMjM2LCBjaGFyYWN0ZXJzIDEwLTE1XG5DYWxs
ZWQgZnJvbSBmaWxlIFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGluZSA3MiwgY2hhcmFjdGVycyAx
MS0yM1xuCj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVz
dHw0NDIxIFVOSVggL3Zhci9saWIveGNwL3hhcGl8VkRJLmdldF9ieV91dWlkIEQ6ZTU0MDJjNzgz
MzZjfHhhcGldIFJhaXNlZCBhdCBmaWxlIFwiZGJfY2FjaGVfaW1wbC5tbFwiLCBsaW5lIDE5OCwg
Y2hhcmFjdGVycyAxNi01NVxuQ2FsbGVkIGZyb20gZmlsZSBcImRiX2FjdGlvbnMubWxcIiwgbGlu
ZSAxMzMzMCwgY2hhcmFjdGVycyAyNy02MVxuQ2FsbGVkIGZyb20gZmlsZSBcInJiYWMubWxcIiwg
bGluZSAyMjcsIGNoYXJhY3RlcnMgMTYtMjNcblJlLXJhaXNlZCBhdCBmaWxlIFwicmJhYy5tbFwi
LCBsaW5lIDIzNiwgY2hhcmFjdGVycyAxMC0xNVxuQ2FsbGVkIGZyb20gZmlsZSBcInNlcnZlcl9o
ZWxwZXJzLm1sXCIsIGxpbmUgNzIsIGNoYXJhY3RlcnMgMTEtMjNcblJlLXJhaXNlZCBhdCBmaWxl
IFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGluZSA5MCwgY2hhcmFjdGVycyAxNC0xNVxuQ2FsbGVk
IGZyb20gZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFjdGVycyAy
LTlcbgo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8
NDQyMSBVTklYIC92YXIvbGliL3hjcC94YXBpfGRpc3BhdGNoOlZESS5nZXRfYnlfdXVpZCBEOjVh
NWIxOWM4NTk2Znx4YXBpXSBSYWlzZWQgYXQgZmlsZSBcImRiX2NhY2hlX2ltcGwubWxcIiwgbGlu
ZSAxOTgsIGNoYXJhY3RlcnMgMTYtNTVcbkNhbGxlZCBmcm9tIGZpbGUgXCJkYl9hY3Rpb25zLm1s
XCIsIGxpbmUgMTMzMzAsIGNoYXJhY3RlcnMgMjctNjFcbkNhbGxlZCBmcm9tIGZpbGUgXCJyYmFj
Lm1sXCIsIGxpbmUgMjI3LCBjaGFyYWN0ZXJzIDE2LTIzXG5SZS1yYWlzZWQgYXQgZmlsZSBcInJi
YWMubWxcIiwgbGluZSAyMzYsIGNoYXJhY3RlcnMgMTAtMTVcbkNhbGxlZCBmcm9tIGZpbGUgXCJz
ZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDcyLCBjaGFyYWN0ZXJzIDExLTIzXG5SZS1yYWlzZWQg
YXQgZmlsZSBcInNlcnZlcl9oZWxwZXJzLm1sXCIsIGxpbmUgOTAsIGNoYXJhY3RlcnMgMTQtMTVc
bkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJh
Y3RlcnMgMi05XG5SZS1yYWlzZWQgYXQgZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGlu
ZSAyNiwgY2hhcmFjdGVycyAyMi0yNVxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9kZWJ1Zy5tbFwi
LCBsaW5lIDU3LCBjaGFyYWN0ZXJzIDE3LTIwXG5SZS1yYWlzZWQgYXQgZmlsZSBcImxpYi9kZWJ1
Zy5tbFwiLCBsaW5lIDYyLCBjaGFyYWN0ZXJzIDEwLTExXG5DYWxsZWQgZnJvbSBmaWxlIFwibGli
L3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuCj4+IERlYyAzMCAw
Njo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0NDIxIFVOSVggL3Zhci9s
aWIveGNwL3hhcGl8ZGlzcGF0Y2g6VkRJLmdldF9ieV91dWlkIEQ6NWE1YjE5Yzg1OTZmfGJhY2t0
cmFjZV0gUmFpc2VkIGF0IGZpbGUgXCJkYl9jYWNoZV9pbXBsLm1sXCIsIGxpbmUgMTk4LCBjaGFy
YWN0ZXJzIDE2LTU1XG5DYWxsZWQgZnJvbSBmaWxlIFwiZGJfYWN0aW9ucy5tbFwiLCBsaW5lIDEz
MzMwLCBjaGFyYWN0ZXJzIDI3LTYxXG5DYWxsZWQgZnJvbSBmaWxlIFwicmJhYy5tbFwiLCBsaW5l
IDIyNywgY2hhcmFjdGVycyAxNi0yM1xuUmUtcmFpc2VkIGF0IGZpbGUgXCJyYmFjLm1sXCIsIGxp
bmUgMjM2LCBjaGFyYWN0ZXJzIDEwLTE1XG5DYWxsZWQgZnJvbSBmaWxlIFwic2VydmVyX2hlbHBl
cnMubWxcIiwgbGluZSA3MiwgY2hhcmFjdGVycyAxMS0yM1xuUmUtcmFpc2VkIGF0IGZpbGUgXCJz
ZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDkwLCBjaGFyYWN0ZXJzIDE0LTE1XG5DYWxsZWQgZnJv
bSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxu
UmUtcmFpc2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjYsIGNoYXJh
Y3RlcnMgMjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvZGVidWcubWxcIiwgbGluZSA1Nywg
Y2hhcmFjdGVycyAxNy0yMFxuUmUtcmFpc2VkIGF0IGZpbGUgXCJsaWIvZGVidWcubWxcIiwgbGlu
ZSA2MiwgY2hhcmFjdGVycyAxMC0xMVxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9wZXJ2YXNpdmVl
eHQubWxcIiwgbGluZSAyMiwgY2hhcmFjdGVycyAyLTlcblJlLXJhaXNlZCBhdCBmaWxlIFwibGli
L3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFyYWN0ZXJzIDIyLTI1XG5DYWxsZWQgZnJv
bSBmaWxlIFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGluZSAxMzYsIGNoYXJhY3RlcnMgMTAtMTA2
XG5DYWxsZWQgZnJvbSBmaWxlIFwic2VydmVyLm1sXCIsIGxpbmUgMjI0MDIsIGNoYXJhY3RlcnMg
MjMtMTUwXG5DYWxsZWQgZnJvbSBmaWxlIFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGluZSAxMTUs
IGNoYXJhY3RlcnMgNC03XG4KPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCBTTTogWzUzNDNd
IGxvY2s6IHJlbGVhc2VkIC92YXIvbG9jay9zbS83ODdiMDg3NC04ZThiLWU3ZDgtOGJhOS03NGY1
NWZmMmVhMTYvc3IKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCBTTTogWzUzNDNdIGxvY2s6
IHVubGlua2luZyBsb2NrIGZpbGUgL3Zhci9sb2NrL3NtL2NhZTMwZTliLWViZDQtNDQ1MC04Y2Uw
LTlmNDAzNWNhNjJmMS92ZGkKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCBTTTogWzUzNDNd
IGxvY2s6IHJlbW92aW5nIGxvY2sgZGlyIC92YXIvbG9jay9zbS9jYWUzMGU5Yi1lYmQ0LTQ0NTAt
OGNlMC05ZjQwMzVjYTYyZjEKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCBTTUdDOiBbNTM0
M10gU3RhcnRpbmcgYXN5bmNoIHNyVXBkYXRlIGZvciBTUiA3ODdiMDg3NC04ZThiLWU3ZDgtOGJh
OS03NGY1NWZmMmVhMTYKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbIGluZm98
ZzZ4ZW50ZXN0fDQ0MjR8QXN5bmMuU1IudXBkYXRlIFI6OGJmMjliMDI5YWI5fGRpc3BhdGNoZXJd
IHNwYXduaW5nIGEgbmV3IHRocmVhZCB0byBoYW5kbGUgdGhlIGN1cnJlbnQgdGFzayAodHJhY2tp
ZD04NzVjM2U2MDFhMDQyZGIyNzE0ZjlmYjgzYWY5ZmNkNykKPj4gRGVjIDMwIDA2OjUxOjM5IGc2
eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQ0MjR8QXN5bmMuU1IudXBkYXRlIFI6OGJm
MjliMDI5YWI5fGF1ZGl0XSBTUi51cGRhdGU6IFNSID0gJzc4N2IwODc0LThlOGItZTdkOC04YmE5
LTc0ZjU1ZmYyZWExNiAobG9jYWwgbmZzKScKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4
YXBpOiBbIGluZm98ZzZ4ZW50ZXN0fDQ0MjR8QXN5bmMuU1IudXBkYXRlIFI6OGJmMjliMDI5YWI5
fHN0b3JhZ2VfaW1wbF0gU1Iuc3RhdCBkYmc6T3BhcXVlUmVmOjhiZjI5YjAyLTlhYjktM2Y4ZS03
Zjk1LTQ3MWRjMzIyY2Y5ZiBzcjo3ODdiMDg3NC04ZThiLWU3ZDgtOGJhOS03NGY1NWZmMmVhMTYK
Pj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQ0MjZ8
fGR1bW15dGFza2hlbHBlcl0gdGFzayBTUi5zdGF0IEQ6MDQ0ODMyODE2NTBhIGNyZWF0ZWQgYnkg
dGFzayBSOjhiZjI5YjAyOWFiOQo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtk
ZWJ1Z3xnNnhlbnRlc3R8NDQyNnxTUi5zdGF0IEQ6MDQ0ODMyODE2NTBhfHNtXSBTTSBuZnMgc3Jf
dXBkYXRlIHNyPU9wYXF1ZVJlZjo1MjEyMzFkNi1kZjNiLTc5MGItMWUyMi1iMzQ0YTgzZDlkMzkK
Pj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbIGluZm98ZzZ4ZW50ZXN0fDQ0MjZ8
c21fZXhlYyBEOmRlNjk4MTU2MDNhZnx4YXBpXSBTZXNzaW9uLmNyZWF0ZSB0cmFja2lkPWMxODM5
NjE1ZDdmYzcxZTAxMDdkMThjMWM0Mzk3YmRmIHBvb2w9ZmFsc2UgdW5hbWU9IG9yaWdpbmF0b3I9
IGlzX2xvY2FsX3N1cGVydXNlcj10cnVlIGF1dGhfdXNlcl9zaWQ9IHBhcmVudD10cmFja2lkPTk4
MzRmNWFmNDFjOTY0ZTIyNWYyNDI3OWFlZmU0ZTQ5Cj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRl
c3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0NDI2fHNtX2V4ZWMgRDpkZTY5ODE1NjAzYWZ8bXNj
Z2VuXSB4YXBpPT54YXBpIFtsYWJlbD0ic2Vzc2lvbi5nZXRfdXVpZCJdOwo+PiBEZWMgMzAgMDY6
NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDQyNyBVTklYIC92YXIvbGli
L3hjcC94YXBpfHxkdW1teXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6c2Vzc2lvbi5nZXRfdXVp
ZCBEOjkzZDQ4NTY4ZGE4YyBjcmVhdGVkIGJ5IHRhc2sgRDpkZTY5ODE1NjAzYWYKPj4gRGVjIDMw
IDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQ0MjZ8c21fZXhlYyBE
OmRlNjk4MTU2MDNhZnxtc2NnZW5dIHNtYXBpdjI9PnNtYXBpdjEgW2xhYmVsPSJzcl91cGRhdGUi
XTsKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQ0
MjggVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0YXNrIGRpc3BhdGNo
Omhvc3QuZ2V0X290aGVyX2NvbmZpZyBEOmJjY2NiNzVjY2E2YyBjcmVhdGVkIGJ5IHRhc2sgRDow
NDQ4MzI4MTY1MGEKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4
ZW50ZXN0fDQ0MjkgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0YXNr
IGRpc3BhdGNoOlNSLmdldF9zbV9jb25maWcgRDpmMDQ5M2VlZmM3MzAgY3JlYXRlZCBieSB0YXNr
IEQ6MDQ0ODMyODE2NTBhCj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgU006IFs1MzczXSBz
cl91cGRhdGUgeydzcl91dWlkJzogJzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWEx
NicsICdzdWJ0YXNrX29mJzogJ0R1bW15UmVmOnwwNDQ4MzI4MS02NTBhLTdmMWItNWUwMy0yYThj
YWMyMDljZjV8U1Iuc3RhdCcsICdhcmdzJzogW10sICdob3N0X3JlZic6ICdPcGFxdWVSZWY6YmMw
MDFkNTctNjVjZS04YjJiLTc0YjQtY2Q3MTk3NjI3MmMwJywgJ3Nlc3Npb25fcmVmJzogJ09wYXF1
ZVJlZjozNzVmNTU0MC03MGE0LTQwNDAtNGIwOC1mZTA3MGZjMjgyODUnLCAnZGV2aWNlX2NvbmZp
Zyc6IHsnU1JtYXN0ZXInOiAndHJ1ZScsICdzZXJ2ZXJwYXRoJzogJy9tbnQvemJpb3JuaWsvdGVz
dHZvbC8nLCAnc2VydmVyJzogJzEyNy4wLjAuMSd9LCAnY29tbWFuZCc6ICdzcl91cGRhdGUnLCAn
c3JfcmVmJzogJ09wYXF1ZVJlZjo1MjEyMzFkNi1kZjNiLTc5MGItMWUyMi1iMzQ0YTgzZDlkMzkn
fQo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDQz
MCBVTklYIC92YXIvbGliL3hjcC94YXBpfHxkdW1teXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6
U1IuZ2V0X3ZpcnR1YWxfYWxsb2NhdGlvbiBEOmQwMzFlYzk4NDFkMCBjcmVhdGVkIGJ5IHRhc2sg
RDowNDQ4MzI4MTY1MGEKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8
ZzZ4ZW50ZXN0fDQ0MzEgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0
YXNrIGRpc3BhdGNoOlNSLmdldF9ieV91dWlkIEQ6ZTEwMWM2ZWY0MGY3IGNyZWF0ZWQgYnkgdGFz
ayBEOjA0NDgzMjgxNjUwYQo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1
Z3xnNnhlbnRlc3R8NDQzMiBVTklYIC92YXIvbGliL3hjcC94YXBpfHxkdW1teXRhc2toZWxwZXJd
IHRhc2sgZGlzcGF0Y2g6U1Iuc2V0X3ZpcnR1YWxfYWxsb2NhdGlvbiBEOjUzYzk2ZWQ3OWVhMCBj
cmVhdGVkIGJ5IHRhc2sgRDowNDQ4MzI4MTY1MGEKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVz
dCB4YXBpOiBbMjAxNDEyMzBUMDU6NTE6MzkuOTYwWnxhdWRpdHxnNnhlbnRlc3R8NDQzMiBVTklY
IC92YXIvbGliL3hjcC94YXBpfFNSLnNldF92aXJ0dWFsX2FsbG9jYXRpb24gRDpjNjNkYjZkZTEw
YTh8YXVkaXRdICgndHJhY2tpZD1jMTgzOTYxNWQ3ZmM3MWUwMTA3ZDE4YzFjNDM5N2JkZicgJ0xP
Q0FMX1NVUEVSVVNFUicgJ19fc21fX2JhY2tlbmQnICdBTExPV0VEJyAnT0snICdBUEknICdTUi5z
ZXRfdmlydHVhbF9hbGxvY2F0aW9uJyAoKCdzZWxmJyAnbG9jYWwgbmZzJyAnNzg3YjA4NzQtOGU4
Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2JyAnT3BhcXVlUmVmOjUyMTIzMWQ2LWRmM2ItNzkwYi0x
ZTIyLWIzNDRhODNkOWQzOScpKSkKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBb
ZGVidWd8ZzZ4ZW50ZXN0fDQ0MzMgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVs
cGVyXSB0YXNrIGRpc3BhdGNoOlNSLnNldF9waHlzaWNhbF9zaXplIEQ6Y2MwNWM2OWRkODE4IGNy
ZWF0ZWQgYnkgdGFzayBEOjA0NDgzMjgxNjUwYQo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0
IHhhcGk6IFsyMDE0MTIzMFQwNTo1MTozOS45NjRafGF1ZGl0fGc2eGVudGVzdHw0NDMzIFVOSVgg
L3Zhci9saWIveGNwL3hhcGl8U1Iuc2V0X3BoeXNpY2FsX3NpemUgRDoyNWU1OGVmM2ViMDZ8YXVk
aXRdICgndHJhY2tpZD1jMTgzOTYxNWQ3ZmM3MWUwMTA3ZDE4YzFjNDM5N2JkZicgJ0xPQ0FMX1NV
UEVSVVNFUicgJ19fc21fX2JhY2tlbmQnICdBTExPV0VEJyAnT0snICdBUEknICdTUi5zZXRfcGh5
c2ljYWxfc2l6ZScgKCgnc2VsZicgJ2xvY2FsIG5mcycgJzc4N2IwODc0LThlOGItZTdkOC04YmE5
LTc0ZjU1ZmYyZWExNicgJ09wYXF1ZVJlZjo1MjEyMzFkNi1kZjNiLTc5MGItMWUyMi1iMzQ0YTgz
ZDlkMzknKSkpCj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVu
dGVzdHw0NDM0IFVOSVggL3Zhci9saWIveGNwL3hhcGl8fGR1bW15dGFza2hlbHBlcl0gdGFzayBk
aXNwYXRjaDpTUi5zZXRfcGh5c2ljYWxfdXRpbGlzYXRpb24gRDowNDllYjQ0YTExZDIgY3JlYXRl
ZCBieSB0YXNrIEQ6MDQ0ODMyODE2NTBhCj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFw
aTogWzIwMTQxMjMwVDA1OjUxOjM5Ljk3MFp8YXVkaXR8ZzZ4ZW50ZXN0fDQ0MzQgVU5JWCAvdmFy
L2xpYi94Y3AveGFwaXxTUi5zZXRfcGh5c2ljYWxfdXRpbGlzYXRpb24gRDphZTM4YmJkMDZkNmR8
YXVkaXRdICgndHJhY2tpZD1jMTgzOTYxNWQ3ZmM3MWUwMTA3ZDE4YzFjNDM5N2JkZicgJ0xPQ0FM
X1NVUEVSVVNFUicgJ19fc21fX2JhY2tlbmQnICdBTExPV0VEJyAnT0snICdBUEknICdTUi5zZXRf
cGh5c2ljYWxfdXRpbGlzYXRpb24nICgoJ3NlbGYnICdsb2NhbCBuZnMnICc3ODdiMDg3NC04ZThi
LWU3ZDgtOGJhOS03NGY1NWZmMmVhMTYnICdPcGFxdWVSZWY6NTIxMjMxZDYtZGYzYi03OTBiLTFl
MjItYjM0NGE4M2Q5ZDM5JykpKQo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNNOiBbNTM3
M10gbG9jazogY2xvc2VkIC92YXIvbG9jay9zbS83ODdiMDg3NC04ZThiLWU3ZDgtOGJhOS03NGY1
NWZmMmVhMTYvc3IKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbIGluZm98ZzZ4
ZW50ZXN0fDQ0MjZ8c21fZXhlYyBEOmRlNjk4MTU2MDNhZnx4YXBpXSBTZXNzaW9uLmRlc3Ryb3kg
dHJhY2tpZD1jMTgzOTYxNWQ3ZmM3MWUwMTA3ZDE4YzFjNDM5N2JkZgo+PiBEZWMgMzAgMDY6NTE6
MzkgZzZ4ZW50ZXN0IHhhcGk6IFsyMDE0MTIzMFQwNTo1MTozOS45OTFafGF1ZGl0fGc2eGVudGVz
dHw0NDI0fEFzeW5jLlNSLnVwZGF0ZSBSOjhiZjI5YjAyOWFiOXxhdWRpdF0gKCd0cmFja2lkPTg3
NWMzZTYwMWEwNDJkYjI3MTRmOWZiODNhZjlmY2Q3JyAnTE9DQUxfU1VQRVJVU0VSJyAncm9vdCcg
J0FMTE9XRUQnICdPSycgJ0FQSScgJ1NSLnVwZGF0ZScgKCgnc3InICdsb2NhbCBuZnMnICc3ODdi
MDg3NC04ZThiLWU3ZDgtOGJhOS03NGY1NWZmMmVhMTYnICdPcGFxdWVSZWY6NTIxMjMxZDYtZGYz
Yi03OTBiLTFlMjItYjM0NGE4M2Q5ZDM5JykpKQo+PiBEZWMgMzAgMDY6NTE6NDAgZzZ4ZW50ZXN0
IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMCBVTklYIC92YXIvbGliL3hjcC94YXBpfHx4YXBp
XSBSYWlzZWQgYXQgZmlsZSBcImNsaV91dGlsLm1sXCIsIGxpbmUgMTM0LCBjaGFyYWN0ZXJzIDEw
LTY3XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBj
aGFyYWN0ZXJzIDItOVxuCj4+IERlYyAzMCAwNjo1MTo0MCBnNnhlbnRlc3QgeGFwaTogWzIwMTQx
MjMwVDA1OjUxOjQwLjY0NFp8YXVkaXR8ZzZ4ZW50ZXN0fDQzMDAgVU5JWCAvdmFyL2xpYi94Y3Av
eGFwaXx0YXNrLmRlc3Ryb3kgRDphZmMyMTg1NjJhMWJ8YXVkaXRdICgndHJhY2tpZD0wOWE5ZjU4
MjA1N2FkMjc4MTZlNDNhNGQzYzE4YmYxYicgJ0xPQ0FMX1NVUEVSVVNFUicgJ3Jvb3QnICdBTExP
V0VEJyAnT0snICdBUEknICd0YXNrLmRlc3Ryb3knICgoJ3NlbGYnICdWTSBpbXBvcnQnICc3MDg1
OWFkNi0wNDIwLWJhYTgtMTdhYy03NTljYjAxYWNkZTMnICdPcGFxdWVSZWY6ZGJkYjBlZTUtYWUx
Ni0wZjNkLTBjMGUtZGNhZjIzYTUyYTg4JykpKQo+PiBEZWMgMzAgMDY6NTE6NDAgZzZ4ZW50ZXN0
IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMCBVTklYIC92YXIvbGliL3hjcC94YXBpfHx4YXBp
XSBSYWlzZWQgYXQgZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyNiwgY2hhcmFj
dGVycyAyMi0yNVxuQ2FsbGVkIGZyb20gZmlsZSBcImNsaV9vcGVyYXRpb25zLm1sXCIsIGxpbmUg
MzI4MywgY2hhcmFjdGVycyAxOC0xMTFcbkNhbGxlZCBmcm9tIGZpbGUgXCJ4YXBpX2NsaS5tbFwi
LCBsaW5lIDExOSwgY2hhcmFjdGVycyAxOC01OFxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9wZXJ2
YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFjdGVycyAyLTlcbgo+PiBEZWMgMzAgMDY6NTE6
NDAgZzZ4ZW50ZXN0IHhhcGk6IFsgaW5mb3xnNnhlbnRlc3R8NDMwMCBVTklYIC92YXIvbGliL3hj
cC94YXBpfHNlc3Npb24ubG9nb3V0IEQ6YTc0MDI3ZjAzN2JkfHhhcGldIFNlc3Npb24uZGVzdHJv
eSB0cmFja2lkPTA5YTlmNTgyMDU3YWQyNzgxNmU0M2E0ZDNjMThiZjFiCj4+IERlYyAzMCAwNjo1
MTo0MCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzAwIFVOSVggL3Zhci9saWIv
eGNwL3hhcGl8fGJhY2t0cmFjZV0gUmFpc2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1s
XCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJ4YXBpX2Ns
aS5tbFwiLCBsaW5lIDExOCwgY2hhcmFjdGVycyAyLTEzOVxuQ2FsbGVkIGZyb20gZmlsZSBcInhh
cGlfY2xpLm1sXCIsIGxpbmUgMjIxLCBjaGFyYWN0ZXJzIDctNDRcbkNhbGxlZCBmcm9tIGZpbGUg
XCJ4YXBpX2NsaS5tbFwiLCBsaW5lIDI3MywgY2hhcmFjdGVycyA0LTIzXG4KPj4gRGVjIDMwIDA2
OjUxOjQwIGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMDAgVU5JWCAvdmFyL2xp
Yi94Y3AveGFwaXx8Y2xpXSBYYXBpX2NsaS5leGNlcHRpb25faGFuZGxlcjogR290IGV4Y2VwdGlv
biBTUl9CQUNLRU5EX0ZBSUxVUkU6IFsgbm9uLXplcm8gZXhpdDsgOyBUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6IzAxMiAgRmlsZSAiL29wdC94ZW5zb3VyY2Uvc20vTkZTU1IiLCBs
aW5lIDI3OCwgaW4gPG1vZHVsZT4jMDEyICAgIFNSQ29tbWFuZC5ydW4oTkZTU1IsIERSSVZFUl9J
TkZPKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vU1JDb21tYW5kLnB5IiwgbGluZSAzNDQs
IGluIHJ1biMwMTIgICAgcmV0ID0gY21kLnJ1bihzcikjMDEyICBGaWxlICIvdXNyL2xpYi94YXBp
L3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMTEwLCBpbiBydW4jMDEyICAgIHJldHVybiBzZWxmLl9y
dW5fbG9ja2VkKHNyKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vU1JDb21tYW5kLnB5Iiwg
bGluZSAxNTksIGluIF9ydW5fbG9ja2VkIzAxMiAgICBydiA9IHNlbGYuX3J1bihzciwgdGFyZ2V0
KSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vU1JDb21tYW5kLnB5IiwgbGluZSAyNjMsIGlu
IF9ydW4jMDEyICAgIHdyaXRhYmxlLCBjYWNoaW5nX3BhcmFtcykjMDEyICBGaWxlICIvdXNyL2xp
Yi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDE0ODYsIGluIGFjdGl2YXRlIzAxMiAgICBpZiBz
ZWxmLl9hY3RpdmF0ZV9sb2NrZWQoc3JfdXVpZCwgdmRpX3V1aWQsIG9wdGlvbnMpOiMwMTIgIEZp
bGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgODMsIGluIHdyYXBwZXIjMDEy
ICAgIHJldCA9IG9wKHNlbGYsICphcmdzKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxr
dGFwMi5weSIsIGxpbmUgMTUyMiwgaW4gX2FjdGl2YXRlX2xvY2tlZCMwMTIgICAgZGV2X3BhdGgg
PSBzZWxmLl9hY3RpdmF0ZShzcl91dWlkLCB2ZGlfdXVpZCwgb3B0aW9ucykjMDEyICBGaWxlICIv
dXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDE1NjAsIGluIF9hY3RpdmF0ZSMwMTIg
c2VsZi5fZ2V0X3Bvb2xfY29uZmlnKHNyX3V1aWQpLmdldCgibWVtLXBvb2wtc2l6ZSIpKSMwMTIg
IEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTI0MywgaW4gX3RhcF9h
Y3RpdmF0ZSMwMTIgdGFwZGlzayA9IFRhcGRpc2suZmluZF9ieV9wYXRoKHBoeV9wYXRoKSMwMTIg
IEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgNjkwLCBpbiBmaW5kX2J5
X3BhdGgjMDEyIHJldHVybiBjbHMuZmluZChwYXRoPXBhdGgpIzAxMiAgRmlsZSAiL3Vzci9saWIv
eGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA2NzgsIGluIGZpbmQjMDEyICAgIGZvdW5kID0gbGlz
dChjbHMubGlzdCgqKmFyZ3MpKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5w
eSIsIGxpbmUgNjUzLCBpbiBsaXN0IzAxMiAgICBmb3Igcm93IGluIFRhcEN0bC5saXN0KCoqYXJn
cyk6IzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxMTgsIGlu
IGxvb3AjMDEyICAgIHJldHVybiBmKCpfX3QsICoqX19kKSMwMTIgIEZpbGUgIi91c3IvbGliL3hh
cGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMzQ4LCBpbiBsaXN0IzAxMiAgICBpZiBlLnN0YXR1cyBp
biB0cmFuc2llbnQ6IzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGlu
ZSAxNjIsIGluIF9fZ2V0YXR0cl9fIzAxMiAgICByZXR1cm4gb2JqZWN0Ll9fZ2V0YXR0cmlidXRl
X18oc2VsZiwga2V5KSMwMTJBdHRyaWJ1dGVFcnJvcjogJ0NvbW1hbmRGYWlsdXJlJyBvYmplY3Qg
aGFzIG5vIGF0dHJpYnV0ZSAnc3RhdHVzJyMwMTIgXQo+PiBEZWMgMzAgMDY6NTE6NDAgZzZ4ZW50
ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMCBVTklYIC92YXIvbGliL3hjcC94YXBpfHxj
bGldIFJhaXNlZCBhdCBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFy
YWN0ZXJzIDIyLTI1XG5DYWxsZWQgZnJvbSBmaWxlIFwieGFwaV9jbGkubWxcIiwgbGluZSAxMTgs
IGNoYXJhY3RlcnMgMi0xMzlcbkNhbGxlZCBmcm9tIGZpbGUgXCJ4YXBpX2NsaS5tbFwiLCBsaW5l
IDIyMSwgY2hhcmFjdGVycyA3LTQ0XG5DYWxsZWQgZnJvbSBmaWxlIFwieGFwaV9jbGkubWxcIiwg
bGluZSAyNzMsIGNoYXJhY3RlcnMgNC0yM1xuCj4+IERlYyAzMCAwNjo1MTo0MCBnNnhlbnRlc3Qg
U01HQzogWzUzNDNdIFNSLnVwZGF0ZV9hc3luY2ggc3RhdHVzIGNoYW5nZWQgdG8gW3N1Y2Nlc3Nd
Cj4+IERlYyAzMCAwNjo1MTo0MCBnNnhlbnRlc3QgU006IFs1MzQzXSBsb2NrOiByZWxlYXNlZCAv
dmFyL2xvY2svc20vNzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2L3J1bm5pbmcK
Pj4gRGVjIDMwIDA2OjUxOjQwIGc2eGVudGVzdCBTTTogWzUzNDNdIGxvY2s6IHRyaWVkIGxvY2sg
L3Zhci9sb2NrL3NtLzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWExNi9zciwgYWNx
dWlyZWQ6IFRydWUgKGV4aXN0czogVHJ1ZSkKPj4gRGVjIDMwIDA2OjUxOjQwIGc2eGVudGVzdCBT
TTogWzUzNDNdIFsnL3Vzci9iaW4vdmhkLXV0aWwnLCAnc2NhbicsICctZicsICctYycsICctbScs
ICcvdmFyL3J1bi9zci1tb3VudC83ODdiMDg3NC04ZThiLWU3ZDgtOGJhOS03NGY1NWZmMmVhMTYv
Ki52aGQnXQo+PiBEZWMgMzAgMDY6NTE6NDAgZzZ4ZW50ZXN0IFNNOiBbNTM0M10gICBwcmVhZCBT
VUNDRVNTCj4+IERlYyAzMCAwNjo1MTo0MCBnNnhlbnRlc3QgU01HQzogWzUzNDNdIFNSIDc4N2Ig
KCdsb2NhbCBuZnMnKSAoMCBWRElzIGluIDAgVkhEIHRyZWVzKTogc2hvd2luZyBvbmx5IFZIRCB0
cmVlcyB0aGF0IGNoYW5nZWQ6Cj4+IERlYyAzMCAwNjo1MTo0MCBnNnhlbnRlc3QgU01HQzogWzUz
NDNdIFRyZWUgY2FlMzBlOWItZWJkNC00NDUwLThjZTAtOWY0MDM1Y2E2MmYxIGdvbmUKPj4gRGVj
IDMwIDA2OjUxOjQwIGc2eGVudGVzdCBTTUdDOiBbNTM0M10KPj4gRGVjIDMwIDA2OjUxOjQwIGc2
eGVudGVzdCBTTTogWzUzNDNdIGxvY2s6IHJlbGVhc2VkIC92YXIvbG9jay9zbS83ODdiMDg3NC04
ZThiLWU3ZDgtOGJhOS03NGY1NWZmMmVhMTYvc3IKPj4gRGVjIDMwIDA2OjUxOjQwIGc2eGVudGVz
dCBTTUdDOiBbNTM0M10gTm8gd29yaywgZXhpdGluZwo+PiBEZWMgMzAgMDY6NTE6NDAgZzZ4ZW50
ZXN0IFNNR0M6IFs1MzQzXSBJbiBjbGVhbnVwCj4+IERlYyAzMCAwNjo1MTo0MCBnNnhlbnRlc3Qg
U01HQzogWzUzNDNdIFNSIDc4N2IgKCdsb2NhbCBuZnMnKSAoMCBWRElzIGluIDAgVkhEIHRyZWVz
KTogbm8gY2hhbmdlcwo+PiBEZWMgMzAgMDY6NTE6NDAgZzZ4ZW50ZXN0IHhhcGk6IFsgaW5mb3xn
NnhlbnRlc3R8NDQzNyBVTklYIC92YXIvbGliL3hjcC94YXBpfHNlc3Npb24ubG9nb3V0IEQ6NjIw
OTM2NzI5MDFjfHhhcGldIFNlc3Npb24uZGVzdHJveSB0cmFja2lkPTg3NWMzZTYwMWEwNDJkYjI3
MTRmOWZiODNhZjlmY2Q3Cj4+IERlYyAzMCAwNjo1MTo0MCBnNnhlbnRlc3QgeGNwLXJyZGQ6IFtk
ZWJ1Z3xnNnhlbnRlc3R8MTMyNiB1bml4X3JwY3x8aHR0cF0gUmVxdWVzdCB7IGZyYW1lID0gZmFs
c2U7IG1ldGhvZCA9IFBPU1Q7IHVyaSA9IC92YXIvbGliL3hjcC94Y3AtcnJkZDsgcXVlcnkgPSBb
ICBdOyBjb250ZW50X2xlbmd0aCA9IFsgMzMwIF07IHRyYW5zZmVyIGVuY29kaW5nID0gOyB2ZXJz
aW9uID0gMS4xOyBjb29raWUgPSBbID0gXTsgdGFzayA9IDsgc3VidGFza19vZiA9IDsgY29udGVu
dC10eXBlID0gOyBob3N0ID0gOyB1c2VyX2FnZW50ID0gL3Vzci9zYmluL3hhcGkgfQo+PiBEZWMg
MzAgMDY6NTE6NDEgZzZ4ZW50ZXN0IHhjcC1ycmRkOiBbZGVidWd8ZzZ4ZW50ZXN0fDAgbW9uaXRv
cnxtYWlufHJyZGRfc3RhdHNdIHN5c3RlbSBzdGF0czogTWVtVG90YWw6IDgxNDE1NzIgS2lCOyBN
ZW1GcmVlOiA2ODExNDcyIEtpQjsgQnVmZmVyZWQ6IDc3NjI0IEtpQjsgQ2FjaGVkOiA3NjIwNDAg
S2lCOyBTd2FwVG90YWw6IDAgS2lCOyBTd2FwRnJlZTogMCBLaUIKPj4gRGVjIDMwIDA2OjUxOjQx
IGc2eGVudGVzdCB4Y3AtcnJkZDogW2RlYnVnfGc2eGVudGVzdHwwIG1vbml0b3J8bWFpbnxycmRk
X3N0YXRzXSBDbG9jayBkcmlmdDogMAo+PiBEZWMgMzAgMDY6NTE6NDEgZzZ4ZW50ZXN0IHhjcC1y
cmRkOiBbZGVidWd8ZzZ4ZW50ZXN0fDAgbW9uaXRvcnxtYWlufHJyZGRfc3RhdHNdIHhjcC1ycmRk
IHN0YXRzIChuID0gMSk6IHNpemU6IDM0MDc3NiBLaUI7IHJzczogODExMiBLaUI7IGRhdGE6IDMx
NjI5MiBLaUI7IHN0YWNrOiAxMzYgS2lCCj4+IERlYyAzMCAwNjo1MTo0MSBnNnhlbnRlc3QgeGNw
LXJyZGQ6IFtkZWJ1Z3xnNnhlbnRlc3R8MCBtb25pdG9yfG1haW58cnJkZF9zdGF0c10geGFwaSBz
dGF0cyAobiA9IDIpOiBzaXplOiAzMzIyMTY0IEtpQjsgcnNzOiA0Njk0NCBLaUI7IGRhdGE6IDMy
MjYzOTIgS2lCOyBzdGFjazogMjcyIEtpQgo+PiBEZWMgMzAgMDY6NTE6NDEgZzZ4ZW50ZXN0IGZv
cmtleGVjZDogW2Vycm9yfGc2eGVudGVzdHwwfHxmb3JrZXhlY2RdIDUzOTQgKC9iaW4vcGlkb2Yg
eGVub3BzZCkgZXhpdHRlZCB3aXRoIGNvZGUgMQo+PiBEZWMgMzAgMDY6NTE6NDEgZzZ4ZW50ZXN0
IHhjcC1ycmRkOiBbZGVidWd8ZzZ4ZW50ZXN0fDAgbW9uaXRvcnxtYWlufHJyZGRfc3RhdHNdIHhl
bm9wc2Qgc3RhdHMgKG4gPSAwKTogc2l6ZTogMCBLaUI7IHJzczogMCBLaUI7IGRhdGE6IDAgS2lC
OyBzdGFjazogMCBLaUIKPj4KPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18KPj4gWGVuLWFwaSBtYWlsaW5nIGxpc3QKPj4gWGVuLWFwaUBsaXN0cy54ZW4u
b3JnCj4+IGh0dHA6Ly9saXN0cy54ZW4ub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby94ZW4t
YXBpCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhl
bi1hcGkgbWFpbGluZyBsaXN0Clhlbi1hcGlAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVu
Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8veGVuLWFwaQo=

From xen-api-bounces@lists.xen.org Tue Dec 30 15:41:44 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2014 15:41:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Y5yvS-0001Yz-R7; Tue, 30 Dec 2014 15:41:38 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <dkadds2@gmail.com>) id 1Y5yvQ-0001Yu-S7
	for xen-api@lists.xen.org; Tue, 30 Dec 2014 15:41:37 +0000
Received: from [85.158.139.211] by server-1.bemta-5.messagelabs.com id
	B6/E2-24124-0B7C2A45; Tue, 30 Dec 2014 15:41:36 +0000
X-Env-Sender: dkadds2@gmail.com
X-Msg-Ref: server-8.tower-206.messagelabs.com!1419954091!11744838!1
X-Originating-IP: [209.85.212.170]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 3928 invoked from network); 30 Dec 2014 15:41:31 -0000
Received: from mail-wi0-f170.google.com (HELO mail-wi0-f170.google.com)
	(209.85.212.170)
	by server-8.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Dec 2014 15:41:31 -0000
Received: by mail-wi0-f170.google.com with SMTP id bs8so25763169wib.3
	for <xen-api@lists.xen.org>; Tue, 30 Dec 2014 07:41:31 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=message-id:date:from:user-agent:mime-version:to:cc:subject
	:references:in-reply-to:content-type:content-transfer-encoding;
	bh=eeQQy/wNmNUVnHcY77eVDxToOz3+id/FUh+hpc8pqa8=;
	b=qwGEwbQarVmMW43T0ZhEAB6RHR0U3RQU1uu5oU35rad/iwnUbe1UfyXmrgLzPBuoLt
	BaCAJCO4OBpebXypfKEsnncERP4FL74hEzgVTjYdPVhzm/c0KZRjQx5o9+FedudmZxhq
	/xhB5agXTww2tYkUtyR1qKZaAnNVwCF92jWOdUUu07cyPT+e/dooZd18Tr2pCmNX4il0
	IDKbIsJvl0l8CuaUE3DtHczbEj8uljtjWsnOG2pxsQDRWyQouZ2FFgswM5FJ3Ti/FXNs
	NQNwvLWEcFaFN+G93qzj8+RgRqVZ8DZL3eu2wZVdat696fJf/KVPbQKdhunNUqEACc6S
	gaFw==
X-Received: by 10.181.29.198 with SMTP id jy6mr94387917wid.0.1419954090790;
	Tue, 30 Dec 2014 07:41:30 -0800 (PST)
Received: from BlackApple.local ([88.169.214.221])
	by mx.google.com with ESMTPSA id j6sm23913331wjx.12.2014.12.30.07.41.27
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 30 Dec 2014 07:41:29 -0800 (PST)
Message-ID: <54A2C7A6.5070506@gmail.com>
Date: Tue, 30 Dec 2014 16:41:26 +0100
From: David <dkadds2@gmail.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10;
	rv:31.0) Gecko/20100101 Thunderbird/31.3.0
MIME-Version: 1.0
To: Dave Scott <Dave.Scott@citrix.com>
References: <54A2BA68.2060105@gmail.com>
	<101E8D96-8243-48BB-AE07-804E785BC24C@citrix.com>
In-Reply-To: <101E8D96-8243-48BB-AE07-804E785BC24C@citrix.com>
Cc: Xen API mailing list <xen-api@lists.xen.org>
Subject: Re: [Xen-API] NFS exported from ZFS on Ubuntu 14.04
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

SGkgRGF2ZSwKCk1hbnkgdGhhbmtzIGZvciBxdWljayByZXBseSEgUmVhbGx5IGFwcHJlY2lhdGVk
LgpNeSBjb21tZW50cyBpbmxpbmUgYmVsb3cuCgpPbiAzMC8xMi8xNCAxNjozMCwgRGF2ZSBTY290
dCB3cm90ZToKPiBIaSwKPgo+PiBPbiAzMCBEZWMgMjAxNCwgYXQgMTQ6NDQsIERhdmlkIDxka2Fk
ZHMyQGdtYWlsLmNvbT4gd3JvdGU6Cj4+Cj4+IEhpIEd1eXMsCj4+Cj4+IEknbSBsb29raW5nIGZv
ciB5b3VyIGhlbHAgYXMgSSdtIGZhY2luZyBpc3N1ZSB3aXRoIFhlbiBhbmQgTkZTIFN0b3JhZ2Ug
UmVwb3NpdG9yeS4KPj4gVGhlIHByb2JsZW0gSSdtIGZhY2luZyBpcyB0aGF0IHZtLWltcG9ydCBm
YWlscyBkdWUgdG8gYmxrdGFwMiBpc3N1ZSAoc2VlbXMgbGlrZSkuCj4+IExhc3QgY2FsbCBpcyBh
Ym91dCB2ZGlfYWN0aXZhdGUgZmFpbHVyZSAoZnVsbCBkdW1wIGJlbG93KToKPj4KPj4gZ2VuZXJp
YyBleGNlcHRpb246IHZkaV9hY3RpdmF0ZTogRVhDRVBUSU9OIDx0eXBlICdleGNlcHRpb25zLkF0
dHJpYnV0ZUVycm9yJz4sICdDb21tYW5kRmFpbHVyZScgb2JqZWN0IGhhcyBubyBhdHRyaWJ1dGUg
J3N0YXR1cycKPj4KPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAgRmls
ZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNTYwLCBpbiBfYWN0aXZhdGUK
Pj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdIHNlbGYuX2dldF9wb29sX2Nv
bmZpZyhzcl91dWlkKS5nZXQoIm1lbS1wb29sLXNpemUiKSkKPj4gRGVjIDMwIDA2OjUxOjM4IGc2
eGVudGVzdCBTTTogWzUyNjZdICAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5Iiwg
bGluZSAxMjQzLCBpbiBfdGFwX2FjdGl2YXRlCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3Qg
U006IFs1MjY2XSAgICAgdGFwZGlzayA9IFRhcGRpc2suZmluZF9ieV9wYXRoKHBoeV9wYXRoKQo+
Pgo+Pgo+PiBPbiBiYWNrZW5kIHNpZGUgTkZTIGlzIGV4cG9ydGVkIGZyb20gWkZTIChsb2NhbGhv
c3QpIGVuY3J5cHRlZCB3aXRoIGRlZHVwIG9uIGlmIGl0IHdvdWxkIG1hdHRlci4KPj4gWGVuc2Vy
dmVyIGlzIGNvbXBpbGVkIGZyb20gc291cmNlcyBmcm9tIGJ1aWxkcm9vdC4KPj4KPj4gSSd2ZSB0
cmllZCB0byB1c2UgRmlsZVNSIGJ1dCBpdCBmYWlsZWQgbWlzZXJhYmx5IHRvby4KPj4gVG8gZ2V0
IHRvIHRoZSBzdGFnZSB3aGVyZSBJIGFtIG5vdyBJJ3ZlIGhhZCB0byBmaXggc29tZSBzdGF0aWMg
cGF0aHMgd2l0aGluIFNSIGFkYXB0ZXJzLgo+IERvIHlvdXIgcGF0aCBtb2RpZmljYXRpb25zIGxv
b2sgc2ltaWxhciB0byBCb2LigJlzPyAoYWxzbyBjYzpkIGluIGNhc2UgaGUgY2FuIHNwb3Qgc29t
ZXRoaW5nKQo+Cj4gaHR0cHM6Ly9naXRodWIuY29tL3hlbnNlcnZlci9idWlsZHJvb3QvcHVsbC81
ODAKPgo+IEnigJltIHN1c3BpY2lvdXMgYmVjYXVzZSBvZiBvbmUgb2YgdGhlIHNlY3Rpb25zIG9m
IHRoZSBzdGFjayB0cmFjZSBiZWxvdzoKWWVzLCB0aGVzZSBhcmUgc2ltaWxhciwgSSd2ZSBtb2Rp
ZmllZCBwYXRocyBpbjoKdmhkdXRpbC5weSAtIFZIRF9VVElMIHBhdGgKRmlsZVNSLnB5IHRvIHNr
aXAgImIiIHN3aXRjaCBhcyBpdCdzIG5vdCBzdXBwb3J0ZWQgYnkgY3VycmVudCB2ZXJzaW9uLCAK
bGluZSA4NzkgJiA4ODAgKGNvbW1lbnRlZCBvdXQpLgpTUi5weSAtIFRBUERJU0tfVVRJTCBwYXRo
CkFib3ZlIHdlcmUgcXVpY2sgYW5kIGRpcnR5IGlubGluZSBjaGFuZ2VzIGFzIEkgd2FudGVkIHRv
IG1vdmUgZm9yd2FyZC4KCkknbSBoYXBweSB0byBwb3N0IGRpZmZzIGlmIHJlcXVpcmVkLiBJJ3Zl
IGdhdmUgdXAgd2l0aCBGaWxlU1IgYXMgaXQgZ2F2ZSAKbWUgc29tZSBmdXJ0aGVyIGlzc3VlcyBi
dXQgSSdtIGhhcHB5IHRvIHJldmVydCBiYWNrIHRvIEZpbGVTUiBhbmQgZHJvcCAKTkZTIGlmIHlv
dSBndXlzIGNvdWxkIGhlbHAgbWUgd2l0aCBpc3N1ZXMgOikKCj4+IERlYyAzMCAwNjo1MTozOCBn
NnhlbnRlc3QgU006IFs1MjY2XSAgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIs
IGxpbmUgNjUzLCBpbiBsaXN0Cj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2
XSAgICAgZm9yIHJvdyBpbiBUYXBDdGwubGlzdCgqKmFyZ3MpOgo+IOKAlCB0aGlzIGlzIHdoZXJl
IHRoZSBTTSBwbHVnaW4gcnVucyDigJx0YXAtY3RsIGxpc3TigJ0gYW5kIHBhcnNlcyB0aGUgb3V0
cHV0LiBDb3VsZCB0aGUgcGF0aCB0byB0aGlzIGNvbW1hbmQgYmUgd3Jvbmc/Cj4KVGhpcyBvbmUg
ZXhpc3QgZm9yIGNvbnRyYXJ5LCBzbyBubyBuZWVkIHRvIGZpeCBwYXRoLiBUaGUgZXJyb3IgY2Ft
ZSBmcm9tIApvdGhlciBpc3N1ZSBhcyBwZXIgZHVtcC4KCkJMS1RBUDI6PGZ1bmN0aW9uIF9hY3Rp
dmF0ZV9sb2NrZWQgYXQgMHg3ZjYxMWE4MDFlZDg+OiBFWENFUFRJT04gPHR5cGUgJ2V4Y2VwdGlv
bnMuQXR0cmlidXRlRXJyb3InPiwgJ0NvbW1hbmRGYWlsdXJlJyBvYmplY3QgaGFzIG5vIGF0dHJp
YnV0ZSAnc3RhdHVzJwoKRmlsZSBleGlzdHM6CnJvb3RAZzZ4ZW50ZXN0Oi91c3IvbGliL3hhcGkv
c20jIGxzIC1sIC91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weQotcnd4ci14ci14IDEgcm9vdCBy
b290IDg1NzE4IERlYyAyMiAwMjo1MiAvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkKCj4+IEFu
eSBoZWxwIGFuZCBoaW50cyBpcyBtb3JlIHRoYW4gYXBwcmVjaWF0ZWQuCj4+Cj4+IGJ0dy4gd2h5
IGRvIEkgdXNlIFpGUyBleHBvcnRlZCB2aWEgTkZTPyBJIG5lZWQgY29tcHJlc3Npb24gYW5kIGRl
ZHVwbGljYXRpb24uIEhvc3QgaXRzZWxmIGhhcyBwbGVudHkgb2YgcmVzb3VyY2VzIGFuZCB3aWxs
IGJlIHJ1bm5pbmcgY291cGxlIG9mIFZNcyB3aXRoIGFsbW9zdCBzYW1lIGNvbmZpZ3VyYXRpb24g
YW5kIHdvbid0IGJlIGhpZ2hseSBsb2FkZWQuIFRoZXJlZm9yZSBJJ20gbm90IGFmdGVyIHBlcmZv
cm1hbmNlIGJ1dCBtb3JlIGNvbmNlcm5lZCBhYm91dCBzdG9yYWdlIHNwYWNlLgo+PiBBbnkgaGlu
dHMgb24gaG93IHRvIHB1dCBTUiBvbiBaRlMgb24gTGludXggKFVidW50dSBwcmVmZXJyZWQpIHdv
dWxkIGJlIGdyZWF0Lgo+PiBJJ3ZlIHRlc3RlZCBzbyBmYXIgRmlsZVNSLCB0cmllZCB0byBleHBv
c2UgWkZTIGJsb2NrIGRldmljZSBhbmQgbG9vcGJhY2sgYnV0IGl0IGRpZG4ndCB3b3JrLgo+PiBD
cmVhdGluZyBmaWxlIG9uIFpGUyBtb3VudGVkIHZpYSBsb29wYmFjayB0byBjcmVhdGUgdmcvcHYv
bHYgc2VlbXMgbGlrZSBhbiBvdmVya2lsbC4KPj4KPj4gVGhlIGxhc3Qgb3B0aW9uIHdoaWNoIEkn
dmUgZmlndXJlZCBvdXQgd291bGQgYmUgdG8gZXhwb3NlIFpGUyB2aWEgaVNDU0ksIGJ1dCB0aGlz
IHNlZW1zIHRvIGJlIGFuIG92ZXJraWxsIHRvby4KPj4gVGhlIGVhc2llc3QgZm9yIG1lIGFuZCBm
dWxseSBhY2NlcHRhYmxlIHdvdWxkIGJlIHRvIHVzZSBWSEQgKFZESSkgZmlsZXMgZGlyZWN0bHkg
b24gWkZTIGJ1dCBpdCBkaWRuJ3Qgd29yayBuZWl0aGVyLgo+IEkgdGhpbmsgdXNpbmcgLnZoZCBm
aWxlcyBkaXJlY3RseSBvbiBhbiBaRlMgbW91bnQgdmlhIEZpbGVTUiB3b3VsZCBiZSBpZGVhbC4g
T25jZSB3ZeKAmXZlIGZpZ3VyZWQgb3V0IHdoYXTigJlzIHdyb25nIHdpdGggdGhlIHNoYXJlZCBi
bGt0YXAyLnB5IGNvZGUgdGhhdCBzaG91bGQgd29yay4KVXNpbmcgRmlsZVNSIGRpZCBmYWlsIG1p
c2VyYWJseSBhdCBlYXJsaWVyIHN0YWdlLiBJJ2xsIHBvc3QgaW4gYSBzZWMgYSAKbmV3IHRocmVh
ZCB0byBjb3ZlciB0aGlzLCBqdXN0IHRvIG5vdCBtaXggdHdvIGluIG9uZSBhbmQgdG8gbm90IGxv
b3NlIAp0cmFjayBvbiB3aGF0J3MgZ29pbmcgb24gOikKClRoYW5rcywKRGF3aWQKPiBDaGVlcnMs
Cj4gRGF2ZQo+PiBUaGFua3MsCj4+IERhd2lkCj4+Cj4+Cj4+IERlYyAzMCAwNjo1MTozOCBnNnhl
bnRlc3QgU006IFs1MjY2XSBbJy91c3Ivc2Jpbi90ZC11dGlsJywgJ3F1ZXJ5JywgJ3ZoZCcsICct
dnBmJywgJy92YXIvcnVuL3NyLW1vdW50Lzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYy
ZWExNi9jYWUzMGU5Yi1lYmQ0LTQ0NTAtOGNlMC05ZjQwMzVjYTYyZjEudmhkJ10KPj4gRGVjIDMw
IDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAgcHJlYWQgU1VDQ0VTUwo+PiBEZWMgMzAg
MDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gUGh5TGluaygvZGV2L3NtL3BoeS83ODdiMDg3
NC04ZThiLWU3ZDgtOGJhOS03NGY1NWZmMmVhMTYvY2FlMzBlOWItZWJkNC00NDUwLThjZTAtOWY0
MDM1Y2E2MmYxKSAtPiAvdmFyL3J1bi9zci1tb3VudC83ODdiMDg3NC04ZThiLWU3ZDgtOGJhOS03
NGY1NWZmMmVhMTYvY2FlMzBlOWItZWJkNC00NDUwLThjZTAtOWY0MDM1Y2E2MmYxLnZoZAo+PiBE
ZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFsgaW5mb3xnNnhlbnRlc3R8NDM2MyBVTklY
IC92YXIvbGliL3hjcC94YXBpfHNlc3Npb24ubG9naW5fd2l0aF9wYXNzd29yZCBEOjk2NTIyYjBi
YmE0Ynx4YXBpXSBTZXNzaW9uLmNyZWF0ZSB0cmFja2lkPWI0MGVlMGY3MGRmNjY2OWQyOGQ2N2Nk
MDc3MDAzNzM0IHBvb2w9ZmFsc2UgdW5hbWU9cm9vdCBvcmlnaW5hdG9yPSBpc19sb2NhbF9zdXBl
cnVzZXI9dHJ1ZSBhdXRoX3VzZXJfc2lkPSBwYXJlbnQ9dHJhY2tpZD05ODM0ZjVhZjQxYzk2NGUy
MjVmMjQyNzlhZWZlNGU0OQo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1
Z3xnNnhlbnRlc3R8NDM2MyBVTklYIC92YXIvbGliL3hjcC94YXBpfHNlc3Npb24ubG9naW5fd2l0
aF9wYXNzd29yZCBEOjk2NTIyYjBiYmE0Ynxtc2NnZW5dIHhhcGk9PnhhcGkgW2xhYmVsPSJzZXNz
aW9uLmdldF91dWlkIl07Cj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVn
fGc2eGVudGVzdHw0MzY0IFVOSVggL3Zhci9saWIveGNwL3hhcGl8fGR1bW15dGFza2hlbHBlcl0g
dGFzayBkaXNwYXRjaDpzZXNzaW9uLmdldF91dWlkIEQ6Y2E4MWE2MGIxMzVlIGNyZWF0ZWQgYnkg
dGFzayBEOjk2NTIyYjBiYmE0Ygo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFsg
aW5mb3xnNnhlbnRlc3R8NDM3MSBVTklYIC92YXIvbGliL3hjcC94YXBpfHNlc3Npb24ubG9nb3V0
IEQ6ZDQ1ZmUyOWNjNDcyfHhhcGldIFNlc3Npb24uZGVzdHJveSB0cmFja2lkPWI0MGVlMGY3MGRm
NjY2OWQyOGQ2N2NkMDc3MDAzNzM0Cj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1
MjY2XSBFeGNlcHRpb24gaW4gYWN0aXZhdGUvYXR0YWNoCj4+IERlYyAzMCAwNjo1MTozOCBnNnhl
bnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzcyIFVOSVggL3Zhci9saWIveGNwL3hhcGl8
fGR1bW15dGFza2hlbHBlcl0gdGFzayBkaXNwYXRjaDpWREkuZ2V0X2J5X3V1aWQgRDo4MTZiYWU0
NDRmNmMgY3JlYXRlZCBieSB0YXNrIEQ6N2IwMzMwMWMxODRjCj4+IERlYyAzMCAwNjo1MTozOCBn
NnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzczIFVOSVggL3Zhci9saWIveGNwL3hh
cGl8fGR1bW15dGFza2hlbHBlcl0gdGFzayBkaXNwYXRjaDpob3N0LmdldF9ieV91dWlkIEQ6OWMw
NWRlM2M2ZjI0IGNyZWF0ZWQgYnkgdGFzayBEOjdiMDMzMDFjMTg0Ywo+PiBEZWMgMzAgMDY6NTE6
MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM3NCBVTklYIC92YXIvbGliL3hj
cC94YXBpfHxkdW1teXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6VkRJLmdldF9zbV9jb25maWcg
RDowYTRmMTUyZmZlMjYgY3JlYXRlZCBieSB0YXNrIEQ6N2IwMzMwMWMxODRjCj4+IERlYyAzMCAw
Njo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0Mzc1IFVOSVggL3Zhci9s
aWIveGNwL3hhcGl8fGR1bW15dGFza2hlbHBlcl0gdGFzayBkaXNwYXRjaDpWREkucmVtb3ZlX2Zy
b21fc21fY29uZmlnIEQ6Y2I2NzdkZmU5N2YwIGNyZWF0ZWQgYnkgdGFzayBEOjdiMDMzMDFjMTg0
Ywo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM3
NSBVTklYIC92YXIvbGliL3hjcC94YXBpfGRpc3BhdGNoOlZESS5yZW1vdmVfZnJvbV9zbV9jb25m
aWcgRDpjYjY3N2RmZTk3ZjB8YXBpX2VmZmVjdF0gVkRJLnJlbW92ZV9mcm9tX3NtX2NvbmZpZwo+
PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFsyMDE0MTIzMFQwNTo1MTozOC4zOTZa
fGF1ZGl0fGc2eGVudGVzdHw0Mzc1IFVOSVggL3Zhci9saWIveGNwL3hhcGl8VkRJLnJlbW92ZV9m
cm9tX3NtX2NvbmZpZyBEOjU1MGI4N2U3ZDg3ZnxhdWRpdF0gKCd0cmFja2lkPWJlMmUwZDAwNDQ2
MTZmOTBjOGI3M2Y2MDgzMDk1NDFlJyAnTE9DQUxfU1VQRVJVU0VSJyAnX19zbV9fYmFja2VuZCcg
J0FMTE9XRUQnICdPSycgJ0FQSScgJ1ZESS5yZW1vdmVfZnJvbV9zbV9jb25maWcnICgoJ3NlbGYn
ICdYT0EgU3lzdGVtJyAnY2FlMzBlOWItZWJkNC00NDUwLThjZTAtOWY0MDM1Y2E2MmYxJyAnT3Bh
cXVlUmVmOjBiMTMyY2E2LWI4ZTctYzExZi02ZmZmLWRlYzA4NDMyY2FmZScpKSkKPj4gRGVjIDMw
IDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdIFJlbW92ZWQgaG9zdCBrZXkgaG9zdF9PcGFx
dWVSZWY6YmMwMDFkNTctNjVjZS04YjJiLTc0YjQtY2Q3MTk3NjI3MmMwIGZvciBjYWUzMGU5Yi1l
YmQ0LTQ0NTAtOGNlMC05ZjQwMzVjYTYyZjEKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBT
TTogWzUyNjZdICoqKioqIEJMS1RBUDI6PGZ1bmN0aW9uIF9hY3RpdmF0ZV9sb2NrZWQgYXQgMHg3
ZjYxMWE4MDFlZDg+OiBFWENFUFRJT04gPHR5cGUgJ2V4Y2VwdGlvbnMuQXR0cmlidXRlRXJyb3In
PiwgJ0NvbW1hbmRGYWlsdXJlJyBvYmplY3QgaGFzIG5vIGF0dHJpYnV0ZSAnc3RhdHVzJwo+PiBE
ZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICBGaWxlICIvdXNyL2xpYi94YXBp
L3NtL2Jsa3RhcDIucHkiLCBsaW5lIDgzLCBpbiB3cmFwcGVyCj4+IERlYyAzMCAwNjo1MTozOCBn
NnhlbnRlc3QgU006IFs1MjY2XSAgICAgcmV0ID0gb3Aoc2VsZiwgKmFyZ3MpCj4+IERlYyAzMCAw
Njo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2XSAgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxr
dGFwMi5weSIsIGxpbmUgMTUyMiwgaW4gX2FjdGl2YXRlX2xvY2tlZAo+PiBEZWMgMzAgMDY6NTE6
MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICAgIGRldl9wYXRoID0gc2VsZi5fYWN0aXZhdGUoc3Jf
dXVpZCwgdmRpX3V1aWQsIG9wdGlvbnMpCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006
IFs1MjY2XSAgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTU2MCwg
aW4gX2FjdGl2YXRlCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2XSBzZWxm
Ll9nZXRfcG9vbF9jb25maWcoc3JfdXVpZCkuZ2V0KCJtZW0tcG9vbC1zaXplIikpCj4+IERlYyAz
MCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2XSAgIEZpbGUgIi91c3IvbGliL3hhcGkvc20v
YmxrdGFwMi5weSIsIGxpbmUgMTI0MywgaW4gX3RhcF9hY3RpdmF0ZQo+PiBEZWMgMzAgMDY6NTE6
MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICAgIHRhcGRpc2sgPSBUYXBkaXNrLmZpbmRfYnlfcGF0
aChwaHlfcGF0aCkKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAgRmls
ZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA2OTAsIGluIGZpbmRfYnlfcGF0
aAo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICAgIHJldHVybiBjbHMu
ZmluZChwYXRoPXBhdGgpCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2XSAg
IEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgNjc4LCBpbiBmaW5kCj4+
IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2XSAgICAgZm91bmQgPSBsaXN0KGNs
cy5saXN0KCoqYXJncykpCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2XSAg
IEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgNjUzLCBpbiBsaXN0Cj4+
IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2XSAgICAgZm9yIHJvdyBpbiBUYXBD
dGwubGlzdCgqKmFyZ3MpOgo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0g
ICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDExOCwgaW4gbG9vcAo+
PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICAgIHJldHVybiBmKCpfX3Qs
ICoqX19kKQo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICBGaWxlICIv
dXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDM0OCwgaW4gbGlzdAo+PiBEZWMgMzAg
MDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICAgIGlmIGUuc3RhdHVzIGluIHRyYW5zaWVu
dDoKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAgRmlsZSAiL3Vzci9s
aWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNjIsIGluIF9fZ2V0YXR0cl9fCj4+IERlYyAz
MCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2XSAgICAgcmV0dXJuIG9iamVjdC5fX2dldGF0
dHJpYnV0ZV9fKHNlbGYsIGtleSkKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUy
NjZdCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2XSBsb2NrOiByZWxlYXNl
ZCAvdmFyL2xvY2svc20vY2FlMzBlOWItZWJkNC00NDUwLThjZTAtOWY0MDM1Y2E2MmYxL3ZkaQo+
PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gKioqKiogZ2VuZXJpYyBleGNl
cHRpb246IHZkaV9hY3RpdmF0ZTogRVhDRVBUSU9OIDx0eXBlICdleGNlcHRpb25zLkF0dHJpYnV0
ZUVycm9yJz4sICdDb21tYW5kRmFpbHVyZScgb2JqZWN0IGhhcyBubyBhdHRyaWJ1dGUgJ3N0YXR1
cycKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAgRmlsZSAiL3Vzci9s
aWIveGFwaS9zbS9TUkNvbW1hbmQucHkiLCBsaW5lIDExMCwgaW4gcnVuCj4+IERlYyAzMCAwNjo1
MTozOCBnNnhlbnRlc3QgU006IFs1MjY2XSAgICAgcmV0dXJuIHNlbGYuX3J1bl9sb2NrZWQoc3Ip
Cj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2XSAgIEZpbGUgIi91c3IvbGli
L3hhcGkvc20vU1JDb21tYW5kLnB5IiwgbGluZSAxNTksIGluIF9ydW5fbG9ja2VkCj4+IERlYyAz
MCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2XSAgICAgcnYgPSBzZWxmLl9ydW4oc3IsIHRh
cmdldCkKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAgRmlsZSAiL3Vz
ci9saWIveGFwaS9zbS9TUkNvbW1hbmQucHkiLCBsaW5lIDI2MywgaW4gX3J1bgo+PiBEZWMgMzAg
MDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICAgIHdyaXRhYmxlLCBjYWNoaW5nX3BhcmFt
cykKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAgRmlsZSAiL3Vzci9s
aWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNDg2LCBpbiBhY3RpdmF0ZQo+PiBEZWMgMzAg
MDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICAgIGlmIHNlbGYuX2FjdGl2YXRlX2xvY2tl
ZChzcl91dWlkLCB2ZGlfdXVpZCwgb3B0aW9ucyk6Cj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRl
c3QgU006IFs1MjY2XSAgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUg
ODMsIGluIHdyYXBwZXIKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAg
ICByZXQgPSBvcChzZWxmLCAqYXJncykKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTog
WzUyNjZdICAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNTIyLCBp
biBfYWN0aXZhdGVfbG9ja2VkCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2
XSAgICAgZGV2X3BhdGggPSBzZWxmLl9hY3RpdmF0ZShzcl91dWlkLCB2ZGlfdXVpZCwgb3B0aW9u
cykKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAgRmlsZSAiL3Vzci9s
aWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNTYwLCBpbiBfYWN0aXZhdGUKPj4gRGVjIDMw
IDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdIHNlbGYuX2dldF9wb29sX2NvbmZpZyhzcl91
dWlkKS5nZXQoIm1lbS1wb29sLXNpemUiKSkKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBT
TTogWzUyNjZdICAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxMjQz
LCBpbiBfdGFwX2FjdGl2YXRlCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2
XSAgICAgdGFwZGlzayA9IFRhcGRpc2suZmluZF9ieV9wYXRoKHBoeV9wYXRoKQo+PiBEZWMgMzAg
MDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Js
a3RhcDIucHkiLCBsaW5lIDY5MCwgaW4gZmluZF9ieV9wYXRoCj4+IERlYyAzMCAwNjo1MTozOCBn
NnhlbnRlc3QgU006IFs1MjY2XSAgICAgcmV0dXJuIGNscy5maW5kKHBhdGg9cGF0aCkKPj4gRGVj
IDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAgRmlsZSAiL3Vzci9saWIveGFwaS9z
bS9ibGt0YXAyLnB5IiwgbGluZSA2NzgsIGluIGZpbmQKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVu
dGVzdCBTTTogWzUyNjZdICAgICBmb3VuZCA9IGxpc3QoY2xzLmxpc3QoKiphcmdzKSkKPj4gRGVj
IDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUyNjZdICAgRmlsZSAiL3Vzci9saWIveGFwaS9z
bS9ibGt0YXAyLnB5IiwgbGluZSA2NTMsIGluIGxpc3QKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVu
dGVzdCBTTTogWzUyNjZdICAgICBmb3Igcm93IGluIFRhcEN0bC5saXN0KCoqYXJncyk6Cj4+IERl
YyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006IFs1MjY2XSAgIEZpbGUgIi91c3IvbGliL3hhcGkv
c20vYmxrdGFwMi5weSIsIGxpbmUgMTE4LCBpbiBsb29wCj4+IERlYyAzMCAwNjo1MTozOCBnNnhl
bnRlc3QgU006IFs1MjY2XSAgICAgcmV0dXJuIGYoKl9fdCwgKipfX2QpCj4+IERlYyAzMCAwNjo1
MTozOCBnNnhlbnRlc3QgU006IFs1MjY2XSAgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFw
Mi5weSIsIGxpbmUgMzQ4LCBpbiBsaXN0Cj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgU006
IFs1MjY2XSAgICAgaWYgZS5zdGF0dXMgaW4gdHJhbnNpZW50Ogo+PiBEZWMgMzAgMDY6NTE6Mzgg
ZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0gICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHki
LCBsaW5lIDE2MiwgaW4gX19nZXRhdHRyX18KPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBT
TTogWzUyNjZdICAgICByZXR1cm4gb2JqZWN0Ll9fZ2V0YXR0cmlidXRlX18oc2VsZiwga2V5KQo+
PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTI2Nl0KPj4gRGVjIDMwIDA2OjUxOjM4
IGc2eGVudGVzdCBTTTogWzUyNjZdIGxvY2s6IGNsb3NlZCAvdmFyL2xvY2svc20vY2FlMzBlOWIt
ZWJkNC00NDUwLThjZTAtOWY0MDM1Y2E2MmYxL3ZkaQo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50
ZXN0IFNNOiBbNTI2Nl0gbG9jazogY2xvc2VkIC92YXIvbG9jay9zbS83ODdiMDg3NC04ZThiLWU3
ZDgtOGJhOS03NGY1NWZmMmVhMTYvc3IKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBmb3Jr
ZXhlY2Q6IFtlcnJvcnxnNnhlbnRlc3R8MHx8Zm9ya2V4ZWNkXSA1MjY2ICgvb3B0L3hlbnNvdXJj
ZS9zbS9ORlNTUiA8bWV0aG9kQ2FsbD48bWV0aG9kTmFtZT52ZGlfYWN0aXZhdGU8L21ldGhvZE5h
bWU+PHBhci4uLikgZXhpdHRlZCB3aXRoIGNvZGUgMQo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50
ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM0MHxzbV9leGVjIEQ6NzRhNTkyYWVkZGIzfHhh
cGldIFJhaXNlZCBhdCBmaWxlIFwibGliL2ZvcmtoZWxwZXJzLm1sXCIsIGxpbmUgMTgxLCBjaGFy
YWN0ZXJzIDMxLTc1XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBs
aW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFw
aTogW2RlYnVnfGc2eGVudGVzdHw0MzQwfHNtX2V4ZWMgRDo3NGE1OTJhZWRkYjN8eGFwaV0gUmFp
c2VkIGF0IGZpbGUgXCJzbV9leGVjLm1sXCIsIGxpbmUgMTkzLCBjaGFyYWN0ZXJzIDEwLTEwMFxu
Q2FsbGVkIGZyb20gZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFj
dGVycyAyLTlcbgo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhl
bnRlc3R8NDM0MHxzbV9leGVjIEQ6NzRhNTkyYWVkZGIzfHhhcGldIFJhaXNlZCBhdCBmaWxlIFwi
bGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFyYWN0ZXJzIDIyLTI1XG5DYWxsZWQg
ZnJvbSBmaWxlIFwic21fZXhlYy5tbFwiLCBsaW5lIDE3NSwgY2hhcmFjdGVycyAyMy0xMDIzXG5D
YWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0
ZXJzIDItOVxuCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogWyBpbmZvfGc2eGVu
dGVzdHw0MzQwfHNtX2V4ZWMgRDo3NGE1OTJhZWRkYjN8eGFwaV0gU2Vzc2lvbi5kZXN0cm95IHRy
YWNraWQ9YmUyZTBkMDA0NDYxNmY5MGM4YjczZjYwODMwOTU0MWUKPj4gRGVjIDMwIDA2OjUxOjM4
IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzNDB8c21fZXhlYyBEOjc0YTU5MmFl
ZGRiM3xiYWNrdHJhY2VdIFJhaXNlZCBhdCBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBs
aW5lIDI2LCBjaGFyYWN0ZXJzIDIyLTI1XG5DYWxsZWQgZnJvbSBmaWxlIFwic2VydmVyX2hlbHBl
cnMubWxcIiwgbGluZSA3MiwgY2hhcmFjdGVycyAxMS0yM1xuCj4+IERlYyAzMCAwNjo1MTozOCBn
NnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzQwfHNtX2V4ZWMgRDo3NGE1OTJhZWRk
YjN8ZGlzcGF0Y2hlcl0gU2VydmVyX2hlbHBlcnMuZXhlYyBleGNlcHRpb25faGFuZGxlcjogR290
IGV4Y2VwdGlvbiBTUl9CQUNLRU5EX0ZBSUxVUkU6IFsgbm9uLXplcm8gZXhpdDsgOyBUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6IzAxMiAgRmlsZSAiL29wdC94ZW5zb3VyY2Uvc20v
TkZTU1IiLCBsaW5lIDI3OCwgaW4gPG1vZHVsZT4jMDEyICAgIFNSQ29tbWFuZC5ydW4oTkZTU1Is
IERSSVZFUl9JTkZPKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vU1JDb21tYW5kLnB5Iiwg
bGluZSAzNDQsIGluIHJ1biMwMTIgICAgcmV0ID0gY21kLnJ1bihzcikjMDEyICBGaWxlICIvdXNy
L2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMTEwLCBpbiBydW4jMDEyICAgIHJldHVy
biBzZWxmLl9ydW5fbG9ja2VkKHNyKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vU1JDb21t
YW5kLnB5IiwgbGluZSAxNTksIGluIF9ydW5fbG9ja2VkIzAxMiAgICBydiA9IHNlbGYuX3J1bihz
ciwgdGFyZ2V0KSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vU1JDb21tYW5kLnB5IiwgbGlu
ZSAyNjMsIGluIF9ydW4jMDEyICAgIHdyaXRhYmxlLCBjYWNoaW5nX3BhcmFtcykjMDEyICBGaWxl
ICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDE0ODYsIGluIGFjdGl2YXRlIzAx
MiAgICBpZiBzZWxmLl9hY3RpdmF0ZV9sb2NrZWQoc3JfdXVpZCwgdmRpX3V1aWQsIG9wdGlvbnMp
OiMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgODMsIGluIHdy
YXBwZXIjMDEyICAgIHJldCA9IG9wKHNlbGYsICphcmdzKSMwMTIgIEZpbGUgIi91c3IvbGliL3hh
cGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTUyMiwgaW4gX2FjdGl2YXRlX2xvY2tlZCMwMTIgICAg
ZGV2X3BhdGggPSBzZWxmLl9hY3RpdmF0ZShzcl91dWlkLCB2ZGlfdXVpZCwgb3B0aW9ucykjMDEy
ICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDE1NjAsIGluIF9hY3Rp
dmF0ZSMwMTIgc2VsZi5fZ2V0X3Bvb2xfY29uZmlnKHNyX3V1aWQpLmdldCgibWVtLXBvb2wtc2l6
ZSIpKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTI0Mywg
aW4gX3RhcF9hY3RpdmF0ZSMwMTIgdGFwZGlzayA9IFRhcGRpc2suZmluZF9ieV9wYXRoKHBoeV9w
YXRoKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgNjkwLCBp
biBmaW5kX2J5X3BhdGgjMDEyIHJldHVybiBjbHMuZmluZChwYXRoPXBhdGgpIzAxMiAgRmlsZSAi
L3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA2NzgsIGluIGZpbmQjMDEyICAgIGZv
dW5kID0gbGlzdChjbHMubGlzdCgqKmFyZ3MpKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20v
YmxrdGFwMi5weSIsIGxpbmUgNjUzLCBpbiBsaXN0IzAxMiAgICBmb3Igcm93IGluIFRhcEN0bC5s
aXN0KCoqYXJncyk6IzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGlu
ZSAxMTgsIGluIGxvb3AjMDEyICAgIHJldHVybiBmKCpfX3QsICoqX19kKSMwMTIgIEZpbGUgIi91
c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMzQ4LCBpbiBsaXN0IzAxMiAgICBpZiBl
LnN0YXR1cyBpbiB0cmFuc2llbnQ6IzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAy
LnB5IiwgbGluZSAxNjIsIGluIF9fZ2V0YXR0cl9fIzAxMiAgICByZXR1cm4gb2JqZWN0Ll9fZ2V0
YXR0cmlidXRlX18oc2VsZiwga2V5KSMwMTJBdHRyaWJ1dGVFcnJvcjogJ0NvbW1hbmRGYWlsdXJl
JyBvYmplY3QgaGFzIG5vIGF0dHJpYnV0ZSAnc3RhdHVzJyMwMTIgXQo+PiBEZWMgMzAgMDY6NTE6
MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM0MHxzbV9leGVjIEQ6NzRhNTky
YWVkZGIzfGRpc3BhdGNoZXJdIFJhaXNlZCBhdCBmaWxlIFwiaGFzaHRibC5tbFwiLCBsaW5lIDEz
NiwgY2hhcmFjdGVycyAxOS0yOFxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9kZWJ1Zy5tbFwiLCBs
aW5lIDE3MiwgY2hhcmFjdGVycyAzNy02NFxuCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3Qg
eGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzQwfHNtX2V4ZWMgRDo3NGE1OTJhZWRkYjN8YmFja3Ry
YWNlXSBSYWlzZWQgYXQgZmlsZSBcImhhc2h0YmwubWxcIiwgbGluZSAxMzYsIGNoYXJhY3RlcnMg
MTktMjhcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvZGVidWcubWxcIiwgbGluZSAxNzIsIGNoYXJh
Y3RlcnMgMzctNjRcbgo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xn
NnhlbnRlc3R8NDM0MHxzbV9leGVjIEQ6NzRhNTkyYWVkZGIzfHhhcGldIFJhaXNlZCBhdCBmaWxl
IFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGluZSA5MCwgY2hhcmFjdGVycyAxNC0xNVxuQ2FsbGVk
IGZyb20gZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFjdGVycyAy
LTlcbgo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8
NDM0MHxWREkuYWN0aXZhdGUgRDo3YjAzMzAxYzE4NGN8eGFwaV0gUmFpc2VkIGF0IGZpbGUgXCJs
aWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxlZCBm
cm9tIGZpbGUgXCJsaWIvZGVidWcubWxcIiwgbGluZSA1NywgY2hhcmFjdGVycyAxNy0yMFxuUmUt
cmFpc2VkIGF0IGZpbGUgXCJsaWIvZGVidWcubWxcIiwgbGluZSA2MiwgY2hhcmFjdGVycyAxMC0x
MVxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hh
cmFjdGVycyAyLTlcbgo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xn
NnhlbnRlc3R8NDM0MHxWREkuYWN0aXZhdGUgRDo3YjAzMzAxYzE4NGN8YmFja3RyYWNlXSBSYWlz
ZWQgYXQgZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyNiwgY2hhcmFjdGVycyAy
Mi0yNVxuQ2FsbGVkIGZyb20gZmlsZSBcInNtLm1sXCIsIGxpbmUgMTcxLCBjaGFyYWN0ZXJzIDIx
LTcyXG5DYWxsZWQgZnJvbSBmaWxlIFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGluZSA3MiwgY2hh
cmFjdGVycyAxMS0yM1xuCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVn
fGc2eGVudGVzdHw0MzQwfFZESS5hY3RpdmF0ZSBEOjdiMDMzMDFjMTg0Y3xkaXNwYXRjaGVyXSBT
ZXJ2ZXJfaGVscGVycy5leGVjIGV4Y2VwdGlvbl9oYW5kbGVyOiBHb3QgZXhjZXB0aW9uIFNSX0JB
Q0tFTkRfRkFJTFVSRTogWyBub24temVybyBleGl0OyA7IFRyYWNlYmFjayAobW9zdCByZWNlbnQg
Y2FsbCBsYXN0KTojMDEyICBGaWxlICIvb3B0L3hlbnNvdXJjZS9zbS9ORlNTUiIsIGxpbmUgMjc4
LCBpbiA8bW9kdWxlPiMwMTIgICAgU1JDb21tYW5kLnJ1bihORlNTUiwgRFJJVkVSX0lORk8pIzAx
MiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1hbmQucHkiLCBsaW5lIDM0NCwgaW4gcnVu
IzAxMiAgICByZXQgPSBjbWQucnVuKHNyKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vU1JD
b21tYW5kLnB5IiwgbGluZSAxMTAsIGluIHJ1biMwMTIgICAgcmV0dXJuIHNlbGYuX3J1bl9sb2Nr
ZWQoc3IpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1hbmQucHkiLCBsaW5lIDE1
OSwgaW4gX3J1bl9sb2NrZWQjMDEyICAgIHJ2ID0gc2VsZi5fcnVuKHNyLCB0YXJnZXQpIzAxMiAg
RmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1hbmQucHkiLCBsaW5lIDI2MywgaW4gX3J1biMw
MTIgICAgd3JpdGFibGUsIGNhY2hpbmdfcGFyYW1zKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkv
c20vYmxrdGFwMi5weSIsIGxpbmUgMTQ4NiwgaW4gYWN0aXZhdGUjMDEyICAgIGlmIHNlbGYuX2Fj
dGl2YXRlX2xvY2tlZChzcl91dWlkLCB2ZGlfdXVpZCwgb3B0aW9ucyk6IzAxMiAgRmlsZSAiL3Vz
ci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA4MywgaW4gd3JhcHBlciMwMTIgICAgcmV0
ID0gb3Aoc2VsZiwgKmFyZ3MpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5
IiwgbGluZSAxNTIyLCBpbiBfYWN0aXZhdGVfbG9ja2VkIzAxMiAgICBkZXZfcGF0aCA9IHNlbGYu
X2FjdGl2YXRlKHNyX3V1aWQsIHZkaV91dWlkLCBvcHRpb25zKSMwMTIgIEZpbGUgIi91c3IvbGli
L3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTU2MCwgaW4gX2FjdGl2YXRlIzAxMiBzZWxmLl9n
ZXRfcG9vbF9jb25maWcoc3JfdXVpZCkuZ2V0KCJtZW0tcG9vbC1zaXplIikpIzAxMiAgRmlsZSAi
L3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxMjQzLCBpbiBfdGFwX2FjdGl2YXRl
IzAxMiB0YXBkaXNrID0gVGFwZGlzay5maW5kX2J5X3BhdGgocGh5X3BhdGgpIzAxMiAgRmlsZSAi
L3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA2OTAsIGluIGZpbmRfYnlfcGF0aCMw
MTIgcmV0dXJuIGNscy5maW5kKHBhdGg9cGF0aCkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3Nt
L2Jsa3RhcDIucHkiLCBsaW5lIDY3OCwgaW4gZmluZCMwMTIgICAgZm91bmQgPSBsaXN0KGNscy5s
aXN0KCoqYXJncykpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGlu
ZSA2NTMsIGluIGxpc3QjMDEyICAgIGZvciByb3cgaW4gVGFwQ3RsLmxpc3QoKiphcmdzKTojMDEy
ICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDExOCwgaW4gbG9vcCMw
MTIgICAgcmV0dXJuIGYoKl9fdCwgKipfX2QpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9i
bGt0YXAyLnB5IiwgbGluZSAzNDgsIGluIGxpc3QjMDEyICAgIGlmIGUuc3RhdHVzIGluIHRyYW5z
aWVudDojMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDE2Miwg
aW4gX19nZXRhdHRyX18jMDEyICAgIHJldHVybiBvYmplY3QuX19nZXRhdHRyaWJ1dGVfXyhzZWxm
LCBrZXkpIzAxMkF0dHJpYnV0ZUVycm9yOiAnQ29tbWFuZEZhaWx1cmUnIG9iamVjdCBoYXMgbm8g
YXR0cmlidXRlICdzdGF0dXMnIzAxMiBdCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFw
aTogW2RlYnVnfGc2eGVudGVzdHw0MzQwfFZESS5hY3RpdmF0ZSBEOjdiMDMzMDFjMTg0Y3xkaXNw
YXRjaGVyXSBSYWlzZWQgYXQgZmlsZSBcImhhc2h0YmwubWxcIiwgbGluZSAxMzYsIGNoYXJhY3Rl
cnMgMTktMjhcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvZGVidWcubWxcIiwgbGluZSAxNzIsIGNo
YXJhY3RlcnMgMzctNjRcbgo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1
Z3xnNnhlbnRlc3R8NDM0MHxWREkuYWN0aXZhdGUgRDo3YjAzMzAxYzE4NGN8YmFja3RyYWNlXSBS
YWlzZWQgYXQgZmlsZSBcImhhc2h0YmwubWxcIiwgbGluZSAxMzYsIGNoYXJhY3RlcnMgMTktMjhc
bkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvZGVidWcubWxcIiwgbGluZSAxNzIsIGNoYXJhY3RlcnMg
MzctNjRcbgo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRl
c3R8NDM0MHxWREkuYWN0aXZhdGUgRDo3YjAzMzAxYzE4NGN8eGFwaV0gUmFpc2VkIGF0IGZpbGUg
XCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDkwLCBjaGFyYWN0ZXJzIDE0LTE1XG5DYWxsZWQg
ZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDIt
OVxuCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0
MzQwfHx4YXBpXSBSYWlzZWQgYXQgZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAy
NiwgY2hhcmFjdGVycyAyMi0yNVxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9kZWJ1Zy5tbFwiLCBs
aW5lIDU3LCBjaGFyYWN0ZXJzIDE3LTIwXG5SZS1yYWlzZWQgYXQgZmlsZSBcImxpYi9kZWJ1Zy5t
bFwiLCBsaW5lIDYyLCBjaGFyYWN0ZXJzIDEwLTExXG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3Bl
cnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuCj4+IERlYyAzMCAwNjo1
MTozOCBnNnhlbnRlc3QgeGFwaTogW2Vycm9yfGc2eGVudGVzdHw0MzI1IFVOSVggL3Zhci9saWIv
eGNwL3hhcGl8VkJELnBsdWcgUjo2YTlmYmEzYTExNjZ8c3RvcmFnZV9pbXBsXSBTdG9yYWdlX2lt
cGw6IGRwOnZiZC8wL3h2ZGEgc3I6Nzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2
IHZkaTpjYWUzMGU5Yi1lYmQ0LTQ0NTAtOGNlMC05ZjQwMzVjYTYyZjEgb3A6YWN0aXZhdGUgZXJy
b3I6U3RvcmFnZV9pbnRlcmZhY2UuQmFja2VuZF9lcnJvcihfKSBiYWNrdHJhY2U6Q2FsbGVkIGZy
b20gZmlsZSAic3RvcmFnZV9pbXBsLm1sIiwgbGluZSAyOTksIGNoYXJhY3RlcnMgNy01MAo+PiBE
ZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMyNSBVTklY
IC92YXIvbGliL3hjcC94YXBpfFZCRC5wbHVnIFI6NmE5ZmJhM2ExMTY2fHhhcGldIENhbGxlZCBm
cm9tIGZpbGUgXCJzdG9yYWdlX2ltcGwubWxcIiwgbGluZSAyOTksIGNoYXJhY3RlcnMgNy01MFxu
UmUtcmFpc2VkIGF0IGZpbGUgXCJzdG9yYWdlX2ltcGwubWxcIiwgbGluZSAzMTksIGNoYXJhY3Rl
cnMgMTEtMTJcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaXN0Lm1sXCIsIGxpbmUgODQsIGNoYXJhY3Rl
cnMgMjQtMzRcbkNhbGxlZCBmcm9tIGZpbGUgXCJzdG9yYWdlX2ltcGwubWxcIiwgbGluZSAzNDEs
IGNoYXJhY3RlcnMgNi01NVxuUmUtcmFpc2VkIGF0IGZpbGUgXCJzdG9yYWdlX2ltcGwubWxcIiwg
bGluZSAzNDUsIGNoYXJhY3RlcnMgMTItMTNcbkNhbGxlZCBmcm9tIGZpbGUgXCJzdG9yYWdlX2lt
cGwubWxcIiwgbGluZSA0NDUsIGNoYXJhY3RlcnMgMTQtNzdcbkNhbGxlZCBmcm9tIGZpbGUgXCJs
aWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMgMi05XG4KPj4gRGVjIDMw
IDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZXJyb3J8ZzZ4ZW50ZXN0fDQzMjUgVU5JWCAvdmFy
L2xpYi94Y3AveGFwaXxWQkQucGx1ZyBSOjZhOWZiYTNhMTE2NnxzdG9yYWdlX2FjY2Vzc10gUmUt
cmFpc2luZyBhcyBTUl9CQUNLRU5EX0ZBSUxVUkUgWyBub24temVybyBleGl0OyA7IFRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KTojMDEyICBGaWxlICIvb3B0L3hlbnNvdXJjZS9zbS9O
RlNTUiIsIGxpbmUgMjc4LCBpbiA8bW9kdWxlPiMwMTIgICAgU1JDb21tYW5kLnJ1bihORlNTUiwg
RFJJVkVSX0lORk8pIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1hbmQucHkiLCBs
aW5lIDM0NCwgaW4gcnVuIzAxMiAgICByZXQgPSBjbWQucnVuKHNyKSMwMTIgIEZpbGUgIi91c3Iv
bGliL3hhcGkvc20vU1JDb21tYW5kLnB5IiwgbGluZSAxMTAsIGluIHJ1biMwMTIgICAgcmV0dXJu
IHNlbGYuX3J1bl9sb2NrZWQoc3IpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1h
bmQucHkiLCBsaW5lIDE1OSwgaW4gX3J1bl9sb2NrZWQjMDEyICAgIHJ2ID0gc2VsZi5fcnVuKHNy
LCB0YXJnZXQpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1hbmQucHkiLCBsaW5l
IDI2MywgaW4gX3J1biMwMTIgICAgd3JpdGFibGUsIGNhY2hpbmdfcGFyYW1zKSMwMTIgIEZpbGUg
Ii91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTQ4NiwgaW4gYWN0aXZhdGUjMDEy
ICAgIGlmIHNlbGYuX2FjdGl2YXRlX2xvY2tlZChzcl91dWlkLCB2ZGlfdXVpZCwgb3B0aW9ucyk6
IzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA4MywgaW4gd3Jh
cHBlciMwMTIgICAgcmV0ID0gb3Aoc2VsZiwgKmFyZ3MpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFw
aS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNTIyLCBpbiBfYWN0aXZhdGVfbG9ja2VkIzAxMiAgICBk
ZXZfcGF0aCA9IHNlbGYuX2FjdGl2YXRlKHNyX3V1aWQsIHZkaV91dWlkLCBvcHRpb25zKSMwMTIg
IEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTU2MCwgaW4gX2FjdGl2
YXRlIzAxMiBzZWxmLl9nZXRfcG9vbF9jb25maWcoc3JfdXVpZCkuZ2V0KCJtZW0tcG9vbC1zaXpl
IikpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxMjQzLCBp
biBfdGFwX2FjdGl2YXRlIzAxMiB0YXBkaXNrID0gVGFwZGlzay5maW5kX2J5X3BhdGgocGh5X3Bh
dGgpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA2OTAsIGlu
IGZpbmRfYnlfcGF0aCMwMTIgcmV0dXJuIGNscy5maW5kKHBhdGg9cGF0aCkjMDEyICBGaWxlICIv
dXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDY3OCwgaW4gZmluZCMwMTIgICAgZm91
bmQgPSBsaXN0KGNscy5saXN0KCoqYXJncykpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9i
bGt0YXAyLnB5IiwgbGluZSA2NTMsIGluIGxpc3QjMDEyICAgIGZvciByb3cgaW4gVGFwQ3RsLmxp
c3QoKiphcmdzKTojMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5l
IDExOCwgaW4gbG9vcCMwMTIgICAgcmV0dXJuIGYoKl9fdCwgKipfX2QpIzAxMiAgRmlsZSAiL3Vz
ci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAzNDgsIGluIGxpc3QjMDEyICAgIGlmIGUu
c3RhdHVzIGluIHRyYW5zaWVudDojMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIu
cHkiLCBsaW5lIDE2MiwgaW4gX19nZXRhdHRyX18jMDEyICAgIHJldHVybiBvYmplY3QuX19nZXRh
dHRyaWJ1dGVfXyhzZWxmLCBrZXkpIzAxMkF0dHJpYnV0ZUVycm9yOiAnQ29tbWFuZEZhaWx1cmUn
IG9iamVjdCBoYXMgbm8gYXR0cmlidXRlICdzdGF0dXMnIzAxMiBdCj4+IERlYyAzMCAwNjo1MToz
OCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzI1IFVOSVggL3Zhci9saWIveGNw
L3hhcGl8VkJELnBsdWcgUjo2YTlmYmEzYTExNjZ8eGFwaV0gUmFpc2VkIGF0IGZpbGUgXCJzdG9y
YWdlX2FjY2Vzcy5tbFwiLCBsaW5lIDk3MSwgY2hhcmFjdGVycyA5LTQ4XG5DYWxsZWQgZnJvbSBm
aWxlIFwic3RvcmFnZV9hY2Nlc3MubWxcIiwgbGluZSA5NjcsIGNoYXJhY3RlcnMgMi02XG5SZS1y
YWlzZWQgYXQgZmlsZSBcInN0b3JhZ2VfYWNjZXNzLm1sXCIsIGxpbmUgOTcyLCBjaGFyYWN0ZXJz
IDU2LTU3XG5DYWxsZWQgZnJvbSBmaWxlIFwibWVzc2FnZV9mb3J3YXJkaW5nLm1sXCIsIGxpbmUg
MjMzLCBjaGFyYWN0ZXJzIDI1LTQ0XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4
dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuCj4+IERlYyAzMCAwNjo1MTozOCBnNnhl
bnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzI1IFVOSVggL3Zhci9saWIveGNwL3hhcGl8
VkJELnBsdWcgUjo2YTlmYmEzYTExNjZ8YmFja3RyYWNlXSBSYWlzZWQgYXQgZmlsZSBcImxpYi9w
ZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyNiwgY2hhcmFjdGVycyAyMi0yNVxuQ2FsbGVkIGZyb20g
ZmlsZSBcIm1lc3NhZ2VfZm9yd2FyZGluZy5tbFwiLCBsaW5lIDM1MDIsIGNoYXJhY3RlcnMgMy0x
OTRcbkNhbGxlZCBmcm9tIGZpbGUgXCJyYmFjLm1sXCIsIGxpbmUgMjI3LCBjaGFyYWN0ZXJzIDE2
LTIzXG4KPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbMjAxNDEyMzBUMDU6NTE6
MzguNDY1WnxhdWRpdHxnNnhlbnRlc3R8NDMyNSBVTklYIC92YXIvbGliL3hjcC94YXBpfFZCRC5w
bHVnIFI6NmE5ZmJhM2ExMTY2fGF1ZGl0XSAoJ3RyYWNraWQ9Y2ExZTBlMDJmMWM2ZjlmY2M5ODAz
NjhlNzEwZDhjOGInICdMT0NBTF9TVVBFUlVTRVInICdPcGFxdWVSZWY6YmMwMDFkNTctNjVjZS04
YjJiLTc0YjQtY2Q3MTk3NjI3MmMwJyAnQUxMT1dFRCcgJ0VSUk9SOlNSX0JBQ0tFTkRfRkFJTFVS
RTogWyBub24temVybyBleGl0OyA7IFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KTog
ICBGaWxlIFwiL29wdC94ZW5zb3VyY2Uvc20vTkZTU1JcIiwgbGluZSAyNzgsIGluIDxtb2R1bGU+
ICAgICBTUkNvbW1hbmQucnVuKE5GU1NSLCBEUklWRVJfSU5GTykgICBGaWxlIFwiL3Vzci9saWIv
eGFwaS9zbS9TUkNvbW1hbmQucHlcIiwgbGluZSAzNDQsIGluIHJ1biAgICAgcmV0ID0gY21kLnJ1
bihzcikgICBGaWxlIFwiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1hbmQucHlcIiwgbGluZSAxMTAs
IGluIHJ1biAgICAgcmV0dXJuIHNlbGYuX3J1bl9sb2NrZWQoc3IpICAgRmlsZSBcIi91c3IvbGli
L3hhcGkvc20vU1JDb21tYW5kLnB5XCIsIGxpbmUgMTU5LCBpbiBfcnVuX2xvY2tlZCAgICAgcnYg
PSBzZWxmLl9ydW4oc3IsIHRhcmdldCkgICBGaWxlIFwiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1h
bmQucHlcIiwgbGluZSAyNjMsIGluIF9ydW4gICAgIHdyaXRhYmxlLCBjYWNoaW5nX3BhcmFtcykg
ICBGaWxlIFwiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5XCIsIGxpbmUgMTQ4NiwgaW4gYWN0
aXZhdGUgICAgIGlmIHNlbGYuX2FjdGl2YXRlX2xvY2tlZChzcl91dWlkLCB2ZGlfdXVpZCwgb3B0
aW9ucyk6ICAgRmlsZSBcIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weVwiLCBsaW5lIDgzLCBp
biB3cmFwcGVyICAgICByZXQgPSBvcChzZWxmLCAqYXJncykgICBGaWxlIFwiL3Vzci9saWIveGFw
aS9zbS9ibGt0YXAyLnB5XCIsIGxpbmUgMTUyMiwgaW4gX2FjdGl2YXRlX2xvY2tlZCAgICAgZGV2
X3BhdGggPSBzZWxmLl9hY3RpdmF0ZShzcl91dWlkLCB2ZGlfdXVpZCwgb3B0aW9ucykgICBGaWxl
IFwiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5XCIsIGxpbmUgMTU2MCwgaW4gX2FjdGl2YXRl
IHNlbGYuX2dldF9wb29sX2NvbmZpZyhzcl91dWlkKS5nZXQoXCJtZW0tcG9vbC1zaXplXCIpKSAg
IEZpbGUgXCIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHlcIiwgbGluZSAxMjQzLCBpbiBfdGFw
X2FjdGl2YXRlIHRhcGRpc2sgPSBUYXBkaXNrLmZpbmRfYnlfcGF0aChwaHlfcGF0aCkgICBGaWxl
IFwiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5XCIsIGxpbmUgNjkwLCBpbiBmaW5kX2J5X3Bh
dGggcmV0dXJuIGNscy5maW5kKHBhdGg9cGF0aCkgICBGaWxlIFwiL3Vzci9saWIveGFwaS9zbS9i
bGt0YXAyLnB5XCIsIGxpbmUgNjc4LCBpbiBmaW5kICAgICBmb3VuZCA9IGxpc3QoY2xzLmxpc3Qo
KiphcmdzKSkgICBGaWxlIFwiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5XCIsIGxpbmUgNjUz
LCBpbiBsaXN0ICAgICBmb3Igcm93IGluIFRhcEN0bC5saXN0KCoqYXJncyk6ICAgRmlsZSBcIi91
c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weVwiLCBsaW5lIDExOCwgaW4gbG9vcCAgICAgcmV0dXJu
IGYoKl9fdCwgKipfX2QpICAgRmlsZSBcIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weVwiLCBs
aW5lIDM0OCwgaW4gbGlzdCAgICAgaWYgZS5zdGF0dXMgaW4gdHJhbnNpZW50OiAgIEZpbGUgXCIv
dXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHlcIiwgbGluZSAxNjIsIGluIF9fZ2V0YXR0cl9fICAg
ICByZXR1cm4gb2JqZWN0Ll9fZ2V0YXR0cmlidXRlX18oc2VsZiwga2V5KSBBdHRyaWJ1dGVFcnJv
cjogXCdDb21tYW5kRmFpbHVyZVwnIG9iamVjdCBoYXMgbm8gYXR0cmlidXRlIFwnc3RhdHVzXCcg
IF0nICdBUEknICdWQkQucGx1ZycgKCgnc2VsZicgJycgJzU1NzE2ZWNmLTFhMjctYjI2NS02MDIx
LWYyMTk5NGEzNDZkZicgJ09wYXF1ZVJlZjo2MjkzNGVkOC02MDZjLTlhMjctY2E2Ni02MjViNDIy
MTNmZDEnKSkpCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVu
dGVzdHw0MzI1IFVOSVggL3Zhci9saWIveGNwL3hhcGl8VkJELnBsdWcgUjo2YTlmYmEzYTExNjZ8
YmFja3RyYWNlXSBSYWlzZWQgYXQgZmlsZSBcInJiYWMubWxcIiwgbGluZSAyMzYsIGNoYXJhY3Rl
cnMgMTAtMTVcbkNhbGxlZCBmcm9tIGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDc1
LCBjaGFyYWN0ZXJzIDExLTQxXG4KPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBb
ZGVidWd8ZzZ4ZW50ZXN0fDQzMjUgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWQkQucGx1ZyBSOjZh
OWZiYTNhMTE2NnxkaXNwYXRjaGVyXSBTZXJ2ZXJfaGVscGVycy5leGVjIGV4Y2VwdGlvbl9oYW5k
bGVyOiBHb3QgZXhjZXB0aW9uIFNSX0JBQ0tFTkRfRkFJTFVSRTogWyBub24temVybyBleGl0OyA7
IFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KTojMDEyICBGaWxlICIvb3B0L3hlbnNv
dXJjZS9zbS9ORlNTUiIsIGxpbmUgMjc4LCBpbiA8bW9kdWxlPiMwMTIgICAgU1JDb21tYW5kLnJ1
bihORlNTUiwgRFJJVkVSX0lORk8pIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1h
bmQucHkiLCBsaW5lIDM0NCwgaW4gcnVuIzAxMiAgICByZXQgPSBjbWQucnVuKHNyKSMwMTIgIEZp
bGUgIi91c3IvbGliL3hhcGkvc20vU1JDb21tYW5kLnB5IiwgbGluZSAxMTAsIGluIHJ1biMwMTIg
ICAgcmV0dXJuIHNlbGYuX3J1bl9sb2NrZWQoc3IpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9z
bS9TUkNvbW1hbmQucHkiLCBsaW5lIDE1OSwgaW4gX3J1bl9sb2NrZWQjMDEyICAgIHJ2ID0gc2Vs
Zi5fcnVuKHNyLCB0YXJnZXQpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1hbmQu
cHkiLCBsaW5lIDI2MywgaW4gX3J1biMwMTIgICAgd3JpdGFibGUsIGNhY2hpbmdfcGFyYW1zKSMw
MTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTQ4NiwgaW4gYWN0
aXZhdGUjMDEyICAgIGlmIHNlbGYuX2FjdGl2YXRlX2xvY2tlZChzcl91dWlkLCB2ZGlfdXVpZCwg
b3B0aW9ucyk6IzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA4
MywgaW4gd3JhcHBlciMwMTIgICAgcmV0ID0gb3Aoc2VsZiwgKmFyZ3MpIzAxMiAgRmlsZSAiL3Vz
ci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNTIyLCBpbiBfYWN0aXZhdGVfbG9ja2Vk
IzAxMiAgICBkZXZfcGF0aCA9IHNlbGYuX2FjdGl2YXRlKHNyX3V1aWQsIHZkaV91dWlkLCBvcHRp
b25zKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTU2MCwg
aW4gX2FjdGl2YXRlIzAxMiBzZWxmLl9nZXRfcG9vbF9jb25maWcoc3JfdXVpZCkuZ2V0KCJtZW0t
cG9vbC1zaXplIikpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGlu
ZSAxMjQzLCBpbiBfdGFwX2FjdGl2YXRlIzAxMiB0YXBkaXNrID0gVGFwZGlzay5maW5kX2J5X3Bh
dGgocGh5X3BhdGgpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGlu
ZSA2OTAsIGluIGZpbmRfYnlfcGF0aCMwMTIgcmV0dXJuIGNscy5maW5kKHBhdGg9cGF0aCkjMDEy
ICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDY3OCwgaW4gZmluZCMw
MTIgICAgZm91bmQgPSBsaXN0KGNscy5saXN0KCoqYXJncykpIzAxMiAgRmlsZSAiL3Vzci9saWIv
eGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA2NTMsIGluIGxpc3QjMDEyICAgIGZvciByb3cgaW4g
VGFwQ3RsLmxpc3QoKiphcmdzKTojMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIu
cHkiLCBsaW5lIDExOCwgaW4gbG9vcCMwMTIgICAgcmV0dXJuIGYoKl9fdCwgKipfX2QpIzAxMiAg
RmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAzNDgsIGluIGxpc3QjMDEy
ICAgIGlmIGUuc3RhdHVzIGluIHRyYW5zaWVudDojMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3Nt
L2Jsa3RhcDIucHkiLCBsaW5lIDE2MiwgaW4gX19nZXRhdHRyX18jMDEyICAgIHJldHVybiBvYmpl
Y3QuX19nZXRhdHRyaWJ1dGVfXyhzZWxmLCBrZXkpIzAxMkF0dHJpYnV0ZUVycm9yOiAnQ29tbWFu
ZEZhaWx1cmUnIG9iamVjdCBoYXMgbm8gYXR0cmlidXRlICdzdGF0dXMnIzAxMiBdCj4+IERlYyAz
MCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzI1IFVOSVggL3Zh
ci9saWIveGNwL3hhcGl8VkJELnBsdWcgUjo2YTlmYmEzYTExNjZ8ZGlzcGF0Y2hlcl0gUmFpc2Vk
IGF0IGZpbGUgXCJyYmFjLm1sXCIsIGxpbmUgMjM2LCBjaGFyYWN0ZXJzIDEwLTE1XG5DYWxsZWQg
ZnJvbSBmaWxlIFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGluZSA3NSwgY2hhcmFjdGVycyAxMS00
MVxuCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0
MzI1IFVOSVggL3Zhci9saWIveGNwL3hhcGl8VkJELnBsdWcgUjo2YTlmYmEzYTExNjZ8YmFja3Ry
YWNlXSBSYWlzZWQgYXQgZmlsZSBcInJiYWMubWxcIiwgbGluZSAyMzYsIGNoYXJhY3RlcnMgMTAt
MTVcbkNhbGxlZCBmcm9tIGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDc1LCBjaGFy
YWN0ZXJzIDExLTQxXG4KPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8
ZzZ4ZW50ZXN0fDQzMjUgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWQkQucGx1ZyBSOjZhOWZiYTNh
MTE2Nnx4YXBpXSBSYWlzZWQgYXQgZmlsZSBcInNlcnZlcl9oZWxwZXJzLm1sXCIsIGxpbmUgOTAs
IGNoYXJhY3RlcnMgMTQtMTVcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1s
XCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMgMi05XG4KPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVz
dCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMjUgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxkaXNw
YXRjaDpWQkQucGx1ZyBEOmEwNjVhOGEwNmVhNXx4YXBpXSBSYWlzZWQgYXQgZmlsZSBcImxpYi9w
ZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyNiwgY2hhcmFjdGVycyAyMi0yNVxuQ2FsbGVkIGZyb20g
ZmlsZSBcImxpYi9kZWJ1Zy5tbFwiLCBsaW5lIDU3LCBjaGFyYWN0ZXJzIDE3LTIwXG5SZS1yYWlz
ZWQgYXQgZmlsZSBcImxpYi9kZWJ1Zy5tbFwiLCBsaW5lIDYyLCBjaGFyYWN0ZXJzIDEwLTExXG5D
YWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0
ZXJzIDItOVxuCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVu
dGVzdHw0MzI1IFVOSVggL3Zhci9saWIveGNwL3hhcGl8ZGlzcGF0Y2g6VkJELnBsdWcgRDphMDY1
YThhMDZlYTV8YmFja3RyYWNlXSBSYWlzZWQgYXQgZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxc
IiwgbGluZSAyNiwgY2hhcmFjdGVycyAyMi0yNVxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9kZWJ1
Zy5tbFwiLCBsaW5lIDU3LCBjaGFyYWN0ZXJzIDE3LTIwXG5SZS1yYWlzZWQgYXQgZmlsZSBcImxp
Yi9kZWJ1Zy5tbFwiLCBsaW5lIDYyLCBjaGFyYWN0ZXJzIDEwLTExXG5DYWxsZWQgZnJvbSBmaWxl
IFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuUmUtcmFp
c2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMg
MjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDEzNiwg
Y2hhcmFjdGVycyAxMC0xMDZcbkNhbGxlZCBmcm9tIGZpbGUgXCJzZXJ2ZXIubWxcIiwgbGluZSAy
NTA0NywgY2hhcmFjdGVycyAyMy0xNjFcbkNhbGxlZCBmcm9tIGZpbGUgXCJzZXJ2ZXJfaGVscGVy
cy5tbFwiLCBsaW5lIDExNSwgY2hhcmFjdGVycyA0LTdcbgo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4
ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMyBJTkVUIDo6OjgwfFZNIGltcG9ydCBS
OmRiZGIwZWU1YWUxNnx4YXBpXSBSYWlzZWQgYXQgZmlsZSBcImNsaWVudC5tbFwiLCBsaW5lIDYs
IGNoYXJhY3RlcnMgMzctNzVcbkNhbGxlZCBmcm9tIGZpbGUgXCJjbGllbnQubWxcIiwgbGluZSAx
OCwgY2hhcmFjdGVycyA1NS0xMTBcbkNhbGxlZCBmcm9tIGZpbGUgXCJjbGllbnQubWxcIiwgbGlu
ZSAxMDUzMCwgY2hhcmFjdGVycyA2LTUzXG5DYWxsZWQgZnJvbSBmaWxlIFwibGlzdC5tbFwiLCBs
aW5lIDczLCBjaGFyYWN0ZXJzIDEyLTE1XG5DYWxsZWQgZnJvbSBmaWxlIFwiYXR0YWNoX2hlbHBl
cnMubWxcIiwgbGluZSA3OSwgY2hhcmFjdGVycyA3LTc4N1xuQ2FsbGVkIGZyb20gZmlsZSBcImxp
Yi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFjdGVycyAyLTlcbgo+PiBEZWMgMzAg
MDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMyBJTkVUIDo6Ojgw
fFZNIGltcG9ydCBSOmRiZGIwZWU1YWUxNnxtc2NnZW5dIHhhcGk9PnhhcGkgW2xhYmVsPSJzZXNz
aW9uLnNsYXZlX2xvZ2luIl07Cj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2Rl
YnVnfGc2eGVudGVzdHw0Mzc2IFVOSVggL3Zhci9saWIveGNwL3hhcGl8fGR1bW15dGFza2hlbHBl
cl0gdGFzayBkaXNwYXRjaDpzZXNzaW9uLnNsYXZlX2xvZ2luIEQ6ZTI5YTEwOTM0MzdiIGNyZWF0
ZWQgYnkgdGFzayBSOmRiZGIwZWU1YWUxNgo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhh
cGk6IFsgaW5mb3xnNnhlbnRlc3R8NDM3NiBVTklYIC92YXIvbGliL3hjcC94YXBpfHNlc3Npb24u
c2xhdmVfbG9naW4gRDo1M2Y1YTUwOTE1M2N8eGFwaV0gU2Vzc2lvbi5jcmVhdGUgdHJhY2tpZD00
M2JlZTQ5NTRkYWY1MGJiOGMxNjNiY2Q2ODcwMmZkNCBwb29sPXRydWUgdW5hbWU9IG9yaWdpbmF0
b3I9IGlzX2xvY2FsX3N1cGVydXNlcj10cnVlIGF1dGhfdXNlcl9zaWQ9IHBhcmVudD10cmFja2lk
PTk4MzRmNWFmNDFjOTY0ZTIyNWYyNDI3OWFlZmU0ZTQ5Cj4+IERlYyAzMCAwNjo1MTozOCBnNnhl
bnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0Mzc2IFVOSVggL3Zhci9saWIveGNwL3hhcGl8
c2Vzc2lvbi5zbGF2ZV9sb2dpbiBEOjUzZjVhNTA5MTUzY3xtc2NnZW5dIHhhcGk9PnhhcGkgW2xh
YmVsPSJzZXNzaW9uLmdldF91dWlkIl07Cj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFw
aTogW2RlYnVnfGc2eGVudGVzdHw0Mzc3IFVOSVggL3Zhci9saWIveGNwL3hhcGl8fGR1bW15dGFz
a2hlbHBlcl0gdGFzayBkaXNwYXRjaDpzZXNzaW9uLmdldF91dWlkIEQ6MDBjNWJlZjNmOTU0IGNy
ZWF0ZWQgYnkgdGFzayBEOjUzZjVhNTA5MTUzYwo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0
IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMyBJTkVUIDo6OjgwfFZNIGltcG9ydCBSOmRiZGIw
ZWU1YWUxNnxtc2NnZW5dIHhhcGk9PnhhcGkgW2xhYmVsPSJWQkQudW5wbHVnIl07Cj4+IERlYyAz
MCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0Mzc4IFVOSVggL3Zh
ci9saWIveGNwL3hhcGl8fGR1bW15dGFza2hlbHBlcl0gdGFzayBkaXNwYXRjaDpWQkQudW5wbHVn
IEQ6MjhjMWQxNTI4ZWQxIGNyZWF0ZWQgYnkgdGFzayBSOmRiZGIwZWU1YWUxNgo+PiBEZWMgMzAg
MDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFsgaW5mb3xnNnhlbnRlc3R8NDM3OCBVTklYIC92YXIv
bGliL3hjcC94YXBpfGRpc3BhdGNoOlZCRC51bnBsdWcgRDoyOGMxZDE1MjhlZDF8dGFza2hlbHBl
cl0gdGFzayBWQkQudW5wbHVnIFI6NGRjMzU3NzhjOTVkICh1dWlkOjNlMWU3ZTk3LWFkM2QtZjZl
YS03NGIwLWI2NThmNmEyMzRjMikgY3JlYXRlZCAodHJhY2tpZD00M2JlZTQ5NTRkYWY1MGJiOGMx
NjNiY2Q2ODcwMmZkNCkgYnkgdGFzayBSOmRiZGIwZWU1YWUxNgo+PiBEZWMgMzAgMDY6NTE6Mzgg
ZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM3OCBVTklYIC92YXIvbGliL3hjcC94
YXBpfFZCRC51bnBsdWcgUjo0ZGMzNTc3OGM5NWR8YXVkaXRdIFZCRC51bnBsdWc6IFZCRCA9ICc1
NTcxNmVjZi0xYTI3LWIyNjUtNjAyMS1mMjE5OTRhMzQ2ZGYnCj4+IERlYyAzMCAwNjo1MTozOCBn
NnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0Mzc4IFVOSVggL3Zhci9saWIveGNwL3hh
cGl8VkJELnVucGx1ZyBSOjRkYzM1Nzc4Yzk1ZHxiYWNrdHJhY2VdIFJhaXNlZCBhdCBmaWxlIFwi
eGFwaV92YmRfaGVscGVycy5tbFwiLCBsaW5lIDIwMSwgY2hhcmFjdGVycyAzMy03MlxuQ2FsbGVk
IGZyb20gZmlsZSBcIm1lc3NhZ2VfZm9yd2FyZGluZy5tbFwiLCBsaW5lIDM0MzAsIGNoYXJhY3Rl
cnMgNS02NVxuQ2FsbGVkIGZyb20gZmlsZSBcIm1lc3NhZ2VfZm9yd2FyZGluZy5tbFwiLCBsaW5l
IDI4MywgY2hhcmFjdGVycyA1LThcbgo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6
IFtkZWJ1Z3xnNnhlbnRlc3R8NDM3OCBVTklYIC92YXIvbGliL3hjcC94YXBpfFZCRC51bnBsdWcg
Ujo0ZGMzNTc3OGM5NWR8eGFwaV0gQ2F1Z2h0IGV4Y2VwdGlvbiB3aGlsZSBERVZJQ0VfQUxSRUFE
WV9ERVRBQ0hFRDogWyBPcGFxdWVSZWY6NjI5MzRlZDgtNjA2Yy05YTI3LWNhNjYtNjI1YjQyMjEz
ZmQxIF0gaW4gbWVzc2FnZSBmb3J3YXJkZXI6IG1hcmtpbmcgVkJEIGZvciBWQkQudW5wbHVnCj4+
IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0Mzc4IFVO
SVggL3Zhci9saWIveGNwL3hhcGl8VkJELnVucGx1ZyBSOjRkYzM1Nzc4Yzk1ZHxiYWNrdHJhY2Vd
IFJhaXNlZCBhdCBmaWxlIFwieGFwaV92YmRfaGVscGVycy5tbFwiLCBsaW5lIDIwMSwgY2hhcmFj
dGVycyAzMy03MlxuQ2FsbGVkIGZyb20gZmlsZSBcIm1lc3NhZ2VfZm9yd2FyZGluZy5tbFwiLCBs
aW5lIDM0MzAsIGNoYXJhY3RlcnMgNS02NVxuQ2FsbGVkIGZyb20gZmlsZSBcIm1lc3NhZ2VfZm9y
d2FyZGluZy5tbFwiLCBsaW5lIDI4MywgY2hhcmFjdGVycyA1LThcblJlLXJhaXNlZCBhdCBmaWxl
IFwibWVzc2FnZV9mb3J3YXJkaW5nLm1sXCIsIGxpbmUgMjg2LCBjaGFyYWN0ZXJzIDgtOVxuQ2Fs
bGVkIGZyb20gZmlsZSBcImxpYi90aHJlYWRleHQubWxcIiwgbGluZSAyMCwgY2hhcmFjdGVycyAy
MC0yNFxuUmUtcmFpc2VkIGF0IGZpbGUgXCJsaWIvdGhyZWFkZXh0Lm1sXCIsIGxpbmUgMjAsIGNo
YXJhY3RlcnMgNjItNjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJtZXNzYWdlX2ZvcndhcmRpbmcubWxc
IiwgbGluZSAxNDksIGNoYXJhY3RlcnMgMTktMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJtZXNzYWdl
X2ZvcndhcmRpbmcubWxcIiwgbGluZSAzNDM1LCBjaGFyYWN0ZXJzIDMtODdcbkNhbGxlZCBmcm9t
IGZpbGUgXCJtZXNzYWdlX2ZvcndhcmRpbmcubWxcIiwgbGluZSAzNTExLCBjaGFyYWN0ZXJzIDMt
MjAwXG5DYWxsZWQgZnJvbSBmaWxlIFwicmJhYy5tbFwiLCBsaW5lIDIyNywgY2hhcmFjdGVycyAx
Ni0yM1xuCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogWzIwMTQxMjMwVDA1OjUx
OjM4LjUzOVp8YXVkaXR8ZzZ4ZW50ZXN0fDQzNzggVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWQkQu
dW5wbHVnIFI6NGRjMzU3NzhjOTVkfGF1ZGl0XSAoJ3RyYWNraWQ9NDNiZWU0OTU0ZGFmNTBiYjhj
MTYzYmNkNjg3MDJmZDQnICdMT0NBTF9TVVBFUlVTRVInICdPcGFxdWVSZWY6YmMwMDFkNTctNjVj
ZS04YjJiLTc0YjQtY2Q3MTk3NjI3MmMwJyAnQUxMT1dFRCcgJ0VSUk9SOkRFVklDRV9BTFJFQURZ
X0RFVEFDSEVEOiBbIE9wYXF1ZVJlZjo2MjkzNGVkOC02MDZjLTlhMjctY2E2Ni02MjViNDIyMTNm
ZDEgXScgJ0FQSScgJ1ZCRC51bnBsdWcnICgoJ3NlbGYnICcnICc1NTcxNmVjZi0xYTI3LWIyNjUt
NjAyMS1mMjE5OTRhMzQ2ZGYnICdPcGFxdWVSZWY6NjI5MzRlZDgtNjA2Yy05YTI3LWNhNjYtNjI1
YjQyMjEzZmQxJykpKQo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xn
NnhlbnRlc3R8NDM3OCBVTklYIC92YXIvbGliL3hjcC94YXBpfFZCRC51bnBsdWcgUjo0ZGMzNTc3
OGM5NWR8YmFja3RyYWNlXSBSYWlzZWQgYXQgZmlsZSBcInJiYWMubWxcIiwgbGluZSAyMzYsIGNo
YXJhY3RlcnMgMTAtMTVcbkNhbGxlZCBmcm9tIGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBs
aW5lIDc1LCBjaGFyYWN0ZXJzIDExLTQxXG4KPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4
YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzNzggVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWQkQudW5w
bHVnIFI6NGRjMzU3NzhjOTVkfGRpc3BhdGNoZXJdIFNlcnZlcl9oZWxwZXJzLmV4ZWMgZXhjZXB0
aW9uX2hhbmRsZXI6IEdvdCBleGNlcHRpb24gREVWSUNFX0FMUkVBRFlfREVUQUNIRUQ6IFsgT3Bh
cXVlUmVmOjYyOTM0ZWQ4LTYwNmMtOWEyNy1jYTY2LTYyNWI0MjIxM2ZkMSBdCj4+IERlYyAzMCAw
Njo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0Mzc4IFVOSVggL3Zhci9s
aWIveGNwL3hhcGl8VkJELnVucGx1ZyBSOjRkYzM1Nzc4Yzk1ZHxkaXNwYXRjaGVyXSBSYWlzZWQg
YXQgZmlsZSBcInJiYWMubWxcIiwgbGluZSAyMzYsIGNoYXJhY3RlcnMgMTAtMTVcbkNhbGxlZCBm
cm9tIGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDc1LCBjaGFyYWN0ZXJzIDExLTQx
XG4KPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQz
NzggVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWQkQudW5wbHVnIFI6NGRjMzU3NzhjOTVkfGJhY2t0
cmFjZV0gUmFpc2VkIGF0IGZpbGUgXCJyYmFjLm1sXCIsIGxpbmUgMjM2LCBjaGFyYWN0ZXJzIDEw
LTE1XG5DYWxsZWQgZnJvbSBmaWxlIFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGluZSA3NSwgY2hh
cmFjdGVycyAxMS00MVxuCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVn
fGc2eGVudGVzdHw0Mzc4IFVOSVggL3Zhci9saWIveGNwL3hhcGl8VkJELnVucGx1ZyBSOjRkYzM1
Nzc4Yzk1ZHx4YXBpXSBSYWlzZWQgYXQgZmlsZSBcInNlcnZlcl9oZWxwZXJzLm1sXCIsIGxpbmUg
OTAsIGNoYXJhY3RlcnMgMTQtMTVcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0
Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMgMi05XG4KPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVu
dGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzNzggVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxk
aXNwYXRjaDpWQkQudW5wbHVnIEQ6MjhjMWQxNTI4ZWQxfHhhcGldIFJhaXNlZCBhdCBmaWxlIFwi
bGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFyYWN0ZXJzIDIyLTI1XG5DYWxsZWQg
ZnJvbSBmaWxlIFwibGliL2RlYnVnLm1sXCIsIGxpbmUgNTcsIGNoYXJhY3RlcnMgMTctMjBcblJl
LXJhaXNlZCBhdCBmaWxlIFwibGliL2RlYnVnLm1sXCIsIGxpbmUgNjIsIGNoYXJhY3RlcnMgMTAt
MTFcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNo
YXJhY3RlcnMgMi05XG4KPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8
ZzZ4ZW50ZXN0fDQzNzggVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxkaXNwYXRjaDpWQkQudW5wbHVn
IEQ6MjhjMWQxNTI4ZWQxfGJhY2t0cmFjZV0gUmFpc2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZl
ZXh0Lm1sXCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJs
aWIvZGVidWcubWxcIiwgbGluZSA1NywgY2hhcmFjdGVycyAxNy0yMFxuUmUtcmFpc2VkIGF0IGZp
bGUgXCJsaWIvZGVidWcubWxcIiwgbGluZSA2MiwgY2hhcmFjdGVycyAxMC0xMVxuQ2FsbGVkIGZy
b20gZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFjdGVycyAyLTlc
blJlLXJhaXNlZCBhdCBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFy
YWN0ZXJzIDIyLTI1XG5DYWxsZWQgZnJvbSBmaWxlIFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGlu
ZSAxMzYsIGNoYXJhY3RlcnMgMTAtMTA2XG5DYWxsZWQgZnJvbSBmaWxlIFwic2VydmVyLm1sXCIs
IGxpbmUgMjUwNjgsIGNoYXJhY3RlcnMgMjMtMTYxXG5DYWxsZWQgZnJvbSBmaWxlIFwic2VydmVy
X2hlbHBlcnMubWxcIiwgbGluZSAxMTUsIGNoYXJhY3RlcnMgNC03XG4KPj4gRGVjIDMwIDA2OjUx
OjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMDMgSU5FVCA6Ojo4MHxWTSBp
bXBvcnQgUjpkYmRiMGVlNWFlMTZ8eGFwaV0gc2FmZV91bnBsdWcgY2F1Z2h0IERFVklDRV9BTFJF
QURZX0RFVEFDSEVEOiB0aGlzIGlzIHNhZmUgdG8gaWdub3JlCj4+IERlYyAzMCAwNjo1MTozOCBn
NnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzAzIElORVQgOjo6ODB8Vk0gaW1wb3J0
IFI6ZGJkYjBlZTVhZTE2fG1zY2dlbl0geGFwaT0+eGFwaSBbbGFiZWw9IlZCRC5kZXN0cm95Il07
Cj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0Mzc5
IFVOSVggL3Zhci9saWIveGNwL3hhcGl8fGR1bW15dGFza2hlbHBlcl0gdGFzayBkaXNwYXRjaDpW
QkQuZGVzdHJveSBEOmQyYTJmZmUxZWU0ZiBjcmVhdGVkIGJ5IHRhc2sgUjpkYmRiMGVlNWFlMTYK
Pj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbIGluZm98ZzZ4ZW50ZXN0fDQzNzkg
VU5JWCAvdmFyL2xpYi94Y3AveGFwaXxkaXNwYXRjaDpWQkQuZGVzdHJveSBEOmQyYTJmZmUxZWU0
Znx0YXNraGVscGVyXSB0YXNrIFZCRC5kZXN0cm95IFI6NzZjOGY4YWY4ZWMzICh1dWlkOjI4OTFj
MzhmLThjOTUtNGE4NC0wMWJlLWYzZmI5MjFiN2ViOCkgY3JlYXRlZCAodHJhY2tpZD00M2JlZTQ5
NTRkYWY1MGJiOGMxNjNiY2Q2ODcwMmZkNCkgYnkgdGFzayBSOmRiZGIwZWU1YWUxNgo+PiBEZWMg
MzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM3OSBVTklYIC92
YXIvbGliL3hjcC94YXBpfFZCRC5kZXN0cm95IFI6NzZjOGY4YWY4ZWMzfGF1ZGl0XSBWQkQuZGVz
dHJveTogVkJEID0gJzU1NzE2ZWNmLTFhMjctYjI2NS02MDIxLWYyMTk5NGEzNDZkZicKPj4gRGVj
IDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzNzkgVU5JWCAv
dmFyL2xpYi94Y3AveGFwaXxWQkQuZGVzdHJveSBSOjc2YzhmOGFmOGVjM3x4YXBpXSBWQkQuZGVz
dHJveSAodXVpZCA9IDU1NzE2ZWNmLTFhMjctYjI2NS02MDIxLWYyMTk5NGEzNDZkZjsgcmVmID0g
T3BhcXVlUmVmOjYyOTM0ZWQ4LTYwNmMtOWEyNy1jYTY2LTYyNWI0MjIxM2ZkMSkKPj4gRGVjIDMw
IDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbMjAxNDEyMzBUMDU6NTE6MzguNTgzWnxhdWRpdHxn
NnhlbnRlc3R8NDM3OSBVTklYIC92YXIvbGliL3hjcC94YXBpfFZCRC5kZXN0cm95IFI6NzZjOGY4
YWY4ZWMzfGF1ZGl0XSAoJ3RyYWNraWQ9NDNiZWU0OTU0ZGFmNTBiYjhjMTYzYmNkNjg3MDJmZDQn
ICdMT0NBTF9TVVBFUlVTRVInICdPcGFxdWVSZWY6YmMwMDFkNTctNjVjZS04YjJiLTc0YjQtY2Q3
MTk3NjI3MmMwJyAnQUxMT1dFRCcgJ09LJyAnQVBJJyAnVkJELmRlc3Ryb3knICgoJ3NlbGYnICcn
ICc1NTcxNmVjZi0xYTI3LWIyNjUtNjAyMS1mMjE5OTRhMzQ2ZGYnICdPcGFxdWVSZWY6NjI5MzRl
ZDgtNjA2Yy05YTI3LWNhNjYtNjI1YjQyMjEzZmQxJykgKCdWREknICdYT0EgU3lzdGVtJyAnY2Fl
MzBlOWItZWJkNC00NDUwLThjZTAtOWY0MDM1Y2E2MmYxJyAnT3BhcXVlUmVmOjBiMTMyY2E2LWI4
ZTctYzExZi02ZmZmLWRlYzA4NDMyY2FmZScpKSkKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVz
dCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMDMgSU5FVCA6Ojo4MHxWTSBpbXBvcnQgUjpkYmRi
MGVlNWFlMTZ8bXNjZ2VuXSB4YXBpPT54YXBpIFtsYWJlbD0ic2Vzc2lvbi5sb2dvdXQiXTsKPj4g
RGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzODAgVU5J
WCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0YXNrIGRpc3BhdGNoOnNlc3Np
b24ubG9nb3V0IEQ6MzNkMTIxYWU3MDNjIGNyZWF0ZWQgYnkgdGFzayBSOmRiZGIwZWU1YWUxNgo+
PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFsgaW5mb3xnNnhlbnRlc3R8NDM4MCBV
TklYIC92YXIvbGliL3hjcC94YXBpfHNlc3Npb24ubG9nb3V0IEQ6YjY4YTVmYjlmNTg1fHhhcGld
IFNlc3Npb24uZGVzdHJveSB0cmFja2lkPTQzYmVlNDk1NGRhZjUwYmI4YzE2M2JjZDY4NzAyZmQ0
Cj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzAz
IElORVQgOjo6ODB8Vk0gaW1wb3J0IFI6ZGJkYjBlZTVhZTE2fGJhY2t0cmFjZV0gUmFpc2VkIGF0
IGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjItMjVc
bkNhbGxlZCBmcm9tIGZpbGUgXCJsaXN0Lm1sXCIsIGxpbmUgNzMsIGNoYXJhY3RlcnMgMTItMTVc
bkNhbGxlZCBmcm9tIGZpbGUgXCJzdHJlYW1fdmRpLm1sXCIsIGxpbmUgNTgsIGNoYXJhY3RlcnMg
Mi0zMlxuQ2FsbGVkIGZyb20gZmlsZSBcImltcG9ydC5tbFwiLCBsaW5lIDE0OTMsIGNoYXJhY3Rl
cnMgMzYtMTI0XG4KPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZXJyb3J8ZzZ4
ZW50ZXN0fDQzMDMgSU5FVCA6Ojo4MHxWTSBpbXBvcnQgUjpkYmRiMGVlNWFlMTZ8aW1wb3J0XSBD
YXVnaHQgZXhjZXB0aW9uIGR1cmluZyBpbXBvcnQ6IFNSX0JBQ0tFTkRfRkFJTFVSRTogWyBub24t
emVybyBleGl0OyA7IFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KTojMDEyICBGaWxl
ICIvb3B0L3hlbnNvdXJjZS9zbS9ORlNTUiIsIGxpbmUgMjc4LCBpbiA8bW9kdWxlPiMwMTIgICAg
U1JDb21tYW5kLnJ1bihORlNTUiwgRFJJVkVSX0lORk8pIzAxMiAgRmlsZSAiL3Vzci9saWIveGFw
aS9zbS9TUkNvbW1hbmQucHkiLCBsaW5lIDM0NCwgaW4gcnVuIzAxMiAgICByZXQgPSBjbWQucnVu
KHNyKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vU1JDb21tYW5kLnB5IiwgbGluZSAxMTAs
IGluIHJ1biMwMTIgICAgcmV0dXJuIHNlbGYuX3J1bl9sb2NrZWQoc3IpIzAxMiAgRmlsZSAiL3Vz
ci9saWIveGFwaS9zbS9TUkNvbW1hbmQucHkiLCBsaW5lIDE1OSwgaW4gX3J1bl9sb2NrZWQjMDEy
ICAgIHJ2ID0gc2VsZi5fcnVuKHNyLCB0YXJnZXQpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9z
bS9TUkNvbW1hbmQucHkiLCBsaW5lIDI2MywgaW4gX3J1biMwMTIgICAgd3JpdGFibGUsIGNhY2hp
bmdfcGFyYW1zKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUg
MTQ4NiwgaW4gYWN0aXZhdGUjMDEyICAgIGlmIHNlbGYuX2FjdGl2YXRlX2xvY2tlZChzcl91dWlk
LCB2ZGlfdXVpZCwgb3B0aW9ucyk6IzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAy
LnB5IiwgbGluZSA4MywgaW4gd3JhcHBlciMwMTIgICAgcmV0ID0gb3Aoc2VsZiwgKmFyZ3MpIzAx
MiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNTIyLCBpbiBfYWN0
aXZhdGVfbG9ja2VkIzAxMiAgICBkZXZfcGF0aCA9IHNlbGYuX2FjdGl2YXRlKHNyX3V1aWQsIHZk
aV91dWlkLCBvcHRpb25zKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIs
IGxpbmUgMTU2MCwgaW4gX2FjdGl2YXRlIzAxMiBzZWxmLl9nZXRfcG9vbF9jb25maWcoc3JfdXVp
ZCkuZ2V0KCJtZW0tcG9vbC1zaXplIikpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0
YXAyLnB5IiwgbGluZSAxMjQzLCBpbiBfdGFwX2FjdGl2YXRlIzAxMiB0YXBkaXNrID0gVGFwZGlz
ay5maW5kX2J5X3BhdGgocGh5X3BhdGgpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0
YXAyLnB5IiwgbGluZSA2OTAsIGluIGZpbmRfYnlfcGF0aCMwMTIgcmV0dXJuIGNscy5maW5kKHBh
dGg9cGF0aCkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDY3
OCwgaW4gZmluZCMwMTIgICAgZm91bmQgPSBsaXN0KGNscy5saXN0KCoqYXJncykpIzAxMiAgRmls
ZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA2NTMsIGluIGxpc3QjMDEyICAg
IGZvciByb3cgaW4gVGFwQ3RsLmxpc3QoKiphcmdzKTojMDEyICBGaWxlICIvdXNyL2xpYi94YXBp
L3NtL2Jsa3RhcDIucHkiLCBsaW5lIDExOCwgaW4gbG9vcCMwMTIgICAgcmV0dXJuIGYoKl9fdCwg
KipfX2QpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAzNDgs
IGluIGxpc3QjMDEyICAgIGlmIGUuc3RhdHVzIGluIHRyYW5zaWVudDojMDEyICBGaWxlICIvdXNy
L2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDE2MiwgaW4gX19nZXRhdHRyX18jMDEyICAg
IHJldHVybiBvYmplY3QuX19nZXRhdHRyaWJ1dGVfXyhzZWxmLCBrZXkpIzAxMkF0dHJpYnV0ZUVy
cm9yOiAnQ29tbWFuZEZhaWx1cmUnIG9iamVjdCBoYXMgbm8gYXR0cmlidXRlICdzdGF0dXMnIzAx
MiBdCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0
MzAzIElORVQgOjo6ODB8Vk0gaW1wb3J0IFI6ZGJkYjBlZTVhZTE2fGJhY2t0cmFjZV0gUmFpc2Vk
IGF0IGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjIt
MjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaXN0Lm1sXCIsIGxpbmUgNzMsIGNoYXJhY3RlcnMgMTIt
MTVcbkNhbGxlZCBmcm9tIGZpbGUgXCJzdHJlYW1fdmRpLm1sXCIsIGxpbmUgNTgsIGNoYXJhY3Rl
cnMgMi0zMlxuQ2FsbGVkIGZyb20gZmlsZSBcImltcG9ydC5tbFwiLCBsaW5lIDE0OTMsIGNoYXJh
Y3RlcnMgMzYtMTI0XG4KPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8
ZzZ4ZW50ZXN0fDQzMDMgSU5FVCA6Ojo4MHxWTSBpbXBvcnQgUjpkYmRiMGVlNWFlMTZ8aW1wb3J0
XSBDbGVhbmluZyB1cCBhZnRlciBpbXBvcnQgZmFpbHVyZTogU1JfQkFDS0VORF9GQUlMVVJFOiBb
IG5vbi16ZXJvIGV4aXQ7IDsgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOiMwMTIg
IEZpbGUgIi9vcHQveGVuc291cmNlL3NtL05GU1NSIiwgbGluZSAyNzgsIGluIDxtb2R1bGU+IzAx
MiAgICBTUkNvbW1hbmQucnVuKE5GU1NSLCBEUklWRVJfSU5GTykjMDEyICBGaWxlICIvdXNyL2xp
Yi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMzQ0LCBpbiBydW4jMDEyICAgIHJldCA9IGNt
ZC5ydW4oc3IpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1hbmQucHkiLCBsaW5l
IDExMCwgaW4gcnVuIzAxMiAgICByZXR1cm4gc2VsZi5fcnVuX2xvY2tlZChzcikjMDEyICBGaWxl
ICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMTU5LCBpbiBfcnVuX2xvY2tl
ZCMwMTIgICAgcnYgPSBzZWxmLl9ydW4oc3IsIHRhcmdldCkjMDEyICBGaWxlICIvdXNyL2xpYi94
YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMjYzLCBpbiBfcnVuIzAxMiAgICB3cml0YWJsZSwg
Y2FjaGluZ19wYXJhbXMpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5Iiwg
bGluZSAxNDg2LCBpbiBhY3RpdmF0ZSMwMTIgICAgaWYgc2VsZi5fYWN0aXZhdGVfbG9ja2VkKHNy
X3V1aWQsIHZkaV91dWlkLCBvcHRpb25zKTojMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Js
a3RhcDIucHkiLCBsaW5lIDgzLCBpbiB3cmFwcGVyIzAxMiAgICByZXQgPSBvcChzZWxmLCAqYXJn
cykjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDE1MjIsIGlu
IF9hY3RpdmF0ZV9sb2NrZWQjMDEyICAgIGRldl9wYXRoID0gc2VsZi5fYWN0aXZhdGUoc3JfdXVp
ZCwgdmRpX3V1aWQsIG9wdGlvbnMpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAy
LnB5IiwgbGluZSAxNTYwLCBpbiBfYWN0aXZhdGUjMDEyIHNlbGYuX2dldF9wb29sX2NvbmZpZyhz
cl91dWlkKS5nZXQoIm1lbS1wb29sLXNpemUiKSkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3Nt
L2Jsa3RhcDIucHkiLCBsaW5lIDEyNDMsIGluIF90YXBfYWN0aXZhdGUjMDEyIHRhcGRpc2sgPSBU
YXBkaXNrLmZpbmRfYnlfcGF0aChwaHlfcGF0aCkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3Nt
L2Jsa3RhcDIucHkiLCBsaW5lIDY5MCwgaW4gZmluZF9ieV9wYXRoIzAxMiByZXR1cm4gY2xzLmZp
bmQocGF0aD1wYXRoKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxp
bmUgNjc4LCBpbiBmaW5kIzAxMiAgICBmb3VuZCA9IGxpc3QoY2xzLmxpc3QoKiphcmdzKSkjMDEy
ICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDY1MywgaW4gbGlzdCMw
MTIgICAgZm9yIHJvdyBpbiBUYXBDdGwubGlzdCgqKmFyZ3MpOiMwMTIgIEZpbGUgIi91c3IvbGli
L3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTE4LCBpbiBsb29wIzAxMiAgICByZXR1cm4gZigq
X190LCAqKl9fZCkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5l
IDM0OCwgaW4gbGlzdCMwMTIgICAgaWYgZS5zdGF0dXMgaW4gdHJhbnNpZW50OiMwMTIgIEZpbGUg
Ii91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTYyLCBpbiBfX2dldGF0dHJfXyMw
MTIgICAgcmV0dXJuIG9iamVjdC5fX2dldGF0dHJpYnV0ZV9fKHNlbGYsIGtleSkjMDEyQXR0cmli
dXRlRXJyb3I6ICdDb21tYW5kRmFpbHVyZScgb2JqZWN0IGhhcyBubyBhdHRyaWJ1dGUgJ3N0YXR1
cycjMDEyIF0KPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50
ZXN0fDQzMDMgSU5FVCA6Ojo4MHxWTS5pbXBvcnQgKGNsZWFudXApIFI6MDlkZDljNzY4NDUwfG1z
Y2dlbl0geGFwaT0+eGFwaSBbbGFiZWw9InNlc3Npb24uc2xhdmVfbG9naW4iXTsKPj4gRGVjIDMw
IDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzODEgVU5JWCAvdmFy
L2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0YXNrIGRpc3BhdGNoOnNlc3Npb24uc2xh
dmVfbG9naW4gRDoyZDZmZTA0NWU2N2QgY3JlYXRlZCBieSB0YXNrIFI6MDlkZDljNzY4NDUwCj4+
IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogWyBpbmZvfGc2eGVudGVzdHw0MzgxIFVO
SVggL3Zhci9saWIveGNwL3hhcGl8c2Vzc2lvbi5zbGF2ZV9sb2dpbiBEOjA5NTY4OWQzNzAyY3x4
YXBpXSBTZXNzaW9uLmNyZWF0ZSB0cmFja2lkPWVmM2NkNDc0NWYxYjQzYjc3YTk5YWNmZTNhZmJh
ZThmIHBvb2w9dHJ1ZSB1bmFtZT0gb3JpZ2luYXRvcj0gaXNfbG9jYWxfc3VwZXJ1c2VyPXRydWUg
YXV0aF91c2VyX3NpZD0gcGFyZW50PXRyYWNraWQ9OTgzNGY1YWY0MWM5NjRlMjI1ZjI0Mjc5YWVm
ZTRlNDkKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0
fDQzODEgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxzZXNzaW9uLnNsYXZlX2xvZ2luIEQ6MDk1Njg5
ZDM3MDJjfG1zY2dlbl0geGFwaT0+eGFwaSBbbGFiZWw9InNlc3Npb24uZ2V0X3V1aWQiXTsKPj4g
RGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzODIgVU5J
WCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0YXNrIGRpc3BhdGNoOnNlc3Np
b24uZ2V0X3V1aWQgRDo2NjQ4NWMwOGNhNGEgY3JlYXRlZCBieSB0YXNrIEQ6MDk1Njg5ZDM3MDJj
Cj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzAz
IElORVQgOjo6ODB8Vk0uaW1wb3J0IChjbGVhbnVwKSBSOjA5ZGQ5Yzc2ODQ1MHxtc2NnZW5dIHhh
cGk9PnhhcGkgW2xhYmVsPSJWSUYuZGVzdHJveSJdOwo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50
ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM4MyBVTklYIC92YXIvbGliL3hjcC94YXBpfHxk
dW1teXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6VklGLmRlc3Ryb3kgRDo0YjcxMTk1ODA4OTUg
Y3JlYXRlZCBieSB0YXNrIFI6MDlkZDljNzY4NDUwCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRl
c3QgeGFwaTogWyBpbmZvfGc2eGVudGVzdHw0MzgzIFVOSVggL3Zhci9saWIveGNwL3hhcGl8ZGlz
cGF0Y2g6VklGLmRlc3Ryb3kgRDo0YjcxMTk1ODA4OTV8dGFza2hlbHBlcl0gdGFzayBWSUYuZGVz
dHJveSBSOmQ0YmYyYzZjMDA0OSAodXVpZDoyMTNjZGI1OS04YmE3LTMwMjktMzVlMS1hNWFlYzVi
NzE1YTApIGNyZWF0ZWQgKHRyYWNraWQ9ZWYzY2Q0NzQ1ZjFiNDNiNzdhOTlhY2ZlM2FmYmFlOGYp
IGJ5IHRhc2sgUjowOWRkOWM3Njg0NTAKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBp
OiBbZGVidWd8ZzZ4ZW50ZXN0fDQzODMgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWSUYuZGVzdHJv
eSBSOmQ0YmYyYzZjMDA0OXxhdWRpdF0gVklGLmRlc3Ryb3k6IFZJRiA9ICdjNDBkMTljOC0xOTY0
LWViMDQtZTU3Mi0zNDRiNzRiYjc3MDEnCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFw
aTogW2RlYnVnfGc2eGVudGVzdHw0MzgzIFVOSVggL3Zhci9saWIveGNwL3hhcGl8VklGLmRlc3Ry
b3kgUjpkNGJmMmM2YzAwNDl8eGFwaV0gVklGLmRlc3Ryb3kKPj4gRGVjIDMwIDA2OjUxOjM4IGc2
eGVudGVzdCB4YXBpOiBbMjAxNDEyMzBUMDU6NTE6MzguNjI4WnxhdWRpdHxnNnhlbnRlc3R8NDM4
MyBVTklYIC92YXIvbGliL3hjcC94YXBpfFZJRi5kZXN0cm95IFI6ZDRiZjJjNmMwMDQ5fGF1ZGl0
XSAoJ3RyYWNraWQ9ZWYzY2Q0NzQ1ZjFiNDNiNzdhOTlhY2ZlM2FmYmFlOGYnICdMT0NBTF9TVVBF
UlVTRVInICdPcGFxdWVSZWY6YmMwMDFkNTctNjVjZS04YjJiLTc0YjQtY2Q3MTk3NjI3MmMwJyAn
QUxMT1dFRCcgJ09LJyAnQVBJJyAnVklGLmRlc3Ryb3knICgoJ3NlbGYnICcnICdjNDBkMTljOC0x
OTY0LWViMDQtZTU3Mi0zNDRiNzRiYjc3MDEnICdPcGFxdWVSZWY6NTVlMzk5MGMtOWViNC0xZDJm
LWMzNGQtMTc4NTFjYjg3ZGY4JykpKQo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6
IFtkZWJ1Z3xnNnhlbnRlc3R8ODl8eGFwaSBldmVudHMgRDpiNjQ5N2UyYThiMTV8eGVub3BzXSBF
dmVudCBvbiBWTSBiZTc2NGRkZS1iYTZkLTQ4ZjUtYmRjMi04YWU4N2FkNzQ1NTk7IHJlc2lkZW50
X2hlcmUgPSB0cnVlCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2
eGVudGVzdHw0MzAzIElORVQgOjo6ODB8Vk0uaW1wb3J0IChjbGVhbnVwKSBSOjA5ZGQ5Yzc2ODQ1
MHxtc2NnZW5dIHhhcGk9PnhhcGkgW2xhYmVsPSJWQkQuZGVzdHJveSJdOwo+PiBEZWMgMzAgMDY6
NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM4NCBVTklYIC92YXIvbGli
L3hjcC94YXBpfHxkdW1teXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6VkJELmRlc3Ryb3kgRDoy
MDZlNjAzMGQ3OTEgY3JlYXRlZCBieSB0YXNrIFI6MDlkZDljNzY4NDUwCj4+IERlYyAzMCAwNjo1
MTozOCBnNnhlbnRlc3QgeGFwaTogWyBpbmZvfGc2eGVudGVzdHw0Mzg0IFVOSVggL3Zhci9saWIv
eGNwL3hhcGl8ZGlzcGF0Y2g6VkJELmRlc3Ryb3kgRDoyMDZlNjAzMGQ3OTF8dGFza2hlbHBlcl0g
dGFzayBWQkQuZGVzdHJveSBSOjBhN2Y1ZTk2MmM0YSAodXVpZDpjMmU1YmM2NC1iM2QyLWYyZmEt
MjdlNy1mOGRjMjM1MjgxYzgpIGNyZWF0ZWQgKHRyYWNraWQ9ZWYzY2Q0NzQ1ZjFiNDNiNzdhOTlh
Y2ZlM2FmYmFlOGYpIGJ5IHRhc2sgUjowOWRkOWM3Njg0NTAKPj4gRGVjIDMwIDA2OjUxOjM4IGc2
eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzODQgVU5JWCAvdmFyL2xpYi94Y3AveGFw
aXxWQkQuZGVzdHJveSBSOjBhN2Y1ZTk2MmM0YXxhdWRpdF0gVkJELmRlc3Ryb3k6IFZCRCA9ICcz
NTg3MGJkZS04Y2NiLWQwMDEtMzk5OS1jNmFjYWQwYzJiMGEnCj4+IERlYyAzMCAwNjo1MTozOCBn
NnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0Mzg0IFVOSVggL3Zhci9saWIveGNwL3hh
cGl8VkJELmRlc3Ryb3kgUjowYTdmNWU5NjJjNGF8eGFwaV0gVkJELmRlc3Ryb3kgKHV1aWQgPSAz
NTg3MGJkZS04Y2NiLWQwMDEtMzk5OS1jNmFjYWQwYzJiMGE7IHJlZiA9IE9wYXF1ZVJlZjozNGJi
Y2Y1ZS0xYzQ0LThhMDMtZjFmMi0wZGM0OTRiMjg0NmEpCj4+IERlYyAzMCAwNjo1MTozOCBnNnhl
bnRlc3QgeGFwaTogWzIwMTQxMjMwVDA1OjUxOjM4LjY3MVp8YXVkaXR8ZzZ4ZW50ZXN0fDQzODQg
VU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWQkQuZGVzdHJveSBSOjBhN2Y1ZTk2MmM0YXxhdWRpdF0g
KCd0cmFja2lkPWVmM2NkNDc0NWYxYjQzYjc3YTk5YWNmZTNhZmJhZThmJyAnTE9DQUxfU1VQRVJV
U0VSJyAnT3BhcXVlUmVmOmJjMDAxZDU3LTY1Y2UtOGIyYi03NGI0LWNkNzE5NzYyNzJjMCcgJ0FM
TE9XRUQnICdPSycgJ0FQSScgJ1ZCRC5kZXN0cm95JyAoKCdzZWxmJyAnJyAnMzU4NzBiZGUtOGNj
Yi1kMDAxLTM5OTktYzZhY2FkMGMyYjBhJyAnT3BhcXVlUmVmOjM0YmJjZjVlLTFjNDQtOGEwMy1m
MWYyLTBkYzQ5NGIyODQ2YScpICgnVkRJJyAnWE9BIFN5c3RlbScgJ2NhZTMwZTliLWViZDQtNDQ1
MC04Y2UwLTlmNDAzNWNhNjJmMScgJ09wYXF1ZVJlZjowYjEzMmNhNi1iOGU3LWMxMWYtNmZmZi1k
ZWMwODQzMmNhZmUnKSkpCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVn
fGc2eGVudGVzdHw4OXx4YXBpIGV2ZW50cyBEOmI2NDk3ZTJhOGIxNXxtc2NnZW5dIHhhcGk9Pnhh
cGkgW2xhYmVsPSJldmVudC5mcm9tIl07Cj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFw
aTogW2RlYnVnfGc2eGVudGVzdHw0Mzg1IFVOSVggL3Zhci9saWIveGNwL3hhcGl8fGR1bW15dGFz
a2hlbHBlcl0gdGFzayBkaXNwYXRjaDpldmVudC5mcm9tIEQ6YjEwZGRjMmI1Nzk2IGNyZWF0ZWQg
YnkgdGFzayBEOmI2NDk3ZTJhOGIxNQo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6
IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMyBJTkVUIDo6OjgwfFZNLmltcG9ydCAoY2xlYW51cCkgUjow
OWRkOWM3Njg0NTB8bXNjZ2VuXSB4YXBpPT54YXBpIFtsYWJlbD0iVk0uZGVzdHJveSJdOwo+PiBE
ZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM4NiBVTklY
IC92YXIvbGliL3hjcC94YXBpfHxkdW1teXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6Vk0uZGVz
dHJveSBEOjQ2YjY5ZDgxYTU2ZiBjcmVhdGVkIGJ5IHRhc2sgUjowOWRkOWM3Njg0NTAKPj4gRGVj
IDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbIGluZm98ZzZ4ZW50ZXN0fDQzODYgVU5JWCAv
dmFyL2xpYi94Y3AveGFwaXxkaXNwYXRjaDpWTS5kZXN0cm95IEQ6NDZiNjlkODFhNTZmfHRhc2to
ZWxwZXJdIHRhc2sgVk0uZGVzdHJveSBSOjQzNTc3YzQyZGQwOSAodXVpZDphMGI4MGJiYS0yNDlh
LTQ0MzktODQyNC0xOTY1ZWZiMTk0NTkpIGNyZWF0ZWQgKHRyYWNraWQ9ZWYzY2Q0NzQ1ZjFiNDNi
NzdhOTlhY2ZlM2FmYmFlOGYpIGJ5IHRhc2sgUjowOWRkOWM3Njg0NTAKPj4gRGVjIDMwIDA2OjUx
OjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzODYgVU5JWCAvdmFyL2xpYi94
Y3AveGFwaXxWTS5kZXN0cm95IFI6NDM1NzdjNDJkZDA5fGF1ZGl0XSBWTS5kZXN0cm95OiBWTSA9
ICczYjE2YzJlNy0wOGU3LTNjMGYtNDUyZC00NThjM2EwMDg2ODUgKFhPQSAzLjYgQmFzaWMpJwo+
PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhjcC1ycmRkOiBbZGVidWd8ZzZ4ZW50ZXN0fDEz
MjUgdW5peF9ycGN8fGh0dHBdIFJlcXVlc3QgeyBmcmFtZSA9IGZhbHNlOyBtZXRob2QgPSBQT1NU
OyB1cmkgPSAvdmFyL2xpYi94Y3AveGNwLXJyZGQ7IHF1ZXJ5ID0gWyAgXTsgY29udGVudF9sZW5n
dGggPSBbIDI2NiBdOyB0cmFuc2ZlciBlbmNvZGluZyA9IDsgdmVyc2lvbiA9IDEuMTsgY29va2ll
ID0gWyA9IF07IHRhc2sgPSA7IHN1YnRhc2tfb2YgPSA7IGNvbnRlbnQtdHlwZSA9IDsgaG9zdCA9
IDsgdXNlcl9hZ2VudCA9IC91c3Ivc2Jpbi94YXBpIH0KPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVu
dGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzODYgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxW
TS5kZXN0cm95IFI6NDM1NzdjNDJkZDA5fHhhcGldIFZNLmRlc3Ryb3k6IGRlbGV0aW5nIERCIHJl
Y29yZHMKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0
fDQzODYgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWTS5kZXN0cm95IFI6NDM1NzdjNDJkZDA5fHhh
cGldIFJhaXNlZCBhdCBmaWxlIFwiZGJfY2FjaGVfdHlwZXMubWxcIiwgbGluZSAxMDcsIGNoYXJh
Y3RlcnMgMjctNjlcbkNhbGxlZCBmcm9tIGZpbGUgXCJkYl9jYWNoZV9pbXBsLm1sXCIsIGxpbmUg
MjQwLCBjaGFyYWN0ZXJzIDExLTQ0XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4
dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuCj4+IERlYyAzMCAwNjo1MTozOCBnNnhl
bnRlc3QgeGFwaTogWzIwMTQxMjMwVDA1OjUxOjM4LjcxOFp8YXVkaXR8ZzZ4ZW50ZXN0fDQzODYg
VU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWTS5kZXN0cm95IFI6NDM1NzdjNDJkZDA5fGF1ZGl0XSAo
J3RyYWNraWQ9ZWYzY2Q0NzQ1ZjFiNDNiNzdhOTlhY2ZlM2FmYmFlOGYnICdMT0NBTF9TVVBFUlVT
RVInICdPcGFxdWVSZWY6YmMwMDFkNTctNjVjZS04YjJiLTc0YjQtY2Q3MTk3NjI3MmMwJyAnQUxM
T1dFRCcgJ09LJyAnQVBJJyAnVk0uZGVzdHJveScgKCgnc2VsZicgJ1hPQSAzLjYgQmFzaWMnICcz
YjE2YzJlNy0wOGU3LTNjMGYtNDUyZC00NThjM2EwMDg2ODUnICdPcGFxdWVSZWY6ZWMzN2VkODct
ZTdjNy1mNjdhLWUwYWUtOGJhNzA3OWY0Zjg0JykpKQo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50
ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMyBJTkVUIDo6OjgwfFZNLmltcG9ydCAoY2xl
YW51cCkgUjowOWRkOWM3Njg0NTB8bXNjZ2VuXSB4YXBpPT54YXBpIFtsYWJlbD0iVkRJLmRlc3Ry
b3kiXTsKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0
fDQzODcgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0YXNrIGRpc3Bh
dGNoOlZESS5kZXN0cm95IEQ6NTM5NWQ3ZTI5ZDg0IGNyZWF0ZWQgYnkgdGFzayBSOjA5ZGQ5Yzc2
ODQ1MAo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFsgaW5mb3xnNnhlbnRlc3R8
NDM4NyBVTklYIC92YXIvbGliL3hjcC94YXBpfGRpc3BhdGNoOlZESS5kZXN0cm95IEQ6NTM5NWQ3
ZTI5ZDg0fHRhc2toZWxwZXJdIHRhc2sgVkRJLmRlc3Ryb3kgUjplYjczYmE5MTcwODAgKHV1aWQ6
MjZiYTg4ZmEtMjhmMC1mMjJlLWU0MTgtYWU0NjAxMTVjNGFmKSBjcmVhdGVkICh0cmFja2lkPWVm
M2NkNDc0NWYxYjQzYjc3YTk5YWNmZTNhZmJhZThmKSBieSB0YXNrIFI6MDlkZDljNzY4NDUwCj4+
IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0Mzg3IFVO
SVggL3Zhci9saWIveGNwL3hhcGl8VkRJLmRlc3Ryb3kgUjplYjczYmE5MTcwODB8YXVkaXRdIFZE
SS5kZXN0cm95OiBWREkgPSAnY2FlMzBlOWItZWJkNC00NDUwLThjZTAtOWY0MDM1Y2E2MmYxJwo+
PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM4NyBV
TklYIC92YXIvbGliL3hjcC94YXBpfFZESS5kZXN0cm95IFI6ZWI3M2JhOTE3MDgwfHhhcGldIE1h
cmtpbmcgU1IgZm9yIFZESS5kZXN0cm95ICh0YXNrPU9wYXF1ZVJlZjplYjczYmE5MS03MDgwLWRj
NzQtOGVjMS1iZWNhMDE0NmJmMGQpCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTog
WyBpbmZvfGc2eGVudGVzdHw0Mzg3IFVOSVggL3Zhci9saWIveGNwL3hhcGl8VkRJLmRlc3Ryb3kg
UjplYjczYmE5MTcwODB8c3RvcmFnZV9pbXBsXSBWREkuZGVzdHJveSBkYmc6T3BhcXVlUmVmOmVi
NzNiYTkxLTcwODAtZGM3NC04ZWMxLWJlY2EwMTQ2YmYwZCBzcjo3ODdiMDg3NC04ZThiLWU3ZDgt
OGJhOS03NGY1NWZmMmVhMTYgdmRpOmNhZTMwZTliLWViZDQtNDQ1MC04Y2UwLTlmNDAzNWNhNjJm
MQo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFsgaW5mb3xnNnhlbnRlc3R8NDM4
NyBVTklYIC92YXIvbGliL3hjcC94YXBpfFZESS5kZXN0cm95IFI6ZWI3M2JhOTE3MDgwfHN0b3Jh
Z2VfaW1wbF0gQXR0ZW1wdGluZyB0byBkZXN0cm95IGRhdGFwYXRoIGRwOnZiZC8wL3h2ZGEgc3I6
Nzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2IHZkaTpjYWUzMGU5Yi1lYmQ0LTQ0
NTAtOGNlMC05ZjQwMzVjYTYyZjEKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBb
ZGVidWd8ZzZ4ZW50ZXN0fDQzODh8fGR1bW15dGFza2hlbHBlcl0gdGFzayBWREkuZGV0YWNoIEQ6
MTM2Mzg2NjM2NzAxIGNyZWF0ZWQgYnkgdGFzayBSOmViNzNiYTkxNzA4MAo+PiBEZWMgMzAgMDY6
NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM4OHxWREkuZGV0YWNoIEQ6
MTM2Mzg2NjM2NzAxfHNtXSBTTSBuZnMgdmRpX2RldGFjaCBzcj1PcGFxdWVSZWY6NTIxMjMxZDYt
ZGYzYi03OTBiLTFlMjItYjM0NGE4M2Q5ZDM5IHZkaT1PcGFxdWVSZWY6MGIxMzJjYTYtYjhlNy1j
MTFmLTZmZmYtZGVjMDg0MzJjYWZlCj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTog
WyBpbmZvfGc2eGVudGVzdHw0Mzg4fHNtX2V4ZWMgRDo4NDE4YzJlNzJjYzd8eGFwaV0gU2Vzc2lv
bi5jcmVhdGUgdHJhY2tpZD0xZDgyY2NmMGE2NjE5NDMwMDk4YTUzNzI3MzcxZjg1NSBwb29sPWZh
bHNlIHVuYW1lPSBvcmlnaW5hdG9yPSBpc19sb2NhbF9zdXBlcnVzZXI9dHJ1ZSBhdXRoX3VzZXJf
c2lkPSBwYXJlbnQ9dHJhY2tpZD05ODM0ZjVhZjQxYzk2NGUyMjVmMjQyNzlhZWZlNGU0OQo+PiBE
ZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM4OHxzbV9l
eGVjIEQ6ODQxOGMyZTcyY2M3fG1zY2dlbl0geGFwaT0+eGFwaSBbbGFiZWw9InNlc3Npb24uZ2V0
X3V1aWQiXTsKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50
ZXN0fDQzODkgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0YXNrIGRp
c3BhdGNoOnNlc3Npb24uZ2V0X3V1aWQgRDplNmNhZmNlZjFkNjEgY3JlYXRlZCBieSB0YXNrIEQ6
ODQxOGMyZTcyY2M3Cj4+IERlYyAzMCAwNjo1MTozOCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2
eGVudGVzdHw0Mzg4fHNtX2V4ZWMgRDo4NDE4YzJlNzJjYzd8bXNjZ2VuXSBzbWFwaXYyPT5zbWFw
aXYxIFtsYWJlbD0idmRpX2RldGFjaCJdOwo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4ZW50ZXN0IHhh
cGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM5MCBVTklYIC92YXIvbGliL3hjcC94YXBpfHxkdW1teXRh
c2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6aG9zdC5nZXRfb3RoZXJfY29uZmlnIEQ6MzNiMGI3NjM2
ZGM5IGNyZWF0ZWQgYnkgdGFzayBEOjEzNjM4NjYzNjcwMQo+PiBEZWMgMzAgMDY6NTE6MzggZzZ4
ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM5MSBVTklYIC92YXIvbGliL3hjcC94YXBp
fHxkdW1teXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6U1IuZ2V0X3NtX2NvbmZpZyBEOmQ1ZjFj
NmRmMzJlYiBjcmVhdGVkIGJ5IHRhc2sgRDoxMzYzODY2MzY3MDEKPj4gRGVjIDMwIDA2OjUxOjM4
IGc2eGVudGVzdCBTTTogWzUzMjJdIGxvY2s6IGFjcXVpcmVkIC92YXIvbG9jay9zbS83ODdiMDg3
NC04ZThiLWU3ZDgtOGJhOS03NGY1NWZmMmVhMTYvc3IKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVu
dGVzdCBTTTogWzUzMjJdIFsnL3Vzci9zYmluL3RkLXV0aWwnLCAncXVlcnknLCAndmhkJywgJy12
cGYnLCAnL3Zhci9ydW4vc3ItbW91bnQvNzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJl
YTE2L2NhZTMwZTliLWViZDQtNDQ1MC04Y2UwLTlmNDAzNWNhNjJmMS52aGQnXQo+PiBEZWMgMzAg
MDY6NTE6MzggZzZ4ZW50ZXN0IFNNOiBbNTMyMl0gICBwcmVhZCBTVUNDRVNTCj4+IERlYyAzMCAw
Njo1MTozOCBnNnhlbnRlc3QgU006IFs1MzIyXSB2ZGlfZGV0YWNoIHsnc3JfdXVpZCc6ICc3ODdi
MDg3NC04ZThiLWU3ZDgtOGJhOS03NGY1NWZmMmVhMTYnLCAnc3VidGFza19vZic6ICdEdW1teVJl
Zjp8MTM2Mzg2NjMtNjcwMS0xMDkxLTU3ZDEtY2JhNjgzMDRlZjZhfFZESS5kZXRhY2gnLCAndmRp
X3JlZic6ICdPcGFxdWVSZWY6MGIxMzJjYTYtYjhlNy1jMTFmLTZmZmYtZGVjMDg0MzJjYWZlJywg
J3ZkaV9vbl9ib290JzogJ3BlcnNpc3QnLCAnYXJncyc6IFtdLCAndmRpX2xvY2F0aW9uJzogJ2Nh
ZTMwZTliLWViZDQtNDQ1MC04Y2UwLTlmNDAzNWNhNjJmMScsICdob3N0X3JlZic6ICdPcGFxdWVS
ZWY6YmMwMDFkNTctNjVjZS04YjJiLTc0YjQtY2Q3MTk3NjI3MmMwJywgJ3Nlc3Npb25fcmVmJzog
J09wYXF1ZVJlZjo4ZjZmZDVlZC05Yjg4LTBlY2QtZDBkYy0yNjUyZWJlNTQ5NjknLCAnZGV2aWNl
X2NvbmZpZyc6IHsnU1JtYXN0ZXInOiAndHJ1ZScsICdzZXJ2ZXJwYXRoJzogJy9tbnQvemJpb3Ju
aWsvdGVzdHZvbC8nLCAnc2VydmVyJzogJzEyNy4wLjAuMSd9LCAnY29tbWFuZCc6ICd2ZGlfZGV0
YWNoJywgJ3ZkaV9hbGxvd19jYWNoaW5nJzogJ2ZhbHNlJywgJ3NyX3JlZic6ICdPcGFxdWVSZWY6
NTIxMjMxZDYtZGYzYi03OTBiLTFlMjItYjM0NGE4M2Q5ZDM5JywgJ3ZkaV91dWlkJzogJ2NhZTMw
ZTliLWViZDQtNDQ1MC04Y2UwLTlmNDAzNWNhNjJmMSd9Cj4+IERlYyAzMCAwNjo1MTozOCBnNnhl
bnRlc3QgU006IFs1MzIyXSBsb2NrOiBjbG9zZWQgL3Zhci9sb2NrL3NtL2NhZTMwZTliLWViZDQt
NDQ1MC04Y2UwLTlmNDAzNWNhNjJmMS92ZGkKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBT
TTogWzUzMjJdIGxvY2s6IHJlbGVhc2VkIC92YXIvbG9jay9zbS83ODdiMDg3NC04ZThiLWU3ZDgt
OGJhOS03NGY1NWZmMmVhMTYvc3IKPj4gRGVjIDMwIDA2OjUxOjM4IGc2eGVudGVzdCBTTTogWzUz
MjJdIGxvY2s6IGNsb3NlZCAvdmFyL2xvY2svc20vNzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRm
NTVmZjJlYTE2L3NyCj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogWyBpbmZvfGc2
eGVudGVzdHw0Mzg4fHNtX2V4ZWMgRDo4NDE4YzJlNzJjYzd8eGFwaV0gU2Vzc2lvbi5kZXN0cm95
IHRyYWNraWQ9MWQ4MmNjZjBhNjYxOTQzMDA5OGE1MzcyNzM3MWY4NTUKPj4gRGVjIDMwIDA2OjUx
OjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzODcgVU5JWCAvdmFyL2xpYi94
Y3AveGFwaXxWREkuZGVzdHJveSBSOmViNzNiYTkxNzA4MHxzdG9yYWdlX2ltcGxdIGRiZzpPcGFx
dWVSZWY6ZWI3M2JhOTEtNzA4MC1kYzc0LThlYzEtYmVjYTAxNDZiZjBkIGRwOnZiZC8wL3h2ZGEg
c3I6Nzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2IHZkaTpjYWUzMGU5Yi1lYmQ0
LTQ0NTAtOGNlMC05ZjQwMzVjYTYyZjEgc3VwZXJzdGF0ZTpkZXRhY2hlZAo+PiBEZWMgMzAgMDY6
NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM5Mnx8ZHVtbXl0YXNraGVs
cGVyXSB0YXNrIFZESS5kZXN0cm95IEQ6MTFmZGExYTE1MjJhIGNyZWF0ZWQgYnkgdGFzayBSOmVi
NzNiYTkxNzA4MAo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhl
bnRlc3R8NDM5MnxWREkuZGVzdHJveSBEOjExZmRhMWExNTIyYXxzbV0gU00gbmZzIHZkaV9kZWxl
dGUgc3I9T3BhcXVlUmVmOjUyMTIzMWQ2LWRmM2ItNzkwYi0xZTIyLWIzNDRhODNkOWQzOSB2ZGk9
T3BhcXVlUmVmOjBiMTMyY2E2LWI4ZTctYzExZi02ZmZmLWRlYzA4NDMyY2FmZQo+PiBEZWMgMzAg
MDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFsgaW5mb3xnNnhlbnRlc3R8NDM5MnxzbV9leGVjIEQ6
NGJhOTNkYTc4NjM1fHhhcGldIFNlc3Npb24uY3JlYXRlIHRyYWNraWQ9N2JjZTg4OTJiNmY4NGYy
ZmU3ZGZiY2U1MzI0NjhhYmYgcG9vbD1mYWxzZSB1bmFtZT0gb3JpZ2luYXRvcj0gaXNfbG9jYWxf
c3VwZXJ1c2VyPXRydWUgYXV0aF91c2VyX3NpZD0gcGFyZW50PXRyYWNraWQ9OTgzNGY1YWY0MWM5
NjRlMjI1ZjI0Mjc5YWVmZTRlNDkKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBb
ZGVidWd8ZzZ4ZW50ZXN0fDQzOTJ8c21fZXhlYyBEOjRiYTkzZGE3ODYzNXxtc2NnZW5dIHhhcGk9
PnhhcGkgW2xhYmVsPSJzZXNzaW9uLmdldF91dWlkIl07Cj4+IERlYyAzMCAwNjo1MTozOSBnNnhl
bnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzkzIFVOSVggL3Zhci9saWIveGNwL3hhcGl8
fGR1bW15dGFza2hlbHBlcl0gdGFzayBkaXNwYXRjaDpzZXNzaW9uLmdldF91dWlkIEQ6M2FkZDFh
ODY0YzExIGNyZWF0ZWQgYnkgdGFzayBEOjRiYTkzZGE3ODYzNQo+PiBEZWMgMzAgMDY6NTE6Mzkg
ZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM5MnxzbV9leGVjIEQ6NGJhOTNkYTc4
NjM1fG1zY2dlbl0gc21hcGl2Mj0+c21hcGl2MSBbbGFiZWw9InZkaV9kZWxldGUiXTsKPj4gRGVj
IDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzOTQgVU5JWCAv
dmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0YXNrIGRpc3BhdGNoOmhvc3QuZ2V0
X290aGVyX2NvbmZpZyBEOjYyNDJkM2VhNTFkYiBjcmVhdGVkIGJ5IHRhc2sgRDoxMWZkYTFhMTUy
MmEKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQz
OTUgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0YXNrIGRpc3BhdGNo
OlNSLmdldF9zbV9jb25maWcgRDphMjcxYmYzZThhYjYgY3JlYXRlZCBieSB0YXNrIEQ6MTFmZGEx
YTE1MjJhCj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgU006IFs1MzMwXSBsb2NrOiBhY3F1
aXJlZCAvdmFyL2xvY2svc20vNzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2L3Ny
Cj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgU006IFs1MzMwXSBbJy91c3Ivc2Jpbi90ZC11
dGlsJywgJ3F1ZXJ5JywgJ3ZoZCcsICctdnBmJywgJy92YXIvcnVuL3NyLW1vdW50Lzc4N2IwODc0
LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWExNi9jYWUzMGU5Yi1lYmQ0LTQ0NTAtOGNlMC05ZjQw
MzVjYTYyZjEudmhkJ10KPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCBTTTogWzUzMzBdICAg
cHJlYWQgU1VDQ0VTUwo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNNOiBbNTMzMF0gdmRp
X2RlbGV0ZSB7J3NyX3V1aWQnOiAnNzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2
JywgJ3N1YnRhc2tfb2YnOiAnRHVtbXlSZWY6fDExZmRhMWExLTUyMmEtNWMyZS1mY2NjLWM0YjRh
M2E2MDYwMHxWREkuZGVzdHJveScsICd2ZGlfcmVmJzogJ09wYXF1ZVJlZjowYjEzMmNhNi1iOGU3
LWMxMWYtNmZmZi1kZWMwODQzMmNhZmUnLCAndmRpX29uX2Jvb3QnOiAncGVyc2lzdCcsICdhcmdz
JzogW10sICd2ZGlfbG9jYXRpb24nOiAnY2FlMzBlOWItZWJkNC00NDUwLThjZTAtOWY0MDM1Y2E2
MmYxJywgJ2hvc3RfcmVmJzogJ09wYXF1ZVJlZjpiYzAwMWQ1Ny02NWNlLThiMmItNzRiNC1jZDcx
OTc2MjcyYzAnLCAnc2Vzc2lvbl9yZWYnOiAnT3BhcXVlUmVmOjNhMTVjZTk3LTAzMTYtZjA0ZS1l
OTNmLWE3NzI2ZjU2M2U1MScsICdkZXZpY2VfY29uZmlnJzogeydTUm1hc3Rlcic6ICd0cnVlJywg
J3NlcnZlcnBhdGgnOiAnL21udC96Ymlvcm5pay90ZXN0dm9sLycsICdzZXJ2ZXInOiAnMTI3LjAu
MC4xJ30sICdjb21tYW5kJzogJ3ZkaV9kZWxldGUnLCAndmRpX2FsbG93X2NhY2hpbmcnOiAnZmFs
c2UnLCAnc3JfcmVmJzogJ09wYXF1ZVJlZjo1MjEyMzFkNi1kZjNiLTc5MGItMWUyMi1iMzQ0YTgz
ZDlkMzknLCAndmRpX3V1aWQnOiAnY2FlMzBlOWItZWJkNC00NDUwLThjZTAtOWY0MDM1Y2E2MmYx
J30KPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCBTTTogWzUzMzBdIFsnL3Vzci9iaW4vdmhk
LXV0aWwnLCAnc2V0JywgJy0tZGVidWcnLCAnLW4nLCAnL3Zhci9ydW4vc3ItbW91bnQvNzg3YjA4
NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2L2NhZTMwZTliLWViZDQtNDQ1MC04Y2UwLTlm
NDAzNWNhNjJmMS52aGQnLCAnLWYnLCAnaGlkZGVuJywgJy12JywgJzEnXQo+PiBEZWMgMzAgMDY6
NTE6MzkgZzZ4ZW50ZXN0IFNNOiBbNTMzMF0gICBwcmVhZCBTVUNDRVNTCj4+IERlYyAzMCAwNjo1
MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0Mzk2IFVOSVggL3Zhci9saWIv
eGNwL3hhcGl8fGR1bW15dGFza2hlbHBlcl0gdGFzayBkaXNwYXRjaDpWREkuZ2V0X2J5X3V1aWQg
RDo1NTlmNzA3YTE4MzUgY3JlYXRlZCBieSB0YXNrIEQ6MTFmZGExYTE1MjJhCj4+IERlYyAzMCAw
Njo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0Mzk3IFVOSVggL3Zhci9s
aWIveGNwL3hhcGl8fGR1bW15dGFza2hlbHBlcl0gdGFzayBkaXNwYXRjaDpWREkuZGJfZm9yZ2V0
IEQ6NzI5NGZjYjI3NGVmIGNyZWF0ZWQgYnkgdGFzayBEOjExZmRhMWExNTIyYQo+PiBEZWMgMzAg
MDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFsgaW5mb3xnNnhlbnRlc3R8NDM5NyBVTklYIC92YXIv
bGliL3hjcC94YXBpfGRpc3BhdGNoOlZESS5kYl9mb3JnZXQgRDo3Mjk0ZmNiMjc0ZWZ8dGFza2hl
bHBlcl0gdGFzayBWREkuZGJfZm9yZ2V0IFI6NzIxNTUyMDU0Y2M4ICh1dWlkOmIyMDIzNzRhLTE0
OGMtNWQzYS1mODE2LTI2Y2VlNTAxMTgzMCkgY3JlYXRlZCAodHJhY2tpZD03YmNlODg5MmI2Zjg0
ZjJmZTdkZmJjZTUzMjQ2OGFiZikgYnkgdGFzayBEOjExZmRhMWExNTIyYQo+PiBEZWMgMzAgMDY6
NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDM5NyBVTklYIC92YXIvbGli
L3hjcC94YXBpfFZESS5kYl9mb3JnZXQgUjo3MjE1NTIwNTRjYzh8eGFwaV0gZGJfZm9yZ2V0IHV1
aWQ9Y2FlMzBlOWItZWJkNC00NDUwLThjZTAtOWY0MDM1Y2E2MmYxCj4+IERlYyAzMCAwNjo1MToz
OSBnNnhlbnRlc3QgeGFwaTogWzIwMTQxMjMwVDA1OjUxOjM5LjMwN1p8YXVkaXR8ZzZ4ZW50ZXN0
fDQzOTcgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxWREkuZGJfZm9yZ2V0IFI6NzIxNTUyMDU0Y2M4
fGF1ZGl0XSAoJ3RyYWNraWQ9N2JjZTg4OTJiNmY4NGYyZmU3ZGZiY2U1MzI0NjhhYmYnICdMT0NB
TF9TVVBFUlVTRVInICdfX3NtX19iYWNrZW5kJyAnQUxMT1dFRCcgJ09LJyAnQVBJJyAnVkRJLmRi
X2ZvcmdldCcgKCgndmRpJyAnJyAnJyAnT3BhcXVlUmVmOjBiMTMyY2E2LWI4ZTctYzExZi02ZmZm
LWRlYzA4NDMyY2FmZScpKSkKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVi
dWd8ZzZ4ZW50ZXN0fDQzOTggVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVy
XSB0YXNrIGRpc3BhdGNoOlNSLmdldF92aXJ0dWFsX2FsbG9jYXRpb24gRDowYTYzYzYxMDZmYzkg
Y3JlYXRlZCBieSB0YXNrIEQ6MTFmZGExYTE1MjJhCj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRl
c3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0Mzk5IFVOSVggL3Zhci9saWIveGNwL3hhcGl8fGR1
bW15dGFza2hlbHBlcl0gdGFzayBkaXNwYXRjaDpTUi5nZXRfYnlfdXVpZCBEOjcyNTRjNDhhNmIw
MCBjcmVhdGVkIGJ5IHRhc2sgRDoxMWZkYTFhMTUyMmEKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVu
dGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQ0MDAgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8
ZHVtbXl0YXNraGVscGVyXSB0YXNrIGRpc3BhdGNoOlNSLnNldF92aXJ0dWFsX2FsbG9jYXRpb24g
RDoxZTc4ZTJmZWEzZGMgY3JlYXRlZCBieSB0YXNrIEQ6MTFmZGExYTE1MjJhCj4+IERlYyAzMCAw
Njo1MTozOSBnNnhlbnRlc3QgeGFwaTogWzIwMTQxMjMwVDA1OjUxOjM5LjM0MVp8YXVkaXR8ZzZ4
ZW50ZXN0fDQ0MDAgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXxTUi5zZXRfdmlydHVhbF9hbGxvY2F0
aW9uIEQ6ZWYzMWVjMDA4YzQ1fGF1ZGl0XSAoJ3RyYWNraWQ9N2JjZTg4OTJiNmY4NGYyZmU3ZGZi
Y2U1MzI0NjhhYmYnICdMT0NBTF9TVVBFUlVTRVInICdfX3NtX19iYWNrZW5kJyAnQUxMT1dFRCcg
J09LJyAnQVBJJyAnU1Iuc2V0X3ZpcnR1YWxfYWxsb2NhdGlvbicgKCgnc2VsZicgJ2xvY2FsIG5m
cycgJzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWExNicgJ09wYXF1ZVJlZjo1MjEy
MzFkNi1kZjNiLTc5MGItMWUyMi1iMzQ0YTgzZDlkMzknKSkpCj4+IERlYyAzMCAwNjo1MTozOSBn
NnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0NDAxIFVOSVggL3Zhci9saWIveGNwL3hh
cGl8fGR1bW15dGFza2hlbHBlcl0gdGFzayBkaXNwYXRjaDpTUi5zZXRfcGh5c2ljYWxfc2l6ZSBE
OmVlYjQyY2ZhOWFlYiBjcmVhdGVkIGJ5IHRhc2sgRDoxMWZkYTFhMTUyMmEKPj4gRGVjIDMwIDA2
OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbMjAxNDEyMzBUMDU6NTE6MzkuMzQ1WnxhdWRpdHxnNnhl
bnRlc3R8NDQwMSBVTklYIC92YXIvbGliL3hjcC94YXBpfFNSLnNldF9waHlzaWNhbF9zaXplIEQ6
YjU4MzQ4ZjUzNjdhfGF1ZGl0XSAoJ3RyYWNraWQ9N2JjZTg4OTJiNmY4NGYyZmU3ZGZiY2U1MzI0
NjhhYmYnICdMT0NBTF9TVVBFUlVTRVInICdfX3NtX19iYWNrZW5kJyAnQUxMT1dFRCcgJ09LJyAn
QVBJJyAnU1Iuc2V0X3BoeXNpY2FsX3NpemUnICgoJ3NlbGYnICdsb2NhbCBuZnMnICc3ODdiMDg3
NC04ZThiLWU3ZDgtOGJhOS03NGY1NWZmMmVhMTYnICdPcGFxdWVSZWY6NTIxMjMxZDYtZGYzYi03
OTBiLTFlMjItYjM0NGE4M2Q5ZDM5JykpKQo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhh
cGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDQwMiBVTklYIC92YXIvbGliL3hjcC94YXBpfHxkdW1teXRh
c2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6U1Iuc2V0X3BoeXNpY2FsX3V0aWxpc2F0aW9uIEQ6YzUw
YWU0MDRlOTU3IGNyZWF0ZWQgYnkgdGFzayBEOjExZmRhMWExNTIyYQo+PiBEZWMgMzAgMDY6NTE6
MzkgZzZ4ZW50ZXN0IHhhcGk6IFsyMDE0MTIzMFQwNTo1MTozOS4zNDlafGF1ZGl0fGc2eGVudGVz
dHw0NDAyIFVOSVggL3Zhci9saWIveGNwL3hhcGl8U1Iuc2V0X3BoeXNpY2FsX3V0aWxpc2F0aW9u
IEQ6ZjkwMTVkZTIwMzAxfGF1ZGl0XSAoJ3RyYWNraWQ9N2JjZTg4OTJiNmY4NGYyZmU3ZGZiY2U1
MzI0NjhhYmYnICdMT0NBTF9TVVBFUlVTRVInICdfX3NtX19iYWNrZW5kJyAnQUxMT1dFRCcgJ09L
JyAnQVBJJyAnU1Iuc2V0X3BoeXNpY2FsX3V0aWxpc2F0aW9uJyAoKCdzZWxmJyAnbG9jYWwgbmZz
JyAnNzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2JyAnT3BhcXVlUmVmOjUyMTIz
MWQ2LWRmM2ItNzkwYi0xZTIyLWIzNDRhODNkOWQzOScpKSkKPj4gRGVjIDMwIDA2OjUxOjM5IGc2
eGVudGVzdCBTTTogWzUzMzBdIGxvY2s6IHRyaWVkIGxvY2sgL3Zhci9sb2NrL3NtLzc4N2IwODc0
LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWExNi9ydW5uaW5nLCBhY3F1aXJlZDogVHJ1ZSAoZXhp
c3RzOiBUcnVlKQo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNNOiBbNTMzMF0gbG9jazog
cmVsZWFzZWQgL3Zhci9sb2NrL3NtLzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWEx
Ni9ydW5uaW5nCj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgU006IFs1MzMwXSBLaWNraW5n
IEdDCj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgU01HQzogWzUzMzBdID09PSBTUiA3ODdi
MDg3NC04ZThiLWU3ZDgtOGJhOS03NGY1NWZmMmVhMTY6IGdjID09PQo+PiBEZWMgMzAgMDY6NTE6
MzkgZzZ4ZW50ZXN0IFNNR0M6IFs1MzQyXSBXaWxsIGZpbmlzaCBhcyBQSUQgWzUzNDNdCj4+IERl
YyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgU01HQzogWzUzMzBdIE5ldyBQSUQgWzUzNDJdCj4+IERl
YyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgU006IFs1MzMwXSBsb2NrOiBjbG9zZWQgL3Zhci9sb2Nr
L3NtLzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWExNi9ydW5uaW5nCj4+IERlYyAz
MCAwNjo1MTozOSBnNnhlbnRlc3QgU006IFs1MzMwXSBsb2NrOiByZWxlYXNlZCAvdmFyL2xvY2sv
c20vNzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2L3NyCj4+IERlYyAzMCAwNjo1
MTozOSBnNnhlbnRlc3QgU006IFs1MzMwXSBsb2NrOiBjbG9zZWQgL3Zhci9sb2NrL3NtLzc4N2Iw
ODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWExNi9zcgo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4
ZW50ZXN0IHhhcGk6IFsgaW5mb3xnNnhlbnRlc3R8NDQwMyBVTklYIC92YXIvbGliL3hjcC94YXBp
fHNlc3Npb24ubG9naW5fd2l0aF9wYXNzd29yZCBEOjA0NGY5OWNjY2Y5Nnx4YXBpXSBTZXNzaW9u
LmNyZWF0ZSB0cmFja2lkPTg3NWMzZTYwMWEwNDJkYjI3MTRmOWZiODNhZjlmY2Q3IHBvb2w9ZmFs
c2UgdW5hbWU9cm9vdCBvcmlnaW5hdG9yPSBpc19sb2NhbF9zdXBlcnVzZXI9dHJ1ZSBhdXRoX3Vz
ZXJfc2lkPSBwYXJlbnQ9dHJhY2tpZD05ODM0ZjVhZjQxYzk2NGUyMjVmMjQyNzlhZWZlNGU0OQo+
PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDQwMyBV
TklYIC92YXIvbGliL3hjcC94YXBpfHNlc3Npb24ubG9naW5fd2l0aF9wYXNzd29yZCBEOjA0NGY5
OWNjY2Y5Nnxtc2NnZW5dIHhhcGk9PnhhcGkgW2xhYmVsPSJzZXNzaW9uLmdldF91dWlkIl07Cj4+
IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0NDA0IFVO
SVggL3Zhci9saWIveGNwL3hhcGl8fGR1bW15dGFza2hlbHBlcl0gdGFzayBkaXNwYXRjaDpzZXNz
aW9uLmdldF91dWlkIEQ6YThkYTgxZDQyNWU4IGNyZWF0ZWQgYnkgdGFzayBEOjA0NGY5OWNjY2Y5
Ngo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNNR0M6IFs1MzQzXSBGb3VuZCAwIGNhY2hl
IGZpbGVzCj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogWyBpbmZvfGc2eGVudGVz
dHw0MzkyfHNtX2V4ZWMgRDo0YmE5M2RhNzg2MzV8eGFwaV0gU2Vzc2lvbi5kZXN0cm95IHRyYWNr
aWQ9N2JjZTg4OTJiNmY4NGYyZmU3ZGZiY2U1MzI0NjhhYmYKPj4gRGVjIDMwIDA2OjUxOjM5IGc2
eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzODcgVU5JWCAvdmFyL2xpYi94Y3AveGFw
aXxWREkuZGVzdHJveSBSOmViNzNiYTkxNzA4MHx4YXBpXSBVbm1hcmtpbmcgU1IgYWZ0ZXIgVkRJ
LmRlc3Ryb3kgKHRhc2s9T3BhcXVlUmVmOmViNzNiYTkxLTcwODAtZGM3NC04ZWMxLWJlY2EwMTQ2
YmYwZCkKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCBTTTogWzUzNDNdIGxvY2s6IHRyaWVk
IGxvY2sgL3Zhci9sb2NrL3NtLzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWExNi9z
ciwgYWNxdWlyZWQ6IFRydWUgKGV4aXN0czogVHJ1ZSkKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVu
dGVzdCB4YXBpOiBbMjAxNDEyMzBUMDU6NTE6MzkuNDU3WnxhdWRpdHxnNnhlbnRlc3R8NDM4NyBV
TklYIC92YXIvbGliL3hjcC94YXBpfFZESS5kZXN0cm95IFI6ZWI3M2JhOTE3MDgwfGF1ZGl0XSAo
J3RyYWNraWQ9ZWYzY2Q0NzQ1ZjFiNDNiNzdhOTlhY2ZlM2FmYmFlOGYnICdMT0NBTF9TVVBFUlVT
RVInICdPcGFxdWVSZWY6YmMwMDFkNTctNjVjZS04YjJiLTc0YjQtY2Q3MTk3NjI3MmMwJyAnQUxM
T1dFRCcgJ09LJyAnQVBJJyAnVkRJLmRlc3Ryb3knICgoJ3NlbGYnICdYT0EgU3lzdGVtJyAnY2Fl
MzBlOWItZWJkNC00NDUwLThjZTAtOWY0MDM1Y2E2MmYxJyAnT3BhcXVlUmVmOjBiMTMyY2E2LWI4
ZTctYzExZi02ZmZmLWRlYzA4NDMyY2FmZScpKSkKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVz
dCBTTTogWzUzNDNdIFsnL3Vzci9iaW4vdmhkLXV0aWwnLCAnc2NhbicsICctZicsICctYycsICct
bScsICcvdmFyL3J1bi9zci1tb3VudC83ODdiMDg3NC04ZThiLWU3ZDgtOGJhOS03NGY1NWZmMmVh
MTYvKi52aGQnXQo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhl
bnRlc3R8NDMwMyBJTkVUIDo6OjgwfFZNLmltcG9ydCAoY2xlYW51cCkgUjowOWRkOWM3Njg0NTB8
bXNjZ2VuXSB4YXBpPT54YXBpIFtsYWJlbD0ic2Vzc2lvbi5sb2dvdXQiXTsKPj4gRGVjIDMwIDA2
OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQ0MTUgVU5JWCAvdmFyL2xp
Yi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0YXNrIGRpc3BhdGNoOnNlc3Npb24ubG9nb3V0
IEQ6ZWQxNWE4NDY4MzNlIGNyZWF0ZWQgYnkgdGFzayBSOjA5ZGQ5Yzc2ODQ1MAo+PiBEZWMgMzAg
MDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFsgaW5mb3xnNnhlbnRlc3R8NDQxNSBVTklYIC92YXIv
bGliL3hjcC94YXBpfHNlc3Npb24ubG9nb3V0IEQ6Mjk0NDQ5YmUwYTU4fHhhcGldIFNlc3Npb24u
ZGVzdHJveSB0cmFja2lkPWVmM2NkNDc0NWYxYjQzYjc3YTk5YWNmZTNhZmJhZThmCj4+IERlYyAz
MCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzAzIElORVQgOjo6
ODB8Vk0gaW1wb3J0IFI6ZGJkYjBlZTVhZTE2fHhhcGldIFJhaXNlZCBhdCBmaWxlIFwiaW1wb3J0
Lm1sXCIsIGxpbmUgMTUyNSwgY2hhcmFjdGVycyAyMC0yMVxuQ2FsbGVkIGZyb20gZmlsZSBcImxp
Yi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFjdGVycyAyLTlcbgo+PiBEZWMgMzAg
MDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMyBJTkVUIDo6Ojgw
fFZNIGltcG9ydCBSOmRiZGIwZWU1YWUxNnxpbXBvcnRdIENsb3NpbmcgcGlwZXMKPj4gRGVjIDMw
IDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMDZ8fHhhcGldIFJh
aXNlZCBieSBwcmltaXRpdmUgb3BlcmF0aW9uIGF0IGZpbGUgXCJ1bml4Lm1sXCIsIGxpbmUgMjUy
LCBjaGFyYWN0ZXJzIDctMzRcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvdW5peGV4dC5tbFwiLCBs
aW5lIDIyMiwgY2hhcmFjdGVycyAxMy0zNFxuQ2FsbGVkIGZyb20gZmlsZSBcImltcG9ydC5tbFwi
LCBsaW5lIDEyNzMsIGNoYXJhY3RlcnMgMTItNTNcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvcGVy
dmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMgMi05XG4KPj4gRGVjIDMwIDA2OjUx
OjM5IGc2eGVudGVzdCBmb3JrZXhlY2Q6IFtlcnJvcnxnNnhlbnRlc3R8MHx8Zm9ya2V4ZWNkXSA1
MjE3ICgvYmluL25pY2UgLW4gMTkgL3Vzci9iaW4vaW9uaWNlIC1jIDMgL2Jpbi9nemlwIC0tZGVj
b21wcmVzcyAtLXN0ZG91dCAtLWZvcmNlKSBleGl0dGVkIHdpdGggY29kZSAxCj4+IERlYyAzMCAw
Njo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzA2fHx4YXBpXSBSYWlz
ZWQgYXQgZmlsZSBcInBlcnZhc2l2ZXMubWxcIiwgbGluZSAyMCwgY2hhcmFjdGVycyAyMi0zM1xu
Q2FsbGVkIGZyb20gZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyNiwgY2hhcmFj
dGVycyA0LTE0XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5l
IDIyLCBjaGFyYWN0ZXJzIDItOVxuCj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTog
W2RlYnVnfGc2eGVudGVzdHw0MzA2fHx4YXBpXSBSYWlzZWQgYXQgZmlsZSBcImxpYi9wZXJ2YXNp
dmVleHQubWxcIiwgbGluZSAyNiwgY2hhcmFjdGVycyAyMi0yNVxuQ2FsbGVkIGZyb20gZmlsZSBc
ImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFjdGVycyAyLTlcbgo+PiBEZWMg
MzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMyBJTkVUIDo6
OjgwfFZNIGltcG9ydCBSOmRiZGIwZWU1YWUxNnxiYWNrdHJhY2VdIFJhaXNlZCBhdCBmaWxlIFwi
aW1wb3J0Lm1sXCIsIGxpbmUgMTUyNSwgY2hhcmFjdGVycyAyMC0yMVxuQ2FsbGVkIGZyb20gZmls
ZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFjdGVycyAyLTlcblJlLXJh
aXNlZCBhdCBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFyYWN0ZXJz
IDIyLTI1XG5DYWxsZWQgZnJvbSBmaWxlIFwiaW1wb3J0Lm1sXCIsIGxpbmUgMTQ1OSwgY2hhcmFj
dGVycyA5LTEwMjNcblJlLXJhaXNlZCBhdCBmaWxlIFwiaW1wb3J0Lm1sXCIsIGxpbmUgMTU1NCwg
Y2hhcmFjdGVycyAxNC0xNVxuQ2FsbGVkIGZyb20gZmlsZSBcInNlcnZlcl9oZWxwZXJzLm1sXCIs
IGxpbmUgNzIsIGNoYXJhY3RlcnMgMTEtMjNcbgo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0
IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMyBJTkVUIDo6OjgwfFZNIGltcG9ydCBSOmRiZGIw
ZWU1YWUxNnxkaXNwYXRjaGVyXSBTZXJ2ZXJfaGVscGVycy5leGVjIGV4Y2VwdGlvbl9oYW5kbGVy
OiBHb3QgZXhjZXB0aW9uIFNSX0JBQ0tFTkRfRkFJTFVSRTogWyBub24temVybyBleGl0OyA7IFRy
YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KTojMDEyICBGaWxlICIvb3B0L3hlbnNvdXJj
ZS9zbS9ORlNTUiIsIGxpbmUgMjc4LCBpbiA8bW9kdWxlPiMwMTIgU1JDb21tYW5kLnJ1bihORlNT
UiwgRFJJVkVSX0lORk8pIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1hbmQucHki
LCBsaW5lIDM0NCwgaW4gcnVuIzAxMiAgICByZXQgPSBjbWQucnVuKHNyKSMwMTIgIEZpbGUgIi91
c3IvbGliL3hhcGkvc20vU1JDb21tYW5kLnB5IiwgbGluZSAxMTAsIGluIHJ1biMwMTIgICAgcmV0
dXJuIHNlbGYuX3J1bl9sb2NrZWQoc3IpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNv
bW1hbmQucHkiLCBsaW5lIDE1OSwgaW4gX3J1bl9sb2NrZWQjMDEyICAgIHJ2ID0gc2VsZi5fcnVu
KHNyLCB0YXJnZXQpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9TUkNvbW1hbmQucHkiLCBs
aW5lIDI2MywgaW4gX3J1biMwMTIgICAgd3JpdGFibGUsIGNhY2hpbmdfcGFyYW1zKSMwMTIgIEZp
bGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTQ4NiwgaW4gYWN0aXZhdGUj
MDEyICAgIGlmIHNlbGYuX2FjdGl2YXRlX2xvY2tlZChzcl91dWlkLCB2ZGlfdXVpZCwgb3B0aW9u
cyk6IzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA4MywgaW4g
d3JhcHBlciMwMTIgICAgcmV0ID0gb3Aoc2VsZiwgKmFyZ3MpIzAxMiAgRmlsZSAiL3Vzci9saWIv
eGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNTIyLCBpbiBfYWN0aXZhdGVfbG9ja2VkIzAxMiAg
ICBkZXZfcGF0aCA9IHNlbGYuX2FjdGl2YXRlKHNyX3V1aWQsIHZkaV91dWlkLCBvcHRpb25zKSMw
MTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTU2MCwgaW4gX2Fj
dGl2YXRlIzAxMiBzZWxmLl9nZXRfcG9vbF9jb25maWcoc3JfdXVpZCkuZ2V0KCJtZW0tcG9vbC1z
aXplIikpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxMjQz
LCBpbiBfdGFwX2FjdGl2YXRlIzAxMiB0YXBkaXNrID0gVGFwZGlzay5maW5kX2J5X3BhdGgocGh5
X3BhdGgpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA2OTAs
IGluIGZpbmRfYnlfcGF0aCMwMTIgcmV0dXJuIGNscy5maW5kKHBhdGg9cGF0aCkjMDEyICBGaWxl
ICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDY3OCwgaW4gZmluZCMwMTIgICAg
Zm91bmQgPSBsaXN0KGNscy5saXN0KCoqYXJncykpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9z
bS9ibGt0YXAyLnB5IiwgbGluZSA2NTMsIGluIGxpc3QjMDEyICAgIGZvciByb3cgaW4gVGFwQ3Rs
Lmxpc3QoKiphcmdzKTojMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBs
aW5lIDExOCwgaW4gbG9vcCMwMTIgICAgcmV0dXJuIGYoKl9fdCwgKipfX2QpIzAxMiAgRmlsZSAi
L3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAzNDgsIGluIGxpc3QjMDEyICAgIGlm
IGUuc3RhdHVzIGluIHRyYW5zaWVudDojMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3Rh
cDIucHkiLCBsaW5lIDE2MiwgaW4gX19nZXRhdHRyX18jMDEyICAgIHJldHVybiBvYmplY3QuX19n
ZXRhdHRyaWJ1dGVfXyhzZWxmLCBrZXkpIzAxMkF0dHJpYnV0ZUVycm9yOiAnQ29tbWFuZEZhaWx1
cmUnIG9iamVjdCBoYXMgbm8gYXR0cmlidXRlICdzdGF0dXMnIzAxMiBdCj4+IERlYyAzMCAwNjo1
MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzAzIElORVQgOjo6ODB8Vk0g
aW1wb3J0IFI6ZGJkYjBlZTVhZTE2fGRpc3BhdGNoZXJdIFJhaXNlZCBhdCBmaWxlIFwiaW1wb3J0
Lm1sXCIsIGxpbmUgMTUyNSwgY2hhcmFjdGVycyAyMC0yMVxuQ2FsbGVkIGZyb20gZmlsZSBcImxp
Yi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFjdGVycyAyLTlcblJlLXJhaXNlZCBh
dCBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFyYWN0ZXJzIDIyLTI1
XG5DYWxsZWQgZnJvbSBmaWxlIFwiaW1wb3J0Lm1sXCIsIGxpbmUgMTQ1OSwgY2hhcmFjdGVycyA5
LTEwMjNcblJlLXJhaXNlZCBhdCBmaWxlIFwiaW1wb3J0Lm1sXCIsIGxpbmUgMTU1NCwgY2hhcmFj
dGVycyAxNC0xNVxuQ2FsbGVkIGZyb20gZmlsZSBcInNlcnZlcl9oZWxwZXJzLm1sXCIsIGxpbmUg
NzIsIGNoYXJhY3RlcnMgMTEtMjNcbgo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6
IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMyBJTkVUIDo6OjgwfFZNIGltcG9ydCBSOmRiZGIwZWU1YWUx
NnxiYWNrdHJhY2VdIFJhaXNlZCBhdCBmaWxlIFwiaW1wb3J0Lm1sXCIsIGxpbmUgMTUyNSwgY2hh
cmFjdGVycyAyMC0yMVxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwg
bGluZSAyMiwgY2hhcmFjdGVycyAyLTlcblJlLXJhaXNlZCBhdCBmaWxlIFwibGliL3BlcnZhc2l2
ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFyYWN0ZXJzIDIyLTI1XG5DYWxsZWQgZnJvbSBmaWxlIFwi
aW1wb3J0Lm1sXCIsIGxpbmUgMTQ1OSwgY2hhcmFjdGVycyA5LTEwMjNcblJlLXJhaXNlZCBhdCBm
aWxlIFwiaW1wb3J0Lm1sXCIsIGxpbmUgMTU1NCwgY2hhcmFjdGVycyAxNC0xNVxuQ2FsbGVkIGZy
b20gZmlsZSBcInNlcnZlcl9oZWxwZXJzLm1sXCIsIGxpbmUgNzIsIGNoYXJhY3RlcnMgMTEtMjNc
bgo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNNOiBbNTM0M10gICBwcmVhZCBTVUNDRVNT
Cj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzAz
IElORVQgOjo6ODB8Vk0gaW1wb3J0IFI6ZGJkYjBlZTVhZTE2fHhhcGldIFJhaXNlZCBhdCBmaWxl
IFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGluZSA5MCwgY2hhcmFjdGVycyAxNC0xNVxuQ2FsbGVk
IGZyb20gZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFjdGVycyAy
LTlcbgo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8
NDMwMyBJTkVUIDo6OjgwfFZNIGltcG9ydCBSOmRiZGIwZWU1YWUxNnx0YXNraGVscGVyXSBmb3J3
YXJkZWQgdGFzayBkZXN0cm95ZWQKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBb
ZGVidWd8ZzZ4ZW50ZXN0fDQzMDMgSU5FVCA6Ojo4MHxWTS5pbXBvcnQgRDphYTBhMjhmZWJmMDZ8
eGFwaV0gUmFpc2VkIGF0IGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDkwLCBjaGFy
YWN0ZXJzIDE0LTE1XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBs
aW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuUmUtcmFpc2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZl
ZXh0Lm1sXCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJs
aWIvZGVidWcubWxcIiwgbGluZSA1NywgY2hhcmFjdGVycyAxNy0yMFxuUmUtcmFpc2VkIGF0IGZp
bGUgXCJsaWIvZGVidWcubWxcIiwgbGluZSA2MiwgY2hhcmFjdGVycyAxMC0xMVxuQ2FsbGVkIGZy
b20gZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFjdGVycyAyLTlc
bgo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMw
MyBJTkVUIDo6OjgwfFZNLmltcG9ydCBEOmFhMGEyOGZlYmYwNnx4YXBpXSBSYWlzZWQgYXQgZmls
ZSBcInNlcnZlcl9oZWxwZXJzLm1sXCIsIGxpbmUgOTAsIGNoYXJhY3RlcnMgMTQtMTVcbkNhbGxl
ZCBmcm9tIGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMg
Mi05XG5SZS1yYWlzZWQgYXQgZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyNiwg
Y2hhcmFjdGVycyAyMi0yNVxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9kZWJ1Zy5tbFwiLCBsaW5l
IDU3LCBjaGFyYWN0ZXJzIDE3LTIwXG5SZS1yYWlzZWQgYXQgZmlsZSBcImxpYi9kZWJ1Zy5tbFwi
LCBsaW5lIDYyLCBjaGFyYWN0ZXJzIDEwLTExXG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZh
c2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuUmUtcmFpc2VkIGF0IGZpbGUg
XCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxl
ZCBmcm9tIGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMg
Mi05XG4KPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0
fDQzMDMgSU5FVCA6Ojo4MHxWTS5pbXBvcnQgRDphYTBhMjhmZWJmMDZ8eGFwaV0gUmFpc2VkIGF0
IGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDkwLCBjaGFyYWN0ZXJzIDE0LTE1XG5D
YWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0
ZXJzIDItOVxuUmUtcmFpc2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUg
MjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvZGVidWcubWxcIiwg
bGluZSA1NywgY2hhcmFjdGVycyAxNy0yMFxuUmUtcmFpc2VkIGF0IGZpbGUgXCJsaWIvZGVidWcu
bWxcIiwgbGluZSA2MiwgY2hhcmFjdGVycyAxMC0xMVxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9w
ZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFjdGVycyAyLTlcblJlLXJhaXNlZCBhdCBm
aWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFyYWN0ZXJzIDIyLTI1XG5D
YWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0
ZXJzIDItOVxuUmUtcmFpc2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUg
MjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJ4YXBpX2h0dHAubWxcIiwg
bGluZSAxOTMsIGNoYXJhY3RlcnMgNC04MTBcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvcGVydmFz
aXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMgMi05XG4KPj4gRGVjIDMwIDA2OjUxOjM5
IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMDMgSU5FVCA6Ojo4MHxWTS5pbXBv
cnQgRDphYTBhMjhmZWJmMDZ8bXNjZ2VuXSB4YXBpPT54YXBpIFtsYWJlbD0ic2Vzc2lvbi5sb2dv
dXQiXTsKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbMjAxNDEyMzBUMDU6NTE6
MzkuNjE1WnxhdWRpdHxnNnhlbnRlc3R8NDMwMCBVTklYIC92YXIvbGliL3hjcC94YXBpfGV2ZW50
LnVucmVnaXN0ZXIgRDoyYmZjOTk1ZmM0OTN8YXVkaXRdICgndHJhY2tpZD0wOWE5ZjU4MjA1N2Fk
Mjc4MTZlNDNhNGQzYzE4YmYxYicgJ0xPQ0FMX1NVUEVSVVNFUicgJ3Jvb3QnICdBTExPV0VEJyAn
T0snICdBUEknICdldmVudC51bnJlZ2lzdGVyJyAoKSkKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVu
dGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQ0MTYgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8
ZHVtbXl0YXNraGVscGVyXSB0YXNrIGRpc3BhdGNoOnNlc3Npb24ubG9nb3V0IEQ6YjY3NmM1MjI3
Zjg3IGNyZWF0ZWQgYnkgdGFzayBEOmFhMGEyOGZlYmYwNgo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4
ZW50ZXN0IHhhcGk6IFsgaW5mb3xnNnhlbnRlc3R8NDQxNiBVTklYIC92YXIvbGliL3hjcC94YXBp
fHNlc3Npb24ubG9nb3V0IEQ6MWRjN2EyOWE4Y2RkfHhhcGldIFNlc3Npb24uZGVzdHJveSB0cmFj
a2lkPWNhMWUwZTAyZjFjNmY5ZmNjOTgwMzY4ZTcxMGQ4YzhiCj4+IERlYyAzMCAwNjo1MTozOSBn
NnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzAzIElORVQgOjo6ODB8Vk0uaW1wb3J0
IEQ6YWEwYTI4ZmViZjA2fGJhY2t0cmFjZV0gUmFpc2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZl
ZXh0Lm1sXCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJp
bXBvcnQubWxcIiwgbGluZSAxMzg3LCBjaGFyYWN0ZXJzIDIwLTEwMjNcbkNhbGxlZCBmcm9tIGZp
bGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDcyLCBjaGFyYWN0ZXJzIDExLTIzXG4KPj4g
RGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMDMgSU5F
VCA6Ojo4MHxWTS5pbXBvcnQgRDphYTBhMjhmZWJmMDZ8ZGlzcGF0Y2hlcl0gU2VydmVyX2hlbHBl
cnMuZXhlYyBleGNlcHRpb25faGFuZGxlcjogR290IGV4Y2VwdGlvbiBTUl9CQUNLRU5EX0ZBSUxV
UkU6IFsgbm9uLXplcm8gZXhpdDsgOyBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
IzAxMiAgRmlsZSAiL29wdC94ZW5zb3VyY2Uvc20vTkZTU1IiLCBsaW5lIDI3OCwgaW4gPG1vZHVs
ZT4jMDEyIFNSQ29tbWFuZC5ydW4oTkZTU1IsIERSSVZFUl9JTkZPKSMwMTIgIEZpbGUgIi91c3Iv
bGliL3hhcGkvc20vU1JDb21tYW5kLnB5IiwgbGluZSAzNDQsIGluIHJ1biMwMTIgICAgcmV0ID0g
Y21kLnJ1bihzcikjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxp
bmUgMTEwLCBpbiBydW4jMDEyICAgIHJldHVybiBzZWxmLl9ydW5fbG9ja2VkKHNyKSMwMTIgIEZp
bGUgIi91c3IvbGliL3hhcGkvc20vU1JDb21tYW5kLnB5IiwgbGluZSAxNTksIGluIF9ydW5fbG9j
a2VkIzAxMiAgICBydiA9IHNlbGYuX3J1bihzciwgdGFyZ2V0KSMwMTIgIEZpbGUgIi91c3IvbGli
L3hhcGkvc20vU1JDb21tYW5kLnB5IiwgbGluZSAyNjMsIGluIF9ydW4jMDEyICAgIHdyaXRhYmxl
LCBjYWNoaW5nX3BhcmFtcykjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHki
LCBsaW5lIDE0ODYsIGluIGFjdGl2YXRlIzAxMiAgICBpZiBzZWxmLl9hY3RpdmF0ZV9sb2NrZWQo
c3JfdXVpZCwgdmRpX3V1aWQsIG9wdGlvbnMpOiMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20v
YmxrdGFwMi5weSIsIGxpbmUgODMsIGluIHdyYXBwZXIjMDEyICAgIHJldCA9IG9wKHNlbGYsICph
cmdzKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTUyMiwg
aW4gX2FjdGl2YXRlX2xvY2tlZCMwMTIgICAgZGV2X3BhdGggPSBzZWxmLl9hY3RpdmF0ZShzcl91
dWlkLCB2ZGlfdXVpZCwgb3B0aW9ucykjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3Rh
cDIucHkiLCBsaW5lIDE1NjAsIGluIF9hY3RpdmF0ZSMwMTIgc2VsZi5fZ2V0X3Bvb2xfY29uZmln
KHNyX3V1aWQpLmdldCgibWVtLXBvb2wtc2l6ZSIpKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkv
c20vYmxrdGFwMi5weSIsIGxpbmUgMTI0MywgaW4gX3RhcF9hY3RpdmF0ZSMwMTIgdGFwZGlzayA9
IFRhcGRpc2suZmluZF9ieV9wYXRoKHBoeV9wYXRoKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkv
c20vYmxrdGFwMi5weSIsIGxpbmUgNjkwLCBpbiBmaW5kX2J5X3BhdGgjMDEyIHJldHVybiBjbHMu
ZmluZChwYXRoPXBhdGgpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5Iiwg
bGluZSA2NzgsIGluIGZpbmQjMDEyICAgIGZvdW5kID0gbGlzdChjbHMubGlzdCgqKmFyZ3MpKSMw
MTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgNjUzLCBpbiBsaXN0
IzAxMiAgICBmb3Igcm93IGluIFRhcEN0bC5saXN0KCoqYXJncyk6IzAxMiAgRmlsZSAiL3Vzci9s
aWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxMTgsIGluIGxvb3AjMDEyICAgIHJldHVybiBm
KCpfX3QsICoqX19kKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxp
bmUgMzQ4LCBpbiBsaXN0IzAxMiAgICBpZiBlLnN0YXR1cyBpbiB0cmFuc2llbnQ6IzAxMiAgRmls
ZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNjIsIGluIF9fZ2V0YXR0cl9f
IzAxMiAgICByZXR1cm4gb2JqZWN0Ll9fZ2V0YXR0cmlidXRlX18oc2VsZiwga2V5KSMwMTJBdHRy
aWJ1dGVFcnJvcjogJ0NvbW1hbmRGYWlsdXJlJyBvYmplY3QgaGFzIG5vIGF0dHJpYnV0ZSAnc3Rh
dHVzJyMwMTIgXQo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhl
bnRlc3R8NDMwMyBJTkVUIDo6OjgwfFZNLmltcG9ydCBEOmFhMGEyOGZlYmYwNnxkaXNwYXRjaGVy
XSBSYWlzZWQgYXQgZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyNiwgY2hhcmFj
dGVycyAyMi0yNVxuQ2FsbGVkIGZyb20gZmlsZSBcImltcG9ydC5tbFwiLCBsaW5lIDEzODcsIGNo
YXJhY3RlcnMgMjAtMTAyM1xuQ2FsbGVkIGZyb20gZmlsZSBcInNlcnZlcl9oZWxwZXJzLm1sXCIs
IGxpbmUgNzIsIGNoYXJhY3RlcnMgMTEtMjNcbgo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0
IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMyBJTkVUIDo6OjgwfFZNLmltcG9ydCBEOmFhMGEy
OGZlYmYwNnxiYWNrdHJhY2VdIFJhaXNlZCBhdCBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwi
LCBsaW5lIDI2LCBjaGFyYWN0ZXJzIDIyLTI1XG5DYWxsZWQgZnJvbSBmaWxlIFwiaW1wb3J0Lm1s
XCIsIGxpbmUgMTM4NywgY2hhcmFjdGVycyAyMC0xMDIzXG5DYWxsZWQgZnJvbSBmaWxlIFwic2Vy
dmVyX2hlbHBlcnMubWxcIiwgbGluZSA3MiwgY2hhcmFjdGVycyAxMS0yM1xuCj4+IERlYyAzMCAw
Njo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzAzIElORVQgOjo6ODB8
Vk0uaW1wb3J0IEQ6YWEwYTI4ZmViZjA2fHhhcGldIFJhaXNlZCBhdCBmaWxlIFwibGliL3BlcnZh
c2l2ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFyYWN0ZXJzIDIyLTI1XG5DYWxsZWQgZnJvbSBmaWxl
IFwiaW1wb3J0Lm1sXCIsIGxpbmUgMTM4NywgY2hhcmFjdGVycyAyMC0xMDIzXG5DYWxsZWQgZnJv
bSBmaWxlIFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGluZSA3MiwgY2hhcmFjdGVycyAxMS0yM1xu
UmUtcmFpc2VkIGF0IGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDkwLCBjaGFyYWN0
ZXJzIDE0LTE1XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5l
IDIyLCBjaGFyYWN0ZXJzIDItOVxuCj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTog
W2RlYnVnfGc2eGVudGVzdHw0MzAzIElORVQgOjo6ODB8fHhhcGldIFJhaXNlZCBhdCBmaWxlIFwi
bGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFyYWN0ZXJzIDIyLTI1XG5DYWxsZWQg
ZnJvbSBmaWxlIFwiaW1wb3J0Lm1sXCIsIGxpbmUgMTM4NywgY2hhcmFjdGVycyAyMC0xMDIzXG5D
YWxsZWQgZnJvbSBmaWxlIFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGluZSA3MiwgY2hhcmFjdGVy
cyAxMS0yM1xuUmUtcmFpc2VkIGF0IGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDkw
LCBjaGFyYWN0ZXJzIDE0LTE1XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5t
bFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuUmUtcmFpc2VkIGF0IGZpbGUgXCJsaWIvcGVy
dmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxlZCBmcm9tIGZp
bGUgXCJsaWIvZGVidWcubWxcIiwgbGluZSA1NywgY2hhcmFjdGVycyAxNy0yMFxuUmUtcmFpc2Vk
IGF0IGZpbGUgXCJsaWIvZGVidWcubWxcIiwgbGluZSA2MiwgY2hhcmFjdGVycyAxMC0xMVxuQ2Fs
bGVkIGZyb20gZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFjdGVy
cyAyLTlcbgo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtlcnJvcnxnNnhlbnRl
c3R8NDMwMyBJTkVUIDo6OjgwfHx4YXBpXSBVbmhhbmRsZWQgQXBpX2Vycm9ycy5TZXJ2ZXJfZXJy
b3IoU1JfQkFDS0VORF9GQUlMVVJFLCBbIG5vbi16ZXJvIGV4aXQ7IDsgVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOiMwMTIgIEZpbGUgIi9vcHQveGVuc291cmNlL3NtL05GU1NSIiwg
bGluZSAyNzgsIGluIDxtb2R1bGU+IzAxMiBTUkNvbW1hbmQucnVuKE5GU1NSLCBEUklWRVJfSU5G
TykjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMzQ0LCBp
biBydW4jMDEyICAgIHJldCA9IGNtZC5ydW4oc3IpIzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9z
bS9TUkNvbW1hbmQucHkiLCBsaW5lIDExMCwgaW4gcnVuIzAxMiAgICByZXR1cm4gc2VsZi5fcnVu
X2xvY2tlZChzcikjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxp
bmUgMTU5LCBpbiBfcnVuX2xvY2tlZCMwMTIgICAgcnYgPSBzZWxmLl9ydW4oc3IsIHRhcmdldCkj
MDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMjYzLCBpbiBf
cnVuIzAxMiAgICB3cml0YWJsZSwgY2FjaGluZ19wYXJhbXMpIzAxMiAgRmlsZSAiL3Vzci9saWIv
eGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNDg2LCBpbiBhY3RpdmF0ZSMwMTIgICAgaWYgc2Vs
Zi5fYWN0aXZhdGVfbG9ja2VkKHNyX3V1aWQsIHZkaV91dWlkLCBvcHRpb25zKTojMDEyICBGaWxl
ICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDgzLCBpbiB3cmFwcGVyIzAxMiAg
ICByZXQgPSBvcChzZWxmLCAqYXJncykjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3Rh
cDIucHkiLCBsaW5lIDE1MjIsIGluIF9hY3RpdmF0ZV9sb2NrZWQjMDEyICAgIGRldl9wYXRoID0g
c2VsZi5fYWN0aXZhdGUoc3JfdXVpZCwgdmRpX3V1aWQsIG9wdGlvbnMpIzAxMiAgRmlsZSAiL3Vz
ci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxNTYwLCBpbiBfYWN0aXZhdGUjMDEyIHNl
bGYuX2dldF9wb29sX2NvbmZpZyhzcl91dWlkKS5nZXQoIm1lbS1wb29sLXNpemUiKSkjMDEyICBG
aWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDEyNDMsIGluIF90YXBfYWN0
aXZhdGUjMDEyIHRhcGRpc2sgPSBUYXBkaXNrLmZpbmRfYnlfcGF0aChwaHlfcGF0aCkjMDEyICBG
aWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDY5MCwgaW4gZmluZF9ieV9w
YXRoIzAxMiByZXR1cm4gY2xzLmZpbmQocGF0aD1wYXRoKSMwMTIgIEZpbGUgIi91c3IvbGliL3hh
cGkvc20vYmxrdGFwMi5weSIsIGxpbmUgNjc4LCBpbiBmaW5kIzAxMiAgICBmb3VuZCA9IGxpc3Qo
Y2xzLmxpc3QoKiphcmdzKSkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHki
LCBsaW5lIDY1MywgaW4gbGlzdCMwMTIgICAgZm9yIHJvdyBpbiBUYXBDdGwubGlzdCgqKmFyZ3Mp
OiMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTE4LCBpbiBs
b29wIzAxMiAgICByZXR1cm4gZigqX190LCAqKl9fZCkjMDEyICBGaWxlICIvdXNyL2xpYi94YXBp
L3NtL2Jsa3RhcDIucHkiLCBsaW5lIDM0OCwgaW4gbGlzdCMwMTIgICAgaWYgZS5zdGF0dXMgaW4g
dHJhbnNpZW50OiMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUg
MTYyLCBpbiBfX2dldGF0dHJfXyMwMTIgICAgcmV0dXJuIG9iamVjdC5fX2dldGF0dHJpYnV0ZV9f
KHNlbGYsIGtleSkjMDEyQXR0cmlidXRlRXJyb3I6ICdDb21tYW5kRmFpbHVyZScgb2JqZWN0IGhh
cyBubyBhdHRyaWJ1dGUgJ3N0YXR1cycjMDEyIF0pCj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRl
c3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzAzIElORVQgOjo6ODB8fGJhY2t0cmFjZV0gUmFp
c2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMg
MjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJpbXBvcnQubWxcIiwgbGluZSAxMzg3LCBjaGFyYWN0
ZXJzIDIwLTEwMjNcbkNhbGxlZCBmcm9tIGZpbGUgXCJzZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5l
IDcyLCBjaGFyYWN0ZXJzIDExLTIzXG5SZS1yYWlzZWQgYXQgZmlsZSBcInNlcnZlcl9oZWxwZXJz
Lm1sXCIsIGxpbmUgOTAsIGNoYXJhY3RlcnMgMTQtMTVcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIv
cGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJhY3RlcnMgMi05XG5SZS1yYWlzZWQgYXQg
ZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyNiwgY2hhcmFjdGVycyAyMi0yNVxu
Q2FsbGVkIGZyb20gZmlsZSBcImxpYi9kZWJ1Zy5tbFwiLCBsaW5lIDU3LCBjaGFyYWN0ZXJzIDE3
LTIwXG5SZS1yYWlzZWQgYXQgZmlsZSBcImxpYi9kZWJ1Zy5tbFwiLCBsaW5lIDYyLCBjaGFyYWN0
ZXJzIDEwLTExXG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5l
IDIyLCBjaGFyYWN0ZXJzIDItOVxuUmUtcmFpc2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0
Lm1sXCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJ4YXBp
X2h0dHAubWxcIiwgbGluZSAyOTUsIGNoYXJhY3RlcnMgNC0yN1xuCj4+IERlYyAzMCAwNjo1MToz
OSBnNnhlbnRlc3QgU01HQzogWzUzNDNdIFNSIDc4N2IgKCdsb2NhbCBuZnMnKSAoMSBWRElzIGlu
IDEgVkhEIHRyZWVzKToKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCBTTUdDOiBbNTM0M10g
KmNhZTMwZTliKDguMDAwRy8xOS4wMDBLKQo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNN
R0M6IFs1MzQzXQo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhl
bnRlc3R8NDMwMCBVTklYIC92YXIvbGliL3hjcC94YXBpfHxjbGldIGNsaWVudC1zaWRlIHJlcG9y
dHMgZmFpbHVyZQo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNNOiBbNTM0M10gbG9jazog
cmVsZWFzZWQgL3Zhci9sb2NrL3NtLzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWEx
Ni9zcgo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNNOiBbNTM0M10gbG9jazogdHJpZWQg
bG9jayAvdmFyL2xvY2svc20vNzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2L3J1
bm5pbmcsIGFjcXVpcmVkOiBUcnVlIChleGlzdHM6IFRydWUpCj4+IERlYyAzMCAwNjo1MTozOSBn
NnhlbnRlc3QgU006IFs1MzQzXSBsb2NrOiB0cmllZCBsb2NrIC92YXIvbG9jay9zbS83ODdiMDg3
NC04ZThiLWU3ZDgtOGJhOS03NGY1NWZmMmVhMTYvc3IsIGFjcXVpcmVkOiBUcnVlIChleGlzdHM6
IFRydWUpCj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgU006IFs1MzQzXSBbJy91c3IvYmlu
L3ZoZC11dGlsJywgJ3NjYW4nLCAnLWYnLCAnLWMnLCAnLW0nLCAnL3Zhci9ydW4vc3ItbW91bnQv
Nzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2LyoudmhkJ10KPj4gRGVjIDMwIDA2
OjUxOjM5IGc2eGVudGVzdCBTTTogWzUzNDNdICAgcHJlYWQgU1VDQ0VTUwo+PiBEZWMgMzAgMDY6
NTE6MzkgZzZ4ZW50ZXN0IFNNR0M6IFs1MzQzXSBTUiA3ODdiICgnbG9jYWwgbmZzJykgKDEgVkRJ
cyBpbiAxIFZIRCB0cmVlcyk6IG5vIGNoYW5nZXMKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVz
dCBTTTogWzUzNDNdIGxvY2s6IHJlbGVhc2VkIC92YXIvbG9jay9zbS83ODdiMDg3NC04ZThiLWU3
ZDgtOGJhOS03NGY1NWZmMmVhMTYvc3IKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCBTTUdD
OiBbNTM0M10gRm91bmQgMSBWRElzIGZvciBkZWxldGlvbjoKPj4gRGVjIDMwIDA2OjUxOjM5IGc2
eGVudGVzdCBTTUdDOiBbNTM0M10gICAqY2FlMzBlOWIoOC4wMDBHLzE5LjAwMEspCj4+IERlYyAz
MCAwNjo1MTozOSBnNnhlbnRlc3QgU01HQzogWzUzNDNdIERlbGV0aW5nIHVubGlua2VkIFZESSAq
Y2FlMzBlOWIoOC4wMDBHLzE5LjAwMEspCj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgU006
IFs1MzQzXSBsb2NrOiB0cmllZCBsb2NrIC92YXIvbG9jay9zbS83ODdiMDg3NC04ZThiLWU3ZDgt
OGJhOS03NGY1NWZmMmVhMTYvc3IsIGFjcXVpcmVkOiBUcnVlIChleGlzdHM6IFRydWUpCj4+IERl
YyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0NDIxIFVOSVgg
L3Zhci9saWIveGNwL3hhcGl8VkRJLmdldF9ieV91dWlkIEQ6ZTU0MDJjNzgzMzZjfGJhY2t0cmFj
ZV0gUmFpc2VkIGF0IGZpbGUgXCJkYl9jYWNoZV9pbXBsLm1sXCIsIGxpbmUgMTk4LCBjaGFyYWN0
ZXJzIDE2LTU1XG5DYWxsZWQgZnJvbSBmaWxlIFwiZGJfYWN0aW9ucy5tbFwiLCBsaW5lIDEzMzMw
LCBjaGFyYWN0ZXJzIDI3LTYxXG5DYWxsZWQgZnJvbSBmaWxlIFwicmJhYy5tbFwiLCBsaW5lIDIy
NywgY2hhcmFjdGVycyAxNi0yM1xuUmUtcmFpc2VkIGF0IGZpbGUgXCJyYmFjLm1sXCIsIGxpbmUg
MjM2LCBjaGFyYWN0ZXJzIDEwLTE1XG5DYWxsZWQgZnJvbSBmaWxlIFwic2VydmVyX2hlbHBlcnMu
bWxcIiwgbGluZSA3MiwgY2hhcmFjdGVycyAxMS0yM1xuCj4+IERlYyAzMCAwNjo1MTozOSBnNnhl
bnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0NDIxIFVOSVggL3Zhci9saWIveGNwL3hhcGl8
VkRJLmdldF9ieV91dWlkIEQ6ZTU0MDJjNzgzMzZjfGRpc3BhdGNoZXJdIFNlcnZlcl9oZWxwZXJz
LmV4ZWMgZXhjZXB0aW9uX2hhbmRsZXI6IEdvdCBleGNlcHRpb24gVVVJRF9JTlZBTElEOiBbIFZE
STsgY2FlMzBlOWItZWJkNC00NDUwLThjZTAtOWY0MDM1Y2E2MmYxIF0KPj4gRGVjIDMwIDA2OjUx
OjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQ0MjEgVU5JWCAvdmFyL2xpYi94
Y3AveGFwaXxWREkuZ2V0X2J5X3V1aWQgRDplNTQwMmM3ODMzNmN8ZGlzcGF0Y2hlcl0gUmFpc2Vk
IGF0IGZpbGUgXCJkYl9jYWNoZV9pbXBsLm1sXCIsIGxpbmUgMTk4LCBjaGFyYWN0ZXJzIDE2LTU1
XG5DYWxsZWQgZnJvbSBmaWxlIFwiZGJfYWN0aW9ucy5tbFwiLCBsaW5lIDEzMzMwLCBjaGFyYWN0
ZXJzIDI3LTYxXG5DYWxsZWQgZnJvbSBmaWxlIFwicmJhYy5tbFwiLCBsaW5lIDIyNywgY2hhcmFj
dGVycyAxNi0yM1xuUmUtcmFpc2VkIGF0IGZpbGUgXCJyYmFjLm1sXCIsIGxpbmUgMjM2LCBjaGFy
YWN0ZXJzIDEwLTE1XG5DYWxsZWQgZnJvbSBmaWxlIFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGlu
ZSA3MiwgY2hhcmFjdGVycyAxMS0yM1xuCj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFw
aTogW2RlYnVnfGc2eGVudGVzdHw0NDIxIFVOSVggL3Zhci9saWIveGNwL3hhcGl8VkRJLmdldF9i
eV91dWlkIEQ6ZTU0MDJjNzgzMzZjfGJhY2t0cmFjZV0gUmFpc2VkIGF0IGZpbGUgXCJkYl9jYWNo
ZV9pbXBsLm1sXCIsIGxpbmUgMTk4LCBjaGFyYWN0ZXJzIDE2LTU1XG5DYWxsZWQgZnJvbSBmaWxl
IFwiZGJfYWN0aW9ucy5tbFwiLCBsaW5lIDEzMzMwLCBjaGFyYWN0ZXJzIDI3LTYxXG5DYWxsZWQg
ZnJvbSBmaWxlIFwicmJhYy5tbFwiLCBsaW5lIDIyNywgY2hhcmFjdGVycyAxNi0yM1xuUmUtcmFp
c2VkIGF0IGZpbGUgXCJyYmFjLm1sXCIsIGxpbmUgMjM2LCBjaGFyYWN0ZXJzIDEwLTE1XG5DYWxs
ZWQgZnJvbSBmaWxlIFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGluZSA3MiwgY2hhcmFjdGVycyAx
MS0yM1xuCj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVz
dHw0NDIxIFVOSVggL3Zhci9saWIveGNwL3hhcGl8VkRJLmdldF9ieV91dWlkIEQ6ZTU0MDJjNzgz
MzZjfHhhcGldIFJhaXNlZCBhdCBmaWxlIFwiZGJfY2FjaGVfaW1wbC5tbFwiLCBsaW5lIDE5OCwg
Y2hhcmFjdGVycyAxNi01NVxuQ2FsbGVkIGZyb20gZmlsZSBcImRiX2FjdGlvbnMubWxcIiwgbGlu
ZSAxMzMzMCwgY2hhcmFjdGVycyAyNy02MVxuQ2FsbGVkIGZyb20gZmlsZSBcInJiYWMubWxcIiwg
bGluZSAyMjcsIGNoYXJhY3RlcnMgMTYtMjNcblJlLXJhaXNlZCBhdCBmaWxlIFwicmJhYy5tbFwi
LCBsaW5lIDIzNiwgY2hhcmFjdGVycyAxMC0xNVxuQ2FsbGVkIGZyb20gZmlsZSBcInNlcnZlcl9o
ZWxwZXJzLm1sXCIsIGxpbmUgNzIsIGNoYXJhY3RlcnMgMTEtMjNcblJlLXJhaXNlZCBhdCBmaWxl
IFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGluZSA5MCwgY2hhcmFjdGVycyAxNC0xNVxuQ2FsbGVk
IGZyb20gZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFjdGVycyAy
LTlcbgo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8
NDQyMSBVTklYIC92YXIvbGliL3hjcC94YXBpfGRpc3BhdGNoOlZESS5nZXRfYnlfdXVpZCBEOjVh
NWIxOWM4NTk2Znx4YXBpXSBSYWlzZWQgYXQgZmlsZSBcImRiX2NhY2hlX2ltcGwubWxcIiwgbGlu
ZSAxOTgsIGNoYXJhY3RlcnMgMTYtNTVcbkNhbGxlZCBmcm9tIGZpbGUgXCJkYl9hY3Rpb25zLm1s
XCIsIGxpbmUgMTMzMzAsIGNoYXJhY3RlcnMgMjctNjFcbkNhbGxlZCBmcm9tIGZpbGUgXCJyYmFj
Lm1sXCIsIGxpbmUgMjI3LCBjaGFyYWN0ZXJzIDE2LTIzXG5SZS1yYWlzZWQgYXQgZmlsZSBcInJi
YWMubWxcIiwgbGluZSAyMzYsIGNoYXJhY3RlcnMgMTAtMTVcbkNhbGxlZCBmcm9tIGZpbGUgXCJz
ZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDcyLCBjaGFyYWN0ZXJzIDExLTIzXG5SZS1yYWlzZWQg
YXQgZmlsZSBcInNlcnZlcl9oZWxwZXJzLm1sXCIsIGxpbmUgOTAsIGNoYXJhY3RlcnMgMTQtMTVc
bkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjIsIGNoYXJh
Y3RlcnMgMi05XG5SZS1yYWlzZWQgYXQgZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGlu
ZSAyNiwgY2hhcmFjdGVycyAyMi0yNVxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9kZWJ1Zy5tbFwi
LCBsaW5lIDU3LCBjaGFyYWN0ZXJzIDE3LTIwXG5SZS1yYWlzZWQgYXQgZmlsZSBcImxpYi9kZWJ1
Zy5tbFwiLCBsaW5lIDYyLCBjaGFyYWN0ZXJzIDEwLTExXG5DYWxsZWQgZnJvbSBmaWxlIFwibGli
L3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxuCj4+IERlYyAzMCAw
Njo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0NDIxIFVOSVggL3Zhci9s
aWIveGNwL3hhcGl8ZGlzcGF0Y2g6VkRJLmdldF9ieV91dWlkIEQ6NWE1YjE5Yzg1OTZmfGJhY2t0
cmFjZV0gUmFpc2VkIGF0IGZpbGUgXCJkYl9jYWNoZV9pbXBsLm1sXCIsIGxpbmUgMTk4LCBjaGFy
YWN0ZXJzIDE2LTU1XG5DYWxsZWQgZnJvbSBmaWxlIFwiZGJfYWN0aW9ucy5tbFwiLCBsaW5lIDEz
MzMwLCBjaGFyYWN0ZXJzIDI3LTYxXG5DYWxsZWQgZnJvbSBmaWxlIFwicmJhYy5tbFwiLCBsaW5l
IDIyNywgY2hhcmFjdGVycyAxNi0yM1xuUmUtcmFpc2VkIGF0IGZpbGUgXCJyYmFjLm1sXCIsIGxp
bmUgMjM2LCBjaGFyYWN0ZXJzIDEwLTE1XG5DYWxsZWQgZnJvbSBmaWxlIFwic2VydmVyX2hlbHBl
cnMubWxcIiwgbGluZSA3MiwgY2hhcmFjdGVycyAxMS0yM1xuUmUtcmFpc2VkIGF0IGZpbGUgXCJz
ZXJ2ZXJfaGVscGVycy5tbFwiLCBsaW5lIDkwLCBjaGFyYWN0ZXJzIDE0LTE1XG5DYWxsZWQgZnJv
bSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBjaGFyYWN0ZXJzIDItOVxu
UmUtcmFpc2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1sXCIsIGxpbmUgMjYsIGNoYXJh
Y3RlcnMgMjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJsaWIvZGVidWcubWxcIiwgbGluZSA1Nywg
Y2hhcmFjdGVycyAxNy0yMFxuUmUtcmFpc2VkIGF0IGZpbGUgXCJsaWIvZGVidWcubWxcIiwgbGlu
ZSA2MiwgY2hhcmFjdGVycyAxMC0xMVxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9wZXJ2YXNpdmVl
eHQubWxcIiwgbGluZSAyMiwgY2hhcmFjdGVycyAyLTlcblJlLXJhaXNlZCBhdCBmaWxlIFwibGli
L3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFyYWN0ZXJzIDIyLTI1XG5DYWxsZWQgZnJv
bSBmaWxlIFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGluZSAxMzYsIGNoYXJhY3RlcnMgMTAtMTA2
XG5DYWxsZWQgZnJvbSBmaWxlIFwic2VydmVyLm1sXCIsIGxpbmUgMjI0MDIsIGNoYXJhY3RlcnMg
MjMtMTUwXG5DYWxsZWQgZnJvbSBmaWxlIFwic2VydmVyX2hlbHBlcnMubWxcIiwgbGluZSAxMTUs
IGNoYXJhY3RlcnMgNC03XG4KPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCBTTTogWzUzNDNd
IGxvY2s6IHJlbGVhc2VkIC92YXIvbG9jay9zbS83ODdiMDg3NC04ZThiLWU3ZDgtOGJhOS03NGY1
NWZmMmVhMTYvc3IKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCBTTTogWzUzNDNdIGxvY2s6
IHVubGlua2luZyBsb2NrIGZpbGUgL3Zhci9sb2NrL3NtL2NhZTMwZTliLWViZDQtNDQ1MC04Y2Uw
LTlmNDAzNWNhNjJmMS92ZGkKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCBTTTogWzUzNDNd
IGxvY2s6IHJlbW92aW5nIGxvY2sgZGlyIC92YXIvbG9jay9zbS9jYWUzMGU5Yi1lYmQ0LTQ0NTAt
OGNlMC05ZjQwMzVjYTYyZjEKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCBTTUdDOiBbNTM0
M10gU3RhcnRpbmcgYXN5bmNoIHNyVXBkYXRlIGZvciBTUiA3ODdiMDg3NC04ZThiLWU3ZDgtOGJh
OS03NGY1NWZmMmVhMTYKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbIGluZm98
ZzZ4ZW50ZXN0fDQ0MjR8QXN5bmMuU1IudXBkYXRlIFI6OGJmMjliMDI5YWI5fGRpc3BhdGNoZXJd
IHNwYXduaW5nIGEgbmV3IHRocmVhZCB0byBoYW5kbGUgdGhlIGN1cnJlbnQgdGFzayAodHJhY2tp
ZD04NzVjM2U2MDFhMDQyZGIyNzE0ZjlmYjgzYWY5ZmNkNykKPj4gRGVjIDMwIDA2OjUxOjM5IGc2
eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQ0MjR8QXN5bmMuU1IudXBkYXRlIFI6OGJm
MjliMDI5YWI5fGF1ZGl0XSBTUi51cGRhdGU6IFNSID0gJzc4N2IwODc0LThlOGItZTdkOC04YmE5
LTc0ZjU1ZmYyZWExNiAobG9jYWwgbmZzKScKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4
YXBpOiBbIGluZm98ZzZ4ZW50ZXN0fDQ0MjR8QXN5bmMuU1IudXBkYXRlIFI6OGJmMjliMDI5YWI5
fHN0b3JhZ2VfaW1wbF0gU1Iuc3RhdCBkYmc6T3BhcXVlUmVmOjhiZjI5YjAyLTlhYjktM2Y4ZS03
Zjk1LTQ3MWRjMzIyY2Y5ZiBzcjo3ODdiMDg3NC04ZThiLWU3ZDgtOGJhOS03NGY1NWZmMmVhMTYK
Pj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQ0MjZ8
fGR1bW15dGFza2hlbHBlcl0gdGFzayBTUi5zdGF0IEQ6MDQ0ODMyODE2NTBhIGNyZWF0ZWQgYnkg
dGFzayBSOjhiZjI5YjAyOWFiOQo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtk
ZWJ1Z3xnNnhlbnRlc3R8NDQyNnxTUi5zdGF0IEQ6MDQ0ODMyODE2NTBhfHNtXSBTTSBuZnMgc3Jf
dXBkYXRlIHNyPU9wYXF1ZVJlZjo1MjEyMzFkNi1kZjNiLTc5MGItMWUyMi1iMzQ0YTgzZDlkMzkK
Pj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbIGluZm98ZzZ4ZW50ZXN0fDQ0MjZ8
c21fZXhlYyBEOmRlNjk4MTU2MDNhZnx4YXBpXSBTZXNzaW9uLmNyZWF0ZSB0cmFja2lkPWMxODM5
NjE1ZDdmYzcxZTAxMDdkMThjMWM0Mzk3YmRmIHBvb2w9ZmFsc2UgdW5hbWU9IG9yaWdpbmF0b3I9
IGlzX2xvY2FsX3N1cGVydXNlcj10cnVlIGF1dGhfdXNlcl9zaWQ9IHBhcmVudD10cmFja2lkPTk4
MzRmNWFmNDFjOTY0ZTIyNWYyNDI3OWFlZmU0ZTQ5Cj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRl
c3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0NDI2fHNtX2V4ZWMgRDpkZTY5ODE1NjAzYWZ8bXNj
Z2VuXSB4YXBpPT54YXBpIFtsYWJlbD0ic2Vzc2lvbi5nZXRfdXVpZCJdOwo+PiBEZWMgMzAgMDY6
NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDQyNyBVTklYIC92YXIvbGli
L3hjcC94YXBpfHxkdW1teXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6c2Vzc2lvbi5nZXRfdXVp
ZCBEOjkzZDQ4NTY4ZGE4YyBjcmVhdGVkIGJ5IHRhc2sgRDpkZTY5ODE1NjAzYWYKPj4gRGVjIDMw
IDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQ0MjZ8c21fZXhlYyBE
OmRlNjk4MTU2MDNhZnxtc2NnZW5dIHNtYXBpdjI9PnNtYXBpdjEgW2xhYmVsPSJzcl91cGRhdGUi
XTsKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQ0
MjggVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0YXNrIGRpc3BhdGNo
Omhvc3QuZ2V0X290aGVyX2NvbmZpZyBEOmJjY2NiNzVjY2E2YyBjcmVhdGVkIGJ5IHRhc2sgRDow
NDQ4MzI4MTY1MGEKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4
ZW50ZXN0fDQ0MjkgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0YXNr
IGRpc3BhdGNoOlNSLmdldF9zbV9jb25maWcgRDpmMDQ5M2VlZmM3MzAgY3JlYXRlZCBieSB0YXNr
IEQ6MDQ0ODMyODE2NTBhCj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgU006IFs1MzczXSBz
cl91cGRhdGUgeydzcl91dWlkJzogJzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWEx
NicsICdzdWJ0YXNrX29mJzogJ0R1bW15UmVmOnwwNDQ4MzI4MS02NTBhLTdmMWItNWUwMy0yYThj
YWMyMDljZjV8U1Iuc3RhdCcsICdhcmdzJzogW10sICdob3N0X3JlZic6ICdPcGFxdWVSZWY6YmMw
MDFkNTctNjVjZS04YjJiLTc0YjQtY2Q3MTk3NjI3MmMwJywgJ3Nlc3Npb25fcmVmJzogJ09wYXF1
ZVJlZjozNzVmNTU0MC03MGE0LTQwNDAtNGIwOC1mZTA3MGZjMjgyODUnLCAnZGV2aWNlX2NvbmZp
Zyc6IHsnU1JtYXN0ZXInOiAndHJ1ZScsICdzZXJ2ZXJwYXRoJzogJy9tbnQvemJpb3JuaWsvdGVz
dHZvbC8nLCAnc2VydmVyJzogJzEyNy4wLjAuMSd9LCAnY29tbWFuZCc6ICdzcl91cGRhdGUnLCAn
c3JfcmVmJzogJ09wYXF1ZVJlZjo1MjEyMzFkNi1kZjNiLTc5MGItMWUyMi1iMzQ0YTgzZDlkMzkn
fQo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDQz
MCBVTklYIC92YXIvbGliL3hjcC94YXBpfHxkdW1teXRhc2toZWxwZXJdIHRhc2sgZGlzcGF0Y2g6
U1IuZ2V0X3ZpcnR1YWxfYWxsb2NhdGlvbiBEOmQwMzFlYzk4NDFkMCBjcmVhdGVkIGJ5IHRhc2sg
RDowNDQ4MzI4MTY1MGEKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbZGVidWd8
ZzZ4ZW50ZXN0fDQ0MzEgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVscGVyXSB0
YXNrIGRpc3BhdGNoOlNSLmdldF9ieV91dWlkIEQ6ZTEwMWM2ZWY0MGY3IGNyZWF0ZWQgYnkgdGFz
ayBEOjA0NDgzMjgxNjUwYQo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IHhhcGk6IFtkZWJ1
Z3xnNnhlbnRlc3R8NDQzMiBVTklYIC92YXIvbGliL3hjcC94YXBpfHxkdW1teXRhc2toZWxwZXJd
IHRhc2sgZGlzcGF0Y2g6U1Iuc2V0X3ZpcnR1YWxfYWxsb2NhdGlvbiBEOjUzYzk2ZWQ3OWVhMCBj
cmVhdGVkIGJ5IHRhc2sgRDowNDQ4MzI4MTY1MGEKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVz
dCB4YXBpOiBbMjAxNDEyMzBUMDU6NTE6MzkuOTYwWnxhdWRpdHxnNnhlbnRlc3R8NDQzMiBVTklY
IC92YXIvbGliL3hjcC94YXBpfFNSLnNldF92aXJ0dWFsX2FsbG9jYXRpb24gRDpjNjNkYjZkZTEw
YTh8YXVkaXRdICgndHJhY2tpZD1jMTgzOTYxNWQ3ZmM3MWUwMTA3ZDE4YzFjNDM5N2JkZicgJ0xP
Q0FMX1NVUEVSVVNFUicgJ19fc21fX2JhY2tlbmQnICdBTExPV0VEJyAnT0snICdBUEknICdTUi5z
ZXRfdmlydHVhbF9hbGxvY2F0aW9uJyAoKCdzZWxmJyAnbG9jYWwgbmZzJyAnNzg3YjA4NzQtOGU4
Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2JyAnT3BhcXVlUmVmOjUyMTIzMWQ2LWRmM2ItNzkwYi0x
ZTIyLWIzNDRhODNkOWQzOScpKSkKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBb
ZGVidWd8ZzZ4ZW50ZXN0fDQ0MzMgVU5JWCAvdmFyL2xpYi94Y3AveGFwaXx8ZHVtbXl0YXNraGVs
cGVyXSB0YXNrIGRpc3BhdGNoOlNSLnNldF9waHlzaWNhbF9zaXplIEQ6Y2MwNWM2OWRkODE4IGNy
ZWF0ZWQgYnkgdGFzayBEOjA0NDgzMjgxNjUwYQo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0
IHhhcGk6IFsyMDE0MTIzMFQwNTo1MTozOS45NjRafGF1ZGl0fGc2eGVudGVzdHw0NDMzIFVOSVgg
L3Zhci9saWIveGNwL3hhcGl8U1Iuc2V0X3BoeXNpY2FsX3NpemUgRDoyNWU1OGVmM2ViMDZ8YXVk
aXRdICgndHJhY2tpZD1jMTgzOTYxNWQ3ZmM3MWUwMTA3ZDE4YzFjNDM5N2JkZicgJ0xPQ0FMX1NV
UEVSVVNFUicgJ19fc21fX2JhY2tlbmQnICdBTExPV0VEJyAnT0snICdBUEknICdTUi5zZXRfcGh5
c2ljYWxfc2l6ZScgKCgnc2VsZicgJ2xvY2FsIG5mcycgJzc4N2IwODc0LThlOGItZTdkOC04YmE5
LTc0ZjU1ZmYyZWExNicgJ09wYXF1ZVJlZjo1MjEyMzFkNi1kZjNiLTc5MGItMWUyMi1iMzQ0YTgz
ZDlkMzknKSkpCj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVu
dGVzdHw0NDM0IFVOSVggL3Zhci9saWIveGNwL3hhcGl8fGR1bW15dGFza2hlbHBlcl0gdGFzayBk
aXNwYXRjaDpTUi5zZXRfcGh5c2ljYWxfdXRpbGlzYXRpb24gRDowNDllYjQ0YTExZDIgY3JlYXRl
ZCBieSB0YXNrIEQ6MDQ0ODMyODE2NTBhCj4+IERlYyAzMCAwNjo1MTozOSBnNnhlbnRlc3QgeGFw
aTogWzIwMTQxMjMwVDA1OjUxOjM5Ljk3MFp8YXVkaXR8ZzZ4ZW50ZXN0fDQ0MzQgVU5JWCAvdmFy
L2xpYi94Y3AveGFwaXxTUi5zZXRfcGh5c2ljYWxfdXRpbGlzYXRpb24gRDphZTM4YmJkMDZkNmR8
YXVkaXRdICgndHJhY2tpZD1jMTgzOTYxNWQ3ZmM3MWUwMTA3ZDE4YzFjNDM5N2JkZicgJ0xPQ0FM
X1NVUEVSVVNFUicgJ19fc21fX2JhY2tlbmQnICdBTExPV0VEJyAnT0snICdBUEknICdTUi5zZXRf
cGh5c2ljYWxfdXRpbGlzYXRpb24nICgoJ3NlbGYnICdsb2NhbCBuZnMnICc3ODdiMDg3NC04ZThi
LWU3ZDgtOGJhOS03NGY1NWZmMmVhMTYnICdPcGFxdWVSZWY6NTIxMjMxZDYtZGYzYi03OTBiLTFl
MjItYjM0NGE4M2Q5ZDM5JykpKQo+PiBEZWMgMzAgMDY6NTE6MzkgZzZ4ZW50ZXN0IFNNOiBbNTM3
M10gbG9jazogY2xvc2VkIC92YXIvbG9jay9zbS83ODdiMDg3NC04ZThiLWU3ZDgtOGJhOS03NGY1
NWZmMmVhMTYvc3IKPj4gRGVjIDMwIDA2OjUxOjM5IGc2eGVudGVzdCB4YXBpOiBbIGluZm98ZzZ4
ZW50ZXN0fDQ0MjZ8c21fZXhlYyBEOmRlNjk4MTU2MDNhZnx4YXBpXSBTZXNzaW9uLmRlc3Ryb3kg
dHJhY2tpZD1jMTgzOTYxNWQ3ZmM3MWUwMTA3ZDE4YzFjNDM5N2JkZgo+PiBEZWMgMzAgMDY6NTE6
MzkgZzZ4ZW50ZXN0IHhhcGk6IFsyMDE0MTIzMFQwNTo1MTozOS45OTFafGF1ZGl0fGc2eGVudGVz
dHw0NDI0fEFzeW5jLlNSLnVwZGF0ZSBSOjhiZjI5YjAyOWFiOXxhdWRpdF0gKCd0cmFja2lkPTg3
NWMzZTYwMWEwNDJkYjI3MTRmOWZiODNhZjlmY2Q3JyAnTE9DQUxfU1VQRVJVU0VSJyAncm9vdCcg
J0FMTE9XRUQnICdPSycgJ0FQSScgJ1NSLnVwZGF0ZScgKCgnc3InICdsb2NhbCBuZnMnICc3ODdi
MDg3NC04ZThiLWU3ZDgtOGJhOS03NGY1NWZmMmVhMTYnICdPcGFxdWVSZWY6NTIxMjMxZDYtZGYz
Yi03OTBiLTFlMjItYjM0NGE4M2Q5ZDM5JykpKQo+PiBEZWMgMzAgMDY6NTE6NDAgZzZ4ZW50ZXN0
IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMCBVTklYIC92YXIvbGliL3hjcC94YXBpfHx4YXBp
XSBSYWlzZWQgYXQgZmlsZSBcImNsaV91dGlsLm1sXCIsIGxpbmUgMTM0LCBjaGFyYWN0ZXJzIDEw
LTY3XG5DYWxsZWQgZnJvbSBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDIyLCBj
aGFyYWN0ZXJzIDItOVxuCj4+IERlYyAzMCAwNjo1MTo0MCBnNnhlbnRlc3QgeGFwaTogWzIwMTQx
MjMwVDA1OjUxOjQwLjY0NFp8YXVkaXR8ZzZ4ZW50ZXN0fDQzMDAgVU5JWCAvdmFyL2xpYi94Y3Av
eGFwaXx0YXNrLmRlc3Ryb3kgRDphZmMyMTg1NjJhMWJ8YXVkaXRdICgndHJhY2tpZD0wOWE5ZjU4
MjA1N2FkMjc4MTZlNDNhNGQzYzE4YmYxYicgJ0xPQ0FMX1NVUEVSVVNFUicgJ3Jvb3QnICdBTExP
V0VEJyAnT0snICdBUEknICd0YXNrLmRlc3Ryb3knICgoJ3NlbGYnICdWTSBpbXBvcnQnICc3MDg1
OWFkNi0wNDIwLWJhYTgtMTdhYy03NTljYjAxYWNkZTMnICdPcGFxdWVSZWY6ZGJkYjBlZTUtYWUx
Ni0wZjNkLTBjMGUtZGNhZjIzYTUyYTg4JykpKQo+PiBEZWMgMzAgMDY6NTE6NDAgZzZ4ZW50ZXN0
IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMCBVTklYIC92YXIvbGliL3hjcC94YXBpfHx4YXBp
XSBSYWlzZWQgYXQgZmlsZSBcImxpYi9wZXJ2YXNpdmVleHQubWxcIiwgbGluZSAyNiwgY2hhcmFj
dGVycyAyMi0yNVxuQ2FsbGVkIGZyb20gZmlsZSBcImNsaV9vcGVyYXRpb25zLm1sXCIsIGxpbmUg
MzI4MywgY2hhcmFjdGVycyAxOC0xMTFcbkNhbGxlZCBmcm9tIGZpbGUgXCJ4YXBpX2NsaS5tbFwi
LCBsaW5lIDExOSwgY2hhcmFjdGVycyAxOC01OFxuQ2FsbGVkIGZyb20gZmlsZSBcImxpYi9wZXJ2
YXNpdmVleHQubWxcIiwgbGluZSAyMiwgY2hhcmFjdGVycyAyLTlcbgo+PiBEZWMgMzAgMDY6NTE6
NDAgZzZ4ZW50ZXN0IHhhcGk6IFsgaW5mb3xnNnhlbnRlc3R8NDMwMCBVTklYIC92YXIvbGliL3hj
cC94YXBpfHNlc3Npb24ubG9nb3V0IEQ6YTc0MDI3ZjAzN2JkfHhhcGldIFNlc3Npb24uZGVzdHJv
eSB0cmFja2lkPTA5YTlmNTgyMDU3YWQyNzgxNmU0M2E0ZDNjMThiZjFiCj4+IERlYyAzMCAwNjo1
MTo0MCBnNnhlbnRlc3QgeGFwaTogW2RlYnVnfGc2eGVudGVzdHw0MzAwIFVOSVggL3Zhci9saWIv
eGNwL3hhcGl8fGJhY2t0cmFjZV0gUmFpc2VkIGF0IGZpbGUgXCJsaWIvcGVydmFzaXZlZXh0Lm1s
XCIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjItMjVcbkNhbGxlZCBmcm9tIGZpbGUgXCJ4YXBpX2Ns
aS5tbFwiLCBsaW5lIDExOCwgY2hhcmFjdGVycyAyLTEzOVxuQ2FsbGVkIGZyb20gZmlsZSBcInhh
cGlfY2xpLm1sXCIsIGxpbmUgMjIxLCBjaGFyYWN0ZXJzIDctNDRcbkNhbGxlZCBmcm9tIGZpbGUg
XCJ4YXBpX2NsaS5tbFwiLCBsaW5lIDI3MywgY2hhcmFjdGVycyA0LTIzXG4KPj4gRGVjIDMwIDA2
OjUxOjQwIGc2eGVudGVzdCB4YXBpOiBbZGVidWd8ZzZ4ZW50ZXN0fDQzMDAgVU5JWCAvdmFyL2xp
Yi94Y3AveGFwaXx8Y2xpXSBYYXBpX2NsaS5leGNlcHRpb25faGFuZGxlcjogR290IGV4Y2VwdGlv
biBTUl9CQUNLRU5EX0ZBSUxVUkU6IFsgbm9uLXplcm8gZXhpdDsgOyBUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6IzAxMiAgRmlsZSAiL29wdC94ZW5zb3VyY2Uvc20vTkZTU1IiLCBs
aW5lIDI3OCwgaW4gPG1vZHVsZT4jMDEyICAgIFNSQ29tbWFuZC5ydW4oTkZTU1IsIERSSVZFUl9J
TkZPKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vU1JDb21tYW5kLnB5IiwgbGluZSAzNDQs
IGluIHJ1biMwMTIgICAgcmV0ID0gY21kLnJ1bihzcikjMDEyICBGaWxlICIvdXNyL2xpYi94YXBp
L3NtL1NSQ29tbWFuZC5weSIsIGxpbmUgMTEwLCBpbiBydW4jMDEyICAgIHJldHVybiBzZWxmLl9y
dW5fbG9ja2VkKHNyKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vU1JDb21tYW5kLnB5Iiwg
bGluZSAxNTksIGluIF9ydW5fbG9ja2VkIzAxMiAgICBydiA9IHNlbGYuX3J1bihzciwgdGFyZ2V0
KSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vU1JDb21tYW5kLnB5IiwgbGluZSAyNjMsIGlu
IF9ydW4jMDEyICAgIHdyaXRhYmxlLCBjYWNoaW5nX3BhcmFtcykjMDEyICBGaWxlICIvdXNyL2xp
Yi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDE0ODYsIGluIGFjdGl2YXRlIzAxMiAgICBpZiBz
ZWxmLl9hY3RpdmF0ZV9sb2NrZWQoc3JfdXVpZCwgdmRpX3V1aWQsIG9wdGlvbnMpOiMwMTIgIEZp
bGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgODMsIGluIHdyYXBwZXIjMDEy
ICAgIHJldCA9IG9wKHNlbGYsICphcmdzKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxr
dGFwMi5weSIsIGxpbmUgMTUyMiwgaW4gX2FjdGl2YXRlX2xvY2tlZCMwMTIgICAgZGV2X3BhdGgg
PSBzZWxmLl9hY3RpdmF0ZShzcl91dWlkLCB2ZGlfdXVpZCwgb3B0aW9ucykjMDEyICBGaWxlICIv
dXNyL2xpYi94YXBpL3NtL2Jsa3RhcDIucHkiLCBsaW5lIDE1NjAsIGluIF9hY3RpdmF0ZSMwMTIg
c2VsZi5fZ2V0X3Bvb2xfY29uZmlnKHNyX3V1aWQpLmdldCgibWVtLXBvb2wtc2l6ZSIpKSMwMTIg
IEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMTI0MywgaW4gX3RhcF9h
Y3RpdmF0ZSMwMTIgdGFwZGlzayA9IFRhcGRpc2suZmluZF9ieV9wYXRoKHBoeV9wYXRoKSMwMTIg
IEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5weSIsIGxpbmUgNjkwLCBpbiBmaW5kX2J5
X3BhdGgjMDEyIHJldHVybiBjbHMuZmluZChwYXRoPXBhdGgpIzAxMiAgRmlsZSAiL3Vzci9saWIv
eGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSA2NzgsIGluIGZpbmQjMDEyICAgIGZvdW5kID0gbGlz
dChjbHMubGlzdCgqKmFyZ3MpKSMwMTIgIEZpbGUgIi91c3IvbGliL3hhcGkvc20vYmxrdGFwMi5w
eSIsIGxpbmUgNjUzLCBpbiBsaXN0IzAxMiAgICBmb3Igcm93IGluIFRhcEN0bC5saXN0KCoqYXJn
cyk6IzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGluZSAxMTgsIGlu
IGxvb3AjMDEyICAgIHJldHVybiBmKCpfX3QsICoqX19kKSMwMTIgIEZpbGUgIi91c3IvbGliL3hh
cGkvc20vYmxrdGFwMi5weSIsIGxpbmUgMzQ4LCBpbiBsaXN0IzAxMiAgICBpZiBlLnN0YXR1cyBp
biB0cmFuc2llbnQ6IzAxMiAgRmlsZSAiL3Vzci9saWIveGFwaS9zbS9ibGt0YXAyLnB5IiwgbGlu
ZSAxNjIsIGluIF9fZ2V0YXR0cl9fIzAxMiAgICByZXR1cm4gb2JqZWN0Ll9fZ2V0YXR0cmlidXRl
X18oc2VsZiwga2V5KSMwMTJBdHRyaWJ1dGVFcnJvcjogJ0NvbW1hbmRGYWlsdXJlJyBvYmplY3Qg
aGFzIG5vIGF0dHJpYnV0ZSAnc3RhdHVzJyMwMTIgXQo+PiBEZWMgMzAgMDY6NTE6NDAgZzZ4ZW50
ZXN0IHhhcGk6IFtkZWJ1Z3xnNnhlbnRlc3R8NDMwMCBVTklYIC92YXIvbGliL3hjcC94YXBpfHxj
bGldIFJhaXNlZCBhdCBmaWxlIFwibGliL3BlcnZhc2l2ZWV4dC5tbFwiLCBsaW5lIDI2LCBjaGFy
YWN0ZXJzIDIyLTI1XG5DYWxsZWQgZnJvbSBmaWxlIFwieGFwaV9jbGkubWxcIiwgbGluZSAxMTgs
IGNoYXJhY3RlcnMgMi0xMzlcbkNhbGxlZCBmcm9tIGZpbGUgXCJ4YXBpX2NsaS5tbFwiLCBsaW5l
IDIyMSwgY2hhcmFjdGVycyA3LTQ0XG5DYWxsZWQgZnJvbSBmaWxlIFwieGFwaV9jbGkubWxcIiwg
bGluZSAyNzMsIGNoYXJhY3RlcnMgNC0yM1xuCj4+IERlYyAzMCAwNjo1MTo0MCBnNnhlbnRlc3Qg
U01HQzogWzUzNDNdIFNSLnVwZGF0ZV9hc3luY2ggc3RhdHVzIGNoYW5nZWQgdG8gW3N1Y2Nlc3Nd
Cj4+IERlYyAzMCAwNjo1MTo0MCBnNnhlbnRlc3QgU006IFs1MzQzXSBsb2NrOiByZWxlYXNlZCAv
dmFyL2xvY2svc20vNzg3YjA4NzQtOGU4Yi1lN2Q4LThiYTktNzRmNTVmZjJlYTE2L3J1bm5pbmcK
Pj4gRGVjIDMwIDA2OjUxOjQwIGc2eGVudGVzdCBTTTogWzUzNDNdIGxvY2s6IHRyaWVkIGxvY2sg
L3Zhci9sb2NrL3NtLzc4N2IwODc0LThlOGItZTdkOC04YmE5LTc0ZjU1ZmYyZWExNi9zciwgYWNx
dWlyZWQ6IFRydWUgKGV4aXN0czogVHJ1ZSkKPj4gRGVjIDMwIDA2OjUxOjQwIGc2eGVudGVzdCBT
TTogWzUzNDNdIFsnL3Vzci9iaW4vdmhkLXV0aWwnLCAnc2NhbicsICctZicsICctYycsICctbScs
ICcvdmFyL3J1bi9zci1tb3VudC83ODdiMDg3NC04ZThiLWU3ZDgtOGJhOS03NGY1NWZmMmVhMTYv
Ki52aGQnXQo+PiBEZWMgMzAgMDY6NTE6NDAgZzZ4ZW50ZXN0IFNNOiBbNTM0M10gICBwcmVhZCBT
VUNDRVNTCj4+IERlYyAzMCAwNjo1MTo0MCBnNnhlbnRlc3QgU01HQzogWzUzNDNdIFNSIDc4N2Ig
KCdsb2NhbCBuZnMnKSAoMCBWRElzIGluIDAgVkhEIHRyZWVzKTogc2hvd2luZyBvbmx5IFZIRCB0
cmVlcyB0aGF0IGNoYW5nZWQ6Cj4+IERlYyAzMCAwNjo1MTo0MCBnNnhlbnRlc3QgU01HQzogWzUz
NDNdIFRyZWUgY2FlMzBlOWItZWJkNC00NDUwLThjZTAtOWY0MDM1Y2E2MmYxIGdvbmUKPj4gRGVj
IDMwIDA2OjUxOjQwIGc2eGVudGVzdCBTTUdDOiBbNTM0M10KPj4gRGVjIDMwIDA2OjUxOjQwIGc2
eGVudGVzdCBTTTogWzUzNDNdIGxvY2s6IHJlbGVhc2VkIC92YXIvbG9jay9zbS83ODdiMDg3NC04
ZThiLWU3ZDgtOGJhOS03NGY1NWZmMmVhMTYvc3IKPj4gRGVjIDMwIDA2OjUxOjQwIGc2eGVudGVz
dCBTTUdDOiBbNTM0M10gTm8gd29yaywgZXhpdGluZwo+PiBEZWMgMzAgMDY6NTE6NDAgZzZ4ZW50
ZXN0IFNNR0M6IFs1MzQzXSBJbiBjbGVhbnVwCj4+IERlYyAzMCAwNjo1MTo0MCBnNnhlbnRlc3Qg
U01HQzogWzUzNDNdIFNSIDc4N2IgKCdsb2NhbCBuZnMnKSAoMCBWRElzIGluIDAgVkhEIHRyZWVz
KTogbm8gY2hhbmdlcwo+PiBEZWMgMzAgMDY6NTE6NDAgZzZ4ZW50ZXN0IHhhcGk6IFsgaW5mb3xn
NnhlbnRlc3R8NDQzNyBVTklYIC92YXIvbGliL3hjcC94YXBpfHNlc3Npb24ubG9nb3V0IEQ6NjIw
OTM2NzI5MDFjfHhhcGldIFNlc3Npb24uZGVzdHJveSB0cmFja2lkPTg3NWMzZTYwMWEwNDJkYjI3
MTRmOWZiODNhZjlmY2Q3Cj4+IERlYyAzMCAwNjo1MTo0MCBnNnhlbnRlc3QgeGNwLXJyZGQ6IFtk
ZWJ1Z3xnNnhlbnRlc3R8MTMyNiB1bml4X3JwY3x8aHR0cF0gUmVxdWVzdCB7IGZyYW1lID0gZmFs
c2U7IG1ldGhvZCA9IFBPU1Q7IHVyaSA9IC92YXIvbGliL3hjcC94Y3AtcnJkZDsgcXVlcnkgPSBb
ICBdOyBjb250ZW50X2xlbmd0aCA9IFsgMzMwIF07IHRyYW5zZmVyIGVuY29kaW5nID0gOyB2ZXJz
aW9uID0gMS4xOyBjb29raWUgPSBbID0gXTsgdGFzayA9IDsgc3VidGFza19vZiA9IDsgY29udGVu
dC10eXBlID0gOyBob3N0ID0gOyB1c2VyX2FnZW50ID0gL3Vzci9zYmluL3hhcGkgfQo+PiBEZWMg
MzAgMDY6NTE6NDEgZzZ4ZW50ZXN0IHhjcC1ycmRkOiBbZGVidWd8ZzZ4ZW50ZXN0fDAgbW9uaXRv
cnxtYWlufHJyZGRfc3RhdHNdIHN5c3RlbSBzdGF0czogTWVtVG90YWw6IDgxNDE1NzIgS2lCOyBN
ZW1GcmVlOiA2ODExNDcyIEtpQjsgQnVmZmVyZWQ6IDc3NjI0IEtpQjsgQ2FjaGVkOiA3NjIwNDAg
S2lCOyBTd2FwVG90YWw6IDAgS2lCOyBTd2FwRnJlZTogMCBLaUIKPj4gRGVjIDMwIDA2OjUxOjQx
IGc2eGVudGVzdCB4Y3AtcnJkZDogW2RlYnVnfGc2eGVudGVzdHwwIG1vbml0b3J8bWFpbnxycmRk
X3N0YXRzXSBDbG9jayBkcmlmdDogMAo+PiBEZWMgMzAgMDY6NTE6NDEgZzZ4ZW50ZXN0IHhjcC1y
cmRkOiBbZGVidWd8ZzZ4ZW50ZXN0fDAgbW9uaXRvcnxtYWlufHJyZGRfc3RhdHNdIHhjcC1ycmRk
IHN0YXRzIChuID0gMSk6IHNpemU6IDM0MDc3NiBLaUI7IHJzczogODExMiBLaUI7IGRhdGE6IDMx
NjI5MiBLaUI7IHN0YWNrOiAxMzYgS2lCCj4+IERlYyAzMCAwNjo1MTo0MSBnNnhlbnRlc3QgeGNw
LXJyZGQ6IFtkZWJ1Z3xnNnhlbnRlc3R8MCBtb25pdG9yfG1haW58cnJkZF9zdGF0c10geGFwaSBz
dGF0cyAobiA9IDIpOiBzaXplOiAzMzIyMTY0IEtpQjsgcnNzOiA0Njk0NCBLaUI7IGRhdGE6IDMy
MjYzOTIgS2lCOyBzdGFjazogMjcyIEtpQgo+PiBEZWMgMzAgMDY6NTE6NDEgZzZ4ZW50ZXN0IGZv
cmtleGVjZDogW2Vycm9yfGc2eGVudGVzdHwwfHxmb3JrZXhlY2RdIDUzOTQgKC9iaW4vcGlkb2Yg
eGVub3BzZCkgZXhpdHRlZCB3aXRoIGNvZGUgMQo+PiBEZWMgMzAgMDY6NTE6NDEgZzZ4ZW50ZXN0
IHhjcC1ycmRkOiBbZGVidWd8ZzZ4ZW50ZXN0fDAgbW9uaXRvcnxtYWlufHJyZGRfc3RhdHNdIHhl
bm9wc2Qgc3RhdHMgKG4gPSAwKTogc2l6ZTogMCBLaUI7IHJzczogMCBLaUI7IGRhdGE6IDAgS2lC
OyBzdGFjazogMCBLaUIKPj4KPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18KPj4gWGVuLWFwaSBtYWlsaW5nIGxpc3QKPj4gWGVuLWFwaUBsaXN0cy54ZW4u
b3JnCj4+IGh0dHA6Ly9saXN0cy54ZW4ub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby94ZW4t
YXBpCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhl
bi1hcGkgbWFpbGluZyBsaXN0Clhlbi1hcGlAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVu
Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8veGVuLWFwaQo=

From xen-api-bounces@lists.xen.org Tue Dec 30 17:11:33 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2014 17:11:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Y60KH-0003Pl-Au; Tue, 30 Dec 2014 17:11:21 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <dkadds2@gmail.com>) id 1Y60KF-0003Pg-Tz
	for xen-api@lists.xen.org; Tue, 30 Dec 2014 17:11:20 +0000
Received: from [85.158.137.68] by server-5.bemta-3.messagelabs.com id
	62/C7-26858-7BCD2A45; Tue, 30 Dec 2014 17:11:19 +0000
X-Env-Sender: dkadds2@gmail.com
X-Msg-Ref: server-11.tower-31.messagelabs.com!1419959478!16477474!1
X-Originating-IP: [209.85.212.177]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 17395 invoked from network); 30 Dec 2014 17:11:18 -0000
Received: from mail-wi0-f177.google.com (HELO mail-wi0-f177.google.com)
	(209.85.212.177)
	by server-11.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Dec 2014 17:11:18 -0000
Received: by mail-wi0-f177.google.com with SMTP id l15so24373011wiw.10
	for <xen-api@lists.xen.org>; Tue, 30 Dec 2014 09:11:18 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=message-id:date:from:user-agent:mime-version:to:subject
	:content-type:content-transfer-encoding;
	bh=fxg64YtbABzmRyJqhf9vtrBdF1joa/JAcSQY+5vrQYk=;
	b=C70dpf2gwB/zEcZiVHHpu1ITpW6bdAMn/7bqIqd094pLsZZkhDrDoFcRRdJAciviZn
	7URqMArkR7hqeaYF3WDajnl6NF3qQLIQZ6N1xTcugR1PoptvX5cM42sI1bYsQyTfLi+m
	Q4zufkagvLzxAoukbHnV9j93jpNONBjlH3Mlb5hoYHZsJAGCzRW+oZGE+OfxIZitHwE6
	DdJczezpBLYCPicoixqbaJNvut+z4BDmfeJFr5FoOdCKYVxDWB4ajuc9PIXXHPLFUZ3+
	0Br1PnNLGWYXostTal9MrPNWqmT1mOKxVbGv5xGsuzTnFNsz3FPAzj/W+Vp5q/NZtOfh
	uZ4Q==
X-Received: by 10.194.94.227 with SMTP id df3mr125907807wjb.34.1419959478523; 
	Tue, 30 Dec 2014 09:11:18 -0800 (PST)
Received: from BlackApple.local ([88.169.214.221])
	by mx.google.com with ESMTPSA id
	e18sm54545132wjz.27.2014.12.30.09.11.17 for <xen-api@lists.xen.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 30 Dec 2014 09:11:17 -0800 (PST)
Message-ID: <54A2DCB2.6070208@gmail.com>
Date: Tue, 30 Dec 2014 18:11:14 +0100
From: Dawid Kowalski <dkadds2@gmail.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10;
	rv:31.0) Gecko/20100101 Thunderbird/31.3.0
MIME-Version: 1.0
To: Xen API mailing list <xen-api@lists.xen.org>
Subject: [Xen-API] Storage Repository FileSR on ZFS won't work - Linux
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

Hi Guys,

Just wanted to report that file based Storage Repository won't work on 
Linux systems as td-util is required O_DIRECT when creating image file 
not supported on ZFS (Linux).

When creating vm, i.e. vm-import it calls td-util similar to below:
td-util create vhd 2048 /path/to/file

Strace shows:
open("/path/to/file", O_WRONLY|O_CREAT|O_TRUNC|O_DIRECT, 0644) = -1 
EINVAL (Invalid argument)

I'll try to patch td.c to skip O_DIRECT flag but this is rather dirty 
hack than proper solution of the problem.

Regards,
Dawid

_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

From xen-api-bounces@lists.xen.org Tue Dec 30 17:11:33 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2014 17:11:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Y60KH-0003Pl-Au; Tue, 30 Dec 2014 17:11:21 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <dkadds2@gmail.com>) id 1Y60KF-0003Pg-Tz
	for xen-api@lists.xen.org; Tue, 30 Dec 2014 17:11:20 +0000
Received: from [85.158.137.68] by server-5.bemta-3.messagelabs.com id
	62/C7-26858-7BCD2A45; Tue, 30 Dec 2014 17:11:19 +0000
X-Env-Sender: dkadds2@gmail.com
X-Msg-Ref: server-11.tower-31.messagelabs.com!1419959478!16477474!1
X-Originating-IP: [209.85.212.177]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 17395 invoked from network); 30 Dec 2014 17:11:18 -0000
Received: from mail-wi0-f177.google.com (HELO mail-wi0-f177.google.com)
	(209.85.212.177)
	by server-11.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Dec 2014 17:11:18 -0000
Received: by mail-wi0-f177.google.com with SMTP id l15so24373011wiw.10
	for <xen-api@lists.xen.org>; Tue, 30 Dec 2014 09:11:18 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=message-id:date:from:user-agent:mime-version:to:subject
	:content-type:content-transfer-encoding;
	bh=fxg64YtbABzmRyJqhf9vtrBdF1joa/JAcSQY+5vrQYk=;
	b=C70dpf2gwB/zEcZiVHHpu1ITpW6bdAMn/7bqIqd094pLsZZkhDrDoFcRRdJAciviZn
	7URqMArkR7hqeaYF3WDajnl6NF3qQLIQZ6N1xTcugR1PoptvX5cM42sI1bYsQyTfLi+m
	Q4zufkagvLzxAoukbHnV9j93jpNONBjlH3Mlb5hoYHZsJAGCzRW+oZGE+OfxIZitHwE6
	DdJczezpBLYCPicoixqbaJNvut+z4BDmfeJFr5FoOdCKYVxDWB4ajuc9PIXXHPLFUZ3+
	0Br1PnNLGWYXostTal9MrPNWqmT1mOKxVbGv5xGsuzTnFNsz3FPAzj/W+Vp5q/NZtOfh
	uZ4Q==
X-Received: by 10.194.94.227 with SMTP id df3mr125907807wjb.34.1419959478523; 
	Tue, 30 Dec 2014 09:11:18 -0800 (PST)
Received: from BlackApple.local ([88.169.214.221])
	by mx.google.com with ESMTPSA id
	e18sm54545132wjz.27.2014.12.30.09.11.17 for <xen-api@lists.xen.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 30 Dec 2014 09:11:17 -0800 (PST)
Message-ID: <54A2DCB2.6070208@gmail.com>
Date: Tue, 30 Dec 2014 18:11:14 +0100
From: Dawid Kowalski <dkadds2@gmail.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10;
	rv:31.0) Gecko/20100101 Thunderbird/31.3.0
MIME-Version: 1.0
To: Xen API mailing list <xen-api@lists.xen.org>
Subject: [Xen-API] Storage Repository FileSR on ZFS won't work - Linux
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

Hi Guys,

Just wanted to report that file based Storage Repository won't work on 
Linux systems as td-util is required O_DIRECT when creating image file 
not supported on ZFS (Linux).

When creating vm, i.e. vm-import it calls td-util similar to below:
td-util create vhd 2048 /path/to/file

Strace shows:
open("/path/to/file", O_WRONLY|O_CREAT|O_TRUNC|O_DIRECT, 0644) = -1 
EINVAL (Invalid argument)

I'll try to patch td.c to skip O_DIRECT flag but this is rather dirty 
hack than proper solution of the problem.

Regards,
Dawid

_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

From xen-api-bounces@lists.xen.org Tue Dec 30 17:24:19 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2014 17:24:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Y60Wm-0003s0-Rq; Tue, 30 Dec 2014 17:24:16 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <dkadds2@gmail.com>) id 1Y60Wl-0003ru-Ln
	for xen-api@lists.xen.org; Tue, 30 Dec 2014 17:24:15 +0000
Received: from [85.158.137.68] by server-2.bemta-3.messagelabs.com id
	AC/A3-05632-EBFD2A45; Tue, 30 Dec 2014 17:24:14 +0000
X-Env-Sender: dkadds2@gmail.com
X-Msg-Ref: server-10.tower-31.messagelabs.com!1419960254!16438016!1
X-Originating-IP: [74.125.82.171]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 14849 invoked from network); 30 Dec 2014 17:24:14 -0000
Received: from mail-we0-f171.google.com (HELO mail-we0-f171.google.com)
	(74.125.82.171)
	by server-10.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Dec 2014 17:24:14 -0000
Received: by mail-we0-f171.google.com with SMTP id u56so1336705wes.2
	for <xen-api@lists.xen.org>; Tue, 30 Dec 2014 09:24:14 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=message-id:date:from:user-agent:mime-version:to:subject:references
	:in-reply-to:content-type:content-transfer-encoding;
	bh=Ijl1580hxvutTh7BPaWPwdJTJM4aHyCuOpyBgJBtuX0=;
	b=YwTjc03pEcL7a3iMS0k/i74LospBqoHJjz1HnJ1kjqzZTPBCIxgs/KgyPNLxmmvVc+
	JCtf2TQq2lrE5EsfCNuOl3bjHEP2gbJS1J9fU+sbWN/XZfLdxhStq/PrhShUtypreCML
	a6Hq1IHzu67EqUZ+juoEm5ZL6r8xfZajFh/oS3+n/B/g1eOvDfSyENKsL0AhMuupo2Ik
	+Drde9M5GJTju3MAiITk/8Ew2qlPoy2PRVRaFubPXeNng2cdBVFL4CncAhiLjQTWJGu8
	BAwnz2rDe0YukEJrQTUoCFnzzL37l+jo5iNqJak4GE6vcYXvZyCVweHMOtiUK8vr7cyC
	aExg==
X-Received: by 10.180.96.97 with SMTP id dr1mr105785214wib.49.1419960254175;
	Tue, 30 Dec 2014 09:24:14 -0800 (PST)
Received: from BlackApple.local ([88.169.214.221])
	by mx.google.com with ESMTPSA id
	wb9sm44107034wic.20.2014.12.30.09.24.10 for <xen-api@lists.xen.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 30 Dec 2014 09:24:13 -0800 (PST)
Message-ID: <54A2DFB8.2010605@gmail.com>
Date: Tue, 30 Dec 2014 18:24:08 +0100
From: Dawid Kowalski <dkadds2@gmail.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10;
	rv:31.0) Gecko/20100101 Thunderbird/31.3.0
MIME-Version: 1.0
To: Xen API mailing list <xen-api@lists.xen.org>
References: <54A2DCB2.6070208@gmail.com>
In-Reply-To: <54A2DCB2.6070208@gmail.com>
Subject: Re: [Xen-API] Storage Repository FileSR on ZFS won't work - Linux
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

I'll answer myself.

Modifying td.c line 258 to skip O_DIRECT and recompiling doesn't help.
For some unexplained reasons, it calls O_DIRECT flag still:

strace ./td-util create vhd 2048 /path/to/file
open("/path/to/file", O_WRONLY|O_CREAT|O_TRUNC|O_DIRECT, 0644) = -1 
EINVAL (Invalid argument)
exit_group(22)                          = ?
+++ exited with 22 +++

Checking other files with O_WRONLY flag doesn't bring any ideas as none 
of them use "O_DIRECT".

lock.c:        fd = open(buf, O_WRONLY | O_CREAT, 0644);
lock.c:        fd = open(lockfn, O_WRONLY | O_CREAT | O_EXCL, 0644);
lock.c:                fd = open(lockfn_flink, O_WRONLY | O_CREAT, 0644);
tapdisk-vbd.c:    fd = open(fn, O_WRONLY | O_CREAT | O_NONBLOCK, 0666);
td.c:    fd = open(name, O_WRONLY | O_CREAT | O_TRUNC, 0644);


Any ideas how to fix FileSR for ZFS on Linux?

Seems like I'm left with iScsi approach only.

Thanks,
Dawid

On 30/12/14 18:11, Dawid Kowalski wrote:
> Hi Guys,
>
> Just wanted to report that file based Storage Repository won't work on 
> Linux systems as td-util is required O_DIRECT when creating image file 
> not supported on ZFS (Linux).
>
> When creating vm, i.e. vm-import it calls td-util similar to below:
> td-util create vhd 2048 /path/to/file
>
> Strace shows:
> open("/path/to/file", O_WRONLY|O_CREAT|O_TRUNC|O_DIRECT, 0644) = -1 
> EINVAL (Invalid argument)
>
> I'll try to patch td.c to skip O_DIRECT flag but this is rather dirty 
> hack than proper solution of the problem.
>
> Regards,
> Dawid


_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

From xen-api-bounces@lists.xen.org Tue Dec 30 17:24:19 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2014 17:24:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Y60Wm-0003s0-Rq; Tue, 30 Dec 2014 17:24:16 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <dkadds2@gmail.com>) id 1Y60Wl-0003ru-Ln
	for xen-api@lists.xen.org; Tue, 30 Dec 2014 17:24:15 +0000
Received: from [85.158.137.68] by server-2.bemta-3.messagelabs.com id
	AC/A3-05632-EBFD2A45; Tue, 30 Dec 2014 17:24:14 +0000
X-Env-Sender: dkadds2@gmail.com
X-Msg-Ref: server-10.tower-31.messagelabs.com!1419960254!16438016!1
X-Originating-IP: [74.125.82.171]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 14849 invoked from network); 30 Dec 2014 17:24:14 -0000
Received: from mail-we0-f171.google.com (HELO mail-we0-f171.google.com)
	(74.125.82.171)
	by server-10.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Dec 2014 17:24:14 -0000
Received: by mail-we0-f171.google.com with SMTP id u56so1336705wes.2
	for <xen-api@lists.xen.org>; Tue, 30 Dec 2014 09:24:14 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=message-id:date:from:user-agent:mime-version:to:subject:references
	:in-reply-to:content-type:content-transfer-encoding;
	bh=Ijl1580hxvutTh7BPaWPwdJTJM4aHyCuOpyBgJBtuX0=;
	b=YwTjc03pEcL7a3iMS0k/i74LospBqoHJjz1HnJ1kjqzZTPBCIxgs/KgyPNLxmmvVc+
	JCtf2TQq2lrE5EsfCNuOl3bjHEP2gbJS1J9fU+sbWN/XZfLdxhStq/PrhShUtypreCML
	a6Hq1IHzu67EqUZ+juoEm5ZL6r8xfZajFh/oS3+n/B/g1eOvDfSyENKsL0AhMuupo2Ik
	+Drde9M5GJTju3MAiITk/8Ew2qlPoy2PRVRaFubPXeNng2cdBVFL4CncAhiLjQTWJGu8
	BAwnz2rDe0YukEJrQTUoCFnzzL37l+jo5iNqJak4GE6vcYXvZyCVweHMOtiUK8vr7cyC
	aExg==
X-Received: by 10.180.96.97 with SMTP id dr1mr105785214wib.49.1419960254175;
	Tue, 30 Dec 2014 09:24:14 -0800 (PST)
Received: from BlackApple.local ([88.169.214.221])
	by mx.google.com with ESMTPSA id
	wb9sm44107034wic.20.2014.12.30.09.24.10 for <xen-api@lists.xen.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 30 Dec 2014 09:24:13 -0800 (PST)
Message-ID: <54A2DFB8.2010605@gmail.com>
Date: Tue, 30 Dec 2014 18:24:08 +0100
From: Dawid Kowalski <dkadds2@gmail.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10;
	rv:31.0) Gecko/20100101 Thunderbird/31.3.0
MIME-Version: 1.0
To: Xen API mailing list <xen-api@lists.xen.org>
References: <54A2DCB2.6070208@gmail.com>
In-Reply-To: <54A2DCB2.6070208@gmail.com>
Subject: Re: [Xen-API] Storage Repository FileSR on ZFS won't work - Linux
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

I'll answer myself.

Modifying td.c line 258 to skip O_DIRECT and recompiling doesn't help.
For some unexplained reasons, it calls O_DIRECT flag still:

strace ./td-util create vhd 2048 /path/to/file
open("/path/to/file", O_WRONLY|O_CREAT|O_TRUNC|O_DIRECT, 0644) = -1 
EINVAL (Invalid argument)
exit_group(22)                          = ?
+++ exited with 22 +++

Checking other files with O_WRONLY flag doesn't bring any ideas as none 
of them use "O_DIRECT".

lock.c:        fd = open(buf, O_WRONLY | O_CREAT, 0644);
lock.c:        fd = open(lockfn, O_WRONLY | O_CREAT | O_EXCL, 0644);
lock.c:                fd = open(lockfn_flink, O_WRONLY | O_CREAT, 0644);
tapdisk-vbd.c:    fd = open(fn, O_WRONLY | O_CREAT | O_NONBLOCK, 0666);
td.c:    fd = open(name, O_WRONLY | O_CREAT | O_TRUNC, 0644);


Any ideas how to fix FileSR for ZFS on Linux?

Seems like I'm left with iScsi approach only.

Thanks,
Dawid

On 30/12/14 18:11, Dawid Kowalski wrote:
> Hi Guys,
>
> Just wanted to report that file based Storage Repository won't work on 
> Linux systems as td-util is required O_DIRECT when creating image file 
> not supported on ZFS (Linux).
>
> When creating vm, i.e. vm-import it calls td-util similar to below:
> td-util create vhd 2048 /path/to/file
>
> Strace shows:
> open("/path/to/file", O_WRONLY|O_CREAT|O_TRUNC|O_DIRECT, 0644) = -1 
> EINVAL (Invalid argument)
>
> I'll try to patch td.c to skip O_DIRECT flag but this is rather dirty 
> hack than proper solution of the problem.
>
> Regards,
> Dawid


_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

From xen-api-bounces@lists.xen.org Tue Dec 30 17:40:43 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2014 17:40:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Y60mb-00046G-8x; Tue, 30 Dec 2014 17:40:37 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Dave.Scott@citrix.com>) id 1Y60mZ-00046B-BU
	for xen-api@lists.xen.org; Tue, 30 Dec 2014 17:40:35 +0000
Received: from [85.158.137.68] by server-11.bemta-3.messagelabs.com id
	D6/61-25547-293E2A45; Tue, 30 Dec 2014 17:40:34 +0000
X-Env-Sender: Dave.Scott@citrix.com
X-Msg-Ref: server-14.tower-31.messagelabs.com!1419961233!14025353!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
	Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 14844 invoked from network); 30 Dec 2014 17:40:33 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-14.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Dec 2014 17:40:33 -0000
X-IronPort-AV: E=Sophos;i="5.07,666,1413244800"; d="scan'208";a="28284141"
From: Dave Scott <Dave.Scott@citrix.com>
To: Dawid Kowalski <dkadds2@gmail.com>
Thread-Topic: [Xen-API] Storage Repository FileSR on ZFS won't work - Linux
Thread-Index: AQHQJFPKF/CRWHU6Eki/SIomFmNceZyoUWoAgAAEj4A=
Date: Tue, 30 Dec 2014 17:40:29 +0000
Message-ID: <0D6B7E67-20FA-4D86-888F-E2DD9384DCFA@citrix.com>
References: <54A2DCB2.6070208@gmail.com> <54A2DFB8.2010605@gmail.com>
In-Reply-To: <54A2DFB8.2010605@gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Content-ID: <64E286F787C39F49B1C069B373F3F7DB@citrix.com>
MIME-Version: 1.0
X-DLP: AMS1
Cc: Xen API mailing list <xen-api@lists.xen.org>
Subject: Re: [Xen-API] Storage Repository FileSR on ZFS won't work - Linux
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

DQo+IE9uIDMwIERlYyAyMDE0LCBhdCAxNzoyNCwgRGF3aWQgS293YWxza2kgPGRrYWRkczJAZ21h
aWwuY29tPiB3cm90ZToNCj4gDQo+IEknbGwgYW5zd2VyIG15c2VsZi4NCj4gDQo+IE1vZGlmeWlu
ZyB0ZC5jIGxpbmUgMjU4IHRvIHNraXAgT19ESVJFQ1QgYW5kIHJlY29tcGlsaW5nIGRvZXNuJ3Qg
aGVscC4NCj4gRm9yIHNvbWUgdW5leHBsYWluZWQgcmVhc29ucywgaXQgY2FsbHMgT19ESVJFQ1Qg
ZmxhZyBzdGlsbDoNCg0KSG0uIEFzIGFuIGV4cGVyaW1lbnQgeW91IGNvdWxkIHRyeSBhbiBMRF9Q
UkVMT0FEIHdyYXBwZXIgbGlrZSB0aGlzOg0KDQpodHRwOi8vd3d3Lm1jZ2lsbC5vcmcuemEvc3R1
ZmYvc29mdHdhcmUvbm9zeW5jDQoNCkJlZm9yZSB1c2luZyBhbnl0aGluZyBsaWtlIHRoaXMgZm9y
IGRhdGEgeW91IGNhcmUgYWJvdXQsIHdlIG5lZWQgdG8gdGhpbmsgaXQgdGhyb3VnaCBhIGxpdHRs
ZSB0byBtYWtlIHN1cmUgaXTigJlzIHNhZmUuIFBlcmhhcHMgTGludXggemZzIHN1cHBvcnQgZm9y
IGlTQ1NJIGlzIHNhZmVyPyAoU29ycnkgdG8gZmxpcC1mbG9wIG9uIHRoaXMsIEnigJltIG5vdCB2
ZXJ5IGZhbWlsaWFyIHdpdGggWkZTKQ0KDQpDaGVlcnMsDQpEYXZlDQoNCj4gDQo+IHN0cmFjZSAu
L3RkLXV0aWwgY3JlYXRlIHZoZCAyMDQ4IC9wYXRoL3RvL2ZpbGUNCj4gb3BlbigiL3BhdGgvdG8v
ZmlsZSIsIE9fV1JPTkxZfE9fQ1JFQVR8T19UUlVOQ3xPX0RJUkVDVCwgMDY0NCkgPSAtMSBFSU5W
QUwgKEludmFsaWQgYXJndW1lbnQpDQo+IGV4aXRfZ3JvdXAoMjIpICAgICAgICAgICAgICAgICAg
ICAgICAgICA9ID8NCj4gKysrIGV4aXRlZCB3aXRoIDIyICsrKw0KPiANCj4gQ2hlY2tpbmcgb3Ro
ZXIgZmlsZXMgd2l0aCBPX1dST05MWSBmbGFnIGRvZXNuJ3QgYnJpbmcgYW55IGlkZWFzIGFzIG5v
bmUgb2YgdGhlbSB1c2UgIk9fRElSRUNUIi4NCj4gDQo+IGxvY2suYzogICAgICAgIGZkID0gb3Bl
bihidWYsIE9fV1JPTkxZIHwgT19DUkVBVCwgMDY0NCk7DQo+IGxvY2suYzogICAgICAgIGZkID0g
b3Blbihsb2NrZm4sIE9fV1JPTkxZIHwgT19DUkVBVCB8IE9fRVhDTCwgMDY0NCk7DQo+IGxvY2su
YzogICAgICAgICAgICAgICAgZmQgPSBvcGVuKGxvY2tmbl9mbGluaywgT19XUk9OTFkgfCBPX0NS
RUFULCAwNjQ0KTsNCj4gdGFwZGlzay12YmQuYzogICAgZmQgPSBvcGVuKGZuLCBPX1dST05MWSB8
IE9fQ1JFQVQgfCBPX05PTkJMT0NLLCAwNjY2KTsNCj4gdGQuYzogICAgZmQgPSBvcGVuKG5hbWUs
IE9fV1JPTkxZIHwgT19DUkVBVCB8IE9fVFJVTkMsIDA2NDQpOw0KPiANCj4gDQo+IEFueSBpZGVh
cyBob3cgdG8gZml4IEZpbGVTUiBmb3IgWkZTIG9uIExpbnV4Pw0KPiANCj4gU2VlbXMgbGlrZSBJ
J20gbGVmdCB3aXRoIGlTY3NpIGFwcHJvYWNoIG9ubHkuDQo+IA0KPiBUaGFua3MsDQo+IERhd2lk
DQo+IA0KPiBPbiAzMC8xMi8xNCAxODoxMSwgRGF3aWQgS293YWxza2kgd3JvdGU6DQo+PiBIaSBH
dXlzLA0KPj4gDQo+PiBKdXN0IHdhbnRlZCB0byByZXBvcnQgdGhhdCBmaWxlIGJhc2VkIFN0b3Jh
Z2UgUmVwb3NpdG9yeSB3b24ndCB3b3JrIG9uIExpbnV4IHN5c3RlbXMgYXMgdGQtdXRpbCBpcyBy
ZXF1aXJlZCBPX0RJUkVDVCB3aGVuIGNyZWF0aW5nIGltYWdlIGZpbGUgbm90IHN1cHBvcnRlZCBv
biBaRlMgKExpbnV4KS4NCj4+IA0KPj4gV2hlbiBjcmVhdGluZyB2bSwgaS5lLiB2bS1pbXBvcnQg
aXQgY2FsbHMgdGQtdXRpbCBzaW1pbGFyIHRvIGJlbG93Og0KPj4gdGQtdXRpbCBjcmVhdGUgdmhk
IDIwNDggL3BhdGgvdG8vZmlsZQ0KPj4gDQo+PiBTdHJhY2Ugc2hvd3M6DQo+PiBvcGVuKCIvcGF0
aC90by9maWxlIiwgT19XUk9OTFl8T19DUkVBVHxPX1RSVU5DfE9fRElSRUNULCAwNjQ0KSA9IC0x
IEVJTlZBTCAoSW52YWxpZCBhcmd1bWVudCkNCj4+IA0KPj4gSSdsbCB0cnkgdG8gcGF0Y2ggdGQu
YyB0byBza2lwIE9fRElSRUNUIGZsYWcgYnV0IHRoaXMgaXMgcmF0aGVyIGRpcnR5IGhhY2sgdGhh
biBwcm9wZXIgc29sdXRpb24gb2YgdGhlIHByb2JsZW0uDQo+PiANCj4+IFJlZ2FyZHMsDQo+PiBE
YXdpZA0KPiANCj4gDQo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fDQo+IFhlbi1hcGkgbWFpbGluZyBsaXN0DQo+IFhlbi1hcGlAbGlzdHMueGVuLm9yZw0K
PiBodHRwOi8vbGlzdHMueGVuLm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8veGVuLWFwaQ0K
DQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tYXBp
IG1haWxpbmcgbGlzdApYZW4tYXBpQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcv
Y2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3hlbi1hcGkK

From xen-api-bounces@lists.xen.org Tue Dec 30 17:40:43 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2014 17:40:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Y60mb-00046G-8x; Tue, 30 Dec 2014 17:40:37 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <Dave.Scott@citrix.com>) id 1Y60mZ-00046B-BU
	for xen-api@lists.xen.org; Tue, 30 Dec 2014 17:40:35 +0000
Received: from [85.158.137.68] by server-11.bemta-3.messagelabs.com id
	D6/61-25547-293E2A45; Tue, 30 Dec 2014 17:40:34 +0000
X-Env-Sender: Dave.Scott@citrix.com
X-Msg-Ref: server-14.tower-31.messagelabs.com!1419961233!14025353!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
	Received headers
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 14844 invoked from network); 30 Dec 2014 17:40:33 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
	by server-14.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Dec 2014 17:40:33 -0000
X-IronPort-AV: E=Sophos;i="5.07,666,1413244800"; d="scan'208";a="28284141"
From: Dave Scott <Dave.Scott@citrix.com>
To: Dawid Kowalski <dkadds2@gmail.com>
Thread-Topic: [Xen-API] Storage Repository FileSR on ZFS won't work - Linux
Thread-Index: AQHQJFPKF/CRWHU6Eki/SIomFmNceZyoUWoAgAAEj4A=
Date: Tue, 30 Dec 2014 17:40:29 +0000
Message-ID: <0D6B7E67-20FA-4D86-888F-E2DD9384DCFA@citrix.com>
References: <54A2DCB2.6070208@gmail.com> <54A2DFB8.2010605@gmail.com>
In-Reply-To: <54A2DFB8.2010605@gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Content-ID: <64E286F787C39F49B1C069B373F3F7DB@citrix.com>
MIME-Version: 1.0
X-DLP: AMS1
Cc: Xen API mailing list <xen-api@lists.xen.org>
Subject: Re: [Xen-API] Storage Repository FileSR on ZFS won't work - Linux
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

DQo+IE9uIDMwIERlYyAyMDE0LCBhdCAxNzoyNCwgRGF3aWQgS293YWxza2kgPGRrYWRkczJAZ21h
aWwuY29tPiB3cm90ZToNCj4gDQo+IEknbGwgYW5zd2VyIG15c2VsZi4NCj4gDQo+IE1vZGlmeWlu
ZyB0ZC5jIGxpbmUgMjU4IHRvIHNraXAgT19ESVJFQ1QgYW5kIHJlY29tcGlsaW5nIGRvZXNuJ3Qg
aGVscC4NCj4gRm9yIHNvbWUgdW5leHBsYWluZWQgcmVhc29ucywgaXQgY2FsbHMgT19ESVJFQ1Qg
ZmxhZyBzdGlsbDoNCg0KSG0uIEFzIGFuIGV4cGVyaW1lbnQgeW91IGNvdWxkIHRyeSBhbiBMRF9Q
UkVMT0FEIHdyYXBwZXIgbGlrZSB0aGlzOg0KDQpodHRwOi8vd3d3Lm1jZ2lsbC5vcmcuemEvc3R1
ZmYvc29mdHdhcmUvbm9zeW5jDQoNCkJlZm9yZSB1c2luZyBhbnl0aGluZyBsaWtlIHRoaXMgZm9y
IGRhdGEgeW91IGNhcmUgYWJvdXQsIHdlIG5lZWQgdG8gdGhpbmsgaXQgdGhyb3VnaCBhIGxpdHRs
ZSB0byBtYWtlIHN1cmUgaXTigJlzIHNhZmUuIFBlcmhhcHMgTGludXggemZzIHN1cHBvcnQgZm9y
IGlTQ1NJIGlzIHNhZmVyPyAoU29ycnkgdG8gZmxpcC1mbG9wIG9uIHRoaXMsIEnigJltIG5vdCB2
ZXJ5IGZhbWlsaWFyIHdpdGggWkZTKQ0KDQpDaGVlcnMsDQpEYXZlDQoNCj4gDQo+IHN0cmFjZSAu
L3RkLXV0aWwgY3JlYXRlIHZoZCAyMDQ4IC9wYXRoL3RvL2ZpbGUNCj4gb3BlbigiL3BhdGgvdG8v
ZmlsZSIsIE9fV1JPTkxZfE9fQ1JFQVR8T19UUlVOQ3xPX0RJUkVDVCwgMDY0NCkgPSAtMSBFSU5W
QUwgKEludmFsaWQgYXJndW1lbnQpDQo+IGV4aXRfZ3JvdXAoMjIpICAgICAgICAgICAgICAgICAg
ICAgICAgICA9ID8NCj4gKysrIGV4aXRlZCB3aXRoIDIyICsrKw0KPiANCj4gQ2hlY2tpbmcgb3Ro
ZXIgZmlsZXMgd2l0aCBPX1dST05MWSBmbGFnIGRvZXNuJ3QgYnJpbmcgYW55IGlkZWFzIGFzIG5v
bmUgb2YgdGhlbSB1c2UgIk9fRElSRUNUIi4NCj4gDQo+IGxvY2suYzogICAgICAgIGZkID0gb3Bl
bihidWYsIE9fV1JPTkxZIHwgT19DUkVBVCwgMDY0NCk7DQo+IGxvY2suYzogICAgICAgIGZkID0g
b3Blbihsb2NrZm4sIE9fV1JPTkxZIHwgT19DUkVBVCB8IE9fRVhDTCwgMDY0NCk7DQo+IGxvY2su
YzogICAgICAgICAgICAgICAgZmQgPSBvcGVuKGxvY2tmbl9mbGluaywgT19XUk9OTFkgfCBPX0NS
RUFULCAwNjQ0KTsNCj4gdGFwZGlzay12YmQuYzogICAgZmQgPSBvcGVuKGZuLCBPX1dST05MWSB8
IE9fQ1JFQVQgfCBPX05PTkJMT0NLLCAwNjY2KTsNCj4gdGQuYzogICAgZmQgPSBvcGVuKG5hbWUs
IE9fV1JPTkxZIHwgT19DUkVBVCB8IE9fVFJVTkMsIDA2NDQpOw0KPiANCj4gDQo+IEFueSBpZGVh
cyBob3cgdG8gZml4IEZpbGVTUiBmb3IgWkZTIG9uIExpbnV4Pw0KPiANCj4gU2VlbXMgbGlrZSBJ
J20gbGVmdCB3aXRoIGlTY3NpIGFwcHJvYWNoIG9ubHkuDQo+IA0KPiBUaGFua3MsDQo+IERhd2lk
DQo+IA0KPiBPbiAzMC8xMi8xNCAxODoxMSwgRGF3aWQgS293YWxza2kgd3JvdGU6DQo+PiBIaSBH
dXlzLA0KPj4gDQo+PiBKdXN0IHdhbnRlZCB0byByZXBvcnQgdGhhdCBmaWxlIGJhc2VkIFN0b3Jh
Z2UgUmVwb3NpdG9yeSB3b24ndCB3b3JrIG9uIExpbnV4IHN5c3RlbXMgYXMgdGQtdXRpbCBpcyBy
ZXF1aXJlZCBPX0RJUkVDVCB3aGVuIGNyZWF0aW5nIGltYWdlIGZpbGUgbm90IHN1cHBvcnRlZCBv
biBaRlMgKExpbnV4KS4NCj4+IA0KPj4gV2hlbiBjcmVhdGluZyB2bSwgaS5lLiB2bS1pbXBvcnQg
aXQgY2FsbHMgdGQtdXRpbCBzaW1pbGFyIHRvIGJlbG93Og0KPj4gdGQtdXRpbCBjcmVhdGUgdmhk
IDIwNDggL3BhdGgvdG8vZmlsZQ0KPj4gDQo+PiBTdHJhY2Ugc2hvd3M6DQo+PiBvcGVuKCIvcGF0
aC90by9maWxlIiwgT19XUk9OTFl8T19DUkVBVHxPX1RSVU5DfE9fRElSRUNULCAwNjQ0KSA9IC0x
IEVJTlZBTCAoSW52YWxpZCBhcmd1bWVudCkNCj4+IA0KPj4gSSdsbCB0cnkgdG8gcGF0Y2ggdGQu
YyB0byBza2lwIE9fRElSRUNUIGZsYWcgYnV0IHRoaXMgaXMgcmF0aGVyIGRpcnR5IGhhY2sgdGhh
biBwcm9wZXIgc29sdXRpb24gb2YgdGhlIHByb2JsZW0uDQo+PiANCj4+IFJlZ2FyZHMsDQo+PiBE
YXdpZA0KPiANCj4gDQo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fDQo+IFhlbi1hcGkgbWFpbGluZyBsaXN0DQo+IFhlbi1hcGlAbGlzdHMueGVuLm9yZw0K
PiBodHRwOi8vbGlzdHMueGVuLm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8veGVuLWFwaQ0K
DQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tYXBp
IG1haWxpbmcgbGlzdApYZW4tYXBpQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcv
Y2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3hlbi1hcGkK

From xen-api-bounces@lists.xen.org Tue Dec 30 17:45:29 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2014 17:45:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Y60rI-0004It-PT; Tue, 30 Dec 2014 17:45:28 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <dkadds2@gmail.com>) id 1Y60rH-0004Io-Kk
	for xen-api@lists.xen.org; Tue, 30 Dec 2014 17:45:27 +0000
Received: from [193.109.254.147] by server-1.bemta-14.messagelabs.com id
	90/95-20609-7B4E2A45; Tue, 30 Dec 2014 17:45:27 +0000
X-Env-Sender: dkadds2@gmail.com
X-Msg-Ref: server-2.tower-27.messagelabs.com!1419961520!17826613!1
X-Originating-IP: [209.85.212.172]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 11696 invoked from network); 30 Dec 2014 17:45:21 -0000
Received: from mail-wi0-f172.google.com (HELO mail-wi0-f172.google.com)
	(209.85.212.172)
	by server-2.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Dec 2014 17:45:21 -0000
Received: by mail-wi0-f172.google.com with SMTP id n3so24415579wiv.5
	for <xen-api@lists.xen.org>; Tue, 30 Dec 2014 09:45:20 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=message-id:date:from:user-agent:mime-version:to:cc:subject
	:references:in-reply-to:content-type:content-transfer-encoding;
	bh=YqWtLDJxQIbvU16EvnZ6dho02qBSrqqmJEnOu9Bvz/M=;
	b=Y4yzP2BNKspH/MyBlU3t8MYK4BiAwV88qwweyY4uDPXK6I2N0zlCnxaj+xVdkY9823
	XgaDXpFSIJbxkYPp6Xh6OR1jTSVV3oJRlXaKl2U/SowwhTVmJUEkCk9gWkHOELwFyNvQ
	/r0FQT7EnmbGFMzrwHoJ3y62VS+2iNeFfaCrevu5NytZgH2plzVg8ux4FooZWbxcJl6s
	3mORjf+yF8IH4IDMo0yE0Ho7qAR6fjM1YM6VE1yfr4COaqTmXVAwXctq3J8ADD3PoHV/
	1Re1FV4kC6U2VjDAR1fSgbK80qNXkmCc1gLqYv0ri9FG39JbS8xfhhPxwuAVrb+LQHOc
	rzxw==
X-Received: by 10.194.175.2 with SMTP id bw2mr116136283wjc.117.1419961520662; 
	Tue, 30 Dec 2014 09:45:20 -0800 (PST)
Received: from BlackApple.local ([88.169.214.221])
	by mx.google.com with ESMTPSA id r3sm44185418wic.10.2014.12.30.09.45.19
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 30 Dec 2014 09:45:20 -0800 (PST)
Message-ID: <54A2E4AE.8010504@gmail.com>
Date: Tue, 30 Dec 2014 18:45:18 +0100
From: Dawid Kowalski <dkadds2@gmail.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10;
	rv:31.0) Gecko/20100101 Thunderbird/31.3.0
MIME-Version: 1.0
To: Dave Scott <Dave.Scott@citrix.com>
References: <54A2DCB2.6070208@gmail.com> <54A2DFB8.2010605@gmail.com>
	<0D6B7E67-20FA-4D86-888F-E2DD9384DCFA@citrix.com>
In-Reply-To: <0D6B7E67-20FA-4D86-888F-E2DD9384DCFA@citrix.com>
Content-Length: 4073
Cc: Xen API mailing list <xen-api@lists.xen.org>
Subject: Re: [Xen-API] Storage Repository FileSR on ZFS won't work - Linux
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

SnVzdCBhcyBhIGZvcm0gb2YgYW4gdXBkYXRlLiBJJ20gc3R1Y2sgdHJ5aW5nIHRvIGdldCBORlMg
d29ya2luZyBhcyBubyAKb3RoZXIgd2F5IHRvIHVzZSBaRlMgaW4gYmFja2dyb3VuZCBzZWVtcyB0
byBiZSBhdmFpbGFibGUgZm9yIG1lLiBpU0NTSSAKc2hhcmUgb3B0aW9uIGZvciBaRlMgaXMgbm90
IGF2YWlsYWJsZSBvbiBMaW51eC4gU2hvdWxkIEkgdHJ5IHRvIGVuYWJsZSAKaXQgSSdkIG5lZWQg
dG8gYWRkIHRoaXJkLXBhcnR5IGRhZW1vbi4KCkknbSBsb29raW5nIGZvcndhcmQgZm9yIHlvdXIg
aGVscCBpbiBORlMgY29udGV4dC4KCkluIHJlZ2FyZHMgdG8gbm9zeW5jIC0gSSdtIGhhcHB5IHRv
IGdpdmUgaXQgYSB0cnkgYXMgaXQncyBqdXN0IGEgdGVzdCAKc3lzdGVtIG5vdyBidXQgSSdkIHBy
ZWZlciB0byBmaW5kIHdvcmtpbmcgc29sdXRpb24uCgpJJ3ZlIHNwZW50IGNvdXBsZSBvZiBkYXlz
L2V2ZW5pbmdzIGFscmVhZHkgZmlnaHRpbmcgdG8gZ2V0IFhlbiB3b3JraW5nIApvbiBVYnVudHUg
d2l0aCBaRlMgYW5kIEknbSBjbG9zZSB0byBnaXZlIHVwIGFuZCB0cnkgS1ZNLiBJdCdzIHdheSB0
byAKY29tcGxpY2F0ZWQuCgpJJ2xsIHN0aWxsIGtlZXAgdHJ5aW5nLi4uCgpUaGFua3MsCkRhd2lk
CgoKT24gMzAvMTIvMTQgMTg6NDAsIERhdmUgU2NvdHQgd3JvdGU6Cj4+IE9uIDMwIERlYyAyMDE0
LCBhdCAxNzoyNCwgRGF3aWQgS293YWxza2kgPGRrYWRkczJAZ21haWwuY29tPiB3cm90ZToKPj4K
Pj4gSSdsbCBhbnN3ZXIgbXlzZWxmLgo+Pgo+PiBNb2RpZnlpbmcgdGQuYyBsaW5lIDI1OCB0byBz
a2lwIE9fRElSRUNUIGFuZCByZWNvbXBpbGluZyBkb2Vzbid0IGhlbHAuCj4+IEZvciBzb21lIHVu
ZXhwbGFpbmVkIHJlYXNvbnMsIGl0IGNhbGxzIE9fRElSRUNUIGZsYWcgc3RpbGw6Cj4gSG0uIEFz
IGFuIGV4cGVyaW1lbnQgeW91IGNvdWxkIHRyeSBhbiBMRF9QUkVMT0FEIHdyYXBwZXIgbGlrZSB0
aGlzOgo+Cj4gaHR0cDovL3d3dy5tY2dpbGwub3JnLnphL3N0dWZmL3NvZnR3YXJlL25vc3luYwo+
Cj4gQmVmb3JlIHVzaW5nIGFueXRoaW5nIGxpa2UgdGhpcyBmb3IgZGF0YSB5b3UgY2FyZSBhYm91
dCwgd2UgbmVlZCB0byB0aGluayBpdCB0aHJvdWdoIGEgbGl0dGxlIHRvIG1ha2Ugc3VyZSBpdOKA
mXMgc2FmZS4gUGVyaGFwcyBMaW51eCB6ZnMgc3VwcG9ydCBmb3IgaVNDU0kgaXMgc2FmZXI/IChT
b3JyeSB0byBmbGlwLWZsb3Agb24gdGhpcywgSeKAmW0gbm90IHZlcnkgZmFtaWxpYXIgd2l0aCBa
RlMpCj4KPiBDaGVlcnMsCj4gRGF2ZQo+Cj4+IHN0cmFjZSAuL3RkLXV0aWwgY3JlYXRlIHZoZCAy
MDQ4IC9wYXRoL3RvL2ZpbGUKPj4gb3BlbigiL3BhdGgvdG8vZmlsZSIsIE9fV1JPTkxZfE9fQ1JF
QVR8T19UUlVOQ3xPX0RJUkVDVCwgMDY0NCkgPSAtMSBFSU5WQUwgKEludmFsaWQgYXJndW1lbnQp
Cj4+IGV4aXRfZ3JvdXAoMjIpICAgICAgICAgICAgICAgICAgICAgICAgICA9ID8KPj4gKysrIGV4
aXRlZCB3aXRoIDIyICsrKwo+Pgo+PiBDaGVja2luZyBvdGhlciBmaWxlcyB3aXRoIE9fV1JPTkxZ
IGZsYWcgZG9lc24ndCBicmluZyBhbnkgaWRlYXMgYXMgbm9uZSBvZiB0aGVtIHVzZSAiT19ESVJF
Q1QiLgo+Pgo+PiBsb2NrLmM6ICAgICAgICBmZCA9IG9wZW4oYnVmLCBPX1dST05MWSB8IE9fQ1JF
QVQsIDA2NDQpOwo+PiBsb2NrLmM6ICAgICAgICBmZCA9IG9wZW4obG9ja2ZuLCBPX1dST05MWSB8
IE9fQ1JFQVQgfCBPX0VYQ0wsIDA2NDQpOwo+PiBsb2NrLmM6ICAgICAgICAgICAgICAgIGZkID0g
b3Blbihsb2NrZm5fZmxpbmssIE9fV1JPTkxZIHwgT19DUkVBVCwgMDY0NCk7Cj4+IHRhcGRpc2st
dmJkLmM6ICAgIGZkID0gb3BlbihmbiwgT19XUk9OTFkgfCBPX0NSRUFUIHwgT19OT05CTE9DSywg
MDY2Nik7Cj4+IHRkLmM6ICAgIGZkID0gb3BlbihuYW1lLCBPX1dST05MWSB8IE9fQ1JFQVQgfCBP
X1RSVU5DLCAwNjQ0KTsKPj4KPj4KPj4gQW55IGlkZWFzIGhvdyB0byBmaXggRmlsZVNSIGZvciBa
RlMgb24gTGludXg/Cj4+Cj4+IFNlZW1zIGxpa2UgSSdtIGxlZnQgd2l0aCBpU2NzaSBhcHByb2Fj
aCBvbmx5Lgo+Pgo+PiBUaGFua3MsCj4+IERhd2lkCj4+Cj4+IE9uIDMwLzEyLzE0IDE4OjExLCBE
YXdpZCBLb3dhbHNraSB3cm90ZToKPj4+IEhpIEd1eXMsCj4+Pgo+Pj4gSnVzdCB3YW50ZWQgdG8g
cmVwb3J0IHRoYXQgZmlsZSBiYXNlZCBTdG9yYWdlIFJlcG9zaXRvcnkgd29uJ3Qgd29yayBvbiBM
aW51eCBzeXN0ZW1zIGFzIHRkLXV0aWwgaXMgcmVxdWlyZWQgT19ESVJFQ1Qgd2hlbiBjcmVhdGlu
ZyBpbWFnZSBmaWxlIG5vdCBzdXBwb3J0ZWQgb24gWkZTIChMaW51eCkuCj4+Pgo+Pj4gV2hlbiBj
cmVhdGluZyB2bSwgaS5lLiB2bS1pbXBvcnQgaXQgY2FsbHMgdGQtdXRpbCBzaW1pbGFyIHRvIGJl
bG93Ogo+Pj4gdGQtdXRpbCBjcmVhdGUgdmhkIDIwNDggL3BhdGgvdG8vZmlsZQo+Pj4KPj4+IFN0
cmFjZSBzaG93czoKPj4+IG9wZW4oIi9wYXRoL3RvL2ZpbGUiLCBPX1dST05MWXxPX0NSRUFUfE9f
VFJVTkN8T19ESVJFQ1QsIDA2NDQpID0gLTEgRUlOVkFMIChJbnZhbGlkIGFyZ3VtZW50KQo+Pj4K
Pj4+IEknbGwgdHJ5IHRvIHBhdGNoIHRkLmMgdG8gc2tpcCBPX0RJUkVDVCBmbGFnIGJ1dCB0aGlz
IGlzIHJhdGhlciBkaXJ0eSBoYWNrIHRoYW4gcHJvcGVyIHNvbHV0aW9uIG9mIHRoZSBwcm9ibGVt
Lgo+Pj4KPj4+IFJlZ2FyZHMsCj4+PiBEYXdpZAo+Pgo+PiBfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBYZW4tYXBpIG1haWxpbmcgbGlzdAo+PiBYZW4t
YXBpQGxpc3RzLnhlbi5vcmcKPj4gaHR0cDovL2xpc3RzLnhlbi5vcmcvY2dpLWJpbi9tYWlsbWFu
L2xpc3RpbmZvL3hlbi1hcGkKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpYZW4tYXBpIG1haWxpbmcgbGlzdApYZW4tYXBpQGxpc3RzLnhlbi5vcmcKaHR0
cDovL2xpc3RzLnhlbi5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3hlbi1hcGkK

From xen-api-bounces@lists.xen.org Tue Dec 30 17:45:29 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2014 17:45:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Y60rI-0004It-PT; Tue, 30 Dec 2014 17:45:28 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <dkadds2@gmail.com>) id 1Y60rH-0004Io-Kk
	for xen-api@lists.xen.org; Tue, 30 Dec 2014 17:45:27 +0000
Received: from [193.109.254.147] by server-1.bemta-14.messagelabs.com id
	90/95-20609-7B4E2A45; Tue, 30 Dec 2014 17:45:27 +0000
X-Env-Sender: dkadds2@gmail.com
X-Msg-Ref: server-2.tower-27.messagelabs.com!1419961520!17826613!1
X-Originating-IP: [209.85.212.172]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 11696 invoked from network); 30 Dec 2014 17:45:21 -0000
Received: from mail-wi0-f172.google.com (HELO mail-wi0-f172.google.com)
	(209.85.212.172)
	by server-2.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Dec 2014 17:45:21 -0000
Received: by mail-wi0-f172.google.com with SMTP id n3so24415579wiv.5
	for <xen-api@lists.xen.org>; Tue, 30 Dec 2014 09:45:20 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=message-id:date:from:user-agent:mime-version:to:cc:subject
	:references:in-reply-to:content-type:content-transfer-encoding;
	bh=YqWtLDJxQIbvU16EvnZ6dho02qBSrqqmJEnOu9Bvz/M=;
	b=Y4yzP2BNKspH/MyBlU3t8MYK4BiAwV88qwweyY4uDPXK6I2N0zlCnxaj+xVdkY9823
	XgaDXpFSIJbxkYPp6Xh6OR1jTSVV3oJRlXaKl2U/SowwhTVmJUEkCk9gWkHOELwFyNvQ
	/r0FQT7EnmbGFMzrwHoJ3y62VS+2iNeFfaCrevu5NytZgH2plzVg8ux4FooZWbxcJl6s
	3mORjf+yF8IH4IDMo0yE0Ho7qAR6fjM1YM6VE1yfr4COaqTmXVAwXctq3J8ADD3PoHV/
	1Re1FV4kC6U2VjDAR1fSgbK80qNXkmCc1gLqYv0ri9FG39JbS8xfhhPxwuAVrb+LQHOc
	rzxw==
X-Received: by 10.194.175.2 with SMTP id bw2mr116136283wjc.117.1419961520662; 
	Tue, 30 Dec 2014 09:45:20 -0800 (PST)
Received: from BlackApple.local ([88.169.214.221])
	by mx.google.com with ESMTPSA id r3sm44185418wic.10.2014.12.30.09.45.19
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 30 Dec 2014 09:45:20 -0800 (PST)
Message-ID: <54A2E4AE.8010504@gmail.com>
Date: Tue, 30 Dec 2014 18:45:18 +0100
From: Dawid Kowalski <dkadds2@gmail.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10;
	rv:31.0) Gecko/20100101 Thunderbird/31.3.0
MIME-Version: 1.0
To: Dave Scott <Dave.Scott@citrix.com>
References: <54A2DCB2.6070208@gmail.com> <54A2DFB8.2010605@gmail.com>
	<0D6B7E67-20FA-4D86-888F-E2DD9384DCFA@citrix.com>
In-Reply-To: <0D6B7E67-20FA-4D86-888F-E2DD9384DCFA@citrix.com>
Content-Length: 4073
Cc: Xen API mailing list <xen-api@lists.xen.org>
Subject: Re: [Xen-API] Storage Repository FileSR on ZFS won't work - Linux
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

SnVzdCBhcyBhIGZvcm0gb2YgYW4gdXBkYXRlLiBJJ20gc3R1Y2sgdHJ5aW5nIHRvIGdldCBORlMg
d29ya2luZyBhcyBubyAKb3RoZXIgd2F5IHRvIHVzZSBaRlMgaW4gYmFja2dyb3VuZCBzZWVtcyB0
byBiZSBhdmFpbGFibGUgZm9yIG1lLiBpU0NTSSAKc2hhcmUgb3B0aW9uIGZvciBaRlMgaXMgbm90
IGF2YWlsYWJsZSBvbiBMaW51eC4gU2hvdWxkIEkgdHJ5IHRvIGVuYWJsZSAKaXQgSSdkIG5lZWQg
dG8gYWRkIHRoaXJkLXBhcnR5IGRhZW1vbi4KCkknbSBsb29raW5nIGZvcndhcmQgZm9yIHlvdXIg
aGVscCBpbiBORlMgY29udGV4dC4KCkluIHJlZ2FyZHMgdG8gbm9zeW5jIC0gSSdtIGhhcHB5IHRv
IGdpdmUgaXQgYSB0cnkgYXMgaXQncyBqdXN0IGEgdGVzdCAKc3lzdGVtIG5vdyBidXQgSSdkIHBy
ZWZlciB0byBmaW5kIHdvcmtpbmcgc29sdXRpb24uCgpJJ3ZlIHNwZW50IGNvdXBsZSBvZiBkYXlz
L2V2ZW5pbmdzIGFscmVhZHkgZmlnaHRpbmcgdG8gZ2V0IFhlbiB3b3JraW5nIApvbiBVYnVudHUg
d2l0aCBaRlMgYW5kIEknbSBjbG9zZSB0byBnaXZlIHVwIGFuZCB0cnkgS1ZNLiBJdCdzIHdheSB0
byAKY29tcGxpY2F0ZWQuCgpJJ2xsIHN0aWxsIGtlZXAgdHJ5aW5nLi4uCgpUaGFua3MsCkRhd2lk
CgoKT24gMzAvMTIvMTQgMTg6NDAsIERhdmUgU2NvdHQgd3JvdGU6Cj4+IE9uIDMwIERlYyAyMDE0
LCBhdCAxNzoyNCwgRGF3aWQgS293YWxza2kgPGRrYWRkczJAZ21haWwuY29tPiB3cm90ZToKPj4K
Pj4gSSdsbCBhbnN3ZXIgbXlzZWxmLgo+Pgo+PiBNb2RpZnlpbmcgdGQuYyBsaW5lIDI1OCB0byBz
a2lwIE9fRElSRUNUIGFuZCByZWNvbXBpbGluZyBkb2Vzbid0IGhlbHAuCj4+IEZvciBzb21lIHVu
ZXhwbGFpbmVkIHJlYXNvbnMsIGl0IGNhbGxzIE9fRElSRUNUIGZsYWcgc3RpbGw6Cj4gSG0uIEFz
IGFuIGV4cGVyaW1lbnQgeW91IGNvdWxkIHRyeSBhbiBMRF9QUkVMT0FEIHdyYXBwZXIgbGlrZSB0
aGlzOgo+Cj4gaHR0cDovL3d3dy5tY2dpbGwub3JnLnphL3N0dWZmL3NvZnR3YXJlL25vc3luYwo+
Cj4gQmVmb3JlIHVzaW5nIGFueXRoaW5nIGxpa2UgdGhpcyBmb3IgZGF0YSB5b3UgY2FyZSBhYm91
dCwgd2UgbmVlZCB0byB0aGluayBpdCB0aHJvdWdoIGEgbGl0dGxlIHRvIG1ha2Ugc3VyZSBpdOKA
mXMgc2FmZS4gUGVyaGFwcyBMaW51eCB6ZnMgc3VwcG9ydCBmb3IgaVNDU0kgaXMgc2FmZXI/IChT
b3JyeSB0byBmbGlwLWZsb3Agb24gdGhpcywgSeKAmW0gbm90IHZlcnkgZmFtaWxpYXIgd2l0aCBa
RlMpCj4KPiBDaGVlcnMsCj4gRGF2ZQo+Cj4+IHN0cmFjZSAuL3RkLXV0aWwgY3JlYXRlIHZoZCAy
MDQ4IC9wYXRoL3RvL2ZpbGUKPj4gb3BlbigiL3BhdGgvdG8vZmlsZSIsIE9fV1JPTkxZfE9fQ1JF
QVR8T19UUlVOQ3xPX0RJUkVDVCwgMDY0NCkgPSAtMSBFSU5WQUwgKEludmFsaWQgYXJndW1lbnQp
Cj4+IGV4aXRfZ3JvdXAoMjIpICAgICAgICAgICAgICAgICAgICAgICAgICA9ID8KPj4gKysrIGV4
aXRlZCB3aXRoIDIyICsrKwo+Pgo+PiBDaGVja2luZyBvdGhlciBmaWxlcyB3aXRoIE9fV1JPTkxZ
IGZsYWcgZG9lc24ndCBicmluZyBhbnkgaWRlYXMgYXMgbm9uZSBvZiB0aGVtIHVzZSAiT19ESVJF
Q1QiLgo+Pgo+PiBsb2NrLmM6ICAgICAgICBmZCA9IG9wZW4oYnVmLCBPX1dST05MWSB8IE9fQ1JF
QVQsIDA2NDQpOwo+PiBsb2NrLmM6ICAgICAgICBmZCA9IG9wZW4obG9ja2ZuLCBPX1dST05MWSB8
IE9fQ1JFQVQgfCBPX0VYQ0wsIDA2NDQpOwo+PiBsb2NrLmM6ICAgICAgICAgICAgICAgIGZkID0g
b3Blbihsb2NrZm5fZmxpbmssIE9fV1JPTkxZIHwgT19DUkVBVCwgMDY0NCk7Cj4+IHRhcGRpc2st
dmJkLmM6ICAgIGZkID0gb3BlbihmbiwgT19XUk9OTFkgfCBPX0NSRUFUIHwgT19OT05CTE9DSywg
MDY2Nik7Cj4+IHRkLmM6ICAgIGZkID0gb3BlbihuYW1lLCBPX1dST05MWSB8IE9fQ1JFQVQgfCBP
X1RSVU5DLCAwNjQ0KTsKPj4KPj4KPj4gQW55IGlkZWFzIGhvdyB0byBmaXggRmlsZVNSIGZvciBa
RlMgb24gTGludXg/Cj4+Cj4+IFNlZW1zIGxpa2UgSSdtIGxlZnQgd2l0aCBpU2NzaSBhcHByb2Fj
aCBvbmx5Lgo+Pgo+PiBUaGFua3MsCj4+IERhd2lkCj4+Cj4+IE9uIDMwLzEyLzE0IDE4OjExLCBE
YXdpZCBLb3dhbHNraSB3cm90ZToKPj4+IEhpIEd1eXMsCj4+Pgo+Pj4gSnVzdCB3YW50ZWQgdG8g
cmVwb3J0IHRoYXQgZmlsZSBiYXNlZCBTdG9yYWdlIFJlcG9zaXRvcnkgd29uJ3Qgd29yayBvbiBM
aW51eCBzeXN0ZW1zIGFzIHRkLXV0aWwgaXMgcmVxdWlyZWQgT19ESVJFQ1Qgd2hlbiBjcmVhdGlu
ZyBpbWFnZSBmaWxlIG5vdCBzdXBwb3J0ZWQgb24gWkZTIChMaW51eCkuCj4+Pgo+Pj4gV2hlbiBj
cmVhdGluZyB2bSwgaS5lLiB2bS1pbXBvcnQgaXQgY2FsbHMgdGQtdXRpbCBzaW1pbGFyIHRvIGJl
bG93Ogo+Pj4gdGQtdXRpbCBjcmVhdGUgdmhkIDIwNDggL3BhdGgvdG8vZmlsZQo+Pj4KPj4+IFN0
cmFjZSBzaG93czoKPj4+IG9wZW4oIi9wYXRoL3RvL2ZpbGUiLCBPX1dST05MWXxPX0NSRUFUfE9f
VFJVTkN8T19ESVJFQ1QsIDA2NDQpID0gLTEgRUlOVkFMIChJbnZhbGlkIGFyZ3VtZW50KQo+Pj4K
Pj4+IEknbGwgdHJ5IHRvIHBhdGNoIHRkLmMgdG8gc2tpcCBPX0RJUkVDVCBmbGFnIGJ1dCB0aGlz
IGlzIHJhdGhlciBkaXJ0eSBoYWNrIHRoYW4gcHJvcGVyIHNvbHV0aW9uIG9mIHRoZSBwcm9ibGVt
Lgo+Pj4KPj4+IFJlZ2FyZHMsCj4+PiBEYXdpZAo+Pgo+PiBfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBYZW4tYXBpIG1haWxpbmcgbGlzdAo+PiBYZW4t
YXBpQGxpc3RzLnhlbi5vcmcKPj4gaHR0cDovL2xpc3RzLnhlbi5vcmcvY2dpLWJpbi9tYWlsbWFu
L2xpc3RpbmZvL3hlbi1hcGkKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpYZW4tYXBpIG1haWxpbmcgbGlzdApYZW4tYXBpQGxpc3RzLnhlbi5vcmcKaHR0
cDovL2xpc3RzLnhlbi5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3hlbi1hcGkK

From xen-api-bounces@lists.xen.org Tue Dec 30 19:04:57 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2014 19:04:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Y6260-0005W7-Ox; Tue, 30 Dec 2014 19:04:44 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <creategui@gmail.com>) id 1Y625y-0005W0-Bz
	for xen-api@lists.xen.org; Tue, 30 Dec 2014 19:04:42 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	BE/7E-09842-947F2A45; Tue, 30 Dec 2014 19:04:41 +0000
X-Env-Sender: creategui@gmail.com
X-Msg-Ref: server-7.tower-21.messagelabs.com!1419966279!18537006!1
X-Originating-IP: [74.125.82.54]
X-SpamReason: No, hits=0.4 required=7.0 tests=HTML_30_40,HTML_MESSAGE,
	RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20922 invoked from network); 30 Dec 2014 19:04:40 -0000
Received: from mail-wg0-f54.google.com (HELO mail-wg0-f54.google.com)
	(74.125.82.54)
	by server-7.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Dec 2014 19:04:40 -0000
Received: by mail-wg0-f54.google.com with SMTP id z12so3268852wgg.13
	for <xen-api@lists.xen.org>; Tue, 30 Dec 2014 11:04:39 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:sender:in-reply-to:references:date:message-id:subject
	:from:to:cc:content-type;
	bh=DeY/PCE9XCd1I/Dee7KuGK7LazRZNIEBMWWf28EYVoM=;
	b=h6U7/IKNgQ1igCCWgb21+AQKhSNjQQIPGbYzMTFdgnyFpih+65eBM4GTV+6d7clzYp
	d1m0SkTQMH4q8xN95mon/0otZHXYgWw/mQRMjH7WKWKyvLN2TWvrk7x86OvD4dru2E5h
	CwBqV/mP41H9g+cOTeq7W7eshu7N36j6BY820cJltkQ7+xmpgW9NiV9N7HCb/JMa28fs
	4873Ot3MNdrRTaf3xqPGmWNHOAXhOSiToUvW/onkZfOx8m3yUpPUtWKaSGrAkcuZ2U6X
	0KLPvdRvssWXn02xH3bx44y2TWm45yzx7r/btBKVFzHi2jCFLMEpYQOs79FwbwMeUqHw
	p9Ag==
MIME-Version: 1.0
X-Received: by 10.180.210.236 with SMTP id mx12mr109627929wic.16.1419966279720;
	Tue, 30 Dec 2014 11:04:39 -0800 (PST)
Received: by 10.180.97.7 with HTTP; Tue, 30 Dec 2014 11:04:39 -0800 (PST)
In-Reply-To: <54A2E4AE.8010504@gmail.com>
References: <54A2DCB2.6070208@gmail.com> <54A2DFB8.2010605@gmail.com>
	<0D6B7E67-20FA-4D86-888F-E2DD9384DCFA@citrix.com>
	<54A2E4AE.8010504@gmail.com>
Date: Tue, 30 Dec 2014 11:04:39 -0800
X-Google-Sender-Auth: UWv2UOGdXvYni_cav53PY_6LphE
Message-ID: <CAMbNGRXq_fy8LiqKbeu2JCHFyG-nwKXsRPuz+TYXfQ7MaaSFbw@mail.gmail.com>
From: Carlos Reategui <carlos@reategui.com>
To: Dawid Kowalski <dkadds2@gmail.com>
Cc: Dave Scott <Dave.Scott@citrix.com>,
	Xen API mailing list <xen-api@lists.xen.org>
Subject: Re: [Xen-API] Storage Repository FileSR on ZFS won't work - Linux
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0391596799275396909=="
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

--===============0391596799275396909==
Content-Type: multipart/alternative; boundary=001a11c3337cb226a0050b73a9b6

--001a11c3337cb226a0050b73a9b6
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Have you tried using ext4 on a ZVOL and putting your VHDs there?

Scroll down to the "Ext4 on a ZVOL" section:
https://pthree.org/2012/12/21/zfs-administration-part-xiv-zvols/


On Tue, Dec 30, 2014 at 9:45 AM, Dawid Kowalski <dkadds2@gmail.com> wrote:

> Just as a form of an update. I'm stuck trying to get NFS working as no
> other way to use ZFS in background seems to be available for me. iSCSI
> share option for ZFS is not available on Linux. Should I try to enable it
> I'd need to add third-party daemon.
>
> I'm looking forward for your help in NFS context.
>
> In regards to nosync - I'm happy to give it a try as it's just a test
> system now but I'd prefer to find working solution.
>
> I've spent couple of days/evenings already fighting to get Xen working on
> Ubuntu with ZFS and I'm close to give up and try KVM. It's way to
> complicated.
>
> I'll still keep trying...
>
> Thanks,
> Dawid
>
>
>
> On 30/12/14 18:40, Dave Scott wrote:
>
>> On 30 Dec 2014, at 17:24, Dawid Kowalski <dkadds2@gmail.com> wrote:
>>>
>>> I'll answer myself.
>>>
>>> Modifying td.c line 258 to skip O_DIRECT and recompiling doesn't help.
>>> For some unexplained reasons, it calls O_DIRECT flag still:
>>>
>> Hm. As an experiment you could try an LD_PRELOAD wrapper like this:
>>
>> http://www.mcgill.org.za/stuff/software/nosync
>>
>> Before using anything like this for data you care about, we need to thin=
k
>> it through a little to make sure it=E2=80=99s safe. Perhaps Linux zfs su=
pport for
>> iSCSI is safer? (Sorry to flip-flop on this, I=E2=80=99m not very famili=
ar with ZFS)
>>
>> Cheers,
>> Dave
>>
>>  strace ./td-util create vhd 2048 /path/to/file
>>> open("/path/to/file", O_WRONLY|O_CREAT|O_TRUNC|O_DIRECT, 0644) =3D -1
>>> EINVAL (Invalid argument)
>>> exit_group(22)                          =3D ?
>>> +++ exited with 22 +++
>>>
>>> Checking other files with O_WRONLY flag doesn't bring any ideas as none
>>> of them use "O_DIRECT".
>>>
>>> lock.c:        fd =3D open(buf, O_WRONLY | O_CREAT, 0644);
>>> lock.c:        fd =3D open(lockfn, O_WRONLY | O_CREAT | O_EXCL, 0644);
>>> lock.c:                fd =3D open(lockfn_flink, O_WRONLY | O_CREAT, 06=
44);
>>> tapdisk-vbd.c:    fd =3D open(fn, O_WRONLY | O_CREAT | O_NONBLOCK, 0666=
);
>>> td.c:    fd =3D open(name, O_WRONLY | O_CREAT | O_TRUNC, 0644);
>>>
>>>
>>> Any ideas how to fix FileSR for ZFS on Linux?
>>>
>>> Seems like I'm left with iScsi approach only.
>>>
>>> Thanks,
>>> Dawid
>>>
>>> On 30/12/14 18:11, Dawid Kowalski wrote:
>>>
>>>> Hi Guys,
>>>>
>>>> Just wanted to report that file based Storage Repository won't work on
>>>> Linux systems as td-util is required O_DIRECT when creating image file=
 not
>>>> supported on ZFS (Linux).
>>>>
>>>> When creating vm, i.e. vm-import it calls td-util similar to below:
>>>> td-util create vhd 2048 /path/to/file
>>>>
>>>> Strace shows:
>>>> open("/path/to/file", O_WRONLY|O_CREAT|O_TRUNC|O_DIRECT, 0644) =3D -1
>>>> EINVAL (Invalid argument)
>>>>
>>>> I'll try to patch td.c to skip O_DIRECT flag but this is rather dirty
>>>> hack than proper solution of the problem.
>>>>
>>>> Regards,
>>>> Dawid
>>>>
>>>
>>> _______________________________________________
>>> Xen-api mailing list
>>> Xen-api@lists.xen.org
>>> http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api
>>>
>>
>
> _______________________________________________
> Xen-api mailing list
> Xen-api@lists.xen.org
> http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api
>

--001a11c3337cb226a0050b73a9b6
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Have you tried using ext4 on a ZVOL and putting your VHDs =
there?<div><br></div><div>Scroll down to the &quot;Ext4 on a ZVOL&quot; sec=
tion:=C2=A0<a href=3D"https://pthree.org/2012/12/21/zfs-administration-part=
-xiv-zvols/">https://pthree.org/2012/12/21/zfs-administration-part-xiv-zvol=
s/</a></div><div><br></div></div><div class=3D"gmail_extra"><br><div class=
=3D"gmail_quote">On Tue, Dec 30, 2014 at 9:45 AM, Dawid Kowalski <span dir=
=3D"ltr">&lt;<a href=3D"mailto:dkadds2@gmail.com" target=3D"_blank">dkadds2=
@gmail.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=
=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Just as =
a form of an update. I&#39;m stuck trying to get NFS working as no other wa=
y to use ZFS in background seems to be available for me. iSCSI share option=
 for ZFS is not available on Linux. Should I try to enable it I&#39;d need =
to add third-party daemon.<br>
<br>
I&#39;m looking forward for your help in NFS context.<br>
<br>
In regards to nosync - I&#39;m happy to give it a try as it&#39;s just a te=
st system now but I&#39;d prefer to find working solution.<br>
<br>
I&#39;ve spent couple of days/evenings already fighting to get Xen working =
on Ubuntu with ZFS and I&#39;m close to give up and try KVM. It&#39;s way t=
o complicated.<br>
<br>
I&#39;ll still keep trying...<br>
<br>
Thanks,<br>
Dawid<div class=3D"HOEnZb"><div class=3D"h5"><br>
<br>
<br>
On 30/12/14 18:40, Dave Scott wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><blockquote class=3D"gmail_quote" style=3D"m=
argin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 30 Dec 2014, at 17:24, Dawid Kowalski &lt;<a href=3D"mailto:dkadds2@gmai=
l.com" target=3D"_blank">dkadds2@gmail.com</a>&gt; wrote:<br>
<br>
I&#39;ll answer myself.<br>
<br>
Modifying td.c line 258 to skip O_DIRECT and recompiling doesn&#39;t help.<=
br>
For some unexplained reasons, it calls O_DIRECT flag still:<br>
</blockquote>
Hm. As an experiment you could try an LD_PRELOAD wrapper like this:<br>
<br>
<a href=3D"http://www.mcgill.org.za/stuff/software/nosync" target=3D"_blank=
">http://www.mcgill.org.za/<u></u>stuff/software/nosync</a><br>
<br>
Before using anything like this for data you care about, we need to think i=
t through a little to make sure it=E2=80=99s safe. Perhaps Linux zfs suppor=
t for iSCSI is safer? (Sorry to flip-flop on this, I=E2=80=99m not very fam=
iliar with ZFS)<br>
<br>
Cheers,<br>
Dave<br>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
strace ./td-util create vhd 2048 /path/to/file<br>
open(&quot;/path/to/file&quot;, O_WRONLY|O_CREAT|O_TRUNC|O_<u></u>DIRECT, 0=
644) =3D -1 EINVAL (Invalid argument)<br>
exit_group(22)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =3D ?<br>
+++ exited with 22 +++<br>
<br>
Checking other files with O_WRONLY flag doesn&#39;t bring any ideas as none=
 of them use &quot;O_DIRECT&quot;.<br>
<br>
lock.c:=C2=A0 =C2=A0 =C2=A0 =C2=A0 fd =3D open(buf, O_WRONLY | O_CREAT, 064=
4);<br>
lock.c:=C2=A0 =C2=A0 =C2=A0 =C2=A0 fd =3D open(lockfn, O_WRONLY | O_CREAT |=
 O_EXCL, 0644);<br>
lock.c:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 fd =3D open(=
lockfn_flink, O_WRONLY | O_CREAT, 0644);<br>
tapdisk-vbd.c:=C2=A0 =C2=A0 fd =3D open(fn, O_WRONLY | O_CREAT | O_NONBLOCK=
, 0666);<br>
td.c:=C2=A0 =C2=A0 fd =3D open(name, O_WRONLY | O_CREAT | O_TRUNC, 0644);<b=
r>
<br>
<br>
Any ideas how to fix FileSR for ZFS on Linux?<br>
<br>
Seems like I&#39;m left with iScsi approach only.<br>
<br>
Thanks,<br>
Dawid<br>
<br>
On 30/12/14 18:11, Dawid Kowalski wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
Hi Guys,<br>
<br>
Just wanted to report that file based Storage Repository won&#39;t work on =
Linux systems as td-util is required O_DIRECT when creating image file not =
supported on ZFS (Linux).<br>
<br>
When creating vm, i.e. vm-import it calls td-util similar to below:<br>
td-util create vhd 2048 /path/to/file<br>
<br>
Strace shows:<br>
open(&quot;/path/to/file&quot;, O_WRONLY|O_CREAT|O_TRUNC|O_<u></u>DIRECT, 0=
644) =3D -1 EINVAL (Invalid argument)<br>
<br>
I&#39;ll try to patch td.c to skip O_DIRECT flag but this is rather dirty h=
ack than proper solution of the problem.<br>
<br>
Regards,<br>
Dawid<br>
</blockquote>
<br>
______________________________<u></u>_________________<br>
Xen-api mailing list<br>
<a href=3D"mailto:Xen-api@lists.xen.org" target=3D"_blank">Xen-api@lists.xe=
n.org</a><br>
<a href=3D"http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api" target=3D=
"_blank">http://lists.xen.org/cgi-bin/<u></u>mailman/listinfo/xen-api</a><b=
r>
</blockquote></blockquote>
<br>
<br>
______________________________<u></u>_________________<br>
Xen-api mailing list<br>
<a href=3D"mailto:Xen-api@lists.xen.org" target=3D"_blank">Xen-api@lists.xe=
n.org</a><br>
<a href=3D"http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api" target=3D=
"_blank">http://lists.xen.org/cgi-bin/<u></u>mailman/listinfo/xen-api</a><b=
r>
</div></div></blockquote></div><br></div>

--001a11c3337cb226a0050b73a9b6--


--===============0391596799275396909==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

--===============0391596799275396909==--


From xen-api-bounces@lists.xen.org Tue Dec 30 19:04:57 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 30 Dec 2014 19:04:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Y6260-0005W7-Ox; Tue, 30 Dec 2014 19:04:44 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <creategui@gmail.com>) id 1Y625y-0005W0-Bz
	for xen-api@lists.xen.org; Tue, 30 Dec 2014 19:04:42 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	BE/7E-09842-947F2A45; Tue, 30 Dec 2014 19:04:41 +0000
X-Env-Sender: creategui@gmail.com
X-Msg-Ref: server-7.tower-21.messagelabs.com!1419966279!18537006!1
X-Originating-IP: [74.125.82.54]
X-SpamReason: No, hits=0.4 required=7.0 tests=HTML_30_40,HTML_MESSAGE,
	RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20922 invoked from network); 30 Dec 2014 19:04:40 -0000
Received: from mail-wg0-f54.google.com (HELO mail-wg0-f54.google.com)
	(74.125.82.54)
	by server-7.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	30 Dec 2014 19:04:40 -0000
Received: by mail-wg0-f54.google.com with SMTP id z12so3268852wgg.13
	for <xen-api@lists.xen.org>; Tue, 30 Dec 2014 11:04:39 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:sender:in-reply-to:references:date:message-id:subject
	:from:to:cc:content-type;
	bh=DeY/PCE9XCd1I/Dee7KuGK7LazRZNIEBMWWf28EYVoM=;
	b=h6U7/IKNgQ1igCCWgb21+AQKhSNjQQIPGbYzMTFdgnyFpih+65eBM4GTV+6d7clzYp
	d1m0SkTQMH4q8xN95mon/0otZHXYgWw/mQRMjH7WKWKyvLN2TWvrk7x86OvD4dru2E5h
	CwBqV/mP41H9g+cOTeq7W7eshu7N36j6BY820cJltkQ7+xmpgW9NiV9N7HCb/JMa28fs
	4873Ot3MNdrRTaf3xqPGmWNHOAXhOSiToUvW/onkZfOx8m3yUpPUtWKaSGrAkcuZ2U6X
	0KLPvdRvssWXn02xH3bx44y2TWm45yzx7r/btBKVFzHi2jCFLMEpYQOs79FwbwMeUqHw
	p9Ag==
MIME-Version: 1.0
X-Received: by 10.180.210.236 with SMTP id mx12mr109627929wic.16.1419966279720;
	Tue, 30 Dec 2014 11:04:39 -0800 (PST)
Received: by 10.180.97.7 with HTTP; Tue, 30 Dec 2014 11:04:39 -0800 (PST)
In-Reply-To: <54A2E4AE.8010504@gmail.com>
References: <54A2DCB2.6070208@gmail.com> <54A2DFB8.2010605@gmail.com>
	<0D6B7E67-20FA-4D86-888F-E2DD9384DCFA@citrix.com>
	<54A2E4AE.8010504@gmail.com>
Date: Tue, 30 Dec 2014 11:04:39 -0800
X-Google-Sender-Auth: UWv2UOGdXvYni_cav53PY_6LphE
Message-ID: <CAMbNGRXq_fy8LiqKbeu2JCHFyG-nwKXsRPuz+TYXfQ7MaaSFbw@mail.gmail.com>
From: Carlos Reategui <carlos@reategui.com>
To: Dawid Kowalski <dkadds2@gmail.com>
Cc: Dave Scott <Dave.Scott@citrix.com>,
	Xen API mailing list <xen-api@lists.xen.org>
Subject: Re: [Xen-API] Storage Repository FileSR on ZFS won't work - Linux
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0391596799275396909=="
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

--===============0391596799275396909==
Content-Type: multipart/alternative; boundary=001a11c3337cb226a0050b73a9b6

--001a11c3337cb226a0050b73a9b6
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Have you tried using ext4 on a ZVOL and putting your VHDs there?

Scroll down to the "Ext4 on a ZVOL" section:
https://pthree.org/2012/12/21/zfs-administration-part-xiv-zvols/


On Tue, Dec 30, 2014 at 9:45 AM, Dawid Kowalski <dkadds2@gmail.com> wrote:

> Just as a form of an update. I'm stuck trying to get NFS working as no
> other way to use ZFS in background seems to be available for me. iSCSI
> share option for ZFS is not available on Linux. Should I try to enable it
> I'd need to add third-party daemon.
>
> I'm looking forward for your help in NFS context.
>
> In regards to nosync - I'm happy to give it a try as it's just a test
> system now but I'd prefer to find working solution.
>
> I've spent couple of days/evenings already fighting to get Xen working on
> Ubuntu with ZFS and I'm close to give up and try KVM. It's way to
> complicated.
>
> I'll still keep trying...
>
> Thanks,
> Dawid
>
>
>
> On 30/12/14 18:40, Dave Scott wrote:
>
>> On 30 Dec 2014, at 17:24, Dawid Kowalski <dkadds2@gmail.com> wrote:
>>>
>>> I'll answer myself.
>>>
>>> Modifying td.c line 258 to skip O_DIRECT and recompiling doesn't help.
>>> For some unexplained reasons, it calls O_DIRECT flag still:
>>>
>> Hm. As an experiment you could try an LD_PRELOAD wrapper like this:
>>
>> http://www.mcgill.org.za/stuff/software/nosync
>>
>> Before using anything like this for data you care about, we need to thin=
k
>> it through a little to make sure it=E2=80=99s safe. Perhaps Linux zfs su=
pport for
>> iSCSI is safer? (Sorry to flip-flop on this, I=E2=80=99m not very famili=
ar with ZFS)
>>
>> Cheers,
>> Dave
>>
>>  strace ./td-util create vhd 2048 /path/to/file
>>> open("/path/to/file", O_WRONLY|O_CREAT|O_TRUNC|O_DIRECT, 0644) =3D -1
>>> EINVAL (Invalid argument)
>>> exit_group(22)                          =3D ?
>>> +++ exited with 22 +++
>>>
>>> Checking other files with O_WRONLY flag doesn't bring any ideas as none
>>> of them use "O_DIRECT".
>>>
>>> lock.c:        fd =3D open(buf, O_WRONLY | O_CREAT, 0644);
>>> lock.c:        fd =3D open(lockfn, O_WRONLY | O_CREAT | O_EXCL, 0644);
>>> lock.c:                fd =3D open(lockfn_flink, O_WRONLY | O_CREAT, 06=
44);
>>> tapdisk-vbd.c:    fd =3D open(fn, O_WRONLY | O_CREAT | O_NONBLOCK, 0666=
);
>>> td.c:    fd =3D open(name, O_WRONLY | O_CREAT | O_TRUNC, 0644);
>>>
>>>
>>> Any ideas how to fix FileSR for ZFS on Linux?
>>>
>>> Seems like I'm left with iScsi approach only.
>>>
>>> Thanks,
>>> Dawid
>>>
>>> On 30/12/14 18:11, Dawid Kowalski wrote:
>>>
>>>> Hi Guys,
>>>>
>>>> Just wanted to report that file based Storage Repository won't work on
>>>> Linux systems as td-util is required O_DIRECT when creating image file=
 not
>>>> supported on ZFS (Linux).
>>>>
>>>> When creating vm, i.e. vm-import it calls td-util similar to below:
>>>> td-util create vhd 2048 /path/to/file
>>>>
>>>> Strace shows:
>>>> open("/path/to/file", O_WRONLY|O_CREAT|O_TRUNC|O_DIRECT, 0644) =3D -1
>>>> EINVAL (Invalid argument)
>>>>
>>>> I'll try to patch td.c to skip O_DIRECT flag but this is rather dirty
>>>> hack than proper solution of the problem.
>>>>
>>>> Regards,
>>>> Dawid
>>>>
>>>
>>> _______________________________________________
>>> Xen-api mailing list
>>> Xen-api@lists.xen.org
>>> http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api
>>>
>>
>
> _______________________________________________
> Xen-api mailing list
> Xen-api@lists.xen.org
> http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api
>

--001a11c3337cb226a0050b73a9b6
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Have you tried using ext4 on a ZVOL and putting your VHDs =
there?<div><br></div><div>Scroll down to the &quot;Ext4 on a ZVOL&quot; sec=
tion:=C2=A0<a href=3D"https://pthree.org/2012/12/21/zfs-administration-part=
-xiv-zvols/">https://pthree.org/2012/12/21/zfs-administration-part-xiv-zvol=
s/</a></div><div><br></div></div><div class=3D"gmail_extra"><br><div class=
=3D"gmail_quote">On Tue, Dec 30, 2014 at 9:45 AM, Dawid Kowalski <span dir=
=3D"ltr">&lt;<a href=3D"mailto:dkadds2@gmail.com" target=3D"_blank">dkadds2=
@gmail.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=
=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Just as =
a form of an update. I&#39;m stuck trying to get NFS working as no other wa=
y to use ZFS in background seems to be available for me. iSCSI share option=
 for ZFS is not available on Linux. Should I try to enable it I&#39;d need =
to add third-party daemon.<br>
<br>
I&#39;m looking forward for your help in NFS context.<br>
<br>
In regards to nosync - I&#39;m happy to give it a try as it&#39;s just a te=
st system now but I&#39;d prefer to find working solution.<br>
<br>
I&#39;ve spent couple of days/evenings already fighting to get Xen working =
on Ubuntu with ZFS and I&#39;m close to give up and try KVM. It&#39;s way t=
o complicated.<br>
<br>
I&#39;ll still keep trying...<br>
<br>
Thanks,<br>
Dawid<div class=3D"HOEnZb"><div class=3D"h5"><br>
<br>
<br>
On 30/12/14 18:40, Dave Scott wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><blockquote class=3D"gmail_quote" style=3D"m=
argin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 30 Dec 2014, at 17:24, Dawid Kowalski &lt;<a href=3D"mailto:dkadds2@gmai=
l.com" target=3D"_blank">dkadds2@gmail.com</a>&gt; wrote:<br>
<br>
I&#39;ll answer myself.<br>
<br>
Modifying td.c line 258 to skip O_DIRECT and recompiling doesn&#39;t help.<=
br>
For some unexplained reasons, it calls O_DIRECT flag still:<br>
</blockquote>
Hm. As an experiment you could try an LD_PRELOAD wrapper like this:<br>
<br>
<a href=3D"http://www.mcgill.org.za/stuff/software/nosync" target=3D"_blank=
">http://www.mcgill.org.za/<u></u>stuff/software/nosync</a><br>
<br>
Before using anything like this for data you care about, we need to think i=
t through a little to make sure it=E2=80=99s safe. Perhaps Linux zfs suppor=
t for iSCSI is safer? (Sorry to flip-flop on this, I=E2=80=99m not very fam=
iliar with ZFS)<br>
<br>
Cheers,<br>
Dave<br>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
strace ./td-util create vhd 2048 /path/to/file<br>
open(&quot;/path/to/file&quot;, O_WRONLY|O_CREAT|O_TRUNC|O_<u></u>DIRECT, 0=
644) =3D -1 EINVAL (Invalid argument)<br>
exit_group(22)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =3D ?<br>
+++ exited with 22 +++<br>
<br>
Checking other files with O_WRONLY flag doesn&#39;t bring any ideas as none=
 of them use &quot;O_DIRECT&quot;.<br>
<br>
lock.c:=C2=A0 =C2=A0 =C2=A0 =C2=A0 fd =3D open(buf, O_WRONLY | O_CREAT, 064=
4);<br>
lock.c:=C2=A0 =C2=A0 =C2=A0 =C2=A0 fd =3D open(lockfn, O_WRONLY | O_CREAT |=
 O_EXCL, 0644);<br>
lock.c:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 fd =3D open(=
lockfn_flink, O_WRONLY | O_CREAT, 0644);<br>
tapdisk-vbd.c:=C2=A0 =C2=A0 fd =3D open(fn, O_WRONLY | O_CREAT | O_NONBLOCK=
, 0666);<br>
td.c:=C2=A0 =C2=A0 fd =3D open(name, O_WRONLY | O_CREAT | O_TRUNC, 0644);<b=
r>
<br>
<br>
Any ideas how to fix FileSR for ZFS on Linux?<br>
<br>
Seems like I&#39;m left with iScsi approach only.<br>
<br>
Thanks,<br>
Dawid<br>
<br>
On 30/12/14 18:11, Dawid Kowalski wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
Hi Guys,<br>
<br>
Just wanted to report that file based Storage Repository won&#39;t work on =
Linux systems as td-util is required O_DIRECT when creating image file not =
supported on ZFS (Linux).<br>
<br>
When creating vm, i.e. vm-import it calls td-util similar to below:<br>
td-util create vhd 2048 /path/to/file<br>
<br>
Strace shows:<br>
open(&quot;/path/to/file&quot;, O_WRONLY|O_CREAT|O_TRUNC|O_<u></u>DIRECT, 0=
644) =3D -1 EINVAL (Invalid argument)<br>
<br>
I&#39;ll try to patch td.c to skip O_DIRECT flag but this is rather dirty h=
ack than proper solution of the problem.<br>
<br>
Regards,<br>
Dawid<br>
</blockquote>
<br>
______________________________<u></u>_________________<br>
Xen-api mailing list<br>
<a href=3D"mailto:Xen-api@lists.xen.org" target=3D"_blank">Xen-api@lists.xe=
n.org</a><br>
<a href=3D"http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api" target=3D=
"_blank">http://lists.xen.org/cgi-bin/<u></u>mailman/listinfo/xen-api</a><b=
r>
</blockquote></blockquote>
<br>
<br>
______________________________<u></u>_________________<br>
Xen-api mailing list<br>
<a href=3D"mailto:Xen-api@lists.xen.org" target=3D"_blank">Xen-api@lists.xe=
n.org</a><br>
<a href=3D"http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api" target=3D=
"_blank">http://lists.xen.org/cgi-bin/<u></u>mailman/listinfo/xen-api</a><b=
r>
</div></div></blockquote></div><br></div>

--001a11c3337cb226a0050b73a9b6--


--===============0391596799275396909==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

--===============0391596799275396909==--


From xen-api-bounces@lists.xen.org Wed Dec 31 00:04:19 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Dec 2014 00:04:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Y66lm-00025Z-4j; Wed, 31 Dec 2014 00:04:10 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <dkadds2@gmail.com>) id 1Y66lk-00025U-KG
	for xen-api@lists.xen.org; Wed, 31 Dec 2014 00:04:08 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	CF/74-09842-87D33A45; Wed, 31 Dec 2014 00:04:08 +0000
X-Env-Sender: dkadds2@gmail.com
X-Msg-Ref: server-2.tower-21.messagelabs.com!1419984246!10520987!1
X-Originating-IP: [74.125.82.46]
X-SpamReason: No, hits=1.2 required=7.0 tests=HTML_50_60,HTML_MESSAGE,
	MAILTO_TO_REMOVE
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 7337 invoked from network); 31 Dec 2014 00:04:06 -0000
Received: from mail-wg0-f46.google.com (HELO mail-wg0-f46.google.com)
	(74.125.82.46)
	by server-2.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	31 Dec 2014 00:04:06 -0000
Received: by mail-wg0-f46.google.com with SMTP id x13so21343629wgg.5
	for <xen-api@lists.xen.org>; Tue, 30 Dec 2014 16:04:06 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=message-id:date:from:user-agent:mime-version:to:cc:subject
	:references:in-reply-to:content-type;
	bh=F9sCSpuGMtWvk3lPkiQV8j361f57jm5xEaLpvPFvM1c=;
	b=axTMpaCv+cGogTuWF2qW2e55R7VoAkQ5JeWS2PAaLQk2orCCNjqsIUyNRVvw/NS3Og
	2Kg3JKguKCQ6D4RL5t+Gz98CTs9DS3vUTye1YVS4T/vOcZ+9sGTF9hxv9k9Zx820VsTN
	Ys7uoeXYUEYGX9tAnNe89NbZW2bN6znbeCNay5qz839HcEe73rsehxIgnN90JT7oJmF5
	MB/PG3wLrzzqXUlOOOQRbXFVTe5w2Ls8kSSUzUV/B/aYRDjpJafJijuDjmFVbpomCect
	tVwM5J2R6P54tTLEsljVGZRtr0r8hUkrMUzNsAUeHei5DSD67hxA313bCEtOUpx0IcVW
	b0HQ==
X-Received: by 10.180.94.163 with SMTP id dd3mr73625383wib.82.1419984246085;
	Tue, 30 Dec 2014 16:04:06 -0800 (PST)
Received: from BlackApple.local ([88.169.214.221])
	by mx.google.com with ESMTPSA id
	gf6sm55619227wjc.11.2014.12.30.16.04.04
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 30 Dec 2014 16:04:05 -0800 (PST)
Message-ID: <54A33D73.7050304@gmail.com>
Date: Wed, 31 Dec 2014 01:04:03 +0100
From: Dawid Kowalski <dkadds2@gmail.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10;
	rv:31.0) Gecko/20100101 Thunderbird/31.3.0
MIME-Version: 1.0
To: Carlos Reategui <carlos@reategui.com>
References: <54A2DCB2.6070208@gmail.com>	<54A2DFB8.2010605@gmail.com>	<0D6B7E67-20FA-4D86-888F-E2DD9384DCFA@citrix.com>	<54A2E4AE.8010504@gmail.com>
	<CAMbNGRXq_fy8LiqKbeu2JCHFyG-nwKXsRPuz+TYXfQ7MaaSFbw@mail.gmail.com>
In-Reply-To: <CAMbNGRXq_fy8LiqKbeu2JCHFyG-nwKXsRPuz+TYXfQ7MaaSFbw@mail.gmail.com>
Cc: Dave Scott <Dave.Scott@citrix.com>,
	Xen API mailing list <xen-api@lists.xen.org>
Subject: Re: [Xen-API] Storage Repository FileSR on ZFS won't work - Linux
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0408352898304443279=="
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

This is a multi-part message in MIME format.
--===============0408352898304443279==
Content-Type: multipart/alternative;
 boundary="------------020802020004010008000208"

This is a multi-part message in MIME format.
--------------020802020004010008000208
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Length: 5280
Content-Transfer-Encoding: quoted-printable

Hi Carlos,

Thanks for hint!
This one worked.

So what worked:
zpool -> zfs block device fomatted as ext4 and mounted as folder
storage repository created with ffs driver.
The other drivers, meaning :
- file, fileSR on mounted ext4 FS,
- ext/lvm pointed to /dev/zd0
- ffs directly on ZFS.

Failed.

Other last resort option was to create file on ZFS, losetup and create 
VG on it.

FFS directly on ZFS failed most probably due to unsupported O_DIRECT 
flag (err=3D22) and other failed most probably for similar reasons.

If anyone would have some questions, feel free to email me directly at 
love-spam-remove-me-up-to-here-dkadds2+xen-api@gmail.com

Based on my experience, there seem to be a lot to be fixed on xen side 
to be really user friendly/usable.

Based on ZFS list of features there should be direct connector from Xen 
side.

Regards,
Dawid

On 30/12/14 20:04, Carlos Reategui wrote:
> Have you tried using ext4 on a ZVOL and putting your VHDs there=3F
>
> Scroll down to the "Ext4 on a ZVOL" section: 
> https://pthree.org/2012/12/21/zfs-administration-part-xiv-zvols/
>
>
> On Tue, Dec 30, 2014 at 9:45 AM, Dawid Kowalski <dkadds2@gmail.com 
> <mailto:dkadds2@gmail.com>> wrote:
>
>     Just as a form of an update. I'm stuck trying to get NFS working
>     as no other way to use ZFS in background seems to be available for
>     me. iSCSI share option for ZFS is not available on Linux. Should I
>     try to enable it I'd need to add third-party daemon.
>
>     I'm looking forward for your help in NFS context.
>
>     In regards to nosync - I'm happy to give it a try as it's just a
>     test system now but I'd prefer to find working solution.
>
>     I've spent couple of days/evenings already fighting to get Xen
>     working on Ubuntu with ZFS and I'm close to give up and try KVM.
>     It's way to complicated.
>
>     I'll still keep trying...
>
>     Thanks,
>     Dawid
>
>
>
>     On 30/12/14 18:40, Dave Scott wrote:
>
>             On 30 Dec 2014, at 17:24, Dawid Kowalski
>             <dkadds2@gmail.com <mailto:dkadds2@gmail.com>> wrote:
>
>             I'll answer myself.
>
>             Modifying td.c line 258 to skip O_DIRECT and recompiling
>             doesn't help.
>             For some unexplained reasons, it calls O_DIRECT flag still:
>
>         Hm. As an experiment you could try an LD_PRELOAD wrapper like
>         this:
>
>         http://www.mcgill.org.za/stuff/software/nosync
>
>         Before using anything like this for data you care about, we
>         need to think it through a little to make sure it=E2=80=99s safe.
>         Perhaps Linux zfs support for iSCSI is safer=3F (Sorry to
>         flip-flop on this, I=E2=80=99m not very familiar with ZFS)
>
>         Cheers,
>         Dave
>
>             strace ./td-util create vhd 2048 /path/to/file
>             open("/path/to/file", O_WRONLY|O_CREAT|O_TRUNC|O_DIRECT,
>             0644) =3D -1 EINVAL (Invalid argument)
>             exit_group(22)                          =3D =3F
>             +++ exited with 22 +++
>
>             Checking other files with O_WRONLY flag doesn't bring any
>             ideas as none of them use "O_DIRECT".
>
>             lock.c:        fd =3D open(buf, O_WRONLY | O_CREAT, 0644);
>             lock.c:        fd =3D open(lockfn, O_WRONLY | O_CREAT |
>             O_EXCL, 0644);
>             lock.c:                fd =3D open(lockfn_flink, O_WRONLY |
>             O_CREAT, 0644);
>             tapdisk-vbd.c:    fd =3D open(fn, O_WRONLY | O_CREAT |
>             O_NONBLOCK, 0666);
>             td.c:    fd =3D open(name, O_WRONLY | O_CREAT | O_TRUNC, 0644);
>
>
>             Any ideas how to fix FileSR for ZFS on Linux=3F
>
>             Seems like I'm left with iScsi approach only.
>
>             Thanks,
>             Dawid
>
>             On 30/12/14 18:11, Dawid Kowalski wrote:
>
>                 Hi Guys,
>
>                 Just wanted to report that file based Storage
>                 Repository won't work on Linux systems as td-util is
>                 required O_DIRECT when creating image file not
>                 supported on ZFS (Linux).
>
>                 When creating vm, i.e. vm-import it calls td-util
>                 similar to below:
>                 td-util create vhd 2048 /path/to/file
>
>                 Strace shows:
>                 open("/path/to/file",
>                 O_WRONLY|O_CREAT|O_TRUNC|O_DIRECT, 0644) =3D -1 EINVAL
>                 (Invalid argument)
>
>                 I'll try to patch td.c to skip O_DIRECT flag but this
>                 is rather dirty hack than proper solution of the problem.
>
>                 Regards,
>                 Dawid
>
>
>             _______________________________________________
>             Xen-api mailing list
>             Xen-api@lists.xen.org <mailto:Xen-api@lists.xen.org>
>             http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api
>
>
>
>     _______________________________________________
>     Xen-api mailing list
>     Xen-api@lists.xen.org <mailto:Xen-api@lists.xen.org>
>     http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api
>
>


--------------020802020004010008000208
Content-Type: text/html; charset=utf-8
Content-Length: 9722
Content-Transfer-Encoding: quoted-printable

<html>
  <head>
    <meta content=3D"text/html; charset=3Dutf-8" http-equiv=3D"Content-Type">
  </head>
  <body bgcolor=3D"#FFFFFF" text=3D"#000000">
    Hi Carlos,<br>
    <br>
    Thanks for hint!<br>
    This one worked.<br>
    <br>
    So what worked:<br>
    zpool -&gt; zfs block device fomatted as ext4 and mounted as folder<br>
    storage repository created with ffs driver.<br>
    The other drivers, meaning :<br>
    - file, fileSR on mounted ext4 FS,<br>
    - ext/lvm pointed to /dev/zd0<br>
    - ffs directly on ZFS.<br>
    <br>
    Failed.<br>
    <br>
    Other last resort option was to create file on ZFS, losetup and
    create VG on it.<br>
    <br>
    FFS directly on ZFS failed most probably due to unsupported O_DIRECT
    flag (err=3D22) and other failed most probably for similar reasons.<br>
    <br>
    If anyone would have some questions, feel free to email me directly
    at <a class=3D"moz-txt-link-abbreviated" href=3D"mailto:love-spam-remove-me-up-to-here-dkadds2+xen-api@gmail.com">love-spam-remove-me-up-to-here-dkadds2+xen-api@gmail.com</a><br>
    <br>
    Based on my experience, there seem to be a lot to be fixed on xen
    side to be really user friendly/usable.<br>
    <br>
    Based on ZFS list of features there should be direct connector from
    Xen side.<br>
    <br>
    Regards,<br>
    Dawid<br>
    <br>
    <div class=3D"moz-cite-prefix">On 30/12/14 20:04, Carlos Reategui
      wrote:<br>
    </div>
    <blockquote
cite=3D"mid:CAMbNGRXq_fy8LiqKbeu2JCHFyG-nwKXsRPuz+TYXfQ7MaaSFbw@mail.gmail.com"
      type=3D"cite">
      <div dir=3D"ltr">Have you tried using ext4 on a ZVOL and putting
        your VHDs there=3F
        <div><br>
        </div>
        <div>Scroll down to the "Ext4 on a ZVOL" section:=C2=A0<a
            moz-do-not-send=3D"true"
            href=3D"https://pthree.org/2012/12/21/zfs-administration-part-xiv-zvols/">https://pthree.org/2012/12/21/zfs-administration-part-xiv-zvols/</a></div>
        <div><br>
        </div>
      </div>
      <div class=3D"gmail_extra"><br>
        <div class=3D"gmail_quote">On Tue, Dec 30, 2014 at 9:45 AM, Dawid
          Kowalski <span dir=3D"ltr">&lt;<a moz-do-not-send=3D"true"
              href=3D"mailto:dkadds2@gmail.com" target=3D"_blank">dkadds2@gmail.com</a>&gt;</span>
          wrote:<br>
          <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">Just as a
            form of an update. I'm stuck trying to get NFS working as no
            other way to use ZFS in background seems to be available for
            me. iSCSI share option for ZFS is not available on Linux.
            Should I try to enable it I'd need to add third-party
            daemon.<br>
            <br>
            I'm looking forward for your help in NFS context.<br>
            <br>
            In regards to nosync - I'm happy to give it a try as it's
            just a test system now but I'd prefer to find working
            solution.<br>
            <br>
            I've spent couple of days/evenings already fighting to get
            Xen working on Ubuntu with ZFS and I'm close to give up and
            try KVM. It's way to complicated.<br>
            <br>
            I'll still keep trying...<br>
            <br>
            Thanks,<br>
            Dawid
            <div class=3D"HOEnZb">
              <div class=3D"h5"><br>
                <br>
                <br>
                On 30/12/14 18:40, Dave Scott wrote:<br>
                <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0
                  .8ex;border-left:1px #ccc solid;padding-left:1ex">
                  <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0
                    .8ex;border-left:1px #ccc solid;padding-left:1ex">
                    On 30 Dec 2014, at 17:24, Dawid Kowalski &lt;<a
                      moz-do-not-send=3D"true"
                      href=3D"mailto:dkadds2@gmail.com" target=3D"_blank">dkadds2@gmail.com</a>&gt;
                    wrote:<br>
                    <br>
                    I'll answer myself.<br>
                    <br>
                    Modifying td.c line 258 to skip O_DIRECT and
                    recompiling doesn't help.<br>
                    For some unexplained reasons, it calls O_DIRECT flag
                    still:<br>
                  </blockquote>
                  Hm. As an experiment you could try an LD_PRELOAD
                  wrapper like this:<br>
                  <br>
                  <a moz-do-not-send=3D"true"
                    href=3D"http://www.mcgill.org.za/stuff/software/nosync"
                    target=3D"_blank">http://www.mcgill.org.za/stuff/software/nosync</a><br>
                  <br>
                  Before using anything like this for data you care
                  about, we need to think it through a little to make
                  sure it=E2=80=99s safe. Perhaps Linux zfs support for iSCSI is
                  safer=3F (Sorry to flip-flop on this, I=E2=80=99m not very
                  familiar with ZFS)<br>
                  <br>
                  Cheers,<br>
                  Dave<br>
                  <br>
                  <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0
                    .8ex;border-left:1px #ccc solid;padding-left:1ex">
                    strace ./td-util create vhd 2048 /path/to/file<br>
                    open("/path/to/file", O_WRONLY|O_CREAT|O_TRUNC|O_DIRECT,
                    0644) =3D -1 EINVAL (Invalid argument)<br>
                    exit_group(22)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =3D =3F<br>
                    +++ exited with 22 +++<br>
                    <br>
                    Checking other files with O_WRONLY flag doesn't
                    bring any ideas as none of them use "O_DIRECT".<br>
                    <br>
                    lock.c:=C2=A0 =C2=A0 =C2=A0 =C2=A0 fd =3D open(buf, O_WRONLY | O_CREAT,
                    0644);<br>
                    lock.c:=C2=A0 =C2=A0 =C2=A0 =C2=A0 fd =3D open(lockfn, O_WRONLY | O_CREAT
                    | O_EXCL, 0644);<br>
                    lock.c:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 fd =3D open(lockfn_flink,
                    O_WRONLY | O_CREAT, 0644);<br>
                    tapdisk-vbd.c:=C2=A0 =C2=A0 fd =3D open(fn, O_WRONLY | O_CREAT |
                    O_NONBLOCK, 0666);<br>
                    td.c:=C2=A0 =C2=A0 fd =3D open(name, O_WRONLY | O_CREAT |
                    O_TRUNC, 0644);<br>
                    <br>
                    <br>
                    Any ideas how to fix FileSR for ZFS on Linux=3F<br>
                    <br>
                    Seems like I'm left with iScsi approach only.<br>
                    <br>
                    Thanks,<br>
                    Dawid<br>
                    <br>
                    On 30/12/14 18:11, Dawid Kowalski wrote:<br>
                    <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0
                      .8ex;border-left:1px #ccc solid;padding-left:1ex">
                      Hi Guys,<br>
                      <br>
                      Just wanted to report that file based Storage
                      Repository won't work on Linux systems as td-util
                      is required O_DIRECT when creating image file not
                      supported on ZFS (Linux).<br>
                      <br>
                      When creating vm, i.e. vm-import it calls td-util
                      similar to below:<br>
                      td-util create vhd 2048 /path/to/file<br>
                      <br>
                      Strace shows:<br>
                      open("/path/to/file", O_WRONLY|O_CREAT|O_TRUNC|O_DIRECT,
                      0644) =3D -1 EINVAL (Invalid argument)<br>
                      <br>
                      I'll try to patch td.c to skip O_DIRECT flag but
                      this is rather dirty hack than proper solution of
                      the problem.<br>
                      <br>
                      Regards,<br>
                      Dawid<br>
                    </blockquote>
                    <br>
                    _______________________________________________<br>
                    Xen-api mailing list<br>
                    <a moz-do-not-send=3D"true"
                      href=3D"mailto:Xen-api@lists.xen.org"
                      target=3D"_blank">Xen-api@lists.xen.org</a><br>
                    <a moz-do-not-send=3D"true"
                      href=3D"http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api"
                      target=3D"_blank">http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api</a><br>
                  </blockquote>
                </blockquote>
                <br>
                <br>
                _______________________________________________<br>
                Xen-api mailing list<br>
                <a moz-do-not-send=3D"true"
                  href=3D"mailto:Xen-api@lists.xen.org" target=3D"_blank">Xen-api@lists.xen.org</a><br>
                <a moz-do-not-send=3D"true"
                  href=3D"http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api"
                  target=3D"_blank">http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api</a><br>
              </div>
            </div>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
    <br>
  </body>
</html>

--------------020802020004010008000208--


--===============0408352898304443279==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

--===============0408352898304443279==--


From xen-api-bounces@lists.xen.org Wed Dec 31 00:04:19 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Dec 2014 00:04:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Y66lm-00025Z-4j; Wed, 31 Dec 2014 00:04:10 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <dkadds2@gmail.com>) id 1Y66lk-00025U-KG
	for xen-api@lists.xen.org; Wed, 31 Dec 2014 00:04:08 +0000
Received: from [85.158.143.35] by server-1.bemta-4.messagelabs.com id
	CF/74-09842-87D33A45; Wed, 31 Dec 2014 00:04:08 +0000
X-Env-Sender: dkadds2@gmail.com
X-Msg-Ref: server-2.tower-21.messagelabs.com!1419984246!10520987!1
X-Originating-IP: [74.125.82.46]
X-SpamReason: No, hits=1.2 required=7.0 tests=HTML_50_60,HTML_MESSAGE,
	MAILTO_TO_REMOVE
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 7337 invoked from network); 31 Dec 2014 00:04:06 -0000
Received: from mail-wg0-f46.google.com (HELO mail-wg0-f46.google.com)
	(74.125.82.46)
	by server-2.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	31 Dec 2014 00:04:06 -0000
Received: by mail-wg0-f46.google.com with SMTP id x13so21343629wgg.5
	for <xen-api@lists.xen.org>; Tue, 30 Dec 2014 16:04:06 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=message-id:date:from:user-agent:mime-version:to:cc:subject
	:references:in-reply-to:content-type;
	bh=F9sCSpuGMtWvk3lPkiQV8j361f57jm5xEaLpvPFvM1c=;
	b=axTMpaCv+cGogTuWF2qW2e55R7VoAkQ5JeWS2PAaLQk2orCCNjqsIUyNRVvw/NS3Og
	2Kg3JKguKCQ6D4RL5t+Gz98CTs9DS3vUTye1YVS4T/vOcZ+9sGTF9hxv9k9Zx820VsTN
	Ys7uoeXYUEYGX9tAnNe89NbZW2bN6znbeCNay5qz839HcEe73rsehxIgnN90JT7oJmF5
	MB/PG3wLrzzqXUlOOOQRbXFVTe5w2Ls8kSSUzUV/B/aYRDjpJafJijuDjmFVbpomCect
	tVwM5J2R6P54tTLEsljVGZRtr0r8hUkrMUzNsAUeHei5DSD67hxA313bCEtOUpx0IcVW
	b0HQ==
X-Received: by 10.180.94.163 with SMTP id dd3mr73625383wib.82.1419984246085;
	Tue, 30 Dec 2014 16:04:06 -0800 (PST)
Received: from BlackApple.local ([88.169.214.221])
	by mx.google.com with ESMTPSA id
	gf6sm55619227wjc.11.2014.12.30.16.04.04
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 30 Dec 2014 16:04:05 -0800 (PST)
Message-ID: <54A33D73.7050304@gmail.com>
Date: Wed, 31 Dec 2014 01:04:03 +0100
From: Dawid Kowalski <dkadds2@gmail.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10;
	rv:31.0) Gecko/20100101 Thunderbird/31.3.0
MIME-Version: 1.0
To: Carlos Reategui <carlos@reategui.com>
References: <54A2DCB2.6070208@gmail.com>	<54A2DFB8.2010605@gmail.com>	<0D6B7E67-20FA-4D86-888F-E2DD9384DCFA@citrix.com>	<54A2E4AE.8010504@gmail.com>
	<CAMbNGRXq_fy8LiqKbeu2JCHFyG-nwKXsRPuz+TYXfQ7MaaSFbw@mail.gmail.com>
In-Reply-To: <CAMbNGRXq_fy8LiqKbeu2JCHFyG-nwKXsRPuz+TYXfQ7MaaSFbw@mail.gmail.com>
Cc: Dave Scott <Dave.Scott@citrix.com>,
	Xen API mailing list <xen-api@lists.xen.org>
Subject: Re: [Xen-API] Storage Repository FileSR on ZFS won't work - Linux
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0408352898304443279=="
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

This is a multi-part message in MIME format.
--===============0408352898304443279==
Content-Type: multipart/alternative;
 boundary="------------020802020004010008000208"

This is a multi-part message in MIME format.
--------------020802020004010008000208
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Length: 5280
Content-Transfer-Encoding: quoted-printable

Hi Carlos,

Thanks for hint!
This one worked.

So what worked:
zpool -> zfs block device fomatted as ext4 and mounted as folder
storage repository created with ffs driver.
The other drivers, meaning :
- file, fileSR on mounted ext4 FS,
- ext/lvm pointed to /dev/zd0
- ffs directly on ZFS.

Failed.

Other last resort option was to create file on ZFS, losetup and create 
VG on it.

FFS directly on ZFS failed most probably due to unsupported O_DIRECT 
flag (err=3D22) and other failed most probably for similar reasons.

If anyone would have some questions, feel free to email me directly at 
love-spam-remove-me-up-to-here-dkadds2+xen-api@gmail.com

Based on my experience, there seem to be a lot to be fixed on xen side 
to be really user friendly/usable.

Based on ZFS list of features there should be direct connector from Xen 
side.

Regards,
Dawid

On 30/12/14 20:04, Carlos Reategui wrote:
> Have you tried using ext4 on a ZVOL and putting your VHDs there=3F
>
> Scroll down to the "Ext4 on a ZVOL" section: 
> https://pthree.org/2012/12/21/zfs-administration-part-xiv-zvols/
>
>
> On Tue, Dec 30, 2014 at 9:45 AM, Dawid Kowalski <dkadds2@gmail.com 
> <mailto:dkadds2@gmail.com>> wrote:
>
>     Just as a form of an update. I'm stuck trying to get NFS working
>     as no other way to use ZFS in background seems to be available for
>     me. iSCSI share option for ZFS is not available on Linux. Should I
>     try to enable it I'd need to add third-party daemon.
>
>     I'm looking forward for your help in NFS context.
>
>     In regards to nosync - I'm happy to give it a try as it's just a
>     test system now but I'd prefer to find working solution.
>
>     I've spent couple of days/evenings already fighting to get Xen
>     working on Ubuntu with ZFS and I'm close to give up and try KVM.
>     It's way to complicated.
>
>     I'll still keep trying...
>
>     Thanks,
>     Dawid
>
>
>
>     On 30/12/14 18:40, Dave Scott wrote:
>
>             On 30 Dec 2014, at 17:24, Dawid Kowalski
>             <dkadds2@gmail.com <mailto:dkadds2@gmail.com>> wrote:
>
>             I'll answer myself.
>
>             Modifying td.c line 258 to skip O_DIRECT and recompiling
>             doesn't help.
>             For some unexplained reasons, it calls O_DIRECT flag still:
>
>         Hm. As an experiment you could try an LD_PRELOAD wrapper like
>         this:
>
>         http://www.mcgill.org.za/stuff/software/nosync
>
>         Before using anything like this for data you care about, we
>         need to think it through a little to make sure it=E2=80=99s safe.
>         Perhaps Linux zfs support for iSCSI is safer=3F (Sorry to
>         flip-flop on this, I=E2=80=99m not very familiar with ZFS)
>
>         Cheers,
>         Dave
>
>             strace ./td-util create vhd 2048 /path/to/file
>             open("/path/to/file", O_WRONLY|O_CREAT|O_TRUNC|O_DIRECT,
>             0644) =3D -1 EINVAL (Invalid argument)
>             exit_group(22)                          =3D =3F
>             +++ exited with 22 +++
>
>             Checking other files with O_WRONLY flag doesn't bring any
>             ideas as none of them use "O_DIRECT".
>
>             lock.c:        fd =3D open(buf, O_WRONLY | O_CREAT, 0644);
>             lock.c:        fd =3D open(lockfn, O_WRONLY | O_CREAT |
>             O_EXCL, 0644);
>             lock.c:                fd =3D open(lockfn_flink, O_WRONLY |
>             O_CREAT, 0644);
>             tapdisk-vbd.c:    fd =3D open(fn, O_WRONLY | O_CREAT |
>             O_NONBLOCK, 0666);
>             td.c:    fd =3D open(name, O_WRONLY | O_CREAT | O_TRUNC, 0644);
>
>
>             Any ideas how to fix FileSR for ZFS on Linux=3F
>
>             Seems like I'm left with iScsi approach only.
>
>             Thanks,
>             Dawid
>
>             On 30/12/14 18:11, Dawid Kowalski wrote:
>
>                 Hi Guys,
>
>                 Just wanted to report that file based Storage
>                 Repository won't work on Linux systems as td-util is
>                 required O_DIRECT when creating image file not
>                 supported on ZFS (Linux).
>
>                 When creating vm, i.e. vm-import it calls td-util
>                 similar to below:
>                 td-util create vhd 2048 /path/to/file
>
>                 Strace shows:
>                 open("/path/to/file",
>                 O_WRONLY|O_CREAT|O_TRUNC|O_DIRECT, 0644) =3D -1 EINVAL
>                 (Invalid argument)
>
>                 I'll try to patch td.c to skip O_DIRECT flag but this
>                 is rather dirty hack than proper solution of the problem.
>
>                 Regards,
>                 Dawid
>
>
>             _______________________________________________
>             Xen-api mailing list
>             Xen-api@lists.xen.org <mailto:Xen-api@lists.xen.org>
>             http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api
>
>
>
>     _______________________________________________
>     Xen-api mailing list
>     Xen-api@lists.xen.org <mailto:Xen-api@lists.xen.org>
>     http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api
>
>


--------------020802020004010008000208
Content-Type: text/html; charset=utf-8
Content-Length: 9722
Content-Transfer-Encoding: quoted-printable

<html>
  <head>
    <meta content=3D"text/html; charset=3Dutf-8" http-equiv=3D"Content-Type">
  </head>
  <body bgcolor=3D"#FFFFFF" text=3D"#000000">
    Hi Carlos,<br>
    <br>
    Thanks for hint!<br>
    This one worked.<br>
    <br>
    So what worked:<br>
    zpool -&gt; zfs block device fomatted as ext4 and mounted as folder<br>
    storage repository created with ffs driver.<br>
    The other drivers, meaning :<br>
    - file, fileSR on mounted ext4 FS,<br>
    - ext/lvm pointed to /dev/zd0<br>
    - ffs directly on ZFS.<br>
    <br>
    Failed.<br>
    <br>
    Other last resort option was to create file on ZFS, losetup and
    create VG on it.<br>
    <br>
    FFS directly on ZFS failed most probably due to unsupported O_DIRECT
    flag (err=3D22) and other failed most probably for similar reasons.<br>
    <br>
    If anyone would have some questions, feel free to email me directly
    at <a class=3D"moz-txt-link-abbreviated" href=3D"mailto:love-spam-remove-me-up-to-here-dkadds2+xen-api@gmail.com">love-spam-remove-me-up-to-here-dkadds2+xen-api@gmail.com</a><br>
    <br>
    Based on my experience, there seem to be a lot to be fixed on xen
    side to be really user friendly/usable.<br>
    <br>
    Based on ZFS list of features there should be direct connector from
    Xen side.<br>
    <br>
    Regards,<br>
    Dawid<br>
    <br>
    <div class=3D"moz-cite-prefix">On 30/12/14 20:04, Carlos Reategui
      wrote:<br>
    </div>
    <blockquote
cite=3D"mid:CAMbNGRXq_fy8LiqKbeu2JCHFyG-nwKXsRPuz+TYXfQ7MaaSFbw@mail.gmail.com"
      type=3D"cite">
      <div dir=3D"ltr">Have you tried using ext4 on a ZVOL and putting
        your VHDs there=3F
        <div><br>
        </div>
        <div>Scroll down to the "Ext4 on a ZVOL" section:=C2=A0<a
            moz-do-not-send=3D"true"
            href=3D"https://pthree.org/2012/12/21/zfs-administration-part-xiv-zvols/">https://pthree.org/2012/12/21/zfs-administration-part-xiv-zvols/</a></div>
        <div><br>
        </div>
      </div>
      <div class=3D"gmail_extra"><br>
        <div class=3D"gmail_quote">On Tue, Dec 30, 2014 at 9:45 AM, Dawid
          Kowalski <span dir=3D"ltr">&lt;<a moz-do-not-send=3D"true"
              href=3D"mailto:dkadds2@gmail.com" target=3D"_blank">dkadds2@gmail.com</a>&gt;</span>
          wrote:<br>
          <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">Just as a
            form of an update. I'm stuck trying to get NFS working as no
            other way to use ZFS in background seems to be available for
            me. iSCSI share option for ZFS is not available on Linux.
            Should I try to enable it I'd need to add third-party
            daemon.<br>
            <br>
            I'm looking forward for your help in NFS context.<br>
            <br>
            In regards to nosync - I'm happy to give it a try as it's
            just a test system now but I'd prefer to find working
            solution.<br>
            <br>
            I've spent couple of days/evenings already fighting to get
            Xen working on Ubuntu with ZFS and I'm close to give up and
            try KVM. It's way to complicated.<br>
            <br>
            I'll still keep trying...<br>
            <br>
            Thanks,<br>
            Dawid
            <div class=3D"HOEnZb">
              <div class=3D"h5"><br>
                <br>
                <br>
                On 30/12/14 18:40, Dave Scott wrote:<br>
                <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0
                  .8ex;border-left:1px #ccc solid;padding-left:1ex">
                  <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0
                    .8ex;border-left:1px #ccc solid;padding-left:1ex">
                    On 30 Dec 2014, at 17:24, Dawid Kowalski &lt;<a
                      moz-do-not-send=3D"true"
                      href=3D"mailto:dkadds2@gmail.com" target=3D"_blank">dkadds2@gmail.com</a>&gt;
                    wrote:<br>
                    <br>
                    I'll answer myself.<br>
                    <br>
                    Modifying td.c line 258 to skip O_DIRECT and
                    recompiling doesn't help.<br>
                    For some unexplained reasons, it calls O_DIRECT flag
                    still:<br>
                  </blockquote>
                  Hm. As an experiment you could try an LD_PRELOAD
                  wrapper like this:<br>
                  <br>
                  <a moz-do-not-send=3D"true"
                    href=3D"http://www.mcgill.org.za/stuff/software/nosync"
                    target=3D"_blank">http://www.mcgill.org.za/stuff/software/nosync</a><br>
                  <br>
                  Before using anything like this for data you care
                  about, we need to think it through a little to make
                  sure it=E2=80=99s safe. Perhaps Linux zfs support for iSCSI is
                  safer=3F (Sorry to flip-flop on this, I=E2=80=99m not very
                  familiar with ZFS)<br>
                  <br>
                  Cheers,<br>
                  Dave<br>
                  <br>
                  <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0
                    .8ex;border-left:1px #ccc solid;padding-left:1ex">
                    strace ./td-util create vhd 2048 /path/to/file<br>
                    open("/path/to/file", O_WRONLY|O_CREAT|O_TRUNC|O_DIRECT,
                    0644) =3D -1 EINVAL (Invalid argument)<br>
                    exit_group(22)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =3D =3F<br>
                    +++ exited with 22 +++<br>
                    <br>
                    Checking other files with O_WRONLY flag doesn't
                    bring any ideas as none of them use "O_DIRECT".<br>
                    <br>
                    lock.c:=C2=A0 =C2=A0 =C2=A0 =C2=A0 fd =3D open(buf, O_WRONLY | O_CREAT,
                    0644);<br>
                    lock.c:=C2=A0 =C2=A0 =C2=A0 =C2=A0 fd =3D open(lockfn, O_WRONLY | O_CREAT
                    | O_EXCL, 0644);<br>
                    lock.c:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 fd =3D open(lockfn_flink,
                    O_WRONLY | O_CREAT, 0644);<br>
                    tapdisk-vbd.c:=C2=A0 =C2=A0 fd =3D open(fn, O_WRONLY | O_CREAT |
                    O_NONBLOCK, 0666);<br>
                    td.c:=C2=A0 =C2=A0 fd =3D open(name, O_WRONLY | O_CREAT |
                    O_TRUNC, 0644);<br>
                    <br>
                    <br>
                    Any ideas how to fix FileSR for ZFS on Linux=3F<br>
                    <br>
                    Seems like I'm left with iScsi approach only.<br>
                    <br>
                    Thanks,<br>
                    Dawid<br>
                    <br>
                    On 30/12/14 18:11, Dawid Kowalski wrote:<br>
                    <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0
                      .8ex;border-left:1px #ccc solid;padding-left:1ex">
                      Hi Guys,<br>
                      <br>
                      Just wanted to report that file based Storage
                      Repository won't work on Linux systems as td-util
                      is required O_DIRECT when creating image file not
                      supported on ZFS (Linux).<br>
                      <br>
                      When creating vm, i.e. vm-import it calls td-util
                      similar to below:<br>
                      td-util create vhd 2048 /path/to/file<br>
                      <br>
                      Strace shows:<br>
                      open("/path/to/file", O_WRONLY|O_CREAT|O_TRUNC|O_DIRECT,
                      0644) =3D -1 EINVAL (Invalid argument)<br>
                      <br>
                      I'll try to patch td.c to skip O_DIRECT flag but
                      this is rather dirty hack than proper solution of
                      the problem.<br>
                      <br>
                      Regards,<br>
                      Dawid<br>
                    </blockquote>
                    <br>
                    _______________________________________________<br>
                    Xen-api mailing list<br>
                    <a moz-do-not-send=3D"true"
                      href=3D"mailto:Xen-api@lists.xen.org"
                      target=3D"_blank">Xen-api@lists.xen.org</a><br>
                    <a moz-do-not-send=3D"true"
                      href=3D"http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api"
                      target=3D"_blank">http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api</a><br>
                  </blockquote>
                </blockquote>
                <br>
                <br>
                _______________________________________________<br>
                Xen-api mailing list<br>
                <a moz-do-not-send=3D"true"
                  href=3D"mailto:Xen-api@lists.xen.org" target=3D"_blank">Xen-api@lists.xen.org</a><br>
                <a moz-do-not-send=3D"true"
                  href=3D"http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api"
                  target=3D"_blank">http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api</a><br>
              </div>
            </div>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
    <br>
  </body>
</html>

--------------020802020004010008000208--


--===============0408352898304443279==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

--===============0408352898304443279==--


From xen-api-bounces@lists.xen.org Wed Dec 31 01:04:04 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Dec 2014 01:04:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Y67hc-00072U-9s; Wed, 31 Dec 2014 01:03:56 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <creategui@gmail.com>) id 1Y67ha-00072P-CL
	for xen-api@lists.xen.org; Wed, 31 Dec 2014 01:03:54 +0000
Received: from [193.109.254.147] by server-10.bemta-14.messagelabs.com id
	EF/3F-02696-97B43A45; Wed, 31 Dec 2014 01:03:53 +0000
X-Env-Sender: creategui@gmail.com
X-Msg-Ref: server-12.tower-27.messagelabs.com!1419987831!17880912!1
X-Originating-IP: [209.85.212.182]
X-SpamReason: No, hits=1.5 required=7.0 tests=HTML_50_60,HTML_MESSAGE,
	MAILTO_TO_REMOVE,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5793 invoked from network); 31 Dec 2014 01:03:52 -0000
Received: from mail-wi0-f182.google.com (HELO mail-wi0-f182.google.com)
	(209.85.212.182)
	by server-12.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	31 Dec 2014 01:03:52 -0000
Received: by mail-wi0-f182.google.com with SMTP id h11so24841611wiw.15
	for <xen-api@lists.xen.org>; Tue, 30 Dec 2014 17:03:51 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:sender:in-reply-to:references:date:message-id:subject
	:from:to:cc:content-type;
	bh=wdaT5humDpvXsSqd34XBxOUZRlI61e6lYeW4JiVpZZ4=;
	b=fjGDgn56ONZ9OuHA6//Tv22KMODxScOG6o7RqBXap8D9GQXpISsvIi6bpiEj4RlGVT
	gSogR3x9jVFJMfv/UU7X54g9o5NXLV/jpgQqYP0BjE6XFHITW/sSpz92wkbRykwN0T3K
	3Tfiu2+1LGUHNvZGlZZjObtb5bzSiUfK6nR12cL31MT+JOpwTsRkhAPPM8FlPEPLATza
	4SDGmGIjuO7FC02wSxJzbMUGO4dREaKnd61nalmXJ2VcKklBoEtA+0EOQsH2m50rDzxn
	PDjHhH8j3+CP534nrDeTEV8hv6THEfuCynpRYcq50GJa60olpG/sNhNkA3Gvascg+7LV
	42mA==
MIME-Version: 1.0
X-Received: by 10.180.186.8 with SMTP id fg8mr99464566wic.40.1419987831723;
	Tue, 30 Dec 2014 17:03:51 -0800 (PST)
Received: by 10.180.97.7 with HTTP; Tue, 30 Dec 2014 17:03:51 -0800 (PST)
In-Reply-To: <54A33D73.7050304@gmail.com>
References: <54A2DCB2.6070208@gmail.com> <54A2DFB8.2010605@gmail.com>
	<0D6B7E67-20FA-4D86-888F-E2DD9384DCFA@citrix.com>
	<54A2E4AE.8010504@gmail.com>
	<CAMbNGRXq_fy8LiqKbeu2JCHFyG-nwKXsRPuz+TYXfQ7MaaSFbw@mail.gmail.com>
	<54A33D73.7050304@gmail.com>
Date: Tue, 30 Dec 2014 17:03:51 -0800
X-Google-Sender-Auth: VD2OJcbdAMi1lUN5M-zoSki1HvA
Message-ID: <CAMbNGRXkocMm228jAk09fJMY6NP6nmfu6DAwx-MyMXNYb8BiCQ@mail.gmail.com>
From: Carlos Reategui <carlos@reategui.com>
To: Dawid Kowalski <dkadds2@gmail.com>
Cc: Xen API mailing list <xen-api@lists.xen.org>
Subject: Re: [Xen-API] Storage Repository FileSR on ZFS won't work - Linux
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============6903995380309443394=="
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

--===============6903995380309443394==
Content-Type: multipart/alternative; boundary=001a11c3339a4b9cef050b78ae68

--001a11c3339a4b9cef050b78ae68
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Glad you got it to work.

BTW DirectIO support in ZFS on Linux is on the roadmap for 0.6.4 (
https://github.com/zfsonlinux/zfs/issues/224).  However don't know when
that is scheduled for.

On Tue, Dec 30, 2014 at 4:04 PM, Dawid Kowalski <dkadds2@gmail.com> wrote:

>  Hi Carlos,
>
> Thanks for hint!
> This one worked.
>
> So what worked:
> zpool -> zfs block device fomatted as ext4 and mounted as folder
> storage repository created with ffs driver.
> The other drivers, meaning :
> - file, fileSR on mounted ext4 FS,
> - ext/lvm pointed to /dev/zd0
> - ffs directly on ZFS.
>
> Failed.
>
> Other last resort option was to create file on ZFS, losetup and create VG
> on it.
>
> FFS directly on ZFS failed most probably due to unsupported O_DIRECT flag
> (err=3D22) and other failed most probably for similar reasons.
>
> If anyone would have some questions, feel free to email me directly at
> love-spam-remove-me-up-to-here-dkadds2+xen-api@gmail.com
>
> Based on my experience, there seem to be a lot to be fixed on xen side to
> be really user friendly/usable.
>
> Based on ZFS list of features there should be direct connector from Xen
> side.
>
> Regards,
> Dawid
>
>
> On 30/12/14 20:04, Carlos Reategui wrote:
>
> Have you tried using ext4 on a ZVOL and putting your VHDs there?
>
>  Scroll down to the "Ext4 on a ZVOL" section:
> https://pthree.org/2012/12/21/zfs-administration-part-xiv-zvols/
>
>
> On Tue, Dec 30, 2014 at 9:45 AM, Dawid Kowalski <dkadds2@gmail.com> wrote=
:
>
>> Just as a form of an update. I'm stuck trying to get NFS working as no
>> other way to use ZFS in background seems to be available for me. iSCSI
>> share option for ZFS is not available on Linux. Should I try to enable i=
t
>> I'd need to add third-party daemon.
>>
>> I'm looking forward for your help in NFS context.
>>
>> In regards to nosync - I'm happy to give it a try as it's just a test
>> system now but I'd prefer to find working solution.
>>
>> I've spent couple of days/evenings already fighting to get Xen working o=
n
>> Ubuntu with ZFS and I'm close to give up and try KVM. It's way to
>> complicated.
>>
>> I'll still keep trying...
>>
>> Thanks,
>> Dawid
>>
>>
>>
>> On 30/12/14 18:40, Dave Scott wrote:
>>
>>>  On 30 Dec 2014, at 17:24, Dawid Kowalski <dkadds2@gmail.com> wrote:
>>>>
>>>> I'll answer myself.
>>>>
>>>> Modifying td.c line 258 to skip O_DIRECT and recompiling doesn't help.
>>>> For some unexplained reasons, it calls O_DIRECT flag still:
>>>>
>>> Hm. As an experiment you could try an LD_PRELOAD wrapper like this:
>>>
>>> http://www.mcgill.org.za/stuff/software/nosync
>>>
>>> Before using anything like this for data you care about, we need to
>>> think it through a little to make sure it=E2=80=99s safe. Perhaps Linux=
 zfs support
>>> for iSCSI is safer? (Sorry to flip-flop on this, I=E2=80=99m not very f=
amiliar with
>>> ZFS)
>>>
>>> Cheers,
>>> Dave
>>>
>>>  strace ./td-util create vhd 2048 /path/to/file
>>>> open("/path/to/file", O_WRONLY|O_CREAT|O_TRUNC|O_DIRECT, 0644) =3D -1
>>>> EINVAL (Invalid argument)
>>>> exit_group(22)                          =3D ?
>>>> +++ exited with 22 +++
>>>>
>>>> Checking other files with O_WRONLY flag doesn't bring any ideas as non=
e
>>>> of them use "O_DIRECT".
>>>>
>>>> lock.c:        fd =3D open(buf, O_WRONLY | O_CREAT, 0644);
>>>> lock.c:        fd =3D open(lockfn, O_WRONLY | O_CREAT | O_EXCL, 0644);
>>>> lock.c:                fd =3D open(lockfn_flink, O_WRONLY | O_CREAT,
>>>> 0644);
>>>> tapdisk-vbd.c:    fd =3D open(fn, O_WRONLY | O_CREAT | O_NONBLOCK, 066=
6);
>>>> td.c:    fd =3D open(name, O_WRONLY | O_CREAT | O_TRUNC, 0644);
>>>>
>>>>
>>>> Any ideas how to fix FileSR for ZFS on Linux?
>>>>
>>>> Seems like I'm left with iScsi approach only.
>>>>
>>>> Thanks,
>>>> Dawid
>>>>
>>>> On 30/12/14 18:11, Dawid Kowalski wrote:
>>>>
>>>>> Hi Guys,
>>>>>
>>>>> Just wanted to report that file based Storage Repository won't work o=
n
>>>>> Linux systems as td-util is required O_DIRECT when creating image fil=
e not
>>>>> supported on ZFS (Linux).
>>>>>
>>>>> When creating vm, i.e. vm-import it calls td-util similar to below:
>>>>> td-util create vhd 2048 /path/to/file
>>>>>
>>>>> Strace shows:
>>>>> open("/path/to/file", O_WRONLY|O_CREAT|O_TRUNC|O_DIRECT, 0644) =3D -1
>>>>> EINVAL (Invalid argument)
>>>>>
>>>>> I'll try to patch td.c to skip O_DIRECT flag but this is rather dirty
>>>>> hack than proper solution of the problem.
>>>>>
>>>>> Regards,
>>>>> Dawid
>>>>>
>>>>
>>>> _______________________________________________
>>>> Xen-api mailing list
>>>> Xen-api@lists.xen.org
>>>> http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api
>>>>
>>>
>>
>> _______________________________________________
>> Xen-api mailing list
>> Xen-api@lists.xen.org
>> http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api
>>
>
>
>
> _______________________________________________
> Xen-api mailing list
> Xen-api@lists.xen.org
> http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api
>
>

--001a11c3339a4b9cef050b78ae68
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Glad you got it to work.<div><br></div><div>BTW DirectIO s=
upport in ZFS on Linux is on the roadmap for 0.6.4 (<a href=3D"https://gith=
ub.com/zfsonlinux/zfs/issues/224">https://github.com/zfsonlinux/zfs/issues/=
224</a>).=C2=A0 However don&#39;t know when that is scheduled for.</div></d=
iv><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On Tue, Dec 30=
, 2014 at 4:04 PM, Dawid Kowalski <span dir=3D"ltr">&lt;<a href=3D"mailto:d=
kadds2@gmail.com" target=3D"_blank">dkadds2@gmail.com</a>&gt;</span> wrote:=
<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-lef=
t:1px #ccc solid;padding-left:1ex">
 =20
   =20
 =20
  <div bgcolor=3D"#FFFFFF" text=3D"#000000">
    Hi Carlos,<br>
    <br>
    Thanks for hint!<br>
    This one worked.<br>
    <br>
    So what worked:<br>
    zpool -&gt; zfs block device fomatted as ext4 and mounted as folder<br>
    storage repository created with ffs driver.<br>
    The other drivers, meaning :<br>
    - file, fileSR on mounted ext4 FS,<br>
    - ext/lvm pointed to /dev/zd0<br>
    - ffs directly on ZFS.<br>
    <br>
    Failed.<br>
    <br>
    Other last resort option was to create file on ZFS, losetup and
    create VG on it.<br>
    <br>
    FFS directly on ZFS failed most probably due to unsupported O_DIRECT
    flag (err=3D22) and other failed most probably for similar reasons.<br>
    <br>
    If anyone would have some questions, feel free to email me directly
    at <a href=3D"mailto:love-spam-remove-me-up-to-here-dkadds2+xen-api@gma=
il.com" target=3D"_blank">love-spam-remove-me-up-to-here-dkadds2+xen-api@gm=
ail.com</a><br>
    <br>
    Based on my experience, there seem to be a lot to be fixed on xen
    side to be really user friendly/usable.<br>
    <br>
    Based on ZFS list of features there should be direct connector from
    Xen side.<br>
    <br>
    Regards,<br>
    Dawid<div><div class=3D"h5"><br>
    <br>
    <div>On 30/12/14 20:04, Carlos Reategui
      wrote:<br>
    </div>
    <blockquote type=3D"cite">
      <div dir=3D"ltr">Have you tried using ext4 on a ZVOL and putting
        your VHDs there?
        <div><br>
        </div>
        <div>Scroll down to the &quot;Ext4 on a ZVOL&quot; section:=C2=A0<a=
 href=3D"https://pthree.org/2012/12/21/zfs-administration-part-xiv-zvols/" =
target=3D"_blank">https://pthree.org/2012/12/21/zfs-administration-part-xiv=
-zvols/</a></div>
        <div><br>
        </div>
      </div>
      <div class=3D"gmail_extra"><br>
        <div class=3D"gmail_quote">On Tue, Dec 30, 2014 at 9:45 AM, Dawid
          Kowalski <span dir=3D"ltr">&lt;<a href=3D"mailto:dkadds2@gmail.co=
m" target=3D"_blank">dkadds2@gmail.com</a>&gt;</span>
          wrote:<br>
          <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bord=
er-left:1px #ccc solid;padding-left:1ex">Just as a
            form of an update. I&#39;m stuck trying to get NFS working as n=
o
            other way to use ZFS in background seems to be available for
            me. iSCSI share option for ZFS is not available on Linux.
            Should I try to enable it I&#39;d need to add third-party
            daemon.<br>
            <br>
            I&#39;m looking forward for your help in NFS context.<br>
            <br>
            In regards to nosync - I&#39;m happy to give it a try as it&#39=
;s
            just a test system now but I&#39;d prefer to find working
            solution.<br>
            <br>
            I&#39;ve spent couple of days/evenings already fighting to get
            Xen working on Ubuntu with ZFS and I&#39;m close to give up and
            try KVM. It&#39;s way to complicated.<br>
            <br>
            I&#39;ll still keep trying...<br>
            <br>
            Thanks,<br>
            Dawid
            <div>
              <div><br>
                <br>
                <br>
                On 30/12/14 18:40, Dave Scott wrote:<br>
                <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8e=
x;border-left:1px #ccc solid;padding-left:1ex">
                  <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .=
8ex;border-left:1px #ccc solid;padding-left:1ex">
                    On 30 Dec 2014, at 17:24, Dawid Kowalski &lt;<a href=3D=
"mailto:dkadds2@gmail.com" target=3D"_blank">dkadds2@gmail.com</a>&gt;
                    wrote:<br>
                    <br>
                    I&#39;ll answer myself.<br>
                    <br>
                    Modifying td.c line 258 to skip O_DIRECT and
                    recompiling doesn&#39;t help.<br>
                    For some unexplained reasons, it calls O_DIRECT flag
                    still:<br>
                  </blockquote>
                  Hm. As an experiment you could try an LD_PRELOAD
                  wrapper like this:<br>
                  <br>
                  <a href=3D"http://www.mcgill.org.za/stuff/software/nosync=
" target=3D"_blank">http://www.mcgill.org.za/stuff/software/nosync</a><br>
                  <br>
                  Before using anything like this for data you care
                  about, we need to think it through a little to make
                  sure it=E2=80=99s safe. Perhaps Linux zfs support for iSC=
SI is
                  safer? (Sorry to flip-flop on this, I=E2=80=99m not very
                  familiar with ZFS)<br>
                  <br>
                  Cheers,<br>
                  Dave<br>
                  <br>
                  <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .=
8ex;border-left:1px #ccc solid;padding-left:1ex">
                    strace ./td-util create vhd 2048 /path/to/file<br>
                    open(&quot;/path/to/file&quot;, O_WRONLY|O_CREAT|O_TRUN=
C|O_DIRECT,
                    0644) =3D -1 EINVAL (Invalid argument)<br>
                    exit_group(22)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =3D ?<br>
                    +++ exited with 22 +++<br>
                    <br>
                    Checking other files with O_WRONLY flag doesn&#39;t
                    bring any ideas as none of them use &quot;O_DIRECT&quot=
;.<br>
                    <br>
                    lock.c:=C2=A0 =C2=A0 =C2=A0 =C2=A0 fd =3D open(buf, O_W=
RONLY | O_CREAT,
                    0644);<br>
                    lock.c:=C2=A0 =C2=A0 =C2=A0 =C2=A0 fd =3D open(lockfn, =
O_WRONLY | O_CREAT
                    | O_EXCL, 0644);<br>
                    lock.c:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 fd =3D open(lockfn_flink,
                    O_WRONLY | O_CREAT, 0644);<br>
                    tapdisk-vbd.c:=C2=A0 =C2=A0 fd =3D open(fn, O_WRONLY | =
O_CREAT |
                    O_NONBLOCK, 0666);<br>
                    td.c:=C2=A0 =C2=A0 fd =3D open(name, O_WRONLY | O_CREAT=
 |
                    O_TRUNC, 0644);<br>
                    <br>
                    <br>
                    Any ideas how to fix FileSR for ZFS on Linux?<br>
                    <br>
                    Seems like I&#39;m left with iScsi approach only.<br>
                    <br>
                    Thanks,<br>
                    Dawid<br>
                    <br>
                    On 30/12/14 18:11, Dawid Kowalski wrote:<br>
                    <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0=
 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                      Hi Guys,<br>
                      <br>
                      Just wanted to report that file based Storage
                      Repository won&#39;t work on Linux systems as td-util
                      is required O_DIRECT when creating image file not
                      supported on ZFS (Linux).<br>
                      <br>
                      When creating vm, i.e. vm-import it calls td-util
                      similar to below:<br>
                      td-util create vhd 2048 /path/to/file<br>
                      <br>
                      Strace shows:<br>
                      open(&quot;/path/to/file&quot;, O_WRONLY|O_CREAT|O_TR=
UNC|O_DIRECT,
                      0644) =3D -1 EINVAL (Invalid argument)<br>
                      <br>
                      I&#39;ll try to patch td.c to skip O_DIRECT flag but
                      this is rather dirty hack than proper solution of
                      the problem.<br>
                      <br>
                      Regards,<br>
                      Dawid<br>
                    </blockquote>
                    <br>
                    _______________________________________________<br>
                    Xen-api mailing list<br>
                    <a href=3D"mailto:Xen-api@lists.xen.org" target=3D"_bla=
nk">Xen-api@lists.xen.org</a><br>
                    <a href=3D"http://lists.xen.org/cgi-bin/mailman/listinf=
o/xen-api" target=3D"_blank">http://lists.xen.org/cgi-bin/mailman/listinfo/=
xen-api</a><br>
                  </blockquote>
                </blockquote>
                <br>
                <br>
                _______________________________________________<br>
                Xen-api mailing list<br>
                <a href=3D"mailto:Xen-api@lists.xen.org" target=3D"_blank">=
Xen-api@lists.xen.org</a><br>
                <a href=3D"http://lists.xen.org/cgi-bin/mailman/listinfo/xe=
n-api" target=3D"_blank">http://lists.xen.org/cgi-bin/mailman/listinfo/xen-=
api</a><br>
              </div>
            </div>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
    <br>
  </div></div></div>

<br>_______________________________________________<br>
Xen-api mailing list<br>
<a href=3D"mailto:Xen-api@lists.xen.org">Xen-api@lists.xen.org</a><br>
<a href=3D"http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api" target=3D=
"_blank">http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api</a><br>
<br></blockquote></div><br></div>

--001a11c3339a4b9cef050b78ae68--


--===============6903995380309443394==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

--===============6903995380309443394==--


From xen-api-bounces@lists.xen.org Wed Dec 31 01:04:04 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Dec 2014 01:04:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Y67hc-00072U-9s; Wed, 31 Dec 2014 01:03:56 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <creategui@gmail.com>) id 1Y67ha-00072P-CL
	for xen-api@lists.xen.org; Wed, 31 Dec 2014 01:03:54 +0000
Received: from [193.109.254.147] by server-10.bemta-14.messagelabs.com id
	EF/3F-02696-97B43A45; Wed, 31 Dec 2014 01:03:53 +0000
X-Env-Sender: creategui@gmail.com
X-Msg-Ref: server-12.tower-27.messagelabs.com!1419987831!17880912!1
X-Originating-IP: [209.85.212.182]
X-SpamReason: No, hits=1.5 required=7.0 tests=HTML_50_60,HTML_MESSAGE,
	MAILTO_TO_REMOVE,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5793 invoked from network); 31 Dec 2014 01:03:52 -0000
Received: from mail-wi0-f182.google.com (HELO mail-wi0-f182.google.com)
	(209.85.212.182)
	by server-12.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	31 Dec 2014 01:03:52 -0000
Received: by mail-wi0-f182.google.com with SMTP id h11so24841611wiw.15
	for <xen-api@lists.xen.org>; Tue, 30 Dec 2014 17:03:51 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:sender:in-reply-to:references:date:message-id:subject
	:from:to:cc:content-type;
	bh=wdaT5humDpvXsSqd34XBxOUZRlI61e6lYeW4JiVpZZ4=;
	b=fjGDgn56ONZ9OuHA6//Tv22KMODxScOG6o7RqBXap8D9GQXpISsvIi6bpiEj4RlGVT
	gSogR3x9jVFJMfv/UU7X54g9o5NXLV/jpgQqYP0BjE6XFHITW/sSpz92wkbRykwN0T3K
	3Tfiu2+1LGUHNvZGlZZjObtb5bzSiUfK6nR12cL31MT+JOpwTsRkhAPPM8FlPEPLATza
	4SDGmGIjuO7FC02wSxJzbMUGO4dREaKnd61nalmXJ2VcKklBoEtA+0EOQsH2m50rDzxn
	PDjHhH8j3+CP534nrDeTEV8hv6THEfuCynpRYcq50GJa60olpG/sNhNkA3Gvascg+7LV
	42mA==
MIME-Version: 1.0
X-Received: by 10.180.186.8 with SMTP id fg8mr99464566wic.40.1419987831723;
	Tue, 30 Dec 2014 17:03:51 -0800 (PST)
Received: by 10.180.97.7 with HTTP; Tue, 30 Dec 2014 17:03:51 -0800 (PST)
In-Reply-To: <54A33D73.7050304@gmail.com>
References: <54A2DCB2.6070208@gmail.com> <54A2DFB8.2010605@gmail.com>
	<0D6B7E67-20FA-4D86-888F-E2DD9384DCFA@citrix.com>
	<54A2E4AE.8010504@gmail.com>
	<CAMbNGRXq_fy8LiqKbeu2JCHFyG-nwKXsRPuz+TYXfQ7MaaSFbw@mail.gmail.com>
	<54A33D73.7050304@gmail.com>
Date: Tue, 30 Dec 2014 17:03:51 -0800
X-Google-Sender-Auth: VD2OJcbdAMi1lUN5M-zoSki1HvA
Message-ID: <CAMbNGRXkocMm228jAk09fJMY6NP6nmfu6DAwx-MyMXNYb8BiCQ@mail.gmail.com>
From: Carlos Reategui <carlos@reategui.com>
To: Dawid Kowalski <dkadds2@gmail.com>
Cc: Xen API mailing list <xen-api@lists.xen.org>
Subject: Re: [Xen-API] Storage Repository FileSR on ZFS won't work - Linux
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============6903995380309443394=="
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

--===============6903995380309443394==
Content-Type: multipart/alternative; boundary=001a11c3339a4b9cef050b78ae68

--001a11c3339a4b9cef050b78ae68
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Glad you got it to work.

BTW DirectIO support in ZFS on Linux is on the roadmap for 0.6.4 (
https://github.com/zfsonlinux/zfs/issues/224).  However don't know when
that is scheduled for.

On Tue, Dec 30, 2014 at 4:04 PM, Dawid Kowalski <dkadds2@gmail.com> wrote:

>  Hi Carlos,
>
> Thanks for hint!
> This one worked.
>
> So what worked:
> zpool -> zfs block device fomatted as ext4 and mounted as folder
> storage repository created with ffs driver.
> The other drivers, meaning :
> - file, fileSR on mounted ext4 FS,
> - ext/lvm pointed to /dev/zd0
> - ffs directly on ZFS.
>
> Failed.
>
> Other last resort option was to create file on ZFS, losetup and create VG
> on it.
>
> FFS directly on ZFS failed most probably due to unsupported O_DIRECT flag
> (err=3D22) and other failed most probably for similar reasons.
>
> If anyone would have some questions, feel free to email me directly at
> love-spam-remove-me-up-to-here-dkadds2+xen-api@gmail.com
>
> Based on my experience, there seem to be a lot to be fixed on xen side to
> be really user friendly/usable.
>
> Based on ZFS list of features there should be direct connector from Xen
> side.
>
> Regards,
> Dawid
>
>
> On 30/12/14 20:04, Carlos Reategui wrote:
>
> Have you tried using ext4 on a ZVOL and putting your VHDs there?
>
>  Scroll down to the "Ext4 on a ZVOL" section:
> https://pthree.org/2012/12/21/zfs-administration-part-xiv-zvols/
>
>
> On Tue, Dec 30, 2014 at 9:45 AM, Dawid Kowalski <dkadds2@gmail.com> wrote=
:
>
>> Just as a form of an update. I'm stuck trying to get NFS working as no
>> other way to use ZFS in background seems to be available for me. iSCSI
>> share option for ZFS is not available on Linux. Should I try to enable i=
t
>> I'd need to add third-party daemon.
>>
>> I'm looking forward for your help in NFS context.
>>
>> In regards to nosync - I'm happy to give it a try as it's just a test
>> system now but I'd prefer to find working solution.
>>
>> I've spent couple of days/evenings already fighting to get Xen working o=
n
>> Ubuntu with ZFS and I'm close to give up and try KVM. It's way to
>> complicated.
>>
>> I'll still keep trying...
>>
>> Thanks,
>> Dawid
>>
>>
>>
>> On 30/12/14 18:40, Dave Scott wrote:
>>
>>>  On 30 Dec 2014, at 17:24, Dawid Kowalski <dkadds2@gmail.com> wrote:
>>>>
>>>> I'll answer myself.
>>>>
>>>> Modifying td.c line 258 to skip O_DIRECT and recompiling doesn't help.
>>>> For some unexplained reasons, it calls O_DIRECT flag still:
>>>>
>>> Hm. As an experiment you could try an LD_PRELOAD wrapper like this:
>>>
>>> http://www.mcgill.org.za/stuff/software/nosync
>>>
>>> Before using anything like this for data you care about, we need to
>>> think it through a little to make sure it=E2=80=99s safe. Perhaps Linux=
 zfs support
>>> for iSCSI is safer? (Sorry to flip-flop on this, I=E2=80=99m not very f=
amiliar with
>>> ZFS)
>>>
>>> Cheers,
>>> Dave
>>>
>>>  strace ./td-util create vhd 2048 /path/to/file
>>>> open("/path/to/file", O_WRONLY|O_CREAT|O_TRUNC|O_DIRECT, 0644) =3D -1
>>>> EINVAL (Invalid argument)
>>>> exit_group(22)                          =3D ?
>>>> +++ exited with 22 +++
>>>>
>>>> Checking other files with O_WRONLY flag doesn't bring any ideas as non=
e
>>>> of them use "O_DIRECT".
>>>>
>>>> lock.c:        fd =3D open(buf, O_WRONLY | O_CREAT, 0644);
>>>> lock.c:        fd =3D open(lockfn, O_WRONLY | O_CREAT | O_EXCL, 0644);
>>>> lock.c:                fd =3D open(lockfn_flink, O_WRONLY | O_CREAT,
>>>> 0644);
>>>> tapdisk-vbd.c:    fd =3D open(fn, O_WRONLY | O_CREAT | O_NONBLOCK, 066=
6);
>>>> td.c:    fd =3D open(name, O_WRONLY | O_CREAT | O_TRUNC, 0644);
>>>>
>>>>
>>>> Any ideas how to fix FileSR for ZFS on Linux?
>>>>
>>>> Seems like I'm left with iScsi approach only.
>>>>
>>>> Thanks,
>>>> Dawid
>>>>
>>>> On 30/12/14 18:11, Dawid Kowalski wrote:
>>>>
>>>>> Hi Guys,
>>>>>
>>>>> Just wanted to report that file based Storage Repository won't work o=
n
>>>>> Linux systems as td-util is required O_DIRECT when creating image fil=
e not
>>>>> supported on ZFS (Linux).
>>>>>
>>>>> When creating vm, i.e. vm-import it calls td-util similar to below:
>>>>> td-util create vhd 2048 /path/to/file
>>>>>
>>>>> Strace shows:
>>>>> open("/path/to/file", O_WRONLY|O_CREAT|O_TRUNC|O_DIRECT, 0644) =3D -1
>>>>> EINVAL (Invalid argument)
>>>>>
>>>>> I'll try to patch td.c to skip O_DIRECT flag but this is rather dirty
>>>>> hack than proper solution of the problem.
>>>>>
>>>>> Regards,
>>>>> Dawid
>>>>>
>>>>
>>>> _______________________________________________
>>>> Xen-api mailing list
>>>> Xen-api@lists.xen.org
>>>> http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api
>>>>
>>>
>>
>> _______________________________________________
>> Xen-api mailing list
>> Xen-api@lists.xen.org
>> http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api
>>
>
>
>
> _______________________________________________
> Xen-api mailing list
> Xen-api@lists.xen.org
> http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api
>
>

--001a11c3339a4b9cef050b78ae68
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Glad you got it to work.<div><br></div><div>BTW DirectIO s=
upport in ZFS on Linux is on the roadmap for 0.6.4 (<a href=3D"https://gith=
ub.com/zfsonlinux/zfs/issues/224">https://github.com/zfsonlinux/zfs/issues/=
224</a>).=C2=A0 However don&#39;t know when that is scheduled for.</div></d=
iv><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On Tue, Dec 30=
, 2014 at 4:04 PM, Dawid Kowalski <span dir=3D"ltr">&lt;<a href=3D"mailto:d=
kadds2@gmail.com" target=3D"_blank">dkadds2@gmail.com</a>&gt;</span> wrote:=
<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-lef=
t:1px #ccc solid;padding-left:1ex">
 =20
   =20
 =20
  <div bgcolor=3D"#FFFFFF" text=3D"#000000">
    Hi Carlos,<br>
    <br>
    Thanks for hint!<br>
    This one worked.<br>
    <br>
    So what worked:<br>
    zpool -&gt; zfs block device fomatted as ext4 and mounted as folder<br>
    storage repository created with ffs driver.<br>
    The other drivers, meaning :<br>
    - file, fileSR on mounted ext4 FS,<br>
    - ext/lvm pointed to /dev/zd0<br>
    - ffs directly on ZFS.<br>
    <br>
    Failed.<br>
    <br>
    Other last resort option was to create file on ZFS, losetup and
    create VG on it.<br>
    <br>
    FFS directly on ZFS failed most probably due to unsupported O_DIRECT
    flag (err=3D22) and other failed most probably for similar reasons.<br>
    <br>
    If anyone would have some questions, feel free to email me directly
    at <a href=3D"mailto:love-spam-remove-me-up-to-here-dkadds2+xen-api@gma=
il.com" target=3D"_blank">love-spam-remove-me-up-to-here-dkadds2+xen-api@gm=
ail.com</a><br>
    <br>
    Based on my experience, there seem to be a lot to be fixed on xen
    side to be really user friendly/usable.<br>
    <br>
    Based on ZFS list of features there should be direct connector from
    Xen side.<br>
    <br>
    Regards,<br>
    Dawid<div><div class=3D"h5"><br>
    <br>
    <div>On 30/12/14 20:04, Carlos Reategui
      wrote:<br>
    </div>
    <blockquote type=3D"cite">
      <div dir=3D"ltr">Have you tried using ext4 on a ZVOL and putting
        your VHDs there?
        <div><br>
        </div>
        <div>Scroll down to the &quot;Ext4 on a ZVOL&quot; section:=C2=A0<a=
 href=3D"https://pthree.org/2012/12/21/zfs-administration-part-xiv-zvols/" =
target=3D"_blank">https://pthree.org/2012/12/21/zfs-administration-part-xiv=
-zvols/</a></div>
        <div><br>
        </div>
      </div>
      <div class=3D"gmail_extra"><br>
        <div class=3D"gmail_quote">On Tue, Dec 30, 2014 at 9:45 AM, Dawid
          Kowalski <span dir=3D"ltr">&lt;<a href=3D"mailto:dkadds2@gmail.co=
m" target=3D"_blank">dkadds2@gmail.com</a>&gt;</span>
          wrote:<br>
          <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bord=
er-left:1px #ccc solid;padding-left:1ex">Just as a
            form of an update. I&#39;m stuck trying to get NFS working as n=
o
            other way to use ZFS in background seems to be available for
            me. iSCSI share option for ZFS is not available on Linux.
            Should I try to enable it I&#39;d need to add third-party
            daemon.<br>
            <br>
            I&#39;m looking forward for your help in NFS context.<br>
            <br>
            In regards to nosync - I&#39;m happy to give it a try as it&#39=
;s
            just a test system now but I&#39;d prefer to find working
            solution.<br>
            <br>
            I&#39;ve spent couple of days/evenings already fighting to get
            Xen working on Ubuntu with ZFS and I&#39;m close to give up and
            try KVM. It&#39;s way to complicated.<br>
            <br>
            I&#39;ll still keep trying...<br>
            <br>
            Thanks,<br>
            Dawid
            <div>
              <div><br>
                <br>
                <br>
                On 30/12/14 18:40, Dave Scott wrote:<br>
                <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8e=
x;border-left:1px #ccc solid;padding-left:1ex">
                  <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .=
8ex;border-left:1px #ccc solid;padding-left:1ex">
                    On 30 Dec 2014, at 17:24, Dawid Kowalski &lt;<a href=3D=
"mailto:dkadds2@gmail.com" target=3D"_blank">dkadds2@gmail.com</a>&gt;
                    wrote:<br>
                    <br>
                    I&#39;ll answer myself.<br>
                    <br>
                    Modifying td.c line 258 to skip O_DIRECT and
                    recompiling doesn&#39;t help.<br>
                    For some unexplained reasons, it calls O_DIRECT flag
                    still:<br>
                  </blockquote>
                  Hm. As an experiment you could try an LD_PRELOAD
                  wrapper like this:<br>
                  <br>
                  <a href=3D"http://www.mcgill.org.za/stuff/software/nosync=
" target=3D"_blank">http://www.mcgill.org.za/stuff/software/nosync</a><br>
                  <br>
                  Before using anything like this for data you care
                  about, we need to think it through a little to make
                  sure it=E2=80=99s safe. Perhaps Linux zfs support for iSC=
SI is
                  safer? (Sorry to flip-flop on this, I=E2=80=99m not very
                  familiar with ZFS)<br>
                  <br>
                  Cheers,<br>
                  Dave<br>
                  <br>
                  <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .=
8ex;border-left:1px #ccc solid;padding-left:1ex">
                    strace ./td-util create vhd 2048 /path/to/file<br>
                    open(&quot;/path/to/file&quot;, O_WRONLY|O_CREAT|O_TRUN=
C|O_DIRECT,
                    0644) =3D -1 EINVAL (Invalid argument)<br>
                    exit_group(22)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =3D ?<br>
                    +++ exited with 22 +++<br>
                    <br>
                    Checking other files with O_WRONLY flag doesn&#39;t
                    bring any ideas as none of them use &quot;O_DIRECT&quot=
;.<br>
                    <br>
                    lock.c:=C2=A0 =C2=A0 =C2=A0 =C2=A0 fd =3D open(buf, O_W=
RONLY | O_CREAT,
                    0644);<br>
                    lock.c:=C2=A0 =C2=A0 =C2=A0 =C2=A0 fd =3D open(lockfn, =
O_WRONLY | O_CREAT
                    | O_EXCL, 0644);<br>
                    lock.c:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 fd =3D open(lockfn_flink,
                    O_WRONLY | O_CREAT, 0644);<br>
                    tapdisk-vbd.c:=C2=A0 =C2=A0 fd =3D open(fn, O_WRONLY | =
O_CREAT |
                    O_NONBLOCK, 0666);<br>
                    td.c:=C2=A0 =C2=A0 fd =3D open(name, O_WRONLY | O_CREAT=
 |
                    O_TRUNC, 0644);<br>
                    <br>
                    <br>
                    Any ideas how to fix FileSR for ZFS on Linux?<br>
                    <br>
                    Seems like I&#39;m left with iScsi approach only.<br>
                    <br>
                    Thanks,<br>
                    Dawid<br>
                    <br>
                    On 30/12/14 18:11, Dawid Kowalski wrote:<br>
                    <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0=
 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                      Hi Guys,<br>
                      <br>
                      Just wanted to report that file based Storage
                      Repository won&#39;t work on Linux systems as td-util
                      is required O_DIRECT when creating image file not
                      supported on ZFS (Linux).<br>
                      <br>
                      When creating vm, i.e. vm-import it calls td-util
                      similar to below:<br>
                      td-util create vhd 2048 /path/to/file<br>
                      <br>
                      Strace shows:<br>
                      open(&quot;/path/to/file&quot;, O_WRONLY|O_CREAT|O_TR=
UNC|O_DIRECT,
                      0644) =3D -1 EINVAL (Invalid argument)<br>
                      <br>
                      I&#39;ll try to patch td.c to skip O_DIRECT flag but
                      this is rather dirty hack than proper solution of
                      the problem.<br>
                      <br>
                      Regards,<br>
                      Dawid<br>
                    </blockquote>
                    <br>
                    _______________________________________________<br>
                    Xen-api mailing list<br>
                    <a href=3D"mailto:Xen-api@lists.xen.org" target=3D"_bla=
nk">Xen-api@lists.xen.org</a><br>
                    <a href=3D"http://lists.xen.org/cgi-bin/mailman/listinf=
o/xen-api" target=3D"_blank">http://lists.xen.org/cgi-bin/mailman/listinfo/=
xen-api</a><br>
                  </blockquote>
                </blockquote>
                <br>
                <br>
                _______________________________________________<br>
                Xen-api mailing list<br>
                <a href=3D"mailto:Xen-api@lists.xen.org" target=3D"_blank">=
Xen-api@lists.xen.org</a><br>
                <a href=3D"http://lists.xen.org/cgi-bin/mailman/listinfo/xe=
n-api" target=3D"_blank">http://lists.xen.org/cgi-bin/mailman/listinfo/xen-=
api</a><br>
              </div>
            </div>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
    <br>
  </div></div></div>

<br>_______________________________________________<br>
Xen-api mailing list<br>
<a href=3D"mailto:Xen-api@lists.xen.org">Xen-api@lists.xen.org</a><br>
<a href=3D"http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api" target=3D=
"_blank">http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api</a><br>
<br></blockquote></div><br></div>

--001a11c3339a4b9cef050b78ae68--


--===============6903995380309443394==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

--===============6903995380309443394==--


From xen-api-bounces@lists.xen.org Wed Dec 31 01:17:53 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Dec 2014 01:17:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Y67uy-0007PM-8C; Wed, 31 Dec 2014 01:17:44 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <dkadds2@gmail.com>) id 1Y67uw-0007PF-Ky
	for xen-api@lists.xen.org; Wed, 31 Dec 2014 01:17:42 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	97/75-25276-6BE43A45; Wed, 31 Dec 2014 01:17:42 +0000
X-Env-Sender: dkadds2@gmail.com
X-Msg-Ref: server-14.tower-21.messagelabs.com!1419988661!18587964!1
X-Originating-IP: [209.85.212.172]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 9818 invoked from network); 31 Dec 2014 01:17:41 -0000
Received: from mail-wi0-f172.google.com (HELO mail-wi0-f172.google.com)
	(209.85.212.172)
	by server-14.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	31 Dec 2014 01:17:41 -0000
Received: by mail-wi0-f172.google.com with SMTP id n3so24863933wiv.11
	for <xen-api@lists.xen.org>; Tue, 30 Dec 2014 17:17:41 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=message-id:date:from:user-agent:mime-version:to:subject
	:content-type:content-transfer-encoding;
	bh=ns3pMopOPlFWkGaOR/wazWcklKoIjg6W1sOaD/j80pM=;
	b=BjLra213dzQrXpWBAu7URmeKsOWwtZ6+g+7V6KS7USfqTo2ckFULvKHIuOA5WpAOZv
	Jym8ahEAIpQ2SycWFiq4NApATzrkyEUpfFiyobZpokfPhGMRejIyMeDZx95iodLLzeHh
	/ZjZ0aqrhoV5oxZ0k4uYzjP1MpWuyVjC9PcsVzgg/MkYOu3oOVNNyzlPDxRIxmWbvPYc
	Q82QSqQgeGy+kCHvTPju9515dkW/peUfVgMuvWRc7b9DvnTbQIamb0Js7WBMDnEm6qwC
	eaqlDy8IORGNzMo/gyoCnzvS19/OLO/zp52jReTYsrkuj6EcGCCNkFc1TasUdDZ24wf4
	jO6Q==
X-Received: by 10.180.83.129 with SMTP id q1mr109330573wiy.8.1419988661336;
	Tue, 30 Dec 2014 17:17:41 -0800 (PST)
Received: from BlackApple.local ([88.169.214.221])
	by mx.google.com with ESMTPSA id f7sm45286704wiz.13.2014.12.30.17.17.40
	for <xen-api@lists.xen.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 30 Dec 2014 17:17:40 -0800 (PST)
Message-ID: <54A34EB2.4040809@gmail.com>
Date: Wed, 31 Dec 2014 02:17:38 +0100
From: Dawid Kowalski <dkadds2@gmail.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10;
	rv:31.0) Gecko/20100101 Thunderbird/31.3.0
MIME-Version: 1.0
To: Xen API mailing list <xen-api@lists.xen.org>
Subject: [Xen-API] XAPI create PV (para-virtualized) Ubuntu guest 14.04
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

Hi Guys,

Could any of you point me to how to create PV guest with minimal 
filesystem consumption?

I've update template for Ubuntu 14.04 following 
http://www.mikeslab.net/?p=222

But I have no idea how to create PV system from CLI.

I've created VM using Xen Orchestra and it seems to be PV system based 
on parameters however XO forced me to use ISO image or URL. I've chosen 
ISO but while it still installs it took already 1.4GB of disk space for 
minimal installation.

Is this the way it should be or there is some minimalistic approach?

Thanks,
Dawid

_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

From xen-api-bounces@lists.xen.org Wed Dec 31 01:17:53 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Dec 2014 01:17:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Y67uy-0007PM-8C; Wed, 31 Dec 2014 01:17:44 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <dkadds2@gmail.com>) id 1Y67uw-0007PF-Ky
	for xen-api@lists.xen.org; Wed, 31 Dec 2014 01:17:42 +0000
Received: from [85.158.143.35] by server-2.bemta-4.messagelabs.com id
	97/75-25276-6BE43A45; Wed, 31 Dec 2014 01:17:42 +0000
X-Env-Sender: dkadds2@gmail.com
X-Msg-Ref: server-14.tower-21.messagelabs.com!1419988661!18587964!1
X-Originating-IP: [209.85.212.172]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 9818 invoked from network); 31 Dec 2014 01:17:41 -0000
Received: from mail-wi0-f172.google.com (HELO mail-wi0-f172.google.com)
	(209.85.212.172)
	by server-14.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	31 Dec 2014 01:17:41 -0000
Received: by mail-wi0-f172.google.com with SMTP id n3so24863933wiv.11
	for <xen-api@lists.xen.org>; Tue, 30 Dec 2014 17:17:41 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=message-id:date:from:user-agent:mime-version:to:subject
	:content-type:content-transfer-encoding;
	bh=ns3pMopOPlFWkGaOR/wazWcklKoIjg6W1sOaD/j80pM=;
	b=BjLra213dzQrXpWBAu7URmeKsOWwtZ6+g+7V6KS7USfqTo2ckFULvKHIuOA5WpAOZv
	Jym8ahEAIpQ2SycWFiq4NApATzrkyEUpfFiyobZpokfPhGMRejIyMeDZx95iodLLzeHh
	/ZjZ0aqrhoV5oxZ0k4uYzjP1MpWuyVjC9PcsVzgg/MkYOu3oOVNNyzlPDxRIxmWbvPYc
	Q82QSqQgeGy+kCHvTPju9515dkW/peUfVgMuvWRc7b9DvnTbQIamb0Js7WBMDnEm6qwC
	eaqlDy8IORGNzMo/gyoCnzvS19/OLO/zp52jReTYsrkuj6EcGCCNkFc1TasUdDZ24wf4
	jO6Q==
X-Received: by 10.180.83.129 with SMTP id q1mr109330573wiy.8.1419988661336;
	Tue, 30 Dec 2014 17:17:41 -0800 (PST)
Received: from BlackApple.local ([88.169.214.221])
	by mx.google.com with ESMTPSA id f7sm45286704wiz.13.2014.12.30.17.17.40
	for <xen-api@lists.xen.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 30 Dec 2014 17:17:40 -0800 (PST)
Message-ID: <54A34EB2.4040809@gmail.com>
Date: Wed, 31 Dec 2014 02:17:38 +0100
From: Dawid Kowalski <dkadds2@gmail.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10;
	rv:31.0) Gecko/20100101 Thunderbird/31.3.0
MIME-Version: 1.0
To: Xen API mailing list <xen-api@lists.xen.org>
Subject: [Xen-API] XAPI create PV (para-virtualized) Ubuntu guest 14.04
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

Hi Guys,

Could any of you point me to how to create PV guest with minimal 
filesystem consumption?

I've update template for Ubuntu 14.04 following 
http://www.mikeslab.net/?p=222

But I have no idea how to create PV system from CLI.

I've created VM using Xen Orchestra and it seems to be PV system based 
on parameters however XO forced me to use ISO image or URL. I've chosen 
ISO but while it still installs it took already 1.4GB of disk space for 
minimal installation.

Is this the way it should be or there is some minimalistic approach?

Thanks,
Dawid

_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

From xen-api-bounces@lists.xen.org Wed Dec 31 09:42:40 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Dec 2014 09:42:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Y6FnS-0001Qk-Fx; Wed, 31 Dec 2014 09:42:30 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <lambert.olivier@gmail.com>) id 1Y6FnQ-0001Qf-Fn
	for xen-api@lists.xen.org; Wed, 31 Dec 2014 09:42:28 +0000
Received: from [85.158.137.68] by server-1.bemta-3.messagelabs.com id
	87/21-18267-305C3A45; Wed, 31 Dec 2014 09:42:27 +0000
X-Env-Sender: lambert.olivier@gmail.com
X-Msg-Ref: server-14.tower-31.messagelabs.com!1420018946!14123438!1
X-Originating-IP: [74.125.82.50]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 3534 invoked from network); 31 Dec 2014 09:42:26 -0000
Received: from mail-wg0-f50.google.com (HELO mail-wg0-f50.google.com)
	(74.125.82.50)
	by server-14.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	31 Dec 2014 09:42:26 -0000
Received: by mail-wg0-f50.google.com with SMTP id a1so21958127wgh.9
	for <xen-api@lists.xen.org>; Wed, 31 Dec 2014 01:42:26 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=cEhU1k0dwLCBoNrSdZFWNU9UkD/+EVWueMQpq90S8e0=;
	b=BpjT2RV91r7I8c66ZiVRkvTDsoCOtdkqmtWgS+vkNWFOCGmzhb2ui5smlwkemhGI/r
	FlE8EM1WUUHJ3+qRBvpmyOzjyxyyGD58oqyxeZbEiY5hVUtwx/knx5HZYAPlNZbC8F54
	nGZY1bqpOY/rwuaV8CvDJ78ZrOKgg/eMfq1NiwGEOPcajdsT35jV2/ZkBfUfgKPjBzfz
	3KHqA8tC58e+nIlihoFKoNtzFf8CB1JZM61daErzRI1UiflZu6c2eE7eaaixTJaao/nY
	f5W5mmnwc80zZkf1qpnz7cYgQZ+h2EOfqI0eynBS2pYAm7q5baJB6azQBch3wQ4Oi+cg
	ZJpw==
MIME-Version: 1.0
X-Received: by 10.194.157.4 with SMTP id wi4mr127116610wjb.54.1420018946479;
	Wed, 31 Dec 2014 01:42:26 -0800 (PST)
Received: by 10.180.65.76 with HTTP; Wed, 31 Dec 2014 01:42:26 -0800 (PST)
In-Reply-To: <54A34EB2.4040809@gmail.com>
References: <54A34EB2.4040809@gmail.com>
Date: Wed, 31 Dec 2014 10:42:26 +0100
Message-ID: <CACJ1ZNsr8V+-YM0EG_4LtdP47ZjiSbPnmeD5KfXuTmmJvPSqSw@mail.gmail.com>
From: Olivier Lambert <lambert.olivier@gmail.com>
To: Dawid Kowalski <dkadds2@gmail.com>
Cc: Xen API mailing list <xen-api@lists.xen.org>
Subject: Re: [Xen-API] XAPI create PV (para-virtualized) Ubuntu guest 14.04
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

Hi,

PV means your guest "knows" it is virtualized, because its kernel
itself is modified to talk directly to Xen [0]. It doesn't mean
minimal filesystem occupation. However, if you want to have minimal
footprint on your guest, you can rely on Ubuntu server installation
[1] (likewise to the Debian netinstall without selecting any extra
packages), or use minimalist distro.

The other alternative is to use unikernel OS, like Mirage [2].


[0]: http://wiki.xenproject.org/wiki/Paravirtualization_%28PV%29
[1]: http://www.ubuntu.com/server
[2]: http://www.openmirage.org/


Regards,

--
Olivier
XO Team

On Wed, Dec 31, 2014 at 2:17 AM, Dawid Kowalski <dkadds2@gmail.com> wrote:
> Hi Guys,
>
> Could any of you point me to how to create PV guest with minimal filesystem
> consumption?
>
> I've update template for Ubuntu 14.04 following
> http://www.mikeslab.net/?p=222
>
> But I have no idea how to create PV system from CLI.
>
> I've created VM using Xen Orchestra and it seems to be PV system based on
> parameters however XO forced me to use ISO image or URL. I've chosen ISO but
> while it still installs it took already 1.4GB of disk space for minimal
> installation.
>
> Is this the way it should be or there is some minimalistic approach?
>
> Thanks,
> Dawid
>
> _______________________________________________
> Xen-api mailing list
> Xen-api@lists.xen.org
> http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

From xen-api-bounces@lists.xen.org Wed Dec 31 09:42:40 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Dec 2014 09:42:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Y6FnS-0001Qk-Fx; Wed, 31 Dec 2014 09:42:30 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <lambert.olivier@gmail.com>) id 1Y6FnQ-0001Qf-Fn
	for xen-api@lists.xen.org; Wed, 31 Dec 2014 09:42:28 +0000
Received: from [85.158.137.68] by server-1.bemta-3.messagelabs.com id
	87/21-18267-305C3A45; Wed, 31 Dec 2014 09:42:27 +0000
X-Env-Sender: lambert.olivier@gmail.com
X-Msg-Ref: server-14.tower-31.messagelabs.com!1420018946!14123438!1
X-Originating-IP: [74.125.82.50]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 3534 invoked from network); 31 Dec 2014 09:42:26 -0000
Received: from mail-wg0-f50.google.com (HELO mail-wg0-f50.google.com)
	(74.125.82.50)
	by server-14.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
	31 Dec 2014 09:42:26 -0000
Received: by mail-wg0-f50.google.com with SMTP id a1so21958127wgh.9
	for <xen-api@lists.xen.org>; Wed, 31 Dec 2014 01:42:26 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=cEhU1k0dwLCBoNrSdZFWNU9UkD/+EVWueMQpq90S8e0=;
	b=BpjT2RV91r7I8c66ZiVRkvTDsoCOtdkqmtWgS+vkNWFOCGmzhb2ui5smlwkemhGI/r
	FlE8EM1WUUHJ3+qRBvpmyOzjyxyyGD58oqyxeZbEiY5hVUtwx/knx5HZYAPlNZbC8F54
	nGZY1bqpOY/rwuaV8CvDJ78ZrOKgg/eMfq1NiwGEOPcajdsT35jV2/ZkBfUfgKPjBzfz
	3KHqA8tC58e+nIlihoFKoNtzFf8CB1JZM61daErzRI1UiflZu6c2eE7eaaixTJaao/nY
	f5W5mmnwc80zZkf1qpnz7cYgQZ+h2EOfqI0eynBS2pYAm7q5baJB6azQBch3wQ4Oi+cg
	ZJpw==
MIME-Version: 1.0
X-Received: by 10.194.157.4 with SMTP id wi4mr127116610wjb.54.1420018946479;
	Wed, 31 Dec 2014 01:42:26 -0800 (PST)
Received: by 10.180.65.76 with HTTP; Wed, 31 Dec 2014 01:42:26 -0800 (PST)
In-Reply-To: <54A34EB2.4040809@gmail.com>
References: <54A34EB2.4040809@gmail.com>
Date: Wed, 31 Dec 2014 10:42:26 +0100
Message-ID: <CACJ1ZNsr8V+-YM0EG_4LtdP47ZjiSbPnmeD5KfXuTmmJvPSqSw@mail.gmail.com>
From: Olivier Lambert <lambert.olivier@gmail.com>
To: Dawid Kowalski <dkadds2@gmail.com>
Cc: Xen API mailing list <xen-api@lists.xen.org>
Subject: Re: [Xen-API] XAPI create PV (para-virtualized) Ubuntu guest 14.04
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

Hi,

PV means your guest "knows" it is virtualized, because its kernel
itself is modified to talk directly to Xen [0]. It doesn't mean
minimal filesystem occupation. However, if you want to have minimal
footprint on your guest, you can rely on Ubuntu server installation
[1] (likewise to the Debian netinstall without selecting any extra
packages), or use minimalist distro.

The other alternative is to use unikernel OS, like Mirage [2].


[0]: http://wiki.xenproject.org/wiki/Paravirtualization_%28PV%29
[1]: http://www.ubuntu.com/server
[2]: http://www.openmirage.org/


Regards,

--
Olivier
XO Team

On Wed, Dec 31, 2014 at 2:17 AM, Dawid Kowalski <dkadds2@gmail.com> wrote:
> Hi Guys,
>
> Could any of you point me to how to create PV guest with minimal filesystem
> consumption?
>
> I've update template for Ubuntu 14.04 following
> http://www.mikeslab.net/?p=222
>
> But I have no idea how to create PV system from CLI.
>
> I've created VM using Xen Orchestra and it seems to be PV system based on
> parameters however XO forced me to use ISO image or URL. I've chosen ISO but
> while it still installs it took already 1.4GB of disk space for minimal
> installation.
>
> Is this the way it should be or there is some minimalistic approach?
>
> Thanks,
> Dawid
>
> _______________________________________________
> Xen-api mailing list
> Xen-api@lists.xen.org
> http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

From xen-api-bounces@lists.xen.org Wed Dec 31 11:03:52 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Dec 2014 11:03:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Y6H40-0004uu-Q8; Wed, 31 Dec 2014 11:03:40 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <dkadds2@gmail.com>) id 1Y6H3z-0004up-Gk
	for xen-api@lists.xen.org; Wed, 31 Dec 2014 11:03:39 +0000
Received: from [193.109.254.147] by server-2.bemta-14.messagelabs.com id
	C6/84-02957-A08D3A45; Wed, 31 Dec 2014 11:03:38 +0000
X-Env-Sender: dkadds2@gmail.com
X-Msg-Ref: server-7.tower-27.messagelabs.com!1420023817!17890461!1
X-Originating-IP: [74.125.82.45]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 11946 invoked from network); 31 Dec 2014 11:03:37 -0000
Received: from mail-wg0-f45.google.com (HELO mail-wg0-f45.google.com)
	(74.125.82.45)
	by server-7.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	31 Dec 2014 11:03:37 -0000
Received: by mail-wg0-f45.google.com with SMTP id b13so21861435wgh.4
	for <xen-api@lists.xen.org>; Wed, 31 Dec 2014 03:03:37 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=message-id:date:from:user-agent:mime-version:to:cc:subject
	:references:in-reply-to:content-type:content-transfer-encoding;
	bh=+55QymSpjtoIL2C4gmwTOFYGH+n+gEv1VAn5m+PbsB8=;
	b=YaURxeGeoZU1zx5gv5rlcWCG0yPaE7n2XoyADVs1mSdHd2ZGPOhVc1qCQ4ff0CRCfK
	2DVGASXhDthadd17d6aMyPiovQFymP8J+szA86b7ZOj6QQEvTokDoaC9ktKjVD1XyG+g
	bQeiS9zsv95TdiF7oVaaVHeaF/JgiTPiG15H2poyvvtO2D4JMnnF/jjgJ7c0Fdec9Xnm
	JqI8GrSNMSYPxlX5G46gZTas/Bsu41jD7snoSBkc+Wy1C4sHmrK7cf9Dg+Fu1YkgtzUk
	Iq8Jn40y8Cn5mzPXpzIzHlxO9hCPsfQLhcBaQLwLKWCNrGA88WKdSWId6E50JcuhJ0eJ
	4m+w==
X-Received: by 10.194.200.1 with SMTP id jo1mr132294853wjc.64.1420023817489;
	Wed, 31 Dec 2014 03:03:37 -0800 (PST)
Received: from BlackApple.local ([88.169.214.221])
	by mx.google.com with ESMTPSA id
	nj9sm46698803wic.10.2014.12.31.03.03.35
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Wed, 31 Dec 2014 03:03:36 -0800 (PST)
Message-ID: <54A3D804.8030504@gmail.com>
Date: Wed, 31 Dec 2014 12:03:32 +0100
From: Dawid Kowalski <dkadds2@gmail.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10;
	rv:31.0) Gecko/20100101 Thunderbird/31.3.0
MIME-Version: 1.0
To: Olivier Lambert <lambert.olivier@gmail.com>
References: <54A34EB2.4040809@gmail.com>
	<CACJ1ZNsr8V+-YM0EG_4LtdP47ZjiSbPnmeD5KfXuTmmJvPSqSw@mail.gmail.com>
In-Reply-To: <CACJ1ZNsr8V+-YM0EG_4LtdP47ZjiSbPnmeD5KfXuTmmJvPSqSw@mail.gmail.com>
Cc: Xen API mailing list <xen-api@lists.xen.org>
Subject: Re: [Xen-API] XAPI create PV (para-virtualized) Ubuntu guest 14.04
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

Hi Olivier,

Which packages should I install on Ubuntu guest?
I know it is silly question... but searching around points me all the 
time to xe-guest-utilities which I can't find as I'm using XenProject 
hypervisor 4.4 installed on Ubuntu from buildroot.

This is certainly some silly point... but all related to xen kernel 
points me to xen-hypervisor.

Thanks for help!
Dawid

On 31/12/14 10:42, Olivier Lambert wrote:
> Hi,
>
> PV means your guest "knows" it is virtualized, because its kernel
> itself is modified to talk directly to Xen [0]. It doesn't mean
> minimal filesystem occupation. However, if you want to have minimal
> footprint on your guest, you can rely on Ubuntu server installation
> [1] (likewise to the Debian netinstall without selecting any extra
> packages), or use minimalist distro.
>
> The other alternative is to use unikernel OS, like Mirage [2].
>
>
> [0]: http://wiki.xenproject.org/wiki/Paravirtualization_%28PV%29
> [1]: http://www.ubuntu.com/server
> [2]: http://www.openmirage.org/
>
>
> Regards,
>
> --
> Olivier
> XO Team
>
> On Wed, Dec 31, 2014 at 2:17 AM, Dawid Kowalski <dkadds2@gmail.com> wrote:
>> Hi Guys,
>>
>> Could any of you point me to how to create PV guest with minimal filesystem
>> consumption?
>>
>> I've update template for Ubuntu 14.04 following
>> http://www.mikeslab.net/?p=222
>>
>> But I have no idea how to create PV system from CLI.
>>
>> I've created VM using Xen Orchestra and it seems to be PV system based on
>> parameters however XO forced me to use ISO image or URL. I've chosen ISO but
>> while it still installs it took already 1.4GB of disk space for minimal
>> installation.
>>
>> Is this the way it should be or there is some minimalistic approach?
>>
>> Thanks,
>> Dawid
>>
>> _______________________________________________
>> Xen-api mailing list
>> Xen-api@lists.xen.org
>> http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api


_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

From xen-api-bounces@lists.xen.org Wed Dec 31 11:03:52 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Dec 2014 11:03:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Y6H40-0004uu-Q8; Wed, 31 Dec 2014 11:03:40 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <dkadds2@gmail.com>) id 1Y6H3z-0004up-Gk
	for xen-api@lists.xen.org; Wed, 31 Dec 2014 11:03:39 +0000
Received: from [193.109.254.147] by server-2.bemta-14.messagelabs.com id
	C6/84-02957-A08D3A45; Wed, 31 Dec 2014 11:03:38 +0000
X-Env-Sender: dkadds2@gmail.com
X-Msg-Ref: server-7.tower-27.messagelabs.com!1420023817!17890461!1
X-Originating-IP: [74.125.82.45]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 11946 invoked from network); 31 Dec 2014 11:03:37 -0000
Received: from mail-wg0-f45.google.com (HELO mail-wg0-f45.google.com)
	(74.125.82.45)
	by server-7.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	31 Dec 2014 11:03:37 -0000
Received: by mail-wg0-f45.google.com with SMTP id b13so21861435wgh.4
	for <xen-api@lists.xen.org>; Wed, 31 Dec 2014 03:03:37 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=message-id:date:from:user-agent:mime-version:to:cc:subject
	:references:in-reply-to:content-type:content-transfer-encoding;
	bh=+55QymSpjtoIL2C4gmwTOFYGH+n+gEv1VAn5m+PbsB8=;
	b=YaURxeGeoZU1zx5gv5rlcWCG0yPaE7n2XoyADVs1mSdHd2ZGPOhVc1qCQ4ff0CRCfK
	2DVGASXhDthadd17d6aMyPiovQFymP8J+szA86b7ZOj6QQEvTokDoaC9ktKjVD1XyG+g
	bQeiS9zsv95TdiF7oVaaVHeaF/JgiTPiG15H2poyvvtO2D4JMnnF/jjgJ7c0Fdec9Xnm
	JqI8GrSNMSYPxlX5G46gZTas/Bsu41jD7snoSBkc+Wy1C4sHmrK7cf9Dg+Fu1YkgtzUk
	Iq8Jn40y8Cn5mzPXpzIzHlxO9hCPsfQLhcBaQLwLKWCNrGA88WKdSWId6E50JcuhJ0eJ
	4m+w==
X-Received: by 10.194.200.1 with SMTP id jo1mr132294853wjc.64.1420023817489;
	Wed, 31 Dec 2014 03:03:37 -0800 (PST)
Received: from BlackApple.local ([88.169.214.221])
	by mx.google.com with ESMTPSA id
	nj9sm46698803wic.10.2014.12.31.03.03.35
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Wed, 31 Dec 2014 03:03:36 -0800 (PST)
Message-ID: <54A3D804.8030504@gmail.com>
Date: Wed, 31 Dec 2014 12:03:32 +0100
From: Dawid Kowalski <dkadds2@gmail.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10;
	rv:31.0) Gecko/20100101 Thunderbird/31.3.0
MIME-Version: 1.0
To: Olivier Lambert <lambert.olivier@gmail.com>
References: <54A34EB2.4040809@gmail.com>
	<CACJ1ZNsr8V+-YM0EG_4LtdP47ZjiSbPnmeD5KfXuTmmJvPSqSw@mail.gmail.com>
In-Reply-To: <CACJ1ZNsr8V+-YM0EG_4LtdP47ZjiSbPnmeD5KfXuTmmJvPSqSw@mail.gmail.com>
Cc: Xen API mailing list <xen-api@lists.xen.org>
Subject: Re: [Xen-API] XAPI create PV (para-virtualized) Ubuntu guest 14.04
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

Hi Olivier,

Which packages should I install on Ubuntu guest?
I know it is silly question... but searching around points me all the 
time to xe-guest-utilities which I can't find as I'm using XenProject 
hypervisor 4.4 installed on Ubuntu from buildroot.

This is certainly some silly point... but all related to xen kernel 
points me to xen-hypervisor.

Thanks for help!
Dawid

On 31/12/14 10:42, Olivier Lambert wrote:
> Hi,
>
> PV means your guest "knows" it is virtualized, because its kernel
> itself is modified to talk directly to Xen [0]. It doesn't mean
> minimal filesystem occupation. However, if you want to have minimal
> footprint on your guest, you can rely on Ubuntu server installation
> [1] (likewise to the Debian netinstall without selecting any extra
> packages), or use minimalist distro.
>
> The other alternative is to use unikernel OS, like Mirage [2].
>
>
> [0]: http://wiki.xenproject.org/wiki/Paravirtualization_%28PV%29
> [1]: http://www.ubuntu.com/server
> [2]: http://www.openmirage.org/
>
>
> Regards,
>
> --
> Olivier
> XO Team
>
> On Wed, Dec 31, 2014 at 2:17 AM, Dawid Kowalski <dkadds2@gmail.com> wrote:
>> Hi Guys,
>>
>> Could any of you point me to how to create PV guest with minimal filesystem
>> consumption?
>>
>> I've update template for Ubuntu 14.04 following
>> http://www.mikeslab.net/?p=222
>>
>> But I have no idea how to create PV system from CLI.
>>
>> I've created VM using Xen Orchestra and it seems to be PV system based on
>> parameters however XO forced me to use ISO image or URL. I've chosen ISO but
>> while it still installs it took already 1.4GB of disk space for minimal
>> installation.
>>
>> Is this the way it should be or there is some minimalistic approach?
>>
>> Thanks,
>> Dawid
>>
>> _______________________________________________
>> Xen-api mailing list
>> Xen-api@lists.xen.org
>> http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api


_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

From xen-api-bounces@lists.xen.org Wed Dec 31 11:32:30 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Dec 2014 11:32:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Y6HVo-0005RH-6d; Wed, 31 Dec 2014 11:32:24 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <dkadds2@gmail.com>) id 1Y6HVm-0005RC-JX
	for xen-api@lists.xen.org; Wed, 31 Dec 2014 11:32:22 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	C1/2F-15461-5CED3A45; Wed, 31 Dec 2014 11:32:21 +0000
X-Env-Sender: dkadds2@gmail.com
X-Msg-Ref: server-5.tower-21.messagelabs.com!1420025540!18607517!1
X-Originating-IP: [74.125.82.171]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 30261 invoked from network); 31 Dec 2014 11:32:21 -0000
Received: from mail-we0-f171.google.com (HELO mail-we0-f171.google.com)
	(74.125.82.171)
	by server-5.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	31 Dec 2014 11:32:21 -0000
Received: by mail-we0-f171.google.com with SMTP id u56so2262213wes.30
	for <xen-api@lists.xen.org>; Wed, 31 Dec 2014 03:32:20 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=message-id:date:from:user-agent:mime-version:to:cc:subject
	:references:in-reply-to:content-type:content-transfer-encoding;
	bh=r/g1Rs1mWcTiN29s/C4ivSfeor7TkQ1MvLOIAOS5NdA=;
	b=aFdz2yJoezyaaXZ7SScLvc/rlHKTuCj0zP2oSNV0Fp8GUL4zJAjK1TF/y4XpC58/Dp
	WgdbJAldUhAQ33vOglU0230jqpijYUZxxvspAJ63/9osAfS3+L74JTNekXr6WD+/E3Sd
	q0yLZWIRrR/I4izLjTJftQRMygE4qUqeOOisGvYR3s5aNKFGcosH225qKc2N7HaD5qXN
	NAbwinz1O/oaM13EmyPkBznxQAf/5OLDf9rfSbAdFIWG9lWE9i1A0UjOTYpzobGSdteC
	xBFbKqNdKR8P5Om4uoVscsFcXmfRmbdwpGBCHAO4Ie4+5zLVnf9LaO+w9/LpZu5AWJwO
	tQTQ==
X-Received: by 10.195.13.104 with SMTP id ex8mr23096579wjd.12.1420025540741;
	Wed, 31 Dec 2014 03:32:20 -0800 (PST)
Received: from BlackApple.local ([88.169.214.221])
	by mx.google.com with ESMTPSA id
	dn2sm36947313wib.14.2014.12.31.03.32.18
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Wed, 31 Dec 2014 03:32:20 -0800 (PST)
Message-ID: <54A3DEC0.7090205@gmail.com>
Date: Wed, 31 Dec 2014 12:32:16 +0100
From: Dawid Kowalski <dkadds2@gmail.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10;
	rv:31.0) Gecko/20100101 Thunderbird/31.3.0
MIME-Version: 1.0
To: Olivier Lambert <lambert.olivier@gmail.com>
References: <54A34EB2.4040809@gmail.com>
	<CACJ1ZNsr8V+-YM0EG_4LtdP47ZjiSbPnmeD5KfXuTmmJvPSqSw@mail.gmail.com>
	<54A3D804.8030504@gmail.com>
In-Reply-To: <54A3D804.8030504@gmail.com>
Cc: Xen API mailing list <xen-api@lists.xen.org>
Subject: Re: [Xen-API] XAPI create PV (para-virtualized) Ubuntu guest 14.04
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

I'll try to answer myself, but I'm not sure if this is what was missing 
for me.

One needed thing is linux-virtual kernel.
Do I need to install anything else?

Thanks,
Dawid

On 31/12/14 12:03, Dawid Kowalski wrote:
> Hi Olivier,
>
> Which packages should I install on Ubuntu guest?
> I know it is silly question... but searching around points me all the 
> time to xe-guest-utilities which I can't find as I'm using XenProject 
> hypervisor 4.4 installed on Ubuntu from buildroot.
>
> This is certainly some silly point... but all related to xen kernel 
> points me to xen-hypervisor.
>
> Thanks for help!
> Dawid
>
> On 31/12/14 10:42, Olivier Lambert wrote:
>> Hi,
>>
>> PV means your guest "knows" it is virtualized, because its kernel
>> itself is modified to talk directly to Xen [0]. It doesn't mean
>> minimal filesystem occupation. However, if you want to have minimal
>> footprint on your guest, you can rely on Ubuntu server installation
>> [1] (likewise to the Debian netinstall without selecting any extra
>> packages), or use minimalist distro.
>>
>> The other alternative is to use unikernel OS, like Mirage [2].
>>
>>
>> [0]: http://wiki.xenproject.org/wiki/Paravirtualization_%28PV%29
>> [1]: http://www.ubuntu.com/server
>> [2]: http://www.openmirage.org/
>>
>>
>> Regards,
>>
>> -- 
>> Olivier
>> XO Team
>>
>> On Wed, Dec 31, 2014 at 2:17 AM, Dawid Kowalski <dkadds2@gmail.com> 
>> wrote:
>>> Hi Guys,
>>>
>>> Could any of you point me to how to create PV guest with minimal 
>>> filesystem
>>> consumption?
>>>
>>> I've update template for Ubuntu 14.04 following
>>> http://www.mikeslab.net/?p=222
>>>
>>> But I have no idea how to create PV system from CLI.
>>>
>>> I've created VM using Xen Orchestra and it seems to be PV system 
>>> based on
>>> parameters however XO forced me to use ISO image or URL. I've chosen 
>>> ISO but
>>> while it still installs it took already 1.4GB of disk space for minimal
>>> installation.
>>>
>>> Is this the way it should be or there is some minimalistic approach?
>>>
>>> Thanks,
>>> Dawid
>>>
>>> _______________________________________________
>>> Xen-api mailing list
>>> Xen-api@lists.xen.org
>>> http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api
>


_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

From xen-api-bounces@lists.xen.org Wed Dec 31 11:32:30 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Dec 2014 11:32:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Y6HVo-0005RH-6d; Wed, 31 Dec 2014 11:32:24 +0000
Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <dkadds2@gmail.com>) id 1Y6HVm-0005RC-JX
	for xen-api@lists.xen.org; Wed, 31 Dec 2014 11:32:22 +0000
Received: from [85.158.143.35] by server-3.bemta-4.messagelabs.com id
	C1/2F-15461-5CED3A45; Wed, 31 Dec 2014 11:32:21 +0000
X-Env-Sender: dkadds2@gmail.com
X-Msg-Ref: server-5.tower-21.messagelabs.com!1420025540!18607517!1
X-Originating-IP: [74.125.82.171]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 30261 invoked from network); 31 Dec 2014 11:32:21 -0000
Received: from mail-we0-f171.google.com (HELO mail-we0-f171.google.com)
	(74.125.82.171)
	by server-5.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
	31 Dec 2014 11:32:21 -0000
Received: by mail-we0-f171.google.com with SMTP id u56so2262213wes.30
	for <xen-api@lists.xen.org>; Wed, 31 Dec 2014 03:32:20 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=message-id:date:from:user-agent:mime-version:to:cc:subject
	:references:in-reply-to:content-type:content-transfer-encoding;
	bh=r/g1Rs1mWcTiN29s/C4ivSfeor7TkQ1MvLOIAOS5NdA=;
	b=aFdz2yJoezyaaXZ7SScLvc/rlHKTuCj0zP2oSNV0Fp8GUL4zJAjK1TF/y4XpC58/Dp
	WgdbJAldUhAQ33vOglU0230jqpijYUZxxvspAJ63/9osAfS3+L74JTNekXr6WD+/E3Sd
	q0yLZWIRrR/I4izLjTJftQRMygE4qUqeOOisGvYR3s5aNKFGcosH225qKc2N7HaD5qXN
	NAbwinz1O/oaM13EmyPkBznxQAf/5OLDf9rfSbAdFIWG9lWE9i1A0UjOTYpzobGSdteC
	xBFbKqNdKR8P5Om4uoVscsFcXmfRmbdwpGBCHAO4Ie4+5zLVnf9LaO+w9/LpZu5AWJwO
	tQTQ==
X-Received: by 10.195.13.104 with SMTP id ex8mr23096579wjd.12.1420025540741;
	Wed, 31 Dec 2014 03:32:20 -0800 (PST)
Received: from BlackApple.local ([88.169.214.221])
	by mx.google.com with ESMTPSA id
	dn2sm36947313wib.14.2014.12.31.03.32.18
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Wed, 31 Dec 2014 03:32:20 -0800 (PST)
Message-ID: <54A3DEC0.7090205@gmail.com>
Date: Wed, 31 Dec 2014 12:32:16 +0100
From: Dawid Kowalski <dkadds2@gmail.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10;
	rv:31.0) Gecko/20100101 Thunderbird/31.3.0
MIME-Version: 1.0
To: Olivier Lambert <lambert.olivier@gmail.com>
References: <54A34EB2.4040809@gmail.com>
	<CACJ1ZNsr8V+-YM0EG_4LtdP47ZjiSbPnmeD5KfXuTmmJvPSqSw@mail.gmail.com>
	<54A3D804.8030504@gmail.com>
In-Reply-To: <54A3D804.8030504@gmail.com>
Cc: Xen API mailing list <xen-api@lists.xen.org>
Subject: Re: [Xen-API] XAPI create PV (para-virtualized) Ubuntu guest 14.04
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

I'll try to answer myself, but I'm not sure if this is what was missing 
for me.

One needed thing is linux-virtual kernel.
Do I need to install anything else?

Thanks,
Dawid

On 31/12/14 12:03, Dawid Kowalski wrote:
> Hi Olivier,
>
> Which packages should I install on Ubuntu guest?
> I know it is silly question... but searching around points me all the 
> time to xe-guest-utilities which I can't find as I'm using XenProject 
> hypervisor 4.4 installed on Ubuntu from buildroot.
>
> This is certainly some silly point... but all related to xen kernel 
> points me to xen-hypervisor.
>
> Thanks for help!
> Dawid
>
> On 31/12/14 10:42, Olivier Lambert wrote:
>> Hi,
>>
>> PV means your guest "knows" it is virtualized, because its kernel
>> itself is modified to talk directly to Xen [0]. It doesn't mean
>> minimal filesystem occupation. However, if you want to have minimal
>> footprint on your guest, you can rely on Ubuntu server installation
>> [1] (likewise to the Debian netinstall without selecting any extra
>> packages), or use minimalist distro.
>>
>> The other alternative is to use unikernel OS, like Mirage [2].
>>
>>
>> [0]: http://wiki.xenproject.org/wiki/Paravirtualization_%28PV%29
>> [1]: http://www.ubuntu.com/server
>> [2]: http://www.openmirage.org/
>>
>>
>> Regards,
>>
>> -- 
>> Olivier
>> XO Team
>>
>> On Wed, Dec 31, 2014 at 2:17 AM, Dawid Kowalski <dkadds2@gmail.com> 
>> wrote:
>>> Hi Guys,
>>>
>>> Could any of you point me to how to create PV guest with minimal 
>>> filesystem
>>> consumption?
>>>
>>> I've update template for Ubuntu 14.04 following
>>> http://www.mikeslab.net/?p=222
>>>
>>> But I have no idea how to create PV system from CLI.
>>>
>>> I've created VM using Xen Orchestra and it seems to be PV system 
>>> based on
>>> parameters however XO forced me to use ISO image or URL. I've chosen 
>>> ISO but
>>> while it still installs it took already 1.4GB of disk space for minimal
>>> installation.
>>>
>>> Is this the way it should be or there is some minimalistic approach?
>>>
>>> Thanks,
>>> Dawid
>>>
>>> _______________________________________________
>>> Xen-api mailing list
>>> Xen-api@lists.xen.org
>>> http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api
>


_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

From xen-api-bounces@lists.xen.org Wed Dec 31 12:02:48 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Dec 2014 12:02:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Y6Hz8-00064D-Cz; Wed, 31 Dec 2014 12:02:42 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <lambert.olivier@gmail.com>) id 1Y6Hz6-000646-Ij
	for xen-api@lists.xen.org; Wed, 31 Dec 2014 12:02:40 +0000
Received: from [193.109.254.147] by server-6.bemta-14.messagelabs.com id
	5B/FC-03145-FD5E3A45; Wed, 31 Dec 2014 12:02:39 +0000
X-Env-Sender: lambert.olivier@gmail.com
X-Msg-Ref: server-11.tower-27.messagelabs.com!1420027358!14599766!1
X-Originating-IP: [209.85.212.169]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 9272 invoked from network); 31 Dec 2014 12:02:39 -0000
Received: from mail-wi0-f169.google.com (HELO mail-wi0-f169.google.com)
	(209.85.212.169)
	by server-11.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	31 Dec 2014 12:02:39 -0000
Received: by mail-wi0-f169.google.com with SMTP id r20so26922842wiv.4
	for <xen-api@lists.xen.org>; Wed, 31 Dec 2014 04:02:38 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=1DYpnzoIEOs0QsbyLImlHAgKVtuioD/qj/ntrur23Io=;
	b=rX4SfJFJepPfpQc6t9EFJTIC+9ppB0SWsAHG48FG20zk2Xkum4P96DaDAem1uf/77F
	UupcuXEmGGB4PofjeojFV5c1UHO6vc1v7zr3qL3b4n9EOCIdSWx9l9qRCkx2ilZv/fWv
	7aahV45j2XnBOOlCI8YZmTWaIC45aSOW+4GZa8LD+68P3lnNdYmc+AQjVIELxhPuyTyc
	NOt1mQA5nGIFQNgleWvywtzuBiVOTRJT7J8sCYVa8RMLg9+YrrVbA6vv4DdayCnlaeNf
	ueCFtSOppRdvOGmDiom8XPD+a8fP7SW6gjylO7sBU6iwx9krwyE3nAPDpWoLaHlqb2ff
	6hcg==
MIME-Version: 1.0
X-Received: by 10.194.104.196 with SMTP id gg4mr12510725wjb.31.1420027358719; 
	Wed, 31 Dec 2014 04:02:38 -0800 (PST)
Received: by 10.180.65.76 with HTTP; Wed, 31 Dec 2014 04:02:38 -0800 (PST)
In-Reply-To: <54A3DEC0.7090205@gmail.com>
References: <54A34EB2.4040809@gmail.com>
	<CACJ1ZNsr8V+-YM0EG_4LtdP47ZjiSbPnmeD5KfXuTmmJvPSqSw@mail.gmail.com>
	<54A3D804.8030504@gmail.com> <54A3DEC0.7090205@gmail.com>
Date: Wed, 31 Dec 2014 13:02:38 +0100
Message-ID: <CACJ1ZNtRjwrFXu5ZUTiwBj1O_ym7n7Pfe9-JAcTNwsAdWoywmA@mail.gmail.com>
From: Olivier Lambert <lambert.olivier@gmail.com>
To: Dawid Kowalski <dkadds2@gmail.com>
Cc: Xen API mailing list <xen-api@lists.xen.org>
Subject: Re: [Xen-API] XAPI create PV (para-virtualized) Ubuntu guest 14.04
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

I'm not an Ubuntu specialist, but any recent kernel handles Xen
flawlessly (everything needed is included). You don't have to install
anything particular in your guest, treat it like any other system.
About "xe-guest-utilities", these are only need to have more
informations on your guests (it's an "agent" reporting data to the
host). It's not mandatory to get your guest working.

If you want more information to have a "light" Ubuntu system, I think
their forum are a good place to start!

On Wed, Dec 31, 2014 at 12:32 PM, Dawid Kowalski <dkadds2@gmail.com> wrote:
> I'll try to answer myself, but I'm not sure if this is what was missing for
> me.
>
> One needed thing is linux-virtual kernel.
> Do I need to install anything else?
>
> Thanks,
> Dawid
>
>
> On 31/12/14 12:03, Dawid Kowalski wrote:
>>
>> Hi Olivier,
>>
>> Which packages should I install on Ubuntu guest?
>> I know it is silly question... but searching around points me all the time
>> to xe-guest-utilities which I can't find as I'm using XenProject hypervisor
>> 4.4 installed on Ubuntu from buildroot.
>>
>> This is certainly some silly point... but all related to xen kernel points
>> me to xen-hypervisor.
>>
>> Thanks for help!
>> Dawid
>>
>> On 31/12/14 10:42, Olivier Lambert wrote:
>>>
>>> Hi,
>>>
>>> PV means your guest "knows" it is virtualized, because its kernel
>>> itself is modified to talk directly to Xen [0]. It doesn't mean
>>> minimal filesystem occupation. However, if you want to have minimal
>>> footprint on your guest, you can rely on Ubuntu server installation
>>> [1] (likewise to the Debian netinstall without selecting any extra
>>> packages), or use minimalist distro.
>>>
>>> The other alternative is to use unikernel OS, like Mirage [2].
>>>
>>>
>>> [0]: http://wiki.xenproject.org/wiki/Paravirtualization_%28PV%29
>>> [1]: http://www.ubuntu.com/server
>>> [2]: http://www.openmirage.org/
>>>
>>>
>>> Regards,
>>>
>>> --
>>> Olivier
>>> XO Team
>>>
>>> On Wed, Dec 31, 2014 at 2:17 AM, Dawid Kowalski <dkadds2@gmail.com>
>>> wrote:
>>>>
>>>> Hi Guys,
>>>>
>>>> Could any of you point me to how to create PV guest with minimal
>>>> filesystem
>>>> consumption?
>>>>
>>>> I've update template for Ubuntu 14.04 following
>>>> http://www.mikeslab.net/?p=222
>>>>
>>>> But I have no idea how to create PV system from CLI.
>>>>
>>>> I've created VM using Xen Orchestra and it seems to be PV system based
>>>> on
>>>> parameters however XO forced me to use ISO image or URL. I've chosen ISO
>>>> but
>>>> while it still installs it took already 1.4GB of disk space for minimal
>>>> installation.
>>>>
>>>> Is this the way it should be or there is some minimalistic approach?
>>>>
>>>> Thanks,
>>>> Dawid
>>>>
>>>> _______________________________________________
>>>> Xen-api mailing list
>>>> Xen-api@lists.xen.org
>>>> http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api
>>
>>
>

_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

From xen-api-bounces@lists.xen.org Wed Dec 31 12:02:48 2014
Return-path: <xen-api-bounces@lists.xen.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 31 Dec 2014 12:02:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-api-bounces@lists.xen.org>)
	id 1Y6Hz8-00064D-Cz; Wed, 31 Dec 2014 12:02:42 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <lambert.olivier@gmail.com>) id 1Y6Hz6-000646-Ij
	for xen-api@lists.xen.org; Wed, 31 Dec 2014 12:02:40 +0000
Received: from [193.109.254.147] by server-6.bemta-14.messagelabs.com id
	5B/FC-03145-FD5E3A45; Wed, 31 Dec 2014 12:02:39 +0000
X-Env-Sender: lambert.olivier@gmail.com
X-Msg-Ref: server-11.tower-27.messagelabs.com!1420027358!14599766!1
X-Originating-IP: [209.85.212.169]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 6.12.5; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 9272 invoked from network); 31 Dec 2014 12:02:39 -0000
Received: from mail-wi0-f169.google.com (HELO mail-wi0-f169.google.com)
	(209.85.212.169)
	by server-11.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
	31 Dec 2014 12:02:39 -0000
Received: by mail-wi0-f169.google.com with SMTP id r20so26922842wiv.4
	for <xen-api@lists.xen.org>; Wed, 31 Dec 2014 04:02:38 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type;
	bh=1DYpnzoIEOs0QsbyLImlHAgKVtuioD/qj/ntrur23Io=;
	b=rX4SfJFJepPfpQc6t9EFJTIC+9ppB0SWsAHG48FG20zk2Xkum4P96DaDAem1uf/77F
	UupcuXEmGGB4PofjeojFV5c1UHO6vc1v7zr3qL3b4n9EOCIdSWx9l9qRCkx2ilZv/fWv
	7aahV45j2XnBOOlCI8YZmTWaIC45aSOW+4GZa8LD+68P3lnNdYmc+AQjVIELxhPuyTyc
	NOt1mQA5nGIFQNgleWvywtzuBiVOTRJT7J8sCYVa8RMLg9+YrrVbA6vv4DdayCnlaeNf
	ueCFtSOppRdvOGmDiom8XPD+a8fP7SW6gjylO7sBU6iwx9krwyE3nAPDpWoLaHlqb2ff
	6hcg==
MIME-Version: 1.0
X-Received: by 10.194.104.196 with SMTP id gg4mr12510725wjb.31.1420027358719; 
	Wed, 31 Dec 2014 04:02:38 -0800 (PST)
Received: by 10.180.65.76 with HTTP; Wed, 31 Dec 2014 04:02:38 -0800 (PST)
In-Reply-To: <54A3DEC0.7090205@gmail.com>
References: <54A34EB2.4040809@gmail.com>
	<CACJ1ZNsr8V+-YM0EG_4LtdP47ZjiSbPnmeD5KfXuTmmJvPSqSw@mail.gmail.com>
	<54A3D804.8030504@gmail.com> <54A3DEC0.7090205@gmail.com>
Date: Wed, 31 Dec 2014 13:02:38 +0100
Message-ID: <CACJ1ZNtRjwrFXu5ZUTiwBj1O_ym7n7Pfe9-JAcTNwsAdWoywmA@mail.gmail.com>
From: Olivier Lambert <lambert.olivier@gmail.com>
To: Dawid Kowalski <dkadds2@gmail.com>
Cc: Xen API mailing list <xen-api@lists.xen.org>
Subject: Re: [Xen-API] XAPI create PV (para-virtualized) Ubuntu guest 14.04
X-BeenThere: xen-api@lists.xen.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=unsubscribe>
List-Post: <mailto:xen-api@lists.xen.org>
List-Help: <mailto:xen-api-request@lists.xen.org?subject=help>
List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api>,
	<mailto:xen-api-request@lists.xen.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: xen-api-bounces@lists.xen.org
Errors-To: xen-api-bounces@lists.xen.org

I'm not an Ubuntu specialist, but any recent kernel handles Xen
flawlessly (everything needed is included). You don't have to install
anything particular in your guest, treat it like any other system.
About "xe-guest-utilities", these are only need to have more
informations on your guests (it's an "agent" reporting data to the
host). It's not mandatory to get your guest working.

If you want more information to have a "light" Ubuntu system, I think
their forum are a good place to start!

On Wed, Dec 31, 2014 at 12:32 PM, Dawid Kowalski <dkadds2@gmail.com> wrote:
> I'll try to answer myself, but I'm not sure if this is what was missing for
> me.
>
> One needed thing is linux-virtual kernel.
> Do I need to install anything else?
>
> Thanks,
> Dawid
>
>
> On 31/12/14 12:03, Dawid Kowalski wrote:
>>
>> Hi Olivier,
>>
>> Which packages should I install on Ubuntu guest?
>> I know it is silly question... but searching around points me all the time
>> to xe-guest-utilities which I can't find as I'm using XenProject hypervisor
>> 4.4 installed on Ubuntu from buildroot.
>>
>> This is certainly some silly point... but all related to xen kernel points
>> me to xen-hypervisor.
>>
>> Thanks for help!
>> Dawid
>>
>> On 31/12/14 10:42, Olivier Lambert wrote:
>>>
>>> Hi,
>>>
>>> PV means your guest "knows" it is virtualized, because its kernel
>>> itself is modified to talk directly to Xen [0]. It doesn't mean
>>> minimal filesystem occupation. However, if you want to have minimal
>>> footprint on your guest, you can rely on Ubuntu server installation
>>> [1] (likewise to the Debian netinstall without selecting any extra
>>> packages), or use minimalist distro.
>>>
>>> The other alternative is to use unikernel OS, like Mirage [2].
>>>
>>>
>>> [0]: http://wiki.xenproject.org/wiki/Paravirtualization_%28PV%29
>>> [1]: http://www.ubuntu.com/server
>>> [2]: http://www.openmirage.org/
>>>
>>>
>>> Regards,
>>>
>>> --
>>> Olivier
>>> XO Team
>>>
>>> On Wed, Dec 31, 2014 at 2:17 AM, Dawid Kowalski <dkadds2@gmail.com>
>>> wrote:
>>>>
>>>> Hi Guys,
>>>>
>>>> Could any of you point me to how to create PV guest with minimal
>>>> filesystem
>>>> consumption?
>>>>
>>>> I've update template for Ubuntu 14.04 following
>>>> http://www.mikeslab.net/?p=222
>>>>
>>>> But I have no idea how to create PV system from CLI.
>>>>
>>>> I've created VM using Xen Orchestra and it seems to be PV system based
>>>> on
>>>> parameters however XO forced me to use ISO image or URL. I've chosen ISO
>>>> but
>>>> while it still installs it took already 1.4GB of disk space for minimal
>>>> installation.
>>>>
>>>> Is this the way it should be or there is some minimalistic approach?
>>>>
>>>> Thanks,
>>>> Dawid
>>>>
>>>> _______________________________________________
>>>> Xen-api mailing list
>>>> Xen-api@lists.xen.org
>>>> http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api
>>
>>
>

_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

