From win-pv-devel-bounces@lists.xenproject.org Fri Jul 01 23:36:43 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 01 Jul 2016 23:36:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bJ7zG-0006yd-F2; Fri, 01 Jul 2016 23:36:42 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <stevie@qrpff.net>) id 1bJ7zE-0006yS-NZ
 for win-pv-devel@lists.xenproject.org; Fri, 01 Jul 2016 23:36:40 +0000
Received: from [193.109.254.147] by server-5.bemta-14.messagelabs.com id
 62/16-08132-88EF6775; Fri, 01 Jul 2016 23:36:40 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrLIsWRWlGSWpSXmKPExsVyofBEo277v7J
 wg6YnrBZ/Fic6MHoc/nCFJYAxijUzLym/IoE14+TpaewFRyQqJj2Ja2B8KdLFyMUhJHCLUeL4
 20XsIA6LwB0miZWL3zFDZF4ySSw/P4e1i5ETyJnDKHFmtQKILSGQI7G2YTkrhF0ksXz/SUYQm
 1dAUOLkzCcsEPXeElcX7ASLswnoSBy7fhqsnkVARWLOttNsEL2JEj8Wv4PqDZD4u/QAWFxYwE
 xi6rwnTCC2iICqxLXlx8DizAJeEienzWaZwMg/C8m6WUhSsxg5gGx1ifXzhCDCahK3t11lh7C
 1JZYtfM28gJF1FaNGcWpRWWqRrqGZXlJRZnpGSW5iZo6uoaGJXm5qcXFiempOYlKxXnJ+7iZG
 YNDWMzAw7mD8etrzEKMkB5OSKG/GpbJwIb6k/JTKjMTijPii0pzU4kOMMhwcShK8yn+BcoJFq
 empFWmZOcD4gUlLcPAoifA+/AOU5i0uSMwtzkyHSJ1i1OXYMvXeWiYhlrz8vFQpcV5VkBkCIE
 UZpXlwI2CxfIlRVkqYl5GBgUGIpyC1KDezBFX+FaM4B6OSMG8SyBSezLwSuE2vgI5gAjqCubQ
 Y5IiSRISUVANjcbm73SeNr46Cq65HPPz5Zat0Qc+B0w8vKd887N0nmZLsVCrD8v5slWHarbyG
 ea8Xl34wUw/ne18l9fHQluBmicX9x9+8P/xmx6/02BA/xX9Zp2yrZi7erBJ1//uGwGW+vryOp
 Y91tXPYD2vdepvlwNAcomxwZ1Xq5EOyld59Yf/sUj82lJUrsRRnJBpqMRcVJwIACG0byuACAA
 A=
X-Env-Sender: stevie@qrpff.net
X-Msg-Ref: server-12.tower-27.messagelabs.com!1467416197!51410935!1
X-Originating-IP: [208.113.200.129]
X-SpamReason: No, hits=1.7 required=7.0 tests=BODY_RANDOM_LONG,
 HTML_20_30,HTML_MESSAGE,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 63251 invoked from network); 1 Jul 2016 23:36:38 -0000
Received: from sub5.mail.dreamhost.com (HELO homiemail-a48.g.dreamhost.com)
 (208.113.200.129)
 by server-12.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted SMTP;
 1 Jul 2016 23:36:38 -0000
Received: from homiemail-a48.g.dreamhost.com (localhost [127.0.0.1])
 by homiemail-a48.g.dreamhost.com (Postfix) with ESMTP id 523274F806A
 for <win-pv-devel@lists.xenproject.org>; Fri,  1 Jul 2016 16:36:36 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=qrpff.net; h=mime-version
 :from:date:message-id:subject:to:content-type; s=qrpff.net; bh=L
 lVAXU7A3ANHHnyUpmUklOgS1i4=; b=md7z8uvO1k7QlLtANRxn4ojZ1dTramHiC
 S93D0OUVYvNiZRJOilOT2a9xX3TU6ILnb1CUwDERnjWFSGl34F+bzH9Z5GProogs
 Xbi/hNUc1rcJIGD2t/cdX2Jb9ecJELWsll0DkdU4zv74GrK0CH6M64k/6crSw1iV
 k/qknPb0/s=
Received: from mail-wm0-f47.google.com (mail-wm0-f47.google.com [74.125.82.47])
 (using TLSv1 with cipher AES128-SHA (128/128 bits))
 (No client certificate requested)
 (Authenticated sender: stevie@qrpff.net)
 by homiemail-a48.g.dreamhost.com (Postfix) with ESMTPSA id 2B6F34F805B
 for <win-pv-devel@lists.xenproject.org>; Fri,  1 Jul 2016 16:36:36 -0700 (PDT)
Received: by mail-wm0-f47.google.com with SMTP id r201so46876477wme.1
 for <win-pv-devel@lists.xenproject.org>; Fri, 01 Jul 2016 16:36:36 -0700 (PDT)
X-Gm-Message-State: ALyK8tLPXpgBnaof/+fqvzc1rIuQscoxS4Fjr4t64gEzdct1qN8xfS+pQmtOquqekkVqOcAIh/kC3H6TTnv7Jw==
X-Received: by 10.194.117.35 with SMTP id kb3mr609221wjb.136.1467416194769;
 Fri, 01 Jul 2016 16:36:34 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.194.114.226 with HTTP; Fri, 1 Jul 2016 16:36:34 -0700 (PDT)
From: Stephen Oberholtzer <stevie@qrpff.net>
Date: Fri, 1 Jul 2016 19:36:34 -0400
X-Gmail-Original-Message-ID: <CAD_xR9ea0+aER1i7Vmjy+FCNcc7nbuO0LPC8R6cj1xPKMwHaTg@mail.gmail.com>
Message-ID: <CAD_xR9ea0+aER1i7Vmjy+FCNcc7nbuO0LPC8R6cj1xPKMwHaTg@mail.gmail.com>
To: win-pv-devel@lists.xenproject.org
Subject: [win-pv-devel] On the state of non-test-signed WinPV drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1392702201256248216=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============1392702201256248216==
Content-Type: multipart/alternative; boundary=001a1130d10406f19705369b7545

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

All,

I have some questions about the whole signed-drivers thing, so I hope
you'll indulge me.

(1) As best as I can tell, only test-signed drivers are currently being
posted. Is that correct?

(2) Test-signed is pretty clear to me, but what is the difference between
release-signed and logo-signed?

(3) If I want PV drivers that can be installed on a standard Windows
installation without any hassle, do they need to be release-signed or
logo-signed?

(4)  What do you guys need in order to be able to distribute #3?   What can
I do to help?

I searched around, and it looks like the following are needed:

* Windows Hardware Developer Center Dashboard portal account (no idea how
much this costs)
* An appropriate EV certificate
** GlobalSign - $410/yr, $760 for 2 years, or $950 for 3 years
** DigiCert - $449/yr, $798 for 2 years, or $993 for 3 years
** Entrust - $399/yr, no multiyear discount (so best value for 1 year but
that's it)
* To get an EV certificate, you need a legally-recognized entity (which can
be a full-blown corporation or an LLC)
* Then you need to run some tests and submit them to Microsoft and their
system signs the drivers on your behalf.



-- 
-- Stevie-O
Real programmers use COPY CON PROGRAM.EXE

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

<div dir=3D"ltr"><div><div><div><div><div><div>All,<br><br></div>I have som=
e questions about the whole signed-drivers thing, so I hope you&#39;ll indu=
lge me.<br><br></div></div>(1) As best as I can tell, only test-signed driv=
ers are currently being posted. Is that correct?<br><br>(2) Test-signed is =
pretty clear to me, but what is the difference between release-signed and l=
ogo-signed?<br><br></div><div>(3) If I want PV drivers that can be installe=
d on a standard Windows installation without any hassle, do they need to be=
 release-signed or logo-signed?<br><br></div><div>(4)=C2=A0 What do you guy=
s need in order to be able to distribute #3?=C2=A0=C2=A0 What can I do to h=
elp?<br><br>I searched around, and it looks like the following are needed:<=
br><br>* Windows Hardware Developer Center Dashboard portal account (no ide=
a how much this costs)<br></div><div>* An appropriate EV certificate<br></d=
iv><div><div>** GlobalSign - $410/yr, $760 for 2 years, or $950 for 3 years=
<br></div>** DigiCert - $449/yr, $798 for 2 years, or $993 for 3 years<br><=
/div>** Entrust - $399/yr, no multiyear discount (so best value for 1 year =
but that&#39;s it)<br></div>* To get an EV certificate, you need a legally-=
recognized entity (which can be a full-blown corporation or an LLC)<br></di=
v>* Then you need to run some tests and submit them to Microsoft and their =
system signs the drivers on your behalf.<br><div><br><div><br><br><div><div=
><div><div><div><div>-- <br><div class=3D"gmail_signature" data-smartmail=
=3D"gmail_signature">-- Stevie-O<br>Real programmers use COPY CON PROGRAM.E=
XE<br><br></div>
</div></div></div></div></div></div></div></div></div>

--001a1130d10406f19705369b7545--


--===============1392702201256248216==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2
ZWw=

--===============1392702201256248216==--


From win-pv-devel-bounces@lists.xenproject.org Fri Jul 01 23:36:43 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 01 Jul 2016 23:36:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bJ7zG-0006yd-F2; Fri, 01 Jul 2016 23:36:42 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <stevie@qrpff.net>) id 1bJ7zE-0006yS-NZ
 for win-pv-devel@lists.xenproject.org; Fri, 01 Jul 2016 23:36:40 +0000
Received: from [193.109.254.147] by server-5.bemta-14.messagelabs.com id
 62/16-08132-88EF6775; Fri, 01 Jul 2016 23:36:40 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrLIsWRWlGSWpSXmKPExsVyofBEo277v7J
 wg6YnrBZ/Fic6MHoc/nCFJYAxijUzLym/IoE14+TpaewFRyQqJj2Ja2B8KdLFyMUhJHCLUeL4
 20XsIA6LwB0miZWL3zFDZF4ySSw/P4e1i5ETyJnDKHFmtQKILSGQI7G2YTkrhF0ksXz/SUYQm
 1dAUOLkzCcsEPXeElcX7ASLswnoSBy7fhqsnkVARWLOttNsEL2JEj8Wv4PqDZD4u/QAWFxYwE
 xi6rwnTCC2iICqxLXlx8DizAJeEienzWaZwMg/C8m6WUhSsxg5gGx1ifXzhCDCahK3t11lh7C
 1JZYtfM28gJF1FaNGcWpRWWqRrqGZXlJRZnpGSW5iZo6uoaGJXm5qcXFiempOYlKxXnJ+7iZG
 YNDWMzAw7mD8etrzEKMkB5OSKG/GpbJwIb6k/JTKjMTijPii0pzU4kOMMhwcShK8yn+BcoJFq
 empFWmZOcD4gUlLcPAoifA+/AOU5i0uSMwtzkyHSJ1i1OXYMvXeWiYhlrz8vFQpcV5VkBkCIE
 UZpXlwI2CxfIlRVkqYl5GBgUGIpyC1KDezBFX+FaM4B6OSMG8SyBSezLwSuE2vgI5gAjqCubQ
 Y5IiSRISUVANjcbm73SeNr46Cq65HPPz5Zat0Qc+B0w8vKd887N0nmZLsVCrD8v5slWHarbyG
 ea8Xl34wUw/ne18l9fHQluBmicX9x9+8P/xmx6/02BA/xX9Zp2yrZi7erBJ1//uGwGW+vryOp
 Y91tXPYD2vdepvlwNAcomxwZ1Xq5EOyld59Yf/sUj82lJUrsRRnJBpqMRcVJwIACG0byuACAA
 A=
X-Env-Sender: stevie@qrpff.net
X-Msg-Ref: server-12.tower-27.messagelabs.com!1467416197!51410935!1
X-Originating-IP: [208.113.200.129]
X-SpamReason: No, hits=1.7 required=7.0 tests=BODY_RANDOM_LONG,
 HTML_20_30,HTML_MESSAGE,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 63251 invoked from network); 1 Jul 2016 23:36:38 -0000
Received: from sub5.mail.dreamhost.com (HELO homiemail-a48.g.dreamhost.com)
 (208.113.200.129)
 by server-12.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted SMTP;
 1 Jul 2016 23:36:38 -0000
Received: from homiemail-a48.g.dreamhost.com (localhost [127.0.0.1])
 by homiemail-a48.g.dreamhost.com (Postfix) with ESMTP id 523274F806A
 for <win-pv-devel@lists.xenproject.org>; Fri,  1 Jul 2016 16:36:36 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=qrpff.net; h=mime-version
 :from:date:message-id:subject:to:content-type; s=qrpff.net; bh=L
 lVAXU7A3ANHHnyUpmUklOgS1i4=; b=md7z8uvO1k7QlLtANRxn4ojZ1dTramHiC
 S93D0OUVYvNiZRJOilOT2a9xX3TU6ILnb1CUwDERnjWFSGl34F+bzH9Z5GProogs
 Xbi/hNUc1rcJIGD2t/cdX2Jb9ecJELWsll0DkdU4zv74GrK0CH6M64k/6crSw1iV
 k/qknPb0/s=
Received: from mail-wm0-f47.google.com (mail-wm0-f47.google.com [74.125.82.47])
 (using TLSv1 with cipher AES128-SHA (128/128 bits))
 (No client certificate requested)
 (Authenticated sender: stevie@qrpff.net)
 by homiemail-a48.g.dreamhost.com (Postfix) with ESMTPSA id 2B6F34F805B
 for <win-pv-devel@lists.xenproject.org>; Fri,  1 Jul 2016 16:36:36 -0700 (PDT)
Received: by mail-wm0-f47.google.com with SMTP id r201so46876477wme.1
 for <win-pv-devel@lists.xenproject.org>; Fri, 01 Jul 2016 16:36:36 -0700 (PDT)
X-Gm-Message-State: ALyK8tLPXpgBnaof/+fqvzc1rIuQscoxS4Fjr4t64gEzdct1qN8xfS+pQmtOquqekkVqOcAIh/kC3H6TTnv7Jw==
X-Received: by 10.194.117.35 with SMTP id kb3mr609221wjb.136.1467416194769;
 Fri, 01 Jul 2016 16:36:34 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.194.114.226 with HTTP; Fri, 1 Jul 2016 16:36:34 -0700 (PDT)
From: Stephen Oberholtzer <stevie@qrpff.net>
Date: Fri, 1 Jul 2016 19:36:34 -0400
X-Gmail-Original-Message-ID: <CAD_xR9ea0+aER1i7Vmjy+FCNcc7nbuO0LPC8R6cj1xPKMwHaTg@mail.gmail.com>
Message-ID: <CAD_xR9ea0+aER1i7Vmjy+FCNcc7nbuO0LPC8R6cj1xPKMwHaTg@mail.gmail.com>
To: win-pv-devel@lists.xenproject.org
Subject: [win-pv-devel] On the state of non-test-signed WinPV drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1392702201256248216=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============1392702201256248216==
Content-Type: multipart/alternative; boundary=001a1130d10406f19705369b7545

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

All,

I have some questions about the whole signed-drivers thing, so I hope
you'll indulge me.

(1) As best as I can tell, only test-signed drivers are currently being
posted. Is that correct?

(2) Test-signed is pretty clear to me, but what is the difference between
release-signed and logo-signed?

(3) If I want PV drivers that can be installed on a standard Windows
installation without any hassle, do they need to be release-signed or
logo-signed?

(4)  What do you guys need in order to be able to distribute #3?   What can
I do to help?

I searched around, and it looks like the following are needed:

* Windows Hardware Developer Center Dashboard portal account (no idea how
much this costs)
* An appropriate EV certificate
** GlobalSign - $410/yr, $760 for 2 years, or $950 for 3 years
** DigiCert - $449/yr, $798 for 2 years, or $993 for 3 years
** Entrust - $399/yr, no multiyear discount (so best value for 1 year but
that's it)
* To get an EV certificate, you need a legally-recognized entity (which can
be a full-blown corporation or an LLC)
* Then you need to run some tests and submit them to Microsoft and their
system signs the drivers on your behalf.



-- 
-- Stevie-O
Real programmers use COPY CON PROGRAM.EXE

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

<div dir=3D"ltr"><div><div><div><div><div><div>All,<br><br></div>I have som=
e questions about the whole signed-drivers thing, so I hope you&#39;ll indu=
lge me.<br><br></div></div>(1) As best as I can tell, only test-signed driv=
ers are currently being posted. Is that correct?<br><br>(2) Test-signed is =
pretty clear to me, but what is the difference between release-signed and l=
ogo-signed?<br><br></div><div>(3) If I want PV drivers that can be installe=
d on a standard Windows installation without any hassle, do they need to be=
 release-signed or logo-signed?<br><br></div><div>(4)=C2=A0 What do you guy=
s need in order to be able to distribute #3?=C2=A0=C2=A0 What can I do to h=
elp?<br><br>I searched around, and it looks like the following are needed:<=
br><br>* Windows Hardware Developer Center Dashboard portal account (no ide=
a how much this costs)<br></div><div>* An appropriate EV certificate<br></d=
iv><div><div>** GlobalSign - $410/yr, $760 for 2 years, or $950 for 3 years=
<br></div>** DigiCert - $449/yr, $798 for 2 years, or $993 for 3 years<br><=
/div>** Entrust - $399/yr, no multiyear discount (so best value for 1 year =
but that&#39;s it)<br></div>* To get an EV certificate, you need a legally-=
recognized entity (which can be a full-blown corporation or an LLC)<br></di=
v>* Then you need to run some tests and submit them to Microsoft and their =
system signs the drivers on your behalf.<br><div><br><div><br><br><div><div=
><div><div><div><div>-- <br><div class=3D"gmail_signature" data-smartmail=
=3D"gmail_signature">-- Stevie-O<br>Real programmers use COPY CON PROGRAM.E=
XE<br><br></div>
</div></div></div></div></div></div></div></div></div>

--001a1130d10406f19705369b7545--


--===============1392702201256248216==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2
ZWw=

--===============1392702201256248216==--


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 04 08:35:36 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 04 Jul 2016 08:35:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bJzLq-0002ES-IU; Mon, 04 Jul 2016 08:35:34 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=9866c7ede=ben.chalmers@citrix.com>)
 id 1bJzLp-0002EM-1B
 for win-pv-devel@lists.xenproject.org; Mon, 04 Jul 2016 08:35:33 +0000
Received: from [85.158.137.68] by server-9.bemta-3.messagelabs.com id
 EE/C8-16470-4DF1A775; Mon, 04 Jul 2016 08:35:32 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupgleJIrShJLcpLzFFi42LZKekooXtZvir
 c4NE8QYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCa8fLjPaaCK0EVvz4tZ2xgbHXrYuTkkBAIkljZ
 tI0JxGYT0JGYteAeM4gtIlAicf7sI0YQW1jAU+Lbk+mMEHEviZ2Xe5kgbCOJybvXs4PYLAIqE
 geXtbGA2LwC7hJth5eC1QgJBEgsPrkNrIZTIFDiSt8zNhCbUUBW4kvjarBdzALiEk1fVrJC3C
 MgsWTPeWYIW1Ti5eN/UHEDia1L97FA1OdK7N4DcQOvgKDEyZlPWCB2qUg8eNTOBFHPLbHy8x+
 WCYzCs5CsmIWkfRaSdoi4gcT7c/OZIWxtiWULX0PZ+hIbv5xlRBZfwMi+ilGjOLWoLLVI18hY
 L6koMz2jJDcxM0fX0MBYLze1uDgxPTUnMalYLzk/dxMjMIbqGRgYdzD27fU7xCjJwaQkyqvJU
 RUuxJeUn1KZkVicEV9UmpNafIhRhoNDSYJ3qRxQTrAoNT21Ii0zBxjNMGkJDh4lEV52YEQL8R
 YXJOYWZ6ZDpE4xKkqJ8+4B6RMASWSU5sG1wRLIJUZZKWFeRgYGBiGegtSi3MwSVPlXjOIcjEr
 CvE9BpvBk5pXATX8FtJgJaDFrbDnI4pJEhJRUA+MCye6rhWsTOpc6KEw4zfCz6woT/+2+xxF9
 oad0TrGuZL2fkbRhXWXWjL6O6qxuSfc//Pv+nNvg5THPfsOblxoXVt1yfVN1n09/x3PJC2k3e
 A7NyCsrFWcptvNN23oi8F5qtC4rO/uuaZzZHFsL+/u2GzwMZj697c6Md2t6Nb/lSk90MNByva
 jEUpyRaKjFXFScCADtaU0dGwMAAA==
X-Env-Sender: prvs=9866c7ede=ben.chalmers@citrix.com
X-Msg-Ref: server-2.tower-31.messagelabs.com!1467621331!48654462!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.6 required=7.0 tests=BODY_RANDOM_LONG,
 HTML_30_40,HTML_MESSAGE,received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 2905 invoked from network); 4 Jul 2016 08:35:31 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-2.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 4 Jul 2016 08:35:31 -0000
X-IronPort-AV: E=Sophos;i="5.26,574,1459814400"; d="scan'208,217";a="25532763"
From: Ben Chalmers <ben.chalmers@citrix.com>
To: Stephen Oberholtzer <stevie@qrpff.net>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] On the state of non-test-signed WinPV drivers
Thread-Index: AQHR0/F1fdTiwElp3EmRDuQOF2TfiaAH9ig7
Date: Mon, 4 Jul 2016 08:35:30 +0000
Message-ID: <0f3d9a333a4c40b792d95612b70fd682@AMSPEX02CL03.citrite.net>
References: <CAD_xR9ea0+aER1i7Vmjy+FCNcc7nbuO0LPC8R6cj1xPKMwHaTg@mail.gmail.com>
In-Reply-To: <CAD_xR9ea0+aER1i7Vmjy+FCNcc7nbuO0LPC8R6cj1xPKMwHaTg@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] On the state of non-test-signed WinPV drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============5808857178342752666=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============5808857178342752666==
Content-Language: en-GB
Content-Type: multipart/alternative;
	boundary="_000_0f3d9a333a4c40b792d95612b70fd682AMSPEX02CL03citritenet_"

--_000_0f3d9a333a4c40b792d95612b70fd682AMSPEX02CL03citritenet_
Content-Type: text/plain; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

At present only test drivers are being posted.  These are signed with a cer=
tificate that has been generated by us and isn=92t (and really shouldn=92t =
be) trusted by anyone.  You can install these on windows by turning test-si=
gning on and installing the public test certificate on the VM... of course =
since the private key is being shipped in our repositories anyone could sig=
n anything with this key... so you don=92t want systems you care about even=
 slightly using this.

Cross signed drivers are signed by a certificate which have a chain of trus=
t back to a trusted certification authority, and where that certificate is =
cross-signed onto Microsoft=92s chain of trust for drivers. These tools wil=
l (I think) install on any current version of windows if you have installed=
 the public certificate on those versions of windows.  However, I also beli=
eve this may not be the case in the future for windows 10 and 2k16

If you want PV drivers which can be installed on any version of windows wit=
hout installing certificates, they have to be release signed (what used to =
be called =91logo-signed=92, MS seem to keep changing the name of this... i=
t was originally called logo signing because it allowed you to put a window=
s logo on your product=92s box.).  Foe this you need to pass a number of te=
sts from the HCK and also sign the test results with an EV certificate.  Ru=
nning these tests is not a trivial process =96 it takes a decent chunk of t=
ime, effort and experience to get through them.

Generally speaking, the following is true:

Test signed drivers are good enough for day to day development and testing =
purposes.

Many people (who are in full control of the VMs in their network) will be h=
appy with cross-signed drivers (and installing the certs on a golden image =
=96 or somesuch) themselves.

Getting release-signed drivers is a big overhead =96 and expensive both in =
terms of time and money.  You would only ever expect it to be done for full=
y tested release quality drivers.  At the moment, Citrix release (very slig=
htly modified) logo-signed drivers with XenServer (including in the open so=
urce version)  These are currently 8.1 drivers =96 and so are up to date wi=
th the latest release-quality PV Tools.

The biggest bang for buck we could get at the moment would be for someone t=
rustworthy to produced cross-signed drivers from our automated builds =96 t=
hat would allow you to take a build and begin using it securely.

Ben Chalmers

From: Stephen Oberholtzer<mailto:stevie@qrpff.net>
Sent: 02 July 2016 00:36
To: win-pv-devel@lists.xenproject.org<mailto:win-pv-devel@lists.xenproject.=
org>
Subject: [win-pv-devel] On the state of non-test-signed WinPV drivers

All,

I have some questions about the whole signed-drivers thing, so I hope you'l=
l indulge me.

(1) As best as I can tell, only test-signed drivers are currently being pos=
ted. Is that correct?

(2) Test-signed is pretty clear to me, but what is the difference between r=
elease-signed and logo-signed?

(3) If I want PV drivers that can be installed on a standard Windows instal=
lation without any hassle, do they need to be release-signed or logo-signed=
?

(4)  What do you guys need in order to be able to distribute #3?   What can=
 I do to help?

I searched around, and it looks like the following are needed:

* Windows Hardware Developer Center Dashboard portal account (no idea how m=
uch this costs)
* An appropriate EV certificate
** GlobalSign - $410/yr, $760 for 2 years, or $950 for 3 years
** DigiCert - $449/yr, $798 for 2 years, or $993 for 3 years
** Entrust - $399/yr, no multiyear discount (so best value for 1 year but t=
hat's it)
* To get an EV certificate, you need a legally-recognized entity (which can=
 be a full-blown corporation or an LLC)
* Then you need to run some tests and submit them to Microsoft and their sy=
stem signs the drivers on your behalf.



--
-- Stevie-O
Real programmers use COPY CON PROGRAM.EXE


--_000_0f3d9a333a4c40b792d95612b70fd682AMSPEX02CL03citritenet_
Content-Type: text/html; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3DWindows-1=
252">
<meta content=3D"text/html; charset=3Dutf-8">
</head>
<body>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<style>
<!--
@font-face
	{font-family:"Cambria Math"}
@font-face
	{font-family:Calibri}
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline}
a:visited, span.MsoHyperlinkFollowed
	{color:#954F72;
	text-decoration:underline}
.MsoChpDefault
	{}
@page WordSection1
	{margin:72.0pt 72.0pt 72.0pt 72.0pt}
div.WordSection1
	{}
-->
</style>
<div class=3D"WordSection1">
<p class=3D"MsoNormal">At present only test drivers are being posted.&nbsp;=
 These are signed with a certificate that has been generated by us and isn=
=92t (and really shouldn=92t be) trusted by anyone.&nbsp; You can install t=
hese on windows by turning test-signing on and installing
 the public test certificate on the VM... of course since the private key i=
s being shipped in our repositories anyone could sign anything with this ke=
y... so you don=92t want systems you care about even slightly using this.</=
p>
<p class=3D"MsoNormal">&nbsp;</p>
<p class=3D"MsoNormal">Cross signed drivers are signed by a certificate whi=
ch have a chain of trust back to a trusted certification authority, and whe=
re that certificate is cross-signed onto Microsoft=92s chain of trust for d=
rivers. These tools will (I think) install
 on any current version of windows if you have installed the public certifi=
cate on those versions of windows.&nbsp; However, I also believe this may n=
ot be the case in the future for windows 10 and 2k16</p>
<p class=3D"MsoNormal">&nbsp;</p>
<p class=3D"MsoNormal">If you want PV drivers which can be installed on any=
 version of windows without installing certificates, they have to be releas=
e signed (what used to be called =91logo-signed=92, MS seem to keep changin=
g the name of this... it was originally
 called logo signing because it allowed you to put a windows logo on your p=
roduct=92s box.).&nbsp; Foe this you need to pass a number of tests from th=
e HCK and also sign the test results with an EV certificate.&nbsp; Running =
these tests is not a trivial process =96 it takes
 a decent chunk of time, effort and experience to get through them.</p>
<p class=3D"MsoNormal">&nbsp;</p>
<p class=3D"MsoNormal">Generally speaking, the following is true:</p>
<p class=3D"MsoNormal">&nbsp;</p>
<p class=3D"MsoNormal">Test signed drivers are good enough for day to day d=
evelopment and testing purposes.</p>
<p class=3D"MsoNormal">&nbsp;</p>
<p class=3D"MsoNormal">Many people (who are in full control of the VMs in t=
heir network) will be happy with cross-signed drivers (and installing the c=
erts on a golden image =96 or somesuch) themselves.</p>
<p class=3D"MsoNormal">&nbsp;</p>
<p class=3D"MsoNormal">Getting release-signed drivers is a big overhead =96=
 and expensive both in terms of time and money. &nbsp;You would only ever e=
xpect it to be done for fully tested release quality drivers.&nbsp; At the =
moment, Citrix release (very slightly modified)
 logo-signed drivers with XenServer (including in the open source version)&=
nbsp; These are currently 8.1 drivers =96 and so are up to date with the la=
test release-quality PV Tools.</p>
<p class=3D"MsoNormal">&nbsp;</p>
<p class=3D"MsoNormal">The biggest bang for buck we could get at the moment=
 would be for someone trustworthy to produced cross-signed drivers from our=
 automated builds =96 that would allow you to take a build and begin using =
it securely.</p>
<p class=3D"MsoNormal">&nbsp;</p>
<p class=3D"MsoNormal">Ben Chalmers</p>
<p class=3D"MsoNormal"><span style=3D"font-size:12.0pt; font-family:&quot;T=
imes New Roman&quot;,serif">&nbsp;</span></p>
<div style=3D"border:none; border-top:solid #E1E1E1 1.0pt; padding:3.0pt 0c=
m 0cm 0cm">
<p class=3D"MsoNormal" style=3D"border:none; padding:0cm"><b>From: </b><a h=
ref=3D"mailto:stevie@qrpff.net">Stephen Oberholtzer</a><br>
<b>Sent: </b>02 July 2016 00:36<br>
<b>To: </b><a href=3D"mailto:win-pv-devel@lists.xenproject.org">win-pv-deve=
l@lists.xenproject.org</a><br>
<b>Subject: </b>[win-pv-devel] On the state of non-test-signed WinPV driver=
s</p>
</div>
<p class=3D"MsoNormal"><span style=3D"font-size:12.0pt; font-family:&quot;T=
imes New Roman&quot;,serif">&nbsp;</span></p>
</div>
<div>
<div dir=3D"ltr">
<div>
<div>
<div>
<div>
<div>
<div>All,<br>
<br>
</div>
I have some questions about the whole signed-drivers thing, so I hope you'l=
l indulge me.<br>
<br>
</div>
</div>
(1) As best as I can tell, only test-signed drivers are currently being pos=
ted. Is that correct?<br>
<br>
(2) Test-signed is pretty clear to me, but what is the difference between r=
elease-signed and logo-signed?<br>
<br>
</div>
<div>(3) If I want PV drivers that can be installed on a standard Windows i=
nstallation without any hassle, do they need to be release-signed or logo-s=
igned?<br>
<br>
</div>
<div>(4)&nbsp; What do you guys need in order to be able to distribute #3?&=
nbsp;&nbsp; What can I do to help?<br>
<br>
I searched around, and it looks like the following are needed:<br>
<br>
* Windows Hardware Developer Center Dashboard portal account (no idea how m=
uch this costs)<br>
</div>
<div>* An appropriate EV certificate<br>
</div>
<div>
<div>** GlobalSign - $410/yr, $760 for 2 years, or $950 for 3 years<br>
</div>
** DigiCert - $449/yr, $798 for 2 years, or $993 for 3 years<br>
</div>
** Entrust - $399/yr, no multiyear discount (so best value for 1 year but t=
hat's it)<br>
</div>
* To get an EV certificate, you need a legally-recognized entity (which can=
 be a full-blown corporation or an LLC)<br>
</div>
* Then you need to run some tests and submit them to Microsoft and their sy=
stem signs the drivers on your behalf.<br>
<div><br>
<div><br>
<br>
<div>
<div>
<div>
<div>
<div>
<div>-- <br>
<div class=3D"gmail_signature">-- Stevie-O<br>
Real programmers use COPY CON PROGRAM.EXE<br>
<br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

--_000_0f3d9a333a4c40b792d95612b70fd682AMSPEX02CL03citritenet_--


--===============5808857178342752666==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2
ZWw=

--===============5808857178342752666==--


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 04 08:35:36 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 04 Jul 2016 08:35:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bJzLq-0002ES-IU; Mon, 04 Jul 2016 08:35:34 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=9866c7ede=ben.chalmers@citrix.com>)
 id 1bJzLp-0002EM-1B
 for win-pv-devel@lists.xenproject.org; Mon, 04 Jul 2016 08:35:33 +0000
Received: from [85.158.137.68] by server-9.bemta-3.messagelabs.com id
 EE/C8-16470-4DF1A775; Mon, 04 Jul 2016 08:35:32 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupgleJIrShJLcpLzFFi42LZKekooXtZvir
 c4NE8QYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCa8fLjPaaCK0EVvz4tZ2xgbHXrYuTkkBAIkljZ
 tI0JxGYT0JGYteAeM4gtIlAicf7sI0YQW1jAU+Lbk+mMEHEviZ2Xe5kgbCOJybvXs4PYLAIqE
 geXtbGA2LwC7hJth5eC1QgJBEgsPrkNrIZTIFDiSt8zNhCbUUBW4kvjarBdzALiEk1fVrJC3C
 MgsWTPeWYIW1Ti5eN/UHEDia1L97FA1OdK7N4DcQOvgKDEyZlPWCB2qUg8eNTOBFHPLbHy8x+
 WCYzCs5CsmIWkfRaSdoi4gcT7c/OZIWxtiWULX0PZ+hIbv5xlRBZfwMi+ilGjOLWoLLVI18hY
 L6koMz2jJDcxM0fX0MBYLze1uDgxPTUnMalYLzk/dxMjMIbqGRgYdzD27fU7xCjJwaQkyqvJU
 RUuxJeUn1KZkVicEV9UmpNafIhRhoNDSYJ3qRxQTrAoNT21Ii0zBxjNMGkJDh4lEV52YEQL8R
 YXJOYWZ6ZDpE4xKkqJ8+4B6RMASWSU5sG1wRLIJUZZKWFeRgYGBiGegtSi3MwSVPlXjOIcjEr
 CvE9BpvBk5pXATX8FtJgJaDFrbDnI4pJEhJRUA+MCye6rhWsTOpc6KEw4zfCz6woT/+2+xxF9
 oad0TrGuZL2fkbRhXWXWjL6O6qxuSfc//Pv+nNvg5THPfsOblxoXVt1yfVN1n09/x3PJC2k3e
 A7NyCsrFWcptvNN23oi8F5qtC4rO/uuaZzZHFsL+/u2GzwMZj697c6Md2t6Nb/lSk90MNByva
 jEUpyRaKjFXFScCADtaU0dGwMAAA==
X-Env-Sender: prvs=9866c7ede=ben.chalmers@citrix.com
X-Msg-Ref: server-2.tower-31.messagelabs.com!1467621331!48654462!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.6 required=7.0 tests=BODY_RANDOM_LONG,
 HTML_30_40,HTML_MESSAGE,received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 2905 invoked from network); 4 Jul 2016 08:35:31 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-2.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 4 Jul 2016 08:35:31 -0000
X-IronPort-AV: E=Sophos;i="5.26,574,1459814400"; d="scan'208,217";a="25532763"
From: Ben Chalmers <ben.chalmers@citrix.com>
To: Stephen Oberholtzer <stevie@qrpff.net>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] On the state of non-test-signed WinPV drivers
Thread-Index: AQHR0/F1fdTiwElp3EmRDuQOF2TfiaAH9ig7
Date: Mon, 4 Jul 2016 08:35:30 +0000
Message-ID: <0f3d9a333a4c40b792d95612b70fd682@AMSPEX02CL03.citrite.net>
References: <CAD_xR9ea0+aER1i7Vmjy+FCNcc7nbuO0LPC8R6cj1xPKMwHaTg@mail.gmail.com>
In-Reply-To: <CAD_xR9ea0+aER1i7Vmjy+FCNcc7nbuO0LPC8R6cj1xPKMwHaTg@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] On the state of non-test-signed WinPV drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============5808857178342752666=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============5808857178342752666==
Content-Language: en-GB
Content-Type: multipart/alternative;
	boundary="_000_0f3d9a333a4c40b792d95612b70fd682AMSPEX02CL03citritenet_"

--_000_0f3d9a333a4c40b792d95612b70fd682AMSPEX02CL03citritenet_
Content-Type: text/plain; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

At present only test drivers are being posted.  These are signed with a cer=
tificate that has been generated by us and isn=92t (and really shouldn=92t =
be) trusted by anyone.  You can install these on windows by turning test-si=
gning on and installing the public test certificate on the VM... of course =
since the private key is being shipped in our repositories anyone could sig=
n anything with this key... so you don=92t want systems you care about even=
 slightly using this.

Cross signed drivers are signed by a certificate which have a chain of trus=
t back to a trusted certification authority, and where that certificate is =
cross-signed onto Microsoft=92s chain of trust for drivers. These tools wil=
l (I think) install on any current version of windows if you have installed=
 the public certificate on those versions of windows.  However, I also beli=
eve this may not be the case in the future for windows 10 and 2k16

If you want PV drivers which can be installed on any version of windows wit=
hout installing certificates, they have to be release signed (what used to =
be called =91logo-signed=92, MS seem to keep changing the name of this... i=
t was originally called logo signing because it allowed you to put a window=
s logo on your product=92s box.).  Foe this you need to pass a number of te=
sts from the HCK and also sign the test results with an EV certificate.  Ru=
nning these tests is not a trivial process =96 it takes a decent chunk of t=
ime, effort and experience to get through them.

Generally speaking, the following is true:

Test signed drivers are good enough for day to day development and testing =
purposes.

Many people (who are in full control of the VMs in their network) will be h=
appy with cross-signed drivers (and installing the certs on a golden image =
=96 or somesuch) themselves.

Getting release-signed drivers is a big overhead =96 and expensive both in =
terms of time and money.  You would only ever expect it to be done for full=
y tested release quality drivers.  At the moment, Citrix release (very slig=
htly modified) logo-signed drivers with XenServer (including in the open so=
urce version)  These are currently 8.1 drivers =96 and so are up to date wi=
th the latest release-quality PV Tools.

The biggest bang for buck we could get at the moment would be for someone t=
rustworthy to produced cross-signed drivers from our automated builds =96 t=
hat would allow you to take a build and begin using it securely.

Ben Chalmers

From: Stephen Oberholtzer<mailto:stevie@qrpff.net>
Sent: 02 July 2016 00:36
To: win-pv-devel@lists.xenproject.org<mailto:win-pv-devel@lists.xenproject.=
org>
Subject: [win-pv-devel] On the state of non-test-signed WinPV drivers

All,

I have some questions about the whole signed-drivers thing, so I hope you'l=
l indulge me.

(1) As best as I can tell, only test-signed drivers are currently being pos=
ted. Is that correct?

(2) Test-signed is pretty clear to me, but what is the difference between r=
elease-signed and logo-signed?

(3) If I want PV drivers that can be installed on a standard Windows instal=
lation without any hassle, do they need to be release-signed or logo-signed=
?

(4)  What do you guys need in order to be able to distribute #3?   What can=
 I do to help?

I searched around, and it looks like the following are needed:

* Windows Hardware Developer Center Dashboard portal account (no idea how m=
uch this costs)
* An appropriate EV certificate
** GlobalSign - $410/yr, $760 for 2 years, or $950 for 3 years
** DigiCert - $449/yr, $798 for 2 years, or $993 for 3 years
** Entrust - $399/yr, no multiyear discount (so best value for 1 year but t=
hat's it)
* To get an EV certificate, you need a legally-recognized entity (which can=
 be a full-blown corporation or an LLC)
* Then you need to run some tests and submit them to Microsoft and their sy=
stem signs the drivers on your behalf.



--
-- Stevie-O
Real programmers use COPY CON PROGRAM.EXE


--_000_0f3d9a333a4c40b792d95612b70fd682AMSPEX02CL03citritenet_
Content-Type: text/html; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3DWindows-1=
252">
<meta content=3D"text/html; charset=3Dutf-8">
</head>
<body>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<style>
<!--
@font-face
	{font-family:"Cambria Math"}
@font-face
	{font-family:Calibri}
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline}
a:visited, span.MsoHyperlinkFollowed
	{color:#954F72;
	text-decoration:underline}
.MsoChpDefault
	{}
@page WordSection1
	{margin:72.0pt 72.0pt 72.0pt 72.0pt}
div.WordSection1
	{}
-->
</style>
<div class=3D"WordSection1">
<p class=3D"MsoNormal">At present only test drivers are being posted.&nbsp;=
 These are signed with a certificate that has been generated by us and isn=
=92t (and really shouldn=92t be) trusted by anyone.&nbsp; You can install t=
hese on windows by turning test-signing on and installing
 the public test certificate on the VM... of course since the private key i=
s being shipped in our repositories anyone could sign anything with this ke=
y... so you don=92t want systems you care about even slightly using this.</=
p>
<p class=3D"MsoNormal">&nbsp;</p>
<p class=3D"MsoNormal">Cross signed drivers are signed by a certificate whi=
ch have a chain of trust back to a trusted certification authority, and whe=
re that certificate is cross-signed onto Microsoft=92s chain of trust for d=
rivers. These tools will (I think) install
 on any current version of windows if you have installed the public certifi=
cate on those versions of windows.&nbsp; However, I also believe this may n=
ot be the case in the future for windows 10 and 2k16</p>
<p class=3D"MsoNormal">&nbsp;</p>
<p class=3D"MsoNormal">If you want PV drivers which can be installed on any=
 version of windows without installing certificates, they have to be releas=
e signed (what used to be called =91logo-signed=92, MS seem to keep changin=
g the name of this... it was originally
 called logo signing because it allowed you to put a windows logo on your p=
roduct=92s box.).&nbsp; Foe this you need to pass a number of tests from th=
e HCK and also sign the test results with an EV certificate.&nbsp; Running =
these tests is not a trivial process =96 it takes
 a decent chunk of time, effort and experience to get through them.</p>
<p class=3D"MsoNormal">&nbsp;</p>
<p class=3D"MsoNormal">Generally speaking, the following is true:</p>
<p class=3D"MsoNormal">&nbsp;</p>
<p class=3D"MsoNormal">Test signed drivers are good enough for day to day d=
evelopment and testing purposes.</p>
<p class=3D"MsoNormal">&nbsp;</p>
<p class=3D"MsoNormal">Many people (who are in full control of the VMs in t=
heir network) will be happy with cross-signed drivers (and installing the c=
erts on a golden image =96 or somesuch) themselves.</p>
<p class=3D"MsoNormal">&nbsp;</p>
<p class=3D"MsoNormal">Getting release-signed drivers is a big overhead =96=
 and expensive both in terms of time and money. &nbsp;You would only ever e=
xpect it to be done for fully tested release quality drivers.&nbsp; At the =
moment, Citrix release (very slightly modified)
 logo-signed drivers with XenServer (including in the open source version)&=
nbsp; These are currently 8.1 drivers =96 and so are up to date with the la=
test release-quality PV Tools.</p>
<p class=3D"MsoNormal">&nbsp;</p>
<p class=3D"MsoNormal">The biggest bang for buck we could get at the moment=
 would be for someone trustworthy to produced cross-signed drivers from our=
 automated builds =96 that would allow you to take a build and begin using =
it securely.</p>
<p class=3D"MsoNormal">&nbsp;</p>
<p class=3D"MsoNormal">Ben Chalmers</p>
<p class=3D"MsoNormal"><span style=3D"font-size:12.0pt; font-family:&quot;T=
imes New Roman&quot;,serif">&nbsp;</span></p>
<div style=3D"border:none; border-top:solid #E1E1E1 1.0pt; padding:3.0pt 0c=
m 0cm 0cm">
<p class=3D"MsoNormal" style=3D"border:none; padding:0cm"><b>From: </b><a h=
ref=3D"mailto:stevie@qrpff.net">Stephen Oberholtzer</a><br>
<b>Sent: </b>02 July 2016 00:36<br>
<b>To: </b><a href=3D"mailto:win-pv-devel@lists.xenproject.org">win-pv-deve=
l@lists.xenproject.org</a><br>
<b>Subject: </b>[win-pv-devel] On the state of non-test-signed WinPV driver=
s</p>
</div>
<p class=3D"MsoNormal"><span style=3D"font-size:12.0pt; font-family:&quot;T=
imes New Roman&quot;,serif">&nbsp;</span></p>
</div>
<div>
<div dir=3D"ltr">
<div>
<div>
<div>
<div>
<div>
<div>All,<br>
<br>
</div>
I have some questions about the whole signed-drivers thing, so I hope you'l=
l indulge me.<br>
<br>
</div>
</div>
(1) As best as I can tell, only test-signed drivers are currently being pos=
ted. Is that correct?<br>
<br>
(2) Test-signed is pretty clear to me, but what is the difference between r=
elease-signed and logo-signed?<br>
<br>
</div>
<div>(3) If I want PV drivers that can be installed on a standard Windows i=
nstallation without any hassle, do they need to be release-signed or logo-s=
igned?<br>
<br>
</div>
<div>(4)&nbsp; What do you guys need in order to be able to distribute #3?&=
nbsp;&nbsp; What can I do to help?<br>
<br>
I searched around, and it looks like the following are needed:<br>
<br>
* Windows Hardware Developer Center Dashboard portal account (no idea how m=
uch this costs)<br>
</div>
<div>* An appropriate EV certificate<br>
</div>
<div>
<div>** GlobalSign - $410/yr, $760 for 2 years, or $950 for 3 years<br>
</div>
** DigiCert - $449/yr, $798 for 2 years, or $993 for 3 years<br>
</div>
** Entrust - $399/yr, no multiyear discount (so best value for 1 year but t=
hat's it)<br>
</div>
* To get an EV certificate, you need a legally-recognized entity (which can=
 be a full-blown corporation or an LLC)<br>
</div>
* Then you need to run some tests and submit them to Microsoft and their sy=
stem signs the drivers on your behalf.<br>
<div><br>
<div><br>
<br>
<div>
<div>
<div>
<div>
<div>
<div>-- <br>
<div class=3D"gmail_signature">-- Stevie-O<br>
Real programmers use COPY CON PROGRAM.EXE<br>
<br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

--_000_0f3d9a333a4c40b792d95612b70fd682AMSPEX02CL03citritenet_--


--===============5808857178342752666==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2
ZWw=

--===============5808857178342752666==--


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 04 09:43:24 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 04 Jul 2016 09:43:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bK0PS-0006vx-HB; Mon, 04 Jul 2016 09:43:22 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=986be9eca=Paul.Durrant@citrix.com>)
 id 1bK0PR-0006vr-GU
 for win-pv-devel@lists.xenproject.org; Mon, 04 Jul 2016 09:43:21 +0000
Received: from [85.158.139.211] by server-9.bemta-5.messagelabs.com id
 8A/43-10998-8BF2A775; Mon, 04 Jul 2016 09:43:20 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupkleJIrShJLcpLzFFi42LZKekoobtdvyr
 c4PFvfos/ixMdGD0Of7jCEsAYxZqZl5RfkcCa8WPlLPaC3UeZKhqnfmNvYNyynKmLkYNDQiBI
 ouGITRcjJwebgI7E0qPzgcJcHCICcxklps9fwQKSEBbwlPj2ZDojiC0i4CWx83IvE4RtJXHtd
 zdYDYuAisTZY/vYQGxeAXeJ5//3soEMEhLoZZT4PfEqK0iCU8BDovP8STCbUUBW4kvjamYQm1
 lAXOLWk/lgQyUEBCSW7DnPDGGLSrx8/I8VwjaQ2Lp0HwvI0cwCuRLf3ytD7BKUODnzCdgNQkA
 3bHl8AKqVW2Ll5z8sExiFZyHZMAuhexaSbogSHYkFuz+xQdjaEssWvmaGsc8ceMyELL6AkX0V
 o0ZxalFZapGuoZleUlFmekZJbmJmjq6hgalebmpxcWJ6ak5iUrFecn7uJkZgFDEAwQ7G86c9D
 zFKcjApifJqclSFC/El5adUZiQWZ8QXleakFh9ilOHgUJLgXacLlBMsSk1PrUjLzAHGM0xago
 NHSYRXUg8ozVtckJhbnJkOkTrFqCglzvsDpE8AJJFRmgfXBkshlxhlpYR5GYEOEeIpSC3KzSx
 BlX/FKM7BqCTMawEyniczrwRu+iugxUxAi1ljy0EWlyQipKQaGFPnx96TeJaVdWKyW4iZw/ry
 on0BHEfa7PwPn9UqOCdT9SOc/eTvvjlVvt9Mo7+ISrOtTzJTdxDznNqzIMrui6li3O7U6c7tj
 fc4NC+9XRQxfVblhqul8zJ4fs66p7dBRTnH/Pee3TPvWTZMbf+s6pviN6N291qxT4Iv02Y5Tx
 K1eWjwrDXghxJLcUaioRZzUXEiAIzZbnQcAwAA
X-Env-Sender: prvs=986be9eca=Paul.Durrant@citrix.com
X-Msg-Ref: server-12.tower-206.messagelabs.com!1467625399!11940303!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG,
 HTML_MESSAGE,received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 1963 invoked from network); 4 Jul 2016 09:43:19 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-12.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 4 Jul 2016 09:43:19 -0000
X-IronPort-AV: E=Sophos;i="5.26,574,1459814400"; d="scan'208,217";a="25536406"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Ben Chalmers <ben.chalmers@citrix.com>, Stephen Oberholtzer
 <stevie@qrpff.net>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] On the state of non-test-signed WinPV drivers
Thread-Index: AQHR0/F1AWWqiiM/TkuNvqs/gVO6LKAH1KEAgAAzesA=
Date: Mon, 4 Jul 2016 09:43:17 +0000
Message-ID: <fc5c8ced468540b78b6275da50468841@AMSPEX02CL03.citrite.net>
References: <CAD_xR9ea0+aER1i7Vmjy+FCNcc7nbuO0LPC8R6cj1xPKMwHaTg@mail.gmail.com>
 <0f3d9a333a4c40b792d95612b70fd682@AMSPEX02CL03.citrite.net>
In-Reply-To: <0f3d9a333a4c40b792d95612b70fd682@AMSPEX02CL03.citrite.net>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] On the state of non-test-signed WinPV drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============8666591855307462371=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============8666591855307462371==
Content-Language: en-US
Content-Type: multipart/alternative;
	boundary="_000_fc5c8ced468540b78b6275da50468841AMSPEX02CL03citritenet_"

--_000_fc5c8ced468540b78b6275da50468841AMSPEX02CL03citritenet_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi,

  I was holding out for the possibility of the Linux Foundation agreeing to=
 Microsoft's attestation signing agreement, which would have allowed us to =
get Microsoft signatures on the drivers for Windows 10 onwards. It has beco=
me apparent that that is not going to happen so I do have a plan to cross s=
ign drivers using the Linux Foundation EV cert, and I believe such drivers =
will install even on Windows 10 provided that secure boot is not enabled.

  Paul

From: win-pv-devel [mailto:win-pv-devel-bounces@lists.xenproject.org] On Be=
half Of Ben Chalmers
Sent: 04 July 2016 09:36
To: Stephen Oberholtzer; win-pv-devel@lists.xenproject.org
Subject: Re: [win-pv-devel] On the state of non-test-signed WinPV drivers

At present only test drivers are being posted.  These are signed with a cer=
tificate that has been generated by us and isn't (and really shouldn't be) =
trusted by anyone.  You can install these on windows by turning test-signin=
g on and installing the public test certificate on the VM... of course sinc=
e the private key is being shipped in our repositories anyone could sign an=
ything with this key... so you don't want systems you care about even sligh=
tly using this.

Cross signed drivers are signed by a certificate which have a chain of trus=
t back to a trusted certification authority, and where that certificate is =
cross-signed onto Microsoft's chain of trust for drivers. These tools will =
(I think) install on any current version of windows if you have installed t=
he public certificate on those versions of windows.  However, I also believ=
e this may not be the case in the future for windows 10 and 2k16

If you want PV drivers which can be installed on any version of windows wit=
hout installing certificates, they have to be release signed (what used to =
be called 'logo-signed', MS seem to keep changing the name of this... it wa=
s originally called logo signing because it allowed you to put a windows lo=
go on your product's box.).  Foe this you need to pass a number of tests fr=
om the HCK and also sign the test results with an EV certificate.  Running =
these tests is not a trivial process - it takes a decent chunk of time, eff=
ort and experience to get through them.

Generally speaking, the following is true:

Test signed drivers are good enough for day to day development and testing =
purposes.

Many people (who are in full control of the VMs in their network) will be h=
appy with cross-signed drivers (and installing the certs on a golden image =
- or somesuch) themselves.

Getting release-signed drivers is a big overhead - and expensive both in te=
rms of time and money.  You would only ever expect it to be done for fully =
tested release quality drivers.  At the moment, Citrix release (very slight=
ly modified) logo-signed drivers with XenServer (including in the open sour=
ce version)  These are currently 8.1 drivers - and so are up to date with t=
he latest release-quality PV Tools.

The biggest bang for buck we could get at the moment would be for someone t=
rustworthy to produced cross-signed drivers from our automated builds - tha=
t would allow you to take a build and begin using it securely.

Ben Chalmers

From: Stephen Oberholtzer<mailto:stevie@qrpff.net>
Sent: 02 July 2016 00:36
To: win-pv-devel@lists.xenproject.org<mailto:win-pv-devel@lists.xenproject.=
org>
Subject: [win-pv-devel] On the state of non-test-signed WinPV drivers

All,
I have some questions about the whole signed-drivers thing, so I hope you'l=
l indulge me.
(1) As best as I can tell, only test-signed drivers are currently being pos=
ted. Is that correct?

(2) Test-signed is pretty clear to me, but what is the difference between r=
elease-signed and logo-signed?
(3) If I want PV drivers that can be installed on a standard Windows instal=
lation without any hassle, do they need to be release-signed or logo-signed=
?
(4)  What do you guys need in order to be able to distribute #3?   What can=
 I do to help?

I searched around, and it looks like the following are needed:

* Windows Hardware Developer Center Dashboard portal account (no idea how m=
uch this costs)
* An appropriate EV certificate
** GlobalSign - $410/yr, $760 for 2 years, or $950 for 3 years
** DigiCert - $449/yr, $798 for 2 years, or $993 for 3 years
** Entrust - $399/yr, no multiyear discount (so best value for 1 year but t=
hat's it)
* To get an EV certificate, you need a legally-recognized entity (which can=
 be a full-blown corporation or an LLC)
* Then you need to run some tests and submit them to Microsoft and their sy=
stem signs the drivers on your behalf.


--
-- Stevie-O
Real programmers use COPY CON PROGRAM.EXE

--_000_fc5c8ced468540b78b6275da50468841AMSPEX02CL03citritenet_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"ProgId" content=3D"Word.Document">
<meta name=3D"Generator" content=3D"Microsoft Word 14">
<meta name=3D"Originator" content=3D"Microsoft Word 14">
<link rel=3D"File-List" href=3D"cid:filelist.xml@01D1D5E0.E3B3D860"><!--[if=
 gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
<o:DoNotRelyOnCSS/>
</o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:SpellingState>Clean</w:SpellingState>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:EnvelopeVis/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-GB</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:DoNotExpandShiftReturn/>
<w:BreakWrappedTables/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val=3D"Cambria Math"/>
<m:brkBin m:val=3D"before"/>
<m:brkBinSub m:val=3D"&#45;-"/>
<m:smallFrac m:val=3D"off"/>
<m:dispDef/>
<m:lMargin m:val=3D"0"/>
<m:rMargin m:val=3D"0"/>
<m:defJc m:val=3D"centerGroup"/>
<m:wrapIndent m:val=3D"1440"/>
<m:intLim m:val=3D"subSup"/>
<m:naryLim m:val=3D"undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState=3D"false" DefUnhideWhenUsed=3D"true" DefSemi=
Hidden=3D"true" DefQFormat=3D"false" DefPriority=3D"99" LatentStyleCount=3D=
"267">
<w:LsdException Locked=3D"false" Priority=3D"0" SemiHidden=3D"false" Unhide=
WhenUsed=3D"false" QFormat=3D"true" Name=3D"Normal"/>
<w:LsdException Locked=3D"false" Priority=3D"9" SemiHidden=3D"false" Unhide=
WhenUsed=3D"false" QFormat=3D"true" Name=3D"heading 1"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 2"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 3"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 4"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 5"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 6"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 7"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 8"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 9"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 1"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 2"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 3"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 4"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 5"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 6"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 7"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 8"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 9"/>
<w:LsdException Locked=3D"false" Priority=3D"35" QFormat=3D"true" Name=3D"c=
aption"/>
<w:LsdException Locked=3D"false" Priority=3D"10" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Title"/>
<w:LsdException Locked=3D"false" Priority=3D"1" Name=3D"Default Paragraph F=
ont"/>
<w:LsdException Locked=3D"false" Priority=3D"11" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Subtitle"/>
<w:LsdException Locked=3D"false" Priority=3D"22" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Strong"/>
<w:LsdException Locked=3D"false" Priority=3D"20" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Emphasis"/>
<w:LsdException Locked=3D"false" Priority=3D"59" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Table Grid"/>
<w:LsdException Locked=3D"false" UnhideWhenUsed=3D"false" Name=3D"Placehold=
er Text"/>
<w:LsdException Locked=3D"false" Priority=3D"1" SemiHidden=3D"false" Unhide=
WhenUsed=3D"false" QFormat=3D"true" Name=3D"No Spacing"/>
<w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Shading"/>
<w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light List"/>
<w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Grid"/>
<w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 1"/>
<w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 2"/>
<w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 1"/>
<w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 2"/>
<w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 1"/>
<w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 2"/>
<w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 3"/>
<w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Dark List"/>
<w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Shading"/>
<w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful List"/>
<w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Grid"/>
<w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Shading Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light List Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Grid Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 1 Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 2 Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 1 Accent 1"/>
<w:LsdException Locked=3D"false" UnhideWhenUsed=3D"false" Name=3D"Revision"=
/>
<w:LsdException Locked=3D"false" Priority=3D"34" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"List Paragraph"/>
<w:LsdException Locked=3D"false" Priority=3D"29" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Quote"/>
<w:LsdException Locked=3D"false" Priority=3D"30" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Intense Quote"/>
<w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 2 Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 1 Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 2 Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 3 Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Dark List Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Shading Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful List Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Grid Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Shading Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light List Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Grid Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 1 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 2 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 1 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 2 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 1 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 2 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 3 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Dark List Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Shading Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful List Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Grid Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Shading Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light List Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Grid Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 1 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 2 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 1 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 2 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 1 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 2 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 3 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Dark List Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Shading Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful List Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Grid Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Shading Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light List Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Grid Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 1 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 2 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 1 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 2 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 1 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 2 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 3 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Dark List Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Shading Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful List Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Grid Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Shading Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light List Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Grid Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 1 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 2 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 1 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 2 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 1 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 2 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 3 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Dark List Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Shading Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful List Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Grid Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Shading Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light List Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Grid Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 1 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 2 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 1 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 2 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 1 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 2 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 3 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Dark List Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Shading Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful List Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Grid Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"19" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Subtle Emphasis"/>
<w:LsdException Locked=3D"false" Priority=3D"21" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Intense Emphasis"/>
<w:LsdException Locked=3D"false" Priority=3D"31" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Subtle Reference"/>
<w:LsdException Locked=3D"false" Priority=3D"32" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Intense Reference"/>
<w:LsdException Locked=3D"false" Priority=3D"33" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Book Title"/>
<w:LsdException Locked=3D"false" Priority=3D"37" Name=3D"Bibliography"/>
<w:LsdException Locked=3D"false" Priority=3D"39" QFormat=3D"true" Name=3D"T=
OC Heading"/>
</w:LatentStyles>
</xml><![endif]--><style><!--
/* Font Definitions */
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-536870145 1073786111 1 0 415 0;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-520081665 -1073717157 41 0 66047 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"";
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-fareast-font-family:Calibri;
	mso-bidi-font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{mso-style-noshow:yes;
	mso-style-priority:99;
	color:blue;
	text-decoration:underline;
	text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-noshow:yes;
	mso-style-priority:99;
	color:#954F72;
	text-decoration:underline;
	text-underline:single;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
	{mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-link:"Balloon Text Char";
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:8.0pt;
	font-family:"Tahoma","sans-serif";
	mso-fareast-font-family:Calibri;}
span.EmailStyle17
	{mso-style-type:personal-reply;
	mso-style-noshow:yes;
	mso-style-unhide:no;
	mso-ansi-font-size:11.0pt;
	mso-bidi-font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-fareast-font-family:Calibri;
	mso-hansi-font-family:Calibri;
	mso-bidi-font-family:"Times New Roman";
	color:#1F497D;}
span.BalloonTextChar
	{mso-style-name:"Balloon Text Char";
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-unhide:no;
	mso-style-locked:yes;
	mso-style-link:"Balloon Text";
	mso-ansi-font-size:8.0pt;
	mso-bidi-font-size:8.0pt;
	font-family:"Tahoma","sans-serif";
	mso-ascii-font-family:Tahoma;
	mso-fareast-font-family:Calibri;
	mso-hansi-font-family:Tahoma;
	mso-bidi-font-family:Tahoma;}
span.SpellE
	{mso-style-name:"";
	mso-spl-e:yes;}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-default-props:yes;
	font-size:10.0pt;
	mso-ansi-font-size:10.0pt;
	mso-bidi-font-size:10.0pt;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;
	mso-header-margin:36.0pt;
	mso-footer-margin:36.0pt;
	mso-paper-source:0;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 10]><style>/* Style Definitions */
table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman","serif";}
</style><![endif]--><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-GB" link=3D"blue" vlink=3D"#954F72" style=3D"tab-interval:=
36.0pt">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;mso-ascii-font-family:Calibri;mso-hansi-fon=
t-family:Calibri;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#1F=
497D">Hi,<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;mso-ascii-font-family:Calibri;mso-hansi-fon=
t-family:Calibri;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#1F=
497D"><o:p>&nbsp;</o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;mso-ascii-font-family:Calibri;mso-hansi-fon=
t-family:Calibri;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#1F=
497D"><span style=3D"mso-spacerun:yes">&nbsp;
</span>I was holding out for the possibility of the Linux Foundation agreei=
ng to Microsoft&#8217;s attestation signing agreement, which would have all=
owed us to get Microsoft signatures on the drivers for Windows 10 onwards. =
It has become apparent that that is not
 going to happen so I do have a plan to cross sign drivers using the Linux =
Foundation EV cert, and I believe such drivers will install even on Windows=
 10 provided that secure boot is not enabled.<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;mso-ascii-font-family:Calibri;mso-hansi-fon=
t-family:Calibri;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#1F=
497D"><o:p>&nbsp;</o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;mso-ascii-font-family:Calibri;mso-hansi-fon=
t-family:Calibri;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#1F=
497D"><span style=3D"mso-spacerun:yes">&nbsp;
</span>Paul<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;mso-ascii-font-family:Calibri;mso-hansi-fon=
t-family:Calibri;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#1F=
497D"><o:p>&nbsp;</o:p></span></font></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><font size=3D"2" face=3D"Tahoma"><span lang=3D"EN=
-US" style=3D"font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-se=
rif&quot;;mso-fareast-font-family:&quot;Times New Roman&quot;;mso-ansi-lang=
uage:EN-US;font-weight:bold">From:</span></font></b><font size=3D"2" face=
=3D"Tahoma"><span lang=3D"EN-US" style=3D"font-size:10.0pt;font-family:&quo=
t;Tahoma&quot;,&quot;sans-serif&quot;;mso-fareast-font-family:&quot;Times N=
ew Roman&quot;;mso-ansi-language:EN-US">
 win-pv-devel [mailto:win-pv-devel-bounces@lists.xenproject.org] <b><span s=
tyle=3D"font-weight:bold">On Behalf Of
</span></b>Ben Chalmers<br>
<b><span style=3D"font-weight:bold">Sent:</span></b> 04 July 2016 09:36<br>
<b><span style=3D"font-weight:bold">To:</span></b> Stephen Oberholtzer; win=
-pv-devel@lists.xenproject.org<br>
<b><span style=3D"font-weight:bold">Subject:</span></b> Re: [win-pv-devel] =
On the state of non-test-signed WinPV drivers<o:p></o:p></span></font></p>
</div>
</div>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt"><o:p>&nbsp;</o:p></span></font></p>
<div>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt">At present only test drivers are being posted.&nbsp; These a=
re signed with a certificate that has been generated by us and isn&#8217;t =
(and really shouldn&#8217;t be) trusted by anyone.&nbsp; You can
 install these on windows by turning test-signing on and installing the pub=
lic test certificate on the VM... of course since the private key is being =
shipped in our repositories anyone could sign anything with this key... so =
you don&#8217;t want systems you care
 about even slightly using this.<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt">&nbsp;<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt">Cross signed drivers are signed by a certificate which have =
a chain of trust back to a trusted certification authority, and where that =
certificate is cross-signed onto Microsoft&#8217;s
 chain of trust for drivers. These tools will (I think) install on any curr=
ent version of windows if you have installed the public certificate on thos=
e versions of windows.&nbsp; However, I also believe this may not be the ca=
se in the future for windows 10 and 2k16<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt">&nbsp;<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt">If you want PV drivers which can be installed on any version=
 of windows without installing certificates, they have to be release signed=
 (what used to be called &#8216;logo-signed&#8217;,
 MS seem to keep changing the name of this... it was originally called logo=
 signing because it allowed you to put a windows logo on your product&#8217=
;s box.).&nbsp; Foe this you need to pass a number of tests from the HCK an=
d also sign the test results with an EV certificate.&nbsp;
 Running these tests is not a trivial process &#8211; it takes a decent chu=
nk of time, effort and experience to get through them.<o:p></o:p></span></f=
ont></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt">&nbsp;<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt">Generally speaking, the following is true:<o:p></o:p></span>=
</font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt">&nbsp;<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt">Test signed drivers are good enough for day to day developme=
nt and testing purposes.<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt">&nbsp;<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt">Many people (who are in full control of the VMs in their net=
work) will be happy with cross-signed drivers (and installing the certs on =
a golden image &#8211; or somesuch) themselves.<o:p></o:p></span></font></p=
>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt">&nbsp;<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt">Getting release-signed drivers is a big overhead &#8211; and=
 expensive both in terms of time and money. &nbsp;You would only ever expec=
t it to be done for fully tested release quality drivers.&nbsp;
 At the moment, Citrix release (very slightly modified) logo-signed drivers=
 with XenServer (including in the open source version)&nbsp; These are curr=
ently 8.1 drivers &#8211; and so are up to date with the latest release-qua=
lity PV Tools.<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt">&nbsp;<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt">The biggest bang for buck we could get at the moment would b=
e for someone trustworthy to produced cross-signed drivers from our automat=
ed builds &#8211; that would allow you to take
 a build and begin using it securely.<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt">&nbsp;<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt">Ben Chalmers<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt;font-family:&quot;Times New Roman&quot;,&quot;serif&q=
uot;">&nbsp;</span></font><o:p></o:p></p>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal" style=3D"mso-outline-level:1"><b><font size=3D"2" fa=
ce=3D"Calibri"><span style=3D"font-size:11.0pt;font-weight:bold">From:
</span></font></b><a href=3D"mailto:stevie@qrpff.net">Stephen Oberholtzer</=
a><br>
<b><span style=3D"font-weight:bold">Sent: </span></b>02 July 2016 00:36<br>
<b><span style=3D"font-weight:bold">To: </span></b><a href=3D"mailto:win-pv=
-devel@lists.xenproject.org">win-pv-devel@lists.xenproject.org</a><br>
<b><span style=3D"font-weight:bold">Subject: </span></b>[win-pv-devel] On t=
he state of non-test-signed WinPV drivers<o:p></o:p></p>
</div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt;font-family:&quot;Times New Roman&quot;,&quot;serif&q=
uot;">&nbsp;</span></font><o:p></o:p></p>
</div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><font size=3D"3" face=
=3D"Times New Roman"><span style=3D"font-size:12.0pt;font-family:&quot;Time=
s New Roman&quot;,&quot;serif&quot;;mso-fareast-font-family:&quot;Times New=
 Roman&quot;">All,<o:p></o:p></span></font></p>
</div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><font size=3D"3" face=
=3D"Times New Roman"><span style=3D"font-size:12.0pt;font-family:&quot;Time=
s New Roman&quot;,&quot;serif&quot;;mso-fareast-font-family:&quot;Times New=
 Roman&quot;">I have some questions about the whole signed-drivers thing,
 so I hope you'll indulge me.<o:p></o:p></span></font></p>
</div>
</div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><font size=3D"3" face=
=3D"Times New Roman"><span style=3D"font-size:12.0pt;font-family:&quot;Time=
s New Roman&quot;,&quot;serif&quot;;mso-fareast-font-family:&quot;Times New=
 Roman&quot;">(1) As best as I can tell, only test-signed drivers are curre=
ntly
 being posted. Is that correct?<br>
<br>
(2) Test-signed is pretty clear to me, but what is the difference between r=
elease-signed and logo-signed?<o:p></o:p></span></font></p>
</div>
<div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><font size=3D"3" face=
=3D"Times New Roman"><span style=3D"font-size:12.0pt;font-family:&quot;Time=
s New Roman&quot;,&quot;serif&quot;;mso-fareast-font-family:&quot;Times New=
 Roman&quot;">(3) If I want PV drivers that can be installed on a standard
 Windows installation without any hassle, do they need to be release-signed=
 or logo-signed?<o:p></o:p></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt;font-family:&quot;Times New Roman&quot;,&quot;serif&q=
uot;;mso-fareast-font-family:&quot;Times New Roman&quot;">(4)&nbsp; What do=
 you guys need in order to be able to distribute #3?&nbsp;&nbsp; What can I=
 do to help?<br>
<br>
I searched around, and it looks like the following are needed:<br>
<br>
* Windows Hardware Developer Center Dashboard portal account (no idea how m=
uch this costs)<o:p></o:p></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt;font-family:&quot;Times New Roman&quot;,&quot;serif&q=
uot;;mso-fareast-font-family:&quot;Times New Roman&quot;">* An appropriate =
EV certificate<o:p></o:p></span></font></p>
</div>
<div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt;font-family:&quot;Times New Roman&quot;,&quot;serif&q=
uot;;mso-fareast-font-family:&quot;Times New Roman&quot;">** GlobalSign - $=
410/yr, $760 for 2 years, or $950 for 3 years<o:p></o:p></span></font></p>
</div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt;font-family:&quot;Times New Roman&quot;,&quot;serif&q=
uot;;mso-fareast-font-family:&quot;Times New Roman&quot;">** DigiCert - $44=
9/yr, $798 for 2 years, or $993 for 3 years<o:p></o:p></span></font></p>
</div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt;font-family:&quot;Times New Roman&quot;,&quot;serif&q=
uot;;mso-fareast-font-family:&quot;Times New Roman&quot;">** Entrust - $399=
/yr, no multiyear discount (so best value for 1 year but that's it)<o:p></o=
:p></span></font></p>
</div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt;font-family:&quot;Times New Roman&quot;,&quot;serif&q=
uot;;mso-fareast-font-family:&quot;Times New Roman&quot;">* To get an EV ce=
rtificate, you need a legally-recognized entity (which can be a full-blown
 corporation or an LLC)<o:p></o:p></span></font></p>
</div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt;font-family:&quot;Times New Roman&quot;,&quot;serif&q=
uot;;mso-fareast-font-family:&quot;Times New Roman&quot;">* Then you need t=
o run some tests and submit them to Microsoft and their system signs the
 drivers on your behalf.<o:p></o:p></span></font></p>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt;font-family:&quot;Times New Roman&quot;,&quot;serif&q=
uot;;mso-fareast-font-family:&quot;Times New Roman&quot;"><o:p>&nbsp;</o:p>=
</span></font></p>
<div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><font size=3D"3" face=
=3D"Times New Roman"><span style=3D"font-size:12.0pt;font-family:&quot;Time=
s New Roman&quot;,&quot;serif&quot;;mso-fareast-font-family:&quot;Times New=
 Roman&quot;"><o:p>&nbsp;</o:p></span></font></p>
<div>
<div>
<div>
<div>
<div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt;font-family:&quot;Times New Roman&quot;,&quot;serif&q=
uot;;mso-fareast-font-family:&quot;Times New Roman&quot;">--
<o:p></o:p></span></font></p>
<div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><font size=3D"3" face=
=3D"Times New Roman"><span style=3D"font-size:12.0pt;font-family:&quot;Time=
s New Roman&quot;,&quot;serif&quot;;mso-fareast-font-family:&quot;Times New=
 Roman&quot;">-- Stevie-O<br>
Real programmers use COPY CON PROGRAM.EXE<o:p></o:p></span></font></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

--_000_fc5c8ced468540b78b6275da50468841AMSPEX02CL03citritenet_--


--===============8666591855307462371==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2
ZWw=

--===============8666591855307462371==--


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 04 09:43:24 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 04 Jul 2016 09:43:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bK0PS-0006vx-HB; Mon, 04 Jul 2016 09:43:22 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=986be9eca=Paul.Durrant@citrix.com>)
 id 1bK0PR-0006vr-GU
 for win-pv-devel@lists.xenproject.org; Mon, 04 Jul 2016 09:43:21 +0000
Received: from [85.158.139.211] by server-9.bemta-5.messagelabs.com id
 8A/43-10998-8BF2A775; Mon, 04 Jul 2016 09:43:20 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupkleJIrShJLcpLzFFi42LZKekoobtdvyr
 c4PFvfos/ixMdGD0Of7jCEsAYxZqZl5RfkcCa8WPlLPaC3UeZKhqnfmNvYNyynKmLkYNDQiBI
 ouGITRcjJwebgI7E0qPzgcJcHCICcxklps9fwQKSEBbwlPj2ZDojiC0i4CWx83IvE4RtJXHtd
 zdYDYuAisTZY/vYQGxeAXeJ5//3soEMEhLoZZT4PfEqK0iCU8BDovP8STCbUUBW4kvjamYQm1
 lAXOLWk/lgQyUEBCSW7DnPDGGLSrx8/I8VwjaQ2Lp0HwvI0cwCuRLf3ytD7BKUODnzCdgNQkA
 3bHl8AKqVW2Ll5z8sExiFZyHZMAuhexaSbogSHYkFuz+xQdjaEssWvmaGsc8ceMyELL6AkX0V
 o0ZxalFZapGuoZleUlFmekZJbmJmjq6hgalebmpxcWJ6ak5iUrFecn7uJkZgFDEAwQ7G86c9D
 zFKcjApifJqclSFC/El5adUZiQWZ8QXleakFh9ilOHgUJLgXacLlBMsSk1PrUjLzAHGM0xago
 NHSYRXUg8ozVtckJhbnJkOkTrFqCglzvsDpE8AJJFRmgfXBkshlxhlpYR5GYEOEeIpSC3KzSx
 BlX/FKM7BqCTMawEyniczrwRu+iugxUxAi1ljy0EWlyQipKQaGFPnx96TeJaVdWKyW4iZw/ry
 on0BHEfa7PwPn9UqOCdT9SOc/eTvvjlVvt9Mo7+ISrOtTzJTdxDznNqzIMrui6li3O7U6c7tj
 fc4NC+9XRQxfVblhqul8zJ4fs66p7dBRTnH/Pee3TPvWTZMbf+s6pviN6N291qxT4Iv02Y5Tx
 K1eWjwrDXghxJLcUaioRZzUXEiAIzZbnQcAwAA
X-Env-Sender: prvs=986be9eca=Paul.Durrant@citrix.com
X-Msg-Ref: server-12.tower-206.messagelabs.com!1467625399!11940303!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG,
 HTML_MESSAGE,received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 1963 invoked from network); 4 Jul 2016 09:43:19 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-12.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 4 Jul 2016 09:43:19 -0000
X-IronPort-AV: E=Sophos;i="5.26,574,1459814400"; d="scan'208,217";a="25536406"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Ben Chalmers <ben.chalmers@citrix.com>, Stephen Oberholtzer
 <stevie@qrpff.net>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] On the state of non-test-signed WinPV drivers
Thread-Index: AQHR0/F1AWWqiiM/TkuNvqs/gVO6LKAH1KEAgAAzesA=
Date: Mon, 4 Jul 2016 09:43:17 +0000
Message-ID: <fc5c8ced468540b78b6275da50468841@AMSPEX02CL03.citrite.net>
References: <CAD_xR9ea0+aER1i7Vmjy+FCNcc7nbuO0LPC8R6cj1xPKMwHaTg@mail.gmail.com>
 <0f3d9a333a4c40b792d95612b70fd682@AMSPEX02CL03.citrite.net>
In-Reply-To: <0f3d9a333a4c40b792d95612b70fd682@AMSPEX02CL03.citrite.net>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] On the state of non-test-signed WinPV drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============8666591855307462371=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============8666591855307462371==
Content-Language: en-US
Content-Type: multipart/alternative;
	boundary="_000_fc5c8ced468540b78b6275da50468841AMSPEX02CL03citritenet_"

--_000_fc5c8ced468540b78b6275da50468841AMSPEX02CL03citritenet_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi,

  I was holding out for the possibility of the Linux Foundation agreeing to=
 Microsoft's attestation signing agreement, which would have allowed us to =
get Microsoft signatures on the drivers for Windows 10 onwards. It has beco=
me apparent that that is not going to happen so I do have a plan to cross s=
ign drivers using the Linux Foundation EV cert, and I believe such drivers =
will install even on Windows 10 provided that secure boot is not enabled.

  Paul

From: win-pv-devel [mailto:win-pv-devel-bounces@lists.xenproject.org] On Be=
half Of Ben Chalmers
Sent: 04 July 2016 09:36
To: Stephen Oberholtzer; win-pv-devel@lists.xenproject.org
Subject: Re: [win-pv-devel] On the state of non-test-signed WinPV drivers

At present only test drivers are being posted.  These are signed with a cer=
tificate that has been generated by us and isn't (and really shouldn't be) =
trusted by anyone.  You can install these on windows by turning test-signin=
g on and installing the public test certificate on the VM... of course sinc=
e the private key is being shipped in our repositories anyone could sign an=
ything with this key... so you don't want systems you care about even sligh=
tly using this.

Cross signed drivers are signed by a certificate which have a chain of trus=
t back to a trusted certification authority, and where that certificate is =
cross-signed onto Microsoft's chain of trust for drivers. These tools will =
(I think) install on any current version of windows if you have installed t=
he public certificate on those versions of windows.  However, I also believ=
e this may not be the case in the future for windows 10 and 2k16

If you want PV drivers which can be installed on any version of windows wit=
hout installing certificates, they have to be release signed (what used to =
be called 'logo-signed', MS seem to keep changing the name of this... it wa=
s originally called logo signing because it allowed you to put a windows lo=
go on your product's box.).  Foe this you need to pass a number of tests fr=
om the HCK and also sign the test results with an EV certificate.  Running =
these tests is not a trivial process - it takes a decent chunk of time, eff=
ort and experience to get through them.

Generally speaking, the following is true:

Test signed drivers are good enough for day to day development and testing =
purposes.

Many people (who are in full control of the VMs in their network) will be h=
appy with cross-signed drivers (and installing the certs on a golden image =
- or somesuch) themselves.

Getting release-signed drivers is a big overhead - and expensive both in te=
rms of time and money.  You would only ever expect it to be done for fully =
tested release quality drivers.  At the moment, Citrix release (very slight=
ly modified) logo-signed drivers with XenServer (including in the open sour=
ce version)  These are currently 8.1 drivers - and so are up to date with t=
he latest release-quality PV Tools.

The biggest bang for buck we could get at the moment would be for someone t=
rustworthy to produced cross-signed drivers from our automated builds - tha=
t would allow you to take a build and begin using it securely.

Ben Chalmers

From: Stephen Oberholtzer<mailto:stevie@qrpff.net>
Sent: 02 July 2016 00:36
To: win-pv-devel@lists.xenproject.org<mailto:win-pv-devel@lists.xenproject.=
org>
Subject: [win-pv-devel] On the state of non-test-signed WinPV drivers

All,
I have some questions about the whole signed-drivers thing, so I hope you'l=
l indulge me.
(1) As best as I can tell, only test-signed drivers are currently being pos=
ted. Is that correct?

(2) Test-signed is pretty clear to me, but what is the difference between r=
elease-signed and logo-signed?
(3) If I want PV drivers that can be installed on a standard Windows instal=
lation without any hassle, do they need to be release-signed or logo-signed=
?
(4)  What do you guys need in order to be able to distribute #3?   What can=
 I do to help?

I searched around, and it looks like the following are needed:

* Windows Hardware Developer Center Dashboard portal account (no idea how m=
uch this costs)
* An appropriate EV certificate
** GlobalSign - $410/yr, $760 for 2 years, or $950 for 3 years
** DigiCert - $449/yr, $798 for 2 years, or $993 for 3 years
** Entrust - $399/yr, no multiyear discount (so best value for 1 year but t=
hat's it)
* To get an EV certificate, you need a legally-recognized entity (which can=
 be a full-blown corporation or an LLC)
* Then you need to run some tests and submit them to Microsoft and their sy=
stem signs the drivers on your behalf.


--
-- Stevie-O
Real programmers use COPY CON PROGRAM.EXE

--_000_fc5c8ced468540b78b6275da50468841AMSPEX02CL03citritenet_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"ProgId" content=3D"Word.Document">
<meta name=3D"Generator" content=3D"Microsoft Word 14">
<meta name=3D"Originator" content=3D"Microsoft Word 14">
<link rel=3D"File-List" href=3D"cid:filelist.xml@01D1D5E0.E3B3D860"><!--[if=
 gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
<o:DoNotRelyOnCSS/>
</o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:SpellingState>Clean</w:SpellingState>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:EnvelopeVis/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-GB</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:DoNotExpandShiftReturn/>
<w:BreakWrappedTables/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val=3D"Cambria Math"/>
<m:brkBin m:val=3D"before"/>
<m:brkBinSub m:val=3D"&#45;-"/>
<m:smallFrac m:val=3D"off"/>
<m:dispDef/>
<m:lMargin m:val=3D"0"/>
<m:rMargin m:val=3D"0"/>
<m:defJc m:val=3D"centerGroup"/>
<m:wrapIndent m:val=3D"1440"/>
<m:intLim m:val=3D"subSup"/>
<m:naryLim m:val=3D"undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState=3D"false" DefUnhideWhenUsed=3D"true" DefSemi=
Hidden=3D"true" DefQFormat=3D"false" DefPriority=3D"99" LatentStyleCount=3D=
"267">
<w:LsdException Locked=3D"false" Priority=3D"0" SemiHidden=3D"false" Unhide=
WhenUsed=3D"false" QFormat=3D"true" Name=3D"Normal"/>
<w:LsdException Locked=3D"false" Priority=3D"9" SemiHidden=3D"false" Unhide=
WhenUsed=3D"false" QFormat=3D"true" Name=3D"heading 1"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 2"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 3"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 4"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 5"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 6"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 7"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 8"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"he=
ading 9"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 1"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 2"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 3"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 4"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 5"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 6"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 7"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 8"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 9"/>
<w:LsdException Locked=3D"false" Priority=3D"35" QFormat=3D"true" Name=3D"c=
aption"/>
<w:LsdException Locked=3D"false" Priority=3D"10" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Title"/>
<w:LsdException Locked=3D"false" Priority=3D"1" Name=3D"Default Paragraph F=
ont"/>
<w:LsdException Locked=3D"false" Priority=3D"11" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Subtitle"/>
<w:LsdException Locked=3D"false" Priority=3D"22" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Strong"/>
<w:LsdException Locked=3D"false" Priority=3D"20" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Emphasis"/>
<w:LsdException Locked=3D"false" Priority=3D"59" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Table Grid"/>
<w:LsdException Locked=3D"false" UnhideWhenUsed=3D"false" Name=3D"Placehold=
er Text"/>
<w:LsdException Locked=3D"false" Priority=3D"1" SemiHidden=3D"false" Unhide=
WhenUsed=3D"false" QFormat=3D"true" Name=3D"No Spacing"/>
<w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Shading"/>
<w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light List"/>
<w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Grid"/>
<w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 1"/>
<w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 2"/>
<w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 1"/>
<w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 2"/>
<w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 1"/>
<w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 2"/>
<w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 3"/>
<w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Dark List"/>
<w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Shading"/>
<w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful List"/>
<w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Grid"/>
<w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Shading Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light List Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Grid Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 1 Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 2 Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 1 Accent 1"/>
<w:LsdException Locked=3D"false" UnhideWhenUsed=3D"false" Name=3D"Revision"=
/>
<w:LsdException Locked=3D"false" Priority=3D"34" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"List Paragraph"/>
<w:LsdException Locked=3D"false" Priority=3D"29" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Quote"/>
<w:LsdException Locked=3D"false" Priority=3D"30" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Intense Quote"/>
<w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 2 Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 1 Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 2 Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 3 Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Dark List Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Shading Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful List Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Grid Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Shading Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light List Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Grid Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 1 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 2 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 1 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 2 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 1 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 2 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 3 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Dark List Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Shading Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful List Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Grid Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Shading Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light List Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Grid Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 1 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 2 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 1 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 2 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 1 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 2 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 3 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Dark List Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Shading Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful List Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Grid Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Shading Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light List Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Grid Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 1 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 2 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 1 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 2 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 1 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 2 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 3 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Dark List Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Shading Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful List Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Grid Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Shading Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light List Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Grid Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 1 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 2 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 1 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 2 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 1 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 2 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 3 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Dark List Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Shading Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful List Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Grid Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Shading Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light List Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Light Grid Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 1 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Shading 2 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 1 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium List 2 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 1 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 2 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Medium Grid 3 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Dark List Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Shading Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful List Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" Name=3D"Colorful Grid Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"19" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Subtle Emphasis"/>
<w:LsdException Locked=3D"false" Priority=3D"21" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Intense Emphasis"/>
<w:LsdException Locked=3D"false" Priority=3D"31" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Subtle Reference"/>
<w:LsdException Locked=3D"false" Priority=3D"32" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Intense Reference"/>
<w:LsdException Locked=3D"false" Priority=3D"33" SemiHidden=3D"false" Unhid=
eWhenUsed=3D"false" QFormat=3D"true" Name=3D"Book Title"/>
<w:LsdException Locked=3D"false" Priority=3D"37" Name=3D"Bibliography"/>
<w:LsdException Locked=3D"false" Priority=3D"39" QFormat=3D"true" Name=3D"T=
OC Heading"/>
</w:LatentStyles>
</xml><![endif]--><style><!--
/* Font Definitions */
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-536870145 1073786111 1 0 415 0;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-520081665 -1073717157 41 0 66047 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"";
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-fareast-font-family:Calibri;
	mso-bidi-font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{mso-style-noshow:yes;
	mso-style-priority:99;
	color:blue;
	text-decoration:underline;
	text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-noshow:yes;
	mso-style-priority:99;
	color:#954F72;
	text-decoration:underline;
	text-underline:single;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
	{mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-link:"Balloon Text Char";
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:8.0pt;
	font-family:"Tahoma","sans-serif";
	mso-fareast-font-family:Calibri;}
span.EmailStyle17
	{mso-style-type:personal-reply;
	mso-style-noshow:yes;
	mso-style-unhide:no;
	mso-ansi-font-size:11.0pt;
	mso-bidi-font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-fareast-font-family:Calibri;
	mso-hansi-font-family:Calibri;
	mso-bidi-font-family:"Times New Roman";
	color:#1F497D;}
span.BalloonTextChar
	{mso-style-name:"Balloon Text Char";
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-unhide:no;
	mso-style-locked:yes;
	mso-style-link:"Balloon Text";
	mso-ansi-font-size:8.0pt;
	mso-bidi-font-size:8.0pt;
	font-family:"Tahoma","sans-serif";
	mso-ascii-font-family:Tahoma;
	mso-fareast-font-family:Calibri;
	mso-hansi-font-family:Tahoma;
	mso-bidi-font-family:Tahoma;}
span.SpellE
	{mso-style-name:"";
	mso-spl-e:yes;}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-default-props:yes;
	font-size:10.0pt;
	mso-ansi-font-size:10.0pt;
	mso-bidi-font-size:10.0pt;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;
	mso-header-margin:36.0pt;
	mso-footer-margin:36.0pt;
	mso-paper-source:0;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 10]><style>/* Style Definitions */
table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman","serif";}
</style><![endif]--><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-GB" link=3D"blue" vlink=3D"#954F72" style=3D"tab-interval:=
36.0pt">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;mso-ascii-font-family:Calibri;mso-hansi-fon=
t-family:Calibri;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#1F=
497D">Hi,<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;mso-ascii-font-family:Calibri;mso-hansi-fon=
t-family:Calibri;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#1F=
497D"><o:p>&nbsp;</o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;mso-ascii-font-family:Calibri;mso-hansi-fon=
t-family:Calibri;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#1F=
497D"><span style=3D"mso-spacerun:yes">&nbsp;
</span>I was holding out for the possibility of the Linux Foundation agreei=
ng to Microsoft&#8217;s attestation signing agreement, which would have all=
owed us to get Microsoft signatures on the drivers for Windows 10 onwards. =
It has become apparent that that is not
 going to happen so I do have a plan to cross sign drivers using the Linux =
Foundation EV cert, and I believe such drivers will install even on Windows=
 10 provided that secure boot is not enabled.<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;mso-ascii-font-family:Calibri;mso-hansi-fon=
t-family:Calibri;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#1F=
497D"><o:p>&nbsp;</o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;mso-ascii-font-family:Calibri;mso-hansi-fon=
t-family:Calibri;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#1F=
497D"><span style=3D"mso-spacerun:yes">&nbsp;
</span>Paul<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;mso-ascii-font-family:Calibri;mso-hansi-fon=
t-family:Calibri;mso-bidi-font-family:&quot;Times New Roman&quot;;color:#1F=
497D"><o:p>&nbsp;</o:p></span></font></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><font size=3D"2" face=3D"Tahoma"><span lang=3D"EN=
-US" style=3D"font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-se=
rif&quot;;mso-fareast-font-family:&quot;Times New Roman&quot;;mso-ansi-lang=
uage:EN-US;font-weight:bold">From:</span></font></b><font size=3D"2" face=
=3D"Tahoma"><span lang=3D"EN-US" style=3D"font-size:10.0pt;font-family:&quo=
t;Tahoma&quot;,&quot;sans-serif&quot;;mso-fareast-font-family:&quot;Times N=
ew Roman&quot;;mso-ansi-language:EN-US">
 win-pv-devel [mailto:win-pv-devel-bounces@lists.xenproject.org] <b><span s=
tyle=3D"font-weight:bold">On Behalf Of
</span></b>Ben Chalmers<br>
<b><span style=3D"font-weight:bold">Sent:</span></b> 04 July 2016 09:36<br>
<b><span style=3D"font-weight:bold">To:</span></b> Stephen Oberholtzer; win=
-pv-devel@lists.xenproject.org<br>
<b><span style=3D"font-weight:bold">Subject:</span></b> Re: [win-pv-devel] =
On the state of non-test-signed WinPV drivers<o:p></o:p></span></font></p>
</div>
</div>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt"><o:p>&nbsp;</o:p></span></font></p>
<div>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt">At present only test drivers are being posted.&nbsp; These a=
re signed with a certificate that has been generated by us and isn&#8217;t =
(and really shouldn&#8217;t be) trusted by anyone.&nbsp; You can
 install these on windows by turning test-signing on and installing the pub=
lic test certificate on the VM... of course since the private key is being =
shipped in our repositories anyone could sign anything with this key... so =
you don&#8217;t want systems you care
 about even slightly using this.<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt">&nbsp;<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt">Cross signed drivers are signed by a certificate which have =
a chain of trust back to a trusted certification authority, and where that =
certificate is cross-signed onto Microsoft&#8217;s
 chain of trust for drivers. These tools will (I think) install on any curr=
ent version of windows if you have installed the public certificate on thos=
e versions of windows.&nbsp; However, I also believe this may not be the ca=
se in the future for windows 10 and 2k16<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt">&nbsp;<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt">If you want PV drivers which can be installed on any version=
 of windows without installing certificates, they have to be release signed=
 (what used to be called &#8216;logo-signed&#8217;,
 MS seem to keep changing the name of this... it was originally called logo=
 signing because it allowed you to put a windows logo on your product&#8217=
;s box.).&nbsp; Foe this you need to pass a number of tests from the HCK an=
d also sign the test results with an EV certificate.&nbsp;
 Running these tests is not a trivial process &#8211; it takes a decent chu=
nk of time, effort and experience to get through them.<o:p></o:p></span></f=
ont></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt">&nbsp;<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt">Generally speaking, the following is true:<o:p></o:p></span>=
</font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt">&nbsp;<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt">Test signed drivers are good enough for day to day developme=
nt and testing purposes.<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt">&nbsp;<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt">Many people (who are in full control of the VMs in their net=
work) will be happy with cross-signed drivers (and installing the certs on =
a golden image &#8211; or somesuch) themselves.<o:p></o:p></span></font></p=
>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt">&nbsp;<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt">Getting release-signed drivers is a big overhead &#8211; and=
 expensive both in terms of time and money. &nbsp;You would only ever expec=
t it to be done for fully tested release quality drivers.&nbsp;
 At the moment, Citrix release (very slightly modified) logo-signed drivers=
 with XenServer (including in the open source version)&nbsp; These are curr=
ently 8.1 drivers &#8211; and so are up to date with the latest release-qua=
lity PV Tools.<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt">&nbsp;<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt">The biggest bang for buck we could get at the moment would b=
e for someone trustworthy to produced cross-signed drivers from our automat=
ed builds &#8211; that would allow you to take
 a build and begin using it securely.<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt">&nbsp;<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri"><span style=3D"fon=
t-size:11.0pt">Ben Chalmers<o:p></o:p></span></font></p>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt;font-family:&quot;Times New Roman&quot;,&quot;serif&q=
uot;">&nbsp;</span></font><o:p></o:p></p>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal" style=3D"mso-outline-level:1"><b><font size=3D"2" fa=
ce=3D"Calibri"><span style=3D"font-size:11.0pt;font-weight:bold">From:
</span></font></b><a href=3D"mailto:stevie@qrpff.net">Stephen Oberholtzer</=
a><br>
<b><span style=3D"font-weight:bold">Sent: </span></b>02 July 2016 00:36<br>
<b><span style=3D"font-weight:bold">To: </span></b><a href=3D"mailto:win-pv=
-devel@lists.xenproject.org">win-pv-devel@lists.xenproject.org</a><br>
<b><span style=3D"font-weight:bold">Subject: </span></b>[win-pv-devel] On t=
he state of non-test-signed WinPV drivers<o:p></o:p></p>
</div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt;font-family:&quot;Times New Roman&quot;,&quot;serif&q=
uot;">&nbsp;</span></font><o:p></o:p></p>
</div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><font size=3D"3" face=
=3D"Times New Roman"><span style=3D"font-size:12.0pt;font-family:&quot;Time=
s New Roman&quot;,&quot;serif&quot;;mso-fareast-font-family:&quot;Times New=
 Roman&quot;">All,<o:p></o:p></span></font></p>
</div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><font size=3D"3" face=
=3D"Times New Roman"><span style=3D"font-size:12.0pt;font-family:&quot;Time=
s New Roman&quot;,&quot;serif&quot;;mso-fareast-font-family:&quot;Times New=
 Roman&quot;">I have some questions about the whole signed-drivers thing,
 so I hope you'll indulge me.<o:p></o:p></span></font></p>
</div>
</div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><font size=3D"3" face=
=3D"Times New Roman"><span style=3D"font-size:12.0pt;font-family:&quot;Time=
s New Roman&quot;,&quot;serif&quot;;mso-fareast-font-family:&quot;Times New=
 Roman&quot;">(1) As best as I can tell, only test-signed drivers are curre=
ntly
 being posted. Is that correct?<br>
<br>
(2) Test-signed is pretty clear to me, but what is the difference between r=
elease-signed and logo-signed?<o:p></o:p></span></font></p>
</div>
<div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><font size=3D"3" face=
=3D"Times New Roman"><span style=3D"font-size:12.0pt;font-family:&quot;Time=
s New Roman&quot;,&quot;serif&quot;;mso-fareast-font-family:&quot;Times New=
 Roman&quot;">(3) If I want PV drivers that can be installed on a standard
 Windows installation without any hassle, do they need to be release-signed=
 or logo-signed?<o:p></o:p></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt;font-family:&quot;Times New Roman&quot;,&quot;serif&q=
uot;;mso-fareast-font-family:&quot;Times New Roman&quot;">(4)&nbsp; What do=
 you guys need in order to be able to distribute #3?&nbsp;&nbsp; What can I=
 do to help?<br>
<br>
I searched around, and it looks like the following are needed:<br>
<br>
* Windows Hardware Developer Center Dashboard portal account (no idea how m=
uch this costs)<o:p></o:p></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt;font-family:&quot;Times New Roman&quot;,&quot;serif&q=
uot;;mso-fareast-font-family:&quot;Times New Roman&quot;">* An appropriate =
EV certificate<o:p></o:p></span></font></p>
</div>
<div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt;font-family:&quot;Times New Roman&quot;,&quot;serif&q=
uot;;mso-fareast-font-family:&quot;Times New Roman&quot;">** GlobalSign - $=
410/yr, $760 for 2 years, or $950 for 3 years<o:p></o:p></span></font></p>
</div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt;font-family:&quot;Times New Roman&quot;,&quot;serif&q=
uot;;mso-fareast-font-family:&quot;Times New Roman&quot;">** DigiCert - $44=
9/yr, $798 for 2 years, or $993 for 3 years<o:p></o:p></span></font></p>
</div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt;font-family:&quot;Times New Roman&quot;,&quot;serif&q=
uot;;mso-fareast-font-family:&quot;Times New Roman&quot;">** Entrust - $399=
/yr, no multiyear discount (so best value for 1 year but that's it)<o:p></o=
:p></span></font></p>
</div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt;font-family:&quot;Times New Roman&quot;,&quot;serif&q=
uot;;mso-fareast-font-family:&quot;Times New Roman&quot;">* To get an EV ce=
rtificate, you need a legally-recognized entity (which can be a full-blown
 corporation or an LLC)<o:p></o:p></span></font></p>
</div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt;font-family:&quot;Times New Roman&quot;,&quot;serif&q=
uot;;mso-fareast-font-family:&quot;Times New Roman&quot;">* Then you need t=
o run some tests and submit them to Microsoft and their system signs the
 drivers on your behalf.<o:p></o:p></span></font></p>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt;font-family:&quot;Times New Roman&quot;,&quot;serif&q=
uot;;mso-fareast-font-family:&quot;Times New Roman&quot;"><o:p>&nbsp;</o:p>=
</span></font></p>
<div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><font size=3D"3" face=
=3D"Times New Roman"><span style=3D"font-size:12.0pt;font-family:&quot;Time=
s New Roman&quot;,&quot;serif&quot;;mso-fareast-font-family:&quot;Times New=
 Roman&quot;"><o:p>&nbsp;</o:p></span></font></p>
<div>
<div>
<div>
<div>
<div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt;font-family:&quot;Times New Roman&quot;,&quot;serif&q=
uot;;mso-fareast-font-family:&quot;Times New Roman&quot;">--
<o:p></o:p></span></font></p>
<div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><font size=3D"3" face=
=3D"Times New Roman"><span style=3D"font-size:12.0pt;font-family:&quot;Time=
s New Roman&quot;,&quot;serif&quot;;mso-fareast-font-family:&quot;Times New=
 Roman&quot;">-- Stevie-O<br>
Real programmers use COPY CON PROGRAM.EXE<o:p></o:p></span></font></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

--_000_fc5c8ced468540b78b6275da50468841AMSPEX02CL03citritenet_--


--===============8666591855307462371==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2
ZWw=

--===============8666591855307462371==--


From win-pv-devel-bounces@lists.xenproject.org Tue Jul 05 10:38:26 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 05 Jul 2016 10:38:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bKNkH-0005HB-HM; Tue, 05 Jul 2016 10:38:25 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=987319bd7=owen.smith@citrix.com>)
 id 1bKNkF-0005GO-R6
 for win-pv-devel@lists.xenproject.org; Tue, 05 Jul 2016 10:38:23 +0000
Received: from [85.158.143.35] by server-2.bemta-6.messagelabs.com id
 51/36-11548-E1E8B775; Tue, 05 Jul 2016 10:38:22 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuplkeJIrShJLcpLzFFi42JxWrohUleurzr
 coHEBt8WfxYkOjB6HP1xhCWCMYs3MS8qvSGDNeLW/tOCzaEX73imsDYxtQl2MnBwSAv4S+7cu
 ZQKx2QQ0JGZ0LmYBsUUE1CX2fd4KFmcWUJO4vr+LFcQWFrCUuHf9NVicRUBF4vyTHjYQm1fAV
 WJD52EmiJkaEpsaZoDFOQXcJBq3rwHrFQKqadh/iRHCVpL4tvgFM0SvoMTJmU9YIHZJSBx8AR
 LnAJrDLfG3234CI98sJFWzkFQtYGRaxahenFpUllqka6SXVJSZnlGSm5iZo2toYKaXm1pcnJi
 empOYVKyXnJ+7iREYTAxAsINx2V+nQ4ySHExKorwONdXhQnxJ+SmVGYnFGfFFpTmpxYcYZTg4
 lCR4r/YA5QSLUtNTK9Iyc4BhDZOW4OBREuFl7gVK8xYXJOYWZ6ZDpE4xKkqJ89qCJARAEhmle
 XBtsFi6xCgrJczLCHSIEE9BalFuZgmq/CtGcQ5GJWHeUyDbeTLzSuCmvwJazAS0+KcL2OKSRI
 SUVAMjv97RhTW6eW0tc6+42m23nrU/3Op+kp75KrGPdb1V9r82HGveJPeGXUXC8er5sE9OfEb
 ZsRmGD1bzyJ9NWn7s6PzOGY5SwTG/m93ZGpY28OY/CM4Vtd2m65dk/TNletqv938ir8ZuYJjr
 fZOv0c3xcfvGPXYJi6/cfL/PujzO5MNmJkWLn8lKLMUZiYZazEXFiQBfM2BjoAIAAA==
X-Env-Sender: prvs=987319bd7=owen.smith@citrix.com
X-Msg-Ref: server-10.tower-21.messagelabs.com!1467715100!22252305!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13232 invoked from network); 5 Jul 2016 10:38:21 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-10.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 5 Jul 2016 10:38:21 -0000
X-IronPort-AV: E=Sophos;i="5.26,579,1459814400"; d="scan'208";a="364363847"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 5 Jul 2016 11:38:09 +0100
Message-ID: <1467715091-13216-5-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
References: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 4/6] Track active device in service class
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

SG9sZCBhIENyaXRpY2FsU2VjdGlvbiBwcm90ZWN0ZWQgbG9jYWwgcG9pbnRlciB0byB0aGUgWGVu
SWZhY2VEZXZpY2UKdGhhdCBpcyBjdXJyZW50bHkgYXZhaWxhYmxlLiBUaGlzIHdpbGwgYmUgdXNl
ZCBmb3IgYWxsIGFjY2Vzc2VzIHRvCnRoZSBpbnRlcmZhY2VzIHByb3ZpZGVkLgoKU2lnbmVkLW9m
Zi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNyYy94ZW5hZ2Vu
dC9zZXJ2aWNlLmNwcCB8IDM1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiBz
cmMveGVuYWdlbnQvc2VydmljZS5oICAgfCAgMiArKwogMiBmaWxlcyBjaGFuZ2VkLCAzNiBpbnNl
cnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3hlbmFnZW50L3NlcnZp
Y2UuY3BwIGIvc3JjL3hlbmFnZW50L3NlcnZpY2UuY3BwCmluZGV4IGJkMDg1ZjYuLjg0Yjg4MTQg
MTAwNjQ0Ci0tLSBhL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcAorKysgYi9zcmMveGVuYWdlbnQv
c2VydmljZS5jcHAKQEAgLTM4LDYgKzM4LDI0IEBACiAjaW5jbHVkZSAic2VydmljZS5oIgogI2lu
Y2x1ZGUgIm1lc3NhZ2VzLmgiCiAKK2NsYXNzIENDcml0U2VjCit7CitwdWJsaWM6CisgICAgQ0Ny
aXRTZWMoTFBDUklUSUNBTF9TRUNUSU9OIGNyaXQpOworICAgIH5DQ3JpdFNlYygpOworcHJpdmF0
ZToKKyAgICBMUENSSVRJQ0FMX1NFQ1RJT04gbV9jcml0OworfTsKKworQ0NyaXRTZWM6OkNDcml0
U2VjKExQQ1JJVElDQUxfU0VDVElPTiBjcml0KSA6IG1fY3JpdChjcml0KQoreworICAgIEVudGVy
Q3JpdGljYWxTZWN0aW9uKG1fY3JpdCk7Cit9CitDQ3JpdFNlYzo6fkNDcml0U2VjKCkKK3sKKyAg
ICBMZWF2ZUNyaXRpY2FsU2VjdGlvbihtX2NyaXQpOworfQorCiBpbnQgX19zdGRjYWxsIFdpbk1h
aW4oSElOU1RBTkNFIGhJbnN0YW5jZSwgSElOU1RBTkNFIGlnbm9yZSwgTFBTVFIgbHBDbWRMaW5l
LCBpbnQgbkNtZFNob3cpCiB7CiAgICAgaWYgKHN0cmxlbihscENtZExpbmUpICE9IDApIHsKQEAg
LTE1MSw3ICsxNjksOCBAQCBzdGF0aWMgQ1hlbkFnZW50IHNfc2VydmljZTsKICAgICByZXR1cm4g
c19zZXJ2aWNlLl9fU2VydmljZUNvbnRyb2xIYW5kbGVyRXgocmVxLCBldnQsIGRhdGEsIGN0eHQp
OwogfQogCi1DWGVuQWdlbnQ6OkNYZW5BZ2VudCgpIDogbV9oYW5kbGUoTlVMTCksIG1fZXZ0bG9n
KE5VTEwpLCBtX2Rldmxpc3QoR1VJRF9JTlRFUkZBQ0VfWEVOSUZBQ0UpCitDWGVuQWdlbnQ6OkNY
ZW5BZ2VudCgpIDogbV9oYW5kbGUoTlVMTCksIG1fZXZ0bG9nKE5VTEwpLAorICAgIG1fZGV2bGlz
dChHVUlEX0lOVEVSRkFDRV9YRU5JRkFDRSksIG1fZGV2aWNlKE5VTEwpCiB7CiAgICAgbV9zdGF0
dXMuZHdTZXJ2aWNlVHlwZSAgICAgICAgPSBTRVJWSUNFX1dJTjMyOwogICAgIG1fc3RhdHVzLmR3
Q3VycmVudFN0YXRlICAgICAgID0gU0VSVklDRV9TVEFSVF9QRU5ESU5HOwpAQCAtMTYyLDExICsx
ODEsMTUgQEAgQ1hlbkFnZW50OjpDWGVuQWdlbnQoKSA6IG1faGFuZGxlKE5VTEwpLCBtX2V2dGxv
ZyhOVUxMKSwgbV9kZXZsaXN0KEdVSURfSU5URVJGQUMKICAgICBtX3N0YXR1cy5kd1dhaXRIaW50
ICAgICAgICAgICA9IDA7CiAKICAgICBtX3N2Y19zdG9wID0gQ3JlYXRlRXZlbnQoRkFMU0UsIE5V
TEwsIE5VTEwsIEZBTFNFKTsKKworICAgIEluaXRpYWxpemVDcml0aWNhbFNlY3Rpb24oJm1fY3Jp
dCk7CiB9CiAKIENYZW5BZ2VudDo6fkNYZW5BZ2VudCgpCiB7CiAgICAgQ2xvc2VIYW5kbGUobV9z
dmNfc3RvcCk7CisKKyAgICBEZWxldGVDcml0aWNhbFNlY3Rpb24oJm1fY3JpdCk7CiB9CiAKIC8q
dmlydHVhbCovIENEZXZpY2UqIENYZW5BZ2VudDo6Q3JlYXRlKGNvbnN0IHdjaGFyX3QqIHBhdGgp
CkBAIC0xNzcsMTEgKzIwMCwyMSBAQCBDWGVuQWdlbnQ6On5DWGVuQWdlbnQoKQogLyp2aXJ0dWFs
Ki8gdm9pZCBDWGVuQWdlbnQ6Ok9uRGV2aWNlQWRkZWQoQ0RldmljZSogZGV2KQogewogICAgIENY
ZW5BZ2VudDo6TG9nKCJPbkRldmljZUFkZGVkKCV3cylcbiIsIGRldi0+UGF0aCgpKTsKKworICAg
IENDcml0U2VjIGNyaXQoJm1fY3JpdCk7CisgICAgaWYgKG1fZGV2aWNlID09IE5VTEwpIHsKKyAg
ICAgICAgbV9kZXZpY2UgPSAoQ1hlbklmYWNlRGV2aWNlKilkZXY7CisgICAgfQogfQogCiAvKnZp
cnR1YWwqLyB2b2lkIENYZW5BZ2VudDo6T25EZXZpY2VSZW1vdmVkKENEZXZpY2UqIGRldikKIHsK
ICAgICBDWGVuQWdlbnQ6OkxvZygiT25EZXZpY2VSZW1vdmVkKCV3cylcbiIsIGRldi0+UGF0aCgp
KTsKKworICAgIENDcml0U2VjIGNyaXQoJm1fY3JpdCk7CisgICAgaWYgKG1fZGV2aWNlID09IGRl
dikgeworICAgICAgICBtX2RldmljZSA9IE5VTEw7CisgICAgfQogfQogCiB2b2lkIENYZW5BZ2Vu
dDo6T25TZXJ2aWNlU3RhcnQoKQpkaWZmIC0tZ2l0IGEvc3JjL3hlbmFnZW50L3NlcnZpY2UuaCBi
L3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmgKaW5kZXggZTMxZGNmZC4uYWNjNGQ1MiAxMDA2NDQKLS0t
IGEvc3JjL3hlbmFnZW50L3NlcnZpY2UuaAorKysgYi9zcmMveGVuYWdlbnQvc2VydmljZS5oCkBA
IC03OSw2ICs3OSw4IEBAIHByaXZhdGU6IC8vIHNlcnZpY2Ugc3VwcG9ydAogICAgIEhBTkRMRSAg
ICAgICAgICAgICAgICAgIG1fc3ZjX3N0b3A7CiAKICAgICBDRGV2aWNlTGlzdCAgICAgICAgICAg
ICBtX2Rldmxpc3Q7CisgICAgQ1hlbklmYWNlRGV2aWNlKiAgICAgICAgbV9kZXZpY2U7CisgICAg
Q1JJVElDQUxfU0VDVElPTiAgICAgICAgbV9jcml0OwogfTsKIAogI2VuZGlmCi0tIAoxLjkuNC5t
c3lzZ2l0LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Xwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0
Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZv
L3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 05 10:38:26 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 05 Jul 2016 10:38:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bKNkH-0005HL-II; Tue, 05 Jul 2016 10:38:25 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=987319bd7=owen.smith@citrix.com>)
 id 1bKNkG-0005GW-Bx
 for win-pv-devel@lists.xenproject.org; Tue, 05 Jul 2016 10:38:24 +0000
Received: from [85.158.143.35] by server-3.bemta-6.messagelabs.com id
 76/8F-22092-F1E8B775; Tue, 05 Jul 2016 10:38:23 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupjkeJIrShJLcpLzFFi42JxWrohUleurzr
 c4MNva4s/ixMdGD0Of7jCEsAYxZqZl5RfkcCacW/rJcaCQ9YV9zvmszcwvtPuYuTkkBDwl9h2
 7C8LiM0moCExo3MxmC0ioC6x7/NWJhCbWUBN4vr+LlYQW1jATGLb1FfsIDaLgIrEq6WdYDW8A
 q4SL9ZuZ4SYqSGxqWEGG4jNKeAm0bh9DVivEFBNw/5LjBC2ksS3xS+YIXoFJU7OfMICsUtC4u
 ALkDgH0Bxuib/d9hMY+WYhqZqFpGoBI9MqRvXi1KKy1CJdI72kosz0jJLcxMwcXUMDM73c1OL
 ixPTUnMSkYr3k/NxNjMBwYgCCHYzL/jodYpTkYFIS5XWoqQ4X4kvKT6nMSCzOiC8qzUktPsQo
 w8GhJMF7tQcoJ1iUmp5akZaZAwxsmLQEB4+SCC9zL1Cat7ggMbc4Mx0idYpRUUqc1xYkIQCSy
 CjNg2uDRdMlRlkpYV5GoEOEeApSi3IzS1DlXzGKczAqCfOeAtnOk5lXAjf9FdBiJqDFP13AFp
 ckIqSkGhjXNsz0e+799dervFUVMk/lZ08teVW/MqJtp/hZ3k+le47k/ox3klmyVlT3Efc61b5
 z/GuPHEsWS5iy7vNpOc69q4UWmjcJHWntqar7vVP6QsV2hykyH9OeqYSYS6pdaH/l+Mt0d1Wq
 8JQVWaXSrZMMta3k4pNVO0MOdElmnuS2P2iwwjNya4YSS3FGoqEWc1FxIgAMwPe4oQIAAA==
X-Env-Sender: prvs=987319bd7=owen.smith@citrix.com
X-Msg-Ref: server-10.tower-21.messagelabs.com!1467715100!22252305!2
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13274 invoked from network); 5 Jul 2016 10:38:22 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-10.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 5 Jul 2016 10:38:22 -0000
X-IronPort-AV: E=Sophos;i="5.26,579,1459814400"; d="scan'208";a="364363848"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 5 Jul 2016 11:38:10 +0100
Message-ID: <1467715091-13216-6-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
References: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 5/6] Add Suspend and Shutdown handlers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

U3VzcGVuZCBuZWVkcyB0byByZS1hZHZlcnRpc2UgdGhlIHNodXRkb3duIGZlYXR1cmUKU2h1dGRv
d24gcmVzcG9uZHMgdG8gY29udHJvbFxzaHV0ZG93biB0byBpc3N1ZSBhIHNodXRkb3duLCByZWJv
b3QsCmhpYmVybmF0ZSBvciBTMyB0cmFuc2l0aW9uLgpTdWl0YWJsZSBldmVudCBsb2cgZW50cmll
cyBhcmUgYWRkZWQgd2hlbiB0aGVzZSBldmVudHMgYXJlIHRyaWdnZXJlZC4KClNpZ25lZC1vZmYt
Ynk6IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4KLS0tCiBzcmMveGVuYWdlbnQv
c2VydmljZS5jcHAgfCAxNDcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKy0KIHNyYy94ZW5hZ2VudC9zZXJ2aWNlLmggICB8ICAxMCArKysrCiAyIGZpbGVzIGNo
YW5nZWQsIDE1NCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny
Yy94ZW5hZ2VudC9zZXJ2aWNlLmNwcCBiL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcAppbmRleCA4
NGI4ODE0Li4zZTYyMWViIDEwMDY0NAotLS0gYS9zcmMveGVuYWdlbnQvc2VydmljZS5jcHAKKysr
IGIvc3JjL3hlbmFnZW50L3NlcnZpY2UuY3BwCkBAIC0zMiw2ICszMiw4IEBACiAjZGVmaW5lIElO
SVRHVUlECiAjaW5jbHVkZSA8d2luZG93cy5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVk
ZSA8cG93cnByb2YuaD4KKyNpbmNsdWRlIDx3aW51c2VyLmg+CiAKICNpbmNsdWRlIDx4ZW5pZmFj
ZV9pb2N0bHMuaD4KIApAQCAtMTcwLDcgKzE3Miw4IEBAIHN0YXRpYyBDWGVuQWdlbnQgc19zZXJ2
aWNlOwogfQogCiBDWGVuQWdlbnQ6OkNYZW5BZ2VudCgpIDogbV9oYW5kbGUoTlVMTCksIG1fZXZ0
bG9nKE5VTEwpLAotICAgIG1fZGV2bGlzdChHVUlEX0lOVEVSRkFDRV9YRU5JRkFDRSksIG1fZGV2
aWNlKE5VTEwpCisgICAgbV9kZXZsaXN0KEdVSURfSU5URVJGQUNFX1hFTklGQUNFKSwgbV9kZXZp
Y2UoTlVMTCksCisgICAgbV9jdHh0X3NodXRkb3duKE5VTEwpLCBtX2N0eHRfc3VzcGVuZChOVUxM
KQogewogICAgIG1fc3RhdHVzLmR3U2VydmljZVR5cGUgICAgICAgID0gU0VSVklDRV9XSU4zMjsK
ICAgICBtX3N0YXR1cy5kd0N1cnJlbnRTdGF0ZSAgICAgICA9IFNFUlZJQ0VfU1RBUlRfUEVORElO
RzsKQEAgLTE4MSwxMiArMTg0LDE2IEBAIENYZW5BZ2VudDo6Q1hlbkFnZW50KCkgOiBtX2hhbmRs
ZShOVUxMKSwgbV9ldnRsb2coTlVMTCksCiAgICAgbV9zdGF0dXMuZHdXYWl0SGludCAgICAgICAg
ICAgPSAwOwogCiAgICAgbV9zdmNfc3RvcCA9IENyZWF0ZUV2ZW50KEZBTFNFLCBOVUxMLCBOVUxM
LCBGQUxTRSk7CisgICAgbV9ldnRfc2h1dGRvd24gPSBDcmVhdGVFdmVudChGQUxTRSwgTlVMTCwg
TlVMTCwgRkFMU0UpOworICAgIG1fZXZ0X3N1c3BlbmQgPSBDcmVhdGVFdmVudChGQUxTRSwgTlVM
TCwgTlVMTCwgRkFMU0UpOwogCiAgICAgSW5pdGlhbGl6ZUNyaXRpY2FsU2VjdGlvbigmbV9jcml0
KTsKIH0KIAogQ1hlbkFnZW50Ojp+Q1hlbkFnZW50KCkKIHsKKyAgICBDbG9zZUhhbmRsZShtX2V2
dF9zdXNwZW5kKTsKKyAgICBDbG9zZUhhbmRsZShtX2V2dF9zaHV0ZG93bik7CiAgICAgQ2xvc2VI
YW5kbGUobV9zdmNfc3RvcCk7CiAKICAgICBEZWxldGVDcml0aWNhbFNlY3Rpb24oJm1fY3JpdCk7
CkBAIC0yMDQsNiArMjExLDEzIEBAIENYZW5BZ2VudDo6fkNYZW5BZ2VudCgpCiAgICAgQ0NyaXRT
ZWMgY3JpdCgmbV9jcml0KTsKICAgICBpZiAobV9kZXZpY2UgPT0gTlVMTCkgewogICAgICAgICBt
X2RldmljZSA9IChDWGVuSWZhY2VEZXZpY2UqKWRldjsKKworICAgICAgICAvLyBzaHV0ZG93bgor
ICAgICAgICBtX2RldmljZS0+U3RvcmVBZGRXYXRjaCgiY29udHJvbC9zaHV0ZG93biIsIG1fZXZ0
X3NodXRkb3duLCAmbV9jdHh0X3NodXRkb3duKTsKKyAgICAgICAgbV9kZXZpY2UtPlN0b3JlV3Jp
dGUoImNvbnRyb2wvZmVhdHVyZS1zaHV0ZG93biIsICIxIik7CisKKyAgICAgICAgLy8gc3VzcGVu
ZAorICAgICAgICBtX2RldmljZS0+U3VzcGVuZFJlZ2lzdGVyKG1fZXZ0X3N1c3BlbmQsICZtX2N0
eHRfc3VzcGVuZCk7CiAgICAgfQogfQogCkBAIC0yMTMsNiArMjI3LDE3IEBAIENYZW5BZ2VudDo6
fkNYZW5BZ2VudCgpCiAKICAgICBDQ3JpdFNlYyBjcml0KCZtX2NyaXQpOwogICAgIGlmIChtX2Rl
dmljZSA9PSBkZXYpIHsKKyAgICAgICAgLy8gc3VzcGVuZAorICAgICAgICBpZiAobV9jdHh0X3N1
c3BlbmQpCisgICAgICAgICAgICBtX2RldmljZS0+U3VzcGVuZERlcmVnaXN0ZXIobV9jdHh0X3N1
c3BlbmQpOworICAgICAgICBtX2N0eHRfc3VzcGVuZCA9IE5VTEw7CisKKyAgICAgICAgLy8gc2h1
dGRvd24KKyAgICAgICAgbV9kZXZpY2UtPlN0b3JlUmVtb3ZlKCJjb250cm9sL2ZlYXR1cmUtc2h1
dGRvd24iKTsKKyAgICAgICAgaWYgKG1fY3R4dF9zaHV0ZG93bikKKyAgICAgICAgICAgIG1fZGV2
aWNlLT5TdG9yZVJlbW92ZVdhdGNoKG1fY3R4dF9zaHV0ZG93bik7CisgICAgICAgIG1fY3R4dF9z
aHV0ZG93biA9IE5VTEw7CisKICAgICAgICAgbV9kZXZpY2UgPSBOVUxMOwogICAgIH0KIH0KQEAg
LTIzNiw4ICsyNjEsMTI0IEBAIHZvaWQgQ1hlbkFnZW50OjpPbkRldmljZUV2ZW50KERXT1JEIGV2
dCwgTFBWT0lEIGRhdGEpCiAKIGJvb2wgQ1hlbkFnZW50OjpTZXJ2aWNlTWFpbkxvb3AoKQogewot
ICAgIFdhaXRGb3JTaW5nbGVPYmplY3QobV9zdmNfc3RvcCwgSU5GSU5JVEUpOwotICAgIHJldHVy
biBmYWxzZTsKKyAgICBIQU5ETEUgIGV2ZW50c1szXSA9IHsgbV9zdmNfc3RvcCwgbV9ldnRfc2h1
dGRvd24sIG1fZXZ0X3N1c3BlbmQgfTsKKyAgICBEV09SRCAgIHdhaXQgPSBXYWl0Rm9yTXVsdGlw
bGVPYmplY3RzKDMsIGV2ZW50cywgRkFMU0UsIElORklOSVRFKTsKKworICAgIHN3aXRjaCAod2Fp
dCkgeworICAgIGNhc2UgV0FJVF9PQkpFQ1RfMDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBl
eGl0IGxvb3AKKworICAgIGNhc2UgV0FJVF9PQkpFQ1RfMCsxOgorICAgICAgICBPblNodXRkb3du
KCk7CisgICAgICAgIHJldHVybiB0cnVlOyAvLyBjb250aW51ZSBsb29wCisKKyAgICBjYXNlIFdB
SVRfT0JKRUNUXzArMjoKKyAgICAgICAgT25TdXNwZW5kKCk7CisgICAgICAgIHJldHVybiB0cnVl
OyAvLyBjb250aW51ZSBsb29wCisKKyAgICBkZWZhdWx0OgorICAgICAgICBDWGVuQWdlbnQ6Okxv
ZygiV2FpdEZvck11bHRpcGxlT2JqZWN0cyBmYWlsZWQgKCUwOHgpXG4iLCB3YWl0KTsKKyAgICAg
ICAgRXZlbnRMb2coRVZFTlRfWEVOVVNFUl9VTkVYUEVDVEVEKTsKKyAgICAgICAgcmV0dXJuIHRy
dWU7IC8vIGNvbnRpbnVlIGxvb3AKKyAgICB9Cit9CisKK3ZvaWQgQ1hlbkFnZW50OjpBY3F1aXJl
U2h1dGRvd25Qcml2aWxlZ2UoKQoreworICAgIEhBTkRMRSAgICAgICAgICB0b2tlbjsKKyAgICBU
T0tFTl9QUklWSUxFR0VTIHRwOworCisgICAgTG9va3VwUHJpdmlsZWdlVmFsdWUoTlVMTCwgU0Vf
U0hVVERPV05fTkFNRSwgJnRwLlByaXZpbGVnZXNbMF0uTHVpZCk7CisgICAgdHAuUHJpdmlsZWdl
c1swXS5BdHRyaWJ1dGVzID0gU0VfUFJJVklMRUdFX0VOQUJMRUQ7CisKKyAgICB0cC5Qcml2aWxl
Z2VDb3VudCA9IDE7CisKKyAgICBpZiAoIU9wZW5Qcm9jZXNzVG9rZW4oR2V0Q3VycmVudFByb2Nl
c3MoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgVE9LRU5fQURKVVNUX1BSSVZJTEVHRVMg
fCBUT0tFTl9RVUVSWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJnRva2VuKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgQWRqdXN0VG9rZW5Qcml2aWxlZ2VzKHRva2VuLCBGQUxTRSwgJnRw
LCBOVUxMLCAwLCBOVUxMKTsKKyAgICBDbG9zZUhhbmRsZSh0b2tlbik7Cit9CisKK3ZvaWQgQ1hl
bkFnZW50OjpFdmVudExvZyhEV09SRCBldnQpCit7CisgICAgaWYgKG1fZXZ0bG9nKSB7CisgICAg
ICAgIFJlcG9ydEV2ZW50KG1fZXZ0bG9nLAorICAgICAgICAgICAgICAgICAgICBFVkVOVExPR19T
VUNDRVNTLAorICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICBldnQs
CisgICAgICAgICAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICAgICAgICAgIDAsCisgICAg
ICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAg
ICAgICAgICAgIE5VTEwpOworICAgIH0KK30KKwordm9pZCBDWGVuQWdlbnQ6Ok9uU2h1dGRvd24o
KQoreworICAgIENDcml0U2VjIGNyaXQoJm1fY3JpdCk7CisgICAgaWYgKG1fZGV2aWNlID09IE5V
TEwpCisgICAgICAgIHJldHVybjsKKworICAgIHN0ZDo6c3RyaW5nIHR5cGU7CisgICAgbV9kZXZp
Y2UtPlN0b3JlUmVhZCgiY29udHJvbC9zaHV0ZG93biIsIHR5cGUpOworCisgICAgQ1hlbkFnZW50
OjpMb2coIk9uU2h1dGRvd24oJXdzKSA9ICVzXG4iLCBtX2RldmljZS0+UGF0aCgpLCB0eXBlLmNf
c3RyKCkpOworCisgICAgaWYgKHR5cGUgPT0gInBvd2Vyb2ZmIiB8fCB0eXBlID09ICJoYWx0Iikg
eworICAgICAgICBFdmVudExvZyhFVkVOVF9YRU5VU0VSX1BPV0VST0ZGKTsKKworICAgICAgICBt
X2RldmljZS0+U3RvcmVXcml0ZSgiY29udHJvbC9zaHV0ZG93biIsICIiKTsKKyAgICAgICAgQWNx
dWlyZVNodXRkb3duUHJpdmlsZWdlKCk7CisgICAgICAgIGlmICghSW5pdGlhdGVTeXN0ZW1TaHV0
ZG93bkV4KE5VTEwsIE5VTEwsIDAsIFRSVUUsIEZBTFNFLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBTSFRETl9SRUFTT05fTUFKT1JfT1RIRVIgfAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBTSFRETl9SRUFTT05fTUlOT1JfRU5WSVJPTk1FTlQg
fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSFRETl9SRUFTT05fRkxB
R19QTEFOTkVEKSkgeworICAgICAgICAgICAgQ1hlbkFnZW50OjpMb2coIkluaXRpYXRlU3lzdGVt
U2h1dGRvd25FeCBmYWlsZWQgJTA4eFxuIiwgR2V0TGFzdEVycm9yKCkpOworICAgICAgICB9Cisg
ICAgfSBlbHNlIGlmICh0eXBlID09ICJyZWJvb3QiKSB7CisgICAgICAgIEV2ZW50TG9nKEVWRU5U
X1hFTlVTRVJfUkVCT09UKTsKKworICAgICAgICBtX2RldmljZS0+U3RvcmVXcml0ZSgiY29udHJv
bC9zaHV0ZG93biIsICIiKTsKKyAgICAgICAgQWNxdWlyZVNodXRkb3duUHJpdmlsZWdlKCk7Cisg
ICAgICAgIGlmICghSW5pdGlhdGVTeXN0ZW1TaHV0ZG93bkV4KE5VTEwsIE5VTEwsIDAsIFRSVUUs
IFRSVUUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNIVEROX1JFQVNP
Tl9NQUpPUl9PVEhFUiB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNI
VEROX1JFQVNPTl9NSU5PUl9FTlZJUk9OTUVOVCB8CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFNIVEROX1JFQVNPTl9GTEFHX1BMQU5ORUQpKSB7CisgICAgICAgICAgICBD
WGVuQWdlbnQ6OkxvZygiSW5pdGlhdGVTeXN0ZW1TaHV0ZG93bkV4IGZhaWxlZCAlMDh4XG4iLCBH
ZXRMYXN0RXJyb3IoKSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKHR5cGUgPT0gImhpYmVy
bmF0ZSIpIHsKKyAgICAgICAgRXZlbnRMb2coRVZFTlRfWEVOVVNFUl9ISUJFUk5BVEUpOworCisg
ICAgICAgIG1fZGV2aWNlLT5TdG9yZVdyaXRlKCJjb250cm9sL3NodXRkb3duIiwgIiIpOworICAg
ICAgICBBY3F1aXJlU2h1dGRvd25Qcml2aWxlZ2UoKTsKKyAgICAgICAgaWYgKCFTZXRTeXN0ZW1Q
b3dlclN0YXRlKEZBTFNFLCBGQUxTRSkpIHsKKyAgICAgICAgICAgIENYZW5BZ2VudDo6TG9nKCJT
ZXRTeXN0ZW1Qb3dlclN0YXRlIGZhaWxlZCAlMDh4XG4iLCBHZXRMYXN0RXJyb3IoKSk7CisgICAg
ICAgIH0KKyAgICB9IGVsc2UgaWYgKHR5cGUgPT0gInMzIikgeworICAgICAgICBFdmVudExvZyhF
VkVOVF9YRU5VU0VSX1MzKTsKKworICAgICAgICBtX2RldmljZS0+U3RvcmVXcml0ZSgiY29udHJv
bC9zaHV0ZG93biIsICIiKTsKKyAgICAgICAgQWNxdWlyZVNodXRkb3duUHJpdmlsZWdlKCk7Cisg
ICAgICAgIGlmICghU2V0U3VzcGVuZFN0YXRlKEZBTFNFLCBUUlVFLCBGQUxTRSkpIHsKKyAgICAg
ICAgICAgIENYZW5BZ2VudDo6TG9nKCJTZXRTdXNwZW5kU3RhdGUgZmFpbGVkICUwOHhcbiIsIEdl
dExhc3RFcnJvcigpKTsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBDWGVuQWdlbnQ6Ok9u
U3VzcGVuZCgpCit7CisgICAgQ0NyaXRTZWMgY3JpdCgmbV9jcml0KTsKKyAgICBpZiAobV9kZXZp
Y2UgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuOworCisgICAgQ1hlbkFnZW50OjpMb2coIk9uU3Vz
cGVuZCgld3MpXG4iLCBtX2RldmljZS0+UGF0aCgpKTsKKyAgICBFdmVudExvZyhFVkVOVF9YRU5V
U0VSX1VOU1VTUEVOREVEKTsKKworICAgIG1fZGV2aWNlLT5TdG9yZVdyaXRlKCJjb250cm9sL2Zl
YXR1cmUtc2h1dGRvd24iLCAiMSIpOwogfQogCiB2b2lkIENYZW5BZ2VudDo6U2V0U2VydmljZVN0
YXR1cyhEV09SRCBzdGF0ZSwgRFdPUkQgZXhpdCAvKj0gMCovLCBEV09SRCBoaW50IC8qPSAwKi8p
CmRpZmYgLS1naXQgYS9zcmMveGVuYWdlbnQvc2VydmljZS5oIGIvc3JjL3hlbmFnZW50L3NlcnZp
Y2UuaAppbmRleCBhY2M0ZDUyLi5mYjhhMWVlIDEwMDY0NAotLS0gYS9zcmMveGVuYWdlbnQvc2Vy
dmljZS5oCisrKyBiL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmgKQEAgLTY4LDYgKzY4LDEyIEBAIHBy
aXZhdGU6IC8vIHNlcnZpY2UgZXZlbnRzCiAgICAgdm9pZCBPbkRldmljZUV2ZW50KERXT1JELCBM
UFZPSUQpOwogICAgIGJvb2wgU2VydmljZU1haW5Mb29wKCk7CiAKK3ByaXZhdGU6IC8vIGhlbHBl
cnMKKyAgICB2b2lkIEFjcXVpcmVTaHV0ZG93blByaXZpbGVnZSgpOworICAgIHZvaWQgRXZlbnRM
b2coRFdPUkQgZXZ0KTsKKyAgICB2b2lkIE9uU2h1dGRvd24oKTsKKyAgICB2b2lkIE9uU3VzcGVu
ZCgpOworCiBwcml2YXRlOiAvLyBzZXJ2aWNlIHN1cHBvcnQKICAgICB2b2lkIFNldFNlcnZpY2VT
dGF0dXMoRFdPUkQgc3RhdGUsIERXT1JEIGV4aXQgPSAwLCBEV09SRCBoaW50ID0gMCk7CiAgICAg
dm9pZCBXSU5BUEkgX19TZXJ2aWNlTWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpOwpAQCAtNzcs
MTAgKzgzLDE0IEBAIHByaXZhdGU6IC8vIHNlcnZpY2Ugc3VwcG9ydAogICAgIFNFUlZJQ0VfU1RB
VFVTX0hBTkRMRSAgIG1faGFuZGxlOwogICAgIEhBTkRMRSAgICAgICAgICAgICAgICAgIG1fZXZ0
bG9nOwogICAgIEhBTkRMRSAgICAgICAgICAgICAgICAgIG1fc3ZjX3N0b3A7CisgICAgSEFORExF
ICAgICAgICAgICAgICAgICAgbV9ldnRfc2h1dGRvd247CisgICAgSEFORExFICAgICAgICAgICAg
ICAgICAgbV9ldnRfc3VzcGVuZDsKIAogICAgIENEZXZpY2VMaXN0ICAgICAgICAgICAgIG1fZGV2
bGlzdDsKICAgICBDWGVuSWZhY2VEZXZpY2UqICAgICAgICBtX2RldmljZTsKICAgICBDUklUSUNB
TF9TRUNUSU9OICAgICAgICBtX2NyaXQ7CisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgbV9j
dHh0X3NodXRkb3duOworICAgIHZvaWQqICAgICAgICAgICAgICAgICAgIG1fY3R4dF9zdXNwZW5k
OwogfTsKIAogI2VuZGlmCi0tIAoxLjkuNC5tc3lzZ2l0LjEKCgpfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndp
bi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5v
cmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 05 10:38:26 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 05 Jul 2016 10:38:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bKNkG-0005Gk-GI; Tue, 05 Jul 2016 10:38:24 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=987319bd7=owen.smith@citrix.com>)
 id 1bKNkF-0005GP-Df
 for win-pv-devel@lists.xenproject.org; Tue, 05 Jul 2016 10:38:23 +0000
Received: from [193.109.254.147] by server-3.bemta-14.messagelabs.com id
 F2/9A-17627-E1E8B775; Tue, 05 Jul 2016 10:38:22 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrKLMWRWlGSWpSXmKPExsXitHSDva5cX3W
 4wb5lghZ/Fic6MHoc/nCFJYAxijUzLym/IoE1o2vCUvaC7fIVX6b8ZmxgfC7RxcjBISHgL7Gn
 kbmLkZODTUBDYkbnYhYQW0RAXWLf561MIDazgJrE9f1drCDlwgJ2Em09OiBhFgEViZn/WlhBb
 F4BV4nGrTvBWiWAxmxqmMEGYgsJKEl8W/yCGaJGUOLkzCcsECMlJA6+AImDXMAt8bfbfgIjzy
 wkVbOQVC1gZFrFqFGcWlSWWqRraKSXVJSZnlGSm5iZo2toaKKXm1pcnJiempOYVKyXnJ+7iRE
 YHAxAsIPx7DTnQ4ySHExKorwONdXhQnxJ+SmVGYnFGfFFpTmpxYcYZTg4lCR4PXuBcoJFqemp
 FWmZOcAwhUlLcPAoifAyg6R5iwsSc4sz0yFSpxgVpcR5T/UAJQRAEhmleXBtsNi4xCgrJczLC
 HSIEE9BalFuZgmq/CtGcQ5GJWFeDpDxPJl5JXDTXwEtZgJa/NMFbHFJIkJKqoHR4Of+Dd0cl8
 X17zyQn/fgAesXM/9vf3b4iZcdNBLM8ThYUuZ8bZrjlxdtLJum8m8tDp2pt7g6uzX33rRZFxW
 TFFdJBPq5vZxZoBpeknggk7VLi6vrt8EXz4+1stuCjQ0bp7xx28mSodJ0YZ/13xl2KdfucD5k
 vb1tj7EDn+epPXkvDpudlPihxFKckWioxVxUnAgAAk987IgCAAA=
X-Env-Sender: prvs=987319bd7=owen.smith@citrix.com
X-Msg-Ref: server-10.tower-27.messagelabs.com!1467715100!51976083!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: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 34418 invoked from network); 5 Jul 2016 10:38:22 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
 by server-10.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 5 Jul 2016 10:38:22 -0000
X-IronPort-AV: E=Sophos;i="5.26,579,1459814400"; d="scan'208";a="371291280"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 5 Jul 2016 11:38:05 +0100
Message-ID: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 0/6] Replace WMI LiteAgent with IOCTL xenagent
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

UmVtb3ZlcyB0aGUgV01JIExpdGVBZ2VudCBhbmQgcmVwbGFjZXMgaXQgd2l0aCBhIGxpZ2h0d2Vp
Z2h0IApJT0NUTC9TZXR1cEFwaS9SZWdpc3RlckRldmljZU5vdGlmaWNhdGlvbiBiYXNlZCB4ZW5h
Z2VudC4KVGhlIHhlbmFnZW50IHJlZ2lzdGVycyBmb3Igbm90aWZpY2F0aW9uIGZyb20gdGhlIFhl
bklmYWNlIEludGVyZmFjZQpHVUlELCBhbmQgdXNlcyBhIHNpbmdsZSBpbnN0YW5jZSAodGhvdWdo
IGFkZGl0aW9uYWwgaW5zdGFuY2VzIGFyZSAKZGV0ZWN0ZWQsIGFsdGhvdWdoIG5vdCBleHBlY3Rl
ZCB0byBiZSBwcmVzZW50KS4KClRoaXMgcGF0Y2ggc2VyaWVzIHJlbGllcyBvbiBhbiBlYXJsaWVy
IHNlcmllcyB0aGF0IGFkZHMgdGhlIHJlcXVpcmVkCklPQ1RMcyB0byBYZW5JZmFjZS4KCk93ZW4g
U21pdGggKDYpOgogIFJlbW92ZSBMaXRlQWdlbnQsIHJlcGxhY2Ugd2l0aCBib2lsZXJwbGF0ZSB4
ZW5hZ2VudCBzZXJ2aWNlCiAgQWRkIGRldmljZSBsaXN0IHRvIHRyYWNrIFhlbklmYWNlIGRldmlj
ZShzKQogIEFkZCBYZW5JZmFjZURldmljZQogIFRyYWNrIGFjdGl2ZSBkZXZpY2UgaW4gc2Vydmlj
ZSBjbGFzcwogIEFkZCBTdXNwZW5kIGFuZCBTaHV0ZG93biBoYW5kbGVycwogIFNldCBWTSdzIHRp
bWUgYmFzZWQgb24gaG9zdCdzIHRpbWUgZXhwb3NlZCBieSBYZW4KCiBidWlsZC5weSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEwICsKIHNyYy93aW4zMnN0dWJhZ2VudC9XbWlB
Y2Nlc3Nvci5jcHAgICAgICB8IDEzMzEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog
c3JjL3dpbjMyc3R1YmFnZW50L1dtaUFjY2Vzc29yLmggICAgICAgIHwgICA4OCAtLQogc3JjL3dp
bjMyc3R1YmFnZW50L1hTQWNjZXNzb3IuY3BwICAgICAgIHwgIDIzMCAtLS0tLS0KIHNyYy93aW4z
MnN0dWJhZ2VudC9YU0FjY2Vzc29yLmggICAgICAgICB8ICAxMjYgLS0tCiBzcmMvd2luMzJzdHVi
YWdlbnQvWFNlcnZpY2UuY3BwICAgICAgICAgfCAxMDQ0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQogc3JjL3dpbjMyc3R1YmFnZW50L1hTZXJ2aWNlLmggICAgICAgICAgIHwgICA1NCAtLQogc3Jj
L3dpbjMyc3R1YmFnZW50L2Vycm9ycy5jcHAgICAgICAgICAgIHwgIDEwMiAtLS0KIHNyYy93aW4z
MnN0dWJhZ2VudC9tZXNzYWdlcy5tYyAgICAgICAgICB8ICAgNjYgLS0KIHNyYy93aW4zMnN0dWJh
Z2VudC9zdGRhZnguY3BwICAgICAgICAgICB8ICAgMzkgLQogc3JjL3dpbjMyc3R1YmFnZW50L3N0
ZGFmeC5oICAgICAgICAgICAgIHwgICA0MyAtCiBzcmMvd2luMzJzdHViYWdlbnQvdzMyeGFnZW50
LnJjICAgICAgICAgfCAgIDYwIC0tCiBzcmMvd2luMzJzdHViYWdlbnQveGVuLmljbyAgICAgICAg
ICAgICAgfCAgQmluIDI1MjE0IC0+IDAgYnl0ZXMKIHNyYy94ZW5hZ2VudC9kZXZpY2VsaXN0LmNw
cCAgICAgICAgICAgICB8ICAyOTYgKysrKysrKwogc3JjL3hlbmFnZW50L2RldmljZWxpc3QuaCAg
ICAgICAgICAgICAgIHwgICA5MiArKysKIHNyYy94ZW5hZ2VudC9tZXNzYWdlcy5tYyAgICAgICAg
ICAgICAgICB8ICAgNjYgKysKIHNyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcCAgICAgICAgICAgICAg
ICB8ICA1NTkgKysrKysrKysrKysrKwogc3JjL3hlbmFnZW50L3NlcnZpY2UuaCAgICAgICAgICAg
ICAgICAgIHwgIDEwMCArKysKIHNyYy94ZW5hZ2VudC94ZW4uaWNvICAgICAgICAgICAgICAgICAg
ICB8ICBCaW4gMCAtPiAyNTIxNCBieXRlcwogc3JjL3hlbmFnZW50L3hlbmFnZW50LnJjICAgICAg
ICAgICAgICAgIHwgICA2MCArKwogc3JjL3hlbmFnZW50L3hlbmlmYWNlZGV2aWNlLmNwcCAgICAg
ICAgIHwgIDE1MyArKysrCiBzcmMveGVuYWdlbnQveGVuaWZhY2VkZXZpY2UuaCAgICAgICAgICAg
fCAgIDY0ICsrCiBzcmMveGVuaWZhY2UuaW5mICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE2
ICstCiB2czIwMTIvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qICAgICAgfCAgMjUxIC0tLS0t
LQogdnMyMDEyL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvai51c2VyIHwgICAgNCAtCiB2czIw
MTIveGVuYWdlbnQveGVuYWdlbnQudmN4cHJvaiAgICAgICAgfCAgMjIxICsrKysrCiB2czIwMTIv
eGVuYWdlbnQveGVuYWdlbnQudmN4cHJvai51c2VyICAgfCAgICA0ICsKIHZzMjAxMi94ZW5pZmFj
ZS5zbG4gICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKy0KIHZzMjAxMy9saXRlYWdlbnQvTGl0
ZUFnZW50LnZjeHByb2ogICAgICB8ICAyNTYgLS0tLS0tCiB2czIwMTMvbGl0ZWFnZW50L0xpdGVB
Z2VudC52Y3hwcm9qLnVzZXIgfCAgICA0IC0KIHZzMjAxMy94ZW5hZ2VudC94ZW5hZ2VudC52Y3hw
cm9qICAgICAgICB8ICAyMjUgKysrKysrCiB2czIwMTMveGVuYWdlbnQveGVuYWdlbnQudmN4cHJv
ai51c2VyICAgfCAgICA0ICsKIHZzMjAxMy94ZW5pZmFjZS5zbG4gICAgICAgICAgICAgICAgICAg
ICB8ICAgIDIgKy0KIDMzIGZpbGVzIGNoYW5nZWQsIDE4NjQgaW5zZXJ0aW9ucygrKSwgMzcwOCBk
ZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvd2luMzJzdHViYWdlbnQvV21pQWNj
ZXNzb3IuY3BwCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3dpbjMyc3R1YmFnZW50L1dtaUFjY2Vz
c29yLmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvd2luMzJzdHViYWdlbnQvWFNBY2Nlc3Nvci5j
cHAKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvd2luMzJzdHViYWdlbnQvWFNBY2Nlc3Nvci5oCiBk
ZWxldGUgbW9kZSAxMDA2NDQgc3JjL3dpbjMyc3R1YmFnZW50L1hTZXJ2aWNlLmNwcAogZGVsZXRl
IG1vZGUgMTAwNjQ0IHNyYy93aW4zMnN0dWJhZ2VudC9YU2VydmljZS5oCiBkZWxldGUgbW9kZSAx
MDA2NDQgc3JjL3dpbjMyc3R1YmFnZW50L2Vycm9ycy5jcHAKIGRlbGV0ZSBtb2RlIDEwMDY0NCBz
cmMvd2luMzJzdHViYWdlbnQvbWVzc2FnZXMubWMKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvd2lu
MzJzdHViYWdlbnQvc3RkYWZ4LmNwcAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy93aW4zMnN0dWJh
Z2VudC9zdGRhZnguaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy93aW4zMnN0dWJhZ2VudC93MzJ4
YWdlbnQucmMKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvd2luMzJzdHViYWdlbnQveGVuLmljbwog
Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy94ZW5hZ2VudC9kZXZpY2VsaXN0LmNwcAogY3JlYXRlIG1v
ZGUgMTAwNjQ0IHNyYy94ZW5hZ2VudC9kZXZpY2VsaXN0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz
cmMveGVuYWdlbnQvbWVzc2FnZXMubWMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMveGVuYWdlbnQv
c2VydmljZS5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMveGVuYWdlbnQvc2VydmljZS5oCiBj
cmVhdGUgbW9kZSAxMDA2NDQgc3JjL3hlbmFnZW50L3hlbi5pY28KIGNyZWF0ZSBtb2RlIDEwMDY0
NCBzcmMveGVuYWdlbnQveGVuYWdlbnQucmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMveGVuYWdl
bnQveGVuaWZhY2VkZXZpY2UuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3hlbmFnZW50L3hl
bmlmYWNlZGV2aWNlLmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCB2czIwMTIvbGl0ZWFnZW50L0xpdGVB
Z2VudC52Y3hwcm9qCiBkZWxldGUgbW9kZSAxMDA2NDQgdnMyMDEyL2xpdGVhZ2VudC9MaXRlQWdl
bnQudmN4cHJvai51c2VyCiBjcmVhdGUgbW9kZSAxMDA2NDQgdnMyMDEyL3hlbmFnZW50L3hlbmFn
ZW50LnZjeHByb2oKIGNyZWF0ZSBtb2RlIDEwMDY0NCB2czIwMTIveGVuYWdlbnQveGVuYWdlbnQu
dmN4cHJvai51c2VyCiBkZWxldGUgbW9kZSAxMDA2NDQgdnMyMDEzL2xpdGVhZ2VudC9MaXRlQWdl
bnQudmN4cHJvagogZGVsZXRlIG1vZGUgMTAwNjQ0IHZzMjAxMy9saXRlYWdlbnQvTGl0ZUFnZW50
LnZjeHByb2oudXNlcgogY3JlYXRlIG1vZGUgMTAwNjQ0IHZzMjAxMy94ZW5hZ2VudC94ZW5hZ2Vu
dC52Y3hwcm9qCiBjcmVhdGUgbW9kZSAxMDA2NDQgdnMyMDEzL3hlbmFnZW50L3hlbmFnZW50LnZj
eHByb2oudXNlcgoKLS0gCjEuOS40Lm1zeXNnaXQuMQoKCl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9j
Z2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 05 10:38:26 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 05 Jul 2016 10:38:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bKNkH-0005HB-HM; Tue, 05 Jul 2016 10:38:25 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=987319bd7=owen.smith@citrix.com>)
 id 1bKNkF-0005GO-R6
 for win-pv-devel@lists.xenproject.org; Tue, 05 Jul 2016 10:38:23 +0000
Received: from [85.158.143.35] by server-2.bemta-6.messagelabs.com id
 51/36-11548-E1E8B775; Tue, 05 Jul 2016 10:38:22 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuplkeJIrShJLcpLzFFi42JxWrohUleurzr
 coHEBt8WfxYkOjB6HP1xhCWCMYs3MS8qvSGDNeLW/tOCzaEX73imsDYxtQl2MnBwSAv4S+7cu
 ZQKx2QQ0JGZ0LmYBsUUE1CX2fd4KFmcWUJO4vr+LFcQWFrCUuHf9NVicRUBF4vyTHjYQm1fAV
 WJD52EmiJkaEpsaZoDFOQXcJBq3rwHrFQKqadh/iRHCVpL4tvgFM0SvoMTJmU9YIHZJSBx8AR
 LnAJrDLfG3234CI98sJFWzkFQtYGRaxahenFpUllqka6SXVJSZnlGSm5iZo2toYKaXm1pcnJi
 empOYVKyXnJ+7iREYTAxAsINx2V+nQ4ySHExKorwONdXhQnxJ+SmVGYnFGfFFpTmpxYcYZTg4
 lCR4r/YA5QSLUtNTK9Iyc4BhDZOW4OBREuFl7gVK8xYXJOYWZ6ZDpE4xKkqJ89qCJARAEhmle
 XBtsFi6xCgrJczLCHSIEE9BalFuZgmq/CtGcQ5GJWHeUyDbeTLzSuCmvwJazAS0+KcL2OKSRI
 SUVAMjv97RhTW6eW0tc6+42m23nrU/3Op+kp75KrGPdb1V9r82HGveJPeGXUXC8er5sE9OfEb
 ZsRmGD1bzyJ9NWn7s6PzOGY5SwTG/m93ZGpY28OY/CM4Vtd2m65dk/TNletqv938ir8ZuYJjr
 fZOv0c3xcfvGPXYJi6/cfL/PujzO5MNmJkWLn8lKLMUZiYZazEXFiQBfM2BjoAIAAA==
X-Env-Sender: prvs=987319bd7=owen.smith@citrix.com
X-Msg-Ref: server-10.tower-21.messagelabs.com!1467715100!22252305!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13232 invoked from network); 5 Jul 2016 10:38:21 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-10.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 5 Jul 2016 10:38:21 -0000
X-IronPort-AV: E=Sophos;i="5.26,579,1459814400"; d="scan'208";a="364363847"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 5 Jul 2016 11:38:09 +0100
Message-ID: <1467715091-13216-5-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
References: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 4/6] Track active device in service class
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

SG9sZCBhIENyaXRpY2FsU2VjdGlvbiBwcm90ZWN0ZWQgbG9jYWwgcG9pbnRlciB0byB0aGUgWGVu
SWZhY2VEZXZpY2UKdGhhdCBpcyBjdXJyZW50bHkgYXZhaWxhYmxlLiBUaGlzIHdpbGwgYmUgdXNl
ZCBmb3IgYWxsIGFjY2Vzc2VzIHRvCnRoZSBpbnRlcmZhY2VzIHByb3ZpZGVkLgoKU2lnbmVkLW9m
Zi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNyYy94ZW5hZ2Vu
dC9zZXJ2aWNlLmNwcCB8IDM1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiBz
cmMveGVuYWdlbnQvc2VydmljZS5oICAgfCAgMiArKwogMiBmaWxlcyBjaGFuZ2VkLCAzNiBpbnNl
cnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3hlbmFnZW50L3NlcnZp
Y2UuY3BwIGIvc3JjL3hlbmFnZW50L3NlcnZpY2UuY3BwCmluZGV4IGJkMDg1ZjYuLjg0Yjg4MTQg
MTAwNjQ0Ci0tLSBhL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcAorKysgYi9zcmMveGVuYWdlbnQv
c2VydmljZS5jcHAKQEAgLTM4LDYgKzM4LDI0IEBACiAjaW5jbHVkZSAic2VydmljZS5oIgogI2lu
Y2x1ZGUgIm1lc3NhZ2VzLmgiCiAKK2NsYXNzIENDcml0U2VjCit7CitwdWJsaWM6CisgICAgQ0Ny
aXRTZWMoTFBDUklUSUNBTF9TRUNUSU9OIGNyaXQpOworICAgIH5DQ3JpdFNlYygpOworcHJpdmF0
ZToKKyAgICBMUENSSVRJQ0FMX1NFQ1RJT04gbV9jcml0OworfTsKKworQ0NyaXRTZWM6OkNDcml0
U2VjKExQQ1JJVElDQUxfU0VDVElPTiBjcml0KSA6IG1fY3JpdChjcml0KQoreworICAgIEVudGVy
Q3JpdGljYWxTZWN0aW9uKG1fY3JpdCk7Cit9CitDQ3JpdFNlYzo6fkNDcml0U2VjKCkKK3sKKyAg
ICBMZWF2ZUNyaXRpY2FsU2VjdGlvbihtX2NyaXQpOworfQorCiBpbnQgX19zdGRjYWxsIFdpbk1h
aW4oSElOU1RBTkNFIGhJbnN0YW5jZSwgSElOU1RBTkNFIGlnbm9yZSwgTFBTVFIgbHBDbWRMaW5l
LCBpbnQgbkNtZFNob3cpCiB7CiAgICAgaWYgKHN0cmxlbihscENtZExpbmUpICE9IDApIHsKQEAg
LTE1MSw3ICsxNjksOCBAQCBzdGF0aWMgQ1hlbkFnZW50IHNfc2VydmljZTsKICAgICByZXR1cm4g
c19zZXJ2aWNlLl9fU2VydmljZUNvbnRyb2xIYW5kbGVyRXgocmVxLCBldnQsIGRhdGEsIGN0eHQp
OwogfQogCi1DWGVuQWdlbnQ6OkNYZW5BZ2VudCgpIDogbV9oYW5kbGUoTlVMTCksIG1fZXZ0bG9n
KE5VTEwpLCBtX2Rldmxpc3QoR1VJRF9JTlRFUkZBQ0VfWEVOSUZBQ0UpCitDWGVuQWdlbnQ6OkNY
ZW5BZ2VudCgpIDogbV9oYW5kbGUoTlVMTCksIG1fZXZ0bG9nKE5VTEwpLAorICAgIG1fZGV2bGlz
dChHVUlEX0lOVEVSRkFDRV9YRU5JRkFDRSksIG1fZGV2aWNlKE5VTEwpCiB7CiAgICAgbV9zdGF0
dXMuZHdTZXJ2aWNlVHlwZSAgICAgICAgPSBTRVJWSUNFX1dJTjMyOwogICAgIG1fc3RhdHVzLmR3
Q3VycmVudFN0YXRlICAgICAgID0gU0VSVklDRV9TVEFSVF9QRU5ESU5HOwpAQCAtMTYyLDExICsx
ODEsMTUgQEAgQ1hlbkFnZW50OjpDWGVuQWdlbnQoKSA6IG1faGFuZGxlKE5VTEwpLCBtX2V2dGxv
ZyhOVUxMKSwgbV9kZXZsaXN0KEdVSURfSU5URVJGQUMKICAgICBtX3N0YXR1cy5kd1dhaXRIaW50
ICAgICAgICAgICA9IDA7CiAKICAgICBtX3N2Y19zdG9wID0gQ3JlYXRlRXZlbnQoRkFMU0UsIE5V
TEwsIE5VTEwsIEZBTFNFKTsKKworICAgIEluaXRpYWxpemVDcml0aWNhbFNlY3Rpb24oJm1fY3Jp
dCk7CiB9CiAKIENYZW5BZ2VudDo6fkNYZW5BZ2VudCgpCiB7CiAgICAgQ2xvc2VIYW5kbGUobV9z
dmNfc3RvcCk7CisKKyAgICBEZWxldGVDcml0aWNhbFNlY3Rpb24oJm1fY3JpdCk7CiB9CiAKIC8q
dmlydHVhbCovIENEZXZpY2UqIENYZW5BZ2VudDo6Q3JlYXRlKGNvbnN0IHdjaGFyX3QqIHBhdGgp
CkBAIC0xNzcsMTEgKzIwMCwyMSBAQCBDWGVuQWdlbnQ6On5DWGVuQWdlbnQoKQogLyp2aXJ0dWFs
Ki8gdm9pZCBDWGVuQWdlbnQ6Ok9uRGV2aWNlQWRkZWQoQ0RldmljZSogZGV2KQogewogICAgIENY
ZW5BZ2VudDo6TG9nKCJPbkRldmljZUFkZGVkKCV3cylcbiIsIGRldi0+UGF0aCgpKTsKKworICAg
IENDcml0U2VjIGNyaXQoJm1fY3JpdCk7CisgICAgaWYgKG1fZGV2aWNlID09IE5VTEwpIHsKKyAg
ICAgICAgbV9kZXZpY2UgPSAoQ1hlbklmYWNlRGV2aWNlKilkZXY7CisgICAgfQogfQogCiAvKnZp
cnR1YWwqLyB2b2lkIENYZW5BZ2VudDo6T25EZXZpY2VSZW1vdmVkKENEZXZpY2UqIGRldikKIHsK
ICAgICBDWGVuQWdlbnQ6OkxvZygiT25EZXZpY2VSZW1vdmVkKCV3cylcbiIsIGRldi0+UGF0aCgp
KTsKKworICAgIENDcml0U2VjIGNyaXQoJm1fY3JpdCk7CisgICAgaWYgKG1fZGV2aWNlID09IGRl
dikgeworICAgICAgICBtX2RldmljZSA9IE5VTEw7CisgICAgfQogfQogCiB2b2lkIENYZW5BZ2Vu
dDo6T25TZXJ2aWNlU3RhcnQoKQpkaWZmIC0tZ2l0IGEvc3JjL3hlbmFnZW50L3NlcnZpY2UuaCBi
L3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmgKaW5kZXggZTMxZGNmZC4uYWNjNGQ1MiAxMDA2NDQKLS0t
IGEvc3JjL3hlbmFnZW50L3NlcnZpY2UuaAorKysgYi9zcmMveGVuYWdlbnQvc2VydmljZS5oCkBA
IC03OSw2ICs3OSw4IEBAIHByaXZhdGU6IC8vIHNlcnZpY2Ugc3VwcG9ydAogICAgIEhBTkRMRSAg
ICAgICAgICAgICAgICAgIG1fc3ZjX3N0b3A7CiAKICAgICBDRGV2aWNlTGlzdCAgICAgICAgICAg
ICBtX2Rldmxpc3Q7CisgICAgQ1hlbklmYWNlRGV2aWNlKiAgICAgICAgbV9kZXZpY2U7CisgICAg
Q1JJVElDQUxfU0VDVElPTiAgICAgICAgbV9jcml0OwogfTsKIAogI2VuZGlmCi0tIAoxLjkuNC5t
c3lzZ2l0LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Xwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0
Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZv
L3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 05 10:38:26 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 05 Jul 2016 10:38:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bKNkG-0005Gk-GI; Tue, 05 Jul 2016 10:38:24 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=987319bd7=owen.smith@citrix.com>)
 id 1bKNkF-0005GP-Df
 for win-pv-devel@lists.xenproject.org; Tue, 05 Jul 2016 10:38:23 +0000
Received: from [193.109.254.147] by server-3.bemta-14.messagelabs.com id
 F2/9A-17627-E1E8B775; Tue, 05 Jul 2016 10:38:22 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrKLMWRWlGSWpSXmKPExsXitHSDva5cX3W
 4wb5lghZ/Fic6MHoc/nCFJYAxijUzLym/IoE1o2vCUvaC7fIVX6b8ZmxgfC7RxcjBISHgL7Gn
 kbmLkZODTUBDYkbnYhYQW0RAXWLf561MIDazgJrE9f1drCDlwgJ2Em09OiBhFgEViZn/WlhBb
 F4BV4nGrTvBWiWAxmxqmMEGYgsJKEl8W/yCGaJGUOLkzCcsECMlJA6+AImDXMAt8bfbfgIjzy
 wkVbOQVC1gZFrFqFGcWlSWWqRraKSXVJSZnlGSm5iZo2toaKKXm1pcnJiempOYVKyXnJ+7iRE
 YHAxAsIPx7DTnQ4ySHExKorwONdXhQnxJ+SmVGYnFGfFFpTmpxYcYZTg4lCR4PXuBcoJFqemp
 FWmZOcAwhUlLcPAoifAyg6R5iwsSc4sz0yFSpxgVpcR5T/UAJQRAEhmleXBtsNi4xCgrJczLC
 HSIEE9BalFuZgmq/CtGcQ5GJWFeDpDxPJl5JXDTXwEtZgJa/NMFbHFJIkJKqoHR4Of+Dd0cl8
 X17zyQn/fgAesXM/9vf3b4iZcdNBLM8ThYUuZ8bZrjlxdtLJum8m8tDp2pt7g6uzX33rRZFxW
 TFFdJBPq5vZxZoBpeknggk7VLi6vrt8EXz4+1stuCjQ0bp7xx28mSodJ0YZ/13xl2KdfucD5k
 vb1tj7EDn+epPXkvDpudlPihxFKckWioxVxUnAgAAk987IgCAAA=
X-Env-Sender: prvs=987319bd7=owen.smith@citrix.com
X-Msg-Ref: server-10.tower-27.messagelabs.com!1467715100!51976083!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: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 34418 invoked from network); 5 Jul 2016 10:38:22 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
 by server-10.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 5 Jul 2016 10:38:22 -0000
X-IronPort-AV: E=Sophos;i="5.26,579,1459814400"; d="scan'208";a="371291280"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 5 Jul 2016 11:38:05 +0100
Message-ID: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 0/6] Replace WMI LiteAgent with IOCTL xenagent
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

UmVtb3ZlcyB0aGUgV01JIExpdGVBZ2VudCBhbmQgcmVwbGFjZXMgaXQgd2l0aCBhIGxpZ2h0d2Vp
Z2h0IApJT0NUTC9TZXR1cEFwaS9SZWdpc3RlckRldmljZU5vdGlmaWNhdGlvbiBiYXNlZCB4ZW5h
Z2VudC4KVGhlIHhlbmFnZW50IHJlZ2lzdGVycyBmb3Igbm90aWZpY2F0aW9uIGZyb20gdGhlIFhl
bklmYWNlIEludGVyZmFjZQpHVUlELCBhbmQgdXNlcyBhIHNpbmdsZSBpbnN0YW5jZSAodGhvdWdo
IGFkZGl0aW9uYWwgaW5zdGFuY2VzIGFyZSAKZGV0ZWN0ZWQsIGFsdGhvdWdoIG5vdCBleHBlY3Rl
ZCB0byBiZSBwcmVzZW50KS4KClRoaXMgcGF0Y2ggc2VyaWVzIHJlbGllcyBvbiBhbiBlYXJsaWVy
IHNlcmllcyB0aGF0IGFkZHMgdGhlIHJlcXVpcmVkCklPQ1RMcyB0byBYZW5JZmFjZS4KCk93ZW4g
U21pdGggKDYpOgogIFJlbW92ZSBMaXRlQWdlbnQsIHJlcGxhY2Ugd2l0aCBib2lsZXJwbGF0ZSB4
ZW5hZ2VudCBzZXJ2aWNlCiAgQWRkIGRldmljZSBsaXN0IHRvIHRyYWNrIFhlbklmYWNlIGRldmlj
ZShzKQogIEFkZCBYZW5JZmFjZURldmljZQogIFRyYWNrIGFjdGl2ZSBkZXZpY2UgaW4gc2Vydmlj
ZSBjbGFzcwogIEFkZCBTdXNwZW5kIGFuZCBTaHV0ZG93biBoYW5kbGVycwogIFNldCBWTSdzIHRp
bWUgYmFzZWQgb24gaG9zdCdzIHRpbWUgZXhwb3NlZCBieSBYZW4KCiBidWlsZC5weSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEwICsKIHNyYy93aW4zMnN0dWJhZ2VudC9XbWlB
Y2Nlc3Nvci5jcHAgICAgICB8IDEzMzEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog
c3JjL3dpbjMyc3R1YmFnZW50L1dtaUFjY2Vzc29yLmggICAgICAgIHwgICA4OCAtLQogc3JjL3dp
bjMyc3R1YmFnZW50L1hTQWNjZXNzb3IuY3BwICAgICAgIHwgIDIzMCAtLS0tLS0KIHNyYy93aW4z
MnN0dWJhZ2VudC9YU0FjY2Vzc29yLmggICAgICAgICB8ICAxMjYgLS0tCiBzcmMvd2luMzJzdHVi
YWdlbnQvWFNlcnZpY2UuY3BwICAgICAgICAgfCAxMDQ0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQogc3JjL3dpbjMyc3R1YmFnZW50L1hTZXJ2aWNlLmggICAgICAgICAgIHwgICA1NCAtLQogc3Jj
L3dpbjMyc3R1YmFnZW50L2Vycm9ycy5jcHAgICAgICAgICAgIHwgIDEwMiAtLS0KIHNyYy93aW4z
MnN0dWJhZ2VudC9tZXNzYWdlcy5tYyAgICAgICAgICB8ICAgNjYgLS0KIHNyYy93aW4zMnN0dWJh
Z2VudC9zdGRhZnguY3BwICAgICAgICAgICB8ICAgMzkgLQogc3JjL3dpbjMyc3R1YmFnZW50L3N0
ZGFmeC5oICAgICAgICAgICAgIHwgICA0MyAtCiBzcmMvd2luMzJzdHViYWdlbnQvdzMyeGFnZW50
LnJjICAgICAgICAgfCAgIDYwIC0tCiBzcmMvd2luMzJzdHViYWdlbnQveGVuLmljbyAgICAgICAg
ICAgICAgfCAgQmluIDI1MjE0IC0+IDAgYnl0ZXMKIHNyYy94ZW5hZ2VudC9kZXZpY2VsaXN0LmNw
cCAgICAgICAgICAgICB8ICAyOTYgKysrKysrKwogc3JjL3hlbmFnZW50L2RldmljZWxpc3QuaCAg
ICAgICAgICAgICAgIHwgICA5MiArKysKIHNyYy94ZW5hZ2VudC9tZXNzYWdlcy5tYyAgICAgICAg
ICAgICAgICB8ICAgNjYgKysKIHNyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcCAgICAgICAgICAgICAg
ICB8ICA1NTkgKysrKysrKysrKysrKwogc3JjL3hlbmFnZW50L3NlcnZpY2UuaCAgICAgICAgICAg
ICAgICAgIHwgIDEwMCArKysKIHNyYy94ZW5hZ2VudC94ZW4uaWNvICAgICAgICAgICAgICAgICAg
ICB8ICBCaW4gMCAtPiAyNTIxNCBieXRlcwogc3JjL3hlbmFnZW50L3hlbmFnZW50LnJjICAgICAg
ICAgICAgICAgIHwgICA2MCArKwogc3JjL3hlbmFnZW50L3hlbmlmYWNlZGV2aWNlLmNwcCAgICAg
ICAgIHwgIDE1MyArKysrCiBzcmMveGVuYWdlbnQveGVuaWZhY2VkZXZpY2UuaCAgICAgICAgICAg
fCAgIDY0ICsrCiBzcmMveGVuaWZhY2UuaW5mICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE2
ICstCiB2czIwMTIvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qICAgICAgfCAgMjUxIC0tLS0t
LQogdnMyMDEyL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvai51c2VyIHwgICAgNCAtCiB2czIw
MTIveGVuYWdlbnQveGVuYWdlbnQudmN4cHJvaiAgICAgICAgfCAgMjIxICsrKysrCiB2czIwMTIv
eGVuYWdlbnQveGVuYWdlbnQudmN4cHJvai51c2VyICAgfCAgICA0ICsKIHZzMjAxMi94ZW5pZmFj
ZS5zbG4gICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKy0KIHZzMjAxMy9saXRlYWdlbnQvTGl0
ZUFnZW50LnZjeHByb2ogICAgICB8ICAyNTYgLS0tLS0tCiB2czIwMTMvbGl0ZWFnZW50L0xpdGVB
Z2VudC52Y3hwcm9qLnVzZXIgfCAgICA0IC0KIHZzMjAxMy94ZW5hZ2VudC94ZW5hZ2VudC52Y3hw
cm9qICAgICAgICB8ICAyMjUgKysrKysrCiB2czIwMTMveGVuYWdlbnQveGVuYWdlbnQudmN4cHJv
ai51c2VyICAgfCAgICA0ICsKIHZzMjAxMy94ZW5pZmFjZS5zbG4gICAgICAgICAgICAgICAgICAg
ICB8ICAgIDIgKy0KIDMzIGZpbGVzIGNoYW5nZWQsIDE4NjQgaW5zZXJ0aW9ucygrKSwgMzcwOCBk
ZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvd2luMzJzdHViYWdlbnQvV21pQWNj
ZXNzb3IuY3BwCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3dpbjMyc3R1YmFnZW50L1dtaUFjY2Vz
c29yLmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvd2luMzJzdHViYWdlbnQvWFNBY2Nlc3Nvci5j
cHAKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvd2luMzJzdHViYWdlbnQvWFNBY2Nlc3Nvci5oCiBk
ZWxldGUgbW9kZSAxMDA2NDQgc3JjL3dpbjMyc3R1YmFnZW50L1hTZXJ2aWNlLmNwcAogZGVsZXRl
IG1vZGUgMTAwNjQ0IHNyYy93aW4zMnN0dWJhZ2VudC9YU2VydmljZS5oCiBkZWxldGUgbW9kZSAx
MDA2NDQgc3JjL3dpbjMyc3R1YmFnZW50L2Vycm9ycy5jcHAKIGRlbGV0ZSBtb2RlIDEwMDY0NCBz
cmMvd2luMzJzdHViYWdlbnQvbWVzc2FnZXMubWMKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvd2lu
MzJzdHViYWdlbnQvc3RkYWZ4LmNwcAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy93aW4zMnN0dWJh
Z2VudC9zdGRhZnguaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy93aW4zMnN0dWJhZ2VudC93MzJ4
YWdlbnQucmMKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvd2luMzJzdHViYWdlbnQveGVuLmljbwog
Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy94ZW5hZ2VudC9kZXZpY2VsaXN0LmNwcAogY3JlYXRlIG1v
ZGUgMTAwNjQ0IHNyYy94ZW5hZ2VudC9kZXZpY2VsaXN0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz
cmMveGVuYWdlbnQvbWVzc2FnZXMubWMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMveGVuYWdlbnQv
c2VydmljZS5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMveGVuYWdlbnQvc2VydmljZS5oCiBj
cmVhdGUgbW9kZSAxMDA2NDQgc3JjL3hlbmFnZW50L3hlbi5pY28KIGNyZWF0ZSBtb2RlIDEwMDY0
NCBzcmMveGVuYWdlbnQveGVuYWdlbnQucmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMveGVuYWdl
bnQveGVuaWZhY2VkZXZpY2UuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3hlbmFnZW50L3hl
bmlmYWNlZGV2aWNlLmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCB2czIwMTIvbGl0ZWFnZW50L0xpdGVB
Z2VudC52Y3hwcm9qCiBkZWxldGUgbW9kZSAxMDA2NDQgdnMyMDEyL2xpdGVhZ2VudC9MaXRlQWdl
bnQudmN4cHJvai51c2VyCiBjcmVhdGUgbW9kZSAxMDA2NDQgdnMyMDEyL3hlbmFnZW50L3hlbmFn
ZW50LnZjeHByb2oKIGNyZWF0ZSBtb2RlIDEwMDY0NCB2czIwMTIveGVuYWdlbnQveGVuYWdlbnQu
dmN4cHJvai51c2VyCiBkZWxldGUgbW9kZSAxMDA2NDQgdnMyMDEzL2xpdGVhZ2VudC9MaXRlQWdl
bnQudmN4cHJvagogZGVsZXRlIG1vZGUgMTAwNjQ0IHZzMjAxMy9saXRlYWdlbnQvTGl0ZUFnZW50
LnZjeHByb2oudXNlcgogY3JlYXRlIG1vZGUgMTAwNjQ0IHZzMjAxMy94ZW5hZ2VudC94ZW5hZ2Vu
dC52Y3hwcm9qCiBjcmVhdGUgbW9kZSAxMDA2NDQgdnMyMDEzL3hlbmFnZW50L3hlbmFnZW50LnZj
eHByb2oudXNlcgoKLS0gCjEuOS40Lm1zeXNnaXQuMQoKCl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9j
Z2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 05 10:38:26 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 05 Jul 2016 10:38:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bKNkH-0005HL-II; Tue, 05 Jul 2016 10:38:25 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=987319bd7=owen.smith@citrix.com>)
 id 1bKNkG-0005GW-Bx
 for win-pv-devel@lists.xenproject.org; Tue, 05 Jul 2016 10:38:24 +0000
Received: from [85.158.143.35] by server-3.bemta-6.messagelabs.com id
 76/8F-22092-F1E8B775; Tue, 05 Jul 2016 10:38:23 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupjkeJIrShJLcpLzFFi42JxWrohUleurzr
 c4MNva4s/ixMdGD0Of7jCEsAYxZqZl5RfkcCacW/rJcaCQ9YV9zvmszcwvtPuYuTkkBDwl9h2
 7C8LiM0moCExo3MxmC0ioC6x7/NWJhCbWUBN4vr+LlYQW1jATGLb1FfsIDaLgIrEq6WdYDW8A
 q4SL9ZuZ4SYqSGxqWEGG4jNKeAm0bh9DVivEFBNw/5LjBC2ksS3xS+YIXoFJU7OfMICsUtC4u
 ALkDgH0Bxuib/d9hMY+WYhqZqFpGoBI9MqRvXi1KKy1CJdI72kosz0jJLcxMwcXUMDM73c1OL
 ixPTUnMSkYr3k/NxNjMBwYgCCHYzL/jodYpTkYFIS5XWoqQ4X4kvKT6nMSCzOiC8qzUktPsQo
 w8GhJMF7tQcoJ1iUmp5akZaZAwxsmLQEB4+SCC9zL1Cat7ggMbc4Mx0idYpRUUqc1xYkIQCSy
 CjNg2uDRdMlRlkpYV5GoEOEeApSi3IzS1DlXzGKczAqCfOeAtnOk5lXAjf9FdBiJqDFP13AFp
 ckIqSkGhjXNsz0e+799dervFUVMk/lZ08teVW/MqJtp/hZ3k+le47k/ox3klmyVlT3Efc61b5
 z/GuPHEsWS5iy7vNpOc69q4UWmjcJHWntqar7vVP6QsV2hykyH9OeqYSYS6pdaH/l+Mt0d1Wq
 8JQVWaXSrZMMta3k4pNVO0MOdElmnuS2P2iwwjNya4YSS3FGoqEWc1FxIgAMwPe4oQIAAA==
X-Env-Sender: prvs=987319bd7=owen.smith@citrix.com
X-Msg-Ref: server-10.tower-21.messagelabs.com!1467715100!22252305!2
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13274 invoked from network); 5 Jul 2016 10:38:22 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-10.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 5 Jul 2016 10:38:22 -0000
X-IronPort-AV: E=Sophos;i="5.26,579,1459814400"; d="scan'208";a="364363848"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 5 Jul 2016 11:38:10 +0100
Message-ID: <1467715091-13216-6-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
References: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 5/6] Add Suspend and Shutdown handlers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

U3VzcGVuZCBuZWVkcyB0byByZS1hZHZlcnRpc2UgdGhlIHNodXRkb3duIGZlYXR1cmUKU2h1dGRv
d24gcmVzcG9uZHMgdG8gY29udHJvbFxzaHV0ZG93biB0byBpc3N1ZSBhIHNodXRkb3duLCByZWJv
b3QsCmhpYmVybmF0ZSBvciBTMyB0cmFuc2l0aW9uLgpTdWl0YWJsZSBldmVudCBsb2cgZW50cmll
cyBhcmUgYWRkZWQgd2hlbiB0aGVzZSBldmVudHMgYXJlIHRyaWdnZXJlZC4KClNpZ25lZC1vZmYt
Ynk6IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4KLS0tCiBzcmMveGVuYWdlbnQv
c2VydmljZS5jcHAgfCAxNDcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKy0KIHNyYy94ZW5hZ2VudC9zZXJ2aWNlLmggICB8ICAxMCArKysrCiAyIGZpbGVzIGNo
YW5nZWQsIDE1NCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny
Yy94ZW5hZ2VudC9zZXJ2aWNlLmNwcCBiL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcAppbmRleCA4
NGI4ODE0Li4zZTYyMWViIDEwMDY0NAotLS0gYS9zcmMveGVuYWdlbnQvc2VydmljZS5jcHAKKysr
IGIvc3JjL3hlbmFnZW50L3NlcnZpY2UuY3BwCkBAIC0zMiw2ICszMiw4IEBACiAjZGVmaW5lIElO
SVRHVUlECiAjaW5jbHVkZSA8d2luZG93cy5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVk
ZSA8cG93cnByb2YuaD4KKyNpbmNsdWRlIDx3aW51c2VyLmg+CiAKICNpbmNsdWRlIDx4ZW5pZmFj
ZV9pb2N0bHMuaD4KIApAQCAtMTcwLDcgKzE3Miw4IEBAIHN0YXRpYyBDWGVuQWdlbnQgc19zZXJ2
aWNlOwogfQogCiBDWGVuQWdlbnQ6OkNYZW5BZ2VudCgpIDogbV9oYW5kbGUoTlVMTCksIG1fZXZ0
bG9nKE5VTEwpLAotICAgIG1fZGV2bGlzdChHVUlEX0lOVEVSRkFDRV9YRU5JRkFDRSksIG1fZGV2
aWNlKE5VTEwpCisgICAgbV9kZXZsaXN0KEdVSURfSU5URVJGQUNFX1hFTklGQUNFKSwgbV9kZXZp
Y2UoTlVMTCksCisgICAgbV9jdHh0X3NodXRkb3duKE5VTEwpLCBtX2N0eHRfc3VzcGVuZChOVUxM
KQogewogICAgIG1fc3RhdHVzLmR3U2VydmljZVR5cGUgICAgICAgID0gU0VSVklDRV9XSU4zMjsK
ICAgICBtX3N0YXR1cy5kd0N1cnJlbnRTdGF0ZSAgICAgICA9IFNFUlZJQ0VfU1RBUlRfUEVORElO
RzsKQEAgLTE4MSwxMiArMTg0LDE2IEBAIENYZW5BZ2VudDo6Q1hlbkFnZW50KCkgOiBtX2hhbmRs
ZShOVUxMKSwgbV9ldnRsb2coTlVMTCksCiAgICAgbV9zdGF0dXMuZHdXYWl0SGludCAgICAgICAg
ICAgPSAwOwogCiAgICAgbV9zdmNfc3RvcCA9IENyZWF0ZUV2ZW50KEZBTFNFLCBOVUxMLCBOVUxM
LCBGQUxTRSk7CisgICAgbV9ldnRfc2h1dGRvd24gPSBDcmVhdGVFdmVudChGQUxTRSwgTlVMTCwg
TlVMTCwgRkFMU0UpOworICAgIG1fZXZ0X3N1c3BlbmQgPSBDcmVhdGVFdmVudChGQUxTRSwgTlVM
TCwgTlVMTCwgRkFMU0UpOwogCiAgICAgSW5pdGlhbGl6ZUNyaXRpY2FsU2VjdGlvbigmbV9jcml0
KTsKIH0KIAogQ1hlbkFnZW50Ojp+Q1hlbkFnZW50KCkKIHsKKyAgICBDbG9zZUhhbmRsZShtX2V2
dF9zdXNwZW5kKTsKKyAgICBDbG9zZUhhbmRsZShtX2V2dF9zaHV0ZG93bik7CiAgICAgQ2xvc2VI
YW5kbGUobV9zdmNfc3RvcCk7CiAKICAgICBEZWxldGVDcml0aWNhbFNlY3Rpb24oJm1fY3JpdCk7
CkBAIC0yMDQsNiArMjExLDEzIEBAIENYZW5BZ2VudDo6fkNYZW5BZ2VudCgpCiAgICAgQ0NyaXRT
ZWMgY3JpdCgmbV9jcml0KTsKICAgICBpZiAobV9kZXZpY2UgPT0gTlVMTCkgewogICAgICAgICBt
X2RldmljZSA9IChDWGVuSWZhY2VEZXZpY2UqKWRldjsKKworICAgICAgICAvLyBzaHV0ZG93bgor
ICAgICAgICBtX2RldmljZS0+U3RvcmVBZGRXYXRjaCgiY29udHJvbC9zaHV0ZG93biIsIG1fZXZ0
X3NodXRkb3duLCAmbV9jdHh0X3NodXRkb3duKTsKKyAgICAgICAgbV9kZXZpY2UtPlN0b3JlV3Jp
dGUoImNvbnRyb2wvZmVhdHVyZS1zaHV0ZG93biIsICIxIik7CisKKyAgICAgICAgLy8gc3VzcGVu
ZAorICAgICAgICBtX2RldmljZS0+U3VzcGVuZFJlZ2lzdGVyKG1fZXZ0X3N1c3BlbmQsICZtX2N0
eHRfc3VzcGVuZCk7CiAgICAgfQogfQogCkBAIC0yMTMsNiArMjI3LDE3IEBAIENYZW5BZ2VudDo6
fkNYZW5BZ2VudCgpCiAKICAgICBDQ3JpdFNlYyBjcml0KCZtX2NyaXQpOwogICAgIGlmIChtX2Rl
dmljZSA9PSBkZXYpIHsKKyAgICAgICAgLy8gc3VzcGVuZAorICAgICAgICBpZiAobV9jdHh0X3N1
c3BlbmQpCisgICAgICAgICAgICBtX2RldmljZS0+U3VzcGVuZERlcmVnaXN0ZXIobV9jdHh0X3N1
c3BlbmQpOworICAgICAgICBtX2N0eHRfc3VzcGVuZCA9IE5VTEw7CisKKyAgICAgICAgLy8gc2h1
dGRvd24KKyAgICAgICAgbV9kZXZpY2UtPlN0b3JlUmVtb3ZlKCJjb250cm9sL2ZlYXR1cmUtc2h1
dGRvd24iKTsKKyAgICAgICAgaWYgKG1fY3R4dF9zaHV0ZG93bikKKyAgICAgICAgICAgIG1fZGV2
aWNlLT5TdG9yZVJlbW92ZVdhdGNoKG1fY3R4dF9zaHV0ZG93bik7CisgICAgICAgIG1fY3R4dF9z
aHV0ZG93biA9IE5VTEw7CisKICAgICAgICAgbV9kZXZpY2UgPSBOVUxMOwogICAgIH0KIH0KQEAg
LTIzNiw4ICsyNjEsMTI0IEBAIHZvaWQgQ1hlbkFnZW50OjpPbkRldmljZUV2ZW50KERXT1JEIGV2
dCwgTFBWT0lEIGRhdGEpCiAKIGJvb2wgQ1hlbkFnZW50OjpTZXJ2aWNlTWFpbkxvb3AoKQogewot
ICAgIFdhaXRGb3JTaW5nbGVPYmplY3QobV9zdmNfc3RvcCwgSU5GSU5JVEUpOwotICAgIHJldHVy
biBmYWxzZTsKKyAgICBIQU5ETEUgIGV2ZW50c1szXSA9IHsgbV9zdmNfc3RvcCwgbV9ldnRfc2h1
dGRvd24sIG1fZXZ0X3N1c3BlbmQgfTsKKyAgICBEV09SRCAgIHdhaXQgPSBXYWl0Rm9yTXVsdGlw
bGVPYmplY3RzKDMsIGV2ZW50cywgRkFMU0UsIElORklOSVRFKTsKKworICAgIHN3aXRjaCAod2Fp
dCkgeworICAgIGNhc2UgV0FJVF9PQkpFQ1RfMDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBl
eGl0IGxvb3AKKworICAgIGNhc2UgV0FJVF9PQkpFQ1RfMCsxOgorICAgICAgICBPblNodXRkb3du
KCk7CisgICAgICAgIHJldHVybiB0cnVlOyAvLyBjb250aW51ZSBsb29wCisKKyAgICBjYXNlIFdB
SVRfT0JKRUNUXzArMjoKKyAgICAgICAgT25TdXNwZW5kKCk7CisgICAgICAgIHJldHVybiB0cnVl
OyAvLyBjb250aW51ZSBsb29wCisKKyAgICBkZWZhdWx0OgorICAgICAgICBDWGVuQWdlbnQ6Okxv
ZygiV2FpdEZvck11bHRpcGxlT2JqZWN0cyBmYWlsZWQgKCUwOHgpXG4iLCB3YWl0KTsKKyAgICAg
ICAgRXZlbnRMb2coRVZFTlRfWEVOVVNFUl9VTkVYUEVDVEVEKTsKKyAgICAgICAgcmV0dXJuIHRy
dWU7IC8vIGNvbnRpbnVlIGxvb3AKKyAgICB9Cit9CisKK3ZvaWQgQ1hlbkFnZW50OjpBY3F1aXJl
U2h1dGRvd25Qcml2aWxlZ2UoKQoreworICAgIEhBTkRMRSAgICAgICAgICB0b2tlbjsKKyAgICBU
T0tFTl9QUklWSUxFR0VTIHRwOworCisgICAgTG9va3VwUHJpdmlsZWdlVmFsdWUoTlVMTCwgU0Vf
U0hVVERPV05fTkFNRSwgJnRwLlByaXZpbGVnZXNbMF0uTHVpZCk7CisgICAgdHAuUHJpdmlsZWdl
c1swXS5BdHRyaWJ1dGVzID0gU0VfUFJJVklMRUdFX0VOQUJMRUQ7CisKKyAgICB0cC5Qcml2aWxl
Z2VDb3VudCA9IDE7CisKKyAgICBpZiAoIU9wZW5Qcm9jZXNzVG9rZW4oR2V0Q3VycmVudFByb2Nl
c3MoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgVE9LRU5fQURKVVNUX1BSSVZJTEVHRVMg
fCBUT0tFTl9RVUVSWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJnRva2VuKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgQWRqdXN0VG9rZW5Qcml2aWxlZ2VzKHRva2VuLCBGQUxTRSwgJnRw
LCBOVUxMLCAwLCBOVUxMKTsKKyAgICBDbG9zZUhhbmRsZSh0b2tlbik7Cit9CisKK3ZvaWQgQ1hl
bkFnZW50OjpFdmVudExvZyhEV09SRCBldnQpCit7CisgICAgaWYgKG1fZXZ0bG9nKSB7CisgICAg
ICAgIFJlcG9ydEV2ZW50KG1fZXZ0bG9nLAorICAgICAgICAgICAgICAgICAgICBFVkVOVExPR19T
VUNDRVNTLAorICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICBldnQs
CisgICAgICAgICAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICAgICAgICAgIDAsCisgICAg
ICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAg
ICAgICAgICAgIE5VTEwpOworICAgIH0KK30KKwordm9pZCBDWGVuQWdlbnQ6Ok9uU2h1dGRvd24o
KQoreworICAgIENDcml0U2VjIGNyaXQoJm1fY3JpdCk7CisgICAgaWYgKG1fZGV2aWNlID09IE5V
TEwpCisgICAgICAgIHJldHVybjsKKworICAgIHN0ZDo6c3RyaW5nIHR5cGU7CisgICAgbV9kZXZp
Y2UtPlN0b3JlUmVhZCgiY29udHJvbC9zaHV0ZG93biIsIHR5cGUpOworCisgICAgQ1hlbkFnZW50
OjpMb2coIk9uU2h1dGRvd24oJXdzKSA9ICVzXG4iLCBtX2RldmljZS0+UGF0aCgpLCB0eXBlLmNf
c3RyKCkpOworCisgICAgaWYgKHR5cGUgPT0gInBvd2Vyb2ZmIiB8fCB0eXBlID09ICJoYWx0Iikg
eworICAgICAgICBFdmVudExvZyhFVkVOVF9YRU5VU0VSX1BPV0VST0ZGKTsKKworICAgICAgICBt
X2RldmljZS0+U3RvcmVXcml0ZSgiY29udHJvbC9zaHV0ZG93biIsICIiKTsKKyAgICAgICAgQWNx
dWlyZVNodXRkb3duUHJpdmlsZWdlKCk7CisgICAgICAgIGlmICghSW5pdGlhdGVTeXN0ZW1TaHV0
ZG93bkV4KE5VTEwsIE5VTEwsIDAsIFRSVUUsIEZBTFNFLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBTSFRETl9SRUFTT05fTUFKT1JfT1RIRVIgfAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBTSFRETl9SRUFTT05fTUlOT1JfRU5WSVJPTk1FTlQg
fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSFRETl9SRUFTT05fRkxB
R19QTEFOTkVEKSkgeworICAgICAgICAgICAgQ1hlbkFnZW50OjpMb2coIkluaXRpYXRlU3lzdGVt
U2h1dGRvd25FeCBmYWlsZWQgJTA4eFxuIiwgR2V0TGFzdEVycm9yKCkpOworICAgICAgICB9Cisg
ICAgfSBlbHNlIGlmICh0eXBlID09ICJyZWJvb3QiKSB7CisgICAgICAgIEV2ZW50TG9nKEVWRU5U
X1hFTlVTRVJfUkVCT09UKTsKKworICAgICAgICBtX2RldmljZS0+U3RvcmVXcml0ZSgiY29udHJv
bC9zaHV0ZG93biIsICIiKTsKKyAgICAgICAgQWNxdWlyZVNodXRkb3duUHJpdmlsZWdlKCk7Cisg
ICAgICAgIGlmICghSW5pdGlhdGVTeXN0ZW1TaHV0ZG93bkV4KE5VTEwsIE5VTEwsIDAsIFRSVUUs
IFRSVUUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNIVEROX1JFQVNP
Tl9NQUpPUl9PVEhFUiB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNI
VEROX1JFQVNPTl9NSU5PUl9FTlZJUk9OTUVOVCB8CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFNIVEROX1JFQVNPTl9GTEFHX1BMQU5ORUQpKSB7CisgICAgICAgICAgICBD
WGVuQWdlbnQ6OkxvZygiSW5pdGlhdGVTeXN0ZW1TaHV0ZG93bkV4IGZhaWxlZCAlMDh4XG4iLCBH
ZXRMYXN0RXJyb3IoKSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKHR5cGUgPT0gImhpYmVy
bmF0ZSIpIHsKKyAgICAgICAgRXZlbnRMb2coRVZFTlRfWEVOVVNFUl9ISUJFUk5BVEUpOworCisg
ICAgICAgIG1fZGV2aWNlLT5TdG9yZVdyaXRlKCJjb250cm9sL3NodXRkb3duIiwgIiIpOworICAg
ICAgICBBY3F1aXJlU2h1dGRvd25Qcml2aWxlZ2UoKTsKKyAgICAgICAgaWYgKCFTZXRTeXN0ZW1Q
b3dlclN0YXRlKEZBTFNFLCBGQUxTRSkpIHsKKyAgICAgICAgICAgIENYZW5BZ2VudDo6TG9nKCJT
ZXRTeXN0ZW1Qb3dlclN0YXRlIGZhaWxlZCAlMDh4XG4iLCBHZXRMYXN0RXJyb3IoKSk7CisgICAg
ICAgIH0KKyAgICB9IGVsc2UgaWYgKHR5cGUgPT0gInMzIikgeworICAgICAgICBFdmVudExvZyhF
VkVOVF9YRU5VU0VSX1MzKTsKKworICAgICAgICBtX2RldmljZS0+U3RvcmVXcml0ZSgiY29udHJv
bC9zaHV0ZG93biIsICIiKTsKKyAgICAgICAgQWNxdWlyZVNodXRkb3duUHJpdmlsZWdlKCk7Cisg
ICAgICAgIGlmICghU2V0U3VzcGVuZFN0YXRlKEZBTFNFLCBUUlVFLCBGQUxTRSkpIHsKKyAgICAg
ICAgICAgIENYZW5BZ2VudDo6TG9nKCJTZXRTdXNwZW5kU3RhdGUgZmFpbGVkICUwOHhcbiIsIEdl
dExhc3RFcnJvcigpKTsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBDWGVuQWdlbnQ6Ok9u
U3VzcGVuZCgpCit7CisgICAgQ0NyaXRTZWMgY3JpdCgmbV9jcml0KTsKKyAgICBpZiAobV9kZXZp
Y2UgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuOworCisgICAgQ1hlbkFnZW50OjpMb2coIk9uU3Vz
cGVuZCgld3MpXG4iLCBtX2RldmljZS0+UGF0aCgpKTsKKyAgICBFdmVudExvZyhFVkVOVF9YRU5V
U0VSX1VOU1VTUEVOREVEKTsKKworICAgIG1fZGV2aWNlLT5TdG9yZVdyaXRlKCJjb250cm9sL2Zl
YXR1cmUtc2h1dGRvd24iLCAiMSIpOwogfQogCiB2b2lkIENYZW5BZ2VudDo6U2V0U2VydmljZVN0
YXR1cyhEV09SRCBzdGF0ZSwgRFdPUkQgZXhpdCAvKj0gMCovLCBEV09SRCBoaW50IC8qPSAwKi8p
CmRpZmYgLS1naXQgYS9zcmMveGVuYWdlbnQvc2VydmljZS5oIGIvc3JjL3hlbmFnZW50L3NlcnZp
Y2UuaAppbmRleCBhY2M0ZDUyLi5mYjhhMWVlIDEwMDY0NAotLS0gYS9zcmMveGVuYWdlbnQvc2Vy
dmljZS5oCisrKyBiL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmgKQEAgLTY4LDYgKzY4LDEyIEBAIHBy
aXZhdGU6IC8vIHNlcnZpY2UgZXZlbnRzCiAgICAgdm9pZCBPbkRldmljZUV2ZW50KERXT1JELCBM
UFZPSUQpOwogICAgIGJvb2wgU2VydmljZU1haW5Mb29wKCk7CiAKK3ByaXZhdGU6IC8vIGhlbHBl
cnMKKyAgICB2b2lkIEFjcXVpcmVTaHV0ZG93blByaXZpbGVnZSgpOworICAgIHZvaWQgRXZlbnRM
b2coRFdPUkQgZXZ0KTsKKyAgICB2b2lkIE9uU2h1dGRvd24oKTsKKyAgICB2b2lkIE9uU3VzcGVu
ZCgpOworCiBwcml2YXRlOiAvLyBzZXJ2aWNlIHN1cHBvcnQKICAgICB2b2lkIFNldFNlcnZpY2VT
dGF0dXMoRFdPUkQgc3RhdGUsIERXT1JEIGV4aXQgPSAwLCBEV09SRCBoaW50ID0gMCk7CiAgICAg
dm9pZCBXSU5BUEkgX19TZXJ2aWNlTWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpOwpAQCAtNzcs
MTAgKzgzLDE0IEBAIHByaXZhdGU6IC8vIHNlcnZpY2Ugc3VwcG9ydAogICAgIFNFUlZJQ0VfU1RB
VFVTX0hBTkRMRSAgIG1faGFuZGxlOwogICAgIEhBTkRMRSAgICAgICAgICAgICAgICAgIG1fZXZ0
bG9nOwogICAgIEhBTkRMRSAgICAgICAgICAgICAgICAgIG1fc3ZjX3N0b3A7CisgICAgSEFORExF
ICAgICAgICAgICAgICAgICAgbV9ldnRfc2h1dGRvd247CisgICAgSEFORExFICAgICAgICAgICAg
ICAgICAgbV9ldnRfc3VzcGVuZDsKIAogICAgIENEZXZpY2VMaXN0ICAgICAgICAgICAgIG1fZGV2
bGlzdDsKICAgICBDWGVuSWZhY2VEZXZpY2UqICAgICAgICBtX2RldmljZTsKICAgICBDUklUSUNB
TF9TRUNUSU9OICAgICAgICBtX2NyaXQ7CisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgbV9j
dHh0X3NodXRkb3duOworICAgIHZvaWQqICAgICAgICAgICAgICAgICAgIG1fY3R4dF9zdXNwZW5k
OwogfTsKIAogI2VuZGlmCi0tIAoxLjkuNC5tc3lzZ2l0LjEKCgpfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndp
bi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5v
cmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 05 10:38:26 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 05 Jul 2016 10:38:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bKNkI-0005I8-JL; Tue, 05 Jul 2016 10:38:26 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=987319bd7=owen.smith@citrix.com>)
 id 1bKNkG-0005Gd-J2
 for win-pv-devel@lists.xenproject.org; Tue, 05 Jul 2016 10:38:24 +0000
Received: from [193.109.254.147] by server-5.bemta-14.messagelabs.com id
 6A/28-08132-F1E8B775; Tue, 05 Jul 2016 10:38:23 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupjkeJIrShJLcpLzFFi42JxWrrBXle+rzr
 c4NM+Tos/ixMdGD0Of7jCEsAYxZqZl5RfkcCaMbE7reB3bcXOXSvZGhh/xXUxcnJICPhLHJx5
 lhHEZhPQkJjRuZgFxBYRUJfY93krE4jNLKAmcX1/FyuILSzgING5cjeQzcHBIqAicam9AiTMK
 +AqcXXqMVaIkRoSmxpmsIHYnAJuEo3b14DFhYBqGvZfYoSwlSS+LX7BDNErKHFy5hMWiFUSEg
 dfQMQlBLglbp+eyjyBkW8WkrJZSMoWMDKtYtQoTi0qSy3SNTTSSyrKTM8oyU3MzNE1NDTRy00
 tLk5MT81JTCrWS87P3cQIDCcGINjBeHaa8yFGSQ4mJVFeh5rqcCG+pPyUyozE4oz4otKc1OJD
 jDIcHEoSvJ69QDnBotT01Iq0zBxgYMOkJTh4lER4mUHSvMUFibnFmekQqVOMilLivKd6gBICI
 ImM0jy4Nlg0XWKUlRLmZQQ6RIinILUoN7MEVf4VozgHo5IwLwfIeJ7MvBK46a+AFjMBLf7pAr
 a4JBEhJdXA6PxgaX1f+uPX2xm5r7/wuN+3yT1g+0qLi3fvFvAKhT/beoeLnd8650/f/elLVh5
 n1Zz3XPtkIj8Xm9vqlKRzTD8/GqjfsLsuFG32/eCP+OUxCU4JB+/WGR4L+/B++Ywpmnktkyo+
 P9BuTVux3vOTo5aHQFDHh993Xq1NTHIQqrViX8B7YdPJu0osxRmJhlrMRcWJADm8y4WhAgAA
X-Env-Sender: prvs=987319bd7=owen.smith@citrix.com
X-Msg-Ref: server-10.tower-27.messagelabs.com!1467715100!51976083!2
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: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 34467 invoked from network); 5 Jul 2016 10:38:22 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
 by server-10.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 5 Jul 2016 10:38:22 -0000
X-IronPort-AV: E=Sophos;i="5.26,579,1459814400"; d="scan'208";a="371291282"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 5 Jul 2016 11:38:07 +0100
Message-ID: <1467715091-13216-3-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
References: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA2
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 2/6] Add device list to track XenIface
	device(s)
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VXNlcyBSZWdpc3RlckRldmljZU5vdGlmaWNhdGlvbkEgYW5kIFNldHVwQXBpIHRvIHRyYWNrCkdV
SURfSU5URVJGQUNFX1hFTklGQUNFIGRldmljZShzKS4gQ2FsbHMgc2VydmljZSBiYXNlIGNsYXNz
CmFmdGVyIGluc2VydGlvbiBhbmQgYmVmb3JlIHJlbW92ZSBjb21wbGV0ZS4KClNpZ25lZC1vZmYt
Ynk6IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4KLS0tCiBzcmMveGVuYWdlbnQv
ZGV2aWNlbGlzdC5jcHAgICAgICB8IDI5NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysKIHNyYy94ZW5hZ2VudC9kZXZpY2VsaXN0LmggICAgICAgIHwgIDkyICsrKysrKysr
KysrKwogc3JjL3hlbmFnZW50L3NlcnZpY2UuY3BwICAgICAgICAgfCAgMjAgKystCiBzcmMveGVu
YWdlbnQvc2VydmljZS5oICAgICAgICAgICB8ICAxMSArLQogdnMyMDEyL3hlbmFnZW50L3hlbmFn
ZW50LnZjeHByb2ogfCAgIDIgKwogdnMyMDEzL3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2ogfCAg
IDIgKwogNiBmaWxlcyBjaGFuZ2VkLCA0MjEgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMveGVuYWdlbnQvZGV2aWNlbGlzdC5jcHAKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBzcmMveGVuYWdlbnQvZGV2aWNlbGlzdC5oCgpkaWZmIC0tZ2l0IGEvc3JjL3hl
bmFnZW50L2RldmljZWxpc3QuY3BwIGIvc3JjL3hlbmFnZW50L2RldmljZWxpc3QuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlOTQ4YzEKLS0tIC9kZXYvbnVsbAorKysg
Yi9zcmMveGVuYWdlbnQvZGV2aWNlbGlzdC5jcHAKQEAgLTAsMCArMSwyOTYgQEAKKy8qIENvcHly
aWdodCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCAK
KyAqIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
CisgKiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqICogICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIAorICog
ICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgCisg
KiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAqICAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSAKKyAqICAgICBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIAorICogICAgIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciAKKyAqICAgICBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCAKKyAqIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIAorICog
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
CisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSAKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9M
REVSIE9SIAorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgCisgKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIAorICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIAorICogV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIAorICogTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSAKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgCisgKiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSA8d2luZG93cy5oPgorI2luY2x1ZGUgPHN0cmlu
Zz4KKyNpbmNsdWRlIDxzZXR1cGFwaS5oPgorI3ByYWdtYSBjb21tZW50IChsaWIgLCAic2V0dXBh
cGkubGliIiApCisKKyNpbmNsdWRlICJkZXZpY2VsaXN0LmgiCisKKy8vIGRlYWwgd2l0aCBTZXR1
cEFwaSBhbmQgUmVnaXN0ZXJEZXZpY2VOb3RpZmljYXRpb24gdXNpbmcgZGlmZmVyZW50IHN0cmlu
ZyB0eXBlcworc3RhdGljIHN0ZDo6d3N0cmluZyBDb252ZXJ0KGNvbnN0IGNoYXIqIHN0cikKK3sK
KyAgICBzdGQ6OndzdHJpbmcgd3N0cjsKKyAgICB3c3RyLnJlc2VydmUoc3RybGVuKHN0cikgKyAx
KTsKKyAgICBNdWx0aUJ5dGVUb1dpZGVDaGFyKENQX0FDUCwgMCwgc3RyLCAtMSwgKExQV1NUUil3
c3RyLmRhdGEoKSwgKGludCl3c3RyLmNhcGFjaXR5KCkpOworICAgIHJldHVybiB3c3RyOworfQor
CitzdGF0aWMgc3RkOjp3c3RyaW5nIENvbnZlcnQoY29uc3Qgd2NoYXJfdCogd3N0cikKK3sKKyAg
ICByZXR1cm4gc3RkOjp3c3RyaW5nKHdzdHIpOworfQorCitDRGV2aWNlOjpDRGV2aWNlKGNvbnN0
IHdjaGFyX3QqIHBhdGgpIDoKKyAgICBtX2hhbmRsZShJTlZBTElEX0hBTkRMRV9WQUxVRSksIG1f
cGF0aChwYXRoKSwgbV9ub3RpZnkoTlVMTCkKK3sKK30KKworLyp2aXJ0dWFsKi8gQ0RldmljZTo6
fkNEZXZpY2UoKQoreworICAgIENsb3NlKCk7Cit9CisKK2NvbnN0IHdjaGFyX3QqIENEZXZpY2U6
OlBhdGgoKSBjb25zdAoreworICAgIHJldHVybiBtX3BhdGguY19zdHIoKTsKK30KKworSEFORExF
IENEZXZpY2U6Ok9wZW4oSEFORExFIHN2YykKK3sKKyAgICBDbG9zZSgpOworCisgICAgbV9oYW5k
bGUgPSBDcmVhdGVGaWxlVyhtX3BhdGguY19zdHIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEdFTkVSSUNfUkVBRCB8IEdFTkVSSUNfV1JJVEUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICBGSUxFX1NIQVJFX1JFQUQgfCBGSUxFX1NIQVJFX1dSSVRFLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE9QRU5fRVhJU1RJ
TkcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTlVMTCk7CisgICAgaWYgKG1faGFuZGxlID09IElOVkFMSURfSEFORExFX1ZBTFVFKQor
ICAgICAgICByZXR1cm4gSU5WQUxJRF9IQU5ETEVfVkFMVUU7CisKKyAgICBERVZfQlJPQURDQVNU
X0hBTkRMRSBkZXZoZGwgPSB7IDAgfTsKKyAgICBkZXZoZGwuZGJjaF9zaXplID0gc2l6ZW9mKGRl
dmhkbCk7CisgICAgZGV2aGRsLmRiY2hfZGV2aWNldHlwZSA9IERCVF9ERVZUWVBfSEFORExFOwor
ICAgIGRldmhkbC5kYmNoX2hhbmRsZSA9IG1faGFuZGxlOworCisgICAgbV9ub3RpZnkgPSBSZWdp
c3RlckRldmljZU5vdGlmaWNhdGlvbihzdmMsICZkZXZoZGwsIERFVklDRV9OT1RJRllfU0VSVklD
RV9IQU5ETEUpOworICAgIGlmIChtX25vdGlmeSA9PSBOVUxMKSB7CisgICAgICAgIENsb3NlKCk7
CisgICAgICAgIHJldHVybiBJTlZBTElEX0hBTkRMRV9WQUxVRTsKKyAgICB9CisKKyAgICByZXR1
cm4gbV9oYW5kbGU7Cit9CisKK3ZvaWQgQ0RldmljZTo6Q2xvc2UoKQoreworICAgIGlmIChtX2hh
bmRsZSA9PSBJTlZBTElEX0hBTkRMRV9WQUxVRSkKKyAgICAgICAgcmV0dXJuOworICAgIENsb3Nl
SGFuZGxlKG1faGFuZGxlKTsKKyAgICBtX2hhbmRsZSA9IElOVkFMSURfSEFORExFX1ZBTFVFOwor
fQorCitib29sIENEZXZpY2U6OklvY3RsKERXT1JEIGlvY3RsLCB2b2lkKiBpbiwgRFdPUkQgaW5z
eiwgdm9pZCogb3V0LCBEV09SRCBvdXRzeiwgRFdPUkQqIGJ5dGVzIC8qPSBOVUxMKi8pCit7Cisg
ICAgaWYgKG1faGFuZGxlID09IElOVkFMSURfSEFORExFX1ZBTFVFKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBEV09SRCBfYnl0ZXM7CisgICAgaWYgKCFEZXZpY2VJb0NvbnRyb2wobV9o
YW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgaW9jdGwsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgaW5zeiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICBvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgb3V0c3osCisgICAg
ICAgICAgICAgICAgICAgICAgICAgKGJ5dGVzID09IE5VTEwpID8gJl9ieXRlcyA6IGJ5dGVzLAor
ICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKworQ0RldmljZUxpc3Q6OkNEZXZpY2VMaXN0KGNvbnN0IEdV
SUQmIGl0ZikgOgorICAgIG1fZ3VpZChpdGYpLCBtX25vdGlmeShOVUxMKSwgbV9oYW5kbGUoTlVM
TCksIG1faW1wbChOVUxMKQoreworfQorCitDRGV2aWNlTGlzdDo6fkNEZXZpY2VMaXN0KCkKK3sK
KyAgICBTdG9wKCk7Cit9CisKK2Jvb2wgQ0RldmljZUxpc3Q6OlN0YXJ0KEhBTkRMRSBoYW5kbGUs
IElEZXZpY2VDcmVhdG9yKiBpbXBsKQoreworICAgIFN0b3AoKTsKKworICAgIG1faGFuZGxlID0g
aGFuZGxlOworICAgIG1faW1wbCA9IGltcGw7CisKKyAgICBERVZfQlJPQURDQVNUX0RFVklDRUlO
VEVSRkFDRSBkZXYgPSB7IDAgfTsKKyAgICBkZXYuZGJjY19zaXplID0gc2l6ZW9mKGRldik7Cisg
ICAgZGV2LmRiY2NfZGV2aWNldHlwZSA9IERCVF9ERVZUWVBfREVWSUNFSU5URVJGQUNFOworICAg
IGRldi5kYmNjX2NsYXNzZ3VpZCA9IG1fZ3VpZDsKKworICAgIG1fbm90aWZ5ID0gUmVnaXN0ZXJE
ZXZpY2VOb3RpZmljYXRpb25BKGhhbmRsZSwgJmRldiwgREVWSUNFX05PVElGWV9TRVJWSUNFX0hB
TkRMRSk7CisgICAgaWYgKG1fbm90aWZ5ID09IE5VTEwpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIEhERVZJTkZPICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZm87CisgICAgU1Bf
REVWSUNFX0lOVEVSRkFDRV9EQVRBICAgICAgICAgICAgaXRmOworICAgIFBTUF9ERVZJQ0VfSU5U
RVJGQUNFX0RFVEFJTF9EQVRBICAgIGRldGFpbDsKKyAgICBVTE9ORyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZHg7CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGVuOworCisgICAgaW5mbyA9IFNldHVwRGlHZXRDbGFzc0RldnMoJm1fZ3VpZCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRElHQ0ZfUFJFU0VO
VCB8IERJR0NGX0RFVklDRUlOVEVSRkFDRSk7CisgICAgaWYgKGluZm8gPT0gSU5WQUxJRF9IQU5E
TEVfVkFMVUUpIAorICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gbm9uIGZhdGFsLCBqdXN0IG1pc3Np
bmcgYWxyZWFkeSBwcmVzZW50IGRldmljZShzKQorCisgICAgaXRmLmNiU2l6ZSA9IHNpemVvZihT
UF9ERVZJQ0VfSU5URVJGQUNFX0RBVEEpOworICAgIGZvciAoaWR4ID0gMDsgCisgICAgICAgIFNl
dHVwRGlFbnVtRGV2aWNlSW50ZXJmYWNlcyhpbmZvLCBOVUxMLCAmbV9ndWlkLCBpZHgsICZpdGYp
OyAKKyAgICAgICAgKytpZHgpIHsKKyAgICAgICAgU2V0dXBEaUdldERldmljZUludGVyZmFjZURl
dGFpbChpbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpdGYs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICZsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTlVMTCk7CisgICAgICAgIGRldGFpbCA9IChQU1BfREVWSUNFX0lOVEVSRkFDRV9E
RVRBSUxfREFUQSluZXcgQllURVtsZW5dOworICAgICAgICBpZiAoZGV0YWlsID09IE5VTEwpCisg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgZGV0YWlsLT5jYlNpemUgPSBzaXplb2YoU1Bf
REVWSUNFX0lOVEVSRkFDRV9ERVRBSUxfREFUQSk7CisgICAgICAgIGlmIChTZXR1cERpR2V0RGV2
aWNlSW50ZXJmYWNlRGV0YWlsKGluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICZpdGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRldGFpbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxM
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKSkgewor
ICAgICAgICAgICAgT25EZXZpY2VBZGRlZChDb252ZXJ0KChjb25zdCBjaGFyKilkZXRhaWwtPkRl
dmljZVBhdGgpKTsKKyAgICAgICAgfQorICAgICAgICBkZWxldGUgW10gZGV0YWlsOworICAgICAg
ICBpdGYuY2JTaXplID0gc2l6ZW9mKFNQX0RFVklDRV9JTlRFUkZBQ0VfREFUQSk7CisgICAgfQor
ICAgIFNldHVwRGlEZXN0cm95RGV2aWNlSW5mb0xpc3QoaW5mbyk7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKK3ZvaWQgQ0RldmljZUxpc3Q6OlN0b3AoKQoreworICAgIGlmIChtX25vdGlmeSAhPSBO
VUxMKQorICAgICAgICBVbnJlZ2lzdGVyRGV2aWNlTm90aWZpY2F0aW9uKG1fbm90aWZ5KTsKKyAg
ICBtX25vdGlmeSA9IE5VTEw7CisKKyAgICBmb3IgKERldmljZU1hcDo6aXRlcmF0b3IgaXQgPSBt
X2RldnMuYmVnaW4oKTsKKyAgICAgICAgICAgIGl0ICE9IG1fZGV2cy5lbmQoKTsKKyAgICAgICAg
ICAgICsraXQpIHsKKyAgICAgICAgZGVsZXRlIGl0LT5zZWNvbmQ7CisgICAgfQorICAgIG1fZGV2
cy5jbGVhcigpOworfQorCit2b2lkIENEZXZpY2VMaXN0OjpPbkRldmljZUV2ZW50KERXT1JEIGV2
dCwgTFBWT0lEIGRhdGEpCit7CisgICAgUERFVl9CUk9BRENBU1RfSERSICAgICAgICAgICAgICBo
ZHI7CisgICAgUERFVl9CUk9BRENBU1RfREVWSUNFSU5URVJGQUNFICBpdGY7CisgICAgUERFVl9C
Uk9BRENBU1RfSEFORExFICAgICAgICAgICBoZGw7CisKKyAgICBoZHIgPSAoUERFVl9CUk9BRENB
U1RfSERSKWRhdGE7CisgICAgc3dpdGNoIChldnQpIHsKKyAgICBjYXNlIERCVF9ERVZJQ0VBUlJJ
VkFMOgorICAgICAgICBpZiAoaGRyLT5kYmNoX2RldmljZXR5cGUgPT0gREJUX0RFVlRZUF9ERVZJ
Q0VJTlRFUkZBQ0UpIHsKKyAgICAgICAgICAgIGl0ZiA9IChQREVWX0JST0FEQ0FTVF9ERVZJQ0VJ
TlRFUkZBQ0UpaGRyOworICAgICAgICAgICAgT25EZXZpY2VBZGRlZChDb252ZXJ0KChjb25zdCB3
Y2hhcl90KilpdGYtPmRiY2NfbmFtZSkpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworCisg
ICAgY2FzZSBEQlRfREVWSUNFUVVFUllSRU1PVkU6CisgICAgICAgIGlmIChoZHItPmRiY2hfZGV2
aWNldHlwZSA9PSBEQlRfREVWVFlQX0hBTkRMRSkgeworICAgICAgICAgICAgaGRsID0gKFBERVZf
QlJPQURDQVNUX0hBTkRMRSloZHI7CisgICAgICAgICAgICBPbkRldmljZVF1ZXJ5UmVtb3ZlKGhk
bC0+ZGJjaF9oYW5kbGUpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBE
QlRfREVWSUNFUkVNT1ZFUEVORElORzoKKyAgICAgICAgaWYgKGhkci0+ZGJjaF9kZXZpY2V0eXBl
ID09IERCVF9ERVZUWVBfSEFORExFKSB7CisgICAgICAgICAgICBoZGwgPSAoUERFVl9CUk9BRENB
U1RfSEFORExFKWhkcjsKKyAgICAgICAgICAgIFVucmVnaXN0ZXJEZXZpY2VOb3RpZmljYXRpb24o
aGRsLT5kYmNoX2hkZXZub3RpZnkpOworICAgICAgICAgICAgT25EZXZpY2VSZW1vdmVkKGhkbC0+
ZGJjaF9oYW5kbGUpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworCisgICAgZGVmYXVsdDoK
KyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCitDRGV2aWNlKiBDRGV2aWNlTGlzdDo6R2V0Rmly
c3REZXZpY2UoKQoreworICAgIERldmljZU1hcDo6aXRlcmF0b3IgaXQgPSBtX2RldnMuYmVnaW4o
KTsKKyAgICBpZiAoaXQgPT0gbV9kZXZzLmVuZCgpKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAg
ICByZXR1cm4gaXQtPnNlY29uZDsKK30KKwordm9pZCBDRGV2aWNlTGlzdDo6T25EZXZpY2VBZGRl
ZChjb25zdCBzdGQ6OndzdHJpbmcmIHBhdGgpCit7CisgICAgQ0RldmljZSogZGV2OworICAgIGlm
IChtX2ltcGwgPT0gTlVMTCkKKyAgICAgICAgZGV2ID0gbmV3IENEZXZpY2UocGF0aC5jX3N0cigp
KTsKKyAgICBlbHNlCisgICAgICAgIGRldiA9IG1faW1wbC0+Q3JlYXRlKHBhdGguY19zdHIoKSk7
CisgICAgaWYgKGRldiA9PSBOVUxMKQorICAgICAgICByZXR1cm47IC8vIGNyZWF0ZSBmYWlsZWQK
KworICAgIEhBTkRMRSBoYW5kbGUgPSBkZXYtPk9wZW4obV9oYW5kbGUpOworICAgIGlmIChoYW5k
bGUgPT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUpIHsKKyAgICAgICAgZGVsZXRlIGRldjsKKyAgICAg
ICAgcmV0dXJuOyAvLyBvcGVuIGZhaWxlZAorICAgIH0KKworICAgIERldmljZU1hcDo6aXRlcmF0
b3IgaXQgPSBtX2RldnMuZmluZChoYW5kbGUpOworICAgIGlmIChpdCAhPSBtX2RldnMuZW5kKCkp
IHsKKyAgICAgICAgZGVsZXRlIGRldjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1f
ZGV2c1toYW5kbGVdID0gZGV2OworICAgIGlmIChtX2ltcGwpCisgICAgICAgIG1faW1wbC0+T25E
ZXZpY2VBZGRlZChkZXYpOworfQorCit2b2lkIENEZXZpY2VMaXN0OjpPbkRldmljZVF1ZXJ5UmVt
b3ZlKEhBTkRMRSBoYW5kbGUpCit7CisgICAgRGV2aWNlTWFwOjppdGVyYXRvciBpdCA9IG1fZGV2
cy5maW5kKGhhbmRsZSk7CisgICAgaWYgKGl0ID09IG1fZGV2cy5lbmQoKSkKKyAgICAgICAgcmV0
dXJuOyAvLyBzcHVyaW91cyBldmVudD8KKworICAgIENEZXZpY2UqIGRldiA9IGl0LT5zZWNvbmQ7
CisgICAgaWYgKG1faW1wbCkKKyAgICAgICAgbV9pbXBsLT5PbkRldmljZVJlbW92ZWQoZGV2KTsK
KyAgICBkZXYtPkNsb3NlKCk7Cit9CisKK3ZvaWQgQ0RldmljZUxpc3Q6Ok9uRGV2aWNlUmVtb3Zl
ZChIQU5ETEUgaGFuZGxlKQoreworICAgIERldmljZU1hcDo6aXRlcmF0b3IgaXQgPSBtX2RldnMu
ZmluZChoYW5kbGUpOworICAgIGlmIChpdCA9PSBtX2RldnMuZW5kKCkpCisgICAgICAgIHJldHVy
bjsgLy8gc3B1cmlvdXMgZXZlbnQ/CisKKyAgICBDRGV2aWNlKiBkZXYgPSBpdC0+c2Vjb25kOwor
ICAgIGRlbGV0ZSBkZXY7CisgICAgbV9kZXZzLmVyYXNlKGl0KTsKK30KZGlmZiAtLWdpdCBhL3Ny
Yy94ZW5hZ2VudC9kZXZpY2VsaXN0LmggYi9zcmMveGVuYWdlbnQvZGV2aWNlbGlzdC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0MjFlNTgKLS0tIC9kZXYvbnVsbAorKysg
Yi9zcmMveGVuYWdlbnQvZGV2aWNlbGlzdC5oCkBAIC0wLDAgKzEsOTIgQEAKKy8qIENvcHlyaWdo
dCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCAKKyAq
IHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgCisg
KiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqICogICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIAorICogICAg
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgCisgKiAg
ICAgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAqICAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSAKKyAqICAgICBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIAorICogICAgIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciAKKyAqICAgICBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCAKKyAqIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIAorICogSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgCisg
KiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSAKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVS
IE9SIAorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgCisgKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIAorICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIAorICogV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIAorICogTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSAKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgCisgKiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIF9fWEVOQUdFTlRfREVWSUNFTElTVF9IX18KKyNkZWZp
bmUgX19YRU5BR0VOVF9ERVZJQ0VMSVNUX0hfXworCisjaW5jbHVkZSA8d2luZG93cy5oPgorI2lu
Y2x1ZGUgPGRidC5oPgorI2luY2x1ZGUgPG1hcD4KKyNpbmNsdWRlIDxzdHJpbmc+CisKK2NsYXNz
IENEZXZpY2UKK3sKK3B1YmxpYzoKKyAgICBDRGV2aWNlKGNvbnN0IHdjaGFyX3QqIHBhdGgpOwor
ICAgIHZpcnR1YWwgfkNEZXZpY2UoKTsKKworICAgIGNvbnN0IHdjaGFyX3QqIFBhdGgoKSBjb25z
dDsKKworICAgIEhBTkRMRSBPcGVuKEhBTkRMRSBzdmMpOworICAgIHZvaWQgQ2xvc2UoKTsKKwor
cHJvdGVjdGVkOgorICAgIGJvb2wgSW9jdGwoRFdPUkQgaW9jdGwsIHZvaWQqIGluLCBEV09SRCBp
bnN6LCB2b2lkKiBvdXQsIERXT1JEIG91dHN6LCBEV09SRCogYnl0ZXMgPSBOVUxMKTsKKworcHJp
dmF0ZToKKyAgICBzdGQ6OndzdHJpbmcgICAgbV9wYXRoOworICAgIEhBTkRMRSAgICAgICAgICBt
X2hhbmRsZTsKKyAgICBIREVWTk9USUZZICAgICAgbV9ub3RpZnk7Cit9OworCitpbnRlcmZhY2Ug
SURldmljZUNyZWF0b3IKK3sKKyAgICB2aXJ0dWFsIENEZXZpY2UqIENyZWF0ZShjb25zdCB3Y2hh
cl90KiBwYXRoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIE9uRGV2aWNlQWRkZWQoQ0RldmljZSog
ZGV2KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIE9uRGV2aWNlUmVtb3ZlZChDRGV2aWNlKiBkZXYp
ID0gMDsKK307CisKK2NsYXNzIENEZXZpY2VMaXN0Cit7CitwdWJsaWM6CisgICAgQ0RldmljZUxp
c3QoY29uc3QgR1VJRCYgaXRmKTsKKyAgICB+Q0RldmljZUxpc3QoKTsKKworICAgIGJvb2wgU3Rh
cnQoSEFORExFIHN2YywgSURldmljZUNyZWF0b3IqIGltcGwpOworICAgIHZvaWQgU3RvcCgpOwor
ICAgIHZvaWQgT25EZXZpY2VFdmVudChEV09SRCBldnQsIExQVk9JRCBkYXRhKTsKKyAgICBDRGV2
aWNlKiBHZXRGaXJzdERldmljZSgpOworCitwcml2YXRlOgorICAgIHZvaWQgT25EZXZpY2VBZGRl
ZChjb25zdCBzdGQ6OndzdHJpbmcmIHBhdGgpOworICAgIHZvaWQgT25EZXZpY2VRdWVyeVJlbW92
ZShIQU5ETEUgaGFuZGxlKTsKKyAgICB2b2lkIE9uRGV2aWNlUmVtb3ZlZChIQU5ETEUgZGV2KTsK
KworICAgIHR5cGVkZWYgc3RkOjptYXA8IEhBTkRMRSwgQ0RldmljZSogPiBEZXZpY2VNYXA7CisK
KyAgICBHVUlEICAgICAgICBtX2d1aWQ7CisgICAgRGV2aWNlTWFwICAgbV9kZXZzOworICAgIEhE
RVZOT1RJRlkgIG1fbm90aWZ5OworICAgIEhBTkRMRSAgICAgIG1faGFuZGxlOworICAgIElEZXZp
Y2VDcmVhdG9yKiBtX2ltcGw7Cit9OworCisjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy94ZW5hZ2Vu
dC9zZXJ2aWNlLmNwcCBiL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcAppbmRleCBiNzk0NTQ0Li5m
ZWM4ZTk1IDEwMDY0NAotLS0gYS9zcmMveGVuYWdlbnQvc2VydmljZS5jcHAKKysrIGIvc3JjL3hl
bmFnZW50L3NlcnZpY2UuY3BwCkBAIC0xNTEsNyArMTUxLDcgQEAgc3RhdGljIENYZW5BZ2VudCBz
X3NlcnZpY2U7CiAgICAgcmV0dXJuIHNfc2VydmljZS5fX1NlcnZpY2VDb250cm9sSGFuZGxlckV4
KHJlcSwgZXZ0LCBkYXRhLCBjdHh0KTsKIH0KIAotQ1hlbkFnZW50OjpDWGVuQWdlbnQoKSA6IG1f
aGFuZGxlKE5VTEwpLCBtX2V2dGxvZyhOVUxMKQorQ1hlbkFnZW50OjpDWGVuQWdlbnQoKSA6IG1f
aGFuZGxlKE5VTEwpLCBtX2V2dGxvZyhOVUxMKSwgbV9kZXZsaXN0KEdVSURfSU5URVJGQUNFX1hF
TklGQUNFKQogewogICAgIG1fc3RhdHVzLmR3U2VydmljZVR5cGUgICAgICAgID0gU0VSVklDRV9X
SU4zMjsKICAgICBtX3N0YXR1cy5kd0N1cnJlbnRTdGF0ZSAgICAgICA9IFNFUlZJQ0VfU1RBUlRf
UEVORElORzsKQEAgLTE2OSwxOCArMTY5LDM2IEBAIENYZW5BZ2VudDo6fkNYZW5BZ2VudCgpCiAg
ICAgQ2xvc2VIYW5kbGUobV9zdmNfc3RvcCk7CiB9CiAKKy8qdmlydHVhbCovIENEZXZpY2UqIENY
ZW5BZ2VudDo6Q3JlYXRlKGNvbnN0IHdjaGFyX3QqIHBhdGgpCit7CisgICAgcmV0dXJuIG5ldyBD
RGV2aWNlKHBhdGgpOworfQorCisvKnZpcnR1YWwqLyB2b2lkIENYZW5BZ2VudDo6T25EZXZpY2VB
ZGRlZChDRGV2aWNlKiBkZXYpCit7CisgICAgQ1hlbkFnZW50OjpMb2coIk9uRGV2aWNlQWRkZWQo
JXdzKVxuIiwgZGV2LT5QYXRoKCkpOworfQorCisvKnZpcnR1YWwqLyB2b2lkIENYZW5BZ2VudDo6
T25EZXZpY2VSZW1vdmVkKENEZXZpY2UqIGRldikKK3sKKyAgICBDWGVuQWdlbnQ6OkxvZygiT25E
ZXZpY2VSZW1vdmVkKCV3cylcbiIsIGRldi0+UGF0aCgpKTsKK30KKwogdm9pZCBDWGVuQWdlbnQ6
Ok9uU2VydmljZVN0YXJ0KCkKIHsKICAgICBDWGVuQWdlbnQ6OkxvZygiT25TZXJ2aWNlU3RhcnQo
KVxuIik7CisgICAgbV9kZXZsaXN0LlN0YXJ0KG1faGFuZGxlLCB0aGlzKTsKIH0KIAogdm9pZCBD
WGVuQWdlbnQ6Ok9uU2VydmljZVN0b3AoKQogewogICAgIENYZW5BZ2VudDo6TG9nKCJPblNlcnZp
Y2VTdG9wKClcbiIpOworICAgIG1fZGV2bGlzdC5TdG9wKCk7CiB9CiAKIHZvaWQgQ1hlbkFnZW50
OjpPbkRldmljZUV2ZW50KERXT1JEIGV2dCwgTFBWT0lEIGRhdGEpCiB7CisgICAgbV9kZXZsaXN0
Lk9uRGV2aWNlRXZlbnQoZXZ0LCBkYXRhKTsKIH0KIAogYm9vbCBDWGVuQWdlbnQ6OlNlcnZpY2VN
YWluTG9vcCgpCmRpZmYgLS1naXQgYS9zcmMveGVuYWdlbnQvc2VydmljZS5oIGIvc3JjL3hlbmFn
ZW50L3NlcnZpY2UuaAppbmRleCA3NDQ2ZTQxLi5iYTNmNDMwIDEwMDY0NAotLS0gYS9zcmMveGVu
YWdlbnQvc2VydmljZS5oCisrKyBiL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmgKQEAgLTM4LDcgKzM4
LDkgQEAKICNkZWZpbmUgU1ZDX0RJU1BMQVlOQU1FIFBST0RVQ1RfTkFNRV9TVFIgIyMgIkludGVy
ZmFjZSBTZXJ2aWNlIgogI2RlZmluZSBTVkNfREVTQyAiTW9uaXRvcnMgYW5kIHByb3ZpZGVzIHZh
cmlvdXMgbWV0cmljcyB0byBYZW5TdG9yZSIKIAotY2xhc3MgQ1hlbkFnZW50CisjaW5jbHVkZSAi
ZGV2aWNlbGlzdC5oIgorCitjbGFzcyBDWGVuQWdlbnQgOiBwdWJsaWMgSURldmljZUNyZWF0b3IK
IHsKIHB1YmxpYzogLy8gc3RhdGljcwogICAgIHN0YXRpYyB2b2lkIExvZyhjb25zdCBjaGFyKiBm
bXQsIC4uLik7CkBAIC01NCw2ICs1NiwxMSBAQCBwdWJsaWM6IC8vIGN0b3IvZHRvcgogICAgIENY
ZW5BZ2VudCgpOwogICAgIH5DWGVuQWdlbnQoKTsKIAorcHVibGljOiAvLyBJRGV2aWNlQ3JlYXRv
cgorICAgIHZpcnR1YWwgQ0RldmljZSogQ3JlYXRlKGNvbnN0IHdjaGFyX3QqIHBhdGgpOworICAg
IHZpcnR1YWwgdm9pZCBPbkRldmljZUFkZGVkKENEZXZpY2UqIGRldik7CisgICAgdmlydHVhbCB2
b2lkIE9uRGV2aWNlUmVtb3ZlZChDRGV2aWNlKiBkZXYpOworCiBwcml2YXRlOiAvLyBzZXJ2aWNl
IGV2ZW50cwogICAgIHZvaWQgT25TZXJ2aWNlU3RhcnQoKTsKICAgICB2b2lkIE9uU2VydmljZVN0
b3AoKTsKQEAgLTY5LDYgKzc2LDggQEAgcHJpdmF0ZTogLy8gc2VydmljZSBzdXBwb3J0CiAgICAg
U0VSVklDRV9TVEFUVVNfSEFORExFICAgbV9oYW5kbGU7CiAgICAgSEFORExFICAgICAgICAgICAg
ICAgICAgbV9ldnRsb2c7CiAgICAgSEFORExFICAgICAgICAgICAgICAgICAgbV9zdmNfc3RvcDsK
KworICAgIENEZXZpY2VMaXN0ICAgICAgICAgICAgIG1fZGV2bGlzdDsKIH07CiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvdnMyMDEyL3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2ogYi92czIwMTIveGVu
YWdlbnQveGVuYWdlbnQudmN4cHJvagppbmRleCBhZjk5ZjlkLi42YzljOTFjIDEwMDY0NAotLS0g
YS92czIwMTIveGVuYWdlbnQveGVuYWdlbnQudmN4cHJvagorKysgYi92czIwMTIveGVuYWdlbnQv
eGVuYWdlbnQudmN4cHJvagpAQCAtMTk0LDkgKzE5NCwxMSBAQAogICA8L0l0ZW1EZWZpbml0aW9u
R3JvdXA+CiAgIDxJdGVtR3JvdXA+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNc
eGVuYWdlbnRcc2VydmljZS5jcHAiLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHNy
Y1x4ZW5hZ2VudFxkZXZpY2VsaXN0LmNwcCIvPgogICA8L0l0ZW1Hcm91cD4KICAgPEl0ZW1Hcm91
cD4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5hZ2VudFxzZXJ2aWNlLmgi
IC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuYWdlbnRcZGV2aWNlbGlz
dC5oIiAvPgogICA8L0l0ZW1Hcm91cD4KICAgPEl0ZW1Hcm91cD4KICAgICA8Q3VzdG9tQnVpbGQg
SW5jbHVkZT0iLi5cLi5cc3JjXHhlbmFnZW50XG1lc3NhZ2VzLm1jIj4KZGlmZiAtLWdpdCBhL3Zz
MjAxMy94ZW5hZ2VudC94ZW5hZ2VudC52Y3hwcm9qIGIvdnMyMDEzL3hlbmFnZW50L3hlbmFnZW50
LnZjeHByb2oKaW5kZXggNDhlZjNmYy4uZDMxMjYyNiAxMDA2NDQKLS0tIGEvdnMyMDEzL3hlbmFn
ZW50L3hlbmFnZW50LnZjeHByb2oKKysrIGIvdnMyMDEzL3hlbmFnZW50L3hlbmFnZW50LnZjeHBy
b2oKQEAgLTE5OCw5ICsxOTgsMTEgQEAKICAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgogICA8SXRl
bUdyb3VwPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHhlbmFnZW50XHNlcnZp
Y2UuY3BwIi8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuYWdlbnRcZGV2
aWNlbGlzdC5jcHAiLz4KICAgPC9JdGVtR3JvdXA+CiAgIDxJdGVtR3JvdXA+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuYWdlbnRcc2VydmljZS5oIiAvPgorICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cLi5cc3JjXHhlbmFnZW50XGRldmljZWxpc3QuaCIgLz4KICAgPC9J
dGVtR3JvdXA+CiAgIDxJdGVtR3JvdXA+CiAgICAgPEN1c3RvbUJ1aWxkIEluY2x1ZGU9Ii4uXC4u
XHNyY1x4ZW5hZ2VudFx4ZW5hZ2VudC5tYyI+Ci0tIAoxLjkuNC5tc3lzZ2l0LjEKCgpfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFp
bGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMu
eGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 05 10:38:26 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 05 Jul 2016 10:38:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bKNkI-0005I8-JL; Tue, 05 Jul 2016 10:38:26 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=987319bd7=owen.smith@citrix.com>)
 id 1bKNkG-0005Gd-J2
 for win-pv-devel@lists.xenproject.org; Tue, 05 Jul 2016 10:38:24 +0000
Received: from [193.109.254.147] by server-5.bemta-14.messagelabs.com id
 6A/28-08132-F1E8B775; Tue, 05 Jul 2016 10:38:23 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupjkeJIrShJLcpLzFFi42JxWrrBXle+rzr
 c4NM+Tos/ixMdGD0Of7jCEsAYxZqZl5RfkcCaMbE7reB3bcXOXSvZGhh/xXUxcnJICPhLHJx5
 lhHEZhPQkJjRuZgFxBYRUJfY93krE4jNLKAmcX1/FyuILSzgING5cjeQzcHBIqAicam9AiTMK
 +AqcXXqMVaIkRoSmxpmsIHYnAJuEo3b14DFhYBqGvZfYoSwlSS+LX7BDNErKHFy5hMWiFUSEg
 dfQMQlBLglbp+eyjyBkW8WkrJZSMoWMDKtYtQoTi0qSy3SNTTSSyrKTM8oyU3MzNE1NDTRy00
 tLk5MT81JTCrWS87P3cQIDCcGINjBeHaa8yFGSQ4mJVFeh5rqcCG+pPyUyozE4oz4otKc1OJD
 jDIcHEoSvJ69QDnBotT01Iq0zBxgYMOkJTh4lER4mUHSvMUFibnFmekQqVOMilLivKd6gBICI
 ImM0jy4Nlg0XWKUlRLmZQQ6RIinILUoN7MEVf4VozgHo5IwLwfIeJ7MvBK46a+AFjMBLf7pAr
 a4JBEhJdXA6PxgaX1f+uPX2xm5r7/wuN+3yT1g+0qLi3fvFvAKhT/beoeLnd8650/f/elLVh5
 n1Zz3XPtkIj8Xm9vqlKRzTD8/GqjfsLsuFG32/eCP+OUxCU4JB+/WGR4L+/B++Ywpmnktkyo+
 P9BuTVux3vOTo5aHQFDHh993Xq1NTHIQqrViX8B7YdPJu0osxRmJhlrMRcWJADm8y4WhAgAA
X-Env-Sender: prvs=987319bd7=owen.smith@citrix.com
X-Msg-Ref: server-10.tower-27.messagelabs.com!1467715100!51976083!2
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: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 34467 invoked from network); 5 Jul 2016 10:38:22 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
 by server-10.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 5 Jul 2016 10:38:22 -0000
X-IronPort-AV: E=Sophos;i="5.26,579,1459814400"; d="scan'208";a="371291282"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 5 Jul 2016 11:38:07 +0100
Message-ID: <1467715091-13216-3-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
References: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA2
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 2/6] Add device list to track XenIface
	device(s)
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VXNlcyBSZWdpc3RlckRldmljZU5vdGlmaWNhdGlvbkEgYW5kIFNldHVwQXBpIHRvIHRyYWNrCkdV
SURfSU5URVJGQUNFX1hFTklGQUNFIGRldmljZShzKS4gQ2FsbHMgc2VydmljZSBiYXNlIGNsYXNz
CmFmdGVyIGluc2VydGlvbiBhbmQgYmVmb3JlIHJlbW92ZSBjb21wbGV0ZS4KClNpZ25lZC1vZmYt
Ynk6IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4KLS0tCiBzcmMveGVuYWdlbnQv
ZGV2aWNlbGlzdC5jcHAgICAgICB8IDI5NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysKIHNyYy94ZW5hZ2VudC9kZXZpY2VsaXN0LmggICAgICAgIHwgIDkyICsrKysrKysr
KysrKwogc3JjL3hlbmFnZW50L3NlcnZpY2UuY3BwICAgICAgICAgfCAgMjAgKystCiBzcmMveGVu
YWdlbnQvc2VydmljZS5oICAgICAgICAgICB8ICAxMSArLQogdnMyMDEyL3hlbmFnZW50L3hlbmFn
ZW50LnZjeHByb2ogfCAgIDIgKwogdnMyMDEzL3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2ogfCAg
IDIgKwogNiBmaWxlcyBjaGFuZ2VkLCA0MjEgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMveGVuYWdlbnQvZGV2aWNlbGlzdC5jcHAKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBzcmMveGVuYWdlbnQvZGV2aWNlbGlzdC5oCgpkaWZmIC0tZ2l0IGEvc3JjL3hl
bmFnZW50L2RldmljZWxpc3QuY3BwIGIvc3JjL3hlbmFnZW50L2RldmljZWxpc3QuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlOTQ4YzEKLS0tIC9kZXYvbnVsbAorKysg
Yi9zcmMveGVuYWdlbnQvZGV2aWNlbGlzdC5jcHAKQEAgLTAsMCArMSwyOTYgQEAKKy8qIENvcHly
aWdodCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCAK
KyAqIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
CisgKiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqICogICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIAorICog
ICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgCisg
KiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAqICAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSAKKyAqICAgICBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIAorICogICAgIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciAKKyAqICAgICBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCAKKyAqIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIAorICog
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
CisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSAKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9M
REVSIE9SIAorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgCisgKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIAorICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIAorICogV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIAorICogTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSAKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgCisgKiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSA8d2luZG93cy5oPgorI2luY2x1ZGUgPHN0cmlu
Zz4KKyNpbmNsdWRlIDxzZXR1cGFwaS5oPgorI3ByYWdtYSBjb21tZW50IChsaWIgLCAic2V0dXBh
cGkubGliIiApCisKKyNpbmNsdWRlICJkZXZpY2VsaXN0LmgiCisKKy8vIGRlYWwgd2l0aCBTZXR1
cEFwaSBhbmQgUmVnaXN0ZXJEZXZpY2VOb3RpZmljYXRpb24gdXNpbmcgZGlmZmVyZW50IHN0cmlu
ZyB0eXBlcworc3RhdGljIHN0ZDo6d3N0cmluZyBDb252ZXJ0KGNvbnN0IGNoYXIqIHN0cikKK3sK
KyAgICBzdGQ6OndzdHJpbmcgd3N0cjsKKyAgICB3c3RyLnJlc2VydmUoc3RybGVuKHN0cikgKyAx
KTsKKyAgICBNdWx0aUJ5dGVUb1dpZGVDaGFyKENQX0FDUCwgMCwgc3RyLCAtMSwgKExQV1NUUil3
c3RyLmRhdGEoKSwgKGludCl3c3RyLmNhcGFjaXR5KCkpOworICAgIHJldHVybiB3c3RyOworfQor
CitzdGF0aWMgc3RkOjp3c3RyaW5nIENvbnZlcnQoY29uc3Qgd2NoYXJfdCogd3N0cikKK3sKKyAg
ICByZXR1cm4gc3RkOjp3c3RyaW5nKHdzdHIpOworfQorCitDRGV2aWNlOjpDRGV2aWNlKGNvbnN0
IHdjaGFyX3QqIHBhdGgpIDoKKyAgICBtX2hhbmRsZShJTlZBTElEX0hBTkRMRV9WQUxVRSksIG1f
cGF0aChwYXRoKSwgbV9ub3RpZnkoTlVMTCkKK3sKK30KKworLyp2aXJ0dWFsKi8gQ0RldmljZTo6
fkNEZXZpY2UoKQoreworICAgIENsb3NlKCk7Cit9CisKK2NvbnN0IHdjaGFyX3QqIENEZXZpY2U6
OlBhdGgoKSBjb25zdAoreworICAgIHJldHVybiBtX3BhdGguY19zdHIoKTsKK30KKworSEFORExF
IENEZXZpY2U6Ok9wZW4oSEFORExFIHN2YykKK3sKKyAgICBDbG9zZSgpOworCisgICAgbV9oYW5k
bGUgPSBDcmVhdGVGaWxlVyhtX3BhdGguY19zdHIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEdFTkVSSUNfUkVBRCB8IEdFTkVSSUNfV1JJVEUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICBGSUxFX1NIQVJFX1JFQUQgfCBGSUxFX1NIQVJFX1dSSVRFLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE9QRU5fRVhJU1RJ
TkcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTlVMTCk7CisgICAgaWYgKG1faGFuZGxlID09IElOVkFMSURfSEFORExFX1ZBTFVFKQor
ICAgICAgICByZXR1cm4gSU5WQUxJRF9IQU5ETEVfVkFMVUU7CisKKyAgICBERVZfQlJPQURDQVNU
X0hBTkRMRSBkZXZoZGwgPSB7IDAgfTsKKyAgICBkZXZoZGwuZGJjaF9zaXplID0gc2l6ZW9mKGRl
dmhkbCk7CisgICAgZGV2aGRsLmRiY2hfZGV2aWNldHlwZSA9IERCVF9ERVZUWVBfSEFORExFOwor
ICAgIGRldmhkbC5kYmNoX2hhbmRsZSA9IG1faGFuZGxlOworCisgICAgbV9ub3RpZnkgPSBSZWdp
c3RlckRldmljZU5vdGlmaWNhdGlvbihzdmMsICZkZXZoZGwsIERFVklDRV9OT1RJRllfU0VSVklD
RV9IQU5ETEUpOworICAgIGlmIChtX25vdGlmeSA9PSBOVUxMKSB7CisgICAgICAgIENsb3NlKCk7
CisgICAgICAgIHJldHVybiBJTlZBTElEX0hBTkRMRV9WQUxVRTsKKyAgICB9CisKKyAgICByZXR1
cm4gbV9oYW5kbGU7Cit9CisKK3ZvaWQgQ0RldmljZTo6Q2xvc2UoKQoreworICAgIGlmIChtX2hh
bmRsZSA9PSBJTlZBTElEX0hBTkRMRV9WQUxVRSkKKyAgICAgICAgcmV0dXJuOworICAgIENsb3Nl
SGFuZGxlKG1faGFuZGxlKTsKKyAgICBtX2hhbmRsZSA9IElOVkFMSURfSEFORExFX1ZBTFVFOwor
fQorCitib29sIENEZXZpY2U6OklvY3RsKERXT1JEIGlvY3RsLCB2b2lkKiBpbiwgRFdPUkQgaW5z
eiwgdm9pZCogb3V0LCBEV09SRCBvdXRzeiwgRFdPUkQqIGJ5dGVzIC8qPSBOVUxMKi8pCit7Cisg
ICAgaWYgKG1faGFuZGxlID09IElOVkFMSURfSEFORExFX1ZBTFVFKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBEV09SRCBfYnl0ZXM7CisgICAgaWYgKCFEZXZpY2VJb0NvbnRyb2wobV9o
YW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgaW9jdGwsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgaW5zeiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICBvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgb3V0c3osCisgICAg
ICAgICAgICAgICAgICAgICAgICAgKGJ5dGVzID09IE5VTEwpID8gJl9ieXRlcyA6IGJ5dGVzLAor
ICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKworQ0RldmljZUxpc3Q6OkNEZXZpY2VMaXN0KGNvbnN0IEdV
SUQmIGl0ZikgOgorICAgIG1fZ3VpZChpdGYpLCBtX25vdGlmeShOVUxMKSwgbV9oYW5kbGUoTlVM
TCksIG1faW1wbChOVUxMKQoreworfQorCitDRGV2aWNlTGlzdDo6fkNEZXZpY2VMaXN0KCkKK3sK
KyAgICBTdG9wKCk7Cit9CisKK2Jvb2wgQ0RldmljZUxpc3Q6OlN0YXJ0KEhBTkRMRSBoYW5kbGUs
IElEZXZpY2VDcmVhdG9yKiBpbXBsKQoreworICAgIFN0b3AoKTsKKworICAgIG1faGFuZGxlID0g
aGFuZGxlOworICAgIG1faW1wbCA9IGltcGw7CisKKyAgICBERVZfQlJPQURDQVNUX0RFVklDRUlO
VEVSRkFDRSBkZXYgPSB7IDAgfTsKKyAgICBkZXYuZGJjY19zaXplID0gc2l6ZW9mKGRldik7Cisg
ICAgZGV2LmRiY2NfZGV2aWNldHlwZSA9IERCVF9ERVZUWVBfREVWSUNFSU5URVJGQUNFOworICAg
IGRldi5kYmNjX2NsYXNzZ3VpZCA9IG1fZ3VpZDsKKworICAgIG1fbm90aWZ5ID0gUmVnaXN0ZXJE
ZXZpY2VOb3RpZmljYXRpb25BKGhhbmRsZSwgJmRldiwgREVWSUNFX05PVElGWV9TRVJWSUNFX0hB
TkRMRSk7CisgICAgaWYgKG1fbm90aWZ5ID09IE5VTEwpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIEhERVZJTkZPICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZm87CisgICAgU1Bf
REVWSUNFX0lOVEVSRkFDRV9EQVRBICAgICAgICAgICAgaXRmOworICAgIFBTUF9ERVZJQ0VfSU5U
RVJGQUNFX0RFVEFJTF9EQVRBICAgIGRldGFpbDsKKyAgICBVTE9ORyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZHg7CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGVuOworCisgICAgaW5mbyA9IFNldHVwRGlHZXRDbGFzc0RldnMoJm1fZ3VpZCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRElHQ0ZfUFJFU0VO
VCB8IERJR0NGX0RFVklDRUlOVEVSRkFDRSk7CisgICAgaWYgKGluZm8gPT0gSU5WQUxJRF9IQU5E
TEVfVkFMVUUpIAorICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gbm9uIGZhdGFsLCBqdXN0IG1pc3Np
bmcgYWxyZWFkeSBwcmVzZW50IGRldmljZShzKQorCisgICAgaXRmLmNiU2l6ZSA9IHNpemVvZihT
UF9ERVZJQ0VfSU5URVJGQUNFX0RBVEEpOworICAgIGZvciAoaWR4ID0gMDsgCisgICAgICAgIFNl
dHVwRGlFbnVtRGV2aWNlSW50ZXJmYWNlcyhpbmZvLCBOVUxMLCAmbV9ndWlkLCBpZHgsICZpdGYp
OyAKKyAgICAgICAgKytpZHgpIHsKKyAgICAgICAgU2V0dXBEaUdldERldmljZUludGVyZmFjZURl
dGFpbChpbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpdGYs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICZsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTlVMTCk7CisgICAgICAgIGRldGFpbCA9IChQU1BfREVWSUNFX0lOVEVSRkFDRV9E
RVRBSUxfREFUQSluZXcgQllURVtsZW5dOworICAgICAgICBpZiAoZGV0YWlsID09IE5VTEwpCisg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgZGV0YWlsLT5jYlNpemUgPSBzaXplb2YoU1Bf
REVWSUNFX0lOVEVSRkFDRV9ERVRBSUxfREFUQSk7CisgICAgICAgIGlmIChTZXR1cERpR2V0RGV2
aWNlSW50ZXJmYWNlRGV0YWlsKGluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICZpdGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRldGFpbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxM
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKSkgewor
ICAgICAgICAgICAgT25EZXZpY2VBZGRlZChDb252ZXJ0KChjb25zdCBjaGFyKilkZXRhaWwtPkRl
dmljZVBhdGgpKTsKKyAgICAgICAgfQorICAgICAgICBkZWxldGUgW10gZGV0YWlsOworICAgICAg
ICBpdGYuY2JTaXplID0gc2l6ZW9mKFNQX0RFVklDRV9JTlRFUkZBQ0VfREFUQSk7CisgICAgfQor
ICAgIFNldHVwRGlEZXN0cm95RGV2aWNlSW5mb0xpc3QoaW5mbyk7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKK3ZvaWQgQ0RldmljZUxpc3Q6OlN0b3AoKQoreworICAgIGlmIChtX25vdGlmeSAhPSBO
VUxMKQorICAgICAgICBVbnJlZ2lzdGVyRGV2aWNlTm90aWZpY2F0aW9uKG1fbm90aWZ5KTsKKyAg
ICBtX25vdGlmeSA9IE5VTEw7CisKKyAgICBmb3IgKERldmljZU1hcDo6aXRlcmF0b3IgaXQgPSBt
X2RldnMuYmVnaW4oKTsKKyAgICAgICAgICAgIGl0ICE9IG1fZGV2cy5lbmQoKTsKKyAgICAgICAg
ICAgICsraXQpIHsKKyAgICAgICAgZGVsZXRlIGl0LT5zZWNvbmQ7CisgICAgfQorICAgIG1fZGV2
cy5jbGVhcigpOworfQorCit2b2lkIENEZXZpY2VMaXN0OjpPbkRldmljZUV2ZW50KERXT1JEIGV2
dCwgTFBWT0lEIGRhdGEpCit7CisgICAgUERFVl9CUk9BRENBU1RfSERSICAgICAgICAgICAgICBo
ZHI7CisgICAgUERFVl9CUk9BRENBU1RfREVWSUNFSU5URVJGQUNFICBpdGY7CisgICAgUERFVl9C
Uk9BRENBU1RfSEFORExFICAgICAgICAgICBoZGw7CisKKyAgICBoZHIgPSAoUERFVl9CUk9BRENB
U1RfSERSKWRhdGE7CisgICAgc3dpdGNoIChldnQpIHsKKyAgICBjYXNlIERCVF9ERVZJQ0VBUlJJ
VkFMOgorICAgICAgICBpZiAoaGRyLT5kYmNoX2RldmljZXR5cGUgPT0gREJUX0RFVlRZUF9ERVZJ
Q0VJTlRFUkZBQ0UpIHsKKyAgICAgICAgICAgIGl0ZiA9IChQREVWX0JST0FEQ0FTVF9ERVZJQ0VJ
TlRFUkZBQ0UpaGRyOworICAgICAgICAgICAgT25EZXZpY2VBZGRlZChDb252ZXJ0KChjb25zdCB3
Y2hhcl90KilpdGYtPmRiY2NfbmFtZSkpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworCisg
ICAgY2FzZSBEQlRfREVWSUNFUVVFUllSRU1PVkU6CisgICAgICAgIGlmIChoZHItPmRiY2hfZGV2
aWNldHlwZSA9PSBEQlRfREVWVFlQX0hBTkRMRSkgeworICAgICAgICAgICAgaGRsID0gKFBERVZf
QlJPQURDQVNUX0hBTkRMRSloZHI7CisgICAgICAgICAgICBPbkRldmljZVF1ZXJ5UmVtb3ZlKGhk
bC0+ZGJjaF9oYW5kbGUpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBE
QlRfREVWSUNFUkVNT1ZFUEVORElORzoKKyAgICAgICAgaWYgKGhkci0+ZGJjaF9kZXZpY2V0eXBl
ID09IERCVF9ERVZUWVBfSEFORExFKSB7CisgICAgICAgICAgICBoZGwgPSAoUERFVl9CUk9BRENB
U1RfSEFORExFKWhkcjsKKyAgICAgICAgICAgIFVucmVnaXN0ZXJEZXZpY2VOb3RpZmljYXRpb24o
aGRsLT5kYmNoX2hkZXZub3RpZnkpOworICAgICAgICAgICAgT25EZXZpY2VSZW1vdmVkKGhkbC0+
ZGJjaF9oYW5kbGUpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworCisgICAgZGVmYXVsdDoK
KyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCitDRGV2aWNlKiBDRGV2aWNlTGlzdDo6R2V0Rmly
c3REZXZpY2UoKQoreworICAgIERldmljZU1hcDo6aXRlcmF0b3IgaXQgPSBtX2RldnMuYmVnaW4o
KTsKKyAgICBpZiAoaXQgPT0gbV9kZXZzLmVuZCgpKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAg
ICByZXR1cm4gaXQtPnNlY29uZDsKK30KKwordm9pZCBDRGV2aWNlTGlzdDo6T25EZXZpY2VBZGRl
ZChjb25zdCBzdGQ6OndzdHJpbmcmIHBhdGgpCit7CisgICAgQ0RldmljZSogZGV2OworICAgIGlm
IChtX2ltcGwgPT0gTlVMTCkKKyAgICAgICAgZGV2ID0gbmV3IENEZXZpY2UocGF0aC5jX3N0cigp
KTsKKyAgICBlbHNlCisgICAgICAgIGRldiA9IG1faW1wbC0+Q3JlYXRlKHBhdGguY19zdHIoKSk7
CisgICAgaWYgKGRldiA9PSBOVUxMKQorICAgICAgICByZXR1cm47IC8vIGNyZWF0ZSBmYWlsZWQK
KworICAgIEhBTkRMRSBoYW5kbGUgPSBkZXYtPk9wZW4obV9oYW5kbGUpOworICAgIGlmIChoYW5k
bGUgPT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUpIHsKKyAgICAgICAgZGVsZXRlIGRldjsKKyAgICAg
ICAgcmV0dXJuOyAvLyBvcGVuIGZhaWxlZAorICAgIH0KKworICAgIERldmljZU1hcDo6aXRlcmF0
b3IgaXQgPSBtX2RldnMuZmluZChoYW5kbGUpOworICAgIGlmIChpdCAhPSBtX2RldnMuZW5kKCkp
IHsKKyAgICAgICAgZGVsZXRlIGRldjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1f
ZGV2c1toYW5kbGVdID0gZGV2OworICAgIGlmIChtX2ltcGwpCisgICAgICAgIG1faW1wbC0+T25E
ZXZpY2VBZGRlZChkZXYpOworfQorCit2b2lkIENEZXZpY2VMaXN0OjpPbkRldmljZVF1ZXJ5UmVt
b3ZlKEhBTkRMRSBoYW5kbGUpCit7CisgICAgRGV2aWNlTWFwOjppdGVyYXRvciBpdCA9IG1fZGV2
cy5maW5kKGhhbmRsZSk7CisgICAgaWYgKGl0ID09IG1fZGV2cy5lbmQoKSkKKyAgICAgICAgcmV0
dXJuOyAvLyBzcHVyaW91cyBldmVudD8KKworICAgIENEZXZpY2UqIGRldiA9IGl0LT5zZWNvbmQ7
CisgICAgaWYgKG1faW1wbCkKKyAgICAgICAgbV9pbXBsLT5PbkRldmljZVJlbW92ZWQoZGV2KTsK
KyAgICBkZXYtPkNsb3NlKCk7Cit9CisKK3ZvaWQgQ0RldmljZUxpc3Q6Ok9uRGV2aWNlUmVtb3Zl
ZChIQU5ETEUgaGFuZGxlKQoreworICAgIERldmljZU1hcDo6aXRlcmF0b3IgaXQgPSBtX2RldnMu
ZmluZChoYW5kbGUpOworICAgIGlmIChpdCA9PSBtX2RldnMuZW5kKCkpCisgICAgICAgIHJldHVy
bjsgLy8gc3B1cmlvdXMgZXZlbnQ/CisKKyAgICBDRGV2aWNlKiBkZXYgPSBpdC0+c2Vjb25kOwor
ICAgIGRlbGV0ZSBkZXY7CisgICAgbV9kZXZzLmVyYXNlKGl0KTsKK30KZGlmZiAtLWdpdCBhL3Ny
Yy94ZW5hZ2VudC9kZXZpY2VsaXN0LmggYi9zcmMveGVuYWdlbnQvZGV2aWNlbGlzdC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0MjFlNTgKLS0tIC9kZXYvbnVsbAorKysg
Yi9zcmMveGVuYWdlbnQvZGV2aWNlbGlzdC5oCkBAIC0wLDAgKzEsOTIgQEAKKy8qIENvcHlyaWdo
dCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCAKKyAq
IHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgCisg
KiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqICogICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIAorICogICAg
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgCisgKiAg
ICAgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAqICAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSAKKyAqICAgICBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIAorICogICAgIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciAKKyAqICAgICBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCAKKyAqIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIAorICogSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgCisg
KiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSAKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVS
IE9SIAorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgCisgKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIAorICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIAorICogV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIAorICogTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSAKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgCisgKiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIF9fWEVOQUdFTlRfREVWSUNFTElTVF9IX18KKyNkZWZp
bmUgX19YRU5BR0VOVF9ERVZJQ0VMSVNUX0hfXworCisjaW5jbHVkZSA8d2luZG93cy5oPgorI2lu
Y2x1ZGUgPGRidC5oPgorI2luY2x1ZGUgPG1hcD4KKyNpbmNsdWRlIDxzdHJpbmc+CisKK2NsYXNz
IENEZXZpY2UKK3sKK3B1YmxpYzoKKyAgICBDRGV2aWNlKGNvbnN0IHdjaGFyX3QqIHBhdGgpOwor
ICAgIHZpcnR1YWwgfkNEZXZpY2UoKTsKKworICAgIGNvbnN0IHdjaGFyX3QqIFBhdGgoKSBjb25z
dDsKKworICAgIEhBTkRMRSBPcGVuKEhBTkRMRSBzdmMpOworICAgIHZvaWQgQ2xvc2UoKTsKKwor
cHJvdGVjdGVkOgorICAgIGJvb2wgSW9jdGwoRFdPUkQgaW9jdGwsIHZvaWQqIGluLCBEV09SRCBp
bnN6LCB2b2lkKiBvdXQsIERXT1JEIG91dHN6LCBEV09SRCogYnl0ZXMgPSBOVUxMKTsKKworcHJp
dmF0ZToKKyAgICBzdGQ6OndzdHJpbmcgICAgbV9wYXRoOworICAgIEhBTkRMRSAgICAgICAgICBt
X2hhbmRsZTsKKyAgICBIREVWTk9USUZZICAgICAgbV9ub3RpZnk7Cit9OworCitpbnRlcmZhY2Ug
SURldmljZUNyZWF0b3IKK3sKKyAgICB2aXJ0dWFsIENEZXZpY2UqIENyZWF0ZShjb25zdCB3Y2hh
cl90KiBwYXRoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIE9uRGV2aWNlQWRkZWQoQ0RldmljZSog
ZGV2KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIE9uRGV2aWNlUmVtb3ZlZChDRGV2aWNlKiBkZXYp
ID0gMDsKK307CisKK2NsYXNzIENEZXZpY2VMaXN0Cit7CitwdWJsaWM6CisgICAgQ0RldmljZUxp
c3QoY29uc3QgR1VJRCYgaXRmKTsKKyAgICB+Q0RldmljZUxpc3QoKTsKKworICAgIGJvb2wgU3Rh
cnQoSEFORExFIHN2YywgSURldmljZUNyZWF0b3IqIGltcGwpOworICAgIHZvaWQgU3RvcCgpOwor
ICAgIHZvaWQgT25EZXZpY2VFdmVudChEV09SRCBldnQsIExQVk9JRCBkYXRhKTsKKyAgICBDRGV2
aWNlKiBHZXRGaXJzdERldmljZSgpOworCitwcml2YXRlOgorICAgIHZvaWQgT25EZXZpY2VBZGRl
ZChjb25zdCBzdGQ6OndzdHJpbmcmIHBhdGgpOworICAgIHZvaWQgT25EZXZpY2VRdWVyeVJlbW92
ZShIQU5ETEUgaGFuZGxlKTsKKyAgICB2b2lkIE9uRGV2aWNlUmVtb3ZlZChIQU5ETEUgZGV2KTsK
KworICAgIHR5cGVkZWYgc3RkOjptYXA8IEhBTkRMRSwgQ0RldmljZSogPiBEZXZpY2VNYXA7CisK
KyAgICBHVUlEICAgICAgICBtX2d1aWQ7CisgICAgRGV2aWNlTWFwICAgbV9kZXZzOworICAgIEhE
RVZOT1RJRlkgIG1fbm90aWZ5OworICAgIEhBTkRMRSAgICAgIG1faGFuZGxlOworICAgIElEZXZp
Y2VDcmVhdG9yKiBtX2ltcGw7Cit9OworCisjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy94ZW5hZ2Vu
dC9zZXJ2aWNlLmNwcCBiL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcAppbmRleCBiNzk0NTQ0Li5m
ZWM4ZTk1IDEwMDY0NAotLS0gYS9zcmMveGVuYWdlbnQvc2VydmljZS5jcHAKKysrIGIvc3JjL3hl
bmFnZW50L3NlcnZpY2UuY3BwCkBAIC0xNTEsNyArMTUxLDcgQEAgc3RhdGljIENYZW5BZ2VudCBz
X3NlcnZpY2U7CiAgICAgcmV0dXJuIHNfc2VydmljZS5fX1NlcnZpY2VDb250cm9sSGFuZGxlckV4
KHJlcSwgZXZ0LCBkYXRhLCBjdHh0KTsKIH0KIAotQ1hlbkFnZW50OjpDWGVuQWdlbnQoKSA6IG1f
aGFuZGxlKE5VTEwpLCBtX2V2dGxvZyhOVUxMKQorQ1hlbkFnZW50OjpDWGVuQWdlbnQoKSA6IG1f
aGFuZGxlKE5VTEwpLCBtX2V2dGxvZyhOVUxMKSwgbV9kZXZsaXN0KEdVSURfSU5URVJGQUNFX1hF
TklGQUNFKQogewogICAgIG1fc3RhdHVzLmR3U2VydmljZVR5cGUgICAgICAgID0gU0VSVklDRV9X
SU4zMjsKICAgICBtX3N0YXR1cy5kd0N1cnJlbnRTdGF0ZSAgICAgICA9IFNFUlZJQ0VfU1RBUlRf
UEVORElORzsKQEAgLTE2OSwxOCArMTY5LDM2IEBAIENYZW5BZ2VudDo6fkNYZW5BZ2VudCgpCiAg
ICAgQ2xvc2VIYW5kbGUobV9zdmNfc3RvcCk7CiB9CiAKKy8qdmlydHVhbCovIENEZXZpY2UqIENY
ZW5BZ2VudDo6Q3JlYXRlKGNvbnN0IHdjaGFyX3QqIHBhdGgpCit7CisgICAgcmV0dXJuIG5ldyBD
RGV2aWNlKHBhdGgpOworfQorCisvKnZpcnR1YWwqLyB2b2lkIENYZW5BZ2VudDo6T25EZXZpY2VB
ZGRlZChDRGV2aWNlKiBkZXYpCit7CisgICAgQ1hlbkFnZW50OjpMb2coIk9uRGV2aWNlQWRkZWQo
JXdzKVxuIiwgZGV2LT5QYXRoKCkpOworfQorCisvKnZpcnR1YWwqLyB2b2lkIENYZW5BZ2VudDo6
T25EZXZpY2VSZW1vdmVkKENEZXZpY2UqIGRldikKK3sKKyAgICBDWGVuQWdlbnQ6OkxvZygiT25E
ZXZpY2VSZW1vdmVkKCV3cylcbiIsIGRldi0+UGF0aCgpKTsKK30KKwogdm9pZCBDWGVuQWdlbnQ6
Ok9uU2VydmljZVN0YXJ0KCkKIHsKICAgICBDWGVuQWdlbnQ6OkxvZygiT25TZXJ2aWNlU3RhcnQo
KVxuIik7CisgICAgbV9kZXZsaXN0LlN0YXJ0KG1faGFuZGxlLCB0aGlzKTsKIH0KIAogdm9pZCBD
WGVuQWdlbnQ6Ok9uU2VydmljZVN0b3AoKQogewogICAgIENYZW5BZ2VudDo6TG9nKCJPblNlcnZp
Y2VTdG9wKClcbiIpOworICAgIG1fZGV2bGlzdC5TdG9wKCk7CiB9CiAKIHZvaWQgQ1hlbkFnZW50
OjpPbkRldmljZUV2ZW50KERXT1JEIGV2dCwgTFBWT0lEIGRhdGEpCiB7CisgICAgbV9kZXZsaXN0
Lk9uRGV2aWNlRXZlbnQoZXZ0LCBkYXRhKTsKIH0KIAogYm9vbCBDWGVuQWdlbnQ6OlNlcnZpY2VN
YWluTG9vcCgpCmRpZmYgLS1naXQgYS9zcmMveGVuYWdlbnQvc2VydmljZS5oIGIvc3JjL3hlbmFn
ZW50L3NlcnZpY2UuaAppbmRleCA3NDQ2ZTQxLi5iYTNmNDMwIDEwMDY0NAotLS0gYS9zcmMveGVu
YWdlbnQvc2VydmljZS5oCisrKyBiL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmgKQEAgLTM4LDcgKzM4
LDkgQEAKICNkZWZpbmUgU1ZDX0RJU1BMQVlOQU1FIFBST0RVQ1RfTkFNRV9TVFIgIyMgIkludGVy
ZmFjZSBTZXJ2aWNlIgogI2RlZmluZSBTVkNfREVTQyAiTW9uaXRvcnMgYW5kIHByb3ZpZGVzIHZh
cmlvdXMgbWV0cmljcyB0byBYZW5TdG9yZSIKIAotY2xhc3MgQ1hlbkFnZW50CisjaW5jbHVkZSAi
ZGV2aWNlbGlzdC5oIgorCitjbGFzcyBDWGVuQWdlbnQgOiBwdWJsaWMgSURldmljZUNyZWF0b3IK
IHsKIHB1YmxpYzogLy8gc3RhdGljcwogICAgIHN0YXRpYyB2b2lkIExvZyhjb25zdCBjaGFyKiBm
bXQsIC4uLik7CkBAIC01NCw2ICs1NiwxMSBAQCBwdWJsaWM6IC8vIGN0b3IvZHRvcgogICAgIENY
ZW5BZ2VudCgpOwogICAgIH5DWGVuQWdlbnQoKTsKIAorcHVibGljOiAvLyBJRGV2aWNlQ3JlYXRv
cgorICAgIHZpcnR1YWwgQ0RldmljZSogQ3JlYXRlKGNvbnN0IHdjaGFyX3QqIHBhdGgpOworICAg
IHZpcnR1YWwgdm9pZCBPbkRldmljZUFkZGVkKENEZXZpY2UqIGRldik7CisgICAgdmlydHVhbCB2
b2lkIE9uRGV2aWNlUmVtb3ZlZChDRGV2aWNlKiBkZXYpOworCiBwcml2YXRlOiAvLyBzZXJ2aWNl
IGV2ZW50cwogICAgIHZvaWQgT25TZXJ2aWNlU3RhcnQoKTsKICAgICB2b2lkIE9uU2VydmljZVN0
b3AoKTsKQEAgLTY5LDYgKzc2LDggQEAgcHJpdmF0ZTogLy8gc2VydmljZSBzdXBwb3J0CiAgICAg
U0VSVklDRV9TVEFUVVNfSEFORExFICAgbV9oYW5kbGU7CiAgICAgSEFORExFICAgICAgICAgICAg
ICAgICAgbV9ldnRsb2c7CiAgICAgSEFORExFICAgICAgICAgICAgICAgICAgbV9zdmNfc3RvcDsK
KworICAgIENEZXZpY2VMaXN0ICAgICAgICAgICAgIG1fZGV2bGlzdDsKIH07CiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvdnMyMDEyL3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2ogYi92czIwMTIveGVu
YWdlbnQveGVuYWdlbnQudmN4cHJvagppbmRleCBhZjk5ZjlkLi42YzljOTFjIDEwMDY0NAotLS0g
YS92czIwMTIveGVuYWdlbnQveGVuYWdlbnQudmN4cHJvagorKysgYi92czIwMTIveGVuYWdlbnQv
eGVuYWdlbnQudmN4cHJvagpAQCAtMTk0LDkgKzE5NCwxMSBAQAogICA8L0l0ZW1EZWZpbml0aW9u
R3JvdXA+CiAgIDxJdGVtR3JvdXA+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNc
eGVuYWdlbnRcc2VydmljZS5jcHAiLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHNy
Y1x4ZW5hZ2VudFxkZXZpY2VsaXN0LmNwcCIvPgogICA8L0l0ZW1Hcm91cD4KICAgPEl0ZW1Hcm91
cD4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5hZ2VudFxzZXJ2aWNlLmgi
IC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuYWdlbnRcZGV2aWNlbGlz
dC5oIiAvPgogICA8L0l0ZW1Hcm91cD4KICAgPEl0ZW1Hcm91cD4KICAgICA8Q3VzdG9tQnVpbGQg
SW5jbHVkZT0iLi5cLi5cc3JjXHhlbmFnZW50XG1lc3NhZ2VzLm1jIj4KZGlmZiAtLWdpdCBhL3Zz
MjAxMy94ZW5hZ2VudC94ZW5hZ2VudC52Y3hwcm9qIGIvdnMyMDEzL3hlbmFnZW50L3hlbmFnZW50
LnZjeHByb2oKaW5kZXggNDhlZjNmYy4uZDMxMjYyNiAxMDA2NDQKLS0tIGEvdnMyMDEzL3hlbmFn
ZW50L3hlbmFnZW50LnZjeHByb2oKKysrIGIvdnMyMDEzL3hlbmFnZW50L3hlbmFnZW50LnZjeHBy
b2oKQEAgLTE5OCw5ICsxOTgsMTEgQEAKICAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgogICA8SXRl
bUdyb3VwPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHhlbmFnZW50XHNlcnZp
Y2UuY3BwIi8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuYWdlbnRcZGV2
aWNlbGlzdC5jcHAiLz4KICAgPC9JdGVtR3JvdXA+CiAgIDxJdGVtR3JvdXA+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuYWdlbnRcc2VydmljZS5oIiAvPgorICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cLi5cc3JjXHhlbmFnZW50XGRldmljZWxpc3QuaCIgLz4KICAgPC9J
dGVtR3JvdXA+CiAgIDxJdGVtR3JvdXA+CiAgICAgPEN1c3RvbUJ1aWxkIEluY2x1ZGU9Ii4uXC4u
XHNyY1x4ZW5hZ2VudFx4ZW5hZ2VudC5tYyI+Ci0tIAoxLjkuNC5tc3lzZ2l0LjEKCgpfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFp
bGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMu
eGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 05 10:38:26 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 05 Jul 2016 10:38:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bKNkI-0005IN-Kb; Tue, 05 Jul 2016 10:38:26 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=987319bd7=owen.smith@citrix.com>)
 id 1bKNkG-0005Gt-Vz
 for win-pv-devel@lists.xenproject.org; Tue, 05 Jul 2016 10:38:25 +0000
Received: from [85.158.143.35] by server-1.bemta-6.messagelabs.com id
 49/00-09256-02E8B775; Tue, 05 Jul 2016 10:38:24 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprNIsWRWlGSWpSXmKPExsXitHRDpK58X3W
 4Qf8DTYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCa8e/uNcaCJ4EV088tZW5g3OnUxcjJISHgL7Hw
 YycziM0moCExo3MxC4gtIqAuse/zViYQm1lATeL6/i5WEFsYKP5k4TKwehYBFYljd06C2bwCr
 hJ/bj9ig5ipIbGpYQaYzSngJtG4fQ1YrxBQTcP+S4wQtpLEt8UvoHoFJU7OfMICsUtC4uALiL
 iEALfE7dNTmScw8s1CUjYLSdkCRqZVjOrFqUVlqUW6RnpJRZnpGSW5iZk5uoYGZnq5qcXFiem
 pOYlJxXrJ+bmbGIEBxQAEOxiX/XU6xCjJwaQkyutQUx0uxJeUn1KZkVicEV9UmpNafIhRhoND
 SYL3ag9QTrAoNT21Ii0zBxjaMGkJDh4lEV7mXqA0b3FBYm5xZjpE6hSjLses5XfWMgmx5OXnp
 UqJ89qCFAmAFGWU5sGNgMXZJUZZKWFeRqCjhHgKUotyM0tQ5V8xinMwKgnzngK5hCczrwRu0y
 ugI5iAjvjpAnZESSJCSqqBUUcpqPO2/oETFeuEN0RVzKyN7E2eHLSzMoRBIr53sl9T8Y80o86
 4iRcVQhgXT3u/O6qZYd1E5bx/pZzdu903LuyeJ5stW/BbXfRe1RUT7vwzvx0OOC+SqZcKn5lw
 qLdH19PwvseBaZ92bpSMDDaXCuh78L7C6fw2+6PluQxcW544evKetopWYinOSDTUYi4qTgQAR
 Wv15K4CAAA=
X-Env-Sender: prvs=987319bd7=owen.smith@citrix.com
X-Msg-Ref: server-10.tower-21.messagelabs.com!1467715100!22252305!3
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13329 invoked from network); 5 Jul 2016 10:38:23 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-10.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 5 Jul 2016 10:38:23 -0000
X-IronPort-AV: E=Sophos;i="5.26,579,1459814400"; d="scan'208";a="364363849"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 5 Jul 2016 11:38:08 +0100
Message-ID: <1467715091-13216-4-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
References: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA2
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 3/6] Add XenIfaceDevice
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

WGVuSWZhY2VEZXZpY2UgaXMgYSBDRGV2aWNlIHN1YmNsYXNzIHRoYXQgYWJzdHJhY3RzIHRoZSBJ
T0NUTAppbnRlcmZhY2UgYnkgbWFuYWdpbmcgdGhlIGNvbnZlcnNpb24gdG8vZnJvbSBJT0NUTCBp
bnB1dHMvb3V0cHV0cy4KClNpZ25lZC1vZmYtYnk6IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0
cml4LmNvbT4KLS0tCiBzcmMveGVuYWdlbnQvc2VydmljZS5jcHAgICAgICAgICB8ICAgMiArLQog
c3JjL3hlbmFnZW50L3NlcnZpY2UuaCAgICAgICAgICAgfCAgIDEgKwogc3JjL3hlbmFnZW50L3hl
bmlmYWNlZGV2aWNlLmNwcCAgfCAxNTMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrCiBzcmMveGVuYWdlbnQveGVuaWZhY2VkZXZpY2UuaCAgICB8ICA2NCArKysrKysrKysr
KysrKysrCiB2czIwMTIveGVuYWdlbnQveGVuYWdlbnQudmN4cHJvaiB8ICAgMiArCiB2czIwMTMv
eGVuYWdlbnQveGVuYWdlbnQudmN4cHJvaiB8ICAgMiArCiA2IGZpbGVzIGNoYW5nZWQsIDIyMyBp
bnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3hlbmFn
ZW50L3hlbmlmYWNlZGV2aWNlLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy94ZW5hZ2VudC94
ZW5pZmFjZWRldmljZS5oCgpkaWZmIC0tZ2l0IGEvc3JjL3hlbmFnZW50L3NlcnZpY2UuY3BwIGIv
c3JjL3hlbmFnZW50L3NlcnZpY2UuY3BwCmluZGV4IGZlYzhlOTUuLmJkMDg1ZjYgMTAwNjQ0Ci0t
LSBhL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcAorKysgYi9zcmMveGVuYWdlbnQvc2VydmljZS5j
cHAKQEAgLTE3MSw3ICsxNzEsNyBAQCBDWGVuQWdlbnQ6On5DWGVuQWdlbnQoKQogCiAvKnZpcnR1
YWwqLyBDRGV2aWNlKiBDWGVuQWdlbnQ6OkNyZWF0ZShjb25zdCB3Y2hhcl90KiBwYXRoKQogewot
ICAgIHJldHVybiBuZXcgQ0RldmljZShwYXRoKTsKKyAgICByZXR1cm4gbmV3IENYZW5JZmFjZURl
dmljZShwYXRoKTsKIH0KIAogLyp2aXJ0dWFsKi8gdm9pZCBDWGVuQWdlbnQ6Ok9uRGV2aWNlQWRk
ZWQoQ0RldmljZSogZGV2KQpkaWZmIC0tZ2l0IGEvc3JjL3hlbmFnZW50L3NlcnZpY2UuaCBiL3Ny
Yy94ZW5hZ2VudC9zZXJ2aWNlLmgKaW5kZXggYmEzZjQzMC4uZTMxZGNmZCAxMDA2NDQKLS0tIGEv
c3JjL3hlbmFnZW50L3NlcnZpY2UuaAorKysgYi9zcmMveGVuYWdlbnQvc2VydmljZS5oCkBAIC0z
OSw2ICszOSw3IEBACiAjZGVmaW5lIFNWQ19ERVNDICJNb25pdG9ycyBhbmQgcHJvdmlkZXMgdmFy
aW91cyBtZXRyaWNzIHRvIFhlblN0b3JlIgogCiAjaW5jbHVkZSAiZGV2aWNlbGlzdC5oIgorI2lu
Y2x1ZGUgInhlbmlmYWNlZGV2aWNlLmgiCiAKIGNsYXNzIENYZW5BZ2VudCA6IHB1YmxpYyBJRGV2
aWNlQ3JlYXRvcgogewpkaWZmIC0tZ2l0IGEvc3JjL3hlbmFnZW50L3hlbmlmYWNlZGV2aWNlLmNw
cCBiL3NyYy94ZW5hZ2VudC94ZW5pZmFjZWRldmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMTYxODlkMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy94ZW5hZ2VudC94
ZW5pZmFjZWRldmljZS5jcHAKQEAgLTAsMCArMSwxNTMgQEAKKy8qIENvcHlyaWdodCAoYykgQ2l0
cml4IFN5c3RlbXMgSW5jLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCAKKyAqIHdpdGggb3Ig
d2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgCisgKiB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqICogICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIAorICogICAgIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgCisgKiAgICAgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAqICAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSAKKyAqICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIAorICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciAKKyAqICAgICBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCAKKyAqIENPTlRSSUJVVE9SUyAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIAorICogSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgCisgKiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSAKKyAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIAorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgCisgKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIAorICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIAorICogV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIAorICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSAKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgCisgKiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSA8d2luZG93cy5oPgorI2luY2x1ZGUgInhlbmlmYWNlZGV2aWNlLmgi
CisjaW5jbHVkZSAiZGV2aWNlbGlzdC5oIgorI2luY2x1ZGUgInhlbmlmYWNlX2lvY3Rscy5oIgor
CitDWGVuSWZhY2VEZXZpY2U6OkNYZW5JZmFjZURldmljZShjb25zdCB3Y2hhcl90KiBwYXRoKSA6
IENEZXZpY2UocGF0aCkKK3t9CisKKy8qdmlydHVhbCovIENYZW5JZmFjZURldmljZTo6fkNYZW5J
ZmFjZURldmljZSgpCit7fQorCisvLyBzdG9yZSBpbnRlcmZhY2UKK2Jvb2wgQ1hlbklmYWNlRGV2
aWNlOjpTdG9yZVJlYWQoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgsIHN0ZDo6c3RyaW5nJiB2YWx1
ZSkKK3sKKyAgICBEV09SRCAgIGJ5dGVzKDApOworICAgIGNoYXIqICAgYnVmZmVyOworICAgIGJv
b2wgICAgcmVzdWx0OworCisgICAgSW9jdGwoSU9DVExfWEVOSUZBQ0VfU1RPUkVfUkVBRCwKKyAg
ICAgICAgICAodm9pZCopcGF0aC5jX3N0cigpLCAoRFdPUkQpcGF0aC5sZW5ndGgoKSArIDEsCisg
ICAgICAgICAgTlVMTCwgMCwKKyAgICAgICAgICAmYnl0ZXMpOworCisgICAgYnVmZmVyID0gbmV3
IGNoYXJbYnl0ZXMgKyAxXTsKKyAgICBpZiAoYnVmZmVyID09IE5VTEwpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIHJlc3VsdCA9IElvY3RsKElPQ1RMX1hFTklGQUNFX1NUT1JFX1JFQUQs
CisgICAgICAgICAgICAgICAgICAgKHZvaWQqKXBhdGguY19zdHIoKSwgKERXT1JEKXBhdGgubGVu
Z3RoKCkgKyAxLAorICAgICAgICAgICAgICAgICAgIGJ1ZmZlciwgYnl0ZXMpOworCisgICAgYnVm
ZmVyW2J5dGVzXSA9IDA7CisgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgdmFsdWUgPSBidWZmZXI7
CisKKyAgICBkZWxldGUgW10gYnVmZmVyOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2Jvb2wg
Q1hlbklmYWNlRGV2aWNlOjpTdG9yZVdyaXRlKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoLCBjb25z
dCBzdGQ6OnN0cmluZyYgdmFsdWUpCit7CisgICAgYm9vbCAgIHJlc3VsdDsKKyAgICBzaXplX3Qg
bGVuZ3RoID0gcGF0aC5sZW5ndGgoKSArIDEgKyB2YWx1ZS5sZW5ndGgoKSArIDEgKyAxOworICAg
IGNoYXIqICBidWZmZXIgPSBuZXcgY2hhcltsZW5ndGhdOworICAgIGlmIChidWZmZXIgPT0gTlVM
TCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgbWVtY3B5KGJ1ZmZlciwgcGF0aC5jX3N0
cigpLCBwYXRoLmxlbmd0aCgpKTsKKyAgICBidWZmZXJbcGF0aC5sZW5ndGgoKV0gPSAwOworCisg
ICAgbWVtY3B5KGJ1ZmZlciArIHBhdGgubGVuZ3RoKCkgKyAxLCB2YWx1ZS5jX3N0cigpLCB2YWx1
ZS5sZW5ndGgoKSk7CisgICAgYnVmZmVyW3BhdGgubGVuZ3RoKCkgKyAxICsgdmFsdWUubGVuZ3Ro
KCldID0gMDsKKyAgICBidWZmZXJbbGVuZ3RoIC0gMV0gPSAwOworCisgICAgcmVzdWx0ID0gSW9j
dGwoSU9DVExfWEVOSUZBQ0VfU1RPUkVfV1JJVEUsIGJ1ZmZlciwgKERXT1JEKWxlbmd0aCwgTlVM
TCwgMCk7CisgICAgZGVsZXRlIFtdIGJ1ZmZlcjsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiti
b29sIENYZW5JZmFjZURldmljZTo6U3RvcmVSZW1vdmUoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgp
Cit7CisgICAgcmV0dXJuIElvY3RsKElPQ1RMX1hFTklGQUNFX1NUT1JFX1JFTU9WRSwKKyAgICAg
ICAgICAgICAgICAgKHZvaWQqKXBhdGguY19zdHIoKSwgKERXT1JEKXBhdGgubGVuZ3RoKCkgKyAx
LAorICAgICAgICAgICAgICAgICBOVUxMLCAwKTsKK30KKworYm9vbCBDWGVuSWZhY2VEZXZpY2U6
OlN0b3JlQWRkV2F0Y2goY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgsIEhBTkRMRSBldnQsIHZvaWQq
KiBjdHh0KQoreworICAgIFhFTklGQUNFX1NUT1JFX0FERF9XQVRDSF9JTiAgaW4gID0geyAoUENI
QVIpcGF0aC5jX3N0cigpLCAoRFdPUkQpcGF0aC5sZW5ndGgoKSArIDEsIGV2dCB9OworICAgIFhF
TklGQUNFX1NUT1JFX0FERF9XQVRDSF9PVVQgb3V0ID0geyBOVUxMIH07CisgICAgaWYgKCFJb2N0
bChJT0NUTF9YRU5JRkFDRV9TVE9SRV9BRERfV0FUQ0gsCisgICAgICAgICAgICAgICAmaW4sIChE
V09SRClzaXplb2YoaW4pLAorICAgICAgICAgICAgICAgJm91dCwgKERXT1JEKXNpemVvZihvdXQp
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICpjdHh0ID0gb3V0LkNvbnRleHQ7CisgICAg
cmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ1hlbklmYWNlRGV2aWNlOjpTdG9yZVJlbW92ZVdhdGNo
KHZvaWQqIGN0eHQpCit7CisgICAgWEVOSUZBQ0VfU1RPUkVfUkVNT1ZFX1dBVENIX0lOIGluID0g
eyBjdHh0IH07CisgICAgcmV0dXJuIElvY3RsKElPQ1RMX1hFTklGQUNFX1NUT1JFX1JFTU9WRV9X
QVRDSCwKKyAgICAgICAgICAgICAgICAgJmluLCAoRFdPUkQpc2l6ZW9mKGluKSwKKyAgICAgICAg
ICAgICAgICAgTlVMTCwgMCk7Cit9CisKKy8vIHN1c3BlbmQgaW50ZXJmYWNlCitib29sIENYZW5J
ZmFjZURldmljZTo6U3VzcGVuZFJlZ2lzdGVyKEhBTkRMRSBldnQsIHZvaWQqKiBjdHh0KQorewor
ICAgIFhFTklGQUNFX1NVU1BFTkRfUkVHSVNURVJfSU4gIGluICA9IHsgZXZ0IH07CisgICAgWEVO
SUZBQ0VfU1VTUEVORF9SRUdJU1RFUl9PVVQgb3V0ID0geyBOVUxMIH07CisgICAgaWYgKCFJb2N0
bChJT0NUTF9YRU5JRkFDRV9TVVNQRU5EX1JFR0lTVEVSLAorICAgICAgICAgICAgICAgJmluLCAo
RFdPUkQpc2l6ZW9mKGluKSwKKyAgICAgICAgICAgICAgICZvdXQsIChEV09SRClzaXplb2Yob3V0
KSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAqY3R4dCA9IG91dC5Db250ZXh0OworICAg
IHJldHVybiB0cnVlOworfQorCitib29sIENYZW5JZmFjZURldmljZTo6U3VzcGVuZERlcmVnaXN0
ZXIodm9pZCogY3R4dCkKK3sKKyAgICBYRU5JRkFDRV9TVVNQRU5EX1JFR0lTVEVSX09VVCBpbiA9
IHsgY3R4dCB9OworICAgIHJldHVybiBJb2N0bChJT0NUTF9YRU5JRkFDRV9TVVNQRU5EX0RFUkVH
SVNURVIsCisgICAgICAgICAgICAgICAgICZpbiwgKERXT1JEKXNpemVvZihpbiksCisgICAgICAg
ICAgICAgICAgIE5VTEwsIDApOworfQorCisvLyBzaGFyZWRpbmZvIGludGVyZmFjZQorYm9vbCBD
WGVuSWZhY2VEZXZpY2U6OlNoYXJlZEluZm9HZXRUaW1lKEZJTEVUSU1FKiB0aW1lKQoreworICAg
IHJldHVybiBJb2N0bChJT0NUTF9YRU5JRkFDRV9TSEFSRURJTkZPX0dFVF9USU1FLAorICAgICAg
ICAgICAgICAgICBOVUxMLCAwLAorICAgICAgICAgICAgICAgICB0aW1lLCBzaXplb2YoRklMRVRJ
TUUpKTsKK30KKworLy8gbG9nZ2luZworYm9vbCBDWGVuSWZhY2VEZXZpY2U6OkxvZyhjb25zdCBz
dGQ6OnN0cmluZyYgbXNnKQoreworICAgIHJldHVybiBJb2N0bChJT0NUTF9YRU5JRkFDRV9MT0cs
CisgICAgICAgICAgICAgICAgICh2b2lkKiltc2cuY19zdHIoKSwgKERXT1JEKW1zZy5sZW5ndGgo
KSArIDEsCisgICAgICAgICAgICAgICAgIE5VTEwsIDApOworfQpkaWZmIC0tZ2l0IGEvc3JjL3hl
bmFnZW50L3hlbmlmYWNlZGV2aWNlLmggYi9zcmMveGVuYWdlbnQveGVuaWZhY2VkZXZpY2UuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZTAxMDRjCi0tLSAvZGV2L251bGwK
KysrIGIvc3JjL3hlbmFnZW50L3hlbmlmYWNlZGV2aWNlLmgKQEAgLTAsMCArMSw2NCBAQAorLyog
Q29weXJpZ2h0IChjKSBDaXRyaXggU3lzdGVtcyBJbmMuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIAorICogd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCAKKyAqIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICog
KiAgIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
CisgKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSAKKyAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICogICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIAorICogICAgIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgCisgKiAgICAgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIAorICogICAg
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIAorICogQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
CisgKiBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiAKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIAorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VCBIT0xERVIgT1IgCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCAKKyAqIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiAKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgCisgKiBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgCisgKiBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIAorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiAK
KyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgX19YRU5BR0VOVF9YRU5JRkFDRURFVklD
RV9IX18KKyNkZWZpbmUgX19YRU5BR0VOVF9YRU5JRkFDRURFVklDRV9IX18KKworI2luY2x1ZGUg
PHdpbmRvd3MuaD4KKyNpbmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSAiZGV2aWNlbGlzdC5oIgor
CitjbGFzcyBDWGVuSWZhY2VEZXZpY2UgOiBwdWJsaWMgQ0RldmljZQoreworcHVibGljOgorICAg
IENYZW5JZmFjZURldmljZShjb25zdCB3Y2hhcl90KiBwYXRoKTsKKyAgICB2aXJ0dWFsIH5DWGVu
SWZhY2VEZXZpY2UoKTsKKworcHVibGljOiAvLyBzdG9yZSBpbnRlcmZhY2UKKyAgICBib29sIFN0
b3JlUmVhZChjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCwgc3RkOjpzdHJpbmcmIHZhbHVlKTsKKyAg
ICBib29sIFN0b3JlV3JpdGUoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgsIGNvbnN0IHN0ZDo6c3Ry
aW5nJiB2YWx1ZSk7CisgICAgYm9vbCBTdG9yZVJlbW92ZShjb25zdCBzdGQ6OnN0cmluZyYgcGF0
aCk7CisgICAgYm9vbCBTdG9yZUFkZFdhdGNoKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoLCBIQU5E
TEUgZXZ0LCB2b2lkKiogY3R4dCk7CisgICAgYm9vbCBTdG9yZVJlbW92ZVdhdGNoKHZvaWQqIGN0
eHQpOworCitwdWJsaWM6IC8vIHN1c3BlbmQgaW50ZXJmYWNlCisgICAgYm9vbCBTdXNwZW5kUmVn
aXN0ZXIoSEFORExFIGV2dCwgdm9pZCoqIGN0eHQpOworICAgIGJvb2wgU3VzcGVuZERlcmVnaXN0
ZXIodm9pZCogY3R4dCk7CisKK3B1YmxpYzogLy8gc2hhcmVkaW5mbyBpbnRlcmZhY2UKKyAgICBi
b29sIFNoYXJlZEluZm9HZXRUaW1lKEZJTEVUSU1FKiB0aW1lKTsKKworcHVibGljOiAvLyBsb2dn
aW5nIAorICAgIGJvb2wgTG9nKGNvbnN0IHN0ZDo6c3RyaW5nJiBtc2cpOworfTsKKworI2VuZGlm
CisKZGlmZiAtLWdpdCBhL3ZzMjAxMi94ZW5hZ2VudC94ZW5hZ2VudC52Y3hwcm9qIGIvdnMyMDEy
L3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2oKaW5kZXggNmM5YzkxYy4uMzdkYjNmZCAxMDA2NDQK
LS0tIGEvdnMyMDEyL3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2oKKysrIGIvdnMyMDEyL3hlbmFn
ZW50L3hlbmFnZW50LnZjeHByb2oKQEAgLTE5NSwxMCArMTk1LDEyIEBACiAgIDxJdGVtR3JvdXA+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuYWdlbnRcc2VydmljZS5jcHAi
Lz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5hZ2VudFxkZXZpY2VsaXN0
LmNwcCIvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHhlbmFnZW50XHhlbmlm
YWNlZGV2aWNlLmNwcCIvPgogICA8L0l0ZW1Hcm91cD4KICAgPEl0ZW1Hcm91cD4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5hZ2VudFxzZXJ2aWNlLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuYWdlbnRcZGV2aWNlbGlzdC5oIiAvPgorICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cc3JjXHhlbmFnZW50XHhlbmlmYWNlZGV2aWNlLmgi
IC8+CiAgIDwvSXRlbUdyb3VwPgogICA8SXRlbUdyb3VwPgogICAgIDxDdXN0b21CdWlsZCBJbmNs
dWRlPSIuLlwuLlxzcmNceGVuYWdlbnRcbWVzc2FnZXMubWMiPgpkaWZmIC0tZ2l0IGEvdnMyMDEz
L3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2ogYi92czIwMTMveGVuYWdlbnQveGVuYWdlbnQudmN4
cHJvagppbmRleCBkMzEyNjI2Li5mNWMxNzMwIDEwMDY0NAotLS0gYS92czIwMTMveGVuYWdlbnQv
eGVuYWdlbnQudmN4cHJvagorKysgYi92czIwMTMveGVuYWdlbnQveGVuYWdlbnQudmN4cHJvagpA
QCAtMTk5LDEwICsxOTksMTIgQEAKICAgPEl0ZW1Hcm91cD4KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXC4uXHNyY1x4ZW5hZ2VudFxzZXJ2aWNlLmNwcCIvPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cLi5cc3JjXHhlbmFnZW50XGRldmljZWxpc3QuY3BwIi8+CisgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuYWdlbnRceGVuaWZhY2VkZXZpY2UuY3BwIi8+CiAgIDwv
SXRlbUdyb3VwPgogICA8SXRlbUdyb3VwPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5c
c3JjXHhlbmFnZW50XHNlcnZpY2UuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4u
XHNyY1x4ZW5hZ2VudFxkZXZpY2VsaXN0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlwuLlxzcmNceGVuYWdlbnRceGVuaWZhY2VkZXZpY2UuaCIgLz4KICAgPC9JdGVtR3JvdXA+CiAg
IDxJdGVtR3JvdXA+CiAgICAgPEN1c3RvbUJ1aWxkIEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5hZ2Vu
dFx4ZW5hZ2VudC5tYyI+Ci0tIAoxLjkuNC5tc3lzZ2l0LjEKCgpfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndp
bi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5v
cmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 05 10:38:26 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 05 Jul 2016 10:38:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bKNkI-0005IN-Kb; Tue, 05 Jul 2016 10:38:26 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=987319bd7=owen.smith@citrix.com>)
 id 1bKNkG-0005Gt-Vz
 for win-pv-devel@lists.xenproject.org; Tue, 05 Jul 2016 10:38:25 +0000
Received: from [85.158.143.35] by server-1.bemta-6.messagelabs.com id
 49/00-09256-02E8B775; Tue, 05 Jul 2016 10:38:24 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprNIsWRWlGSWpSXmKPExsXitHRDpK58X3W
 4Qf8DTYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCa8e/uNcaCJ4EV088tZW5g3OnUxcjJISHgL7Hw
 YycziM0moCExo3MxC4gtIqAuse/zViYQm1lATeL6/i5WEFsYKP5k4TKwehYBFYljd06C2bwCr
 hJ/bj9ig5ipIbGpYQaYzSngJtG4fQ1YrxBQTcP+S4wQtpLEt8UvoHoFJU7OfMICsUtC4uALiL
 iEALfE7dNTmScw8s1CUjYLSdkCRqZVjOrFqUVlqUW6RnpJRZnpGSW5iZk5uoYGZnq5qcXFiem
 pOYlJxXrJ+bmbGIEBxQAEOxiX/XU6xCjJwaQkyutQUx0uxJeUn1KZkVicEV9UmpNafIhRhoND
 SYL3ag9QTrAoNT21Ii0zBxjaMGkJDh4lEV7mXqA0b3FBYm5xZjpE6hSjLses5XfWMgmx5OXnp
 UqJ89qCFAmAFGWU5sGNgMXZJUZZKWFeRqCjhHgKUotyM0tQ5V8xinMwKgnzngK5hCczrwRu0y
 ugI5iAjvjpAnZESSJCSqqBUUcpqPO2/oETFeuEN0RVzKyN7E2eHLSzMoRBIr53sl9T8Y80o86
 4iRcVQhgXT3u/O6qZYd1E5bx/pZzdu903LuyeJ5stW/BbXfRe1RUT7vwzvx0OOC+SqZcKn5lw
 qLdH19PwvseBaZ92bpSMDDaXCuh78L7C6fw2+6PluQxcW544evKetopWYinOSDTUYi4qTgQAR
 Wv15K4CAAA=
X-Env-Sender: prvs=987319bd7=owen.smith@citrix.com
X-Msg-Ref: server-10.tower-21.messagelabs.com!1467715100!22252305!3
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13329 invoked from network); 5 Jul 2016 10:38:23 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-10.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 5 Jul 2016 10:38:23 -0000
X-IronPort-AV: E=Sophos;i="5.26,579,1459814400"; d="scan'208";a="364363849"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 5 Jul 2016 11:38:08 +0100
Message-ID: <1467715091-13216-4-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
References: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA2
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 3/6] Add XenIfaceDevice
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

WGVuSWZhY2VEZXZpY2UgaXMgYSBDRGV2aWNlIHN1YmNsYXNzIHRoYXQgYWJzdHJhY3RzIHRoZSBJ
T0NUTAppbnRlcmZhY2UgYnkgbWFuYWdpbmcgdGhlIGNvbnZlcnNpb24gdG8vZnJvbSBJT0NUTCBp
bnB1dHMvb3V0cHV0cy4KClNpZ25lZC1vZmYtYnk6IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0
cml4LmNvbT4KLS0tCiBzcmMveGVuYWdlbnQvc2VydmljZS5jcHAgICAgICAgICB8ICAgMiArLQog
c3JjL3hlbmFnZW50L3NlcnZpY2UuaCAgICAgICAgICAgfCAgIDEgKwogc3JjL3hlbmFnZW50L3hl
bmlmYWNlZGV2aWNlLmNwcCAgfCAxNTMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrCiBzcmMveGVuYWdlbnQveGVuaWZhY2VkZXZpY2UuaCAgICB8ICA2NCArKysrKysrKysr
KysrKysrCiB2czIwMTIveGVuYWdlbnQveGVuYWdlbnQudmN4cHJvaiB8ICAgMiArCiB2czIwMTMv
eGVuYWdlbnQveGVuYWdlbnQudmN4cHJvaiB8ICAgMiArCiA2IGZpbGVzIGNoYW5nZWQsIDIyMyBp
bnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3hlbmFn
ZW50L3hlbmlmYWNlZGV2aWNlLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy94ZW5hZ2VudC94
ZW5pZmFjZWRldmljZS5oCgpkaWZmIC0tZ2l0IGEvc3JjL3hlbmFnZW50L3NlcnZpY2UuY3BwIGIv
c3JjL3hlbmFnZW50L3NlcnZpY2UuY3BwCmluZGV4IGZlYzhlOTUuLmJkMDg1ZjYgMTAwNjQ0Ci0t
LSBhL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcAorKysgYi9zcmMveGVuYWdlbnQvc2VydmljZS5j
cHAKQEAgLTE3MSw3ICsxNzEsNyBAQCBDWGVuQWdlbnQ6On5DWGVuQWdlbnQoKQogCiAvKnZpcnR1
YWwqLyBDRGV2aWNlKiBDWGVuQWdlbnQ6OkNyZWF0ZShjb25zdCB3Y2hhcl90KiBwYXRoKQogewot
ICAgIHJldHVybiBuZXcgQ0RldmljZShwYXRoKTsKKyAgICByZXR1cm4gbmV3IENYZW5JZmFjZURl
dmljZShwYXRoKTsKIH0KIAogLyp2aXJ0dWFsKi8gdm9pZCBDWGVuQWdlbnQ6Ok9uRGV2aWNlQWRk
ZWQoQ0RldmljZSogZGV2KQpkaWZmIC0tZ2l0IGEvc3JjL3hlbmFnZW50L3NlcnZpY2UuaCBiL3Ny
Yy94ZW5hZ2VudC9zZXJ2aWNlLmgKaW5kZXggYmEzZjQzMC4uZTMxZGNmZCAxMDA2NDQKLS0tIGEv
c3JjL3hlbmFnZW50L3NlcnZpY2UuaAorKysgYi9zcmMveGVuYWdlbnQvc2VydmljZS5oCkBAIC0z
OSw2ICszOSw3IEBACiAjZGVmaW5lIFNWQ19ERVNDICJNb25pdG9ycyBhbmQgcHJvdmlkZXMgdmFy
aW91cyBtZXRyaWNzIHRvIFhlblN0b3JlIgogCiAjaW5jbHVkZSAiZGV2aWNlbGlzdC5oIgorI2lu
Y2x1ZGUgInhlbmlmYWNlZGV2aWNlLmgiCiAKIGNsYXNzIENYZW5BZ2VudCA6IHB1YmxpYyBJRGV2
aWNlQ3JlYXRvcgogewpkaWZmIC0tZ2l0IGEvc3JjL3hlbmFnZW50L3hlbmlmYWNlZGV2aWNlLmNw
cCBiL3NyYy94ZW5hZ2VudC94ZW5pZmFjZWRldmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMTYxODlkMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy94ZW5hZ2VudC94
ZW5pZmFjZWRldmljZS5jcHAKQEAgLTAsMCArMSwxNTMgQEAKKy8qIENvcHlyaWdodCAoYykgQ2l0
cml4IFN5c3RlbXMgSW5jLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCAKKyAqIHdpdGggb3Ig
d2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgCisgKiB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqICogICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIAorICogICAgIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgCisgKiAgICAgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAqICAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSAKKyAqICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIAorICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciAKKyAqICAgICBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCAKKyAqIENPTlRSSUJVVE9SUyAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIAorICogSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgCisgKiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSAKKyAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIAorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgCisgKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIAorICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIAorICogV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIAorICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSAKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgCisgKiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSA8d2luZG93cy5oPgorI2luY2x1ZGUgInhlbmlmYWNlZGV2aWNlLmgi
CisjaW5jbHVkZSAiZGV2aWNlbGlzdC5oIgorI2luY2x1ZGUgInhlbmlmYWNlX2lvY3Rscy5oIgor
CitDWGVuSWZhY2VEZXZpY2U6OkNYZW5JZmFjZURldmljZShjb25zdCB3Y2hhcl90KiBwYXRoKSA6
IENEZXZpY2UocGF0aCkKK3t9CisKKy8qdmlydHVhbCovIENYZW5JZmFjZURldmljZTo6fkNYZW5J
ZmFjZURldmljZSgpCit7fQorCisvLyBzdG9yZSBpbnRlcmZhY2UKK2Jvb2wgQ1hlbklmYWNlRGV2
aWNlOjpTdG9yZVJlYWQoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgsIHN0ZDo6c3RyaW5nJiB2YWx1
ZSkKK3sKKyAgICBEV09SRCAgIGJ5dGVzKDApOworICAgIGNoYXIqICAgYnVmZmVyOworICAgIGJv
b2wgICAgcmVzdWx0OworCisgICAgSW9jdGwoSU9DVExfWEVOSUZBQ0VfU1RPUkVfUkVBRCwKKyAg
ICAgICAgICAodm9pZCopcGF0aC5jX3N0cigpLCAoRFdPUkQpcGF0aC5sZW5ndGgoKSArIDEsCisg
ICAgICAgICAgTlVMTCwgMCwKKyAgICAgICAgICAmYnl0ZXMpOworCisgICAgYnVmZmVyID0gbmV3
IGNoYXJbYnl0ZXMgKyAxXTsKKyAgICBpZiAoYnVmZmVyID09IE5VTEwpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIHJlc3VsdCA9IElvY3RsKElPQ1RMX1hFTklGQUNFX1NUT1JFX1JFQUQs
CisgICAgICAgICAgICAgICAgICAgKHZvaWQqKXBhdGguY19zdHIoKSwgKERXT1JEKXBhdGgubGVu
Z3RoKCkgKyAxLAorICAgICAgICAgICAgICAgICAgIGJ1ZmZlciwgYnl0ZXMpOworCisgICAgYnVm
ZmVyW2J5dGVzXSA9IDA7CisgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgdmFsdWUgPSBidWZmZXI7
CisKKyAgICBkZWxldGUgW10gYnVmZmVyOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2Jvb2wg
Q1hlbklmYWNlRGV2aWNlOjpTdG9yZVdyaXRlKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoLCBjb25z
dCBzdGQ6OnN0cmluZyYgdmFsdWUpCit7CisgICAgYm9vbCAgIHJlc3VsdDsKKyAgICBzaXplX3Qg
bGVuZ3RoID0gcGF0aC5sZW5ndGgoKSArIDEgKyB2YWx1ZS5sZW5ndGgoKSArIDEgKyAxOworICAg
IGNoYXIqICBidWZmZXIgPSBuZXcgY2hhcltsZW5ndGhdOworICAgIGlmIChidWZmZXIgPT0gTlVM
TCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgbWVtY3B5KGJ1ZmZlciwgcGF0aC5jX3N0
cigpLCBwYXRoLmxlbmd0aCgpKTsKKyAgICBidWZmZXJbcGF0aC5sZW5ndGgoKV0gPSAwOworCisg
ICAgbWVtY3B5KGJ1ZmZlciArIHBhdGgubGVuZ3RoKCkgKyAxLCB2YWx1ZS5jX3N0cigpLCB2YWx1
ZS5sZW5ndGgoKSk7CisgICAgYnVmZmVyW3BhdGgubGVuZ3RoKCkgKyAxICsgdmFsdWUubGVuZ3Ro
KCldID0gMDsKKyAgICBidWZmZXJbbGVuZ3RoIC0gMV0gPSAwOworCisgICAgcmVzdWx0ID0gSW9j
dGwoSU9DVExfWEVOSUZBQ0VfU1RPUkVfV1JJVEUsIGJ1ZmZlciwgKERXT1JEKWxlbmd0aCwgTlVM
TCwgMCk7CisgICAgZGVsZXRlIFtdIGJ1ZmZlcjsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiti
b29sIENYZW5JZmFjZURldmljZTo6U3RvcmVSZW1vdmUoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgp
Cit7CisgICAgcmV0dXJuIElvY3RsKElPQ1RMX1hFTklGQUNFX1NUT1JFX1JFTU9WRSwKKyAgICAg
ICAgICAgICAgICAgKHZvaWQqKXBhdGguY19zdHIoKSwgKERXT1JEKXBhdGgubGVuZ3RoKCkgKyAx
LAorICAgICAgICAgICAgICAgICBOVUxMLCAwKTsKK30KKworYm9vbCBDWGVuSWZhY2VEZXZpY2U6
OlN0b3JlQWRkV2F0Y2goY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgsIEhBTkRMRSBldnQsIHZvaWQq
KiBjdHh0KQoreworICAgIFhFTklGQUNFX1NUT1JFX0FERF9XQVRDSF9JTiAgaW4gID0geyAoUENI
QVIpcGF0aC5jX3N0cigpLCAoRFdPUkQpcGF0aC5sZW5ndGgoKSArIDEsIGV2dCB9OworICAgIFhF
TklGQUNFX1NUT1JFX0FERF9XQVRDSF9PVVQgb3V0ID0geyBOVUxMIH07CisgICAgaWYgKCFJb2N0
bChJT0NUTF9YRU5JRkFDRV9TVE9SRV9BRERfV0FUQ0gsCisgICAgICAgICAgICAgICAmaW4sIChE
V09SRClzaXplb2YoaW4pLAorICAgICAgICAgICAgICAgJm91dCwgKERXT1JEKXNpemVvZihvdXQp
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICpjdHh0ID0gb3V0LkNvbnRleHQ7CisgICAg
cmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ1hlbklmYWNlRGV2aWNlOjpTdG9yZVJlbW92ZVdhdGNo
KHZvaWQqIGN0eHQpCit7CisgICAgWEVOSUZBQ0VfU1RPUkVfUkVNT1ZFX1dBVENIX0lOIGluID0g
eyBjdHh0IH07CisgICAgcmV0dXJuIElvY3RsKElPQ1RMX1hFTklGQUNFX1NUT1JFX1JFTU9WRV9X
QVRDSCwKKyAgICAgICAgICAgICAgICAgJmluLCAoRFdPUkQpc2l6ZW9mKGluKSwKKyAgICAgICAg
ICAgICAgICAgTlVMTCwgMCk7Cit9CisKKy8vIHN1c3BlbmQgaW50ZXJmYWNlCitib29sIENYZW5J
ZmFjZURldmljZTo6U3VzcGVuZFJlZ2lzdGVyKEhBTkRMRSBldnQsIHZvaWQqKiBjdHh0KQorewor
ICAgIFhFTklGQUNFX1NVU1BFTkRfUkVHSVNURVJfSU4gIGluICA9IHsgZXZ0IH07CisgICAgWEVO
SUZBQ0VfU1VTUEVORF9SRUdJU1RFUl9PVVQgb3V0ID0geyBOVUxMIH07CisgICAgaWYgKCFJb2N0
bChJT0NUTF9YRU5JRkFDRV9TVVNQRU5EX1JFR0lTVEVSLAorICAgICAgICAgICAgICAgJmluLCAo
RFdPUkQpc2l6ZW9mKGluKSwKKyAgICAgICAgICAgICAgICZvdXQsIChEV09SRClzaXplb2Yob3V0
KSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAqY3R4dCA9IG91dC5Db250ZXh0OworICAg
IHJldHVybiB0cnVlOworfQorCitib29sIENYZW5JZmFjZURldmljZTo6U3VzcGVuZERlcmVnaXN0
ZXIodm9pZCogY3R4dCkKK3sKKyAgICBYRU5JRkFDRV9TVVNQRU5EX1JFR0lTVEVSX09VVCBpbiA9
IHsgY3R4dCB9OworICAgIHJldHVybiBJb2N0bChJT0NUTF9YRU5JRkFDRV9TVVNQRU5EX0RFUkVH
SVNURVIsCisgICAgICAgICAgICAgICAgICZpbiwgKERXT1JEKXNpemVvZihpbiksCisgICAgICAg
ICAgICAgICAgIE5VTEwsIDApOworfQorCisvLyBzaGFyZWRpbmZvIGludGVyZmFjZQorYm9vbCBD
WGVuSWZhY2VEZXZpY2U6OlNoYXJlZEluZm9HZXRUaW1lKEZJTEVUSU1FKiB0aW1lKQoreworICAg
IHJldHVybiBJb2N0bChJT0NUTF9YRU5JRkFDRV9TSEFSRURJTkZPX0dFVF9USU1FLAorICAgICAg
ICAgICAgICAgICBOVUxMLCAwLAorICAgICAgICAgICAgICAgICB0aW1lLCBzaXplb2YoRklMRVRJ
TUUpKTsKK30KKworLy8gbG9nZ2luZworYm9vbCBDWGVuSWZhY2VEZXZpY2U6OkxvZyhjb25zdCBz
dGQ6OnN0cmluZyYgbXNnKQoreworICAgIHJldHVybiBJb2N0bChJT0NUTF9YRU5JRkFDRV9MT0cs
CisgICAgICAgICAgICAgICAgICh2b2lkKiltc2cuY19zdHIoKSwgKERXT1JEKW1zZy5sZW5ndGgo
KSArIDEsCisgICAgICAgICAgICAgICAgIE5VTEwsIDApOworfQpkaWZmIC0tZ2l0IGEvc3JjL3hl
bmFnZW50L3hlbmlmYWNlZGV2aWNlLmggYi9zcmMveGVuYWdlbnQveGVuaWZhY2VkZXZpY2UuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZTAxMDRjCi0tLSAvZGV2L251bGwK
KysrIGIvc3JjL3hlbmFnZW50L3hlbmlmYWNlZGV2aWNlLmgKQEAgLTAsMCArMSw2NCBAQAorLyog
Q29weXJpZ2h0IChjKSBDaXRyaXggU3lzdGVtcyBJbmMuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIAorICogd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCAKKyAqIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICog
KiAgIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
CisgKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSAKKyAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICogICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIAorICogICAgIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgCisgKiAgICAgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIAorICogICAg
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIAorICogQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
CisgKiBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiAKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIAorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VCBIT0xERVIgT1IgCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCAKKyAqIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiAKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgCisgKiBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgCisgKiBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIAorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiAK
KyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgX19YRU5BR0VOVF9YRU5JRkFDRURFVklD
RV9IX18KKyNkZWZpbmUgX19YRU5BR0VOVF9YRU5JRkFDRURFVklDRV9IX18KKworI2luY2x1ZGUg
PHdpbmRvd3MuaD4KKyNpbmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSAiZGV2aWNlbGlzdC5oIgor
CitjbGFzcyBDWGVuSWZhY2VEZXZpY2UgOiBwdWJsaWMgQ0RldmljZQoreworcHVibGljOgorICAg
IENYZW5JZmFjZURldmljZShjb25zdCB3Y2hhcl90KiBwYXRoKTsKKyAgICB2aXJ0dWFsIH5DWGVu
SWZhY2VEZXZpY2UoKTsKKworcHVibGljOiAvLyBzdG9yZSBpbnRlcmZhY2UKKyAgICBib29sIFN0
b3JlUmVhZChjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCwgc3RkOjpzdHJpbmcmIHZhbHVlKTsKKyAg
ICBib29sIFN0b3JlV3JpdGUoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgsIGNvbnN0IHN0ZDo6c3Ry
aW5nJiB2YWx1ZSk7CisgICAgYm9vbCBTdG9yZVJlbW92ZShjb25zdCBzdGQ6OnN0cmluZyYgcGF0
aCk7CisgICAgYm9vbCBTdG9yZUFkZFdhdGNoKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoLCBIQU5E
TEUgZXZ0LCB2b2lkKiogY3R4dCk7CisgICAgYm9vbCBTdG9yZVJlbW92ZVdhdGNoKHZvaWQqIGN0
eHQpOworCitwdWJsaWM6IC8vIHN1c3BlbmQgaW50ZXJmYWNlCisgICAgYm9vbCBTdXNwZW5kUmVn
aXN0ZXIoSEFORExFIGV2dCwgdm9pZCoqIGN0eHQpOworICAgIGJvb2wgU3VzcGVuZERlcmVnaXN0
ZXIodm9pZCogY3R4dCk7CisKK3B1YmxpYzogLy8gc2hhcmVkaW5mbyBpbnRlcmZhY2UKKyAgICBi
b29sIFNoYXJlZEluZm9HZXRUaW1lKEZJTEVUSU1FKiB0aW1lKTsKKworcHVibGljOiAvLyBsb2dn
aW5nIAorICAgIGJvb2wgTG9nKGNvbnN0IHN0ZDo6c3RyaW5nJiBtc2cpOworfTsKKworI2VuZGlm
CisKZGlmZiAtLWdpdCBhL3ZzMjAxMi94ZW5hZ2VudC94ZW5hZ2VudC52Y3hwcm9qIGIvdnMyMDEy
L3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2oKaW5kZXggNmM5YzkxYy4uMzdkYjNmZCAxMDA2NDQK
LS0tIGEvdnMyMDEyL3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2oKKysrIGIvdnMyMDEyL3hlbmFn
ZW50L3hlbmFnZW50LnZjeHByb2oKQEAgLTE5NSwxMCArMTk1LDEyIEBACiAgIDxJdGVtR3JvdXA+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuYWdlbnRcc2VydmljZS5jcHAi
Lz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5hZ2VudFxkZXZpY2VsaXN0
LmNwcCIvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHhlbmFnZW50XHhlbmlm
YWNlZGV2aWNlLmNwcCIvPgogICA8L0l0ZW1Hcm91cD4KICAgPEl0ZW1Hcm91cD4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5hZ2VudFxzZXJ2aWNlLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuYWdlbnRcZGV2aWNlbGlzdC5oIiAvPgorICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cc3JjXHhlbmFnZW50XHhlbmlmYWNlZGV2aWNlLmgi
IC8+CiAgIDwvSXRlbUdyb3VwPgogICA8SXRlbUdyb3VwPgogICAgIDxDdXN0b21CdWlsZCBJbmNs
dWRlPSIuLlwuLlxzcmNceGVuYWdlbnRcbWVzc2FnZXMubWMiPgpkaWZmIC0tZ2l0IGEvdnMyMDEz
L3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2ogYi92czIwMTMveGVuYWdlbnQveGVuYWdlbnQudmN4
cHJvagppbmRleCBkMzEyNjI2Li5mNWMxNzMwIDEwMDY0NAotLS0gYS92czIwMTMveGVuYWdlbnQv
eGVuYWdlbnQudmN4cHJvagorKysgYi92czIwMTMveGVuYWdlbnQveGVuYWdlbnQudmN4cHJvagpA
QCAtMTk5LDEwICsxOTksMTIgQEAKICAgPEl0ZW1Hcm91cD4KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXC4uXHNyY1x4ZW5hZ2VudFxzZXJ2aWNlLmNwcCIvPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cLi5cc3JjXHhlbmFnZW50XGRldmljZWxpc3QuY3BwIi8+CisgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuYWdlbnRceGVuaWZhY2VkZXZpY2UuY3BwIi8+CiAgIDwv
SXRlbUdyb3VwPgogICA8SXRlbUdyb3VwPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5c
c3JjXHhlbmFnZW50XHNlcnZpY2UuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4u
XHNyY1x4ZW5hZ2VudFxkZXZpY2VsaXN0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlwuLlxzcmNceGVuYWdlbnRceGVuaWZhY2VkZXZpY2UuaCIgLz4KICAgPC9JdGVtR3JvdXA+CiAg
IDxJdGVtR3JvdXA+CiAgICAgPEN1c3RvbUJ1aWxkIEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5hZ2Vu
dFx4ZW5hZ2VudC5tYyI+Ci0tIAoxLjkuNC5tc3lzZ2l0LjEKCgpfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndp
bi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwOi8vbGlzdHMueGVucHJvamVjdC5v
cmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 05 10:38:26 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 05 Jul 2016 10:38:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bKNkI-0005In-Lh; Tue, 05 Jul 2016 10:38:26 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=987319bd7=owen.smith@citrix.com>)
 id 1bKNkH-0005H0-7N
 for win-pv-devel@lists.xenproject.org; Tue, 05 Jul 2016 10:38:25 +0000
Received: from [193.109.254.147] by server-14.bemta-14.messagelabs.com id
 B0/E6-27600-02E8B775; Tue, 05 Jul 2016 10:38:24 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprJIsWRWlGSWpSXmKPExsXitHSDva58X3W
 4wbFt1hZ/Fic6MHoc/nCFJYAxijUzLym/IoE149qW9YwF53Uq5pytaWB8rNTFyMEhIeAv8azH
 oIuRk4NNQENiRudiFhBbREBdYt/nrUwgNrOAmsT1/V2sILawgJvEvRsX2UBsFgEViU1vG8Hqe
 QVcJRqO7ASrlwCas6lhBlgNJ1B94/Y1YL1CIDX7LzFC2EoS3xa/YIboFZQ4OfMJC8QuCYmDL0
 DiIKdxS/zttp/AyDcLSdUsJFULGJlWMWoUpxaVpRbpGhrpJRVlpmeU5CZm5ugaGpro5aYWFye
 mp+YkJhXrJefnbmIEBhMDEOxgPDvN+RCjJAeTkiivQ011uBBfUn5KZUZicUZ8UWlOavEhRhkO
 DiUJXs9eoJxgUWp6akVaZg4wrGHSEhw8SiK8zCBp3uKCxNzizHSI1ClGXY6eV7fXMgmx5OXnp
 UqJ857qASoSACnKKM2DGwGLsUuMslLCvIxARwnxFKQW5WaWoMq/YhTnYFQS5uUAWcWTmVcCt+
 kV0BFMQEf8dAE7oiQRISXVwFgYeerya9Xd/6f+MDiQvWyeyfzqxWkVSUuiA6fr3hDZcvCvpMX
 nVg6p11GLZj502p/187rxmm3bU8t6QrOmKL71fZJi4mfx5PP+1GlmS5eFuR9VKfKycz/A/ey5
 /4/ja7KPBOz3uS6beO1bhRf7792Lt76SrWlv4L5/ew33s1t/o7I7lvQkRjMpsRRnJBpqMRcVJ
 wIA6hqQVawCAAA=
X-Env-Sender: prvs=987319bd7=owen.smith@citrix.com
X-Msg-Ref: server-10.tower-27.messagelabs.com!1467715100!51976083!3
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: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 34512 invoked from network); 5 Jul 2016 10:38:23 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
 by server-10.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 5 Jul 2016 10:38:23 -0000
X-IronPort-AV: E=Sophos;i="5.26,579,1459814400"; d="scan'208";a="371291283"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 5 Jul 2016 11:38:11 +0100
Message-ID: <1467715091-13216-7-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
References: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 6/6] Set VM's time based on host's time
	exposed by Xen
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

U2V0cyB0aGUgVk0ncyB0aW1lIHdoZW4gWGVuSWZhY2Ugc3RhcnRzIGFuZCBvbiByZXN1bWUgZnJv
bSBzdXNwZW5kLgpVc2VzIHRoZSB1bmRlcmx5aW5nIGhvc3QncyB0aW1lLCBhY2Nlc3NlZCB2aWEg
WGVuLiBQcm92aWRlIGFuIG9wdGlvbgpmb3IgdGhlIGd1ZXN0IHRvIHRyZWF0IFhlbidzIHRpbWUg
YXMgVVRDIG9yIHRoZSBjdXJyZW50IHRpbWV6b25lLgpUaGlzIG9wdGlvbiBhZGRzIDIgbmV3IGJy
YW5kYWJsZSB2YXJpYWJsZXMgdGhhdCBzcGVjaWZ5IGEgcGFydGlhbCAKcmVnaXN0cnkgcGF0aCBh
bmQgdmFsdWUgaW4gdGhlIFZNIHRoYXQgZGV0ZXJtaW5lcyBob3cgdGhlIHRpbWUgb2Zmc2V0Cmlz
IG1vZGlmaWVkLiBUaGVzZSB2YWx1ZXMgYXJlIFJFR19UT09MU19QQVRIIGFuZCBSRUdfVVRDX05B
TUUgd2hpY2gKc2hvdWxkIGJlIHNwZWNpZmllZCBpbiB0aGUgYnVpbGQgZW52aXJvbm1lbnQgaWYg
dGhlIHZhbHVlcyBuZWVkIHRvCmJlIGRpZmZlcmVudC4KClNpZ25lZC1vZmYtYnk6IE93ZW4gU21p
dGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4KLS0tCiBidWlsZC5weSAgICAgICAgICAgICAgICAg
fCAgMTAgKysrKwogc3JjL3hlbmFnZW50L3NlcnZpY2UuY3BwIHwgMTE5ICsrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMveGVuYWdlbnQvc2VydmljZS5o
ICAgfCAgIDQgKysKIDMgZmlsZXMgY2hhbmdlZCwgMTMzIGluc2VydGlvbnMoKykKCmRpZmYgLS1n
aXQgYS9idWlsZC5weSBiL2J1aWxkLnB5CmluZGV4IGY0OTM3NGMuLmRmMzBlZTYgMTAwNzU1Ci0t
LSBhL2J1aWxkLnB5CisrKyBiL2J1aWxkLnB5CkBAIC03MCw2ICs3MCwxMCBAQCBkZWYgbWFrZV9o
ZWFkZXIoKToKICAgICBmaWxlLndyaXRlKCcjZGVmaW5lIERBWV9TVFJcdFx0XHQiJyArIHN0cihu
b3cuZGF5KSArICciXG4nKQogICAgIGZpbGUud3JpdGUoJ1xuJykKIAorICAgIGZpbGUud3JpdGUo
JyNkZWZpbmUgUkVHX1RPT0xTX1BBVEhcdFx0XHQiJyArIG9zLmVudmlyb25bJ1JFR19UT09MU19Q
QVRIJ10gKyAnIlxuJykKKyAgICBmaWxlLndyaXRlKCcjZGVmaW5lIFJFR19VVENfTkFNRVx0XHRc
dCInICsgb3MuZW52aXJvblsnUkVHX1VUQ19OQU1FJ10gKyAnIlxuJykKKyAgICBmaWxlLndyaXRl
KCdcbicpCisKICAgICBmaWxlLmNsb3NlKCkKIAogCkBAIC00MjYsNiArNDMwLDEyIEBAIGlmIF9f
bmFtZV9fID09ICdfX21haW5fXyc6CiAgICAgaWYgJ09CSkVDVF9QUkVGSVgnIG5vdCBpbiBvcy5l
bnZpcm9uLmtleXMoKToKICAgICAgICAgb3MuZW52aXJvblsnT0JKRUNUX1BSRUZJWCddID0gJ1hl
blByb2plY3QnCiAKKyAgICBpZiAnUkVHX1RPT0xTX1BBVEgnIG5vdCBpbiBvcy5lbnZpcm9uLmtl
eXMoKToKKyAgICAgICAgb3MuZW52aXJvblsnUkVHX1RPT0xTX1BBVEgnXSA9ICdYZW5Ub29scycK
KworICAgIGlmICdSRUdfVVRDX05BTUUnIG5vdCBpbiBvcy5lbnZpcm9uLmtleXMoKToKKyAgICAg
ICAgb3MuZW52aXJvblsnUkVHX1VUQ19OQU1FJ10gPSAnSG9zdFRpbWUnCisKICAgICBvcy5lbnZp
cm9uWydNQUpPUl9WRVJTSU9OJ10gPSAnOCcKICAgICBvcy5lbnZpcm9uWydNSU5PUl9WRVJTSU9O
J10gPSAnMicKICAgICBvcy5lbnZpcm9uWydNSUNST19WRVJTSU9OJ10gPSAnMCcKZGlmZiAtLWdp
dCBhL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcCBiL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcApp
bmRleCAzZTYyMWViLi5hNGQ5Mjk3IDEwMDY0NAotLS0gYS9zcmMveGVuYWdlbnQvc2VydmljZS5j
cHAKKysrIGIvc3JjL3hlbmFnZW50L3NlcnZpY2UuY3BwCkBAIC0yMTgsNiArMjE4LDggQEAgQ1hl
bkFnZW50Ojp+Q1hlbkFnZW50KCkKIAogICAgICAgICAvLyBzdXNwZW5kCiAgICAgICAgIG1fZGV2
aWNlLT5TdXNwZW5kUmVnaXN0ZXIobV9ldnRfc3VzcGVuZCwgJm1fY3R4dF9zdXNwZW5kKTsKKwor
ICAgICAgICBTZXRYZW5UaW1lKCk7CiAgICAgfQogfQogCkBAIC0zMTcsNiArMzE5LDEyMSBAQCB2
b2lkIENYZW5BZ2VudDo6RXZlbnRMb2coRFdPUkQgZXZ0KQogICAgIH0KIH0KIAorYm9vbCBDWGVu
QWdlbnQ6OklzSG9zdFRpbWVVVEMoKQoreworI2lmZGVmIF9XSU42NAorICAgIC8vIENoZWNrIFNP
RlRXQVJFXFdvdzY0MzJOb2RlXCQoVkVORE9SX05BTUVfU1RSKVwkKFJFR19UT09MU19QQVRIKSAk
KFJFR19VVENfTkFNRSkgPT0gVVRDCisgICAgaWYgKFJlZ0NoZWNrSXNVVEMoIlNPRlRXQVJFXFxX
b3c2NDMyTm9kZSIpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorICAgIC8vIENoZWNr
IFNPRlRXQVJFXCQoVkVORE9SX05BTUVfU1RSKVwkKFJFR19UT09MU19QQVRIKSAkKFJFR19VVENf
TkFNRSkgPT0gVVRDCisgICAgaWYgKFJlZ0NoZWNrSXNVVEMoIlNPRlRXQVJFIikpCisgICAgICAg
IHJldHVybiB0cnVlOworCisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIENYZW5BZ2VudDo6
QWRqdXN0WGVuVGltZVRvVVRDKEZJTEVUSU1FKiBub3cpCit7CisgICAgc3RkOjpzdHJpbmcgdm07
CisgICAgaWYgKCFtX2RldmljZS0+U3RvcmVSZWFkKCJ2bSIsIHZtKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgc3RkOjpzdHJpbmcgb2ZmczsKKyAgICBpZiAoIW1fZGV2aWNlLT5TdG9yZVJlYWQo
dm0gKyAiL3J0Yy90aW1lb2Zmc2V0Iiwgb2ZmcykpCisgICAgICAgIHJldHVybjsKKworICAgIGxv
bmcgb2Zmc2V0ID0gKGxvbmcpYXRvaShvZmZzLmNfc3RyKCkpOworCisgICAgVUxBUkdFX0lOVEVH
RVIgbG5vdzsKKyAgICBsbm93Lkxvd1BhcnQgID0gbm93LT5kd0xvd0RhdGVUaW1lOworICAgIGxu
b3cuSGlnaFBhcnQgPSBub3ctPmR3SGlnaERhdGVUaW1lOworCisgICAgbG5vdy5RdWFkUGFydCAt
PSAoKExPTkdMT05HKW9mZnNldCAqIDEwMDAwMDApOworCisgICAgbm93LT5kd0xvd0RhdGVUaW1l
ICA9IGxub3cuTG93UGFydDsKKyAgICBub3ctPmR3SGlnaERhdGVUaW1lID0gbG5vdy5IaWdoUGFy
dDsKK30KKworYm9vbCBDWGVuQWdlbnQ6OlJlZ0NoZWNrSXNVVEMoY29uc3QgY2hhciogcm9vdHBh
dGgpCit7CisgICAgSEtFWSAgICBrZXk7CisgICAgTFJFU1VMVCBscjsKKyAgICBzdGQ6OnN0cmlu
ZyBwYXRoOworICAgIGJvb2wgICAgbWF0Y2ggPSBmYWxzZTsKKworICAgIHBhdGggPSByb290cGF0
aDsKKyAgICBwYXRoICs9ICJcXCI7CisgICAgcGF0aCArPSBWRU5ET1JfTkFNRV9TVFI7CisgICAg
cGF0aCArPSAiXFwiOworICAgIHBhdGggKz0gUkVHX1RPT0xTX1BBVEg7CisKKyAgICBsciA9IFJl
Z09wZW5LZXlFeChIS0VZX0xPQ0FMX01BQ0hJTkUsIHBhdGguY19zdHIoKSwgMCwgS0VZX1JFQUQs
ICZrZXkpOworICAgIGlmIChsciAhPSBFUlJPUl9TVUNDRVNTKQorICAgICAgICBnb3RvIGZhaWwx
OworCisgICAgbG9uZyBzaXplID0gMzI7CisgICAgRFdPUkQgbGVuZ3RoOworICAgIGNoYXIqIGJ1
ZmZlciA9IE5VTEw7CisKKyAgICBkbyB7CisgICAgICAgIGxlbmd0aCA9IHNpemU7CisgICAgICAg
IGlmIChidWZmZXIpCisgICAgICAgICAgICBkZWxldGUgW10gYnVmZmVyOworCisgICAgICAgIGJ1
ZmZlciA9IG5ldyBjaGFyW3NpemVdOworICAgICAgICBpZiAoYnVmZmVyID09IE5VTEwpCisgICAg
ICAgICAgICBnb3RvIGZhaWwyOworCisgICAgICAgIGxyID0gUmVnUXVlcnlWYWx1ZUV4KGtleSwg
UkVHX1VUQ19OQU1FLCBOVUxMLCBOVUxMLCAoTFBCWVRFKWJ1ZmZlciwgJmxlbmd0aCk7CisgICAg
ICAgIHNpemUgKj0gMjsKKyAgICB9IHdoaWxlIChsciA9PSBFUlJPUl9NT1JFX0RBVEEpOworICAg
IGlmIChsciAhPSBFUlJPUl9TVUNDRVNTKQorICAgICAgICBnb3RvIGZhaWwzOworCisgICAgaWYg
KCFfc3Rybmljb2xsKCJVVEMiLCBidWZmZXIsIGxlbmd0aCkpCisgICAgICAgIG1hdGNoID0gdHJ1
ZTsKKworZmFpbDM6CisgICAgZGVsZXRlIFtdIGJ1ZmZlcjsKK2ZhaWwyOgorICAgIFJlZ0Nsb3Nl
S2V5KGtleSk7CitmYWlsMToKKworICAgIHJldHVybiBtYXRjaDsKK30KKwordm9pZCBDWGVuQWdl
bnQ6OlNldFhlblRpbWUoKQoreworICAgIC8vIFNldCBWTSdzIHRpbWUgdG8gWGVuJ3MgdGltZSAo
YWRqdXN0IGZvciBVVEMgc2V0dGluZ3Mgb2YgVk0gYW5kIGd1ZXN0KQorICAgIEZJTEVUSU1FIG5v
dyA9IHsgMCB9OworICAgIGlmICghbV9kZXZpY2UtPlNoYXJlZEluZm9HZXRUaW1lKCZub3cpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBib29sIElzVVRDID0gSXNIb3N0VGltZVVUQygpOworICAg
IGlmIChJc1VUQykKKyAgICAgICAgQWRqdXN0WGVuVGltZVRvVVRDKCZub3cpOworCisgICAgU1lT
VEVNVElNRSBzeXMgPSB7IDAgfTsKKyAgICBpZiAoIUZpbGVUaW1lVG9TeXN0ZW1UaW1lKCZub3cs
ICZzeXMpKQorICAgICAgICByZXR1cm47CisKKyAgICBTWVNURU1USU1FIGN1ciA9IHsgMCB9Owor
ICAgIEdldExvY2FsVGltZSgmY3VyKTsKKworICAgIENYZW5BZ2VudDo6TG9nKCJUaW1lIE5vdyA9
ICVkLyVkLyVkICVkOiUwMmQ6JTAyZC4lZFxuIiwKKyAgICAgICAgICAgICAgICAgICBjdXIud1ll
YXIsIGN1ci53TW9udGgsIGN1ci53RGF5LAorICAgICAgICAgICAgICAgICAgIGN1ci53SG91ciwg
Y3VyLndNaW51dGUsIGN1ci53U2Vjb25kLCBjdXIud01pbGxpc2Vjb25kcyk7CisgICAgQ1hlbkFn
ZW50OjpMb2coIk5ldyBUaW1lID0gJWQvJWQvJWQgJWQ6JTAyZDolMDJkLiVkXG4iLAorICAgICAg
ICAgICAgICAgICAgIHN5cy53WWVhciwgc3lzLndNb250aCwgc3lzLndEYXksCisgICAgICAgICAg
ICAgICAgICAgc3lzLndIb3VyLCBzeXMud01pbnV0ZSwgc3lzLndTZWNvbmQsIHN5cy53TWlsbGlz
ZWNvbmRzKTsKKworICAgIGlmIChJc1VUQykKKyAgICAgICAgU2V0U3lzdGVtVGltZSgmc3lzKTsK
KyAgICBlbHNlCisgICAgICAgIFNldExvY2FsVGltZSgmc3lzKTsKK30KKwogdm9pZCBDWGVuQWdl
bnQ6Ok9uU2h1dGRvd24oKQogewogICAgIENDcml0U2VjIGNyaXQoJm1fY3JpdCk7CkBAIC0zNzks
NiArNDk2LDggQEAgdm9pZCBDWGVuQWdlbnQ6Ok9uU3VzcGVuZCgpCiAgICAgRXZlbnRMb2coRVZF
TlRfWEVOVVNFUl9VTlNVU1BFTkRFRCk7CiAKICAgICBtX2RldmljZS0+U3RvcmVXcml0ZSgiY29u
dHJvbC9mZWF0dXJlLXNodXRkb3duIiwgIjEiKTsKKworICAgIFNldFhlblRpbWUoKTsKIH0KIAog
dm9pZCBDWGVuQWdlbnQ6OlNldFNlcnZpY2VTdGF0dXMoRFdPUkQgc3RhdGUsIERXT1JEIGV4aXQg
Lyo9IDAqLywgRFdPUkQgaGludCAvKj0gMCovKQpkaWZmIC0tZ2l0IGEvc3JjL3hlbmFnZW50L3Nl
cnZpY2UuaCBiL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmgKaW5kZXggZmI4YTFlZS4uYmY1Y2M3NiAx
MDA2NDQKLS0tIGEvc3JjL3hlbmFnZW50L3NlcnZpY2UuaAorKysgYi9zcmMveGVuYWdlbnQvc2Vy
dmljZS5oCkBAIC03MSw2ICs3MSwxMCBAQCBwcml2YXRlOiAvLyBzZXJ2aWNlIGV2ZW50cwogcHJp
dmF0ZTogLy8gaGVscGVycwogICAgIHZvaWQgQWNxdWlyZVNodXRkb3duUHJpdmlsZWdlKCk7CiAg
ICAgdm9pZCBFdmVudExvZyhEV09SRCBldnQpOworICAgIGJvb2wgSXNIb3N0VGltZVVUQygpOwor
ICAgIHZvaWQgQWRqdXN0WGVuVGltZVRvVVRDKEZJTEVUSU1FKiB0aW1lKTsKKyAgICBib29sIFJl
Z0NoZWNrSXNVVEMoY29uc3QgY2hhciogcGF0aCk7CisgICAgdm9pZCBTZXRYZW5UaW1lKCk7CiAg
ICAgdm9pZCBPblNodXRkb3duKCk7CiAgICAgdm9pZCBPblN1c3BlbmQoKTsKIAotLSAKMS45LjQu
bXN5c2dpdC4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVj
dC5vcmcKaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5m
by93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 05 10:38:26 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 05 Jul 2016 10:38:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bKNkI-0005In-Lh; Tue, 05 Jul 2016 10:38:26 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=987319bd7=owen.smith@citrix.com>)
 id 1bKNkH-0005H0-7N
 for win-pv-devel@lists.xenproject.org; Tue, 05 Jul 2016 10:38:25 +0000
Received: from [193.109.254.147] by server-14.bemta-14.messagelabs.com id
 B0/E6-27600-02E8B775; Tue, 05 Jul 2016 10:38:24 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprJIsWRWlGSWpSXmKPExsXitHSDva58X3W
 4wbFt1hZ/Fic6MHoc/nCFJYAxijUzLym/IoE149qW9YwF53Uq5pytaWB8rNTFyMEhIeAv8azH
 oIuRk4NNQENiRudiFhBbREBdYt/nrUwgNrOAmsT1/V2sILawgJvEvRsX2UBsFgEViU1vG8Hqe
 QVcJRqO7ASrlwCas6lhBlgNJ1B94/Y1YL1CIDX7LzFC2EoS3xa/YIboFZQ4OfMJC8QuCYmDL0
 DiIKdxS/zttp/AyDcLSdUsJFULGJlWMWoUpxaVpRbpGhrpJRVlpmeU5CZm5ugaGpro5aYWFye
 mp+YkJhXrJefnbmIEBhMDEOxgPDvN+RCjJAeTkiivQ011uBBfUn5KZUZicUZ8UWlOavEhRhkO
 DiUJXs9eoJxgUWp6akVaZg4wrGHSEhw8SiK8zCBp3uKCxNzizHSI1ClGXY6eV7fXMgmx5OXnp
 UqJ857qASoSACnKKM2DGwGLsUuMslLCvIxARwnxFKQW5WaWoMq/YhTnYFQS5uUAWcWTmVcCt+
 kV0BFMQEf8dAE7oiQRISXVwFgYeerya9Xd/6f+MDiQvWyeyfzqxWkVSUuiA6fr3hDZcvCvpMX
 nVg6p11GLZj502p/187rxmm3bU8t6QrOmKL71fZJi4mfx5PP+1GlmS5eFuR9VKfKycz/A/ey5
 /4/ja7KPBOz3uS6beO1bhRf7792Lt76SrWlv4L5/ew33s1t/o7I7lvQkRjMpsRRnJBpqMRcVJ
 wIA6hqQVawCAAA=
X-Env-Sender: prvs=987319bd7=owen.smith@citrix.com
X-Msg-Ref: server-10.tower-27.messagelabs.com!1467715100!51976083!3
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: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 34512 invoked from network); 5 Jul 2016 10:38:23 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
 by server-10.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 5 Jul 2016 10:38:23 -0000
X-IronPort-AV: E=Sophos;i="5.26,579,1459814400"; d="scan'208";a="371291283"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 5 Jul 2016 11:38:11 +0100
Message-ID: <1467715091-13216-7-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
References: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 6/6] Set VM's time based on host's time
	exposed by Xen
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

U2V0cyB0aGUgVk0ncyB0aW1lIHdoZW4gWGVuSWZhY2Ugc3RhcnRzIGFuZCBvbiByZXN1bWUgZnJv
bSBzdXNwZW5kLgpVc2VzIHRoZSB1bmRlcmx5aW5nIGhvc3QncyB0aW1lLCBhY2Nlc3NlZCB2aWEg
WGVuLiBQcm92aWRlIGFuIG9wdGlvbgpmb3IgdGhlIGd1ZXN0IHRvIHRyZWF0IFhlbidzIHRpbWUg
YXMgVVRDIG9yIHRoZSBjdXJyZW50IHRpbWV6b25lLgpUaGlzIG9wdGlvbiBhZGRzIDIgbmV3IGJy
YW5kYWJsZSB2YXJpYWJsZXMgdGhhdCBzcGVjaWZ5IGEgcGFydGlhbCAKcmVnaXN0cnkgcGF0aCBh
bmQgdmFsdWUgaW4gdGhlIFZNIHRoYXQgZGV0ZXJtaW5lcyBob3cgdGhlIHRpbWUgb2Zmc2V0Cmlz
IG1vZGlmaWVkLiBUaGVzZSB2YWx1ZXMgYXJlIFJFR19UT09MU19QQVRIIGFuZCBSRUdfVVRDX05B
TUUgd2hpY2gKc2hvdWxkIGJlIHNwZWNpZmllZCBpbiB0aGUgYnVpbGQgZW52aXJvbm1lbnQgaWYg
dGhlIHZhbHVlcyBuZWVkIHRvCmJlIGRpZmZlcmVudC4KClNpZ25lZC1vZmYtYnk6IE93ZW4gU21p
dGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4KLS0tCiBidWlsZC5weSAgICAgICAgICAgICAgICAg
fCAgMTAgKysrKwogc3JjL3hlbmFnZW50L3NlcnZpY2UuY3BwIHwgMTE5ICsrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMveGVuYWdlbnQvc2VydmljZS5o
ICAgfCAgIDQgKysKIDMgZmlsZXMgY2hhbmdlZCwgMTMzIGluc2VydGlvbnMoKykKCmRpZmYgLS1n
aXQgYS9idWlsZC5weSBiL2J1aWxkLnB5CmluZGV4IGY0OTM3NGMuLmRmMzBlZTYgMTAwNzU1Ci0t
LSBhL2J1aWxkLnB5CisrKyBiL2J1aWxkLnB5CkBAIC03MCw2ICs3MCwxMCBAQCBkZWYgbWFrZV9o
ZWFkZXIoKToKICAgICBmaWxlLndyaXRlKCcjZGVmaW5lIERBWV9TVFJcdFx0XHQiJyArIHN0cihu
b3cuZGF5KSArICciXG4nKQogICAgIGZpbGUud3JpdGUoJ1xuJykKIAorICAgIGZpbGUud3JpdGUo
JyNkZWZpbmUgUkVHX1RPT0xTX1BBVEhcdFx0XHQiJyArIG9zLmVudmlyb25bJ1JFR19UT09MU19Q
QVRIJ10gKyAnIlxuJykKKyAgICBmaWxlLndyaXRlKCcjZGVmaW5lIFJFR19VVENfTkFNRVx0XHRc
dCInICsgb3MuZW52aXJvblsnUkVHX1VUQ19OQU1FJ10gKyAnIlxuJykKKyAgICBmaWxlLndyaXRl
KCdcbicpCisKICAgICBmaWxlLmNsb3NlKCkKIAogCkBAIC00MjYsNiArNDMwLDEyIEBAIGlmIF9f
bmFtZV9fID09ICdfX21haW5fXyc6CiAgICAgaWYgJ09CSkVDVF9QUkVGSVgnIG5vdCBpbiBvcy5l
bnZpcm9uLmtleXMoKToKICAgICAgICAgb3MuZW52aXJvblsnT0JKRUNUX1BSRUZJWCddID0gJ1hl
blByb2plY3QnCiAKKyAgICBpZiAnUkVHX1RPT0xTX1BBVEgnIG5vdCBpbiBvcy5lbnZpcm9uLmtl
eXMoKToKKyAgICAgICAgb3MuZW52aXJvblsnUkVHX1RPT0xTX1BBVEgnXSA9ICdYZW5Ub29scycK
KworICAgIGlmICdSRUdfVVRDX05BTUUnIG5vdCBpbiBvcy5lbnZpcm9uLmtleXMoKToKKyAgICAg
ICAgb3MuZW52aXJvblsnUkVHX1VUQ19OQU1FJ10gPSAnSG9zdFRpbWUnCisKICAgICBvcy5lbnZp
cm9uWydNQUpPUl9WRVJTSU9OJ10gPSAnOCcKICAgICBvcy5lbnZpcm9uWydNSU5PUl9WRVJTSU9O
J10gPSAnMicKICAgICBvcy5lbnZpcm9uWydNSUNST19WRVJTSU9OJ10gPSAnMCcKZGlmZiAtLWdp
dCBhL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcCBiL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcApp
bmRleCAzZTYyMWViLi5hNGQ5Mjk3IDEwMDY0NAotLS0gYS9zcmMveGVuYWdlbnQvc2VydmljZS5j
cHAKKysrIGIvc3JjL3hlbmFnZW50L3NlcnZpY2UuY3BwCkBAIC0yMTgsNiArMjE4LDggQEAgQ1hl
bkFnZW50Ojp+Q1hlbkFnZW50KCkKIAogICAgICAgICAvLyBzdXNwZW5kCiAgICAgICAgIG1fZGV2
aWNlLT5TdXNwZW5kUmVnaXN0ZXIobV9ldnRfc3VzcGVuZCwgJm1fY3R4dF9zdXNwZW5kKTsKKwor
ICAgICAgICBTZXRYZW5UaW1lKCk7CiAgICAgfQogfQogCkBAIC0zMTcsNiArMzE5LDEyMSBAQCB2
b2lkIENYZW5BZ2VudDo6RXZlbnRMb2coRFdPUkQgZXZ0KQogICAgIH0KIH0KIAorYm9vbCBDWGVu
QWdlbnQ6OklzSG9zdFRpbWVVVEMoKQoreworI2lmZGVmIF9XSU42NAorICAgIC8vIENoZWNrIFNP
RlRXQVJFXFdvdzY0MzJOb2RlXCQoVkVORE9SX05BTUVfU1RSKVwkKFJFR19UT09MU19QQVRIKSAk
KFJFR19VVENfTkFNRSkgPT0gVVRDCisgICAgaWYgKFJlZ0NoZWNrSXNVVEMoIlNPRlRXQVJFXFxX
b3c2NDMyTm9kZSIpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorICAgIC8vIENoZWNr
IFNPRlRXQVJFXCQoVkVORE9SX05BTUVfU1RSKVwkKFJFR19UT09MU19QQVRIKSAkKFJFR19VVENf
TkFNRSkgPT0gVVRDCisgICAgaWYgKFJlZ0NoZWNrSXNVVEMoIlNPRlRXQVJFIikpCisgICAgICAg
IHJldHVybiB0cnVlOworCisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIENYZW5BZ2VudDo6
QWRqdXN0WGVuVGltZVRvVVRDKEZJTEVUSU1FKiBub3cpCit7CisgICAgc3RkOjpzdHJpbmcgdm07
CisgICAgaWYgKCFtX2RldmljZS0+U3RvcmVSZWFkKCJ2bSIsIHZtKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgc3RkOjpzdHJpbmcgb2ZmczsKKyAgICBpZiAoIW1fZGV2aWNlLT5TdG9yZVJlYWQo
dm0gKyAiL3J0Yy90aW1lb2Zmc2V0Iiwgb2ZmcykpCisgICAgICAgIHJldHVybjsKKworICAgIGxv
bmcgb2Zmc2V0ID0gKGxvbmcpYXRvaShvZmZzLmNfc3RyKCkpOworCisgICAgVUxBUkdFX0lOVEVH
RVIgbG5vdzsKKyAgICBsbm93Lkxvd1BhcnQgID0gbm93LT5kd0xvd0RhdGVUaW1lOworICAgIGxu
b3cuSGlnaFBhcnQgPSBub3ctPmR3SGlnaERhdGVUaW1lOworCisgICAgbG5vdy5RdWFkUGFydCAt
PSAoKExPTkdMT05HKW9mZnNldCAqIDEwMDAwMDApOworCisgICAgbm93LT5kd0xvd0RhdGVUaW1l
ICA9IGxub3cuTG93UGFydDsKKyAgICBub3ctPmR3SGlnaERhdGVUaW1lID0gbG5vdy5IaWdoUGFy
dDsKK30KKworYm9vbCBDWGVuQWdlbnQ6OlJlZ0NoZWNrSXNVVEMoY29uc3QgY2hhciogcm9vdHBh
dGgpCit7CisgICAgSEtFWSAgICBrZXk7CisgICAgTFJFU1VMVCBscjsKKyAgICBzdGQ6OnN0cmlu
ZyBwYXRoOworICAgIGJvb2wgICAgbWF0Y2ggPSBmYWxzZTsKKworICAgIHBhdGggPSByb290cGF0
aDsKKyAgICBwYXRoICs9ICJcXCI7CisgICAgcGF0aCArPSBWRU5ET1JfTkFNRV9TVFI7CisgICAg
cGF0aCArPSAiXFwiOworICAgIHBhdGggKz0gUkVHX1RPT0xTX1BBVEg7CisKKyAgICBsciA9IFJl
Z09wZW5LZXlFeChIS0VZX0xPQ0FMX01BQ0hJTkUsIHBhdGguY19zdHIoKSwgMCwgS0VZX1JFQUQs
ICZrZXkpOworICAgIGlmIChsciAhPSBFUlJPUl9TVUNDRVNTKQorICAgICAgICBnb3RvIGZhaWwx
OworCisgICAgbG9uZyBzaXplID0gMzI7CisgICAgRFdPUkQgbGVuZ3RoOworICAgIGNoYXIqIGJ1
ZmZlciA9IE5VTEw7CisKKyAgICBkbyB7CisgICAgICAgIGxlbmd0aCA9IHNpemU7CisgICAgICAg
IGlmIChidWZmZXIpCisgICAgICAgICAgICBkZWxldGUgW10gYnVmZmVyOworCisgICAgICAgIGJ1
ZmZlciA9IG5ldyBjaGFyW3NpemVdOworICAgICAgICBpZiAoYnVmZmVyID09IE5VTEwpCisgICAg
ICAgICAgICBnb3RvIGZhaWwyOworCisgICAgICAgIGxyID0gUmVnUXVlcnlWYWx1ZUV4KGtleSwg
UkVHX1VUQ19OQU1FLCBOVUxMLCBOVUxMLCAoTFBCWVRFKWJ1ZmZlciwgJmxlbmd0aCk7CisgICAg
ICAgIHNpemUgKj0gMjsKKyAgICB9IHdoaWxlIChsciA9PSBFUlJPUl9NT1JFX0RBVEEpOworICAg
IGlmIChsciAhPSBFUlJPUl9TVUNDRVNTKQorICAgICAgICBnb3RvIGZhaWwzOworCisgICAgaWYg
KCFfc3Rybmljb2xsKCJVVEMiLCBidWZmZXIsIGxlbmd0aCkpCisgICAgICAgIG1hdGNoID0gdHJ1
ZTsKKworZmFpbDM6CisgICAgZGVsZXRlIFtdIGJ1ZmZlcjsKK2ZhaWwyOgorICAgIFJlZ0Nsb3Nl
S2V5KGtleSk7CitmYWlsMToKKworICAgIHJldHVybiBtYXRjaDsKK30KKwordm9pZCBDWGVuQWdl
bnQ6OlNldFhlblRpbWUoKQoreworICAgIC8vIFNldCBWTSdzIHRpbWUgdG8gWGVuJ3MgdGltZSAo
YWRqdXN0IGZvciBVVEMgc2V0dGluZ3Mgb2YgVk0gYW5kIGd1ZXN0KQorICAgIEZJTEVUSU1FIG5v
dyA9IHsgMCB9OworICAgIGlmICghbV9kZXZpY2UtPlNoYXJlZEluZm9HZXRUaW1lKCZub3cpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBib29sIElzVVRDID0gSXNIb3N0VGltZVVUQygpOworICAg
IGlmIChJc1VUQykKKyAgICAgICAgQWRqdXN0WGVuVGltZVRvVVRDKCZub3cpOworCisgICAgU1lT
VEVNVElNRSBzeXMgPSB7IDAgfTsKKyAgICBpZiAoIUZpbGVUaW1lVG9TeXN0ZW1UaW1lKCZub3cs
ICZzeXMpKQorICAgICAgICByZXR1cm47CisKKyAgICBTWVNURU1USU1FIGN1ciA9IHsgMCB9Owor
ICAgIEdldExvY2FsVGltZSgmY3VyKTsKKworICAgIENYZW5BZ2VudDo6TG9nKCJUaW1lIE5vdyA9
ICVkLyVkLyVkICVkOiUwMmQ6JTAyZC4lZFxuIiwKKyAgICAgICAgICAgICAgICAgICBjdXIud1ll
YXIsIGN1ci53TW9udGgsIGN1ci53RGF5LAorICAgICAgICAgICAgICAgICAgIGN1ci53SG91ciwg
Y3VyLndNaW51dGUsIGN1ci53U2Vjb25kLCBjdXIud01pbGxpc2Vjb25kcyk7CisgICAgQ1hlbkFn
ZW50OjpMb2coIk5ldyBUaW1lID0gJWQvJWQvJWQgJWQ6JTAyZDolMDJkLiVkXG4iLAorICAgICAg
ICAgICAgICAgICAgIHN5cy53WWVhciwgc3lzLndNb250aCwgc3lzLndEYXksCisgICAgICAgICAg
ICAgICAgICAgc3lzLndIb3VyLCBzeXMud01pbnV0ZSwgc3lzLndTZWNvbmQsIHN5cy53TWlsbGlz
ZWNvbmRzKTsKKworICAgIGlmIChJc1VUQykKKyAgICAgICAgU2V0U3lzdGVtVGltZSgmc3lzKTsK
KyAgICBlbHNlCisgICAgICAgIFNldExvY2FsVGltZSgmc3lzKTsKK30KKwogdm9pZCBDWGVuQWdl
bnQ6Ok9uU2h1dGRvd24oKQogewogICAgIENDcml0U2VjIGNyaXQoJm1fY3JpdCk7CkBAIC0zNzks
NiArNDk2LDggQEAgdm9pZCBDWGVuQWdlbnQ6Ok9uU3VzcGVuZCgpCiAgICAgRXZlbnRMb2coRVZF
TlRfWEVOVVNFUl9VTlNVU1BFTkRFRCk7CiAKICAgICBtX2RldmljZS0+U3RvcmVXcml0ZSgiY29u
dHJvbC9mZWF0dXJlLXNodXRkb3duIiwgIjEiKTsKKworICAgIFNldFhlblRpbWUoKTsKIH0KIAog
dm9pZCBDWGVuQWdlbnQ6OlNldFNlcnZpY2VTdGF0dXMoRFdPUkQgc3RhdGUsIERXT1JEIGV4aXQg
Lyo9IDAqLywgRFdPUkQgaGludCAvKj0gMCovKQpkaWZmIC0tZ2l0IGEvc3JjL3hlbmFnZW50L3Nl
cnZpY2UuaCBiL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmgKaW5kZXggZmI4YTFlZS4uYmY1Y2M3NiAx
MDA2NDQKLS0tIGEvc3JjL3hlbmFnZW50L3NlcnZpY2UuaAorKysgYi9zcmMveGVuYWdlbnQvc2Vy
dmljZS5oCkBAIC03MSw2ICs3MSwxMCBAQCBwcml2YXRlOiAvLyBzZXJ2aWNlIGV2ZW50cwogcHJp
dmF0ZTogLy8gaGVscGVycwogICAgIHZvaWQgQWNxdWlyZVNodXRkb3duUHJpdmlsZWdlKCk7CiAg
ICAgdm9pZCBFdmVudExvZyhEV09SRCBldnQpOworICAgIGJvb2wgSXNIb3N0VGltZVVUQygpOwor
ICAgIHZvaWQgQWRqdXN0WGVuVGltZVRvVVRDKEZJTEVUSU1FKiB0aW1lKTsKKyAgICBib29sIFJl
Z0NoZWNrSXNVVEMoY29uc3QgY2hhciogcGF0aCk7CisgICAgdm9pZCBTZXRYZW5UaW1lKCk7CiAg
ICAgdm9pZCBPblNodXRkb3duKCk7CiAgICAgdm9pZCBPblN1c3BlbmQoKTsKIAotLSAKMS45LjQu
bXN5c2dpdC4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVj
dC5vcmcKaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5m
by93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 05 10:38:27 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 05 Jul 2016 10:38:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bKNkJ-0005Jz-O0; Tue, 05 Jul 2016 10:38:27 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=987319bd7=owen.smith@citrix.com>)
 id 1bKNkH-0005GW-SO
 for win-pv-devel@lists.xenproject.org; Tue, 05 Jul 2016 10:38:26 +0000
Received: from [85.158.143.35] by server-3.bemta-6.messagelabs.com id
 62/9F-22092-12E8B775; Tue, 05 Jul 2016 10:38:25 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupnkeJIrShJLcpLzFFi42JxWrohUlehrzr
 c4Pw8XYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCa8eLeNLaCuR08FQeX9TM3MH78wtnFyMkhIeAv
 cfjxdnYQm01AQ2JG52IWEFtEQF1i3+etTCA2s4CaxPX9XaxdjBwcwgIBEhP7xUDCLAIqEhtXz
 GMGsXkFXCXa1/1ihhipIbGpYQYbiM0p4CbRuH0NK4gtBFTTsP8SI4StJPFt8QuoXkGJkzOfsE
 CskpA4+AIkzgE0h1vib7f9BEa+WUiqZiGpWsDItIpRvTi1qCy1SNdIL6koMz2jJDcxM0fX0MB
 MLze1uDgxPTUnMalYLzk/dxMjMKAYgGAH47K/TocYJTmYlER5HWqqw4X4kvJTKjMSizPii0pz
 UosPMcpwcChJ8F7tAcoJFqWmp1akZeYAQxsmLcHBoyTCy9wLlOYtLkjMLc5Mh0idYlSUEue1B
 UkIgCQySvPg2mDxdIlRVkqYlxHoECGegtSi3MwSVPlXjOIcjErCvKdAtvNk5pXATX8FtJgJaP
 FPF7DFJYkIKakGRoY2w0llz3+c5BW34QzfvUPiWszs1TFbMraFZGS3Vhu/lzu3yGfrTudMl9M
 nHvxiSzz4ZfsJlfmRc4T49F9P+OF/LKPrU2LQAZnVR0/lfv4yOf9njKj9DdH5nUVBLes/1bJx
 HY5d/HfXii/f9mhufHBlTmR9yQ/fMvtrk27sScm5ENXOuf6Tv4kSS3FGoqEWc1FxIgAXFRAko
 gIAAA==
X-Env-Sender: prvs=987319bd7=owen.smith@citrix.com
X-Msg-Ref: server-10.tower-21.messagelabs.com!1467715100!22252305!4
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13399 invoked from network); 5 Jul 2016 10:38:24 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-10.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 5 Jul 2016 10:38:24 -0000
X-IronPort-AV: E=Sophos;i="5.26,579,1459814400"; d="scan'208";a="364363850"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 5 Jul 2016 11:38:06 +0100
Message-ID: <1467715091-13216-2-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
References: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 1/6] Remove LiteAgent,
	replace with boilerplate xenagent service
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

UmVtb3ZlIHRoZSBMaXRlQWdlbnQgcHJvamVjdCBhbmQgcmVwbGFjZSBpdCB3aXRoIHRoZSB4ZW5h
Z2VudApwcm9qZWN0LiBYZW5hZ2VudCBpcyBhIGJvaWxlcnBsYXRlIHNlcnZpY2UgdGhhdCBoYXMg
bm8KZnVuY3Rpb25hbGl0eSBpbiB0aGlzIHBhdGNoLiBTdWJzaXF1ZW50IHBhdGNoZXMgd2lsbCBh
ZGQKdGhlIHJlcXVpcmVkIGZ1bmN0aW9uYWxpdHkuCgpTaWduZWQtb2ZmLWJ5OiBPd2VuIFNtaXRo
IDxvd2VuLnNtaXRoQGNpdHJpeC5jb20+Ci0tLQogc3JjL3dpbjMyc3R1YmFnZW50L1dtaUFjY2Vz
c29yLmNwcCAgICAgIHwgMTMzMSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmMv
d2luMzJzdHViYWdlbnQvV21pQWNjZXNzb3IuaCAgICAgICAgfCAgIDg4IC0tCiBzcmMvd2luMzJz
dHViYWdlbnQvWFNBY2Nlc3Nvci5jcHAgICAgICAgfCAgMjMwIC0tLS0tLQogc3JjL3dpbjMyc3R1
YmFnZW50L1hTQWNjZXNzb3IuaCAgICAgICAgIHwgIDEyNiAtLS0KIHNyYy93aW4zMnN0dWJhZ2Vu
dC9YU2VydmljZS5jcHAgICAgICAgICB8IDEwNDQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBz
cmMvd2luMzJzdHViYWdlbnQvWFNlcnZpY2UuaCAgICAgICAgICAgfCAgIDU0IC0tCiBzcmMvd2lu
MzJzdHViYWdlbnQvZXJyb3JzLmNwcCAgICAgICAgICAgfCAgMTAyIC0tLQogc3JjL3dpbjMyc3R1
YmFnZW50L21lc3NhZ2VzLm1jICAgICAgICAgIHwgICA2NiAtLQogc3JjL3dpbjMyc3R1YmFnZW50
L3N0ZGFmeC5jcHAgICAgICAgICAgIHwgICAzOSAtCiBzcmMvd2luMzJzdHViYWdlbnQvc3RkYWZ4
LmggICAgICAgICAgICAgfCAgIDQzIC0KIHNyYy93aW4zMnN0dWJhZ2VudC93MzJ4YWdlbnQucmMg
ICAgICAgICB8ICAgNjAgLS0KIHNyYy93aW4zMnN0dWJhZ2VudC94ZW4uaWNvICAgICAgICAgICAg
ICB8ICBCaW4gMjUyMTQgLT4gMCBieXRlcwogc3JjL3hlbmFnZW50L21lc3NhZ2VzLm1jICAgICAg
ICAgICAgICAgIHwgICA2NiArKwogc3JjL3hlbmFnZW50L3NlcnZpY2UuY3BwICAgICAgICAgICAg
ICAgIHwgIDI0OCArKysrKysKIHNyYy94ZW5hZ2VudC9zZXJ2aWNlLmggICAgICAgICAgICAgICAg
ICB8ICAgNzQgKysKIHNyYy94ZW5hZ2VudC94ZW4uaWNvICAgICAgICAgICAgICAgICAgICB8ICBC
aW4gMCAtPiAyNTIxNCBieXRlcwogc3JjL3hlbmFnZW50L3hlbmFnZW50LnJjICAgICAgICAgICAg
ICAgIHwgICA2MCArKwogc3JjL3hlbmlmYWNlLmluZiAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAxNiArLQogdnMyMDEyL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvaiAgICAgIHwgIDI1MSAt
LS0tLS0KIHZzMjAxMi9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHByb2oudXNlciB8ICAgIDQgLQog
dnMyMDEyL3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2ogICAgICAgIHwgIDIxNyArKysrKwogdnMy
MDEyL3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2oudXNlciAgIHwgICAgNCArCiB2czIwMTIveGVu
aWZhY2Uuc2xuICAgICAgICAgICAgICAgICAgICAgfCAgICAyICstCiB2czIwMTMvbGl0ZWFnZW50
L0xpdGVBZ2VudC52Y3hwcm9qICAgICAgfCAgMjU2IC0tLS0tLQogdnMyMDEzL2xpdGVhZ2VudC9M
aXRlQWdlbnQudmN4cHJvai51c2VyIHwgICAgNCAtCiB2czIwMTMveGVuYWdlbnQveGVuYWdlbnQu
dmN4cHJvaiAgICAgICAgfCAgMjIxICsrKysrCiB2czIwMTMveGVuYWdlbnQveGVuYWdlbnQudmN4
cHJvai51c2VyICAgfCAgICA0ICsKIHZzMjAxMy94ZW5pZmFjZS5zbG4gICAgICAgICAgICAgICAg
ICAgICB8ICAgIDIgKy0KIDI4IGZpbGVzIGNoYW5nZWQsIDkwNCBpbnNlcnRpb25zKCspLCAzNzA4
IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy93aW4zMnN0dWJhZ2VudC9XbWlB
Y2Nlc3Nvci5jcHAKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvd2luMzJzdHViYWdlbnQvV21pQWNj
ZXNzb3IuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy93aW4zMnN0dWJhZ2VudC9YU0FjY2Vzc29y
LmNwcAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy93aW4zMnN0dWJhZ2VudC9YU0FjY2Vzc29yLmgK
IGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvd2luMzJzdHViYWdlbnQvWFNlcnZpY2UuY3BwCiBkZWxl
dGUgbW9kZSAxMDA2NDQgc3JjL3dpbjMyc3R1YmFnZW50L1hTZXJ2aWNlLmgKIGRlbGV0ZSBtb2Rl
IDEwMDY0NCBzcmMvd2luMzJzdHViYWdlbnQvZXJyb3JzLmNwcAogZGVsZXRlIG1vZGUgMTAwNjQ0
IHNyYy93aW4zMnN0dWJhZ2VudC9tZXNzYWdlcy5tYwogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy93
aW4zMnN0dWJhZ2VudC9zdGRhZnguY3BwCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3dpbjMyc3R1
YmFnZW50L3N0ZGFmeC5oCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3dpbjMyc3R1YmFnZW50L3cz
MnhhZ2VudC5yYwogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy93aW4zMnN0dWJhZ2VudC94ZW4uaWNv
CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3hlbmFnZW50L21lc3NhZ2VzLm1jCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgc3JjL3hlbmFnZW50L3NlcnZpY2UuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj
L3hlbmFnZW50L3NlcnZpY2UuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy94ZW5hZ2VudC94ZW4u
aWNvCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3hlbmFnZW50L3hlbmFnZW50LnJjCiBkZWxldGUg
bW9kZSAxMDA2NDQgdnMyMDEyL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvagogZGVsZXRlIG1v
ZGUgMTAwNjQ0IHZzMjAxMi9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHByb2oudXNlcgogY3JlYXRl
IG1vZGUgMTAwNjQ0IHZzMjAxMi94ZW5hZ2VudC94ZW5hZ2VudC52Y3hwcm9qCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgdnMyMDEyL3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2oudXNlcgogZGVsZXRlIG1v
ZGUgMTAwNjQ0IHZzMjAxMy9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHByb2oKIGRlbGV0ZSBtb2Rl
IDEwMDY0NCB2czIwMTMvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qLnVzZXIKIGNyZWF0ZSBt
b2RlIDEwMDY0NCB2czIwMTMveGVuYWdlbnQveGVuYWdlbnQudmN4cHJvagogY3JlYXRlIG1vZGUg
MTAwNjQ0IHZzMjAxMy94ZW5hZ2VudC94ZW5hZ2VudC52Y3hwcm9qLnVzZXIKCmRpZmYgLS1naXQg
YS9zcmMvd2luMzJzdHViYWdlbnQvV21pQWNjZXNzb3IuY3BwIGIvc3JjL3dpbjMyc3R1YmFnZW50
L1dtaUFjY2Vzc29yLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjg1ZmY4ZS4u
MDAwMDAwMAotLS0gYS9zcmMvd2luMzJzdHViYWdlbnQvV21pQWNjZXNzb3IuY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsMTMzMSArMCwwIEBACi0vKiBDb3B5cmlnaHQgKGMpIENpdHJpeCBTeXN0ZW1z
IEluYy4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcywgCi0gKiB3aXRoIG9yIHdpdGhvdXQgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIAotICogdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlIG1ldDoKLSAqCi0gKiAqICAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSAKLSAqICAgICBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIAotICogICAgIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogKiAgIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgCi0gKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSAKLSAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgCi0gKiAgICAgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgCi0gKiBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCAKLSAqIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIAotICogTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgCi0gKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiAKLSAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCAKLSAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIAot
ICogQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IAotICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyAKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCAKLSAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyAKLSAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIAotICogU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lu
Y2x1ZGUgInN0ZGFmeC5oIgotI2RlZmluZSBfV0lOMzJfRENPTQotI2luY2x1ZGUgPHdpbmRvd3Mu
aD4KLSNpbmNsdWRlIDxpb3N0cmVhbT4KLSNpbmNsdWRlIDxhbGdvcml0aG0+Ci0jaW5jbHVkZSA8
aGFzaF9tYXA+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlICJ3aW5lcnJvci5oIgotI2lu
Y2x1ZGUgIldNSUFjY2Vzc29yLmgiCi0jaW5jbHVkZSAiWFNlcnZpY2UuaCIKLSNpbmNsdWRlICJj
b211dGlsLmgiCi0KLS8vI2luY2x1ZGUgInhzX3ByaXZhdGUuaCIKLSNpbmNsdWRlIDx3YmVtaWRs
Lmg+Ci0KLSNpbmNsdWRlIDx2ZXJzaW9uLmg+Ci0KLSNkZWZpbmUgV0lERU4yKHgpIEwgIyMgeAot
I2RlZmluZSBXSURFTih4KSBXSURFTjIoeCkKLQotI2RlZmluZSBPQkpFQ1RfTkFNRV9BKF9OYW1l
KSBPQkpFQ1RfUFJFRklYX1NUUiAiWGVuU3RvcmUiICNfTmFtZQotI2RlZmluZSBPQkpFQ1RfTkFN
RV9XKF9OYW1lKSBXSURFTihPQkpFQ1RfUFJFRklYX1NUUikgTCJYZW5TdG9yZSIgV0lERU4oI19O
YW1lKQotCi0jcHJhZ21hIGNvbW1lbnQobGliLCAid2JlbXV1aWQubGliIikKLSNwcmFnbWEgY29t
bWVudChsaWIsICJ1dWlkLmxpYiIpCi0jcHJhZ21hIGNvbW1lbnQobGliLCAiY29tc3VwcHcubGli
IikKLQotQlNUUiBta0JzdHIoY29uc3QgY2hhciAqc3RyaW5nLCBzaXplX3QgbGVuKSB7Ci0gICAg
QlNUUiByZXMgPSBOVUxMOwotICAgIHNpemVfdCByZXR1cm5lZDsKLSAgICB3Y2hhcl90KiB3c3Ry
aW5nID0gbmV3IHdjaGFyX3RbbGVuKzFdOwotICAgIGlmICh3c3RyaW5nID09IE5VTEwpIHsKLSAg
ICAgICAgZ290byBtYWxsb2Nfd3N0cmluZzsKLSAgICB9Ci0gICAgbWJzdG93Y3NfcygmcmV0dXJu
ZWQsIHdzdHJpbmcsIGxlbisxLCBzdHJpbmcsIGxlbik7Ci0gICAgcmVzID0gU3lzQWxsb2NTdHJp
bmcod3N0cmluZyk7Ci0gICAgZGVsZXRlIHdzdHJpbmc7Ci1tYWxsb2Nfd3N0cmluZzoKLSAgICBy
ZXR1cm4gcmVzOwotfQotCi1jaGFyICogZm9ybWF0Q2hhclN0ckludChjb25zdCBjaGFyICpmbXQs
IHZhX2xpc3QgbCkgewotICAgIGNoYXIgKmJ1ZiA9IE5VTEw7Ci0gICAgaW50IGNudCA9IF92c2Nw
cmludGYoZm10LCBsKTsKLSAgICBidWYgPSAoY2hhciAqKVhzQWxsb2MoY250KzEpOwotICAgIGlm
IChidWYgPT0gTlVMTCkgewotICAgICAgICBnb3RvIG1hbGxvY19idWY7Ci0gICAgfQotICAgIF92
c25wcmludGYoYnVmLCBjbnQrMSwgZm10LCBsKTsKLW1hbGxvY19idWY6Ci0gICAgcmV0dXJuIGJ1
ZjsKLX0KLQotY2hhciAqIGZvcm1hdENoYXJTdHIoY29uc3QgY2hhciAqZm10LCAuLi4gKSB7Ci0g
ICAgY2hhciAqYnVmID1OVUxMOwotICAgIHZhX2xpc3QgbDsKLSAgICB2YV9zdGFydChsLCBmbXQp
OwotICAgIGJ1ZiA9IGZvcm1hdENoYXJTdHJJbnQoZm10LCBsKTsKLSAgICB2YV9lbmQobCk7Ci0g
ICAgcmV0dXJuIGJ1ZjsKLX0KLQotQlNUUiBmb3JtYXRCc3RyKGNvbnN0IGNoYXIgKmZtdCwgLi4u
KSAKLXsKLSAgICBjaGFyICpidWY7Ci0gICAgdmFfbGlzdCBsOyAgCi0gICAgQlNUUiByZXMgPSBO
VUxMOwotICAgIHZhX3N0YXJ0KGwsIGZtdCk7Ci0gICAgYnVmID0gZm9ybWF0Q2hhclN0ckludChm
bXQsIGwpOwotICAgIHZhX2VuZChsKTsKLSAgICByZXMgPSBta0JzdHIoYnVmLCBzdHJsZW4oYnVm
KSk7Ci0gICAgWHNGcmVlKGJ1Zik7Ci0gICAgcmV0dXJuIHJlczsKLX0KLQotaW50IHNldFZhcmlh
bnRTdHJpbmcoVkFSSUFOVCogdmFyLCBjb25zdCBjaGFyICpkYXRhLCBzaXplX3QgbGVuKSB7Ci0g
ICAgaW50IGVycj0tMTsKLSAgICBWYXJpYW50SW5pdCh2YXIpOwotICAgIHZhci0+dnQ9VlRfQlNU
UjsKLSAgICB2YXItPmJzdHJWYWwgPSBta0JzdHIoZGF0YSwgbGVuKTsKLSAgICBpZiAodmFyLT5i
c3RyVmFsID09IE5VTEwpIHsKLSAgICAgICAgZ290byBzeXNhbGxvYzsKLSAgICB9Ci0gICAgZXJy
PTA7Ci1zeXNhbGxvYzoKLSAgICByZXR1cm4gZXJyOwotfQotCi0KLWludCBzZXRWYXJpYW50U3Ry
aW5nKFZBUklBTlQqIHZhciwgY29uc3QgY2hhciAqc3RyaW5nKSB7Ci0gICAgcmV0dXJuIHNldFZh
cmlhbnRTdHJpbmcodmFyLCBzdHJpbmcsIHN0cmxlbihzdHJpbmcpKTsKLX0KLQotCi1jbGFzcyBX
YXRjaFNpbmsgOiBwdWJsaWMgSVdiZW1PYmplY3RTaW5rCi17Ci0gICAgTE9ORyBtX2xSZWY7Ci0g
ICAgYm9vbCBiRG9uZTsgCi0gICAgSEFORExFIHRyaWdnZXJldmVudDsKLSAgICBIQU5ETEUgdHJp
Z2dlcmVycm9yOwotcHVibGljOgotICAgIGNoYXIgKnBhdGg7Ci0gICAgV2F0Y2hTaW5rKEhBTkRM
RSBldmVudCwgSEFORExFIGVycm9yZXZlbnQsIGNvbnN0IGNoYXIgKnBhdGgpIHsgCi0gICAgICAg
IG1fbFJlZiA9IDE7IAotICAgICAgICB0cmlnZ2VyZXZlbnQgPSBldmVudDsKLSAgICAgICAgdHJp
Z2dlcmVycm9yID0gZXJyb3JldmVudDsKLSAgICAgICAgdGhpcy0+cGF0aCA9IE5VTEw7Ci0gICAg
ICAgIGlmIChwYXRoKSB7Ci0gICAgICAgICAgICB0aGlzLT5wYXRoPShjaGFyICopWHNBbGxvYyhz
dHJsZW4ocGF0aCkrMSk7Ci0gICAgICAgICAgICBzdHJjcHkodGhpcy0+cGF0aCwgcGF0aCk7Ci0g
ICAgICAgIH0KLSAgICB9Ci0gICB+V2F0Y2hTaW5rKCkgeyBiRG9uZSA9IFRSVUU7IH0KLQotICAg
IHZpcnR1YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgQWRkUmVmKCk7Ci0gICAgdmlydHVhbCBV
TE9ORyBTVERNRVRIT0RDQUxMVFlQRSBSZWxlYXNlKCk7ICAgICAgICAKLSAgICB2aXJ0dWFsIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgCi0gICAgICAgIFF1ZXJ5SW50ZXJmYWNlKFJFRklJRCBy
aWlkLCB2b2lkKiogcHB2KTsKLQotICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQ
RSBJbmRpY2F0ZSggCi0gICAgICAgICAgICAvKiBbaW5dICovCi0gICAgICAgICAgICBMT05HIGxP
YmplY3RDb3VudCwKLSAgICAgICAgICAgIC8qIFtzaXplX2lzXVtpbl0gKi8KLSAgICAgICAgICAg
IElXYmVtQ2xhc3NPYmplY3QgX19SUENfRkFSICpfX1JQQ19GQVIgKmFwT2JqQXJyYXkKLSAgICAg
ICAgICAgICk7Ci0gICAgICAgIAotICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQ
RSBTZXRTdGF0dXMoIAotICAgICAgICAgICAgLyogW2luXSAqLyBMT05HIGxGbGFncywKLSAgICAg
ICAgICAgIC8qIFtpbl0gKi8gSFJFU1VMVCBoUmVzdWx0LAotICAgICAgICAgICAgLyogW2luXSAq
LyBCU1RSIHN0clBhcmFtLAotICAgICAgICAgICAgLyogW2luXSAqLyBJV2JlbUNsYXNzT2JqZWN0
IF9fUlBDX0ZBUiAqcE9ialBhcmFtCi0gICAgICAgICAgICApOwotfTsKLQotCi1VTE9ORyBXYXRj
aFNpbms6OkFkZFJlZigpCi17Ci0gICAgcmV0dXJuIEludGVybG9ja2VkSW5jcmVtZW50KCZtX2xS
ZWYpOwotfQotCi1VTE9ORyBXYXRjaFNpbms6OlJlbGVhc2UoKQotewotICAgIExPTkcgbFJlZiA9
IEludGVybG9ja2VkRGVjcmVtZW50KCZtX2xSZWYpOwotICAgIGlmKGxSZWYgPT0gMCkKLSAgICAg
ICAgZGVsZXRlIHRoaXM7Ci0gICAgcmV0dXJuIGxSZWY7Ci19Ci0KLUhSRVNVTFQgV2F0Y2hTaW5r
OjpRdWVyeUludGVyZmFjZShSRUZJSUQgcmlpZCwgdm9pZCoqIHBwdikKLXsKLSAgICBpZiAocmlp
ZCA9PSBJSURfSVVua25vd24gfHwgcmlpZCA9PSBJSURfSVdiZW1PYmplY3RTaW5rKQotICAgIHsK
LSAgICAgICAgKnBwdiA9IChJV2JlbU9iamVjdFNpbmsgKikgdGhpczsKLSAgICAgICAgQWRkUmVm
KCk7Ci0gICAgICAgIHJldHVybiBXQkVNX1NfTk9fRVJST1I7Ci0gICAgfQotICAgIGVsc2UgcmV0
dXJuIEVfTk9JTlRFUkZBQ0U7Ci19Ci0KLQotSFJFU1VMVCBXYXRjaFNpbms6OkluZGljYXRlKGxv
bmcgbE9iakNvdW50LCBJV2JlbUNsYXNzT2JqZWN0ICoqcEFycmF5KQotewotICAgIGZvciAobG9u
ZyBpID0gMDsgaSA8IGxPYmpDb3VudDsgaSsrKQotICAgIHsKLSAgICAgICAgSVdiZW1DbGFzc09i
amVjdCAqcE9iaiA9IHBBcnJheVtpXTsKLSAgICAgICAgU2V0RXZlbnQodGhpcy0+dHJpZ2dlcmV2
ZW50KTsKLSAgICAgICAgLy8gLi4uIHVzZSB0aGUgb2JqZWN0LgotCi0gICAgICAgIC8vIEFkZFJl
ZigpIGlzIG9ubHkgcmVxdWlyZWQgaWYgdGhlIG9iamVjdCB3aWxsIGJlIGhlbGQgYWZ0ZXIKLSAg
ICAgICAgLy8gdGhlIHJldHVybiB0byB0aGUgY2FsbGVyLgotICAgIH0KLQotICAgIHJldHVybiBX
QkVNX1NfTk9fRVJST1I7Ci19Ci0KLUhSRVNVTFQgV2F0Y2hTaW5rOjpTZXRTdGF0dXMoCi0gICAg
ICAgICAgICAvKiBbaW5dICovIExPTkcgbEZsYWdzLAotICAgICAgICAgICAgLyogW2luXSAqLyBI
UkVTVUxUIGhSZXN1bHQsCi0gICAgICAgICAgICAvKiBbaW5dICovIEJTVFIgc3RyUGFyYW0sCi0g
ICAgICAgICAgICAvKiBbaW5dICovIElXYmVtQ2xhc3NPYmplY3QgX19SUENfRkFSICpwT2JqUGFy
YW0KLSAgICAgICAgKQotewotICAgIGlmIChGQUlMRUQoaFJlc3VsdCkpIHsKLSAgICAgICAgWHNM
b2coIldNSSBBc3ljIHdhdGNoIGZhaWxlZCAlcFxuIiwgdGhpcyk7Ci0gICAgICAgIFNldEV2ZW50
KHRoaXMtPnRyaWdnZXJlcnJvcik7Ci0gICAgfQotICAgIHJldHVybiBXQkVNX1NfTk9fRVJST1I7
Ci19Ci0KLQotCi1zdHJ1Y3QgV01JQWNjZXNzb3IKLXsKLSAgICBJV2JlbVNlcnZpY2VzICptcFN2
YzsKLSAgICBJV2JlbVNlcnZpY2VzICptcFhTU3ZjOwotICAgIAotICAgIEhBTkRMRSBvd25pbmdf
dGhyZWFkOwotfTsKLQotc3RydWN0IFdNSUFjY2Vzc29yICp3bWkgPSBOVUxMOwotCi1zdGF0aWMg
c3RyaW5nIHdzdHJpbmcyc3RyaW5nKGNvbnN0IHdzdHJpbmcmIHdzdHIpCi17IAotICAgIGludCBs
ZW47Ci0KLSAgICBsZW4gPSBXaWRlQ2hhclRvTXVsdGlCeXRlKENQX1VURjgsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3N0
ci5jX3N0cigpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBOVUxMKTsKLQotICAgIHN0cmluZyBzdHIobGVuLCAwKTsKLQotICAgIGxl
biA9IFdpZGVDaGFyVG9NdWx0aUJ5dGUoQ1BfVVRGOCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3c3RyLmNfc3RyKCksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICZzdHJbMF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KXN0ci5s
ZW5ndGgoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBOVUxMKTsKLQotICAgIHJldHVybiBzdHI7Ci19Ci0KLXN0YXRp
YyBzdHJpbmcgYnN0cjJzdHJpbmcoY29uc3QgQlNUUiYgYnN0cikKLXsKLSAgICB3c3RyaW5nIHdz
dHIoYnN0cik7Ci0KLSAgICByZXR1cm4gd3N0cmluZzJzdHJpbmcod3N0cik7Ci19Ci0KLUlXYmVt
Q2xhc3NPYmplY3QgKmdldENsYXNzKFdNSUFjY2Vzc29yICoqd21pLCBCU1RSIHBhdGgpIHsKLSAg
ICBpZiAoKndtaSA9PSBOVUxMKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIGlmICgoKndt
aSktPm1wWFNTdmMgPT0gTlVMTCkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBJV2JlbUNs
YXNzT2JqZWN0ICpyZXR1cm5lZE9iamVjdDsKLSAgICBIUkVTVUxUIGhyZXMgPSAoKndtaSktPm1w
WFNTdmMtPkdldE9iamVjdChwYXRoLFdCRU1fRkxBR19SRVRVUk5fV0JFTV9DT01QTEVURSwKLSAg
ICAgICAgICAgIE5VTEwsICZyZXR1cm5lZE9iamVjdCwgTlVMTCk7Ci0gICAgaWYgKEZBSUxFRCho
cmVzKSkgewotICAgICAgICByZXR1cm5lZE9iamVjdCA9TlVMTDsKLSAgICB9Ci0gICAgcmV0dXJu
IHJldHVybmVkT2JqZWN0OwotfQotCi1JV2JlbUNsYXNzT2JqZWN0ICpnZXRPYmplY3QoV01JQWNj
ZXNzb3IgKip3bWksIEJTVFIgcGF0aCkgewotICAgIElFbnVtV2JlbUNsYXNzT2JqZWN0ICpyZXR1
cm5lZEVudW07Ci0gICAgSVdiZW1DbGFzc09iamVjdCAqcmV0dXJuZWRPYmplY3Q7Ci0gICAgaWYg
KCp3bWkgPT0gTlVMTCkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgQVNTRVJUKCgqd21pKS0+
bXBYU1N2YyAhPSBOVUxMKTsKLSAgICBIUkVTVUxUIGhyZXMgPSAgKCp3bWkpLT5tcFhTU3ZjLT5D
cmVhdGVJbnN0YW5jZUVudW0ocGF0aCwgV0JFTV9GTEFHX0ZPUldBUkRfT05MWSwgCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcmV0dXJuZWRFbnVtKTsKLSAgICBpZiAo
RkFJTEVEKGhyZXMpKSB7Ci0gICAgICAgIE91dHB1dERlYnVnU3RyaW5nKCJHZXRFbnVtIGZhaWxl
ZFxuIik7Ci0gICAgICAgIHJldHVybmVkT2JqZWN0ID1OVUxMOwotICAgICAgICByZXR1cm4gcmV0
dXJuZWRPYmplY3Q7Ci0gICAgfQotICAgIFVMT05HIG9iamVjdHM7Ci0KLSAgICBocmVzID0gcmV0
dXJuZWRFbnVtLT5OZXh0KFdCRU1fSU5GSU5JVEUsIDEsICZyZXR1cm5lZE9iamVjdCwgJm9iamVj
dHMpOwotCi0gICAgICAgICAgICAgICAgCi0gICAgaWYgKEZBSUxFRChocmVzKSB8fCBvYmplY3Rz
IDwgMSkgewotICAgICAgICBPdXRwdXREZWJ1Z1N0cmluZygiR2V0RnJvbUVudW0gZmFpbGVkXG4i
KTsKLSAgICAgICAgcmV0dXJuZWRPYmplY3QgPU5VTEw7Ci0gICAgfQotCi0gICAgcmV0dXJuIHJl
dHVybmVkT2JqZWN0OwotfQotCi1IUkVTVUxUIG1ldGhvZEV4ZWMoV01JQWNjZXNzb3IqKiB3bWks
ICBJV2JlbUNsYXNzT2JqZWN0KiBpbnN0YW5jZSwgY29uc3Qgd2NoYXJfdCAqbWV0aG9kbmFtZSwg
SVdiZW1DbGFzc09iamVjdCAqaW5NZXRob2RJbnN0LCBJV2JlbUNsYXNzT2JqZWN0ICoqb3V0TWV0
aG9kSW5zdCkKLXsKLSAgICBIUkVTVUxUIGhyZXM9RV9GQUlMIDsKLQotICAgIElXYmVtQ2xhc3NP
YmplY3QgKm91dHN0b3JlPU5VTEw7Ci0gICAgQlNUUiBicGF0aG5hbWUgPSBTeXNBbGxvY1N0cmlu
ZyhMIl9fUEFUSCIpOwotICAgIGlmIChicGF0aG5hbWUgPT0gTlVMTCl7Ci0gICAgICAgIGdvdG8g
YWxsb2NwYXRobmFtZTsKLSAgICB9Ci0KLQotICAgIFZBUklBTlQgaW5zdGFuY2VwYXRoOwotICAg
IFZhcmlhbnRJbml0KCZpbnN0YW5jZXBhdGgpOwotICAgIGhyZXMgPSBpbnN0YW5jZS0+R2V0KGJw
YXRobmFtZSwgMCwgJmluc3RhbmNlcGF0aCwgTlVMTCwgTlVMTCk7Ci0gICAgaWYgKEZBSUxFRCho
cmVzKSkgewotICAgICAgICBnb3RvIGdldGNsYXNzbmFtZTsKLSAgICB9Ci0KLQotICAgIEJTVFIg
Ym1ldGhvZG5hbWUgPSBTeXNBbGxvY1N0cmluZyhtZXRob2RuYW1lKTsKLSAgICBpZiAoYm1ldGhv
ZG5hbWUgPT0gTlVMTCl7Ci0gICAgICAgIGdvdG8gYWxsb2NtZXRob2RuYW1lOwotICAgIH0KLQot
ICAgIGhyZXMgPSAoKndtaSktPm1wWFNTdmMtPkV4ZWNNZXRob2QoaW5zdGFuY2VwYXRoLmJzdHJW
YWwsIGJtZXRob2RuYW1lLCAwLCBOVUxMLGluTWV0aG9kSW5zdCwgJm91dHN0b3JlLCBOVUxMKTsK
LSAgICBpZiAob3V0TWV0aG9kSW5zdCAhPSBOVUxMKSB7Ci0gICAgICAgICpvdXRNZXRob2RJbnN0
ID0gTlVMTDsKLSAgICAgICAgaWYgKCFGQUlMRUQoaHJlcykpewotICAgICAgICAgICAgKm91dE1l
dGhvZEluc3QgPSBvdXRzdG9yZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIFN5c0ZyZWVTdHJp
bmcoYm1ldGhvZG5hbWUpOwotYWxsb2NtZXRob2RuYW1lOgotCi1nZXRjbGFzc25hbWU6Ci0gICAg
VmFyaWFudENsZWFyKCZpbnN0YW5jZXBhdGgpOwotICAgIFN5c0ZyZWVTdHJpbmcoYnBhdGhuYW1l
KTsKLWFsbG9jcGF0aG5hbWU6Ci0gICAgcmV0dXJuIGhyZXM7Ci19Ci1zdGF0aWMgSUVudW1XYmVt
Q2xhc3NPYmplY3QqIHJ1blhTUXVlcnkoV01JQWNjZXNzb3IgKip3bWksIEJTVFIgcXVlcnkpCi17
Ci0gICAgaWYgKHdtaSA9PSBOVUxMKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIEFTU0VS
VCgoKndtaSktPm1wWFNTdmMgIT0gTlVMTCk7Ci0KLSAgICAvLyBVc2UgdGhlIElXYmVtU2Vydmlj
ZXMgcG9pbnRlciB0byBtYWtlIHJlcXVlc3RzIG9mIFdNSS4gCi0gICAgLy8gTWFrZSByZXF1ZXN0
cyBoZXJlOgotICAgIElFbnVtV2JlbUNsYXNzT2JqZWN0KiBwRW51bWVyYXRvciA9IE5VTEw7Ci0g
ICAgSFJFU1VMVCBocmVzID0gKCp3bWkpLT5tcFhTU3ZjLT5FeGVjUXVlcnkoTCJXUUwiLCAKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdCRU1fRkxBR19GT1JXQVJEX09OTFkgfCBX
QkVNX0ZMQUdfUkVUVVJOX0lNTUVESUFURUxZLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJnBFbnVtZXJhdG9yKTsKLSAgICBpZiAoRkFJTEVEKGhyZXMpKQotICAgIHsKLSAgICAg
ICAgREJHUFJJTlQoKCJFeGVjUXVlcnkgZmFpbGVkXG4iKSk7Ci0gICAgICAgIHBFbnVtZXJhdG9y
ID0gTlVMTDsKLSAgICB9Ci0gICAgcmV0dXJuIHBFbnVtZXJhdG9yOwotfQotc3RhdGljIElFbnVt
V2JlbUNsYXNzT2JqZWN0KiBydW5RdWVyeShXTUlBY2Nlc3NvciAqd21pLCBCU1RSIHF1ZXJ5KQot
ewotICAgIGlmICh3bWkgPT0gTlVMTCkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBBU1NF
UlQod21pLT5tcFN2YyAhPSBOVUxMKTsKLQotICAgIC8vIFVzZSB0aGUgSVdiZW1TZXJ2aWNlcyBw
b2ludGVyIHRvIG1ha2UgcmVxdWVzdHMgb2YgV01JLiAKLSAgICAvLyBNYWtlIHJlcXVlc3RzIGhl
cmU6Ci0gICAgSUVudW1XYmVtQ2xhc3NPYmplY3QqIHBFbnVtZXJhdG9yID0gTlVMTDsKLSAgICBI
UkVTVUxUIGhyZXMgPSB3bWktPm1wU3ZjLT5FeGVjUXVlcnkoTCJXUUwiLCAKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFdCRU1fRkxBR19GT1JXQVJEX09OTFkgfCBXQkVNX0ZMQUdf
UkVUVVJOX0lNTUVESUFURUxZLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBF
bnVtZXJhdG9yKTsKLSAgICBpZiAoRkFJTEVEKGhyZXMpKQotICAgIHsKLSAgICAgICAgREJHUFJJ
TlQoKCJFeGVjUXVlcnkgZmFpbGVkXG4iKSk7Ci0gICAgICAgIHBFbnVtZXJhdG9yID0gTlVMTDsK
LSAgICB9Ci0gICAgcmV0dXJuIHBFbnVtZXJhdG9yOwotfQotCi1MT05HIHdtaWNvdW50ID0gMDsK
LXN0YXRpYyBCT09MRUFOIGNvbV9pbml0aWFsaXplZCA9IGZhbHNlOwotc3RhdGljIElXYmVtTG9j
YXRvciAqbG9jYXRvciA9IDA7Ci1CT09MIEluaXRDb20odm9pZCkgewotICAgIEhSRVNVTFQgaHJl
czsKLSAgICBYc0xvZygiSW5pdCBDT00iKTsKLSAgICBocmVzID0gQ29Jbml0aWFsaXplRXgoMCwg
Q09JTklUX01VTFRJVEhSRUFERUQpOwotICAgIGlmIChGQUlMRUQoaHJlcykpIHsKLSAgICAgICAg
Z290byBlcnJfb3V0OwotICAgIH0KLSAgICBjb21faW5pdGlhbGl6ZWQgPSBUUlVFOwotICAgIC8v
d21pLT5vd25pbmdfdGhyZWFkID0gR2V0Q3VycmVudFRocmVhZCgpOwotICAgIC8vWHNMb2coIldt
aSBjb25uZWN0IHRocmVhZCAlcCIsIEdldEN1cnJlbnRUaHJlYWQoKSk7Ci0gICAgLy8gSW5pdGlh
bGl6ZSBDT00gc2VjdXJpdHkuICBNb3N0IG9mIHRoaXMgaXMgaXJyZWxldmFudCB0byB1cy4KLSAg
ICBYc0xvZygiSW5pdCBzZWN1cml0eSIpOwotICAgIGhyZXMgPSBDb0luaXRpYWxpemVTZWN1cml0
eSgKLSAgICAgICAgTlVMTCwgICAgIC8qIFNlY3VyaXR5IGRlc2NyaXB0b3IuIE9ubHkgcmVsZXZh
bnQgdG8gc2VydmVycyAqLwotICAgICAgICAtMSwgICAgICAgLyogTnIuIG9mIGF1dGggc2Vydmlj
ZXMuIE9ubHkgcmVsZXZhbnQgdG8gc2VydmVycyAqLwotICAgICAgICBOVUxMLCAgICAgLyogTGlz
dCBvZiBhdXRoIHNlcnZpY2VzLiBPbmx5IHJlbGV2YW50IHRvIHNlcnZlcnMgKi8KLSAgICAgICAg
TlVMTCwgICAgIC8qIFJlc2VydmVkICovCi0gICAgICAgIFJQQ19DX0FVVEhOX0xFVkVMX0RFRkFV
TFQsIC8qIERlZmF1bHQgYXV0aGVudGljYXRpb24uICBUaGUKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkZXRhaWxzIGRvbid0IHJlYWxseSBtYXR0ZXIgd2hlbgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlvdSdyZSBsb2NhbGhvc3QuICov
Ci0gICAgICAgIFJQQ19DX0lNUF9MRVZFTF9JTVBFUlNPTkFURSwgLyogV01JIG5lZWRzIHRvIGJl
IGFibGUgdG8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbXBlcnNv
bmF0ZSB1cy4gKi8KLSAgICAgICAgTlVMTCwgICAgICAgICAgICAgLyogQXV0aGVudGljYXRpb24g
aW5mbyAqLwotICAgICAgICBFT0FDX05PTkUsICAgICAgICAvKiBBZGRpdGlvbmFsIGNhcGFiaWxp
dGllcyAqLwotICAgICAgICBOVUxMICAgICAgICAgICAgICAvKiBSZXNlcnZlZCAqLwotICAgICAg
ICApOwotICAgIGlmIChGQUlMRUQoaHJlcykpIHsKLSAgICAgICAgZ290byBlcnJfb3V0OwotICAg
IH0KLSAgICAgICAgICAgIE91dHB1dERlYnVnU3RyaW5nKCJDcmVhdGVJbnN0YW5jZVxuIik7Ci0g
ICAgICAgIGhyZXMgPSBDb0NyZWF0ZUluc3RhbmNlKAotICAgICAgICAgICAgQ0xTSURfV2JlbUxv
Y2F0b3IsCi0gICAgICAgICAgICAwLCAKLSAgICAgICAgICAgIENMU0NUWF9JTlBST0NfU0VSVkVS
LCAKLSAgICAgICAgICAgIElJRF9JV2JlbUxvY2F0b3IsCi0gICAgICAgICAgICAoTFBWT0lEICop
ICZsb2NhdG9yKTsKLSAgICAgICAgT3V0cHV0RGVidWdTdHJpbmcoIkNoZWNrIGhyZXNcbiIpOwot
ICAgICAgICBpZiAoRkFJTEVEKGhyZXMpKSB7Ci0gICAgICAgICAgICBnb3RvIGVycl9vdXQ7Ci0g
ICAgICAgIH0KLSAgICAgICAgaWYgKGxvY2F0b3IgPT0gTlVMTCkgewotICAgICAgICAgICAgT3V0
cHV0RGVidWdTdHJpbmcoIk51bGwgbG9jYXRvciIpOwotICAgICAgICAgICAgZ290byBlcnJfb3V0
OwotICAgICAgICB9Ci0gICAgcmV0dXJuIHRydWU7Ci1lcnJfb3V0OgotICAgIHJldHVybiBmYWxz
ZTsKLX0KLQotQk9PTCBDb25uZWN0VG9XTUkodm9pZCkKLXsKLSAgICAgICAgSW5pdENvbSgpOwot
ICAgICAgICBIUkVTVUxUIGhyZXM7Ci0gICAgICAgIE91dHB1dERlYnVnU3RyaW5nKCJDb25uZWN0
IHRvIFdNSSIpOwotICAgICAgICB3bWljb3VudCsrOwotCi0gICAgICAgIHdtaSA9IChzdHJ1Y3Qg
V01JQWNjZXNzb3IgKilYc0FsbG9jKHNpemVvZigqd21pKSk7Ci0gICAgICAgIGlmICh3bWkgPT0g
TlVMTCkgewotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgICAgIG1l
bXNldCh3bWksIDAsIHNpemVvZigqd21pKSk7Ci0KLQotICAgICAgICBPdXRwdXREZWJ1Z1N0cmlu
ZygiQ29ubmVjdCBTZXJ2ZXJcbiIpOwotICAgICAgICB0cnkgewotICAgICAgICAgICAgaHJlcyA9
IGxvY2F0b3ItPkNvbm5lY3RTZXJ2ZXIoCi0gICAgICAgICAgICAgICAgTCJyb290XFxDSU1WMiIs
ICAgICAgICAgIC8vIFdNSSBuYW1lc3BhY2UKLSAgICAgICAgICAgICAgICBOVUxMLCAgICAgICAg
ICAgICAgICAgICAgLy8gVXNlciBuYW1lCi0gICAgICAgICAgICAgICAgTlVMTCwgICAgICAgICAg
ICAgICAgICAgIC8vIFVzZXIgcGFzc3dvcmQKLSAgICAgICAgICAgICAgICBOVUxMLCAgICAgICAg
ICAgICAgICAgICAgLy8gTG9jYWxlCi0gICAgICAgICAgICAgICAgMCwgICAgICAgICAgICAgICAg
ICAgICAgIC8vIFNlY3VyaXR5IGZsYWdzCi0gICAgICAgICAgICAgICAgTlVMTCwgICAgICAgICAg
ICAgICAgICAgIC8vIEF1dGhvcml0eQotICAgICAgICAgICAgICAgIE5VTEwsICAgICAgICAgICAg
ICAgICAgICAvLyBDb250ZXh0IG9iamVjdAotICAgICAgICAgICAgICAgICYod21pLT5tcFN2Yykg
ICAgICAgICAgICAgIC8vIElXYmVtU2VydmljZXMgcHJveHkKLSAgICAgICAgICAgICAgICApOwot
ICAgICAgICB9Ci0gICAgICAgIGNhdGNoKC4uLikgewotICAgICAgICAgICAgT3V0cHV0RGVidWdT
dHJpbmcoIkV4Y2VwdGlvbiBjb25uZWN0aW5nIHRvIHNlcnZlclxuIik7Ci0gICAgICAgICAgICBn
b3RvIGVycl9vdXQ7Ci0gICAgICAgIH0KLQotICAgICAgICBPdXRwdXREZWJ1Z1N0cmluZygiQ2hl
Y2sgcmVzdWx0XG4iKTsKLSAgICAgICAgaWYgKEZBSUxFRChocmVzKSkgewotICAgICAgICAgICAg
Z290byBlcnJfb3V0OwotICAgICAgICB9Ci0gICAgICAgIC8qIFdNSSBuZWVkcyB0byBpbXBlcnNv
bmF0ZSB1cywgYmVjYXVzZSBpdCBub3JtYWxseSBydW5zIGFzIGFuCi0gICAgICAgICAgIHVucHJp
dmlsZWdlZCB1c2VyIGFuZCBuZWVkcyBvdXIgYXV0aG9yaXR5IGluIG9yZGVyIHRvIGFjY2Vzcwot
ICAgICAgICAgICBkZXZpY2UgZmlsZXMgYW5kIHNvIGZvcnRoLiAgVHVybiBpbXBlcnNvbmF0aW9u
IG9uLiAqLwotICAgICAgICBPdXRwdXREZWJ1Z1N0cmluZygiUHJveHkgYmxhbmtldFxuIik7Ci0g
ICAgICAgIGhyZXMgPSBDb1NldFByb3h5QmxhbmtldCgKLSAgICAgICAgICAgIHdtaS0+bXBTdmMs
ICAgICAgICAgICAgICAgICAgLy8gdGhlIHByb3h5IHRvIHNldAotICAgICAgICAgICAgUlBDX0Nf
QVVUSE5fV0lOTlQsICAgICAgICAgICAvKiBMQU4gbWFuYWdlciBhdXRoZW50aWNhdGlvbiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0aG91Z2ggaXQgZG9l
c24ndCByZWFsbHkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bWF0dGVyIG9uIGxvY2FsaG9zdC4gKi8KLSAgICAgICAgICAgIFJQQ19DX0FVVEhaX05PTkUsICAg
ICAgICAgICAgLy8gTEFOTUFOIGNhbid0IGRvIG11Y2ggYXV0aG9yaXphdGlvbi4KLSAgICAgICAg
ICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2VydmVyIHByaW5jaXBhbCBuYW1l
Ci0gICAgICAgICAgICBSUENfQ19BVVRITl9MRVZFTF9DQUxMLCAgICAgIC8vIERvIGF1dGhlbnRp
Y2F0aW9uIG9uIGV2ZXJ5IGNhbGwKLSAgICAgICAgICAgIFJQQ19DX0lNUF9MRVZFTF9JTVBFUlNP
TkFURSwgLy8gQWxsb3cgZnVsbCBpbXBlcnNvbmF0aW9uLgotICAgICAgICAgICAgTlVMTCwgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBVc2UgY3VycmVudCBjbGllbnQgaWRlbnRpdHkKLSAgICAg
ICAgICAgIEVPQUNfTk9ORSAgICAgICAgICAgICAgICAgICAgLy8gTm8gZXh0ZW5kZWQgcHJveHkg
Y2FwYWJpbGl0aWVzCi0gICAgICAgICk7Ci0gICAgICAgIGlmIChGQUlMRUQoaHJlcykpIHsKLSAg
ICAgICAgICAgIGdvdG8gZXJyX291dDsKLSAgICAgICAgfQotICAgICAgICBPdXRwdXREZWJ1Z1N0
cmluZygiV01JIFNlcnZlclxuIik7Ci0gICAgICAgIGhyZXMgPSBsb2NhdG9yLT5Db25uZWN0U2Vy
dmVyKAotICAgICAgICAgICAgTCJyb290XFxXTUkiLCAgICAgICAgICAvLyBXTUkgbmFtZXNwYWNl
Ci0gICAgICAgICAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgLy8gVXNlciBuYW1lCi0gICAg
ICAgICAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgLy8gVXNlciBwYXNzd29yZAotICAgICAg
ICAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgIC8vIExvY2FsZQotICAgICAgICAgICAgMCwg
ICAgICAgICAgICAgICAgICAgICAgIC8vIFNlY3VyaXR5IGZsYWdzCi0gICAgICAgICAgICBOVUxM
LCAgICAgICAgICAgICAgICAgICAgLy8gQXV0aG9yaXR5Ci0gICAgICAgICAgICBOVUxMLCAgICAg
ICAgICAgICAgICAgICAgLy8gQ29udGV4dCBvYmplY3QKLSAgICAgICAgICAgICZ3bWktPm1wWFNT
dmMgICAgICAgICAgICAgIC8vIElXYmVtU2VydmljZXMgcHJveHkKLSAgICAgICAgICAgICk7Ci0K
LSAgICAgICAgaWYgKEZBSUxFRChocmVzKSkgewotICAgICAgICAgICAgZ290byBlcnJfb3V0Owot
ICAgICAgICB9Ci0gICAgICAgIE91dHB1dERlYnVnU3RyaW5nKCJJbXBlcnNvbmF0aW9uXG4iKTsK
LSAgICAgICAgLyogV01JIG5lZWRzIHRvIGltcGVyc29uYXRlIHVzLCBiZWNhdXNlIGl0IG5vcm1h
bGx5IHJ1bnMgYXMgYW4KLSAgICAgICAgICAgdW5wcml2aWxlZ2VkIHVzZXIgYW5kIG5lZWRzIG91
ciBhdXRob3JpdHkgaW4gb3JkZXIgdG8gYWNjZXNzCi0gICAgICAgICAgIGRldmljZSBmaWxlcyBh
bmQgc28gZm9ydGguICBUdXJuIGltcGVyc29uYXRpb24gb24uICovCi0gICAgICAgIGhyZXMgPSBD
b1NldFByb3h5QmxhbmtldCgKLSAgICAgICAgICAgIHdtaS0+bXBYU1N2YywgICAgICAgICAgICAg
ICAgICAvLyB0aGUgcHJveHkgdG8gc2V0Ci0gICAgICAgICAgICBSUENfQ19BVVRITl9XSU5OVCwg
ICAgICAgICAgIC8qIExBTiBtYW5hZ2VyIGF1dGhlbnRpY2F0aW9uLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHRob3VnaCBpdCBkb2Vzbid0IHJlYWxseQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXR0ZXIgb24gbG9j
YWxob3N0LiAqLwotICAgICAgICAgICAgUlBDX0NfQVVUSFpfTk9ORSwgICAgICAgICAgICAvLyBM
QU5NQU4gY2FuJ3QgZG8gbXVjaCBhdXRob3JpemF0aW9uLgotICAgICAgICAgICAgTlVMTCwgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBTZXJ2ZXIgcHJpbmNpcGFsIG5hbWUKLSAgICAgICAgICAg
IFJQQ19DX0FVVEhOX0xFVkVMX0NBTEwsICAgICAgLy8gRG8gYXV0aGVudGljYXRpb24gb24gZXZl
cnkgY2FsbAotICAgICAgICAgICAgUlBDX0NfSU1QX0xFVkVMX0lNUEVSU09OQVRFLCAvLyBBbGxv
dyBmdWxsIGltcGVyc29uYXRpb24uCi0gICAgICAgICAgICBOVUxMLCAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIFVzZSBjdXJyZW50IGNsaWVudCBpZGVudGl0eQotICAgICAgICAgICAgRU9BQ19O
T05FICAgICAgICAgICAgICAgICAgICAvLyBObyBleHRlbmRlZCBwcm94eSBjYXBhYmlsaXRpZXMK
LSAgICAgICAgKTsKLSAgICAgICAgaWYgKEZBSUxFRChocmVzKSkgewotICAgICAgICAgICAgZ290
byBlcnJfb3V0OwotICAgICAgICB9Ci0KLQotICAgIE91dHB1dERlYnVnU3RyaW5nKCJXbWkgY29u
bmVjdGVkXG4iKTsKLSAgICAvKiBBbGwgZG9uZS4gKi8KLSAgICByZXR1cm4gdHJ1ZTsKLQotZXJy
X291dDoKLSAgICBPdXRwdXREZWJ1Z1N0cmluZygiV01JIGNvbm5lY3Rpb24gZmFpbGVkXG4iKTsK
LSAgICBSZWxlYXNlV01JQWNjZXNzb3IoJndtaSk7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi0K
LXZvaWQgUmVsZWFzZUNvbSh2b2lkKSB7Ci0KLSAgICBpZiAoY29tX2luaXRpYWxpemVkKSB7Ci0g
ICAgICAgIE91dHB1dERlYnVnU3RyaW5nKCJSZWxlYXNlIGxvY2F0b3JcbiIpOwotICAgICAgICBs
b2NhdG9yLT5SZWxlYXNlKCk7Ci0gICAgICAgIC8vWHNMb2coIldtaSBkaXNjb25uZWN0IHRocmVh
ZCAlcCIsIEdldEN1cnJlbnRUaHJlYWQoKSk7Ci0gICAgICAgIC8vQVNTRVJUKCgqd21pKS0+b3du
aW5nX3RocmVhZCA9PSBHZXRDdXJyZW50VGhyZWFkKCkpOwotICAgICAgICBjb21faW5pdGlhbGl6
ZWQgPSAwOwotICAgICAgICBPdXRwdXREZWJ1Z1N0cmluZygiVW5pbml0aWFsaXplIGNvbVxuIik7
Ci0gICAgICAgIENvVW5pbml0aWFsaXplKCk7Ci0gICAgICAgIAotICAgIH0KLX0KLQotLyogQ2Fy
ZWZ1bDogV01JIGFjY2Vzc29ycyBtdXN0IGJlIHJlbGVhc2VkIG9uIHRoZSBzYW1lIHRocmVhZCB0
aGF0Ci0gICBhbGxvY2F0ZWQgdGhlbS4gKi8KLXZvaWQgUmVsZWFzZVdNSUFjY2Vzc29yKHN0cnVj
dCBXTUlBY2Nlc3NvciAqKndtaSkKLXsKLSAgICBPdXRwdXREZWJ1Z1N0cmluZygiU2hvdWxkIEkg
cmVsZWFzZSB3bWk/XG4iKTsKLSAgICBpZiAoKndtaSA9PSBOVUxMKQotICAgICAgICByZXR1cm47
Ci0gICAgT3V0cHV0RGVidWdTdHJpbmcoIkdldCByaWQgb2YgV01JIHNlcnZlcnNcbiIpOwotICAg
IGlmICgoKndtaSktPm1wWFNTdmMgIT0gTlVMTCkKLSAgICAgICAgKCp3bWkpLT5tcFhTU3ZjLT5S
ZWxlYXNlKCk7Ci0gICAgaWYgKCgqd21pKS0+bXBTdmMgIT0gTlVMTCkKLSAgICAgICAgKCp3bWkp
LT5tcFN2Yy0+UmVsZWFzZSgpOwotICAgIE91dHB1dERlYnVnU3RyaW5nKCJDbGVhciBXbUlcbiIp
OwotICAgIC8qIFBvaXNvbiB3bWkgdG8gbWFrZSB1c2UtYWZ0ZXItZnJlZSgpcyBhIGJpdCBtb3Jl
IG9idmlvdXMuICovCi0gICAgbWVtc2V0KCgqd21pKSwgMHhhYiwgc2l6ZW9mKCoqd21pKSk7Ci0g
ICAgWHNGcmVlKCp3bWkpOwotICAgICp3bWkgPSBOVUxMOwotICAgIFJlbGVhc2VDb20oKTsKLSAg
ICBPdXRwdXREZWJ1Z1N0cmluZygiUmVsZWFzZWQgV01JXG4iKTsKLX0KLQotLyogVGhlIGZhY3Qg
dGhhdCBzb21ldGhpbmcgaXMgZG9jdW1lbnRlZCBhcyBiZWluZyBhIHVpbnQ2NF90IGZpZWxkCi0g
ICBkb2Vzbid0IGltcGx5IHRoYXQgaXQgd2lsbCBiZSByZXR1cm5lZCBhcyBhIFZUX1VJOCBmaWVs
ZCBpbiBhCi0gICB2YXJpYW50IHN0cnVjdHVyZS4gIFdvcmsgYXJvdW5kIHRoaXMgd2l0aCBhIGhh
bmR5IGNvbnZlcnNpb24KLSAgIGZ1bmN0aW9uLiAqLwotc3RhdGljIHVpbnQ2NF90Ci1HZXRWYXJp
YW50VWludDY0KFZBUklBTlQgKnZ0RGF0YSkKLXsKLSAgICBzd2l0Y2ggKHZ0RGF0YS0+dnQpIHsK
LSAgICBjYXNlIFZUX0kyOgotICAgICAgICByZXR1cm4gdnREYXRhLT5pVmFsOwotICAgIGNhc2Ug
VlRfSTQ6Ci0gICAgICAgIHJldHVybiB2dERhdGEtPmxWYWw7Ci0gICAgY2FzZSBWVF9JODoKLSAg
ICAgICAgcmV0dXJuIHZ0RGF0YS0+bGxWYWw7Ci0gICAgY2FzZSBWVF9VSTI6Ci0gICAgICAgIHJl
dHVybiB2dERhdGEtPnVpVmFsOwotICAgIGNhc2UgVlRfVUk0OgotICAgICAgICByZXR1cm4gdnRE
YXRhLT51bFZhbDsKLSAgICBjYXNlIFZUX1VJODoKLSAgICAgICAgcmV0dXJuIHZ0RGF0YS0+dWxs
VmFsOwotICAgIGNhc2UgVlRfQlNUUjoKLSAgICAgICAgLyogWWVzLCBJIHJlYWxseSBkbyBtZWFu
IEJTVFI6IFhQIHJldHVybnMgNjQgYml0IHZhbHVlcyBhcwotICAgICAgICAgICBzdHJpbmdzLCBh
bmQgd2UgdGhlbiBoYXZlIHRvIGRvIGF0b2lsbCBvbiBpdC4gKi8KLSAgICAgICAgcmV0dXJuIF93
dG9pNjQodnREYXRhLT5ic3RyVmFsKTsKLSAgICBkZWZhdWx0OgotICAgICAgICBEQkdQUklOVCgo
IkJhZCB1aW50NjRfdCB2YXJpYW50ICVkLlxuIix2dERhdGEtPnZ0KSk7Ci0gICAgICAgIHJldHVy
biAtMTsKLSAgICB9Ci19Ci0KLXN0YXRpYyBIUkVTVUxUCi1RdWVyeVZhcmlhbnQoV01JQWNjZXNz
b3IgKndtaSwgUFdDSEFSIGZpZWxkLCBQV0NIQVIgdGFibGUsIFZBUklBTlQgKnZ0KQotewotICAg
IElFbnVtV2JlbUNsYXNzT2JqZWN0ICpwRW51bTsKLSAgICBCU1RSIHF1ZXJ5OwotICAgIHNpemVf
dCBxdWVyeV9sZW47Ci0gICAgSVdiZW1DbGFzc09iamVjdCAqcGNsc09iajsKLSAgICBIUkVTVUxU
IGhyOwotICAgIFVMT05HIHVSZXR1cm47Ci0KLSAgICBxdWVyeV9sZW4gPSBzdHJsZW4oIlNFTEVD
VCAgRlJPTSAiKSArIHdjc2xlbihmaWVsZCkgKyB3Y3NsZW4odGFibGUpICsgMTsKLSAgICBxdWVy
eSA9IFN5c0FsbG9jU3RyaW5nTGVuKE5VTEwsIChVSU5UKXF1ZXJ5X2xlbik7Ci0gICAgaWYgKHF1
ZXJ5ID09IE5VTEwpIHsKLSAgICAgICAgaHIgPSBFX09VVE9GTUVNT1JZOwotICAgICAgICBnb3Rv
IGVycjsKLSAgICB9Ci0gICAgc3dwcmludGZfcyhxdWVyeSwgcXVlcnlfbGVuLCBMIlNFTEVDVCAl
cyBGUk9NICVzIiwgZmllbGQsIHRhYmxlKTsKLSAgICBwRW51bSA9IHJ1blF1ZXJ5KHdtaSwgcXVl
cnkpOwotICAgIFN5c0ZyZWVTdHJpbmcocXVlcnkpOwotCi0gICAgaWYgKHBFbnVtID09IE5VTEwp
IHsKLSAgICAgICAgaHIgPSBFX09VVE9GTUVNT1JZOwotICAgICAgICBnb3RvIGVycjsKLSAgICB9
Ci0KLSAgICBociA9IHBFbnVtLT5OZXh0KFdCRU1fSU5GSU5JVEUsIDEsICZwY2xzT2JqLCAmdVJl
dHVybik7Ci0gICAgcEVudW0tPlJlbGVhc2UoKTsKLSAgICBpZiAoRkFJTEVEKGhyKSkKLSAgICAg
ICAgZ290byBlcnI7Ci0gICAgaWYgKHVSZXR1cm4gPT0gMCkgewotICAgICAgICBociA9IEVfRkFJ
TDsKLSAgICAgICAgZ290byBlcnI7Ci0gICAgfQotCi0gICAgaHIgPSBwY2xzT2JqLT5HZXQoZmll
bGQsIDAsIHZ0LCBOVUxMLCBOVUxMKTsKLSAgICBwY2xzT2JqLT5SZWxlYXNlKCk7Ci0KLSAgICBy
ZXR1cm4gaHI7Ci0KLWVycjoKLSAgICByZXR1cm4gaHI7Ci19Ci0KLXN0YXRpYyB1aW50NjRfdAot
UXVlcnlVaW50NjQoV01JQWNjZXNzb3IgKndtaSwgUFdDSEFSIGZpZWxkLCBQV0NIQVIgdGFibGUp
Ci17Ci0gICAgSFJFU1VMVCBocjsKLSAgICB1aW50NjRfdCByZXM7Ci0gICAgVkFSSUFOVCB2dDsK
LQotICAgIG1lbXNldCgmdnQsIDAsIHNpemVvZih2dCkpOwotCi0gICAgaHIgPSBRdWVyeVZhcmlh
bnQod21pLCBmaWVsZCwgdGFibGUsICZ2dCk7Ci0gICAgaWYgKEZBSUxFRChocikpCi0gICAgICAg
IHJldHVybiAwOwotCi0gICAgcmVzID0gR2V0VmFyaWFudFVpbnQ2NCgmdnQpOwotICAgIFZhcmlh
bnRDbGVhcigmdnQpOwotICAgIHJldHVybiByZXM7Ci19Ci0KLXN0YXRpYyBCU1RSCi1RdWVyeUJz
dHIoV01JQWNjZXNzb3IgKndtaSwgUFdDSEFSIGZpZWxkLCBQV0NIQVIgdGFibGUpCi17Ci0gICAg
SFJFU1VMVCBocjsKLSAgICBWQVJJQU5UIHZ0OwotCi0gICAgbWVtc2V0KCZ2dCwgMCwgc2l6ZW9m
KHZ0KSk7Ci0KLSAgICBociA9IFF1ZXJ5VmFyaWFudCh3bWksIGZpZWxkLCB0YWJsZSwgJnZ0KTsK
LSAgICBpZiAoRkFJTEVEKGhyKSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgaWYgKHZ0LnZ0
ICE9IFZUX0JTVFIpIHsKLSAgICAgICAgVmFyaWFudENsZWFyKCZ2dCk7Ci0gICAgICAgIHJldHVy
biBOVUxMOwotICAgIH0KLSAgICByZXR1cm4gdnQuYnN0clZhbDsKLX0KLQotCi0KLS8qIGhhc2gg
Y29tcGFyYXRvciBmb3Igc3RyaW5ncyB3aGljaCBzdHJpcHMgb2ZmIHRyYWlsaW5nIC5leGUKLSAq
IHN1ZmZpeCAqLwotY2xhc3Mgc3RyaW5nX2VxX2V4ZSB7Ci1wcml2YXRlOgotICAgIHN0YXRpYyBz
aXplX3QgbGVuX3dpdGhvdXRfc3VmZml4KGNvbnN0IGNoYXIgKngpCi0gICAgewotICAgICAgICBz
aXplX3QgbDsKLSAgICAgICAgbCA9IHN0cmxlbih4KTsKLSAgICAgICAgaWYgKGwgPiA0ICYmICFz
dHJjbXAoeCArIGwgLSA0LCAiLmV4ZSIpKQotICAgICAgICAgICAgbCAtPSA0OwotICAgICAgICBy
ZXR1cm4gbDsKLSAgICB9Ci0KLXB1YmxpYzoKLSAgICBlbnVtIHtidWNrZXRfc2l6ZSA9IDQsIG1p
bl9idWNrZXRzID0gOH07Ci0gICAgYm9vbCBvcGVyYXRvcigpKGNvbnN0IHN0cmluZyAmYSwgY29u
c3Qgc3RyaW5nICZiKSBjb25zdAotICAgIHsKLSAgICAgICAgY29uc3QgY2hhciAqYV9jLCAqYl9j
OwotICAgICAgICBzaXplX3QgYV9sLCBiX2w7Ci0gICAgICAgIGFfYyA9IGEuY19zdHIoKTsKLSAg
ICAgICAgYl9jID0gYi5jX3N0cigpOwotICAgICAgICBhX2wgPSBsZW5fd2l0aG91dF9zdWZmaXgo
YV9jKTsKLSAgICAgICAgYl9sID0gbGVuX3dpdGhvdXRfc3VmZml4KGJfYyk7Ci0KLSAgICAgICAg
aWYgKGFfbCAhPSBiX2wpCi0gICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgaWYgKG1lbWNt
cChhX2MsIGJfYywgYV9sKSkKLSAgICAgICAgICAgIHJldHVybiAxOwotICAgICAgICBlbHNlCi0g
ICAgICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBzaXplX3Qgb3BlcmF0b3IoKShjb25z
dCBzdHJpbmcgJmEpIGNvbnN0Ci0gICAgewotICAgICAgICBzaXplX3QgYWNjID0gMDsKLSAgICAg
ICAgY29uc3QgY2hhciAqY19zdHIgPSBhLmNfc3RyKCk7Ci0gICAgICAgIHNpemVfdCBsZW4gPSBs
ZW5fd2l0aG91dF9zdWZmaXgoY19zdHIpOwotICAgICAgICB1bnNpZ25lZCB4OwotICAgICAgICBm
b3IgKHggPSAwOyB4IDwgbGVuOyB4KyspCi0gICAgICAgICAgICBhY2MgPSAoYWNjICogMTcgKyBj
X3N0clt4XSkgJSAyNTc7Ci0gICAgICAgIHJldHVybiBhY2M7Ci0gICAgfQotfTsKLQotCi1JV2Jl
bUNsYXNzT2JqZWN0ICpnZXRCYXNlKFdNSUFjY2Vzc29yKiogd21pKSAKLXsKLSAgICBJV2JlbUNs
YXNzT2JqZWN0KiBiYXNlID0gZ2V0T2JqZWN0KHdtaSwgT0JKRUNUX05BTUVfVyhCYXNlKSk7Ci0g
ICAgaWYgKGJhc2UgPT0gTlVMTCkgewotICAgICAgICAqd21pID0gTlVMTDsKLSAgICAgICAgcmV0
dXJuIE5VTEw7Ci0gICAgfQotICAgIHJldHVybiBiYXNlOwotfQotCi1JV2JlbUNsYXNzT2JqZWN0
ICpnZXRCYXNlQ2xhc3MoV01JQWNjZXNzb3IqKiB3bWkpIAotewotICAgIElXYmVtQ2xhc3NPYmpl
Y3QqIGJhc2VjbGFzcyA9IGdldENsYXNzKHdtaSwgT0JKRUNUX05BTUVfVyhCYXNlKSk7Ci0gICAg
aWYgKGJhc2VjbGFzcyA9PSBOVUxMKSB7Ci0gICAgICAgICp3bWkgPSBOVUxMOwotICAgICAgICBy
ZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgcmV0dXJuIGJhc2VjbGFzczsKLX0KLQotVUxPTkdMT05H
IGdldDY0Qml0VW5zaWduZWQoVkFSSUFOVCAqdmFyKSB7Ci0gICAgVUxPTkdMT05HIHJlcyA9IDA7
Ci0gICAgc3dpdGNoICh2YXItPnZ0KSB7Ci0gICAgICAgIGNhc2UgVlRfQlNUUjogewotICAgICAg
ICAgICAgICAgIFZBUklBTlQgb3V0dmFyOwotICAgICAgICAgICAgICAgIFZhcmlhbnRJbml0KCZv
dXR2YXIpOwotICAgICAgICAgICAgICAgIFZhcmlhbnRDaGFuZ2VUeXBlKCZvdXR2YXIsIHZhciwg
MCwgVlRfVUk4KTsKLSAgICAgICAgICAgICAgICByZXMgPSBvdXR2YXIudWxsVmFsOwotICAgICAg
ICAgICAgICAgIFZhcmlhbnRDbGVhcigmb3V0dmFyKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIFZUX1VJODogewotICAgICAgICAgICAgICAgIHJlcyA9
IHZhci0+dWxsVmFsOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgfQot
ICAgIHJldHVybiByZXM7Ci19Ci0KLUZJTEVUSU1FIFdtaUdldFhlblRpbWUoV01JQWNjZXNzb3Ig
Kip3bWkpIHsKLSAgICAgRklMRVRJTUUgb3V0OwotICAgICAKLSAgICAgSVdiZW1DbGFzc09iamVj
dCAqYmFzZSA9IGdldEJhc2Uod21pKTsKLSAgICAgaWYgKGJhc2UgPT0gTlVMTCkgewotICAgICAg
ICAgREJHUFJJTlQoKCJVbmFibGUgdG8gZmluZCBiYXNlIFdNSSBzZXNzaW9uXG4iKSk7Ci0gICAg
ICAgICBnb3RvIGdldGJhc2VmYWlsZWQ7Ci0gICAgIH0KLQotICAgICBWQVJJQU5UIHRpbWV2YXI7
Ci0gICAgIEJTVFIgdGltZW5hbWUgPSBta0JzdHIoIlhlblRpbWUiLCA3KTsKLSAgICAgaWYgKHRp
bWVuYW1lID09IE5VTEwpCi0gICAgICAgICBnb3RvIGJ1aWxkdGltZW5hbWVmYWlsZWQ7Ci0gICAg
ICAgICAKLQotCi0gICAgIGlmIChGQUlMRUQoYmFzZS0+R2V0KHRpbWVuYW1lLCAwLCAmdGltZXZh
ciwgTlVMTCwgTlVMTCkpKQotICAgICAgICAgZ290byBnZXR0aW1lZmFpbGVkOwotCi0gICAgIFVM
T05HTE9ORyB0aW1lID1nZXQ2NEJpdFVuc2lnbmVkKCZ0aW1ldmFyKTs7Ci0KLSAgICAgb3V0LmR3
TG93RGF0ZVRpbWUgPSAoRFdPUkQpdGltZTsKLSAgICAgb3V0LmR3SGlnaERhdGVUaW1lID0gKERX
T1JEKSh0aW1lPj4zMik7Ci0gICAgIHJldHVybiBvdXQ7Ci0KLWdldHRpbWVmYWlsZWQ6Ci1idWls
ZHRpbWVuYW1lZmFpbGVkOgotZ2V0YmFzZWZhaWxlZDoKLSAgICAgb3V0LmR3TG93RGF0ZVRpbWUg
PSAwOwotICAgICBvdXQuZHdIaWdoRGF0ZVRpbWUgPSAwOwotICAgICByZXR1cm4gb3V0IDsKLX0K
LQotSVdiZW1DbGFzc09iamVjdCAqb3BlblNlc3Npb24oV01JQWNjZXNzb3IqKiB3bWksIGNvbnN0
IGNoYXIgKnNlc3Npb25uYW1lKQotewotICAgIEhSRVNVTFQgaHJlczsKLQotICAgIEJTVFIgcXVl
cnkgPSBmb3JtYXRCc3RyKCJTRUxFQ1QgKiBGUk9NICIgT0JKRUNUX05BTUVfQShTZXNzaW9uKSAi
IFdIRVJFIElkPVwiIiBPQkpFQ1RfUFJFRklYX1NUUiAiIFhlbiBXaW4zMiBTZXJ2aWNlIDogJXNc
IiIsIHNlc3Npb25uYW1lKTsKLSAgICBpZiAocXVlcnkgPT0gTlVMTCkKLSAgICAgICAgZ290byBm
b3JtYXRzZXNzaW9uYnN0cmZhaWxlZDsKLQotICAgIElFbnVtV2JlbUNsYXNzT2JqZWN0ICogc2Vz
c2lvbnMgPSBydW5YU1F1ZXJ5KHdtaSwgcXVlcnkpOwotICAgIFN5c0ZyZWVTdHJpbmcocXVlcnkp
OwotCi0gICAgaWYgKHNlc3Npb25zKSB7Ci0gICAgICAgIElXYmVtQ2xhc3NPYmplY3QgKnJldHVy
bmVkT2JqZWN0OwotICAgICAgICBVTE9ORyBjb3VudDsKLSAgICAgICAgaHJlcyA9IHNlc3Npb25z
LT5OZXh0KFdCRU1fSU5GSU5JVEUsIDEsICZyZXR1cm5lZE9iamVjdCwgJmNvdW50KTsKLSAgICAg
ICAgc2Vzc2lvbnMtPlJlbGVhc2UoKTsKLQotICAgICAgICBpZiAoY291bnQ+MCkgewotICAgICAg
ICAgICAgaWYgKHNlc3Npb25uYW1lICE9TlVMTCApIHsKLSAgICAgICAgICAgICAgICBpZiAoIVdt
aVNlc3Npb25FbmQod21pLCByZXR1cm5lZE9iamVjdCkpIHsKLSAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIE5VTEw7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJldHVybmVkT2JqZWN0OwotICAgICAg
ICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgSVdiZW1DbGFzc09iamVjdCAqYmFzZSA9
IGdldEJhc2Uod21pKTsKLSAgICBpZiAoYmFzZT09TlVMTCkgewotICAgICAgICBEQkdQUklOVCgo
IlVuYWJsZSB0byBmaW5kIGJhc2UgV01JIHNlc3Npb25cbiIpKTsKLSAgICAgICAgZ290byBnZXRi
YXNlZmFpbGVkOwotICAgIH0KLQotICAgIElXYmVtQ2xhc3NPYmplY3QgKmJhc2VjbGFzcyA9IGdl
dEJhc2VDbGFzcyh3bWkpOwotCi0gICAgaWYgKGJhc2VjbGFzcyA9PSBOVUxMKQotICAgICAgICBn
b3RvIGdldGJhc2VjbGFzc2ZhaWxlZDsKLQotICAgIElXYmVtQ2xhc3NPYmplY3QgKmluTWV0aG9k
OwotCi0gICAgSVdiZW1DbGFzc09iamVjdCAqaW5NZXRob2RJbnN0OwotICAgIElXYmVtQ2xhc3NP
YmplY3QgKm91dE1ldGhvZEluc3Q7Ci0gICAgaWYgKEZBSUxFRChiYXNlY2xhc3MtPkdldE1ldGhv
ZChMIkFkZFNlc3Npb24iLDAsJmluTWV0aG9kLCBOVUxMKSkpCi0gICAgICAgIGdvdG8gZ2V0bWV0
aG9kYWRkc2Vzc2lvbmZhaWxlZDsKLQotICAgIGlmIChGQUlMRUQoaW5NZXRob2QtPlNwYXduSW5z
dGFuY2UoMCwgJmluTWV0aG9kSW5zdCkpKQotICAgICAgICBnb3RvIGlubWV0aG9kc3Bhd25mYWls
ZWQ7Ci0KLSAgICBWQVJJQU5UIHZhcjsKLSAgICB2YXIudnQgPSBWVF9CU1RSOwotICAgIHZhci5i
c3RyVmFsPWZvcm1hdEJzdHIoVkVORE9SX05BTUVfU1RSICIgIiBQUk9EVUNUX05BTUVfU1RSICIg
V2luMzIgU2VydmljZSA6ICVzIiwgc2Vzc2lvbm5hbWUpOwotCi0gICAgaWYgKHZhci5ic3RyVmFs
ID09IE5VTEwpCi0gICAgICAgIGdvdG8gZm9ybWF0bmFtZWJzdHJmYWlsZWQ7Ci0KLSAgICBpZiAo
RkFJTEVEKGluTWV0aG9kSW5zdC0+UHV0KEwiSWQiLCAwLCAmdmFyLCAwKSkpCi0gICAgICAgIGdv
dG8gbWV0aG9kcHV0ZmFpbGVkOwotCi0gICAgaWYgKEZBSUxFRChtZXRob2RFeGVjKHdtaSwgYmFz
ZSwgTCJBZGRTZXNzaW9uIiwgaW5NZXRob2RJbnN0LCAmb3V0TWV0aG9kSW5zdCkpKQotICAgICAg
ICBnb3RvIG1ldGhvZGV4ZWNhZGRzZXNzaW9uZmFpbGVkOwotICAgIAotICAgIGlmIChGQUlMRUQo
b3V0TWV0aG9kSW5zdC0+R2V0KEwiU2Vzc2lvbklkIiwgMCwgJnZhciwgTlVMTCwgTlVMTCkpKQot
ICAgICAgICBnb3RvIG91dG1ldGhvZGdldGZhaWxlZDsKLQotICAgIHNpemVfdCBxdWVyeV9sZW47
Ci0gICAgcXVlcnlfbGVuID0gc3RybGVuKCJTRUxFQ1QgKiBGUk9NICIgT0JKRUNUX05BTUVfQShT
ZXNzaW9uKSAiIFdIRVJFIFNlc3Npb25JZD0iKSsxMDsKLSAgICBxdWVyeSA9IFN5c0FsbG9jU3Ry
aW5nTGVuKE5VTEwsIChVSU5UKXF1ZXJ5X2xlbik7Ci0KLSAgICBpZiAocXVlcnkgPT0gTlVMTCkK
LSAgICAgICAgZ290byBhbGxvY3F1ZXJ5ZmFpbGVkOwotCi0gICAgc3dwcmludGZfcyhxdWVyeSxx
dWVyeV9sZW4sIEwiU0VMRUNUICogRlJPTSAiIE9CSkVDVF9OQU1FX1coU2Vzc2lvbikgTCIgV0hF
UkUgU2Vzc2lvbklkPSVkIiwgdmFyLnVpbnRWYWwpOwotCi0gICAgc2Vzc2lvbnMgPSBydW5YU1F1
ZXJ5KHdtaSwgcXVlcnkgKTsKLSAgICBTeXNGcmVlU3RyaW5nKHF1ZXJ5KTsKLQotICAgIGlmIChz
ZXNzaW9ucykgewotICAgICAgICBJV2JlbUNsYXNzT2JqZWN0ICpyZXR1cm5lZE9iamVjdDsKLSAg
ICAgICAgVUxPTkcgY291bnQ7Ci0gICAgICAgIGhyZXMgPSBzZXNzaW9ucy0+TmV4dChXQkVNX0lO
RklOSVRFLCAxLCAmcmV0dXJuZWRPYmplY3QsICZjb3VudCk7Ci0gICAgICAgIHNlc3Npb25zLT5S
ZWxlYXNlKCk7Ci0gICAgICAgIGlmIChjb3VudD4wKSB7Ci0gICAgICAgICAgICByZXR1cm4gcmV0
dXJuZWRPYmplY3Q7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgfQotICAgIAotICAgIG91dE1l
dGhvZEluc3QtPlJlbGVhc2UoKTsKLSAgICBWYXJpYW50Q2xlYXIoJnZhcik7Ci0gICAgaW5NZXRo
b2RJbnN0LT5SZWxlYXNlKCk7Ci0gICAgaW5NZXRob2QtPlJlbGVhc2UoKTsKLSAgICBiYXNlLT5S
ZWxlYXNlKCk7Ci0gICAgYmFzZWNsYXNzLT5SZWxlYXNlKCk7Ci0gICAgcmV0dXJuIE5VTEw7Ci0K
LWFsbG9jcXVlcnlmYWlsZWQ6Ci1vdXRtZXRob2RnZXRmYWlsZWQ6Ci0gICAgb3V0TWV0aG9kSW5z
dC0+UmVsZWFzZSgpOwotCi1tZXRob2RleGVjYWRkc2Vzc2lvbmZhaWxlZDoKLW1ldGhvZHB1dGZh
aWxlZDoKLSAgICBWYXJpYW50Q2xlYXIoJnZhcik7Ci0KLWZvcm1hdG5hbWVic3RyZmFpbGVkOgot
ICAgIGluTWV0aG9kSW5zdC0+UmVsZWFzZSgpOwotaW5tZXRob2RzcGF3bmZhaWxlZDoKLSAgICBp
bk1ldGhvZC0+UmVsZWFzZSgpOwotCi0KLWdldG1ldGhvZGFkZHNlc3Npb25mYWlsZWQ6Ci0gICAg
YmFzZWNsYXNzLT5SZWxlYXNlKCk7Ci0KLWdldGJhc2VjbGFzc2ZhaWxlZDoKLSAgICBiYXNlLT5S
ZWxlYXNlKCk7Ci0KLWdldGJhc2VmYWlsZWQ6Ci0KLQotZm9ybWF0c2Vzc2lvbmJzdHJmYWlsZWQ6
Ci0gICAgcmV0dXJuIE5VTEw7Ci19Ci0KLUlXYmVtQ2xhc3NPYmplY3QqIHNlc3Npb25NZXRob2RT
dGFydChXTUlBY2Nlc3Nvcioqd21pLCAgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3Qgd2NoYXJfdCAqbWV0aG9kbmFtZSkKLXsKLSAgICBJV2JlbUNsYXNzT2JqZWN0
ICppbk1ldGhvZDsKLSAgICBJV2JlbUNsYXNzT2JqZWN0ICppbk1ldGhvZEluc3QgPSBOVUxMOwot
ICAgIElXYmVtQ2xhc3NPYmplY3QgKnNlc3Npb25DbGFzczsKLSAgICBIUkVTVUxUIGhyOwotCi0g
ICAgQVNTRVJUKHdtaSAhPSBOVUxMKTsKLQotICAgIHNlc3Npb25DbGFzcyA9IGdldENsYXNzKHdt
aSwgT0JKRUNUX05BTUVfVyhTZXNzaW9uKSk7Ci0gICAgaWYgKHNlc3Npb25DbGFzcyA9PSBOVUxM
KQotICAgICAgICBnb3RvIGdldGNsYXNzZmFpbGVkOwotCi0gICAgaHIgPSBzZXNzaW9uQ2xhc3Mt
PkdldE1ldGhvZChtZXRob2RuYW1lLDAsJmluTWV0aG9kLCBOVUxMKTsKLSAgICBpZiAoRkFJTEVE
KGhyKSkKLSAgICAgICAgZ290byBnZXRtZXRob2RmYWlsZWQ7Ci0KLSAgICBociA9IGluTWV0aG9k
LT5TcGF3bkluc3RhbmNlKDAsICZpbk1ldGhvZEluc3QpOwotICAgIGlmIChGQUlMRUQoaHIpKQot
ICAgICAgICBnb3RvIHNwYXduaW5zdGFuY2VmYWlsZWQ7Ci0KLSAgICBpbk1ldGhvZC0+UmVsZWFz
ZSgpOwotCi0gICAgc2Vzc2lvbkNsYXNzLT5SZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGluTWV0aG9k
SW5zdDsKLQotCi1zcGF3bmluc3RhbmNlZmFpbGVkOgotICAgIGluTWV0aG9kLT5SZWxlYXNlKCk7
Ci0gICAgCi1nZXRtZXRob2RmYWlsZWQ6Ci0gICAgc2Vzc2lvbkNsYXNzLT5SZWxlYXNlKCk7Ci0K
LWdldGNsYXNzZmFpbGVkOgotICAgIHJldHVybiBOVUxMOwotfQotCi0KLWNoYXIgKiBic3RyVG9D
aGFyKEJTVFIgYnN0LCBzaXplX3QgKmxlbikgewotICAgICpsZW4gPSB3Y3NsZW4oYnN0KTsKLSAg
ICBjaGFyICpzcGFjZSA9IChjaGFyICopWHNBbGxvYygqbGVuKzEpOwotICAgIGlmIChzcGFjZSkK
LSAgICAgICAgd2NzdG9tYnNfcyhsZW4sIHNwYWNlLCAqbGVuKzEsIGJzdCwgIF9UUlVOQ0FURSk7
Ci0gICAgcmV0dXJuIHNwYWNlOwotfQotCi12b2lkIFdtaVNlc3Npb25Mb2coV01JQWNjZXNzb3Iq
KiB3bWksICB2b2lkICoqc2Vzc2lvbmhhbmRsZSxjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXJn
cykgewotICAgIElXYmVtQ2xhc3NPYmplY3QgKipzZXNzaW9uID0gKElXYmVtQ2xhc3NPYmplY3Qg
Kiopc2Vzc2lvbmhhbmRsZTsKLSAgICAKLSAgICBjaGFyKiBtZXNzYWdlID0gZm9ybWF0Q2hhclN0
ckludChmbXQsYXJncyk7Ci0gICAgCi0gICAgT3V0cHV0RGVidWdTdHJpbmcobWVzc2FnZSk7Ci0g
ICAgaWYgKCgoKndtaSk9PU5VTEwpIHx8ICgoKnNlc3Npb25oYW5kbGUpPT1OVUxMKSApIHsKLSAg
ICAgICAgZ290byBub3dtaTsKLSAgICB9Ci0gICAgVkFSSUFOVCB2bWVzc2FnZTsKLSAgICBpZiAo
c2V0VmFyaWFudFN0cmluZygmdm1lc3NhZ2UsIG1lc3NhZ2UpKQotICAgICAgICBnb3RvIHNldHZt
ZXNzYWdlOwotCi0gICAgSVdiZW1DbGFzc09iamVjdCAqaW5NZXRob2RJbnN0ID0gc2Vzc2lvbk1l
dGhvZFN0YXJ0KCB3bWksIEwiTG9nIik7Ci0gICAgaWYgKCFpbk1ldGhvZEluc3QpCi0gICAgICAg
IGdvdG8gc2Vzc2lvbnN0YXJ0OwotICAgIAotICAgICBpZiAoRkFJTEVEKGluTWV0aG9kSW5zdC0+
UHV0KEwiTWVzc2FnZSIsMCwmdm1lc3NhZ2UsMCkpKQotICAgICAgICAgZ290byBtZXRob2RwdXRm
YWlsZWQ7Ci0KLSAgICAgaWYgKEZBSUxFRChtZXRob2RFeGVjKHdtaSwqc2Vzc2lvbiwgTCJMb2ci
LCBpbk1ldGhvZEluc3QsIE5VTEwpKSkKLSAgICAgICAgIGdvdG8gbWV0aG9kZXhlY2ZhaWxlZDsK
LQotbWV0aG9kZXhlY2ZhaWxlZDoKLW1ldGhvZHB1dGZhaWxlZDoKLSAgICAgaW5NZXRob2RJbnN0
LT5SZWxlYXNlKCk7Ci0KLXNlc3Npb25zdGFydDoKLSAgICBWYXJpYW50Q2xlYXIoJnZtZXNzYWdl
KTsKLQotc2V0dm1lc3NhZ2U6Ci1ub3dtaToKLSAgICByZXR1cm47Ci19Ci0KLWNoYXIqIFdtaVNl
c3Npb25HZXRFbnRyeShXTUlBY2Nlc3NvcioqIHdtaSwgdm9pZCAqKnNlc3Npb25oYW5kbGUsCi0g
ICAgICAgICAgICAgIGNvbnN0IGNoYXIgKiBwYXRoLCBzaXplX3QqIGxlbikgCi17Ci0gICAgKmxl
biA9IDA7Ci0gICAgSVdiZW1DbGFzc09iamVjdCAqKnNlc3Npb24gPSAoSVdiZW1DbGFzc09iamVj
dCAqKilzZXNzaW9uaGFuZGxlOwotCi0gICAgVkFSSUFOVCB2cGF0aDsKLSAgICBpZiAoc2V0VmFy
aWFudFN0cmluZygmdnBhdGgsIHBhdGgpKQotICAgICAgICBnb3RvIHNldHZwYXRoOwotCi0gICAg
SVdiZW1DbGFzc09iamVjdCAqb3V0TWV0aG9kSW5zdCA9IE5VTEw7Ci0KLSAgICBJV2JlbUNsYXNz
T2JqZWN0ICppbk1ldGhvZEluc3QgPSBzZXNzaW9uTWV0aG9kU3RhcnQoIHdtaSwgTCJHZXRWYWx1
ZSIpOwotICAgIGlmIChpbk1ldGhvZEluc3QgPT0gTlVMTCkgCi0gICAgICAgIGdvdG8gc2Vzc2lv
bm1ldGhvZHN0YXJ0ZmFpbGVkOwotICAgIAotICAgIGlmIChGQUlMRUQoaW5NZXRob2RJbnN0LT5Q
dXQoTCJQYXRoTmFtZSIsMCwmdnBhdGgsMCkpKSAKLSAgICAgICAgZ290byBtZXRob2RleGVjZmFp
bGVkOwotCi0gICAgbWV0aG9kRXhlYyh3bWksKnNlc3Npb24sIEwiR2V0VmFsdWUiLCBpbk1ldGhv
ZEluc3QsICZvdXRNZXRob2RJbnN0KTsKLSAgICBpZiAob3V0TWV0aG9kSW5zdD09TlVMTCkKLSAg
ICAgICAgZ290byBzZXNzaW9uRXhlYzsKLQotICAgIFZBUklBTlQgb3V0dmFsOwotICAgIFZhcmlh
bnRJbml0KCZvdXR2YWwpOwotCi0gICAgaWYgKEZBSUxFRChvdXRNZXRob2RJbnN0LT5HZXQoTCJ2
YWx1ZSIsIDAsICZvdXR2YWwsIE5VTEwsIE5VTEwpKSkKLSAgICAgICAgZ290byBtZXRob2RnZXRm
YWlsZWQ7Ci0KLSAgICBjaGFyICpzcGFjZSA9IE5VTEw7Ci0gICAgCi0gICAgaWYgKFZfVlQoJm91
dHZhbCkgPT0gVlRfQlNUUikgCi0gICAgewotICAgICAgICBzcGFjZSA9IGJzdHJUb0NoYXIob3V0
dmFsLmJzdHJWYWwsIGxlbik7Ci0gICAgfQotCi0gICAgb3V0TWV0aG9kSW5zdC0+UmVsZWFzZSgp
OwotICAgIGluTWV0aG9kSW5zdC0+UmVsZWFzZSgpOwotICAgIFZhcmlhbnRDbGVhcigmdnBhdGgp
OwotICAgIFZhcmlhbnRDbGVhcigmb3V0dmFsKTsgCi0gICAgcmV0dXJuIHNwYWNlOwotCi1tZXRo
b2RnZXRmYWlsZWQ6Ci0gICAgb3V0TWV0aG9kSW5zdC0+UmVsZWFzZSgpOwotCi1tZXRob2RleGVj
ZmFpbGVkOgotc2Vzc2lvbkV4ZWM6Ci0gICAgaW5NZXRob2RJbnN0LT5SZWxlYXNlKCk7Ci0KLXNl
c3Npb25tZXRob2RzdGFydGZhaWxlZDoKLSAgICBWYXJpYW50Q2xlYXIoJnZwYXRoKTsKLQotc2V0
dnBhdGg6Ci0gICAgcmV0dXJuIE5VTEw7Ci19Ci0KLWludCBXbWlTZXNzaW9uU2V0RW50cnkoV01J
QWNjZXNzb3IqKiB3bWksICB2b2lkICoqc2Vzc2lvbmhhbmRsZSwgCi0gICAgICAgICAgICAgIGNv
bnN0IGNoYXIqcGF0aCwgY29uc3QgY2hhciAqIHZhbHVlLCBzaXplX3QgbGVuKQotewotICAgIGlu
dCBlcnIgPSAtMTsKLSAgICBJV2JlbUNsYXNzT2JqZWN0ICoqc2Vzc2lvbiA9IChJV2JlbUNsYXNz
T2JqZWN0ICoqKXNlc3Npb25oYW5kbGU7Ci0KLSAgICBWQVJJQU5UIHZwYXRoOwotICAgIGlmIChz
ZXRWYXJpYW50U3RyaW5nKCZ2cGF0aCwgcGF0aCkpCi0gICAgICAgIGdvdG8gc2V0dnBhdGg7Ci0K
LSAgICBWQVJJQU5UIHZ2YWx1ZTsKLSAgICBpZiAoc2V0VmFyaWFudFN0cmluZygmdnZhbHVlLCB2
YWx1ZSkpCi0gICAgICAgIGdvdG8gc2V0dnZhbHVlOwotCi0gICAgSVdiZW1DbGFzc09iamVjdCAq
b3V0TWV0aG9kSW5zdDsKLQotICAgIElXYmVtQ2xhc3NPYmplY3QgKmluTWV0aG9kSW5zdCA9IHNl
c3Npb25NZXRob2RTdGFydCggd21pLCBMIlNldFZhbHVlIik7Ci0gICAgaWYgKCFpbk1ldGhvZElu
c3QpCi0gICAgICAgIGdvdG8gc2Vzc2lvbnN0YXJ0OwotCi0gICAgaW5NZXRob2RJbnN0LT5QdXQo
TCJQYXRoTmFtZSIsMCwmdnBhdGgsMCk7Ci0gICAgaW5NZXRob2RJbnN0LT5QdXQoTCJ2YWx1ZSIs
MCwmdnZhbHVlLDApOwotCi0gICAgaWYgKEZBSUxFRChtZXRob2RFeGVjKHdtaSwqc2Vzc2lvbiwg
TCJTZXRWYWx1ZSIsIGluTWV0aG9kSW5zdCwgJm91dE1ldGhvZEluc3QpKSkKLSAgICAgICAgZ290
byBtZXRob2RleGVjZmFpbGVkOwotCi0gICAgaWYgKG91dE1ldGhvZEluc3QhPU5VTEwpIAotICAg
ICAgICBvdXRNZXRob2RJbnN0LT5SZWxlYXNlKCk7Ci0KLSAgICBpbk1ldGhvZEluc3QtPlJlbGVh
c2UoKTsKLSAgICBTeXNGcmVlU3RyaW5nKHZ2YWx1ZS5ic3RyVmFsKTsKLSAgICBTeXNGcmVlU3Ry
aW5nKHZwYXRoLmJzdHJWYWwpOwotCi0gICAgcmV0dXJuIDA7Ci0KLW1ldGhvZGV4ZWNmYWlsZWQ6
Ci0gICAgWHNMb2coIldtaVNlc3Npb25TZXRFbnRyeTpNZXRob2RFeGVjIEZhaWxlZCIpOwotICAg
IGluTWV0aG9kSW5zdC0+UmVsZWFzZSgpOwotCi1zZXNzaW9uc3RhcnQ6Ci0gICAgWHNMb2coIldt
aVNlc3Npb25TZXRFbnRyeTpTZXNzaW9uU3RhcnQgRmFpbGVkIik7Ci0gICAgU3lzRnJlZVN0cmlu
Zyh2dmFsdWUuYnN0clZhbCk7Ci0KLXNldHZ2YWx1ZToKLSAgICBYc0xvZygiV21pU2Vzc2lvblNl
dEVudHJ5OlNldFZWYWx1ZSBGYWlsZWQiKTsKLSAgICBTeXNGcmVlU3RyaW5nKHZwYXRoLmJzdHJW
YWwpOwotCi1zZXR2cGF0aDoKLSAgICBYc0xvZygiV21pU2Vzc2lvblNldEVudHJ5OlNldFZQYXRo
IEZhaWxlZCAiKTsKLSAgICByZXR1cm4gZXJyOwotfQotCi1pbnQgV21pU2Vzc2lvblNldEVudHJ5
KFdNSUFjY2Vzc29yKiogd21pLCAgdm9pZCAqKnNlc3Npb25oYW5kbGUsIAotICAgICAgICAgICAg
ICBjb25zdCBjaGFyKnBhdGgsIGNvbnN0IGNoYXIgKiB2YWx1ZSkgewotICAgIHJldHVybiBXbWlT
ZXNzaW9uU2V0RW50cnkod21pLCBzZXNzaW9uaGFuZGxlLCBwYXRoLCB2YWx1ZSwgc3RybGVuKHZh
bHVlKSk7Ci19Ci0KLWludCBXbWlTZXNzaW9uUmVtb3ZlRW50cnkoV01JQWNjZXNzb3IqKiB3bWks
ICB2b2lkICoqc2Vzc2lvbmhhbmRsZSwgCi0gICAgICAgICAgICAgIGNvbnN0IGNoYXIqcGF0aCl7
Ci0KLSAgICBpbnQgZXJyID0gLTE7Ci0gICAgSVdiZW1DbGFzc09iamVjdCAqKnNlc3Npb24gPSAo
SVdiZW1DbGFzc09iamVjdCAqKilzZXNzaW9uaGFuZGxlOwotCi0gICAgVkFSSUFOVCB2cGF0aDsK
LSAgICBpZiAoc2V0VmFyaWFudFN0cmluZygmdnBhdGgsIHBhdGgpKQotICAgICAgICBnb3RvIHNl
dHZwYXRoOwotCi0gICAgSVdiZW1DbGFzc09iamVjdCAqaW5NZXRob2RJbnN0ID0gc2Vzc2lvbk1l
dGhvZFN0YXJ0KCB3bWksIEwiUmVtb3ZlVmFsdWUiKTsKLSAgICBpZiAoIWluTWV0aG9kSW5zdCkK
LSAgICAgICAgZ290byBzZXNzaW9uc3RhcnQ7Ci0KLSAgICBpZiAoRkFJTEVEKGluTWV0aG9kSW5z
dC0+UHV0KEwiUGF0aE5hbWUiLDAsJnZwYXRoLDApKSkKLSAgICAgICAgZ290byBtZXRob2RwdXRm
YWlsZWQ7Ci0KLSAgICBJV2JlbUNsYXNzT2JqZWN0KiBvdXRNZXRob2RJbnN0OwotCi0gICAgaWYg
KEZBSUxFRChtZXRob2RFeGVjKHdtaSwqc2Vzc2lvbiwgTCJSZW1vdmVWYWx1ZSIsIGluTWV0aG9k
SW5zdCwgJm91dE1ldGhvZEluc3QpKSkKLSAgICAgICAgZ290byBtZXRob2RleGVjZmFpbGVkOwot
Ci0gICAgaWYgKG91dE1ldGhvZEluc3QgIT0gTlVMTCkKLSAgICAgICAgb3V0TWV0aG9kSW5zdC0+
UmVsZWFzZSgpOwotCi0gICAgZXJyPTA7Ci0gICAgaW5NZXRob2RJbnN0LT5SZWxlYXNlKCk7Ci0g
ICAgVmFyaWFudENsZWFyKCZ2cGF0aCk7Ci0gICAgcmV0dXJuIGVycjsKLW1ldGhvZGV4ZWNmYWls
ZWQ6Ci0gICAgT3V0cHV0RGVidWdTdHJpbmcoX19GVU5DVElPTl9fICIgTWV0aG9kRXhlY0ZhaWxl
ZCIpOwotbWV0aG9kcHV0ZmFpbGVkOgotICAgIE91dHB1dERlYnVnU3RyaW5nKF9fRlVOQ1RJT05f
XyAiIE1ldGhvZFB1dEZhaWxlZCIpOwotICAgIGluTWV0aG9kSW5zdC0+UmVsZWFzZSgpOwotCi1z
ZXNzaW9uc3RhcnQ6Ci0gICAgT3V0cHV0RGVidWdTdHJpbmcoX19GVU5DVElPTl9fICIgU2Vzc2lv
blN0YXJ0RmFpbGVkIik7Ci0gICAgVmFyaWFudENsZWFyKCZ2cGF0aCk7Ci0KLSAgICBPdXRwdXRE
ZWJ1Z1N0cmluZyhfX0ZVTkNUSU9OX18gIiBTZXNzaW9uRXhlY0ZhaWxlZCIpOwotc2V0dnBhdGg6
Ci0gICAgT3V0cHV0RGVidWdTdHJpbmcoX19GVU5DVElPTl9fICIgU2V0VnBhdGhGYWlsZWQiKTsK
LSAgICByZXR1cm4gZXJyOyAKLX0KLQotCi1CT09MIFdtaVNlc3Npb25VbndhdGNoKFdNSUFjY2Vz
c29yKiogd21pLCAgdm9pZCAqKnNlc3Npb25oYW5kbGUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgdm9pZCAqd2F0Y2hoYW5kbGUpIHsKLSAgICBJV2JlbUNsYXNzT2JqZWN0ICoqc2Vzc2lvbiA9
IChJV2JlbUNsYXNzT2JqZWN0ICoqKXNlc3Npb25oYW5kbGU7Ci0gICAgWHNMb2coIlVud2F0Y2gg
JXAiLHdhdGNoaGFuZGxlKTsKLSAgICBXYXRjaFNpbmsgKiBzaW5rID0gKFdhdGNoU2luayAqKXdh
dGNoaGFuZGxlOwotCi0gICAgVkFSSUFOVCB2cGF0aDsKLSAgICBpZiAoc2V0VmFyaWFudFN0cmlu
ZygmdnBhdGgsIHNpbmstPnBhdGgpKQotICAgICAgICBnb3RvIHNldHZwYXRoOwotCi0gICAgSVdi
ZW1DbGFzc09iamVjdCAqb3V0TWV0aG9kSW5zdDsKLSAgICBJV2JlbUNsYXNzT2JqZWN0ICppbk1l
dGhvZEluc3QgPSBzZXNzaW9uTWV0aG9kU3RhcnQoIHdtaSwgTCJSZW1vdmVXYXRjaCIpOwotICAg
IGlmICghaW5NZXRob2RJbnN0KQotICAgICAgICBnb3RvIHNlc3Npb25zdGFydDsKLQotICAgIGlu
TWV0aG9kSW5zdC0+UHV0KEwiUGF0aE5hbWUiLDAsJnZwYXRoLDApOwotICAgIGlmIEZBSUxFRCht
ZXRob2RFeGVjKHdtaSwqc2Vzc2lvbiwgTCJSZW1vdmVXYXRjaCIsIGluTWV0aG9kSW5zdCwgJm91
dE1ldGhvZEluc3QpKQotICAgICAgICBnb3RvIG1ldGhvZGV4ZWNmYWlsZWQ7Ci0gICAgaWYgKG91
dE1ldGhvZEluc3Q9PU5VTEwpCi0gICAgICAgIGdvdG8gc2Vzc2lvbmV4ZWNmYWlsZWQ7Ci0KLSAg
ICBvdXRNZXRob2RJbnN0LT5SZWxlYXNlKCk7Ci0KLW1ldGhvZGV4ZWNmYWlsZWQ6Ci1zZXNzaW9u
ZXhlY2ZhaWxlZDoKLSAgICBpbk1ldGhvZEluc3QtPlJlbGVhc2UoKTsKLQotc2Vzc2lvbnN0YXJ0
Ogotc2V0dnBhdGg6Ci0gICAgc2luay0+UmVsZWFzZSgpOwotICAgIHJldHVybiB0cnVlOwotfQot
Ci1CT09MIFdtaVNlc3Npb25TdGFydChXTUlBY2Nlc3NvcioqIHdtaSwgIHZvaWQgKipzZXNzaW9u
aGFuZGxlLCBjb25zdCBjaGFyKiBzZXNzaW9ubmFtZSkgCi17Ci0gICAgSVdiZW1DbGFzc09iamVj
dCAqKnNlc3Npb24gPSAoSVdiZW1DbGFzc09iamVjdCAqKilzZXNzaW9uaGFuZGxlOwotICAgIGlm
ICgoKnNlc3Npb24gPSBvcGVuU2Vzc2lvbih3bWksIHNlc3Npb25uYW1lKSkgPT0gTlVMTCkgewot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHJldHVybiB0cnVlOwotfQotCi0KLUJP
T0wgV21pU2Vzc2lvbkVuZChXTUlBY2Nlc3NvcioqIHdtaSwgIHZvaWQgKnNlc3Npb25oYW5kbGUp
IAotewotICAgIEhSRVNVTFQgaHI7Ci0gICAgQVNTRVJUKCp3bWkgIT0gTlVMTCk7Ci0KLSAgICBJ
V2JlbUNsYXNzT2JqZWN0ICpzZXNzaW9uID0gKElXYmVtQ2xhc3NPYmplY3QgKilzZXNzaW9uaGFu
ZGxlOwotICAgIGlmIChzZXNzaW9uPT1OVUxMKSB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICB9Ci0gICAgaHIgPSBtZXRob2RFeGVjKHdtaSwgc2Vzc2lvbiwgTCJFbmRTZXNzaW9uIiwgTlVM
TCxOVUxMKTsKLSAgICBpZiBGQUlMRUQoaHIpCi0gICAgICAgIGdvdG8gZXhlY21ldGhvZGZhaWxl
ZDsKLSAgICBzZXNzaW9uLT5SZWxlYXNlKCk7Ci0gICAgcmV0dXJuIHRydWU7Ci0KLWV4ZWNtZXRo
b2RmYWlsZWQ6Ci0gICAgcmV0dXJuIGZhbHNlOwotCi19Ci0KLXZvaWQgKldtaVNlc3Npb25XYXRj
aChXTUlBY2Nlc3NvcioqIHdtaSwgIHZvaWQgKipzZXNzaW9uaGFuZGxlLCAKLSAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBjaGFyICpwYXRoLCBIQU5ETEUgZXZlbnQsIEhBTkRMRSBlcnJvcmV2
ZW50KSB7Ci0gICAgICAgCi0gICAgSFJFU1VMVCBocjsKLQotICAgIElXYmVtQ2xhc3NPYmplY3Qg
KipzZXNzaW9uID0gKElXYmVtQ2xhc3NPYmplY3QgKiopc2Vzc2lvbmhhbmRsZTsKLSAgICAKLSAg
ICBBU1NFUlQoKCp3bWkpICE9IE5VTEwpOwotICAgIEFTU0VSVCgoKnNlc3Npb25oYW5kbGUpICE9
IE5VTEwpOwotCi0gICAgV2F0Y2hTaW5rICogc2luayA9IG5ldyBXYXRjaFNpbmsoZXZlbnQsIGVy
cm9yZXZlbnQsIHBhdGgpOwotICAgIEJTVFIgcXVlcnk9Zm9ybWF0QnN0cigiU0VMRUNUICogZnJv
bSAiIE9CSkVDVF9OQU1FX0EoV2F0Y2hFdmVudCkgIiBXSEVSRSBFdmVudElkPVwiJXNcIiIsIHBh
dGgpOwotICAgIGlmIChxdWVyeSA9PSBOVUxMKSB7Ci0gICAgICAgIGdvdG8gZm9ybWF0c3RyaW5n
ZmFpbGVkOwotICAgIH0KLQotICAgIGhyID0gKCp3bWkpLT5tcFhTU3ZjLT5FeGVjTm90aWZpY2F0
aW9uUXVlcnlBc3luYyhMIldRTCIsIHF1ZXJ5LDAsTlVMTCwgc2luayk7Ci0gICAgaWYgKEZBSUxF
RChocikpewotICAgICAgICAqd21pID0gTlVMTDsKLSAgICAgICAgZ290byB3bWlmYWlsZWQ7Ci0g
ICAgfQotCi0gICAgVkFSSUFOVCB2cGF0aDsKLSAgICBpZiAoc2V0VmFyaWFudFN0cmluZygmdnBh
dGgsIHBhdGgpKXsKLSAgICAgICAgZ290byBzZXR2cGF0aDsKLSAgICB9Ci0KLQotICAgIElXYmVt
Q2xhc3NPYmplY3QgKmluTWV0aG9kSW5zdCA9IHNlc3Npb25NZXRob2RTdGFydCggd21pLCBMIlNl
dFdhdGNoIik7Ci0gICAgaWYgKCFpbk1ldGhvZEluc3QpCi0gICAgICAgIGdvdG8gc2Vzc2lvbnN0
YXJ0OwotCi0gICAgaHIgPSBpbk1ldGhvZEluc3QtPlB1dChMIlBhdGhOYW1lIiwwLCZ2cGF0aCww
KTsKLSAgICBpZiAoRkFJTEVEKGhyKSkKLSAgICAgICAgZ290byBtZXRob2RwdXRmYWlsZWQ7Ci0K
LSAgICBociA9IG1ldGhvZEV4ZWMod21pLCpzZXNzaW9uLCBMIlNldFdhdGNoIiwgaW5NZXRob2RJ
bnN0LCBOVUxMKTsKLSAgICBpZiAoRkFJTEVEKGhyKSkKLSAgICAgICAgZ290byBtZXRob2RleGVj
ZmFpbGVkOwotCi0gICAgVmFyaWFudENsZWFyKCZ2cGF0aCk7Ci0KLSAgICBTeXNGcmVlU3RyaW5n
KHF1ZXJ5KTsKLQotICAgIHJldHVybiBzaW5rOwotCi0KLW1ldGhvZGV4ZWNmYWlsZWQ6Ci0gICAg
T3V0cHV0RGVidWdTdHJpbmcoX19GVU5DVElPTl9fICIgOiBtZXRob2RleGVjZmFpbGVkXG4iKTsK
LW1ldGhvZHB1dGZhaWxlZDoKLSAgICBPdXRwdXREZWJ1Z1N0cmluZyhfX0ZVTkNUSU9OX18gIiA6
IG1ldGhvZHB1dGZhaWxlZFxuIik7Ci0gICAgaW5NZXRob2RJbnN0LT5SZWxlYXNlKCk7Ci1zZXNz
aW9uc3RhcnQ6Ci0gICAgT3V0cHV0RGVidWdTdHJpbmcoX19GVU5DVElPTl9fICIgOiBzZXNzaW9u
c3RhcnRcbiIpOwotICAgIFZhcmlhbnRDbGVhcigmdnBhdGgpOwotc2V0dnBhdGg6Ci0gICAgT3V0
cHV0RGVidWdTdHJpbmcoX19GVU5DVElPTl9fICIgOiBzZXR2cGF0aFxuIik7Ci13bWlmYWlsZWQ6
Ci0gICAgU3lzRnJlZVN0cmluZyhxdWVyeSk7Ci1mb3JtYXRzdHJpbmdmYWlsZWQ6Ci0gICAgT3V0
cHV0RGVidWdTdHJpbmcoX19GVU5DVElPTl9fICIgOiBmb3JtYXRzdHJpbmdmYWlsZWRcbiIpOwot
ICAgIGRlbGV0ZSBzaW5rOwotICAgIHJldHVybiBOVUxMOwotfQotCi12b2lkICpXbWlVbnN1c3Bl
bmRlZEV2ZW50V2F0Y2goV01JQWNjZXNzb3IgKip3bWksIEhBTkRMRSBldmVudCwgSEFORExFIGVy
cm9yZXZlbnQpIAotewotICAgIEhSRVNVTFQgaHI7Ci0KLSAgICBBU1NFUlQoKndtaSAhPSBOVUxM
KTsKLQotICAgIFdhdGNoU2luayAqIHNpbmsgPSBuZXcgV2F0Y2hTaW5rKGV2ZW50LCBlcnJvcmV2
ZW50LCBOVUxMKTsKLSAgICBCU1RSIHF1ZXJ5PWZvcm1hdEJzdHIoIlNFTEVDVCAqIGZyb20gIiBP
QkpFQ1RfTkFNRV9BKFVuc3VzcGVuZGVkRXZlbnQpKTsKLSAgICBpZiAocXVlcnk9PU5VTEwpIHsK
LSAgICAgICAgZ290byBmb3JtYXRzdHJpbmdmYWlsZWQ7Ci0gICAgfQotCi0gICAgaHIgPSAoKndt
aSktPm1wWFNTdmMtPkV4ZWNOb3RpZmljYXRpb25RdWVyeUFzeW5jKEwiV1FMIiwgcXVlcnksMCxO
VUxMLCBzaW5rKTsKLSAgICBpZiBGQUlMRUQoaHIpCi0gICAgICAgIGdvdG8gYXN5bmNxdWVyeWZh
aWxlZDsKLQotICAgIFN5c0ZyZWVTdHJpbmcocXVlcnkpOwotICAgIHJldHVybiBzaW5rOwotCi1h
c3luY3F1ZXJ5ZmFpbGVkOgotICAgIFN5c0ZyZWVTdHJpbmcocXVlcnkpOwotZm9ybWF0c3RyaW5n
ZmFpbGVkOgotICAgIGRlbGV0ZSBzaW5rOwotICAgIHJldHVybiBOVUxMOwotfQotCmRpZmYgLS1n
aXQgYS9zcmMvd2luMzJzdHViYWdlbnQvV21pQWNjZXNzb3IuaCBiL3NyYy93aW4zMnN0dWJhZ2Vu
dC9XbWlBY2Nlc3Nvci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMzdlZjcxLi4w
MDAwMDAwCi0tLSBhL3NyYy93aW4zMnN0dWJhZ2VudC9XbWlBY2Nlc3Nvci5oCisrKyAvZGV2L251
bGwKQEAgLTEsODggKzAsMCBAQAotLyogQ29weXJpZ2h0IChjKSBDaXRyaXggU3lzdGVtcyBJbmMu
Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIAotICogd2l0aCBvciB3aXRob3V0IG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCAKLSAqIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZSBtZXQ6Ci0gKgotICogKiAgIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgCi0gKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSAKLSAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqICogICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIAotICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgCi0gKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIAotICogICAgIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIAotICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgCi0gKiBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiAKLSAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIAotICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgCi0gKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgCi0gKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCAKLSAqIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiAKLSAq
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgCi0gKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgCi0gKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIAotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiAKLSAqIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYg
X1dNSUFDQ0VTU09SX0gKLSNkZWZpbmUgX1dNSUFDQ0VTU09SX0gKLQotI2luY2x1ZGUgPFdiZW1p
ZGwuaD4KLSNpbmNsdWRlIDxsaXN0PgotI2luY2x1ZGUgPHZlY3Rvcj4KLSNpbmNsdWRlIDxtYXA+
Ci0jaW5jbHVkZSA8c3RyaW5nPgotCi0jaW5jbHVkZSAiWFNBY2Nlc3Nvci5oIgotCi11c2luZyBu
YW1lc3BhY2Ugc3RkOwotCi10eXBlZGVmIHVuc2lnbmVkIF9faW50NjQgdWludDY0X3Q7Ci0KLXN0
cnVjdCBXTUlBY2Nlc3NvcjsKLQotZXh0ZXJuIHN0cnVjdCBXTUlBY2Nlc3NvciAqd21pOwotCi1l
eHRlcm4gTE9ORyB3bWljb3VudDsKLUJPT0wgSW5pdENvbSh2b2lkKTsKLXZvaWQgUmVsZWFzZUNv
bSh2b2lkKTsKLUJPT0wgQ29ubmVjdFRvV01JKHZvaWQpOwotdm9pZCBSZWxlYXNlV01JQWNjZXNz
b3Ioc3RydWN0IFdNSUFjY2Vzc29yICoqKTsKLQotdm9pZCBVcGRhdGVQcm9jZXNzTGlzdEluU3Rv
cmUoV01JQWNjZXNzb3IgKip3bWkpOwotCi1pbnQgV21pU2Vzc2lvblNldEVudHJ5KFdNSUFjY2Vz
c29yKiogd21pLCAgdm9pZCAqKnNlc3Npb25oYW5kbGUsIAotICAgICAgICAgICAgICBjb25zdCBj
aGFyKnBhdGgsIGNvbnN0IGNoYXIgKiB2YWx1ZSk7Ci0KLWludCBXbWlTZXNzaW9uU2V0RW50cnko
V01JQWNjZXNzb3IqKiB3bWksICB2b2lkICoqc2Vzc2lvbmhhbmRsZSwgCi0gICAgICAgICAgICAg
IGNvbnN0IGNoYXIqcGF0aCwgY29uc3QgY2hhciAqIHZhbHVlLCBzaXplX3QgbGVuKTsKLWNoYXIq
IFdtaVNlc3Npb25HZXRFbnRyeShXTUlBY2Nlc3NvcioqIHdtaSwgdm9pZCAqKnNlc3Npb25oYW5k
bGUsCi0gICAgICAgICAgICAgIGNvbnN0IGNoYXIgKiBwYXRoLCBzaXplX3QqIGxlbikgOwotCi12
b2lkICpXbWlTZXNzaW9uV2F0Y2goV01JQWNjZXNzb3IqKiB3bWksICB2b2lkICoqc2Vzc2lvbmhh
bmRsZSwgCi0gICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqcGF0aCwgSEFORExFIGV2
ZW50LCBIQU5ETEUgZXJyb3JldmVudCk7Ci1CT09MIFdtaVNlc3Npb25VbndhdGNoKFdNSUFjY2Vz
c29yKiogd21pLCAgdm9pZCAqKnNlc3Npb25oYW5kbGUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgdm9pZCAqd2F0Y2hoYW5kbGUpOwotCi1pbnQgV21pU2Vzc2lvblJlbW92ZUVudHJ5KFdNSUFj
Y2Vzc29yKiogd21pLCAgdm9pZCAqKnNlc3Npb25oYW5kbGUsIAotICAgICAgICAgICAgICBjb25z
dCBjaGFyKnBhdGgpOwotCi1jaGFyICoqV21pU2Vzc2lvbkdldENoaWxkcmVuKFdNSUFjY2Vzc29y
Kiogd21pLCB2b2lkICoqc2Vzc2lvbmhhbmRsZSwKLSAgICAgICAgICAgICAgY29uc3QgY2hhciAq
IHBhdGgsIHVuc2lnbmVkICpudW1lbnRyaWVzKTsKLQotCi12b2lkICpXbWlVbnN1c3BlbmRlZEV2
ZW50V2F0Y2goV01JQWNjZXNzb3IgKip3bWksIEhBTkRMRSBldmVudCwgSEFORExFIGVycm9yZXZl
bnQpOwotCi1pbnQgV21pU2Vzc2lvblRyYW5zYWN0aW9uQWJvcnQoV01JQWNjZXNzb3IqKiB3bWks
ICB2b2lkICoqc2Vzc2lvbmhhbmRsZSk7IAotaW50IFdtaVNlc3Npb25UcmFuc2FjdGlvbkNvbW1p
dChXTUlBY2Nlc3NvcioqIHdtaSwgIHZvaWQgKipzZXNzaW9uaGFuZGxlKTsgCi1pbnQgV21pU2Vz
c2lvblRyYW5zYWN0aW9uU3RhcnQoV01JQWNjZXNzb3IqKiB3bWksICB2b2lkICoqc2Vzc2lvbmhh
bmRsZSk7IAotQk9PTCBXbWlTZXNzaW9uU3RhcnQoV01JQWNjZXNzb3IqKiB3bWksICB2b2lkICoq
c2Vzc2lvbmhhbmRsZSwgY29uc3QgY2hhciAqc2Vzc2lvbm5hbWUpOwotQk9PTCBXbWlTZXNzaW9u
RW5kKFdNSUFjY2Vzc29yKiogd21pLCAgdm9pZCAqc2Vzc2lvbmhhbmRsZSk7Ci1GSUxFVElNRSBX
bWlHZXRYZW5UaW1lKFdNSUFjY2Vzc29yICoqd21pKTsKLXZvaWQgV21pU2Vzc2lvbkxvZyhXTUlB
Y2Nlc3NvcioqIHdtaSwgIHZvaWQgKipzZXNzaW9uaGFuZGxlLGNvbnN0IGNoYXIgKmZtdCwgdmFf
bGlzdCBhcmdzKTsKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL3dpbjMyc3R1YmFnZW50L1hTQWNj
ZXNzb3IuY3BwIGIvc3JjL3dpbjMyc3R1YmFnZW50L1hTQWNjZXNzb3IuY3BwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBjNjBmYjhiLi4wMDAwMDAwCi0tLSBhL3NyYy93aW4zMnN0dWJh
Z2VudC9YU0FjY2Vzc29yLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDIzMCArMCwwIEBACi0vKiBD
b3B5cmlnaHQgKGMpIENpdHJpeCBTeXN0ZW1zIEluYy4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgCi0gKiB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIAotICogdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKLSAqCi0gKiAq
ICAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSAK
LSAqICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IAotICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogKiAgIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgCi0gKiAgICAgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSAKLSAqICAgICBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgCi0gKiAgICAg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgCi0gKiBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCAK
LSAqIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIAotICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
IEhPTERFUiBPUiAKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCAKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIAotICogQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIAotICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyAKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCAKLSAqIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyAKLSAqIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIAot
ICogU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgPHdpbmRvd3MuaD4KLSNpbmNsdWRlICJz
dGRhZnguaCIKLSNpbmNsdWRlICJYU0FjY2Vzc29yLmgiCi0jaW5jbHVkZSAiV01JQWNjZXNzb3Iu
aCIKLQotc3RhdGljIF9fZGVjbHNwZWModGhyZWFkKSB2b2lkICpXbWlTZXNzaW9uSGFuZGxlID0g
TlVMTDsKLQotc3RhdGljIExPTkcgdm9sYXRpbGUgdGhyZWFkY291bnQgPSAwOwotc3RhdGljIF9f
ZGVjbHNwZWModGhyZWFkKSBMT05HIGxvY2FsdGhyZWFkY291bnQgPSAwOwotc3RhdGljIF9fZGVj
bHNwZWModGhyZWFkKSBMT05HIGxvY2Fsd21pY291bnQgPSAwOwotCi1zdGF0aWMgbG9uZyB1cGRh
dGVfY250PTB4RjAwMDAwMDA7Ci0jZGVmaW5lIFhFTlNUT1JFX01BR0lDIDB4N2U2ZWMxMjMKLQot
dm9pZCAqWHNBbGxvYyhzaXplX3Qgc2l6ZSkgewotICAgIHZvaWQgKmJ1ZjsKLQotICAgIGJ1ZiA9
IG1hbGxvYyhzaXplICsgOCk7Ci0gICAgaWYgKCFidWYpIHsKLSAgICAgICAgU2V0TGFzdEVycm9y
KEVSUk9SX05PVF9FTk9VR0hfTUVNT1JZKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQot
ICAgIG1lbXNldChidWYsIDAsIHNpemUgKyA4KTsKLSAgICAqKHVuc2lnbmVkICopYnVmID0gWEVO
U1RPUkVfTUFHSUM7Ci0gICAgcmV0dXJuICh2b2lkICopKChVTE9OR19QVFIpYnVmICsgOCk7Ci19
Ci0KLXZvaWQgWHNGcmVlKGNvbnN0IHZvaWQgKmJ1ZikgewotICAgIHZvaWQgKm9yaWdfYnVmOwot
Ci0gICAgaWYgKCFidWYpCi0gICAgICAgIHJldHVybjsKLSAgICBvcmlnX2J1ZiA9ICh2b2lkICop
KChVTE9OR19QVFIpYnVmIC0gOCk7Ci0gICAgaWYgKCoodW5zaWduZWQgKilvcmlnX2J1ZiAhPSBY
RU5TVE9SRV9NQUdJQykgewotICAgICAgICBPdXRwdXREZWJ1Z1N0cmluZygiWHNGcmVlKCkgaW52
b2tlZCBvbiBiYWQgcG9pbnRlclxuIik7Ci0gICAgICAgIERlYnVnQnJlYWsoKTsKLSAgICB9Ci0g
ICAgZnJlZShvcmlnX2J1Zik7Ci19Ci0KLXZvaWQgR2V0WGVuVGltZShGSUxFVElNRSAqbm93KQot
ewotICAgICpub3cgPSBXbWlHZXRYZW5UaW1lKCZ3bWkpOwotfQotCi0KLWludCBMaXN0ZW5TdXNw
ZW5kKEhBTkRMRSBldmVudCwgSEFORExFIGVycm9yZXZlbnQpCi17Ci0gICAgaWYgKCFXbWlVbnN1
c3BlbmRlZEV2ZW50V2F0Y2goJndtaSwgZXZlbnQsIGVycm9yZXZlbnQpKQotICAgICAgICByZXR1
cm4gLTE7Ci0gICAgZWxzZQotICAgICAgICByZXR1cm4gMDsKLX0KLQotQk9PTCBJbml0WFNBY2Nl
c3NvcigpCi17Ci0gICAgT3V0cHV0RGVidWdTdHJpbmcoIlhTQWNjZXNzb3JcbiIpOwotICAgIGlm
ICh3bWljb3VudCAhPSBsb2NhbHdtaWNvdW50KSB7Ci0gICAgICAgIAotICAgICAgICBpZiAobG9j
YWx0aHJlYWRjb3VudCA9PSAwKSB7Ci0gICAgICAgICAgICBsb2NhbHRocmVhZGNvdW50ID0gSW50
ZXJsb2NrZWRJbmNyZW1lbnQoJnRocmVhZGNvdW50KTsKLSAgICAgICAgfQotICAgICAgICBjaGFy
IHdtaW5hbWVbMTJdOwotICAgICAgICBfc25wcmludGYod21pbmFtZSwgMTIsICJYUyV4IiwgbG9j
YWx0aHJlYWRjb3VudCk7Ci0gICAgICAgIGlmIChXbWlTZXNzaW9uU3RhcnQoJndtaSwgJldtaVNl
c3Npb25IYW5kbGUsIHdtaW5hbWUpKSB7Ci0gICAgICAgICAgICBsb2NhbHdtaWNvdW50ID0gd21p
Y291bnQ7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICBPdXRw
dXREZWJ1Z1N0cmluZygiWFNBY2Nlc3NvciBGYWlsZWRcbiIpOwotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgfQotICAgIHJldHVybiB0cnVlOwotfQotCi12b2lkIFhzTG9nKGNvbnN0IGNoYXIg
KmZtdCwgLi4uKQotewotICAgIHZhX2xpc3QgYXJnczsKLQotICAgIHZhX3N0YXJ0KGFyZ3MsIGZt
dCk7Ci0gICAgV21pU2Vzc2lvbkxvZygmd21pLCAmV21pU2Vzc2lvbkhhbmRsZSwgZm10LCBhcmdz
KTsKLSAgICB2YV9lbmQoYXJncyk7Ci19Ci0KLQotQk9PTCBTaHV0ZG93blhTQWNjZXNzb3Iodm9p
ZCkKLXsKLSAgICBpZiAod21pID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IH0KLSAgICBpZiAoV21pU2Vzc2lvbkhhbmRsZSA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICB9Ci0gICAgcmV0dXJuIFdtaVNlc3Npb25FbmQoJndtaSwgV21pU2Vzc2lvbkhh
bmRsZSk7Ci0KLX0KLQotaW50IFhlbnN0b3JlUHJpbnRmKGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0
IGNoYXIgKmZtdCwgLi4uKQotewotICAgIHZhX2xpc3QgbDsKLSAgICBjaGFyIGJ1Zls0MDk2XTsK
LSAgICBpbnQgY250OwotCi0gICAgdmFfc3RhcnQobCwgZm10KTsKLSAgICBjbnQgPSBfdnNucHJp
bnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksIGZtdCwgbCk7Ci0gICAgdmFfZW5kKGwpOwotICAgIGlmIChj
bnQgPCAwKSB7Ci0gICAgICAgIERCR1BSSU5UICgoIkNhbm5vdCBmb3JtYXQgZGF0YSBmb3IgWGVu
c3RvcmVQcmludGYhIikpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQotICAgIE91dHB1dERl
YnVnU3RyaW5nKGJ1Zik7Ci0gICAgLyogTm93IGhhdmUgdGhlIHRoaW5nIHdlJ3JlIHRyeWluZyB0
byB3cml0ZS4gKi8KLSAgICByZXR1cm4gV21pU2Vzc2lvblNldEVudHJ5KCZ3bWksICZXbWlTZXNz
aW9uSGFuZGxlLCBwYXRoLCBidWYpOwotfQotCi1CT09MIFhlbnN0b3JlS2lja1hhcGkoKQotewot
ICAgIC8qIE5ldyBwcm90b2NvbCAqLwotICAgIGlmIChYZW5zdG9yZVByaW50ZigiZGF0YS91cGRh
dGVfY250IiwgIiVJNjRkIiwgdXBkYXRlX2NudCkpewotICAgICAgICBYc0xvZygiTmV3IGtpY2sg
ZmFpbGVkICIpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIC8qIE9sZCBwcm90
b2NvbCAqLwotICAgIGlmIChXbWlTZXNzaW9uU2V0RW50cnkoJndtaSwgJldtaVNlc3Npb25IYW5k
bGUsICJkYXRhL3VwZGF0ZWQiLCAiMSIpKXsKLSAgICAgICAgWHNMb2coIk9sZCBraWNrIGZhaWxl
ZCIpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHVwZGF0ZV9jbnQrKzsKLSAg
ICByZXR1cm4gdHJ1ZTsKLX0KLQotCi1pbnQKLVhlbnN0b3JlUmVtb3ZlKGNvbnN0IGNoYXIgKnBh
dGgpCi17Ci0gICAgaWYgKHdtaSA9PSBOVUxMKQotICAgICAgICByZXR1cm4gLTE7Ci0KLSAgICBp
ZiAoV21pU2Vzc2lvbkhhbmRsZSA9PSBOVUxMKQotICAgICAgICByZXR1cm4gLTE7Ci0KLSAgICBp
ZiAoV21pU2Vzc2lvblJlbW92ZUVudHJ5KCZ3bWksICZXbWlTZXNzaW9uSGFuZGxlLCBwYXRoKSkK
LSAgICAgICAgcmV0dXJuIC0xOwotICAgIGVsc2UKLSAgICAgICAgcmV0dXJuIDA7Ci19Ci0KLXNz
aXplX3QKLVhlbnN0b3JlUmVhZChjb25zdCBjaGFyKiBwYXRoLCBjaGFyKiogdmFsdWUpCi17Ci0g
ICAgc2l6ZV90IGxlbjsKLSAgICAqdmFsdWUgPVdtaVNlc3Npb25HZXRFbnRyeSgmd21pLCAmV21p
U2Vzc2lvbkhhbmRsZSwgcGF0aCwgJmxlbik7Ci0gICAgaWYgKCp2YWx1ZSkKLSAgICAgICAgcmV0
dXJuIChzc2l6ZV90KWxlbjsKLSAgICBlbHNlCi0gICAgICAgIHJldHVybiAtMTsKLX0KLQotCi1i
b29sIFhlbnN0b3JlUmVhZER3b3JkKGNvbnN0IGNoYXIgKnBhdGgsIERXT1JEICp2YWx1ZSkgewot
ICAgIGNoYXIqIGJ1ZmZlcjsKLSAgICBzc2l6ZV90IGxlbjsKLSAgICBsZW4gPSBYZW5zdG9yZVJl
YWQocGF0aCwgJmJ1ZmZlcik7Ci0gICAgaWYgKGxlbiA8PSAwKSB7Ci0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICB9Ci0gICAgKnZhbHVlID0gYXRvaShidWZmZXIpOwotCi0gICAgWHNGcmVlKGJ1
ZmZlcik7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZCAqCi1YZW5zdG9yZVdhdGNoKGNv
bnN0IGNoYXIgKnBhdGgsIEhBTkRMRSBldmVudCwgSEFORExFIGVycm9yZXZlbnQpCi17Ci0gCi0g
ICAgaWYgKHdtaSA9PSBOVUxMKSB7Ci0gICAgICAgIE91dHB1dERlYnVnU3RyaW5nKCJXTUkgaXMg
bnVsbFxuIik7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSAgICBpZiAoV21pU2Vzc2lv
bkhhbmRsZSA9PSBOVUxMKSB7Ci0gICAgICAgIE91dHB1dERlYnVnU3RyaW5nKCJTZXNzaW9uIGlz
IG51bGxcbiIpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgcmV0dXJuIFdtaVNl
c3Npb25XYXRjaCgmd21pLCAmV21pU2Vzc2lvbkhhbmRsZSwgcGF0aCwgZXZlbnQsIGVycm9yZXZl
bnQpOwotfQotCi1CT09MCi1YZW5zdG9yZVVud2F0Y2godm9pZCAqd2F0Y2gpCi17Ci0gICAgcmV0
dXJuIFdtaVNlc3Npb25VbndhdGNoKCZ3bWksICZXbWlTZXNzaW9uSGFuZGxlLCB3YXRjaCk7Ci19
Ci0KLXZvaWQgCi1YZW5zdG9yZUZyZWUodm9pZCAqdG9mcmVlKQotewotICAgIHJldHVybiBYc0Zy
ZWUodG9mcmVlKTsKLX0KLQpkaWZmIC0tZ2l0IGEvc3JjL3dpbjMyc3R1YmFnZW50L1hTQWNjZXNz
b3IuaCBiL3NyYy93aW4zMnN0dWJhZ2VudC9YU0FjY2Vzc29yLmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDJlZDQxYjAuLjAwMDAwMDAKLS0tIGEvc3JjL3dpbjMyc3R1YmFnZW50L1hT
QWNjZXNzb3IuaAorKysgL2Rldi9udWxsCkBAIC0xLDEyNiArMCwwIEBACi0vKiBDb3B5cmlnaHQg
KGMpIENpdHJpeCBTeXN0ZW1zIEluYy4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcywgCi0gKiB3
aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIAotICog
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKLSAqCi0gKiAqICAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSAKLSAqICAgICBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIAotICogICAg
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogKiAgIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgCi0gKiAgICAgY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSAKLSAqICAgICBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgCi0gKiAgICAgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgCi0gKiBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCAKLSAqIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIAotICog
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
Ci0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBP
UiAKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCAKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIAotICogQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIAotICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyAKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCAKLSAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyAKLSAqIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIAotICogU1VDSCBE
QU1BR0UuCi0gKi8KLQotCi0jaWZuZGVmIF9YU0FDQ0VTU09SX0gKLSNkZWZpbmUgX1hTQUNDRVNT
T1JfSAotCi0jaW5jbHVkZSA8c3RyaW5nPgotI2luY2x1ZGUgIndpbmRvd3MuaCIKLQotCi11c2lu
ZyBuYW1lc3BhY2Ugc3RkOwotCi0jZGVmaW5lIE1BWF9YRU5CVVNfUEFUSCAyNTYKLQotI2lmZGVm
IEFNRDY0Ci10eXBlZGVmIGxvbmcgbG9uZyBzc2l6ZV90OwotI2Vsc2UKLXR5cGVkZWYgbG9uZyBz
c2l6ZV90OwotI2VuZGlmCi0KLUJPT0wgSW5pdFhTQWNjZXNzb3IoKTsKLUJPT0wgU2h1dGRvd25Y
U0FjY2Vzc29yKCk7Ci1zc2l6ZV90IFhlbnN0b3JlUmVhZChjb25zdCBjaGFyICpwYXRoLCBjaGFy
ICoqdmFsdWUpOwotaW50IFhlbnN0b3JlUmVtb3ZlKGNvbnN0IGNoYXIgKnBhdGgpOwotaW50IFhl
bnN0b3JlUHJpbnRmKGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKLWlu
dCBYZW5zdG9yZVdyaXRlKGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IHZvaWQgKmRhdGEsIHNpemVf
dCBsZW4pOwotQk9PTCBYZW5zdG9yZUtpY2tYYXBpKHZvaWQpOwotdm9pZCAqWGVuc3RvcmVXYXRj
aChjb25zdCBjaGFyICpwYXRoLCBIQU5ETEUgZXZlbnQsIEhBTkRMRSBlcnJvcmV2ZW50KTsKLUJP
T0wgWGVuc3RvcmVVbndhdGNoKHZvaWQgKndhdGNoKTsKLWludCBMaXN0ZW5TdXNwZW5kKEhBTkRM
RSBldnQsIEhBTkRMRSBlcnJvcmV2ZW50KTsKLXZvaWQgR2V0WGVuVGltZShGSUxFVElNRSAqcmVz
KTsKLXZvaWQgWHNMb2coY29uc3QgY2hhciAqZm10LCAuLi4pOwotdm9pZCBYZW5zdG9yZUZyZWUo
dm9pZCAqdG9mcmVlKTsKLXZvaWQgKlhzQWxsb2Moc2l6ZV90IHNpemUpOwotdm9pZCBYc0ZyZWUo
Y29uc3Qgdm9pZCAqYnVmKTsKLWJvb2wgWGVuc3RvcmVSZWFkRHdvcmQoY29uc3QgY2hhciAqIHBh
dGgsIERXT1JEICp2YWx1ZSk7Ci0KLSNpZiBEQkcKLQotI2luY2x1ZGUgPHN0ZGFyZy5oPiAgICAg
ICAgIC8vIHZhX2xpc3QKLSNpbmNsdWRlIDxzdGRpby5oPiAgICAgICAgICAvLyB2c3ByaW50Zgot
I2luY2x1ZGUgPG1hbGxvYy5oPgotCi0jaW5jbHVkZSA8YXNzZXJ0Lmg+Ci0jaW5jbHVkZSA8dGNo
YXIuaD4KLQotX19pbmxpbmUgdm9pZCBEZWJ1Z1ByaW50KCBJTiBMUENUU1RSIG1zZywgSU4gLi4u
ICkKLXsKLSAgICBUQ0hBUiAgIGJ1ZmZlclsyNTZdOwotICAgIGludCAgICAgcmVzOwotICAgIHZh
X2xpc3QgYXJnczsKLQotICAgIHZhX3N0YXJ0KCBhcmdzLCBtc2cgKTsKLSNwcmFnbWEgcHJlZmFz
dChzdXBwcmVzczogMjg3MTksICJZZXMsIHdlIGFsbCBrbm93IF92c25wcmludGYgaXMgYmFubmVk
IGluIGRyaXZlcnMsIHRoaXMgaXMgdXNlciBsZXZlbCIpOwotICAgIHJlcyA9IF92c250cHJpbnRm
KGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlcikgLyBzaXplb2YoYnVmZmVyWzBdKSwgbXNnLCBhcmdzKTsK
LSAgICBpZiAocmVzID49IDApCi0gICAgewotICAgICAgICBPdXRwdXREZWJ1Z1N0cmluZyggYnVm
ZmVyICk7Ci0gICAgfQotICAgIGVsc2UKLSAgICB7Ci0gICAgICAgIFRDSEFSICpwOwotICAgICAg
ICBpbnQgY291bnQ7Ci0KLSAgICAgICAgY291bnQgPSA1MTI7Ci0gICAgICAgIGZvciAoOzspIHsK
LSAgICAgICAgICAgIHAgPSAoVENIQVIgKiltYWxsb2MoY291bnQgKiBzaXplb2YgKFRDSEFSKSk7
Ci0gICAgICAgICAgICBpZiAoIXApIHsKLSAgICAgICAgICAgICAgICBPdXRwdXREZWJ1Z1N0cmlu
ZyhfVCgiT3V0IG9mIG1lbW9yeSBmb3IgZGVidWcgbWVzc2FnZSFcbiIpKTsKLSAgICAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJlcyA9IF92c250cHJpbnRm
KHAsIGNvdW50LCBtc2csIGFyZ3MpOwotICAgICAgICAgICAgaWYgKHJlcyA+PSAwKQotICAgICAg
ICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICBmcmVlKHApOwotICAgICAgICAgICAgY291
bnQgKz0gMjU2OwotICAgICAgICB9Ci0gICAgICAgIGlmIChwKSB7Ci0gICAgICAgICAgICBPdXRw
dXREZWJ1Z1N0cmluZyggcCApOwotICAgICAgICAgICAgZnJlZShwKTsKLSAgICAgICAgfQotICAg
IH0KLSAgICB2YV9lbmQoYXJncyk7Ci19Ci0KLSNkZWZpbmUgREJHUFJJTlQoX3hfKSBEZWJ1Z1By
aW50IF94XwotI2RlZmluZSBBU1NFUlQgIGFzc2VydAotCi0jZWxzZQotCi0jZGVmaW5lIERCR1BS
SU5UKF94XykgCi0jZGVmaW5lIEFTU0VSVCAgCi0KLSNlbmRpZiAvLyBEQkcKLQotI2VuZGlmCmRp
ZmYgLS1naXQgYS9zcmMvd2luMzJzdHViYWdlbnQvWFNlcnZpY2UuY3BwIGIvc3JjL3dpbjMyc3R1
YmFnZW50L1hTZXJ2aWNlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWZiYjEz
OC4uMDAwMDAwMAotLS0gYS9zcmMvd2luMzJzdHViYWdlbnQvWFNlcnZpY2UuY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsMTA0NCArMCwwIEBACi0vKiBDb3B5cmlnaHQgKGMpIENpdHJpeCBTeXN0ZW1z
IEluYy4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcywgCi0gKiB3aXRoIG9yIHdpdGhvdXQgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIAotICogdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlIG1ldDoKLSAqCi0gKiAqICAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSAKLSAqICAgICBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIAotICogICAgIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogKiAgIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgCi0gKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSAKLSAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgCi0gKiAgICAgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgCi0gKiBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCAKLSAqIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIAotICogTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgCi0gKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiAKLSAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCAKLSAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIAot
ICogQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IAotICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyAKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCAKLSAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyAKLSAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIAotICogU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lu
Y2x1ZGUgPHdpbmRvd3MuaD4KLSNpbmNsdWRlIDxzaGxvYmouaD4KLSNpbmNsdWRlIDxwcm9jZXNz
Lmg+Ci0jaW5jbHVkZSAicG93cnByb2YuaCIKLSNpbmNsdWRlIDx3aW51c2VyLmg+Ci0jaW5jbHVk
ZSAic3RkYWZ4LmgiCi0jaW5jbHVkZSAiWFNBY2Nlc3Nvci5oIgotI2luY2x1ZGUgIldNSUFjY2Vz
c29yLmgiCi0jaW5jbHVkZSAiWFNlcnZpY2UuaCIKLQotI2luY2x1ZGUgIm1lc3NhZ2VzLmgiCi0K
LSNpbmNsdWRlIDxzZXR1cGFwaS5oPgotI2luY2x1ZGUgPGNmZ21ncjMyLmg+Ci0jaW5jbHVkZSA8
aW5pdGd1aWQuaD4KLSNpbmNsdWRlIDxkZXZndWlkLmg+Ci0jaW5jbHVkZSA8d2ludHJ1c3QuaD4K
LSNpbmNsdWRlIDxzaGVsbGFwaS5oPgotCi0jaWZkZWYgX1dJTjY0Ci0jZGVmaW5lIFhFTlRPT0xT
X0lOU1RBTExfUkVHX0tFWSAgICJTT0ZUV0FSRVxcV293NjQzMk5vZGVcXENpdHJpeFxcWGVuVG9v
bHMiCi0jZGVmaW5lIFhFTlRPT0xTX0lOU1RBTExfUkVHX0tFWTY0ICJTT0ZUV0FSRVxcQ2l0cml4
XFxYZW5Ub29scyIKLSNlbHNlCi0jZGVmaW5lIFhFTlRPT0xTX0lOU1RBTExfUkVHX0tFWSAgICJT
T0ZUV0FSRVxcQ2l0cml4XFxYZW5Ub29scyIKLSNlbmRpZgotCi1TRVJWSUNFX1NUQVRVUyBTZXJ2
aWNlU3RhdHVzOyAKLVNFUlZJQ0VfU1RBVFVTX0hBTkRMRSBoU3RhdHVzOyAgCi0KLXN0YXRpYyBI
QU5ETEUgaFNlcnZpY2VFeGl0RXZlbnQ7Ci1zdGF0aWMgVUxPTkcgV2luZG93c1ZlcnNpb247Ci1z
dGF0aWMgQk9PTCBMZWdhY3lIYWwgPSBGQUxTRTsKLXN0YXRpYyBISU5TVEFOQ0UgbG9jYWxfaGlu
c3RhbmNlOwotCi1IQU5ETEUgZXZlbnRMb2c7Ci0jZGVmaW5lIFNJWkVDSEFSUyh4KSAoc2l6ZW9m
KCh4KSkvc2l6ZW9mKFRDSEFSKSkKLQotLy8gSW50ZXJuYWwgcm91dGluZXMKLXN0YXRpYyBEV09S
RCBXSU5BUEkgU2VydmljZUNvbnRyb2xIYW5kbGVyKERXT1JEIHJlcXVlc3QsIERXT1JEIGV2dFR5
cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMUFZPSUQsIExQ
Vk9JRCk7Ci1zdGF0aWMgdm9pZCBTZXJ2aWNlQ29udHJvbE1hbmFnZXJVcGRhdGUoRFdPUkQgZHdF
eGl0Q29kZSwgRFdPUkQgZHdTdGF0ZSk7Ci1zdGF0aWMgdm9pZCBXSU5BUEkgU2VydmljZU1haW4o
aW50IGFyZ2MsIGNoYXIqKiBhcmd2KTsKLXN0YXRpYyB2b2lkIEdldFdpbmRvd3NWZXJzaW9uKCk7
Ci0KLXZvaWQgUHJpbnRFcnJvcihjb25zdCBjaGFyICpmdW5jLCBEV09SRCBlcnIpCi17Ci0gICAg
TFBWT0lEIGxwTXNnQnVmOwotICAgIEZvcm1hdE1lc3NhZ2UoCi0gICAgICAgIEZPUk1BVF9NRVNT
QUdFX0FMTE9DQVRFX0JVRkZFUiB8Ci0gICAgICAgIEZPUk1BVF9NRVNTQUdFX0ZST01fU1lTVEVN
LAotICAgICAgICBOVUxMLAotICAgICAgICBlcnIsCi0gICAgICAgIE1BS0VMQU5HSUQoTEFOR19O
RVVUUkFMLCBTVUJMQU5HX0RFRkFVTFQpLAotICAgICAgICAoTFBUU1RSKSAmbHBNc2dCdWYsCi0g
ICAgICAgIDAsCi0gICAgICAgIE5VTEwpOwotICAgIE91dHB1dERlYnVnU3RyaW5nKChMUFRTVFIp
bHBNc2dCdWYpOwotICAgIFhzTG9nKCIlcyBmYWlsZWQ6ICVzICgleCkiLCBmdW5jLCBscE1zZ0J1
ZiwgZXJyKTsKLSAgICBYZW5zdG9yZVByaW50ZigiY29udHJvbC9lcnJvciIsICIlcyBmYWlsZWQ6
ICVzICgleCkiLCBmdW5jLCBscE1zZ0J1ZiwgZXJyKTsKLSAgICBMb2NhbEZyZWUobHBNc2dCdWYp
OwotfQotCi12b2lkIFByaW50RXJyb3IoY29uc3QgY2hhciAqZnVuYykKLXsKLSAgICBQcmludEVy
cm9yKGZ1bmMsIEdldExhc3RFcnJvcigpKTsKLX0KLQotdm9pZCBQcmludFVzYWdlKCkKLXsKLSAg
ICBwcmludGYoIlVzYWdlOiB4ZW5zZXJ2aWNlIFstdV1cbiIpOwotCi0gICAgcHJpbnRmKCJcdCAt
dTogdW5pbnN0YWxsIHNlcnZpY2VcbiIpOwotfQotCi0KLQotc3RydWN0IHdhdGNoX2V2ZW50IHsK
LSAgICBIQU5ETEUgZXZlbnQ7Ci0gICAgdm9pZCAqd2F0Y2g7Ci19OwotCi1zdGF0aWMgdm9pZAot
UmVsZWFzZVdhdGNoKHN0cnVjdCB3YXRjaF9ldmVudCAqd2UpCi17Ci0gICAgaWYgKHdlID09IE5V
TEwpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAod2UtPmV2ZW50ICE9IElOVkFMSURfSEFORExF
X1ZBTFVFKQotICAgICAgICBDbG9zZUhhbmRsZSh3ZS0+ZXZlbnQpOwotICAgIGlmICh3ZS0+d2F0
Y2gpCi0gICAgICAgIFhlbnN0b3JlVW53YXRjaCh3ZS0+d2F0Y2gpOwotICAgIGZyZWUod2UpOwot
fQotCi1zdGF0aWMgY2hhciAqIEluaXRTdHJpbmcoY29uc3QgY2hhciAqIGlucHV0c3RyaW5nKQot
ewotICAgIGNoYXIgKm91dHB1dHN0cmluZyA9IChjaGFyICopY2FsbG9jKChzdHJsZW4oaW5wdXRz
dHJpbmcpKzEpLHNpemVvZihjaGFyKSk7Ci0gICAgaWYgKG91dHB1dHN0cmluZyA9PSBOVUxMKQot
ICAgICAgICBnb3RvIGZhaWxhbGxvYzsKLSAgICBzdHJjcHkob3V0cHV0c3RyaW5nLCBpbnB1dHN0
cmluZyk7Ci0gICAgcmV0dXJuIG91dHB1dHN0cmluZzsgCi0KLWZhaWxhbGxvYzoKLSAgICBYc0xv
ZyhfX0ZVTkNUSU9OX18gIiA6IEZhaWwgbWFsbG9jIik7Ci0gICAgcmV0dXJuIE5VTEw7Ci19Ci0K
LXN0YXRpYyB2b2lkIEZyZWVTdHJpbmcoY29uc3QgY2hhciAqc3RyaW5nKSAKLXsKLSAgICBmcmVl
KCh2b2lkICopc3RyaW5nKTsKLX0KLQotc3RhdGljIGNoYXIqIFByaW50ZlN0cmluZyhjb25zdCBj
aGFyICpmbXQsIC4uLil7Ci0gICAgdmFfbGlzdCBsOwotICAgIHZhX3N0YXJ0KGwsIGZtdCk7Ci0g
ICAgaW50IG51bWNoYXJzID0gX3ZzY3ByaW50ZihmbXQsIGwpOwotICAgIGNoYXIgKm91dHB1dHN0
cmluZyA9IChjaGFyICopY2FsbG9jKG51bWNoYXJzICsgMSwgc2l6ZW9mKGNoYXIpKTsKLQotICAg
IGlmIChvdXRwdXRzdHJpbmcgPT0gTlVMTCkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBf
dnNucHJpbnRmKG91dHB1dHN0cmluZywgbnVtY2hhcnMsIGZtdCwgbCk7Ci0gICAgcmV0dXJuIG91
dHB1dHN0cmluZzsKLX0KLQotc3RhdGljIHN0cnVjdCB3YXRjaF9ldmVudCAqCi1Fc3RhYmxpc2hX
YXRjaChjb25zdCBjaGFyICpwYXRoLCBIQU5ETEUgZXJyb3JldmVudCkKLXsKLSAgICBzdHJ1Y3Qg
d2F0Y2hfZXZlbnQgKndlOwotICAgIERXT1JEIGVycjsKLSAgICBYc0xvZygiRXN0YWJsaXNoIHdh
dGNoICVzIixwYXRoKTsKLSAgICB3ZSA9IChzdHJ1Y3Qgd2F0Y2hfZXZlbnQgKiltYWxsb2Moc2l6
ZW9mKCp3ZSkpOwotICAgIGlmICghd2UpIHsKLSAgICAgICAgU2V0TGFzdEVycm9yKEVSUk9SX05P
VF9FTk9VR0hfTUVNT1JZKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotICAgIG1lbXNl
dCh3ZSwgMCwgc2l6ZW9mKCp3ZSkpOwotICAgIHdlLT53YXRjaCA9IE5VTEw7Ci0gICAgd2UtPmV2
ZW50ID0gQ3JlYXRlRXZlbnQoTlVMTCwgRkFMU0UsIEZBTFNFLCBOVUxMKTsKLSAgICBpZiAod2Ut
PmV2ZW50ICE9IElOVkFMSURfSEFORExFX1ZBTFVFKQotICAgICAgICB3ZS0+d2F0Y2ggPSBYZW5z
dG9yZVdhdGNoKHBhdGgsIHdlLT5ldmVudCwgZXJyb3JldmVudCk7Ci0gICAgaWYgKHdlLT53YXRj
aCA9PSBOVUxMKSB7Ci0gICAgICAgIE91dHB1dERlYnVnU3RyaW5nKCJXYXRjaCBpcyBudWxsXG4i
KTsKLSAgICAgICAgZXJyID0gR2V0TGFzdEVycm9yKCk7Ci0gICAgICAgIFJlbGVhc2VXYXRjaCh3
ZSk7Ci0gICAgICAgIFNldExhc3RFcnJvcihlcnIpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAg
ICB9Ci0gICAgcmV0dXJuIHdlOwotfQotCi1zdHJ1Y3Qgd2F0Y2hfZmVhdHVyZSB7Ci0gICAgc3Ry
dWN0IHdhdGNoX2V2ZW50ICp3YXRjaDsKLSAgICBjb25zdCBjaGFyICpmZWF0dXJlX2ZsYWc7Ci0g
ICAgY29uc3QgY2hhciAqbmFtZTsKLSAgICBCT09MICgqaGFuZGxlcikodm9pZCAqKTsKLSAgICB2
b2lkICpjdHg7Ci19OwotCi0jZGVmaW5lIE1BWF9GRUFUVVJFUyAxMAotc3RydWN0IHdhdGNoX2Zl
YXR1cmVfc2V0IHsKLSAgICBzdHJ1Y3Qgd2F0Y2hfZmVhdHVyZSBmZWF0dXJlc1tNQVhfRkVBVFVS
RVNdOwotICAgIHVuc2lnbmVkIG5yX2ZlYXR1cmVzOwotfTsKLQotc3RhdGljIEJPT0wKLUFkZEZl
YXR1cmUoc3RydWN0IHdhdGNoX2ZlYXR1cmVfc2V0ICp3ZnMsIGNvbnN0IGNoYXIgKnBhdGgsCi0g
ICAgICAgICAgIGNvbnN0IGNoYXIgKmZsYWcsIGNvbnN0IGNoYXIgKm5hbWUsCi0gICAgICAgICAg
IEJPT0wgKCpoYW5kbGVyKSh2b2lkICopLCB2b2lkICpjdHgsIEhBTkRMRSBlcnJvcmV2ZW50KQot
ewotICAgIHVuc2lnbmVkIG47Ci0gICAgaWYgKHdmcy0+bnJfZmVhdHVyZXMgPT0gTUFYX0ZFQVRV
UkVTKQotICAgICAgICBnb3RvIGZhaWxmZWF0dXJlczsKLQotICAgIG4gPSB3ZnMtPm5yX2ZlYXR1
cmVzOwotCi0gICAgd2ZzLT5mZWF0dXJlc1tuXS53YXRjaCA9IEVzdGFibGlzaFdhdGNoKHBhdGgs
IGVycm9yZXZlbnQpOwotICAgIGlmICh3ZnMtPmZlYXR1cmVzW25dLndhdGNoID09IE5VTEwpCi0g
ICAgICAgIGdvdG8gZmFpbHdhdGNoOwotICAgIAotICAgIHdmcy0+ZmVhdHVyZXNbbl0uZmVhdHVy
ZV9mbGFnID0gZmxhZzsKLSAgICB3ZnMtPmZlYXR1cmVzW25dLmhhbmRsZXIgPSBoYW5kbGVyOwot
ICAgIHdmcy0+ZmVhdHVyZXNbbl0uY3R4ID0gY3R4OwotICAgIHdmcy0+ZmVhdHVyZXNbbl0ubmFt
ZSA9IEluaXRTdHJpbmcobmFtZSk7Ci0gICAgaWYgKHdmcy0+ZmVhdHVyZXNbbl0ubmFtZSA9PSBO
VUxMKQotICAgICAgICBnb3RvIGZhaWxuYW1lOwotICAgIHdmcy0+bnJfZmVhdHVyZXMrKzsKLSAg
ICByZXR1cm4gdHJ1ZTsKLQotZmFpbG5hbWU6Ci0gICAgUHJpbnRFcnJvcigiRmFpbGVkIHRvIGFs
bG9jYXRlIHN0cmluZyIpOwotZmFpbHdhdGNoOgotICAgIFByaW50RXJyb3IoIkVzdGFibGlzaFdh
dGNoKCkgZm9yIEFkZEZlYXR1cmUoKSIpOwotZmFpbGZlYXR1cmVzOgotICAgIFhzTG9nKCJUb28g
bWFueSBmZWF0dXJlcyIpOwotICAgIFByaW50RXJyb3IoIlRvbyBtYW55IGZlYXR1cmVzISIsIEVS
Uk9SX0lOVkFMSURfRlVOQ1RJT04pOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQotc3RhdGljIHZv
aWQgUmVtb3ZlRmVhdHVyZXMoc3RydWN0IHdhdGNoX2ZlYXR1cmVfc2V0ICp3ZnMpIHsKLSAgICB1
bnNpZ25lZCB4OwotICAgIGZvciAoeCA9IDA7IHggPCB3ZnMtPm5yX2ZlYXR1cmVzOyB4KyspIHsK
LSAgICAgICAgUmVsZWFzZVdhdGNoKHdmcy0+ZmVhdHVyZXNbeF0ud2F0Y2gpOwotICAgICAgICB3
ZnMtPmZlYXR1cmVzW3hdLndhdGNoID0gTlVMTDsKLSAgICAgICAgRnJlZVN0cmluZyh3ZnMtPmZl
YXR1cmVzW3hdLm5hbWUpOwotICAgICAgICBYZW5zdG9yZVJlbW92ZSh3ZnMtPmZlYXR1cmVzW3hd
LmZlYXR1cmVfZmxhZyk7Ci0gICAgfQotICAgIHdmcy0+bnJfZmVhdHVyZXMgPSAwOwotfQotCi1z
dGF0aWMgQk9PTAotQWR2ZXJ0aXNlRmVhdHVyZXMoc3RydWN0IHdhdGNoX2ZlYXR1cmVfc2V0ICp3
ZnMpCi17Ci0gICAgdW5zaWduZWQgeDsKLSAgICBmb3IgKHggPSAwOyB4IDwgd2ZzLT5ucl9mZWF0
dXJlczsgeCsrKSB7Ci0gICAgICAgIGlmICh3ZnMtPmZlYXR1cmVzW3hdLmZlYXR1cmVfZmxhZyAh
PSBOVUxMKQotICAgICAgICAgICAgaWYgKFhlbnN0b3JlUHJpbnRmKHdmcy0+ZmVhdHVyZXNbeF0u
ZmVhdHVyZV9mbGFnLCAiMSIpKXsKLSAgICAgICAgICAgICAgICBYc0xvZygiRmFpbGVkIHRvIGFk
dmVydGlzZSAlcyIsd2ZzLT5mZWF0dXJlc1t4XS5uYW1lKTsKLSAgICAgICAgICAgIH0KLSAgICB9
Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLQotdm9pZCBTZXJ2aWNlVW5pbnN0YWxsKCkKLXsKLSAg
ICBTQ19IQU5ETEUgICBoU3ZjOwotICAgIFNDX0hBTkRMRSAgIGhNZ3I7Ci0gICAgCi0gICAgaE1n
ciA9IE9wZW5TQ01hbmFnZXIoTlVMTCwgTlVMTCwgU0NfTUFOQUdFUl9BTExfQUNDRVNTKTsKLQot
ICAgIGlmICggaE1nciApCi0gICAgewotICAgICAgICBoU3ZjID0gT3BlblNlcnZpY2UoaE1nciwg
U1ZDX05BTUUsIFNFUlZJQ0VfQUxMX0FDQ0VTUyk7Ci0KLSAgICAgICAgaWYgKGhTdmMpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgICAvLyB0cnkgdG8gc3RvcCB0aGUgc2VydmljZQotICAgICAgICAg
ICAgIGlmICggQ29udHJvbFNlcnZpY2UoIGhTdmMsIFNFUlZJQ0VfQ09OVFJPTF9TVE9QLCAmU2Vy
dmljZVN0YXR1cyApICkKLSAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcHJpbnRmKCJT
dG9wcGluZyAlcy4iLCBTVkNfRElTUExBWU5BTUUpOwotICAgICAgICAgICAgICAgIFNsZWVwKCAx
MDAwICk7Ci0KLSAgICAgICAgICAgICAgICB3aGlsZSAoIFF1ZXJ5U2VydmljZVN0YXR1cyggaFN2
YywgJlNlcnZpY2VTdGF0dXMgKSApCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
ICAgICBpZiAoIFNlcnZpY2VTdGF0dXMuZHdDdXJyZW50U3RhdGUgPT0gU0VSVklDRV9TVE9QX1BF
TkRJTkcgKQotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBw
cmludGYoIi4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwKCAxMDAwICk7Ci0gICAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAg
aWYgKCBTZXJ2aWNlU3RhdHVzLmR3Q3VycmVudFN0YXRlID09IFNFUlZJQ0VfU1RPUFBFRCApCi0g
ICAgICAgICAgICAgICAgICAgIHByaW50ZigiXG4lcyBzdG9wcGVkLlxuIiwgU1ZDX0RJU1BMQVlO
QU1FICk7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBwcmludGYo
IlxuJXMgZmFpbGVkIHRvIHN0b3AuXG4iLCBTVkNfRElTUExBWU5BTUUgKTsKLSAgICAgICAgIH0K
LQotICAgICAgICAgLy8gbm93IHJlbW92ZSB0aGUgc2VydmljZQotICAgICAgICAgaWYgKCBEZWxl
dGVTZXJ2aWNlKGhTdmMpICkKLSAgICAgICAgICAgIHByaW50ZigiJXMgdW5pbnN0YWxsZWQuXG4i
LCBTVkNfRElTUExBWU5BTUUgKTsKLSAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHByaW50Zigi
VW5hYmxlIHRvIHVuaW5zdGFsbCAtICVkXG4iLCBHZXRMYXN0RXJyb3IoKSk7Ci0KLSAgICAgICAg
IENsb3NlU2VydmljZUhhbmRsZShoU3ZjKTsKLQotICAgICAgfQotICAgICAgZWxzZQotICAgICAg
ICAgcHJpbnRmKCJVbmFibGUgdG8gb3BlbiBzZXJ2aWNlIC0gJWRcbiIsIEdldExhc3RFcnJvcigp
KTsKLQotICAgICAgQ2xvc2VTZXJ2aWNlSGFuZGxlKGhNZ3IpOwotICAgfQotICAgZWxzZQotICAg
ICAgcHJpbnRmKCJVbmFibGUgdG8gb3BlbiBzY20gLSAlZFxuIiwgR2V0TGFzdEVycm9yKCkpOwot
Ci19Ci0KLQotaW50IF9fc3RkY2FsbAotV2luTWFpbihISU5TVEFOQ0UgaEluc3RhbmNlLCBISU5T
VEFOQ0UgaWdub3JlLAotICAgICAgICBMUFNUUiBscENtZExpbmUsIGludCBuQ21kU2hvdykKLXsK
LSAgICBsb2NhbF9oaW5zdGFuY2UgPSBoSW5zdGFuY2U7Ci0KLSAgICBpZiAoc3RybGVuKGxwQ21k
TGluZSkgPT0gMCkgewotICAgICAgICBTRVJWSUNFX1RBQkxFX0VOVFJZIFNlcnZpY2VUYWJsZVsy
XTsKLSAgICAgICAgU2VydmljZVRhYmxlWzBdLmxwU2VydmljZU5hbWUgPSBTVkNfTkFNRTsKLSAg
ICAgICAgU2VydmljZVRhYmxlWzBdLmxwU2VydmljZVByb2MgPSAoTFBTRVJWSUNFX01BSU5fRlVO
Q1RJT04pU2VydmljZU1haW47Ci0KLSAgICAgICAgU2VydmljZVRhYmxlWzFdLmxwU2VydmljZU5h
bWUgPSBOVUxMOwotICAgICAgICBTZXJ2aWNlVGFibGVbMV0ubHBTZXJ2aWNlUHJvYyA9IE5VTEw7
Ci0KLSAgICAgICAgREJHUFJJTlQoKCJYZW5TdmM6IHN0YXJ0aW5nIGN0cmwgZGlzcGF0Y2hlciAi
KSk7Ci0KLSAgICAgICAgLy8gU3RhcnQgdGhlIGNvbnRyb2wgZGlzcGF0Y2hlciB0aHJlYWQgZm9y
IG91ciBzZXJ2aWNlCi0gICAgICAgIGlmICghU3RhcnRTZXJ2aWNlQ3RybERpc3BhdGNoZXIoU2Vy
dmljZVRhYmxlKSkKLSAgICAgICAgewotICAgICAgICAgICAgaW50IGVyciA9IEdldExhc3RFcnJv
cigpOwotICAgICAgICAgICAgaWYgKEdldExhc3RFcnJvcigpID09IEVSUk9SX0ZBSUxFRF9TRVJW
SUNFX0NPTlRST0xMRVJfQ09OTkVDVCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBE
QkdQUklOVCgoIlhlblN2YzogdW5hYmxlIHRvIHN0YXJ0IGN0cmwgZGlzcGF0Y2hlciAtICVkIiwg
R2V0TGFzdEVycm9yKCkpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBlbHNl
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIC8vIFdlIGdldCBoZXJlIHdoZW4gdGhlIHNlcnZpY2Ug
aXMgc2h1dCBkb3duLgotICAgICAgICB9Ci0gICAgfSBlbHNlIGlmICghc3RyY21wKGxwQ21kTGlu
ZSwgIi11IikgfHwgIXN0cmNtcChscENtZExpbmUsICJcIi11XCIiKSkgewotICAgICAgICBTZXJ2
aWNlVW5pbnN0YWxsKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgUHJpbnRVc2FnZSgpOwotICAg
IH0KLQotICAgIHJldHVybiAwOwotfQotCi12b2lkIEFjcXVpcmVTeXN0ZW1Qcml2aWxlZ2UoTFBD
VFNUUiBuYW1lKQotewotICAgIEhBTkRMRSB0b2tlbjsKLSAgICBUT0tFTl9QUklWSUxFR0VTIHRr
cDsKLSAgICBEV09SRCBlcnI7Ci0KLSAgICBMb29rdXBQcml2aWxlZ2VWYWx1ZShOVUxMLCBuYW1l
LCAmdGtwLlByaXZpbGVnZXNbMF0uTHVpZCk7Ci0gICAgdGtwLlByaXZpbGVnZUNvdW50ID0gMTsK
LSAgICB0a3AuUHJpdmlsZWdlc1swXS5BdHRyaWJ1dGVzID0gU0VfUFJJVklMRUdFX0VOQUJMRUQ7
Ci0gICAgaWYgKCFPcGVuUHJvY2Vzc1Rva2VuKEdldEN1cnJlbnRQcm9jZXNzKCksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgIFRPS0VOX0FESlVTVF9QUklWSUxFR0VTfFRPS0VOX1FVRVJZLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAmdG9rZW4pKSB7Ci0gICAgICAgIERCR1BSSU5UKCgi
RmFpbGVkIHRvIG9wZW4gbG9jYWwgdG9rZW4uXG4iKSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAg
QWRqdXN0VG9rZW5Qcml2aWxlZ2VzKHRva2VuLCBGQUxTRSwgJnRrcCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIE5VTEwsIDAsIE5VTEwpOwotICAgICAgICBlcnIgPSBHZXRMYXN0RXJy
b3IoKTsKLSAgICAgICAgaWYgKGVyciAhPSBFUlJPUl9TVUNDRVNTKSB7Ci0gICAgICAgICAgICBQ
cmludEVycm9yKCJBZGp1c3RUb2tlblByaXZpbGVnZXMiLCBlcnIpOwotICAgICAgICB9Ci0gICAg
fQotfQotCi1zdGF0aWMgdm9pZCBBY3F1aXJlU3lzdGVtU2h1dGRvd25Qcml2aWxlZ2Uodm9pZCkK
LXsKLSAgICBBY3F1aXJlU3lzdGVtUHJpdmlsZWdlKFNFX1NIVVRET1dOX05BTUUpOwotfQotCi1l
bnVtIFhTaHV0ZG93blR5cGUgewotICAgIFhTaHV0ZG93blBvd2Vyb2ZmLAotICAgIFhTaHV0ZG93
blJlYm9vdCwKLSAgICBYU2h1dGRvd25TdXNwZW5kLAotICAgIFhTaHV0ZG93blMzCi19OwotCi1z
dGF0aWMgQk9PTCBtYXliZVJlYm9vdCh2b2lkICpjdHgpCi17Ci0gICAgY2hhciAqc2h1dGRvd25f
dHlwZTsKLSAgICBCT09MIHJlczsKLSAgICBlbnVtIFhTaHV0ZG93blR5cGUgdHlwZTsKLSAgICBp
bnQgY250ciA9IDA7Ci0KLSAgICBYc0xvZygiQ2hlY2sgaWYgd2UgbmVlZCB0byBzaHV0ZG93biIp
OwotCi0gICAgaWYgKFhlbnN0b3JlUmVhZCgiY29udHJvbC9zaHV0ZG93biIsICZzaHV0ZG93bl90
eXBlKSA8IDApIHsKLSAgICAgICAgWHNMb2coIk5vIG5lZWQgdG8gc2h1dGRvd24iKTsKLSAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIFhzTG9nKCJTaHV0ZG93biB0eXBlICVzXG4iLCBz
aHV0ZG93bl90eXBlKTsKLSAgICBpZiAoc3RyY21wKHNodXRkb3duX3R5cGUsICJwb3dlcm9mZiIp
ID09IDAgfHwKLSAgICAgICAgc3RyY21wKHNodXRkb3duX3R5cGUsICJoYWx0IikgPT0gMCkgewot
ICAgICAgICB0eXBlID0gWFNodXRkb3duUG93ZXJvZmY7Ci0gICAgfSBlbHNlIGlmIChzdHJjbXAo
c2h1dGRvd25fdHlwZSwgInJlYm9vdCIpID09IDApIHsKLSAgICAgICAgdHlwZSA9IFhTaHV0ZG93
blJlYm9vdDsKLSAgICB9IGVsc2UgaWYgKHN0cmNtcChzaHV0ZG93bl90eXBlLCAiaGliZXJuYXRl
IikgPT0gMCkgewotICAgICAgICB0eXBlID0gWFNodXRkb3duU3VzcGVuZDsKLSAgICB9IGVsc2Ug
aWYgKHN0cmNtcChzaHV0ZG93bl90eXBlLCAiczMiKSA9PSAwKSB7Ci0gICAgICAgIHR5cGUgPSBY
U2h1dGRvd25TMzsKLSAgICB9IGVsc2UgewotICAgICAgICBEQkdQUklOVCgoIkJhZCBzaHV0ZG93
biB0eXBlICVzXG4iLCBzaHV0ZG93bl90eXBlKSk7Ci0gICAgICAgIGdvdG8gb3V0OwotICAgIH0K
LQotICAgIFhzTG9nKCJSZXBvcnQgU2h1dGRvd24gRXZlbnQiKTsKLSAgICAvKiBXZSB0cnkgdG8g
c2h1dGRvd24gZXZlbiBpZiB0aGlzIGZhaWxzLCBzaW5jZSBpdCBtaWdodCB3b3JrCi0gICAgICAg
YW5kIGl0IGNhbid0IGRvIGFueSBoYXJtLiAqLwotICAgIEFjcXVpcmVTeXN0ZW1TaHV0ZG93blBy
aXZpbGVnZSgpOwotCi0gICAgaWYgKGV2ZW50TG9nKSB7Ci0gICAgICAgIERXT1JEIGV2ZW50SWQ7
Ci0KLSAgICAgICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgICAgIGNhc2UgWFNodXRkb3duUG93ZXJv
ZmY6Ci0gICAgICAgICAgICBldmVudElkID0gRVZFTlRfWEVOVVNFUl9QT1dFUk9GRjsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFhTaHV0ZG93blJlYm9vdDoKLSAgICAgICAgICAg
IGV2ZW50SWQgPSBFVkVOVF9YRU5VU0VSX1JFQk9PVDsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIFhTaHV0ZG93blN1c3BlbmQ6Ci0gICAgICAgICAgICBldmVudElkID0gRVZFTlRf
WEVOVVNFUl9ISUJFUk5BVEU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBYU2h1
dGRvd25TMzoKLSAgICAgICAgICAgIGV2ZW50SWQgPSBFVkVOVF9YRU5VU0VSX1MzOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBYc0xvZygiRG8gdGhlIHNodXRk
b3duIik7Ci0KLSAgICAvKiBkbyB0aGUgc2h1dGRvd24gKi8KLSAgICBzd2l0Y2ggKHR5cGUpIHsK
LSAgICBjYXNlIFhTaHV0ZG93blBvd2Vyb2ZmOgotICAgIGNhc2UgWFNodXRkb3duUmVib290Ogot
ICAgICAgICBpZiAoV2luZG93c1ZlcnNpb24gPj0gMHg1MDAgJiYgV2luZG93c1ZlcnNpb24gPCAw
eDYwMCkKLSAgICAgICAgewotICAgICAgICAgICAgLyogV2luZG93cyAyMDAwIEluaXRpYXRlU3lz
dGVtU2h1dGRvd25FeCBpcyBmdW5ueSBpbgotICAgICAgICAgICAgICAgdmFyaW91cyB3YXlzIChl
LmcuIHNvbWV0aW1lcyBmYWlscyB0byBwb3dlciBvZmYgYWZ0ZXIKLSAgICAgICAgICAgICAgIHNo
dXRkb3duLCBlc3BlY2lhbGx5IGlmIHRoZSBsb2NhbCB0ZXJtaW5hbCBpcyBsb2NrZWQsCi0gICAg
ICAgICAgICAgICBub3QgZG9pbmcgYW55dGhpbmcgaWYgdGhlcmUncyBub2JvZHkgbG9nZ2VkIG9u
LCBldGMuKS4KLSAgICAgICAgICAgICAgIEV4aXRXaW5kb3dzRXggc2VlbXMgdG8gYmUgbW9yZSBy
ZWxpYWJsZSwgc28gdXNlIGl0Ci0gICAgICAgICAgICAgICBpbnN0ZWFkLiAqLwotICAgICAgICAg
ICAgLyogWFhYIEkgZG9uJ3QgcmVhbGx5IHVuZGVyc3RhbmQgd2h5Ci0gICAgICAgICAgICAgICBJ
bml0aWF0ZVN5c3RlbVNodXRkb3duRXggYmVoYXZlcyBzbyBiYWRseS4gKi8KLSAgICAgICAgICAg
IC8qIElmIHRoaXMgaXMgYSBsZWdhY3kgaGFsIHRoZW4gdXNlIEVXWF9TSFVURE9XTiB3aGVuIHNo
dXR0aW5nCi0gICAgICAgICAgICAgICBkb3duIGluc3RlYWQgb2YgRVdYX1BPV0VST0ZGLiAqLwot
ICAgICAgICAvKiBTaW1pbGFyIHByb2JsZW0gb24gWFAuIFNodXRkb3duL1JlYm9vdCB3aWxsIGhh
bmcgdW50aWwgdGhlIFdlbGNvbWUKLSAgICAgICAgc2NyZWVuIHNjcmVlbnNhdmVyIGlzIGRpc21p
c3NlZCBieSB0aGUgZ3Vlc3QgKi8KLSNwcmFnbWEgd2FybmluZyAoZGlzYWJsZSA6IDI4MTU5KQot
ICAgICAgICAgICAgcmVzID0gRXhpdFdpbmRvd3NFeCgodHlwZSA9PSBYU2h1dGRvd25SZWJvb3Qg
PyAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVXWF9SRUJPT1QgOiAKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMZWdhY3lIYWwgPyAKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFV1hfU0hVVERPV04gOgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVXWF9QT1dFUk9GRikpfAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBFV1hfRk9SQ0UsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFNIVEROX1JFQVNPTl9NQUpPUl9PVEhFUnwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgU0hURE5fUkVBU09OX01JTk9SX0VOVklST05NRU5UIHwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgU0hURE5fUkVBU09OX0ZMQUdfUExBTk5FRCk7Ci0jcHJhZ21h
IHdhcm5pbmcgKGRlZmF1bHQ6IDI4MTU5KQotICAgICAgICAgICAgaWYgKCFyZXMpIHsKLSAgICAg
ICAgICAgICAgICBQcmludEVycm9yKCJFeGl0V2luZG93c0V4Iik7Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgIGlmIChYZW5zdG9yZVJlbW92ZSgiY29udHJvbC9zaHV0ZG93
biIpKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0gZWxzZSB7Ci0jcHJhZ21hIHdhcm5pbmcgKGRpc2FibGUgOiAyODE1OSkKLSAgICAg
ICAgICAgIHJlcyA9IEluaXRpYXRlU3lzdGVtU2h1dGRvd25FeCgKLSAgICAgICAgICAgICAgICBO
VUxMLAotICAgICAgICAgICAgICAgIE5VTEwsCi0gICAgICAgICAgICAgICAgMCwKLSAgICAgICAg
ICAgICAgICBUUlVFLAotICAgICAgICAgICAgICAgIHR5cGUgPT0gWFNodXRkb3duUmVib290LAot
ICAgICAgICAgICAgICAgIFNIVEROX1JFQVNPTl9NQUpPUl9PVEhFUiB8Ci0gICAgICAgICAgICAg
ICAgU0hURE5fUkVBU09OX01JTk9SX0VOVklST05NRU5UIHwKLSAgICAgICAgICAgICAgICBTSFRE
Tl9SRUFTT05fRkxBR19QTEFOTkVEKTsKLSNwcmFnbWEgd2FybmluZyAoZGVmYXVsdDogMjgxNTkp
Ci0gICAgICAgICAgICBpZiAoIXJlcykgewotICAgICAgICAgICAgICAgIFByaW50RXJyb3IoIklu
aXRpYXRlU3lzdGVtU2h1dGRvd25FeCIpOwotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKFhlbnN0b3JlUmVtb3Zl
KCJjb250cm9sL3NodXRkb3duIikpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBicmVhazsKLSAgICBjYXNlIFhTaHV0
ZG93blN1c3BlbmQ6Ci0gICAgICAgIGlmIChYZW5zdG9yZVByaW50ZiAoImNvbnRyb2wvaGliZXJu
YXRpb24tc3RhdGUiLCAic3RhcnRlZCIpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICAvKiBFdmVuIGlmIHdlIHRoaW5rIGhpYmVybmF0aW9uIGlzIGRpc2FibGVkLCB0cnkgaXQg
YW55d2F5LgotICAgICAgICAgICBJdCdzIG5vdCBsaWtlIGl0IGNhbiBkbyBhbnkgaGFybS4gKi8K
LSAgICAgICAgcmVzID0gU2V0U3lzdGVtUG93ZXJTdGF0ZShGQUxTRSwgRkFMU0UpOwotICAgICAg
ICBpZiAoWGVuc3RvcmVSZW1vdmUgKCJjb250cm9sL3NodXRkb3duIikpCi0gICAgICAgIHsgCi0g
ICAgICAgICAgICByZXR1cm4gZmFsc2U7ICAgIAotICAgICAgICB9Ci0gICAgICAgIGlmICghcmVz
KSB7Ci0gICAgICAgICAgICAvKiBUZWxsIHRoZSB0b29scyB0aGF0IHdlJ3ZlIGZhaWxlZC4gKi8K
LSAgICAgICAgICAgIFByaW50RXJyb3IoIlNldFN5c3RlbVBvd2VyU3RhdGUiKTsKLSAgICAgICAg
ICAgIGlmIChYZW5zdG9yZVByaW50ZiAoImNvbnRyb2wvaGliZXJuYXRpb24tc3RhdGUiLCAiZmFp
bGVkIikpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgWFNodXRkb3duUzM6Ci0gICAgICAgIGlmIChYZW5zdG9yZVByaW50
ZiAoImNvbnRyb2wvczMtc3RhdGUiLCAic3RhcnRlZCIpKQotICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICByZXMgPSBTZXRTdXNwZW5kU3RhdGUoRkFMU0UsIFRSVUUsIEZBTFNFKTsK
LSAgICAgICAgWGVuc3RvcmVSZW1vdmUgKCJjb250cm9sL3NodXRkb3duIik7Ci0gICAgICAgIGlm
ICghcmVzKSB7Ci0gICAgICAgICAgICBQcmludEVycm9yKCJTZXRTdXNwZW5kU3RhdGUiKTsKLSAg
ICAgICAgICAgIGlmIChYZW5zdG9yZVByaW50ZiAoImNvbnRyb2wvczMtc3RhdGUiLCAiZmFpbGVk
IikpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgICAgIGJy
ZWFrOwotICAgIH0KLQotb3V0OgotICAgIFhlbnN0b3JlRnJlZShzaHV0ZG93bl90eXBlKTsKLSAg
ICByZXR1cm4gdHJ1ZTsKLX0KLQotc3RhdGljIGJvb2wgcmVnaXN0cnlNYXRjaFN0cmluZyhIS0VZ
ICAgIGhLZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExQQ1RTVFIgbHBWYWx1
ZU5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExQQ1RTVFIgY29tcGFyZXN0
cmluZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCAgICBtYXRjaGNhc2Up
Ci17Ci0gICAgYm9vbCAgICByZXN1bHQgPSBmYWxzZTsKLSAgICBMT05HICAgIGJ1ZmZlcnNpemUg
PSBzaXplb2YoVENIQVIpKjI1NjsKLSAgICBUQ0hBUiAgICpvdXRzdHJpbmcgPSBOVUxMOwotICAg
IERXT1JEICBvdXRzdHJpbmdzaXplOwotICAgIExPTkcgICAgc3RhdHVzOwotICAgIGRvIHsKLSAg
ICAgICAgb3V0c3RyaW5nc2l6ZSA9IGJ1ZmZlcnNpemU7Ci0gICAgICAgIG91dHN0cmluZyA9IChU
Q0hBUiAqKXJlYWxsb2Mob3V0c3RyaW5nLCBvdXRzdHJpbmdzaXplKTsKLQotICAgICAgICBzdGF0
dXMgPSBSZWdRdWVyeVZhbHVlRXgoaEtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxwVmFsdWVOYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoTFBCWVRFKSBvdXRzdHJpbmcsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAmb3V0c3RyaW5nc2l6ZSk7Ci0gICAgICAgIGJ1ZmZlcnNpemUgKj0gMjsK
LSAgICB9IHdoaWxlIChzdGF0dXMgPT0gRVJST1JfTU9SRV9EQVRBKTsKLQotICAgIGlmIChzdGF0
dXMgPT0gRVJST1JfRklMRV9OT1RfRk9VTkQpCi0gICAgICAgIGdvdG8gZG9uZTsKLQotICAgIGlm
IChtYXRjaGNhc2UpIHsKLSAgICAgICAgaWYgKF90Y3NuY21wKGNvbXBhcmVzdHJpbmcsIG91dHN0
cmluZywgb3V0c3RyaW5nc2l6ZSkpCi0gICAgICAgICAgICBnb3RvIGRvbmU7Ci0gICAgfQotICAg
IGVsc2UgewotICAgICAgICBpZiAoX3Rjc25pY29sbChjb21wYXJlc3RyaW5nLCBvdXRzdHJpbmcs
IG91dHN0cmluZ3NpemUpKQotICAgICAgICAgICAgZ290byBkb25lOwotICAgIH0KLQotICAgIHJl
c3VsdCA9IHRydWU7Ci0KLWRvbmU6Ci0gICAgZnJlZShvdXRzdHJpbmcpOwotCi0gICAgcmV0dXJu
IHJlc3VsdDsKLX0KLQotc3RhdGljIGJvb2wKLWFkanVzdFhlblRpbWVUb1VUQyhGSUxFVElNRSAq
bm93KQotewotICAgIERXT1JEICAgICAgICAgICBkd3RpbWVvZmZzZXQ7Ci0gICAgbG9uZyAgICAg
ICAgICAgIHRpbWVvZmZzZXQ7Ci0gICAgY2hhciAgICAgICAgICAgICp2bTsKLSAgICBjaGFyICAg
ICAgICAgICAgKnJ0Y2tleTsKLSAgICBMQVJHRV9JTlRFR0VSICAgbG9uZ29mZnNldDsKLSAgICBV
TEFSR0VfSU5URUdFUiAgbG9uZ25vdzsKLSAgICBzaXplX3QgICAgICAgICAgdm1sZW47Ci0gICAg
Ci0gICAgLy8gWGVuVGltZSBpcyBhc3N1bWVkIHRvIGJlIGluIFVUQywgc28gd2UgbmVlZCB0byBy
ZW1vdmUgYW55Ci0gICAgLy8gb2Zmc2V0cyB0aGF0IGFyZSBhcHBsaWVkIHRvIGl0Ci0KLSAgICBf
X3RyeSB7Ci0gICAgICAgIHZtbGVuID0gWGVuc3RvcmVSZWFkKCJ2bSIsICZ2bSk7Ci0gICAgICAg
IGlmICh2bWxlbiA8PSAwKQotICAgICAgICAgICAgZ290byBmYWlsX3JlYWR2bTsKLSAgICB9Ci0g
ICAgX19leGNlcHQoRVhDRVBUSU9OX0VYRUNVVEVfSEFORExFUikKLSAgICB7Ci0gICAgICAgIGdv
dG8gZmFpbF9yZWFkdm07Ci0gICAgfQotCi0gICAgcnRja2V5ID0gUHJpbnRmU3RyaW5nKCIlcy9y
dGMvdGltZW9mZnNldCIsIHZtKTsKLSAgICBpZiAocnRja2V5ID09IE5VTEwpCi0gICAgICAgIGdv
dG8gZmFpbF9ydGNrZXk7Ci0KLSAgICBfdHJ5IHsKLSAgICAgICAgQk9PTCBydGNyZWFkd29ya2Vk
OwotICAgICAgICBfX3RyeSB7Ci0gICAgICAgICAgICBydGNyZWFkd29ya2VkID0gWGVuc3RvcmVS
ZWFkRHdvcmQocnRja2V5LCAmZHd0aW1lb2Zmc2V0KTsKLSAgICAgICAgfQotICAgICAgICBfX2V4
Y2VwdChFWENFUFRJT05fRVhFQ1VURV9IQU5ETEVSKSB7Ci0gICAgICAgICAgICBydGNyZWFkd29y
a2VkID0gZmFsc2U7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFydGNyZWFkd29ya2VkKSB7Ci0g
ICAgICAgICAgICBpZiAoIVhlbnN0b3JlUmVhZER3b3JkKCJwbGF0Zm9ybS90aW1lb2Zmc2V0Iiwg
JmR3dGltZW9mZnNldCkpCi0gICAgICAgICAgICAgICAgZ290byBmYWlsX3BsYXRmb3JtdGltZW9m
ZnNldDsKLSAgICAgICAgfQotICAgIH0KLSAgICBfX2V4Y2VwdChFWENFUFRJT05fRVhFQ1VURV9I
QU5ETEVSKQotICAgIHsKLSAgICAgICAgZ290byBmYWlsX3BsYXRmb3JtdGltZW9mZnNldDsKLSAg
ICB9Ci0gICAgdGltZW9mZnNldCA9IChsb25nKWR3dGltZW9mZnNldDsKLQotICAgIC8vQ29udmVy
dCBvZmZzZXQgZnJvbSBzZWNvbmRzIHRvIG5hbm9zZWNvbmRzCi0gICAgbG9uZ29mZnNldC5RdWFk
UGFydCA9ICAoTE9OR0xPTkcpdGltZW9mZnNldDsKLSAgICBsb25nb2Zmc2V0LlF1YWRQYXJ0ID0g
bG9uZ29mZnNldC5RdWFkUGFydCAqIDEwMDAwMDAwOwotICAgIAotICAgIC8vIFN1YnRyYWN0IG5h
bm9zZWNvbmQgdGltZW9mZnNldCBmcm9tIG5vdwotICAgIGxvbmdub3cuTG93UGFydCA9IG5vdy0+
ZHdMb3dEYXRlVGltZTsKLSAgICBsb25nbm93LkhpZ2hQYXJ0ID0gbm93LT5kd0hpZ2hEYXRlVGlt
ZTsKLSAgICBsb25nbm93LlF1YWRQYXJ0IC09IGxvbmdvZmZzZXQuUXVhZFBhcnQ7Ci0gICAgbm93
LT5kd0xvd0RhdGVUaW1lID0gbG9uZ25vdy5Mb3dQYXJ0OwotICAgIG5vdy0+ZHdIaWdoRGF0ZVRp
bWUgPSBsb25nbm93LkhpZ2hQYXJ0OwotCi0gICAgRnJlZVN0cmluZyhydGNrZXkpOwotICAgIFhz
RnJlZSh2bSk7Ci0gICAgcmV0dXJuIHRydWU7Ci0KLWZhaWxfcGxhdGZvcm10aW1lb2Zmc2V0Ogot
ICAgIFhzTG9nKCIlczogUmVhZCBwbGF0Zm9ybSB0aW1lIG9mZnNldCIsIF9fRlVOQ1RJT05fXyk7
Ci0gICAgRnJlZVN0cmluZyhydGNrZXkpOwotCi1mYWlsX3J0Y2tleToKLSAgICBYc0xvZygiJXM6
IFJlYWQgUlRDIEtleSIsIF9fRlVOQ1RJT05fXyk7Ci0gICAgWHNGcmVlKHZtKTsKLQotZmFpbF9y
ZWFkdm06Ci0gICAgWHNMb2coIiVzOiBSZWFkIFZNIEtleSIsIF9fRlVOQ1RJT05fXyk7Ci0gICAg
cmV0dXJuIGZhbHNlOwotfQotCi1zdGF0aWMgYm9vbCBob3N0dGltZUlzVVRDKCkKLXsKLSAgICBI
S0VZICAgICAgICBJbnN0YWxsUmVnS2V5OwotICAgIGJvb2wgICAgICAgIHV0YyA9IGZhbHNlOwot
ICAgIGlmIChSZWdPcGVuS2V5RXgoSEtFWV9MT0NBTF9NQUNISU5FLCAKLSAgICAgICAgICAgICAg
ICAgICAgIFhFTlRPT0xTX0lOU1RBTExfUkVHX0tFWSwKLSAgICAgICAgICAgICAgICAgICAgIDAs
Ci0gICAgICAgICAgICAgICAgICAgICBLRVlfQUxMX0FDQ0VTUywKLSAgICAgICAgICAgICAgICAg
ICAgICZJbnN0YWxsUmVnS2V5KSAhPSBFUlJPUl9TVUNDRVNTKQotICAgICAgICBnb3RvIGZhaWxf
cmVnaXN0cnlrZXk7Ci0gICAgCi0jaWZkZWYgX1dJTjY0Ci0gICAgCi0gICAgaWYgKHJlZ2lzdHJ5
TWF0Y2hTdHJpbmcoSW5zdGFsbFJlZ0tleSwgIkhvc3RUaW1lIiwgIlVUQyIsIGZhbHNlKSkgCi0g
ICAgewotICAgICAgICAgdXRjID0gdHJ1ZTsKLSAgICAgICAgIGdvdG8gZG9uZTsKLSAgICB9Ci0K
LSAgICBSZWdDbG9zZUtleShJbnN0YWxsUmVnS2V5KTsKLSAgICBpZiAoUmVnT3BlbktleUV4KEhL
RVlfTE9DQUxfTUFDSElORSwgCi0gICAgICAgICAgICAgICAgICAgICBYRU5UT09MU19JTlNUQUxM
X1JFR19LRVk2NCwKLSAgICAgICAgICAgICAgICAgICAgIDAsCi0gICAgICAgICAgICAgICAgICAg
ICBLRVlfQUxMX0FDQ0VTUywKLSAgICAgICAgICAgICAgICAgICAgICZJbnN0YWxsUmVnS2V5KSAh
PSBFUlJPUl9TVUNDRVNTKQotICAgICAgICBnb3RvIGZhaWxfcmVnaXN0cnlrZXk7Ci0KLSNlbmRp
ZiAKLQotICAgIGlmIChyZWdpc3RyeU1hdGNoU3RyaW5nKEluc3RhbGxSZWdLZXksICJIb3N0VGlt
ZSIsICJVVEMiLCBmYWxzZSkpIAotICAgIHsKLSAgICAgICAgdXRjPXRydWU7Ci0gICAgfQotCi0j
aWZkZWYgX1dJTjY0Ci1kb25lOgotI2VuZGlmIAotICAgIFJlZ0Nsb3NlS2V5KEluc3RhbGxSZWdL
ZXkpOwotICAgIHJldHVybiB1dGM7Ci0KLWZhaWxfcmVnaXN0cnlrZXk6ICAgIAotICAgIFhzTG9n
KCIlczogT3BlbiBSZWdpc3RyeSBLZXkiLCBfX0ZVTkNUSU9OX18pOwotCi0gICAgcmV0dXJuIGZh
bHNlOwotfQotCi1zdGF0aWMgdm9pZAotc2V0VGltZVRvWGVuVGltZSh2b2lkKQotewotICAgIEZJ
TEVUSU1FICAgIG5vdyA9IHswfTsKLSAgICBTWVNURU1USU1FICBzeXNfdGltZTsKLSAgICBTWVNU
RU1USU1FICBjdXJyZW50X3RpbWU7Ci0gICAgYm9vbCAgICAgICAgdXRjPWZhbHNlOwotICAgIFhz
TG9nKCJTZXQgdGltZSB0byBYZW5UaW1lIik7Ci0KLSAgICBHZXRYZW5UaW1lKCZub3cpOwotICAg
IGlmICgobm93LmR3TG93RGF0ZVRpbWUgPT0gMCkgJiYgKG5vdy5kd0hpZ2hEYXRlVGltZSA9PSAw
KSkgewotICAgICAgICBYc0xvZygiQ2Fubm90IHNldCBzeXN0ZW0gdGltZSB0byB4ZW50aW1lLCB1
bmFibGUgdG8gY29udGFjdCBXTUkiKTsKLSAgICAgICAgZ290byBmYWlsX3JlYWR0aW1lOwotICAg
IH0KLQotICAgIHV0YyA9IGhvc3R0aW1lSXNVVEMoKTsKLQotICAgIGlmICh1dGMpIHsKLSAgICAg
ICAgWHNMb2coIlRyeSBVVEMiKTsKLSAgICAgICAgaWYgKCFhZGp1c3RYZW5UaW1lVG9VVEMoJm5v
dykpCi0gICAgICAgICAgICBnb3RvIGZhaWxfYWRqdXN0dGltZTsKLSAgICB9Ci0KLSAgICBpZiAo
IUZpbGVUaW1lVG9TeXN0ZW1UaW1lKCZub3csICZzeXNfdGltZSkpIHsKLSAgICAgICAgWHNMb2co
IkdvdWxkIG5vdCBjb252ZXJ0IGZpbGUgdGltZSB0byBzeXN0ZW0gdGltZSIpOwotICAgICAgICBQ
cmludEVycm9yKCJGaWxlVGltZVRvU3lzdGVtVGltZSgpIik7Ci0gICAgICAgIERCR1BSSU5UKCgi
RmlsZVRpbWVUb1N5c3RlbVRpbWUoJXguJXgpXG4iLAotICAgICAgICAgICAgICAgICAgbm93LmR3
TG93RGF0ZVRpbWUsIG5vdy5kd0hpZ2hEYXRlVGltZSkpOwotICAgIH0gZWxzZSB7Ci0gICAgICAg
IEdldExvY2FsVGltZSgmY3VycmVudF90aW1lKTsKLSAgICAgICAgWHNMb2coIlRpbWUgaXMgbm93
ICAlZC4lZC4lZCAlZDolZDolZC4lZCIsCi0gICAgICAgICAgICAgIGN1cnJlbnRfdGltZS53WWVh
ciwgY3VycmVudF90aW1lLndNb250aCwgY3VycmVudF90aW1lLndEYXksCi0gICAgICAgICAgICAg
IGN1cnJlbnRfdGltZS53SG91ciwgY3VycmVudF90aW1lLndNaW51dGUsIGN1cnJlbnRfdGltZS53
U2Vjb25kLAotICAgICAgICAgICAgICBjdXJyZW50X3RpbWUud01pbGxpc2Vjb25kcyk7Ci0gICAg
ICAgIFhzTG9nKCJTZXQgdGltZSB0byAlZC4lZC4lZCAlZDolZDolZC4lZCIsCi0gICAgICAgICAg
ICAgIHN5c190aW1lLndZZWFyLCBzeXNfdGltZS53TW9udGgsIHN5c190aW1lLndEYXksCi0gICAg
ICAgICAgICAgIHN5c190aW1lLndIb3VyLCBzeXNfdGltZS53TWludXRlLCBzeXNfdGltZS53U2Vj
b25kLAotICAgICAgICAgICAgICBzeXNfdGltZS53TWlsbGlzZWNvbmRzKTsKLSAgICAgICAgaWYg
KHV0YykgewotICAgICAgICAgICAgaWYgKCFTZXRTeXN0ZW1UaW1lKCZzeXNfdGltZSkpCi0gICAg
ICAgICAgICAgICAgUHJpbnRFcnJvcigiU2V0U3lzdGVtVGltZSgpIik7Ci0gICAgICAgIH0KLSAg
ICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBpZiAoIVNldExvY2FsVGltZSgmc3lzX3RpbWUpKQot
ICAgICAgICAgICAgICAgIFByaW50RXJyb3IoIlNldExvY2FsVGltZSgpIik7Ci0gICAgICAgIH0K
LSAgICB9Ci0KLSAgICByZXR1cm47Ci0KLWZhaWxfYWRqdXN0dGltZToKLSAgICBYc0xvZygiJXM6
IEFkanVzdCB0aW1lIiwgX19GVU5DVElPTl9fKTsKLQotZmFpbF9yZWFkdGltZToKLSAgICBYc0xv
ZygiJXM6IFJlYWRUaW1lIiwgX19GVU5DVElPTl9fKTsKLX0KLQotLyogV2UgbmVlZCB0byByZXN5
bmMgdGhlIGNsb2NrIHdoZW4gd2UgcmVjb3ZlciBmcm9tIHN1c3BlbmQvcmVzdW1lLiAqLwotc3Rh
dGljIHZvaWQKLWZpbmlzaFN1c3BlbmQodm9pZCkKLXsKLSAgICBEQkdQUklOVCgoIkNvbWluZyBi
YWNrIGZyb20gc3VzcGVuZC5cbiIpKTsKLSAgICBzZXRUaW1lVG9YZW5UaW1lKCk7Ci19Ci0KLQot
Ci0vLwotLy8gTWFpbiBsb29wCi0vLwotQk9PTCBSdW4oKQotewotICAgIGJvb2wgZXhpdD1mYWxz
ZTsKLSAgICBQQ0hBUiBwUFZBZGRvbnNJbnN0YWxsZWQgPSBOVUxMOwotCi0gICAgSEFORExFIHN1
c3BlbmRFdmVudDsKLQotICAgIGludCBjbnRyID0gMDsKLSAgICBzdHJ1Y3Qgd2F0Y2hfZmVhdHVy
ZV9zZXQgZmVhdHVyZXM7Ci0gICAgQk9PTCBzbmFwID0gRkFMU0U7Ci0KLSAgICBPdXRwdXREZWJ1
Z1N0cmluZygiVHJ5aW5nIHRvIGNvbm5lY3QgdG8gV01JXG4iKTsKLSAgICB3aGlsZSAoIUNvbm5l
Y3RUb1dNSSgpKSB7Ci0gICAgICAgIE91dHB1dERlYnVnU3RyaW5nKCJVbmFibGUgdG8gY29ubmVj
dCB0byBXTUksIHNsZWVwaW5nXG4iKTsKLSAgICAgICAgaWYgKFdhaXRGb3JTaW5nbGVPYmplY3Qo
aFNlcnZpY2VFeGl0RXZlbnQsIDEwMDAqMTApID09IFdBSVRfT0JKRUNUXzApIHsKLSAgICAgICAg
ICAgIGV4aXQgPSB0cnVlOwotICAgICAgICAgICAgcmV0dXJuIGV4aXQ7Ci0gICAgICAgIH0KLSAg
ICB9Ci0gICAgd2hpbGUgKEluaXRYU0FjY2Vzc29yKCk9PWZhbHNlKSB7Ci0gICAgICAgIE91dHB1
dERlYnVnU3RyaW5nKCJVbmFibGUgdG8gaW5pdGlhbGlzZSBXTUkgc2Vzc2lvbiwgc2xlZXBpbmdc
biIpOwotICAgICAgICBpZiAoV2FpdEZvclNpbmdsZU9iamVjdChoU2VydmljZUV4aXRFdmVudCwg
MTAwMCoxMCkgPT0gV0FJVF9PQkpFQ1RfMCkgewotICAgICAgICAgICAgZXhpdCA9IHRydWU7Ci0g
ICAgICAgICAgICByZXR1cm4gZXhpdDsKLSAgICAgICAgfQotICAgIH0KLSAgICBYc0xvZygiR3Vl
c3QgYWdlbnQgbGl0ZSBtYWluIGxvb3Agc3RhcnRpbmciKTsKLQotICAgIGlmIChldmVudExvZyA9
PSBOVUxMKQotICAgICAgICBYc0xvZygiRXZlbnQgbG9nIHdhcyBub3QgaW5pdGlhbGlzZWQiKTsK
LSAgICAKLSAgICBzZXRUaW1lVG9YZW5UaW1lKCk7Ci0KLSAgICBtZW1zZXQoJmZlYXR1cmVzLCAw
LCBzaXplb2YoZmVhdHVyZXMpKTsKLQotICAgIEhBTkRMRSB3bWllcnJvckV2ZW50ID0gQ3JlYXRl
RXZlbnQoTlVMTCwgRkFMU0UsIEZBTFNFLCBOVUxMKTsKLSAgICBpZiAoIXdtaWVycm9yRXZlbnQp
IHsKLSAgICAgICAgUHJpbnRFcnJvcigiQ3JlYXRlRXZlbnQoKSB3bWllcnJvckV2ZW50Iik7Ci0g
ICAgICAgIHJldHVybiBleGl0OwotICAgIH0KLSAgIAotCi0gICAgWHNMb2coIkFib3V0IHRvIGFk
ZCBmZWF0dXJlIHNodXRkb3duIik7Ci0gICAgaWYgKCFBZGRGZWF0dXJlKCZmZWF0dXJlcywgImNv
bnRyb2wvc2h1dGRvd24iLCAiY29udHJvbC9mZWF0dXJlLXNodXRkb3duIiwgCi0gICAgICAgICAg
ICAgICAgICAgICJzaHV0ZG93biIsIG1heWJlUmVib290LCBOVUxMLCB3bWllcnJvckV2ZW50KSkg
ewotICAgICAgICByZXR1cm4gZXhpdDsKLSAgICB9Ci0KLSAgICBzdXNwZW5kRXZlbnQgPSBDcmVh
dGVFdmVudChOVUxMLCBGQUxTRSwgRkFMU0UsIE5VTEwpOwotICAgIGlmICghc3VzcGVuZEV2ZW50
KSB7Ci0gICAgICAgIFByaW50RXJyb3IoIkNyZWF0ZUV2ZW50KCkgc3VzcGVuZEV2ZW50Iik7Ci0g
ICAgICAgIHJldHVybiBleGl0OwotICAgIH0KLSAgICAKLSAgICBpZiAoTGlzdGVuU3VzcGVuZChz
dXNwZW5kRXZlbnQsIHdtaWVycm9yRXZlbnQpIDwgMCkgewotICAgICAgICBQcmludEVycm9yKCJM
aXN0ZW5TdXNwZW5kKCkiKTsKLSAgICAgICAgQ2xvc2VIYW5kbGUoc3VzcGVuZEV2ZW50KTsKLSAg
ICAgICAgc3VzcGVuZEV2ZW50ID0gTlVMTDsKLSAgICAgICAgcmV0dXJuIGV4aXQ7Ci0gICAgfQot
Ci0KLSAgICBYc0xvZygiQWJvdXQgdG8gYWR2ZXJ0aXNlIGZlYXR1cmVzIik7Ci0gICAgQWR2ZXJ0
aXNlRmVhdHVyZXMoJmZlYXR1cmVzKTsKLSAgICAKLSAgICBYc0xvZygiQWJvdXQgdG8ga2ljayB4
YXBpICIpOwotICAgIFhlbnN0b3JlS2lja1hhcGkoKTsKLQotICAgIHdoaWxlICgxKQotICAgIHsK
LSAgICAgICAgRFdPUkQgc3RhdHVzOwotICAgICAgICBpbnQgbnJfaGFuZGxlcyA9IDE7Ci0gICAg
ICAgIEhBTkRMRSBoYW5kbGVzWzMgKyBNQVhfRkVBVFVSRVNdOwotICAgICAgICB1bnNpZ25lZCB4
OwotCi0gICAgICAgIGhhbmRsZXNbMF0gPSBoU2VydmljZUV4aXRFdmVudDsKLSAgICAgICAgaWYg
KHdtaWVycm9yRXZlbnQpCi0gICAgICAgICAgICBoYW5kbGVzW25yX2hhbmRsZXMrK10gPSB3bWll
cnJvckV2ZW50OwotICAgICAgICBpZiAoc3VzcGVuZEV2ZW50KQotICAgICAgICAgICAgaGFuZGxl
c1tucl9oYW5kbGVzKytdID0gc3VzcGVuZEV2ZW50OwotICAgICAgICBmb3IgKHggPSAwOyB4IDwg
ZmVhdHVyZXMubnJfZmVhdHVyZXM7IHgrKykKLSAgICAgICAgICAgIGhhbmRsZXNbbnJfaGFuZGxl
cysrXSA9IGZlYXR1cmVzLmZlYXR1cmVzW3hdLndhdGNoLT5ldmVudDsKLQotICAgICAgICBYc0xv
Zygid2luIGFnZW50IGdvaW5nIHRvIHNsZWVwIik7Ci0gICAgICAgIHN0YXR1cyA9IFdhaXRGb3JN
dWx0aXBsZU9iamVjdHMobnJfaGFuZGxlcywgaGFuZGxlcywgRkFMU0UsIElORklOSVRFKTsKLSAg
ICAgICAgWHNMb2coIndpbiBhZ2VudCB3b2tlIHVwIGZvciAlZCIsIHN0YXR1cyk7Ci0KLSAgICAg
ICAgLyogV0FJVF9PQkpFQ1RfMCBoYXBwZW5zIHRvIGJlIDAsIHNvIHRoZSBjb21waWxlciBnZXRz
IHNoaXJ0eQotICAgICAgICAgICBhYm91dCBzdGF0dXMgPj0gV0FJVF9PQkpFQ1RfMCAoc2luY2Ug
c3RhdHVzIGlzIHVuc2lnbmVkKS4KLSAgICAgICAgICAgVGhpcyBpcyBtb3JlIG9idmlvdXNseSBj
b3JyZWN0IHRoYW4gdGhlIGNvbXBpbGVyLWZyaWVuZGx5Ci0gICAgICAgICAgIHZlcnNpb24sIHRo
b3VnaCwgc28ganVzdCBkaXNhYmxlIHRoZSB3YXJuaW5nLiAqLwotCi0jcHJhZ21hIHdhcm5pbmcg
KGRpc2FibGU6IDQyOTYpCi0gICAgICAgIGlmIChzdGF0dXMgPj0gV0FJVF9PQkpFQ1RfMCAmJgot
ICAgICAgICAgICAgc3RhdHVzIDwgV0FJVF9PQkpFQ1RfMCArIG5yX2hhbmRsZXMpCi0jcHJhZ21h
IHdhcm5pbmcgKGRlZmF1bHQ6IDQyOTYpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEhBTkRMRSBl
dmVudCA9IGhhbmRsZXNbc3RhdHVzIC0gV0FJVF9PQkpFQ1RfMF07Ci0gICAgICAgICAgICBpZiAo
ZXZlbnQgPT0gaFNlcnZpY2VFeGl0RXZlbnQpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgWHNMb2coInNlcnZpY2UgZXhpdCBldmVudCIpOwotICAgICAgICAgICAgICAgIGV4aXQgPSB0
cnVlOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
ZWxzZSBpZiAoZXZlbnQgPT0gc3VzcGVuZEV2ZW50KQotICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIGlmICghUmVwb3J0RXZlbnQoZXZlbnRMb2csIEVWRU5UTE9HX1NVQ0NFU1MsIDAsIEVW
RU5UX1hFTlVTRVJfVU5TVVNQRU5ERUQsIE5VTEwsIDAsIDAsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTlVMTCwgTlVMTCkpIHsKLSAgICAgICAgICAgICAgICAgICAgWHNMb2coIkNhbm5v
dCBzZW5kIHRvIGV2ZW50IGxvZyAleCIsR2V0TGFzdEVycm9yKCkpOyAgICAKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgWHNMb2coIlN1c3BlbmQgZXZlbnQiKTsKLSAgICAgICAg
ICAgICAgICBmaW5pc2hTdXNwZW5kKCk7Ci0gICAgICAgICAgICAgICAgQWR2ZXJ0aXNlRmVhdHVy
ZXMoJmZlYXR1cmVzKTsKLSAgICAgICAgICAgICAgICBYZW5zdG9yZUtpY2tYYXBpKCk7Ci0gICAg
ICAgICAgICAgICAgWHNMb2coIkhhbmRsZWQgc3VzcGVuZCBldmVudCIpOwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgZWxzZSBpZiAoZXZlbnQgPT0gd21pZXJyb3JFdmVudCkKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICBSZXBvcnRFdmVudChldmVudExvZywgRVZFTlRMT0dfU1VD
Q0VTUywgMCwgRVZFTlRfWEVOVVNFUl9XTUksIE5VTEwsIDAsIDAsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTlVMTCwgTlVMTCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
Qk9PTCBmYWlsID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgZm9yICh4ID0gMDsgeCA8IGZlYXR1
cmVzLm5yX2ZlYXR1cmVzOyB4KyspIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGZlYXR1cmVz
LmZlYXR1cmVzW3hdLndhdGNoLT5ldmVudCA9PSBldmVudCkgewotICAgICAgICAgICAgICAgICAg
ICAgICAgWHNMb2coIkZpcmUgJXAiLGZlYXR1cmVzLmZlYXR1cmVzW3hdLm5hbWUpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgWHNMb2coImZpcmUgZmVhdHVyZSAlcyIsIGZlYXR1cmVzLmZlYXR1
cmVzW3hdLm5hbWUpOwotICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0RGVidWdTdHJpbmco
IkV2ZW50IHRyaWdnZXJlZFxuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIShmZWF0
dXJlcy5mZWF0dXJlc1t4XS5oYW5kbGVyKGZlYXR1cmVzLmZlYXR1cmVzW3hdLmN0eCkpKQotICAg
ICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhzTG9n
KCJGaXJpbmcgZmVhdHVyZSBmYWlsZWQiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ
cmludEVycm9yKCJGZWF0dXJlIGZhaWxlZCIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZhaWwgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICAgICAgICAgWHNMb2coImZpcmVkIGZlYXR1cmUgJXMiLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmZWF0dXJlcy5mZWF0dXJlc1t4XS5uYW1lKTsKLSAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoZmFpbCkgewotICAg
ICAgICAgICAgICAgICAgICBYc0xvZygiUmVzZXR0aW5nIik7Ci0gICAgICAgICAgICAgICAgICAg
IFJlcG9ydEV2ZW50KGV2ZW50TG9nLCBFVkVOVExPR19TVUNDRVNTLCAwLCBFVkVOVF9YRU5VU0VS
X1VORVhQRUNURUQsIE5VTEwsIDAsIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IE5VTEwsIE5VTEwpOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZQotICAgICAgICB7Ci0g
ICAgICAgICAgICBQcmludEVycm9yKCJXYWl0Rm9yTXVsdGlwbGVPYmplY3RzKCkiKTsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQotICAgIE91dHB1dERlYnVnU3RyaW5nKCJX
TUkgV2F0Y2ggbG9vcCB0ZXJtaW5hdGVkXG4iKTsKLSAgICBSZW1vdmVGZWF0dXJlcygmZmVhdHVy
ZXMpOwotICAgIFhlbnN0b3JlS2lja1hhcGkoKTsKLQotICAgIFhzTG9nKCJHdWVzdCBhZ2VudCBs
aXRlIGxvb3AgZmluaXNoaW5nIik7Ci0gICAgUmVsZWFzZVdNSUFjY2Vzc29yKCZ3bWkpOwotCi0K
LSAgCi0KLSAgICBYc0xvZygiR3Vlc3QgYWdlbnQgbGl0ZSBsb29wIGZpbmlzaGVkICVkIiwgZXhp
dCk7Ci0gICAgcmV0dXJuIGV4aXQ7Ci19Ci0KLQotLy8gU2VydmljZSBpbml0aWFsaXphdGlvbgot
Ym9vbCBTZXJ2aWNlSW5pdCgpCi17Ci0gICAgU2VydmljZVN0YXR1cy5kd1NlcnZpY2VUeXBlICAg
ICAgICA9IFNFUlZJQ0VfV0lOMzI7IAotICAgIFNlcnZpY2VTdGF0dXMuZHdDdXJyZW50U3RhdGUg
ICAgICAgPSBTRVJWSUNFX1NUQVJUX1BFTkRJTkc7IAotICAgIFNlcnZpY2VTdGF0dXMuZHdDb250
cm9sc0FjY2VwdGVkICAgPQotICAgICAgICBTRVJWSUNFX0FDQ0VQVF9TVE9QIHwgU0VSVklDRV9B
Q0NFUFRfU0hVVERPV04gfAotICAgICAgICBTRVJWSUNFX0FDQ0VQVF9TRVNTSU9OQ0hBTkdFOwot
ICAgIFNlcnZpY2VTdGF0dXMuZHdXaW4zMkV4aXRDb2RlICAgICAgPSAwOyAKLSAgICBTZXJ2aWNl
U3RhdHVzLmR3U2VydmljZVNwZWNpZmljRXhpdENvZGUgPSAwOyAKLSAgICBTZXJ2aWNlU3RhdHVz
LmR3Q2hlY2tQb2ludCAgICAgICAgID0gMDsgCi0gICAgU2VydmljZVN0YXR1cy5kd1dhaXRIaW50
ICAgICAgICAgICA9IDA7IAotIAotICAgIGhTdGF0dXMgPSBSZWdpc3RlclNlcnZpY2VDdHJsSGFu
ZGxlckV4KAotICAgICAgICAiWGVuU2VydmljZSIsIAotICAgICAgICBTZXJ2aWNlQ29udHJvbEhh
bmRsZXIsCi0gICAgICAgIE5VTEwpOwotICAgIGlmIChoU3RhdHVzID09IChTRVJWSUNFX1NUQVRV
U19IQU5ETEUpMCkgCi0gICAgeyAKLSAgICAgICAgLy8gUmVnaXN0ZXJpbmcgQ29udHJvbCBIYW5k
bGVyIGZhaWxlZAotICAgICAgICBEQkdQUklOVCgoIlhlblN2YzogUmVnaXN0ZXJpbmcgc2Vydmlj
ZSBjb250cm9sIGhhbmRsZXIgZmFpbGVkIC0gJWRcbiIsIEdldExhc3RFcnJvcigpKSk7Ci0gICAg
ICAgIHJldHVybiBmYWxzZTsgCi0gICAgfSAgCi0KLSAgICBTZXJ2aWNlU3RhdHVzLmR3Q3VycmVu
dFN0YXRlID0gU0VSVklDRV9SVU5OSU5HOyAKLSAgICBTZXRTZXJ2aWNlU3RhdHVzIChoU3RhdHVz
LCAmU2VydmljZVN0YXR1cyk7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZCBXSU5BUEkg
U2VydmljZU1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQotewotICAgIC8vIFBlcmZvcm0gY29t
bW9uIGluaXRpYWxpemF0aW9uCi0gICAgZXZlbnRMb2cgPSBSZWdpc3RlckV2ZW50U291cmNlKE5V
TEwsICJ4ZW5zdmMiKTsKLSAgICBoU2VydmljZUV4aXRFdmVudCA9IENyZWF0ZUV2ZW50KE5VTEws
IGZhbHNlLCBmYWxzZSwgTlVMTCk7Ci0gICAgaWYgKGhTZXJ2aWNlRXhpdEV2ZW50ID09IE5VTEwp
Ci0gICAgewotICAgICAgICBEQkdQUklOVCgoIlhlblN2YzogVW5hYmxlIHRvIGNyZWF0ZSB0aGUg
ZXZlbnQgb2JqIC0gJWRcbiIsIEdldExhc3RFcnJvcigpKSk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KLSAgICBpZiAoIVNlcnZpY2VJbml0KCkpCi0gICAgewotICAgICAgICBEQkdQUklOVCgo
IlhlblN2YzogVW5hYmxlIHRvIGluaXQgeGVuc2VydmljZVxuIikpOwotICAgICAgICByZXR1cm47
Ci0gICAgfQotICAgIEJPT0wgc3RvcHBpbmc7Ci0KLSAgICBkbyB7Ci0gICAgICAgIAotICAgICAg
ICBfX3RyeQotICAgICAgICB7Ci0gICAgICAgICAgICBzdG9wcGluZyA9IFJ1bigpOwotICAgICAg
ICAgICAgCi0gICAgICAgIH0KLSAgICAgICAgX19leGNlcHQoRVhDRVBUSU9OX0VYRUNVVEVfSEFO
RExFUikKLSAgICAgICAgewotICAgICAgICAgICAgX190cnkgewotICAgICAgICAgICAgICAgIFhz
TG9nKCJFeGNlcHRpb24gaGl0ICV4IiwgR2V0RXhjZXB0aW9uQ29kZSgpKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIF9fZXhjZXB0KEVYQ0VQVElPTl9FWEVDVVRFX0hBTkRMRVIpCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdG9wcGluZyA9IGZhbHNlOwot
ICAgICAgICB9Ci0gICAgfSB3aGlsZSAoIXN0b3BwaW5nKTsKLSAgICAKLSAgICBYc0xvZygiR3Vl
c3QgYWdlbnQgc2VydmljZSBzdG9wcGVkIik7Ci0gICAgU2h1dGRvd25YU0FjY2Vzc29yKCk7Ci0g
ICAgRGVyZWdpc3RlckV2ZW50U291cmNlKGV2ZW50TG9nKTsKLSAgICBTZXJ2aWNlQ29udHJvbE1h
bmFnZXJVcGRhdGUoMCwgU0VSVklDRV9TVE9QUEVEKTsKLSAgICByZXR1cm47Ci19Ci0KLXZvaWQg
U2VydmljZUNvbnRyb2xNYW5hZ2VyVXBkYXRlKERXT1JEIGR3RXhpdENvZGUsIERXT1JEIGR3U3Rh
dGUpCi17Ci0gICAgU2VydmljZVN0YXR1cy5kd1dpbjMyRXhpdENvZGUgPSBkd0V4aXRDb2RlOyAK
LSAgICBTZXJ2aWNlU3RhdHVzLmR3Q3VycmVudFN0YXRlICA9IGR3U3RhdGU7IAotICAgIFNldFNl
cnZpY2VTdGF0dXMgKGhTdGF0dXMsICZTZXJ2aWNlU3RhdHVzKTsKLX0KLQotLy8gU2VydmljZSBj
b250cm9sIGhhbmRsZXIgZnVuY3Rpb24KLXN0YXRpYyBEV09SRCBXSU5BUEkgU2VydmljZUNvbnRy
b2xIYW5kbGVyKERXT1JEIHJlcXVlc3QsIERXT1JEIGV2dFR5cGUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBMUFZPSUQgZXZlbnREYXRhLCBMUFZPSUQgY3R4dCkK
LXsKLSAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVSKGN0eHQpOwotICAgIFVOUkVGRVJFTkNFRF9Q
QVJBTUVURVIoZXZlbnREYXRhKTsKLQotICAgIHN3aXRjaChyZXF1ZXN0KSAKLSAgICB7IAotICAg
ICAgICBjYXNlIFNFUlZJQ0VfQ09OVFJPTF9TVE9QOiAKLSAgICAgICAgICAgIERCR1BSSU5UKCgi
WGVuU3ZjOiB4ZW5zZXJ2aWNlIHN0b3BwZWQuXG4iKSk7Ci0gICAgICAgICAgICBTZXJ2aWNlQ29u
dHJvbE1hbmFnZXJVcGRhdGUoMCwgU0VSVklDRV9TVE9QX1BFTkRJTkcpOwotICAgICAgICAgICAg
U2V0RXZlbnQoaFNlcnZpY2VFeGl0RXZlbnQpOwotICAgICAgICAgICAgcmV0dXJuIE5PX0VSUk9S
OwotIAotICAgICAgICBjYXNlIFNFUlZJQ0VfQ09OVFJPTF9TSFVURE9XTjogCi0gICAgICAgICAg
ICBEQkdQUklOVCgoIlhlblN2YzogeGVuc2VydmljZSBzaHV0ZG93bi5cbiIpKTsKLSAgICAgICAg
ICAgIFNlcnZpY2VDb250cm9sTWFuYWdlclVwZGF0ZSgwLCBTRVJWSUNFX1NUT1BfUEVORElORyk7
Ci0gICAgICAgICAgICBTZXRFdmVudChoU2VydmljZUV4aXRFdmVudCk7Ci0gICAgICAgICAgICBy
ZXR1cm4gTk9fRVJST1I7Ci0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgREJHUFJJTlQoKCJY
ZW5TdmM6IHVua25vd24gcmVxdWVzdC4iKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICB9IAot
Ci0gICAgU2VydmljZUNvbnRyb2xNYW5hZ2VyVXBkYXRlKDAsIFNFUlZJQ0VfUlVOTklORyk7Ci0g
ICAgcmV0dXJuIEVSUk9SX0NBTExfTk9UX0lNUExFTUVOVEVEOwotfQpkaWZmIC0tZ2l0IGEvc3Jj
L3dpbjMyc3R1YmFnZW50L1hTZXJ2aWNlLmggYi9zcmMvd2luMzJzdHViYWdlbnQvWFNlcnZpY2Uu
aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzJlZTE2My4uMDAwMDAwMAotLS0gYS9z
cmMvd2luMzJzdHViYWdlbnQvWFNlcnZpY2UuaAorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAg
QEAKLS8qIENvcHlyaWdodCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLgotICogQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCAKLSAqIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgCi0gKiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0Ogot
ICoKLSAqICogICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIAotICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgCi0gKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAqICAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSAKLSAqICAgICBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIAotICogICAg
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciAK
LSAqICAgICBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCAK
LSAqIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIAotICogSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgCi0gKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSAKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQgSE9MREVSIE9SIAotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgCi0gKiBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgCi0gKiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIAotICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIAotICogV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIAotICog
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSAKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgCi0gKiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIF9YU0VSVklDRV9ICi0jZGVm
aW5lIF9YU0VSVklDRV9ICi0KLSNpbmNsdWRlIDx2ZXJzaW9uLmg+Ci0KLSNkZWZpbmUgU1ZDX05B
TUUgInhlbnN2YyIKLSNkZWZpbmUgU1ZDX0RJU1BMQVlOQU1FIFBST0RVQ1RfTkFNRV9TVFIgIyMg
IkludGVyZmFjZSBTZXJ2aWNlIgotI2RlZmluZSBTVkNfREVTQyAiTW9uaXRvcnMgYW5kIHByb3Zp
ZGVzIHZhcmlvdXMgbWV0cmljcyB0byBYZW5TdG9yZSIKLQotdm9pZCBQcmludEVycm9yKGNvbnN0
IGNoYXIgKmZ1bmMpOwotdm9pZCBQcmludEVycm9yKGNvbnN0IGNoYXIgKmZ1bmMsIERXT1JEIGVy
cik7Ci12b2lkIFN0YXJ0Q2xpcGJvYXJkU3luYyh2b2lkKTsKLXZvaWQgRmluaXNoQ2xpcGJvYXJk
U3luYyh2b2lkKTsKLXZvaWQgQ2xpcGJvYXJkQ29uc29sZUNoYW5nZWQodm9pZCk7Ci0KLXZvaWQg
WHNEdW1wTG9nVGhpc1RocmVhZCh2b2lkKTsKLXZvaWQgWHNJbml0UGVyVGhyZWFkTG9nZ2luZyh2
b2lkKTsKLXZvaWQgWHNMb2dNc2coY29uc3QgY2hhciAqZm10LCAuLi4pOwotdm9pZCBEb1ZvbHVt
ZUR1bXAodm9pZCk7Ci0KLXZvaWQgQWNxdWlyZVN5c3RlbVByaXZpbGVnZShMUENUU1RSIG5hbWUp
OwotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy93aW4zMnN0dWJhZ2VudC9lcnJvcnMuY3BwIGIv
c3JjL3dpbjMyc3R1YmFnZW50L2Vycm9ycy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGNhZjQ3Y2MuLjAwMDAwMDAKLS0tIGEvc3JjL3dpbjMyc3R1YmFnZW50L2Vycm9ycy5jcHAK
KysrIC9kZXYvbnVsbApAQCAtMSwxMDIgKzAsMCBAQAotLyogQ29weXJpZ2h0IChjKSBDaXRyaXgg
U3lzdGVtcyBJbmMuCi0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIAotICogd2l0aCBvciB3aXRo
b3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCAKLSAqIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Ci0gKgotICogKiAgIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgCi0gKiAgICAgY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSAKLSAqICAgICBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqICogICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIAotICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgCi0gKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIAotICogICAgIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIAotICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgCi0gKiBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiAKLSAqIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIAotICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
Ci0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCAKLSAqIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiAKLSAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgCi0gKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgCi0gKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIAotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiAKLSAqIFNVQ0ggREFNQUdFLgotICov
Ci0KLS8qIEJsYWNrLWJveCBkYXRhIHJlY29yZGVyLiAgVGhpcyByZWNvcmRzIHN0dWZmIHdoaWNo
IGlzIGhhcHBlbmluZwotICAgd2hpbGUgdGhlIGFnZW50IHJ1bnMsIGFuZCB0cmllcyB0byBwdXNo
IGl0IG91dCB0byBkb20wIHN5c2xvZyBpZiB3ZQotICAgY3Jhc2guICovCi0jaW5jbHVkZSAic3Rk
YWZ4LmgiCi0jaW5jbHVkZSA8d2luZG93cy5oPgotI2luY2x1ZGUgPHN0ZGFyZy5oPgotI2luY2x1
ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSAiWFNlcnZpY2UuaCIK
LSNpbmNsdWRlICJYU0FjY2Vzc29yLmgiCi0KLQotI2RlZmluZSBSSU5HX1NJWkUgODE5MgotCi1z
dHJ1Y3QgbWVzc2FnZV9yaW5nIHsKLSAgICBIQU5ETEUgaGFuZGxlOwotICAgIHVuc2lnbmVkIHBy
b2RfaWR4OwotICAgIHVuc2lnbmVkIGNvbnNfaWR4OwotICAgIHVuc2lnbmVkIGNoYXIgcGF5bG9h
ZFtSSU5HX1NJWkVdOwotfTsKLQotc3RhdGljIF9fZGVjbHNwZWModGhyZWFkKSBzdHJ1Y3QgbWVz
c2FnZV9yaW5nIG1lc3NhZ2VfcmluZzsKLQotc3RhdGljIGNoYXIgKgotWHN2YXNwcmludGYoY29u
c3QgY2hhciAqZm10LCB2YV9saXN0IGFyZ3MpCi17Ci0gICAgY2hhciAqd29yazsKLSAgICBpbnQg
d29ya19zaXplOwotICAgIGludCByOwotCi0gICAgd29ya19zaXplID0gMzI7Ci0gICAgd2hpbGUg
KDEpIHsKLSAgICAgICAgd29yayA9IChjaGFyICopbWFsbG9jKHdvcmtfc2l6ZSk7Ci0gICAgICAg
IGlmICghd29yaykKLSAgICAgICAgICAgIHJldHVybiB3b3JrOwotICAgICAgICByID0gX3ZzbnBy
aW50Zih3b3JrLCB3b3JrX3NpemUsIGZtdCwgYXJncyk7Ci0gICAgICAgIGlmIChyID09IDApIHsK
LSAgICAgICAgICAgIGZyZWUod29yayk7Ci0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAg
ICAgfQotICAgICAgICBpZiAociAhPSAtMSAmJiByIDwgd29ya19zaXplKSB7Ci0gICAgICAgICAg
ICByZXR1cm4gd29yazsKLSAgICAgICAgfQotICAgICAgICBmcmVlKHdvcmspOwotICAgICAgICB3
b3JrX3NpemUgKj0gMjsKLSAgICB9Ci19Ci0KLXN0YXRpYyBjaGFyICoKLVhzYXNwcmludGYoY29u
c3QgY2hhciAqZm10LCAuLi4pCi17Ci0gICAgdmFfbGlzdCBhcmdzOwotICAgIGNoYXIgKnJlczsK
LQotICAgIHZhX3N0YXJ0KGFyZ3MsIGZtdCk7Ci0gICAgcmVzID0gWHN2YXNwcmludGYoZm10LCBh
cmdzKTsKLSAgICB2YV9lbmQoYXJncyk7Ci0gICAgcmV0dXJuIHJlczsKLX0KLQotdm9pZAotWHNM
b2dNc2coY29uc3QgY2hhciAqZm10LCAuLi4pCi17Ci0gICAgdmFfbGlzdCBhcmdzOwotCi0gICAg
dmFfc3RhcnQoYXJncywgZm10KTsKLSAgICBYc0xvZyhmbXQsIGFyZ3MpOwotICAgIHZhX2VuZChh
cmdzKTsKLX0KLQotCmRpZmYgLS1naXQgYS9zcmMvd2luMzJzdHViYWdlbnQvbWVzc2FnZXMubWMg
Yi9zcmMvd2luMzJzdHViYWdlbnQvbWVzc2FnZXMubWMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAyODljNDQuLjAwMDAwMDAKLS0tIGEvc3JjL3dpbjMyc3R1YmFnZW50L21lc3NhZ2Vz
Lm1jCisrKyAvZGV2L251bGwKQEAgLTEsNjYgKzAsMCBAQAotU2V2ZXJpdHlOYW1lcz0oSW5mb3Jt
YXRpb25hbD0weDEpCi1GYWNpbGl0eU5hbWVzPShYZW5Vc2VyPTB4ZDYwKQotCi1NZXNzYWdlSWQ9
MHgwMDAxCi1GYWNpbGl0eT1YZW5Vc2VyCi1TZXZlcml0eT1JbmZvcm1hdGlvbmFsCi1TeW1ib2xp
Y05hbWU9RVZFTlRfWEVOVVNFUl9QT1dFUk9GRgotTGFuZ3VhZ2U9RW5nbGlzaAotVGhlIHRvb2xz
IHJlcXVlc3RlZCB0aGF0IHRoZSBsb2NhbCBWTSBzaHV0IGl0c2VsZiBkb3duLgotLgotCi1NZXNz
YWdlSWQ9MHgwMDAyCi1GYWNpbGl0eT1YZW5Vc2VyCi1TZXZlcml0eT1JbmZvcm1hdGlvbmFsCi1T
eW1ib2xpY05hbWU9RVZFTlRfWEVOVVNFUl9SRUJPT1QKLUxhbmd1YWdlPUVuZ2xpc2gKLVRoZSB0
b29scyByZXF1ZXN0ZWQgdGhhdCB0aGUgbG9jYWwgVk0gcmVib290LgotLgotCi1NZXNzYWdlSWQ9
MHgwMDAzCi1GYWNpbGl0eT1YZW5Vc2VyCi1TZXZlcml0eT1JbmZvcm1hdGlvbmFsCi1TeW1ib2xp
Y05hbWU9RVZFTlRfWEVOVVNFUl9ISUJFUk5BVEUKLUxhbmd1YWdlPUVuZ2xpc2gKLVRoZSB0b29s
cyByZXF1ZXN0ZWQgdGhhdCB0aGUgbG9jYWwgVk0gaGliZXJuYXRlIGl0c2VsZi4KLS4KLQotTWVz
c2FnZUlkPTB4MDAwNAotRmFjaWxpdHk9WGVuVXNlcgotU2V2ZXJpdHk9SW5mb3JtYXRpb25hbAot
U3ltYm9saWNOYW1lPUVWRU5UX1hFTlVTRVJfUzMKLUxhbmd1YWdlPUVuZ2xpc2gKLVRoZSB0b29s
cyByZXF1ZXN0ZWQgdGhhdCB0aGUgbG9jYWwgVk0gZW50ZXIgcG93ZXIgc3RhdGUgUzMuCi0uCi0K
LU1lc3NhZ2VJZD0weDAwMDUKLUZhY2lsaXR5PVhlblVzZXIKLVNldmVyaXR5PUluZm9ybWF0aW9u
YWwKLVN5bWJvbGljTmFtZT1FVkVOVF9YRU5VU0VSX1dNSQotTGFuZ3VhZ2U9RW5nbGlzaAotVGhl
IHRvb2xzIG5vdGljZWQgdGhhdCBXTUkgYmVjYW1lIG5vbi1mdW5jdGlvbmFsLgotLgotCi1NZXNz
YWdlSWQ9MHgwMDA2Ci1GYWNpbGl0eT1YZW5Vc2VyCi1TZXZlcml0eT1JbmZvcm1hdGlvbmFsCi1T
eW1ib2xpY05hbWU9RVZFTlRfWEVOVVNFUl9TVEFSVEVECi1MYW5ndWFnZT1FbmdsaXNoCi1UaGUg
dG9vbHMgaW5pdGlhdGVkLgotLgotCi1NZXNzYWdlSWQ9MHgwMDA3Ci1GYWNpbGl0eT1YZW5Vc2Vy
Ci1TZXZlcml0eT1JbmZvcm1hdGlvbmFsCi1TeW1ib2xpY05hbWU9RVZFTlRfWEVOVVNFUl9VTlNV
U1BFTkRFRAotTGFuZ3VhZ2U9RW5nbGlzaAotVGhlIHRvb2xzIHJldHVybmVkIGZyb20gc3VzcGVu
ZC4KLS4KLQotTWVzc2FnZUlkPTB4MDAwOAotRmFjaWxpdHk9WGVuVXNlcgotU2V2ZXJpdHk9SW5m
b3JtYXRpb25hbAotU3ltYm9saWNOYW1lPUVWRU5UX1hFTlVTRVJfVU5FWFBFQ1RFRAotTGFuZ3Vh
Z2U9RW5nbGlzaAotVGhlIHRvb2xzIGV4cGVyaWVuY2VkIGFuIHVuZXhwZWN0ZWQgZXJyb3IuCi0u
CmRpZmYgLS1naXQgYS9zcmMvd2luMzJzdHViYWdlbnQvc3RkYWZ4LmNwcCBiL3NyYy93aW4zMnN0
dWJhZ2VudC9zdGRhZnguY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MmNlZDc5
Li4wMDAwMDAwCi0tLSBhL3NyYy93aW4zMnN0dWJhZ2VudC9zdGRhZnguY3BwCisrKyAvZGV2L251
bGwKQEAgLTEsMzkgKzAsMCBAQAotLyogQ29weXJpZ2h0IChjKSBDaXRyaXggU3lzdGVtcyBJbmMu
Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIAotICogd2l0aCBvciB3aXRob3V0IG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCAKLSAqIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZSBtZXQ6Ci0gKgotICogKiAgIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgCi0gKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSAKLSAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqICogICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIAotICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgCi0gKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIAotICogICAgIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIAotICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgCi0gKiBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiAKLSAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIAotICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgCi0gKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgCi0gKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCAKLSAqIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiAKLSAq
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgCi0gKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgCi0gKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIAotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiAKLSAqIFNVQ0ggREFNQUdFLgotICovCi0KLS8vIHN0ZGFm
eC5jcHAgOiBzb3VyY2UgZmlsZSB0aGF0IGluY2x1ZGVzIGp1c3QgdGhlIHN0YW5kYXJkIGluY2x1
ZGVzCi0vLyBYZW5TZXJ2aWNlLnBjaCB3aWxsIGJlIHRoZSBwcmUtY29tcGlsZWQgaGVhZGVyCi0v
LyBzdGRhZngub2JqIHdpbGwgY29udGFpbiB0aGUgcHJlLWNvbXBpbGVkIHR5cGUgaW5mb3JtYXRp
b24KLQotI2luY2x1ZGUgInN0ZGFmeC5oIgotCi0vLyBUT0RPOiByZWZlcmVuY2UgYW55IGFkZGl0
aW9uYWwgaGVhZGVycyB5b3UgbmVlZCBpbiBTVERBRlguSAotLy8gYW5kIG5vdCBpbiB0aGlzIGZp
bGUKZGlmZiAtLWdpdCBhL3NyYy93aW4zMnN0dWJhZ2VudC9zdGRhZnguaCBiL3NyYy93aW4zMnN0
dWJhZ2VudC9zdGRhZnguaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzkxYTg0OC4u
MDAwMDAwMAotLS0gYS9zcmMvd2luMzJzdHViYWdlbnQvc3RkYWZ4LmgKKysrIC9kZXYvbnVsbApA
QCAtMSw0MyArMCwwIEBACi0vKiBDb3B5cmlnaHQgKGMpIENpdHJpeCBTeXN0ZW1zIEluYy4KLSAq
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3JtcywgCi0gKiB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIAotICogdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlIG1ldDoKLSAqCi0gKiAqICAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSAKLSAqICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIAotICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
KiAgIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgCi0gKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSAKLSAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgCi0gKiAgICAgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgCi0gKiBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCAKLSAqIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIAotICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiAKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCAKLSAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIAotICogQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIAotICogU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyAKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCAKLSAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyAKLSAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIAotICogU1VDSCBEQU1BR0UuCi0gKi8KLQotLy8gc3RkYWZ4Lmgg
OiBpbmNsdWRlIGZpbGUgZm9yIHN0YW5kYXJkIHN5c3RlbSBpbmNsdWRlIGZpbGVzLAotLy8gb3Ig
cHJvamVjdCBzcGVjaWZpYyBpbmNsdWRlIGZpbGVzIHRoYXQgYXJlIHVzZWQgZnJlcXVlbnRseSwg
YnV0Ci0vLyBhcmUgY2hhbmdlZCBpbmZyZXF1ZW50bHkKLS8vCi0KLSNwcmFnbWEgb25jZQotCi0K
LSNpbmNsdWRlIDxpb3N0cmVhbT4KLSNpbmNsdWRlIDx0Y2hhci5oPgotCi0vLyBUT0RPOiByZWZl
cmVuY2UgYWRkaXRpb25hbCBoZWFkZXJzIHlvdXIgcHJvZ3JhbSByZXF1aXJlcyBoZXJlCmRpZmYg
LS1naXQgYS9zcmMvd2luMzJzdHViYWdlbnQvdzMyeGFnZW50LnJjIGIvc3JjL3dpbjMyc3R1YmFn
ZW50L3czMnhhZ2VudC5yYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzhlNWNjNy4u
MDAwMDAwMAotLS0gYS9zcmMvd2luMzJzdHViYWdlbnQvdzMyeGFnZW50LnJjCisrKyAvZGV2L251
bGwKQEAgLTEsNjAgKzAsMCBAQAotLyogQ29weXJpZ2h0IChjKSBDaXRyaXggU3lzdGVtcyBJbmMu
Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIAotICogd2l0aCBvciB3aXRob3V0IG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCAKLSAqIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZSBtZXQ6Ci0gKgotICogKiAgIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgCi0gKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSAKLSAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqICogICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIAotICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgCi0gKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIAotICogICAgIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIAotICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgCi0gKiBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiAKLSAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIAotICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgCi0gKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgCi0gKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCAKLSAqIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiAKLSAq
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgCi0gKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgCi0gKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIAotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiAKLSAqIFNVQ0ggREFNQUdFLgotICovCi0KLQotI2luY2x1
ZGUgPHdpbmRvd3MuaD4KLSNpbmNsdWRlIDxudHZlcnAuaD4KLQotI3VuZGVmIFZFUl9DT01QQU5Z
TkFNRV9TVFIKLSN1bmRlZiBWRVJfUFJPRFVDVE5BTUVfU1RSCi0jdW5kZWYgVkVSX1BST0RVQ1RW
RVJTSU9OCi0jdW5kZWYgVkVSX1BST0RVQ1RWRVJTSU9OX1NUUgotCi0jaW5jbHVkZSA8dmVyc2lv
bi5oPgotCi0jZGVmaW5lIFZFUl9DT01QQU5ZTkFNRV9TVFIgICAgICAgICBWRU5ET1JfTkFNRV9T
VFIKLSNkZWZpbmUgVkVSX0xFR0FMQ09QWVJJR0hUX1NUUiAgICAgICJDb3B5cmlnaHQgKGMpIENp
dHJpeCBTeXN0ZW1zIEluYy4iCi0KLSNkZWZpbmUgVkVSX1BST0RVQ1ROQU1FX1NUUiAgICAgICAg
ICJYRU5JRkFDRSIKLSNkZWZpbmUgVkVSX1BST0RVQ1RWRVJTSU9OICAgICAgICAgIE1BSk9SX1ZF
UlNJT04sTUlOT1JfVkVSU0lPTixNSUNST19WRVJTSU9OLEJVSUxEX05VTUJFUgotI2RlZmluZSBW
RVJfUFJPRFVDVFZFUlNJT05fU1RSICAgICAgTUFKT1JfVkVSU0lPTl9TVFIgIi4iIE1JTk9SX1ZF
UlNJT05fU1RSICIuIiBNSUNST19WRVJTSU9OX1NUUiAiLiIgQlVJTERfTlVNQkVSX1NUUgotCi0j
ZGVmaW5lIFZFUl9JTlRFUk5BTE5BTUVfU1RSIAkgICAgInczMnhhZ2VudC5leGUiCi0jZGVmaW5l
IFZFUl9GSUxFVkVSU0lPTl9TVFIgCSAgICAiMS4wIgotI2RlZmluZSBWRVJfRklMRURFU0NSSVBU
SU9OX1NUUiAgICAgInczMmFnZW50IgotI2RlZmluZSBWRVJfT1JJR0lOQUxGSUxFTkFNRV9TVFIg
ICAgInczMnhhZ2VudC5leGUiCi0jZGVmaW5lIFZFUl9GSUxFVFlQRSBWRlRfQVBQCi0jZGVmaW5l
IFZFUl9GSUxFU1VCVFlQRSAwCi0KLXhlbl9pY29uIElDT04gInhlbi5pY28iCi0KLSNpbmNsdWRl
ICJjb21tb24udmVyIgotI2luY2x1ZGUgIm1lc3NhZ2VzLnJjIgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy93aW4zMnN0dWJhZ2VudC94ZW4uaWNvIGIvc3JjL3dp
bjMyc3R1YmFnZW50L3hlbi5pY28KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg0NGM5
OTNiYTI5MGU1MDU1YTg5MDBjYTg3ODZlYTBlMDMxMTM4YTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAw
MDEKCmxpdGVyYWwgMjUyMTQKemNtZUh2MzB6Z2hgfWVSZkR5eGJwJUxQUDBQKkQmO0t1fCEqQzcw
Q1AlNiZLWWwqKkZLNT4zU28xPkU7Rl9YVCR9Cnp2XyN5dShvI2ZveDIlNFptSE5FVGNne0pOZG9O
KHhye0RYJnxJZmVDQDBwb3JvXjk0TVhVQDNAVko3VEVYczhwJQp6bVNUWGw1T2FrUEktUWNnVj1s
eHFyYTN0JmA5TCF2WnJLVXU3dEMpZik7SXteUCE5WlItZDJkNj8lLUdRMUZWRjIKeihedW95aThj
TzA5MVlPO0luUjdVVFdTMHtGfkN4WSU1TXIwJFVkK00oU3JmTTVLQCYkcmowTURUKiNFdlIzK2pv
CnpDbUU/Q0gjZTZITmQ2WkBOSE8+eU5WeG9FdW8qa0g2clFuVFFffEFManZhMVhXSFVBYFpETHwj
VEd9TEluVXU3fAp6I0ZobUdpSFhUK2g3dlh0NkFQNChtcEd8ZGxUQ183RS0xKUxGNG1NWGsjJVN4
UHBgP3dranpGak8kSiZabCRXZlMKekhldUhiKmk2KF50OHQjOUQ1YSRkeStBNHxwKzszeUxKZURu
cUxofVd4Vj5wQWwlPVopQ31RPVhLVn51KjVXQGh9CnpYYWFnVkUwWEZ9MFlwPjV1aEZIWnNlMU5l
eCtKQSo/OFM1YHBqUUxCVDNaTmtrbHNqI3Z7cTBHcSpXdWp0ZHJ0Ugp6RGZFKGg2bjslMGRBUWJX
VSNmPHMxJTE3Z0Nld1JWT3FjQV5Da1BiTlFQKEYqISpZUXNUPygqSU9qanhfKXZ5OXAKemxpRHdl
KWhBMz55OWpqNlFCYyhZSEI0YCo8K1Y2YjRqYEBOR14qQGdETnN6MkRYRkZ1TVQjMnN3MEtzNFVt
TVMrCnptTmotM0ZtJFBTektGOHM3aS1jPzd8bG80UlFtaUNXekJhWE4/I3VeJEJvdyRyTXN+Zkom
c2U+Qnc7NHckM256bQp6amR+PTZIe3dEZTkxKjdxVlMkKTZuZXBXciRIK1dFSllFUEVXNU1FPiNh
ViQ2Z0BfJUM8NlB1emd3V3p0PFNsczMKentFSGFIeWRXIyNJZExqRFVPLTxpX3plNmdNQmN6cCY0
MUgrWTR6M1cmcktsUEwqRzhFTlZiPk9lcC04eStQLVJnCno8MzZLZiM1MSh9ak5wNC09Xjw1VkFp
bDN+aW95UnQ7PitLPSZscnlkOHw5d0RudzV+RSspSVk1Knw4SDdUakN4dgp6Tmc+I3phU2tDX1BQ
NXxhcC1jPmVkNzF8WCk0YnVkbDxPX2V7aXl7N3liP0BSKjkjdCtRP1Zqdz5qeCh2VjxGSjsKek5U
KjM1SFh6azgwbVljJUdMUGolVUM8U0M9X1RgVzJ+XyN6RzZWczJKIUUhUHE0QCpmPGVEfj4/ViZu
Y181XyM1CnpZTSQ5eW1UZ1l0M1kqbGdNRXk8TSE/Z1dgWTVOTTNfUSRGcUBBWD4kQFhWSGIwPTJz
azc1NlYlTWg+fUQzIWRJKQp6I04mNTdoOXJoKEFyRG1gbWp6T0opKSshNHZrZnklNTVzYiNiNkt1
WClkNzliMztsQWEheVlkITgwU3Q1OVlZKUUKenNobG83cSspUG1VQEgre0lyKU8pb2E+QWh1XkZB
MSpvK2dTVGs/Mm1DVHV3MyNCZVBoZWQ9KlJgamRpWXFZTE9VCnpfYWV2S2twK21FQVk8OXZwZyVj
OVE9NGdXVENDflMrZCo1aXh5TS1SWTxPTTYrUVRnZGxvaG1jQEluVCUjYHtpTgp6TVU/bHVgaz9n
ITZaJGRVc15UTDBnQHVXSntyWlhWPEh3NkI5enZ4MVNjIUNoZG9qbilPdzExdVZuTUxBJGYjTEMK
ek9iPkR2dnVqcnApOVpTUGBFXn1IV2B2aG1SWkVEcWIlZllaU0JOZClMZ1lsNWlIejhxVnBDJlJr
PS1tcDk3P2JoCnpgUihqUVE5QntkX0k0M2gjI1IreXljSTRjd3s5d3lieDA2NyE8dmI4e2t3PVB3
IWkmQChjKHNXNFJMPjZuM3k+dwp6Tz1NK2RpS1I9SWlkQ3l0aU00Q2ppajVtTGlydT8raXZ0R15o
eXBJVmtoNFJzVFN0IWA2fn5TcDZETGxiNVR7UnsKejdVJDJPN2hpdzx3WVlscXM8PzZFaFBaWD5t
YmlRT3U2WGReZiV4JnFBSF5AZnszM3E7e2RlKX5uT3VHS1A0alEhCnoteG0xYSY7cT1ZfDM5ZHZs
fEg8SGFwbnlTMz1IREg1b2V3JiFzVjdoez1WTWNvKm97YS1ybTBjTDYqLUd2OWImYQp6XiE0KHA1
dWs8fFVZQD56QShteT5WQk81RVhJNWx0Yz0tbWhqWihaflBmQm5AaDklZ201KDJFOytlRWtPUmUr
Wl8Kem49bGJ6Y0lpcnU1YGl0JEBINz0qYzI1SU5GQnVGN0NJVnBoTGIxWVZlM2YpIzBqblR5am1P
Z0BYbXN6Tzt3bzRMCnpgZyReNTtqQ3M5NmREU0IxMnFCbXJrYlNkSWpoUWAmbmt1Ykk8eHZ9bygm
dHUkYlN1azY9dUhIaSV+KXAxVTsraQp6NE9qKE1Xa1MzYj5aaygyOGlEaFdzSCE/LVckN3o5OzxX
T3AkfSteTGN+IWg+Um4+cjFQISVSSWkoVmltbX4tSk8KemR6PlE4RUxEXnl2aHI2YmVBTygoaGc4
PFFRUTBNbktVJkRqKHl4Kn09bWk+UiNgSHk7QEl3dSgwKH1mPDhrOzYpCnpQKmthc2tJRy1zRmxk
fUlqeCNLJnNQRzM+YVd4N0MwI1FaPHVDbF5iS2B0Z2lZc21RYzVSKCEjUClZdWZWaGVTUQp6MXIm
WktkKmV7N0tSJipKVlVkJk00fEtQO211bDNhMkYyPCo2JSEwSCVJKXBsbUcpdSZhdlc2bEkhNWZB
Mnw8QUAKelNOV15rKipTNkUmV2BESmBoSzwzY1NYM3BvdC1TTkU9UWJJQW9EdnBtQTY5KCowXyst
RVg0JWRtM01Ob3Z5PCVICnpLbmB9ISZNZUAtZGJHTk55O3ZZRm09KVNOc04qZUFYWUs2Zj9DanYr
UChEZ2s4RTBjPlhVb3RtI01nNm53JD5eNwp6Yz80Tkl5U3FjOHAybHUlWEpjYitWYEYyaHhmZFZo
WV59MDB6c3x3TyRLNmZaczhGR1RvdnAyMTFzakh+RSQxOEAKem9Tb2c9KzxodSY+VWwmNVREJHdI
NXs/Y0klJWxZZTJTPGg1JEs2XiMtKGtTZiZyZ3dYYjlPV2d0ZVNRRWAxdntOCnopbm0+Q3gldjN9
TCZUamNWaS02TlpodjwtckUhI0htcHlYeV5YQzh+a2tKQz9uMz9JMCNvaj1LMT5GMlhBcHQ4OAp6
bDdXKjcmQ1FyeTY5XjRlV0YoViVWVllrRmJ9NjlxPDEjSnlZWUFyOG5RQipEM2V2Z3oqRzE1P0JJ
RUMtRUE0KjcKejdXbEBpTnFgWHspWmJsKStweTlzcmRPXnRfa154YFhsVUt+XzFRe3cmSUZkYGl6
Yk1oZHIrWHghb3U5bCUtcTY0CnokQz5CZHVWcG59VzxRfFZWVT1wbz4+OUBNZDZ1XzkjY3s0OXdu
Zyt6SnpzZ0dvP2pLSj1VMXV4TlFpUClnN1lncAp6SXBGK0NwNXQpTCYjZHpOaXBBdmxsQD1Fd0Ay
I0Z3QHdyZWdAJjw3I144RDsoOGlTMVVDbUheTUkyRFJZdjZCbkIKemZqP1RsNU9ucml0QWBlQV8w
O09Fd0Y1VlNhO30lRXdvez9uWlkmdGJoNUJ8U3JKZURkcyQ7fTZARSU0Nk9DXiQ1CnpnWGgjYW98
WW1iJFZGdUVeWEI0NlBxOG9ETzYrVjxMRnxzTzZUNn11I2t6KS0jaE0wSCNFeGlKRn0rYk9hVlhN
Swp6OUUtNk8yYiNFd1U1VmFlUyR1VnxgcWVzT1hTMz1lciZXbTlAPis9NClHa2A9Y3xBJjtZLX1h
WUhuUzBEbFdvUHQKekh1bUQlSGpkJi1TNFdaRysocVFJX1l4TzZ4UWNKdkl4KT5qb2JLUSQ5PCgk
UWc+NDxoP1hLbS0tN2ZheERuSFd9Cno0cztkdzJEeWx2VzIlVno/Xlk0ey1Hanh4SHshK0t4NE1k
eyF9XktDIShKRGtrTTF0PSNgWTM8PytwLWxRYSF9Jgp6azk2WUJDcHooOU1zQExFZXozPy1lTUB9
dDtjIyhjKzZROUJqMlVBNmB0QFNkcmNHaz09Rk1XfiZZa2peX3NwRCQKejsldyQqYWVtUFphZEdK
IUB6dSZLYFRVIWdtblk3aEpFd297e3BPbyojUCNkZiNkcUkqQyFjJTJ8TmlAYnBMLTM0CnoqMXlV
Qjg3PVRuS2N+alpQKTZOalY/JTVDU0ZpNDBEPk9FP0J1aXxsUGU5RigyOWMyc0xUVXpoZ3FtezFg
cWdMPAp6cjRKMVB7RVFpNWVJZz1kaCpGfStgYVhzWHZIdFpWajYjRW1gWDBwJHZBVzw9Zj0qK0le
JHo0NHNDLW4kTUZ1N1cKemRhRGVmOS1lSXhUS25SRyQrdk1rNHNBSyo1aHwtMD4lfFdfP1BYfCQ9
Tip8c3FNRGFmNWJLVTc4LSpkY1lTcT9BCnp3VWFiPVNzcSROMjhFJGp2TWczZVJiVXt0NV5wZU5Q
JmpiYUQzd0AyRWJzS3hwZlBCOTJTPTFVU1hvdDJ8RkBESAp6P1g7fHcxSW1rd3QoNVppP0hnJHZD
QC1nTzAmSnxMWiZGM0ZxfWh+MXhlTT1LV29SVWVZfjsxSXFffVhvMihgN2cKekVAeHdILUI9Yl9U
VSpQeFRfYUEoMjhgdUJKMz4zcSthVjx4K0JZci1ePXRzVWNxZ2FVdlJvI2U2b3dYZHZSczZeCno4
YSsrdkdwPFZpaCopUjArTkFfSFhHTlNYSUFmMXk4dVowKnA8WTlpNU41QVFPQ0sla0JeWlRwT1Ql
SztWQnk+Xwp6Q0x5VjV2IStkKENkTmNOVE5vRUpMI1ZsUDx2UChaRzB9QUBKRFpvN0E4M2N6KERL
O3RsYG5PRSEzJDxWa1YqWVQKeipgTStDUTU7ZEtqb2UxPy1oKzRfR1g0PjdFZWQmP2sqbUNXYTde
V2BoWCRlU3AwSU49Zj53Pz1TQ3VQZDluYn14CnomQEghc1l6c0VBUGpPPUM4Mld0Kl85ant8KnIm
e3s9X3BwbHh7NzV7OSU1cT9aP1ViSm4+ZihNTCt0TmRQMyZwbQp6RTRIPy1DJSl7YzZEUFgqaXV+
NkRNU2lDYDs9fih+OyhVSn1hZWt6KXhIN158VHB3M005UFhKWVA3WCpHWFpraH4Kej1TSUZKP3RM
MDBfVXpkczRqdyF4QEFIPX5VNlN8cGhZdWYkcE1VO1l7UUIjIXxEST1Te3FiLTdad3ZmaVpVT3kx
CnojWV9neHh8eH1jbGJmNTlqaFY3c24zPW1NTS1ERkxhP0xPPUtDfVlDakVefDk7QWtleXRRQF8p
dDIjUW1kd2NXMgp6aEx4Rl93UFFKKiZlUHBuPVV2WFJvVkElNSZYI2w+eW04QzFTTXVkTmItSFM1
LW5NLUNeNnBecDxiPHU2bkkje2wKej15WlYyeUBEa2g7M0Y2PFJEZ1lwO3pLfFM+N1llTDx3VVpn
JXJifFdvb25VRnU2QVo5bUJGQ0NjPXcyUmthIW9GCnokX3prUktgUkZAV0ZVKW03Qns+ZTNeU3FR
RTk+eD0oTFp3R0JQKC07Q0J1ZU1vPjdWNiQ/IyhZRm1SeFZWPnwkOQp6JmA8XipASW5UJSZ7NV9X
N1hPSHwyMTtPeVZhMCViSCU0X3ZUfUFAcWJ3KTJuS2dMTUxKMVVSezRRMWN+Rkp2R0sKejluYn14
fEZ3RVJIdj9AMlRrZWJ5TWx6JDx0Rk9LfnVTPUlNVSVjX2c4PCFaRGQtdn1CVzhjMWdwOCVaeHNh
djtoCnotIWxENT1neXJed3JiVUNIT3FYJGNvKHRePXp1UWhnemtVNUtVayopMUlNNV5pd3xObj1S
TW5FX1VRdEE5NUdfVgp6KCtMd01KZXhkdXZjI01AYjB8QUlUTE5pfjRqJUJiJXV9d0BSbztaPnUm
emxBXmlPakpiaSlSMFNyfk50LSU3RiQKekdYfm5qZnVVbz52KX1XJU9AR2pRaEpXaihxfGx5c0o1
djZqRnAwfXVUIWBQI09DWVYkITJAMiVYbSNuO3RKbHc1CnprRy1zVkdHajFvYUxfU2U2U2tpLV5V
Sk9sJVZFND1PZ2J8SCp2NU4zZC1nMVotfDZZOyZ6OC1hT3R+WUg9KnBtfgp6YlpkTXl4O3JuQj95
c3MjND53MjlfZEJCS2A8IVRyaG4jLTZEVDN+PTQ1aG1uMGQodkFzJnIrNXlPZjB2PXpgQWYKei1N
aW15KnxPekV3bCNyKUlmRDVQK2I9eVlTTyZnaFpOTkdhIWhPQUtAWmlCdUZiPFpvJXxtMDc9dGhi
Zy1OXzgxCnoyT0h8cyF8bSlOezZ4R0JoJXx2KDF8QllkdXMpcGJXQ1QqdD10Xnx4P0llT3U9dz0m
RmQ1KVpDbl5QSG1WNERGUwp6O0w4aW1aUlckNkw3Z0VOI19lKGY/U25xd0tSayZGTV4+V1NiQSN3
VWB8eUM8Xn0kQlFYWjdobXo7KEk1QXpZVEIKelRvMkd0I3lzR2FHVSRgRlZSVTs9MDlfbUVEc3tz
S1k7aypDVzgxU0JCajV1QXpRQ3V5OTgxaURHM1ZULU9gOWU+CnomTDR+JkpORF8pblVnOTE/ZlBg
JVY7JFhIOSFtR3Rnd2VmS14lITtPP2d9MGtPdU1fUjQmN1peaHdkej9PP01XWAp6Zk4zYWBKbTZo
WFNJWFg3JXtve1lXUXNvWXFHT30jNkt1Z0k8Xj98LUVuIzAhMmxOQlJsSHJNRmlOVmsxU1o2U0EK
ejB7Wm1uYk1PODQtKyNKPF48NWFeTmpFPEFxdVVFPk4jNzlQbyp6UUR2ViFUPnlxZmVLX3M0ZzAw
X25UaWZwbHxMCnowTnRFdjA7WnUlQC1Ya00lJGpzN0o2UChfPnMkfipNVSNCIyFYT1dWJjJpKCNK
d3FNWDd4VitoNjZPUFpEfEtDQgp6ST50UUtFblNadUpAVXs3Jn50OUVDdFhrVHJKRVQrNTt0WkEo
djJBYlI1YWI2aWF4RFEqQytjPztVcGdfe0ZwSU8Kek43cDhKKTNweClGQlAwLThwXjxQb3FkRTFX
VDZBUFpsZDFNS1BPMT9vRUBPbDBZMGM+M0cpR1NURX5Fb0NGVE90CnpGbTVYSWN3ZGIlMjtXY2p0
dyFJYmRRc3QmPkklM1gqQ3pWVlJyY0BPND9POWNfZE11STNhPSspLTBBWUBEcyp7Tgp6NzVhTEY4
K3w+emF4cTQ1bnJTRWw0fHVQPFE7b2hFPWZPST5xXkBoSUpMfWYkZUVZczlvJE9zel81KnhUPWt4
XmoKejQqflpGcWpBSn13MC0kYm9qU2RhYnE0YiZjV15qOyNXdWVnPz92Q1JvaCQ2PzwqYC1pPihU
RD83NWo1KFhsMSVNCnp4RlRIYDs3YUhGeHpQRE8mVUNKfjZQQGVuTmF1UE8wQ3xBUnp5bl4kVHBW
MFU+VlBpanlxcj1eK0pHKEsocmBEKgp6OVRZQ182PEMrbHdINWI9QW92UU93RiRzISV4IW1gdVY9
QjJaNkJPT1hMPnIocklHSDhEcyp2fTg9WXIrPUxTQHkKenZ3ZENZT2ZNJW8tUUFIK2Iqbig5eHxG
QXJveXlWNGpeKmU/MllXajRucUJHT0dWcCpHR0xWSWl2JVE/OSZockRnCnpFcndLKndxVzwtaCRe
eGl6UThCa0FLMXNxNEJWJSYqTzBIaklGQGJDPDgxaUlrdDNmaG8tdnY3K0xvdFA5VipsRQp6X0xY
VF8rZSk7d3dKUi1jPXxXNElKSmFIMUN0QjNoa3JwTDcoQmd5JmJnO1B7ZWM5NVF6SEdzMFpiZV9i
UVc4ZyoKendtIWoqdmc2N3RYazNBXjgjflpeKjBDVlRrcnA7JXl7dFI4T0dQQD5nV0lNTHdeOUYh
YmYmSz48K3JnVl89SXQhCnotbHd0R3o8TVA2Zk1iayVIKHFhVTthPDNQUCFiKk1QPU9BbV5gYVl2
KlhaYGAraHlZQiY2X2xEWShMciVYR0AwQAp6RWE+d2w9QX5rRHllO2tCeFE2KGZ5RTFYPD16alhW
THEkNkZTfjwkXlNlfWt8YWlEXihqJiFWaklmNzV7TzxqKkIKenZBQHshVmMhYmhaRm5DeDJ5TVRK
PnZfMVQ2Ji1DP2oqaG5GeyhkSyF7JlYqUkBwcGFuP0NEY15iYzkjfjJ2N2R9CnpsZVZ1fEs9WSE/
KTRvUkxiZys/YDUleEIrcGppWGpPRnItJCU0I30pYHtAVkQ+bTVwbW5fMUU0JjIxPkpyN2F6Swp6
KXNGcUptd3BeZHZMeUpYXzV0Pk15JV5RdUpFSl87WXYpSEZlZWByZy16M1V5WUU2ZSYkRHcyIW5M
ZzZsazhZakYKekV6XklecEt+WFUpMSplOHZAX2JBX0NeYW1ycEgjSGhZIytUa2t7KCtsLXJ7cXdI
eGheR3A3VE1FJEJjS09GRWNuCnpyVEQ9PHo/WHdiUnNgUiQ9aV9tSG0zX3dFeURvZlpSTmArJXxH
PThGdm5rKWw2UmM8LShBYmpwIyN6dUZab2hwXgp6P0NIfFZZNUYjVj9iNT03YH1iKjVydiV5JVZM
Pl5PZj51VVlRe0xfIXJManNIYHR7PDw4TU0yaDhTUmMldXFWYmAKeitKdFRSQWJud2ZifmRkaipD
T25fKj1JYUlCKjZFc1VBdy1EdjlufWkzaGooQ3J5VFktQyZxJHlhWGFwNlh3RWI8CnorOE4yPHZp
eHlmPSRBKGlPTjs/KzkzWCFEK2kkZXMhPyRUfXMxP2xeKDIzQiNTfDduX0VlK3FWOUAkSH47Pnl2
RQp6MjB9dkdrKyNnRlpUSjlSYSQrcntlZldxbXEmQEBUZSYpJHpDa3RhfDx5IyRUVFo5PkhZb0cj
WSNANzB4N356OFUKemNka1BadWJlTSlKaXRIcmRfMzxFSl5KQiRySmRDfTgyYk9pdHM5aW5OPUk4
K3J5ZDVqcSVTN156KDxUQkpqYiFgCnptOy0qaT01TkZMeH40LUlaNE5WfCZFYnFOTDdOT3drTWpv
RDdVeDcpY0MzPX5Tfn5jV21wfWpibyVaKWpGdyR3TAp6LV9TT0VRRzdCWl95fUx8RVh1eSljeytn
by12UWRIX0Y9QHxKaWpuTDMkdmkoUSVCUzl6eTEyJHpBJFdhRSZjaUEKemt1UGs9Jj9vb15Vd0lD
SCVmOEZ8ME1DYWFwMWFSaE40cFN6eEJiJUMqRWZNNC1uZ2I7Vj07YS1LVFhwWl5MWjtXCnpYPkMy
cm0kbjFuOzNMKTxadTZobWYxR1g5O2tEOz9KWnRsSj1ZSmRQOztZZDR5PDdmckppLTUyIX40KkBU
R29IdAp6N0pTOC1mdk53P2c5UkJPI0VnfiRydTAocyVSPGNRIXshbGtlS2w9ISk0dXJnazNWUmB7
MHkyeykxSDxGfEFxY2kKej4+SyM2amkyaW5LWl8lSGUtazdtbUlqLSVaVXN3Zm52b3VBeHlGWmhG
PUpldk5fNGE2eF8pZ21eJS0/Q3Q9SC1OCnpGRFdKNWxOSlAtPitNUnQyS0x+Q3c1ezVPa0x2ak9r
PXRMSnpnc1hUN1BKYlpnI2tpaGFaTzdDN1MqKCVNWFZvSwp6Ny0mYHVsQEkoTTE9e21rZDAzQTVt
JVpTQV9kKXhuRyVMV09TVTIwelkpYnA9Z1hSfX1STSglJj83dig7ZEVkNFAKenZ9YFdSdHwyNUEq
MFFDQUF2Vk9uKThPezhyMT9QPkcoWFQ+QjBJcDBHKSUzKmBeeE4kNV5aYlB7dHM/R3poQyV3Cno2
RXkkaF9ofns2VGduYnA/WFclQW1HOz5PJWBmPDxgaFNXMm0takU4JWQ+SSslSWVwVj0yYUlHM3F5
SGRUZjAyWAp6NTgqdjtPJmlKenc0JHM0T1VtU1MlQioyN0cwV2VBclZaPSYrJWJSbyROXmR5P24o
dWA8fik3IU0wU3RxU09PN2MKemhqO0khKElKJitaVUViMmQkMEBwXkp8c1Vgdm82eXxINEAlYCFE
d29kP3Bwb2AtZVpYUXUkb1dTNGI/WlV6ejZECnpiKkFqdjR3TXlBby0lOU4oWSF6I24jPTd5Klda
JDYpdiU8TFNFQWBSLVliKzllIU8+dzdSVVFaZUhtUVd5e1NYIwp6UGoyaDcwQGtMUkg7VS0oIzBa
KkV2eilZPlVCXi1TcTRAPEx2NDZtTUVCbWtRLSl5amtWaCshJD9Mc3FrZikrKTIKeighJDdVbHdH
ZTlXITc8fmNfOXVvbXZ2P1krUjwkOD1UVHVrYm9iNn0+NTZINEI5QUB3IyheRGFyak1Cc0h1aD5v
CnpLUj51PEd+U0BaUHspNk17K1h0WTk4OTBvc3pfT0VLUmN8bF5hO0xVP3k3NjI7cmBpQD1mR3pl
TCRmPDEoUjQ0Swp6IV9odnBxO1ZpRWkxTWJhYUNlJGxtLWBqK0g2MTc9eEg2cVRiK1c4eGw9cHht
M3VqVGZ1Tys0WFNkX3EkV18oNjsKemBRbWYkNjtGNlBaQ3xeSi1WT0pxZEVyJjFQdykrNjJXUTZJ
X0orP2Q8fiM/d1U8X3FXb2xLdjQyK0NeVU1KcmxICnooMn1JdXY+P2BCPUk0ZDZvLWh4fVMrfE9R
e3JSVjJ7UFpMSllKalc5em8zfmxvb0pmUSRfVWVhdFZ6T2AkMDYoYgp6PmNCMkpwMEYxeDN6eUVI
cWp3VmBYb3t5OSE4ZVFAb09gcVhgc1lWSCEqa3c+YHtmIyooUHAkeXFNMEdDdzVDJWMKenQkWnp4
bWJRcVgxJnhDI0U0bigoanE7KCltPlFKSD4zTERVRyZmUjV7MCQjdiljMnF7VmJ5NE1KJER8diZO
UXZNCnp5fkk+TUpBR1F4e0w5aHc4cyNaSCgxQisxXz9YWG43YmUhYD1qcG9xWSNtT15UMUM/R0hx
b0BRZUxTdHsodX4lOwp6KFNsfTJgVmY0QVpge3M1dSYra1hAMmRZc2Vla2g2LV5XQDsoZlNeKFg/
MiVtVEpjJnVFcWJMc0tYWnJCeXl6Tn4KejUkUXtGPlUtMHl5NDdlI29obWU9UiVKPkx1MU0yXlRx
TEZpYXZjSj00PldMSUQrMz8rQXFSUXJmeGdVYDBJN2RMCnpRZTlmc0kpK3d0WUQkWmUhd0ozXndF
Y1ljenJeezhTX2V6K2dDa2c5cj9wRj5TPlphYEdeaV9XOU1HQjhfa045NQp6Y1dYJlkrczR5XjxP
c0BZUWl0WD4zWnsmUDBXYGFUQUkrLW9Mb0A0bihUdXZEbHBiMSooKDY9fW18b2ptcDlVU30Kei1+
Jko4QVArc3pIQHw1KEVxKm5JUig1Sjg/UVE3T0xHcj5FXz1LfjJfOHA8YmBJWGlPezRDUkckZERt
O21WQjFoCnpJRSlzKCtLNl8oXkE+RiMpc0hwfT19em5XYil3YTh3eE1PKnA5QD5ZNWRXVCNHODV8
MitfPjc1NWdTNXRxSndDNQp6ISQ2dUg2K3A4aFl2X1NJPXFMdnRfI3BAUjE8ZjFNbEQzVSRXdFNH
VHUxYG00MmxmYFdoJGlAZUgzdyZFYz5sbkAKej5sayhue24tX0sqODxabWNyOGxEVCVQeW9XSjte
K09LYmJRUEoySW9rOChhM1Axe3I2cUFlcikpNWY9WSh6P0UjCnpYK19zcFgtUzc+dzRoWlMmMkpH
eVM7PGs5KnxZJj1DUG1QXiNRSig1ND80PWgybVp6RjVAfnMtN1BQdSZkLWBsfQp6Y2N+WnBWUHtx
TWJ+R3V9aHV7T3xFYnNTc3YyVntremNyYD4jP2t0ZWwkMVpgdmkjS08rTyU8NFVwbUMrcTVHI3kK
enBna1h0cW55O1N3RWYpP3dCX3g9dn10JWhUMGZ7ZXQ/dTI0Uj1uQWNtVVpEZXoyMVRyd0A7PTt1
UWlrTDt0c0ZTCnoob1FYRGRBQnlTc3ooUH0rckp4YTlOSV85TGw1KnBGWjZGMSh2emsodFZPVm1e
SU49c1ZCZkxje04/I00+Y0QqUgp6e1JQJHxLMGtpfkopZyNlKHF8KzMpMGQwMD10JVojSS1EX2A0
eUxFa0tHZiV2ND04OEN5Uj44Yzd9YEU9Nm01TkgKeklCaVdDTXE5PVhyN2RIKXpjQHg3YmQtWSt7
RSZrQF5ndGk8WnMwbWlpTE43ayRKc3J2SHhKbUttd0pEcCoxPz9YCno/U25kS3tWPSZqVl9NT3hH
a3Ypdm4rbnp9cn5LdU1XY3RYMHglN0dGRUlLcjJJXzF1cU4oYSY+R3R5fVBeaHZhVAp6Kzl4dGI5
KDB0MDVCIWpXRjZjcGVTQCh7VioxV080LUZZMH0hI2ZvQXxFMW1eOEheKXltYkpvSSFoRkQtey1f
MTcKeiF8QEdoK1hwRmhBIWo/QytwJmV0WjI2MiVaQ3BudSpSU1MhdClTenBtUW50U0JfI2tsJUUx
U0kkZXI4MW5ZTzw3CnpIY2dMPEFuMytpI2R5ZDIyZXlzemp4cURuQDl6eGlBbTUqMlBHZW9kSStp
aElHQ3lsXkpyWk1SKD50VC0jUUhVSwp6PCF+LXRLNkhUWnNlOT90elRGWlJfdlZsV2pmUWdZNzRZ
NipRXzNoeFBsJVNmcGNBXlcmVHpsNFd9a0hveWxjVnYKej0zbDxeKCk9d2VXKnJ0LVRlJlplcGY3
TVFndzY0PEIrPENxeWpDXyhxJjMzXihjYmg9PXtXbSNZNSFpaiM/TXkoCnooKW52diglJEopQm9C
QlkxNms7UkY0bD9uXms/ekBmbz1VYEAyP0goIStKNUVFVXtPQHlnKXMkPWZrKjRlPmE2Ygp6PmZE
aTFCRXV5M0h8KjVrTW8xdjcoWktePWoxJFBoWnw+ViRJSjstdnxGIVEyTn53bng+Y09AQCFgQHF+
MyZzRnwKekl2SVJGcCNRRXdeQkwhQEk1V24lSH5hMHp6JlkmUzlfTlBzeT1hPjQkXlBLajJHMmxU
cFY/ZldPJm85R3s8KTVOCnowaH0mays3OEF4b0tAbnltMVZHfHotSm88IygxZ3MoLS1qdGV8U1J2
b2BnVHhseiQmM1NMbEN0cVdebWA8Skk1Zwp6I0hxaV87cVF4PlVIO0JSaXdsdipfZXpOUTRXfH5U
QkZ7NVdpOz9+UklpJGlsMUFsWG9IPmdoYEA/MX0/LWRaZXcKeiRIVk8rZjUqZV5CPnhoXmM+ZWVg
bURMZil4b1ckemZOVz5BLUhtXkBxaHNhVlIhJWJkX3dxTWRWQipBeWsmSjFLCnpiJk1oZ3NYIVZ1
bHR1bXgpejF9U29nKX1VXkhjaU0pKjtPKXplZmxhd3NXS2h0O3s1bDI1c3gkUnxxYGRoMEpyNgp6
ekNhPUM9bTFeV1dCYiMkP1ZSWHRTOWBpUSpvRSVEPVQ3KDJlQ1dZVWV+SjUoZWQrJFZzJnNGTjMq
Q0xncDF5N0MKek5SVXplPTxvdWpPMGRCSF5iZnwrPjVnNz55SVZRQiYpKlo9cFUyPGlAVjV7VG1l
Z1U/UiR+NzRMI0Z3PTN6VUhlCnp5cFZ4eGB1bElna0Mkby09M2tkTmJednxkKFV0Q2dxQCNRTTRa
fVZEN1VvXz9rUGBGdjlRT2ReSEphcSVAMF5nSQp6dD89SVkme09Kd0Y2YjsjJHg7YUxIRkhkVnk1
OFFGWnU5cDZjUnVsPEpOI1hSakZDMTQlSn07UEopUDZIYDh4PEwKemV+WjZgZkcrNiN0OUliPjQl
NH5LRkwxcVleN2paZ2BDQUJtJS0+U1RHPUMjOzZCckFDI3hjcT9YbkItcmR8VT5kCnomPHpgPFI5
bGpgdG10cUQ5bHRCREw8aXJmdFZpeWZOTFFreC03Q15uez1WVmJLdnlhcFI4aXVaJT03IzdLOXkq
SAp6eDVfMU9xUEg3Szl7eDdyTkMkNyZGRGxKRyg/YHI1R2tgOTQ8bkk9eV5yUSMoPyRRckd7OXVG
fGc7IX0mSH53fmAKejMlfSMpPUJVU3x1RmtaMV9Ke1E3KElYPz17alB7azUzYTU3QCUhQDJ1VTg9
MGZHdHhXOzglVk43ck1tbiQxZ0l6CnpObEJuej9pN19jMyZXWjJxRVRIYnpxSkVoPG9EPntVREJt
SzthdGx3O0xQI2NzWGItNilYQlZ2VloqY3lJM0dGWgp6P0UhUl8temxHYyNhNTNDVUEqYnhpMzI2
aCkxWjZUa19fNkI8VX43fklANjctUn00KXt7X0NJM0RXT201Vyple3QKem5fMyVpZGZKOUpWKDRU
T0Q+fDhBWkc9LXo/ZGtmO0RmKTlzTHFuSE45akU8azc4I09jYHAkXyViaDIzbU1QRGc4CnpWR0F9
NT82MkZ9ejdgIzhXSiZvOSNLJlVRU2p9SH13Pj5AblFGLVREIWtfYCskMiZLdjs1RlozSip2RTNG
WHYmNAp6P2QjVkFQOFNfYWFIUypCbUlgN0pUY3t7YkFNYWR+OSk1TUlNMU5ASnBZcXg2O29kT0B2
WUhOI14qWj8qMD01TzQKejJLQUBJa3JzM34lMko3dUUoM0A3SkN+eT92b3c9TkB1UD9MWTBmSmxi
VElPLV57ez4zeGhNaFlnQXJDUWd0ZHs1CnpiT0M+enQmSCZhQG5mMWh1b0c+TXVxezx6WlVidmNI
P2QhfEU3cTB2TWNCfjNgcXMyeGpnZENRd2dgTEx3S1RoZwp6V3l9WXxmYyVhbm5ZMWp6TmlRI1RM
TjVjaE94bDBsbiUxR1RyLTdYY2R4SkQrWT9yWnM9WiZlWU40Ji15cEQ+WEEKemAxTD1BRjM5eFBY
SFVfTE1uMDVkcThHTjx6VHg8cnd4bll0JTR6Nkd5UF9QNTVtfHdERj9LU2heTGc9fkppWkpBCnot
WCRDISpoMkNnPyVzJWd5amZeaUVZbTsjXmI8fCorPkV3RnNrJkpnWV9XYUFgND41eiZ3ekh1eE5f
VDZHeS1UZAp6Nk4yYnhLMVZrVVhvb1l8bFo8JXh3K1cjO3I7ZTZyQllaUWw+ZUM2ZEJCbHl8Z1R3
YkJ3I0R9Sz5rbWREYGVTe3gKejh8NVZGWGpjPFlCfko5RlpCNn4/aS1qfCY9KWhMR2QycE09alJW
ezBAYGdvfSk2YGU7Zj92YiM8bXo7SlR7aGkwCnptYUYwKiN8UD13N3lEXz8lISN4aioyQWRwKWhQ
aGBCYz1gU1ByRntKTEF6ZktxMX4tKChWb198V2c3OXpMWCRVPwp6K20tQjN1bU18fFVCZWh7dSlN
Szk/ZHtaJUAxdD5hO0xYUFJfKDFuMl5tMGckQD4waGVAd0IlaXBafkxOKmY2d2QKem5DN3ckWTQ0
N3EpJTxTbF5XbU43QExMX3woMih8WWN4Y0MkI14pbkNPQnBTT1BVd2FXTHp8eylFKn4qdlNidGdA
Cno9fXZpWF9uYGE8IXhWZnRsPTVFISQwdkBFezZ8dUhPSV4/ai1LTz9SJVFONClETVMweWt8OzBB
T1gqOHo9Nj4/Pgp6bUB8PSVqMmtGKktvQGtEV34oZTNlNFhecDdARklfbzdPYnFJV1M9YW90UXFK
JlNwKWFeTlZObEgpRU9mKXY5Y1gKek9SS1d6Ozw1fWAxfElPUFh+Z2Y4U1Fhezd3QkR3XnUkK0FV
Tk1yeCEpXndwMntFbGpLYCRue0hTVTM3JjslR1lsCno+SEdZaCZJazB4TjI2JXAmfkNLKHdIVzVu
KGNFQWNmKCo7IUlxMTNsWkVDWiRKcDZ+UXc2X00oKVEmQUVvIT9RKwp6NHN4WG9GR35yZUt8PmpN
UkokK0sqUU1EamleaDhZRTY8PCRidXx9JVI+Y0N4SHFaVWRGOGp4KTdKclJZS0Z0N2YKeiVsUGRz
WX5mRmc4MkBmcENsSExrcUwhbyptcFE/WDkqaHg7YiZNaHZOUTM1NExjb0JhXjNaYFU5Jn48YEFL
alo7CnpRdnp3d3hFdl84NTFHRGhiJG1zLUtBeFpScm0kUW9LcEErelloWUdEPVBKSSg2fWB7aip9
bms1dE5GcFAkODdkMQp6dWVUNVg/dVlsN2owP20zPSpyMEk1fEBUb3IoKitzQn5BPWg9O3hWLTxw
OX1NK21yYl9gMFNETnBQd0dkWnlaaEAKeisofGgtMHtGWGVVOzZCVzkrSE17QUl7Q31DdXlLVmhV
S1IqKSpXbz9OdkNgSSh6JFVoPkRQTlY8an1kdGR5b3wpCnpjel51c0ZFVUBXWXE4YDM5ez9IMUdL
IylALUdAJGVeT0dwKDZINTBfOXlHZE5lfFAhXzllPVppbyhIXjtWT2dOKQp6TlFkZl8tXnBLKEJj
MXY4NzJrWk5BSHReKD1JfWFEUShxMlYkZil3YF9PfHJudkxLMEw5RG54NzclQlZiPEtPNnEKenRD
d1dAeztpdnx0Wk80WkE3b2Z3ajtsPXhJP0NASER6VXRPSkx4PDJBe1ZuaHFHTkExcGdVamVrdT5h
JFI9K2NsCnpAP05oKWtZUmJXQU5xajQ8bWF7SFoke0RhKWMkbU8ob2l9emFXSXxXSlclanZMcHRe
RzVJWGJlQ158RGA2eiVXTAp6P0ByWUkhI0x2Zmh+KjdFPW5RYCZgNjIpPldLNzIzeTUtU2NiYUxQ
O2JaJTY4eytfO1YzN2B4LUVOZTc9SDlnU0QKenBseGwhPTx7QWxibThxejU9ZXVGR1ZvfnByTnZ6
U1F1RnJffEx2bmZnV3MpfHJxaHM/JTRlOyl5aSEzMXZpfUVrCkN1Q1hvdgoKZGlmZiAtLWdpdCBh
L3NyYy94ZW5hZ2VudC9tZXNzYWdlcy5tYyBiL3NyYy94ZW5hZ2VudC9tZXNzYWdlcy5tYwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMjg5YzQ0Ci0tLSAvZGV2L251bGwKKysr
IGIvc3JjL3hlbmFnZW50L21lc3NhZ2VzLm1jCkBAIC0wLDAgKzEsNjYgQEAKK1NldmVyaXR5TmFt
ZXM9KEluZm9ybWF0aW9uYWw9MHgxKQorRmFjaWxpdHlOYW1lcz0oWGVuVXNlcj0weGQ2MCkKKwor
TWVzc2FnZUlkPTB4MDAwMQorRmFjaWxpdHk9WGVuVXNlcgorU2V2ZXJpdHk9SW5mb3JtYXRpb25h
bAorU3ltYm9saWNOYW1lPUVWRU5UX1hFTlVTRVJfUE9XRVJPRkYKK0xhbmd1YWdlPUVuZ2xpc2gK
K1RoZSB0b29scyByZXF1ZXN0ZWQgdGhhdCB0aGUgbG9jYWwgVk0gc2h1dCBpdHNlbGYgZG93bi4K
Ky4KKworTWVzc2FnZUlkPTB4MDAwMgorRmFjaWxpdHk9WGVuVXNlcgorU2V2ZXJpdHk9SW5mb3Jt
YXRpb25hbAorU3ltYm9saWNOYW1lPUVWRU5UX1hFTlVTRVJfUkVCT09UCitMYW5ndWFnZT1Fbmds
aXNoCitUaGUgdG9vbHMgcmVxdWVzdGVkIHRoYXQgdGhlIGxvY2FsIFZNIHJlYm9vdC4KKy4KKwor
TWVzc2FnZUlkPTB4MDAwMworRmFjaWxpdHk9WGVuVXNlcgorU2V2ZXJpdHk9SW5mb3JtYXRpb25h
bAorU3ltYm9saWNOYW1lPUVWRU5UX1hFTlVTRVJfSElCRVJOQVRFCitMYW5ndWFnZT1FbmdsaXNo
CitUaGUgdG9vbHMgcmVxdWVzdGVkIHRoYXQgdGhlIGxvY2FsIFZNIGhpYmVybmF0ZSBpdHNlbGYu
CisuCisKK01lc3NhZ2VJZD0weDAwMDQKK0ZhY2lsaXR5PVhlblVzZXIKK1NldmVyaXR5PUluZm9y
bWF0aW9uYWwKK1N5bWJvbGljTmFtZT1FVkVOVF9YRU5VU0VSX1MzCitMYW5ndWFnZT1FbmdsaXNo
CitUaGUgdG9vbHMgcmVxdWVzdGVkIHRoYXQgdGhlIGxvY2FsIFZNIGVudGVyIHBvd2VyIHN0YXRl
IFMzLgorLgorCitNZXNzYWdlSWQ9MHgwMDA1CitGYWNpbGl0eT1YZW5Vc2VyCitTZXZlcml0eT1J
bmZvcm1hdGlvbmFsCitTeW1ib2xpY05hbWU9RVZFTlRfWEVOVVNFUl9XTUkKK0xhbmd1YWdlPUVu
Z2xpc2gKK1RoZSB0b29scyBub3RpY2VkIHRoYXQgV01JIGJlY2FtZSBub24tZnVuY3Rpb25hbC4K
Ky4KKworTWVzc2FnZUlkPTB4MDAwNgorRmFjaWxpdHk9WGVuVXNlcgorU2V2ZXJpdHk9SW5mb3Jt
YXRpb25hbAorU3ltYm9saWNOYW1lPUVWRU5UX1hFTlVTRVJfU1RBUlRFRAorTGFuZ3VhZ2U9RW5n
bGlzaAorVGhlIHRvb2xzIGluaXRpYXRlZC4KKy4KKworTWVzc2FnZUlkPTB4MDAwNworRmFjaWxp
dHk9WGVuVXNlcgorU2V2ZXJpdHk9SW5mb3JtYXRpb25hbAorU3ltYm9saWNOYW1lPUVWRU5UX1hF
TlVTRVJfVU5TVVNQRU5ERUQKK0xhbmd1YWdlPUVuZ2xpc2gKK1RoZSB0b29scyByZXR1cm5lZCBm
cm9tIHN1c3BlbmQuCisuCisKK01lc3NhZ2VJZD0weDAwMDgKK0ZhY2lsaXR5PVhlblVzZXIKK1Nl
dmVyaXR5PUluZm9ybWF0aW9uYWwKK1N5bWJvbGljTmFtZT1FVkVOVF9YRU5VU0VSX1VORVhQRUNU
RUQKK0xhbmd1YWdlPUVuZ2xpc2gKK1RoZSB0b29scyBleHBlcmllbmNlZCBhbiB1bmV4cGVjdGVk
IGVycm9yLgorLgpkaWZmIC0tZ2l0IGEvc3JjL3hlbmFnZW50L3NlcnZpY2UuY3BwIGIvc3JjL3hl
bmFnZW50L3NlcnZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3
OTQ1NDQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMveGVuYWdlbnQvc2VydmljZS5jcHAKQEAgLTAs
MCArMSwyNDggQEAKKy8qIENvcHlyaWdodCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLgorICogQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCAKKyAqIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgCisgKiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUgbWV0OgorICoKKyAqICogICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIAorICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgCisgKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAqICAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSAK
KyAqICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IAorICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciAKKyAqICAgICBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCAKKyAqIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIAorICogSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSAKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIAorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgCisgKiBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgCisgKiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIAorICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIAor
ICogV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIAorICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSAKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjZGVmaW5lIElOSVRHVUlE
CisjaW5jbHVkZSA8d2luZG93cy5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisKKyNpbmNsdWRlIDx4
ZW5pZmFjZV9pb2N0bHMuaD4KKworI2luY2x1ZGUgInNlcnZpY2UuaCIKKyNpbmNsdWRlICJtZXNz
YWdlcy5oIgorCitpbnQgX19zdGRjYWxsIFdpbk1haW4oSElOU1RBTkNFIGhJbnN0YW5jZSwgSElO
U1RBTkNFIGlnbm9yZSwgTFBTVFIgbHBDbWRMaW5lLCBpbnQgbkNtZFNob3cpCit7CisgICAgaWYg
KHN0cmxlbihscENtZExpbmUpICE9IDApIHsKKyAgICAgICAgaWYgKCFzdHJjbXAobHBDbWRMaW5l
LCAiLWkiKSB8fCAhc3RyY21wKGxwQ21kTGluZSwgIlwiLWlcIiIpKQorICAgICAgICAgICAgcmV0
dXJuIENYZW5BZ2VudDo6U2VydmljZUluc3RhbGwoKTsKKyAgICAgICAgaWYgKCFzdHJjbXAobHBD
bWRMaW5lLCAiLXUiKSB8fCAhc3RyY21wKGxwQ21kTGluZSwgIlwiLXVcIiIpKQorICAgICAgICAg
ICAgcmV0dXJuIENYZW5BZ2VudDo6U2VydmljZVVuaW5zdGFsbCgpOworICAgIH0KKyAgICByZXR1
cm4gQ1hlbkFnZW50OjpTZXJ2aWNlRW50cnkoKTsKK30KKworc3RhdGljIENYZW5BZ2VudCBzX3Nl
cnZpY2U7CisKKy8qc3RhdGljKi8gdm9pZCBDWGVuQWdlbnQ6OkxvZyhjb25zdCBjaGFyKiBmbXQs
IC4uLikKK3sKKyAgICBjaGFyIG1lc3NhZ2VbWEVOSUZBQ0VfTE9HX01BWF9MRU5HVEhdOworICAg
IHZhX2xpc3QgYXJnczsKKworICAgIHZhX3N0YXJ0KGFyZ3MsIGZtdCk7CisgICAgdnNucHJpbnRm
X3MobWVzc2FnZSwgc2l6ZW9mKG1lc3NhZ2UpLCBzaXplb2YobWVzc2FnZSkvc2l6ZW9mKG1lc3Nh
Z2VbMF0pIC0gMSwgZm10LCBhcmdzKTsKKyAgICB2YV9lbmQoYXJncyk7CisKKyAgICBPdXRwdXRE
ZWJ1Z1N0cmluZyhtZXNzYWdlKTsKK30KKworLypzdGF0aWMqLyBpbnQgQ1hlbkFnZW50OjpTZXJ2
aWNlSW5zdGFsbCgpCit7CisgICAgU0NfSEFORExFICAgc3ZjLCBtZ3I7CisgICAgY2hhciAgICAg
ICAgcGF0aFtNQVhfUEFUSCsxXTsKKworICAgIG1nciA9IE9wZW5TQ01hbmFnZXIoTlVMTCwgTlVM
TCwgU0NfTUFOQUdFUl9BTExfQUNDRVNTKTsKKyAgICBpZiAobWdyID09IE5VTEwpCisgICAgICAg
IHJldHVybiAtMTsKKworICAgIGlmIChHZXRNb2R1bGVGaWxlTmFtZUEoTlVMTCwgcGF0aCwgTUFY
X1BBVEgpID09IDApIHsKKyAgICAgICAgQ2xvc2VTZXJ2aWNlSGFuZGxlKG1ncik7CisgICAgICAg
IHJldHVybiBHZXRMYXN0RXJyb3IoKTsKKyAgICB9CisgICAgcGF0aFtNQVhfUEFUSF0gPSAwOwor
CisgICAgc3ZjID0gQ3JlYXRlU2VydmljZUEobWdyLCBTVkNfTkFNRSwgU1ZDX0RJU1BMQVlOQU1F
LCBTRVJWSUNFX0FMTF9BQ0NFU1MsCisgICAgICAgICAgICAgICAgICAgICAgICBTRVJWSUNFX1dJ
TjMyX09XTl9QUk9DRVNTLCBTRVJWSUNFX0FVVE9fU1RBUlQsCisgICAgICAgICAgICAgICAgICAg
ICAgICBTRVJWSUNFX0VSUk9SX05PUk1BTCwgcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAg
IE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwpOworICAgIGlmIChzdmMgPT0gTlVMTCkgewor
ICAgICAgICBDbG9zZVNlcnZpY2VIYW5kbGUobWdyKTsKKyAgICAgICAgcmV0dXJuIC0yOworICAg
IH0KKworICAgIENsb3NlU2VydmljZUhhbmRsZShzdmMpOworICAgIENsb3NlU2VydmljZUhhbmRs
ZShtZ3IpOworICAgIHJldHVybiAwOworfQorCisvKnN0YXRpYyovIGludCBDWGVuQWdlbnQ6OlNl
cnZpY2VVbmluc3RhbGwoKQoreworICAgIFNDX0hBTkRMRSAgIHN2YywgbWdyOworCisgICAgbWdy
ID0gT3BlblNDTWFuYWdlcihOVUxMLCBOVUxMLCBTQ19NQU5BR0VSX0FMTF9BQ0NFU1MpOworICAg
IGlmIChtZ3IgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgc3ZjID0gT3BlblNl
cnZpY2UobWdyLCBTVkNfTkFNRSwgU0VSVklDRV9BTExfQUNDRVNTKTsKKyAgICBpZiAoc3ZjID09
IE5VTEwpIHsKKyAgICAgICAgQ2xvc2VTZXJ2aWNlSGFuZGxlKG1ncik7CisgICAgICAgIHJldHVy
biAtMjsKKyAgICB9CisKKyAgICAvLyB0cnkgdG8gc3RvcCB0aGUgc2VydmljZQorICAgIGlmIChD
b250cm9sU2VydmljZShzdmMsIFNFUlZJQ0VfQ09OVFJPTF9TVE9QLCAmc19zZXJ2aWNlLm1fc3Rh
dHVzKSkKKyAgICB7CisgICAgICAgIFNsZWVwKCAxMDAwICk7CisKKyAgICAgICAgd2hpbGUgKFF1
ZXJ5U2VydmljZVN0YXR1cyhzdmMsICZzX3NlcnZpY2UubV9zdGF0dXMpKQorICAgICAgICB7Cisg
ICAgICAgICAgICBpZiAoc19zZXJ2aWNlLm1fc3RhdHVzLmR3Q3VycmVudFN0YXRlICE9IFNFUlZJ
Q0VfU1RPUF9QRU5ESU5HKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgU2xl
ZXAoMTAwMCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBub3cgcmVtb3ZlIHRoZSBzZXJ2
aWNlCisgICAgRGVsZXRlU2VydmljZShzdmMpOworICAgIENsb3NlU2VydmljZUhhbmRsZShzdmMp
OworICAgIENsb3NlU2VydmljZUhhbmRsZShtZ3IpOworICAgIHJldHVybiAwOworfQorCisvKnN0
YXRpYyovIGludCBDWGVuQWdlbnQ6OlNlcnZpY2VFbnRyeSgpCit7CisgICAgU0VSVklDRV9UQUJM
RV9FTlRSWSBTZXJ2aWNlVGFibGVbMl0gPQorICAgIHsKKyAgICAgICAgeyBTVkNfTkFNRSwgKExQ
U0VSVklDRV9NQUlOX0ZVTkNUSU9OKVNlcnZpY2VNYWluIH0sCisgICAgICAgIHsgTlVMTCwgTlVM
TCB9CisgICAgfTsKKworICAgIGlmICghU3RhcnRTZXJ2aWNlQ3RybERpc3BhdGNoZXIoU2Vydmlj
ZVRhYmxlKSkgeworICAgICAgICBDWGVuQWdlbnQ6OkxvZygiRmFpbGVkIHRvIHN0YXJ0IGRpc3Bh
dGNoZXJcbiIpOworICAgICAgICByZXR1cm4gR2V0TGFzdEVycm9yKCk7CisgICAgfQorICAgIHJl
dHVybiAwOworfQorCisvKnN0YXRpYyovIHZvaWQgV0lOQVBJIENYZW5BZ2VudDo6U2VydmljZU1h
aW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQoreworICAgIHNfc2VydmljZS5fX1NlcnZpY2VNYWlu
KGFyZ2MsIGFyZ3YpOworfQorCisvKnN0YXRpYyovIERXT1JEIFdJTkFQSSBDWGVuQWdlbnQ6OlNl
cnZpY2VDb250cm9sSGFuZGxlckV4KERXT1JEIHJlcSwgRFdPUkQgZXZ0LCBMUFZPSUQgZGF0YSwg
TFBWT0lEIGN0eHQpCit7CisgICAgcmV0dXJuIHNfc2VydmljZS5fX1NlcnZpY2VDb250cm9sSGFu
ZGxlckV4KHJlcSwgZXZ0LCBkYXRhLCBjdHh0KTsKK30KKworQ1hlbkFnZW50OjpDWGVuQWdlbnQo
KSA6IG1faGFuZGxlKE5VTEwpLCBtX2V2dGxvZyhOVUxMKQoreworICAgIG1fc3RhdHVzLmR3U2Vy
dmljZVR5cGUgICAgICAgID0gU0VSVklDRV9XSU4zMjsKKyAgICBtX3N0YXR1cy5kd0N1cnJlbnRT
dGF0ZSAgICAgICA9IFNFUlZJQ0VfU1RBUlRfUEVORElORzsKKyAgICBtX3N0YXR1cy5kd0NvbnRy
b2xzQWNjZXB0ZWQgICA9IFNFUlZJQ0VfQUNDRVBUX1NUT1AgfCBTRVJWSUNFX0FDQ0VQVF9TSFVU
RE9XTjsKKyAgICBtX3N0YXR1cy5kd1dpbjMyRXhpdENvZGUgICAgICA9IDA7CisgICAgbV9zdGF0
dXMuZHdTZXJ2aWNlU3BlY2lmaWNFeGl0Q29kZSA9IDA7CisgICAgbV9zdGF0dXMuZHdDaGVja1Bv
aW50ICAgICAgICAgPSAwOworICAgIG1fc3RhdHVzLmR3V2FpdEhpbnQgICAgICAgICAgID0gMDsK
KworICAgIG1fc3ZjX3N0b3AgPSBDcmVhdGVFdmVudChGQUxTRSwgTlVMTCwgTlVMTCwgRkFMU0Up
OworfQorCitDWGVuQWdlbnQ6On5DWGVuQWdlbnQoKQoreworICAgIENsb3NlSGFuZGxlKG1fc3Zj
X3N0b3ApOworfQorCit2b2lkIENYZW5BZ2VudDo6T25TZXJ2aWNlU3RhcnQoKQoreworICAgIENY
ZW5BZ2VudDo6TG9nKCJPblNlcnZpY2VTdGFydCgpXG4iKTsKK30KKwordm9pZCBDWGVuQWdlbnQ6
Ok9uU2VydmljZVN0b3AoKQoreworICAgIENYZW5BZ2VudDo6TG9nKCJPblNlcnZpY2VTdG9wKClc
biIpOworfQorCit2b2lkIENYZW5BZ2VudDo6T25EZXZpY2VFdmVudChEV09SRCBldnQsIExQVk9J
RCBkYXRhKQoreworfQorCitib29sIENYZW5BZ2VudDo6U2VydmljZU1haW5Mb29wKCkKK3sKKyAg
ICBXYWl0Rm9yU2luZ2xlT2JqZWN0KG1fc3ZjX3N0b3AsIElORklOSVRFKTsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK3ZvaWQgQ1hlbkFnZW50OjpTZXRTZXJ2aWNlU3RhdHVzKERXT1JEIHN0YXRl
LCBEV09SRCBleGl0IC8qPSAwKi8sIERXT1JEIGhpbnQgLyo9IDAqLykKK3sKKyAgICBtX3N0YXR1
cy5kd0N1cnJlbnRTdGF0ZSA9IHN0YXRlOworICAgIG1fc3RhdHVzLmR3V2luMzJFeGl0Q29kZSA9
IGV4aXQ7CisgICAgbV9zdGF0dXMuZHdXYWl0SGludCA9IGhpbnQ7CisgICAgOjpTZXRTZXJ2aWNl
U3RhdHVzKG1faGFuZGxlLCAmbV9zdGF0dXMpOworfQorCit2b2lkIFdJTkFQSSBDWGVuQWdlbnQ6
Ol9fU2VydmljZU1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQoreworICAgIG1faGFuZGxlID0g
UmVnaXN0ZXJTZXJ2aWNlQ3RybEhhbmRsZXJFeChTVkNfTkFNRSwgU2VydmljZUNvbnRyb2xIYW5k
bGVyRXgsIE5VTEwpOworICAgIGlmIChtX2hhbmRsZSA9PSBOVUxMKQorICAgICAgICByZXR1cm47
CisKKyAgICBtX2V2dGxvZyA9IFJlZ2lzdGVyRXZlbnRTb3VyY2UoTlVMTCwgU1ZDX05BTUUpOwor
ICAgIFNldFNlcnZpY2VTdGF0dXMoU0VSVklDRV9SVU5OSU5HKTsKKworICAgIE9uU2VydmljZVN0
YXJ0KCk7CisgICAgd2hpbGUgKFNlcnZpY2VNYWluTG9vcCgpKSA7CisgICAgT25TZXJ2aWNlU3Rv
cCgpOworCisgICAgaWYgKG1fZXZ0bG9nKQorICAgICAgICBEZXJlZ2lzdGVyRXZlbnRTb3VyY2Uo
bV9ldnRsb2cpOworICAgIG1fZXZ0bG9nID0gTlVMTDsKKyAgICBTZXRTZXJ2aWNlU3RhdHVzKFNF
UlZJQ0VfU1RPUFBFRCk7Cit9CisKK0RXT1JEIFdJTkFQSSBDWGVuQWdlbnQ6Ol9fU2VydmljZUNv
bnRyb2xIYW5kbGVyRXgoRFdPUkQgcmVxLCBEV09SRCBldnQsIExQVk9JRCBkYXRhLCBMUFZPSUQg
Y3R4dCkKK3sKKyAgICBzd2l0Y2ggKHJlcSkKKyAgICB7IAorICAgIGNhc2UgU0VSVklDRV9DT05U
Uk9MX1NUT1A6CisgICAgICAgIFNldFNlcnZpY2VTdGF0dXMoU0VSVklDRV9TVE9QX1BFTkRJTkcp
OworICAgICAgICBTZXRFdmVudChtX3N2Y19zdG9wKTsKKyAgICAgICAgcmV0dXJuIE5PX0VSUk9S
OworCisgICAgY2FzZSBTRVJWSUNFX0NPTlRST0xfU0hVVERPV046CisgICAgICAgIFNldFNlcnZp
Y2VTdGF0dXMoU0VSVklDRV9TVE9QX1BFTkRJTkcpOworICAgICAgICBTZXRFdmVudChtX3N2Y19z
dG9wKTsKKyAgICAgICAgcmV0dXJuIE5PX0VSUk9SOworCisgICAgY2FzZSBTRVJWSUNFX0NPTlRS
T0xfREVWSUNFRVZFTlQ6CisgICAgICAgIFNldFNlcnZpY2VTdGF0dXMoU0VSVklDRV9SVU5OSU5H
KTsKKyAgICAgICAgT25EZXZpY2VFdmVudChldnQsIGRhdGEpOworICAgICAgICByZXR1cm4gTk9f
RVJST1I7CisKKyAgICBjYXNlIFNFUlZJQ0VfQ09OVFJPTF9JTlRFUlJPR0FURToKKyAgICAgICAg
U2V0U2VydmljZVN0YXR1cyhTRVJWSUNFX1JVTk5JTkcpOworICAgICAgICByZXR1cm4gTk9fRVJS
T1I7CisKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBTZXRTZXJ2
aWNlU3RhdHVzKFNFUlZJQ0VfUlVOTklORyk7CisgICAgcmV0dXJuIEVSUk9SX0NBTExfTk9UX0lN
UExFTUVOVEVEOworfQpkaWZmIC0tZ2l0IGEvc3JjL3hlbmFnZW50L3NlcnZpY2UuaCBiL3NyYy94
ZW5hZ2VudC9zZXJ2aWNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzQ0
NmU0MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmgKQEAgLTAsMCAr
MSw3NCBAQAorLyogQ29weXJpZ2h0IChjKSBDaXRyaXggU3lzdGVtcyBJbmMuCisgKiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIAorICogd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCAKKyAqIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBt
ZXQ6CisgKgorICogKiAgIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgCisgKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSAKKyAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICogICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIAorICog
ICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgCisg
KiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIAorICogICAgIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIAorICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgCisgKiBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiAKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIAorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVCBIT0xERVIgT1IgCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCAKKyAqIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiAKKyAqIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgCisgKiBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
CisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIAorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiAKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgX19YRU5BR0VOVF9T
RVJWSUNFX0hfXworI2RlZmluZSBfX1hFTkFHRU5UX1NFUlZJQ0VfSF9fCisKKyNpbmNsdWRlIDx2
ZXJzaW9uLmg+CisKKyNkZWZpbmUgU1ZDX05BTUUgInhlbnN2YyIKKyNkZWZpbmUgU1ZDX0RJU1BM
QVlOQU1FIFBST0RVQ1RfTkFNRV9TVFIgIyMgIkludGVyZmFjZSBTZXJ2aWNlIgorI2RlZmluZSBT
VkNfREVTQyAiTW9uaXRvcnMgYW5kIHByb3ZpZGVzIHZhcmlvdXMgbWV0cmljcyB0byBYZW5TdG9y
ZSIKKworY2xhc3MgQ1hlbkFnZW50Cit7CitwdWJsaWM6IC8vIHN0YXRpY3MKKyAgICBzdGF0aWMg
dm9pZCBMb2coY29uc3QgY2hhciogZm10LCAuLi4pOworCisgICAgc3RhdGljIGludCBTZXJ2aWNl
SW5zdGFsbCgpOworICAgIHN0YXRpYyBpbnQgU2VydmljZVVuaW5zdGFsbCgpOworICAgIHN0YXRp
YyBpbnQgU2VydmljZUVudHJ5KCk7CisKKyAgICBzdGF0aWMgdm9pZCBXSU5BUEkgU2VydmljZU1h
aW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KTsKKyAgICBzdGF0aWMgRFdPUkQgV0lOQVBJIFNlcnZp
Y2VDb250cm9sSGFuZGxlckV4KERXT1JELCBEV09SRCwgTFBWT0lELCBMUFZPSUQpOworCitwdWJs
aWM6IC8vIGN0b3IvZHRvcgorICAgIENYZW5BZ2VudCgpOworICAgIH5DWGVuQWdlbnQoKTsKKwor
cHJpdmF0ZTogLy8gc2VydmljZSBldmVudHMKKyAgICB2b2lkIE9uU2VydmljZVN0YXJ0KCk7Cisg
ICAgdm9pZCBPblNlcnZpY2VTdG9wKCk7CisgICAgdm9pZCBPbkRldmljZUV2ZW50KERXT1JELCBM
UFZPSUQpOworICAgIGJvb2wgU2VydmljZU1haW5Mb29wKCk7CisKK3ByaXZhdGU6IC8vIHNlcnZp
Y2Ugc3VwcG9ydAorICAgIHZvaWQgU2V0U2VydmljZVN0YXR1cyhEV09SRCBzdGF0ZSwgRFdPUkQg
ZXhpdCA9IDAsIERXT1JEIGhpbnQgPSAwKTsKKyAgICB2b2lkIFdJTkFQSSBfX1NlcnZpY2VNYWlu
KGludCBhcmdjLCBjaGFyKiogYXJndik7CisgICAgRFdPUkQgV0lOQVBJIF9fU2VydmljZUNvbnRy
b2xIYW5kbGVyRXgoRFdPUkQsIERXT1JELCBMUFZPSUQsIExQVk9JRCk7CisKKyAgICBTRVJWSUNF
X1NUQVRVUyAgICAgICAgICBtX3N0YXR1czsKKyAgICBTRVJWSUNFX1NUQVRVU19IQU5ETEUgICBt
X2hhbmRsZTsKKyAgICBIQU5ETEUgICAgICAgICAgICAgICAgICBtX2V2dGxvZzsKKyAgICBIQU5E
TEUgICAgICAgICAgICAgICAgICBtX3N2Y19zdG9wOworfTsKKworI2VuZGlmCmRpZmYgLS1naXQg
YS9zcmMveGVuYWdlbnQveGVuLmljbyBiL3NyYy94ZW5hZ2VudC94ZW4uaWNvCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljg0NGM5OTNiYTI5MGU1MDU1YTg5MDBjYTg3ODZlYTBlMDMxMTM4YTYKR0lUIGJpbmFyeSBwYXRj
aApsaXRlcmFsIDI1MjE0CnpjbWVIdjMwemdoYH1lUmZEeXhicCVMUFAwUCpEJjtLdXwhKkM3MENQ
JTYmS1lsKipGSzU+M1NvMT5FO0ZfWFQkfQp6dl8jeXUobyNmb3gyJTRabUhORVRjZ3tKTmRvTih4
cntEWCZ8SWZlQ0AwcG9yb145NE1YVUAzQFZKN1RFWHM4cCUKem1TVFhsNU9ha1BJLVFjZ1Y9bHhx
cmEzdCZgOUwhdlpyS1V1N3RDKWYpO0l7XlAhOVpSLWQyZDY/JS1HUTFGVkYyCnooXnVveWk4Y08w
OTFZTztJblI3VVRXUzB7Rn5DeFklNU1yMCRVZCtNKFNyZk01S0AmJHJqME1EVCojRXZSMytqbwp6
Q21FP0NII2U2SE5kNlpATkhPPnlOVnhvRXVvKmtINnJRblRRX3xBTGp2YTFYV0hVQWBaREx8I1RH
fUxJblV1N3wKeiNGaG1HaUhYVCtoN3ZYdDZBUDQobXBHfGRsVENfN0UtMSlMRjRtTVhrIyVTeFBw
YD93a2p6RmpPJEomWmwkV2ZTCnpIZXVIYippNihedDh0IzlENWEkZHkrQTR8cCs7M3lMSmVEbnFM
aH1XeFY+cEFsJT1aKUN9UT1YS1Z+dSo1V0BofQp6WGFhZ1ZFMFhGfTBZcD41dWhGSFpzZTFOZXgr
SkEqPzhTNWBwalFMQlQzWk5ra2xzaiN2e3EwR3EqV3VqdGRydFIKekRmRShoNm47JTBkQVFiV1Uj
ZjxzMSUxN2dDZXdSVk9xY0FeQ2tQYk5RUChGKiEqWVFzVD8oKklPamp4Xyl2eTlwCnpsaUR3ZSlo
QTM+eTlqajZRQmMoWUhCNGAqPCtWNmI0amBATkdeKkBnRE5zejJEWEZGdU1UIzJzdzBLczRVbU1T
Kwp6bU5qLTNGbSRQU3pLRjhzN2ktYz83fGxvNFJRbWlDV3pCYVhOPyN1XiRCb3ckck1zfmZKJnNl
PkJ3OzR3JDNuem0Kempkfj02SHt3RGU5MSo3cVZTJCk2bmVwV3IkSCtXRUpZRVBFVzVNRT4jYVYk
NmdAXyVDPDZQdXpnd1d6dDxTbHMzCnp7RUhhSHlkVyMjSWRMakRVTy08aV96ZTZnTUJjenAmNDFI
K1k0ejNXJnJLbFBMKkc4RU5WYj5PZXAtOHkrUC1SZwp6PDM2S2YjNTEofWpOcDQtPV48NVZBaWwz
fmlveVJ0Oz4rSz0mbHJ5ZDh8OXdEbnc1fkUrKUlZNSp8OEg3VGpDeHYKek5nPiN6YVNrQ19QUDV8
YXAtYz5lZDcxfFgpNGJ1ZGw8T19le2l5ezd5Yj9AUio5I3QrUT9Wanc+angodlY8Rko7CnpOVCoz
NUhYems4MG1ZYyVHTFBqJVVDPFNDPV9UYFcyfl8jekc2VnMySiFFIVBxNEAqZjxlRH4+P1YmbmNf
NV8jNQp6WU0kOXltVGdZdDNZKmxnTUV5PE0hP2dXYFk1Tk0zX1EkRnFAQVg+JEBYVkhiMD0yc2s3
NTZWJU1oPn1EMyFkSSkKeiNOJjU3aDlyaChBckRtYG1qek9KKSkrITR2a2Z5JTU1c2IjYjZLdVgp
ZDc5YjM7bEFhIXlZZCE4MFN0NTlZWSlFCnpzaGxvN3ErKVBtVUBIK3tJcilPKW9hPkFodV5GQTEq
bytnU1RrPzJtQ1R1dzMjQmVQaGVkPSpSYGpkaVlxWUxPVQp6X2FldktrcCttRUFZPDl2cGclYzlR
PTRnV1RDQ35TK2QqNWl4eU0tUlk8T002K1FUZ2Rsb2htY0BJblQlI2B7aU4Kek1VP2x1YGs/ZyE2
WiRkVXNeVEwwZ0B1V0p7clpYVjxIdzZCOXp2eDFTYyFDaGRvam4pT3cxMXVWbk1MQSRmI0xDCnpP
Yj5EdnZ1anJwKTlaU1BgRV59SFdgdmhtUlpFRHFiJWZZWlNCTmQpTGdZbDVpSHo4cVZwQyZSaz0t
bXA5Nz9iaAp6YFIoalFROUJ7ZF9JNDNoIyNSK3l5Y0k0Y3d7OXd5YngwNjchPHZiOHtrdz1QdyFp
JkAoYyhzVzRSTD42bjN5PncKek89TStkaUtSPUlpZEN5dGlNNENqaWo1bUxpcnU/K2l2dEdeaHlw
SVZraDRSc1RTdCFgNn5+U3A2RExsYjVUe1J7Cno3VSQyTzdoaXc8d1lZbHFzPD82RWhQWlg+bWJp
UU91NlhkXmYleCZxQUheQGZ7MzNxO3tkZSl+bk91R0tQNGpRIQp6LXhtMWEmO3E9WXwzOWR2bHxI
PEhhcG55UzM9SERINW9ldyYhc1Y3aHs9Vk1jbypve2Etcm0wY0w2Ki1HdjliJmEKel4hNChwNXVr
PHxVWUA+ekEobXk+VkJPNUVYSTVsdGM9LW1oalooWn5QZkJuQGg5JWdtNSgyRTsrZUVrT1JlK1pf
CnpuPWxiemNJaXJ1NWBpdCRASDc9KmMyNUlORkJ1RjdDSVZwaExiMVlWZTNmKSMwam5UeWptT2dA
WG1zek87d280TAp6YGckXjU7akNzOTZkRFNCMTJxQm1ya2JTZElqaFFgJm5rdWJJPHh2fW8oJnR1
JGJTdWs2PXVISGklfilwMVU7K2kKejRPaihNV2tTM2I+WmsoMjhpRGhXc0ghPy1XJDd6OTs8V09w
JH0rXkxjfiFoPlJuPnIxUCElUklpKFZpbW1+LUpPCnpkej5ROEVMRF55dmhyNmJlQU8oKGhnODxR
UVEwTW5LVSZEaih5eCp9PW1pPlIjYEh5O0BJd3UoMCh9Zjw4azs2KQp6UCprYXNrSUctc0ZsZH1J
angjSyZzUEczPmFXeDdDMCNRWjx1Q2xeYktgdGdpWXNtUWM1UighI1ApWXVmVmhlU1EKejFyJlpL
ZCplezdLUiYqSlZVZCZNNHxLUDttdWwzYTJGMjwqNiUhMEglSSlwbG1HKXUmYXZXNmxJITVmQTJ8
PEFACnpTTldeayoqUzZFJldgREpgaEs8M2NTWDNwb3QtU05FPVFiSUFvRHZwbUE2OSgqMF8rLUVY
NCVkbTNNTm92eTwlSAp6S25gfSEmTWVALWRiR05OeTt2WUZtPSlTTnNOKmVBWFlLNmY/Q2p2K1Ao
RGdrOEUwYz5YVW90bSNNZzZudyQ+XjcKemM/NE5JeVNxYzhwMmx1JVhKY2IrVmBGMmh4ZmRWaFle
fTAwenN8d08kSzZmWnM4RkdUb3ZwMjExc2pIfkUkMThACnpvU29nPSs8aHUmPlVsJjVURCR3SDV7
P2NJJSVsWWUyUzxoNSRLNl4jLShrU2Ymcmd3WGI5T1dndGVTUUVgMXZ7Tgp6KW5tPkN4JXYzfUwm
VGpjVmktNk5aaHY8LXJFISNIbXB5WHleWEM4fmtrSkM/bjM/STAjb2o9SzE+RjJYQXB0ODgKemw3
Vyo3JkNRcnk2OV40ZVdGKFYlVlZZa0ZifTY5cTwxI0p5WVlBcjhuUUIqRDNldmd6KkcxNT9CSUVD
LUVBNCo3Cno3V2xAaU5xYFh7KVpibCkrcHk5c3JkT150X2teeGBYbFVLfl8xUXt3JklGZGBpemJN
aGRyK1h4IW91OWwlLXE2NAp6JEM+QmR1VnBufVc8UXxWVlU9cG8+PjlATWQ2dV85I2N7NDl3bmcr
ekp6c2dHbz9qS0o9VTF1eE5RaVApZzdZZ3AKeklwRitDcDV0KUwmI2R6TmlwQXZsbEA9RXdAMiNG
d0B3cmVnQCY8NyNeOEQ7KDhpUzFVQ21IXk1JMkRSWXY2Qm5CCnpmaj9UbDVPbnJpdEFgZUFfMDtP
RXdGNVZTYTt9JUV3b3s/blpZJnRiaDVCfFNySmVEZHMkO302QEUlNDZPQ14kNQp6Z1hoI2FvfFlt
YiRWRnVFXlhCNDZQcThvRE82K1Y8TEZ8c082VDZ9dSNreiktI2hNMEgjRXhpSkZ9K2JPYVZYTUsK
ejlFLTZPMmIjRXdVNVZhZVMkdVZ8YHFlc09YUzM9ZXImV205QD4rPTQpR2tgPWN8QSY7WS19YVlI
blMwRGxXb1B0CnpIdW1EJUhqZCYtUzRXWkcrKHFRSV9ZeE82eFFjSnZJeCk+am9iS1EkOTwoJFFn
PjQ8aD9YS20tLTdmYXhEbkhXfQp6NHM7ZHcyRHlsdlcyJVZ6P15ZNHstR2p4eEh7IStLeDRNZHsh
fV5LQyEoSkRra00xdD0jYFkzPD8rcC1sUWEhfSYKems5NllCQ3B6KDlNc0BMRWV6Mz8tZU1AfXQ7
YyMoYys2UTlCajJVQTZgdEBTZHJjR2s9PUZNV34mWWtqXl9zcEQkCno7JXckKmFlbVBaYWRHSiFA
enUmS2BUVSFnbW5ZN2hKRXdve3twT28qI1AjZGYjZHFJKkMhYyUyfE5pQGJwTC0zNAp6KjF5VUI4
Nz1UbktjfmpaUCk2TmpWPyU1Q1NGaTQwRD5PRT9CdWl8bFBlOUYoMjljMnNMVFV6aGdxbXsxYHFn
TDwKenI0SjFQe0VRaTVlSWc9ZGgqRn0rYGFYc1h2SHRaVmo2I0VtYFgwcCR2QVc8PWY9KitJXiR6
NDRzQy1uJE1GdTdXCnpkYURlZjktZUl4VEtuUkckK3ZNazRzQUsqNWh8LTA+JXxXXz9QWHwkPU4q
fHNxTURhZjViS1U3OC0qZGNZU3E/QQp6d1VhYj1Tc3EkTjI4RSRqdk1nM2VSYlV7dDVecGVOUCZq
YmFEM3dAMkVic0t4cGZQQjkyUz0xVVNYb3QyfEZAREgKej9YO3x3MUlta3d0KDVaaT9IZyR2Q0At
Z08wJkp8TFomRjNGcX1ofjF4ZU09S1dvUlVlWX47MUlxX31YbzIoYDdnCnpFQHh3SC1CPWJfVFUq
UHhUX2FBKDI4YHVCSjM+M3ErYVY8eCtCWXItXj10c1VjcWdhVXZSbyNlNm93WGR2UnM2Xgp6OGEr
K3ZHcDxWaWgqKVIwK05BX0hYR05TWElBZjF5OHVaMCpwPFk5aTVONUFRT0NLJWtCXlpUcE9UJUs7
VkJ5Pl8KekNMeVY1diErZChDZE5jTlROb0VKTCNWbFA8dlAoWkcwfUFASkRabzdBODNjeihESzt0
bGBuT0UhMyQ8VmtWKllUCnoqYE0rQ1E1O2RLam9lMT8taCs0X0dYND43RWVkJj9rKm1DV2E3Xldg
aFgkZVNwMElOPWY+dz89U0N1UGQ5bmJ9eAp6JkBIIXNZenNFQVBqTz1DODJXdCpfOWp7fCpyJnt7
PV9wcGx4ezc1ezklNXE/Wj9VYkpuPmYoTUwrdE5kUDMmcG0KekU0SD8tQyUpe2M2RFBYKml1fjZE
TVNpQ2A7PX4ofjsoVUp9YWVreil4SDdefFRwdzNNOVBYSllQN1gqR1haa2h+Cno9U0lGSj90TDAw
X1V6ZHM0ancheEBBSD1+VTZTfHBoWXVmJHBNVTtZe1FCIyF8REk9U3txYi03Wnd2ZmlaVU95MQp6
I1lfZ3h4fHh9Y2xiZjU5amhWN3NuMz1tTU0tREZMYT9MTz1LQ31ZQ2pFXnw5O0FrZXl0UUBfKXQy
I1FtZHdjVzIKemhMeEZfd1BRSiomZVBwbj1VdlhSb1ZBJTUmWCNsPnltOEMxU011ZE5iLUhTNS1u
TS1DXjZwXnA8Yjx1Nm5JI3tsCno9eVpWMnlARGtoOzNGNjxSRGdZcDt6S3xTPjdZZUw8d1VaZyVy
YnxXb29uVUZ1NkFaOW1CRkNDYz13MlJrYSFvRgp6JF96a1JLYFJGQFdGVSltN0J7PmUzXlNxUUU5
Png9KExad0dCUCgtO0NCdWVNbz43VjYkPyMoWUZtUnhWVj58JDkKeiZgPF4qQEluVCUmezVfVzdY
T0h8MjE7T3lWYTAlYkglNF92VH1BQHFidykybktnTE1MSjFVUns0UTFjfkZKdkdLCno5bmJ9eHxG
d0VSSHY/QDJUa2VieU1seiQ8dEZPS351Uz1JTVUlY19nODwhWkRkLXZ9Qlc4YzFncDglWnhzYXY7
aAp6LSFsRDU9Z3lyXndyYlVDSE9xWCRjbyh0Xj16dVFoZ3prVTVLVWsqKTFJTTVeaXd8Tm49Uk1u
RV9VUXRBOTVHX1YKeigrTHdNSmV4ZHV2YyNNQGIwfEFJVExOaX40aiVCYiV1fXdAUm87Wj51Jnps
QV5pT2pKYmkpUjBTcn5OdC0lN0YkCnpHWH5uamZ1VW8+dil9VyVPQEdqUWhKV2oocXxseXNKNXY2
akZwMH11VCFgUCNPQ1lWJCEyQDIlWG0jbjt0Smx3NQp6a0ctc1ZHR2oxb2FMX1NlNlNraS1eVUpP
bCVWRTQ9T2difEgqdjVOM2QtZzFaLXw2WTsmejgtYU90fllIPSpwbX4KemJaZE15eDtybkI/eXNz
IzQ+dzI5X2RCQktgPCFUcmhuIy02RFQzfj00NWhtbjBkKHZBcyZyKzV5T2Ywdj16YEFmCnotTWlt
eSp8T3pFd2wjcilJZkQ1UCtiPXlZU08mZ2haTk5HYSFoT0FLQFppQnVGYjxabyV8bTA3PXRoYmct
Tl84MQp6Mk9IfHMhfG0pTns2eEdCaCV8digxfEJZZHVzKXBiV0NUKnQ9dF58eD9JZU91PXc9JkZk
NSlaQ25eUEhtVjRERlMKejtMOGltWlJXJDZMN2dFTiNfZShmP1NucXdLUmsmRk1ePldTYkEjd1Vg
fHlDPF59JEJRWFo3aG16OyhJNUF6WVRCCnpUbzJHdCN5c0dhR1UkYEZWUlU7PTA5X21FRHN7c0tZ
O2sqQ1c4MVNCQmo1dUF6UUN1eTk4MWlERzNWVC1PYDllPgp6Jkw0fiZKTkRfKW5VZzkxP2ZQYCVW
OyRYSDkhbUd0Z3dlZkteJSE7Tz9nfTBrT3VNX1I0JjdaXmh3ZHo/Tz9NV1gKemZOM2FgSm02aFhT
SVhYNyV7b3tZV1Fzb1lxR099IzZLdWdJPF4/fC1FbiMwITJsTkJSbEhyTUZpTlZrMVNaNlNBCnow
e1ptbmJNTzg0LSsjSjxePDVhXk5qRTxBcXVVRT5OIzc5UG8qelFEdlYhVD55cWZlS19zNGcwMF9u
VGlmcGx8TAp6ME50RXYwO1p1JUAtWGtNJSRqczdKNlAoXz5zJH4qTVUjQiMhWE9XViYyaSgjSndx
TVg3eFYraDY2T1BaRHxLQ0IKekk+dFFLRW5TWnVKQFV7NyZ+dDlFQ3RYa1RySkVUKzU7dFpBKHYy
QWJSNWFiNmlheERRKkMrYz87VXBnX3tGcElPCnpON3A4SikzcHgpRkJQMC04cF48UG9xZEUxV1Q2
QVBabGQxTUtQTzE/b0VAT2wwWTBjPjNHKUdTVEV+RW9DRlRPdAp6Rm01WEljd2RiJTI7V2NqdHch
SWJkUXN0Jj5JJTNYKkN6VlZScmNATzQ/TzljX2RNdUkzYT0rKS0wQVlARHMqe04Kejc1YUxGOCt8
PnpheHE0NW5yU0VsNHx1UDxRO29oRT1mT0k+cV5AaElKTH1mJGVFWXM5byRPc3pfNSp4VD1reF5q
Cno0Kn5aRnFqQUp9dzAtJGJvalNkYWJxNGImY1deajsjV3VlZz8/dkNSb2gkNj88KmAtaT4oVEQ/
NzVqNShYbDElTQp6eEZUSGA7N2FIRnh6UERPJlVDSn42UEBlbk5hdVBPMEN8QVJ6eW5eJFRwVjBV
PlZQaWp5cXI9XitKRyhLKHJgRCoKejlUWUNfNjxDK2x3SDViPUFvdlFPd0YkcyEleCFtYHVWPUIy
WjZCT09YTD5yKHJJR0g4RHMqdn04PVlyKz1MU0B5Cnp2d2RDWU9mTSVvLVFBSCtiKm4oOXh8RkFy
b3l5VjRqXiplPzJZV2o0bnFCR09HVnAqR0dMVklpdiVRPzkmaHJEZwp6RXJ3Syp3cVc8LWgkXnhp
elE4QmtBSzFzcTRCViUmKk8wSGpJRkBiQzw4MWlJa3QzZmhvLXZ2NytMb3RQOVYqbEUKel9MWFRf
K2UpO3d3SlItYz18VzRJSkphSDFDdEIzaGtycEw3KEJneSZiZztQe2VjOTVRekhHczBaYmVfYlFX
OGcqCnp3bSFqKnZnNjd0WGszQV44I35aXiowQ1ZUa3JwOyV5e3RSOE9HUEA+Z1dJTUx3XjlGIWJm
Jks+PCtyZ1ZfPUl0IQp6LWx3dEd6PE1QNmZNYmslSChxYVU7YTwzUFAhYipNUD1PQW1eYGFZdipY
WmBgK2h5WUImNl9sRFkoTHIlWEdAMEAKekVhPndsPUF+a0R5ZTtrQnhRNihmeUUxWDw9empYVkxx
JDZGU348JF5TZX1rfGFpRF4oaiYhVmpJZjc1e088aipCCnp2QUB7IVZjIWJoWkZuQ3gyeU1USj52
XzFUNiYtQz9qKmhuRnsoZEsheyZWKlJAcHBhbj9DRGNeYmM5I34ydjdkfQp6bGVWdXxLPVkhPyk0
b1JMYmcrP2A1JXhCK3BqaVhqT0ZyLSQlNCN9KWB7QFZEPm01cG1uXzFFNCYyMT5KcjdheksKeilz
RnFKbXdwXmR2THlKWF81dD5NeSVeUXVKRUpfO1l2KUhGZWVgcmctejNVeVlFNmUmJER3MiFuTGc2
bGs4WWpGCnpFel5JXnBLflhVKTEqZTh2QF9iQV9DXmFtcnBII0hoWSMrVGtreygrbC1ye3F3SHho
XkdwN1RNRSRCY0tPRkVjbgp6clREPTx6P1h3YlJzYFIkPWlfbUhtM193RXlEb2ZaUk5gKyV8Rz04
RnZuaylsNlJjPC0oQWJqcCMjenVGWm9ocF4Kej9DSHxWWTVGI1Y/YjU9N2B9Yio1cnYleSVWTD5e
T2Y+dVVZUXtMXyFyTGpzSGB0ezw8OE1NMmg4U1JjJXVxVmJgCnorSnRUUkFibndmYn5kZGoqQ09u
Xyo9SWFJQio2RXNVQXctRHY5bn1pM2hqKENyeVRZLUMmcSR5YVhhcDZYd0ViPAp6KzhOMjx2aXh5
Zj0kQShpT047Pys5M1ghRCtpJGVzIT8kVH1zMT9sXigyM0IjU3w3bl9FZStxVjlAJEh+Oz55dkUK
ejIwfXZHaysjZ0ZaVEo5UmEkK3J7ZWZXcW1xJkBAVGUmKSR6Q2t0YXw8eSMkVFRaOT5IWW9HI1kj
QDcweDd+ejhVCnpjZGtQWnViZU0pSml0SHJkXzM8RUpeSkIkckpkQ304MmJPaXRzOWluTj1JOCty
eWQ1anElUzdeeig8VEJKamIhYAp6bTstKmk9NU5GTHh+NC1JWjROVnwmRWJxTkw3Tk93a01qb0Q3
VXg3KWNDMz1+U35+Y1dtcH1qYm8lWilqRnckd0wKei1fU09FUUc3QlpfeX1MfEVYdXkpY3srZ28t
dlFkSF9GPUB8SmlqbkwzJHZpKFElQlM5enkxMiR6QSRXYUUmY2lBCnprdVBrPSY/b29eVXdJQ0gl
ZjhGfDBNQ2FhcDFhUmhONHBTenhCYiVDKkVmTTQtbmdiO1Y9O2EtS1RYcFpeTFo7Vwp6WD5DMnJt
JG4xbjszTCk8WnU2aG1mMUdYOTtrRDs/Slp0bEo9WUpkUDs7WWQ0eTw3ZnJKaS01MiF+NCpAVEdv
SHQKejdKUzgtZnZOdz9nOVJCTyNFZ34kcnUwKHMlUjxjUSF7IWxrZUtsPSEpNHVyZ2szVlJgezB5
MnspMUg8RnxBcWNpCno+PksjNmppMmluS1pfJUhlLWs3bW1Jai0lWlVzd2Zudm91QXh5RlpoRj1K
ZXZOXzRhNnhfKWdtXiUtP0N0PUgtTgp6RkRXSjVsTkpQLT4rTVJ0MktMfkN3NXs1T2tMdmpPaz10
TEp6Z3NYVDdQSmJaZyNraWhhWk83QzdTKiglTVhWb0sKejctJmB1bEBJKE0xPXtta2QwM0E1bSVa
U0FfZCl4bkclTFdPU1UyMHpZKWJwPWdYUn19Uk0oJSY/N3YoO2RFZDRQCnp2fWBXUnR8MjVBKjBR
Q0FBdlZPbik4T3s4cjE/UD5HKFhUPkIwSXAwRyklMypgXnhOJDVeWmJQe3RzP0d6aEMldwp6NkV5
JGhfaH57NlRnbmJwP1hXJUFtRzs+TyVgZjw8YGhTVzJtLWpFOCVkPkkrJUllcFY9MmFJRzNxeUhk
VGYwMlgKejU4KnY7TyZpSnp3NCRzNE9VbVNTJUIqMjdHMFdlQXJWWj0mKyViUm8kTl5keT9uKHVg
PH4pNyFNMFN0cVNPTzdjCnpoajtJIShJSiYrWlVFYjJkJDBAcF5KfHNVYHZvNnl8SDRAJWAhRHdv
ZD9wcG9gLWVaWFF1JG9XUzRiP1pVeno2RAp6YipBanY0d015QW8tJTlOKFkheiNuIz03eSpXWiQ2
KXYlPExTRUFgUi1ZYis5ZSFPPnc3UlVRWmVIbVFXeXtTWCMKelBqMmg3MEBrTFJIO1UtKCMwWipF
dnopWT5VQl4tU3E0QDxMdjQ2bU1FQm1rUS0peWprVmgrISQ/THNxa2YpKykyCnooISQ3VWx3R2U5
VyE3PH5jXzl1b212dj9ZK1I8JDg9VFR1a2JvYjZ9PjU2SDRCOUFAdyMoXkRhcmpNQnNIdWg+bwp6
S1I+dTxHflNAWlB7KTZNeytYdFk5ODkwb3N6X09FS1JjfGxeYTtMVT95NzYyO3JgaUA9Zkd6ZUwk
ZjwxKFI0NEsKeiFfaHZwcTtWaUVpMU1iYWFDZSRsbS1gaitINjE3PXhINnFUYitXOHhsPXB4bTN1
alRmdU8rNFhTZF9xJFdfKDY7CnpgUW1mJDY7RjZQWkN8XkotVk9KcWRFciYxUHcpKzYyV1E2SV9K
Kz9kPH4jP3dVPF9xV29sS3Y0MitDXlVNSnJsSAp6KDJ9SXV2Pj9gQj1JNGQ2by1oeH1TK3xPUXty
UlYye1BaTEpZSmpXOXpvM35sb29KZlEkX1VlYXRWek9gJDA2KGIKej5jQjJKcDBGMXgzenlFSHFq
d1ZgWG97eTkhOGVRQG9PYHFYYHNZVkghKmt3PmB7ZiMqKFBwJHlxTTBHQ3c1QyVjCnp0JFp6eG1i
UXFYMSZ4QyNFNG4oKGpxOygpbT5RSkg+M0xEVUcmZlI1ezAkI3YpYzJxe1ZieTRNSiREfHYmTlF2
TQp6eX5JPk1KQUdReHtMOWh3OHMjWkgoMUIrMV8/WFhuN2JlIWA9anBvcVkjbU9eVDFDP0dIcW9A
UWVMU3R7KHV+JTsKeihTbH0yYFZmNEFaYHtzNXUmK2tYQDJkWXNlZWtoNi1eV0A7KGZTXihYPzIl
bVRKYyZ1RXFiTHNLWFpyQnl5ek5+Cno1JFF7Rj5VLTB5eTQ3ZSNvaG1lPVIlSj5MdTFNMl5UcUxG
aWF2Y0o9ND5XTElEKzM/K0FxUlFyZnhnVWAwSTdkTAp6UWU5ZnNJKSt3dFlEJFplIXdKM153RWNZ
Y3pyXns4U19leitnQ2tnOXI/cEY+Uz5aYWBHXmlfVzlNR0I4X2tOOTUKemNXWCZZK3M0eV48T3NA
WVFpdFg+M1p7JlAwV2BhVEFJKy1vTG9ANG4oVHV2RGxwYjEqKCg2PX1tfG9qbXA5VVN9CnotfiZK
OEFQK3N6SEB8NShFcSpuSVIoNUo4P1FRN09MR3I+RV89S34yXzhwPGJgSVhpT3s0Q1JHJGREbTtt
VkIxaAp6SUUpcygrSzZfKF5BPkYjKXNIcH09fXpuV2Ipd2E4d3hNTypwOUA+WTVkV1QjRzg1fDIr
Xz43NTVnUzV0cUp3QzUKeiEkNnVINitwOGhZdl9TST1xTHZ0XyNwQFIxPGYxTWxEM1UkV3RTR1R1
MWBtNDJsZmBXaCRpQGVIM3cmRWM+bG5ACno+bGsobntuLV9LKjg8Wm1jcjhsRFQlUHlvV0o7XitP
S2JiUVBKMklvazgoYTNQMXtyNnFBZXIpKTVmPVkoej9FIwp6WCtfc3BYLVM3Pnc0aFpTJjJKR3lT
OzxrOSp8WSY9Q1BtUF4jUUooNTQ/ND1oMm1aekY1QH5zLTdQUHUmZC1gbH0KemNjflpwVlB7cU1i
fkd1fWh1e098RWJzU3N2MlZ7a3pjcmA+Iz9rdGVsJDFaYHZpI0tPK08lPDRVcG1DK3E1RyN5Cnpw
Z2tYdHFueTtTd0VmKT93Ql94PXZ9dCVoVDBme2V0P3UyNFI9bkFjbVVaRGV6MjFUcndAOz07dVFp
a0w7dHNGUwp6KG9RWERkQUJ5U3N6KFB9K3JKeGE5TklfOUxsNSpwRlo2RjEodnprKHRWT1ZtXklO
PXNWQmZMY3tOPyNNPmNEKlIKentSUCR8SzBraX5KKWcjZShxfCszKTBkMDA9dCVaI0ktRF9gNHlM
RWtLR2YldjQ9ODhDeVI+OGM3fWBFPTZtNU5ICnpJQmlXQ01xOT1YcjdkSCl6Y0B4N2JkLVkre0Um
a0BeZ3RpPFpzMG1paUxON2skSnNydkh4Sm1LbXdKRHAqMT8/WAp6P1NuZEt7Vj0malZfTU94R2t2
KXZuK256fXJ+S3VNV2N0WDB4JTdHRkVJS3IySV8xdXFOKGEmPkd0eX1QXmh2YVQKeis5eHRiOSgw
dDA1QiFqV0Y2Y3BlU0Aoe1YqMVdPNC1GWTB9ISNmb0F8RTFtXjhIXil5bWJKb0khaEZELXstXzE3
CnohfEBHaCtYcEZoQSFqP0MrcCZldFoyNjIlWkNwbnUqUlNTIXQpU3pwbVFudFNCXyNrbCVFMVNJ
JGVyODFuWU88Nwp6SGNnTDxBbjMraSNkeWQyMmV5c3pqeHFEbkA5enhpQW01KjJQR2VvZEkraWhJ
R0N5bF5KclpNUig+dFQtI1FIVUsKejwhfi10SzZIVFpzZTk/dHpURlpSX3ZWbFdqZlFnWTc0WTYq
UV8zaHhQbCVTZnBjQV5XJlR6bDRXfWtIb3lsY1Z2Cno9M2w8XigpPXdlVypydC1UZSZaZXBmN01R
Z3c2NDxCKzxDcXlqQ18ocSYzM14oY2JoPT17V20jWTUhaWojP015KAp6KCludnYoJSRKKUJvQkJZ
MTZrO1JGNGw/bl5rP3pAZm89VWBAMj9IKCErSjVFRVV7T0B5ZylzJD1mayo0ZT5hNmIKej5mRGkx
QkV1eTNIfCo1a01vMXY3KFpLXj1qMSRQaFp8PlYkSUo7LXZ8RiFRMk5+d254PmNPQEAhYEBxfjMm
c0Z8CnpJdklSRnAjUUV3XkJMIUBJNVduJUh+YTB6eiZZJlM5X05Qc3k9YT40JF5QS2oyRzJsVHBW
P2ZXTyZvOUd7PCk1Tgp6MGh9JmsrNzhBeG9LQG55bTFWR3x6LUpvPCMoMWdzKC0tanRlfFNSdm9g
Z1R4bHokJjNTTGxDdHFXXm1gPEpJNWcKeiNIcWlfO3FReD5VSDtCUml3bHYqX2V6TlE0V3x+VEJG
ezVXaTs/flJJaSRpbDFBbFhvSD5naGBAPzF9Py1kWmV3CnokSFZPK2Y1KmVeQj54aF5jPmVlYG1E
TGYpeG9XJHpmTlc+QS1IbV5AcWhzYVZSISViZF93cU1kVkIqQXlrJkoxSwp6YiZNaGdzWCFWdWx0
dW14KXoxfVNvZyl9VV5IY2lNKSo7Tyl6ZWZsYXdzV0todDt7NWwyNXN4JFJ8cWBkaDBKcjYKenpD
YT1DPW0xXldXQmIjJD9WUlh0UzlgaVEqb0UlRD1UNygyZUNXWVVlfko1KGVkKyRWcyZzRk4zKkNM
Z3AxeTdDCnpOUlV6ZT08b3VqTzBkQkheYmZ8Kz41Zzc+eUlWUUImKSpaPXBVMjxpQFY1e1RtZWdV
P1Ikfjc0TCNGdz0zelVIZQp6eXBWeHhgdWxJZ2tDJG8tPTNrZE5iXnZ8ZChVdENncUAjUU00Wn1W
RDdVb18/a1BgRnY5UU9kXkhKYXElQDBeZ0kKenQ/PUlZJntPSndGNmI7IyR4O2FMSEZIZFZ5NThR
Rlp1OXA2Y1J1bDxKTiNYUmpGQzE0JUp9O1BKKVA2SGA4eDxMCnplflo2YGZHKzYjdDlJYj40JTR+
S0ZMMXFZXjdqWmdgQ0FCbSUtPlNURz1DIzs2QnJBQyN4Y3E/WG5CLXJkfFU+ZAp6Jjx6YDxSOWxq
YHRtdHFEOWx0QkRMPGlyZnRWaXlmTkxRa3gtN0Nebns9VlZiS3Z5YXBSOGl1WiU9NyM3Szl5KkgK
eng1XzFPcVBIN0s5e3g3ck5DJDcmRkRsSkcoP2ByNUdrYDk0PG5JPXleclEjKD8kUXJHezl1Rnxn
OyF9Jkh+d35gCnozJX0jKT1CVVN8dUZrWjFfSntRNyhJWD89e2pQe2s1M2E1N0AlIUAydVU4PTBm
R3R4Vzs4JVZON3JNbW4kMWdJegp6TmxCbno/aTdfYzMmV1oycUVUSGJ6cUpFaDxvRD57VURCbUs7
YXRsdztMUCNjc1hiLTYpWEJWdlZaKmN5STNHRloKej9FIVJfLXpsR2MjYTUzQ1VBKmJ4aTMyNmgp
MVo2VGtfXzZCPFV+N35JQDY3LVJ9NCl7e19DSTNEV09tNVcqZXt0CnpuXzMlaWRmSjlKVig0VE9E
Pnw4QVpHPS16P2RrZjtEZik5c0xxbkhOOWpFPGs3OCNPY2BwJF8lYmgyM21NUERnOAp6VkdBfTU/
NjJGfXo3YCM4V0ombzkjSyZVUVNqfUh9dz4+QG5RRi1URCFrX2ArJDImS3Y7NUZaM0oqdkUzRlh2
JjQKej9kI1ZBUDhTX2FhSFMqQm1JYDdKVGN7e2JBTWFkfjkpNU1JTTFOQEpwWXF4NjtvZE9AdllI
TiNeKlo/KjA9NU80CnoyS0FASWtyczN+JTJKN3VFKDNAN0pDfnk/dm93PU5AdVA/TFkwZkpsYlRJ
Ty1ee3s+M3hoTWhZZ0FyQ1FndGR7NQp6Yk9DPnp0JkgmYUBuZjFodW9HPk11cXs8elpVYnZjSD9k
IXxFN3Ewdk1jQn4zYHFzMnhqZ2RDUXdnYExMd0tUaGcKeld5fVl8ZmMlYW5uWTFqek5pUSNUTE41
Y2hPeGwwbG4lMUdUci03WGNkeEpEK1k/clpzPVomZVlONCYteXBEPlhBCnpgMUw9QUYzOXhQWEhV
X0xNbjA1ZHE4R048elR4PHJ3eG5ZdCU0ejZHeVBfUDU1bXx3REY/S1NoXkxnPX5KaVpKQQp6LVgk
QyEqaDJDZz8lcyVneWpmXmlFWW07I15iPHwqKz5Fd0ZzayZKZ1lfV2FBYDQ+NXomd3pIdXhOX1Q2
R3ktVGQKejZOMmJ4SzFWa1VYb29ZfGxaPCV4dytXIztyO2U2ckJZWlFsPmVDNmRCQmx5fGdUd2JC
dyNEfUs+a21kRGBlU3t4Cno4fDVWRlhqYzxZQn5KOUZaQjZ+P2ktanwmPSloTEdkMnBNPWpSVnsw
QGBnb30pNmBlO2Y/dmIjPG16O0pUe2hpMAp6bWFGMCojfFA9dzd5RF8/JSEjeGoqMkFkcCloUGhg
QmM9YFNQckZ7SkxBemZLcTF+LSgoVm9ffFdnNzl6TFgkVT8KeittLUIzdW1NfHxVQmVoe3UpTUs5
P2R7WiVAMXQ+YTtMWFBSXygxbjJebTBnJEA+MGhlQHdCJWlwWn5MTipmNndkCnpuQzd3JFk0NDdx
KSU8U2xeV21ON0BMTF98KDIofFljeGNDJCNeKW5DT0JwU09QVXdhV0x6fHspRSp+KnZTYnRnQAp6
PX12aVhfbmBhPCF4VmZ0bD01RSEkMHZARXs2fHVIT0leP2otS08/UiVRTjQpRE1TMHlrfDswQU9Y
Kjh6PTY+Pz4Kem1AfD0lajJrRipLb0BrRFd+KGUzZTRYXnA3QEZJX283T2JxSVdTPWFvdFFxSiZT
cClhXk5WTmxIKUVPZil2OWNYCnpPUktXejs8NX1gMXxJT1BYfmdmOFNRYXs3d0JEd151JCtBVU5N
cnghKV53cDJ7RWxqS2AkbntIU1UzNyY7JUdZbAp6PkhHWWgmSWsweE4yNiVwJn5DSyh3SFc1bihj
RUFjZigqOyFJcTEzbFpFQ1okSnA2flF3Nl9NKClRJkFFbyE/USsKejRzeFhvRkd+cmVLfD5qTVJK
JCtLKlFNRGppXmg4WUU2PDwkYnV8fSVSPmNDeEhxWlVkRjhqeCk3SnJSWUtGdDdmCnolbFBkc1l+
ZkZnODJAZnBDbEhMa3FMIW8qbXBRP1g5Kmh4O2ImTWh2TlEzNTRMY29CYV4zWmBVOSZ+PGBBS2pa
Owp6UXZ6d3d4RXZfODUxR0RoYiRtcy1LQXhaUnJtJFFvS3BBK3pZaFlHRD1QSkkoNn1ge2oqfW5r
NXRORnBQJDg3ZDEKenVlVDVYP3VZbDdqMD9tMz0qcjBJNXxAVG9yKCorc0J+QT1oPTt4Vi08cDl9
TSttcmJfYDBTRE5wUHdHZFp5WmhACnorKHxoLTB7RlhlVTs2Qlc5K0hNe0FJe0N9Q3V5S1ZoVUtS
KikqV28/TnZDYEkoeiRVaD5EUE5WPGp9ZHRkeW98KQp6Y3pedXNGRVVAV1lxOGAzOXs/SDFHSyMp
QC1HQCRlXk9HcCg2SDUwXzl5R2ROZXxQIV85ZT1aaW8oSF47Vk9nTikKek5RZGZfLV5wSyhCYzF2
ODcya1pOQUh0Xig9SX1hRFEocTJWJGYpd2BfT3xybnZMSzBMOURueDc3JUJWYjxLTzZxCnp0Q3dX
QHs7aXZ8dFpPNFpBN29md2o7bD14ST9DQEhEelV0T0pMeDwyQXtWbmhxR05BMXBnVWpla3U+YSRS
PStjbAp6QD9OaClrWVJiV0FOcWo0PG1he0haJHtEYSljJG1PKG9pfXphV0l8V0pXJWp2THB0Xkc1
SVhiZUNefERgNnolV0wKej9AcllJISNMdmZofio3RT1uUWAmYDYyKT5XSzcyM3k1LVNjYmFMUDti
WiU2OHsrXztWMzdgeC1FTmU3PUg5Z1NECnpwbHhsIT08e0FsYm04cXo1PWV1RkdWb35wck52elNR
dUZyX3xMdm5mZ1dzKXxycWhzPyU0ZTspeWkhMzF2aX1FawpDdUNYb3YKCmxpdGVyYWwgMApIY21W
P2QwMDAwMQoKZGlmZiAtLWdpdCBhL3NyYy94ZW5hZ2VudC94ZW5hZ2VudC5yYyBiL3NyYy94ZW5h
Z2VudC94ZW5hZ2VudC5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NzJk
MTYyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3hlbmFnZW50L3hlbmFnZW50LnJjCkBAIC0wLDAg
KzEsNjAgQEAKKy8qIENvcHlyaWdodCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLgorICogQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCAKKyAqIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgCisgKiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUg
bWV0OgorICoKKyAqICogICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIAorICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgCisgKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAqICAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSAKKyAq
ICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIAor
ICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciAKKyAqICAgICBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCAKKyAqIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIAorICogSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSAKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIAorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgCisgKiBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgCisgKiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIAorICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIAorICog
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IAorICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSAKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisKKyNpbmNsdWRlIDx3aW5kb3dz
Lmg+CisjaW5jbHVkZSA8bnR2ZXJwLmg+CisKKyN1bmRlZiBWRVJfQ09NUEFOWU5BTUVfU1RSCisj
dW5kZWYgVkVSX1BST0RVQ1ROQU1FX1NUUgorI3VuZGVmIFZFUl9QUk9EVUNUVkVSU0lPTgorI3Vu
ZGVmIFZFUl9QUk9EVUNUVkVSU0lPTl9TVFIKKworI2luY2x1ZGUgPHZlcnNpb24uaD4KKworI2Rl
ZmluZSBWRVJfQ09NUEFOWU5BTUVfU1RSICAgICAgICAgVkVORE9SX05BTUVfU1RSCisjZGVmaW5l
IFZFUl9MRUdBTENPUFlSSUdIVF9TVFIgICAgICAiQ29weXJpZ2h0IChjKSBDaXRyaXggU3lzdGVt
cyBJbmMuIgorCisjZGVmaW5lIFZFUl9QUk9EVUNUTkFNRV9TVFIgICAgICAgICAiWEVOSUZBQ0Ui
CisjZGVmaW5lIFZFUl9QUk9EVUNUVkVSU0lPTiAgICAgICAgICBNQUpPUl9WRVJTSU9OLE1JTk9S
X1ZFUlNJT04sTUlDUk9fVkVSU0lPTixCVUlMRF9OVU1CRVIKKyNkZWZpbmUgVkVSX1BST0RVQ1RW
RVJTSU9OX1NUUiAgICAgIE1BSk9SX1ZFUlNJT05fU1RSICIuIiBNSU5PUl9WRVJTSU9OX1NUUiAi
LiIgTUlDUk9fVkVSU0lPTl9TVFIgIi4iIEJVSUxEX05VTUJFUl9TVFIKKworI2RlZmluZSBWRVJf
SU5URVJOQUxOQU1FX1NUUiAJICAgICJ4ZW5hZ2VudC5leGUiCisjZGVmaW5lIFZFUl9GSUxFVkVS
U0lPTl9TVFIgCSAgICAiMS4wIgorI2RlZmluZSBWRVJfRklMRURFU0NSSVBUSU9OX1NUUiAgICAg
InhlbmFnZW50IgorI2RlZmluZSBWRVJfT1JJR0lOQUxGSUxFTkFNRV9TVFIgICAgInhlbmFnZW50
LmV4ZSIKKyNkZWZpbmUgVkVSX0ZJTEVUWVBFIFZGVF9BUFAKKyNkZWZpbmUgVkVSX0ZJTEVTVUJU
WVBFIDAKKworeGVuX2ljb24gSUNPTiAieGVuLmljbyIKKworI2luY2x1ZGUgImNvbW1vbi52ZXIi
CisjaW5jbHVkZSAibWVzc2FnZXMucmMiClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvc3JjL3hlbmlmYWNlLmluZiBiL3NyYy94ZW5pZmFjZS5pbmYKaW5kZXggZGYwYWJm
My4uMmZmNTI0OSAxMDA2NDQKLS0tIGEvc3JjL3hlbmlmYWNlLmluZgorKysgYi9zcmMveGVuaWZh
Y2UuaW5mCkBAIC02MiwxMSArNjIsMTEgQEAgeGVuaWZhY2Uuc3lzCiB4ZW5pZmFjZV9jb2luc3Rf
QE1BSk9SX1ZFUlNJT05AX0BNSU5PUl9WRVJTSU9OQF9ATUlDUk9fVkVSU0lPTkBfQEJVSUxEX05V
TUJFUkAuZGxsLHhlbmlmYWNlX2NvaW5zdC5kbGwKIAogW1NlcnZpY2VEZXN0RGlyLk5ULkNvcHld
Ci1saXRlYWdlbnQuZXhlCit4ZW5hZ2VudC5leGUKIAogW1hlbmlmYWNlX0RldmljZS5OVCRBUkNI
JC5TZXJ2aWNlc10KIEFkZFNlcnZpY2UgPSB4ZW5pZmFjZSwgJVNQU1ZDSU5TVF9BU1NPQ1NFUlZJ
Q0UlLCB4ZW5pZmFjZV9TZXJ2aWNlX0luc3QKLUFkZFNlcnZpY2UgPSB4ZW5saXRlLCAlTElURVNW
Q19GTEFHUyUsIHhlbmxpdGVfU2VydmljZV9JbnN0CitBZGRTZXJ2aWNlID0geGVuYWdlbnQsICVY
RU5BR0VOVF9GTEFHUyUsIHhlbmFnZW50X1NlcnZpY2VfSW5zdAogCiBbeGVuaWZhY2VfU2Vydmlj
ZV9JbnN0XQogRGlzcGxheU5hbWUgICAgPSAlWGVuSWZhY2VEZXZpY2UuRGV2aWNlRGVzYyUKQEAg
LTg3LDE5ICs4NywxOSBAQCBBZGRSZWc9Q29JbnN0X0FkZFJlZwogW0NvSW5zdF9BZGRSZWddCiBI
S1IsLENvSW5zdGFsbGVyczMyLDB4MDAwMTAwMDAsInhlbmlmYWNlX2NvaW5zdF9ATUFKT1JfVkVS
U0lPTkBfQE1JTk9SX1ZFUlNJT05AX0BNSUNST19WRVJTSU9OQF9AQlVJTERfTlVNQkVSQC5kbGws
RW50cnkiCiAKLVt4ZW5saXRlX1NlcnZpY2VfSW5zdF0KLURpc3BsYXlOYW1lICAgID0gJXhlbmxp
dGUuU1ZDREVTQyUKK1t4ZW5hZ2VudF9TZXJ2aWNlX0luc3RdCitEaXNwbGF5TmFtZSAgICA9ICV4
ZW5hZ2VudC5TVkNERVNDJQogU2VydmljZVR5cGUgICAgPSAxNiAgICAgICAgICAgICAgOyBTRVJW
SUNFX1dJTjMyX09XTl9QUk9DRVNTCiBTdGFydFR5cGUgICAgICA9IDIgICAgICAgICAgICAgICA7
IFNFUlZJQ0VfQVVUT19TVEFSVCAKIEVycm9yQ29udHJvbCAgID0gMSAgICAgICAgICAgICAgIDsg
U0VSVklDRV9FUlJPUl9OT1JNQUwKLVNlcnZpY2VCaW5hcnkgID0gJTExJVxsaXRlYWdlbnQuZXhl
CitTZXJ2aWNlQmluYXJ5ICA9ICUxMSVceGVuYWdlbnQuZXhlCiAKIFtTb3VyY2VEaXNrc05hbWVz
XQogMSA9ICVEaXNrSWQxJSwsLCIiCiAKIFtTb3VyY2VEaXNrc0ZpbGVzXQogeGVuaWZhY2Uuc3lz
ICA9IDEsLAotbGl0ZWFnZW50LmV4ZSA9IDEsLAoreGVuYWdlbnQuZXhlID0gMSwsCiB4ZW5pZmFj
ZV9jb2luc3QuZGxsPTEsLAogCiBbU3RyaW5nc10KQEAgLTEwNyw2ICsxMDcsNiBAQCBTUFNWQ0lO
U1RfQVNTT0NTRVJWSUNFPSAweDAwMDAwMDAyCiBWZW5kb3I9ICJAVkVORE9SX05BTUVAIiAKIERp
c2tJZDEgPSAiQFBST0RVQ1RfTkFNRUAgSW50ZXJmYWNlIFBhY2thZ2UiCiBYZW5JZmFjZURldmlj
ZS5EZXZpY2VEZXNjID0gIkBQUk9EVUNUX05BTUVAIEludGVyZmFjZSIKLUxJVEVTVkNfRkxBR1M9
IDB4MDAwMDA4MDAKLXhlbmxpdGUuU1ZDREVTQz0gIkBQUk9EVUNUX05BTUVAIEludGVyZmFjZSBT
ZXJ2aWNlIgorWEVOQUdFTlRfRkxBR1M9IDB4MDAwMDA4MDAKK3hlbmFnZW50LlNWQ0RFU0M9ICJA
UFJPRFVDVF9OQU1FQCBJbnRlcmZhY2UgU2VydmljZSIKIApkaWZmIC0tZ2l0IGEvdnMyMDEyL2xp
dGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvaiBiL3ZzMjAxMi9saXRlYWdlbnQvTGl0ZUFnZW50LnZj
eHByb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2NzkxOGEuLjAwMDAwMDAKLS0t
IGEvdnMyMDEyL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvagorKysgL2Rldi9udWxsCkBAIC0x
LDI1MSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotPFBy
b2plY3QgRGVmYXVsdFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0
dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+Ci0gIDxJ
dGVtR3JvdXAgTGFiZWw9IlByb2plY3RDb25maWd1cmF0aW9ucyI+Ci0gICAgPFByb2plY3RDb25m
aWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfFdpbjMyIj4KLSAgICAgIDxDb25maWd1cmF0aW9uPkRl
YnVnPC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KLSAg
ICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNs
dWRlPSJEZWJ1Z3x4NjQiPgotICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRp
b24+Ci0gICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RDb25maWd1
cmF0aW9uPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfFdpbjMy
Ij4KLSAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8
UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgotICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+Ci0g
ICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8eDY0Ij4KLSAgICAgIDxD
b25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8UGxhdGZvcm0+eDY0
PC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICA8L0l0ZW1Hcm91cD4K
LSAgPFByb3BlcnR5R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPgotICAgIDxQcm9qZWN0R3VpZD57MkU2
MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfTwvUHJvamVjdEd1aWQ+Ci0gICAgPEtl
eXdvcmQ+V2luMzJQcm9qPC9LZXl3b3JkPgotICAgIDxSb290TmFtZXNwYWNlPlN0dWJBZ2VudDwv
Um9vdE5hbWVzcGFjZT4KLSAgICA8UHJvamVjdE5hbWU+TGl0ZUFnZW50PC9Qcm9qZWN0TmFtZT4K
LSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClc
TWljcm9zb2Z0LkNwcC5EZWZhdWx0LnByb3BzIiAvPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9
IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29u
ZmlndXJhdGlvblR5cGU+Ci0gICAgPFVzZURlYnVnTGlicmFyaWVzPnRydWU8L1VzZURlYnVnTGli
cmFyaWVzPgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djExMDwvUGxhdGZvcm1Ub29sc2V0PgotICAg
IDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gIDwvUHJvcGVydHlHcm91
cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3Vy
YXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8VXNlRGVidWdM
aWJyYXJpZXM+dHJ1ZTwvVXNlRGVidWdMaWJyYXJpZXM+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD52
MTEwPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJh
Y3RlclNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0i
Q29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25m
aWd1cmF0aW9uVHlwZT4KLSAgICA8VXNlRGVidWdMaWJyYXJpZXM+ZmFsc2U8L1VzZURlYnVnTGli
cmFyaWVzPgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djExMDwvUGxhdGZvcm1Ub29sc2V0PgotICAg
IDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9u
PgotICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gIDwvUHJvcGVy
dHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAgICA8
Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxV
c2VEZWJ1Z0xpYnJhcmllcz5mYWxzZTwvVXNlRGVidWdMaWJyYXJpZXM+Ci0gICAgPFBsYXRmb3Jt
VG9vbHNldD52MTEwPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gICAgPFdob2xlUHJvZ3JhbU9wdGltaXph
dGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+Ci0gICAgPENoYXJhY3RlclNldD5N
dWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SW1wb3J0IFBy
b2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5wcm9wcyIgLz4KLSAgPEltcG9y
dEdyb3VwIExhYmVsPSJFeHRlbnNpb25TZXR0aW5ncyI+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxJ
bXBvcnRHcm91cCBMYWJlbD0iUHJvcGVydHlTaGVldHMiIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KLSAgICA8SW1wb3J0IFByb2plY3Q9
IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29u
ZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSku
dXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1wb3J0
R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9y
dCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIu
cHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQo
UGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgot
ICA8L0ltcG9ydEdyb3VwPgotICA8SW1wb3J0R3JvdXAgTGFiZWw9IlByb3BlcnR5U2hlZXRzIiBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzIn
Ij4KLSAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQ
bGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1p
Y3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRh
UGxhdGZvcm0iIC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IlBy
b3BlcnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jv
c29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNl
clJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0i
TG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxQcm9wZXJ0eUdy
b3VwIExhYmVsPSJVc2VyTWFjcm9zIiAvPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Ci0gICAgPExpbmtJ
bmNyZW1lbnRhbD50cnVlPC9MaW5rSW5jcmVtZW50YWw+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAg
PFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3x4NjQnIj4KLSAgICA8TGlua0luY3JlbWVudGFsPnRydWU8L0xpbmtJbmNyZW1lbnRh
bD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KLSAgICA8TGlua0lu
Y3JlbWVudGFsPmZhbHNlPC9MaW5rSW5jcmVtZW50YWw+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAg
PFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlfHg2NCciPgotICAgIDxMaW5rSW5jcmVtZW50YWw+ZmFsc2U8L0xpbmtJbmNyZW1l
bnRhbD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotCi0gIDxQcm9wZXJ0eUdyb3VwPgotICAgIDxJbmNs
dWRlUGF0aD4uLlwuLlxpbmNsdWRlOyQoSW5jbHVkZVBhdGgpPC9JbmNsdWRlUGF0aD4KLSAgPC9Q
cm9wZXJ0eUdyb3VwPgotCi0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KLSAgICA8Q2xDb21waWxl
PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPlVzZTwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAg
ICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPE9wdGltaXphdGlv
bj5EaXNhYmxlZDwvT3B0aW1pemF0aW9uPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25z
PldJTjMyO19ERUJVRztfV0lORE9XUztfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUzslKFByZXByb2Nl
c3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8U0RMQ2hl
Y2s+dHJ1ZTwvU0RMQ2hlY2s+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4u
LlwuLlxpbmNsdWRlOyQoU29sdXRpb25EaXIpXGxpdGVhZ2VudDslKEFkZGl0aW9uYWxJbmNsdWRl
RGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPFJ1bnRp
bWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWREZWJ1ZzwvUnVudGltZUxpYnJhcnk+Ci0gICAgPC9DbENv
bXBpbGU+Ci0gICAgPExpbms+Ci0gICAgICA8U3ViU3lzdGVtPldpbmRvd3M8L1N1YlN5c3RlbT4K
LSAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9y
bWF0aW9uPgotICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+UG93cnByb2YubGliOyUoQWRk
aXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+Ci0gICAgPC9MaW5r
PgotICAgIDxDdXN0b21CdWlsZFN0ZXA+Ci0gICAgICAgIDxDb21tYW5kPnhjb3B5IC95ICQoVGFy
Z2V0UGF0aCkgJChTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldClcCi0g
ICAgICAgICAgICB4Y29weSAveSAkKFRhcmdldERpcilMaXRlQWdlbnQucGRiICQoU29sdXRpb25E
aXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpXDwvQ29tbWFuZD4KLSAgICA8L0N1c3Rv
bUJ1aWxkU3RlcD4KLSAgICA8Q3VzdG9tQnVpbGRTdGVwPgotICAgICAgPE1lc3NhZ2U+Q29weWlu
ZyBvdXRwdXQgZmlsZXM8L01lc3NhZ2U+Ci0gICAgICA8T3V0cHV0cz4kKFNvbHV0aW9uRGlyKVwu
Llx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0RmlsZU5hbWUpOyhTb2x1dGlvbkRp
cilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRhcmdldE5hbWUpLnBkYjslKE91dHB1
dHMpPC9PdXRwdXRzPgotICAgICAgPElucHV0cz4kKFRhcmdldFBhdGgpOyQoVGFyZ2V0RGlyKSQo
VGFyZ2V0TmFtZSkucGRiPC9JbnB1dHM+Ci0gICAgPC9DdXN0b21CdWlsZFN0ZXA+Ci0gIDwvSXRl
bURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KLSAgICA8Q2xDb21waWxl
PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPlVzZTwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAg
ICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPE9wdGltaXphdGlv
bj5EaXNhYmxlZDwvT3B0aW1pemF0aW9uPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25z
PldJTjMyO19ERUJVRztfV0lORE9XUztfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUzslKFByZXByb2Nl
c3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8U0RMQ2hl
Y2s+dHJ1ZTwvU0RMQ2hlY2s+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4u
LlwuLlxpbmNsdWRlOyQoU29sdXRpb25EaXIpXGxpdGVhZ2VudDslKEFkZGl0aW9uYWxJbmNsdWRl
RGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPFJ1bnRp
bWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWREZWJ1ZzwvUnVudGltZUxpYnJhcnk+Ci0gICAgPC9DbENv
bXBpbGU+Ci0gICAgPExpbms+Ci0gICAgICA8U3ViU3lzdGVtPldpbmRvd3M8L1N1YlN5c3RlbT4K
LSAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9y
bWF0aW9uPgotICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+UG93cnByb2YubGliOyUoQWRk
aXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+Ci0gICAgPC9MaW5r
PgotICAgIDxDdXN0b21CdWlsZFN0ZXA+Ci0gICAgICAgIDxDb21tYW5kPnhjb3B5IC95ICQoVGFy
Z2V0UGF0aCkgJChTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldClcCi0g
ICAgICAgICAgICB4Y29weSAveSAkKFRhcmdldERpcilMaXRlQWdlbnQucGRiICQoU29sdXRpb25E
aXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpXDwvQ29tbWFuZD4KLSAgICA8L0N1c3Rv
bUJ1aWxkU3RlcD4KLSAgICA8Q3VzdG9tQnVpbGRTdGVwPgotICAgICAgPE1lc3NhZ2U+Q29weWlu
ZyBvdXRwdXQgZmlsZXM8L01lc3NhZ2U+Ci0gICAgICA8T3V0cHV0cz4kKFNvbHV0aW9uRGlyKVwu
Llx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0RmlsZU5hbWUpOyhTb2x1dGlvbkRp
cilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRhcmdldE5hbWUpLnBkYjslKE91dHB1
dHMpPC9PdXRwdXRzPgotICAgICAgPElucHV0cz4kKFRhcmdldFBhdGgpOyQoVGFyZ2V0RGlyKSQo
VGFyZ2V0TmFtZSkucGRiPC9JbnB1dHM+Ci0gICAgPC9DdXN0b21CdWlsZFN0ZXA+Ci0gIDwvSXRl
bURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Ci0gICAgPENsQ29t
cGlsZT4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8
UHJlY29tcGlsZWRIZWFkZXI+Q3JlYXRlPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxPcHRp
bWl6YXRpb24+TWF4U3BlZWQ8L09wdGltaXphdGlvbj4KLSAgICAgIDxGdW5jdGlvbkxldmVsTGlu
a2luZz50cnVlPC9GdW5jdGlvbkxldmVsTGlua2luZz4KLSAgICAgIDxJbnRyaW5zaWNGdW5jdGlv
bnM+dHJ1ZTwvSW50cmluc2ljRnVuY3Rpb25zPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRp
b25zPldJTjMyO05ERUJVRztfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUztfV0lORE9XUzslKFByZXBy
b2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8U0RM
Q2hlY2s+dHJ1ZTwvU0RMQ2hlY2s+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmll
cz4uLlwuLlxpbmNsdWRlOyQoU29sdXRpb25EaXIpXGxpdGVhZ2VudDslKEFkZGl0aW9uYWxJbmNs
dWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPEJy
b3dzZUluZm9ybWF0aW9uPnRydWU8L0Jyb3dzZUluZm9ybWF0aW9uPgotICAgICAgPFByZXByb2Nl
c3NUb0ZpbGU+ZmFsc2U8L1ByZXByb2Nlc3NUb0ZpbGU+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+
TXVsdGlUaHJlYWRlZDwvUnVudGltZUxpYnJhcnk+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPExp
bms+Ci0gICAgICA8U3ViU3lzdGVtPldpbmRvd3M8L1N1YlN5c3RlbT4KLSAgICAgIDxHZW5lcmF0
ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPgotICAgICAg
PEVuYWJsZUNPTURBVEZvbGRpbmc+dHJ1ZTwvRW5hYmxlQ09NREFURm9sZGluZz4KLSAgICAgIDxP
cHRpbWl6ZVJlZmVyZW5jZXM+dHJ1ZTwvT3B0aW1pemVSZWZlcmVuY2VzPgotICAgICAgPEFkZGl0
aW9uYWxEZXBlbmRlbmNpZXM+UG93cnByb2YubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8
L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+Ci0gICAgPC9MaW5rPgotICAgIDxDdXN0b21CdWlsZFN0
ZXA+Ci0gICAgICA8TWVzc2FnZT5Db3B5aW5nIG91dHB1dCBmaWxlczwvTWVzc2FnZT4KLSAgICAg
IDxDb21tYW5kPnhjb3B5IC95ICQoVGFyZ2V0UGF0aCkgJChTb2x1dGlvbkRpcilcLi5ceGVuaWZh
Y2VcJChQbGF0Zm9ybVRhcmdldClcCi0gICAgICAgICAgeGNvcHkgL3kgJChUYXJnZXREaXIpTGl0
ZUFnZW50LnBkYiAkKFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KVw8
L0NvbW1hbmQ+Ci0gICAgICA8T3V0cHV0cz4kKFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBs
YXRmb3JtVGFyZ2V0KSQoVGFyZ2V0RmlsZU5hbWUpOyhTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2Vc
JChQbGF0Zm9ybVRhcmdldCkkKFRhcmdldE5hbWUpLnBkYjslKE91dHB1dHMpPC9PdXRwdXRzPgot
ICAgICAgPElucHV0cz4kKFRhcmdldFBhdGgpOyQoVGFyZ2V0RGlyKSQoVGFyZ2V0TmFtZSkucGRi
PC9JbnB1dHM+Ci0gICAgPC9DdXN0b21CdWlsZFN0ZXA+Ci0gIDwvSXRlbURlZmluaXRpb25Hcm91
cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8V2Fy
bmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVy
PkNyZWF0ZTwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8T3B0aW1pemF0aW9uPk1heFNwZWVk
PC9PcHRpbWl6YXRpb24+Ci0gICAgICA8RnVuY3Rpb25MZXZlbExpbmtpbmc+dHJ1ZTwvRnVuY3Rp
b25MZXZlbExpbmtpbmc+Ci0gICAgICA8SW50cmluc2ljRnVuY3Rpb25zPnRydWU8L0ludHJpbnNp
Y0Z1bmN0aW9ucz4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtOREVCVUc7
X0NSVF9TRUNVUkVfTk9fV0FSTklOR1M7X1dJTkRPV1M7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9u
cyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgotICAgICAgPFNETENoZWNrPnRydWU8L1NETENo
ZWNrPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsk
KFNvbHV0aW9uRGlyKVxsaXRlYWdlbnQ7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwv
QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxCcm93c2VJbmZvcm1hdGlvbj50
cnVlPC9Ccm93c2VJbmZvcm1hdGlvbj4KLSAgICAgIDxQcmVwcm9jZXNzVG9GaWxlPmZhbHNlPC9Q
cmVwcm9jZXNzVG9GaWxlPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWQ8L1J1
bnRpbWVMaWJyYXJ5PgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaW5rPgotICAgICAgPFN1YlN5
c3RlbT5XaW5kb3dzPC9TdWJTeXN0ZW0+Ci0gICAgICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9u
PnRydWU8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4KLSAgICAgIDxFbmFibGVDT01EQVRGb2xk
aW5nPnRydWU8L0VuYWJsZUNPTURBVEZvbGRpbmc+Ci0gICAgICA8T3B0aW1pemVSZWZlcmVuY2Vz
PnRydWU8L09wdGltaXplUmVmZXJlbmNlcz4KLSAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVz
PlBvd3Jwcm9mLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5k
ZW5jaWVzPgotICAgIDwvTGluaz4KLSAgICA8Q3VzdG9tQnVpbGRTdGVwPgotICAgICAgPE1lc3Nh
Z2U+Q29weWluZyBvdXRwdXQgZmlsZXM8L01lc3NhZ2U+Ci0gICAgICA8Q29tbWFuZD54Y29weSAv
eSAkKFRhcmdldFBhdGgpICQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJn
ZXQpXAotICAgICAgICAgIHhjb3B5IC95ICQoVGFyZ2V0RGlyKUxpdGVBZ2VudC5wZGIgJChTb2x1
dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldClcPC9Db21tYW5kPgotICAgICAg
PE91dHB1dHM+JChTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRh
cmdldEZpbGVOYW1lKTsoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQp
JChUYXJnZXROYW1lKS5wZGI7JShPdXRwdXRzKTwvT3V0cHV0cz4KLSAgICAgIDxJbnB1dHM+JChU
YXJnZXRQYXRoKTskKFRhcmdldERpcikkKFRhcmdldE5hbWUpLnBkYjwvSW5wdXRzPgotICAgIDwv
Q3VzdG9tQnVpbGRTdGVwPgotICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+Ci0gIDxJdGVtR3JvdXA+
Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcZXJyb3Jz
LmNwcCI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Tm90VXNpbmc8L1ByZWNvbXBpbGVk
SGVhZGVyPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5Ob3RVc2luZzwvUHJlY29tcGlsZWRI
ZWFkZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxz
cmNcd2luMzJzdHViYWdlbnRcc3RkYWZ4LmNwcCI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMy
JyI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVy
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQn
Ij5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcV21pQWNjZXNzb3IuY3Bw
Ij4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Q3JlYXRlPC9QcmVjb21waWxlZEhlYWRlcj4K
LSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPkNyZWF0ZTwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAg
ICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAg
ICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAg
PC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHVi
YWdlbnRcWFNBY2Nlc3Nvci5jcHAiPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj5DcmVhdGU8
L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Q3JlYXRlPC9QcmVj
b21waWxlZEhlYWRlcj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj5Ob3RVc2luZzwvUHJl
Y29tcGlsZWRIZWFkZXI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPk5vdFVzaW5nPC9QcmVj
b21waWxlZEhlYWRlcj4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2VudFxYU2VydmljZS5jcHAiPgotICAgICAgPFByZWNvbXBp
bGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8V2luMzInIj5DcmVhdGU8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFByZWNvbXBpbGVk
SGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
eDY0JyI+Q3JlYXRlPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRl
ciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2lu
MzInIj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFk
ZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2
NCciPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICA8L0NsQ29tcGlsZT4KLSAgPC9J
dGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlxz
cmNcd2luMzJzdHViYWdlbnRcc3RkYWZ4LmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlwuLlxzcmNcd2luMzJzdHViYWdlbnRcV21pQWNjZXNzb3IuaCIgLz4KLSAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2VudFxYU0FjY2Vzc29yLmgiIC8+Ci0gICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcWFNlcnZpY2UuaCIg
Lz4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPEN1c3RvbUJ1aWxkIEluY2x1
ZGU9Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2VudFxtZXNzYWdlcy5tYyI+Ci0gICAgICA8RmlsZVR5
cGU+RG9jdW1lbnQ8L0ZpbGVUeXBlPgotICAgICAgPENvbW1hbmQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPm1jICUoRnVsbFBhdGgpPC9D
b21tYW5kPgotICAgICAgPENvbW1hbmQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj5tYyAlKEZ1bGxQYXRoKTwvQ29tbWFuZD4KLSAgICAgIDxP
dXRwdXRzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
V2luMzInIj4lKEZpbGVuYW1lKS5yYzslKEZpbGVuYW1lKS5oPC9PdXRwdXRzPgotICAgICAgPE91
dHB1dHMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4
NjQnIj4lKEZpbGVuYW1lKS5yYzslKEZpbGVuYW1lKS5oPC9PdXRwdXRzPgotICAgICAgPENvbW1h
bmQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdp
bjMyJyI+bWMgJShGdWxsUGF0aCk8L0NvbW1hbmQ+Ci0gICAgICA8Q29tbWFuZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+bWMgJShGdWxs
UGF0aCk8L0NvbW1hbmQ+Ci0gICAgICA8T3V0cHV0cyBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4lKEZpbGVuYW1lKS5yYzslKEZpbGVu
YW1lKS5oPC9PdXRwdXRzPgotICAgICAgPE91dHB1dHMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPiUoRmlsZW5hbWUpLnJjOyUoRmlsZW5h
bWUpLmg8L091dHB1dHM+Ci0gICAgPC9DdXN0b21CdWlsZD4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJ
dGVtR3JvdXA+Ci0gICAgPFJlc291cmNlQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJz
dHViYWdlbnRcdzMyeGFnZW50LnJjIiAvPgotICA8L0l0ZW1Hcm91cD4KLSAgPEl0ZW1Hcm91cD4K
LSAgICA8SW1hZ2UgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1YmFnZW50XHhlbi5pY28iIC8+
Ci0gIDwvSXRlbUdyb3VwPgotICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWlj
cm9zb2Z0LkNwcC50YXJnZXRzIiAvPgotICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRh
cmdldHMiPgotICA8L0ltcG9ydEdyb3VwPgotPC9Qcm9qZWN0PgpkaWZmIC0tZ2l0IGEvdnMyMDEy
L2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvai51c2VyIGIvdnMyMDEyL2xpdGVhZ2VudC9MaXRl
QWdlbnQudmN4cHJvai51c2VyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MGYzY2Jl
Li4wMDAwMDAwCi0tLSBhL3ZzMjAxMi9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHByb2oudXNlcgor
KysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGlu
Zz0idXRmLTgiPz4KLTxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3Nj
aGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KLSAgPFByb3BlcnR5
R3JvdXAgLz4KLTwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS92czIwMTIveGVuYWdlbnQveGVuYWdlbnQudmN4cHJvaiBiL3ZzMjAxMi94ZW5hZ2VudC94
ZW5hZ2VudC52Y3hwcm9qCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmOTlm
OWQKLS0tIC9kZXYvbnVsbAorKysgYi92czIwMTIveGVuYWdlbnQveGVuYWdlbnQudmN4cHJvagpA
QCAtMCwwICsxLDIxNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4K
KzxQcm9qZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5z
PSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgor
ICA8SXRlbUdyb3VwIExhYmVsPSJQcm9qZWN0Q29uZmlndXJhdGlvbnMiPgorICAgIDxQcm9qZWN0
Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3xXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlv
bj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+
CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24g
SW5jbHVkZT0iRGVidWd8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1
cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29u
ZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXxX
aW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgorICAg
ICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9u
PgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfHg2NCI+CisgICAg
ICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3Jt
Png2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgPC9JdGVtR3Jv
dXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJHbG9iYWxzIj4KKyAgICA8UHJvamVjdEd1aWQ+
ezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn08L1Byb2plY3RHdWlkPgorICAg
IDxLZXl3b3JkPldpbjMyUHJvajwvS2V5d29yZD4KKyAgICA8Um9vdE5hbWVzcGFjZT54ZW5hZ2Vu
dDwvUm9vdE5hbWVzcGFjZT4KKyAgICA8UHJvamVjdE5hbWU+eGVuYWdlbnQ8L1Byb2plY3ROYW1l
PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRo
KVxNaWNyb3NvZnQuQ3BwLkRlZmF1bHQucHJvcHMiIC8+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJl
bD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9D
b25maWd1cmF0aW9uVHlwZT4KKyAgICA8VXNlRGVidWdMaWJyYXJpZXM+dHJ1ZTwvVXNlRGVidWdM
aWJyYXJpZXM+CisgICAgPFBsYXRmb3JtVG9vbHNldD52MTEwPC9QbGF0Zm9ybVRvb2xzZXQ+Cisg
ICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KKyAgPC9Qcm9wZXJ0eUdy
b3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmln
dXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxVc2VEZWJ1
Z0xpYnJhcmllcz50cnVlPC9Vc2VEZWJ1Z0xpYnJhcmllcz4KKyAgICA8UGxhdGZvcm1Ub29sc2V0
PnYxMTA8L1BsYXRmb3JtVG9vbHNldD4KKyAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hh
cmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVs
PSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0Nv
bmZpZ3VyYXRpb25UeXBlPgorICAgIDxVc2VEZWJ1Z0xpYnJhcmllcz5mYWxzZTwvVXNlRGVidWdM
aWJyYXJpZXM+CisgICAgPFBsYXRmb3JtVG9vbHNldD52MTEwPC9QbGF0Zm9ybVRvb2xzZXQ+Cisg
ICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRp
b24+CisgICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KKyAgPC9Qcm9w
ZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAg
IDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+CisgICAg
PFVzZURlYnVnTGlicmFyaWVzPmZhbHNlPC9Vc2VEZWJ1Z0xpYnJhcmllcz4KKyAgICA8UGxhdGZv
cm1Ub29sc2V0PnYxMTA8L1BsYXRmb3JtVG9vbHNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1p
emF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgICA8Q2hhcmFjdGVyU2V0
Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQg
UHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPgorICA8SW1w
b3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblNldHRpbmdzIj4KKyAgPC9JbXBvcnRHcm91cD4KKyAg
PEltcG9ydEdyb3VwIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyIgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPgorICAgIDxJbXBvcnQgUHJvamVj
dD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBD
b25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3Jt
KS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgPC9JbXBv
cnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1w
b3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNl
ci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAu
JChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+
CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBMYWJlbD0iUHJvcGVydHlTaGVldHMi
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4z
MiciPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4k
KFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilc
TWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERh
dGFQbGF0Zm9ybSIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0i
UHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWlj
cm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChV
c2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVs
PSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPFByb3BlcnR5
R3JvdXAgTGFiZWw9IlVzZXJNYWNyb3MiIC8+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KKyAgICA8TGlu
a0luY3JlbWVudGFsPnRydWU8L0xpbmtJbmNyZW1lbnRhbD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgor
ICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfHg2NCciPgorICAgIDxMaW5rSW5jcmVtZW50YWw+dHJ1ZTwvTGlua0luY3JlbWVu
dGFsPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgorICAgIDxMaW5r
SW5jcmVtZW50YWw+ZmFsc2U8L0xpbmtJbmNyZW1lbnRhbD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgor
ICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2V8eDY0JyI+CisgICAgPExpbmtJbmNyZW1lbnRhbD5mYWxzZTwvTGlua0luY3Jl
bWVudGFsPgorICA8L1Byb3BlcnR5R3JvdXA+CisKKyAgPFByb3BlcnR5R3JvdXA+CisgICAgPElu
Y2x1ZGVQYXRoPi4uXC4uXGluY2x1ZGU7JChJbmNsdWRlUGF0aCk8L0luY2x1ZGVQYXRoPgorICA8
L1Byb3BlcnR5R3JvdXA+CisKKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPgorICAgIDxDbENvbXBp
bGU+CisgICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVy
PgorICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KKyAgICAgIDxPcHRp
bWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZp
bml0aW9ucz5XSU4zMjtfREVCVUc7X1dJTkRPV1M7X0NSVF9TRUNVUkVfTk9fV0FSTklOR1M7JShQ
cmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgICAg
PFNETENoZWNrPnRydWU8L1NETENoZWNrPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0
b3JpZXM+Li5cLi5caW5jbHVkZTskKFNvbHV0aW9uRGlyKVx4ZW5hZ2VudDslKEFkZGl0aW9uYWxJ
bmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAg
PFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWREZWJ1ZzwvUnVudGltZUxpYnJhcnk+CisgICAg
PC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8U3ViU3lzdGVtPldpbmRvd3M8L1N1YlN5
c3RlbT4KKyAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1
Z0luZm9ybWF0aW9uPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+UG93cnByb2YubGli
OyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAg
PC9MaW5rPgorICAgIDxDdXN0b21CdWlsZFN0ZXA+CisgICAgICAgIDxDb21tYW5kPnhjb3B5IC95
ICQoVGFyZ2V0UGF0aCkgJChTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdl
dClcCisgICAgICAgICAgICB4Y29weSAveSAkKFRhcmdldERpcil4ZW5hZ2VudC5wZGIgJChTb2x1
dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldClcPC9Db21tYW5kPgorICAgIDwv
Q3VzdG9tQnVpbGRTdGVwPgorICAgIDxDdXN0b21CdWlsZFN0ZXA+CisgICAgICA8TWVzc2FnZT5D
b3B5aW5nIG91dHB1dCBmaWxlczwvTWVzc2FnZT4KKyAgICAgIDxPdXRwdXRzPiQoU29sdXRpb25E
aXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXRGaWxlTmFtZSk7KFNvbHV0
aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0TmFtZSkucGRiOyUo
T3V0cHV0cyk8L091dHB1dHM+CisgICAgICA8SW5wdXRzPiQoVGFyZ2V0UGF0aCk7JChUYXJnZXRE
aXIpJChUYXJnZXROYW1lKS5wZGI8L0lucHV0cz4KKyAgICA8L0N1c3RvbUJ1aWxkU3RlcD4KKyAg
PC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPgorICAgIDxDbENv
bXBpbGU+CisgICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVh
ZGVyPgorICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KKyAgICAgIDxP
cHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KKyAgICAgIDxQcmVwcm9jZXNzb3JE
ZWZpbml0aW9ucz5XSU4zMjtfREVCVUc7X1dJTkRPV1M7X0NSVF9TRUNVUkVfTk9fV0FSTklOR1M7
JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAg
ICAgPFNETENoZWNrPnRydWU8L1NETENoZWNrPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGly
ZWN0b3JpZXM+Li5cLi5caW5jbHVkZTskKFNvbHV0aW9uRGlyKVx4ZW5hZ2VudDslKEFkZGl0aW9u
YWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAg
ICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWREZWJ1ZzwvUnVudGltZUxpYnJhcnk+Cisg
ICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8U3ViU3lzdGVtPldpbmRvd3M8L1N1
YlN5c3RlbT4KKyAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVE
ZWJ1Z0luZm9ybWF0aW9uPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+UG93cnByb2Yu
bGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+Cisg
ICAgPC9MaW5rPgorICAgIDxDdXN0b21CdWlsZFN0ZXA+CisgICAgICAgIDxDb21tYW5kPnhjb3B5
IC95ICQoVGFyZ2V0UGF0aCkgJChTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRh
cmdldClcCisgICAgICAgICAgICB4Y29weSAveSAkKFRhcmdldERpcil4ZW5hZ2VudC5wZGIgJChT
b2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldClcPC9Db21tYW5kPgorICAg
IDwvQ3VzdG9tQnVpbGRTdGVwPgorICAgIDxDdXN0b21CdWlsZFN0ZXA+CisgICAgICA8TWVzc2Fn
ZT5Db3B5aW5nIG91dHB1dCBmaWxlczwvTWVzc2FnZT4KKyAgICAgIDxPdXRwdXRzPiQoU29sdXRp
b25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXRGaWxlTmFtZSk7KFNv
bHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0TmFtZSkucGRi
OyUoT3V0cHV0cyk8L091dHB1dHM+CisgICAgICA8SW5wdXRzPiQoVGFyZ2V0UGF0aCk7JChUYXJn
ZXREaXIpJChUYXJnZXROYW1lKS5wZGI8L0lucHV0cz4KKyAgICA8L0N1c3RvbUJ1aWxkU3RlcD4K
KyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KKyAg
ICA8Q2xDb21waWxlPgorICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4K
KyAgICAgIDxQcmVjb21waWxlZEhlYWRlcj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+Cisg
ICAgICA8T3B0aW1pemF0aW9uPk1heFNwZWVkPC9PcHRpbWl6YXRpb24+CisgICAgICA8RnVuY3Rp
b25MZXZlbExpbmtpbmc+dHJ1ZTwvRnVuY3Rpb25MZXZlbExpbmtpbmc+CisgICAgICA8SW50cmlu
c2ljRnVuY3Rpb25zPnRydWU8L0ludHJpbnNpY0Z1bmN0aW9ucz4KKyAgICAgIDxQcmVwcm9jZXNz
b3JEZWZpbml0aW9ucz5XSU4zMjtOREVCVUc7X0NSVF9TRUNVUkVfTk9fV0FSTklOR1M7X1dJTkRP
V1M7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgor
ICAgICAgPFNETENoZWNrPnRydWU8L1NETENoZWNrPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRl
RGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTskKFNvbHV0aW9uRGlyKVx4ZW5hZ2VudDslKEFkZGl0
aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgor
ICAgICAgPEJyb3dzZUluZm9ybWF0aW9uPnRydWU8L0Jyb3dzZUluZm9ybWF0aW9uPgorICAgICAg
PFByZXByb2Nlc3NUb0ZpbGU+ZmFsc2U8L1ByZXByb2Nlc3NUb0ZpbGU+CisgICAgICA8UnVudGlt
ZUxpYnJhcnk+TXVsdGlUaHJlYWRlZDwvUnVudGltZUxpYnJhcnk+CisgICAgPC9DbENvbXBpbGU+
CisgICAgPExpbms+CisgICAgICA8U3ViU3lzdGVtPldpbmRvd3M8L1N1YlN5c3RlbT4KKyAgICAg
IDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9u
PgorICAgICAgPEVuYWJsZUNPTURBVEZvbGRpbmc+dHJ1ZTwvRW5hYmxlQ09NREFURm9sZGluZz4K
KyAgICAgIDxPcHRpbWl6ZVJlZmVyZW5jZXM+dHJ1ZTwvT3B0aW1pemVSZWZlcmVuY2VzPgorICAg
ICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+UG93cnByb2YubGliOyUoQWRkaXRpb25hbERlcGVu
ZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgPC9MaW5rPgorICAgIDxDdXN0
b21CdWlsZFN0ZXA+CisgICAgICA8TWVzc2FnZT5Db3B5aW5nIG91dHB1dCBmaWxlczwvTWVzc2Fn
ZT4KKyAgICAgIDxDb21tYW5kPnhjb3B5IC95ICQoVGFyZ2V0UGF0aCkgJChTb2x1dGlvbkRpcilc
Li5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldClcCisgICAgICAgICAgeGNvcHkgL3kgJChUYXJn
ZXREaXIpeGVuYWdlbnQucGRiICQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1U
YXJnZXQpXDwvQ29tbWFuZD4KKyAgICAgIDxPdXRwdXRzPiQoU29sdXRpb25EaXIpXC4uXHhlbmlm
YWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXRGaWxlTmFtZSk7KFNvbHV0aW9uRGlyKVwuLlx4
ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0TmFtZSkucGRiOyUoT3V0cHV0cyk8L091
dHB1dHM+CisgICAgICA8SW5wdXRzPiQoVGFyZ2V0UGF0aCk7JChUYXJnZXREaXIpJChUYXJnZXRO
YW1lKS5wZGI8L0lucHV0cz4KKyAgICA8L0N1c3RvbUJ1aWxkU3RlcD4KKyAgPC9JdGVtRGVmaW5p
dGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+CisgICAgPENsQ29tcGlsZT4KKyAg
ICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+CisgICAgICA8UHJlY29tcGls
ZWRIZWFkZXI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgorICAgICAgPE9wdGltaXphdGlv
bj5NYXhTcGVlZDwvT3B0aW1pemF0aW9uPgorICAgICAgPEZ1bmN0aW9uTGV2ZWxMaW5raW5nPnRy
dWU8L0Z1bmN0aW9uTGV2ZWxMaW5raW5nPgorICAgICAgPEludHJpbnNpY0Z1bmN0aW9ucz50cnVl
PC9JbnRyaW5zaWNGdW5jdGlvbnM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lO
MzI7TkRFQlVHO19DUlRfU0VDVVJFX05PX1dBUk5JTkdTO19XSU5ET1dTOyUoUHJlcHJvY2Vzc29y
RGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxTRExDaGVjaz50
cnVlPC9TRExDaGVjaz4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4u
XGluY2x1ZGU7JChTb2x1dGlvbkRpcilceGVuYWdlbnQ7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVj
dG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICAgIDxCcm93c2VJbmZv
cm1hdGlvbj50cnVlPC9Ccm93c2VJbmZvcm1hdGlvbj4KKyAgICAgIDxQcmVwcm9jZXNzVG9GaWxl
PmZhbHNlPC9QcmVwcm9jZXNzVG9GaWxlPgorICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhy
ZWFkZWQ8L1J1bnRpbWVMaWJyYXJ5PgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5rPgorICAg
ICAgPFN1YlN5c3RlbT5XaW5kb3dzPC9TdWJTeXN0ZW0+CisgICAgICA8R2VuZXJhdGVEZWJ1Z0lu
Zm9ybWF0aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4KKyAgICAgIDxFbmFibGVD
T01EQVRGb2xkaW5nPnRydWU8L0VuYWJsZUNPTURBVEZvbGRpbmc+CisgICAgICA8T3B0aW1pemVS
ZWZlcmVuY2VzPnRydWU8L09wdGltaXplUmVmZXJlbmNlcz4KKyAgICAgIDxBZGRpdGlvbmFsRGVw
ZW5kZW5jaWVzPlBvd3Jwcm9mLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlv
bmFsRGVwZW5kZW5jaWVzPgorICAgIDwvTGluaz4KKyAgICA8Q3VzdG9tQnVpbGRTdGVwPgorICAg
ICAgPE1lc3NhZ2U+Q29weWluZyBvdXRwdXQgZmlsZXM8L01lc3NhZ2U+CisgICAgICA8Q29tbWFu
ZD54Y29weSAveSAkKFRhcmdldFBhdGgpICQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxh
dGZvcm1UYXJnZXQpXAorICAgICAgICAgIHhjb3B5IC95ICQoVGFyZ2V0RGlyKXhlbmFnZW50LnBk
YiAkKFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KVw8L0NvbW1hbmQ+
CisgICAgICA8T3V0cHV0cz4kKFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFy
Z2V0KSQoVGFyZ2V0RmlsZU5hbWUpOyhTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9y
bVRhcmdldCkkKFRhcmdldE5hbWUpLnBkYjslKE91dHB1dHMpPC9PdXRwdXRzPgorICAgICAgPElu
cHV0cz4kKFRhcmdldFBhdGgpOyQoVGFyZ2V0RGlyKSQoVGFyZ2V0TmFtZSkucGRiPC9JbnB1dHM+
CisgICAgPC9DdXN0b21CdWlsZFN0ZXA+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0
ZW1Hcm91cD4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5hZ2VudFxzZXJ2
aWNlLmNwcCIvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5hZ2VudFxzZXJ2aWNlLmgiIC8+CisgIDwvSXRlbUdyb3Vw
PgorICA8SXRlbUdyb3VwPgorICAgIDxDdXN0b21CdWlsZCBJbmNsdWRlPSIuLlwuLlxzcmNceGVu
YWdlbnRcbWVzc2FnZXMubWMiPgorICAgICAgPEZpbGVUeXBlPkRvY3VtZW50PC9GaWxlVHlwZT4K
KyAgICAgIDxDb21tYW5kPm1jICUoRnVsbFBhdGgpPC9Db21tYW5kPgorICAgICAgPE91dHB1dHM+
JShGaWxlbmFtZSkucmM7JShGaWxlbmFtZSkuaDwvT3V0cHV0cz4KKwk8L0N1c3RvbUJ1aWxkPgor
ICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8UmVzb3VyY2VDb21waWxlIEluY2x1
ZGU9Ii4uXC4uXHNyY1x4ZW5hZ2VudFx4ZW5hZ2VudC5yYyIgLz4KKyAgPC9JdGVtR3JvdXA+Cisg
IDxJdGVtR3JvdXA+CisgICAgPEltYWdlIEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5hZ2VudFx4ZW4u
aWNvIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1Bh
dGgpXE1pY3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4KKyAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRl
bnNpb25UYXJnZXRzIj4KKyAgPC9JbXBvcnRHcm91cD4KKzwvUHJvamVjdD4KZGlmZiAtLWdpdCBh
L3ZzMjAxMi94ZW5hZ2VudC94ZW5hZ2VudC52Y3hwcm9qLnVzZXIgYi92czIwMTIveGVuYWdlbnQv
eGVuYWdlbnQudmN4cHJvai51c2VyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjUwZjNjYmUKLS0tIC9kZXYvbnVsbAorKysgYi92czIwMTIveGVuYWdlbnQveGVuYWdlbnQudmN4
cHJvai51c2VyCkBAIC0wLDAgKzEsNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0i
dXRmLTgiPz4KKzxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVt
YXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPFByb3BlcnR5R3Jv
dXAgLz4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS92czIwMTIveGVuaWZhY2Uuc2xuIGIvdnMyMDEyL3hlbmlmYWNlLnNsbgppbmRleCBjYjZiZWNm
Li45NzAwY2UzIDEwMDY0NAotLS0gYS92czIwMTIveGVuaWZhY2Uuc2xuCisrKyBiL3ZzMjAxMi94
ZW5pZmFjZS5zbG4KQEAgLTQsNyArNCw3IEBAIFByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAt
OEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAieGVuaWZhY2VfY29pbnN0IiwgInhlbmlmYWNlCiBFbmRQ
cm9qZWN0CiBQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIp
ID0gInhlbmlmYWNlIiwgInhlbmlmYWNlXHhlbmlmYWNlLnZjeHByb2oiLCAiezIyMTY2MjkwLTY1
RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0iCiBFbmRQcm9qZWN0Ci1Qcm9qZWN0KCJ7OEJDOUNF
QjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIkxpdGVBZ2VudCIsICJsaXRlYWdl
bnRcTGl0ZUFnZW50LnZjeHByb2oiLCAiezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdC
QkQzQn0iCitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIp
ID0gInhlbmFnZW50IiwgInhlbmFnZW50XHhlbmFnZW50LnZjeHByb2oiLCAiezJFNjFEMkNDLTg2
NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0iCiBFbmRQcm9qZWN0CiBQcm9qZWN0KCJ7OEJDOUNF
QjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gInBhY2thZ2UiLCAicGFja2FnZVxw
YWNrYWdlLnZjeHByb2oiLCAiezlCMDcxQTM1LTg5N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0i
CiAJUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdApkaWZm
IC0tZ2l0IGEvdnMyMDEzL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvaiBiL3ZzMjAxMy9saXRl
YWdlbnQvTGl0ZUFnZW50LnZjeHByb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUw
ZGJlNDMuLjAwMDAwMDAKLS0tIGEvdnMyMDEzL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvagor
KysgL2Rldi9udWxsCkBAIC0xLDI1NiArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29k
aW5nPSJ1dGYtOCI/PgotPFByb2plY3QgRGVmYXVsdFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNp
b249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21z
YnVpbGQvMjAwMyI+Ci0gIDxJdGVtR3JvdXAgTGFiZWw9IlByb2plY3RDb25maWd1cmF0aW9ucyI+
Ci0gICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfFdpbjMyIj4KLSAgICAg
IDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPldp
bjMyPC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICAgIDxQcm9qZWN0
Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3x4NjQiPgotICAgICAgPENvbmZpZ3VyYXRpb24+
RGVidWc8L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KLSAg
ICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNs
dWRlPSJSZWxlYXNlfFdpbjMyIj4KLSAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZp
Z3VyYXRpb24+Ci0gICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgotICAgIDwvUHJvamVj
dENvbmZpZ3VyYXRpb24+Ci0gICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVh
c2V8eDY0Ij4KLSAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+Ci0g
ICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9u
PgotICA8L0l0ZW1Hcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPgotICAg
IDxQcm9qZWN0R3VpZD57MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfTwvUHJv
amVjdEd1aWQ+Ci0gICAgPEtleXdvcmQ+V2luMzJQcm9qPC9LZXl3b3JkPgotICAgIDxSb290TmFt
ZXNwYWNlPlN0dWJBZ2VudDwvUm9vdE5hbWVzcGFjZT4KLSAgICA8UHJvamVjdE5hbWU+TGl0ZUFn
ZW50PC9Qcm9qZWN0TmFtZT4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SW1wb3J0IFByb2plY3Q9
IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5EZWZhdWx0LnByb3BzIiAvPgotICA8UHJv
cGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlw
ZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAgPFVzZURlYnVnTGlicmFyaWVz
PnRydWU8L1VzZURlYnVnTGlicmFyaWVzPgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0Fw
cGxpY2F0aW9uRm9yRHJpdmVyczguMTwvUGxhdGZvcm1Ub29sc2V0PgotICAgIDxDaGFyYWN0ZXJT
ZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3Bl
cnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3x4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkFw
cGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8VXNlRGVidWdMaWJyYXJpZXM+dHJ1
ZTwvVXNlRGVidWdMaWJyYXJpZXM+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dzQXBwbGlj
YXRpb25Gb3JEcml2ZXJzOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gICAgPENoYXJhY3RlclNldD5N
dWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlH
cm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8
V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkFw
cGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8VXNlRGVidWdMaWJyYXJpZXM+ZmFs
c2U8L1VzZURlYnVnTGlicmFyaWVzPgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0FwcGxp
Y2F0aW9uRm9yRHJpdmVyczguMTwvUGxhdGZvcm1Ub29sc2V0PgotICAgIDxXaG9sZVByb2dyYW1P
cHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgotICAgIDxDaGFyYWN0
ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFBy
b3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlvblR5
cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxVc2VEZWJ1Z0xpYnJhcmll
cz5mYWxzZTwvVXNlRGVidWdMaWJyYXJpZXM+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dz
QXBwbGljYXRpb25Gb3JEcml2ZXJzOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gICAgPFdob2xlUHJv
Z3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+Ci0gICAgPENo
YXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgot
ICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5wcm9wcyIg
Lz4KLSAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25TZXR0aW5ncyI+Ci0gIDwvSW1wb3J0
R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBMYWJlbD0iUHJvcGVydHlTaGVldHMiIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KLSAgICA8SW1w
b3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNl
ci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAu
JChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+
Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+
Ci0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxh
dGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNy
b3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBs
YXRmb3JtIiAvPgotICA8L0ltcG9ydEdyb3VwPgotICA8SW1wb3J0R3JvdXAgTGFiZWw9IlByb3Bl
cnR5U2hlZXRzIiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8V2luMzInIj4KLSAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jv
c29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNl
clJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0i
TG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91
cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0
JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJv
b3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJl
eGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9w
cycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0g
IDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJVc2VyTWFjcm9zIiAvPgotICA8UHJvcGVydHlHcm91cCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+
Ci0gICAgPExpbmtJbmNyZW1lbnRhbD50cnVlPC9MaW5rSW5jcmVtZW50YWw+Ci0gICAgPE91dERp
cj4kKFNvbHV0aW9uRGlyKSQoUGxhdGZvcm0pXCQoQ29uZmlndXJhdGlvbk5hbWUpXDwvT3V0RGly
PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Ci0gICAgPExpbmtJbmNyZW1l
bnRhbD50cnVlPC9MaW5rSW5jcmVtZW50YWw+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3Bl
cnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfFdpbjMyJyI+Ci0gICAgPExpbmtJbmNyZW1lbnRhbD5mYWxzZTwvTGlua0luY3JlbWVudGFs
PgotICAgIDxPdXREaXI+JChTb2x1dGlvbkRpcikkKFBsYXRmb3JtKVwkKENvbmZpZ3VyYXRpb25O
YW1lKVw8L091dERpcj4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Ci0g
ICAgPExpbmtJbmNyZW1lbnRhbD5mYWxzZTwvTGlua0luY3JlbWVudGFsPgotICA8L1Byb3BlcnR5
R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwPgotICAgIDxJbmNsdWRlUGF0aD4uLlwuLlxpbmNsdWRl
OyQoSW5jbHVkZVBhdGgpPC9JbmNsdWRlUGF0aD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SXRl
bURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfFdpbjMyJyI+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAgIDxQcmVjb21waWxlZEhl
YWRlcj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxl
dmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPE9wdGltaXphdGlvbj5EaXNhYmxlZDwvT3B0aW1p
emF0aW9uPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19ERUJVRztfV0lO
RE9XUztfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwv
UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8U0RMQ2hlY2s+dHJ1ZTwvU0RMQ2hlY2s+
Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOyQoU29s
dXRpb25EaXIpXGxpdGVhZ2VudDskKFNES19JTkNfUEFUSCk7JShBZGRpdGlvbmFsSW5jbHVkZURp
cmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxSdW50aW1l
TGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWc8L1J1bnRpbWVMaWJyYXJ5PgotICAgICAgPFByZWNv
bXBpbGVkSGVhZGVyRmlsZSAvPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyT3V0cHV0RmlsZSAv
PgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaW5rPgotICAgICAgPFN1YlN5c3RlbT5XaW5kb3dz
PC9TdWJTeXN0ZW0+Ci0gICAgICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPnRydWU8L0dlbmVy
YXRlRGVidWdJbmZvcm1hdGlvbj4KLSAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPlBvd3Jw
cm9mLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVz
PgotICAgIDwvTGluaz4KLSAgICA8Q3VzdG9tQnVpbGRTdGVwPgotICAgICAgPENvbW1hbmQ+eGNv
cHkgL3kgJChUYXJnZXRQYXRoKSAkKFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3Jt
VGFyZ2V0KVwKLSAgICAgICAgICAgIHhjb3B5IC95ICQoVGFyZ2V0RGlyKUxpdGVBZ2VudC5wZGIg
JChTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldClcPC9Db21tYW5kPgot
ICAgIDwvQ3VzdG9tQnVpbGRTdGVwPgotICAgIDxDdXN0b21CdWlsZFN0ZXA+Ci0gICAgICA8TWVz
c2FnZT5Db3B5aW5nIG91dHB1dCBmaWxlczwvTWVzc2FnZT4KLSAgICAgIDxPdXRwdXRzPiQoU29s
dXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXRGaWxlTmFtZSk7
KFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0TmFtZSku
cGRiOyUoT3V0cHV0cyk8L091dHB1dHM+Ci0gICAgICA8SW5wdXRzPiQoVGFyZ2V0UGF0aCk7JChU
YXJnZXREaXIpJChUYXJnZXROYW1lKS5wZGI8L0lucHV0cz4KLSAgICA8L0N1c3RvbUJ1aWxkU3Rl
cD4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPgotICAg
IDxDbENvbXBpbGU+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Tm90VXNpbmc8L1ByZWNvbXBp
bGVkSGVhZGVyPgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAg
ICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KLSAgICAgIDxQcmVwcm9j
ZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfREVCVUc7X1dJTkRPV1M7X0NSVF9TRUNVUkVfTk9fV0FS
TklOR1M7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25z
PgotICAgICAgPFNETENoZWNrPnRydWU8L1NETENoZWNrPgotICAgICAgPEFkZGl0aW9uYWxJbmNs
dWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTskKFNvbHV0aW9uRGlyKVxsaXRlYWdlbnQ7JChT
REtfSU5DX1BBVEgpOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJ
bmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERl
YnVnPC9SdW50aW1lTGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlckZpbGUgLz4KLSAg
ICAgIDxQcmVjb21waWxlZEhlYWRlck91dHB1dEZpbGUgLz4KLSAgICA8L0NsQ29tcGlsZT4KLSAg
ICA8TGluaz4KLSAgICAgIDxTdWJTeXN0ZW0+V2luZG93czwvU3ViU3lzdGVtPgotICAgICAgPEdl
bmVyYXRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+Ci0g
ICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz5Qb3dycHJvZi5saWI7JShBZGRpdGlvbmFsRGVw
ZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KLSAgICA8L0xpbms+Ci0gICAgPEN1
c3RvbUJ1aWxkU3RlcD4KLSAgICAgIDxDb21tYW5kPnhjb3B5IC95ICQoVGFyZ2V0UGF0aCkgJChT
b2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldClcCi0gICAgICAgICAgICB4
Y29weSAveSAkKFRhcmdldERpcilMaXRlQWdlbnQucGRiICQoU29sdXRpb25EaXIpXC4uXHhlbmlm
YWNlXCQoUGxhdGZvcm1UYXJnZXQpXDwvQ29tbWFuZD4KLSAgICA8L0N1c3RvbUJ1aWxkU3RlcD4K
LSAgICA8Q3VzdG9tQnVpbGRTdGVwPgotICAgICAgPE1lc3NhZ2U+Q29weWluZyBvdXRwdXQgZmls
ZXM8L01lc3NhZ2U+Ci0gICAgICA8T3V0cHV0cz4kKFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwk
KFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0RmlsZU5hbWUpOyhTb2x1dGlvbkRpcilcLi5ceGVuaWZh
Y2VcJChQbGF0Zm9ybVRhcmdldCkkKFRhcmdldE5hbWUpLnBkYjslKE91dHB1dHMpPC9PdXRwdXRz
PgotICAgICAgPElucHV0cz4kKFRhcmdldFBhdGgpOyQoVGFyZ2V0RGlyKSQoVGFyZ2V0TmFtZSku
cGRiPC9JbnB1dHM+Ci0gICAgPC9DdXN0b21CdWlsZFN0ZXA+Ci0gIDwvSXRlbURlZmluaXRpb25H
cm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAg
IDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8UHJlY29tcGlsZWRI
ZWFkZXI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPE9wdGltaXphdGlvbj5N
YXhTcGVlZDwvT3B0aW1pemF0aW9uPgotICAgICAgPEZ1bmN0aW9uTGV2ZWxMaW5raW5nPnRydWU8
L0Z1bmN0aW9uTGV2ZWxMaW5raW5nPgotICAgICAgPEludHJpbnNpY0Z1bmN0aW9ucz50cnVlPC9J
bnRyaW5zaWNGdW5jdGlvbnM+Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7
TkRFQlVHO19DUlRfU0VDVVJFX05PX1dBUk5JTkdTO19XSU5ET1dTOyUoUHJlcHJvY2Vzc29yRGVm
aW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KLSAgICAgIDxTRExDaGVjaz50cnVl
PC9TRExDaGVjaz4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGlu
Y2x1ZGU7JChTb2x1dGlvbkRpcilcbGl0ZWFnZW50OyQoU0RLX0lOQ19QQVRIKTslKEFkZGl0aW9u
YWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAg
ICAgPEJyb3dzZUluZm9ybWF0aW9uPnRydWU8L0Jyb3dzZUluZm9ybWF0aW9uPgotICAgICAgPFBy
ZXByb2Nlc3NUb0ZpbGU+ZmFsc2U8L1ByZXByb2Nlc3NUb0ZpbGU+Ci0gICAgICA8UnVudGltZUxp
YnJhcnk+TXVsdGlUaHJlYWRlZDwvUnVudGltZUxpYnJhcnk+Ci0gICAgPC9DbENvbXBpbGU+Ci0g
ICAgPExpbms+Ci0gICAgICA8U3ViU3lzdGVtPldpbmRvd3M8L1N1YlN5c3RlbT4KLSAgICAgIDxH
ZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPgot
ICAgICAgPEVuYWJsZUNPTURBVEZvbGRpbmc+dHJ1ZTwvRW5hYmxlQ09NREFURm9sZGluZz4KLSAg
ICAgIDxPcHRpbWl6ZVJlZmVyZW5jZXM+dHJ1ZTwvT3B0aW1pemVSZWZlcmVuY2VzPgotICAgICAg
PEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+UG93cnByb2YubGliOyUoQWRkaXRpb25hbERlcGVuZGVu
Y2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+Ci0gICAgPC9MaW5rPgotICAgIDxDdXN0b21C
dWlsZFN0ZXA+Ci0gICAgICA8TWVzc2FnZT5Db3B5aW5nIG91dHB1dCBmaWxlczwvTWVzc2FnZT4K
LSAgICAgIDxDb21tYW5kPnhjb3B5IC95ICQoVGFyZ2V0UGF0aCkgJChTb2x1dGlvbkRpcilcLi5c
eGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldClcCi0gICAgICAgICAgeGNvcHkgL3kgJChUYXJnZXRE
aXIpTGl0ZUFnZW50LnBkYiAkKFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFy
Z2V0KVw8L0NvbW1hbmQ+Ci0gICAgICA8T3V0cHV0cz4kKFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFj
ZVwkKFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0RmlsZU5hbWUpOyhTb2x1dGlvbkRpcilcLi5ceGVu
aWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRhcmdldE5hbWUpLnBkYjslKE91dHB1dHMpPC9PdXRw
dXRzPgotICAgICAgPElucHV0cz4kKFRhcmdldFBhdGgpOyQoVGFyZ2V0RGlyKSQoVGFyZ2V0TmFt
ZSkucGRiPC9JbnB1dHM+Ci0gICAgPC9DdXN0b21CdWlsZFN0ZXA+Ci0gIDwvSXRlbURlZmluaXRp
b25Hcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgotICAgIDxDbENvbXBpbGU+Ci0gICAg
ICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPFByZWNvbXBpbGVk
SGVhZGVyPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxPcHRpbWl6YXRpb24+
TWF4U3BlZWQ8L09wdGltaXphdGlvbj4KLSAgICAgIDxGdW5jdGlvbkxldmVsTGlua2luZz50cnVl
PC9GdW5jdGlvbkxldmVsTGlua2luZz4KLSAgICAgIDxJbnRyaW5zaWNGdW5jdGlvbnM+dHJ1ZTwv
SW50cmluc2ljRnVuY3Rpb25zPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMy
O05ERUJVRztfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUztfV0lORE9XUzslKFByZXByb2Nlc3NvckRl
ZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8U0RMQ2hlY2s+dHJ1
ZTwvU0RMQ2hlY2s+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlxp
bmNsdWRlOyQoU29sdXRpb25EaXIpXGxpdGVhZ2VudDskKFNES19JTkNfUEFUSCk7JShBZGRpdGlv
bmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAg
ICAgIDxCcm93c2VJbmZvcm1hdGlvbj50cnVlPC9Ccm93c2VJbmZvcm1hdGlvbj4KLSAgICAgIDxQ
cmVwcm9jZXNzVG9GaWxlPmZhbHNlPC9QcmVwcm9jZXNzVG9GaWxlPgotICAgICAgPFJ1bnRpbWVM
aWJyYXJ5Pk11bHRpVGhyZWFkZWQ8L1J1bnRpbWVMaWJyYXJ5PgotICAgIDwvQ2xDb21waWxlPgot
ICAgIDxMaW5rPgotICAgICAgPFN1YlN5c3RlbT5XaW5kb3dzPC9TdWJTeXN0ZW0+Ci0gICAgICA8
R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4K
LSAgICAgIDxFbmFibGVDT01EQVRGb2xkaW5nPnRydWU8L0VuYWJsZUNPTURBVEZvbGRpbmc+Ci0g
ICAgICA8T3B0aW1pemVSZWZlcmVuY2VzPnRydWU8L09wdGltaXplUmVmZXJlbmNlcz4KLSAgICAg
IDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPlBvd3Jwcm9mLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRl
bmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgotICAgIDwvTGluaz4KLSAgICA8Q3VzdG9t
QnVpbGRTdGVwPgotICAgICAgPE1lc3NhZ2U+Q29weWluZyBvdXRwdXQgZmlsZXM8L01lc3NhZ2U+
Ci0gICAgICA8Q29tbWFuZD54Y29weSAveSAkKFRhcmdldFBhdGgpICQoU29sdXRpb25EaXIpXC4u
XHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpXAotICAgICAgICAgIHhjb3B5IC95ICQoVGFyZ2V0
RGlyKUxpdGVBZ2VudC5wZGIgJChTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRh
cmdldClcPC9Db21tYW5kPgotICAgICAgPE91dHB1dHM+JChTb2x1dGlvbkRpcilcLi5ceGVuaWZh
Y2VcJChQbGF0Zm9ybVRhcmdldCkkKFRhcmdldEZpbGVOYW1lKTsoU29sdXRpb25EaXIpXC4uXHhl
bmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXROYW1lKS5wZGI7JShPdXRwdXRzKTwvT3V0
cHV0cz4KLSAgICAgIDxJbnB1dHM+JChUYXJnZXRQYXRoKTskKFRhcmdldERpcikkKFRhcmdldE5h
bWUpLnBkYjwvSW5wdXRzPgotICAgIDwvQ3VzdG9tQnVpbGRTdGVwPgotICA8L0l0ZW1EZWZpbml0
aW9uR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxz
cmNcd2luMzJzdHViYWdlbnRcZXJyb3JzLmNwcCI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMy
JyI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVy
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQn
Ij5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcc3RkYWZ4LmNwcCI+Ci0g
ICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgot
ICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+Ci0g
ICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJz
dHViYWdlbnRcV21pQWNjZXNzb3IuY3BwIj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Q3Jl
YXRlPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPkNyZWF0ZTwv
UHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Tm90VXNpbmc8
L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5Ob3RVc2luZzwv
UHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcWFNBY2Nlc3Nvci5jcHAiPgotICAgICAgPFBy
ZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8V2luMzInIj5DcmVhdGU8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFByZWNv
bXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8eDY0JyI+Q3JlYXRlPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxQcmVjb21waWxl
ZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2V8V2luMzInIj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8UHJlY29tcGls
ZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfHg2NCciPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICA8L0NsQ29tcGlsZT4K
LSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2VudFxYU2Vydmlj
ZS5jcHAiPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj5DcmVhdGU8L1ByZWNvbXBpbGVkSGVh
ZGVyPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Q3JlYXRlPC9QcmVjb21waWxlZEhlYWRlcj4K
LSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+
Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4K
LSAgICAgIDxQcmVwcm9jZXNzVG9GaWxlIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj5mYWxzZTwvUHJlcHJvY2Vzc1RvRmlsZT4KLSAgICA8
L0NsQ29tcGlsZT4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcc3RkYWZ4LmgiIC8+Ci0gICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcV21pQWNjZXNzb3IuaCIg
Lz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2VudFxYU0Fj
Y2Vzc29yLmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHVi
YWdlbnRcWFNlcnZpY2UuaCIgLz4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAg
PEN1c3RvbUJ1aWxkIEluY2x1ZGU9Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2VudFxtZXNzYWdlcy5t
YyI+Ci0gICAgICA8RmlsZVR5cGU+RG9jdW1lbnQ8L0ZpbGVUeXBlPgotICAgICAgPENvbW1hbmQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMici
Pm1jICUoRnVsbFBhdGgpPC9Db21tYW5kPgotICAgICAgPENvbW1hbmQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj5tYyAlKEZ1bGxQYXRoKTwv
Q29tbWFuZD4KLSAgICAgIDxPdXRwdXRzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4lKEZpbGVuYW1lKS5yYzslKEZpbGVuYW1lKS5oPC9P
dXRwdXRzPgotICAgICAgPE91dHB1dHMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4lKEZpbGVuYW1lKS5yYzslKEZpbGVuYW1lKS5oPC9PdXRw
dXRzPgotICAgICAgPENvbW1hbmQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+bWMgJShGdWxsUGF0aCk8L0NvbW1hbmQ+Ci0gICAgICA8
Q29tbWFuZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2V8eDY0JyI+bWMgJShGdWxsUGF0aCk8L0NvbW1hbmQ+Ci0gICAgICA8T3V0cHV0cyBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4lKEZp
bGVuYW1lKS5yYzslKEZpbGVuYW1lKS5oPC9PdXRwdXRzPgotICAgICAgPE91dHB1dHMgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPiUoRmls
ZW5hbWUpLnJjOyUoRmlsZW5hbWUpLmg8L091dHB1dHM+Ci0gICAgPC9DdXN0b21CdWlsZD4KLSAg
PC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPFJlc291cmNlQ29tcGlsZSBJbmNsdWRl
PSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcdzMyeGFnZW50LnJjIiAvPgotICA8L0l0ZW1Hcm91
cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8SW1hZ2UgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1
YmFnZW50XHhlbi5pY28iIC8+Ci0gIDwvSXRlbUdyb3VwPgotICA8SW1wb3J0IFByb2plY3Q9IiQo
VkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC50YXJnZXRzIiAvPgotICA8SW1wb3J0R3JvdXAg
TGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgotICA8L0ltcG9ydEdyb3VwPgotPC9Qcm9qZWN0Pgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3ZzMjAxMy9saXRlYWdlbnQv
TGl0ZUFnZW50LnZjeHByb2oudXNlciBiL3ZzMjAxMy9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHBy
b2oudXNlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTBmM2NiZS4uMDAwMDAwMAot
LS0gYS92czIwMTMvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qLnVzZXIKKysrIC9kZXYvbnVs
bApAQCAtMSw0ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+
Ci08UHJvamVjdCBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jv
c29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+Ci0gIDxQcm9wZXJ0eUdyb3VwIC8+Ci08
L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdnMyMDEz
L3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2ogYi92czIwMTMveGVuYWdlbnQveGVuYWdlbnQudmN4
cHJvagpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OGVmM2ZjCi0tLSAvZGV2
L251bGwKKysrIGIvdnMyMDEzL3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2oKQEAgLTAsMCArMSwy
MjEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBE
ZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3Nj
aGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEl0ZW1Hcm91
cCBMYWJlbD0iUHJvamVjdENvbmZpZ3VyYXRpb25zIj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRp
b24gSW5jbHVkZT0iRGVidWd8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0Nv
bmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJv
amVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRl
YnVnfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KKyAg
ICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+
CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8V2luMzIiPgorICAg
ICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9y
bT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJv
amVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXx4NjQiPgorICAgICAgPENvbmZpZ3Vy
YXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRm
b3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgIDwvSXRlbUdyb3VwPgorICA8UHJv
cGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+CisgICAgPFByb2plY3RHdWlkPnsyRTYxRDJDQy04
NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9PC9Qcm9qZWN0R3VpZD4KKyAgICA8S2V5d29yZD5X
aW4zMlByb2o8L0tleXdvcmQ+CisgICAgPFJvb3ROYW1lc3BhY2U+eGVuYWdlbnQ8L1Jvb3ROYW1l
c3BhY2U+CisgICAgPFByb2plY3ROYW1lPnhlbmFnZW50PC9Qcm9qZWN0TmFtZT4KKyAgPC9Qcm9w
ZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0
LkNwcC5EZWZhdWx0LnByb3BzIiAvPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3Vy
YXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlv
blR5cGU+CisgICAgPFVzZURlYnVnTGlicmFyaWVzPnRydWU8L1VzZURlYnVnTGlicmFyaWVzPgor
ICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0FwcGxpY2F0aW9uRm9yRHJpdmVyczguMTwvUGxh
dGZvcm1Ub29sc2V0PgorICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+
CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlv
biI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlw
ZT4KKyAgICA8VXNlRGVidWdMaWJyYXJpZXM+dHJ1ZTwvVXNlRGVidWdMaWJyYXJpZXM+CisgICAg
PFBsYXRmb3JtVG9vbHNldD5XaW5kb3dzQXBwbGljYXRpb25Gb3JEcml2ZXJzOC4xPC9QbGF0Zm9y
bVRvb2xzZXQ+CisgICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KKyAg
PC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlv
biI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlw
ZT4KKyAgICA8VXNlRGVidWdMaWJyYXJpZXM+ZmFsc2U8L1VzZURlYnVnTGlicmFyaWVzPgorICAg
IDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0FwcGxpY2F0aW9uRm9yRHJpdmVyczguMTwvUGxhdGZv
cm1Ub29sc2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9n
cmFtT3B0aW1pemF0aW9uPgorICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJT
ZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJDb25maWd1
cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRp
b25UeXBlPgorICAgIDxVc2VEZWJ1Z0xpYnJhcmllcz5mYWxzZTwvVXNlRGVidWdMaWJyYXJpZXM+
CisgICAgPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dzQXBwbGljYXRpb25Gb3JEcml2ZXJzOC4xPC9Q
bGF0Zm9ybVRvb2xzZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9s
ZVByb2dyYW1PcHRpbWl6YXRpb24+CisgICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJh
Y3RlclNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJn
ZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5wcm9wcyIgLz4KKyAgPEltcG9ydEdyb3VwIExhYmVsPSJF
eHRlbnNpb25TZXR0aW5ncyI+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBMYWJl
bD0iUHJvcGVydHlTaGVldHMiIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8V2luMzInIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIp
XE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMo
JyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBM
YWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBv
cnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVz
ZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlv
bj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIu
cHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICA8L0ltcG9ydEdyb3Vw
PgorICA8SW1wb3J0R3JvdXAgTGFiZWw9IlByb3BlcnR5U2hlZXRzIiBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KKyAgICA8SW1wb3J0
IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5w
cm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQ
bGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Cisg
IDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4K
KyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0
Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jv
c29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxh
dGZvcm0iIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJVc2Vy
TWFjcm9zIiAvPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+CisgICAgPExpbmtJbmNyZW1lbnRhbD50cnVl
PC9MaW5rSW5jcmVtZW50YWw+CisgICAgPE91dERpcj4kKFNvbHV0aW9uRGlyKSQoUGxhdGZvcm0p
XCQoQ29uZmlndXJhdGlvbk5hbWUpXDwvT3V0RGlyPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQ
cm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8eDY0JyI+CisgICAgPExpbmtJbmNyZW1lbnRhbD50cnVlPC9MaW5rSW5jcmVtZW50YWw+
CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+CisgICAgPExpbmtJbmNy
ZW1lbnRhbD5mYWxzZTwvTGlua0luY3JlbWVudGFsPgorICAgIDxPdXREaXI+JChTb2x1dGlvbkRp
cikkKFBsYXRmb3JtKVwkKENvbmZpZ3VyYXRpb25OYW1lKVw8L091dERpcj4KKyAgPC9Qcm9wZXJ0
eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+CisgICAgPExpbmtJbmNyZW1lbnRhbD5mYWxzZTwv
TGlua0luY3JlbWVudGFsPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwPgor
ICAgIDxJbmNsdWRlUGF0aD4uLlwuLlxpbmNsdWRlOyQoSW5jbHVkZVBhdGgpPC9JbmNsdWRlUGF0
aD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+CisgICAgPENs
Q29tcGlsZT4KKyAgICAgIDxQcmVjb21waWxlZEhlYWRlcj5Ob3RVc2luZzwvUHJlY29tcGlsZWRI
ZWFkZXI+CisgICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgorICAgICAg
PE9wdGltaXphdGlvbj5EaXNhYmxlZDwvT3B0aW1pemF0aW9uPgorICAgICAgPFByZXByb2Nlc3Nv
ckRlZmluaXRpb25zPldJTjMyO19ERUJVRztfV0lORE9XUztfQ1JUX1NFQ1VSRV9OT19XQVJOSU5H
UzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Cisg
ICAgICA8U0RMQ2hlY2s+dHJ1ZTwvU0RMQ2hlY2s+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVE
aXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOyQoU29sdXRpb25EaXIpXHhlbmFnZW50OyQoU0RLX0lO
Q19QQVRIKTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVk
ZURpcmVjdG9yaWVzPgorICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWREZWJ1Zzwv
UnVudGltZUxpYnJhcnk+CisgICAgICA8UHJlY29tcGlsZWRIZWFkZXJGaWxlIC8+CisgICAgICA8
UHJlY29tcGlsZWRIZWFkZXJPdXRwdXRGaWxlIC8+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExp
bms+CisgICAgICA8U3ViU3lzdGVtPldpbmRvd3M8L1N1YlN5c3RlbT4KKyAgICAgIDxHZW5lcmF0
ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPgorICAgICAg
PEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+UG93cnByb2YubGliOyUoQWRkaXRpb25hbERlcGVuZGVu
Y2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgPC9MaW5rPgorICAgIDxDdXN0b21C
dWlsZFN0ZXA+CisgICAgICA8Q29tbWFuZD54Y29weSAveSAkKFRhcmdldFBhdGgpICQoU29sdXRp
b25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpXAorICAgICAgICAgICAgeGNvcHkg
L3kgJChUYXJnZXREaXIpeGVuYWdlbnQucGRiICQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQo
UGxhdGZvcm1UYXJnZXQpXDwvQ29tbWFuZD4KKyAgICA8L0N1c3RvbUJ1aWxkU3RlcD4KKyAgICA8
Q3VzdG9tQnVpbGRTdGVwPgorICAgICAgPE1lc3NhZ2U+Q29weWluZyBvdXRwdXQgZmlsZXM8L01l
c3NhZ2U+CisgICAgICA8T3V0cHV0cz4kKFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRm
b3JtVGFyZ2V0KSQoVGFyZ2V0RmlsZU5hbWUpOyhTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQ
bGF0Zm9ybVRhcmdldCkkKFRhcmdldE5hbWUpLnBkYjslKE91dHB1dHMpPC9PdXRwdXRzPgorICAg
ICAgPElucHV0cz4kKFRhcmdldFBhdGgpOyQoVGFyZ2V0RGlyKSQoVGFyZ2V0TmFtZSkucGRiPC9J
bnB1dHM+CisgICAgPC9DdXN0b21CdWlsZFN0ZXA+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4K
KyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPFByZWNvbXBp
bGVkSGVhZGVyPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4KKyAgICAgIDxXYXJuaW5nTGV2
ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+CisgICAgICA8T3B0aW1pemF0aW9uPkRpc2FibGVkPC9P
cHRpbWl6YXRpb24+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X0RFQlVH
O19XSU5ET1dTO19DUlRfU0VDVVJFX05PX1dBUk5JTkdTOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlv
bnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxTRExDaGVjaz50cnVlPC9TRExD
aGVjaz4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7
JChTb2x1dGlvbkRpcilceGVuYWdlbnQ7JChTREtfSU5DX1BBVEgpOyUoQWRkaXRpb25hbEluY2x1
ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8UnVu
dGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERlYnVnPC9SdW50aW1lTGlicmFyeT4KKyAgICAgIDxQ
cmVjb21waWxlZEhlYWRlckZpbGUgLz4KKyAgICAgIDxQcmVjb21waWxlZEhlYWRlck91dHB1dEZp
bGUgLz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxTdWJTeXN0ZW0+V2lu
ZG93czwvU3ViU3lzdGVtPgorICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9H
ZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz5Q
b3dycHJvZi5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVu
Y2llcz4KKyAgICA8L0xpbms+CisgICAgPEN1c3RvbUJ1aWxkU3RlcD4KKyAgICAgIDxDb21tYW5k
Pnhjb3B5IC95ICQoVGFyZ2V0UGF0aCkgJChTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0
Zm9ybVRhcmdldClcCisgICAgICAgICAgICB4Y29weSAveSAkKFRhcmdldERpcil4ZW5hZ2VudC5w
ZGIgJChTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldClcPC9Db21tYW5k
PgorICAgIDwvQ3VzdG9tQnVpbGRTdGVwPgorICAgIDxDdXN0b21CdWlsZFN0ZXA+CisgICAgICA8
TWVzc2FnZT5Db3B5aW5nIG91dHB1dCBmaWxlczwvTWVzc2FnZT4KKyAgICAgIDxPdXRwdXRzPiQo
U29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXRGaWxlTmFt
ZSk7KFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0TmFt
ZSkucGRiOyUoT3V0cHV0cyk8L091dHB1dHM+CisgICAgICA8SW5wdXRzPiQoVGFyZ2V0UGF0aCk7
JChUYXJnZXREaXIpJChUYXJnZXROYW1lKS5wZGI8L0lucHV0cz4KKyAgICA8L0N1c3RvbUJ1aWxk
U3RlcD4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzIn
Ij4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdM
ZXZlbD4KKyAgICAgIDxQcmVjb21waWxlZEhlYWRlcj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFk
ZXI+CisgICAgICA8T3B0aW1pemF0aW9uPk1heFNwZWVkPC9PcHRpbWl6YXRpb24+CisgICAgICA8
RnVuY3Rpb25MZXZlbExpbmtpbmc+dHJ1ZTwvRnVuY3Rpb25MZXZlbExpbmtpbmc+CisgICAgICA8
SW50cmluc2ljRnVuY3Rpb25zPnRydWU8L0ludHJpbnNpY0Z1bmN0aW9ucz4KKyAgICAgIDxQcmVw
cm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtOREVCVUc7X0NSVF9TRUNVUkVfTk9fV0FSTklOR1M7
X1dJTkRPV1M7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRp
b25zPgorICAgICAgPFNETENoZWNrPnRydWU8L1NETENoZWNrPgorICAgICAgPEFkZGl0aW9uYWxJ
bmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTskKFNvbHV0aW9uRGlyKVx4ZW5hZ2VudDsk
KFNES19JTkNfUEFUSCk7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25h
bEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICAgIDxCcm93c2VJbmZvcm1hdGlvbj50cnVlPC9Ccm93
c2VJbmZvcm1hdGlvbj4KKyAgICAgIDxQcmVwcm9jZXNzVG9GaWxlPmZhbHNlPC9QcmVwcm9jZXNz
VG9GaWxlPgorICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWQ8L1J1bnRpbWVMaWJy
YXJ5PgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPFN1YlN5c3RlbT5XaW5k
b3dzPC9TdWJTeXN0ZW0+CisgICAgICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPnRydWU8L0dl
bmVyYXRlRGVidWdJbmZvcm1hdGlvbj4KKyAgICAgIDxFbmFibGVDT01EQVRGb2xkaW5nPnRydWU8
L0VuYWJsZUNPTURBVEZvbGRpbmc+CisgICAgICA8T3B0aW1pemVSZWZlcmVuY2VzPnRydWU8L09w
dGltaXplUmVmZXJlbmNlcz4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPlBvd3Jwcm9m
LmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgor
ICAgIDwvTGluaz4KKyAgICA8Q3VzdG9tQnVpbGRTdGVwPgorICAgICAgPE1lc3NhZ2U+Q29weWlu
ZyBvdXRwdXQgZmlsZXM8L01lc3NhZ2U+CisgICAgICA8Q29tbWFuZD54Y29weSAveSAkKFRhcmdl
dFBhdGgpICQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpXAorICAg
ICAgICAgIHhjb3B5IC95ICQoVGFyZ2V0RGlyKXhlbmFnZW50LnBkYiAkKFNvbHV0aW9uRGlyKVwu
Llx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KVw8L0NvbW1hbmQ+CisgICAgICA8T3V0cHV0cz4k
KFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0RmlsZU5h
bWUpOyhTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRhcmdldE5h
bWUpLnBkYjslKE91dHB1dHMpPC9PdXRwdXRzPgorICAgICAgPElucHV0cz4kKFRhcmdldFBhdGgp
OyQoVGFyZ2V0RGlyKSQoVGFyZ2V0TmFtZSkucGRiPC9JbnB1dHM+CisgICAgPC9DdXN0b21CdWls
ZFN0ZXA+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCci
PgorICAgIDxDbENvbXBpbGU+CisgICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xl
dmVsPgorICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRl
cj4KKyAgICAgIDxPcHRpbWl6YXRpb24+TWF4U3BlZWQ8L09wdGltaXphdGlvbj4KKyAgICAgIDxG
dW5jdGlvbkxldmVsTGlua2luZz50cnVlPC9GdW5jdGlvbkxldmVsTGlua2luZz4KKyAgICAgIDxJ
bnRyaW5zaWNGdW5jdGlvbnM+dHJ1ZTwvSW50cmluc2ljRnVuY3Rpb25zPgorICAgICAgPFByZXBy
b2Nlc3NvckRlZmluaXRpb25zPldJTjMyO05ERUJVRztfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUztf
V0lORE9XUzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlv
bnM+CisgICAgICA8U0RMQ2hlY2s+dHJ1ZTwvU0RMQ2hlY2s+CisgICAgICA8QWRkaXRpb25hbElu
Y2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOyQoU29sdXRpb25EaXIpXHhlbmFnZW50OyQo
U0RLX0lOQ19QQVRIKTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPEJyb3dzZUluZm9ybWF0aW9uPnRydWU8L0Jyb3dz
ZUluZm9ybWF0aW9uPgorICAgICAgPFByZXByb2Nlc3NUb0ZpbGU+ZmFsc2U8L1ByZXByb2Nlc3NU
b0ZpbGU+CisgICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZDwvUnVudGltZUxpYnJh
cnk+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8U3ViU3lzdGVtPldpbmRv
d3M8L1N1YlN5c3RlbT4KKyAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2Vu
ZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPgorICAgICAgPEVuYWJsZUNPTURBVEZvbGRpbmc+dHJ1ZTwv
RW5hYmxlQ09NREFURm9sZGluZz4KKyAgICAgIDxPcHRpbWl6ZVJlZmVyZW5jZXM+dHJ1ZTwvT3B0
aW1pemVSZWZlcmVuY2VzPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+UG93cnByb2Yu
bGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+Cisg
ICAgPC9MaW5rPgorICAgIDxDdXN0b21CdWlsZFN0ZXA+CisgICAgICA8TWVzc2FnZT5Db3B5aW5n
IG91dHB1dCBmaWxlczwvTWVzc2FnZT4KKyAgICAgIDxDb21tYW5kPnhjb3B5IC95ICQoVGFyZ2V0
UGF0aCkgJChTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldClcCisgICAg
ICAgICAgeGNvcHkgL3kgJChUYXJnZXREaXIpeGVuYWdlbnQucGRiICQoU29sdXRpb25EaXIpXC4u
XHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpXDwvQ29tbWFuZD4KKyAgICAgIDxPdXRwdXRzPiQo
U29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXRGaWxlTmFt
ZSk7KFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0TmFt
ZSkucGRiOyUoT3V0cHV0cyk8L091dHB1dHM+CisgICAgICA8SW5wdXRzPiQoVGFyZ2V0UGF0aCk7
JChUYXJnZXREaXIpJChUYXJnZXROYW1lKS5wZGI8L0lucHV0cz4KKyAgICA8L0N1c3RvbUJ1aWxk
U3RlcD4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHhlbmFnZW50XHNlcnZpY2UuY3BwIi8+CisgIDwvSXRl
bUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cc3Jj
XHhlbmFnZW50XHNlcnZpY2UuaCIgLz4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+Cisg
ICAgPEN1c3RvbUJ1aWxkIEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5hZ2VudFx4ZW5hZ2VudC5tYyI+
CisgICAgICA8RmlsZVR5cGU+RG9jdW1lbnQ8L0ZpbGVUeXBlPgorICAgICAgPENvbW1hbmQ+bWMg
JShGdWxsUGF0aCk8L0NvbW1hbmQ+CisgICAgICA8T3V0cHV0cz4lKEZpbGVuYW1lKS5yYzslKEZp
bGVuYW1lKS5oPC9PdXRwdXRzPgorICAgIDwvQ3VzdG9tQnVpbGQ+CisgIDwvSXRlbUdyb3VwPgor
ICA8SXRlbUdyb3VwPgorICAgIDxSZXNvdXJjZUNvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHhl
bmFnZW50XHhlbmFnZW50LnJjIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAg
ICA8SW1hZ2UgSW5jbHVkZT0iLi5cLi5cc3JjXHhlbmFnZW50XHhlbi5pY28iIC8+CisgIDwvSXRl
bUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNw
cC50YXJnZXRzIiAvPgorICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgor
ICA8L0ltcG9ydEdyb3VwPgorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL3ZzMjAxMy94ZW5hZ2VudC94ZW5hZ2VudC52Y3hwcm9qLnVzZXIgYi92czIw
MTMveGVuYWdlbnQveGVuYWdlbnQudmN4cHJvai51c2VyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjUwZjNjYmUKLS0tIC9kZXYvbnVsbAorKysgYi92czIwMTMveGVuYWdlbnQv
eGVuYWdlbnQudmN4cHJvai51c2VyCkBAIC0wLDAgKzEsNCBAQAorPD94bWwgdmVyc2lvbj0iMS4w
IiBlbmNvZGluZz0idXRmLTgiPz4KKzxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0i
aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAg
PFByb3BlcnR5R3JvdXAgLz4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS92czIwMTMveGVuaWZhY2Uuc2xuIGIvdnMyMDEzL3hlbmlmYWNlLnNsbgpp
bmRleCA0MTNiODZhLi4xMDY4YTNhIDEwMDY0NAotLS0gYS92czIwMTMveGVuaWZhY2Uuc2xuCisr
KyBiL3ZzMjAxMy94ZW5pZmFjZS5zbG4KQEAgLTksNyArOSw3IEBAIFByb2plY3QoIns4QkM5Q0VC
OC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAieGVuaWZhY2UiLCAieGVuaWZhY2Vc
eGVuaWZhCiAJCXs4NUM3MzFBRC0yRUEyLTQwNDktQTU0Mi1EMkQzOEVERTkzOEN9ID0gezg1Qzcz
MUFELTJFQTItNDA0OS1BNTQyLUQyRDM4RURFOTM4Q30KIAlFbmRQcm9qZWN0U2VjdGlvbgogRW5k
UHJvamVjdAotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0i
KSA9ICJMaXRlQWdlbnQiLCAibGl0ZWFnZW50XExpdGVBZ2VudC52Y3hwcm9qIiwgInsyRTYxRDJD
Qy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9IgorUHJvamVjdCgiezhCQzlDRUI4LThCNEEt
MTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJ4ZW5hZ2VudCIsICJ4ZW5hZ2VudFx4ZW5hZ2Vu
dC52Y3hwcm9qIiwgInsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9IgogRW5k
UHJvamVjdAogUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0i
KSA9ICJwYWNrYWdlIiwgInBhY2thZ2VccGFja2FnZS52Y3hwcm9qIiwgIns5QjA3MUEzNS04OTdD
LTQ3N0EtQUVCNy05NUY3NzYxOEEyMUR9IgogCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRl
bmNpZXMpID0gcG9zdFByb2plY3QKLS0gCjEuOS40Lm1zeXNnaXQuMQoKCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxp
c3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9q
ZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 05 10:38:27 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 05 Jul 2016 10:38:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bKNkJ-0005Jz-O0; Tue, 05 Jul 2016 10:38:27 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=987319bd7=owen.smith@citrix.com>)
 id 1bKNkH-0005GW-SO
 for win-pv-devel@lists.xenproject.org; Tue, 05 Jul 2016 10:38:26 +0000
Received: from [85.158.143.35] by server-3.bemta-6.messagelabs.com id
 62/9F-22092-12E8B775; Tue, 05 Jul 2016 10:38:25 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupnkeJIrShJLcpLzFFi42JxWrohUlehrzr
 c4Pw8XYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCa8eLeNLaCuR08FQeX9TM3MH78wtnFyMkhIeAv
 cfjxdnYQm01AQ2JG52IWEFtEQF1i3+etTCA2s4CaxPX9XaxdjBwcwgIBEhP7xUDCLAIqEhtXz
 GMGsXkFXCXa1/1ihhipIbGpYQYbiM0p4CbRuH0NK4gtBFTTsP8SI4StJPFt8QuoXkGJkzOfsE
 CskpA4+AIkzgE0h1vib7f9BEa+WUiqZiGpWsDItIpRvTi1qCy1SNdIL6koMz2jJDcxM0fX0MB
 MLze1uDgxPTUnMalYLzk/dxMjMKAYgGAH47K/TocYJTmYlER5HWqqw4X4kvJTKjMSizPii0pz
 UosPMcpwcChJ8F7tAcoJFqWmp1akZeYAQxsmLcHBoyTCy9wLlOYtLkjMLc5Mh0idYlSUEue1B
 UkIgCQySvPg2mDxdIlRVkqYlxHoECGegtSi3MwSVPlXjOIcjErCvKdAtvNk5pXATX8FtJgJaP
 FPF7DFJYkIKakGRoY2w0llz3+c5BW34QzfvUPiWszs1TFbMraFZGS3Vhu/lzu3yGfrTudMl9M
 nHvxiSzz4ZfsJlfmRc4T49F9P+OF/LKPrU2LQAZnVR0/lfv4yOf9njKj9DdH5nUVBLes/1bJx
 HY5d/HfXii/f9mhufHBlTmR9yQ/fMvtrk27sScm5ENXOuf6Tv4kSS3FGoqEWc1FxIgAXFRAko
 gIAAA==
X-Env-Sender: prvs=987319bd7=owen.smith@citrix.com
X-Msg-Ref: server-10.tower-21.messagelabs.com!1467715100!22252305!4
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13399 invoked from network); 5 Jul 2016 10:38:24 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-10.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 5 Jul 2016 10:38:24 -0000
X-IronPort-AV: E=Sophos;i="5.26,579,1459814400"; d="scan'208";a="364363850"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 5 Jul 2016 11:38:06 +0100
Message-ID: <1467715091-13216-2-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
References: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 1/6] Remove LiteAgent,
	replace with boilerplate xenagent service
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <http://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

UmVtb3ZlIHRoZSBMaXRlQWdlbnQgcHJvamVjdCBhbmQgcmVwbGFjZSBpdCB3aXRoIHRoZSB4ZW5h
Z2VudApwcm9qZWN0LiBYZW5hZ2VudCBpcyBhIGJvaWxlcnBsYXRlIHNlcnZpY2UgdGhhdCBoYXMg
bm8KZnVuY3Rpb25hbGl0eSBpbiB0aGlzIHBhdGNoLiBTdWJzaXF1ZW50IHBhdGNoZXMgd2lsbCBh
ZGQKdGhlIHJlcXVpcmVkIGZ1bmN0aW9uYWxpdHkuCgpTaWduZWQtb2ZmLWJ5OiBPd2VuIFNtaXRo
IDxvd2VuLnNtaXRoQGNpdHJpeC5jb20+Ci0tLQogc3JjL3dpbjMyc3R1YmFnZW50L1dtaUFjY2Vz
c29yLmNwcCAgICAgIHwgMTMzMSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmMv
d2luMzJzdHViYWdlbnQvV21pQWNjZXNzb3IuaCAgICAgICAgfCAgIDg4IC0tCiBzcmMvd2luMzJz
dHViYWdlbnQvWFNBY2Nlc3Nvci5jcHAgICAgICAgfCAgMjMwIC0tLS0tLQogc3JjL3dpbjMyc3R1
YmFnZW50L1hTQWNjZXNzb3IuaCAgICAgICAgIHwgIDEyNiAtLS0KIHNyYy93aW4zMnN0dWJhZ2Vu
dC9YU2VydmljZS5jcHAgICAgICAgICB8IDEwNDQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBz
cmMvd2luMzJzdHViYWdlbnQvWFNlcnZpY2UuaCAgICAgICAgICAgfCAgIDU0IC0tCiBzcmMvd2lu
MzJzdHViYWdlbnQvZXJyb3JzLmNwcCAgICAgICAgICAgfCAgMTAyIC0tLQogc3JjL3dpbjMyc3R1
YmFnZW50L21lc3NhZ2VzLm1jICAgICAgICAgIHwgICA2NiAtLQogc3JjL3dpbjMyc3R1YmFnZW50
L3N0ZGFmeC5jcHAgICAgICAgICAgIHwgICAzOSAtCiBzcmMvd2luMzJzdHViYWdlbnQvc3RkYWZ4
LmggICAgICAgICAgICAgfCAgIDQzIC0KIHNyYy93aW4zMnN0dWJhZ2VudC93MzJ4YWdlbnQucmMg
ICAgICAgICB8ICAgNjAgLS0KIHNyYy93aW4zMnN0dWJhZ2VudC94ZW4uaWNvICAgICAgICAgICAg
ICB8ICBCaW4gMjUyMTQgLT4gMCBieXRlcwogc3JjL3hlbmFnZW50L21lc3NhZ2VzLm1jICAgICAg
ICAgICAgICAgIHwgICA2NiArKwogc3JjL3hlbmFnZW50L3NlcnZpY2UuY3BwICAgICAgICAgICAg
ICAgIHwgIDI0OCArKysrKysKIHNyYy94ZW5hZ2VudC9zZXJ2aWNlLmggICAgICAgICAgICAgICAg
ICB8ICAgNzQgKysKIHNyYy94ZW5hZ2VudC94ZW4uaWNvICAgICAgICAgICAgICAgICAgICB8ICBC
aW4gMCAtPiAyNTIxNCBieXRlcwogc3JjL3hlbmFnZW50L3hlbmFnZW50LnJjICAgICAgICAgICAg
ICAgIHwgICA2MCArKwogc3JjL3hlbmlmYWNlLmluZiAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAxNiArLQogdnMyMDEyL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvaiAgICAgIHwgIDI1MSAt
LS0tLS0KIHZzMjAxMi9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHByb2oudXNlciB8ICAgIDQgLQog
dnMyMDEyL3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2ogICAgICAgIHwgIDIxNyArKysrKwogdnMy
MDEyL3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2oudXNlciAgIHwgICAgNCArCiB2czIwMTIveGVu
aWZhY2Uuc2xuICAgICAgICAgICAgICAgICAgICAgfCAgICAyICstCiB2czIwMTMvbGl0ZWFnZW50
L0xpdGVBZ2VudC52Y3hwcm9qICAgICAgfCAgMjU2IC0tLS0tLQogdnMyMDEzL2xpdGVhZ2VudC9M
aXRlQWdlbnQudmN4cHJvai51c2VyIHwgICAgNCAtCiB2czIwMTMveGVuYWdlbnQveGVuYWdlbnQu
dmN4cHJvaiAgICAgICAgfCAgMjIxICsrKysrCiB2czIwMTMveGVuYWdlbnQveGVuYWdlbnQudmN4
cHJvai51c2VyICAgfCAgICA0ICsKIHZzMjAxMy94ZW5pZmFjZS5zbG4gICAgICAgICAgICAgICAg
ICAgICB8ICAgIDIgKy0KIDI4IGZpbGVzIGNoYW5nZWQsIDkwNCBpbnNlcnRpb25zKCspLCAzNzA4
IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy93aW4zMnN0dWJhZ2VudC9XbWlB
Y2Nlc3Nvci5jcHAKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvd2luMzJzdHViYWdlbnQvV21pQWNj
ZXNzb3IuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy93aW4zMnN0dWJhZ2VudC9YU0FjY2Vzc29y
LmNwcAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy93aW4zMnN0dWJhZ2VudC9YU0FjY2Vzc29yLmgK
IGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvd2luMzJzdHViYWdlbnQvWFNlcnZpY2UuY3BwCiBkZWxl
dGUgbW9kZSAxMDA2NDQgc3JjL3dpbjMyc3R1YmFnZW50L1hTZXJ2aWNlLmgKIGRlbGV0ZSBtb2Rl
IDEwMDY0NCBzcmMvd2luMzJzdHViYWdlbnQvZXJyb3JzLmNwcAogZGVsZXRlIG1vZGUgMTAwNjQ0
IHNyYy93aW4zMnN0dWJhZ2VudC9tZXNzYWdlcy5tYwogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy93
aW4zMnN0dWJhZ2VudC9zdGRhZnguY3BwCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3dpbjMyc3R1
YmFnZW50L3N0ZGFmeC5oCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3dpbjMyc3R1YmFnZW50L3cz
MnhhZ2VudC5yYwogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy93aW4zMnN0dWJhZ2VudC94ZW4uaWNv
CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3hlbmFnZW50L21lc3NhZ2VzLm1jCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgc3JjL3hlbmFnZW50L3NlcnZpY2UuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj
L3hlbmFnZW50L3NlcnZpY2UuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy94ZW5hZ2VudC94ZW4u
aWNvCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3hlbmFnZW50L3hlbmFnZW50LnJjCiBkZWxldGUg
bW9kZSAxMDA2NDQgdnMyMDEyL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvagogZGVsZXRlIG1v
ZGUgMTAwNjQ0IHZzMjAxMi9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHByb2oudXNlcgogY3JlYXRl
IG1vZGUgMTAwNjQ0IHZzMjAxMi94ZW5hZ2VudC94ZW5hZ2VudC52Y3hwcm9qCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgdnMyMDEyL3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2oudXNlcgogZGVsZXRlIG1v
ZGUgMTAwNjQ0IHZzMjAxMy9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHByb2oKIGRlbGV0ZSBtb2Rl
IDEwMDY0NCB2czIwMTMvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qLnVzZXIKIGNyZWF0ZSBt
b2RlIDEwMDY0NCB2czIwMTMveGVuYWdlbnQveGVuYWdlbnQudmN4cHJvagogY3JlYXRlIG1vZGUg
MTAwNjQ0IHZzMjAxMy94ZW5hZ2VudC94ZW5hZ2VudC52Y3hwcm9qLnVzZXIKCmRpZmYgLS1naXQg
YS9zcmMvd2luMzJzdHViYWdlbnQvV21pQWNjZXNzb3IuY3BwIGIvc3JjL3dpbjMyc3R1YmFnZW50
L1dtaUFjY2Vzc29yLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjg1ZmY4ZS4u
MDAwMDAwMAotLS0gYS9zcmMvd2luMzJzdHViYWdlbnQvV21pQWNjZXNzb3IuY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsMTMzMSArMCwwIEBACi0vKiBDb3B5cmlnaHQgKGMpIENpdHJpeCBTeXN0ZW1z
IEluYy4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcywgCi0gKiB3aXRoIG9yIHdpdGhvdXQgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIAotICogdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlIG1ldDoKLSAqCi0gKiAqICAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSAKLSAqICAgICBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIAotICogICAgIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogKiAgIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgCi0gKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSAKLSAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgCi0gKiAgICAgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgCi0gKiBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCAKLSAqIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIAotICogTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgCi0gKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiAKLSAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCAKLSAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIAot
ICogQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IAotICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyAKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCAKLSAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyAKLSAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIAotICogU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lu
Y2x1ZGUgInN0ZGFmeC5oIgotI2RlZmluZSBfV0lOMzJfRENPTQotI2luY2x1ZGUgPHdpbmRvd3Mu
aD4KLSNpbmNsdWRlIDxpb3N0cmVhbT4KLSNpbmNsdWRlIDxhbGdvcml0aG0+Ci0jaW5jbHVkZSA8
aGFzaF9tYXA+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlICJ3aW5lcnJvci5oIgotI2lu
Y2x1ZGUgIldNSUFjY2Vzc29yLmgiCi0jaW5jbHVkZSAiWFNlcnZpY2UuaCIKLSNpbmNsdWRlICJj
b211dGlsLmgiCi0KLS8vI2luY2x1ZGUgInhzX3ByaXZhdGUuaCIKLSNpbmNsdWRlIDx3YmVtaWRs
Lmg+Ci0KLSNpbmNsdWRlIDx2ZXJzaW9uLmg+Ci0KLSNkZWZpbmUgV0lERU4yKHgpIEwgIyMgeAot
I2RlZmluZSBXSURFTih4KSBXSURFTjIoeCkKLQotI2RlZmluZSBPQkpFQ1RfTkFNRV9BKF9OYW1l
KSBPQkpFQ1RfUFJFRklYX1NUUiAiWGVuU3RvcmUiICNfTmFtZQotI2RlZmluZSBPQkpFQ1RfTkFN
RV9XKF9OYW1lKSBXSURFTihPQkpFQ1RfUFJFRklYX1NUUikgTCJYZW5TdG9yZSIgV0lERU4oI19O
YW1lKQotCi0jcHJhZ21hIGNvbW1lbnQobGliLCAid2JlbXV1aWQubGliIikKLSNwcmFnbWEgY29t
bWVudChsaWIsICJ1dWlkLmxpYiIpCi0jcHJhZ21hIGNvbW1lbnQobGliLCAiY29tc3VwcHcubGli
IikKLQotQlNUUiBta0JzdHIoY29uc3QgY2hhciAqc3RyaW5nLCBzaXplX3QgbGVuKSB7Ci0gICAg
QlNUUiByZXMgPSBOVUxMOwotICAgIHNpemVfdCByZXR1cm5lZDsKLSAgICB3Y2hhcl90KiB3c3Ry
aW5nID0gbmV3IHdjaGFyX3RbbGVuKzFdOwotICAgIGlmICh3c3RyaW5nID09IE5VTEwpIHsKLSAg
ICAgICAgZ290byBtYWxsb2Nfd3N0cmluZzsKLSAgICB9Ci0gICAgbWJzdG93Y3NfcygmcmV0dXJu
ZWQsIHdzdHJpbmcsIGxlbisxLCBzdHJpbmcsIGxlbik7Ci0gICAgcmVzID0gU3lzQWxsb2NTdHJp
bmcod3N0cmluZyk7Ci0gICAgZGVsZXRlIHdzdHJpbmc7Ci1tYWxsb2Nfd3N0cmluZzoKLSAgICBy
ZXR1cm4gcmVzOwotfQotCi1jaGFyICogZm9ybWF0Q2hhclN0ckludChjb25zdCBjaGFyICpmbXQs
IHZhX2xpc3QgbCkgewotICAgIGNoYXIgKmJ1ZiA9IE5VTEw7Ci0gICAgaW50IGNudCA9IF92c2Nw
cmludGYoZm10LCBsKTsKLSAgICBidWYgPSAoY2hhciAqKVhzQWxsb2MoY250KzEpOwotICAgIGlm
IChidWYgPT0gTlVMTCkgewotICAgICAgICBnb3RvIG1hbGxvY19idWY7Ci0gICAgfQotICAgIF92
c25wcmludGYoYnVmLCBjbnQrMSwgZm10LCBsKTsKLW1hbGxvY19idWY6Ci0gICAgcmV0dXJuIGJ1
ZjsKLX0KLQotY2hhciAqIGZvcm1hdENoYXJTdHIoY29uc3QgY2hhciAqZm10LCAuLi4gKSB7Ci0g
ICAgY2hhciAqYnVmID1OVUxMOwotICAgIHZhX2xpc3QgbDsKLSAgICB2YV9zdGFydChsLCBmbXQp
OwotICAgIGJ1ZiA9IGZvcm1hdENoYXJTdHJJbnQoZm10LCBsKTsKLSAgICB2YV9lbmQobCk7Ci0g
ICAgcmV0dXJuIGJ1ZjsKLX0KLQotQlNUUiBmb3JtYXRCc3RyKGNvbnN0IGNoYXIgKmZtdCwgLi4u
KSAKLXsKLSAgICBjaGFyICpidWY7Ci0gICAgdmFfbGlzdCBsOyAgCi0gICAgQlNUUiByZXMgPSBO
VUxMOwotICAgIHZhX3N0YXJ0KGwsIGZtdCk7Ci0gICAgYnVmID0gZm9ybWF0Q2hhclN0ckludChm
bXQsIGwpOwotICAgIHZhX2VuZChsKTsKLSAgICByZXMgPSBta0JzdHIoYnVmLCBzdHJsZW4oYnVm
KSk7Ci0gICAgWHNGcmVlKGJ1Zik7Ci0gICAgcmV0dXJuIHJlczsKLX0KLQotaW50IHNldFZhcmlh
bnRTdHJpbmcoVkFSSUFOVCogdmFyLCBjb25zdCBjaGFyICpkYXRhLCBzaXplX3QgbGVuKSB7Ci0g
ICAgaW50IGVycj0tMTsKLSAgICBWYXJpYW50SW5pdCh2YXIpOwotICAgIHZhci0+dnQ9VlRfQlNU
UjsKLSAgICB2YXItPmJzdHJWYWwgPSBta0JzdHIoZGF0YSwgbGVuKTsKLSAgICBpZiAodmFyLT5i
c3RyVmFsID09IE5VTEwpIHsKLSAgICAgICAgZ290byBzeXNhbGxvYzsKLSAgICB9Ci0gICAgZXJy
PTA7Ci1zeXNhbGxvYzoKLSAgICByZXR1cm4gZXJyOwotfQotCi0KLWludCBzZXRWYXJpYW50U3Ry
aW5nKFZBUklBTlQqIHZhciwgY29uc3QgY2hhciAqc3RyaW5nKSB7Ci0gICAgcmV0dXJuIHNldFZh
cmlhbnRTdHJpbmcodmFyLCBzdHJpbmcsIHN0cmxlbihzdHJpbmcpKTsKLX0KLQotCi1jbGFzcyBX
YXRjaFNpbmsgOiBwdWJsaWMgSVdiZW1PYmplY3RTaW5rCi17Ci0gICAgTE9ORyBtX2xSZWY7Ci0g
ICAgYm9vbCBiRG9uZTsgCi0gICAgSEFORExFIHRyaWdnZXJldmVudDsKLSAgICBIQU5ETEUgdHJp
Z2dlcmVycm9yOwotcHVibGljOgotICAgIGNoYXIgKnBhdGg7Ci0gICAgV2F0Y2hTaW5rKEhBTkRM
RSBldmVudCwgSEFORExFIGVycm9yZXZlbnQsIGNvbnN0IGNoYXIgKnBhdGgpIHsgCi0gICAgICAg
IG1fbFJlZiA9IDE7IAotICAgICAgICB0cmlnZ2VyZXZlbnQgPSBldmVudDsKLSAgICAgICAgdHJp
Z2dlcmVycm9yID0gZXJyb3JldmVudDsKLSAgICAgICAgdGhpcy0+cGF0aCA9IE5VTEw7Ci0gICAg
ICAgIGlmIChwYXRoKSB7Ci0gICAgICAgICAgICB0aGlzLT5wYXRoPShjaGFyICopWHNBbGxvYyhz
dHJsZW4ocGF0aCkrMSk7Ci0gICAgICAgICAgICBzdHJjcHkodGhpcy0+cGF0aCwgcGF0aCk7Ci0g
ICAgICAgIH0KLSAgICB9Ci0gICB+V2F0Y2hTaW5rKCkgeyBiRG9uZSA9IFRSVUU7IH0KLQotICAg
IHZpcnR1YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgQWRkUmVmKCk7Ci0gICAgdmlydHVhbCBV
TE9ORyBTVERNRVRIT0RDQUxMVFlQRSBSZWxlYXNlKCk7ICAgICAgICAKLSAgICB2aXJ0dWFsIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgCi0gICAgICAgIFF1ZXJ5SW50ZXJmYWNlKFJFRklJRCBy
aWlkLCB2b2lkKiogcHB2KTsKLQotICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQ
RSBJbmRpY2F0ZSggCi0gICAgICAgICAgICAvKiBbaW5dICovCi0gICAgICAgICAgICBMT05HIGxP
YmplY3RDb3VudCwKLSAgICAgICAgICAgIC8qIFtzaXplX2lzXVtpbl0gKi8KLSAgICAgICAgICAg
IElXYmVtQ2xhc3NPYmplY3QgX19SUENfRkFSICpfX1JQQ19GQVIgKmFwT2JqQXJyYXkKLSAgICAg
ICAgICAgICk7Ci0gICAgICAgIAotICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQ
RSBTZXRTdGF0dXMoIAotICAgICAgICAgICAgLyogW2luXSAqLyBMT05HIGxGbGFncywKLSAgICAg
ICAgICAgIC8qIFtpbl0gKi8gSFJFU1VMVCBoUmVzdWx0LAotICAgICAgICAgICAgLyogW2luXSAq
LyBCU1RSIHN0clBhcmFtLAotICAgICAgICAgICAgLyogW2luXSAqLyBJV2JlbUNsYXNzT2JqZWN0
IF9fUlBDX0ZBUiAqcE9ialBhcmFtCi0gICAgICAgICAgICApOwotfTsKLQotCi1VTE9ORyBXYXRj
aFNpbms6OkFkZFJlZigpCi17Ci0gICAgcmV0dXJuIEludGVybG9ja2VkSW5jcmVtZW50KCZtX2xS
ZWYpOwotfQotCi1VTE9ORyBXYXRjaFNpbms6OlJlbGVhc2UoKQotewotICAgIExPTkcgbFJlZiA9
IEludGVybG9ja2VkRGVjcmVtZW50KCZtX2xSZWYpOwotICAgIGlmKGxSZWYgPT0gMCkKLSAgICAg
ICAgZGVsZXRlIHRoaXM7Ci0gICAgcmV0dXJuIGxSZWY7Ci19Ci0KLUhSRVNVTFQgV2F0Y2hTaW5r
OjpRdWVyeUludGVyZmFjZShSRUZJSUQgcmlpZCwgdm9pZCoqIHBwdikKLXsKLSAgICBpZiAocmlp
ZCA9PSBJSURfSVVua25vd24gfHwgcmlpZCA9PSBJSURfSVdiZW1PYmplY3RTaW5rKQotICAgIHsK
LSAgICAgICAgKnBwdiA9IChJV2JlbU9iamVjdFNpbmsgKikgdGhpczsKLSAgICAgICAgQWRkUmVm
KCk7Ci0gICAgICAgIHJldHVybiBXQkVNX1NfTk9fRVJST1I7Ci0gICAgfQotICAgIGVsc2UgcmV0
dXJuIEVfTk9JTlRFUkZBQ0U7Ci19Ci0KLQotSFJFU1VMVCBXYXRjaFNpbms6OkluZGljYXRlKGxv
bmcgbE9iakNvdW50LCBJV2JlbUNsYXNzT2JqZWN0ICoqcEFycmF5KQotewotICAgIGZvciAobG9u
ZyBpID0gMDsgaSA8IGxPYmpDb3VudDsgaSsrKQotICAgIHsKLSAgICAgICAgSVdiZW1DbGFzc09i
amVjdCAqcE9iaiA9IHBBcnJheVtpXTsKLSAgICAgICAgU2V0RXZlbnQodGhpcy0+dHJpZ2dlcmV2
ZW50KTsKLSAgICAgICAgLy8gLi4uIHVzZSB0aGUgb2JqZWN0LgotCi0gICAgICAgIC8vIEFkZFJl
ZigpIGlzIG9ubHkgcmVxdWlyZWQgaWYgdGhlIG9iamVjdCB3aWxsIGJlIGhlbGQgYWZ0ZXIKLSAg
ICAgICAgLy8gdGhlIHJldHVybiB0byB0aGUgY2FsbGVyLgotICAgIH0KLQotICAgIHJldHVybiBX
QkVNX1NfTk9fRVJST1I7Ci19Ci0KLUhSRVNVTFQgV2F0Y2hTaW5rOjpTZXRTdGF0dXMoCi0gICAg
ICAgICAgICAvKiBbaW5dICovIExPTkcgbEZsYWdzLAotICAgICAgICAgICAgLyogW2luXSAqLyBI
UkVTVUxUIGhSZXN1bHQsCi0gICAgICAgICAgICAvKiBbaW5dICovIEJTVFIgc3RyUGFyYW0sCi0g
ICAgICAgICAgICAvKiBbaW5dICovIElXYmVtQ2xhc3NPYmplY3QgX19SUENfRkFSICpwT2JqUGFy
YW0KLSAgICAgICAgKQotewotICAgIGlmIChGQUlMRUQoaFJlc3VsdCkpIHsKLSAgICAgICAgWHNM
b2coIldNSSBBc3ljIHdhdGNoIGZhaWxlZCAlcFxuIiwgdGhpcyk7Ci0gICAgICAgIFNldEV2ZW50
KHRoaXMtPnRyaWdnZXJlcnJvcik7Ci0gICAgfQotICAgIHJldHVybiBXQkVNX1NfTk9fRVJST1I7
Ci19Ci0KLQotCi1zdHJ1Y3QgV01JQWNjZXNzb3IKLXsKLSAgICBJV2JlbVNlcnZpY2VzICptcFN2
YzsKLSAgICBJV2JlbVNlcnZpY2VzICptcFhTU3ZjOwotICAgIAotICAgIEhBTkRMRSBvd25pbmdf
dGhyZWFkOwotfTsKLQotc3RydWN0IFdNSUFjY2Vzc29yICp3bWkgPSBOVUxMOwotCi1zdGF0aWMg
c3RyaW5nIHdzdHJpbmcyc3RyaW5nKGNvbnN0IHdzdHJpbmcmIHdzdHIpCi17IAotICAgIGludCBs
ZW47Ci0KLSAgICBsZW4gPSBXaWRlQ2hhclRvTXVsdGlCeXRlKENQX1VURjgsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3N0
ci5jX3N0cigpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBOVUxMKTsKLQotICAgIHN0cmluZyBzdHIobGVuLCAwKTsKLQotICAgIGxl
biA9IFdpZGVDaGFyVG9NdWx0aUJ5dGUoQ1BfVVRGOCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3c3RyLmNfc3RyKCksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICZzdHJbMF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KXN0ci5s
ZW5ndGgoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBOVUxMKTsKLQotICAgIHJldHVybiBzdHI7Ci19Ci0KLXN0YXRp
YyBzdHJpbmcgYnN0cjJzdHJpbmcoY29uc3QgQlNUUiYgYnN0cikKLXsKLSAgICB3c3RyaW5nIHdz
dHIoYnN0cik7Ci0KLSAgICByZXR1cm4gd3N0cmluZzJzdHJpbmcod3N0cik7Ci19Ci0KLUlXYmVt
Q2xhc3NPYmplY3QgKmdldENsYXNzKFdNSUFjY2Vzc29yICoqd21pLCBCU1RSIHBhdGgpIHsKLSAg
ICBpZiAoKndtaSA9PSBOVUxMKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIGlmICgoKndt
aSktPm1wWFNTdmMgPT0gTlVMTCkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBJV2JlbUNs
YXNzT2JqZWN0ICpyZXR1cm5lZE9iamVjdDsKLSAgICBIUkVTVUxUIGhyZXMgPSAoKndtaSktPm1w
WFNTdmMtPkdldE9iamVjdChwYXRoLFdCRU1fRkxBR19SRVRVUk5fV0JFTV9DT01QTEVURSwKLSAg
ICAgICAgICAgIE5VTEwsICZyZXR1cm5lZE9iamVjdCwgTlVMTCk7Ci0gICAgaWYgKEZBSUxFRCho
cmVzKSkgewotICAgICAgICByZXR1cm5lZE9iamVjdCA9TlVMTDsKLSAgICB9Ci0gICAgcmV0dXJu
IHJldHVybmVkT2JqZWN0OwotfQotCi1JV2JlbUNsYXNzT2JqZWN0ICpnZXRPYmplY3QoV01JQWNj
ZXNzb3IgKip3bWksIEJTVFIgcGF0aCkgewotICAgIElFbnVtV2JlbUNsYXNzT2JqZWN0ICpyZXR1
cm5lZEVudW07Ci0gICAgSVdiZW1DbGFzc09iamVjdCAqcmV0dXJuZWRPYmplY3Q7Ci0gICAgaWYg
KCp3bWkgPT0gTlVMTCkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgQVNTRVJUKCgqd21pKS0+
bXBYU1N2YyAhPSBOVUxMKTsKLSAgICBIUkVTVUxUIGhyZXMgPSAgKCp3bWkpLT5tcFhTU3ZjLT5D
cmVhdGVJbnN0YW5jZUVudW0ocGF0aCwgV0JFTV9GTEFHX0ZPUldBUkRfT05MWSwgCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcmV0dXJuZWRFbnVtKTsKLSAgICBpZiAo
RkFJTEVEKGhyZXMpKSB7Ci0gICAgICAgIE91dHB1dERlYnVnU3RyaW5nKCJHZXRFbnVtIGZhaWxl
ZFxuIik7Ci0gICAgICAgIHJldHVybmVkT2JqZWN0ID1OVUxMOwotICAgICAgICByZXR1cm4gcmV0
dXJuZWRPYmplY3Q7Ci0gICAgfQotICAgIFVMT05HIG9iamVjdHM7Ci0KLSAgICBocmVzID0gcmV0
dXJuZWRFbnVtLT5OZXh0KFdCRU1fSU5GSU5JVEUsIDEsICZyZXR1cm5lZE9iamVjdCwgJm9iamVj
dHMpOwotCi0gICAgICAgICAgICAgICAgCi0gICAgaWYgKEZBSUxFRChocmVzKSB8fCBvYmplY3Rz
IDwgMSkgewotICAgICAgICBPdXRwdXREZWJ1Z1N0cmluZygiR2V0RnJvbUVudW0gZmFpbGVkXG4i
KTsKLSAgICAgICAgcmV0dXJuZWRPYmplY3QgPU5VTEw7Ci0gICAgfQotCi0gICAgcmV0dXJuIHJl
dHVybmVkT2JqZWN0OwotfQotCi1IUkVTVUxUIG1ldGhvZEV4ZWMoV01JQWNjZXNzb3IqKiB3bWks
ICBJV2JlbUNsYXNzT2JqZWN0KiBpbnN0YW5jZSwgY29uc3Qgd2NoYXJfdCAqbWV0aG9kbmFtZSwg
SVdiZW1DbGFzc09iamVjdCAqaW5NZXRob2RJbnN0LCBJV2JlbUNsYXNzT2JqZWN0ICoqb3V0TWV0
aG9kSW5zdCkKLXsKLSAgICBIUkVTVUxUIGhyZXM9RV9GQUlMIDsKLQotICAgIElXYmVtQ2xhc3NP
YmplY3QgKm91dHN0b3JlPU5VTEw7Ci0gICAgQlNUUiBicGF0aG5hbWUgPSBTeXNBbGxvY1N0cmlu
ZyhMIl9fUEFUSCIpOwotICAgIGlmIChicGF0aG5hbWUgPT0gTlVMTCl7Ci0gICAgICAgIGdvdG8g
YWxsb2NwYXRobmFtZTsKLSAgICB9Ci0KLQotICAgIFZBUklBTlQgaW5zdGFuY2VwYXRoOwotICAg
IFZhcmlhbnRJbml0KCZpbnN0YW5jZXBhdGgpOwotICAgIGhyZXMgPSBpbnN0YW5jZS0+R2V0KGJw
YXRobmFtZSwgMCwgJmluc3RhbmNlcGF0aCwgTlVMTCwgTlVMTCk7Ci0gICAgaWYgKEZBSUxFRCho
cmVzKSkgewotICAgICAgICBnb3RvIGdldGNsYXNzbmFtZTsKLSAgICB9Ci0KLQotICAgIEJTVFIg
Ym1ldGhvZG5hbWUgPSBTeXNBbGxvY1N0cmluZyhtZXRob2RuYW1lKTsKLSAgICBpZiAoYm1ldGhv
ZG5hbWUgPT0gTlVMTCl7Ci0gICAgICAgIGdvdG8gYWxsb2NtZXRob2RuYW1lOwotICAgIH0KLQot
ICAgIGhyZXMgPSAoKndtaSktPm1wWFNTdmMtPkV4ZWNNZXRob2QoaW5zdGFuY2VwYXRoLmJzdHJW
YWwsIGJtZXRob2RuYW1lLCAwLCBOVUxMLGluTWV0aG9kSW5zdCwgJm91dHN0b3JlLCBOVUxMKTsK
LSAgICBpZiAob3V0TWV0aG9kSW5zdCAhPSBOVUxMKSB7Ci0gICAgICAgICpvdXRNZXRob2RJbnN0
ID0gTlVMTDsKLSAgICAgICAgaWYgKCFGQUlMRUQoaHJlcykpewotICAgICAgICAgICAgKm91dE1l
dGhvZEluc3QgPSBvdXRzdG9yZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIFN5c0ZyZWVTdHJp
bmcoYm1ldGhvZG5hbWUpOwotYWxsb2NtZXRob2RuYW1lOgotCi1nZXRjbGFzc25hbWU6Ci0gICAg
VmFyaWFudENsZWFyKCZpbnN0YW5jZXBhdGgpOwotICAgIFN5c0ZyZWVTdHJpbmcoYnBhdGhuYW1l
KTsKLWFsbG9jcGF0aG5hbWU6Ci0gICAgcmV0dXJuIGhyZXM7Ci19Ci1zdGF0aWMgSUVudW1XYmVt
Q2xhc3NPYmplY3QqIHJ1blhTUXVlcnkoV01JQWNjZXNzb3IgKip3bWksIEJTVFIgcXVlcnkpCi17
Ci0gICAgaWYgKHdtaSA9PSBOVUxMKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIEFTU0VS
VCgoKndtaSktPm1wWFNTdmMgIT0gTlVMTCk7Ci0KLSAgICAvLyBVc2UgdGhlIElXYmVtU2Vydmlj
ZXMgcG9pbnRlciB0byBtYWtlIHJlcXVlc3RzIG9mIFdNSS4gCi0gICAgLy8gTWFrZSByZXF1ZXN0
cyBoZXJlOgotICAgIElFbnVtV2JlbUNsYXNzT2JqZWN0KiBwRW51bWVyYXRvciA9IE5VTEw7Ci0g
ICAgSFJFU1VMVCBocmVzID0gKCp3bWkpLT5tcFhTU3ZjLT5FeGVjUXVlcnkoTCJXUUwiLCAKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdCRU1fRkxBR19GT1JXQVJEX09OTFkgfCBX
QkVNX0ZMQUdfUkVUVVJOX0lNTUVESUFURUxZLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJnBFbnVtZXJhdG9yKTsKLSAgICBpZiAoRkFJTEVEKGhyZXMpKQotICAgIHsKLSAgICAg
ICAgREJHUFJJTlQoKCJFeGVjUXVlcnkgZmFpbGVkXG4iKSk7Ci0gICAgICAgIHBFbnVtZXJhdG9y
ID0gTlVMTDsKLSAgICB9Ci0gICAgcmV0dXJuIHBFbnVtZXJhdG9yOwotfQotc3RhdGljIElFbnVt
V2JlbUNsYXNzT2JqZWN0KiBydW5RdWVyeShXTUlBY2Nlc3NvciAqd21pLCBCU1RSIHF1ZXJ5KQot
ewotICAgIGlmICh3bWkgPT0gTlVMTCkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBBU1NF
UlQod21pLT5tcFN2YyAhPSBOVUxMKTsKLQotICAgIC8vIFVzZSB0aGUgSVdiZW1TZXJ2aWNlcyBw
b2ludGVyIHRvIG1ha2UgcmVxdWVzdHMgb2YgV01JLiAKLSAgICAvLyBNYWtlIHJlcXVlc3RzIGhl
cmU6Ci0gICAgSUVudW1XYmVtQ2xhc3NPYmplY3QqIHBFbnVtZXJhdG9yID0gTlVMTDsKLSAgICBI
UkVTVUxUIGhyZXMgPSB3bWktPm1wU3ZjLT5FeGVjUXVlcnkoTCJXUUwiLCAKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFdCRU1fRkxBR19GT1JXQVJEX09OTFkgfCBXQkVNX0ZMQUdf
UkVUVVJOX0lNTUVESUFURUxZLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBF
bnVtZXJhdG9yKTsKLSAgICBpZiAoRkFJTEVEKGhyZXMpKQotICAgIHsKLSAgICAgICAgREJHUFJJ
TlQoKCJFeGVjUXVlcnkgZmFpbGVkXG4iKSk7Ci0gICAgICAgIHBFbnVtZXJhdG9yID0gTlVMTDsK
LSAgICB9Ci0gICAgcmV0dXJuIHBFbnVtZXJhdG9yOwotfQotCi1MT05HIHdtaWNvdW50ID0gMDsK
LXN0YXRpYyBCT09MRUFOIGNvbV9pbml0aWFsaXplZCA9IGZhbHNlOwotc3RhdGljIElXYmVtTG9j
YXRvciAqbG9jYXRvciA9IDA7Ci1CT09MIEluaXRDb20odm9pZCkgewotICAgIEhSRVNVTFQgaHJl
czsKLSAgICBYc0xvZygiSW5pdCBDT00iKTsKLSAgICBocmVzID0gQ29Jbml0aWFsaXplRXgoMCwg
Q09JTklUX01VTFRJVEhSRUFERUQpOwotICAgIGlmIChGQUlMRUQoaHJlcykpIHsKLSAgICAgICAg
Z290byBlcnJfb3V0OwotICAgIH0KLSAgICBjb21faW5pdGlhbGl6ZWQgPSBUUlVFOwotICAgIC8v
d21pLT5vd25pbmdfdGhyZWFkID0gR2V0Q3VycmVudFRocmVhZCgpOwotICAgIC8vWHNMb2coIldt
aSBjb25uZWN0IHRocmVhZCAlcCIsIEdldEN1cnJlbnRUaHJlYWQoKSk7Ci0gICAgLy8gSW5pdGlh
bGl6ZSBDT00gc2VjdXJpdHkuICBNb3N0IG9mIHRoaXMgaXMgaXJyZWxldmFudCB0byB1cy4KLSAg
ICBYc0xvZygiSW5pdCBzZWN1cml0eSIpOwotICAgIGhyZXMgPSBDb0luaXRpYWxpemVTZWN1cml0
eSgKLSAgICAgICAgTlVMTCwgICAgIC8qIFNlY3VyaXR5IGRlc2NyaXB0b3IuIE9ubHkgcmVsZXZh
bnQgdG8gc2VydmVycyAqLwotICAgICAgICAtMSwgICAgICAgLyogTnIuIG9mIGF1dGggc2Vydmlj
ZXMuIE9ubHkgcmVsZXZhbnQgdG8gc2VydmVycyAqLwotICAgICAgICBOVUxMLCAgICAgLyogTGlz
dCBvZiBhdXRoIHNlcnZpY2VzLiBPbmx5IHJlbGV2YW50IHRvIHNlcnZlcnMgKi8KLSAgICAgICAg
TlVMTCwgICAgIC8qIFJlc2VydmVkICovCi0gICAgICAgIFJQQ19DX0FVVEhOX0xFVkVMX0RFRkFV
TFQsIC8qIERlZmF1bHQgYXV0aGVudGljYXRpb24uICBUaGUKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkZXRhaWxzIGRvbid0IHJlYWxseSBtYXR0ZXIgd2hlbgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlvdSdyZSBsb2NhbGhvc3QuICov
Ci0gICAgICAgIFJQQ19DX0lNUF9MRVZFTF9JTVBFUlNPTkFURSwgLyogV01JIG5lZWRzIHRvIGJl
IGFibGUgdG8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbXBlcnNv
bmF0ZSB1cy4gKi8KLSAgICAgICAgTlVMTCwgICAgICAgICAgICAgLyogQXV0aGVudGljYXRpb24g
aW5mbyAqLwotICAgICAgICBFT0FDX05PTkUsICAgICAgICAvKiBBZGRpdGlvbmFsIGNhcGFiaWxp
dGllcyAqLwotICAgICAgICBOVUxMICAgICAgICAgICAgICAvKiBSZXNlcnZlZCAqLwotICAgICAg
ICApOwotICAgIGlmIChGQUlMRUQoaHJlcykpIHsKLSAgICAgICAgZ290byBlcnJfb3V0OwotICAg
IH0KLSAgICAgICAgICAgIE91dHB1dERlYnVnU3RyaW5nKCJDcmVhdGVJbnN0YW5jZVxuIik7Ci0g
ICAgICAgIGhyZXMgPSBDb0NyZWF0ZUluc3RhbmNlKAotICAgICAgICAgICAgQ0xTSURfV2JlbUxv
Y2F0b3IsCi0gICAgICAgICAgICAwLCAKLSAgICAgICAgICAgIENMU0NUWF9JTlBST0NfU0VSVkVS
LCAKLSAgICAgICAgICAgIElJRF9JV2JlbUxvY2F0b3IsCi0gICAgICAgICAgICAoTFBWT0lEICop
ICZsb2NhdG9yKTsKLSAgICAgICAgT3V0cHV0RGVidWdTdHJpbmcoIkNoZWNrIGhyZXNcbiIpOwot
ICAgICAgICBpZiAoRkFJTEVEKGhyZXMpKSB7Ci0gICAgICAgICAgICBnb3RvIGVycl9vdXQ7Ci0g
ICAgICAgIH0KLSAgICAgICAgaWYgKGxvY2F0b3IgPT0gTlVMTCkgewotICAgICAgICAgICAgT3V0
cHV0RGVidWdTdHJpbmcoIk51bGwgbG9jYXRvciIpOwotICAgICAgICAgICAgZ290byBlcnJfb3V0
OwotICAgICAgICB9Ci0gICAgcmV0dXJuIHRydWU7Ci1lcnJfb3V0OgotICAgIHJldHVybiBmYWxz
ZTsKLX0KLQotQk9PTCBDb25uZWN0VG9XTUkodm9pZCkKLXsKLSAgICAgICAgSW5pdENvbSgpOwot
ICAgICAgICBIUkVTVUxUIGhyZXM7Ci0gICAgICAgIE91dHB1dERlYnVnU3RyaW5nKCJDb25uZWN0
IHRvIFdNSSIpOwotICAgICAgICB3bWljb3VudCsrOwotCi0gICAgICAgIHdtaSA9IChzdHJ1Y3Qg
V01JQWNjZXNzb3IgKilYc0FsbG9jKHNpemVvZigqd21pKSk7Ci0gICAgICAgIGlmICh3bWkgPT0g
TlVMTCkgewotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgICAgIG1l
bXNldCh3bWksIDAsIHNpemVvZigqd21pKSk7Ci0KLQotICAgICAgICBPdXRwdXREZWJ1Z1N0cmlu
ZygiQ29ubmVjdCBTZXJ2ZXJcbiIpOwotICAgICAgICB0cnkgewotICAgICAgICAgICAgaHJlcyA9
IGxvY2F0b3ItPkNvbm5lY3RTZXJ2ZXIoCi0gICAgICAgICAgICAgICAgTCJyb290XFxDSU1WMiIs
ICAgICAgICAgIC8vIFdNSSBuYW1lc3BhY2UKLSAgICAgICAgICAgICAgICBOVUxMLCAgICAgICAg
ICAgICAgICAgICAgLy8gVXNlciBuYW1lCi0gICAgICAgICAgICAgICAgTlVMTCwgICAgICAgICAg
ICAgICAgICAgIC8vIFVzZXIgcGFzc3dvcmQKLSAgICAgICAgICAgICAgICBOVUxMLCAgICAgICAg
ICAgICAgICAgICAgLy8gTG9jYWxlCi0gICAgICAgICAgICAgICAgMCwgICAgICAgICAgICAgICAg
ICAgICAgIC8vIFNlY3VyaXR5IGZsYWdzCi0gICAgICAgICAgICAgICAgTlVMTCwgICAgICAgICAg
ICAgICAgICAgIC8vIEF1dGhvcml0eQotICAgICAgICAgICAgICAgIE5VTEwsICAgICAgICAgICAg
ICAgICAgICAvLyBDb250ZXh0IG9iamVjdAotICAgICAgICAgICAgICAgICYod21pLT5tcFN2Yykg
ICAgICAgICAgICAgIC8vIElXYmVtU2VydmljZXMgcHJveHkKLSAgICAgICAgICAgICAgICApOwot
ICAgICAgICB9Ci0gICAgICAgIGNhdGNoKC4uLikgewotICAgICAgICAgICAgT3V0cHV0RGVidWdT
dHJpbmcoIkV4Y2VwdGlvbiBjb25uZWN0aW5nIHRvIHNlcnZlclxuIik7Ci0gICAgICAgICAgICBn
b3RvIGVycl9vdXQ7Ci0gICAgICAgIH0KLQotICAgICAgICBPdXRwdXREZWJ1Z1N0cmluZygiQ2hl
Y2sgcmVzdWx0XG4iKTsKLSAgICAgICAgaWYgKEZBSUxFRChocmVzKSkgewotICAgICAgICAgICAg
Z290byBlcnJfb3V0OwotICAgICAgICB9Ci0gICAgICAgIC8qIFdNSSBuZWVkcyB0byBpbXBlcnNv
bmF0ZSB1cywgYmVjYXVzZSBpdCBub3JtYWxseSBydW5zIGFzIGFuCi0gICAgICAgICAgIHVucHJp
dmlsZWdlZCB1c2VyIGFuZCBuZWVkcyBvdXIgYXV0aG9yaXR5IGluIG9yZGVyIHRvIGFjY2Vzcwot
ICAgICAgICAgICBkZXZpY2UgZmlsZXMgYW5kIHNvIGZvcnRoLiAgVHVybiBpbXBlcnNvbmF0aW9u
IG9uLiAqLwotICAgICAgICBPdXRwdXREZWJ1Z1N0cmluZygiUHJveHkgYmxhbmtldFxuIik7Ci0g
ICAgICAgIGhyZXMgPSBDb1NldFByb3h5QmxhbmtldCgKLSAgICAgICAgICAgIHdtaS0+bXBTdmMs
ICAgICAgICAgICAgICAgICAgLy8gdGhlIHByb3h5IHRvIHNldAotICAgICAgICAgICAgUlBDX0Nf
QVVUSE5fV0lOTlQsICAgICAgICAgICAvKiBMQU4gbWFuYWdlciBhdXRoZW50aWNhdGlvbiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0aG91Z2ggaXQgZG9l
c24ndCByZWFsbHkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bWF0dGVyIG9uIGxvY2FsaG9zdC4gKi8KLSAgICAgICAgICAgIFJQQ19DX0FVVEhaX05PTkUsICAg
ICAgICAgICAgLy8gTEFOTUFOIGNhbid0IGRvIG11Y2ggYXV0aG9yaXphdGlvbi4KLSAgICAgICAg
ICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2VydmVyIHByaW5jaXBhbCBuYW1l
Ci0gICAgICAgICAgICBSUENfQ19BVVRITl9MRVZFTF9DQUxMLCAgICAgIC8vIERvIGF1dGhlbnRp
Y2F0aW9uIG9uIGV2ZXJ5IGNhbGwKLSAgICAgICAgICAgIFJQQ19DX0lNUF9MRVZFTF9JTVBFUlNP
TkFURSwgLy8gQWxsb3cgZnVsbCBpbXBlcnNvbmF0aW9uLgotICAgICAgICAgICAgTlVMTCwgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBVc2UgY3VycmVudCBjbGllbnQgaWRlbnRpdHkKLSAgICAg
ICAgICAgIEVPQUNfTk9ORSAgICAgICAgICAgICAgICAgICAgLy8gTm8gZXh0ZW5kZWQgcHJveHkg
Y2FwYWJpbGl0aWVzCi0gICAgICAgICk7Ci0gICAgICAgIGlmIChGQUlMRUQoaHJlcykpIHsKLSAg
ICAgICAgICAgIGdvdG8gZXJyX291dDsKLSAgICAgICAgfQotICAgICAgICBPdXRwdXREZWJ1Z1N0
cmluZygiV01JIFNlcnZlclxuIik7Ci0gICAgICAgIGhyZXMgPSBsb2NhdG9yLT5Db25uZWN0U2Vy
dmVyKAotICAgICAgICAgICAgTCJyb290XFxXTUkiLCAgICAgICAgICAvLyBXTUkgbmFtZXNwYWNl
Ci0gICAgICAgICAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgLy8gVXNlciBuYW1lCi0gICAg
ICAgICAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgLy8gVXNlciBwYXNzd29yZAotICAgICAg
ICAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgIC8vIExvY2FsZQotICAgICAgICAgICAgMCwg
ICAgICAgICAgICAgICAgICAgICAgIC8vIFNlY3VyaXR5IGZsYWdzCi0gICAgICAgICAgICBOVUxM
LCAgICAgICAgICAgICAgICAgICAgLy8gQXV0aG9yaXR5Ci0gICAgICAgICAgICBOVUxMLCAgICAg
ICAgICAgICAgICAgICAgLy8gQ29udGV4dCBvYmplY3QKLSAgICAgICAgICAgICZ3bWktPm1wWFNT
dmMgICAgICAgICAgICAgIC8vIElXYmVtU2VydmljZXMgcHJveHkKLSAgICAgICAgICAgICk7Ci0K
LSAgICAgICAgaWYgKEZBSUxFRChocmVzKSkgewotICAgICAgICAgICAgZ290byBlcnJfb3V0Owot
ICAgICAgICB9Ci0gICAgICAgIE91dHB1dERlYnVnU3RyaW5nKCJJbXBlcnNvbmF0aW9uXG4iKTsK
LSAgICAgICAgLyogV01JIG5lZWRzIHRvIGltcGVyc29uYXRlIHVzLCBiZWNhdXNlIGl0IG5vcm1h
bGx5IHJ1bnMgYXMgYW4KLSAgICAgICAgICAgdW5wcml2aWxlZ2VkIHVzZXIgYW5kIG5lZWRzIG91
ciBhdXRob3JpdHkgaW4gb3JkZXIgdG8gYWNjZXNzCi0gICAgICAgICAgIGRldmljZSBmaWxlcyBh
bmQgc28gZm9ydGguICBUdXJuIGltcGVyc29uYXRpb24gb24uICovCi0gICAgICAgIGhyZXMgPSBD
b1NldFByb3h5QmxhbmtldCgKLSAgICAgICAgICAgIHdtaS0+bXBYU1N2YywgICAgICAgICAgICAg
ICAgICAvLyB0aGUgcHJveHkgdG8gc2V0Ci0gICAgICAgICAgICBSUENfQ19BVVRITl9XSU5OVCwg
ICAgICAgICAgIC8qIExBTiBtYW5hZ2VyIGF1dGhlbnRpY2F0aW9uLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHRob3VnaCBpdCBkb2Vzbid0IHJlYWxseQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXR0ZXIgb24gbG9j
YWxob3N0LiAqLwotICAgICAgICAgICAgUlBDX0NfQVVUSFpfTk9ORSwgICAgICAgICAgICAvLyBM
QU5NQU4gY2FuJ3QgZG8gbXVjaCBhdXRob3JpemF0aW9uLgotICAgICAgICAgICAgTlVMTCwgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBTZXJ2ZXIgcHJpbmNpcGFsIG5hbWUKLSAgICAgICAgICAg
IFJQQ19DX0FVVEhOX0xFVkVMX0NBTEwsICAgICAgLy8gRG8gYXV0aGVudGljYXRpb24gb24gZXZl
cnkgY2FsbAotICAgICAgICAgICAgUlBDX0NfSU1QX0xFVkVMX0lNUEVSU09OQVRFLCAvLyBBbGxv
dyBmdWxsIGltcGVyc29uYXRpb24uCi0gICAgICAgICAgICBOVUxMLCAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIFVzZSBjdXJyZW50IGNsaWVudCBpZGVudGl0eQotICAgICAgICAgICAgRU9BQ19O
T05FICAgICAgICAgICAgICAgICAgICAvLyBObyBleHRlbmRlZCBwcm94eSBjYXBhYmlsaXRpZXMK
LSAgICAgICAgKTsKLSAgICAgICAgaWYgKEZBSUxFRChocmVzKSkgewotICAgICAgICAgICAgZ290
byBlcnJfb3V0OwotICAgICAgICB9Ci0KLQotICAgIE91dHB1dERlYnVnU3RyaW5nKCJXbWkgY29u
bmVjdGVkXG4iKTsKLSAgICAvKiBBbGwgZG9uZS4gKi8KLSAgICByZXR1cm4gdHJ1ZTsKLQotZXJy
X291dDoKLSAgICBPdXRwdXREZWJ1Z1N0cmluZygiV01JIGNvbm5lY3Rpb24gZmFpbGVkXG4iKTsK
LSAgICBSZWxlYXNlV01JQWNjZXNzb3IoJndtaSk7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi0K
LXZvaWQgUmVsZWFzZUNvbSh2b2lkKSB7Ci0KLSAgICBpZiAoY29tX2luaXRpYWxpemVkKSB7Ci0g
ICAgICAgIE91dHB1dERlYnVnU3RyaW5nKCJSZWxlYXNlIGxvY2F0b3JcbiIpOwotICAgICAgICBs
b2NhdG9yLT5SZWxlYXNlKCk7Ci0gICAgICAgIC8vWHNMb2coIldtaSBkaXNjb25uZWN0IHRocmVh
ZCAlcCIsIEdldEN1cnJlbnRUaHJlYWQoKSk7Ci0gICAgICAgIC8vQVNTRVJUKCgqd21pKS0+b3du
aW5nX3RocmVhZCA9PSBHZXRDdXJyZW50VGhyZWFkKCkpOwotICAgICAgICBjb21faW5pdGlhbGl6
ZWQgPSAwOwotICAgICAgICBPdXRwdXREZWJ1Z1N0cmluZygiVW5pbml0aWFsaXplIGNvbVxuIik7
Ci0gICAgICAgIENvVW5pbml0aWFsaXplKCk7Ci0gICAgICAgIAotICAgIH0KLX0KLQotLyogQ2Fy
ZWZ1bDogV01JIGFjY2Vzc29ycyBtdXN0IGJlIHJlbGVhc2VkIG9uIHRoZSBzYW1lIHRocmVhZCB0
aGF0Ci0gICBhbGxvY2F0ZWQgdGhlbS4gKi8KLXZvaWQgUmVsZWFzZVdNSUFjY2Vzc29yKHN0cnVj
dCBXTUlBY2Nlc3NvciAqKndtaSkKLXsKLSAgICBPdXRwdXREZWJ1Z1N0cmluZygiU2hvdWxkIEkg
cmVsZWFzZSB3bWk/XG4iKTsKLSAgICBpZiAoKndtaSA9PSBOVUxMKQotICAgICAgICByZXR1cm47
Ci0gICAgT3V0cHV0RGVidWdTdHJpbmcoIkdldCByaWQgb2YgV01JIHNlcnZlcnNcbiIpOwotICAg
IGlmICgoKndtaSktPm1wWFNTdmMgIT0gTlVMTCkKLSAgICAgICAgKCp3bWkpLT5tcFhTU3ZjLT5S
ZWxlYXNlKCk7Ci0gICAgaWYgKCgqd21pKS0+bXBTdmMgIT0gTlVMTCkKLSAgICAgICAgKCp3bWkp
LT5tcFN2Yy0+UmVsZWFzZSgpOwotICAgIE91dHB1dERlYnVnU3RyaW5nKCJDbGVhciBXbUlcbiIp
OwotICAgIC8qIFBvaXNvbiB3bWkgdG8gbWFrZSB1c2UtYWZ0ZXItZnJlZSgpcyBhIGJpdCBtb3Jl
IG9idmlvdXMuICovCi0gICAgbWVtc2V0KCgqd21pKSwgMHhhYiwgc2l6ZW9mKCoqd21pKSk7Ci0g
ICAgWHNGcmVlKCp3bWkpOwotICAgICp3bWkgPSBOVUxMOwotICAgIFJlbGVhc2VDb20oKTsKLSAg
ICBPdXRwdXREZWJ1Z1N0cmluZygiUmVsZWFzZWQgV01JXG4iKTsKLX0KLQotLyogVGhlIGZhY3Qg
dGhhdCBzb21ldGhpbmcgaXMgZG9jdW1lbnRlZCBhcyBiZWluZyBhIHVpbnQ2NF90IGZpZWxkCi0g
ICBkb2Vzbid0IGltcGx5IHRoYXQgaXQgd2lsbCBiZSByZXR1cm5lZCBhcyBhIFZUX1VJOCBmaWVs
ZCBpbiBhCi0gICB2YXJpYW50IHN0cnVjdHVyZS4gIFdvcmsgYXJvdW5kIHRoaXMgd2l0aCBhIGhh
bmR5IGNvbnZlcnNpb24KLSAgIGZ1bmN0aW9uLiAqLwotc3RhdGljIHVpbnQ2NF90Ci1HZXRWYXJp
YW50VWludDY0KFZBUklBTlQgKnZ0RGF0YSkKLXsKLSAgICBzd2l0Y2ggKHZ0RGF0YS0+dnQpIHsK
LSAgICBjYXNlIFZUX0kyOgotICAgICAgICByZXR1cm4gdnREYXRhLT5pVmFsOwotICAgIGNhc2Ug
VlRfSTQ6Ci0gICAgICAgIHJldHVybiB2dERhdGEtPmxWYWw7Ci0gICAgY2FzZSBWVF9JODoKLSAg
ICAgICAgcmV0dXJuIHZ0RGF0YS0+bGxWYWw7Ci0gICAgY2FzZSBWVF9VSTI6Ci0gICAgICAgIHJl
dHVybiB2dERhdGEtPnVpVmFsOwotICAgIGNhc2UgVlRfVUk0OgotICAgICAgICByZXR1cm4gdnRE
YXRhLT51bFZhbDsKLSAgICBjYXNlIFZUX1VJODoKLSAgICAgICAgcmV0dXJuIHZ0RGF0YS0+dWxs
VmFsOwotICAgIGNhc2UgVlRfQlNUUjoKLSAgICAgICAgLyogWWVzLCBJIHJlYWxseSBkbyBtZWFu
IEJTVFI6IFhQIHJldHVybnMgNjQgYml0IHZhbHVlcyBhcwotICAgICAgICAgICBzdHJpbmdzLCBh
bmQgd2UgdGhlbiBoYXZlIHRvIGRvIGF0b2lsbCBvbiBpdC4gKi8KLSAgICAgICAgcmV0dXJuIF93
dG9pNjQodnREYXRhLT5ic3RyVmFsKTsKLSAgICBkZWZhdWx0OgotICAgICAgICBEQkdQUklOVCgo
IkJhZCB1aW50NjRfdCB2YXJpYW50ICVkLlxuIix2dERhdGEtPnZ0KSk7Ci0gICAgICAgIHJldHVy
biAtMTsKLSAgICB9Ci19Ci0KLXN0YXRpYyBIUkVTVUxUCi1RdWVyeVZhcmlhbnQoV01JQWNjZXNz
b3IgKndtaSwgUFdDSEFSIGZpZWxkLCBQV0NIQVIgdGFibGUsIFZBUklBTlQgKnZ0KQotewotICAg
IElFbnVtV2JlbUNsYXNzT2JqZWN0ICpwRW51bTsKLSAgICBCU1RSIHF1ZXJ5OwotICAgIHNpemVf
dCBxdWVyeV9sZW47Ci0gICAgSVdiZW1DbGFzc09iamVjdCAqcGNsc09iajsKLSAgICBIUkVTVUxU
IGhyOwotICAgIFVMT05HIHVSZXR1cm47Ci0KLSAgICBxdWVyeV9sZW4gPSBzdHJsZW4oIlNFTEVD
VCAgRlJPTSAiKSArIHdjc2xlbihmaWVsZCkgKyB3Y3NsZW4odGFibGUpICsgMTsKLSAgICBxdWVy
eSA9IFN5c0FsbG9jU3RyaW5nTGVuKE5VTEwsIChVSU5UKXF1ZXJ5X2xlbik7Ci0gICAgaWYgKHF1
ZXJ5ID09IE5VTEwpIHsKLSAgICAgICAgaHIgPSBFX09VVE9GTUVNT1JZOwotICAgICAgICBnb3Rv
IGVycjsKLSAgICB9Ci0gICAgc3dwcmludGZfcyhxdWVyeSwgcXVlcnlfbGVuLCBMIlNFTEVDVCAl
cyBGUk9NICVzIiwgZmllbGQsIHRhYmxlKTsKLSAgICBwRW51bSA9IHJ1blF1ZXJ5KHdtaSwgcXVl
cnkpOwotICAgIFN5c0ZyZWVTdHJpbmcocXVlcnkpOwotCi0gICAgaWYgKHBFbnVtID09IE5VTEwp
IHsKLSAgICAgICAgaHIgPSBFX09VVE9GTUVNT1JZOwotICAgICAgICBnb3RvIGVycjsKLSAgICB9
Ci0KLSAgICBociA9IHBFbnVtLT5OZXh0KFdCRU1fSU5GSU5JVEUsIDEsICZwY2xzT2JqLCAmdVJl
dHVybik7Ci0gICAgcEVudW0tPlJlbGVhc2UoKTsKLSAgICBpZiAoRkFJTEVEKGhyKSkKLSAgICAg
ICAgZ290byBlcnI7Ci0gICAgaWYgKHVSZXR1cm4gPT0gMCkgewotICAgICAgICBociA9IEVfRkFJ
TDsKLSAgICAgICAgZ290byBlcnI7Ci0gICAgfQotCi0gICAgaHIgPSBwY2xzT2JqLT5HZXQoZmll
bGQsIDAsIHZ0LCBOVUxMLCBOVUxMKTsKLSAgICBwY2xzT2JqLT5SZWxlYXNlKCk7Ci0KLSAgICBy
ZXR1cm4gaHI7Ci0KLWVycjoKLSAgICByZXR1cm4gaHI7Ci19Ci0KLXN0YXRpYyB1aW50NjRfdAot
UXVlcnlVaW50NjQoV01JQWNjZXNzb3IgKndtaSwgUFdDSEFSIGZpZWxkLCBQV0NIQVIgdGFibGUp
Ci17Ci0gICAgSFJFU1VMVCBocjsKLSAgICB1aW50NjRfdCByZXM7Ci0gICAgVkFSSUFOVCB2dDsK
LQotICAgIG1lbXNldCgmdnQsIDAsIHNpemVvZih2dCkpOwotCi0gICAgaHIgPSBRdWVyeVZhcmlh
bnQod21pLCBmaWVsZCwgdGFibGUsICZ2dCk7Ci0gICAgaWYgKEZBSUxFRChocikpCi0gICAgICAg
IHJldHVybiAwOwotCi0gICAgcmVzID0gR2V0VmFyaWFudFVpbnQ2NCgmdnQpOwotICAgIFZhcmlh
bnRDbGVhcigmdnQpOwotICAgIHJldHVybiByZXM7Ci19Ci0KLXN0YXRpYyBCU1RSCi1RdWVyeUJz
dHIoV01JQWNjZXNzb3IgKndtaSwgUFdDSEFSIGZpZWxkLCBQV0NIQVIgdGFibGUpCi17Ci0gICAg
SFJFU1VMVCBocjsKLSAgICBWQVJJQU5UIHZ0OwotCi0gICAgbWVtc2V0KCZ2dCwgMCwgc2l6ZW9m
KHZ0KSk7Ci0KLSAgICBociA9IFF1ZXJ5VmFyaWFudCh3bWksIGZpZWxkLCB0YWJsZSwgJnZ0KTsK
LSAgICBpZiAoRkFJTEVEKGhyKSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgaWYgKHZ0LnZ0
ICE9IFZUX0JTVFIpIHsKLSAgICAgICAgVmFyaWFudENsZWFyKCZ2dCk7Ci0gICAgICAgIHJldHVy
biBOVUxMOwotICAgIH0KLSAgICByZXR1cm4gdnQuYnN0clZhbDsKLX0KLQotCi0KLS8qIGhhc2gg
Y29tcGFyYXRvciBmb3Igc3RyaW5ncyB3aGljaCBzdHJpcHMgb2ZmIHRyYWlsaW5nIC5leGUKLSAq
IHN1ZmZpeCAqLwotY2xhc3Mgc3RyaW5nX2VxX2V4ZSB7Ci1wcml2YXRlOgotICAgIHN0YXRpYyBz
aXplX3QgbGVuX3dpdGhvdXRfc3VmZml4KGNvbnN0IGNoYXIgKngpCi0gICAgewotICAgICAgICBz
aXplX3QgbDsKLSAgICAgICAgbCA9IHN0cmxlbih4KTsKLSAgICAgICAgaWYgKGwgPiA0ICYmICFz
dHJjbXAoeCArIGwgLSA0LCAiLmV4ZSIpKQotICAgICAgICAgICAgbCAtPSA0OwotICAgICAgICBy
ZXR1cm4gbDsKLSAgICB9Ci0KLXB1YmxpYzoKLSAgICBlbnVtIHtidWNrZXRfc2l6ZSA9IDQsIG1p
bl9idWNrZXRzID0gOH07Ci0gICAgYm9vbCBvcGVyYXRvcigpKGNvbnN0IHN0cmluZyAmYSwgY29u
c3Qgc3RyaW5nICZiKSBjb25zdAotICAgIHsKLSAgICAgICAgY29uc3QgY2hhciAqYV9jLCAqYl9j
OwotICAgICAgICBzaXplX3QgYV9sLCBiX2w7Ci0gICAgICAgIGFfYyA9IGEuY19zdHIoKTsKLSAg
ICAgICAgYl9jID0gYi5jX3N0cigpOwotICAgICAgICBhX2wgPSBsZW5fd2l0aG91dF9zdWZmaXgo
YV9jKTsKLSAgICAgICAgYl9sID0gbGVuX3dpdGhvdXRfc3VmZml4KGJfYyk7Ci0KLSAgICAgICAg
aWYgKGFfbCAhPSBiX2wpCi0gICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgaWYgKG1lbWNt
cChhX2MsIGJfYywgYV9sKSkKLSAgICAgICAgICAgIHJldHVybiAxOwotICAgICAgICBlbHNlCi0g
ICAgICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBzaXplX3Qgb3BlcmF0b3IoKShjb25z
dCBzdHJpbmcgJmEpIGNvbnN0Ci0gICAgewotICAgICAgICBzaXplX3QgYWNjID0gMDsKLSAgICAg
ICAgY29uc3QgY2hhciAqY19zdHIgPSBhLmNfc3RyKCk7Ci0gICAgICAgIHNpemVfdCBsZW4gPSBs
ZW5fd2l0aG91dF9zdWZmaXgoY19zdHIpOwotICAgICAgICB1bnNpZ25lZCB4OwotICAgICAgICBm
b3IgKHggPSAwOyB4IDwgbGVuOyB4KyspCi0gICAgICAgICAgICBhY2MgPSAoYWNjICogMTcgKyBj
X3N0clt4XSkgJSAyNTc7Ci0gICAgICAgIHJldHVybiBhY2M7Ci0gICAgfQotfTsKLQotCi1JV2Jl
bUNsYXNzT2JqZWN0ICpnZXRCYXNlKFdNSUFjY2Vzc29yKiogd21pKSAKLXsKLSAgICBJV2JlbUNs
YXNzT2JqZWN0KiBiYXNlID0gZ2V0T2JqZWN0KHdtaSwgT0JKRUNUX05BTUVfVyhCYXNlKSk7Ci0g
ICAgaWYgKGJhc2UgPT0gTlVMTCkgewotICAgICAgICAqd21pID0gTlVMTDsKLSAgICAgICAgcmV0
dXJuIE5VTEw7Ci0gICAgfQotICAgIHJldHVybiBiYXNlOwotfQotCi1JV2JlbUNsYXNzT2JqZWN0
ICpnZXRCYXNlQ2xhc3MoV01JQWNjZXNzb3IqKiB3bWkpIAotewotICAgIElXYmVtQ2xhc3NPYmpl
Y3QqIGJhc2VjbGFzcyA9IGdldENsYXNzKHdtaSwgT0JKRUNUX05BTUVfVyhCYXNlKSk7Ci0gICAg
aWYgKGJhc2VjbGFzcyA9PSBOVUxMKSB7Ci0gICAgICAgICp3bWkgPSBOVUxMOwotICAgICAgICBy
ZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgcmV0dXJuIGJhc2VjbGFzczsKLX0KLQotVUxPTkdMT05H
IGdldDY0Qml0VW5zaWduZWQoVkFSSUFOVCAqdmFyKSB7Ci0gICAgVUxPTkdMT05HIHJlcyA9IDA7
Ci0gICAgc3dpdGNoICh2YXItPnZ0KSB7Ci0gICAgICAgIGNhc2UgVlRfQlNUUjogewotICAgICAg
ICAgICAgICAgIFZBUklBTlQgb3V0dmFyOwotICAgICAgICAgICAgICAgIFZhcmlhbnRJbml0KCZv
dXR2YXIpOwotICAgICAgICAgICAgICAgIFZhcmlhbnRDaGFuZ2VUeXBlKCZvdXR2YXIsIHZhciwg
MCwgVlRfVUk4KTsKLSAgICAgICAgICAgICAgICByZXMgPSBvdXR2YXIudWxsVmFsOwotICAgICAg
ICAgICAgICAgIFZhcmlhbnRDbGVhcigmb3V0dmFyKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIFZUX1VJODogewotICAgICAgICAgICAgICAgIHJlcyA9
IHZhci0+dWxsVmFsOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgfQot
ICAgIHJldHVybiByZXM7Ci19Ci0KLUZJTEVUSU1FIFdtaUdldFhlblRpbWUoV01JQWNjZXNzb3Ig
Kip3bWkpIHsKLSAgICAgRklMRVRJTUUgb3V0OwotICAgICAKLSAgICAgSVdiZW1DbGFzc09iamVj
dCAqYmFzZSA9IGdldEJhc2Uod21pKTsKLSAgICAgaWYgKGJhc2UgPT0gTlVMTCkgewotICAgICAg
ICAgREJHUFJJTlQoKCJVbmFibGUgdG8gZmluZCBiYXNlIFdNSSBzZXNzaW9uXG4iKSk7Ci0gICAg
ICAgICBnb3RvIGdldGJhc2VmYWlsZWQ7Ci0gICAgIH0KLQotICAgICBWQVJJQU5UIHRpbWV2YXI7
Ci0gICAgIEJTVFIgdGltZW5hbWUgPSBta0JzdHIoIlhlblRpbWUiLCA3KTsKLSAgICAgaWYgKHRp
bWVuYW1lID09IE5VTEwpCi0gICAgICAgICBnb3RvIGJ1aWxkdGltZW5hbWVmYWlsZWQ7Ci0gICAg
ICAgICAKLQotCi0gICAgIGlmIChGQUlMRUQoYmFzZS0+R2V0KHRpbWVuYW1lLCAwLCAmdGltZXZh
ciwgTlVMTCwgTlVMTCkpKQotICAgICAgICAgZ290byBnZXR0aW1lZmFpbGVkOwotCi0gICAgIFVM
T05HTE9ORyB0aW1lID1nZXQ2NEJpdFVuc2lnbmVkKCZ0aW1ldmFyKTs7Ci0KLSAgICAgb3V0LmR3
TG93RGF0ZVRpbWUgPSAoRFdPUkQpdGltZTsKLSAgICAgb3V0LmR3SGlnaERhdGVUaW1lID0gKERX
T1JEKSh0aW1lPj4zMik7Ci0gICAgIHJldHVybiBvdXQ7Ci0KLWdldHRpbWVmYWlsZWQ6Ci1idWls
ZHRpbWVuYW1lZmFpbGVkOgotZ2V0YmFzZWZhaWxlZDoKLSAgICAgb3V0LmR3TG93RGF0ZVRpbWUg
PSAwOwotICAgICBvdXQuZHdIaWdoRGF0ZVRpbWUgPSAwOwotICAgICByZXR1cm4gb3V0IDsKLX0K
LQotSVdiZW1DbGFzc09iamVjdCAqb3BlblNlc3Npb24oV01JQWNjZXNzb3IqKiB3bWksIGNvbnN0
IGNoYXIgKnNlc3Npb25uYW1lKQotewotICAgIEhSRVNVTFQgaHJlczsKLQotICAgIEJTVFIgcXVl
cnkgPSBmb3JtYXRCc3RyKCJTRUxFQ1QgKiBGUk9NICIgT0JKRUNUX05BTUVfQShTZXNzaW9uKSAi
IFdIRVJFIElkPVwiIiBPQkpFQ1RfUFJFRklYX1NUUiAiIFhlbiBXaW4zMiBTZXJ2aWNlIDogJXNc
IiIsIHNlc3Npb25uYW1lKTsKLSAgICBpZiAocXVlcnkgPT0gTlVMTCkKLSAgICAgICAgZ290byBm
b3JtYXRzZXNzaW9uYnN0cmZhaWxlZDsKLQotICAgIElFbnVtV2JlbUNsYXNzT2JqZWN0ICogc2Vz
c2lvbnMgPSBydW5YU1F1ZXJ5KHdtaSwgcXVlcnkpOwotICAgIFN5c0ZyZWVTdHJpbmcocXVlcnkp
OwotCi0gICAgaWYgKHNlc3Npb25zKSB7Ci0gICAgICAgIElXYmVtQ2xhc3NPYmplY3QgKnJldHVy
bmVkT2JqZWN0OwotICAgICAgICBVTE9ORyBjb3VudDsKLSAgICAgICAgaHJlcyA9IHNlc3Npb25z
LT5OZXh0KFdCRU1fSU5GSU5JVEUsIDEsICZyZXR1cm5lZE9iamVjdCwgJmNvdW50KTsKLSAgICAg
ICAgc2Vzc2lvbnMtPlJlbGVhc2UoKTsKLQotICAgICAgICBpZiAoY291bnQ+MCkgewotICAgICAg
ICAgICAgaWYgKHNlc3Npb25uYW1lICE9TlVMTCApIHsKLSAgICAgICAgICAgICAgICBpZiAoIVdt
aVNlc3Npb25FbmQod21pLCByZXR1cm5lZE9iamVjdCkpIHsKLSAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIE5VTEw7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJldHVybmVkT2JqZWN0OwotICAgICAg
ICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgSVdiZW1DbGFzc09iamVjdCAqYmFzZSA9
IGdldEJhc2Uod21pKTsKLSAgICBpZiAoYmFzZT09TlVMTCkgewotICAgICAgICBEQkdQUklOVCgo
IlVuYWJsZSB0byBmaW5kIGJhc2UgV01JIHNlc3Npb25cbiIpKTsKLSAgICAgICAgZ290byBnZXRi
YXNlZmFpbGVkOwotICAgIH0KLQotICAgIElXYmVtQ2xhc3NPYmplY3QgKmJhc2VjbGFzcyA9IGdl
dEJhc2VDbGFzcyh3bWkpOwotCi0gICAgaWYgKGJhc2VjbGFzcyA9PSBOVUxMKQotICAgICAgICBn
b3RvIGdldGJhc2VjbGFzc2ZhaWxlZDsKLQotICAgIElXYmVtQ2xhc3NPYmplY3QgKmluTWV0aG9k
OwotCi0gICAgSVdiZW1DbGFzc09iamVjdCAqaW5NZXRob2RJbnN0OwotICAgIElXYmVtQ2xhc3NP
YmplY3QgKm91dE1ldGhvZEluc3Q7Ci0gICAgaWYgKEZBSUxFRChiYXNlY2xhc3MtPkdldE1ldGhv
ZChMIkFkZFNlc3Npb24iLDAsJmluTWV0aG9kLCBOVUxMKSkpCi0gICAgICAgIGdvdG8gZ2V0bWV0
aG9kYWRkc2Vzc2lvbmZhaWxlZDsKLQotICAgIGlmIChGQUlMRUQoaW5NZXRob2QtPlNwYXduSW5z
dGFuY2UoMCwgJmluTWV0aG9kSW5zdCkpKQotICAgICAgICBnb3RvIGlubWV0aG9kc3Bhd25mYWls
ZWQ7Ci0KLSAgICBWQVJJQU5UIHZhcjsKLSAgICB2YXIudnQgPSBWVF9CU1RSOwotICAgIHZhci5i
c3RyVmFsPWZvcm1hdEJzdHIoVkVORE9SX05BTUVfU1RSICIgIiBQUk9EVUNUX05BTUVfU1RSICIg
V2luMzIgU2VydmljZSA6ICVzIiwgc2Vzc2lvbm5hbWUpOwotCi0gICAgaWYgKHZhci5ic3RyVmFs
ID09IE5VTEwpCi0gICAgICAgIGdvdG8gZm9ybWF0bmFtZWJzdHJmYWlsZWQ7Ci0KLSAgICBpZiAo
RkFJTEVEKGluTWV0aG9kSW5zdC0+UHV0KEwiSWQiLCAwLCAmdmFyLCAwKSkpCi0gICAgICAgIGdv
dG8gbWV0aG9kcHV0ZmFpbGVkOwotCi0gICAgaWYgKEZBSUxFRChtZXRob2RFeGVjKHdtaSwgYmFz
ZSwgTCJBZGRTZXNzaW9uIiwgaW5NZXRob2RJbnN0LCAmb3V0TWV0aG9kSW5zdCkpKQotICAgICAg
ICBnb3RvIG1ldGhvZGV4ZWNhZGRzZXNzaW9uZmFpbGVkOwotICAgIAotICAgIGlmIChGQUlMRUQo
b3V0TWV0aG9kSW5zdC0+R2V0KEwiU2Vzc2lvbklkIiwgMCwgJnZhciwgTlVMTCwgTlVMTCkpKQot
ICAgICAgICBnb3RvIG91dG1ldGhvZGdldGZhaWxlZDsKLQotICAgIHNpemVfdCBxdWVyeV9sZW47
Ci0gICAgcXVlcnlfbGVuID0gc3RybGVuKCJTRUxFQ1QgKiBGUk9NICIgT0JKRUNUX05BTUVfQShT
ZXNzaW9uKSAiIFdIRVJFIFNlc3Npb25JZD0iKSsxMDsKLSAgICBxdWVyeSA9IFN5c0FsbG9jU3Ry
aW5nTGVuKE5VTEwsIChVSU5UKXF1ZXJ5X2xlbik7Ci0KLSAgICBpZiAocXVlcnkgPT0gTlVMTCkK
LSAgICAgICAgZ290byBhbGxvY3F1ZXJ5ZmFpbGVkOwotCi0gICAgc3dwcmludGZfcyhxdWVyeSxx
dWVyeV9sZW4sIEwiU0VMRUNUICogRlJPTSAiIE9CSkVDVF9OQU1FX1coU2Vzc2lvbikgTCIgV0hF
UkUgU2Vzc2lvbklkPSVkIiwgdmFyLnVpbnRWYWwpOwotCi0gICAgc2Vzc2lvbnMgPSBydW5YU1F1
ZXJ5KHdtaSwgcXVlcnkgKTsKLSAgICBTeXNGcmVlU3RyaW5nKHF1ZXJ5KTsKLQotICAgIGlmIChz
ZXNzaW9ucykgewotICAgICAgICBJV2JlbUNsYXNzT2JqZWN0ICpyZXR1cm5lZE9iamVjdDsKLSAg
ICAgICAgVUxPTkcgY291bnQ7Ci0gICAgICAgIGhyZXMgPSBzZXNzaW9ucy0+TmV4dChXQkVNX0lO
RklOSVRFLCAxLCAmcmV0dXJuZWRPYmplY3QsICZjb3VudCk7Ci0gICAgICAgIHNlc3Npb25zLT5S
ZWxlYXNlKCk7Ci0gICAgICAgIGlmIChjb3VudD4wKSB7Ci0gICAgICAgICAgICByZXR1cm4gcmV0
dXJuZWRPYmplY3Q7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgfQotICAgIAotICAgIG91dE1l
dGhvZEluc3QtPlJlbGVhc2UoKTsKLSAgICBWYXJpYW50Q2xlYXIoJnZhcik7Ci0gICAgaW5NZXRo
b2RJbnN0LT5SZWxlYXNlKCk7Ci0gICAgaW5NZXRob2QtPlJlbGVhc2UoKTsKLSAgICBiYXNlLT5S
ZWxlYXNlKCk7Ci0gICAgYmFzZWNsYXNzLT5SZWxlYXNlKCk7Ci0gICAgcmV0dXJuIE5VTEw7Ci0K
LWFsbG9jcXVlcnlmYWlsZWQ6Ci1vdXRtZXRob2RnZXRmYWlsZWQ6Ci0gICAgb3V0TWV0aG9kSW5z
dC0+UmVsZWFzZSgpOwotCi1tZXRob2RleGVjYWRkc2Vzc2lvbmZhaWxlZDoKLW1ldGhvZHB1dGZh
aWxlZDoKLSAgICBWYXJpYW50Q2xlYXIoJnZhcik7Ci0KLWZvcm1hdG5hbWVic3RyZmFpbGVkOgot
ICAgIGluTWV0aG9kSW5zdC0+UmVsZWFzZSgpOwotaW5tZXRob2RzcGF3bmZhaWxlZDoKLSAgICBp
bk1ldGhvZC0+UmVsZWFzZSgpOwotCi0KLWdldG1ldGhvZGFkZHNlc3Npb25mYWlsZWQ6Ci0gICAg
YmFzZWNsYXNzLT5SZWxlYXNlKCk7Ci0KLWdldGJhc2VjbGFzc2ZhaWxlZDoKLSAgICBiYXNlLT5S
ZWxlYXNlKCk7Ci0KLWdldGJhc2VmYWlsZWQ6Ci0KLQotZm9ybWF0c2Vzc2lvbmJzdHJmYWlsZWQ6
Ci0gICAgcmV0dXJuIE5VTEw7Ci19Ci0KLUlXYmVtQ2xhc3NPYmplY3QqIHNlc3Npb25NZXRob2RT
dGFydChXTUlBY2Nlc3Nvcioqd21pLCAgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3Qgd2NoYXJfdCAqbWV0aG9kbmFtZSkKLXsKLSAgICBJV2JlbUNsYXNzT2JqZWN0
ICppbk1ldGhvZDsKLSAgICBJV2JlbUNsYXNzT2JqZWN0ICppbk1ldGhvZEluc3QgPSBOVUxMOwot
ICAgIElXYmVtQ2xhc3NPYmplY3QgKnNlc3Npb25DbGFzczsKLSAgICBIUkVTVUxUIGhyOwotCi0g
ICAgQVNTRVJUKHdtaSAhPSBOVUxMKTsKLQotICAgIHNlc3Npb25DbGFzcyA9IGdldENsYXNzKHdt
aSwgT0JKRUNUX05BTUVfVyhTZXNzaW9uKSk7Ci0gICAgaWYgKHNlc3Npb25DbGFzcyA9PSBOVUxM
KQotICAgICAgICBnb3RvIGdldGNsYXNzZmFpbGVkOwotCi0gICAgaHIgPSBzZXNzaW9uQ2xhc3Mt
PkdldE1ldGhvZChtZXRob2RuYW1lLDAsJmluTWV0aG9kLCBOVUxMKTsKLSAgICBpZiAoRkFJTEVE
KGhyKSkKLSAgICAgICAgZ290byBnZXRtZXRob2RmYWlsZWQ7Ci0KLSAgICBociA9IGluTWV0aG9k
LT5TcGF3bkluc3RhbmNlKDAsICZpbk1ldGhvZEluc3QpOwotICAgIGlmIChGQUlMRUQoaHIpKQot
ICAgICAgICBnb3RvIHNwYXduaW5zdGFuY2VmYWlsZWQ7Ci0KLSAgICBpbk1ldGhvZC0+UmVsZWFz
ZSgpOwotCi0gICAgc2Vzc2lvbkNsYXNzLT5SZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGluTWV0aG9k
SW5zdDsKLQotCi1zcGF3bmluc3RhbmNlZmFpbGVkOgotICAgIGluTWV0aG9kLT5SZWxlYXNlKCk7
Ci0gICAgCi1nZXRtZXRob2RmYWlsZWQ6Ci0gICAgc2Vzc2lvbkNsYXNzLT5SZWxlYXNlKCk7Ci0K
LWdldGNsYXNzZmFpbGVkOgotICAgIHJldHVybiBOVUxMOwotfQotCi0KLWNoYXIgKiBic3RyVG9D
aGFyKEJTVFIgYnN0LCBzaXplX3QgKmxlbikgewotICAgICpsZW4gPSB3Y3NsZW4oYnN0KTsKLSAg
ICBjaGFyICpzcGFjZSA9IChjaGFyICopWHNBbGxvYygqbGVuKzEpOwotICAgIGlmIChzcGFjZSkK
LSAgICAgICAgd2NzdG9tYnNfcyhsZW4sIHNwYWNlLCAqbGVuKzEsIGJzdCwgIF9UUlVOQ0FURSk7
Ci0gICAgcmV0dXJuIHNwYWNlOwotfQotCi12b2lkIFdtaVNlc3Npb25Mb2coV01JQWNjZXNzb3Iq
KiB3bWksICB2b2lkICoqc2Vzc2lvbmhhbmRsZSxjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXJn
cykgewotICAgIElXYmVtQ2xhc3NPYmplY3QgKipzZXNzaW9uID0gKElXYmVtQ2xhc3NPYmplY3Qg
Kiopc2Vzc2lvbmhhbmRsZTsKLSAgICAKLSAgICBjaGFyKiBtZXNzYWdlID0gZm9ybWF0Q2hhclN0
ckludChmbXQsYXJncyk7Ci0gICAgCi0gICAgT3V0cHV0RGVidWdTdHJpbmcobWVzc2FnZSk7Ci0g
ICAgaWYgKCgoKndtaSk9PU5VTEwpIHx8ICgoKnNlc3Npb25oYW5kbGUpPT1OVUxMKSApIHsKLSAg
ICAgICAgZ290byBub3dtaTsKLSAgICB9Ci0gICAgVkFSSUFOVCB2bWVzc2FnZTsKLSAgICBpZiAo
c2V0VmFyaWFudFN0cmluZygmdm1lc3NhZ2UsIG1lc3NhZ2UpKQotICAgICAgICBnb3RvIHNldHZt
ZXNzYWdlOwotCi0gICAgSVdiZW1DbGFzc09iamVjdCAqaW5NZXRob2RJbnN0ID0gc2Vzc2lvbk1l
dGhvZFN0YXJ0KCB3bWksIEwiTG9nIik7Ci0gICAgaWYgKCFpbk1ldGhvZEluc3QpCi0gICAgICAg
IGdvdG8gc2Vzc2lvbnN0YXJ0OwotICAgIAotICAgICBpZiAoRkFJTEVEKGluTWV0aG9kSW5zdC0+
UHV0KEwiTWVzc2FnZSIsMCwmdm1lc3NhZ2UsMCkpKQotICAgICAgICAgZ290byBtZXRob2RwdXRm
YWlsZWQ7Ci0KLSAgICAgaWYgKEZBSUxFRChtZXRob2RFeGVjKHdtaSwqc2Vzc2lvbiwgTCJMb2ci
LCBpbk1ldGhvZEluc3QsIE5VTEwpKSkKLSAgICAgICAgIGdvdG8gbWV0aG9kZXhlY2ZhaWxlZDsK
LQotbWV0aG9kZXhlY2ZhaWxlZDoKLW1ldGhvZHB1dGZhaWxlZDoKLSAgICAgaW5NZXRob2RJbnN0
LT5SZWxlYXNlKCk7Ci0KLXNlc3Npb25zdGFydDoKLSAgICBWYXJpYW50Q2xlYXIoJnZtZXNzYWdl
KTsKLQotc2V0dm1lc3NhZ2U6Ci1ub3dtaToKLSAgICByZXR1cm47Ci19Ci0KLWNoYXIqIFdtaVNl
c3Npb25HZXRFbnRyeShXTUlBY2Nlc3NvcioqIHdtaSwgdm9pZCAqKnNlc3Npb25oYW5kbGUsCi0g
ICAgICAgICAgICAgIGNvbnN0IGNoYXIgKiBwYXRoLCBzaXplX3QqIGxlbikgCi17Ci0gICAgKmxl
biA9IDA7Ci0gICAgSVdiZW1DbGFzc09iamVjdCAqKnNlc3Npb24gPSAoSVdiZW1DbGFzc09iamVj
dCAqKilzZXNzaW9uaGFuZGxlOwotCi0gICAgVkFSSUFOVCB2cGF0aDsKLSAgICBpZiAoc2V0VmFy
aWFudFN0cmluZygmdnBhdGgsIHBhdGgpKQotICAgICAgICBnb3RvIHNldHZwYXRoOwotCi0gICAg
SVdiZW1DbGFzc09iamVjdCAqb3V0TWV0aG9kSW5zdCA9IE5VTEw7Ci0KLSAgICBJV2JlbUNsYXNz
T2JqZWN0ICppbk1ldGhvZEluc3QgPSBzZXNzaW9uTWV0aG9kU3RhcnQoIHdtaSwgTCJHZXRWYWx1
ZSIpOwotICAgIGlmIChpbk1ldGhvZEluc3QgPT0gTlVMTCkgCi0gICAgICAgIGdvdG8gc2Vzc2lv
bm1ldGhvZHN0YXJ0ZmFpbGVkOwotICAgIAotICAgIGlmIChGQUlMRUQoaW5NZXRob2RJbnN0LT5Q
dXQoTCJQYXRoTmFtZSIsMCwmdnBhdGgsMCkpKSAKLSAgICAgICAgZ290byBtZXRob2RleGVjZmFp
bGVkOwotCi0gICAgbWV0aG9kRXhlYyh3bWksKnNlc3Npb24sIEwiR2V0VmFsdWUiLCBpbk1ldGhv
ZEluc3QsICZvdXRNZXRob2RJbnN0KTsKLSAgICBpZiAob3V0TWV0aG9kSW5zdD09TlVMTCkKLSAg
ICAgICAgZ290byBzZXNzaW9uRXhlYzsKLQotICAgIFZBUklBTlQgb3V0dmFsOwotICAgIFZhcmlh
bnRJbml0KCZvdXR2YWwpOwotCi0gICAgaWYgKEZBSUxFRChvdXRNZXRob2RJbnN0LT5HZXQoTCJ2
YWx1ZSIsIDAsICZvdXR2YWwsIE5VTEwsIE5VTEwpKSkKLSAgICAgICAgZ290byBtZXRob2RnZXRm
YWlsZWQ7Ci0KLSAgICBjaGFyICpzcGFjZSA9IE5VTEw7Ci0gICAgCi0gICAgaWYgKFZfVlQoJm91
dHZhbCkgPT0gVlRfQlNUUikgCi0gICAgewotICAgICAgICBzcGFjZSA9IGJzdHJUb0NoYXIob3V0
dmFsLmJzdHJWYWwsIGxlbik7Ci0gICAgfQotCi0gICAgb3V0TWV0aG9kSW5zdC0+UmVsZWFzZSgp
OwotICAgIGluTWV0aG9kSW5zdC0+UmVsZWFzZSgpOwotICAgIFZhcmlhbnRDbGVhcigmdnBhdGgp
OwotICAgIFZhcmlhbnRDbGVhcigmb3V0dmFsKTsgCi0gICAgcmV0dXJuIHNwYWNlOwotCi1tZXRo
b2RnZXRmYWlsZWQ6Ci0gICAgb3V0TWV0aG9kSW5zdC0+UmVsZWFzZSgpOwotCi1tZXRob2RleGVj
ZmFpbGVkOgotc2Vzc2lvbkV4ZWM6Ci0gICAgaW5NZXRob2RJbnN0LT5SZWxlYXNlKCk7Ci0KLXNl
c3Npb25tZXRob2RzdGFydGZhaWxlZDoKLSAgICBWYXJpYW50Q2xlYXIoJnZwYXRoKTsKLQotc2V0
dnBhdGg6Ci0gICAgcmV0dXJuIE5VTEw7Ci19Ci0KLWludCBXbWlTZXNzaW9uU2V0RW50cnkoV01J
QWNjZXNzb3IqKiB3bWksICB2b2lkICoqc2Vzc2lvbmhhbmRsZSwgCi0gICAgICAgICAgICAgIGNv
bnN0IGNoYXIqcGF0aCwgY29uc3QgY2hhciAqIHZhbHVlLCBzaXplX3QgbGVuKQotewotICAgIGlu
dCBlcnIgPSAtMTsKLSAgICBJV2JlbUNsYXNzT2JqZWN0ICoqc2Vzc2lvbiA9IChJV2JlbUNsYXNz
T2JqZWN0ICoqKXNlc3Npb25oYW5kbGU7Ci0KLSAgICBWQVJJQU5UIHZwYXRoOwotICAgIGlmIChz
ZXRWYXJpYW50U3RyaW5nKCZ2cGF0aCwgcGF0aCkpCi0gICAgICAgIGdvdG8gc2V0dnBhdGg7Ci0K
LSAgICBWQVJJQU5UIHZ2YWx1ZTsKLSAgICBpZiAoc2V0VmFyaWFudFN0cmluZygmdnZhbHVlLCB2
YWx1ZSkpCi0gICAgICAgIGdvdG8gc2V0dnZhbHVlOwotCi0gICAgSVdiZW1DbGFzc09iamVjdCAq
b3V0TWV0aG9kSW5zdDsKLQotICAgIElXYmVtQ2xhc3NPYmplY3QgKmluTWV0aG9kSW5zdCA9IHNl
c3Npb25NZXRob2RTdGFydCggd21pLCBMIlNldFZhbHVlIik7Ci0gICAgaWYgKCFpbk1ldGhvZElu
c3QpCi0gICAgICAgIGdvdG8gc2Vzc2lvbnN0YXJ0OwotCi0gICAgaW5NZXRob2RJbnN0LT5QdXQo
TCJQYXRoTmFtZSIsMCwmdnBhdGgsMCk7Ci0gICAgaW5NZXRob2RJbnN0LT5QdXQoTCJ2YWx1ZSIs
MCwmdnZhbHVlLDApOwotCi0gICAgaWYgKEZBSUxFRChtZXRob2RFeGVjKHdtaSwqc2Vzc2lvbiwg
TCJTZXRWYWx1ZSIsIGluTWV0aG9kSW5zdCwgJm91dE1ldGhvZEluc3QpKSkKLSAgICAgICAgZ290
byBtZXRob2RleGVjZmFpbGVkOwotCi0gICAgaWYgKG91dE1ldGhvZEluc3QhPU5VTEwpIAotICAg
ICAgICBvdXRNZXRob2RJbnN0LT5SZWxlYXNlKCk7Ci0KLSAgICBpbk1ldGhvZEluc3QtPlJlbGVh
c2UoKTsKLSAgICBTeXNGcmVlU3RyaW5nKHZ2YWx1ZS5ic3RyVmFsKTsKLSAgICBTeXNGcmVlU3Ry
aW5nKHZwYXRoLmJzdHJWYWwpOwotCi0gICAgcmV0dXJuIDA7Ci0KLW1ldGhvZGV4ZWNmYWlsZWQ6
Ci0gICAgWHNMb2coIldtaVNlc3Npb25TZXRFbnRyeTpNZXRob2RFeGVjIEZhaWxlZCIpOwotICAg
IGluTWV0aG9kSW5zdC0+UmVsZWFzZSgpOwotCi1zZXNzaW9uc3RhcnQ6Ci0gICAgWHNMb2coIldt
aVNlc3Npb25TZXRFbnRyeTpTZXNzaW9uU3RhcnQgRmFpbGVkIik7Ci0gICAgU3lzRnJlZVN0cmlu
Zyh2dmFsdWUuYnN0clZhbCk7Ci0KLXNldHZ2YWx1ZToKLSAgICBYc0xvZygiV21pU2Vzc2lvblNl
dEVudHJ5OlNldFZWYWx1ZSBGYWlsZWQiKTsKLSAgICBTeXNGcmVlU3RyaW5nKHZwYXRoLmJzdHJW
YWwpOwotCi1zZXR2cGF0aDoKLSAgICBYc0xvZygiV21pU2Vzc2lvblNldEVudHJ5OlNldFZQYXRo
IEZhaWxlZCAiKTsKLSAgICByZXR1cm4gZXJyOwotfQotCi1pbnQgV21pU2Vzc2lvblNldEVudHJ5
KFdNSUFjY2Vzc29yKiogd21pLCAgdm9pZCAqKnNlc3Npb25oYW5kbGUsIAotICAgICAgICAgICAg
ICBjb25zdCBjaGFyKnBhdGgsIGNvbnN0IGNoYXIgKiB2YWx1ZSkgewotICAgIHJldHVybiBXbWlT
ZXNzaW9uU2V0RW50cnkod21pLCBzZXNzaW9uaGFuZGxlLCBwYXRoLCB2YWx1ZSwgc3RybGVuKHZh
bHVlKSk7Ci19Ci0KLWludCBXbWlTZXNzaW9uUmVtb3ZlRW50cnkoV01JQWNjZXNzb3IqKiB3bWks
ICB2b2lkICoqc2Vzc2lvbmhhbmRsZSwgCi0gICAgICAgICAgICAgIGNvbnN0IGNoYXIqcGF0aCl7
Ci0KLSAgICBpbnQgZXJyID0gLTE7Ci0gICAgSVdiZW1DbGFzc09iamVjdCAqKnNlc3Npb24gPSAo
SVdiZW1DbGFzc09iamVjdCAqKilzZXNzaW9uaGFuZGxlOwotCi0gICAgVkFSSUFOVCB2cGF0aDsK
LSAgICBpZiAoc2V0VmFyaWFudFN0cmluZygmdnBhdGgsIHBhdGgpKQotICAgICAgICBnb3RvIHNl
dHZwYXRoOwotCi0gICAgSVdiZW1DbGFzc09iamVjdCAqaW5NZXRob2RJbnN0ID0gc2Vzc2lvbk1l
dGhvZFN0YXJ0KCB3bWksIEwiUmVtb3ZlVmFsdWUiKTsKLSAgICBpZiAoIWluTWV0aG9kSW5zdCkK
LSAgICAgICAgZ290byBzZXNzaW9uc3RhcnQ7Ci0KLSAgICBpZiAoRkFJTEVEKGluTWV0aG9kSW5z
dC0+UHV0KEwiUGF0aE5hbWUiLDAsJnZwYXRoLDApKSkKLSAgICAgICAgZ290byBtZXRob2RwdXRm
YWlsZWQ7Ci0KLSAgICBJV2JlbUNsYXNzT2JqZWN0KiBvdXRNZXRob2RJbnN0OwotCi0gICAgaWYg
KEZBSUxFRChtZXRob2RFeGVjKHdtaSwqc2Vzc2lvbiwgTCJSZW1vdmVWYWx1ZSIsIGluTWV0aG9k
SW5zdCwgJm91dE1ldGhvZEluc3QpKSkKLSAgICAgICAgZ290byBtZXRob2RleGVjZmFpbGVkOwot
Ci0gICAgaWYgKG91dE1ldGhvZEluc3QgIT0gTlVMTCkKLSAgICAgICAgb3V0TWV0aG9kSW5zdC0+
UmVsZWFzZSgpOwotCi0gICAgZXJyPTA7Ci0gICAgaW5NZXRob2RJbnN0LT5SZWxlYXNlKCk7Ci0g
ICAgVmFyaWFudENsZWFyKCZ2cGF0aCk7Ci0gICAgcmV0dXJuIGVycjsKLW1ldGhvZGV4ZWNmYWls
ZWQ6Ci0gICAgT3V0cHV0RGVidWdTdHJpbmcoX19GVU5DVElPTl9fICIgTWV0aG9kRXhlY0ZhaWxl
ZCIpOwotbWV0aG9kcHV0ZmFpbGVkOgotICAgIE91dHB1dERlYnVnU3RyaW5nKF9fRlVOQ1RJT05f
XyAiIE1ldGhvZFB1dEZhaWxlZCIpOwotICAgIGluTWV0aG9kSW5zdC0+UmVsZWFzZSgpOwotCi1z
ZXNzaW9uc3RhcnQ6Ci0gICAgT3V0cHV0RGVidWdTdHJpbmcoX19GVU5DVElPTl9fICIgU2Vzc2lv
blN0YXJ0RmFpbGVkIik7Ci0gICAgVmFyaWFudENsZWFyKCZ2cGF0aCk7Ci0KLSAgICBPdXRwdXRE
ZWJ1Z1N0cmluZyhfX0ZVTkNUSU9OX18gIiBTZXNzaW9uRXhlY0ZhaWxlZCIpOwotc2V0dnBhdGg6
Ci0gICAgT3V0cHV0RGVidWdTdHJpbmcoX19GVU5DVElPTl9fICIgU2V0VnBhdGhGYWlsZWQiKTsK
LSAgICByZXR1cm4gZXJyOyAKLX0KLQotCi1CT09MIFdtaVNlc3Npb25VbndhdGNoKFdNSUFjY2Vz
c29yKiogd21pLCAgdm9pZCAqKnNlc3Npb25oYW5kbGUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgdm9pZCAqd2F0Y2hoYW5kbGUpIHsKLSAgICBJV2JlbUNsYXNzT2JqZWN0ICoqc2Vzc2lvbiA9
IChJV2JlbUNsYXNzT2JqZWN0ICoqKXNlc3Npb25oYW5kbGU7Ci0gICAgWHNMb2coIlVud2F0Y2gg
JXAiLHdhdGNoaGFuZGxlKTsKLSAgICBXYXRjaFNpbmsgKiBzaW5rID0gKFdhdGNoU2luayAqKXdh
dGNoaGFuZGxlOwotCi0gICAgVkFSSUFOVCB2cGF0aDsKLSAgICBpZiAoc2V0VmFyaWFudFN0cmlu
ZygmdnBhdGgsIHNpbmstPnBhdGgpKQotICAgICAgICBnb3RvIHNldHZwYXRoOwotCi0gICAgSVdi
ZW1DbGFzc09iamVjdCAqb3V0TWV0aG9kSW5zdDsKLSAgICBJV2JlbUNsYXNzT2JqZWN0ICppbk1l
dGhvZEluc3QgPSBzZXNzaW9uTWV0aG9kU3RhcnQoIHdtaSwgTCJSZW1vdmVXYXRjaCIpOwotICAg
IGlmICghaW5NZXRob2RJbnN0KQotICAgICAgICBnb3RvIHNlc3Npb25zdGFydDsKLQotICAgIGlu
TWV0aG9kSW5zdC0+UHV0KEwiUGF0aE5hbWUiLDAsJnZwYXRoLDApOwotICAgIGlmIEZBSUxFRCht
ZXRob2RFeGVjKHdtaSwqc2Vzc2lvbiwgTCJSZW1vdmVXYXRjaCIsIGluTWV0aG9kSW5zdCwgJm91
dE1ldGhvZEluc3QpKQotICAgICAgICBnb3RvIG1ldGhvZGV4ZWNmYWlsZWQ7Ci0gICAgaWYgKG91
dE1ldGhvZEluc3Q9PU5VTEwpCi0gICAgICAgIGdvdG8gc2Vzc2lvbmV4ZWNmYWlsZWQ7Ci0KLSAg
ICBvdXRNZXRob2RJbnN0LT5SZWxlYXNlKCk7Ci0KLW1ldGhvZGV4ZWNmYWlsZWQ6Ci1zZXNzaW9u
ZXhlY2ZhaWxlZDoKLSAgICBpbk1ldGhvZEluc3QtPlJlbGVhc2UoKTsKLQotc2Vzc2lvbnN0YXJ0
Ogotc2V0dnBhdGg6Ci0gICAgc2luay0+UmVsZWFzZSgpOwotICAgIHJldHVybiB0cnVlOwotfQot
Ci1CT09MIFdtaVNlc3Npb25TdGFydChXTUlBY2Nlc3NvcioqIHdtaSwgIHZvaWQgKipzZXNzaW9u
aGFuZGxlLCBjb25zdCBjaGFyKiBzZXNzaW9ubmFtZSkgCi17Ci0gICAgSVdiZW1DbGFzc09iamVj
dCAqKnNlc3Npb24gPSAoSVdiZW1DbGFzc09iamVjdCAqKilzZXNzaW9uaGFuZGxlOwotICAgIGlm
ICgoKnNlc3Npb24gPSBvcGVuU2Vzc2lvbih3bWksIHNlc3Npb25uYW1lKSkgPT0gTlVMTCkgewot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHJldHVybiB0cnVlOwotfQotCi0KLUJP
T0wgV21pU2Vzc2lvbkVuZChXTUlBY2Nlc3NvcioqIHdtaSwgIHZvaWQgKnNlc3Npb25oYW5kbGUp
IAotewotICAgIEhSRVNVTFQgaHI7Ci0gICAgQVNTRVJUKCp3bWkgIT0gTlVMTCk7Ci0KLSAgICBJ
V2JlbUNsYXNzT2JqZWN0ICpzZXNzaW9uID0gKElXYmVtQ2xhc3NPYmplY3QgKilzZXNzaW9uaGFu
ZGxlOwotICAgIGlmIChzZXNzaW9uPT1OVUxMKSB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICB9Ci0gICAgaHIgPSBtZXRob2RFeGVjKHdtaSwgc2Vzc2lvbiwgTCJFbmRTZXNzaW9uIiwgTlVM
TCxOVUxMKTsKLSAgICBpZiBGQUlMRUQoaHIpCi0gICAgICAgIGdvdG8gZXhlY21ldGhvZGZhaWxl
ZDsKLSAgICBzZXNzaW9uLT5SZWxlYXNlKCk7Ci0gICAgcmV0dXJuIHRydWU7Ci0KLWV4ZWNtZXRo
b2RmYWlsZWQ6Ci0gICAgcmV0dXJuIGZhbHNlOwotCi19Ci0KLXZvaWQgKldtaVNlc3Npb25XYXRj
aChXTUlBY2Nlc3NvcioqIHdtaSwgIHZvaWQgKipzZXNzaW9uaGFuZGxlLCAKLSAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBjaGFyICpwYXRoLCBIQU5ETEUgZXZlbnQsIEhBTkRMRSBlcnJvcmV2
ZW50KSB7Ci0gICAgICAgCi0gICAgSFJFU1VMVCBocjsKLQotICAgIElXYmVtQ2xhc3NPYmplY3Qg
KipzZXNzaW9uID0gKElXYmVtQ2xhc3NPYmplY3QgKiopc2Vzc2lvbmhhbmRsZTsKLSAgICAKLSAg
ICBBU1NFUlQoKCp3bWkpICE9IE5VTEwpOwotICAgIEFTU0VSVCgoKnNlc3Npb25oYW5kbGUpICE9
IE5VTEwpOwotCi0gICAgV2F0Y2hTaW5rICogc2luayA9IG5ldyBXYXRjaFNpbmsoZXZlbnQsIGVy
cm9yZXZlbnQsIHBhdGgpOwotICAgIEJTVFIgcXVlcnk9Zm9ybWF0QnN0cigiU0VMRUNUICogZnJv
bSAiIE9CSkVDVF9OQU1FX0EoV2F0Y2hFdmVudCkgIiBXSEVSRSBFdmVudElkPVwiJXNcIiIsIHBh
dGgpOwotICAgIGlmIChxdWVyeSA9PSBOVUxMKSB7Ci0gICAgICAgIGdvdG8gZm9ybWF0c3RyaW5n
ZmFpbGVkOwotICAgIH0KLQotICAgIGhyID0gKCp3bWkpLT5tcFhTU3ZjLT5FeGVjTm90aWZpY2F0
aW9uUXVlcnlBc3luYyhMIldRTCIsIHF1ZXJ5LDAsTlVMTCwgc2luayk7Ci0gICAgaWYgKEZBSUxF
RChocikpewotICAgICAgICAqd21pID0gTlVMTDsKLSAgICAgICAgZ290byB3bWlmYWlsZWQ7Ci0g
ICAgfQotCi0gICAgVkFSSUFOVCB2cGF0aDsKLSAgICBpZiAoc2V0VmFyaWFudFN0cmluZygmdnBh
dGgsIHBhdGgpKXsKLSAgICAgICAgZ290byBzZXR2cGF0aDsKLSAgICB9Ci0KLQotICAgIElXYmVt
Q2xhc3NPYmplY3QgKmluTWV0aG9kSW5zdCA9IHNlc3Npb25NZXRob2RTdGFydCggd21pLCBMIlNl
dFdhdGNoIik7Ci0gICAgaWYgKCFpbk1ldGhvZEluc3QpCi0gICAgICAgIGdvdG8gc2Vzc2lvbnN0
YXJ0OwotCi0gICAgaHIgPSBpbk1ldGhvZEluc3QtPlB1dChMIlBhdGhOYW1lIiwwLCZ2cGF0aCww
KTsKLSAgICBpZiAoRkFJTEVEKGhyKSkKLSAgICAgICAgZ290byBtZXRob2RwdXRmYWlsZWQ7Ci0K
LSAgICBociA9IG1ldGhvZEV4ZWMod21pLCpzZXNzaW9uLCBMIlNldFdhdGNoIiwgaW5NZXRob2RJ
bnN0LCBOVUxMKTsKLSAgICBpZiAoRkFJTEVEKGhyKSkKLSAgICAgICAgZ290byBtZXRob2RleGVj
ZmFpbGVkOwotCi0gICAgVmFyaWFudENsZWFyKCZ2cGF0aCk7Ci0KLSAgICBTeXNGcmVlU3RyaW5n
KHF1ZXJ5KTsKLQotICAgIHJldHVybiBzaW5rOwotCi0KLW1ldGhvZGV4ZWNmYWlsZWQ6Ci0gICAg
T3V0cHV0RGVidWdTdHJpbmcoX19GVU5DVElPTl9fICIgOiBtZXRob2RleGVjZmFpbGVkXG4iKTsK
LW1ldGhvZHB1dGZhaWxlZDoKLSAgICBPdXRwdXREZWJ1Z1N0cmluZyhfX0ZVTkNUSU9OX18gIiA6
IG1ldGhvZHB1dGZhaWxlZFxuIik7Ci0gICAgaW5NZXRob2RJbnN0LT5SZWxlYXNlKCk7Ci1zZXNz
aW9uc3RhcnQ6Ci0gICAgT3V0cHV0RGVidWdTdHJpbmcoX19GVU5DVElPTl9fICIgOiBzZXNzaW9u
c3RhcnRcbiIpOwotICAgIFZhcmlhbnRDbGVhcigmdnBhdGgpOwotc2V0dnBhdGg6Ci0gICAgT3V0
cHV0RGVidWdTdHJpbmcoX19GVU5DVElPTl9fICIgOiBzZXR2cGF0aFxuIik7Ci13bWlmYWlsZWQ6
Ci0gICAgU3lzRnJlZVN0cmluZyhxdWVyeSk7Ci1mb3JtYXRzdHJpbmdmYWlsZWQ6Ci0gICAgT3V0
cHV0RGVidWdTdHJpbmcoX19GVU5DVElPTl9fICIgOiBmb3JtYXRzdHJpbmdmYWlsZWRcbiIpOwot
ICAgIGRlbGV0ZSBzaW5rOwotICAgIHJldHVybiBOVUxMOwotfQotCi12b2lkICpXbWlVbnN1c3Bl
bmRlZEV2ZW50V2F0Y2goV01JQWNjZXNzb3IgKip3bWksIEhBTkRMRSBldmVudCwgSEFORExFIGVy
cm9yZXZlbnQpIAotewotICAgIEhSRVNVTFQgaHI7Ci0KLSAgICBBU1NFUlQoKndtaSAhPSBOVUxM
KTsKLQotICAgIFdhdGNoU2luayAqIHNpbmsgPSBuZXcgV2F0Y2hTaW5rKGV2ZW50LCBlcnJvcmV2
ZW50LCBOVUxMKTsKLSAgICBCU1RSIHF1ZXJ5PWZvcm1hdEJzdHIoIlNFTEVDVCAqIGZyb20gIiBP
QkpFQ1RfTkFNRV9BKFVuc3VzcGVuZGVkRXZlbnQpKTsKLSAgICBpZiAocXVlcnk9PU5VTEwpIHsK
LSAgICAgICAgZ290byBmb3JtYXRzdHJpbmdmYWlsZWQ7Ci0gICAgfQotCi0gICAgaHIgPSAoKndt
aSktPm1wWFNTdmMtPkV4ZWNOb3RpZmljYXRpb25RdWVyeUFzeW5jKEwiV1FMIiwgcXVlcnksMCxO
VUxMLCBzaW5rKTsKLSAgICBpZiBGQUlMRUQoaHIpCi0gICAgICAgIGdvdG8gYXN5bmNxdWVyeWZh
aWxlZDsKLQotICAgIFN5c0ZyZWVTdHJpbmcocXVlcnkpOwotICAgIHJldHVybiBzaW5rOwotCi1h
c3luY3F1ZXJ5ZmFpbGVkOgotICAgIFN5c0ZyZWVTdHJpbmcocXVlcnkpOwotZm9ybWF0c3RyaW5n
ZmFpbGVkOgotICAgIGRlbGV0ZSBzaW5rOwotICAgIHJldHVybiBOVUxMOwotfQotCmRpZmYgLS1n
aXQgYS9zcmMvd2luMzJzdHViYWdlbnQvV21pQWNjZXNzb3IuaCBiL3NyYy93aW4zMnN0dWJhZ2Vu
dC9XbWlBY2Nlc3Nvci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMzdlZjcxLi4w
MDAwMDAwCi0tLSBhL3NyYy93aW4zMnN0dWJhZ2VudC9XbWlBY2Nlc3Nvci5oCisrKyAvZGV2L251
bGwKQEAgLTEsODggKzAsMCBAQAotLyogQ29weXJpZ2h0IChjKSBDaXRyaXggU3lzdGVtcyBJbmMu
Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIAotICogd2l0aCBvciB3aXRob3V0IG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCAKLSAqIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZSBtZXQ6Ci0gKgotICogKiAgIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgCi0gKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSAKLSAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqICogICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIAotICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgCi0gKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIAotICogICAgIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIAotICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgCi0gKiBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiAKLSAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIAotICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgCi0gKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgCi0gKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCAKLSAqIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiAKLSAq
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgCi0gKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgCi0gKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIAotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiAKLSAqIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYg
X1dNSUFDQ0VTU09SX0gKLSNkZWZpbmUgX1dNSUFDQ0VTU09SX0gKLQotI2luY2x1ZGUgPFdiZW1p
ZGwuaD4KLSNpbmNsdWRlIDxsaXN0PgotI2luY2x1ZGUgPHZlY3Rvcj4KLSNpbmNsdWRlIDxtYXA+
Ci0jaW5jbHVkZSA8c3RyaW5nPgotCi0jaW5jbHVkZSAiWFNBY2Nlc3Nvci5oIgotCi11c2luZyBu
YW1lc3BhY2Ugc3RkOwotCi10eXBlZGVmIHVuc2lnbmVkIF9faW50NjQgdWludDY0X3Q7Ci0KLXN0
cnVjdCBXTUlBY2Nlc3NvcjsKLQotZXh0ZXJuIHN0cnVjdCBXTUlBY2Nlc3NvciAqd21pOwotCi1l
eHRlcm4gTE9ORyB3bWljb3VudDsKLUJPT0wgSW5pdENvbSh2b2lkKTsKLXZvaWQgUmVsZWFzZUNv
bSh2b2lkKTsKLUJPT0wgQ29ubmVjdFRvV01JKHZvaWQpOwotdm9pZCBSZWxlYXNlV01JQWNjZXNz
b3Ioc3RydWN0IFdNSUFjY2Vzc29yICoqKTsKLQotdm9pZCBVcGRhdGVQcm9jZXNzTGlzdEluU3Rv
cmUoV01JQWNjZXNzb3IgKip3bWkpOwotCi1pbnQgV21pU2Vzc2lvblNldEVudHJ5KFdNSUFjY2Vz
c29yKiogd21pLCAgdm9pZCAqKnNlc3Npb25oYW5kbGUsIAotICAgICAgICAgICAgICBjb25zdCBj
aGFyKnBhdGgsIGNvbnN0IGNoYXIgKiB2YWx1ZSk7Ci0KLWludCBXbWlTZXNzaW9uU2V0RW50cnko
V01JQWNjZXNzb3IqKiB3bWksICB2b2lkICoqc2Vzc2lvbmhhbmRsZSwgCi0gICAgICAgICAgICAg
IGNvbnN0IGNoYXIqcGF0aCwgY29uc3QgY2hhciAqIHZhbHVlLCBzaXplX3QgbGVuKTsKLWNoYXIq
IFdtaVNlc3Npb25HZXRFbnRyeShXTUlBY2Nlc3NvcioqIHdtaSwgdm9pZCAqKnNlc3Npb25oYW5k
bGUsCi0gICAgICAgICAgICAgIGNvbnN0IGNoYXIgKiBwYXRoLCBzaXplX3QqIGxlbikgOwotCi12
b2lkICpXbWlTZXNzaW9uV2F0Y2goV01JQWNjZXNzb3IqKiB3bWksICB2b2lkICoqc2Vzc2lvbmhh
bmRsZSwgCi0gICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqcGF0aCwgSEFORExFIGV2
ZW50LCBIQU5ETEUgZXJyb3JldmVudCk7Ci1CT09MIFdtaVNlc3Npb25VbndhdGNoKFdNSUFjY2Vz
c29yKiogd21pLCAgdm9pZCAqKnNlc3Npb25oYW5kbGUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgdm9pZCAqd2F0Y2hoYW5kbGUpOwotCi1pbnQgV21pU2Vzc2lvblJlbW92ZUVudHJ5KFdNSUFj
Y2Vzc29yKiogd21pLCAgdm9pZCAqKnNlc3Npb25oYW5kbGUsIAotICAgICAgICAgICAgICBjb25z
dCBjaGFyKnBhdGgpOwotCi1jaGFyICoqV21pU2Vzc2lvbkdldENoaWxkcmVuKFdNSUFjY2Vzc29y
Kiogd21pLCB2b2lkICoqc2Vzc2lvbmhhbmRsZSwKLSAgICAgICAgICAgICAgY29uc3QgY2hhciAq
IHBhdGgsIHVuc2lnbmVkICpudW1lbnRyaWVzKTsKLQotCi12b2lkICpXbWlVbnN1c3BlbmRlZEV2
ZW50V2F0Y2goV01JQWNjZXNzb3IgKip3bWksIEhBTkRMRSBldmVudCwgSEFORExFIGVycm9yZXZl
bnQpOwotCi1pbnQgV21pU2Vzc2lvblRyYW5zYWN0aW9uQWJvcnQoV01JQWNjZXNzb3IqKiB3bWks
ICB2b2lkICoqc2Vzc2lvbmhhbmRsZSk7IAotaW50IFdtaVNlc3Npb25UcmFuc2FjdGlvbkNvbW1p
dChXTUlBY2Nlc3NvcioqIHdtaSwgIHZvaWQgKipzZXNzaW9uaGFuZGxlKTsgCi1pbnQgV21pU2Vz
c2lvblRyYW5zYWN0aW9uU3RhcnQoV01JQWNjZXNzb3IqKiB3bWksICB2b2lkICoqc2Vzc2lvbmhh
bmRsZSk7IAotQk9PTCBXbWlTZXNzaW9uU3RhcnQoV01JQWNjZXNzb3IqKiB3bWksICB2b2lkICoq
c2Vzc2lvbmhhbmRsZSwgY29uc3QgY2hhciAqc2Vzc2lvbm5hbWUpOwotQk9PTCBXbWlTZXNzaW9u
RW5kKFdNSUFjY2Vzc29yKiogd21pLCAgdm9pZCAqc2Vzc2lvbmhhbmRsZSk7Ci1GSUxFVElNRSBX
bWlHZXRYZW5UaW1lKFdNSUFjY2Vzc29yICoqd21pKTsKLXZvaWQgV21pU2Vzc2lvbkxvZyhXTUlB
Y2Nlc3NvcioqIHdtaSwgIHZvaWQgKipzZXNzaW9uaGFuZGxlLGNvbnN0IGNoYXIgKmZtdCwgdmFf
bGlzdCBhcmdzKTsKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL3dpbjMyc3R1YmFnZW50L1hTQWNj
ZXNzb3IuY3BwIGIvc3JjL3dpbjMyc3R1YmFnZW50L1hTQWNjZXNzb3IuY3BwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBjNjBmYjhiLi4wMDAwMDAwCi0tLSBhL3NyYy93aW4zMnN0dWJh
Z2VudC9YU0FjY2Vzc29yLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDIzMCArMCwwIEBACi0vKiBD
b3B5cmlnaHQgKGMpIENpdHJpeCBTeXN0ZW1zIEluYy4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgCi0gKiB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIAotICogdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKLSAqCi0gKiAq
ICAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSAK
LSAqICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IAotICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogKiAgIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgCi0gKiAgICAgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSAKLSAqICAgICBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgCi0gKiAgICAg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgCi0gKiBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCAK
LSAqIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIAotICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
IEhPTERFUiBPUiAKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCAKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIAotICogQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIAotICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyAKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCAKLSAqIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyAKLSAqIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIAot
ICogU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgPHdpbmRvd3MuaD4KLSNpbmNsdWRlICJz
dGRhZnguaCIKLSNpbmNsdWRlICJYU0FjY2Vzc29yLmgiCi0jaW5jbHVkZSAiV01JQWNjZXNzb3Iu
aCIKLQotc3RhdGljIF9fZGVjbHNwZWModGhyZWFkKSB2b2lkICpXbWlTZXNzaW9uSGFuZGxlID0g
TlVMTDsKLQotc3RhdGljIExPTkcgdm9sYXRpbGUgdGhyZWFkY291bnQgPSAwOwotc3RhdGljIF9f
ZGVjbHNwZWModGhyZWFkKSBMT05HIGxvY2FsdGhyZWFkY291bnQgPSAwOwotc3RhdGljIF9fZGVj
bHNwZWModGhyZWFkKSBMT05HIGxvY2Fsd21pY291bnQgPSAwOwotCi1zdGF0aWMgbG9uZyB1cGRh
dGVfY250PTB4RjAwMDAwMDA7Ci0jZGVmaW5lIFhFTlNUT1JFX01BR0lDIDB4N2U2ZWMxMjMKLQot
dm9pZCAqWHNBbGxvYyhzaXplX3Qgc2l6ZSkgewotICAgIHZvaWQgKmJ1ZjsKLQotICAgIGJ1ZiA9
IG1hbGxvYyhzaXplICsgOCk7Ci0gICAgaWYgKCFidWYpIHsKLSAgICAgICAgU2V0TGFzdEVycm9y
KEVSUk9SX05PVF9FTk9VR0hfTUVNT1JZKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQot
ICAgIG1lbXNldChidWYsIDAsIHNpemUgKyA4KTsKLSAgICAqKHVuc2lnbmVkICopYnVmID0gWEVO
U1RPUkVfTUFHSUM7Ci0gICAgcmV0dXJuICh2b2lkICopKChVTE9OR19QVFIpYnVmICsgOCk7Ci19
Ci0KLXZvaWQgWHNGcmVlKGNvbnN0IHZvaWQgKmJ1ZikgewotICAgIHZvaWQgKm9yaWdfYnVmOwot
Ci0gICAgaWYgKCFidWYpCi0gICAgICAgIHJldHVybjsKLSAgICBvcmlnX2J1ZiA9ICh2b2lkICop
KChVTE9OR19QVFIpYnVmIC0gOCk7Ci0gICAgaWYgKCoodW5zaWduZWQgKilvcmlnX2J1ZiAhPSBY
RU5TVE9SRV9NQUdJQykgewotICAgICAgICBPdXRwdXREZWJ1Z1N0cmluZygiWHNGcmVlKCkgaW52
b2tlZCBvbiBiYWQgcG9pbnRlclxuIik7Ci0gICAgICAgIERlYnVnQnJlYWsoKTsKLSAgICB9Ci0g
ICAgZnJlZShvcmlnX2J1Zik7Ci19Ci0KLXZvaWQgR2V0WGVuVGltZShGSUxFVElNRSAqbm93KQot
ewotICAgICpub3cgPSBXbWlHZXRYZW5UaW1lKCZ3bWkpOwotfQotCi0KLWludCBMaXN0ZW5TdXNw
ZW5kKEhBTkRMRSBldmVudCwgSEFORExFIGVycm9yZXZlbnQpCi17Ci0gICAgaWYgKCFXbWlVbnN1
c3BlbmRlZEV2ZW50V2F0Y2goJndtaSwgZXZlbnQsIGVycm9yZXZlbnQpKQotICAgICAgICByZXR1
cm4gLTE7Ci0gICAgZWxzZQotICAgICAgICByZXR1cm4gMDsKLX0KLQotQk9PTCBJbml0WFNBY2Nl
c3NvcigpCi17Ci0gICAgT3V0cHV0RGVidWdTdHJpbmcoIlhTQWNjZXNzb3JcbiIpOwotICAgIGlm
ICh3bWljb3VudCAhPSBsb2NhbHdtaWNvdW50KSB7Ci0gICAgICAgIAotICAgICAgICBpZiAobG9j
YWx0aHJlYWRjb3VudCA9PSAwKSB7Ci0gICAgICAgICAgICBsb2NhbHRocmVhZGNvdW50ID0gSW50
ZXJsb2NrZWRJbmNyZW1lbnQoJnRocmVhZGNvdW50KTsKLSAgICAgICAgfQotICAgICAgICBjaGFy
IHdtaW5hbWVbMTJdOwotICAgICAgICBfc25wcmludGYod21pbmFtZSwgMTIsICJYUyV4IiwgbG9j
YWx0aHJlYWRjb3VudCk7Ci0gICAgICAgIGlmIChXbWlTZXNzaW9uU3RhcnQoJndtaSwgJldtaVNl
c3Npb25IYW5kbGUsIHdtaW5hbWUpKSB7Ci0gICAgICAgICAgICBsb2NhbHdtaWNvdW50ID0gd21p
Y291bnQ7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICBPdXRw
dXREZWJ1Z1N0cmluZygiWFNBY2Nlc3NvciBGYWlsZWRcbiIpOwotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgfQotICAgIHJldHVybiB0cnVlOwotfQotCi12b2lkIFhzTG9nKGNvbnN0IGNoYXIg
KmZtdCwgLi4uKQotewotICAgIHZhX2xpc3QgYXJnczsKLQotICAgIHZhX3N0YXJ0KGFyZ3MsIGZt
dCk7Ci0gICAgV21pU2Vzc2lvbkxvZygmd21pLCAmV21pU2Vzc2lvbkhhbmRsZSwgZm10LCBhcmdz
KTsKLSAgICB2YV9lbmQoYXJncyk7Ci19Ci0KLQotQk9PTCBTaHV0ZG93blhTQWNjZXNzb3Iodm9p
ZCkKLXsKLSAgICBpZiAod21pID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IH0KLSAgICBpZiAoV21pU2Vzc2lvbkhhbmRsZSA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICB9Ci0gICAgcmV0dXJuIFdtaVNlc3Npb25FbmQoJndtaSwgV21pU2Vzc2lvbkhh
bmRsZSk7Ci0KLX0KLQotaW50IFhlbnN0b3JlUHJpbnRmKGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0
IGNoYXIgKmZtdCwgLi4uKQotewotICAgIHZhX2xpc3QgbDsKLSAgICBjaGFyIGJ1Zls0MDk2XTsK
LSAgICBpbnQgY250OwotCi0gICAgdmFfc3RhcnQobCwgZm10KTsKLSAgICBjbnQgPSBfdnNucHJp
bnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksIGZtdCwgbCk7Ci0gICAgdmFfZW5kKGwpOwotICAgIGlmIChj
bnQgPCAwKSB7Ci0gICAgICAgIERCR1BSSU5UICgoIkNhbm5vdCBmb3JtYXQgZGF0YSBmb3IgWGVu
c3RvcmVQcmludGYhIikpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQotICAgIE91dHB1dERl
YnVnU3RyaW5nKGJ1Zik7Ci0gICAgLyogTm93IGhhdmUgdGhlIHRoaW5nIHdlJ3JlIHRyeWluZyB0
byB3cml0ZS4gKi8KLSAgICByZXR1cm4gV21pU2Vzc2lvblNldEVudHJ5KCZ3bWksICZXbWlTZXNz
aW9uSGFuZGxlLCBwYXRoLCBidWYpOwotfQotCi1CT09MIFhlbnN0b3JlS2lja1hhcGkoKQotewot
ICAgIC8qIE5ldyBwcm90b2NvbCAqLwotICAgIGlmIChYZW5zdG9yZVByaW50ZigiZGF0YS91cGRh
dGVfY250IiwgIiVJNjRkIiwgdXBkYXRlX2NudCkpewotICAgICAgICBYc0xvZygiTmV3IGtpY2sg
ZmFpbGVkICIpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIC8qIE9sZCBwcm90
b2NvbCAqLwotICAgIGlmIChXbWlTZXNzaW9uU2V0RW50cnkoJndtaSwgJldtaVNlc3Npb25IYW5k
bGUsICJkYXRhL3VwZGF0ZWQiLCAiMSIpKXsKLSAgICAgICAgWHNMb2coIk9sZCBraWNrIGZhaWxl
ZCIpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHVwZGF0ZV9jbnQrKzsKLSAg
ICByZXR1cm4gdHJ1ZTsKLX0KLQotCi1pbnQKLVhlbnN0b3JlUmVtb3ZlKGNvbnN0IGNoYXIgKnBh
dGgpCi17Ci0gICAgaWYgKHdtaSA9PSBOVUxMKQotICAgICAgICByZXR1cm4gLTE7Ci0KLSAgICBp
ZiAoV21pU2Vzc2lvbkhhbmRsZSA9PSBOVUxMKQotICAgICAgICByZXR1cm4gLTE7Ci0KLSAgICBp
ZiAoV21pU2Vzc2lvblJlbW92ZUVudHJ5KCZ3bWksICZXbWlTZXNzaW9uSGFuZGxlLCBwYXRoKSkK
LSAgICAgICAgcmV0dXJuIC0xOwotICAgIGVsc2UKLSAgICAgICAgcmV0dXJuIDA7Ci19Ci0KLXNz
aXplX3QKLVhlbnN0b3JlUmVhZChjb25zdCBjaGFyKiBwYXRoLCBjaGFyKiogdmFsdWUpCi17Ci0g
ICAgc2l6ZV90IGxlbjsKLSAgICAqdmFsdWUgPVdtaVNlc3Npb25HZXRFbnRyeSgmd21pLCAmV21p
U2Vzc2lvbkhhbmRsZSwgcGF0aCwgJmxlbik7Ci0gICAgaWYgKCp2YWx1ZSkKLSAgICAgICAgcmV0
dXJuIChzc2l6ZV90KWxlbjsKLSAgICBlbHNlCi0gICAgICAgIHJldHVybiAtMTsKLX0KLQotCi1i
b29sIFhlbnN0b3JlUmVhZER3b3JkKGNvbnN0IGNoYXIgKnBhdGgsIERXT1JEICp2YWx1ZSkgewot
ICAgIGNoYXIqIGJ1ZmZlcjsKLSAgICBzc2l6ZV90IGxlbjsKLSAgICBsZW4gPSBYZW5zdG9yZVJl
YWQocGF0aCwgJmJ1ZmZlcik7Ci0gICAgaWYgKGxlbiA8PSAwKSB7Ci0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICB9Ci0gICAgKnZhbHVlID0gYXRvaShidWZmZXIpOwotCi0gICAgWHNGcmVlKGJ1
ZmZlcik7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZCAqCi1YZW5zdG9yZVdhdGNoKGNv
bnN0IGNoYXIgKnBhdGgsIEhBTkRMRSBldmVudCwgSEFORExFIGVycm9yZXZlbnQpCi17Ci0gCi0g
ICAgaWYgKHdtaSA9PSBOVUxMKSB7Ci0gICAgICAgIE91dHB1dERlYnVnU3RyaW5nKCJXTUkgaXMg
bnVsbFxuIik7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSAgICBpZiAoV21pU2Vzc2lv
bkhhbmRsZSA9PSBOVUxMKSB7Ci0gICAgICAgIE91dHB1dERlYnVnU3RyaW5nKCJTZXNzaW9uIGlz
IG51bGxcbiIpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgcmV0dXJuIFdtaVNl
c3Npb25XYXRjaCgmd21pLCAmV21pU2Vzc2lvbkhhbmRsZSwgcGF0aCwgZXZlbnQsIGVycm9yZXZl
bnQpOwotfQotCi1CT09MCi1YZW5zdG9yZVVud2F0Y2godm9pZCAqd2F0Y2gpCi17Ci0gICAgcmV0
dXJuIFdtaVNlc3Npb25VbndhdGNoKCZ3bWksICZXbWlTZXNzaW9uSGFuZGxlLCB3YXRjaCk7Ci19
Ci0KLXZvaWQgCi1YZW5zdG9yZUZyZWUodm9pZCAqdG9mcmVlKQotewotICAgIHJldHVybiBYc0Zy
ZWUodG9mcmVlKTsKLX0KLQpkaWZmIC0tZ2l0IGEvc3JjL3dpbjMyc3R1YmFnZW50L1hTQWNjZXNz
b3IuaCBiL3NyYy93aW4zMnN0dWJhZ2VudC9YU0FjY2Vzc29yLmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDJlZDQxYjAuLjAwMDAwMDAKLS0tIGEvc3JjL3dpbjMyc3R1YmFnZW50L1hT
QWNjZXNzb3IuaAorKysgL2Rldi9udWxsCkBAIC0xLDEyNiArMCwwIEBACi0vKiBDb3B5cmlnaHQg
KGMpIENpdHJpeCBTeXN0ZW1zIEluYy4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcywgCi0gKiB3
aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIAotICog
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKLSAqCi0gKiAqICAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSAKLSAqICAgICBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIAotICogICAg
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogKiAgIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgCi0gKiAgICAgY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSAKLSAqICAgICBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgCi0gKiAgICAgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgCi0gKiBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCAKLSAqIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIAotICog
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
Ci0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBP
UiAKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCAKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIAotICogQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIAotICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyAKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCAKLSAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyAKLSAqIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIAotICogU1VDSCBE
QU1BR0UuCi0gKi8KLQotCi0jaWZuZGVmIF9YU0FDQ0VTU09SX0gKLSNkZWZpbmUgX1hTQUNDRVNT
T1JfSAotCi0jaW5jbHVkZSA8c3RyaW5nPgotI2luY2x1ZGUgIndpbmRvd3MuaCIKLQotCi11c2lu
ZyBuYW1lc3BhY2Ugc3RkOwotCi0jZGVmaW5lIE1BWF9YRU5CVVNfUEFUSCAyNTYKLQotI2lmZGVm
IEFNRDY0Ci10eXBlZGVmIGxvbmcgbG9uZyBzc2l6ZV90OwotI2Vsc2UKLXR5cGVkZWYgbG9uZyBz
c2l6ZV90OwotI2VuZGlmCi0KLUJPT0wgSW5pdFhTQWNjZXNzb3IoKTsKLUJPT0wgU2h1dGRvd25Y
U0FjY2Vzc29yKCk7Ci1zc2l6ZV90IFhlbnN0b3JlUmVhZChjb25zdCBjaGFyICpwYXRoLCBjaGFy
ICoqdmFsdWUpOwotaW50IFhlbnN0b3JlUmVtb3ZlKGNvbnN0IGNoYXIgKnBhdGgpOwotaW50IFhl
bnN0b3JlUHJpbnRmKGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKLWlu
dCBYZW5zdG9yZVdyaXRlKGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IHZvaWQgKmRhdGEsIHNpemVf
dCBsZW4pOwotQk9PTCBYZW5zdG9yZUtpY2tYYXBpKHZvaWQpOwotdm9pZCAqWGVuc3RvcmVXYXRj
aChjb25zdCBjaGFyICpwYXRoLCBIQU5ETEUgZXZlbnQsIEhBTkRMRSBlcnJvcmV2ZW50KTsKLUJP
T0wgWGVuc3RvcmVVbndhdGNoKHZvaWQgKndhdGNoKTsKLWludCBMaXN0ZW5TdXNwZW5kKEhBTkRM
RSBldnQsIEhBTkRMRSBlcnJvcmV2ZW50KTsKLXZvaWQgR2V0WGVuVGltZShGSUxFVElNRSAqcmVz
KTsKLXZvaWQgWHNMb2coY29uc3QgY2hhciAqZm10LCAuLi4pOwotdm9pZCBYZW5zdG9yZUZyZWUo
dm9pZCAqdG9mcmVlKTsKLXZvaWQgKlhzQWxsb2Moc2l6ZV90IHNpemUpOwotdm9pZCBYc0ZyZWUo
Y29uc3Qgdm9pZCAqYnVmKTsKLWJvb2wgWGVuc3RvcmVSZWFkRHdvcmQoY29uc3QgY2hhciAqIHBh
dGgsIERXT1JEICp2YWx1ZSk7Ci0KLSNpZiBEQkcKLQotI2luY2x1ZGUgPHN0ZGFyZy5oPiAgICAg
ICAgIC8vIHZhX2xpc3QKLSNpbmNsdWRlIDxzdGRpby5oPiAgICAgICAgICAvLyB2c3ByaW50Zgot
I2luY2x1ZGUgPG1hbGxvYy5oPgotCi0jaW5jbHVkZSA8YXNzZXJ0Lmg+Ci0jaW5jbHVkZSA8dGNo
YXIuaD4KLQotX19pbmxpbmUgdm9pZCBEZWJ1Z1ByaW50KCBJTiBMUENUU1RSIG1zZywgSU4gLi4u
ICkKLXsKLSAgICBUQ0hBUiAgIGJ1ZmZlclsyNTZdOwotICAgIGludCAgICAgcmVzOwotICAgIHZh
X2xpc3QgYXJnczsKLQotICAgIHZhX3N0YXJ0KCBhcmdzLCBtc2cgKTsKLSNwcmFnbWEgcHJlZmFz
dChzdXBwcmVzczogMjg3MTksICJZZXMsIHdlIGFsbCBrbm93IF92c25wcmludGYgaXMgYmFubmVk
IGluIGRyaXZlcnMsIHRoaXMgaXMgdXNlciBsZXZlbCIpOwotICAgIHJlcyA9IF92c250cHJpbnRm
KGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlcikgLyBzaXplb2YoYnVmZmVyWzBdKSwgbXNnLCBhcmdzKTsK
LSAgICBpZiAocmVzID49IDApCi0gICAgewotICAgICAgICBPdXRwdXREZWJ1Z1N0cmluZyggYnVm
ZmVyICk7Ci0gICAgfQotICAgIGVsc2UKLSAgICB7Ci0gICAgICAgIFRDSEFSICpwOwotICAgICAg
ICBpbnQgY291bnQ7Ci0KLSAgICAgICAgY291bnQgPSA1MTI7Ci0gICAgICAgIGZvciAoOzspIHsK
LSAgICAgICAgICAgIHAgPSAoVENIQVIgKiltYWxsb2MoY291bnQgKiBzaXplb2YgKFRDSEFSKSk7
Ci0gICAgICAgICAgICBpZiAoIXApIHsKLSAgICAgICAgICAgICAgICBPdXRwdXREZWJ1Z1N0cmlu
ZyhfVCgiT3V0IG9mIG1lbW9yeSBmb3IgZGVidWcgbWVzc2FnZSFcbiIpKTsKLSAgICAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJlcyA9IF92c250cHJpbnRm
KHAsIGNvdW50LCBtc2csIGFyZ3MpOwotICAgICAgICAgICAgaWYgKHJlcyA+PSAwKQotICAgICAg
ICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICBmcmVlKHApOwotICAgICAgICAgICAgY291
bnQgKz0gMjU2OwotICAgICAgICB9Ci0gICAgICAgIGlmIChwKSB7Ci0gICAgICAgICAgICBPdXRw
dXREZWJ1Z1N0cmluZyggcCApOwotICAgICAgICAgICAgZnJlZShwKTsKLSAgICAgICAgfQotICAg
IH0KLSAgICB2YV9lbmQoYXJncyk7Ci19Ci0KLSNkZWZpbmUgREJHUFJJTlQoX3hfKSBEZWJ1Z1By
aW50IF94XwotI2RlZmluZSBBU1NFUlQgIGFzc2VydAotCi0jZWxzZQotCi0jZGVmaW5lIERCR1BS
SU5UKF94XykgCi0jZGVmaW5lIEFTU0VSVCAgCi0KLSNlbmRpZiAvLyBEQkcKLQotI2VuZGlmCmRp
ZmYgLS1naXQgYS9zcmMvd2luMzJzdHViYWdlbnQvWFNlcnZpY2UuY3BwIGIvc3JjL3dpbjMyc3R1
YmFnZW50L1hTZXJ2aWNlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWZiYjEz
OC4uMDAwMDAwMAotLS0gYS9zcmMvd2luMzJzdHViYWdlbnQvWFNlcnZpY2UuY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsMTA0NCArMCwwIEBACi0vKiBDb3B5cmlnaHQgKGMpIENpdHJpeCBTeXN0ZW1z
IEluYy4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcywgCi0gKiB3aXRoIG9yIHdpdGhvdXQgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIAotICogdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlIG1ldDoKLSAqCi0gKiAqICAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSAKLSAqICAgICBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIAotICogICAgIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogKiAgIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgCi0gKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSAKLSAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgCi0gKiAgICAgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgCi0gKiBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCAKLSAqIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIAotICogTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgCi0gKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiAKLSAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCAKLSAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIAot
ICogQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IAotICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyAKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCAKLSAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyAKLSAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIAotICogU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lu
Y2x1ZGUgPHdpbmRvd3MuaD4KLSNpbmNsdWRlIDxzaGxvYmouaD4KLSNpbmNsdWRlIDxwcm9jZXNz
Lmg+Ci0jaW5jbHVkZSAicG93cnByb2YuaCIKLSNpbmNsdWRlIDx3aW51c2VyLmg+Ci0jaW5jbHVk
ZSAic3RkYWZ4LmgiCi0jaW5jbHVkZSAiWFNBY2Nlc3Nvci5oIgotI2luY2x1ZGUgIldNSUFjY2Vz
c29yLmgiCi0jaW5jbHVkZSAiWFNlcnZpY2UuaCIKLQotI2luY2x1ZGUgIm1lc3NhZ2VzLmgiCi0K
LSNpbmNsdWRlIDxzZXR1cGFwaS5oPgotI2luY2x1ZGUgPGNmZ21ncjMyLmg+Ci0jaW5jbHVkZSA8
aW5pdGd1aWQuaD4KLSNpbmNsdWRlIDxkZXZndWlkLmg+Ci0jaW5jbHVkZSA8d2ludHJ1c3QuaD4K
LSNpbmNsdWRlIDxzaGVsbGFwaS5oPgotCi0jaWZkZWYgX1dJTjY0Ci0jZGVmaW5lIFhFTlRPT0xT
X0lOU1RBTExfUkVHX0tFWSAgICJTT0ZUV0FSRVxcV293NjQzMk5vZGVcXENpdHJpeFxcWGVuVG9v
bHMiCi0jZGVmaW5lIFhFTlRPT0xTX0lOU1RBTExfUkVHX0tFWTY0ICJTT0ZUV0FSRVxcQ2l0cml4
XFxYZW5Ub29scyIKLSNlbHNlCi0jZGVmaW5lIFhFTlRPT0xTX0lOU1RBTExfUkVHX0tFWSAgICJT
T0ZUV0FSRVxcQ2l0cml4XFxYZW5Ub29scyIKLSNlbmRpZgotCi1TRVJWSUNFX1NUQVRVUyBTZXJ2
aWNlU3RhdHVzOyAKLVNFUlZJQ0VfU1RBVFVTX0hBTkRMRSBoU3RhdHVzOyAgCi0KLXN0YXRpYyBI
QU5ETEUgaFNlcnZpY2VFeGl0RXZlbnQ7Ci1zdGF0aWMgVUxPTkcgV2luZG93c1ZlcnNpb247Ci1z
dGF0aWMgQk9PTCBMZWdhY3lIYWwgPSBGQUxTRTsKLXN0YXRpYyBISU5TVEFOQ0UgbG9jYWxfaGlu
c3RhbmNlOwotCi1IQU5ETEUgZXZlbnRMb2c7Ci0jZGVmaW5lIFNJWkVDSEFSUyh4KSAoc2l6ZW9m
KCh4KSkvc2l6ZW9mKFRDSEFSKSkKLQotLy8gSW50ZXJuYWwgcm91dGluZXMKLXN0YXRpYyBEV09S
RCBXSU5BUEkgU2VydmljZUNvbnRyb2xIYW5kbGVyKERXT1JEIHJlcXVlc3QsIERXT1JEIGV2dFR5
cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMUFZPSUQsIExQ
Vk9JRCk7Ci1zdGF0aWMgdm9pZCBTZXJ2aWNlQ29udHJvbE1hbmFnZXJVcGRhdGUoRFdPUkQgZHdF
eGl0Q29kZSwgRFdPUkQgZHdTdGF0ZSk7Ci1zdGF0aWMgdm9pZCBXSU5BUEkgU2VydmljZU1haW4o
aW50IGFyZ2MsIGNoYXIqKiBhcmd2KTsKLXN0YXRpYyB2b2lkIEdldFdpbmRvd3NWZXJzaW9uKCk7
Ci0KLXZvaWQgUHJpbnRFcnJvcihjb25zdCBjaGFyICpmdW5jLCBEV09SRCBlcnIpCi17Ci0gICAg
TFBWT0lEIGxwTXNnQnVmOwotICAgIEZvcm1hdE1lc3NhZ2UoCi0gICAgICAgIEZPUk1BVF9NRVNT
QUdFX0FMTE9DQVRFX0JVRkZFUiB8Ci0gICAgICAgIEZPUk1BVF9NRVNTQUdFX0ZST01fU1lTVEVN
LAotICAgICAgICBOVUxMLAotICAgICAgICBlcnIsCi0gICAgICAgIE1BS0VMQU5HSUQoTEFOR19O
RVVUUkFMLCBTVUJMQU5HX0RFRkFVTFQpLAotICAgICAgICAoTFBUU1RSKSAmbHBNc2dCdWYsCi0g
ICAgICAgIDAsCi0gICAgICAgIE5VTEwpOwotICAgIE91dHB1dERlYnVnU3RyaW5nKChMUFRTVFIp
bHBNc2dCdWYpOwotICAgIFhzTG9nKCIlcyBmYWlsZWQ6ICVzICgleCkiLCBmdW5jLCBscE1zZ0J1
ZiwgZXJyKTsKLSAgICBYZW5zdG9yZVByaW50ZigiY29udHJvbC9lcnJvciIsICIlcyBmYWlsZWQ6
ICVzICgleCkiLCBmdW5jLCBscE1zZ0J1ZiwgZXJyKTsKLSAgICBMb2NhbEZyZWUobHBNc2dCdWYp
OwotfQotCi12b2lkIFByaW50RXJyb3IoY29uc3QgY2hhciAqZnVuYykKLXsKLSAgICBQcmludEVy
cm9yKGZ1bmMsIEdldExhc3RFcnJvcigpKTsKLX0KLQotdm9pZCBQcmludFVzYWdlKCkKLXsKLSAg
ICBwcmludGYoIlVzYWdlOiB4ZW5zZXJ2aWNlIFstdV1cbiIpOwotCi0gICAgcHJpbnRmKCJcdCAt
dTogdW5pbnN0YWxsIHNlcnZpY2VcbiIpOwotfQotCi0KLQotc3RydWN0IHdhdGNoX2V2ZW50IHsK
LSAgICBIQU5ETEUgZXZlbnQ7Ci0gICAgdm9pZCAqd2F0Y2g7Ci19OwotCi1zdGF0aWMgdm9pZAot
UmVsZWFzZVdhdGNoKHN0cnVjdCB3YXRjaF9ldmVudCAqd2UpCi17Ci0gICAgaWYgKHdlID09IE5V
TEwpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAod2UtPmV2ZW50ICE9IElOVkFMSURfSEFORExF
X1ZBTFVFKQotICAgICAgICBDbG9zZUhhbmRsZSh3ZS0+ZXZlbnQpOwotICAgIGlmICh3ZS0+d2F0
Y2gpCi0gICAgICAgIFhlbnN0b3JlVW53YXRjaCh3ZS0+d2F0Y2gpOwotICAgIGZyZWUod2UpOwot
fQotCi1zdGF0aWMgY2hhciAqIEluaXRTdHJpbmcoY29uc3QgY2hhciAqIGlucHV0c3RyaW5nKQot
ewotICAgIGNoYXIgKm91dHB1dHN0cmluZyA9IChjaGFyICopY2FsbG9jKChzdHJsZW4oaW5wdXRz
dHJpbmcpKzEpLHNpemVvZihjaGFyKSk7Ci0gICAgaWYgKG91dHB1dHN0cmluZyA9PSBOVUxMKQot
ICAgICAgICBnb3RvIGZhaWxhbGxvYzsKLSAgICBzdHJjcHkob3V0cHV0c3RyaW5nLCBpbnB1dHN0
cmluZyk7Ci0gICAgcmV0dXJuIG91dHB1dHN0cmluZzsgCi0KLWZhaWxhbGxvYzoKLSAgICBYc0xv
ZyhfX0ZVTkNUSU9OX18gIiA6IEZhaWwgbWFsbG9jIik7Ci0gICAgcmV0dXJuIE5VTEw7Ci19Ci0K
LXN0YXRpYyB2b2lkIEZyZWVTdHJpbmcoY29uc3QgY2hhciAqc3RyaW5nKSAKLXsKLSAgICBmcmVl
KCh2b2lkICopc3RyaW5nKTsKLX0KLQotc3RhdGljIGNoYXIqIFByaW50ZlN0cmluZyhjb25zdCBj
aGFyICpmbXQsIC4uLil7Ci0gICAgdmFfbGlzdCBsOwotICAgIHZhX3N0YXJ0KGwsIGZtdCk7Ci0g
ICAgaW50IG51bWNoYXJzID0gX3ZzY3ByaW50ZihmbXQsIGwpOwotICAgIGNoYXIgKm91dHB1dHN0
cmluZyA9IChjaGFyICopY2FsbG9jKG51bWNoYXJzICsgMSwgc2l6ZW9mKGNoYXIpKTsKLQotICAg
IGlmIChvdXRwdXRzdHJpbmcgPT0gTlVMTCkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBf
dnNucHJpbnRmKG91dHB1dHN0cmluZywgbnVtY2hhcnMsIGZtdCwgbCk7Ci0gICAgcmV0dXJuIG91
dHB1dHN0cmluZzsKLX0KLQotc3RhdGljIHN0cnVjdCB3YXRjaF9ldmVudCAqCi1Fc3RhYmxpc2hX
YXRjaChjb25zdCBjaGFyICpwYXRoLCBIQU5ETEUgZXJyb3JldmVudCkKLXsKLSAgICBzdHJ1Y3Qg
d2F0Y2hfZXZlbnQgKndlOwotICAgIERXT1JEIGVycjsKLSAgICBYc0xvZygiRXN0YWJsaXNoIHdh
dGNoICVzIixwYXRoKTsKLSAgICB3ZSA9IChzdHJ1Y3Qgd2F0Y2hfZXZlbnQgKiltYWxsb2Moc2l6
ZW9mKCp3ZSkpOwotICAgIGlmICghd2UpIHsKLSAgICAgICAgU2V0TGFzdEVycm9yKEVSUk9SX05P
VF9FTk9VR0hfTUVNT1JZKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotICAgIG1lbXNl
dCh3ZSwgMCwgc2l6ZW9mKCp3ZSkpOwotICAgIHdlLT53YXRjaCA9IE5VTEw7Ci0gICAgd2UtPmV2
ZW50ID0gQ3JlYXRlRXZlbnQoTlVMTCwgRkFMU0UsIEZBTFNFLCBOVUxMKTsKLSAgICBpZiAod2Ut
PmV2ZW50ICE9IElOVkFMSURfSEFORExFX1ZBTFVFKQotICAgICAgICB3ZS0+d2F0Y2ggPSBYZW5z
dG9yZVdhdGNoKHBhdGgsIHdlLT5ldmVudCwgZXJyb3JldmVudCk7Ci0gICAgaWYgKHdlLT53YXRj
aCA9PSBOVUxMKSB7Ci0gICAgICAgIE91dHB1dERlYnVnU3RyaW5nKCJXYXRjaCBpcyBudWxsXG4i
KTsKLSAgICAgICAgZXJyID0gR2V0TGFzdEVycm9yKCk7Ci0gICAgICAgIFJlbGVhc2VXYXRjaCh3
ZSk7Ci0gICAgICAgIFNldExhc3RFcnJvcihlcnIpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAg
ICB9Ci0gICAgcmV0dXJuIHdlOwotfQotCi1zdHJ1Y3Qgd2F0Y2hfZmVhdHVyZSB7Ci0gICAgc3Ry
dWN0IHdhdGNoX2V2ZW50ICp3YXRjaDsKLSAgICBjb25zdCBjaGFyICpmZWF0dXJlX2ZsYWc7Ci0g
ICAgY29uc3QgY2hhciAqbmFtZTsKLSAgICBCT09MICgqaGFuZGxlcikodm9pZCAqKTsKLSAgICB2
b2lkICpjdHg7Ci19OwotCi0jZGVmaW5lIE1BWF9GRUFUVVJFUyAxMAotc3RydWN0IHdhdGNoX2Zl
YXR1cmVfc2V0IHsKLSAgICBzdHJ1Y3Qgd2F0Y2hfZmVhdHVyZSBmZWF0dXJlc1tNQVhfRkVBVFVS
RVNdOwotICAgIHVuc2lnbmVkIG5yX2ZlYXR1cmVzOwotfTsKLQotc3RhdGljIEJPT0wKLUFkZEZl
YXR1cmUoc3RydWN0IHdhdGNoX2ZlYXR1cmVfc2V0ICp3ZnMsIGNvbnN0IGNoYXIgKnBhdGgsCi0g
ICAgICAgICAgIGNvbnN0IGNoYXIgKmZsYWcsIGNvbnN0IGNoYXIgKm5hbWUsCi0gICAgICAgICAg
IEJPT0wgKCpoYW5kbGVyKSh2b2lkICopLCB2b2lkICpjdHgsIEhBTkRMRSBlcnJvcmV2ZW50KQot
ewotICAgIHVuc2lnbmVkIG47Ci0gICAgaWYgKHdmcy0+bnJfZmVhdHVyZXMgPT0gTUFYX0ZFQVRV
UkVTKQotICAgICAgICBnb3RvIGZhaWxmZWF0dXJlczsKLQotICAgIG4gPSB3ZnMtPm5yX2ZlYXR1
cmVzOwotCi0gICAgd2ZzLT5mZWF0dXJlc1tuXS53YXRjaCA9IEVzdGFibGlzaFdhdGNoKHBhdGgs
IGVycm9yZXZlbnQpOwotICAgIGlmICh3ZnMtPmZlYXR1cmVzW25dLndhdGNoID09IE5VTEwpCi0g
ICAgICAgIGdvdG8gZmFpbHdhdGNoOwotICAgIAotICAgIHdmcy0+ZmVhdHVyZXNbbl0uZmVhdHVy
ZV9mbGFnID0gZmxhZzsKLSAgICB3ZnMtPmZlYXR1cmVzW25dLmhhbmRsZXIgPSBoYW5kbGVyOwot
ICAgIHdmcy0+ZmVhdHVyZXNbbl0uY3R4ID0gY3R4OwotICAgIHdmcy0+ZmVhdHVyZXNbbl0ubmFt
ZSA9IEluaXRTdHJpbmcobmFtZSk7Ci0gICAgaWYgKHdmcy0+ZmVhdHVyZXNbbl0ubmFtZSA9PSBO
VUxMKQotICAgICAgICBnb3RvIGZhaWxuYW1lOwotICAgIHdmcy0+bnJfZmVhdHVyZXMrKzsKLSAg
ICByZXR1cm4gdHJ1ZTsKLQotZmFpbG5hbWU6Ci0gICAgUHJpbnRFcnJvcigiRmFpbGVkIHRvIGFs
bG9jYXRlIHN0cmluZyIpOwotZmFpbHdhdGNoOgotICAgIFByaW50RXJyb3IoIkVzdGFibGlzaFdh
dGNoKCkgZm9yIEFkZEZlYXR1cmUoKSIpOwotZmFpbGZlYXR1cmVzOgotICAgIFhzTG9nKCJUb28g
bWFueSBmZWF0dXJlcyIpOwotICAgIFByaW50RXJyb3IoIlRvbyBtYW55IGZlYXR1cmVzISIsIEVS
Uk9SX0lOVkFMSURfRlVOQ1RJT04pOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQotc3RhdGljIHZv
aWQgUmVtb3ZlRmVhdHVyZXMoc3RydWN0IHdhdGNoX2ZlYXR1cmVfc2V0ICp3ZnMpIHsKLSAgICB1
bnNpZ25lZCB4OwotICAgIGZvciAoeCA9IDA7IHggPCB3ZnMtPm5yX2ZlYXR1cmVzOyB4KyspIHsK
LSAgICAgICAgUmVsZWFzZVdhdGNoKHdmcy0+ZmVhdHVyZXNbeF0ud2F0Y2gpOwotICAgICAgICB3
ZnMtPmZlYXR1cmVzW3hdLndhdGNoID0gTlVMTDsKLSAgICAgICAgRnJlZVN0cmluZyh3ZnMtPmZl
YXR1cmVzW3hdLm5hbWUpOwotICAgICAgICBYZW5zdG9yZVJlbW92ZSh3ZnMtPmZlYXR1cmVzW3hd
LmZlYXR1cmVfZmxhZyk7Ci0gICAgfQotICAgIHdmcy0+bnJfZmVhdHVyZXMgPSAwOwotfQotCi1z
dGF0aWMgQk9PTAotQWR2ZXJ0aXNlRmVhdHVyZXMoc3RydWN0IHdhdGNoX2ZlYXR1cmVfc2V0ICp3
ZnMpCi17Ci0gICAgdW5zaWduZWQgeDsKLSAgICBmb3IgKHggPSAwOyB4IDwgd2ZzLT5ucl9mZWF0
dXJlczsgeCsrKSB7Ci0gICAgICAgIGlmICh3ZnMtPmZlYXR1cmVzW3hdLmZlYXR1cmVfZmxhZyAh
PSBOVUxMKQotICAgICAgICAgICAgaWYgKFhlbnN0b3JlUHJpbnRmKHdmcy0+ZmVhdHVyZXNbeF0u
ZmVhdHVyZV9mbGFnLCAiMSIpKXsKLSAgICAgICAgICAgICAgICBYc0xvZygiRmFpbGVkIHRvIGFk
dmVydGlzZSAlcyIsd2ZzLT5mZWF0dXJlc1t4XS5uYW1lKTsKLSAgICAgICAgICAgIH0KLSAgICB9
Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLQotdm9pZCBTZXJ2aWNlVW5pbnN0YWxsKCkKLXsKLSAg
ICBTQ19IQU5ETEUgICBoU3ZjOwotICAgIFNDX0hBTkRMRSAgIGhNZ3I7Ci0gICAgCi0gICAgaE1n
ciA9IE9wZW5TQ01hbmFnZXIoTlVMTCwgTlVMTCwgU0NfTUFOQUdFUl9BTExfQUNDRVNTKTsKLQot
ICAgIGlmICggaE1nciApCi0gICAgewotICAgICAgICBoU3ZjID0gT3BlblNlcnZpY2UoaE1nciwg
U1ZDX05BTUUsIFNFUlZJQ0VfQUxMX0FDQ0VTUyk7Ci0KLSAgICAgICAgaWYgKGhTdmMpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgICAvLyB0cnkgdG8gc3RvcCB0aGUgc2VydmljZQotICAgICAgICAg
ICAgIGlmICggQ29udHJvbFNlcnZpY2UoIGhTdmMsIFNFUlZJQ0VfQ09OVFJPTF9TVE9QLCAmU2Vy
dmljZVN0YXR1cyApICkKLSAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcHJpbnRmKCJT
dG9wcGluZyAlcy4iLCBTVkNfRElTUExBWU5BTUUpOwotICAgICAgICAgICAgICAgIFNsZWVwKCAx
MDAwICk7Ci0KLSAgICAgICAgICAgICAgICB3aGlsZSAoIFF1ZXJ5U2VydmljZVN0YXR1cyggaFN2
YywgJlNlcnZpY2VTdGF0dXMgKSApCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
ICAgICBpZiAoIFNlcnZpY2VTdGF0dXMuZHdDdXJyZW50U3RhdGUgPT0gU0VSVklDRV9TVE9QX1BF
TkRJTkcgKQotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBw
cmludGYoIi4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwKCAxMDAwICk7Ci0gICAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAg
aWYgKCBTZXJ2aWNlU3RhdHVzLmR3Q3VycmVudFN0YXRlID09IFNFUlZJQ0VfU1RPUFBFRCApCi0g
ICAgICAgICAgICAgICAgICAgIHByaW50ZigiXG4lcyBzdG9wcGVkLlxuIiwgU1ZDX0RJU1BMQVlO
QU1FICk7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBwcmludGYo
IlxuJXMgZmFpbGVkIHRvIHN0b3AuXG4iLCBTVkNfRElTUExBWU5BTUUgKTsKLSAgICAgICAgIH0K
LQotICAgICAgICAgLy8gbm93IHJlbW92ZSB0aGUgc2VydmljZQotICAgICAgICAgaWYgKCBEZWxl
dGVTZXJ2aWNlKGhTdmMpICkKLSAgICAgICAgICAgIHByaW50ZigiJXMgdW5pbnN0YWxsZWQuXG4i
LCBTVkNfRElTUExBWU5BTUUgKTsKLSAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHByaW50Zigi
VW5hYmxlIHRvIHVuaW5zdGFsbCAtICVkXG4iLCBHZXRMYXN0RXJyb3IoKSk7Ci0KLSAgICAgICAg
IENsb3NlU2VydmljZUhhbmRsZShoU3ZjKTsKLQotICAgICAgfQotICAgICAgZWxzZQotICAgICAg
ICAgcHJpbnRmKCJVbmFibGUgdG8gb3BlbiBzZXJ2aWNlIC0gJWRcbiIsIEdldExhc3RFcnJvcigp
KTsKLQotICAgICAgQ2xvc2VTZXJ2aWNlSGFuZGxlKGhNZ3IpOwotICAgfQotICAgZWxzZQotICAg
ICAgcHJpbnRmKCJVbmFibGUgdG8gb3BlbiBzY20gLSAlZFxuIiwgR2V0TGFzdEVycm9yKCkpOwot
Ci19Ci0KLQotaW50IF9fc3RkY2FsbAotV2luTWFpbihISU5TVEFOQ0UgaEluc3RhbmNlLCBISU5T
VEFOQ0UgaWdub3JlLAotICAgICAgICBMUFNUUiBscENtZExpbmUsIGludCBuQ21kU2hvdykKLXsK
LSAgICBsb2NhbF9oaW5zdGFuY2UgPSBoSW5zdGFuY2U7Ci0KLSAgICBpZiAoc3RybGVuKGxwQ21k
TGluZSkgPT0gMCkgewotICAgICAgICBTRVJWSUNFX1RBQkxFX0VOVFJZIFNlcnZpY2VUYWJsZVsy
XTsKLSAgICAgICAgU2VydmljZVRhYmxlWzBdLmxwU2VydmljZU5hbWUgPSBTVkNfTkFNRTsKLSAg
ICAgICAgU2VydmljZVRhYmxlWzBdLmxwU2VydmljZVByb2MgPSAoTFBTRVJWSUNFX01BSU5fRlVO
Q1RJT04pU2VydmljZU1haW47Ci0KLSAgICAgICAgU2VydmljZVRhYmxlWzFdLmxwU2VydmljZU5h
bWUgPSBOVUxMOwotICAgICAgICBTZXJ2aWNlVGFibGVbMV0ubHBTZXJ2aWNlUHJvYyA9IE5VTEw7
Ci0KLSAgICAgICAgREJHUFJJTlQoKCJYZW5TdmM6IHN0YXJ0aW5nIGN0cmwgZGlzcGF0Y2hlciAi
KSk7Ci0KLSAgICAgICAgLy8gU3RhcnQgdGhlIGNvbnRyb2wgZGlzcGF0Y2hlciB0aHJlYWQgZm9y
IG91ciBzZXJ2aWNlCi0gICAgICAgIGlmICghU3RhcnRTZXJ2aWNlQ3RybERpc3BhdGNoZXIoU2Vy
dmljZVRhYmxlKSkKLSAgICAgICAgewotICAgICAgICAgICAgaW50IGVyciA9IEdldExhc3RFcnJv
cigpOwotICAgICAgICAgICAgaWYgKEdldExhc3RFcnJvcigpID09IEVSUk9SX0ZBSUxFRF9TRVJW
SUNFX0NPTlRST0xMRVJfQ09OTkVDVCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBE
QkdQUklOVCgoIlhlblN2YzogdW5hYmxlIHRvIHN0YXJ0IGN0cmwgZGlzcGF0Y2hlciAtICVkIiwg
R2V0TGFzdEVycm9yKCkpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBlbHNl
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIC8vIFdlIGdldCBoZXJlIHdoZW4gdGhlIHNlcnZpY2Ug
aXMgc2h1dCBkb3duLgotICAgICAgICB9Ci0gICAgfSBlbHNlIGlmICghc3RyY21wKGxwQ21kTGlu
ZSwgIi11IikgfHwgIXN0cmNtcChscENtZExpbmUsICJcIi11XCIiKSkgewotICAgICAgICBTZXJ2
aWNlVW5pbnN0YWxsKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgUHJpbnRVc2FnZSgpOwotICAg
IH0KLQotICAgIHJldHVybiAwOwotfQotCi12b2lkIEFjcXVpcmVTeXN0ZW1Qcml2aWxlZ2UoTFBD
VFNUUiBuYW1lKQotewotICAgIEhBTkRMRSB0b2tlbjsKLSAgICBUT0tFTl9QUklWSUxFR0VTIHRr
cDsKLSAgICBEV09SRCBlcnI7Ci0KLSAgICBMb29rdXBQcml2aWxlZ2VWYWx1ZShOVUxMLCBuYW1l
LCAmdGtwLlByaXZpbGVnZXNbMF0uTHVpZCk7Ci0gICAgdGtwLlByaXZpbGVnZUNvdW50ID0gMTsK
LSAgICB0a3AuUHJpdmlsZWdlc1swXS5BdHRyaWJ1dGVzID0gU0VfUFJJVklMRUdFX0VOQUJMRUQ7
Ci0gICAgaWYgKCFPcGVuUHJvY2Vzc1Rva2VuKEdldEN1cnJlbnRQcm9jZXNzKCksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgIFRPS0VOX0FESlVTVF9QUklWSUxFR0VTfFRPS0VOX1FVRVJZLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAmdG9rZW4pKSB7Ci0gICAgICAgIERCR1BSSU5UKCgi
RmFpbGVkIHRvIG9wZW4gbG9jYWwgdG9rZW4uXG4iKSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAg
QWRqdXN0VG9rZW5Qcml2aWxlZ2VzKHRva2VuLCBGQUxTRSwgJnRrcCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIE5VTEwsIDAsIE5VTEwpOwotICAgICAgICBlcnIgPSBHZXRMYXN0RXJy
b3IoKTsKLSAgICAgICAgaWYgKGVyciAhPSBFUlJPUl9TVUNDRVNTKSB7Ci0gICAgICAgICAgICBQ
cmludEVycm9yKCJBZGp1c3RUb2tlblByaXZpbGVnZXMiLCBlcnIpOwotICAgICAgICB9Ci0gICAg
fQotfQotCi1zdGF0aWMgdm9pZCBBY3F1aXJlU3lzdGVtU2h1dGRvd25Qcml2aWxlZ2Uodm9pZCkK
LXsKLSAgICBBY3F1aXJlU3lzdGVtUHJpdmlsZWdlKFNFX1NIVVRET1dOX05BTUUpOwotfQotCi1l
bnVtIFhTaHV0ZG93blR5cGUgewotICAgIFhTaHV0ZG93blBvd2Vyb2ZmLAotICAgIFhTaHV0ZG93
blJlYm9vdCwKLSAgICBYU2h1dGRvd25TdXNwZW5kLAotICAgIFhTaHV0ZG93blMzCi19OwotCi1z
dGF0aWMgQk9PTCBtYXliZVJlYm9vdCh2b2lkICpjdHgpCi17Ci0gICAgY2hhciAqc2h1dGRvd25f
dHlwZTsKLSAgICBCT09MIHJlczsKLSAgICBlbnVtIFhTaHV0ZG93blR5cGUgdHlwZTsKLSAgICBp
bnQgY250ciA9IDA7Ci0KLSAgICBYc0xvZygiQ2hlY2sgaWYgd2UgbmVlZCB0byBzaHV0ZG93biIp
OwotCi0gICAgaWYgKFhlbnN0b3JlUmVhZCgiY29udHJvbC9zaHV0ZG93biIsICZzaHV0ZG93bl90
eXBlKSA8IDApIHsKLSAgICAgICAgWHNMb2coIk5vIG5lZWQgdG8gc2h1dGRvd24iKTsKLSAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIFhzTG9nKCJTaHV0ZG93biB0eXBlICVzXG4iLCBz
aHV0ZG93bl90eXBlKTsKLSAgICBpZiAoc3RyY21wKHNodXRkb3duX3R5cGUsICJwb3dlcm9mZiIp
ID09IDAgfHwKLSAgICAgICAgc3RyY21wKHNodXRkb3duX3R5cGUsICJoYWx0IikgPT0gMCkgewot
ICAgICAgICB0eXBlID0gWFNodXRkb3duUG93ZXJvZmY7Ci0gICAgfSBlbHNlIGlmIChzdHJjbXAo
c2h1dGRvd25fdHlwZSwgInJlYm9vdCIpID09IDApIHsKLSAgICAgICAgdHlwZSA9IFhTaHV0ZG93
blJlYm9vdDsKLSAgICB9IGVsc2UgaWYgKHN0cmNtcChzaHV0ZG93bl90eXBlLCAiaGliZXJuYXRl
IikgPT0gMCkgewotICAgICAgICB0eXBlID0gWFNodXRkb3duU3VzcGVuZDsKLSAgICB9IGVsc2Ug
aWYgKHN0cmNtcChzaHV0ZG93bl90eXBlLCAiczMiKSA9PSAwKSB7Ci0gICAgICAgIHR5cGUgPSBY
U2h1dGRvd25TMzsKLSAgICB9IGVsc2UgewotICAgICAgICBEQkdQUklOVCgoIkJhZCBzaHV0ZG93
biB0eXBlICVzXG4iLCBzaHV0ZG93bl90eXBlKSk7Ci0gICAgICAgIGdvdG8gb3V0OwotICAgIH0K
LQotICAgIFhzTG9nKCJSZXBvcnQgU2h1dGRvd24gRXZlbnQiKTsKLSAgICAvKiBXZSB0cnkgdG8g
c2h1dGRvd24gZXZlbiBpZiB0aGlzIGZhaWxzLCBzaW5jZSBpdCBtaWdodCB3b3JrCi0gICAgICAg
YW5kIGl0IGNhbid0IGRvIGFueSBoYXJtLiAqLwotICAgIEFjcXVpcmVTeXN0ZW1TaHV0ZG93blBy
aXZpbGVnZSgpOwotCi0gICAgaWYgKGV2ZW50TG9nKSB7Ci0gICAgICAgIERXT1JEIGV2ZW50SWQ7
Ci0KLSAgICAgICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgICAgIGNhc2UgWFNodXRkb3duUG93ZXJv
ZmY6Ci0gICAgICAgICAgICBldmVudElkID0gRVZFTlRfWEVOVVNFUl9QT1dFUk9GRjsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFhTaHV0ZG93blJlYm9vdDoKLSAgICAgICAgICAg
IGV2ZW50SWQgPSBFVkVOVF9YRU5VU0VSX1JFQk9PVDsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIFhTaHV0ZG93blN1c3BlbmQ6Ci0gICAgICAgICAgICBldmVudElkID0gRVZFTlRf
WEVOVVNFUl9ISUJFUk5BVEU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBYU2h1
dGRvd25TMzoKLSAgICAgICAgICAgIGV2ZW50SWQgPSBFVkVOVF9YRU5VU0VSX1MzOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBYc0xvZygiRG8gdGhlIHNodXRk
b3duIik7Ci0KLSAgICAvKiBkbyB0aGUgc2h1dGRvd24gKi8KLSAgICBzd2l0Y2ggKHR5cGUpIHsK
LSAgICBjYXNlIFhTaHV0ZG93blBvd2Vyb2ZmOgotICAgIGNhc2UgWFNodXRkb3duUmVib290Ogot
ICAgICAgICBpZiAoV2luZG93c1ZlcnNpb24gPj0gMHg1MDAgJiYgV2luZG93c1ZlcnNpb24gPCAw
eDYwMCkKLSAgICAgICAgewotICAgICAgICAgICAgLyogV2luZG93cyAyMDAwIEluaXRpYXRlU3lz
dGVtU2h1dGRvd25FeCBpcyBmdW5ueSBpbgotICAgICAgICAgICAgICAgdmFyaW91cyB3YXlzIChl
LmcuIHNvbWV0aW1lcyBmYWlscyB0byBwb3dlciBvZmYgYWZ0ZXIKLSAgICAgICAgICAgICAgIHNo
dXRkb3duLCBlc3BlY2lhbGx5IGlmIHRoZSBsb2NhbCB0ZXJtaW5hbCBpcyBsb2NrZWQsCi0gICAg
ICAgICAgICAgICBub3QgZG9pbmcgYW55dGhpbmcgaWYgdGhlcmUncyBub2JvZHkgbG9nZ2VkIG9u
LCBldGMuKS4KLSAgICAgICAgICAgICAgIEV4aXRXaW5kb3dzRXggc2VlbXMgdG8gYmUgbW9yZSBy
ZWxpYWJsZSwgc28gdXNlIGl0Ci0gICAgICAgICAgICAgICBpbnN0ZWFkLiAqLwotICAgICAgICAg
ICAgLyogWFhYIEkgZG9uJ3QgcmVhbGx5IHVuZGVyc3RhbmQgd2h5Ci0gICAgICAgICAgICAgICBJ
bml0aWF0ZVN5c3RlbVNodXRkb3duRXggYmVoYXZlcyBzbyBiYWRseS4gKi8KLSAgICAgICAgICAg
IC8qIElmIHRoaXMgaXMgYSBsZWdhY3kgaGFsIHRoZW4gdXNlIEVXWF9TSFVURE9XTiB3aGVuIHNo
dXR0aW5nCi0gICAgICAgICAgICAgICBkb3duIGluc3RlYWQgb2YgRVdYX1BPV0VST0ZGLiAqLwot
ICAgICAgICAvKiBTaW1pbGFyIHByb2JsZW0gb24gWFAuIFNodXRkb3duL1JlYm9vdCB3aWxsIGhh
bmcgdW50aWwgdGhlIFdlbGNvbWUKLSAgICAgICAgc2NyZWVuIHNjcmVlbnNhdmVyIGlzIGRpc21p
c3NlZCBieSB0aGUgZ3Vlc3QgKi8KLSNwcmFnbWEgd2FybmluZyAoZGlzYWJsZSA6IDI4MTU5KQot
ICAgICAgICAgICAgcmVzID0gRXhpdFdpbmRvd3NFeCgodHlwZSA9PSBYU2h1dGRvd25SZWJvb3Qg
PyAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVXWF9SRUJPT1QgOiAKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMZWdhY3lIYWwgPyAKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFV1hfU0hVVERPV04gOgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVXWF9QT1dFUk9GRikpfAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBFV1hfRk9SQ0UsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFNIVEROX1JFQVNPTl9NQUpPUl9PVEhFUnwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgU0hURE5fUkVBU09OX01JTk9SX0VOVklST05NRU5UIHwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgU0hURE5fUkVBU09OX0ZMQUdfUExBTk5FRCk7Ci0jcHJhZ21h
IHdhcm5pbmcgKGRlZmF1bHQ6IDI4MTU5KQotICAgICAgICAgICAgaWYgKCFyZXMpIHsKLSAgICAg
ICAgICAgICAgICBQcmludEVycm9yKCJFeGl0V2luZG93c0V4Iik7Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgIGlmIChYZW5zdG9yZVJlbW92ZSgiY29udHJvbC9zaHV0ZG93
biIpKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0gZWxzZSB7Ci0jcHJhZ21hIHdhcm5pbmcgKGRpc2FibGUgOiAyODE1OSkKLSAgICAg
ICAgICAgIHJlcyA9IEluaXRpYXRlU3lzdGVtU2h1dGRvd25FeCgKLSAgICAgICAgICAgICAgICBO
VUxMLAotICAgICAgICAgICAgICAgIE5VTEwsCi0gICAgICAgICAgICAgICAgMCwKLSAgICAgICAg
ICAgICAgICBUUlVFLAotICAgICAgICAgICAgICAgIHR5cGUgPT0gWFNodXRkb3duUmVib290LAot
ICAgICAgICAgICAgICAgIFNIVEROX1JFQVNPTl9NQUpPUl9PVEhFUiB8Ci0gICAgICAgICAgICAg
ICAgU0hURE5fUkVBU09OX01JTk9SX0VOVklST05NRU5UIHwKLSAgICAgICAgICAgICAgICBTSFRE
Tl9SRUFTT05fRkxBR19QTEFOTkVEKTsKLSNwcmFnbWEgd2FybmluZyAoZGVmYXVsdDogMjgxNTkp
Ci0gICAgICAgICAgICBpZiAoIXJlcykgewotICAgICAgICAgICAgICAgIFByaW50RXJyb3IoIklu
aXRpYXRlU3lzdGVtU2h1dGRvd25FeCIpOwotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKFhlbnN0b3JlUmVtb3Zl
KCJjb250cm9sL3NodXRkb3duIikpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBicmVhazsKLSAgICBjYXNlIFhTaHV0
ZG93blN1c3BlbmQ6Ci0gICAgICAgIGlmIChYZW5zdG9yZVByaW50ZiAoImNvbnRyb2wvaGliZXJu
YXRpb24tc3RhdGUiLCAic3RhcnRlZCIpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICAvKiBFdmVuIGlmIHdlIHRoaW5rIGhpYmVybmF0aW9uIGlzIGRpc2FibGVkLCB0cnkgaXQg
YW55d2F5LgotICAgICAgICAgICBJdCdzIG5vdCBsaWtlIGl0IGNhbiBkbyBhbnkgaGFybS4gKi8K
LSAgICAgICAgcmVzID0gU2V0U3lzdGVtUG93ZXJTdGF0ZShGQUxTRSwgRkFMU0UpOwotICAgICAg
ICBpZiAoWGVuc3RvcmVSZW1vdmUgKCJjb250cm9sL3NodXRkb3duIikpCi0gICAgICAgIHsgCi0g
ICAgICAgICAgICByZXR1cm4gZmFsc2U7ICAgIAotICAgICAgICB9Ci0gICAgICAgIGlmICghcmVz
KSB7Ci0gICAgICAgICAgICAvKiBUZWxsIHRoZSB0b29scyB0aGF0IHdlJ3ZlIGZhaWxlZC4gKi8K
LSAgICAgICAgICAgIFByaW50RXJyb3IoIlNldFN5c3RlbVBvd2VyU3RhdGUiKTsKLSAgICAgICAg
ICAgIGlmIChYZW5zdG9yZVByaW50ZiAoImNvbnRyb2wvaGliZXJuYXRpb24tc3RhdGUiLCAiZmFp
bGVkIikpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgWFNodXRkb3duUzM6Ci0gICAgICAgIGlmIChYZW5zdG9yZVByaW50
ZiAoImNvbnRyb2wvczMtc3RhdGUiLCAic3RhcnRlZCIpKQotICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICByZXMgPSBTZXRTdXNwZW5kU3RhdGUoRkFMU0UsIFRSVUUsIEZBTFNFKTsK
LSAgICAgICAgWGVuc3RvcmVSZW1vdmUgKCJjb250cm9sL3NodXRkb3duIik7Ci0gICAgICAgIGlm
ICghcmVzKSB7Ci0gICAgICAgICAgICBQcmludEVycm9yKCJTZXRTdXNwZW5kU3RhdGUiKTsKLSAg
ICAgICAgICAgIGlmIChYZW5zdG9yZVByaW50ZiAoImNvbnRyb2wvczMtc3RhdGUiLCAiZmFpbGVk
IikpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgICAgIGJy
ZWFrOwotICAgIH0KLQotb3V0OgotICAgIFhlbnN0b3JlRnJlZShzaHV0ZG93bl90eXBlKTsKLSAg
ICByZXR1cm4gdHJ1ZTsKLX0KLQotc3RhdGljIGJvb2wgcmVnaXN0cnlNYXRjaFN0cmluZyhIS0VZ
ICAgIGhLZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExQQ1RTVFIgbHBWYWx1
ZU5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExQQ1RTVFIgY29tcGFyZXN0
cmluZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCAgICBtYXRjaGNhc2Up
Ci17Ci0gICAgYm9vbCAgICByZXN1bHQgPSBmYWxzZTsKLSAgICBMT05HICAgIGJ1ZmZlcnNpemUg
PSBzaXplb2YoVENIQVIpKjI1NjsKLSAgICBUQ0hBUiAgICpvdXRzdHJpbmcgPSBOVUxMOwotICAg
IERXT1JEICBvdXRzdHJpbmdzaXplOwotICAgIExPTkcgICAgc3RhdHVzOwotICAgIGRvIHsKLSAg
ICAgICAgb3V0c3RyaW5nc2l6ZSA9IGJ1ZmZlcnNpemU7Ci0gICAgICAgIG91dHN0cmluZyA9IChU
Q0hBUiAqKXJlYWxsb2Mob3V0c3RyaW5nLCBvdXRzdHJpbmdzaXplKTsKLQotICAgICAgICBzdGF0
dXMgPSBSZWdRdWVyeVZhbHVlRXgoaEtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxwVmFsdWVOYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoTFBCWVRFKSBvdXRzdHJpbmcsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAmb3V0c3RyaW5nc2l6ZSk7Ci0gICAgICAgIGJ1ZmZlcnNpemUgKj0gMjsK
LSAgICB9IHdoaWxlIChzdGF0dXMgPT0gRVJST1JfTU9SRV9EQVRBKTsKLQotICAgIGlmIChzdGF0
dXMgPT0gRVJST1JfRklMRV9OT1RfRk9VTkQpCi0gICAgICAgIGdvdG8gZG9uZTsKLQotICAgIGlm
IChtYXRjaGNhc2UpIHsKLSAgICAgICAgaWYgKF90Y3NuY21wKGNvbXBhcmVzdHJpbmcsIG91dHN0
cmluZywgb3V0c3RyaW5nc2l6ZSkpCi0gICAgICAgICAgICBnb3RvIGRvbmU7Ci0gICAgfQotICAg
IGVsc2UgewotICAgICAgICBpZiAoX3Rjc25pY29sbChjb21wYXJlc3RyaW5nLCBvdXRzdHJpbmcs
IG91dHN0cmluZ3NpemUpKQotICAgICAgICAgICAgZ290byBkb25lOwotICAgIH0KLQotICAgIHJl
c3VsdCA9IHRydWU7Ci0KLWRvbmU6Ci0gICAgZnJlZShvdXRzdHJpbmcpOwotCi0gICAgcmV0dXJu
IHJlc3VsdDsKLX0KLQotc3RhdGljIGJvb2wKLWFkanVzdFhlblRpbWVUb1VUQyhGSUxFVElNRSAq
bm93KQotewotICAgIERXT1JEICAgICAgICAgICBkd3RpbWVvZmZzZXQ7Ci0gICAgbG9uZyAgICAg
ICAgICAgIHRpbWVvZmZzZXQ7Ci0gICAgY2hhciAgICAgICAgICAgICp2bTsKLSAgICBjaGFyICAg
ICAgICAgICAgKnJ0Y2tleTsKLSAgICBMQVJHRV9JTlRFR0VSICAgbG9uZ29mZnNldDsKLSAgICBV
TEFSR0VfSU5URUdFUiAgbG9uZ25vdzsKLSAgICBzaXplX3QgICAgICAgICAgdm1sZW47Ci0gICAg
Ci0gICAgLy8gWGVuVGltZSBpcyBhc3N1bWVkIHRvIGJlIGluIFVUQywgc28gd2UgbmVlZCB0byBy
ZW1vdmUgYW55Ci0gICAgLy8gb2Zmc2V0cyB0aGF0IGFyZSBhcHBsaWVkIHRvIGl0Ci0KLSAgICBf
X3RyeSB7Ci0gICAgICAgIHZtbGVuID0gWGVuc3RvcmVSZWFkKCJ2bSIsICZ2bSk7Ci0gICAgICAg
IGlmICh2bWxlbiA8PSAwKQotICAgICAgICAgICAgZ290byBmYWlsX3JlYWR2bTsKLSAgICB9Ci0g
ICAgX19leGNlcHQoRVhDRVBUSU9OX0VYRUNVVEVfSEFORExFUikKLSAgICB7Ci0gICAgICAgIGdv
dG8gZmFpbF9yZWFkdm07Ci0gICAgfQotCi0gICAgcnRja2V5ID0gUHJpbnRmU3RyaW5nKCIlcy9y
dGMvdGltZW9mZnNldCIsIHZtKTsKLSAgICBpZiAocnRja2V5ID09IE5VTEwpCi0gICAgICAgIGdv
dG8gZmFpbF9ydGNrZXk7Ci0KLSAgICBfdHJ5IHsKLSAgICAgICAgQk9PTCBydGNyZWFkd29ya2Vk
OwotICAgICAgICBfX3RyeSB7Ci0gICAgICAgICAgICBydGNyZWFkd29ya2VkID0gWGVuc3RvcmVS
ZWFkRHdvcmQocnRja2V5LCAmZHd0aW1lb2Zmc2V0KTsKLSAgICAgICAgfQotICAgICAgICBfX2V4
Y2VwdChFWENFUFRJT05fRVhFQ1VURV9IQU5ETEVSKSB7Ci0gICAgICAgICAgICBydGNyZWFkd29y
a2VkID0gZmFsc2U7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFydGNyZWFkd29ya2VkKSB7Ci0g
ICAgICAgICAgICBpZiAoIVhlbnN0b3JlUmVhZER3b3JkKCJwbGF0Zm9ybS90aW1lb2Zmc2V0Iiwg
JmR3dGltZW9mZnNldCkpCi0gICAgICAgICAgICAgICAgZ290byBmYWlsX3BsYXRmb3JtdGltZW9m
ZnNldDsKLSAgICAgICAgfQotICAgIH0KLSAgICBfX2V4Y2VwdChFWENFUFRJT05fRVhFQ1VURV9I
QU5ETEVSKQotICAgIHsKLSAgICAgICAgZ290byBmYWlsX3BsYXRmb3JtdGltZW9mZnNldDsKLSAg
ICB9Ci0gICAgdGltZW9mZnNldCA9IChsb25nKWR3dGltZW9mZnNldDsKLQotICAgIC8vQ29udmVy
dCBvZmZzZXQgZnJvbSBzZWNvbmRzIHRvIG5hbm9zZWNvbmRzCi0gICAgbG9uZ29mZnNldC5RdWFk
UGFydCA9ICAoTE9OR0xPTkcpdGltZW9mZnNldDsKLSAgICBsb25nb2Zmc2V0LlF1YWRQYXJ0ID0g
bG9uZ29mZnNldC5RdWFkUGFydCAqIDEwMDAwMDAwOwotICAgIAotICAgIC8vIFN1YnRyYWN0IG5h
bm9zZWNvbmQgdGltZW9mZnNldCBmcm9tIG5vdwotICAgIGxvbmdub3cuTG93UGFydCA9IG5vdy0+
ZHdMb3dEYXRlVGltZTsKLSAgICBsb25nbm93LkhpZ2hQYXJ0ID0gbm93LT5kd0hpZ2hEYXRlVGlt
ZTsKLSAgICBsb25nbm93LlF1YWRQYXJ0IC09IGxvbmdvZmZzZXQuUXVhZFBhcnQ7Ci0gICAgbm93
LT5kd0xvd0RhdGVUaW1lID0gbG9uZ25vdy5Mb3dQYXJ0OwotICAgIG5vdy0+ZHdIaWdoRGF0ZVRp
bWUgPSBsb25nbm93LkhpZ2hQYXJ0OwotCi0gICAgRnJlZVN0cmluZyhydGNrZXkpOwotICAgIFhz
RnJlZSh2bSk7Ci0gICAgcmV0dXJuIHRydWU7Ci0KLWZhaWxfcGxhdGZvcm10aW1lb2Zmc2V0Ogot
ICAgIFhzTG9nKCIlczogUmVhZCBwbGF0Zm9ybSB0aW1lIG9mZnNldCIsIF9fRlVOQ1RJT05fXyk7
Ci0gICAgRnJlZVN0cmluZyhydGNrZXkpOwotCi1mYWlsX3J0Y2tleToKLSAgICBYc0xvZygiJXM6
IFJlYWQgUlRDIEtleSIsIF9fRlVOQ1RJT05fXyk7Ci0gICAgWHNGcmVlKHZtKTsKLQotZmFpbF9y
ZWFkdm06Ci0gICAgWHNMb2coIiVzOiBSZWFkIFZNIEtleSIsIF9fRlVOQ1RJT05fXyk7Ci0gICAg
cmV0dXJuIGZhbHNlOwotfQotCi1zdGF0aWMgYm9vbCBob3N0dGltZUlzVVRDKCkKLXsKLSAgICBI
S0VZICAgICAgICBJbnN0YWxsUmVnS2V5OwotICAgIGJvb2wgICAgICAgIHV0YyA9IGZhbHNlOwot
ICAgIGlmIChSZWdPcGVuS2V5RXgoSEtFWV9MT0NBTF9NQUNISU5FLCAKLSAgICAgICAgICAgICAg
ICAgICAgIFhFTlRPT0xTX0lOU1RBTExfUkVHX0tFWSwKLSAgICAgICAgICAgICAgICAgICAgIDAs
Ci0gICAgICAgICAgICAgICAgICAgICBLRVlfQUxMX0FDQ0VTUywKLSAgICAgICAgICAgICAgICAg
ICAgICZJbnN0YWxsUmVnS2V5KSAhPSBFUlJPUl9TVUNDRVNTKQotICAgICAgICBnb3RvIGZhaWxf
cmVnaXN0cnlrZXk7Ci0gICAgCi0jaWZkZWYgX1dJTjY0Ci0gICAgCi0gICAgaWYgKHJlZ2lzdHJ5
TWF0Y2hTdHJpbmcoSW5zdGFsbFJlZ0tleSwgIkhvc3RUaW1lIiwgIlVUQyIsIGZhbHNlKSkgCi0g
ICAgewotICAgICAgICAgdXRjID0gdHJ1ZTsKLSAgICAgICAgIGdvdG8gZG9uZTsKLSAgICB9Ci0K
LSAgICBSZWdDbG9zZUtleShJbnN0YWxsUmVnS2V5KTsKLSAgICBpZiAoUmVnT3BlbktleUV4KEhL
RVlfTE9DQUxfTUFDSElORSwgCi0gICAgICAgICAgICAgICAgICAgICBYRU5UT09MU19JTlNUQUxM
X1JFR19LRVk2NCwKLSAgICAgICAgICAgICAgICAgICAgIDAsCi0gICAgICAgICAgICAgICAgICAg
ICBLRVlfQUxMX0FDQ0VTUywKLSAgICAgICAgICAgICAgICAgICAgICZJbnN0YWxsUmVnS2V5KSAh
PSBFUlJPUl9TVUNDRVNTKQotICAgICAgICBnb3RvIGZhaWxfcmVnaXN0cnlrZXk7Ci0KLSNlbmRp
ZiAKLQotICAgIGlmIChyZWdpc3RyeU1hdGNoU3RyaW5nKEluc3RhbGxSZWdLZXksICJIb3N0VGlt
ZSIsICJVVEMiLCBmYWxzZSkpIAotICAgIHsKLSAgICAgICAgdXRjPXRydWU7Ci0gICAgfQotCi0j
aWZkZWYgX1dJTjY0Ci1kb25lOgotI2VuZGlmIAotICAgIFJlZ0Nsb3NlS2V5KEluc3RhbGxSZWdL
ZXkpOwotICAgIHJldHVybiB1dGM7Ci0KLWZhaWxfcmVnaXN0cnlrZXk6ICAgIAotICAgIFhzTG9n
KCIlczogT3BlbiBSZWdpc3RyeSBLZXkiLCBfX0ZVTkNUSU9OX18pOwotCi0gICAgcmV0dXJuIGZh
bHNlOwotfQotCi1zdGF0aWMgdm9pZAotc2V0VGltZVRvWGVuVGltZSh2b2lkKQotewotICAgIEZJ
TEVUSU1FICAgIG5vdyA9IHswfTsKLSAgICBTWVNURU1USU1FICBzeXNfdGltZTsKLSAgICBTWVNU
RU1USU1FICBjdXJyZW50X3RpbWU7Ci0gICAgYm9vbCAgICAgICAgdXRjPWZhbHNlOwotICAgIFhz
TG9nKCJTZXQgdGltZSB0byBYZW5UaW1lIik7Ci0KLSAgICBHZXRYZW5UaW1lKCZub3cpOwotICAg
IGlmICgobm93LmR3TG93RGF0ZVRpbWUgPT0gMCkgJiYgKG5vdy5kd0hpZ2hEYXRlVGltZSA9PSAw
KSkgewotICAgICAgICBYc0xvZygiQ2Fubm90IHNldCBzeXN0ZW0gdGltZSB0byB4ZW50aW1lLCB1
bmFibGUgdG8gY29udGFjdCBXTUkiKTsKLSAgICAgICAgZ290byBmYWlsX3JlYWR0aW1lOwotICAg
IH0KLQotICAgIHV0YyA9IGhvc3R0aW1lSXNVVEMoKTsKLQotICAgIGlmICh1dGMpIHsKLSAgICAg
ICAgWHNMb2coIlRyeSBVVEMiKTsKLSAgICAgICAgaWYgKCFhZGp1c3RYZW5UaW1lVG9VVEMoJm5v
dykpCi0gICAgICAgICAgICBnb3RvIGZhaWxfYWRqdXN0dGltZTsKLSAgICB9Ci0KLSAgICBpZiAo
IUZpbGVUaW1lVG9TeXN0ZW1UaW1lKCZub3csICZzeXNfdGltZSkpIHsKLSAgICAgICAgWHNMb2co
IkdvdWxkIG5vdCBjb252ZXJ0IGZpbGUgdGltZSB0byBzeXN0ZW0gdGltZSIpOwotICAgICAgICBQ
cmludEVycm9yKCJGaWxlVGltZVRvU3lzdGVtVGltZSgpIik7Ci0gICAgICAgIERCR1BSSU5UKCgi
RmlsZVRpbWVUb1N5c3RlbVRpbWUoJXguJXgpXG4iLAotICAgICAgICAgICAgICAgICAgbm93LmR3
TG93RGF0ZVRpbWUsIG5vdy5kd0hpZ2hEYXRlVGltZSkpOwotICAgIH0gZWxzZSB7Ci0gICAgICAg
IEdldExvY2FsVGltZSgmY3VycmVudF90aW1lKTsKLSAgICAgICAgWHNMb2coIlRpbWUgaXMgbm93
ICAlZC4lZC4lZCAlZDolZDolZC4lZCIsCi0gICAgICAgICAgICAgIGN1cnJlbnRfdGltZS53WWVh
ciwgY3VycmVudF90aW1lLndNb250aCwgY3VycmVudF90aW1lLndEYXksCi0gICAgICAgICAgICAg
IGN1cnJlbnRfdGltZS53SG91ciwgY3VycmVudF90aW1lLndNaW51dGUsIGN1cnJlbnRfdGltZS53
U2Vjb25kLAotICAgICAgICAgICAgICBjdXJyZW50X3RpbWUud01pbGxpc2Vjb25kcyk7Ci0gICAg
ICAgIFhzTG9nKCJTZXQgdGltZSB0byAlZC4lZC4lZCAlZDolZDolZC4lZCIsCi0gICAgICAgICAg
ICAgIHN5c190aW1lLndZZWFyLCBzeXNfdGltZS53TW9udGgsIHN5c190aW1lLndEYXksCi0gICAg
ICAgICAgICAgIHN5c190aW1lLndIb3VyLCBzeXNfdGltZS53TWludXRlLCBzeXNfdGltZS53U2Vj
b25kLAotICAgICAgICAgICAgICBzeXNfdGltZS53TWlsbGlzZWNvbmRzKTsKLSAgICAgICAgaWYg
KHV0YykgewotICAgICAgICAgICAgaWYgKCFTZXRTeXN0ZW1UaW1lKCZzeXNfdGltZSkpCi0gICAg
ICAgICAgICAgICAgUHJpbnRFcnJvcigiU2V0U3lzdGVtVGltZSgpIik7Ci0gICAgICAgIH0KLSAg
ICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBpZiAoIVNldExvY2FsVGltZSgmc3lzX3RpbWUpKQot
ICAgICAgICAgICAgICAgIFByaW50RXJyb3IoIlNldExvY2FsVGltZSgpIik7Ci0gICAgICAgIH0K
LSAgICB9Ci0KLSAgICByZXR1cm47Ci0KLWZhaWxfYWRqdXN0dGltZToKLSAgICBYc0xvZygiJXM6
IEFkanVzdCB0aW1lIiwgX19GVU5DVElPTl9fKTsKLQotZmFpbF9yZWFkdGltZToKLSAgICBYc0xv
ZygiJXM6IFJlYWRUaW1lIiwgX19GVU5DVElPTl9fKTsKLX0KLQotLyogV2UgbmVlZCB0byByZXN5
bmMgdGhlIGNsb2NrIHdoZW4gd2UgcmVjb3ZlciBmcm9tIHN1c3BlbmQvcmVzdW1lLiAqLwotc3Rh
dGljIHZvaWQKLWZpbmlzaFN1c3BlbmQodm9pZCkKLXsKLSAgICBEQkdQUklOVCgoIkNvbWluZyBi
YWNrIGZyb20gc3VzcGVuZC5cbiIpKTsKLSAgICBzZXRUaW1lVG9YZW5UaW1lKCk7Ci19Ci0KLQot
Ci0vLwotLy8gTWFpbiBsb29wCi0vLwotQk9PTCBSdW4oKQotewotICAgIGJvb2wgZXhpdD1mYWxz
ZTsKLSAgICBQQ0hBUiBwUFZBZGRvbnNJbnN0YWxsZWQgPSBOVUxMOwotCi0gICAgSEFORExFIHN1
c3BlbmRFdmVudDsKLQotICAgIGludCBjbnRyID0gMDsKLSAgICBzdHJ1Y3Qgd2F0Y2hfZmVhdHVy
ZV9zZXQgZmVhdHVyZXM7Ci0gICAgQk9PTCBzbmFwID0gRkFMU0U7Ci0KLSAgICBPdXRwdXREZWJ1
Z1N0cmluZygiVHJ5aW5nIHRvIGNvbm5lY3QgdG8gV01JXG4iKTsKLSAgICB3aGlsZSAoIUNvbm5l
Y3RUb1dNSSgpKSB7Ci0gICAgICAgIE91dHB1dERlYnVnU3RyaW5nKCJVbmFibGUgdG8gY29ubmVj
dCB0byBXTUksIHNsZWVwaW5nXG4iKTsKLSAgICAgICAgaWYgKFdhaXRGb3JTaW5nbGVPYmplY3Qo
aFNlcnZpY2VFeGl0RXZlbnQsIDEwMDAqMTApID09IFdBSVRfT0JKRUNUXzApIHsKLSAgICAgICAg
ICAgIGV4aXQgPSB0cnVlOwotICAgICAgICAgICAgcmV0dXJuIGV4aXQ7Ci0gICAgICAgIH0KLSAg
ICB9Ci0gICAgd2hpbGUgKEluaXRYU0FjY2Vzc29yKCk9PWZhbHNlKSB7Ci0gICAgICAgIE91dHB1
dERlYnVnU3RyaW5nKCJVbmFibGUgdG8gaW5pdGlhbGlzZSBXTUkgc2Vzc2lvbiwgc2xlZXBpbmdc
biIpOwotICAgICAgICBpZiAoV2FpdEZvclNpbmdsZU9iamVjdChoU2VydmljZUV4aXRFdmVudCwg
MTAwMCoxMCkgPT0gV0FJVF9PQkpFQ1RfMCkgewotICAgICAgICAgICAgZXhpdCA9IHRydWU7Ci0g
ICAgICAgICAgICByZXR1cm4gZXhpdDsKLSAgICAgICAgfQotICAgIH0KLSAgICBYc0xvZygiR3Vl
c3QgYWdlbnQgbGl0ZSBtYWluIGxvb3Agc3RhcnRpbmciKTsKLQotICAgIGlmIChldmVudExvZyA9
PSBOVUxMKQotICAgICAgICBYc0xvZygiRXZlbnQgbG9nIHdhcyBub3QgaW5pdGlhbGlzZWQiKTsK
LSAgICAKLSAgICBzZXRUaW1lVG9YZW5UaW1lKCk7Ci0KLSAgICBtZW1zZXQoJmZlYXR1cmVzLCAw
LCBzaXplb2YoZmVhdHVyZXMpKTsKLQotICAgIEhBTkRMRSB3bWllcnJvckV2ZW50ID0gQ3JlYXRl
RXZlbnQoTlVMTCwgRkFMU0UsIEZBTFNFLCBOVUxMKTsKLSAgICBpZiAoIXdtaWVycm9yRXZlbnQp
IHsKLSAgICAgICAgUHJpbnRFcnJvcigiQ3JlYXRlRXZlbnQoKSB3bWllcnJvckV2ZW50Iik7Ci0g
ICAgICAgIHJldHVybiBleGl0OwotICAgIH0KLSAgIAotCi0gICAgWHNMb2coIkFib3V0IHRvIGFk
ZCBmZWF0dXJlIHNodXRkb3duIik7Ci0gICAgaWYgKCFBZGRGZWF0dXJlKCZmZWF0dXJlcywgImNv
bnRyb2wvc2h1dGRvd24iLCAiY29udHJvbC9mZWF0dXJlLXNodXRkb3duIiwgCi0gICAgICAgICAg
ICAgICAgICAgICJzaHV0ZG93biIsIG1heWJlUmVib290LCBOVUxMLCB3bWllcnJvckV2ZW50KSkg
ewotICAgICAgICByZXR1cm4gZXhpdDsKLSAgICB9Ci0KLSAgICBzdXNwZW5kRXZlbnQgPSBDcmVh
dGVFdmVudChOVUxMLCBGQUxTRSwgRkFMU0UsIE5VTEwpOwotICAgIGlmICghc3VzcGVuZEV2ZW50
KSB7Ci0gICAgICAgIFByaW50RXJyb3IoIkNyZWF0ZUV2ZW50KCkgc3VzcGVuZEV2ZW50Iik7Ci0g
ICAgICAgIHJldHVybiBleGl0OwotICAgIH0KLSAgICAKLSAgICBpZiAoTGlzdGVuU3VzcGVuZChz
dXNwZW5kRXZlbnQsIHdtaWVycm9yRXZlbnQpIDwgMCkgewotICAgICAgICBQcmludEVycm9yKCJM
aXN0ZW5TdXNwZW5kKCkiKTsKLSAgICAgICAgQ2xvc2VIYW5kbGUoc3VzcGVuZEV2ZW50KTsKLSAg
ICAgICAgc3VzcGVuZEV2ZW50ID0gTlVMTDsKLSAgICAgICAgcmV0dXJuIGV4aXQ7Ci0gICAgfQot
Ci0KLSAgICBYc0xvZygiQWJvdXQgdG8gYWR2ZXJ0aXNlIGZlYXR1cmVzIik7Ci0gICAgQWR2ZXJ0
aXNlRmVhdHVyZXMoJmZlYXR1cmVzKTsKLSAgICAKLSAgICBYc0xvZygiQWJvdXQgdG8ga2ljayB4
YXBpICIpOwotICAgIFhlbnN0b3JlS2lja1hhcGkoKTsKLQotICAgIHdoaWxlICgxKQotICAgIHsK
LSAgICAgICAgRFdPUkQgc3RhdHVzOwotICAgICAgICBpbnQgbnJfaGFuZGxlcyA9IDE7Ci0gICAg
ICAgIEhBTkRMRSBoYW5kbGVzWzMgKyBNQVhfRkVBVFVSRVNdOwotICAgICAgICB1bnNpZ25lZCB4
OwotCi0gICAgICAgIGhhbmRsZXNbMF0gPSBoU2VydmljZUV4aXRFdmVudDsKLSAgICAgICAgaWYg
KHdtaWVycm9yRXZlbnQpCi0gICAgICAgICAgICBoYW5kbGVzW25yX2hhbmRsZXMrK10gPSB3bWll
cnJvckV2ZW50OwotICAgICAgICBpZiAoc3VzcGVuZEV2ZW50KQotICAgICAgICAgICAgaGFuZGxl
c1tucl9oYW5kbGVzKytdID0gc3VzcGVuZEV2ZW50OwotICAgICAgICBmb3IgKHggPSAwOyB4IDwg
ZmVhdHVyZXMubnJfZmVhdHVyZXM7IHgrKykKLSAgICAgICAgICAgIGhhbmRsZXNbbnJfaGFuZGxl
cysrXSA9IGZlYXR1cmVzLmZlYXR1cmVzW3hdLndhdGNoLT5ldmVudDsKLQotICAgICAgICBYc0xv
Zygid2luIGFnZW50IGdvaW5nIHRvIHNsZWVwIik7Ci0gICAgICAgIHN0YXR1cyA9IFdhaXRGb3JN
dWx0aXBsZU9iamVjdHMobnJfaGFuZGxlcywgaGFuZGxlcywgRkFMU0UsIElORklOSVRFKTsKLSAg
ICAgICAgWHNMb2coIndpbiBhZ2VudCB3b2tlIHVwIGZvciAlZCIsIHN0YXR1cyk7Ci0KLSAgICAg
ICAgLyogV0FJVF9PQkpFQ1RfMCBoYXBwZW5zIHRvIGJlIDAsIHNvIHRoZSBjb21waWxlciBnZXRz
IHNoaXJ0eQotICAgICAgICAgICBhYm91dCBzdGF0dXMgPj0gV0FJVF9PQkpFQ1RfMCAoc2luY2Ug
c3RhdHVzIGlzIHVuc2lnbmVkKS4KLSAgICAgICAgICAgVGhpcyBpcyBtb3JlIG9idmlvdXNseSBj
b3JyZWN0IHRoYW4gdGhlIGNvbXBpbGVyLWZyaWVuZGx5Ci0gICAgICAgICAgIHZlcnNpb24sIHRo
b3VnaCwgc28ganVzdCBkaXNhYmxlIHRoZSB3YXJuaW5nLiAqLwotCi0jcHJhZ21hIHdhcm5pbmcg
KGRpc2FibGU6IDQyOTYpCi0gICAgICAgIGlmIChzdGF0dXMgPj0gV0FJVF9PQkpFQ1RfMCAmJgot
ICAgICAgICAgICAgc3RhdHVzIDwgV0FJVF9PQkpFQ1RfMCArIG5yX2hhbmRsZXMpCi0jcHJhZ21h
IHdhcm5pbmcgKGRlZmF1bHQ6IDQyOTYpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEhBTkRMRSBl
dmVudCA9IGhhbmRsZXNbc3RhdHVzIC0gV0FJVF9PQkpFQ1RfMF07Ci0gICAgICAgICAgICBpZiAo
ZXZlbnQgPT0gaFNlcnZpY2VFeGl0RXZlbnQpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgWHNMb2coInNlcnZpY2UgZXhpdCBldmVudCIpOwotICAgICAgICAgICAgICAgIGV4aXQgPSB0
cnVlOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
ZWxzZSBpZiAoZXZlbnQgPT0gc3VzcGVuZEV2ZW50KQotICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIGlmICghUmVwb3J0RXZlbnQoZXZlbnRMb2csIEVWRU5UTE9HX1NVQ0NFU1MsIDAsIEVW
RU5UX1hFTlVTRVJfVU5TVVNQRU5ERUQsIE5VTEwsIDAsIDAsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTlVMTCwgTlVMTCkpIHsKLSAgICAgICAgICAgICAgICAgICAgWHNMb2coIkNhbm5v
dCBzZW5kIHRvIGV2ZW50IGxvZyAleCIsR2V0TGFzdEVycm9yKCkpOyAgICAKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgWHNMb2coIlN1c3BlbmQgZXZlbnQiKTsKLSAgICAgICAg
ICAgICAgICBmaW5pc2hTdXNwZW5kKCk7Ci0gICAgICAgICAgICAgICAgQWR2ZXJ0aXNlRmVhdHVy
ZXMoJmZlYXR1cmVzKTsKLSAgICAgICAgICAgICAgICBYZW5zdG9yZUtpY2tYYXBpKCk7Ci0gICAg
ICAgICAgICAgICAgWHNMb2coIkhhbmRsZWQgc3VzcGVuZCBldmVudCIpOwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgZWxzZSBpZiAoZXZlbnQgPT0gd21pZXJyb3JFdmVudCkKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICBSZXBvcnRFdmVudChldmVudExvZywgRVZFTlRMT0dfU1VD
Q0VTUywgMCwgRVZFTlRfWEVOVVNFUl9XTUksIE5VTEwsIDAsIDAsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTlVMTCwgTlVMTCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
Qk9PTCBmYWlsID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgZm9yICh4ID0gMDsgeCA8IGZlYXR1
cmVzLm5yX2ZlYXR1cmVzOyB4KyspIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGZlYXR1cmVz
LmZlYXR1cmVzW3hdLndhdGNoLT5ldmVudCA9PSBldmVudCkgewotICAgICAgICAgICAgICAgICAg
ICAgICAgWHNMb2coIkZpcmUgJXAiLGZlYXR1cmVzLmZlYXR1cmVzW3hdLm5hbWUpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgWHNMb2coImZpcmUgZmVhdHVyZSAlcyIsIGZlYXR1cmVzLmZlYXR1
cmVzW3hdLm5hbWUpOwotICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0RGVidWdTdHJpbmco
IkV2ZW50IHRyaWdnZXJlZFxuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIShmZWF0
dXJlcy5mZWF0dXJlc1t4XS5oYW5kbGVyKGZlYXR1cmVzLmZlYXR1cmVzW3hdLmN0eCkpKQotICAg
ICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhzTG9n
KCJGaXJpbmcgZmVhdHVyZSBmYWlsZWQiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ
cmludEVycm9yKCJGZWF0dXJlIGZhaWxlZCIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZhaWwgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICAgICAgICAgWHNMb2coImZpcmVkIGZlYXR1cmUgJXMiLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmZWF0dXJlcy5mZWF0dXJlc1t4XS5uYW1lKTsKLSAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoZmFpbCkgewotICAg
ICAgICAgICAgICAgICAgICBYc0xvZygiUmVzZXR0aW5nIik7Ci0gICAgICAgICAgICAgICAgICAg
IFJlcG9ydEV2ZW50KGV2ZW50TG9nLCBFVkVOVExPR19TVUNDRVNTLCAwLCBFVkVOVF9YRU5VU0VS
X1VORVhQRUNURUQsIE5VTEwsIDAsIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IE5VTEwsIE5VTEwpOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZQotICAgICAgICB7Ci0g
ICAgICAgICAgICBQcmludEVycm9yKCJXYWl0Rm9yTXVsdGlwbGVPYmplY3RzKCkiKTsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQotICAgIE91dHB1dERlYnVnU3RyaW5nKCJX
TUkgV2F0Y2ggbG9vcCB0ZXJtaW5hdGVkXG4iKTsKLSAgICBSZW1vdmVGZWF0dXJlcygmZmVhdHVy
ZXMpOwotICAgIFhlbnN0b3JlS2lja1hhcGkoKTsKLQotICAgIFhzTG9nKCJHdWVzdCBhZ2VudCBs
aXRlIGxvb3AgZmluaXNoaW5nIik7Ci0gICAgUmVsZWFzZVdNSUFjY2Vzc29yKCZ3bWkpOwotCi0K
LSAgCi0KLSAgICBYc0xvZygiR3Vlc3QgYWdlbnQgbGl0ZSBsb29wIGZpbmlzaGVkICVkIiwgZXhp
dCk7Ci0gICAgcmV0dXJuIGV4aXQ7Ci19Ci0KLQotLy8gU2VydmljZSBpbml0aWFsaXphdGlvbgot
Ym9vbCBTZXJ2aWNlSW5pdCgpCi17Ci0gICAgU2VydmljZVN0YXR1cy5kd1NlcnZpY2VUeXBlICAg
ICAgICA9IFNFUlZJQ0VfV0lOMzI7IAotICAgIFNlcnZpY2VTdGF0dXMuZHdDdXJyZW50U3RhdGUg
ICAgICAgPSBTRVJWSUNFX1NUQVJUX1BFTkRJTkc7IAotICAgIFNlcnZpY2VTdGF0dXMuZHdDb250
cm9sc0FjY2VwdGVkICAgPQotICAgICAgICBTRVJWSUNFX0FDQ0VQVF9TVE9QIHwgU0VSVklDRV9B
Q0NFUFRfU0hVVERPV04gfAotICAgICAgICBTRVJWSUNFX0FDQ0VQVF9TRVNTSU9OQ0hBTkdFOwot
ICAgIFNlcnZpY2VTdGF0dXMuZHdXaW4zMkV4aXRDb2RlICAgICAgPSAwOyAKLSAgICBTZXJ2aWNl
U3RhdHVzLmR3U2VydmljZVNwZWNpZmljRXhpdENvZGUgPSAwOyAKLSAgICBTZXJ2aWNlU3RhdHVz
LmR3Q2hlY2tQb2ludCAgICAgICAgID0gMDsgCi0gICAgU2VydmljZVN0YXR1cy5kd1dhaXRIaW50
ICAgICAgICAgICA9IDA7IAotIAotICAgIGhTdGF0dXMgPSBSZWdpc3RlclNlcnZpY2VDdHJsSGFu
ZGxlckV4KAotICAgICAgICAiWGVuU2VydmljZSIsIAotICAgICAgICBTZXJ2aWNlQ29udHJvbEhh
bmRsZXIsCi0gICAgICAgIE5VTEwpOwotICAgIGlmIChoU3RhdHVzID09IChTRVJWSUNFX1NUQVRV
U19IQU5ETEUpMCkgCi0gICAgeyAKLSAgICAgICAgLy8gUmVnaXN0ZXJpbmcgQ29udHJvbCBIYW5k
bGVyIGZhaWxlZAotICAgICAgICBEQkdQUklOVCgoIlhlblN2YzogUmVnaXN0ZXJpbmcgc2Vydmlj
ZSBjb250cm9sIGhhbmRsZXIgZmFpbGVkIC0gJWRcbiIsIEdldExhc3RFcnJvcigpKSk7Ci0gICAg
ICAgIHJldHVybiBmYWxzZTsgCi0gICAgfSAgCi0KLSAgICBTZXJ2aWNlU3RhdHVzLmR3Q3VycmVu
dFN0YXRlID0gU0VSVklDRV9SVU5OSU5HOyAKLSAgICBTZXRTZXJ2aWNlU3RhdHVzIChoU3RhdHVz
LCAmU2VydmljZVN0YXR1cyk7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZCBXSU5BUEkg
U2VydmljZU1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQotewotICAgIC8vIFBlcmZvcm0gY29t
bW9uIGluaXRpYWxpemF0aW9uCi0gICAgZXZlbnRMb2cgPSBSZWdpc3RlckV2ZW50U291cmNlKE5V
TEwsICJ4ZW5zdmMiKTsKLSAgICBoU2VydmljZUV4aXRFdmVudCA9IENyZWF0ZUV2ZW50KE5VTEws
IGZhbHNlLCBmYWxzZSwgTlVMTCk7Ci0gICAgaWYgKGhTZXJ2aWNlRXhpdEV2ZW50ID09IE5VTEwp
Ci0gICAgewotICAgICAgICBEQkdQUklOVCgoIlhlblN2YzogVW5hYmxlIHRvIGNyZWF0ZSB0aGUg
ZXZlbnQgb2JqIC0gJWRcbiIsIEdldExhc3RFcnJvcigpKSk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KLSAgICBpZiAoIVNlcnZpY2VJbml0KCkpCi0gICAgewotICAgICAgICBEQkdQUklOVCgo
IlhlblN2YzogVW5hYmxlIHRvIGluaXQgeGVuc2VydmljZVxuIikpOwotICAgICAgICByZXR1cm47
Ci0gICAgfQotICAgIEJPT0wgc3RvcHBpbmc7Ci0KLSAgICBkbyB7Ci0gICAgICAgIAotICAgICAg
ICBfX3RyeQotICAgICAgICB7Ci0gICAgICAgICAgICBzdG9wcGluZyA9IFJ1bigpOwotICAgICAg
ICAgICAgCi0gICAgICAgIH0KLSAgICAgICAgX19leGNlcHQoRVhDRVBUSU9OX0VYRUNVVEVfSEFO
RExFUikKLSAgICAgICAgewotICAgICAgICAgICAgX190cnkgewotICAgICAgICAgICAgICAgIFhz
TG9nKCJFeGNlcHRpb24gaGl0ICV4IiwgR2V0RXhjZXB0aW9uQ29kZSgpKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIF9fZXhjZXB0KEVYQ0VQVElPTl9FWEVDVVRFX0hBTkRMRVIpCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdG9wcGluZyA9IGZhbHNlOwot
ICAgICAgICB9Ci0gICAgfSB3aGlsZSAoIXN0b3BwaW5nKTsKLSAgICAKLSAgICBYc0xvZygiR3Vl
c3QgYWdlbnQgc2VydmljZSBzdG9wcGVkIik7Ci0gICAgU2h1dGRvd25YU0FjY2Vzc29yKCk7Ci0g
ICAgRGVyZWdpc3RlckV2ZW50U291cmNlKGV2ZW50TG9nKTsKLSAgICBTZXJ2aWNlQ29udHJvbE1h
bmFnZXJVcGRhdGUoMCwgU0VSVklDRV9TVE9QUEVEKTsKLSAgICByZXR1cm47Ci19Ci0KLXZvaWQg
U2VydmljZUNvbnRyb2xNYW5hZ2VyVXBkYXRlKERXT1JEIGR3RXhpdENvZGUsIERXT1JEIGR3U3Rh
dGUpCi17Ci0gICAgU2VydmljZVN0YXR1cy5kd1dpbjMyRXhpdENvZGUgPSBkd0V4aXRDb2RlOyAK
LSAgICBTZXJ2aWNlU3RhdHVzLmR3Q3VycmVudFN0YXRlICA9IGR3U3RhdGU7IAotICAgIFNldFNl
cnZpY2VTdGF0dXMgKGhTdGF0dXMsICZTZXJ2aWNlU3RhdHVzKTsKLX0KLQotLy8gU2VydmljZSBj
b250cm9sIGhhbmRsZXIgZnVuY3Rpb24KLXN0YXRpYyBEV09SRCBXSU5BUEkgU2VydmljZUNvbnRy
b2xIYW5kbGVyKERXT1JEIHJlcXVlc3QsIERXT1JEIGV2dFR5cGUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBMUFZPSUQgZXZlbnREYXRhLCBMUFZPSUQgY3R4dCkK
LXsKLSAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVSKGN0eHQpOwotICAgIFVOUkVGRVJFTkNFRF9Q
QVJBTUVURVIoZXZlbnREYXRhKTsKLQotICAgIHN3aXRjaChyZXF1ZXN0KSAKLSAgICB7IAotICAg
ICAgICBjYXNlIFNFUlZJQ0VfQ09OVFJPTF9TVE9QOiAKLSAgICAgICAgICAgIERCR1BSSU5UKCgi
WGVuU3ZjOiB4ZW5zZXJ2aWNlIHN0b3BwZWQuXG4iKSk7Ci0gICAgICAgICAgICBTZXJ2aWNlQ29u
dHJvbE1hbmFnZXJVcGRhdGUoMCwgU0VSVklDRV9TVE9QX1BFTkRJTkcpOwotICAgICAgICAgICAg
U2V0RXZlbnQoaFNlcnZpY2VFeGl0RXZlbnQpOwotICAgICAgICAgICAgcmV0dXJuIE5PX0VSUk9S
OwotIAotICAgICAgICBjYXNlIFNFUlZJQ0VfQ09OVFJPTF9TSFVURE9XTjogCi0gICAgICAgICAg
ICBEQkdQUklOVCgoIlhlblN2YzogeGVuc2VydmljZSBzaHV0ZG93bi5cbiIpKTsKLSAgICAgICAg
ICAgIFNlcnZpY2VDb250cm9sTWFuYWdlclVwZGF0ZSgwLCBTRVJWSUNFX1NUT1BfUEVORElORyk7
Ci0gICAgICAgICAgICBTZXRFdmVudChoU2VydmljZUV4aXRFdmVudCk7Ci0gICAgICAgICAgICBy
ZXR1cm4gTk9fRVJST1I7Ci0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgREJHUFJJTlQoKCJY
ZW5TdmM6IHVua25vd24gcmVxdWVzdC4iKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICB9IAot
Ci0gICAgU2VydmljZUNvbnRyb2xNYW5hZ2VyVXBkYXRlKDAsIFNFUlZJQ0VfUlVOTklORyk7Ci0g
ICAgcmV0dXJuIEVSUk9SX0NBTExfTk9UX0lNUExFTUVOVEVEOwotfQpkaWZmIC0tZ2l0IGEvc3Jj
L3dpbjMyc3R1YmFnZW50L1hTZXJ2aWNlLmggYi9zcmMvd2luMzJzdHViYWdlbnQvWFNlcnZpY2Uu
aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzJlZTE2My4uMDAwMDAwMAotLS0gYS9z
cmMvd2luMzJzdHViYWdlbnQvWFNlcnZpY2UuaAorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAg
QEAKLS8qIENvcHlyaWdodCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLgotICogQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCAKLSAqIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgCi0gKiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0Ogot
ICoKLSAqICogICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIAotICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgCi0gKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAqICAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSAKLSAqICAgICBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIAotICogICAg
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciAK
LSAqICAgICBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCAK
LSAqIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIAotICogSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgCi0gKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSAKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQgSE9MREVSIE9SIAotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgCi0gKiBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgCi0gKiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIAotICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIAotICogV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIAotICog
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSAKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgCi0gKiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIF9YU0VSVklDRV9ICi0jZGVm
aW5lIF9YU0VSVklDRV9ICi0KLSNpbmNsdWRlIDx2ZXJzaW9uLmg+Ci0KLSNkZWZpbmUgU1ZDX05B
TUUgInhlbnN2YyIKLSNkZWZpbmUgU1ZDX0RJU1BMQVlOQU1FIFBST0RVQ1RfTkFNRV9TVFIgIyMg
IkludGVyZmFjZSBTZXJ2aWNlIgotI2RlZmluZSBTVkNfREVTQyAiTW9uaXRvcnMgYW5kIHByb3Zp
ZGVzIHZhcmlvdXMgbWV0cmljcyB0byBYZW5TdG9yZSIKLQotdm9pZCBQcmludEVycm9yKGNvbnN0
IGNoYXIgKmZ1bmMpOwotdm9pZCBQcmludEVycm9yKGNvbnN0IGNoYXIgKmZ1bmMsIERXT1JEIGVy
cik7Ci12b2lkIFN0YXJ0Q2xpcGJvYXJkU3luYyh2b2lkKTsKLXZvaWQgRmluaXNoQ2xpcGJvYXJk
U3luYyh2b2lkKTsKLXZvaWQgQ2xpcGJvYXJkQ29uc29sZUNoYW5nZWQodm9pZCk7Ci0KLXZvaWQg
WHNEdW1wTG9nVGhpc1RocmVhZCh2b2lkKTsKLXZvaWQgWHNJbml0UGVyVGhyZWFkTG9nZ2luZyh2
b2lkKTsKLXZvaWQgWHNMb2dNc2coY29uc3QgY2hhciAqZm10LCAuLi4pOwotdm9pZCBEb1ZvbHVt
ZUR1bXAodm9pZCk7Ci0KLXZvaWQgQWNxdWlyZVN5c3RlbVByaXZpbGVnZShMUENUU1RSIG5hbWUp
OwotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy93aW4zMnN0dWJhZ2VudC9lcnJvcnMuY3BwIGIv
c3JjL3dpbjMyc3R1YmFnZW50L2Vycm9ycy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGNhZjQ3Y2MuLjAwMDAwMDAKLS0tIGEvc3JjL3dpbjMyc3R1YmFnZW50L2Vycm9ycy5jcHAK
KysrIC9kZXYvbnVsbApAQCAtMSwxMDIgKzAsMCBAQAotLyogQ29weXJpZ2h0IChjKSBDaXRyaXgg
U3lzdGVtcyBJbmMuCi0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIAotICogd2l0aCBvciB3aXRo
b3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCAKLSAqIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Ci0gKgotICogKiAgIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgCi0gKiAgICAgY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSAKLSAqICAgICBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqICogICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIAotICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgCi0gKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIAotICogICAgIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIAotICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgCi0gKiBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiAKLSAqIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIAotICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
Ci0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCAKLSAqIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiAKLSAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgCi0gKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgCi0gKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIAotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiAKLSAqIFNVQ0ggREFNQUdFLgotICov
Ci0KLS8qIEJsYWNrLWJveCBkYXRhIHJlY29yZGVyLiAgVGhpcyByZWNvcmRzIHN0dWZmIHdoaWNo
IGlzIGhhcHBlbmluZwotICAgd2hpbGUgdGhlIGFnZW50IHJ1bnMsIGFuZCB0cmllcyB0byBwdXNo
IGl0IG91dCB0byBkb20wIHN5c2xvZyBpZiB3ZQotICAgY3Jhc2guICovCi0jaW5jbHVkZSAic3Rk
YWZ4LmgiCi0jaW5jbHVkZSA8d2luZG93cy5oPgotI2luY2x1ZGUgPHN0ZGFyZy5oPgotI2luY2x1
ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSAiWFNlcnZpY2UuaCIK
LSNpbmNsdWRlICJYU0FjY2Vzc29yLmgiCi0KLQotI2RlZmluZSBSSU5HX1NJWkUgODE5MgotCi1z
dHJ1Y3QgbWVzc2FnZV9yaW5nIHsKLSAgICBIQU5ETEUgaGFuZGxlOwotICAgIHVuc2lnbmVkIHBy
b2RfaWR4OwotICAgIHVuc2lnbmVkIGNvbnNfaWR4OwotICAgIHVuc2lnbmVkIGNoYXIgcGF5bG9h
ZFtSSU5HX1NJWkVdOwotfTsKLQotc3RhdGljIF9fZGVjbHNwZWModGhyZWFkKSBzdHJ1Y3QgbWVz
c2FnZV9yaW5nIG1lc3NhZ2VfcmluZzsKLQotc3RhdGljIGNoYXIgKgotWHN2YXNwcmludGYoY29u
c3QgY2hhciAqZm10LCB2YV9saXN0IGFyZ3MpCi17Ci0gICAgY2hhciAqd29yazsKLSAgICBpbnQg
d29ya19zaXplOwotICAgIGludCByOwotCi0gICAgd29ya19zaXplID0gMzI7Ci0gICAgd2hpbGUg
KDEpIHsKLSAgICAgICAgd29yayA9IChjaGFyICopbWFsbG9jKHdvcmtfc2l6ZSk7Ci0gICAgICAg
IGlmICghd29yaykKLSAgICAgICAgICAgIHJldHVybiB3b3JrOwotICAgICAgICByID0gX3ZzbnBy
aW50Zih3b3JrLCB3b3JrX3NpemUsIGZtdCwgYXJncyk7Ci0gICAgICAgIGlmIChyID09IDApIHsK
LSAgICAgICAgICAgIGZyZWUod29yayk7Ci0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAg
ICAgfQotICAgICAgICBpZiAociAhPSAtMSAmJiByIDwgd29ya19zaXplKSB7Ci0gICAgICAgICAg
ICByZXR1cm4gd29yazsKLSAgICAgICAgfQotICAgICAgICBmcmVlKHdvcmspOwotICAgICAgICB3
b3JrX3NpemUgKj0gMjsKLSAgICB9Ci19Ci0KLXN0YXRpYyBjaGFyICoKLVhzYXNwcmludGYoY29u
c3QgY2hhciAqZm10LCAuLi4pCi17Ci0gICAgdmFfbGlzdCBhcmdzOwotICAgIGNoYXIgKnJlczsK
LQotICAgIHZhX3N0YXJ0KGFyZ3MsIGZtdCk7Ci0gICAgcmVzID0gWHN2YXNwcmludGYoZm10LCBh
cmdzKTsKLSAgICB2YV9lbmQoYXJncyk7Ci0gICAgcmV0dXJuIHJlczsKLX0KLQotdm9pZAotWHNM
b2dNc2coY29uc3QgY2hhciAqZm10LCAuLi4pCi17Ci0gICAgdmFfbGlzdCBhcmdzOwotCi0gICAg
dmFfc3RhcnQoYXJncywgZm10KTsKLSAgICBYc0xvZyhmbXQsIGFyZ3MpOwotICAgIHZhX2VuZChh
cmdzKTsKLX0KLQotCmRpZmYgLS1naXQgYS9zcmMvd2luMzJzdHViYWdlbnQvbWVzc2FnZXMubWMg
Yi9zcmMvd2luMzJzdHViYWdlbnQvbWVzc2FnZXMubWMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAyODljNDQuLjAwMDAwMDAKLS0tIGEvc3JjL3dpbjMyc3R1YmFnZW50L21lc3NhZ2Vz
Lm1jCisrKyAvZGV2L251bGwKQEAgLTEsNjYgKzAsMCBAQAotU2V2ZXJpdHlOYW1lcz0oSW5mb3Jt
YXRpb25hbD0weDEpCi1GYWNpbGl0eU5hbWVzPShYZW5Vc2VyPTB4ZDYwKQotCi1NZXNzYWdlSWQ9
MHgwMDAxCi1GYWNpbGl0eT1YZW5Vc2VyCi1TZXZlcml0eT1JbmZvcm1hdGlvbmFsCi1TeW1ib2xp
Y05hbWU9RVZFTlRfWEVOVVNFUl9QT1dFUk9GRgotTGFuZ3VhZ2U9RW5nbGlzaAotVGhlIHRvb2xz
IHJlcXVlc3RlZCB0aGF0IHRoZSBsb2NhbCBWTSBzaHV0IGl0c2VsZiBkb3duLgotLgotCi1NZXNz
YWdlSWQ9MHgwMDAyCi1GYWNpbGl0eT1YZW5Vc2VyCi1TZXZlcml0eT1JbmZvcm1hdGlvbmFsCi1T
eW1ib2xpY05hbWU9RVZFTlRfWEVOVVNFUl9SRUJPT1QKLUxhbmd1YWdlPUVuZ2xpc2gKLVRoZSB0
b29scyByZXF1ZXN0ZWQgdGhhdCB0aGUgbG9jYWwgVk0gcmVib290LgotLgotCi1NZXNzYWdlSWQ9
MHgwMDAzCi1GYWNpbGl0eT1YZW5Vc2VyCi1TZXZlcml0eT1JbmZvcm1hdGlvbmFsCi1TeW1ib2xp
Y05hbWU9RVZFTlRfWEVOVVNFUl9ISUJFUk5BVEUKLUxhbmd1YWdlPUVuZ2xpc2gKLVRoZSB0b29s
cyByZXF1ZXN0ZWQgdGhhdCB0aGUgbG9jYWwgVk0gaGliZXJuYXRlIGl0c2VsZi4KLS4KLQotTWVz
c2FnZUlkPTB4MDAwNAotRmFjaWxpdHk9WGVuVXNlcgotU2V2ZXJpdHk9SW5mb3JtYXRpb25hbAot
U3ltYm9saWNOYW1lPUVWRU5UX1hFTlVTRVJfUzMKLUxhbmd1YWdlPUVuZ2xpc2gKLVRoZSB0b29s
cyByZXF1ZXN0ZWQgdGhhdCB0aGUgbG9jYWwgVk0gZW50ZXIgcG93ZXIgc3RhdGUgUzMuCi0uCi0K
LU1lc3NhZ2VJZD0weDAwMDUKLUZhY2lsaXR5PVhlblVzZXIKLVNldmVyaXR5PUluZm9ybWF0aW9u
YWwKLVN5bWJvbGljTmFtZT1FVkVOVF9YRU5VU0VSX1dNSQotTGFuZ3VhZ2U9RW5nbGlzaAotVGhl
IHRvb2xzIG5vdGljZWQgdGhhdCBXTUkgYmVjYW1lIG5vbi1mdW5jdGlvbmFsLgotLgotCi1NZXNz
YWdlSWQ9MHgwMDA2Ci1GYWNpbGl0eT1YZW5Vc2VyCi1TZXZlcml0eT1JbmZvcm1hdGlvbmFsCi1T
eW1ib2xpY05hbWU9RVZFTlRfWEVOVVNFUl9TVEFSVEVECi1MYW5ndWFnZT1FbmdsaXNoCi1UaGUg
dG9vbHMgaW5pdGlhdGVkLgotLgotCi1NZXNzYWdlSWQ9MHgwMDA3Ci1GYWNpbGl0eT1YZW5Vc2Vy
Ci1TZXZlcml0eT1JbmZvcm1hdGlvbmFsCi1TeW1ib2xpY05hbWU9RVZFTlRfWEVOVVNFUl9VTlNV
U1BFTkRFRAotTGFuZ3VhZ2U9RW5nbGlzaAotVGhlIHRvb2xzIHJldHVybmVkIGZyb20gc3VzcGVu
ZC4KLS4KLQotTWVzc2FnZUlkPTB4MDAwOAotRmFjaWxpdHk9WGVuVXNlcgotU2V2ZXJpdHk9SW5m
b3JtYXRpb25hbAotU3ltYm9saWNOYW1lPUVWRU5UX1hFTlVTRVJfVU5FWFBFQ1RFRAotTGFuZ3Vh
Z2U9RW5nbGlzaAotVGhlIHRvb2xzIGV4cGVyaWVuY2VkIGFuIHVuZXhwZWN0ZWQgZXJyb3IuCi0u
CmRpZmYgLS1naXQgYS9zcmMvd2luMzJzdHViYWdlbnQvc3RkYWZ4LmNwcCBiL3NyYy93aW4zMnN0
dWJhZ2VudC9zdGRhZnguY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MmNlZDc5
Li4wMDAwMDAwCi0tLSBhL3NyYy93aW4zMnN0dWJhZ2VudC9zdGRhZnguY3BwCisrKyAvZGV2L251
bGwKQEAgLTEsMzkgKzAsMCBAQAotLyogQ29weXJpZ2h0IChjKSBDaXRyaXggU3lzdGVtcyBJbmMu
Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIAotICogd2l0aCBvciB3aXRob3V0IG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCAKLSAqIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZSBtZXQ6Ci0gKgotICogKiAgIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgCi0gKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSAKLSAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqICogICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIAotICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgCi0gKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIAotICogICAgIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIAotICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgCi0gKiBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiAKLSAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIAotICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgCi0gKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgCi0gKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCAKLSAqIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiAKLSAq
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgCi0gKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgCi0gKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIAotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiAKLSAqIFNVQ0ggREFNQUdFLgotICovCi0KLS8vIHN0ZGFm
eC5jcHAgOiBzb3VyY2UgZmlsZSB0aGF0IGluY2x1ZGVzIGp1c3QgdGhlIHN0YW5kYXJkIGluY2x1
ZGVzCi0vLyBYZW5TZXJ2aWNlLnBjaCB3aWxsIGJlIHRoZSBwcmUtY29tcGlsZWQgaGVhZGVyCi0v
LyBzdGRhZngub2JqIHdpbGwgY29udGFpbiB0aGUgcHJlLWNvbXBpbGVkIHR5cGUgaW5mb3JtYXRp
b24KLQotI2luY2x1ZGUgInN0ZGFmeC5oIgotCi0vLyBUT0RPOiByZWZlcmVuY2UgYW55IGFkZGl0
aW9uYWwgaGVhZGVycyB5b3UgbmVlZCBpbiBTVERBRlguSAotLy8gYW5kIG5vdCBpbiB0aGlzIGZp
bGUKZGlmZiAtLWdpdCBhL3NyYy93aW4zMnN0dWJhZ2VudC9zdGRhZnguaCBiL3NyYy93aW4zMnN0
dWJhZ2VudC9zdGRhZnguaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzkxYTg0OC4u
MDAwMDAwMAotLS0gYS9zcmMvd2luMzJzdHViYWdlbnQvc3RkYWZ4LmgKKysrIC9kZXYvbnVsbApA
QCAtMSw0MyArMCwwIEBACi0vKiBDb3B5cmlnaHQgKGMpIENpdHJpeCBTeXN0ZW1zIEluYy4KLSAq
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3JtcywgCi0gKiB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIAotICogdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlIG1ldDoKLSAqCi0gKiAqICAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSAKLSAqICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIAotICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
KiAgIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgCi0gKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSAKLSAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgCi0gKiAgICAgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgCi0gKiBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCAKLSAqIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIAotICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiAKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCAKLSAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIAotICogQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIAotICogU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyAKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCAKLSAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyAKLSAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIAotICogU1VDSCBEQU1BR0UuCi0gKi8KLQotLy8gc3RkYWZ4Lmgg
OiBpbmNsdWRlIGZpbGUgZm9yIHN0YW5kYXJkIHN5c3RlbSBpbmNsdWRlIGZpbGVzLAotLy8gb3Ig
cHJvamVjdCBzcGVjaWZpYyBpbmNsdWRlIGZpbGVzIHRoYXQgYXJlIHVzZWQgZnJlcXVlbnRseSwg
YnV0Ci0vLyBhcmUgY2hhbmdlZCBpbmZyZXF1ZW50bHkKLS8vCi0KLSNwcmFnbWEgb25jZQotCi0K
LSNpbmNsdWRlIDxpb3N0cmVhbT4KLSNpbmNsdWRlIDx0Y2hhci5oPgotCi0vLyBUT0RPOiByZWZl
cmVuY2UgYWRkaXRpb25hbCBoZWFkZXJzIHlvdXIgcHJvZ3JhbSByZXF1aXJlcyBoZXJlCmRpZmYg
LS1naXQgYS9zcmMvd2luMzJzdHViYWdlbnQvdzMyeGFnZW50LnJjIGIvc3JjL3dpbjMyc3R1YmFn
ZW50L3czMnhhZ2VudC5yYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzhlNWNjNy4u
MDAwMDAwMAotLS0gYS9zcmMvd2luMzJzdHViYWdlbnQvdzMyeGFnZW50LnJjCisrKyAvZGV2L251
bGwKQEAgLTEsNjAgKzAsMCBAQAotLyogQ29weXJpZ2h0IChjKSBDaXRyaXggU3lzdGVtcyBJbmMu
Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIAotICogd2l0aCBvciB3aXRob3V0IG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCAKLSAqIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZSBtZXQ6Ci0gKgotICogKiAgIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgCi0gKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSAKLSAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqICogICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIAotICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgCi0gKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIAotICogICAgIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIAotICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgCi0gKiBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiAKLSAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIAotICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgCi0gKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgCi0gKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCAKLSAqIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiAKLSAq
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgCi0gKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgCi0gKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIAotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiAKLSAqIFNVQ0ggREFNQUdFLgotICovCi0KLQotI2luY2x1
ZGUgPHdpbmRvd3MuaD4KLSNpbmNsdWRlIDxudHZlcnAuaD4KLQotI3VuZGVmIFZFUl9DT01QQU5Z
TkFNRV9TVFIKLSN1bmRlZiBWRVJfUFJPRFVDVE5BTUVfU1RSCi0jdW5kZWYgVkVSX1BST0RVQ1RW
RVJTSU9OCi0jdW5kZWYgVkVSX1BST0RVQ1RWRVJTSU9OX1NUUgotCi0jaW5jbHVkZSA8dmVyc2lv
bi5oPgotCi0jZGVmaW5lIFZFUl9DT01QQU5ZTkFNRV9TVFIgICAgICAgICBWRU5ET1JfTkFNRV9T
VFIKLSNkZWZpbmUgVkVSX0xFR0FMQ09QWVJJR0hUX1NUUiAgICAgICJDb3B5cmlnaHQgKGMpIENp
dHJpeCBTeXN0ZW1zIEluYy4iCi0KLSNkZWZpbmUgVkVSX1BST0RVQ1ROQU1FX1NUUiAgICAgICAg
ICJYRU5JRkFDRSIKLSNkZWZpbmUgVkVSX1BST0RVQ1RWRVJTSU9OICAgICAgICAgIE1BSk9SX1ZF
UlNJT04sTUlOT1JfVkVSU0lPTixNSUNST19WRVJTSU9OLEJVSUxEX05VTUJFUgotI2RlZmluZSBW
RVJfUFJPRFVDVFZFUlNJT05fU1RSICAgICAgTUFKT1JfVkVSU0lPTl9TVFIgIi4iIE1JTk9SX1ZF
UlNJT05fU1RSICIuIiBNSUNST19WRVJTSU9OX1NUUiAiLiIgQlVJTERfTlVNQkVSX1NUUgotCi0j
ZGVmaW5lIFZFUl9JTlRFUk5BTE5BTUVfU1RSIAkgICAgInczMnhhZ2VudC5leGUiCi0jZGVmaW5l
IFZFUl9GSUxFVkVSU0lPTl9TVFIgCSAgICAiMS4wIgotI2RlZmluZSBWRVJfRklMRURFU0NSSVBU
SU9OX1NUUiAgICAgInczMmFnZW50IgotI2RlZmluZSBWRVJfT1JJR0lOQUxGSUxFTkFNRV9TVFIg
ICAgInczMnhhZ2VudC5leGUiCi0jZGVmaW5lIFZFUl9GSUxFVFlQRSBWRlRfQVBQCi0jZGVmaW5l
IFZFUl9GSUxFU1VCVFlQRSAwCi0KLXhlbl9pY29uIElDT04gInhlbi5pY28iCi0KLSNpbmNsdWRl
ICJjb21tb24udmVyIgotI2luY2x1ZGUgIm1lc3NhZ2VzLnJjIgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy93aW4zMnN0dWJhZ2VudC94ZW4uaWNvIGIvc3JjL3dp
bjMyc3R1YmFnZW50L3hlbi5pY28KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg0NGM5
OTNiYTI5MGU1MDU1YTg5MDBjYTg3ODZlYTBlMDMxMTM4YTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAw
MDEKCmxpdGVyYWwgMjUyMTQKemNtZUh2MzB6Z2hgfWVSZkR5eGJwJUxQUDBQKkQmO0t1fCEqQzcw
Q1AlNiZLWWwqKkZLNT4zU28xPkU7Rl9YVCR9Cnp2XyN5dShvI2ZveDIlNFptSE5FVGNne0pOZG9O
KHhye0RYJnxJZmVDQDBwb3JvXjk0TVhVQDNAVko3VEVYczhwJQp6bVNUWGw1T2FrUEktUWNnVj1s
eHFyYTN0JmA5TCF2WnJLVXU3dEMpZik7SXteUCE5WlItZDJkNj8lLUdRMUZWRjIKeihedW95aThj
TzA5MVlPO0luUjdVVFdTMHtGfkN4WSU1TXIwJFVkK00oU3JmTTVLQCYkcmowTURUKiNFdlIzK2pv
CnpDbUU/Q0gjZTZITmQ2WkBOSE8+eU5WeG9FdW8qa0g2clFuVFFffEFManZhMVhXSFVBYFpETHwj
VEd9TEluVXU3fAp6I0ZobUdpSFhUK2g3dlh0NkFQNChtcEd8ZGxUQ183RS0xKUxGNG1NWGsjJVN4
UHBgP3dranpGak8kSiZabCRXZlMKekhldUhiKmk2KF50OHQjOUQ1YSRkeStBNHxwKzszeUxKZURu
cUxofVd4Vj5wQWwlPVopQ31RPVhLVn51KjVXQGh9CnpYYWFnVkUwWEZ9MFlwPjV1aEZIWnNlMU5l
eCtKQSo/OFM1YHBqUUxCVDNaTmtrbHNqI3Z7cTBHcSpXdWp0ZHJ0Ugp6RGZFKGg2bjslMGRBUWJX
VSNmPHMxJTE3Z0Nld1JWT3FjQV5Da1BiTlFQKEYqISpZUXNUPygqSU9qanhfKXZ5OXAKemxpRHdl
KWhBMz55OWpqNlFCYyhZSEI0YCo8K1Y2YjRqYEBOR14qQGdETnN6MkRYRkZ1TVQjMnN3MEtzNFVt
TVMrCnptTmotM0ZtJFBTektGOHM3aS1jPzd8bG80UlFtaUNXekJhWE4/I3VeJEJvdyRyTXN+Zkom
c2U+Qnc7NHckM256bQp6amR+PTZIe3dEZTkxKjdxVlMkKTZuZXBXciRIK1dFSllFUEVXNU1FPiNh
ViQ2Z0BfJUM8NlB1emd3V3p0PFNsczMKentFSGFIeWRXIyNJZExqRFVPLTxpX3plNmdNQmN6cCY0
MUgrWTR6M1cmcktsUEwqRzhFTlZiPk9lcC04eStQLVJnCno8MzZLZiM1MSh9ak5wNC09Xjw1VkFp
bDN+aW95UnQ7PitLPSZscnlkOHw5d0RudzV+RSspSVk1Knw4SDdUakN4dgp6Tmc+I3phU2tDX1BQ
NXxhcC1jPmVkNzF8WCk0YnVkbDxPX2V7aXl7N3liP0BSKjkjdCtRP1Zqdz5qeCh2VjxGSjsKek5U
KjM1SFh6azgwbVljJUdMUGolVUM8U0M9X1RgVzJ+XyN6RzZWczJKIUUhUHE0QCpmPGVEfj4/ViZu
Y181XyM1CnpZTSQ5eW1UZ1l0M1kqbGdNRXk8TSE/Z1dgWTVOTTNfUSRGcUBBWD4kQFhWSGIwPTJz
azc1NlYlTWg+fUQzIWRJKQp6I04mNTdoOXJoKEFyRG1gbWp6T0opKSshNHZrZnklNTVzYiNiNkt1
WClkNzliMztsQWEheVlkITgwU3Q1OVlZKUUKenNobG83cSspUG1VQEgre0lyKU8pb2E+QWh1XkZB
MSpvK2dTVGs/Mm1DVHV3MyNCZVBoZWQ9KlJgamRpWXFZTE9VCnpfYWV2S2twK21FQVk8OXZwZyVj
OVE9NGdXVENDflMrZCo1aXh5TS1SWTxPTTYrUVRnZGxvaG1jQEluVCUjYHtpTgp6TVU/bHVgaz9n
ITZaJGRVc15UTDBnQHVXSntyWlhWPEh3NkI5enZ4MVNjIUNoZG9qbilPdzExdVZuTUxBJGYjTEMK
ek9iPkR2dnVqcnApOVpTUGBFXn1IV2B2aG1SWkVEcWIlZllaU0JOZClMZ1lsNWlIejhxVnBDJlJr
PS1tcDk3P2JoCnpgUihqUVE5QntkX0k0M2gjI1IreXljSTRjd3s5d3lieDA2NyE8dmI4e2t3PVB3
IWkmQChjKHNXNFJMPjZuM3k+dwp6Tz1NK2RpS1I9SWlkQ3l0aU00Q2ppajVtTGlydT8raXZ0R15o
eXBJVmtoNFJzVFN0IWA2fn5TcDZETGxiNVR7UnsKejdVJDJPN2hpdzx3WVlscXM8PzZFaFBaWD5t
YmlRT3U2WGReZiV4JnFBSF5AZnszM3E7e2RlKX5uT3VHS1A0alEhCnoteG0xYSY7cT1ZfDM5ZHZs
fEg8SGFwbnlTMz1IREg1b2V3JiFzVjdoez1WTWNvKm97YS1ybTBjTDYqLUd2OWImYQp6XiE0KHA1
dWs8fFVZQD56QShteT5WQk81RVhJNWx0Yz0tbWhqWihaflBmQm5AaDklZ201KDJFOytlRWtPUmUr
Wl8Kem49bGJ6Y0lpcnU1YGl0JEBINz0qYzI1SU5GQnVGN0NJVnBoTGIxWVZlM2YpIzBqblR5am1P
Z0BYbXN6Tzt3bzRMCnpgZyReNTtqQ3M5NmREU0IxMnFCbXJrYlNkSWpoUWAmbmt1Ykk8eHZ9bygm
dHUkYlN1azY9dUhIaSV+KXAxVTsraQp6NE9qKE1Xa1MzYj5aaygyOGlEaFdzSCE/LVckN3o5OzxX
T3AkfSteTGN+IWg+Um4+cjFQISVSSWkoVmltbX4tSk8KemR6PlE4RUxEXnl2aHI2YmVBTygoaGc4
PFFRUTBNbktVJkRqKHl4Kn09bWk+UiNgSHk7QEl3dSgwKH1mPDhrOzYpCnpQKmthc2tJRy1zRmxk
fUlqeCNLJnNQRzM+YVd4N0MwI1FaPHVDbF5iS2B0Z2lZc21RYzVSKCEjUClZdWZWaGVTUQp6MXIm
WktkKmV7N0tSJipKVlVkJk00fEtQO211bDNhMkYyPCo2JSEwSCVJKXBsbUcpdSZhdlc2bEkhNWZB
Mnw8QUAKelNOV15rKipTNkUmV2BESmBoSzwzY1NYM3BvdC1TTkU9UWJJQW9EdnBtQTY5KCowXyst
RVg0JWRtM01Ob3Z5PCVICnpLbmB9ISZNZUAtZGJHTk55O3ZZRm09KVNOc04qZUFYWUs2Zj9DanYr
UChEZ2s4RTBjPlhVb3RtI01nNm53JD5eNwp6Yz80Tkl5U3FjOHAybHUlWEpjYitWYEYyaHhmZFZo
WV59MDB6c3x3TyRLNmZaczhGR1RvdnAyMTFzakh+RSQxOEAKem9Tb2c9KzxodSY+VWwmNVREJHdI
NXs/Y0klJWxZZTJTPGg1JEs2XiMtKGtTZiZyZ3dYYjlPV2d0ZVNRRWAxdntOCnopbm0+Q3gldjN9
TCZUamNWaS02TlpodjwtckUhI0htcHlYeV5YQzh+a2tKQz9uMz9JMCNvaj1LMT5GMlhBcHQ4OAp6
bDdXKjcmQ1FyeTY5XjRlV0YoViVWVllrRmJ9NjlxPDEjSnlZWUFyOG5RQipEM2V2Z3oqRzE1P0JJ
RUMtRUE0KjcKejdXbEBpTnFgWHspWmJsKStweTlzcmRPXnRfa154YFhsVUt+XzFRe3cmSUZkYGl6
Yk1oZHIrWHghb3U5bCUtcTY0CnokQz5CZHVWcG59VzxRfFZWVT1wbz4+OUBNZDZ1XzkjY3s0OXdu
Zyt6SnpzZ0dvP2pLSj1VMXV4TlFpUClnN1lncAp6SXBGK0NwNXQpTCYjZHpOaXBBdmxsQD1Fd0Ay
I0Z3QHdyZWdAJjw3I144RDsoOGlTMVVDbUheTUkyRFJZdjZCbkIKemZqP1RsNU9ucml0QWBlQV8w
O09Fd0Y1VlNhO30lRXdvez9uWlkmdGJoNUJ8U3JKZURkcyQ7fTZARSU0Nk9DXiQ1CnpnWGgjYW98
WW1iJFZGdUVeWEI0NlBxOG9ETzYrVjxMRnxzTzZUNn11I2t6KS0jaE0wSCNFeGlKRn0rYk9hVlhN
Swp6OUUtNk8yYiNFd1U1VmFlUyR1VnxgcWVzT1hTMz1lciZXbTlAPis9NClHa2A9Y3xBJjtZLX1h
WUhuUzBEbFdvUHQKekh1bUQlSGpkJi1TNFdaRysocVFJX1l4TzZ4UWNKdkl4KT5qb2JLUSQ5PCgk
UWc+NDxoP1hLbS0tN2ZheERuSFd9Cno0cztkdzJEeWx2VzIlVno/Xlk0ey1Hanh4SHshK0t4NE1k
eyF9XktDIShKRGtrTTF0PSNgWTM8PytwLWxRYSF9Jgp6azk2WUJDcHooOU1zQExFZXozPy1lTUB9
dDtjIyhjKzZROUJqMlVBNmB0QFNkcmNHaz09Rk1XfiZZa2peX3NwRCQKejsldyQqYWVtUFphZEdK
IUB6dSZLYFRVIWdtblk3aEpFd297e3BPbyojUCNkZiNkcUkqQyFjJTJ8TmlAYnBMLTM0CnoqMXlV
Qjg3PVRuS2N+alpQKTZOalY/JTVDU0ZpNDBEPk9FP0J1aXxsUGU5RigyOWMyc0xUVXpoZ3FtezFg
cWdMPAp6cjRKMVB7RVFpNWVJZz1kaCpGfStgYVhzWHZIdFpWajYjRW1gWDBwJHZBVzw9Zj0qK0le
JHo0NHNDLW4kTUZ1N1cKemRhRGVmOS1lSXhUS25SRyQrdk1rNHNBSyo1aHwtMD4lfFdfP1BYfCQ9
Tip8c3FNRGFmNWJLVTc4LSpkY1lTcT9BCnp3VWFiPVNzcSROMjhFJGp2TWczZVJiVXt0NV5wZU5Q
JmpiYUQzd0AyRWJzS3hwZlBCOTJTPTFVU1hvdDJ8RkBESAp6P1g7fHcxSW1rd3QoNVppP0hnJHZD
QC1nTzAmSnxMWiZGM0ZxfWh+MXhlTT1LV29SVWVZfjsxSXFffVhvMihgN2cKekVAeHdILUI9Yl9U
VSpQeFRfYUEoMjhgdUJKMz4zcSthVjx4K0JZci1ePXRzVWNxZ2FVdlJvI2U2b3dYZHZSczZeCno4
YSsrdkdwPFZpaCopUjArTkFfSFhHTlNYSUFmMXk4dVowKnA8WTlpNU41QVFPQ0sla0JeWlRwT1Ql
SztWQnk+Xwp6Q0x5VjV2IStkKENkTmNOVE5vRUpMI1ZsUDx2UChaRzB9QUBKRFpvN0E4M2N6KERL
O3RsYG5PRSEzJDxWa1YqWVQKeipgTStDUTU7ZEtqb2UxPy1oKzRfR1g0PjdFZWQmP2sqbUNXYTde
V2BoWCRlU3AwSU49Zj53Pz1TQ3VQZDluYn14CnomQEghc1l6c0VBUGpPPUM4Mld0Kl85ant8KnIm
e3s9X3BwbHh7NzV7OSU1cT9aP1ViSm4+ZihNTCt0TmRQMyZwbQp6RTRIPy1DJSl7YzZEUFgqaXV+
NkRNU2lDYDs9fih+OyhVSn1hZWt6KXhIN158VHB3M005UFhKWVA3WCpHWFpraH4Kej1TSUZKP3RM
MDBfVXpkczRqdyF4QEFIPX5VNlN8cGhZdWYkcE1VO1l7UUIjIXxEST1Te3FiLTdad3ZmaVpVT3kx
CnojWV9neHh8eH1jbGJmNTlqaFY3c24zPW1NTS1ERkxhP0xPPUtDfVlDakVefDk7QWtleXRRQF8p
dDIjUW1kd2NXMgp6aEx4Rl93UFFKKiZlUHBuPVV2WFJvVkElNSZYI2w+eW04QzFTTXVkTmItSFM1
LW5NLUNeNnBecDxiPHU2bkkje2wKej15WlYyeUBEa2g7M0Y2PFJEZ1lwO3pLfFM+N1llTDx3VVpn
JXJifFdvb25VRnU2QVo5bUJGQ0NjPXcyUmthIW9GCnokX3prUktgUkZAV0ZVKW03Qns+ZTNeU3FR
RTk+eD0oTFp3R0JQKC07Q0J1ZU1vPjdWNiQ/IyhZRm1SeFZWPnwkOQp6JmA8XipASW5UJSZ7NV9X
N1hPSHwyMTtPeVZhMCViSCU0X3ZUfUFAcWJ3KTJuS2dMTUxKMVVSezRRMWN+Rkp2R0sKejluYn14
fEZ3RVJIdj9AMlRrZWJ5TWx6JDx0Rk9LfnVTPUlNVSVjX2c4PCFaRGQtdn1CVzhjMWdwOCVaeHNh
djtoCnotIWxENT1neXJed3JiVUNIT3FYJGNvKHRePXp1UWhnemtVNUtVayopMUlNNV5pd3xObj1S
TW5FX1VRdEE5NUdfVgp6KCtMd01KZXhkdXZjI01AYjB8QUlUTE5pfjRqJUJiJXV9d0BSbztaPnUm
emxBXmlPakpiaSlSMFNyfk50LSU3RiQKekdYfm5qZnVVbz52KX1XJU9AR2pRaEpXaihxfGx5c0o1
djZqRnAwfXVUIWBQI09DWVYkITJAMiVYbSNuO3RKbHc1CnprRy1zVkdHajFvYUxfU2U2U2tpLV5V
Sk9sJVZFND1PZ2J8SCp2NU4zZC1nMVotfDZZOyZ6OC1hT3R+WUg9KnBtfgp6YlpkTXl4O3JuQj95
c3MjND53MjlfZEJCS2A8IVRyaG4jLTZEVDN+PTQ1aG1uMGQodkFzJnIrNXlPZjB2PXpgQWYKei1N
aW15KnxPekV3bCNyKUlmRDVQK2I9eVlTTyZnaFpOTkdhIWhPQUtAWmlCdUZiPFpvJXxtMDc9dGhi
Zy1OXzgxCnoyT0h8cyF8bSlOezZ4R0JoJXx2KDF8QllkdXMpcGJXQ1QqdD10Xnx4P0llT3U9dz0m
RmQ1KVpDbl5QSG1WNERGUwp6O0w4aW1aUlckNkw3Z0VOI19lKGY/U25xd0tSayZGTV4+V1NiQSN3
VWB8eUM8Xn0kQlFYWjdobXo7KEk1QXpZVEIKelRvMkd0I3lzR2FHVSRgRlZSVTs9MDlfbUVEc3tz
S1k7aypDVzgxU0JCajV1QXpRQ3V5OTgxaURHM1ZULU9gOWU+CnomTDR+JkpORF8pblVnOTE/ZlBg
JVY7JFhIOSFtR3Rnd2VmS14lITtPP2d9MGtPdU1fUjQmN1peaHdkej9PP01XWAp6Zk4zYWBKbTZo
WFNJWFg3JXtve1lXUXNvWXFHT30jNkt1Z0k8Xj98LUVuIzAhMmxOQlJsSHJNRmlOVmsxU1o2U0EK
ejB7Wm1uYk1PODQtKyNKPF48NWFeTmpFPEFxdVVFPk4jNzlQbyp6UUR2ViFUPnlxZmVLX3M0ZzAw
X25UaWZwbHxMCnowTnRFdjA7WnUlQC1Ya00lJGpzN0o2UChfPnMkfipNVSNCIyFYT1dWJjJpKCNK
d3FNWDd4VitoNjZPUFpEfEtDQgp6ST50UUtFblNadUpAVXs3Jn50OUVDdFhrVHJKRVQrNTt0WkEo
djJBYlI1YWI2aWF4RFEqQytjPztVcGdfe0ZwSU8Kek43cDhKKTNweClGQlAwLThwXjxQb3FkRTFX
VDZBUFpsZDFNS1BPMT9vRUBPbDBZMGM+M0cpR1NURX5Fb0NGVE90CnpGbTVYSWN3ZGIlMjtXY2p0
dyFJYmRRc3QmPkklM1gqQ3pWVlJyY0BPND9POWNfZE11STNhPSspLTBBWUBEcyp7Tgp6NzVhTEY4
K3w+emF4cTQ1bnJTRWw0fHVQPFE7b2hFPWZPST5xXkBoSUpMfWYkZUVZczlvJE9zel81KnhUPWt4
XmoKejQqflpGcWpBSn13MC0kYm9qU2RhYnE0YiZjV15qOyNXdWVnPz92Q1JvaCQ2PzwqYC1pPihU
RD83NWo1KFhsMSVNCnp4RlRIYDs3YUhGeHpQRE8mVUNKfjZQQGVuTmF1UE8wQ3xBUnp5bl4kVHBW
MFU+VlBpanlxcj1eK0pHKEsocmBEKgp6OVRZQ182PEMrbHdINWI9QW92UU93RiRzISV4IW1gdVY9
QjJaNkJPT1hMPnIocklHSDhEcyp2fTg9WXIrPUxTQHkKenZ3ZENZT2ZNJW8tUUFIK2Iqbig5eHxG
QXJveXlWNGpeKmU/MllXajRucUJHT0dWcCpHR0xWSWl2JVE/OSZockRnCnpFcndLKndxVzwtaCRe
eGl6UThCa0FLMXNxNEJWJSYqTzBIaklGQGJDPDgxaUlrdDNmaG8tdnY3K0xvdFA5VipsRQp6X0xY
VF8rZSk7d3dKUi1jPXxXNElKSmFIMUN0QjNoa3JwTDcoQmd5JmJnO1B7ZWM5NVF6SEdzMFpiZV9i
UVc4ZyoKendtIWoqdmc2N3RYazNBXjgjflpeKjBDVlRrcnA7JXl7dFI4T0dQQD5nV0lNTHdeOUYh
YmYmSz48K3JnVl89SXQhCnotbHd0R3o8TVA2Zk1iayVIKHFhVTthPDNQUCFiKk1QPU9BbV5gYVl2
KlhaYGAraHlZQiY2X2xEWShMciVYR0AwQAp6RWE+d2w9QX5rRHllO2tCeFE2KGZ5RTFYPD16alhW
THEkNkZTfjwkXlNlfWt8YWlEXihqJiFWaklmNzV7TzxqKkIKenZBQHshVmMhYmhaRm5DeDJ5TVRK
PnZfMVQ2Ji1DP2oqaG5GeyhkSyF7JlYqUkBwcGFuP0NEY15iYzkjfjJ2N2R9CnpsZVZ1fEs9WSE/
KTRvUkxiZys/YDUleEIrcGppWGpPRnItJCU0I30pYHtAVkQ+bTVwbW5fMUU0JjIxPkpyN2F6Swp6
KXNGcUptd3BeZHZMeUpYXzV0Pk15JV5RdUpFSl87WXYpSEZlZWByZy16M1V5WUU2ZSYkRHcyIW5M
ZzZsazhZakYKekV6XklecEt+WFUpMSplOHZAX2JBX0NeYW1ycEgjSGhZIytUa2t7KCtsLXJ7cXdI
eGheR3A3VE1FJEJjS09GRWNuCnpyVEQ9PHo/WHdiUnNgUiQ9aV9tSG0zX3dFeURvZlpSTmArJXxH
PThGdm5rKWw2UmM8LShBYmpwIyN6dUZab2hwXgp6P0NIfFZZNUYjVj9iNT03YH1iKjVydiV5JVZM
Pl5PZj51VVlRe0xfIXJManNIYHR7PDw4TU0yaDhTUmMldXFWYmAKeitKdFRSQWJud2ZifmRkaipD
T25fKj1JYUlCKjZFc1VBdy1EdjlufWkzaGooQ3J5VFktQyZxJHlhWGFwNlh3RWI8CnorOE4yPHZp
eHlmPSRBKGlPTjs/KzkzWCFEK2kkZXMhPyRUfXMxP2xeKDIzQiNTfDduX0VlK3FWOUAkSH47Pnl2
RQp6MjB9dkdrKyNnRlpUSjlSYSQrcntlZldxbXEmQEBUZSYpJHpDa3RhfDx5IyRUVFo5PkhZb0cj
WSNANzB4N356OFUKemNka1BadWJlTSlKaXRIcmRfMzxFSl5KQiRySmRDfTgyYk9pdHM5aW5OPUk4
K3J5ZDVqcSVTN156KDxUQkpqYiFgCnptOy0qaT01TkZMeH40LUlaNE5WfCZFYnFOTDdOT3drTWpv
RDdVeDcpY0MzPX5Tfn5jV21wfWpibyVaKWpGdyR3TAp6LV9TT0VRRzdCWl95fUx8RVh1eSljeytn
by12UWRIX0Y9QHxKaWpuTDMkdmkoUSVCUzl6eTEyJHpBJFdhRSZjaUEKemt1UGs9Jj9vb15Vd0lD
SCVmOEZ8ME1DYWFwMWFSaE40cFN6eEJiJUMqRWZNNC1uZ2I7Vj07YS1LVFhwWl5MWjtXCnpYPkMy
cm0kbjFuOzNMKTxadTZobWYxR1g5O2tEOz9KWnRsSj1ZSmRQOztZZDR5PDdmckppLTUyIX40KkBU
R29IdAp6N0pTOC1mdk53P2c5UkJPI0VnfiRydTAocyVSPGNRIXshbGtlS2w9ISk0dXJnazNWUmB7
MHkyeykxSDxGfEFxY2kKej4+SyM2amkyaW5LWl8lSGUtazdtbUlqLSVaVXN3Zm52b3VBeHlGWmhG
PUpldk5fNGE2eF8pZ21eJS0/Q3Q9SC1OCnpGRFdKNWxOSlAtPitNUnQyS0x+Q3c1ezVPa0x2ak9r
PXRMSnpnc1hUN1BKYlpnI2tpaGFaTzdDN1MqKCVNWFZvSwp6Ny0mYHVsQEkoTTE9e21rZDAzQTVt
JVpTQV9kKXhuRyVMV09TVTIwelkpYnA9Z1hSfX1STSglJj83dig7ZEVkNFAKenZ9YFdSdHwyNUEq
MFFDQUF2Vk9uKThPezhyMT9QPkcoWFQ+QjBJcDBHKSUzKmBeeE4kNV5aYlB7dHM/R3poQyV3Cno2
RXkkaF9ofns2VGduYnA/WFclQW1HOz5PJWBmPDxgaFNXMm0takU4JWQ+SSslSWVwVj0yYUlHM3F5
SGRUZjAyWAp6NTgqdjtPJmlKenc0JHM0T1VtU1MlQioyN0cwV2VBclZaPSYrJWJSbyROXmR5P24o
dWA8fik3IU0wU3RxU09PN2MKemhqO0khKElKJitaVUViMmQkMEBwXkp8c1Vgdm82eXxINEAlYCFE
d29kP3Bwb2AtZVpYUXUkb1dTNGI/WlV6ejZECnpiKkFqdjR3TXlBby0lOU4oWSF6I24jPTd5Klda
JDYpdiU8TFNFQWBSLVliKzllIU8+dzdSVVFaZUhtUVd5e1NYIwp6UGoyaDcwQGtMUkg7VS0oIzBa
KkV2eilZPlVCXi1TcTRAPEx2NDZtTUVCbWtRLSl5amtWaCshJD9Mc3FrZikrKTIKeighJDdVbHdH
ZTlXITc8fmNfOXVvbXZ2P1krUjwkOD1UVHVrYm9iNn0+NTZINEI5QUB3IyheRGFyak1Cc0h1aD5v
CnpLUj51PEd+U0BaUHspNk17K1h0WTk4OTBvc3pfT0VLUmN8bF5hO0xVP3k3NjI7cmBpQD1mR3pl
TCRmPDEoUjQ0Swp6IV9odnBxO1ZpRWkxTWJhYUNlJGxtLWBqK0g2MTc9eEg2cVRiK1c4eGw9cHht
M3VqVGZ1Tys0WFNkX3EkV18oNjsKemBRbWYkNjtGNlBaQ3xeSi1WT0pxZEVyJjFQdykrNjJXUTZJ
X0orP2Q8fiM/d1U8X3FXb2xLdjQyK0NeVU1KcmxICnooMn1JdXY+P2BCPUk0ZDZvLWh4fVMrfE9R
e3JSVjJ7UFpMSllKalc5em8zfmxvb0pmUSRfVWVhdFZ6T2AkMDYoYgp6PmNCMkpwMEYxeDN6eUVI
cWp3VmBYb3t5OSE4ZVFAb09gcVhgc1lWSCEqa3c+YHtmIyooUHAkeXFNMEdDdzVDJWMKenQkWnp4
bWJRcVgxJnhDI0U0bigoanE7KCltPlFKSD4zTERVRyZmUjV7MCQjdiljMnF7VmJ5NE1KJER8diZO
UXZNCnp5fkk+TUpBR1F4e0w5aHc4cyNaSCgxQisxXz9YWG43YmUhYD1qcG9xWSNtT15UMUM/R0hx
b0BRZUxTdHsodX4lOwp6KFNsfTJgVmY0QVpge3M1dSYra1hAMmRZc2Vla2g2LV5XQDsoZlNeKFg/
MiVtVEpjJnVFcWJMc0tYWnJCeXl6Tn4KejUkUXtGPlUtMHl5NDdlI29obWU9UiVKPkx1MU0yXlRx
TEZpYXZjSj00PldMSUQrMz8rQXFSUXJmeGdVYDBJN2RMCnpRZTlmc0kpK3d0WUQkWmUhd0ozXndF
Y1ljenJeezhTX2V6K2dDa2c5cj9wRj5TPlphYEdeaV9XOU1HQjhfa045NQp6Y1dYJlkrczR5XjxP
c0BZUWl0WD4zWnsmUDBXYGFUQUkrLW9Mb0A0bihUdXZEbHBiMSooKDY9fW18b2ptcDlVU30Kei1+
Jko4QVArc3pIQHw1KEVxKm5JUig1Sjg/UVE3T0xHcj5FXz1LfjJfOHA8YmBJWGlPezRDUkckZERt
O21WQjFoCnpJRSlzKCtLNl8oXkE+RiMpc0hwfT19em5XYil3YTh3eE1PKnA5QD5ZNWRXVCNHODV8
MitfPjc1NWdTNXRxSndDNQp6ISQ2dUg2K3A4aFl2X1NJPXFMdnRfI3BAUjE8ZjFNbEQzVSRXdFNH
VHUxYG00MmxmYFdoJGlAZUgzdyZFYz5sbkAKej5sayhue24tX0sqODxabWNyOGxEVCVQeW9XSjte
K09LYmJRUEoySW9rOChhM1Axe3I2cUFlcikpNWY9WSh6P0UjCnpYK19zcFgtUzc+dzRoWlMmMkpH
eVM7PGs5KnxZJj1DUG1QXiNRSig1ND80PWgybVp6RjVAfnMtN1BQdSZkLWBsfQp6Y2N+WnBWUHtx
TWJ+R3V9aHV7T3xFYnNTc3YyVntremNyYD4jP2t0ZWwkMVpgdmkjS08rTyU8NFVwbUMrcTVHI3kK
enBna1h0cW55O1N3RWYpP3dCX3g9dn10JWhUMGZ7ZXQ/dTI0Uj1uQWNtVVpEZXoyMVRyd0A7PTt1
UWlrTDt0c0ZTCnoob1FYRGRBQnlTc3ooUH0rckp4YTlOSV85TGw1KnBGWjZGMSh2emsodFZPVm1e
SU49c1ZCZkxje04/I00+Y0QqUgp6e1JQJHxLMGtpfkopZyNlKHF8KzMpMGQwMD10JVojSS1EX2A0
eUxFa0tHZiV2ND04OEN5Uj44Yzd9YEU9Nm01TkgKeklCaVdDTXE5PVhyN2RIKXpjQHg3YmQtWSt7
RSZrQF5ndGk8WnMwbWlpTE43ayRKc3J2SHhKbUttd0pEcCoxPz9YCno/U25kS3tWPSZqVl9NT3hH
a3Ypdm4rbnp9cn5LdU1XY3RYMHglN0dGRUlLcjJJXzF1cU4oYSY+R3R5fVBeaHZhVAp6Kzl4dGI5
KDB0MDVCIWpXRjZjcGVTQCh7VioxV080LUZZMH0hI2ZvQXxFMW1eOEheKXltYkpvSSFoRkQtey1f
MTcKeiF8QEdoK1hwRmhBIWo/QytwJmV0WjI2MiVaQ3BudSpSU1MhdClTenBtUW50U0JfI2tsJUUx
U0kkZXI4MW5ZTzw3CnpIY2dMPEFuMytpI2R5ZDIyZXlzemp4cURuQDl6eGlBbTUqMlBHZW9kSStp
aElHQ3lsXkpyWk1SKD50VC0jUUhVSwp6PCF+LXRLNkhUWnNlOT90elRGWlJfdlZsV2pmUWdZNzRZ
NipRXzNoeFBsJVNmcGNBXlcmVHpsNFd9a0hveWxjVnYKej0zbDxeKCk9d2VXKnJ0LVRlJlplcGY3
TVFndzY0PEIrPENxeWpDXyhxJjMzXihjYmg9PXtXbSNZNSFpaiM/TXkoCnooKW52diglJEopQm9C
QlkxNms7UkY0bD9uXms/ekBmbz1VYEAyP0goIStKNUVFVXtPQHlnKXMkPWZrKjRlPmE2Ygp6PmZE
aTFCRXV5M0h8KjVrTW8xdjcoWktePWoxJFBoWnw+ViRJSjstdnxGIVEyTn53bng+Y09AQCFgQHF+
MyZzRnwKekl2SVJGcCNRRXdeQkwhQEk1V24lSH5hMHp6JlkmUzlfTlBzeT1hPjQkXlBLajJHMmxU
cFY/ZldPJm85R3s8KTVOCnowaH0mays3OEF4b0tAbnltMVZHfHotSm88IygxZ3MoLS1qdGV8U1J2
b2BnVHhseiQmM1NMbEN0cVdebWA8Skk1Zwp6I0hxaV87cVF4PlVIO0JSaXdsdipfZXpOUTRXfH5U
QkZ7NVdpOz9+UklpJGlsMUFsWG9IPmdoYEA/MX0/LWRaZXcKeiRIVk8rZjUqZV5CPnhoXmM+ZWVg
bURMZil4b1ckemZOVz5BLUhtXkBxaHNhVlIhJWJkX3dxTWRWQipBeWsmSjFLCnpiJk1oZ3NYIVZ1
bHR1bXgpejF9U29nKX1VXkhjaU0pKjtPKXplZmxhd3NXS2h0O3s1bDI1c3gkUnxxYGRoMEpyNgp6
ekNhPUM9bTFeV1dCYiMkP1ZSWHRTOWBpUSpvRSVEPVQ3KDJlQ1dZVWV+SjUoZWQrJFZzJnNGTjMq
Q0xncDF5N0MKek5SVXplPTxvdWpPMGRCSF5iZnwrPjVnNz55SVZRQiYpKlo9cFUyPGlAVjV7VG1l
Z1U/UiR+NzRMI0Z3PTN6VUhlCnp5cFZ4eGB1bElna0Mkby09M2tkTmJednxkKFV0Q2dxQCNRTTRa
fVZEN1VvXz9rUGBGdjlRT2ReSEphcSVAMF5nSQp6dD89SVkme09Kd0Y2YjsjJHg7YUxIRkhkVnk1
OFFGWnU5cDZjUnVsPEpOI1hSakZDMTQlSn07UEopUDZIYDh4PEwKemV+WjZgZkcrNiN0OUliPjQl
NH5LRkwxcVleN2paZ2BDQUJtJS0+U1RHPUMjOzZCckFDI3hjcT9YbkItcmR8VT5kCnomPHpgPFI5
bGpgdG10cUQ5bHRCREw8aXJmdFZpeWZOTFFreC03Q15uez1WVmJLdnlhcFI4aXVaJT03IzdLOXkq
SAp6eDVfMU9xUEg3Szl7eDdyTkMkNyZGRGxKRyg/YHI1R2tgOTQ8bkk9eV5yUSMoPyRRckd7OXVG
fGc7IX0mSH53fmAKejMlfSMpPUJVU3x1RmtaMV9Ke1E3KElYPz17alB7azUzYTU3QCUhQDJ1VTg9
MGZHdHhXOzglVk43ck1tbiQxZ0l6CnpObEJuej9pN19jMyZXWjJxRVRIYnpxSkVoPG9EPntVREJt
SzthdGx3O0xQI2NzWGItNilYQlZ2VloqY3lJM0dGWgp6P0UhUl8temxHYyNhNTNDVUEqYnhpMzI2
aCkxWjZUa19fNkI8VX43fklANjctUn00KXt7X0NJM0RXT201Vyple3QKem5fMyVpZGZKOUpWKDRU
T0Q+fDhBWkc9LXo/ZGtmO0RmKTlzTHFuSE45akU8azc4I09jYHAkXyViaDIzbU1QRGc4CnpWR0F9
NT82MkZ9ejdgIzhXSiZvOSNLJlVRU2p9SH13Pj5AblFGLVREIWtfYCskMiZLdjs1RlozSip2RTNG
WHYmNAp6P2QjVkFQOFNfYWFIUypCbUlgN0pUY3t7YkFNYWR+OSk1TUlNMU5ASnBZcXg2O29kT0B2
WUhOI14qWj8qMD01TzQKejJLQUBJa3JzM34lMko3dUUoM0A3SkN+eT92b3c9TkB1UD9MWTBmSmxi
VElPLV57ez4zeGhNaFlnQXJDUWd0ZHs1CnpiT0M+enQmSCZhQG5mMWh1b0c+TXVxezx6WlVidmNI
P2QhfEU3cTB2TWNCfjNgcXMyeGpnZENRd2dgTEx3S1RoZwp6V3l9WXxmYyVhbm5ZMWp6TmlRI1RM
TjVjaE94bDBsbiUxR1RyLTdYY2R4SkQrWT9yWnM9WiZlWU40Ji15cEQ+WEEKemAxTD1BRjM5eFBY
SFVfTE1uMDVkcThHTjx6VHg8cnd4bll0JTR6Nkd5UF9QNTVtfHdERj9LU2heTGc9fkppWkpBCnot
WCRDISpoMkNnPyVzJWd5amZeaUVZbTsjXmI8fCorPkV3RnNrJkpnWV9XYUFgND41eiZ3ekh1eE5f
VDZHeS1UZAp6Nk4yYnhLMVZrVVhvb1l8bFo8JXh3K1cjO3I7ZTZyQllaUWw+ZUM2ZEJCbHl8Z1R3
YkJ3I0R9Sz5rbWREYGVTe3gKejh8NVZGWGpjPFlCfko5RlpCNn4/aS1qfCY9KWhMR2QycE09alJW
ezBAYGdvfSk2YGU7Zj92YiM8bXo7SlR7aGkwCnptYUYwKiN8UD13N3lEXz8lISN4aioyQWRwKWhQ
aGBCYz1gU1ByRntKTEF6ZktxMX4tKChWb198V2c3OXpMWCRVPwp6K20tQjN1bU18fFVCZWh7dSlN
Szk/ZHtaJUAxdD5hO0xYUFJfKDFuMl5tMGckQD4waGVAd0IlaXBafkxOKmY2d2QKem5DN3ckWTQ0
N3EpJTxTbF5XbU43QExMX3woMih8WWN4Y0MkI14pbkNPQnBTT1BVd2FXTHp8eylFKn4qdlNidGdA
Cno9fXZpWF9uYGE8IXhWZnRsPTVFISQwdkBFezZ8dUhPSV4/ai1LTz9SJVFONClETVMweWt8OzBB
T1gqOHo9Nj4/Pgp6bUB8PSVqMmtGKktvQGtEV34oZTNlNFhecDdARklfbzdPYnFJV1M9YW90UXFK
JlNwKWFeTlZObEgpRU9mKXY5Y1gKek9SS1d6Ozw1fWAxfElPUFh+Z2Y4U1Fhezd3QkR3XnUkK0FV
Tk1yeCEpXndwMntFbGpLYCRue0hTVTM3JjslR1lsCno+SEdZaCZJazB4TjI2JXAmfkNLKHdIVzVu
KGNFQWNmKCo7IUlxMTNsWkVDWiRKcDZ+UXc2X00oKVEmQUVvIT9RKwp6NHN4WG9GR35yZUt8PmpN
UkokK0sqUU1EamleaDhZRTY8PCRidXx9JVI+Y0N4SHFaVWRGOGp4KTdKclJZS0Z0N2YKeiVsUGRz
WX5mRmc4MkBmcENsSExrcUwhbyptcFE/WDkqaHg7YiZNaHZOUTM1NExjb0JhXjNaYFU5Jn48YEFL
alo7CnpRdnp3d3hFdl84NTFHRGhiJG1zLUtBeFpScm0kUW9LcEErelloWUdEPVBKSSg2fWB7aip9
bms1dE5GcFAkODdkMQp6dWVUNVg/dVlsN2owP20zPSpyMEk1fEBUb3IoKitzQn5BPWg9O3hWLTxw
OX1NK21yYl9gMFNETnBQd0dkWnlaaEAKeisofGgtMHtGWGVVOzZCVzkrSE17QUl7Q31DdXlLVmhV
S1IqKSpXbz9OdkNgSSh6JFVoPkRQTlY8an1kdGR5b3wpCnpjel51c0ZFVUBXWXE4YDM5ez9IMUdL
IylALUdAJGVeT0dwKDZINTBfOXlHZE5lfFAhXzllPVppbyhIXjtWT2dOKQp6TlFkZl8tXnBLKEJj
MXY4NzJrWk5BSHReKD1JfWFEUShxMlYkZil3YF9PfHJudkxLMEw5RG54NzclQlZiPEtPNnEKenRD
d1dAeztpdnx0Wk80WkE3b2Z3ajtsPXhJP0NASER6VXRPSkx4PDJBe1ZuaHFHTkExcGdVamVrdT5h
JFI9K2NsCnpAP05oKWtZUmJXQU5xajQ8bWF7SFoke0RhKWMkbU8ob2l9emFXSXxXSlclanZMcHRe
RzVJWGJlQ158RGA2eiVXTAp6P0ByWUkhI0x2Zmh+KjdFPW5RYCZgNjIpPldLNzIzeTUtU2NiYUxQ
O2JaJTY4eytfO1YzN2B4LUVOZTc9SDlnU0QKenBseGwhPTx7QWxibThxejU9ZXVGR1ZvfnByTnZ6
U1F1RnJffEx2bmZnV3MpfHJxaHM/JTRlOyl5aSEzMXZpfUVrCkN1Q1hvdgoKZGlmZiAtLWdpdCBh
L3NyYy94ZW5hZ2VudC9tZXNzYWdlcy5tYyBiL3NyYy94ZW5hZ2VudC9tZXNzYWdlcy5tYwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMjg5YzQ0Ci0tLSAvZGV2L251bGwKKysr
IGIvc3JjL3hlbmFnZW50L21lc3NhZ2VzLm1jCkBAIC0wLDAgKzEsNjYgQEAKK1NldmVyaXR5TmFt
ZXM9KEluZm9ybWF0aW9uYWw9MHgxKQorRmFjaWxpdHlOYW1lcz0oWGVuVXNlcj0weGQ2MCkKKwor
TWVzc2FnZUlkPTB4MDAwMQorRmFjaWxpdHk9WGVuVXNlcgorU2V2ZXJpdHk9SW5mb3JtYXRpb25h
bAorU3ltYm9saWNOYW1lPUVWRU5UX1hFTlVTRVJfUE9XRVJPRkYKK0xhbmd1YWdlPUVuZ2xpc2gK
K1RoZSB0b29scyByZXF1ZXN0ZWQgdGhhdCB0aGUgbG9jYWwgVk0gc2h1dCBpdHNlbGYgZG93bi4K
Ky4KKworTWVzc2FnZUlkPTB4MDAwMgorRmFjaWxpdHk9WGVuVXNlcgorU2V2ZXJpdHk9SW5mb3Jt
YXRpb25hbAorU3ltYm9saWNOYW1lPUVWRU5UX1hFTlVTRVJfUkVCT09UCitMYW5ndWFnZT1Fbmds
aXNoCitUaGUgdG9vbHMgcmVxdWVzdGVkIHRoYXQgdGhlIGxvY2FsIFZNIHJlYm9vdC4KKy4KKwor
TWVzc2FnZUlkPTB4MDAwMworRmFjaWxpdHk9WGVuVXNlcgorU2V2ZXJpdHk9SW5mb3JtYXRpb25h
bAorU3ltYm9saWNOYW1lPUVWRU5UX1hFTlVTRVJfSElCRVJOQVRFCitMYW5ndWFnZT1FbmdsaXNo
CitUaGUgdG9vbHMgcmVxdWVzdGVkIHRoYXQgdGhlIGxvY2FsIFZNIGhpYmVybmF0ZSBpdHNlbGYu
CisuCisKK01lc3NhZ2VJZD0weDAwMDQKK0ZhY2lsaXR5PVhlblVzZXIKK1NldmVyaXR5PUluZm9y
bWF0aW9uYWwKK1N5bWJvbGljTmFtZT1FVkVOVF9YRU5VU0VSX1MzCitMYW5ndWFnZT1FbmdsaXNo
CitUaGUgdG9vbHMgcmVxdWVzdGVkIHRoYXQgdGhlIGxvY2FsIFZNIGVudGVyIHBvd2VyIHN0YXRl
IFMzLgorLgorCitNZXNzYWdlSWQ9MHgwMDA1CitGYWNpbGl0eT1YZW5Vc2VyCitTZXZlcml0eT1J
bmZvcm1hdGlvbmFsCitTeW1ib2xpY05hbWU9RVZFTlRfWEVOVVNFUl9XTUkKK0xhbmd1YWdlPUVu
Z2xpc2gKK1RoZSB0b29scyBub3RpY2VkIHRoYXQgV01JIGJlY2FtZSBub24tZnVuY3Rpb25hbC4K
Ky4KKworTWVzc2FnZUlkPTB4MDAwNgorRmFjaWxpdHk9WGVuVXNlcgorU2V2ZXJpdHk9SW5mb3Jt
YXRpb25hbAorU3ltYm9saWNOYW1lPUVWRU5UX1hFTlVTRVJfU1RBUlRFRAorTGFuZ3VhZ2U9RW5n
bGlzaAorVGhlIHRvb2xzIGluaXRpYXRlZC4KKy4KKworTWVzc2FnZUlkPTB4MDAwNworRmFjaWxp
dHk9WGVuVXNlcgorU2V2ZXJpdHk9SW5mb3JtYXRpb25hbAorU3ltYm9saWNOYW1lPUVWRU5UX1hF
TlVTRVJfVU5TVVNQRU5ERUQKK0xhbmd1YWdlPUVuZ2xpc2gKK1RoZSB0b29scyByZXR1cm5lZCBm
cm9tIHN1c3BlbmQuCisuCisKK01lc3NhZ2VJZD0weDAwMDgKK0ZhY2lsaXR5PVhlblVzZXIKK1Nl
dmVyaXR5PUluZm9ybWF0aW9uYWwKK1N5bWJvbGljTmFtZT1FVkVOVF9YRU5VU0VSX1VORVhQRUNU
RUQKK0xhbmd1YWdlPUVuZ2xpc2gKK1RoZSB0b29scyBleHBlcmllbmNlZCBhbiB1bmV4cGVjdGVk
IGVycm9yLgorLgpkaWZmIC0tZ2l0IGEvc3JjL3hlbmFnZW50L3NlcnZpY2UuY3BwIGIvc3JjL3hl
bmFnZW50L3NlcnZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3
OTQ1NDQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMveGVuYWdlbnQvc2VydmljZS5jcHAKQEAgLTAs
MCArMSwyNDggQEAKKy8qIENvcHlyaWdodCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLgorICogQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCAKKyAqIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgCisgKiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUgbWV0OgorICoKKyAqICogICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIAorICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgCisgKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAqICAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSAK
KyAqICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IAorICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciAKKyAqICAgICBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCAKKyAqIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIAorICogSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSAKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIAorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgCisgKiBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgCisgKiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIAorICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIAor
ICogV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIAorICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSAKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjZGVmaW5lIElOSVRHVUlE
CisjaW5jbHVkZSA8d2luZG93cy5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisKKyNpbmNsdWRlIDx4
ZW5pZmFjZV9pb2N0bHMuaD4KKworI2luY2x1ZGUgInNlcnZpY2UuaCIKKyNpbmNsdWRlICJtZXNz
YWdlcy5oIgorCitpbnQgX19zdGRjYWxsIFdpbk1haW4oSElOU1RBTkNFIGhJbnN0YW5jZSwgSElO
U1RBTkNFIGlnbm9yZSwgTFBTVFIgbHBDbWRMaW5lLCBpbnQgbkNtZFNob3cpCit7CisgICAgaWYg
KHN0cmxlbihscENtZExpbmUpICE9IDApIHsKKyAgICAgICAgaWYgKCFzdHJjbXAobHBDbWRMaW5l
LCAiLWkiKSB8fCAhc3RyY21wKGxwQ21kTGluZSwgIlwiLWlcIiIpKQorICAgICAgICAgICAgcmV0
dXJuIENYZW5BZ2VudDo6U2VydmljZUluc3RhbGwoKTsKKyAgICAgICAgaWYgKCFzdHJjbXAobHBD
bWRMaW5lLCAiLXUiKSB8fCAhc3RyY21wKGxwQ21kTGluZSwgIlwiLXVcIiIpKQorICAgICAgICAg
ICAgcmV0dXJuIENYZW5BZ2VudDo6U2VydmljZVVuaW5zdGFsbCgpOworICAgIH0KKyAgICByZXR1
cm4gQ1hlbkFnZW50OjpTZXJ2aWNlRW50cnkoKTsKK30KKworc3RhdGljIENYZW5BZ2VudCBzX3Nl
cnZpY2U7CisKKy8qc3RhdGljKi8gdm9pZCBDWGVuQWdlbnQ6OkxvZyhjb25zdCBjaGFyKiBmbXQs
IC4uLikKK3sKKyAgICBjaGFyIG1lc3NhZ2VbWEVOSUZBQ0VfTE9HX01BWF9MRU5HVEhdOworICAg
IHZhX2xpc3QgYXJnczsKKworICAgIHZhX3N0YXJ0KGFyZ3MsIGZtdCk7CisgICAgdnNucHJpbnRm
X3MobWVzc2FnZSwgc2l6ZW9mKG1lc3NhZ2UpLCBzaXplb2YobWVzc2FnZSkvc2l6ZW9mKG1lc3Nh
Z2VbMF0pIC0gMSwgZm10LCBhcmdzKTsKKyAgICB2YV9lbmQoYXJncyk7CisKKyAgICBPdXRwdXRE
ZWJ1Z1N0cmluZyhtZXNzYWdlKTsKK30KKworLypzdGF0aWMqLyBpbnQgQ1hlbkFnZW50OjpTZXJ2
aWNlSW5zdGFsbCgpCit7CisgICAgU0NfSEFORExFICAgc3ZjLCBtZ3I7CisgICAgY2hhciAgICAg
ICAgcGF0aFtNQVhfUEFUSCsxXTsKKworICAgIG1nciA9IE9wZW5TQ01hbmFnZXIoTlVMTCwgTlVM
TCwgU0NfTUFOQUdFUl9BTExfQUNDRVNTKTsKKyAgICBpZiAobWdyID09IE5VTEwpCisgICAgICAg
IHJldHVybiAtMTsKKworICAgIGlmIChHZXRNb2R1bGVGaWxlTmFtZUEoTlVMTCwgcGF0aCwgTUFY
X1BBVEgpID09IDApIHsKKyAgICAgICAgQ2xvc2VTZXJ2aWNlSGFuZGxlKG1ncik7CisgICAgICAg
IHJldHVybiBHZXRMYXN0RXJyb3IoKTsKKyAgICB9CisgICAgcGF0aFtNQVhfUEFUSF0gPSAwOwor
CisgICAgc3ZjID0gQ3JlYXRlU2VydmljZUEobWdyLCBTVkNfTkFNRSwgU1ZDX0RJU1BMQVlOQU1F
LCBTRVJWSUNFX0FMTF9BQ0NFU1MsCisgICAgICAgICAgICAgICAgICAgICAgICBTRVJWSUNFX1dJ
TjMyX09XTl9QUk9DRVNTLCBTRVJWSUNFX0FVVE9fU1RBUlQsCisgICAgICAgICAgICAgICAgICAg
ICAgICBTRVJWSUNFX0VSUk9SX05PUk1BTCwgcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAg
IE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwpOworICAgIGlmIChzdmMgPT0gTlVMTCkgewor
ICAgICAgICBDbG9zZVNlcnZpY2VIYW5kbGUobWdyKTsKKyAgICAgICAgcmV0dXJuIC0yOworICAg
IH0KKworICAgIENsb3NlU2VydmljZUhhbmRsZShzdmMpOworICAgIENsb3NlU2VydmljZUhhbmRs
ZShtZ3IpOworICAgIHJldHVybiAwOworfQorCisvKnN0YXRpYyovIGludCBDWGVuQWdlbnQ6OlNl
cnZpY2VVbmluc3RhbGwoKQoreworICAgIFNDX0hBTkRMRSAgIHN2YywgbWdyOworCisgICAgbWdy
ID0gT3BlblNDTWFuYWdlcihOVUxMLCBOVUxMLCBTQ19NQU5BR0VSX0FMTF9BQ0NFU1MpOworICAg
IGlmIChtZ3IgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgc3ZjID0gT3BlblNl
cnZpY2UobWdyLCBTVkNfTkFNRSwgU0VSVklDRV9BTExfQUNDRVNTKTsKKyAgICBpZiAoc3ZjID09
IE5VTEwpIHsKKyAgICAgICAgQ2xvc2VTZXJ2aWNlSGFuZGxlKG1ncik7CisgICAgICAgIHJldHVy
biAtMjsKKyAgICB9CisKKyAgICAvLyB0cnkgdG8gc3RvcCB0aGUgc2VydmljZQorICAgIGlmIChD
b250cm9sU2VydmljZShzdmMsIFNFUlZJQ0VfQ09OVFJPTF9TVE9QLCAmc19zZXJ2aWNlLm1fc3Rh
dHVzKSkKKyAgICB7CisgICAgICAgIFNsZWVwKCAxMDAwICk7CisKKyAgICAgICAgd2hpbGUgKFF1
ZXJ5U2VydmljZVN0YXR1cyhzdmMsICZzX3NlcnZpY2UubV9zdGF0dXMpKQorICAgICAgICB7Cisg
ICAgICAgICAgICBpZiAoc19zZXJ2aWNlLm1fc3RhdHVzLmR3Q3VycmVudFN0YXRlICE9IFNFUlZJ
Q0VfU1RPUF9QRU5ESU5HKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgU2xl
ZXAoMTAwMCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBub3cgcmVtb3ZlIHRoZSBzZXJ2
aWNlCisgICAgRGVsZXRlU2VydmljZShzdmMpOworICAgIENsb3NlU2VydmljZUhhbmRsZShzdmMp
OworICAgIENsb3NlU2VydmljZUhhbmRsZShtZ3IpOworICAgIHJldHVybiAwOworfQorCisvKnN0
YXRpYyovIGludCBDWGVuQWdlbnQ6OlNlcnZpY2VFbnRyeSgpCit7CisgICAgU0VSVklDRV9UQUJM
RV9FTlRSWSBTZXJ2aWNlVGFibGVbMl0gPQorICAgIHsKKyAgICAgICAgeyBTVkNfTkFNRSwgKExQ
U0VSVklDRV9NQUlOX0ZVTkNUSU9OKVNlcnZpY2VNYWluIH0sCisgICAgICAgIHsgTlVMTCwgTlVM
TCB9CisgICAgfTsKKworICAgIGlmICghU3RhcnRTZXJ2aWNlQ3RybERpc3BhdGNoZXIoU2Vydmlj
ZVRhYmxlKSkgeworICAgICAgICBDWGVuQWdlbnQ6OkxvZygiRmFpbGVkIHRvIHN0YXJ0IGRpc3Bh
dGNoZXJcbiIpOworICAgICAgICByZXR1cm4gR2V0TGFzdEVycm9yKCk7CisgICAgfQorICAgIHJl
dHVybiAwOworfQorCisvKnN0YXRpYyovIHZvaWQgV0lOQVBJIENYZW5BZ2VudDo6U2VydmljZU1h
aW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQoreworICAgIHNfc2VydmljZS5fX1NlcnZpY2VNYWlu
KGFyZ2MsIGFyZ3YpOworfQorCisvKnN0YXRpYyovIERXT1JEIFdJTkFQSSBDWGVuQWdlbnQ6OlNl
cnZpY2VDb250cm9sSGFuZGxlckV4KERXT1JEIHJlcSwgRFdPUkQgZXZ0LCBMUFZPSUQgZGF0YSwg
TFBWT0lEIGN0eHQpCit7CisgICAgcmV0dXJuIHNfc2VydmljZS5fX1NlcnZpY2VDb250cm9sSGFu
ZGxlckV4KHJlcSwgZXZ0LCBkYXRhLCBjdHh0KTsKK30KKworQ1hlbkFnZW50OjpDWGVuQWdlbnQo
KSA6IG1faGFuZGxlKE5VTEwpLCBtX2V2dGxvZyhOVUxMKQoreworICAgIG1fc3RhdHVzLmR3U2Vy
dmljZVR5cGUgICAgICAgID0gU0VSVklDRV9XSU4zMjsKKyAgICBtX3N0YXR1cy5kd0N1cnJlbnRT
dGF0ZSAgICAgICA9IFNFUlZJQ0VfU1RBUlRfUEVORElORzsKKyAgICBtX3N0YXR1cy5kd0NvbnRy
b2xzQWNjZXB0ZWQgICA9IFNFUlZJQ0VfQUNDRVBUX1NUT1AgfCBTRVJWSUNFX0FDQ0VQVF9TSFVU
RE9XTjsKKyAgICBtX3N0YXR1cy5kd1dpbjMyRXhpdENvZGUgICAgICA9IDA7CisgICAgbV9zdGF0
dXMuZHdTZXJ2aWNlU3BlY2lmaWNFeGl0Q29kZSA9IDA7CisgICAgbV9zdGF0dXMuZHdDaGVja1Bv
aW50ICAgICAgICAgPSAwOworICAgIG1fc3RhdHVzLmR3V2FpdEhpbnQgICAgICAgICAgID0gMDsK
KworICAgIG1fc3ZjX3N0b3AgPSBDcmVhdGVFdmVudChGQUxTRSwgTlVMTCwgTlVMTCwgRkFMU0Up
OworfQorCitDWGVuQWdlbnQ6On5DWGVuQWdlbnQoKQoreworICAgIENsb3NlSGFuZGxlKG1fc3Zj
X3N0b3ApOworfQorCit2b2lkIENYZW5BZ2VudDo6T25TZXJ2aWNlU3RhcnQoKQoreworICAgIENY
ZW5BZ2VudDo6TG9nKCJPblNlcnZpY2VTdGFydCgpXG4iKTsKK30KKwordm9pZCBDWGVuQWdlbnQ6
Ok9uU2VydmljZVN0b3AoKQoreworICAgIENYZW5BZ2VudDo6TG9nKCJPblNlcnZpY2VTdG9wKClc
biIpOworfQorCit2b2lkIENYZW5BZ2VudDo6T25EZXZpY2VFdmVudChEV09SRCBldnQsIExQVk9J
RCBkYXRhKQoreworfQorCitib29sIENYZW5BZ2VudDo6U2VydmljZU1haW5Mb29wKCkKK3sKKyAg
ICBXYWl0Rm9yU2luZ2xlT2JqZWN0KG1fc3ZjX3N0b3AsIElORklOSVRFKTsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK3ZvaWQgQ1hlbkFnZW50OjpTZXRTZXJ2aWNlU3RhdHVzKERXT1JEIHN0YXRl
LCBEV09SRCBleGl0IC8qPSAwKi8sIERXT1JEIGhpbnQgLyo9IDAqLykKK3sKKyAgICBtX3N0YXR1
cy5kd0N1cnJlbnRTdGF0ZSA9IHN0YXRlOworICAgIG1fc3RhdHVzLmR3V2luMzJFeGl0Q29kZSA9
IGV4aXQ7CisgICAgbV9zdGF0dXMuZHdXYWl0SGludCA9IGhpbnQ7CisgICAgOjpTZXRTZXJ2aWNl
U3RhdHVzKG1faGFuZGxlLCAmbV9zdGF0dXMpOworfQorCit2b2lkIFdJTkFQSSBDWGVuQWdlbnQ6
Ol9fU2VydmljZU1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQoreworICAgIG1faGFuZGxlID0g
UmVnaXN0ZXJTZXJ2aWNlQ3RybEhhbmRsZXJFeChTVkNfTkFNRSwgU2VydmljZUNvbnRyb2xIYW5k
bGVyRXgsIE5VTEwpOworICAgIGlmIChtX2hhbmRsZSA9PSBOVUxMKQorICAgICAgICByZXR1cm47
CisKKyAgICBtX2V2dGxvZyA9IFJlZ2lzdGVyRXZlbnRTb3VyY2UoTlVMTCwgU1ZDX05BTUUpOwor
ICAgIFNldFNlcnZpY2VTdGF0dXMoU0VSVklDRV9SVU5OSU5HKTsKKworICAgIE9uU2VydmljZVN0
YXJ0KCk7CisgICAgd2hpbGUgKFNlcnZpY2VNYWluTG9vcCgpKSA7CisgICAgT25TZXJ2aWNlU3Rv
cCgpOworCisgICAgaWYgKG1fZXZ0bG9nKQorICAgICAgICBEZXJlZ2lzdGVyRXZlbnRTb3VyY2Uo
bV9ldnRsb2cpOworICAgIG1fZXZ0bG9nID0gTlVMTDsKKyAgICBTZXRTZXJ2aWNlU3RhdHVzKFNF
UlZJQ0VfU1RPUFBFRCk7Cit9CisKK0RXT1JEIFdJTkFQSSBDWGVuQWdlbnQ6Ol9fU2VydmljZUNv
bnRyb2xIYW5kbGVyRXgoRFdPUkQgcmVxLCBEV09SRCBldnQsIExQVk9JRCBkYXRhLCBMUFZPSUQg
Y3R4dCkKK3sKKyAgICBzd2l0Y2ggKHJlcSkKKyAgICB7IAorICAgIGNhc2UgU0VSVklDRV9DT05U
Uk9MX1NUT1A6CisgICAgICAgIFNldFNlcnZpY2VTdGF0dXMoU0VSVklDRV9TVE9QX1BFTkRJTkcp
OworICAgICAgICBTZXRFdmVudChtX3N2Y19zdG9wKTsKKyAgICAgICAgcmV0dXJuIE5PX0VSUk9S
OworCisgICAgY2FzZSBTRVJWSUNFX0NPTlRST0xfU0hVVERPV046CisgICAgICAgIFNldFNlcnZp
Y2VTdGF0dXMoU0VSVklDRV9TVE9QX1BFTkRJTkcpOworICAgICAgICBTZXRFdmVudChtX3N2Y19z
dG9wKTsKKyAgICAgICAgcmV0dXJuIE5PX0VSUk9SOworCisgICAgY2FzZSBTRVJWSUNFX0NPTlRS
T0xfREVWSUNFRVZFTlQ6CisgICAgICAgIFNldFNlcnZpY2VTdGF0dXMoU0VSVklDRV9SVU5OSU5H
KTsKKyAgICAgICAgT25EZXZpY2VFdmVudChldnQsIGRhdGEpOworICAgICAgICByZXR1cm4gTk9f
RVJST1I7CisKKyAgICBjYXNlIFNFUlZJQ0VfQ09OVFJPTF9JTlRFUlJPR0FURToKKyAgICAgICAg
U2V0U2VydmljZVN0YXR1cyhTRVJWSUNFX1JVTk5JTkcpOworICAgICAgICByZXR1cm4gTk9fRVJS
T1I7CisKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBTZXRTZXJ2
aWNlU3RhdHVzKFNFUlZJQ0VfUlVOTklORyk7CisgICAgcmV0dXJuIEVSUk9SX0NBTExfTk9UX0lN
UExFTUVOVEVEOworfQpkaWZmIC0tZ2l0IGEvc3JjL3hlbmFnZW50L3NlcnZpY2UuaCBiL3NyYy94
ZW5hZ2VudC9zZXJ2aWNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzQ0
NmU0MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmgKQEAgLTAsMCAr
MSw3NCBAQAorLyogQ29weXJpZ2h0IChjKSBDaXRyaXggU3lzdGVtcyBJbmMuCisgKiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIAorICogd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCAKKyAqIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBt
ZXQ6CisgKgorICogKiAgIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgCisgKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSAKKyAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICogICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIAorICog
ICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgCisg
KiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIAorICogICAgIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIAorICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgCisgKiBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiAKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIAorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVCBIT0xERVIgT1IgCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCAKKyAqIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiAKKyAqIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgCisgKiBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
CisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIAorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiAKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgX19YRU5BR0VOVF9T
RVJWSUNFX0hfXworI2RlZmluZSBfX1hFTkFHRU5UX1NFUlZJQ0VfSF9fCisKKyNpbmNsdWRlIDx2
ZXJzaW9uLmg+CisKKyNkZWZpbmUgU1ZDX05BTUUgInhlbnN2YyIKKyNkZWZpbmUgU1ZDX0RJU1BM
QVlOQU1FIFBST0RVQ1RfTkFNRV9TVFIgIyMgIkludGVyZmFjZSBTZXJ2aWNlIgorI2RlZmluZSBT
VkNfREVTQyAiTW9uaXRvcnMgYW5kIHByb3ZpZGVzIHZhcmlvdXMgbWV0cmljcyB0byBYZW5TdG9y
ZSIKKworY2xhc3MgQ1hlbkFnZW50Cit7CitwdWJsaWM6IC8vIHN0YXRpY3MKKyAgICBzdGF0aWMg
dm9pZCBMb2coY29uc3QgY2hhciogZm10LCAuLi4pOworCisgICAgc3RhdGljIGludCBTZXJ2aWNl
SW5zdGFsbCgpOworICAgIHN0YXRpYyBpbnQgU2VydmljZVVuaW5zdGFsbCgpOworICAgIHN0YXRp
YyBpbnQgU2VydmljZUVudHJ5KCk7CisKKyAgICBzdGF0aWMgdm9pZCBXSU5BUEkgU2VydmljZU1h
aW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KTsKKyAgICBzdGF0aWMgRFdPUkQgV0lOQVBJIFNlcnZp
Y2VDb250cm9sSGFuZGxlckV4KERXT1JELCBEV09SRCwgTFBWT0lELCBMUFZPSUQpOworCitwdWJs
aWM6IC8vIGN0b3IvZHRvcgorICAgIENYZW5BZ2VudCgpOworICAgIH5DWGVuQWdlbnQoKTsKKwor
cHJpdmF0ZTogLy8gc2VydmljZSBldmVudHMKKyAgICB2b2lkIE9uU2VydmljZVN0YXJ0KCk7Cisg
ICAgdm9pZCBPblNlcnZpY2VTdG9wKCk7CisgICAgdm9pZCBPbkRldmljZUV2ZW50KERXT1JELCBM
UFZPSUQpOworICAgIGJvb2wgU2VydmljZU1haW5Mb29wKCk7CisKK3ByaXZhdGU6IC8vIHNlcnZp
Y2Ugc3VwcG9ydAorICAgIHZvaWQgU2V0U2VydmljZVN0YXR1cyhEV09SRCBzdGF0ZSwgRFdPUkQg
ZXhpdCA9IDAsIERXT1JEIGhpbnQgPSAwKTsKKyAgICB2b2lkIFdJTkFQSSBfX1NlcnZpY2VNYWlu
KGludCBhcmdjLCBjaGFyKiogYXJndik7CisgICAgRFdPUkQgV0lOQVBJIF9fU2VydmljZUNvbnRy
b2xIYW5kbGVyRXgoRFdPUkQsIERXT1JELCBMUFZPSUQsIExQVk9JRCk7CisKKyAgICBTRVJWSUNF
X1NUQVRVUyAgICAgICAgICBtX3N0YXR1czsKKyAgICBTRVJWSUNFX1NUQVRVU19IQU5ETEUgICBt
X2hhbmRsZTsKKyAgICBIQU5ETEUgICAgICAgICAgICAgICAgICBtX2V2dGxvZzsKKyAgICBIQU5E
TEUgICAgICAgICAgICAgICAgICBtX3N2Y19zdG9wOworfTsKKworI2VuZGlmCmRpZmYgLS1naXQg
YS9zcmMveGVuYWdlbnQveGVuLmljbyBiL3NyYy94ZW5hZ2VudC94ZW4uaWNvCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljg0NGM5OTNiYTI5MGU1MDU1YTg5MDBjYTg3ODZlYTBlMDMxMTM4YTYKR0lUIGJpbmFyeSBwYXRj
aApsaXRlcmFsIDI1MjE0CnpjbWVIdjMwemdoYH1lUmZEeXhicCVMUFAwUCpEJjtLdXwhKkM3MENQ
JTYmS1lsKipGSzU+M1NvMT5FO0ZfWFQkfQp6dl8jeXUobyNmb3gyJTRabUhORVRjZ3tKTmRvTih4
cntEWCZ8SWZlQ0AwcG9yb145NE1YVUAzQFZKN1RFWHM4cCUKem1TVFhsNU9ha1BJLVFjZ1Y9bHhx
cmEzdCZgOUwhdlpyS1V1N3RDKWYpO0l7XlAhOVpSLWQyZDY/JS1HUTFGVkYyCnooXnVveWk4Y08w
OTFZTztJblI3VVRXUzB7Rn5DeFklNU1yMCRVZCtNKFNyZk01S0AmJHJqME1EVCojRXZSMytqbwp6
Q21FP0NII2U2SE5kNlpATkhPPnlOVnhvRXVvKmtINnJRblRRX3xBTGp2YTFYV0hVQWBaREx8I1RH
fUxJblV1N3wKeiNGaG1HaUhYVCtoN3ZYdDZBUDQobXBHfGRsVENfN0UtMSlMRjRtTVhrIyVTeFBw
YD93a2p6RmpPJEomWmwkV2ZTCnpIZXVIYippNihedDh0IzlENWEkZHkrQTR8cCs7M3lMSmVEbnFM
aH1XeFY+cEFsJT1aKUN9UT1YS1Z+dSo1V0BofQp6WGFhZ1ZFMFhGfTBZcD41dWhGSFpzZTFOZXgr
SkEqPzhTNWBwalFMQlQzWk5ra2xzaiN2e3EwR3EqV3VqdGRydFIKekRmRShoNm47JTBkQVFiV1Uj
ZjxzMSUxN2dDZXdSVk9xY0FeQ2tQYk5RUChGKiEqWVFzVD8oKklPamp4Xyl2eTlwCnpsaUR3ZSlo
QTM+eTlqajZRQmMoWUhCNGAqPCtWNmI0amBATkdeKkBnRE5zejJEWEZGdU1UIzJzdzBLczRVbU1T
Kwp6bU5qLTNGbSRQU3pLRjhzN2ktYz83fGxvNFJRbWlDV3pCYVhOPyN1XiRCb3ckck1zfmZKJnNl
PkJ3OzR3JDNuem0Kempkfj02SHt3RGU5MSo3cVZTJCk2bmVwV3IkSCtXRUpZRVBFVzVNRT4jYVYk
NmdAXyVDPDZQdXpnd1d6dDxTbHMzCnp7RUhhSHlkVyMjSWRMakRVTy08aV96ZTZnTUJjenAmNDFI
K1k0ejNXJnJLbFBMKkc4RU5WYj5PZXAtOHkrUC1SZwp6PDM2S2YjNTEofWpOcDQtPV48NVZBaWwz
fmlveVJ0Oz4rSz0mbHJ5ZDh8OXdEbnc1fkUrKUlZNSp8OEg3VGpDeHYKek5nPiN6YVNrQ19QUDV8
YXAtYz5lZDcxfFgpNGJ1ZGw8T19le2l5ezd5Yj9AUio5I3QrUT9Wanc+angodlY8Rko7CnpOVCoz
NUhYems4MG1ZYyVHTFBqJVVDPFNDPV9UYFcyfl8jekc2VnMySiFFIVBxNEAqZjxlRH4+P1YmbmNf
NV8jNQp6WU0kOXltVGdZdDNZKmxnTUV5PE0hP2dXYFk1Tk0zX1EkRnFAQVg+JEBYVkhiMD0yc2s3
NTZWJU1oPn1EMyFkSSkKeiNOJjU3aDlyaChBckRtYG1qek9KKSkrITR2a2Z5JTU1c2IjYjZLdVgp
ZDc5YjM7bEFhIXlZZCE4MFN0NTlZWSlFCnpzaGxvN3ErKVBtVUBIK3tJcilPKW9hPkFodV5GQTEq
bytnU1RrPzJtQ1R1dzMjQmVQaGVkPSpSYGpkaVlxWUxPVQp6X2FldktrcCttRUFZPDl2cGclYzlR
PTRnV1RDQ35TK2QqNWl4eU0tUlk8T002K1FUZ2Rsb2htY0BJblQlI2B7aU4Kek1VP2x1YGs/ZyE2
WiRkVXNeVEwwZ0B1V0p7clpYVjxIdzZCOXp2eDFTYyFDaGRvam4pT3cxMXVWbk1MQSRmI0xDCnpP
Yj5EdnZ1anJwKTlaU1BgRV59SFdgdmhtUlpFRHFiJWZZWlNCTmQpTGdZbDVpSHo4cVZwQyZSaz0t
bXA5Nz9iaAp6YFIoalFROUJ7ZF9JNDNoIyNSK3l5Y0k0Y3d7OXd5YngwNjchPHZiOHtrdz1QdyFp
JkAoYyhzVzRSTD42bjN5PncKek89TStkaUtSPUlpZEN5dGlNNENqaWo1bUxpcnU/K2l2dEdeaHlw
SVZraDRSc1RTdCFgNn5+U3A2RExsYjVUe1J7Cno3VSQyTzdoaXc8d1lZbHFzPD82RWhQWlg+bWJp
UU91NlhkXmYleCZxQUheQGZ7MzNxO3tkZSl+bk91R0tQNGpRIQp6LXhtMWEmO3E9WXwzOWR2bHxI
PEhhcG55UzM9SERINW9ldyYhc1Y3aHs9Vk1jbypve2Etcm0wY0w2Ki1HdjliJmEKel4hNChwNXVr
PHxVWUA+ekEobXk+VkJPNUVYSTVsdGM9LW1oalooWn5QZkJuQGg5JWdtNSgyRTsrZUVrT1JlK1pf
CnpuPWxiemNJaXJ1NWBpdCRASDc9KmMyNUlORkJ1RjdDSVZwaExiMVlWZTNmKSMwam5UeWptT2dA
WG1zek87d280TAp6YGckXjU7akNzOTZkRFNCMTJxQm1ya2JTZElqaFFgJm5rdWJJPHh2fW8oJnR1
JGJTdWs2PXVISGklfilwMVU7K2kKejRPaihNV2tTM2I+WmsoMjhpRGhXc0ghPy1XJDd6OTs8V09w
JH0rXkxjfiFoPlJuPnIxUCElUklpKFZpbW1+LUpPCnpkej5ROEVMRF55dmhyNmJlQU8oKGhnODxR
UVEwTW5LVSZEaih5eCp9PW1pPlIjYEh5O0BJd3UoMCh9Zjw4azs2KQp6UCprYXNrSUctc0ZsZH1J
angjSyZzUEczPmFXeDdDMCNRWjx1Q2xeYktgdGdpWXNtUWM1UighI1ApWXVmVmhlU1EKejFyJlpL
ZCplezdLUiYqSlZVZCZNNHxLUDttdWwzYTJGMjwqNiUhMEglSSlwbG1HKXUmYXZXNmxJITVmQTJ8
PEFACnpTTldeayoqUzZFJldgREpgaEs8M2NTWDNwb3QtU05FPVFiSUFvRHZwbUE2OSgqMF8rLUVY
NCVkbTNNTm92eTwlSAp6S25gfSEmTWVALWRiR05OeTt2WUZtPSlTTnNOKmVBWFlLNmY/Q2p2K1Ao
RGdrOEUwYz5YVW90bSNNZzZudyQ+XjcKemM/NE5JeVNxYzhwMmx1JVhKY2IrVmBGMmh4ZmRWaFle
fTAwenN8d08kSzZmWnM4RkdUb3ZwMjExc2pIfkUkMThACnpvU29nPSs8aHUmPlVsJjVURCR3SDV7
P2NJJSVsWWUyUzxoNSRLNl4jLShrU2Ymcmd3WGI5T1dndGVTUUVgMXZ7Tgp6KW5tPkN4JXYzfUwm
VGpjVmktNk5aaHY8LXJFISNIbXB5WHleWEM4fmtrSkM/bjM/STAjb2o9SzE+RjJYQXB0ODgKemw3
Vyo3JkNRcnk2OV40ZVdGKFYlVlZZa0ZifTY5cTwxI0p5WVlBcjhuUUIqRDNldmd6KkcxNT9CSUVD
LUVBNCo3Cno3V2xAaU5xYFh7KVpibCkrcHk5c3JkT150X2teeGBYbFVLfl8xUXt3JklGZGBpemJN
aGRyK1h4IW91OWwlLXE2NAp6JEM+QmR1VnBufVc8UXxWVlU9cG8+PjlATWQ2dV85I2N7NDl3bmcr
ekp6c2dHbz9qS0o9VTF1eE5RaVApZzdZZ3AKeklwRitDcDV0KUwmI2R6TmlwQXZsbEA9RXdAMiNG
d0B3cmVnQCY8NyNeOEQ7KDhpUzFVQ21IXk1JMkRSWXY2Qm5CCnpmaj9UbDVPbnJpdEFgZUFfMDtP
RXdGNVZTYTt9JUV3b3s/blpZJnRiaDVCfFNySmVEZHMkO302QEUlNDZPQ14kNQp6Z1hoI2FvfFlt
YiRWRnVFXlhCNDZQcThvRE82K1Y8TEZ8c082VDZ9dSNreiktI2hNMEgjRXhpSkZ9K2JPYVZYTUsK
ejlFLTZPMmIjRXdVNVZhZVMkdVZ8YHFlc09YUzM9ZXImV205QD4rPTQpR2tgPWN8QSY7WS19YVlI
blMwRGxXb1B0CnpIdW1EJUhqZCYtUzRXWkcrKHFRSV9ZeE82eFFjSnZJeCk+am9iS1EkOTwoJFFn
PjQ8aD9YS20tLTdmYXhEbkhXfQp6NHM7ZHcyRHlsdlcyJVZ6P15ZNHstR2p4eEh7IStLeDRNZHsh
fV5LQyEoSkRra00xdD0jYFkzPD8rcC1sUWEhfSYKems5NllCQ3B6KDlNc0BMRWV6Mz8tZU1AfXQ7
YyMoYys2UTlCajJVQTZgdEBTZHJjR2s9PUZNV34mWWtqXl9zcEQkCno7JXckKmFlbVBaYWRHSiFA
enUmS2BUVSFnbW5ZN2hKRXdve3twT28qI1AjZGYjZHFJKkMhYyUyfE5pQGJwTC0zNAp6KjF5VUI4
Nz1UbktjfmpaUCk2TmpWPyU1Q1NGaTQwRD5PRT9CdWl8bFBlOUYoMjljMnNMVFV6aGdxbXsxYHFn
TDwKenI0SjFQe0VRaTVlSWc9ZGgqRn0rYGFYc1h2SHRaVmo2I0VtYFgwcCR2QVc8PWY9KitJXiR6
NDRzQy1uJE1GdTdXCnpkYURlZjktZUl4VEtuUkckK3ZNazRzQUsqNWh8LTA+JXxXXz9QWHwkPU4q
fHNxTURhZjViS1U3OC0qZGNZU3E/QQp6d1VhYj1Tc3EkTjI4RSRqdk1nM2VSYlV7dDVecGVOUCZq
YmFEM3dAMkVic0t4cGZQQjkyUz0xVVNYb3QyfEZAREgKej9YO3x3MUlta3d0KDVaaT9IZyR2Q0At
Z08wJkp8TFomRjNGcX1ofjF4ZU09S1dvUlVlWX47MUlxX31YbzIoYDdnCnpFQHh3SC1CPWJfVFUq
UHhUX2FBKDI4YHVCSjM+M3ErYVY8eCtCWXItXj10c1VjcWdhVXZSbyNlNm93WGR2UnM2Xgp6OGEr
K3ZHcDxWaWgqKVIwK05BX0hYR05TWElBZjF5OHVaMCpwPFk5aTVONUFRT0NLJWtCXlpUcE9UJUs7
VkJ5Pl8KekNMeVY1diErZChDZE5jTlROb0VKTCNWbFA8dlAoWkcwfUFASkRabzdBODNjeihESzt0
bGBuT0UhMyQ8VmtWKllUCnoqYE0rQ1E1O2RLam9lMT8taCs0X0dYND43RWVkJj9rKm1DV2E3Xldg
aFgkZVNwMElOPWY+dz89U0N1UGQ5bmJ9eAp6JkBIIXNZenNFQVBqTz1DODJXdCpfOWp7fCpyJnt7
PV9wcGx4ezc1ezklNXE/Wj9VYkpuPmYoTUwrdE5kUDMmcG0KekU0SD8tQyUpe2M2RFBYKml1fjZE
TVNpQ2A7PX4ofjsoVUp9YWVreil4SDdefFRwdzNNOVBYSllQN1gqR1haa2h+Cno9U0lGSj90TDAw
X1V6ZHM0ancheEBBSD1+VTZTfHBoWXVmJHBNVTtZe1FCIyF8REk9U3txYi03Wnd2ZmlaVU95MQp6
I1lfZ3h4fHh9Y2xiZjU5amhWN3NuMz1tTU0tREZMYT9MTz1LQ31ZQ2pFXnw5O0FrZXl0UUBfKXQy
I1FtZHdjVzIKemhMeEZfd1BRSiomZVBwbj1VdlhSb1ZBJTUmWCNsPnltOEMxU011ZE5iLUhTNS1u
TS1DXjZwXnA8Yjx1Nm5JI3tsCno9eVpWMnlARGtoOzNGNjxSRGdZcDt6S3xTPjdZZUw8d1VaZyVy
YnxXb29uVUZ1NkFaOW1CRkNDYz13MlJrYSFvRgp6JF96a1JLYFJGQFdGVSltN0J7PmUzXlNxUUU5
Png9KExad0dCUCgtO0NCdWVNbz43VjYkPyMoWUZtUnhWVj58JDkKeiZgPF4qQEluVCUmezVfVzdY
T0h8MjE7T3lWYTAlYkglNF92VH1BQHFidykybktnTE1MSjFVUns0UTFjfkZKdkdLCno5bmJ9eHxG
d0VSSHY/QDJUa2VieU1seiQ8dEZPS351Uz1JTVUlY19nODwhWkRkLXZ9Qlc4YzFncDglWnhzYXY7
aAp6LSFsRDU9Z3lyXndyYlVDSE9xWCRjbyh0Xj16dVFoZ3prVTVLVWsqKTFJTTVeaXd8Tm49Uk1u
RV9VUXRBOTVHX1YKeigrTHdNSmV4ZHV2YyNNQGIwfEFJVExOaX40aiVCYiV1fXdAUm87Wj51Jnps
QV5pT2pKYmkpUjBTcn5OdC0lN0YkCnpHWH5uamZ1VW8+dil9VyVPQEdqUWhKV2oocXxseXNKNXY2
akZwMH11VCFgUCNPQ1lWJCEyQDIlWG0jbjt0Smx3NQp6a0ctc1ZHR2oxb2FMX1NlNlNraS1eVUpP
bCVWRTQ9T2difEgqdjVOM2QtZzFaLXw2WTsmejgtYU90fllIPSpwbX4KemJaZE15eDtybkI/eXNz
IzQ+dzI5X2RCQktgPCFUcmhuIy02RFQzfj00NWhtbjBkKHZBcyZyKzV5T2Ywdj16YEFmCnotTWlt
eSp8T3pFd2wjcilJZkQ1UCtiPXlZU08mZ2haTk5HYSFoT0FLQFppQnVGYjxabyV8bTA3PXRoYmct
Tl84MQp6Mk9IfHMhfG0pTns2eEdCaCV8digxfEJZZHVzKXBiV0NUKnQ9dF58eD9JZU91PXc9JkZk
NSlaQ25eUEhtVjRERlMKejtMOGltWlJXJDZMN2dFTiNfZShmP1NucXdLUmsmRk1ePldTYkEjd1Vg
fHlDPF59JEJRWFo3aG16OyhJNUF6WVRCCnpUbzJHdCN5c0dhR1UkYEZWUlU7PTA5X21FRHN7c0tZ
O2sqQ1c4MVNCQmo1dUF6UUN1eTk4MWlERzNWVC1PYDllPgp6Jkw0fiZKTkRfKW5VZzkxP2ZQYCVW
OyRYSDkhbUd0Z3dlZkteJSE7Tz9nfTBrT3VNX1I0JjdaXmh3ZHo/Tz9NV1gKemZOM2FgSm02aFhT
SVhYNyV7b3tZV1Fzb1lxR099IzZLdWdJPF4/fC1FbiMwITJsTkJSbEhyTUZpTlZrMVNaNlNBCnow
e1ptbmJNTzg0LSsjSjxePDVhXk5qRTxBcXVVRT5OIzc5UG8qelFEdlYhVD55cWZlS19zNGcwMF9u
VGlmcGx8TAp6ME50RXYwO1p1JUAtWGtNJSRqczdKNlAoXz5zJH4qTVUjQiMhWE9XViYyaSgjSndx
TVg3eFYraDY2T1BaRHxLQ0IKekk+dFFLRW5TWnVKQFV7NyZ+dDlFQ3RYa1RySkVUKzU7dFpBKHYy
QWJSNWFiNmlheERRKkMrYz87VXBnX3tGcElPCnpON3A4SikzcHgpRkJQMC04cF48UG9xZEUxV1Q2
QVBabGQxTUtQTzE/b0VAT2wwWTBjPjNHKUdTVEV+RW9DRlRPdAp6Rm01WEljd2RiJTI7V2NqdHch
SWJkUXN0Jj5JJTNYKkN6VlZScmNATzQ/TzljX2RNdUkzYT0rKS0wQVlARHMqe04Kejc1YUxGOCt8
PnpheHE0NW5yU0VsNHx1UDxRO29oRT1mT0k+cV5AaElKTH1mJGVFWXM5byRPc3pfNSp4VD1reF5q
Cno0Kn5aRnFqQUp9dzAtJGJvalNkYWJxNGImY1deajsjV3VlZz8/dkNSb2gkNj88KmAtaT4oVEQ/
NzVqNShYbDElTQp6eEZUSGA7N2FIRnh6UERPJlVDSn42UEBlbk5hdVBPMEN8QVJ6eW5eJFRwVjBV
PlZQaWp5cXI9XitKRyhLKHJgRCoKejlUWUNfNjxDK2x3SDViPUFvdlFPd0YkcyEleCFtYHVWPUIy
WjZCT09YTD5yKHJJR0g4RHMqdn04PVlyKz1MU0B5Cnp2d2RDWU9mTSVvLVFBSCtiKm4oOXh8RkFy
b3l5VjRqXiplPzJZV2o0bnFCR09HVnAqR0dMVklpdiVRPzkmaHJEZwp6RXJ3Syp3cVc8LWgkXnhp
elE4QmtBSzFzcTRCViUmKk8wSGpJRkBiQzw4MWlJa3QzZmhvLXZ2NytMb3RQOVYqbEUKel9MWFRf
K2UpO3d3SlItYz18VzRJSkphSDFDdEIzaGtycEw3KEJneSZiZztQe2VjOTVRekhHczBaYmVfYlFX
OGcqCnp3bSFqKnZnNjd0WGszQV44I35aXiowQ1ZUa3JwOyV5e3RSOE9HUEA+Z1dJTUx3XjlGIWJm
Jks+PCtyZ1ZfPUl0IQp6LWx3dEd6PE1QNmZNYmslSChxYVU7YTwzUFAhYipNUD1PQW1eYGFZdipY
WmBgK2h5WUImNl9sRFkoTHIlWEdAMEAKekVhPndsPUF+a0R5ZTtrQnhRNihmeUUxWDw9empYVkxx
JDZGU348JF5TZX1rfGFpRF4oaiYhVmpJZjc1e088aipCCnp2QUB7IVZjIWJoWkZuQ3gyeU1USj52
XzFUNiYtQz9qKmhuRnsoZEsheyZWKlJAcHBhbj9DRGNeYmM5I34ydjdkfQp6bGVWdXxLPVkhPyk0
b1JMYmcrP2A1JXhCK3BqaVhqT0ZyLSQlNCN9KWB7QFZEPm01cG1uXzFFNCYyMT5KcjdheksKeilz
RnFKbXdwXmR2THlKWF81dD5NeSVeUXVKRUpfO1l2KUhGZWVgcmctejNVeVlFNmUmJER3MiFuTGc2
bGs4WWpGCnpFel5JXnBLflhVKTEqZTh2QF9iQV9DXmFtcnBII0hoWSMrVGtreygrbC1ye3F3SHho
XkdwN1RNRSRCY0tPRkVjbgp6clREPTx6P1h3YlJzYFIkPWlfbUhtM193RXlEb2ZaUk5gKyV8Rz04
RnZuaylsNlJjPC0oQWJqcCMjenVGWm9ocF4Kej9DSHxWWTVGI1Y/YjU9N2B9Yio1cnYleSVWTD5e
T2Y+dVVZUXtMXyFyTGpzSGB0ezw8OE1NMmg4U1JjJXVxVmJgCnorSnRUUkFibndmYn5kZGoqQ09u
Xyo9SWFJQio2RXNVQXctRHY5bn1pM2hqKENyeVRZLUMmcSR5YVhhcDZYd0ViPAp6KzhOMjx2aXh5
Zj0kQShpT047Pys5M1ghRCtpJGVzIT8kVH1zMT9sXigyM0IjU3w3bl9FZStxVjlAJEh+Oz55dkUK
ejIwfXZHaysjZ0ZaVEo5UmEkK3J7ZWZXcW1xJkBAVGUmKSR6Q2t0YXw8eSMkVFRaOT5IWW9HI1kj
QDcweDd+ejhVCnpjZGtQWnViZU0pSml0SHJkXzM8RUpeSkIkckpkQ304MmJPaXRzOWluTj1JOCty
eWQ1anElUzdeeig8VEJKamIhYAp6bTstKmk9NU5GTHh+NC1JWjROVnwmRWJxTkw3Tk93a01qb0Q3
VXg3KWNDMz1+U35+Y1dtcH1qYm8lWilqRnckd0wKei1fU09FUUc3QlpfeX1MfEVYdXkpY3srZ28t
dlFkSF9GPUB8SmlqbkwzJHZpKFElQlM5enkxMiR6QSRXYUUmY2lBCnprdVBrPSY/b29eVXdJQ0gl
ZjhGfDBNQ2FhcDFhUmhONHBTenhCYiVDKkVmTTQtbmdiO1Y9O2EtS1RYcFpeTFo7Vwp6WD5DMnJt
JG4xbjszTCk8WnU2aG1mMUdYOTtrRDs/Slp0bEo9WUpkUDs7WWQ0eTw3ZnJKaS01MiF+NCpAVEdv
SHQKejdKUzgtZnZOdz9nOVJCTyNFZ34kcnUwKHMlUjxjUSF7IWxrZUtsPSEpNHVyZ2szVlJgezB5
MnspMUg8RnxBcWNpCno+PksjNmppMmluS1pfJUhlLWs3bW1Jai0lWlVzd2Zudm91QXh5RlpoRj1K
ZXZOXzRhNnhfKWdtXiUtP0N0PUgtTgp6RkRXSjVsTkpQLT4rTVJ0MktMfkN3NXs1T2tMdmpPaz10
TEp6Z3NYVDdQSmJaZyNraWhhWk83QzdTKiglTVhWb0sKejctJmB1bEBJKE0xPXtta2QwM0E1bSVa
U0FfZCl4bkclTFdPU1UyMHpZKWJwPWdYUn19Uk0oJSY/N3YoO2RFZDRQCnp2fWBXUnR8MjVBKjBR
Q0FBdlZPbik4T3s4cjE/UD5HKFhUPkIwSXAwRyklMypgXnhOJDVeWmJQe3RzP0d6aEMldwp6NkV5
JGhfaH57NlRnbmJwP1hXJUFtRzs+TyVgZjw8YGhTVzJtLWpFOCVkPkkrJUllcFY9MmFJRzNxeUhk
VGYwMlgKejU4KnY7TyZpSnp3NCRzNE9VbVNTJUIqMjdHMFdlQXJWWj0mKyViUm8kTl5keT9uKHVg
PH4pNyFNMFN0cVNPTzdjCnpoajtJIShJSiYrWlVFYjJkJDBAcF5KfHNVYHZvNnl8SDRAJWAhRHdv
ZD9wcG9gLWVaWFF1JG9XUzRiP1pVeno2RAp6YipBanY0d015QW8tJTlOKFkheiNuIz03eSpXWiQ2
KXYlPExTRUFgUi1ZYis5ZSFPPnc3UlVRWmVIbVFXeXtTWCMKelBqMmg3MEBrTFJIO1UtKCMwWipF
dnopWT5VQl4tU3E0QDxMdjQ2bU1FQm1rUS0peWprVmgrISQ/THNxa2YpKykyCnooISQ3VWx3R2U5
VyE3PH5jXzl1b212dj9ZK1I8JDg9VFR1a2JvYjZ9PjU2SDRCOUFAdyMoXkRhcmpNQnNIdWg+bwp6
S1I+dTxHflNAWlB7KTZNeytYdFk5ODkwb3N6X09FS1JjfGxeYTtMVT95NzYyO3JgaUA9Zkd6ZUwk
ZjwxKFI0NEsKeiFfaHZwcTtWaUVpMU1iYWFDZSRsbS1gaitINjE3PXhINnFUYitXOHhsPXB4bTN1
alRmdU8rNFhTZF9xJFdfKDY7CnpgUW1mJDY7RjZQWkN8XkotVk9KcWRFciYxUHcpKzYyV1E2SV9K
Kz9kPH4jP3dVPF9xV29sS3Y0MitDXlVNSnJsSAp6KDJ9SXV2Pj9gQj1JNGQ2by1oeH1TK3xPUXty
UlYye1BaTEpZSmpXOXpvM35sb29KZlEkX1VlYXRWek9gJDA2KGIKej5jQjJKcDBGMXgzenlFSHFq
d1ZgWG97eTkhOGVRQG9PYHFYYHNZVkghKmt3PmB7ZiMqKFBwJHlxTTBHQ3c1QyVjCnp0JFp6eG1i
UXFYMSZ4QyNFNG4oKGpxOygpbT5RSkg+M0xEVUcmZlI1ezAkI3YpYzJxe1ZieTRNSiREfHYmTlF2
TQp6eX5JPk1KQUdReHtMOWh3OHMjWkgoMUIrMV8/WFhuN2JlIWA9anBvcVkjbU9eVDFDP0dIcW9A
UWVMU3R7KHV+JTsKeihTbH0yYFZmNEFaYHtzNXUmK2tYQDJkWXNlZWtoNi1eV0A7KGZTXihYPzIl
bVRKYyZ1RXFiTHNLWFpyQnl5ek5+Cno1JFF7Rj5VLTB5eTQ3ZSNvaG1lPVIlSj5MdTFNMl5UcUxG
aWF2Y0o9ND5XTElEKzM/K0FxUlFyZnhnVWAwSTdkTAp6UWU5ZnNJKSt3dFlEJFplIXdKM153RWNZ
Y3pyXns4U19leitnQ2tnOXI/cEY+Uz5aYWBHXmlfVzlNR0I4X2tOOTUKemNXWCZZK3M0eV48T3NA
WVFpdFg+M1p7JlAwV2BhVEFJKy1vTG9ANG4oVHV2RGxwYjEqKCg2PX1tfG9qbXA5VVN9CnotfiZK
OEFQK3N6SEB8NShFcSpuSVIoNUo4P1FRN09MR3I+RV89S34yXzhwPGJgSVhpT3s0Q1JHJGREbTtt
VkIxaAp6SUUpcygrSzZfKF5BPkYjKXNIcH09fXpuV2Ipd2E4d3hNTypwOUA+WTVkV1QjRzg1fDIr
Xz43NTVnUzV0cUp3QzUKeiEkNnVINitwOGhZdl9TST1xTHZ0XyNwQFIxPGYxTWxEM1UkV3RTR1R1
MWBtNDJsZmBXaCRpQGVIM3cmRWM+bG5ACno+bGsobntuLV9LKjg8Wm1jcjhsRFQlUHlvV0o7XitP
S2JiUVBKMklvazgoYTNQMXtyNnFBZXIpKTVmPVkoej9FIwp6WCtfc3BYLVM3Pnc0aFpTJjJKR3lT
OzxrOSp8WSY9Q1BtUF4jUUooNTQ/ND1oMm1aekY1QH5zLTdQUHUmZC1gbH0KemNjflpwVlB7cU1i
fkd1fWh1e098RWJzU3N2MlZ7a3pjcmA+Iz9rdGVsJDFaYHZpI0tPK08lPDRVcG1DK3E1RyN5Cnpw
Z2tYdHFueTtTd0VmKT93Ql94PXZ9dCVoVDBme2V0P3UyNFI9bkFjbVVaRGV6MjFUcndAOz07dVFp
a0w7dHNGUwp6KG9RWERkQUJ5U3N6KFB9K3JKeGE5TklfOUxsNSpwRlo2RjEodnprKHRWT1ZtXklO
PXNWQmZMY3tOPyNNPmNEKlIKentSUCR8SzBraX5KKWcjZShxfCszKTBkMDA9dCVaI0ktRF9gNHlM
RWtLR2YldjQ9ODhDeVI+OGM3fWBFPTZtNU5ICnpJQmlXQ01xOT1YcjdkSCl6Y0B4N2JkLVkre0Um
a0BeZ3RpPFpzMG1paUxON2skSnNydkh4Sm1LbXdKRHAqMT8/WAp6P1NuZEt7Vj0malZfTU94R2t2
KXZuK256fXJ+S3VNV2N0WDB4JTdHRkVJS3IySV8xdXFOKGEmPkd0eX1QXmh2YVQKeis5eHRiOSgw
dDA1QiFqV0Y2Y3BlU0Aoe1YqMVdPNC1GWTB9ISNmb0F8RTFtXjhIXil5bWJKb0khaEZELXstXzE3
CnohfEBHaCtYcEZoQSFqP0MrcCZldFoyNjIlWkNwbnUqUlNTIXQpU3pwbVFudFNCXyNrbCVFMVNJ
JGVyODFuWU88Nwp6SGNnTDxBbjMraSNkeWQyMmV5c3pqeHFEbkA5enhpQW01KjJQR2VvZEkraWhJ
R0N5bF5KclpNUig+dFQtI1FIVUsKejwhfi10SzZIVFpzZTk/dHpURlpSX3ZWbFdqZlFnWTc0WTYq
UV8zaHhQbCVTZnBjQV5XJlR6bDRXfWtIb3lsY1Z2Cno9M2w8XigpPXdlVypydC1UZSZaZXBmN01R
Z3c2NDxCKzxDcXlqQ18ocSYzM14oY2JoPT17V20jWTUhaWojP015KAp6KCludnYoJSRKKUJvQkJZ
MTZrO1JGNGw/bl5rP3pAZm89VWBAMj9IKCErSjVFRVV7T0B5ZylzJD1mayo0ZT5hNmIKej5mRGkx
QkV1eTNIfCo1a01vMXY3KFpLXj1qMSRQaFp8PlYkSUo7LXZ8RiFRMk5+d254PmNPQEAhYEBxfjMm
c0Z8CnpJdklSRnAjUUV3XkJMIUBJNVduJUh+YTB6eiZZJlM5X05Qc3k9YT40JF5QS2oyRzJsVHBW
P2ZXTyZvOUd7PCk1Tgp6MGh9JmsrNzhBeG9LQG55bTFWR3x6LUpvPCMoMWdzKC0tanRlfFNSdm9g
Z1R4bHokJjNTTGxDdHFXXm1gPEpJNWcKeiNIcWlfO3FReD5VSDtCUml3bHYqX2V6TlE0V3x+VEJG
ezVXaTs/flJJaSRpbDFBbFhvSD5naGBAPzF9Py1kWmV3CnokSFZPK2Y1KmVeQj54aF5jPmVlYG1E
TGYpeG9XJHpmTlc+QS1IbV5AcWhzYVZSISViZF93cU1kVkIqQXlrJkoxSwp6YiZNaGdzWCFWdWx0
dW14KXoxfVNvZyl9VV5IY2lNKSo7Tyl6ZWZsYXdzV0todDt7NWwyNXN4JFJ8cWBkaDBKcjYKenpD
YT1DPW0xXldXQmIjJD9WUlh0UzlgaVEqb0UlRD1UNygyZUNXWVVlfko1KGVkKyRWcyZzRk4zKkNM
Z3AxeTdDCnpOUlV6ZT08b3VqTzBkQkheYmZ8Kz41Zzc+eUlWUUImKSpaPXBVMjxpQFY1e1RtZWdV
P1Ikfjc0TCNGdz0zelVIZQp6eXBWeHhgdWxJZ2tDJG8tPTNrZE5iXnZ8ZChVdENncUAjUU00Wn1W
RDdVb18/a1BgRnY5UU9kXkhKYXElQDBeZ0kKenQ/PUlZJntPSndGNmI7IyR4O2FMSEZIZFZ5NThR
Rlp1OXA2Y1J1bDxKTiNYUmpGQzE0JUp9O1BKKVA2SGA4eDxMCnplflo2YGZHKzYjdDlJYj40JTR+
S0ZMMXFZXjdqWmdgQ0FCbSUtPlNURz1DIzs2QnJBQyN4Y3E/WG5CLXJkfFU+ZAp6Jjx6YDxSOWxq
YHRtdHFEOWx0QkRMPGlyZnRWaXlmTkxRa3gtN0Nebns9VlZiS3Z5YXBSOGl1WiU9NyM3Szl5KkgK
eng1XzFPcVBIN0s5e3g3ck5DJDcmRkRsSkcoP2ByNUdrYDk0PG5JPXleclEjKD8kUXJHezl1Rnxn
OyF9Jkh+d35gCnozJX0jKT1CVVN8dUZrWjFfSntRNyhJWD89e2pQe2s1M2E1N0AlIUAydVU4PTBm
R3R4Vzs4JVZON3JNbW4kMWdJegp6TmxCbno/aTdfYzMmV1oycUVUSGJ6cUpFaDxvRD57VURCbUs7
YXRsdztMUCNjc1hiLTYpWEJWdlZaKmN5STNHRloKej9FIVJfLXpsR2MjYTUzQ1VBKmJ4aTMyNmgp
MVo2VGtfXzZCPFV+N35JQDY3LVJ9NCl7e19DSTNEV09tNVcqZXt0CnpuXzMlaWRmSjlKVig0VE9E
Pnw4QVpHPS16P2RrZjtEZik5c0xxbkhOOWpFPGs3OCNPY2BwJF8lYmgyM21NUERnOAp6VkdBfTU/
NjJGfXo3YCM4V0ombzkjSyZVUVNqfUh9dz4+QG5RRi1URCFrX2ArJDImS3Y7NUZaM0oqdkUzRlh2
JjQKej9kI1ZBUDhTX2FhSFMqQm1JYDdKVGN7e2JBTWFkfjkpNU1JTTFOQEpwWXF4NjtvZE9AdllI
TiNeKlo/KjA9NU80CnoyS0FASWtyczN+JTJKN3VFKDNAN0pDfnk/dm93PU5AdVA/TFkwZkpsYlRJ
Ty1ee3s+M3hoTWhZZ0FyQ1FndGR7NQp6Yk9DPnp0JkgmYUBuZjFodW9HPk11cXs8elpVYnZjSD9k
IXxFN3Ewdk1jQn4zYHFzMnhqZ2RDUXdnYExMd0tUaGcKeld5fVl8ZmMlYW5uWTFqek5pUSNUTE41
Y2hPeGwwbG4lMUdUci03WGNkeEpEK1k/clpzPVomZVlONCYteXBEPlhBCnpgMUw9QUYzOXhQWEhV
X0xNbjA1ZHE4R048elR4PHJ3eG5ZdCU0ejZHeVBfUDU1bXx3REY/S1NoXkxnPX5KaVpKQQp6LVgk
QyEqaDJDZz8lcyVneWpmXmlFWW07I15iPHwqKz5Fd0ZzayZKZ1lfV2FBYDQ+NXomd3pIdXhOX1Q2
R3ktVGQKejZOMmJ4SzFWa1VYb29ZfGxaPCV4dytXIztyO2U2ckJZWlFsPmVDNmRCQmx5fGdUd2JC
dyNEfUs+a21kRGBlU3t4Cno4fDVWRlhqYzxZQn5KOUZaQjZ+P2ktanwmPSloTEdkMnBNPWpSVnsw
QGBnb30pNmBlO2Y/dmIjPG16O0pUe2hpMAp6bWFGMCojfFA9dzd5RF8/JSEjeGoqMkFkcCloUGhg
QmM9YFNQckZ7SkxBemZLcTF+LSgoVm9ffFdnNzl6TFgkVT8KeittLUIzdW1NfHxVQmVoe3UpTUs5
P2R7WiVAMXQ+YTtMWFBSXygxbjJebTBnJEA+MGhlQHdCJWlwWn5MTipmNndkCnpuQzd3JFk0NDdx
KSU8U2xeV21ON0BMTF98KDIofFljeGNDJCNeKW5DT0JwU09QVXdhV0x6fHspRSp+KnZTYnRnQAp6
PX12aVhfbmBhPCF4VmZ0bD01RSEkMHZARXs2fHVIT0leP2otS08/UiVRTjQpRE1TMHlrfDswQU9Y
Kjh6PTY+Pz4Kem1AfD0lajJrRipLb0BrRFd+KGUzZTRYXnA3QEZJX283T2JxSVdTPWFvdFFxSiZT
cClhXk5WTmxIKUVPZil2OWNYCnpPUktXejs8NX1gMXxJT1BYfmdmOFNRYXs3d0JEd151JCtBVU5N
cnghKV53cDJ7RWxqS2AkbntIU1UzNyY7JUdZbAp6PkhHWWgmSWsweE4yNiVwJn5DSyh3SFc1bihj
RUFjZigqOyFJcTEzbFpFQ1okSnA2flF3Nl9NKClRJkFFbyE/USsKejRzeFhvRkd+cmVLfD5qTVJK
JCtLKlFNRGppXmg4WUU2PDwkYnV8fSVSPmNDeEhxWlVkRjhqeCk3SnJSWUtGdDdmCnolbFBkc1l+
ZkZnODJAZnBDbEhMa3FMIW8qbXBRP1g5Kmh4O2ImTWh2TlEzNTRMY29CYV4zWmBVOSZ+PGBBS2pa
Owp6UXZ6d3d4RXZfODUxR0RoYiRtcy1LQXhaUnJtJFFvS3BBK3pZaFlHRD1QSkkoNn1ge2oqfW5r
NXRORnBQJDg3ZDEKenVlVDVYP3VZbDdqMD9tMz0qcjBJNXxAVG9yKCorc0J+QT1oPTt4Vi08cDl9
TSttcmJfYDBTRE5wUHdHZFp5WmhACnorKHxoLTB7RlhlVTs2Qlc5K0hNe0FJe0N9Q3V5S1ZoVUtS
KikqV28/TnZDYEkoeiRVaD5EUE5WPGp9ZHRkeW98KQp6Y3pedXNGRVVAV1lxOGAzOXs/SDFHSyMp
QC1HQCRlXk9HcCg2SDUwXzl5R2ROZXxQIV85ZT1aaW8oSF47Vk9nTikKek5RZGZfLV5wSyhCYzF2
ODcya1pOQUh0Xig9SX1hRFEocTJWJGYpd2BfT3xybnZMSzBMOURueDc3JUJWYjxLTzZxCnp0Q3dX
QHs7aXZ8dFpPNFpBN29md2o7bD14ST9DQEhEelV0T0pMeDwyQXtWbmhxR05BMXBnVWpla3U+YSRS
PStjbAp6QD9OaClrWVJiV0FOcWo0PG1he0haJHtEYSljJG1PKG9pfXphV0l8V0pXJWp2THB0Xkc1
SVhiZUNefERgNnolV0wKej9AcllJISNMdmZofio3RT1uUWAmYDYyKT5XSzcyM3k1LVNjYmFMUDti
WiU2OHsrXztWMzdgeC1FTmU3PUg5Z1NECnpwbHhsIT08e0FsYm04cXo1PWV1RkdWb35wck52elNR
dUZyX3xMdm5mZ1dzKXxycWhzPyU0ZTspeWkhMzF2aX1FawpDdUNYb3YKCmxpdGVyYWwgMApIY21W
P2QwMDAwMQoKZGlmZiAtLWdpdCBhL3NyYy94ZW5hZ2VudC94ZW5hZ2VudC5yYyBiL3NyYy94ZW5h
Z2VudC94ZW5hZ2VudC5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NzJk
MTYyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3hlbmFnZW50L3hlbmFnZW50LnJjCkBAIC0wLDAg
KzEsNjAgQEAKKy8qIENvcHlyaWdodCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLgorICogQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCAKKyAqIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgCisgKiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUg
bWV0OgorICoKKyAqICogICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIAorICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgCisgKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAqICAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSAKKyAq
ICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIAor
ICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciAKKyAqICAgICBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCAKKyAqIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIAorICogSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSAKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIAorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgCisgKiBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgCisgKiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIAorICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIAorICog
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IAorICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSAKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisKKyNpbmNsdWRlIDx3aW5kb3dz
Lmg+CisjaW5jbHVkZSA8bnR2ZXJwLmg+CisKKyN1bmRlZiBWRVJfQ09NUEFOWU5BTUVfU1RSCisj
dW5kZWYgVkVSX1BST0RVQ1ROQU1FX1NUUgorI3VuZGVmIFZFUl9QUk9EVUNUVkVSU0lPTgorI3Vu
ZGVmIFZFUl9QUk9EVUNUVkVSU0lPTl9TVFIKKworI2luY2x1ZGUgPHZlcnNpb24uaD4KKworI2Rl
ZmluZSBWRVJfQ09NUEFOWU5BTUVfU1RSICAgICAgICAgVkVORE9SX05BTUVfU1RSCisjZGVmaW5l
IFZFUl9MRUdBTENPUFlSSUdIVF9TVFIgICAgICAiQ29weXJpZ2h0IChjKSBDaXRyaXggU3lzdGVt
cyBJbmMuIgorCisjZGVmaW5lIFZFUl9QUk9EVUNUTkFNRV9TVFIgICAgICAgICAiWEVOSUZBQ0Ui
CisjZGVmaW5lIFZFUl9QUk9EVUNUVkVSU0lPTiAgICAgICAgICBNQUpPUl9WRVJTSU9OLE1JTk9S
X1ZFUlNJT04sTUlDUk9fVkVSU0lPTixCVUlMRF9OVU1CRVIKKyNkZWZpbmUgVkVSX1BST0RVQ1RW
RVJTSU9OX1NUUiAgICAgIE1BSk9SX1ZFUlNJT05fU1RSICIuIiBNSU5PUl9WRVJTSU9OX1NUUiAi
LiIgTUlDUk9fVkVSU0lPTl9TVFIgIi4iIEJVSUxEX05VTUJFUl9TVFIKKworI2RlZmluZSBWRVJf
SU5URVJOQUxOQU1FX1NUUiAJICAgICJ4ZW5hZ2VudC5leGUiCisjZGVmaW5lIFZFUl9GSUxFVkVS
U0lPTl9TVFIgCSAgICAiMS4wIgorI2RlZmluZSBWRVJfRklMRURFU0NSSVBUSU9OX1NUUiAgICAg
InhlbmFnZW50IgorI2RlZmluZSBWRVJfT1JJR0lOQUxGSUxFTkFNRV9TVFIgICAgInhlbmFnZW50
LmV4ZSIKKyNkZWZpbmUgVkVSX0ZJTEVUWVBFIFZGVF9BUFAKKyNkZWZpbmUgVkVSX0ZJTEVTVUJU
WVBFIDAKKworeGVuX2ljb24gSUNPTiAieGVuLmljbyIKKworI2luY2x1ZGUgImNvbW1vbi52ZXIi
CisjaW5jbHVkZSAibWVzc2FnZXMucmMiClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvc3JjL3hlbmlmYWNlLmluZiBiL3NyYy94ZW5pZmFjZS5pbmYKaW5kZXggZGYwYWJm
My4uMmZmNTI0OSAxMDA2NDQKLS0tIGEvc3JjL3hlbmlmYWNlLmluZgorKysgYi9zcmMveGVuaWZh
Y2UuaW5mCkBAIC02MiwxMSArNjIsMTEgQEAgeGVuaWZhY2Uuc3lzCiB4ZW5pZmFjZV9jb2luc3Rf
QE1BSk9SX1ZFUlNJT05AX0BNSU5PUl9WRVJTSU9OQF9ATUlDUk9fVkVSU0lPTkBfQEJVSUxEX05V
TUJFUkAuZGxsLHhlbmlmYWNlX2NvaW5zdC5kbGwKIAogW1NlcnZpY2VEZXN0RGlyLk5ULkNvcHld
Ci1saXRlYWdlbnQuZXhlCit4ZW5hZ2VudC5leGUKIAogW1hlbmlmYWNlX0RldmljZS5OVCRBUkNI
JC5TZXJ2aWNlc10KIEFkZFNlcnZpY2UgPSB4ZW5pZmFjZSwgJVNQU1ZDSU5TVF9BU1NPQ1NFUlZJ
Q0UlLCB4ZW5pZmFjZV9TZXJ2aWNlX0luc3QKLUFkZFNlcnZpY2UgPSB4ZW5saXRlLCAlTElURVNW
Q19GTEFHUyUsIHhlbmxpdGVfU2VydmljZV9JbnN0CitBZGRTZXJ2aWNlID0geGVuYWdlbnQsICVY
RU5BR0VOVF9GTEFHUyUsIHhlbmFnZW50X1NlcnZpY2VfSW5zdAogCiBbeGVuaWZhY2VfU2Vydmlj
ZV9JbnN0XQogRGlzcGxheU5hbWUgICAgPSAlWGVuSWZhY2VEZXZpY2UuRGV2aWNlRGVzYyUKQEAg
LTg3LDE5ICs4NywxOSBAQCBBZGRSZWc9Q29JbnN0X0FkZFJlZwogW0NvSW5zdF9BZGRSZWddCiBI
S1IsLENvSW5zdGFsbGVyczMyLDB4MDAwMTAwMDAsInhlbmlmYWNlX2NvaW5zdF9ATUFKT1JfVkVS
U0lPTkBfQE1JTk9SX1ZFUlNJT05AX0BNSUNST19WRVJTSU9OQF9AQlVJTERfTlVNQkVSQC5kbGws
RW50cnkiCiAKLVt4ZW5saXRlX1NlcnZpY2VfSW5zdF0KLURpc3BsYXlOYW1lICAgID0gJXhlbmxp
dGUuU1ZDREVTQyUKK1t4ZW5hZ2VudF9TZXJ2aWNlX0luc3RdCitEaXNwbGF5TmFtZSAgICA9ICV4
ZW5hZ2VudC5TVkNERVNDJQogU2VydmljZVR5cGUgICAgPSAxNiAgICAgICAgICAgICAgOyBTRVJW
SUNFX1dJTjMyX09XTl9QUk9DRVNTCiBTdGFydFR5cGUgICAgICA9IDIgICAgICAgICAgICAgICA7
IFNFUlZJQ0VfQVVUT19TVEFSVCAKIEVycm9yQ29udHJvbCAgID0gMSAgICAgICAgICAgICAgIDsg
U0VSVklDRV9FUlJPUl9OT1JNQUwKLVNlcnZpY2VCaW5hcnkgID0gJTExJVxsaXRlYWdlbnQuZXhl
CitTZXJ2aWNlQmluYXJ5ICA9ICUxMSVceGVuYWdlbnQuZXhlCiAKIFtTb3VyY2VEaXNrc05hbWVz
XQogMSA9ICVEaXNrSWQxJSwsLCIiCiAKIFtTb3VyY2VEaXNrc0ZpbGVzXQogeGVuaWZhY2Uuc3lz
ICA9IDEsLAotbGl0ZWFnZW50LmV4ZSA9IDEsLAoreGVuYWdlbnQuZXhlID0gMSwsCiB4ZW5pZmFj
ZV9jb2luc3QuZGxsPTEsLAogCiBbU3RyaW5nc10KQEAgLTEwNyw2ICsxMDcsNiBAQCBTUFNWQ0lO
U1RfQVNTT0NTRVJWSUNFPSAweDAwMDAwMDAyCiBWZW5kb3I9ICJAVkVORE9SX05BTUVAIiAKIERp
c2tJZDEgPSAiQFBST0RVQ1RfTkFNRUAgSW50ZXJmYWNlIFBhY2thZ2UiCiBYZW5JZmFjZURldmlj
ZS5EZXZpY2VEZXNjID0gIkBQUk9EVUNUX05BTUVAIEludGVyZmFjZSIKLUxJVEVTVkNfRkxBR1M9
IDB4MDAwMDA4MDAKLXhlbmxpdGUuU1ZDREVTQz0gIkBQUk9EVUNUX05BTUVAIEludGVyZmFjZSBT
ZXJ2aWNlIgorWEVOQUdFTlRfRkxBR1M9IDB4MDAwMDA4MDAKK3hlbmFnZW50LlNWQ0RFU0M9ICJA
UFJPRFVDVF9OQU1FQCBJbnRlcmZhY2UgU2VydmljZSIKIApkaWZmIC0tZ2l0IGEvdnMyMDEyL2xp
dGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvaiBiL3ZzMjAxMi9saXRlYWdlbnQvTGl0ZUFnZW50LnZj
eHByb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2NzkxOGEuLjAwMDAwMDAKLS0t
IGEvdnMyMDEyL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvagorKysgL2Rldi9udWxsCkBAIC0x
LDI1MSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotPFBy
b2plY3QgRGVmYXVsdFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0
dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+Ci0gIDxJ
dGVtR3JvdXAgTGFiZWw9IlByb2plY3RDb25maWd1cmF0aW9ucyI+Ci0gICAgPFByb2plY3RDb25m
aWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfFdpbjMyIj4KLSAgICAgIDxDb25maWd1cmF0aW9uPkRl
YnVnPC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KLSAg
ICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNs
dWRlPSJEZWJ1Z3x4NjQiPgotICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRp
b24+Ci0gICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RDb25maWd1
cmF0aW9uPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfFdpbjMy
Ij4KLSAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8
UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgotICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+Ci0g
ICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8eDY0Ij4KLSAgICAgIDxD
b25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8UGxhdGZvcm0+eDY0
PC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICA8L0l0ZW1Hcm91cD4K
LSAgPFByb3BlcnR5R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPgotICAgIDxQcm9qZWN0R3VpZD57MkU2
MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfTwvUHJvamVjdEd1aWQ+Ci0gICAgPEtl
eXdvcmQ+V2luMzJQcm9qPC9LZXl3b3JkPgotICAgIDxSb290TmFtZXNwYWNlPlN0dWJBZ2VudDwv
Um9vdE5hbWVzcGFjZT4KLSAgICA8UHJvamVjdE5hbWU+TGl0ZUFnZW50PC9Qcm9qZWN0TmFtZT4K
LSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClc
TWljcm9zb2Z0LkNwcC5EZWZhdWx0LnByb3BzIiAvPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9
IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29u
ZmlndXJhdGlvblR5cGU+Ci0gICAgPFVzZURlYnVnTGlicmFyaWVzPnRydWU8L1VzZURlYnVnTGli
cmFyaWVzPgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djExMDwvUGxhdGZvcm1Ub29sc2V0PgotICAg
IDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gIDwvUHJvcGVydHlHcm91
cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3Vy
YXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8VXNlRGVidWdM
aWJyYXJpZXM+dHJ1ZTwvVXNlRGVidWdMaWJyYXJpZXM+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD52
MTEwPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJh
Y3RlclNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0i
Q29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25m
aWd1cmF0aW9uVHlwZT4KLSAgICA8VXNlRGVidWdMaWJyYXJpZXM+ZmFsc2U8L1VzZURlYnVnTGli
cmFyaWVzPgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djExMDwvUGxhdGZvcm1Ub29sc2V0PgotICAg
IDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9u
PgotICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gIDwvUHJvcGVy
dHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAgICA8
Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxV
c2VEZWJ1Z0xpYnJhcmllcz5mYWxzZTwvVXNlRGVidWdMaWJyYXJpZXM+Ci0gICAgPFBsYXRmb3Jt
VG9vbHNldD52MTEwPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gICAgPFdob2xlUHJvZ3JhbU9wdGltaXph
dGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+Ci0gICAgPENoYXJhY3RlclNldD5N
dWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SW1wb3J0IFBy
b2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5wcm9wcyIgLz4KLSAgPEltcG9y
dEdyb3VwIExhYmVsPSJFeHRlbnNpb25TZXR0aW5ncyI+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxJ
bXBvcnRHcm91cCBMYWJlbD0iUHJvcGVydHlTaGVldHMiIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KLSAgICA8SW1wb3J0IFByb2plY3Q9
IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29u
ZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSku
dXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1wb3J0
R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+Ci0gICAgPEltcG9y
dCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIu
cHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQo
UGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgot
ICA8L0ltcG9ydEdyb3VwPgotICA8SW1wb3J0R3JvdXAgTGFiZWw9IlByb3BlcnR5U2hlZXRzIiBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzIn
Ij4KLSAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQ
bGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1p
Y3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRh
UGxhdGZvcm0iIC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IlBy
b3BlcnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jv
c29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNl
clJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0i
TG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxQcm9wZXJ0eUdy
b3VwIExhYmVsPSJVc2VyTWFjcm9zIiAvPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Ci0gICAgPExpbmtJ
bmNyZW1lbnRhbD50cnVlPC9MaW5rSW5jcmVtZW50YWw+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAg
PFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3x4NjQnIj4KLSAgICA8TGlua0luY3JlbWVudGFsPnRydWU8L0xpbmtJbmNyZW1lbnRh
bD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KLSAgICA8TGlua0lu
Y3JlbWVudGFsPmZhbHNlPC9MaW5rSW5jcmVtZW50YWw+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAg
PFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlfHg2NCciPgotICAgIDxMaW5rSW5jcmVtZW50YWw+ZmFsc2U8L0xpbmtJbmNyZW1l
bnRhbD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotCi0gIDxQcm9wZXJ0eUdyb3VwPgotICAgIDxJbmNs
dWRlUGF0aD4uLlwuLlxpbmNsdWRlOyQoSW5jbHVkZVBhdGgpPC9JbmNsdWRlUGF0aD4KLSAgPC9Q
cm9wZXJ0eUdyb3VwPgotCi0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KLSAgICA8Q2xDb21waWxl
PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPlVzZTwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAg
ICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPE9wdGltaXphdGlv
bj5EaXNhYmxlZDwvT3B0aW1pemF0aW9uPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25z
PldJTjMyO19ERUJVRztfV0lORE9XUztfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUzslKFByZXByb2Nl
c3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8U0RMQ2hl
Y2s+dHJ1ZTwvU0RMQ2hlY2s+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4u
LlwuLlxpbmNsdWRlOyQoU29sdXRpb25EaXIpXGxpdGVhZ2VudDslKEFkZGl0aW9uYWxJbmNsdWRl
RGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPFJ1bnRp
bWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWREZWJ1ZzwvUnVudGltZUxpYnJhcnk+Ci0gICAgPC9DbENv
bXBpbGU+Ci0gICAgPExpbms+Ci0gICAgICA8U3ViU3lzdGVtPldpbmRvd3M8L1N1YlN5c3RlbT4K
LSAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9y
bWF0aW9uPgotICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+UG93cnByb2YubGliOyUoQWRk
aXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+Ci0gICAgPC9MaW5r
PgotICAgIDxDdXN0b21CdWlsZFN0ZXA+Ci0gICAgICAgIDxDb21tYW5kPnhjb3B5IC95ICQoVGFy
Z2V0UGF0aCkgJChTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldClcCi0g
ICAgICAgICAgICB4Y29weSAveSAkKFRhcmdldERpcilMaXRlQWdlbnQucGRiICQoU29sdXRpb25E
aXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpXDwvQ29tbWFuZD4KLSAgICA8L0N1c3Rv
bUJ1aWxkU3RlcD4KLSAgICA8Q3VzdG9tQnVpbGRTdGVwPgotICAgICAgPE1lc3NhZ2U+Q29weWlu
ZyBvdXRwdXQgZmlsZXM8L01lc3NhZ2U+Ci0gICAgICA8T3V0cHV0cz4kKFNvbHV0aW9uRGlyKVwu
Llx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0RmlsZU5hbWUpOyhTb2x1dGlvbkRp
cilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRhcmdldE5hbWUpLnBkYjslKE91dHB1
dHMpPC9PdXRwdXRzPgotICAgICAgPElucHV0cz4kKFRhcmdldFBhdGgpOyQoVGFyZ2V0RGlyKSQo
VGFyZ2V0TmFtZSkucGRiPC9JbnB1dHM+Ci0gICAgPC9DdXN0b21CdWlsZFN0ZXA+Ci0gIDwvSXRl
bURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KLSAgICA8Q2xDb21waWxl
PgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPlVzZTwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAg
ICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPE9wdGltaXphdGlv
bj5EaXNhYmxlZDwvT3B0aW1pemF0aW9uPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25z
PldJTjMyO19ERUJVRztfV0lORE9XUztfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUzslKFByZXByb2Nl
c3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8U0RMQ2hl
Y2s+dHJ1ZTwvU0RMQ2hlY2s+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4u
LlwuLlxpbmNsdWRlOyQoU29sdXRpb25EaXIpXGxpdGVhZ2VudDslKEFkZGl0aW9uYWxJbmNsdWRl
RGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPFJ1bnRp
bWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWREZWJ1ZzwvUnVudGltZUxpYnJhcnk+Ci0gICAgPC9DbENv
bXBpbGU+Ci0gICAgPExpbms+Ci0gICAgICA8U3ViU3lzdGVtPldpbmRvd3M8L1N1YlN5c3RlbT4K
LSAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9y
bWF0aW9uPgotICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+UG93cnByb2YubGliOyUoQWRk
aXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+Ci0gICAgPC9MaW5r
PgotICAgIDxDdXN0b21CdWlsZFN0ZXA+Ci0gICAgICAgIDxDb21tYW5kPnhjb3B5IC95ICQoVGFy
Z2V0UGF0aCkgJChTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldClcCi0g
ICAgICAgICAgICB4Y29weSAveSAkKFRhcmdldERpcilMaXRlQWdlbnQucGRiICQoU29sdXRpb25E
aXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpXDwvQ29tbWFuZD4KLSAgICA8L0N1c3Rv
bUJ1aWxkU3RlcD4KLSAgICA8Q3VzdG9tQnVpbGRTdGVwPgotICAgICAgPE1lc3NhZ2U+Q29weWlu
ZyBvdXRwdXQgZmlsZXM8L01lc3NhZ2U+Ci0gICAgICA8T3V0cHV0cz4kKFNvbHV0aW9uRGlyKVwu
Llx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0RmlsZU5hbWUpOyhTb2x1dGlvbkRp
cilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRhcmdldE5hbWUpLnBkYjslKE91dHB1
dHMpPC9PdXRwdXRzPgotICAgICAgPElucHV0cz4kKFRhcmdldFBhdGgpOyQoVGFyZ2V0RGlyKSQo
VGFyZ2V0TmFtZSkucGRiPC9JbnB1dHM+Ci0gICAgPC9DdXN0b21CdWlsZFN0ZXA+Ci0gIDwvSXRl
bURlZmluaXRpb25Hcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Ci0gICAgPENsQ29t
cGlsZT4KLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8
UHJlY29tcGlsZWRIZWFkZXI+Q3JlYXRlPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxPcHRp
bWl6YXRpb24+TWF4U3BlZWQ8L09wdGltaXphdGlvbj4KLSAgICAgIDxGdW5jdGlvbkxldmVsTGlu
a2luZz50cnVlPC9GdW5jdGlvbkxldmVsTGlua2luZz4KLSAgICAgIDxJbnRyaW5zaWNGdW5jdGlv
bnM+dHJ1ZTwvSW50cmluc2ljRnVuY3Rpb25zPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRp
b25zPldJTjMyO05ERUJVRztfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUztfV0lORE9XUzslKFByZXBy
b2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8U0RM
Q2hlY2s+dHJ1ZTwvU0RMQ2hlY2s+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmll
cz4uLlwuLlxpbmNsdWRlOyQoU29sdXRpb25EaXIpXGxpdGVhZ2VudDslKEFkZGl0aW9uYWxJbmNs
dWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAgICAgPEJy
b3dzZUluZm9ybWF0aW9uPnRydWU8L0Jyb3dzZUluZm9ybWF0aW9uPgotICAgICAgPFByZXByb2Nl
c3NUb0ZpbGU+ZmFsc2U8L1ByZXByb2Nlc3NUb0ZpbGU+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+
TXVsdGlUaHJlYWRlZDwvUnVudGltZUxpYnJhcnk+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPExp
bms+Ci0gICAgICA8U3ViU3lzdGVtPldpbmRvd3M8L1N1YlN5c3RlbT4KLSAgICAgIDxHZW5lcmF0
ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPgotICAgICAg
PEVuYWJsZUNPTURBVEZvbGRpbmc+dHJ1ZTwvRW5hYmxlQ09NREFURm9sZGluZz4KLSAgICAgIDxP
cHRpbWl6ZVJlZmVyZW5jZXM+dHJ1ZTwvT3B0aW1pemVSZWZlcmVuY2VzPgotICAgICAgPEFkZGl0
aW9uYWxEZXBlbmRlbmNpZXM+UG93cnByb2YubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8
L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+Ci0gICAgPC9MaW5rPgotICAgIDxDdXN0b21CdWlsZFN0
ZXA+Ci0gICAgICA8TWVzc2FnZT5Db3B5aW5nIG91dHB1dCBmaWxlczwvTWVzc2FnZT4KLSAgICAg
IDxDb21tYW5kPnhjb3B5IC95ICQoVGFyZ2V0UGF0aCkgJChTb2x1dGlvbkRpcilcLi5ceGVuaWZh
Y2VcJChQbGF0Zm9ybVRhcmdldClcCi0gICAgICAgICAgeGNvcHkgL3kgJChUYXJnZXREaXIpTGl0
ZUFnZW50LnBkYiAkKFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KVw8
L0NvbW1hbmQ+Ci0gICAgICA8T3V0cHV0cz4kKFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBs
YXRmb3JtVGFyZ2V0KSQoVGFyZ2V0RmlsZU5hbWUpOyhTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2Vc
JChQbGF0Zm9ybVRhcmdldCkkKFRhcmdldE5hbWUpLnBkYjslKE91dHB1dHMpPC9PdXRwdXRzPgot
ICAgICAgPElucHV0cz4kKFRhcmdldFBhdGgpOyQoVGFyZ2V0RGlyKSQoVGFyZ2V0TmFtZSkucGRi
PC9JbnB1dHM+Ci0gICAgPC9DdXN0b21CdWlsZFN0ZXA+Ci0gIDwvSXRlbURlZmluaXRpb25Hcm91
cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8V2Fy
bmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVy
PkNyZWF0ZTwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8T3B0aW1pemF0aW9uPk1heFNwZWVk
PC9PcHRpbWl6YXRpb24+Ci0gICAgICA8RnVuY3Rpb25MZXZlbExpbmtpbmc+dHJ1ZTwvRnVuY3Rp
b25MZXZlbExpbmtpbmc+Ci0gICAgICA8SW50cmluc2ljRnVuY3Rpb25zPnRydWU8L0ludHJpbnNp
Y0Z1bmN0aW9ucz4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtOREVCVUc7
X0NSVF9TRUNVUkVfTk9fV0FSTklOR1M7X1dJTkRPV1M7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9u
cyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgotICAgICAgPFNETENoZWNrPnRydWU8L1NETENo
ZWNrPgotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTsk
KFNvbHV0aW9uRGlyKVxsaXRlYWdlbnQ7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwv
QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxCcm93c2VJbmZvcm1hdGlvbj50
cnVlPC9Ccm93c2VJbmZvcm1hdGlvbj4KLSAgICAgIDxQcmVwcm9jZXNzVG9GaWxlPmZhbHNlPC9Q
cmVwcm9jZXNzVG9GaWxlPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWQ8L1J1
bnRpbWVMaWJyYXJ5PgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaW5rPgotICAgICAgPFN1YlN5
c3RlbT5XaW5kb3dzPC9TdWJTeXN0ZW0+Ci0gICAgICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9u
PnRydWU8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4KLSAgICAgIDxFbmFibGVDT01EQVRGb2xk
aW5nPnRydWU8L0VuYWJsZUNPTURBVEZvbGRpbmc+Ci0gICAgICA8T3B0aW1pemVSZWZlcmVuY2Vz
PnRydWU8L09wdGltaXplUmVmZXJlbmNlcz4KLSAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVz
PlBvd3Jwcm9mLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5k
ZW5jaWVzPgotICAgIDwvTGluaz4KLSAgICA8Q3VzdG9tQnVpbGRTdGVwPgotICAgICAgPE1lc3Nh
Z2U+Q29weWluZyBvdXRwdXQgZmlsZXM8L01lc3NhZ2U+Ci0gICAgICA8Q29tbWFuZD54Y29weSAv
eSAkKFRhcmdldFBhdGgpICQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJn
ZXQpXAotICAgICAgICAgIHhjb3B5IC95ICQoVGFyZ2V0RGlyKUxpdGVBZ2VudC5wZGIgJChTb2x1
dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldClcPC9Db21tYW5kPgotICAgICAg
PE91dHB1dHM+JChTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRh
cmdldEZpbGVOYW1lKTsoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQp
JChUYXJnZXROYW1lKS5wZGI7JShPdXRwdXRzKTwvT3V0cHV0cz4KLSAgICAgIDxJbnB1dHM+JChU
YXJnZXRQYXRoKTskKFRhcmdldERpcikkKFRhcmdldE5hbWUpLnBkYjwvSW5wdXRzPgotICAgIDwv
Q3VzdG9tQnVpbGRTdGVwPgotICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+Ci0gIDxJdGVtR3JvdXA+
Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcZXJyb3Jz
LmNwcCI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Tm90VXNpbmc8L1ByZWNvbXBpbGVk
SGVhZGVyPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5Ob3RVc2luZzwvUHJlY29tcGlsZWRI
ZWFkZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxz
cmNcd2luMzJzdHViYWdlbnRcc3RkYWZ4LmNwcCI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMy
JyI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVy
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQn
Ij5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcV21pQWNjZXNzb3IuY3Bw
Ij4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Q3JlYXRlPC9QcmVjb21waWxlZEhlYWRlcj4K
LSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPkNyZWF0ZTwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAg
ICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAg
ICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAg
PC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHVi
YWdlbnRcWFNBY2Nlc3Nvci5jcHAiPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj5DcmVhdGU8
L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Q3JlYXRlPC9QcmVj
b21waWxlZEhlYWRlcj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj5Ob3RVc2luZzwvUHJl
Y29tcGlsZWRIZWFkZXI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPk5vdFVzaW5nPC9QcmVj
b21waWxlZEhlYWRlcj4KLSAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2VudFxYU2VydmljZS5jcHAiPgotICAgICAgPFByZWNvbXBp
bGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8V2luMzInIj5DcmVhdGU8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFByZWNvbXBpbGVk
SGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
eDY0JyI+Q3JlYXRlPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRl
ciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2lu
MzInIj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFk
ZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2
NCciPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICA8L0NsQ29tcGlsZT4KLSAgPC9J
dGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlxz
cmNcd2luMzJzdHViYWdlbnRcc3RkYWZ4LmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlwuLlxzcmNcd2luMzJzdHViYWdlbnRcV21pQWNjZXNzb3IuaCIgLz4KLSAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2VudFxYU0FjY2Vzc29yLmgiIC8+Ci0gICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcWFNlcnZpY2UuaCIg
Lz4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPEN1c3RvbUJ1aWxkIEluY2x1
ZGU9Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2VudFxtZXNzYWdlcy5tYyI+Ci0gICAgICA8RmlsZVR5
cGU+RG9jdW1lbnQ8L0ZpbGVUeXBlPgotICAgICAgPENvbW1hbmQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPm1jICUoRnVsbFBhdGgpPC9D
b21tYW5kPgotICAgICAgPENvbW1hbmQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj5tYyAlKEZ1bGxQYXRoKTwvQ29tbWFuZD4KLSAgICAgIDxP
dXRwdXRzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
V2luMzInIj4lKEZpbGVuYW1lKS5yYzslKEZpbGVuYW1lKS5oPC9PdXRwdXRzPgotICAgICAgPE91
dHB1dHMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4
NjQnIj4lKEZpbGVuYW1lKS5yYzslKEZpbGVuYW1lKS5oPC9PdXRwdXRzPgotICAgICAgPENvbW1h
bmQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdp
bjMyJyI+bWMgJShGdWxsUGF0aCk8L0NvbW1hbmQ+Ci0gICAgICA8Q29tbWFuZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+bWMgJShGdWxs
UGF0aCk8L0NvbW1hbmQ+Ci0gICAgICA8T3V0cHV0cyBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4lKEZpbGVuYW1lKS5yYzslKEZpbGVu
YW1lKS5oPC9PdXRwdXRzPgotICAgICAgPE91dHB1dHMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPiUoRmlsZW5hbWUpLnJjOyUoRmlsZW5h
bWUpLmg8L091dHB1dHM+Ci0gICAgPC9DdXN0b21CdWlsZD4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJ
dGVtR3JvdXA+Ci0gICAgPFJlc291cmNlQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJz
dHViYWdlbnRcdzMyeGFnZW50LnJjIiAvPgotICA8L0l0ZW1Hcm91cD4KLSAgPEl0ZW1Hcm91cD4K
LSAgICA8SW1hZ2UgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1YmFnZW50XHhlbi5pY28iIC8+
Ci0gIDwvSXRlbUdyb3VwPgotICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWlj
cm9zb2Z0LkNwcC50YXJnZXRzIiAvPgotICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRh
cmdldHMiPgotICA8L0ltcG9ydEdyb3VwPgotPC9Qcm9qZWN0PgpkaWZmIC0tZ2l0IGEvdnMyMDEy
L2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvai51c2VyIGIvdnMyMDEyL2xpdGVhZ2VudC9MaXRl
QWdlbnQudmN4cHJvai51c2VyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MGYzY2Jl
Li4wMDAwMDAwCi0tLSBhL3ZzMjAxMi9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHByb2oudXNlcgor
KysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGlu
Zz0idXRmLTgiPz4KLTxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3Nj
aGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KLSAgPFByb3BlcnR5
R3JvdXAgLz4KLTwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS92czIwMTIveGVuYWdlbnQveGVuYWdlbnQudmN4cHJvaiBiL3ZzMjAxMi94ZW5hZ2VudC94
ZW5hZ2VudC52Y3hwcm9qCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmOTlm
OWQKLS0tIC9kZXYvbnVsbAorKysgYi92czIwMTIveGVuYWdlbnQveGVuYWdlbnQudmN4cHJvagpA
QCAtMCwwICsxLDIxNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4K
KzxQcm9qZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5z
PSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgor
ICA8SXRlbUdyb3VwIExhYmVsPSJQcm9qZWN0Q29uZmlndXJhdGlvbnMiPgorICAgIDxQcm9qZWN0
Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3xXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlv
bj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+
CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24g
SW5jbHVkZT0iRGVidWd8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1
cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29u
ZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXxX
aW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgorICAg
ICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9u
PgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfHg2NCI+CisgICAg
ICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3Jt
Png2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgPC9JdGVtR3Jv
dXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJHbG9iYWxzIj4KKyAgICA8UHJvamVjdEd1aWQ+
ezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn08L1Byb2plY3RHdWlkPgorICAg
IDxLZXl3b3JkPldpbjMyUHJvajwvS2V5d29yZD4KKyAgICA8Um9vdE5hbWVzcGFjZT54ZW5hZ2Vu
dDwvUm9vdE5hbWVzcGFjZT4KKyAgICA8UHJvamVjdE5hbWU+eGVuYWdlbnQ8L1Byb2plY3ROYW1l
PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRo
KVxNaWNyb3NvZnQuQ3BwLkRlZmF1bHQucHJvcHMiIC8+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJl
bD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9D
b25maWd1cmF0aW9uVHlwZT4KKyAgICA8VXNlRGVidWdMaWJyYXJpZXM+dHJ1ZTwvVXNlRGVidWdM
aWJyYXJpZXM+CisgICAgPFBsYXRmb3JtVG9vbHNldD52MTEwPC9QbGF0Zm9ybVRvb2xzZXQ+Cisg
ICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KKyAgPC9Qcm9wZXJ0eUdy
b3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmln
dXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxVc2VEZWJ1
Z0xpYnJhcmllcz50cnVlPC9Vc2VEZWJ1Z0xpYnJhcmllcz4KKyAgICA8UGxhdGZvcm1Ub29sc2V0
PnYxMTA8L1BsYXRmb3JtVG9vbHNldD4KKyAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hh
cmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVs
PSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0Nv
bmZpZ3VyYXRpb25UeXBlPgorICAgIDxVc2VEZWJ1Z0xpYnJhcmllcz5mYWxzZTwvVXNlRGVidWdM
aWJyYXJpZXM+CisgICAgPFBsYXRmb3JtVG9vbHNldD52MTEwPC9QbGF0Zm9ybVRvb2xzZXQ+Cisg
ICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRp
b24+CisgICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KKyAgPC9Qcm9w
ZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAg
IDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+CisgICAg
PFVzZURlYnVnTGlicmFyaWVzPmZhbHNlPC9Vc2VEZWJ1Z0xpYnJhcmllcz4KKyAgICA8UGxhdGZv
cm1Ub29sc2V0PnYxMTA8L1BsYXRmb3JtVG9vbHNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1p
emF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgICA8Q2hhcmFjdGVyU2V0
Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQg
UHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPgorICA8SW1w
b3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblNldHRpbmdzIj4KKyAgPC9JbXBvcnRHcm91cD4KKyAg
PEltcG9ydEdyb3VwIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyIgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPgorICAgIDxJbXBvcnQgUHJvamVj
dD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBD
b25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3Jt
KS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgPC9JbXBv
cnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1w
b3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNl
ci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAu
JChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+
CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBMYWJlbD0iUHJvcGVydHlTaGVldHMi
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4z
MiciPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4k
KFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilc
TWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERh
dGFQbGF0Zm9ybSIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0i
UHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWlj
cm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChV
c2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVs
PSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPFByb3BlcnR5
R3JvdXAgTGFiZWw9IlVzZXJNYWNyb3MiIC8+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KKyAgICA8TGlu
a0luY3JlbWVudGFsPnRydWU8L0xpbmtJbmNyZW1lbnRhbD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgor
ICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfHg2NCciPgorICAgIDxMaW5rSW5jcmVtZW50YWw+dHJ1ZTwvTGlua0luY3JlbWVu
dGFsPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgorICAgIDxMaW5r
SW5jcmVtZW50YWw+ZmFsc2U8L0xpbmtJbmNyZW1lbnRhbD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgor
ICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2V8eDY0JyI+CisgICAgPExpbmtJbmNyZW1lbnRhbD5mYWxzZTwvTGlua0luY3Jl
bWVudGFsPgorICA8L1Byb3BlcnR5R3JvdXA+CisKKyAgPFByb3BlcnR5R3JvdXA+CisgICAgPElu
Y2x1ZGVQYXRoPi4uXC4uXGluY2x1ZGU7JChJbmNsdWRlUGF0aCk8L0luY2x1ZGVQYXRoPgorICA8
L1Byb3BlcnR5R3JvdXA+CisKKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPgorICAgIDxDbENvbXBp
bGU+CisgICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVy
PgorICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KKyAgICAgIDxPcHRp
bWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZp
bml0aW9ucz5XSU4zMjtfREVCVUc7X1dJTkRPV1M7X0NSVF9TRUNVUkVfTk9fV0FSTklOR1M7JShQ
cmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgICAg
PFNETENoZWNrPnRydWU8L1NETENoZWNrPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0
b3JpZXM+Li5cLi5caW5jbHVkZTskKFNvbHV0aW9uRGlyKVx4ZW5hZ2VudDslKEFkZGl0aW9uYWxJ
bmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAg
PFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWREZWJ1ZzwvUnVudGltZUxpYnJhcnk+CisgICAg
PC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8U3ViU3lzdGVtPldpbmRvd3M8L1N1YlN5
c3RlbT4KKyAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1
Z0luZm9ybWF0aW9uPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+UG93cnByb2YubGli
OyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAg
PC9MaW5rPgorICAgIDxDdXN0b21CdWlsZFN0ZXA+CisgICAgICAgIDxDb21tYW5kPnhjb3B5IC95
ICQoVGFyZ2V0UGF0aCkgJChTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdl
dClcCisgICAgICAgICAgICB4Y29weSAveSAkKFRhcmdldERpcil4ZW5hZ2VudC5wZGIgJChTb2x1
dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldClcPC9Db21tYW5kPgorICAgIDwv
Q3VzdG9tQnVpbGRTdGVwPgorICAgIDxDdXN0b21CdWlsZFN0ZXA+CisgICAgICA8TWVzc2FnZT5D
b3B5aW5nIG91dHB1dCBmaWxlczwvTWVzc2FnZT4KKyAgICAgIDxPdXRwdXRzPiQoU29sdXRpb25E
aXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXRGaWxlTmFtZSk7KFNvbHV0
aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0TmFtZSkucGRiOyUo
T3V0cHV0cyk8L091dHB1dHM+CisgICAgICA8SW5wdXRzPiQoVGFyZ2V0UGF0aCk7JChUYXJnZXRE
aXIpJChUYXJnZXROYW1lKS5wZGI8L0lucHV0cz4KKyAgICA8L0N1c3RvbUJ1aWxkU3RlcD4KKyAg
PC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPgorICAgIDxDbENv
bXBpbGU+CisgICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVh
ZGVyPgorICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KKyAgICAgIDxP
cHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KKyAgICAgIDxQcmVwcm9jZXNzb3JE
ZWZpbml0aW9ucz5XSU4zMjtfREVCVUc7X1dJTkRPV1M7X0NSVF9TRUNVUkVfTk9fV0FSTklOR1M7
JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAg
ICAgPFNETENoZWNrPnRydWU8L1NETENoZWNrPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGly
ZWN0b3JpZXM+Li5cLi5caW5jbHVkZTskKFNvbHV0aW9uRGlyKVx4ZW5hZ2VudDslKEFkZGl0aW9u
YWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAg
ICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWREZWJ1ZzwvUnVudGltZUxpYnJhcnk+Cisg
ICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8U3ViU3lzdGVtPldpbmRvd3M8L1N1
YlN5c3RlbT4KKyAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVE
ZWJ1Z0luZm9ybWF0aW9uPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+UG93cnByb2Yu
bGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+Cisg
ICAgPC9MaW5rPgorICAgIDxDdXN0b21CdWlsZFN0ZXA+CisgICAgICAgIDxDb21tYW5kPnhjb3B5
IC95ICQoVGFyZ2V0UGF0aCkgJChTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRh
cmdldClcCisgICAgICAgICAgICB4Y29weSAveSAkKFRhcmdldERpcil4ZW5hZ2VudC5wZGIgJChT
b2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldClcPC9Db21tYW5kPgorICAg
IDwvQ3VzdG9tQnVpbGRTdGVwPgorICAgIDxDdXN0b21CdWlsZFN0ZXA+CisgICAgICA8TWVzc2Fn
ZT5Db3B5aW5nIG91dHB1dCBmaWxlczwvTWVzc2FnZT4KKyAgICAgIDxPdXRwdXRzPiQoU29sdXRp
b25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXRGaWxlTmFtZSk7KFNv
bHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0TmFtZSkucGRi
OyUoT3V0cHV0cyk8L091dHB1dHM+CisgICAgICA8SW5wdXRzPiQoVGFyZ2V0UGF0aCk7JChUYXJn
ZXREaXIpJChUYXJnZXROYW1lKS5wZGI8L0lucHV0cz4KKyAgICA8L0N1c3RvbUJ1aWxkU3RlcD4K
KyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KKyAg
ICA8Q2xDb21waWxlPgorICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4K
KyAgICAgIDxQcmVjb21waWxlZEhlYWRlcj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+Cisg
ICAgICA8T3B0aW1pemF0aW9uPk1heFNwZWVkPC9PcHRpbWl6YXRpb24+CisgICAgICA8RnVuY3Rp
b25MZXZlbExpbmtpbmc+dHJ1ZTwvRnVuY3Rpb25MZXZlbExpbmtpbmc+CisgICAgICA8SW50cmlu
c2ljRnVuY3Rpb25zPnRydWU8L0ludHJpbnNpY0Z1bmN0aW9ucz4KKyAgICAgIDxQcmVwcm9jZXNz
b3JEZWZpbml0aW9ucz5XSU4zMjtOREVCVUc7X0NSVF9TRUNVUkVfTk9fV0FSTklOR1M7X1dJTkRP
V1M7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgor
ICAgICAgPFNETENoZWNrPnRydWU8L1NETENoZWNrPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRl
RGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTskKFNvbHV0aW9uRGlyKVx4ZW5hZ2VudDslKEFkZGl0
aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgor
ICAgICAgPEJyb3dzZUluZm9ybWF0aW9uPnRydWU8L0Jyb3dzZUluZm9ybWF0aW9uPgorICAgICAg
PFByZXByb2Nlc3NUb0ZpbGU+ZmFsc2U8L1ByZXByb2Nlc3NUb0ZpbGU+CisgICAgICA8UnVudGlt
ZUxpYnJhcnk+TXVsdGlUaHJlYWRlZDwvUnVudGltZUxpYnJhcnk+CisgICAgPC9DbENvbXBpbGU+
CisgICAgPExpbms+CisgICAgICA8U3ViU3lzdGVtPldpbmRvd3M8L1N1YlN5c3RlbT4KKyAgICAg
IDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9u
PgorICAgICAgPEVuYWJsZUNPTURBVEZvbGRpbmc+dHJ1ZTwvRW5hYmxlQ09NREFURm9sZGluZz4K
KyAgICAgIDxPcHRpbWl6ZVJlZmVyZW5jZXM+dHJ1ZTwvT3B0aW1pemVSZWZlcmVuY2VzPgorICAg
ICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+UG93cnByb2YubGliOyUoQWRkaXRpb25hbERlcGVu
ZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgPC9MaW5rPgorICAgIDxDdXN0
b21CdWlsZFN0ZXA+CisgICAgICA8TWVzc2FnZT5Db3B5aW5nIG91dHB1dCBmaWxlczwvTWVzc2Fn
ZT4KKyAgICAgIDxDb21tYW5kPnhjb3B5IC95ICQoVGFyZ2V0UGF0aCkgJChTb2x1dGlvbkRpcilc
Li5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldClcCisgICAgICAgICAgeGNvcHkgL3kgJChUYXJn
ZXREaXIpeGVuYWdlbnQucGRiICQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1U
YXJnZXQpXDwvQ29tbWFuZD4KKyAgICAgIDxPdXRwdXRzPiQoU29sdXRpb25EaXIpXC4uXHhlbmlm
YWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXRGaWxlTmFtZSk7KFNvbHV0aW9uRGlyKVwuLlx4
ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0TmFtZSkucGRiOyUoT3V0cHV0cyk8L091
dHB1dHM+CisgICAgICA8SW5wdXRzPiQoVGFyZ2V0UGF0aCk7JChUYXJnZXREaXIpJChUYXJnZXRO
YW1lKS5wZGI8L0lucHV0cz4KKyAgICA8L0N1c3RvbUJ1aWxkU3RlcD4KKyAgPC9JdGVtRGVmaW5p
dGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+CisgICAgPENsQ29tcGlsZT4KKyAg
ICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+CisgICAgICA8UHJlY29tcGls
ZWRIZWFkZXI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgorICAgICAgPE9wdGltaXphdGlv
bj5NYXhTcGVlZDwvT3B0aW1pemF0aW9uPgorICAgICAgPEZ1bmN0aW9uTGV2ZWxMaW5raW5nPnRy
dWU8L0Z1bmN0aW9uTGV2ZWxMaW5raW5nPgorICAgICAgPEludHJpbnNpY0Z1bmN0aW9ucz50cnVl
PC9JbnRyaW5zaWNGdW5jdGlvbnM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lO
MzI7TkRFQlVHO19DUlRfU0VDVVJFX05PX1dBUk5JTkdTO19XSU5ET1dTOyUoUHJlcHJvY2Vzc29y
RGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxTRExDaGVjaz50
cnVlPC9TRExDaGVjaz4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4u
XGluY2x1ZGU7JChTb2x1dGlvbkRpcilceGVuYWdlbnQ7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVj
dG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICAgIDxCcm93c2VJbmZv
cm1hdGlvbj50cnVlPC9Ccm93c2VJbmZvcm1hdGlvbj4KKyAgICAgIDxQcmVwcm9jZXNzVG9GaWxl
PmZhbHNlPC9QcmVwcm9jZXNzVG9GaWxlPgorICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhy
ZWFkZWQ8L1J1bnRpbWVMaWJyYXJ5PgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5rPgorICAg
ICAgPFN1YlN5c3RlbT5XaW5kb3dzPC9TdWJTeXN0ZW0+CisgICAgICA8R2VuZXJhdGVEZWJ1Z0lu
Zm9ybWF0aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4KKyAgICAgIDxFbmFibGVD
T01EQVRGb2xkaW5nPnRydWU8L0VuYWJsZUNPTURBVEZvbGRpbmc+CisgICAgICA8T3B0aW1pemVS
ZWZlcmVuY2VzPnRydWU8L09wdGltaXplUmVmZXJlbmNlcz4KKyAgICAgIDxBZGRpdGlvbmFsRGVw
ZW5kZW5jaWVzPlBvd3Jwcm9mLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlv
bmFsRGVwZW5kZW5jaWVzPgorICAgIDwvTGluaz4KKyAgICA8Q3VzdG9tQnVpbGRTdGVwPgorICAg
ICAgPE1lc3NhZ2U+Q29weWluZyBvdXRwdXQgZmlsZXM8L01lc3NhZ2U+CisgICAgICA8Q29tbWFu
ZD54Y29weSAveSAkKFRhcmdldFBhdGgpICQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxh
dGZvcm1UYXJnZXQpXAorICAgICAgICAgIHhjb3B5IC95ICQoVGFyZ2V0RGlyKXhlbmFnZW50LnBk
YiAkKFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KVw8L0NvbW1hbmQ+
CisgICAgICA8T3V0cHV0cz4kKFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFy
Z2V0KSQoVGFyZ2V0RmlsZU5hbWUpOyhTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9y
bVRhcmdldCkkKFRhcmdldE5hbWUpLnBkYjslKE91dHB1dHMpPC9PdXRwdXRzPgorICAgICAgPElu
cHV0cz4kKFRhcmdldFBhdGgpOyQoVGFyZ2V0RGlyKSQoVGFyZ2V0TmFtZSkucGRiPC9JbnB1dHM+
CisgICAgPC9DdXN0b21CdWlsZFN0ZXA+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0
ZW1Hcm91cD4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5hZ2VudFxzZXJ2
aWNlLmNwcCIvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5hZ2VudFxzZXJ2aWNlLmgiIC8+CisgIDwvSXRlbUdyb3Vw
PgorICA8SXRlbUdyb3VwPgorICAgIDxDdXN0b21CdWlsZCBJbmNsdWRlPSIuLlwuLlxzcmNceGVu
YWdlbnRcbWVzc2FnZXMubWMiPgorICAgICAgPEZpbGVUeXBlPkRvY3VtZW50PC9GaWxlVHlwZT4K
KyAgICAgIDxDb21tYW5kPm1jICUoRnVsbFBhdGgpPC9Db21tYW5kPgorICAgICAgPE91dHB1dHM+
JShGaWxlbmFtZSkucmM7JShGaWxlbmFtZSkuaDwvT3V0cHV0cz4KKwk8L0N1c3RvbUJ1aWxkPgor
ICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8UmVzb3VyY2VDb21waWxlIEluY2x1
ZGU9Ii4uXC4uXHNyY1x4ZW5hZ2VudFx4ZW5hZ2VudC5yYyIgLz4KKyAgPC9JdGVtR3JvdXA+Cisg
IDxJdGVtR3JvdXA+CisgICAgPEltYWdlIEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5hZ2VudFx4ZW4u
aWNvIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1Bh
dGgpXE1pY3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4KKyAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRl
bnNpb25UYXJnZXRzIj4KKyAgPC9JbXBvcnRHcm91cD4KKzwvUHJvamVjdD4KZGlmZiAtLWdpdCBh
L3ZzMjAxMi94ZW5hZ2VudC94ZW5hZ2VudC52Y3hwcm9qLnVzZXIgYi92czIwMTIveGVuYWdlbnQv
eGVuYWdlbnQudmN4cHJvai51c2VyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjUwZjNjYmUKLS0tIC9kZXYvbnVsbAorKysgYi92czIwMTIveGVuYWdlbnQveGVuYWdlbnQudmN4
cHJvai51c2VyCkBAIC0wLDAgKzEsNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0i
dXRmLTgiPz4KKzxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVt
YXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPFByb3BlcnR5R3Jv
dXAgLz4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS92czIwMTIveGVuaWZhY2Uuc2xuIGIvdnMyMDEyL3hlbmlmYWNlLnNsbgppbmRleCBjYjZiZWNm
Li45NzAwY2UzIDEwMDY0NAotLS0gYS92czIwMTIveGVuaWZhY2Uuc2xuCisrKyBiL3ZzMjAxMi94
ZW5pZmFjZS5zbG4KQEAgLTQsNyArNCw3IEBAIFByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAt
OEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAieGVuaWZhY2VfY29pbnN0IiwgInhlbmlmYWNlCiBFbmRQ
cm9qZWN0CiBQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIp
ID0gInhlbmlmYWNlIiwgInhlbmlmYWNlXHhlbmlmYWNlLnZjeHByb2oiLCAiezIyMTY2MjkwLTY1
RDgtNDlEMi1CQjg4LTMzMjAxNzk3QzdEOH0iCiBFbmRQcm9qZWN0Ci1Qcm9qZWN0KCJ7OEJDOUNF
QjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIkxpdGVBZ2VudCIsICJsaXRlYWdl
bnRcTGl0ZUFnZW50LnZjeHByb2oiLCAiezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdC
QkQzQn0iCitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIp
ID0gInhlbmFnZW50IiwgInhlbmFnZW50XHhlbmFnZW50LnZjeHByb2oiLCAiezJFNjFEMkNDLTg2
NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0iCiBFbmRQcm9qZWN0CiBQcm9qZWN0KCJ7OEJDOUNF
QjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gInBhY2thZ2UiLCAicGFja2FnZVxw
YWNrYWdlLnZjeHByb2oiLCAiezlCMDcxQTM1LTg5N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0i
CiAJUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdApkaWZm
IC0tZ2l0IGEvdnMyMDEzL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvaiBiL3ZzMjAxMy9saXRl
YWdlbnQvTGl0ZUFnZW50LnZjeHByb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUw
ZGJlNDMuLjAwMDAwMDAKLS0tIGEvdnMyMDEzL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvagor
KysgL2Rldi9udWxsCkBAIC0xLDI1NiArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29k
aW5nPSJ1dGYtOCI/PgotPFByb2plY3QgRGVmYXVsdFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNp
b249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21z
YnVpbGQvMjAwMyI+Ci0gIDxJdGVtR3JvdXAgTGFiZWw9IlByb2plY3RDb25maWd1cmF0aW9ucyI+
Ci0gICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfFdpbjMyIj4KLSAgICAg
IDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgotICAgICAgPFBsYXRmb3JtPldp
bjMyPC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICAgIDxQcm9qZWN0
Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3x4NjQiPgotICAgICAgPENvbmZpZ3VyYXRpb24+
RGVidWc8L0NvbmZpZ3VyYXRpb24+Ci0gICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KLSAg
ICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgotICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNs
dWRlPSJSZWxlYXNlfFdpbjMyIj4KLSAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZp
Z3VyYXRpb24+Ci0gICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgotICAgIDwvUHJvamVj
dENvbmZpZ3VyYXRpb24+Ci0gICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVh
c2V8eDY0Ij4KLSAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+Ci0g
ICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9u
PgotICA8L0l0ZW1Hcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPgotICAg
IDxQcm9qZWN0R3VpZD57MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfTwvUHJv
amVjdEd1aWQ+Ci0gICAgPEtleXdvcmQ+V2luMzJQcm9qPC9LZXl3b3JkPgotICAgIDxSb290TmFt
ZXNwYWNlPlN0dWJBZ2VudDwvUm9vdE5hbWVzcGFjZT4KLSAgICA8UHJvamVjdE5hbWU+TGl0ZUFn
ZW50PC9Qcm9qZWN0TmFtZT4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SW1wb3J0IFByb2plY3Q9
IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5EZWZhdWx0LnByb3BzIiAvPgotICA8UHJv
cGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlw
ZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAgPFVzZURlYnVnTGlicmFyaWVz
PnRydWU8L1VzZURlYnVnTGlicmFyaWVzPgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0Fw
cGxpY2F0aW9uRm9yRHJpdmVyczguMTwvUGxhdGZvcm1Ub29sc2V0PgotICAgIDxDaGFyYWN0ZXJT
ZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3Bl
cnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3x4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkFw
cGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8VXNlRGVidWdMaWJyYXJpZXM+dHJ1
ZTwvVXNlRGVidWdMaWJyYXJpZXM+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dzQXBwbGlj
YXRpb25Gb3JEcml2ZXJzOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gICAgPENoYXJhY3RlclNldD5N
dWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlH
cm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8
V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkFw
cGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8VXNlRGVidWdMaWJyYXJpZXM+ZmFs
c2U8L1VzZURlYnVnTGlicmFyaWVzPgotICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0FwcGxp
Y2F0aW9uRm9yRHJpdmVyczguMTwvUGxhdGZvcm1Ub29sc2V0PgotICAgIDxXaG9sZVByb2dyYW1P
cHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgotICAgIDxDaGFyYWN0
ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFBy
b3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlvblR5
cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxVc2VEZWJ1Z0xpYnJhcmll
cz5mYWxzZTwvVXNlRGVidWdMaWJyYXJpZXM+Ci0gICAgPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dz
QXBwbGljYXRpb25Gb3JEcml2ZXJzOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+Ci0gICAgPFdob2xlUHJv
Z3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+Ci0gICAgPENo
YXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgot
ICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5wcm9wcyIg
Lz4KLSAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25TZXR0aW5ncyI+Ci0gIDwvSW1wb3J0
R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBMYWJlbD0iUHJvcGVydHlTaGVldHMiIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KLSAgICA8SW1w
b3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNl
ci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAu
JChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+
Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+
Ci0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxh
dGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNy
b3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBs
YXRmb3JtIiAvPgotICA8L0ltcG9ydEdyb3VwPgotICA8SW1wb3J0R3JvdXAgTGFiZWw9IlByb3Bl
cnR5U2hlZXRzIiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8V2luMzInIj4KLSAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jv
c29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNl
clJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0i
TG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0gIDxJbXBvcnRHcm91
cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0
JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KLSAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJv
b3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJl
eGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9w
cycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gIDwvSW1wb3J0R3JvdXA+Ci0g
IDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJVc2VyTWFjcm9zIiAvPgotICA8UHJvcGVydHlHcm91cCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+
Ci0gICAgPExpbmtJbmNyZW1lbnRhbD50cnVlPC9MaW5rSW5jcmVtZW50YWw+Ci0gICAgPE91dERp
cj4kKFNvbHV0aW9uRGlyKSQoUGxhdGZvcm0pXCQoQ29uZmlndXJhdGlvbk5hbWUpXDwvT3V0RGly
PgotICA8L1Byb3BlcnR5R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Ci0gICAgPExpbmtJbmNyZW1l
bnRhbD50cnVlPC9MaW5rSW5jcmVtZW50YWw+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3Bl
cnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfFdpbjMyJyI+Ci0gICAgPExpbmtJbmNyZW1lbnRhbD5mYWxzZTwvTGlua0luY3JlbWVudGFs
PgotICAgIDxPdXREaXI+JChTb2x1dGlvbkRpcikkKFBsYXRmb3JtKVwkKENvbmZpZ3VyYXRpb25O
YW1lKVw8L091dERpcj4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Ci0g
ICAgPExpbmtJbmNyZW1lbnRhbD5mYWxzZTwvTGlua0luY3JlbWVudGFsPgotICA8L1Byb3BlcnR5
R3JvdXA+Ci0gIDxQcm9wZXJ0eUdyb3VwPgotICAgIDxJbmNsdWRlUGF0aD4uLlwuLlxpbmNsdWRl
OyQoSW5jbHVkZVBhdGgpPC9JbmNsdWRlUGF0aD4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8SXRl
bURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfFdpbjMyJyI+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAgIDxQcmVjb21waWxlZEhl
YWRlcj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8V2FybmluZ0xldmVsPkxl
dmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPE9wdGltaXphdGlvbj5EaXNhYmxlZDwvT3B0aW1p
emF0aW9uPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19ERUJVRztfV0lO
RE9XUztfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwv
UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8U0RMQ2hlY2s+dHJ1ZTwvU0RMQ2hlY2s+
Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOyQoU29s
dXRpb25EaXIpXGxpdGVhZ2VudDskKFNES19JTkNfUEFUSCk7JShBZGRpdGlvbmFsSW5jbHVkZURp
cmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAgICAgIDxSdW50aW1l
TGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWc8L1J1bnRpbWVMaWJyYXJ5PgotICAgICAgPFByZWNv
bXBpbGVkSGVhZGVyRmlsZSAvPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyT3V0cHV0RmlsZSAv
PgotICAgIDwvQ2xDb21waWxlPgotICAgIDxMaW5rPgotICAgICAgPFN1YlN5c3RlbT5XaW5kb3dz
PC9TdWJTeXN0ZW0+Ci0gICAgICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPnRydWU8L0dlbmVy
YXRlRGVidWdJbmZvcm1hdGlvbj4KLSAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPlBvd3Jw
cm9mLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVz
PgotICAgIDwvTGluaz4KLSAgICA8Q3VzdG9tQnVpbGRTdGVwPgotICAgICAgPENvbW1hbmQ+eGNv
cHkgL3kgJChUYXJnZXRQYXRoKSAkKFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3Jt
VGFyZ2V0KVwKLSAgICAgICAgICAgIHhjb3B5IC95ICQoVGFyZ2V0RGlyKUxpdGVBZ2VudC5wZGIg
JChTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldClcPC9Db21tYW5kPgot
ICAgIDwvQ3VzdG9tQnVpbGRTdGVwPgotICAgIDxDdXN0b21CdWlsZFN0ZXA+Ci0gICAgICA8TWVz
c2FnZT5Db3B5aW5nIG91dHB1dCBmaWxlczwvTWVzc2FnZT4KLSAgICAgIDxPdXRwdXRzPiQoU29s
dXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXRGaWxlTmFtZSk7
KFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0TmFtZSku
cGRiOyUoT3V0cHV0cyk8L091dHB1dHM+Ci0gICAgICA8SW5wdXRzPiQoVGFyZ2V0UGF0aCk7JChU
YXJnZXREaXIpJChUYXJnZXROYW1lKS5wZGI8L0lucHV0cz4KLSAgICA8L0N1c3RvbUJ1aWxkU3Rl
cD4KLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgotICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPgotICAg
IDxDbENvbXBpbGU+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Tm90VXNpbmc8L1ByZWNvbXBp
bGVkSGVhZGVyPgotICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KLSAg
ICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KLSAgICAgIDxQcmVwcm9j
ZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfREVCVUc7X1dJTkRPV1M7X0NSVF9TRUNVUkVfTk9fV0FS
TklOR1M7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25z
PgotICAgICAgPFNETENoZWNrPnRydWU8L1NETENoZWNrPgotICAgICAgPEFkZGl0aW9uYWxJbmNs
dWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTskKFNvbHV0aW9uRGlyKVxsaXRlYWdlbnQ7JChT
REtfSU5DX1BBVEgpOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJ
bmNsdWRlRGlyZWN0b3JpZXM+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERl
YnVnPC9SdW50aW1lTGlicmFyeT4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlckZpbGUgLz4KLSAg
ICAgIDxQcmVjb21waWxlZEhlYWRlck91dHB1dEZpbGUgLz4KLSAgICA8L0NsQ29tcGlsZT4KLSAg
ICA8TGluaz4KLSAgICAgIDxTdWJTeXN0ZW0+V2luZG93czwvU3ViU3lzdGVtPgotICAgICAgPEdl
bmVyYXRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+Ci0g
ICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz5Qb3dycHJvZi5saWI7JShBZGRpdGlvbmFsRGVw
ZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KLSAgICA8L0xpbms+Ci0gICAgPEN1
c3RvbUJ1aWxkU3RlcD4KLSAgICAgIDxDb21tYW5kPnhjb3B5IC95ICQoVGFyZ2V0UGF0aCkgJChT
b2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldClcCi0gICAgICAgICAgICB4
Y29weSAveSAkKFRhcmdldERpcilMaXRlQWdlbnQucGRiICQoU29sdXRpb25EaXIpXC4uXHhlbmlm
YWNlXCQoUGxhdGZvcm1UYXJnZXQpXDwvQ29tbWFuZD4KLSAgICA8L0N1c3RvbUJ1aWxkU3RlcD4K
LSAgICA8Q3VzdG9tQnVpbGRTdGVwPgotICAgICAgPE1lc3NhZ2U+Q29weWluZyBvdXRwdXQgZmls
ZXM8L01lc3NhZ2U+Ci0gICAgICA8T3V0cHV0cz4kKFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwk
KFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0RmlsZU5hbWUpOyhTb2x1dGlvbkRpcilcLi5ceGVuaWZh
Y2VcJChQbGF0Zm9ybVRhcmdldCkkKFRhcmdldE5hbWUpLnBkYjslKE91dHB1dHMpPC9PdXRwdXRz
PgotICAgICAgPElucHV0cz4kKFRhcmdldFBhdGgpOyQoVGFyZ2V0RGlyKSQoVGFyZ2V0TmFtZSku
cGRiPC9JbnB1dHM+Ci0gICAgPC9DdXN0b21CdWlsZFN0ZXA+Ci0gIDwvSXRlbURlZmluaXRpb25H
cm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAg
IDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+Ci0gICAgICA8UHJlY29tcGlsZWRI
ZWFkZXI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPE9wdGltaXphdGlvbj5N
YXhTcGVlZDwvT3B0aW1pemF0aW9uPgotICAgICAgPEZ1bmN0aW9uTGV2ZWxMaW5raW5nPnRydWU8
L0Z1bmN0aW9uTGV2ZWxMaW5raW5nPgotICAgICAgPEludHJpbnNpY0Z1bmN0aW9ucz50cnVlPC9J
bnRyaW5zaWNGdW5jdGlvbnM+Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7
TkRFQlVHO19DUlRfU0VDVVJFX05PX1dBUk5JTkdTO19XSU5ET1dTOyUoUHJlcHJvY2Vzc29yRGVm
aW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KLSAgICAgIDxTRExDaGVjaz50cnVl
PC9TRExDaGVjaz4KLSAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGlu
Y2x1ZGU7JChTb2x1dGlvbkRpcilcbGl0ZWFnZW50OyQoU0RLX0lOQ19QQVRIKTslKEFkZGl0aW9u
YWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgotICAg
ICAgPEJyb3dzZUluZm9ybWF0aW9uPnRydWU8L0Jyb3dzZUluZm9ybWF0aW9uPgotICAgICAgPFBy
ZXByb2Nlc3NUb0ZpbGU+ZmFsc2U8L1ByZXByb2Nlc3NUb0ZpbGU+Ci0gICAgICA8UnVudGltZUxp
YnJhcnk+TXVsdGlUaHJlYWRlZDwvUnVudGltZUxpYnJhcnk+Ci0gICAgPC9DbENvbXBpbGU+Ci0g
ICAgPExpbms+Ci0gICAgICA8U3ViU3lzdGVtPldpbmRvd3M8L1N1YlN5c3RlbT4KLSAgICAgIDxH
ZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPgot
ICAgICAgPEVuYWJsZUNPTURBVEZvbGRpbmc+dHJ1ZTwvRW5hYmxlQ09NREFURm9sZGluZz4KLSAg
ICAgIDxPcHRpbWl6ZVJlZmVyZW5jZXM+dHJ1ZTwvT3B0aW1pemVSZWZlcmVuY2VzPgotICAgICAg
PEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+UG93cnByb2YubGliOyUoQWRkaXRpb25hbERlcGVuZGVu
Y2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+Ci0gICAgPC9MaW5rPgotICAgIDxDdXN0b21C
dWlsZFN0ZXA+Ci0gICAgICA8TWVzc2FnZT5Db3B5aW5nIG91dHB1dCBmaWxlczwvTWVzc2FnZT4K
LSAgICAgIDxDb21tYW5kPnhjb3B5IC95ICQoVGFyZ2V0UGF0aCkgJChTb2x1dGlvbkRpcilcLi5c
eGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldClcCi0gICAgICAgICAgeGNvcHkgL3kgJChUYXJnZXRE
aXIpTGl0ZUFnZW50LnBkYiAkKFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFy
Z2V0KVw8L0NvbW1hbmQ+Ci0gICAgICA8T3V0cHV0cz4kKFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFj
ZVwkKFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0RmlsZU5hbWUpOyhTb2x1dGlvbkRpcilcLi5ceGVu
aWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRhcmdldE5hbWUpLnBkYjslKE91dHB1dHMpPC9PdXRw
dXRzPgotICAgICAgPElucHV0cz4kKFRhcmdldFBhdGgpOyQoVGFyZ2V0RGlyKSQoVGFyZ2V0TmFt
ZSkucGRiPC9JbnB1dHM+Ci0gICAgPC9DdXN0b21CdWlsZFN0ZXA+Ci0gIDwvSXRlbURlZmluaXRp
b25Hcm91cD4KLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgotICAgIDxDbENvbXBpbGU+Ci0gICAg
ICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgotICAgICAgPFByZWNvbXBpbGVk
SGVhZGVyPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxPcHRpbWl6YXRpb24+
TWF4U3BlZWQ8L09wdGltaXphdGlvbj4KLSAgICAgIDxGdW5jdGlvbkxldmVsTGlua2luZz50cnVl
PC9GdW5jdGlvbkxldmVsTGlua2luZz4KLSAgICAgIDxJbnRyaW5zaWNGdW5jdGlvbnM+dHJ1ZTwv
SW50cmluc2ljRnVuY3Rpb25zPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMy
O05ERUJVRztfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUztfV0lORE9XUzslKFByZXByb2Nlc3NvckRl
ZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Ci0gICAgICA8U0RMQ2hlY2s+dHJ1
ZTwvU0RMQ2hlY2s+Ci0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlxp
bmNsdWRlOyQoU29sdXRpb25EaXIpXGxpdGVhZ2VudDskKFNES19JTkNfUEFUSCk7JShBZGRpdGlv
bmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KLSAg
ICAgIDxCcm93c2VJbmZvcm1hdGlvbj50cnVlPC9Ccm93c2VJbmZvcm1hdGlvbj4KLSAgICAgIDxQ
cmVwcm9jZXNzVG9GaWxlPmZhbHNlPC9QcmVwcm9jZXNzVG9GaWxlPgotICAgICAgPFJ1bnRpbWVM
aWJyYXJ5Pk11bHRpVGhyZWFkZWQ8L1J1bnRpbWVMaWJyYXJ5PgotICAgIDwvQ2xDb21waWxlPgot
ICAgIDxMaW5rPgotICAgICAgPFN1YlN5c3RlbT5XaW5kb3dzPC9TdWJTeXN0ZW0+Ci0gICAgICA8
R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4K
LSAgICAgIDxFbmFibGVDT01EQVRGb2xkaW5nPnRydWU8L0VuYWJsZUNPTURBVEZvbGRpbmc+Ci0g
ICAgICA8T3B0aW1pemVSZWZlcmVuY2VzPnRydWU8L09wdGltaXplUmVmZXJlbmNlcz4KLSAgICAg
IDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPlBvd3Jwcm9mLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRl
bmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgotICAgIDwvTGluaz4KLSAgICA8Q3VzdG9t
QnVpbGRTdGVwPgotICAgICAgPE1lc3NhZ2U+Q29weWluZyBvdXRwdXQgZmlsZXM8L01lc3NhZ2U+
Ci0gICAgICA8Q29tbWFuZD54Y29weSAveSAkKFRhcmdldFBhdGgpICQoU29sdXRpb25EaXIpXC4u
XHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpXAotICAgICAgICAgIHhjb3B5IC95ICQoVGFyZ2V0
RGlyKUxpdGVBZ2VudC5wZGIgJChTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRh
cmdldClcPC9Db21tYW5kPgotICAgICAgPE91dHB1dHM+JChTb2x1dGlvbkRpcilcLi5ceGVuaWZh
Y2VcJChQbGF0Zm9ybVRhcmdldCkkKFRhcmdldEZpbGVOYW1lKTsoU29sdXRpb25EaXIpXC4uXHhl
bmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXROYW1lKS5wZGI7JShPdXRwdXRzKTwvT3V0
cHV0cz4KLSAgICAgIDxJbnB1dHM+JChUYXJnZXRQYXRoKTskKFRhcmdldERpcikkKFRhcmdldE5h
bWUpLnBkYjwvSW5wdXRzPgotICAgIDwvQ3VzdG9tQnVpbGRTdGVwPgotICA8L0l0ZW1EZWZpbml0
aW9uR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxz
cmNcd2luMzJzdHViYWdlbnRcZXJyb3JzLmNwcCI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMy
JyI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVy
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQn
Ij5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcc3RkYWZ4LmNwcCI+Ci0g
ICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPgot
ICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+Ci0g
ICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJz
dHViYWdlbnRcV21pQWNjZXNzb3IuY3BwIj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Q3Jl
YXRlPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPkNyZWF0ZTwv
UHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Tm90VXNpbmc8
L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5Ob3RVc2luZzwv
UHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcWFNBY2Nlc3Nvci5jcHAiPgotICAgICAgPFBy
ZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8V2luMzInIj5DcmVhdGU8L1ByZWNvbXBpbGVkSGVhZGVyPgotICAgICAgPFByZWNv
bXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8eDY0JyI+Q3JlYXRlPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICAgIDxQcmVjb21waWxl
ZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2V8V2luMzInIj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+Ci0gICAgICA8UHJlY29tcGls
ZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfHg2NCciPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4KLSAgICA8L0NsQ29tcGlsZT4K
LSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2VudFxYU2Vydmlj
ZS5jcHAiPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj5DcmVhdGU8L1ByZWNvbXBpbGVkSGVh
ZGVyPgotICAgICAgPFByZWNvbXBpbGVkSGVhZGVyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+Q3JlYXRlPC9QcmVjb21waWxlZEhlYWRlcj4K
LSAgICAgIDxQcmVjb21waWxlZEhlYWRlciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+
Ci0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4K
LSAgICAgIDxQcmVwcm9jZXNzVG9GaWxlIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj5mYWxzZTwvUHJlcHJvY2Vzc1RvRmlsZT4KLSAgICA8
L0NsQ29tcGlsZT4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcc3RkYWZ4LmgiIC8+Ci0gICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcV21pQWNjZXNzb3IuaCIg
Lz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2VudFxYU0Fj
Y2Vzc29yLmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHVi
YWdlbnRcWFNlcnZpY2UuaCIgLz4KLSAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAg
PEN1c3RvbUJ1aWxkIEluY2x1ZGU9Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2VudFxtZXNzYWdlcy5t
YyI+Ci0gICAgICA8RmlsZVR5cGU+RG9jdW1lbnQ8L0ZpbGVUeXBlPgotICAgICAgPENvbW1hbmQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMici
Pm1jICUoRnVsbFBhdGgpPC9Db21tYW5kPgotICAgICAgPENvbW1hbmQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj5tYyAlKEZ1bGxQYXRoKTwv
Q29tbWFuZD4KLSAgICAgIDxPdXRwdXRzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4lKEZpbGVuYW1lKS5yYzslKEZpbGVuYW1lKS5oPC9P
dXRwdXRzPgotICAgICAgPE91dHB1dHMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4lKEZpbGVuYW1lKS5yYzslKEZpbGVuYW1lKS5oPC9PdXRw
dXRzPgotICAgICAgPENvbW1hbmQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+bWMgJShGdWxsUGF0aCk8L0NvbW1hbmQ+Ci0gICAgICA8
Q29tbWFuZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2V8eDY0JyI+bWMgJShGdWxsUGF0aCk8L0NvbW1hbmQ+Ci0gICAgICA8T3V0cHV0cyBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4lKEZp
bGVuYW1lKS5yYzslKEZpbGVuYW1lKS5oPC9PdXRwdXRzPgotICAgICAgPE91dHB1dHMgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPiUoRmls
ZW5hbWUpLnJjOyUoRmlsZW5hbWUpLmg8L091dHB1dHM+Ci0gICAgPC9DdXN0b21CdWlsZD4KLSAg
PC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPFJlc291cmNlQ29tcGlsZSBJbmNsdWRl
PSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcdzMyeGFnZW50LnJjIiAvPgotICA8L0l0ZW1Hcm91
cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8SW1hZ2UgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1
YmFnZW50XHhlbi5pY28iIC8+Ci0gIDwvSXRlbUdyb3VwPgotICA8SW1wb3J0IFByb2plY3Q9IiQo
VkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC50YXJnZXRzIiAvPgotICA8SW1wb3J0R3JvdXAg
TGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgotICA8L0ltcG9ydEdyb3VwPgotPC9Qcm9qZWN0Pgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3ZzMjAxMy9saXRlYWdlbnQv
TGl0ZUFnZW50LnZjeHByb2oudXNlciBiL3ZzMjAxMy9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHBy
b2oudXNlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTBmM2NiZS4uMDAwMDAwMAot
LS0gYS92czIwMTMvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qLnVzZXIKKysrIC9kZXYvbnVs
bApAQCAtMSw0ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+
Ci08UHJvamVjdCBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jv
c29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+Ci0gIDxQcm9wZXJ0eUdyb3VwIC8+Ci08
L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdnMyMDEz
L3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2ogYi92czIwMTMveGVuYWdlbnQveGVuYWdlbnQudmN4
cHJvagpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OGVmM2ZjCi0tLSAvZGV2
L251bGwKKysrIGIvdnMyMDEzL3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2oKQEAgLTAsMCArMSwy
MjEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBE
ZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3Nj
aGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEl0ZW1Hcm91
cCBMYWJlbD0iUHJvamVjdENvbmZpZ3VyYXRpb25zIj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRp
b24gSW5jbHVkZT0iRGVidWd8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0Nv
bmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJv
amVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRl
YnVnfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KKyAg
ICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+
CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8V2luMzIiPgorICAg
ICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9y
bT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJv
amVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXx4NjQiPgorICAgICAgPENvbmZpZ3Vy
YXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRm
b3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgIDwvSXRlbUdyb3VwPgorICA8UHJv
cGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+CisgICAgPFByb2plY3RHdWlkPnsyRTYxRDJDQy04
NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9PC9Qcm9qZWN0R3VpZD4KKyAgICA8S2V5d29yZD5X
aW4zMlByb2o8L0tleXdvcmQ+CisgICAgPFJvb3ROYW1lc3BhY2U+eGVuYWdlbnQ8L1Jvb3ROYW1l
c3BhY2U+CisgICAgPFByb2plY3ROYW1lPnhlbmFnZW50PC9Qcm9qZWN0TmFtZT4KKyAgPC9Qcm9w
ZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0
LkNwcC5EZWZhdWx0LnByb3BzIiAvPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3Vy
YXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlv
blR5cGU+CisgICAgPFVzZURlYnVnTGlicmFyaWVzPnRydWU8L1VzZURlYnVnTGlicmFyaWVzPgor
ICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0FwcGxpY2F0aW9uRm9yRHJpdmVyczguMTwvUGxh
dGZvcm1Ub29sc2V0PgorICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+
CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlv
biI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlw
ZT4KKyAgICA8VXNlRGVidWdMaWJyYXJpZXM+dHJ1ZTwvVXNlRGVidWdMaWJyYXJpZXM+CisgICAg
PFBsYXRmb3JtVG9vbHNldD5XaW5kb3dzQXBwbGljYXRpb25Gb3JEcml2ZXJzOC4xPC9QbGF0Zm9y
bVRvb2xzZXQ+CisgICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KKyAg
PC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlv
biI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlw
ZT4KKyAgICA8VXNlRGVidWdMaWJyYXJpZXM+ZmFsc2U8L1VzZURlYnVnTGlicmFyaWVzPgorICAg
IDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0FwcGxpY2F0aW9uRm9yRHJpdmVyczguMTwvUGxhdGZv
cm1Ub29sc2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9n
cmFtT3B0aW1pemF0aW9uPgorICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJT
ZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJDb25maWd1
cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRp
b25UeXBlPgorICAgIDxVc2VEZWJ1Z0xpYnJhcmllcz5mYWxzZTwvVXNlRGVidWdMaWJyYXJpZXM+
CisgICAgPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dzQXBwbGljYXRpb25Gb3JEcml2ZXJzOC4xPC9Q
bGF0Zm9ybVRvb2xzZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9s
ZVByb2dyYW1PcHRpbWl6YXRpb24+CisgICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJh
Y3RlclNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJn
ZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5wcm9wcyIgLz4KKyAgPEltcG9ydEdyb3VwIExhYmVsPSJF
eHRlbnNpb25TZXR0aW5ncyI+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBMYWJl
bD0iUHJvcGVydHlTaGVldHMiIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8V2luMzInIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIp
XE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMo
JyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBM
YWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBv
cnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVz
ZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlv
bj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIu
cHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICA8L0ltcG9ydEdyb3Vw
PgorICA8SW1wb3J0R3JvdXAgTGFiZWw9IlByb3BlcnR5U2hlZXRzIiBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KKyAgICA8SW1wb3J0
IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5w
cm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQ
bGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Cisg
IDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4K
KyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0
Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jv
c29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxh
dGZvcm0iIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJVc2Vy
TWFjcm9zIiAvPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+CisgICAgPExpbmtJbmNyZW1lbnRhbD50cnVl
PC9MaW5rSW5jcmVtZW50YWw+CisgICAgPE91dERpcj4kKFNvbHV0aW9uRGlyKSQoUGxhdGZvcm0p
XCQoQ29uZmlndXJhdGlvbk5hbWUpXDwvT3V0RGlyPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQ
cm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8eDY0JyI+CisgICAgPExpbmtJbmNyZW1lbnRhbD50cnVlPC9MaW5rSW5jcmVtZW50YWw+
CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+CisgICAgPExpbmtJbmNy
ZW1lbnRhbD5mYWxzZTwvTGlua0luY3JlbWVudGFsPgorICAgIDxPdXREaXI+JChTb2x1dGlvbkRp
cikkKFBsYXRmb3JtKVwkKENvbmZpZ3VyYXRpb25OYW1lKVw8L091dERpcj4KKyAgPC9Qcm9wZXJ0
eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+CisgICAgPExpbmtJbmNyZW1lbnRhbD5mYWxzZTwv
TGlua0luY3JlbWVudGFsPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwPgor
ICAgIDxJbmNsdWRlUGF0aD4uLlwuLlxpbmNsdWRlOyQoSW5jbHVkZVBhdGgpPC9JbmNsdWRlUGF0
aD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+CisgICAgPENs
Q29tcGlsZT4KKyAgICAgIDxQcmVjb21waWxlZEhlYWRlcj5Ob3RVc2luZzwvUHJlY29tcGlsZWRI
ZWFkZXI+CisgICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgorICAgICAg
PE9wdGltaXphdGlvbj5EaXNhYmxlZDwvT3B0aW1pemF0aW9uPgorICAgICAgPFByZXByb2Nlc3Nv
ckRlZmluaXRpb25zPldJTjMyO19ERUJVRztfV0lORE9XUztfQ1JUX1NFQ1VSRV9OT19XQVJOSU5H
UzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Cisg
ICAgICA8U0RMQ2hlY2s+dHJ1ZTwvU0RMQ2hlY2s+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVE
aXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOyQoU29sdXRpb25EaXIpXHhlbmFnZW50OyQoU0RLX0lO
Q19QQVRIKTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVk
ZURpcmVjdG9yaWVzPgorICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWREZWJ1Zzwv
UnVudGltZUxpYnJhcnk+CisgICAgICA8UHJlY29tcGlsZWRIZWFkZXJGaWxlIC8+CisgICAgICA8
UHJlY29tcGlsZWRIZWFkZXJPdXRwdXRGaWxlIC8+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExp
bms+CisgICAgICA8U3ViU3lzdGVtPldpbmRvd3M8L1N1YlN5c3RlbT4KKyAgICAgIDxHZW5lcmF0
ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPgorICAgICAg
PEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+UG93cnByb2YubGliOyUoQWRkaXRpb25hbERlcGVuZGVu
Y2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgPC9MaW5rPgorICAgIDxDdXN0b21C
dWlsZFN0ZXA+CisgICAgICA8Q29tbWFuZD54Y29weSAveSAkKFRhcmdldFBhdGgpICQoU29sdXRp
b25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpXAorICAgICAgICAgICAgeGNvcHkg
L3kgJChUYXJnZXREaXIpeGVuYWdlbnQucGRiICQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQo
UGxhdGZvcm1UYXJnZXQpXDwvQ29tbWFuZD4KKyAgICA8L0N1c3RvbUJ1aWxkU3RlcD4KKyAgICA8
Q3VzdG9tQnVpbGRTdGVwPgorICAgICAgPE1lc3NhZ2U+Q29weWluZyBvdXRwdXQgZmlsZXM8L01l
c3NhZ2U+CisgICAgICA8T3V0cHV0cz4kKFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRm
b3JtVGFyZ2V0KSQoVGFyZ2V0RmlsZU5hbWUpOyhTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQ
bGF0Zm9ybVRhcmdldCkkKFRhcmdldE5hbWUpLnBkYjslKE91dHB1dHMpPC9PdXRwdXRzPgorICAg
ICAgPElucHV0cz4kKFRhcmdldFBhdGgpOyQoVGFyZ2V0RGlyKSQoVGFyZ2V0TmFtZSkucGRiPC9J
bnB1dHM+CisgICAgPC9DdXN0b21CdWlsZFN0ZXA+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4K
KyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPFByZWNvbXBp
bGVkSGVhZGVyPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4KKyAgICAgIDxXYXJuaW5nTGV2
ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+CisgICAgICA8T3B0aW1pemF0aW9uPkRpc2FibGVkPC9P
cHRpbWl6YXRpb24+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X0RFQlVH
O19XSU5ET1dTO19DUlRfU0VDVVJFX05PX1dBUk5JTkdTOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlv
bnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxTRExDaGVjaz50cnVlPC9TRExD
aGVjaz4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7
JChTb2x1dGlvbkRpcilceGVuYWdlbnQ7JChTREtfSU5DX1BBVEgpOyUoQWRkaXRpb25hbEluY2x1
ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8UnVu
dGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERlYnVnPC9SdW50aW1lTGlicmFyeT4KKyAgICAgIDxQ
cmVjb21waWxlZEhlYWRlckZpbGUgLz4KKyAgICAgIDxQcmVjb21waWxlZEhlYWRlck91dHB1dEZp
bGUgLz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxTdWJTeXN0ZW0+V2lu
ZG93czwvU3ViU3lzdGVtPgorICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9H
ZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz5Q
b3dycHJvZi5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVu
Y2llcz4KKyAgICA8L0xpbms+CisgICAgPEN1c3RvbUJ1aWxkU3RlcD4KKyAgICAgIDxDb21tYW5k
Pnhjb3B5IC95ICQoVGFyZ2V0UGF0aCkgJChTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0
Zm9ybVRhcmdldClcCisgICAgICAgICAgICB4Y29weSAveSAkKFRhcmdldERpcil4ZW5hZ2VudC5w
ZGIgJChTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldClcPC9Db21tYW5k
PgorICAgIDwvQ3VzdG9tQnVpbGRTdGVwPgorICAgIDxDdXN0b21CdWlsZFN0ZXA+CisgICAgICA8
TWVzc2FnZT5Db3B5aW5nIG91dHB1dCBmaWxlczwvTWVzc2FnZT4KKyAgICAgIDxPdXRwdXRzPiQo
U29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXRGaWxlTmFt
ZSk7KFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0TmFt
ZSkucGRiOyUoT3V0cHV0cyk8L091dHB1dHM+CisgICAgICA8SW5wdXRzPiQoVGFyZ2V0UGF0aCk7
JChUYXJnZXREaXIpJChUYXJnZXROYW1lKS5wZGI8L0lucHV0cz4KKyAgICA8L0N1c3RvbUJ1aWxk
U3RlcD4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzIn
Ij4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdM
ZXZlbD4KKyAgICAgIDxQcmVjb21waWxlZEhlYWRlcj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFk
ZXI+CisgICAgICA8T3B0aW1pemF0aW9uPk1heFNwZWVkPC9PcHRpbWl6YXRpb24+CisgICAgICA8
RnVuY3Rpb25MZXZlbExpbmtpbmc+dHJ1ZTwvRnVuY3Rpb25MZXZlbExpbmtpbmc+CisgICAgICA8
SW50cmluc2ljRnVuY3Rpb25zPnRydWU8L0ludHJpbnNpY0Z1bmN0aW9ucz4KKyAgICAgIDxQcmVw
cm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtOREVCVUc7X0NSVF9TRUNVUkVfTk9fV0FSTklOR1M7
X1dJTkRPV1M7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRp
b25zPgorICAgICAgPFNETENoZWNrPnRydWU8L1NETENoZWNrPgorICAgICAgPEFkZGl0aW9uYWxJ
bmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTskKFNvbHV0aW9uRGlyKVx4ZW5hZ2VudDsk
KFNES19JTkNfUEFUSCk7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25h
bEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICAgIDxCcm93c2VJbmZvcm1hdGlvbj50cnVlPC9Ccm93
c2VJbmZvcm1hdGlvbj4KKyAgICAgIDxQcmVwcm9jZXNzVG9GaWxlPmZhbHNlPC9QcmVwcm9jZXNz
VG9GaWxlPgorICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWQ8L1J1bnRpbWVMaWJy
YXJ5PgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPFN1YlN5c3RlbT5XaW5k
b3dzPC9TdWJTeXN0ZW0+CisgICAgICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPnRydWU8L0dl
bmVyYXRlRGVidWdJbmZvcm1hdGlvbj4KKyAgICAgIDxFbmFibGVDT01EQVRGb2xkaW5nPnRydWU8
L0VuYWJsZUNPTURBVEZvbGRpbmc+CisgICAgICA8T3B0aW1pemVSZWZlcmVuY2VzPnRydWU8L09w
dGltaXplUmVmZXJlbmNlcz4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPlBvd3Jwcm9m
LmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgor
ICAgIDwvTGluaz4KKyAgICA8Q3VzdG9tQnVpbGRTdGVwPgorICAgICAgPE1lc3NhZ2U+Q29weWlu
ZyBvdXRwdXQgZmlsZXM8L01lc3NhZ2U+CisgICAgICA8Q29tbWFuZD54Y29weSAveSAkKFRhcmdl
dFBhdGgpICQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpXAorICAg
ICAgICAgIHhjb3B5IC95ICQoVGFyZ2V0RGlyKXhlbmFnZW50LnBkYiAkKFNvbHV0aW9uRGlyKVwu
Llx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KVw8L0NvbW1hbmQ+CisgICAgICA8T3V0cHV0cz4k
KFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0RmlsZU5h
bWUpOyhTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRhcmdldE5h
bWUpLnBkYjslKE91dHB1dHMpPC9PdXRwdXRzPgorICAgICAgPElucHV0cz4kKFRhcmdldFBhdGgp
OyQoVGFyZ2V0RGlyKSQoVGFyZ2V0TmFtZSkucGRiPC9JbnB1dHM+CisgICAgPC9DdXN0b21CdWls
ZFN0ZXA+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCci
PgorICAgIDxDbENvbXBpbGU+CisgICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xl
dmVsPgorICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRl
cj4KKyAgICAgIDxPcHRpbWl6YXRpb24+TWF4U3BlZWQ8L09wdGltaXphdGlvbj4KKyAgICAgIDxG
dW5jdGlvbkxldmVsTGlua2luZz50cnVlPC9GdW5jdGlvbkxldmVsTGlua2luZz4KKyAgICAgIDxJ
bnRyaW5zaWNGdW5jdGlvbnM+dHJ1ZTwvSW50cmluc2ljRnVuY3Rpb25zPgorICAgICAgPFByZXBy
b2Nlc3NvckRlZmluaXRpb25zPldJTjMyO05ERUJVRztfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUztf
V0lORE9XUzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlv
bnM+CisgICAgICA8U0RMQ2hlY2s+dHJ1ZTwvU0RMQ2hlY2s+CisgICAgICA8QWRkaXRpb25hbElu
Y2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOyQoU29sdXRpb25EaXIpXHhlbmFnZW50OyQo
U0RLX0lOQ19QQVRIKTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPEJyb3dzZUluZm9ybWF0aW9uPnRydWU8L0Jyb3dz
ZUluZm9ybWF0aW9uPgorICAgICAgPFByZXByb2Nlc3NUb0ZpbGU+ZmFsc2U8L1ByZXByb2Nlc3NU
b0ZpbGU+CisgICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZDwvUnVudGltZUxpYnJh
cnk+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8U3ViU3lzdGVtPldpbmRv
d3M8L1N1YlN5c3RlbT4KKyAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2Vu
ZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPgorICAgICAgPEVuYWJsZUNPTURBVEZvbGRpbmc+dHJ1ZTwv
RW5hYmxlQ09NREFURm9sZGluZz4KKyAgICAgIDxPcHRpbWl6ZVJlZmVyZW5jZXM+dHJ1ZTwvT3B0
aW1pemVSZWZlcmVuY2VzPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+UG93cnByb2Yu
bGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+Cisg
ICAgPC9MaW5rPgorICAgIDxDdXN0b21CdWlsZFN0ZXA+CisgICAgICA8TWVzc2FnZT5Db3B5aW5n
IG91dHB1dCBmaWxlczwvTWVzc2FnZT4KKyAgICAgIDxDb21tYW5kPnhjb3B5IC95ICQoVGFyZ2V0
UGF0aCkgJChTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldClcCisgICAg
ICAgICAgeGNvcHkgL3kgJChUYXJnZXREaXIpeGVuYWdlbnQucGRiICQoU29sdXRpb25EaXIpXC4u
XHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpXDwvQ29tbWFuZD4KKyAgICAgIDxPdXRwdXRzPiQo
U29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXRGaWxlTmFt
ZSk7KFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0TmFt
ZSkucGRiOyUoT3V0cHV0cyk8L091dHB1dHM+CisgICAgICA8SW5wdXRzPiQoVGFyZ2V0UGF0aCk7
JChUYXJnZXREaXIpJChUYXJnZXROYW1lKS5wZGI8L0lucHV0cz4KKyAgICA8L0N1c3RvbUJ1aWxk
U3RlcD4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHhlbmFnZW50XHNlcnZpY2UuY3BwIi8+CisgIDwvSXRl
bUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cc3Jj
XHhlbmFnZW50XHNlcnZpY2UuaCIgLz4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+Cisg
ICAgPEN1c3RvbUJ1aWxkIEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5hZ2VudFx4ZW5hZ2VudC5tYyI+
CisgICAgICA8RmlsZVR5cGU+RG9jdW1lbnQ8L0ZpbGVUeXBlPgorICAgICAgPENvbW1hbmQ+bWMg
JShGdWxsUGF0aCk8L0NvbW1hbmQ+CisgICAgICA8T3V0cHV0cz4lKEZpbGVuYW1lKS5yYzslKEZp
bGVuYW1lKS5oPC9PdXRwdXRzPgorICAgIDwvQ3VzdG9tQnVpbGQ+CisgIDwvSXRlbUdyb3VwPgor
ICA8SXRlbUdyb3VwPgorICAgIDxSZXNvdXJjZUNvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHhl
bmFnZW50XHhlbmFnZW50LnJjIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAg
ICA8SW1hZ2UgSW5jbHVkZT0iLi5cLi5cc3JjXHhlbmFnZW50XHhlbi5pY28iIC8+CisgIDwvSXRl
bUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNw
cC50YXJnZXRzIiAvPgorICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgor
ICA8L0ltcG9ydEdyb3VwPgorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL3ZzMjAxMy94ZW5hZ2VudC94ZW5hZ2VudC52Y3hwcm9qLnVzZXIgYi92czIw
MTMveGVuYWdlbnQveGVuYWdlbnQudmN4cHJvai51c2VyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjUwZjNjYmUKLS0tIC9kZXYvbnVsbAorKysgYi92czIwMTMveGVuYWdlbnQv
eGVuYWdlbnQudmN4cHJvai51c2VyCkBAIC0wLDAgKzEsNCBAQAorPD94bWwgdmVyc2lvbj0iMS4w
IiBlbmNvZGluZz0idXRmLTgiPz4KKzxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0i
aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAg
PFByb3BlcnR5R3JvdXAgLz4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS92czIwMTMveGVuaWZhY2Uuc2xuIGIvdnMyMDEzL3hlbmlmYWNlLnNsbgpp
bmRleCA0MTNiODZhLi4xMDY4YTNhIDEwMDY0NAotLS0gYS92czIwMTMveGVuaWZhY2Uuc2xuCisr
KyBiL3ZzMjAxMy94ZW5pZmFjZS5zbG4KQEAgLTksNyArOSw3IEBAIFByb2plY3QoIns4QkM5Q0VC
OC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAieGVuaWZhY2UiLCAieGVuaWZhY2Vc
eGVuaWZhCiAJCXs4NUM3MzFBRC0yRUEyLTQwNDktQTU0Mi1EMkQzOEVERTkzOEN9ID0gezg1Qzcz
MUFELTJFQTItNDA0OS1BNTQyLUQyRDM4RURFOTM4Q30KIAlFbmRQcm9qZWN0U2VjdGlvbgogRW5k
UHJvamVjdAotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0i
KSA9ICJMaXRlQWdlbnQiLCAibGl0ZWFnZW50XExpdGVBZ2VudC52Y3hwcm9qIiwgInsyRTYxRDJD
Qy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9IgorUHJvamVjdCgiezhCQzlDRUI4LThCNEEt
MTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJ4ZW5hZ2VudCIsICJ4ZW5hZ2VudFx4ZW5hZ2Vu
dC52Y3hwcm9qIiwgInsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9IgogRW5k
UHJvamVjdAogUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0i
KSA9ICJwYWNrYWdlIiwgInBhY2thZ2VccGFja2FnZS52Y3hwcm9qIiwgIns5QjA3MUEzNS04OTdD
LTQ3N0EtQUVCNy05NUY3NzYxOEEyMUR9IgogCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRl
bmNpZXMpID0gcG9zdFByb2plY3QKLS0gCjEuOS40Lm1zeXNnaXQuMQoKCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxp
c3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHA6Ly9saXN0cy54ZW5wcm9q
ZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Wed Jul 06 13:16:57 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 06 Jul 2016 13:16:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bKmhE-0003GG-Bm; Wed, 06 Jul 2016 13:16:56 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bKmhD-0003G3-0H
 for win-pv-devel@lists.xenproject.org; Wed, 06 Jul 2016 13:16:55 +0000
Received: from [85.158.137.68] by server-5.bemta-3.messagelabs.com id
 DD/A3-02783-6C40D775; Wed, 06 Jul 2016 13:16:54 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprFIsWRWlGSWpSXmKPExsVyMfSqs+5Rltp
 wg2uzDS3+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxp6f89gLWtQq7t29wN7AuFGqi5GLQ0hgFqNE
 x/87jCAOi8AlFomDazuYQBwJgXcsEj9X7wTKcAI5MRL/fnYzQ9jlEidWXWIDsYUEFCWar11gh
 xi1jEnixNklYEVsAuoSt98vZodosJP4NOsmmC0ioCpxbfkxsGZmAS2JhxvmgS0QFrCQ+LRnJV
 icBajm0KX9YPW8Am4SO86/YYKYIyexd/JqlgmM/AsYGVYxahSnFpWlFukamuolFWWmZ5TkJmb
 m6BoaGOvlphYXJ6an5iQmFesl5+duYgSGEAMQ7GBcs93zEKMkB5OSKC/Lt+pwIb6k/JTKjMTi
 jPii0pzU4kOMMhwcShK8usCQFBIsSk1PrUjLzAEGM0xagoNHSYT3PjNQmre4IDG3ODMdInWK0
 Zhjy+9ra5k4tk29t5ZJiCUvPy9VSpz3GkipAEhpRmke3CBYlF1ilJUS5mUEOk2IpyC1KDezBF
 X+FaM4B6OSMC8LyD08mXklcPteAZ3CBHTKT5dqkFNKEhFSUg2M61/e+qv/+WHvgYpoNamspup
 7jddsHL5ev+wf+e/Hx5u34l6/S3g8+2DRvx/uQhXrV2QzippvOmXsepa7ZfNNCyFmIYftrS95
 yjY+nPT2X32ynRRLx/mrqzbqByd0/7rL8OuUxnz31oWlHeVKrC/Nn10Q75vEl/Z240XHktcLC
 8XmsscEJTKFKrEUZyQaajEXFScCAFHf5F+tAgAA
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-6.tower-31.messagelabs.com!1467811012!22897816!1
X-Originating-IP: [209.85.213.67]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 59049 invoked from network); 6 Jul 2016 13:16:53 -0000
Received: from mail-vk0-f67.google.com (HELO mail-vk0-f67.google.com)
 (209.85.213.67)
 by server-6.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 6 Jul 2016 13:16:53 -0000
Received: by mail-vk0-f67.google.com with SMTP id v6so32586602vkb.1
 for <win-pv-devel@lists.xenproject.org>; Wed, 06 Jul 2016 06:16:53 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=OJkKMq1qRpOxr1NTHAEKT9hAe03pLIRM2O8Eqm0MyME=;
 b=Iyhg2fqSx0TiEGR6A6AYGMTtAFsYjeLoMvpIEbT2dyoM+1qsEEa7wP875xsAM74gE1
 EyRtDsQgjm4Y0yHvxhhpMJyT7vr5FeBl3XCv75WOoGX3fRT1x9dJDWvKMy3OHMw93IV1
 Pg/TwbKLSY+u/zN5DA9A04f9xbTezDjb6dfB13ProbKbHH/5xwEH6aUT9vhsnPBx7Gc4
 IZxAubby9rgC5jBgcY/nuzhSa50MN3aof9rQJRVSQu1dcsb49ulevB1uhTW2nUUfUKIu
 NXi+RZOJo3UXiY7X30KyiHJEelG1KPD6iqFXFiyAbvYc2Q6XDnAhgbxWhZbt+Oiv0kWH
 +fVg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=OJkKMq1qRpOxr1NTHAEKT9hAe03pLIRM2O8Eqm0MyME=;
 b=jjS/NmQS79wZBY/lsKRtZp3lBIaws/18SoRyPMHrb3M6zqDMG2g/snUACTZUNDZGOL
 +tHk1pizZ/mUkRrJskh4WOLytApY8qA0jJC3nz6aV1KgJ0xbMmNBBLYpWllI/jzm/W2I
 K97fFZtfPOdyYf3VCUVavx5t+kp1t39OojgEDjIGOFk4ZDmLfzqbz5uf2BxYxMb79qVs
 SWKWGX4Bgz/VgLc2wdE/YMH1u84Sc6mU5XVl5ftGbFKuzzDIcAZH4qzxQjKyxznKMtB+
 PMvKDf7xv9uamhjaCt33LRHtJMw+dw21PHV2cQbVgeOvquWZq8otsTcpA02YlNRwhBop
 81jg==
X-Gm-Message-State: ALyK8tJyDT/1DkXqciDa8LC3IMm3D3f++M9Q4pAkJ5inlWPsFRQbU5v8GCZIwqiLM466ZQ==
X-Received: by 10.176.3.13 with SMTP id 13mr5015176uat.139.1467811012439;
 Wed, 06 Jul 2016 06:16:52 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id j2sm1631783vkh.28.2016.07.06.06.16.51
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Wed, 06 Jul 2016 06:16:51 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Wed,  6 Jul 2016 14:16:35 +0100
Message-Id: <1467810995-8640-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Clear Unplug keys when PDO names change
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

V2hlbiB1cGdyYWRpbmcgWEVOQlVTIHRoZSBuYW1lcyBvZiBQRE9zIG1heSBjaGFuZ2UgYmVjYXVz
ZSBhIG5ldwppbnRlcmZhY2UgdmVyc2lvbiBpcyBhZGRlZC4KVGhlIGNvLWluc3RhbGxlciB3aWxs
IGNoZWNrIGZvciBjb21wYXRpYmlsaXR5IHdpdGggY2hpbGQgZHJpdmVycywgYnV0CmV2ZW4gYSBj
b21wYXRpYmxlIGNoaWxkIGRyaXZlciB3aWxsIG5lZWQgdG8gcmUtYmluZCBpZiB0aGUgbmFtZSBv
ZiB0aGUgUERPCnRvIHdoaWNoIGlzIGJpbmRzIGhhcyBjaGFuZ2VkLiBUaGlzIGlzIGEgcHJvYmxl
bSBmb3IgYm9vdC1zdGFydCBkcml2ZXJzCmJlY2F1c2UgdGhlIENEREIgd2FzIHJlbW92ZWQgaW4g
V2luZG93cyA3LCB3aGljaCBtZWFucyB0aGUgc2V0dXBhcGkgbXVzdApkbyB0aGUgcmUtYmluZCBh
bmQgdGhhdCBtZWFucyBhIDB4N0IgQlNPRCB3aWxsIGVuc3VlIGlmIFhFTlZCRCdzIGJpbmRpbmcK
bmVlZHMgdG8gY2hhbmdlLgpUbyBhdm9pZCB0aGlzIHByb2JsZW0sIGlmIHRoZSBjby1pbnN0YWxs
ZXIgZGV0ZWN0cyB0aGF0IFBETyBuYW1lcyB3aWxsCmNoYW5nZSwgdGhlIFVucGx1ZyBrZXlzIGFy
ZSBjbGVhcmVkIGNhdXNpbmcgYSBmYWxsLWJhY2sgdG8gZW11bGF0ZWQgZGV2aWNlcwpvbiByZWJv
b3QgdGh1cyBhbGxvd2luZyB0aGUgc2V0dXBhcGkgdG8gcnVuIGFuZCBmaXggdGhlIGJpbmRpbmdz
IG9mIG90aGVyClBWIGRyaXZlcnMuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwu
ZHVycmFudEBjaXRyaXguY29tPgotLS0KIHNyYy9jb2luc3QvY29pbnN0LmMgfCAxMDMgKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQogMSBmaWxlIGNo
YW5nZWQsIDg3IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny
Yy9jb2luc3QvY29pbnN0LmMgYi9zcmMvY29pbnN0L2NvaW5zdC5jCmluZGV4IGQ2NzAwYzAuLmY4
ZWY5MmUgMTAwNjQ0Ci0tLSBhL3NyYy9jb2luc3QvY29pbnN0LmMKKysrIGIvc3JjL2NvaW5zdC9j
b2luc3QuYwpAQCAtNDksNiArNDksMTIgQEAgX191c2VyX2NvZGU7CiAKICNkZWZpbmUgU0VSVklD
RVNfS0VZICJTWVNURU1cXEN1cnJlbnRDb250cm9sU2V0XFxTZXJ2aWNlcyIKIAorI2RlZmluZSBT
RVJWSUNFX0tFWShfRHJpdmVyKSAgICBcCisgICAgICAgIFNFUlZJQ0VTX0tFWSAjIyAiXFwiICMj
ICNfRHJpdmVyCisKKyNkZWZpbmUgVU5QTFVHX0tFWSBcCisgICAgICAgIFNFUlZJQ0VfS0VZKFhF
TikgIyMgIlxcVW5wbHVnIgorCiAjZGVmaW5lIENPTlRST0xfS0VZICJTWVNURU1cXEN1cnJlbnRD
b250cm9sU2V0XFxDb250cm9sIgogCiAjZGVmaW5lIENMQVNTX0tFWSAgIFwKQEAgLTk4MSw3ICs5
ODcsOCBAQCBzdGF0aWMgRFdPUkQgICAgRGV2aWNlUmV2aXNpb25bXSA9IHsKIAogc3RhdGljIEJP
T0xFQU4KIFN1cHBvcnREZXZpY2VJRCgKLSAgICBJTiAgUFRDSEFSICAgICAgRGV2aWNlSUQKKyAg
ICBJTiAgUFRDSEFSICAgICAgRGV2aWNlSUQsCisgICAgT1VUIFBCT09MRUFOICAgIE5ld0JpbmRp
bmcKICAgICApCiB7CiAgICAgdW5zaWduZWQgaW50ICAgIFJldmlzaW9uOwpAQCAtMTAxMCw2ICsx
MDE3LDExIEBAIFN1cHBvcnREZXZpY2VJRCgKICAgICBnb3RvIGZhaWwyOwogCiBmb3VuZDoKKyAg
ICAvLyBJZiB3ZSBkb24ndCBtYXRjaCB0aGUgbGF0ZXN0IHJldmlzaW9uIHRoZW4gaXQgbWVhbnMg
dGhlIGRyaXZlcgorICAgIC8vIGJpbmRpbmcgd2lsbCBjaGFuZ2UuCisgICAgaWYgKEluZGV4IDwg
QVJSQVlTSVpFKERldmljZVJldmlzaW9uKSAtIDEpCisgICAgICAgICpOZXdCaW5kaW5nID0gVFJV
RTsKKwogICAgIExvZygiJXgiLCBSZXZpc2lvbik7CiAKICAgICByZXR1cm4gVFJVRTsKQEAgLTEx
MTYsMjEgKzExMjgsMjEgQEAgZmFpbDE6CiAKIHN0YXRpYyBCT09MRUFOCiBTdXBwb3J0Q2hpbGRE
cml2ZXJzKAotICAgIFZPSUQKKyAgICBPVVQgUEJPT0xFQU4gICAgTmV3QmluZGluZwogICAgICkK
IHsKLSAgICBCT09MRUFOICAgICBTdWNjZXNzOwotICAgIEhLRVkgICAgICAgIFhlbmJ1c0tleTsK
LSAgICBIUkVTVUxUICAgICBFcnJvcjsKLSAgICBEV09SRCAgICAgICBTdWJLZXlzOwotICAgIERX
T1JEICAgICAgIE1heFN1YktleUxlbmd0aDsKLSAgICBEV09SRCAgICAgICBTdWJLZXlMZW5ndGg7
Ci0gICAgUFRDSEFSICAgICAgU3ViS2V5TmFtZTsKLSAgICBIS0VZICAgICAgICBEZXZpY2VLZXk7
Ci0gICAgUFRDSEFSICAgICAgRHJpdmVyS2V5TmFtZTsKLSAgICBIS0VZICAgICAgICBEcml2ZXJL
ZXk7Ci0gICAgUFRDSEFSICAgICAgTWF0Y2hpbmdEZXZpY2VJRDsKLSAgICBEV09SRCAgICAgICBJ
bmRleDsKKyAgICBCT09MRUFOICAgICAgICAgU3VjY2VzczsKKyAgICBIS0VZICAgICAgICAgICAg
WGVuYnVzS2V5OworICAgIEhSRVNVTFQgICAgICAgICBFcnJvcjsKKyAgICBEV09SRCAgICAgICAg
ICAgU3ViS2V5czsKKyAgICBEV09SRCAgICAgICAgICAgTWF4U3ViS2V5TGVuZ3RoOworICAgIERX
T1JEICAgICAgICAgICBTdWJLZXlMZW5ndGg7CisgICAgUFRDSEFSICAgICAgICAgIFN1YktleU5h
bWU7CisgICAgSEtFWSAgICAgICAgICAgIERldmljZUtleTsKKyAgICBQVENIQVIgICAgICAgICAg
RHJpdmVyS2V5TmFtZTsKKyAgICBIS0VZICAgICAgICAgICAgRHJpdmVyS2V5OworICAgIFBUQ0hB
UiAgICAgICAgICBNYXRjaGluZ0RldmljZUlEOworICAgIERXT1JEICAgICAgICAgICBJbmRleDsK
IAogICAgIExvZygiPT09PT4iKTsKIApAQCAtMTIwMiw3ICsxMjE0LDcgQEAgU3VwcG9ydENoaWxk
RHJpdmVycygKICAgICAgICAgaWYgKCFTdWNjZXNzKQogICAgICAgICAgICAgZ290byBmYWlsODsK
IAotICAgICAgICBTdWNjZXNzID0gU3VwcG9ydERldmljZUlEKE1hdGNoaW5nRGV2aWNlSUQpOwor
ICAgICAgICBTdWNjZXNzID0gU3VwcG9ydERldmljZUlEKE1hdGNoaW5nRGV2aWNlSUQsIE5ld0Jp
bmRpbmcpOwogICAgICAgICBpZiAoIVN1Y2Nlc3MpCiAgICAgICAgICAgICBnb3RvIGZhaWw5Owog
CkBAIC0xNDAyLDYgKzE0MTQsNTcgQEAgZmFpbDE6CiAgICAgcmV0dXJuIEZBTFNFOwogfQogCitz
dGF0aWMgQk9PTEVBTgorQ2xlYXJVbnBsdWdSZXF1ZXN0KAorICAgIElOICBQVENIQVIgICAgICBD
bGFzc05hbWUKKyAgICApCit7CisgICAgSEtFWSAgICAgICAgICAgIFVucGx1Z0tleTsKKyAgICBI
UkVTVUxUICAgICAgICAgRXJyb3I7CisKKyAgICBMb2coIj09PT0+ICglcykiLCBDbGFzc05hbWUp
OworCisgICAgRXJyb3IgPSBSZWdPcGVuS2V5RXgoSEtFWV9MT0NBTF9NQUNISU5FLAorICAgICAg
ICAgICAgICAgICAgICAgICAgIFVOUExVR19LRVksCisgICAgICAgICAgICAgICAgICAgICAgICAg
MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBLRVlfQUxMX0FDQ0VTUywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAmVW5wbHVnS2V5KTsKKyAgICBpZiAoRXJyb3IgIT0gRVJST1JfU1VDQ0VT
UykgeworICAgICAgICBTZXRMYXN0RXJyb3IoRXJyb3IpOworICAgICAgICBnb3RvIGZhaWwxOwor
ICAgIH0KKworICAgIEVycm9yID0gUmVnRGVsZXRlVmFsdWUoVW5wbHVnS2V5LCBDbGFzc05hbWUp
OworICAgIGlmIChFcnJvciAhPSBFUlJPUl9TVUNDRVNTKSB7CisgICAgICAgIFNldExhc3RFcnJv
cihFcnJvcik7CisgICAgICAgIGdvdG8gZmFpbDI7CisgICAgfQorCisgICAgUmVnQ2xvc2VLZXko
VW5wbHVnS2V5KTsKKworICAgIExvZygiPD09PT0iKTsKKworICAgIHJldHVybiBUUlVFOworCitm
YWlsMjoKKyAgICBMb2coImZhaWwyIik7CisKKyAgICBSZWdDbG9zZUtleShVbnBsdWdLZXkpOwor
CitmYWlsMToKKyAgICBFcnJvciA9IEdldExhc3RFcnJvcigpOworCisgICAgeworICAgICAgICBQ
VENIQVIgIE1lc3NhZ2U7CisKKyAgICAgICAgTWVzc2FnZSA9IEdldEVycm9yTWVzc2FnZShFcnJv
cik7CisgICAgICAgIExvZygiZmFpbDEgKCVzKSIsIE1lc3NhZ2UpOworICAgICAgICBMb2NhbEZy
ZWUoTWVzc2FnZSk7CisgICAgfQorCisgICAgcmV0dXJuIEZBTFNFOworfQorCiBzdGF0aWMgSFJF
U1VMVAogRGlmSW5zdGFsbFByZVByb2Nlc3MoCiAgICAgSU4gIEhERVZJTkZPICAgICAgICAgICAg
ICAgICAgICBEZXZpY2VJbmZvU2V0LApAQCAtMTQxMiw2ICsxNDc1LDcgQEAgRGlmSW5zdGFsbFBy
ZVByb2Nlc3MoCiAgICAgQk9PTEVBTiAgICAgICAgICAgICAgICAgICAgICAgICBTdWNjZXNzOwog
ICAgIEhSRVNVTFQgICAgICAgICAgICAgICAgICAgICAgICAgRXJyb3I7CiAgICAgQk9PTEVBTiAg
ICAgICAgICAgICAgICAgICAgICAgICBBbGxvdzsKKyAgICBCT09MRUFOICAgICAgICAgICAgICAg
ICAgICAgICAgIE5ld0JpbmRpbmc7CiAKICAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVSKERldmlj
ZUluZm9TZXQpOwogICAgIFVOUkVGRVJFTkNFRF9QQVJBTUVURVIoRGV2aWNlSW5mb0RhdGEpOwpA
QCAtMTQzMiwxMCArMTQ5NiwxNyBAQCBEaWZJbnN0YWxsUHJlUHJvY2VzcygKICAgICBpZiAoIVN1
Y2Nlc3MpCiAgICAgICAgIGdvdG8gZmFpbDM7CiAKLSAgICBTdWNjZXNzID0gU3VwcG9ydENoaWxk
RHJpdmVycygpOworICAgIE5ld0JpbmRpbmcgPSBGQUxTRTsKKworICAgIFN1Y2Nlc3MgPSBTdXBw
b3J0Q2hpbGREcml2ZXJzKCZOZXdCaW5kaW5nKTsKICAgICBpZiAoIVN1Y2Nlc3MpCiAgICAgICAg
IGdvdG8gZmFpbDQ7CiAKKyAgICBpZiAoTmV3QmluZGluZykgeworICAgICAgICAoVk9JRCkgQ2xl
YXJVbnBsdWdSZXF1ZXN0KCJESVNLUyIpOworICAgICAgICAoVk9JRCkgQ2xlYXJVbnBsdWdSZXF1
ZXN0KCJOSUNTIik7CisgICAgfQorCiAgICAgTG9nKCI8PT09PSIpOwogICAgIAogICAgIHJldHVy
biBOT19FUlJPUjsKLS0gCjIuMS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlz
dHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21h
aWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Wed Jul 06 13:16:57 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 06 Jul 2016 13:16:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bKmhE-0003GG-Bm; Wed, 06 Jul 2016 13:16:56 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bKmhD-0003G3-0H
 for win-pv-devel@lists.xenproject.org; Wed, 06 Jul 2016 13:16:55 +0000
Received: from [85.158.137.68] by server-5.bemta-3.messagelabs.com id
 DD/A3-02783-6C40D775; Wed, 06 Jul 2016 13:16:54 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprFIsWRWlGSWpSXmKPExsVyMfSqs+5Rltp
 wg2uzDS3+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxp6f89gLWtQq7t29wN7AuFGqi5GLQ0hgFqNE
 x/87jCAOi8AlFomDazuYQBwJgXcsEj9X7wTKcAI5MRL/fnYzQ9jlEidWXWIDsYUEFCWar11gh
 xi1jEnixNklYEVsAuoSt98vZodosJP4NOsmmC0ioCpxbfkxsGZmAS2JhxvmgS0QFrCQ+LRnJV
 icBajm0KX9YPW8Am4SO86/YYKYIyexd/JqlgmM/AsYGVYxahSnFpWlFukamuolFWWmZ5TkJmb
 m6BoaGOvlphYXJ6an5iQmFesl5+duYgSGEAMQ7GBcs93zEKMkB5OSKC/Lt+pwIb6k/JTKjMTi
 jPii0pzU4kOMMhwcShK8usCQFBIsSk1PrUjLzAEGM0xagoNHSYT3PjNQmre4IDG3ODMdInWK0
 Zhjy+9ra5k4tk29t5ZJiCUvPy9VSpz3GkipAEhpRmke3CBYlF1ilJUS5mUEOk2IpyC1KDezBF
 X+FaM4B6OSMC8LyD08mXklcPteAZ3CBHTKT5dqkFNKEhFSUg2M61/e+qv/+WHvgYpoNamspup
 7jddsHL5ev+wf+e/Hx5u34l6/S3g8+2DRvx/uQhXrV2QzippvOmXsepa7ZfNNCyFmIYftrS95
 yjY+nPT2X32ynRRLx/mrqzbqByd0/7rL8OuUxnz31oWlHeVKrC/Nn10Q75vEl/Z240XHktcLC
 8XmsscEJTKFKrEUZyQaajEXFScCAFHf5F+tAgAA
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-6.tower-31.messagelabs.com!1467811012!22897816!1
X-Originating-IP: [209.85.213.67]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 59049 invoked from network); 6 Jul 2016 13:16:53 -0000
Received: from mail-vk0-f67.google.com (HELO mail-vk0-f67.google.com)
 (209.85.213.67)
 by server-6.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 6 Jul 2016 13:16:53 -0000
Received: by mail-vk0-f67.google.com with SMTP id v6so32586602vkb.1
 for <win-pv-devel@lists.xenproject.org>; Wed, 06 Jul 2016 06:16:53 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=OJkKMq1qRpOxr1NTHAEKT9hAe03pLIRM2O8Eqm0MyME=;
 b=Iyhg2fqSx0TiEGR6A6AYGMTtAFsYjeLoMvpIEbT2dyoM+1qsEEa7wP875xsAM74gE1
 EyRtDsQgjm4Y0yHvxhhpMJyT7vr5FeBl3XCv75WOoGX3fRT1x9dJDWvKMy3OHMw93IV1
 Pg/TwbKLSY+u/zN5DA9A04f9xbTezDjb6dfB13ProbKbHH/5xwEH6aUT9vhsnPBx7Gc4
 IZxAubby9rgC5jBgcY/nuzhSa50MN3aof9rQJRVSQu1dcsb49ulevB1uhTW2nUUfUKIu
 NXi+RZOJo3UXiY7X30KyiHJEelG1KPD6iqFXFiyAbvYc2Q6XDnAhgbxWhZbt+Oiv0kWH
 +fVg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=OJkKMq1qRpOxr1NTHAEKT9hAe03pLIRM2O8Eqm0MyME=;
 b=jjS/NmQS79wZBY/lsKRtZp3lBIaws/18SoRyPMHrb3M6zqDMG2g/snUACTZUNDZGOL
 +tHk1pizZ/mUkRrJskh4WOLytApY8qA0jJC3nz6aV1KgJ0xbMmNBBLYpWllI/jzm/W2I
 K97fFZtfPOdyYf3VCUVavx5t+kp1t39OojgEDjIGOFk4ZDmLfzqbz5uf2BxYxMb79qVs
 SWKWGX4Bgz/VgLc2wdE/YMH1u84Sc6mU5XVl5ftGbFKuzzDIcAZH4qzxQjKyxznKMtB+
 PMvKDf7xv9uamhjaCt33LRHtJMw+dw21PHV2cQbVgeOvquWZq8otsTcpA02YlNRwhBop
 81jg==
X-Gm-Message-State: ALyK8tJyDT/1DkXqciDa8LC3IMm3D3f++M9Q4pAkJ5inlWPsFRQbU5v8GCZIwqiLM466ZQ==
X-Received: by 10.176.3.13 with SMTP id 13mr5015176uat.139.1467811012439;
 Wed, 06 Jul 2016 06:16:52 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id j2sm1631783vkh.28.2016.07.06.06.16.51
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Wed, 06 Jul 2016 06:16:51 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Wed,  6 Jul 2016 14:16:35 +0100
Message-Id: <1467810995-8640-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Clear Unplug keys when PDO names change
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

V2hlbiB1cGdyYWRpbmcgWEVOQlVTIHRoZSBuYW1lcyBvZiBQRE9zIG1heSBjaGFuZ2UgYmVjYXVz
ZSBhIG5ldwppbnRlcmZhY2UgdmVyc2lvbiBpcyBhZGRlZC4KVGhlIGNvLWluc3RhbGxlciB3aWxs
IGNoZWNrIGZvciBjb21wYXRpYmlsaXR5IHdpdGggY2hpbGQgZHJpdmVycywgYnV0CmV2ZW4gYSBj
b21wYXRpYmxlIGNoaWxkIGRyaXZlciB3aWxsIG5lZWQgdG8gcmUtYmluZCBpZiB0aGUgbmFtZSBv
ZiB0aGUgUERPCnRvIHdoaWNoIGlzIGJpbmRzIGhhcyBjaGFuZ2VkLiBUaGlzIGlzIGEgcHJvYmxl
bSBmb3IgYm9vdC1zdGFydCBkcml2ZXJzCmJlY2F1c2UgdGhlIENEREIgd2FzIHJlbW92ZWQgaW4g
V2luZG93cyA3LCB3aGljaCBtZWFucyB0aGUgc2V0dXBhcGkgbXVzdApkbyB0aGUgcmUtYmluZCBh
bmQgdGhhdCBtZWFucyBhIDB4N0IgQlNPRCB3aWxsIGVuc3VlIGlmIFhFTlZCRCdzIGJpbmRpbmcK
bmVlZHMgdG8gY2hhbmdlLgpUbyBhdm9pZCB0aGlzIHByb2JsZW0sIGlmIHRoZSBjby1pbnN0YWxs
ZXIgZGV0ZWN0cyB0aGF0IFBETyBuYW1lcyB3aWxsCmNoYW5nZSwgdGhlIFVucGx1ZyBrZXlzIGFy
ZSBjbGVhcmVkIGNhdXNpbmcgYSBmYWxsLWJhY2sgdG8gZW11bGF0ZWQgZGV2aWNlcwpvbiByZWJv
b3QgdGh1cyBhbGxvd2luZyB0aGUgc2V0dXBhcGkgdG8gcnVuIGFuZCBmaXggdGhlIGJpbmRpbmdz
IG9mIG90aGVyClBWIGRyaXZlcnMuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwu
ZHVycmFudEBjaXRyaXguY29tPgotLS0KIHNyYy9jb2luc3QvY29pbnN0LmMgfCAxMDMgKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQogMSBmaWxlIGNo
YW5nZWQsIDg3IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny
Yy9jb2luc3QvY29pbnN0LmMgYi9zcmMvY29pbnN0L2NvaW5zdC5jCmluZGV4IGQ2NzAwYzAuLmY4
ZWY5MmUgMTAwNjQ0Ci0tLSBhL3NyYy9jb2luc3QvY29pbnN0LmMKKysrIGIvc3JjL2NvaW5zdC9j
b2luc3QuYwpAQCAtNDksNiArNDksMTIgQEAgX191c2VyX2NvZGU7CiAKICNkZWZpbmUgU0VSVklD
RVNfS0VZICJTWVNURU1cXEN1cnJlbnRDb250cm9sU2V0XFxTZXJ2aWNlcyIKIAorI2RlZmluZSBT
RVJWSUNFX0tFWShfRHJpdmVyKSAgICBcCisgICAgICAgIFNFUlZJQ0VTX0tFWSAjIyAiXFwiICMj
ICNfRHJpdmVyCisKKyNkZWZpbmUgVU5QTFVHX0tFWSBcCisgICAgICAgIFNFUlZJQ0VfS0VZKFhF
TikgIyMgIlxcVW5wbHVnIgorCiAjZGVmaW5lIENPTlRST0xfS0VZICJTWVNURU1cXEN1cnJlbnRD
b250cm9sU2V0XFxDb250cm9sIgogCiAjZGVmaW5lIENMQVNTX0tFWSAgIFwKQEAgLTk4MSw3ICs5
ODcsOCBAQCBzdGF0aWMgRFdPUkQgICAgRGV2aWNlUmV2aXNpb25bXSA9IHsKIAogc3RhdGljIEJP
T0xFQU4KIFN1cHBvcnREZXZpY2VJRCgKLSAgICBJTiAgUFRDSEFSICAgICAgRGV2aWNlSUQKKyAg
ICBJTiAgUFRDSEFSICAgICAgRGV2aWNlSUQsCisgICAgT1VUIFBCT09MRUFOICAgIE5ld0JpbmRp
bmcKICAgICApCiB7CiAgICAgdW5zaWduZWQgaW50ICAgIFJldmlzaW9uOwpAQCAtMTAxMCw2ICsx
MDE3LDExIEBAIFN1cHBvcnREZXZpY2VJRCgKICAgICBnb3RvIGZhaWwyOwogCiBmb3VuZDoKKyAg
ICAvLyBJZiB3ZSBkb24ndCBtYXRjaCB0aGUgbGF0ZXN0IHJldmlzaW9uIHRoZW4gaXQgbWVhbnMg
dGhlIGRyaXZlcgorICAgIC8vIGJpbmRpbmcgd2lsbCBjaGFuZ2UuCisgICAgaWYgKEluZGV4IDwg
QVJSQVlTSVpFKERldmljZVJldmlzaW9uKSAtIDEpCisgICAgICAgICpOZXdCaW5kaW5nID0gVFJV
RTsKKwogICAgIExvZygiJXgiLCBSZXZpc2lvbik7CiAKICAgICByZXR1cm4gVFJVRTsKQEAgLTEx
MTYsMjEgKzExMjgsMjEgQEAgZmFpbDE6CiAKIHN0YXRpYyBCT09MRUFOCiBTdXBwb3J0Q2hpbGRE
cml2ZXJzKAotICAgIFZPSUQKKyAgICBPVVQgUEJPT0xFQU4gICAgTmV3QmluZGluZwogICAgICkK
IHsKLSAgICBCT09MRUFOICAgICBTdWNjZXNzOwotICAgIEhLRVkgICAgICAgIFhlbmJ1c0tleTsK
LSAgICBIUkVTVUxUICAgICBFcnJvcjsKLSAgICBEV09SRCAgICAgICBTdWJLZXlzOwotICAgIERX
T1JEICAgICAgIE1heFN1YktleUxlbmd0aDsKLSAgICBEV09SRCAgICAgICBTdWJLZXlMZW5ndGg7
Ci0gICAgUFRDSEFSICAgICAgU3ViS2V5TmFtZTsKLSAgICBIS0VZICAgICAgICBEZXZpY2VLZXk7
Ci0gICAgUFRDSEFSICAgICAgRHJpdmVyS2V5TmFtZTsKLSAgICBIS0VZICAgICAgICBEcml2ZXJL
ZXk7Ci0gICAgUFRDSEFSICAgICAgTWF0Y2hpbmdEZXZpY2VJRDsKLSAgICBEV09SRCAgICAgICBJ
bmRleDsKKyAgICBCT09MRUFOICAgICAgICAgU3VjY2VzczsKKyAgICBIS0VZICAgICAgICAgICAg
WGVuYnVzS2V5OworICAgIEhSRVNVTFQgICAgICAgICBFcnJvcjsKKyAgICBEV09SRCAgICAgICAg
ICAgU3ViS2V5czsKKyAgICBEV09SRCAgICAgICAgICAgTWF4U3ViS2V5TGVuZ3RoOworICAgIERX
T1JEICAgICAgICAgICBTdWJLZXlMZW5ndGg7CisgICAgUFRDSEFSICAgICAgICAgIFN1YktleU5h
bWU7CisgICAgSEtFWSAgICAgICAgICAgIERldmljZUtleTsKKyAgICBQVENIQVIgICAgICAgICAg
RHJpdmVyS2V5TmFtZTsKKyAgICBIS0VZICAgICAgICAgICAgRHJpdmVyS2V5OworICAgIFBUQ0hB
UiAgICAgICAgICBNYXRjaGluZ0RldmljZUlEOworICAgIERXT1JEICAgICAgICAgICBJbmRleDsK
IAogICAgIExvZygiPT09PT4iKTsKIApAQCAtMTIwMiw3ICsxMjE0LDcgQEAgU3VwcG9ydENoaWxk
RHJpdmVycygKICAgICAgICAgaWYgKCFTdWNjZXNzKQogICAgICAgICAgICAgZ290byBmYWlsODsK
IAotICAgICAgICBTdWNjZXNzID0gU3VwcG9ydERldmljZUlEKE1hdGNoaW5nRGV2aWNlSUQpOwor
ICAgICAgICBTdWNjZXNzID0gU3VwcG9ydERldmljZUlEKE1hdGNoaW5nRGV2aWNlSUQsIE5ld0Jp
bmRpbmcpOwogICAgICAgICBpZiAoIVN1Y2Nlc3MpCiAgICAgICAgICAgICBnb3RvIGZhaWw5Owog
CkBAIC0xNDAyLDYgKzE0MTQsNTcgQEAgZmFpbDE6CiAgICAgcmV0dXJuIEZBTFNFOwogfQogCitz
dGF0aWMgQk9PTEVBTgorQ2xlYXJVbnBsdWdSZXF1ZXN0KAorICAgIElOICBQVENIQVIgICAgICBD
bGFzc05hbWUKKyAgICApCit7CisgICAgSEtFWSAgICAgICAgICAgIFVucGx1Z0tleTsKKyAgICBI
UkVTVUxUICAgICAgICAgRXJyb3I7CisKKyAgICBMb2coIj09PT0+ICglcykiLCBDbGFzc05hbWUp
OworCisgICAgRXJyb3IgPSBSZWdPcGVuS2V5RXgoSEtFWV9MT0NBTF9NQUNISU5FLAorICAgICAg
ICAgICAgICAgICAgICAgICAgIFVOUExVR19LRVksCisgICAgICAgICAgICAgICAgICAgICAgICAg
MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBLRVlfQUxMX0FDQ0VTUywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAmVW5wbHVnS2V5KTsKKyAgICBpZiAoRXJyb3IgIT0gRVJST1JfU1VDQ0VT
UykgeworICAgICAgICBTZXRMYXN0RXJyb3IoRXJyb3IpOworICAgICAgICBnb3RvIGZhaWwxOwor
ICAgIH0KKworICAgIEVycm9yID0gUmVnRGVsZXRlVmFsdWUoVW5wbHVnS2V5LCBDbGFzc05hbWUp
OworICAgIGlmIChFcnJvciAhPSBFUlJPUl9TVUNDRVNTKSB7CisgICAgICAgIFNldExhc3RFcnJv
cihFcnJvcik7CisgICAgICAgIGdvdG8gZmFpbDI7CisgICAgfQorCisgICAgUmVnQ2xvc2VLZXko
VW5wbHVnS2V5KTsKKworICAgIExvZygiPD09PT0iKTsKKworICAgIHJldHVybiBUUlVFOworCitm
YWlsMjoKKyAgICBMb2coImZhaWwyIik7CisKKyAgICBSZWdDbG9zZUtleShVbnBsdWdLZXkpOwor
CitmYWlsMToKKyAgICBFcnJvciA9IEdldExhc3RFcnJvcigpOworCisgICAgeworICAgICAgICBQ
VENIQVIgIE1lc3NhZ2U7CisKKyAgICAgICAgTWVzc2FnZSA9IEdldEVycm9yTWVzc2FnZShFcnJv
cik7CisgICAgICAgIExvZygiZmFpbDEgKCVzKSIsIE1lc3NhZ2UpOworICAgICAgICBMb2NhbEZy
ZWUoTWVzc2FnZSk7CisgICAgfQorCisgICAgcmV0dXJuIEZBTFNFOworfQorCiBzdGF0aWMgSFJF
U1VMVAogRGlmSW5zdGFsbFByZVByb2Nlc3MoCiAgICAgSU4gIEhERVZJTkZPICAgICAgICAgICAg
ICAgICAgICBEZXZpY2VJbmZvU2V0LApAQCAtMTQxMiw2ICsxNDc1LDcgQEAgRGlmSW5zdGFsbFBy
ZVByb2Nlc3MoCiAgICAgQk9PTEVBTiAgICAgICAgICAgICAgICAgICAgICAgICBTdWNjZXNzOwog
ICAgIEhSRVNVTFQgICAgICAgICAgICAgICAgICAgICAgICAgRXJyb3I7CiAgICAgQk9PTEVBTiAg
ICAgICAgICAgICAgICAgICAgICAgICBBbGxvdzsKKyAgICBCT09MRUFOICAgICAgICAgICAgICAg
ICAgICAgICAgIE5ld0JpbmRpbmc7CiAKICAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVSKERldmlj
ZUluZm9TZXQpOwogICAgIFVOUkVGRVJFTkNFRF9QQVJBTUVURVIoRGV2aWNlSW5mb0RhdGEpOwpA
QCAtMTQzMiwxMCArMTQ5NiwxNyBAQCBEaWZJbnN0YWxsUHJlUHJvY2VzcygKICAgICBpZiAoIVN1
Y2Nlc3MpCiAgICAgICAgIGdvdG8gZmFpbDM7CiAKLSAgICBTdWNjZXNzID0gU3VwcG9ydENoaWxk
RHJpdmVycygpOworICAgIE5ld0JpbmRpbmcgPSBGQUxTRTsKKworICAgIFN1Y2Nlc3MgPSBTdXBw
b3J0Q2hpbGREcml2ZXJzKCZOZXdCaW5kaW5nKTsKICAgICBpZiAoIVN1Y2Nlc3MpCiAgICAgICAg
IGdvdG8gZmFpbDQ7CiAKKyAgICBpZiAoTmV3QmluZGluZykgeworICAgICAgICAoVk9JRCkgQ2xl
YXJVbnBsdWdSZXF1ZXN0KCJESVNLUyIpOworICAgICAgICAoVk9JRCkgQ2xlYXJVbnBsdWdSZXF1
ZXN0KCJOSUNTIik7CisgICAgfQorCiAgICAgTG9nKCI8PT09PSIpOwogICAgIAogICAgIHJldHVy
biBOT19FUlJPUjsKLS0gCjIuMS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlz
dHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21h
aWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Wed Jul 06 15:49:05 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 06 Jul 2016 15:49:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bKp4S-0000Re-1V; Wed, 06 Jul 2016 15:49:04 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=988999fe3=Paul.Durrant@citrix.com>)
 id 1bKp4Q-0000RY-3s
 for win-pv-devel@lists.xenproject.org; Wed, 06 Jul 2016 15:49:02 +0000
Received: from [85.158.137.68] by server-6.bemta-3.messagelabs.com id
 D1/0B-24961-D682D775; Wed, 06 Jul 2016 15:49:01 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrNIsWRWlGSWpSXmKPExsWyU9JRQjdLozb
 c4PVVK4s/ixMdGD0Of7jCEsAYxZqZl5RfkcCaMeHPXJaCTy8FK47MXMzcwLjgjGAXIyeHhICf
 xNyf+5lBbDYBHYmlR+czgdgiAgUS39/PA4szC6hJXN/fxQpiCwukSLzv+cEOUZMqMXlpP1CcA
 8g2kri6iw3EZBFQkTh3gAWkglfAXeLmhduMXYxcHEICDYwSv3bNBBvJKeAmcWDCC7BVjAKyEl
 8aV0OtEpe49QTiBAkBAYkle84zQ9iiEi8f/2OFsA0kti7dxwKyi1lAU2L9Ln2IVkWJKd0P2SH
 2CkqcnPkE7AYhoHO2PD4ANYZbYuXnPywTGEVnIdk2C2HSLCSTZiGZtICRZRWjRnFqUVlqka6h
 oV5SUWZ6RkluYmaOrqGBsV5uanFxYnpqTmJSsV5yfu4mRmCkMADBDsbVv50OMUpyMCmJ8rJ8q
 w4X4kvKT6nMSCzOiC8qzUktPsQow8GhJMHrpV4bLiRYlJqeWpGWmQOMWZi0BAePkghvIkiat7
 ggMbc4Mx0idYpRUUqctxMkIQCSyCjNg2uDpYlLjLJSwryMQIcI8RSkFuVmlqDKv2IU52BUEuY
 9BDKFJzOvBG76K6DFTECLf7pUgywuSURISTUwqgi9ii3PV7l5NltPp/s918uvlaY5209I9Mit
 ++NWaff8ePXZ7HXbEx/Wt+0q063wZvPQ9XeU7hD//7bqxbWuJAe+1W++BR/+wMQXe3nl0d+Sq
 l+C4o8EKEzLWLgy1dKSSWjyTafpk9TeMQTkqhzT+bbx8ykpq3t+a16Jhj3efzNh7//iieellV
 iKMxINtZiLihMBhZNmew4DAAA=
X-Env-Sender: prvs=988999fe3=Paul.Durrant@citrix.com
X-Msg-Ref: server-5.tower-31.messagelabs.com!1467820138!46038439!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=2.2 required=7.0 tests=BODY_RANDOM_LONG,
 OBSCURED_EMAIL,UPPERCASE_25_50,received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 58460 invoked from network); 6 Jul 2016 15:48:58 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-5.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 6 Jul 2016 15:48:58 -0000
X-IronPort-AV: E=Sophos;i="5.28,319,1464652800"; d="scan'208";a="25687202"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 1/6] Remove LiteAgent,	replace with
 boilerplate xenagent service
Thread-Index: AQHR1qltCgg8jzqaWUeo9t6pFkQn36ALjmMQ
Date: Wed, 6 Jul 2016 15:48:55 +0000
Message-ID: <7a16a643708b4258b664fd6a8f0e0468@AMSPEX02CL03.citrite.net>
References: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
 <1467715091-13216-2-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1467715091-13216-2-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 1/6] Remove LiteAgent,
 replace with boilerplate xenagent service
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMDUgSnVseSAyMDE2IDExOjM4DQo+IFRvOiB3aW4tcHYt
ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gQ2M6IE93ZW4gU21pdGgNCj4gU3ViamVjdDog
W3dpbi1wdi1kZXZlbF0gW1BBVENIIDEvNl0gUmVtb3ZlIExpdGVBZ2VudCwgcmVwbGFjZSB3aXRo
DQo+IGJvaWxlcnBsYXRlIHhlbmFnZW50IHNlcnZpY2UNCj4gDQo+IFJlbW92ZSB0aGUgTGl0ZUFn
ZW50IHByb2plY3QgYW5kIHJlcGxhY2UgaXQgd2l0aCB0aGUgeGVuYWdlbnQNCj4gcHJvamVjdC4g
WGVuYWdlbnQgaXMgYSBib2lsZXJwbGF0ZSBzZXJ2aWNlIHRoYXQgaGFzIG5vDQo+IGZ1bmN0aW9u
YWxpdHkgaW4gdGhpcyBwYXRjaC4gU3Vic2lxdWVudCBwYXRjaGVzIHdpbGwgYWRkDQo+IHRoZSBy
ZXF1aXJlZCBmdW5jdGlvbmFsaXR5Lg0KPiANCj4gU2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8
b3dlbi5zbWl0aEBjaXRyaXguY29tPg0KDQpBY2tlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1
cnJhbnRAY2l0cml4LmNvbT4NCg0KPiAtLS0NCj4gIHNyYy93aW4zMnN0dWJhZ2VudC9XbWlBY2Nl
c3Nvci5jcHAgICAgICB8IDEzMzEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAg
c3JjL3dpbjMyc3R1YmFnZW50L1dtaUFjY2Vzc29yLmggICAgICAgIHwgICA4OCAtLQ0KPiAgc3Jj
L3dpbjMyc3R1YmFnZW50L1hTQWNjZXNzb3IuY3BwICAgICAgIHwgIDIzMCAtLS0tLS0NCj4gIHNy
Yy93aW4zMnN0dWJhZ2VudC9YU0FjY2Vzc29yLmggICAgICAgICB8ICAxMjYgLS0tDQo+ICBzcmMv
d2luMzJzdHViYWdlbnQvWFNlcnZpY2UuY3BwICAgICAgICAgfCAxMDQ0IC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQ0KPiAgc3JjL3dpbjMyc3R1YmFnZW50L1hTZXJ2aWNlLmggICAgICAgICAgIHwg
ICA1NCAtLQ0KPiAgc3JjL3dpbjMyc3R1YmFnZW50L2Vycm9ycy5jcHAgICAgICAgICAgIHwgIDEw
MiAtLS0NCj4gIHNyYy93aW4zMnN0dWJhZ2VudC9tZXNzYWdlcy5tYyAgICAgICAgICB8ICAgNjYg
LS0NCj4gIHNyYy93aW4zMnN0dWJhZ2VudC9zdGRhZnguY3BwICAgICAgICAgICB8ICAgMzkgLQ0K
PiAgc3JjL3dpbjMyc3R1YmFnZW50L3N0ZGFmeC5oICAgICAgICAgICAgIHwgICA0MyAtDQo+ICBz
cmMvd2luMzJzdHViYWdlbnQvdzMyeGFnZW50LnJjICAgICAgICAgfCAgIDYwIC0tDQo+ICBzcmMv
d2luMzJzdHViYWdlbnQveGVuLmljbyAgICAgICAgICAgICAgfCAgQmluIDI1MjE0IC0+IDAgYnl0
ZXMNCj4gIHNyYy94ZW5hZ2VudC9tZXNzYWdlcy5tYyAgICAgICAgICAgICAgICB8ICAgNjYgKysN
Cj4gIHNyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcCAgICAgICAgICAgICAgICB8ICAyNDggKysrKysr
DQo+ICBzcmMveGVuYWdlbnQvc2VydmljZS5oICAgICAgICAgICAgICAgICAgfCAgIDc0ICsrDQo+
ICBzcmMveGVuYWdlbnQveGVuLmljbyAgICAgICAgICAgICAgICAgICAgfCAgQmluIDAgLT4gMjUy
MTQgYnl0ZXMNCj4gIHNyYy94ZW5hZ2VudC94ZW5hZ2VudC5yYyAgICAgICAgICAgICAgICB8ICAg
NjAgKysNCj4gIHNyYy94ZW5pZmFjZS5pbmYgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTYg
Ky0NCj4gIHZzMjAxMi9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHByb2ogICAgICB8ICAyNTEgLS0t
LS0tDQo+ICB2czIwMTIvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qLnVzZXIgfCAgICA0IC0N
Cj4gIHZzMjAxMi94ZW5hZ2VudC94ZW5hZ2VudC52Y3hwcm9qICAgICAgICB8ICAyMTcgKysrKysN
Cj4gIHZzMjAxMi94ZW5hZ2VudC94ZW5hZ2VudC52Y3hwcm9qLnVzZXIgICB8ICAgIDQgKw0KPiAg
dnMyMDEyL3hlbmlmYWNlLnNsbiAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArLQ0KPiAgdnMy
MDEzL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvaiAgICAgIHwgIDI1NiAtLS0tLS0NCj4gIHZz
MjAxMy9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHByb2oudXNlciB8ICAgIDQgLQ0KPiAgdnMyMDEz
L3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2ogICAgICAgIHwgIDIyMSArKysrKw0KPiAgdnMyMDEz
L3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2oudXNlciAgIHwgICAgNCArDQo+ICB2czIwMTMveGVu
aWZhY2Uuc2xuICAgICAgICAgICAgICAgICAgICAgfCAgICAyICstDQo+ICAyOCBmaWxlcyBjaGFu
Z2VkLCA5MDQgaW5zZXJ0aW9ucygrKSwgMzcwOCBkZWxldGlvbnMoLSkNCj4gIGRlbGV0ZSBtb2Rl
IDEwMDY0NCBzcmMvd2luMzJzdHViYWdlbnQvV21pQWNjZXNzb3IuY3BwDQo+ICBkZWxldGUgbW9k
ZSAxMDA2NDQgc3JjL3dpbjMyc3R1YmFnZW50L1dtaUFjY2Vzc29yLmgNCj4gIGRlbGV0ZSBtb2Rl
IDEwMDY0NCBzcmMvd2luMzJzdHViYWdlbnQvWFNBY2Nlc3Nvci5jcHANCj4gIGRlbGV0ZSBtb2Rl
IDEwMDY0NCBzcmMvd2luMzJzdHViYWdlbnQvWFNBY2Nlc3Nvci5oDQo+ICBkZWxldGUgbW9kZSAx
MDA2NDQgc3JjL3dpbjMyc3R1YmFnZW50L1hTZXJ2aWNlLmNwcA0KPiAgZGVsZXRlIG1vZGUgMTAw
NjQ0IHNyYy93aW4zMnN0dWJhZ2VudC9YU2VydmljZS5oDQo+ICBkZWxldGUgbW9kZSAxMDA2NDQg
c3JjL3dpbjMyc3R1YmFnZW50L2Vycm9ycy5jcHANCj4gIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMv
d2luMzJzdHViYWdlbnQvbWVzc2FnZXMubWMNCj4gIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvd2lu
MzJzdHViYWdlbnQvc3RkYWZ4LmNwcA0KPiAgZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy93aW4zMnN0
dWJhZ2VudC9zdGRhZnguaA0KPiAgZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy93aW4zMnN0dWJhZ2Vu
dC93MzJ4YWdlbnQucmMNCj4gIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvd2luMzJzdHViYWdlbnQv
eGVuLmljbw0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy94ZW5hZ2VudC9tZXNzYWdlcy5tYw0K
PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcA0KPiAgY3JlYXRl
IG1vZGUgMTAwNjQ0IHNyYy94ZW5hZ2VudC9zZXJ2aWNlLmgNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0
NCBzcmMveGVuYWdlbnQveGVuLmljbw0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy94ZW5hZ2Vu
dC94ZW5hZ2VudC5yYw0KPiAgZGVsZXRlIG1vZGUgMTAwNjQ0IHZzMjAxMi9saXRlYWdlbnQvTGl0
ZUFnZW50LnZjeHByb2oNCj4gIGRlbGV0ZSBtb2RlIDEwMDY0NCB2czIwMTIvbGl0ZWFnZW50L0xp
dGVBZ2VudC52Y3hwcm9qLnVzZXINCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCB2czIwMTIveGVuYWdl
bnQveGVuYWdlbnQudmN4cHJvag0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHZzMjAxMi94ZW5hZ2Vu
dC94ZW5hZ2VudC52Y3hwcm9qLnVzZXINCj4gIGRlbGV0ZSBtb2RlIDEwMDY0NCB2czIwMTMvbGl0
ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qDQo+ICBkZWxldGUgbW9kZSAxMDA2NDQgdnMyMDEzL2xp
dGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvai51c2VyDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgdnMy
MDEzL3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2oNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCB2czIw
MTMveGVuYWdlbnQveGVuYWdlbnQudmN4cHJvai51c2VyDQo+IA0KPiBkaWZmIC0tZ2l0IGEvc3Jj
L3dpbjMyc3R1YmFnZW50L1dtaUFjY2Vzc29yLmNwcA0KPiBiL3NyYy93aW4zMnN0dWJhZ2VudC9X
bWlBY2Nlc3Nvci5jcHANCj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IGI4NWZm
OGUuLjAwMDAwMDANCj4gLS0tIGEvc3JjL3dpbjMyc3R1YmFnZW50L1dtaUFjY2Vzc29yLmNwcA0K
PiArKysgL2Rldi9udWxsDQo+IEBAIC0xLDEzMzEgKzAsMCBAQA0KPiAtLyogQ29weXJpZ2h0IChj
KSBDaXRyaXggU3lzdGVtcyBJbmMuDQo+IC0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KPiAtICoN
Cj4gLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
DQo+IC0gKiB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkDQo+IC0gKiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0Og0KPiAtICoN
Cj4gLSAqICogICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlDQo+IC0gKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZQ0KPiAtICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KPiAtICogKiAgIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUNCj4g
LSAqICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
DQo+IC0gKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyDQo+IC0gKiAgICAgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4NCj4gLSAqDQo+IC0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQNCj4gLSAqIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsDQo+IC0gKiBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRg0KPiAtICogTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUNCj4gLSAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SDQo+IC0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwN
Cj4gLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsDQo+IC0gKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1INCj4gLSAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MNCj4gLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLA0KPiAtICogV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HDQo+IC0gKiBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFDQo+IC0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GDQo+IC0gKiBT
VUNIIERBTUFHRS4NCj4gLSAqLw0KPiAtDQo+IC0jaW5jbHVkZSAic3RkYWZ4LmgiDQo+IC0jZGVm
aW5lIF9XSU4zMl9EQ09NDQo+IC0jaW5jbHVkZSA8d2luZG93cy5oPg0KPiAtI2luY2x1ZGUgPGlv
c3RyZWFtPg0KPiAtI2luY2x1ZGUgPGFsZ29yaXRobT4NCj4gLSNpbmNsdWRlIDxoYXNoX21hcD4N
Cj4gLSNpbmNsdWRlIDxzdGRpby5oPg0KPiAtI2luY2x1ZGUgIndpbmVycm9yLmgiDQo+IC0jaW5j
bHVkZSAiV01JQWNjZXNzb3IuaCINCj4gLSNpbmNsdWRlICJYU2VydmljZS5oIg0KPiAtI2luY2x1
ZGUgImNvbXV0aWwuaCINCj4gLQ0KPiAtLy8jaW5jbHVkZSAieHNfcHJpdmF0ZS5oIg0KPiAtI2lu
Y2x1ZGUgPHdiZW1pZGwuaD4NCj4gLQ0KPiAtI2luY2x1ZGUgPHZlcnNpb24uaD4NCj4gLQ0KPiAt
I2RlZmluZSBXSURFTjIoeCkgTCAjIyB4DQo+IC0jZGVmaW5lIFdJREVOKHgpIFdJREVOMih4KQ0K
PiAtDQo+IC0jZGVmaW5lIE9CSkVDVF9OQU1FX0EoX05hbWUpIE9CSkVDVF9QUkVGSVhfU1RSICJY
ZW5TdG9yZSINCj4gI19OYW1lDQo+IC0jZGVmaW5lIE9CSkVDVF9OQU1FX1coX05hbWUpIFdJREVO
KE9CSkVDVF9QUkVGSVhfU1RSKQ0KPiBMIlhlblN0b3JlIiBXSURFTigjX05hbWUpDQo+IC0NCj4g
LSNwcmFnbWEgY29tbWVudChsaWIsICJ3YmVtdXVpZC5saWIiKQ0KPiAtI3ByYWdtYSBjb21tZW50
KGxpYiwgInV1aWQubGliIikNCj4gLSNwcmFnbWEgY29tbWVudChsaWIsICJjb21zdXBwdy5saWIi
KQ0KPiAtDQo+IC1CU1RSIG1rQnN0cihjb25zdCBjaGFyICpzdHJpbmcsIHNpemVfdCBsZW4pIHsN
Cj4gLSAgICBCU1RSIHJlcyA9IE5VTEw7DQo+IC0gICAgc2l6ZV90IHJldHVybmVkOw0KPiAtICAg
IHdjaGFyX3QqIHdzdHJpbmcgPSBuZXcgd2NoYXJfdFtsZW4rMV07DQo+IC0gICAgaWYgKHdzdHJp
bmcgPT0gTlVMTCkgew0KPiAtICAgICAgICBnb3RvIG1hbGxvY193c3RyaW5nOw0KPiAtICAgIH0N
Cj4gLSAgICBtYnN0b3djc19zKCZyZXR1cm5lZCwgd3N0cmluZywgbGVuKzEsIHN0cmluZywgbGVu
KTsNCj4gLSAgICByZXMgPSBTeXNBbGxvY1N0cmluZyh3c3RyaW5nKTsNCj4gLSAgICBkZWxldGUg
d3N0cmluZzsNCj4gLW1hbGxvY193c3RyaW5nOg0KPiAtICAgIHJldHVybiByZXM7DQo+IC19DQo+
IC0NCj4gLWNoYXIgKiBmb3JtYXRDaGFyU3RySW50KGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBs
KSB7DQo+IC0gICAgY2hhciAqYnVmID0gTlVMTDsNCj4gLSAgICBpbnQgY250ID0gX3ZzY3ByaW50
ZihmbXQsIGwpOw0KPiAtICAgIGJ1ZiA9IChjaGFyICopWHNBbGxvYyhjbnQrMSk7DQo+IC0gICAg
aWYgKGJ1ZiA9PSBOVUxMKSB7DQo+IC0gICAgICAgIGdvdG8gbWFsbG9jX2J1ZjsNCj4gLSAgICB9
DQo+IC0gICAgX3ZzbnByaW50ZihidWYsIGNudCsxLCBmbXQsIGwpOw0KPiAtbWFsbG9jX2J1ZjoN
Cj4gLSAgICByZXR1cm4gYnVmOw0KPiAtfQ0KPiAtDQo+IC1jaGFyICogZm9ybWF0Q2hhclN0cihj
b25zdCBjaGFyICpmbXQsIC4uLiApIHsNCj4gLSAgICBjaGFyICpidWYgPU5VTEw7DQo+IC0gICAg
dmFfbGlzdCBsOw0KPiAtICAgIHZhX3N0YXJ0KGwsIGZtdCk7DQo+IC0gICAgYnVmID0gZm9ybWF0
Q2hhclN0ckludChmbXQsIGwpOw0KPiAtICAgIHZhX2VuZChsKTsNCj4gLSAgICByZXR1cm4gYnVm
Ow0KPiAtfQ0KPiAtDQo+IC1CU1RSIGZvcm1hdEJzdHIoY29uc3QgY2hhciAqZm10LCAuLi4pDQo+
IC17DQo+IC0gICAgY2hhciAqYnVmOw0KPiAtICAgIHZhX2xpc3QgbDsNCj4gLSAgICBCU1RSIHJl
cyA9IE5VTEw7DQo+IC0gICAgdmFfc3RhcnQobCwgZm10KTsNCj4gLSAgICBidWYgPSBmb3JtYXRD
aGFyU3RySW50KGZtdCwgbCk7DQo+IC0gICAgdmFfZW5kKGwpOw0KPiAtICAgIHJlcyA9IG1rQnN0
cihidWYsIHN0cmxlbihidWYpKTsNCj4gLSAgICBYc0ZyZWUoYnVmKTsNCj4gLSAgICByZXR1cm4g
cmVzOw0KPiAtfQ0KPiAtDQo+IC1pbnQgc2V0VmFyaWFudFN0cmluZyhWQVJJQU5UKiB2YXIsIGNv
bnN0IGNoYXIgKmRhdGEsIHNpemVfdCBsZW4pIHsNCj4gLSAgICBpbnQgZXJyPS0xOw0KPiAtICAg
IFZhcmlhbnRJbml0KHZhcik7DQo+IC0gICAgdmFyLT52dD1WVF9CU1RSOw0KPiAtICAgIHZhci0+
YnN0clZhbCA9IG1rQnN0cihkYXRhLCBsZW4pOw0KPiAtICAgIGlmICh2YXItPmJzdHJWYWwgPT0g
TlVMTCkgew0KPiAtICAgICAgICBnb3RvIHN5c2FsbG9jOw0KPiAtICAgIH0NCj4gLSAgICBlcnI9
MDsNCj4gLXN5c2FsbG9jOg0KPiAtICAgIHJldHVybiBlcnI7DQo+IC19DQo+IC0NCj4gLQ0KPiAt
aW50IHNldFZhcmlhbnRTdHJpbmcoVkFSSUFOVCogdmFyLCBjb25zdCBjaGFyICpzdHJpbmcpIHsN
Cj4gLSAgICByZXR1cm4gc2V0VmFyaWFudFN0cmluZyh2YXIsIHN0cmluZywgc3RybGVuKHN0cmlu
ZykpOw0KPiAtfQ0KPiAtDQo+IC0NCj4gLWNsYXNzIFdhdGNoU2luayA6IHB1YmxpYyBJV2JlbU9i
amVjdFNpbmsNCj4gLXsNCj4gLSAgICBMT05HIG1fbFJlZjsNCj4gLSAgICBib29sIGJEb25lOw0K
PiAtICAgIEhBTkRMRSB0cmlnZ2VyZXZlbnQ7DQo+IC0gICAgSEFORExFIHRyaWdnZXJlcnJvcjsN
Cj4gLXB1YmxpYzoNCj4gLSAgICBjaGFyICpwYXRoOw0KPiAtICAgIFdhdGNoU2luayhIQU5ETEUg
ZXZlbnQsIEhBTkRMRSBlcnJvcmV2ZW50LCBjb25zdCBjaGFyICpwYXRoKSB7DQo+IC0gICAgICAg
IG1fbFJlZiA9IDE7DQo+IC0gICAgICAgIHRyaWdnZXJldmVudCA9IGV2ZW50Ow0KPiAtICAgICAg
ICB0cmlnZ2VyZXJyb3IgPSBlcnJvcmV2ZW50Ow0KPiAtICAgICAgICB0aGlzLT5wYXRoID0gTlVM
TDsNCj4gLSAgICAgICAgaWYgKHBhdGgpIHsNCj4gLSAgICAgICAgICAgIHRoaXMtPnBhdGg9KGNo
YXIgKilYc0FsbG9jKHN0cmxlbihwYXRoKSsxKTsNCj4gLSAgICAgICAgICAgIHN0cmNweSh0aGlz
LT5wYXRoLCBwYXRoKTsNCj4gLSAgICAgICAgfQ0KPiAtICAgIH0NCj4gLSAgIH5XYXRjaFNpbmso
KSB7IGJEb25lID0gVFJVRTsgfQ0KPiAtDQo+IC0gICAgdmlydHVhbCBVTE9ORyBTVERNRVRIT0RD
QUxMVFlQRSBBZGRSZWYoKTsNCj4gLSAgICB2aXJ0dWFsIFVMT05HIFNURE1FVEhPRENBTExUWVBF
IFJlbGVhc2UoKTsNCj4gLSAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUNCj4g
LSAgICAgICAgUXVlcnlJbnRlcmZhY2UoUkVGSUlEIHJpaWQsIHZvaWQqKiBwcHYpOw0KPiAtDQo+
IC0gICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIEluZGljYXRlKA0KPiAtICAg
ICAgICAgICAgLyogW2luXSAqLw0KPiAtICAgICAgICAgICAgTE9ORyBsT2JqZWN0Q291bnQsDQo+
IC0gICAgICAgICAgICAvKiBbc2l6ZV9pc11baW5dICovDQo+IC0gICAgICAgICAgICBJV2JlbUNs
YXNzT2JqZWN0IF9fUlBDX0ZBUiAqX19SUENfRkFSICphcE9iakFycmF5DQo+IC0gICAgICAgICAg
ICApOw0KPiAtDQo+IC0gICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFNldFN0
YXR1cygNCj4gLSAgICAgICAgICAgIC8qIFtpbl0gKi8gTE9ORyBsRmxhZ3MsDQo+IC0gICAgICAg
ICAgICAvKiBbaW5dICovIEhSRVNVTFQgaFJlc3VsdCwNCj4gLSAgICAgICAgICAgIC8qIFtpbl0g
Ki8gQlNUUiBzdHJQYXJhbSwNCj4gLSAgICAgICAgICAgIC8qIFtpbl0gKi8gSVdiZW1DbGFzc09i
amVjdCBfX1JQQ19GQVIgKnBPYmpQYXJhbQ0KPiAtICAgICAgICAgICAgKTsNCj4gLX07DQo+IC0N
Cj4gLQ0KPiAtVUxPTkcgV2F0Y2hTaW5rOjpBZGRSZWYoKQ0KPiAtew0KPiAtICAgIHJldHVybiBJ
bnRlcmxvY2tlZEluY3JlbWVudCgmbV9sUmVmKTsNCj4gLX0NCj4gLQ0KPiAtVUxPTkcgV2F0Y2hT
aW5rOjpSZWxlYXNlKCkNCj4gLXsNCj4gLSAgICBMT05HIGxSZWYgPSBJbnRlcmxvY2tlZERlY3Jl
bWVudCgmbV9sUmVmKTsNCj4gLSAgICBpZihsUmVmID09IDApDQo+IC0gICAgICAgIGRlbGV0ZSB0
aGlzOw0KPiAtICAgIHJldHVybiBsUmVmOw0KPiAtfQ0KPiAtDQo+IC1IUkVTVUxUIFdhdGNoU2lu
azo6UXVlcnlJbnRlcmZhY2UoUkVGSUlEIHJpaWQsIHZvaWQqKiBwcHYpDQo+IC17DQo+IC0gICAg
aWYgKHJpaWQgPT0gSUlEX0lVbmtub3duIHx8IHJpaWQgPT0gSUlEX0lXYmVtT2JqZWN0U2luaykN
Cj4gLSAgICB7DQo+IC0gICAgICAgICpwcHYgPSAoSVdiZW1PYmplY3RTaW5rICopIHRoaXM7DQo+
IC0gICAgICAgIEFkZFJlZigpOw0KPiAtICAgICAgICByZXR1cm4gV0JFTV9TX05PX0VSUk9SOw0K
PiAtICAgIH0NCj4gLSAgICBlbHNlIHJldHVybiBFX05PSU5URVJGQUNFOw0KPiAtfQ0KPiAtDQo+
IC0NCj4gLUhSRVNVTFQgV2F0Y2hTaW5rOjpJbmRpY2F0ZShsb25nIGxPYmpDb3VudCwgSVdiZW1D
bGFzc09iamVjdCAqKnBBcnJheSkNCj4gLXsNCj4gLSAgICBmb3IgKGxvbmcgaSA9IDA7IGkgPCBs
T2JqQ291bnQ7IGkrKykNCj4gLSAgICB7DQo+IC0gICAgICAgIElXYmVtQ2xhc3NPYmplY3QgKnBP
YmogPSBwQXJyYXlbaV07DQo+IC0gICAgICAgIFNldEV2ZW50KHRoaXMtPnRyaWdnZXJldmVudCk7
DQo+IC0gICAgICAgIC8vIC4uLiB1c2UgdGhlIG9iamVjdC4NCj4gLQ0KPiAtICAgICAgICAvLyBB
ZGRSZWYoKSBpcyBvbmx5IHJlcXVpcmVkIGlmIHRoZSBvYmplY3Qgd2lsbCBiZSBoZWxkIGFmdGVy
DQo+IC0gICAgICAgIC8vIHRoZSByZXR1cm4gdG8gdGhlIGNhbGxlci4NCj4gLSAgICB9DQo+IC0N
Cj4gLSAgICByZXR1cm4gV0JFTV9TX05PX0VSUk9SOw0KPiAtfQ0KPiAtDQo+IC1IUkVTVUxUIFdh
dGNoU2luazo6U2V0U3RhdHVzKA0KPiAtICAgICAgICAgICAgLyogW2luXSAqLyBMT05HIGxGbGFn
cywNCj4gLSAgICAgICAgICAgIC8qIFtpbl0gKi8gSFJFU1VMVCBoUmVzdWx0LA0KPiAtICAgICAg
ICAgICAgLyogW2luXSAqLyBCU1RSIHN0clBhcmFtLA0KPiAtICAgICAgICAgICAgLyogW2luXSAq
LyBJV2JlbUNsYXNzT2JqZWN0IF9fUlBDX0ZBUiAqcE9ialBhcmFtDQo+IC0gICAgICAgICkNCj4g
LXsNCj4gLSAgICBpZiAoRkFJTEVEKGhSZXN1bHQpKSB7DQo+IC0gICAgICAgIFhzTG9nKCJXTUkg
QXN5YyB3YXRjaCBmYWlsZWQgJXBcbiIsIHRoaXMpOw0KPiAtICAgICAgICBTZXRFdmVudCh0aGlz
LT50cmlnZ2VyZXJyb3IpOw0KPiAtICAgIH0NCj4gLSAgICByZXR1cm4gV0JFTV9TX05PX0VSUk9S
Ow0KPiAtfQ0KPiAtDQo+IC0NCj4gLQ0KPiAtc3RydWN0IFdNSUFjY2Vzc29yDQo+IC17DQo+IC0g
ICAgSVdiZW1TZXJ2aWNlcyAqbXBTdmM7DQo+IC0gICAgSVdiZW1TZXJ2aWNlcyAqbXBYU1N2YzsN
Cj4gLQ0KPiAtICAgIEhBTkRMRSBvd25pbmdfdGhyZWFkOw0KPiAtfTsNCj4gLQ0KPiAtc3RydWN0
IFdNSUFjY2Vzc29yICp3bWkgPSBOVUxMOw0KPiAtDQo+IC1zdGF0aWMgc3RyaW5nIHdzdHJpbmcy
c3RyaW5nKGNvbnN0IHdzdHJpbmcmIHdzdHIpDQo+IC17DQo+IC0gICAgaW50IGxlbjsNCj4gLQ0K
PiAtICAgIGxlbiA9IFdpZGVDaGFyVG9NdWx0aUJ5dGUoQ1BfVVRGOCwNCj4gLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDAsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3
c3RyLmNfc3RyKCksDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMSwNCj4gLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsDQo+IC0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAwLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwNCj4g
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOw0KPiAtDQo+IC0gICAgc3RyaW5n
IHN0cihsZW4sIDApOw0KPiAtDQo+IC0gICAgbGVuID0gV2lkZUNoYXJUb011bHRpQnl0ZShDUF9V
VEY4LA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwNCj4gLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHdzdHIuY19zdHIoKSwNCj4gLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC0xLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnN0clswXSwN
Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpc3RyLmxlbmd0aCgpLA0KPiAt
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwNCj4gLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIE5VTEwpOw0KPiAtDQo+IC0gICAgcmV0dXJuIHN0cjsNCj4gLX0NCj4gLQ0K
PiAtc3RhdGljIHN0cmluZyBic3RyMnN0cmluZyhjb25zdCBCU1RSJiBic3RyKQ0KPiAtew0KPiAt
ICAgIHdzdHJpbmcgd3N0cihic3RyKTsNCj4gLQ0KPiAtICAgIHJldHVybiB3c3RyaW5nMnN0cmlu
Zyh3c3RyKTsNCj4gLX0NCj4gLQ0KPiAtSVdiZW1DbGFzc09iamVjdCAqZ2V0Q2xhc3MoV01JQWNj
ZXNzb3IgKip3bWksIEJTVFIgcGF0aCkgew0KPiAtICAgIGlmICgqd21pID09IE5VTEwpDQo+IC0g
ICAgICAgIHJldHVybiBOVUxMOw0KPiAtDQo+IC0gICAgaWYgKCgqd21pKS0+bXBYU1N2YyA9PSBO
VUxMKQ0KPiAtICAgICAgICByZXR1cm4gTlVMTDsNCj4gLQ0KPiAtICAgIElXYmVtQ2xhc3NPYmpl
Y3QgKnJldHVybmVkT2JqZWN0Ow0KPiAtICAgIEhSRVNVTFQgaHJlcyA9ICgqd21pKS0+bXBYU1N2
Yy0NCj4gPkdldE9iamVjdChwYXRoLFdCRU1fRkxBR19SRVRVUk5fV0JFTV9DT01QTEVURSwNCj4g
LSAgICAgICAgICAgIE5VTEwsICZyZXR1cm5lZE9iamVjdCwgTlVMTCk7DQo+IC0gICAgaWYgKEZB
SUxFRChocmVzKSkgew0KPiAtICAgICAgICByZXR1cm5lZE9iamVjdCA9TlVMTDsNCj4gLSAgICB9
DQo+IC0gICAgcmV0dXJuIHJldHVybmVkT2JqZWN0Ow0KPiAtfQ0KPiAtDQo+IC1JV2JlbUNsYXNz
T2JqZWN0ICpnZXRPYmplY3QoV01JQWNjZXNzb3IgKip3bWksIEJTVFIgcGF0aCkgew0KPiAtICAg
IElFbnVtV2JlbUNsYXNzT2JqZWN0ICpyZXR1cm5lZEVudW07DQo+IC0gICAgSVdiZW1DbGFzc09i
amVjdCAqcmV0dXJuZWRPYmplY3Q7DQo+IC0gICAgaWYgKCp3bWkgPT0gTlVMTCkNCj4gLSAgICAg
ICAgcmV0dXJuIE5VTEw7DQo+IC0gICAgQVNTRVJUKCgqd21pKS0+bXBYU1N2YyAhPSBOVUxMKTsN
Cj4gLSAgICBIUkVTVUxUIGhyZXMgPSAgKCp3bWkpLT5tcFhTU3ZjLT5DcmVhdGVJbnN0YW5jZUVu
dW0ocGF0aCwNCj4gV0JFTV9GTEFHX0ZPUldBUkRfT05MWSwNCj4gLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwNCj4gLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJnJldHVybmVkRW51bSk7DQo+IC0gICAgaWYgKEZBSUxF
RChocmVzKSkgew0KPiAtICAgICAgICBPdXRwdXREZWJ1Z1N0cmluZygiR2V0RW51bSBmYWlsZWRc
biIpOw0KPiAtICAgICAgICByZXR1cm5lZE9iamVjdCA9TlVMTDsNCj4gLSAgICAgICAgcmV0dXJu
IHJldHVybmVkT2JqZWN0Ow0KPiAtICAgIH0NCj4gLSAgICBVTE9ORyBvYmplY3RzOw0KPiAtDQo+
IC0gICAgaHJlcyA9IHJldHVybmVkRW51bS0+TmV4dChXQkVNX0lORklOSVRFLCAxLCAmcmV0dXJu
ZWRPYmplY3QsDQo+ICZvYmplY3RzKTsNCj4gLQ0KPiAtDQo+IC0gICAgaWYgKEZBSUxFRChocmVz
KSB8fCBvYmplY3RzIDwgMSkgew0KPiAtICAgICAgICBPdXRwdXREZWJ1Z1N0cmluZygiR2V0RnJv
bUVudW0gZmFpbGVkXG4iKTsNCj4gLSAgICAgICAgcmV0dXJuZWRPYmplY3QgPU5VTEw7DQo+IC0g
ICAgfQ0KPiAtDQo+IC0gICAgcmV0dXJuIHJldHVybmVkT2JqZWN0Ow0KPiAtfQ0KPiAtDQo+IC1I
UkVTVUxUIG1ldGhvZEV4ZWMoV01JQWNjZXNzb3IqKiB3bWksICBJV2JlbUNsYXNzT2JqZWN0KiBp
bnN0YW5jZSwNCj4gY29uc3Qgd2NoYXJfdCAqbWV0aG9kbmFtZSwgSVdiZW1DbGFzc09iamVjdCAq
aW5NZXRob2RJbnN0LA0KPiBJV2JlbUNsYXNzT2JqZWN0ICoqb3V0TWV0aG9kSW5zdCkNCj4gLXsN
Cj4gLSAgICBIUkVTVUxUIGhyZXM9RV9GQUlMIDsNCj4gLQ0KPiAtICAgIElXYmVtQ2xhc3NPYmpl
Y3QgKm91dHN0b3JlPU5VTEw7DQo+IC0gICAgQlNUUiBicGF0aG5hbWUgPSBTeXNBbGxvY1N0cmlu
ZyhMIl9fUEFUSCIpOw0KPiAtICAgIGlmIChicGF0aG5hbWUgPT0gTlVMTCl7DQo+IC0gICAgICAg
IGdvdG8gYWxsb2NwYXRobmFtZTsNCj4gLSAgICB9DQo+IC0NCj4gLQ0KPiAtICAgIFZBUklBTlQg
aW5zdGFuY2VwYXRoOw0KPiAtICAgIFZhcmlhbnRJbml0KCZpbnN0YW5jZXBhdGgpOw0KPiAtICAg
IGhyZXMgPSBpbnN0YW5jZS0+R2V0KGJwYXRobmFtZSwgMCwgJmluc3RhbmNlcGF0aCwgTlVMTCwg
TlVMTCk7DQo+IC0gICAgaWYgKEZBSUxFRChocmVzKSkgew0KPiAtICAgICAgICBnb3RvIGdldGNs
YXNzbmFtZTsNCj4gLSAgICB9DQo+IC0NCj4gLQ0KPiAtICAgIEJTVFIgYm1ldGhvZG5hbWUgPSBT
eXNBbGxvY1N0cmluZyhtZXRob2RuYW1lKTsNCj4gLSAgICBpZiAoYm1ldGhvZG5hbWUgPT0gTlVM
TCl7DQo+IC0gICAgICAgIGdvdG8gYWxsb2NtZXRob2RuYW1lOw0KPiAtICAgIH0NCj4gLQ0KPiAt
ICAgIGhyZXMgPSAoKndtaSktPm1wWFNTdmMtPkV4ZWNNZXRob2QoaW5zdGFuY2VwYXRoLmJzdHJW
YWwsDQo+IGJtZXRob2RuYW1lLCAwLCBOVUxMLGluTWV0aG9kSW5zdCwgJm91dHN0b3JlLCBOVUxM
KTsNCj4gLSAgICBpZiAob3V0TWV0aG9kSW5zdCAhPSBOVUxMKSB7DQo+IC0gICAgICAgICpvdXRN
ZXRob2RJbnN0ID0gTlVMTDsNCj4gLSAgICAgICAgaWYgKCFGQUlMRUQoaHJlcykpew0KPiAtICAg
ICAgICAgICAgKm91dE1ldGhvZEluc3QgPSBvdXRzdG9yZTsNCj4gLSAgICAgICAgfQ0KPiAtICAg
IH0NCj4gLQ0KPiAtICAgIFN5c0ZyZWVTdHJpbmcoYm1ldGhvZG5hbWUpOw0KPiAtYWxsb2NtZXRo
b2RuYW1lOg0KPiAtDQo+IC1nZXRjbGFzc25hbWU6DQo+IC0gICAgVmFyaWFudENsZWFyKCZpbnN0
YW5jZXBhdGgpOw0KPiAtICAgIFN5c0ZyZWVTdHJpbmcoYnBhdGhuYW1lKTsNCj4gLWFsbG9jcGF0
aG5hbWU6DQo+IC0gICAgcmV0dXJuIGhyZXM7DQo+IC19DQo+IC1zdGF0aWMgSUVudW1XYmVtQ2xh
c3NPYmplY3QqIHJ1blhTUXVlcnkoV01JQWNjZXNzb3IgKip3bWksIEJTVFINCj4gcXVlcnkpDQo+
IC17DQo+IC0gICAgaWYgKHdtaSA9PSBOVUxMKQ0KPiAtICAgICAgICByZXR1cm4gTlVMTDsNCj4g
LQ0KPiAtICAgIEFTU0VSVCgoKndtaSktPm1wWFNTdmMgIT0gTlVMTCk7DQo+IC0NCj4gLSAgICAv
LyBVc2UgdGhlIElXYmVtU2VydmljZXMgcG9pbnRlciB0byBtYWtlIHJlcXVlc3RzIG9mIFdNSS4N
Cj4gLSAgICAvLyBNYWtlIHJlcXVlc3RzIGhlcmU6DQo+IC0gICAgSUVudW1XYmVtQ2xhc3NPYmpl
Y3QqIHBFbnVtZXJhdG9yID0gTlVMTDsNCj4gLSAgICBIUkVTVUxUIGhyZXMgPSAoKndtaSktPm1w
WFNTdmMtPkV4ZWNRdWVyeShMIldRTCIsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHF1ZXJ5LA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBXQkVNX0ZMQUdfRk9SV0FSRF9PTkxZIHwNCj4gV0JFTV9GTEFHX1JFVFVSTl9JTU1F
RElBVEVMWSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVM
TCwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBFbnVtZXJh
dG9yKTsNCj4gLSAgICBpZiAoRkFJTEVEKGhyZXMpKQ0KPiAtICAgIHsNCj4gLSAgICAgICAgREJH
UFJJTlQoKCJFeGVjUXVlcnkgZmFpbGVkXG4iKSk7DQo+IC0gICAgICAgIHBFbnVtZXJhdG9yID0g
TlVMTDsNCj4gLSAgICB9DQo+IC0gICAgcmV0dXJuIHBFbnVtZXJhdG9yOw0KPiAtfQ0KPiAtc3Rh
dGljIElFbnVtV2JlbUNsYXNzT2JqZWN0KiBydW5RdWVyeShXTUlBY2Nlc3NvciAqd21pLCBCU1RS
IHF1ZXJ5KQ0KPiAtew0KPiAtICAgIGlmICh3bWkgPT0gTlVMTCkNCj4gLSAgICAgICAgcmV0dXJu
IE5VTEw7DQo+IC0NCj4gLSAgICBBU1NFUlQod21pLT5tcFN2YyAhPSBOVUxMKTsNCj4gLQ0KPiAt
ICAgIC8vIFVzZSB0aGUgSVdiZW1TZXJ2aWNlcyBwb2ludGVyIHRvIG1ha2UgcmVxdWVzdHMgb2Yg
V01JLg0KPiAtICAgIC8vIE1ha2UgcmVxdWVzdHMgaGVyZToNCj4gLSAgICBJRW51bVdiZW1DbGFz
c09iamVjdCogcEVudW1lcmF0b3IgPSBOVUxMOw0KPiAtICAgIEhSRVNVTFQgaHJlcyA9IHdtaS0+
bXBTdmMtPkV4ZWNRdWVyeShMIldRTCIsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHF1ZXJ5LA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBXQkVNX0ZMQUdfRk9SV0FSRF9PTkxZIHwNCj4gV0JFTV9GTEFHX1JFVFVSTl9JTU1F
RElBVEVMWSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVM
TCwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBFbnVtZXJh
dG9yKTsNCj4gLSAgICBpZiAoRkFJTEVEKGhyZXMpKQ0KPiAtICAgIHsNCj4gLSAgICAgICAgREJH
UFJJTlQoKCJFeGVjUXVlcnkgZmFpbGVkXG4iKSk7DQo+IC0gICAgICAgIHBFbnVtZXJhdG9yID0g
TlVMTDsNCj4gLSAgICB9DQo+IC0gICAgcmV0dXJuIHBFbnVtZXJhdG9yOw0KPiAtfQ0KPiAtDQo+
IC1MT05HIHdtaWNvdW50ID0gMDsNCj4gLXN0YXRpYyBCT09MRUFOIGNvbV9pbml0aWFsaXplZCA9
IGZhbHNlOw0KPiAtc3RhdGljIElXYmVtTG9jYXRvciAqbG9jYXRvciA9IDA7DQo+IC1CT09MIElu
aXRDb20odm9pZCkgew0KPiAtICAgIEhSRVNVTFQgaHJlczsNCj4gLSAgICBYc0xvZygiSW5pdCBD
T00iKTsNCj4gLSAgICBocmVzID0gQ29Jbml0aWFsaXplRXgoMCwgQ09JTklUX01VTFRJVEhSRUFE
RUQpOw0KPiAtICAgIGlmIChGQUlMRUQoaHJlcykpIHsNCj4gLSAgICAgICAgZ290byBlcnJfb3V0
Ow0KPiAtICAgIH0NCj4gLSAgICBjb21faW5pdGlhbGl6ZWQgPSBUUlVFOw0KPiAtICAgIC8vd21p
LT5vd25pbmdfdGhyZWFkID0gR2V0Q3VycmVudFRocmVhZCgpOw0KPiAtICAgIC8vWHNMb2coIldt
aSBjb25uZWN0IHRocmVhZCAlcCIsIEdldEN1cnJlbnRUaHJlYWQoKSk7DQo+IC0gICAgLy8gSW5p
dGlhbGl6ZSBDT00gc2VjdXJpdHkuICBNb3N0IG9mIHRoaXMgaXMgaXJyZWxldmFudCB0byB1cy4N
Cj4gLSAgICBYc0xvZygiSW5pdCBzZWN1cml0eSIpOw0KPiAtICAgIGhyZXMgPSBDb0luaXRpYWxp
emVTZWN1cml0eSgNCj4gLSAgICAgICAgTlVMTCwgICAgIC8qIFNlY3VyaXR5IGRlc2NyaXB0b3Iu
IE9ubHkgcmVsZXZhbnQgdG8gc2VydmVycyAqLw0KPiAtICAgICAgICAtMSwgICAgICAgLyogTnIu
IG9mIGF1dGggc2VydmljZXMuIE9ubHkgcmVsZXZhbnQgdG8gc2VydmVycyAqLw0KPiAtICAgICAg
ICBOVUxMLCAgICAgLyogTGlzdCBvZiBhdXRoIHNlcnZpY2VzLiBPbmx5IHJlbGV2YW50IHRvIHNl
cnZlcnMgKi8NCj4gLSAgICAgICAgTlVMTCwgICAgIC8qIFJlc2VydmVkICovDQo+IC0gICAgICAg
IFJQQ19DX0FVVEhOX0xFVkVMX0RFRkFVTFQsIC8qIERlZmF1bHQgYXV0aGVudGljYXRpb24uICBU
aGUNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzIGRv
bid0IHJlYWxseSBtYXR0ZXIgd2hlbg0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHlvdSdyZSBsb2NhbGhvc3QuICovDQo+IC0gICAgICAgIFJQQ19DX0lNUF9MRVZF
TF9JTVBFUlNPTkFURSwgLyogV01JIG5lZWRzIHRvIGJlIGFibGUgdG8NCj4gLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbXBlcnNvbmF0ZSB1cy4gKi8NCj4gLSAgICAg
ICAgTlVMTCwgICAgICAgICAgICAgLyogQXV0aGVudGljYXRpb24gaW5mbyAqLw0KPiAtICAgICAg
ICBFT0FDX05PTkUsICAgICAgICAvKiBBZGRpdGlvbmFsIGNhcGFiaWxpdGllcyAqLw0KPiAtICAg
ICAgICBOVUxMICAgICAgICAgICAgICAvKiBSZXNlcnZlZCAqLw0KPiAtICAgICAgICApOw0KPiAt
ICAgIGlmIChGQUlMRUQoaHJlcykpIHsNCj4gLSAgICAgICAgZ290byBlcnJfb3V0Ow0KPiAtICAg
IH0NCj4gLSAgICAgICAgICAgIE91dHB1dERlYnVnU3RyaW5nKCJDcmVhdGVJbnN0YW5jZVxuIik7
DQo+IC0gICAgICAgIGhyZXMgPSBDb0NyZWF0ZUluc3RhbmNlKA0KPiAtICAgICAgICAgICAgQ0xT
SURfV2JlbUxvY2F0b3IsDQo+IC0gICAgICAgICAgICAwLA0KPiAtICAgICAgICAgICAgQ0xTQ1RY
X0lOUFJPQ19TRVJWRVIsDQo+IC0gICAgICAgICAgICBJSURfSVdiZW1Mb2NhdG9yLA0KPiAtICAg
ICAgICAgICAgKExQVk9JRCAqKSAmbG9jYXRvcik7DQo+IC0gICAgICAgIE91dHB1dERlYnVnU3Ry
aW5nKCJDaGVjayBocmVzXG4iKTsNCj4gLSAgICAgICAgaWYgKEZBSUxFRChocmVzKSkgew0KPiAt
ICAgICAgICAgICAgZ290byBlcnJfb3V0Ow0KPiAtICAgICAgICB9DQo+IC0gICAgICAgIGlmIChs
b2NhdG9yID09IE5VTEwpIHsNCj4gLSAgICAgICAgICAgIE91dHB1dERlYnVnU3RyaW5nKCJOdWxs
IGxvY2F0b3IiKTsNCj4gLSAgICAgICAgICAgIGdvdG8gZXJyX291dDsNCj4gLSAgICAgICAgfQ0K
PiAtICAgIHJldHVybiB0cnVlOw0KPiAtZXJyX291dDoNCj4gLSAgICByZXR1cm4gZmFsc2U7DQo+
IC19DQo+IC0NCj4gLUJPT0wgQ29ubmVjdFRvV01JKHZvaWQpDQo+IC17DQo+IC0gICAgICAgIElu
aXRDb20oKTsNCj4gLSAgICAgICAgSFJFU1VMVCBocmVzOw0KPiAtICAgICAgICBPdXRwdXREZWJ1
Z1N0cmluZygiQ29ubmVjdCB0byBXTUkiKTsNCj4gLSAgICAgICAgd21pY291bnQrKzsNCj4gLQ0K
PiAtICAgICAgICB3bWkgPSAoc3RydWN0IFdNSUFjY2Vzc29yICopWHNBbGxvYyhzaXplb2YoKndt
aSkpOw0KPiAtICAgICAgICBpZiAod21pID09IE5VTEwpIHsNCj4gLSAgICAgICAgICAgIHJldHVy
biBmYWxzZTsNCj4gLSAgICAgICAgfQ0KPiAtICAgICAgICBtZW1zZXQod21pLCAwLCBzaXplb2Yo
KndtaSkpOw0KPiAtDQo+IC0NCj4gLSAgICAgICAgT3V0cHV0RGVidWdTdHJpbmcoIkNvbm5lY3Qg
U2VydmVyXG4iKTsNCj4gLSAgICAgICAgdHJ5IHsNCj4gLSAgICAgICAgICAgIGhyZXMgPSBsb2Nh
dG9yLT5Db25uZWN0U2VydmVyKA0KPiAtICAgICAgICAgICAgICAgIEwicm9vdFxcQ0lNVjIiLCAg
ICAgICAgICAvLyBXTUkgbmFtZXNwYWNlDQo+IC0gICAgICAgICAgICAgICAgTlVMTCwgICAgICAg
ICAgICAgICAgICAgIC8vIFVzZXIgbmFtZQ0KPiAtICAgICAgICAgICAgICAgIE5VTEwsICAgICAg
ICAgICAgICAgICAgICAvLyBVc2VyIHBhc3N3b3JkDQo+IC0gICAgICAgICAgICAgICAgTlVMTCwg
ICAgICAgICAgICAgICAgICAgIC8vIExvY2FsZQ0KPiAtICAgICAgICAgICAgICAgIDAsICAgICAg
ICAgICAgICAgICAgICAgICAvLyBTZWN1cml0eSBmbGFncw0KPiAtICAgICAgICAgICAgICAgIE5V
TEwsICAgICAgICAgICAgICAgICAgICAvLyBBdXRob3JpdHkNCj4gLSAgICAgICAgICAgICAgICBO
VUxMLCAgICAgICAgICAgICAgICAgICAgLy8gQ29udGV4dCBvYmplY3QNCj4gLSAgICAgICAgICAg
ICAgICAmKHdtaS0+bXBTdmMpICAgICAgICAgICAgICAvLyBJV2JlbVNlcnZpY2VzIHByb3h5DQo+
IC0gICAgICAgICAgICAgICAgKTsNCj4gLSAgICAgICAgfQ0KPiAtICAgICAgICBjYXRjaCguLi4p
IHsNCj4gLSAgICAgICAgICAgIE91dHB1dERlYnVnU3RyaW5nKCJFeGNlcHRpb24gY29ubmVjdGlu
ZyB0byBzZXJ2ZXJcbiIpOw0KPiAtICAgICAgICAgICAgZ290byBlcnJfb3V0Ow0KPiAtICAgICAg
ICB9DQo+IC0NCj4gLSAgICAgICAgT3V0cHV0RGVidWdTdHJpbmcoIkNoZWNrIHJlc3VsdFxuIik7
DQo+IC0gICAgICAgIGlmIChGQUlMRUQoaHJlcykpIHsNCj4gLSAgICAgICAgICAgIGdvdG8gZXJy
X291dDsNCj4gLSAgICAgICAgfQ0KPiAtICAgICAgICAvKiBXTUkgbmVlZHMgdG8gaW1wZXJzb25h
dGUgdXMsIGJlY2F1c2UgaXQgbm9ybWFsbHkgcnVucyBhcyBhbg0KPiAtICAgICAgICAgICB1bnBy
aXZpbGVnZWQgdXNlciBhbmQgbmVlZHMgb3VyIGF1dGhvcml0eSBpbiBvcmRlciB0byBhY2Nlc3MN
Cj4gLSAgICAgICAgICAgZGV2aWNlIGZpbGVzIGFuZCBzbyBmb3J0aC4gIFR1cm4gaW1wZXJzb25h
dGlvbiBvbi4gKi8NCj4gLSAgICAgICAgT3V0cHV0RGVidWdTdHJpbmcoIlByb3h5IGJsYW5rZXRc
biIpOw0KPiAtICAgICAgICBocmVzID0gQ29TZXRQcm94eUJsYW5rZXQoDQo+IC0gICAgICAgICAg
ICB3bWktPm1wU3ZjLCAgICAgICAgICAgICAgICAgIC8vIHRoZSBwcm94eSB0byBzZXQNCj4gLSAg
ICAgICAgICAgIFJQQ19DX0FVVEhOX1dJTk5ULCAgICAgICAgICAgLyogTEFOIG1hbmFnZXIgYXV0
aGVudGljYXRpb24sDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFsdGhvdWdoIGl0IGRvZXNuJ3QgcmVhbGx5DQo+IC0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1hdHRlciBvbiBsb2NhbGhvc3QuICovDQo+IC0gICAgICAg
ICAgICBSUENfQ19BVVRIWl9OT05FLCAgICAgICAgICAgIC8vIExBTk1BTiBjYW4ndCBkbyBtdWNo
IGF1dGhvcml6YXRpb24uDQo+IC0gICAgICAgICAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIFNlcnZlciBwcmluY2lwYWwgbmFtZQ0KPiAtICAgICAgICAgICAgUlBDX0NfQVVUSE5f
TEVWRUxfQ0FMTCwgICAgICAvLyBEbyBhdXRoZW50aWNhdGlvbiBvbiBldmVyeSBjYWxsDQo+IC0g
ICAgICAgICAgICBSUENfQ19JTVBfTEVWRUxfSU1QRVJTT05BVEUsIC8vIEFsbG93IGZ1bGwgaW1w
ZXJzb25hdGlvbi4NCj4gLSAgICAgICAgICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gVXNlIGN1cnJlbnQgY2xpZW50IGlkZW50aXR5DQo+IC0gICAgICAgICAgICBFT0FDX05PTkUg
ICAgICAgICAgICAgICAgICAgIC8vIE5vIGV4dGVuZGVkIHByb3h5IGNhcGFiaWxpdGllcw0KPiAt
ICAgICAgICApOw0KPiAtICAgICAgICBpZiAoRkFJTEVEKGhyZXMpKSB7DQo+IC0gICAgICAgICAg
ICBnb3RvIGVycl9vdXQ7DQo+IC0gICAgICAgIH0NCj4gLSAgICAgICAgT3V0cHV0RGVidWdTdHJp
bmcoIldNSSBTZXJ2ZXJcbiIpOw0KPiAtICAgICAgICBocmVzID0gbG9jYXRvci0+Q29ubmVjdFNl
cnZlcigNCj4gLSAgICAgICAgICAgIEwicm9vdFxcV01JIiwgICAgICAgICAgLy8gV01JIG5hbWVz
cGFjZQ0KPiAtICAgICAgICAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgIC8vIFVzZXIgbmFt
ZQ0KPiAtICAgICAgICAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgIC8vIFVzZXIgcGFzc3dv
cmQNCj4gLSAgICAgICAgICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAvLyBMb2NhbGUNCj4g
LSAgICAgICAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAvLyBTZWN1cml0eSBmbGFncw0K
PiAtICAgICAgICAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgIC8vIEF1dGhvcml0eQ0KPiAt
ICAgICAgICAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgIC8vIENvbnRleHQgb2JqZWN0DQo+
IC0gICAgICAgICAgICAmd21pLT5tcFhTU3ZjICAgICAgICAgICAgICAvLyBJV2JlbVNlcnZpY2Vz
IHByb3h5DQo+IC0gICAgICAgICAgICApOw0KPiAtDQo+IC0gICAgICAgIGlmIChGQUlMRUQoaHJl
cykpIHsNCj4gLSAgICAgICAgICAgIGdvdG8gZXJyX291dDsNCj4gLSAgICAgICAgfQ0KPiAtICAg
ICAgICBPdXRwdXREZWJ1Z1N0cmluZygiSW1wZXJzb25hdGlvblxuIik7DQo+IC0gICAgICAgIC8q
IFdNSSBuZWVkcyB0byBpbXBlcnNvbmF0ZSB1cywgYmVjYXVzZSBpdCBub3JtYWxseSBydW5zIGFz
IGFuDQo+IC0gICAgICAgICAgIHVucHJpdmlsZWdlZCB1c2VyIGFuZCBuZWVkcyBvdXIgYXV0aG9y
aXR5IGluIG9yZGVyIHRvIGFjY2Vzcw0KPiAtICAgICAgICAgICBkZXZpY2UgZmlsZXMgYW5kIHNv
IGZvcnRoLiAgVHVybiBpbXBlcnNvbmF0aW9uIG9uLiAqLw0KPiAtICAgICAgICBocmVzID0gQ29T
ZXRQcm94eUJsYW5rZXQoDQo+IC0gICAgICAgICAgICB3bWktPm1wWFNTdmMsICAgICAgICAgICAg
ICAgICAgLy8gdGhlIHByb3h5IHRvIHNldA0KPiAtICAgICAgICAgICAgUlBDX0NfQVVUSE5fV0lO
TlQsICAgICAgICAgICAvKiBMQU4gbWFuYWdlciBhdXRoZW50aWNhdGlvbiwNCj4gLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0aG91Z2ggaXQgZG9lc24ndCBy
ZWFsbHkNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0
dGVyIG9uIGxvY2FsaG9zdC4gKi8NCj4gLSAgICAgICAgICAgIFJQQ19DX0FVVEhaX05PTkUsICAg
ICAgICAgICAgLy8gTEFOTUFOIGNhbid0IGRvIG11Y2ggYXV0aG9yaXphdGlvbi4NCj4gLSAgICAg
ICAgICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2VydmVyIHByaW5jaXBhbCBu
YW1lDQo+IC0gICAgICAgICAgICBSUENfQ19BVVRITl9MRVZFTF9DQUxMLCAgICAgIC8vIERvIGF1
dGhlbnRpY2F0aW9uIG9uIGV2ZXJ5IGNhbGwNCj4gLSAgICAgICAgICAgIFJQQ19DX0lNUF9MRVZF
TF9JTVBFUlNPTkFURSwgLy8gQWxsb3cgZnVsbCBpbXBlcnNvbmF0aW9uLg0KPiAtICAgICAgICAg
ICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAvLyBVc2UgY3VycmVudCBjbGllbnQgaWRl
bnRpdHkNCj4gLSAgICAgICAgICAgIEVPQUNfTk9ORSAgICAgICAgICAgICAgICAgICAgLy8gTm8g
ZXh0ZW5kZWQgcHJveHkgY2FwYWJpbGl0aWVzDQo+IC0gICAgICAgICk7DQo+IC0gICAgICAgIGlm
IChGQUlMRUQoaHJlcykpIHsNCj4gLSAgICAgICAgICAgIGdvdG8gZXJyX291dDsNCj4gLSAgICAg
ICAgfQ0KPiAtDQo+IC0NCj4gLSAgICBPdXRwdXREZWJ1Z1N0cmluZygiV21pIGNvbm5lY3RlZFxu
Iik7DQo+IC0gICAgLyogQWxsIGRvbmUuICovDQo+IC0gICAgcmV0dXJuIHRydWU7DQo+IC0NCj4g
LWVycl9vdXQ6DQo+IC0gICAgT3V0cHV0RGVidWdTdHJpbmcoIldNSSBjb25uZWN0aW9uIGZhaWxl
ZFxuIik7DQo+IC0gICAgUmVsZWFzZVdNSUFjY2Vzc29yKCZ3bWkpOw0KPiAtICAgIHJldHVybiBm
YWxzZTsNCj4gLX0NCj4gLQ0KPiAtDQo+IC12b2lkIFJlbGVhc2VDb20odm9pZCkgew0KPiAtDQo+
IC0gICAgaWYgKGNvbV9pbml0aWFsaXplZCkgew0KPiAtICAgICAgICBPdXRwdXREZWJ1Z1N0cmlu
ZygiUmVsZWFzZSBsb2NhdG9yXG4iKTsNCj4gLSAgICAgICAgbG9jYXRvci0+UmVsZWFzZSgpOw0K
PiAtICAgICAgICAvL1hzTG9nKCJXbWkgZGlzY29ubmVjdCB0aHJlYWQgJXAiLCBHZXRDdXJyZW50
VGhyZWFkKCkpOw0KPiAtICAgICAgICAvL0FTU0VSVCgoKndtaSktPm93bmluZ190aHJlYWQgPT0g
R2V0Q3VycmVudFRocmVhZCgpKTsNCj4gLSAgICAgICAgY29tX2luaXRpYWxpemVkID0gMDsNCj4g
LSAgICAgICAgT3V0cHV0RGVidWdTdHJpbmcoIlVuaW5pdGlhbGl6ZSBjb21cbiIpOw0KPiAtICAg
ICAgICBDb1VuaW5pdGlhbGl6ZSgpOw0KPiAtDQo+IC0gICAgfQ0KPiAtfQ0KPiAtDQo+IC0vKiBD
YXJlZnVsOiBXTUkgYWNjZXNzb3JzIG11c3QgYmUgcmVsZWFzZWQgb24gdGhlIHNhbWUgdGhyZWFk
IHRoYXQNCj4gLSAgIGFsbG9jYXRlZCB0aGVtLiAqLw0KPiAtdm9pZCBSZWxlYXNlV01JQWNjZXNz
b3Ioc3RydWN0IFdNSUFjY2Vzc29yICoqd21pKQ0KPiAtew0KPiAtICAgIE91dHB1dERlYnVnU3Ry
aW5nKCJTaG91bGQgSSByZWxlYXNlIHdtaT9cbiIpOw0KPiAtICAgIGlmICgqd21pID09IE5VTEwp
DQo+IC0gICAgICAgIHJldHVybjsNCj4gLSAgICBPdXRwdXREZWJ1Z1N0cmluZygiR2V0IHJpZCBv
ZiBXTUkgc2VydmVyc1xuIik7DQo+IC0gICAgaWYgKCgqd21pKS0+bXBYU1N2YyAhPSBOVUxMKQ0K
PiAtICAgICAgICAoKndtaSktPm1wWFNTdmMtPlJlbGVhc2UoKTsNCj4gLSAgICBpZiAoKCp3bWkp
LT5tcFN2YyAhPSBOVUxMKQ0KPiAtICAgICAgICAoKndtaSktPm1wU3ZjLT5SZWxlYXNlKCk7DQo+
IC0gICAgT3V0cHV0RGVidWdTdHJpbmcoIkNsZWFyIFdtSVxuIik7DQo+IC0gICAgLyogUG9pc29u
IHdtaSB0byBtYWtlIHVzZS1hZnRlci1mcmVlKClzIGEgYml0IG1vcmUgb2J2aW91cy4gKi8NCj4g
LSAgICBtZW1zZXQoKCp3bWkpLCAweGFiLCBzaXplb2YoKip3bWkpKTsNCj4gLSAgICBYc0ZyZWUo
KndtaSk7DQo+IC0gICAgKndtaSA9IE5VTEw7DQo+IC0gICAgUmVsZWFzZUNvbSgpOw0KPiAtICAg
IE91dHB1dERlYnVnU3RyaW5nKCJSZWxlYXNlZCBXTUlcbiIpOw0KPiAtfQ0KPiAtDQo+IC0vKiBU
aGUgZmFjdCB0aGF0IHNvbWV0aGluZyBpcyBkb2N1bWVudGVkIGFzIGJlaW5nIGEgdWludDY0X3Qg
ZmllbGQNCj4gLSAgIGRvZXNuJ3QgaW1wbHkgdGhhdCBpdCB3aWxsIGJlIHJldHVybmVkIGFzIGEg
VlRfVUk4IGZpZWxkIGluIGENCj4gLSAgIHZhcmlhbnQgc3RydWN0dXJlLiAgV29yayBhcm91bmQg
dGhpcyB3aXRoIGEgaGFuZHkgY29udmVyc2lvbg0KPiAtICAgZnVuY3Rpb24uICovDQo+IC1zdGF0
aWMgdWludDY0X3QNCj4gLUdldFZhcmlhbnRVaW50NjQoVkFSSUFOVCAqdnREYXRhKQ0KPiAtew0K
PiAtICAgIHN3aXRjaCAodnREYXRhLT52dCkgew0KPiAtICAgIGNhc2UgVlRfSTI6DQo+IC0gICAg
ICAgIHJldHVybiB2dERhdGEtPmlWYWw7DQo+IC0gICAgY2FzZSBWVF9JNDoNCj4gLSAgICAgICAg
cmV0dXJuIHZ0RGF0YS0+bFZhbDsNCj4gLSAgICBjYXNlIFZUX0k4Og0KPiAtICAgICAgICByZXR1
cm4gdnREYXRhLT5sbFZhbDsNCj4gLSAgICBjYXNlIFZUX1VJMjoNCj4gLSAgICAgICAgcmV0dXJu
IHZ0RGF0YS0+dWlWYWw7DQo+IC0gICAgY2FzZSBWVF9VSTQ6DQo+IC0gICAgICAgIHJldHVybiB2
dERhdGEtPnVsVmFsOw0KPiAtICAgIGNhc2UgVlRfVUk4Og0KPiAtICAgICAgICByZXR1cm4gdnRE
YXRhLT51bGxWYWw7DQo+IC0gICAgY2FzZSBWVF9CU1RSOg0KPiAtICAgICAgICAvKiBZZXMsIEkg
cmVhbGx5IGRvIG1lYW4gQlNUUjogWFAgcmV0dXJucyA2NCBiaXQgdmFsdWVzIGFzDQo+IC0gICAg
ICAgICAgIHN0cmluZ3MsIGFuZCB3ZSB0aGVuIGhhdmUgdG8gZG8gYXRvaWxsIG9uIGl0LiAqLw0K
PiAtICAgICAgICByZXR1cm4gX3d0b2k2NCh2dERhdGEtPmJzdHJWYWwpOw0KPiAtICAgIGRlZmF1
bHQ6DQo+IC0gICAgICAgIERCR1BSSU5UKCgiQmFkIHVpbnQ2NF90IHZhcmlhbnQgJWQuXG4iLHZ0
RGF0YS0+dnQpKTsNCj4gLSAgICAgICAgcmV0dXJuIC0xOw0KPiAtICAgIH0NCj4gLX0NCj4gLQ0K
PiAtc3RhdGljIEhSRVNVTFQNCj4gLVF1ZXJ5VmFyaWFudChXTUlBY2Nlc3NvciAqd21pLCBQV0NI
QVIgZmllbGQsIFBXQ0hBUiB0YWJsZSwgVkFSSUFOVA0KPiAqdnQpDQo+IC17DQo+IC0gICAgSUVu
dW1XYmVtQ2xhc3NPYmplY3QgKnBFbnVtOw0KPiAtICAgIEJTVFIgcXVlcnk7DQo+IC0gICAgc2l6
ZV90IHF1ZXJ5X2xlbjsNCj4gLSAgICBJV2JlbUNsYXNzT2JqZWN0ICpwY2xzT2JqOw0KPiAtICAg
IEhSRVNVTFQgaHI7DQo+IC0gICAgVUxPTkcgdVJldHVybjsNCj4gLQ0KPiAtICAgIHF1ZXJ5X2xl
biA9IHN0cmxlbigiU0VMRUNUICBGUk9NICIpICsgd2NzbGVuKGZpZWxkKSArIHdjc2xlbih0YWJs
ZSkgKyAxOw0KPiAtICAgIHF1ZXJ5ID0gU3lzQWxsb2NTdHJpbmdMZW4oTlVMTCwgKFVJTlQpcXVl
cnlfbGVuKTsNCj4gLSAgICBpZiAocXVlcnkgPT0gTlVMTCkgew0KPiAtICAgICAgICBociA9IEVf
T1VUT0ZNRU1PUlk7DQo+IC0gICAgICAgIGdvdG8gZXJyOw0KPiAtICAgIH0NCj4gLSAgICBzd3By
aW50Zl9zKHF1ZXJ5LCBxdWVyeV9sZW4sIEwiU0VMRUNUICVzIEZST00gJXMiLCBmaWVsZCwgdGFi
bGUpOw0KPiAtICAgIHBFbnVtID0gcnVuUXVlcnkod21pLCBxdWVyeSk7DQo+IC0gICAgU3lzRnJl
ZVN0cmluZyhxdWVyeSk7DQo+IC0NCj4gLSAgICBpZiAocEVudW0gPT0gTlVMTCkgew0KPiAtICAg
ICAgICBociA9IEVfT1VUT0ZNRU1PUlk7DQo+IC0gICAgICAgIGdvdG8gZXJyOw0KPiAtICAgIH0N
Cj4gLQ0KPiAtICAgIGhyID0gcEVudW0tPk5leHQoV0JFTV9JTkZJTklURSwgMSwgJnBjbHNPYmos
ICZ1UmV0dXJuKTsNCj4gLSAgICBwRW51bS0+UmVsZWFzZSgpOw0KPiAtICAgIGlmIChGQUlMRUQo
aHIpKQ0KPiAtICAgICAgICBnb3RvIGVycjsNCj4gLSAgICBpZiAodVJldHVybiA9PSAwKSB7DQo+
IC0gICAgICAgIGhyID0gRV9GQUlMOw0KPiAtICAgICAgICBnb3RvIGVycjsNCj4gLSAgICB9DQo+
IC0NCj4gLSAgICBociA9IHBjbHNPYmotPkdldChmaWVsZCwgMCwgdnQsIE5VTEwsIE5VTEwpOw0K
PiAtICAgIHBjbHNPYmotPlJlbGVhc2UoKTsNCj4gLQ0KPiAtICAgIHJldHVybiBocjsNCj4gLQ0K
PiAtZXJyOg0KPiAtICAgIHJldHVybiBocjsNCj4gLX0NCj4gLQ0KPiAtc3RhdGljIHVpbnQ2NF90
DQo+IC1RdWVyeVVpbnQ2NChXTUlBY2Nlc3NvciAqd21pLCBQV0NIQVIgZmllbGQsIFBXQ0hBUiB0
YWJsZSkNCj4gLXsNCj4gLSAgICBIUkVTVUxUIGhyOw0KPiAtICAgIHVpbnQ2NF90IHJlczsNCj4g
LSAgICBWQVJJQU5UIHZ0Ow0KPiAtDQo+IC0gICAgbWVtc2V0KCZ2dCwgMCwgc2l6ZW9mKHZ0KSk7
DQo+IC0NCj4gLSAgICBociA9IFF1ZXJ5VmFyaWFudCh3bWksIGZpZWxkLCB0YWJsZSwgJnZ0KTsN
Cj4gLSAgICBpZiAoRkFJTEVEKGhyKSkNCj4gLSAgICAgICAgcmV0dXJuIDA7DQo+IC0NCj4gLSAg
ICByZXMgPSBHZXRWYXJpYW50VWludDY0KCZ2dCk7DQo+IC0gICAgVmFyaWFudENsZWFyKCZ2dCk7
DQo+IC0gICAgcmV0dXJuIHJlczsNCj4gLX0NCj4gLQ0KPiAtc3RhdGljIEJTVFINCj4gLVF1ZXJ5
QnN0cihXTUlBY2Nlc3NvciAqd21pLCBQV0NIQVIgZmllbGQsIFBXQ0hBUiB0YWJsZSkNCj4gLXsN
Cj4gLSAgICBIUkVTVUxUIGhyOw0KPiAtICAgIFZBUklBTlQgdnQ7DQo+IC0NCj4gLSAgICBtZW1z
ZXQoJnZ0LCAwLCBzaXplb2YodnQpKTsNCj4gLQ0KPiAtICAgIGhyID0gUXVlcnlWYXJpYW50KHdt
aSwgZmllbGQsIHRhYmxlLCAmdnQpOw0KPiAtICAgIGlmIChGQUlMRUQoaHIpKQ0KPiAtICAgICAg
ICByZXR1cm4gTlVMTDsNCj4gLSAgICBpZiAodnQudnQgIT0gVlRfQlNUUikgew0KPiAtICAgICAg
ICBWYXJpYW50Q2xlYXIoJnZ0KTsNCj4gLSAgICAgICAgcmV0dXJuIE5VTEw7DQo+IC0gICAgfQ0K
PiAtICAgIHJldHVybiB2dC5ic3RyVmFsOw0KPiAtfQ0KPiAtDQo+IC0NCj4gLQ0KPiAtLyogaGFz
aCBjb21wYXJhdG9yIGZvciBzdHJpbmdzIHdoaWNoIHN0cmlwcyBvZmYgdHJhaWxpbmcgLmV4ZQ0K
PiAtICogc3VmZml4ICovDQo+IC1jbGFzcyBzdHJpbmdfZXFfZXhlIHsNCj4gLXByaXZhdGU6DQo+
IC0gICAgc3RhdGljIHNpemVfdCBsZW5fd2l0aG91dF9zdWZmaXgoY29uc3QgY2hhciAqeCkNCj4g
LSAgICB7DQo+IC0gICAgICAgIHNpemVfdCBsOw0KPiAtICAgICAgICBsID0gc3RybGVuKHgpOw0K
PiAtICAgICAgICBpZiAobCA+IDQgJiYgIXN0cmNtcCh4ICsgbCAtIDQsICIuZXhlIikpDQo+IC0g
ICAgICAgICAgICBsIC09IDQ7DQo+IC0gICAgICAgIHJldHVybiBsOw0KPiAtICAgIH0NCj4gLQ0K
PiAtcHVibGljOg0KPiAtICAgIGVudW0ge2J1Y2tldF9zaXplID0gNCwgbWluX2J1Y2tldHMgPSA4
fTsNCj4gLSAgICBib29sIG9wZXJhdG9yKCkoY29uc3Qgc3RyaW5nICZhLCBjb25zdCBzdHJpbmcg
JmIpIGNvbnN0DQo+IC0gICAgew0KPiAtICAgICAgICBjb25zdCBjaGFyICphX2MsICpiX2M7DQo+
IC0gICAgICAgIHNpemVfdCBhX2wsIGJfbDsNCj4gLSAgICAgICAgYV9jID0gYS5jX3N0cigpOw0K
PiAtICAgICAgICBiX2MgPSBiLmNfc3RyKCk7DQo+IC0gICAgICAgIGFfbCA9IGxlbl93aXRob3V0
X3N1ZmZpeChhX2MpOw0KPiAtICAgICAgICBiX2wgPSBsZW5fd2l0aG91dF9zdWZmaXgoYl9jKTsN
Cj4gLQ0KPiAtICAgICAgICBpZiAoYV9sICE9IGJfbCkNCj4gLSAgICAgICAgICAgIHJldHVybiAx
Ow0KPiAtICAgICAgICBpZiAobWVtY21wKGFfYywgYl9jLCBhX2wpKQ0KPiAtICAgICAgICAgICAg
cmV0dXJuIDE7DQo+IC0gICAgICAgIGVsc2UNCj4gLSAgICAgICAgICAgIHJldHVybiAwOw0KPiAt
ICAgIH0NCj4gLQ0KPiAtICAgIHNpemVfdCBvcGVyYXRvcigpKGNvbnN0IHN0cmluZyAmYSkgY29u
c3QNCj4gLSAgICB7DQo+IC0gICAgICAgIHNpemVfdCBhY2MgPSAwOw0KPiAtICAgICAgICBjb25z
dCBjaGFyICpjX3N0ciA9IGEuY19zdHIoKTsNCj4gLSAgICAgICAgc2l6ZV90IGxlbiA9IGxlbl93
aXRob3V0X3N1ZmZpeChjX3N0cik7DQo+IC0gICAgICAgIHVuc2lnbmVkIHg7DQo+IC0gICAgICAg
IGZvciAoeCA9IDA7IHggPCBsZW47IHgrKykNCj4gLSAgICAgICAgICAgIGFjYyA9IChhY2MgKiAx
NyArIGNfc3RyW3hdKSAlIDI1NzsNCj4gLSAgICAgICAgcmV0dXJuIGFjYzsNCj4gLSAgICB9DQo+
IC19Ow0KPiAtDQo+IC0NCj4gLUlXYmVtQ2xhc3NPYmplY3QgKmdldEJhc2UoV01JQWNjZXNzb3Iq
KiB3bWkpDQo+IC17DQo+IC0gICAgSVdiZW1DbGFzc09iamVjdCogYmFzZSA9IGdldE9iamVjdCh3
bWksIE9CSkVDVF9OQU1FX1coQmFzZSkpOw0KPiAtICAgIGlmIChiYXNlID09IE5VTEwpIHsNCj4g
LSAgICAgICAgKndtaSA9IE5VTEw7DQo+IC0gICAgICAgIHJldHVybiBOVUxMOw0KPiAtICAgIH0N
Cj4gLSAgICByZXR1cm4gYmFzZTsNCj4gLX0NCj4gLQ0KPiAtSVdiZW1DbGFzc09iamVjdCAqZ2V0
QmFzZUNsYXNzKFdNSUFjY2Vzc29yKiogd21pKQ0KPiAtew0KPiAtICAgIElXYmVtQ2xhc3NPYmpl
Y3QqIGJhc2VjbGFzcyA9IGdldENsYXNzKHdtaSwgT0JKRUNUX05BTUVfVyhCYXNlKSk7DQo+IC0g
ICAgaWYgKGJhc2VjbGFzcyA9PSBOVUxMKSB7DQo+IC0gICAgICAgICp3bWkgPSBOVUxMOw0KPiAt
ICAgICAgICByZXR1cm4gTlVMTDsNCj4gLSAgICB9DQo+IC0gICAgcmV0dXJuIGJhc2VjbGFzczsN
Cj4gLX0NCj4gLQ0KPiAtVUxPTkdMT05HIGdldDY0Qml0VW5zaWduZWQoVkFSSUFOVCAqdmFyKSB7
DQo+IC0gICAgVUxPTkdMT05HIHJlcyA9IDA7DQo+IC0gICAgc3dpdGNoICh2YXItPnZ0KSB7DQo+
IC0gICAgICAgIGNhc2UgVlRfQlNUUjogew0KPiAtICAgICAgICAgICAgICAgIFZBUklBTlQgb3V0
dmFyOw0KPiAtICAgICAgICAgICAgICAgIFZhcmlhbnRJbml0KCZvdXR2YXIpOw0KPiAtICAgICAg
ICAgICAgICAgIFZhcmlhbnRDaGFuZ2VUeXBlKCZvdXR2YXIsIHZhciwgMCwgVlRfVUk4KTsNCj4g
LSAgICAgICAgICAgICAgICByZXMgPSBvdXR2YXIudWxsVmFsOw0KPiAtICAgICAgICAgICAgICAg
IFZhcmlhbnRDbGVhcigmb3V0dmFyKTsNCj4gLSAgICAgICAgICAgIH0NCj4gLSAgICAgICAgICAg
IGJyZWFrOw0KPiAtICAgICAgICBjYXNlIFZUX1VJODogew0KPiAtICAgICAgICAgICAgICAgIHJl
cyA9IHZhci0+dWxsVmFsOw0KPiAtICAgICAgICAgICAgfQ0KPiAtICAgICAgICAgICAgYnJlYWs7
DQo+IC0gICAgfQ0KPiAtICAgIHJldHVybiByZXM7DQo+IC19DQo+IC0NCj4gLUZJTEVUSU1FIFdt
aUdldFhlblRpbWUoV01JQWNjZXNzb3IgKip3bWkpIHsNCj4gLSAgICAgRklMRVRJTUUgb3V0Ow0K
PiAtDQo+IC0gICAgIElXYmVtQ2xhc3NPYmplY3QgKmJhc2UgPSBnZXRCYXNlKHdtaSk7DQo+IC0g
ICAgIGlmIChiYXNlID09IE5VTEwpIHsNCj4gLSAgICAgICAgIERCR1BSSU5UKCgiVW5hYmxlIHRv
IGZpbmQgYmFzZSBXTUkgc2Vzc2lvblxuIikpOw0KPiAtICAgICAgICAgZ290byBnZXRiYXNlZmFp
bGVkOw0KPiAtICAgICB9DQo+IC0NCj4gLSAgICAgVkFSSUFOVCB0aW1ldmFyOw0KPiAtICAgICBC
U1RSIHRpbWVuYW1lID0gbWtCc3RyKCJYZW5UaW1lIiwgNyk7DQo+IC0gICAgIGlmICh0aW1lbmFt
ZSA9PSBOVUxMKQ0KPiAtICAgICAgICAgZ290byBidWlsZHRpbWVuYW1lZmFpbGVkOw0KPiAtDQo+
IC0NCj4gLQ0KPiAtICAgICBpZiAoRkFJTEVEKGJhc2UtPkdldCh0aW1lbmFtZSwgMCwgJnRpbWV2
YXIsIE5VTEwsIE5VTEwpKSkNCj4gLSAgICAgICAgIGdvdG8gZ2V0dGltZWZhaWxlZDsNCj4gLQ0K
PiAtICAgICBVTE9OR0xPTkcgdGltZSA9Z2V0NjRCaXRVbnNpZ25lZCgmdGltZXZhcik7Ow0KPiAt
DQo+IC0gICAgIG91dC5kd0xvd0RhdGVUaW1lID0gKERXT1JEKXRpbWU7DQo+IC0gICAgIG91dC5k
d0hpZ2hEYXRlVGltZSA9IChEV09SRCkodGltZT4+MzIpOw0KPiAtICAgICByZXR1cm4gb3V0Ow0K
PiAtDQo+IC1nZXR0aW1lZmFpbGVkOg0KPiAtYnVpbGR0aW1lbmFtZWZhaWxlZDoNCj4gLWdldGJh
c2VmYWlsZWQ6DQo+IC0gICAgIG91dC5kd0xvd0RhdGVUaW1lID0gMDsNCj4gLSAgICAgb3V0LmR3
SGlnaERhdGVUaW1lID0gMDsNCj4gLSAgICAgcmV0dXJuIG91dCA7DQo+IC19DQo+IC0NCj4gLUlX
YmVtQ2xhc3NPYmplY3QgKm9wZW5TZXNzaW9uKFdNSUFjY2Vzc29yKiogd21pLCBjb25zdCBjaGFy
DQo+ICpzZXNzaW9ubmFtZSkNCj4gLXsNCj4gLSAgICBIUkVTVUxUIGhyZXM7DQo+IC0NCj4gLSAg
ICBCU1RSIHF1ZXJ5ID0gZm9ybWF0QnN0cigiU0VMRUNUICogRlJPTSAiIE9CSkVDVF9OQU1FX0Eo
U2Vzc2lvbikgIg0KPiBXSEVSRSBJZD1cIiIgT0JKRUNUX1BSRUZJWF9TVFIgIiBYZW4gV2luMzIg
U2VydmljZSA6ICVzXCIiLA0KPiBzZXNzaW9ubmFtZSk7DQo+IC0gICAgaWYgKHF1ZXJ5ID09IE5V
TEwpDQo+IC0gICAgICAgIGdvdG8gZm9ybWF0c2Vzc2lvbmJzdHJmYWlsZWQ7DQo+IC0NCj4gLSAg
ICBJRW51bVdiZW1DbGFzc09iamVjdCAqIHNlc3Npb25zID0gcnVuWFNRdWVyeSh3bWksIHF1ZXJ5
KTsNCj4gLSAgICBTeXNGcmVlU3RyaW5nKHF1ZXJ5KTsNCj4gLQ0KPiAtICAgIGlmIChzZXNzaW9u
cykgew0KPiAtICAgICAgICBJV2JlbUNsYXNzT2JqZWN0ICpyZXR1cm5lZE9iamVjdDsNCj4gLSAg
ICAgICAgVUxPTkcgY291bnQ7DQo+IC0gICAgICAgIGhyZXMgPSBzZXNzaW9ucy0+TmV4dChXQkVN
X0lORklOSVRFLCAxLCAmcmV0dXJuZWRPYmplY3QsICZjb3VudCk7DQo+IC0gICAgICAgIHNlc3Np
b25zLT5SZWxlYXNlKCk7DQo+IC0NCj4gLSAgICAgICAgaWYgKGNvdW50PjApIHsNCj4gLSAgICAg
ICAgICAgIGlmIChzZXNzaW9ubmFtZSAhPU5VTEwgKSB7DQo+IC0gICAgICAgICAgICAgICAgaWYg
KCFXbWlTZXNzaW9uRW5kKHdtaSwgcmV0dXJuZWRPYmplY3QpKSB7DQo+IC0gICAgICAgICAgICAg
ICAgICAgIHJldHVybiBOVUxMOw0KPiAtICAgICAgICAgICAgICAgIH0NCj4gLSAgICAgICAgICAg
IH0NCj4gLSAgICAgICAgICAgIGVsc2Ugew0KPiAtICAgICAgICAgICAgICAgIHJldHVybiByZXR1
cm5lZE9iamVjdDsNCj4gLSAgICAgICAgICAgIH0NCj4gLSAgICAgICAgfQ0KPiAtICAgIH0NCj4g
LQ0KPiAtICAgIElXYmVtQ2xhc3NPYmplY3QgKmJhc2UgPSBnZXRCYXNlKHdtaSk7DQo+IC0gICAg
aWYgKGJhc2U9PU5VTEwpIHsNCj4gLSAgICAgICAgREJHUFJJTlQoKCJVbmFibGUgdG8gZmluZCBi
YXNlIFdNSSBzZXNzaW9uXG4iKSk7DQo+IC0gICAgICAgIGdvdG8gZ2V0YmFzZWZhaWxlZDsNCj4g
LSAgICB9DQo+IC0NCj4gLSAgICBJV2JlbUNsYXNzT2JqZWN0ICpiYXNlY2xhc3MgPSBnZXRCYXNl
Q2xhc3Mod21pKTsNCj4gLQ0KPiAtICAgIGlmIChiYXNlY2xhc3MgPT0gTlVMTCkNCj4gLSAgICAg
ICAgZ290byBnZXRiYXNlY2xhc3NmYWlsZWQ7DQo+IC0NCj4gLSAgICBJV2JlbUNsYXNzT2JqZWN0
ICppbk1ldGhvZDsNCj4gLQ0KPiAtICAgIElXYmVtQ2xhc3NPYmplY3QgKmluTWV0aG9kSW5zdDsN
Cj4gLSAgICBJV2JlbUNsYXNzT2JqZWN0ICpvdXRNZXRob2RJbnN0Ow0KPiAtICAgIGlmIChGQUlM
RUQoYmFzZWNsYXNzLT5HZXRNZXRob2QoTCJBZGRTZXNzaW9uIiwwLCZpbk1ldGhvZCwgTlVMTCkp
KQ0KPiAtICAgICAgICBnb3RvIGdldG1ldGhvZGFkZHNlc3Npb25mYWlsZWQ7DQo+IC0NCj4gLSAg
ICBpZiAoRkFJTEVEKGluTWV0aG9kLT5TcGF3bkluc3RhbmNlKDAsICZpbk1ldGhvZEluc3QpKSkN
Cj4gLSAgICAgICAgZ290byBpbm1ldGhvZHNwYXduZmFpbGVkOw0KPiAtDQo+IC0gICAgVkFSSUFO
VCB2YXI7DQo+IC0gICAgdmFyLnZ0ID0gVlRfQlNUUjsNCj4gLSAgICB2YXIuYnN0clZhbD1mb3Jt
YXRCc3RyKFZFTkRPUl9OQU1FX1NUUiAiICIgUFJPRFVDVF9OQU1FX1NUUiAiDQo+IFdpbjMyIFNl
cnZpY2UgOiAlcyIsIHNlc3Npb25uYW1lKTsNCj4gLQ0KPiAtICAgIGlmICh2YXIuYnN0clZhbCA9
PSBOVUxMKQ0KPiAtICAgICAgICBnb3RvIGZvcm1hdG5hbWVic3RyZmFpbGVkOw0KPiAtDQo+IC0g
ICAgaWYgKEZBSUxFRChpbk1ldGhvZEluc3QtPlB1dChMIklkIiwgMCwgJnZhciwgMCkpKQ0KPiAt
ICAgICAgICBnb3RvIG1ldGhvZHB1dGZhaWxlZDsNCj4gLQ0KPiAtICAgIGlmIChGQUlMRUQobWV0
aG9kRXhlYyh3bWksIGJhc2UsIEwiQWRkU2Vzc2lvbiIsIGluTWV0aG9kSW5zdCwNCj4gJm91dE1l
dGhvZEluc3QpKSkNCj4gLSAgICAgICAgZ290byBtZXRob2RleGVjYWRkc2Vzc2lvbmZhaWxlZDsN
Cj4gLQ0KPiAtICAgIGlmIChGQUlMRUQob3V0TWV0aG9kSW5zdC0+R2V0KEwiU2Vzc2lvbklkIiwg
MCwgJnZhciwgTlVMTCwgTlVMTCkpKQ0KPiAtICAgICAgICBnb3RvIG91dG1ldGhvZGdldGZhaWxl
ZDsNCj4gLQ0KPiAtICAgIHNpemVfdCBxdWVyeV9sZW47DQo+IC0gICAgcXVlcnlfbGVuID0gc3Ry
bGVuKCJTRUxFQ1QgKiBGUk9NICIgT0JKRUNUX05BTUVfQShTZXNzaW9uKSAiIFdIRVJFDQo+IFNl
c3Npb25JZD0iKSsxMDsNCj4gLSAgICBxdWVyeSA9IFN5c0FsbG9jU3RyaW5nTGVuKE5VTEwsIChV
SU5UKXF1ZXJ5X2xlbik7DQo+IC0NCj4gLSAgICBpZiAocXVlcnkgPT0gTlVMTCkNCj4gLSAgICAg
ICAgZ290byBhbGxvY3F1ZXJ5ZmFpbGVkOw0KPiAtDQo+IC0gICAgc3dwcmludGZfcyhxdWVyeSxx
dWVyeV9sZW4sIEwiU0VMRUNUICogRlJPTSAiDQo+IE9CSkVDVF9OQU1FX1coU2Vzc2lvbikgTCIg
V0hFUkUgU2Vzc2lvbklkPSVkIiwgdmFyLnVpbnRWYWwpOw0KPiAtDQo+IC0gICAgc2Vzc2lvbnMg
PSBydW5YU1F1ZXJ5KHdtaSwgcXVlcnkgKTsNCj4gLSAgICBTeXNGcmVlU3RyaW5nKHF1ZXJ5KTsN
Cj4gLQ0KPiAtICAgIGlmIChzZXNzaW9ucykgew0KPiAtICAgICAgICBJV2JlbUNsYXNzT2JqZWN0
ICpyZXR1cm5lZE9iamVjdDsNCj4gLSAgICAgICAgVUxPTkcgY291bnQ7DQo+IC0gICAgICAgIGhy
ZXMgPSBzZXNzaW9ucy0+TmV4dChXQkVNX0lORklOSVRFLCAxLCAmcmV0dXJuZWRPYmplY3QsICZj
b3VudCk7DQo+IC0gICAgICAgIHNlc3Npb25zLT5SZWxlYXNlKCk7DQo+IC0gICAgICAgIGlmIChj
b3VudD4wKSB7DQo+IC0gICAgICAgICAgICByZXR1cm4gcmV0dXJuZWRPYmplY3Q7DQo+IC0gICAg
ICAgIH0NCj4gLQ0KPiAtICAgIH0NCj4gLQ0KPiAtICAgIG91dE1ldGhvZEluc3QtPlJlbGVhc2Uo
KTsNCj4gLSAgICBWYXJpYW50Q2xlYXIoJnZhcik7DQo+IC0gICAgaW5NZXRob2RJbnN0LT5SZWxl
YXNlKCk7DQo+IC0gICAgaW5NZXRob2QtPlJlbGVhc2UoKTsNCj4gLSAgICBiYXNlLT5SZWxlYXNl
KCk7DQo+IC0gICAgYmFzZWNsYXNzLT5SZWxlYXNlKCk7DQo+IC0gICAgcmV0dXJuIE5VTEw7DQo+
IC0NCj4gLWFsbG9jcXVlcnlmYWlsZWQ6DQo+IC1vdXRtZXRob2RnZXRmYWlsZWQ6DQo+IC0gICAg
b3V0TWV0aG9kSW5zdC0+UmVsZWFzZSgpOw0KPiAtDQo+IC1tZXRob2RleGVjYWRkc2Vzc2lvbmZh
aWxlZDoNCj4gLW1ldGhvZHB1dGZhaWxlZDoNCj4gLSAgICBWYXJpYW50Q2xlYXIoJnZhcik7DQo+
IC0NCj4gLWZvcm1hdG5hbWVic3RyZmFpbGVkOg0KPiAtICAgIGluTWV0aG9kSW5zdC0+UmVsZWFz
ZSgpOw0KPiAtaW5tZXRob2RzcGF3bmZhaWxlZDoNCj4gLSAgICBpbk1ldGhvZC0+UmVsZWFzZSgp
Ow0KPiAtDQo+IC0NCj4gLWdldG1ldGhvZGFkZHNlc3Npb25mYWlsZWQ6DQo+IC0gICAgYmFzZWNs
YXNzLT5SZWxlYXNlKCk7DQo+IC0NCj4gLWdldGJhc2VjbGFzc2ZhaWxlZDoNCj4gLSAgICBiYXNl
LT5SZWxlYXNlKCk7DQo+IC0NCj4gLWdldGJhc2VmYWlsZWQ6DQo+IC0NCj4gLQ0KPiAtZm9ybWF0
c2Vzc2lvbmJzdHJmYWlsZWQ6DQo+IC0gICAgcmV0dXJuIE5VTEw7DQo+IC19DQo+IC0NCj4gLUlX
YmVtQ2xhc3NPYmplY3QqIHNlc3Npb25NZXRob2RTdGFydChXTUlBY2Nlc3Nvcioqd21pLA0KPiAt
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHdjaGFyX3QgKm1ldGhv
ZG5hbWUpDQo+IC17DQo+IC0gICAgSVdiZW1DbGFzc09iamVjdCAqaW5NZXRob2Q7DQo+IC0gICAg
SVdiZW1DbGFzc09iamVjdCAqaW5NZXRob2RJbnN0ID0gTlVMTDsNCj4gLSAgICBJV2JlbUNsYXNz
T2JqZWN0ICpzZXNzaW9uQ2xhc3M7DQo+IC0gICAgSFJFU1VMVCBocjsNCj4gLQ0KPiAtICAgIEFT
U0VSVCh3bWkgIT0gTlVMTCk7DQo+IC0NCj4gLSAgICBzZXNzaW9uQ2xhc3MgPSBnZXRDbGFzcyh3
bWksIE9CSkVDVF9OQU1FX1coU2Vzc2lvbikpOw0KPiAtICAgIGlmIChzZXNzaW9uQ2xhc3MgPT0g
TlVMTCkNCj4gLSAgICAgICAgZ290byBnZXRjbGFzc2ZhaWxlZDsNCj4gLQ0KPiAtICAgIGhyID0g
c2Vzc2lvbkNsYXNzLT5HZXRNZXRob2QobWV0aG9kbmFtZSwwLCZpbk1ldGhvZCwgTlVMTCk7DQo+
IC0gICAgaWYgKEZBSUxFRChocikpDQo+IC0gICAgICAgIGdvdG8gZ2V0bWV0aG9kZmFpbGVkOw0K
PiAtDQo+IC0gICAgaHIgPSBpbk1ldGhvZC0+U3Bhd25JbnN0YW5jZSgwLCAmaW5NZXRob2RJbnN0
KTsNCj4gLSAgICBpZiAoRkFJTEVEKGhyKSkNCj4gLSAgICAgICAgZ290byBzcGF3bmluc3RhbmNl
ZmFpbGVkOw0KPiAtDQo+IC0gICAgaW5NZXRob2QtPlJlbGVhc2UoKTsNCj4gLQ0KPiAtICAgIHNl
c3Npb25DbGFzcy0+UmVsZWFzZSgpOw0KPiAtICAgIHJldHVybiBpbk1ldGhvZEluc3Q7DQo+IC0N
Cj4gLQ0KPiAtc3Bhd25pbnN0YW5jZWZhaWxlZDoNCj4gLSAgICBpbk1ldGhvZC0+UmVsZWFzZSgp
Ow0KPiAtDQo+IC1nZXRtZXRob2RmYWlsZWQ6DQo+IC0gICAgc2Vzc2lvbkNsYXNzLT5SZWxlYXNl
KCk7DQo+IC0NCj4gLWdldGNsYXNzZmFpbGVkOg0KPiAtICAgIHJldHVybiBOVUxMOw0KPiAtfQ0K
PiAtDQo+IC0NCj4gLWNoYXIgKiBic3RyVG9DaGFyKEJTVFIgYnN0LCBzaXplX3QgKmxlbikgew0K
PiAtICAgICpsZW4gPSB3Y3NsZW4oYnN0KTsNCj4gLSAgICBjaGFyICpzcGFjZSA9IChjaGFyICop
WHNBbGxvYygqbGVuKzEpOw0KPiAtICAgIGlmIChzcGFjZSkNCj4gLSAgICAgICAgd2NzdG9tYnNf
cyhsZW4sIHNwYWNlLCAqbGVuKzEsIGJzdCwgIF9UUlVOQ0FURSk7DQo+IC0gICAgcmV0dXJuIHNw
YWNlOw0KPiAtfQ0KPiAtDQo+IC12b2lkIFdtaVNlc3Npb25Mb2coV01JQWNjZXNzb3IqKiB3bWks
ICB2b2lkICoqc2Vzc2lvbmhhbmRsZSxjb25zdA0KPiBjaGFyICpmbXQsIHZhX2xpc3QgYXJncykg
ew0KPiAtICAgIElXYmVtQ2xhc3NPYmplY3QgKipzZXNzaW9uID0gKElXYmVtQ2xhc3NPYmplY3Qg
Kiopc2Vzc2lvbmhhbmRsZTsNCj4gLQ0KPiAtICAgIGNoYXIqIG1lc3NhZ2UgPSBmb3JtYXRDaGFy
U3RySW50KGZtdCxhcmdzKTsNCj4gLQ0KPiAtICAgIE91dHB1dERlYnVnU3RyaW5nKG1lc3NhZ2Up
Ow0KPiAtICAgIGlmICgoKCp3bWkpPT1OVUxMKSB8fCAoKCpzZXNzaW9uaGFuZGxlKT09TlVMTCkg
KSB7DQo+IC0gICAgICAgIGdvdG8gbm93bWk7DQo+IC0gICAgfQ0KPiAtICAgIFZBUklBTlQgdm1l
c3NhZ2U7DQo+IC0gICAgaWYgKHNldFZhcmlhbnRTdHJpbmcoJnZtZXNzYWdlLCBtZXNzYWdlKSkN
Cj4gLSAgICAgICAgZ290byBzZXR2bWVzc2FnZTsNCj4gLQ0KPiAtICAgIElXYmVtQ2xhc3NPYmpl
Y3QgKmluTWV0aG9kSW5zdCA9IHNlc3Npb25NZXRob2RTdGFydCggd21pLCBMIkxvZyIpOw0KPiAt
ICAgIGlmICghaW5NZXRob2RJbnN0KQ0KPiAtICAgICAgICBnb3RvIHNlc3Npb25zdGFydDsNCj4g
LQ0KPiAtICAgICBpZiAoRkFJTEVEKGluTWV0aG9kSW5zdC0+UHV0KEwiTWVzc2FnZSIsMCwmdm1l
c3NhZ2UsMCkpKQ0KPiAtICAgICAgICAgZ290byBtZXRob2RwdXRmYWlsZWQ7DQo+IC0NCj4gLSAg
ICAgaWYgKEZBSUxFRChtZXRob2RFeGVjKHdtaSwqc2Vzc2lvbiwgTCJMb2ciLCBpbk1ldGhvZElu
c3QsIE5VTEwpKSkNCj4gLSAgICAgICAgIGdvdG8gbWV0aG9kZXhlY2ZhaWxlZDsNCj4gLQ0KPiAt
bWV0aG9kZXhlY2ZhaWxlZDoNCj4gLW1ldGhvZHB1dGZhaWxlZDoNCj4gLSAgICAgaW5NZXRob2RJ
bnN0LT5SZWxlYXNlKCk7DQo+IC0NCj4gLXNlc3Npb25zdGFydDoNCj4gLSAgICBWYXJpYW50Q2xl
YXIoJnZtZXNzYWdlKTsNCj4gLQ0KPiAtc2V0dm1lc3NhZ2U6DQo+IC1ub3dtaToNCj4gLSAgICBy
ZXR1cm47DQo+IC19DQo+IC0NCj4gLWNoYXIqIFdtaVNlc3Npb25HZXRFbnRyeShXTUlBY2Nlc3Nv
cioqIHdtaSwgdm9pZCAqKnNlc3Npb25oYW5kbGUsDQo+IC0gICAgICAgICAgICAgIGNvbnN0IGNo
YXIgKiBwYXRoLCBzaXplX3QqIGxlbikNCj4gLXsNCj4gLSAgICAqbGVuID0gMDsNCj4gLSAgICBJ
V2JlbUNsYXNzT2JqZWN0ICoqc2Vzc2lvbiA9IChJV2JlbUNsYXNzT2JqZWN0ICoqKXNlc3Npb25o
YW5kbGU7DQo+IC0NCj4gLSAgICBWQVJJQU5UIHZwYXRoOw0KPiAtICAgIGlmIChzZXRWYXJpYW50
U3RyaW5nKCZ2cGF0aCwgcGF0aCkpDQo+IC0gICAgICAgIGdvdG8gc2V0dnBhdGg7DQo+IC0NCj4g
LSAgICBJV2JlbUNsYXNzT2JqZWN0ICpvdXRNZXRob2RJbnN0ID0gTlVMTDsNCj4gLQ0KPiAtICAg
IElXYmVtQ2xhc3NPYmplY3QgKmluTWV0aG9kSW5zdCA9IHNlc3Npb25NZXRob2RTdGFydCggd21p
LA0KPiBMIkdldFZhbHVlIik7DQo+IC0gICAgaWYgKGluTWV0aG9kSW5zdCA9PSBOVUxMKQ0KPiAt
ICAgICAgICBnb3RvIHNlc3Npb25tZXRob2RzdGFydGZhaWxlZDsNCj4gLQ0KPiAtICAgIGlmIChG
QUlMRUQoaW5NZXRob2RJbnN0LT5QdXQoTCJQYXRoTmFtZSIsMCwmdnBhdGgsMCkpKQ0KPiAtICAg
ICAgICBnb3RvIG1ldGhvZGV4ZWNmYWlsZWQ7DQo+IC0NCj4gLSAgICBtZXRob2RFeGVjKHdtaSwq
c2Vzc2lvbiwgTCJHZXRWYWx1ZSIsIGluTWV0aG9kSW5zdCwNCj4gJm91dE1ldGhvZEluc3QpOw0K
PiAtICAgIGlmIChvdXRNZXRob2RJbnN0PT1OVUxMKQ0KPiAtICAgICAgICBnb3RvIHNlc3Npb25F
eGVjOw0KPiAtDQo+IC0gICAgVkFSSUFOVCBvdXR2YWw7DQo+IC0gICAgVmFyaWFudEluaXQoJm91
dHZhbCk7DQo+IC0NCj4gLSAgICBpZiAoRkFJTEVEKG91dE1ldGhvZEluc3QtPkdldChMInZhbHVl
IiwgMCwgJm91dHZhbCwgTlVMTCwgTlVMTCkpKQ0KPiAtICAgICAgICBnb3RvIG1ldGhvZGdldGZh
aWxlZDsNCj4gLQ0KPiAtICAgIGNoYXIgKnNwYWNlID0gTlVMTDsNCj4gLQ0KPiAtICAgIGlmIChW
X1ZUKCZvdXR2YWwpID09IFZUX0JTVFIpDQo+IC0gICAgew0KPiAtICAgICAgICBzcGFjZSA9IGJz
dHJUb0NoYXIob3V0dmFsLmJzdHJWYWwsIGxlbik7DQo+IC0gICAgfQ0KPiAtDQo+IC0gICAgb3V0
TWV0aG9kSW5zdC0+UmVsZWFzZSgpOw0KPiAtICAgIGluTWV0aG9kSW5zdC0+UmVsZWFzZSgpOw0K
PiAtICAgIFZhcmlhbnRDbGVhcigmdnBhdGgpOw0KPiAtICAgIFZhcmlhbnRDbGVhcigmb3V0dmFs
KTsNCj4gLSAgICByZXR1cm4gc3BhY2U7DQo+IC0NCj4gLW1ldGhvZGdldGZhaWxlZDoNCj4gLSAg
ICBvdXRNZXRob2RJbnN0LT5SZWxlYXNlKCk7DQo+IC0NCj4gLW1ldGhvZGV4ZWNmYWlsZWQ6DQo+
IC1zZXNzaW9uRXhlYzoNCj4gLSAgICBpbk1ldGhvZEluc3QtPlJlbGVhc2UoKTsNCj4gLQ0KPiAt
c2Vzc2lvbm1ldGhvZHN0YXJ0ZmFpbGVkOg0KPiAtICAgIFZhcmlhbnRDbGVhcigmdnBhdGgpOw0K
PiAtDQo+IC1zZXR2cGF0aDoNCj4gLSAgICByZXR1cm4gTlVMTDsNCj4gLX0NCj4gLQ0KPiAtaW50
IFdtaVNlc3Npb25TZXRFbnRyeShXTUlBY2Nlc3NvcioqIHdtaSwgIHZvaWQgKipzZXNzaW9uaGFu
ZGxlLA0KPiAtICAgICAgICAgICAgICBjb25zdCBjaGFyKnBhdGgsIGNvbnN0IGNoYXIgKiB2YWx1
ZSwgc2l6ZV90IGxlbikNCj4gLXsNCj4gLSAgICBpbnQgZXJyID0gLTE7DQo+IC0gICAgSVdiZW1D
bGFzc09iamVjdCAqKnNlc3Npb24gPSAoSVdiZW1DbGFzc09iamVjdCAqKilzZXNzaW9uaGFuZGxl
Ow0KPiAtDQo+IC0gICAgVkFSSUFOVCB2cGF0aDsNCj4gLSAgICBpZiAoc2V0VmFyaWFudFN0cmlu
ZygmdnBhdGgsIHBhdGgpKQ0KPiAtICAgICAgICBnb3RvIHNldHZwYXRoOw0KPiAtDQo+IC0gICAg
VkFSSUFOVCB2dmFsdWU7DQo+IC0gICAgaWYgKHNldFZhcmlhbnRTdHJpbmcoJnZ2YWx1ZSwgdmFs
dWUpKQ0KPiAtICAgICAgICBnb3RvIHNldHZ2YWx1ZTsNCj4gLQ0KPiAtICAgIElXYmVtQ2xhc3NP
YmplY3QgKm91dE1ldGhvZEluc3Q7DQo+IC0NCj4gLSAgICBJV2JlbUNsYXNzT2JqZWN0ICppbk1l
dGhvZEluc3QgPSBzZXNzaW9uTWV0aG9kU3RhcnQoIHdtaSwNCj4gTCJTZXRWYWx1ZSIpOw0KPiAt
ICAgIGlmICghaW5NZXRob2RJbnN0KQ0KPiAtICAgICAgICBnb3RvIHNlc3Npb25zdGFydDsNCj4g
LQ0KPiAtICAgIGluTWV0aG9kSW5zdC0+UHV0KEwiUGF0aE5hbWUiLDAsJnZwYXRoLDApOw0KPiAt
ICAgIGluTWV0aG9kSW5zdC0+UHV0KEwidmFsdWUiLDAsJnZ2YWx1ZSwwKTsNCj4gLQ0KPiAtICAg
IGlmIChGQUlMRUQobWV0aG9kRXhlYyh3bWksKnNlc3Npb24sIEwiU2V0VmFsdWUiLCBpbk1ldGhv
ZEluc3QsDQo+ICZvdXRNZXRob2RJbnN0KSkpDQo+IC0gICAgICAgIGdvdG8gbWV0aG9kZXhlY2Zh
aWxlZDsNCj4gLQ0KPiAtICAgIGlmIChvdXRNZXRob2RJbnN0IT1OVUxMKQ0KPiAtICAgICAgICBv
dXRNZXRob2RJbnN0LT5SZWxlYXNlKCk7DQo+IC0NCj4gLSAgICBpbk1ldGhvZEluc3QtPlJlbGVh
c2UoKTsNCj4gLSAgICBTeXNGcmVlU3RyaW5nKHZ2YWx1ZS5ic3RyVmFsKTsNCj4gLSAgICBTeXNG
cmVlU3RyaW5nKHZwYXRoLmJzdHJWYWwpOw0KPiAtDQo+IC0gICAgcmV0dXJuIDA7DQo+IC0NCj4g
LW1ldGhvZGV4ZWNmYWlsZWQ6DQo+IC0gICAgWHNMb2coIldtaVNlc3Npb25TZXRFbnRyeTpNZXRo
b2RFeGVjIEZhaWxlZCIpOw0KPiAtICAgIGluTWV0aG9kSW5zdC0+UmVsZWFzZSgpOw0KPiAtDQo+
IC1zZXNzaW9uc3RhcnQ6DQo+IC0gICAgWHNMb2coIldtaVNlc3Npb25TZXRFbnRyeTpTZXNzaW9u
U3RhcnQgRmFpbGVkIik7DQo+IC0gICAgU3lzRnJlZVN0cmluZyh2dmFsdWUuYnN0clZhbCk7DQo+
IC0NCj4gLXNldHZ2YWx1ZToNCj4gLSAgICBYc0xvZygiV21pU2Vzc2lvblNldEVudHJ5OlNldFZW
YWx1ZSBGYWlsZWQiKTsNCj4gLSAgICBTeXNGcmVlU3RyaW5nKHZwYXRoLmJzdHJWYWwpOw0KPiAt
DQo+IC1zZXR2cGF0aDoNCj4gLSAgICBYc0xvZygiV21pU2Vzc2lvblNldEVudHJ5OlNldFZQYXRo
IEZhaWxlZCAiKTsNCj4gLSAgICByZXR1cm4gZXJyOw0KPiAtfQ0KPiAtDQo+IC1pbnQgV21pU2Vz
c2lvblNldEVudHJ5KFdNSUFjY2Vzc29yKiogd21pLCAgdm9pZCAqKnNlc3Npb25oYW5kbGUsDQo+
IC0gICAgICAgICAgICAgIGNvbnN0IGNoYXIqcGF0aCwgY29uc3QgY2hhciAqIHZhbHVlKSB7DQo+
IC0gICAgcmV0dXJuIFdtaVNlc3Npb25TZXRFbnRyeSh3bWksIHNlc3Npb25oYW5kbGUsIHBhdGgs
IHZhbHVlLA0KPiBzdHJsZW4odmFsdWUpKTsNCj4gLX0NCj4gLQ0KPiAtaW50IFdtaVNlc3Npb25S
ZW1vdmVFbnRyeShXTUlBY2Nlc3NvcioqIHdtaSwgIHZvaWQgKipzZXNzaW9uaGFuZGxlLA0KPiAt
ICAgICAgICAgICAgICBjb25zdCBjaGFyKnBhdGgpew0KPiAtDQo+IC0gICAgaW50IGVyciA9IC0x
Ow0KPiAtICAgIElXYmVtQ2xhc3NPYmplY3QgKipzZXNzaW9uID0gKElXYmVtQ2xhc3NPYmplY3Qg
Kiopc2Vzc2lvbmhhbmRsZTsNCj4gLQ0KPiAtICAgIFZBUklBTlQgdnBhdGg7DQo+IC0gICAgaWYg
KHNldFZhcmlhbnRTdHJpbmcoJnZwYXRoLCBwYXRoKSkNCj4gLSAgICAgICAgZ290byBzZXR2cGF0
aDsNCj4gLQ0KPiAtICAgIElXYmVtQ2xhc3NPYmplY3QgKmluTWV0aG9kSW5zdCA9IHNlc3Npb25N
ZXRob2RTdGFydCggd21pLA0KPiBMIlJlbW92ZVZhbHVlIik7DQo+IC0gICAgaWYgKCFpbk1ldGhv
ZEluc3QpDQo+IC0gICAgICAgIGdvdG8gc2Vzc2lvbnN0YXJ0Ow0KPiAtDQo+IC0gICAgaWYgKEZB
SUxFRChpbk1ldGhvZEluc3QtPlB1dChMIlBhdGhOYW1lIiwwLCZ2cGF0aCwwKSkpDQo+IC0gICAg
ICAgIGdvdG8gbWV0aG9kcHV0ZmFpbGVkOw0KPiAtDQo+IC0gICAgSVdiZW1DbGFzc09iamVjdCog
b3V0TWV0aG9kSW5zdDsNCj4gLQ0KPiAtICAgIGlmIChGQUlMRUQobWV0aG9kRXhlYyh3bWksKnNl
c3Npb24sIEwiUmVtb3ZlVmFsdWUiLCBpbk1ldGhvZEluc3QsDQo+ICZvdXRNZXRob2RJbnN0KSkp
DQo+IC0gICAgICAgIGdvdG8gbWV0aG9kZXhlY2ZhaWxlZDsNCj4gLQ0KPiAtICAgIGlmIChvdXRN
ZXRob2RJbnN0ICE9IE5VTEwpDQo+IC0gICAgICAgIG91dE1ldGhvZEluc3QtPlJlbGVhc2UoKTsN
Cj4gLQ0KPiAtICAgIGVycj0wOw0KPiAtICAgIGluTWV0aG9kSW5zdC0+UmVsZWFzZSgpOw0KPiAt
ICAgIFZhcmlhbnRDbGVhcigmdnBhdGgpOw0KPiAtICAgIHJldHVybiBlcnI7DQo+IC1tZXRob2Rl
eGVjZmFpbGVkOg0KPiAtICAgIE91dHB1dERlYnVnU3RyaW5nKF9fRlVOQ1RJT05fXyAiIE1ldGhv
ZEV4ZWNGYWlsZWQiKTsNCj4gLW1ldGhvZHB1dGZhaWxlZDoNCj4gLSAgICBPdXRwdXREZWJ1Z1N0
cmluZyhfX0ZVTkNUSU9OX18gIiBNZXRob2RQdXRGYWlsZWQiKTsNCj4gLSAgICBpbk1ldGhvZElu
c3QtPlJlbGVhc2UoKTsNCj4gLQ0KPiAtc2Vzc2lvbnN0YXJ0Og0KPiAtICAgIE91dHB1dERlYnVn
U3RyaW5nKF9fRlVOQ1RJT05fXyAiIFNlc3Npb25TdGFydEZhaWxlZCIpOw0KPiAtICAgIFZhcmlh
bnRDbGVhcigmdnBhdGgpOw0KPiAtDQo+IC0gICAgT3V0cHV0RGVidWdTdHJpbmcoX19GVU5DVElP
Tl9fICIgU2Vzc2lvbkV4ZWNGYWlsZWQiKTsNCj4gLXNldHZwYXRoOg0KPiAtICAgIE91dHB1dERl
YnVnU3RyaW5nKF9fRlVOQ1RJT05fXyAiIFNldFZwYXRoRmFpbGVkIik7DQo+IC0gICAgcmV0dXJu
IGVycjsNCj4gLX0NCj4gLQ0KPiAtDQo+IC1CT09MIFdtaVNlc3Npb25VbndhdGNoKFdNSUFjY2Vz
c29yKiogd21pLCAgdm9pZCAqKnNlc3Npb25oYW5kbGUsDQo+IC0gICAgICAgICAgICAgICAgICAg
ICAgICAgdm9pZCAqd2F0Y2hoYW5kbGUpIHsNCj4gLSAgICBJV2JlbUNsYXNzT2JqZWN0ICoqc2Vz
c2lvbiA9IChJV2JlbUNsYXNzT2JqZWN0ICoqKXNlc3Npb25oYW5kbGU7DQo+IC0gICAgWHNMb2co
IlVud2F0Y2ggJXAiLHdhdGNoaGFuZGxlKTsNCj4gLSAgICBXYXRjaFNpbmsgKiBzaW5rID0gKFdh
dGNoU2luayAqKXdhdGNoaGFuZGxlOw0KPiAtDQo+IC0gICAgVkFSSUFOVCB2cGF0aDsNCj4gLSAg
ICBpZiAoc2V0VmFyaWFudFN0cmluZygmdnBhdGgsIHNpbmstPnBhdGgpKQ0KPiAtICAgICAgICBn
b3RvIHNldHZwYXRoOw0KPiAtDQo+IC0gICAgSVdiZW1DbGFzc09iamVjdCAqb3V0TWV0aG9kSW5z
dDsNCj4gLSAgICBJV2JlbUNsYXNzT2JqZWN0ICppbk1ldGhvZEluc3QgPSBzZXNzaW9uTWV0aG9k
U3RhcnQoIHdtaSwNCj4gTCJSZW1vdmVXYXRjaCIpOw0KPiAtICAgIGlmICghaW5NZXRob2RJbnN0
KQ0KPiAtICAgICAgICBnb3RvIHNlc3Npb25zdGFydDsNCj4gLQ0KPiAtICAgIGluTWV0aG9kSW5z
dC0+UHV0KEwiUGF0aE5hbWUiLDAsJnZwYXRoLDApOw0KPiAtICAgIGlmIEZBSUxFRChtZXRob2RF
eGVjKHdtaSwqc2Vzc2lvbiwgTCJSZW1vdmVXYXRjaCIsIGluTWV0aG9kSW5zdCwNCj4gJm91dE1l
dGhvZEluc3QpKQ0KPiAtICAgICAgICBnb3RvIG1ldGhvZGV4ZWNmYWlsZWQ7DQo+IC0gICAgaWYg
KG91dE1ldGhvZEluc3Q9PU5VTEwpDQo+IC0gICAgICAgIGdvdG8gc2Vzc2lvbmV4ZWNmYWlsZWQ7
DQo+IC0NCj4gLSAgICBvdXRNZXRob2RJbnN0LT5SZWxlYXNlKCk7DQo+IC0NCj4gLW1ldGhvZGV4
ZWNmYWlsZWQ6DQo+IC1zZXNzaW9uZXhlY2ZhaWxlZDoNCj4gLSAgICBpbk1ldGhvZEluc3QtPlJl
bGVhc2UoKTsNCj4gLQ0KPiAtc2Vzc2lvbnN0YXJ0Og0KPiAtc2V0dnBhdGg6DQo+IC0gICAgc2lu
ay0+UmVsZWFzZSgpOw0KPiAtICAgIHJldHVybiB0cnVlOw0KPiAtfQ0KPiAtDQo+IC1CT09MIFdt
aVNlc3Npb25TdGFydChXTUlBY2Nlc3NvcioqIHdtaSwgIHZvaWQgKipzZXNzaW9uaGFuZGxlLCBj
b25zdA0KPiBjaGFyKiBzZXNzaW9ubmFtZSkNCj4gLXsNCj4gLSAgICBJV2JlbUNsYXNzT2JqZWN0
ICoqc2Vzc2lvbiA9IChJV2JlbUNsYXNzT2JqZWN0ICoqKXNlc3Npb25oYW5kbGU7DQo+IC0gICAg
aWYgKCgqc2Vzc2lvbiA9IG9wZW5TZXNzaW9uKHdtaSwgc2Vzc2lvbm5hbWUpKSA9PSBOVUxMKSB7
DQo+IC0gICAgICAgIHJldHVybiBmYWxzZTsNCj4gLSAgICB9DQo+IC0gICAgcmV0dXJuIHRydWU7
DQo+IC19DQo+IC0NCj4gLQ0KPiAtQk9PTCBXbWlTZXNzaW9uRW5kKFdNSUFjY2Vzc29yKiogd21p
LCAgdm9pZCAqc2Vzc2lvbmhhbmRsZSkNCj4gLXsNCj4gLSAgICBIUkVTVUxUIGhyOw0KPiAtICAg
IEFTU0VSVCgqd21pICE9IE5VTEwpOw0KPiAtDQo+IC0gICAgSVdiZW1DbGFzc09iamVjdCAqc2Vz
c2lvbiA9IChJV2JlbUNsYXNzT2JqZWN0ICopc2Vzc2lvbmhhbmRsZTsNCj4gLSAgICBpZiAoc2Vz
c2lvbj09TlVMTCkgew0KPiAtICAgICAgICByZXR1cm4gZmFsc2U7DQo+IC0gICAgfQ0KPiAtICAg
IGhyID0gbWV0aG9kRXhlYyh3bWksIHNlc3Npb24sIEwiRW5kU2Vzc2lvbiIsIE5VTEwsTlVMTCk7
DQo+IC0gICAgaWYgRkFJTEVEKGhyKQ0KPiAtICAgICAgICBnb3RvIGV4ZWNtZXRob2RmYWlsZWQ7
DQo+IC0gICAgc2Vzc2lvbi0+UmVsZWFzZSgpOw0KPiAtICAgIHJldHVybiB0cnVlOw0KPiAtDQo+
IC1leGVjbWV0aG9kZmFpbGVkOg0KPiAtICAgIHJldHVybiBmYWxzZTsNCj4gLQ0KPiAtfQ0KPiAt
DQo+IC12b2lkICpXbWlTZXNzaW9uV2F0Y2goV01JQWNjZXNzb3IqKiB3bWksICB2b2lkICoqc2Vz
c2lvbmhhbmRsZSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpwYXRoLCBI
QU5ETEUgZXZlbnQsIEhBTkRMRSBlcnJvcmV2ZW50KSB7DQo+IC0NCj4gLSAgICBIUkVTVUxUIGhy
Ow0KPiAtDQo+IC0gICAgSVdiZW1DbGFzc09iamVjdCAqKnNlc3Npb24gPSAoSVdiZW1DbGFzc09i
amVjdCAqKilzZXNzaW9uaGFuZGxlOw0KPiAtDQo+IC0gICAgQVNTRVJUKCgqd21pKSAhPSBOVUxM
KTsNCj4gLSAgICBBU1NFUlQoKCpzZXNzaW9uaGFuZGxlKSAhPSBOVUxMKTsNCj4gLQ0KPiAtICAg
IFdhdGNoU2luayAqIHNpbmsgPSBuZXcgV2F0Y2hTaW5rKGV2ZW50LCBlcnJvcmV2ZW50LCBwYXRo
KTsNCj4gLSAgICBCU1RSIHF1ZXJ5PWZvcm1hdEJzdHIoIlNFTEVDVCAqIGZyb20gIiBPQkpFQ1Rf
TkFNRV9BKFdhdGNoRXZlbnQpDQo+ICIgV0hFUkUgRXZlbnRJZD1cIiVzXCIiLCBwYXRoKTsNCj4g
LSAgICBpZiAocXVlcnkgPT0gTlVMTCkgew0KPiAtICAgICAgICBnb3RvIGZvcm1hdHN0cmluZ2Zh
aWxlZDsNCj4gLSAgICB9DQo+IC0NCj4gLSAgICBociA9ICgqd21pKS0+bXBYU1N2Yy0+RXhlY05v
dGlmaWNhdGlvblF1ZXJ5QXN5bmMoTCJXUUwiLA0KPiBxdWVyeSwwLE5VTEwsIHNpbmspOw0KPiAt
ICAgIGlmIChGQUlMRUQoaHIpKXsNCj4gLSAgICAgICAgKndtaSA9IE5VTEw7DQo+IC0gICAgICAg
IGdvdG8gd21pZmFpbGVkOw0KPiAtICAgIH0NCj4gLQ0KPiAtICAgIFZBUklBTlQgdnBhdGg7DQo+
IC0gICAgaWYgKHNldFZhcmlhbnRTdHJpbmcoJnZwYXRoLCBwYXRoKSl7DQo+IC0gICAgICAgIGdv
dG8gc2V0dnBhdGg7DQo+IC0gICAgfQ0KPiAtDQo+IC0NCj4gLSAgICBJV2JlbUNsYXNzT2JqZWN0
ICppbk1ldGhvZEluc3QgPSBzZXNzaW9uTWV0aG9kU3RhcnQoIHdtaSwNCj4gTCJTZXRXYXRjaCIp
Ow0KPiAtICAgIGlmICghaW5NZXRob2RJbnN0KQ0KPiAtICAgICAgICBnb3RvIHNlc3Npb25zdGFy
dDsNCj4gLQ0KPiAtICAgIGhyID0gaW5NZXRob2RJbnN0LT5QdXQoTCJQYXRoTmFtZSIsMCwmdnBh
dGgsMCk7DQo+IC0gICAgaWYgKEZBSUxFRChocikpDQo+IC0gICAgICAgIGdvdG8gbWV0aG9kcHV0
ZmFpbGVkOw0KPiAtDQo+IC0gICAgaHIgPSBtZXRob2RFeGVjKHdtaSwqc2Vzc2lvbiwgTCJTZXRX
YXRjaCIsIGluTWV0aG9kSW5zdCwgTlVMTCk7DQo+IC0gICAgaWYgKEZBSUxFRChocikpDQo+IC0g
ICAgICAgIGdvdG8gbWV0aG9kZXhlY2ZhaWxlZDsNCj4gLQ0KPiAtICAgIFZhcmlhbnRDbGVhcigm
dnBhdGgpOw0KPiAtDQo+IC0gICAgU3lzRnJlZVN0cmluZyhxdWVyeSk7DQo+IC0NCj4gLSAgICBy
ZXR1cm4gc2luazsNCj4gLQ0KPiAtDQo+IC1tZXRob2RleGVjZmFpbGVkOg0KPiAtICAgIE91dHB1
dERlYnVnU3RyaW5nKF9fRlVOQ1RJT05fXyAiIDogbWV0aG9kZXhlY2ZhaWxlZFxuIik7DQo+IC1t
ZXRob2RwdXRmYWlsZWQ6DQo+IC0gICAgT3V0cHV0RGVidWdTdHJpbmcoX19GVU5DVElPTl9fICIg
OiBtZXRob2RwdXRmYWlsZWRcbiIpOw0KPiAtICAgIGluTWV0aG9kSW5zdC0+UmVsZWFzZSgpOw0K
PiAtc2Vzc2lvbnN0YXJ0Og0KPiAtICAgIE91dHB1dERlYnVnU3RyaW5nKF9fRlVOQ1RJT05fXyAi
IDogc2Vzc2lvbnN0YXJ0XG4iKTsNCj4gLSAgICBWYXJpYW50Q2xlYXIoJnZwYXRoKTsNCj4gLXNl
dHZwYXRoOg0KPiAtICAgIE91dHB1dERlYnVnU3RyaW5nKF9fRlVOQ1RJT05fXyAiIDogc2V0dnBh
dGhcbiIpOw0KPiAtd21pZmFpbGVkOg0KPiAtICAgIFN5c0ZyZWVTdHJpbmcocXVlcnkpOw0KPiAt
Zm9ybWF0c3RyaW5nZmFpbGVkOg0KPiAtICAgIE91dHB1dERlYnVnU3RyaW5nKF9fRlVOQ1RJT05f
XyAiIDogZm9ybWF0c3RyaW5nZmFpbGVkXG4iKTsNCj4gLSAgICBkZWxldGUgc2luazsNCj4gLSAg
ICByZXR1cm4gTlVMTDsNCj4gLX0NCj4gLQ0KPiAtdm9pZCAqV21pVW5zdXNwZW5kZWRFdmVudFdh
dGNoKFdNSUFjY2Vzc29yICoqd21pLCBIQU5ETEUgZXZlbnQsDQo+IEhBTkRMRSBlcnJvcmV2ZW50
KQ0KPiAtew0KPiAtICAgIEhSRVNVTFQgaHI7DQo+IC0NCj4gLSAgICBBU1NFUlQoKndtaSAhPSBO
VUxMKTsNCj4gLQ0KPiAtICAgIFdhdGNoU2luayAqIHNpbmsgPSBuZXcgV2F0Y2hTaW5rKGV2ZW50
LCBlcnJvcmV2ZW50LCBOVUxMKTsNCj4gLSAgICBCU1RSIHF1ZXJ5PWZvcm1hdEJzdHIoIlNFTEVD
VCAqIGZyb20gIg0KPiBPQkpFQ1RfTkFNRV9BKFVuc3VzcGVuZGVkRXZlbnQpKTsNCj4gLSAgICBp
ZiAocXVlcnk9PU5VTEwpIHsNCj4gLSAgICAgICAgZ290byBmb3JtYXRzdHJpbmdmYWlsZWQ7DQo+
IC0gICAgfQ0KPiAtDQo+IC0gICAgaHIgPSAoKndtaSktPm1wWFNTdmMtPkV4ZWNOb3RpZmljYXRp
b25RdWVyeUFzeW5jKEwiV1FMIiwNCj4gcXVlcnksMCxOVUxMLCBzaW5rKTsNCj4gLSAgICBpZiBG
QUlMRUQoaHIpDQo+IC0gICAgICAgIGdvdG8gYXN5bmNxdWVyeWZhaWxlZDsNCj4gLQ0KPiAtICAg
IFN5c0ZyZWVTdHJpbmcocXVlcnkpOw0KPiAtICAgIHJldHVybiBzaW5rOw0KPiAtDQo+IC1hc3lu
Y3F1ZXJ5ZmFpbGVkOg0KPiAtICAgIFN5c0ZyZWVTdHJpbmcocXVlcnkpOw0KPiAtZm9ybWF0c3Ry
aW5nZmFpbGVkOg0KPiAtICAgIGRlbGV0ZSBzaW5rOw0KPiAtICAgIHJldHVybiBOVUxMOw0KPiAt
fQ0KPiAtDQo+IGRpZmYgLS1naXQgYS9zcmMvd2luMzJzdHViYWdlbnQvV21pQWNjZXNzb3IuaA0K
PiBiL3NyYy93aW4zMnN0dWJhZ2VudC9XbWlBY2Nlc3Nvci5oDQo+IGRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NA0KPiBpbmRleCBlMzdlZjcxLi4wMDAwMDAwDQo+IC0tLSBhL3NyYy93aW4zMnN0dWJh
Z2VudC9XbWlBY2Nlc3Nvci5oDQo+ICsrKyAvZGV2L251bGwNCj4gQEAgLTEsODggKzAsMCBAQA0K
PiAtLyogQ29weXJpZ2h0IChjKSBDaXRyaXggU3lzdGVtcyBJbmMuDQo+IC0gKiBBbGwgcmlnaHRz
IHJlc2VydmVkLg0KPiAtICoNCj4gLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsDQo+IC0gKiB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkDQo+IC0gKiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUgbWV0Og0KPiAtICoNCj4gLSAqICogICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlDQo+IC0gKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZQ0KPiAtICogICAgIGZvbGxvd2luZyBkaXNjbGFp
bWVyLg0KPiAtICogKiAgIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUNCj4gLSAqICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlDQo+IC0gKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyDQo+IC0gKiAgICAgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4NCj4gLSAqDQo+IC0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQNCj4gLSAqIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsDQo+IC0gKiBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRg0KPiAt
ICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUNCj4gLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9M
REVSIE9SDQo+IC0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwNCj4gLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsDQo+IC0gKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1INCj4gLSAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MNCj4gLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLA0KPiAtICogV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HDQo+IC0g
KiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFDQo+IC0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GDQo+IC0gKiBTVUNIIERBTUFHRS4NCj4gLSAqLw0KPiAtDQo+IC0jaWZuZGVmIF9X
TUlBQ0NFU1NPUl9IDQo+IC0jZGVmaW5lIF9XTUlBQ0NFU1NPUl9IDQo+IC0NCj4gLSNpbmNsdWRl
IDxXYmVtaWRsLmg+DQo+IC0jaW5jbHVkZSA8bGlzdD4NCj4gLSNpbmNsdWRlIDx2ZWN0b3I+DQo+
IC0jaW5jbHVkZSA8bWFwPg0KPiAtI2luY2x1ZGUgPHN0cmluZz4NCj4gLQ0KPiAtI2luY2x1ZGUg
IlhTQWNjZXNzb3IuaCINCj4gLQ0KPiAtdXNpbmcgbmFtZXNwYWNlIHN0ZDsNCj4gLQ0KPiAtdHlw
ZWRlZiB1bnNpZ25lZCBfX2ludDY0IHVpbnQ2NF90Ow0KPiAtDQo+IC1zdHJ1Y3QgV01JQWNjZXNz
b3I7DQo+IC0NCj4gLWV4dGVybiBzdHJ1Y3QgV01JQWNjZXNzb3IgKndtaTsNCj4gLQ0KPiAtZXh0
ZXJuIExPTkcgd21pY291bnQ7DQo+IC1CT09MIEluaXRDb20odm9pZCk7DQo+IC12b2lkIFJlbGVh
c2VDb20odm9pZCk7DQo+IC1CT09MIENvbm5lY3RUb1dNSSh2b2lkKTsNCj4gLXZvaWQgUmVsZWFz
ZVdNSUFjY2Vzc29yKHN0cnVjdCBXTUlBY2Nlc3NvciAqKik7DQo+IC0NCj4gLXZvaWQgVXBkYXRl
UHJvY2Vzc0xpc3RJblN0b3JlKFdNSUFjY2Vzc29yICoqd21pKTsNCj4gLQ0KPiAtaW50IFdtaVNl
c3Npb25TZXRFbnRyeShXTUlBY2Nlc3NvcioqIHdtaSwgIHZvaWQgKipzZXNzaW9uaGFuZGxlLA0K
PiAtICAgICAgICAgICAgICBjb25zdCBjaGFyKnBhdGgsIGNvbnN0IGNoYXIgKiB2YWx1ZSk7DQo+
IC0NCj4gLWludCBXbWlTZXNzaW9uU2V0RW50cnkoV01JQWNjZXNzb3IqKiB3bWksICB2b2lkICoq
c2Vzc2lvbmhhbmRsZSwNCj4gLSAgICAgICAgICAgICAgY29uc3QgY2hhcipwYXRoLCBjb25zdCBj
aGFyICogdmFsdWUsIHNpemVfdCBsZW4pOw0KPiAtY2hhciogV21pU2Vzc2lvbkdldEVudHJ5KFdN
SUFjY2Vzc29yKiogd21pLCB2b2lkICoqc2Vzc2lvbmhhbmRsZSwNCj4gLSAgICAgICAgICAgICAg
Y29uc3QgY2hhciAqIHBhdGgsIHNpemVfdCogbGVuKSA7DQo+IC0NCj4gLXZvaWQgKldtaVNlc3Np
b25XYXRjaChXTUlBY2Nlc3NvcioqIHdtaSwgIHZvaWQgKipzZXNzaW9uaGFuZGxlLA0KPiAtICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnBhdGgsIEhBTkRMRSBldmVudCwgSEFORExF
IGVycm9yZXZlbnQpOw0KPiAtQk9PTCBXbWlTZXNzaW9uVW53YXRjaChXTUlBY2Nlc3NvcioqIHdt
aSwgIHZvaWQgKipzZXNzaW9uaGFuZGxlLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgIHZv
aWQgKndhdGNoaGFuZGxlKTsNCj4gLQ0KPiAtaW50IFdtaVNlc3Npb25SZW1vdmVFbnRyeShXTUlB
Y2Nlc3NvcioqIHdtaSwgIHZvaWQgKipzZXNzaW9uaGFuZGxlLA0KPiAtICAgICAgICAgICAgICBj
b25zdCBjaGFyKnBhdGgpOw0KPiAtDQo+IC1jaGFyICoqV21pU2Vzc2lvbkdldENoaWxkcmVuKFdN
SUFjY2Vzc29yKiogd21pLCB2b2lkDQo+ICoqc2Vzc2lvbmhhbmRsZSwNCj4gLSAgICAgICAgICAg
ICAgY29uc3QgY2hhciAqIHBhdGgsIHVuc2lnbmVkICpudW1lbnRyaWVzKTsNCj4gLQ0KPiAtDQo+
IC12b2lkICpXbWlVbnN1c3BlbmRlZEV2ZW50V2F0Y2goV01JQWNjZXNzb3IgKip3bWksIEhBTkRM
RSBldmVudCwNCj4gSEFORExFIGVycm9yZXZlbnQpOw0KPiAtDQo+IC1pbnQgV21pU2Vzc2lvblRy
YW5zYWN0aW9uQWJvcnQoV01JQWNjZXNzb3IqKiB3bWksICB2b2lkDQo+ICoqc2Vzc2lvbmhhbmRs
ZSk7DQo+IC1pbnQgV21pU2Vzc2lvblRyYW5zYWN0aW9uQ29tbWl0KFdNSUFjY2Vzc29yKiogd21p
LCAgdm9pZA0KPiAqKnNlc3Npb25oYW5kbGUpOw0KPiAtaW50IFdtaVNlc3Npb25UcmFuc2FjdGlv
blN0YXJ0KFdNSUFjY2Vzc29yKiogd21pLCAgdm9pZA0KPiAqKnNlc3Npb25oYW5kbGUpOw0KPiAt
Qk9PTCBXbWlTZXNzaW9uU3RhcnQoV01JQWNjZXNzb3IqKiB3bWksICB2b2lkICoqc2Vzc2lvbmhh
bmRsZSwgY29uc3QNCj4gY2hhciAqc2Vzc2lvbm5hbWUpOw0KPiAtQk9PTCBXbWlTZXNzaW9uRW5k
KFdNSUFjY2Vzc29yKiogd21pLCAgdm9pZCAqc2Vzc2lvbmhhbmRsZSk7DQo+IC1GSUxFVElNRSBX
bWlHZXRYZW5UaW1lKFdNSUFjY2Vzc29yICoqd21pKTsNCj4gLXZvaWQgV21pU2Vzc2lvbkxvZyhX
TUlBY2Nlc3NvcioqIHdtaSwgIHZvaWQgKipzZXNzaW9uaGFuZGxlLGNvbnN0DQo+IGNoYXIgKmZt
dCwgdmFfbGlzdCBhcmdzKTsNCj4gLSNlbmRpZg0KPiBkaWZmIC0tZ2l0IGEvc3JjL3dpbjMyc3R1
YmFnZW50L1hTQWNjZXNzb3IuY3BwDQo+IGIvc3JjL3dpbjMyc3R1YmFnZW50L1hTQWNjZXNzb3Iu
Y3BwDQo+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCBjNjBmYjhiLi4wMDAwMDAw
DQo+IC0tLSBhL3NyYy93aW4zMnN0dWJhZ2VudC9YU0FjY2Vzc29yLmNwcA0KPiArKysgL2Rldi9u
dWxsDQo+IEBAIC0xLDIzMCArMCwwIEBADQo+IC0vKiBDb3B5cmlnaHQgKGMpIENpdHJpeCBTeXN0
ZW1zIEluYy4NCj4gLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+IC0gKg0KPiAtICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcywNCj4gLSAqIHdpdGgg
b3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQNCj4gLSAqIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6DQo+IC0gKg0KPiAtICogKiAgIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUNCj4gLSAq
ICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlDQo+
IC0gKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIuDQo+IC0gKiAqICAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQ0KPiAtICogICAgIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUNCj4gLSAqICAgICBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXINCj4g
LSAqICAgICBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KPiAtICoN
Cj4gLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORA0KPiAtICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywNCj4gLSAqIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GDQo+IC0gKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQ0KPiAtICogRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1INCj4gLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLA0KPiAtICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywNCj4gLSAq
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUg0K
PiAtICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
Uw0KPiAtICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksDQo+IC0gKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcNCj4gLSAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UNCj4gLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YNCj4gLSAqIFNVQ0ggREFNQUdFLg0K
PiAtICovDQo+IC0NCj4gLSNpbmNsdWRlIDx3aW5kb3dzLmg+DQo+IC0jaW5jbHVkZSAic3RkYWZ4
LmgiDQo+IC0jaW5jbHVkZSAiWFNBY2Nlc3Nvci5oIg0KPiAtI2luY2x1ZGUgIldNSUFjY2Vzc29y
LmgiDQo+IC0NCj4gLXN0YXRpYyBfX2RlY2xzcGVjKHRocmVhZCkgdm9pZCAqV21pU2Vzc2lvbkhh
bmRsZSA9IE5VTEw7DQo+IC0NCj4gLXN0YXRpYyBMT05HIHZvbGF0aWxlIHRocmVhZGNvdW50ID0g
MDsNCj4gLXN0YXRpYyBfX2RlY2xzcGVjKHRocmVhZCkgTE9ORyBsb2NhbHRocmVhZGNvdW50ID0g
MDsNCj4gLXN0YXRpYyBfX2RlY2xzcGVjKHRocmVhZCkgTE9ORyBsb2NhbHdtaWNvdW50ID0gMDsN
Cj4gLQ0KPiAtc3RhdGljIGxvbmcgdXBkYXRlX2NudD0weEYwMDAwMDAwOw0KPiAtI2RlZmluZSBY
RU5TVE9SRV9NQUdJQyAweDdlNmVjMTIzDQo+IC0NCj4gLXZvaWQgKlhzQWxsb2Moc2l6ZV90IHNp
emUpIHsNCj4gLSAgICB2b2lkICpidWY7DQo+IC0NCj4gLSAgICBidWYgPSBtYWxsb2Moc2l6ZSAr
IDgpOw0KPiAtICAgIGlmICghYnVmKSB7DQo+IC0gICAgICAgIFNldExhc3RFcnJvcihFUlJPUl9O
T1RfRU5PVUdIX01FTU9SWSk7DQo+IC0gICAgICAgIHJldHVybiBOVUxMOw0KPiAtICAgIH0NCj4g
LSAgICBtZW1zZXQoYnVmLCAwLCBzaXplICsgOCk7DQo+IC0gICAgKih1bnNpZ25lZCAqKWJ1ZiA9
IFhFTlNUT1JFX01BR0lDOw0KPiAtICAgIHJldHVybiAodm9pZCAqKSgoVUxPTkdfUFRSKWJ1ZiAr
IDgpOw0KPiAtfQ0KPiAtDQo+IC12b2lkIFhzRnJlZShjb25zdCB2b2lkICpidWYpIHsNCj4gLSAg
ICB2b2lkICpvcmlnX2J1ZjsNCj4gLQ0KPiAtICAgIGlmICghYnVmKQ0KPiAtICAgICAgICByZXR1
cm47DQo+IC0gICAgb3JpZ19idWYgPSAodm9pZCAqKSgoVUxPTkdfUFRSKWJ1ZiAtIDgpOw0KPiAt
ICAgIGlmICgqKHVuc2lnbmVkICopb3JpZ19idWYgIT0gWEVOU1RPUkVfTUFHSUMpIHsNCj4gLSAg
ICAgICAgT3V0cHV0RGVidWdTdHJpbmcoIlhzRnJlZSgpIGludm9rZWQgb24gYmFkIHBvaW50ZXJc
biIpOw0KPiAtICAgICAgICBEZWJ1Z0JyZWFrKCk7DQo+IC0gICAgfQ0KPiAtICAgIGZyZWUob3Jp
Z19idWYpOw0KPiAtfQ0KPiAtDQo+IC12b2lkIEdldFhlblRpbWUoRklMRVRJTUUgKm5vdykNCj4g
LXsNCj4gLSAgICAqbm93ID0gV21pR2V0WGVuVGltZSgmd21pKTsNCj4gLX0NCj4gLQ0KPiAtDQo+
IC1pbnQgTGlzdGVuU3VzcGVuZChIQU5ETEUgZXZlbnQsIEhBTkRMRSBlcnJvcmV2ZW50KQ0KPiAt
ew0KPiAtICAgIGlmICghV21pVW5zdXNwZW5kZWRFdmVudFdhdGNoKCZ3bWksIGV2ZW50LCBlcnJv
cmV2ZW50KSkNCj4gLSAgICAgICAgcmV0dXJuIC0xOw0KPiAtICAgIGVsc2UNCj4gLSAgICAgICAg
cmV0dXJuIDA7DQo+IC19DQo+IC0NCj4gLUJPT0wgSW5pdFhTQWNjZXNzb3IoKQ0KPiAtew0KPiAt
ICAgIE91dHB1dERlYnVnU3RyaW5nKCJYU0FjY2Vzc29yXG4iKTsNCj4gLSAgICBpZiAod21pY291
bnQgIT0gbG9jYWx3bWljb3VudCkgew0KPiAtDQo+IC0gICAgICAgIGlmIChsb2NhbHRocmVhZGNv
dW50ID09IDApIHsNCj4gLSAgICAgICAgICAgIGxvY2FsdGhyZWFkY291bnQgPSBJbnRlcmxvY2tl
ZEluY3JlbWVudCgmdGhyZWFkY291bnQpOw0KPiAtICAgICAgICB9DQo+IC0gICAgICAgIGNoYXIg
d21pbmFtZVsxMl07DQo+IC0gICAgICAgIF9zbnByaW50Zih3bWluYW1lLCAxMiwgIlhTJXgiLCBs
b2NhbHRocmVhZGNvdW50KTsNCj4gLSAgICAgICAgaWYgKFdtaVNlc3Npb25TdGFydCgmd21pLCAm
V21pU2Vzc2lvbkhhbmRsZSwgd21pbmFtZSkpIHsNCj4gLSAgICAgICAgICAgIGxvY2Fsd21pY291
bnQgPSB3bWljb3VudDsNCj4gLSAgICAgICAgICAgIHJldHVybiB0cnVlOw0KPiAtICAgICAgICB9
DQo+IC0gICAgICAgIE91dHB1dERlYnVnU3RyaW5nKCJYU0FjY2Vzc29yIEZhaWxlZFxuIik7DQo+
IC0gICAgICAgIHJldHVybiBmYWxzZTsNCj4gLSAgICB9DQo+IC0gICAgcmV0dXJuIHRydWU7DQo+
IC19DQo+IC0NCj4gLXZvaWQgWHNMb2coY29uc3QgY2hhciAqZm10LCAuLi4pDQo+IC17DQo+IC0g
ICAgdmFfbGlzdCBhcmdzOw0KPiAtDQo+IC0gICAgdmFfc3RhcnQoYXJncywgZm10KTsNCj4gLSAg
ICBXbWlTZXNzaW9uTG9nKCZ3bWksICZXbWlTZXNzaW9uSGFuZGxlLCBmbXQsIGFyZ3MpOw0KPiAt
ICAgIHZhX2VuZChhcmdzKTsNCj4gLX0NCj4gLQ0KPiAtDQo+IC1CT09MIFNodXRkb3duWFNBY2Nl
c3Nvcih2b2lkKQ0KPiAtew0KPiAtICAgIGlmICh3bWkgPT0gTlVMTCkgew0KPiAtICAgICAgICBy
ZXR1cm4gZmFsc2U7DQo+IC0gICAgfQ0KPiAtICAgIGlmIChXbWlTZXNzaW9uSGFuZGxlID09IE5V
TEwpIHsNCj4gLSAgICAgICAgcmV0dXJuIGZhbHNlOw0KPiAtICAgIH0NCj4gLSAgICByZXR1cm4g
V21pU2Vzc2lvbkVuZCgmd21pLCBXbWlTZXNzaW9uSGFuZGxlKTsNCj4gLQ0KPiAtfQ0KPiAtDQo+
IC1pbnQgWGVuc3RvcmVQcmludGYoY29uc3QgY2hhciAqcGF0aCwgY29uc3QgY2hhciAqZm10LCAu
Li4pDQo+IC17DQo+IC0gICAgdmFfbGlzdCBsOw0KPiAtICAgIGNoYXIgYnVmWzQwOTZdOw0KPiAt
ICAgIGludCBjbnQ7DQo+IC0NCj4gLSAgICB2YV9zdGFydChsLCBmbXQpOw0KPiAtICAgIGNudCA9
IF92c25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgZm10LCBsKTsNCj4gLSAgICB2YV9lbmQobCk7
DQo+IC0gICAgaWYgKGNudCA8IDApIHsNCj4gLSAgICAgICAgREJHUFJJTlQgKCgiQ2Fubm90IGZv
cm1hdCBkYXRhIGZvciBYZW5zdG9yZVByaW50ZiEiKSk7DQo+IC0gICAgICAgIHJldHVybiAtMTsN
Cj4gLSAgICB9DQo+IC0gICAgT3V0cHV0RGVidWdTdHJpbmcoYnVmKTsNCj4gLSAgICAvKiBOb3cg
aGF2ZSB0aGUgdGhpbmcgd2UncmUgdHJ5aW5nIHRvIHdyaXRlLiAqLw0KPiAtICAgIHJldHVybiBX
bWlTZXNzaW9uU2V0RW50cnkoJndtaSwgJldtaVNlc3Npb25IYW5kbGUsIHBhdGgsIGJ1Zik7DQo+
IC19DQo+IC0NCj4gLUJPT0wgWGVuc3RvcmVLaWNrWGFwaSgpDQo+IC17DQo+IC0gICAgLyogTmV3
IHByb3RvY29sICovDQo+IC0gICAgaWYgKFhlbnN0b3JlUHJpbnRmKCJkYXRhL3VwZGF0ZV9jbnQi
LCAiJUk2NGQiLCB1cGRhdGVfY250KSl7DQo+IC0gICAgICAgIFhzTG9nKCJOZXcga2ljayBmYWls
ZWQgIik7DQo+IC0gICAgICAgIHJldHVybiBmYWxzZTsNCj4gLSAgICB9DQo+IC0gICAgLyogT2xk
IHByb3RvY29sICovDQo+IC0gICAgaWYgKFdtaVNlc3Npb25TZXRFbnRyeSgmd21pLCAmV21pU2Vz
c2lvbkhhbmRsZSwgImRhdGEvdXBkYXRlZCIsDQo+ICIxIikpew0KPiAtICAgICAgICBYc0xvZygi
T2xkIGtpY2sgZmFpbGVkIik7DQo+IC0gICAgICAgIHJldHVybiBmYWxzZTsNCj4gLSAgICB9DQo+
IC0gICAgdXBkYXRlX2NudCsrOw0KPiAtICAgIHJldHVybiB0cnVlOw0KPiAtfQ0KPiAtDQo+IC0N
Cj4gLWludA0KPiAtWGVuc3RvcmVSZW1vdmUoY29uc3QgY2hhciAqcGF0aCkNCj4gLXsNCj4gLSAg
ICBpZiAod21pID09IE5VTEwpDQo+IC0gICAgICAgIHJldHVybiAtMTsNCj4gLQ0KPiAtICAgIGlm
IChXbWlTZXNzaW9uSGFuZGxlID09IE5VTEwpDQo+IC0gICAgICAgIHJldHVybiAtMTsNCj4gLQ0K
PiAtICAgIGlmIChXbWlTZXNzaW9uUmVtb3ZlRW50cnkoJndtaSwgJldtaVNlc3Npb25IYW5kbGUs
IHBhdGgpKQ0KPiAtICAgICAgICByZXR1cm4gLTE7DQo+IC0gICAgZWxzZQ0KPiAtICAgICAgICBy
ZXR1cm4gMDsNCj4gLX0NCj4gLQ0KPiAtc3NpemVfdA0KPiAtWGVuc3RvcmVSZWFkKGNvbnN0IGNo
YXIqIHBhdGgsIGNoYXIqKiB2YWx1ZSkNCj4gLXsNCj4gLSAgICBzaXplX3QgbGVuOw0KPiAtICAg
ICp2YWx1ZSA9V21pU2Vzc2lvbkdldEVudHJ5KCZ3bWksICZXbWlTZXNzaW9uSGFuZGxlLCBwYXRo
LCAmbGVuKTsNCj4gLSAgICBpZiAoKnZhbHVlKQ0KPiAtICAgICAgICByZXR1cm4gKHNzaXplX3Qp
bGVuOw0KPiAtICAgIGVsc2UNCj4gLSAgICAgICAgcmV0dXJuIC0xOw0KPiAtfQ0KPiAtDQo+IC0N
Cj4gLWJvb2wgWGVuc3RvcmVSZWFkRHdvcmQoY29uc3QgY2hhciAqcGF0aCwgRFdPUkQgKnZhbHVl
KSB7DQo+IC0gICAgY2hhciogYnVmZmVyOw0KPiAtICAgIHNzaXplX3QgbGVuOw0KPiAtICAgIGxl
biA9IFhlbnN0b3JlUmVhZChwYXRoLCAmYnVmZmVyKTsNCj4gLSAgICBpZiAobGVuIDw9IDApIHsN
Cj4gLSAgICAgICAgcmV0dXJuIGZhbHNlOw0KPiAtICAgIH0NCj4gLSAgICAqdmFsdWUgPSBhdG9p
KGJ1ZmZlcik7DQo+IC0NCj4gLSAgICBYc0ZyZWUoYnVmZmVyKTsNCj4gLQ0KPiAtICAgIHJldHVy
biB0cnVlOw0KPiAtfQ0KPiAtDQo+IC12b2lkICoNCj4gLVhlbnN0b3JlV2F0Y2goY29uc3QgY2hh
ciAqcGF0aCwgSEFORExFIGV2ZW50LCBIQU5ETEUgZXJyb3JldmVudCkNCj4gLXsNCj4gLQ0KPiAt
ICAgIGlmICh3bWkgPT0gTlVMTCkgew0KPiAtICAgICAgICBPdXRwdXREZWJ1Z1N0cmluZygiV01J
IGlzIG51bGxcbiIpOw0KPiAtICAgICAgICByZXR1cm4gTlVMTDsNCj4gLSAgICB9DQo+IC0gICAg
aWYgKFdtaVNlc3Npb25IYW5kbGUgPT0gTlVMTCkgew0KPiAtICAgICAgICBPdXRwdXREZWJ1Z1N0
cmluZygiU2Vzc2lvbiBpcyBudWxsXG4iKTsNCj4gLSAgICAgICAgcmV0dXJuIE5VTEw7DQo+IC0g
ICAgfQ0KPiAtICAgIHJldHVybiBXbWlTZXNzaW9uV2F0Y2goJndtaSwgJldtaVNlc3Npb25IYW5k
bGUsIHBhdGgsIGV2ZW50LA0KPiBlcnJvcmV2ZW50KTsNCj4gLX0NCj4gLQ0KPiAtQk9PTA0KPiAt
WGVuc3RvcmVVbndhdGNoKHZvaWQgKndhdGNoKQ0KPiAtew0KPiAtICAgIHJldHVybiBXbWlTZXNz
aW9uVW53YXRjaCgmd21pLCAmV21pU2Vzc2lvbkhhbmRsZSwgd2F0Y2gpOw0KPiAtfQ0KPiAtDQo+
IC12b2lkDQo+IC1YZW5zdG9yZUZyZWUodm9pZCAqdG9mcmVlKQ0KPiAtew0KPiAtICAgIHJldHVy
biBYc0ZyZWUodG9mcmVlKTsNCj4gLX0NCj4gLQ0KPiBkaWZmIC0tZ2l0IGEvc3JjL3dpbjMyc3R1
YmFnZW50L1hTQWNjZXNzb3IuaA0KPiBiL3NyYy93aW4zMnN0dWJhZ2VudC9YU0FjY2Vzc29yLmgN
Cj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDJlZDQxYjAuLjAwMDAwMDANCj4g
LS0tIGEvc3JjL3dpbjMyc3R1YmFnZW50L1hTQWNjZXNzb3IuaA0KPiArKysgL2Rldi9udWxsDQo+
IEBAIC0xLDEyNiArMCwwIEBADQo+IC0vKiBDb3B5cmlnaHQgKGMpIENpdHJpeCBTeXN0ZW1zIElu
Yy4NCj4gLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+IC0gKg0KPiAtICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcywNCj4gLSAqIHdpdGggb3Igd2l0
aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQNCj4gLSAqIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6DQo+IC0gKg0KPiAtICogKiAgIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUNCj4gLSAqICAgICBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlDQo+IC0gKiAg
ICAgZm9sbG93aW5nIGRpc2NsYWltZXIuDQo+IC0gKiAqICAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQ0KPiAtICogICAgIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUNCj4gLSAqICAgICBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXINCj4gLSAqICAg
ICBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KPiAtICoNCj4gLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORA0K
PiAtICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywNCj4gLSAqIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GDQo+IC0gKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQ0KPiAtICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1INCj4gLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLA0KPiAtICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywNCj4gLSAqIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUg0KPiAtICog
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUw0KPiAt
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksDQo+IC0gKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcNCj4gLSAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UNCj4gLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YNCj4gLSAqIFNVQ0ggREFNQUdFLg0KPiAtICov
DQo+IC0NCj4gLQ0KPiAtI2lmbmRlZiBfWFNBQ0NFU1NPUl9IDQo+IC0jZGVmaW5lIF9YU0FDQ0VT
U09SX0gNCj4gLQ0KPiAtI2luY2x1ZGUgPHN0cmluZz4NCj4gLSNpbmNsdWRlICJ3aW5kb3dzLmgi
DQo+IC0NCj4gLQ0KPiAtdXNpbmcgbmFtZXNwYWNlIHN0ZDsNCj4gLQ0KPiAtI2RlZmluZSBNQVhf
WEVOQlVTX1BBVEggMjU2DQo+IC0NCj4gLSNpZmRlZiBBTUQ2NA0KPiAtdHlwZWRlZiBsb25nIGxv
bmcgc3NpemVfdDsNCj4gLSNlbHNlDQo+IC10eXBlZGVmIGxvbmcgc3NpemVfdDsNCj4gLSNlbmRp
Zg0KPiAtDQo+IC1CT09MIEluaXRYU0FjY2Vzc29yKCk7DQo+IC1CT09MIFNodXRkb3duWFNBY2Nl
c3NvcigpOw0KPiAtc3NpemVfdCBYZW5zdG9yZVJlYWQoY29uc3QgY2hhciAqcGF0aCwgY2hhciAq
KnZhbHVlKTsNCj4gLWludCBYZW5zdG9yZVJlbW92ZShjb25zdCBjaGFyICpwYXRoKTsNCj4gLWlu
dCBYZW5zdG9yZVByaW50Zihjb25zdCBjaGFyICpwYXRoLCBjb25zdCBjaGFyICpmbXQsIC4uLik7
DQo+IC1pbnQgWGVuc3RvcmVXcml0ZShjb25zdCBjaGFyICpwYXRoLCBjb25zdCB2b2lkICpkYXRh
LCBzaXplX3QgbGVuKTsNCj4gLUJPT0wgWGVuc3RvcmVLaWNrWGFwaSh2b2lkKTsNCj4gLXZvaWQg
KlhlbnN0b3JlV2F0Y2goY29uc3QgY2hhciAqcGF0aCwgSEFORExFIGV2ZW50LCBIQU5ETEUNCj4g
ZXJyb3JldmVudCk7DQo+IC1CT09MIFhlbnN0b3JlVW53YXRjaCh2b2lkICp3YXRjaCk7DQo+IC1p
bnQgTGlzdGVuU3VzcGVuZChIQU5ETEUgZXZ0LCBIQU5ETEUgZXJyb3JldmVudCk7DQo+IC12b2lk
IEdldFhlblRpbWUoRklMRVRJTUUgKnJlcyk7DQo+IC12b2lkIFhzTG9nKGNvbnN0IGNoYXIgKmZt
dCwgLi4uKTsNCj4gLXZvaWQgWGVuc3RvcmVGcmVlKHZvaWQgKnRvZnJlZSk7DQo+IC12b2lkICpY
c0FsbG9jKHNpemVfdCBzaXplKTsNCj4gLXZvaWQgWHNGcmVlKGNvbnN0IHZvaWQgKmJ1Zik7DQo+
IC1ib29sIFhlbnN0b3JlUmVhZER3b3JkKGNvbnN0IGNoYXIgKiBwYXRoLCBEV09SRCAqdmFsdWUp
Ow0KPiAtDQo+IC0jaWYgREJHDQo+IC0NCj4gLSNpbmNsdWRlIDxzdGRhcmcuaD4gICAgICAgICAv
LyB2YV9saXN0DQo+IC0jaW5jbHVkZSA8c3RkaW8uaD4gICAgICAgICAgLy8gdnNwcmludGYNCj4g
LSNpbmNsdWRlIDxtYWxsb2MuaD4NCj4gLQ0KPiAtI2luY2x1ZGUgPGFzc2VydC5oPg0KPiAtI2lu
Y2x1ZGUgPHRjaGFyLmg+DQo+IC0NCj4gLV9faW5saW5lIHZvaWQgRGVidWdQcmludCggSU4gTFBD
VFNUUiBtc2csIElOIC4uLiApDQo+IC17DQo+IC0gICAgVENIQVIgICBidWZmZXJbMjU2XTsNCj4g
LSAgICBpbnQgICAgIHJlczsNCj4gLSAgICB2YV9saXN0IGFyZ3M7DQo+IC0NCj4gLSAgICB2YV9z
dGFydCggYXJncywgbXNnICk7DQo+IC0jcHJhZ21hIHByZWZhc3Qoc3VwcHJlc3M6IDI4NzE5LCAi
WWVzLCB3ZSBhbGwga25vdyBfdnNucHJpbnRmIGlzIGJhbm5lZCBpbg0KPiBkcml2ZXJzLCB0aGlz
IGlzIHVzZXIgbGV2ZWwiKTsNCj4gLSAgICByZXMgPSBfdnNudHByaW50ZihidWZmZXIsIHNpemVv
ZihidWZmZXIpIC8gc2l6ZW9mKGJ1ZmZlclswXSksIG1zZywgYXJncyk7DQo+IC0gICAgaWYgKHJl
cyA+PSAwKQ0KPiAtICAgIHsNCj4gLSAgICAgICAgT3V0cHV0RGVidWdTdHJpbmcoIGJ1ZmZlciAp
Ow0KPiAtICAgIH0NCj4gLSAgICBlbHNlDQo+IC0gICAgew0KPiAtICAgICAgICBUQ0hBUiAqcDsN
Cj4gLSAgICAgICAgaW50IGNvdW50Ow0KPiAtDQo+IC0gICAgICAgIGNvdW50ID0gNTEyOw0KPiAt
ICAgICAgICBmb3IgKDs7KSB7DQo+IC0gICAgICAgICAgICBwID0gKFRDSEFSICopbWFsbG9jKGNv
dW50ICogc2l6ZW9mIChUQ0hBUikpOw0KPiAtICAgICAgICAgICAgaWYgKCFwKSB7DQo+IC0gICAg
ICAgICAgICAgICAgT3V0cHV0RGVidWdTdHJpbmcoX1QoIk91dCBvZiBtZW1vcnkgZm9yIGRlYnVn
IG1lc3NhZ2UhXG4iKSk7DQo+IC0gICAgICAgICAgICAgICAgYnJlYWs7DQo+IC0gICAgICAgICAg
ICB9DQo+IC0gICAgICAgICAgICByZXMgPSBfdnNudHByaW50ZihwLCBjb3VudCwgbXNnLCBhcmdz
KTsNCj4gLSAgICAgICAgICAgIGlmIChyZXMgPj0gMCkNCj4gLSAgICAgICAgICAgICAgICBicmVh
azsNCj4gLQ0KPiAtICAgICAgICAgICAgZnJlZShwKTsNCj4gLSAgICAgICAgICAgIGNvdW50ICs9
IDI1NjsNCj4gLSAgICAgICAgfQ0KPiAtICAgICAgICBpZiAocCkgew0KPiAtICAgICAgICAgICAg
T3V0cHV0RGVidWdTdHJpbmcoIHAgKTsNCj4gLSAgICAgICAgICAgIGZyZWUocCk7DQo+IC0gICAg
ICAgIH0NCj4gLSAgICB9DQo+IC0gICAgdmFfZW5kKGFyZ3MpOw0KPiAtfQ0KPiAtDQo+IC0jZGVm
aW5lIERCR1BSSU5UKF94XykgRGVidWdQcmludCBfeF8NCj4gLSNkZWZpbmUgQVNTRVJUICBhc3Nl
cnQNCj4gLQ0KPiAtI2Vsc2UNCj4gLQ0KPiAtI2RlZmluZSBEQkdQUklOVChfeF8pDQo+IC0jZGVm
aW5lIEFTU0VSVA0KPiAtDQo+IC0jZW5kaWYgLy8gREJHDQo+IC0NCj4gLSNlbmRpZg0KPiBkaWZm
IC0tZ2l0IGEvc3JjL3dpbjMyc3R1YmFnZW50L1hTZXJ2aWNlLmNwcA0KPiBiL3NyYy93aW4zMnN0
dWJhZ2VudC9YU2VydmljZS5jcHANCj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4
IDFmYmIxMzguLjAwMDAwMDANCj4gLS0tIGEvc3JjL3dpbjMyc3R1YmFnZW50L1hTZXJ2aWNlLmNw
cA0KPiArKysgL2Rldi9udWxsDQo+IEBAIC0xLDEwNDQgKzAsMCBAQA0KPiAtLyogQ29weXJpZ2h0
IChjKSBDaXRyaXggU3lzdGVtcyBJbmMuDQo+IC0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KPiAt
ICoNCj4gLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsDQo+IC0gKiB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkDQo+IC0gKiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0Og0KPiAt
ICoNCj4gLSAqICogICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlDQo+IC0gKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZQ0KPiAtICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KPiAtICogKiAg
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUN
Cj4gLSAqICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlDQo+IC0gKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyDQo+IC0gKiAgICAgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4NCj4gLSAqDQo+IC0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQNCj4gLSAqIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsDQo+IC0gKiBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRg0KPiAtICogTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUNCj4gLSAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SDQo+IC0gKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwNCj4gLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsDQo+IC0gKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1INCj4gLSAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MNCj4gLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLA0KPiAtICogV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HDQo+IC0gKiBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFDQo+IC0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GDQo+IC0g
KiBTVUNIIERBTUFHRS4NCj4gLSAqLw0KPiAtDQo+IC0jaW5jbHVkZSA8d2luZG93cy5oPg0KPiAt
I2luY2x1ZGUgPHNobG9iai5oPg0KPiAtI2luY2x1ZGUgPHByb2Nlc3MuaD4NCj4gLSNpbmNsdWRl
ICJwb3dycHJvZi5oIg0KPiAtI2luY2x1ZGUgPHdpbnVzZXIuaD4NCj4gLSNpbmNsdWRlICJzdGRh
ZnguaCINCj4gLSNpbmNsdWRlICJYU0FjY2Vzc29yLmgiDQo+IC0jaW5jbHVkZSAiV01JQWNjZXNz
b3IuaCINCj4gLSNpbmNsdWRlICJYU2VydmljZS5oIg0KPiAtDQo+IC0jaW5jbHVkZSAibWVzc2Fn
ZXMuaCINCj4gLQ0KPiAtI2luY2x1ZGUgPHNldHVwYXBpLmg+DQo+IC0jaW5jbHVkZSA8Y2ZnbWdy
MzIuaD4NCj4gLSNpbmNsdWRlIDxpbml0Z3VpZC5oPg0KPiAtI2luY2x1ZGUgPGRldmd1aWQuaD4N
Cj4gLSNpbmNsdWRlIDx3aW50cnVzdC5oPg0KPiAtI2luY2x1ZGUgPHNoZWxsYXBpLmg+DQo+IC0N
Cj4gLSNpZmRlZiBfV0lONjQNCj4gLSNkZWZpbmUgWEVOVE9PTFNfSU5TVEFMTF9SRUdfS0VZDQo+
ICJTT0ZUV0FSRVxcV293NjQzMk5vZGVcXENpdHJpeFxcWGVuVG9vbHMiDQo+IC0jZGVmaW5lIFhF
TlRPT0xTX0lOU1RBTExfUkVHX0tFWTY0ICJTT0ZUV0FSRVxcQ2l0cml4XFxYZW5Ub29scyINCj4g
LSNlbHNlDQo+IC0jZGVmaW5lIFhFTlRPT0xTX0lOU1RBTExfUkVHX0tFWSAgICJTT0ZUV0FSRVxc
Q2l0cml4XFxYZW5Ub29scyINCj4gLSNlbmRpZg0KPiAtDQo+IC1TRVJWSUNFX1NUQVRVUyBTZXJ2
aWNlU3RhdHVzOw0KPiAtU0VSVklDRV9TVEFUVVNfSEFORExFIGhTdGF0dXM7DQo+IC0NCj4gLXN0
YXRpYyBIQU5ETEUgaFNlcnZpY2VFeGl0RXZlbnQ7DQo+IC1zdGF0aWMgVUxPTkcgV2luZG93c1Zl
cnNpb247DQo+IC1zdGF0aWMgQk9PTCBMZWdhY3lIYWwgPSBGQUxTRTsNCj4gLXN0YXRpYyBISU5T
VEFOQ0UgbG9jYWxfaGluc3RhbmNlOw0KPiAtDQo+IC1IQU5ETEUgZXZlbnRMb2c7DQo+IC0jZGVm
aW5lIFNJWkVDSEFSUyh4KSAoc2l6ZW9mKCh4KSkvc2l6ZW9mKFRDSEFSKSkNCj4gLQ0KPiAtLy8g
SW50ZXJuYWwgcm91dGluZXMNCj4gLXN0YXRpYyBEV09SRCBXSU5BUEkgU2VydmljZUNvbnRyb2xI
YW5kbGVyKERXT1JEIHJlcXVlc3QsIERXT1JEDQo+IGV2dFR5cGUsDQo+IC0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMUFZPSUQsIExQVk9JRCk7DQo+IC1zdGF0aWMg
dm9pZCBTZXJ2aWNlQ29udHJvbE1hbmFnZXJVcGRhdGUoRFdPUkQgZHdFeGl0Q29kZSwgRFdPUkQN
Cj4gZHdTdGF0ZSk7DQo+IC1zdGF0aWMgdm9pZCBXSU5BUEkgU2VydmljZU1haW4oaW50IGFyZ2Ms
IGNoYXIqKiBhcmd2KTsNCj4gLXN0YXRpYyB2b2lkIEdldFdpbmRvd3NWZXJzaW9uKCk7DQo+IC0N
Cj4gLXZvaWQgUHJpbnRFcnJvcihjb25zdCBjaGFyICpmdW5jLCBEV09SRCBlcnIpDQo+IC17DQo+
IC0gICAgTFBWT0lEIGxwTXNnQnVmOw0KPiAtICAgIEZvcm1hdE1lc3NhZ2UoDQo+IC0gICAgICAg
IEZPUk1BVF9NRVNTQUdFX0FMTE9DQVRFX0JVRkZFUiB8DQo+IC0gICAgICAgIEZPUk1BVF9NRVNT
QUdFX0ZST01fU1lTVEVNLA0KPiAtICAgICAgICBOVUxMLA0KPiAtICAgICAgICBlcnIsDQo+IC0g
ICAgICAgIE1BS0VMQU5HSUQoTEFOR19ORVVUUkFMLCBTVUJMQU5HX0RFRkFVTFQpLA0KPiAtICAg
ICAgICAoTFBUU1RSKSAmbHBNc2dCdWYsDQo+IC0gICAgICAgIDAsDQo+IC0gICAgICAgIE5VTEwp
Ow0KPiAtICAgIE91dHB1dERlYnVnU3RyaW5nKChMUFRTVFIpbHBNc2dCdWYpOw0KPiAtICAgIFhz
TG9nKCIlcyBmYWlsZWQ6ICVzICgleCkiLCBmdW5jLCBscE1zZ0J1ZiwgZXJyKTsNCj4gLSAgICBY
ZW5zdG9yZVByaW50ZigiY29udHJvbC9lcnJvciIsICIlcyBmYWlsZWQ6ICVzICgleCkiLCBmdW5j
LCBscE1zZ0J1ZiwgZXJyKTsNCj4gLSAgICBMb2NhbEZyZWUobHBNc2dCdWYpOw0KPiAtfQ0KPiAt
DQo+IC12b2lkIFByaW50RXJyb3IoY29uc3QgY2hhciAqZnVuYykNCj4gLXsNCj4gLSAgICBQcmlu
dEVycm9yKGZ1bmMsIEdldExhc3RFcnJvcigpKTsNCj4gLX0NCj4gLQ0KPiAtdm9pZCBQcmludFVz
YWdlKCkNCj4gLXsNCj4gLSAgICBwcmludGYoIlVzYWdlOiB4ZW5zZXJ2aWNlIFstdV1cbiIpOw0K
PiAtDQo+IC0gICAgcHJpbnRmKCJcdCAtdTogdW5pbnN0YWxsIHNlcnZpY2VcbiIpOw0KPiAtfQ0K
PiAtDQo+IC0NCj4gLQ0KPiAtc3RydWN0IHdhdGNoX2V2ZW50IHsNCj4gLSAgICBIQU5ETEUgZXZl
bnQ7DQo+IC0gICAgdm9pZCAqd2F0Y2g7DQo+IC19Ow0KPiAtDQo+IC1zdGF0aWMgdm9pZA0KPiAt
UmVsZWFzZVdhdGNoKHN0cnVjdCB3YXRjaF9ldmVudCAqd2UpDQo+IC17DQo+IC0gICAgaWYgKHdl
ID09IE5VTEwpDQo+IC0gICAgICAgIHJldHVybjsNCj4gLSAgICBpZiAod2UtPmV2ZW50ICE9IElO
VkFMSURfSEFORExFX1ZBTFVFKQ0KPiAtICAgICAgICBDbG9zZUhhbmRsZSh3ZS0+ZXZlbnQpOw0K
PiAtICAgIGlmICh3ZS0+d2F0Y2gpDQo+IC0gICAgICAgIFhlbnN0b3JlVW53YXRjaCh3ZS0+d2F0
Y2gpOw0KPiAtICAgIGZyZWUod2UpOw0KPiAtfQ0KPiAtDQo+IC1zdGF0aWMgY2hhciAqIEluaXRT
dHJpbmcoY29uc3QgY2hhciAqIGlucHV0c3RyaW5nKQ0KPiAtew0KPiAtICAgIGNoYXIgKm91dHB1
dHN0cmluZyA9IChjaGFyICopY2FsbG9jKChzdHJsZW4oaW5wdXRzdHJpbmcpKzEpLHNpemVvZihj
aGFyKSk7DQo+IC0gICAgaWYgKG91dHB1dHN0cmluZyA9PSBOVUxMKQ0KPiAtICAgICAgICBnb3Rv
IGZhaWxhbGxvYzsNCj4gLSAgICBzdHJjcHkob3V0cHV0c3RyaW5nLCBpbnB1dHN0cmluZyk7DQo+
IC0gICAgcmV0dXJuIG91dHB1dHN0cmluZzsNCj4gLQ0KPiAtZmFpbGFsbG9jOg0KPiAtICAgIFhz
TG9nKF9fRlVOQ1RJT05fXyAiIDogRmFpbCBtYWxsb2MiKTsNCj4gLSAgICByZXR1cm4gTlVMTDsN
Cj4gLX0NCj4gLQ0KPiAtc3RhdGljIHZvaWQgRnJlZVN0cmluZyhjb25zdCBjaGFyICpzdHJpbmcp
DQo+IC17DQo+IC0gICAgZnJlZSgodm9pZCAqKXN0cmluZyk7DQo+IC19DQo+IC0NCj4gLXN0YXRp
YyBjaGFyKiBQcmludGZTdHJpbmcoY29uc3QgY2hhciAqZm10LCAuLi4pew0KPiAtICAgIHZhX2xp
c3QgbDsNCj4gLSAgICB2YV9zdGFydChsLCBmbXQpOw0KPiAtICAgIGludCBudW1jaGFycyA9IF92
c2NwcmludGYoZm10LCBsKTsNCj4gLSAgICBjaGFyICpvdXRwdXRzdHJpbmcgPSAoY2hhciAqKWNh
bGxvYyhudW1jaGFycyArIDEsIHNpemVvZihjaGFyKSk7DQo+IC0NCj4gLSAgICBpZiAob3V0cHV0
c3RyaW5nID09IE5VTEwpDQo+IC0gICAgICAgIHJldHVybiBOVUxMOw0KPiAtDQo+IC0gICAgX3Zz
bnByaW50ZihvdXRwdXRzdHJpbmcsIG51bWNoYXJzLCBmbXQsIGwpOw0KPiAtICAgIHJldHVybiBv
dXRwdXRzdHJpbmc7DQo+IC19DQo+IC0NCj4gLXN0YXRpYyBzdHJ1Y3Qgd2F0Y2hfZXZlbnQgKg0K
PiAtRXN0YWJsaXNoV2F0Y2goY29uc3QgY2hhciAqcGF0aCwgSEFORExFIGVycm9yZXZlbnQpDQo+
IC17DQo+IC0gICAgc3RydWN0IHdhdGNoX2V2ZW50ICp3ZTsNCj4gLSAgICBEV09SRCBlcnI7DQo+
IC0gICAgWHNMb2coIkVzdGFibGlzaCB3YXRjaCAlcyIscGF0aCk7DQo+IC0gICAgd2UgPSAoc3Ry
dWN0IHdhdGNoX2V2ZW50ICopbWFsbG9jKHNpemVvZigqd2UpKTsNCj4gLSAgICBpZiAoIXdlKSB7
DQo+IC0gICAgICAgIFNldExhc3RFcnJvcihFUlJPUl9OT1RfRU5PVUdIX01FTU9SWSk7DQo+IC0g
ICAgICAgIHJldHVybiBOVUxMOw0KPiAtICAgIH0NCj4gLSAgICBtZW1zZXQod2UsIDAsIHNpemVv
Zigqd2UpKTsNCj4gLSAgICB3ZS0+d2F0Y2ggPSBOVUxMOw0KPiAtICAgIHdlLT5ldmVudCA9IENy
ZWF0ZUV2ZW50KE5VTEwsIEZBTFNFLCBGQUxTRSwgTlVMTCk7DQo+IC0gICAgaWYgKHdlLT5ldmVu
dCAhPSBJTlZBTElEX0hBTkRMRV9WQUxVRSkNCj4gLSAgICAgICAgd2UtPndhdGNoID0gWGVuc3Rv
cmVXYXRjaChwYXRoLCB3ZS0+ZXZlbnQsIGVycm9yZXZlbnQpOw0KPiAtICAgIGlmICh3ZS0+d2F0
Y2ggPT0gTlVMTCkgew0KPiAtICAgICAgICBPdXRwdXREZWJ1Z1N0cmluZygiV2F0Y2ggaXMgbnVs
bFxuIik7DQo+IC0gICAgICAgIGVyciA9IEdldExhc3RFcnJvcigpOw0KPiAtICAgICAgICBSZWxl
YXNlV2F0Y2god2UpOw0KPiAtICAgICAgICBTZXRMYXN0RXJyb3IoZXJyKTsNCj4gLSAgICAgICAg
cmV0dXJuIE5VTEw7DQo+IC0gICAgfQ0KPiAtICAgIHJldHVybiB3ZTsNCj4gLX0NCj4gLQ0KPiAt
c3RydWN0IHdhdGNoX2ZlYXR1cmUgew0KPiAtICAgIHN0cnVjdCB3YXRjaF9ldmVudCAqd2F0Y2g7
DQo+IC0gICAgY29uc3QgY2hhciAqZmVhdHVyZV9mbGFnOw0KPiAtICAgIGNvbnN0IGNoYXIgKm5h
bWU7DQo+IC0gICAgQk9PTCAoKmhhbmRsZXIpKHZvaWQgKik7DQo+IC0gICAgdm9pZCAqY3R4Ow0K
PiAtfTsNCj4gLQ0KPiAtI2RlZmluZSBNQVhfRkVBVFVSRVMgMTANCj4gLXN0cnVjdCB3YXRjaF9m
ZWF0dXJlX3NldCB7DQo+IC0gICAgc3RydWN0IHdhdGNoX2ZlYXR1cmUgZmVhdHVyZXNbTUFYX0ZF
QVRVUkVTXTsNCj4gLSAgICB1bnNpZ25lZCBucl9mZWF0dXJlczsNCj4gLX07DQo+IC0NCj4gLXN0
YXRpYyBCT09MDQo+IC1BZGRGZWF0dXJlKHN0cnVjdCB3YXRjaF9mZWF0dXJlX3NldCAqd2ZzLCBj
b25zdCBjaGFyICpwYXRoLA0KPiAtICAgICAgICAgICBjb25zdCBjaGFyICpmbGFnLCBjb25zdCBj
aGFyICpuYW1lLA0KPiAtICAgICAgICAgICBCT09MICgqaGFuZGxlcikodm9pZCAqKSwgdm9pZCAq
Y3R4LCBIQU5ETEUgZXJyb3JldmVudCkNCj4gLXsNCj4gLSAgICB1bnNpZ25lZCBuOw0KPiAtICAg
IGlmICh3ZnMtPm5yX2ZlYXR1cmVzID09IE1BWF9GRUFUVVJFUykNCj4gLSAgICAgICAgZ290byBm
YWlsZmVhdHVyZXM7DQo+IC0NCj4gLSAgICBuID0gd2ZzLT5ucl9mZWF0dXJlczsNCj4gLQ0KPiAt
ICAgIHdmcy0+ZmVhdHVyZXNbbl0ud2F0Y2ggPSBFc3RhYmxpc2hXYXRjaChwYXRoLCBlcnJvcmV2
ZW50KTsNCj4gLSAgICBpZiAod2ZzLT5mZWF0dXJlc1tuXS53YXRjaCA9PSBOVUxMKQ0KPiAtICAg
ICAgICBnb3RvIGZhaWx3YXRjaDsNCj4gLQ0KPiAtICAgIHdmcy0+ZmVhdHVyZXNbbl0uZmVhdHVy
ZV9mbGFnID0gZmxhZzsNCj4gLSAgICB3ZnMtPmZlYXR1cmVzW25dLmhhbmRsZXIgPSBoYW5kbGVy
Ow0KPiAtICAgIHdmcy0+ZmVhdHVyZXNbbl0uY3R4ID0gY3R4Ow0KPiAtICAgIHdmcy0+ZmVhdHVy
ZXNbbl0ubmFtZSA9IEluaXRTdHJpbmcobmFtZSk7DQo+IC0gICAgaWYgKHdmcy0+ZmVhdHVyZXNb
bl0ubmFtZSA9PSBOVUxMKQ0KPiAtICAgICAgICBnb3RvIGZhaWxuYW1lOw0KPiAtICAgIHdmcy0+
bnJfZmVhdHVyZXMrKzsNCj4gLSAgICByZXR1cm4gdHJ1ZTsNCj4gLQ0KPiAtZmFpbG5hbWU6DQo+
IC0gICAgUHJpbnRFcnJvcigiRmFpbGVkIHRvIGFsbG9jYXRlIHN0cmluZyIpOw0KPiAtZmFpbHdh
dGNoOg0KPiAtICAgIFByaW50RXJyb3IoIkVzdGFibGlzaFdhdGNoKCkgZm9yIEFkZEZlYXR1cmUo
KSIpOw0KPiAtZmFpbGZlYXR1cmVzOg0KPiAtICAgIFhzTG9nKCJUb28gbWFueSBmZWF0dXJlcyIp
Ow0KPiAtICAgIFByaW50RXJyb3IoIlRvbyBtYW55IGZlYXR1cmVzISIsIEVSUk9SX0lOVkFMSURf
RlVOQ1RJT04pOw0KPiAtICAgIHJldHVybiBmYWxzZTsNCj4gLX0NCj4gLQ0KPiAtc3RhdGljIHZv
aWQgUmVtb3ZlRmVhdHVyZXMoc3RydWN0IHdhdGNoX2ZlYXR1cmVfc2V0ICp3ZnMpIHsNCj4gLSAg
ICB1bnNpZ25lZCB4Ow0KPiAtICAgIGZvciAoeCA9IDA7IHggPCB3ZnMtPm5yX2ZlYXR1cmVzOyB4
KyspIHsNCj4gLSAgICAgICAgUmVsZWFzZVdhdGNoKHdmcy0+ZmVhdHVyZXNbeF0ud2F0Y2gpOw0K
PiAtICAgICAgICB3ZnMtPmZlYXR1cmVzW3hdLndhdGNoID0gTlVMTDsNCj4gLSAgICAgICAgRnJl
ZVN0cmluZyh3ZnMtPmZlYXR1cmVzW3hdLm5hbWUpOw0KPiAtICAgICAgICBYZW5zdG9yZVJlbW92
ZSh3ZnMtPmZlYXR1cmVzW3hdLmZlYXR1cmVfZmxhZyk7DQo+IC0gICAgfQ0KPiAtICAgIHdmcy0+
bnJfZmVhdHVyZXMgPSAwOw0KPiAtfQ0KPiAtDQo+IC1zdGF0aWMgQk9PTA0KPiAtQWR2ZXJ0aXNl
RmVhdHVyZXMoc3RydWN0IHdhdGNoX2ZlYXR1cmVfc2V0ICp3ZnMpDQo+IC17DQo+IC0gICAgdW5z
aWduZWQgeDsNCj4gLSAgICBmb3IgKHggPSAwOyB4IDwgd2ZzLT5ucl9mZWF0dXJlczsgeCsrKSB7
DQo+IC0gICAgICAgIGlmICh3ZnMtPmZlYXR1cmVzW3hdLmZlYXR1cmVfZmxhZyAhPSBOVUxMKQ0K
PiAtICAgICAgICAgICAgaWYgKFhlbnN0b3JlUHJpbnRmKHdmcy0+ZmVhdHVyZXNbeF0uZmVhdHVy
ZV9mbGFnLCAiMSIpKXsNCj4gLSAgICAgICAgICAgICAgICBYc0xvZygiRmFpbGVkIHRvIGFkdmVy
dGlzZSAlcyIsd2ZzLT5mZWF0dXJlc1t4XS5uYW1lKTsNCj4gLSAgICAgICAgICAgIH0NCj4gLSAg
ICB9DQo+IC0gICAgcmV0dXJuIHRydWU7DQo+IC19DQo+IC0NCj4gLQ0KPiAtdm9pZCBTZXJ2aWNl
VW5pbnN0YWxsKCkNCj4gLXsNCj4gLSAgICBTQ19IQU5ETEUgICBoU3ZjOw0KPiAtICAgIFNDX0hB
TkRMRSAgIGhNZ3I7DQo+IC0NCj4gLSAgICBoTWdyID0gT3BlblNDTWFuYWdlcihOVUxMLCBOVUxM
LCBTQ19NQU5BR0VSX0FMTF9BQ0NFU1MpOw0KPiAtDQo+IC0gICAgaWYgKCBoTWdyICkNCj4gLSAg
ICB7DQo+IC0gICAgICAgIGhTdmMgPSBPcGVuU2VydmljZShoTWdyLCBTVkNfTkFNRSwgU0VSVklD
RV9BTExfQUNDRVNTKTsNCj4gLQ0KPiAtICAgICAgICBpZiAoaFN2YykNCj4gLSAgICAgICAgew0K
PiAtICAgICAgICAgICAgIC8vIHRyeSB0byBzdG9wIHRoZSBzZXJ2aWNlDQo+IC0gICAgICAgICAg
ICAgaWYgKCBDb250cm9sU2VydmljZSggaFN2YywgU0VSVklDRV9DT05UUk9MX1NUT1AsICZTZXJ2
aWNlU3RhdHVzICkgKQ0KPiAtICAgICAgICAgICAgIHsNCj4gLSAgICAgICAgICAgICAgICBwcmlu
dGYoIlN0b3BwaW5nICVzLiIsIFNWQ19ESVNQTEFZTkFNRSk7DQo+IC0gICAgICAgICAgICAgICAg
U2xlZXAoIDEwMDAgKTsNCj4gLQ0KPiAtICAgICAgICAgICAgICAgIHdoaWxlICggUXVlcnlTZXJ2
aWNlU3RhdHVzKCBoU3ZjLCAmU2VydmljZVN0YXR1cyApICkNCj4gLSAgICAgICAgICAgICAgICB7
DQo+IC0gICAgICAgICAgICAgICAgICAgIGlmICggU2VydmljZVN0YXR1cy5kd0N1cnJlbnRTdGF0
ZSA9PSBTRVJWSUNFX1NUT1BfUEVORElORyApDQo+IC0gICAgICAgICAgICAgICAgICAgIHsNCj4g
LSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiLiIpOw0KPiAtICAgICAgICAgICAgICAg
ICAgICAgICAgU2xlZXAoIDEwMDAgKTsNCj4gLSAgICAgICAgICAgICAgICAgICAgfQ0KPiAtICAg
ICAgICAgICAgICAgICAgICBlbHNlDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsN
Cj4gLSAgICAgICAgICAgICAgICB9DQo+IC0NCj4gLSAgICAgICAgICAgICAgICBpZiAoIFNlcnZp
Y2VTdGF0dXMuZHdDdXJyZW50U3RhdGUgPT0gU0VSVklDRV9TVE9QUEVEICkNCj4gLSAgICAgICAg
ICAgICAgICAgICAgcHJpbnRmKCJcbiVzIHN0b3BwZWQuXG4iLCBTVkNfRElTUExBWU5BTUUgKTsN
Cj4gLSAgICAgICAgICAgICAgICBlbHNlDQo+IC0gICAgICAgICAgICAgICAgICAgIHByaW50Zigi
XG4lcyBmYWlsZWQgdG8gc3RvcC5cbiIsIFNWQ19ESVNQTEFZTkFNRSApOw0KPiAtICAgICAgICAg
fQ0KPiAtDQo+IC0gICAgICAgICAvLyBub3cgcmVtb3ZlIHRoZSBzZXJ2aWNlDQo+IC0gICAgICAg
ICBpZiAoIERlbGV0ZVNlcnZpY2UoaFN2YykgKQ0KPiAtICAgICAgICAgICAgcHJpbnRmKCIlcyB1
bmluc3RhbGxlZC5cbiIsIFNWQ19ESVNQTEFZTkFNRSApOw0KPiAtICAgICAgICAgZWxzZQ0KPiAt
ICAgICAgICAgICAgcHJpbnRmKCJVbmFibGUgdG8gdW5pbnN0YWxsIC0gJWRcbiIsIEdldExhc3RF
cnJvcigpKTsNCj4gLQ0KPiAtICAgICAgICAgQ2xvc2VTZXJ2aWNlSGFuZGxlKGhTdmMpOw0KPiAt
DQo+IC0gICAgICB9DQo+IC0gICAgICBlbHNlDQo+IC0gICAgICAgICBwcmludGYoIlVuYWJsZSB0
byBvcGVuIHNlcnZpY2UgLSAlZFxuIiwgR2V0TGFzdEVycm9yKCkpOw0KPiAtDQo+IC0gICAgICBD
bG9zZVNlcnZpY2VIYW5kbGUoaE1ncik7DQo+IC0gICB9DQo+IC0gICBlbHNlDQo+IC0gICAgICBw
cmludGYoIlVuYWJsZSB0byBvcGVuIHNjbSAtICVkXG4iLCBHZXRMYXN0RXJyb3IoKSk7DQo+IC0N
Cj4gLX0NCj4gLQ0KPiAtDQo+IC1pbnQgX19zdGRjYWxsDQo+IC1XaW5NYWluKEhJTlNUQU5DRSBo
SW5zdGFuY2UsIEhJTlNUQU5DRSBpZ25vcmUsDQo+IC0gICAgICAgIExQU1RSIGxwQ21kTGluZSwg
aW50IG5DbWRTaG93KQ0KPiAtew0KPiAtICAgIGxvY2FsX2hpbnN0YW5jZSA9IGhJbnN0YW5jZTsN
Cj4gLQ0KPiAtICAgIGlmIChzdHJsZW4obHBDbWRMaW5lKSA9PSAwKSB7DQo+IC0gICAgICAgIFNF
UlZJQ0VfVEFCTEVfRU5UUlkgU2VydmljZVRhYmxlWzJdOw0KPiAtICAgICAgICBTZXJ2aWNlVGFi
bGVbMF0ubHBTZXJ2aWNlTmFtZSA9IFNWQ19OQU1FOw0KPiAtICAgICAgICBTZXJ2aWNlVGFibGVb
MF0ubHBTZXJ2aWNlUHJvYyA9DQo+IChMUFNFUlZJQ0VfTUFJTl9GVU5DVElPTilTZXJ2aWNlTWFp
bjsNCj4gLQ0KPiAtICAgICAgICBTZXJ2aWNlVGFibGVbMV0ubHBTZXJ2aWNlTmFtZSA9IE5VTEw7
DQo+IC0gICAgICAgIFNlcnZpY2VUYWJsZVsxXS5scFNlcnZpY2VQcm9jID0gTlVMTDsNCj4gLQ0K
PiAtICAgICAgICBEQkdQUklOVCgoIlhlblN2Yzogc3RhcnRpbmcgY3RybCBkaXNwYXRjaGVyICIp
KTsNCj4gLQ0KPiAtICAgICAgICAvLyBTdGFydCB0aGUgY29udHJvbCBkaXNwYXRjaGVyIHRocmVh
ZCBmb3Igb3VyIHNlcnZpY2UNCj4gLSAgICAgICAgaWYgKCFTdGFydFNlcnZpY2VDdHJsRGlzcGF0
Y2hlcihTZXJ2aWNlVGFibGUpKQ0KPiAtICAgICAgICB7DQo+IC0gICAgICAgICAgICBpbnQgZXJy
ID0gR2V0TGFzdEVycm9yKCk7DQo+IC0gICAgICAgICAgICBpZiAoR2V0TGFzdEVycm9yKCkgPT0N
Cj4gRVJST1JfRkFJTEVEX1NFUlZJQ0VfQ09OVFJPTExFUl9DT05ORUNUKQ0KPiAtICAgICAgICAg
ICAgew0KPiAtICAgICAgICAgICAgICAgIERCR1BSSU5UKCgiWGVuU3ZjOiB1bmFibGUgdG8gc3Rh
cnQgY3RybCBkaXNwYXRjaGVyIC0gJWQiLA0KPiBHZXRMYXN0RXJyb3IoKSkpOw0KPiAtICAgICAg
ICAgICAgfQ0KPiAtICAgICAgICB9DQo+IC0gICAgICAgIGVsc2UNCj4gLSAgICAgICAgew0KPiAt
ICAgICAgICAgICAgLy8gV2UgZ2V0IGhlcmUgd2hlbiB0aGUgc2VydmljZSBpcyBzaHV0IGRvd24u
DQo+IC0gICAgICAgIH0NCj4gLSAgICB9IGVsc2UgaWYgKCFzdHJjbXAobHBDbWRMaW5lLCAiLXUi
KSB8fCAhc3RyY21wKGxwQ21kTGluZSwgIlwiLXVcIiIpKSB7DQo+IC0gICAgICAgIFNlcnZpY2VV
bmluc3RhbGwoKTsNCj4gLSAgICB9IGVsc2Ugew0KPiAtICAgICAgICBQcmludFVzYWdlKCk7DQo+
IC0gICAgfQ0KPiAtDQo+IC0gICAgcmV0dXJuIDA7DQo+IC19DQo+IC0NCj4gLXZvaWQgQWNxdWly
ZVN5c3RlbVByaXZpbGVnZShMUENUU1RSIG5hbWUpDQo+IC17DQo+IC0gICAgSEFORExFIHRva2Vu
Ow0KPiAtICAgIFRPS0VOX1BSSVZJTEVHRVMgdGtwOw0KPiAtICAgIERXT1JEIGVycjsNCj4gLQ0K
PiAtICAgIExvb2t1cFByaXZpbGVnZVZhbHVlKE5VTEwsIG5hbWUsICZ0a3AuUHJpdmlsZWdlc1sw
XS5MdWlkKTsNCj4gLSAgICB0a3AuUHJpdmlsZWdlQ291bnQgPSAxOw0KPiAtICAgIHRrcC5Qcml2
aWxlZ2VzWzBdLkF0dHJpYnV0ZXMgPSBTRV9QUklWSUxFR0VfRU5BQkxFRDsNCj4gLSAgICBpZiAo
IU9wZW5Qcm9jZXNzVG9rZW4oR2V0Q3VycmVudFByb2Nlc3MoKSwNCj4gLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgVE9LRU5fQURKVVNUX1BSSVZJTEVHRVN8VE9LRU5fUVVFUlksDQo+IC0gICAg
ICAgICAgICAgICAgICAgICAgICAgICZ0b2tlbikpIHsNCj4gLSAgICAgICAgREJHUFJJTlQoKCJG
YWlsZWQgdG8gb3BlbiBsb2NhbCB0b2tlbi5cbiIpKTsNCj4gLSAgICB9IGVsc2Ugew0KPiAtICAg
ICAgICBBZGp1c3RUb2tlblByaXZpbGVnZXModG9rZW4sIEZBTFNFLCAmdGtwLA0KPiAtICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgMCwgTlVMTCk7DQo+IC0gICAgICAgIGVyciA9
IEdldExhc3RFcnJvcigpOw0KPiAtICAgICAgICBpZiAoZXJyICE9IEVSUk9SX1NVQ0NFU1MpIHsN
Cj4gLSAgICAgICAgICAgIFByaW50RXJyb3IoIkFkanVzdFRva2VuUHJpdmlsZWdlcyIsIGVycik7
DQo+IC0gICAgICAgIH0NCj4gLSAgICB9DQo+IC19DQo+IC0NCj4gLXN0YXRpYyB2b2lkIEFjcXVp
cmVTeXN0ZW1TaHV0ZG93blByaXZpbGVnZSh2b2lkKQ0KPiAtew0KPiAtICAgIEFjcXVpcmVTeXN0
ZW1Qcml2aWxlZ2UoU0VfU0hVVERPV05fTkFNRSk7DQo+IC19DQo+IC0NCj4gLWVudW0gWFNodXRk
b3duVHlwZSB7DQo+IC0gICAgWFNodXRkb3duUG93ZXJvZmYsDQo+IC0gICAgWFNodXRkb3duUmVi
b290LA0KPiAtICAgIFhTaHV0ZG93blN1c3BlbmQsDQo+IC0gICAgWFNodXRkb3duUzMNCj4gLX07
DQo+IC0NCj4gLXN0YXRpYyBCT09MIG1heWJlUmVib290KHZvaWQgKmN0eCkNCj4gLXsNCj4gLSAg
ICBjaGFyICpzaHV0ZG93bl90eXBlOw0KPiAtICAgIEJPT0wgcmVzOw0KPiAtICAgIGVudW0gWFNo
dXRkb3duVHlwZSB0eXBlOw0KPiAtICAgIGludCBjbnRyID0gMDsNCj4gLQ0KPiAtICAgIFhzTG9n
KCJDaGVjayBpZiB3ZSBuZWVkIHRvIHNodXRkb3duIik7DQo+IC0NCj4gLSAgICBpZiAoWGVuc3Rv
cmVSZWFkKCJjb250cm9sL3NodXRkb3duIiwgJnNodXRkb3duX3R5cGUpIDwgMCkgew0KPiAtICAg
ICAgICBYc0xvZygiTm8gbmVlZCB0byBzaHV0ZG93biIpOw0KPiAtICAgICAgICByZXR1cm4gdHJ1
ZTsNCj4gLSAgICB9DQo+IC0gICAgWHNMb2coIlNodXRkb3duIHR5cGUgJXNcbiIsIHNodXRkb3du
X3R5cGUpOw0KPiAtICAgIGlmIChzdHJjbXAoc2h1dGRvd25fdHlwZSwgInBvd2Vyb2ZmIikgPT0g
MCB8fA0KPiAtICAgICAgICBzdHJjbXAoc2h1dGRvd25fdHlwZSwgImhhbHQiKSA9PSAwKSB7DQo+
IC0gICAgICAgIHR5cGUgPSBYU2h1dGRvd25Qb3dlcm9mZjsNCj4gLSAgICB9IGVsc2UgaWYgKHN0
cmNtcChzaHV0ZG93bl90eXBlLCAicmVib290IikgPT0gMCkgew0KPiAtICAgICAgICB0eXBlID0g
WFNodXRkb3duUmVib290Ow0KPiAtICAgIH0gZWxzZSBpZiAoc3RyY21wKHNodXRkb3duX3R5cGUs
ICJoaWJlcm5hdGUiKSA9PSAwKSB7DQo+IC0gICAgICAgIHR5cGUgPSBYU2h1dGRvd25TdXNwZW5k
Ow0KPiAtICAgIH0gZWxzZSBpZiAoc3RyY21wKHNodXRkb3duX3R5cGUsICJzMyIpID09IDApIHsN
Cj4gLSAgICAgICAgdHlwZSA9IFhTaHV0ZG93blMzOw0KPiAtICAgIH0gZWxzZSB7DQo+IC0gICAg
ICAgIERCR1BSSU5UKCgiQmFkIHNodXRkb3duIHR5cGUgJXNcbiIsIHNodXRkb3duX3R5cGUpKTsN
Cj4gLSAgICAgICAgZ290byBvdXQ7DQo+IC0gICAgfQ0KPiAtDQo+IC0gICAgWHNMb2coIlJlcG9y
dCBTaHV0ZG93biBFdmVudCIpOw0KPiAtICAgIC8qIFdlIHRyeSB0byBzaHV0ZG93biBldmVuIGlm
IHRoaXMgZmFpbHMsIHNpbmNlIGl0IG1pZ2h0IHdvcmsNCj4gLSAgICAgICBhbmQgaXQgY2FuJ3Qg
ZG8gYW55IGhhcm0uICovDQo+IC0gICAgQWNxdWlyZVN5c3RlbVNodXRkb3duUHJpdmlsZWdlKCk7
DQo+IC0NCj4gLSAgICBpZiAoZXZlbnRMb2cpIHsNCj4gLSAgICAgICAgRFdPUkQgZXZlbnRJZDsN
Cj4gLQ0KPiAtICAgICAgICBzd2l0Y2ggKHR5cGUpIHsNCj4gLSAgICAgICAgY2FzZSBYU2h1dGRv
d25Qb3dlcm9mZjoNCj4gLSAgICAgICAgICAgIGV2ZW50SWQgPSBFVkVOVF9YRU5VU0VSX1BPV0VS
T0ZGOw0KPiAtICAgICAgICAgICAgYnJlYWs7DQo+IC0gICAgICAgIGNhc2UgWFNodXRkb3duUmVi
b290Og0KPiAtICAgICAgICAgICAgZXZlbnRJZCA9IEVWRU5UX1hFTlVTRVJfUkVCT09UOw0KPiAt
ICAgICAgICAgICAgYnJlYWs7DQo+IC0gICAgICAgIGNhc2UgWFNodXRkb3duU3VzcGVuZDoNCj4g
LSAgICAgICAgICAgIGV2ZW50SWQgPSBFVkVOVF9YRU5VU0VSX0hJQkVSTkFURTsNCj4gLSAgICAg
ICAgICAgIGJyZWFrOw0KPiAtICAgICAgICBjYXNlIFhTaHV0ZG93blMzOg0KPiAtICAgICAgICAg
ICAgZXZlbnRJZCA9IEVWRU5UX1hFTlVTRVJfUzM7DQo+IC0gICAgICAgICAgICBicmVhazsNCj4g
LSAgICAgICAgfQ0KPiAtICAgIH0NCj4gLQ0KPiAtICAgIFhzTG9nKCJEbyB0aGUgc2h1dGRvd24i
KTsNCj4gLQ0KPiAtICAgIC8qIGRvIHRoZSBzaHV0ZG93biAqLw0KPiAtICAgIHN3aXRjaCAodHlw
ZSkgew0KPiAtICAgIGNhc2UgWFNodXRkb3duUG93ZXJvZmY6DQo+IC0gICAgY2FzZSBYU2h1dGRv
d25SZWJvb3Q6DQo+IC0gICAgICAgIGlmIChXaW5kb3dzVmVyc2lvbiA+PSAweDUwMCAmJiBXaW5k
b3dzVmVyc2lvbiA8IDB4NjAwKQ0KPiAtICAgICAgICB7DQo+IC0gICAgICAgICAgICAvKiBXaW5k
b3dzIDIwMDAgSW5pdGlhdGVTeXN0ZW1TaHV0ZG93bkV4IGlzIGZ1bm55IGluDQo+IC0gICAgICAg
ICAgICAgICB2YXJpb3VzIHdheXMgKGUuZy4gc29tZXRpbWVzIGZhaWxzIHRvIHBvd2VyIG9mZiBh
ZnRlcg0KPiAtICAgICAgICAgICAgICAgc2h1dGRvd24sIGVzcGVjaWFsbHkgaWYgdGhlIGxvY2Fs
IHRlcm1pbmFsIGlzIGxvY2tlZCwNCj4gLSAgICAgICAgICAgICAgIG5vdCBkb2luZyBhbnl0aGlu
ZyBpZiB0aGVyZSdzIG5vYm9keSBsb2dnZWQgb24sIGV0Yy4pLg0KPiAtICAgICAgICAgICAgICAg
RXhpdFdpbmRvd3NFeCBzZWVtcyB0byBiZSBtb3JlIHJlbGlhYmxlLCBzbyB1c2UgaXQNCj4gLSAg
ICAgICAgICAgICAgIGluc3RlYWQuICovDQo+IC0gICAgICAgICAgICAvKiBYWFggSSBkb24ndCBy
ZWFsbHkgdW5kZXJzdGFuZCB3aHkNCj4gLSAgICAgICAgICAgICAgIEluaXRpYXRlU3lzdGVtU2h1
dGRvd25FeCBiZWhhdmVzIHNvIGJhZGx5LiAqLw0KPiAtICAgICAgICAgICAgLyogSWYgdGhpcyBp
cyBhIGxlZ2FjeSBoYWwgdGhlbiB1c2UgRVdYX1NIVVRET1dOIHdoZW4gc2h1dHRpbmcNCj4gLSAg
ICAgICAgICAgICAgIGRvd24gaW5zdGVhZCBvZiBFV1hfUE9XRVJPRkYuICovDQo+IC0gICAgICAg
IC8qIFNpbWlsYXIgcHJvYmxlbSBvbiBYUC4gU2h1dGRvd24vUmVib290IHdpbGwgaGFuZyB1bnRp
bCB0aGUNCj4gV2VsY29tZQ0KPiAtICAgICAgICBzY3JlZW4gc2NyZWVuc2F2ZXIgaXMgZGlzbWlz
c2VkIGJ5IHRoZSBndWVzdCAqLw0KPiAtI3ByYWdtYSB3YXJuaW5nIChkaXNhYmxlIDogMjgxNTkp
DQo+IC0gICAgICAgICAgICByZXMgPSBFeGl0V2luZG93c0V4KCh0eXBlID09IFhTaHV0ZG93blJl
Ym9vdCA/DQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFV1hfUkVCT09U
IDoNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMZWdhY3lIYWwgPw0K
PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVXWF9TSFVURE9XTiA6
DQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVdYX1BPV0VST0ZG
KSl8DQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVXWF9GT1JDRSwNCj4gLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hURE5fUkVBU09OX01BSk9SX09USEVSfA0K
PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSFRETl9SRUFTT05fTUlOT1JfRU5W
SVJPTk1FTlQgfA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSFRETl9SRUFT
T05fRkxBR19QTEFOTkVEKTsNCj4gLSNwcmFnbWEgd2FybmluZyAoZGVmYXVsdDogMjgxNTkpDQo+
IC0gICAgICAgICAgICBpZiAoIXJlcykgew0KPiAtICAgICAgICAgICAgICAgIFByaW50RXJyb3Io
IkV4aXRXaW5kb3dzRXgiKTsNCj4gLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQo+IC0g
ICAgICAgICAgICB9DQo+IC0gICAgICAgICAgICBlbHNlDQo+IC0gICAgICAgICAgICB7DQo+IC0g
ICAgICAgICAgICAgICAgaWYgKFhlbnN0b3JlUmVtb3ZlKCJjb250cm9sL3NodXRkb3duIikpDQo+
IC0gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCj4gLSAgICAgICAgICAgIH0NCj4g
LSAgICAgICAgfSBlbHNlIHsNCj4gLSNwcmFnbWEgd2FybmluZyAoZGlzYWJsZSA6IDI4MTU5KQ0K
PiAtICAgICAgICAgICAgcmVzID0gSW5pdGlhdGVTeXN0ZW1TaHV0ZG93bkV4KA0KPiAtICAgICAg
ICAgICAgICAgIE5VTEwsDQo+IC0gICAgICAgICAgICAgICAgTlVMTCwNCj4gLSAgICAgICAgICAg
ICAgICAwLA0KPiAtICAgICAgICAgICAgICAgIFRSVUUsDQo+IC0gICAgICAgICAgICAgICAgdHlw
ZSA9PSBYU2h1dGRvd25SZWJvb3QsDQo+IC0gICAgICAgICAgICAgICAgU0hURE5fUkVBU09OX01B
Sk9SX09USEVSIHwNCj4gLSAgICAgICAgICAgICAgICBTSFRETl9SRUFTT05fTUlOT1JfRU5WSVJP
Tk1FTlQgfA0KPiAtICAgICAgICAgICAgICAgIFNIVEROX1JFQVNPTl9GTEFHX1BMQU5ORUQpOw0K
PiAtI3ByYWdtYSB3YXJuaW5nIChkZWZhdWx0OiAyODE1OSkNCj4gLSAgICAgICAgICAgIGlmICgh
cmVzKSB7DQo+IC0gICAgICAgICAgICAgICAgUHJpbnRFcnJvcigiSW5pdGlhdGVTeXN0ZW1TaHV0
ZG93bkV4Iik7DQo+IC0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KPiAtICAgICAgICAg
ICAgfSBlbHNlIHsNCj4gLSAgICAgICAgICAgICAgICBpZiAoWGVuc3RvcmVSZW1vdmUoImNvbnRy
b2wvc2h1dGRvd24iKSkNCj4gLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KPiAt
ICAgICAgICAgICAgfQ0KPiAtICAgICAgICB9DQo+IC0gICAgICAgIGJyZWFrOw0KPiAtICAgIGNh
c2UgWFNodXRkb3duU3VzcGVuZDoNCj4gLSAgICAgICAgaWYgKFhlbnN0b3JlUHJpbnRmICgiY29u
dHJvbC9oaWJlcm5hdGlvbi1zdGF0ZSIsICJzdGFydGVkIikpDQo+IC0gICAgICAgICAgICByZXR1
cm4gZmFsc2U7DQo+IC0gICAgICAgIC8qIEV2ZW4gaWYgd2UgdGhpbmsgaGliZXJuYXRpb24gaXMg
ZGlzYWJsZWQsIHRyeSBpdCBhbnl3YXkuDQo+IC0gICAgICAgICAgIEl0J3Mgbm90IGxpa2UgaXQg
Y2FuIGRvIGFueSBoYXJtLiAqLw0KPiAtICAgICAgICByZXMgPSBTZXRTeXN0ZW1Qb3dlclN0YXRl
KEZBTFNFLCBGQUxTRSk7DQo+IC0gICAgICAgIGlmIChYZW5zdG9yZVJlbW92ZSAoImNvbnRyb2wv
c2h1dGRvd24iKSkNCj4gLSAgICAgICAgew0KPiAtICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0K
PiAtICAgICAgICB9DQo+IC0gICAgICAgIGlmICghcmVzKSB7DQo+IC0gICAgICAgICAgICAvKiBU
ZWxsIHRoZSB0b29scyB0aGF0IHdlJ3ZlIGZhaWxlZC4gKi8NCj4gLSAgICAgICAgICAgIFByaW50
RXJyb3IoIlNldFN5c3RlbVBvd2VyU3RhdGUiKTsNCj4gLSAgICAgICAgICAgIGlmIChYZW5zdG9y
ZVByaW50ZiAoImNvbnRyb2wvaGliZXJuYXRpb24tc3RhdGUiLCAiZmFpbGVkIikpDQo+IC0gICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KPiAtICAgICAgICB9DQo+IC0gICAgICAgIGJyZWFr
Ow0KPiAtICAgIGNhc2UgWFNodXRkb3duUzM6DQo+IC0gICAgICAgIGlmIChYZW5zdG9yZVByaW50
ZiAoImNvbnRyb2wvczMtc3RhdGUiLCAic3RhcnRlZCIpKQ0KPiAtICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOw0KPiAtICAgICAgICByZXMgPSBTZXRTdXNwZW5kU3RhdGUoRkFMU0UsIFRSVUUsIEZB
TFNFKTsNCj4gLSAgICAgICAgWGVuc3RvcmVSZW1vdmUgKCJjb250cm9sL3NodXRkb3duIik7DQo+
IC0gICAgICAgIGlmICghcmVzKSB7DQo+IC0gICAgICAgICAgICBQcmludEVycm9yKCJTZXRTdXNw
ZW5kU3RhdGUiKTsNCj4gLSAgICAgICAgICAgIGlmIChYZW5zdG9yZVByaW50ZiAoImNvbnRyb2wv
czMtc3RhdGUiLCAiZmFpbGVkIikpDQo+IC0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0K
PiAtICAgICAgICB9DQo+IC0gICAgICAgIGJyZWFrOw0KPiAtICAgIH0NCj4gLQ0KPiAtb3V0Og0K
PiAtICAgIFhlbnN0b3JlRnJlZShzaHV0ZG93bl90eXBlKTsNCj4gLSAgICByZXR1cm4gdHJ1ZTsN
Cj4gLX0NCj4gLQ0KPiAtc3RhdGljIGJvb2wgcmVnaXN0cnlNYXRjaFN0cmluZyhIS0VZICAgIGhL
ZXksDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExQQ1RTVFIgbHBWYWx1ZU5h
bWUsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExQQ1RTVFIgY29tcGFyZXN0
cmluZywNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCAgICBtYXRjaGNh
c2UpDQo+IC17DQo+IC0gICAgYm9vbCAgICByZXN1bHQgPSBmYWxzZTsNCj4gLSAgICBMT05HICAg
IGJ1ZmZlcnNpemUgPSBzaXplb2YoVENIQVIpKjI1NjsNCj4gLSAgICBUQ0hBUiAgICpvdXRzdHJp
bmcgPSBOVUxMOw0KPiAtICAgIERXT1JEICBvdXRzdHJpbmdzaXplOw0KPiAtICAgIExPTkcgICAg
c3RhdHVzOw0KPiAtICAgIGRvIHsNCj4gLSAgICAgICAgb3V0c3RyaW5nc2l6ZSA9IGJ1ZmZlcnNp
emU7DQo+IC0gICAgICAgIG91dHN0cmluZyA9IChUQ0hBUiAqKXJlYWxsb2Mob3V0c3RyaW5nLCBv
dXRzdHJpbmdzaXplKTsNCj4gLQ0KPiAtICAgICAgICBzdGF0dXMgPSBSZWdRdWVyeVZhbHVlRXgo
aEtleSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxwVmFsdWVOYW1lLA0K
PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwNCj4gLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIE5VTEwsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoTFBCWVRFKSBvdXRzdHJpbmcsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAmb3V0c3RyaW5nc2l6ZSk7DQo+IC0gICAgICAgIGJ1ZmZlcnNpemUgKj0gMjsNCj4g
LSAgICB9IHdoaWxlIChzdGF0dXMgPT0gRVJST1JfTU9SRV9EQVRBKTsNCj4gLQ0KPiAtICAgIGlm
IChzdGF0dXMgPT0gRVJST1JfRklMRV9OT1RfRk9VTkQpDQo+IC0gICAgICAgIGdvdG8gZG9uZTsN
Cj4gLQ0KPiAtICAgIGlmIChtYXRjaGNhc2UpIHsNCj4gLSAgICAgICAgaWYgKF90Y3NuY21wKGNv
bXBhcmVzdHJpbmcsIG91dHN0cmluZywgb3V0c3RyaW5nc2l6ZSkpDQo+IC0gICAgICAgICAgICBn
b3RvIGRvbmU7DQo+IC0gICAgfQ0KPiAtICAgIGVsc2Ugew0KPiAtICAgICAgICBpZiAoX3Rjc25p
Y29sbChjb21wYXJlc3RyaW5nLCBvdXRzdHJpbmcsIG91dHN0cmluZ3NpemUpKQ0KPiAtICAgICAg
ICAgICAgZ290byBkb25lOw0KPiAtICAgIH0NCj4gLQ0KPiAtICAgIHJlc3VsdCA9IHRydWU7DQo+
IC0NCj4gLWRvbmU6DQo+IC0gICAgZnJlZShvdXRzdHJpbmcpOw0KPiAtDQo+IC0gICAgcmV0dXJu
IHJlc3VsdDsNCj4gLX0NCj4gLQ0KPiAtc3RhdGljIGJvb2wNCj4gLWFkanVzdFhlblRpbWVUb1VU
QyhGSUxFVElNRSAqbm93KQ0KPiAtew0KPiAtICAgIERXT1JEICAgICAgICAgICBkd3RpbWVvZmZz
ZXQ7DQo+IC0gICAgbG9uZyAgICAgICAgICAgIHRpbWVvZmZzZXQ7DQo+IC0gICAgY2hhciAgICAg
ICAgICAgICp2bTsNCj4gLSAgICBjaGFyICAgICAgICAgICAgKnJ0Y2tleTsNCj4gLSAgICBMQVJH
RV9JTlRFR0VSICAgbG9uZ29mZnNldDsNCj4gLSAgICBVTEFSR0VfSU5URUdFUiAgbG9uZ25vdzsN
Cj4gLSAgICBzaXplX3QgICAgICAgICAgdm1sZW47DQo+IC0NCj4gLSAgICAvLyBYZW5UaW1lIGlz
IGFzc3VtZWQgdG8gYmUgaW4gVVRDLCBzbyB3ZSBuZWVkIHRvIHJlbW92ZSBhbnkNCj4gLSAgICAv
LyBvZmZzZXRzIHRoYXQgYXJlIGFwcGxpZWQgdG8gaXQNCj4gLQ0KPiAtICAgIF9fdHJ5IHsNCj4g
LSAgICAgICAgdm1sZW4gPSBYZW5zdG9yZVJlYWQoInZtIiwgJnZtKTsNCj4gLSAgICAgICAgaWYg
KHZtbGVuIDw9IDApDQo+IC0gICAgICAgICAgICBnb3RvIGZhaWxfcmVhZHZtOw0KPiAtICAgIH0N
Cj4gLSAgICBfX2V4Y2VwdChFWENFUFRJT05fRVhFQ1VURV9IQU5ETEVSKQ0KPiAtICAgIHsNCj4g
LSAgICAgICAgZ290byBmYWlsX3JlYWR2bTsNCj4gLSAgICB9DQo+IC0NCj4gLSAgICBydGNrZXkg
PSBQcmludGZTdHJpbmcoIiVzL3J0Yy90aW1lb2Zmc2V0Iiwgdm0pOw0KPiAtICAgIGlmIChydGNr
ZXkgPT0gTlVMTCkNCj4gLSAgICAgICAgZ290byBmYWlsX3J0Y2tleTsNCj4gLQ0KPiAtICAgIF90
cnkgew0KPiAtICAgICAgICBCT09MIHJ0Y3JlYWR3b3JrZWQ7DQo+IC0gICAgICAgIF9fdHJ5IHsN
Cj4gLSAgICAgICAgICAgIHJ0Y3JlYWR3b3JrZWQgPSBYZW5zdG9yZVJlYWREd29yZChydGNrZXks
ICZkd3RpbWVvZmZzZXQpOw0KPiAtICAgICAgICB9DQo+IC0gICAgICAgIF9fZXhjZXB0KEVYQ0VQ
VElPTl9FWEVDVVRFX0hBTkRMRVIpIHsNCj4gLSAgICAgICAgICAgIHJ0Y3JlYWR3b3JrZWQgPSBm
YWxzZTsNCj4gLSAgICAgICAgfQ0KPiAtICAgICAgICBpZiAoIXJ0Y3JlYWR3b3JrZWQpIHsNCj4g
LSAgICAgICAgICAgIGlmICghWGVuc3RvcmVSZWFkRHdvcmQoInBsYXRmb3JtL3RpbWVvZmZzZXQi
LCAmZHd0aW1lb2Zmc2V0KSkNCj4gLSAgICAgICAgICAgICAgICBnb3RvIGZhaWxfcGxhdGZvcm10
aW1lb2Zmc2V0Ow0KPiAtICAgICAgICB9DQo+IC0gICAgfQ0KPiAtICAgIF9fZXhjZXB0KEVYQ0VQ
VElPTl9FWEVDVVRFX0hBTkRMRVIpDQo+IC0gICAgew0KPiAtICAgICAgICBnb3RvIGZhaWxfcGxh
dGZvcm10aW1lb2Zmc2V0Ow0KPiAtICAgIH0NCj4gLSAgICB0aW1lb2Zmc2V0ID0gKGxvbmcpZHd0
aW1lb2Zmc2V0Ow0KPiAtDQo+IC0gICAgLy9Db252ZXJ0IG9mZnNldCBmcm9tIHNlY29uZHMgdG8g
bmFub3NlY29uZHMNCj4gLSAgICBsb25nb2Zmc2V0LlF1YWRQYXJ0ID0gIChMT05HTE9ORyl0aW1l
b2Zmc2V0Ow0KPiAtICAgIGxvbmdvZmZzZXQuUXVhZFBhcnQgPSBsb25nb2Zmc2V0LlF1YWRQYXJ0
ICogMTAwMDAwMDA7DQo+IC0NCj4gLSAgICAvLyBTdWJ0cmFjdCBuYW5vc2Vjb25kIHRpbWVvZmZz
ZXQgZnJvbSBub3cNCj4gLSAgICBsb25nbm93Lkxvd1BhcnQgPSBub3ctPmR3TG93RGF0ZVRpbWU7
DQo+IC0gICAgbG9uZ25vdy5IaWdoUGFydCA9IG5vdy0+ZHdIaWdoRGF0ZVRpbWU7DQo+IC0gICAg
bG9uZ25vdy5RdWFkUGFydCAtPSBsb25nb2Zmc2V0LlF1YWRQYXJ0Ow0KPiAtICAgIG5vdy0+ZHdM
b3dEYXRlVGltZSA9IGxvbmdub3cuTG93UGFydDsNCj4gLSAgICBub3ctPmR3SGlnaERhdGVUaW1l
ID0gbG9uZ25vdy5IaWdoUGFydDsNCj4gLQ0KPiAtICAgIEZyZWVTdHJpbmcocnRja2V5KTsNCj4g
LSAgICBYc0ZyZWUodm0pOw0KPiAtICAgIHJldHVybiB0cnVlOw0KPiAtDQo+IC1mYWlsX3BsYXRm
b3JtdGltZW9mZnNldDoNCj4gLSAgICBYc0xvZygiJXM6IFJlYWQgcGxhdGZvcm0gdGltZSBvZmZz
ZXQiLCBfX0ZVTkNUSU9OX18pOw0KPiAtICAgIEZyZWVTdHJpbmcocnRja2V5KTsNCj4gLQ0KPiAt
ZmFpbF9ydGNrZXk6DQo+IC0gICAgWHNMb2coIiVzOiBSZWFkIFJUQyBLZXkiLCBfX0ZVTkNUSU9O
X18pOw0KPiAtICAgIFhzRnJlZSh2bSk7DQo+IC0NCj4gLWZhaWxfcmVhZHZtOg0KPiAtICAgIFhz
TG9nKCIlczogUmVhZCBWTSBLZXkiLCBfX0ZVTkNUSU9OX18pOw0KPiAtICAgIHJldHVybiBmYWxz
ZTsNCj4gLX0NCj4gLQ0KPiAtc3RhdGljIGJvb2wgaG9zdHRpbWVJc1VUQygpDQo+IC17DQo+IC0g
ICAgSEtFWSAgICAgICAgSW5zdGFsbFJlZ0tleTsNCj4gLSAgICBib29sICAgICAgICB1dGMgPSBm
YWxzZTsNCj4gLSAgICBpZiAoUmVnT3BlbktleUV4KEhLRVlfTE9DQUxfTUFDSElORSwNCj4gLSAg
ICAgICAgICAgICAgICAgICAgIFhFTlRPT0xTX0lOU1RBTExfUkVHX0tFWSwNCj4gLSAgICAgICAg
ICAgICAgICAgICAgIDAsDQo+IC0gICAgICAgICAgICAgICAgICAgICBLRVlfQUxMX0FDQ0VTUywN
Cj4gLSAgICAgICAgICAgICAgICAgICAgICZJbnN0YWxsUmVnS2V5KSAhPSBFUlJPUl9TVUNDRVNT
KQ0KPiAtICAgICAgICBnb3RvIGZhaWxfcmVnaXN0cnlrZXk7DQo+IC0NCj4gLSNpZmRlZiBfV0lO
NjQNCj4gLQ0KPiAtICAgIGlmIChyZWdpc3RyeU1hdGNoU3RyaW5nKEluc3RhbGxSZWdLZXksICJI
b3N0VGltZSIsICJVVEMiLCBmYWxzZSkpDQo+IC0gICAgew0KPiAtICAgICAgICAgdXRjID0gdHJ1
ZTsNCj4gLSAgICAgICAgIGdvdG8gZG9uZTsNCj4gLSAgICB9DQo+IC0NCj4gLSAgICBSZWdDbG9z
ZUtleShJbnN0YWxsUmVnS2V5KTsNCj4gLSAgICBpZiAoUmVnT3BlbktleUV4KEhLRVlfTE9DQUxf
TUFDSElORSwNCj4gLSAgICAgICAgICAgICAgICAgICAgIFhFTlRPT0xTX0lOU1RBTExfUkVHX0tF
WTY0LA0KPiAtICAgICAgICAgICAgICAgICAgICAgMCwNCj4gLSAgICAgICAgICAgICAgICAgICAg
IEtFWV9BTExfQUNDRVNTLA0KPiAtICAgICAgICAgICAgICAgICAgICAgJkluc3RhbGxSZWdLZXkp
ICE9IEVSUk9SX1NVQ0NFU1MpDQo+IC0gICAgICAgIGdvdG8gZmFpbF9yZWdpc3RyeWtleTsNCj4g
LQ0KPiAtI2VuZGlmDQo+IC0NCj4gLSAgICBpZiAocmVnaXN0cnlNYXRjaFN0cmluZyhJbnN0YWxs
UmVnS2V5LCAiSG9zdFRpbWUiLCAiVVRDIiwgZmFsc2UpKQ0KPiAtICAgIHsNCj4gLSAgICAgICAg
dXRjPXRydWU7DQo+IC0gICAgfQ0KPiAtDQo+IC0jaWZkZWYgX1dJTjY0DQo+IC1kb25lOg0KPiAt
I2VuZGlmDQo+IC0gICAgUmVnQ2xvc2VLZXkoSW5zdGFsbFJlZ0tleSk7DQo+IC0gICAgcmV0dXJu
IHV0YzsNCj4gLQ0KPiAtZmFpbF9yZWdpc3RyeWtleToNCj4gLSAgICBYc0xvZygiJXM6IE9wZW4g
UmVnaXN0cnkgS2V5IiwgX19GVU5DVElPTl9fKTsNCj4gLQ0KPiAtICAgIHJldHVybiBmYWxzZTsN
Cj4gLX0NCj4gLQ0KPiAtc3RhdGljIHZvaWQNCj4gLXNldFRpbWVUb1hlblRpbWUodm9pZCkNCj4g
LXsNCj4gLSAgICBGSUxFVElNRSAgICBub3cgPSB7MH07DQo+IC0gICAgU1lTVEVNVElNRSAgc3lz
X3RpbWU7DQo+IC0gICAgU1lTVEVNVElNRSAgY3VycmVudF90aW1lOw0KPiAtICAgIGJvb2wgICAg
ICAgIHV0Yz1mYWxzZTsNCj4gLSAgICBYc0xvZygiU2V0IHRpbWUgdG8gWGVuVGltZSIpOw0KPiAt
DQo+IC0gICAgR2V0WGVuVGltZSgmbm93KTsNCj4gLSAgICBpZiAoKG5vdy5kd0xvd0RhdGVUaW1l
ID09IDApICYmIChub3cuZHdIaWdoRGF0ZVRpbWUgPT0gMCkpIHsNCj4gLSAgICAgICAgWHNMb2co
IkNhbm5vdCBzZXQgc3lzdGVtIHRpbWUgdG8geGVudGltZSwgdW5hYmxlIHRvIGNvbnRhY3QgV01J
Iik7DQo+IC0gICAgICAgIGdvdG8gZmFpbF9yZWFkdGltZTsNCj4gLSAgICB9DQo+IC0NCj4gLSAg
ICB1dGMgPSBob3N0dGltZUlzVVRDKCk7DQo+IC0NCj4gLSAgICBpZiAodXRjKSB7DQo+IC0gICAg
ICAgIFhzTG9nKCJUcnkgVVRDIik7DQo+IC0gICAgICAgIGlmICghYWRqdXN0WGVuVGltZVRvVVRD
KCZub3cpKQ0KPiAtICAgICAgICAgICAgZ290byBmYWlsX2FkanVzdHRpbWU7DQo+IC0gICAgfQ0K
PiAtDQo+IC0gICAgaWYgKCFGaWxlVGltZVRvU3lzdGVtVGltZSgmbm93LCAmc3lzX3RpbWUpKSB7
DQo+IC0gICAgICAgIFhzTG9nKCJHb3VsZCBub3QgY29udmVydCBmaWxlIHRpbWUgdG8gc3lzdGVt
IHRpbWUiKTsNCj4gLSAgICAgICAgUHJpbnRFcnJvcigiRmlsZVRpbWVUb1N5c3RlbVRpbWUoKSIp
Ow0KPiAtICAgICAgICBEQkdQUklOVCgoIkZpbGVUaW1lVG9TeXN0ZW1UaW1lKCV4LiV4KVxuIiwN
Cj4gLSAgICAgICAgICAgICAgICAgIG5vdy5kd0xvd0RhdGVUaW1lLCBub3cuZHdIaWdoRGF0ZVRp
bWUpKTsNCj4gLSAgICB9IGVsc2Ugew0KPiAtICAgICAgICBHZXRMb2NhbFRpbWUoJmN1cnJlbnRf
dGltZSk7DQo+IC0gICAgICAgIFhzTG9nKCJUaW1lIGlzIG5vdyAgJWQuJWQuJWQgJWQ6JWQ6JWQu
JWQiLA0KPiAtICAgICAgICAgICAgICBjdXJyZW50X3RpbWUud1llYXIsIGN1cnJlbnRfdGltZS53
TW9udGgsIGN1cnJlbnRfdGltZS53RGF5LA0KPiAtICAgICAgICAgICAgICBjdXJyZW50X3RpbWUu
d0hvdXIsIGN1cnJlbnRfdGltZS53TWludXRlLA0KPiBjdXJyZW50X3RpbWUud1NlY29uZCwNCj4g
LSAgICAgICAgICAgICAgY3VycmVudF90aW1lLndNaWxsaXNlY29uZHMpOw0KPiAtICAgICAgICBY
c0xvZygiU2V0IHRpbWUgdG8gJWQuJWQuJWQgJWQ6JWQ6JWQuJWQiLA0KPiAtICAgICAgICAgICAg
ICBzeXNfdGltZS53WWVhciwgc3lzX3RpbWUud01vbnRoLCBzeXNfdGltZS53RGF5LA0KPiAtICAg
ICAgICAgICAgICBzeXNfdGltZS53SG91ciwgc3lzX3RpbWUud01pbnV0ZSwgc3lzX3RpbWUud1Nl
Y29uZCwNCj4gLSAgICAgICAgICAgICAgc3lzX3RpbWUud01pbGxpc2Vjb25kcyk7DQo+IC0gICAg
ICAgIGlmICh1dGMpIHsNCj4gLSAgICAgICAgICAgIGlmICghU2V0U3lzdGVtVGltZSgmc3lzX3Rp
bWUpKQ0KPiAtICAgICAgICAgICAgICAgIFByaW50RXJyb3IoIlNldFN5c3RlbVRpbWUoKSIpOw0K
PiAtICAgICAgICB9DQo+IC0gICAgICAgIGVsc2Ugew0KPiAtICAgICAgICAgICAgaWYgKCFTZXRM
b2NhbFRpbWUoJnN5c190aW1lKSkNCj4gLSAgICAgICAgICAgICAgICBQcmludEVycm9yKCJTZXRM
b2NhbFRpbWUoKSIpOw0KPiAtICAgICAgICB9DQo+IC0gICAgfQ0KPiAtDQo+IC0gICAgcmV0dXJu
Ow0KPiAtDQo+IC1mYWlsX2FkanVzdHRpbWU6DQo+IC0gICAgWHNMb2coIiVzOiBBZGp1c3QgdGlt
ZSIsIF9fRlVOQ1RJT05fXyk7DQo+IC0NCj4gLWZhaWxfcmVhZHRpbWU6DQo+IC0gICAgWHNMb2co
IiVzOiBSZWFkVGltZSIsIF9fRlVOQ1RJT05fXyk7DQo+IC19DQo+IC0NCj4gLS8qIFdlIG5lZWQg
dG8gcmVzeW5jIHRoZSBjbG9jayB3aGVuIHdlIHJlY292ZXIgZnJvbSBzdXNwZW5kL3Jlc3VtZS4g
Ki8NCj4gLXN0YXRpYyB2b2lkDQo+IC1maW5pc2hTdXNwZW5kKHZvaWQpDQo+IC17DQo+IC0gICAg
REJHUFJJTlQoKCJDb21pbmcgYmFjayBmcm9tIHN1c3BlbmQuXG4iKSk7DQo+IC0gICAgc2V0VGlt
ZVRvWGVuVGltZSgpOw0KPiAtfQ0KPiAtDQo+IC0NCj4gLQ0KPiAtLy8NCj4gLS8vIE1haW4gbG9v
cA0KPiAtLy8NCj4gLUJPT0wgUnVuKCkNCj4gLXsNCj4gLSAgICBib29sIGV4aXQ9ZmFsc2U7DQo+
IC0gICAgUENIQVIgcFBWQWRkb25zSW5zdGFsbGVkID0gTlVMTDsNCj4gLQ0KPiAtICAgIEhBTkRM
RSBzdXNwZW5kRXZlbnQ7DQo+IC0NCj4gLSAgICBpbnQgY250ciA9IDA7DQo+IC0gICAgc3RydWN0
IHdhdGNoX2ZlYXR1cmVfc2V0IGZlYXR1cmVzOw0KPiAtICAgIEJPT0wgc25hcCA9IEZBTFNFOw0K
PiAtDQo+IC0gICAgT3V0cHV0RGVidWdTdHJpbmcoIlRyeWluZyB0byBjb25uZWN0IHRvIFdNSVxu
Iik7DQo+IC0gICAgd2hpbGUgKCFDb25uZWN0VG9XTUkoKSkgew0KPiAtICAgICAgICBPdXRwdXRE
ZWJ1Z1N0cmluZygiVW5hYmxlIHRvIGNvbm5lY3QgdG8gV01JLCBzbGVlcGluZ1xuIik7DQo+IC0g
ICAgICAgIGlmIChXYWl0Rm9yU2luZ2xlT2JqZWN0KGhTZXJ2aWNlRXhpdEV2ZW50LCAxMDAwKjEw
KSA9PQ0KPiBXQUlUX09CSkVDVF8wKSB7DQo+IC0gICAgICAgICAgICBleGl0ID0gdHJ1ZTsNCj4g
LSAgICAgICAgICAgIHJldHVybiBleGl0Ow0KPiAtICAgICAgICB9DQo+IC0gICAgfQ0KPiAtICAg
IHdoaWxlIChJbml0WFNBY2Nlc3NvcigpPT1mYWxzZSkgew0KPiAtICAgICAgICBPdXRwdXREZWJ1
Z1N0cmluZygiVW5hYmxlIHRvIGluaXRpYWxpc2UgV01JIHNlc3Npb24sIHNsZWVwaW5nXG4iKTsN
Cj4gLSAgICAgICAgaWYgKFdhaXRGb3JTaW5nbGVPYmplY3QoaFNlcnZpY2VFeGl0RXZlbnQsIDEw
MDAqMTApID09DQo+IFdBSVRfT0JKRUNUXzApIHsNCj4gLSAgICAgICAgICAgIGV4aXQgPSB0cnVl
Ow0KPiAtICAgICAgICAgICAgcmV0dXJuIGV4aXQ7DQo+IC0gICAgICAgIH0NCj4gLSAgICB9DQo+
IC0gICAgWHNMb2coIkd1ZXN0IGFnZW50IGxpdGUgbWFpbiBsb29wIHN0YXJ0aW5nIik7DQo+IC0N
Cj4gLSAgICBpZiAoZXZlbnRMb2cgPT0gTlVMTCkNCj4gLSAgICAgICAgWHNMb2coIkV2ZW50IGxv
ZyB3YXMgbm90IGluaXRpYWxpc2VkIik7DQo+IC0NCj4gLSAgICBzZXRUaW1lVG9YZW5UaW1lKCk7
DQo+IC0NCj4gLSAgICBtZW1zZXQoJmZlYXR1cmVzLCAwLCBzaXplb2YoZmVhdHVyZXMpKTsNCj4g
LQ0KPiAtICAgIEhBTkRMRSB3bWllcnJvckV2ZW50ID0gQ3JlYXRlRXZlbnQoTlVMTCwgRkFMU0Us
IEZBTFNFLCBOVUxMKTsNCj4gLSAgICBpZiAoIXdtaWVycm9yRXZlbnQpIHsNCj4gLSAgICAgICAg
UHJpbnRFcnJvcigiQ3JlYXRlRXZlbnQoKSB3bWllcnJvckV2ZW50Iik7DQo+IC0gICAgICAgIHJl
dHVybiBleGl0Ow0KPiAtICAgIH0NCj4gLQ0KPiAtDQo+IC0gICAgWHNMb2coIkFib3V0IHRvIGFk
ZCBmZWF0dXJlIHNodXRkb3duIik7DQo+IC0gICAgaWYgKCFBZGRGZWF0dXJlKCZmZWF0dXJlcywg
ImNvbnRyb2wvc2h1dGRvd24iLCAiY29udHJvbC9mZWF0dXJlLQ0KPiBzaHV0ZG93biIsDQo+IC0g
ICAgICAgICAgICAgICAgICAgICJzaHV0ZG93biIsIG1heWJlUmVib290LCBOVUxMLCB3bWllcnJv
ckV2ZW50KSkgew0KPiAtICAgICAgICByZXR1cm4gZXhpdDsNCj4gLSAgICB9DQo+IC0NCj4gLSAg
ICBzdXNwZW5kRXZlbnQgPSBDcmVhdGVFdmVudChOVUxMLCBGQUxTRSwgRkFMU0UsIE5VTEwpOw0K
PiAtICAgIGlmICghc3VzcGVuZEV2ZW50KSB7DQo+IC0gICAgICAgIFByaW50RXJyb3IoIkNyZWF0
ZUV2ZW50KCkgc3VzcGVuZEV2ZW50Iik7DQo+IC0gICAgICAgIHJldHVybiBleGl0Ow0KPiAtICAg
IH0NCj4gLQ0KPiAtICAgIGlmIChMaXN0ZW5TdXNwZW5kKHN1c3BlbmRFdmVudCwgd21pZXJyb3JF
dmVudCkgPCAwKSB7DQo+IC0gICAgICAgIFByaW50RXJyb3IoIkxpc3RlblN1c3BlbmQoKSIpOw0K
PiAtICAgICAgICBDbG9zZUhhbmRsZShzdXNwZW5kRXZlbnQpOw0KPiAtICAgICAgICBzdXNwZW5k
RXZlbnQgPSBOVUxMOw0KPiAtICAgICAgICByZXR1cm4gZXhpdDsNCj4gLSAgICB9DQo+IC0NCj4g
LQ0KPiAtICAgIFhzTG9nKCJBYm91dCB0byBhZHZlcnRpc2UgZmVhdHVyZXMiKTsNCj4gLSAgICBB
ZHZlcnRpc2VGZWF0dXJlcygmZmVhdHVyZXMpOw0KPiAtDQo+IC0gICAgWHNMb2coIkFib3V0IHRv
IGtpY2sgeGFwaSAiKTsNCj4gLSAgICBYZW5zdG9yZUtpY2tYYXBpKCk7DQo+IC0NCj4gLSAgICB3
aGlsZSAoMSkNCj4gLSAgICB7DQo+IC0gICAgICAgIERXT1JEIHN0YXR1czsNCj4gLSAgICAgICAg
aW50IG5yX2hhbmRsZXMgPSAxOw0KPiAtICAgICAgICBIQU5ETEUgaGFuZGxlc1szICsgTUFYX0ZF
QVRVUkVTXTsNCj4gLSAgICAgICAgdW5zaWduZWQgeDsNCj4gLQ0KPiAtICAgICAgICBoYW5kbGVz
WzBdID0gaFNlcnZpY2VFeGl0RXZlbnQ7DQo+IC0gICAgICAgIGlmICh3bWllcnJvckV2ZW50KQ0K
PiAtICAgICAgICAgICAgaGFuZGxlc1tucl9oYW5kbGVzKytdID0gd21pZXJyb3JFdmVudDsNCj4g
LSAgICAgICAgaWYgKHN1c3BlbmRFdmVudCkNCj4gLSAgICAgICAgICAgIGhhbmRsZXNbbnJfaGFu
ZGxlcysrXSA9IHN1c3BlbmRFdmVudDsNCj4gLSAgICAgICAgZm9yICh4ID0gMDsgeCA8IGZlYXR1
cmVzLm5yX2ZlYXR1cmVzOyB4KyspDQo+IC0gICAgICAgICAgICBoYW5kbGVzW25yX2hhbmRsZXMr
K10gPSBmZWF0dXJlcy5mZWF0dXJlc1t4XS53YXRjaC0+ZXZlbnQ7DQo+IC0NCj4gLSAgICAgICAg
WHNMb2coIndpbiBhZ2VudCBnb2luZyB0byBzbGVlcCIpOw0KPiAtICAgICAgICBzdGF0dXMgPSBX
YWl0Rm9yTXVsdGlwbGVPYmplY3RzKG5yX2hhbmRsZXMsIGhhbmRsZXMsIEZBTFNFLCBJTkZJTklU
RSk7DQo+IC0gICAgICAgIFhzTG9nKCJ3aW4gYWdlbnQgd29rZSB1cCBmb3IgJWQiLCBzdGF0dXMp
Ow0KPiAtDQo+IC0gICAgICAgIC8qIFdBSVRfT0JKRUNUXzAgaGFwcGVucyB0byBiZSAwLCBzbyB0
aGUgY29tcGlsZXIgZ2V0cyBzaGlydHkNCj4gLSAgICAgICAgICAgYWJvdXQgc3RhdHVzID49IFdB
SVRfT0JKRUNUXzAgKHNpbmNlIHN0YXR1cyBpcyB1bnNpZ25lZCkuDQo+IC0gICAgICAgICAgIFRo
aXMgaXMgbW9yZSBvYnZpb3VzbHkgY29ycmVjdCB0aGFuIHRoZSBjb21waWxlci1mcmllbmRseQ0K
PiAtICAgICAgICAgICB2ZXJzaW9uLCB0aG91Z2gsIHNvIGp1c3QgZGlzYWJsZSB0aGUgd2Fybmlu
Zy4gKi8NCj4gLQ0KPiAtI3ByYWdtYSB3YXJuaW5nIChkaXNhYmxlOiA0Mjk2KQ0KPiAtICAgICAg
ICBpZiAoc3RhdHVzID49IFdBSVRfT0JKRUNUXzAgJiYNCj4gLSAgICAgICAgICAgIHN0YXR1cyA8
IFdBSVRfT0JKRUNUXzAgKyBucl9oYW5kbGVzKQ0KPiAtI3ByYWdtYSB3YXJuaW5nIChkZWZhdWx0
OiA0Mjk2KQ0KPiAtICAgICAgICB7DQo+IC0gICAgICAgICAgICBIQU5ETEUgZXZlbnQgPSBoYW5k
bGVzW3N0YXR1cyAtIFdBSVRfT0JKRUNUXzBdOw0KPiAtICAgICAgICAgICAgaWYgKGV2ZW50ID09
IGhTZXJ2aWNlRXhpdEV2ZW50KQ0KPiAtICAgICAgICAgICAgew0KPiAtICAgICAgICAgICAgICAg
IFhzTG9nKCJzZXJ2aWNlIGV4aXQgZXZlbnQiKTsNCj4gLSAgICAgICAgICAgICAgICBleGl0ID0g
dHJ1ZTsNCj4gLSAgICAgICAgICAgICAgICBicmVhazsNCj4gLSAgICAgICAgICAgIH0NCj4gLSAg
ICAgICAgICAgIGVsc2UgaWYgKGV2ZW50ID09IHN1c3BlbmRFdmVudCkNCj4gLSAgICAgICAgICAg
IHsNCj4gLSAgICAgICAgICAgICAgICBpZiAoIVJlcG9ydEV2ZW50KGV2ZW50TG9nLCBFVkVOVExP
R19TVUNDRVNTLCAwLA0KPiBFVkVOVF9YRU5VU0VSX1VOU1VTUEVOREVELCBOVUxMLCAwLCAwLA0K
PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpKSB7DQo+IC0gICAgICAg
ICAgICAgICAgICAgIFhzTG9nKCJDYW5ub3Qgc2VuZCB0byBldmVudCBsb2cgJXgiLEdldExhc3RF
cnJvcigpKTsNCj4gLSAgICAgICAgICAgICAgICB9DQo+IC0gICAgICAgICAgICAgICAgWHNMb2co
IlN1c3BlbmQgZXZlbnQiKTsNCj4gLSAgICAgICAgICAgICAgICBmaW5pc2hTdXNwZW5kKCk7DQo+
IC0gICAgICAgICAgICAgICAgQWR2ZXJ0aXNlRmVhdHVyZXMoJmZlYXR1cmVzKTsNCj4gLSAgICAg
ICAgICAgICAgICBYZW5zdG9yZUtpY2tYYXBpKCk7DQo+IC0gICAgICAgICAgICAgICAgWHNMb2co
IkhhbmRsZWQgc3VzcGVuZCBldmVudCIpOw0KPiAtICAgICAgICAgICAgfQ0KPiAtICAgICAgICAg
ICAgZWxzZSBpZiAoZXZlbnQgPT0gd21pZXJyb3JFdmVudCkNCj4gLSAgICAgICAgICAgIHsNCj4g
LSAgICAgICAgICAgICAgICBSZXBvcnRFdmVudChldmVudExvZywgRVZFTlRMT0dfU1VDQ0VTUywg
MCwNCj4gRVZFTlRfWEVOVVNFUl9XTUksIE5VTEwsIDAsIDAsDQo+IC0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTlVMTCwgTlVMTCk7DQo+IC0gICAgICAgICAgICAgICAgYnJlYWs7DQo+IC0g
ICAgICAgICAgICB9DQo+IC0gICAgICAgICAgICBlbHNlDQo+IC0gICAgICAgICAgICB7DQo+IC0g
ICAgICAgICAgICAgICAgQk9PTCBmYWlsID0gZmFsc2U7DQo+IC0gICAgICAgICAgICAgICAgZm9y
ICh4ID0gMDsgeCA8IGZlYXR1cmVzLm5yX2ZlYXR1cmVzOyB4KyspIHsNCj4gLSAgICAgICAgICAg
ICAgICAgICAgaWYgKGZlYXR1cmVzLmZlYXR1cmVzW3hdLndhdGNoLT5ldmVudCA9PSBldmVudCkg
ew0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgWHNMb2coIkZpcmUgJXAiLGZlYXR1cmVzLmZl
YXR1cmVzW3hdLm5hbWUpOw0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgWHNMb2coImZpcmUg
ZmVhdHVyZSAlcyIsIGZlYXR1cmVzLmZlYXR1cmVzW3hdLm5hbWUpOw0KPiAtICAgICAgICAgICAg
ICAgICAgICAgICAgT3V0cHV0RGVidWdTdHJpbmcoIkV2ZW50IHRyaWdnZXJlZFxuIik7DQo+IC0g
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoIShmZWF0dXJlcy5mZWF0dXJlc1t4XS5oYW5kbGVy
KGZlYXR1cmVzLmZlYXR1cmVzW3hdLmN0eCkpKQ0KPiAtICAgICAgICAgICAgICAgICAgICAgICAg
ew0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhzTG9nKCJGaXJpbmcgZmVhdHVyZSBm
YWlsZWQiKTsNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmludEVycm9yKCJGZWF0
dXJlIGZhaWxlZCIpOw0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwgPSB0cnVl
Ow0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgfQ0KPiAtICAgICAgICAgICAgICAgICAgICAg
ICAgWHNMb2coImZpcmVkIGZlYXR1cmUgJXMiLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmZWF0dXJlcy5mZWF0dXJlc1t4XS5uYW1lKTsNCj4gLSAgICAgICAgICAgICAgICAg
ICAgfQ0KPiAtICAgICAgICAgICAgICAgIH0NCj4gLSAgICAgICAgICAgICAgICBpZiAoZmFpbCkg
ew0KPiAtICAgICAgICAgICAgICAgICAgICBYc0xvZygiUmVzZXR0aW5nIik7DQo+IC0gICAgICAg
ICAgICAgICAgICAgIFJlcG9ydEV2ZW50KGV2ZW50TG9nLCBFVkVOVExPR19TVUNDRVNTLCAwLA0K
PiBFVkVOVF9YRU5VU0VSX1VORVhQRUNURUQsIE5VTEwsIDAsIDAsDQo+IC0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpOw0KPiAtICAgICAgICAgICAgICAgICAgICBi
cmVhazsNCj4gLSAgICAgICAgICAgICAgICB9DQo+IC0gICAgICAgICAgICB9DQo+IC0gICAgICAg
IH0NCj4gLSAgICAgICAgZWxzZQ0KPiAtICAgICAgICB7DQo+IC0gICAgICAgICAgICBQcmludEVy
cm9yKCJXYWl0Rm9yTXVsdGlwbGVPYmplY3RzKCkiKTsNCj4gLSAgICAgICAgICAgIGJyZWFrOw0K
PiAtICAgICAgICB9DQo+IC0gICAgfQ0KPiAtICAgIE91dHB1dERlYnVnU3RyaW5nKCJXTUkgV2F0
Y2ggbG9vcCB0ZXJtaW5hdGVkXG4iKTsNCj4gLSAgICBSZW1vdmVGZWF0dXJlcygmZmVhdHVyZXMp
Ow0KPiAtICAgIFhlbnN0b3JlS2lja1hhcGkoKTsNCj4gLQ0KPiAtICAgIFhzTG9nKCJHdWVzdCBh
Z2VudCBsaXRlIGxvb3AgZmluaXNoaW5nIik7DQo+IC0gICAgUmVsZWFzZVdNSUFjY2Vzc29yKCZ3
bWkpOw0KPiAtDQo+IC0NCj4gLQ0KPiAtDQo+IC0gICAgWHNMb2coIkd1ZXN0IGFnZW50IGxpdGUg
bG9vcCBmaW5pc2hlZCAlZCIsIGV4aXQpOw0KPiAtICAgIHJldHVybiBleGl0Ow0KPiAtfQ0KPiAt
DQo+IC0NCj4gLS8vIFNlcnZpY2UgaW5pdGlhbGl6YXRpb24NCj4gLWJvb2wgU2VydmljZUluaXQo
KQ0KPiAtew0KPiAtICAgIFNlcnZpY2VTdGF0dXMuZHdTZXJ2aWNlVHlwZSAgICAgICAgPSBTRVJW
SUNFX1dJTjMyOw0KPiAtICAgIFNlcnZpY2VTdGF0dXMuZHdDdXJyZW50U3RhdGUgICAgICAgPSBT
RVJWSUNFX1NUQVJUX1BFTkRJTkc7DQo+IC0gICAgU2VydmljZVN0YXR1cy5kd0NvbnRyb2xzQWNj
ZXB0ZWQgICA9DQo+IC0gICAgICAgIFNFUlZJQ0VfQUNDRVBUX1NUT1AgfCBTRVJWSUNFX0FDQ0VQ
VF9TSFVURE9XTiB8DQo+IC0gICAgICAgIFNFUlZJQ0VfQUNDRVBUX1NFU1NJT05DSEFOR0U7DQo+
IC0gICAgU2VydmljZVN0YXR1cy5kd1dpbjMyRXhpdENvZGUgICAgICA9IDA7DQo+IC0gICAgU2Vy
dmljZVN0YXR1cy5kd1NlcnZpY2VTcGVjaWZpY0V4aXRDb2RlID0gMDsNCj4gLSAgICBTZXJ2aWNl
U3RhdHVzLmR3Q2hlY2tQb2ludCAgICAgICAgID0gMDsNCj4gLSAgICBTZXJ2aWNlU3RhdHVzLmR3
V2FpdEhpbnQgICAgICAgICAgID0gMDsNCj4gLQ0KPiAtICAgIGhTdGF0dXMgPSBSZWdpc3RlclNl
cnZpY2VDdHJsSGFuZGxlckV4KA0KPiAtICAgICAgICAiWGVuU2VydmljZSIsDQo+IC0gICAgICAg
IFNlcnZpY2VDb250cm9sSGFuZGxlciwNCj4gLSAgICAgICAgTlVMTCk7DQo+IC0gICAgaWYgKGhT
dGF0dXMgPT0gKFNFUlZJQ0VfU1RBVFVTX0hBTkRMRSkwKQ0KPiAtICAgIHsNCj4gLSAgICAgICAg
Ly8gUmVnaXN0ZXJpbmcgQ29udHJvbCBIYW5kbGVyIGZhaWxlZA0KPiAtICAgICAgICBEQkdQUklO
VCgoIlhlblN2YzogUmVnaXN0ZXJpbmcgc2VydmljZSBjb250cm9sIGhhbmRsZXIgZmFpbGVkIC0g
JWRcbiIsDQo+IEdldExhc3RFcnJvcigpKSk7DQo+IC0gICAgICAgIHJldHVybiBmYWxzZTsNCj4g
LSAgICB9DQo+IC0NCj4gLSAgICBTZXJ2aWNlU3RhdHVzLmR3Q3VycmVudFN0YXRlID0gU0VSVklD
RV9SVU5OSU5HOw0KPiAtICAgIFNldFNlcnZpY2VTdGF0dXMgKGhTdGF0dXMsICZTZXJ2aWNlU3Rh
dHVzKTsNCj4gLQ0KPiAtICAgIHJldHVybiB0cnVlOw0KPiAtfQ0KPiAtDQo+IC12b2lkIFdJTkFQ
SSBTZXJ2aWNlTWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpDQo+IC17DQo+IC0gICAgLy8gUGVy
Zm9ybSBjb21tb24gaW5pdGlhbGl6YXRpb24NCj4gLSAgICBldmVudExvZyA9IFJlZ2lzdGVyRXZl
bnRTb3VyY2UoTlVMTCwgInhlbnN2YyIpOw0KPiAtICAgIGhTZXJ2aWNlRXhpdEV2ZW50ID0gQ3Jl
YXRlRXZlbnQoTlVMTCwgZmFsc2UsIGZhbHNlLCBOVUxMKTsNCj4gLSAgICBpZiAoaFNlcnZpY2VF
eGl0RXZlbnQgPT0gTlVMTCkNCj4gLSAgICB7DQo+IC0gICAgICAgIERCR1BSSU5UKCgiWGVuU3Zj
OiBVbmFibGUgdG8gY3JlYXRlIHRoZSBldmVudCBvYmogLSAlZFxuIiwNCj4gR2V0TGFzdEVycm9y
KCkpKTsNCj4gLSAgICAgICAgcmV0dXJuOw0KPiAtICAgIH0NCj4gLQ0KPiAtICAgIGlmICghU2Vy
dmljZUluaXQoKSkNCj4gLSAgICB7DQo+IC0gICAgICAgIERCR1BSSU5UKCgiWGVuU3ZjOiBVbmFi
bGUgdG8gaW5pdCB4ZW5zZXJ2aWNlXG4iKSk7DQo+IC0gICAgICAgIHJldHVybjsNCj4gLSAgICB9
DQo+IC0gICAgQk9PTCBzdG9wcGluZzsNCj4gLQ0KPiAtICAgIGRvIHsNCj4gLQ0KPiAtICAgICAg
ICBfX3RyeQ0KPiAtICAgICAgICB7DQo+IC0gICAgICAgICAgICBzdG9wcGluZyA9IFJ1bigpOw0K
PiAtDQo+IC0gICAgICAgIH0NCj4gLSAgICAgICAgX19leGNlcHQoRVhDRVBUSU9OX0VYRUNVVEVf
SEFORExFUikNCj4gLSAgICAgICAgew0KPiAtICAgICAgICAgICAgX190cnkgew0KPiAtICAgICAg
ICAgICAgICAgIFhzTG9nKCJFeGNlcHRpb24gaGl0ICV4IiwgR2V0RXhjZXB0aW9uQ29kZSgpKTsN
Cj4gLSAgICAgICAgICAgIH0NCj4gLSAgICAgICAgICAgIF9fZXhjZXB0KEVYQ0VQVElPTl9FWEVD
VVRFX0hBTkRMRVIpDQo+IC0gICAgICAgICAgICB7DQo+IC0gICAgICAgICAgICB9DQo+IC0gICAg
ICAgICAgICBzdG9wcGluZyA9IGZhbHNlOw0KPiAtICAgICAgICB9DQo+IC0gICAgfSB3aGlsZSAo
IXN0b3BwaW5nKTsNCj4gLQ0KPiAtICAgIFhzTG9nKCJHdWVzdCBhZ2VudCBzZXJ2aWNlIHN0b3Bw
ZWQiKTsNCj4gLSAgICBTaHV0ZG93blhTQWNjZXNzb3IoKTsNCj4gLSAgICBEZXJlZ2lzdGVyRXZl
bnRTb3VyY2UoZXZlbnRMb2cpOw0KPiAtICAgIFNlcnZpY2VDb250cm9sTWFuYWdlclVwZGF0ZSgw
LCBTRVJWSUNFX1NUT1BQRUQpOw0KPiAtICAgIHJldHVybjsNCj4gLX0NCj4gLQ0KPiAtdm9pZCBT
ZXJ2aWNlQ29udHJvbE1hbmFnZXJVcGRhdGUoRFdPUkQgZHdFeGl0Q29kZSwgRFdPUkQgZHdTdGF0
ZSkNCj4gLXsNCj4gLSAgICBTZXJ2aWNlU3RhdHVzLmR3V2luMzJFeGl0Q29kZSA9IGR3RXhpdENv
ZGU7DQo+IC0gICAgU2VydmljZVN0YXR1cy5kd0N1cnJlbnRTdGF0ZSAgPSBkd1N0YXRlOw0KPiAt
ICAgIFNldFNlcnZpY2VTdGF0dXMgKGhTdGF0dXMsICZTZXJ2aWNlU3RhdHVzKTsNCj4gLX0NCj4g
LQ0KPiAtLy8gU2VydmljZSBjb250cm9sIGhhbmRsZXIgZnVuY3Rpb24NCj4gLXN0YXRpYyBEV09S
RCBXSU5BUEkgU2VydmljZUNvbnRyb2xIYW5kbGVyKERXT1JEIHJlcXVlc3QsIERXT1JEDQo+IGV2
dFR5cGUsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMUFZP
SUQgZXZlbnREYXRhLCBMUFZPSUQgY3R4dCkNCj4gLXsNCj4gLSAgICBVTlJFRkVSRU5DRURfUEFS
QU1FVEVSKGN0eHQpOw0KPiAtICAgIFVOUkVGRVJFTkNFRF9QQVJBTUVURVIoZXZlbnREYXRhKTsN
Cj4gLQ0KPiAtICAgIHN3aXRjaChyZXF1ZXN0KQ0KPiAtICAgIHsNCj4gLSAgICAgICAgY2FzZSBT
RVJWSUNFX0NPTlRST0xfU1RPUDoNCj4gLSAgICAgICAgICAgIERCR1BSSU5UKCgiWGVuU3ZjOiB4
ZW5zZXJ2aWNlIHN0b3BwZWQuXG4iKSk7DQo+IC0gICAgICAgICAgICBTZXJ2aWNlQ29udHJvbE1h
bmFnZXJVcGRhdGUoMCwgU0VSVklDRV9TVE9QX1BFTkRJTkcpOw0KPiAtICAgICAgICAgICAgU2V0
RXZlbnQoaFNlcnZpY2VFeGl0RXZlbnQpOw0KPiAtICAgICAgICAgICAgcmV0dXJuIE5PX0VSUk9S
Ow0KPiAtDQo+IC0gICAgICAgIGNhc2UgU0VSVklDRV9DT05UUk9MX1NIVVRET1dOOg0KPiAtICAg
ICAgICAgICAgREJHUFJJTlQoKCJYZW5TdmM6IHhlbnNlcnZpY2Ugc2h1dGRvd24uXG4iKSk7DQo+
IC0gICAgICAgICAgICBTZXJ2aWNlQ29udHJvbE1hbmFnZXJVcGRhdGUoMCwgU0VSVklDRV9TVE9Q
X1BFTkRJTkcpOw0KPiAtICAgICAgICAgICAgU2V0RXZlbnQoaFNlcnZpY2VFeGl0RXZlbnQpOw0K
PiAtICAgICAgICAgICAgcmV0dXJuIE5PX0VSUk9SOw0KPiAtDQo+IC0gICAgICAgIGRlZmF1bHQ6
DQo+IC0gICAgICAgIERCR1BSSU5UKCgiWGVuU3ZjOiB1bmtub3duIHJlcXVlc3QuIikpOw0KPiAt
ICAgICAgICAgICAgYnJlYWs7DQo+IC0gICAgfQ0KPiAtDQo+IC0gICAgU2VydmljZUNvbnRyb2xN
YW5hZ2VyVXBkYXRlKDAsIFNFUlZJQ0VfUlVOTklORyk7DQo+IC0gICAgcmV0dXJuIEVSUk9SX0NB
TExfTk9UX0lNUExFTUVOVEVEOw0KPiAtfQ0KPiBkaWZmIC0tZ2l0IGEvc3JjL3dpbjMyc3R1YmFn
ZW50L1hTZXJ2aWNlLmggYi9zcmMvd2luMzJzdHViYWdlbnQvWFNlcnZpY2UuaA0KPiBkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMzJlZTE2My4uMDAwMDAwMA0KPiAtLS0gYS9zcmMv
d2luMzJzdHViYWdlbnQvWFNlcnZpY2UuaA0KPiArKysgL2Rldi9udWxsDQo+IEBAIC0xLDU0ICsw
LDAgQEANCj4gLS8qIENvcHlyaWdodCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLg0KPiAtICogQWxs
IHJpZ2h0cyByZXNlcnZlZC4NCj4gLSAqDQo+IC0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLA0KPiAtICogd2l0aCBvciB3aXRob3V0IG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZA0KPiAtICogdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlIG1ldDoNCj4gLSAqDQo+IC0gKiAqICAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQ0KPiAtICogICAgIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUNCj4gLSAqICAgICBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4NCj4gLSAqICogICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlDQo+IC0gKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZQ0KPiAtICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlcg0KPiAtICogICAgIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uDQo+IC0gKg0KPiAtICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EDQo+IC0gKiBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLA0KPiAt
ICogSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YNCj4gLSAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFDQo+IC0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUIEhPTERFUiBPUg0KPiAtICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsDQo+IC0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLA0KPiAtICogQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SDQo+IC0gKiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTDQo+IC0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwNCj4gLSAq
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
Rw0KPiAtICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQ0KPiAtICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRg0KPiAtICogU1VDSCBEQU1BR0UuDQo+IC0gKi8NCj4gLQ0KPiAtI2lm
bmRlZiBfWFNFUlZJQ0VfSA0KPiAtI2RlZmluZSBfWFNFUlZJQ0VfSA0KPiAtDQo+IC0jaW5jbHVk
ZSA8dmVyc2lvbi5oPg0KPiAtDQo+IC0jZGVmaW5lIFNWQ19OQU1FICJ4ZW5zdmMiDQo+IC0jZGVm
aW5lIFNWQ19ESVNQTEFZTkFNRSBQUk9EVUNUX05BTUVfU1RSICMjICJJbnRlcmZhY2UgU2Vydmlj
ZSINCj4gLSNkZWZpbmUgU1ZDX0RFU0MgIk1vbml0b3JzIGFuZCBwcm92aWRlcyB2YXJpb3VzIG1l
dHJpY3MgdG8gWGVuU3RvcmUiDQo+IC0NCj4gLXZvaWQgUHJpbnRFcnJvcihjb25zdCBjaGFyICpm
dW5jKTsNCj4gLXZvaWQgUHJpbnRFcnJvcihjb25zdCBjaGFyICpmdW5jLCBEV09SRCBlcnIpOw0K
PiAtdm9pZCBTdGFydENsaXBib2FyZFN5bmModm9pZCk7DQo+IC12b2lkIEZpbmlzaENsaXBib2Fy
ZFN5bmModm9pZCk7DQo+IC12b2lkIENsaXBib2FyZENvbnNvbGVDaGFuZ2VkKHZvaWQpOw0KPiAt
DQo+IC12b2lkIFhzRHVtcExvZ1RoaXNUaHJlYWQodm9pZCk7DQo+IC12b2lkIFhzSW5pdFBlclRo
cmVhZExvZ2dpbmcodm9pZCk7DQo+IC12b2lkIFhzTG9nTXNnKGNvbnN0IGNoYXIgKmZtdCwgLi4u
KTsNCj4gLXZvaWQgRG9Wb2x1bWVEdW1wKHZvaWQpOw0KPiAtDQo+IC12b2lkIEFjcXVpcmVTeXN0
ZW1Qcml2aWxlZ2UoTFBDVFNUUiBuYW1lKTsNCj4gLQ0KPiAtI2VuZGlmDQo+IGRpZmYgLS1naXQg
YS9zcmMvd2luMzJzdHViYWdlbnQvZXJyb3JzLmNwcCBiL3NyYy93aW4zMnN0dWJhZ2VudC9lcnJv
cnMuY3BwDQo+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCBjYWY0N2NjLi4wMDAw
MDAwDQo+IC0tLSBhL3NyYy93aW4zMnN0dWJhZ2VudC9lcnJvcnMuY3BwDQo+ICsrKyAvZGV2L251
bGwNCj4gQEAgLTEsMTAyICswLDAgQEANCj4gLS8qIENvcHlyaWdodCAoYykgQ2l0cml4IFN5c3Rl
bXMgSW5jLg0KPiAtICogQWxsIHJpZ2h0cyByZXNlcnZlZC4NCj4gLSAqDQo+IC0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLA0KPiAtICogd2l0aCBv
ciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZA0KPiAtICogdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoNCj4gLSAqDQo+IC0gKiAqICAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQ0KPiAtICog
ICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUNCj4g
LSAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCj4gLSAqICogICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlDQo+IC0gKiAgICAgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZQ0KPiAtICogICAgIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlcg0KPiAt
ICogICAgIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uDQo+IC0gKg0K
PiAtICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EDQo+IC0gKiBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLA0KPiAtICogSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YNCj4gLSAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFDQo+IC0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUg0KPiAtICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsDQo+IC0gKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLA0KPiAtICog
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SDQo+
IC0gKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
DQo+IC0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwNCj4gLSAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORw0KPiAtICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQ0KPiAtICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRg0KPiAtICogU1VDSCBEQU1BR0UuDQo+
IC0gKi8NCj4gLQ0KPiAtLyogQmxhY2stYm94IGRhdGEgcmVjb3JkZXIuICBUaGlzIHJlY29yZHMg
c3R1ZmYgd2hpY2ggaXMgaGFwcGVuaW5nDQo+IC0gICB3aGlsZSB0aGUgYWdlbnQgcnVucywgYW5k
IHRyaWVzIHRvIHB1c2ggaXQgb3V0IHRvIGRvbTAgc3lzbG9nIGlmIHdlDQo+IC0gICBjcmFzaC4g
Ki8NCj4gLSNpbmNsdWRlICJzdGRhZnguaCINCj4gLSNpbmNsdWRlIDx3aW5kb3dzLmg+DQo+IC0j
aW5jbHVkZSA8c3RkYXJnLmg+DQo+IC0jaW5jbHVkZSA8c3RkaW8uaD4NCj4gLSNpbmNsdWRlIDxz
dGRsaWIuaD4NCj4gLSNpbmNsdWRlICJYU2VydmljZS5oIg0KPiAtI2luY2x1ZGUgIlhTQWNjZXNz
b3IuaCINCj4gLQ0KPiAtDQo+IC0jZGVmaW5lIFJJTkdfU0laRSA4MTkyDQo+IC0NCj4gLXN0cnVj
dCBtZXNzYWdlX3Jpbmcgew0KPiAtICAgIEhBTkRMRSBoYW5kbGU7DQo+IC0gICAgdW5zaWduZWQg
cHJvZF9pZHg7DQo+IC0gICAgdW5zaWduZWQgY29uc19pZHg7DQo+IC0gICAgdW5zaWduZWQgY2hh
ciBwYXlsb2FkW1JJTkdfU0laRV07DQo+IC19Ow0KPiAtDQo+IC1zdGF0aWMgX19kZWNsc3BlYyh0
aHJlYWQpIHN0cnVjdCBtZXNzYWdlX3JpbmcgbWVzc2FnZV9yaW5nOw0KPiAtDQo+IC1zdGF0aWMg
Y2hhciAqDQo+IC1Yc3Zhc3ByaW50Zihjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXJncykNCj4g
LXsNCj4gLSAgICBjaGFyICp3b3JrOw0KPiAtICAgIGludCB3b3JrX3NpemU7DQo+IC0gICAgaW50
IHI7DQo+IC0NCj4gLSAgICB3b3JrX3NpemUgPSAzMjsNCj4gLSAgICB3aGlsZSAoMSkgew0KPiAt
ICAgICAgICB3b3JrID0gKGNoYXIgKiltYWxsb2Mod29ya19zaXplKTsNCj4gLSAgICAgICAgaWYg
KCF3b3JrKQ0KPiAtICAgICAgICAgICAgcmV0dXJuIHdvcms7DQo+IC0gICAgICAgIHIgPSBfdnNu
cHJpbnRmKHdvcmssIHdvcmtfc2l6ZSwgZm10LCBhcmdzKTsNCj4gLSAgICAgICAgaWYgKHIgPT0g
MCkgew0KPiAtICAgICAgICAgICAgZnJlZSh3b3JrKTsNCj4gLSAgICAgICAgICAgIHJldHVybiBO
VUxMOw0KPiAtICAgICAgICB9DQo+IC0gICAgICAgIGlmIChyICE9IC0xICYmIHIgPCB3b3JrX3Np
emUpIHsNCj4gLSAgICAgICAgICAgIHJldHVybiB3b3JrOw0KPiAtICAgICAgICB9DQo+IC0gICAg
ICAgIGZyZWUod29yayk7DQo+IC0gICAgICAgIHdvcmtfc2l6ZSAqPSAyOw0KPiAtICAgIH0NCj4g
LX0NCj4gLQ0KPiAtc3RhdGljIGNoYXIgKg0KPiAtWHNhc3ByaW50Zihjb25zdCBjaGFyICpmbXQs
IC4uLikNCj4gLXsNCj4gLSAgICB2YV9saXN0IGFyZ3M7DQo+IC0gICAgY2hhciAqcmVzOw0KPiAt
DQo+IC0gICAgdmFfc3RhcnQoYXJncywgZm10KTsNCj4gLSAgICByZXMgPSBYc3Zhc3ByaW50Zihm
bXQsIGFyZ3MpOw0KPiAtICAgIHZhX2VuZChhcmdzKTsNCj4gLSAgICByZXR1cm4gcmVzOw0KPiAt
fQ0KPiAtDQo+IC12b2lkDQo+IC1Yc0xvZ01zZyhjb25zdCBjaGFyICpmbXQsIC4uLikNCj4gLXsN
Cj4gLSAgICB2YV9saXN0IGFyZ3M7DQo+IC0NCj4gLSAgICB2YV9zdGFydChhcmdzLCBmbXQpOw0K
PiAtICAgIFhzTG9nKGZtdCwgYXJncyk7DQo+IC0gICAgdmFfZW5kKGFyZ3MpOw0KPiAtfQ0KPiAt
DQo+IC0NCj4gZGlmZiAtLWdpdCBhL3NyYy93aW4zMnN0dWJhZ2VudC9tZXNzYWdlcy5tYw0KPiBi
L3NyYy93aW4zMnN0dWJhZ2VudC9tZXNzYWdlcy5tYw0KPiBkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQNCj4gaW5kZXggMDI4OWM0NC4uMDAwMDAwMA0KPiAtLS0gYS9zcmMvd2luMzJzdHViYWdlbnQv
bWVzc2FnZXMubWMNCj4gKysrIC9kZXYvbnVsbA0KPiBAQCAtMSw2NiArMCwwIEBADQo+IC1TZXZl
cml0eU5hbWVzPShJbmZvcm1hdGlvbmFsPTB4MSkNCj4gLUZhY2lsaXR5TmFtZXM9KFhlblVzZXI9
MHhkNjApDQo+IC0NCj4gLU1lc3NhZ2VJZD0weDAwMDENCj4gLUZhY2lsaXR5PVhlblVzZXINCj4g
LVNldmVyaXR5PUluZm9ybWF0aW9uYWwNCj4gLVN5bWJvbGljTmFtZT1FVkVOVF9YRU5VU0VSX1BP
V0VST0ZGDQo+IC1MYW5ndWFnZT1FbmdsaXNoDQo+IC1UaGUgdG9vbHMgcmVxdWVzdGVkIHRoYXQg
dGhlIGxvY2FsIFZNIHNodXQgaXRzZWxmIGRvd24uDQo+IC0uDQo+IC0NCj4gLU1lc3NhZ2VJZD0w
eDAwMDINCj4gLUZhY2lsaXR5PVhlblVzZXINCj4gLVNldmVyaXR5PUluZm9ybWF0aW9uYWwNCj4g
LVN5bWJvbGljTmFtZT1FVkVOVF9YRU5VU0VSX1JFQk9PVA0KPiAtTGFuZ3VhZ2U9RW5nbGlzaA0K
PiAtVGhlIHRvb2xzIHJlcXVlc3RlZCB0aGF0IHRoZSBsb2NhbCBWTSByZWJvb3QuDQo+IC0uDQo+
IC0NCj4gLU1lc3NhZ2VJZD0weDAwMDMNCj4gLUZhY2lsaXR5PVhlblVzZXINCj4gLVNldmVyaXR5
PUluZm9ybWF0aW9uYWwNCj4gLVN5bWJvbGljTmFtZT1FVkVOVF9YRU5VU0VSX0hJQkVSTkFURQ0K
PiAtTGFuZ3VhZ2U9RW5nbGlzaA0KPiAtVGhlIHRvb2xzIHJlcXVlc3RlZCB0aGF0IHRoZSBsb2Nh
bCBWTSBoaWJlcm5hdGUgaXRzZWxmLg0KPiAtLg0KPiAtDQo+IC1NZXNzYWdlSWQ9MHgwMDA0DQo+
IC1GYWNpbGl0eT1YZW5Vc2VyDQo+IC1TZXZlcml0eT1JbmZvcm1hdGlvbmFsDQo+IC1TeW1ib2xp
Y05hbWU9RVZFTlRfWEVOVVNFUl9TMw0KPiAtTGFuZ3VhZ2U9RW5nbGlzaA0KPiAtVGhlIHRvb2xz
IHJlcXVlc3RlZCB0aGF0IHRoZSBsb2NhbCBWTSBlbnRlciBwb3dlciBzdGF0ZSBTMy4NCj4gLS4N
Cj4gLQ0KPiAtTWVzc2FnZUlkPTB4MDAwNQ0KPiAtRmFjaWxpdHk9WGVuVXNlcg0KPiAtU2V2ZXJp
dHk9SW5mb3JtYXRpb25hbA0KPiAtU3ltYm9saWNOYW1lPUVWRU5UX1hFTlVTRVJfV01JDQo+IC1M
YW5ndWFnZT1FbmdsaXNoDQo+IC1UaGUgdG9vbHMgbm90aWNlZCB0aGF0IFdNSSBiZWNhbWUgbm9u
LWZ1bmN0aW9uYWwuDQo+IC0uDQo+IC0NCj4gLU1lc3NhZ2VJZD0weDAwMDYNCj4gLUZhY2lsaXR5
PVhlblVzZXINCj4gLVNldmVyaXR5PUluZm9ybWF0aW9uYWwNCj4gLVN5bWJvbGljTmFtZT1FVkVO
VF9YRU5VU0VSX1NUQVJURUQNCj4gLUxhbmd1YWdlPUVuZ2xpc2gNCj4gLVRoZSB0b29scyBpbml0
aWF0ZWQuDQo+IC0uDQo+IC0NCj4gLU1lc3NhZ2VJZD0weDAwMDcNCj4gLUZhY2lsaXR5PVhlblVz
ZXINCj4gLVNldmVyaXR5PUluZm9ybWF0aW9uYWwNCj4gLVN5bWJvbGljTmFtZT1FVkVOVF9YRU5V
U0VSX1VOU1VTUEVOREVEDQo+IC1MYW5ndWFnZT1FbmdsaXNoDQo+IC1UaGUgdG9vbHMgcmV0dXJu
ZWQgZnJvbSBzdXNwZW5kLg0KPiAtLg0KPiAtDQo+IC1NZXNzYWdlSWQ9MHgwMDA4DQo+IC1GYWNp
bGl0eT1YZW5Vc2VyDQo+IC1TZXZlcml0eT1JbmZvcm1hdGlvbmFsDQo+IC1TeW1ib2xpY05hbWU9
RVZFTlRfWEVOVVNFUl9VTkVYUEVDVEVEDQo+IC1MYW5ndWFnZT1FbmdsaXNoDQo+IC1UaGUgdG9v
bHMgZXhwZXJpZW5jZWQgYW4gdW5leHBlY3RlZCBlcnJvci4NCj4gLS4NCj4gZGlmZiAtLWdpdCBh
L3NyYy93aW4zMnN0dWJhZ2VudC9zdGRhZnguY3BwIGIvc3JjL3dpbjMyc3R1YmFnZW50L3N0ZGFm
eC5jcHANCj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDcyY2VkNzkuLjAwMDAw
MDANCj4gLS0tIGEvc3JjL3dpbjMyc3R1YmFnZW50L3N0ZGFmeC5jcHANCj4gKysrIC9kZXYvbnVs
bA0KPiBAQCAtMSwzOSArMCwwIEBADQo+IC0vKiBDb3B5cmlnaHQgKGMpIENpdHJpeCBTeXN0ZW1z
IEluYy4NCj4gLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+IC0gKg0KPiAtICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcywNCj4gLSAqIHdpdGggb3Ig
d2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQNCj4gLSAqIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6DQo+IC0gKg0KPiAtICogKiAgIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUNCj4gLSAqICAg
ICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlDQo+IC0g
KiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIuDQo+IC0gKiAqICAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQ0KPiAtICogICAgIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUNCj4gLSAqICAgICBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXINCj4gLSAq
ICAgICBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KPiAtICoNCj4g
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RA0KPiAtICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywNCj4gLSAqIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GDQo+IC0gKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQ0KPiAtICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1INCj4gLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLA0KPiAtICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywNCj4gLSAqIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUg0KPiAt
ICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUw0K
PiAtICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksDQo+IC0gKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcNCj4gLSAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UNCj4gLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YNCj4gLSAqIFNVQ0ggREFNQUdFLg0KPiAt
ICovDQo+IC0NCj4gLS8vIHN0ZGFmeC5jcHAgOiBzb3VyY2UgZmlsZSB0aGF0IGluY2x1ZGVzIGp1
c3QgdGhlIHN0YW5kYXJkIGluY2x1ZGVzDQo+IC0vLyBYZW5TZXJ2aWNlLnBjaCB3aWxsIGJlIHRo
ZSBwcmUtY29tcGlsZWQgaGVhZGVyDQo+IC0vLyBzdGRhZngub2JqIHdpbGwgY29udGFpbiB0aGUg
cHJlLWNvbXBpbGVkIHR5cGUgaW5mb3JtYXRpb24NCj4gLQ0KPiAtI2luY2x1ZGUgInN0ZGFmeC5o
Ig0KPiAtDQo+IC0vLyBUT0RPOiByZWZlcmVuY2UgYW55IGFkZGl0aW9uYWwgaGVhZGVycyB5b3Ug
bmVlZCBpbiBTVERBRlguSA0KPiAtLy8gYW5kIG5vdCBpbiB0aGlzIGZpbGUNCj4gZGlmZiAtLWdp
dCBhL3NyYy93aW4zMnN0dWJhZ2VudC9zdGRhZnguaCBiL3NyYy93aW4zMnN0dWJhZ2VudC9zdGRh
ZnguaA0KPiBkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMzkxYTg0OC4uMDAwMDAw
MA0KPiAtLS0gYS9zcmMvd2luMzJzdHViYWdlbnQvc3RkYWZ4LmgNCj4gKysrIC9kZXYvbnVsbA0K
PiBAQCAtMSw0MyArMCwwIEBADQo+IC0vKiBDb3B5cmlnaHQgKGMpIENpdHJpeCBTeXN0ZW1zIElu
Yy4NCj4gLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+IC0gKg0KPiAtICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcywNCj4gLSAqIHdpdGggb3Igd2l0
aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQNCj4gLSAqIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6DQo+IC0gKg0KPiAtICogKiAgIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUNCj4gLSAqICAgICBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlDQo+IC0gKiAg
ICAgZm9sbG93aW5nIGRpc2NsYWltZXIuDQo+IC0gKiAqICAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQ0KPiAtICogICAgIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUNCj4gLSAqICAgICBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXINCj4gLSAqICAg
ICBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KPiAtICoNCj4gLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORA0K
PiAtICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywNCj4gLSAqIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GDQo+IC0gKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQ0KPiAtICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1INCj4gLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLA0KPiAtICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywNCj4gLSAqIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUg0KPiAtICog
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUw0KPiAt
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksDQo+IC0gKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcNCj4gLSAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UNCj4gLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YNCj4gLSAqIFNVQ0ggREFNQUdFLg0KPiAtICov
DQo+IC0NCj4gLS8vIHN0ZGFmeC5oIDogaW5jbHVkZSBmaWxlIGZvciBzdGFuZGFyZCBzeXN0ZW0g
aW5jbHVkZSBmaWxlcywNCj4gLS8vIG9yIHByb2plY3Qgc3BlY2lmaWMgaW5jbHVkZSBmaWxlcyB0
aGF0IGFyZSB1c2VkIGZyZXF1ZW50bHksIGJ1dA0KPiAtLy8gYXJlIGNoYW5nZWQgaW5mcmVxdWVu
dGx5DQo+IC0vLw0KPiAtDQo+IC0jcHJhZ21hIG9uY2UNCj4gLQ0KPiAtDQo+IC0jaW5jbHVkZSA8
aW9zdHJlYW0+DQo+IC0jaW5jbHVkZSA8dGNoYXIuaD4NCj4gLQ0KPiAtLy8gVE9ETzogcmVmZXJl
bmNlIGFkZGl0aW9uYWwgaGVhZGVycyB5b3VyIHByb2dyYW0gcmVxdWlyZXMgaGVyZQ0KPiBkaWZm
IC0tZ2l0IGEvc3JjL3dpbjMyc3R1YmFnZW50L3czMnhhZ2VudC5yYw0KPiBiL3NyYy93aW4zMnN0
dWJhZ2VudC93MzJ4YWdlbnQucmMNCj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4
IDc4ZTVjYzcuLjAwMDAwMDANCj4gLS0tIGEvc3JjL3dpbjMyc3R1YmFnZW50L3czMnhhZ2VudC5y
Yw0KPiArKysgL2Rldi9udWxsDQo+IEBAIC0xLDYwICswLDAgQEANCj4gLS8qIENvcHlyaWdodCAo
YykgQ2l0cml4IFN5c3RlbXMgSW5jLg0KPiAtICogQWxsIHJpZ2h0cyByZXNlcnZlZC4NCj4gLSAq
DQo+IC0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LA0KPiAtICogd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZA0KPiAtICogdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoNCj4gLSAq
DQo+IC0gKiAqICAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZQ0KPiAtICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUNCj4gLSAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCj4gLSAqICogICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlDQo+
IC0gKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZQ0KPiAtICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlcg0KPiAtICogICAgIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uDQo+IC0gKg0KPiAtICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EDQo+IC0gKiBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLA0KPiAtICogSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YNCj4gLSAqIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFDQo+IC0gKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUg0KPiAtICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
DQo+IC0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLA0KPiAtICogQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SDQo+IC0gKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTDQo+IC0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwNCj4gLSAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORw0KPiAtICogTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQ0KPiAtICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRg0KPiAtICog
U1VDSCBEQU1BR0UuDQo+IC0gKi8NCj4gLQ0KPiAtDQo+IC0jaW5jbHVkZSA8d2luZG93cy5oPg0K
PiAtI2luY2x1ZGUgPG50dmVycC5oPg0KPiAtDQo+IC0jdW5kZWYgVkVSX0NPTVBBTllOQU1FX1NU
Ug0KPiAtI3VuZGVmIFZFUl9QUk9EVUNUTkFNRV9TVFINCj4gLSN1bmRlZiBWRVJfUFJPRFVDVFZF
UlNJT04NCj4gLSN1bmRlZiBWRVJfUFJPRFVDVFZFUlNJT05fU1RSDQo+IC0NCj4gLSNpbmNsdWRl
IDx2ZXJzaW9uLmg+DQo+IC0NCj4gLSNkZWZpbmUgVkVSX0NPTVBBTllOQU1FX1NUUiAgICAgICAg
IFZFTkRPUl9OQU1FX1NUUg0KPiAtI2RlZmluZSBWRVJfTEVHQUxDT1BZUklHSFRfU1RSICAgICAg
IkNvcHlyaWdodCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLiINCj4gLQ0KPiAtI2RlZmluZSBWRVJf
UFJPRFVDVE5BTUVfU1RSICAgICAgICAgIlhFTklGQUNFIg0KPiAtI2RlZmluZSBWRVJfUFJPRFVD
VFZFUlNJT04NCj4gTUFKT1JfVkVSU0lPTixNSU5PUl9WRVJTSU9OLE1JQ1JPX1ZFUlNJT04sQlVJ
TERfTlVNQkVSDQo+IC0jZGVmaW5lIFZFUl9QUk9EVUNUVkVSU0lPTl9TVFIgICAgICBNQUpPUl9W
RVJTSU9OX1NUUiAiLiINCj4gTUlOT1JfVkVSU0lPTl9TVFIgIi4iIE1JQ1JPX1ZFUlNJT05fU1RS
ICIuIiBCVUlMRF9OVU1CRVJfU1RSDQo+IC0NCj4gLSNkZWZpbmUgVkVSX0lOVEVSTkFMTkFNRV9T
VFIgCSAgICAidzMyeGFnZW50LmV4ZSINCj4gLSNkZWZpbmUgVkVSX0ZJTEVWRVJTSU9OX1NUUiAJ
ICAgICIxLjAiDQo+IC0jZGVmaW5lIFZFUl9GSUxFREVTQ1JJUFRJT05fU1RSICAgICAidzMyYWdl
bnQiDQo+IC0jZGVmaW5lIFZFUl9PUklHSU5BTEZJTEVOQU1FX1NUUiAgICAidzMyeGFnZW50LmV4
ZSINCj4gLSNkZWZpbmUgVkVSX0ZJTEVUWVBFIFZGVF9BUFANCj4gLSNkZWZpbmUgVkVSX0ZJTEVT
VUJUWVBFIDANCj4gLQ0KPiAteGVuX2ljb24gSUNPTiAieGVuLmljbyINCj4gLQ0KPiAtI2luY2x1
ZGUgImNvbW1vbi52ZXIiDQo+IC0jaW5jbHVkZSAibWVzc2FnZXMucmMiDQo+IFwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQ0KPiBkaWZmIC0tZ2l0IGEvc3JjL3dpbjMyc3R1YmFnZW50L3hlbi5p
Y28gYi9zcmMvd2luMzJzdHViYWdlbnQveGVuLmljbw0KPiBkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQNCj4gaW5kZXgNCj4gODQ0Yzk5M2JhMjkwZTUwNTVhODkwMGNhODc4NmVhMGUwMzExMzhhNi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMA0KPiAwMDAwMDAwMDAwMDAwMDANCj4gR0lUIGJpbmFy
eSBwYXRjaA0KPiBsaXRlcmFsIDANCj4gSGNtVj9kMDAwMDENCj4gDQo+IGxpdGVyYWwgMjUyMTQN
Cj4gemNtZUh2MzB6Z2hgfWVSZkR5eGJwJUxQUDBQKkQmO0t1fCEqQzcwQ1AlNiZLWWwqKkZLNT4z
U28xPkU7Rl9YDQo+IFQkfQ0KPiB6dl8jeXUobyNmb3gyJTRabUhORVRjZ3tKTmRvTih4cntEWCZ8
SWZlQ0AwcG9yb145NE1YVUAzQFZKN1QNCj4gRVhzOHAlDQo+IHptU1RYbDVPYWtQSS1RY2dWPWx4
cXJhM3QmYDlMIXZacktVdTd0QylmKTtJe15QITlaUi1kMmQ2PyUtR1ExRlZGMg0KPiB6KF51b3lp
OGNPMDkxWU87SW5SN1VUV1Mwe0Z+Q3hZJTVNcjAkVWQrTShTcmZNNUtAJiRyajBNRFQqI0V2DQo+
IFIzK2pvDQo+IHpDbUU/Q0gjZTZITmQ2WkBOSE8+eU5WeG9FdW8qa0g2clFuVFFffEFManZhMVhX
SFVBYFpETHwjVEcNCj4gfUxJblV1N3wNCj4geiNGaG1HaUhYVCtoN3ZYdDZBUDQobXBHfGRsVENf
N0UtDQo+IDEpTEY0bU1YayMlU3hQcGA/d2tqekZqTyRKJlpsJFdmUw0KPiB6SGV1SGIqaTYoXnQ4
dCM5RDVhJGR5K0E0fHArOzN5TEplRG5xTGh9V3hWPnBBbCU9WilDfVE9WEtWfnUqNQ0KPiBXQGh9
DQo+IHpYYWFnVkUwWEZ9MFlwPjV1aEZIWnNlMU5leCtKQSo/OFM1YHBqUUxCVDNaTmtrbHNqI3Z7
cTBHcSpXdWp0ZHJ0DQo+IFINCj4gekRmRShoNm47JTBkQVFiV1UjZjxzMSUxN2dDZXdSVk9xY0Fe
Q2tQYk5RUChGKiEqWVFzVD8oKklPamp4XykNCj4gdnk5cA0KPiB6bGlEd2UpaEEzPnk5amo2UUJj
KFlIQjRgKjwrVjZiNGpgQE5HXipAZ0ROc3oyRFhGRnVNVCMyc3cwS3M0VQ0KPiBtTVMrDQo+IHpt
TmotM0ZtJFBTektGOHM3aS0NCj4gYz83fGxvNFJRbWlDV3pCYVhOPyN1XiRCb3ckck1zfmZKJnNl
PkJ3OzR3JDNuem0NCj4gempkfj02SHt3RGU5MSo3cVZTJCk2bmVwV3IkSCtXRUpZRVBFVzVNRT4j
YVYkNmdAXyVDPDZQdXpndw0KPiBXenQ8U2xzMw0KPiB6e0VIYUh5ZFcjI0lkTGpEVU8tPGlfemU2
Z01CY3pwJjQxSCtZNHozVyZyS2xQTCpHOEVOVmI+T2VwLQ0KPiA4eStQLVJnDQo+IHo8MzZLZiM1
MSh9ak5wNC09Xjw1VkFpbDN+aW95UnQ7PitLPSZscnlkOHw5d0RudzV+RSspSVk1Knw4SDdUakN4
dg0KPiB6Tmc+I3phU2tDX1BQNXxhcC0NCj4gYz5lZDcxfFgpNGJ1ZGw8T19le2l5ezd5Yj9AUio5
I3QrUT9Wanc+angodlY8Rko7DQo+IHpOVCozNUhYems4MG1ZYyVHTFBqJVVDPFNDPV9UYFcyfl8j
ekc2VnMySiFFIVBxNEAqZjxlRH4+P1Ymbg0KPiBjXzVfIzUNCj4gellNJDl5bVRnWXQzWSpsZ01F
eTxNIT9nV2BZNU5NM19RJEZxQEFYPiRAWFZIYjA9MnNrNzU2ViVNDQo+IGg+fUQzIWRJKQ0KPiB6
I04mNTdoOXJoKEFyRG1gbWp6T0opKSshNHZrZnklNTVzYiNiNkt1WClkNzliMztsQWEheVlkITgw
U3Q1OVlZKUUNCj4genNobG83cSspUG1VQEgre0lyKU8pb2E+QWh1XkZBMSpvK2dTVGs/Mm1DVHV3
MyNCZVBoZWQ9KlJgamRpWXENCj4gWUxPVQ0KPiB6X2FldktrcCttRUFZPDl2cGclYzlRPTRnV1RD
Q35TK2QqNWl4eU0tDQo+IFJZPE9NNitRVGdkbG9obWNASW5UJSNge2lODQo+IHpNVT9sdWBrP2ch
NlokZFVzXlRMMGdAdVdKe3JaWFY8SHc2Qjl6dngxU2MhQ2hkb2puKU93MTF1Vm5NTEEkDQo+IGYj
TEMNCj4gek9iPkR2dnVqcnApOVpTUGBFXn1IV2B2aG1SWkVEcWIlZllaU0JOZClMZ1lsNWlIejhx
VnBDJlJrPS0NCj4gbXA5Nz9iaA0KPiB6YFIoalFROUJ7ZF9JNDNoIyNSK3l5Y0k0Y3d7OXd5Yngw
NjchPHZiOHtrdz1QdyFpJkAoYyhzVzRSTD42bjN5DQo+ID53DQo+IHpPPU0rZGlLUj1JaWRDeXRp
TTRDamlqNW1MaXJ1PytpdnRHXmh5cElWa2g0UnNUU3QhYDZ+flNwNkRMbGI1VHtSew0KPiB6N1Uk
Mk83aGl3PHdZWWxxczw/NkVoUFpYPm1iaVFPdTZYZF5mJXgmcUFIXkBmezMzcTt7ZGUpfm5PdUdL
DQo+IFA0alEhDQo+IHoteG0xYSY7cT1ZfDM5ZHZsfEg8SGFwbnlTMz1IREg1b2V3JiFzVjdoez1W
TWNvKm97YS1ybTBjTDYqLQ0KPiBHdjliJmENCj4gel4hNChwNXVrPHxVWUA+ekEobXk+VkJPNUVY
STVsdGM9LQ0KPiBtaGpaKFp+UGZCbkBoOSVnbTUoMkU7K2VFa09SZStaXw0KPiB6bj1sYnpjSWly
dTVgaXQkQEg3PSpjMjVJTkZCdUY3Q0lWcGhMYjFZVmUzZikjMGpuVHlqbU9nQFhtc3pPO3dvNA0K
PiBMDQo+IHpgZyReNTtqQ3M5NmREU0IxMnFCbXJrYlNkSWpoUWAmbmt1Ykk8eHZ9bygmdHUkYlN1
azY9dUhIaSV+KXAxVTsraQ0KPiB6NE9qKE1Xa1MzYj5aaygyOGlEaFdzSCE/LQ0KPiBXJDd6OTs8
V09wJH0rXkxjfiFoPlJuPnIxUCElUklpKFZpbW1+LUpPDQo+IHpkej5ROEVMRF55dmhyNmJlQU8o
KGhnODxRUVEwTW5LVSZEaih5eCp9PW1pPlIjYEh5O0BJd3UoMCh9Zjw4DQo+IGs7NikNCj4gelAq
a2Fza0lHLXNGbGR9SWp4I0smc1BHMz5hV3g3QzAjUVo8dUNsXmJLYHRnaVlzbVFjNVIoISNQKVl1
ZlZoZVNRDQo+IHoxciZaS2QqZXs3S1ImKkpWVWQmTTR8S1A7bXVsM2EyRjI8KjYlITBIJUkpcGxt
Ryl1JmF2VzZsSSE1ZkEyDQo+IHw8QUANCj4gelNOV15rKipTNkUmV2BESmBoSzwzY1NYM3BvdC1T
TkU9UWJJQW9EdnBtQTY5KCowXystDQo+IEVYNCVkbTNNTm92eTwlSA0KPiB6S25gfSEmTWVALQ0K
PiBkYkdOTnk7dllGbT0pU05zTiplQVhZSzZmP0NqditQKERnazhFMGM+WFVvdG0jTWc2bnckPl43
DQo+IHpjPzROSXlTcWM4cDJsdSVYSmNiK1ZgRjJoeGZkVmhZXn0wMHpzfHdPJEs2ZlpzOEZHVG92
cDIxMXNqSH5FJDE4DQo+IEANCj4gem9Tb2c9KzxodSY+VWwmNVREJHdINXs/Y0klJWxZZTJTPGg1
JEs2XiMtDQo+IChrU2Ymcmd3WGI5T1dndGVTUUVgMXZ7Tg0KPiB6KW5tPkN4JXYzfUwmVGpjVmkt
Nk5aaHY8LQ0KPiByRSEjSG1weVh5XlhDOH5ra0pDP24zP0kwI29qPUsxPkYyWEFwdDg4DQo+IHps
N1cqNyZDUXJ5NjleNGVXRihWJVZWWWtGYn02OXE8MSNKeVlZQXI4blFCKkQzZXZneipHMTU/QklF
Qy0NCj4gRUE0KjcNCj4gejdXbEBpTnFgWHspWmJsKStweTlzcmRPXnRfa154YFhsVUt+XzFRe3cm
SUZkYGl6Yk1oZHIrWHghb3U5bCUtcTY0DQo+IHokQz5CZHVWcG59VzxRfFZWVT1wbz4+OUBNZDZ1
XzkjY3s0OXduZyt6SnpzZ0dvP2pLSj1VMXV4TlFpUA0KPiApZzdZZ3ANCj4geklwRitDcDV0KUwm
I2R6TmlwQXZsbEA9RXdAMiNGd0B3cmVnQCY8NyNeOEQ7KDhpUzFVQ21IXk1JMkRSDQo+IFl2NkJu
Qg0KPiB6Zmo/VGw1T25yaXRBYGVBXzA7T0V3RjVWU2E7fSVFd297P25aWSZ0Ymg1QnxTckplRGRz
JDt9NkBFJTQ2T0NeJA0KPiA1DQo+IHpnWGgjYW98WW1iJFZGdUVeWEI0NlBxOG9ETzYrVjxMRnxz
TzZUNn11I2t6KS0NCj4gI2hNMEgjRXhpSkZ9K2JPYVZYTUsNCj4gejlFLTZPMmIjRXdVNVZhZVMk
dVZ8YHFlc09YUzM9ZXImV205QD4rPTQpR2tgPWN8QSY7WS0NCj4gfWFZSG5TMERsV29QdA0KPiB6
SHVtRCVIamQmLVM0V1pHKyhxUUlfWXhPNnhRY0p2SXgpPmpvYktRJDk8KCRRZz40PGg/WEttLS0N
Cj4gN2ZheERuSFd9DQo+IHo0cztkdzJEeWx2VzIlVno/Xlk0ey1Hanh4SHshK0t4NE1keyF9XktD
IShKRGtrTTF0PSNgWTM8PytwLWxRYSF9Jg0KPiB6azk2WUJDcHooOU1zQExFZXozPy0NCj4gZU1A
fXQ7YyMoYys2UTlCajJVQTZgdEBTZHJjR2s9PUZNV34mWWtqXl9zcEQkDQo+IHo7JXckKmFlbVBa
YWRHSiFAenUmS2BUVSFnbW5ZN2hKRXdve3twT28qI1AjZGYjZHFJKkMhYyUyfE5pQGINCj4gcEwt
MzQNCj4geioxeVVCODc9VG5LY35qWlApNk5qVj8lNUNTRmk0MEQ+T0U/QnVpfGxQZTlGKDI5YzJz
TFRVemhncW17MWBxZ0w8DQo+IHpyNEoxUHtFUWk1ZUlnPWRoKkZ9K2BhWHNYdkh0WlZqNiNFbWBY
MHAkdkFXPD1mPSorSV4kejQ0c0MtDQo+IG4kTUZ1N1cNCj4gemRhRGVmOS1lSXhUS25SRyQrdk1r
NHNBSyo1aHwtMD4lfFdfP1BYfCQ9Tip8c3FNRGFmNWJLVTc4LQ0KPiAqZGNZU3E/QQ0KPiB6d1Vh
Yj1Tc3EkTjI4RSRqdk1nM2VSYlV7dDVecGVOUCZqYmFEM3dAMkVic0t4cGZQQjkyUz0xVVNYb3Qy
DQo+IHxGQERIDQo+IHo/WDt8dzFJbWt3dCg1Wmk/SGckdkNALQ0KPiBnTzAmSnxMWiZGM0ZxfWh+
MXhlTT1LV29SVWVZfjsxSXFffVhvMihgN2cNCj4gekVAeHdILUI9Yl9UVSpQeFRfYUEoMjhgdUJK
Mz4zcSthVjx4K0JZci0NCj4gXj10c1VjcWdhVXZSbyNlNm93WGR2UnM2Xg0KPiB6OGErK3ZHcDxW
aWgqKVIwK05BX0hYR05TWElBZjF5OHVaMCpwPFk5aTVONUFRT0NLJWtCXlpUcE9UJUsNCj4gO1ZC
eT5fDQo+IHpDTHlWNXYhK2QoQ2ROY05UTm9FSkwjVmxQPHZQKFpHMH1BQEpEWm83QTgzY3ooREs7
dGxgbk9FITMkPFZrVipZDQo+IFQNCj4geipgTStDUTU7ZEtqb2UxPy0NCj4gaCs0X0dYND43RWVk
Jj9rKm1DV2E3XldgaFgkZVNwMElOPWY+dz89U0N1UGQ5bmJ9eA0KPiB6JkBIIXNZenNFQVBqTz1D
ODJXdCpfOWp7fCpyJnt7PV9wcGx4ezc1ezklNXE/Wj9VYkpuPmYoTUwrdE5kUDMmDQo+IHBtDQo+
IHpFNEg/LQ0KPiBDJSl7YzZEUFgqaXV+NkRNU2lDYDs9fih+OyhVSn1hZWt6KXhIN158VHB3M005
UFhKWVA3WCpHWFpraH4NCj4gej1TSUZKP3RMMDBfVXpkczRqdyF4QEFIPX5VNlN8cGhZdWYkcE1V
O1l7UUIjIXxEST1Te3FiLQ0KPiA3Wnd2ZmlaVU95MQ0KPiB6I1lfZ3h4fHh9Y2xiZjU5amhWN3Nu
Mz1tTU0tDQo+IERGTGE/TE89S0N9WUNqRV58OTtBa2V5dFFAXyl0MiNRbWR3Y1cyDQo+IHpoTHhG
X3dQUUoqJmVQcG49VXZYUm9WQSU1JlgjbD55bThDMVNNdWROYi1IUzUtbk0tDQo+IENeNnBecDxi
PHU2bkkje2wNCj4gej15WlYyeUBEa2g7M0Y2PFJEZ1lwO3pLfFM+N1llTDx3VVpnJXJifFdvb25V
RnU2QVo5bUJGQ0NjPXcyDQo+IFJrYSFvRg0KPiB6JF96a1JLYFJGQFdGVSltN0J7PmUzXlNxUUU5
Png9KExad0dCUCgtDQo+IDtDQnVlTW8+N1Y2JD8jKFlGbVJ4VlY+fCQ5DQo+IHomYDxeKkBJblQl
Jns1X1c3WE9IfDIxO095VmEwJWJIJTRfdlR9QUBxYncpMm5LZ0xNTEoxVVJ7NFExDQo+IGN+Rkp2
R0sNCj4gejluYn14fEZ3RVJIdj9AMlRrZWJ5TWx6JDx0Rk9LfnVTPUlNVSVjX2c4PCFaRGQtDQo+
IHZ9Qlc4YzFncDglWnhzYXY7aA0KPiB6LQ0KPiAhbEQ1PWd5cl53cmJVQ0hPcVgkY28odF49enVR
aGd6a1U1S1VrKikxSU01Xml3fE5uPVJNbkVfVVF0QTk1DQo+IEdfVg0KPiB6KCtMd01KZXhkdXZj
I01AYjB8QUlUTE5pfjRqJUJiJXV9d0BSbztaPnUmemxBXmlPakpiaSlSMFNyfk50LQ0KPiAlN0Yk
DQo+IHpHWH5uamZ1VW8+dil9VyVPQEdqUWhKV2oocXxseXNKNXY2akZwMH11VCFgUCNPQ1lWJCEy
QDIlWG0jbjt0Sg0KPiBsdzUNCj4gemtHLXNWR0dqMW9hTF9TZTZTa2ktXlVKT2wlVkU0PU9nYnxI
KnY1TjNkLWcxWi18Nlk7Jno4LQ0KPiBhT3R+WUg9KnBtfg0KPiB6YlpkTXl4O3JuQj95c3MjND53
MjlfZEJCS2A8IVRyaG4jLQ0KPiA2RFQzfj00NWhtbjBkKHZBcyZyKzV5T2Ywdj16YEFmDQo+IHot
DQo+IE1pbXkqfE96RXdsI3IpSWZENVArYj15WVNPJmdoWk5OR2EhaE9BS0BaaUJ1RmI8Wm8lfG0w
Nz10aGJnLQ0KPiBOXzgxDQo+IHoyT0h8cyF8bSlOezZ4R0JoJXx2KDF8QllkdXMpcGJXQ1QqdD10
Xnx4P0llT3U9dz0mRmQ1KVpDbl5QSG0NCj4gVjRERlMNCj4gejtMOGltWlJXJDZMN2dFTiNfZShm
P1NucXdLUmsmRk1ePldTYkEjd1VgfHlDPF59JEJRWFo3aG16OyhJNQ0KPiBBellUQg0KPiB6VG8y
R3QjeXNHYUdVJGBGVlJVOz0wOV9tRURze3NLWTtrKkNXODFTQkJqNXVBelFDdXk5ODFpREczVlQt
DQo+IE9gOWU+DQo+IHomTDR+JkpORF8pblVnOTE/ZlBgJVY7JFhIOSFtR3Rnd2VmS14lITtPP2d9
MGtPdU1fUjQmN1peaHdkej8NCj4gTz9NV1gNCj4gemZOM2FgSm02aFhTSVhYNyV7b3tZV1Fzb1lx
R099IzZLdWdJPF4/fC0NCj4gRW4jMCEybE5CUmxIck1GaU5WazFTWjZTQQ0KPiB6MHtabW5iTU84
NC0NCj4gKyNKPF48NWFeTmpFPEFxdVVFPk4jNzlQbyp6UUR2ViFUPnlxZmVLX3M0ZzAwX25UaWZw
bHxMDQo+IHowTnRFdjA7WnUlQC0NCj4gWGtNJSRqczdKNlAoXz5zJH4qTVUjQiMhWE9XViYyaSgj
SndxTVg3eFYraDY2T1BaRHxLQ0INCj4gekk+dFFLRW5TWnVKQFV7NyZ+dDlFQ3RYa1RySkVUKzU7
dFpBKHYyQWJSNWFiNmlheERRKkMrYz87VXBnX3tGcEkNCj4gTw0KPiB6TjdwOEopM3B4KUZCUDAt
DQo+IDhwXjxQb3FkRTFXVDZBUFpsZDFNS1BPMT9vRUBPbDBZMGM+M0cpR1NURX5Fb0NGVE90DQo+
IHpGbTVYSWN3ZGIlMjtXY2p0dyFJYmRRc3QmPkklM1gqQ3pWVlJyY0BPND9POWNfZE11STNhPSsp
LQ0KPiAwQVlARHMqe04NCj4gejc1YUxGOCt8PnpheHE0NW5yU0VsNHx1UDxRO29oRT1mT0k+cV5A
aElKTH1mJGVFWXM5byRPc3pfNSp4VD1reF5qDQo+IHo0Kn5aRnFqQUp9dzAtJGJvalNkYWJxNGIm
Y1deajsjV3VlZz8/dkNSb2gkNj88KmAtDQo+IGk+KFREPzc1ajUoWGwxJU0NCj4genhGVEhgOzdh
SEZ4elBETyZVQ0p+NlBAZW5OYXVQTzBDfEFSenluXiRUcFYwVT5WUGlqeXFyPV4rSkcoSygNCj4g
cmBEKg0KPiB6OVRZQ182PEMrbHdINWI9QW92UU93RiRzISV4IW1gdVY9QjJaNkJPT1hMPnIocklH
SDhEcyp2fTg9WXIrPQ0KPiBMU0B5DQo+IHp2d2RDWU9mTSVvLQ0KPiBRQUgrYipuKDl4fEZBcm95
eVY0al4qZT8yWVdqNG5xQkdPR1ZwKkdHTFZJaXYlUT85JmhyRGcNCj4gekVyd0sqd3FXPC1oJF54
aXpROEJrQUsxc3E0QlYlJipPMEhqSUZAYkM8ODFpSWt0M2Zoby0NCj4gdnY3K0xvdFA5VipsRQ0K
PiB6X0xYVF8rZSk7d3dKUi0NCj4gYz18VzRJSkphSDFDdEIzaGtycEw3KEJneSZiZztQe2VjOTVR
ekhHczBaYmVfYlFXOGcqDQo+IHp3bSFqKnZnNjd0WGszQV44I35aXiowQ1ZUa3JwOyV5e3RSOE9H
UEA+Z1dJTUx3XjlGIWJmJks+PCtyZ1YNCj4gXz1JdCENCj4gei0NCj4gbHd0R3o8TVA2Zk1iayVI
KHFhVTthPDNQUCFiKk1QPU9BbV5gYVl2KlhaYGAraHlZQiY2X2xEWShMciVYRw0KPiBAMEANCj4g
ekVhPndsPUF+a0R5ZTtrQnhRNihmeUUxWDw9empYVkxxJDZGU348JF5TZX1rfGFpRF4oaiYhVmpJ
Zjc1e088aipCDQo+IHp2QUB7IVZjIWJoWkZuQ3gyeU1USj52XzFUNiYtDQo+IEM/aipobkZ7KGRL
IXsmVipSQHBwYW4/Q0RjXmJjOSN+MnY3ZH0NCj4gemxlVnV8Sz1ZIT8pNG9STGJnKz9gNSV4Qitw
amlYak9Gci0NCj4gJCU0I30pYHtAVkQ+bTVwbW5fMUU0JjIxPkpyN2F6Sw0KPiB6KXNGcUptd3Be
ZHZMeUpYXzV0Pk15JV5RdUpFSl87WXYpSEZlZWByZy0NCj4gejNVeVlFNmUmJER3MiFuTGc2bGs4
WWpGDQo+IHpFel5JXnBLflhVKTEqZTh2QF9iQV9DXmFtcnBII0hoWSMrVGtreygrbC0NCj4gcntx
d0h4aF5HcDdUTUUkQmNLT0ZFY24NCj4genJURD08ej9Yd2JSc2BSJD1pX21IbTNfd0V5RG9mWlJO
YCslfEc9OEZ2bmspbDZSYzwtDQo+IChBYmpwIyN6dUZab2hwXg0KPiB6P0NIfFZZNUYjVj9iNT03
YH1iKjVydiV5JVZMPl5PZj51VVlRe0xfIXJManNIYHR7PDw4TU0yaDhTUmMldXENCj4gVmJgDQo+
IHorSnRUUkFibndmYn5kZGoqQ09uXyo9SWFJQio2RXNVQXctRHY5bn1pM2hqKENyeVRZLQ0KPiBD
JnEkeWFYYXA2WHdFYjwNCj4geis4TjI8dml4eWY9JEEoaU9OOz8rOTNYIUQraSRlcyE/JFR9czE/
bF4oMjNCI1N8N25fRWUrcVY5QCRIfjs+eXZFDQo+IHoyMH12R2srI2dGWlRKOVJhJCtye2VmV3Ft
cSZAQFRlJikkekNrdGF8PHkjJFRUWjk+SFlvRyNZI0A3MHgNCj4gN356OFUNCj4gemNka1BadWJl
TSlKaXRIcmRfMzxFSl5KQiRySmRDfTgyYk9pdHM5aW5OPUk4K3J5ZDVqcSVTN156KDxUQkpqYiFg
DQo+IHptOy0qaT01TkZMeH40LQ0KPiBJWjROVnwmRWJxTkw3Tk93a01qb0Q3VXg3KWNDMz1+U35+
Y1dtcH1qYm8lWilqRnckd0wNCj4gei1fU09FUUc3QlpfeX1MfEVYdXkpY3srZ28tDQo+IHZRZEhf
Rj1AfEppam5MMyR2aShRJUJTOXp5MTIkekEkV2FFJmNpQQ0KPiB6a3VQaz0mP29vXlV3SUNIJWY4
RnwwTUNhYXAxYVJoTjRwU3p4QmIlQypFZk00LW5nYjtWPTthLQ0KPiBLVFhwWl5MWjtXDQo+IHpY
PkMycm0kbjFuOzNMKTxadTZobWYxR1g5O2tEOz9KWnRsSj1ZSmRQOztZZDR5PDdmckppLTUyIX40
KkBUR29IdA0KPiB6N0pTOC1mdk53P2c5UkJPI0VnfiRydTAocyVSPGNRIXshbGtlS2w9ISk0dXJn
azNWUmB7MHkyeykxSDxGfEFxY2kNCj4gej4+SyM2amkyaW5LWl8lSGUtazdtbUlqLSVaVXN3Zm52
b3VBeHlGWmhGPUpldk5fNGE2eF8pZ21eJS0NCj4gP0N0PUgtTg0KPiB6RkRXSjVsTkpQLQ0KPiA+
K01SdDJLTH5DdzV7NU9rTHZqT2s9dExKemdzWFQ3UEpiWmcja2loYVpPN0M3UyooJU1YVm9LDQo+
IHo3LQ0KPiAmYHVsQEkoTTE9e21rZDAzQTVtJVpTQV9kKXhuRyVMV09TVTIwelkpYnA9Z1hSfX1S
TSglJj83dig7ZEUNCj4gZDRQDQo+IHp2fWBXUnR8MjVBKjBRQ0FBdlZPbik4T3s4cjE/UD5HKFhU
PkIwSXAwRyklMypgXnhOJDVeWmJQe3RzP0d6aA0KPiBDJXcNCj4gejZFeSRoX2h+ezZUZ25icD9Y
VyVBbUc7Pk8lYGY8PGBoU1cybS0NCj4gakU4JWQ+SSslSWVwVj0yYUlHM3F5SGRUZjAyWA0KPiB6
NTgqdjtPJmlKenc0JHM0T1VtU1MlQioyN0cwV2VBclZaPSYrJWJSbyROXmR5P24odWA8fik3IU0w
U3QNCj4gcVNPTzdjDQo+IHpoajtJIShJSiYrWlVFYjJkJDBAcF5KfHNVYHZvNnl8SDRAJWAhRHdv
ZD9wcG9gLQ0KPiBlWlhRdSRvV1M0Yj9aVXp6NkQNCj4gemIqQWp2NHdNeUFvLSU5TihZIXojbiM9
N3kqV1okNil2JTxMU0VBYFItDQo+IFliKzllIU8+dzdSVVFaZUhtUVd5e1NYIw0KPiB6UGoyaDcw
QGtMUkg7VS0oIzBaKkV2eilZPlVCXi1TcTRAPEx2NDZtTUVCbWtRLQ0KPiApeWprVmgrISQ/THNx
a2YpKykyDQo+IHooISQ3VWx3R2U5VyE3PH5jXzl1b212dj9ZK1I8JDg9VFR1a2JvYjZ9PjU2SDRC
OUFAdyMoXkRhcmpNQnMNCj4gSHVoPm8NCj4gektSPnU8R35TQFpQeyk2TXsrWHRZOTg5MG9zel9P
RUtSY3xsXmE7TFU/eTc2MjtyYGlAPWZHemVMJGY8MShSNDQNCj4gSw0KPiB6IV9odnBxO1ZpRWkx
TWJhYUNlJGxtLQ0KPiBgaitINjE3PXhINnFUYitXOHhsPXB4bTN1alRmdU8rNFhTZF9xJFdfKDY7
DQo+IHpgUW1mJDY7RjZQWkN8XkotDQo+IFZPSnFkRXImMVB3KSs2MldRNklfSis/ZDx+Iz93VTxf
cVdvbEt2NDIrQ15VTUpybEgNCj4geigyfUl1dj4/YEI9STRkNm8taHh9Uyt8T1F7clJWMntQWkxK
WUpqVzl6bzN+bG9vSmZRJF9VZWF0VnpPYCQwNihiDQo+IHo+Y0IySnAwRjF4M3p5RUhxandWYFhv
e3k5IThlUUBvT2BxWGBzWVZIISprdz5ge2YjKihQcCR5cU0wR0N3NQ0KPiBDJWMNCj4genQkWnp4
bWJRcVgxJnhDI0U0bigoanE7KCltPlFKSD4zTERVRyZmUjV7MCQjdiljMnF7VmJ5NE1KJER8diZO
DQo+IFF2TQ0KPiB6eX5JPk1KQUdReHtMOWh3OHMjWkgoMUIrMV8/WFhuN2JlIWA9anBvcVkjbU9e
VDFDP0dIcW9AUWVMU3R7DQo+ICh1fiU7DQo+IHooU2x9MmBWZjRBWmB7czV1JitrWEAyZFlzZWVr
aDYtDQo+IF5XQDsoZlNeKFg/MiVtVEpjJnVFcWJMc0tYWnJCeXl6Tn4NCj4gejUkUXtGPlUtDQo+
IDB5eTQ3ZSNvaG1lPVIlSj5MdTFNMl5UcUxGaWF2Y0o9ND5XTElEKzM/K0FxUlFyZnhnVWAwSTdk
TA0KPiB6UWU5ZnNJKSt3dFlEJFplIXdKM153RWNZY3pyXns4U19leitnQ2tnOXI/cEY+Uz5aYWBH
XmlfVzlNR0I4X2tODQo+IDk1DQo+IHpjV1gmWStzNHlePE9zQFlRaXRYPjNaeyZQMFdgYVRBSSst
DQo+IG9Mb0A0bihUdXZEbHBiMSooKDY9fW18b2ptcDlVU30NCj4gei0NCj4gfiZKOEFQK3N6SEB8
NShFcSpuSVIoNUo4P1FRN09MR3I+RV89S34yXzhwPGJgSVhpT3s0Q1JHJGREbTttVkINCj4gMWgN
Cj4geklFKXMoK0s2XyheQT5GIylzSHB9PX16bldiKXdhOHd4TU8qcDlAPlk1ZFdUI0c4NXwyK18+
NzU1Z1M1dA0KPiBxSndDNQ0KPiB6ISQ2dUg2K3A4aFl2X1NJPXFMdnRfI3BAUjE8ZjFNbEQzVSRX
dFNHVHUxYG00MmxmYFdoJGlAZUgzdyZFYw0KPiA+bG5ADQo+IHo+bGsobntuLV9LKjg8Wm1jcjhs
RFQlUHlvV0o7XitPS2JiUVBKMklvazgoYTNQMXtyNnFBZXIpKTVmPVkoej9FIw0KPiB6WCtfc3BY
LVM3Pnc0aFpTJjJKR3lTOzxrOSp8WSY9Q1BtUF4jUUooNTQ/ND1oMm1aekY1QH5zLQ0KPiA3UFB1
JmQtYGx9DQo+IHpjY35acFZQe3FNYn5HdX1odXtPfEVic1NzdjJWe2t6Y3JgPiM/a3RlbCQxWmB2
aSNLTytPJTw0VXBtQytxNQ0KPiBHI3kNCj4genBna1h0cW55O1N3RWYpP3dCX3g9dn10JWhUMGZ7
ZXQ/dTI0Uj1uQWNtVVpEZXoyMVRyd0A7PTt1UWlrTDt0c0YNCj4gUw0KPiB6KG9RWERkQUJ5U3N6
KFB9K3JKeGE5TklfOUxsNSpwRlo2RjEodnprKHRWT1ZtXklOPXNWQmZMY3tOPyNNPmNEKg0KPiBS
DQo+IHp7UlAkfEswa2l+SilnI2UocXwrMykwZDAwPXQlWiNJLURfYDR5TEVrS0dmJXY0PTg4Q3lS
PjhjN31gRT02bTVOSA0KPiB6SUJpV0NNcTk9WHI3ZEgpemNAeDdiZC0NCj4gWSt7RSZrQF5ndGk8
WnMwbWlpTE43ayRKc3J2SHhKbUttd0pEcCoxPz9YDQo+IHo/U25kS3tWPSZqVl9NT3hHa3Ypdm4r
bnp9cn5LdU1XY3RYMHglN0dGRUlLcjJJXzF1cU4oYSY+R3R5fVBeDQo+IGh2YVQNCj4geis5eHRi
OSgwdDA1QiFqV0Y2Y3BlU0Aoe1YqMVdPNC1GWTB9ISNmb0F8RTFtXjhIXil5bWJKb0khaEZELXst
DQo+IF8xNw0KPiB6IXxAR2grWHBGaEEhaj9DK3AmZXRaMjYyJVpDcG51KlJTUyF0KVN6cG1RbnRT
Ql8ja2wlRTFTSSRlcjgxblkNCj4gTzw3DQo+IHpIY2dMPEFuMytpI2R5ZDIyZXlzemp4cURuQDl6
eGlBbTUqMlBHZW9kSStpaElHQ3lsXkpyWk1SKD50VC0NCj4gI1FIVUsNCj4gejwhfi0NCj4gdEs2
SFRac2U5P3R6VEZaUl92VmxXamZRZ1k3NFk2KlFfM2h4UGwlU2ZwY0FeVyZUemw0V31rSG95bGNW
dg0KPiB6PTNsPF4oKT13ZVcqcnQtDQo+IFRlJlplcGY3TVFndzY0PEIrPENxeWpDXyhxJjMzXihj
Ymg9PXtXbSNZNSFpaiM/TXkoDQo+IHooKW52diglJEopQm9CQlkxNms7UkY0bD9uXms/ekBmbz1V
YEAyP0goIStKNUVFVXtPQHlnKXMkPWZrKjRlPmE2DQo+IGINCj4gej5mRGkxQkV1eTNIfCo1a01v
MXY3KFpLXj1qMSRQaFp8PlYkSUo7LQ0KPiB2fEYhUTJOfndueD5jT0BAIWBAcX4zJnNGfA0KPiB6
SXZJUkZwI1FFd15CTCFASTVXbiVIfmEwenomWSZTOV9OUHN5PWE+NCReUEtqMkcybFRwVj9mV08m
bzkNCj4gR3s8KTVODQo+IHowaH0mays3OEF4b0tAbnltMVZHfHotSm88IygxZ3MoLS1qdGV8U1J2
b2BnVHhseiQmM1NMbEN0cVdebWA8Skk1Zw0KPiB6I0hxaV87cVF4PlVIO0JSaXdsdipfZXpOUTRX
fH5UQkZ7NVdpOz9+UklpJGlsMUFsWG9IPmdoYEA/MX0/LQ0KPiBkWmV3DQo+IHokSFZPK2Y1KmVe
Qj54aF5jPmVlYG1ETGYpeG9XJHpmTlc+QS0NCj4gSG1eQHFoc2FWUiElYmRfd3FNZFZCKkF5ayZK
MUsNCj4gemImTWhnc1ghVnVsdHVteCl6MX1Tb2cpfVVeSGNpTSkqO08pemVmbGF3c1dLaHQ7ezVs
MjVzeCRSfHFgZGgwSnI2DQo+IHp6Q2E9Qz1tMV5XV0JiIyQ/VlJYdFM5YGlRKm9FJUQ9VDcoMmVD
V1lVZX5KNShlZCskVnMmc0ZOMypDTA0KPiBncDF5N0MNCj4gek5SVXplPTxvdWpPMGRCSF5iZnwr
PjVnNz55SVZRQiYpKlo9cFUyPGlAVjV7VG1lZ1U/UiR+NzRMI0Z3DQo+ID0zelVIZQ0KPiB6eXBW
eHhgdWxJZ2tDJG8tDQo+ID0za2ROYl52fGQoVXRDZ3FAI1FNNFp9VkQ3VW9fP2tQYEZ2OVFPZF5I
SmFxJUAwXmdJDQo+IHp0Pz1JWSZ7T0p3RjZiOyMkeDthTEhGSGRWeTU4UUZadTlwNmNSdWw8Sk4j
WFJqRkMxNCVKfTtQSilQNkhgOHg8TA0KPiB6ZX5aNmBmRys2I3Q5SWI+NCU0fktGTDFxWV43alpn
YENBQm0lLT5TVEc9QyM7NkJyQUMjeGNxP1huQi0NCj4gcmR8VT5kDQo+IHomPHpgPFI5bGpgdG10
cUQ5bHRCREw8aXJmdFZpeWZOTFFreC03Q15uez1WVmJLdnlhcFI4aXVaJT03IzdLOXkqSA0KPiB6
eDVfMU9xUEg3Szl7eDdyTkMkNyZGRGxKRyg/YHI1R2tgOTQ8bkk9eV5yUSMoPyRRckd7OXVGfGc7
IX0mSH53fmANCj4gejMlfSMpPUJVU3x1RmtaMV9Ke1E3KElYPz17alB7azUzYTU3QCUhQDJ1VTg9
MGZHdHhXOzglVk43ck1tbg0KPiAkMWdJeg0KPiB6TmxCbno/aTdfYzMmV1oycUVUSGJ6cUpFaDxv
RD57VURCbUs7YXRsdztMUCNjc1hiLQ0KPiA2KVhCVnZWWipjeUkzR0ZaDQo+IHo/RSFSXy16bEdj
I2E1M0NVQSpieGkzMjZoKTFaNlRrX182QjxVfjd+SUA2Ny0NCj4gUn00KXt7X0NJM0RXT201Vypl
e3QNCj4gem5fMyVpZGZKOUpWKDRUT0Q+fDhBWkc9LQ0KPiB6P2RrZjtEZik5c0xxbkhOOWpFPGs3
OCNPY2BwJF8lYmgyM21NUERnOA0KPiB6VkdBfTU/NjJGfXo3YCM4V0ombzkjSyZVUVNqfUh9dz4+
QG5RRi0NCj4gVEQha19gKyQyJkt2OzVGWjNKKnZFM0ZYdiY0DQo+IHo/ZCNWQVA4U19hYUhTKkJt
SWA3SlRje3tiQU1hZH45KTVNSU0xTkBKcFlxeDY7b2RPQHZZSE4jXipaPw0KPiAqMD01TzQNCj4g
ejJLQUBJa3JzM34lMko3dUUoM0A3SkN+eT92b3c9TkB1UD9MWTBmSmxiVElPLQ0KPiBee3s+M3ho
TWhZZ0FyQ1FndGR7NQ0KPiB6Yk9DPnp0JkgmYUBuZjFodW9HPk11cXs8elpVYnZjSD9kIXxFN3Ew
dk1jQn4zYHFzMnhqZ2RDUXdnYExMDQo+IHdLVGhnDQo+IHpXeX1ZfGZjJWFublkxanpOaVEjVExO
NWNoT3hsMGxuJTFHVHItN1hjZHhKRCtZP3Jacz1aJmVZTjQmLQ0KPiB5cEQ+WEENCj4gemAxTD1B
RjM5eFBYSFVfTE1uMDVkcThHTjx6VHg8cnd4bll0JTR6Nkd5UF9QNTVtfHdERj9LU2heTGc9DQo+
IH5KaVpKQQ0KPiB6LQ0KPiBYJEMhKmgyQ2c/JXMlZ3lqZl5pRVltOyNeYjx8Kis+RXdGc2smSmdZ
X1dhQWA0PjV6Jnd6SHV4Tl9UNkd5LQ0KPiBUZA0KPiB6Nk4yYnhLMVZrVVhvb1l8bFo8JXh3K1cj
O3I7ZTZyQllaUWw+ZUM2ZEJCbHl8Z1R3YkJ3I0R9Sz5rbWREYA0KPiBlU3t4DQo+IHo4fDVWRlhq
YzxZQn5KOUZaQjZ+P2ktanwmPSloTEdkMnBNPWpSVnswQGBnb30pNmBlO2Y/dmIjPG16O0pUe2hp
MA0KPiB6bWFGMCojfFA9dzd5RF8/JSEjeGoqMkFkcCloUGhgQmM9YFNQckZ7SkxBemZLcTF+LQ0K
PiAoKFZvX3xXZzc5ekxYJFU/DQo+IHorbS0NCj4gQjN1bU18fFVCZWh7dSlNSzk/ZHtaJUAxdD5h
O0xYUFJfKDFuMl5tMGckQD4waGVAd0IlaXBafkxOKg0KPiBmNndkDQo+IHpuQzd3JFk0NDdxKSU8
U2xeV21ON0BMTF98KDIofFljeGNDJCNeKW5DT0JwU09QVXdhV0x6fHspRSp+KnYNCj4gU2J0Z0AN
Cj4gej19dmlYX25gYTwheFZmdGw9NUUhJDB2QEV7Nnx1SE9JXj9qLQ0KPiBLTz9SJVFONClETVMw
eWt8OzBBT1gqOHo9Nj4/Pg0KPiB6bUB8PSVqMmtGKktvQGtEV34oZTNlNFhecDdARklfbzdPYnFJ
V1M9YW90UXFKJlNwKWFeTlZObEgpRQ0KPiBPZil2OWNYDQo+IHpPUktXejs8NX1gMXxJT1BYfmdm
OFNRYXs3d0JEd151JCtBVU5NcnghKV53cDJ7RWxqS2AkbntIU1UzNyY7JQ0KPiBHWWwNCj4gej5I
R1loJklrMHhOMjYlcCZ+Q0sod0hXNW4oY0VBY2YoKjshSXExM2xaRUNaJEpwNn5RdzZfTSgpUSZB
RW8NCj4gIT9RKw0KPiB6NHN4WG9GR35yZUt8PmpNUkokK0sqUU1EamleaDhZRTY8PCRidXx9JVI+
Y0N4SHFaVWRGOGp4KTdKclJZS0Z0DQo+IDdmDQo+IHolbFBkc1l+ZkZnODJAZnBDbEhMa3FMIW8q
bXBRP1g5Kmh4O2ImTWh2TlEzNTRMY29CYV4zWmBVOSZ+PGBBDQo+IEtqWjsNCj4gelF2end3eEV2
Xzg1MUdEaGIkbXMtDQo+IEtBeFpScm0kUW9LcEErelloWUdEPVBKSSg2fWB7aip9bms1dE5GcFAk
ODdkMQ0KPiB6dWVUNVg/dVlsN2owP20zPSpyMEk1fEBUb3IoKitzQn5BPWg9O3hWLQ0KPiA8cDl9
TSttcmJfYDBTRE5wUHdHZFp5WmhADQo+IHorKHxoLQ0KPiAwe0ZYZVU7NkJXOStITXtBSXtDfUN1
eUtWaFVLUiopKldvP052Q2BJKHokVWg+RFBOVjxqfWR0ZHlvfCkNCj4gemN6XnVzRkVVQFdZcThg
Mzl7P0gxR0sjKUAtDQo+IEdAJGVeT0dwKDZINTBfOXlHZE5lfFAhXzllPVppbyhIXjtWT2dOKQ0K
PiB6TlFkZl8tDQo+IF5wSyhCYzF2ODcya1pOQUh0Xig9SX1hRFEocTJWJGYpd2BfT3xybnZMSzBM
OURueDc3JUJWYjxLTzZxDQo+IHp0Q3dXQHs7aXZ8dFpPNFpBN29md2o7bD14ST9DQEhEelV0T0pM
eDwyQXtWbmhxR05BMXBnVWpla3U+YSRSDQo+ID0rY2wNCj4gekA/Tmgpa1lSYldBTnFqNDxtYXtI
WiR7RGEpYyRtTyhvaX16YVdJfFdKVyVqdkxwdF5HNUlYYmVDXnxEYA0KPiA2eiVXTA0KPiB6P0By
WUkhI0x2Zmh+KjdFPW5RYCZgNjIpPldLNzIzeTUtU2NiYUxQO2JaJTY4eytfO1YzN2B4LQ0KPiBF
TmU3PUg5Z1NEDQo+IHpwbHhsIT08e0FsYm04cXo1PWV1RkdWb35wck52elNRdUZyX3xMdm5mZ1dz
KXxycWhzPyU0ZTspeWkhMzF2aX1Faw0KPiBDdUNYb3YNCj4gDQo+IGRpZmYgLS1naXQgYS9zcmMv
eGVuYWdlbnQvbWVzc2FnZXMubWMgYi9zcmMveGVuYWdlbnQvbWVzc2FnZXMubWMNCj4gbmV3IGZp
bGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMC4uMDI4OWM0NA0KPiAtLS0gL2Rldi9udWxs
DQo+ICsrKyBiL3NyYy94ZW5hZ2VudC9tZXNzYWdlcy5tYw0KPiBAQCAtMCwwICsxLDY2IEBADQo+
ICtTZXZlcml0eU5hbWVzPShJbmZvcm1hdGlvbmFsPTB4MSkNCj4gK0ZhY2lsaXR5TmFtZXM9KFhl
blVzZXI9MHhkNjApDQo+ICsNCj4gK01lc3NhZ2VJZD0weDAwMDENCj4gK0ZhY2lsaXR5PVhlblVz
ZXINCj4gK1NldmVyaXR5PUluZm9ybWF0aW9uYWwNCj4gK1N5bWJvbGljTmFtZT1FVkVOVF9YRU5V
U0VSX1BPV0VST0ZGDQo+ICtMYW5ndWFnZT1FbmdsaXNoDQo+ICtUaGUgdG9vbHMgcmVxdWVzdGVk
IHRoYXQgdGhlIGxvY2FsIFZNIHNodXQgaXRzZWxmIGRvd24uDQo+ICsuDQo+ICsNCj4gK01lc3Nh
Z2VJZD0weDAwMDINCj4gK0ZhY2lsaXR5PVhlblVzZXINCj4gK1NldmVyaXR5PUluZm9ybWF0aW9u
YWwNCj4gK1N5bWJvbGljTmFtZT1FVkVOVF9YRU5VU0VSX1JFQk9PVA0KPiArTGFuZ3VhZ2U9RW5n
bGlzaA0KPiArVGhlIHRvb2xzIHJlcXVlc3RlZCB0aGF0IHRoZSBsb2NhbCBWTSByZWJvb3QuDQo+
ICsuDQo+ICsNCj4gK01lc3NhZ2VJZD0weDAwMDMNCj4gK0ZhY2lsaXR5PVhlblVzZXINCj4gK1Nl
dmVyaXR5PUluZm9ybWF0aW9uYWwNCj4gK1N5bWJvbGljTmFtZT1FVkVOVF9YRU5VU0VSX0hJQkVS
TkFURQ0KPiArTGFuZ3VhZ2U9RW5nbGlzaA0KPiArVGhlIHRvb2xzIHJlcXVlc3RlZCB0aGF0IHRo
ZSBsb2NhbCBWTSBoaWJlcm5hdGUgaXRzZWxmLg0KPiArLg0KPiArDQo+ICtNZXNzYWdlSWQ9MHgw
MDA0DQo+ICtGYWNpbGl0eT1YZW5Vc2VyDQo+ICtTZXZlcml0eT1JbmZvcm1hdGlvbmFsDQo+ICtT
eW1ib2xpY05hbWU9RVZFTlRfWEVOVVNFUl9TMw0KPiArTGFuZ3VhZ2U9RW5nbGlzaA0KPiArVGhl
IHRvb2xzIHJlcXVlc3RlZCB0aGF0IHRoZSBsb2NhbCBWTSBlbnRlciBwb3dlciBzdGF0ZSBTMy4N
Cj4gKy4NCj4gKw0KPiArTWVzc2FnZUlkPTB4MDAwNQ0KPiArRmFjaWxpdHk9WGVuVXNlcg0KPiAr
U2V2ZXJpdHk9SW5mb3JtYXRpb25hbA0KPiArU3ltYm9saWNOYW1lPUVWRU5UX1hFTlVTRVJfV01J
DQo+ICtMYW5ndWFnZT1FbmdsaXNoDQo+ICtUaGUgdG9vbHMgbm90aWNlZCB0aGF0IFdNSSBiZWNh
bWUgbm9uLWZ1bmN0aW9uYWwuDQo+ICsuDQo+ICsNCj4gK01lc3NhZ2VJZD0weDAwMDYNCj4gK0Zh
Y2lsaXR5PVhlblVzZXINCj4gK1NldmVyaXR5PUluZm9ybWF0aW9uYWwNCj4gK1N5bWJvbGljTmFt
ZT1FVkVOVF9YRU5VU0VSX1NUQVJURUQNCj4gK0xhbmd1YWdlPUVuZ2xpc2gNCj4gK1RoZSB0b29s
cyBpbml0aWF0ZWQuDQo+ICsuDQo+ICsNCj4gK01lc3NhZ2VJZD0weDAwMDcNCj4gK0ZhY2lsaXR5
PVhlblVzZXINCj4gK1NldmVyaXR5PUluZm9ybWF0aW9uYWwNCj4gK1N5bWJvbGljTmFtZT1FVkVO
VF9YRU5VU0VSX1VOU1VTUEVOREVEDQo+ICtMYW5ndWFnZT1FbmdsaXNoDQo+ICtUaGUgdG9vbHMg
cmV0dXJuZWQgZnJvbSBzdXNwZW5kLg0KPiArLg0KPiArDQo+ICtNZXNzYWdlSWQ9MHgwMDA4DQo+
ICtGYWNpbGl0eT1YZW5Vc2VyDQo+ICtTZXZlcml0eT1JbmZvcm1hdGlvbmFsDQo+ICtTeW1ib2xp
Y05hbWU9RVZFTlRfWEVOVVNFUl9VTkVYUEVDVEVEDQo+ICtMYW5ndWFnZT1FbmdsaXNoDQo+ICtU
aGUgdG9vbHMgZXhwZXJpZW5jZWQgYW4gdW5leHBlY3RlZCBlcnJvci4NCj4gKy4NCj4gZGlmZiAt
LWdpdCBhL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcCBiL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmNw
cA0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwLi5iNzk0NTQ0DQo+IC0t
LSAvZGV2L251bGwNCj4gKysrIGIvc3JjL3hlbmFnZW50L3NlcnZpY2UuY3BwDQo+IEBAIC0wLDAg
KzEsMjQ4IEBADQo+ICsvKiBDb3B5cmlnaHQgKGMpIENpdHJpeCBTeXN0ZW1zIEluYy4NCj4gKyAq
IEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+ICsgKg0KPiArICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcywNCj4gKyAqIHdpdGggb3Igd2l0aG91dCBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQNCj4gKyAqIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZSBtZXQ6DQo+ICsgKg0KPiArICogKiAgIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUNCj4gKyAqICAgICBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlDQo+ICsgKiAgICAgZm9sbG93
aW5nIGRpc2NsYWltZXIuDQo+ICsgKiAqICAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQ0KPiArICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUNCj4gKyAqICAgICBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXINCj4gKyAqICAgICBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KPiArICoNCj4gKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORA0KPiArICogQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywN
Cj4gKyAqIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GDQo+ICsgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQ0KPiArICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVCBIT0xERVIgT1INCj4gKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLA0KPiArICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywNCj4gKyAqIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUg0KPiArICogU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUw0KPiArICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksDQo+
ICsgKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcNCj4gKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UNCj4gKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YNCj4gKyAqIFNVQ0ggREFNQUdFLg0KPiArICovDQo+ICsNCj4g
KyNkZWZpbmUgSU5JVEdVSUQNCj4gKyNpbmNsdWRlIDx3aW5kb3dzLmg+DQo+ICsjaW5jbHVkZSA8
c3RkaW8uaD4NCj4gKw0KPiArI2luY2x1ZGUgPHhlbmlmYWNlX2lvY3Rscy5oPg0KPiArDQo+ICsj
aW5jbHVkZSAic2VydmljZS5oIg0KPiArI2luY2x1ZGUgIm1lc3NhZ2VzLmgiDQo+ICsNCj4gK2lu
dCBfX3N0ZGNhbGwgV2luTWFpbihISU5TVEFOQ0UgaEluc3RhbmNlLCBISU5TVEFOQ0UgaWdub3Jl
LCBMUFNUUg0KPiBscENtZExpbmUsIGludCBuQ21kU2hvdykNCj4gK3sNCj4gKyAgICBpZiAoc3Ry
bGVuKGxwQ21kTGluZSkgIT0gMCkgew0KPiArICAgICAgICBpZiAoIXN0cmNtcChscENtZExpbmUs
ICItaSIpIHx8ICFzdHJjbXAobHBDbWRMaW5lLCAiXCItaVwiIikpDQo+ICsgICAgICAgICAgICBy
ZXR1cm4gQ1hlbkFnZW50OjpTZXJ2aWNlSW5zdGFsbCgpOw0KPiArICAgICAgICBpZiAoIXN0cmNt
cChscENtZExpbmUsICItdSIpIHx8ICFzdHJjbXAobHBDbWRMaW5lLCAiXCItdVwiIikpDQo+ICsg
ICAgICAgICAgICByZXR1cm4gQ1hlbkFnZW50OjpTZXJ2aWNlVW5pbnN0YWxsKCk7DQo+ICsgICAg
fQ0KPiArICAgIHJldHVybiBDWGVuQWdlbnQ6OlNlcnZpY2VFbnRyeSgpOw0KPiArfQ0KPiArDQo+
ICtzdGF0aWMgQ1hlbkFnZW50IHNfc2VydmljZTsNCj4gKw0KPiArLypzdGF0aWMqLyB2b2lkIENY
ZW5BZ2VudDo6TG9nKGNvbnN0IGNoYXIqIGZtdCwgLi4uKQ0KPiArew0KPiArICAgIGNoYXIgbWVz
c2FnZVtYRU5JRkFDRV9MT0dfTUFYX0xFTkdUSF07DQo+ICsgICAgdmFfbGlzdCBhcmdzOw0KPiAr
DQo+ICsgICAgdmFfc3RhcnQoYXJncywgZm10KTsNCj4gKyAgICB2c25wcmludGZfcyhtZXNzYWdl
LCBzaXplb2YobWVzc2FnZSksDQo+IHNpemVvZihtZXNzYWdlKS9zaXplb2YobWVzc2FnZVswXSkg
LSAxLCBmbXQsIGFyZ3MpOw0KPiArICAgIHZhX2VuZChhcmdzKTsNCj4gKw0KPiArICAgIE91dHB1
dERlYnVnU3RyaW5nKG1lc3NhZ2UpOw0KPiArfQ0KPiArDQo+ICsvKnN0YXRpYyovIGludCBDWGVu
QWdlbnQ6OlNlcnZpY2VJbnN0YWxsKCkNCj4gK3sNCj4gKyAgICBTQ19IQU5ETEUgICBzdmMsIG1n
cjsNCj4gKyAgICBjaGFyICAgICAgICBwYXRoW01BWF9QQVRIKzFdOw0KPiArDQo+ICsgICAgbWdy
ID0gT3BlblNDTWFuYWdlcihOVUxMLCBOVUxMLCBTQ19NQU5BR0VSX0FMTF9BQ0NFU1MpOw0KPiAr
ICAgIGlmIChtZ3IgPT0gTlVMTCkNCj4gKyAgICAgICAgcmV0dXJuIC0xOw0KPiArDQo+ICsgICAg
aWYgKEdldE1vZHVsZUZpbGVOYW1lQShOVUxMLCBwYXRoLCBNQVhfUEFUSCkgPT0gMCkgew0KPiAr
ICAgICAgICBDbG9zZVNlcnZpY2VIYW5kbGUobWdyKTsNCj4gKyAgICAgICAgcmV0dXJuIEdldExh
c3RFcnJvcigpOw0KPiArICAgIH0NCj4gKyAgICBwYXRoW01BWF9QQVRIXSA9IDA7DQo+ICsNCj4g
KyAgICBzdmMgPSBDcmVhdGVTZXJ2aWNlQShtZ3IsIFNWQ19OQU1FLCBTVkNfRElTUExBWU5BTUUs
DQo+IFNFUlZJQ0VfQUxMX0FDQ0VTUywNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIFNFUlZJ
Q0VfV0lOMzJfT1dOX1BST0NFU1MsIFNFUlZJQ0VfQVVUT19TVEFSVCwNCj4gKyAgICAgICAgICAg
ICAgICAgICAgICAgIFNFUlZJQ0VfRVJST1JfTk9STUFMLCBwYXRoLA0KPiArICAgICAgICAgICAg
ICAgICAgICAgICAgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCk7DQo+ICsgICAgaWYgKHN2
YyA9PSBOVUxMKSB7DQo+ICsgICAgICAgIENsb3NlU2VydmljZUhhbmRsZShtZ3IpOw0KPiArICAg
ICAgICByZXR1cm4gLTI7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgQ2xvc2VTZXJ2aWNlSGFuZGxl
KHN2Yyk7DQo+ICsgICAgQ2xvc2VTZXJ2aWNlSGFuZGxlKG1ncik7DQo+ICsgICAgcmV0dXJuIDA7
DQo+ICt9DQo+ICsNCj4gKy8qc3RhdGljKi8gaW50IENYZW5BZ2VudDo6U2VydmljZVVuaW5zdGFs
bCgpDQo+ICt7DQo+ICsgICAgU0NfSEFORExFICAgc3ZjLCBtZ3I7DQo+ICsNCj4gKyAgICBtZ3Ig
PSBPcGVuU0NNYW5hZ2VyKE5VTEwsIE5VTEwsIFNDX01BTkFHRVJfQUxMX0FDQ0VTUyk7DQo+ICsg
ICAgaWYgKG1nciA9PSBOVUxMKQ0KPiArICAgICAgICByZXR1cm4gLTE7DQo+ICsNCj4gKyAgICBz
dmMgPSBPcGVuU2VydmljZShtZ3IsIFNWQ19OQU1FLCBTRVJWSUNFX0FMTF9BQ0NFU1MpOw0KPiAr
ICAgIGlmIChzdmMgPT0gTlVMTCkgew0KPiArICAgICAgICBDbG9zZVNlcnZpY2VIYW5kbGUobWdy
KTsNCj4gKyAgICAgICAgcmV0dXJuIC0yOw0KPiArICAgIH0NCj4gKw0KPiArICAgIC8vIHRyeSB0
byBzdG9wIHRoZSBzZXJ2aWNlDQo+ICsgICAgaWYgKENvbnRyb2xTZXJ2aWNlKHN2YywgU0VSVklD
RV9DT05UUk9MX1NUT1AsICZzX3NlcnZpY2UubV9zdGF0dXMpKQ0KPiArICAgIHsNCj4gKyAgICAg
ICAgU2xlZXAoIDEwMDAgKTsNCj4gKw0KPiArICAgICAgICB3aGlsZSAoUXVlcnlTZXJ2aWNlU3Rh
dHVzKHN2YywgJnNfc2VydmljZS5tX3N0YXR1cykpDQo+ICsgICAgICAgIHsNCj4gKyAgICAgICAg
ICAgIGlmIChzX3NlcnZpY2UubV9zdGF0dXMuZHdDdXJyZW50U3RhdGUgIT0gU0VSVklDRV9TVE9Q
X1BFTkRJTkcpDQo+ICsgICAgICAgICAgICAgICAgYnJlYWs7DQo+ICsgICAgICAgICAgICBTbGVl
cCgxMDAwKTsNCj4gKyAgICAgICAgfQ0KPiArICAgIH0NCj4gKw0KPiArICAgIC8vIG5vdyByZW1v
dmUgdGhlIHNlcnZpY2UNCj4gKyAgICBEZWxldGVTZXJ2aWNlKHN2Yyk7DQo+ICsgICAgQ2xvc2VT
ZXJ2aWNlSGFuZGxlKHN2Yyk7DQo+ICsgICAgQ2xvc2VTZXJ2aWNlSGFuZGxlKG1ncik7DQo+ICsg
ICAgcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gKy8qc3RhdGljKi8gaW50IENYZW5BZ2VudDo6U2Vy
dmljZUVudHJ5KCkNCj4gK3sNCj4gKyAgICBTRVJWSUNFX1RBQkxFX0VOVFJZIFNlcnZpY2VUYWJs
ZVsyXSA9DQo+ICsgICAgew0KPiArICAgICAgICB7IFNWQ19OQU1FLCAoTFBTRVJWSUNFX01BSU5f
RlVOQ1RJT04pU2VydmljZU1haW4gfSwNCj4gKyAgICAgICAgeyBOVUxMLCBOVUxMIH0NCj4gKyAg
ICB9Ow0KPiArDQo+ICsgICAgaWYgKCFTdGFydFNlcnZpY2VDdHJsRGlzcGF0Y2hlcihTZXJ2aWNl
VGFibGUpKSB7DQo+ICsgICAgICAgIENYZW5BZ2VudDo6TG9nKCJGYWlsZWQgdG8gc3RhcnQgZGlz
cGF0Y2hlclxuIik7DQo+ICsgICAgICAgIHJldHVybiBHZXRMYXN0RXJyb3IoKTsNCj4gKyAgICB9
DQo+ICsgICAgcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gKy8qc3RhdGljKi8gdm9pZCBXSU5BUEkg
Q1hlbkFnZW50OjpTZXJ2aWNlTWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpDQo+ICt7DQo+ICsg
ICAgc19zZXJ2aWNlLl9fU2VydmljZU1haW4oYXJnYywgYXJndik7DQo+ICt9DQo+ICsNCj4gKy8q
c3RhdGljKi8gRFdPUkQgV0lOQVBJIENYZW5BZ2VudDo6U2VydmljZUNvbnRyb2xIYW5kbGVyRXgo
RFdPUkQNCj4gcmVxLCBEV09SRCBldnQsIExQVk9JRCBkYXRhLCBMUFZPSUQgY3R4dCkNCj4gK3sN
Cj4gKyAgICByZXR1cm4gc19zZXJ2aWNlLl9fU2VydmljZUNvbnRyb2xIYW5kbGVyRXgocmVxLCBl
dnQsIGRhdGEsIGN0eHQpOw0KPiArfQ0KPiArDQo+ICtDWGVuQWdlbnQ6OkNYZW5BZ2VudCgpIDog
bV9oYW5kbGUoTlVMTCksIG1fZXZ0bG9nKE5VTEwpDQo+ICt7DQo+ICsgICAgbV9zdGF0dXMuZHdT
ZXJ2aWNlVHlwZSAgICAgICAgPSBTRVJWSUNFX1dJTjMyOw0KPiArICAgIG1fc3RhdHVzLmR3Q3Vy
cmVudFN0YXRlICAgICAgID0gU0VSVklDRV9TVEFSVF9QRU5ESU5HOw0KPiArICAgIG1fc3RhdHVz
LmR3Q29udHJvbHNBY2NlcHRlZCAgID0gU0VSVklDRV9BQ0NFUFRfU1RPUCB8DQo+IFNFUlZJQ0Vf
QUNDRVBUX1NIVVRET1dOOw0KPiArICAgIG1fc3RhdHVzLmR3V2luMzJFeGl0Q29kZSAgICAgID0g
MDsNCj4gKyAgICBtX3N0YXR1cy5kd1NlcnZpY2VTcGVjaWZpY0V4aXRDb2RlID0gMDsNCj4gKyAg
ICBtX3N0YXR1cy5kd0NoZWNrUG9pbnQgICAgICAgICA9IDA7DQo+ICsgICAgbV9zdGF0dXMuZHdX
YWl0SGludCAgICAgICAgICAgPSAwOw0KPiArDQo+ICsgICAgbV9zdmNfc3RvcCA9IENyZWF0ZUV2
ZW50KEZBTFNFLCBOVUxMLCBOVUxMLCBGQUxTRSk7DQo+ICt9DQo+ICsNCj4gK0NYZW5BZ2VudDo6
fkNYZW5BZ2VudCgpDQo+ICt7DQo+ICsgICAgQ2xvc2VIYW5kbGUobV9zdmNfc3RvcCk7DQo+ICt9
DQo+ICsNCj4gK3ZvaWQgQ1hlbkFnZW50OjpPblNlcnZpY2VTdGFydCgpDQo+ICt7DQo+ICsgICAg
Q1hlbkFnZW50OjpMb2coIk9uU2VydmljZVN0YXJ0KClcbiIpOw0KPiArfQ0KPiArDQo+ICt2b2lk
IENYZW5BZ2VudDo6T25TZXJ2aWNlU3RvcCgpDQo+ICt7DQo+ICsgICAgQ1hlbkFnZW50OjpMb2co
Ik9uU2VydmljZVN0b3AoKVxuIik7DQo+ICt9DQo+ICsNCj4gK3ZvaWQgQ1hlbkFnZW50OjpPbkRl
dmljZUV2ZW50KERXT1JEIGV2dCwgTFBWT0lEIGRhdGEpDQo+ICt7DQo+ICt9DQo+ICsNCj4gK2Jv
b2wgQ1hlbkFnZW50OjpTZXJ2aWNlTWFpbkxvb3AoKQ0KPiArew0KPiArICAgIFdhaXRGb3JTaW5n
bGVPYmplY3QobV9zdmNfc3RvcCwgSU5GSU5JVEUpOw0KPiArICAgIHJldHVybiBmYWxzZTsNCj4g
K30NCj4gKw0KPiArdm9pZCBDWGVuQWdlbnQ6OlNldFNlcnZpY2VTdGF0dXMoRFdPUkQgc3RhdGUs
IERXT1JEIGV4aXQgLyo9IDAqLywNCj4gRFdPUkQgaGludCAvKj0gMCovKQ0KPiArew0KPiArICAg
IG1fc3RhdHVzLmR3Q3VycmVudFN0YXRlID0gc3RhdGU7DQo+ICsgICAgbV9zdGF0dXMuZHdXaW4z
MkV4aXRDb2RlID0gZXhpdDsNCj4gKyAgICBtX3N0YXR1cy5kd1dhaXRIaW50ID0gaGludDsNCj4g
KyAgICA6OlNldFNlcnZpY2VTdGF0dXMobV9oYW5kbGUsICZtX3N0YXR1cyk7DQo+ICt9DQo+ICsN
Cj4gK3ZvaWQgV0lOQVBJIENYZW5BZ2VudDo6X19TZXJ2aWNlTWFpbihpbnQgYXJnYywgY2hhcioq
IGFyZ3YpDQo+ICt7DQo+ICsgICAgbV9oYW5kbGUgPSBSZWdpc3RlclNlcnZpY2VDdHJsSGFuZGxl
ckV4KFNWQ19OQU1FLA0KPiBTZXJ2aWNlQ29udHJvbEhhbmRsZXJFeCwgTlVMTCk7DQo+ICsgICAg
aWYgKG1faGFuZGxlID09IE5VTEwpDQo+ICsgICAgICAgIHJldHVybjsNCj4gKw0KPiArICAgIG1f
ZXZ0bG9nID0gUmVnaXN0ZXJFdmVudFNvdXJjZShOVUxMLCBTVkNfTkFNRSk7DQo+ICsgICAgU2V0
U2VydmljZVN0YXR1cyhTRVJWSUNFX1JVTk5JTkcpOw0KPiArDQo+ICsgICAgT25TZXJ2aWNlU3Rh
cnQoKTsNCj4gKyAgICB3aGlsZSAoU2VydmljZU1haW5Mb29wKCkpIDsNCj4gKyAgICBPblNlcnZp
Y2VTdG9wKCk7DQo+ICsNCj4gKyAgICBpZiAobV9ldnRsb2cpDQo+ICsgICAgICAgIERlcmVnaXN0
ZXJFdmVudFNvdXJjZShtX2V2dGxvZyk7DQo+ICsgICAgbV9ldnRsb2cgPSBOVUxMOw0KPiArICAg
IFNldFNlcnZpY2VTdGF0dXMoU0VSVklDRV9TVE9QUEVEKTsNCj4gK30NCj4gKw0KPiArRFdPUkQg
V0lOQVBJIENYZW5BZ2VudDo6X19TZXJ2aWNlQ29udHJvbEhhbmRsZXJFeChEV09SRCByZXEsDQo+
IERXT1JEIGV2dCwgTFBWT0lEIGRhdGEsIExQVk9JRCBjdHh0KQ0KPiArew0KPiArICAgIHN3aXRj
aCAocmVxKQ0KPiArICAgIHsNCj4gKyAgICBjYXNlIFNFUlZJQ0VfQ09OVFJPTF9TVE9QOg0KPiAr
ICAgICAgICBTZXRTZXJ2aWNlU3RhdHVzKFNFUlZJQ0VfU1RPUF9QRU5ESU5HKTsNCj4gKyAgICAg
ICAgU2V0RXZlbnQobV9zdmNfc3RvcCk7DQo+ICsgICAgICAgIHJldHVybiBOT19FUlJPUjsNCj4g
Kw0KPiArICAgIGNhc2UgU0VSVklDRV9DT05UUk9MX1NIVVRET1dOOg0KPiArICAgICAgICBTZXRT
ZXJ2aWNlU3RhdHVzKFNFUlZJQ0VfU1RPUF9QRU5ESU5HKTsNCj4gKyAgICAgICAgU2V0RXZlbnQo
bV9zdmNfc3RvcCk7DQo+ICsgICAgICAgIHJldHVybiBOT19FUlJPUjsNCj4gKw0KPiArICAgIGNh
c2UgU0VSVklDRV9DT05UUk9MX0RFVklDRUVWRU5UOg0KPiArICAgICAgICBTZXRTZXJ2aWNlU3Rh
dHVzKFNFUlZJQ0VfUlVOTklORyk7DQo+ICsgICAgICAgIE9uRGV2aWNlRXZlbnQoZXZ0LCBkYXRh
KTsNCj4gKyAgICAgICAgcmV0dXJuIE5PX0VSUk9SOw0KPiArDQo+ICsgICAgY2FzZSBTRVJWSUNF
X0NPTlRST0xfSU5URVJST0dBVEU6DQo+ICsgICAgICAgIFNldFNlcnZpY2VTdGF0dXMoU0VSVklD
RV9SVU5OSU5HKTsNCj4gKyAgICAgICAgcmV0dXJuIE5PX0VSUk9SOw0KPiArDQo+ICsgICAgZGVm
YXVsdDoNCj4gKyAgICAgICAgYnJlYWs7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgU2V0U2Vydmlj
ZVN0YXR1cyhTRVJWSUNFX1JVTk5JTkcpOw0KPiArICAgIHJldHVybiBFUlJPUl9DQUxMX05PVF9J
TVBMRU1FTlRFRDsNCj4gK30NCj4gZGlmZiAtLWdpdCBhL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmgg
Yi9zcmMveGVuYWdlbnQvc2VydmljZS5oDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4
IDAwMDAwMDAuLjc0NDZlNDENCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9zcmMveGVuYWdlbnQv
c2VydmljZS5oDQo+IEBAIC0wLDAgKzEsNzQgQEANCj4gKy8qIENvcHlyaWdodCAoYykgQ2l0cml4
IFN5c3RlbXMgSW5jLg0KPiArICogQWxsIHJpZ2h0cyByZXNlcnZlZC4NCj4gKyAqDQo+ICsgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLA0KPiArICog
d2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZA0KPiAr
ICogdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoNCj4gKyAqDQo+ICsgKiAq
ICAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQ0K
PiArICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUNCj4gKyAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCj4gKyAqICogICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlDQo+ICsgKiAgICAg
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZQ0KPiArICog
ICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
cg0KPiArICogICAgIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uDQo+
ICsgKg0KPiArICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EDQo+ICsgKiBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLA0KPiArICogSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YNCj4gKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFDQo+ICsgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUg0KPiArICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsDQo+ICsgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLA0K
PiArICogQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SDQo+ICsgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTDQo+ICsgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwNCj4gKyAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORw0KPiArICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQ0KPiArICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRg0KPiArICogU1VDSCBEQU1B
R0UuDQo+ICsgKi8NCj4gKw0KPiArI2lmbmRlZiBfX1hFTkFHRU5UX1NFUlZJQ0VfSF9fDQo+ICsj
ZGVmaW5lIF9fWEVOQUdFTlRfU0VSVklDRV9IX18NCj4gKw0KPiArI2luY2x1ZGUgPHZlcnNpb24u
aD4NCj4gKw0KPiArI2RlZmluZSBTVkNfTkFNRSAieGVuc3ZjIg0KPiArI2RlZmluZSBTVkNfRElT
UExBWU5BTUUgUFJPRFVDVF9OQU1FX1NUUiAjIyAiSW50ZXJmYWNlIFNlcnZpY2UiDQo+ICsjZGVm
aW5lIFNWQ19ERVNDICJNb25pdG9ycyBhbmQgcHJvdmlkZXMgdmFyaW91cyBtZXRyaWNzIHRvIFhl
blN0b3JlIg0KPiArDQo+ICtjbGFzcyBDWGVuQWdlbnQNCj4gK3sNCj4gK3B1YmxpYzogLy8gc3Rh
dGljcw0KPiArICAgIHN0YXRpYyB2b2lkIExvZyhjb25zdCBjaGFyKiBmbXQsIC4uLik7DQo+ICsN
Cj4gKyAgICBzdGF0aWMgaW50IFNlcnZpY2VJbnN0YWxsKCk7DQo+ICsgICAgc3RhdGljIGludCBT
ZXJ2aWNlVW5pbnN0YWxsKCk7DQo+ICsgICAgc3RhdGljIGludCBTZXJ2aWNlRW50cnkoKTsNCj4g
Kw0KPiArICAgIHN0YXRpYyB2b2lkIFdJTkFQSSBTZXJ2aWNlTWFpbihpbnQgYXJnYywgY2hhcioq
IGFyZ3YpOw0KPiArICAgIHN0YXRpYyBEV09SRCBXSU5BUEkgU2VydmljZUNvbnRyb2xIYW5kbGVy
RXgoRFdPUkQsIERXT1JELA0KPiBMUFZPSUQsIExQVk9JRCk7DQo+ICsNCj4gK3B1YmxpYzogLy8g
Y3Rvci9kdG9yDQo+ICsgICAgQ1hlbkFnZW50KCk7DQo+ICsgICAgfkNYZW5BZ2VudCgpOw0KPiAr
DQo+ICtwcml2YXRlOiAvLyBzZXJ2aWNlIGV2ZW50cw0KPiArICAgIHZvaWQgT25TZXJ2aWNlU3Rh
cnQoKTsNCj4gKyAgICB2b2lkIE9uU2VydmljZVN0b3AoKTsNCj4gKyAgICB2b2lkIE9uRGV2aWNl
RXZlbnQoRFdPUkQsIExQVk9JRCk7DQo+ICsgICAgYm9vbCBTZXJ2aWNlTWFpbkxvb3AoKTsNCj4g
Kw0KPiArcHJpdmF0ZTogLy8gc2VydmljZSBzdXBwb3J0DQo+ICsgICAgdm9pZCBTZXRTZXJ2aWNl
U3RhdHVzKERXT1JEIHN0YXRlLCBEV09SRCBleGl0ID0gMCwgRFdPUkQgaGludCA9IDApOw0KPiAr
ICAgIHZvaWQgV0lOQVBJIF9fU2VydmljZU1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KTsNCj4g
KyAgICBEV09SRCBXSU5BUEkgX19TZXJ2aWNlQ29udHJvbEhhbmRsZXJFeChEV09SRCwgRFdPUkQs
IExQVk9JRCwNCj4gTFBWT0lEKTsNCj4gKw0KPiArICAgIFNFUlZJQ0VfU1RBVFVTICAgICAgICAg
IG1fc3RhdHVzOw0KPiArICAgIFNFUlZJQ0VfU1RBVFVTX0hBTkRMRSAgIG1faGFuZGxlOw0KPiAr
ICAgIEhBTkRMRSAgICAgICAgICAgICAgICAgIG1fZXZ0bG9nOw0KPiArICAgIEhBTkRMRSAgICAg
ICAgICAgICAgICAgIG1fc3ZjX3N0b3A7DQo+ICt9Ow0KPiArDQo+ICsjZW5kaWYNCj4gZGlmZiAt
LWdpdCBhL3NyYy94ZW5hZ2VudC94ZW4uaWNvIGIvc3JjL3hlbmFnZW50L3hlbi5pY28NCj4gbmV3
IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXgNCj4gMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uODQ0Yzk5M2JhMjkwZTUwNTVhODkwMGNhODcNCj4gODZlYTBlMDMxMTM4
YTYNCj4gR0lUIGJpbmFyeSBwYXRjaA0KPiBsaXRlcmFsIDI1MjE0DQo+IHpjbWVIdjMwemdoYH1l
UmZEeXhicCVMUFAwUCpEJjtLdXwhKkM3MENQJTYmS1lsKipGSzU+M1NvMT5FO0ZfWA0KPiBUJH0N
Cj4genZfI3l1KG8jZm94MiU0Wm1ITkVUY2d7Sk5kb04oeHJ7RFgmfElmZUNAMHBvcm9eOTRNWFVA
M0BWSjdUDQo+IEVYczhwJQ0KPiB6bVNUWGw1T2FrUEktUWNnVj1seHFyYTN0JmA5TCF2WnJLVXU3
dEMpZik7SXteUCE5WlItZDJkNj8lLUdRMUZWRjINCj4geihedW95aThjTzA5MVlPO0luUjdVVFdT
MHtGfkN4WSU1TXIwJFVkK00oU3JmTTVLQCYkcmowTURUKiNFdg0KPiBSMytqbw0KPiB6Q21FP0NI
I2U2SE5kNlpATkhPPnlOVnhvRXVvKmtINnJRblRRX3xBTGp2YTFYV0hVQWBaREx8I1RHDQo+IH1M
SW5VdTd8DQo+IHojRmhtR2lIWFQraDd2WHQ2QVA0KG1wR3xkbFRDXzdFLQ0KPiAxKUxGNG1NWGsj
JVN4UHBgP3dranpGak8kSiZabCRXZlMNCj4gekhldUhiKmk2KF50OHQjOUQ1YSRkeStBNHxwKzsz
eUxKZURucUxofVd4Vj5wQWwlPVopQ31RPVhLVn51KjUNCj4gV0BofQ0KPiB6WGFhZ1ZFMFhGfTBZ
cD41dWhGSFpzZTFOZXgrSkEqPzhTNWBwalFMQlQzWk5ra2xzaiN2e3EwR3EqV3VqdGRydA0KPiBS
DQo+IHpEZkUoaDZuOyUwZEFRYldVI2Y8czElMTdnQ2V3UlZPcWNBXkNrUGJOUVAoRiohKllRc1Q/
KCpJT2pqeF8pDQo+IHZ5OXANCj4gemxpRHdlKWhBMz55OWpqNlFCYyhZSEI0YCo8K1Y2YjRqYEBO
R14qQGdETnN6MkRYRkZ1TVQjMnN3MEtzNFUNCj4gbU1TKw0KPiB6bU5qLTNGbSRQU3pLRjhzN2kt
DQo+IGM/N3xsbzRSUW1pQ1d6QmFYTj8jdV4kQm93JHJNc35mSiZzZT5Cdzs0dyQzbnptDQo+IHpq
ZH49Nkh7d0RlOTEqN3FWUyQpNm5lcFdyJEgrV0VKWUVQRVc1TUU+I2FWJDZnQF8lQzw2UHV6Z3cN
Cj4gV3p0PFNsczMNCj4gentFSGFIeWRXIyNJZExqRFVPLTxpX3plNmdNQmN6cCY0MUgrWTR6M1cm
cktsUEwqRzhFTlZiPk9lcC0NCj4gOHkrUC1SZw0KPiB6PDM2S2YjNTEofWpOcDQtPV48NVZBaWwz
fmlveVJ0Oz4rSz0mbHJ5ZDh8OXdEbnc1fkUrKUlZNSp8OEg3VGpDeHYNCj4gek5nPiN6YVNrQ19Q
UDV8YXAtDQo+IGM+ZWQ3MXxYKTRidWRsPE9fZXtpeXs3eWI/QFIqOSN0K1E/Vmp3Pmp4KHZWPEZK
Ow0KPiB6TlQqMzVIWHprODBtWWMlR0xQaiVVQzxTQz1fVGBXMn5fI3pHNlZzMkohRSFQcTRAKmY8
ZUR+Pj9WJm4NCj4gY181XyM1DQo+IHpZTSQ5eW1UZ1l0M1kqbGdNRXk8TSE/Z1dgWTVOTTNfUSRG
cUBBWD4kQFhWSGIwPTJzazc1NlYlTQ0KPiBoPn1EMyFkSSkNCj4geiNOJjU3aDlyaChBckRtYG1q
ek9KKSkrITR2a2Z5JTU1c2IjYjZLdVgpZDc5YjM7bEFhIXlZZCE4MFN0NTlZWSlFDQo+IHpzaGxv
N3ErKVBtVUBIK3tJcilPKW9hPkFodV5GQTEqbytnU1RrPzJtQ1R1dzMjQmVQaGVkPSpSYGpkaVlx
DQo+IFlMT1UNCj4gel9hZXZLa3ArbUVBWTw5dnBnJWM5UT00Z1dUQ0N+UytkKjVpeHlNLQ0KPiBS
WTxPTTYrUVRnZGxvaG1jQEluVCUjYHtpTg0KPiB6TVU/bHVgaz9nITZaJGRVc15UTDBnQHVXSnty
WlhWPEh3NkI5enZ4MVNjIUNoZG9qbilPdzExdVZuTUxBJA0KPiBmI0xDDQo+IHpPYj5EdnZ1anJw
KTlaU1BgRV59SFdgdmhtUlpFRHFiJWZZWlNCTmQpTGdZbDVpSHo4cVZwQyZSaz0tDQo+IG1wOTc/
YmgNCj4gemBSKGpRUTlCe2RfSTQzaCMjUit5eWNJNGN3ezl3eWJ4MDY3ITx2Yjh7a3c9UHchaSZA
KGMoc1c0Ukw+Nm4zeQ0KPiA+dw0KPiB6Tz1NK2RpS1I9SWlkQ3l0aU00Q2ppajVtTGlydT8raXZ0
R15oeXBJVmtoNFJzVFN0IWA2fn5TcDZETGxiNVR7UnsNCj4gejdVJDJPN2hpdzx3WVlscXM8PzZF
aFBaWD5tYmlRT3U2WGReZiV4JnFBSF5AZnszM3E7e2RlKX5uT3VHSw0KPiBQNGpRIQ0KPiB6LXht
MWEmO3E9WXwzOWR2bHxIPEhhcG55UzM9SERINW9ldyYhc1Y3aHs9Vk1jbypve2Etcm0wY0w2Ki0N
Cj4gR3Y5YiZhDQo+IHpeITQocDV1azx8VVlAPnpBKG15PlZCTzVFWEk1bHRjPS0NCj4gbWhqWiha
flBmQm5AaDklZ201KDJFOytlRWtPUmUrWl8NCj4gem49bGJ6Y0lpcnU1YGl0JEBINz0qYzI1SU5G
QnVGN0NJVnBoTGIxWVZlM2YpIzBqblR5am1PZ0BYbXN6Tzt3bzQNCj4gTA0KPiB6YGckXjU7akNz
OTZkRFNCMTJxQm1ya2JTZElqaFFgJm5rdWJJPHh2fW8oJnR1JGJTdWs2PXVISGklfilwMVU7K2kN
Cj4gejRPaihNV2tTM2I+WmsoMjhpRGhXc0ghPy0NCj4gVyQ3ejk7PFdPcCR9K15MY34haD5Sbj5y
MVAhJVJJaShWaW1tfi1KTw0KPiB6ZHo+UThFTEReeXZocjZiZUFPKChoZzg8UVFRME1uS1UmRGoo
eXgqfT1taT5SI2BIeTtASXd1KDAofWY8OA0KPiBrOzYpDQo+IHpQKmthc2tJRy1zRmxkfUlqeCNL
JnNQRzM+YVd4N0MwI1FaPHVDbF5iS2B0Z2lZc21RYzVSKCEjUClZdWZWaGVTUQ0KPiB6MXImWktk
KmV7N0tSJipKVlVkJk00fEtQO211bDNhMkYyPCo2JSEwSCVJKXBsbUcpdSZhdlc2bEkhNWZBMg0K
PiB8PEFADQo+IHpTTldeayoqUzZFJldgREpgaEs8M2NTWDNwb3QtU05FPVFiSUFvRHZwbUE2OSgq
MF8rLQ0KPiBFWDQlZG0zTU5vdnk8JUgNCj4gektuYH0hJk1lQC0NCj4gZGJHTk55O3ZZRm09KVNO
c04qZUFYWUs2Zj9DanYrUChEZ2s4RTBjPlhVb3RtI01nNm53JD5eNw0KPiB6Yz80Tkl5U3FjOHAy
bHUlWEpjYitWYEYyaHhmZFZoWV59MDB6c3x3TyRLNmZaczhGR1RvdnAyMTFzakh+RSQxOA0KPiBA
DQo+IHpvU29nPSs8aHUmPlVsJjVURCR3SDV7P2NJJSVsWWUyUzxoNSRLNl4jLQ0KPiAoa1NmJnJn
d1hiOU9XZ3RlU1FFYDF2e04NCj4geilubT5DeCV2M31MJlRqY1ZpLTZOWmh2PC0NCj4gckUhI0ht
cHlYeV5YQzh+a2tKQz9uMz9JMCNvaj1LMT5GMlhBcHQ4OA0KPiB6bDdXKjcmQ1FyeTY5XjRlV0Yo
ViVWVllrRmJ9NjlxPDEjSnlZWUFyOG5RQipEM2V2Z3oqRzE1P0JJRUMtDQo+IEVBNCo3DQo+IHo3
V2xAaU5xYFh7KVpibCkrcHk5c3JkT150X2teeGBYbFVLfl8xUXt3JklGZGBpemJNaGRyK1h4IW91
OWwlLXE2NA0KPiB6JEM+QmR1VnBufVc8UXxWVlU9cG8+PjlATWQ2dV85I2N7NDl3bmcrekp6c2dH
bz9qS0o9VTF1eE5RaVANCj4gKWc3WWdwDQo+IHpJcEYrQ3A1dClMJiNkek5pcEF2bGxAPUV3QDIj
RndAd3JlZ0AmPDcjXjhEOyg4aVMxVUNtSF5NSTJEUg0KPiBZdjZCbkINCj4gemZqP1RsNU9ucml0
QWBlQV8wO09Fd0Y1VlNhO30lRXdvez9uWlkmdGJoNUJ8U3JKZURkcyQ7fTZARSU0Nk9DXiQNCj4g
NQ0KPiB6Z1hoI2FvfFltYiRWRnVFXlhCNDZQcThvRE82K1Y8TEZ8c082VDZ9dSNreiktDQo+ICNo
TTBII0V4aUpGfStiT2FWWE1LDQo+IHo5RS02TzJiI0V3VTVWYWVTJHVWfGBxZXNPWFMzPWVyJldt
OUA+Kz00KUdrYD1jfEEmO1ktDQo+IH1hWUhuUzBEbFdvUHQNCj4gekh1bUQlSGpkJi1TNFdaRyso
cVFJX1l4TzZ4UWNKdkl4KT5qb2JLUSQ5PCgkUWc+NDxoP1hLbS0tDQo+IDdmYXhEbkhXfQ0KPiB6
NHM7ZHcyRHlsdlcyJVZ6P15ZNHstR2p4eEh7IStLeDRNZHshfV5LQyEoSkRra00xdD0jYFkzPD8r
cC1sUWEhfSYNCj4gems5NllCQ3B6KDlNc0BMRWV6Mz8tDQo+IGVNQH10O2MjKGMrNlE5QmoyVUE2
YHRAU2RyY0drPT1GTVd+Jllral5fc3BEJA0KPiB6OyV3JCphZW1QWmFkR0ohQHp1JktgVFUhZ21u
WTdoSkV3b3t7cE9vKiNQI2RmI2RxSSpDIWMlMnxOaUBiDQo+IHBMLTM0DQo+IHoqMXlVQjg3PVRu
S2N+alpQKTZOalY/JTVDU0ZpNDBEPk9FP0J1aXxsUGU5RigyOWMyc0xUVXpoZ3FtezFgcWdMPA0K
PiB6cjRKMVB7RVFpNWVJZz1kaCpGfStgYVhzWHZIdFpWajYjRW1gWDBwJHZBVzw9Zj0qK0leJHo0
NHNDLQ0KPiBuJE1GdTdXDQo+IHpkYURlZjktZUl4VEtuUkckK3ZNazRzQUsqNWh8LTA+JXxXXz9Q
WHwkPU4qfHNxTURhZjViS1U3OC0NCj4gKmRjWVNxP0ENCj4gendVYWI9U3NxJE4yOEUkanZNZzNl
UmJVe3Q1XnBlTlAmamJhRDN3QDJFYnNLeHBmUEI5MlM9MVVTWG90Mg0KPiB8RkBESA0KPiB6P1g7
fHcxSW1rd3QoNVppP0hnJHZDQC0NCj4gZ08wJkp8TFomRjNGcX1ofjF4ZU09S1dvUlVlWX47MUlx
X31YbzIoYDdnDQo+IHpFQHh3SC1CPWJfVFUqUHhUX2FBKDI4YHVCSjM+M3ErYVY8eCtCWXItDQo+
IF49dHNVY3FnYVV2Um8jZTZvd1hkdlJzNl4NCj4gejhhKyt2R3A8VmloKilSMCtOQV9IWEdOU1hJ
QWYxeTh1WjAqcDxZOWk1TjVBUU9DSyVrQl5aVHBPVCVLDQo+IDtWQnk+Xw0KPiB6Q0x5VjV2IStk
KENkTmNOVE5vRUpMI1ZsUDx2UChaRzB9QUBKRFpvN0E4M2N6KERLO3RsYG5PRSEzJDxWa1YqWQ0K
PiBUDQo+IHoqYE0rQ1E1O2RLam9lMT8tDQo+IGgrNF9HWDQ+N0VlZCY/ayptQ1dhN15XYGhYJGVT
cDBJTj1mPnc/PVNDdVBkOW5ifXgNCj4geiZASCFzWXpzRUFQak89QzgyV3QqXzlqe3wqciZ7ez1f
cHBseHs3NXs5JTVxP1o/VWJKbj5mKE1MK3ROZFAzJg0KPiBwbQ0KPiB6RTRIPy0NCj4gQyUpe2M2
RFBYKml1fjZETVNpQ2A7PX4ofjsoVUp9YWVreil4SDdefFRwdzNNOVBYSllQN1gqR1haa2h+DQo+
IHo9U0lGSj90TDAwX1V6ZHM0ancheEBBSD1+VTZTfHBoWXVmJHBNVTtZe1FCIyF8REk9U3txYi0N
Cj4gN1p3dmZpWlVPeTENCj4geiNZX2d4eHx4fWNsYmY1OWpoVjdzbjM9bU1NLQ0KPiBERkxhP0xP
PUtDfVlDakVefDk7QWtleXRRQF8pdDIjUW1kd2NXMg0KPiB6aEx4Rl93UFFKKiZlUHBuPVV2WFJv
VkElNSZYI2w+eW04QzFTTXVkTmItSFM1LW5NLQ0KPiBDXjZwXnA8Yjx1Nm5JI3tsDQo+IHo9eVpW
MnlARGtoOzNGNjxSRGdZcDt6S3xTPjdZZUw8d1VaZyVyYnxXb29uVUZ1NkFaOW1CRkNDYz13Mg0K
PiBSa2Ehb0YNCj4geiRfemtSS2BSRkBXRlUpbTdCez5lM15TcVFFOT54PShMWndHQlAoLQ0KPiA7
Q0J1ZU1vPjdWNiQ/IyhZRm1SeFZWPnwkOQ0KPiB6JmA8XipASW5UJSZ7NV9XN1hPSHwyMTtPeVZh
MCViSCU0X3ZUfUFAcWJ3KTJuS2dMTUxKMVVSezRRMQ0KPiBjfkZKdkdLDQo+IHo5bmJ9eHxGd0VS
SHY/QDJUa2VieU1seiQ8dEZPS351Uz1JTVUlY19nODwhWkRkLQ0KPiB2fUJXOGMxZ3A4JVp4c2F2
O2gNCj4gei0NCj4gIWxENT1neXJed3JiVUNIT3FYJGNvKHRePXp1UWhnemtVNUtVayopMUlNNV5p
d3xObj1STW5FX1VRdEE5NQ0KPiBHX1YNCj4geigrTHdNSmV4ZHV2YyNNQGIwfEFJVExOaX40aiVC
YiV1fXdAUm87Wj51JnpsQV5pT2pKYmkpUjBTcn5OdC0NCj4gJTdGJA0KPiB6R1h+bmpmdVVvPnYp
fVclT0BHalFoSldqKHF8bHlzSjV2NmpGcDB9dVQhYFAjT0NZViQhMkAyJVhtI247dEoNCj4gbHc1
DQo+IHprRy1zVkdHajFvYUxfU2U2U2tpLV5VSk9sJVZFND1PZ2J8SCp2NU4zZC1nMVotfDZZOyZ6
OC0NCj4gYU90fllIPSpwbX4NCj4gemJaZE15eDtybkI/eXNzIzQ+dzI5X2RCQktgPCFUcmhuIy0N
Cj4gNkRUM349NDVobW4wZCh2QXMmcis1eU9mMHY9emBBZg0KPiB6LQ0KPiBNaW15KnxPekV3bCNy
KUlmRDVQK2I9eVlTTyZnaFpOTkdhIWhPQUtAWmlCdUZiPFpvJXxtMDc9dGhiZy0NCj4gTl84MQ0K
PiB6Mk9IfHMhfG0pTns2eEdCaCV8digxfEJZZHVzKXBiV0NUKnQ9dF58eD9JZU91PXc9JkZkNSla
Q25eUEhtDQo+IFY0REZTDQo+IHo7TDhpbVpSVyQ2TDdnRU4jX2UoZj9TbnF3S1JrJkZNXj5XU2JB
I3dVYHx5QzxefSRCUVhaN2htejsoSTUNCj4gQXpZVEINCj4gelRvMkd0I3lzR2FHVSRgRlZSVTs9
MDlfbUVEc3tzS1k7aypDVzgxU0JCajV1QXpRQ3V5OTgxaURHM1ZULQ0KPiBPYDllPg0KPiB6Jkw0
fiZKTkRfKW5VZzkxP2ZQYCVWOyRYSDkhbUd0Z3dlZkteJSE7Tz9nfTBrT3VNX1I0JjdaXmh3ZHo/
DQo+IE8/TVdYDQo+IHpmTjNhYEptNmhYU0lYWDcle297WVdRc29ZcUdPfSM2S3VnSTxeP3wtDQo+
IEVuIzAhMmxOQlJsSHJNRmlOVmsxU1o2U0ENCj4gejB7Wm1uYk1PODQtDQo+ICsjSjxePDVhXk5q
RTxBcXVVRT5OIzc5UG8qelFEdlYhVD55cWZlS19zNGcwMF9uVGlmcGx8TA0KPiB6ME50RXYwO1p1
JUAtDQo+IFhrTSUkanM3SjZQKF8+cyR+Kk1VI0IjIVhPV1YmMmkoI0p3cU1YN3hWK2g2Nk9QWkR8
S0NCDQo+IHpJPnRRS0VuU1p1SkBVezcmfnQ5RUN0WGtUckpFVCs1O3RaQSh2MkFiUjVhYjZpYXhE
USpDK2M/O1VwZ197RnBJDQo+IE8NCj4gek43cDhKKTNweClGQlAwLQ0KPiA4cF48UG9xZEUxV1Q2
QVBabGQxTUtQTzE/b0VAT2wwWTBjPjNHKUdTVEV+RW9DRlRPdA0KPiB6Rm01WEljd2RiJTI7V2Nq
dHchSWJkUXN0Jj5JJTNYKkN6VlZScmNATzQ/TzljX2RNdUkzYT0rKS0NCj4gMEFZQERzKntODQo+
IHo3NWFMRjgrfD56YXhxNDVuclNFbDR8dVA8UTtvaEU9Zk9JPnFeQGhJSkx9ZiRlRVlzOW8kT3N6
XzUqeFQ9a3heag0KPiB6NCp+WkZxakFKfXcwLSRib2pTZGFicTRiJmNXXmo7I1d1ZWc/P3ZDUm9o
JDY/PCpgLQ0KPiBpPihURD83NWo1KFhsMSVNDQo+IHp4RlRIYDs3YUhGeHpQRE8mVUNKfjZQQGVu
TmF1UE8wQ3xBUnp5bl4kVHBWMFU+VlBpanlxcj1eK0pHKEsoDQo+IHJgRCoNCj4gejlUWUNfNjxD
K2x3SDViPUFvdlFPd0YkcyEleCFtYHVWPUIyWjZCT09YTD5yKHJJR0g4RHMqdn04PVlyKz0NCj4g
TFNAeQ0KPiB6dndkQ1lPZk0lby0NCj4gUUFIK2Iqbig5eHxGQXJveXlWNGpeKmU/MllXajRucUJH
T0dWcCpHR0xWSWl2JVE/OSZockRnDQo+IHpFcndLKndxVzwtaCReeGl6UThCa0FLMXNxNEJWJSYq
TzBIaklGQGJDPDgxaUlrdDNmaG8tDQo+IHZ2NytMb3RQOVYqbEUNCj4gel9MWFRfK2UpO3d3SlIt
DQo+IGM9fFc0SUpKYUgxQ3RCM2hrcnBMNyhCZ3kmYmc7UHtlYzk1UXpIR3MwWmJlX2JRVzhnKg0K
PiB6d20haip2ZzY3dFhrM0FeOCN+Wl4qMENWVGtycDsleXt0UjhPR1BAPmdXSU1Md145RiFiZiZL
PjwrcmdWDQo+IF89SXQhDQo+IHotDQo+IGx3dEd6PE1QNmZNYmslSChxYVU7YTwzUFAhYipNUD1P
QW1eYGFZdipYWmBgK2h5WUImNl9sRFkoTHIlWEcNCj4gQDBADQo+IHpFYT53bD1BfmtEeWU7a0J4
UTYoZnlFMVg8PXpqWFZMcSQ2RlN+PCReU2V9a3xhaUReKGomIVZqSWY3NXtPPGoqQg0KPiB6dkFA
eyFWYyFiaFpGbkN4MnlNVEo+dl8xVDYmLQ0KPiBDP2oqaG5GeyhkSyF7JlYqUkBwcGFuP0NEY15i
YzkjfjJ2N2R9DQo+IHpsZVZ1fEs9WSE/KTRvUkxiZys/YDUleEIrcGppWGpPRnItDQo+ICQlNCN9
KWB7QFZEPm01cG1uXzFFNCYyMT5KcjdheksNCj4geilzRnFKbXdwXmR2THlKWF81dD5NeSVeUXVK
RUpfO1l2KUhGZWVgcmctDQo+IHozVXlZRTZlJiREdzIhbkxnNmxrOFlqRg0KPiB6RXpeSV5wS35Y
VSkxKmU4dkBfYkFfQ15hbXJwSCNIaFkjK1Rra3soK2wtDQo+IHJ7cXdIeGheR3A3VE1FJEJjS09G
RWNuDQo+IHpyVEQ9PHo/WHdiUnNgUiQ9aV9tSG0zX3dFeURvZlpSTmArJXxHPThGdm5rKWw2UmM8
LQ0KPiAoQWJqcCMjenVGWm9ocF4NCj4gej9DSHxWWTVGI1Y/YjU9N2B9Yio1cnYleSVWTD5eT2Y+
dVVZUXtMXyFyTGpzSGB0ezw8OE1NMmg4U1JjJXVxDQo+IFZiYA0KPiB6K0p0VFJBYm53ZmJ+ZGRq
KkNPbl8qPUlhSUIqNkVzVUF3LUR2OW59aTNoaihDcnlUWS0NCj4gQyZxJHlhWGFwNlh3RWI8DQo+
IHorOE4yPHZpeHlmPSRBKGlPTjs/KzkzWCFEK2kkZXMhPyRUfXMxP2xeKDIzQiNTfDduX0VlK3FW
OUAkSH47Pnl2RQ0KPiB6MjB9dkdrKyNnRlpUSjlSYSQrcntlZldxbXEmQEBUZSYpJHpDa3RhfDx5
IyRUVFo5PkhZb0cjWSNANzB4DQo+IDd+ejhVDQo+IHpjZGtQWnViZU0pSml0SHJkXzM8RUpeSkIk
ckpkQ304MmJPaXRzOWluTj1JOCtyeWQ1anElUzdeeig8VEJKamIhYA0KPiB6bTstKmk9NU5GTHh+
NC0NCj4gSVo0TlZ8JkVicU5MN05Pd2tNam9EN1V4NyljQzM9flN+fmNXbXB9amJvJVopakZ3JHdM
DQo+IHotX1NPRVFHN0JaX3l9THxFWHV5KWN7K2dvLQ0KPiB2UWRIX0Y9QHxKaWpuTDMkdmkoUSVC
Uzl6eTEyJHpBJFdhRSZjaUENCj4gemt1UGs9Jj9vb15Vd0lDSCVmOEZ8ME1DYWFwMWFSaE40cFN6
eEJiJUMqRWZNNC1uZ2I7Vj07YS0NCj4gS1RYcFpeTFo7Vw0KPiB6WD5DMnJtJG4xbjszTCk8WnU2
aG1mMUdYOTtrRDs/Slp0bEo9WUpkUDs7WWQ0eTw3ZnJKaS01MiF+NCpAVEdvSHQNCj4gejdKUzgt
ZnZOdz9nOVJCTyNFZ34kcnUwKHMlUjxjUSF7IWxrZUtsPSEpNHVyZ2szVlJgezB5MnspMUg8RnxB
cWNpDQo+IHo+PksjNmppMmluS1pfJUhlLWs3bW1Jai0lWlVzd2Zudm91QXh5RlpoRj1KZXZOXzRh
NnhfKWdtXiUtDQo+ID9DdD1ILU4NCj4gekZEV0o1bE5KUC0NCj4gPitNUnQyS0x+Q3c1ezVPa0x2
ak9rPXRMSnpnc1hUN1BKYlpnI2tpaGFaTzdDN1MqKCVNWFZvSw0KPiB6Ny0NCj4gJmB1bEBJKE0x
PXtta2QwM0E1bSVaU0FfZCl4bkclTFdPU1UyMHpZKWJwPWdYUn19Uk0oJSY/N3YoO2RFDQo+IGQ0
UA0KPiB6dn1gV1J0fDI1QSowUUNBQXZWT24pOE97OHIxP1A+RyhYVD5CMElwMEcpJTMqYF54TiQ1
XlpiUHt0cz9HemgNCj4gQyV3DQo+IHo2RXkkaF9ofns2VGduYnA/WFclQW1HOz5PJWBmPDxgaFNX
Mm0tDQo+IGpFOCVkPkkrJUllcFY9MmFJRzNxeUhkVGYwMlgNCj4gejU4KnY7TyZpSnp3NCRzNE9V
bVNTJUIqMjdHMFdlQXJWWj0mKyViUm8kTl5keT9uKHVgPH4pNyFNMFN0DQo+IHFTT083Yw0KPiB6
aGo7SSEoSUomK1pVRWIyZCQwQHBeSnxzVWB2bzZ5fEg0QCVgIUR3b2Q/cHBvYC0NCj4gZVpYUXUk
b1dTNGI/WlV6ejZEDQo+IHpiKkFqdjR3TXlBby0lOU4oWSF6I24jPTd5KldaJDYpdiU8TFNFQWBS
LQ0KPiBZYis5ZSFPPnc3UlVRWmVIbVFXeXtTWCMNCj4gelBqMmg3MEBrTFJIO1UtKCMwWipFdnop
WT5VQl4tU3E0QDxMdjQ2bU1FQm1rUS0NCj4gKXlqa1ZoKyEkP0xzcWtmKSspMg0KPiB6KCEkN1Vs
d0dlOVchNzx+Y185dW9tdnY/WStSPCQ4PVRUdWtib2I2fT41Nkg0QjlBQHcjKF5EYXJqTUJzDQo+
IEh1aD5vDQo+IHpLUj51PEd+U0BaUHspNk17K1h0WTk4OTBvc3pfT0VLUmN8bF5hO0xVP3k3NjI7
cmBpQD1mR3plTCRmPDEoUjQ0DQo+IEsNCj4geiFfaHZwcTtWaUVpMU1iYWFDZSRsbS0NCj4gYGor
SDYxNz14SDZxVGIrVzh4bD1weG0zdWpUZnVPKzRYU2RfcSRXXyg2Ow0KPiB6YFFtZiQ2O0Y2UFpD
fF5KLQ0KPiBWT0pxZEVyJjFQdykrNjJXUTZJX0orP2Q8fiM/d1U8X3FXb2xLdjQyK0NeVU1KcmxI
DQo+IHooMn1JdXY+P2BCPUk0ZDZvLWh4fVMrfE9Re3JSVjJ7UFpMSllKalc5em8zfmxvb0pmUSRf
VWVhdFZ6T2AkMDYoYg0KPiB6PmNCMkpwMEYxeDN6eUVIcWp3VmBYb3t5OSE4ZVFAb09gcVhgc1lW
SCEqa3c+YHtmIyooUHAkeXFNMEdDdzUNCj4gQyVjDQo+IHp0JFp6eG1iUXFYMSZ4QyNFNG4oKGpx
OygpbT5RSkg+M0xEVUcmZlI1ezAkI3YpYzJxe1ZieTRNSiREfHYmTg0KPiBRdk0NCj4genl+ST5N
SkFHUXh7TDlodzhzI1pIKDFCKzFfP1hYbjdiZSFgPWpwb3FZI21PXlQxQz9HSHFvQFFlTFN0ew0K
PiAodX4lOw0KPiB6KFNsfTJgVmY0QVpge3M1dSYra1hAMmRZc2Vla2g2LQ0KPiBeV0A7KGZTXihY
PzIlbVRKYyZ1RXFiTHNLWFpyQnl5ek5+DQo+IHo1JFF7Rj5VLQ0KPiAweXk0N2Ujb2htZT1SJUo+
THUxTTJeVHFMRmlhdmNKPTQ+V0xJRCszPytBcVJRcmZ4Z1VgMEk3ZEwNCj4gelFlOWZzSSkrd3RZ
RCRaZSF3SjNed0VjWWN6cl57OFNfZXorZ0NrZzlyP3BGPlM+WmFgR15pX1c5TUdCOF9rTg0KPiA5
NQ0KPiB6Y1dYJlkrczR5XjxPc0BZUWl0WD4zWnsmUDBXYGFUQUkrLQ0KPiBvTG9ANG4oVHV2RGxw
YjEqKCg2PX1tfG9qbXA5VVN9DQo+IHotDQo+IH4mSjhBUCtzekhAfDUoRXEqbklSKDVKOD9RUTdP
TEdyPkVfPUt+Ml84cDxiYElYaU97NENSRyRkRG07bVZCDQo+IDFoDQo+IHpJRSlzKCtLNl8oXkE+
RiMpc0hwfT19em5XYil3YTh3eE1PKnA5QD5ZNWRXVCNHODV8MitfPjc1NWdTNXQNCj4gcUp3QzUN
Cj4geiEkNnVINitwOGhZdl9TST1xTHZ0XyNwQFIxPGYxTWxEM1UkV3RTR1R1MWBtNDJsZmBXaCRp
QGVIM3cmRWMNCj4gPmxuQA0KPiB6PmxrKG57bi1fSyo4PFptY3I4bERUJVB5b1dKO14rT0tiYlFQ
SjJJb2s4KGEzUDF7cjZxQWVyKSk1Zj1ZKHo/RSMNCj4gelgrX3NwWC1TNz53NGhaUyYySkd5Uzs8
azkqfFkmPUNQbVBeI1FKKDU0PzQ9aDJtWnpGNUB+cy0NCj4gN1BQdSZkLWBsfQ0KPiB6Y2N+WnBW
UHtxTWJ+R3V9aHV7T3xFYnNTc3YyVntremNyYD4jP2t0ZWwkMVpgdmkjS08rTyU8NFVwbUMrcTUN
Cj4gRyN5DQo+IHpwZ2tYdHFueTtTd0VmKT93Ql94PXZ9dCVoVDBme2V0P3UyNFI9bkFjbVVaRGV6
MjFUcndAOz07dVFpa0w7dHNGDQo+IFMNCj4geihvUVhEZEFCeVNzeihQfStySnhhOU5JXzlMbDUq
cEZaNkYxKHZ6ayh0Vk9WbV5JTj1zVkJmTGN7Tj8jTT5jRCoNCj4gUg0KPiB6e1JQJHxLMGtpfkop
ZyNlKHF8KzMpMGQwMD10JVojSS1EX2A0eUxFa0tHZiV2ND04OEN5Uj44Yzd9YEU9Nm01TkgNCj4g
eklCaVdDTXE5PVhyN2RIKXpjQHg3YmQtDQo+IFkre0Uma0BeZ3RpPFpzMG1paUxON2skSnNydkh4
Sm1LbXdKRHAqMT8/WA0KPiB6P1NuZEt7Vj0malZfTU94R2t2KXZuK256fXJ+S3VNV2N0WDB4JTdH
RkVJS3IySV8xdXFOKGEmPkd0eX1QXg0KPiBodmFUDQo+IHorOXh0YjkoMHQwNUIhaldGNmNwZVNA
KHtWKjFXTzQtRlkwfSEjZm9BfEUxbV44SF4peW1iSm9JIWhGRC17LQ0KPiBfMTcNCj4geiF8QEdo
K1hwRmhBIWo/QytwJmV0WjI2MiVaQ3BudSpSU1MhdClTenBtUW50U0JfI2tsJUUxU0kkZXI4MW5Z
DQo+IE88Nw0KPiB6SGNnTDxBbjMraSNkeWQyMmV5c3pqeHFEbkA5enhpQW01KjJQR2VvZEkraWhJ
R0N5bF5KclpNUig+dFQtDQo+ICNRSFVLDQo+IHo8IX4tDQo+IHRLNkhUWnNlOT90elRGWlJfdlZs
V2pmUWdZNzRZNipRXzNoeFBsJVNmcGNBXlcmVHpsNFd9a0hveWxjVnYNCj4gej0zbDxeKCk9d2VX
KnJ0LQ0KPiBUZSZaZXBmN01RZ3c2NDxCKzxDcXlqQ18ocSYzM14oY2JoPT17V20jWTUhaWojP015
KA0KPiB6KCludnYoJSRKKUJvQkJZMTZrO1JGNGw/bl5rP3pAZm89VWBAMj9IKCErSjVFRVV7T0B5
ZylzJD1mayo0ZT5hNg0KPiBiDQo+IHo+ZkRpMUJFdXkzSHwqNWtNbzF2NyhaS149ajEkUGhafD5W
JElKOy0NCj4gdnxGIVEyTn53bng+Y09AQCFgQHF+MyZzRnwNCj4gekl2SVJGcCNRRXdeQkwhQEk1
V24lSH5hMHp6JlkmUzlfTlBzeT1hPjQkXlBLajJHMmxUcFY/ZldPJm85DQo+IEd7PCk1Tg0KPiB6
MGh9JmsrNzhBeG9LQG55bTFWR3x6LUpvPCMoMWdzKC0tanRlfFNSdm9gZ1R4bHokJjNTTGxDdHFX
Xm1gPEpJNWcNCj4geiNIcWlfO3FReD5VSDtCUml3bHYqX2V6TlE0V3x+VEJGezVXaTs/flJJaSRp
bDFBbFhvSD5naGBAPzF9Py0NCj4gZFpldw0KPiB6JEhWTytmNSplXkI+eGheYz5lZWBtRExmKXhv
VyR6Zk5XPkEtDQo+IEhtXkBxaHNhVlIhJWJkX3dxTWRWQipBeWsmSjFLDQo+IHpiJk1oZ3NYIVZ1
bHR1bXgpejF9U29nKX1VXkhjaU0pKjtPKXplZmxhd3NXS2h0O3s1bDI1c3gkUnxxYGRoMEpyNg0K
PiB6ekNhPUM9bTFeV1dCYiMkP1ZSWHRTOWBpUSpvRSVEPVQ3KDJlQ1dZVWV+SjUoZWQrJFZzJnNG
TjMqQ0wNCj4gZ3AxeTdDDQo+IHpOUlV6ZT08b3VqTzBkQkheYmZ8Kz41Zzc+eUlWUUImKSpaPXBV
MjxpQFY1e1RtZWdVP1Ikfjc0TCNGdw0KPiA9M3pVSGUNCj4genlwVnh4YHVsSWdrQyRvLQ0KPiA9
M2tkTmJednxkKFV0Q2dxQCNRTTRafVZEN1VvXz9rUGBGdjlRT2ReSEphcSVAMF5nSQ0KPiB6dD89
SVkme09Kd0Y2YjsjJHg7YUxIRkhkVnk1OFFGWnU5cDZjUnVsPEpOI1hSakZDMTQlSn07UEopUDZI
YDh4PEwNCj4gemV+WjZgZkcrNiN0OUliPjQlNH5LRkwxcVleN2paZ2BDQUJtJS0+U1RHPUMjOzZC
ckFDI3hjcT9YbkItDQo+IHJkfFU+ZA0KPiB6Jjx6YDxSOWxqYHRtdHFEOWx0QkRMPGlyZnRWaXlm
TkxRa3gtN0Nebns9VlZiS3Z5YXBSOGl1WiU9NyM3Szl5KkgNCj4geng1XzFPcVBIN0s5e3g3ck5D
JDcmRkRsSkcoP2ByNUdrYDk0PG5JPXleclEjKD8kUXJHezl1RnxnOyF9Jkh+d35gDQo+IHozJX0j
KT1CVVN8dUZrWjFfSntRNyhJWD89e2pQe2s1M2E1N0AlIUAydVU4PTBmR3R4Vzs4JVZON3JNbW4N
Cj4gJDFnSXoNCj4gek5sQm56P2k3X2MzJldaMnFFVEhienFKRWg8b0Q+e1VEQm1LO2F0bHc7TFAj
Y3NYYi0NCj4gNilYQlZ2VloqY3lJM0dGWg0KPiB6P0UhUl8temxHYyNhNTNDVUEqYnhpMzI2aCkx
WjZUa19fNkI8VX43fklANjctDQo+IFJ9NCl7e19DSTNEV09tNVcqZXt0DQo+IHpuXzMlaWRmSjlK
Vig0VE9EPnw4QVpHPS0NCj4gej9ka2Y7RGYpOXNMcW5ITjlqRTxrNzgjT2NgcCRfJWJoMjNtTVBE
ZzgNCj4gelZHQX01PzYyRn16N2AjOFdKJm85I0smVVFTan1IfXc+PkBuUUYtDQo+IFREIWtfYCsk
MiZLdjs1RlozSip2RTNGWHYmNA0KPiB6P2QjVkFQOFNfYWFIUypCbUlgN0pUY3t7YkFNYWR+OSk1
TUlNMU5ASnBZcXg2O29kT0B2WUhOI14qWj8NCj4gKjA9NU80DQo+IHoyS0FASWtyczN+JTJKN3VF
KDNAN0pDfnk/dm93PU5AdVA/TFkwZkpsYlRJTy0NCj4gXnt7PjN4aE1oWWdBckNRZ3RkezUNCj4g
emJPQz56dCZIJmFAbmYxaHVvRz5NdXF7PHpaVWJ2Y0g/ZCF8RTdxMHZNY0J+M2BxczJ4amdkQ1F3
Z2BMTA0KPiB3S1RoZw0KPiB6V3l9WXxmYyVhbm5ZMWp6TmlRI1RMTjVjaE94bDBsbiUxR1RyLTdY
Y2R4SkQrWT9yWnM9WiZlWU40Ji0NCj4geXBEPlhBDQo+IHpgMUw9QUYzOXhQWEhVX0xNbjA1ZHE4
R048elR4PHJ3eG5ZdCU0ejZHeVBfUDU1bXx3REY/S1NoXkxnPQ0KPiB+SmlaSkENCj4gei0NCj4g
WCRDISpoMkNnPyVzJWd5amZeaUVZbTsjXmI8fCorPkV3RnNrJkpnWV9XYUFgND41eiZ3ekh1eE5f
VDZHeS0NCj4gVGQNCj4gejZOMmJ4SzFWa1VYb29ZfGxaPCV4dytXIztyO2U2ckJZWlFsPmVDNmRC
Qmx5fGdUd2JCdyNEfUs+a21kRGANCj4gZVN7eA0KPiB6OHw1VkZYamM8WUJ+SjlGWkI2fj9pLWp8
Jj0paExHZDJwTT1qUlZ7MEBgZ299KTZgZTtmP3ZiIzxtejtKVHtoaTANCj4gem1hRjAqI3xQPXc3
eURfPyUhI3hqKjJBZHApaFBoYEJjPWBTUHJGe0pMQXpmS3Exfi0NCj4gKChWb198V2c3OXpMWCRV
Pw0KPiB6K20tDQo+IEIzdW1NfHxVQmVoe3UpTUs5P2R7WiVAMXQ+YTtMWFBSXygxbjJebTBnJEA+
MGhlQHdCJWlwWn5MTioNCj4gZjZ3ZA0KPiB6bkM3dyRZNDQ3cSklPFNsXldtTjdATExffCgyKHxZ
Y3hjQyQjXiluQ09CcFNPUFV3YVdMenx7KUUqfip2DQo+IFNidGdADQo+IHo9fXZpWF9uYGE8IXhW
ZnRsPTVFISQwdkBFezZ8dUhPSV4/ai0NCj4gS08/UiVRTjQpRE1TMHlrfDswQU9YKjh6PTY+Pz4N
Cj4gem1AfD0lajJrRipLb0BrRFd+KGUzZTRYXnA3QEZJX283T2JxSVdTPWFvdFFxSiZTcClhXk5W
TmxIKUUNCj4gT2YpdjljWA0KPiB6T1JLV3o7PDV9YDF8SU9QWH5nZjhTUWF7N3dCRHdedSQrQVVO
TXJ4ISled3Aye0VsaktgJG57SFNVMzcmOyUNCj4gR1lsDQo+IHo+SEdZaCZJazB4TjI2JXAmfkNL
KHdIVzVuKGNFQWNmKCo7IUlxMTNsWkVDWiRKcDZ+UXc2X00oKVEmQUVvDQo+ICE/USsNCj4gejRz
eFhvRkd+cmVLfD5qTVJKJCtLKlFNRGppXmg4WUU2PDwkYnV8fSVSPmNDeEhxWlVkRjhqeCk3SnJS
WUtGdA0KPiA3Zg0KPiB6JWxQZHNZfmZGZzgyQGZwQ2xITGtxTCFvKm1wUT9YOSpoeDtiJk1odk5R
MzU0TGNvQmFeM1pgVTkmfjxgQQ0KPiBLalo7DQo+IHpRdnp3d3hFdl84NTFHRGhiJG1zLQ0KPiBL
QXhaUnJtJFFvS3BBK3pZaFlHRD1QSkkoNn1ge2oqfW5rNXRORnBQJDg3ZDENCj4genVlVDVYP3VZ
bDdqMD9tMz0qcjBJNXxAVG9yKCorc0J+QT1oPTt4Vi0NCj4gPHA5fU0rbXJiX2AwU0ROcFB3R2Ra
eVpoQA0KPiB6Kyh8aC0NCj4gMHtGWGVVOzZCVzkrSE17QUl7Q31DdXlLVmhVS1IqKSpXbz9OdkNg
SSh6JFVoPkRQTlY8an1kdGR5b3wpDQo+IHpjel51c0ZFVUBXWXE4YDM5ez9IMUdLIylALQ0KPiBH
QCRlXk9HcCg2SDUwXzl5R2ROZXxQIV85ZT1aaW8oSF47Vk9nTikNCj4gek5RZGZfLQ0KPiBecEso
QmMxdjg3MmtaTkFIdF4oPUl9YURRKHEyViRmKXdgX098cm52TEswTDlEbng3NyVCVmI8S082cQ0K
PiB6dEN3V0B7O2l2fHRaTzRaQTdvZndqO2w9eEk/Q0BIRHpVdE9KTHg8MkF7Vm5ocUdOQTFwZ1Vq
ZWt1PmEkUg0KPiA9K2NsDQo+IHpAP05oKWtZUmJXQU5xajQ8bWF7SFoke0RhKWMkbU8ob2l9emFX
SXxXSlclanZMcHReRzVJWGJlQ158RGANCj4gNnolV0wNCj4gej9AcllJISNMdmZofio3RT1uUWAm
YDYyKT5XSzcyM3k1LVNjYmFMUDtiWiU2OHsrXztWMzdgeC0NCj4gRU5lNz1IOWdTRA0KPiB6cGx4
bCE9PHtBbGJtOHF6NT1ldUZHVm9+cHJOdnpTUXVGcl98THZuZmdXcyl8cnFocz8lNGU7KXlpITMx
dml9RWsNCj4gQ3VDWG92DQo+IA0KPiBsaXRlcmFsIDANCj4gSGNtVj9kMDAwMDENCj4gDQo+IGRp
ZmYgLS1naXQgYS9zcmMveGVuYWdlbnQveGVuYWdlbnQucmMgYi9zcmMveGVuYWdlbnQveGVuYWdl
bnQucmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMC4uNTcyZDE2Mg0K
PiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL3NyYy94ZW5hZ2VudC94ZW5hZ2VudC5yYw0KPiBAQCAt
MCwwICsxLDYwIEBADQo+ICsvKiBDb3B5cmlnaHQgKGMpIENpdHJpeCBTeXN0ZW1zIEluYy4NCj4g
KyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+ICsgKg0KPiArICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcywNCj4gKyAqIHdpdGggb3Igd2l0aG91dCBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQNCj4gKyAqIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZSBtZXQ6DQo+ICsgKg0KPiArICogKiAgIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUNCj4gKyAqICAgICBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlDQo+ICsgKiAgICAgZm9s
bG93aW5nIGRpc2NsYWltZXIuDQo+ICsgKiAqICAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQ0KPiArICogICAgIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUNCj4gKyAqICAgICBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXINCj4gKyAqICAgICBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KPiArICoNCj4gKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORA0KPiArICog
Q09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywNCj4gKyAqIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GDQo+ICsgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQ0KPiArICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVCBIT0xERVIgT1INCj4gKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLA0KPiArICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywNCj4gKyAqIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUg0KPiArICogU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUw0KPiArICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
DQo+ICsgKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcNCj4gKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UNCj4gKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YNCj4gKyAqIFNVQ0ggREFNQUdFLg0KPiArICovDQo+ICsN
Cj4gKw0KPiArI2luY2x1ZGUgPHdpbmRvd3MuaD4NCj4gKyNpbmNsdWRlIDxudHZlcnAuaD4NCj4g
Kw0KPiArI3VuZGVmIFZFUl9DT01QQU5ZTkFNRV9TVFINCj4gKyN1bmRlZiBWRVJfUFJPRFVDVE5B
TUVfU1RSDQo+ICsjdW5kZWYgVkVSX1BST0RVQ1RWRVJTSU9ODQo+ICsjdW5kZWYgVkVSX1BST0RV
Q1RWRVJTSU9OX1NUUg0KPiArDQo+ICsjaW5jbHVkZSA8dmVyc2lvbi5oPg0KPiArDQo+ICsjZGVm
aW5lIFZFUl9DT01QQU5ZTkFNRV9TVFIgICAgICAgICBWRU5ET1JfTkFNRV9TVFINCj4gKyNkZWZp
bmUgVkVSX0xFR0FMQ09QWVJJR0hUX1NUUiAgICAgICJDb3B5cmlnaHQgKGMpIENpdHJpeCBTeXN0
ZW1zIEluYy4iDQo+ICsNCj4gKyNkZWZpbmUgVkVSX1BST0RVQ1ROQU1FX1NUUiAgICAgICAgICJY
RU5JRkFDRSINCj4gKyNkZWZpbmUgVkVSX1BST0RVQ1RWRVJTSU9ODQo+IE1BSk9SX1ZFUlNJT04s
TUlOT1JfVkVSU0lPTixNSUNST19WRVJTSU9OLEJVSUxEX05VTUJFUg0KPiArI2RlZmluZSBWRVJf
UFJPRFVDVFZFUlNJT05fU1RSICAgICAgTUFKT1JfVkVSU0lPTl9TVFIgIi4iDQo+IE1JTk9SX1ZF
UlNJT05fU1RSICIuIiBNSUNST19WRVJTSU9OX1NUUiAiLiIgQlVJTERfTlVNQkVSX1NUUg0KPiAr
DQo+ICsjZGVmaW5lIFZFUl9JTlRFUk5BTE5BTUVfU1RSIAkgICAgInhlbmFnZW50LmV4ZSINCj4g
KyNkZWZpbmUgVkVSX0ZJTEVWRVJTSU9OX1NUUiAJICAgICIxLjAiDQo+ICsjZGVmaW5lIFZFUl9G
SUxFREVTQ1JJUFRJT05fU1RSICAgICAieGVuYWdlbnQiDQo+ICsjZGVmaW5lIFZFUl9PUklHSU5B
TEZJTEVOQU1FX1NUUiAgICAieGVuYWdlbnQuZXhlIg0KPiArI2RlZmluZSBWRVJfRklMRVRZUEUg
VkZUX0FQUA0KPiArI2RlZmluZSBWRVJfRklMRVNVQlRZUEUgMA0KPiArDQo+ICt4ZW5faWNvbiBJ
Q09OICJ4ZW4uaWNvIg0KPiArDQo+ICsjaW5jbHVkZSAiY29tbW9uLnZlciINCj4gKyNpbmNsdWRl
ICJtZXNzYWdlcy5yYyINCj4gXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlDQo+IGRpZmYgLS1n
aXQgYS9zcmMveGVuaWZhY2UuaW5mIGIvc3JjL3hlbmlmYWNlLmluZg0KPiBpbmRleCBkZjBhYmYz
Li4yZmY1MjQ5IDEwMDY0NA0KPiAtLS0gYS9zcmMveGVuaWZhY2UuaW5mDQo+ICsrKyBiL3NyYy94
ZW5pZmFjZS5pbmYNCj4gQEAgLTYyLDExICs2MiwxMSBAQCB4ZW5pZmFjZS5zeXMNCj4gDQo+IHhl
bmlmYWNlX2NvaW5zdF9ATUFKT1JfVkVSU0lPTkBfQE1JTk9SX1ZFUlNJT05AX0BNSUNST19WRQ0K
PiBSU0lPTkBfQEJVSUxEX05VTUJFUkAuZGxsLHhlbmlmYWNlX2NvaW5zdC5kbGwNCj4gDQo+ICBb
U2VydmljZURlc3REaXIuTlQuQ29weV0NCj4gLWxpdGVhZ2VudC5leGUNCj4gK3hlbmFnZW50LmV4
ZQ0KPiANCj4gIFtYZW5pZmFjZV9EZXZpY2UuTlQkQVJDSCQuU2VydmljZXNdDQo+ICBBZGRTZXJ2
aWNlID0geGVuaWZhY2UsICVTUFNWQ0lOU1RfQVNTT0NTRVJWSUNFJSwNCj4geGVuaWZhY2VfU2Vy
dmljZV9JbnN0DQo+IC1BZGRTZXJ2aWNlID0geGVubGl0ZSwgJUxJVEVTVkNfRkxBR1MlLCB4ZW5s
aXRlX1NlcnZpY2VfSW5zdA0KPiArQWRkU2VydmljZSA9IHhlbmFnZW50LCAlWEVOQUdFTlRfRkxB
R1MlLCB4ZW5hZ2VudF9TZXJ2aWNlX0luc3QNCj4gDQo+ICBbeGVuaWZhY2VfU2VydmljZV9JbnN0
XQ0KPiAgRGlzcGxheU5hbWUgICAgPSAlWGVuSWZhY2VEZXZpY2UuRGV2aWNlRGVzYyUNCj4gQEAg
LTg3LDE5ICs4NywxOSBAQCBBZGRSZWc9Q29JbnN0X0FkZFJlZw0KPiAgW0NvSW5zdF9BZGRSZWdd
DQo+IA0KPiBIS1IsLENvSW5zdGFsbGVyczMyLDB4MDAwMTAwMDAsInhlbmlmYWNlX2NvaW5zdF9A
TUFKT1JfVkVSU0lPTkBfQA0KPiBNSU5PUl9WRVJTSU9OQF9ATUlDUk9fVkVSU0lPTkBfQEJVSUxE
X05VTUJFUkAuZGxsLEVudHJ5Ig0KPiANCj4gLVt4ZW5saXRlX1NlcnZpY2VfSW5zdF0NCj4gLURp
c3BsYXlOYW1lICAgID0gJXhlbmxpdGUuU1ZDREVTQyUNCj4gK1t4ZW5hZ2VudF9TZXJ2aWNlX0lu
c3RdDQo+ICtEaXNwbGF5TmFtZSAgICA9ICV4ZW5hZ2VudC5TVkNERVNDJQ0KPiAgU2VydmljZVR5
cGUgICAgPSAxNiAgICAgICAgICAgICAgOyBTRVJWSUNFX1dJTjMyX09XTl9QUk9DRVNTDQo+ICBT
dGFydFR5cGUgICAgICA9IDIgICAgICAgICAgICAgICA7IFNFUlZJQ0VfQVVUT19TVEFSVA0KPiAg
RXJyb3JDb250cm9sICAgPSAxICAgICAgICAgICAgICAgOyBTRVJWSUNFX0VSUk9SX05PUk1BTA0K
PiAtU2VydmljZUJpbmFyeSAgPSAlMTElXGxpdGVhZ2VudC5leGUNCj4gK1NlcnZpY2VCaW5hcnkg
ID0gJTExJVx4ZW5hZ2VudC5leGUNCj4gDQo+ICBbU291cmNlRGlza3NOYW1lc10NCj4gIDEgPSAl
RGlza0lkMSUsLCwiIg0KPiANCj4gIFtTb3VyY2VEaXNrc0ZpbGVzXQ0KPiAgeGVuaWZhY2Uuc3lz
ICA9IDEsLA0KPiAtbGl0ZWFnZW50LmV4ZSA9IDEsLA0KPiAreGVuYWdlbnQuZXhlID0gMSwsDQo+
ICB4ZW5pZmFjZV9jb2luc3QuZGxsPTEsLA0KPiANCj4gIFtTdHJpbmdzXQ0KPiBAQCAtMTA3LDYg
KzEwNyw2IEBAIFNQU1ZDSU5TVF9BU1NPQ1NFUlZJQ0U9IDB4MDAwMDAwMDINCj4gIFZlbmRvcj0g
IkBWRU5ET1JfTkFNRUAiDQo+ICBEaXNrSWQxID0gIkBQUk9EVUNUX05BTUVAIEludGVyZmFjZSBQ
YWNrYWdlIg0KPiAgWGVuSWZhY2VEZXZpY2UuRGV2aWNlRGVzYyA9ICJAUFJPRFVDVF9OQU1FQCBJ
bnRlcmZhY2UiDQo+IC1MSVRFU1ZDX0ZMQUdTPSAweDAwMDAwODAwDQo+IC14ZW5saXRlLlNWQ0RF
U0M9ICJAUFJPRFVDVF9OQU1FQCBJbnRlcmZhY2UgU2VydmljZSINCj4gK1hFTkFHRU5UX0ZMQUdT
PSAweDAwMDAwODAwDQo+ICt4ZW5hZ2VudC5TVkNERVNDPSAiQFBST0RVQ1RfTkFNRUAgSW50ZXJm
YWNlIFNlcnZpY2UiDQo+IA0KPiBkaWZmIC0tZ2l0IGEvdnMyMDEyL2xpdGVhZ2VudC9MaXRlQWdl
bnQudmN4cHJvag0KPiBiL3ZzMjAxMi9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHByb2oNCj4gZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IGU2NzkxOGEuLjAwMDAwMDANCj4gLS0tIGEv
dnMyMDEyL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvag0KPiArKysgL2Rldi9udWxsDQo+IEBA
IC0xLDI1MSArMCwwIEBADQo+IC08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/
Pg0KPiAtPFByb2plY3QgRGVmYXVsdFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQuMCIN
Cj4geG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQv
MjAwMyI+DQo+IC0gIDxJdGVtR3JvdXAgTGFiZWw9IlByb2plY3RDb25maWd1cmF0aW9ucyI+DQo+
IC0gICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfFdpbjMyIj4NCj4gLSAg
ICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPg0KPiAtICAgICAgPFBsYXRm
b3JtPldpbjMyPC9QbGF0Zm9ybT4NCj4gLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPg0KPiAt
ICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3x4NjQiPg0KPiAtICAgICAg
PENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRpb24+DQo+IC0gICAgICA8UGxhdGZvcm0+
eDY0PC9QbGF0Zm9ybT4NCj4gLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPg0KPiAtICAgIDxQ
cm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfFdpbjMyIj4NCj4gLSAgICAgIDxD
b25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+DQo+IC0gICAgICA8UGxhdGZvcm0+
V2luMzI8L1BsYXRmb3JtPg0KPiAtICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+DQo+IC0gICAg
PFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8eDY0Ij4NCj4gLSAgICAgIDxD
b25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+DQo+IC0gICAgICA8UGxhdGZvcm0+
eDY0PC9QbGF0Zm9ybT4NCj4gLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPg0KPiAtICA8L0l0
ZW1Hcm91cD4NCj4gLSAgPFByb3BlcnR5R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPg0KPiAtICAgIDxQ
cm9qZWN0R3VpZD57MkU2MUQyQ0MtODY1RS00NDJDLThDODMtDQo+IEI4REFGRDdCQkQzQn08L1By
b2plY3RHdWlkPg0KPiAtICAgIDxLZXl3b3JkPldpbjMyUHJvajwvS2V5d29yZD4NCj4gLSAgICA8
Um9vdE5hbWVzcGFjZT5TdHViQWdlbnQ8L1Jvb3ROYW1lc3BhY2U+DQo+IC0gICAgPFByb2plY3RO
YW1lPkxpdGVBZ2VudDwvUHJvamVjdE5hbWU+DQo+IC0gIDwvUHJvcGVydHlHcm91cD4NCj4gLSAg
PEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAuRGVmYXVsdC5w
cm9wcyIgLz4NCj4gLSAgPFByb3BlcnR5R3JvdXANCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciDQo+IExhYmVsPSJDb25maWd1cmF0aW9u
Ij4NCj4gLSAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25U
eXBlPg0KPiAtICAgIDxVc2VEZWJ1Z0xpYnJhcmllcz50cnVlPC9Vc2VEZWJ1Z0xpYnJhcmllcz4N
Cj4gLSAgICA8UGxhdGZvcm1Ub29sc2V0PnYxMTA8L1BsYXRmb3JtVG9vbHNldD4NCj4gLSAgICA8
Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0Pg0KPiAtICA8L1Byb3BlcnR5R3Jv
dXA+DQo+IC0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8eDY0JyINCj4gTGFiZWw9IkNvbmZpZ3VyYXRpb24iPg0KPiAtICAg
IDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+DQo+IC0g
ICAgPFVzZURlYnVnTGlicmFyaWVzPnRydWU8L1VzZURlYnVnTGlicmFyaWVzPg0KPiAtICAgIDxQ
bGF0Zm9ybVRvb2xzZXQ+djExMDwvUGxhdGZvcm1Ub29sc2V0Pg0KPiAtICAgIDxDaGFyYWN0ZXJT
ZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+DQo+IC0gIDwvUHJvcGVydHlHcm91cD4NCj4gLSAg
PFByb3BlcnR5R3JvdXANCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlfFdpbjMyJyINCj4gTGFiZWw9IkNvbmZpZ3VyYXRpb24iPg0KPiAtICAgIDxD
b25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+DQo+IC0gICAg
PFVzZURlYnVnTGlicmFyaWVzPmZhbHNlPC9Vc2VEZWJ1Z0xpYnJhcmllcz4NCj4gLSAgICA8UGxh
dGZvcm1Ub29sc2V0PnYxMTA8L1BsYXRmb3JtVG9vbHNldD4NCj4gLSAgICA8V2hvbGVQcm9ncmFt
T3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4NCj4gLSAgICA8Q2hh
cmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0Pg0KPiAtICA8L1Byb3BlcnR5R3JvdXA+
DQo+IC0gIDxQcm9wZXJ0eUdyb3VwDQo+IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIg0KPiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+DQo+IC0g
ICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4NCj4g
LSAgICA8VXNlRGVidWdMaWJyYXJpZXM+ZmFsc2U8L1VzZURlYnVnTGlicmFyaWVzPg0KPiAtICAg
IDxQbGF0Zm9ybVRvb2xzZXQ+djExMDwvUGxhdGZvcm1Ub29sc2V0Pg0KPiAtICAgIDxXaG9sZVBy
b2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPg0KPiAtICAg
IDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+DQo+IC0gIDwvUHJvcGVydHlH
cm91cD4NCj4gLSAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5D
cHAucHJvcHMiIC8+DQo+IC0gIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uU2V0dGluZ3Mi
Pg0KPiAtICA8L0ltcG9ydEdyb3VwPg0KPiAtICA8SW1wb3J0R3JvdXAgTGFiZWw9IlByb3BlcnR5
U2hlZXRzIg0KPiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnfFdpbjMyJyI+DQo+IC0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNy
b3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiDQo+IENvbmRpdGlvbj0iZXhpc3RzKCck
KFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSINCj4g
TGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPg0KPiAtICA8L0ltcG9ydEdyb3VwPg0KPiAt
ICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3x4NjQnIg0KPiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPg0KPiAtICAgIDxJbXBvcnQg
UHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnBy
b3BzIg0KPiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4k
KFBsYXRmb3JtKS51c2VyLnByb3BzJykiDQo+IExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIg
Lz4NCj4gLSAgPC9JbXBvcnRHcm91cD4NCj4gLSAgPEltcG9ydEdyb3VwIExhYmVsPSJQcm9wZXJ0
eVNoZWV0cyINCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyI+DQo+IC0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxN
aWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiDQo+IENvbmRpdGlvbj0iZXhpc3Rz
KCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIN
Cj4gTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPg0KPiAtICA8L0ltcG9ydEdyb3VwPg0K
PiAtICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlfHg2NCciDQo+IExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+DQo+IC0gICAgPElt
cG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVz
ZXIucHJvcHMiDQo+IENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQu
Q3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSINCj4gTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRm
b3JtIiAvPg0KPiAtICA8L0ltcG9ydEdyb3VwPg0KPiAtICA8UHJvcGVydHlHcm91cCBMYWJlbD0i
VXNlck1hY3JvcyIgLz4NCj4gLSAgPFByb3BlcnR5R3JvdXANCj4gQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPg0KPiAtICAgIDxMaW5rSW5j
cmVtZW50YWw+dHJ1ZTwvTGlua0luY3JlbWVudGFsPg0KPiAtICA8L1Byb3BlcnR5R3JvdXA+DQo+
IC0gIDxQcm9wZXJ0eUdyb3VwDQo+IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWd8eDY0JyI+DQo+IC0gICAgPExpbmtJbmNyZW1lbnRhbD50cnVlPC9MaW5r
SW5jcmVtZW50YWw+DQo+IC0gIDwvUHJvcGVydHlHcm91cD4NCj4gLSAgPFByb3BlcnR5R3JvdXAN
Cj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdp
bjMyJyI+DQo+IC0gICAgPExpbmtJbmNyZW1lbnRhbD5mYWxzZTwvTGlua0luY3JlbWVudGFsPg0K
PiAtICA8L1Byb3BlcnR5R3JvdXA+DQo+IC0gIDxQcm9wZXJ0eUdyb3VwDQo+IENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4NCj4gLSAgICA8
TGlua0luY3JlbWVudGFsPmZhbHNlPC9MaW5rSW5jcmVtZW50YWw+DQo+IC0gIDwvUHJvcGVydHlH
cm91cD4NCj4gLQ0KPiAtICA8UHJvcGVydHlHcm91cD4NCj4gLSAgICA8SW5jbHVkZVBhdGg+Li5c
Li5caW5jbHVkZTskKEluY2x1ZGVQYXRoKTwvSW5jbHVkZVBhdGg+DQo+IC0gIDwvUHJvcGVydHlH
cm91cD4NCj4gLQ0KPiAtICA8SXRlbURlZmluaXRpb25Hcm91cA0KPiBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+DQo+IC0gICAgPENsQ29t
cGlsZT4NCj4gLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj5Vc2U8L1ByZWNvbXBpbGVkSGVhZGVy
Pg0KPiAtICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4NCj4gLSAgICAg
IDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4NCj4gLQ0KPiA8UHJlcHJvY2Vz
c29yRGVmaW5pdGlvbnM+V0lOMzI7X0RFQlVHO19XSU5ET1dTO19DUlRfU0VDVVJFX05PXw0KPiBX
QVJOSU5HUzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlv
bnM+DQo+IC0gICAgICA8U0RMQ2hlY2s+dHJ1ZTwvU0RMQ2hlY2s+DQo+IC0NCj4gPEFkZGl0aW9u
YWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTskKFNvbHV0aW9uRGlyKVxsaXRlYWdl
bnQ7JShBZGRpdGkNCj4gb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRl
RGlyZWN0b3JpZXM+DQo+IC0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERlYnVn
PC9SdW50aW1lTGlicmFyeT4NCj4gLSAgICA8L0NsQ29tcGlsZT4NCj4gLSAgICA8TGluaz4NCj4g
LSAgICAgIDxTdWJTeXN0ZW0+V2luZG93czwvU3ViU3lzdGVtPg0KPiAtICAgICAgPEdlbmVyYXRl
RGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+DQo+IC0NCj4g
PEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+UG93cnByb2YubGliOyUoQWRkaXRpb25hbERlcGVuZGVu
Y2llcyk8L0FkZGl0aQ0KPiBvbmFsRGVwZW5kZW5jaWVzPg0KPiAtICAgIDwvTGluaz4NCj4gLSAg
ICA8Q3VzdG9tQnVpbGRTdGVwPg0KPiAtICAgICAgICA8Q29tbWFuZD54Y29weSAveSAkKFRhcmdl
dFBhdGgpDQo+ICQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpXA0K
PiAtICAgICAgICAgICAgeGNvcHkgL3kgJChUYXJnZXREaXIpTGl0ZUFnZW50LnBkYg0KPiAkKFNv
bHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KVw8L0NvbW1hbmQ+DQo+IC0g
ICAgPC9DdXN0b21CdWlsZFN0ZXA+DQo+IC0gICAgPEN1c3RvbUJ1aWxkU3RlcD4NCj4gLSAgICAg
IDxNZXNzYWdlPkNvcHlpbmcgb3V0cHV0IGZpbGVzPC9NZXNzYWdlPg0KPiAtDQo+IDxPdXRwdXRz
PiQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXRGaWxl
TmFtZSk7KFMNCj4gb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRh
cmdldE5hbWUpLnBkYjslKE91dHB1dHMpPC8NCj4gT3V0cHV0cz4NCj4gLSAgICAgIDxJbnB1dHM+
JChUYXJnZXRQYXRoKTskKFRhcmdldERpcikkKFRhcmdldE5hbWUpLnBkYjwvSW5wdXRzPg0KPiAt
ICAgIDwvQ3VzdG9tQnVpbGRTdGVwPg0KPiAtICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+DQo+IC0g
IDxJdGVtRGVmaW5pdGlvbkdyb3VwDQo+IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+DQo+IC0gICAgPENsQ29tcGlsZT4NCj4gLSAgICAgIDxQ
cmVjb21waWxlZEhlYWRlcj5Vc2U8L1ByZWNvbXBpbGVkSGVhZGVyPg0KPiAtICAgICAgPFdhcm5p
bmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4NCj4gLSAgICAgIDxPcHRpbWl6YXRpb24+RGlz
YWJsZWQ8L09wdGltaXphdGlvbj4NCj4gLQ0KPiA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lO
MzI7X0RFQlVHO19XSU5ET1dTO19DUlRfU0VDVVJFX05PXw0KPiBXQVJOSU5HUzslKFByZXByb2Nl
c3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+DQo+IC0gICAgICA8U0RM
Q2hlY2s+dHJ1ZTwvU0RMQ2hlY2s+DQo+IC0NCj4gPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3Jp
ZXM+Li5cLi5caW5jbHVkZTskKFNvbHV0aW9uRGlyKVxsaXRlYWdlbnQ7JShBZGRpdGkNCj4gb25h
bEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+DQo+IC0g
ICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERlYnVnPC9SdW50aW1lTGlicmFyeT4N
Cj4gLSAgICA8L0NsQ29tcGlsZT4NCj4gLSAgICA8TGluaz4NCj4gLSAgICAgIDxTdWJTeXN0ZW0+
V2luZG93czwvU3ViU3lzdGVtPg0KPiAtICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj50
cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+DQo+IC0NCj4gPEFkZGl0aW9uYWxEZXBlbmRl
bmNpZXM+UG93cnByb2YubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aQ0KPiBv
bmFsRGVwZW5kZW5jaWVzPg0KPiAtICAgIDwvTGluaz4NCj4gLSAgICA8Q3VzdG9tQnVpbGRTdGVw
Pg0KPiAtICAgICAgICA8Q29tbWFuZD54Y29weSAveSAkKFRhcmdldFBhdGgpDQo+ICQoU29sdXRp
b25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpXA0KPiAtICAgICAgICAgICAgeGNv
cHkgL3kgJChUYXJnZXREaXIpTGl0ZUFnZW50LnBkYg0KPiAkKFNvbHV0aW9uRGlyKVwuLlx4ZW5p
ZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KVw8L0NvbW1hbmQ+DQo+IC0gICAgPC9DdXN0b21CdWlsZFN0
ZXA+DQo+IC0gICAgPEN1c3RvbUJ1aWxkU3RlcD4NCj4gLSAgICAgIDxNZXNzYWdlPkNvcHlpbmcg
b3V0cHV0IGZpbGVzPC9NZXNzYWdlPg0KPiAtDQo+IDxPdXRwdXRzPiQoU29sdXRpb25EaXIpXC4u
XHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXRGaWxlTmFtZSk7KFMNCj4gb2x1dGlv
bkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRhcmdldE5hbWUpLnBkYjslKE91
dHB1dHMpPC8NCj4gT3V0cHV0cz4NCj4gLSAgICAgIDxJbnB1dHM+JChUYXJnZXRQYXRoKTskKFRh
cmdldERpcikkKFRhcmdldE5hbWUpLnBkYjwvSW5wdXRzPg0KPiAtICAgIDwvQ3VzdG9tQnVpbGRT
dGVwPg0KPiAtICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+DQo+IC0gIDxJdGVtRGVmaW5pdGlvbkdy
b3VwDQo+IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFz
ZXxXaW4zMiciPg0KPiAtICAgIDxDbENvbXBpbGU+DQo+IC0gICAgICA8V2FybmluZ0xldmVsPkxl
dmVsMzwvV2FybmluZ0xldmVsPg0KPiAtICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPkNyZWF0ZTwv
UHJlY29tcGlsZWRIZWFkZXI+DQo+IC0gICAgICA8T3B0aW1pemF0aW9uPk1heFNwZWVkPC9PcHRp
bWl6YXRpb24+DQo+IC0gICAgICA8RnVuY3Rpb25MZXZlbExpbmtpbmc+dHJ1ZTwvRnVuY3Rpb25M
ZXZlbExpbmtpbmc+DQo+IC0gICAgICA8SW50cmluc2ljRnVuY3Rpb25zPnRydWU8L0ludHJpbnNp
Y0Z1bmN0aW9ucz4NCj4gLQ0KPiA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7TkRFQlVH
O19DUlRfU0VDVVJFX05PX1dBUk5JTkdTOw0KPiBfV0lORE9XUzslKFByZXByb2Nlc3NvckRlZmlu
aXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+DQo+IC0gICAgICA8U0RMQ2hlY2s+dHJ1
ZTwvU0RMQ2hlY2s+DQo+IC0NCj4gPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5c
aW5jbHVkZTskKFNvbHV0aW9uRGlyKVxsaXRlYWdlbnQ7JShBZGRpdGkNCj4gb25hbEluY2x1ZGVE
aXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+DQo+IC0gICAgICA8QnJv
d3NlSW5mb3JtYXRpb24+dHJ1ZTwvQnJvd3NlSW5mb3JtYXRpb24+DQo+IC0gICAgICA8UHJlcHJv
Y2Vzc1RvRmlsZT5mYWxzZTwvUHJlcHJvY2Vzc1RvRmlsZT4NCj4gLSAgICAgIDxSdW50aW1lTGli
cmFyeT5NdWx0aVRocmVhZGVkPC9SdW50aW1lTGlicmFyeT4NCj4gLSAgICA8L0NsQ29tcGlsZT4N
Cj4gLSAgICA8TGluaz4NCj4gLSAgICAgIDxTdWJTeXN0ZW0+V2luZG93czwvU3ViU3lzdGVtPg0K
PiAtICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5m
b3JtYXRpb24+DQo+IC0gICAgICA8RW5hYmxlQ09NREFURm9sZGluZz50cnVlPC9FbmFibGVDT01E
QVRGb2xkaW5nPg0KPiAtICAgICAgPE9wdGltaXplUmVmZXJlbmNlcz50cnVlPC9PcHRpbWl6ZVJl
ZmVyZW5jZXM+DQo+IC0NCj4gPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+UG93cnByb2YubGliOyUo
QWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aQ0KPiBvbmFsRGVwZW5kZW5jaWVzPg0KPiAt
ICAgIDwvTGluaz4NCj4gLSAgICA8Q3VzdG9tQnVpbGRTdGVwPg0KPiAtICAgICAgPE1lc3NhZ2U+
Q29weWluZyBvdXRwdXQgZmlsZXM8L01lc3NhZ2U+DQo+IC0gICAgICA8Q29tbWFuZD54Y29weSAv
eSAkKFRhcmdldFBhdGgpDQo+ICQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1U
YXJnZXQpXA0KPiAtICAgICAgICAgIHhjb3B5IC95ICQoVGFyZ2V0RGlyKUxpdGVBZ2VudC5wZGIN
Cj4gJChTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldClcPC9Db21tYW5k
Pg0KPiAtDQo+IDxPdXRwdXRzPiQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1U
YXJnZXQpJChUYXJnZXRGaWxlTmFtZSk7KFMNCj4gb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQ
bGF0Zm9ybVRhcmdldCkkKFRhcmdldE5hbWUpLnBkYjslKE91dHB1dHMpPC8NCj4gT3V0cHV0cz4N
Cj4gLSAgICAgIDxJbnB1dHM+JChUYXJnZXRQYXRoKTskKFRhcmdldERpcikkKFRhcmdldE5hbWUp
LnBkYjwvSW5wdXRzPg0KPiAtICAgIDwvQ3VzdG9tQnVpbGRTdGVwPg0KPiAtICA8L0l0ZW1EZWZp
bml0aW9uR3JvdXA+DQo+IC0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwDQo+IENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4NCj4gLSAgICA8Q2xD
b21waWxlPg0KPiAtICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4NCj4g
LSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj5DcmVhdGU8L1ByZWNvbXBpbGVkSGVhZGVyPg0KPiAt
ICAgICAgPE9wdGltaXphdGlvbj5NYXhTcGVlZDwvT3B0aW1pemF0aW9uPg0KPiAtICAgICAgPEZ1
bmN0aW9uTGV2ZWxMaW5raW5nPnRydWU8L0Z1bmN0aW9uTGV2ZWxMaW5raW5nPg0KPiAtICAgICAg
PEludHJpbnNpY0Z1bmN0aW9ucz50cnVlPC9JbnRyaW5zaWNGdW5jdGlvbnM+DQo+IC0NCj4gPFBy
ZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO05ERUJVRztfQ1JUX1NFQ1VSRV9OT19XQVJOSU5H
UzsNCj4gX1dJTkRPV1M7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRl
ZmluaXRpb25zPg0KPiAtICAgICAgPFNETENoZWNrPnRydWU8L1NETENoZWNrPg0KPiAtDQo+IDxB
ZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7JChTb2x1dGlvbkRpcilc
bGl0ZWFnZW50OyUoQWRkaXRpDQo+IG9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzPg0KPiAtICAgICAgPEJyb3dzZUluZm9ybWF0aW9uPnRydWU8L0Jy
b3dzZUluZm9ybWF0aW9uPg0KPiAtICAgICAgPFByZXByb2Nlc3NUb0ZpbGU+ZmFsc2U8L1ByZXBy
b2Nlc3NUb0ZpbGU+DQo+IC0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZDwvUnVu
dGltZUxpYnJhcnk+DQo+IC0gICAgPC9DbENvbXBpbGU+DQo+IC0gICAgPExpbms+DQo+IC0gICAg
ICA8U3ViU3lzdGVtPldpbmRvd3M8L1N1YlN5c3RlbT4NCj4gLSAgICAgIDxHZW5lcmF0ZURlYnVn
SW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPg0KPiAtICAgICAgPEVu
YWJsZUNPTURBVEZvbGRpbmc+dHJ1ZTwvRW5hYmxlQ09NREFURm9sZGluZz4NCj4gLSAgICAgIDxP
cHRpbWl6ZVJlZmVyZW5jZXM+dHJ1ZTwvT3B0aW1pemVSZWZlcmVuY2VzPg0KPiAtDQo+IDxBZGRp
dGlvbmFsRGVwZW5kZW5jaWVzPlBvd3Jwcm9mLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMp
PC9BZGRpdGkNCj4gb25hbERlcGVuZGVuY2llcz4NCj4gLSAgICA8L0xpbms+DQo+IC0gICAgPEN1
c3RvbUJ1aWxkU3RlcD4NCj4gLSAgICAgIDxNZXNzYWdlPkNvcHlpbmcgb3V0cHV0IGZpbGVzPC9N
ZXNzYWdlPg0KPiAtICAgICAgPENvbW1hbmQ+eGNvcHkgL3kgJChUYXJnZXRQYXRoKQ0KPiAkKFNv
bHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KVwNCj4gLSAgICAgICAgICB4
Y29weSAveSAkKFRhcmdldERpcilMaXRlQWdlbnQucGRiDQo+ICQoU29sdXRpb25EaXIpXC4uXHhl
bmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpXDwvQ29tbWFuZD4NCj4gLQ0KPiA8T3V0cHV0cz4kKFNv
bHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0RmlsZU5hbWUp
OyhTDQo+IG9sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXRO
YW1lKS5wZGI7JShPdXRwdXRzKTwvDQo+IE91dHB1dHM+DQo+IC0gICAgICA8SW5wdXRzPiQoVGFy
Z2V0UGF0aCk7JChUYXJnZXREaXIpJChUYXJnZXROYW1lKS5wZGI8L0lucHV0cz4NCj4gLSAgICA8
L0N1c3RvbUJ1aWxkU3RlcD4NCj4gLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPg0KPiAtICA8SXRl
bUdyb3VwPg0KPiAtICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1YmFn
ZW50XGVycm9ycy5jcHAiPg0KPiAtICAgICAgPFByZWNvbXBpbGVkSGVhZGVyDQo+IENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPk5vdFVz
aW5nPC9Qcg0KPiBlY29tcGlsZWRIZWFkZXI+DQo+IC0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIN
Cj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2
NCciPk5vdFVzaW5nPC9QcmVjDQo+IG9tcGlsZWRIZWFkZXI+DQo+IC0gICAgPC9DbENvbXBpbGU+
DQo+IC0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcc3Rk
YWZ4LmNwcCI+DQo+IC0gICAgICA8UHJlY29tcGlsZWRIZWFkZXINCj4gQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Tm90VXNpbmc8L1By
DQo+IGVjb21waWxlZEhlYWRlcj4NCj4gLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcg0KPiBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Tm90
VXNpbmc8L1ByZWMNCj4gb21waWxlZEhlYWRlcj4NCj4gLSAgICA8L0NsQ29tcGlsZT4NCj4gLSAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2VudFxXbWlBY2Nlc3Nv
ci5jcHAiPg0KPiAtICAgICAgPFByZWNvbXBpbGVkSGVhZGVyDQo+IENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj5DcmVhdGU8L1ByZWNvDQo+
IG1waWxlZEhlYWRlcj4NCj4gLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcg0KPiBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPkNyZWF0ZTwvUHJl
Y29tcA0KPiBpbGVkSGVhZGVyPg0KPiAtICAgICAgPFByZWNvbXBpbGVkSGVhZGVyDQo+IENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPk5v
dFVzaW5nPC9Qcg0KPiBlY29tcGlsZWRIZWFkZXI+DQo+IC0gICAgICA8UHJlY29tcGlsZWRIZWFk
ZXINCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
fHg2NCciPk5vdFVzaW5nPC9QcmVjDQo+IG9tcGlsZWRIZWFkZXI+DQo+IC0gICAgPC9DbENvbXBp
bGU+DQo+IC0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRc
WFNBY2Nlc3Nvci5jcHAiPg0KPiAtICAgICAgPFByZWNvbXBpbGVkSGVhZGVyDQo+IENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj5DcmVhdGU8
L1ByZWNvDQo+IG1waWxlZEhlYWRlcj4NCj4gLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcg0KPiBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPkNy
ZWF0ZTwvUHJlY29tcA0KPiBpbGVkSGVhZGVyPg0KPiAtICAgICAgPFByZWNvbXBpbGVkSGVhZGVy
DQo+IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxX
aW4zMiciPk5vdFVzaW5nPC9Qcg0KPiBlY29tcGlsZWRIZWFkZXI+DQo+IC0gICAgICA8UHJlY29t
cGlsZWRIZWFkZXINCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlfHg2NCciPk5vdFVzaW5nPC9QcmVjDQo+IG9tcGlsZWRIZWFkZXI+DQo+IC0gICAg
PC9DbENvbXBpbGU+DQo+IC0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJz
dHViYWdlbnRcWFNlcnZpY2UuY3BwIj4NCj4gLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcg0KPiBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+
Q3JlYXRlPC9QcmVjbw0KPiBtcGlsZWRIZWFkZXI+DQo+IC0gICAgICA8UHJlY29tcGlsZWRIZWFk
ZXINCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4
NjQnIj5DcmVhdGU8L1ByZWNvbXANCj4gaWxlZEhlYWRlcj4NCj4gLSAgICAgIDxQcmVjb21waWxl
ZEhlYWRlcg0KPiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8V2luMzInIj5Ob3RVc2luZzwvUHINCj4gZWNvbXBpbGVkSGVhZGVyPg0KPiAtICAgICAg
PFByZWNvbXBpbGVkSGVhZGVyDQo+IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5Ob3RVc2luZzwvUHJlYw0KPiBvbXBpbGVkSGVhZGVyPg0K
PiAtICAgIDwvQ2xDb21waWxlPg0KPiAtICA8L0l0ZW1Hcm91cD4NCj4gLSAgPEl0ZW1Hcm91cD4N
Cj4gLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2VudFxzdGRh
ZnguaCIgLz4NCj4gLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXHNyY1x3aW4zMnN0dWJh
Z2VudFxXbWlBY2Nlc3Nvci5oIiAvPg0KPiAtICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5c
c3JjXHdpbjMyc3R1YmFnZW50XFhTQWNjZXNzb3IuaCIgLz4NCj4gLSAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2VudFxYU2VydmljZS5oIiAvPg0KPiAtICA8L0l0
ZW1Hcm91cD4NCj4gLSAgPEl0ZW1Hcm91cD4NCj4gLSAgICA8Q3VzdG9tQnVpbGQgSW5jbHVkZT0i
Li5cLi5cc3JjXHdpbjMyc3R1YmFnZW50XG1lc3NhZ2VzLm1jIj4NCj4gLSAgICAgIDxGaWxlVHlw
ZT5Eb2N1bWVudDwvRmlsZVR5cGU+DQo+IC0gICAgICA8Q29tbWFuZA0KPiBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+bWMNCj4gJShGdWxs
UGF0aCk8L0NvbW1hbmQ+DQo+IC0gICAgICA8Q29tbWFuZA0KPiBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPm1jDQo+ICUoRnVsbFBhdGgpPC9D
b21tYW5kPg0KPiAtICAgICAgPE91dHB1dHMNCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPiUoRmlsZW5hbWUpLnJjDQo+IDslKEZpbGVu
YW1lKS5oPC9PdXRwdXRzPg0KPiAtICAgICAgPE91dHB1dHMNCj4gQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4lKEZpbGVuYW1lKS5yYzslDQo+
IChGaWxlbmFtZSkuaDwvT3V0cHV0cz4NCj4gLSAgICAgIDxDb21tYW5kDQo+IENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPm1jDQo+ICUo
RnVsbFBhdGgpPC9Db21tYW5kPg0KPiAtICAgICAgPENvbW1hbmQNCj4gQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPm1jDQo+ICUoRnVsbFBh
dGgpPC9Db21tYW5kPg0KPiAtICAgICAgPE91dHB1dHMNCj4gQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+JShGaWxlbmFtZSkuDQo+IHJj
OyUoRmlsZW5hbWUpLmg8L091dHB1dHM+DQo+IC0gICAgICA8T3V0cHV0cw0KPiBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+JShGaWxlbmFt
ZSkucmM7DQo+ICUoRmlsZW5hbWUpLmg8L091dHB1dHM+DQo+IC0gICAgPC9DdXN0b21CdWlsZD4N
Cj4gLSAgPC9JdGVtR3JvdXA+DQo+IC0gIDxJdGVtR3JvdXA+DQo+IC0gICAgPFJlc291cmNlQ29t
cGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcdzMyeGFnZW50LnJjIiAvPg0K
PiAtICA8L0l0ZW1Hcm91cD4NCj4gLSAgPEl0ZW1Hcm91cD4NCj4gLSAgICA8SW1hZ2UgSW5jbHVk
ZT0iLi5cLi5cc3JjXHdpbjMyc3R1YmFnZW50XHhlbi5pY28iIC8+DQo+IC0gIDwvSXRlbUdyb3Vw
Pg0KPiAtICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC50
YXJnZXRzIiAvPg0KPiAtICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPg0K
PiAtICA8L0ltcG9ydEdyb3VwPg0KPiAtPC9Qcm9qZWN0Pg0KPiBkaWZmIC0tZ2l0IGEvdnMyMDEy
L2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvai51c2VyDQo+IGIvdnMyMDEyL2xpdGVhZ2VudC9M
aXRlQWdlbnQudmN4cHJvai51c2VyDQo+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRl
eCA1MGYzY2JlLi4wMDAwMDAwDQo+IC0tLSBhL3ZzMjAxMi9saXRlYWdlbnQvTGl0ZUFnZW50LnZj
eHByb2oudXNlcg0KPiArKysgL2Rldi9udWxsDQo+IEBAIC0xLDQgKzAsMCBAQA0KPiAtPD94bWwg
dmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCj4gLTxQcm9qZWN0IFRvb2xzVmVyc2lv
bj0iNC4wIg0KPiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIv
bXNidWlsZC8yMDAzIj4NCj4gLSAgPFByb3BlcnR5R3JvdXAgLz4NCj4gLTwvUHJvamVjdD4NCj4g
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlDQo+IGRpZmYgLS1naXQgYS92czIwMTIveGVuYWdl
bnQveGVuYWdlbnQudmN4cHJvag0KPiBiL3ZzMjAxMi94ZW5hZ2VudC94ZW5hZ2VudC52Y3hwcm9q
DQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAuLmFmOTlmOWQNCj4gLS0t
IC9kZXYvbnVsbA0KPiArKysgYi92czIwMTIveGVuYWdlbnQveGVuYWdlbnQudmN4cHJvag0KPiBA
QCAtMCwwICsxLDIxNyBAQA0KPiArPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgi
Pz4NCj4gKzxQcm9qZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAi
DQo+IHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxk
LzIwMDMiPg0KPiArICA8SXRlbUdyb3VwIExhYmVsPSJQcm9qZWN0Q29uZmlndXJhdGlvbnMiPg0K
PiArICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3xXaW4zMiI+DQo+ICsg
ICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4NCj4gKyAgICAgIDxQbGF0
Zm9ybT5XaW4zMjwvUGxhdGZvcm0+DQo+ICsgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4NCj4g
KyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8eDY0Ij4NCj4gKyAgICAg
IDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPg0KPiArICAgICAgPFBsYXRmb3Jt
Png2NDwvUGxhdGZvcm0+DQo+ICsgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4NCj4gKyAgICA8
UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXxXaW4zMiI+DQo+ICsgICAgICA8
Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPg0KPiArICAgICAgPFBsYXRmb3Jt
PldpbjMyPC9QbGF0Zm9ybT4NCj4gKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPg0KPiArICAg
IDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfHg2NCI+DQo+ICsgICAgICA8
Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPg0KPiArICAgICAgPFBsYXRmb3Jt
Png2NDwvUGxhdGZvcm0+DQo+ICsgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4NCj4gKyAgPC9J
dGVtR3JvdXA+DQo+ICsgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJHbG9iYWxzIj4NCj4gKyAgICA8
UHJvamVjdEd1aWQ+ezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLQ0KPiBCOERBRkQ3QkJEM0J9PC9Q
cm9qZWN0R3VpZD4NCj4gKyAgICA8S2V5d29yZD5XaW4zMlByb2o8L0tleXdvcmQ+DQo+ICsgICAg
PFJvb3ROYW1lc3BhY2U+eGVuYWdlbnQ8L1Jvb3ROYW1lc3BhY2U+DQo+ICsgICAgPFByb2plY3RO
YW1lPnhlbmFnZW50PC9Qcm9qZWN0TmFtZT4NCj4gKyAgPC9Qcm9wZXJ0eUdyb3VwPg0KPiArICA8
SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5EZWZhdWx0LnBy
b3BzIiAvPg0KPiArICA8UHJvcGVydHlHcm91cA0KPiBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyINCj4gTGFiZWw9IkNvbmZpZ3VyYXRpb24i
Pg0KPiArICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5
cGU+DQo+ICsgICAgPFVzZURlYnVnTGlicmFyaWVzPnRydWU8L1VzZURlYnVnTGlicmFyaWVzPg0K
PiArICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djExMDwvUGxhdGZvcm1Ub29sc2V0Pg0KPiArICAgIDxD
aGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+DQo+ICsgIDwvUHJvcGVydHlHcm91
cD4NCj4gKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIg0KPiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+DQo+ICsgICAg
PENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4NCj4gKyAg
ICA8VXNlRGVidWdMaWJyYXJpZXM+dHJ1ZTwvVXNlRGVidWdMaWJyYXJpZXM+DQo+ICsgICAgPFBs
YXRmb3JtVG9vbHNldD52MTEwPC9QbGF0Zm9ybVRvb2xzZXQ+DQo+ICsgICAgPENoYXJhY3RlclNl
dD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4NCj4gKyAgPC9Qcm9wZXJ0eUdyb3VwPg0KPiArICA8
UHJvcGVydHlHcm91cA0KPiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2V8V2luMzInIg0KPiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+DQo+ICsgICAgPENv
bmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4NCj4gKyAgICA8
VXNlRGVidWdMaWJyYXJpZXM+ZmFsc2U8L1VzZURlYnVnTGlicmFyaWVzPg0KPiArICAgIDxQbGF0
Zm9ybVRvb2xzZXQ+djExMDwvUGxhdGZvcm1Ub29sc2V0Pg0KPiArICAgIDxXaG9sZVByb2dyYW1P
cHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPg0KPiArICAgIDxDaGFy
YWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+DQo+ICsgIDwvUHJvcGVydHlHcm91cD4N
Cj4gKyAgPFByb3BlcnR5R3JvdXANCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciDQo+IExhYmVsPSJDb25maWd1cmF0aW9uIj4NCj4gKyAg
ICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPg0KPiAr
ICAgIDxVc2VEZWJ1Z0xpYnJhcmllcz5mYWxzZTwvVXNlRGVidWdMaWJyYXJpZXM+DQo+ICsgICAg
PFBsYXRmb3JtVG9vbHNldD52MTEwPC9QbGF0Zm9ybVRvb2xzZXQ+DQo+ICsgICAgPFdob2xlUHJv
Z3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+DQo+ICsgICAg
PENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4NCj4gKyAgPC9Qcm9wZXJ0eUdy
b3VwPg0KPiArICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNw
cC5wcm9wcyIgLz4NCj4gKyAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25TZXR0aW5ncyI+
DQo+ICsgIDwvSW1wb3J0R3JvdXA+DQo+ICsgIDxJbXBvcnRHcm91cCBMYWJlbD0iUHJvcGVydHlT
aGVldHMiDQo+IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8V2luMzInIj4NCj4gKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jv
c29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyINCj4gQ29uZGl0aW9uPSJleGlzdHMoJyQo
VXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIg0KPiBM
YWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+DQo+ICsgIDwvSW1wb3J0R3JvdXA+DQo+ICsg
IDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfHg2NCciDQo+IExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+DQo+ICsgICAgPEltcG9ydCBQ
cm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJv
cHMiDQo+IENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQo
UGxhdGZvcm0pLnVzZXIucHJvcHMnKSINCj4gTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAv
Pg0KPiArICA8L0ltcG9ydEdyb3VwPg0KPiArICA8SW1wb3J0R3JvdXAgTGFiZWw9IlByb3BlcnR5
U2hlZXRzIg0KPiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8V2luMzInIj4NCj4gKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1p
Y3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyINCj4gQ29uZGl0aW9uPSJleGlzdHMo
JyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIg0K
PiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+DQo+ICsgIDwvSW1wb3J0R3JvdXA+DQo+
ICsgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2V8eDY0JyINCj4gTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4NCj4gKyAgICA8SW1w
b3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNl
ci5wcm9wcyINCj4gQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5D
cHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIg0KPiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZv
cm0iIC8+DQo+ICsgIDwvSW1wb3J0R3JvdXA+DQo+ICsgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJV
c2VyTWFjcm9zIiAvPg0KPiArICA8UHJvcGVydHlHcm91cA0KPiBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+DQo+ICsgICAgPExpbmtJbmNy
ZW1lbnRhbD50cnVlPC9MaW5rSW5jcmVtZW50YWw+DQo+ICsgIDwvUHJvcGVydHlHcm91cD4NCj4g
KyAgPFByb3BlcnR5R3JvdXANCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3x4NjQnIj4NCj4gKyAgICA8TGlua0luY3JlbWVudGFsPnRydWU8L0xpbmtJ
bmNyZW1lbnRhbD4NCj4gKyAgPC9Qcm9wZXJ0eUdyb3VwPg0KPiArICA8UHJvcGVydHlHcm91cA0K
PiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2lu
MzInIj4NCj4gKyAgICA8TGlua0luY3JlbWVudGFsPmZhbHNlPC9MaW5rSW5jcmVtZW50YWw+DQo+
ICsgIDwvUHJvcGVydHlHcm91cD4NCj4gKyAgPFByb3BlcnR5R3JvdXANCj4gQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPg0KPiArICAgIDxM
aW5rSW5jcmVtZW50YWw+ZmFsc2U8L0xpbmtJbmNyZW1lbnRhbD4NCj4gKyAgPC9Qcm9wZXJ0eUdy
b3VwPg0KPiArDQo+ICsgIDxQcm9wZXJ0eUdyb3VwPg0KPiArICAgIDxJbmNsdWRlUGF0aD4uLlwu
LlxpbmNsdWRlOyQoSW5jbHVkZVBhdGgpPC9JbmNsdWRlUGF0aD4NCj4gKyAgPC9Qcm9wZXJ0eUdy
b3VwPg0KPiArDQo+ICsgIDxJdGVtRGVmaW5pdGlvbkdyb3VwDQo+IENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4NCj4gKyAgICA8Q2xDb21w
aWxlPg0KPiArICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPk5vdFVzaW5nPC9QcmVjb21waWxlZEhl
YWRlcj4NCj4gKyAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+DQo+ICsg
ICAgICA8T3B0aW1pemF0aW9uPkRpc2FibGVkPC9PcHRpbWl6YXRpb24+DQo+ICsNCj4gPFByZXBy
b2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19ERUJVRztfV0lORE9XUztfQ1JUX1NFQ1VSRV9OT18N
Cj4gV0FSTklOR1M7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmlu
aXRpb25zPg0KPiArICAgICAgPFNETENoZWNrPnRydWU8L1NETENoZWNrPg0KPiArDQo+IDxBZGRp
dGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7JChTb2x1dGlvbkRpcilceGVu
YWdlbnQ7JShBZGRpdGkNCj4gb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNs
dWRlRGlyZWN0b3JpZXM+DQo+ICsgICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERl
YnVnPC9SdW50aW1lTGlicmFyeT4NCj4gKyAgICA8L0NsQ29tcGlsZT4NCj4gKyAgICA8TGluaz4N
Cj4gKyAgICAgIDxTdWJTeXN0ZW0+V2luZG93czwvU3ViU3lzdGVtPg0KPiArICAgICAgPEdlbmVy
YXRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+DQo+ICsN
Cj4gPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+UG93cnByb2YubGliOyUoQWRkaXRpb25hbERlcGVu
ZGVuY2llcyk8L0FkZGl0aQ0KPiBvbmFsRGVwZW5kZW5jaWVzPg0KPiArICAgIDwvTGluaz4NCj4g
KyAgICA8Q3VzdG9tQnVpbGRTdGVwPg0KPiArICAgICAgICA8Q29tbWFuZD54Y29weSAveSAkKFRh
cmdldFBhdGgpDQo+ICQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQp
XA0KPiArICAgICAgICAgICAgeGNvcHkgL3kgJChUYXJnZXREaXIpeGVuYWdlbnQucGRiDQo+ICQo
U29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpXDwvQ29tbWFuZD4NCj4g
KyAgICA8L0N1c3RvbUJ1aWxkU3RlcD4NCj4gKyAgICA8Q3VzdG9tQnVpbGRTdGVwPg0KPiArICAg
ICAgPE1lc3NhZ2U+Q29weWluZyBvdXRwdXQgZmlsZXM8L01lc3NhZ2U+DQo+ICsNCj4gPE91dHB1
dHM+JChTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRhcmdldEZp
bGVOYW1lKTsoUw0KPiBvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KSQo
VGFyZ2V0TmFtZSkucGRiOyUoT3V0cHV0cyk8Lw0KPiBPdXRwdXRzPg0KPiArICAgICAgPElucHV0
cz4kKFRhcmdldFBhdGgpOyQoVGFyZ2V0RGlyKSQoVGFyZ2V0TmFtZSkucGRiPC9JbnB1dHM+DQo+
ICsgICAgPC9DdXN0b21CdWlsZFN0ZXA+DQo+ICsgIDwvSXRlbURlZmluaXRpb25Hcm91cD4NCj4g
KyAgPEl0ZW1EZWZpbml0aW9uR3JvdXANCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4NCj4gKyAgICA8Q2xDb21waWxlPg0KPiArICAgICAg
PFByZWNvbXBpbGVkSGVhZGVyPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4NCj4gKyAgICAg
IDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+DQo+ICsgICAgICA8T3B0aW1pemF0
aW9uPkRpc2FibGVkPC9PcHRpbWl6YXRpb24+DQo+ICsNCj4gPFByZXByb2Nlc3NvckRlZmluaXRp
b25zPldJTjMyO19ERUJVRztfV0lORE9XUztfQ1JUX1NFQ1VSRV9OT18NCj4gV0FSTklOR1M7JShQ
cmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPg0KPiArICAg
ICAgPFNETENoZWNrPnRydWU8L1NETENoZWNrPg0KPiArDQo+IDxBZGRpdGlvbmFsSW5jbHVkZURp
cmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7JChTb2x1dGlvbkRpcilceGVuYWdlbnQ7JShBZGRpdGkN
Cj4gb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+
DQo+ICsgICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERlYnVnPC9SdW50aW1lTGli
cmFyeT4NCj4gKyAgICA8L0NsQ29tcGlsZT4NCj4gKyAgICA8TGluaz4NCj4gKyAgICAgIDxTdWJT
eXN0ZW0+V2luZG93czwvU3ViU3lzdGVtPg0KPiArICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1h
dGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+DQo+ICsNCj4gPEFkZGl0aW9uYWxE
ZXBlbmRlbmNpZXM+UG93cnByb2YubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0
aQ0KPiBvbmFsRGVwZW5kZW5jaWVzPg0KPiArICAgIDwvTGluaz4NCj4gKyAgICA8Q3VzdG9tQnVp
bGRTdGVwPg0KPiArICAgICAgICA8Q29tbWFuZD54Y29weSAveSAkKFRhcmdldFBhdGgpDQo+ICQo
U29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpXA0KPiArICAgICAgICAg
ICAgeGNvcHkgL3kgJChUYXJnZXREaXIpeGVuYWdlbnQucGRiDQo+ICQoU29sdXRpb25EaXIpXC4u
XHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpXDwvQ29tbWFuZD4NCj4gKyAgICA8L0N1c3RvbUJ1
aWxkU3RlcD4NCj4gKyAgICA8Q3VzdG9tQnVpbGRTdGVwPg0KPiArICAgICAgPE1lc3NhZ2U+Q29w
eWluZyBvdXRwdXQgZmlsZXM8L01lc3NhZ2U+DQo+ICsNCj4gPE91dHB1dHM+JChTb2x1dGlvbkRp
cilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRhcmdldEZpbGVOYW1lKTsoUw0KPiBv
bHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0TmFtZSkucGRi
OyUoT3V0cHV0cyk8Lw0KPiBPdXRwdXRzPg0KPiArICAgICAgPElucHV0cz4kKFRhcmdldFBhdGgp
OyQoVGFyZ2V0RGlyKSQoVGFyZ2V0TmFtZSkucGRiPC9JbnB1dHM+DQo+ICsgICAgPC9DdXN0b21C
dWlsZFN0ZXA+DQo+ICsgIDwvSXRlbURlZmluaXRpb25Hcm91cD4NCj4gKyAgPEl0ZW1EZWZpbml0
aW9uR3JvdXANCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyI+DQo+ICsgICAgPENsQ29tcGlsZT4NCj4gKyAgICAgIDxXYXJuaW5nTGV2
ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+DQo+ICsgICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Tm90
VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPg0KPiArICAgICAgPE9wdGltaXphdGlvbj5NYXhTcGVl
ZDwvT3B0aW1pemF0aW9uPg0KPiArICAgICAgPEZ1bmN0aW9uTGV2ZWxMaW5raW5nPnRydWU8L0Z1
bmN0aW9uTGV2ZWxMaW5raW5nPg0KPiArICAgICAgPEludHJpbnNpY0Z1bmN0aW9ucz50cnVlPC9J
bnRyaW5zaWNGdW5jdGlvbnM+DQo+ICsNCj4gPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMy
O05ERUJVRztfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUzsNCj4gX1dJTkRPV1M7JShQcmVwcm9jZXNz
b3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPg0KPiArICAgICAgPFNETENo
ZWNrPnRydWU8L1NETENoZWNrPg0KPiArDQo+IDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVz
Pi4uXC4uXGluY2x1ZGU7JChTb2x1dGlvbkRpcilceGVuYWdlbnQ7JShBZGRpdGkNCj4gb25hbElu
Y2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+DQo+ICsgICAg
ICA8QnJvd3NlSW5mb3JtYXRpb24+dHJ1ZTwvQnJvd3NlSW5mb3JtYXRpb24+DQo+ICsgICAgICA8
UHJlcHJvY2Vzc1RvRmlsZT5mYWxzZTwvUHJlcHJvY2Vzc1RvRmlsZT4NCj4gKyAgICAgIDxSdW50
aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkPC9SdW50aW1lTGlicmFyeT4NCj4gKyAgICA8L0NsQ29t
cGlsZT4NCj4gKyAgICA8TGluaz4NCj4gKyAgICAgIDxTdWJTeXN0ZW0+V2luZG93czwvU3ViU3lz
dGVtPg0KPiArICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURl
YnVnSW5mb3JtYXRpb24+DQo+ICsgICAgICA8RW5hYmxlQ09NREFURm9sZGluZz50cnVlPC9FbmFi
bGVDT01EQVRGb2xkaW5nPg0KPiArICAgICAgPE9wdGltaXplUmVmZXJlbmNlcz50cnVlPC9PcHRp
bWl6ZVJlZmVyZW5jZXM+DQo+ICsNCj4gPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+UG93cnByb2Yu
bGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aQ0KPiBvbmFsRGVwZW5kZW5jaWVz
Pg0KPiArICAgIDwvTGluaz4NCj4gKyAgICA8Q3VzdG9tQnVpbGRTdGVwPg0KPiArICAgICAgPE1l
c3NhZ2U+Q29weWluZyBvdXRwdXQgZmlsZXM8L01lc3NhZ2U+DQo+ICsgICAgICA8Q29tbWFuZD54
Y29weSAveSAkKFRhcmdldFBhdGgpDQo+ICQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxh
dGZvcm1UYXJnZXQpXA0KPiArICAgICAgICAgIHhjb3B5IC95ICQoVGFyZ2V0RGlyKXhlbmFnZW50
LnBkYg0KPiAkKFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KVw8L0Nv
bW1hbmQ+DQo+ICsNCj4gPE91dHB1dHM+JChTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0
Zm9ybVRhcmdldCkkKFRhcmdldEZpbGVOYW1lKTsoUw0KPiBvbHV0aW9uRGlyKVwuLlx4ZW5pZmFj
ZVwkKFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0TmFtZSkucGRiOyUoT3V0cHV0cyk8Lw0KPiBPdXRw
dXRzPg0KPiArICAgICAgPElucHV0cz4kKFRhcmdldFBhdGgpOyQoVGFyZ2V0RGlyKSQoVGFyZ2V0
TmFtZSkucGRiPC9JbnB1dHM+DQo+ICsgICAgPC9DdXN0b21CdWlsZFN0ZXA+DQo+ICsgIDwvSXRl
bURlZmluaXRpb25Hcm91cD4NCj4gKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXANCj4gQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPg0KPiArICAg
IDxDbENvbXBpbGU+DQo+ICsgICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVs
Pg0KPiArICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRl
cj4NCj4gKyAgICAgIDxPcHRpbWl6YXRpb24+TWF4U3BlZWQ8L09wdGltaXphdGlvbj4NCj4gKyAg
ICAgIDxGdW5jdGlvbkxldmVsTGlua2luZz50cnVlPC9GdW5jdGlvbkxldmVsTGlua2luZz4NCj4g
KyAgICAgIDxJbnRyaW5zaWNGdW5jdGlvbnM+dHJ1ZTwvSW50cmluc2ljRnVuY3Rpb25zPg0KPiAr
DQo+IDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtOREVCVUc7X0NSVF9TRUNVUkVfTk9f
V0FSTklOR1M7DQo+IF9XSU5ET1dTOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9j
ZXNzb3JEZWZpbml0aW9ucz4NCj4gKyAgICAgIDxTRExDaGVjaz50cnVlPC9TRExDaGVjaz4NCj4g
Kw0KPiA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOyQoU29sdXRp
b25EaXIpXHhlbmFnZW50OyUoQWRkaXRpDQo+IG9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRp
dGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPg0KPiArICAgICAgPEJyb3dzZUluZm9ybWF0aW9uPnRy
dWU8L0Jyb3dzZUluZm9ybWF0aW9uPg0KPiArICAgICAgPFByZXByb2Nlc3NUb0ZpbGU+ZmFsc2U8
L1ByZXByb2Nlc3NUb0ZpbGU+DQo+ICsgICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRl
ZDwvUnVudGltZUxpYnJhcnk+DQo+ICsgICAgPC9DbENvbXBpbGU+DQo+ICsgICAgPExpbms+DQo+
ICsgICAgICA8U3ViU3lzdGVtPldpbmRvd3M8L1N1YlN5c3RlbT4NCj4gKyAgICAgIDxHZW5lcmF0
ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPg0KPiArICAg
ICAgPEVuYWJsZUNPTURBVEZvbGRpbmc+dHJ1ZTwvRW5hYmxlQ09NREFURm9sZGluZz4NCj4gKyAg
ICAgIDxPcHRpbWl6ZVJlZmVyZW5jZXM+dHJ1ZTwvT3B0aW1pemVSZWZlcmVuY2VzPg0KPiArDQo+
IDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPlBvd3Jwcm9mLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRl
bmNpZXMpPC9BZGRpdGkNCj4gb25hbERlcGVuZGVuY2llcz4NCj4gKyAgICA8L0xpbms+DQo+ICsg
ICAgPEN1c3RvbUJ1aWxkU3RlcD4NCj4gKyAgICAgIDxNZXNzYWdlPkNvcHlpbmcgb3V0cHV0IGZp
bGVzPC9NZXNzYWdlPg0KPiArICAgICAgPENvbW1hbmQ+eGNvcHkgL3kgJChUYXJnZXRQYXRoKQ0K
PiAkKFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KVwNCj4gKyAgICAg
ICAgICB4Y29weSAveSAkKFRhcmdldERpcil4ZW5hZ2VudC5wZGINCj4gJChTb2x1dGlvbkRpcilc
Li5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldClcPC9Db21tYW5kPg0KPiArDQo+IDxPdXRwdXRz
PiQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXRGaWxl
TmFtZSk7KFMNCj4gb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRh
cmdldE5hbWUpLnBkYjslKE91dHB1dHMpPC8NCj4gT3V0cHV0cz4NCj4gKyAgICAgIDxJbnB1dHM+
JChUYXJnZXRQYXRoKTskKFRhcmdldERpcikkKFRhcmdldE5hbWUpLnBkYjwvSW5wdXRzPg0KPiAr
ICAgIDwvQ3VzdG9tQnVpbGRTdGVwPg0KPiArICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+DQo+ICsg
IDxJdGVtR3JvdXA+DQo+ICsgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuYWdl
bnRcc2VydmljZS5jcHAiLz4NCj4gKyAgPC9JdGVtR3JvdXA+DQo+ICsgIDxJdGVtR3JvdXA+DQo+
ICsgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuYWdlbnRcc2VydmljZS5oIiAv
Pg0KPiArICA8L0l0ZW1Hcm91cD4NCj4gKyAgPEl0ZW1Hcm91cD4NCj4gKyAgICA8Q3VzdG9tQnVp
bGQgSW5jbHVkZT0iLi5cLi5cc3JjXHhlbmFnZW50XG1lc3NhZ2VzLm1jIj4NCj4gKyAgICAgIDxG
aWxlVHlwZT5Eb2N1bWVudDwvRmlsZVR5cGU+DQo+ICsgICAgICA8Q29tbWFuZD5tYyAlKEZ1bGxQ
YXRoKTwvQ29tbWFuZD4NCj4gKyAgICAgIDxPdXRwdXRzPiUoRmlsZW5hbWUpLnJjOyUoRmlsZW5h
bWUpLmg8L091dHB1dHM+DQo+ICsJPC9DdXN0b21CdWlsZD4NCj4gKyAgPC9JdGVtR3JvdXA+DQo+
ICsgIDxJdGVtR3JvdXA+DQo+ICsgICAgPFJlc291cmNlQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxz
cmNceGVuYWdlbnRceGVuYWdlbnQucmMiIC8+DQo+ICsgIDwvSXRlbUdyb3VwPg0KPiArICA8SXRl
bUdyb3VwPg0KPiArICAgIDxJbWFnZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuYWdlbnRceGVuLmlj
byIgLz4NCj4gKyAgPC9JdGVtR3JvdXA+DQo+ICsgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1Rhcmdl
dHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnRhcmdldHMiIC8+DQo+ICsgIDxJbXBvcnRHcm91cCBMYWJl
bD0iRXh0ZW5zaW9uVGFyZ2V0cyI+DQo+ICsgIDwvSW1wb3J0R3JvdXA+DQo+ICs8L1Byb2plY3Q+
DQo+IGRpZmYgLS1naXQgYS92czIwMTIveGVuYWdlbnQveGVuYWdlbnQudmN4cHJvai51c2VyDQo+
IGIvdnMyMDEyL3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2oudXNlcg0KPiBuZXcgZmlsZSBtb2Rl
IDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwLi41MGYzY2JlDQo+IC0tLSAvZGV2L251bGwNCj4gKysr
IGIvdnMyMDEyL3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2oudXNlcg0KPiBAQCAtMCwwICsxLDQg
QEANCj4gKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+DQo+ICs8UHJvamVj
dCBUb29sc1ZlcnNpb249IjQuMCINCj4geG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5j
b20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+DQo+ICsgIDxQcm9wZXJ0eUdyb3VwIC8+DQo+ICs8
L1Byb2plY3Q+DQo+IFwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQ0KPiBkaWZmIC0tZ2l0IGEv
dnMyMDEyL3hlbmlmYWNlLnNsbiBiL3ZzMjAxMi94ZW5pZmFjZS5zbG4NCj4gaW5kZXggY2I2YmVj
Zi4uOTcwMGNlMyAxMDA2NDQNCj4gLS0tIGEvdnMyMDEyL3hlbmlmYWNlLnNsbg0KPiArKysgYi92
czIwMTIveGVuaWZhY2Uuc2xuDQo+IEBAIC00LDcgKzQsNyBAQCBQcm9qZWN0KCJ7OEJDOUNFQjgt
OEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0NCj4gInhlbmlmYWNlX2NvaW5zdCIsICJ4
ZW5pZmFjZQ0KPiAgRW5kUHJvamVjdA0KPiAgUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04
RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJ4ZW5pZmFjZSIsDQo+ICJ4ZW5pZmFjZVx4ZW5pZmFjZS52
Y3hwcm9qIiwgInsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3RDh9Ig0KPiAgRW5k
UHJvamVjdA0KPiAtUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0
Mn0iKSA9ICJMaXRlQWdlbnQiLA0KPiAibGl0ZWFnZW50XExpdGVBZ2VudC52Y3hwcm9qIiwgInsy
RTYxRDJDQy04NjVFLTQ0MkMtOEM4My0NCj4gQjhEQUZEN0JCRDNCfSINCj4gK1Byb2plY3QoIns4
QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAieGVuYWdlbnQiLA0KPiAi
eGVuYWdlbnRceGVuYWdlbnQudmN4cHJvaiIsICJ7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtDQo+
IEI4REFGRDdCQkQzQn0iDQo+ICBFbmRQcm9qZWN0DQo+ICBQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0
QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gInBhY2thZ2UiLA0KPiAicGFja2FnZVxwYWNr
YWdlLnZjeHByb2oiLCAiezlCMDcxQTM1LTg5N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0iDQo+
ICAJUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KPiBk
aWZmIC0tZ2l0IGEvdnMyMDEzL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvag0KPiBiL3ZzMjAx
My9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHByb2oNCj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
DQo+IGluZGV4IDUwZGJlNDMuLjAwMDAwMDANCj4gLS0tIGEvdnMyMDEzL2xpdGVhZ2VudC9MaXRl
QWdlbnQudmN4cHJvag0KPiArKysgL2Rldi9udWxsDQo+IEBAIC0xLDI1NiArMCwwIEBADQo+IC08
P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/Pg0KPiAtPFByb2plY3QgRGVmYXVs
dFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQuMCINCj4geG1sbnM9Imh0dHA6Ly9zY2hl
bWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+DQo+IC0gIDxJdGVtR3Jv
dXAgTGFiZWw9IlByb2plY3RDb25maWd1cmF0aW9ucyI+DQo+IC0gICAgPFByb2plY3RDb25maWd1
cmF0aW9uIEluY2x1ZGU9IkRlYnVnfFdpbjMyIj4NCj4gLSAgICAgIDxDb25maWd1cmF0aW9uPkRl
YnVnPC9Db25maWd1cmF0aW9uPg0KPiAtICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4N
Cj4gLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPg0KPiAtICAgIDxQcm9qZWN0Q29uZmlndXJh
dGlvbiBJbmNsdWRlPSJEZWJ1Z3x4NjQiPg0KPiAtICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8
L0NvbmZpZ3VyYXRpb24+DQo+IC0gICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4NCj4gLSAg
ICA8L1Byb2plY3RDb25maWd1cmF0aW9uPg0KPiAtICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJ
bmNsdWRlPSJSZWxlYXNlfFdpbjMyIj4NCj4gLSAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8
L0NvbmZpZ3VyYXRpb24+DQo+IC0gICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPg0KPiAt
ICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+DQo+IC0gICAgPFByb2plY3RDb25maWd1cmF0aW9u
IEluY2x1ZGU9IlJlbGVhc2V8eDY0Ij4NCj4gLSAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8
L0NvbmZpZ3VyYXRpb24+DQo+IC0gICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4NCj4gLSAg
ICA8L1Byb2plY3RDb25maWd1cmF0aW9uPg0KPiAtICA8L0l0ZW1Hcm91cD4NCj4gLSAgPFByb3Bl
cnR5R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPg0KPiAtICAgIDxQcm9qZWN0R3VpZD57MkU2MUQyQ0Mt
ODY1RS00NDJDLThDODMtDQo+IEI4REFGRDdCQkQzQn08L1Byb2plY3RHdWlkPg0KPiAtICAgIDxL
ZXl3b3JkPldpbjMyUHJvajwvS2V5d29yZD4NCj4gLSAgICA8Um9vdE5hbWVzcGFjZT5TdHViQWdl
bnQ8L1Jvb3ROYW1lc3BhY2U+DQo+IC0gICAgPFByb2plY3ROYW1lPkxpdGVBZ2VudDwvUHJvamVj
dE5hbWU+DQo+IC0gIDwvUHJvcGVydHlHcm91cD4NCj4gLSAgPEltcG9ydCBQcm9qZWN0PSIkKFZD
VGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAuRGVmYXVsdC5wcm9wcyIgLz4NCj4gLSAgPFByb3Bl
cnR5R3JvdXANCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z3xXaW4zMiciDQo+IExhYmVsPSJDb25maWd1cmF0aW9uIj4NCj4gLSAgICA8Q29uZmlndXJh
dGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPg0KPiAtICAgIDxVc2VEZWJ1
Z0xpYnJhcmllcz50cnVlPC9Vc2VEZWJ1Z0xpYnJhcmllcz4NCj4gLSAgICA8UGxhdGZvcm1Ub29s
c2V0PldpbmRvd3NBcHBsaWNhdGlvbkZvckRyaXZlcnM4LjE8L1BsYXRmb3JtVG9vbHNldD4NCj4g
LSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0Pg0KPiAtICA8L1Byb3Bl
cnR5R3JvdXA+DQo+IC0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyINCj4gTGFiZWw9IkNvbmZpZ3VyYXRpb24iPg0K
PiAtICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+
DQo+IC0gICAgPFVzZURlYnVnTGlicmFyaWVzPnRydWU8L1VzZURlYnVnTGlicmFyaWVzPg0KPiAt
ICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0FwcGxpY2F0aW9uRm9yRHJpdmVyczguMTwvUGxh
dGZvcm1Ub29sc2V0Pg0KPiAtICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJT
ZXQ+DQo+IC0gIDwvUHJvcGVydHlHcm91cD4NCj4gLSAgPFByb3BlcnR5R3JvdXANCj4gQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyINCj4g
TGFiZWw9IkNvbmZpZ3VyYXRpb24iPg0KPiAtICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNh
dGlvbjwvQ29uZmlndXJhdGlvblR5cGU+DQo+IC0gICAgPFVzZURlYnVnTGlicmFyaWVzPmZhbHNl
PC9Vc2VEZWJ1Z0xpYnJhcmllcz4NCj4gLSAgICA8UGxhdGZvcm1Ub29sc2V0PldpbmRvd3NBcHBs
aWNhdGlvbkZvckRyaXZlcnM4LjE8L1BsYXRmb3JtVG9vbHNldD4NCj4gLSAgICA8V2hvbGVQcm9n
cmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4NCj4gLSAgICA8
Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0Pg0KPiAtICA8L1Byb3BlcnR5R3Jv
dXA+DQo+IC0gIDxQcm9wZXJ0eUdyb3VwDQo+IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIg0KPiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+DQo+
IC0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4N
Cj4gLSAgICA8VXNlRGVidWdMaWJyYXJpZXM+ZmFsc2U8L1VzZURlYnVnTGlicmFyaWVzPg0KPiAt
ICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0FwcGxpY2F0aW9uRm9yRHJpdmVyczguMTwvUGxh
dGZvcm1Ub29sc2V0Pg0KPiAtICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hv
bGVQcm9ncmFtT3B0aW1pemF0aW9uPg0KPiAtICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9D
aGFyYWN0ZXJTZXQ+DQo+IC0gIDwvUHJvcGVydHlHcm91cD4NCj4gLSAgPEltcG9ydCBQcm9qZWN0
PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAucHJvcHMiIC8+DQo+IC0gIDxJbXBvcnRH
cm91cCBMYWJlbD0iRXh0ZW5zaW9uU2V0dGluZ3MiPg0KPiAtICA8L0ltcG9ydEdyb3VwPg0KPiAt
ICA8SW1wb3J0R3JvdXAgTGFiZWw9IlByb3BlcnR5U2hlZXRzIg0KPiBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+DQo+IC0gICAgPEltcG9y
dCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIu
cHJvcHMiDQo+IENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3Bw
LiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSINCj4gTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3Jt
IiAvPg0KPiAtICA8L0ltcG9ydEdyb3VwPg0KPiAtICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIg0KPiBMYWJlbD0iUHJv
cGVydHlTaGVldHMiPg0KPiAtICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWlj
cm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIg0KPiBDb25kaXRpb249ImV4aXN0cygn
JChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiDQo+
IExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4NCj4gLSAgPC9JbXBvcnRHcm91cD4NCj4g
LSAgPEltcG9ydEdyb3VwIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyINCj4gQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+DQo+IC0gICAgPElt
cG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVz
ZXIucHJvcHMiDQo+IENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQu
Q3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSINCj4gTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRm
b3JtIiAvPg0KPiAtICA8L0ltcG9ydEdyb3VwPg0KPiAtICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciDQo+IExhYmVs
PSJQcm9wZXJ0eVNoZWV0cyI+DQo+IC0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGly
KVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiDQo+IENvbmRpdGlvbj0iZXhp
c3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMn
KSINCj4gTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPg0KPiAtICA8L0ltcG9ydEdyb3Vw
Pg0KPiAtICA8UHJvcGVydHlHcm91cCBMYWJlbD0iVXNlck1hY3JvcyIgLz4NCj4gLSAgPFByb3Bl
cnR5R3JvdXANCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z3xXaW4zMiciPg0KPiAtICAgIDxMaW5rSW5jcmVtZW50YWw+dHJ1ZTwvTGlua0luY3JlbWVu
dGFsPg0KPiAtICAgIDxPdXREaXI+JChTb2x1dGlvbkRpcikkKFBsYXRmb3JtKVwkKENvbmZpZ3Vy
YXRpb25OYW1lKVw8L091dERpcj4NCj4gLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KPiAtICA8UHJvcGVy
dHlHcm91cA0KPiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnfHg2NCciPg0KPiAtICAgIDxMaW5rSW5jcmVtZW50YWw+dHJ1ZTwvTGlua0luY3JlbWVudGFs
Pg0KPiAtICA8L1Byb3BlcnR5R3JvdXA+DQo+IC0gIDxQcm9wZXJ0eUdyb3VwDQo+IENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPg0KPiAt
ICAgIDxMaW5rSW5jcmVtZW50YWw+ZmFsc2U8L0xpbmtJbmNyZW1lbnRhbD4NCj4gLSAgICA8T3V0
RGlyPiQoU29sdXRpb25EaXIpJChQbGF0Zm9ybSlcJChDb25maWd1cmF0aW9uTmFtZSlcPC9PdXRE
aXI+DQo+IC0gIDwvUHJvcGVydHlHcm91cD4NCj4gLSAgPFByb3BlcnR5R3JvdXANCj4gQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPg0KPiAt
ICAgIDxMaW5rSW5jcmVtZW50YWw+ZmFsc2U8L0xpbmtJbmNyZW1lbnRhbD4NCj4gLSAgPC9Qcm9w
ZXJ0eUdyb3VwPg0KPiAtICA8UHJvcGVydHlHcm91cD4NCj4gLSAgICA8SW5jbHVkZVBhdGg+Li5c
Li5caW5jbHVkZTskKEluY2x1ZGVQYXRoKTwvSW5jbHVkZVBhdGg+DQo+IC0gIDwvUHJvcGVydHlH
cm91cD4NCj4gLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXANCj4gQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPg0KPiAtICAgIDxDbENvbXBpbGU+
DQo+IC0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVy
Pg0KPiAtICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4NCj4gLSAgICAg
IDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4NCj4gLQ0KPiA8UHJlcHJvY2Vz
c29yRGVmaW5pdGlvbnM+V0lOMzI7X0RFQlVHO19XSU5ET1dTO19DUlRfU0VDVVJFX05PXw0KPiBX
QVJOSU5HUzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlv
bnM+DQo+IC0gICAgICA8U0RMQ2hlY2s+dHJ1ZTwvU0RMQ2hlY2s+DQo+IC0NCj4gPEFkZGl0aW9u
YWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTskKFNvbHV0aW9uRGlyKVxsaXRlYWdl
bnQ7JChTREtfSQ0KPiBOQ19QQVRIKTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9B
ZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPg0KPiAtICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11
bHRpVGhyZWFkZWREZWJ1ZzwvUnVudGltZUxpYnJhcnk+DQo+IC0gICAgICA8UHJlY29tcGlsZWRI
ZWFkZXJGaWxlIC8+DQo+IC0gICAgICA8UHJlY29tcGlsZWRIZWFkZXJPdXRwdXRGaWxlIC8+DQo+
IC0gICAgPC9DbENvbXBpbGU+DQo+IC0gICAgPExpbms+DQo+IC0gICAgICA8U3ViU3lzdGVtPldp
bmRvd3M8L1N1YlN5c3RlbT4NCj4gLSAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1
ZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPg0KPiAtDQo+IDxBZGRpdGlvbmFsRGVwZW5kZW5j
aWVzPlBvd3Jwcm9mLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGkNCj4gb25h
bERlcGVuZGVuY2llcz4NCj4gLSAgICA8L0xpbms+DQo+IC0gICAgPEN1c3RvbUJ1aWxkU3RlcD4N
Cj4gLSAgICAgIDxDb21tYW5kPnhjb3B5IC95ICQoVGFyZ2V0UGF0aCkNCj4gJChTb2x1dGlvbkRp
cilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldClcDQo+IC0gICAgICAgICAgICB4Y29weSAv
eSAkKFRhcmdldERpcilMaXRlQWdlbnQucGRiDQo+ICQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNl
XCQoUGxhdGZvcm1UYXJnZXQpXDwvQ29tbWFuZD4NCj4gLSAgICA8L0N1c3RvbUJ1aWxkU3RlcD4N
Cj4gLSAgICA8Q3VzdG9tQnVpbGRTdGVwPg0KPiAtICAgICAgPE1lc3NhZ2U+Q29weWluZyBvdXRw
dXQgZmlsZXM8L01lc3NhZ2U+DQo+IC0NCj4gPE91dHB1dHM+JChTb2x1dGlvbkRpcilcLi5ceGVu
aWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRhcmdldEZpbGVOYW1lKTsoUw0KPiBvbHV0aW9uRGly
KVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0TmFtZSkucGRiOyUoT3V0cHV0
cyk8Lw0KPiBPdXRwdXRzPg0KPiAtICAgICAgPElucHV0cz4kKFRhcmdldFBhdGgpOyQoVGFyZ2V0
RGlyKSQoVGFyZ2V0TmFtZSkucGRiPC9JbnB1dHM+DQo+IC0gICAgPC9DdXN0b21CdWlsZFN0ZXA+
DQo+IC0gIDwvSXRlbURlZmluaXRpb25Hcm91cD4NCj4gLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAN
Cj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQn
Ij4NCj4gLSAgICA8Q2xDb21waWxlPg0KPiAtICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPk5vdFVz
aW5nPC9QcmVjb21waWxlZEhlYWRlcj4NCj4gLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9X
YXJuaW5nTGV2ZWw+DQo+IC0gICAgICA8T3B0aW1pemF0aW9uPkRpc2FibGVkPC9PcHRpbWl6YXRp
b24+DQo+IC0NCj4gPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19ERUJVRztfV0lORE9X
UztfQ1JUX1NFQ1VSRV9OT18NCj4gV0FSTklOR1M7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8
L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPg0KPiAtICAgICAgPFNETENoZWNrPnRydWU8L1NETENo
ZWNrPg0KPiAtDQo+IDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7
JChTb2x1dGlvbkRpcilcbGl0ZWFnZW50OyQoU0RLX0kNCj4gTkNfUEFUSCk7JShBZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4NCj4gLSAg
ICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWc8L1J1bnRpbWVMaWJyYXJ5Pg0K
PiAtICAgICAgPFByZWNvbXBpbGVkSGVhZGVyRmlsZSAvPg0KPiAtICAgICAgPFByZWNvbXBpbGVk
SGVhZGVyT3V0cHV0RmlsZSAvPg0KPiAtICAgIDwvQ2xDb21waWxlPg0KPiAtICAgIDxMaW5rPg0K
PiAtICAgICAgPFN1YlN5c3RlbT5XaW5kb3dzPC9TdWJTeXN0ZW0+DQo+IC0gICAgICA8R2VuZXJh
dGVEZWJ1Z0luZm9ybWF0aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4NCj4gLQ0K
PiA8QWRkaXRpb25hbERlcGVuZGVuY2llcz5Qb3dycHJvZi5saWI7JShBZGRpdGlvbmFsRGVwZW5k
ZW5jaWVzKTwvQWRkaXRpDQo+IG9uYWxEZXBlbmRlbmNpZXM+DQo+IC0gICAgPC9MaW5rPg0KPiAt
ICAgIDxDdXN0b21CdWlsZFN0ZXA+DQo+IC0gICAgICA8Q29tbWFuZD54Y29weSAveSAkKFRhcmdl
dFBhdGgpDQo+ICQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpXA0K
PiAtICAgICAgICAgICAgeGNvcHkgL3kgJChUYXJnZXREaXIpTGl0ZUFnZW50LnBkYg0KPiAkKFNv
bHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KVw8L0NvbW1hbmQ+DQo+IC0g
ICAgPC9DdXN0b21CdWlsZFN0ZXA+DQo+IC0gICAgPEN1c3RvbUJ1aWxkU3RlcD4NCj4gLSAgICAg
IDxNZXNzYWdlPkNvcHlpbmcgb3V0cHV0IGZpbGVzPC9NZXNzYWdlPg0KPiAtDQo+IDxPdXRwdXRz
PiQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXRGaWxl
TmFtZSk7KFMNCj4gb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRh
cmdldE5hbWUpLnBkYjslKE91dHB1dHMpPC8NCj4gT3V0cHV0cz4NCj4gLSAgICAgIDxJbnB1dHM+
JChUYXJnZXRQYXRoKTskKFRhcmdldERpcikkKFRhcmdldE5hbWUpLnBkYjwvSW5wdXRzPg0KPiAt
ICAgIDwvQ3VzdG9tQnVpbGRTdGVwPg0KPiAtICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+DQo+IC0g
IDxJdGVtRGVmaW5pdGlvbkdyb3VwDQo+IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPg0KPiAtICAgIDxDbENvbXBpbGU+DQo+IC0gICAg
ICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPg0KPiAtICAgICAgPFByZWNvbXBp
bGVkSGVhZGVyPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4NCj4gLSAgICAgIDxPcHRpbWl6
YXRpb24+TWF4U3BlZWQ8L09wdGltaXphdGlvbj4NCj4gLSAgICAgIDxGdW5jdGlvbkxldmVsTGlu
a2luZz50cnVlPC9GdW5jdGlvbkxldmVsTGlua2luZz4NCj4gLSAgICAgIDxJbnRyaW5zaWNGdW5j
dGlvbnM+dHJ1ZTwvSW50cmluc2ljRnVuY3Rpb25zPg0KPiAtDQo+IDxQcmVwcm9jZXNzb3JEZWZp
bml0aW9ucz5XSU4zMjtOREVCVUc7X0NSVF9TRUNVUkVfTk9fV0FSTklOR1M7DQo+IF9XSU5ET1dT
OyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4NCj4g
LSAgICAgIDxTRExDaGVjaz50cnVlPC9TRExDaGVjaz4NCj4gLQ0KPiA8QWRkaXRpb25hbEluY2x1
ZGVEaXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOyQoU29sdXRpb25EaXIpXGxpdGVhZ2VudDskKFNE
S19JDQo+IE5DX1BBVEgpOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9u
YWxJbmNsdWRlRGlyZWN0b3JpZXM+DQo+IC0gICAgICA8QnJvd3NlSW5mb3JtYXRpb24+dHJ1ZTwv
QnJvd3NlSW5mb3JtYXRpb24+DQo+IC0gICAgICA8UHJlcHJvY2Vzc1RvRmlsZT5mYWxzZTwvUHJl
cHJvY2Vzc1RvRmlsZT4NCj4gLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkPC9S
dW50aW1lTGlicmFyeT4NCj4gLSAgICA8L0NsQ29tcGlsZT4NCj4gLSAgICA8TGluaz4NCj4gLSAg
ICAgIDxTdWJTeXN0ZW0+V2luZG93czwvU3ViU3lzdGVtPg0KPiAtICAgICAgPEdlbmVyYXRlRGVi
dWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+DQo+IC0gICAgICA8
RW5hYmxlQ09NREFURm9sZGluZz50cnVlPC9FbmFibGVDT01EQVRGb2xkaW5nPg0KPiAtICAgICAg
PE9wdGltaXplUmVmZXJlbmNlcz50cnVlPC9PcHRpbWl6ZVJlZmVyZW5jZXM+DQo+IC0NCj4gPEFk
ZGl0aW9uYWxEZXBlbmRlbmNpZXM+UG93cnByb2YubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2ll
cyk8L0FkZGl0aQ0KPiBvbmFsRGVwZW5kZW5jaWVzPg0KPiAtICAgIDwvTGluaz4NCj4gLSAgICA8
Q3VzdG9tQnVpbGRTdGVwPg0KPiAtICAgICAgPE1lc3NhZ2U+Q29weWluZyBvdXRwdXQgZmlsZXM8
L01lc3NhZ2U+DQo+IC0gICAgICA8Q29tbWFuZD54Y29weSAveSAkKFRhcmdldFBhdGgpDQo+ICQo
U29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpXA0KPiAtICAgICAgICAg
IHhjb3B5IC95ICQoVGFyZ2V0RGlyKUxpdGVBZ2VudC5wZGINCj4gJChTb2x1dGlvbkRpcilcLi5c
eGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldClcPC9Db21tYW5kPg0KPiAtDQo+IDxPdXRwdXRzPiQo
U29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXRGaWxlTmFt
ZSk7KFMNCj4gb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRhcmdl
dE5hbWUpLnBkYjslKE91dHB1dHMpPC8NCj4gT3V0cHV0cz4NCj4gLSAgICAgIDxJbnB1dHM+JChU
YXJnZXRQYXRoKTskKFRhcmdldERpcikkKFRhcmdldE5hbWUpLnBkYjwvSW5wdXRzPg0KPiAtICAg
IDwvQ3VzdG9tQnVpbGRTdGVwPg0KPiAtICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+DQo+IC0gIDxJ
dGVtRGVmaW5pdGlvbkdyb3VwDQo+IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4NCj4gLSAgICA8Q2xDb21waWxlPg0KPiAtICAgICAgPFdh
cm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4NCj4gLSAgICAgIDxQcmVjb21waWxlZEhl
YWRlcj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+DQo+IC0gICAgICA8T3B0aW1pemF0aW9u
Pk1heFNwZWVkPC9PcHRpbWl6YXRpb24+DQo+IC0gICAgICA8RnVuY3Rpb25MZXZlbExpbmtpbmc+
dHJ1ZTwvRnVuY3Rpb25MZXZlbExpbmtpbmc+DQo+IC0gICAgICA8SW50cmluc2ljRnVuY3Rpb25z
PnRydWU8L0ludHJpbnNpY0Z1bmN0aW9ucz4NCj4gLQ0KPiA8UHJlcHJvY2Vzc29yRGVmaW5pdGlv
bnM+V0lOMzI7TkRFQlVHO19DUlRfU0VDVVJFX05PX1dBUk5JTkdTOw0KPiBfV0lORE9XUzslKFBy
ZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+DQo+IC0gICAg
ICA8U0RMQ2hlY2s+dHJ1ZTwvU0RMQ2hlY2s+DQo+IC0NCj4gPEFkZGl0aW9uYWxJbmNsdWRlRGly
ZWN0b3JpZXM+Li5cLi5caW5jbHVkZTskKFNvbHV0aW9uRGlyKVxsaXRlYWdlbnQ7JChTREtfSQ0K
PiBOQ19QQVRIKTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5j
bHVkZURpcmVjdG9yaWVzPg0KPiAtICAgICAgPEJyb3dzZUluZm9ybWF0aW9uPnRydWU8L0Jyb3dz
ZUluZm9ybWF0aW9uPg0KPiAtICAgICAgPFByZXByb2Nlc3NUb0ZpbGU+ZmFsc2U8L1ByZXByb2Nl
c3NUb0ZpbGU+DQo+IC0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZDwvUnVudGlt
ZUxpYnJhcnk+DQo+IC0gICAgPC9DbENvbXBpbGU+DQo+IC0gICAgPExpbms+DQo+IC0gICAgICA8
U3ViU3lzdGVtPldpbmRvd3M8L1N1YlN5c3RlbT4NCj4gLSAgICAgIDxHZW5lcmF0ZURlYnVnSW5m
b3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPg0KPiAtICAgICAgPEVuYWJs
ZUNPTURBVEZvbGRpbmc+dHJ1ZTwvRW5hYmxlQ09NREFURm9sZGluZz4NCj4gLSAgICAgIDxPcHRp
bWl6ZVJlZmVyZW5jZXM+dHJ1ZTwvT3B0aW1pemVSZWZlcmVuY2VzPg0KPiAtDQo+IDxBZGRpdGlv
bmFsRGVwZW5kZW5jaWVzPlBvd3Jwcm9mLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9B
ZGRpdGkNCj4gb25hbERlcGVuZGVuY2llcz4NCj4gLSAgICA8L0xpbms+DQo+IC0gICAgPEN1c3Rv
bUJ1aWxkU3RlcD4NCj4gLSAgICAgIDxNZXNzYWdlPkNvcHlpbmcgb3V0cHV0IGZpbGVzPC9NZXNz
YWdlPg0KPiAtICAgICAgPENvbW1hbmQ+eGNvcHkgL3kgJChUYXJnZXRQYXRoKQ0KPiAkKFNvbHV0
aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KVwNCj4gLSAgICAgICAgICB4Y29w
eSAveSAkKFRhcmdldERpcilMaXRlQWdlbnQucGRiDQo+ICQoU29sdXRpb25EaXIpXC4uXHhlbmlm
YWNlXCQoUGxhdGZvcm1UYXJnZXQpXDwvQ29tbWFuZD4NCj4gLQ0KPiA8T3V0cHV0cz4kKFNvbHV0
aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0RmlsZU5hbWUpOyhT
DQo+IG9sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXROYW1l
KS5wZGI7JShPdXRwdXRzKTwvDQo+IE91dHB1dHM+DQo+IC0gICAgICA8SW5wdXRzPiQoVGFyZ2V0
UGF0aCk7JChUYXJnZXREaXIpJChUYXJnZXROYW1lKS5wZGI8L0lucHV0cz4NCj4gLSAgICA8L0N1
c3RvbUJ1aWxkU3RlcD4NCj4gLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPg0KPiAtICA8SXRlbUdy
b3VwPg0KPiAtICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1YmFnZW50
XGVycm9ycy5jcHAiPg0KPiAtICAgICAgPFByZWNvbXBpbGVkSGVhZGVyDQo+IENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPk5vdFVzaW5n
PC9Qcg0KPiBlY29tcGlsZWRIZWFkZXI+DQo+IC0gICAgICA8UHJlY29tcGlsZWRIZWFkZXINCj4g
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCci
Pk5vdFVzaW5nPC9QcmVjDQo+IG9tcGlsZWRIZWFkZXI+DQo+IC0gICAgPC9DbENvbXBpbGU+DQo+
IC0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcc3RkYWZ4
LmNwcCI+DQo+IC0gICAgICA8UHJlY29tcGlsZWRIZWFkZXINCj4gQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Tm90VXNpbmc8L1ByDQo+
IGVjb21waWxlZEhlYWRlcj4NCj4gLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcg0KPiBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Tm90VXNp
bmc8L1ByZWMNCj4gb21waWxlZEhlYWRlcj4NCj4gLSAgICA8L0NsQ29tcGlsZT4NCj4gLSAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2VudFxXbWlBY2Nlc3Nvci5j
cHAiPg0KPiAtICAgICAgPFByZWNvbXBpbGVkSGVhZGVyDQo+IENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj5DcmVhdGU8L1ByZWNvDQo+IG1w
aWxlZEhlYWRlcj4NCj4gLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcg0KPiBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPkNyZWF0ZTwvUHJlY29t
cA0KPiBpbGVkSGVhZGVyPg0KPiAtICAgICAgPFByZWNvbXBpbGVkSGVhZGVyDQo+IENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPk5vdFVz
aW5nPC9Qcg0KPiBlY29tcGlsZWRIZWFkZXI+DQo+IC0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIN
Cj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2
NCciPk5vdFVzaW5nPC9QcmVjDQo+IG9tcGlsZWRIZWFkZXI+DQo+IC0gICAgPC9DbENvbXBpbGU+
DQo+IC0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcWFNB
Y2Nlc3Nvci5jcHAiPg0KPiAtICAgICAgPFByZWNvbXBpbGVkSGVhZGVyDQo+IENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj5DcmVhdGU8L1By
ZWNvDQo+IG1waWxlZEhlYWRlcj4NCj4gLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcg0KPiBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPkNyZWF0
ZTwvUHJlY29tcA0KPiBpbGVkSGVhZGVyPg0KPiAtICAgICAgPFByZWNvbXBpbGVkSGVhZGVyDQo+
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4z
MiciPk5vdFVzaW5nPC9Qcg0KPiBlY29tcGlsZWRIZWFkZXI+DQo+IC0gICAgICA8UHJlY29tcGls
ZWRIZWFkZXINCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfHg2NCciPk5vdFVzaW5nPC9QcmVjDQo+IG9tcGlsZWRIZWFkZXI+DQo+IC0gICAgPC9D
bENvbXBpbGU+DQo+IC0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHVi
YWdlbnRcWFNlcnZpY2UuY3BwIj4NCj4gLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcg0KPiBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Q3Jl
YXRlPC9QcmVjbw0KPiBtcGlsZWRIZWFkZXI+DQo+IC0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIN
Cj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQn
Ij5DcmVhdGU8L1ByZWNvbXANCj4gaWxlZEhlYWRlcj4NCj4gLSAgICAgIDxQcmVjb21waWxlZEhl
YWRlcg0KPiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2V8V2luMzInIj5Ob3RVc2luZzwvUHINCj4gZWNvbXBpbGVkSGVhZGVyPg0KPiAtICAgICAgPFBy
ZWNvbXBpbGVkSGVhZGVyDQo+IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZXx4NjQnIj5Ob3RVc2luZzwvUHJlYw0KPiBvbXBpbGVkSGVhZGVyPg0KPiAt
ICAgICAgPFByZXByb2Nlc3NUb0ZpbGUNCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPmZhbHNlPC9QcmVwcm9jDQo+IGVzc1RvRmlsZT4N
Cj4gLSAgICA8L0NsQ29tcGlsZT4NCj4gLSAgPC9JdGVtR3JvdXA+DQo+IC0gIDxJdGVtR3JvdXA+
DQo+IC0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcc3Rk
YWZ4LmgiIC8+DQo+IC0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHVi
YWdlbnRcV21pQWNjZXNzb3IuaCIgLz4NCj4gLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4u
XHNyY1x3aW4zMnN0dWJhZ2VudFxYU0FjY2Vzc29yLmgiIC8+DQo+IC0gICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcWFNlcnZpY2UuaCIgLz4NCj4gLSAgPC9J
dGVtR3JvdXA+DQo+IC0gIDxJdGVtR3JvdXA+DQo+IC0gICAgPEN1c3RvbUJ1aWxkIEluY2x1ZGU9
Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2VudFxtZXNzYWdlcy5tYyI+DQo+IC0gICAgICA8RmlsZVR5
cGU+RG9jdW1lbnQ8L0ZpbGVUeXBlPg0KPiAtICAgICAgPENvbW1hbmQNCj4gQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPm1jDQo+ICUoRnVs
bFBhdGgpPC9Db21tYW5kPg0KPiAtICAgICAgPENvbW1hbmQNCj4gQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj5tYw0KPiAlKEZ1bGxQYXRoKTwv
Q29tbWFuZD4NCj4gLSAgICAgIDxPdXRwdXRzDQo+IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4lKEZpbGVuYW1lKS5yYw0KPiA7JShGaWxl
bmFtZSkuaDwvT3V0cHV0cz4NCj4gLSAgICAgIDxPdXRwdXRzDQo+IENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+JShGaWxlbmFtZSkucmM7JQ0K
PiAoRmlsZW5hbWUpLmg8L091dHB1dHM+DQo+IC0gICAgICA8Q29tbWFuZA0KPiBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj5tYw0KPiAl
KEZ1bGxQYXRoKTwvQ29tbWFuZD4NCj4gLSAgICAgIDxDb21tYW5kDQo+IENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5tYw0KPiAlKEZ1bGxQ
YXRoKTwvQ29tbWFuZD4NCj4gLSAgICAgIDxPdXRwdXRzDQo+IENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPiUoRmlsZW5hbWUpLg0KPiBy
YzslKEZpbGVuYW1lKS5oPC9PdXRwdXRzPg0KPiAtICAgICAgPE91dHB1dHMNCj4gQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPiUoRmlsZW5h
bWUpLnJjOw0KPiAlKEZpbGVuYW1lKS5oPC9PdXRwdXRzPg0KPiAtICAgIDwvQ3VzdG9tQnVpbGQ+
DQo+IC0gIDwvSXRlbUdyb3VwPg0KPiAtICA8SXRlbUdyb3VwPg0KPiAtICAgIDxSZXNvdXJjZUNv
bXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1YmFnZW50XHczMnhhZ2VudC5yYyIgLz4N
Cj4gLSAgPC9JdGVtR3JvdXA+DQo+IC0gIDxJdGVtR3JvdXA+DQo+IC0gICAgPEltYWdlIEluY2x1
ZGU9Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2VudFx4ZW4uaWNvIiAvPg0KPiAtICA8L0l0ZW1Hcm91
cD4NCj4gLSAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAu
dGFyZ2V0cyIgLz4NCj4gLSAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4N
Cj4gLSAgPC9JbXBvcnRHcm91cD4NCj4gLTwvUHJvamVjdD4NCj4gXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlDQo+IGRpZmYgLS1naXQgYS92czIwMTMvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hw
cm9qLnVzZXINCj4gYi92czIwMTMvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qLnVzZXINCj4g
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDUwZjNjYmUuLjAwMDAwMDANCj4gLS0t
IGEvdnMyMDEzL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvai51c2VyDQo+ICsrKyAvZGV2L251
bGwNCj4gQEAgLTEsNCArMCwwIEBADQo+IC08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1
dGYtOCI/Pg0KPiAtPFByb2plY3QgVG9vbHNWZXJzaW9uPSI0LjAiDQo+IHhtbG5zPSJodHRwOi8v
c2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPg0KPiAtICA8UHJv
cGVydHlHcm91cCAvPg0KPiAtPC9Qcm9qZWN0Pg0KPiBcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUNCj4gZGlmZiAtLWdpdCBhL3ZzMjAxMy94ZW5hZ2VudC94ZW5hZ2VudC52Y3hwcm9qDQo+IGIv
dnMyMDEzL3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2oNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQN
Cj4gaW5kZXggMDAwMDAwMC4uNDhlZjNmYw0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL3ZzMjAx
My94ZW5hZ2VudC94ZW5hZ2VudC52Y3hwcm9qDQo+IEBAIC0wLDAgKzEsMjIxIEBADQo+ICs8P3ht
bCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/Pg0KPiArPFByb2plY3QgRGVmYXVsdFRh
cmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQuMCINCj4geG1sbnM9Imh0dHA6Ly9zY2hlbWFz
Lm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+DQo+ICsgIDxJdGVtR3JvdXAg
TGFiZWw9IlByb2plY3RDb25maWd1cmF0aW9ucyI+DQo+ICsgICAgPFByb2plY3RDb25maWd1cmF0
aW9uIEluY2x1ZGU9IkRlYnVnfFdpbjMyIj4NCj4gKyAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVn
PC9Db25maWd1cmF0aW9uPg0KPiArICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4NCj4g
KyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPg0KPiArICAgIDxQcm9qZWN0Q29uZmlndXJhdGlv
biBJbmNsdWRlPSJEZWJ1Z3x4NjQiPg0KPiArICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0Nv
bmZpZ3VyYXRpb24+DQo+ICsgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4NCj4gKyAgICA8
L1Byb2plY3RDb25maWd1cmF0aW9uPg0KPiArICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNs
dWRlPSJSZWxlYXNlfFdpbjMyIj4NCj4gKyAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0Nv
bmZpZ3VyYXRpb24+DQo+ICsgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPg0KPiArICAg
IDwvUHJvamVjdENvbmZpZ3VyYXRpb24+DQo+ICsgICAgPFByb2plY3RDb25maWd1cmF0aW9uIElu
Y2x1ZGU9IlJlbGVhc2V8eDY0Ij4NCj4gKyAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0Nv
bmZpZ3VyYXRpb24+DQo+ICsgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4NCj4gKyAgICA8
L1Byb2plY3RDb25maWd1cmF0aW9uPg0KPiArICA8L0l0ZW1Hcm91cD4NCj4gKyAgPFByb3BlcnR5
R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPg0KPiArICAgIDxQcm9qZWN0R3VpZD57MkU2MUQyQ0MtODY1
RS00NDJDLThDODMtDQo+IEI4REFGRDdCQkQzQn08L1Byb2plY3RHdWlkPg0KPiArICAgIDxLZXl3
b3JkPldpbjMyUHJvajwvS2V5d29yZD4NCj4gKyAgICA8Um9vdE5hbWVzcGFjZT54ZW5hZ2VudDwv
Um9vdE5hbWVzcGFjZT4NCj4gKyAgICA8UHJvamVjdE5hbWU+eGVuYWdlbnQ8L1Byb2plY3ROYW1l
Pg0KPiArICA8L1Byb3BlcnR5R3JvdXA+DQo+ICsgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1Rhcmdl
dHNQYXRoKVxNaWNyb3NvZnQuQ3BwLkRlZmF1bHQucHJvcHMiIC8+DQo+ICsgIDxQcm9wZXJ0eUdy
b3VwDQo+IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
V2luMzInIg0KPiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+DQo+ICsgICAgPENvbmZpZ3VyYXRpb25U
eXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4NCj4gKyAgICA8VXNlRGVidWdMaWJy
YXJpZXM+dHJ1ZTwvVXNlRGVidWdMaWJyYXJpZXM+DQo+ICsgICAgPFBsYXRmb3JtVG9vbHNldD5X
aW5kb3dzQXBwbGljYXRpb25Gb3JEcml2ZXJzOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+DQo+ICsgICAg
PENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4NCj4gKyAgPC9Qcm9wZXJ0eUdy
b3VwPg0KPiArICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfHg2NCciDQo+IExhYmVsPSJDb25maWd1cmF0aW9uIj4NCj4gKyAg
ICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPg0KPiAr
ICAgIDxVc2VEZWJ1Z0xpYnJhcmllcz50cnVlPC9Vc2VEZWJ1Z0xpYnJhcmllcz4NCj4gKyAgICA8
UGxhdGZvcm1Ub29sc2V0PldpbmRvd3NBcHBsaWNhdGlvbkZvckRyaXZlcnM4LjE8L1BsYXRmb3Jt
VG9vbHNldD4NCj4gKyAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0Pg0K
PiArICA8L1Byb3BlcnR5R3JvdXA+DQo+ICsgIDxQcm9wZXJ0eUdyb3VwDQo+IENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciDQo+IExhYmVs
PSJDb25maWd1cmF0aW9uIj4NCj4gKyAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248
L0NvbmZpZ3VyYXRpb25UeXBlPg0KPiArICAgIDxVc2VEZWJ1Z0xpYnJhcmllcz5mYWxzZTwvVXNl
RGVidWdMaWJyYXJpZXM+DQo+ICsgICAgPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dzQXBwbGljYXRp
b25Gb3JEcml2ZXJzOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+DQo+ICsgICAgPFdob2xlUHJvZ3JhbU9w
dGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+DQo+ICsgICAgPENoYXJh
Y3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4NCj4gKyAgPC9Qcm9wZXJ0eUdyb3VwPg0K
PiArICA8UHJvcGVydHlHcm91cA0KPiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8eDY0JyINCj4gTGFiZWw9IkNvbmZpZ3VyYXRpb24iPg0KPiArICAg
IDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+DQo+ICsg
ICAgPFVzZURlYnVnTGlicmFyaWVzPmZhbHNlPC9Vc2VEZWJ1Z0xpYnJhcmllcz4NCj4gKyAgICA8
UGxhdGZvcm1Ub29sc2V0PldpbmRvd3NBcHBsaWNhdGlvbkZvckRyaXZlcnM4LjE8L1BsYXRmb3Jt
VG9vbHNldD4NCj4gKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJv
Z3JhbU9wdGltaXphdGlvbj4NCj4gKyAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFj
dGVyU2V0Pg0KPiArICA8L1Byb3BlcnR5R3JvdXA+DQo+ICsgIDxJbXBvcnQgUHJvamVjdD0iJChW
Q1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPg0KPiArICA8SW1wb3J0R3JvdXAg
TGFiZWw9IkV4dGVuc2lvblNldHRpbmdzIj4NCj4gKyAgPC9JbXBvcnRHcm91cD4NCj4gKyAgPElt
cG9ydEdyb3VwIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyINCj4gQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPg0KPiArICAgIDxJbXBvcnQgUHJv
amVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3Bz
Ig0KPiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBs
YXRmb3JtKS51c2VyLnByb3BzJykiDQo+IExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4N
Cj4gKyAgPC9JbXBvcnRHcm91cD4NCj4gKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyINCj4gTGFiZWw9IlByb3BlcnR5
U2hlZXRzIj4NCj4gKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29m
dC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyINCj4gQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNl
clJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIg0KPiBMYWJl
bD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+DQo+ICsgIDwvSW1wb3J0R3JvdXA+DQo+ICsgIDxJ
bXBvcnRHcm91cCBMYWJlbD0iUHJvcGVydHlTaGVldHMiDQo+IENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPg0KPiArICAgIDxJbXBvcnQg
UHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnBy
b3BzIg0KPiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4k
KFBsYXRmb3JtKS51c2VyLnByb3BzJykiDQo+IExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIg
Lz4NCj4gKyAgPC9JbXBvcnRHcm91cD4NCj4gKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIg0KPiBMYWJlbD0iUHJv
cGVydHlTaGVldHMiPg0KPiArICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWlj
cm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIg0KPiBDb25kaXRpb249ImV4aXN0cygn
JChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiDQo+
IExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4NCj4gKyAgPC9JbXBvcnRHcm91cD4NCj4g
KyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IlVzZXJNYWNyb3MiIC8+DQo+ICsgIDxQcm9wZXJ0eUdy
b3VwDQo+IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
V2luMzInIj4NCj4gKyAgICA8TGlua0luY3JlbWVudGFsPnRydWU8L0xpbmtJbmNyZW1lbnRhbD4N
Cj4gKyAgICA8T3V0RGlyPiQoU29sdXRpb25EaXIpJChQbGF0Zm9ybSlcJChDb25maWd1cmF0aW9u
TmFtZSlcPC9PdXREaXI+DQo+ICsgIDwvUHJvcGVydHlHcm91cD4NCj4gKyAgPFByb3BlcnR5R3Jv
dXANCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4
NjQnIj4NCj4gKyAgICA8TGlua0luY3JlbWVudGFsPnRydWU8L0xpbmtJbmNyZW1lbnRhbD4NCj4g
KyAgPC9Qcm9wZXJ0eUdyb3VwPg0KPiArICA8UHJvcGVydHlHcm91cA0KPiBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4NCj4gKyAgICA8
TGlua0luY3JlbWVudGFsPmZhbHNlPC9MaW5rSW5jcmVtZW50YWw+DQo+ICsgICAgPE91dERpcj4k
KFNvbHV0aW9uRGlyKSQoUGxhdGZvcm0pXCQoQ29uZmlndXJhdGlvbk5hbWUpXDwvT3V0RGlyPg0K
PiArICA8L1Byb3BlcnR5R3JvdXA+DQo+ICsgIDxQcm9wZXJ0eUdyb3VwDQo+IENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4NCj4gKyAgICA8
TGlua0luY3JlbWVudGFsPmZhbHNlPC9MaW5rSW5jcmVtZW50YWw+DQo+ICsgIDwvUHJvcGVydHlH
cm91cD4NCj4gKyAgPFByb3BlcnR5R3JvdXA+DQo+ICsgICAgPEluY2x1ZGVQYXRoPi4uXC4uXGlu
Y2x1ZGU7JChJbmNsdWRlUGF0aCk8L0luY2x1ZGVQYXRoPg0KPiArICA8L1Byb3BlcnR5R3JvdXA+
DQo+ICsgIDxJdGVtRGVmaW5pdGlvbkdyb3VwDQo+IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4NCj4gKyAgICA8Q2xDb21waWxlPg0KPiAr
ICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4NCj4g
KyAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+DQo+ICsgICAgICA8T3B0
aW1pemF0aW9uPkRpc2FibGVkPC9PcHRpbWl6YXRpb24+DQo+ICsNCj4gPFByZXByb2Nlc3NvckRl
ZmluaXRpb25zPldJTjMyO19ERUJVRztfV0lORE9XUztfQ1JUX1NFQ1VSRV9OT18NCj4gV0FSTklO
R1M7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPg0K
PiArICAgICAgPFNETENoZWNrPnRydWU8L1NETENoZWNrPg0KPiArDQo+IDxBZGRpdGlvbmFsSW5j
bHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7JChTb2x1dGlvbkRpcilceGVuYWdlbnQ7JChT
REtfSQ0KPiBOQ19QQVRIKTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlv
bmFsSW5jbHVkZURpcmVjdG9yaWVzPg0KPiArICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhy
ZWFkZWREZWJ1ZzwvUnVudGltZUxpYnJhcnk+DQo+ICsgICAgICA8UHJlY29tcGlsZWRIZWFkZXJG
aWxlIC8+DQo+ICsgICAgICA8UHJlY29tcGlsZWRIZWFkZXJPdXRwdXRGaWxlIC8+DQo+ICsgICAg
PC9DbENvbXBpbGU+DQo+ICsgICAgPExpbms+DQo+ICsgICAgICA8U3ViU3lzdGVtPldpbmRvd3M8
L1N1YlN5c3RlbT4NCj4gKyAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2Vu
ZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPg0KPiArDQo+IDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPlBv
d3Jwcm9mLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGkNCj4gb25hbERlcGVu
ZGVuY2llcz4NCj4gKyAgICA8L0xpbms+DQo+ICsgICAgPEN1c3RvbUJ1aWxkU3RlcD4NCj4gKyAg
ICAgIDxDb21tYW5kPnhjb3B5IC95ICQoVGFyZ2V0UGF0aCkNCj4gJChTb2x1dGlvbkRpcilcLi5c
eGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldClcDQo+ICsgICAgICAgICAgICB4Y29weSAveSAkKFRh
cmdldERpcil4ZW5hZ2VudC5wZGINCj4gJChTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0
Zm9ybVRhcmdldClcPC9Db21tYW5kPg0KPiArICAgIDwvQ3VzdG9tQnVpbGRTdGVwPg0KPiArICAg
IDxDdXN0b21CdWlsZFN0ZXA+DQo+ICsgICAgICA8TWVzc2FnZT5Db3B5aW5nIG91dHB1dCBmaWxl
czwvTWVzc2FnZT4NCj4gKw0KPiA8T3V0cHV0cz4kKFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwk
KFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0RmlsZU5hbWUpOyhTDQo+IG9sdXRpb25EaXIpXC4uXHhl
bmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXROYW1lKS5wZGI7JShPdXRwdXRzKTwvDQo+
IE91dHB1dHM+DQo+ICsgICAgICA8SW5wdXRzPiQoVGFyZ2V0UGF0aCk7JChUYXJnZXREaXIpJChU
YXJnZXROYW1lKS5wZGI8L0lucHV0cz4NCj4gKyAgICA8L0N1c3RvbUJ1aWxkU3RlcD4NCj4gKyAg
PC9JdGVtRGVmaW5pdGlvbkdyb3VwPg0KPiArICA8SXRlbURlZmluaXRpb25Hcm91cA0KPiBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPg0KPiAr
ICAgIDxDbENvbXBpbGU+DQo+ICsgICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Tm90VXNpbmc8L1By
ZWNvbXBpbGVkSGVhZGVyPg0KPiArICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdM
ZXZlbD4NCj4gKyAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4NCj4g
Kw0KPiA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X0RFQlVHO19XSU5ET1dTO19DUlRf
U0VDVVJFX05PXw0KPiBXQVJOSU5HUzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJv
Y2Vzc29yRGVmaW5pdGlvbnM+DQo+ICsgICAgICA8U0RMQ2hlY2s+dHJ1ZTwvU0RMQ2hlY2s+DQo+
ICsNCj4gPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTskKFNvbHV0
aW9uRGlyKVx4ZW5hZ2VudDskKFNES19JDQo+IE5DX1BBVEgpOyUoQWRkaXRpb25hbEluY2x1ZGVE
aXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+DQo+ICsgICAgICA8UnVu
dGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERlYnVnPC9SdW50aW1lTGlicmFyeT4NCj4gKyAgICAg
IDxQcmVjb21waWxlZEhlYWRlckZpbGUgLz4NCj4gKyAgICAgIDxQcmVjb21waWxlZEhlYWRlck91
dHB1dEZpbGUgLz4NCj4gKyAgICA8L0NsQ29tcGlsZT4NCj4gKyAgICA8TGluaz4NCj4gKyAgICAg
IDxTdWJTeXN0ZW0+V2luZG93czwvU3ViU3lzdGVtPg0KPiArICAgICAgPEdlbmVyYXRlRGVidWdJ
bmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+DQo+ICsNCj4gPEFkZGl0
aW9uYWxEZXBlbmRlbmNpZXM+UG93cnByb2YubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8
L0FkZGl0aQ0KPiBvbmFsRGVwZW5kZW5jaWVzPg0KPiArICAgIDwvTGluaz4NCj4gKyAgICA8Q3Vz
dG9tQnVpbGRTdGVwPg0KPiArICAgICAgPENvbW1hbmQ+eGNvcHkgL3kgJChUYXJnZXRQYXRoKQ0K
PiAkKFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KVwNCj4gKyAgICAg
ICAgICAgIHhjb3B5IC95ICQoVGFyZ2V0RGlyKXhlbmFnZW50LnBkYg0KPiAkKFNvbHV0aW9uRGly
KVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KVw8L0NvbW1hbmQ+DQo+ICsgICAgPC9DdXN0
b21CdWlsZFN0ZXA+DQo+ICsgICAgPEN1c3RvbUJ1aWxkU3RlcD4NCj4gKyAgICAgIDxNZXNzYWdl
PkNvcHlpbmcgb3V0cHV0IGZpbGVzPC9NZXNzYWdlPg0KPiArDQo+IDxPdXRwdXRzPiQoU29sdXRp
b25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXRGaWxlTmFtZSk7KFMN
Cj4gb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRhcmdldE5hbWUp
LnBkYjslKE91dHB1dHMpPC8NCj4gT3V0cHV0cz4NCj4gKyAgICAgIDxJbnB1dHM+JChUYXJnZXRQ
YXRoKTskKFRhcmdldERpcikkKFRhcmdldE5hbWUpLnBkYjwvSW5wdXRzPg0KPiArICAgIDwvQ3Vz
dG9tQnVpbGRTdGVwPg0KPiArICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+DQo+ICsgIDxJdGVtRGVm
aW5pdGlvbkdyb3VwDQo+IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZXxXaW4zMiciPg0KPiArICAgIDxDbENvbXBpbGU+DQo+ICsgICAgICA8V2Fybmlu
Z0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPg0KPiArICAgICAgPFByZWNvbXBpbGVkSGVhZGVy
Pk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4NCj4gKyAgICAgIDxPcHRpbWl6YXRpb24+TWF4
U3BlZWQ8L09wdGltaXphdGlvbj4NCj4gKyAgICAgIDxGdW5jdGlvbkxldmVsTGlua2luZz50cnVl
PC9GdW5jdGlvbkxldmVsTGlua2luZz4NCj4gKyAgICAgIDxJbnRyaW5zaWNGdW5jdGlvbnM+dHJ1
ZTwvSW50cmluc2ljRnVuY3Rpb25zPg0KPiArDQo+IDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5X
SU4zMjtOREVCVUc7X0NSVF9TRUNVUkVfTk9fV0FSTklOR1M7DQo+IF9XSU5ET1dTOyUoUHJlcHJv
Y2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4NCj4gKyAgICAgIDxT
RExDaGVjaz50cnVlPC9TRExDaGVjaz4NCj4gKw0KPiA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcz4uLlwuLlxpbmNsdWRlOyQoU29sdXRpb25EaXIpXHhlbmFnZW50OyQoU0RLX0kNCj4gTkNf
UEFUSCk7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVE
aXJlY3Rvcmllcz4NCj4gKyAgICAgIDxCcm93c2VJbmZvcm1hdGlvbj50cnVlPC9Ccm93c2VJbmZv
cm1hdGlvbj4NCj4gKyAgICAgIDxQcmVwcm9jZXNzVG9GaWxlPmZhbHNlPC9QcmVwcm9jZXNzVG9G
aWxlPg0KPiArICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWQ8L1J1bnRpbWVMaWJy
YXJ5Pg0KPiArICAgIDwvQ2xDb21waWxlPg0KPiArICAgIDxMaW5rPg0KPiArICAgICAgPFN1YlN5
c3RlbT5XaW5kb3dzPC9TdWJTeXN0ZW0+DQo+ICsgICAgICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0
aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4NCj4gKyAgICAgIDxFbmFibGVDT01E
QVRGb2xkaW5nPnRydWU8L0VuYWJsZUNPTURBVEZvbGRpbmc+DQo+ICsgICAgICA8T3B0aW1pemVS
ZWZlcmVuY2VzPnRydWU8L09wdGltaXplUmVmZXJlbmNlcz4NCj4gKw0KPiA8QWRkaXRpb25hbERl
cGVuZGVuY2llcz5Qb3dycHJvZi5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRp
DQo+IG9uYWxEZXBlbmRlbmNpZXM+DQo+ICsgICAgPC9MaW5rPg0KPiArICAgIDxDdXN0b21CdWls
ZFN0ZXA+DQo+ICsgICAgICA8TWVzc2FnZT5Db3B5aW5nIG91dHB1dCBmaWxlczwvTWVzc2FnZT4N
Cj4gKyAgICAgIDxDb21tYW5kPnhjb3B5IC95ICQoVGFyZ2V0UGF0aCkNCj4gJChTb2x1dGlvbkRp
cilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldClcDQo+ICsgICAgICAgICAgeGNvcHkgL3kg
JChUYXJnZXREaXIpeGVuYWdlbnQucGRiDQo+ICQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQo
UGxhdGZvcm1UYXJnZXQpXDwvQ29tbWFuZD4NCj4gKw0KPiA8T3V0cHV0cz4kKFNvbHV0aW9uRGly
KVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0RmlsZU5hbWUpOyhTDQo+IG9s
dXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXROYW1lKS5wZGI7
JShPdXRwdXRzKTwvDQo+IE91dHB1dHM+DQo+ICsgICAgICA8SW5wdXRzPiQoVGFyZ2V0UGF0aCk7
JChUYXJnZXREaXIpJChUYXJnZXROYW1lKS5wZGI8L0lucHV0cz4NCj4gKyAgICA8L0N1c3RvbUJ1
aWxkU3RlcD4NCj4gKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPg0KPiArICA8SXRlbURlZmluaXRp
b25Hcm91cA0KPiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8eDY0JyI+DQo+ICsgICAgPENsQ29tcGlsZT4NCj4gKyAgICAgIDxXYXJuaW5nTGV2ZWw+
TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+DQo+ICsgICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Tm90VXNp
bmc8L1ByZWNvbXBpbGVkSGVhZGVyPg0KPiArICAgICAgPE9wdGltaXphdGlvbj5NYXhTcGVlZDwv
T3B0aW1pemF0aW9uPg0KPiArICAgICAgPEZ1bmN0aW9uTGV2ZWxMaW5raW5nPnRydWU8L0Z1bmN0
aW9uTGV2ZWxMaW5raW5nPg0KPiArICAgICAgPEludHJpbnNpY0Z1bmN0aW9ucz50cnVlPC9JbnRy
aW5zaWNGdW5jdGlvbnM+DQo+ICsNCj4gPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO05E
RUJVRztfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUzsNCj4gX1dJTkRPV1M7JShQcmVwcm9jZXNzb3JE
ZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPg0KPiArICAgICAgPFNETENoZWNr
PnRydWU8L1NETENoZWNrPg0KPiArDQo+IDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4u
XC4uXGluY2x1ZGU7JChTb2x1dGlvbkRpcilceGVuYWdlbnQ7JChTREtfSQ0KPiBOQ19QQVRIKTsl
KEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9y
aWVzPg0KPiArICAgICAgPEJyb3dzZUluZm9ybWF0aW9uPnRydWU8L0Jyb3dzZUluZm9ybWF0aW9u
Pg0KPiArICAgICAgPFByZXByb2Nlc3NUb0ZpbGU+ZmFsc2U8L1ByZXByb2Nlc3NUb0ZpbGU+DQo+
ICsgICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZDwvUnVudGltZUxpYnJhcnk+DQo+
ICsgICAgPC9DbENvbXBpbGU+DQo+ICsgICAgPExpbms+DQo+ICsgICAgICA8U3ViU3lzdGVtPldp
bmRvd3M8L1N1YlN5c3RlbT4NCj4gKyAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1
ZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPg0KPiArICAgICAgPEVuYWJsZUNPTURBVEZvbGRp
bmc+dHJ1ZTwvRW5hYmxlQ09NREFURm9sZGluZz4NCj4gKyAgICAgIDxPcHRpbWl6ZVJlZmVyZW5j
ZXM+dHJ1ZTwvT3B0aW1pemVSZWZlcmVuY2VzPg0KPiArDQo+IDxBZGRpdGlvbmFsRGVwZW5kZW5j
aWVzPlBvd3Jwcm9mLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGkNCj4gb25h
bERlcGVuZGVuY2llcz4NCj4gKyAgICA8L0xpbms+DQo+ICsgICAgPEN1c3RvbUJ1aWxkU3RlcD4N
Cj4gKyAgICAgIDxNZXNzYWdlPkNvcHlpbmcgb3V0cHV0IGZpbGVzPC9NZXNzYWdlPg0KPiArICAg
ICAgPENvbW1hbmQ+eGNvcHkgL3kgJChUYXJnZXRQYXRoKQ0KPiAkKFNvbHV0aW9uRGlyKVwuLlx4
ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KVwNCj4gKyAgICAgICAgICB4Y29weSAveSAkKFRhcmdl
dERpcil4ZW5hZ2VudC5wZGINCj4gJChTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9y
bVRhcmdldClcPC9Db21tYW5kPg0KPiArDQo+IDxPdXRwdXRzPiQoU29sdXRpb25EaXIpXC4uXHhl
bmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXRGaWxlTmFtZSk7KFMNCj4gb2x1dGlvbkRp
cilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRhcmdldE5hbWUpLnBkYjslKE91dHB1
dHMpPC8NCj4gT3V0cHV0cz4NCj4gKyAgICAgIDxJbnB1dHM+JChUYXJnZXRQYXRoKTskKFRhcmdl
dERpcikkKFRhcmdldE5hbWUpLnBkYjwvSW5wdXRzPg0KPiArICAgIDwvQ3VzdG9tQnVpbGRTdGVw
Pg0KPiArICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+DQo+ICsgIDxJdGVtR3JvdXA+DQo+ICsgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuYWdlbnRcc2VydmljZS5jcHAiLz4NCj4g
KyAgPC9JdGVtR3JvdXA+DQo+ICsgIDxJdGVtR3JvdXA+DQo+ICsgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlwuLlxzcmNceGVuYWdlbnRcc2VydmljZS5oIiAvPg0KPiArICA8L0l0ZW1Hcm91cD4N
Cj4gKyAgPEl0ZW1Hcm91cD4NCj4gKyAgICA8Q3VzdG9tQnVpbGQgSW5jbHVkZT0iLi5cLi5cc3Jj
XHhlbmFnZW50XHhlbmFnZW50Lm1jIj4NCj4gKyAgICAgIDxGaWxlVHlwZT5Eb2N1bWVudDwvRmls
ZVR5cGU+DQo+ICsgICAgICA8Q29tbWFuZD5tYyAlKEZ1bGxQYXRoKTwvQ29tbWFuZD4NCj4gKyAg
ICAgIDxPdXRwdXRzPiUoRmlsZW5hbWUpLnJjOyUoRmlsZW5hbWUpLmg8L091dHB1dHM+DQo+ICsg
ICAgPC9DdXN0b21CdWlsZD4NCj4gKyAgPC9JdGVtR3JvdXA+DQo+ICsgIDxJdGVtR3JvdXA+DQo+
ICsgICAgPFJlc291cmNlQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuYWdlbnRceGVuYWdl
bnQucmMiIC8+DQo+ICsgIDwvSXRlbUdyb3VwPg0KPiArICA8SXRlbUdyb3VwPg0KPiArICAgIDxJ
bWFnZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuYWdlbnRceGVuLmljbyIgLz4NCj4gKyAgPC9JdGVt
R3JvdXA+DQo+ICsgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQu
Q3BwLnRhcmdldHMiIC8+DQo+ICsgIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFyZ2V0
cyI+DQo+ICsgIDwvSW1wb3J0R3JvdXA+DQo+ICs8L1Byb2plY3Q+DQo+IFwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQ0KPiBkaWZmIC0tZ2l0IGEvdnMyMDEzL3hlbmFnZW50L3hlbmFnZW50LnZj
eHByb2oudXNlcg0KPiBiL3ZzMjAxMy94ZW5hZ2VudC94ZW5hZ2VudC52Y3hwcm9qLnVzZXINCj4g
bmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMC4uNTBmM2NiZQ0KPiAtLS0gL2Rl
di9udWxsDQo+ICsrKyBiL3ZzMjAxMy94ZW5hZ2VudC94ZW5hZ2VudC52Y3hwcm9qLnVzZXINCj4g
QEAgLTAsMCArMSw0IEBADQo+ICs8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/
Pg0KPiArPFByb2plY3QgVG9vbHNWZXJzaW9uPSI0LjAiDQo+IHhtbG5zPSJodHRwOi8vc2NoZW1h
cy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPg0KPiArICA8UHJvcGVydHlH
cm91cCAvPg0KPiArPC9Qcm9qZWN0Pg0KPiBcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUNCj4g
ZGlmZiAtLWdpdCBhL3ZzMjAxMy94ZW5pZmFjZS5zbG4gYi92czIwMTMveGVuaWZhY2Uuc2xuDQo+
IGluZGV4IDQxM2I4NmEuLjEwNjhhM2EgMTAwNjQ0DQo+IC0tLSBhL3ZzMjAxMy94ZW5pZmFjZS5z
bG4NCj4gKysrIGIvdnMyMDEzL3hlbmlmYWNlLnNsbg0KPiBAQCAtOSw3ICs5LDcgQEAgUHJvamVj
dCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9DQo+ICJ4ZW5pZmFj
ZSIsICJ4ZW5pZmFjZVx4ZW5pZmENCj4gIAkJezg1QzczMUFELTJFQTItNDA0OS1BNTQyLUQyRDM4
RURFOTM4Q30gPSB7ODVDNzMxQUQtDQo+IDJFQTItNDA0OS1BNTQyLUQyRDM4RURFOTM4Q30NCj4g
IAlFbmRQcm9qZWN0U2VjdGlvbg0KPiAgRW5kUHJvamVjdA0KPiAtUHJvamVjdCgiezhCQzlDRUI4
LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJMaXRlQWdlbnQiLA0KPiAibGl0ZWFn
ZW50XExpdGVBZ2VudC52Y3hwcm9qIiwgInsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My0NCj4gQjhE
QUZEN0JCRDNCfSINCj4gK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkx
QkM5NDJ9IikgPSAieGVuYWdlbnQiLA0KPiAieGVuYWdlbnRceGVuYWdlbnQudmN4cHJvaiIsICJ7
MkU2MUQyQ0MtODY1RS00NDJDLThDODMtDQo+IEI4REFGRDdCQkQzQn0iDQo+ICBFbmRQcm9qZWN0
DQo+ICBQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0g
InBhY2thZ2UiLA0KPiAicGFja2FnZVxwYWNrYWdlLnZjeHByb2oiLCAiezlCMDcxQTM1LTg5N0Mt
NDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0iDQo+ICAJUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVu
ZGVuY2llcykgPSBwb3N0UHJvamVjdA0KPiAtLQ0KPiAxLjkuNC5tc3lzZ2l0LjENCj4gDQo+IA0K
PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiB3aW4t
cHYtZGV2ZWwgbWFpbGluZyBsaXN0DQo+IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9y
Zw0KPiBodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZv
L3dpbi1wdi1kZXZlbA0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJv
amVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlz
dGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Wed Jul 06 15:49:05 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 06 Jul 2016 15:49:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bKp4S-0000Re-1V; Wed, 06 Jul 2016 15:49:04 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=988999fe3=Paul.Durrant@citrix.com>)
 id 1bKp4Q-0000RY-3s
 for win-pv-devel@lists.xenproject.org; Wed, 06 Jul 2016 15:49:02 +0000
Received: from [85.158.137.68] by server-6.bemta-3.messagelabs.com id
 D1/0B-24961-D682D775; Wed, 06 Jul 2016 15:49:01 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrNIsWRWlGSWpSXmKPExsWyU9JRQjdLozb
 c4PVVK4s/ixMdGD0Of7jCEsAYxZqZl5RfkcCaMeHPXJaCTy8FK47MXMzcwLjgjGAXIyeHhICf
 xNyf+5lBbDYBHYmlR+czgdgiAgUS39/PA4szC6hJXN/fxQpiCwukSLzv+cEOUZMqMXlpP1CcA
 8g2kri6iw3EZBFQkTh3gAWkglfAXeLmhduMXYxcHEICDYwSv3bNBBvJKeAmcWDCC7BVjAKyEl
 8aV0OtEpe49QTiBAkBAYkle84zQ9iiEi8f/2OFsA0kti7dxwKyi1lAU2L9Ln2IVkWJKd0P2SH
 2CkqcnPkE7AYhoHO2PD4ANYZbYuXnPywTGEVnIdk2C2HSLCSTZiGZtICRZRWjRnFqUVlqka6h
 oV5SUWZ6RkluYmaOrqGBsV5uanFxYnpqTmJSsV5yfu4mRmCkMADBDsbVv50OMUpyMCmJ8rJ8q
 w4X4kvKT6nMSCzOiC8qzUktPsQow8GhJMHrpV4bLiRYlJqeWpGWmQOMWZi0BAePkghvIkiat7
 ggMbc4Mx0idYpRUUqctxMkIQCSyCjNg2uDpYlLjLJSwryMQIcI8RSkFuVmlqDKv2IU52BUEuY
 9BDKFJzOvBG76K6DFTECLf7pUgywuSURISTUwqgi9ii3PV7l5NltPp/s918uvlaY5209I9Mit
 ++NWaff8ePXZ7HXbEx/Wt+0q063wZvPQ9XeU7hD//7bqxbWuJAe+1W++BR/+wMQXe3nl0d+Sq
 l+C4o8EKEzLWLgy1dKSSWjyTafpk9TeMQTkqhzT+bbx8ykpq3t+a16Jhj3efzNh7//iieellV
 iKMxINtZiLihMBhZNmew4DAAA=
X-Env-Sender: prvs=988999fe3=Paul.Durrant@citrix.com
X-Msg-Ref: server-5.tower-31.messagelabs.com!1467820138!46038439!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=2.2 required=7.0 tests=BODY_RANDOM_LONG,
 OBSCURED_EMAIL,UPPERCASE_25_50,received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 58460 invoked from network); 6 Jul 2016 15:48:58 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-5.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 6 Jul 2016 15:48:58 -0000
X-IronPort-AV: E=Sophos;i="5.28,319,1464652800"; d="scan'208";a="25687202"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 1/6] Remove LiteAgent,	replace with
 boilerplate xenagent service
Thread-Index: AQHR1qltCgg8jzqaWUeo9t6pFkQn36ALjmMQ
Date: Wed, 6 Jul 2016 15:48:55 +0000
Message-ID: <7a16a643708b4258b664fd6a8f0e0468@AMSPEX02CL03.citrite.net>
References: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
 <1467715091-13216-2-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1467715091-13216-2-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 1/6] Remove LiteAgent,
 replace with boilerplate xenagent service
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMDUgSnVseSAyMDE2IDExOjM4DQo+IFRvOiB3aW4tcHYt
ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gQ2M6IE93ZW4gU21pdGgNCj4gU3ViamVjdDog
W3dpbi1wdi1kZXZlbF0gW1BBVENIIDEvNl0gUmVtb3ZlIExpdGVBZ2VudCwgcmVwbGFjZSB3aXRo
DQo+IGJvaWxlcnBsYXRlIHhlbmFnZW50IHNlcnZpY2UNCj4gDQo+IFJlbW92ZSB0aGUgTGl0ZUFn
ZW50IHByb2plY3QgYW5kIHJlcGxhY2UgaXQgd2l0aCB0aGUgeGVuYWdlbnQNCj4gcHJvamVjdC4g
WGVuYWdlbnQgaXMgYSBib2lsZXJwbGF0ZSBzZXJ2aWNlIHRoYXQgaGFzIG5vDQo+IGZ1bmN0aW9u
YWxpdHkgaW4gdGhpcyBwYXRjaC4gU3Vic2lxdWVudCBwYXRjaGVzIHdpbGwgYWRkDQo+IHRoZSBy
ZXF1aXJlZCBmdW5jdGlvbmFsaXR5Lg0KPiANCj4gU2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8
b3dlbi5zbWl0aEBjaXRyaXguY29tPg0KDQpBY2tlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1
cnJhbnRAY2l0cml4LmNvbT4NCg0KPiAtLS0NCj4gIHNyYy93aW4zMnN0dWJhZ2VudC9XbWlBY2Nl
c3Nvci5jcHAgICAgICB8IDEzMzEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAg
c3JjL3dpbjMyc3R1YmFnZW50L1dtaUFjY2Vzc29yLmggICAgICAgIHwgICA4OCAtLQ0KPiAgc3Jj
L3dpbjMyc3R1YmFnZW50L1hTQWNjZXNzb3IuY3BwICAgICAgIHwgIDIzMCAtLS0tLS0NCj4gIHNy
Yy93aW4zMnN0dWJhZ2VudC9YU0FjY2Vzc29yLmggICAgICAgICB8ICAxMjYgLS0tDQo+ICBzcmMv
d2luMzJzdHViYWdlbnQvWFNlcnZpY2UuY3BwICAgICAgICAgfCAxMDQ0IC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQ0KPiAgc3JjL3dpbjMyc3R1YmFnZW50L1hTZXJ2aWNlLmggICAgICAgICAgIHwg
ICA1NCAtLQ0KPiAgc3JjL3dpbjMyc3R1YmFnZW50L2Vycm9ycy5jcHAgICAgICAgICAgIHwgIDEw
MiAtLS0NCj4gIHNyYy93aW4zMnN0dWJhZ2VudC9tZXNzYWdlcy5tYyAgICAgICAgICB8ICAgNjYg
LS0NCj4gIHNyYy93aW4zMnN0dWJhZ2VudC9zdGRhZnguY3BwICAgICAgICAgICB8ICAgMzkgLQ0K
PiAgc3JjL3dpbjMyc3R1YmFnZW50L3N0ZGFmeC5oICAgICAgICAgICAgIHwgICA0MyAtDQo+ICBz
cmMvd2luMzJzdHViYWdlbnQvdzMyeGFnZW50LnJjICAgICAgICAgfCAgIDYwIC0tDQo+ICBzcmMv
d2luMzJzdHViYWdlbnQveGVuLmljbyAgICAgICAgICAgICAgfCAgQmluIDI1MjE0IC0+IDAgYnl0
ZXMNCj4gIHNyYy94ZW5hZ2VudC9tZXNzYWdlcy5tYyAgICAgICAgICAgICAgICB8ICAgNjYgKysN
Cj4gIHNyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcCAgICAgICAgICAgICAgICB8ICAyNDggKysrKysr
DQo+ICBzcmMveGVuYWdlbnQvc2VydmljZS5oICAgICAgICAgICAgICAgICAgfCAgIDc0ICsrDQo+
ICBzcmMveGVuYWdlbnQveGVuLmljbyAgICAgICAgICAgICAgICAgICAgfCAgQmluIDAgLT4gMjUy
MTQgYnl0ZXMNCj4gIHNyYy94ZW5hZ2VudC94ZW5hZ2VudC5yYyAgICAgICAgICAgICAgICB8ICAg
NjAgKysNCj4gIHNyYy94ZW5pZmFjZS5pbmYgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTYg
Ky0NCj4gIHZzMjAxMi9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHByb2ogICAgICB8ICAyNTEgLS0t
LS0tDQo+ICB2czIwMTIvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qLnVzZXIgfCAgICA0IC0N
Cj4gIHZzMjAxMi94ZW5hZ2VudC94ZW5hZ2VudC52Y3hwcm9qICAgICAgICB8ICAyMTcgKysrKysN
Cj4gIHZzMjAxMi94ZW5hZ2VudC94ZW5hZ2VudC52Y3hwcm9qLnVzZXIgICB8ICAgIDQgKw0KPiAg
dnMyMDEyL3hlbmlmYWNlLnNsbiAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArLQ0KPiAgdnMy
MDEzL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvaiAgICAgIHwgIDI1NiAtLS0tLS0NCj4gIHZz
MjAxMy9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHByb2oudXNlciB8ICAgIDQgLQ0KPiAgdnMyMDEz
L3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2ogICAgICAgIHwgIDIyMSArKysrKw0KPiAgdnMyMDEz
L3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2oudXNlciAgIHwgICAgNCArDQo+ICB2czIwMTMveGVu
aWZhY2Uuc2xuICAgICAgICAgICAgICAgICAgICAgfCAgICAyICstDQo+ICAyOCBmaWxlcyBjaGFu
Z2VkLCA5MDQgaW5zZXJ0aW9ucygrKSwgMzcwOCBkZWxldGlvbnMoLSkNCj4gIGRlbGV0ZSBtb2Rl
IDEwMDY0NCBzcmMvd2luMzJzdHViYWdlbnQvV21pQWNjZXNzb3IuY3BwDQo+ICBkZWxldGUgbW9k
ZSAxMDA2NDQgc3JjL3dpbjMyc3R1YmFnZW50L1dtaUFjY2Vzc29yLmgNCj4gIGRlbGV0ZSBtb2Rl
IDEwMDY0NCBzcmMvd2luMzJzdHViYWdlbnQvWFNBY2Nlc3Nvci5jcHANCj4gIGRlbGV0ZSBtb2Rl
IDEwMDY0NCBzcmMvd2luMzJzdHViYWdlbnQvWFNBY2Nlc3Nvci5oDQo+ICBkZWxldGUgbW9kZSAx
MDA2NDQgc3JjL3dpbjMyc3R1YmFnZW50L1hTZXJ2aWNlLmNwcA0KPiAgZGVsZXRlIG1vZGUgMTAw
NjQ0IHNyYy93aW4zMnN0dWJhZ2VudC9YU2VydmljZS5oDQo+ICBkZWxldGUgbW9kZSAxMDA2NDQg
c3JjL3dpbjMyc3R1YmFnZW50L2Vycm9ycy5jcHANCj4gIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMv
d2luMzJzdHViYWdlbnQvbWVzc2FnZXMubWMNCj4gIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvd2lu
MzJzdHViYWdlbnQvc3RkYWZ4LmNwcA0KPiAgZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy93aW4zMnN0
dWJhZ2VudC9zdGRhZnguaA0KPiAgZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy93aW4zMnN0dWJhZ2Vu
dC93MzJ4YWdlbnQucmMNCj4gIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvd2luMzJzdHViYWdlbnQv
eGVuLmljbw0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy94ZW5hZ2VudC9tZXNzYWdlcy5tYw0K
PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcA0KPiAgY3JlYXRl
IG1vZGUgMTAwNjQ0IHNyYy94ZW5hZ2VudC9zZXJ2aWNlLmgNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0
NCBzcmMveGVuYWdlbnQveGVuLmljbw0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy94ZW5hZ2Vu
dC94ZW5hZ2VudC5yYw0KPiAgZGVsZXRlIG1vZGUgMTAwNjQ0IHZzMjAxMi9saXRlYWdlbnQvTGl0
ZUFnZW50LnZjeHByb2oNCj4gIGRlbGV0ZSBtb2RlIDEwMDY0NCB2czIwMTIvbGl0ZWFnZW50L0xp
dGVBZ2VudC52Y3hwcm9qLnVzZXINCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCB2czIwMTIveGVuYWdl
bnQveGVuYWdlbnQudmN4cHJvag0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHZzMjAxMi94ZW5hZ2Vu
dC94ZW5hZ2VudC52Y3hwcm9qLnVzZXINCj4gIGRlbGV0ZSBtb2RlIDEwMDY0NCB2czIwMTMvbGl0
ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qDQo+ICBkZWxldGUgbW9kZSAxMDA2NDQgdnMyMDEzL2xp
dGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvai51c2VyDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgdnMy
MDEzL3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2oNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCB2czIw
MTMveGVuYWdlbnQveGVuYWdlbnQudmN4cHJvai51c2VyDQo+IA0KPiBkaWZmIC0tZ2l0IGEvc3Jj
L3dpbjMyc3R1YmFnZW50L1dtaUFjY2Vzc29yLmNwcA0KPiBiL3NyYy93aW4zMnN0dWJhZ2VudC9X
bWlBY2Nlc3Nvci5jcHANCj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IGI4NWZm
OGUuLjAwMDAwMDANCj4gLS0tIGEvc3JjL3dpbjMyc3R1YmFnZW50L1dtaUFjY2Vzc29yLmNwcA0K
PiArKysgL2Rldi9udWxsDQo+IEBAIC0xLDEzMzEgKzAsMCBAQA0KPiAtLyogQ29weXJpZ2h0IChj
KSBDaXRyaXggU3lzdGVtcyBJbmMuDQo+IC0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KPiAtICoN
Cj4gLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
DQo+IC0gKiB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkDQo+IC0gKiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0Og0KPiAtICoN
Cj4gLSAqICogICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlDQo+IC0gKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZQ0KPiAtICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KPiAtICogKiAgIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUNCj4g
LSAqICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
DQo+IC0gKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyDQo+IC0gKiAgICAgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4NCj4gLSAqDQo+IC0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQNCj4gLSAqIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsDQo+IC0gKiBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRg0KPiAtICogTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUNCj4gLSAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SDQo+IC0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwN
Cj4gLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsDQo+IC0gKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1INCj4gLSAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MNCj4gLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLA0KPiAtICogV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HDQo+IC0gKiBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFDQo+IC0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GDQo+IC0gKiBT
VUNIIERBTUFHRS4NCj4gLSAqLw0KPiAtDQo+IC0jaW5jbHVkZSAic3RkYWZ4LmgiDQo+IC0jZGVm
aW5lIF9XSU4zMl9EQ09NDQo+IC0jaW5jbHVkZSA8d2luZG93cy5oPg0KPiAtI2luY2x1ZGUgPGlv
c3RyZWFtPg0KPiAtI2luY2x1ZGUgPGFsZ29yaXRobT4NCj4gLSNpbmNsdWRlIDxoYXNoX21hcD4N
Cj4gLSNpbmNsdWRlIDxzdGRpby5oPg0KPiAtI2luY2x1ZGUgIndpbmVycm9yLmgiDQo+IC0jaW5j
bHVkZSAiV01JQWNjZXNzb3IuaCINCj4gLSNpbmNsdWRlICJYU2VydmljZS5oIg0KPiAtI2luY2x1
ZGUgImNvbXV0aWwuaCINCj4gLQ0KPiAtLy8jaW5jbHVkZSAieHNfcHJpdmF0ZS5oIg0KPiAtI2lu
Y2x1ZGUgPHdiZW1pZGwuaD4NCj4gLQ0KPiAtI2luY2x1ZGUgPHZlcnNpb24uaD4NCj4gLQ0KPiAt
I2RlZmluZSBXSURFTjIoeCkgTCAjIyB4DQo+IC0jZGVmaW5lIFdJREVOKHgpIFdJREVOMih4KQ0K
PiAtDQo+IC0jZGVmaW5lIE9CSkVDVF9OQU1FX0EoX05hbWUpIE9CSkVDVF9QUkVGSVhfU1RSICJY
ZW5TdG9yZSINCj4gI19OYW1lDQo+IC0jZGVmaW5lIE9CSkVDVF9OQU1FX1coX05hbWUpIFdJREVO
KE9CSkVDVF9QUkVGSVhfU1RSKQ0KPiBMIlhlblN0b3JlIiBXSURFTigjX05hbWUpDQo+IC0NCj4g
LSNwcmFnbWEgY29tbWVudChsaWIsICJ3YmVtdXVpZC5saWIiKQ0KPiAtI3ByYWdtYSBjb21tZW50
KGxpYiwgInV1aWQubGliIikNCj4gLSNwcmFnbWEgY29tbWVudChsaWIsICJjb21zdXBwdy5saWIi
KQ0KPiAtDQo+IC1CU1RSIG1rQnN0cihjb25zdCBjaGFyICpzdHJpbmcsIHNpemVfdCBsZW4pIHsN
Cj4gLSAgICBCU1RSIHJlcyA9IE5VTEw7DQo+IC0gICAgc2l6ZV90IHJldHVybmVkOw0KPiAtICAg
IHdjaGFyX3QqIHdzdHJpbmcgPSBuZXcgd2NoYXJfdFtsZW4rMV07DQo+IC0gICAgaWYgKHdzdHJp
bmcgPT0gTlVMTCkgew0KPiAtICAgICAgICBnb3RvIG1hbGxvY193c3RyaW5nOw0KPiAtICAgIH0N
Cj4gLSAgICBtYnN0b3djc19zKCZyZXR1cm5lZCwgd3N0cmluZywgbGVuKzEsIHN0cmluZywgbGVu
KTsNCj4gLSAgICByZXMgPSBTeXNBbGxvY1N0cmluZyh3c3RyaW5nKTsNCj4gLSAgICBkZWxldGUg
d3N0cmluZzsNCj4gLW1hbGxvY193c3RyaW5nOg0KPiAtICAgIHJldHVybiByZXM7DQo+IC19DQo+
IC0NCj4gLWNoYXIgKiBmb3JtYXRDaGFyU3RySW50KGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBs
KSB7DQo+IC0gICAgY2hhciAqYnVmID0gTlVMTDsNCj4gLSAgICBpbnQgY250ID0gX3ZzY3ByaW50
ZihmbXQsIGwpOw0KPiAtICAgIGJ1ZiA9IChjaGFyICopWHNBbGxvYyhjbnQrMSk7DQo+IC0gICAg
aWYgKGJ1ZiA9PSBOVUxMKSB7DQo+IC0gICAgICAgIGdvdG8gbWFsbG9jX2J1ZjsNCj4gLSAgICB9
DQo+IC0gICAgX3ZzbnByaW50ZihidWYsIGNudCsxLCBmbXQsIGwpOw0KPiAtbWFsbG9jX2J1ZjoN
Cj4gLSAgICByZXR1cm4gYnVmOw0KPiAtfQ0KPiAtDQo+IC1jaGFyICogZm9ybWF0Q2hhclN0cihj
b25zdCBjaGFyICpmbXQsIC4uLiApIHsNCj4gLSAgICBjaGFyICpidWYgPU5VTEw7DQo+IC0gICAg
dmFfbGlzdCBsOw0KPiAtICAgIHZhX3N0YXJ0KGwsIGZtdCk7DQo+IC0gICAgYnVmID0gZm9ybWF0
Q2hhclN0ckludChmbXQsIGwpOw0KPiAtICAgIHZhX2VuZChsKTsNCj4gLSAgICByZXR1cm4gYnVm
Ow0KPiAtfQ0KPiAtDQo+IC1CU1RSIGZvcm1hdEJzdHIoY29uc3QgY2hhciAqZm10LCAuLi4pDQo+
IC17DQo+IC0gICAgY2hhciAqYnVmOw0KPiAtICAgIHZhX2xpc3QgbDsNCj4gLSAgICBCU1RSIHJl
cyA9IE5VTEw7DQo+IC0gICAgdmFfc3RhcnQobCwgZm10KTsNCj4gLSAgICBidWYgPSBmb3JtYXRD
aGFyU3RySW50KGZtdCwgbCk7DQo+IC0gICAgdmFfZW5kKGwpOw0KPiAtICAgIHJlcyA9IG1rQnN0
cihidWYsIHN0cmxlbihidWYpKTsNCj4gLSAgICBYc0ZyZWUoYnVmKTsNCj4gLSAgICByZXR1cm4g
cmVzOw0KPiAtfQ0KPiAtDQo+IC1pbnQgc2V0VmFyaWFudFN0cmluZyhWQVJJQU5UKiB2YXIsIGNv
bnN0IGNoYXIgKmRhdGEsIHNpemVfdCBsZW4pIHsNCj4gLSAgICBpbnQgZXJyPS0xOw0KPiAtICAg
IFZhcmlhbnRJbml0KHZhcik7DQo+IC0gICAgdmFyLT52dD1WVF9CU1RSOw0KPiAtICAgIHZhci0+
YnN0clZhbCA9IG1rQnN0cihkYXRhLCBsZW4pOw0KPiAtICAgIGlmICh2YXItPmJzdHJWYWwgPT0g
TlVMTCkgew0KPiAtICAgICAgICBnb3RvIHN5c2FsbG9jOw0KPiAtICAgIH0NCj4gLSAgICBlcnI9
MDsNCj4gLXN5c2FsbG9jOg0KPiAtICAgIHJldHVybiBlcnI7DQo+IC19DQo+IC0NCj4gLQ0KPiAt
aW50IHNldFZhcmlhbnRTdHJpbmcoVkFSSUFOVCogdmFyLCBjb25zdCBjaGFyICpzdHJpbmcpIHsN
Cj4gLSAgICByZXR1cm4gc2V0VmFyaWFudFN0cmluZyh2YXIsIHN0cmluZywgc3RybGVuKHN0cmlu
ZykpOw0KPiAtfQ0KPiAtDQo+IC0NCj4gLWNsYXNzIFdhdGNoU2luayA6IHB1YmxpYyBJV2JlbU9i
amVjdFNpbmsNCj4gLXsNCj4gLSAgICBMT05HIG1fbFJlZjsNCj4gLSAgICBib29sIGJEb25lOw0K
PiAtICAgIEhBTkRMRSB0cmlnZ2VyZXZlbnQ7DQo+IC0gICAgSEFORExFIHRyaWdnZXJlcnJvcjsN
Cj4gLXB1YmxpYzoNCj4gLSAgICBjaGFyICpwYXRoOw0KPiAtICAgIFdhdGNoU2luayhIQU5ETEUg
ZXZlbnQsIEhBTkRMRSBlcnJvcmV2ZW50LCBjb25zdCBjaGFyICpwYXRoKSB7DQo+IC0gICAgICAg
IG1fbFJlZiA9IDE7DQo+IC0gICAgICAgIHRyaWdnZXJldmVudCA9IGV2ZW50Ow0KPiAtICAgICAg
ICB0cmlnZ2VyZXJyb3IgPSBlcnJvcmV2ZW50Ow0KPiAtICAgICAgICB0aGlzLT5wYXRoID0gTlVM
TDsNCj4gLSAgICAgICAgaWYgKHBhdGgpIHsNCj4gLSAgICAgICAgICAgIHRoaXMtPnBhdGg9KGNo
YXIgKilYc0FsbG9jKHN0cmxlbihwYXRoKSsxKTsNCj4gLSAgICAgICAgICAgIHN0cmNweSh0aGlz
LT5wYXRoLCBwYXRoKTsNCj4gLSAgICAgICAgfQ0KPiAtICAgIH0NCj4gLSAgIH5XYXRjaFNpbmso
KSB7IGJEb25lID0gVFJVRTsgfQ0KPiAtDQo+IC0gICAgdmlydHVhbCBVTE9ORyBTVERNRVRIT0RD
QUxMVFlQRSBBZGRSZWYoKTsNCj4gLSAgICB2aXJ0dWFsIFVMT05HIFNURE1FVEhPRENBTExUWVBF
IFJlbGVhc2UoKTsNCj4gLSAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUNCj4g
LSAgICAgICAgUXVlcnlJbnRlcmZhY2UoUkVGSUlEIHJpaWQsIHZvaWQqKiBwcHYpOw0KPiAtDQo+
IC0gICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIEluZGljYXRlKA0KPiAtICAg
ICAgICAgICAgLyogW2luXSAqLw0KPiAtICAgICAgICAgICAgTE9ORyBsT2JqZWN0Q291bnQsDQo+
IC0gICAgICAgICAgICAvKiBbc2l6ZV9pc11baW5dICovDQo+IC0gICAgICAgICAgICBJV2JlbUNs
YXNzT2JqZWN0IF9fUlBDX0ZBUiAqX19SUENfRkFSICphcE9iakFycmF5DQo+IC0gICAgICAgICAg
ICApOw0KPiAtDQo+IC0gICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFNldFN0
YXR1cygNCj4gLSAgICAgICAgICAgIC8qIFtpbl0gKi8gTE9ORyBsRmxhZ3MsDQo+IC0gICAgICAg
ICAgICAvKiBbaW5dICovIEhSRVNVTFQgaFJlc3VsdCwNCj4gLSAgICAgICAgICAgIC8qIFtpbl0g
Ki8gQlNUUiBzdHJQYXJhbSwNCj4gLSAgICAgICAgICAgIC8qIFtpbl0gKi8gSVdiZW1DbGFzc09i
amVjdCBfX1JQQ19GQVIgKnBPYmpQYXJhbQ0KPiAtICAgICAgICAgICAgKTsNCj4gLX07DQo+IC0N
Cj4gLQ0KPiAtVUxPTkcgV2F0Y2hTaW5rOjpBZGRSZWYoKQ0KPiAtew0KPiAtICAgIHJldHVybiBJ
bnRlcmxvY2tlZEluY3JlbWVudCgmbV9sUmVmKTsNCj4gLX0NCj4gLQ0KPiAtVUxPTkcgV2F0Y2hT
aW5rOjpSZWxlYXNlKCkNCj4gLXsNCj4gLSAgICBMT05HIGxSZWYgPSBJbnRlcmxvY2tlZERlY3Jl
bWVudCgmbV9sUmVmKTsNCj4gLSAgICBpZihsUmVmID09IDApDQo+IC0gICAgICAgIGRlbGV0ZSB0
aGlzOw0KPiAtICAgIHJldHVybiBsUmVmOw0KPiAtfQ0KPiAtDQo+IC1IUkVTVUxUIFdhdGNoU2lu
azo6UXVlcnlJbnRlcmZhY2UoUkVGSUlEIHJpaWQsIHZvaWQqKiBwcHYpDQo+IC17DQo+IC0gICAg
aWYgKHJpaWQgPT0gSUlEX0lVbmtub3duIHx8IHJpaWQgPT0gSUlEX0lXYmVtT2JqZWN0U2luaykN
Cj4gLSAgICB7DQo+IC0gICAgICAgICpwcHYgPSAoSVdiZW1PYmplY3RTaW5rICopIHRoaXM7DQo+
IC0gICAgICAgIEFkZFJlZigpOw0KPiAtICAgICAgICByZXR1cm4gV0JFTV9TX05PX0VSUk9SOw0K
PiAtICAgIH0NCj4gLSAgICBlbHNlIHJldHVybiBFX05PSU5URVJGQUNFOw0KPiAtfQ0KPiAtDQo+
IC0NCj4gLUhSRVNVTFQgV2F0Y2hTaW5rOjpJbmRpY2F0ZShsb25nIGxPYmpDb3VudCwgSVdiZW1D
bGFzc09iamVjdCAqKnBBcnJheSkNCj4gLXsNCj4gLSAgICBmb3IgKGxvbmcgaSA9IDA7IGkgPCBs
T2JqQ291bnQ7IGkrKykNCj4gLSAgICB7DQo+IC0gICAgICAgIElXYmVtQ2xhc3NPYmplY3QgKnBP
YmogPSBwQXJyYXlbaV07DQo+IC0gICAgICAgIFNldEV2ZW50KHRoaXMtPnRyaWdnZXJldmVudCk7
DQo+IC0gICAgICAgIC8vIC4uLiB1c2UgdGhlIG9iamVjdC4NCj4gLQ0KPiAtICAgICAgICAvLyBB
ZGRSZWYoKSBpcyBvbmx5IHJlcXVpcmVkIGlmIHRoZSBvYmplY3Qgd2lsbCBiZSBoZWxkIGFmdGVy
DQo+IC0gICAgICAgIC8vIHRoZSByZXR1cm4gdG8gdGhlIGNhbGxlci4NCj4gLSAgICB9DQo+IC0N
Cj4gLSAgICByZXR1cm4gV0JFTV9TX05PX0VSUk9SOw0KPiAtfQ0KPiAtDQo+IC1IUkVTVUxUIFdh
dGNoU2luazo6U2V0U3RhdHVzKA0KPiAtICAgICAgICAgICAgLyogW2luXSAqLyBMT05HIGxGbGFn
cywNCj4gLSAgICAgICAgICAgIC8qIFtpbl0gKi8gSFJFU1VMVCBoUmVzdWx0LA0KPiAtICAgICAg
ICAgICAgLyogW2luXSAqLyBCU1RSIHN0clBhcmFtLA0KPiAtICAgICAgICAgICAgLyogW2luXSAq
LyBJV2JlbUNsYXNzT2JqZWN0IF9fUlBDX0ZBUiAqcE9ialBhcmFtDQo+IC0gICAgICAgICkNCj4g
LXsNCj4gLSAgICBpZiAoRkFJTEVEKGhSZXN1bHQpKSB7DQo+IC0gICAgICAgIFhzTG9nKCJXTUkg
QXN5YyB3YXRjaCBmYWlsZWQgJXBcbiIsIHRoaXMpOw0KPiAtICAgICAgICBTZXRFdmVudCh0aGlz
LT50cmlnZ2VyZXJyb3IpOw0KPiAtICAgIH0NCj4gLSAgICByZXR1cm4gV0JFTV9TX05PX0VSUk9S
Ow0KPiAtfQ0KPiAtDQo+IC0NCj4gLQ0KPiAtc3RydWN0IFdNSUFjY2Vzc29yDQo+IC17DQo+IC0g
ICAgSVdiZW1TZXJ2aWNlcyAqbXBTdmM7DQo+IC0gICAgSVdiZW1TZXJ2aWNlcyAqbXBYU1N2YzsN
Cj4gLQ0KPiAtICAgIEhBTkRMRSBvd25pbmdfdGhyZWFkOw0KPiAtfTsNCj4gLQ0KPiAtc3RydWN0
IFdNSUFjY2Vzc29yICp3bWkgPSBOVUxMOw0KPiAtDQo+IC1zdGF0aWMgc3RyaW5nIHdzdHJpbmcy
c3RyaW5nKGNvbnN0IHdzdHJpbmcmIHdzdHIpDQo+IC17DQo+IC0gICAgaW50IGxlbjsNCj4gLQ0K
PiAtICAgIGxlbiA9IFdpZGVDaGFyVG9NdWx0aUJ5dGUoQ1BfVVRGOCwNCj4gLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDAsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3
c3RyLmNfc3RyKCksDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMSwNCj4gLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsDQo+IC0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAwLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwNCj4g
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOw0KPiAtDQo+IC0gICAgc3RyaW5n
IHN0cihsZW4sIDApOw0KPiAtDQo+IC0gICAgbGVuID0gV2lkZUNoYXJUb011bHRpQnl0ZShDUF9V
VEY4LA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwNCj4gLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHdzdHIuY19zdHIoKSwNCj4gLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC0xLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnN0clswXSwN
Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpc3RyLmxlbmd0aCgpLA0KPiAt
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwNCj4gLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIE5VTEwpOw0KPiAtDQo+IC0gICAgcmV0dXJuIHN0cjsNCj4gLX0NCj4gLQ0K
PiAtc3RhdGljIHN0cmluZyBic3RyMnN0cmluZyhjb25zdCBCU1RSJiBic3RyKQ0KPiAtew0KPiAt
ICAgIHdzdHJpbmcgd3N0cihic3RyKTsNCj4gLQ0KPiAtICAgIHJldHVybiB3c3RyaW5nMnN0cmlu
Zyh3c3RyKTsNCj4gLX0NCj4gLQ0KPiAtSVdiZW1DbGFzc09iamVjdCAqZ2V0Q2xhc3MoV01JQWNj
ZXNzb3IgKip3bWksIEJTVFIgcGF0aCkgew0KPiAtICAgIGlmICgqd21pID09IE5VTEwpDQo+IC0g
ICAgICAgIHJldHVybiBOVUxMOw0KPiAtDQo+IC0gICAgaWYgKCgqd21pKS0+bXBYU1N2YyA9PSBO
VUxMKQ0KPiAtICAgICAgICByZXR1cm4gTlVMTDsNCj4gLQ0KPiAtICAgIElXYmVtQ2xhc3NPYmpl
Y3QgKnJldHVybmVkT2JqZWN0Ow0KPiAtICAgIEhSRVNVTFQgaHJlcyA9ICgqd21pKS0+bXBYU1N2
Yy0NCj4gPkdldE9iamVjdChwYXRoLFdCRU1fRkxBR19SRVRVUk5fV0JFTV9DT01QTEVURSwNCj4g
LSAgICAgICAgICAgIE5VTEwsICZyZXR1cm5lZE9iamVjdCwgTlVMTCk7DQo+IC0gICAgaWYgKEZB
SUxFRChocmVzKSkgew0KPiAtICAgICAgICByZXR1cm5lZE9iamVjdCA9TlVMTDsNCj4gLSAgICB9
DQo+IC0gICAgcmV0dXJuIHJldHVybmVkT2JqZWN0Ow0KPiAtfQ0KPiAtDQo+IC1JV2JlbUNsYXNz
T2JqZWN0ICpnZXRPYmplY3QoV01JQWNjZXNzb3IgKip3bWksIEJTVFIgcGF0aCkgew0KPiAtICAg
IElFbnVtV2JlbUNsYXNzT2JqZWN0ICpyZXR1cm5lZEVudW07DQo+IC0gICAgSVdiZW1DbGFzc09i
amVjdCAqcmV0dXJuZWRPYmplY3Q7DQo+IC0gICAgaWYgKCp3bWkgPT0gTlVMTCkNCj4gLSAgICAg
ICAgcmV0dXJuIE5VTEw7DQo+IC0gICAgQVNTRVJUKCgqd21pKS0+bXBYU1N2YyAhPSBOVUxMKTsN
Cj4gLSAgICBIUkVTVUxUIGhyZXMgPSAgKCp3bWkpLT5tcFhTU3ZjLT5DcmVhdGVJbnN0YW5jZUVu
dW0ocGF0aCwNCj4gV0JFTV9GTEFHX0ZPUldBUkRfT05MWSwNCj4gLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwNCj4gLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJnJldHVybmVkRW51bSk7DQo+IC0gICAgaWYgKEZBSUxF
RChocmVzKSkgew0KPiAtICAgICAgICBPdXRwdXREZWJ1Z1N0cmluZygiR2V0RW51bSBmYWlsZWRc
biIpOw0KPiAtICAgICAgICByZXR1cm5lZE9iamVjdCA9TlVMTDsNCj4gLSAgICAgICAgcmV0dXJu
IHJldHVybmVkT2JqZWN0Ow0KPiAtICAgIH0NCj4gLSAgICBVTE9ORyBvYmplY3RzOw0KPiAtDQo+
IC0gICAgaHJlcyA9IHJldHVybmVkRW51bS0+TmV4dChXQkVNX0lORklOSVRFLCAxLCAmcmV0dXJu
ZWRPYmplY3QsDQo+ICZvYmplY3RzKTsNCj4gLQ0KPiAtDQo+IC0gICAgaWYgKEZBSUxFRChocmVz
KSB8fCBvYmplY3RzIDwgMSkgew0KPiAtICAgICAgICBPdXRwdXREZWJ1Z1N0cmluZygiR2V0RnJv
bUVudW0gZmFpbGVkXG4iKTsNCj4gLSAgICAgICAgcmV0dXJuZWRPYmplY3QgPU5VTEw7DQo+IC0g
ICAgfQ0KPiAtDQo+IC0gICAgcmV0dXJuIHJldHVybmVkT2JqZWN0Ow0KPiAtfQ0KPiAtDQo+IC1I
UkVTVUxUIG1ldGhvZEV4ZWMoV01JQWNjZXNzb3IqKiB3bWksICBJV2JlbUNsYXNzT2JqZWN0KiBp
bnN0YW5jZSwNCj4gY29uc3Qgd2NoYXJfdCAqbWV0aG9kbmFtZSwgSVdiZW1DbGFzc09iamVjdCAq
aW5NZXRob2RJbnN0LA0KPiBJV2JlbUNsYXNzT2JqZWN0ICoqb3V0TWV0aG9kSW5zdCkNCj4gLXsN
Cj4gLSAgICBIUkVTVUxUIGhyZXM9RV9GQUlMIDsNCj4gLQ0KPiAtICAgIElXYmVtQ2xhc3NPYmpl
Y3QgKm91dHN0b3JlPU5VTEw7DQo+IC0gICAgQlNUUiBicGF0aG5hbWUgPSBTeXNBbGxvY1N0cmlu
ZyhMIl9fUEFUSCIpOw0KPiAtICAgIGlmIChicGF0aG5hbWUgPT0gTlVMTCl7DQo+IC0gICAgICAg
IGdvdG8gYWxsb2NwYXRobmFtZTsNCj4gLSAgICB9DQo+IC0NCj4gLQ0KPiAtICAgIFZBUklBTlQg
aW5zdGFuY2VwYXRoOw0KPiAtICAgIFZhcmlhbnRJbml0KCZpbnN0YW5jZXBhdGgpOw0KPiAtICAg
IGhyZXMgPSBpbnN0YW5jZS0+R2V0KGJwYXRobmFtZSwgMCwgJmluc3RhbmNlcGF0aCwgTlVMTCwg
TlVMTCk7DQo+IC0gICAgaWYgKEZBSUxFRChocmVzKSkgew0KPiAtICAgICAgICBnb3RvIGdldGNs
YXNzbmFtZTsNCj4gLSAgICB9DQo+IC0NCj4gLQ0KPiAtICAgIEJTVFIgYm1ldGhvZG5hbWUgPSBT
eXNBbGxvY1N0cmluZyhtZXRob2RuYW1lKTsNCj4gLSAgICBpZiAoYm1ldGhvZG5hbWUgPT0gTlVM
TCl7DQo+IC0gICAgICAgIGdvdG8gYWxsb2NtZXRob2RuYW1lOw0KPiAtICAgIH0NCj4gLQ0KPiAt
ICAgIGhyZXMgPSAoKndtaSktPm1wWFNTdmMtPkV4ZWNNZXRob2QoaW5zdGFuY2VwYXRoLmJzdHJW
YWwsDQo+IGJtZXRob2RuYW1lLCAwLCBOVUxMLGluTWV0aG9kSW5zdCwgJm91dHN0b3JlLCBOVUxM
KTsNCj4gLSAgICBpZiAob3V0TWV0aG9kSW5zdCAhPSBOVUxMKSB7DQo+IC0gICAgICAgICpvdXRN
ZXRob2RJbnN0ID0gTlVMTDsNCj4gLSAgICAgICAgaWYgKCFGQUlMRUQoaHJlcykpew0KPiAtICAg
ICAgICAgICAgKm91dE1ldGhvZEluc3QgPSBvdXRzdG9yZTsNCj4gLSAgICAgICAgfQ0KPiAtICAg
IH0NCj4gLQ0KPiAtICAgIFN5c0ZyZWVTdHJpbmcoYm1ldGhvZG5hbWUpOw0KPiAtYWxsb2NtZXRo
b2RuYW1lOg0KPiAtDQo+IC1nZXRjbGFzc25hbWU6DQo+IC0gICAgVmFyaWFudENsZWFyKCZpbnN0
YW5jZXBhdGgpOw0KPiAtICAgIFN5c0ZyZWVTdHJpbmcoYnBhdGhuYW1lKTsNCj4gLWFsbG9jcGF0
aG5hbWU6DQo+IC0gICAgcmV0dXJuIGhyZXM7DQo+IC19DQo+IC1zdGF0aWMgSUVudW1XYmVtQ2xh
c3NPYmplY3QqIHJ1blhTUXVlcnkoV01JQWNjZXNzb3IgKip3bWksIEJTVFINCj4gcXVlcnkpDQo+
IC17DQo+IC0gICAgaWYgKHdtaSA9PSBOVUxMKQ0KPiAtICAgICAgICByZXR1cm4gTlVMTDsNCj4g
LQ0KPiAtICAgIEFTU0VSVCgoKndtaSktPm1wWFNTdmMgIT0gTlVMTCk7DQo+IC0NCj4gLSAgICAv
LyBVc2UgdGhlIElXYmVtU2VydmljZXMgcG9pbnRlciB0byBtYWtlIHJlcXVlc3RzIG9mIFdNSS4N
Cj4gLSAgICAvLyBNYWtlIHJlcXVlc3RzIGhlcmU6DQo+IC0gICAgSUVudW1XYmVtQ2xhc3NPYmpl
Y3QqIHBFbnVtZXJhdG9yID0gTlVMTDsNCj4gLSAgICBIUkVTVUxUIGhyZXMgPSAoKndtaSktPm1w
WFNTdmMtPkV4ZWNRdWVyeShMIldRTCIsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHF1ZXJ5LA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBXQkVNX0ZMQUdfRk9SV0FSRF9PTkxZIHwNCj4gV0JFTV9GTEFHX1JFVFVSTl9JTU1F
RElBVEVMWSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVM
TCwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBFbnVtZXJh
dG9yKTsNCj4gLSAgICBpZiAoRkFJTEVEKGhyZXMpKQ0KPiAtICAgIHsNCj4gLSAgICAgICAgREJH
UFJJTlQoKCJFeGVjUXVlcnkgZmFpbGVkXG4iKSk7DQo+IC0gICAgICAgIHBFbnVtZXJhdG9yID0g
TlVMTDsNCj4gLSAgICB9DQo+IC0gICAgcmV0dXJuIHBFbnVtZXJhdG9yOw0KPiAtfQ0KPiAtc3Rh
dGljIElFbnVtV2JlbUNsYXNzT2JqZWN0KiBydW5RdWVyeShXTUlBY2Nlc3NvciAqd21pLCBCU1RS
IHF1ZXJ5KQ0KPiAtew0KPiAtICAgIGlmICh3bWkgPT0gTlVMTCkNCj4gLSAgICAgICAgcmV0dXJu
IE5VTEw7DQo+IC0NCj4gLSAgICBBU1NFUlQod21pLT5tcFN2YyAhPSBOVUxMKTsNCj4gLQ0KPiAt
ICAgIC8vIFVzZSB0aGUgSVdiZW1TZXJ2aWNlcyBwb2ludGVyIHRvIG1ha2UgcmVxdWVzdHMgb2Yg
V01JLg0KPiAtICAgIC8vIE1ha2UgcmVxdWVzdHMgaGVyZToNCj4gLSAgICBJRW51bVdiZW1DbGFz
c09iamVjdCogcEVudW1lcmF0b3IgPSBOVUxMOw0KPiAtICAgIEhSRVNVTFQgaHJlcyA9IHdtaS0+
bXBTdmMtPkV4ZWNRdWVyeShMIldRTCIsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHF1ZXJ5LA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBXQkVNX0ZMQUdfRk9SV0FSRF9PTkxZIHwNCj4gV0JFTV9GTEFHX1JFVFVSTl9JTU1F
RElBVEVMWSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVM
TCwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBFbnVtZXJh
dG9yKTsNCj4gLSAgICBpZiAoRkFJTEVEKGhyZXMpKQ0KPiAtICAgIHsNCj4gLSAgICAgICAgREJH
UFJJTlQoKCJFeGVjUXVlcnkgZmFpbGVkXG4iKSk7DQo+IC0gICAgICAgIHBFbnVtZXJhdG9yID0g
TlVMTDsNCj4gLSAgICB9DQo+IC0gICAgcmV0dXJuIHBFbnVtZXJhdG9yOw0KPiAtfQ0KPiAtDQo+
IC1MT05HIHdtaWNvdW50ID0gMDsNCj4gLXN0YXRpYyBCT09MRUFOIGNvbV9pbml0aWFsaXplZCA9
IGZhbHNlOw0KPiAtc3RhdGljIElXYmVtTG9jYXRvciAqbG9jYXRvciA9IDA7DQo+IC1CT09MIElu
aXRDb20odm9pZCkgew0KPiAtICAgIEhSRVNVTFQgaHJlczsNCj4gLSAgICBYc0xvZygiSW5pdCBD
T00iKTsNCj4gLSAgICBocmVzID0gQ29Jbml0aWFsaXplRXgoMCwgQ09JTklUX01VTFRJVEhSRUFE
RUQpOw0KPiAtICAgIGlmIChGQUlMRUQoaHJlcykpIHsNCj4gLSAgICAgICAgZ290byBlcnJfb3V0
Ow0KPiAtICAgIH0NCj4gLSAgICBjb21faW5pdGlhbGl6ZWQgPSBUUlVFOw0KPiAtICAgIC8vd21p
LT5vd25pbmdfdGhyZWFkID0gR2V0Q3VycmVudFRocmVhZCgpOw0KPiAtICAgIC8vWHNMb2coIldt
aSBjb25uZWN0IHRocmVhZCAlcCIsIEdldEN1cnJlbnRUaHJlYWQoKSk7DQo+IC0gICAgLy8gSW5p
dGlhbGl6ZSBDT00gc2VjdXJpdHkuICBNb3N0IG9mIHRoaXMgaXMgaXJyZWxldmFudCB0byB1cy4N
Cj4gLSAgICBYc0xvZygiSW5pdCBzZWN1cml0eSIpOw0KPiAtICAgIGhyZXMgPSBDb0luaXRpYWxp
emVTZWN1cml0eSgNCj4gLSAgICAgICAgTlVMTCwgICAgIC8qIFNlY3VyaXR5IGRlc2NyaXB0b3Iu
IE9ubHkgcmVsZXZhbnQgdG8gc2VydmVycyAqLw0KPiAtICAgICAgICAtMSwgICAgICAgLyogTnIu
IG9mIGF1dGggc2VydmljZXMuIE9ubHkgcmVsZXZhbnQgdG8gc2VydmVycyAqLw0KPiAtICAgICAg
ICBOVUxMLCAgICAgLyogTGlzdCBvZiBhdXRoIHNlcnZpY2VzLiBPbmx5IHJlbGV2YW50IHRvIHNl
cnZlcnMgKi8NCj4gLSAgICAgICAgTlVMTCwgICAgIC8qIFJlc2VydmVkICovDQo+IC0gICAgICAg
IFJQQ19DX0FVVEhOX0xFVkVMX0RFRkFVTFQsIC8qIERlZmF1bHQgYXV0aGVudGljYXRpb24uICBU
aGUNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzIGRv
bid0IHJlYWxseSBtYXR0ZXIgd2hlbg0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHlvdSdyZSBsb2NhbGhvc3QuICovDQo+IC0gICAgICAgIFJQQ19DX0lNUF9MRVZF
TF9JTVBFUlNPTkFURSwgLyogV01JIG5lZWRzIHRvIGJlIGFibGUgdG8NCj4gLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbXBlcnNvbmF0ZSB1cy4gKi8NCj4gLSAgICAg
ICAgTlVMTCwgICAgICAgICAgICAgLyogQXV0aGVudGljYXRpb24gaW5mbyAqLw0KPiAtICAgICAg
ICBFT0FDX05PTkUsICAgICAgICAvKiBBZGRpdGlvbmFsIGNhcGFiaWxpdGllcyAqLw0KPiAtICAg
ICAgICBOVUxMICAgICAgICAgICAgICAvKiBSZXNlcnZlZCAqLw0KPiAtICAgICAgICApOw0KPiAt
ICAgIGlmIChGQUlMRUQoaHJlcykpIHsNCj4gLSAgICAgICAgZ290byBlcnJfb3V0Ow0KPiAtICAg
IH0NCj4gLSAgICAgICAgICAgIE91dHB1dERlYnVnU3RyaW5nKCJDcmVhdGVJbnN0YW5jZVxuIik7
DQo+IC0gICAgICAgIGhyZXMgPSBDb0NyZWF0ZUluc3RhbmNlKA0KPiAtICAgICAgICAgICAgQ0xT
SURfV2JlbUxvY2F0b3IsDQo+IC0gICAgICAgICAgICAwLA0KPiAtICAgICAgICAgICAgQ0xTQ1RY
X0lOUFJPQ19TRVJWRVIsDQo+IC0gICAgICAgICAgICBJSURfSVdiZW1Mb2NhdG9yLA0KPiAtICAg
ICAgICAgICAgKExQVk9JRCAqKSAmbG9jYXRvcik7DQo+IC0gICAgICAgIE91dHB1dERlYnVnU3Ry
aW5nKCJDaGVjayBocmVzXG4iKTsNCj4gLSAgICAgICAgaWYgKEZBSUxFRChocmVzKSkgew0KPiAt
ICAgICAgICAgICAgZ290byBlcnJfb3V0Ow0KPiAtICAgICAgICB9DQo+IC0gICAgICAgIGlmIChs
b2NhdG9yID09IE5VTEwpIHsNCj4gLSAgICAgICAgICAgIE91dHB1dERlYnVnU3RyaW5nKCJOdWxs
IGxvY2F0b3IiKTsNCj4gLSAgICAgICAgICAgIGdvdG8gZXJyX291dDsNCj4gLSAgICAgICAgfQ0K
PiAtICAgIHJldHVybiB0cnVlOw0KPiAtZXJyX291dDoNCj4gLSAgICByZXR1cm4gZmFsc2U7DQo+
IC19DQo+IC0NCj4gLUJPT0wgQ29ubmVjdFRvV01JKHZvaWQpDQo+IC17DQo+IC0gICAgICAgIElu
aXRDb20oKTsNCj4gLSAgICAgICAgSFJFU1VMVCBocmVzOw0KPiAtICAgICAgICBPdXRwdXREZWJ1
Z1N0cmluZygiQ29ubmVjdCB0byBXTUkiKTsNCj4gLSAgICAgICAgd21pY291bnQrKzsNCj4gLQ0K
PiAtICAgICAgICB3bWkgPSAoc3RydWN0IFdNSUFjY2Vzc29yICopWHNBbGxvYyhzaXplb2YoKndt
aSkpOw0KPiAtICAgICAgICBpZiAod21pID09IE5VTEwpIHsNCj4gLSAgICAgICAgICAgIHJldHVy
biBmYWxzZTsNCj4gLSAgICAgICAgfQ0KPiAtICAgICAgICBtZW1zZXQod21pLCAwLCBzaXplb2Yo
KndtaSkpOw0KPiAtDQo+IC0NCj4gLSAgICAgICAgT3V0cHV0RGVidWdTdHJpbmcoIkNvbm5lY3Qg
U2VydmVyXG4iKTsNCj4gLSAgICAgICAgdHJ5IHsNCj4gLSAgICAgICAgICAgIGhyZXMgPSBsb2Nh
dG9yLT5Db25uZWN0U2VydmVyKA0KPiAtICAgICAgICAgICAgICAgIEwicm9vdFxcQ0lNVjIiLCAg
ICAgICAgICAvLyBXTUkgbmFtZXNwYWNlDQo+IC0gICAgICAgICAgICAgICAgTlVMTCwgICAgICAg
ICAgICAgICAgICAgIC8vIFVzZXIgbmFtZQ0KPiAtICAgICAgICAgICAgICAgIE5VTEwsICAgICAg
ICAgICAgICAgICAgICAvLyBVc2VyIHBhc3N3b3JkDQo+IC0gICAgICAgICAgICAgICAgTlVMTCwg
ICAgICAgICAgICAgICAgICAgIC8vIExvY2FsZQ0KPiAtICAgICAgICAgICAgICAgIDAsICAgICAg
ICAgICAgICAgICAgICAgICAvLyBTZWN1cml0eSBmbGFncw0KPiAtICAgICAgICAgICAgICAgIE5V
TEwsICAgICAgICAgICAgICAgICAgICAvLyBBdXRob3JpdHkNCj4gLSAgICAgICAgICAgICAgICBO
VUxMLCAgICAgICAgICAgICAgICAgICAgLy8gQ29udGV4dCBvYmplY3QNCj4gLSAgICAgICAgICAg
ICAgICAmKHdtaS0+bXBTdmMpICAgICAgICAgICAgICAvLyBJV2JlbVNlcnZpY2VzIHByb3h5DQo+
IC0gICAgICAgICAgICAgICAgKTsNCj4gLSAgICAgICAgfQ0KPiAtICAgICAgICBjYXRjaCguLi4p
IHsNCj4gLSAgICAgICAgICAgIE91dHB1dERlYnVnU3RyaW5nKCJFeGNlcHRpb24gY29ubmVjdGlu
ZyB0byBzZXJ2ZXJcbiIpOw0KPiAtICAgICAgICAgICAgZ290byBlcnJfb3V0Ow0KPiAtICAgICAg
ICB9DQo+IC0NCj4gLSAgICAgICAgT3V0cHV0RGVidWdTdHJpbmcoIkNoZWNrIHJlc3VsdFxuIik7
DQo+IC0gICAgICAgIGlmIChGQUlMRUQoaHJlcykpIHsNCj4gLSAgICAgICAgICAgIGdvdG8gZXJy
X291dDsNCj4gLSAgICAgICAgfQ0KPiAtICAgICAgICAvKiBXTUkgbmVlZHMgdG8gaW1wZXJzb25h
dGUgdXMsIGJlY2F1c2UgaXQgbm9ybWFsbHkgcnVucyBhcyBhbg0KPiAtICAgICAgICAgICB1bnBy
aXZpbGVnZWQgdXNlciBhbmQgbmVlZHMgb3VyIGF1dGhvcml0eSBpbiBvcmRlciB0byBhY2Nlc3MN
Cj4gLSAgICAgICAgICAgZGV2aWNlIGZpbGVzIGFuZCBzbyBmb3J0aC4gIFR1cm4gaW1wZXJzb25h
dGlvbiBvbi4gKi8NCj4gLSAgICAgICAgT3V0cHV0RGVidWdTdHJpbmcoIlByb3h5IGJsYW5rZXRc
biIpOw0KPiAtICAgICAgICBocmVzID0gQ29TZXRQcm94eUJsYW5rZXQoDQo+IC0gICAgICAgICAg
ICB3bWktPm1wU3ZjLCAgICAgICAgICAgICAgICAgIC8vIHRoZSBwcm94eSB0byBzZXQNCj4gLSAg
ICAgICAgICAgIFJQQ19DX0FVVEhOX1dJTk5ULCAgICAgICAgICAgLyogTEFOIG1hbmFnZXIgYXV0
aGVudGljYXRpb24sDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFsdGhvdWdoIGl0IGRvZXNuJ3QgcmVhbGx5DQo+IC0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1hdHRlciBvbiBsb2NhbGhvc3QuICovDQo+IC0gICAgICAg
ICAgICBSUENfQ19BVVRIWl9OT05FLCAgICAgICAgICAgIC8vIExBTk1BTiBjYW4ndCBkbyBtdWNo
IGF1dGhvcml6YXRpb24uDQo+IC0gICAgICAgICAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIFNlcnZlciBwcmluY2lwYWwgbmFtZQ0KPiAtICAgICAgICAgICAgUlBDX0NfQVVUSE5f
TEVWRUxfQ0FMTCwgICAgICAvLyBEbyBhdXRoZW50aWNhdGlvbiBvbiBldmVyeSBjYWxsDQo+IC0g
ICAgICAgICAgICBSUENfQ19JTVBfTEVWRUxfSU1QRVJTT05BVEUsIC8vIEFsbG93IGZ1bGwgaW1w
ZXJzb25hdGlvbi4NCj4gLSAgICAgICAgICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gVXNlIGN1cnJlbnQgY2xpZW50IGlkZW50aXR5DQo+IC0gICAgICAgICAgICBFT0FDX05PTkUg
ICAgICAgICAgICAgICAgICAgIC8vIE5vIGV4dGVuZGVkIHByb3h5IGNhcGFiaWxpdGllcw0KPiAt
ICAgICAgICApOw0KPiAtICAgICAgICBpZiAoRkFJTEVEKGhyZXMpKSB7DQo+IC0gICAgICAgICAg
ICBnb3RvIGVycl9vdXQ7DQo+IC0gICAgICAgIH0NCj4gLSAgICAgICAgT3V0cHV0RGVidWdTdHJp
bmcoIldNSSBTZXJ2ZXJcbiIpOw0KPiAtICAgICAgICBocmVzID0gbG9jYXRvci0+Q29ubmVjdFNl
cnZlcigNCj4gLSAgICAgICAgICAgIEwicm9vdFxcV01JIiwgICAgICAgICAgLy8gV01JIG5hbWVz
cGFjZQ0KPiAtICAgICAgICAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgIC8vIFVzZXIgbmFt
ZQ0KPiAtICAgICAgICAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgIC8vIFVzZXIgcGFzc3dv
cmQNCj4gLSAgICAgICAgICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAvLyBMb2NhbGUNCj4g
LSAgICAgICAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAvLyBTZWN1cml0eSBmbGFncw0K
PiAtICAgICAgICAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgIC8vIEF1dGhvcml0eQ0KPiAt
ICAgICAgICAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgIC8vIENvbnRleHQgb2JqZWN0DQo+
IC0gICAgICAgICAgICAmd21pLT5tcFhTU3ZjICAgICAgICAgICAgICAvLyBJV2JlbVNlcnZpY2Vz
IHByb3h5DQo+IC0gICAgICAgICAgICApOw0KPiAtDQo+IC0gICAgICAgIGlmIChGQUlMRUQoaHJl
cykpIHsNCj4gLSAgICAgICAgICAgIGdvdG8gZXJyX291dDsNCj4gLSAgICAgICAgfQ0KPiAtICAg
ICAgICBPdXRwdXREZWJ1Z1N0cmluZygiSW1wZXJzb25hdGlvblxuIik7DQo+IC0gICAgICAgIC8q
IFdNSSBuZWVkcyB0byBpbXBlcnNvbmF0ZSB1cywgYmVjYXVzZSBpdCBub3JtYWxseSBydW5zIGFz
IGFuDQo+IC0gICAgICAgICAgIHVucHJpdmlsZWdlZCB1c2VyIGFuZCBuZWVkcyBvdXIgYXV0aG9y
aXR5IGluIG9yZGVyIHRvIGFjY2Vzcw0KPiAtICAgICAgICAgICBkZXZpY2UgZmlsZXMgYW5kIHNv
IGZvcnRoLiAgVHVybiBpbXBlcnNvbmF0aW9uIG9uLiAqLw0KPiAtICAgICAgICBocmVzID0gQ29T
ZXRQcm94eUJsYW5rZXQoDQo+IC0gICAgICAgICAgICB3bWktPm1wWFNTdmMsICAgICAgICAgICAg
ICAgICAgLy8gdGhlIHByb3h5IHRvIHNldA0KPiAtICAgICAgICAgICAgUlBDX0NfQVVUSE5fV0lO
TlQsICAgICAgICAgICAvKiBMQU4gbWFuYWdlciBhdXRoZW50aWNhdGlvbiwNCj4gLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0aG91Z2ggaXQgZG9lc24ndCBy
ZWFsbHkNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0
dGVyIG9uIGxvY2FsaG9zdC4gKi8NCj4gLSAgICAgICAgICAgIFJQQ19DX0FVVEhaX05PTkUsICAg
ICAgICAgICAgLy8gTEFOTUFOIGNhbid0IGRvIG11Y2ggYXV0aG9yaXphdGlvbi4NCj4gLSAgICAg
ICAgICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2VydmVyIHByaW5jaXBhbCBu
YW1lDQo+IC0gICAgICAgICAgICBSUENfQ19BVVRITl9MRVZFTF9DQUxMLCAgICAgIC8vIERvIGF1
dGhlbnRpY2F0aW9uIG9uIGV2ZXJ5IGNhbGwNCj4gLSAgICAgICAgICAgIFJQQ19DX0lNUF9MRVZF
TF9JTVBFUlNPTkFURSwgLy8gQWxsb3cgZnVsbCBpbXBlcnNvbmF0aW9uLg0KPiAtICAgICAgICAg
ICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAvLyBVc2UgY3VycmVudCBjbGllbnQgaWRl
bnRpdHkNCj4gLSAgICAgICAgICAgIEVPQUNfTk9ORSAgICAgICAgICAgICAgICAgICAgLy8gTm8g
ZXh0ZW5kZWQgcHJveHkgY2FwYWJpbGl0aWVzDQo+IC0gICAgICAgICk7DQo+IC0gICAgICAgIGlm
IChGQUlMRUQoaHJlcykpIHsNCj4gLSAgICAgICAgICAgIGdvdG8gZXJyX291dDsNCj4gLSAgICAg
ICAgfQ0KPiAtDQo+IC0NCj4gLSAgICBPdXRwdXREZWJ1Z1N0cmluZygiV21pIGNvbm5lY3RlZFxu
Iik7DQo+IC0gICAgLyogQWxsIGRvbmUuICovDQo+IC0gICAgcmV0dXJuIHRydWU7DQo+IC0NCj4g
LWVycl9vdXQ6DQo+IC0gICAgT3V0cHV0RGVidWdTdHJpbmcoIldNSSBjb25uZWN0aW9uIGZhaWxl
ZFxuIik7DQo+IC0gICAgUmVsZWFzZVdNSUFjY2Vzc29yKCZ3bWkpOw0KPiAtICAgIHJldHVybiBm
YWxzZTsNCj4gLX0NCj4gLQ0KPiAtDQo+IC12b2lkIFJlbGVhc2VDb20odm9pZCkgew0KPiAtDQo+
IC0gICAgaWYgKGNvbV9pbml0aWFsaXplZCkgew0KPiAtICAgICAgICBPdXRwdXREZWJ1Z1N0cmlu
ZygiUmVsZWFzZSBsb2NhdG9yXG4iKTsNCj4gLSAgICAgICAgbG9jYXRvci0+UmVsZWFzZSgpOw0K
PiAtICAgICAgICAvL1hzTG9nKCJXbWkgZGlzY29ubmVjdCB0aHJlYWQgJXAiLCBHZXRDdXJyZW50
VGhyZWFkKCkpOw0KPiAtICAgICAgICAvL0FTU0VSVCgoKndtaSktPm93bmluZ190aHJlYWQgPT0g
R2V0Q3VycmVudFRocmVhZCgpKTsNCj4gLSAgICAgICAgY29tX2luaXRpYWxpemVkID0gMDsNCj4g
LSAgICAgICAgT3V0cHV0RGVidWdTdHJpbmcoIlVuaW5pdGlhbGl6ZSBjb21cbiIpOw0KPiAtICAg
ICAgICBDb1VuaW5pdGlhbGl6ZSgpOw0KPiAtDQo+IC0gICAgfQ0KPiAtfQ0KPiAtDQo+IC0vKiBD
YXJlZnVsOiBXTUkgYWNjZXNzb3JzIG11c3QgYmUgcmVsZWFzZWQgb24gdGhlIHNhbWUgdGhyZWFk
IHRoYXQNCj4gLSAgIGFsbG9jYXRlZCB0aGVtLiAqLw0KPiAtdm9pZCBSZWxlYXNlV01JQWNjZXNz
b3Ioc3RydWN0IFdNSUFjY2Vzc29yICoqd21pKQ0KPiAtew0KPiAtICAgIE91dHB1dERlYnVnU3Ry
aW5nKCJTaG91bGQgSSByZWxlYXNlIHdtaT9cbiIpOw0KPiAtICAgIGlmICgqd21pID09IE5VTEwp
DQo+IC0gICAgICAgIHJldHVybjsNCj4gLSAgICBPdXRwdXREZWJ1Z1N0cmluZygiR2V0IHJpZCBv
ZiBXTUkgc2VydmVyc1xuIik7DQo+IC0gICAgaWYgKCgqd21pKS0+bXBYU1N2YyAhPSBOVUxMKQ0K
PiAtICAgICAgICAoKndtaSktPm1wWFNTdmMtPlJlbGVhc2UoKTsNCj4gLSAgICBpZiAoKCp3bWkp
LT5tcFN2YyAhPSBOVUxMKQ0KPiAtICAgICAgICAoKndtaSktPm1wU3ZjLT5SZWxlYXNlKCk7DQo+
IC0gICAgT3V0cHV0RGVidWdTdHJpbmcoIkNsZWFyIFdtSVxuIik7DQo+IC0gICAgLyogUG9pc29u
IHdtaSB0byBtYWtlIHVzZS1hZnRlci1mcmVlKClzIGEgYml0IG1vcmUgb2J2aW91cy4gKi8NCj4g
LSAgICBtZW1zZXQoKCp3bWkpLCAweGFiLCBzaXplb2YoKip3bWkpKTsNCj4gLSAgICBYc0ZyZWUo
KndtaSk7DQo+IC0gICAgKndtaSA9IE5VTEw7DQo+IC0gICAgUmVsZWFzZUNvbSgpOw0KPiAtICAg
IE91dHB1dERlYnVnU3RyaW5nKCJSZWxlYXNlZCBXTUlcbiIpOw0KPiAtfQ0KPiAtDQo+IC0vKiBU
aGUgZmFjdCB0aGF0IHNvbWV0aGluZyBpcyBkb2N1bWVudGVkIGFzIGJlaW5nIGEgdWludDY0X3Qg
ZmllbGQNCj4gLSAgIGRvZXNuJ3QgaW1wbHkgdGhhdCBpdCB3aWxsIGJlIHJldHVybmVkIGFzIGEg
VlRfVUk4IGZpZWxkIGluIGENCj4gLSAgIHZhcmlhbnQgc3RydWN0dXJlLiAgV29yayBhcm91bmQg
dGhpcyB3aXRoIGEgaGFuZHkgY29udmVyc2lvbg0KPiAtICAgZnVuY3Rpb24uICovDQo+IC1zdGF0
aWMgdWludDY0X3QNCj4gLUdldFZhcmlhbnRVaW50NjQoVkFSSUFOVCAqdnREYXRhKQ0KPiAtew0K
PiAtICAgIHN3aXRjaCAodnREYXRhLT52dCkgew0KPiAtICAgIGNhc2UgVlRfSTI6DQo+IC0gICAg
ICAgIHJldHVybiB2dERhdGEtPmlWYWw7DQo+IC0gICAgY2FzZSBWVF9JNDoNCj4gLSAgICAgICAg
cmV0dXJuIHZ0RGF0YS0+bFZhbDsNCj4gLSAgICBjYXNlIFZUX0k4Og0KPiAtICAgICAgICByZXR1
cm4gdnREYXRhLT5sbFZhbDsNCj4gLSAgICBjYXNlIFZUX1VJMjoNCj4gLSAgICAgICAgcmV0dXJu
IHZ0RGF0YS0+dWlWYWw7DQo+IC0gICAgY2FzZSBWVF9VSTQ6DQo+IC0gICAgICAgIHJldHVybiB2
dERhdGEtPnVsVmFsOw0KPiAtICAgIGNhc2UgVlRfVUk4Og0KPiAtICAgICAgICByZXR1cm4gdnRE
YXRhLT51bGxWYWw7DQo+IC0gICAgY2FzZSBWVF9CU1RSOg0KPiAtICAgICAgICAvKiBZZXMsIEkg
cmVhbGx5IGRvIG1lYW4gQlNUUjogWFAgcmV0dXJucyA2NCBiaXQgdmFsdWVzIGFzDQo+IC0gICAg
ICAgICAgIHN0cmluZ3MsIGFuZCB3ZSB0aGVuIGhhdmUgdG8gZG8gYXRvaWxsIG9uIGl0LiAqLw0K
PiAtICAgICAgICByZXR1cm4gX3d0b2k2NCh2dERhdGEtPmJzdHJWYWwpOw0KPiAtICAgIGRlZmF1
bHQ6DQo+IC0gICAgICAgIERCR1BSSU5UKCgiQmFkIHVpbnQ2NF90IHZhcmlhbnQgJWQuXG4iLHZ0
RGF0YS0+dnQpKTsNCj4gLSAgICAgICAgcmV0dXJuIC0xOw0KPiAtICAgIH0NCj4gLX0NCj4gLQ0K
PiAtc3RhdGljIEhSRVNVTFQNCj4gLVF1ZXJ5VmFyaWFudChXTUlBY2Nlc3NvciAqd21pLCBQV0NI
QVIgZmllbGQsIFBXQ0hBUiB0YWJsZSwgVkFSSUFOVA0KPiAqdnQpDQo+IC17DQo+IC0gICAgSUVu
dW1XYmVtQ2xhc3NPYmplY3QgKnBFbnVtOw0KPiAtICAgIEJTVFIgcXVlcnk7DQo+IC0gICAgc2l6
ZV90IHF1ZXJ5X2xlbjsNCj4gLSAgICBJV2JlbUNsYXNzT2JqZWN0ICpwY2xzT2JqOw0KPiAtICAg
IEhSRVNVTFQgaHI7DQo+IC0gICAgVUxPTkcgdVJldHVybjsNCj4gLQ0KPiAtICAgIHF1ZXJ5X2xl
biA9IHN0cmxlbigiU0VMRUNUICBGUk9NICIpICsgd2NzbGVuKGZpZWxkKSArIHdjc2xlbih0YWJs
ZSkgKyAxOw0KPiAtICAgIHF1ZXJ5ID0gU3lzQWxsb2NTdHJpbmdMZW4oTlVMTCwgKFVJTlQpcXVl
cnlfbGVuKTsNCj4gLSAgICBpZiAocXVlcnkgPT0gTlVMTCkgew0KPiAtICAgICAgICBociA9IEVf
T1VUT0ZNRU1PUlk7DQo+IC0gICAgICAgIGdvdG8gZXJyOw0KPiAtICAgIH0NCj4gLSAgICBzd3By
aW50Zl9zKHF1ZXJ5LCBxdWVyeV9sZW4sIEwiU0VMRUNUICVzIEZST00gJXMiLCBmaWVsZCwgdGFi
bGUpOw0KPiAtICAgIHBFbnVtID0gcnVuUXVlcnkod21pLCBxdWVyeSk7DQo+IC0gICAgU3lzRnJl
ZVN0cmluZyhxdWVyeSk7DQo+IC0NCj4gLSAgICBpZiAocEVudW0gPT0gTlVMTCkgew0KPiAtICAg
ICAgICBociA9IEVfT1VUT0ZNRU1PUlk7DQo+IC0gICAgICAgIGdvdG8gZXJyOw0KPiAtICAgIH0N
Cj4gLQ0KPiAtICAgIGhyID0gcEVudW0tPk5leHQoV0JFTV9JTkZJTklURSwgMSwgJnBjbHNPYmos
ICZ1UmV0dXJuKTsNCj4gLSAgICBwRW51bS0+UmVsZWFzZSgpOw0KPiAtICAgIGlmIChGQUlMRUQo
aHIpKQ0KPiAtICAgICAgICBnb3RvIGVycjsNCj4gLSAgICBpZiAodVJldHVybiA9PSAwKSB7DQo+
IC0gICAgICAgIGhyID0gRV9GQUlMOw0KPiAtICAgICAgICBnb3RvIGVycjsNCj4gLSAgICB9DQo+
IC0NCj4gLSAgICBociA9IHBjbHNPYmotPkdldChmaWVsZCwgMCwgdnQsIE5VTEwsIE5VTEwpOw0K
PiAtICAgIHBjbHNPYmotPlJlbGVhc2UoKTsNCj4gLQ0KPiAtICAgIHJldHVybiBocjsNCj4gLQ0K
PiAtZXJyOg0KPiAtICAgIHJldHVybiBocjsNCj4gLX0NCj4gLQ0KPiAtc3RhdGljIHVpbnQ2NF90
DQo+IC1RdWVyeVVpbnQ2NChXTUlBY2Nlc3NvciAqd21pLCBQV0NIQVIgZmllbGQsIFBXQ0hBUiB0
YWJsZSkNCj4gLXsNCj4gLSAgICBIUkVTVUxUIGhyOw0KPiAtICAgIHVpbnQ2NF90IHJlczsNCj4g
LSAgICBWQVJJQU5UIHZ0Ow0KPiAtDQo+IC0gICAgbWVtc2V0KCZ2dCwgMCwgc2l6ZW9mKHZ0KSk7
DQo+IC0NCj4gLSAgICBociA9IFF1ZXJ5VmFyaWFudCh3bWksIGZpZWxkLCB0YWJsZSwgJnZ0KTsN
Cj4gLSAgICBpZiAoRkFJTEVEKGhyKSkNCj4gLSAgICAgICAgcmV0dXJuIDA7DQo+IC0NCj4gLSAg
ICByZXMgPSBHZXRWYXJpYW50VWludDY0KCZ2dCk7DQo+IC0gICAgVmFyaWFudENsZWFyKCZ2dCk7
DQo+IC0gICAgcmV0dXJuIHJlczsNCj4gLX0NCj4gLQ0KPiAtc3RhdGljIEJTVFINCj4gLVF1ZXJ5
QnN0cihXTUlBY2Nlc3NvciAqd21pLCBQV0NIQVIgZmllbGQsIFBXQ0hBUiB0YWJsZSkNCj4gLXsN
Cj4gLSAgICBIUkVTVUxUIGhyOw0KPiAtICAgIFZBUklBTlQgdnQ7DQo+IC0NCj4gLSAgICBtZW1z
ZXQoJnZ0LCAwLCBzaXplb2YodnQpKTsNCj4gLQ0KPiAtICAgIGhyID0gUXVlcnlWYXJpYW50KHdt
aSwgZmllbGQsIHRhYmxlLCAmdnQpOw0KPiAtICAgIGlmIChGQUlMRUQoaHIpKQ0KPiAtICAgICAg
ICByZXR1cm4gTlVMTDsNCj4gLSAgICBpZiAodnQudnQgIT0gVlRfQlNUUikgew0KPiAtICAgICAg
ICBWYXJpYW50Q2xlYXIoJnZ0KTsNCj4gLSAgICAgICAgcmV0dXJuIE5VTEw7DQo+IC0gICAgfQ0K
PiAtICAgIHJldHVybiB2dC5ic3RyVmFsOw0KPiAtfQ0KPiAtDQo+IC0NCj4gLQ0KPiAtLyogaGFz
aCBjb21wYXJhdG9yIGZvciBzdHJpbmdzIHdoaWNoIHN0cmlwcyBvZmYgdHJhaWxpbmcgLmV4ZQ0K
PiAtICogc3VmZml4ICovDQo+IC1jbGFzcyBzdHJpbmdfZXFfZXhlIHsNCj4gLXByaXZhdGU6DQo+
IC0gICAgc3RhdGljIHNpemVfdCBsZW5fd2l0aG91dF9zdWZmaXgoY29uc3QgY2hhciAqeCkNCj4g
LSAgICB7DQo+IC0gICAgICAgIHNpemVfdCBsOw0KPiAtICAgICAgICBsID0gc3RybGVuKHgpOw0K
PiAtICAgICAgICBpZiAobCA+IDQgJiYgIXN0cmNtcCh4ICsgbCAtIDQsICIuZXhlIikpDQo+IC0g
ICAgICAgICAgICBsIC09IDQ7DQo+IC0gICAgICAgIHJldHVybiBsOw0KPiAtICAgIH0NCj4gLQ0K
PiAtcHVibGljOg0KPiAtICAgIGVudW0ge2J1Y2tldF9zaXplID0gNCwgbWluX2J1Y2tldHMgPSA4
fTsNCj4gLSAgICBib29sIG9wZXJhdG9yKCkoY29uc3Qgc3RyaW5nICZhLCBjb25zdCBzdHJpbmcg
JmIpIGNvbnN0DQo+IC0gICAgew0KPiAtICAgICAgICBjb25zdCBjaGFyICphX2MsICpiX2M7DQo+
IC0gICAgICAgIHNpemVfdCBhX2wsIGJfbDsNCj4gLSAgICAgICAgYV9jID0gYS5jX3N0cigpOw0K
PiAtICAgICAgICBiX2MgPSBiLmNfc3RyKCk7DQo+IC0gICAgICAgIGFfbCA9IGxlbl93aXRob3V0
X3N1ZmZpeChhX2MpOw0KPiAtICAgICAgICBiX2wgPSBsZW5fd2l0aG91dF9zdWZmaXgoYl9jKTsN
Cj4gLQ0KPiAtICAgICAgICBpZiAoYV9sICE9IGJfbCkNCj4gLSAgICAgICAgICAgIHJldHVybiAx
Ow0KPiAtICAgICAgICBpZiAobWVtY21wKGFfYywgYl9jLCBhX2wpKQ0KPiAtICAgICAgICAgICAg
cmV0dXJuIDE7DQo+IC0gICAgICAgIGVsc2UNCj4gLSAgICAgICAgICAgIHJldHVybiAwOw0KPiAt
ICAgIH0NCj4gLQ0KPiAtICAgIHNpemVfdCBvcGVyYXRvcigpKGNvbnN0IHN0cmluZyAmYSkgY29u
c3QNCj4gLSAgICB7DQo+IC0gICAgICAgIHNpemVfdCBhY2MgPSAwOw0KPiAtICAgICAgICBjb25z
dCBjaGFyICpjX3N0ciA9IGEuY19zdHIoKTsNCj4gLSAgICAgICAgc2l6ZV90IGxlbiA9IGxlbl93
aXRob3V0X3N1ZmZpeChjX3N0cik7DQo+IC0gICAgICAgIHVuc2lnbmVkIHg7DQo+IC0gICAgICAg
IGZvciAoeCA9IDA7IHggPCBsZW47IHgrKykNCj4gLSAgICAgICAgICAgIGFjYyA9IChhY2MgKiAx
NyArIGNfc3RyW3hdKSAlIDI1NzsNCj4gLSAgICAgICAgcmV0dXJuIGFjYzsNCj4gLSAgICB9DQo+
IC19Ow0KPiAtDQo+IC0NCj4gLUlXYmVtQ2xhc3NPYmplY3QgKmdldEJhc2UoV01JQWNjZXNzb3Iq
KiB3bWkpDQo+IC17DQo+IC0gICAgSVdiZW1DbGFzc09iamVjdCogYmFzZSA9IGdldE9iamVjdCh3
bWksIE9CSkVDVF9OQU1FX1coQmFzZSkpOw0KPiAtICAgIGlmIChiYXNlID09IE5VTEwpIHsNCj4g
LSAgICAgICAgKndtaSA9IE5VTEw7DQo+IC0gICAgICAgIHJldHVybiBOVUxMOw0KPiAtICAgIH0N
Cj4gLSAgICByZXR1cm4gYmFzZTsNCj4gLX0NCj4gLQ0KPiAtSVdiZW1DbGFzc09iamVjdCAqZ2V0
QmFzZUNsYXNzKFdNSUFjY2Vzc29yKiogd21pKQ0KPiAtew0KPiAtICAgIElXYmVtQ2xhc3NPYmpl
Y3QqIGJhc2VjbGFzcyA9IGdldENsYXNzKHdtaSwgT0JKRUNUX05BTUVfVyhCYXNlKSk7DQo+IC0g
ICAgaWYgKGJhc2VjbGFzcyA9PSBOVUxMKSB7DQo+IC0gICAgICAgICp3bWkgPSBOVUxMOw0KPiAt
ICAgICAgICByZXR1cm4gTlVMTDsNCj4gLSAgICB9DQo+IC0gICAgcmV0dXJuIGJhc2VjbGFzczsN
Cj4gLX0NCj4gLQ0KPiAtVUxPTkdMT05HIGdldDY0Qml0VW5zaWduZWQoVkFSSUFOVCAqdmFyKSB7
DQo+IC0gICAgVUxPTkdMT05HIHJlcyA9IDA7DQo+IC0gICAgc3dpdGNoICh2YXItPnZ0KSB7DQo+
IC0gICAgICAgIGNhc2UgVlRfQlNUUjogew0KPiAtICAgICAgICAgICAgICAgIFZBUklBTlQgb3V0
dmFyOw0KPiAtICAgICAgICAgICAgICAgIFZhcmlhbnRJbml0KCZvdXR2YXIpOw0KPiAtICAgICAg
ICAgICAgICAgIFZhcmlhbnRDaGFuZ2VUeXBlKCZvdXR2YXIsIHZhciwgMCwgVlRfVUk4KTsNCj4g
LSAgICAgICAgICAgICAgICByZXMgPSBvdXR2YXIudWxsVmFsOw0KPiAtICAgICAgICAgICAgICAg
IFZhcmlhbnRDbGVhcigmb3V0dmFyKTsNCj4gLSAgICAgICAgICAgIH0NCj4gLSAgICAgICAgICAg
IGJyZWFrOw0KPiAtICAgICAgICBjYXNlIFZUX1VJODogew0KPiAtICAgICAgICAgICAgICAgIHJl
cyA9IHZhci0+dWxsVmFsOw0KPiAtICAgICAgICAgICAgfQ0KPiAtICAgICAgICAgICAgYnJlYWs7
DQo+IC0gICAgfQ0KPiAtICAgIHJldHVybiByZXM7DQo+IC19DQo+IC0NCj4gLUZJTEVUSU1FIFdt
aUdldFhlblRpbWUoV01JQWNjZXNzb3IgKip3bWkpIHsNCj4gLSAgICAgRklMRVRJTUUgb3V0Ow0K
PiAtDQo+IC0gICAgIElXYmVtQ2xhc3NPYmplY3QgKmJhc2UgPSBnZXRCYXNlKHdtaSk7DQo+IC0g
ICAgIGlmIChiYXNlID09IE5VTEwpIHsNCj4gLSAgICAgICAgIERCR1BSSU5UKCgiVW5hYmxlIHRv
IGZpbmQgYmFzZSBXTUkgc2Vzc2lvblxuIikpOw0KPiAtICAgICAgICAgZ290byBnZXRiYXNlZmFp
bGVkOw0KPiAtICAgICB9DQo+IC0NCj4gLSAgICAgVkFSSUFOVCB0aW1ldmFyOw0KPiAtICAgICBC
U1RSIHRpbWVuYW1lID0gbWtCc3RyKCJYZW5UaW1lIiwgNyk7DQo+IC0gICAgIGlmICh0aW1lbmFt
ZSA9PSBOVUxMKQ0KPiAtICAgICAgICAgZ290byBidWlsZHRpbWVuYW1lZmFpbGVkOw0KPiAtDQo+
IC0NCj4gLQ0KPiAtICAgICBpZiAoRkFJTEVEKGJhc2UtPkdldCh0aW1lbmFtZSwgMCwgJnRpbWV2
YXIsIE5VTEwsIE5VTEwpKSkNCj4gLSAgICAgICAgIGdvdG8gZ2V0dGltZWZhaWxlZDsNCj4gLQ0K
PiAtICAgICBVTE9OR0xPTkcgdGltZSA9Z2V0NjRCaXRVbnNpZ25lZCgmdGltZXZhcik7Ow0KPiAt
DQo+IC0gICAgIG91dC5kd0xvd0RhdGVUaW1lID0gKERXT1JEKXRpbWU7DQo+IC0gICAgIG91dC5k
d0hpZ2hEYXRlVGltZSA9IChEV09SRCkodGltZT4+MzIpOw0KPiAtICAgICByZXR1cm4gb3V0Ow0K
PiAtDQo+IC1nZXR0aW1lZmFpbGVkOg0KPiAtYnVpbGR0aW1lbmFtZWZhaWxlZDoNCj4gLWdldGJh
c2VmYWlsZWQ6DQo+IC0gICAgIG91dC5kd0xvd0RhdGVUaW1lID0gMDsNCj4gLSAgICAgb3V0LmR3
SGlnaERhdGVUaW1lID0gMDsNCj4gLSAgICAgcmV0dXJuIG91dCA7DQo+IC19DQo+IC0NCj4gLUlX
YmVtQ2xhc3NPYmplY3QgKm9wZW5TZXNzaW9uKFdNSUFjY2Vzc29yKiogd21pLCBjb25zdCBjaGFy
DQo+ICpzZXNzaW9ubmFtZSkNCj4gLXsNCj4gLSAgICBIUkVTVUxUIGhyZXM7DQo+IC0NCj4gLSAg
ICBCU1RSIHF1ZXJ5ID0gZm9ybWF0QnN0cigiU0VMRUNUICogRlJPTSAiIE9CSkVDVF9OQU1FX0Eo
U2Vzc2lvbikgIg0KPiBXSEVSRSBJZD1cIiIgT0JKRUNUX1BSRUZJWF9TVFIgIiBYZW4gV2luMzIg
U2VydmljZSA6ICVzXCIiLA0KPiBzZXNzaW9ubmFtZSk7DQo+IC0gICAgaWYgKHF1ZXJ5ID09IE5V
TEwpDQo+IC0gICAgICAgIGdvdG8gZm9ybWF0c2Vzc2lvbmJzdHJmYWlsZWQ7DQo+IC0NCj4gLSAg
ICBJRW51bVdiZW1DbGFzc09iamVjdCAqIHNlc3Npb25zID0gcnVuWFNRdWVyeSh3bWksIHF1ZXJ5
KTsNCj4gLSAgICBTeXNGcmVlU3RyaW5nKHF1ZXJ5KTsNCj4gLQ0KPiAtICAgIGlmIChzZXNzaW9u
cykgew0KPiAtICAgICAgICBJV2JlbUNsYXNzT2JqZWN0ICpyZXR1cm5lZE9iamVjdDsNCj4gLSAg
ICAgICAgVUxPTkcgY291bnQ7DQo+IC0gICAgICAgIGhyZXMgPSBzZXNzaW9ucy0+TmV4dChXQkVN
X0lORklOSVRFLCAxLCAmcmV0dXJuZWRPYmplY3QsICZjb3VudCk7DQo+IC0gICAgICAgIHNlc3Np
b25zLT5SZWxlYXNlKCk7DQo+IC0NCj4gLSAgICAgICAgaWYgKGNvdW50PjApIHsNCj4gLSAgICAg
ICAgICAgIGlmIChzZXNzaW9ubmFtZSAhPU5VTEwgKSB7DQo+IC0gICAgICAgICAgICAgICAgaWYg
KCFXbWlTZXNzaW9uRW5kKHdtaSwgcmV0dXJuZWRPYmplY3QpKSB7DQo+IC0gICAgICAgICAgICAg
ICAgICAgIHJldHVybiBOVUxMOw0KPiAtICAgICAgICAgICAgICAgIH0NCj4gLSAgICAgICAgICAg
IH0NCj4gLSAgICAgICAgICAgIGVsc2Ugew0KPiAtICAgICAgICAgICAgICAgIHJldHVybiByZXR1
cm5lZE9iamVjdDsNCj4gLSAgICAgICAgICAgIH0NCj4gLSAgICAgICAgfQ0KPiAtICAgIH0NCj4g
LQ0KPiAtICAgIElXYmVtQ2xhc3NPYmplY3QgKmJhc2UgPSBnZXRCYXNlKHdtaSk7DQo+IC0gICAg
aWYgKGJhc2U9PU5VTEwpIHsNCj4gLSAgICAgICAgREJHUFJJTlQoKCJVbmFibGUgdG8gZmluZCBi
YXNlIFdNSSBzZXNzaW9uXG4iKSk7DQo+IC0gICAgICAgIGdvdG8gZ2V0YmFzZWZhaWxlZDsNCj4g
LSAgICB9DQo+IC0NCj4gLSAgICBJV2JlbUNsYXNzT2JqZWN0ICpiYXNlY2xhc3MgPSBnZXRCYXNl
Q2xhc3Mod21pKTsNCj4gLQ0KPiAtICAgIGlmIChiYXNlY2xhc3MgPT0gTlVMTCkNCj4gLSAgICAg
ICAgZ290byBnZXRiYXNlY2xhc3NmYWlsZWQ7DQo+IC0NCj4gLSAgICBJV2JlbUNsYXNzT2JqZWN0
ICppbk1ldGhvZDsNCj4gLQ0KPiAtICAgIElXYmVtQ2xhc3NPYmplY3QgKmluTWV0aG9kSW5zdDsN
Cj4gLSAgICBJV2JlbUNsYXNzT2JqZWN0ICpvdXRNZXRob2RJbnN0Ow0KPiAtICAgIGlmIChGQUlM
RUQoYmFzZWNsYXNzLT5HZXRNZXRob2QoTCJBZGRTZXNzaW9uIiwwLCZpbk1ldGhvZCwgTlVMTCkp
KQ0KPiAtICAgICAgICBnb3RvIGdldG1ldGhvZGFkZHNlc3Npb25mYWlsZWQ7DQo+IC0NCj4gLSAg
ICBpZiAoRkFJTEVEKGluTWV0aG9kLT5TcGF3bkluc3RhbmNlKDAsICZpbk1ldGhvZEluc3QpKSkN
Cj4gLSAgICAgICAgZ290byBpbm1ldGhvZHNwYXduZmFpbGVkOw0KPiAtDQo+IC0gICAgVkFSSUFO
VCB2YXI7DQo+IC0gICAgdmFyLnZ0ID0gVlRfQlNUUjsNCj4gLSAgICB2YXIuYnN0clZhbD1mb3Jt
YXRCc3RyKFZFTkRPUl9OQU1FX1NUUiAiICIgUFJPRFVDVF9OQU1FX1NUUiAiDQo+IFdpbjMyIFNl
cnZpY2UgOiAlcyIsIHNlc3Npb25uYW1lKTsNCj4gLQ0KPiAtICAgIGlmICh2YXIuYnN0clZhbCA9
PSBOVUxMKQ0KPiAtICAgICAgICBnb3RvIGZvcm1hdG5hbWVic3RyZmFpbGVkOw0KPiAtDQo+IC0g
ICAgaWYgKEZBSUxFRChpbk1ldGhvZEluc3QtPlB1dChMIklkIiwgMCwgJnZhciwgMCkpKQ0KPiAt
ICAgICAgICBnb3RvIG1ldGhvZHB1dGZhaWxlZDsNCj4gLQ0KPiAtICAgIGlmIChGQUlMRUQobWV0
aG9kRXhlYyh3bWksIGJhc2UsIEwiQWRkU2Vzc2lvbiIsIGluTWV0aG9kSW5zdCwNCj4gJm91dE1l
dGhvZEluc3QpKSkNCj4gLSAgICAgICAgZ290byBtZXRob2RleGVjYWRkc2Vzc2lvbmZhaWxlZDsN
Cj4gLQ0KPiAtICAgIGlmIChGQUlMRUQob3V0TWV0aG9kSW5zdC0+R2V0KEwiU2Vzc2lvbklkIiwg
MCwgJnZhciwgTlVMTCwgTlVMTCkpKQ0KPiAtICAgICAgICBnb3RvIG91dG1ldGhvZGdldGZhaWxl
ZDsNCj4gLQ0KPiAtICAgIHNpemVfdCBxdWVyeV9sZW47DQo+IC0gICAgcXVlcnlfbGVuID0gc3Ry
bGVuKCJTRUxFQ1QgKiBGUk9NICIgT0JKRUNUX05BTUVfQShTZXNzaW9uKSAiIFdIRVJFDQo+IFNl
c3Npb25JZD0iKSsxMDsNCj4gLSAgICBxdWVyeSA9IFN5c0FsbG9jU3RyaW5nTGVuKE5VTEwsIChV
SU5UKXF1ZXJ5X2xlbik7DQo+IC0NCj4gLSAgICBpZiAocXVlcnkgPT0gTlVMTCkNCj4gLSAgICAg
ICAgZ290byBhbGxvY3F1ZXJ5ZmFpbGVkOw0KPiAtDQo+IC0gICAgc3dwcmludGZfcyhxdWVyeSxx
dWVyeV9sZW4sIEwiU0VMRUNUICogRlJPTSAiDQo+IE9CSkVDVF9OQU1FX1coU2Vzc2lvbikgTCIg
V0hFUkUgU2Vzc2lvbklkPSVkIiwgdmFyLnVpbnRWYWwpOw0KPiAtDQo+IC0gICAgc2Vzc2lvbnMg
PSBydW5YU1F1ZXJ5KHdtaSwgcXVlcnkgKTsNCj4gLSAgICBTeXNGcmVlU3RyaW5nKHF1ZXJ5KTsN
Cj4gLQ0KPiAtICAgIGlmIChzZXNzaW9ucykgew0KPiAtICAgICAgICBJV2JlbUNsYXNzT2JqZWN0
ICpyZXR1cm5lZE9iamVjdDsNCj4gLSAgICAgICAgVUxPTkcgY291bnQ7DQo+IC0gICAgICAgIGhy
ZXMgPSBzZXNzaW9ucy0+TmV4dChXQkVNX0lORklOSVRFLCAxLCAmcmV0dXJuZWRPYmplY3QsICZj
b3VudCk7DQo+IC0gICAgICAgIHNlc3Npb25zLT5SZWxlYXNlKCk7DQo+IC0gICAgICAgIGlmIChj
b3VudD4wKSB7DQo+IC0gICAgICAgICAgICByZXR1cm4gcmV0dXJuZWRPYmplY3Q7DQo+IC0gICAg
ICAgIH0NCj4gLQ0KPiAtICAgIH0NCj4gLQ0KPiAtICAgIG91dE1ldGhvZEluc3QtPlJlbGVhc2Uo
KTsNCj4gLSAgICBWYXJpYW50Q2xlYXIoJnZhcik7DQo+IC0gICAgaW5NZXRob2RJbnN0LT5SZWxl
YXNlKCk7DQo+IC0gICAgaW5NZXRob2QtPlJlbGVhc2UoKTsNCj4gLSAgICBiYXNlLT5SZWxlYXNl
KCk7DQo+IC0gICAgYmFzZWNsYXNzLT5SZWxlYXNlKCk7DQo+IC0gICAgcmV0dXJuIE5VTEw7DQo+
IC0NCj4gLWFsbG9jcXVlcnlmYWlsZWQ6DQo+IC1vdXRtZXRob2RnZXRmYWlsZWQ6DQo+IC0gICAg
b3V0TWV0aG9kSW5zdC0+UmVsZWFzZSgpOw0KPiAtDQo+IC1tZXRob2RleGVjYWRkc2Vzc2lvbmZh
aWxlZDoNCj4gLW1ldGhvZHB1dGZhaWxlZDoNCj4gLSAgICBWYXJpYW50Q2xlYXIoJnZhcik7DQo+
IC0NCj4gLWZvcm1hdG5hbWVic3RyZmFpbGVkOg0KPiAtICAgIGluTWV0aG9kSW5zdC0+UmVsZWFz
ZSgpOw0KPiAtaW5tZXRob2RzcGF3bmZhaWxlZDoNCj4gLSAgICBpbk1ldGhvZC0+UmVsZWFzZSgp
Ow0KPiAtDQo+IC0NCj4gLWdldG1ldGhvZGFkZHNlc3Npb25mYWlsZWQ6DQo+IC0gICAgYmFzZWNs
YXNzLT5SZWxlYXNlKCk7DQo+IC0NCj4gLWdldGJhc2VjbGFzc2ZhaWxlZDoNCj4gLSAgICBiYXNl
LT5SZWxlYXNlKCk7DQo+IC0NCj4gLWdldGJhc2VmYWlsZWQ6DQo+IC0NCj4gLQ0KPiAtZm9ybWF0
c2Vzc2lvbmJzdHJmYWlsZWQ6DQo+IC0gICAgcmV0dXJuIE5VTEw7DQo+IC19DQo+IC0NCj4gLUlX
YmVtQ2xhc3NPYmplY3QqIHNlc3Npb25NZXRob2RTdGFydChXTUlBY2Nlc3Nvcioqd21pLA0KPiAt
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHdjaGFyX3QgKm1ldGhv
ZG5hbWUpDQo+IC17DQo+IC0gICAgSVdiZW1DbGFzc09iamVjdCAqaW5NZXRob2Q7DQo+IC0gICAg
SVdiZW1DbGFzc09iamVjdCAqaW5NZXRob2RJbnN0ID0gTlVMTDsNCj4gLSAgICBJV2JlbUNsYXNz
T2JqZWN0ICpzZXNzaW9uQ2xhc3M7DQo+IC0gICAgSFJFU1VMVCBocjsNCj4gLQ0KPiAtICAgIEFT
U0VSVCh3bWkgIT0gTlVMTCk7DQo+IC0NCj4gLSAgICBzZXNzaW9uQ2xhc3MgPSBnZXRDbGFzcyh3
bWksIE9CSkVDVF9OQU1FX1coU2Vzc2lvbikpOw0KPiAtICAgIGlmIChzZXNzaW9uQ2xhc3MgPT0g
TlVMTCkNCj4gLSAgICAgICAgZ290byBnZXRjbGFzc2ZhaWxlZDsNCj4gLQ0KPiAtICAgIGhyID0g
c2Vzc2lvbkNsYXNzLT5HZXRNZXRob2QobWV0aG9kbmFtZSwwLCZpbk1ldGhvZCwgTlVMTCk7DQo+
IC0gICAgaWYgKEZBSUxFRChocikpDQo+IC0gICAgICAgIGdvdG8gZ2V0bWV0aG9kZmFpbGVkOw0K
PiAtDQo+IC0gICAgaHIgPSBpbk1ldGhvZC0+U3Bhd25JbnN0YW5jZSgwLCAmaW5NZXRob2RJbnN0
KTsNCj4gLSAgICBpZiAoRkFJTEVEKGhyKSkNCj4gLSAgICAgICAgZ290byBzcGF3bmluc3RhbmNl
ZmFpbGVkOw0KPiAtDQo+IC0gICAgaW5NZXRob2QtPlJlbGVhc2UoKTsNCj4gLQ0KPiAtICAgIHNl
c3Npb25DbGFzcy0+UmVsZWFzZSgpOw0KPiAtICAgIHJldHVybiBpbk1ldGhvZEluc3Q7DQo+IC0N
Cj4gLQ0KPiAtc3Bhd25pbnN0YW5jZWZhaWxlZDoNCj4gLSAgICBpbk1ldGhvZC0+UmVsZWFzZSgp
Ow0KPiAtDQo+IC1nZXRtZXRob2RmYWlsZWQ6DQo+IC0gICAgc2Vzc2lvbkNsYXNzLT5SZWxlYXNl
KCk7DQo+IC0NCj4gLWdldGNsYXNzZmFpbGVkOg0KPiAtICAgIHJldHVybiBOVUxMOw0KPiAtfQ0K
PiAtDQo+IC0NCj4gLWNoYXIgKiBic3RyVG9DaGFyKEJTVFIgYnN0LCBzaXplX3QgKmxlbikgew0K
PiAtICAgICpsZW4gPSB3Y3NsZW4oYnN0KTsNCj4gLSAgICBjaGFyICpzcGFjZSA9IChjaGFyICop
WHNBbGxvYygqbGVuKzEpOw0KPiAtICAgIGlmIChzcGFjZSkNCj4gLSAgICAgICAgd2NzdG9tYnNf
cyhsZW4sIHNwYWNlLCAqbGVuKzEsIGJzdCwgIF9UUlVOQ0FURSk7DQo+IC0gICAgcmV0dXJuIHNw
YWNlOw0KPiAtfQ0KPiAtDQo+IC12b2lkIFdtaVNlc3Npb25Mb2coV01JQWNjZXNzb3IqKiB3bWks
ICB2b2lkICoqc2Vzc2lvbmhhbmRsZSxjb25zdA0KPiBjaGFyICpmbXQsIHZhX2xpc3QgYXJncykg
ew0KPiAtICAgIElXYmVtQ2xhc3NPYmplY3QgKipzZXNzaW9uID0gKElXYmVtQ2xhc3NPYmplY3Qg
Kiopc2Vzc2lvbmhhbmRsZTsNCj4gLQ0KPiAtICAgIGNoYXIqIG1lc3NhZ2UgPSBmb3JtYXRDaGFy
U3RySW50KGZtdCxhcmdzKTsNCj4gLQ0KPiAtICAgIE91dHB1dERlYnVnU3RyaW5nKG1lc3NhZ2Up
Ow0KPiAtICAgIGlmICgoKCp3bWkpPT1OVUxMKSB8fCAoKCpzZXNzaW9uaGFuZGxlKT09TlVMTCkg
KSB7DQo+IC0gICAgICAgIGdvdG8gbm93bWk7DQo+IC0gICAgfQ0KPiAtICAgIFZBUklBTlQgdm1l
c3NhZ2U7DQo+IC0gICAgaWYgKHNldFZhcmlhbnRTdHJpbmcoJnZtZXNzYWdlLCBtZXNzYWdlKSkN
Cj4gLSAgICAgICAgZ290byBzZXR2bWVzc2FnZTsNCj4gLQ0KPiAtICAgIElXYmVtQ2xhc3NPYmpl
Y3QgKmluTWV0aG9kSW5zdCA9IHNlc3Npb25NZXRob2RTdGFydCggd21pLCBMIkxvZyIpOw0KPiAt
ICAgIGlmICghaW5NZXRob2RJbnN0KQ0KPiAtICAgICAgICBnb3RvIHNlc3Npb25zdGFydDsNCj4g
LQ0KPiAtICAgICBpZiAoRkFJTEVEKGluTWV0aG9kSW5zdC0+UHV0KEwiTWVzc2FnZSIsMCwmdm1l
c3NhZ2UsMCkpKQ0KPiAtICAgICAgICAgZ290byBtZXRob2RwdXRmYWlsZWQ7DQo+IC0NCj4gLSAg
ICAgaWYgKEZBSUxFRChtZXRob2RFeGVjKHdtaSwqc2Vzc2lvbiwgTCJMb2ciLCBpbk1ldGhvZElu
c3QsIE5VTEwpKSkNCj4gLSAgICAgICAgIGdvdG8gbWV0aG9kZXhlY2ZhaWxlZDsNCj4gLQ0KPiAt
bWV0aG9kZXhlY2ZhaWxlZDoNCj4gLW1ldGhvZHB1dGZhaWxlZDoNCj4gLSAgICAgaW5NZXRob2RJ
bnN0LT5SZWxlYXNlKCk7DQo+IC0NCj4gLXNlc3Npb25zdGFydDoNCj4gLSAgICBWYXJpYW50Q2xl
YXIoJnZtZXNzYWdlKTsNCj4gLQ0KPiAtc2V0dm1lc3NhZ2U6DQo+IC1ub3dtaToNCj4gLSAgICBy
ZXR1cm47DQo+IC19DQo+IC0NCj4gLWNoYXIqIFdtaVNlc3Npb25HZXRFbnRyeShXTUlBY2Nlc3Nv
cioqIHdtaSwgdm9pZCAqKnNlc3Npb25oYW5kbGUsDQo+IC0gICAgICAgICAgICAgIGNvbnN0IGNo
YXIgKiBwYXRoLCBzaXplX3QqIGxlbikNCj4gLXsNCj4gLSAgICAqbGVuID0gMDsNCj4gLSAgICBJ
V2JlbUNsYXNzT2JqZWN0ICoqc2Vzc2lvbiA9IChJV2JlbUNsYXNzT2JqZWN0ICoqKXNlc3Npb25o
YW5kbGU7DQo+IC0NCj4gLSAgICBWQVJJQU5UIHZwYXRoOw0KPiAtICAgIGlmIChzZXRWYXJpYW50
U3RyaW5nKCZ2cGF0aCwgcGF0aCkpDQo+IC0gICAgICAgIGdvdG8gc2V0dnBhdGg7DQo+IC0NCj4g
LSAgICBJV2JlbUNsYXNzT2JqZWN0ICpvdXRNZXRob2RJbnN0ID0gTlVMTDsNCj4gLQ0KPiAtICAg
IElXYmVtQ2xhc3NPYmplY3QgKmluTWV0aG9kSW5zdCA9IHNlc3Npb25NZXRob2RTdGFydCggd21p
LA0KPiBMIkdldFZhbHVlIik7DQo+IC0gICAgaWYgKGluTWV0aG9kSW5zdCA9PSBOVUxMKQ0KPiAt
ICAgICAgICBnb3RvIHNlc3Npb25tZXRob2RzdGFydGZhaWxlZDsNCj4gLQ0KPiAtICAgIGlmIChG
QUlMRUQoaW5NZXRob2RJbnN0LT5QdXQoTCJQYXRoTmFtZSIsMCwmdnBhdGgsMCkpKQ0KPiAtICAg
ICAgICBnb3RvIG1ldGhvZGV4ZWNmYWlsZWQ7DQo+IC0NCj4gLSAgICBtZXRob2RFeGVjKHdtaSwq
c2Vzc2lvbiwgTCJHZXRWYWx1ZSIsIGluTWV0aG9kSW5zdCwNCj4gJm91dE1ldGhvZEluc3QpOw0K
PiAtICAgIGlmIChvdXRNZXRob2RJbnN0PT1OVUxMKQ0KPiAtICAgICAgICBnb3RvIHNlc3Npb25F
eGVjOw0KPiAtDQo+IC0gICAgVkFSSUFOVCBvdXR2YWw7DQo+IC0gICAgVmFyaWFudEluaXQoJm91
dHZhbCk7DQo+IC0NCj4gLSAgICBpZiAoRkFJTEVEKG91dE1ldGhvZEluc3QtPkdldChMInZhbHVl
IiwgMCwgJm91dHZhbCwgTlVMTCwgTlVMTCkpKQ0KPiAtICAgICAgICBnb3RvIG1ldGhvZGdldGZh
aWxlZDsNCj4gLQ0KPiAtICAgIGNoYXIgKnNwYWNlID0gTlVMTDsNCj4gLQ0KPiAtICAgIGlmIChW
X1ZUKCZvdXR2YWwpID09IFZUX0JTVFIpDQo+IC0gICAgew0KPiAtICAgICAgICBzcGFjZSA9IGJz
dHJUb0NoYXIob3V0dmFsLmJzdHJWYWwsIGxlbik7DQo+IC0gICAgfQ0KPiAtDQo+IC0gICAgb3V0
TWV0aG9kSW5zdC0+UmVsZWFzZSgpOw0KPiAtICAgIGluTWV0aG9kSW5zdC0+UmVsZWFzZSgpOw0K
PiAtICAgIFZhcmlhbnRDbGVhcigmdnBhdGgpOw0KPiAtICAgIFZhcmlhbnRDbGVhcigmb3V0dmFs
KTsNCj4gLSAgICByZXR1cm4gc3BhY2U7DQo+IC0NCj4gLW1ldGhvZGdldGZhaWxlZDoNCj4gLSAg
ICBvdXRNZXRob2RJbnN0LT5SZWxlYXNlKCk7DQo+IC0NCj4gLW1ldGhvZGV4ZWNmYWlsZWQ6DQo+
IC1zZXNzaW9uRXhlYzoNCj4gLSAgICBpbk1ldGhvZEluc3QtPlJlbGVhc2UoKTsNCj4gLQ0KPiAt
c2Vzc2lvbm1ldGhvZHN0YXJ0ZmFpbGVkOg0KPiAtICAgIFZhcmlhbnRDbGVhcigmdnBhdGgpOw0K
PiAtDQo+IC1zZXR2cGF0aDoNCj4gLSAgICByZXR1cm4gTlVMTDsNCj4gLX0NCj4gLQ0KPiAtaW50
IFdtaVNlc3Npb25TZXRFbnRyeShXTUlBY2Nlc3NvcioqIHdtaSwgIHZvaWQgKipzZXNzaW9uaGFu
ZGxlLA0KPiAtICAgICAgICAgICAgICBjb25zdCBjaGFyKnBhdGgsIGNvbnN0IGNoYXIgKiB2YWx1
ZSwgc2l6ZV90IGxlbikNCj4gLXsNCj4gLSAgICBpbnQgZXJyID0gLTE7DQo+IC0gICAgSVdiZW1D
bGFzc09iamVjdCAqKnNlc3Npb24gPSAoSVdiZW1DbGFzc09iamVjdCAqKilzZXNzaW9uaGFuZGxl
Ow0KPiAtDQo+IC0gICAgVkFSSUFOVCB2cGF0aDsNCj4gLSAgICBpZiAoc2V0VmFyaWFudFN0cmlu
ZygmdnBhdGgsIHBhdGgpKQ0KPiAtICAgICAgICBnb3RvIHNldHZwYXRoOw0KPiAtDQo+IC0gICAg
VkFSSUFOVCB2dmFsdWU7DQo+IC0gICAgaWYgKHNldFZhcmlhbnRTdHJpbmcoJnZ2YWx1ZSwgdmFs
dWUpKQ0KPiAtICAgICAgICBnb3RvIHNldHZ2YWx1ZTsNCj4gLQ0KPiAtICAgIElXYmVtQ2xhc3NP
YmplY3QgKm91dE1ldGhvZEluc3Q7DQo+IC0NCj4gLSAgICBJV2JlbUNsYXNzT2JqZWN0ICppbk1l
dGhvZEluc3QgPSBzZXNzaW9uTWV0aG9kU3RhcnQoIHdtaSwNCj4gTCJTZXRWYWx1ZSIpOw0KPiAt
ICAgIGlmICghaW5NZXRob2RJbnN0KQ0KPiAtICAgICAgICBnb3RvIHNlc3Npb25zdGFydDsNCj4g
LQ0KPiAtICAgIGluTWV0aG9kSW5zdC0+UHV0KEwiUGF0aE5hbWUiLDAsJnZwYXRoLDApOw0KPiAt
ICAgIGluTWV0aG9kSW5zdC0+UHV0KEwidmFsdWUiLDAsJnZ2YWx1ZSwwKTsNCj4gLQ0KPiAtICAg
IGlmIChGQUlMRUQobWV0aG9kRXhlYyh3bWksKnNlc3Npb24sIEwiU2V0VmFsdWUiLCBpbk1ldGhv
ZEluc3QsDQo+ICZvdXRNZXRob2RJbnN0KSkpDQo+IC0gICAgICAgIGdvdG8gbWV0aG9kZXhlY2Zh
aWxlZDsNCj4gLQ0KPiAtICAgIGlmIChvdXRNZXRob2RJbnN0IT1OVUxMKQ0KPiAtICAgICAgICBv
dXRNZXRob2RJbnN0LT5SZWxlYXNlKCk7DQo+IC0NCj4gLSAgICBpbk1ldGhvZEluc3QtPlJlbGVh
c2UoKTsNCj4gLSAgICBTeXNGcmVlU3RyaW5nKHZ2YWx1ZS5ic3RyVmFsKTsNCj4gLSAgICBTeXNG
cmVlU3RyaW5nKHZwYXRoLmJzdHJWYWwpOw0KPiAtDQo+IC0gICAgcmV0dXJuIDA7DQo+IC0NCj4g
LW1ldGhvZGV4ZWNmYWlsZWQ6DQo+IC0gICAgWHNMb2coIldtaVNlc3Npb25TZXRFbnRyeTpNZXRo
b2RFeGVjIEZhaWxlZCIpOw0KPiAtICAgIGluTWV0aG9kSW5zdC0+UmVsZWFzZSgpOw0KPiAtDQo+
IC1zZXNzaW9uc3RhcnQ6DQo+IC0gICAgWHNMb2coIldtaVNlc3Npb25TZXRFbnRyeTpTZXNzaW9u
U3RhcnQgRmFpbGVkIik7DQo+IC0gICAgU3lzRnJlZVN0cmluZyh2dmFsdWUuYnN0clZhbCk7DQo+
IC0NCj4gLXNldHZ2YWx1ZToNCj4gLSAgICBYc0xvZygiV21pU2Vzc2lvblNldEVudHJ5OlNldFZW
YWx1ZSBGYWlsZWQiKTsNCj4gLSAgICBTeXNGcmVlU3RyaW5nKHZwYXRoLmJzdHJWYWwpOw0KPiAt
DQo+IC1zZXR2cGF0aDoNCj4gLSAgICBYc0xvZygiV21pU2Vzc2lvblNldEVudHJ5OlNldFZQYXRo
IEZhaWxlZCAiKTsNCj4gLSAgICByZXR1cm4gZXJyOw0KPiAtfQ0KPiAtDQo+IC1pbnQgV21pU2Vz
c2lvblNldEVudHJ5KFdNSUFjY2Vzc29yKiogd21pLCAgdm9pZCAqKnNlc3Npb25oYW5kbGUsDQo+
IC0gICAgICAgICAgICAgIGNvbnN0IGNoYXIqcGF0aCwgY29uc3QgY2hhciAqIHZhbHVlKSB7DQo+
IC0gICAgcmV0dXJuIFdtaVNlc3Npb25TZXRFbnRyeSh3bWksIHNlc3Npb25oYW5kbGUsIHBhdGgs
IHZhbHVlLA0KPiBzdHJsZW4odmFsdWUpKTsNCj4gLX0NCj4gLQ0KPiAtaW50IFdtaVNlc3Npb25S
ZW1vdmVFbnRyeShXTUlBY2Nlc3NvcioqIHdtaSwgIHZvaWQgKipzZXNzaW9uaGFuZGxlLA0KPiAt
ICAgICAgICAgICAgICBjb25zdCBjaGFyKnBhdGgpew0KPiAtDQo+IC0gICAgaW50IGVyciA9IC0x
Ow0KPiAtICAgIElXYmVtQ2xhc3NPYmplY3QgKipzZXNzaW9uID0gKElXYmVtQ2xhc3NPYmplY3Qg
Kiopc2Vzc2lvbmhhbmRsZTsNCj4gLQ0KPiAtICAgIFZBUklBTlQgdnBhdGg7DQo+IC0gICAgaWYg
KHNldFZhcmlhbnRTdHJpbmcoJnZwYXRoLCBwYXRoKSkNCj4gLSAgICAgICAgZ290byBzZXR2cGF0
aDsNCj4gLQ0KPiAtICAgIElXYmVtQ2xhc3NPYmplY3QgKmluTWV0aG9kSW5zdCA9IHNlc3Npb25N
ZXRob2RTdGFydCggd21pLA0KPiBMIlJlbW92ZVZhbHVlIik7DQo+IC0gICAgaWYgKCFpbk1ldGhv
ZEluc3QpDQo+IC0gICAgICAgIGdvdG8gc2Vzc2lvbnN0YXJ0Ow0KPiAtDQo+IC0gICAgaWYgKEZB
SUxFRChpbk1ldGhvZEluc3QtPlB1dChMIlBhdGhOYW1lIiwwLCZ2cGF0aCwwKSkpDQo+IC0gICAg
ICAgIGdvdG8gbWV0aG9kcHV0ZmFpbGVkOw0KPiAtDQo+IC0gICAgSVdiZW1DbGFzc09iamVjdCog
b3V0TWV0aG9kSW5zdDsNCj4gLQ0KPiAtICAgIGlmIChGQUlMRUQobWV0aG9kRXhlYyh3bWksKnNl
c3Npb24sIEwiUmVtb3ZlVmFsdWUiLCBpbk1ldGhvZEluc3QsDQo+ICZvdXRNZXRob2RJbnN0KSkp
DQo+IC0gICAgICAgIGdvdG8gbWV0aG9kZXhlY2ZhaWxlZDsNCj4gLQ0KPiAtICAgIGlmIChvdXRN
ZXRob2RJbnN0ICE9IE5VTEwpDQo+IC0gICAgICAgIG91dE1ldGhvZEluc3QtPlJlbGVhc2UoKTsN
Cj4gLQ0KPiAtICAgIGVycj0wOw0KPiAtICAgIGluTWV0aG9kSW5zdC0+UmVsZWFzZSgpOw0KPiAt
ICAgIFZhcmlhbnRDbGVhcigmdnBhdGgpOw0KPiAtICAgIHJldHVybiBlcnI7DQo+IC1tZXRob2Rl
eGVjZmFpbGVkOg0KPiAtICAgIE91dHB1dERlYnVnU3RyaW5nKF9fRlVOQ1RJT05fXyAiIE1ldGhv
ZEV4ZWNGYWlsZWQiKTsNCj4gLW1ldGhvZHB1dGZhaWxlZDoNCj4gLSAgICBPdXRwdXREZWJ1Z1N0
cmluZyhfX0ZVTkNUSU9OX18gIiBNZXRob2RQdXRGYWlsZWQiKTsNCj4gLSAgICBpbk1ldGhvZElu
c3QtPlJlbGVhc2UoKTsNCj4gLQ0KPiAtc2Vzc2lvbnN0YXJ0Og0KPiAtICAgIE91dHB1dERlYnVn
U3RyaW5nKF9fRlVOQ1RJT05fXyAiIFNlc3Npb25TdGFydEZhaWxlZCIpOw0KPiAtICAgIFZhcmlh
bnRDbGVhcigmdnBhdGgpOw0KPiAtDQo+IC0gICAgT3V0cHV0RGVidWdTdHJpbmcoX19GVU5DVElP
Tl9fICIgU2Vzc2lvbkV4ZWNGYWlsZWQiKTsNCj4gLXNldHZwYXRoOg0KPiAtICAgIE91dHB1dERl
YnVnU3RyaW5nKF9fRlVOQ1RJT05fXyAiIFNldFZwYXRoRmFpbGVkIik7DQo+IC0gICAgcmV0dXJu
IGVycjsNCj4gLX0NCj4gLQ0KPiAtDQo+IC1CT09MIFdtaVNlc3Npb25VbndhdGNoKFdNSUFjY2Vz
c29yKiogd21pLCAgdm9pZCAqKnNlc3Npb25oYW5kbGUsDQo+IC0gICAgICAgICAgICAgICAgICAg
ICAgICAgdm9pZCAqd2F0Y2hoYW5kbGUpIHsNCj4gLSAgICBJV2JlbUNsYXNzT2JqZWN0ICoqc2Vz
c2lvbiA9IChJV2JlbUNsYXNzT2JqZWN0ICoqKXNlc3Npb25oYW5kbGU7DQo+IC0gICAgWHNMb2co
IlVud2F0Y2ggJXAiLHdhdGNoaGFuZGxlKTsNCj4gLSAgICBXYXRjaFNpbmsgKiBzaW5rID0gKFdh
dGNoU2luayAqKXdhdGNoaGFuZGxlOw0KPiAtDQo+IC0gICAgVkFSSUFOVCB2cGF0aDsNCj4gLSAg
ICBpZiAoc2V0VmFyaWFudFN0cmluZygmdnBhdGgsIHNpbmstPnBhdGgpKQ0KPiAtICAgICAgICBn
b3RvIHNldHZwYXRoOw0KPiAtDQo+IC0gICAgSVdiZW1DbGFzc09iamVjdCAqb3V0TWV0aG9kSW5z
dDsNCj4gLSAgICBJV2JlbUNsYXNzT2JqZWN0ICppbk1ldGhvZEluc3QgPSBzZXNzaW9uTWV0aG9k
U3RhcnQoIHdtaSwNCj4gTCJSZW1vdmVXYXRjaCIpOw0KPiAtICAgIGlmICghaW5NZXRob2RJbnN0
KQ0KPiAtICAgICAgICBnb3RvIHNlc3Npb25zdGFydDsNCj4gLQ0KPiAtICAgIGluTWV0aG9kSW5z
dC0+UHV0KEwiUGF0aE5hbWUiLDAsJnZwYXRoLDApOw0KPiAtICAgIGlmIEZBSUxFRChtZXRob2RF
eGVjKHdtaSwqc2Vzc2lvbiwgTCJSZW1vdmVXYXRjaCIsIGluTWV0aG9kSW5zdCwNCj4gJm91dE1l
dGhvZEluc3QpKQ0KPiAtICAgICAgICBnb3RvIG1ldGhvZGV4ZWNmYWlsZWQ7DQo+IC0gICAgaWYg
KG91dE1ldGhvZEluc3Q9PU5VTEwpDQo+IC0gICAgICAgIGdvdG8gc2Vzc2lvbmV4ZWNmYWlsZWQ7
DQo+IC0NCj4gLSAgICBvdXRNZXRob2RJbnN0LT5SZWxlYXNlKCk7DQo+IC0NCj4gLW1ldGhvZGV4
ZWNmYWlsZWQ6DQo+IC1zZXNzaW9uZXhlY2ZhaWxlZDoNCj4gLSAgICBpbk1ldGhvZEluc3QtPlJl
bGVhc2UoKTsNCj4gLQ0KPiAtc2Vzc2lvbnN0YXJ0Og0KPiAtc2V0dnBhdGg6DQo+IC0gICAgc2lu
ay0+UmVsZWFzZSgpOw0KPiAtICAgIHJldHVybiB0cnVlOw0KPiAtfQ0KPiAtDQo+IC1CT09MIFdt
aVNlc3Npb25TdGFydChXTUlBY2Nlc3NvcioqIHdtaSwgIHZvaWQgKipzZXNzaW9uaGFuZGxlLCBj
b25zdA0KPiBjaGFyKiBzZXNzaW9ubmFtZSkNCj4gLXsNCj4gLSAgICBJV2JlbUNsYXNzT2JqZWN0
ICoqc2Vzc2lvbiA9IChJV2JlbUNsYXNzT2JqZWN0ICoqKXNlc3Npb25oYW5kbGU7DQo+IC0gICAg
aWYgKCgqc2Vzc2lvbiA9IG9wZW5TZXNzaW9uKHdtaSwgc2Vzc2lvbm5hbWUpKSA9PSBOVUxMKSB7
DQo+IC0gICAgICAgIHJldHVybiBmYWxzZTsNCj4gLSAgICB9DQo+IC0gICAgcmV0dXJuIHRydWU7
DQo+IC19DQo+IC0NCj4gLQ0KPiAtQk9PTCBXbWlTZXNzaW9uRW5kKFdNSUFjY2Vzc29yKiogd21p
LCAgdm9pZCAqc2Vzc2lvbmhhbmRsZSkNCj4gLXsNCj4gLSAgICBIUkVTVUxUIGhyOw0KPiAtICAg
IEFTU0VSVCgqd21pICE9IE5VTEwpOw0KPiAtDQo+IC0gICAgSVdiZW1DbGFzc09iamVjdCAqc2Vz
c2lvbiA9IChJV2JlbUNsYXNzT2JqZWN0ICopc2Vzc2lvbmhhbmRsZTsNCj4gLSAgICBpZiAoc2Vz
c2lvbj09TlVMTCkgew0KPiAtICAgICAgICByZXR1cm4gZmFsc2U7DQo+IC0gICAgfQ0KPiAtICAg
IGhyID0gbWV0aG9kRXhlYyh3bWksIHNlc3Npb24sIEwiRW5kU2Vzc2lvbiIsIE5VTEwsTlVMTCk7
DQo+IC0gICAgaWYgRkFJTEVEKGhyKQ0KPiAtICAgICAgICBnb3RvIGV4ZWNtZXRob2RmYWlsZWQ7
DQo+IC0gICAgc2Vzc2lvbi0+UmVsZWFzZSgpOw0KPiAtICAgIHJldHVybiB0cnVlOw0KPiAtDQo+
IC1leGVjbWV0aG9kZmFpbGVkOg0KPiAtICAgIHJldHVybiBmYWxzZTsNCj4gLQ0KPiAtfQ0KPiAt
DQo+IC12b2lkICpXbWlTZXNzaW9uV2F0Y2goV01JQWNjZXNzb3IqKiB3bWksICB2b2lkICoqc2Vz
c2lvbmhhbmRsZSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpwYXRoLCBI
QU5ETEUgZXZlbnQsIEhBTkRMRSBlcnJvcmV2ZW50KSB7DQo+IC0NCj4gLSAgICBIUkVTVUxUIGhy
Ow0KPiAtDQo+IC0gICAgSVdiZW1DbGFzc09iamVjdCAqKnNlc3Npb24gPSAoSVdiZW1DbGFzc09i
amVjdCAqKilzZXNzaW9uaGFuZGxlOw0KPiAtDQo+IC0gICAgQVNTRVJUKCgqd21pKSAhPSBOVUxM
KTsNCj4gLSAgICBBU1NFUlQoKCpzZXNzaW9uaGFuZGxlKSAhPSBOVUxMKTsNCj4gLQ0KPiAtICAg
IFdhdGNoU2luayAqIHNpbmsgPSBuZXcgV2F0Y2hTaW5rKGV2ZW50LCBlcnJvcmV2ZW50LCBwYXRo
KTsNCj4gLSAgICBCU1RSIHF1ZXJ5PWZvcm1hdEJzdHIoIlNFTEVDVCAqIGZyb20gIiBPQkpFQ1Rf
TkFNRV9BKFdhdGNoRXZlbnQpDQo+ICIgV0hFUkUgRXZlbnRJZD1cIiVzXCIiLCBwYXRoKTsNCj4g
LSAgICBpZiAocXVlcnkgPT0gTlVMTCkgew0KPiAtICAgICAgICBnb3RvIGZvcm1hdHN0cmluZ2Zh
aWxlZDsNCj4gLSAgICB9DQo+IC0NCj4gLSAgICBociA9ICgqd21pKS0+bXBYU1N2Yy0+RXhlY05v
dGlmaWNhdGlvblF1ZXJ5QXN5bmMoTCJXUUwiLA0KPiBxdWVyeSwwLE5VTEwsIHNpbmspOw0KPiAt
ICAgIGlmIChGQUlMRUQoaHIpKXsNCj4gLSAgICAgICAgKndtaSA9IE5VTEw7DQo+IC0gICAgICAg
IGdvdG8gd21pZmFpbGVkOw0KPiAtICAgIH0NCj4gLQ0KPiAtICAgIFZBUklBTlQgdnBhdGg7DQo+
IC0gICAgaWYgKHNldFZhcmlhbnRTdHJpbmcoJnZwYXRoLCBwYXRoKSl7DQo+IC0gICAgICAgIGdv
dG8gc2V0dnBhdGg7DQo+IC0gICAgfQ0KPiAtDQo+IC0NCj4gLSAgICBJV2JlbUNsYXNzT2JqZWN0
ICppbk1ldGhvZEluc3QgPSBzZXNzaW9uTWV0aG9kU3RhcnQoIHdtaSwNCj4gTCJTZXRXYXRjaCIp
Ow0KPiAtICAgIGlmICghaW5NZXRob2RJbnN0KQ0KPiAtICAgICAgICBnb3RvIHNlc3Npb25zdGFy
dDsNCj4gLQ0KPiAtICAgIGhyID0gaW5NZXRob2RJbnN0LT5QdXQoTCJQYXRoTmFtZSIsMCwmdnBh
dGgsMCk7DQo+IC0gICAgaWYgKEZBSUxFRChocikpDQo+IC0gICAgICAgIGdvdG8gbWV0aG9kcHV0
ZmFpbGVkOw0KPiAtDQo+IC0gICAgaHIgPSBtZXRob2RFeGVjKHdtaSwqc2Vzc2lvbiwgTCJTZXRX
YXRjaCIsIGluTWV0aG9kSW5zdCwgTlVMTCk7DQo+IC0gICAgaWYgKEZBSUxFRChocikpDQo+IC0g
ICAgICAgIGdvdG8gbWV0aG9kZXhlY2ZhaWxlZDsNCj4gLQ0KPiAtICAgIFZhcmlhbnRDbGVhcigm
dnBhdGgpOw0KPiAtDQo+IC0gICAgU3lzRnJlZVN0cmluZyhxdWVyeSk7DQo+IC0NCj4gLSAgICBy
ZXR1cm4gc2luazsNCj4gLQ0KPiAtDQo+IC1tZXRob2RleGVjZmFpbGVkOg0KPiAtICAgIE91dHB1
dERlYnVnU3RyaW5nKF9fRlVOQ1RJT05fXyAiIDogbWV0aG9kZXhlY2ZhaWxlZFxuIik7DQo+IC1t
ZXRob2RwdXRmYWlsZWQ6DQo+IC0gICAgT3V0cHV0RGVidWdTdHJpbmcoX19GVU5DVElPTl9fICIg
OiBtZXRob2RwdXRmYWlsZWRcbiIpOw0KPiAtICAgIGluTWV0aG9kSW5zdC0+UmVsZWFzZSgpOw0K
PiAtc2Vzc2lvbnN0YXJ0Og0KPiAtICAgIE91dHB1dERlYnVnU3RyaW5nKF9fRlVOQ1RJT05fXyAi
IDogc2Vzc2lvbnN0YXJ0XG4iKTsNCj4gLSAgICBWYXJpYW50Q2xlYXIoJnZwYXRoKTsNCj4gLXNl
dHZwYXRoOg0KPiAtICAgIE91dHB1dERlYnVnU3RyaW5nKF9fRlVOQ1RJT05fXyAiIDogc2V0dnBh
dGhcbiIpOw0KPiAtd21pZmFpbGVkOg0KPiAtICAgIFN5c0ZyZWVTdHJpbmcocXVlcnkpOw0KPiAt
Zm9ybWF0c3RyaW5nZmFpbGVkOg0KPiAtICAgIE91dHB1dERlYnVnU3RyaW5nKF9fRlVOQ1RJT05f
XyAiIDogZm9ybWF0c3RyaW5nZmFpbGVkXG4iKTsNCj4gLSAgICBkZWxldGUgc2luazsNCj4gLSAg
ICByZXR1cm4gTlVMTDsNCj4gLX0NCj4gLQ0KPiAtdm9pZCAqV21pVW5zdXNwZW5kZWRFdmVudFdh
dGNoKFdNSUFjY2Vzc29yICoqd21pLCBIQU5ETEUgZXZlbnQsDQo+IEhBTkRMRSBlcnJvcmV2ZW50
KQ0KPiAtew0KPiAtICAgIEhSRVNVTFQgaHI7DQo+IC0NCj4gLSAgICBBU1NFUlQoKndtaSAhPSBO
VUxMKTsNCj4gLQ0KPiAtICAgIFdhdGNoU2luayAqIHNpbmsgPSBuZXcgV2F0Y2hTaW5rKGV2ZW50
LCBlcnJvcmV2ZW50LCBOVUxMKTsNCj4gLSAgICBCU1RSIHF1ZXJ5PWZvcm1hdEJzdHIoIlNFTEVD
VCAqIGZyb20gIg0KPiBPQkpFQ1RfTkFNRV9BKFVuc3VzcGVuZGVkRXZlbnQpKTsNCj4gLSAgICBp
ZiAocXVlcnk9PU5VTEwpIHsNCj4gLSAgICAgICAgZ290byBmb3JtYXRzdHJpbmdmYWlsZWQ7DQo+
IC0gICAgfQ0KPiAtDQo+IC0gICAgaHIgPSAoKndtaSktPm1wWFNTdmMtPkV4ZWNOb3RpZmljYXRp
b25RdWVyeUFzeW5jKEwiV1FMIiwNCj4gcXVlcnksMCxOVUxMLCBzaW5rKTsNCj4gLSAgICBpZiBG
QUlMRUQoaHIpDQo+IC0gICAgICAgIGdvdG8gYXN5bmNxdWVyeWZhaWxlZDsNCj4gLQ0KPiAtICAg
IFN5c0ZyZWVTdHJpbmcocXVlcnkpOw0KPiAtICAgIHJldHVybiBzaW5rOw0KPiAtDQo+IC1hc3lu
Y3F1ZXJ5ZmFpbGVkOg0KPiAtICAgIFN5c0ZyZWVTdHJpbmcocXVlcnkpOw0KPiAtZm9ybWF0c3Ry
aW5nZmFpbGVkOg0KPiAtICAgIGRlbGV0ZSBzaW5rOw0KPiAtICAgIHJldHVybiBOVUxMOw0KPiAt
fQ0KPiAtDQo+IGRpZmYgLS1naXQgYS9zcmMvd2luMzJzdHViYWdlbnQvV21pQWNjZXNzb3IuaA0K
PiBiL3NyYy93aW4zMnN0dWJhZ2VudC9XbWlBY2Nlc3Nvci5oDQo+IGRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NA0KPiBpbmRleCBlMzdlZjcxLi4wMDAwMDAwDQo+IC0tLSBhL3NyYy93aW4zMnN0dWJh
Z2VudC9XbWlBY2Nlc3Nvci5oDQo+ICsrKyAvZGV2L251bGwNCj4gQEAgLTEsODggKzAsMCBAQA0K
PiAtLyogQ29weXJpZ2h0IChjKSBDaXRyaXggU3lzdGVtcyBJbmMuDQo+IC0gKiBBbGwgcmlnaHRz
IHJlc2VydmVkLg0KPiAtICoNCj4gLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsDQo+IC0gKiB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkDQo+IC0gKiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUgbWV0Og0KPiAtICoNCj4gLSAqICogICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlDQo+IC0gKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZQ0KPiAtICogICAgIGZvbGxvd2luZyBkaXNjbGFp
bWVyLg0KPiAtICogKiAgIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUNCj4gLSAqICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlDQo+IC0gKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyDQo+IC0gKiAgICAgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4NCj4gLSAqDQo+IC0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQNCj4gLSAqIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsDQo+IC0gKiBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRg0KPiAt
ICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUNCj4gLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9M
REVSIE9SDQo+IC0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwNCj4gLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsDQo+IC0gKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1INCj4gLSAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MNCj4gLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLA0KPiAtICogV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HDQo+IC0g
KiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFDQo+IC0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GDQo+IC0gKiBTVUNIIERBTUFHRS4NCj4gLSAqLw0KPiAtDQo+IC0jaWZuZGVmIF9X
TUlBQ0NFU1NPUl9IDQo+IC0jZGVmaW5lIF9XTUlBQ0NFU1NPUl9IDQo+IC0NCj4gLSNpbmNsdWRl
IDxXYmVtaWRsLmg+DQo+IC0jaW5jbHVkZSA8bGlzdD4NCj4gLSNpbmNsdWRlIDx2ZWN0b3I+DQo+
IC0jaW5jbHVkZSA8bWFwPg0KPiAtI2luY2x1ZGUgPHN0cmluZz4NCj4gLQ0KPiAtI2luY2x1ZGUg
IlhTQWNjZXNzb3IuaCINCj4gLQ0KPiAtdXNpbmcgbmFtZXNwYWNlIHN0ZDsNCj4gLQ0KPiAtdHlw
ZWRlZiB1bnNpZ25lZCBfX2ludDY0IHVpbnQ2NF90Ow0KPiAtDQo+IC1zdHJ1Y3QgV01JQWNjZXNz
b3I7DQo+IC0NCj4gLWV4dGVybiBzdHJ1Y3QgV01JQWNjZXNzb3IgKndtaTsNCj4gLQ0KPiAtZXh0
ZXJuIExPTkcgd21pY291bnQ7DQo+IC1CT09MIEluaXRDb20odm9pZCk7DQo+IC12b2lkIFJlbGVh
c2VDb20odm9pZCk7DQo+IC1CT09MIENvbm5lY3RUb1dNSSh2b2lkKTsNCj4gLXZvaWQgUmVsZWFz
ZVdNSUFjY2Vzc29yKHN0cnVjdCBXTUlBY2Nlc3NvciAqKik7DQo+IC0NCj4gLXZvaWQgVXBkYXRl
UHJvY2Vzc0xpc3RJblN0b3JlKFdNSUFjY2Vzc29yICoqd21pKTsNCj4gLQ0KPiAtaW50IFdtaVNl
c3Npb25TZXRFbnRyeShXTUlBY2Nlc3NvcioqIHdtaSwgIHZvaWQgKipzZXNzaW9uaGFuZGxlLA0K
PiAtICAgICAgICAgICAgICBjb25zdCBjaGFyKnBhdGgsIGNvbnN0IGNoYXIgKiB2YWx1ZSk7DQo+
IC0NCj4gLWludCBXbWlTZXNzaW9uU2V0RW50cnkoV01JQWNjZXNzb3IqKiB3bWksICB2b2lkICoq
c2Vzc2lvbmhhbmRsZSwNCj4gLSAgICAgICAgICAgICAgY29uc3QgY2hhcipwYXRoLCBjb25zdCBj
aGFyICogdmFsdWUsIHNpemVfdCBsZW4pOw0KPiAtY2hhciogV21pU2Vzc2lvbkdldEVudHJ5KFdN
SUFjY2Vzc29yKiogd21pLCB2b2lkICoqc2Vzc2lvbmhhbmRsZSwNCj4gLSAgICAgICAgICAgICAg
Y29uc3QgY2hhciAqIHBhdGgsIHNpemVfdCogbGVuKSA7DQo+IC0NCj4gLXZvaWQgKldtaVNlc3Np
b25XYXRjaChXTUlBY2Nlc3NvcioqIHdtaSwgIHZvaWQgKipzZXNzaW9uaGFuZGxlLA0KPiAtICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnBhdGgsIEhBTkRMRSBldmVudCwgSEFORExF
IGVycm9yZXZlbnQpOw0KPiAtQk9PTCBXbWlTZXNzaW9uVW53YXRjaChXTUlBY2Nlc3NvcioqIHdt
aSwgIHZvaWQgKipzZXNzaW9uaGFuZGxlLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgIHZv
aWQgKndhdGNoaGFuZGxlKTsNCj4gLQ0KPiAtaW50IFdtaVNlc3Npb25SZW1vdmVFbnRyeShXTUlB
Y2Nlc3NvcioqIHdtaSwgIHZvaWQgKipzZXNzaW9uaGFuZGxlLA0KPiAtICAgICAgICAgICAgICBj
b25zdCBjaGFyKnBhdGgpOw0KPiAtDQo+IC1jaGFyICoqV21pU2Vzc2lvbkdldENoaWxkcmVuKFdN
SUFjY2Vzc29yKiogd21pLCB2b2lkDQo+ICoqc2Vzc2lvbmhhbmRsZSwNCj4gLSAgICAgICAgICAg
ICAgY29uc3QgY2hhciAqIHBhdGgsIHVuc2lnbmVkICpudW1lbnRyaWVzKTsNCj4gLQ0KPiAtDQo+
IC12b2lkICpXbWlVbnN1c3BlbmRlZEV2ZW50V2F0Y2goV01JQWNjZXNzb3IgKip3bWksIEhBTkRM
RSBldmVudCwNCj4gSEFORExFIGVycm9yZXZlbnQpOw0KPiAtDQo+IC1pbnQgV21pU2Vzc2lvblRy
YW5zYWN0aW9uQWJvcnQoV01JQWNjZXNzb3IqKiB3bWksICB2b2lkDQo+ICoqc2Vzc2lvbmhhbmRs
ZSk7DQo+IC1pbnQgV21pU2Vzc2lvblRyYW5zYWN0aW9uQ29tbWl0KFdNSUFjY2Vzc29yKiogd21p
LCAgdm9pZA0KPiAqKnNlc3Npb25oYW5kbGUpOw0KPiAtaW50IFdtaVNlc3Npb25UcmFuc2FjdGlv
blN0YXJ0KFdNSUFjY2Vzc29yKiogd21pLCAgdm9pZA0KPiAqKnNlc3Npb25oYW5kbGUpOw0KPiAt
Qk9PTCBXbWlTZXNzaW9uU3RhcnQoV01JQWNjZXNzb3IqKiB3bWksICB2b2lkICoqc2Vzc2lvbmhh
bmRsZSwgY29uc3QNCj4gY2hhciAqc2Vzc2lvbm5hbWUpOw0KPiAtQk9PTCBXbWlTZXNzaW9uRW5k
KFdNSUFjY2Vzc29yKiogd21pLCAgdm9pZCAqc2Vzc2lvbmhhbmRsZSk7DQo+IC1GSUxFVElNRSBX
bWlHZXRYZW5UaW1lKFdNSUFjY2Vzc29yICoqd21pKTsNCj4gLXZvaWQgV21pU2Vzc2lvbkxvZyhX
TUlBY2Nlc3NvcioqIHdtaSwgIHZvaWQgKipzZXNzaW9uaGFuZGxlLGNvbnN0DQo+IGNoYXIgKmZt
dCwgdmFfbGlzdCBhcmdzKTsNCj4gLSNlbmRpZg0KPiBkaWZmIC0tZ2l0IGEvc3JjL3dpbjMyc3R1
YmFnZW50L1hTQWNjZXNzb3IuY3BwDQo+IGIvc3JjL3dpbjMyc3R1YmFnZW50L1hTQWNjZXNzb3Iu
Y3BwDQo+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCBjNjBmYjhiLi4wMDAwMDAw
DQo+IC0tLSBhL3NyYy93aW4zMnN0dWJhZ2VudC9YU0FjY2Vzc29yLmNwcA0KPiArKysgL2Rldi9u
dWxsDQo+IEBAIC0xLDIzMCArMCwwIEBADQo+IC0vKiBDb3B5cmlnaHQgKGMpIENpdHJpeCBTeXN0
ZW1zIEluYy4NCj4gLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+IC0gKg0KPiAtICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcywNCj4gLSAqIHdpdGgg
b3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQNCj4gLSAqIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6DQo+IC0gKg0KPiAtICogKiAgIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUNCj4gLSAq
ICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlDQo+
IC0gKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIuDQo+IC0gKiAqICAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQ0KPiAtICogICAgIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUNCj4gLSAqICAgICBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXINCj4g
LSAqICAgICBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KPiAtICoN
Cj4gLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORA0KPiAtICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywNCj4gLSAqIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GDQo+IC0gKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQ0KPiAtICogRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1INCj4gLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLA0KPiAtICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywNCj4gLSAq
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUg0K
PiAtICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
Uw0KPiAtICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksDQo+IC0gKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcNCj4gLSAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UNCj4gLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YNCj4gLSAqIFNVQ0ggREFNQUdFLg0K
PiAtICovDQo+IC0NCj4gLSNpbmNsdWRlIDx3aW5kb3dzLmg+DQo+IC0jaW5jbHVkZSAic3RkYWZ4
LmgiDQo+IC0jaW5jbHVkZSAiWFNBY2Nlc3Nvci5oIg0KPiAtI2luY2x1ZGUgIldNSUFjY2Vzc29y
LmgiDQo+IC0NCj4gLXN0YXRpYyBfX2RlY2xzcGVjKHRocmVhZCkgdm9pZCAqV21pU2Vzc2lvbkhh
bmRsZSA9IE5VTEw7DQo+IC0NCj4gLXN0YXRpYyBMT05HIHZvbGF0aWxlIHRocmVhZGNvdW50ID0g
MDsNCj4gLXN0YXRpYyBfX2RlY2xzcGVjKHRocmVhZCkgTE9ORyBsb2NhbHRocmVhZGNvdW50ID0g
MDsNCj4gLXN0YXRpYyBfX2RlY2xzcGVjKHRocmVhZCkgTE9ORyBsb2NhbHdtaWNvdW50ID0gMDsN
Cj4gLQ0KPiAtc3RhdGljIGxvbmcgdXBkYXRlX2NudD0weEYwMDAwMDAwOw0KPiAtI2RlZmluZSBY
RU5TVE9SRV9NQUdJQyAweDdlNmVjMTIzDQo+IC0NCj4gLXZvaWQgKlhzQWxsb2Moc2l6ZV90IHNp
emUpIHsNCj4gLSAgICB2b2lkICpidWY7DQo+IC0NCj4gLSAgICBidWYgPSBtYWxsb2Moc2l6ZSAr
IDgpOw0KPiAtICAgIGlmICghYnVmKSB7DQo+IC0gICAgICAgIFNldExhc3RFcnJvcihFUlJPUl9O
T1RfRU5PVUdIX01FTU9SWSk7DQo+IC0gICAgICAgIHJldHVybiBOVUxMOw0KPiAtICAgIH0NCj4g
LSAgICBtZW1zZXQoYnVmLCAwLCBzaXplICsgOCk7DQo+IC0gICAgKih1bnNpZ25lZCAqKWJ1ZiA9
IFhFTlNUT1JFX01BR0lDOw0KPiAtICAgIHJldHVybiAodm9pZCAqKSgoVUxPTkdfUFRSKWJ1ZiAr
IDgpOw0KPiAtfQ0KPiAtDQo+IC12b2lkIFhzRnJlZShjb25zdCB2b2lkICpidWYpIHsNCj4gLSAg
ICB2b2lkICpvcmlnX2J1ZjsNCj4gLQ0KPiAtICAgIGlmICghYnVmKQ0KPiAtICAgICAgICByZXR1
cm47DQo+IC0gICAgb3JpZ19idWYgPSAodm9pZCAqKSgoVUxPTkdfUFRSKWJ1ZiAtIDgpOw0KPiAt
ICAgIGlmICgqKHVuc2lnbmVkICopb3JpZ19idWYgIT0gWEVOU1RPUkVfTUFHSUMpIHsNCj4gLSAg
ICAgICAgT3V0cHV0RGVidWdTdHJpbmcoIlhzRnJlZSgpIGludm9rZWQgb24gYmFkIHBvaW50ZXJc
biIpOw0KPiAtICAgICAgICBEZWJ1Z0JyZWFrKCk7DQo+IC0gICAgfQ0KPiAtICAgIGZyZWUob3Jp
Z19idWYpOw0KPiAtfQ0KPiAtDQo+IC12b2lkIEdldFhlblRpbWUoRklMRVRJTUUgKm5vdykNCj4g
LXsNCj4gLSAgICAqbm93ID0gV21pR2V0WGVuVGltZSgmd21pKTsNCj4gLX0NCj4gLQ0KPiAtDQo+
IC1pbnQgTGlzdGVuU3VzcGVuZChIQU5ETEUgZXZlbnQsIEhBTkRMRSBlcnJvcmV2ZW50KQ0KPiAt
ew0KPiAtICAgIGlmICghV21pVW5zdXNwZW5kZWRFdmVudFdhdGNoKCZ3bWksIGV2ZW50LCBlcnJv
cmV2ZW50KSkNCj4gLSAgICAgICAgcmV0dXJuIC0xOw0KPiAtICAgIGVsc2UNCj4gLSAgICAgICAg
cmV0dXJuIDA7DQo+IC19DQo+IC0NCj4gLUJPT0wgSW5pdFhTQWNjZXNzb3IoKQ0KPiAtew0KPiAt
ICAgIE91dHB1dERlYnVnU3RyaW5nKCJYU0FjY2Vzc29yXG4iKTsNCj4gLSAgICBpZiAod21pY291
bnQgIT0gbG9jYWx3bWljb3VudCkgew0KPiAtDQo+IC0gICAgICAgIGlmIChsb2NhbHRocmVhZGNv
dW50ID09IDApIHsNCj4gLSAgICAgICAgICAgIGxvY2FsdGhyZWFkY291bnQgPSBJbnRlcmxvY2tl
ZEluY3JlbWVudCgmdGhyZWFkY291bnQpOw0KPiAtICAgICAgICB9DQo+IC0gICAgICAgIGNoYXIg
d21pbmFtZVsxMl07DQo+IC0gICAgICAgIF9zbnByaW50Zih3bWluYW1lLCAxMiwgIlhTJXgiLCBs
b2NhbHRocmVhZGNvdW50KTsNCj4gLSAgICAgICAgaWYgKFdtaVNlc3Npb25TdGFydCgmd21pLCAm
V21pU2Vzc2lvbkhhbmRsZSwgd21pbmFtZSkpIHsNCj4gLSAgICAgICAgICAgIGxvY2Fsd21pY291
bnQgPSB3bWljb3VudDsNCj4gLSAgICAgICAgICAgIHJldHVybiB0cnVlOw0KPiAtICAgICAgICB9
DQo+IC0gICAgICAgIE91dHB1dERlYnVnU3RyaW5nKCJYU0FjY2Vzc29yIEZhaWxlZFxuIik7DQo+
IC0gICAgICAgIHJldHVybiBmYWxzZTsNCj4gLSAgICB9DQo+IC0gICAgcmV0dXJuIHRydWU7DQo+
IC19DQo+IC0NCj4gLXZvaWQgWHNMb2coY29uc3QgY2hhciAqZm10LCAuLi4pDQo+IC17DQo+IC0g
ICAgdmFfbGlzdCBhcmdzOw0KPiAtDQo+IC0gICAgdmFfc3RhcnQoYXJncywgZm10KTsNCj4gLSAg
ICBXbWlTZXNzaW9uTG9nKCZ3bWksICZXbWlTZXNzaW9uSGFuZGxlLCBmbXQsIGFyZ3MpOw0KPiAt
ICAgIHZhX2VuZChhcmdzKTsNCj4gLX0NCj4gLQ0KPiAtDQo+IC1CT09MIFNodXRkb3duWFNBY2Nl
c3Nvcih2b2lkKQ0KPiAtew0KPiAtICAgIGlmICh3bWkgPT0gTlVMTCkgew0KPiAtICAgICAgICBy
ZXR1cm4gZmFsc2U7DQo+IC0gICAgfQ0KPiAtICAgIGlmIChXbWlTZXNzaW9uSGFuZGxlID09IE5V
TEwpIHsNCj4gLSAgICAgICAgcmV0dXJuIGZhbHNlOw0KPiAtICAgIH0NCj4gLSAgICByZXR1cm4g
V21pU2Vzc2lvbkVuZCgmd21pLCBXbWlTZXNzaW9uSGFuZGxlKTsNCj4gLQ0KPiAtfQ0KPiAtDQo+
IC1pbnQgWGVuc3RvcmVQcmludGYoY29uc3QgY2hhciAqcGF0aCwgY29uc3QgY2hhciAqZm10LCAu
Li4pDQo+IC17DQo+IC0gICAgdmFfbGlzdCBsOw0KPiAtICAgIGNoYXIgYnVmWzQwOTZdOw0KPiAt
ICAgIGludCBjbnQ7DQo+IC0NCj4gLSAgICB2YV9zdGFydChsLCBmbXQpOw0KPiAtICAgIGNudCA9
IF92c25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgZm10LCBsKTsNCj4gLSAgICB2YV9lbmQobCk7
DQo+IC0gICAgaWYgKGNudCA8IDApIHsNCj4gLSAgICAgICAgREJHUFJJTlQgKCgiQ2Fubm90IGZv
cm1hdCBkYXRhIGZvciBYZW5zdG9yZVByaW50ZiEiKSk7DQo+IC0gICAgICAgIHJldHVybiAtMTsN
Cj4gLSAgICB9DQo+IC0gICAgT3V0cHV0RGVidWdTdHJpbmcoYnVmKTsNCj4gLSAgICAvKiBOb3cg
aGF2ZSB0aGUgdGhpbmcgd2UncmUgdHJ5aW5nIHRvIHdyaXRlLiAqLw0KPiAtICAgIHJldHVybiBX
bWlTZXNzaW9uU2V0RW50cnkoJndtaSwgJldtaVNlc3Npb25IYW5kbGUsIHBhdGgsIGJ1Zik7DQo+
IC19DQo+IC0NCj4gLUJPT0wgWGVuc3RvcmVLaWNrWGFwaSgpDQo+IC17DQo+IC0gICAgLyogTmV3
IHByb3RvY29sICovDQo+IC0gICAgaWYgKFhlbnN0b3JlUHJpbnRmKCJkYXRhL3VwZGF0ZV9jbnQi
LCAiJUk2NGQiLCB1cGRhdGVfY250KSl7DQo+IC0gICAgICAgIFhzTG9nKCJOZXcga2ljayBmYWls
ZWQgIik7DQo+IC0gICAgICAgIHJldHVybiBmYWxzZTsNCj4gLSAgICB9DQo+IC0gICAgLyogT2xk
IHByb3RvY29sICovDQo+IC0gICAgaWYgKFdtaVNlc3Npb25TZXRFbnRyeSgmd21pLCAmV21pU2Vz
c2lvbkhhbmRsZSwgImRhdGEvdXBkYXRlZCIsDQo+ICIxIikpew0KPiAtICAgICAgICBYc0xvZygi
T2xkIGtpY2sgZmFpbGVkIik7DQo+IC0gICAgICAgIHJldHVybiBmYWxzZTsNCj4gLSAgICB9DQo+
IC0gICAgdXBkYXRlX2NudCsrOw0KPiAtICAgIHJldHVybiB0cnVlOw0KPiAtfQ0KPiAtDQo+IC0N
Cj4gLWludA0KPiAtWGVuc3RvcmVSZW1vdmUoY29uc3QgY2hhciAqcGF0aCkNCj4gLXsNCj4gLSAg
ICBpZiAod21pID09IE5VTEwpDQo+IC0gICAgICAgIHJldHVybiAtMTsNCj4gLQ0KPiAtICAgIGlm
IChXbWlTZXNzaW9uSGFuZGxlID09IE5VTEwpDQo+IC0gICAgICAgIHJldHVybiAtMTsNCj4gLQ0K
PiAtICAgIGlmIChXbWlTZXNzaW9uUmVtb3ZlRW50cnkoJndtaSwgJldtaVNlc3Npb25IYW5kbGUs
IHBhdGgpKQ0KPiAtICAgICAgICByZXR1cm4gLTE7DQo+IC0gICAgZWxzZQ0KPiAtICAgICAgICBy
ZXR1cm4gMDsNCj4gLX0NCj4gLQ0KPiAtc3NpemVfdA0KPiAtWGVuc3RvcmVSZWFkKGNvbnN0IGNo
YXIqIHBhdGgsIGNoYXIqKiB2YWx1ZSkNCj4gLXsNCj4gLSAgICBzaXplX3QgbGVuOw0KPiAtICAg
ICp2YWx1ZSA9V21pU2Vzc2lvbkdldEVudHJ5KCZ3bWksICZXbWlTZXNzaW9uSGFuZGxlLCBwYXRo
LCAmbGVuKTsNCj4gLSAgICBpZiAoKnZhbHVlKQ0KPiAtICAgICAgICByZXR1cm4gKHNzaXplX3Qp
bGVuOw0KPiAtICAgIGVsc2UNCj4gLSAgICAgICAgcmV0dXJuIC0xOw0KPiAtfQ0KPiAtDQo+IC0N
Cj4gLWJvb2wgWGVuc3RvcmVSZWFkRHdvcmQoY29uc3QgY2hhciAqcGF0aCwgRFdPUkQgKnZhbHVl
KSB7DQo+IC0gICAgY2hhciogYnVmZmVyOw0KPiAtICAgIHNzaXplX3QgbGVuOw0KPiAtICAgIGxl
biA9IFhlbnN0b3JlUmVhZChwYXRoLCAmYnVmZmVyKTsNCj4gLSAgICBpZiAobGVuIDw9IDApIHsN
Cj4gLSAgICAgICAgcmV0dXJuIGZhbHNlOw0KPiAtICAgIH0NCj4gLSAgICAqdmFsdWUgPSBhdG9p
KGJ1ZmZlcik7DQo+IC0NCj4gLSAgICBYc0ZyZWUoYnVmZmVyKTsNCj4gLQ0KPiAtICAgIHJldHVy
biB0cnVlOw0KPiAtfQ0KPiAtDQo+IC12b2lkICoNCj4gLVhlbnN0b3JlV2F0Y2goY29uc3QgY2hh
ciAqcGF0aCwgSEFORExFIGV2ZW50LCBIQU5ETEUgZXJyb3JldmVudCkNCj4gLXsNCj4gLQ0KPiAt
ICAgIGlmICh3bWkgPT0gTlVMTCkgew0KPiAtICAgICAgICBPdXRwdXREZWJ1Z1N0cmluZygiV01J
IGlzIG51bGxcbiIpOw0KPiAtICAgICAgICByZXR1cm4gTlVMTDsNCj4gLSAgICB9DQo+IC0gICAg
aWYgKFdtaVNlc3Npb25IYW5kbGUgPT0gTlVMTCkgew0KPiAtICAgICAgICBPdXRwdXREZWJ1Z1N0
cmluZygiU2Vzc2lvbiBpcyBudWxsXG4iKTsNCj4gLSAgICAgICAgcmV0dXJuIE5VTEw7DQo+IC0g
ICAgfQ0KPiAtICAgIHJldHVybiBXbWlTZXNzaW9uV2F0Y2goJndtaSwgJldtaVNlc3Npb25IYW5k
bGUsIHBhdGgsIGV2ZW50LA0KPiBlcnJvcmV2ZW50KTsNCj4gLX0NCj4gLQ0KPiAtQk9PTA0KPiAt
WGVuc3RvcmVVbndhdGNoKHZvaWQgKndhdGNoKQ0KPiAtew0KPiAtICAgIHJldHVybiBXbWlTZXNz
aW9uVW53YXRjaCgmd21pLCAmV21pU2Vzc2lvbkhhbmRsZSwgd2F0Y2gpOw0KPiAtfQ0KPiAtDQo+
IC12b2lkDQo+IC1YZW5zdG9yZUZyZWUodm9pZCAqdG9mcmVlKQ0KPiAtew0KPiAtICAgIHJldHVy
biBYc0ZyZWUodG9mcmVlKTsNCj4gLX0NCj4gLQ0KPiBkaWZmIC0tZ2l0IGEvc3JjL3dpbjMyc3R1
YmFnZW50L1hTQWNjZXNzb3IuaA0KPiBiL3NyYy93aW4zMnN0dWJhZ2VudC9YU0FjY2Vzc29yLmgN
Cj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDJlZDQxYjAuLjAwMDAwMDANCj4g
LS0tIGEvc3JjL3dpbjMyc3R1YmFnZW50L1hTQWNjZXNzb3IuaA0KPiArKysgL2Rldi9udWxsDQo+
IEBAIC0xLDEyNiArMCwwIEBADQo+IC0vKiBDb3B5cmlnaHQgKGMpIENpdHJpeCBTeXN0ZW1zIElu
Yy4NCj4gLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+IC0gKg0KPiAtICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcywNCj4gLSAqIHdpdGggb3Igd2l0
aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQNCj4gLSAqIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6DQo+IC0gKg0KPiAtICogKiAgIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUNCj4gLSAqICAgICBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlDQo+IC0gKiAg
ICAgZm9sbG93aW5nIGRpc2NsYWltZXIuDQo+IC0gKiAqICAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQ0KPiAtICogICAgIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUNCj4gLSAqICAgICBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXINCj4gLSAqICAg
ICBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KPiAtICoNCj4gLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORA0K
PiAtICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywNCj4gLSAqIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GDQo+IC0gKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQ0KPiAtICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1INCj4gLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLA0KPiAtICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywNCj4gLSAqIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUg0KPiAtICog
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUw0KPiAt
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksDQo+IC0gKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcNCj4gLSAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UNCj4gLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YNCj4gLSAqIFNVQ0ggREFNQUdFLg0KPiAtICov
DQo+IC0NCj4gLQ0KPiAtI2lmbmRlZiBfWFNBQ0NFU1NPUl9IDQo+IC0jZGVmaW5lIF9YU0FDQ0VT
U09SX0gNCj4gLQ0KPiAtI2luY2x1ZGUgPHN0cmluZz4NCj4gLSNpbmNsdWRlICJ3aW5kb3dzLmgi
DQo+IC0NCj4gLQ0KPiAtdXNpbmcgbmFtZXNwYWNlIHN0ZDsNCj4gLQ0KPiAtI2RlZmluZSBNQVhf
WEVOQlVTX1BBVEggMjU2DQo+IC0NCj4gLSNpZmRlZiBBTUQ2NA0KPiAtdHlwZWRlZiBsb25nIGxv
bmcgc3NpemVfdDsNCj4gLSNlbHNlDQo+IC10eXBlZGVmIGxvbmcgc3NpemVfdDsNCj4gLSNlbmRp
Zg0KPiAtDQo+IC1CT09MIEluaXRYU0FjY2Vzc29yKCk7DQo+IC1CT09MIFNodXRkb3duWFNBY2Nl
c3NvcigpOw0KPiAtc3NpemVfdCBYZW5zdG9yZVJlYWQoY29uc3QgY2hhciAqcGF0aCwgY2hhciAq
KnZhbHVlKTsNCj4gLWludCBYZW5zdG9yZVJlbW92ZShjb25zdCBjaGFyICpwYXRoKTsNCj4gLWlu
dCBYZW5zdG9yZVByaW50Zihjb25zdCBjaGFyICpwYXRoLCBjb25zdCBjaGFyICpmbXQsIC4uLik7
DQo+IC1pbnQgWGVuc3RvcmVXcml0ZShjb25zdCBjaGFyICpwYXRoLCBjb25zdCB2b2lkICpkYXRh
LCBzaXplX3QgbGVuKTsNCj4gLUJPT0wgWGVuc3RvcmVLaWNrWGFwaSh2b2lkKTsNCj4gLXZvaWQg
KlhlbnN0b3JlV2F0Y2goY29uc3QgY2hhciAqcGF0aCwgSEFORExFIGV2ZW50LCBIQU5ETEUNCj4g
ZXJyb3JldmVudCk7DQo+IC1CT09MIFhlbnN0b3JlVW53YXRjaCh2b2lkICp3YXRjaCk7DQo+IC1p
bnQgTGlzdGVuU3VzcGVuZChIQU5ETEUgZXZ0LCBIQU5ETEUgZXJyb3JldmVudCk7DQo+IC12b2lk
IEdldFhlblRpbWUoRklMRVRJTUUgKnJlcyk7DQo+IC12b2lkIFhzTG9nKGNvbnN0IGNoYXIgKmZt
dCwgLi4uKTsNCj4gLXZvaWQgWGVuc3RvcmVGcmVlKHZvaWQgKnRvZnJlZSk7DQo+IC12b2lkICpY
c0FsbG9jKHNpemVfdCBzaXplKTsNCj4gLXZvaWQgWHNGcmVlKGNvbnN0IHZvaWQgKmJ1Zik7DQo+
IC1ib29sIFhlbnN0b3JlUmVhZER3b3JkKGNvbnN0IGNoYXIgKiBwYXRoLCBEV09SRCAqdmFsdWUp
Ow0KPiAtDQo+IC0jaWYgREJHDQo+IC0NCj4gLSNpbmNsdWRlIDxzdGRhcmcuaD4gICAgICAgICAv
LyB2YV9saXN0DQo+IC0jaW5jbHVkZSA8c3RkaW8uaD4gICAgICAgICAgLy8gdnNwcmludGYNCj4g
LSNpbmNsdWRlIDxtYWxsb2MuaD4NCj4gLQ0KPiAtI2luY2x1ZGUgPGFzc2VydC5oPg0KPiAtI2lu
Y2x1ZGUgPHRjaGFyLmg+DQo+IC0NCj4gLV9faW5saW5lIHZvaWQgRGVidWdQcmludCggSU4gTFBD
VFNUUiBtc2csIElOIC4uLiApDQo+IC17DQo+IC0gICAgVENIQVIgICBidWZmZXJbMjU2XTsNCj4g
LSAgICBpbnQgICAgIHJlczsNCj4gLSAgICB2YV9saXN0IGFyZ3M7DQo+IC0NCj4gLSAgICB2YV9z
dGFydCggYXJncywgbXNnICk7DQo+IC0jcHJhZ21hIHByZWZhc3Qoc3VwcHJlc3M6IDI4NzE5LCAi
WWVzLCB3ZSBhbGwga25vdyBfdnNucHJpbnRmIGlzIGJhbm5lZCBpbg0KPiBkcml2ZXJzLCB0aGlz
IGlzIHVzZXIgbGV2ZWwiKTsNCj4gLSAgICByZXMgPSBfdnNudHByaW50ZihidWZmZXIsIHNpemVv
ZihidWZmZXIpIC8gc2l6ZW9mKGJ1ZmZlclswXSksIG1zZywgYXJncyk7DQo+IC0gICAgaWYgKHJl
cyA+PSAwKQ0KPiAtICAgIHsNCj4gLSAgICAgICAgT3V0cHV0RGVidWdTdHJpbmcoIGJ1ZmZlciAp
Ow0KPiAtICAgIH0NCj4gLSAgICBlbHNlDQo+IC0gICAgew0KPiAtICAgICAgICBUQ0hBUiAqcDsN
Cj4gLSAgICAgICAgaW50IGNvdW50Ow0KPiAtDQo+IC0gICAgICAgIGNvdW50ID0gNTEyOw0KPiAt
ICAgICAgICBmb3IgKDs7KSB7DQo+IC0gICAgICAgICAgICBwID0gKFRDSEFSICopbWFsbG9jKGNv
dW50ICogc2l6ZW9mIChUQ0hBUikpOw0KPiAtICAgICAgICAgICAgaWYgKCFwKSB7DQo+IC0gICAg
ICAgICAgICAgICAgT3V0cHV0RGVidWdTdHJpbmcoX1QoIk91dCBvZiBtZW1vcnkgZm9yIGRlYnVn
IG1lc3NhZ2UhXG4iKSk7DQo+IC0gICAgICAgICAgICAgICAgYnJlYWs7DQo+IC0gICAgICAgICAg
ICB9DQo+IC0gICAgICAgICAgICByZXMgPSBfdnNudHByaW50ZihwLCBjb3VudCwgbXNnLCBhcmdz
KTsNCj4gLSAgICAgICAgICAgIGlmIChyZXMgPj0gMCkNCj4gLSAgICAgICAgICAgICAgICBicmVh
azsNCj4gLQ0KPiAtICAgICAgICAgICAgZnJlZShwKTsNCj4gLSAgICAgICAgICAgIGNvdW50ICs9
IDI1NjsNCj4gLSAgICAgICAgfQ0KPiAtICAgICAgICBpZiAocCkgew0KPiAtICAgICAgICAgICAg
T3V0cHV0RGVidWdTdHJpbmcoIHAgKTsNCj4gLSAgICAgICAgICAgIGZyZWUocCk7DQo+IC0gICAg
ICAgIH0NCj4gLSAgICB9DQo+IC0gICAgdmFfZW5kKGFyZ3MpOw0KPiAtfQ0KPiAtDQo+IC0jZGVm
aW5lIERCR1BSSU5UKF94XykgRGVidWdQcmludCBfeF8NCj4gLSNkZWZpbmUgQVNTRVJUICBhc3Nl
cnQNCj4gLQ0KPiAtI2Vsc2UNCj4gLQ0KPiAtI2RlZmluZSBEQkdQUklOVChfeF8pDQo+IC0jZGVm
aW5lIEFTU0VSVA0KPiAtDQo+IC0jZW5kaWYgLy8gREJHDQo+IC0NCj4gLSNlbmRpZg0KPiBkaWZm
IC0tZ2l0IGEvc3JjL3dpbjMyc3R1YmFnZW50L1hTZXJ2aWNlLmNwcA0KPiBiL3NyYy93aW4zMnN0
dWJhZ2VudC9YU2VydmljZS5jcHANCj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4
IDFmYmIxMzguLjAwMDAwMDANCj4gLS0tIGEvc3JjL3dpbjMyc3R1YmFnZW50L1hTZXJ2aWNlLmNw
cA0KPiArKysgL2Rldi9udWxsDQo+IEBAIC0xLDEwNDQgKzAsMCBAQA0KPiAtLyogQ29weXJpZ2h0
IChjKSBDaXRyaXggU3lzdGVtcyBJbmMuDQo+IC0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KPiAt
ICoNCj4gLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsDQo+IC0gKiB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkDQo+IC0gKiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0Og0KPiAt
ICoNCj4gLSAqICogICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlDQo+IC0gKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZQ0KPiAtICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KPiAtICogKiAg
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUN
Cj4gLSAqICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlDQo+IC0gKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyDQo+IC0gKiAgICAgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4NCj4gLSAqDQo+IC0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQNCj4gLSAqIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsDQo+IC0gKiBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRg0KPiAtICogTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUNCj4gLSAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SDQo+IC0gKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwNCj4gLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsDQo+IC0gKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1INCj4gLSAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MNCj4gLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLA0KPiAtICogV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HDQo+IC0gKiBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFDQo+IC0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GDQo+IC0g
KiBTVUNIIERBTUFHRS4NCj4gLSAqLw0KPiAtDQo+IC0jaW5jbHVkZSA8d2luZG93cy5oPg0KPiAt
I2luY2x1ZGUgPHNobG9iai5oPg0KPiAtI2luY2x1ZGUgPHByb2Nlc3MuaD4NCj4gLSNpbmNsdWRl
ICJwb3dycHJvZi5oIg0KPiAtI2luY2x1ZGUgPHdpbnVzZXIuaD4NCj4gLSNpbmNsdWRlICJzdGRh
ZnguaCINCj4gLSNpbmNsdWRlICJYU0FjY2Vzc29yLmgiDQo+IC0jaW5jbHVkZSAiV01JQWNjZXNz
b3IuaCINCj4gLSNpbmNsdWRlICJYU2VydmljZS5oIg0KPiAtDQo+IC0jaW5jbHVkZSAibWVzc2Fn
ZXMuaCINCj4gLQ0KPiAtI2luY2x1ZGUgPHNldHVwYXBpLmg+DQo+IC0jaW5jbHVkZSA8Y2ZnbWdy
MzIuaD4NCj4gLSNpbmNsdWRlIDxpbml0Z3VpZC5oPg0KPiAtI2luY2x1ZGUgPGRldmd1aWQuaD4N
Cj4gLSNpbmNsdWRlIDx3aW50cnVzdC5oPg0KPiAtI2luY2x1ZGUgPHNoZWxsYXBpLmg+DQo+IC0N
Cj4gLSNpZmRlZiBfV0lONjQNCj4gLSNkZWZpbmUgWEVOVE9PTFNfSU5TVEFMTF9SRUdfS0VZDQo+
ICJTT0ZUV0FSRVxcV293NjQzMk5vZGVcXENpdHJpeFxcWGVuVG9vbHMiDQo+IC0jZGVmaW5lIFhF
TlRPT0xTX0lOU1RBTExfUkVHX0tFWTY0ICJTT0ZUV0FSRVxcQ2l0cml4XFxYZW5Ub29scyINCj4g
LSNlbHNlDQo+IC0jZGVmaW5lIFhFTlRPT0xTX0lOU1RBTExfUkVHX0tFWSAgICJTT0ZUV0FSRVxc
Q2l0cml4XFxYZW5Ub29scyINCj4gLSNlbmRpZg0KPiAtDQo+IC1TRVJWSUNFX1NUQVRVUyBTZXJ2
aWNlU3RhdHVzOw0KPiAtU0VSVklDRV9TVEFUVVNfSEFORExFIGhTdGF0dXM7DQo+IC0NCj4gLXN0
YXRpYyBIQU5ETEUgaFNlcnZpY2VFeGl0RXZlbnQ7DQo+IC1zdGF0aWMgVUxPTkcgV2luZG93c1Zl
cnNpb247DQo+IC1zdGF0aWMgQk9PTCBMZWdhY3lIYWwgPSBGQUxTRTsNCj4gLXN0YXRpYyBISU5T
VEFOQ0UgbG9jYWxfaGluc3RhbmNlOw0KPiAtDQo+IC1IQU5ETEUgZXZlbnRMb2c7DQo+IC0jZGVm
aW5lIFNJWkVDSEFSUyh4KSAoc2l6ZW9mKCh4KSkvc2l6ZW9mKFRDSEFSKSkNCj4gLQ0KPiAtLy8g
SW50ZXJuYWwgcm91dGluZXMNCj4gLXN0YXRpYyBEV09SRCBXSU5BUEkgU2VydmljZUNvbnRyb2xI
YW5kbGVyKERXT1JEIHJlcXVlc3QsIERXT1JEDQo+IGV2dFR5cGUsDQo+IC0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMUFZPSUQsIExQVk9JRCk7DQo+IC1zdGF0aWMg
dm9pZCBTZXJ2aWNlQ29udHJvbE1hbmFnZXJVcGRhdGUoRFdPUkQgZHdFeGl0Q29kZSwgRFdPUkQN
Cj4gZHdTdGF0ZSk7DQo+IC1zdGF0aWMgdm9pZCBXSU5BUEkgU2VydmljZU1haW4oaW50IGFyZ2Ms
IGNoYXIqKiBhcmd2KTsNCj4gLXN0YXRpYyB2b2lkIEdldFdpbmRvd3NWZXJzaW9uKCk7DQo+IC0N
Cj4gLXZvaWQgUHJpbnRFcnJvcihjb25zdCBjaGFyICpmdW5jLCBEV09SRCBlcnIpDQo+IC17DQo+
IC0gICAgTFBWT0lEIGxwTXNnQnVmOw0KPiAtICAgIEZvcm1hdE1lc3NhZ2UoDQo+IC0gICAgICAg
IEZPUk1BVF9NRVNTQUdFX0FMTE9DQVRFX0JVRkZFUiB8DQo+IC0gICAgICAgIEZPUk1BVF9NRVNT
QUdFX0ZST01fU1lTVEVNLA0KPiAtICAgICAgICBOVUxMLA0KPiAtICAgICAgICBlcnIsDQo+IC0g
ICAgICAgIE1BS0VMQU5HSUQoTEFOR19ORVVUUkFMLCBTVUJMQU5HX0RFRkFVTFQpLA0KPiAtICAg
ICAgICAoTFBUU1RSKSAmbHBNc2dCdWYsDQo+IC0gICAgICAgIDAsDQo+IC0gICAgICAgIE5VTEwp
Ow0KPiAtICAgIE91dHB1dERlYnVnU3RyaW5nKChMUFRTVFIpbHBNc2dCdWYpOw0KPiAtICAgIFhz
TG9nKCIlcyBmYWlsZWQ6ICVzICgleCkiLCBmdW5jLCBscE1zZ0J1ZiwgZXJyKTsNCj4gLSAgICBY
ZW5zdG9yZVByaW50ZigiY29udHJvbC9lcnJvciIsICIlcyBmYWlsZWQ6ICVzICgleCkiLCBmdW5j
LCBscE1zZ0J1ZiwgZXJyKTsNCj4gLSAgICBMb2NhbEZyZWUobHBNc2dCdWYpOw0KPiAtfQ0KPiAt
DQo+IC12b2lkIFByaW50RXJyb3IoY29uc3QgY2hhciAqZnVuYykNCj4gLXsNCj4gLSAgICBQcmlu
dEVycm9yKGZ1bmMsIEdldExhc3RFcnJvcigpKTsNCj4gLX0NCj4gLQ0KPiAtdm9pZCBQcmludFVz
YWdlKCkNCj4gLXsNCj4gLSAgICBwcmludGYoIlVzYWdlOiB4ZW5zZXJ2aWNlIFstdV1cbiIpOw0K
PiAtDQo+IC0gICAgcHJpbnRmKCJcdCAtdTogdW5pbnN0YWxsIHNlcnZpY2VcbiIpOw0KPiAtfQ0K
PiAtDQo+IC0NCj4gLQ0KPiAtc3RydWN0IHdhdGNoX2V2ZW50IHsNCj4gLSAgICBIQU5ETEUgZXZl
bnQ7DQo+IC0gICAgdm9pZCAqd2F0Y2g7DQo+IC19Ow0KPiAtDQo+IC1zdGF0aWMgdm9pZA0KPiAt
UmVsZWFzZVdhdGNoKHN0cnVjdCB3YXRjaF9ldmVudCAqd2UpDQo+IC17DQo+IC0gICAgaWYgKHdl
ID09IE5VTEwpDQo+IC0gICAgICAgIHJldHVybjsNCj4gLSAgICBpZiAod2UtPmV2ZW50ICE9IElO
VkFMSURfSEFORExFX1ZBTFVFKQ0KPiAtICAgICAgICBDbG9zZUhhbmRsZSh3ZS0+ZXZlbnQpOw0K
PiAtICAgIGlmICh3ZS0+d2F0Y2gpDQo+IC0gICAgICAgIFhlbnN0b3JlVW53YXRjaCh3ZS0+d2F0
Y2gpOw0KPiAtICAgIGZyZWUod2UpOw0KPiAtfQ0KPiAtDQo+IC1zdGF0aWMgY2hhciAqIEluaXRT
dHJpbmcoY29uc3QgY2hhciAqIGlucHV0c3RyaW5nKQ0KPiAtew0KPiAtICAgIGNoYXIgKm91dHB1
dHN0cmluZyA9IChjaGFyICopY2FsbG9jKChzdHJsZW4oaW5wdXRzdHJpbmcpKzEpLHNpemVvZihj
aGFyKSk7DQo+IC0gICAgaWYgKG91dHB1dHN0cmluZyA9PSBOVUxMKQ0KPiAtICAgICAgICBnb3Rv
IGZhaWxhbGxvYzsNCj4gLSAgICBzdHJjcHkob3V0cHV0c3RyaW5nLCBpbnB1dHN0cmluZyk7DQo+
IC0gICAgcmV0dXJuIG91dHB1dHN0cmluZzsNCj4gLQ0KPiAtZmFpbGFsbG9jOg0KPiAtICAgIFhz
TG9nKF9fRlVOQ1RJT05fXyAiIDogRmFpbCBtYWxsb2MiKTsNCj4gLSAgICByZXR1cm4gTlVMTDsN
Cj4gLX0NCj4gLQ0KPiAtc3RhdGljIHZvaWQgRnJlZVN0cmluZyhjb25zdCBjaGFyICpzdHJpbmcp
DQo+IC17DQo+IC0gICAgZnJlZSgodm9pZCAqKXN0cmluZyk7DQo+IC19DQo+IC0NCj4gLXN0YXRp
YyBjaGFyKiBQcmludGZTdHJpbmcoY29uc3QgY2hhciAqZm10LCAuLi4pew0KPiAtICAgIHZhX2xp
c3QgbDsNCj4gLSAgICB2YV9zdGFydChsLCBmbXQpOw0KPiAtICAgIGludCBudW1jaGFycyA9IF92
c2NwcmludGYoZm10LCBsKTsNCj4gLSAgICBjaGFyICpvdXRwdXRzdHJpbmcgPSAoY2hhciAqKWNh
bGxvYyhudW1jaGFycyArIDEsIHNpemVvZihjaGFyKSk7DQo+IC0NCj4gLSAgICBpZiAob3V0cHV0
c3RyaW5nID09IE5VTEwpDQo+IC0gICAgICAgIHJldHVybiBOVUxMOw0KPiAtDQo+IC0gICAgX3Zz
bnByaW50ZihvdXRwdXRzdHJpbmcsIG51bWNoYXJzLCBmbXQsIGwpOw0KPiAtICAgIHJldHVybiBv
dXRwdXRzdHJpbmc7DQo+IC19DQo+IC0NCj4gLXN0YXRpYyBzdHJ1Y3Qgd2F0Y2hfZXZlbnQgKg0K
PiAtRXN0YWJsaXNoV2F0Y2goY29uc3QgY2hhciAqcGF0aCwgSEFORExFIGVycm9yZXZlbnQpDQo+
IC17DQo+IC0gICAgc3RydWN0IHdhdGNoX2V2ZW50ICp3ZTsNCj4gLSAgICBEV09SRCBlcnI7DQo+
IC0gICAgWHNMb2coIkVzdGFibGlzaCB3YXRjaCAlcyIscGF0aCk7DQo+IC0gICAgd2UgPSAoc3Ry
dWN0IHdhdGNoX2V2ZW50ICopbWFsbG9jKHNpemVvZigqd2UpKTsNCj4gLSAgICBpZiAoIXdlKSB7
DQo+IC0gICAgICAgIFNldExhc3RFcnJvcihFUlJPUl9OT1RfRU5PVUdIX01FTU9SWSk7DQo+IC0g
ICAgICAgIHJldHVybiBOVUxMOw0KPiAtICAgIH0NCj4gLSAgICBtZW1zZXQod2UsIDAsIHNpemVv
Zigqd2UpKTsNCj4gLSAgICB3ZS0+d2F0Y2ggPSBOVUxMOw0KPiAtICAgIHdlLT5ldmVudCA9IENy
ZWF0ZUV2ZW50KE5VTEwsIEZBTFNFLCBGQUxTRSwgTlVMTCk7DQo+IC0gICAgaWYgKHdlLT5ldmVu
dCAhPSBJTlZBTElEX0hBTkRMRV9WQUxVRSkNCj4gLSAgICAgICAgd2UtPndhdGNoID0gWGVuc3Rv
cmVXYXRjaChwYXRoLCB3ZS0+ZXZlbnQsIGVycm9yZXZlbnQpOw0KPiAtICAgIGlmICh3ZS0+d2F0
Y2ggPT0gTlVMTCkgew0KPiAtICAgICAgICBPdXRwdXREZWJ1Z1N0cmluZygiV2F0Y2ggaXMgbnVs
bFxuIik7DQo+IC0gICAgICAgIGVyciA9IEdldExhc3RFcnJvcigpOw0KPiAtICAgICAgICBSZWxl
YXNlV2F0Y2god2UpOw0KPiAtICAgICAgICBTZXRMYXN0RXJyb3IoZXJyKTsNCj4gLSAgICAgICAg
cmV0dXJuIE5VTEw7DQo+IC0gICAgfQ0KPiAtICAgIHJldHVybiB3ZTsNCj4gLX0NCj4gLQ0KPiAt
c3RydWN0IHdhdGNoX2ZlYXR1cmUgew0KPiAtICAgIHN0cnVjdCB3YXRjaF9ldmVudCAqd2F0Y2g7
DQo+IC0gICAgY29uc3QgY2hhciAqZmVhdHVyZV9mbGFnOw0KPiAtICAgIGNvbnN0IGNoYXIgKm5h
bWU7DQo+IC0gICAgQk9PTCAoKmhhbmRsZXIpKHZvaWQgKik7DQo+IC0gICAgdm9pZCAqY3R4Ow0K
PiAtfTsNCj4gLQ0KPiAtI2RlZmluZSBNQVhfRkVBVFVSRVMgMTANCj4gLXN0cnVjdCB3YXRjaF9m
ZWF0dXJlX3NldCB7DQo+IC0gICAgc3RydWN0IHdhdGNoX2ZlYXR1cmUgZmVhdHVyZXNbTUFYX0ZF
QVRVUkVTXTsNCj4gLSAgICB1bnNpZ25lZCBucl9mZWF0dXJlczsNCj4gLX07DQo+IC0NCj4gLXN0
YXRpYyBCT09MDQo+IC1BZGRGZWF0dXJlKHN0cnVjdCB3YXRjaF9mZWF0dXJlX3NldCAqd2ZzLCBj
b25zdCBjaGFyICpwYXRoLA0KPiAtICAgICAgICAgICBjb25zdCBjaGFyICpmbGFnLCBjb25zdCBj
aGFyICpuYW1lLA0KPiAtICAgICAgICAgICBCT09MICgqaGFuZGxlcikodm9pZCAqKSwgdm9pZCAq
Y3R4LCBIQU5ETEUgZXJyb3JldmVudCkNCj4gLXsNCj4gLSAgICB1bnNpZ25lZCBuOw0KPiAtICAg
IGlmICh3ZnMtPm5yX2ZlYXR1cmVzID09IE1BWF9GRUFUVVJFUykNCj4gLSAgICAgICAgZ290byBm
YWlsZmVhdHVyZXM7DQo+IC0NCj4gLSAgICBuID0gd2ZzLT5ucl9mZWF0dXJlczsNCj4gLQ0KPiAt
ICAgIHdmcy0+ZmVhdHVyZXNbbl0ud2F0Y2ggPSBFc3RhYmxpc2hXYXRjaChwYXRoLCBlcnJvcmV2
ZW50KTsNCj4gLSAgICBpZiAod2ZzLT5mZWF0dXJlc1tuXS53YXRjaCA9PSBOVUxMKQ0KPiAtICAg
ICAgICBnb3RvIGZhaWx3YXRjaDsNCj4gLQ0KPiAtICAgIHdmcy0+ZmVhdHVyZXNbbl0uZmVhdHVy
ZV9mbGFnID0gZmxhZzsNCj4gLSAgICB3ZnMtPmZlYXR1cmVzW25dLmhhbmRsZXIgPSBoYW5kbGVy
Ow0KPiAtICAgIHdmcy0+ZmVhdHVyZXNbbl0uY3R4ID0gY3R4Ow0KPiAtICAgIHdmcy0+ZmVhdHVy
ZXNbbl0ubmFtZSA9IEluaXRTdHJpbmcobmFtZSk7DQo+IC0gICAgaWYgKHdmcy0+ZmVhdHVyZXNb
bl0ubmFtZSA9PSBOVUxMKQ0KPiAtICAgICAgICBnb3RvIGZhaWxuYW1lOw0KPiAtICAgIHdmcy0+
bnJfZmVhdHVyZXMrKzsNCj4gLSAgICByZXR1cm4gdHJ1ZTsNCj4gLQ0KPiAtZmFpbG5hbWU6DQo+
IC0gICAgUHJpbnRFcnJvcigiRmFpbGVkIHRvIGFsbG9jYXRlIHN0cmluZyIpOw0KPiAtZmFpbHdh
dGNoOg0KPiAtICAgIFByaW50RXJyb3IoIkVzdGFibGlzaFdhdGNoKCkgZm9yIEFkZEZlYXR1cmUo
KSIpOw0KPiAtZmFpbGZlYXR1cmVzOg0KPiAtICAgIFhzTG9nKCJUb28gbWFueSBmZWF0dXJlcyIp
Ow0KPiAtICAgIFByaW50RXJyb3IoIlRvbyBtYW55IGZlYXR1cmVzISIsIEVSUk9SX0lOVkFMSURf
RlVOQ1RJT04pOw0KPiAtICAgIHJldHVybiBmYWxzZTsNCj4gLX0NCj4gLQ0KPiAtc3RhdGljIHZv
aWQgUmVtb3ZlRmVhdHVyZXMoc3RydWN0IHdhdGNoX2ZlYXR1cmVfc2V0ICp3ZnMpIHsNCj4gLSAg
ICB1bnNpZ25lZCB4Ow0KPiAtICAgIGZvciAoeCA9IDA7IHggPCB3ZnMtPm5yX2ZlYXR1cmVzOyB4
KyspIHsNCj4gLSAgICAgICAgUmVsZWFzZVdhdGNoKHdmcy0+ZmVhdHVyZXNbeF0ud2F0Y2gpOw0K
PiAtICAgICAgICB3ZnMtPmZlYXR1cmVzW3hdLndhdGNoID0gTlVMTDsNCj4gLSAgICAgICAgRnJl
ZVN0cmluZyh3ZnMtPmZlYXR1cmVzW3hdLm5hbWUpOw0KPiAtICAgICAgICBYZW5zdG9yZVJlbW92
ZSh3ZnMtPmZlYXR1cmVzW3hdLmZlYXR1cmVfZmxhZyk7DQo+IC0gICAgfQ0KPiAtICAgIHdmcy0+
bnJfZmVhdHVyZXMgPSAwOw0KPiAtfQ0KPiAtDQo+IC1zdGF0aWMgQk9PTA0KPiAtQWR2ZXJ0aXNl
RmVhdHVyZXMoc3RydWN0IHdhdGNoX2ZlYXR1cmVfc2V0ICp3ZnMpDQo+IC17DQo+IC0gICAgdW5z
aWduZWQgeDsNCj4gLSAgICBmb3IgKHggPSAwOyB4IDwgd2ZzLT5ucl9mZWF0dXJlczsgeCsrKSB7
DQo+IC0gICAgICAgIGlmICh3ZnMtPmZlYXR1cmVzW3hdLmZlYXR1cmVfZmxhZyAhPSBOVUxMKQ0K
PiAtICAgICAgICAgICAgaWYgKFhlbnN0b3JlUHJpbnRmKHdmcy0+ZmVhdHVyZXNbeF0uZmVhdHVy
ZV9mbGFnLCAiMSIpKXsNCj4gLSAgICAgICAgICAgICAgICBYc0xvZygiRmFpbGVkIHRvIGFkdmVy
dGlzZSAlcyIsd2ZzLT5mZWF0dXJlc1t4XS5uYW1lKTsNCj4gLSAgICAgICAgICAgIH0NCj4gLSAg
ICB9DQo+IC0gICAgcmV0dXJuIHRydWU7DQo+IC19DQo+IC0NCj4gLQ0KPiAtdm9pZCBTZXJ2aWNl
VW5pbnN0YWxsKCkNCj4gLXsNCj4gLSAgICBTQ19IQU5ETEUgICBoU3ZjOw0KPiAtICAgIFNDX0hB
TkRMRSAgIGhNZ3I7DQo+IC0NCj4gLSAgICBoTWdyID0gT3BlblNDTWFuYWdlcihOVUxMLCBOVUxM
LCBTQ19NQU5BR0VSX0FMTF9BQ0NFU1MpOw0KPiAtDQo+IC0gICAgaWYgKCBoTWdyICkNCj4gLSAg
ICB7DQo+IC0gICAgICAgIGhTdmMgPSBPcGVuU2VydmljZShoTWdyLCBTVkNfTkFNRSwgU0VSVklD
RV9BTExfQUNDRVNTKTsNCj4gLQ0KPiAtICAgICAgICBpZiAoaFN2YykNCj4gLSAgICAgICAgew0K
PiAtICAgICAgICAgICAgIC8vIHRyeSB0byBzdG9wIHRoZSBzZXJ2aWNlDQo+IC0gICAgICAgICAg
ICAgaWYgKCBDb250cm9sU2VydmljZSggaFN2YywgU0VSVklDRV9DT05UUk9MX1NUT1AsICZTZXJ2
aWNlU3RhdHVzICkgKQ0KPiAtICAgICAgICAgICAgIHsNCj4gLSAgICAgICAgICAgICAgICBwcmlu
dGYoIlN0b3BwaW5nICVzLiIsIFNWQ19ESVNQTEFZTkFNRSk7DQo+IC0gICAgICAgICAgICAgICAg
U2xlZXAoIDEwMDAgKTsNCj4gLQ0KPiAtICAgICAgICAgICAgICAgIHdoaWxlICggUXVlcnlTZXJ2
aWNlU3RhdHVzKCBoU3ZjLCAmU2VydmljZVN0YXR1cyApICkNCj4gLSAgICAgICAgICAgICAgICB7
DQo+IC0gICAgICAgICAgICAgICAgICAgIGlmICggU2VydmljZVN0YXR1cy5kd0N1cnJlbnRTdGF0
ZSA9PSBTRVJWSUNFX1NUT1BfUEVORElORyApDQo+IC0gICAgICAgICAgICAgICAgICAgIHsNCj4g
LSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiLiIpOw0KPiAtICAgICAgICAgICAgICAg
ICAgICAgICAgU2xlZXAoIDEwMDAgKTsNCj4gLSAgICAgICAgICAgICAgICAgICAgfQ0KPiAtICAg
ICAgICAgICAgICAgICAgICBlbHNlDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsN
Cj4gLSAgICAgICAgICAgICAgICB9DQo+IC0NCj4gLSAgICAgICAgICAgICAgICBpZiAoIFNlcnZp
Y2VTdGF0dXMuZHdDdXJyZW50U3RhdGUgPT0gU0VSVklDRV9TVE9QUEVEICkNCj4gLSAgICAgICAg
ICAgICAgICAgICAgcHJpbnRmKCJcbiVzIHN0b3BwZWQuXG4iLCBTVkNfRElTUExBWU5BTUUgKTsN
Cj4gLSAgICAgICAgICAgICAgICBlbHNlDQo+IC0gICAgICAgICAgICAgICAgICAgIHByaW50Zigi
XG4lcyBmYWlsZWQgdG8gc3RvcC5cbiIsIFNWQ19ESVNQTEFZTkFNRSApOw0KPiAtICAgICAgICAg
fQ0KPiAtDQo+IC0gICAgICAgICAvLyBub3cgcmVtb3ZlIHRoZSBzZXJ2aWNlDQo+IC0gICAgICAg
ICBpZiAoIERlbGV0ZVNlcnZpY2UoaFN2YykgKQ0KPiAtICAgICAgICAgICAgcHJpbnRmKCIlcyB1
bmluc3RhbGxlZC5cbiIsIFNWQ19ESVNQTEFZTkFNRSApOw0KPiAtICAgICAgICAgZWxzZQ0KPiAt
ICAgICAgICAgICAgcHJpbnRmKCJVbmFibGUgdG8gdW5pbnN0YWxsIC0gJWRcbiIsIEdldExhc3RF
cnJvcigpKTsNCj4gLQ0KPiAtICAgICAgICAgQ2xvc2VTZXJ2aWNlSGFuZGxlKGhTdmMpOw0KPiAt
DQo+IC0gICAgICB9DQo+IC0gICAgICBlbHNlDQo+IC0gICAgICAgICBwcmludGYoIlVuYWJsZSB0
byBvcGVuIHNlcnZpY2UgLSAlZFxuIiwgR2V0TGFzdEVycm9yKCkpOw0KPiAtDQo+IC0gICAgICBD
bG9zZVNlcnZpY2VIYW5kbGUoaE1ncik7DQo+IC0gICB9DQo+IC0gICBlbHNlDQo+IC0gICAgICBw
cmludGYoIlVuYWJsZSB0byBvcGVuIHNjbSAtICVkXG4iLCBHZXRMYXN0RXJyb3IoKSk7DQo+IC0N
Cj4gLX0NCj4gLQ0KPiAtDQo+IC1pbnQgX19zdGRjYWxsDQo+IC1XaW5NYWluKEhJTlNUQU5DRSBo
SW5zdGFuY2UsIEhJTlNUQU5DRSBpZ25vcmUsDQo+IC0gICAgICAgIExQU1RSIGxwQ21kTGluZSwg
aW50IG5DbWRTaG93KQ0KPiAtew0KPiAtICAgIGxvY2FsX2hpbnN0YW5jZSA9IGhJbnN0YW5jZTsN
Cj4gLQ0KPiAtICAgIGlmIChzdHJsZW4obHBDbWRMaW5lKSA9PSAwKSB7DQo+IC0gICAgICAgIFNF
UlZJQ0VfVEFCTEVfRU5UUlkgU2VydmljZVRhYmxlWzJdOw0KPiAtICAgICAgICBTZXJ2aWNlVGFi
bGVbMF0ubHBTZXJ2aWNlTmFtZSA9IFNWQ19OQU1FOw0KPiAtICAgICAgICBTZXJ2aWNlVGFibGVb
MF0ubHBTZXJ2aWNlUHJvYyA9DQo+IChMUFNFUlZJQ0VfTUFJTl9GVU5DVElPTilTZXJ2aWNlTWFp
bjsNCj4gLQ0KPiAtICAgICAgICBTZXJ2aWNlVGFibGVbMV0ubHBTZXJ2aWNlTmFtZSA9IE5VTEw7
DQo+IC0gICAgICAgIFNlcnZpY2VUYWJsZVsxXS5scFNlcnZpY2VQcm9jID0gTlVMTDsNCj4gLQ0K
PiAtICAgICAgICBEQkdQUklOVCgoIlhlblN2Yzogc3RhcnRpbmcgY3RybCBkaXNwYXRjaGVyICIp
KTsNCj4gLQ0KPiAtICAgICAgICAvLyBTdGFydCB0aGUgY29udHJvbCBkaXNwYXRjaGVyIHRocmVh
ZCBmb3Igb3VyIHNlcnZpY2UNCj4gLSAgICAgICAgaWYgKCFTdGFydFNlcnZpY2VDdHJsRGlzcGF0
Y2hlcihTZXJ2aWNlVGFibGUpKQ0KPiAtICAgICAgICB7DQo+IC0gICAgICAgICAgICBpbnQgZXJy
ID0gR2V0TGFzdEVycm9yKCk7DQo+IC0gICAgICAgICAgICBpZiAoR2V0TGFzdEVycm9yKCkgPT0N
Cj4gRVJST1JfRkFJTEVEX1NFUlZJQ0VfQ09OVFJPTExFUl9DT05ORUNUKQ0KPiAtICAgICAgICAg
ICAgew0KPiAtICAgICAgICAgICAgICAgIERCR1BSSU5UKCgiWGVuU3ZjOiB1bmFibGUgdG8gc3Rh
cnQgY3RybCBkaXNwYXRjaGVyIC0gJWQiLA0KPiBHZXRMYXN0RXJyb3IoKSkpOw0KPiAtICAgICAg
ICAgICAgfQ0KPiAtICAgICAgICB9DQo+IC0gICAgICAgIGVsc2UNCj4gLSAgICAgICAgew0KPiAt
ICAgICAgICAgICAgLy8gV2UgZ2V0IGhlcmUgd2hlbiB0aGUgc2VydmljZSBpcyBzaHV0IGRvd24u
DQo+IC0gICAgICAgIH0NCj4gLSAgICB9IGVsc2UgaWYgKCFzdHJjbXAobHBDbWRMaW5lLCAiLXUi
KSB8fCAhc3RyY21wKGxwQ21kTGluZSwgIlwiLXVcIiIpKSB7DQo+IC0gICAgICAgIFNlcnZpY2VV
bmluc3RhbGwoKTsNCj4gLSAgICB9IGVsc2Ugew0KPiAtICAgICAgICBQcmludFVzYWdlKCk7DQo+
IC0gICAgfQ0KPiAtDQo+IC0gICAgcmV0dXJuIDA7DQo+IC19DQo+IC0NCj4gLXZvaWQgQWNxdWly
ZVN5c3RlbVByaXZpbGVnZShMUENUU1RSIG5hbWUpDQo+IC17DQo+IC0gICAgSEFORExFIHRva2Vu
Ow0KPiAtICAgIFRPS0VOX1BSSVZJTEVHRVMgdGtwOw0KPiAtICAgIERXT1JEIGVycjsNCj4gLQ0K
PiAtICAgIExvb2t1cFByaXZpbGVnZVZhbHVlKE5VTEwsIG5hbWUsICZ0a3AuUHJpdmlsZWdlc1sw
XS5MdWlkKTsNCj4gLSAgICB0a3AuUHJpdmlsZWdlQ291bnQgPSAxOw0KPiAtICAgIHRrcC5Qcml2
aWxlZ2VzWzBdLkF0dHJpYnV0ZXMgPSBTRV9QUklWSUxFR0VfRU5BQkxFRDsNCj4gLSAgICBpZiAo
IU9wZW5Qcm9jZXNzVG9rZW4oR2V0Q3VycmVudFByb2Nlc3MoKSwNCj4gLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgVE9LRU5fQURKVVNUX1BSSVZJTEVHRVN8VE9LRU5fUVVFUlksDQo+IC0gICAg
ICAgICAgICAgICAgICAgICAgICAgICZ0b2tlbikpIHsNCj4gLSAgICAgICAgREJHUFJJTlQoKCJG
YWlsZWQgdG8gb3BlbiBsb2NhbCB0b2tlbi5cbiIpKTsNCj4gLSAgICB9IGVsc2Ugew0KPiAtICAg
ICAgICBBZGp1c3RUb2tlblByaXZpbGVnZXModG9rZW4sIEZBTFNFLCAmdGtwLA0KPiAtICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgMCwgTlVMTCk7DQo+IC0gICAgICAgIGVyciA9
IEdldExhc3RFcnJvcigpOw0KPiAtICAgICAgICBpZiAoZXJyICE9IEVSUk9SX1NVQ0NFU1MpIHsN
Cj4gLSAgICAgICAgICAgIFByaW50RXJyb3IoIkFkanVzdFRva2VuUHJpdmlsZWdlcyIsIGVycik7
DQo+IC0gICAgICAgIH0NCj4gLSAgICB9DQo+IC19DQo+IC0NCj4gLXN0YXRpYyB2b2lkIEFjcXVp
cmVTeXN0ZW1TaHV0ZG93blByaXZpbGVnZSh2b2lkKQ0KPiAtew0KPiAtICAgIEFjcXVpcmVTeXN0
ZW1Qcml2aWxlZ2UoU0VfU0hVVERPV05fTkFNRSk7DQo+IC19DQo+IC0NCj4gLWVudW0gWFNodXRk
b3duVHlwZSB7DQo+IC0gICAgWFNodXRkb3duUG93ZXJvZmYsDQo+IC0gICAgWFNodXRkb3duUmVi
b290LA0KPiAtICAgIFhTaHV0ZG93blN1c3BlbmQsDQo+IC0gICAgWFNodXRkb3duUzMNCj4gLX07
DQo+IC0NCj4gLXN0YXRpYyBCT09MIG1heWJlUmVib290KHZvaWQgKmN0eCkNCj4gLXsNCj4gLSAg
ICBjaGFyICpzaHV0ZG93bl90eXBlOw0KPiAtICAgIEJPT0wgcmVzOw0KPiAtICAgIGVudW0gWFNo
dXRkb3duVHlwZSB0eXBlOw0KPiAtICAgIGludCBjbnRyID0gMDsNCj4gLQ0KPiAtICAgIFhzTG9n
KCJDaGVjayBpZiB3ZSBuZWVkIHRvIHNodXRkb3duIik7DQo+IC0NCj4gLSAgICBpZiAoWGVuc3Rv
cmVSZWFkKCJjb250cm9sL3NodXRkb3duIiwgJnNodXRkb3duX3R5cGUpIDwgMCkgew0KPiAtICAg
ICAgICBYc0xvZygiTm8gbmVlZCB0byBzaHV0ZG93biIpOw0KPiAtICAgICAgICByZXR1cm4gdHJ1
ZTsNCj4gLSAgICB9DQo+IC0gICAgWHNMb2coIlNodXRkb3duIHR5cGUgJXNcbiIsIHNodXRkb3du
X3R5cGUpOw0KPiAtICAgIGlmIChzdHJjbXAoc2h1dGRvd25fdHlwZSwgInBvd2Vyb2ZmIikgPT0g
MCB8fA0KPiAtICAgICAgICBzdHJjbXAoc2h1dGRvd25fdHlwZSwgImhhbHQiKSA9PSAwKSB7DQo+
IC0gICAgICAgIHR5cGUgPSBYU2h1dGRvd25Qb3dlcm9mZjsNCj4gLSAgICB9IGVsc2UgaWYgKHN0
cmNtcChzaHV0ZG93bl90eXBlLCAicmVib290IikgPT0gMCkgew0KPiAtICAgICAgICB0eXBlID0g
WFNodXRkb3duUmVib290Ow0KPiAtICAgIH0gZWxzZSBpZiAoc3RyY21wKHNodXRkb3duX3R5cGUs
ICJoaWJlcm5hdGUiKSA9PSAwKSB7DQo+IC0gICAgICAgIHR5cGUgPSBYU2h1dGRvd25TdXNwZW5k
Ow0KPiAtICAgIH0gZWxzZSBpZiAoc3RyY21wKHNodXRkb3duX3R5cGUsICJzMyIpID09IDApIHsN
Cj4gLSAgICAgICAgdHlwZSA9IFhTaHV0ZG93blMzOw0KPiAtICAgIH0gZWxzZSB7DQo+IC0gICAg
ICAgIERCR1BSSU5UKCgiQmFkIHNodXRkb3duIHR5cGUgJXNcbiIsIHNodXRkb3duX3R5cGUpKTsN
Cj4gLSAgICAgICAgZ290byBvdXQ7DQo+IC0gICAgfQ0KPiAtDQo+IC0gICAgWHNMb2coIlJlcG9y
dCBTaHV0ZG93biBFdmVudCIpOw0KPiAtICAgIC8qIFdlIHRyeSB0byBzaHV0ZG93biBldmVuIGlm
IHRoaXMgZmFpbHMsIHNpbmNlIGl0IG1pZ2h0IHdvcmsNCj4gLSAgICAgICBhbmQgaXQgY2FuJ3Qg
ZG8gYW55IGhhcm0uICovDQo+IC0gICAgQWNxdWlyZVN5c3RlbVNodXRkb3duUHJpdmlsZWdlKCk7
DQo+IC0NCj4gLSAgICBpZiAoZXZlbnRMb2cpIHsNCj4gLSAgICAgICAgRFdPUkQgZXZlbnRJZDsN
Cj4gLQ0KPiAtICAgICAgICBzd2l0Y2ggKHR5cGUpIHsNCj4gLSAgICAgICAgY2FzZSBYU2h1dGRv
d25Qb3dlcm9mZjoNCj4gLSAgICAgICAgICAgIGV2ZW50SWQgPSBFVkVOVF9YRU5VU0VSX1BPV0VS
T0ZGOw0KPiAtICAgICAgICAgICAgYnJlYWs7DQo+IC0gICAgICAgIGNhc2UgWFNodXRkb3duUmVi
b290Og0KPiAtICAgICAgICAgICAgZXZlbnRJZCA9IEVWRU5UX1hFTlVTRVJfUkVCT09UOw0KPiAt
ICAgICAgICAgICAgYnJlYWs7DQo+IC0gICAgICAgIGNhc2UgWFNodXRkb3duU3VzcGVuZDoNCj4g
LSAgICAgICAgICAgIGV2ZW50SWQgPSBFVkVOVF9YRU5VU0VSX0hJQkVSTkFURTsNCj4gLSAgICAg
ICAgICAgIGJyZWFrOw0KPiAtICAgICAgICBjYXNlIFhTaHV0ZG93blMzOg0KPiAtICAgICAgICAg
ICAgZXZlbnRJZCA9IEVWRU5UX1hFTlVTRVJfUzM7DQo+IC0gICAgICAgICAgICBicmVhazsNCj4g
LSAgICAgICAgfQ0KPiAtICAgIH0NCj4gLQ0KPiAtICAgIFhzTG9nKCJEbyB0aGUgc2h1dGRvd24i
KTsNCj4gLQ0KPiAtICAgIC8qIGRvIHRoZSBzaHV0ZG93biAqLw0KPiAtICAgIHN3aXRjaCAodHlw
ZSkgew0KPiAtICAgIGNhc2UgWFNodXRkb3duUG93ZXJvZmY6DQo+IC0gICAgY2FzZSBYU2h1dGRv
d25SZWJvb3Q6DQo+IC0gICAgICAgIGlmIChXaW5kb3dzVmVyc2lvbiA+PSAweDUwMCAmJiBXaW5k
b3dzVmVyc2lvbiA8IDB4NjAwKQ0KPiAtICAgICAgICB7DQo+IC0gICAgICAgICAgICAvKiBXaW5k
b3dzIDIwMDAgSW5pdGlhdGVTeXN0ZW1TaHV0ZG93bkV4IGlzIGZ1bm55IGluDQo+IC0gICAgICAg
ICAgICAgICB2YXJpb3VzIHdheXMgKGUuZy4gc29tZXRpbWVzIGZhaWxzIHRvIHBvd2VyIG9mZiBh
ZnRlcg0KPiAtICAgICAgICAgICAgICAgc2h1dGRvd24sIGVzcGVjaWFsbHkgaWYgdGhlIGxvY2Fs
IHRlcm1pbmFsIGlzIGxvY2tlZCwNCj4gLSAgICAgICAgICAgICAgIG5vdCBkb2luZyBhbnl0aGlu
ZyBpZiB0aGVyZSdzIG5vYm9keSBsb2dnZWQgb24sIGV0Yy4pLg0KPiAtICAgICAgICAgICAgICAg
RXhpdFdpbmRvd3NFeCBzZWVtcyB0byBiZSBtb3JlIHJlbGlhYmxlLCBzbyB1c2UgaXQNCj4gLSAg
ICAgICAgICAgICAgIGluc3RlYWQuICovDQo+IC0gICAgICAgICAgICAvKiBYWFggSSBkb24ndCBy
ZWFsbHkgdW5kZXJzdGFuZCB3aHkNCj4gLSAgICAgICAgICAgICAgIEluaXRpYXRlU3lzdGVtU2h1
dGRvd25FeCBiZWhhdmVzIHNvIGJhZGx5LiAqLw0KPiAtICAgICAgICAgICAgLyogSWYgdGhpcyBp
cyBhIGxlZ2FjeSBoYWwgdGhlbiB1c2UgRVdYX1NIVVRET1dOIHdoZW4gc2h1dHRpbmcNCj4gLSAg
ICAgICAgICAgICAgIGRvd24gaW5zdGVhZCBvZiBFV1hfUE9XRVJPRkYuICovDQo+IC0gICAgICAg
IC8qIFNpbWlsYXIgcHJvYmxlbSBvbiBYUC4gU2h1dGRvd24vUmVib290IHdpbGwgaGFuZyB1bnRp
bCB0aGUNCj4gV2VsY29tZQ0KPiAtICAgICAgICBzY3JlZW4gc2NyZWVuc2F2ZXIgaXMgZGlzbWlz
c2VkIGJ5IHRoZSBndWVzdCAqLw0KPiAtI3ByYWdtYSB3YXJuaW5nIChkaXNhYmxlIDogMjgxNTkp
DQo+IC0gICAgICAgICAgICByZXMgPSBFeGl0V2luZG93c0V4KCh0eXBlID09IFhTaHV0ZG93blJl
Ym9vdCA/DQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFV1hfUkVCT09U
IDoNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMZWdhY3lIYWwgPw0K
PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVXWF9TSFVURE9XTiA6
DQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVdYX1BPV0VST0ZG
KSl8DQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVXWF9GT1JDRSwNCj4gLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hURE5fUkVBU09OX01BSk9SX09USEVSfA0K
PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSFRETl9SRUFTT05fTUlOT1JfRU5W
SVJPTk1FTlQgfA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSFRETl9SRUFT
T05fRkxBR19QTEFOTkVEKTsNCj4gLSNwcmFnbWEgd2FybmluZyAoZGVmYXVsdDogMjgxNTkpDQo+
IC0gICAgICAgICAgICBpZiAoIXJlcykgew0KPiAtICAgICAgICAgICAgICAgIFByaW50RXJyb3Io
IkV4aXRXaW5kb3dzRXgiKTsNCj4gLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQo+IC0g
ICAgICAgICAgICB9DQo+IC0gICAgICAgICAgICBlbHNlDQo+IC0gICAgICAgICAgICB7DQo+IC0g
ICAgICAgICAgICAgICAgaWYgKFhlbnN0b3JlUmVtb3ZlKCJjb250cm9sL3NodXRkb3duIikpDQo+
IC0gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCj4gLSAgICAgICAgICAgIH0NCj4g
LSAgICAgICAgfSBlbHNlIHsNCj4gLSNwcmFnbWEgd2FybmluZyAoZGlzYWJsZSA6IDI4MTU5KQ0K
PiAtICAgICAgICAgICAgcmVzID0gSW5pdGlhdGVTeXN0ZW1TaHV0ZG93bkV4KA0KPiAtICAgICAg
ICAgICAgICAgIE5VTEwsDQo+IC0gICAgICAgICAgICAgICAgTlVMTCwNCj4gLSAgICAgICAgICAg
ICAgICAwLA0KPiAtICAgICAgICAgICAgICAgIFRSVUUsDQo+IC0gICAgICAgICAgICAgICAgdHlw
ZSA9PSBYU2h1dGRvd25SZWJvb3QsDQo+IC0gICAgICAgICAgICAgICAgU0hURE5fUkVBU09OX01B
Sk9SX09USEVSIHwNCj4gLSAgICAgICAgICAgICAgICBTSFRETl9SRUFTT05fTUlOT1JfRU5WSVJP
Tk1FTlQgfA0KPiAtICAgICAgICAgICAgICAgIFNIVEROX1JFQVNPTl9GTEFHX1BMQU5ORUQpOw0K
PiAtI3ByYWdtYSB3YXJuaW5nIChkZWZhdWx0OiAyODE1OSkNCj4gLSAgICAgICAgICAgIGlmICgh
cmVzKSB7DQo+IC0gICAgICAgICAgICAgICAgUHJpbnRFcnJvcigiSW5pdGlhdGVTeXN0ZW1TaHV0
ZG93bkV4Iik7DQo+IC0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KPiAtICAgICAgICAg
ICAgfSBlbHNlIHsNCj4gLSAgICAgICAgICAgICAgICBpZiAoWGVuc3RvcmVSZW1vdmUoImNvbnRy
b2wvc2h1dGRvd24iKSkNCj4gLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KPiAt
ICAgICAgICAgICAgfQ0KPiAtICAgICAgICB9DQo+IC0gICAgICAgIGJyZWFrOw0KPiAtICAgIGNh
c2UgWFNodXRkb3duU3VzcGVuZDoNCj4gLSAgICAgICAgaWYgKFhlbnN0b3JlUHJpbnRmICgiY29u
dHJvbC9oaWJlcm5hdGlvbi1zdGF0ZSIsICJzdGFydGVkIikpDQo+IC0gICAgICAgICAgICByZXR1
cm4gZmFsc2U7DQo+IC0gICAgICAgIC8qIEV2ZW4gaWYgd2UgdGhpbmsgaGliZXJuYXRpb24gaXMg
ZGlzYWJsZWQsIHRyeSBpdCBhbnl3YXkuDQo+IC0gICAgICAgICAgIEl0J3Mgbm90IGxpa2UgaXQg
Y2FuIGRvIGFueSBoYXJtLiAqLw0KPiAtICAgICAgICByZXMgPSBTZXRTeXN0ZW1Qb3dlclN0YXRl
KEZBTFNFLCBGQUxTRSk7DQo+IC0gICAgICAgIGlmIChYZW5zdG9yZVJlbW92ZSAoImNvbnRyb2wv
c2h1dGRvd24iKSkNCj4gLSAgICAgICAgew0KPiAtICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0K
PiAtICAgICAgICB9DQo+IC0gICAgICAgIGlmICghcmVzKSB7DQo+IC0gICAgICAgICAgICAvKiBU
ZWxsIHRoZSB0b29scyB0aGF0IHdlJ3ZlIGZhaWxlZC4gKi8NCj4gLSAgICAgICAgICAgIFByaW50
RXJyb3IoIlNldFN5c3RlbVBvd2VyU3RhdGUiKTsNCj4gLSAgICAgICAgICAgIGlmIChYZW5zdG9y
ZVByaW50ZiAoImNvbnRyb2wvaGliZXJuYXRpb24tc3RhdGUiLCAiZmFpbGVkIikpDQo+IC0gICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KPiAtICAgICAgICB9DQo+IC0gICAgICAgIGJyZWFr
Ow0KPiAtICAgIGNhc2UgWFNodXRkb3duUzM6DQo+IC0gICAgICAgIGlmIChYZW5zdG9yZVByaW50
ZiAoImNvbnRyb2wvczMtc3RhdGUiLCAic3RhcnRlZCIpKQ0KPiAtICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOw0KPiAtICAgICAgICByZXMgPSBTZXRTdXNwZW5kU3RhdGUoRkFMU0UsIFRSVUUsIEZB
TFNFKTsNCj4gLSAgICAgICAgWGVuc3RvcmVSZW1vdmUgKCJjb250cm9sL3NodXRkb3duIik7DQo+
IC0gICAgICAgIGlmICghcmVzKSB7DQo+IC0gICAgICAgICAgICBQcmludEVycm9yKCJTZXRTdXNw
ZW5kU3RhdGUiKTsNCj4gLSAgICAgICAgICAgIGlmIChYZW5zdG9yZVByaW50ZiAoImNvbnRyb2wv
czMtc3RhdGUiLCAiZmFpbGVkIikpDQo+IC0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0K
PiAtICAgICAgICB9DQo+IC0gICAgICAgIGJyZWFrOw0KPiAtICAgIH0NCj4gLQ0KPiAtb3V0Og0K
PiAtICAgIFhlbnN0b3JlRnJlZShzaHV0ZG93bl90eXBlKTsNCj4gLSAgICByZXR1cm4gdHJ1ZTsN
Cj4gLX0NCj4gLQ0KPiAtc3RhdGljIGJvb2wgcmVnaXN0cnlNYXRjaFN0cmluZyhIS0VZICAgIGhL
ZXksDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExQQ1RTVFIgbHBWYWx1ZU5h
bWUsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExQQ1RTVFIgY29tcGFyZXN0
cmluZywNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCAgICBtYXRjaGNh
c2UpDQo+IC17DQo+IC0gICAgYm9vbCAgICByZXN1bHQgPSBmYWxzZTsNCj4gLSAgICBMT05HICAg
IGJ1ZmZlcnNpemUgPSBzaXplb2YoVENIQVIpKjI1NjsNCj4gLSAgICBUQ0hBUiAgICpvdXRzdHJp
bmcgPSBOVUxMOw0KPiAtICAgIERXT1JEICBvdXRzdHJpbmdzaXplOw0KPiAtICAgIExPTkcgICAg
c3RhdHVzOw0KPiAtICAgIGRvIHsNCj4gLSAgICAgICAgb3V0c3RyaW5nc2l6ZSA9IGJ1ZmZlcnNp
emU7DQo+IC0gICAgICAgIG91dHN0cmluZyA9IChUQ0hBUiAqKXJlYWxsb2Mob3V0c3RyaW5nLCBv
dXRzdHJpbmdzaXplKTsNCj4gLQ0KPiAtICAgICAgICBzdGF0dXMgPSBSZWdRdWVyeVZhbHVlRXgo
aEtleSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxwVmFsdWVOYW1lLA0K
PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwNCj4gLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIE5VTEwsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoTFBCWVRFKSBvdXRzdHJpbmcsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAmb3V0c3RyaW5nc2l6ZSk7DQo+IC0gICAgICAgIGJ1ZmZlcnNpemUgKj0gMjsNCj4g
LSAgICB9IHdoaWxlIChzdGF0dXMgPT0gRVJST1JfTU9SRV9EQVRBKTsNCj4gLQ0KPiAtICAgIGlm
IChzdGF0dXMgPT0gRVJST1JfRklMRV9OT1RfRk9VTkQpDQo+IC0gICAgICAgIGdvdG8gZG9uZTsN
Cj4gLQ0KPiAtICAgIGlmIChtYXRjaGNhc2UpIHsNCj4gLSAgICAgICAgaWYgKF90Y3NuY21wKGNv
bXBhcmVzdHJpbmcsIG91dHN0cmluZywgb3V0c3RyaW5nc2l6ZSkpDQo+IC0gICAgICAgICAgICBn
b3RvIGRvbmU7DQo+IC0gICAgfQ0KPiAtICAgIGVsc2Ugew0KPiAtICAgICAgICBpZiAoX3Rjc25p
Y29sbChjb21wYXJlc3RyaW5nLCBvdXRzdHJpbmcsIG91dHN0cmluZ3NpemUpKQ0KPiAtICAgICAg
ICAgICAgZ290byBkb25lOw0KPiAtICAgIH0NCj4gLQ0KPiAtICAgIHJlc3VsdCA9IHRydWU7DQo+
IC0NCj4gLWRvbmU6DQo+IC0gICAgZnJlZShvdXRzdHJpbmcpOw0KPiAtDQo+IC0gICAgcmV0dXJu
IHJlc3VsdDsNCj4gLX0NCj4gLQ0KPiAtc3RhdGljIGJvb2wNCj4gLWFkanVzdFhlblRpbWVUb1VU
QyhGSUxFVElNRSAqbm93KQ0KPiAtew0KPiAtICAgIERXT1JEICAgICAgICAgICBkd3RpbWVvZmZz
ZXQ7DQo+IC0gICAgbG9uZyAgICAgICAgICAgIHRpbWVvZmZzZXQ7DQo+IC0gICAgY2hhciAgICAg
ICAgICAgICp2bTsNCj4gLSAgICBjaGFyICAgICAgICAgICAgKnJ0Y2tleTsNCj4gLSAgICBMQVJH
RV9JTlRFR0VSICAgbG9uZ29mZnNldDsNCj4gLSAgICBVTEFSR0VfSU5URUdFUiAgbG9uZ25vdzsN
Cj4gLSAgICBzaXplX3QgICAgICAgICAgdm1sZW47DQo+IC0NCj4gLSAgICAvLyBYZW5UaW1lIGlz
IGFzc3VtZWQgdG8gYmUgaW4gVVRDLCBzbyB3ZSBuZWVkIHRvIHJlbW92ZSBhbnkNCj4gLSAgICAv
LyBvZmZzZXRzIHRoYXQgYXJlIGFwcGxpZWQgdG8gaXQNCj4gLQ0KPiAtICAgIF9fdHJ5IHsNCj4g
LSAgICAgICAgdm1sZW4gPSBYZW5zdG9yZVJlYWQoInZtIiwgJnZtKTsNCj4gLSAgICAgICAgaWYg
KHZtbGVuIDw9IDApDQo+IC0gICAgICAgICAgICBnb3RvIGZhaWxfcmVhZHZtOw0KPiAtICAgIH0N
Cj4gLSAgICBfX2V4Y2VwdChFWENFUFRJT05fRVhFQ1VURV9IQU5ETEVSKQ0KPiAtICAgIHsNCj4g
LSAgICAgICAgZ290byBmYWlsX3JlYWR2bTsNCj4gLSAgICB9DQo+IC0NCj4gLSAgICBydGNrZXkg
PSBQcmludGZTdHJpbmcoIiVzL3J0Yy90aW1lb2Zmc2V0Iiwgdm0pOw0KPiAtICAgIGlmIChydGNr
ZXkgPT0gTlVMTCkNCj4gLSAgICAgICAgZ290byBmYWlsX3J0Y2tleTsNCj4gLQ0KPiAtICAgIF90
cnkgew0KPiAtICAgICAgICBCT09MIHJ0Y3JlYWR3b3JrZWQ7DQo+IC0gICAgICAgIF9fdHJ5IHsN
Cj4gLSAgICAgICAgICAgIHJ0Y3JlYWR3b3JrZWQgPSBYZW5zdG9yZVJlYWREd29yZChydGNrZXks
ICZkd3RpbWVvZmZzZXQpOw0KPiAtICAgICAgICB9DQo+IC0gICAgICAgIF9fZXhjZXB0KEVYQ0VQ
VElPTl9FWEVDVVRFX0hBTkRMRVIpIHsNCj4gLSAgICAgICAgICAgIHJ0Y3JlYWR3b3JrZWQgPSBm
YWxzZTsNCj4gLSAgICAgICAgfQ0KPiAtICAgICAgICBpZiAoIXJ0Y3JlYWR3b3JrZWQpIHsNCj4g
LSAgICAgICAgICAgIGlmICghWGVuc3RvcmVSZWFkRHdvcmQoInBsYXRmb3JtL3RpbWVvZmZzZXQi
LCAmZHd0aW1lb2Zmc2V0KSkNCj4gLSAgICAgICAgICAgICAgICBnb3RvIGZhaWxfcGxhdGZvcm10
aW1lb2Zmc2V0Ow0KPiAtICAgICAgICB9DQo+IC0gICAgfQ0KPiAtICAgIF9fZXhjZXB0KEVYQ0VQ
VElPTl9FWEVDVVRFX0hBTkRMRVIpDQo+IC0gICAgew0KPiAtICAgICAgICBnb3RvIGZhaWxfcGxh
dGZvcm10aW1lb2Zmc2V0Ow0KPiAtICAgIH0NCj4gLSAgICB0aW1lb2Zmc2V0ID0gKGxvbmcpZHd0
aW1lb2Zmc2V0Ow0KPiAtDQo+IC0gICAgLy9Db252ZXJ0IG9mZnNldCBmcm9tIHNlY29uZHMgdG8g
bmFub3NlY29uZHMNCj4gLSAgICBsb25nb2Zmc2V0LlF1YWRQYXJ0ID0gIChMT05HTE9ORyl0aW1l
b2Zmc2V0Ow0KPiAtICAgIGxvbmdvZmZzZXQuUXVhZFBhcnQgPSBsb25nb2Zmc2V0LlF1YWRQYXJ0
ICogMTAwMDAwMDA7DQo+IC0NCj4gLSAgICAvLyBTdWJ0cmFjdCBuYW5vc2Vjb25kIHRpbWVvZmZz
ZXQgZnJvbSBub3cNCj4gLSAgICBsb25nbm93Lkxvd1BhcnQgPSBub3ctPmR3TG93RGF0ZVRpbWU7
DQo+IC0gICAgbG9uZ25vdy5IaWdoUGFydCA9IG5vdy0+ZHdIaWdoRGF0ZVRpbWU7DQo+IC0gICAg
bG9uZ25vdy5RdWFkUGFydCAtPSBsb25nb2Zmc2V0LlF1YWRQYXJ0Ow0KPiAtICAgIG5vdy0+ZHdM
b3dEYXRlVGltZSA9IGxvbmdub3cuTG93UGFydDsNCj4gLSAgICBub3ctPmR3SGlnaERhdGVUaW1l
ID0gbG9uZ25vdy5IaWdoUGFydDsNCj4gLQ0KPiAtICAgIEZyZWVTdHJpbmcocnRja2V5KTsNCj4g
LSAgICBYc0ZyZWUodm0pOw0KPiAtICAgIHJldHVybiB0cnVlOw0KPiAtDQo+IC1mYWlsX3BsYXRm
b3JtdGltZW9mZnNldDoNCj4gLSAgICBYc0xvZygiJXM6IFJlYWQgcGxhdGZvcm0gdGltZSBvZmZz
ZXQiLCBfX0ZVTkNUSU9OX18pOw0KPiAtICAgIEZyZWVTdHJpbmcocnRja2V5KTsNCj4gLQ0KPiAt
ZmFpbF9ydGNrZXk6DQo+IC0gICAgWHNMb2coIiVzOiBSZWFkIFJUQyBLZXkiLCBfX0ZVTkNUSU9O
X18pOw0KPiAtICAgIFhzRnJlZSh2bSk7DQo+IC0NCj4gLWZhaWxfcmVhZHZtOg0KPiAtICAgIFhz
TG9nKCIlczogUmVhZCBWTSBLZXkiLCBfX0ZVTkNUSU9OX18pOw0KPiAtICAgIHJldHVybiBmYWxz
ZTsNCj4gLX0NCj4gLQ0KPiAtc3RhdGljIGJvb2wgaG9zdHRpbWVJc1VUQygpDQo+IC17DQo+IC0g
ICAgSEtFWSAgICAgICAgSW5zdGFsbFJlZ0tleTsNCj4gLSAgICBib29sICAgICAgICB1dGMgPSBm
YWxzZTsNCj4gLSAgICBpZiAoUmVnT3BlbktleUV4KEhLRVlfTE9DQUxfTUFDSElORSwNCj4gLSAg
ICAgICAgICAgICAgICAgICAgIFhFTlRPT0xTX0lOU1RBTExfUkVHX0tFWSwNCj4gLSAgICAgICAg
ICAgICAgICAgICAgIDAsDQo+IC0gICAgICAgICAgICAgICAgICAgICBLRVlfQUxMX0FDQ0VTUywN
Cj4gLSAgICAgICAgICAgICAgICAgICAgICZJbnN0YWxsUmVnS2V5KSAhPSBFUlJPUl9TVUNDRVNT
KQ0KPiAtICAgICAgICBnb3RvIGZhaWxfcmVnaXN0cnlrZXk7DQo+IC0NCj4gLSNpZmRlZiBfV0lO
NjQNCj4gLQ0KPiAtICAgIGlmIChyZWdpc3RyeU1hdGNoU3RyaW5nKEluc3RhbGxSZWdLZXksICJI
b3N0VGltZSIsICJVVEMiLCBmYWxzZSkpDQo+IC0gICAgew0KPiAtICAgICAgICAgdXRjID0gdHJ1
ZTsNCj4gLSAgICAgICAgIGdvdG8gZG9uZTsNCj4gLSAgICB9DQo+IC0NCj4gLSAgICBSZWdDbG9z
ZUtleShJbnN0YWxsUmVnS2V5KTsNCj4gLSAgICBpZiAoUmVnT3BlbktleUV4KEhLRVlfTE9DQUxf
TUFDSElORSwNCj4gLSAgICAgICAgICAgICAgICAgICAgIFhFTlRPT0xTX0lOU1RBTExfUkVHX0tF
WTY0LA0KPiAtICAgICAgICAgICAgICAgICAgICAgMCwNCj4gLSAgICAgICAgICAgICAgICAgICAg
IEtFWV9BTExfQUNDRVNTLA0KPiAtICAgICAgICAgICAgICAgICAgICAgJkluc3RhbGxSZWdLZXkp
ICE9IEVSUk9SX1NVQ0NFU1MpDQo+IC0gICAgICAgIGdvdG8gZmFpbF9yZWdpc3RyeWtleTsNCj4g
LQ0KPiAtI2VuZGlmDQo+IC0NCj4gLSAgICBpZiAocmVnaXN0cnlNYXRjaFN0cmluZyhJbnN0YWxs
UmVnS2V5LCAiSG9zdFRpbWUiLCAiVVRDIiwgZmFsc2UpKQ0KPiAtICAgIHsNCj4gLSAgICAgICAg
dXRjPXRydWU7DQo+IC0gICAgfQ0KPiAtDQo+IC0jaWZkZWYgX1dJTjY0DQo+IC1kb25lOg0KPiAt
I2VuZGlmDQo+IC0gICAgUmVnQ2xvc2VLZXkoSW5zdGFsbFJlZ0tleSk7DQo+IC0gICAgcmV0dXJu
IHV0YzsNCj4gLQ0KPiAtZmFpbF9yZWdpc3RyeWtleToNCj4gLSAgICBYc0xvZygiJXM6IE9wZW4g
UmVnaXN0cnkgS2V5IiwgX19GVU5DVElPTl9fKTsNCj4gLQ0KPiAtICAgIHJldHVybiBmYWxzZTsN
Cj4gLX0NCj4gLQ0KPiAtc3RhdGljIHZvaWQNCj4gLXNldFRpbWVUb1hlblRpbWUodm9pZCkNCj4g
LXsNCj4gLSAgICBGSUxFVElNRSAgICBub3cgPSB7MH07DQo+IC0gICAgU1lTVEVNVElNRSAgc3lz
X3RpbWU7DQo+IC0gICAgU1lTVEVNVElNRSAgY3VycmVudF90aW1lOw0KPiAtICAgIGJvb2wgICAg
ICAgIHV0Yz1mYWxzZTsNCj4gLSAgICBYc0xvZygiU2V0IHRpbWUgdG8gWGVuVGltZSIpOw0KPiAt
DQo+IC0gICAgR2V0WGVuVGltZSgmbm93KTsNCj4gLSAgICBpZiAoKG5vdy5kd0xvd0RhdGVUaW1l
ID09IDApICYmIChub3cuZHdIaWdoRGF0ZVRpbWUgPT0gMCkpIHsNCj4gLSAgICAgICAgWHNMb2co
IkNhbm5vdCBzZXQgc3lzdGVtIHRpbWUgdG8geGVudGltZSwgdW5hYmxlIHRvIGNvbnRhY3QgV01J
Iik7DQo+IC0gICAgICAgIGdvdG8gZmFpbF9yZWFkdGltZTsNCj4gLSAgICB9DQo+IC0NCj4gLSAg
ICB1dGMgPSBob3N0dGltZUlzVVRDKCk7DQo+IC0NCj4gLSAgICBpZiAodXRjKSB7DQo+IC0gICAg
ICAgIFhzTG9nKCJUcnkgVVRDIik7DQo+IC0gICAgICAgIGlmICghYWRqdXN0WGVuVGltZVRvVVRD
KCZub3cpKQ0KPiAtICAgICAgICAgICAgZ290byBmYWlsX2FkanVzdHRpbWU7DQo+IC0gICAgfQ0K
PiAtDQo+IC0gICAgaWYgKCFGaWxlVGltZVRvU3lzdGVtVGltZSgmbm93LCAmc3lzX3RpbWUpKSB7
DQo+IC0gICAgICAgIFhzTG9nKCJHb3VsZCBub3QgY29udmVydCBmaWxlIHRpbWUgdG8gc3lzdGVt
IHRpbWUiKTsNCj4gLSAgICAgICAgUHJpbnRFcnJvcigiRmlsZVRpbWVUb1N5c3RlbVRpbWUoKSIp
Ow0KPiAtICAgICAgICBEQkdQUklOVCgoIkZpbGVUaW1lVG9TeXN0ZW1UaW1lKCV4LiV4KVxuIiwN
Cj4gLSAgICAgICAgICAgICAgICAgIG5vdy5kd0xvd0RhdGVUaW1lLCBub3cuZHdIaWdoRGF0ZVRp
bWUpKTsNCj4gLSAgICB9IGVsc2Ugew0KPiAtICAgICAgICBHZXRMb2NhbFRpbWUoJmN1cnJlbnRf
dGltZSk7DQo+IC0gICAgICAgIFhzTG9nKCJUaW1lIGlzIG5vdyAgJWQuJWQuJWQgJWQ6JWQ6JWQu
JWQiLA0KPiAtICAgICAgICAgICAgICBjdXJyZW50X3RpbWUud1llYXIsIGN1cnJlbnRfdGltZS53
TW9udGgsIGN1cnJlbnRfdGltZS53RGF5LA0KPiAtICAgICAgICAgICAgICBjdXJyZW50X3RpbWUu
d0hvdXIsIGN1cnJlbnRfdGltZS53TWludXRlLA0KPiBjdXJyZW50X3RpbWUud1NlY29uZCwNCj4g
LSAgICAgICAgICAgICAgY3VycmVudF90aW1lLndNaWxsaXNlY29uZHMpOw0KPiAtICAgICAgICBY
c0xvZygiU2V0IHRpbWUgdG8gJWQuJWQuJWQgJWQ6JWQ6JWQuJWQiLA0KPiAtICAgICAgICAgICAg
ICBzeXNfdGltZS53WWVhciwgc3lzX3RpbWUud01vbnRoLCBzeXNfdGltZS53RGF5LA0KPiAtICAg
ICAgICAgICAgICBzeXNfdGltZS53SG91ciwgc3lzX3RpbWUud01pbnV0ZSwgc3lzX3RpbWUud1Nl
Y29uZCwNCj4gLSAgICAgICAgICAgICAgc3lzX3RpbWUud01pbGxpc2Vjb25kcyk7DQo+IC0gICAg
ICAgIGlmICh1dGMpIHsNCj4gLSAgICAgICAgICAgIGlmICghU2V0U3lzdGVtVGltZSgmc3lzX3Rp
bWUpKQ0KPiAtICAgICAgICAgICAgICAgIFByaW50RXJyb3IoIlNldFN5c3RlbVRpbWUoKSIpOw0K
PiAtICAgICAgICB9DQo+IC0gICAgICAgIGVsc2Ugew0KPiAtICAgICAgICAgICAgaWYgKCFTZXRM
b2NhbFRpbWUoJnN5c190aW1lKSkNCj4gLSAgICAgICAgICAgICAgICBQcmludEVycm9yKCJTZXRM
b2NhbFRpbWUoKSIpOw0KPiAtICAgICAgICB9DQo+IC0gICAgfQ0KPiAtDQo+IC0gICAgcmV0dXJu
Ow0KPiAtDQo+IC1mYWlsX2FkanVzdHRpbWU6DQo+IC0gICAgWHNMb2coIiVzOiBBZGp1c3QgdGlt
ZSIsIF9fRlVOQ1RJT05fXyk7DQo+IC0NCj4gLWZhaWxfcmVhZHRpbWU6DQo+IC0gICAgWHNMb2co
IiVzOiBSZWFkVGltZSIsIF9fRlVOQ1RJT05fXyk7DQo+IC19DQo+IC0NCj4gLS8qIFdlIG5lZWQg
dG8gcmVzeW5jIHRoZSBjbG9jayB3aGVuIHdlIHJlY292ZXIgZnJvbSBzdXNwZW5kL3Jlc3VtZS4g
Ki8NCj4gLXN0YXRpYyB2b2lkDQo+IC1maW5pc2hTdXNwZW5kKHZvaWQpDQo+IC17DQo+IC0gICAg
REJHUFJJTlQoKCJDb21pbmcgYmFjayBmcm9tIHN1c3BlbmQuXG4iKSk7DQo+IC0gICAgc2V0VGlt
ZVRvWGVuVGltZSgpOw0KPiAtfQ0KPiAtDQo+IC0NCj4gLQ0KPiAtLy8NCj4gLS8vIE1haW4gbG9v
cA0KPiAtLy8NCj4gLUJPT0wgUnVuKCkNCj4gLXsNCj4gLSAgICBib29sIGV4aXQ9ZmFsc2U7DQo+
IC0gICAgUENIQVIgcFBWQWRkb25zSW5zdGFsbGVkID0gTlVMTDsNCj4gLQ0KPiAtICAgIEhBTkRM
RSBzdXNwZW5kRXZlbnQ7DQo+IC0NCj4gLSAgICBpbnQgY250ciA9IDA7DQo+IC0gICAgc3RydWN0
IHdhdGNoX2ZlYXR1cmVfc2V0IGZlYXR1cmVzOw0KPiAtICAgIEJPT0wgc25hcCA9IEZBTFNFOw0K
PiAtDQo+IC0gICAgT3V0cHV0RGVidWdTdHJpbmcoIlRyeWluZyB0byBjb25uZWN0IHRvIFdNSVxu
Iik7DQo+IC0gICAgd2hpbGUgKCFDb25uZWN0VG9XTUkoKSkgew0KPiAtICAgICAgICBPdXRwdXRE
ZWJ1Z1N0cmluZygiVW5hYmxlIHRvIGNvbm5lY3QgdG8gV01JLCBzbGVlcGluZ1xuIik7DQo+IC0g
ICAgICAgIGlmIChXYWl0Rm9yU2luZ2xlT2JqZWN0KGhTZXJ2aWNlRXhpdEV2ZW50LCAxMDAwKjEw
KSA9PQ0KPiBXQUlUX09CSkVDVF8wKSB7DQo+IC0gICAgICAgICAgICBleGl0ID0gdHJ1ZTsNCj4g
LSAgICAgICAgICAgIHJldHVybiBleGl0Ow0KPiAtICAgICAgICB9DQo+IC0gICAgfQ0KPiAtICAg
IHdoaWxlIChJbml0WFNBY2Nlc3NvcigpPT1mYWxzZSkgew0KPiAtICAgICAgICBPdXRwdXREZWJ1
Z1N0cmluZygiVW5hYmxlIHRvIGluaXRpYWxpc2UgV01JIHNlc3Npb24sIHNsZWVwaW5nXG4iKTsN
Cj4gLSAgICAgICAgaWYgKFdhaXRGb3JTaW5nbGVPYmplY3QoaFNlcnZpY2VFeGl0RXZlbnQsIDEw
MDAqMTApID09DQo+IFdBSVRfT0JKRUNUXzApIHsNCj4gLSAgICAgICAgICAgIGV4aXQgPSB0cnVl
Ow0KPiAtICAgICAgICAgICAgcmV0dXJuIGV4aXQ7DQo+IC0gICAgICAgIH0NCj4gLSAgICB9DQo+
IC0gICAgWHNMb2coIkd1ZXN0IGFnZW50IGxpdGUgbWFpbiBsb29wIHN0YXJ0aW5nIik7DQo+IC0N
Cj4gLSAgICBpZiAoZXZlbnRMb2cgPT0gTlVMTCkNCj4gLSAgICAgICAgWHNMb2coIkV2ZW50IGxv
ZyB3YXMgbm90IGluaXRpYWxpc2VkIik7DQo+IC0NCj4gLSAgICBzZXRUaW1lVG9YZW5UaW1lKCk7
DQo+IC0NCj4gLSAgICBtZW1zZXQoJmZlYXR1cmVzLCAwLCBzaXplb2YoZmVhdHVyZXMpKTsNCj4g
LQ0KPiAtICAgIEhBTkRMRSB3bWllcnJvckV2ZW50ID0gQ3JlYXRlRXZlbnQoTlVMTCwgRkFMU0Us
IEZBTFNFLCBOVUxMKTsNCj4gLSAgICBpZiAoIXdtaWVycm9yRXZlbnQpIHsNCj4gLSAgICAgICAg
UHJpbnRFcnJvcigiQ3JlYXRlRXZlbnQoKSB3bWllcnJvckV2ZW50Iik7DQo+IC0gICAgICAgIHJl
dHVybiBleGl0Ow0KPiAtICAgIH0NCj4gLQ0KPiAtDQo+IC0gICAgWHNMb2coIkFib3V0IHRvIGFk
ZCBmZWF0dXJlIHNodXRkb3duIik7DQo+IC0gICAgaWYgKCFBZGRGZWF0dXJlKCZmZWF0dXJlcywg
ImNvbnRyb2wvc2h1dGRvd24iLCAiY29udHJvbC9mZWF0dXJlLQ0KPiBzaHV0ZG93biIsDQo+IC0g
ICAgICAgICAgICAgICAgICAgICJzaHV0ZG93biIsIG1heWJlUmVib290LCBOVUxMLCB3bWllcnJv
ckV2ZW50KSkgew0KPiAtICAgICAgICByZXR1cm4gZXhpdDsNCj4gLSAgICB9DQo+IC0NCj4gLSAg
ICBzdXNwZW5kRXZlbnQgPSBDcmVhdGVFdmVudChOVUxMLCBGQUxTRSwgRkFMU0UsIE5VTEwpOw0K
PiAtICAgIGlmICghc3VzcGVuZEV2ZW50KSB7DQo+IC0gICAgICAgIFByaW50RXJyb3IoIkNyZWF0
ZUV2ZW50KCkgc3VzcGVuZEV2ZW50Iik7DQo+IC0gICAgICAgIHJldHVybiBleGl0Ow0KPiAtICAg
IH0NCj4gLQ0KPiAtICAgIGlmIChMaXN0ZW5TdXNwZW5kKHN1c3BlbmRFdmVudCwgd21pZXJyb3JF
dmVudCkgPCAwKSB7DQo+IC0gICAgICAgIFByaW50RXJyb3IoIkxpc3RlblN1c3BlbmQoKSIpOw0K
PiAtICAgICAgICBDbG9zZUhhbmRsZShzdXNwZW5kRXZlbnQpOw0KPiAtICAgICAgICBzdXNwZW5k
RXZlbnQgPSBOVUxMOw0KPiAtICAgICAgICByZXR1cm4gZXhpdDsNCj4gLSAgICB9DQo+IC0NCj4g
LQ0KPiAtICAgIFhzTG9nKCJBYm91dCB0byBhZHZlcnRpc2UgZmVhdHVyZXMiKTsNCj4gLSAgICBB
ZHZlcnRpc2VGZWF0dXJlcygmZmVhdHVyZXMpOw0KPiAtDQo+IC0gICAgWHNMb2coIkFib3V0IHRv
IGtpY2sgeGFwaSAiKTsNCj4gLSAgICBYZW5zdG9yZUtpY2tYYXBpKCk7DQo+IC0NCj4gLSAgICB3
aGlsZSAoMSkNCj4gLSAgICB7DQo+IC0gICAgICAgIERXT1JEIHN0YXR1czsNCj4gLSAgICAgICAg
aW50IG5yX2hhbmRsZXMgPSAxOw0KPiAtICAgICAgICBIQU5ETEUgaGFuZGxlc1szICsgTUFYX0ZF
QVRVUkVTXTsNCj4gLSAgICAgICAgdW5zaWduZWQgeDsNCj4gLQ0KPiAtICAgICAgICBoYW5kbGVz
WzBdID0gaFNlcnZpY2VFeGl0RXZlbnQ7DQo+IC0gICAgICAgIGlmICh3bWllcnJvckV2ZW50KQ0K
PiAtICAgICAgICAgICAgaGFuZGxlc1tucl9oYW5kbGVzKytdID0gd21pZXJyb3JFdmVudDsNCj4g
LSAgICAgICAgaWYgKHN1c3BlbmRFdmVudCkNCj4gLSAgICAgICAgICAgIGhhbmRsZXNbbnJfaGFu
ZGxlcysrXSA9IHN1c3BlbmRFdmVudDsNCj4gLSAgICAgICAgZm9yICh4ID0gMDsgeCA8IGZlYXR1
cmVzLm5yX2ZlYXR1cmVzOyB4KyspDQo+IC0gICAgICAgICAgICBoYW5kbGVzW25yX2hhbmRsZXMr
K10gPSBmZWF0dXJlcy5mZWF0dXJlc1t4XS53YXRjaC0+ZXZlbnQ7DQo+IC0NCj4gLSAgICAgICAg
WHNMb2coIndpbiBhZ2VudCBnb2luZyB0byBzbGVlcCIpOw0KPiAtICAgICAgICBzdGF0dXMgPSBX
YWl0Rm9yTXVsdGlwbGVPYmplY3RzKG5yX2hhbmRsZXMsIGhhbmRsZXMsIEZBTFNFLCBJTkZJTklU
RSk7DQo+IC0gICAgICAgIFhzTG9nKCJ3aW4gYWdlbnQgd29rZSB1cCBmb3IgJWQiLCBzdGF0dXMp
Ow0KPiAtDQo+IC0gICAgICAgIC8qIFdBSVRfT0JKRUNUXzAgaGFwcGVucyB0byBiZSAwLCBzbyB0
aGUgY29tcGlsZXIgZ2V0cyBzaGlydHkNCj4gLSAgICAgICAgICAgYWJvdXQgc3RhdHVzID49IFdB
SVRfT0JKRUNUXzAgKHNpbmNlIHN0YXR1cyBpcyB1bnNpZ25lZCkuDQo+IC0gICAgICAgICAgIFRo
aXMgaXMgbW9yZSBvYnZpb3VzbHkgY29ycmVjdCB0aGFuIHRoZSBjb21waWxlci1mcmllbmRseQ0K
PiAtICAgICAgICAgICB2ZXJzaW9uLCB0aG91Z2gsIHNvIGp1c3QgZGlzYWJsZSB0aGUgd2Fybmlu
Zy4gKi8NCj4gLQ0KPiAtI3ByYWdtYSB3YXJuaW5nIChkaXNhYmxlOiA0Mjk2KQ0KPiAtICAgICAg
ICBpZiAoc3RhdHVzID49IFdBSVRfT0JKRUNUXzAgJiYNCj4gLSAgICAgICAgICAgIHN0YXR1cyA8
IFdBSVRfT0JKRUNUXzAgKyBucl9oYW5kbGVzKQ0KPiAtI3ByYWdtYSB3YXJuaW5nIChkZWZhdWx0
OiA0Mjk2KQ0KPiAtICAgICAgICB7DQo+IC0gICAgICAgICAgICBIQU5ETEUgZXZlbnQgPSBoYW5k
bGVzW3N0YXR1cyAtIFdBSVRfT0JKRUNUXzBdOw0KPiAtICAgICAgICAgICAgaWYgKGV2ZW50ID09
IGhTZXJ2aWNlRXhpdEV2ZW50KQ0KPiAtICAgICAgICAgICAgew0KPiAtICAgICAgICAgICAgICAg
IFhzTG9nKCJzZXJ2aWNlIGV4aXQgZXZlbnQiKTsNCj4gLSAgICAgICAgICAgICAgICBleGl0ID0g
dHJ1ZTsNCj4gLSAgICAgICAgICAgICAgICBicmVhazsNCj4gLSAgICAgICAgICAgIH0NCj4gLSAg
ICAgICAgICAgIGVsc2UgaWYgKGV2ZW50ID09IHN1c3BlbmRFdmVudCkNCj4gLSAgICAgICAgICAg
IHsNCj4gLSAgICAgICAgICAgICAgICBpZiAoIVJlcG9ydEV2ZW50KGV2ZW50TG9nLCBFVkVOVExP
R19TVUNDRVNTLCAwLA0KPiBFVkVOVF9YRU5VU0VSX1VOU1VTUEVOREVELCBOVUxMLCAwLCAwLA0K
PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpKSB7DQo+IC0gICAgICAg
ICAgICAgICAgICAgIFhzTG9nKCJDYW5ub3Qgc2VuZCB0byBldmVudCBsb2cgJXgiLEdldExhc3RF
cnJvcigpKTsNCj4gLSAgICAgICAgICAgICAgICB9DQo+IC0gICAgICAgICAgICAgICAgWHNMb2co
IlN1c3BlbmQgZXZlbnQiKTsNCj4gLSAgICAgICAgICAgICAgICBmaW5pc2hTdXNwZW5kKCk7DQo+
IC0gICAgICAgICAgICAgICAgQWR2ZXJ0aXNlRmVhdHVyZXMoJmZlYXR1cmVzKTsNCj4gLSAgICAg
ICAgICAgICAgICBYZW5zdG9yZUtpY2tYYXBpKCk7DQo+IC0gICAgICAgICAgICAgICAgWHNMb2co
IkhhbmRsZWQgc3VzcGVuZCBldmVudCIpOw0KPiAtICAgICAgICAgICAgfQ0KPiAtICAgICAgICAg
ICAgZWxzZSBpZiAoZXZlbnQgPT0gd21pZXJyb3JFdmVudCkNCj4gLSAgICAgICAgICAgIHsNCj4g
LSAgICAgICAgICAgICAgICBSZXBvcnRFdmVudChldmVudExvZywgRVZFTlRMT0dfU1VDQ0VTUywg
MCwNCj4gRVZFTlRfWEVOVVNFUl9XTUksIE5VTEwsIDAsIDAsDQo+IC0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTlVMTCwgTlVMTCk7DQo+IC0gICAgICAgICAgICAgICAgYnJlYWs7DQo+IC0g
ICAgICAgICAgICB9DQo+IC0gICAgICAgICAgICBlbHNlDQo+IC0gICAgICAgICAgICB7DQo+IC0g
ICAgICAgICAgICAgICAgQk9PTCBmYWlsID0gZmFsc2U7DQo+IC0gICAgICAgICAgICAgICAgZm9y
ICh4ID0gMDsgeCA8IGZlYXR1cmVzLm5yX2ZlYXR1cmVzOyB4KyspIHsNCj4gLSAgICAgICAgICAg
ICAgICAgICAgaWYgKGZlYXR1cmVzLmZlYXR1cmVzW3hdLndhdGNoLT5ldmVudCA9PSBldmVudCkg
ew0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgWHNMb2coIkZpcmUgJXAiLGZlYXR1cmVzLmZl
YXR1cmVzW3hdLm5hbWUpOw0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgWHNMb2coImZpcmUg
ZmVhdHVyZSAlcyIsIGZlYXR1cmVzLmZlYXR1cmVzW3hdLm5hbWUpOw0KPiAtICAgICAgICAgICAg
ICAgICAgICAgICAgT3V0cHV0RGVidWdTdHJpbmcoIkV2ZW50IHRyaWdnZXJlZFxuIik7DQo+IC0g
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoIShmZWF0dXJlcy5mZWF0dXJlc1t4XS5oYW5kbGVy
KGZlYXR1cmVzLmZlYXR1cmVzW3hdLmN0eCkpKQ0KPiAtICAgICAgICAgICAgICAgICAgICAgICAg
ew0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhzTG9nKCJGaXJpbmcgZmVhdHVyZSBm
YWlsZWQiKTsNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmludEVycm9yKCJGZWF0
dXJlIGZhaWxlZCIpOw0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwgPSB0cnVl
Ow0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgfQ0KPiAtICAgICAgICAgICAgICAgICAgICAg
ICAgWHNMb2coImZpcmVkIGZlYXR1cmUgJXMiLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmZWF0dXJlcy5mZWF0dXJlc1t4XS5uYW1lKTsNCj4gLSAgICAgICAgICAgICAgICAg
ICAgfQ0KPiAtICAgICAgICAgICAgICAgIH0NCj4gLSAgICAgICAgICAgICAgICBpZiAoZmFpbCkg
ew0KPiAtICAgICAgICAgICAgICAgICAgICBYc0xvZygiUmVzZXR0aW5nIik7DQo+IC0gICAgICAg
ICAgICAgICAgICAgIFJlcG9ydEV2ZW50KGV2ZW50TG9nLCBFVkVOVExPR19TVUNDRVNTLCAwLA0K
PiBFVkVOVF9YRU5VU0VSX1VORVhQRUNURUQsIE5VTEwsIDAsIDAsDQo+IC0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpOw0KPiAtICAgICAgICAgICAgICAgICAgICBi
cmVhazsNCj4gLSAgICAgICAgICAgICAgICB9DQo+IC0gICAgICAgICAgICB9DQo+IC0gICAgICAg
IH0NCj4gLSAgICAgICAgZWxzZQ0KPiAtICAgICAgICB7DQo+IC0gICAgICAgICAgICBQcmludEVy
cm9yKCJXYWl0Rm9yTXVsdGlwbGVPYmplY3RzKCkiKTsNCj4gLSAgICAgICAgICAgIGJyZWFrOw0K
PiAtICAgICAgICB9DQo+IC0gICAgfQ0KPiAtICAgIE91dHB1dERlYnVnU3RyaW5nKCJXTUkgV2F0
Y2ggbG9vcCB0ZXJtaW5hdGVkXG4iKTsNCj4gLSAgICBSZW1vdmVGZWF0dXJlcygmZmVhdHVyZXMp
Ow0KPiAtICAgIFhlbnN0b3JlS2lja1hhcGkoKTsNCj4gLQ0KPiAtICAgIFhzTG9nKCJHdWVzdCBh
Z2VudCBsaXRlIGxvb3AgZmluaXNoaW5nIik7DQo+IC0gICAgUmVsZWFzZVdNSUFjY2Vzc29yKCZ3
bWkpOw0KPiAtDQo+IC0NCj4gLQ0KPiAtDQo+IC0gICAgWHNMb2coIkd1ZXN0IGFnZW50IGxpdGUg
bG9vcCBmaW5pc2hlZCAlZCIsIGV4aXQpOw0KPiAtICAgIHJldHVybiBleGl0Ow0KPiAtfQ0KPiAt
DQo+IC0NCj4gLS8vIFNlcnZpY2UgaW5pdGlhbGl6YXRpb24NCj4gLWJvb2wgU2VydmljZUluaXQo
KQ0KPiAtew0KPiAtICAgIFNlcnZpY2VTdGF0dXMuZHdTZXJ2aWNlVHlwZSAgICAgICAgPSBTRVJW
SUNFX1dJTjMyOw0KPiAtICAgIFNlcnZpY2VTdGF0dXMuZHdDdXJyZW50U3RhdGUgICAgICAgPSBT
RVJWSUNFX1NUQVJUX1BFTkRJTkc7DQo+IC0gICAgU2VydmljZVN0YXR1cy5kd0NvbnRyb2xzQWNj
ZXB0ZWQgICA9DQo+IC0gICAgICAgIFNFUlZJQ0VfQUNDRVBUX1NUT1AgfCBTRVJWSUNFX0FDQ0VQ
VF9TSFVURE9XTiB8DQo+IC0gICAgICAgIFNFUlZJQ0VfQUNDRVBUX1NFU1NJT05DSEFOR0U7DQo+
IC0gICAgU2VydmljZVN0YXR1cy5kd1dpbjMyRXhpdENvZGUgICAgICA9IDA7DQo+IC0gICAgU2Vy
dmljZVN0YXR1cy5kd1NlcnZpY2VTcGVjaWZpY0V4aXRDb2RlID0gMDsNCj4gLSAgICBTZXJ2aWNl
U3RhdHVzLmR3Q2hlY2tQb2ludCAgICAgICAgID0gMDsNCj4gLSAgICBTZXJ2aWNlU3RhdHVzLmR3
V2FpdEhpbnQgICAgICAgICAgID0gMDsNCj4gLQ0KPiAtICAgIGhTdGF0dXMgPSBSZWdpc3RlclNl
cnZpY2VDdHJsSGFuZGxlckV4KA0KPiAtICAgICAgICAiWGVuU2VydmljZSIsDQo+IC0gICAgICAg
IFNlcnZpY2VDb250cm9sSGFuZGxlciwNCj4gLSAgICAgICAgTlVMTCk7DQo+IC0gICAgaWYgKGhT
dGF0dXMgPT0gKFNFUlZJQ0VfU1RBVFVTX0hBTkRMRSkwKQ0KPiAtICAgIHsNCj4gLSAgICAgICAg
Ly8gUmVnaXN0ZXJpbmcgQ29udHJvbCBIYW5kbGVyIGZhaWxlZA0KPiAtICAgICAgICBEQkdQUklO
VCgoIlhlblN2YzogUmVnaXN0ZXJpbmcgc2VydmljZSBjb250cm9sIGhhbmRsZXIgZmFpbGVkIC0g
JWRcbiIsDQo+IEdldExhc3RFcnJvcigpKSk7DQo+IC0gICAgICAgIHJldHVybiBmYWxzZTsNCj4g
LSAgICB9DQo+IC0NCj4gLSAgICBTZXJ2aWNlU3RhdHVzLmR3Q3VycmVudFN0YXRlID0gU0VSVklD
RV9SVU5OSU5HOw0KPiAtICAgIFNldFNlcnZpY2VTdGF0dXMgKGhTdGF0dXMsICZTZXJ2aWNlU3Rh
dHVzKTsNCj4gLQ0KPiAtICAgIHJldHVybiB0cnVlOw0KPiAtfQ0KPiAtDQo+IC12b2lkIFdJTkFQ
SSBTZXJ2aWNlTWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpDQo+IC17DQo+IC0gICAgLy8gUGVy
Zm9ybSBjb21tb24gaW5pdGlhbGl6YXRpb24NCj4gLSAgICBldmVudExvZyA9IFJlZ2lzdGVyRXZl
bnRTb3VyY2UoTlVMTCwgInhlbnN2YyIpOw0KPiAtICAgIGhTZXJ2aWNlRXhpdEV2ZW50ID0gQ3Jl
YXRlRXZlbnQoTlVMTCwgZmFsc2UsIGZhbHNlLCBOVUxMKTsNCj4gLSAgICBpZiAoaFNlcnZpY2VF
eGl0RXZlbnQgPT0gTlVMTCkNCj4gLSAgICB7DQo+IC0gICAgICAgIERCR1BSSU5UKCgiWGVuU3Zj
OiBVbmFibGUgdG8gY3JlYXRlIHRoZSBldmVudCBvYmogLSAlZFxuIiwNCj4gR2V0TGFzdEVycm9y
KCkpKTsNCj4gLSAgICAgICAgcmV0dXJuOw0KPiAtICAgIH0NCj4gLQ0KPiAtICAgIGlmICghU2Vy
dmljZUluaXQoKSkNCj4gLSAgICB7DQo+IC0gICAgICAgIERCR1BSSU5UKCgiWGVuU3ZjOiBVbmFi
bGUgdG8gaW5pdCB4ZW5zZXJ2aWNlXG4iKSk7DQo+IC0gICAgICAgIHJldHVybjsNCj4gLSAgICB9
DQo+IC0gICAgQk9PTCBzdG9wcGluZzsNCj4gLQ0KPiAtICAgIGRvIHsNCj4gLQ0KPiAtICAgICAg
ICBfX3RyeQ0KPiAtICAgICAgICB7DQo+IC0gICAgICAgICAgICBzdG9wcGluZyA9IFJ1bigpOw0K
PiAtDQo+IC0gICAgICAgIH0NCj4gLSAgICAgICAgX19leGNlcHQoRVhDRVBUSU9OX0VYRUNVVEVf
SEFORExFUikNCj4gLSAgICAgICAgew0KPiAtICAgICAgICAgICAgX190cnkgew0KPiAtICAgICAg
ICAgICAgICAgIFhzTG9nKCJFeGNlcHRpb24gaGl0ICV4IiwgR2V0RXhjZXB0aW9uQ29kZSgpKTsN
Cj4gLSAgICAgICAgICAgIH0NCj4gLSAgICAgICAgICAgIF9fZXhjZXB0KEVYQ0VQVElPTl9FWEVD
VVRFX0hBTkRMRVIpDQo+IC0gICAgICAgICAgICB7DQo+IC0gICAgICAgICAgICB9DQo+IC0gICAg
ICAgICAgICBzdG9wcGluZyA9IGZhbHNlOw0KPiAtICAgICAgICB9DQo+IC0gICAgfSB3aGlsZSAo
IXN0b3BwaW5nKTsNCj4gLQ0KPiAtICAgIFhzTG9nKCJHdWVzdCBhZ2VudCBzZXJ2aWNlIHN0b3Bw
ZWQiKTsNCj4gLSAgICBTaHV0ZG93blhTQWNjZXNzb3IoKTsNCj4gLSAgICBEZXJlZ2lzdGVyRXZl
bnRTb3VyY2UoZXZlbnRMb2cpOw0KPiAtICAgIFNlcnZpY2VDb250cm9sTWFuYWdlclVwZGF0ZSgw
LCBTRVJWSUNFX1NUT1BQRUQpOw0KPiAtICAgIHJldHVybjsNCj4gLX0NCj4gLQ0KPiAtdm9pZCBT
ZXJ2aWNlQ29udHJvbE1hbmFnZXJVcGRhdGUoRFdPUkQgZHdFeGl0Q29kZSwgRFdPUkQgZHdTdGF0
ZSkNCj4gLXsNCj4gLSAgICBTZXJ2aWNlU3RhdHVzLmR3V2luMzJFeGl0Q29kZSA9IGR3RXhpdENv
ZGU7DQo+IC0gICAgU2VydmljZVN0YXR1cy5kd0N1cnJlbnRTdGF0ZSAgPSBkd1N0YXRlOw0KPiAt
ICAgIFNldFNlcnZpY2VTdGF0dXMgKGhTdGF0dXMsICZTZXJ2aWNlU3RhdHVzKTsNCj4gLX0NCj4g
LQ0KPiAtLy8gU2VydmljZSBjb250cm9sIGhhbmRsZXIgZnVuY3Rpb24NCj4gLXN0YXRpYyBEV09S
RCBXSU5BUEkgU2VydmljZUNvbnRyb2xIYW5kbGVyKERXT1JEIHJlcXVlc3QsIERXT1JEDQo+IGV2
dFR5cGUsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMUFZP
SUQgZXZlbnREYXRhLCBMUFZPSUQgY3R4dCkNCj4gLXsNCj4gLSAgICBVTlJFRkVSRU5DRURfUEFS
QU1FVEVSKGN0eHQpOw0KPiAtICAgIFVOUkVGRVJFTkNFRF9QQVJBTUVURVIoZXZlbnREYXRhKTsN
Cj4gLQ0KPiAtICAgIHN3aXRjaChyZXF1ZXN0KQ0KPiAtICAgIHsNCj4gLSAgICAgICAgY2FzZSBT
RVJWSUNFX0NPTlRST0xfU1RPUDoNCj4gLSAgICAgICAgICAgIERCR1BSSU5UKCgiWGVuU3ZjOiB4
ZW5zZXJ2aWNlIHN0b3BwZWQuXG4iKSk7DQo+IC0gICAgICAgICAgICBTZXJ2aWNlQ29udHJvbE1h
bmFnZXJVcGRhdGUoMCwgU0VSVklDRV9TVE9QX1BFTkRJTkcpOw0KPiAtICAgICAgICAgICAgU2V0
RXZlbnQoaFNlcnZpY2VFeGl0RXZlbnQpOw0KPiAtICAgICAgICAgICAgcmV0dXJuIE5PX0VSUk9S
Ow0KPiAtDQo+IC0gICAgICAgIGNhc2UgU0VSVklDRV9DT05UUk9MX1NIVVRET1dOOg0KPiAtICAg
ICAgICAgICAgREJHUFJJTlQoKCJYZW5TdmM6IHhlbnNlcnZpY2Ugc2h1dGRvd24uXG4iKSk7DQo+
IC0gICAgICAgICAgICBTZXJ2aWNlQ29udHJvbE1hbmFnZXJVcGRhdGUoMCwgU0VSVklDRV9TVE9Q
X1BFTkRJTkcpOw0KPiAtICAgICAgICAgICAgU2V0RXZlbnQoaFNlcnZpY2VFeGl0RXZlbnQpOw0K
PiAtICAgICAgICAgICAgcmV0dXJuIE5PX0VSUk9SOw0KPiAtDQo+IC0gICAgICAgIGRlZmF1bHQ6
DQo+IC0gICAgICAgIERCR1BSSU5UKCgiWGVuU3ZjOiB1bmtub3duIHJlcXVlc3QuIikpOw0KPiAt
ICAgICAgICAgICAgYnJlYWs7DQo+IC0gICAgfQ0KPiAtDQo+IC0gICAgU2VydmljZUNvbnRyb2xN
YW5hZ2VyVXBkYXRlKDAsIFNFUlZJQ0VfUlVOTklORyk7DQo+IC0gICAgcmV0dXJuIEVSUk9SX0NB
TExfTk9UX0lNUExFTUVOVEVEOw0KPiAtfQ0KPiBkaWZmIC0tZ2l0IGEvc3JjL3dpbjMyc3R1YmFn
ZW50L1hTZXJ2aWNlLmggYi9zcmMvd2luMzJzdHViYWdlbnQvWFNlcnZpY2UuaA0KPiBkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMzJlZTE2My4uMDAwMDAwMA0KPiAtLS0gYS9zcmMv
d2luMzJzdHViYWdlbnQvWFNlcnZpY2UuaA0KPiArKysgL2Rldi9udWxsDQo+IEBAIC0xLDU0ICsw
LDAgQEANCj4gLS8qIENvcHlyaWdodCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLg0KPiAtICogQWxs
IHJpZ2h0cyByZXNlcnZlZC4NCj4gLSAqDQo+IC0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLA0KPiAtICogd2l0aCBvciB3aXRob3V0IG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZA0KPiAtICogdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlIG1ldDoNCj4gLSAqDQo+IC0gKiAqICAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQ0KPiAtICogICAgIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUNCj4gLSAqICAgICBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4NCj4gLSAqICogICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlDQo+IC0gKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZQ0KPiAtICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlcg0KPiAtICogICAgIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uDQo+IC0gKg0KPiAtICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EDQo+IC0gKiBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLA0KPiAt
ICogSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YNCj4gLSAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFDQo+IC0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUIEhPTERFUiBPUg0KPiAtICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsDQo+IC0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLA0KPiAtICogQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SDQo+IC0gKiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTDQo+IC0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwNCj4gLSAq
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
Rw0KPiAtICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQ0KPiAtICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRg0KPiAtICogU1VDSCBEQU1BR0UuDQo+IC0gKi8NCj4gLQ0KPiAtI2lm
bmRlZiBfWFNFUlZJQ0VfSA0KPiAtI2RlZmluZSBfWFNFUlZJQ0VfSA0KPiAtDQo+IC0jaW5jbHVk
ZSA8dmVyc2lvbi5oPg0KPiAtDQo+IC0jZGVmaW5lIFNWQ19OQU1FICJ4ZW5zdmMiDQo+IC0jZGVm
aW5lIFNWQ19ESVNQTEFZTkFNRSBQUk9EVUNUX05BTUVfU1RSICMjICJJbnRlcmZhY2UgU2Vydmlj
ZSINCj4gLSNkZWZpbmUgU1ZDX0RFU0MgIk1vbml0b3JzIGFuZCBwcm92aWRlcyB2YXJpb3VzIG1l
dHJpY3MgdG8gWGVuU3RvcmUiDQo+IC0NCj4gLXZvaWQgUHJpbnRFcnJvcihjb25zdCBjaGFyICpm
dW5jKTsNCj4gLXZvaWQgUHJpbnRFcnJvcihjb25zdCBjaGFyICpmdW5jLCBEV09SRCBlcnIpOw0K
PiAtdm9pZCBTdGFydENsaXBib2FyZFN5bmModm9pZCk7DQo+IC12b2lkIEZpbmlzaENsaXBib2Fy
ZFN5bmModm9pZCk7DQo+IC12b2lkIENsaXBib2FyZENvbnNvbGVDaGFuZ2VkKHZvaWQpOw0KPiAt
DQo+IC12b2lkIFhzRHVtcExvZ1RoaXNUaHJlYWQodm9pZCk7DQo+IC12b2lkIFhzSW5pdFBlclRo
cmVhZExvZ2dpbmcodm9pZCk7DQo+IC12b2lkIFhzTG9nTXNnKGNvbnN0IGNoYXIgKmZtdCwgLi4u
KTsNCj4gLXZvaWQgRG9Wb2x1bWVEdW1wKHZvaWQpOw0KPiAtDQo+IC12b2lkIEFjcXVpcmVTeXN0
ZW1Qcml2aWxlZ2UoTFBDVFNUUiBuYW1lKTsNCj4gLQ0KPiAtI2VuZGlmDQo+IGRpZmYgLS1naXQg
YS9zcmMvd2luMzJzdHViYWdlbnQvZXJyb3JzLmNwcCBiL3NyYy93aW4zMnN0dWJhZ2VudC9lcnJv
cnMuY3BwDQo+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCBjYWY0N2NjLi4wMDAw
MDAwDQo+IC0tLSBhL3NyYy93aW4zMnN0dWJhZ2VudC9lcnJvcnMuY3BwDQo+ICsrKyAvZGV2L251
bGwNCj4gQEAgLTEsMTAyICswLDAgQEANCj4gLS8qIENvcHlyaWdodCAoYykgQ2l0cml4IFN5c3Rl
bXMgSW5jLg0KPiAtICogQWxsIHJpZ2h0cyByZXNlcnZlZC4NCj4gLSAqDQo+IC0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLA0KPiAtICogd2l0aCBv
ciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZA0KPiAtICogdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoNCj4gLSAqDQo+IC0gKiAqICAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQ0KPiAtICog
ICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUNCj4g
LSAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCj4gLSAqICogICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlDQo+IC0gKiAgICAgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZQ0KPiAtICogICAgIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlcg0KPiAt
ICogICAgIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uDQo+IC0gKg0K
PiAtICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EDQo+IC0gKiBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLA0KPiAtICogSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YNCj4gLSAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFDQo+IC0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUg0KPiAtICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsDQo+IC0gKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLA0KPiAtICog
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SDQo+
IC0gKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
DQo+IC0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwNCj4gLSAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORw0KPiAtICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQ0KPiAtICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRg0KPiAtICogU1VDSCBEQU1BR0UuDQo+
IC0gKi8NCj4gLQ0KPiAtLyogQmxhY2stYm94IGRhdGEgcmVjb3JkZXIuICBUaGlzIHJlY29yZHMg
c3R1ZmYgd2hpY2ggaXMgaGFwcGVuaW5nDQo+IC0gICB3aGlsZSB0aGUgYWdlbnQgcnVucywgYW5k
IHRyaWVzIHRvIHB1c2ggaXQgb3V0IHRvIGRvbTAgc3lzbG9nIGlmIHdlDQo+IC0gICBjcmFzaC4g
Ki8NCj4gLSNpbmNsdWRlICJzdGRhZnguaCINCj4gLSNpbmNsdWRlIDx3aW5kb3dzLmg+DQo+IC0j
aW5jbHVkZSA8c3RkYXJnLmg+DQo+IC0jaW5jbHVkZSA8c3RkaW8uaD4NCj4gLSNpbmNsdWRlIDxz
dGRsaWIuaD4NCj4gLSNpbmNsdWRlICJYU2VydmljZS5oIg0KPiAtI2luY2x1ZGUgIlhTQWNjZXNz
b3IuaCINCj4gLQ0KPiAtDQo+IC0jZGVmaW5lIFJJTkdfU0laRSA4MTkyDQo+IC0NCj4gLXN0cnVj
dCBtZXNzYWdlX3Jpbmcgew0KPiAtICAgIEhBTkRMRSBoYW5kbGU7DQo+IC0gICAgdW5zaWduZWQg
cHJvZF9pZHg7DQo+IC0gICAgdW5zaWduZWQgY29uc19pZHg7DQo+IC0gICAgdW5zaWduZWQgY2hh
ciBwYXlsb2FkW1JJTkdfU0laRV07DQo+IC19Ow0KPiAtDQo+IC1zdGF0aWMgX19kZWNsc3BlYyh0
aHJlYWQpIHN0cnVjdCBtZXNzYWdlX3JpbmcgbWVzc2FnZV9yaW5nOw0KPiAtDQo+IC1zdGF0aWMg
Y2hhciAqDQo+IC1Yc3Zhc3ByaW50Zihjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXJncykNCj4g
LXsNCj4gLSAgICBjaGFyICp3b3JrOw0KPiAtICAgIGludCB3b3JrX3NpemU7DQo+IC0gICAgaW50
IHI7DQo+IC0NCj4gLSAgICB3b3JrX3NpemUgPSAzMjsNCj4gLSAgICB3aGlsZSAoMSkgew0KPiAt
ICAgICAgICB3b3JrID0gKGNoYXIgKiltYWxsb2Mod29ya19zaXplKTsNCj4gLSAgICAgICAgaWYg
KCF3b3JrKQ0KPiAtICAgICAgICAgICAgcmV0dXJuIHdvcms7DQo+IC0gICAgICAgIHIgPSBfdnNu
cHJpbnRmKHdvcmssIHdvcmtfc2l6ZSwgZm10LCBhcmdzKTsNCj4gLSAgICAgICAgaWYgKHIgPT0g
MCkgew0KPiAtICAgICAgICAgICAgZnJlZSh3b3JrKTsNCj4gLSAgICAgICAgICAgIHJldHVybiBO
VUxMOw0KPiAtICAgICAgICB9DQo+IC0gICAgICAgIGlmIChyICE9IC0xICYmIHIgPCB3b3JrX3Np
emUpIHsNCj4gLSAgICAgICAgICAgIHJldHVybiB3b3JrOw0KPiAtICAgICAgICB9DQo+IC0gICAg
ICAgIGZyZWUod29yayk7DQo+IC0gICAgICAgIHdvcmtfc2l6ZSAqPSAyOw0KPiAtICAgIH0NCj4g
LX0NCj4gLQ0KPiAtc3RhdGljIGNoYXIgKg0KPiAtWHNhc3ByaW50Zihjb25zdCBjaGFyICpmbXQs
IC4uLikNCj4gLXsNCj4gLSAgICB2YV9saXN0IGFyZ3M7DQo+IC0gICAgY2hhciAqcmVzOw0KPiAt
DQo+IC0gICAgdmFfc3RhcnQoYXJncywgZm10KTsNCj4gLSAgICByZXMgPSBYc3Zhc3ByaW50Zihm
bXQsIGFyZ3MpOw0KPiAtICAgIHZhX2VuZChhcmdzKTsNCj4gLSAgICByZXR1cm4gcmVzOw0KPiAt
fQ0KPiAtDQo+IC12b2lkDQo+IC1Yc0xvZ01zZyhjb25zdCBjaGFyICpmbXQsIC4uLikNCj4gLXsN
Cj4gLSAgICB2YV9saXN0IGFyZ3M7DQo+IC0NCj4gLSAgICB2YV9zdGFydChhcmdzLCBmbXQpOw0K
PiAtICAgIFhzTG9nKGZtdCwgYXJncyk7DQo+IC0gICAgdmFfZW5kKGFyZ3MpOw0KPiAtfQ0KPiAt
DQo+IC0NCj4gZGlmZiAtLWdpdCBhL3NyYy93aW4zMnN0dWJhZ2VudC9tZXNzYWdlcy5tYw0KPiBi
L3NyYy93aW4zMnN0dWJhZ2VudC9tZXNzYWdlcy5tYw0KPiBkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQNCj4gaW5kZXggMDI4OWM0NC4uMDAwMDAwMA0KPiAtLS0gYS9zcmMvd2luMzJzdHViYWdlbnQv
bWVzc2FnZXMubWMNCj4gKysrIC9kZXYvbnVsbA0KPiBAQCAtMSw2NiArMCwwIEBADQo+IC1TZXZl
cml0eU5hbWVzPShJbmZvcm1hdGlvbmFsPTB4MSkNCj4gLUZhY2lsaXR5TmFtZXM9KFhlblVzZXI9
MHhkNjApDQo+IC0NCj4gLU1lc3NhZ2VJZD0weDAwMDENCj4gLUZhY2lsaXR5PVhlblVzZXINCj4g
LVNldmVyaXR5PUluZm9ybWF0aW9uYWwNCj4gLVN5bWJvbGljTmFtZT1FVkVOVF9YRU5VU0VSX1BP
V0VST0ZGDQo+IC1MYW5ndWFnZT1FbmdsaXNoDQo+IC1UaGUgdG9vbHMgcmVxdWVzdGVkIHRoYXQg
dGhlIGxvY2FsIFZNIHNodXQgaXRzZWxmIGRvd24uDQo+IC0uDQo+IC0NCj4gLU1lc3NhZ2VJZD0w
eDAwMDINCj4gLUZhY2lsaXR5PVhlblVzZXINCj4gLVNldmVyaXR5PUluZm9ybWF0aW9uYWwNCj4g
LVN5bWJvbGljTmFtZT1FVkVOVF9YRU5VU0VSX1JFQk9PVA0KPiAtTGFuZ3VhZ2U9RW5nbGlzaA0K
PiAtVGhlIHRvb2xzIHJlcXVlc3RlZCB0aGF0IHRoZSBsb2NhbCBWTSByZWJvb3QuDQo+IC0uDQo+
IC0NCj4gLU1lc3NhZ2VJZD0weDAwMDMNCj4gLUZhY2lsaXR5PVhlblVzZXINCj4gLVNldmVyaXR5
PUluZm9ybWF0aW9uYWwNCj4gLVN5bWJvbGljTmFtZT1FVkVOVF9YRU5VU0VSX0hJQkVSTkFURQ0K
PiAtTGFuZ3VhZ2U9RW5nbGlzaA0KPiAtVGhlIHRvb2xzIHJlcXVlc3RlZCB0aGF0IHRoZSBsb2Nh
bCBWTSBoaWJlcm5hdGUgaXRzZWxmLg0KPiAtLg0KPiAtDQo+IC1NZXNzYWdlSWQ9MHgwMDA0DQo+
IC1GYWNpbGl0eT1YZW5Vc2VyDQo+IC1TZXZlcml0eT1JbmZvcm1hdGlvbmFsDQo+IC1TeW1ib2xp
Y05hbWU9RVZFTlRfWEVOVVNFUl9TMw0KPiAtTGFuZ3VhZ2U9RW5nbGlzaA0KPiAtVGhlIHRvb2xz
IHJlcXVlc3RlZCB0aGF0IHRoZSBsb2NhbCBWTSBlbnRlciBwb3dlciBzdGF0ZSBTMy4NCj4gLS4N
Cj4gLQ0KPiAtTWVzc2FnZUlkPTB4MDAwNQ0KPiAtRmFjaWxpdHk9WGVuVXNlcg0KPiAtU2V2ZXJp
dHk9SW5mb3JtYXRpb25hbA0KPiAtU3ltYm9saWNOYW1lPUVWRU5UX1hFTlVTRVJfV01JDQo+IC1M
YW5ndWFnZT1FbmdsaXNoDQo+IC1UaGUgdG9vbHMgbm90aWNlZCB0aGF0IFdNSSBiZWNhbWUgbm9u
LWZ1bmN0aW9uYWwuDQo+IC0uDQo+IC0NCj4gLU1lc3NhZ2VJZD0weDAwMDYNCj4gLUZhY2lsaXR5
PVhlblVzZXINCj4gLVNldmVyaXR5PUluZm9ybWF0aW9uYWwNCj4gLVN5bWJvbGljTmFtZT1FVkVO
VF9YRU5VU0VSX1NUQVJURUQNCj4gLUxhbmd1YWdlPUVuZ2xpc2gNCj4gLVRoZSB0b29scyBpbml0
aWF0ZWQuDQo+IC0uDQo+IC0NCj4gLU1lc3NhZ2VJZD0weDAwMDcNCj4gLUZhY2lsaXR5PVhlblVz
ZXINCj4gLVNldmVyaXR5PUluZm9ybWF0aW9uYWwNCj4gLVN5bWJvbGljTmFtZT1FVkVOVF9YRU5V
U0VSX1VOU1VTUEVOREVEDQo+IC1MYW5ndWFnZT1FbmdsaXNoDQo+IC1UaGUgdG9vbHMgcmV0dXJu
ZWQgZnJvbSBzdXNwZW5kLg0KPiAtLg0KPiAtDQo+IC1NZXNzYWdlSWQ9MHgwMDA4DQo+IC1GYWNp
bGl0eT1YZW5Vc2VyDQo+IC1TZXZlcml0eT1JbmZvcm1hdGlvbmFsDQo+IC1TeW1ib2xpY05hbWU9
RVZFTlRfWEVOVVNFUl9VTkVYUEVDVEVEDQo+IC1MYW5ndWFnZT1FbmdsaXNoDQo+IC1UaGUgdG9v
bHMgZXhwZXJpZW5jZWQgYW4gdW5leHBlY3RlZCBlcnJvci4NCj4gLS4NCj4gZGlmZiAtLWdpdCBh
L3NyYy93aW4zMnN0dWJhZ2VudC9zdGRhZnguY3BwIGIvc3JjL3dpbjMyc3R1YmFnZW50L3N0ZGFm
eC5jcHANCj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDcyY2VkNzkuLjAwMDAw
MDANCj4gLS0tIGEvc3JjL3dpbjMyc3R1YmFnZW50L3N0ZGFmeC5jcHANCj4gKysrIC9kZXYvbnVs
bA0KPiBAQCAtMSwzOSArMCwwIEBADQo+IC0vKiBDb3B5cmlnaHQgKGMpIENpdHJpeCBTeXN0ZW1z
IEluYy4NCj4gLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+IC0gKg0KPiAtICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcywNCj4gLSAqIHdpdGggb3Ig
d2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQNCj4gLSAqIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6DQo+IC0gKg0KPiAtICogKiAgIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUNCj4gLSAqICAg
ICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlDQo+IC0g
KiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIuDQo+IC0gKiAqICAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQ0KPiAtICogICAgIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUNCj4gLSAqICAgICBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXINCj4gLSAq
ICAgICBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KPiAtICoNCj4g
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RA0KPiAtICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywNCj4gLSAqIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GDQo+IC0gKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQ0KPiAtICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1INCj4gLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLA0KPiAtICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywNCj4gLSAqIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUg0KPiAt
ICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUw0K
PiAtICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksDQo+IC0gKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcNCj4gLSAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UNCj4gLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YNCj4gLSAqIFNVQ0ggREFNQUdFLg0KPiAt
ICovDQo+IC0NCj4gLS8vIHN0ZGFmeC5jcHAgOiBzb3VyY2UgZmlsZSB0aGF0IGluY2x1ZGVzIGp1
c3QgdGhlIHN0YW5kYXJkIGluY2x1ZGVzDQo+IC0vLyBYZW5TZXJ2aWNlLnBjaCB3aWxsIGJlIHRo
ZSBwcmUtY29tcGlsZWQgaGVhZGVyDQo+IC0vLyBzdGRhZngub2JqIHdpbGwgY29udGFpbiB0aGUg
cHJlLWNvbXBpbGVkIHR5cGUgaW5mb3JtYXRpb24NCj4gLQ0KPiAtI2luY2x1ZGUgInN0ZGFmeC5o
Ig0KPiAtDQo+IC0vLyBUT0RPOiByZWZlcmVuY2UgYW55IGFkZGl0aW9uYWwgaGVhZGVycyB5b3Ug
bmVlZCBpbiBTVERBRlguSA0KPiAtLy8gYW5kIG5vdCBpbiB0aGlzIGZpbGUNCj4gZGlmZiAtLWdp
dCBhL3NyYy93aW4zMnN0dWJhZ2VudC9zdGRhZnguaCBiL3NyYy93aW4zMnN0dWJhZ2VudC9zdGRh
ZnguaA0KPiBkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMzkxYTg0OC4uMDAwMDAw
MA0KPiAtLS0gYS9zcmMvd2luMzJzdHViYWdlbnQvc3RkYWZ4LmgNCj4gKysrIC9kZXYvbnVsbA0K
PiBAQCAtMSw0MyArMCwwIEBADQo+IC0vKiBDb3B5cmlnaHQgKGMpIENpdHJpeCBTeXN0ZW1zIElu
Yy4NCj4gLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+IC0gKg0KPiAtICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcywNCj4gLSAqIHdpdGggb3Igd2l0
aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQNCj4gLSAqIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6DQo+IC0gKg0KPiAtICogKiAgIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUNCj4gLSAqICAgICBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlDQo+IC0gKiAg
ICAgZm9sbG93aW5nIGRpc2NsYWltZXIuDQo+IC0gKiAqICAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQ0KPiAtICogICAgIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUNCj4gLSAqICAgICBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXINCj4gLSAqICAg
ICBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KPiAtICoNCj4gLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORA0K
PiAtICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywNCj4gLSAqIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GDQo+IC0gKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQ0KPiAtICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1INCj4gLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLA0KPiAtICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywNCj4gLSAqIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUg0KPiAtICog
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUw0KPiAt
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksDQo+IC0gKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcNCj4gLSAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UNCj4gLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YNCj4gLSAqIFNVQ0ggREFNQUdFLg0KPiAtICov
DQo+IC0NCj4gLS8vIHN0ZGFmeC5oIDogaW5jbHVkZSBmaWxlIGZvciBzdGFuZGFyZCBzeXN0ZW0g
aW5jbHVkZSBmaWxlcywNCj4gLS8vIG9yIHByb2plY3Qgc3BlY2lmaWMgaW5jbHVkZSBmaWxlcyB0
aGF0IGFyZSB1c2VkIGZyZXF1ZW50bHksIGJ1dA0KPiAtLy8gYXJlIGNoYW5nZWQgaW5mcmVxdWVu
dGx5DQo+IC0vLw0KPiAtDQo+IC0jcHJhZ21hIG9uY2UNCj4gLQ0KPiAtDQo+IC0jaW5jbHVkZSA8
aW9zdHJlYW0+DQo+IC0jaW5jbHVkZSA8dGNoYXIuaD4NCj4gLQ0KPiAtLy8gVE9ETzogcmVmZXJl
bmNlIGFkZGl0aW9uYWwgaGVhZGVycyB5b3VyIHByb2dyYW0gcmVxdWlyZXMgaGVyZQ0KPiBkaWZm
IC0tZ2l0IGEvc3JjL3dpbjMyc3R1YmFnZW50L3czMnhhZ2VudC5yYw0KPiBiL3NyYy93aW4zMnN0
dWJhZ2VudC93MzJ4YWdlbnQucmMNCj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4
IDc4ZTVjYzcuLjAwMDAwMDANCj4gLS0tIGEvc3JjL3dpbjMyc3R1YmFnZW50L3czMnhhZ2VudC5y
Yw0KPiArKysgL2Rldi9udWxsDQo+IEBAIC0xLDYwICswLDAgQEANCj4gLS8qIENvcHlyaWdodCAo
YykgQ2l0cml4IFN5c3RlbXMgSW5jLg0KPiAtICogQWxsIHJpZ2h0cyByZXNlcnZlZC4NCj4gLSAq
DQo+IC0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LA0KPiAtICogd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZA0KPiAtICogdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoNCj4gLSAq
DQo+IC0gKiAqICAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZQ0KPiAtICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUNCj4gLSAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCj4gLSAqICogICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlDQo+
IC0gKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZQ0KPiAtICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlcg0KPiAtICogICAgIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uDQo+IC0gKg0KPiAtICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EDQo+IC0gKiBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLA0KPiAtICogSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YNCj4gLSAqIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFDQo+IC0gKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUg0KPiAtICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
DQo+IC0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLA0KPiAtICogQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SDQo+IC0gKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTDQo+IC0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwNCj4gLSAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORw0KPiAtICogTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQ0KPiAtICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRg0KPiAtICog
U1VDSCBEQU1BR0UuDQo+IC0gKi8NCj4gLQ0KPiAtDQo+IC0jaW5jbHVkZSA8d2luZG93cy5oPg0K
PiAtI2luY2x1ZGUgPG50dmVycC5oPg0KPiAtDQo+IC0jdW5kZWYgVkVSX0NPTVBBTllOQU1FX1NU
Ug0KPiAtI3VuZGVmIFZFUl9QUk9EVUNUTkFNRV9TVFINCj4gLSN1bmRlZiBWRVJfUFJPRFVDVFZF
UlNJT04NCj4gLSN1bmRlZiBWRVJfUFJPRFVDVFZFUlNJT05fU1RSDQo+IC0NCj4gLSNpbmNsdWRl
IDx2ZXJzaW9uLmg+DQo+IC0NCj4gLSNkZWZpbmUgVkVSX0NPTVBBTllOQU1FX1NUUiAgICAgICAg
IFZFTkRPUl9OQU1FX1NUUg0KPiAtI2RlZmluZSBWRVJfTEVHQUxDT1BZUklHSFRfU1RSICAgICAg
IkNvcHlyaWdodCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLiINCj4gLQ0KPiAtI2RlZmluZSBWRVJf
UFJPRFVDVE5BTUVfU1RSICAgICAgICAgIlhFTklGQUNFIg0KPiAtI2RlZmluZSBWRVJfUFJPRFVD
VFZFUlNJT04NCj4gTUFKT1JfVkVSU0lPTixNSU5PUl9WRVJTSU9OLE1JQ1JPX1ZFUlNJT04sQlVJ
TERfTlVNQkVSDQo+IC0jZGVmaW5lIFZFUl9QUk9EVUNUVkVSU0lPTl9TVFIgICAgICBNQUpPUl9W
RVJTSU9OX1NUUiAiLiINCj4gTUlOT1JfVkVSU0lPTl9TVFIgIi4iIE1JQ1JPX1ZFUlNJT05fU1RS
ICIuIiBCVUlMRF9OVU1CRVJfU1RSDQo+IC0NCj4gLSNkZWZpbmUgVkVSX0lOVEVSTkFMTkFNRV9T
VFIgCSAgICAidzMyeGFnZW50LmV4ZSINCj4gLSNkZWZpbmUgVkVSX0ZJTEVWRVJTSU9OX1NUUiAJ
ICAgICIxLjAiDQo+IC0jZGVmaW5lIFZFUl9GSUxFREVTQ1JJUFRJT05fU1RSICAgICAidzMyYWdl
bnQiDQo+IC0jZGVmaW5lIFZFUl9PUklHSU5BTEZJTEVOQU1FX1NUUiAgICAidzMyeGFnZW50LmV4
ZSINCj4gLSNkZWZpbmUgVkVSX0ZJTEVUWVBFIFZGVF9BUFANCj4gLSNkZWZpbmUgVkVSX0ZJTEVT
VUJUWVBFIDANCj4gLQ0KPiAteGVuX2ljb24gSUNPTiAieGVuLmljbyINCj4gLQ0KPiAtI2luY2x1
ZGUgImNvbW1vbi52ZXIiDQo+IC0jaW5jbHVkZSAibWVzc2FnZXMucmMiDQo+IFwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQ0KPiBkaWZmIC0tZ2l0IGEvc3JjL3dpbjMyc3R1YmFnZW50L3hlbi5p
Y28gYi9zcmMvd2luMzJzdHViYWdlbnQveGVuLmljbw0KPiBkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQNCj4gaW5kZXgNCj4gODQ0Yzk5M2JhMjkwZTUwNTVhODkwMGNhODc4NmVhMGUwMzExMzhhNi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMA0KPiAwMDAwMDAwMDAwMDAwMDANCj4gR0lUIGJpbmFy
eSBwYXRjaA0KPiBsaXRlcmFsIDANCj4gSGNtVj9kMDAwMDENCj4gDQo+IGxpdGVyYWwgMjUyMTQN
Cj4gemNtZUh2MzB6Z2hgfWVSZkR5eGJwJUxQUDBQKkQmO0t1fCEqQzcwQ1AlNiZLWWwqKkZLNT4z
U28xPkU7Rl9YDQo+IFQkfQ0KPiB6dl8jeXUobyNmb3gyJTRabUhORVRjZ3tKTmRvTih4cntEWCZ8
SWZlQ0AwcG9yb145NE1YVUAzQFZKN1QNCj4gRVhzOHAlDQo+IHptU1RYbDVPYWtQSS1RY2dWPWx4
cXJhM3QmYDlMIXZacktVdTd0QylmKTtJe15QITlaUi1kMmQ2PyUtR1ExRlZGMg0KPiB6KF51b3lp
OGNPMDkxWU87SW5SN1VUV1Mwe0Z+Q3hZJTVNcjAkVWQrTShTcmZNNUtAJiRyajBNRFQqI0V2DQo+
IFIzK2pvDQo+IHpDbUU/Q0gjZTZITmQ2WkBOSE8+eU5WeG9FdW8qa0g2clFuVFFffEFManZhMVhX
SFVBYFpETHwjVEcNCj4gfUxJblV1N3wNCj4geiNGaG1HaUhYVCtoN3ZYdDZBUDQobXBHfGRsVENf
N0UtDQo+IDEpTEY0bU1YayMlU3hQcGA/d2tqekZqTyRKJlpsJFdmUw0KPiB6SGV1SGIqaTYoXnQ4
dCM5RDVhJGR5K0E0fHArOzN5TEplRG5xTGh9V3hWPnBBbCU9WilDfVE9WEtWfnUqNQ0KPiBXQGh9
DQo+IHpYYWFnVkUwWEZ9MFlwPjV1aEZIWnNlMU5leCtKQSo/OFM1YHBqUUxCVDNaTmtrbHNqI3Z7
cTBHcSpXdWp0ZHJ0DQo+IFINCj4gekRmRShoNm47JTBkQVFiV1UjZjxzMSUxN2dDZXdSVk9xY0Fe
Q2tQYk5RUChGKiEqWVFzVD8oKklPamp4XykNCj4gdnk5cA0KPiB6bGlEd2UpaEEzPnk5amo2UUJj
KFlIQjRgKjwrVjZiNGpgQE5HXipAZ0ROc3oyRFhGRnVNVCMyc3cwS3M0VQ0KPiBtTVMrDQo+IHpt
TmotM0ZtJFBTektGOHM3aS0NCj4gYz83fGxvNFJRbWlDV3pCYVhOPyN1XiRCb3ckck1zfmZKJnNl
PkJ3OzR3JDNuem0NCj4gempkfj02SHt3RGU5MSo3cVZTJCk2bmVwV3IkSCtXRUpZRVBFVzVNRT4j
YVYkNmdAXyVDPDZQdXpndw0KPiBXenQ8U2xzMw0KPiB6e0VIYUh5ZFcjI0lkTGpEVU8tPGlfemU2
Z01CY3pwJjQxSCtZNHozVyZyS2xQTCpHOEVOVmI+T2VwLQ0KPiA4eStQLVJnDQo+IHo8MzZLZiM1
MSh9ak5wNC09Xjw1VkFpbDN+aW95UnQ7PitLPSZscnlkOHw5d0RudzV+RSspSVk1Knw4SDdUakN4
dg0KPiB6Tmc+I3phU2tDX1BQNXxhcC0NCj4gYz5lZDcxfFgpNGJ1ZGw8T19le2l5ezd5Yj9AUio5
I3QrUT9Wanc+angodlY8Rko7DQo+IHpOVCozNUhYems4MG1ZYyVHTFBqJVVDPFNDPV9UYFcyfl8j
ekc2VnMySiFFIVBxNEAqZjxlRH4+P1Ymbg0KPiBjXzVfIzUNCj4gellNJDl5bVRnWXQzWSpsZ01F
eTxNIT9nV2BZNU5NM19RJEZxQEFYPiRAWFZIYjA9MnNrNzU2ViVNDQo+IGg+fUQzIWRJKQ0KPiB6
I04mNTdoOXJoKEFyRG1gbWp6T0opKSshNHZrZnklNTVzYiNiNkt1WClkNzliMztsQWEheVlkITgw
U3Q1OVlZKUUNCj4genNobG83cSspUG1VQEgre0lyKU8pb2E+QWh1XkZBMSpvK2dTVGs/Mm1DVHV3
MyNCZVBoZWQ9KlJgamRpWXENCj4gWUxPVQ0KPiB6X2FldktrcCttRUFZPDl2cGclYzlRPTRnV1RD
Q35TK2QqNWl4eU0tDQo+IFJZPE9NNitRVGdkbG9obWNASW5UJSNge2lODQo+IHpNVT9sdWBrP2ch
NlokZFVzXlRMMGdAdVdKe3JaWFY8SHc2Qjl6dngxU2MhQ2hkb2puKU93MTF1Vm5NTEEkDQo+IGYj
TEMNCj4gek9iPkR2dnVqcnApOVpTUGBFXn1IV2B2aG1SWkVEcWIlZllaU0JOZClMZ1lsNWlIejhx
VnBDJlJrPS0NCj4gbXA5Nz9iaA0KPiB6YFIoalFROUJ7ZF9JNDNoIyNSK3l5Y0k0Y3d7OXd5Yngw
NjchPHZiOHtrdz1QdyFpJkAoYyhzVzRSTD42bjN5DQo+ID53DQo+IHpPPU0rZGlLUj1JaWRDeXRp
TTRDamlqNW1MaXJ1PytpdnRHXmh5cElWa2g0UnNUU3QhYDZ+flNwNkRMbGI1VHtSew0KPiB6N1Uk
Mk83aGl3PHdZWWxxczw/NkVoUFpYPm1iaVFPdTZYZF5mJXgmcUFIXkBmezMzcTt7ZGUpfm5PdUdL
DQo+IFA0alEhDQo+IHoteG0xYSY7cT1ZfDM5ZHZsfEg8SGFwbnlTMz1IREg1b2V3JiFzVjdoez1W
TWNvKm97YS1ybTBjTDYqLQ0KPiBHdjliJmENCj4gel4hNChwNXVrPHxVWUA+ekEobXk+VkJPNUVY
STVsdGM9LQ0KPiBtaGpaKFp+UGZCbkBoOSVnbTUoMkU7K2VFa09SZStaXw0KPiB6bj1sYnpjSWly
dTVgaXQkQEg3PSpjMjVJTkZCdUY3Q0lWcGhMYjFZVmUzZikjMGpuVHlqbU9nQFhtc3pPO3dvNA0K
PiBMDQo+IHpgZyReNTtqQ3M5NmREU0IxMnFCbXJrYlNkSWpoUWAmbmt1Ykk8eHZ9bygmdHUkYlN1
azY9dUhIaSV+KXAxVTsraQ0KPiB6NE9qKE1Xa1MzYj5aaygyOGlEaFdzSCE/LQ0KPiBXJDd6OTs8
V09wJH0rXkxjfiFoPlJuPnIxUCElUklpKFZpbW1+LUpPDQo+IHpkej5ROEVMRF55dmhyNmJlQU8o
KGhnODxRUVEwTW5LVSZEaih5eCp9PW1pPlIjYEh5O0BJd3UoMCh9Zjw4DQo+IGs7NikNCj4gelAq
a2Fza0lHLXNGbGR9SWp4I0smc1BHMz5hV3g3QzAjUVo8dUNsXmJLYHRnaVlzbVFjNVIoISNQKVl1
ZlZoZVNRDQo+IHoxciZaS2QqZXs3S1ImKkpWVWQmTTR8S1A7bXVsM2EyRjI8KjYlITBIJUkpcGxt
Ryl1JmF2VzZsSSE1ZkEyDQo+IHw8QUANCj4gelNOV15rKipTNkUmV2BESmBoSzwzY1NYM3BvdC1T
TkU9UWJJQW9EdnBtQTY5KCowXystDQo+IEVYNCVkbTNNTm92eTwlSA0KPiB6S25gfSEmTWVALQ0K
PiBkYkdOTnk7dllGbT0pU05zTiplQVhZSzZmP0NqditQKERnazhFMGM+WFVvdG0jTWc2bnckPl43
DQo+IHpjPzROSXlTcWM4cDJsdSVYSmNiK1ZgRjJoeGZkVmhZXn0wMHpzfHdPJEs2ZlpzOEZHVG92
cDIxMXNqSH5FJDE4DQo+IEANCj4gem9Tb2c9KzxodSY+VWwmNVREJHdINXs/Y0klJWxZZTJTPGg1
JEs2XiMtDQo+IChrU2Ymcmd3WGI5T1dndGVTUUVgMXZ7Tg0KPiB6KW5tPkN4JXYzfUwmVGpjVmkt
Nk5aaHY8LQ0KPiByRSEjSG1weVh5XlhDOH5ra0pDP24zP0kwI29qPUsxPkYyWEFwdDg4DQo+IHps
N1cqNyZDUXJ5NjleNGVXRihWJVZWWWtGYn02OXE8MSNKeVlZQXI4blFCKkQzZXZneipHMTU/QklF
Qy0NCj4gRUE0KjcNCj4gejdXbEBpTnFgWHspWmJsKStweTlzcmRPXnRfa154YFhsVUt+XzFRe3cm
SUZkYGl6Yk1oZHIrWHghb3U5bCUtcTY0DQo+IHokQz5CZHVWcG59VzxRfFZWVT1wbz4+OUBNZDZ1
XzkjY3s0OXduZyt6SnpzZ0dvP2pLSj1VMXV4TlFpUA0KPiApZzdZZ3ANCj4geklwRitDcDV0KUwm
I2R6TmlwQXZsbEA9RXdAMiNGd0B3cmVnQCY8NyNeOEQ7KDhpUzFVQ21IXk1JMkRSDQo+IFl2NkJu
Qg0KPiB6Zmo/VGw1T25yaXRBYGVBXzA7T0V3RjVWU2E7fSVFd297P25aWSZ0Ymg1QnxTckplRGRz
JDt9NkBFJTQ2T0NeJA0KPiA1DQo+IHpnWGgjYW98WW1iJFZGdUVeWEI0NlBxOG9ETzYrVjxMRnxz
TzZUNn11I2t6KS0NCj4gI2hNMEgjRXhpSkZ9K2JPYVZYTUsNCj4gejlFLTZPMmIjRXdVNVZhZVMk
dVZ8YHFlc09YUzM9ZXImV205QD4rPTQpR2tgPWN8QSY7WS0NCj4gfWFZSG5TMERsV29QdA0KPiB6
SHVtRCVIamQmLVM0V1pHKyhxUUlfWXhPNnhRY0p2SXgpPmpvYktRJDk8KCRRZz40PGg/WEttLS0N
Cj4gN2ZheERuSFd9DQo+IHo0cztkdzJEeWx2VzIlVno/Xlk0ey1Hanh4SHshK0t4NE1keyF9XktD
IShKRGtrTTF0PSNgWTM8PytwLWxRYSF9Jg0KPiB6azk2WUJDcHooOU1zQExFZXozPy0NCj4gZU1A
fXQ7YyMoYys2UTlCajJVQTZgdEBTZHJjR2s9PUZNV34mWWtqXl9zcEQkDQo+IHo7JXckKmFlbVBa
YWRHSiFAenUmS2BUVSFnbW5ZN2hKRXdve3twT28qI1AjZGYjZHFJKkMhYyUyfE5pQGINCj4gcEwt
MzQNCj4geioxeVVCODc9VG5LY35qWlApNk5qVj8lNUNTRmk0MEQ+T0U/QnVpfGxQZTlGKDI5YzJz
TFRVemhncW17MWBxZ0w8DQo+IHpyNEoxUHtFUWk1ZUlnPWRoKkZ9K2BhWHNYdkh0WlZqNiNFbWBY
MHAkdkFXPD1mPSorSV4kejQ0c0MtDQo+IG4kTUZ1N1cNCj4gemRhRGVmOS1lSXhUS25SRyQrdk1r
NHNBSyo1aHwtMD4lfFdfP1BYfCQ9Tip8c3FNRGFmNWJLVTc4LQ0KPiAqZGNZU3E/QQ0KPiB6d1Vh
Yj1Tc3EkTjI4RSRqdk1nM2VSYlV7dDVecGVOUCZqYmFEM3dAMkVic0t4cGZQQjkyUz0xVVNYb3Qy
DQo+IHxGQERIDQo+IHo/WDt8dzFJbWt3dCg1Wmk/SGckdkNALQ0KPiBnTzAmSnxMWiZGM0ZxfWh+
MXhlTT1LV29SVWVZfjsxSXFffVhvMihgN2cNCj4gekVAeHdILUI9Yl9UVSpQeFRfYUEoMjhgdUJK
Mz4zcSthVjx4K0JZci0NCj4gXj10c1VjcWdhVXZSbyNlNm93WGR2UnM2Xg0KPiB6OGErK3ZHcDxW
aWgqKVIwK05BX0hYR05TWElBZjF5OHVaMCpwPFk5aTVONUFRT0NLJWtCXlpUcE9UJUsNCj4gO1ZC
eT5fDQo+IHpDTHlWNXYhK2QoQ2ROY05UTm9FSkwjVmxQPHZQKFpHMH1BQEpEWm83QTgzY3ooREs7
dGxgbk9FITMkPFZrVipZDQo+IFQNCj4geipgTStDUTU7ZEtqb2UxPy0NCj4gaCs0X0dYND43RWVk
Jj9rKm1DV2E3XldgaFgkZVNwMElOPWY+dz89U0N1UGQ5bmJ9eA0KPiB6JkBIIXNZenNFQVBqTz1D
ODJXdCpfOWp7fCpyJnt7PV9wcGx4ezc1ezklNXE/Wj9VYkpuPmYoTUwrdE5kUDMmDQo+IHBtDQo+
IHpFNEg/LQ0KPiBDJSl7YzZEUFgqaXV+NkRNU2lDYDs9fih+OyhVSn1hZWt6KXhIN158VHB3M005
UFhKWVA3WCpHWFpraH4NCj4gej1TSUZKP3RMMDBfVXpkczRqdyF4QEFIPX5VNlN8cGhZdWYkcE1V
O1l7UUIjIXxEST1Te3FiLQ0KPiA3Wnd2ZmlaVU95MQ0KPiB6I1lfZ3h4fHh9Y2xiZjU5amhWN3Nu
Mz1tTU0tDQo+IERGTGE/TE89S0N9WUNqRV58OTtBa2V5dFFAXyl0MiNRbWR3Y1cyDQo+IHpoTHhG
X3dQUUoqJmVQcG49VXZYUm9WQSU1JlgjbD55bThDMVNNdWROYi1IUzUtbk0tDQo+IENeNnBecDxi
PHU2bkkje2wNCj4gej15WlYyeUBEa2g7M0Y2PFJEZ1lwO3pLfFM+N1llTDx3VVpnJXJifFdvb25V
RnU2QVo5bUJGQ0NjPXcyDQo+IFJrYSFvRg0KPiB6JF96a1JLYFJGQFdGVSltN0J7PmUzXlNxUUU5
Png9KExad0dCUCgtDQo+IDtDQnVlTW8+N1Y2JD8jKFlGbVJ4VlY+fCQ5DQo+IHomYDxeKkBJblQl
Jns1X1c3WE9IfDIxO095VmEwJWJIJTRfdlR9QUBxYncpMm5LZ0xNTEoxVVJ7NFExDQo+IGN+Rkp2
R0sNCj4gejluYn14fEZ3RVJIdj9AMlRrZWJ5TWx6JDx0Rk9LfnVTPUlNVSVjX2c4PCFaRGQtDQo+
IHZ9Qlc4YzFncDglWnhzYXY7aA0KPiB6LQ0KPiAhbEQ1PWd5cl53cmJVQ0hPcVgkY28odF49enVR
aGd6a1U1S1VrKikxSU01Xml3fE5uPVJNbkVfVVF0QTk1DQo+IEdfVg0KPiB6KCtMd01KZXhkdXZj
I01AYjB8QUlUTE5pfjRqJUJiJXV9d0BSbztaPnUmemxBXmlPakpiaSlSMFNyfk50LQ0KPiAlN0Yk
DQo+IHpHWH5uamZ1VW8+dil9VyVPQEdqUWhKV2oocXxseXNKNXY2akZwMH11VCFgUCNPQ1lWJCEy
QDIlWG0jbjt0Sg0KPiBsdzUNCj4gemtHLXNWR0dqMW9hTF9TZTZTa2ktXlVKT2wlVkU0PU9nYnxI
KnY1TjNkLWcxWi18Nlk7Jno4LQ0KPiBhT3R+WUg9KnBtfg0KPiB6YlpkTXl4O3JuQj95c3MjND53
MjlfZEJCS2A8IVRyaG4jLQ0KPiA2RFQzfj00NWhtbjBkKHZBcyZyKzV5T2Ywdj16YEFmDQo+IHot
DQo+IE1pbXkqfE96RXdsI3IpSWZENVArYj15WVNPJmdoWk5OR2EhaE9BS0BaaUJ1RmI8Wm8lfG0w
Nz10aGJnLQ0KPiBOXzgxDQo+IHoyT0h8cyF8bSlOezZ4R0JoJXx2KDF8QllkdXMpcGJXQ1QqdD10
Xnx4P0llT3U9dz0mRmQ1KVpDbl5QSG0NCj4gVjRERlMNCj4gejtMOGltWlJXJDZMN2dFTiNfZShm
P1NucXdLUmsmRk1ePldTYkEjd1VgfHlDPF59JEJRWFo3aG16OyhJNQ0KPiBBellUQg0KPiB6VG8y
R3QjeXNHYUdVJGBGVlJVOz0wOV9tRURze3NLWTtrKkNXODFTQkJqNXVBelFDdXk5ODFpREczVlQt
DQo+IE9gOWU+DQo+IHomTDR+JkpORF8pblVnOTE/ZlBgJVY7JFhIOSFtR3Rnd2VmS14lITtPP2d9
MGtPdU1fUjQmN1peaHdkej8NCj4gTz9NV1gNCj4gemZOM2FgSm02aFhTSVhYNyV7b3tZV1Fzb1lx
R099IzZLdWdJPF4/fC0NCj4gRW4jMCEybE5CUmxIck1GaU5WazFTWjZTQQ0KPiB6MHtabW5iTU84
NC0NCj4gKyNKPF48NWFeTmpFPEFxdVVFPk4jNzlQbyp6UUR2ViFUPnlxZmVLX3M0ZzAwX25UaWZw
bHxMDQo+IHowTnRFdjA7WnUlQC0NCj4gWGtNJSRqczdKNlAoXz5zJH4qTVUjQiMhWE9XViYyaSgj
SndxTVg3eFYraDY2T1BaRHxLQ0INCj4gekk+dFFLRW5TWnVKQFV7NyZ+dDlFQ3RYa1RySkVUKzU7
dFpBKHYyQWJSNWFiNmlheERRKkMrYz87VXBnX3tGcEkNCj4gTw0KPiB6TjdwOEopM3B4KUZCUDAt
DQo+IDhwXjxQb3FkRTFXVDZBUFpsZDFNS1BPMT9vRUBPbDBZMGM+M0cpR1NURX5Fb0NGVE90DQo+
IHpGbTVYSWN3ZGIlMjtXY2p0dyFJYmRRc3QmPkklM1gqQ3pWVlJyY0BPND9POWNfZE11STNhPSsp
LQ0KPiAwQVlARHMqe04NCj4gejc1YUxGOCt8PnpheHE0NW5yU0VsNHx1UDxRO29oRT1mT0k+cV5A
aElKTH1mJGVFWXM5byRPc3pfNSp4VD1reF5qDQo+IHo0Kn5aRnFqQUp9dzAtJGJvalNkYWJxNGIm
Y1deajsjV3VlZz8/dkNSb2gkNj88KmAtDQo+IGk+KFREPzc1ajUoWGwxJU0NCj4genhGVEhgOzdh
SEZ4elBETyZVQ0p+NlBAZW5OYXVQTzBDfEFSenluXiRUcFYwVT5WUGlqeXFyPV4rSkcoSygNCj4g
cmBEKg0KPiB6OVRZQ182PEMrbHdINWI9QW92UU93RiRzISV4IW1gdVY9QjJaNkJPT1hMPnIocklH
SDhEcyp2fTg9WXIrPQ0KPiBMU0B5DQo+IHp2d2RDWU9mTSVvLQ0KPiBRQUgrYipuKDl4fEZBcm95
eVY0al4qZT8yWVdqNG5xQkdPR1ZwKkdHTFZJaXYlUT85JmhyRGcNCj4gekVyd0sqd3FXPC1oJF54
aXpROEJrQUsxc3E0QlYlJipPMEhqSUZAYkM8ODFpSWt0M2Zoby0NCj4gdnY3K0xvdFA5VipsRQ0K
PiB6X0xYVF8rZSk7d3dKUi0NCj4gYz18VzRJSkphSDFDdEIzaGtycEw3KEJneSZiZztQe2VjOTVR
ekhHczBaYmVfYlFXOGcqDQo+IHp3bSFqKnZnNjd0WGszQV44I35aXiowQ1ZUa3JwOyV5e3RSOE9H
UEA+Z1dJTUx3XjlGIWJmJks+PCtyZ1YNCj4gXz1JdCENCj4gei0NCj4gbHd0R3o8TVA2Zk1iayVI
KHFhVTthPDNQUCFiKk1QPU9BbV5gYVl2KlhaYGAraHlZQiY2X2xEWShMciVYRw0KPiBAMEANCj4g
ekVhPndsPUF+a0R5ZTtrQnhRNihmeUUxWDw9empYVkxxJDZGU348JF5TZX1rfGFpRF4oaiYhVmpJ
Zjc1e088aipCDQo+IHp2QUB7IVZjIWJoWkZuQ3gyeU1USj52XzFUNiYtDQo+IEM/aipobkZ7KGRL
IXsmVipSQHBwYW4/Q0RjXmJjOSN+MnY3ZH0NCj4gemxlVnV8Sz1ZIT8pNG9STGJnKz9gNSV4Qitw
amlYak9Gci0NCj4gJCU0I30pYHtAVkQ+bTVwbW5fMUU0JjIxPkpyN2F6Sw0KPiB6KXNGcUptd3Be
ZHZMeUpYXzV0Pk15JV5RdUpFSl87WXYpSEZlZWByZy0NCj4gejNVeVlFNmUmJER3MiFuTGc2bGs4
WWpGDQo+IHpFel5JXnBLflhVKTEqZTh2QF9iQV9DXmFtcnBII0hoWSMrVGtreygrbC0NCj4gcntx
d0h4aF5HcDdUTUUkQmNLT0ZFY24NCj4genJURD08ej9Yd2JSc2BSJD1pX21IbTNfd0V5RG9mWlJO
YCslfEc9OEZ2bmspbDZSYzwtDQo+IChBYmpwIyN6dUZab2hwXg0KPiB6P0NIfFZZNUYjVj9iNT03
YH1iKjVydiV5JVZMPl5PZj51VVlRe0xfIXJManNIYHR7PDw4TU0yaDhTUmMldXENCj4gVmJgDQo+
IHorSnRUUkFibndmYn5kZGoqQ09uXyo9SWFJQio2RXNVQXctRHY5bn1pM2hqKENyeVRZLQ0KPiBD
JnEkeWFYYXA2WHdFYjwNCj4geis4TjI8dml4eWY9JEEoaU9OOz8rOTNYIUQraSRlcyE/JFR9czE/
bF4oMjNCI1N8N25fRWUrcVY5QCRIfjs+eXZFDQo+IHoyMH12R2srI2dGWlRKOVJhJCtye2VmV3Ft
cSZAQFRlJikkekNrdGF8PHkjJFRUWjk+SFlvRyNZI0A3MHgNCj4gN356OFUNCj4gemNka1BadWJl
TSlKaXRIcmRfMzxFSl5KQiRySmRDfTgyYk9pdHM5aW5OPUk4K3J5ZDVqcSVTN156KDxUQkpqYiFg
DQo+IHptOy0qaT01TkZMeH40LQ0KPiBJWjROVnwmRWJxTkw3Tk93a01qb0Q3VXg3KWNDMz1+U35+
Y1dtcH1qYm8lWilqRnckd0wNCj4gei1fU09FUUc3QlpfeX1MfEVYdXkpY3srZ28tDQo+IHZRZEhf
Rj1AfEppam5MMyR2aShRJUJTOXp5MTIkekEkV2FFJmNpQQ0KPiB6a3VQaz0mP29vXlV3SUNIJWY4
RnwwTUNhYXAxYVJoTjRwU3p4QmIlQypFZk00LW5nYjtWPTthLQ0KPiBLVFhwWl5MWjtXDQo+IHpY
PkMycm0kbjFuOzNMKTxadTZobWYxR1g5O2tEOz9KWnRsSj1ZSmRQOztZZDR5PDdmckppLTUyIX40
KkBUR29IdA0KPiB6N0pTOC1mdk53P2c5UkJPI0VnfiRydTAocyVSPGNRIXshbGtlS2w9ISk0dXJn
azNWUmB7MHkyeykxSDxGfEFxY2kNCj4gej4+SyM2amkyaW5LWl8lSGUtazdtbUlqLSVaVXN3Zm52
b3VBeHlGWmhGPUpldk5fNGE2eF8pZ21eJS0NCj4gP0N0PUgtTg0KPiB6RkRXSjVsTkpQLQ0KPiA+
K01SdDJLTH5DdzV7NU9rTHZqT2s9dExKemdzWFQ3UEpiWmcja2loYVpPN0M3UyooJU1YVm9LDQo+
IHo3LQ0KPiAmYHVsQEkoTTE9e21rZDAzQTVtJVpTQV9kKXhuRyVMV09TVTIwelkpYnA9Z1hSfX1S
TSglJj83dig7ZEUNCj4gZDRQDQo+IHp2fWBXUnR8MjVBKjBRQ0FBdlZPbik4T3s4cjE/UD5HKFhU
PkIwSXAwRyklMypgXnhOJDVeWmJQe3RzP0d6aA0KPiBDJXcNCj4gejZFeSRoX2h+ezZUZ25icD9Y
VyVBbUc7Pk8lYGY8PGBoU1cybS0NCj4gakU4JWQ+SSslSWVwVj0yYUlHM3F5SGRUZjAyWA0KPiB6
NTgqdjtPJmlKenc0JHM0T1VtU1MlQioyN0cwV2VBclZaPSYrJWJSbyROXmR5P24odWA8fik3IU0w
U3QNCj4gcVNPTzdjDQo+IHpoajtJIShJSiYrWlVFYjJkJDBAcF5KfHNVYHZvNnl8SDRAJWAhRHdv
ZD9wcG9gLQ0KPiBlWlhRdSRvV1M0Yj9aVXp6NkQNCj4gemIqQWp2NHdNeUFvLSU5TihZIXojbiM9
N3kqV1okNil2JTxMU0VBYFItDQo+IFliKzllIU8+dzdSVVFaZUhtUVd5e1NYIw0KPiB6UGoyaDcw
QGtMUkg7VS0oIzBaKkV2eilZPlVCXi1TcTRAPEx2NDZtTUVCbWtRLQ0KPiApeWprVmgrISQ/THNx
a2YpKykyDQo+IHooISQ3VWx3R2U5VyE3PH5jXzl1b212dj9ZK1I8JDg9VFR1a2JvYjZ9PjU2SDRC
OUFAdyMoXkRhcmpNQnMNCj4gSHVoPm8NCj4gektSPnU8R35TQFpQeyk2TXsrWHRZOTg5MG9zel9P
RUtSY3xsXmE7TFU/eTc2MjtyYGlAPWZHemVMJGY8MShSNDQNCj4gSw0KPiB6IV9odnBxO1ZpRWkx
TWJhYUNlJGxtLQ0KPiBgaitINjE3PXhINnFUYitXOHhsPXB4bTN1alRmdU8rNFhTZF9xJFdfKDY7
DQo+IHpgUW1mJDY7RjZQWkN8XkotDQo+IFZPSnFkRXImMVB3KSs2MldRNklfSis/ZDx+Iz93VTxf
cVdvbEt2NDIrQ15VTUpybEgNCj4geigyfUl1dj4/YEI9STRkNm8taHh9Uyt8T1F7clJWMntQWkxK
WUpqVzl6bzN+bG9vSmZRJF9VZWF0VnpPYCQwNihiDQo+IHo+Y0IySnAwRjF4M3p5RUhxandWYFhv
e3k5IThlUUBvT2BxWGBzWVZIISprdz5ge2YjKihQcCR5cU0wR0N3NQ0KPiBDJWMNCj4genQkWnp4
bWJRcVgxJnhDI0U0bigoanE7KCltPlFKSD4zTERVRyZmUjV7MCQjdiljMnF7VmJ5NE1KJER8diZO
DQo+IFF2TQ0KPiB6eX5JPk1KQUdReHtMOWh3OHMjWkgoMUIrMV8/WFhuN2JlIWA9anBvcVkjbU9e
VDFDP0dIcW9AUWVMU3R7DQo+ICh1fiU7DQo+IHooU2x9MmBWZjRBWmB7czV1JitrWEAyZFlzZWVr
aDYtDQo+IF5XQDsoZlNeKFg/MiVtVEpjJnVFcWJMc0tYWnJCeXl6Tn4NCj4gejUkUXtGPlUtDQo+
IDB5eTQ3ZSNvaG1lPVIlSj5MdTFNMl5UcUxGaWF2Y0o9ND5XTElEKzM/K0FxUlFyZnhnVWAwSTdk
TA0KPiB6UWU5ZnNJKSt3dFlEJFplIXdKM153RWNZY3pyXns4U19leitnQ2tnOXI/cEY+Uz5aYWBH
XmlfVzlNR0I4X2tODQo+IDk1DQo+IHpjV1gmWStzNHlePE9zQFlRaXRYPjNaeyZQMFdgYVRBSSst
DQo+IG9Mb0A0bihUdXZEbHBiMSooKDY9fW18b2ptcDlVU30NCj4gei0NCj4gfiZKOEFQK3N6SEB8
NShFcSpuSVIoNUo4P1FRN09MR3I+RV89S34yXzhwPGJgSVhpT3s0Q1JHJGREbTttVkINCj4gMWgN
Cj4geklFKXMoK0s2XyheQT5GIylzSHB9PX16bldiKXdhOHd4TU8qcDlAPlk1ZFdUI0c4NXwyK18+
NzU1Z1M1dA0KPiBxSndDNQ0KPiB6ISQ2dUg2K3A4aFl2X1NJPXFMdnRfI3BAUjE8ZjFNbEQzVSRX
dFNHVHUxYG00MmxmYFdoJGlAZUgzdyZFYw0KPiA+bG5ADQo+IHo+bGsobntuLV9LKjg8Wm1jcjhs
RFQlUHlvV0o7XitPS2JiUVBKMklvazgoYTNQMXtyNnFBZXIpKTVmPVkoej9FIw0KPiB6WCtfc3BY
LVM3Pnc0aFpTJjJKR3lTOzxrOSp8WSY9Q1BtUF4jUUooNTQ/ND1oMm1aekY1QH5zLQ0KPiA3UFB1
JmQtYGx9DQo+IHpjY35acFZQe3FNYn5HdX1odXtPfEVic1NzdjJWe2t6Y3JgPiM/a3RlbCQxWmB2
aSNLTytPJTw0VXBtQytxNQ0KPiBHI3kNCj4genBna1h0cW55O1N3RWYpP3dCX3g9dn10JWhUMGZ7
ZXQ/dTI0Uj1uQWNtVVpEZXoyMVRyd0A7PTt1UWlrTDt0c0YNCj4gUw0KPiB6KG9RWERkQUJ5U3N6
KFB9K3JKeGE5TklfOUxsNSpwRlo2RjEodnprKHRWT1ZtXklOPXNWQmZMY3tOPyNNPmNEKg0KPiBS
DQo+IHp7UlAkfEswa2l+SilnI2UocXwrMykwZDAwPXQlWiNJLURfYDR5TEVrS0dmJXY0PTg4Q3lS
PjhjN31gRT02bTVOSA0KPiB6SUJpV0NNcTk9WHI3ZEgpemNAeDdiZC0NCj4gWSt7RSZrQF5ndGk8
WnMwbWlpTE43ayRKc3J2SHhKbUttd0pEcCoxPz9YDQo+IHo/U25kS3tWPSZqVl9NT3hHa3Ypdm4r
bnp9cn5LdU1XY3RYMHglN0dGRUlLcjJJXzF1cU4oYSY+R3R5fVBeDQo+IGh2YVQNCj4geis5eHRi
OSgwdDA1QiFqV0Y2Y3BlU0Aoe1YqMVdPNC1GWTB9ISNmb0F8RTFtXjhIXil5bWJKb0khaEZELXst
DQo+IF8xNw0KPiB6IXxAR2grWHBGaEEhaj9DK3AmZXRaMjYyJVpDcG51KlJTUyF0KVN6cG1RbnRT
Ql8ja2wlRTFTSSRlcjgxblkNCj4gTzw3DQo+IHpIY2dMPEFuMytpI2R5ZDIyZXlzemp4cURuQDl6
eGlBbTUqMlBHZW9kSStpaElHQ3lsXkpyWk1SKD50VC0NCj4gI1FIVUsNCj4gejwhfi0NCj4gdEs2
SFRac2U5P3R6VEZaUl92VmxXamZRZ1k3NFk2KlFfM2h4UGwlU2ZwY0FeVyZUemw0V31rSG95bGNW
dg0KPiB6PTNsPF4oKT13ZVcqcnQtDQo+IFRlJlplcGY3TVFndzY0PEIrPENxeWpDXyhxJjMzXihj
Ymg9PXtXbSNZNSFpaiM/TXkoDQo+IHooKW52diglJEopQm9CQlkxNms7UkY0bD9uXms/ekBmbz1V
YEAyP0goIStKNUVFVXtPQHlnKXMkPWZrKjRlPmE2DQo+IGINCj4gej5mRGkxQkV1eTNIfCo1a01v
MXY3KFpLXj1qMSRQaFp8PlYkSUo7LQ0KPiB2fEYhUTJOfndueD5jT0BAIWBAcX4zJnNGfA0KPiB6
SXZJUkZwI1FFd15CTCFASTVXbiVIfmEwenomWSZTOV9OUHN5PWE+NCReUEtqMkcybFRwVj9mV08m
bzkNCj4gR3s8KTVODQo+IHowaH0mays3OEF4b0tAbnltMVZHfHotSm88IygxZ3MoLS1qdGV8U1J2
b2BnVHhseiQmM1NMbEN0cVdebWA8Skk1Zw0KPiB6I0hxaV87cVF4PlVIO0JSaXdsdipfZXpOUTRX
fH5UQkZ7NVdpOz9+UklpJGlsMUFsWG9IPmdoYEA/MX0/LQ0KPiBkWmV3DQo+IHokSFZPK2Y1KmVe
Qj54aF5jPmVlYG1ETGYpeG9XJHpmTlc+QS0NCj4gSG1eQHFoc2FWUiElYmRfd3FNZFZCKkF5ayZK
MUsNCj4gemImTWhnc1ghVnVsdHVteCl6MX1Tb2cpfVVeSGNpTSkqO08pemVmbGF3c1dLaHQ7ezVs
MjVzeCRSfHFgZGgwSnI2DQo+IHp6Q2E9Qz1tMV5XV0JiIyQ/VlJYdFM5YGlRKm9FJUQ9VDcoMmVD
V1lVZX5KNShlZCskVnMmc0ZOMypDTA0KPiBncDF5N0MNCj4gek5SVXplPTxvdWpPMGRCSF5iZnwr
PjVnNz55SVZRQiYpKlo9cFUyPGlAVjV7VG1lZ1U/UiR+NzRMI0Z3DQo+ID0zelVIZQ0KPiB6eXBW
eHhgdWxJZ2tDJG8tDQo+ID0za2ROYl52fGQoVXRDZ3FAI1FNNFp9VkQ3VW9fP2tQYEZ2OVFPZF5I
SmFxJUAwXmdJDQo+IHp0Pz1JWSZ7T0p3RjZiOyMkeDthTEhGSGRWeTU4UUZadTlwNmNSdWw8Sk4j
WFJqRkMxNCVKfTtQSilQNkhgOHg8TA0KPiB6ZX5aNmBmRys2I3Q5SWI+NCU0fktGTDFxWV43alpn
YENBQm0lLT5TVEc9QyM7NkJyQUMjeGNxP1huQi0NCj4gcmR8VT5kDQo+IHomPHpgPFI5bGpgdG10
cUQ5bHRCREw8aXJmdFZpeWZOTFFreC03Q15uez1WVmJLdnlhcFI4aXVaJT03IzdLOXkqSA0KPiB6
eDVfMU9xUEg3Szl7eDdyTkMkNyZGRGxKRyg/YHI1R2tgOTQ8bkk9eV5yUSMoPyRRckd7OXVGfGc7
IX0mSH53fmANCj4gejMlfSMpPUJVU3x1RmtaMV9Ke1E3KElYPz17alB7azUzYTU3QCUhQDJ1VTg9
MGZHdHhXOzglVk43ck1tbg0KPiAkMWdJeg0KPiB6TmxCbno/aTdfYzMmV1oycUVUSGJ6cUpFaDxv
RD57VURCbUs7YXRsdztMUCNjc1hiLQ0KPiA2KVhCVnZWWipjeUkzR0ZaDQo+IHo/RSFSXy16bEdj
I2E1M0NVQSpieGkzMjZoKTFaNlRrX182QjxVfjd+SUA2Ny0NCj4gUn00KXt7X0NJM0RXT201Vypl
e3QNCj4gem5fMyVpZGZKOUpWKDRUT0Q+fDhBWkc9LQ0KPiB6P2RrZjtEZik5c0xxbkhOOWpFPGs3
OCNPY2BwJF8lYmgyM21NUERnOA0KPiB6VkdBfTU/NjJGfXo3YCM4V0ombzkjSyZVUVNqfUh9dz4+
QG5RRi0NCj4gVEQha19gKyQyJkt2OzVGWjNKKnZFM0ZYdiY0DQo+IHo/ZCNWQVA4U19hYUhTKkJt
SWA3SlRje3tiQU1hZH45KTVNSU0xTkBKcFlxeDY7b2RPQHZZSE4jXipaPw0KPiAqMD01TzQNCj4g
ejJLQUBJa3JzM34lMko3dUUoM0A3SkN+eT92b3c9TkB1UD9MWTBmSmxiVElPLQ0KPiBee3s+M3ho
TWhZZ0FyQ1FndGR7NQ0KPiB6Yk9DPnp0JkgmYUBuZjFodW9HPk11cXs8elpVYnZjSD9kIXxFN3Ew
dk1jQn4zYHFzMnhqZ2RDUXdnYExMDQo+IHdLVGhnDQo+IHpXeX1ZfGZjJWFublkxanpOaVEjVExO
NWNoT3hsMGxuJTFHVHItN1hjZHhKRCtZP3Jacz1aJmVZTjQmLQ0KPiB5cEQ+WEENCj4gemAxTD1B
RjM5eFBYSFVfTE1uMDVkcThHTjx6VHg8cnd4bll0JTR6Nkd5UF9QNTVtfHdERj9LU2heTGc9DQo+
IH5KaVpKQQ0KPiB6LQ0KPiBYJEMhKmgyQ2c/JXMlZ3lqZl5pRVltOyNeYjx8Kis+RXdGc2smSmdZ
X1dhQWA0PjV6Jnd6SHV4Tl9UNkd5LQ0KPiBUZA0KPiB6Nk4yYnhLMVZrVVhvb1l8bFo8JXh3K1cj
O3I7ZTZyQllaUWw+ZUM2ZEJCbHl8Z1R3YkJ3I0R9Sz5rbWREYA0KPiBlU3t4DQo+IHo4fDVWRlhq
YzxZQn5KOUZaQjZ+P2ktanwmPSloTEdkMnBNPWpSVnswQGBnb30pNmBlO2Y/dmIjPG16O0pUe2hp
MA0KPiB6bWFGMCojfFA9dzd5RF8/JSEjeGoqMkFkcCloUGhgQmM9YFNQckZ7SkxBemZLcTF+LQ0K
PiAoKFZvX3xXZzc5ekxYJFU/DQo+IHorbS0NCj4gQjN1bU18fFVCZWh7dSlNSzk/ZHtaJUAxdD5h
O0xYUFJfKDFuMl5tMGckQD4waGVAd0IlaXBafkxOKg0KPiBmNndkDQo+IHpuQzd3JFk0NDdxKSU8
U2xeV21ON0BMTF98KDIofFljeGNDJCNeKW5DT0JwU09QVXdhV0x6fHspRSp+KnYNCj4gU2J0Z0AN
Cj4gej19dmlYX25gYTwheFZmdGw9NUUhJDB2QEV7Nnx1SE9JXj9qLQ0KPiBLTz9SJVFONClETVMw
eWt8OzBBT1gqOHo9Nj4/Pg0KPiB6bUB8PSVqMmtGKktvQGtEV34oZTNlNFhecDdARklfbzdPYnFJ
V1M9YW90UXFKJlNwKWFeTlZObEgpRQ0KPiBPZil2OWNYDQo+IHpPUktXejs8NX1gMXxJT1BYfmdm
OFNRYXs3d0JEd151JCtBVU5NcnghKV53cDJ7RWxqS2AkbntIU1UzNyY7JQ0KPiBHWWwNCj4gej5I
R1loJklrMHhOMjYlcCZ+Q0sod0hXNW4oY0VBY2YoKjshSXExM2xaRUNaJEpwNn5RdzZfTSgpUSZB
RW8NCj4gIT9RKw0KPiB6NHN4WG9GR35yZUt8PmpNUkokK0sqUU1EamleaDhZRTY8PCRidXx9JVI+
Y0N4SHFaVWRGOGp4KTdKclJZS0Z0DQo+IDdmDQo+IHolbFBkc1l+ZkZnODJAZnBDbEhMa3FMIW8q
bXBRP1g5Kmh4O2ImTWh2TlEzNTRMY29CYV4zWmBVOSZ+PGBBDQo+IEtqWjsNCj4gelF2end3eEV2
Xzg1MUdEaGIkbXMtDQo+IEtBeFpScm0kUW9LcEErelloWUdEPVBKSSg2fWB7aip9bms1dE5GcFAk
ODdkMQ0KPiB6dWVUNVg/dVlsN2owP20zPSpyMEk1fEBUb3IoKitzQn5BPWg9O3hWLQ0KPiA8cDl9
TSttcmJfYDBTRE5wUHdHZFp5WmhADQo+IHorKHxoLQ0KPiAwe0ZYZVU7NkJXOStITXtBSXtDfUN1
eUtWaFVLUiopKldvP052Q2BJKHokVWg+RFBOVjxqfWR0ZHlvfCkNCj4gemN6XnVzRkVVQFdZcThg
Mzl7P0gxR0sjKUAtDQo+IEdAJGVeT0dwKDZINTBfOXlHZE5lfFAhXzllPVppbyhIXjtWT2dOKQ0K
PiB6TlFkZl8tDQo+IF5wSyhCYzF2ODcya1pOQUh0Xig9SX1hRFEocTJWJGYpd2BfT3xybnZMSzBM
OURueDc3JUJWYjxLTzZxDQo+IHp0Q3dXQHs7aXZ8dFpPNFpBN29md2o7bD14ST9DQEhEelV0T0pM
eDwyQXtWbmhxR05BMXBnVWpla3U+YSRSDQo+ID0rY2wNCj4gekA/Tmgpa1lSYldBTnFqNDxtYXtI
WiR7RGEpYyRtTyhvaX16YVdJfFdKVyVqdkxwdF5HNUlYYmVDXnxEYA0KPiA2eiVXTA0KPiB6P0By
WUkhI0x2Zmh+KjdFPW5RYCZgNjIpPldLNzIzeTUtU2NiYUxQO2JaJTY4eytfO1YzN2B4LQ0KPiBF
TmU3PUg5Z1NEDQo+IHpwbHhsIT08e0FsYm04cXo1PWV1RkdWb35wck52elNRdUZyX3xMdm5mZ1dz
KXxycWhzPyU0ZTspeWkhMzF2aX1Faw0KPiBDdUNYb3YNCj4gDQo+IGRpZmYgLS1naXQgYS9zcmMv
eGVuYWdlbnQvbWVzc2FnZXMubWMgYi9zcmMveGVuYWdlbnQvbWVzc2FnZXMubWMNCj4gbmV3IGZp
bGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMC4uMDI4OWM0NA0KPiAtLS0gL2Rldi9udWxs
DQo+ICsrKyBiL3NyYy94ZW5hZ2VudC9tZXNzYWdlcy5tYw0KPiBAQCAtMCwwICsxLDY2IEBADQo+
ICtTZXZlcml0eU5hbWVzPShJbmZvcm1hdGlvbmFsPTB4MSkNCj4gK0ZhY2lsaXR5TmFtZXM9KFhl
blVzZXI9MHhkNjApDQo+ICsNCj4gK01lc3NhZ2VJZD0weDAwMDENCj4gK0ZhY2lsaXR5PVhlblVz
ZXINCj4gK1NldmVyaXR5PUluZm9ybWF0aW9uYWwNCj4gK1N5bWJvbGljTmFtZT1FVkVOVF9YRU5V
U0VSX1BPV0VST0ZGDQo+ICtMYW5ndWFnZT1FbmdsaXNoDQo+ICtUaGUgdG9vbHMgcmVxdWVzdGVk
IHRoYXQgdGhlIGxvY2FsIFZNIHNodXQgaXRzZWxmIGRvd24uDQo+ICsuDQo+ICsNCj4gK01lc3Nh
Z2VJZD0weDAwMDINCj4gK0ZhY2lsaXR5PVhlblVzZXINCj4gK1NldmVyaXR5PUluZm9ybWF0aW9u
YWwNCj4gK1N5bWJvbGljTmFtZT1FVkVOVF9YRU5VU0VSX1JFQk9PVA0KPiArTGFuZ3VhZ2U9RW5n
bGlzaA0KPiArVGhlIHRvb2xzIHJlcXVlc3RlZCB0aGF0IHRoZSBsb2NhbCBWTSByZWJvb3QuDQo+
ICsuDQo+ICsNCj4gK01lc3NhZ2VJZD0weDAwMDMNCj4gK0ZhY2lsaXR5PVhlblVzZXINCj4gK1Nl
dmVyaXR5PUluZm9ybWF0aW9uYWwNCj4gK1N5bWJvbGljTmFtZT1FVkVOVF9YRU5VU0VSX0hJQkVS
TkFURQ0KPiArTGFuZ3VhZ2U9RW5nbGlzaA0KPiArVGhlIHRvb2xzIHJlcXVlc3RlZCB0aGF0IHRo
ZSBsb2NhbCBWTSBoaWJlcm5hdGUgaXRzZWxmLg0KPiArLg0KPiArDQo+ICtNZXNzYWdlSWQ9MHgw
MDA0DQo+ICtGYWNpbGl0eT1YZW5Vc2VyDQo+ICtTZXZlcml0eT1JbmZvcm1hdGlvbmFsDQo+ICtT
eW1ib2xpY05hbWU9RVZFTlRfWEVOVVNFUl9TMw0KPiArTGFuZ3VhZ2U9RW5nbGlzaA0KPiArVGhl
IHRvb2xzIHJlcXVlc3RlZCB0aGF0IHRoZSBsb2NhbCBWTSBlbnRlciBwb3dlciBzdGF0ZSBTMy4N
Cj4gKy4NCj4gKw0KPiArTWVzc2FnZUlkPTB4MDAwNQ0KPiArRmFjaWxpdHk9WGVuVXNlcg0KPiAr
U2V2ZXJpdHk9SW5mb3JtYXRpb25hbA0KPiArU3ltYm9saWNOYW1lPUVWRU5UX1hFTlVTRVJfV01J
DQo+ICtMYW5ndWFnZT1FbmdsaXNoDQo+ICtUaGUgdG9vbHMgbm90aWNlZCB0aGF0IFdNSSBiZWNh
bWUgbm9uLWZ1bmN0aW9uYWwuDQo+ICsuDQo+ICsNCj4gK01lc3NhZ2VJZD0weDAwMDYNCj4gK0Zh
Y2lsaXR5PVhlblVzZXINCj4gK1NldmVyaXR5PUluZm9ybWF0aW9uYWwNCj4gK1N5bWJvbGljTmFt
ZT1FVkVOVF9YRU5VU0VSX1NUQVJURUQNCj4gK0xhbmd1YWdlPUVuZ2xpc2gNCj4gK1RoZSB0b29s
cyBpbml0aWF0ZWQuDQo+ICsuDQo+ICsNCj4gK01lc3NhZ2VJZD0weDAwMDcNCj4gK0ZhY2lsaXR5
PVhlblVzZXINCj4gK1NldmVyaXR5PUluZm9ybWF0aW9uYWwNCj4gK1N5bWJvbGljTmFtZT1FVkVO
VF9YRU5VU0VSX1VOU1VTUEVOREVEDQo+ICtMYW5ndWFnZT1FbmdsaXNoDQo+ICtUaGUgdG9vbHMg
cmV0dXJuZWQgZnJvbSBzdXNwZW5kLg0KPiArLg0KPiArDQo+ICtNZXNzYWdlSWQ9MHgwMDA4DQo+
ICtGYWNpbGl0eT1YZW5Vc2VyDQo+ICtTZXZlcml0eT1JbmZvcm1hdGlvbmFsDQo+ICtTeW1ib2xp
Y05hbWU9RVZFTlRfWEVOVVNFUl9VTkVYUEVDVEVEDQo+ICtMYW5ndWFnZT1FbmdsaXNoDQo+ICtU
aGUgdG9vbHMgZXhwZXJpZW5jZWQgYW4gdW5leHBlY3RlZCBlcnJvci4NCj4gKy4NCj4gZGlmZiAt
LWdpdCBhL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcCBiL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmNw
cA0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwLi5iNzk0NTQ0DQo+IC0t
LSAvZGV2L251bGwNCj4gKysrIGIvc3JjL3hlbmFnZW50L3NlcnZpY2UuY3BwDQo+IEBAIC0wLDAg
KzEsMjQ4IEBADQo+ICsvKiBDb3B5cmlnaHQgKGMpIENpdHJpeCBTeXN0ZW1zIEluYy4NCj4gKyAq
IEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+ICsgKg0KPiArICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcywNCj4gKyAqIHdpdGggb3Igd2l0aG91dCBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQNCj4gKyAqIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZSBtZXQ6DQo+ICsgKg0KPiArICogKiAgIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUNCj4gKyAqICAgICBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlDQo+ICsgKiAgICAgZm9sbG93
aW5nIGRpc2NsYWltZXIuDQo+ICsgKiAqICAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQ0KPiArICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUNCj4gKyAqICAgICBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXINCj4gKyAqICAgICBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KPiArICoNCj4gKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORA0KPiArICogQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywN
Cj4gKyAqIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GDQo+ICsgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQ0KPiArICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVCBIT0xERVIgT1INCj4gKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLA0KPiArICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywNCj4gKyAqIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUg0KPiArICogU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUw0KPiArICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksDQo+
ICsgKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcNCj4gKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UNCj4gKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YNCj4gKyAqIFNVQ0ggREFNQUdFLg0KPiArICovDQo+ICsNCj4g
KyNkZWZpbmUgSU5JVEdVSUQNCj4gKyNpbmNsdWRlIDx3aW5kb3dzLmg+DQo+ICsjaW5jbHVkZSA8
c3RkaW8uaD4NCj4gKw0KPiArI2luY2x1ZGUgPHhlbmlmYWNlX2lvY3Rscy5oPg0KPiArDQo+ICsj
aW5jbHVkZSAic2VydmljZS5oIg0KPiArI2luY2x1ZGUgIm1lc3NhZ2VzLmgiDQo+ICsNCj4gK2lu
dCBfX3N0ZGNhbGwgV2luTWFpbihISU5TVEFOQ0UgaEluc3RhbmNlLCBISU5TVEFOQ0UgaWdub3Jl
LCBMUFNUUg0KPiBscENtZExpbmUsIGludCBuQ21kU2hvdykNCj4gK3sNCj4gKyAgICBpZiAoc3Ry
bGVuKGxwQ21kTGluZSkgIT0gMCkgew0KPiArICAgICAgICBpZiAoIXN0cmNtcChscENtZExpbmUs
ICItaSIpIHx8ICFzdHJjbXAobHBDbWRMaW5lLCAiXCItaVwiIikpDQo+ICsgICAgICAgICAgICBy
ZXR1cm4gQ1hlbkFnZW50OjpTZXJ2aWNlSW5zdGFsbCgpOw0KPiArICAgICAgICBpZiAoIXN0cmNt
cChscENtZExpbmUsICItdSIpIHx8ICFzdHJjbXAobHBDbWRMaW5lLCAiXCItdVwiIikpDQo+ICsg
ICAgICAgICAgICByZXR1cm4gQ1hlbkFnZW50OjpTZXJ2aWNlVW5pbnN0YWxsKCk7DQo+ICsgICAg
fQ0KPiArICAgIHJldHVybiBDWGVuQWdlbnQ6OlNlcnZpY2VFbnRyeSgpOw0KPiArfQ0KPiArDQo+
ICtzdGF0aWMgQ1hlbkFnZW50IHNfc2VydmljZTsNCj4gKw0KPiArLypzdGF0aWMqLyB2b2lkIENY
ZW5BZ2VudDo6TG9nKGNvbnN0IGNoYXIqIGZtdCwgLi4uKQ0KPiArew0KPiArICAgIGNoYXIgbWVz
c2FnZVtYRU5JRkFDRV9MT0dfTUFYX0xFTkdUSF07DQo+ICsgICAgdmFfbGlzdCBhcmdzOw0KPiAr
DQo+ICsgICAgdmFfc3RhcnQoYXJncywgZm10KTsNCj4gKyAgICB2c25wcmludGZfcyhtZXNzYWdl
LCBzaXplb2YobWVzc2FnZSksDQo+IHNpemVvZihtZXNzYWdlKS9zaXplb2YobWVzc2FnZVswXSkg
LSAxLCBmbXQsIGFyZ3MpOw0KPiArICAgIHZhX2VuZChhcmdzKTsNCj4gKw0KPiArICAgIE91dHB1
dERlYnVnU3RyaW5nKG1lc3NhZ2UpOw0KPiArfQ0KPiArDQo+ICsvKnN0YXRpYyovIGludCBDWGVu
QWdlbnQ6OlNlcnZpY2VJbnN0YWxsKCkNCj4gK3sNCj4gKyAgICBTQ19IQU5ETEUgICBzdmMsIG1n
cjsNCj4gKyAgICBjaGFyICAgICAgICBwYXRoW01BWF9QQVRIKzFdOw0KPiArDQo+ICsgICAgbWdy
ID0gT3BlblNDTWFuYWdlcihOVUxMLCBOVUxMLCBTQ19NQU5BR0VSX0FMTF9BQ0NFU1MpOw0KPiAr
ICAgIGlmIChtZ3IgPT0gTlVMTCkNCj4gKyAgICAgICAgcmV0dXJuIC0xOw0KPiArDQo+ICsgICAg
aWYgKEdldE1vZHVsZUZpbGVOYW1lQShOVUxMLCBwYXRoLCBNQVhfUEFUSCkgPT0gMCkgew0KPiAr
ICAgICAgICBDbG9zZVNlcnZpY2VIYW5kbGUobWdyKTsNCj4gKyAgICAgICAgcmV0dXJuIEdldExh
c3RFcnJvcigpOw0KPiArICAgIH0NCj4gKyAgICBwYXRoW01BWF9QQVRIXSA9IDA7DQo+ICsNCj4g
KyAgICBzdmMgPSBDcmVhdGVTZXJ2aWNlQShtZ3IsIFNWQ19OQU1FLCBTVkNfRElTUExBWU5BTUUs
DQo+IFNFUlZJQ0VfQUxMX0FDQ0VTUywNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIFNFUlZJ
Q0VfV0lOMzJfT1dOX1BST0NFU1MsIFNFUlZJQ0VfQVVUT19TVEFSVCwNCj4gKyAgICAgICAgICAg
ICAgICAgICAgICAgIFNFUlZJQ0VfRVJST1JfTk9STUFMLCBwYXRoLA0KPiArICAgICAgICAgICAg
ICAgICAgICAgICAgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCk7DQo+ICsgICAgaWYgKHN2
YyA9PSBOVUxMKSB7DQo+ICsgICAgICAgIENsb3NlU2VydmljZUhhbmRsZShtZ3IpOw0KPiArICAg
ICAgICByZXR1cm4gLTI7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgQ2xvc2VTZXJ2aWNlSGFuZGxl
KHN2Yyk7DQo+ICsgICAgQ2xvc2VTZXJ2aWNlSGFuZGxlKG1ncik7DQo+ICsgICAgcmV0dXJuIDA7
DQo+ICt9DQo+ICsNCj4gKy8qc3RhdGljKi8gaW50IENYZW5BZ2VudDo6U2VydmljZVVuaW5zdGFs
bCgpDQo+ICt7DQo+ICsgICAgU0NfSEFORExFICAgc3ZjLCBtZ3I7DQo+ICsNCj4gKyAgICBtZ3Ig
PSBPcGVuU0NNYW5hZ2VyKE5VTEwsIE5VTEwsIFNDX01BTkFHRVJfQUxMX0FDQ0VTUyk7DQo+ICsg
ICAgaWYgKG1nciA9PSBOVUxMKQ0KPiArICAgICAgICByZXR1cm4gLTE7DQo+ICsNCj4gKyAgICBz
dmMgPSBPcGVuU2VydmljZShtZ3IsIFNWQ19OQU1FLCBTRVJWSUNFX0FMTF9BQ0NFU1MpOw0KPiAr
ICAgIGlmIChzdmMgPT0gTlVMTCkgew0KPiArICAgICAgICBDbG9zZVNlcnZpY2VIYW5kbGUobWdy
KTsNCj4gKyAgICAgICAgcmV0dXJuIC0yOw0KPiArICAgIH0NCj4gKw0KPiArICAgIC8vIHRyeSB0
byBzdG9wIHRoZSBzZXJ2aWNlDQo+ICsgICAgaWYgKENvbnRyb2xTZXJ2aWNlKHN2YywgU0VSVklD
RV9DT05UUk9MX1NUT1AsICZzX3NlcnZpY2UubV9zdGF0dXMpKQ0KPiArICAgIHsNCj4gKyAgICAg
ICAgU2xlZXAoIDEwMDAgKTsNCj4gKw0KPiArICAgICAgICB3aGlsZSAoUXVlcnlTZXJ2aWNlU3Rh
dHVzKHN2YywgJnNfc2VydmljZS5tX3N0YXR1cykpDQo+ICsgICAgICAgIHsNCj4gKyAgICAgICAg
ICAgIGlmIChzX3NlcnZpY2UubV9zdGF0dXMuZHdDdXJyZW50U3RhdGUgIT0gU0VSVklDRV9TVE9Q
X1BFTkRJTkcpDQo+ICsgICAgICAgICAgICAgICAgYnJlYWs7DQo+ICsgICAgICAgICAgICBTbGVl
cCgxMDAwKTsNCj4gKyAgICAgICAgfQ0KPiArICAgIH0NCj4gKw0KPiArICAgIC8vIG5vdyByZW1v
dmUgdGhlIHNlcnZpY2UNCj4gKyAgICBEZWxldGVTZXJ2aWNlKHN2Yyk7DQo+ICsgICAgQ2xvc2VT
ZXJ2aWNlSGFuZGxlKHN2Yyk7DQo+ICsgICAgQ2xvc2VTZXJ2aWNlSGFuZGxlKG1ncik7DQo+ICsg
ICAgcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gKy8qc3RhdGljKi8gaW50IENYZW5BZ2VudDo6U2Vy
dmljZUVudHJ5KCkNCj4gK3sNCj4gKyAgICBTRVJWSUNFX1RBQkxFX0VOVFJZIFNlcnZpY2VUYWJs
ZVsyXSA9DQo+ICsgICAgew0KPiArICAgICAgICB7IFNWQ19OQU1FLCAoTFBTRVJWSUNFX01BSU5f
RlVOQ1RJT04pU2VydmljZU1haW4gfSwNCj4gKyAgICAgICAgeyBOVUxMLCBOVUxMIH0NCj4gKyAg
ICB9Ow0KPiArDQo+ICsgICAgaWYgKCFTdGFydFNlcnZpY2VDdHJsRGlzcGF0Y2hlcihTZXJ2aWNl
VGFibGUpKSB7DQo+ICsgICAgICAgIENYZW5BZ2VudDo6TG9nKCJGYWlsZWQgdG8gc3RhcnQgZGlz
cGF0Y2hlclxuIik7DQo+ICsgICAgICAgIHJldHVybiBHZXRMYXN0RXJyb3IoKTsNCj4gKyAgICB9
DQo+ICsgICAgcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gKy8qc3RhdGljKi8gdm9pZCBXSU5BUEkg
Q1hlbkFnZW50OjpTZXJ2aWNlTWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpDQo+ICt7DQo+ICsg
ICAgc19zZXJ2aWNlLl9fU2VydmljZU1haW4oYXJnYywgYXJndik7DQo+ICt9DQo+ICsNCj4gKy8q
c3RhdGljKi8gRFdPUkQgV0lOQVBJIENYZW5BZ2VudDo6U2VydmljZUNvbnRyb2xIYW5kbGVyRXgo
RFdPUkQNCj4gcmVxLCBEV09SRCBldnQsIExQVk9JRCBkYXRhLCBMUFZPSUQgY3R4dCkNCj4gK3sN
Cj4gKyAgICByZXR1cm4gc19zZXJ2aWNlLl9fU2VydmljZUNvbnRyb2xIYW5kbGVyRXgocmVxLCBl
dnQsIGRhdGEsIGN0eHQpOw0KPiArfQ0KPiArDQo+ICtDWGVuQWdlbnQ6OkNYZW5BZ2VudCgpIDog
bV9oYW5kbGUoTlVMTCksIG1fZXZ0bG9nKE5VTEwpDQo+ICt7DQo+ICsgICAgbV9zdGF0dXMuZHdT
ZXJ2aWNlVHlwZSAgICAgICAgPSBTRVJWSUNFX1dJTjMyOw0KPiArICAgIG1fc3RhdHVzLmR3Q3Vy
cmVudFN0YXRlICAgICAgID0gU0VSVklDRV9TVEFSVF9QRU5ESU5HOw0KPiArICAgIG1fc3RhdHVz
LmR3Q29udHJvbHNBY2NlcHRlZCAgID0gU0VSVklDRV9BQ0NFUFRfU1RPUCB8DQo+IFNFUlZJQ0Vf
QUNDRVBUX1NIVVRET1dOOw0KPiArICAgIG1fc3RhdHVzLmR3V2luMzJFeGl0Q29kZSAgICAgID0g
MDsNCj4gKyAgICBtX3N0YXR1cy5kd1NlcnZpY2VTcGVjaWZpY0V4aXRDb2RlID0gMDsNCj4gKyAg
ICBtX3N0YXR1cy5kd0NoZWNrUG9pbnQgICAgICAgICA9IDA7DQo+ICsgICAgbV9zdGF0dXMuZHdX
YWl0SGludCAgICAgICAgICAgPSAwOw0KPiArDQo+ICsgICAgbV9zdmNfc3RvcCA9IENyZWF0ZUV2
ZW50KEZBTFNFLCBOVUxMLCBOVUxMLCBGQUxTRSk7DQo+ICt9DQo+ICsNCj4gK0NYZW5BZ2VudDo6
fkNYZW5BZ2VudCgpDQo+ICt7DQo+ICsgICAgQ2xvc2VIYW5kbGUobV9zdmNfc3RvcCk7DQo+ICt9
DQo+ICsNCj4gK3ZvaWQgQ1hlbkFnZW50OjpPblNlcnZpY2VTdGFydCgpDQo+ICt7DQo+ICsgICAg
Q1hlbkFnZW50OjpMb2coIk9uU2VydmljZVN0YXJ0KClcbiIpOw0KPiArfQ0KPiArDQo+ICt2b2lk
IENYZW5BZ2VudDo6T25TZXJ2aWNlU3RvcCgpDQo+ICt7DQo+ICsgICAgQ1hlbkFnZW50OjpMb2co
Ik9uU2VydmljZVN0b3AoKVxuIik7DQo+ICt9DQo+ICsNCj4gK3ZvaWQgQ1hlbkFnZW50OjpPbkRl
dmljZUV2ZW50KERXT1JEIGV2dCwgTFBWT0lEIGRhdGEpDQo+ICt7DQo+ICt9DQo+ICsNCj4gK2Jv
b2wgQ1hlbkFnZW50OjpTZXJ2aWNlTWFpbkxvb3AoKQ0KPiArew0KPiArICAgIFdhaXRGb3JTaW5n
bGVPYmplY3QobV9zdmNfc3RvcCwgSU5GSU5JVEUpOw0KPiArICAgIHJldHVybiBmYWxzZTsNCj4g
K30NCj4gKw0KPiArdm9pZCBDWGVuQWdlbnQ6OlNldFNlcnZpY2VTdGF0dXMoRFdPUkQgc3RhdGUs
IERXT1JEIGV4aXQgLyo9IDAqLywNCj4gRFdPUkQgaGludCAvKj0gMCovKQ0KPiArew0KPiArICAg
IG1fc3RhdHVzLmR3Q3VycmVudFN0YXRlID0gc3RhdGU7DQo+ICsgICAgbV9zdGF0dXMuZHdXaW4z
MkV4aXRDb2RlID0gZXhpdDsNCj4gKyAgICBtX3N0YXR1cy5kd1dhaXRIaW50ID0gaGludDsNCj4g
KyAgICA6OlNldFNlcnZpY2VTdGF0dXMobV9oYW5kbGUsICZtX3N0YXR1cyk7DQo+ICt9DQo+ICsN
Cj4gK3ZvaWQgV0lOQVBJIENYZW5BZ2VudDo6X19TZXJ2aWNlTWFpbihpbnQgYXJnYywgY2hhcioq
IGFyZ3YpDQo+ICt7DQo+ICsgICAgbV9oYW5kbGUgPSBSZWdpc3RlclNlcnZpY2VDdHJsSGFuZGxl
ckV4KFNWQ19OQU1FLA0KPiBTZXJ2aWNlQ29udHJvbEhhbmRsZXJFeCwgTlVMTCk7DQo+ICsgICAg
aWYgKG1faGFuZGxlID09IE5VTEwpDQo+ICsgICAgICAgIHJldHVybjsNCj4gKw0KPiArICAgIG1f
ZXZ0bG9nID0gUmVnaXN0ZXJFdmVudFNvdXJjZShOVUxMLCBTVkNfTkFNRSk7DQo+ICsgICAgU2V0
U2VydmljZVN0YXR1cyhTRVJWSUNFX1JVTk5JTkcpOw0KPiArDQo+ICsgICAgT25TZXJ2aWNlU3Rh
cnQoKTsNCj4gKyAgICB3aGlsZSAoU2VydmljZU1haW5Mb29wKCkpIDsNCj4gKyAgICBPblNlcnZp
Y2VTdG9wKCk7DQo+ICsNCj4gKyAgICBpZiAobV9ldnRsb2cpDQo+ICsgICAgICAgIERlcmVnaXN0
ZXJFdmVudFNvdXJjZShtX2V2dGxvZyk7DQo+ICsgICAgbV9ldnRsb2cgPSBOVUxMOw0KPiArICAg
IFNldFNlcnZpY2VTdGF0dXMoU0VSVklDRV9TVE9QUEVEKTsNCj4gK30NCj4gKw0KPiArRFdPUkQg
V0lOQVBJIENYZW5BZ2VudDo6X19TZXJ2aWNlQ29udHJvbEhhbmRsZXJFeChEV09SRCByZXEsDQo+
IERXT1JEIGV2dCwgTFBWT0lEIGRhdGEsIExQVk9JRCBjdHh0KQ0KPiArew0KPiArICAgIHN3aXRj
aCAocmVxKQ0KPiArICAgIHsNCj4gKyAgICBjYXNlIFNFUlZJQ0VfQ09OVFJPTF9TVE9QOg0KPiAr
ICAgICAgICBTZXRTZXJ2aWNlU3RhdHVzKFNFUlZJQ0VfU1RPUF9QRU5ESU5HKTsNCj4gKyAgICAg
ICAgU2V0RXZlbnQobV9zdmNfc3RvcCk7DQo+ICsgICAgICAgIHJldHVybiBOT19FUlJPUjsNCj4g
Kw0KPiArICAgIGNhc2UgU0VSVklDRV9DT05UUk9MX1NIVVRET1dOOg0KPiArICAgICAgICBTZXRT
ZXJ2aWNlU3RhdHVzKFNFUlZJQ0VfU1RPUF9QRU5ESU5HKTsNCj4gKyAgICAgICAgU2V0RXZlbnQo
bV9zdmNfc3RvcCk7DQo+ICsgICAgICAgIHJldHVybiBOT19FUlJPUjsNCj4gKw0KPiArICAgIGNh
c2UgU0VSVklDRV9DT05UUk9MX0RFVklDRUVWRU5UOg0KPiArICAgICAgICBTZXRTZXJ2aWNlU3Rh
dHVzKFNFUlZJQ0VfUlVOTklORyk7DQo+ICsgICAgICAgIE9uRGV2aWNlRXZlbnQoZXZ0LCBkYXRh
KTsNCj4gKyAgICAgICAgcmV0dXJuIE5PX0VSUk9SOw0KPiArDQo+ICsgICAgY2FzZSBTRVJWSUNF
X0NPTlRST0xfSU5URVJST0dBVEU6DQo+ICsgICAgICAgIFNldFNlcnZpY2VTdGF0dXMoU0VSVklD
RV9SVU5OSU5HKTsNCj4gKyAgICAgICAgcmV0dXJuIE5PX0VSUk9SOw0KPiArDQo+ICsgICAgZGVm
YXVsdDoNCj4gKyAgICAgICAgYnJlYWs7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgU2V0U2Vydmlj
ZVN0YXR1cyhTRVJWSUNFX1JVTk5JTkcpOw0KPiArICAgIHJldHVybiBFUlJPUl9DQUxMX05PVF9J
TVBMRU1FTlRFRDsNCj4gK30NCj4gZGlmZiAtLWdpdCBhL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmgg
Yi9zcmMveGVuYWdlbnQvc2VydmljZS5oDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4
IDAwMDAwMDAuLjc0NDZlNDENCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9zcmMveGVuYWdlbnQv
c2VydmljZS5oDQo+IEBAIC0wLDAgKzEsNzQgQEANCj4gKy8qIENvcHlyaWdodCAoYykgQ2l0cml4
IFN5c3RlbXMgSW5jLg0KPiArICogQWxsIHJpZ2h0cyByZXNlcnZlZC4NCj4gKyAqDQo+ICsgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLA0KPiArICog
d2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZA0KPiAr
ICogdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoNCj4gKyAqDQo+ICsgKiAq
ICAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQ0K
PiArICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUNCj4gKyAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCj4gKyAqICogICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlDQo+ICsgKiAgICAg
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZQ0KPiArICog
ICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
cg0KPiArICogICAgIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uDQo+
ICsgKg0KPiArICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EDQo+ICsgKiBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLA0KPiArICogSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YNCj4gKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFDQo+ICsgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUg0KPiArICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsDQo+ICsgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLA0K
PiArICogQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SDQo+ICsgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTDQo+ICsgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwNCj4gKyAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORw0KPiArICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQ0KPiArICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRg0KPiArICogU1VDSCBEQU1B
R0UuDQo+ICsgKi8NCj4gKw0KPiArI2lmbmRlZiBfX1hFTkFHRU5UX1NFUlZJQ0VfSF9fDQo+ICsj
ZGVmaW5lIF9fWEVOQUdFTlRfU0VSVklDRV9IX18NCj4gKw0KPiArI2luY2x1ZGUgPHZlcnNpb24u
aD4NCj4gKw0KPiArI2RlZmluZSBTVkNfTkFNRSAieGVuc3ZjIg0KPiArI2RlZmluZSBTVkNfRElT
UExBWU5BTUUgUFJPRFVDVF9OQU1FX1NUUiAjIyAiSW50ZXJmYWNlIFNlcnZpY2UiDQo+ICsjZGVm
aW5lIFNWQ19ERVNDICJNb25pdG9ycyBhbmQgcHJvdmlkZXMgdmFyaW91cyBtZXRyaWNzIHRvIFhl
blN0b3JlIg0KPiArDQo+ICtjbGFzcyBDWGVuQWdlbnQNCj4gK3sNCj4gK3B1YmxpYzogLy8gc3Rh
dGljcw0KPiArICAgIHN0YXRpYyB2b2lkIExvZyhjb25zdCBjaGFyKiBmbXQsIC4uLik7DQo+ICsN
Cj4gKyAgICBzdGF0aWMgaW50IFNlcnZpY2VJbnN0YWxsKCk7DQo+ICsgICAgc3RhdGljIGludCBT
ZXJ2aWNlVW5pbnN0YWxsKCk7DQo+ICsgICAgc3RhdGljIGludCBTZXJ2aWNlRW50cnkoKTsNCj4g
Kw0KPiArICAgIHN0YXRpYyB2b2lkIFdJTkFQSSBTZXJ2aWNlTWFpbihpbnQgYXJnYywgY2hhcioq
IGFyZ3YpOw0KPiArICAgIHN0YXRpYyBEV09SRCBXSU5BUEkgU2VydmljZUNvbnRyb2xIYW5kbGVy
RXgoRFdPUkQsIERXT1JELA0KPiBMUFZPSUQsIExQVk9JRCk7DQo+ICsNCj4gK3B1YmxpYzogLy8g
Y3Rvci9kdG9yDQo+ICsgICAgQ1hlbkFnZW50KCk7DQo+ICsgICAgfkNYZW5BZ2VudCgpOw0KPiAr
DQo+ICtwcml2YXRlOiAvLyBzZXJ2aWNlIGV2ZW50cw0KPiArICAgIHZvaWQgT25TZXJ2aWNlU3Rh
cnQoKTsNCj4gKyAgICB2b2lkIE9uU2VydmljZVN0b3AoKTsNCj4gKyAgICB2b2lkIE9uRGV2aWNl
RXZlbnQoRFdPUkQsIExQVk9JRCk7DQo+ICsgICAgYm9vbCBTZXJ2aWNlTWFpbkxvb3AoKTsNCj4g
Kw0KPiArcHJpdmF0ZTogLy8gc2VydmljZSBzdXBwb3J0DQo+ICsgICAgdm9pZCBTZXRTZXJ2aWNl
U3RhdHVzKERXT1JEIHN0YXRlLCBEV09SRCBleGl0ID0gMCwgRFdPUkQgaGludCA9IDApOw0KPiAr
ICAgIHZvaWQgV0lOQVBJIF9fU2VydmljZU1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KTsNCj4g
KyAgICBEV09SRCBXSU5BUEkgX19TZXJ2aWNlQ29udHJvbEhhbmRsZXJFeChEV09SRCwgRFdPUkQs
IExQVk9JRCwNCj4gTFBWT0lEKTsNCj4gKw0KPiArICAgIFNFUlZJQ0VfU1RBVFVTICAgICAgICAg
IG1fc3RhdHVzOw0KPiArICAgIFNFUlZJQ0VfU1RBVFVTX0hBTkRMRSAgIG1faGFuZGxlOw0KPiAr
ICAgIEhBTkRMRSAgICAgICAgICAgICAgICAgIG1fZXZ0bG9nOw0KPiArICAgIEhBTkRMRSAgICAg
ICAgICAgICAgICAgIG1fc3ZjX3N0b3A7DQo+ICt9Ow0KPiArDQo+ICsjZW5kaWYNCj4gZGlmZiAt
LWdpdCBhL3NyYy94ZW5hZ2VudC94ZW4uaWNvIGIvc3JjL3hlbmFnZW50L3hlbi5pY28NCj4gbmV3
IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXgNCj4gMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uODQ0Yzk5M2JhMjkwZTUwNTVhODkwMGNhODcNCj4gODZlYTBlMDMxMTM4
YTYNCj4gR0lUIGJpbmFyeSBwYXRjaA0KPiBsaXRlcmFsIDI1MjE0DQo+IHpjbWVIdjMwemdoYH1l
UmZEeXhicCVMUFAwUCpEJjtLdXwhKkM3MENQJTYmS1lsKipGSzU+M1NvMT5FO0ZfWA0KPiBUJH0N
Cj4genZfI3l1KG8jZm94MiU0Wm1ITkVUY2d7Sk5kb04oeHJ7RFgmfElmZUNAMHBvcm9eOTRNWFVA
M0BWSjdUDQo+IEVYczhwJQ0KPiB6bVNUWGw1T2FrUEktUWNnVj1seHFyYTN0JmA5TCF2WnJLVXU3
dEMpZik7SXteUCE5WlItZDJkNj8lLUdRMUZWRjINCj4geihedW95aThjTzA5MVlPO0luUjdVVFdT
MHtGfkN4WSU1TXIwJFVkK00oU3JmTTVLQCYkcmowTURUKiNFdg0KPiBSMytqbw0KPiB6Q21FP0NI
I2U2SE5kNlpATkhPPnlOVnhvRXVvKmtINnJRblRRX3xBTGp2YTFYV0hVQWBaREx8I1RHDQo+IH1M
SW5VdTd8DQo+IHojRmhtR2lIWFQraDd2WHQ2QVA0KG1wR3xkbFRDXzdFLQ0KPiAxKUxGNG1NWGsj
JVN4UHBgP3dranpGak8kSiZabCRXZlMNCj4gekhldUhiKmk2KF50OHQjOUQ1YSRkeStBNHxwKzsz
eUxKZURucUxofVd4Vj5wQWwlPVopQ31RPVhLVn51KjUNCj4gV0BofQ0KPiB6WGFhZ1ZFMFhGfTBZ
cD41dWhGSFpzZTFOZXgrSkEqPzhTNWBwalFMQlQzWk5ra2xzaiN2e3EwR3EqV3VqdGRydA0KPiBS
DQo+IHpEZkUoaDZuOyUwZEFRYldVI2Y8czElMTdnQ2V3UlZPcWNBXkNrUGJOUVAoRiohKllRc1Q/
KCpJT2pqeF8pDQo+IHZ5OXANCj4gemxpRHdlKWhBMz55OWpqNlFCYyhZSEI0YCo8K1Y2YjRqYEBO
R14qQGdETnN6MkRYRkZ1TVQjMnN3MEtzNFUNCj4gbU1TKw0KPiB6bU5qLTNGbSRQU3pLRjhzN2kt
DQo+IGM/N3xsbzRSUW1pQ1d6QmFYTj8jdV4kQm93JHJNc35mSiZzZT5Cdzs0dyQzbnptDQo+IHpq
ZH49Nkh7d0RlOTEqN3FWUyQpNm5lcFdyJEgrV0VKWUVQRVc1TUU+I2FWJDZnQF8lQzw2UHV6Z3cN
Cj4gV3p0PFNsczMNCj4gentFSGFIeWRXIyNJZExqRFVPLTxpX3plNmdNQmN6cCY0MUgrWTR6M1cm
cktsUEwqRzhFTlZiPk9lcC0NCj4gOHkrUC1SZw0KPiB6PDM2S2YjNTEofWpOcDQtPV48NVZBaWwz
fmlveVJ0Oz4rSz0mbHJ5ZDh8OXdEbnc1fkUrKUlZNSp8OEg3VGpDeHYNCj4gek5nPiN6YVNrQ19Q
UDV8YXAtDQo+IGM+ZWQ3MXxYKTRidWRsPE9fZXtpeXs3eWI/QFIqOSN0K1E/Vmp3Pmp4KHZWPEZK
Ow0KPiB6TlQqMzVIWHprODBtWWMlR0xQaiVVQzxTQz1fVGBXMn5fI3pHNlZzMkohRSFQcTRAKmY8
ZUR+Pj9WJm4NCj4gY181XyM1DQo+IHpZTSQ5eW1UZ1l0M1kqbGdNRXk8TSE/Z1dgWTVOTTNfUSRG
cUBBWD4kQFhWSGIwPTJzazc1NlYlTQ0KPiBoPn1EMyFkSSkNCj4geiNOJjU3aDlyaChBckRtYG1q
ek9KKSkrITR2a2Z5JTU1c2IjYjZLdVgpZDc5YjM7bEFhIXlZZCE4MFN0NTlZWSlFDQo+IHpzaGxv
N3ErKVBtVUBIK3tJcilPKW9hPkFodV5GQTEqbytnU1RrPzJtQ1R1dzMjQmVQaGVkPSpSYGpkaVlx
DQo+IFlMT1UNCj4gel9hZXZLa3ArbUVBWTw5dnBnJWM5UT00Z1dUQ0N+UytkKjVpeHlNLQ0KPiBS
WTxPTTYrUVRnZGxvaG1jQEluVCUjYHtpTg0KPiB6TVU/bHVgaz9nITZaJGRVc15UTDBnQHVXSnty
WlhWPEh3NkI5enZ4MVNjIUNoZG9qbilPdzExdVZuTUxBJA0KPiBmI0xDDQo+IHpPYj5EdnZ1anJw
KTlaU1BgRV59SFdgdmhtUlpFRHFiJWZZWlNCTmQpTGdZbDVpSHo4cVZwQyZSaz0tDQo+IG1wOTc/
YmgNCj4gemBSKGpRUTlCe2RfSTQzaCMjUit5eWNJNGN3ezl3eWJ4MDY3ITx2Yjh7a3c9UHchaSZA
KGMoc1c0Ukw+Nm4zeQ0KPiA+dw0KPiB6Tz1NK2RpS1I9SWlkQ3l0aU00Q2ppajVtTGlydT8raXZ0
R15oeXBJVmtoNFJzVFN0IWA2fn5TcDZETGxiNVR7UnsNCj4gejdVJDJPN2hpdzx3WVlscXM8PzZF
aFBaWD5tYmlRT3U2WGReZiV4JnFBSF5AZnszM3E7e2RlKX5uT3VHSw0KPiBQNGpRIQ0KPiB6LXht
MWEmO3E9WXwzOWR2bHxIPEhhcG55UzM9SERINW9ldyYhc1Y3aHs9Vk1jbypve2Etcm0wY0w2Ki0N
Cj4gR3Y5YiZhDQo+IHpeITQocDV1azx8VVlAPnpBKG15PlZCTzVFWEk1bHRjPS0NCj4gbWhqWiha
flBmQm5AaDklZ201KDJFOytlRWtPUmUrWl8NCj4gem49bGJ6Y0lpcnU1YGl0JEBINz0qYzI1SU5G
QnVGN0NJVnBoTGIxWVZlM2YpIzBqblR5am1PZ0BYbXN6Tzt3bzQNCj4gTA0KPiB6YGckXjU7akNz
OTZkRFNCMTJxQm1ya2JTZElqaFFgJm5rdWJJPHh2fW8oJnR1JGJTdWs2PXVISGklfilwMVU7K2kN
Cj4gejRPaihNV2tTM2I+WmsoMjhpRGhXc0ghPy0NCj4gVyQ3ejk7PFdPcCR9K15MY34haD5Sbj5y
MVAhJVJJaShWaW1tfi1KTw0KPiB6ZHo+UThFTEReeXZocjZiZUFPKChoZzg8UVFRME1uS1UmRGoo
eXgqfT1taT5SI2BIeTtASXd1KDAofWY8OA0KPiBrOzYpDQo+IHpQKmthc2tJRy1zRmxkfUlqeCNL
JnNQRzM+YVd4N0MwI1FaPHVDbF5iS2B0Z2lZc21RYzVSKCEjUClZdWZWaGVTUQ0KPiB6MXImWktk
KmV7N0tSJipKVlVkJk00fEtQO211bDNhMkYyPCo2JSEwSCVJKXBsbUcpdSZhdlc2bEkhNWZBMg0K
PiB8PEFADQo+IHpTTldeayoqUzZFJldgREpgaEs8M2NTWDNwb3QtU05FPVFiSUFvRHZwbUE2OSgq
MF8rLQ0KPiBFWDQlZG0zTU5vdnk8JUgNCj4gektuYH0hJk1lQC0NCj4gZGJHTk55O3ZZRm09KVNO
c04qZUFYWUs2Zj9DanYrUChEZ2s4RTBjPlhVb3RtI01nNm53JD5eNw0KPiB6Yz80Tkl5U3FjOHAy
bHUlWEpjYitWYEYyaHhmZFZoWV59MDB6c3x3TyRLNmZaczhGR1RvdnAyMTFzakh+RSQxOA0KPiBA
DQo+IHpvU29nPSs8aHUmPlVsJjVURCR3SDV7P2NJJSVsWWUyUzxoNSRLNl4jLQ0KPiAoa1NmJnJn
d1hiOU9XZ3RlU1FFYDF2e04NCj4geilubT5DeCV2M31MJlRqY1ZpLTZOWmh2PC0NCj4gckUhI0ht
cHlYeV5YQzh+a2tKQz9uMz9JMCNvaj1LMT5GMlhBcHQ4OA0KPiB6bDdXKjcmQ1FyeTY5XjRlV0Yo
ViVWVllrRmJ9NjlxPDEjSnlZWUFyOG5RQipEM2V2Z3oqRzE1P0JJRUMtDQo+IEVBNCo3DQo+IHo3
V2xAaU5xYFh7KVpibCkrcHk5c3JkT150X2teeGBYbFVLfl8xUXt3JklGZGBpemJNaGRyK1h4IW91
OWwlLXE2NA0KPiB6JEM+QmR1VnBufVc8UXxWVlU9cG8+PjlATWQ2dV85I2N7NDl3bmcrekp6c2dH
bz9qS0o9VTF1eE5RaVANCj4gKWc3WWdwDQo+IHpJcEYrQ3A1dClMJiNkek5pcEF2bGxAPUV3QDIj
RndAd3JlZ0AmPDcjXjhEOyg4aVMxVUNtSF5NSTJEUg0KPiBZdjZCbkINCj4gemZqP1RsNU9ucml0
QWBlQV8wO09Fd0Y1VlNhO30lRXdvez9uWlkmdGJoNUJ8U3JKZURkcyQ7fTZARSU0Nk9DXiQNCj4g
NQ0KPiB6Z1hoI2FvfFltYiRWRnVFXlhCNDZQcThvRE82K1Y8TEZ8c082VDZ9dSNreiktDQo+ICNo
TTBII0V4aUpGfStiT2FWWE1LDQo+IHo5RS02TzJiI0V3VTVWYWVTJHVWfGBxZXNPWFMzPWVyJldt
OUA+Kz00KUdrYD1jfEEmO1ktDQo+IH1hWUhuUzBEbFdvUHQNCj4gekh1bUQlSGpkJi1TNFdaRyso
cVFJX1l4TzZ4UWNKdkl4KT5qb2JLUSQ5PCgkUWc+NDxoP1hLbS0tDQo+IDdmYXhEbkhXfQ0KPiB6
NHM7ZHcyRHlsdlcyJVZ6P15ZNHstR2p4eEh7IStLeDRNZHshfV5LQyEoSkRra00xdD0jYFkzPD8r
cC1sUWEhfSYNCj4gems5NllCQ3B6KDlNc0BMRWV6Mz8tDQo+IGVNQH10O2MjKGMrNlE5QmoyVUE2
YHRAU2RyY0drPT1GTVd+Jllral5fc3BEJA0KPiB6OyV3JCphZW1QWmFkR0ohQHp1JktgVFUhZ21u
WTdoSkV3b3t7cE9vKiNQI2RmI2RxSSpDIWMlMnxOaUBiDQo+IHBMLTM0DQo+IHoqMXlVQjg3PVRu
S2N+alpQKTZOalY/JTVDU0ZpNDBEPk9FP0J1aXxsUGU5RigyOWMyc0xUVXpoZ3FtezFgcWdMPA0K
PiB6cjRKMVB7RVFpNWVJZz1kaCpGfStgYVhzWHZIdFpWajYjRW1gWDBwJHZBVzw9Zj0qK0leJHo0
NHNDLQ0KPiBuJE1GdTdXDQo+IHpkYURlZjktZUl4VEtuUkckK3ZNazRzQUsqNWh8LTA+JXxXXz9Q
WHwkPU4qfHNxTURhZjViS1U3OC0NCj4gKmRjWVNxP0ENCj4gendVYWI9U3NxJE4yOEUkanZNZzNl
UmJVe3Q1XnBlTlAmamJhRDN3QDJFYnNLeHBmUEI5MlM9MVVTWG90Mg0KPiB8RkBESA0KPiB6P1g7
fHcxSW1rd3QoNVppP0hnJHZDQC0NCj4gZ08wJkp8TFomRjNGcX1ofjF4ZU09S1dvUlVlWX47MUlx
X31YbzIoYDdnDQo+IHpFQHh3SC1CPWJfVFUqUHhUX2FBKDI4YHVCSjM+M3ErYVY8eCtCWXItDQo+
IF49dHNVY3FnYVV2Um8jZTZvd1hkdlJzNl4NCj4gejhhKyt2R3A8VmloKilSMCtOQV9IWEdOU1hJ
QWYxeTh1WjAqcDxZOWk1TjVBUU9DSyVrQl5aVHBPVCVLDQo+IDtWQnk+Xw0KPiB6Q0x5VjV2IStk
KENkTmNOVE5vRUpMI1ZsUDx2UChaRzB9QUBKRFpvN0E4M2N6KERLO3RsYG5PRSEzJDxWa1YqWQ0K
PiBUDQo+IHoqYE0rQ1E1O2RLam9lMT8tDQo+IGgrNF9HWDQ+N0VlZCY/ayptQ1dhN15XYGhYJGVT
cDBJTj1mPnc/PVNDdVBkOW5ifXgNCj4geiZASCFzWXpzRUFQak89QzgyV3QqXzlqe3wqciZ7ez1f
cHBseHs3NXs5JTVxP1o/VWJKbj5mKE1MK3ROZFAzJg0KPiBwbQ0KPiB6RTRIPy0NCj4gQyUpe2M2
RFBYKml1fjZETVNpQ2A7PX4ofjsoVUp9YWVreil4SDdefFRwdzNNOVBYSllQN1gqR1haa2h+DQo+
IHo9U0lGSj90TDAwX1V6ZHM0ancheEBBSD1+VTZTfHBoWXVmJHBNVTtZe1FCIyF8REk9U3txYi0N
Cj4gN1p3dmZpWlVPeTENCj4geiNZX2d4eHx4fWNsYmY1OWpoVjdzbjM9bU1NLQ0KPiBERkxhP0xP
PUtDfVlDakVefDk7QWtleXRRQF8pdDIjUW1kd2NXMg0KPiB6aEx4Rl93UFFKKiZlUHBuPVV2WFJv
VkElNSZYI2w+eW04QzFTTXVkTmItSFM1LW5NLQ0KPiBDXjZwXnA8Yjx1Nm5JI3tsDQo+IHo9eVpW
MnlARGtoOzNGNjxSRGdZcDt6S3xTPjdZZUw8d1VaZyVyYnxXb29uVUZ1NkFaOW1CRkNDYz13Mg0K
PiBSa2Ehb0YNCj4geiRfemtSS2BSRkBXRlUpbTdCez5lM15TcVFFOT54PShMWndHQlAoLQ0KPiA7
Q0J1ZU1vPjdWNiQ/IyhZRm1SeFZWPnwkOQ0KPiB6JmA8XipASW5UJSZ7NV9XN1hPSHwyMTtPeVZh
MCViSCU0X3ZUfUFAcWJ3KTJuS2dMTUxKMVVSezRRMQ0KPiBjfkZKdkdLDQo+IHo5bmJ9eHxGd0VS
SHY/QDJUa2VieU1seiQ8dEZPS351Uz1JTVUlY19nODwhWkRkLQ0KPiB2fUJXOGMxZ3A4JVp4c2F2
O2gNCj4gei0NCj4gIWxENT1neXJed3JiVUNIT3FYJGNvKHRePXp1UWhnemtVNUtVayopMUlNNV5p
d3xObj1STW5FX1VRdEE5NQ0KPiBHX1YNCj4geigrTHdNSmV4ZHV2YyNNQGIwfEFJVExOaX40aiVC
YiV1fXdAUm87Wj51JnpsQV5pT2pKYmkpUjBTcn5OdC0NCj4gJTdGJA0KPiB6R1h+bmpmdVVvPnYp
fVclT0BHalFoSldqKHF8bHlzSjV2NmpGcDB9dVQhYFAjT0NZViQhMkAyJVhtI247dEoNCj4gbHc1
DQo+IHprRy1zVkdHajFvYUxfU2U2U2tpLV5VSk9sJVZFND1PZ2J8SCp2NU4zZC1nMVotfDZZOyZ6
OC0NCj4gYU90fllIPSpwbX4NCj4gemJaZE15eDtybkI/eXNzIzQ+dzI5X2RCQktgPCFUcmhuIy0N
Cj4gNkRUM349NDVobW4wZCh2QXMmcis1eU9mMHY9emBBZg0KPiB6LQ0KPiBNaW15KnxPekV3bCNy
KUlmRDVQK2I9eVlTTyZnaFpOTkdhIWhPQUtAWmlCdUZiPFpvJXxtMDc9dGhiZy0NCj4gTl84MQ0K
PiB6Mk9IfHMhfG0pTns2eEdCaCV8digxfEJZZHVzKXBiV0NUKnQ9dF58eD9JZU91PXc9JkZkNSla
Q25eUEhtDQo+IFY0REZTDQo+IHo7TDhpbVpSVyQ2TDdnRU4jX2UoZj9TbnF3S1JrJkZNXj5XU2JB
I3dVYHx5QzxefSRCUVhaN2htejsoSTUNCj4gQXpZVEINCj4gelRvMkd0I3lzR2FHVSRgRlZSVTs9
MDlfbUVEc3tzS1k7aypDVzgxU0JCajV1QXpRQ3V5OTgxaURHM1ZULQ0KPiBPYDllPg0KPiB6Jkw0
fiZKTkRfKW5VZzkxP2ZQYCVWOyRYSDkhbUd0Z3dlZkteJSE7Tz9nfTBrT3VNX1I0JjdaXmh3ZHo/
DQo+IE8/TVdYDQo+IHpmTjNhYEptNmhYU0lYWDcle297WVdRc29ZcUdPfSM2S3VnSTxeP3wtDQo+
IEVuIzAhMmxOQlJsSHJNRmlOVmsxU1o2U0ENCj4gejB7Wm1uYk1PODQtDQo+ICsjSjxePDVhXk5q
RTxBcXVVRT5OIzc5UG8qelFEdlYhVD55cWZlS19zNGcwMF9uVGlmcGx8TA0KPiB6ME50RXYwO1p1
JUAtDQo+IFhrTSUkanM3SjZQKF8+cyR+Kk1VI0IjIVhPV1YmMmkoI0p3cU1YN3hWK2g2Nk9QWkR8
S0NCDQo+IHpJPnRRS0VuU1p1SkBVezcmfnQ5RUN0WGtUckpFVCs1O3RaQSh2MkFiUjVhYjZpYXhE
USpDK2M/O1VwZ197RnBJDQo+IE8NCj4gek43cDhKKTNweClGQlAwLQ0KPiA4cF48UG9xZEUxV1Q2
QVBabGQxTUtQTzE/b0VAT2wwWTBjPjNHKUdTVEV+RW9DRlRPdA0KPiB6Rm01WEljd2RiJTI7V2Nq
dHchSWJkUXN0Jj5JJTNYKkN6VlZScmNATzQ/TzljX2RNdUkzYT0rKS0NCj4gMEFZQERzKntODQo+
IHo3NWFMRjgrfD56YXhxNDVuclNFbDR8dVA8UTtvaEU9Zk9JPnFeQGhJSkx9ZiRlRVlzOW8kT3N6
XzUqeFQ9a3heag0KPiB6NCp+WkZxakFKfXcwLSRib2pTZGFicTRiJmNXXmo7I1d1ZWc/P3ZDUm9o
JDY/PCpgLQ0KPiBpPihURD83NWo1KFhsMSVNDQo+IHp4RlRIYDs3YUhGeHpQRE8mVUNKfjZQQGVu
TmF1UE8wQ3xBUnp5bl4kVHBWMFU+VlBpanlxcj1eK0pHKEsoDQo+IHJgRCoNCj4gejlUWUNfNjxD
K2x3SDViPUFvdlFPd0YkcyEleCFtYHVWPUIyWjZCT09YTD5yKHJJR0g4RHMqdn04PVlyKz0NCj4g
TFNAeQ0KPiB6dndkQ1lPZk0lby0NCj4gUUFIK2Iqbig5eHxGQXJveXlWNGpeKmU/MllXajRucUJH
T0dWcCpHR0xWSWl2JVE/OSZockRnDQo+IHpFcndLKndxVzwtaCReeGl6UThCa0FLMXNxNEJWJSYq
TzBIaklGQGJDPDgxaUlrdDNmaG8tDQo+IHZ2NytMb3RQOVYqbEUNCj4gel9MWFRfK2UpO3d3SlIt
DQo+IGM9fFc0SUpKYUgxQ3RCM2hrcnBMNyhCZ3kmYmc7UHtlYzk1UXpIR3MwWmJlX2JRVzhnKg0K
PiB6d20haip2ZzY3dFhrM0FeOCN+Wl4qMENWVGtycDsleXt0UjhPR1BAPmdXSU1Md145RiFiZiZL
PjwrcmdWDQo+IF89SXQhDQo+IHotDQo+IGx3dEd6PE1QNmZNYmslSChxYVU7YTwzUFAhYipNUD1P
QW1eYGFZdipYWmBgK2h5WUImNl9sRFkoTHIlWEcNCj4gQDBADQo+IHpFYT53bD1BfmtEeWU7a0J4
UTYoZnlFMVg8PXpqWFZMcSQ2RlN+PCReU2V9a3xhaUReKGomIVZqSWY3NXtPPGoqQg0KPiB6dkFA
eyFWYyFiaFpGbkN4MnlNVEo+dl8xVDYmLQ0KPiBDP2oqaG5GeyhkSyF7JlYqUkBwcGFuP0NEY15i
YzkjfjJ2N2R9DQo+IHpsZVZ1fEs9WSE/KTRvUkxiZys/YDUleEIrcGppWGpPRnItDQo+ICQlNCN9
KWB7QFZEPm01cG1uXzFFNCYyMT5KcjdheksNCj4geilzRnFKbXdwXmR2THlKWF81dD5NeSVeUXVK
RUpfO1l2KUhGZWVgcmctDQo+IHozVXlZRTZlJiREdzIhbkxnNmxrOFlqRg0KPiB6RXpeSV5wS35Y
VSkxKmU4dkBfYkFfQ15hbXJwSCNIaFkjK1Rra3soK2wtDQo+IHJ7cXdIeGheR3A3VE1FJEJjS09G
RWNuDQo+IHpyVEQ9PHo/WHdiUnNgUiQ9aV9tSG0zX3dFeURvZlpSTmArJXxHPThGdm5rKWw2UmM8
LQ0KPiAoQWJqcCMjenVGWm9ocF4NCj4gej9DSHxWWTVGI1Y/YjU9N2B9Yio1cnYleSVWTD5eT2Y+
dVVZUXtMXyFyTGpzSGB0ezw8OE1NMmg4U1JjJXVxDQo+IFZiYA0KPiB6K0p0VFJBYm53ZmJ+ZGRq
KkNPbl8qPUlhSUIqNkVzVUF3LUR2OW59aTNoaihDcnlUWS0NCj4gQyZxJHlhWGFwNlh3RWI8DQo+
IHorOE4yPHZpeHlmPSRBKGlPTjs/KzkzWCFEK2kkZXMhPyRUfXMxP2xeKDIzQiNTfDduX0VlK3FW
OUAkSH47Pnl2RQ0KPiB6MjB9dkdrKyNnRlpUSjlSYSQrcntlZldxbXEmQEBUZSYpJHpDa3RhfDx5
IyRUVFo5PkhZb0cjWSNANzB4DQo+IDd+ejhVDQo+IHpjZGtQWnViZU0pSml0SHJkXzM8RUpeSkIk
ckpkQ304MmJPaXRzOWluTj1JOCtyeWQ1anElUzdeeig8VEJKamIhYA0KPiB6bTstKmk9NU5GTHh+
NC0NCj4gSVo0TlZ8JkVicU5MN05Pd2tNam9EN1V4NyljQzM9flN+fmNXbXB9amJvJVopakZ3JHdM
DQo+IHotX1NPRVFHN0JaX3l9THxFWHV5KWN7K2dvLQ0KPiB2UWRIX0Y9QHxKaWpuTDMkdmkoUSVC
Uzl6eTEyJHpBJFdhRSZjaUENCj4gemt1UGs9Jj9vb15Vd0lDSCVmOEZ8ME1DYWFwMWFSaE40cFN6
eEJiJUMqRWZNNC1uZ2I7Vj07YS0NCj4gS1RYcFpeTFo7Vw0KPiB6WD5DMnJtJG4xbjszTCk8WnU2
aG1mMUdYOTtrRDs/Slp0bEo9WUpkUDs7WWQ0eTw3ZnJKaS01MiF+NCpAVEdvSHQNCj4gejdKUzgt
ZnZOdz9nOVJCTyNFZ34kcnUwKHMlUjxjUSF7IWxrZUtsPSEpNHVyZ2szVlJgezB5MnspMUg8RnxB
cWNpDQo+IHo+PksjNmppMmluS1pfJUhlLWs3bW1Jai0lWlVzd2Zudm91QXh5RlpoRj1KZXZOXzRh
NnhfKWdtXiUtDQo+ID9DdD1ILU4NCj4gekZEV0o1bE5KUC0NCj4gPitNUnQyS0x+Q3c1ezVPa0x2
ak9rPXRMSnpnc1hUN1BKYlpnI2tpaGFaTzdDN1MqKCVNWFZvSw0KPiB6Ny0NCj4gJmB1bEBJKE0x
PXtta2QwM0E1bSVaU0FfZCl4bkclTFdPU1UyMHpZKWJwPWdYUn19Uk0oJSY/N3YoO2RFDQo+IGQ0
UA0KPiB6dn1gV1J0fDI1QSowUUNBQXZWT24pOE97OHIxP1A+RyhYVD5CMElwMEcpJTMqYF54TiQ1
XlpiUHt0cz9HemgNCj4gQyV3DQo+IHo2RXkkaF9ofns2VGduYnA/WFclQW1HOz5PJWBmPDxgaFNX
Mm0tDQo+IGpFOCVkPkkrJUllcFY9MmFJRzNxeUhkVGYwMlgNCj4gejU4KnY7TyZpSnp3NCRzNE9V
bVNTJUIqMjdHMFdlQXJWWj0mKyViUm8kTl5keT9uKHVgPH4pNyFNMFN0DQo+IHFTT083Yw0KPiB6
aGo7SSEoSUomK1pVRWIyZCQwQHBeSnxzVWB2bzZ5fEg0QCVgIUR3b2Q/cHBvYC0NCj4gZVpYUXUk
b1dTNGI/WlV6ejZEDQo+IHpiKkFqdjR3TXlBby0lOU4oWSF6I24jPTd5KldaJDYpdiU8TFNFQWBS
LQ0KPiBZYis5ZSFPPnc3UlVRWmVIbVFXeXtTWCMNCj4gelBqMmg3MEBrTFJIO1UtKCMwWipFdnop
WT5VQl4tU3E0QDxMdjQ2bU1FQm1rUS0NCj4gKXlqa1ZoKyEkP0xzcWtmKSspMg0KPiB6KCEkN1Vs
d0dlOVchNzx+Y185dW9tdnY/WStSPCQ4PVRUdWtib2I2fT41Nkg0QjlBQHcjKF5EYXJqTUJzDQo+
IEh1aD5vDQo+IHpLUj51PEd+U0BaUHspNk17K1h0WTk4OTBvc3pfT0VLUmN8bF5hO0xVP3k3NjI7
cmBpQD1mR3plTCRmPDEoUjQ0DQo+IEsNCj4geiFfaHZwcTtWaUVpMU1iYWFDZSRsbS0NCj4gYGor
SDYxNz14SDZxVGIrVzh4bD1weG0zdWpUZnVPKzRYU2RfcSRXXyg2Ow0KPiB6YFFtZiQ2O0Y2UFpD
fF5KLQ0KPiBWT0pxZEVyJjFQdykrNjJXUTZJX0orP2Q8fiM/d1U8X3FXb2xLdjQyK0NeVU1KcmxI
DQo+IHooMn1JdXY+P2BCPUk0ZDZvLWh4fVMrfE9Re3JSVjJ7UFpMSllKalc5em8zfmxvb0pmUSRf
VWVhdFZ6T2AkMDYoYg0KPiB6PmNCMkpwMEYxeDN6eUVIcWp3VmBYb3t5OSE4ZVFAb09gcVhgc1lW
SCEqa3c+YHtmIyooUHAkeXFNMEdDdzUNCj4gQyVjDQo+IHp0JFp6eG1iUXFYMSZ4QyNFNG4oKGpx
OygpbT5RSkg+M0xEVUcmZlI1ezAkI3YpYzJxe1ZieTRNSiREfHYmTg0KPiBRdk0NCj4genl+ST5N
SkFHUXh7TDlodzhzI1pIKDFCKzFfP1hYbjdiZSFgPWpwb3FZI21PXlQxQz9HSHFvQFFlTFN0ew0K
PiAodX4lOw0KPiB6KFNsfTJgVmY0QVpge3M1dSYra1hAMmRZc2Vla2g2LQ0KPiBeV0A7KGZTXihY
PzIlbVRKYyZ1RXFiTHNLWFpyQnl5ek5+DQo+IHo1JFF7Rj5VLQ0KPiAweXk0N2Ujb2htZT1SJUo+
THUxTTJeVHFMRmlhdmNKPTQ+V0xJRCszPytBcVJRcmZ4Z1VgMEk3ZEwNCj4gelFlOWZzSSkrd3RZ
RCRaZSF3SjNed0VjWWN6cl57OFNfZXorZ0NrZzlyP3BGPlM+WmFgR15pX1c5TUdCOF9rTg0KPiA5
NQ0KPiB6Y1dYJlkrczR5XjxPc0BZUWl0WD4zWnsmUDBXYGFUQUkrLQ0KPiBvTG9ANG4oVHV2RGxw
YjEqKCg2PX1tfG9qbXA5VVN9DQo+IHotDQo+IH4mSjhBUCtzekhAfDUoRXEqbklSKDVKOD9RUTdP
TEdyPkVfPUt+Ml84cDxiYElYaU97NENSRyRkRG07bVZCDQo+IDFoDQo+IHpJRSlzKCtLNl8oXkE+
RiMpc0hwfT19em5XYil3YTh3eE1PKnA5QD5ZNWRXVCNHODV8MitfPjc1NWdTNXQNCj4gcUp3QzUN
Cj4geiEkNnVINitwOGhZdl9TST1xTHZ0XyNwQFIxPGYxTWxEM1UkV3RTR1R1MWBtNDJsZmBXaCRp
QGVIM3cmRWMNCj4gPmxuQA0KPiB6PmxrKG57bi1fSyo4PFptY3I4bERUJVB5b1dKO14rT0tiYlFQ
SjJJb2s4KGEzUDF7cjZxQWVyKSk1Zj1ZKHo/RSMNCj4gelgrX3NwWC1TNz53NGhaUyYySkd5Uzs8
azkqfFkmPUNQbVBeI1FKKDU0PzQ9aDJtWnpGNUB+cy0NCj4gN1BQdSZkLWBsfQ0KPiB6Y2N+WnBW
UHtxTWJ+R3V9aHV7T3xFYnNTc3YyVntremNyYD4jP2t0ZWwkMVpgdmkjS08rTyU8NFVwbUMrcTUN
Cj4gRyN5DQo+IHpwZ2tYdHFueTtTd0VmKT93Ql94PXZ9dCVoVDBme2V0P3UyNFI9bkFjbVVaRGV6
MjFUcndAOz07dVFpa0w7dHNGDQo+IFMNCj4geihvUVhEZEFCeVNzeihQfStySnhhOU5JXzlMbDUq
cEZaNkYxKHZ6ayh0Vk9WbV5JTj1zVkJmTGN7Tj8jTT5jRCoNCj4gUg0KPiB6e1JQJHxLMGtpfkop
ZyNlKHF8KzMpMGQwMD10JVojSS1EX2A0eUxFa0tHZiV2ND04OEN5Uj44Yzd9YEU9Nm01TkgNCj4g
eklCaVdDTXE5PVhyN2RIKXpjQHg3YmQtDQo+IFkre0Uma0BeZ3RpPFpzMG1paUxON2skSnNydkh4
Sm1LbXdKRHAqMT8/WA0KPiB6P1NuZEt7Vj0malZfTU94R2t2KXZuK256fXJ+S3VNV2N0WDB4JTdH
RkVJS3IySV8xdXFOKGEmPkd0eX1QXg0KPiBodmFUDQo+IHorOXh0YjkoMHQwNUIhaldGNmNwZVNA
KHtWKjFXTzQtRlkwfSEjZm9BfEUxbV44SF4peW1iSm9JIWhGRC17LQ0KPiBfMTcNCj4geiF8QEdo
K1hwRmhBIWo/QytwJmV0WjI2MiVaQ3BudSpSU1MhdClTenBtUW50U0JfI2tsJUUxU0kkZXI4MW5Z
DQo+IE88Nw0KPiB6SGNnTDxBbjMraSNkeWQyMmV5c3pqeHFEbkA5enhpQW01KjJQR2VvZEkraWhJ
R0N5bF5KclpNUig+dFQtDQo+ICNRSFVLDQo+IHo8IX4tDQo+IHRLNkhUWnNlOT90elRGWlJfdlZs
V2pmUWdZNzRZNipRXzNoeFBsJVNmcGNBXlcmVHpsNFd9a0hveWxjVnYNCj4gej0zbDxeKCk9d2VX
KnJ0LQ0KPiBUZSZaZXBmN01RZ3c2NDxCKzxDcXlqQ18ocSYzM14oY2JoPT17V20jWTUhaWojP015
KA0KPiB6KCludnYoJSRKKUJvQkJZMTZrO1JGNGw/bl5rP3pAZm89VWBAMj9IKCErSjVFRVV7T0B5
ZylzJD1mayo0ZT5hNg0KPiBiDQo+IHo+ZkRpMUJFdXkzSHwqNWtNbzF2NyhaS149ajEkUGhafD5W
JElKOy0NCj4gdnxGIVEyTn53bng+Y09AQCFgQHF+MyZzRnwNCj4gekl2SVJGcCNRRXdeQkwhQEk1
V24lSH5hMHp6JlkmUzlfTlBzeT1hPjQkXlBLajJHMmxUcFY/ZldPJm85DQo+IEd7PCk1Tg0KPiB6
MGh9JmsrNzhBeG9LQG55bTFWR3x6LUpvPCMoMWdzKC0tanRlfFNSdm9gZ1R4bHokJjNTTGxDdHFX
Xm1gPEpJNWcNCj4geiNIcWlfO3FReD5VSDtCUml3bHYqX2V6TlE0V3x+VEJGezVXaTs/flJJaSRp
bDFBbFhvSD5naGBAPzF9Py0NCj4gZFpldw0KPiB6JEhWTytmNSplXkI+eGheYz5lZWBtRExmKXhv
VyR6Zk5XPkEtDQo+IEhtXkBxaHNhVlIhJWJkX3dxTWRWQipBeWsmSjFLDQo+IHpiJk1oZ3NYIVZ1
bHR1bXgpejF9U29nKX1VXkhjaU0pKjtPKXplZmxhd3NXS2h0O3s1bDI1c3gkUnxxYGRoMEpyNg0K
PiB6ekNhPUM9bTFeV1dCYiMkP1ZSWHRTOWBpUSpvRSVEPVQ3KDJlQ1dZVWV+SjUoZWQrJFZzJnNG
TjMqQ0wNCj4gZ3AxeTdDDQo+IHpOUlV6ZT08b3VqTzBkQkheYmZ8Kz41Zzc+eUlWUUImKSpaPXBV
MjxpQFY1e1RtZWdVP1Ikfjc0TCNGdw0KPiA9M3pVSGUNCj4genlwVnh4YHVsSWdrQyRvLQ0KPiA9
M2tkTmJednxkKFV0Q2dxQCNRTTRafVZEN1VvXz9rUGBGdjlRT2ReSEphcSVAMF5nSQ0KPiB6dD89
SVkme09Kd0Y2YjsjJHg7YUxIRkhkVnk1OFFGWnU5cDZjUnVsPEpOI1hSakZDMTQlSn07UEopUDZI
YDh4PEwNCj4gemV+WjZgZkcrNiN0OUliPjQlNH5LRkwxcVleN2paZ2BDQUJtJS0+U1RHPUMjOzZC
ckFDI3hjcT9YbkItDQo+IHJkfFU+ZA0KPiB6Jjx6YDxSOWxqYHRtdHFEOWx0QkRMPGlyZnRWaXlm
TkxRa3gtN0Nebns9VlZiS3Z5YXBSOGl1WiU9NyM3Szl5KkgNCj4geng1XzFPcVBIN0s5e3g3ck5D
JDcmRkRsSkcoP2ByNUdrYDk0PG5JPXleclEjKD8kUXJHezl1RnxnOyF9Jkh+d35gDQo+IHozJX0j
KT1CVVN8dUZrWjFfSntRNyhJWD89e2pQe2s1M2E1N0AlIUAydVU4PTBmR3R4Vzs4JVZON3JNbW4N
Cj4gJDFnSXoNCj4gek5sQm56P2k3X2MzJldaMnFFVEhienFKRWg8b0Q+e1VEQm1LO2F0bHc7TFAj
Y3NYYi0NCj4gNilYQlZ2VloqY3lJM0dGWg0KPiB6P0UhUl8temxHYyNhNTNDVUEqYnhpMzI2aCkx
WjZUa19fNkI8VX43fklANjctDQo+IFJ9NCl7e19DSTNEV09tNVcqZXt0DQo+IHpuXzMlaWRmSjlK
Vig0VE9EPnw4QVpHPS0NCj4gej9ka2Y7RGYpOXNMcW5ITjlqRTxrNzgjT2NgcCRfJWJoMjNtTVBE
ZzgNCj4gelZHQX01PzYyRn16N2AjOFdKJm85I0smVVFTan1IfXc+PkBuUUYtDQo+IFREIWtfYCsk
MiZLdjs1RlozSip2RTNGWHYmNA0KPiB6P2QjVkFQOFNfYWFIUypCbUlgN0pUY3t7YkFNYWR+OSk1
TUlNMU5ASnBZcXg2O29kT0B2WUhOI14qWj8NCj4gKjA9NU80DQo+IHoyS0FASWtyczN+JTJKN3VF
KDNAN0pDfnk/dm93PU5AdVA/TFkwZkpsYlRJTy0NCj4gXnt7PjN4aE1oWWdBckNRZ3RkezUNCj4g
emJPQz56dCZIJmFAbmYxaHVvRz5NdXF7PHpaVWJ2Y0g/ZCF8RTdxMHZNY0J+M2BxczJ4amdkQ1F3
Z2BMTA0KPiB3S1RoZw0KPiB6V3l9WXxmYyVhbm5ZMWp6TmlRI1RMTjVjaE94bDBsbiUxR1RyLTdY
Y2R4SkQrWT9yWnM9WiZlWU40Ji0NCj4geXBEPlhBDQo+IHpgMUw9QUYzOXhQWEhVX0xNbjA1ZHE4
R048elR4PHJ3eG5ZdCU0ejZHeVBfUDU1bXx3REY/S1NoXkxnPQ0KPiB+SmlaSkENCj4gei0NCj4g
WCRDISpoMkNnPyVzJWd5amZeaUVZbTsjXmI8fCorPkV3RnNrJkpnWV9XYUFgND41eiZ3ekh1eE5f
VDZHeS0NCj4gVGQNCj4gejZOMmJ4SzFWa1VYb29ZfGxaPCV4dytXIztyO2U2ckJZWlFsPmVDNmRC
Qmx5fGdUd2JCdyNEfUs+a21kRGANCj4gZVN7eA0KPiB6OHw1VkZYamM8WUJ+SjlGWkI2fj9pLWp8
Jj0paExHZDJwTT1qUlZ7MEBgZ299KTZgZTtmP3ZiIzxtejtKVHtoaTANCj4gem1hRjAqI3xQPXc3
eURfPyUhI3hqKjJBZHApaFBoYEJjPWBTUHJGe0pMQXpmS3Exfi0NCj4gKChWb198V2c3OXpMWCRV
Pw0KPiB6K20tDQo+IEIzdW1NfHxVQmVoe3UpTUs5P2R7WiVAMXQ+YTtMWFBSXygxbjJebTBnJEA+
MGhlQHdCJWlwWn5MTioNCj4gZjZ3ZA0KPiB6bkM3dyRZNDQ3cSklPFNsXldtTjdATExffCgyKHxZ
Y3hjQyQjXiluQ09CcFNPUFV3YVdMenx7KUUqfip2DQo+IFNidGdADQo+IHo9fXZpWF9uYGE8IXhW
ZnRsPTVFISQwdkBFezZ8dUhPSV4/ai0NCj4gS08/UiVRTjQpRE1TMHlrfDswQU9YKjh6PTY+Pz4N
Cj4gem1AfD0lajJrRipLb0BrRFd+KGUzZTRYXnA3QEZJX283T2JxSVdTPWFvdFFxSiZTcClhXk5W
TmxIKUUNCj4gT2YpdjljWA0KPiB6T1JLV3o7PDV9YDF8SU9QWH5nZjhTUWF7N3dCRHdedSQrQVVO
TXJ4ISled3Aye0VsaktgJG57SFNVMzcmOyUNCj4gR1lsDQo+IHo+SEdZaCZJazB4TjI2JXAmfkNL
KHdIVzVuKGNFQWNmKCo7IUlxMTNsWkVDWiRKcDZ+UXc2X00oKVEmQUVvDQo+ICE/USsNCj4gejRz
eFhvRkd+cmVLfD5qTVJKJCtLKlFNRGppXmg4WUU2PDwkYnV8fSVSPmNDeEhxWlVkRjhqeCk3SnJS
WUtGdA0KPiA3Zg0KPiB6JWxQZHNZfmZGZzgyQGZwQ2xITGtxTCFvKm1wUT9YOSpoeDtiJk1odk5R
MzU0TGNvQmFeM1pgVTkmfjxgQQ0KPiBLalo7DQo+IHpRdnp3d3hFdl84NTFHRGhiJG1zLQ0KPiBL
QXhaUnJtJFFvS3BBK3pZaFlHRD1QSkkoNn1ge2oqfW5rNXRORnBQJDg3ZDENCj4genVlVDVYP3VZ
bDdqMD9tMz0qcjBJNXxAVG9yKCorc0J+QT1oPTt4Vi0NCj4gPHA5fU0rbXJiX2AwU0ROcFB3R2Ra
eVpoQA0KPiB6Kyh8aC0NCj4gMHtGWGVVOzZCVzkrSE17QUl7Q31DdXlLVmhVS1IqKSpXbz9OdkNg
SSh6JFVoPkRQTlY8an1kdGR5b3wpDQo+IHpjel51c0ZFVUBXWXE4YDM5ez9IMUdLIylALQ0KPiBH
QCRlXk9HcCg2SDUwXzl5R2ROZXxQIV85ZT1aaW8oSF47Vk9nTikNCj4gek5RZGZfLQ0KPiBecEso
QmMxdjg3MmtaTkFIdF4oPUl9YURRKHEyViRmKXdgX098cm52TEswTDlEbng3NyVCVmI8S082cQ0K
PiB6dEN3V0B7O2l2fHRaTzRaQTdvZndqO2w9eEk/Q0BIRHpVdE9KTHg8MkF7Vm5ocUdOQTFwZ1Vq
ZWt1PmEkUg0KPiA9K2NsDQo+IHpAP05oKWtZUmJXQU5xajQ8bWF7SFoke0RhKWMkbU8ob2l9emFX
SXxXSlclanZMcHReRzVJWGJlQ158RGANCj4gNnolV0wNCj4gej9AcllJISNMdmZofio3RT1uUWAm
YDYyKT5XSzcyM3k1LVNjYmFMUDtiWiU2OHsrXztWMzdgeC0NCj4gRU5lNz1IOWdTRA0KPiB6cGx4
bCE9PHtBbGJtOHF6NT1ldUZHVm9+cHJOdnpTUXVGcl98THZuZmdXcyl8cnFocz8lNGU7KXlpITMx
dml9RWsNCj4gQ3VDWG92DQo+IA0KPiBsaXRlcmFsIDANCj4gSGNtVj9kMDAwMDENCj4gDQo+IGRp
ZmYgLS1naXQgYS9zcmMveGVuYWdlbnQveGVuYWdlbnQucmMgYi9zcmMveGVuYWdlbnQveGVuYWdl
bnQucmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMC4uNTcyZDE2Mg0K
PiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL3NyYy94ZW5hZ2VudC94ZW5hZ2VudC5yYw0KPiBAQCAt
MCwwICsxLDYwIEBADQo+ICsvKiBDb3B5cmlnaHQgKGMpIENpdHJpeCBTeXN0ZW1zIEluYy4NCj4g
KyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+ICsgKg0KPiArICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcywNCj4gKyAqIHdpdGggb3Igd2l0aG91dCBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQNCj4gKyAqIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZSBtZXQ6DQo+ICsgKg0KPiArICogKiAgIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUNCj4gKyAqICAgICBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlDQo+ICsgKiAgICAgZm9s
bG93aW5nIGRpc2NsYWltZXIuDQo+ICsgKiAqICAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQ0KPiArICogICAgIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUNCj4gKyAqICAgICBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXINCj4gKyAqICAgICBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KPiArICoNCj4gKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORA0KPiArICog
Q09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywNCj4gKyAqIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GDQo+ICsgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQ0KPiArICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVCBIT0xERVIgT1INCj4gKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLA0KPiArICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywNCj4gKyAqIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUg0KPiArICogU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUw0KPiArICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
DQo+ICsgKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcNCj4gKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UNCj4gKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YNCj4gKyAqIFNVQ0ggREFNQUdFLg0KPiArICovDQo+ICsN
Cj4gKw0KPiArI2luY2x1ZGUgPHdpbmRvd3MuaD4NCj4gKyNpbmNsdWRlIDxudHZlcnAuaD4NCj4g
Kw0KPiArI3VuZGVmIFZFUl9DT01QQU5ZTkFNRV9TVFINCj4gKyN1bmRlZiBWRVJfUFJPRFVDVE5B
TUVfU1RSDQo+ICsjdW5kZWYgVkVSX1BST0RVQ1RWRVJTSU9ODQo+ICsjdW5kZWYgVkVSX1BST0RV
Q1RWRVJTSU9OX1NUUg0KPiArDQo+ICsjaW5jbHVkZSA8dmVyc2lvbi5oPg0KPiArDQo+ICsjZGVm
aW5lIFZFUl9DT01QQU5ZTkFNRV9TVFIgICAgICAgICBWRU5ET1JfTkFNRV9TVFINCj4gKyNkZWZp
bmUgVkVSX0xFR0FMQ09QWVJJR0hUX1NUUiAgICAgICJDb3B5cmlnaHQgKGMpIENpdHJpeCBTeXN0
ZW1zIEluYy4iDQo+ICsNCj4gKyNkZWZpbmUgVkVSX1BST0RVQ1ROQU1FX1NUUiAgICAgICAgICJY
RU5JRkFDRSINCj4gKyNkZWZpbmUgVkVSX1BST0RVQ1RWRVJTSU9ODQo+IE1BSk9SX1ZFUlNJT04s
TUlOT1JfVkVSU0lPTixNSUNST19WRVJTSU9OLEJVSUxEX05VTUJFUg0KPiArI2RlZmluZSBWRVJf
UFJPRFVDVFZFUlNJT05fU1RSICAgICAgTUFKT1JfVkVSU0lPTl9TVFIgIi4iDQo+IE1JTk9SX1ZF
UlNJT05fU1RSICIuIiBNSUNST19WRVJTSU9OX1NUUiAiLiIgQlVJTERfTlVNQkVSX1NUUg0KPiAr
DQo+ICsjZGVmaW5lIFZFUl9JTlRFUk5BTE5BTUVfU1RSIAkgICAgInhlbmFnZW50LmV4ZSINCj4g
KyNkZWZpbmUgVkVSX0ZJTEVWRVJTSU9OX1NUUiAJICAgICIxLjAiDQo+ICsjZGVmaW5lIFZFUl9G
SUxFREVTQ1JJUFRJT05fU1RSICAgICAieGVuYWdlbnQiDQo+ICsjZGVmaW5lIFZFUl9PUklHSU5B
TEZJTEVOQU1FX1NUUiAgICAieGVuYWdlbnQuZXhlIg0KPiArI2RlZmluZSBWRVJfRklMRVRZUEUg
VkZUX0FQUA0KPiArI2RlZmluZSBWRVJfRklMRVNVQlRZUEUgMA0KPiArDQo+ICt4ZW5faWNvbiBJ
Q09OICJ4ZW4uaWNvIg0KPiArDQo+ICsjaW5jbHVkZSAiY29tbW9uLnZlciINCj4gKyNpbmNsdWRl
ICJtZXNzYWdlcy5yYyINCj4gXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlDQo+IGRpZmYgLS1n
aXQgYS9zcmMveGVuaWZhY2UuaW5mIGIvc3JjL3hlbmlmYWNlLmluZg0KPiBpbmRleCBkZjBhYmYz
Li4yZmY1MjQ5IDEwMDY0NA0KPiAtLS0gYS9zcmMveGVuaWZhY2UuaW5mDQo+ICsrKyBiL3NyYy94
ZW5pZmFjZS5pbmYNCj4gQEAgLTYyLDExICs2MiwxMSBAQCB4ZW5pZmFjZS5zeXMNCj4gDQo+IHhl
bmlmYWNlX2NvaW5zdF9ATUFKT1JfVkVSU0lPTkBfQE1JTk9SX1ZFUlNJT05AX0BNSUNST19WRQ0K
PiBSU0lPTkBfQEJVSUxEX05VTUJFUkAuZGxsLHhlbmlmYWNlX2NvaW5zdC5kbGwNCj4gDQo+ICBb
U2VydmljZURlc3REaXIuTlQuQ29weV0NCj4gLWxpdGVhZ2VudC5leGUNCj4gK3hlbmFnZW50LmV4
ZQ0KPiANCj4gIFtYZW5pZmFjZV9EZXZpY2UuTlQkQVJDSCQuU2VydmljZXNdDQo+ICBBZGRTZXJ2
aWNlID0geGVuaWZhY2UsICVTUFNWQ0lOU1RfQVNTT0NTRVJWSUNFJSwNCj4geGVuaWZhY2VfU2Vy
dmljZV9JbnN0DQo+IC1BZGRTZXJ2aWNlID0geGVubGl0ZSwgJUxJVEVTVkNfRkxBR1MlLCB4ZW5s
aXRlX1NlcnZpY2VfSW5zdA0KPiArQWRkU2VydmljZSA9IHhlbmFnZW50LCAlWEVOQUdFTlRfRkxB
R1MlLCB4ZW5hZ2VudF9TZXJ2aWNlX0luc3QNCj4gDQo+ICBbeGVuaWZhY2VfU2VydmljZV9JbnN0
XQ0KPiAgRGlzcGxheU5hbWUgICAgPSAlWGVuSWZhY2VEZXZpY2UuRGV2aWNlRGVzYyUNCj4gQEAg
LTg3LDE5ICs4NywxOSBAQCBBZGRSZWc9Q29JbnN0X0FkZFJlZw0KPiAgW0NvSW5zdF9BZGRSZWdd
DQo+IA0KPiBIS1IsLENvSW5zdGFsbGVyczMyLDB4MDAwMTAwMDAsInhlbmlmYWNlX2NvaW5zdF9A
TUFKT1JfVkVSU0lPTkBfQA0KPiBNSU5PUl9WRVJTSU9OQF9ATUlDUk9fVkVSU0lPTkBfQEJVSUxE
X05VTUJFUkAuZGxsLEVudHJ5Ig0KPiANCj4gLVt4ZW5saXRlX1NlcnZpY2VfSW5zdF0NCj4gLURp
c3BsYXlOYW1lICAgID0gJXhlbmxpdGUuU1ZDREVTQyUNCj4gK1t4ZW5hZ2VudF9TZXJ2aWNlX0lu
c3RdDQo+ICtEaXNwbGF5TmFtZSAgICA9ICV4ZW5hZ2VudC5TVkNERVNDJQ0KPiAgU2VydmljZVR5
cGUgICAgPSAxNiAgICAgICAgICAgICAgOyBTRVJWSUNFX1dJTjMyX09XTl9QUk9DRVNTDQo+ICBT
dGFydFR5cGUgICAgICA9IDIgICAgICAgICAgICAgICA7IFNFUlZJQ0VfQVVUT19TVEFSVA0KPiAg
RXJyb3JDb250cm9sICAgPSAxICAgICAgICAgICAgICAgOyBTRVJWSUNFX0VSUk9SX05PUk1BTA0K
PiAtU2VydmljZUJpbmFyeSAgPSAlMTElXGxpdGVhZ2VudC5leGUNCj4gK1NlcnZpY2VCaW5hcnkg
ID0gJTExJVx4ZW5hZ2VudC5leGUNCj4gDQo+ICBbU291cmNlRGlza3NOYW1lc10NCj4gIDEgPSAl
RGlza0lkMSUsLCwiIg0KPiANCj4gIFtTb3VyY2VEaXNrc0ZpbGVzXQ0KPiAgeGVuaWZhY2Uuc3lz
ICA9IDEsLA0KPiAtbGl0ZWFnZW50LmV4ZSA9IDEsLA0KPiAreGVuYWdlbnQuZXhlID0gMSwsDQo+
ICB4ZW5pZmFjZV9jb2luc3QuZGxsPTEsLA0KPiANCj4gIFtTdHJpbmdzXQ0KPiBAQCAtMTA3LDYg
KzEwNyw2IEBAIFNQU1ZDSU5TVF9BU1NPQ1NFUlZJQ0U9IDB4MDAwMDAwMDINCj4gIFZlbmRvcj0g
IkBWRU5ET1JfTkFNRUAiDQo+ICBEaXNrSWQxID0gIkBQUk9EVUNUX05BTUVAIEludGVyZmFjZSBQ
YWNrYWdlIg0KPiAgWGVuSWZhY2VEZXZpY2UuRGV2aWNlRGVzYyA9ICJAUFJPRFVDVF9OQU1FQCBJ
bnRlcmZhY2UiDQo+IC1MSVRFU1ZDX0ZMQUdTPSAweDAwMDAwODAwDQo+IC14ZW5saXRlLlNWQ0RF
U0M9ICJAUFJPRFVDVF9OQU1FQCBJbnRlcmZhY2UgU2VydmljZSINCj4gK1hFTkFHRU5UX0ZMQUdT
PSAweDAwMDAwODAwDQo+ICt4ZW5hZ2VudC5TVkNERVNDPSAiQFBST0RVQ1RfTkFNRUAgSW50ZXJm
YWNlIFNlcnZpY2UiDQo+IA0KPiBkaWZmIC0tZ2l0IGEvdnMyMDEyL2xpdGVhZ2VudC9MaXRlQWdl
bnQudmN4cHJvag0KPiBiL3ZzMjAxMi9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHByb2oNCj4gZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IGU2NzkxOGEuLjAwMDAwMDANCj4gLS0tIGEv
dnMyMDEyL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvag0KPiArKysgL2Rldi9udWxsDQo+IEBA
IC0xLDI1MSArMCwwIEBADQo+IC08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/
Pg0KPiAtPFByb2plY3QgRGVmYXVsdFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQuMCIN
Cj4geG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQv
MjAwMyI+DQo+IC0gIDxJdGVtR3JvdXAgTGFiZWw9IlByb2plY3RDb25maWd1cmF0aW9ucyI+DQo+
IC0gICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfFdpbjMyIj4NCj4gLSAg
ICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPg0KPiAtICAgICAgPFBsYXRm
b3JtPldpbjMyPC9QbGF0Zm9ybT4NCj4gLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPg0KPiAt
ICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3x4NjQiPg0KPiAtICAgICAg
PENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRpb24+DQo+IC0gICAgICA8UGxhdGZvcm0+
eDY0PC9QbGF0Zm9ybT4NCj4gLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPg0KPiAtICAgIDxQ
cm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfFdpbjMyIj4NCj4gLSAgICAgIDxD
b25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+DQo+IC0gICAgICA8UGxhdGZvcm0+
V2luMzI8L1BsYXRmb3JtPg0KPiAtICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+DQo+IC0gICAg
PFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8eDY0Ij4NCj4gLSAgICAgIDxD
b25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+DQo+IC0gICAgICA8UGxhdGZvcm0+
eDY0PC9QbGF0Zm9ybT4NCj4gLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPg0KPiAtICA8L0l0
ZW1Hcm91cD4NCj4gLSAgPFByb3BlcnR5R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPg0KPiAtICAgIDxQ
cm9qZWN0R3VpZD57MkU2MUQyQ0MtODY1RS00NDJDLThDODMtDQo+IEI4REFGRDdCQkQzQn08L1By
b2plY3RHdWlkPg0KPiAtICAgIDxLZXl3b3JkPldpbjMyUHJvajwvS2V5d29yZD4NCj4gLSAgICA8
Um9vdE5hbWVzcGFjZT5TdHViQWdlbnQ8L1Jvb3ROYW1lc3BhY2U+DQo+IC0gICAgPFByb2plY3RO
YW1lPkxpdGVBZ2VudDwvUHJvamVjdE5hbWU+DQo+IC0gIDwvUHJvcGVydHlHcm91cD4NCj4gLSAg
PEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAuRGVmYXVsdC5w
cm9wcyIgLz4NCj4gLSAgPFByb3BlcnR5R3JvdXANCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciDQo+IExhYmVsPSJDb25maWd1cmF0aW9u
Ij4NCj4gLSAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25U
eXBlPg0KPiAtICAgIDxVc2VEZWJ1Z0xpYnJhcmllcz50cnVlPC9Vc2VEZWJ1Z0xpYnJhcmllcz4N
Cj4gLSAgICA8UGxhdGZvcm1Ub29sc2V0PnYxMTA8L1BsYXRmb3JtVG9vbHNldD4NCj4gLSAgICA8
Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0Pg0KPiAtICA8L1Byb3BlcnR5R3Jv
dXA+DQo+IC0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8eDY0JyINCj4gTGFiZWw9IkNvbmZpZ3VyYXRpb24iPg0KPiAtICAg
IDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+DQo+IC0g
ICAgPFVzZURlYnVnTGlicmFyaWVzPnRydWU8L1VzZURlYnVnTGlicmFyaWVzPg0KPiAtICAgIDxQ
bGF0Zm9ybVRvb2xzZXQ+djExMDwvUGxhdGZvcm1Ub29sc2V0Pg0KPiAtICAgIDxDaGFyYWN0ZXJT
ZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+DQo+IC0gIDwvUHJvcGVydHlHcm91cD4NCj4gLSAg
PFByb3BlcnR5R3JvdXANCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlfFdpbjMyJyINCj4gTGFiZWw9IkNvbmZpZ3VyYXRpb24iPg0KPiAtICAgIDxD
b25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+DQo+IC0gICAg
PFVzZURlYnVnTGlicmFyaWVzPmZhbHNlPC9Vc2VEZWJ1Z0xpYnJhcmllcz4NCj4gLSAgICA8UGxh
dGZvcm1Ub29sc2V0PnYxMTA8L1BsYXRmb3JtVG9vbHNldD4NCj4gLSAgICA8V2hvbGVQcm9ncmFt
T3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4NCj4gLSAgICA8Q2hh
cmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0Pg0KPiAtICA8L1Byb3BlcnR5R3JvdXA+
DQo+IC0gIDxQcm9wZXJ0eUdyb3VwDQo+IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIg0KPiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+DQo+IC0g
ICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4NCj4g
LSAgICA8VXNlRGVidWdMaWJyYXJpZXM+ZmFsc2U8L1VzZURlYnVnTGlicmFyaWVzPg0KPiAtICAg
IDxQbGF0Zm9ybVRvb2xzZXQ+djExMDwvUGxhdGZvcm1Ub29sc2V0Pg0KPiAtICAgIDxXaG9sZVBy
b2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPg0KPiAtICAg
IDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+DQo+IC0gIDwvUHJvcGVydHlH
cm91cD4NCj4gLSAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5D
cHAucHJvcHMiIC8+DQo+IC0gIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uU2V0dGluZ3Mi
Pg0KPiAtICA8L0ltcG9ydEdyb3VwPg0KPiAtICA8SW1wb3J0R3JvdXAgTGFiZWw9IlByb3BlcnR5
U2hlZXRzIg0KPiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnfFdpbjMyJyI+DQo+IC0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNy
b3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiDQo+IENvbmRpdGlvbj0iZXhpc3RzKCck
KFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSINCj4g
TGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPg0KPiAtICA8L0ltcG9ydEdyb3VwPg0KPiAt
ICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3x4NjQnIg0KPiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPg0KPiAtICAgIDxJbXBvcnQg
UHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnBy
b3BzIg0KPiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4k
KFBsYXRmb3JtKS51c2VyLnByb3BzJykiDQo+IExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIg
Lz4NCj4gLSAgPC9JbXBvcnRHcm91cD4NCj4gLSAgPEltcG9ydEdyb3VwIExhYmVsPSJQcm9wZXJ0
eVNoZWV0cyINCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyI+DQo+IC0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxN
aWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiDQo+IENvbmRpdGlvbj0iZXhpc3Rz
KCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIN
Cj4gTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPg0KPiAtICA8L0ltcG9ydEdyb3VwPg0K
PiAtICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlfHg2NCciDQo+IExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+DQo+IC0gICAgPElt
cG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVz
ZXIucHJvcHMiDQo+IENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQu
Q3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSINCj4gTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRm
b3JtIiAvPg0KPiAtICA8L0ltcG9ydEdyb3VwPg0KPiAtICA8UHJvcGVydHlHcm91cCBMYWJlbD0i
VXNlck1hY3JvcyIgLz4NCj4gLSAgPFByb3BlcnR5R3JvdXANCj4gQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPg0KPiAtICAgIDxMaW5rSW5j
cmVtZW50YWw+dHJ1ZTwvTGlua0luY3JlbWVudGFsPg0KPiAtICA8L1Byb3BlcnR5R3JvdXA+DQo+
IC0gIDxQcm9wZXJ0eUdyb3VwDQo+IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWd8eDY0JyI+DQo+IC0gICAgPExpbmtJbmNyZW1lbnRhbD50cnVlPC9MaW5r
SW5jcmVtZW50YWw+DQo+IC0gIDwvUHJvcGVydHlHcm91cD4NCj4gLSAgPFByb3BlcnR5R3JvdXAN
Cj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdp
bjMyJyI+DQo+IC0gICAgPExpbmtJbmNyZW1lbnRhbD5mYWxzZTwvTGlua0luY3JlbWVudGFsPg0K
PiAtICA8L1Byb3BlcnR5R3JvdXA+DQo+IC0gIDxQcm9wZXJ0eUdyb3VwDQo+IENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4NCj4gLSAgICA8
TGlua0luY3JlbWVudGFsPmZhbHNlPC9MaW5rSW5jcmVtZW50YWw+DQo+IC0gIDwvUHJvcGVydHlH
cm91cD4NCj4gLQ0KPiAtICA8UHJvcGVydHlHcm91cD4NCj4gLSAgICA8SW5jbHVkZVBhdGg+Li5c
Li5caW5jbHVkZTskKEluY2x1ZGVQYXRoKTwvSW5jbHVkZVBhdGg+DQo+IC0gIDwvUHJvcGVydHlH
cm91cD4NCj4gLQ0KPiAtICA8SXRlbURlZmluaXRpb25Hcm91cA0KPiBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+DQo+IC0gICAgPENsQ29t
cGlsZT4NCj4gLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj5Vc2U8L1ByZWNvbXBpbGVkSGVhZGVy
Pg0KPiAtICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4NCj4gLSAgICAg
IDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4NCj4gLQ0KPiA8UHJlcHJvY2Vz
c29yRGVmaW5pdGlvbnM+V0lOMzI7X0RFQlVHO19XSU5ET1dTO19DUlRfU0VDVVJFX05PXw0KPiBX
QVJOSU5HUzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlv
bnM+DQo+IC0gICAgICA8U0RMQ2hlY2s+dHJ1ZTwvU0RMQ2hlY2s+DQo+IC0NCj4gPEFkZGl0aW9u
YWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTskKFNvbHV0aW9uRGlyKVxsaXRlYWdl
bnQ7JShBZGRpdGkNCj4gb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRl
RGlyZWN0b3JpZXM+DQo+IC0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERlYnVn
PC9SdW50aW1lTGlicmFyeT4NCj4gLSAgICA8L0NsQ29tcGlsZT4NCj4gLSAgICA8TGluaz4NCj4g
LSAgICAgIDxTdWJTeXN0ZW0+V2luZG93czwvU3ViU3lzdGVtPg0KPiAtICAgICAgPEdlbmVyYXRl
RGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+DQo+IC0NCj4g
PEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+UG93cnByb2YubGliOyUoQWRkaXRpb25hbERlcGVuZGVu
Y2llcyk8L0FkZGl0aQ0KPiBvbmFsRGVwZW5kZW5jaWVzPg0KPiAtICAgIDwvTGluaz4NCj4gLSAg
ICA8Q3VzdG9tQnVpbGRTdGVwPg0KPiAtICAgICAgICA8Q29tbWFuZD54Y29weSAveSAkKFRhcmdl
dFBhdGgpDQo+ICQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpXA0K
PiAtICAgICAgICAgICAgeGNvcHkgL3kgJChUYXJnZXREaXIpTGl0ZUFnZW50LnBkYg0KPiAkKFNv
bHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KVw8L0NvbW1hbmQ+DQo+IC0g
ICAgPC9DdXN0b21CdWlsZFN0ZXA+DQo+IC0gICAgPEN1c3RvbUJ1aWxkU3RlcD4NCj4gLSAgICAg
IDxNZXNzYWdlPkNvcHlpbmcgb3V0cHV0IGZpbGVzPC9NZXNzYWdlPg0KPiAtDQo+IDxPdXRwdXRz
PiQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXRGaWxl
TmFtZSk7KFMNCj4gb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRh
cmdldE5hbWUpLnBkYjslKE91dHB1dHMpPC8NCj4gT3V0cHV0cz4NCj4gLSAgICAgIDxJbnB1dHM+
JChUYXJnZXRQYXRoKTskKFRhcmdldERpcikkKFRhcmdldE5hbWUpLnBkYjwvSW5wdXRzPg0KPiAt
ICAgIDwvQ3VzdG9tQnVpbGRTdGVwPg0KPiAtICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+DQo+IC0g
IDxJdGVtRGVmaW5pdGlvbkdyb3VwDQo+IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+DQo+IC0gICAgPENsQ29tcGlsZT4NCj4gLSAgICAgIDxQ
cmVjb21waWxlZEhlYWRlcj5Vc2U8L1ByZWNvbXBpbGVkSGVhZGVyPg0KPiAtICAgICAgPFdhcm5p
bmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4NCj4gLSAgICAgIDxPcHRpbWl6YXRpb24+RGlz
YWJsZWQ8L09wdGltaXphdGlvbj4NCj4gLQ0KPiA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lO
MzI7X0RFQlVHO19XSU5ET1dTO19DUlRfU0VDVVJFX05PXw0KPiBXQVJOSU5HUzslKFByZXByb2Nl
c3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+DQo+IC0gICAgICA8U0RM
Q2hlY2s+dHJ1ZTwvU0RMQ2hlY2s+DQo+IC0NCj4gPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3Jp
ZXM+Li5cLi5caW5jbHVkZTskKFNvbHV0aW9uRGlyKVxsaXRlYWdlbnQ7JShBZGRpdGkNCj4gb25h
bEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+DQo+IC0g
ICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERlYnVnPC9SdW50aW1lTGlicmFyeT4N
Cj4gLSAgICA8L0NsQ29tcGlsZT4NCj4gLSAgICA8TGluaz4NCj4gLSAgICAgIDxTdWJTeXN0ZW0+
V2luZG93czwvU3ViU3lzdGVtPg0KPiAtICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj50
cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+DQo+IC0NCj4gPEFkZGl0aW9uYWxEZXBlbmRl
bmNpZXM+UG93cnByb2YubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aQ0KPiBv
bmFsRGVwZW5kZW5jaWVzPg0KPiAtICAgIDwvTGluaz4NCj4gLSAgICA8Q3VzdG9tQnVpbGRTdGVw
Pg0KPiAtICAgICAgICA8Q29tbWFuZD54Y29weSAveSAkKFRhcmdldFBhdGgpDQo+ICQoU29sdXRp
b25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpXA0KPiAtICAgICAgICAgICAgeGNv
cHkgL3kgJChUYXJnZXREaXIpTGl0ZUFnZW50LnBkYg0KPiAkKFNvbHV0aW9uRGlyKVwuLlx4ZW5p
ZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KVw8L0NvbW1hbmQ+DQo+IC0gICAgPC9DdXN0b21CdWlsZFN0
ZXA+DQo+IC0gICAgPEN1c3RvbUJ1aWxkU3RlcD4NCj4gLSAgICAgIDxNZXNzYWdlPkNvcHlpbmcg
b3V0cHV0IGZpbGVzPC9NZXNzYWdlPg0KPiAtDQo+IDxPdXRwdXRzPiQoU29sdXRpb25EaXIpXC4u
XHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXRGaWxlTmFtZSk7KFMNCj4gb2x1dGlv
bkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRhcmdldE5hbWUpLnBkYjslKE91
dHB1dHMpPC8NCj4gT3V0cHV0cz4NCj4gLSAgICAgIDxJbnB1dHM+JChUYXJnZXRQYXRoKTskKFRh
cmdldERpcikkKFRhcmdldE5hbWUpLnBkYjwvSW5wdXRzPg0KPiAtICAgIDwvQ3VzdG9tQnVpbGRT
dGVwPg0KPiAtICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+DQo+IC0gIDxJdGVtRGVmaW5pdGlvbkdy
b3VwDQo+IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFz
ZXxXaW4zMiciPg0KPiAtICAgIDxDbENvbXBpbGU+DQo+IC0gICAgICA8V2FybmluZ0xldmVsPkxl
dmVsMzwvV2FybmluZ0xldmVsPg0KPiAtICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPkNyZWF0ZTwv
UHJlY29tcGlsZWRIZWFkZXI+DQo+IC0gICAgICA8T3B0aW1pemF0aW9uPk1heFNwZWVkPC9PcHRp
bWl6YXRpb24+DQo+IC0gICAgICA8RnVuY3Rpb25MZXZlbExpbmtpbmc+dHJ1ZTwvRnVuY3Rpb25M
ZXZlbExpbmtpbmc+DQo+IC0gICAgICA8SW50cmluc2ljRnVuY3Rpb25zPnRydWU8L0ludHJpbnNp
Y0Z1bmN0aW9ucz4NCj4gLQ0KPiA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7TkRFQlVH
O19DUlRfU0VDVVJFX05PX1dBUk5JTkdTOw0KPiBfV0lORE9XUzslKFByZXByb2Nlc3NvckRlZmlu
aXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+DQo+IC0gICAgICA8U0RMQ2hlY2s+dHJ1
ZTwvU0RMQ2hlY2s+DQo+IC0NCj4gPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5c
aW5jbHVkZTskKFNvbHV0aW9uRGlyKVxsaXRlYWdlbnQ7JShBZGRpdGkNCj4gb25hbEluY2x1ZGVE
aXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+DQo+IC0gICAgICA8QnJv
d3NlSW5mb3JtYXRpb24+dHJ1ZTwvQnJvd3NlSW5mb3JtYXRpb24+DQo+IC0gICAgICA8UHJlcHJv
Y2Vzc1RvRmlsZT5mYWxzZTwvUHJlcHJvY2Vzc1RvRmlsZT4NCj4gLSAgICAgIDxSdW50aW1lTGli
cmFyeT5NdWx0aVRocmVhZGVkPC9SdW50aW1lTGlicmFyeT4NCj4gLSAgICA8L0NsQ29tcGlsZT4N
Cj4gLSAgICA8TGluaz4NCj4gLSAgICAgIDxTdWJTeXN0ZW0+V2luZG93czwvU3ViU3lzdGVtPg0K
PiAtICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5m
b3JtYXRpb24+DQo+IC0gICAgICA8RW5hYmxlQ09NREFURm9sZGluZz50cnVlPC9FbmFibGVDT01E
QVRGb2xkaW5nPg0KPiAtICAgICAgPE9wdGltaXplUmVmZXJlbmNlcz50cnVlPC9PcHRpbWl6ZVJl
ZmVyZW5jZXM+DQo+IC0NCj4gPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+UG93cnByb2YubGliOyUo
QWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aQ0KPiBvbmFsRGVwZW5kZW5jaWVzPg0KPiAt
ICAgIDwvTGluaz4NCj4gLSAgICA8Q3VzdG9tQnVpbGRTdGVwPg0KPiAtICAgICAgPE1lc3NhZ2U+
Q29weWluZyBvdXRwdXQgZmlsZXM8L01lc3NhZ2U+DQo+IC0gICAgICA8Q29tbWFuZD54Y29weSAv
eSAkKFRhcmdldFBhdGgpDQo+ICQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1U
YXJnZXQpXA0KPiAtICAgICAgICAgIHhjb3B5IC95ICQoVGFyZ2V0RGlyKUxpdGVBZ2VudC5wZGIN
Cj4gJChTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldClcPC9Db21tYW5k
Pg0KPiAtDQo+IDxPdXRwdXRzPiQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1U
YXJnZXQpJChUYXJnZXRGaWxlTmFtZSk7KFMNCj4gb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQ
bGF0Zm9ybVRhcmdldCkkKFRhcmdldE5hbWUpLnBkYjslKE91dHB1dHMpPC8NCj4gT3V0cHV0cz4N
Cj4gLSAgICAgIDxJbnB1dHM+JChUYXJnZXRQYXRoKTskKFRhcmdldERpcikkKFRhcmdldE5hbWUp
LnBkYjwvSW5wdXRzPg0KPiAtICAgIDwvQ3VzdG9tQnVpbGRTdGVwPg0KPiAtICA8L0l0ZW1EZWZp
bml0aW9uR3JvdXA+DQo+IC0gIDxJdGVtRGVmaW5pdGlvbkdyb3VwDQo+IENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4NCj4gLSAgICA8Q2xD
b21waWxlPg0KPiAtICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4NCj4g
LSAgICAgIDxQcmVjb21waWxlZEhlYWRlcj5DcmVhdGU8L1ByZWNvbXBpbGVkSGVhZGVyPg0KPiAt
ICAgICAgPE9wdGltaXphdGlvbj5NYXhTcGVlZDwvT3B0aW1pemF0aW9uPg0KPiAtICAgICAgPEZ1
bmN0aW9uTGV2ZWxMaW5raW5nPnRydWU8L0Z1bmN0aW9uTGV2ZWxMaW5raW5nPg0KPiAtICAgICAg
PEludHJpbnNpY0Z1bmN0aW9ucz50cnVlPC9JbnRyaW5zaWNGdW5jdGlvbnM+DQo+IC0NCj4gPFBy
ZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO05ERUJVRztfQ1JUX1NFQ1VSRV9OT19XQVJOSU5H
UzsNCj4gX1dJTkRPV1M7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRl
ZmluaXRpb25zPg0KPiAtICAgICAgPFNETENoZWNrPnRydWU8L1NETENoZWNrPg0KPiAtDQo+IDxB
ZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7JChTb2x1dGlvbkRpcilc
bGl0ZWFnZW50OyUoQWRkaXRpDQo+IG9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzPg0KPiAtICAgICAgPEJyb3dzZUluZm9ybWF0aW9uPnRydWU8L0Jy
b3dzZUluZm9ybWF0aW9uPg0KPiAtICAgICAgPFByZXByb2Nlc3NUb0ZpbGU+ZmFsc2U8L1ByZXBy
b2Nlc3NUb0ZpbGU+DQo+IC0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZDwvUnVu
dGltZUxpYnJhcnk+DQo+IC0gICAgPC9DbENvbXBpbGU+DQo+IC0gICAgPExpbms+DQo+IC0gICAg
ICA8U3ViU3lzdGVtPldpbmRvd3M8L1N1YlN5c3RlbT4NCj4gLSAgICAgIDxHZW5lcmF0ZURlYnVn
SW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPg0KPiAtICAgICAgPEVu
YWJsZUNPTURBVEZvbGRpbmc+dHJ1ZTwvRW5hYmxlQ09NREFURm9sZGluZz4NCj4gLSAgICAgIDxP
cHRpbWl6ZVJlZmVyZW5jZXM+dHJ1ZTwvT3B0aW1pemVSZWZlcmVuY2VzPg0KPiAtDQo+IDxBZGRp
dGlvbmFsRGVwZW5kZW5jaWVzPlBvd3Jwcm9mLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMp
PC9BZGRpdGkNCj4gb25hbERlcGVuZGVuY2llcz4NCj4gLSAgICA8L0xpbms+DQo+IC0gICAgPEN1
c3RvbUJ1aWxkU3RlcD4NCj4gLSAgICAgIDxNZXNzYWdlPkNvcHlpbmcgb3V0cHV0IGZpbGVzPC9N
ZXNzYWdlPg0KPiAtICAgICAgPENvbW1hbmQ+eGNvcHkgL3kgJChUYXJnZXRQYXRoKQ0KPiAkKFNv
bHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KVwNCj4gLSAgICAgICAgICB4
Y29weSAveSAkKFRhcmdldERpcilMaXRlQWdlbnQucGRiDQo+ICQoU29sdXRpb25EaXIpXC4uXHhl
bmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpXDwvQ29tbWFuZD4NCj4gLQ0KPiA8T3V0cHV0cz4kKFNv
bHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0RmlsZU5hbWUp
OyhTDQo+IG9sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXRO
YW1lKS5wZGI7JShPdXRwdXRzKTwvDQo+IE91dHB1dHM+DQo+IC0gICAgICA8SW5wdXRzPiQoVGFy
Z2V0UGF0aCk7JChUYXJnZXREaXIpJChUYXJnZXROYW1lKS5wZGI8L0lucHV0cz4NCj4gLSAgICA8
L0N1c3RvbUJ1aWxkU3RlcD4NCj4gLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPg0KPiAtICA8SXRl
bUdyb3VwPg0KPiAtICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1YmFn
ZW50XGVycm9ycy5jcHAiPg0KPiAtICAgICAgPFByZWNvbXBpbGVkSGVhZGVyDQo+IENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPk5vdFVz
aW5nPC9Qcg0KPiBlY29tcGlsZWRIZWFkZXI+DQo+IC0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIN
Cj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2
NCciPk5vdFVzaW5nPC9QcmVjDQo+IG9tcGlsZWRIZWFkZXI+DQo+IC0gICAgPC9DbENvbXBpbGU+
DQo+IC0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcc3Rk
YWZ4LmNwcCI+DQo+IC0gICAgICA8UHJlY29tcGlsZWRIZWFkZXINCj4gQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Tm90VXNpbmc8L1By
DQo+IGVjb21waWxlZEhlYWRlcj4NCj4gLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcg0KPiBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Tm90
VXNpbmc8L1ByZWMNCj4gb21waWxlZEhlYWRlcj4NCj4gLSAgICA8L0NsQ29tcGlsZT4NCj4gLSAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2VudFxXbWlBY2Nlc3Nv
ci5jcHAiPg0KPiAtICAgICAgPFByZWNvbXBpbGVkSGVhZGVyDQo+IENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj5DcmVhdGU8L1ByZWNvDQo+
IG1waWxlZEhlYWRlcj4NCj4gLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcg0KPiBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPkNyZWF0ZTwvUHJl
Y29tcA0KPiBpbGVkSGVhZGVyPg0KPiAtICAgICAgPFByZWNvbXBpbGVkSGVhZGVyDQo+IENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPk5v
dFVzaW5nPC9Qcg0KPiBlY29tcGlsZWRIZWFkZXI+DQo+IC0gICAgICA8UHJlY29tcGlsZWRIZWFk
ZXINCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
fHg2NCciPk5vdFVzaW5nPC9QcmVjDQo+IG9tcGlsZWRIZWFkZXI+DQo+IC0gICAgPC9DbENvbXBp
bGU+DQo+IC0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRc
WFNBY2Nlc3Nvci5jcHAiPg0KPiAtICAgICAgPFByZWNvbXBpbGVkSGVhZGVyDQo+IENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj5DcmVhdGU8
L1ByZWNvDQo+IG1waWxlZEhlYWRlcj4NCj4gLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcg0KPiBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPkNy
ZWF0ZTwvUHJlY29tcA0KPiBpbGVkSGVhZGVyPg0KPiAtICAgICAgPFByZWNvbXBpbGVkSGVhZGVy
DQo+IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxX
aW4zMiciPk5vdFVzaW5nPC9Qcg0KPiBlY29tcGlsZWRIZWFkZXI+DQo+IC0gICAgICA8UHJlY29t
cGlsZWRIZWFkZXINCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlfHg2NCciPk5vdFVzaW5nPC9QcmVjDQo+IG9tcGlsZWRIZWFkZXI+DQo+IC0gICAg
PC9DbENvbXBpbGU+DQo+IC0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJz
dHViYWdlbnRcWFNlcnZpY2UuY3BwIj4NCj4gLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcg0KPiBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+
Q3JlYXRlPC9QcmVjbw0KPiBtcGlsZWRIZWFkZXI+DQo+IC0gICAgICA8UHJlY29tcGlsZWRIZWFk
ZXINCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4
NjQnIj5DcmVhdGU8L1ByZWNvbXANCj4gaWxlZEhlYWRlcj4NCj4gLSAgICAgIDxQcmVjb21waWxl
ZEhlYWRlcg0KPiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8V2luMzInIj5Ob3RVc2luZzwvUHINCj4gZWNvbXBpbGVkSGVhZGVyPg0KPiAtICAgICAg
PFByZWNvbXBpbGVkSGVhZGVyDQo+IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5Ob3RVc2luZzwvUHJlYw0KPiBvbXBpbGVkSGVhZGVyPg0K
PiAtICAgIDwvQ2xDb21waWxlPg0KPiAtICA8L0l0ZW1Hcm91cD4NCj4gLSAgPEl0ZW1Hcm91cD4N
Cj4gLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2VudFxzdGRh
ZnguaCIgLz4NCj4gLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXHNyY1x3aW4zMnN0dWJh
Z2VudFxXbWlBY2Nlc3Nvci5oIiAvPg0KPiAtICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5c
c3JjXHdpbjMyc3R1YmFnZW50XFhTQWNjZXNzb3IuaCIgLz4NCj4gLSAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2VudFxYU2VydmljZS5oIiAvPg0KPiAtICA8L0l0
ZW1Hcm91cD4NCj4gLSAgPEl0ZW1Hcm91cD4NCj4gLSAgICA8Q3VzdG9tQnVpbGQgSW5jbHVkZT0i
Li5cLi5cc3JjXHdpbjMyc3R1YmFnZW50XG1lc3NhZ2VzLm1jIj4NCj4gLSAgICAgIDxGaWxlVHlw
ZT5Eb2N1bWVudDwvRmlsZVR5cGU+DQo+IC0gICAgICA8Q29tbWFuZA0KPiBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+bWMNCj4gJShGdWxs
UGF0aCk8L0NvbW1hbmQ+DQo+IC0gICAgICA8Q29tbWFuZA0KPiBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPm1jDQo+ICUoRnVsbFBhdGgpPC9D
b21tYW5kPg0KPiAtICAgICAgPE91dHB1dHMNCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPiUoRmlsZW5hbWUpLnJjDQo+IDslKEZpbGVu
YW1lKS5oPC9PdXRwdXRzPg0KPiAtICAgICAgPE91dHB1dHMNCj4gQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4lKEZpbGVuYW1lKS5yYzslDQo+
IChGaWxlbmFtZSkuaDwvT3V0cHV0cz4NCj4gLSAgICAgIDxDb21tYW5kDQo+IENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPm1jDQo+ICUo
RnVsbFBhdGgpPC9Db21tYW5kPg0KPiAtICAgICAgPENvbW1hbmQNCj4gQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPm1jDQo+ICUoRnVsbFBh
dGgpPC9Db21tYW5kPg0KPiAtICAgICAgPE91dHB1dHMNCj4gQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+JShGaWxlbmFtZSkuDQo+IHJj
OyUoRmlsZW5hbWUpLmg8L091dHB1dHM+DQo+IC0gICAgICA8T3V0cHV0cw0KPiBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+JShGaWxlbmFt
ZSkucmM7DQo+ICUoRmlsZW5hbWUpLmg8L091dHB1dHM+DQo+IC0gICAgPC9DdXN0b21CdWlsZD4N
Cj4gLSAgPC9JdGVtR3JvdXA+DQo+IC0gIDxJdGVtR3JvdXA+DQo+IC0gICAgPFJlc291cmNlQ29t
cGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcdzMyeGFnZW50LnJjIiAvPg0K
PiAtICA8L0l0ZW1Hcm91cD4NCj4gLSAgPEl0ZW1Hcm91cD4NCj4gLSAgICA8SW1hZ2UgSW5jbHVk
ZT0iLi5cLi5cc3JjXHdpbjMyc3R1YmFnZW50XHhlbi5pY28iIC8+DQo+IC0gIDwvSXRlbUdyb3Vw
Pg0KPiAtICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC50
YXJnZXRzIiAvPg0KPiAtICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPg0K
PiAtICA8L0ltcG9ydEdyb3VwPg0KPiAtPC9Qcm9qZWN0Pg0KPiBkaWZmIC0tZ2l0IGEvdnMyMDEy
L2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvai51c2VyDQo+IGIvdnMyMDEyL2xpdGVhZ2VudC9M
aXRlQWdlbnQudmN4cHJvai51c2VyDQo+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRl
eCA1MGYzY2JlLi4wMDAwMDAwDQo+IC0tLSBhL3ZzMjAxMi9saXRlYWdlbnQvTGl0ZUFnZW50LnZj
eHByb2oudXNlcg0KPiArKysgL2Rldi9udWxsDQo+IEBAIC0xLDQgKzAsMCBAQA0KPiAtPD94bWwg
dmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCj4gLTxQcm9qZWN0IFRvb2xzVmVyc2lv
bj0iNC4wIg0KPiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIv
bXNidWlsZC8yMDAzIj4NCj4gLSAgPFByb3BlcnR5R3JvdXAgLz4NCj4gLTwvUHJvamVjdD4NCj4g
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlDQo+IGRpZmYgLS1naXQgYS92czIwMTIveGVuYWdl
bnQveGVuYWdlbnQudmN4cHJvag0KPiBiL3ZzMjAxMi94ZW5hZ2VudC94ZW5hZ2VudC52Y3hwcm9q
DQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAuLmFmOTlmOWQNCj4gLS0t
IC9kZXYvbnVsbA0KPiArKysgYi92czIwMTIveGVuYWdlbnQveGVuYWdlbnQudmN4cHJvag0KPiBA
QCAtMCwwICsxLDIxNyBAQA0KPiArPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgi
Pz4NCj4gKzxQcm9qZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAi
DQo+IHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxk
LzIwMDMiPg0KPiArICA8SXRlbUdyb3VwIExhYmVsPSJQcm9qZWN0Q29uZmlndXJhdGlvbnMiPg0K
PiArICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3xXaW4zMiI+DQo+ICsg
ICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4NCj4gKyAgICAgIDxQbGF0
Zm9ybT5XaW4zMjwvUGxhdGZvcm0+DQo+ICsgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4NCj4g
KyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8eDY0Ij4NCj4gKyAgICAg
IDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPg0KPiArICAgICAgPFBsYXRmb3Jt
Png2NDwvUGxhdGZvcm0+DQo+ICsgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4NCj4gKyAgICA8
UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXxXaW4zMiI+DQo+ICsgICAgICA8
Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPg0KPiArICAgICAgPFBsYXRmb3Jt
PldpbjMyPC9QbGF0Zm9ybT4NCj4gKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPg0KPiArICAg
IDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfHg2NCI+DQo+ICsgICAgICA8
Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPg0KPiArICAgICAgPFBsYXRmb3Jt
Png2NDwvUGxhdGZvcm0+DQo+ICsgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4NCj4gKyAgPC9J
dGVtR3JvdXA+DQo+ICsgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJHbG9iYWxzIj4NCj4gKyAgICA8
UHJvamVjdEd1aWQ+ezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLQ0KPiBCOERBRkQ3QkJEM0J9PC9Q
cm9qZWN0R3VpZD4NCj4gKyAgICA8S2V5d29yZD5XaW4zMlByb2o8L0tleXdvcmQ+DQo+ICsgICAg
PFJvb3ROYW1lc3BhY2U+eGVuYWdlbnQ8L1Jvb3ROYW1lc3BhY2U+DQo+ICsgICAgPFByb2plY3RO
YW1lPnhlbmFnZW50PC9Qcm9qZWN0TmFtZT4NCj4gKyAgPC9Qcm9wZXJ0eUdyb3VwPg0KPiArICA8
SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5EZWZhdWx0LnBy
b3BzIiAvPg0KPiArICA8UHJvcGVydHlHcm91cA0KPiBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyINCj4gTGFiZWw9IkNvbmZpZ3VyYXRpb24i
Pg0KPiArICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5
cGU+DQo+ICsgICAgPFVzZURlYnVnTGlicmFyaWVzPnRydWU8L1VzZURlYnVnTGlicmFyaWVzPg0K
PiArICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djExMDwvUGxhdGZvcm1Ub29sc2V0Pg0KPiArICAgIDxD
aGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+DQo+ICsgIDwvUHJvcGVydHlHcm91
cD4NCj4gKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIg0KPiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+DQo+ICsgICAg
PENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4NCj4gKyAg
ICA8VXNlRGVidWdMaWJyYXJpZXM+dHJ1ZTwvVXNlRGVidWdMaWJyYXJpZXM+DQo+ICsgICAgPFBs
YXRmb3JtVG9vbHNldD52MTEwPC9QbGF0Zm9ybVRvb2xzZXQ+DQo+ICsgICAgPENoYXJhY3RlclNl
dD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4NCj4gKyAgPC9Qcm9wZXJ0eUdyb3VwPg0KPiArICA8
UHJvcGVydHlHcm91cA0KPiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2V8V2luMzInIg0KPiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+DQo+ICsgICAgPENv
bmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4NCj4gKyAgICA8
VXNlRGVidWdMaWJyYXJpZXM+ZmFsc2U8L1VzZURlYnVnTGlicmFyaWVzPg0KPiArICAgIDxQbGF0
Zm9ybVRvb2xzZXQ+djExMDwvUGxhdGZvcm1Ub29sc2V0Pg0KPiArICAgIDxXaG9sZVByb2dyYW1P
cHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPg0KPiArICAgIDxDaGFy
YWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+DQo+ICsgIDwvUHJvcGVydHlHcm91cD4N
Cj4gKyAgPFByb3BlcnR5R3JvdXANCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciDQo+IExhYmVsPSJDb25maWd1cmF0aW9uIj4NCj4gKyAg
ICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPg0KPiAr
ICAgIDxVc2VEZWJ1Z0xpYnJhcmllcz5mYWxzZTwvVXNlRGVidWdMaWJyYXJpZXM+DQo+ICsgICAg
PFBsYXRmb3JtVG9vbHNldD52MTEwPC9QbGF0Zm9ybVRvb2xzZXQ+DQo+ICsgICAgPFdob2xlUHJv
Z3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+DQo+ICsgICAg
PENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4NCj4gKyAgPC9Qcm9wZXJ0eUdy
b3VwPg0KPiArICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNw
cC5wcm9wcyIgLz4NCj4gKyAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25TZXR0aW5ncyI+
DQo+ICsgIDwvSW1wb3J0R3JvdXA+DQo+ICsgIDxJbXBvcnRHcm91cCBMYWJlbD0iUHJvcGVydHlT
aGVldHMiDQo+IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8V2luMzInIj4NCj4gKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jv
c29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyINCj4gQ29uZGl0aW9uPSJleGlzdHMoJyQo
VXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIg0KPiBM
YWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+DQo+ICsgIDwvSW1wb3J0R3JvdXA+DQo+ICsg
IDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfHg2NCciDQo+IExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+DQo+ICsgICAgPEltcG9ydCBQ
cm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJv
cHMiDQo+IENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQo
UGxhdGZvcm0pLnVzZXIucHJvcHMnKSINCj4gTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAv
Pg0KPiArICA8L0ltcG9ydEdyb3VwPg0KPiArICA8SW1wb3J0R3JvdXAgTGFiZWw9IlByb3BlcnR5
U2hlZXRzIg0KPiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8V2luMzInIj4NCj4gKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1p
Y3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyINCj4gQ29uZGl0aW9uPSJleGlzdHMo
JyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIg0K
PiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+DQo+ICsgIDwvSW1wb3J0R3JvdXA+DQo+
ICsgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2V8eDY0JyINCj4gTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4NCj4gKyAgICA8SW1w
b3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNl
ci5wcm9wcyINCj4gQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5D
cHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIg0KPiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZv
cm0iIC8+DQo+ICsgIDwvSW1wb3J0R3JvdXA+DQo+ICsgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJV
c2VyTWFjcm9zIiAvPg0KPiArICA8UHJvcGVydHlHcm91cA0KPiBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+DQo+ICsgICAgPExpbmtJbmNy
ZW1lbnRhbD50cnVlPC9MaW5rSW5jcmVtZW50YWw+DQo+ICsgIDwvUHJvcGVydHlHcm91cD4NCj4g
KyAgPFByb3BlcnR5R3JvdXANCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3x4NjQnIj4NCj4gKyAgICA8TGlua0luY3JlbWVudGFsPnRydWU8L0xpbmtJ
bmNyZW1lbnRhbD4NCj4gKyAgPC9Qcm9wZXJ0eUdyb3VwPg0KPiArICA8UHJvcGVydHlHcm91cA0K
PiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2lu
MzInIj4NCj4gKyAgICA8TGlua0luY3JlbWVudGFsPmZhbHNlPC9MaW5rSW5jcmVtZW50YWw+DQo+
ICsgIDwvUHJvcGVydHlHcm91cD4NCj4gKyAgPFByb3BlcnR5R3JvdXANCj4gQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPg0KPiArICAgIDxM
aW5rSW5jcmVtZW50YWw+ZmFsc2U8L0xpbmtJbmNyZW1lbnRhbD4NCj4gKyAgPC9Qcm9wZXJ0eUdy
b3VwPg0KPiArDQo+ICsgIDxQcm9wZXJ0eUdyb3VwPg0KPiArICAgIDxJbmNsdWRlUGF0aD4uLlwu
LlxpbmNsdWRlOyQoSW5jbHVkZVBhdGgpPC9JbmNsdWRlUGF0aD4NCj4gKyAgPC9Qcm9wZXJ0eUdy
b3VwPg0KPiArDQo+ICsgIDxJdGVtRGVmaW5pdGlvbkdyb3VwDQo+IENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4NCj4gKyAgICA8Q2xDb21w
aWxlPg0KPiArICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPk5vdFVzaW5nPC9QcmVjb21waWxlZEhl
YWRlcj4NCj4gKyAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+DQo+ICsg
ICAgICA8T3B0aW1pemF0aW9uPkRpc2FibGVkPC9PcHRpbWl6YXRpb24+DQo+ICsNCj4gPFByZXBy
b2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19ERUJVRztfV0lORE9XUztfQ1JUX1NFQ1VSRV9OT18N
Cj4gV0FSTklOR1M7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmlu
aXRpb25zPg0KPiArICAgICAgPFNETENoZWNrPnRydWU8L1NETENoZWNrPg0KPiArDQo+IDxBZGRp
dGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7JChTb2x1dGlvbkRpcilceGVu
YWdlbnQ7JShBZGRpdGkNCj4gb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNs
dWRlRGlyZWN0b3JpZXM+DQo+ICsgICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERl
YnVnPC9SdW50aW1lTGlicmFyeT4NCj4gKyAgICA8L0NsQ29tcGlsZT4NCj4gKyAgICA8TGluaz4N
Cj4gKyAgICAgIDxTdWJTeXN0ZW0+V2luZG93czwvU3ViU3lzdGVtPg0KPiArICAgICAgPEdlbmVy
YXRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+DQo+ICsN
Cj4gPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+UG93cnByb2YubGliOyUoQWRkaXRpb25hbERlcGVu
ZGVuY2llcyk8L0FkZGl0aQ0KPiBvbmFsRGVwZW5kZW5jaWVzPg0KPiArICAgIDwvTGluaz4NCj4g
KyAgICA8Q3VzdG9tQnVpbGRTdGVwPg0KPiArICAgICAgICA8Q29tbWFuZD54Y29weSAveSAkKFRh
cmdldFBhdGgpDQo+ICQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQp
XA0KPiArICAgICAgICAgICAgeGNvcHkgL3kgJChUYXJnZXREaXIpeGVuYWdlbnQucGRiDQo+ICQo
U29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpXDwvQ29tbWFuZD4NCj4g
KyAgICA8L0N1c3RvbUJ1aWxkU3RlcD4NCj4gKyAgICA8Q3VzdG9tQnVpbGRTdGVwPg0KPiArICAg
ICAgPE1lc3NhZ2U+Q29weWluZyBvdXRwdXQgZmlsZXM8L01lc3NhZ2U+DQo+ICsNCj4gPE91dHB1
dHM+JChTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRhcmdldEZp
bGVOYW1lKTsoUw0KPiBvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KSQo
VGFyZ2V0TmFtZSkucGRiOyUoT3V0cHV0cyk8Lw0KPiBPdXRwdXRzPg0KPiArICAgICAgPElucHV0
cz4kKFRhcmdldFBhdGgpOyQoVGFyZ2V0RGlyKSQoVGFyZ2V0TmFtZSkucGRiPC9JbnB1dHM+DQo+
ICsgICAgPC9DdXN0b21CdWlsZFN0ZXA+DQo+ICsgIDwvSXRlbURlZmluaXRpb25Hcm91cD4NCj4g
KyAgPEl0ZW1EZWZpbml0aW9uR3JvdXANCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4NCj4gKyAgICA8Q2xDb21waWxlPg0KPiArICAgICAg
PFByZWNvbXBpbGVkSGVhZGVyPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4NCj4gKyAgICAg
IDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+DQo+ICsgICAgICA8T3B0aW1pemF0
aW9uPkRpc2FibGVkPC9PcHRpbWl6YXRpb24+DQo+ICsNCj4gPFByZXByb2Nlc3NvckRlZmluaXRp
b25zPldJTjMyO19ERUJVRztfV0lORE9XUztfQ1JUX1NFQ1VSRV9OT18NCj4gV0FSTklOR1M7JShQ
cmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPg0KPiArICAg
ICAgPFNETENoZWNrPnRydWU8L1NETENoZWNrPg0KPiArDQo+IDxBZGRpdGlvbmFsSW5jbHVkZURp
cmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7JChTb2x1dGlvbkRpcilceGVuYWdlbnQ7JShBZGRpdGkN
Cj4gb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+
DQo+ICsgICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERlYnVnPC9SdW50aW1lTGli
cmFyeT4NCj4gKyAgICA8L0NsQ29tcGlsZT4NCj4gKyAgICA8TGluaz4NCj4gKyAgICAgIDxTdWJT
eXN0ZW0+V2luZG93czwvU3ViU3lzdGVtPg0KPiArICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1h
dGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+DQo+ICsNCj4gPEFkZGl0aW9uYWxE
ZXBlbmRlbmNpZXM+UG93cnByb2YubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0
aQ0KPiBvbmFsRGVwZW5kZW5jaWVzPg0KPiArICAgIDwvTGluaz4NCj4gKyAgICA8Q3VzdG9tQnVp
bGRTdGVwPg0KPiArICAgICAgICA8Q29tbWFuZD54Y29weSAveSAkKFRhcmdldFBhdGgpDQo+ICQo
U29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpXA0KPiArICAgICAgICAg
ICAgeGNvcHkgL3kgJChUYXJnZXREaXIpeGVuYWdlbnQucGRiDQo+ICQoU29sdXRpb25EaXIpXC4u
XHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpXDwvQ29tbWFuZD4NCj4gKyAgICA8L0N1c3RvbUJ1
aWxkU3RlcD4NCj4gKyAgICA8Q3VzdG9tQnVpbGRTdGVwPg0KPiArICAgICAgPE1lc3NhZ2U+Q29w
eWluZyBvdXRwdXQgZmlsZXM8L01lc3NhZ2U+DQo+ICsNCj4gPE91dHB1dHM+JChTb2x1dGlvbkRp
cilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRhcmdldEZpbGVOYW1lKTsoUw0KPiBv
bHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0TmFtZSkucGRi
OyUoT3V0cHV0cyk8Lw0KPiBPdXRwdXRzPg0KPiArICAgICAgPElucHV0cz4kKFRhcmdldFBhdGgp
OyQoVGFyZ2V0RGlyKSQoVGFyZ2V0TmFtZSkucGRiPC9JbnB1dHM+DQo+ICsgICAgPC9DdXN0b21C
dWlsZFN0ZXA+DQo+ICsgIDwvSXRlbURlZmluaXRpb25Hcm91cD4NCj4gKyAgPEl0ZW1EZWZpbml0
aW9uR3JvdXANCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyI+DQo+ICsgICAgPENsQ29tcGlsZT4NCj4gKyAgICAgIDxXYXJuaW5nTGV2
ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+DQo+ICsgICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Tm90
VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVyPg0KPiArICAgICAgPE9wdGltaXphdGlvbj5NYXhTcGVl
ZDwvT3B0aW1pemF0aW9uPg0KPiArICAgICAgPEZ1bmN0aW9uTGV2ZWxMaW5raW5nPnRydWU8L0Z1
bmN0aW9uTGV2ZWxMaW5raW5nPg0KPiArICAgICAgPEludHJpbnNpY0Z1bmN0aW9ucz50cnVlPC9J
bnRyaW5zaWNGdW5jdGlvbnM+DQo+ICsNCj4gPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMy
O05ERUJVRztfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUzsNCj4gX1dJTkRPV1M7JShQcmVwcm9jZXNz
b3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPg0KPiArICAgICAgPFNETENo
ZWNrPnRydWU8L1NETENoZWNrPg0KPiArDQo+IDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVz
Pi4uXC4uXGluY2x1ZGU7JChTb2x1dGlvbkRpcilceGVuYWdlbnQ7JShBZGRpdGkNCj4gb25hbElu
Y2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+DQo+ICsgICAg
ICA8QnJvd3NlSW5mb3JtYXRpb24+dHJ1ZTwvQnJvd3NlSW5mb3JtYXRpb24+DQo+ICsgICAgICA8
UHJlcHJvY2Vzc1RvRmlsZT5mYWxzZTwvUHJlcHJvY2Vzc1RvRmlsZT4NCj4gKyAgICAgIDxSdW50
aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkPC9SdW50aW1lTGlicmFyeT4NCj4gKyAgICA8L0NsQ29t
cGlsZT4NCj4gKyAgICA8TGluaz4NCj4gKyAgICAgIDxTdWJTeXN0ZW0+V2luZG93czwvU3ViU3lz
dGVtPg0KPiArICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURl
YnVnSW5mb3JtYXRpb24+DQo+ICsgICAgICA8RW5hYmxlQ09NREFURm9sZGluZz50cnVlPC9FbmFi
bGVDT01EQVRGb2xkaW5nPg0KPiArICAgICAgPE9wdGltaXplUmVmZXJlbmNlcz50cnVlPC9PcHRp
bWl6ZVJlZmVyZW5jZXM+DQo+ICsNCj4gPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+UG93cnByb2Yu
bGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aQ0KPiBvbmFsRGVwZW5kZW5jaWVz
Pg0KPiArICAgIDwvTGluaz4NCj4gKyAgICA8Q3VzdG9tQnVpbGRTdGVwPg0KPiArICAgICAgPE1l
c3NhZ2U+Q29weWluZyBvdXRwdXQgZmlsZXM8L01lc3NhZ2U+DQo+ICsgICAgICA8Q29tbWFuZD54
Y29weSAveSAkKFRhcmdldFBhdGgpDQo+ICQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxh
dGZvcm1UYXJnZXQpXA0KPiArICAgICAgICAgIHhjb3B5IC95ICQoVGFyZ2V0RGlyKXhlbmFnZW50
LnBkYg0KPiAkKFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KVw8L0Nv
bW1hbmQ+DQo+ICsNCj4gPE91dHB1dHM+JChTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0
Zm9ybVRhcmdldCkkKFRhcmdldEZpbGVOYW1lKTsoUw0KPiBvbHV0aW9uRGlyKVwuLlx4ZW5pZmFj
ZVwkKFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0TmFtZSkucGRiOyUoT3V0cHV0cyk8Lw0KPiBPdXRw
dXRzPg0KPiArICAgICAgPElucHV0cz4kKFRhcmdldFBhdGgpOyQoVGFyZ2V0RGlyKSQoVGFyZ2V0
TmFtZSkucGRiPC9JbnB1dHM+DQo+ICsgICAgPC9DdXN0b21CdWlsZFN0ZXA+DQo+ICsgIDwvSXRl
bURlZmluaXRpb25Hcm91cD4NCj4gKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXANCj4gQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPg0KPiArICAg
IDxDbENvbXBpbGU+DQo+ICsgICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVs
Pg0KPiArICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRl
cj4NCj4gKyAgICAgIDxPcHRpbWl6YXRpb24+TWF4U3BlZWQ8L09wdGltaXphdGlvbj4NCj4gKyAg
ICAgIDxGdW5jdGlvbkxldmVsTGlua2luZz50cnVlPC9GdW5jdGlvbkxldmVsTGlua2luZz4NCj4g
KyAgICAgIDxJbnRyaW5zaWNGdW5jdGlvbnM+dHJ1ZTwvSW50cmluc2ljRnVuY3Rpb25zPg0KPiAr
DQo+IDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtOREVCVUc7X0NSVF9TRUNVUkVfTk9f
V0FSTklOR1M7DQo+IF9XSU5ET1dTOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9j
ZXNzb3JEZWZpbml0aW9ucz4NCj4gKyAgICAgIDxTRExDaGVjaz50cnVlPC9TRExDaGVjaz4NCj4g
Kw0KPiA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOyQoU29sdXRp
b25EaXIpXHhlbmFnZW50OyUoQWRkaXRpDQo+IG9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRp
dGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPg0KPiArICAgICAgPEJyb3dzZUluZm9ybWF0aW9uPnRy
dWU8L0Jyb3dzZUluZm9ybWF0aW9uPg0KPiArICAgICAgPFByZXByb2Nlc3NUb0ZpbGU+ZmFsc2U8
L1ByZXByb2Nlc3NUb0ZpbGU+DQo+ICsgICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRl
ZDwvUnVudGltZUxpYnJhcnk+DQo+ICsgICAgPC9DbENvbXBpbGU+DQo+ICsgICAgPExpbms+DQo+
ICsgICAgICA8U3ViU3lzdGVtPldpbmRvd3M8L1N1YlN5c3RlbT4NCj4gKyAgICAgIDxHZW5lcmF0
ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPg0KPiArICAg
ICAgPEVuYWJsZUNPTURBVEZvbGRpbmc+dHJ1ZTwvRW5hYmxlQ09NREFURm9sZGluZz4NCj4gKyAg
ICAgIDxPcHRpbWl6ZVJlZmVyZW5jZXM+dHJ1ZTwvT3B0aW1pemVSZWZlcmVuY2VzPg0KPiArDQo+
IDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPlBvd3Jwcm9mLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRl
bmNpZXMpPC9BZGRpdGkNCj4gb25hbERlcGVuZGVuY2llcz4NCj4gKyAgICA8L0xpbms+DQo+ICsg
ICAgPEN1c3RvbUJ1aWxkU3RlcD4NCj4gKyAgICAgIDxNZXNzYWdlPkNvcHlpbmcgb3V0cHV0IGZp
bGVzPC9NZXNzYWdlPg0KPiArICAgICAgPENvbW1hbmQ+eGNvcHkgL3kgJChUYXJnZXRQYXRoKQ0K
PiAkKFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KVwNCj4gKyAgICAg
ICAgICB4Y29weSAveSAkKFRhcmdldERpcil4ZW5hZ2VudC5wZGINCj4gJChTb2x1dGlvbkRpcilc
Li5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldClcPC9Db21tYW5kPg0KPiArDQo+IDxPdXRwdXRz
PiQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXRGaWxl
TmFtZSk7KFMNCj4gb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRh
cmdldE5hbWUpLnBkYjslKE91dHB1dHMpPC8NCj4gT3V0cHV0cz4NCj4gKyAgICAgIDxJbnB1dHM+
JChUYXJnZXRQYXRoKTskKFRhcmdldERpcikkKFRhcmdldE5hbWUpLnBkYjwvSW5wdXRzPg0KPiAr
ICAgIDwvQ3VzdG9tQnVpbGRTdGVwPg0KPiArICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+DQo+ICsg
IDxJdGVtR3JvdXA+DQo+ICsgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuYWdl
bnRcc2VydmljZS5jcHAiLz4NCj4gKyAgPC9JdGVtR3JvdXA+DQo+ICsgIDxJdGVtR3JvdXA+DQo+
ICsgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuYWdlbnRcc2VydmljZS5oIiAv
Pg0KPiArICA8L0l0ZW1Hcm91cD4NCj4gKyAgPEl0ZW1Hcm91cD4NCj4gKyAgICA8Q3VzdG9tQnVp
bGQgSW5jbHVkZT0iLi5cLi5cc3JjXHhlbmFnZW50XG1lc3NhZ2VzLm1jIj4NCj4gKyAgICAgIDxG
aWxlVHlwZT5Eb2N1bWVudDwvRmlsZVR5cGU+DQo+ICsgICAgICA8Q29tbWFuZD5tYyAlKEZ1bGxQ
YXRoKTwvQ29tbWFuZD4NCj4gKyAgICAgIDxPdXRwdXRzPiUoRmlsZW5hbWUpLnJjOyUoRmlsZW5h
bWUpLmg8L091dHB1dHM+DQo+ICsJPC9DdXN0b21CdWlsZD4NCj4gKyAgPC9JdGVtR3JvdXA+DQo+
ICsgIDxJdGVtR3JvdXA+DQo+ICsgICAgPFJlc291cmNlQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxz
cmNceGVuYWdlbnRceGVuYWdlbnQucmMiIC8+DQo+ICsgIDwvSXRlbUdyb3VwPg0KPiArICA8SXRl
bUdyb3VwPg0KPiArICAgIDxJbWFnZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuYWdlbnRceGVuLmlj
byIgLz4NCj4gKyAgPC9JdGVtR3JvdXA+DQo+ICsgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1Rhcmdl
dHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnRhcmdldHMiIC8+DQo+ICsgIDxJbXBvcnRHcm91cCBMYWJl
bD0iRXh0ZW5zaW9uVGFyZ2V0cyI+DQo+ICsgIDwvSW1wb3J0R3JvdXA+DQo+ICs8L1Byb2plY3Q+
DQo+IGRpZmYgLS1naXQgYS92czIwMTIveGVuYWdlbnQveGVuYWdlbnQudmN4cHJvai51c2VyDQo+
IGIvdnMyMDEyL3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2oudXNlcg0KPiBuZXcgZmlsZSBtb2Rl
IDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwLi41MGYzY2JlDQo+IC0tLSAvZGV2L251bGwNCj4gKysr
IGIvdnMyMDEyL3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2oudXNlcg0KPiBAQCAtMCwwICsxLDQg
QEANCj4gKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+DQo+ICs8UHJvamVj
dCBUb29sc1ZlcnNpb249IjQuMCINCj4geG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5j
b20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+DQo+ICsgIDxQcm9wZXJ0eUdyb3VwIC8+DQo+ICs8
L1Byb2plY3Q+DQo+IFwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQ0KPiBkaWZmIC0tZ2l0IGEv
dnMyMDEyL3hlbmlmYWNlLnNsbiBiL3ZzMjAxMi94ZW5pZmFjZS5zbG4NCj4gaW5kZXggY2I2YmVj
Zi4uOTcwMGNlMyAxMDA2NDQNCj4gLS0tIGEvdnMyMDEyL3hlbmlmYWNlLnNsbg0KPiArKysgYi92
czIwMTIveGVuaWZhY2Uuc2xuDQo+IEBAIC00LDcgKzQsNyBAQCBQcm9qZWN0KCJ7OEJDOUNFQjgt
OEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0NCj4gInhlbmlmYWNlX2NvaW5zdCIsICJ4
ZW5pZmFjZQ0KPiAgRW5kUHJvamVjdA0KPiAgUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04
RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJ4ZW5pZmFjZSIsDQo+ICJ4ZW5pZmFjZVx4ZW5pZmFjZS52
Y3hwcm9qIiwgInsyMjE2NjI5MC02NUQ4LTQ5RDItQkI4OC0zMzIwMTc5N0M3RDh9Ig0KPiAgRW5k
UHJvamVjdA0KPiAtUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0
Mn0iKSA9ICJMaXRlQWdlbnQiLA0KPiAibGl0ZWFnZW50XExpdGVBZ2VudC52Y3hwcm9qIiwgInsy
RTYxRDJDQy04NjVFLTQ0MkMtOEM4My0NCj4gQjhEQUZEN0JCRDNCfSINCj4gK1Byb2plY3QoIns4
QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAieGVuYWdlbnQiLA0KPiAi
eGVuYWdlbnRceGVuYWdlbnQudmN4cHJvaiIsICJ7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtDQo+
IEI4REFGRDdCQkQzQn0iDQo+ICBFbmRQcm9qZWN0DQo+ICBQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0
QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gInBhY2thZ2UiLA0KPiAicGFja2FnZVxwYWNr
YWdlLnZjeHByb2oiLCAiezlCMDcxQTM1LTg5N0MtNDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0iDQo+
ICAJUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KPiBk
aWZmIC0tZ2l0IGEvdnMyMDEzL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvag0KPiBiL3ZzMjAx
My9saXRlYWdlbnQvTGl0ZUFnZW50LnZjeHByb2oNCj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
DQo+IGluZGV4IDUwZGJlNDMuLjAwMDAwMDANCj4gLS0tIGEvdnMyMDEzL2xpdGVhZ2VudC9MaXRl
QWdlbnQudmN4cHJvag0KPiArKysgL2Rldi9udWxsDQo+IEBAIC0xLDI1NiArMCwwIEBADQo+IC08
P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/Pg0KPiAtPFByb2plY3QgRGVmYXVs
dFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQuMCINCj4geG1sbnM9Imh0dHA6Ly9zY2hl
bWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+DQo+IC0gIDxJdGVtR3Jv
dXAgTGFiZWw9IlByb2plY3RDb25maWd1cmF0aW9ucyI+DQo+IC0gICAgPFByb2plY3RDb25maWd1
cmF0aW9uIEluY2x1ZGU9IkRlYnVnfFdpbjMyIj4NCj4gLSAgICAgIDxDb25maWd1cmF0aW9uPkRl
YnVnPC9Db25maWd1cmF0aW9uPg0KPiAtICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4N
Cj4gLSAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPg0KPiAtICAgIDxQcm9qZWN0Q29uZmlndXJh
dGlvbiBJbmNsdWRlPSJEZWJ1Z3x4NjQiPg0KPiAtICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8
L0NvbmZpZ3VyYXRpb24+DQo+IC0gICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4NCj4gLSAg
ICA8L1Byb2plY3RDb25maWd1cmF0aW9uPg0KPiAtICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJ
bmNsdWRlPSJSZWxlYXNlfFdpbjMyIj4NCj4gLSAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8
L0NvbmZpZ3VyYXRpb24+DQo+IC0gICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPg0KPiAt
ICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+DQo+IC0gICAgPFByb2plY3RDb25maWd1cmF0aW9u
IEluY2x1ZGU9IlJlbGVhc2V8eDY0Ij4NCj4gLSAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8
L0NvbmZpZ3VyYXRpb24+DQo+IC0gICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4NCj4gLSAg
ICA8L1Byb2plY3RDb25maWd1cmF0aW9uPg0KPiAtICA8L0l0ZW1Hcm91cD4NCj4gLSAgPFByb3Bl
cnR5R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPg0KPiAtICAgIDxQcm9qZWN0R3VpZD57MkU2MUQyQ0Mt
ODY1RS00NDJDLThDODMtDQo+IEI4REFGRDdCQkQzQn08L1Byb2plY3RHdWlkPg0KPiAtICAgIDxL
ZXl3b3JkPldpbjMyUHJvajwvS2V5d29yZD4NCj4gLSAgICA8Um9vdE5hbWVzcGFjZT5TdHViQWdl
bnQ8L1Jvb3ROYW1lc3BhY2U+DQo+IC0gICAgPFByb2plY3ROYW1lPkxpdGVBZ2VudDwvUHJvamVj
dE5hbWU+DQo+IC0gIDwvUHJvcGVydHlHcm91cD4NCj4gLSAgPEltcG9ydCBQcm9qZWN0PSIkKFZD
VGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAuRGVmYXVsdC5wcm9wcyIgLz4NCj4gLSAgPFByb3Bl
cnR5R3JvdXANCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z3xXaW4zMiciDQo+IExhYmVsPSJDb25maWd1cmF0aW9uIj4NCj4gLSAgICA8Q29uZmlndXJh
dGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPg0KPiAtICAgIDxVc2VEZWJ1
Z0xpYnJhcmllcz50cnVlPC9Vc2VEZWJ1Z0xpYnJhcmllcz4NCj4gLSAgICA8UGxhdGZvcm1Ub29s
c2V0PldpbmRvd3NBcHBsaWNhdGlvbkZvckRyaXZlcnM4LjE8L1BsYXRmb3JtVG9vbHNldD4NCj4g
LSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0Pg0KPiAtICA8L1Byb3Bl
cnR5R3JvdXA+DQo+IC0gIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyINCj4gTGFiZWw9IkNvbmZpZ3VyYXRpb24iPg0K
PiAtICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+
DQo+IC0gICAgPFVzZURlYnVnTGlicmFyaWVzPnRydWU8L1VzZURlYnVnTGlicmFyaWVzPg0KPiAt
ICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0FwcGxpY2F0aW9uRm9yRHJpdmVyczguMTwvUGxh
dGZvcm1Ub29sc2V0Pg0KPiAtICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJT
ZXQ+DQo+IC0gIDwvUHJvcGVydHlHcm91cD4NCj4gLSAgPFByb3BlcnR5R3JvdXANCj4gQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyINCj4g
TGFiZWw9IkNvbmZpZ3VyYXRpb24iPg0KPiAtICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNh
dGlvbjwvQ29uZmlndXJhdGlvblR5cGU+DQo+IC0gICAgPFVzZURlYnVnTGlicmFyaWVzPmZhbHNl
PC9Vc2VEZWJ1Z0xpYnJhcmllcz4NCj4gLSAgICA8UGxhdGZvcm1Ub29sc2V0PldpbmRvd3NBcHBs
aWNhdGlvbkZvckRyaXZlcnM4LjE8L1BsYXRmb3JtVG9vbHNldD4NCj4gLSAgICA8V2hvbGVQcm9n
cmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4NCj4gLSAgICA8
Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0Pg0KPiAtICA8L1Byb3BlcnR5R3Jv
dXA+DQo+IC0gIDxQcm9wZXJ0eUdyb3VwDQo+IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIg0KPiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+DQo+
IC0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4N
Cj4gLSAgICA8VXNlRGVidWdMaWJyYXJpZXM+ZmFsc2U8L1VzZURlYnVnTGlicmFyaWVzPg0KPiAt
ICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0FwcGxpY2F0aW9uRm9yRHJpdmVyczguMTwvUGxh
dGZvcm1Ub29sc2V0Pg0KPiAtICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hv
bGVQcm9ncmFtT3B0aW1pemF0aW9uPg0KPiAtICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9D
aGFyYWN0ZXJTZXQ+DQo+IC0gIDwvUHJvcGVydHlHcm91cD4NCj4gLSAgPEltcG9ydCBQcm9qZWN0
PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAucHJvcHMiIC8+DQo+IC0gIDxJbXBvcnRH
cm91cCBMYWJlbD0iRXh0ZW5zaW9uU2V0dGluZ3MiPg0KPiAtICA8L0ltcG9ydEdyb3VwPg0KPiAt
ICA8SW1wb3J0R3JvdXAgTGFiZWw9IlByb3BlcnR5U2hlZXRzIg0KPiBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+DQo+IC0gICAgPEltcG9y
dCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIu
cHJvcHMiDQo+IENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3Bw
LiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSINCj4gTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3Jt
IiAvPg0KPiAtICA8L0ltcG9ydEdyb3VwPg0KPiAtICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIg0KPiBMYWJlbD0iUHJv
cGVydHlTaGVldHMiPg0KPiAtICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWlj
cm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIg0KPiBDb25kaXRpb249ImV4aXN0cygn
JChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiDQo+
IExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4NCj4gLSAgPC9JbXBvcnRHcm91cD4NCj4g
LSAgPEltcG9ydEdyb3VwIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyINCj4gQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+DQo+IC0gICAgPElt
cG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVz
ZXIucHJvcHMiDQo+IENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQu
Q3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSINCj4gTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRm
b3JtIiAvPg0KPiAtICA8L0ltcG9ydEdyb3VwPg0KPiAtICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciDQo+IExhYmVs
PSJQcm9wZXJ0eVNoZWV0cyI+DQo+IC0gICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGly
KVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiDQo+IENvbmRpdGlvbj0iZXhp
c3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMn
KSINCj4gTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPg0KPiAtICA8L0ltcG9ydEdyb3Vw
Pg0KPiAtICA8UHJvcGVydHlHcm91cCBMYWJlbD0iVXNlck1hY3JvcyIgLz4NCj4gLSAgPFByb3Bl
cnR5R3JvdXANCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z3xXaW4zMiciPg0KPiAtICAgIDxMaW5rSW5jcmVtZW50YWw+dHJ1ZTwvTGlua0luY3JlbWVu
dGFsPg0KPiAtICAgIDxPdXREaXI+JChTb2x1dGlvbkRpcikkKFBsYXRmb3JtKVwkKENvbmZpZ3Vy
YXRpb25OYW1lKVw8L091dERpcj4NCj4gLSAgPC9Qcm9wZXJ0eUdyb3VwPg0KPiAtICA8UHJvcGVy
dHlHcm91cA0KPiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnfHg2NCciPg0KPiAtICAgIDxMaW5rSW5jcmVtZW50YWw+dHJ1ZTwvTGlua0luY3JlbWVudGFs
Pg0KPiAtICA8L1Byb3BlcnR5R3JvdXA+DQo+IC0gIDxQcm9wZXJ0eUdyb3VwDQo+IENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPg0KPiAt
ICAgIDxMaW5rSW5jcmVtZW50YWw+ZmFsc2U8L0xpbmtJbmNyZW1lbnRhbD4NCj4gLSAgICA8T3V0
RGlyPiQoU29sdXRpb25EaXIpJChQbGF0Zm9ybSlcJChDb25maWd1cmF0aW9uTmFtZSlcPC9PdXRE
aXI+DQo+IC0gIDwvUHJvcGVydHlHcm91cD4NCj4gLSAgPFByb3BlcnR5R3JvdXANCj4gQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPg0KPiAt
ICAgIDxMaW5rSW5jcmVtZW50YWw+ZmFsc2U8L0xpbmtJbmNyZW1lbnRhbD4NCj4gLSAgPC9Qcm9w
ZXJ0eUdyb3VwPg0KPiAtICA8UHJvcGVydHlHcm91cD4NCj4gLSAgICA8SW5jbHVkZVBhdGg+Li5c
Li5caW5jbHVkZTskKEluY2x1ZGVQYXRoKTwvSW5jbHVkZVBhdGg+DQo+IC0gIDwvUHJvcGVydHlH
cm91cD4NCj4gLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXANCj4gQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPg0KPiAtICAgIDxDbENvbXBpbGU+
DQo+IC0gICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Tm90VXNpbmc8L1ByZWNvbXBpbGVkSGVhZGVy
Pg0KPiAtICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4NCj4gLSAgICAg
IDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4NCj4gLQ0KPiA8UHJlcHJvY2Vz
c29yRGVmaW5pdGlvbnM+V0lOMzI7X0RFQlVHO19XSU5ET1dTO19DUlRfU0VDVVJFX05PXw0KPiBX
QVJOSU5HUzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlv
bnM+DQo+IC0gICAgICA8U0RMQ2hlY2s+dHJ1ZTwvU0RMQ2hlY2s+DQo+IC0NCj4gPEFkZGl0aW9u
YWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTskKFNvbHV0aW9uRGlyKVxsaXRlYWdl
bnQ7JChTREtfSQ0KPiBOQ19QQVRIKTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9B
ZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPg0KPiAtICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11
bHRpVGhyZWFkZWREZWJ1ZzwvUnVudGltZUxpYnJhcnk+DQo+IC0gICAgICA8UHJlY29tcGlsZWRI
ZWFkZXJGaWxlIC8+DQo+IC0gICAgICA8UHJlY29tcGlsZWRIZWFkZXJPdXRwdXRGaWxlIC8+DQo+
IC0gICAgPC9DbENvbXBpbGU+DQo+IC0gICAgPExpbms+DQo+IC0gICAgICA8U3ViU3lzdGVtPldp
bmRvd3M8L1N1YlN5c3RlbT4NCj4gLSAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1
ZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPg0KPiAtDQo+IDxBZGRpdGlvbmFsRGVwZW5kZW5j
aWVzPlBvd3Jwcm9mLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGkNCj4gb25h
bERlcGVuZGVuY2llcz4NCj4gLSAgICA8L0xpbms+DQo+IC0gICAgPEN1c3RvbUJ1aWxkU3RlcD4N
Cj4gLSAgICAgIDxDb21tYW5kPnhjb3B5IC95ICQoVGFyZ2V0UGF0aCkNCj4gJChTb2x1dGlvbkRp
cilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldClcDQo+IC0gICAgICAgICAgICB4Y29weSAv
eSAkKFRhcmdldERpcilMaXRlQWdlbnQucGRiDQo+ICQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNl
XCQoUGxhdGZvcm1UYXJnZXQpXDwvQ29tbWFuZD4NCj4gLSAgICA8L0N1c3RvbUJ1aWxkU3RlcD4N
Cj4gLSAgICA8Q3VzdG9tQnVpbGRTdGVwPg0KPiAtICAgICAgPE1lc3NhZ2U+Q29weWluZyBvdXRw
dXQgZmlsZXM8L01lc3NhZ2U+DQo+IC0NCj4gPE91dHB1dHM+JChTb2x1dGlvbkRpcilcLi5ceGVu
aWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRhcmdldEZpbGVOYW1lKTsoUw0KPiBvbHV0aW9uRGly
KVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0TmFtZSkucGRiOyUoT3V0cHV0
cyk8Lw0KPiBPdXRwdXRzPg0KPiAtICAgICAgPElucHV0cz4kKFRhcmdldFBhdGgpOyQoVGFyZ2V0
RGlyKSQoVGFyZ2V0TmFtZSkucGRiPC9JbnB1dHM+DQo+IC0gICAgPC9DdXN0b21CdWlsZFN0ZXA+
DQo+IC0gIDwvSXRlbURlZmluaXRpb25Hcm91cD4NCj4gLSAgPEl0ZW1EZWZpbml0aW9uR3JvdXAN
Cj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQn
Ij4NCj4gLSAgICA8Q2xDb21waWxlPg0KPiAtICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPk5vdFVz
aW5nPC9QcmVjb21waWxlZEhlYWRlcj4NCj4gLSAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9X
YXJuaW5nTGV2ZWw+DQo+IC0gICAgICA8T3B0aW1pemF0aW9uPkRpc2FibGVkPC9PcHRpbWl6YXRp
b24+DQo+IC0NCj4gPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19ERUJVRztfV0lORE9X
UztfQ1JUX1NFQ1VSRV9OT18NCj4gV0FSTklOR1M7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8
L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPg0KPiAtICAgICAgPFNETENoZWNrPnRydWU8L1NETENo
ZWNrPg0KPiAtDQo+IDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7
JChTb2x1dGlvbkRpcilcbGl0ZWFnZW50OyQoU0RLX0kNCj4gTkNfUEFUSCk7JShBZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4NCj4gLSAg
ICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWc8L1J1bnRpbWVMaWJyYXJ5Pg0K
PiAtICAgICAgPFByZWNvbXBpbGVkSGVhZGVyRmlsZSAvPg0KPiAtICAgICAgPFByZWNvbXBpbGVk
SGVhZGVyT3V0cHV0RmlsZSAvPg0KPiAtICAgIDwvQ2xDb21waWxlPg0KPiAtICAgIDxMaW5rPg0K
PiAtICAgICAgPFN1YlN5c3RlbT5XaW5kb3dzPC9TdWJTeXN0ZW0+DQo+IC0gICAgICA8R2VuZXJh
dGVEZWJ1Z0luZm9ybWF0aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4NCj4gLQ0K
PiA8QWRkaXRpb25hbERlcGVuZGVuY2llcz5Qb3dycHJvZi5saWI7JShBZGRpdGlvbmFsRGVwZW5k
ZW5jaWVzKTwvQWRkaXRpDQo+IG9uYWxEZXBlbmRlbmNpZXM+DQo+IC0gICAgPC9MaW5rPg0KPiAt
ICAgIDxDdXN0b21CdWlsZFN0ZXA+DQo+IC0gICAgICA8Q29tbWFuZD54Y29weSAveSAkKFRhcmdl
dFBhdGgpDQo+ICQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpXA0K
PiAtICAgICAgICAgICAgeGNvcHkgL3kgJChUYXJnZXREaXIpTGl0ZUFnZW50LnBkYg0KPiAkKFNv
bHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KVw8L0NvbW1hbmQ+DQo+IC0g
ICAgPC9DdXN0b21CdWlsZFN0ZXA+DQo+IC0gICAgPEN1c3RvbUJ1aWxkU3RlcD4NCj4gLSAgICAg
IDxNZXNzYWdlPkNvcHlpbmcgb3V0cHV0IGZpbGVzPC9NZXNzYWdlPg0KPiAtDQo+IDxPdXRwdXRz
PiQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXRGaWxl
TmFtZSk7KFMNCj4gb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRh
cmdldE5hbWUpLnBkYjslKE91dHB1dHMpPC8NCj4gT3V0cHV0cz4NCj4gLSAgICAgIDxJbnB1dHM+
JChUYXJnZXRQYXRoKTskKFRhcmdldERpcikkKFRhcmdldE5hbWUpLnBkYjwvSW5wdXRzPg0KPiAt
ICAgIDwvQ3VzdG9tQnVpbGRTdGVwPg0KPiAtICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+DQo+IC0g
IDxJdGVtRGVmaW5pdGlvbkdyb3VwDQo+IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPg0KPiAtICAgIDxDbENvbXBpbGU+DQo+IC0gICAg
ICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPg0KPiAtICAgICAgPFByZWNvbXBp
bGVkSGVhZGVyPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4NCj4gLSAgICAgIDxPcHRpbWl6
YXRpb24+TWF4U3BlZWQ8L09wdGltaXphdGlvbj4NCj4gLSAgICAgIDxGdW5jdGlvbkxldmVsTGlu
a2luZz50cnVlPC9GdW5jdGlvbkxldmVsTGlua2luZz4NCj4gLSAgICAgIDxJbnRyaW5zaWNGdW5j
dGlvbnM+dHJ1ZTwvSW50cmluc2ljRnVuY3Rpb25zPg0KPiAtDQo+IDxQcmVwcm9jZXNzb3JEZWZp
bml0aW9ucz5XSU4zMjtOREVCVUc7X0NSVF9TRUNVUkVfTk9fV0FSTklOR1M7DQo+IF9XSU5ET1dT
OyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4NCj4g
LSAgICAgIDxTRExDaGVjaz50cnVlPC9TRExDaGVjaz4NCj4gLQ0KPiA8QWRkaXRpb25hbEluY2x1
ZGVEaXJlY3Rvcmllcz4uLlwuLlxpbmNsdWRlOyQoU29sdXRpb25EaXIpXGxpdGVhZ2VudDskKFNE
S19JDQo+IE5DX1BBVEgpOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9u
YWxJbmNsdWRlRGlyZWN0b3JpZXM+DQo+IC0gICAgICA8QnJvd3NlSW5mb3JtYXRpb24+dHJ1ZTwv
QnJvd3NlSW5mb3JtYXRpb24+DQo+IC0gICAgICA8UHJlcHJvY2Vzc1RvRmlsZT5mYWxzZTwvUHJl
cHJvY2Vzc1RvRmlsZT4NCj4gLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkPC9S
dW50aW1lTGlicmFyeT4NCj4gLSAgICA8L0NsQ29tcGlsZT4NCj4gLSAgICA8TGluaz4NCj4gLSAg
ICAgIDxTdWJTeXN0ZW0+V2luZG93czwvU3ViU3lzdGVtPg0KPiAtICAgICAgPEdlbmVyYXRlRGVi
dWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+DQo+IC0gICAgICA8
RW5hYmxlQ09NREFURm9sZGluZz50cnVlPC9FbmFibGVDT01EQVRGb2xkaW5nPg0KPiAtICAgICAg
PE9wdGltaXplUmVmZXJlbmNlcz50cnVlPC9PcHRpbWl6ZVJlZmVyZW5jZXM+DQo+IC0NCj4gPEFk
ZGl0aW9uYWxEZXBlbmRlbmNpZXM+UG93cnByb2YubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2ll
cyk8L0FkZGl0aQ0KPiBvbmFsRGVwZW5kZW5jaWVzPg0KPiAtICAgIDwvTGluaz4NCj4gLSAgICA8
Q3VzdG9tQnVpbGRTdGVwPg0KPiAtICAgICAgPE1lc3NhZ2U+Q29weWluZyBvdXRwdXQgZmlsZXM8
L01lc3NhZ2U+DQo+IC0gICAgICA8Q29tbWFuZD54Y29weSAveSAkKFRhcmdldFBhdGgpDQo+ICQo
U29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpXA0KPiAtICAgICAgICAg
IHhjb3B5IC95ICQoVGFyZ2V0RGlyKUxpdGVBZ2VudC5wZGINCj4gJChTb2x1dGlvbkRpcilcLi5c
eGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldClcPC9Db21tYW5kPg0KPiAtDQo+IDxPdXRwdXRzPiQo
U29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXRGaWxlTmFt
ZSk7KFMNCj4gb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRhcmdl
dE5hbWUpLnBkYjslKE91dHB1dHMpPC8NCj4gT3V0cHV0cz4NCj4gLSAgICAgIDxJbnB1dHM+JChU
YXJnZXRQYXRoKTskKFRhcmdldERpcikkKFRhcmdldE5hbWUpLnBkYjwvSW5wdXRzPg0KPiAtICAg
IDwvQ3VzdG9tQnVpbGRTdGVwPg0KPiAtICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+DQo+IC0gIDxJ
dGVtRGVmaW5pdGlvbkdyb3VwDQo+IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4NCj4gLSAgICA8Q2xDb21waWxlPg0KPiAtICAgICAgPFdh
cm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4NCj4gLSAgICAgIDxQcmVjb21waWxlZEhl
YWRlcj5Ob3RVc2luZzwvUHJlY29tcGlsZWRIZWFkZXI+DQo+IC0gICAgICA8T3B0aW1pemF0aW9u
Pk1heFNwZWVkPC9PcHRpbWl6YXRpb24+DQo+IC0gICAgICA8RnVuY3Rpb25MZXZlbExpbmtpbmc+
dHJ1ZTwvRnVuY3Rpb25MZXZlbExpbmtpbmc+DQo+IC0gICAgICA8SW50cmluc2ljRnVuY3Rpb25z
PnRydWU8L0ludHJpbnNpY0Z1bmN0aW9ucz4NCj4gLQ0KPiA8UHJlcHJvY2Vzc29yRGVmaW5pdGlv
bnM+V0lOMzI7TkRFQlVHO19DUlRfU0VDVVJFX05PX1dBUk5JTkdTOw0KPiBfV0lORE9XUzslKFBy
ZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+DQo+IC0gICAg
ICA8U0RMQ2hlY2s+dHJ1ZTwvU0RMQ2hlY2s+DQo+IC0NCj4gPEFkZGl0aW9uYWxJbmNsdWRlRGly
ZWN0b3JpZXM+Li5cLi5caW5jbHVkZTskKFNvbHV0aW9uRGlyKVxsaXRlYWdlbnQ7JChTREtfSQ0K
PiBOQ19QQVRIKTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5j
bHVkZURpcmVjdG9yaWVzPg0KPiAtICAgICAgPEJyb3dzZUluZm9ybWF0aW9uPnRydWU8L0Jyb3dz
ZUluZm9ybWF0aW9uPg0KPiAtICAgICAgPFByZXByb2Nlc3NUb0ZpbGU+ZmFsc2U8L1ByZXByb2Nl
c3NUb0ZpbGU+DQo+IC0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZDwvUnVudGlt
ZUxpYnJhcnk+DQo+IC0gICAgPC9DbENvbXBpbGU+DQo+IC0gICAgPExpbms+DQo+IC0gICAgICA8
U3ViU3lzdGVtPldpbmRvd3M8L1N1YlN5c3RlbT4NCj4gLSAgICAgIDxHZW5lcmF0ZURlYnVnSW5m
b3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPg0KPiAtICAgICAgPEVuYWJs
ZUNPTURBVEZvbGRpbmc+dHJ1ZTwvRW5hYmxlQ09NREFURm9sZGluZz4NCj4gLSAgICAgIDxPcHRp
bWl6ZVJlZmVyZW5jZXM+dHJ1ZTwvT3B0aW1pemVSZWZlcmVuY2VzPg0KPiAtDQo+IDxBZGRpdGlv
bmFsRGVwZW5kZW5jaWVzPlBvd3Jwcm9mLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9B
ZGRpdGkNCj4gb25hbERlcGVuZGVuY2llcz4NCj4gLSAgICA8L0xpbms+DQo+IC0gICAgPEN1c3Rv
bUJ1aWxkU3RlcD4NCj4gLSAgICAgIDxNZXNzYWdlPkNvcHlpbmcgb3V0cHV0IGZpbGVzPC9NZXNz
YWdlPg0KPiAtICAgICAgPENvbW1hbmQ+eGNvcHkgL3kgJChUYXJnZXRQYXRoKQ0KPiAkKFNvbHV0
aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KVwNCj4gLSAgICAgICAgICB4Y29w
eSAveSAkKFRhcmdldERpcilMaXRlQWdlbnQucGRiDQo+ICQoU29sdXRpb25EaXIpXC4uXHhlbmlm
YWNlXCQoUGxhdGZvcm1UYXJnZXQpXDwvQ29tbWFuZD4NCj4gLQ0KPiA8T3V0cHV0cz4kKFNvbHV0
aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0RmlsZU5hbWUpOyhT
DQo+IG9sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXROYW1l
KS5wZGI7JShPdXRwdXRzKTwvDQo+IE91dHB1dHM+DQo+IC0gICAgICA8SW5wdXRzPiQoVGFyZ2V0
UGF0aCk7JChUYXJnZXREaXIpJChUYXJnZXROYW1lKS5wZGI8L0lucHV0cz4NCj4gLSAgICA8L0N1
c3RvbUJ1aWxkU3RlcD4NCj4gLSAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPg0KPiAtICA8SXRlbUdy
b3VwPg0KPiAtICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1YmFnZW50
XGVycm9ycy5jcHAiPg0KPiAtICAgICAgPFByZWNvbXBpbGVkSGVhZGVyDQo+IENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPk5vdFVzaW5n
PC9Qcg0KPiBlY29tcGlsZWRIZWFkZXI+DQo+IC0gICAgICA8UHJlY29tcGlsZWRIZWFkZXINCj4g
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCci
Pk5vdFVzaW5nPC9QcmVjDQo+IG9tcGlsZWRIZWFkZXI+DQo+IC0gICAgPC9DbENvbXBpbGU+DQo+
IC0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcc3RkYWZ4
LmNwcCI+DQo+IC0gICAgICA8UHJlY29tcGlsZWRIZWFkZXINCj4gQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Tm90VXNpbmc8L1ByDQo+
IGVjb21waWxlZEhlYWRlcj4NCj4gLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcg0KPiBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Tm90VXNp
bmc8L1ByZWMNCj4gb21waWxlZEhlYWRlcj4NCj4gLSAgICA8L0NsQ29tcGlsZT4NCj4gLSAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2VudFxXbWlBY2Nlc3Nvci5j
cHAiPg0KPiAtICAgICAgPFByZWNvbXBpbGVkSGVhZGVyDQo+IENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj5DcmVhdGU8L1ByZWNvDQo+IG1w
aWxlZEhlYWRlcj4NCj4gLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcg0KPiBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPkNyZWF0ZTwvUHJlY29t
cA0KPiBpbGVkSGVhZGVyPg0KPiAtICAgICAgPFByZWNvbXBpbGVkSGVhZGVyDQo+IENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPk5vdFVz
aW5nPC9Qcg0KPiBlY29tcGlsZWRIZWFkZXI+DQo+IC0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIN
Cj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2
NCciPk5vdFVzaW5nPC9QcmVjDQo+IG9tcGlsZWRIZWFkZXI+DQo+IC0gICAgPC9DbENvbXBpbGU+
DQo+IC0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcWFNB
Y2Nlc3Nvci5jcHAiPg0KPiAtICAgICAgPFByZWNvbXBpbGVkSGVhZGVyDQo+IENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj5DcmVhdGU8L1By
ZWNvDQo+IG1waWxlZEhlYWRlcj4NCj4gLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcg0KPiBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPkNyZWF0
ZTwvUHJlY29tcA0KPiBpbGVkSGVhZGVyPg0KPiAtICAgICAgPFByZWNvbXBpbGVkSGVhZGVyDQo+
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4z
MiciPk5vdFVzaW5nPC9Qcg0KPiBlY29tcGlsZWRIZWFkZXI+DQo+IC0gICAgICA8UHJlY29tcGls
ZWRIZWFkZXINCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfHg2NCciPk5vdFVzaW5nPC9QcmVjDQo+IG9tcGlsZWRIZWFkZXI+DQo+IC0gICAgPC9D
bENvbXBpbGU+DQo+IC0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHVi
YWdlbnRcWFNlcnZpY2UuY3BwIj4NCj4gLSAgICAgIDxQcmVjb21waWxlZEhlYWRlcg0KPiBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Q3Jl
YXRlPC9QcmVjbw0KPiBtcGlsZWRIZWFkZXI+DQo+IC0gICAgICA8UHJlY29tcGlsZWRIZWFkZXIN
Cj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQn
Ij5DcmVhdGU8L1ByZWNvbXANCj4gaWxlZEhlYWRlcj4NCj4gLSAgICAgIDxQcmVjb21waWxlZEhl
YWRlcg0KPiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2V8V2luMzInIj5Ob3RVc2luZzwvUHINCj4gZWNvbXBpbGVkSGVhZGVyPg0KPiAtICAgICAgPFBy
ZWNvbXBpbGVkSGVhZGVyDQo+IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZXx4NjQnIj5Ob3RVc2luZzwvUHJlYw0KPiBvbXBpbGVkSGVhZGVyPg0KPiAt
ICAgICAgPFByZXByb2Nlc3NUb0ZpbGUNCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPmZhbHNlPC9QcmVwcm9jDQo+IGVzc1RvRmlsZT4N
Cj4gLSAgICA8L0NsQ29tcGlsZT4NCj4gLSAgPC9JdGVtR3JvdXA+DQo+IC0gIDxJdGVtR3JvdXA+
DQo+IC0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcc3Rk
YWZ4LmgiIC8+DQo+IC0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHVi
YWdlbnRcV21pQWNjZXNzb3IuaCIgLz4NCj4gLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4u
XHNyY1x3aW4zMnN0dWJhZ2VudFxYU0FjY2Vzc29yLmgiIC8+DQo+IC0gICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlwuLlxzcmNcd2luMzJzdHViYWdlbnRcWFNlcnZpY2UuaCIgLz4NCj4gLSAgPC9J
dGVtR3JvdXA+DQo+IC0gIDxJdGVtR3JvdXA+DQo+IC0gICAgPEN1c3RvbUJ1aWxkIEluY2x1ZGU9
Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2VudFxtZXNzYWdlcy5tYyI+DQo+IC0gICAgICA8RmlsZVR5
cGU+RG9jdW1lbnQ8L0ZpbGVUeXBlPg0KPiAtICAgICAgPENvbW1hbmQNCj4gQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPm1jDQo+ICUoRnVs
bFBhdGgpPC9Db21tYW5kPg0KPiAtICAgICAgPENvbW1hbmQNCj4gQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj5tYw0KPiAlKEZ1bGxQYXRoKTwv
Q29tbWFuZD4NCj4gLSAgICAgIDxPdXRwdXRzDQo+IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4lKEZpbGVuYW1lKS5yYw0KPiA7JShGaWxl
bmFtZSkuaDwvT3V0cHV0cz4NCj4gLSAgICAgIDxPdXRwdXRzDQo+IENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+JShGaWxlbmFtZSkucmM7JQ0K
PiAoRmlsZW5hbWUpLmg8L091dHB1dHM+DQo+IC0gICAgICA8Q29tbWFuZA0KPiBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj5tYw0KPiAl
KEZ1bGxQYXRoKTwvQ29tbWFuZD4NCj4gLSAgICAgIDxDb21tYW5kDQo+IENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5tYw0KPiAlKEZ1bGxQ
YXRoKTwvQ29tbWFuZD4NCj4gLSAgICAgIDxPdXRwdXRzDQo+IENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPiUoRmlsZW5hbWUpLg0KPiBy
YzslKEZpbGVuYW1lKS5oPC9PdXRwdXRzPg0KPiAtICAgICAgPE91dHB1dHMNCj4gQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPiUoRmlsZW5h
bWUpLnJjOw0KPiAlKEZpbGVuYW1lKS5oPC9PdXRwdXRzPg0KPiAtICAgIDwvQ3VzdG9tQnVpbGQ+
DQo+IC0gIDwvSXRlbUdyb3VwPg0KPiAtICA8SXRlbUdyb3VwPg0KPiAtICAgIDxSZXNvdXJjZUNv
bXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHdpbjMyc3R1YmFnZW50XHczMnhhZ2VudC5yYyIgLz4N
Cj4gLSAgPC9JdGVtR3JvdXA+DQo+IC0gIDxJdGVtR3JvdXA+DQo+IC0gICAgPEltYWdlIEluY2x1
ZGU9Ii4uXC4uXHNyY1x3aW4zMnN0dWJhZ2VudFx4ZW4uaWNvIiAvPg0KPiAtICA8L0l0ZW1Hcm91
cD4NCj4gLSAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAu
dGFyZ2V0cyIgLz4NCj4gLSAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4N
Cj4gLSAgPC9JbXBvcnRHcm91cD4NCj4gLTwvUHJvamVjdD4NCj4gXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlDQo+IGRpZmYgLS1naXQgYS92czIwMTMvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hw
cm9qLnVzZXINCj4gYi92czIwMTMvbGl0ZWFnZW50L0xpdGVBZ2VudC52Y3hwcm9qLnVzZXINCj4g
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDUwZjNjYmUuLjAwMDAwMDANCj4gLS0t
IGEvdnMyMDEzL2xpdGVhZ2VudC9MaXRlQWdlbnQudmN4cHJvai51c2VyDQo+ICsrKyAvZGV2L251
bGwNCj4gQEAgLTEsNCArMCwwIEBADQo+IC08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1
dGYtOCI/Pg0KPiAtPFByb2plY3QgVG9vbHNWZXJzaW9uPSI0LjAiDQo+IHhtbG5zPSJodHRwOi8v
c2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPg0KPiAtICA8UHJv
cGVydHlHcm91cCAvPg0KPiAtPC9Qcm9qZWN0Pg0KPiBcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUNCj4gZGlmZiAtLWdpdCBhL3ZzMjAxMy94ZW5hZ2VudC94ZW5hZ2VudC52Y3hwcm9qDQo+IGIv
dnMyMDEzL3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2oNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQN
Cj4gaW5kZXggMDAwMDAwMC4uNDhlZjNmYw0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL3ZzMjAx
My94ZW5hZ2VudC94ZW5hZ2VudC52Y3hwcm9qDQo+IEBAIC0wLDAgKzEsMjIxIEBADQo+ICs8P3ht
bCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/Pg0KPiArPFByb2plY3QgRGVmYXVsdFRh
cmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQuMCINCj4geG1sbnM9Imh0dHA6Ly9zY2hlbWFz
Lm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+DQo+ICsgIDxJdGVtR3JvdXAg
TGFiZWw9IlByb2plY3RDb25maWd1cmF0aW9ucyI+DQo+ICsgICAgPFByb2plY3RDb25maWd1cmF0
aW9uIEluY2x1ZGU9IkRlYnVnfFdpbjMyIj4NCj4gKyAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVn
PC9Db25maWd1cmF0aW9uPg0KPiArICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4NCj4g
KyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPg0KPiArICAgIDxQcm9qZWN0Q29uZmlndXJhdGlv
biBJbmNsdWRlPSJEZWJ1Z3x4NjQiPg0KPiArICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0Nv
bmZpZ3VyYXRpb24+DQo+ICsgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4NCj4gKyAgICA8
L1Byb2plY3RDb25maWd1cmF0aW9uPg0KPiArICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNs
dWRlPSJSZWxlYXNlfFdpbjMyIj4NCj4gKyAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0Nv
bmZpZ3VyYXRpb24+DQo+ICsgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPg0KPiArICAg
IDwvUHJvamVjdENvbmZpZ3VyYXRpb24+DQo+ICsgICAgPFByb2plY3RDb25maWd1cmF0aW9uIElu
Y2x1ZGU9IlJlbGVhc2V8eDY0Ij4NCj4gKyAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0Nv
bmZpZ3VyYXRpb24+DQo+ICsgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4NCj4gKyAgICA8
L1Byb2plY3RDb25maWd1cmF0aW9uPg0KPiArICA8L0l0ZW1Hcm91cD4NCj4gKyAgPFByb3BlcnR5
R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPg0KPiArICAgIDxQcm9qZWN0R3VpZD57MkU2MUQyQ0MtODY1
RS00NDJDLThDODMtDQo+IEI4REFGRDdCQkQzQn08L1Byb2plY3RHdWlkPg0KPiArICAgIDxLZXl3
b3JkPldpbjMyUHJvajwvS2V5d29yZD4NCj4gKyAgICA8Um9vdE5hbWVzcGFjZT54ZW5hZ2VudDwv
Um9vdE5hbWVzcGFjZT4NCj4gKyAgICA8UHJvamVjdE5hbWU+eGVuYWdlbnQ8L1Byb2plY3ROYW1l
Pg0KPiArICA8L1Byb3BlcnR5R3JvdXA+DQo+ICsgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1Rhcmdl
dHNQYXRoKVxNaWNyb3NvZnQuQ3BwLkRlZmF1bHQucHJvcHMiIC8+DQo+ICsgIDxQcm9wZXJ0eUdy
b3VwDQo+IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
V2luMzInIg0KPiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+DQo+ICsgICAgPENvbmZpZ3VyYXRpb25U
eXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4NCj4gKyAgICA8VXNlRGVidWdMaWJy
YXJpZXM+dHJ1ZTwvVXNlRGVidWdMaWJyYXJpZXM+DQo+ICsgICAgPFBsYXRmb3JtVG9vbHNldD5X
aW5kb3dzQXBwbGljYXRpb25Gb3JEcml2ZXJzOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+DQo+ICsgICAg
PENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4NCj4gKyAgPC9Qcm9wZXJ0eUdy
b3VwPg0KPiArICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfHg2NCciDQo+IExhYmVsPSJDb25maWd1cmF0aW9uIj4NCj4gKyAg
ICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPg0KPiAr
ICAgIDxVc2VEZWJ1Z0xpYnJhcmllcz50cnVlPC9Vc2VEZWJ1Z0xpYnJhcmllcz4NCj4gKyAgICA8
UGxhdGZvcm1Ub29sc2V0PldpbmRvd3NBcHBsaWNhdGlvbkZvckRyaXZlcnM4LjE8L1BsYXRmb3Jt
VG9vbHNldD4NCj4gKyAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0Pg0K
PiArICA8L1Byb3BlcnR5R3JvdXA+DQo+ICsgIDxQcm9wZXJ0eUdyb3VwDQo+IENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciDQo+IExhYmVs
PSJDb25maWd1cmF0aW9uIj4NCj4gKyAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248
L0NvbmZpZ3VyYXRpb25UeXBlPg0KPiArICAgIDxVc2VEZWJ1Z0xpYnJhcmllcz5mYWxzZTwvVXNl
RGVidWdMaWJyYXJpZXM+DQo+ICsgICAgPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dzQXBwbGljYXRp
b25Gb3JEcml2ZXJzOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+DQo+ICsgICAgPFdob2xlUHJvZ3JhbU9w
dGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+DQo+ICsgICAgPENoYXJh
Y3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4NCj4gKyAgPC9Qcm9wZXJ0eUdyb3VwPg0K
PiArICA8UHJvcGVydHlHcm91cA0KPiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8eDY0JyINCj4gTGFiZWw9IkNvbmZpZ3VyYXRpb24iPg0KPiArICAg
IDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+DQo+ICsg
ICAgPFVzZURlYnVnTGlicmFyaWVzPmZhbHNlPC9Vc2VEZWJ1Z0xpYnJhcmllcz4NCj4gKyAgICA8
UGxhdGZvcm1Ub29sc2V0PldpbmRvd3NBcHBsaWNhdGlvbkZvckRyaXZlcnM4LjE8L1BsYXRmb3Jt
VG9vbHNldD4NCj4gKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJv
Z3JhbU9wdGltaXphdGlvbj4NCj4gKyAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFj
dGVyU2V0Pg0KPiArICA8L1Byb3BlcnR5R3JvdXA+DQo+ICsgIDxJbXBvcnQgUHJvamVjdD0iJChW
Q1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPg0KPiArICA8SW1wb3J0R3JvdXAg
TGFiZWw9IkV4dGVuc2lvblNldHRpbmdzIj4NCj4gKyAgPC9JbXBvcnRHcm91cD4NCj4gKyAgPElt
cG9ydEdyb3VwIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyINCj4gQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPg0KPiArICAgIDxJbXBvcnQgUHJv
amVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3Bz
Ig0KPiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBs
YXRmb3JtKS51c2VyLnByb3BzJykiDQo+IExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4N
Cj4gKyAgPC9JbXBvcnRHcm91cD4NCj4gKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyINCj4gTGFiZWw9IlByb3BlcnR5
U2hlZXRzIj4NCj4gKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29m
dC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyINCj4gQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNl
clJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIg0KPiBMYWJl
bD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+DQo+ICsgIDwvSW1wb3J0R3JvdXA+DQo+ICsgIDxJ
bXBvcnRHcm91cCBMYWJlbD0iUHJvcGVydHlTaGVldHMiDQo+IENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPg0KPiArICAgIDxJbXBvcnQg
UHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnBy
b3BzIg0KPiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4k
KFBsYXRmb3JtKS51c2VyLnByb3BzJykiDQo+IExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIg
Lz4NCj4gKyAgPC9JbXBvcnRHcm91cD4NCj4gKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIg0KPiBMYWJlbD0iUHJv
cGVydHlTaGVldHMiPg0KPiArICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWlj
cm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIg0KPiBDb25kaXRpb249ImV4aXN0cygn
JChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiDQo+
IExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4NCj4gKyAgPC9JbXBvcnRHcm91cD4NCj4g
KyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IlVzZXJNYWNyb3MiIC8+DQo+ICsgIDxQcm9wZXJ0eUdy
b3VwDQo+IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
V2luMzInIj4NCj4gKyAgICA8TGlua0luY3JlbWVudGFsPnRydWU8L0xpbmtJbmNyZW1lbnRhbD4N
Cj4gKyAgICA8T3V0RGlyPiQoU29sdXRpb25EaXIpJChQbGF0Zm9ybSlcJChDb25maWd1cmF0aW9u
TmFtZSlcPC9PdXREaXI+DQo+ICsgIDwvUHJvcGVydHlHcm91cD4NCj4gKyAgPFByb3BlcnR5R3Jv
dXANCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4
NjQnIj4NCj4gKyAgICA8TGlua0luY3JlbWVudGFsPnRydWU8L0xpbmtJbmNyZW1lbnRhbD4NCj4g
KyAgPC9Qcm9wZXJ0eUdyb3VwPg0KPiArICA8UHJvcGVydHlHcm91cA0KPiBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4NCj4gKyAgICA8
TGlua0luY3JlbWVudGFsPmZhbHNlPC9MaW5rSW5jcmVtZW50YWw+DQo+ICsgICAgPE91dERpcj4k
KFNvbHV0aW9uRGlyKSQoUGxhdGZvcm0pXCQoQ29uZmlndXJhdGlvbk5hbWUpXDwvT3V0RGlyPg0K
PiArICA8L1Byb3BlcnR5R3JvdXA+DQo+ICsgIDxQcm9wZXJ0eUdyb3VwDQo+IENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4NCj4gKyAgICA8
TGlua0luY3JlbWVudGFsPmZhbHNlPC9MaW5rSW5jcmVtZW50YWw+DQo+ICsgIDwvUHJvcGVydHlH
cm91cD4NCj4gKyAgPFByb3BlcnR5R3JvdXA+DQo+ICsgICAgPEluY2x1ZGVQYXRoPi4uXC4uXGlu
Y2x1ZGU7JChJbmNsdWRlUGF0aCk8L0luY2x1ZGVQYXRoPg0KPiArICA8L1Byb3BlcnR5R3JvdXA+
DQo+ICsgIDxJdGVtRGVmaW5pdGlvbkdyb3VwDQo+IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4NCj4gKyAgICA8Q2xDb21waWxlPg0KPiAr
ICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4NCj4g
KyAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+DQo+ICsgICAgICA8T3B0
aW1pemF0aW9uPkRpc2FibGVkPC9PcHRpbWl6YXRpb24+DQo+ICsNCj4gPFByZXByb2Nlc3NvckRl
ZmluaXRpb25zPldJTjMyO19ERUJVRztfV0lORE9XUztfQ1JUX1NFQ1VSRV9OT18NCj4gV0FSTklO
R1M7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPg0K
PiArICAgICAgPFNETENoZWNrPnRydWU8L1NETENoZWNrPg0KPiArDQo+IDxBZGRpdGlvbmFsSW5j
bHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7JChTb2x1dGlvbkRpcilceGVuYWdlbnQ7JChT
REtfSQ0KPiBOQ19QQVRIKTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlv
bmFsSW5jbHVkZURpcmVjdG9yaWVzPg0KPiArICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhy
ZWFkZWREZWJ1ZzwvUnVudGltZUxpYnJhcnk+DQo+ICsgICAgICA8UHJlY29tcGlsZWRIZWFkZXJG
aWxlIC8+DQo+ICsgICAgICA8UHJlY29tcGlsZWRIZWFkZXJPdXRwdXRGaWxlIC8+DQo+ICsgICAg
PC9DbENvbXBpbGU+DQo+ICsgICAgPExpbms+DQo+ICsgICAgICA8U3ViU3lzdGVtPldpbmRvd3M8
L1N1YlN5c3RlbT4NCj4gKyAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2Vu
ZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPg0KPiArDQo+IDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPlBv
d3Jwcm9mLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGkNCj4gb25hbERlcGVu
ZGVuY2llcz4NCj4gKyAgICA8L0xpbms+DQo+ICsgICAgPEN1c3RvbUJ1aWxkU3RlcD4NCj4gKyAg
ICAgIDxDb21tYW5kPnhjb3B5IC95ICQoVGFyZ2V0UGF0aCkNCj4gJChTb2x1dGlvbkRpcilcLi5c
eGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldClcDQo+ICsgICAgICAgICAgICB4Y29weSAveSAkKFRh
cmdldERpcil4ZW5hZ2VudC5wZGINCj4gJChTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0
Zm9ybVRhcmdldClcPC9Db21tYW5kPg0KPiArICAgIDwvQ3VzdG9tQnVpbGRTdGVwPg0KPiArICAg
IDxDdXN0b21CdWlsZFN0ZXA+DQo+ICsgICAgICA8TWVzc2FnZT5Db3B5aW5nIG91dHB1dCBmaWxl
czwvTWVzc2FnZT4NCj4gKw0KPiA8T3V0cHV0cz4kKFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwk
KFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0RmlsZU5hbWUpOyhTDQo+IG9sdXRpb25EaXIpXC4uXHhl
bmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXROYW1lKS5wZGI7JShPdXRwdXRzKTwvDQo+
IE91dHB1dHM+DQo+ICsgICAgICA8SW5wdXRzPiQoVGFyZ2V0UGF0aCk7JChUYXJnZXREaXIpJChU
YXJnZXROYW1lKS5wZGI8L0lucHV0cz4NCj4gKyAgICA8L0N1c3RvbUJ1aWxkU3RlcD4NCj4gKyAg
PC9JdGVtRGVmaW5pdGlvbkdyb3VwPg0KPiArICA8SXRlbURlZmluaXRpb25Hcm91cA0KPiBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPg0KPiAr
ICAgIDxDbENvbXBpbGU+DQo+ICsgICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Tm90VXNpbmc8L1By
ZWNvbXBpbGVkSGVhZGVyPg0KPiArICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdM
ZXZlbD4NCj4gKyAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4NCj4g
Kw0KPiA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X0RFQlVHO19XSU5ET1dTO19DUlRf
U0VDVVJFX05PXw0KPiBXQVJOSU5HUzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJv
Y2Vzc29yRGVmaW5pdGlvbnM+DQo+ICsgICAgICA8U0RMQ2hlY2s+dHJ1ZTwvU0RMQ2hlY2s+DQo+
ICsNCj4gPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5caW5jbHVkZTskKFNvbHV0
aW9uRGlyKVx4ZW5hZ2VudDskKFNES19JDQo+IE5DX1BBVEgpOyUoQWRkaXRpb25hbEluY2x1ZGVE
aXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+DQo+ICsgICAgICA8UnVu
dGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERlYnVnPC9SdW50aW1lTGlicmFyeT4NCj4gKyAgICAg
IDxQcmVjb21waWxlZEhlYWRlckZpbGUgLz4NCj4gKyAgICAgIDxQcmVjb21waWxlZEhlYWRlck91
dHB1dEZpbGUgLz4NCj4gKyAgICA8L0NsQ29tcGlsZT4NCj4gKyAgICA8TGluaz4NCj4gKyAgICAg
IDxTdWJTeXN0ZW0+V2luZG93czwvU3ViU3lzdGVtPg0KPiArICAgICAgPEdlbmVyYXRlRGVidWdJ
bmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+DQo+ICsNCj4gPEFkZGl0
aW9uYWxEZXBlbmRlbmNpZXM+UG93cnByb2YubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8
L0FkZGl0aQ0KPiBvbmFsRGVwZW5kZW5jaWVzPg0KPiArICAgIDwvTGluaz4NCj4gKyAgICA8Q3Vz
dG9tQnVpbGRTdGVwPg0KPiArICAgICAgPENvbW1hbmQ+eGNvcHkgL3kgJChUYXJnZXRQYXRoKQ0K
PiAkKFNvbHV0aW9uRGlyKVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KVwNCj4gKyAgICAg
ICAgICAgIHhjb3B5IC95ICQoVGFyZ2V0RGlyKXhlbmFnZW50LnBkYg0KPiAkKFNvbHV0aW9uRGly
KVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KVw8L0NvbW1hbmQ+DQo+ICsgICAgPC9DdXN0
b21CdWlsZFN0ZXA+DQo+ICsgICAgPEN1c3RvbUJ1aWxkU3RlcD4NCj4gKyAgICAgIDxNZXNzYWdl
PkNvcHlpbmcgb3V0cHV0IGZpbGVzPC9NZXNzYWdlPg0KPiArDQo+IDxPdXRwdXRzPiQoU29sdXRp
b25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXRGaWxlTmFtZSk7KFMN
Cj4gb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRhcmdldE5hbWUp
LnBkYjslKE91dHB1dHMpPC8NCj4gT3V0cHV0cz4NCj4gKyAgICAgIDxJbnB1dHM+JChUYXJnZXRQ
YXRoKTskKFRhcmdldERpcikkKFRhcmdldE5hbWUpLnBkYjwvSW5wdXRzPg0KPiArICAgIDwvQ3Vz
dG9tQnVpbGRTdGVwPg0KPiArICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+DQo+ICsgIDxJdGVtRGVm
aW5pdGlvbkdyb3VwDQo+IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZXxXaW4zMiciPg0KPiArICAgIDxDbENvbXBpbGU+DQo+ICsgICAgICA8V2Fybmlu
Z0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPg0KPiArICAgICAgPFByZWNvbXBpbGVkSGVhZGVy
Pk5vdFVzaW5nPC9QcmVjb21waWxlZEhlYWRlcj4NCj4gKyAgICAgIDxPcHRpbWl6YXRpb24+TWF4
U3BlZWQ8L09wdGltaXphdGlvbj4NCj4gKyAgICAgIDxGdW5jdGlvbkxldmVsTGlua2luZz50cnVl
PC9GdW5jdGlvbkxldmVsTGlua2luZz4NCj4gKyAgICAgIDxJbnRyaW5zaWNGdW5jdGlvbnM+dHJ1
ZTwvSW50cmluc2ljRnVuY3Rpb25zPg0KPiArDQo+IDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5X
SU4zMjtOREVCVUc7X0NSVF9TRUNVUkVfTk9fV0FSTklOR1M7DQo+IF9XSU5ET1dTOyUoUHJlcHJv
Y2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4NCj4gKyAgICAgIDxT
RExDaGVjaz50cnVlPC9TRExDaGVjaz4NCj4gKw0KPiA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcz4uLlwuLlxpbmNsdWRlOyQoU29sdXRpb25EaXIpXHhlbmFnZW50OyQoU0RLX0kNCj4gTkNf
UEFUSCk7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVE
aXJlY3Rvcmllcz4NCj4gKyAgICAgIDxCcm93c2VJbmZvcm1hdGlvbj50cnVlPC9Ccm93c2VJbmZv
cm1hdGlvbj4NCj4gKyAgICAgIDxQcmVwcm9jZXNzVG9GaWxlPmZhbHNlPC9QcmVwcm9jZXNzVG9G
aWxlPg0KPiArICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWQ8L1J1bnRpbWVMaWJy
YXJ5Pg0KPiArICAgIDwvQ2xDb21waWxlPg0KPiArICAgIDxMaW5rPg0KPiArICAgICAgPFN1YlN5
c3RlbT5XaW5kb3dzPC9TdWJTeXN0ZW0+DQo+ICsgICAgICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0
aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4NCj4gKyAgICAgIDxFbmFibGVDT01E
QVRGb2xkaW5nPnRydWU8L0VuYWJsZUNPTURBVEZvbGRpbmc+DQo+ICsgICAgICA8T3B0aW1pemVS
ZWZlcmVuY2VzPnRydWU8L09wdGltaXplUmVmZXJlbmNlcz4NCj4gKw0KPiA8QWRkaXRpb25hbERl
cGVuZGVuY2llcz5Qb3dycHJvZi5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRp
DQo+IG9uYWxEZXBlbmRlbmNpZXM+DQo+ICsgICAgPC9MaW5rPg0KPiArICAgIDxDdXN0b21CdWls
ZFN0ZXA+DQo+ICsgICAgICA8TWVzc2FnZT5Db3B5aW5nIG91dHB1dCBmaWxlczwvTWVzc2FnZT4N
Cj4gKyAgICAgIDxDb21tYW5kPnhjb3B5IC95ICQoVGFyZ2V0UGF0aCkNCj4gJChTb2x1dGlvbkRp
cilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldClcDQo+ICsgICAgICAgICAgeGNvcHkgL3kg
JChUYXJnZXREaXIpeGVuYWdlbnQucGRiDQo+ICQoU29sdXRpb25EaXIpXC4uXHhlbmlmYWNlXCQo
UGxhdGZvcm1UYXJnZXQpXDwvQ29tbWFuZD4NCj4gKw0KPiA8T3V0cHV0cz4kKFNvbHV0aW9uRGly
KVwuLlx4ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KSQoVGFyZ2V0RmlsZU5hbWUpOyhTDQo+IG9s
dXRpb25EaXIpXC4uXHhlbmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXROYW1lKS5wZGI7
JShPdXRwdXRzKTwvDQo+IE91dHB1dHM+DQo+ICsgICAgICA8SW5wdXRzPiQoVGFyZ2V0UGF0aCk7
JChUYXJnZXREaXIpJChUYXJnZXROYW1lKS5wZGI8L0lucHV0cz4NCj4gKyAgICA8L0N1c3RvbUJ1
aWxkU3RlcD4NCj4gKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPg0KPiArICA8SXRlbURlZmluaXRp
b25Hcm91cA0KPiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8eDY0JyI+DQo+ICsgICAgPENsQ29tcGlsZT4NCj4gKyAgICAgIDxXYXJuaW5nTGV2ZWw+
TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+DQo+ICsgICAgICA8UHJlY29tcGlsZWRIZWFkZXI+Tm90VXNp
bmc8L1ByZWNvbXBpbGVkSGVhZGVyPg0KPiArICAgICAgPE9wdGltaXphdGlvbj5NYXhTcGVlZDwv
T3B0aW1pemF0aW9uPg0KPiArICAgICAgPEZ1bmN0aW9uTGV2ZWxMaW5raW5nPnRydWU8L0Z1bmN0
aW9uTGV2ZWxMaW5raW5nPg0KPiArICAgICAgPEludHJpbnNpY0Z1bmN0aW9ucz50cnVlPC9JbnRy
aW5zaWNGdW5jdGlvbnM+DQo+ICsNCj4gPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO05E
RUJVRztfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUzsNCj4gX1dJTkRPV1M7JShQcmVwcm9jZXNzb3JE
ZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPg0KPiArICAgICAgPFNETENoZWNr
PnRydWU8L1NETENoZWNrPg0KPiArDQo+IDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4u
XC4uXGluY2x1ZGU7JChTb2x1dGlvbkRpcilceGVuYWdlbnQ7JChTREtfSQ0KPiBOQ19QQVRIKTsl
KEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9y
aWVzPg0KPiArICAgICAgPEJyb3dzZUluZm9ybWF0aW9uPnRydWU8L0Jyb3dzZUluZm9ybWF0aW9u
Pg0KPiArICAgICAgPFByZXByb2Nlc3NUb0ZpbGU+ZmFsc2U8L1ByZXByb2Nlc3NUb0ZpbGU+DQo+
ICsgICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZDwvUnVudGltZUxpYnJhcnk+DQo+
ICsgICAgPC9DbENvbXBpbGU+DQo+ICsgICAgPExpbms+DQo+ICsgICAgICA8U3ViU3lzdGVtPldp
bmRvd3M8L1N1YlN5c3RlbT4NCj4gKyAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1
ZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPg0KPiArICAgICAgPEVuYWJsZUNPTURBVEZvbGRp
bmc+dHJ1ZTwvRW5hYmxlQ09NREFURm9sZGluZz4NCj4gKyAgICAgIDxPcHRpbWl6ZVJlZmVyZW5j
ZXM+dHJ1ZTwvT3B0aW1pemVSZWZlcmVuY2VzPg0KPiArDQo+IDxBZGRpdGlvbmFsRGVwZW5kZW5j
aWVzPlBvd3Jwcm9mLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGkNCj4gb25h
bERlcGVuZGVuY2llcz4NCj4gKyAgICA8L0xpbms+DQo+ICsgICAgPEN1c3RvbUJ1aWxkU3RlcD4N
Cj4gKyAgICAgIDxNZXNzYWdlPkNvcHlpbmcgb3V0cHV0IGZpbGVzPC9NZXNzYWdlPg0KPiArICAg
ICAgPENvbW1hbmQ+eGNvcHkgL3kgJChUYXJnZXRQYXRoKQ0KPiAkKFNvbHV0aW9uRGlyKVwuLlx4
ZW5pZmFjZVwkKFBsYXRmb3JtVGFyZ2V0KVwNCj4gKyAgICAgICAgICB4Y29weSAveSAkKFRhcmdl
dERpcil4ZW5hZ2VudC5wZGINCj4gJChTb2x1dGlvbkRpcilcLi5ceGVuaWZhY2VcJChQbGF0Zm9y
bVRhcmdldClcPC9Db21tYW5kPg0KPiArDQo+IDxPdXRwdXRzPiQoU29sdXRpb25EaXIpXC4uXHhl
bmlmYWNlXCQoUGxhdGZvcm1UYXJnZXQpJChUYXJnZXRGaWxlTmFtZSk7KFMNCj4gb2x1dGlvbkRp
cilcLi5ceGVuaWZhY2VcJChQbGF0Zm9ybVRhcmdldCkkKFRhcmdldE5hbWUpLnBkYjslKE91dHB1
dHMpPC8NCj4gT3V0cHV0cz4NCj4gKyAgICAgIDxJbnB1dHM+JChUYXJnZXRQYXRoKTskKFRhcmdl
dERpcikkKFRhcmdldE5hbWUpLnBkYjwvSW5wdXRzPg0KPiArICAgIDwvQ3VzdG9tQnVpbGRTdGVw
Pg0KPiArICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+DQo+ICsgIDxJdGVtR3JvdXA+DQo+ICsgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuYWdlbnRcc2VydmljZS5jcHAiLz4NCj4g
KyAgPC9JdGVtR3JvdXA+DQo+ICsgIDxJdGVtR3JvdXA+DQo+ICsgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlwuLlxzcmNceGVuYWdlbnRcc2VydmljZS5oIiAvPg0KPiArICA8L0l0ZW1Hcm91cD4N
Cj4gKyAgPEl0ZW1Hcm91cD4NCj4gKyAgICA8Q3VzdG9tQnVpbGQgSW5jbHVkZT0iLi5cLi5cc3Jj
XHhlbmFnZW50XHhlbmFnZW50Lm1jIj4NCj4gKyAgICAgIDxGaWxlVHlwZT5Eb2N1bWVudDwvRmls
ZVR5cGU+DQo+ICsgICAgICA8Q29tbWFuZD5tYyAlKEZ1bGxQYXRoKTwvQ29tbWFuZD4NCj4gKyAg
ICAgIDxPdXRwdXRzPiUoRmlsZW5hbWUpLnJjOyUoRmlsZW5hbWUpLmg8L091dHB1dHM+DQo+ICsg
ICAgPC9DdXN0b21CdWlsZD4NCj4gKyAgPC9JdGVtR3JvdXA+DQo+ICsgIDxJdGVtR3JvdXA+DQo+
ICsgICAgPFJlc291cmNlQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuYWdlbnRceGVuYWdl
bnQucmMiIC8+DQo+ICsgIDwvSXRlbUdyb3VwPg0KPiArICA8SXRlbUdyb3VwPg0KPiArICAgIDxJ
bWFnZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuYWdlbnRceGVuLmljbyIgLz4NCj4gKyAgPC9JdGVt
R3JvdXA+DQo+ICsgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQu
Q3BwLnRhcmdldHMiIC8+DQo+ICsgIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFyZ2V0
cyI+DQo+ICsgIDwvSW1wb3J0R3JvdXA+DQo+ICs8L1Byb2plY3Q+DQo+IFwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQ0KPiBkaWZmIC0tZ2l0IGEvdnMyMDEzL3hlbmFnZW50L3hlbmFnZW50LnZj
eHByb2oudXNlcg0KPiBiL3ZzMjAxMy94ZW5hZ2VudC94ZW5hZ2VudC52Y3hwcm9qLnVzZXINCj4g
bmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMC4uNTBmM2NiZQ0KPiAtLS0gL2Rl
di9udWxsDQo+ICsrKyBiL3ZzMjAxMy94ZW5hZ2VudC94ZW5hZ2VudC52Y3hwcm9qLnVzZXINCj4g
QEAgLTAsMCArMSw0IEBADQo+ICs8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/
Pg0KPiArPFByb2plY3QgVG9vbHNWZXJzaW9uPSI0LjAiDQo+IHhtbG5zPSJodHRwOi8vc2NoZW1h
cy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPg0KPiArICA8UHJvcGVydHlH
cm91cCAvPg0KPiArPC9Qcm9qZWN0Pg0KPiBcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUNCj4g
ZGlmZiAtLWdpdCBhL3ZzMjAxMy94ZW5pZmFjZS5zbG4gYi92czIwMTMveGVuaWZhY2Uuc2xuDQo+
IGluZGV4IDQxM2I4NmEuLjEwNjhhM2EgMTAwNjQ0DQo+IC0tLSBhL3ZzMjAxMy94ZW5pZmFjZS5z
bG4NCj4gKysrIGIvdnMyMDEzL3hlbmlmYWNlLnNsbg0KPiBAQCAtOSw3ICs5LDcgQEAgUHJvamVj
dCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9DQo+ICJ4ZW5pZmFj
ZSIsICJ4ZW5pZmFjZVx4ZW5pZmENCj4gIAkJezg1QzczMUFELTJFQTItNDA0OS1BNTQyLUQyRDM4
RURFOTM4Q30gPSB7ODVDNzMxQUQtDQo+IDJFQTItNDA0OS1BNTQyLUQyRDM4RURFOTM4Q30NCj4g
IAlFbmRQcm9qZWN0U2VjdGlvbg0KPiAgRW5kUHJvamVjdA0KPiAtUHJvamVjdCgiezhCQzlDRUI4
LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJMaXRlQWdlbnQiLA0KPiAibGl0ZWFn
ZW50XExpdGVBZ2VudC52Y3hwcm9qIiwgInsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My0NCj4gQjhE
QUZEN0JCRDNCfSINCj4gK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkx
QkM5NDJ9IikgPSAieGVuYWdlbnQiLA0KPiAieGVuYWdlbnRceGVuYWdlbnQudmN4cHJvaiIsICJ7
MkU2MUQyQ0MtODY1RS00NDJDLThDODMtDQo+IEI4REFGRDdCQkQzQn0iDQo+ICBFbmRQcm9qZWN0
DQo+ICBQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0g
InBhY2thZ2UiLA0KPiAicGFja2FnZVxwYWNrYWdlLnZjeHByb2oiLCAiezlCMDcxQTM1LTg5N0Mt
NDc3QS1BRUI3LTk1Rjc3NjE4QTIxRH0iDQo+ICAJUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVu
ZGVuY2llcykgPSBwb3N0UHJvamVjdA0KPiAtLQ0KPiAxLjkuNC5tc3lzZ2l0LjENCj4gDQo+IA0K
PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiB3aW4t
cHYtZGV2ZWwgbWFpbGluZyBsaXN0DQo+IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9y
Zw0KPiBodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZv
L3dpbi1wdi1kZXZlbA0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJv
amVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlz
dGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Wed Jul 06 15:51:27 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 06 Jul 2016 15:51:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bKp6l-0001HF-HS; Wed, 06 Jul 2016 15:51:27 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=988999fe3=Paul.Durrant@citrix.com>)
 id 1bKp6k-0001Gg-6J
 for win-pv-devel@lists.xenproject.org; Wed, 06 Jul 2016 15:51:26 +0000
Received: from [85.158.137.68] by server-14.bemta-3.messagelabs.com id
 A7/C2-07949-DF82D775; Wed, 06 Jul 2016 15:51:25 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrLIsWRWlGSWpSXmKPExsWyU9JRQvePRm2
 4we9uPYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCacX/TPcaChwcYKx7t7WduYFywj7GLkZNDQsBP
 4vrRQ2wgNpuAjsTSo/OZQGwRgQKJ7+/nMYPYzAJqEtf3d7GC2MICIRJbzmyCqgmV6Lr+iBXCN
 pLYuW4PC4jNIqAiMWHmPzCbV8Bd4siu9+xdjFwcQgINjBI9d06BNXAKuEnsPXANbAGjgKzEl8
 bVUMvEJW49gThCQkBAYsme88wQtqjEy8f/WCFsA4mtS/cBLeAAqteUWL9LH6JVUWJK90N2iL2
 CEidnPgG7QQjoni2PD0CN4ZZY+fkPywRG0VlIts1CmDQLyaRZSCYtYGRZxahRnFpUllqka2Si
 l1SUmZ5RkpuYmaNraGCsl5taXJyYnpqTmFSsl5yfu4kRGC31DAyMOxhfHfc7xCjJwaQkysvyr
 TpciC8pP6UyI7E4I76oNCe1+BCjDAeHkgTvJfXacCHBotT01Iq0zBxg3MKkJTh4lER4xYGxK8
 RbXJCYW5yZDpE6xagoJc7LBZIQAElklObBtcFSxSVGWSlhXkYGBgYhnoLUotzMElT5V4ziHIx
 Kwrz/QbbzZOaVwE1/BbSYCWjxT5dqkMUliQgpqQbGlZfOMc5ve9So85tn0rpU5TJZBfXW1ZUa
 h3z3XLh1/P2l8FPt5vb/H5vH/BDScdfX3rnK6KLIVjVVHTdl85uBHekdS5S/ZOr5frJ5ZnwuR
 W5xlH5iimZlQn/N7c+WerN+6jnfcdpjc8mVYaqX+ZyspwxZty1aus4lrjCdKNg/q61GKaSh8o
 USS3FGoqEWc1FxIgDmBvb5EAMAAA==
X-Env-Sender: prvs=988999fe3=Paul.Durrant@citrix.com
X-Msg-Ref: server-7.tower-31.messagelabs.com!1467820284!41644734!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 23846 invoked from network); 6 Jul 2016 15:51:24 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-7.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 6 Jul 2016 15:51:24 -0000
X-IronPort-AV: E=Sophos;i="5.28,319,1464652800"; d="scan'208";a="25687411"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 2/6] Add device list to track XenIface
 device(s)
Thread-Index: AQHR1qlkdoL/rrENh0ipDWVkt5xH7qALjsgQ
Date: Wed, 6 Jul 2016 15:50:14 +0000
Message-ID: <f1bafc859a6f4e849f90572236661cdc@AMSPEX02CL03.citrite.net>
References: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
 <1467715091-13216-3-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1467715091-13216-3-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 2/6] Add device list to track
	XenIface	device(s)
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMDUgSnVseSAyMDE2IDExOjM4DQo+IFRvOiB3aW4tcHYt
ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gQ2M6IE93ZW4gU21pdGgNCj4gU3ViamVjdDog
W3dpbi1wdi1kZXZlbF0gW1BBVENIIDIvNl0gQWRkIGRldmljZSBsaXN0IHRvIHRyYWNrIFhlbklm
YWNlDQo+IGRldmljZShzKQ0KPiANCj4gVXNlcyBSZWdpc3RlckRldmljZU5vdGlmaWNhdGlvbkEg
YW5kIFNldHVwQXBpIHRvIHRyYWNrDQo+IEdVSURfSU5URVJGQUNFX1hFTklGQUNFIGRldmljZShz
KS4gQ2FsbHMgc2VydmljZSBiYXNlIGNsYXNzDQo+IGFmdGVyIGluc2VydGlvbiBhbmQgYmVmb3Jl
IHJlbW92ZSBjb21wbGV0ZS4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IE93ZW4gU21pdGggPG93ZW4u
c21pdGhAY2l0cml4LmNvbT4NCg0KQWNrZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50
QGNpdHJpeC5jb20+DQoNCj4gLS0tDQo+ICBzcmMveGVuYWdlbnQvZGV2aWNlbGlzdC5jcHAgICAg
ICB8IDI5Ng0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gIHNy
Yy94ZW5hZ2VudC9kZXZpY2VsaXN0LmggICAgICAgIHwgIDkyICsrKysrKysrKysrKw0KPiAgc3Jj
L3hlbmFnZW50L3NlcnZpY2UuY3BwICAgICAgICAgfCAgMjAgKystDQo+ICBzcmMveGVuYWdlbnQv
c2VydmljZS5oICAgICAgICAgICB8ICAxMSArLQ0KPiAgdnMyMDEyL3hlbmFnZW50L3hlbmFnZW50
LnZjeHByb2ogfCAgIDIgKw0KPiAgdnMyMDEzL3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2ogfCAg
IDIgKw0KPiAgNiBmaWxlcyBjaGFuZ2VkLCA0MjEgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMo
LSkNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMveGVuYWdlbnQvZGV2aWNlbGlzdC5jcHANCj4g
IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMveGVuYWdlbnQvZGV2aWNlbGlzdC5oDQo+IA0KPiBkaWZm
IC0tZ2l0IGEvc3JjL3hlbmFnZW50L2RldmljZWxpc3QuY3BwIGIvc3JjL3hlbmFnZW50L2Rldmlj
ZWxpc3QuY3BwDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAuLjVlOTQ4
YzENCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9zcmMveGVuYWdlbnQvZGV2aWNlbGlzdC5jcHAN
Cj4gQEAgLTAsMCArMSwyOTYgQEANCj4gKy8qIENvcHlyaWdodCAoYykgQ2l0cml4IFN5c3RlbXMg
SW5jLg0KPiArICogQWxsIHJpZ2h0cyByZXNlcnZlZC4NCj4gKyAqDQo+ICsgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLA0KPiArICogd2l0aCBvciB3
aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZA0KPiArICogdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoNCj4gKyAqDQo+ICsgKiAqICAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQ0KPiArICogICAg
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUNCj4gKyAq
ICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCj4gKyAqICogICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlDQo+ICsgKiAgICAgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZQ0KPiArICogICAgIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlcg0KPiArICog
ICAgIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uDQo+ICsgKg0KPiAr
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
DQo+ICsgKiBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLA0KPiArICogSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YNCj4gKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFDQo+ICsgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUg0KPiArICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsDQo+ICsgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLA0KPiArICogQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SDQo+ICsg
KiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTDQo+
ICsgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwNCj4gKyAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORw0KPiArICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQ0KPiArICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRg0KPiArICogU1VDSCBEQU1BR0UuDQo+ICsg
Ki8NCj4gKw0KPiArI2luY2x1ZGUgPHdpbmRvd3MuaD4NCj4gKyNpbmNsdWRlIDxzdHJpbmc+DQo+
ICsjaW5jbHVkZSA8c2V0dXBhcGkuaD4NCj4gKyNwcmFnbWEgY29tbWVudCAobGliICwgInNldHVw
YXBpLmxpYiIgKQ0KPiArDQo+ICsjaW5jbHVkZSAiZGV2aWNlbGlzdC5oIg0KPiArDQo+ICsvLyBk
ZWFsIHdpdGggU2V0dXBBcGkgYW5kIFJlZ2lzdGVyRGV2aWNlTm90aWZpY2F0aW9uIHVzaW5nIGRp
ZmZlcmVudCBzdHJpbmcNCj4gdHlwZXMNCj4gK3N0YXRpYyBzdGQ6OndzdHJpbmcgQ29udmVydChj
b25zdCBjaGFyKiBzdHIpDQo+ICt7DQo+ICsgICAgc3RkOjp3c3RyaW5nIHdzdHI7DQo+ICsgICAg
d3N0ci5yZXNlcnZlKHN0cmxlbihzdHIpICsgMSk7DQo+ICsgICAgTXVsdGlCeXRlVG9XaWRlQ2hh
cihDUF9BQ1AsIDAsIHN0ciwgLTEsIChMUFdTVFIpd3N0ci5kYXRhKCksDQo+IChpbnQpd3N0ci5j
YXBhY2l0eSgpKTsNCj4gKyAgICByZXR1cm4gd3N0cjsNCj4gK30NCj4gKw0KPiArc3RhdGljIHN0
ZDo6d3N0cmluZyBDb252ZXJ0KGNvbnN0IHdjaGFyX3QqIHdzdHIpDQo+ICt7DQo+ICsgICAgcmV0
dXJuIHN0ZDo6d3N0cmluZyh3c3RyKTsNCj4gK30NCj4gKw0KPiArQ0RldmljZTo6Q0RldmljZShj
b25zdCB3Y2hhcl90KiBwYXRoKSA6DQo+ICsgICAgbV9oYW5kbGUoSU5WQUxJRF9IQU5ETEVfVkFM
VUUpLCBtX3BhdGgocGF0aCksIG1fbm90aWZ5KE5VTEwpDQo+ICt7DQo+ICt9DQo+ICsNCj4gKy8q
dmlydHVhbCovIENEZXZpY2U6On5DRGV2aWNlKCkNCj4gK3sNCj4gKyAgICBDbG9zZSgpOw0KPiAr
fQ0KPiArDQo+ICtjb25zdCB3Y2hhcl90KiBDRGV2aWNlOjpQYXRoKCkgY29uc3QNCj4gK3sNCj4g
KyAgICByZXR1cm4gbV9wYXRoLmNfc3RyKCk7DQo+ICt9DQo+ICsNCj4gK0hBTkRMRSBDRGV2aWNl
OjpPcGVuKEhBTkRMRSBzdmMpDQo+ICt7DQo+ICsgICAgQ2xvc2UoKTsNCj4gKw0KPiArICAgIG1f
aGFuZGxlID0gQ3JlYXRlRmlsZVcobV9wYXRoLmNfc3RyKCksDQo+ICsgICAgICAgICAgICAgICAg
ICAgICAgICAgICBHRU5FUklDX1JFQUQgfCBHRU5FUklDX1dSSVRFLA0KPiArICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRklMRV9TSEFSRV9SRUFEIHwgRklMRV9TSEFSRV9XUklURSwNCj4gKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsDQo+ICsgICAgICAgICAgICAgICAgICAgICAg
ICAgICBPUEVOX0VYSVNUSU5HLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwNCj4g
KyAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOw0KPiArICAgIGlmIChtX2hhbmRsZSA9
PSBJTlZBTElEX0hBTkRMRV9WQUxVRSkNCj4gKyAgICAgICAgcmV0dXJuIElOVkFMSURfSEFORExF
X1ZBTFVFOw0KPiArDQo+ICsgICAgREVWX0JST0FEQ0FTVF9IQU5ETEUgZGV2aGRsID0geyAwIH07
DQo+ICsgICAgZGV2aGRsLmRiY2hfc2l6ZSA9IHNpemVvZihkZXZoZGwpOw0KPiArICAgIGRldmhk
bC5kYmNoX2RldmljZXR5cGUgPSBEQlRfREVWVFlQX0hBTkRMRTsNCj4gKyAgICBkZXZoZGwuZGJj
aF9oYW5kbGUgPSBtX2hhbmRsZTsNCj4gKw0KPiArICAgIG1fbm90aWZ5ID0gUmVnaXN0ZXJEZXZp
Y2VOb3RpZmljYXRpb24oc3ZjLCAmZGV2aGRsLA0KPiBERVZJQ0VfTk9USUZZX1NFUlZJQ0VfSEFO
RExFKTsNCj4gKyAgICBpZiAobV9ub3RpZnkgPT0gTlVMTCkgew0KPiArICAgICAgICBDbG9zZSgp
Ow0KPiArICAgICAgICByZXR1cm4gSU5WQUxJRF9IQU5ETEVfVkFMVUU7DQo+ICsgICAgfQ0KPiAr
DQo+ICsgICAgcmV0dXJuIG1faGFuZGxlOw0KPiArfQ0KPiArDQo+ICt2b2lkIENEZXZpY2U6OkNs
b3NlKCkNCj4gK3sNCj4gKyAgICBpZiAobV9oYW5kbGUgPT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUp
DQo+ICsgICAgICAgIHJldHVybjsNCj4gKyAgICBDbG9zZUhhbmRsZShtX2hhbmRsZSk7DQo+ICsg
ICAgbV9oYW5kbGUgPSBJTlZBTElEX0hBTkRMRV9WQUxVRTsNCj4gK30NCj4gKw0KPiArYm9vbCBD
RGV2aWNlOjpJb2N0bChEV09SRCBpb2N0bCwgdm9pZCogaW4sIERXT1JEIGluc3osIHZvaWQqIG91
dCwgRFdPUkQNCj4gb3V0c3osIERXT1JEKiBieXRlcyAvKj0gTlVMTCovKQ0KPiArew0KPiArICAg
IGlmIChtX2hhbmRsZSA9PSBJTlZBTElEX0hBTkRMRV9WQUxVRSkNCj4gKyAgICAgICAgcmV0dXJu
IGZhbHNlOw0KPiArDQo+ICsgICAgRFdPUkQgX2J5dGVzOw0KPiArICAgIGlmICghRGV2aWNlSW9D
b250cm9sKG1faGFuZGxlLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIGlvY3RsLA0KPiAr
ICAgICAgICAgICAgICAgICAgICAgICAgIGluLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg
IGluc3osDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgb3V0LA0KPiArICAgICAgICAgICAg
ICAgICAgICAgICAgIG91dHN6LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlcyA9
PSBOVUxMKSA/ICZfYnl0ZXMgOiBieXRlcywNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICBO
VUxMKSkNCj4gKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KPiArDQo+ICsgICAgcmV0dXJuIHRydWU7
DQo+ICt9DQo+ICsNCj4gK0NEZXZpY2VMaXN0OjpDRGV2aWNlTGlzdChjb25zdCBHVUlEJiBpdGYp
IDoNCj4gKyAgICBtX2d1aWQoaXRmKSwgbV9ub3RpZnkoTlVMTCksIG1faGFuZGxlKE5VTEwpLCBt
X2ltcGwoTlVMTCkNCj4gK3sNCj4gK30NCj4gKw0KPiArQ0RldmljZUxpc3Q6On5DRGV2aWNlTGlz
dCgpDQo+ICt7DQo+ICsgICAgU3RvcCgpOw0KPiArfQ0KPiArDQo+ICtib29sIENEZXZpY2VMaXN0
OjpTdGFydChIQU5ETEUgaGFuZGxlLCBJRGV2aWNlQ3JlYXRvciogaW1wbCkNCj4gK3sNCj4gKyAg
ICBTdG9wKCk7DQo+ICsNCj4gKyAgICBtX2hhbmRsZSA9IGhhbmRsZTsNCj4gKyAgICBtX2ltcGwg
PSBpbXBsOw0KPiArDQo+ICsgICAgREVWX0JST0FEQ0FTVF9ERVZJQ0VJTlRFUkZBQ0UgZGV2ID0g
eyAwIH07DQo+ICsgICAgZGV2LmRiY2Nfc2l6ZSA9IHNpemVvZihkZXYpOw0KPiArICAgIGRldi5k
YmNjX2RldmljZXR5cGUgPSBEQlRfREVWVFlQX0RFVklDRUlOVEVSRkFDRTsNCj4gKyAgICBkZXYu
ZGJjY19jbGFzc2d1aWQgPSBtX2d1aWQ7DQo+ICsNCj4gKyAgICBtX25vdGlmeSA9IFJlZ2lzdGVy
RGV2aWNlTm90aWZpY2F0aW9uQShoYW5kbGUsICZkZXYsDQo+IERFVklDRV9OT1RJRllfU0VSVklD
RV9IQU5ETEUpOw0KPiArICAgIGlmIChtX25vdGlmeSA9PSBOVUxMKQ0KPiArICAgICAgICByZXR1
cm4gZmFsc2U7DQo+ICsNCj4gKyAgICBIREVWSU5GTyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbmZvOw0KPiArICAgIFNQX0RFVklDRV9JTlRFUkZBQ0VfREFUQSAgICAgICAgICAgIGl0ZjsN
Cj4gKyAgICBQU1BfREVWSUNFX0lOVEVSRkFDRV9ERVRBSUxfREFUQSAgICBkZXRhaWw7DQo+ICsg
ICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWR4Ow0KPiArICAgIFVMT05H
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbjsNCj4gKw0KPiArICAgIGluZm8gPSBT
ZXR1cERpR2V0Q2xhc3NEZXZzKCZtX2d1aWQsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTlVMTCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLA0KPiAr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERJR0NGX1BSRVNFTlQgfCBESUdDRl9ERVZJ
Q0VJTlRFUkZBQ0UpOw0KPiArICAgIGlmIChpbmZvID09IElOVkFMSURfSEFORExFX1ZBTFVFKQ0K
PiArICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gbm9uIGZhdGFsLCBqdXN0IG1pc3NpbmcgYWxyZWFk
eSBwcmVzZW50IGRldmljZShzKQ0KPiArDQo+ICsgICAgaXRmLmNiU2l6ZSA9IHNpemVvZihTUF9E
RVZJQ0VfSU5URVJGQUNFX0RBVEEpOw0KPiArICAgIGZvciAoaWR4ID0gMDsNCj4gKyAgICAgICAg
U2V0dXBEaUVudW1EZXZpY2VJbnRlcmZhY2VzKGluZm8sIE5VTEwsICZtX2d1aWQsIGlkeCwgJml0
Zik7DQo+ICsgICAgICAgICsraWR4KSB7DQo+ICsgICAgICAgIFNldHVwRGlHZXREZXZpY2VJbnRl
cmZhY2VEZXRhaWwoaW5mbywNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAmaXRmLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5V
TEwsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwNCj4gKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbGVuLA0KPiArICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOw0KPiArICAgICAgICBkZXRhaWwg
PSAoUFNQX0RFVklDRV9JTlRFUkZBQ0VfREVUQUlMX0RBVEEpbmV3IEJZVEVbbGVuXTsNCj4gKyAg
ICAgICAgaWYgKGRldGFpbCA9PSBOVUxMKQ0KPiArICAgICAgICAgICAgY29udGludWU7DQo+ICsg
ICAgICAgIGRldGFpbC0+Y2JTaXplID0gc2l6ZW9mKFNQX0RFVklDRV9JTlRFUkZBQ0VfREVUQUlM
X0RBVEEpOw0KPiArICAgICAgICBpZiAoU2V0dXBEaUdldERldmljZUludGVyZmFjZURldGFpbChp
bmZvLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaXRm
LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWws
DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiwNCj4g
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwNCj4gKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCkpIHsNCj4gKyAg
ICAgICAgICAgIE9uRGV2aWNlQWRkZWQoQ29udmVydCgoY29uc3QgY2hhciopZGV0YWlsLT5EZXZp
Y2VQYXRoKSk7DQo+ICsgICAgICAgIH0NCj4gKyAgICAgICAgZGVsZXRlIFtdIGRldGFpbDsNCj4g
KyAgICAgICAgaXRmLmNiU2l6ZSA9IHNpemVvZihTUF9ERVZJQ0VfSU5URVJGQUNFX0RBVEEpOw0K
PiArICAgIH0NCj4gKyAgICBTZXR1cERpRGVzdHJveURldmljZUluZm9MaXN0KGluZm8pOw0KPiAr
ICAgIHJldHVybiB0cnVlOw0KPiArfQ0KPiArDQo+ICt2b2lkIENEZXZpY2VMaXN0OjpTdG9wKCkN
Cj4gK3sNCj4gKyAgICBpZiAobV9ub3RpZnkgIT0gTlVMTCkNCj4gKyAgICAgICAgVW5yZWdpc3Rl
ckRldmljZU5vdGlmaWNhdGlvbihtX25vdGlmeSk7DQo+ICsgICAgbV9ub3RpZnkgPSBOVUxMOw0K
PiArDQo+ICsgICAgZm9yIChEZXZpY2VNYXA6Oml0ZXJhdG9yIGl0ID0gbV9kZXZzLmJlZ2luKCk7
DQo+ICsgICAgICAgICAgICBpdCAhPSBtX2RldnMuZW5kKCk7DQo+ICsgICAgICAgICAgICArK2l0
KSB7DQo+ICsgICAgICAgIGRlbGV0ZSBpdC0+c2Vjb25kOw0KPiArICAgIH0NCj4gKyAgICBtX2Rl
dnMuY2xlYXIoKTsNCj4gK30NCj4gKw0KPiArdm9pZCBDRGV2aWNlTGlzdDo6T25EZXZpY2VFdmVu
dChEV09SRCBldnQsIExQVk9JRCBkYXRhKQ0KPiArew0KPiArICAgIFBERVZfQlJPQURDQVNUX0hE
UiAgICAgICAgICAgICAgaGRyOw0KPiArICAgIFBERVZfQlJPQURDQVNUX0RFVklDRUlOVEVSRkFD
RSAgaXRmOw0KPiArICAgIFBERVZfQlJPQURDQVNUX0hBTkRMRSAgICAgICAgICAgaGRsOw0KPiAr
DQo+ICsgICAgaGRyID0gKFBERVZfQlJPQURDQVNUX0hEUilkYXRhOw0KPiArICAgIHN3aXRjaCAo
ZXZ0KSB7DQo+ICsgICAgY2FzZSBEQlRfREVWSUNFQVJSSVZBTDoNCj4gKyAgICAgICAgaWYgKGhk
ci0+ZGJjaF9kZXZpY2V0eXBlID09IERCVF9ERVZUWVBfREVWSUNFSU5URVJGQUNFKSB7DQo+ICsg
ICAgICAgICAgICBpdGYgPSAoUERFVl9CUk9BRENBU1RfREVWSUNFSU5URVJGQUNFKWhkcjsNCj4g
KyAgICAgICAgICAgIE9uRGV2aWNlQWRkZWQoQ29udmVydCgoY29uc3Qgd2NoYXJfdCopaXRmLT5k
YmNjX25hbWUpKTsNCj4gKyAgICAgICAgfQ0KPiArICAgICAgICBicmVhazsNCj4gKw0KPiArICAg
IGNhc2UgREJUX0RFVklDRVFVRVJZUkVNT1ZFOg0KPiArICAgICAgICBpZiAoaGRyLT5kYmNoX2Rl
dmljZXR5cGUgPT0gREJUX0RFVlRZUF9IQU5ETEUpIHsNCj4gKyAgICAgICAgICAgIGhkbCA9IChQ
REVWX0JST0FEQ0FTVF9IQU5ETEUpaGRyOw0KPiArICAgICAgICAgICAgT25EZXZpY2VRdWVyeVJl
bW92ZShoZGwtPmRiY2hfaGFuZGxlKTsNCj4gKyAgICAgICAgfQ0KPiArICAgICAgICBicmVhazsN
Cj4gKw0KPiArICAgIGNhc2UgREJUX0RFVklDRVJFTU9WRVBFTkRJTkc6DQo+ICsgICAgICAgIGlm
IChoZHItPmRiY2hfZGV2aWNldHlwZSA9PSBEQlRfREVWVFlQX0hBTkRMRSkgew0KPiArICAgICAg
ICAgICAgaGRsID0gKFBERVZfQlJPQURDQVNUX0hBTkRMRSloZHI7DQo+ICsgICAgICAgICAgICBV
bnJlZ2lzdGVyRGV2aWNlTm90aWZpY2F0aW9uKGhkbC0+ZGJjaF9oZGV2bm90aWZ5KTsNCj4gKyAg
ICAgICAgICAgIE9uRGV2aWNlUmVtb3ZlZChoZGwtPmRiY2hfaGFuZGxlKTsNCj4gKyAgICAgICAg
fQ0KPiArICAgICAgICBicmVhazsNCj4gKw0KPiArICAgIGRlZmF1bHQ6DQo+ICsgICAgICAgIGJy
ZWFrOw0KPiArICAgIH0NCj4gK30NCj4gKw0KPiArQ0RldmljZSogQ0RldmljZUxpc3Q6OkdldEZp
cnN0RGV2aWNlKCkNCj4gK3sNCj4gKyAgICBEZXZpY2VNYXA6Oml0ZXJhdG9yIGl0ID0gbV9kZXZz
LmJlZ2luKCk7DQo+ICsgICAgaWYgKGl0ID09IG1fZGV2cy5lbmQoKSkNCj4gKyAgICAgICAgcmV0
dXJuIE5VTEw7DQo+ICsgICAgcmV0dXJuIGl0LT5zZWNvbmQ7DQo+ICt9DQo+ICsNCj4gK3ZvaWQg
Q0RldmljZUxpc3Q6Ok9uRGV2aWNlQWRkZWQoY29uc3Qgc3RkOjp3c3RyaW5nJiBwYXRoKQ0KPiAr
ew0KPiArICAgIENEZXZpY2UqIGRldjsNCj4gKyAgICBpZiAobV9pbXBsID09IE5VTEwpDQo+ICsg
ICAgICAgIGRldiA9IG5ldyBDRGV2aWNlKHBhdGguY19zdHIoKSk7DQo+ICsgICAgZWxzZQ0KPiAr
ICAgICAgICBkZXYgPSBtX2ltcGwtPkNyZWF0ZShwYXRoLmNfc3RyKCkpOw0KPiArICAgIGlmIChk
ZXYgPT0gTlVMTCkNCj4gKyAgICAgICAgcmV0dXJuOyAvLyBjcmVhdGUgZmFpbGVkDQo+ICsNCj4g
KyAgICBIQU5ETEUgaGFuZGxlID0gZGV2LT5PcGVuKG1faGFuZGxlKTsNCj4gKyAgICBpZiAoaGFu
ZGxlID09IElOVkFMSURfSEFORExFX1ZBTFVFKSB7DQo+ICsgICAgICAgIGRlbGV0ZSBkZXY7DQo+
ICsgICAgICAgIHJldHVybjsgLy8gb3BlbiBmYWlsZWQNCj4gKyAgICB9DQo+ICsNCj4gKyAgICBE
ZXZpY2VNYXA6Oml0ZXJhdG9yIGl0ID0gbV9kZXZzLmZpbmQoaGFuZGxlKTsNCj4gKyAgICBpZiAo
aXQgIT0gbV9kZXZzLmVuZCgpKSB7DQo+ICsgICAgICAgIGRlbGV0ZSBkZXY7DQo+ICsgICAgICAg
IHJldHVybjsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICBtX2RldnNbaGFuZGxlXSA9IGRldjsNCj4g
KyAgICBpZiAobV9pbXBsKQ0KPiArICAgICAgICBtX2ltcGwtPk9uRGV2aWNlQWRkZWQoZGV2KTsN
Cj4gK30NCj4gKw0KPiArdm9pZCBDRGV2aWNlTGlzdDo6T25EZXZpY2VRdWVyeVJlbW92ZShIQU5E
TEUgaGFuZGxlKQ0KPiArew0KPiArICAgIERldmljZU1hcDo6aXRlcmF0b3IgaXQgPSBtX2RldnMu
ZmluZChoYW5kbGUpOw0KPiArICAgIGlmIChpdCA9PSBtX2RldnMuZW5kKCkpDQo+ICsgICAgICAg
IHJldHVybjsgLy8gc3B1cmlvdXMgZXZlbnQ/DQo+ICsNCj4gKyAgICBDRGV2aWNlKiBkZXYgPSBp
dC0+c2Vjb25kOw0KPiArICAgIGlmIChtX2ltcGwpDQo+ICsgICAgICAgIG1faW1wbC0+T25EZXZp
Y2VSZW1vdmVkKGRldik7DQo+ICsgICAgZGV2LT5DbG9zZSgpOw0KPiArfQ0KPiArDQo+ICt2b2lk
IENEZXZpY2VMaXN0OjpPbkRldmljZVJlbW92ZWQoSEFORExFIGhhbmRsZSkNCj4gK3sNCj4gKyAg
ICBEZXZpY2VNYXA6Oml0ZXJhdG9yIGl0ID0gbV9kZXZzLmZpbmQoaGFuZGxlKTsNCj4gKyAgICBp
ZiAoaXQgPT0gbV9kZXZzLmVuZCgpKQ0KPiArICAgICAgICByZXR1cm47IC8vIHNwdXJpb3VzIGV2
ZW50Pw0KPiArDQo+ICsgICAgQ0RldmljZSogZGV2ID0gaXQtPnNlY29uZDsNCj4gKyAgICBkZWxl
dGUgZGV2Ow0KPiArICAgIG1fZGV2cy5lcmFzZShpdCk7DQo+ICt9DQo+IGRpZmYgLS1naXQgYS9z
cmMveGVuYWdlbnQvZGV2aWNlbGlzdC5oIGIvc3JjL3hlbmFnZW50L2RldmljZWxpc3QuaA0KPiBu
ZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwLi5hNDIxZTU4DQo+IC0tLSAvZGV2
L251bGwNCj4gKysrIGIvc3JjL3hlbmFnZW50L2RldmljZWxpc3QuaA0KPiBAQCAtMCwwICsxLDky
IEBADQo+ICsvKiBDb3B5cmlnaHQgKGMpIENpdHJpeCBTeXN0ZW1zIEluYy4NCj4gKyAqIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuDQo+ICsgKg0KPiArICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3JtcywNCj4gKyAqIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQNCj4gKyAqIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZSBtZXQ6DQo+ICsgKg0KPiArICogKiAgIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUNCj4gKyAqICAgICBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlDQo+ICsgKiAgICAgZm9sbG93aW5nIGRp
c2NsYWltZXIuDQo+ICsgKiAqICAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQ0KPiArICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUNCj4gKyAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXINCj4gKyAqICAgICBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KPiArICoNCj4gKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORA0KPiArICogQ09OVFJJQlVU
T1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywNCj4gKyAq
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
DQo+ICsgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQ0KPiArICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VCBIT0xERVIgT1INCj4gKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLA0KPiArICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywNCj4gKyAqIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUg0KPiArICogU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUw0KPiArICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksDQo+ICsgKiBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcN
Cj4gKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UNCj4gKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YNCj4gKyAqIFNVQ0ggREFNQUdFLg0KPiArICovDQo+ICsNCj4gKyNpZm5k
ZWYgX19YRU5BR0VOVF9ERVZJQ0VMSVNUX0hfXw0KPiArI2RlZmluZSBfX1hFTkFHRU5UX0RFVklD
RUxJU1RfSF9fDQo+ICsNCj4gKyNpbmNsdWRlIDx3aW5kb3dzLmg+DQo+ICsjaW5jbHVkZSA8ZGJ0
Lmg+DQo+ICsjaW5jbHVkZSA8bWFwPg0KPiArI2luY2x1ZGUgPHN0cmluZz4NCj4gKw0KPiArY2xh
c3MgQ0RldmljZQ0KPiArew0KPiArcHVibGljOg0KPiArICAgIENEZXZpY2UoY29uc3Qgd2NoYXJf
dCogcGF0aCk7DQo+ICsgICAgdmlydHVhbCB+Q0RldmljZSgpOw0KPiArDQo+ICsgICAgY29uc3Qg
d2NoYXJfdCogUGF0aCgpIGNvbnN0Ow0KPiArDQo+ICsgICAgSEFORExFIE9wZW4oSEFORExFIHN2
Yyk7DQo+ICsgICAgdm9pZCBDbG9zZSgpOw0KPiArDQo+ICtwcm90ZWN0ZWQ6DQo+ICsgICAgYm9v
bCBJb2N0bChEV09SRCBpb2N0bCwgdm9pZCogaW4sIERXT1JEIGluc3osIHZvaWQqIG91dCwgRFdP
UkQgb3V0c3osDQo+IERXT1JEKiBieXRlcyA9IE5VTEwpOw0KPiArDQo+ICtwcml2YXRlOg0KPiAr
ICAgIHN0ZDo6d3N0cmluZyAgICBtX3BhdGg7DQo+ICsgICAgSEFORExFICAgICAgICAgIG1faGFu
ZGxlOw0KPiArICAgIEhERVZOT1RJRlkgICAgICBtX25vdGlmeTsNCj4gK307DQo+ICsNCj4gK2lu
dGVyZmFjZSBJRGV2aWNlQ3JlYXRvcg0KPiArew0KPiArICAgIHZpcnR1YWwgQ0RldmljZSogQ3Jl
YXRlKGNvbnN0IHdjaGFyX3QqIHBhdGgpID0gMDsNCj4gKyAgICB2aXJ0dWFsIHZvaWQgT25EZXZp
Y2VBZGRlZChDRGV2aWNlKiBkZXYpID0gMDsNCj4gKyAgICB2aXJ0dWFsIHZvaWQgT25EZXZpY2VS
ZW1vdmVkKENEZXZpY2UqIGRldikgPSAwOw0KPiArfTsNCj4gKw0KPiArY2xhc3MgQ0RldmljZUxp
c3QNCj4gK3sNCj4gK3B1YmxpYzoNCj4gKyAgICBDRGV2aWNlTGlzdChjb25zdCBHVUlEJiBpdGYp
Ow0KPiArICAgIH5DRGV2aWNlTGlzdCgpOw0KPiArDQo+ICsgICAgYm9vbCBTdGFydChIQU5ETEUg
c3ZjLCBJRGV2aWNlQ3JlYXRvciogaW1wbCk7DQo+ICsgICAgdm9pZCBTdG9wKCk7DQo+ICsgICAg
dm9pZCBPbkRldmljZUV2ZW50KERXT1JEIGV2dCwgTFBWT0lEIGRhdGEpOw0KPiArICAgIENEZXZp
Y2UqIEdldEZpcnN0RGV2aWNlKCk7DQo+ICsNCj4gK3ByaXZhdGU6DQo+ICsgICAgdm9pZCBPbkRl
dmljZUFkZGVkKGNvbnN0IHN0ZDo6d3N0cmluZyYgcGF0aCk7DQo+ICsgICAgdm9pZCBPbkRldmlj
ZVF1ZXJ5UmVtb3ZlKEhBTkRMRSBoYW5kbGUpOw0KPiArICAgIHZvaWQgT25EZXZpY2VSZW1vdmVk
KEhBTkRMRSBkZXYpOw0KPiArDQo+ICsgICAgdHlwZWRlZiBzdGQ6Om1hcDwgSEFORExFLCBDRGV2
aWNlKiA+IERldmljZU1hcDsNCj4gKw0KPiArICAgIEdVSUQgICAgICAgIG1fZ3VpZDsNCj4gKyAg
ICBEZXZpY2VNYXAgICBtX2RldnM7DQo+ICsgICAgSERFVk5PVElGWSAgbV9ub3RpZnk7DQo+ICsg
ICAgSEFORExFICAgICAgbV9oYW5kbGU7DQo+ICsgICAgSURldmljZUNyZWF0b3IqIG1faW1wbDsN
Cj4gK307DQo+ICsNCj4gKyNlbmRpZg0KPiBkaWZmIC0tZ2l0IGEvc3JjL3hlbmFnZW50L3NlcnZp
Y2UuY3BwIGIvc3JjL3hlbmFnZW50L3NlcnZpY2UuY3BwDQo+IGluZGV4IGI3OTQ1NDQuLmZlYzhl
OTUgMTAwNjQ0DQo+IC0tLSBhL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcA0KPiArKysgYi9zcmMv
eGVuYWdlbnQvc2VydmljZS5jcHANCj4gQEAgLTE1MSw3ICsxNTEsNyBAQCBzdGF0aWMgQ1hlbkFn
ZW50IHNfc2VydmljZTsNCj4gICAgICByZXR1cm4gc19zZXJ2aWNlLl9fU2VydmljZUNvbnRyb2xI
YW5kbGVyRXgocmVxLCBldnQsIGRhdGEsIGN0eHQpOw0KPiAgfQ0KPiANCj4gLUNYZW5BZ2VudDo6
Q1hlbkFnZW50KCkgOiBtX2hhbmRsZShOVUxMKSwgbV9ldnRsb2coTlVMTCkNCj4gK0NYZW5BZ2Vu
dDo6Q1hlbkFnZW50KCkgOiBtX2hhbmRsZShOVUxMKSwgbV9ldnRsb2coTlVMTCksDQo+IG1fZGV2
bGlzdChHVUlEX0lOVEVSRkFDRV9YRU5JRkFDRSkNCj4gIHsNCj4gICAgICBtX3N0YXR1cy5kd1Nl
cnZpY2VUeXBlICAgICAgICA9IFNFUlZJQ0VfV0lOMzI7DQo+ICAgICAgbV9zdGF0dXMuZHdDdXJy
ZW50U3RhdGUgICAgICAgPSBTRVJWSUNFX1NUQVJUX1BFTkRJTkc7DQo+IEBAIC0xNjksMTggKzE2
OSwzNiBAQCBDWGVuQWdlbnQ6On5DWGVuQWdlbnQoKQ0KPiAgICAgIENsb3NlSGFuZGxlKG1fc3Zj
X3N0b3ApOw0KPiAgfQ0KPiANCj4gKy8qdmlydHVhbCovIENEZXZpY2UqIENYZW5BZ2VudDo6Q3Jl
YXRlKGNvbnN0IHdjaGFyX3QqIHBhdGgpDQo+ICt7DQo+ICsgICAgcmV0dXJuIG5ldyBDRGV2aWNl
KHBhdGgpOw0KPiArfQ0KPiArDQo+ICsvKnZpcnR1YWwqLyB2b2lkIENYZW5BZ2VudDo6T25EZXZp
Y2VBZGRlZChDRGV2aWNlKiBkZXYpDQo+ICt7DQo+ICsgICAgQ1hlbkFnZW50OjpMb2coIk9uRGV2
aWNlQWRkZWQoJXdzKVxuIiwgZGV2LT5QYXRoKCkpOw0KPiArfQ0KPiArDQo+ICsvKnZpcnR1YWwq
LyB2b2lkIENYZW5BZ2VudDo6T25EZXZpY2VSZW1vdmVkKENEZXZpY2UqIGRldikNCj4gK3sNCj4g
KyAgICBDWGVuQWdlbnQ6OkxvZygiT25EZXZpY2VSZW1vdmVkKCV3cylcbiIsIGRldi0+UGF0aCgp
KTsNCj4gK30NCj4gKw0KPiAgdm9pZCBDWGVuQWdlbnQ6Ok9uU2VydmljZVN0YXJ0KCkNCj4gIHsN
Cj4gICAgICBDWGVuQWdlbnQ6OkxvZygiT25TZXJ2aWNlU3RhcnQoKVxuIik7DQo+ICsgICAgbV9k
ZXZsaXN0LlN0YXJ0KG1faGFuZGxlLCB0aGlzKTsNCj4gIH0NCj4gDQo+ICB2b2lkIENYZW5BZ2Vu
dDo6T25TZXJ2aWNlU3RvcCgpDQo+ICB7DQo+ICAgICAgQ1hlbkFnZW50OjpMb2coIk9uU2Vydmlj
ZVN0b3AoKVxuIik7DQo+ICsgICAgbV9kZXZsaXN0LlN0b3AoKTsNCj4gIH0NCj4gDQo+ICB2b2lk
IENYZW5BZ2VudDo6T25EZXZpY2VFdmVudChEV09SRCBldnQsIExQVk9JRCBkYXRhKQ0KPiAgew0K
PiArICAgIG1fZGV2bGlzdC5PbkRldmljZUV2ZW50KGV2dCwgZGF0YSk7DQo+ICB9DQo+IA0KPiAg
Ym9vbCBDWGVuQWdlbnQ6OlNlcnZpY2VNYWluTG9vcCgpDQo+IGRpZmYgLS1naXQgYS9zcmMveGVu
YWdlbnQvc2VydmljZS5oIGIvc3JjL3hlbmFnZW50L3NlcnZpY2UuaA0KPiBpbmRleCA3NDQ2ZTQx
Li5iYTNmNDMwIDEwMDY0NA0KPiAtLS0gYS9zcmMveGVuYWdlbnQvc2VydmljZS5oDQo+ICsrKyBi
L3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmgNCj4gQEAgLTM4LDcgKzM4LDkgQEANCj4gICNkZWZpbmUg
U1ZDX0RJU1BMQVlOQU1FIFBST0RVQ1RfTkFNRV9TVFIgIyMgIkludGVyZmFjZSBTZXJ2aWNlIg0K
PiAgI2RlZmluZSBTVkNfREVTQyAiTW9uaXRvcnMgYW5kIHByb3ZpZGVzIHZhcmlvdXMgbWV0cmlj
cyB0byBYZW5TdG9yZSINCj4gDQo+IC1jbGFzcyBDWGVuQWdlbnQNCj4gKyNpbmNsdWRlICJkZXZp
Y2VsaXN0LmgiDQo+ICsNCj4gK2NsYXNzIENYZW5BZ2VudCA6IHB1YmxpYyBJRGV2aWNlQ3JlYXRv
cg0KPiAgew0KPiAgcHVibGljOiAvLyBzdGF0aWNzDQo+ICAgICAgc3RhdGljIHZvaWQgTG9nKGNv
bnN0IGNoYXIqIGZtdCwgLi4uKTsNCj4gQEAgLTU0LDYgKzU2LDExIEBAIHB1YmxpYzogLy8gY3Rv
ci9kdG9yDQo+ICAgICAgQ1hlbkFnZW50KCk7DQo+ICAgICAgfkNYZW5BZ2VudCgpOw0KPiANCj4g
K3B1YmxpYzogLy8gSURldmljZUNyZWF0b3INCj4gKyAgICB2aXJ0dWFsIENEZXZpY2UqIENyZWF0
ZShjb25zdCB3Y2hhcl90KiBwYXRoKTsNCj4gKyAgICB2aXJ0dWFsIHZvaWQgT25EZXZpY2VBZGRl
ZChDRGV2aWNlKiBkZXYpOw0KPiArICAgIHZpcnR1YWwgdm9pZCBPbkRldmljZVJlbW92ZWQoQ0Rl
dmljZSogZGV2KTsNCj4gKw0KPiAgcHJpdmF0ZTogLy8gc2VydmljZSBldmVudHMNCj4gICAgICB2
b2lkIE9uU2VydmljZVN0YXJ0KCk7DQo+ICAgICAgdm9pZCBPblNlcnZpY2VTdG9wKCk7DQo+IEBA
IC02OSw2ICs3Niw4IEBAIHByaXZhdGU6IC8vIHNlcnZpY2Ugc3VwcG9ydA0KPiAgICAgIFNFUlZJ
Q0VfU1RBVFVTX0hBTkRMRSAgIG1faGFuZGxlOw0KPiAgICAgIEhBTkRMRSAgICAgICAgICAgICAg
ICAgIG1fZXZ0bG9nOw0KPiAgICAgIEhBTkRMRSAgICAgICAgICAgICAgICAgIG1fc3ZjX3N0b3A7
DQo+ICsNCj4gKyAgICBDRGV2aWNlTGlzdCAgICAgICAgICAgICBtX2Rldmxpc3Q7DQo+ICB9Ow0K
PiANCj4gICNlbmRpZg0KPiBkaWZmIC0tZ2l0IGEvdnMyMDEyL3hlbmFnZW50L3hlbmFnZW50LnZj
eHByb2oNCj4gYi92czIwMTIveGVuYWdlbnQveGVuYWdlbnQudmN4cHJvag0KPiBpbmRleCBhZjk5
ZjlkLi42YzljOTFjIDEwMDY0NA0KPiAtLS0gYS92czIwMTIveGVuYWdlbnQveGVuYWdlbnQudmN4
cHJvag0KPiArKysgYi92czIwMTIveGVuYWdlbnQveGVuYWdlbnQudmN4cHJvag0KPiBAQCAtMTk0
LDkgKzE5NCwxMSBAQA0KPiAgICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+DQo+ICAgIDxJdGVtR3Jv
dXA+DQo+ICAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuYWdlbnRcc2Vydmlj
ZS5jcHAiLz4NCj4gKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5hZ2VudFxk
ZXZpY2VsaXN0LmNwcCIvPg0KPiAgICA8L0l0ZW1Hcm91cD4NCj4gICAgPEl0ZW1Hcm91cD4NCj4g
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5hZ2VudFxzZXJ2aWNlLmgiIC8+
DQo+ICsgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuYWdlbnRcZGV2aWNlbGlz
dC5oIiAvPg0KPiAgICA8L0l0ZW1Hcm91cD4NCj4gICAgPEl0ZW1Hcm91cD4NCj4gICAgICA8Q3Vz
dG9tQnVpbGQgSW5jbHVkZT0iLi5cLi5cc3JjXHhlbmFnZW50XG1lc3NhZ2VzLm1jIj4NCj4gZGlm
ZiAtLWdpdCBhL3ZzMjAxMy94ZW5hZ2VudC94ZW5hZ2VudC52Y3hwcm9qDQo+IGIvdnMyMDEzL3hl
bmFnZW50L3hlbmFnZW50LnZjeHByb2oNCj4gaW5kZXggNDhlZjNmYy4uZDMxMjYyNiAxMDA2NDQN
Cj4gLS0tIGEvdnMyMDEzL3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2oNCj4gKysrIGIvdnMyMDEz
L3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2oNCj4gQEAgLTE5OCw5ICsxOTgsMTEgQEANCj4gICAg
PC9JdGVtRGVmaW5pdGlvbkdyb3VwPg0KPiAgICA8SXRlbUdyb3VwPg0KPiAgICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cLi5cc3JjXHhlbmFnZW50XHNlcnZpY2UuY3BwIi8+DQo+ICsgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuYWdlbnRcZGV2aWNlbGlzdC5jcHAiLz4NCj4g
ICAgPC9JdGVtR3JvdXA+DQo+ICAgIDxJdGVtR3JvdXA+DQo+ICAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlwuLlxzcmNceGVuYWdlbnRcc2VydmljZS5oIiAvPg0KPiArICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cLi5cc3JjXHhlbmFnZW50XGRldmljZWxpc3QuaCIgLz4NCj4gICAgPC9JdGVt
R3JvdXA+DQo+ICAgIDxJdGVtR3JvdXA+DQo+ICAgICAgPEN1c3RvbUJ1aWxkIEluY2x1ZGU9Ii4u
XC4uXHNyY1x4ZW5hZ2VudFx4ZW5hZ2VudC5tYyI+DQo+IC0tDQo+IDEuOS40Lm1zeXNnaXQuMQ0K
PiANCj4gDQo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
DQo+IHdpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gd2luLXB2LWRldmVsQGxpc3RzLnhlbnBy
b2plY3Qub3JnDQo+IGh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4v
bGlzdGluZm8vd2luLXB2LWRldmVsDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0
cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFp
bG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Wed Jul 06 15:51:27 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 06 Jul 2016 15:51:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bKp6l-0001HF-HS; Wed, 06 Jul 2016 15:51:27 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=988999fe3=Paul.Durrant@citrix.com>)
 id 1bKp6k-0001Gg-6J
 for win-pv-devel@lists.xenproject.org; Wed, 06 Jul 2016 15:51:26 +0000
Received: from [85.158.137.68] by server-14.bemta-3.messagelabs.com id
 A7/C2-07949-DF82D775; Wed, 06 Jul 2016 15:51:25 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrLIsWRWlGSWpSXmKPExsWyU9JRQvePRm2
 4we9uPYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCacX/TPcaChwcYKx7t7WduYFywj7GLkZNDQsBP
 4vrRQ2wgNpuAjsTSo/OZQGwRgQKJ7+/nMYPYzAJqEtf3d7GC2MICIRJbzmyCqgmV6Lr+iBXCN
 pLYuW4PC4jNIqAiMWHmPzCbV8Bd4siu9+xdjFwcQgINjBI9d06BNXAKuEnsPXANbAGjgKzEl8
 bVUMvEJW49gThCQkBAYsme88wQtqjEy8f/WCFsA4mtS/cBLeAAqteUWL9LH6JVUWJK90N2iL2
 CEidnPgG7QQjoni2PD0CN4ZZY+fkPywRG0VlIts1CmDQLyaRZSCYtYGRZxahRnFpUllqka2Si
 l1SUmZ5RkpuYmaNraGCsl5taXJyYnpqTmFSsl5yfu4kRGC31DAyMOxhfHfc7xCjJwaQkysvyr
 TpciC8pP6UyI7E4I76oNCe1+BCjDAeHkgTvJfXacCHBotT01Iq0zBxg3MKkJTh4lER4xYGxK8
 RbXJCYW5yZDpE6xagoJc7LBZIQAElklObBtcFSxSVGWSlhXkYGBgYhnoLUotzMElT5V4ziHIx
 Kwrz/QbbzZOaVwE1/BbSYCWjxT5dqkMUliQgpqQbGlZfOMc5ve9So85tn0rpU5TJZBfXW1ZUa
 h3z3XLh1/P2l8FPt5vb/H5vH/BDScdfX3rnK6KLIVjVVHTdl85uBHekdS5S/ZOr5frJ5ZnwuR
 W5xlH5iimZlQn/N7c+WerN+6jnfcdpjc8mVYaqX+ZyspwxZty1aus4lrjCdKNg/q61GKaSh8o
 USS3FGoqEWc1FxIgDmBvb5EAMAAA==
X-Env-Sender: prvs=988999fe3=Paul.Durrant@citrix.com
X-Msg-Ref: server-7.tower-31.messagelabs.com!1467820284!41644734!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 23846 invoked from network); 6 Jul 2016 15:51:24 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-7.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 6 Jul 2016 15:51:24 -0000
X-IronPort-AV: E=Sophos;i="5.28,319,1464652800"; d="scan'208";a="25687411"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 2/6] Add device list to track XenIface
 device(s)
Thread-Index: AQHR1qlkdoL/rrENh0ipDWVkt5xH7qALjsgQ
Date: Wed, 6 Jul 2016 15:50:14 +0000
Message-ID: <f1bafc859a6f4e849f90572236661cdc@AMSPEX02CL03.citrite.net>
References: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
 <1467715091-13216-3-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1467715091-13216-3-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 2/6] Add device list to track
	XenIface	device(s)
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMDUgSnVseSAyMDE2IDExOjM4DQo+IFRvOiB3aW4tcHYt
ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gQ2M6IE93ZW4gU21pdGgNCj4gU3ViamVjdDog
W3dpbi1wdi1kZXZlbF0gW1BBVENIIDIvNl0gQWRkIGRldmljZSBsaXN0IHRvIHRyYWNrIFhlbklm
YWNlDQo+IGRldmljZShzKQ0KPiANCj4gVXNlcyBSZWdpc3RlckRldmljZU5vdGlmaWNhdGlvbkEg
YW5kIFNldHVwQXBpIHRvIHRyYWNrDQo+IEdVSURfSU5URVJGQUNFX1hFTklGQUNFIGRldmljZShz
KS4gQ2FsbHMgc2VydmljZSBiYXNlIGNsYXNzDQo+IGFmdGVyIGluc2VydGlvbiBhbmQgYmVmb3Jl
IHJlbW92ZSBjb21wbGV0ZS4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IE93ZW4gU21pdGggPG93ZW4u
c21pdGhAY2l0cml4LmNvbT4NCg0KQWNrZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50
QGNpdHJpeC5jb20+DQoNCj4gLS0tDQo+ICBzcmMveGVuYWdlbnQvZGV2aWNlbGlzdC5jcHAgICAg
ICB8IDI5Ng0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gIHNy
Yy94ZW5hZ2VudC9kZXZpY2VsaXN0LmggICAgICAgIHwgIDkyICsrKysrKysrKysrKw0KPiAgc3Jj
L3hlbmFnZW50L3NlcnZpY2UuY3BwICAgICAgICAgfCAgMjAgKystDQo+ICBzcmMveGVuYWdlbnQv
c2VydmljZS5oICAgICAgICAgICB8ICAxMSArLQ0KPiAgdnMyMDEyL3hlbmFnZW50L3hlbmFnZW50
LnZjeHByb2ogfCAgIDIgKw0KPiAgdnMyMDEzL3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2ogfCAg
IDIgKw0KPiAgNiBmaWxlcyBjaGFuZ2VkLCA0MjEgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMo
LSkNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMveGVuYWdlbnQvZGV2aWNlbGlzdC5jcHANCj4g
IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMveGVuYWdlbnQvZGV2aWNlbGlzdC5oDQo+IA0KPiBkaWZm
IC0tZ2l0IGEvc3JjL3hlbmFnZW50L2RldmljZWxpc3QuY3BwIGIvc3JjL3hlbmFnZW50L2Rldmlj
ZWxpc3QuY3BwDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAuLjVlOTQ4
YzENCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9zcmMveGVuYWdlbnQvZGV2aWNlbGlzdC5jcHAN
Cj4gQEAgLTAsMCArMSwyOTYgQEANCj4gKy8qIENvcHlyaWdodCAoYykgQ2l0cml4IFN5c3RlbXMg
SW5jLg0KPiArICogQWxsIHJpZ2h0cyByZXNlcnZlZC4NCj4gKyAqDQo+ICsgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLA0KPiArICogd2l0aCBvciB3
aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZA0KPiArICogdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoNCj4gKyAqDQo+ICsgKiAqICAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQ0KPiArICogICAg
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUNCj4gKyAq
ICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCj4gKyAqICogICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlDQo+ICsgKiAgICAgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZQ0KPiArICogICAgIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlcg0KPiArICog
ICAgIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uDQo+ICsgKg0KPiAr
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
DQo+ICsgKiBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLA0KPiArICogSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YNCj4gKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFDQo+ICsgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUg0KPiArICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsDQo+ICsgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLA0KPiArICogQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SDQo+ICsg
KiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTDQo+
ICsgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwNCj4gKyAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORw0KPiArICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQ0KPiArICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRg0KPiArICogU1VDSCBEQU1BR0UuDQo+ICsg
Ki8NCj4gKw0KPiArI2luY2x1ZGUgPHdpbmRvd3MuaD4NCj4gKyNpbmNsdWRlIDxzdHJpbmc+DQo+
ICsjaW5jbHVkZSA8c2V0dXBhcGkuaD4NCj4gKyNwcmFnbWEgY29tbWVudCAobGliICwgInNldHVw
YXBpLmxpYiIgKQ0KPiArDQo+ICsjaW5jbHVkZSAiZGV2aWNlbGlzdC5oIg0KPiArDQo+ICsvLyBk
ZWFsIHdpdGggU2V0dXBBcGkgYW5kIFJlZ2lzdGVyRGV2aWNlTm90aWZpY2F0aW9uIHVzaW5nIGRp
ZmZlcmVudCBzdHJpbmcNCj4gdHlwZXMNCj4gK3N0YXRpYyBzdGQ6OndzdHJpbmcgQ29udmVydChj
b25zdCBjaGFyKiBzdHIpDQo+ICt7DQo+ICsgICAgc3RkOjp3c3RyaW5nIHdzdHI7DQo+ICsgICAg
d3N0ci5yZXNlcnZlKHN0cmxlbihzdHIpICsgMSk7DQo+ICsgICAgTXVsdGlCeXRlVG9XaWRlQ2hh
cihDUF9BQ1AsIDAsIHN0ciwgLTEsIChMUFdTVFIpd3N0ci5kYXRhKCksDQo+IChpbnQpd3N0ci5j
YXBhY2l0eSgpKTsNCj4gKyAgICByZXR1cm4gd3N0cjsNCj4gK30NCj4gKw0KPiArc3RhdGljIHN0
ZDo6d3N0cmluZyBDb252ZXJ0KGNvbnN0IHdjaGFyX3QqIHdzdHIpDQo+ICt7DQo+ICsgICAgcmV0
dXJuIHN0ZDo6d3N0cmluZyh3c3RyKTsNCj4gK30NCj4gKw0KPiArQ0RldmljZTo6Q0RldmljZShj
b25zdCB3Y2hhcl90KiBwYXRoKSA6DQo+ICsgICAgbV9oYW5kbGUoSU5WQUxJRF9IQU5ETEVfVkFM
VUUpLCBtX3BhdGgocGF0aCksIG1fbm90aWZ5KE5VTEwpDQo+ICt7DQo+ICt9DQo+ICsNCj4gKy8q
dmlydHVhbCovIENEZXZpY2U6On5DRGV2aWNlKCkNCj4gK3sNCj4gKyAgICBDbG9zZSgpOw0KPiAr
fQ0KPiArDQo+ICtjb25zdCB3Y2hhcl90KiBDRGV2aWNlOjpQYXRoKCkgY29uc3QNCj4gK3sNCj4g
KyAgICByZXR1cm4gbV9wYXRoLmNfc3RyKCk7DQo+ICt9DQo+ICsNCj4gK0hBTkRMRSBDRGV2aWNl
OjpPcGVuKEhBTkRMRSBzdmMpDQo+ICt7DQo+ICsgICAgQ2xvc2UoKTsNCj4gKw0KPiArICAgIG1f
aGFuZGxlID0gQ3JlYXRlRmlsZVcobV9wYXRoLmNfc3RyKCksDQo+ICsgICAgICAgICAgICAgICAg
ICAgICAgICAgICBHRU5FUklDX1JFQUQgfCBHRU5FUklDX1dSSVRFLA0KPiArICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRklMRV9TSEFSRV9SRUFEIHwgRklMRV9TSEFSRV9XUklURSwNCj4gKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsDQo+ICsgICAgICAgICAgICAgICAgICAgICAg
ICAgICBPUEVOX0VYSVNUSU5HLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwNCj4g
KyAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOw0KPiArICAgIGlmIChtX2hhbmRsZSA9
PSBJTlZBTElEX0hBTkRMRV9WQUxVRSkNCj4gKyAgICAgICAgcmV0dXJuIElOVkFMSURfSEFORExF
X1ZBTFVFOw0KPiArDQo+ICsgICAgREVWX0JST0FEQ0FTVF9IQU5ETEUgZGV2aGRsID0geyAwIH07
DQo+ICsgICAgZGV2aGRsLmRiY2hfc2l6ZSA9IHNpemVvZihkZXZoZGwpOw0KPiArICAgIGRldmhk
bC5kYmNoX2RldmljZXR5cGUgPSBEQlRfREVWVFlQX0hBTkRMRTsNCj4gKyAgICBkZXZoZGwuZGJj
aF9oYW5kbGUgPSBtX2hhbmRsZTsNCj4gKw0KPiArICAgIG1fbm90aWZ5ID0gUmVnaXN0ZXJEZXZp
Y2VOb3RpZmljYXRpb24oc3ZjLCAmZGV2aGRsLA0KPiBERVZJQ0VfTk9USUZZX1NFUlZJQ0VfSEFO
RExFKTsNCj4gKyAgICBpZiAobV9ub3RpZnkgPT0gTlVMTCkgew0KPiArICAgICAgICBDbG9zZSgp
Ow0KPiArICAgICAgICByZXR1cm4gSU5WQUxJRF9IQU5ETEVfVkFMVUU7DQo+ICsgICAgfQ0KPiAr
DQo+ICsgICAgcmV0dXJuIG1faGFuZGxlOw0KPiArfQ0KPiArDQo+ICt2b2lkIENEZXZpY2U6OkNs
b3NlKCkNCj4gK3sNCj4gKyAgICBpZiAobV9oYW5kbGUgPT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUp
DQo+ICsgICAgICAgIHJldHVybjsNCj4gKyAgICBDbG9zZUhhbmRsZShtX2hhbmRsZSk7DQo+ICsg
ICAgbV9oYW5kbGUgPSBJTlZBTElEX0hBTkRMRV9WQUxVRTsNCj4gK30NCj4gKw0KPiArYm9vbCBD
RGV2aWNlOjpJb2N0bChEV09SRCBpb2N0bCwgdm9pZCogaW4sIERXT1JEIGluc3osIHZvaWQqIG91
dCwgRFdPUkQNCj4gb3V0c3osIERXT1JEKiBieXRlcyAvKj0gTlVMTCovKQ0KPiArew0KPiArICAg
IGlmIChtX2hhbmRsZSA9PSBJTlZBTElEX0hBTkRMRV9WQUxVRSkNCj4gKyAgICAgICAgcmV0dXJu
IGZhbHNlOw0KPiArDQo+ICsgICAgRFdPUkQgX2J5dGVzOw0KPiArICAgIGlmICghRGV2aWNlSW9D
b250cm9sKG1faGFuZGxlLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIGlvY3RsLA0KPiAr
ICAgICAgICAgICAgICAgICAgICAgICAgIGluLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg
IGluc3osDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgb3V0LA0KPiArICAgICAgICAgICAg
ICAgICAgICAgICAgIG91dHN6LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlcyA9
PSBOVUxMKSA/ICZfYnl0ZXMgOiBieXRlcywNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICBO
VUxMKSkNCj4gKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KPiArDQo+ICsgICAgcmV0dXJuIHRydWU7
DQo+ICt9DQo+ICsNCj4gK0NEZXZpY2VMaXN0OjpDRGV2aWNlTGlzdChjb25zdCBHVUlEJiBpdGYp
IDoNCj4gKyAgICBtX2d1aWQoaXRmKSwgbV9ub3RpZnkoTlVMTCksIG1faGFuZGxlKE5VTEwpLCBt
X2ltcGwoTlVMTCkNCj4gK3sNCj4gK30NCj4gKw0KPiArQ0RldmljZUxpc3Q6On5DRGV2aWNlTGlz
dCgpDQo+ICt7DQo+ICsgICAgU3RvcCgpOw0KPiArfQ0KPiArDQo+ICtib29sIENEZXZpY2VMaXN0
OjpTdGFydChIQU5ETEUgaGFuZGxlLCBJRGV2aWNlQ3JlYXRvciogaW1wbCkNCj4gK3sNCj4gKyAg
ICBTdG9wKCk7DQo+ICsNCj4gKyAgICBtX2hhbmRsZSA9IGhhbmRsZTsNCj4gKyAgICBtX2ltcGwg
PSBpbXBsOw0KPiArDQo+ICsgICAgREVWX0JST0FEQ0FTVF9ERVZJQ0VJTlRFUkZBQ0UgZGV2ID0g
eyAwIH07DQo+ICsgICAgZGV2LmRiY2Nfc2l6ZSA9IHNpemVvZihkZXYpOw0KPiArICAgIGRldi5k
YmNjX2RldmljZXR5cGUgPSBEQlRfREVWVFlQX0RFVklDRUlOVEVSRkFDRTsNCj4gKyAgICBkZXYu
ZGJjY19jbGFzc2d1aWQgPSBtX2d1aWQ7DQo+ICsNCj4gKyAgICBtX25vdGlmeSA9IFJlZ2lzdGVy
RGV2aWNlTm90aWZpY2F0aW9uQShoYW5kbGUsICZkZXYsDQo+IERFVklDRV9OT1RJRllfU0VSVklD
RV9IQU5ETEUpOw0KPiArICAgIGlmIChtX25vdGlmeSA9PSBOVUxMKQ0KPiArICAgICAgICByZXR1
cm4gZmFsc2U7DQo+ICsNCj4gKyAgICBIREVWSU5GTyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbmZvOw0KPiArICAgIFNQX0RFVklDRV9JTlRFUkZBQ0VfREFUQSAgICAgICAgICAgIGl0ZjsN
Cj4gKyAgICBQU1BfREVWSUNFX0lOVEVSRkFDRV9ERVRBSUxfREFUQSAgICBkZXRhaWw7DQo+ICsg
ICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWR4Ow0KPiArICAgIFVMT05H
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbjsNCj4gKw0KPiArICAgIGluZm8gPSBT
ZXR1cERpR2V0Q2xhc3NEZXZzKCZtX2d1aWQsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTlVMTCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLA0KPiAr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERJR0NGX1BSRVNFTlQgfCBESUdDRl9ERVZJ
Q0VJTlRFUkZBQ0UpOw0KPiArICAgIGlmIChpbmZvID09IElOVkFMSURfSEFORExFX1ZBTFVFKQ0K
PiArICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gbm9uIGZhdGFsLCBqdXN0IG1pc3NpbmcgYWxyZWFk
eSBwcmVzZW50IGRldmljZShzKQ0KPiArDQo+ICsgICAgaXRmLmNiU2l6ZSA9IHNpemVvZihTUF9E
RVZJQ0VfSU5URVJGQUNFX0RBVEEpOw0KPiArICAgIGZvciAoaWR4ID0gMDsNCj4gKyAgICAgICAg
U2V0dXBEaUVudW1EZXZpY2VJbnRlcmZhY2VzKGluZm8sIE5VTEwsICZtX2d1aWQsIGlkeCwgJml0
Zik7DQo+ICsgICAgICAgICsraWR4KSB7DQo+ICsgICAgICAgIFNldHVwRGlHZXREZXZpY2VJbnRl
cmZhY2VEZXRhaWwoaW5mbywNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAmaXRmLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5V
TEwsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwNCj4gKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbGVuLA0KPiArICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOw0KPiArICAgICAgICBkZXRhaWwg
PSAoUFNQX0RFVklDRV9JTlRFUkZBQ0VfREVUQUlMX0RBVEEpbmV3IEJZVEVbbGVuXTsNCj4gKyAg
ICAgICAgaWYgKGRldGFpbCA9PSBOVUxMKQ0KPiArICAgICAgICAgICAgY29udGludWU7DQo+ICsg
ICAgICAgIGRldGFpbC0+Y2JTaXplID0gc2l6ZW9mKFNQX0RFVklDRV9JTlRFUkZBQ0VfREVUQUlM
X0RBVEEpOw0KPiArICAgICAgICBpZiAoU2V0dXBEaUdldERldmljZUludGVyZmFjZURldGFpbChp
bmZvLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaXRm
LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWws
DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiwNCj4g
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwNCj4gKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCkpIHsNCj4gKyAg
ICAgICAgICAgIE9uRGV2aWNlQWRkZWQoQ29udmVydCgoY29uc3QgY2hhciopZGV0YWlsLT5EZXZp
Y2VQYXRoKSk7DQo+ICsgICAgICAgIH0NCj4gKyAgICAgICAgZGVsZXRlIFtdIGRldGFpbDsNCj4g
KyAgICAgICAgaXRmLmNiU2l6ZSA9IHNpemVvZihTUF9ERVZJQ0VfSU5URVJGQUNFX0RBVEEpOw0K
PiArICAgIH0NCj4gKyAgICBTZXR1cERpRGVzdHJveURldmljZUluZm9MaXN0KGluZm8pOw0KPiAr
ICAgIHJldHVybiB0cnVlOw0KPiArfQ0KPiArDQo+ICt2b2lkIENEZXZpY2VMaXN0OjpTdG9wKCkN
Cj4gK3sNCj4gKyAgICBpZiAobV9ub3RpZnkgIT0gTlVMTCkNCj4gKyAgICAgICAgVW5yZWdpc3Rl
ckRldmljZU5vdGlmaWNhdGlvbihtX25vdGlmeSk7DQo+ICsgICAgbV9ub3RpZnkgPSBOVUxMOw0K
PiArDQo+ICsgICAgZm9yIChEZXZpY2VNYXA6Oml0ZXJhdG9yIGl0ID0gbV9kZXZzLmJlZ2luKCk7
DQo+ICsgICAgICAgICAgICBpdCAhPSBtX2RldnMuZW5kKCk7DQo+ICsgICAgICAgICAgICArK2l0
KSB7DQo+ICsgICAgICAgIGRlbGV0ZSBpdC0+c2Vjb25kOw0KPiArICAgIH0NCj4gKyAgICBtX2Rl
dnMuY2xlYXIoKTsNCj4gK30NCj4gKw0KPiArdm9pZCBDRGV2aWNlTGlzdDo6T25EZXZpY2VFdmVu
dChEV09SRCBldnQsIExQVk9JRCBkYXRhKQ0KPiArew0KPiArICAgIFBERVZfQlJPQURDQVNUX0hE
UiAgICAgICAgICAgICAgaGRyOw0KPiArICAgIFBERVZfQlJPQURDQVNUX0RFVklDRUlOVEVSRkFD
RSAgaXRmOw0KPiArICAgIFBERVZfQlJPQURDQVNUX0hBTkRMRSAgICAgICAgICAgaGRsOw0KPiAr
DQo+ICsgICAgaGRyID0gKFBERVZfQlJPQURDQVNUX0hEUilkYXRhOw0KPiArICAgIHN3aXRjaCAo
ZXZ0KSB7DQo+ICsgICAgY2FzZSBEQlRfREVWSUNFQVJSSVZBTDoNCj4gKyAgICAgICAgaWYgKGhk
ci0+ZGJjaF9kZXZpY2V0eXBlID09IERCVF9ERVZUWVBfREVWSUNFSU5URVJGQUNFKSB7DQo+ICsg
ICAgICAgICAgICBpdGYgPSAoUERFVl9CUk9BRENBU1RfREVWSUNFSU5URVJGQUNFKWhkcjsNCj4g
KyAgICAgICAgICAgIE9uRGV2aWNlQWRkZWQoQ29udmVydCgoY29uc3Qgd2NoYXJfdCopaXRmLT5k
YmNjX25hbWUpKTsNCj4gKyAgICAgICAgfQ0KPiArICAgICAgICBicmVhazsNCj4gKw0KPiArICAg
IGNhc2UgREJUX0RFVklDRVFVRVJZUkVNT1ZFOg0KPiArICAgICAgICBpZiAoaGRyLT5kYmNoX2Rl
dmljZXR5cGUgPT0gREJUX0RFVlRZUF9IQU5ETEUpIHsNCj4gKyAgICAgICAgICAgIGhkbCA9IChQ
REVWX0JST0FEQ0FTVF9IQU5ETEUpaGRyOw0KPiArICAgICAgICAgICAgT25EZXZpY2VRdWVyeVJl
bW92ZShoZGwtPmRiY2hfaGFuZGxlKTsNCj4gKyAgICAgICAgfQ0KPiArICAgICAgICBicmVhazsN
Cj4gKw0KPiArICAgIGNhc2UgREJUX0RFVklDRVJFTU9WRVBFTkRJTkc6DQo+ICsgICAgICAgIGlm
IChoZHItPmRiY2hfZGV2aWNldHlwZSA9PSBEQlRfREVWVFlQX0hBTkRMRSkgew0KPiArICAgICAg
ICAgICAgaGRsID0gKFBERVZfQlJPQURDQVNUX0hBTkRMRSloZHI7DQo+ICsgICAgICAgICAgICBV
bnJlZ2lzdGVyRGV2aWNlTm90aWZpY2F0aW9uKGhkbC0+ZGJjaF9oZGV2bm90aWZ5KTsNCj4gKyAg
ICAgICAgICAgIE9uRGV2aWNlUmVtb3ZlZChoZGwtPmRiY2hfaGFuZGxlKTsNCj4gKyAgICAgICAg
fQ0KPiArICAgICAgICBicmVhazsNCj4gKw0KPiArICAgIGRlZmF1bHQ6DQo+ICsgICAgICAgIGJy
ZWFrOw0KPiArICAgIH0NCj4gK30NCj4gKw0KPiArQ0RldmljZSogQ0RldmljZUxpc3Q6OkdldEZp
cnN0RGV2aWNlKCkNCj4gK3sNCj4gKyAgICBEZXZpY2VNYXA6Oml0ZXJhdG9yIGl0ID0gbV9kZXZz
LmJlZ2luKCk7DQo+ICsgICAgaWYgKGl0ID09IG1fZGV2cy5lbmQoKSkNCj4gKyAgICAgICAgcmV0
dXJuIE5VTEw7DQo+ICsgICAgcmV0dXJuIGl0LT5zZWNvbmQ7DQo+ICt9DQo+ICsNCj4gK3ZvaWQg
Q0RldmljZUxpc3Q6Ok9uRGV2aWNlQWRkZWQoY29uc3Qgc3RkOjp3c3RyaW5nJiBwYXRoKQ0KPiAr
ew0KPiArICAgIENEZXZpY2UqIGRldjsNCj4gKyAgICBpZiAobV9pbXBsID09IE5VTEwpDQo+ICsg
ICAgICAgIGRldiA9IG5ldyBDRGV2aWNlKHBhdGguY19zdHIoKSk7DQo+ICsgICAgZWxzZQ0KPiAr
ICAgICAgICBkZXYgPSBtX2ltcGwtPkNyZWF0ZShwYXRoLmNfc3RyKCkpOw0KPiArICAgIGlmIChk
ZXYgPT0gTlVMTCkNCj4gKyAgICAgICAgcmV0dXJuOyAvLyBjcmVhdGUgZmFpbGVkDQo+ICsNCj4g
KyAgICBIQU5ETEUgaGFuZGxlID0gZGV2LT5PcGVuKG1faGFuZGxlKTsNCj4gKyAgICBpZiAoaGFu
ZGxlID09IElOVkFMSURfSEFORExFX1ZBTFVFKSB7DQo+ICsgICAgICAgIGRlbGV0ZSBkZXY7DQo+
ICsgICAgICAgIHJldHVybjsgLy8gb3BlbiBmYWlsZWQNCj4gKyAgICB9DQo+ICsNCj4gKyAgICBE
ZXZpY2VNYXA6Oml0ZXJhdG9yIGl0ID0gbV9kZXZzLmZpbmQoaGFuZGxlKTsNCj4gKyAgICBpZiAo
aXQgIT0gbV9kZXZzLmVuZCgpKSB7DQo+ICsgICAgICAgIGRlbGV0ZSBkZXY7DQo+ICsgICAgICAg
IHJldHVybjsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICBtX2RldnNbaGFuZGxlXSA9IGRldjsNCj4g
KyAgICBpZiAobV9pbXBsKQ0KPiArICAgICAgICBtX2ltcGwtPk9uRGV2aWNlQWRkZWQoZGV2KTsN
Cj4gK30NCj4gKw0KPiArdm9pZCBDRGV2aWNlTGlzdDo6T25EZXZpY2VRdWVyeVJlbW92ZShIQU5E
TEUgaGFuZGxlKQ0KPiArew0KPiArICAgIERldmljZU1hcDo6aXRlcmF0b3IgaXQgPSBtX2RldnMu
ZmluZChoYW5kbGUpOw0KPiArICAgIGlmIChpdCA9PSBtX2RldnMuZW5kKCkpDQo+ICsgICAgICAg
IHJldHVybjsgLy8gc3B1cmlvdXMgZXZlbnQ/DQo+ICsNCj4gKyAgICBDRGV2aWNlKiBkZXYgPSBp
dC0+c2Vjb25kOw0KPiArICAgIGlmIChtX2ltcGwpDQo+ICsgICAgICAgIG1faW1wbC0+T25EZXZp
Y2VSZW1vdmVkKGRldik7DQo+ICsgICAgZGV2LT5DbG9zZSgpOw0KPiArfQ0KPiArDQo+ICt2b2lk
IENEZXZpY2VMaXN0OjpPbkRldmljZVJlbW92ZWQoSEFORExFIGhhbmRsZSkNCj4gK3sNCj4gKyAg
ICBEZXZpY2VNYXA6Oml0ZXJhdG9yIGl0ID0gbV9kZXZzLmZpbmQoaGFuZGxlKTsNCj4gKyAgICBp
ZiAoaXQgPT0gbV9kZXZzLmVuZCgpKQ0KPiArICAgICAgICByZXR1cm47IC8vIHNwdXJpb3VzIGV2
ZW50Pw0KPiArDQo+ICsgICAgQ0RldmljZSogZGV2ID0gaXQtPnNlY29uZDsNCj4gKyAgICBkZWxl
dGUgZGV2Ow0KPiArICAgIG1fZGV2cy5lcmFzZShpdCk7DQo+ICt9DQo+IGRpZmYgLS1naXQgYS9z
cmMveGVuYWdlbnQvZGV2aWNlbGlzdC5oIGIvc3JjL3hlbmFnZW50L2RldmljZWxpc3QuaA0KPiBu
ZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwLi5hNDIxZTU4DQo+IC0tLSAvZGV2
L251bGwNCj4gKysrIGIvc3JjL3hlbmFnZW50L2RldmljZWxpc3QuaA0KPiBAQCAtMCwwICsxLDky
IEBADQo+ICsvKiBDb3B5cmlnaHQgKGMpIENpdHJpeCBTeXN0ZW1zIEluYy4NCj4gKyAqIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuDQo+ICsgKg0KPiArICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3JtcywNCj4gKyAqIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQNCj4gKyAqIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZSBtZXQ6DQo+ICsgKg0KPiArICogKiAgIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUNCj4gKyAqICAgICBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlDQo+ICsgKiAgICAgZm9sbG93aW5nIGRp
c2NsYWltZXIuDQo+ICsgKiAqICAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQ0KPiArICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUNCj4gKyAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXINCj4gKyAqICAgICBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KPiArICoNCj4gKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORA0KPiArICogQ09OVFJJQlVU
T1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywNCj4gKyAq
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
DQo+ICsgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQ0KPiArICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VCBIT0xERVIgT1INCj4gKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLA0KPiArICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywNCj4gKyAqIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUg0KPiArICogU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUw0KPiArICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksDQo+ICsgKiBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcN
Cj4gKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UNCj4gKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YNCj4gKyAqIFNVQ0ggREFNQUdFLg0KPiArICovDQo+ICsNCj4gKyNpZm5k
ZWYgX19YRU5BR0VOVF9ERVZJQ0VMSVNUX0hfXw0KPiArI2RlZmluZSBfX1hFTkFHRU5UX0RFVklD
RUxJU1RfSF9fDQo+ICsNCj4gKyNpbmNsdWRlIDx3aW5kb3dzLmg+DQo+ICsjaW5jbHVkZSA8ZGJ0
Lmg+DQo+ICsjaW5jbHVkZSA8bWFwPg0KPiArI2luY2x1ZGUgPHN0cmluZz4NCj4gKw0KPiArY2xh
c3MgQ0RldmljZQ0KPiArew0KPiArcHVibGljOg0KPiArICAgIENEZXZpY2UoY29uc3Qgd2NoYXJf
dCogcGF0aCk7DQo+ICsgICAgdmlydHVhbCB+Q0RldmljZSgpOw0KPiArDQo+ICsgICAgY29uc3Qg
d2NoYXJfdCogUGF0aCgpIGNvbnN0Ow0KPiArDQo+ICsgICAgSEFORExFIE9wZW4oSEFORExFIHN2
Yyk7DQo+ICsgICAgdm9pZCBDbG9zZSgpOw0KPiArDQo+ICtwcm90ZWN0ZWQ6DQo+ICsgICAgYm9v
bCBJb2N0bChEV09SRCBpb2N0bCwgdm9pZCogaW4sIERXT1JEIGluc3osIHZvaWQqIG91dCwgRFdP
UkQgb3V0c3osDQo+IERXT1JEKiBieXRlcyA9IE5VTEwpOw0KPiArDQo+ICtwcml2YXRlOg0KPiAr
ICAgIHN0ZDo6d3N0cmluZyAgICBtX3BhdGg7DQo+ICsgICAgSEFORExFICAgICAgICAgIG1faGFu
ZGxlOw0KPiArICAgIEhERVZOT1RJRlkgICAgICBtX25vdGlmeTsNCj4gK307DQo+ICsNCj4gK2lu
dGVyZmFjZSBJRGV2aWNlQ3JlYXRvcg0KPiArew0KPiArICAgIHZpcnR1YWwgQ0RldmljZSogQ3Jl
YXRlKGNvbnN0IHdjaGFyX3QqIHBhdGgpID0gMDsNCj4gKyAgICB2aXJ0dWFsIHZvaWQgT25EZXZp
Y2VBZGRlZChDRGV2aWNlKiBkZXYpID0gMDsNCj4gKyAgICB2aXJ0dWFsIHZvaWQgT25EZXZpY2VS
ZW1vdmVkKENEZXZpY2UqIGRldikgPSAwOw0KPiArfTsNCj4gKw0KPiArY2xhc3MgQ0RldmljZUxp
c3QNCj4gK3sNCj4gK3B1YmxpYzoNCj4gKyAgICBDRGV2aWNlTGlzdChjb25zdCBHVUlEJiBpdGYp
Ow0KPiArICAgIH5DRGV2aWNlTGlzdCgpOw0KPiArDQo+ICsgICAgYm9vbCBTdGFydChIQU5ETEUg
c3ZjLCBJRGV2aWNlQ3JlYXRvciogaW1wbCk7DQo+ICsgICAgdm9pZCBTdG9wKCk7DQo+ICsgICAg
dm9pZCBPbkRldmljZUV2ZW50KERXT1JEIGV2dCwgTFBWT0lEIGRhdGEpOw0KPiArICAgIENEZXZp
Y2UqIEdldEZpcnN0RGV2aWNlKCk7DQo+ICsNCj4gK3ByaXZhdGU6DQo+ICsgICAgdm9pZCBPbkRl
dmljZUFkZGVkKGNvbnN0IHN0ZDo6d3N0cmluZyYgcGF0aCk7DQo+ICsgICAgdm9pZCBPbkRldmlj
ZVF1ZXJ5UmVtb3ZlKEhBTkRMRSBoYW5kbGUpOw0KPiArICAgIHZvaWQgT25EZXZpY2VSZW1vdmVk
KEhBTkRMRSBkZXYpOw0KPiArDQo+ICsgICAgdHlwZWRlZiBzdGQ6Om1hcDwgSEFORExFLCBDRGV2
aWNlKiA+IERldmljZU1hcDsNCj4gKw0KPiArICAgIEdVSUQgICAgICAgIG1fZ3VpZDsNCj4gKyAg
ICBEZXZpY2VNYXAgICBtX2RldnM7DQo+ICsgICAgSERFVk5PVElGWSAgbV9ub3RpZnk7DQo+ICsg
ICAgSEFORExFICAgICAgbV9oYW5kbGU7DQo+ICsgICAgSURldmljZUNyZWF0b3IqIG1faW1wbDsN
Cj4gK307DQo+ICsNCj4gKyNlbmRpZg0KPiBkaWZmIC0tZ2l0IGEvc3JjL3hlbmFnZW50L3NlcnZp
Y2UuY3BwIGIvc3JjL3hlbmFnZW50L3NlcnZpY2UuY3BwDQo+IGluZGV4IGI3OTQ1NDQuLmZlYzhl
OTUgMTAwNjQ0DQo+IC0tLSBhL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcA0KPiArKysgYi9zcmMv
eGVuYWdlbnQvc2VydmljZS5jcHANCj4gQEAgLTE1MSw3ICsxNTEsNyBAQCBzdGF0aWMgQ1hlbkFn
ZW50IHNfc2VydmljZTsNCj4gICAgICByZXR1cm4gc19zZXJ2aWNlLl9fU2VydmljZUNvbnRyb2xI
YW5kbGVyRXgocmVxLCBldnQsIGRhdGEsIGN0eHQpOw0KPiAgfQ0KPiANCj4gLUNYZW5BZ2VudDo6
Q1hlbkFnZW50KCkgOiBtX2hhbmRsZShOVUxMKSwgbV9ldnRsb2coTlVMTCkNCj4gK0NYZW5BZ2Vu
dDo6Q1hlbkFnZW50KCkgOiBtX2hhbmRsZShOVUxMKSwgbV9ldnRsb2coTlVMTCksDQo+IG1fZGV2
bGlzdChHVUlEX0lOVEVSRkFDRV9YRU5JRkFDRSkNCj4gIHsNCj4gICAgICBtX3N0YXR1cy5kd1Nl
cnZpY2VUeXBlICAgICAgICA9IFNFUlZJQ0VfV0lOMzI7DQo+ICAgICAgbV9zdGF0dXMuZHdDdXJy
ZW50U3RhdGUgICAgICAgPSBTRVJWSUNFX1NUQVJUX1BFTkRJTkc7DQo+IEBAIC0xNjksMTggKzE2
OSwzNiBAQCBDWGVuQWdlbnQ6On5DWGVuQWdlbnQoKQ0KPiAgICAgIENsb3NlSGFuZGxlKG1fc3Zj
X3N0b3ApOw0KPiAgfQ0KPiANCj4gKy8qdmlydHVhbCovIENEZXZpY2UqIENYZW5BZ2VudDo6Q3Jl
YXRlKGNvbnN0IHdjaGFyX3QqIHBhdGgpDQo+ICt7DQo+ICsgICAgcmV0dXJuIG5ldyBDRGV2aWNl
KHBhdGgpOw0KPiArfQ0KPiArDQo+ICsvKnZpcnR1YWwqLyB2b2lkIENYZW5BZ2VudDo6T25EZXZp
Y2VBZGRlZChDRGV2aWNlKiBkZXYpDQo+ICt7DQo+ICsgICAgQ1hlbkFnZW50OjpMb2coIk9uRGV2
aWNlQWRkZWQoJXdzKVxuIiwgZGV2LT5QYXRoKCkpOw0KPiArfQ0KPiArDQo+ICsvKnZpcnR1YWwq
LyB2b2lkIENYZW5BZ2VudDo6T25EZXZpY2VSZW1vdmVkKENEZXZpY2UqIGRldikNCj4gK3sNCj4g
KyAgICBDWGVuQWdlbnQ6OkxvZygiT25EZXZpY2VSZW1vdmVkKCV3cylcbiIsIGRldi0+UGF0aCgp
KTsNCj4gK30NCj4gKw0KPiAgdm9pZCBDWGVuQWdlbnQ6Ok9uU2VydmljZVN0YXJ0KCkNCj4gIHsN
Cj4gICAgICBDWGVuQWdlbnQ6OkxvZygiT25TZXJ2aWNlU3RhcnQoKVxuIik7DQo+ICsgICAgbV9k
ZXZsaXN0LlN0YXJ0KG1faGFuZGxlLCB0aGlzKTsNCj4gIH0NCj4gDQo+ICB2b2lkIENYZW5BZ2Vu
dDo6T25TZXJ2aWNlU3RvcCgpDQo+ICB7DQo+ICAgICAgQ1hlbkFnZW50OjpMb2coIk9uU2Vydmlj
ZVN0b3AoKVxuIik7DQo+ICsgICAgbV9kZXZsaXN0LlN0b3AoKTsNCj4gIH0NCj4gDQo+ICB2b2lk
IENYZW5BZ2VudDo6T25EZXZpY2VFdmVudChEV09SRCBldnQsIExQVk9JRCBkYXRhKQ0KPiAgew0K
PiArICAgIG1fZGV2bGlzdC5PbkRldmljZUV2ZW50KGV2dCwgZGF0YSk7DQo+ICB9DQo+IA0KPiAg
Ym9vbCBDWGVuQWdlbnQ6OlNlcnZpY2VNYWluTG9vcCgpDQo+IGRpZmYgLS1naXQgYS9zcmMveGVu
YWdlbnQvc2VydmljZS5oIGIvc3JjL3hlbmFnZW50L3NlcnZpY2UuaA0KPiBpbmRleCA3NDQ2ZTQx
Li5iYTNmNDMwIDEwMDY0NA0KPiAtLS0gYS9zcmMveGVuYWdlbnQvc2VydmljZS5oDQo+ICsrKyBi
L3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmgNCj4gQEAgLTM4LDcgKzM4LDkgQEANCj4gICNkZWZpbmUg
U1ZDX0RJU1BMQVlOQU1FIFBST0RVQ1RfTkFNRV9TVFIgIyMgIkludGVyZmFjZSBTZXJ2aWNlIg0K
PiAgI2RlZmluZSBTVkNfREVTQyAiTW9uaXRvcnMgYW5kIHByb3ZpZGVzIHZhcmlvdXMgbWV0cmlj
cyB0byBYZW5TdG9yZSINCj4gDQo+IC1jbGFzcyBDWGVuQWdlbnQNCj4gKyNpbmNsdWRlICJkZXZp
Y2VsaXN0LmgiDQo+ICsNCj4gK2NsYXNzIENYZW5BZ2VudCA6IHB1YmxpYyBJRGV2aWNlQ3JlYXRv
cg0KPiAgew0KPiAgcHVibGljOiAvLyBzdGF0aWNzDQo+ICAgICAgc3RhdGljIHZvaWQgTG9nKGNv
bnN0IGNoYXIqIGZtdCwgLi4uKTsNCj4gQEAgLTU0LDYgKzU2LDExIEBAIHB1YmxpYzogLy8gY3Rv
ci9kdG9yDQo+ICAgICAgQ1hlbkFnZW50KCk7DQo+ICAgICAgfkNYZW5BZ2VudCgpOw0KPiANCj4g
K3B1YmxpYzogLy8gSURldmljZUNyZWF0b3INCj4gKyAgICB2aXJ0dWFsIENEZXZpY2UqIENyZWF0
ZShjb25zdCB3Y2hhcl90KiBwYXRoKTsNCj4gKyAgICB2aXJ0dWFsIHZvaWQgT25EZXZpY2VBZGRl
ZChDRGV2aWNlKiBkZXYpOw0KPiArICAgIHZpcnR1YWwgdm9pZCBPbkRldmljZVJlbW92ZWQoQ0Rl
dmljZSogZGV2KTsNCj4gKw0KPiAgcHJpdmF0ZTogLy8gc2VydmljZSBldmVudHMNCj4gICAgICB2
b2lkIE9uU2VydmljZVN0YXJ0KCk7DQo+ICAgICAgdm9pZCBPblNlcnZpY2VTdG9wKCk7DQo+IEBA
IC02OSw2ICs3Niw4IEBAIHByaXZhdGU6IC8vIHNlcnZpY2Ugc3VwcG9ydA0KPiAgICAgIFNFUlZJ
Q0VfU1RBVFVTX0hBTkRMRSAgIG1faGFuZGxlOw0KPiAgICAgIEhBTkRMRSAgICAgICAgICAgICAg
ICAgIG1fZXZ0bG9nOw0KPiAgICAgIEhBTkRMRSAgICAgICAgICAgICAgICAgIG1fc3ZjX3N0b3A7
DQo+ICsNCj4gKyAgICBDRGV2aWNlTGlzdCAgICAgICAgICAgICBtX2Rldmxpc3Q7DQo+ICB9Ow0K
PiANCj4gICNlbmRpZg0KPiBkaWZmIC0tZ2l0IGEvdnMyMDEyL3hlbmFnZW50L3hlbmFnZW50LnZj
eHByb2oNCj4gYi92czIwMTIveGVuYWdlbnQveGVuYWdlbnQudmN4cHJvag0KPiBpbmRleCBhZjk5
ZjlkLi42YzljOTFjIDEwMDY0NA0KPiAtLS0gYS92czIwMTIveGVuYWdlbnQveGVuYWdlbnQudmN4
cHJvag0KPiArKysgYi92czIwMTIveGVuYWdlbnQveGVuYWdlbnQudmN4cHJvag0KPiBAQCAtMTk0
LDkgKzE5NCwxMSBAQA0KPiAgICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+DQo+ICAgIDxJdGVtR3Jv
dXA+DQo+ICAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuYWdlbnRcc2Vydmlj
ZS5jcHAiLz4NCj4gKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5hZ2VudFxk
ZXZpY2VsaXN0LmNwcCIvPg0KPiAgICA8L0l0ZW1Hcm91cD4NCj4gICAgPEl0ZW1Hcm91cD4NCj4g
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5hZ2VudFxzZXJ2aWNlLmgiIC8+
DQo+ICsgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuYWdlbnRcZGV2aWNlbGlz
dC5oIiAvPg0KPiAgICA8L0l0ZW1Hcm91cD4NCj4gICAgPEl0ZW1Hcm91cD4NCj4gICAgICA8Q3Vz
dG9tQnVpbGQgSW5jbHVkZT0iLi5cLi5cc3JjXHhlbmFnZW50XG1lc3NhZ2VzLm1jIj4NCj4gZGlm
ZiAtLWdpdCBhL3ZzMjAxMy94ZW5hZ2VudC94ZW5hZ2VudC52Y3hwcm9qDQo+IGIvdnMyMDEzL3hl
bmFnZW50L3hlbmFnZW50LnZjeHByb2oNCj4gaW5kZXggNDhlZjNmYy4uZDMxMjYyNiAxMDA2NDQN
Cj4gLS0tIGEvdnMyMDEzL3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2oNCj4gKysrIGIvdnMyMDEz
L3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2oNCj4gQEAgLTE5OCw5ICsxOTgsMTEgQEANCj4gICAg
PC9JdGVtRGVmaW5pdGlvbkdyb3VwPg0KPiAgICA8SXRlbUdyb3VwPg0KPiAgICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cLi5cc3JjXHhlbmFnZW50XHNlcnZpY2UuY3BwIi8+DQo+ICsgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuYWdlbnRcZGV2aWNlbGlzdC5jcHAiLz4NCj4g
ICAgPC9JdGVtR3JvdXA+DQo+ICAgIDxJdGVtR3JvdXA+DQo+ICAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlwuLlxzcmNceGVuYWdlbnRcc2VydmljZS5oIiAvPg0KPiArICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cLi5cc3JjXHhlbmFnZW50XGRldmljZWxpc3QuaCIgLz4NCj4gICAgPC9JdGVt
R3JvdXA+DQo+ICAgIDxJdGVtR3JvdXA+DQo+ICAgICAgPEN1c3RvbUJ1aWxkIEluY2x1ZGU9Ii4u
XC4uXHNyY1x4ZW5hZ2VudFx4ZW5hZ2VudC5tYyI+DQo+IC0tDQo+IDEuOS40Lm1zeXNnaXQuMQ0K
PiANCj4gDQo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
DQo+IHdpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gd2luLXB2LWRldmVsQGxpc3RzLnhlbnBy
b2plY3Qub3JnDQo+IGh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4v
bGlzdGluZm8vd2luLXB2LWRldmVsDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0
cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFp
bG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Wed Jul 06 15:51:39 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 06 Jul 2016 15:51:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bKp6x-0001LN-J7; Wed, 06 Jul 2016 15:51:39 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=988999fe3=Paul.Durrant@citrix.com>)
 id 1bKp6v-0001Ks-TR
 for win-pv-devel@lists.xenproject.org; Wed, 06 Jul 2016 15:51:38 +0000
Received: from [85.158.143.35] by server-3.bemta-6.messagelabs.com id
 AD/58-22092-9092D775; Wed, 06 Jul 2016 15:51:37 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmphleJIrShJLcpLzFFi42LZKekoocuhWRt
 uMPGYmsWfxYkOjB6HP1xhCWCMYs3MS8qvSGDN2DV7P1PBwdqKb4tmMzcwfqjuYuTkkBDwk2i5
 MZMVxGYT0JFYenQ+E4gtIlAg8f39PGYQm1lATeL6/i6wGmEBK4njB6azQtRYSyy+O4uli5EDy
 DaS+PyvFMRkEVCRWNshAVLBK+AuceHlRaAKLg4hgQZGiUt7NoON5BRwk3h2dzWYzSggK/GlcT
 XUKnGJW08gTpAQEJBYsuc8M4QtKvHy8T9WCNtAYuvSfWBrmQU0Jdbv0odoVZSY0v2QHWKvoMT
 JmU9YQGwhoHO2PD4ANYZbYuXnPywTGEVnIdk2C2HSLCSTZiGZtICRZRWjenFqUVlqka6hXlJR
 ZnpGSW5iZo6uoYGZXm5qcXFiempOYlKxXnJ+7iZGYIwwAMEOxp3PnQ4xSnIwKYnysnyrDhfiS
 8pPqcxILM6ILyrNSS0+xCjDwaEkwWutURsuJFiUmp5akZaZA4xWmLQEB4+SCG8ISJq3uCAxtz
 gzHSJ1ilGXY9byO2uZhFjy8vNSpcR5uUCKBECKMkrz4EbAEsclRlkpYV5GoKOEeApSi3IzS1D
 lXzGKczAqCfPagUzhycwrgdv0CugIJqAjfrpUgxxRkoiQkmpg7A04POsBH6v5/BqjrXZ7ODfe
 MzB3yeGR3VH0ax3r9mhxnq86ItITOrV3l3fJXCxq87t05/i3VWVZBw/uElhj8EKTfW3CvjcNr
 8ISFTS4D91/XPyT9awtq/cb00tFx9VXeb+4UNnTP23DU9NrRqGp+b48kw5NaoyYftSdi/sLg0
 AmW0H33jpfJZbijERDLeai4kQAiiC9HxcDAAA=
X-Env-Sender: prvs=988999fe3=Paul.Durrant@citrix.com
X-Msg-Ref: server-10.tower-21.messagelabs.com!1467820296!22505618!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 22322 invoked from network); 6 Jul 2016 15:51:36 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-10.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 6 Jul 2016 15:51:36 -0000
X-IronPort-AV: E=Sophos;i="5.28,319,1464652800"; d="scan'208";a="25687431"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 3/6] Add XenIfaceDevice
Thread-Index: AQHR1qlkwxrF8UVsxE6bHMp7msXwdaALjx5g
Date: Wed, 6 Jul 2016 15:51:25 +0000
Message-ID: <35d3076c9cfc47778cb8546bf3b3dba4@AMSPEX02CL03.citrite.net>
References: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
 <1467715091-13216-4-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1467715091-13216-4-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 3/6] Add XenIfaceDevice
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMDUgSnVseSAyMDE2IDExOjM4DQo+IFRvOiB3aW4tcHYt
ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gQ2M6IE93ZW4gU21pdGgNCj4gU3ViamVjdDog
W3dpbi1wdi1kZXZlbF0gW1BBVENIIDMvNl0gQWRkIFhlbklmYWNlRGV2aWNlDQo+IA0KPiBYZW5J
ZmFjZURldmljZSBpcyBhIENEZXZpY2Ugc3ViY2xhc3MgdGhhdCBhYnN0cmFjdHMgdGhlIElPQ1RM
DQo+IGludGVyZmFjZSBieSBtYW5hZ2luZyB0aGUgY29udmVyc2lvbiB0by9mcm9tIElPQ1RMIGlu
cHV0cy9vdXRwdXRzLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0
aEBjaXRyaXguY29tPg0KDQpBY2tlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0
cml4LmNvbT4NCg0KPiAtLS0NCj4gIHNyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcCAgICAgICAgIHwg
ICAyICstDQo+ICBzcmMveGVuYWdlbnQvc2VydmljZS5oICAgICAgICAgICB8ICAgMSArDQo+ICBz
cmMveGVuYWdlbnQveGVuaWZhY2VkZXZpY2UuY3BwICB8IDE1Mw0KPiArKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysNCj4gIHNyYy94ZW5hZ2VudC94ZW5pZmFjZWRldmljZS5o
ICAgIHwgIDY0ICsrKysrKysrKysrKysrKysNCj4gIHZzMjAxMi94ZW5hZ2VudC94ZW5hZ2VudC52
Y3hwcm9qIHwgICAyICsNCj4gIHZzMjAxMy94ZW5hZ2VudC94ZW5hZ2VudC52Y3hwcm9qIHwgICAy
ICsNCj4gIDYgZmlsZXMgY2hhbmdlZCwgMjIzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkN
Cj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMveGVuYWdlbnQveGVuaWZhY2VkZXZpY2UuY3BwDQo+
ICBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3hlbmFnZW50L3hlbmlmYWNlZGV2aWNlLmgNCj4gDQo+
IGRpZmYgLS1naXQgYS9zcmMveGVuYWdlbnQvc2VydmljZS5jcHAgYi9zcmMveGVuYWdlbnQvc2Vy
dmljZS5jcHANCj4gaW5kZXggZmVjOGU5NS4uYmQwODVmNiAxMDA2NDQNCj4gLS0tIGEvc3JjL3hl
bmFnZW50L3NlcnZpY2UuY3BwDQo+ICsrKyBiL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcA0KPiBA
QCAtMTcxLDcgKzE3MSw3IEBAIENYZW5BZ2VudDo6fkNYZW5BZ2VudCgpDQo+IA0KPiAgLyp2aXJ0
dWFsKi8gQ0RldmljZSogQ1hlbkFnZW50OjpDcmVhdGUoY29uc3Qgd2NoYXJfdCogcGF0aCkNCj4g
IHsNCj4gLSAgICByZXR1cm4gbmV3IENEZXZpY2UocGF0aCk7DQo+ICsgICAgcmV0dXJuIG5ldyBD
WGVuSWZhY2VEZXZpY2UocGF0aCk7DQo+ICB9DQo+IA0KPiAgLyp2aXJ0dWFsKi8gdm9pZCBDWGVu
QWdlbnQ6Ok9uRGV2aWNlQWRkZWQoQ0RldmljZSogZGV2KQ0KPiBkaWZmIC0tZ2l0IGEvc3JjL3hl
bmFnZW50L3NlcnZpY2UuaCBiL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmgNCj4gaW5kZXggYmEzZjQz
MC4uZTMxZGNmZCAxMDA2NDQNCj4gLS0tIGEvc3JjL3hlbmFnZW50L3NlcnZpY2UuaA0KPiArKysg
Yi9zcmMveGVuYWdlbnQvc2VydmljZS5oDQo+IEBAIC0zOSw2ICszOSw3IEBADQo+ICAjZGVmaW5l
IFNWQ19ERVNDICJNb25pdG9ycyBhbmQgcHJvdmlkZXMgdmFyaW91cyBtZXRyaWNzIHRvIFhlblN0
b3JlIg0KPiANCj4gICNpbmNsdWRlICJkZXZpY2VsaXN0LmgiDQo+ICsjaW5jbHVkZSAieGVuaWZh
Y2VkZXZpY2UuaCINCj4gDQo+ICBjbGFzcyBDWGVuQWdlbnQgOiBwdWJsaWMgSURldmljZUNyZWF0
b3INCj4gIHsNCj4gZGlmZiAtLWdpdCBhL3NyYy94ZW5hZ2VudC94ZW5pZmFjZWRldmljZS5jcHAN
Cj4gYi9zcmMveGVuYWdlbnQveGVuaWZhY2VkZXZpY2UuY3BwDQo+IG5ldyBmaWxlIG1vZGUgMTAw
NjQ0DQo+IGluZGV4IDAwMDAwMDAuLjE2MTg5ZDINCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9z
cmMveGVuYWdlbnQveGVuaWZhY2VkZXZpY2UuY3BwDQo+IEBAIC0wLDAgKzEsMTUzIEBADQo+ICsv
KiBDb3B5cmlnaHQgKGMpIENpdHJpeCBTeXN0ZW1zIEluYy4NCj4gKyAqIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuDQo+ICsgKg0KPiArICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3JtcywNCj4gKyAqIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQNCj4gKyAqIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZSBtZXQ6DQo+ICsgKg0KPiArICogKiAgIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUNCj4gKyAqICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlDQo+ICsgKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIu
DQo+ICsgKiAqICAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQ0KPiArICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUNCj4gKyAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXINCj4gKyAqICAgICBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLg0KPiArICoNCj4gKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORA0KPiArICogQ09OVFJJQlVUT1JTICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywNCj4gKyAqIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GDQo+ICsgKiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQ0K
PiArICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIg
T1INCj4gKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLA0KPiArICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywNCj4gKyAqIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUg0KPiArICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUw0KPiArICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksDQo+ICsgKiBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcNCj4gKyAqIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UN
Cj4gKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YNCj4gKyAqIFNVQ0ggREFNQUdFLg0KPiArICovDQo+ICsNCj4gKyNpbmNsdWRlIDx3aW5k
b3dzLmg+DQo+ICsjaW5jbHVkZSAieGVuaWZhY2VkZXZpY2UuaCINCj4gKyNpbmNsdWRlICJkZXZp
Y2VsaXN0LmgiDQo+ICsjaW5jbHVkZSAieGVuaWZhY2VfaW9jdGxzLmgiDQo+ICsNCj4gK0NYZW5J
ZmFjZURldmljZTo6Q1hlbklmYWNlRGV2aWNlKGNvbnN0IHdjaGFyX3QqIHBhdGgpIDogQ0Rldmlj
ZShwYXRoKQ0KPiAre30NCj4gKw0KPiArLyp2aXJ0dWFsKi8gQ1hlbklmYWNlRGV2aWNlOjp+Q1hl
bklmYWNlRGV2aWNlKCkNCj4gK3t9DQo+ICsNCj4gKy8vIHN0b3JlIGludGVyZmFjZQ0KPiArYm9v
bCBDWGVuSWZhY2VEZXZpY2U6OlN0b3JlUmVhZChjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCwgc3Rk
OjpzdHJpbmcmDQo+IHZhbHVlKQ0KPiArew0KPiArICAgIERXT1JEICAgYnl0ZXMoMCk7DQo+ICsg
ICAgY2hhciogICBidWZmZXI7DQo+ICsgICAgYm9vbCAgICByZXN1bHQ7DQo+ICsNCj4gKyAgICBJ
b2N0bChJT0NUTF9YRU5JRkFDRV9TVE9SRV9SRUFELA0KPiArICAgICAgICAgICh2b2lkKilwYXRo
LmNfc3RyKCksIChEV09SRClwYXRoLmxlbmd0aCgpICsgMSwNCj4gKyAgICAgICAgICBOVUxMLCAw
LA0KPiArICAgICAgICAgICZieXRlcyk7DQo+ICsNCj4gKyAgICBidWZmZXIgPSBuZXcgY2hhclti
eXRlcyArIDFdOw0KPiArICAgIGlmIChidWZmZXIgPT0gTlVMTCkNCj4gKyAgICAgICAgcmV0dXJu
IGZhbHNlOw0KPiArDQo+ICsgICAgcmVzdWx0ID0gSW9jdGwoSU9DVExfWEVOSUZBQ0VfU1RPUkVf
UkVBRCwNCj4gKyAgICAgICAgICAgICAgICAgICAodm9pZCopcGF0aC5jX3N0cigpLCAoRFdPUkQp
cGF0aC5sZW5ndGgoKSArIDEsDQo+ICsgICAgICAgICAgICAgICAgICAgYnVmZmVyLCBieXRlcyk7
DQo+ICsNCj4gKyAgICBidWZmZXJbYnl0ZXNdID0gMDsNCj4gKyAgICBpZiAocmVzdWx0KQ0KPiAr
ICAgICAgICB2YWx1ZSA9IGJ1ZmZlcjsNCj4gKw0KPiArICAgIGRlbGV0ZSBbXSBidWZmZXI7DQo+
ICsgICAgcmV0dXJuIHJlc3VsdDsNCj4gK30NCj4gKw0KPiArYm9vbCBDWGVuSWZhY2VEZXZpY2U6
OlN0b3JlV3JpdGUoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgsIGNvbnN0DQo+IHN0ZDo6c3RyaW5n
JiB2YWx1ZSkNCj4gK3sNCj4gKyAgICBib29sICAgcmVzdWx0Ow0KPiArICAgIHNpemVfdCBsZW5n
dGggPSBwYXRoLmxlbmd0aCgpICsgMSArIHZhbHVlLmxlbmd0aCgpICsgMSArIDE7DQo+ICsgICAg
Y2hhciogIGJ1ZmZlciA9IG5ldyBjaGFyW2xlbmd0aF07DQo+ICsgICAgaWYgKGJ1ZmZlciA9PSBO
VUxMKQ0KPiArICAgICAgICByZXR1cm4gZmFsc2U7DQo+ICsNCj4gKyAgICBtZW1jcHkoYnVmZmVy
LCBwYXRoLmNfc3RyKCksIHBhdGgubGVuZ3RoKCkpOw0KPiArICAgIGJ1ZmZlcltwYXRoLmxlbmd0
aCgpXSA9IDA7DQo+ICsNCj4gKyAgICBtZW1jcHkoYnVmZmVyICsgcGF0aC5sZW5ndGgoKSArIDEs
IHZhbHVlLmNfc3RyKCksIHZhbHVlLmxlbmd0aCgpKTsNCj4gKyAgICBidWZmZXJbcGF0aC5sZW5n
dGgoKSArIDEgKyB2YWx1ZS5sZW5ndGgoKV0gPSAwOw0KPiArICAgIGJ1ZmZlcltsZW5ndGggLSAx
XSA9IDA7DQo+ICsNCj4gKyAgICByZXN1bHQgPSBJb2N0bChJT0NUTF9YRU5JRkFDRV9TVE9SRV9X
UklURSwgYnVmZmVyLCAoRFdPUkQpbGVuZ3RoLA0KPiBOVUxMLCAwKTsNCj4gKyAgICBkZWxldGUg
W10gYnVmZmVyOw0KPiArICAgIHJldHVybiByZXN1bHQ7DQo+ICt9DQo+ICsNCj4gK2Jvb2wgQ1hl
bklmYWNlRGV2aWNlOjpTdG9yZVJlbW92ZShjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCkNCj4gK3sN
Cj4gKyAgICByZXR1cm4gSW9jdGwoSU9DVExfWEVOSUZBQ0VfU1RPUkVfUkVNT1ZFLA0KPiArICAg
ICAgICAgICAgICAgICAodm9pZCopcGF0aC5jX3N0cigpLCAoRFdPUkQpcGF0aC5sZW5ndGgoKSAr
IDEsDQo+ICsgICAgICAgICAgICAgICAgIE5VTEwsIDApOw0KPiArfQ0KPiArDQo+ICtib29sIENY
ZW5JZmFjZURldmljZTo6U3RvcmVBZGRXYXRjaChjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCwgSEFO
RExFDQo+IGV2dCwgdm9pZCoqIGN0eHQpDQo+ICt7DQo+ICsgICAgWEVOSUZBQ0VfU1RPUkVfQURE
X1dBVENIX0lOICBpbiAgPSB7IChQQ0hBUilwYXRoLmNfc3RyKCksDQo+IChEV09SRClwYXRoLmxl
bmd0aCgpICsgMSwgZXZ0IH07DQo+ICsgICAgWEVOSUZBQ0VfU1RPUkVfQUREX1dBVENIX09VVCBv
dXQgPSB7IE5VTEwgfTsNCj4gKyAgICBpZiAoIUlvY3RsKElPQ1RMX1hFTklGQUNFX1NUT1JFX0FE
RF9XQVRDSCwNCj4gKyAgICAgICAgICAgICAgICZpbiwgKERXT1JEKXNpemVvZihpbiksDQo+ICsg
ICAgICAgICAgICAgICAmb3V0LCAoRFdPUkQpc2l6ZW9mKG91dCkpKQ0KPiArICAgICAgICByZXR1
cm4gZmFsc2U7DQo+ICsgICAgKmN0eHQgPSBvdXQuQ29udGV4dDsNCj4gKyAgICByZXR1cm4gdHJ1
ZTsNCj4gK30NCj4gKw0KPiArYm9vbCBDWGVuSWZhY2VEZXZpY2U6OlN0b3JlUmVtb3ZlV2F0Y2go
dm9pZCogY3R4dCkNCj4gK3sNCj4gKyAgICBYRU5JRkFDRV9TVE9SRV9SRU1PVkVfV0FUQ0hfSU4g
aW4gPSB7IGN0eHQgfTsNCj4gKyAgICByZXR1cm4gSW9jdGwoSU9DVExfWEVOSUZBQ0VfU1RPUkVf
UkVNT1ZFX1dBVENILA0KPiArICAgICAgICAgICAgICAgICAmaW4sIChEV09SRClzaXplb2YoaW4p
LA0KPiArICAgICAgICAgICAgICAgICBOVUxMLCAwKTsNCj4gK30NCj4gKw0KPiArLy8gc3VzcGVu
ZCBpbnRlcmZhY2UNCj4gK2Jvb2wgQ1hlbklmYWNlRGV2aWNlOjpTdXNwZW5kUmVnaXN0ZXIoSEFO
RExFIGV2dCwgdm9pZCoqIGN0eHQpDQo+ICt7DQo+ICsgICAgWEVOSUZBQ0VfU1VTUEVORF9SRUdJ
U1RFUl9JTiAgaW4gID0geyBldnQgfTsNCj4gKyAgICBYRU5JRkFDRV9TVVNQRU5EX1JFR0lTVEVS
X09VVCBvdXQgPSB7IE5VTEwgfTsNCj4gKyAgICBpZiAoIUlvY3RsKElPQ1RMX1hFTklGQUNFX1NV
U1BFTkRfUkVHSVNURVIsDQo+ICsgICAgICAgICAgICAgICAmaW4sIChEV09SRClzaXplb2YoaW4p
LA0KPiArICAgICAgICAgICAgICAgJm91dCwgKERXT1JEKXNpemVvZihvdXQpKSkNCj4gKyAgICAg
ICAgcmV0dXJuIGZhbHNlOw0KPiArICAgICpjdHh0ID0gb3V0LkNvbnRleHQ7DQo+ICsgICAgcmV0
dXJuIHRydWU7DQo+ICt9DQo+ICsNCj4gK2Jvb2wgQ1hlbklmYWNlRGV2aWNlOjpTdXNwZW5kRGVy
ZWdpc3Rlcih2b2lkKiBjdHh0KQ0KPiArew0KPiArICAgIFhFTklGQUNFX1NVU1BFTkRfUkVHSVNU
RVJfT1VUIGluID0geyBjdHh0IH07DQo+ICsgICAgcmV0dXJuIElvY3RsKElPQ1RMX1hFTklGQUNF
X1NVU1BFTkRfREVSRUdJU1RFUiwNCj4gKyAgICAgICAgICAgICAgICAgJmluLCAoRFdPUkQpc2l6
ZW9mKGluKSwNCj4gKyAgICAgICAgICAgICAgICAgTlVMTCwgMCk7DQo+ICt9DQo+ICsNCj4gKy8v
IHNoYXJlZGluZm8gaW50ZXJmYWNlDQo+ICtib29sIENYZW5JZmFjZURldmljZTo6U2hhcmVkSW5m
b0dldFRpbWUoRklMRVRJTUUqIHRpbWUpDQo+ICt7DQo+ICsgICAgcmV0dXJuIElvY3RsKElPQ1RM
X1hFTklGQUNFX1NIQVJFRElORk9fR0VUX1RJTUUsDQo+ICsgICAgICAgICAgICAgICAgIE5VTEws
IDAsDQo+ICsgICAgICAgICAgICAgICAgIHRpbWUsIHNpemVvZihGSUxFVElNRSkpOw0KPiArfQ0K
PiArDQo+ICsvLyBsb2dnaW5nDQo+ICtib29sIENYZW5JZmFjZURldmljZTo6TG9nKGNvbnN0IHN0
ZDo6c3RyaW5nJiBtc2cpDQo+ICt7DQo+ICsgICAgcmV0dXJuIElvY3RsKElPQ1RMX1hFTklGQUNF
X0xPRywNCj4gKyAgICAgICAgICAgICAgICAgKHZvaWQqKW1zZy5jX3N0cigpLCAoRFdPUkQpbXNn
Lmxlbmd0aCgpICsgMSwNCj4gKyAgICAgICAgICAgICAgICAgTlVMTCwgMCk7DQo+ICt9DQo+IGRp
ZmYgLS1naXQgYS9zcmMveGVuYWdlbnQveGVuaWZhY2VkZXZpY2UuaCBiL3NyYy94ZW5hZ2VudC94
ZW5pZmFjZWRldmljZS5oDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAu
LmVlMDEwNGMNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9zcmMveGVuYWdlbnQveGVuaWZhY2Vk
ZXZpY2UuaA0KPiBAQCAtMCwwICsxLDY0IEBADQo+ICsvKiBDb3B5cmlnaHQgKGMpIENpdHJpeCBT
eXN0ZW1zIEluYy4NCj4gKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+ICsgKg0KPiArICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcywNCj4gKyAqIHdp
dGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQNCj4gKyAq
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6DQo+ICsgKg0KPiArICogKiAg
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUNCj4g
KyAqICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
DQo+ICsgKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIuDQo+ICsgKiAqICAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQ0KPiArICogICAgIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUNCj4gKyAqICAg
ICBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIN
Cj4gKyAqICAgICBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KPiAr
ICoNCj4gKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORA0KPiArICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywNCj4gKyAqIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GDQo+ICsgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQ0KPiArICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1INCj4gKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLA0KPiArICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywNCj4g
KyAqIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
Ug0KPiArICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUw0KPiArICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksDQo+ICsgKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcNCj4gKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UNCj4gKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YNCj4gKyAqIFNVQ0ggREFNQUdF
Lg0KPiArICovDQo+ICsNCj4gKyNpZm5kZWYgX19YRU5BR0VOVF9YRU5JRkFDRURFVklDRV9IX18N
Cj4gKyNkZWZpbmUgX19YRU5BR0VOVF9YRU5JRkFDRURFVklDRV9IX18NCj4gKw0KPiArI2luY2x1
ZGUgPHdpbmRvd3MuaD4NCj4gKyNpbmNsdWRlIDxzdHJpbmc+DQo+ICsjaW5jbHVkZSAiZGV2aWNl
bGlzdC5oIg0KPiArDQo+ICtjbGFzcyBDWGVuSWZhY2VEZXZpY2UgOiBwdWJsaWMgQ0RldmljZQ0K
PiArew0KPiArcHVibGljOg0KPiArICAgIENYZW5JZmFjZURldmljZShjb25zdCB3Y2hhcl90KiBw
YXRoKTsNCj4gKyAgICB2aXJ0dWFsIH5DWGVuSWZhY2VEZXZpY2UoKTsNCj4gKw0KPiArcHVibGlj
OiAvLyBzdG9yZSBpbnRlcmZhY2UNCj4gKyAgICBib29sIFN0b3JlUmVhZChjb25zdCBzdGQ6OnN0
cmluZyYgcGF0aCwgc3RkOjpzdHJpbmcmIHZhbHVlKTsNCj4gKyAgICBib29sIFN0b3JlV3JpdGUo
Y29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgsIGNvbnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSk7DQo+ICsg
ICAgYm9vbCBTdG9yZVJlbW92ZShjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCk7DQo+ICsgICAgYm9v
bCBTdG9yZUFkZFdhdGNoKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoLCBIQU5ETEUgZXZ0LCB2b2lk
KiogY3R4dCk7DQo+ICsgICAgYm9vbCBTdG9yZVJlbW92ZVdhdGNoKHZvaWQqIGN0eHQpOw0KPiAr
DQo+ICtwdWJsaWM6IC8vIHN1c3BlbmQgaW50ZXJmYWNlDQo+ICsgICAgYm9vbCBTdXNwZW5kUmVn
aXN0ZXIoSEFORExFIGV2dCwgdm9pZCoqIGN0eHQpOw0KPiArICAgIGJvb2wgU3VzcGVuZERlcmVn
aXN0ZXIodm9pZCogY3R4dCk7DQo+ICsNCj4gK3B1YmxpYzogLy8gc2hhcmVkaW5mbyBpbnRlcmZh
Y2UNCj4gKyAgICBib29sIFNoYXJlZEluZm9HZXRUaW1lKEZJTEVUSU1FKiB0aW1lKTsNCj4gKw0K
PiArcHVibGljOiAvLyBsb2dnaW5nDQo+ICsgICAgYm9vbCBMb2coY29uc3Qgc3RkOjpzdHJpbmcm
IG1zZyk7DQo+ICt9Ow0KPiArDQo+ICsjZW5kaWYNCj4gKw0KPiBkaWZmIC0tZ2l0IGEvdnMyMDEy
L3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2oNCj4gYi92czIwMTIveGVuYWdlbnQveGVuYWdlbnQu
dmN4cHJvag0KPiBpbmRleCA2YzljOTFjLi4zN2RiM2ZkIDEwMDY0NA0KPiAtLS0gYS92czIwMTIv
eGVuYWdlbnQveGVuYWdlbnQudmN4cHJvag0KPiArKysgYi92czIwMTIveGVuYWdlbnQveGVuYWdl
bnQudmN4cHJvag0KPiBAQCAtMTk1LDEwICsxOTUsMTIgQEANCj4gICAgPEl0ZW1Hcm91cD4NCj4g
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5hZ2VudFxzZXJ2aWNlLmNwcCIv
Pg0KPiAgICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHhlbmFnZW50XGRldmljZWxp
c3QuY3BwIi8+DQo+ICsgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuYWdlbnRc
eGVuaWZhY2VkZXZpY2UuY3BwIi8+DQo+ICAgIDwvSXRlbUdyb3VwPg0KPiAgICA8SXRlbUdyb3Vw
Pg0KPiAgICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cc3JjXHhlbmFnZW50XHNlcnZpY2Uu
aCIgLz4NCj4gICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5hZ2VudFxkZXZp
Y2VsaXN0LmgiIC8+DQo+ICsgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuYWdl
bnRceGVuaWZhY2VkZXZpY2UuaCIgLz4NCj4gICAgPC9JdGVtR3JvdXA+DQo+ICAgIDxJdGVtR3Jv
dXA+DQo+ICAgICAgPEN1c3RvbUJ1aWxkIEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5hZ2VudFxtZXNz
YWdlcy5tYyI+DQo+IGRpZmYgLS1naXQgYS92czIwMTMveGVuYWdlbnQveGVuYWdlbnQudmN4cHJv
ag0KPiBiL3ZzMjAxMy94ZW5hZ2VudC94ZW5hZ2VudC52Y3hwcm9qDQo+IGluZGV4IGQzMTI2MjYu
LmY1YzE3MzAgMTAwNjQ0DQo+IC0tLSBhL3ZzMjAxMy94ZW5hZ2VudC94ZW5hZ2VudC52Y3hwcm9q
DQo+ICsrKyBiL3ZzMjAxMy94ZW5hZ2VudC94ZW5hZ2VudC52Y3hwcm9qDQo+IEBAIC0xOTksMTAg
KzE5OSwxMiBAQA0KPiAgICA8SXRlbUdyb3VwPg0KPiAgICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cLi5cc3JjXHhlbmFnZW50XHNlcnZpY2UuY3BwIi8+DQo+ICAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlwuLlxzcmNceGVuYWdlbnRcZGV2aWNlbGlzdC5jcHAiLz4NCj4gKyAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5hZ2VudFx4ZW5pZmFjZWRldmljZS5jcHAiLz4NCj4g
ICAgPC9JdGVtR3JvdXA+DQo+ICAgIDxJdGVtR3JvdXA+DQo+ICAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlwuLlxzcmNceGVuYWdlbnRcc2VydmljZS5oIiAvPg0KPiAgICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cLi5cc3JjXHhlbmFnZW50XGRldmljZWxpc3QuaCIgLz4NCj4gKyAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5hZ2VudFx4ZW5pZmFjZWRldmljZS5oIiAvPg0K
PiAgICA8L0l0ZW1Hcm91cD4NCj4gICAgPEl0ZW1Hcm91cD4NCj4gICAgICA8Q3VzdG9tQnVpbGQg
SW5jbHVkZT0iLi5cLi5cc3JjXHhlbmFnZW50XHhlbmFnZW50Lm1jIj4NCj4gLS0NCj4gMS45LjQu
bXN5c2dpdC4xDQo+IA0KPiANCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18NCj4gd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdA0KPiB3aW4tcHYtZGV2ZWxA
bGlzdHMueGVucHJvamVjdC5vcmcNCj4gaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1i
aW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWwNCl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcv
Y2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Wed Jul 06 15:51:39 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 06 Jul 2016 15:51:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bKp6x-0001LN-J7; Wed, 06 Jul 2016 15:51:39 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=988999fe3=Paul.Durrant@citrix.com>)
 id 1bKp6v-0001Ks-TR
 for win-pv-devel@lists.xenproject.org; Wed, 06 Jul 2016 15:51:38 +0000
Received: from [85.158.143.35] by server-3.bemta-6.messagelabs.com id
 AD/58-22092-9092D775; Wed, 06 Jul 2016 15:51:37 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmphleJIrShJLcpLzFFi42LZKekoocuhWRt
 uMPGYmsWfxYkOjB6HP1xhCWCMYs3MS8qvSGDN2DV7P1PBwdqKb4tmMzcwfqjuYuTkkBDwk2i5
 MZMVxGYT0JFYenQ+E4gtIlAg8f39PGYQm1lATeL6/i6wGmEBK4njB6azQtRYSyy+O4uli5EDy
 DaS+PyvFMRkEVCRWNshAVLBK+AuceHlRaAKLg4hgQZGiUt7NoON5BRwk3h2dzWYzSggK/GlcT
 XUKnGJW08gTpAQEJBYsuc8M4QtKvHy8T9WCNtAYuvSfWBrmQU0Jdbv0odoVZSY0v2QHWKvoMT
 JmU9YQGwhoHO2PD4ANYZbYuXnPywTGEVnIdk2C2HSLCSTZiGZtICRZRWjenFqUVlqka6hXlJR
 ZnpGSW5iZo6uoYGZXm5qcXFiempOYlKxXnJ+7iZGYIwwAMEOxp3PnQ4xSnIwKYnysnyrDhfiS
 8pPqcxILM6ILyrNSS0+xCjDwaEkwWutURsuJFiUmp5akZaZA4xWmLQEB4+SCG8ISJq3uCAxtz
 gzHSJ1ilGXY9byO2uZhFjy8vNSpcR5uUCKBECKMkrz4EbAEsclRlkpYV5GoKOEeApSi3IzS1D
 lXzGKczAqCfPagUzhycwrgdv0CugIJqAjfrpUgxxRkoiQkmpg7A04POsBH6v5/BqjrXZ7ODfe
 MzB3yeGR3VH0ax3r9mhxnq86ItITOrV3l3fJXCxq87t05/i3VWVZBw/uElhj8EKTfW3CvjcNr
 8ISFTS4D91/XPyT9awtq/cb00tFx9VXeb+4UNnTP23DU9NrRqGp+b48kw5NaoyYftSdi/sLg0
 AmW0H33jpfJZbijERDLeai4kQAiiC9HxcDAAA=
X-Env-Sender: prvs=988999fe3=Paul.Durrant@citrix.com
X-Msg-Ref: server-10.tower-21.messagelabs.com!1467820296!22505618!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 22322 invoked from network); 6 Jul 2016 15:51:36 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-10.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 6 Jul 2016 15:51:36 -0000
X-IronPort-AV: E=Sophos;i="5.28,319,1464652800"; d="scan'208";a="25687431"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 3/6] Add XenIfaceDevice
Thread-Index: AQHR1qlkwxrF8UVsxE6bHMp7msXwdaALjx5g
Date: Wed, 6 Jul 2016 15:51:25 +0000
Message-ID: <35d3076c9cfc47778cb8546bf3b3dba4@AMSPEX02CL03.citrite.net>
References: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
 <1467715091-13216-4-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1467715091-13216-4-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 3/6] Add XenIfaceDevice
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMDUgSnVseSAyMDE2IDExOjM4DQo+IFRvOiB3aW4tcHYt
ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gQ2M6IE93ZW4gU21pdGgNCj4gU3ViamVjdDog
W3dpbi1wdi1kZXZlbF0gW1BBVENIIDMvNl0gQWRkIFhlbklmYWNlRGV2aWNlDQo+IA0KPiBYZW5J
ZmFjZURldmljZSBpcyBhIENEZXZpY2Ugc3ViY2xhc3MgdGhhdCBhYnN0cmFjdHMgdGhlIElPQ1RM
DQo+IGludGVyZmFjZSBieSBtYW5hZ2luZyB0aGUgY29udmVyc2lvbiB0by9mcm9tIElPQ1RMIGlu
cHV0cy9vdXRwdXRzLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0
aEBjaXRyaXguY29tPg0KDQpBY2tlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0
cml4LmNvbT4NCg0KPiAtLS0NCj4gIHNyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcCAgICAgICAgIHwg
ICAyICstDQo+ICBzcmMveGVuYWdlbnQvc2VydmljZS5oICAgICAgICAgICB8ICAgMSArDQo+ICBz
cmMveGVuYWdlbnQveGVuaWZhY2VkZXZpY2UuY3BwICB8IDE1Mw0KPiArKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysNCj4gIHNyYy94ZW5hZ2VudC94ZW5pZmFjZWRldmljZS5o
ICAgIHwgIDY0ICsrKysrKysrKysrKysrKysNCj4gIHZzMjAxMi94ZW5hZ2VudC94ZW5hZ2VudC52
Y3hwcm9qIHwgICAyICsNCj4gIHZzMjAxMy94ZW5hZ2VudC94ZW5hZ2VudC52Y3hwcm9qIHwgICAy
ICsNCj4gIDYgZmlsZXMgY2hhbmdlZCwgMjIzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkN
Cj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMveGVuYWdlbnQveGVuaWZhY2VkZXZpY2UuY3BwDQo+
ICBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3hlbmFnZW50L3hlbmlmYWNlZGV2aWNlLmgNCj4gDQo+
IGRpZmYgLS1naXQgYS9zcmMveGVuYWdlbnQvc2VydmljZS5jcHAgYi9zcmMveGVuYWdlbnQvc2Vy
dmljZS5jcHANCj4gaW5kZXggZmVjOGU5NS4uYmQwODVmNiAxMDA2NDQNCj4gLS0tIGEvc3JjL3hl
bmFnZW50L3NlcnZpY2UuY3BwDQo+ICsrKyBiL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcA0KPiBA
QCAtMTcxLDcgKzE3MSw3IEBAIENYZW5BZ2VudDo6fkNYZW5BZ2VudCgpDQo+IA0KPiAgLyp2aXJ0
dWFsKi8gQ0RldmljZSogQ1hlbkFnZW50OjpDcmVhdGUoY29uc3Qgd2NoYXJfdCogcGF0aCkNCj4g
IHsNCj4gLSAgICByZXR1cm4gbmV3IENEZXZpY2UocGF0aCk7DQo+ICsgICAgcmV0dXJuIG5ldyBD
WGVuSWZhY2VEZXZpY2UocGF0aCk7DQo+ICB9DQo+IA0KPiAgLyp2aXJ0dWFsKi8gdm9pZCBDWGVu
QWdlbnQ6Ok9uRGV2aWNlQWRkZWQoQ0RldmljZSogZGV2KQ0KPiBkaWZmIC0tZ2l0IGEvc3JjL3hl
bmFnZW50L3NlcnZpY2UuaCBiL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmgNCj4gaW5kZXggYmEzZjQz
MC4uZTMxZGNmZCAxMDA2NDQNCj4gLS0tIGEvc3JjL3hlbmFnZW50L3NlcnZpY2UuaA0KPiArKysg
Yi9zcmMveGVuYWdlbnQvc2VydmljZS5oDQo+IEBAIC0zOSw2ICszOSw3IEBADQo+ICAjZGVmaW5l
IFNWQ19ERVNDICJNb25pdG9ycyBhbmQgcHJvdmlkZXMgdmFyaW91cyBtZXRyaWNzIHRvIFhlblN0
b3JlIg0KPiANCj4gICNpbmNsdWRlICJkZXZpY2VsaXN0LmgiDQo+ICsjaW5jbHVkZSAieGVuaWZh
Y2VkZXZpY2UuaCINCj4gDQo+ICBjbGFzcyBDWGVuQWdlbnQgOiBwdWJsaWMgSURldmljZUNyZWF0
b3INCj4gIHsNCj4gZGlmZiAtLWdpdCBhL3NyYy94ZW5hZ2VudC94ZW5pZmFjZWRldmljZS5jcHAN
Cj4gYi9zcmMveGVuYWdlbnQveGVuaWZhY2VkZXZpY2UuY3BwDQo+IG5ldyBmaWxlIG1vZGUgMTAw
NjQ0DQo+IGluZGV4IDAwMDAwMDAuLjE2MTg5ZDINCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9z
cmMveGVuYWdlbnQveGVuaWZhY2VkZXZpY2UuY3BwDQo+IEBAIC0wLDAgKzEsMTUzIEBADQo+ICsv
KiBDb3B5cmlnaHQgKGMpIENpdHJpeCBTeXN0ZW1zIEluYy4NCj4gKyAqIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuDQo+ICsgKg0KPiArICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3JtcywNCj4gKyAqIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQNCj4gKyAqIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZSBtZXQ6DQo+ICsgKg0KPiArICogKiAgIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUNCj4gKyAqICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlDQo+ICsgKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIu
DQo+ICsgKiAqICAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQ0KPiArICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUNCj4gKyAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXINCj4gKyAqICAgICBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLg0KPiArICoNCj4gKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORA0KPiArICogQ09OVFJJQlVUT1JTICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywNCj4gKyAqIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GDQo+ICsgKiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQ0K
PiArICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIg
T1INCj4gKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLA0KPiArICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywNCj4gKyAqIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUg0KPiArICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUw0KPiArICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksDQo+ICsgKiBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcNCj4gKyAqIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UN
Cj4gKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YNCj4gKyAqIFNVQ0ggREFNQUdFLg0KPiArICovDQo+ICsNCj4gKyNpbmNsdWRlIDx3aW5k
b3dzLmg+DQo+ICsjaW5jbHVkZSAieGVuaWZhY2VkZXZpY2UuaCINCj4gKyNpbmNsdWRlICJkZXZp
Y2VsaXN0LmgiDQo+ICsjaW5jbHVkZSAieGVuaWZhY2VfaW9jdGxzLmgiDQo+ICsNCj4gK0NYZW5J
ZmFjZURldmljZTo6Q1hlbklmYWNlRGV2aWNlKGNvbnN0IHdjaGFyX3QqIHBhdGgpIDogQ0Rldmlj
ZShwYXRoKQ0KPiAre30NCj4gKw0KPiArLyp2aXJ0dWFsKi8gQ1hlbklmYWNlRGV2aWNlOjp+Q1hl
bklmYWNlRGV2aWNlKCkNCj4gK3t9DQo+ICsNCj4gKy8vIHN0b3JlIGludGVyZmFjZQ0KPiArYm9v
bCBDWGVuSWZhY2VEZXZpY2U6OlN0b3JlUmVhZChjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCwgc3Rk
OjpzdHJpbmcmDQo+IHZhbHVlKQ0KPiArew0KPiArICAgIERXT1JEICAgYnl0ZXMoMCk7DQo+ICsg
ICAgY2hhciogICBidWZmZXI7DQo+ICsgICAgYm9vbCAgICByZXN1bHQ7DQo+ICsNCj4gKyAgICBJ
b2N0bChJT0NUTF9YRU5JRkFDRV9TVE9SRV9SRUFELA0KPiArICAgICAgICAgICh2b2lkKilwYXRo
LmNfc3RyKCksIChEV09SRClwYXRoLmxlbmd0aCgpICsgMSwNCj4gKyAgICAgICAgICBOVUxMLCAw
LA0KPiArICAgICAgICAgICZieXRlcyk7DQo+ICsNCj4gKyAgICBidWZmZXIgPSBuZXcgY2hhclti
eXRlcyArIDFdOw0KPiArICAgIGlmIChidWZmZXIgPT0gTlVMTCkNCj4gKyAgICAgICAgcmV0dXJu
IGZhbHNlOw0KPiArDQo+ICsgICAgcmVzdWx0ID0gSW9jdGwoSU9DVExfWEVOSUZBQ0VfU1RPUkVf
UkVBRCwNCj4gKyAgICAgICAgICAgICAgICAgICAodm9pZCopcGF0aC5jX3N0cigpLCAoRFdPUkQp
cGF0aC5sZW5ndGgoKSArIDEsDQo+ICsgICAgICAgICAgICAgICAgICAgYnVmZmVyLCBieXRlcyk7
DQo+ICsNCj4gKyAgICBidWZmZXJbYnl0ZXNdID0gMDsNCj4gKyAgICBpZiAocmVzdWx0KQ0KPiAr
ICAgICAgICB2YWx1ZSA9IGJ1ZmZlcjsNCj4gKw0KPiArICAgIGRlbGV0ZSBbXSBidWZmZXI7DQo+
ICsgICAgcmV0dXJuIHJlc3VsdDsNCj4gK30NCj4gKw0KPiArYm9vbCBDWGVuSWZhY2VEZXZpY2U6
OlN0b3JlV3JpdGUoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgsIGNvbnN0DQo+IHN0ZDo6c3RyaW5n
JiB2YWx1ZSkNCj4gK3sNCj4gKyAgICBib29sICAgcmVzdWx0Ow0KPiArICAgIHNpemVfdCBsZW5n
dGggPSBwYXRoLmxlbmd0aCgpICsgMSArIHZhbHVlLmxlbmd0aCgpICsgMSArIDE7DQo+ICsgICAg
Y2hhciogIGJ1ZmZlciA9IG5ldyBjaGFyW2xlbmd0aF07DQo+ICsgICAgaWYgKGJ1ZmZlciA9PSBO
VUxMKQ0KPiArICAgICAgICByZXR1cm4gZmFsc2U7DQo+ICsNCj4gKyAgICBtZW1jcHkoYnVmZmVy
LCBwYXRoLmNfc3RyKCksIHBhdGgubGVuZ3RoKCkpOw0KPiArICAgIGJ1ZmZlcltwYXRoLmxlbmd0
aCgpXSA9IDA7DQo+ICsNCj4gKyAgICBtZW1jcHkoYnVmZmVyICsgcGF0aC5sZW5ndGgoKSArIDEs
IHZhbHVlLmNfc3RyKCksIHZhbHVlLmxlbmd0aCgpKTsNCj4gKyAgICBidWZmZXJbcGF0aC5sZW5n
dGgoKSArIDEgKyB2YWx1ZS5sZW5ndGgoKV0gPSAwOw0KPiArICAgIGJ1ZmZlcltsZW5ndGggLSAx
XSA9IDA7DQo+ICsNCj4gKyAgICByZXN1bHQgPSBJb2N0bChJT0NUTF9YRU5JRkFDRV9TVE9SRV9X
UklURSwgYnVmZmVyLCAoRFdPUkQpbGVuZ3RoLA0KPiBOVUxMLCAwKTsNCj4gKyAgICBkZWxldGUg
W10gYnVmZmVyOw0KPiArICAgIHJldHVybiByZXN1bHQ7DQo+ICt9DQo+ICsNCj4gK2Jvb2wgQ1hl
bklmYWNlRGV2aWNlOjpTdG9yZVJlbW92ZShjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCkNCj4gK3sN
Cj4gKyAgICByZXR1cm4gSW9jdGwoSU9DVExfWEVOSUZBQ0VfU1RPUkVfUkVNT1ZFLA0KPiArICAg
ICAgICAgICAgICAgICAodm9pZCopcGF0aC5jX3N0cigpLCAoRFdPUkQpcGF0aC5sZW5ndGgoKSAr
IDEsDQo+ICsgICAgICAgICAgICAgICAgIE5VTEwsIDApOw0KPiArfQ0KPiArDQo+ICtib29sIENY
ZW5JZmFjZURldmljZTo6U3RvcmVBZGRXYXRjaChjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCwgSEFO
RExFDQo+IGV2dCwgdm9pZCoqIGN0eHQpDQo+ICt7DQo+ICsgICAgWEVOSUZBQ0VfU1RPUkVfQURE
X1dBVENIX0lOICBpbiAgPSB7IChQQ0hBUilwYXRoLmNfc3RyKCksDQo+IChEV09SRClwYXRoLmxl
bmd0aCgpICsgMSwgZXZ0IH07DQo+ICsgICAgWEVOSUZBQ0VfU1RPUkVfQUREX1dBVENIX09VVCBv
dXQgPSB7IE5VTEwgfTsNCj4gKyAgICBpZiAoIUlvY3RsKElPQ1RMX1hFTklGQUNFX1NUT1JFX0FE
RF9XQVRDSCwNCj4gKyAgICAgICAgICAgICAgICZpbiwgKERXT1JEKXNpemVvZihpbiksDQo+ICsg
ICAgICAgICAgICAgICAmb3V0LCAoRFdPUkQpc2l6ZW9mKG91dCkpKQ0KPiArICAgICAgICByZXR1
cm4gZmFsc2U7DQo+ICsgICAgKmN0eHQgPSBvdXQuQ29udGV4dDsNCj4gKyAgICByZXR1cm4gdHJ1
ZTsNCj4gK30NCj4gKw0KPiArYm9vbCBDWGVuSWZhY2VEZXZpY2U6OlN0b3JlUmVtb3ZlV2F0Y2go
dm9pZCogY3R4dCkNCj4gK3sNCj4gKyAgICBYRU5JRkFDRV9TVE9SRV9SRU1PVkVfV0FUQ0hfSU4g
aW4gPSB7IGN0eHQgfTsNCj4gKyAgICByZXR1cm4gSW9jdGwoSU9DVExfWEVOSUZBQ0VfU1RPUkVf
UkVNT1ZFX1dBVENILA0KPiArICAgICAgICAgICAgICAgICAmaW4sIChEV09SRClzaXplb2YoaW4p
LA0KPiArICAgICAgICAgICAgICAgICBOVUxMLCAwKTsNCj4gK30NCj4gKw0KPiArLy8gc3VzcGVu
ZCBpbnRlcmZhY2UNCj4gK2Jvb2wgQ1hlbklmYWNlRGV2aWNlOjpTdXNwZW5kUmVnaXN0ZXIoSEFO
RExFIGV2dCwgdm9pZCoqIGN0eHQpDQo+ICt7DQo+ICsgICAgWEVOSUZBQ0VfU1VTUEVORF9SRUdJ
U1RFUl9JTiAgaW4gID0geyBldnQgfTsNCj4gKyAgICBYRU5JRkFDRV9TVVNQRU5EX1JFR0lTVEVS
X09VVCBvdXQgPSB7IE5VTEwgfTsNCj4gKyAgICBpZiAoIUlvY3RsKElPQ1RMX1hFTklGQUNFX1NV
U1BFTkRfUkVHSVNURVIsDQo+ICsgICAgICAgICAgICAgICAmaW4sIChEV09SRClzaXplb2YoaW4p
LA0KPiArICAgICAgICAgICAgICAgJm91dCwgKERXT1JEKXNpemVvZihvdXQpKSkNCj4gKyAgICAg
ICAgcmV0dXJuIGZhbHNlOw0KPiArICAgICpjdHh0ID0gb3V0LkNvbnRleHQ7DQo+ICsgICAgcmV0
dXJuIHRydWU7DQo+ICt9DQo+ICsNCj4gK2Jvb2wgQ1hlbklmYWNlRGV2aWNlOjpTdXNwZW5kRGVy
ZWdpc3Rlcih2b2lkKiBjdHh0KQ0KPiArew0KPiArICAgIFhFTklGQUNFX1NVU1BFTkRfUkVHSVNU
RVJfT1VUIGluID0geyBjdHh0IH07DQo+ICsgICAgcmV0dXJuIElvY3RsKElPQ1RMX1hFTklGQUNF
X1NVU1BFTkRfREVSRUdJU1RFUiwNCj4gKyAgICAgICAgICAgICAgICAgJmluLCAoRFdPUkQpc2l6
ZW9mKGluKSwNCj4gKyAgICAgICAgICAgICAgICAgTlVMTCwgMCk7DQo+ICt9DQo+ICsNCj4gKy8v
IHNoYXJlZGluZm8gaW50ZXJmYWNlDQo+ICtib29sIENYZW5JZmFjZURldmljZTo6U2hhcmVkSW5m
b0dldFRpbWUoRklMRVRJTUUqIHRpbWUpDQo+ICt7DQo+ICsgICAgcmV0dXJuIElvY3RsKElPQ1RM
X1hFTklGQUNFX1NIQVJFRElORk9fR0VUX1RJTUUsDQo+ICsgICAgICAgICAgICAgICAgIE5VTEws
IDAsDQo+ICsgICAgICAgICAgICAgICAgIHRpbWUsIHNpemVvZihGSUxFVElNRSkpOw0KPiArfQ0K
PiArDQo+ICsvLyBsb2dnaW5nDQo+ICtib29sIENYZW5JZmFjZURldmljZTo6TG9nKGNvbnN0IHN0
ZDo6c3RyaW5nJiBtc2cpDQo+ICt7DQo+ICsgICAgcmV0dXJuIElvY3RsKElPQ1RMX1hFTklGQUNF
X0xPRywNCj4gKyAgICAgICAgICAgICAgICAgKHZvaWQqKW1zZy5jX3N0cigpLCAoRFdPUkQpbXNn
Lmxlbmd0aCgpICsgMSwNCj4gKyAgICAgICAgICAgICAgICAgTlVMTCwgMCk7DQo+ICt9DQo+IGRp
ZmYgLS1naXQgYS9zcmMveGVuYWdlbnQveGVuaWZhY2VkZXZpY2UuaCBiL3NyYy94ZW5hZ2VudC94
ZW5pZmFjZWRldmljZS5oDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAu
LmVlMDEwNGMNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9zcmMveGVuYWdlbnQveGVuaWZhY2Vk
ZXZpY2UuaA0KPiBAQCAtMCwwICsxLDY0IEBADQo+ICsvKiBDb3B5cmlnaHQgKGMpIENpdHJpeCBT
eXN0ZW1zIEluYy4NCj4gKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+ICsgKg0KPiArICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcywNCj4gKyAqIHdp
dGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQNCj4gKyAq
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6DQo+ICsgKg0KPiArICogKiAg
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUNCj4g
KyAqICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
DQo+ICsgKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIuDQo+ICsgKiAqICAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQ0KPiArICogICAgIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUNCj4gKyAqICAg
ICBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIN
Cj4gKyAqICAgICBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KPiAr
ICoNCj4gKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORA0KPiArICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywNCj4gKyAqIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GDQo+ICsgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQ0KPiArICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1INCj4gKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLA0KPiArICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywNCj4g
KyAqIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
Ug0KPiArICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUw0KPiArICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksDQo+ICsgKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcNCj4gKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UNCj4gKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YNCj4gKyAqIFNVQ0ggREFNQUdF
Lg0KPiArICovDQo+ICsNCj4gKyNpZm5kZWYgX19YRU5BR0VOVF9YRU5JRkFDRURFVklDRV9IX18N
Cj4gKyNkZWZpbmUgX19YRU5BR0VOVF9YRU5JRkFDRURFVklDRV9IX18NCj4gKw0KPiArI2luY2x1
ZGUgPHdpbmRvd3MuaD4NCj4gKyNpbmNsdWRlIDxzdHJpbmc+DQo+ICsjaW5jbHVkZSAiZGV2aWNl
bGlzdC5oIg0KPiArDQo+ICtjbGFzcyBDWGVuSWZhY2VEZXZpY2UgOiBwdWJsaWMgQ0RldmljZQ0K
PiArew0KPiArcHVibGljOg0KPiArICAgIENYZW5JZmFjZURldmljZShjb25zdCB3Y2hhcl90KiBw
YXRoKTsNCj4gKyAgICB2aXJ0dWFsIH5DWGVuSWZhY2VEZXZpY2UoKTsNCj4gKw0KPiArcHVibGlj
OiAvLyBzdG9yZSBpbnRlcmZhY2UNCj4gKyAgICBib29sIFN0b3JlUmVhZChjb25zdCBzdGQ6OnN0
cmluZyYgcGF0aCwgc3RkOjpzdHJpbmcmIHZhbHVlKTsNCj4gKyAgICBib29sIFN0b3JlV3JpdGUo
Y29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgsIGNvbnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSk7DQo+ICsg
ICAgYm9vbCBTdG9yZVJlbW92ZShjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCk7DQo+ICsgICAgYm9v
bCBTdG9yZUFkZFdhdGNoKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoLCBIQU5ETEUgZXZ0LCB2b2lk
KiogY3R4dCk7DQo+ICsgICAgYm9vbCBTdG9yZVJlbW92ZVdhdGNoKHZvaWQqIGN0eHQpOw0KPiAr
DQo+ICtwdWJsaWM6IC8vIHN1c3BlbmQgaW50ZXJmYWNlDQo+ICsgICAgYm9vbCBTdXNwZW5kUmVn
aXN0ZXIoSEFORExFIGV2dCwgdm9pZCoqIGN0eHQpOw0KPiArICAgIGJvb2wgU3VzcGVuZERlcmVn
aXN0ZXIodm9pZCogY3R4dCk7DQo+ICsNCj4gK3B1YmxpYzogLy8gc2hhcmVkaW5mbyBpbnRlcmZh
Y2UNCj4gKyAgICBib29sIFNoYXJlZEluZm9HZXRUaW1lKEZJTEVUSU1FKiB0aW1lKTsNCj4gKw0K
PiArcHVibGljOiAvLyBsb2dnaW5nDQo+ICsgICAgYm9vbCBMb2coY29uc3Qgc3RkOjpzdHJpbmcm
IG1zZyk7DQo+ICt9Ow0KPiArDQo+ICsjZW5kaWYNCj4gKw0KPiBkaWZmIC0tZ2l0IGEvdnMyMDEy
L3hlbmFnZW50L3hlbmFnZW50LnZjeHByb2oNCj4gYi92czIwMTIveGVuYWdlbnQveGVuYWdlbnQu
dmN4cHJvag0KPiBpbmRleCA2YzljOTFjLi4zN2RiM2ZkIDEwMDY0NA0KPiAtLS0gYS92czIwMTIv
eGVuYWdlbnQveGVuYWdlbnQudmN4cHJvag0KPiArKysgYi92czIwMTIveGVuYWdlbnQveGVuYWdl
bnQudmN4cHJvag0KPiBAQCAtMTk1LDEwICsxOTUsMTIgQEANCj4gICAgPEl0ZW1Hcm91cD4NCj4g
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5hZ2VudFxzZXJ2aWNlLmNwcCIv
Pg0KPiAgICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXHhlbmFnZW50XGRldmljZWxp
c3QuY3BwIi8+DQo+ICsgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuYWdlbnRc
eGVuaWZhY2VkZXZpY2UuY3BwIi8+DQo+ICAgIDwvSXRlbUdyb3VwPg0KPiAgICA8SXRlbUdyb3Vw
Pg0KPiAgICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cc3JjXHhlbmFnZW50XHNlcnZpY2Uu
aCIgLz4NCj4gICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5hZ2VudFxkZXZp
Y2VsaXN0LmgiIC8+DQo+ICsgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlxzcmNceGVuYWdl
bnRceGVuaWZhY2VkZXZpY2UuaCIgLz4NCj4gICAgPC9JdGVtR3JvdXA+DQo+ICAgIDxJdGVtR3Jv
dXA+DQo+ICAgICAgPEN1c3RvbUJ1aWxkIEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5hZ2VudFxtZXNz
YWdlcy5tYyI+DQo+IGRpZmYgLS1naXQgYS92czIwMTMveGVuYWdlbnQveGVuYWdlbnQudmN4cHJv
ag0KPiBiL3ZzMjAxMy94ZW5hZ2VudC94ZW5hZ2VudC52Y3hwcm9qDQo+IGluZGV4IGQzMTI2MjYu
LmY1YzE3MzAgMTAwNjQ0DQo+IC0tLSBhL3ZzMjAxMy94ZW5hZ2VudC94ZW5hZ2VudC52Y3hwcm9q
DQo+ICsrKyBiL3ZzMjAxMy94ZW5hZ2VudC94ZW5hZ2VudC52Y3hwcm9qDQo+IEBAIC0xOTksMTAg
KzE5OSwxMiBAQA0KPiAgICA8SXRlbUdyb3VwPg0KPiAgICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cLi5cc3JjXHhlbmFnZW50XHNlcnZpY2UuY3BwIi8+DQo+ICAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlwuLlxzcmNceGVuYWdlbnRcZGV2aWNlbGlzdC5jcHAiLz4NCj4gKyAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5hZ2VudFx4ZW5pZmFjZWRldmljZS5jcHAiLz4NCj4g
ICAgPC9JdGVtR3JvdXA+DQo+ICAgIDxJdGVtR3JvdXA+DQo+ICAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlwuLlxzcmNceGVuYWdlbnRcc2VydmljZS5oIiAvPg0KPiAgICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cLi5cc3JjXHhlbmFnZW50XGRldmljZWxpc3QuaCIgLz4NCj4gKyAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXC4uXHNyY1x4ZW5hZ2VudFx4ZW5pZmFjZWRldmljZS5oIiAvPg0K
PiAgICA8L0l0ZW1Hcm91cD4NCj4gICAgPEl0ZW1Hcm91cD4NCj4gICAgICA8Q3VzdG9tQnVpbGQg
SW5jbHVkZT0iLi5cLi5cc3JjXHhlbmFnZW50XHhlbmFnZW50Lm1jIj4NCj4gLS0NCj4gMS45LjQu
bXN5c2dpdC4xDQo+IA0KPiANCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18NCj4gd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdA0KPiB3aW4tcHYtZGV2ZWxA
bGlzdHMueGVucHJvamVjdC5vcmcNCj4gaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1i
aW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWwNCl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcv
Y2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Wed Jul 06 15:52:15 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 06 Jul 2016 15:52:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bKp7W-0001Tk-TL; Wed, 06 Jul 2016 15:52:14 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=988999fe3=Paul.Durrant@citrix.com>)
 id 1bKp7V-0001TC-SJ
 for win-pv-devel@lists.xenproject.org; Wed, 06 Jul 2016 15:52:13 +0000
Received: from [85.158.137.68] by server-9.bemta-3.messagelabs.com id
 32/13-16470-D292D775; Wed, 06 Jul 2016 15:52:13 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrOIsWRWlGSWpSXmKPExsWyU9JRQldHszb
 c4PQrZYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCace3fHsaCk2oVLz+sZGxg7FDrYuTkkBDwk9j6
 o4sJxGYT0JFYenQ+mC0iUCDx/f08ZhCbWUBN4vr+LlYQW1jAR2LviX9ANgdQja/EnFZpiHIji
 UWrp7KA2CwCKhKvd+9iAynhFXCX2HvBHyQsJNDAKHFveyaIzSngJvHtaSMjiM0oICvxpXE11C
 ZxiVtPIC6QEBCQWLLnPDOELSrx8vE/VgjbQGLr0n0sIOOZBTQl1u/Sh2hVlJjS/ZAdxOYVEJQ
 4OfMJC8RaFYktjw9AjeGWWPn5D8sERtFZSLbNQpg0C8mkWUgmLWBkWcWoXpxaVJZapGuml1SU
 mZ5RkpuYmaNraGCsl5taXJyYnpqTmFSsl5yfu4kRGCH1DAyMOxivtDkfYpTkYFIS5WX5Vh0ux
 JeUn1KZkVicEV9UmpNafIhRhoNDSYL3knptuJBgUWp6akVaZg4wVmHSEhw8SiK8IRpAad7igs
 Tc4sx0iNQpRkUpcV4ukIQASCKjNA+uDZYeLjHKSgnzMjIwMAjxFKQW5WaWoMq/YhTnYFQS5v0
 Psp0nM68EbvoroMVMQIt/ulSDLC5JREhJNTCue3egdMrsNwFObdtbX/f6emw4xH9nD8O35Uwl
 wlwneVdN2V8/ScZx4qZpqisuBlhWfIhO6N9TfJjh4TaXBTpCbK/UPzVFb+czvcZafC/GuOzd2
 f0VBX2ZTGeEjNu1t/VnR77rUD4kO3H+rCPy0WfnbjmWvmrLmxn5PuVrIm0OKiZsmd605a+SEk
 txRqKhFnNRcSIAKx9yPwoDAAA=
X-Env-Sender: prvs=988999fe3=Paul.Durrant@citrix.com
X-Msg-Ref: server-15.tower-31.messagelabs.com!1467820332!45249047!2
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: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 49710 invoked from network); 6 Jul 2016 15:52:12 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-15.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 6 Jul 2016 15:52:12 -0000
X-IronPort-AV: E=Sophos;i="5.28,319,1464652800"; d="scan'208";a="25687511"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 4/6] Track active device in service class
Thread-Index: AQHR1qlkdGi1cT3lnEGLmGJwLYVZ0aALj1jA
Date: Wed, 6 Jul 2016 15:52:11 +0000
Message-ID: <43840252e2ef4f87993b9e0986d6fdd1@AMSPEX02CL03.citrite.net>
References: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
 <1467715091-13216-5-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1467715091-13216-5-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 4/6] Track active device in service class
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMDUgSnVseSAyMDE2IDExOjM4DQo+IFRvOiB3aW4tcHYt
ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gQ2M6IE93ZW4gU21pdGgNCj4gU3ViamVjdDog
W3dpbi1wdi1kZXZlbF0gW1BBVENIIDQvNl0gVHJhY2sgYWN0aXZlIGRldmljZSBpbiBzZXJ2aWNl
IGNsYXNzDQo+IA0KPiBIb2xkIGEgQ3JpdGljYWxTZWN0aW9uIHByb3RlY3RlZCBsb2NhbCBwb2lu
dGVyIHRvIHRoZSBYZW5JZmFjZURldmljZQ0KPiB0aGF0IGlzIGN1cnJlbnRseSBhdmFpbGFibGUu
IFRoaXMgd2lsbCBiZSB1c2VkIGZvciBhbGwgYWNjZXNzZXMgdG8NCj4gdGhlIGludGVyZmFjZXMg
cHJvdmlkZWQuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBPd2VuIFNtaXRoIDxvd2VuLnNtaXRoQGNp
dHJpeC5jb20+DQoNCkFja2VkLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXgu
Y29tPg0KDQo+IC0tLQ0KPiAgc3JjL3hlbmFnZW50L3NlcnZpY2UuY3BwIHwgMzUgKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKy0NCj4gIHNyYy94ZW5hZ2VudC9zZXJ2aWNlLmggICB8
ICAyICsrDQo+ICAyIGZpbGVzIGNoYW5nZWQsIDM2IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o
LSkNCj4gDQo+IGRpZmYgLS1naXQgYS9zcmMveGVuYWdlbnQvc2VydmljZS5jcHAgYi9zcmMveGVu
YWdlbnQvc2VydmljZS5jcHANCj4gaW5kZXggYmQwODVmNi4uODRiODgxNCAxMDA2NDQNCj4gLS0t
IGEvc3JjL3hlbmFnZW50L3NlcnZpY2UuY3BwDQo+ICsrKyBiL3NyYy94ZW5hZ2VudC9zZXJ2aWNl
LmNwcA0KPiBAQCAtMzgsNiArMzgsMjQgQEANCj4gICNpbmNsdWRlICJzZXJ2aWNlLmgiDQo+ICAj
aW5jbHVkZSAibWVzc2FnZXMuaCINCj4gDQo+ICtjbGFzcyBDQ3JpdFNlYw0KPiArew0KPiArcHVi
bGljOg0KPiArICAgIENDcml0U2VjKExQQ1JJVElDQUxfU0VDVElPTiBjcml0KTsNCj4gKyAgICB+
Q0NyaXRTZWMoKTsNCj4gK3ByaXZhdGU6DQo+ICsgICAgTFBDUklUSUNBTF9TRUNUSU9OIG1fY3Jp
dDsNCj4gK307DQo+ICsNCj4gK0NDcml0U2VjOjpDQ3JpdFNlYyhMUENSSVRJQ0FMX1NFQ1RJT04g
Y3JpdCkgOiBtX2NyaXQoY3JpdCkNCj4gK3sNCj4gKyAgICBFbnRlckNyaXRpY2FsU2VjdGlvbiht
X2NyaXQpOw0KPiArfQ0KPiArQ0NyaXRTZWM6On5DQ3JpdFNlYygpDQo+ICt7DQo+ICsgICAgTGVh
dmVDcml0aWNhbFNlY3Rpb24obV9jcml0KTsNCj4gK30NCj4gKw0KPiAgaW50IF9fc3RkY2FsbCBX
aW5NYWluKEhJTlNUQU5DRSBoSW5zdGFuY2UsIEhJTlNUQU5DRSBpZ25vcmUsIExQU1RSDQo+IGxw
Q21kTGluZSwgaW50IG5DbWRTaG93KQ0KPiAgew0KPiAgICAgIGlmIChzdHJsZW4obHBDbWRMaW5l
KSAhPSAwKSB7DQo+IEBAIC0xNTEsNyArMTY5LDggQEAgc3RhdGljIENYZW5BZ2VudCBzX3NlcnZp
Y2U7DQo+ICAgICAgcmV0dXJuIHNfc2VydmljZS5fX1NlcnZpY2VDb250cm9sSGFuZGxlckV4KHJl
cSwgZXZ0LCBkYXRhLCBjdHh0KTsNCj4gIH0NCj4gDQo+IC1DWGVuQWdlbnQ6OkNYZW5BZ2VudCgp
IDogbV9oYW5kbGUoTlVMTCksIG1fZXZ0bG9nKE5VTEwpLA0KPiBtX2Rldmxpc3QoR1VJRF9JTlRF
UkZBQ0VfWEVOSUZBQ0UpDQo+ICtDWGVuQWdlbnQ6OkNYZW5BZ2VudCgpIDogbV9oYW5kbGUoTlVM
TCksIG1fZXZ0bG9nKE5VTEwpLA0KPiArICAgIG1fZGV2bGlzdChHVUlEX0lOVEVSRkFDRV9YRU5J
RkFDRSksIG1fZGV2aWNlKE5VTEwpDQo+ICB7DQo+ICAgICAgbV9zdGF0dXMuZHdTZXJ2aWNlVHlw
ZSAgICAgICAgPSBTRVJWSUNFX1dJTjMyOw0KPiAgICAgIG1fc3RhdHVzLmR3Q3VycmVudFN0YXRl
ICAgICAgID0gU0VSVklDRV9TVEFSVF9QRU5ESU5HOw0KPiBAQCAtMTYyLDExICsxODEsMTUgQEAg
Q1hlbkFnZW50OjpDWGVuQWdlbnQoKSA6IG1faGFuZGxlKE5VTEwpLA0KPiBtX2V2dGxvZyhOVUxM
KSwgbV9kZXZsaXN0KEdVSURfSU5URVJGQUMNCj4gICAgICBtX3N0YXR1cy5kd1dhaXRIaW50ICAg
ICAgICAgICA9IDA7DQo+IA0KPiAgICAgIG1fc3ZjX3N0b3AgPSBDcmVhdGVFdmVudChGQUxTRSwg
TlVMTCwgTlVMTCwgRkFMU0UpOw0KPiArDQo+ICsgICAgSW5pdGlhbGl6ZUNyaXRpY2FsU2VjdGlv
bigmbV9jcml0KTsNCj4gIH0NCj4gDQo+ICBDWGVuQWdlbnQ6On5DWGVuQWdlbnQoKQ0KPiAgew0K
PiAgICAgIENsb3NlSGFuZGxlKG1fc3ZjX3N0b3ApOw0KPiArDQo+ICsgICAgRGVsZXRlQ3JpdGlj
YWxTZWN0aW9uKCZtX2NyaXQpOw0KPiAgfQ0KPiANCj4gIC8qdmlydHVhbCovIENEZXZpY2UqIENY
ZW5BZ2VudDo6Q3JlYXRlKGNvbnN0IHdjaGFyX3QqIHBhdGgpDQo+IEBAIC0xNzcsMTEgKzIwMCwy
MSBAQCBDWGVuQWdlbnQ6On5DWGVuQWdlbnQoKQ0KPiAgLyp2aXJ0dWFsKi8gdm9pZCBDWGVuQWdl
bnQ6Ok9uRGV2aWNlQWRkZWQoQ0RldmljZSogZGV2KQ0KPiAgew0KPiAgICAgIENYZW5BZ2VudDo6
TG9nKCJPbkRldmljZUFkZGVkKCV3cylcbiIsIGRldi0+UGF0aCgpKTsNCj4gKw0KPiArICAgIEND
cml0U2VjIGNyaXQoJm1fY3JpdCk7DQo+ICsgICAgaWYgKG1fZGV2aWNlID09IE5VTEwpIHsNCj4g
KyAgICAgICAgbV9kZXZpY2UgPSAoQ1hlbklmYWNlRGV2aWNlKilkZXY7DQo+ICsgICAgfQ0KPiAg
fQ0KPiANCj4gIC8qdmlydHVhbCovIHZvaWQgQ1hlbkFnZW50OjpPbkRldmljZVJlbW92ZWQoQ0Rl
dmljZSogZGV2KQ0KPiAgew0KPiAgICAgIENYZW5BZ2VudDo6TG9nKCJPbkRldmljZVJlbW92ZWQo
JXdzKVxuIiwgZGV2LT5QYXRoKCkpOw0KPiArDQo+ICsgICAgQ0NyaXRTZWMgY3JpdCgmbV9jcml0
KTsNCj4gKyAgICBpZiAobV9kZXZpY2UgPT0gZGV2KSB7DQo+ICsgICAgICAgIG1fZGV2aWNlID0g
TlVMTDsNCj4gKyAgICB9DQo+ICB9DQo+IA0KPiAgdm9pZCBDWGVuQWdlbnQ6Ok9uU2VydmljZVN0
YXJ0KCkNCj4gZGlmZiAtLWdpdCBhL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmggYi9zcmMveGVuYWdl
bnQvc2VydmljZS5oDQo+IGluZGV4IGUzMWRjZmQuLmFjYzRkNTIgMTAwNjQ0DQo+IC0tLSBhL3Ny
Yy94ZW5hZ2VudC9zZXJ2aWNlLmgNCj4gKysrIGIvc3JjL3hlbmFnZW50L3NlcnZpY2UuaA0KPiBA
QCAtNzksNiArNzksOCBAQCBwcml2YXRlOiAvLyBzZXJ2aWNlIHN1cHBvcnQNCj4gICAgICBIQU5E
TEUgICAgICAgICAgICAgICAgICBtX3N2Y19zdG9wOw0KPiANCj4gICAgICBDRGV2aWNlTGlzdCAg
ICAgICAgICAgICBtX2Rldmxpc3Q7DQo+ICsgICAgQ1hlbklmYWNlRGV2aWNlKiAgICAgICAgbV9k
ZXZpY2U7DQo+ICsgICAgQ1JJVElDQUxfU0VDVElPTiAgICAgICAgbV9jcml0Ow0KPiAgfTsNCj4g
DQo+ICAjZW5kaWYNCj4gLS0NCj4gMS45LjQubXN5c2dpdC4xDQo+IA0KPiANCj4gX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gd2luLXB2LWRldmVsIG1h
aWxpbmcgbGlzdA0KPiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2
ZWwNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1w
di1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0
dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1w
di1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Wed Jul 06 15:52:15 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 06 Jul 2016 15:52:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bKp7W-0001Tk-TL; Wed, 06 Jul 2016 15:52:14 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=988999fe3=Paul.Durrant@citrix.com>)
 id 1bKp7V-0001TC-SJ
 for win-pv-devel@lists.xenproject.org; Wed, 06 Jul 2016 15:52:13 +0000
Received: from [85.158.137.68] by server-9.bemta-3.messagelabs.com id
 32/13-16470-D292D775; Wed, 06 Jul 2016 15:52:13 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrOIsWRWlGSWpSXmKPExsWyU9JRQldHszb
 c4PQrZYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCace3fHsaCk2oVLz+sZGxg7FDrYuTkkBDwk9j6
 o4sJxGYT0JFYenQ+mC0iUCDx/f08ZhCbWUBN4vr+LlYQW1jAR2LviX9ANgdQja/EnFZpiHIji
 UWrp7KA2CwCKhKvd+9iAynhFXCX2HvBHyQsJNDAKHFveyaIzSngJvHtaSMjiM0oICvxpXE11C
 ZxiVtPIC6QEBCQWLLnPDOELSrx8vE/VgjbQGLr0n0sIOOZBTQl1u/Sh2hVlJjS/ZAdxOYVEJQ
 4OfMJC8RaFYktjw9AjeGWWPn5D8sERtFZSLbNQpg0C8mkWUgmLWBkWcWoXpxaVJZapGuml1SU
 mZ5RkpuYmaNraGCsl5taXJyYnpqTmFSsl5yfu4kRGCH1DAyMOxivtDkfYpTkYFIS5WX5Vh0ux
 JeUn1KZkVicEV9UmpNafIhRhoNDSYL3knptuJBgUWp6akVaZg4wVmHSEhw8SiK8IRpAad7igs
 Tc4sx0iNQpRkUpcV4ukIQASCKjNA+uDZYeLjHKSgnzMjIwMAjxFKQW5WaWoMq/YhTnYFQS5v0
 Psp0nM68EbvoroMVMQIt/ulSDLC5JREhJNTCue3egdMrsNwFObdtbX/f6emw4xH9nD8O35Uwl
 wlwneVdN2V8/ScZx4qZpqisuBlhWfIhO6N9TfJjh4TaXBTpCbK/UPzVFb+czvcZafC/GuOzd2
 f0VBX2ZTGeEjNu1t/VnR77rUD4kO3H+rCPy0WfnbjmWvmrLmxn5PuVrIm0OKiZsmd605a+SEk
 txRqKhFnNRcSIAKx9yPwoDAAA=
X-Env-Sender: prvs=988999fe3=Paul.Durrant@citrix.com
X-Msg-Ref: server-15.tower-31.messagelabs.com!1467820332!45249047!2
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: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 49710 invoked from network); 6 Jul 2016 15:52:12 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-15.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 6 Jul 2016 15:52:12 -0000
X-IronPort-AV: E=Sophos;i="5.28,319,1464652800"; d="scan'208";a="25687511"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 4/6] Track active device in service class
Thread-Index: AQHR1qlkdGi1cT3lnEGLmGJwLYVZ0aALj1jA
Date: Wed, 6 Jul 2016 15:52:11 +0000
Message-ID: <43840252e2ef4f87993b9e0986d6fdd1@AMSPEX02CL03.citrite.net>
References: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
 <1467715091-13216-5-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1467715091-13216-5-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 4/6] Track active device in service class
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMDUgSnVseSAyMDE2IDExOjM4DQo+IFRvOiB3aW4tcHYt
ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gQ2M6IE93ZW4gU21pdGgNCj4gU3ViamVjdDog
W3dpbi1wdi1kZXZlbF0gW1BBVENIIDQvNl0gVHJhY2sgYWN0aXZlIGRldmljZSBpbiBzZXJ2aWNl
IGNsYXNzDQo+IA0KPiBIb2xkIGEgQ3JpdGljYWxTZWN0aW9uIHByb3RlY3RlZCBsb2NhbCBwb2lu
dGVyIHRvIHRoZSBYZW5JZmFjZURldmljZQ0KPiB0aGF0IGlzIGN1cnJlbnRseSBhdmFpbGFibGUu
IFRoaXMgd2lsbCBiZSB1c2VkIGZvciBhbGwgYWNjZXNzZXMgdG8NCj4gdGhlIGludGVyZmFjZXMg
cHJvdmlkZWQuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBPd2VuIFNtaXRoIDxvd2VuLnNtaXRoQGNp
dHJpeC5jb20+DQoNCkFja2VkLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXgu
Y29tPg0KDQo+IC0tLQ0KPiAgc3JjL3hlbmFnZW50L3NlcnZpY2UuY3BwIHwgMzUgKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKy0NCj4gIHNyYy94ZW5hZ2VudC9zZXJ2aWNlLmggICB8
ICAyICsrDQo+ICAyIGZpbGVzIGNoYW5nZWQsIDM2IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o
LSkNCj4gDQo+IGRpZmYgLS1naXQgYS9zcmMveGVuYWdlbnQvc2VydmljZS5jcHAgYi9zcmMveGVu
YWdlbnQvc2VydmljZS5jcHANCj4gaW5kZXggYmQwODVmNi4uODRiODgxNCAxMDA2NDQNCj4gLS0t
IGEvc3JjL3hlbmFnZW50L3NlcnZpY2UuY3BwDQo+ICsrKyBiL3NyYy94ZW5hZ2VudC9zZXJ2aWNl
LmNwcA0KPiBAQCAtMzgsNiArMzgsMjQgQEANCj4gICNpbmNsdWRlICJzZXJ2aWNlLmgiDQo+ICAj
aW5jbHVkZSAibWVzc2FnZXMuaCINCj4gDQo+ICtjbGFzcyBDQ3JpdFNlYw0KPiArew0KPiArcHVi
bGljOg0KPiArICAgIENDcml0U2VjKExQQ1JJVElDQUxfU0VDVElPTiBjcml0KTsNCj4gKyAgICB+
Q0NyaXRTZWMoKTsNCj4gK3ByaXZhdGU6DQo+ICsgICAgTFBDUklUSUNBTF9TRUNUSU9OIG1fY3Jp
dDsNCj4gK307DQo+ICsNCj4gK0NDcml0U2VjOjpDQ3JpdFNlYyhMUENSSVRJQ0FMX1NFQ1RJT04g
Y3JpdCkgOiBtX2NyaXQoY3JpdCkNCj4gK3sNCj4gKyAgICBFbnRlckNyaXRpY2FsU2VjdGlvbiht
X2NyaXQpOw0KPiArfQ0KPiArQ0NyaXRTZWM6On5DQ3JpdFNlYygpDQo+ICt7DQo+ICsgICAgTGVh
dmVDcml0aWNhbFNlY3Rpb24obV9jcml0KTsNCj4gK30NCj4gKw0KPiAgaW50IF9fc3RkY2FsbCBX
aW5NYWluKEhJTlNUQU5DRSBoSW5zdGFuY2UsIEhJTlNUQU5DRSBpZ25vcmUsIExQU1RSDQo+IGxw
Q21kTGluZSwgaW50IG5DbWRTaG93KQ0KPiAgew0KPiAgICAgIGlmIChzdHJsZW4obHBDbWRMaW5l
KSAhPSAwKSB7DQo+IEBAIC0xNTEsNyArMTY5LDggQEAgc3RhdGljIENYZW5BZ2VudCBzX3NlcnZp
Y2U7DQo+ICAgICAgcmV0dXJuIHNfc2VydmljZS5fX1NlcnZpY2VDb250cm9sSGFuZGxlckV4KHJl
cSwgZXZ0LCBkYXRhLCBjdHh0KTsNCj4gIH0NCj4gDQo+IC1DWGVuQWdlbnQ6OkNYZW5BZ2VudCgp
IDogbV9oYW5kbGUoTlVMTCksIG1fZXZ0bG9nKE5VTEwpLA0KPiBtX2Rldmxpc3QoR1VJRF9JTlRF
UkZBQ0VfWEVOSUZBQ0UpDQo+ICtDWGVuQWdlbnQ6OkNYZW5BZ2VudCgpIDogbV9oYW5kbGUoTlVM
TCksIG1fZXZ0bG9nKE5VTEwpLA0KPiArICAgIG1fZGV2bGlzdChHVUlEX0lOVEVSRkFDRV9YRU5J
RkFDRSksIG1fZGV2aWNlKE5VTEwpDQo+ICB7DQo+ICAgICAgbV9zdGF0dXMuZHdTZXJ2aWNlVHlw
ZSAgICAgICAgPSBTRVJWSUNFX1dJTjMyOw0KPiAgICAgIG1fc3RhdHVzLmR3Q3VycmVudFN0YXRl
ICAgICAgID0gU0VSVklDRV9TVEFSVF9QRU5ESU5HOw0KPiBAQCAtMTYyLDExICsxODEsMTUgQEAg
Q1hlbkFnZW50OjpDWGVuQWdlbnQoKSA6IG1faGFuZGxlKE5VTEwpLA0KPiBtX2V2dGxvZyhOVUxM
KSwgbV9kZXZsaXN0KEdVSURfSU5URVJGQUMNCj4gICAgICBtX3N0YXR1cy5kd1dhaXRIaW50ICAg
ICAgICAgICA9IDA7DQo+IA0KPiAgICAgIG1fc3ZjX3N0b3AgPSBDcmVhdGVFdmVudChGQUxTRSwg
TlVMTCwgTlVMTCwgRkFMU0UpOw0KPiArDQo+ICsgICAgSW5pdGlhbGl6ZUNyaXRpY2FsU2VjdGlv
bigmbV9jcml0KTsNCj4gIH0NCj4gDQo+ICBDWGVuQWdlbnQ6On5DWGVuQWdlbnQoKQ0KPiAgew0K
PiAgICAgIENsb3NlSGFuZGxlKG1fc3ZjX3N0b3ApOw0KPiArDQo+ICsgICAgRGVsZXRlQ3JpdGlj
YWxTZWN0aW9uKCZtX2NyaXQpOw0KPiAgfQ0KPiANCj4gIC8qdmlydHVhbCovIENEZXZpY2UqIENY
ZW5BZ2VudDo6Q3JlYXRlKGNvbnN0IHdjaGFyX3QqIHBhdGgpDQo+IEBAIC0xNzcsMTEgKzIwMCwy
MSBAQCBDWGVuQWdlbnQ6On5DWGVuQWdlbnQoKQ0KPiAgLyp2aXJ0dWFsKi8gdm9pZCBDWGVuQWdl
bnQ6Ok9uRGV2aWNlQWRkZWQoQ0RldmljZSogZGV2KQ0KPiAgew0KPiAgICAgIENYZW5BZ2VudDo6
TG9nKCJPbkRldmljZUFkZGVkKCV3cylcbiIsIGRldi0+UGF0aCgpKTsNCj4gKw0KPiArICAgIEND
cml0U2VjIGNyaXQoJm1fY3JpdCk7DQo+ICsgICAgaWYgKG1fZGV2aWNlID09IE5VTEwpIHsNCj4g
KyAgICAgICAgbV9kZXZpY2UgPSAoQ1hlbklmYWNlRGV2aWNlKilkZXY7DQo+ICsgICAgfQ0KPiAg
fQ0KPiANCj4gIC8qdmlydHVhbCovIHZvaWQgQ1hlbkFnZW50OjpPbkRldmljZVJlbW92ZWQoQ0Rl
dmljZSogZGV2KQ0KPiAgew0KPiAgICAgIENYZW5BZ2VudDo6TG9nKCJPbkRldmljZVJlbW92ZWQo
JXdzKVxuIiwgZGV2LT5QYXRoKCkpOw0KPiArDQo+ICsgICAgQ0NyaXRTZWMgY3JpdCgmbV9jcml0
KTsNCj4gKyAgICBpZiAobV9kZXZpY2UgPT0gZGV2KSB7DQo+ICsgICAgICAgIG1fZGV2aWNlID0g
TlVMTDsNCj4gKyAgICB9DQo+ICB9DQo+IA0KPiAgdm9pZCBDWGVuQWdlbnQ6Ok9uU2VydmljZVN0
YXJ0KCkNCj4gZGlmZiAtLWdpdCBhL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmggYi9zcmMveGVuYWdl
bnQvc2VydmljZS5oDQo+IGluZGV4IGUzMWRjZmQuLmFjYzRkNTIgMTAwNjQ0DQo+IC0tLSBhL3Ny
Yy94ZW5hZ2VudC9zZXJ2aWNlLmgNCj4gKysrIGIvc3JjL3hlbmFnZW50L3NlcnZpY2UuaA0KPiBA
QCAtNzksNiArNzksOCBAQCBwcml2YXRlOiAvLyBzZXJ2aWNlIHN1cHBvcnQNCj4gICAgICBIQU5E
TEUgICAgICAgICAgICAgICAgICBtX3N2Y19zdG9wOw0KPiANCj4gICAgICBDRGV2aWNlTGlzdCAg
ICAgICAgICAgICBtX2Rldmxpc3Q7DQo+ICsgICAgQ1hlbklmYWNlRGV2aWNlKiAgICAgICAgbV9k
ZXZpY2U7DQo+ICsgICAgQ1JJVElDQUxfU0VDVElPTiAgICAgICAgbV9jcml0Ow0KPiAgfTsNCj4g
DQo+ICAjZW5kaWYNCj4gLS0NCj4gMS45LjQubXN5c2dpdC4xDQo+IA0KPiANCj4gX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gd2luLXB2LWRldmVsIG1h
aWxpbmcgbGlzdA0KPiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gaHR0cDov
L2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2
ZWwNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1w
di1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0
dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1w
di1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Wed Jul 06 15:56:53 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 06 Jul 2016 15:56:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bKpC1-0002dG-1M; Wed, 06 Jul 2016 15:56:53 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=988999fe3=Paul.Durrant@citrix.com>)
 id 1bKpC0-0002d2-97
 for win-pv-devel@lists.xenproject.org; Wed, 06 Jul 2016 15:56:52 +0000
Received: from [193.109.254.147] by server-12.bemta-14.messagelabs.com id
 27/91-31201-34A2D775; Wed, 06 Jul 2016 15:56:51 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmplleJIrShJLcpLzFFi42LZKekooeukVRt
 ucGqmpcWfxYkOjB6HP1xhCWCMYs3MS8qvSGDN2LbwOFPBe8+KW+v2MjUwfvHoYuTgkBDwk3jz
 NLiLkZODTUBHYunR+UwgtohAgcT39/OYQWxmATWJ6/u7WEFsYYEoiXuzN7JA1ERL/D7cCFVvJ
 NH8aA0biM0ioCJx698uVpDxvALuEm+/JXQxcnEICTQwSlx6vhusl1PATWLqqm6wmYwCshJfGl
 dD7RKXuPUE4gYJAQGJJXvOM0PYohIvH/9jhbANJLYu3ccCMp9ZQFNi/S59iFZFiSndD9lBbF4
 BQYmTM5+ArRICOmfL4wNQY7glVn7+wzKBUXQWkm2zECbNQjJpFpJJCxhZVjFqFKcWlaUW6RqZ
 6iUVZaZnlOQmZuboGhqa6OWmFhcnpqfmJCYV6yXn525iBEZJPQMD4w7GTcf9DjFKcjApifKyf
 KsOF+JLyk+pzEgszogvKs1JLT7EKMPBoSTBa6xZGy4kWJSanlqRlpkDjFeYtAQHj5IIbyNImr
 e4IDG3ODMdInWKUZej59XttUxCLHn5ealS4rzFIEUCIEUZpXlwI2Cp4xKjrJQwLyMDA4MQT0F
 qUW5mCar8K0ZxDkYlYd7XGkBTeDLzSuA2vQI6ggnoiJ8u1SBHlCQipKQaGJd9te39G3Hsgtee
 9UuavbULIj8ZFLK//xp2XvXfVrurfYbFc3PP9av5Ss5i0df66src41uaPLWdz3/Nqau3KrauT
 dcW4b/uOUNgxl4h+Z3OG+6bfD9hfPHml4OxLRIWvTOWti55zJUv+im80bSt5e/q11c3yCYomd
 37PSvikXyOycvIhbaqm5VYijMSDbWYi4oTAYS7OZ4YAwAA
X-Env-Sender: prvs=988999fe3=Paul.Durrant@citrix.com
X-Msg-Ref: server-3.tower-27.messagelabs.com!1467820610!51952378!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: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 43221 invoked from network); 6 Jul 2016 15:56:50 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-3.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 6 Jul 2016 15:56:50 -0000
X-IronPort-AV: E=Sophos;i="5.28,319,1464652800"; d="scan'208";a="25687950"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 6/6] Set VM's time based on host's time
 exposed by Xen
Thread-Index: AQHR1qljxgX6RsEWQEKtVwjzO4sIY6ALkAGA
Date: Wed, 6 Jul 2016 15:55:45 +0000
Message-ID: <6dd844f7794e4b13b5615bb2c90486bb@AMSPEX02CL03.citrite.net>
References: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
 <1467715091-13216-7-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1467715091-13216-7-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 6/6] Set VM's time based on host's
	time	exposed by Xen
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMDUgSnVseSAyMDE2IDExOjM4DQo+IFRvOiB3aW4tcHYt
ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gQ2M6IE93ZW4gU21pdGgNCj4gU3ViamVjdDog
W3dpbi1wdi1kZXZlbF0gW1BBVENIIDYvNl0gU2V0IFZNJ3MgdGltZSBiYXNlZCBvbiBob3N0J3Mg
dGltZQ0KPiBleHBvc2VkIGJ5IFhlbg0KPiANCj4gU2V0cyB0aGUgVk0ncyB0aW1lIHdoZW4gWGVu
SWZhY2Ugc3RhcnRzIGFuZCBvbiByZXN1bWUgZnJvbSBzdXNwZW5kLg0KPiBVc2VzIHRoZSB1bmRl
cmx5aW5nIGhvc3QncyB0aW1lLCBhY2Nlc3NlZCB2aWEgWGVuLiBQcm92aWRlIGFuIG9wdGlvbg0K
PiBmb3IgdGhlIGd1ZXN0IHRvIHRyZWF0IFhlbidzIHRpbWUgYXMgVVRDIG9yIHRoZSBjdXJyZW50
IHRpbWV6b25lLg0KPiBUaGlzIG9wdGlvbiBhZGRzIDIgbmV3IGJyYW5kYWJsZSB2YXJpYWJsZXMg
dGhhdCBzcGVjaWZ5IGEgcGFydGlhbA0KPiByZWdpc3RyeSBwYXRoIGFuZCB2YWx1ZSBpbiB0aGUg
Vk0gdGhhdCBkZXRlcm1pbmVzIGhvdyB0aGUgdGltZSBvZmZzZXQNCj4gaXMgbW9kaWZpZWQuIFRo
ZXNlIHZhbHVlcyBhcmUgUkVHX1RPT0xTX1BBVEggYW5kIFJFR19VVENfTkFNRSB3aGljaA0KPiBz
aG91bGQgYmUgc3BlY2lmaWVkIGluIHRoZSBidWlsZCBlbnZpcm9ubWVudCBpZiB0aGUgdmFsdWVz
IG5lZWQgdG8NCj4gYmUgZGlmZmVyZW50Lg0KPiANCj4gU2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0
aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPg0KPiAtLS0NCj4gIGJ1aWxkLnB5ICAgICAgICAgICAg
ICAgICB8ICAxMCArKysrDQo+ICBzcmMveGVuYWdlbnQvc2VydmljZS5jcHAgfCAxMTkNCj4gKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gIHNyYy94ZW5h
Z2VudC9zZXJ2aWNlLmggICB8ICAgNCArKw0KPiAgMyBmaWxlcyBjaGFuZ2VkLCAxMzMgaW5zZXJ0
aW9ucygrKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2J1aWxkLnB5IGIvYnVpbGQucHkNCj4gaW5kZXgg
ZjQ5Mzc0Yy4uZGYzMGVlNiAxMDA3NTUNCj4gLS0tIGEvYnVpbGQucHkNCj4gKysrIGIvYnVpbGQu
cHkNCj4gQEAgLTcwLDYgKzcwLDEwIEBAIGRlZiBtYWtlX2hlYWRlcigpOg0KPiAgICAgIGZpbGUu
d3JpdGUoJyNkZWZpbmUgREFZX1NUUlx0XHRcdCInICsgc3RyKG5vdy5kYXkpICsgJyJcbicpDQo+
ICAgICAgZmlsZS53cml0ZSgnXG4nKQ0KPiANCj4gKyAgICBmaWxlLndyaXRlKCcjZGVmaW5lIFJF
R19UT09MU19QQVRIXHRcdFx0IicgKw0KPiBvcy5lbnZpcm9uWydSRUdfVE9PTFNfUEFUSCddICsg
JyJcbicpDQo+ICsgICAgZmlsZS53cml0ZSgnI2RlZmluZSBSRUdfVVRDX05BTUVcdFx0XHQiJyAr
DQo+IG9zLmVudmlyb25bJ1JFR19VVENfTkFNRSddICsgJyJcbicpDQo+ICsgICAgZmlsZS53cml0
ZSgnXG4nKQ0KPiArDQo+ICAgICAgZmlsZS5jbG9zZSgpDQo+IA0KPiANCj4gQEAgLTQyNiw2ICs0
MzAsMTIgQEAgaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoNCj4gICAgICBpZiAnT0JKRUNUX1BS
RUZJWCcgbm90IGluIG9zLmVudmlyb24ua2V5cygpOg0KPiAgICAgICAgICBvcy5lbnZpcm9uWydP
QkpFQ1RfUFJFRklYJ10gPSAnWGVuUHJvamVjdCcNCj4gDQo+ICsgICAgaWYgJ1JFR19UT09MU19Q
QVRIJyBub3QgaW4gb3MuZW52aXJvbi5rZXlzKCk6DQo+ICsgICAgICAgIG9zLmVudmlyb25bJ1JF
R19UT09MU19QQVRIJ10gPSAnWGVuVG9vbHMnDQo+ICsNCj4gKyAgICBpZiAnUkVHX1VUQ19OQU1F
JyBub3QgaW4gb3MuZW52aXJvbi5rZXlzKCk6DQo+ICsgICAgICAgIG9zLmVudmlyb25bJ1JFR19V
VENfTkFNRSddID0gJ0hvc3RUaW1lJw0KPiArDQoNCk5vdCBlbnRpcmVseSBjb252aW5jZWQgYnkg
dGhlc2UgZGVmYXVsdCBuYW1lcyBzbyBJIG1heSBjaGFuZ2UgdGhlbSB3aGVuIEkgY29tbWl0LiBP
dGhlcndpc2UuLi4NCg0KQWNrZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJp
eC5jb20+DQoNCj4gICAgICBvcy5lbnZpcm9uWydNQUpPUl9WRVJTSU9OJ10gPSAnOCcNCj4gICAg
ICBvcy5lbnZpcm9uWydNSU5PUl9WRVJTSU9OJ10gPSAnMicNCj4gICAgICBvcy5lbnZpcm9uWydN
SUNST19WRVJTSU9OJ10gPSAnMCcNCj4gZGlmZiAtLWdpdCBhL3NyYy94ZW5hZ2VudC9zZXJ2aWNl
LmNwcCBiL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcA0KPiBpbmRleCAzZTYyMWViLi5hNGQ5Mjk3
IDEwMDY0NA0KPiAtLS0gYS9zcmMveGVuYWdlbnQvc2VydmljZS5jcHANCj4gKysrIGIvc3JjL3hl
bmFnZW50L3NlcnZpY2UuY3BwDQo+IEBAIC0yMTgsNiArMjE4LDggQEAgQ1hlbkFnZW50Ojp+Q1hl
bkFnZW50KCkNCj4gDQo+ICAgICAgICAgIC8vIHN1c3BlbmQNCj4gICAgICAgICAgbV9kZXZpY2Ut
PlN1c3BlbmRSZWdpc3RlcihtX2V2dF9zdXNwZW5kLCAmbV9jdHh0X3N1c3BlbmQpOw0KPiArDQo+
ICsgICAgICAgIFNldFhlblRpbWUoKTsNCj4gICAgICB9DQo+ICB9DQo+IA0KPiBAQCAtMzE3LDYg
KzMxOSwxMjEgQEAgdm9pZCBDWGVuQWdlbnQ6OkV2ZW50TG9nKERXT1JEIGV2dCkNCj4gICAgICB9
DQo+ICB9DQo+IA0KPiArYm9vbCBDWGVuQWdlbnQ6OklzSG9zdFRpbWVVVEMoKQ0KPiArew0KPiAr
I2lmZGVmIF9XSU42NA0KPiArICAgIC8vIENoZWNrDQo+IFNPRlRXQVJFXFdvdzY0MzJOb2RlXCQo
VkVORE9SX05BTUVfU1RSKVwkKFJFR19UT09MU19QQVRIKQ0KPiAkKFJFR19VVENfTkFNRSkgPT0g
VVRDDQo+ICsgICAgaWYgKFJlZ0NoZWNrSXNVVEMoIlNPRlRXQVJFXFxXb3c2NDMyTm9kZSIpKQ0K
PiArICAgICAgICByZXR1cm4gdHJ1ZTsNCj4gKyNlbmRpZg0KPiArICAgIC8vIENoZWNrIFNPRlRX
QVJFXCQoVkVORE9SX05BTUVfU1RSKVwkKFJFR19UT09MU19QQVRIKQ0KPiAkKFJFR19VVENfTkFN
RSkgPT0gVVRDDQo+ICsgICAgaWYgKFJlZ0NoZWNrSXNVVEMoIlNPRlRXQVJFIikpDQo+ICsgICAg
ICAgIHJldHVybiB0cnVlOw0KPiArDQo+ICsgICAgcmV0dXJuIGZhbHNlOw0KPiArfQ0KPiArDQo+
ICt2b2lkIENYZW5BZ2VudDo6QWRqdXN0WGVuVGltZVRvVVRDKEZJTEVUSU1FKiBub3cpDQo+ICt7
DQo+ICsgICAgc3RkOjpzdHJpbmcgdm07DQo+ICsgICAgaWYgKCFtX2RldmljZS0+U3RvcmVSZWFk
KCJ2bSIsIHZtKSkNCj4gKyAgICAgICAgcmV0dXJuOw0KPiArDQo+ICsgICAgc3RkOjpzdHJpbmcg
b2ZmczsNCj4gKyAgICBpZiAoIW1fZGV2aWNlLT5TdG9yZVJlYWQodm0gKyAiL3J0Yy90aW1lb2Zm
c2V0Iiwgb2ZmcykpDQo+ICsgICAgICAgIHJldHVybjsNCj4gKw0KPiArICAgIGxvbmcgb2Zmc2V0
ID0gKGxvbmcpYXRvaShvZmZzLmNfc3RyKCkpOw0KPiArDQo+ICsgICAgVUxBUkdFX0lOVEVHRVIg
bG5vdzsNCj4gKyAgICBsbm93Lkxvd1BhcnQgID0gbm93LT5kd0xvd0RhdGVUaW1lOw0KPiArICAg
IGxub3cuSGlnaFBhcnQgPSBub3ctPmR3SGlnaERhdGVUaW1lOw0KPiArDQo+ICsgICAgbG5vdy5R
dWFkUGFydCAtPSAoKExPTkdMT05HKW9mZnNldCAqIDEwMDAwMDApOw0KPiArDQo+ICsgICAgbm93
LT5kd0xvd0RhdGVUaW1lICA9IGxub3cuTG93UGFydDsNCj4gKyAgICBub3ctPmR3SGlnaERhdGVU
aW1lID0gbG5vdy5IaWdoUGFydDsNCj4gK30NCj4gKw0KPiArYm9vbCBDWGVuQWdlbnQ6OlJlZ0No
ZWNrSXNVVEMoY29uc3QgY2hhciogcm9vdHBhdGgpDQo+ICt7DQo+ICsgICAgSEtFWSAgICBrZXk7
DQo+ICsgICAgTFJFU1VMVCBscjsNCj4gKyAgICBzdGQ6OnN0cmluZyBwYXRoOw0KPiArICAgIGJv
b2wgICAgbWF0Y2ggPSBmYWxzZTsNCj4gKw0KPiArICAgIHBhdGggPSByb290cGF0aDsNCj4gKyAg
ICBwYXRoICs9ICJcXCI7DQo+ICsgICAgcGF0aCArPSBWRU5ET1JfTkFNRV9TVFI7DQo+ICsgICAg
cGF0aCArPSAiXFwiOw0KPiArICAgIHBhdGggKz0gUkVHX1RPT0xTX1BBVEg7DQo+ICsNCj4gKyAg
ICBsciA9IFJlZ09wZW5LZXlFeChIS0VZX0xPQ0FMX01BQ0hJTkUsIHBhdGguY19zdHIoKSwgMCwg
S0VZX1JFQUQsDQo+ICZrZXkpOw0KPiArICAgIGlmIChsciAhPSBFUlJPUl9TVUNDRVNTKQ0KPiAr
ICAgICAgICBnb3RvIGZhaWwxOw0KPiArDQo+ICsgICAgbG9uZyBzaXplID0gMzI7DQo+ICsgICAg
RFdPUkQgbGVuZ3RoOw0KPiArICAgIGNoYXIqIGJ1ZmZlciA9IE5VTEw7DQo+ICsNCj4gKyAgICBk
byB7DQo+ICsgICAgICAgIGxlbmd0aCA9IHNpemU7DQo+ICsgICAgICAgIGlmIChidWZmZXIpDQo+
ICsgICAgICAgICAgICBkZWxldGUgW10gYnVmZmVyOw0KPiArDQo+ICsgICAgICAgIGJ1ZmZlciA9
IG5ldyBjaGFyW3NpemVdOw0KPiArICAgICAgICBpZiAoYnVmZmVyID09IE5VTEwpDQo+ICsgICAg
ICAgICAgICBnb3RvIGZhaWwyOw0KPiArDQo+ICsgICAgICAgIGxyID0gUmVnUXVlcnlWYWx1ZUV4
KGtleSwgUkVHX1VUQ19OQU1FLCBOVUxMLCBOVUxMLA0KPiAoTFBCWVRFKWJ1ZmZlciwgJmxlbmd0
aCk7DQo+ICsgICAgICAgIHNpemUgKj0gMjsNCj4gKyAgICB9IHdoaWxlIChsciA9PSBFUlJPUl9N
T1JFX0RBVEEpOw0KPiArICAgIGlmIChsciAhPSBFUlJPUl9TVUNDRVNTKQ0KPiArICAgICAgICBn
b3RvIGZhaWwzOw0KPiArDQo+ICsgICAgaWYgKCFfc3Rybmljb2xsKCJVVEMiLCBidWZmZXIsIGxl
bmd0aCkpDQo+ICsgICAgICAgIG1hdGNoID0gdHJ1ZTsNCj4gKw0KPiArZmFpbDM6DQo+ICsgICAg
ZGVsZXRlIFtdIGJ1ZmZlcjsNCj4gK2ZhaWwyOg0KPiArICAgIFJlZ0Nsb3NlS2V5KGtleSk7DQo+
ICtmYWlsMToNCj4gKw0KPiArICAgIHJldHVybiBtYXRjaDsNCj4gK30NCj4gKw0KPiArdm9pZCBD
WGVuQWdlbnQ6OlNldFhlblRpbWUoKQ0KPiArew0KPiArICAgIC8vIFNldCBWTSdzIHRpbWUgdG8g
WGVuJ3MgdGltZSAoYWRqdXN0IGZvciBVVEMgc2V0dGluZ3Mgb2YgVk0gYW5kIGd1ZXN0KQ0KPiAr
ICAgIEZJTEVUSU1FIG5vdyA9IHsgMCB9Ow0KPiArICAgIGlmICghbV9kZXZpY2UtPlNoYXJlZElu
Zm9HZXRUaW1lKCZub3cpKQ0KPiArICAgICAgICByZXR1cm47DQo+ICsNCj4gKyAgICBib29sIElz
VVRDID0gSXNIb3N0VGltZVVUQygpOw0KPiArICAgIGlmIChJc1VUQykNCj4gKyAgICAgICAgQWRq
dXN0WGVuVGltZVRvVVRDKCZub3cpOw0KPiArDQo+ICsgICAgU1lTVEVNVElNRSBzeXMgPSB7IDAg
fTsNCj4gKyAgICBpZiAoIUZpbGVUaW1lVG9TeXN0ZW1UaW1lKCZub3csICZzeXMpKQ0KPiArICAg
ICAgICByZXR1cm47DQo+ICsNCj4gKyAgICBTWVNURU1USU1FIGN1ciA9IHsgMCB9Ow0KPiArICAg
IEdldExvY2FsVGltZSgmY3VyKTsNCj4gKw0KPiArICAgIENYZW5BZ2VudDo6TG9nKCJUaW1lIE5v
dyA9ICVkLyVkLyVkICVkOiUwMmQ6JTAyZC4lZFxuIiwNCj4gKyAgICAgICAgICAgICAgICAgICBj
dXIud1llYXIsIGN1ci53TW9udGgsIGN1ci53RGF5LA0KPiArICAgICAgICAgICAgICAgICAgIGN1
ci53SG91ciwgY3VyLndNaW51dGUsIGN1ci53U2Vjb25kLCBjdXIud01pbGxpc2Vjb25kcyk7DQo+
ICsgICAgQ1hlbkFnZW50OjpMb2coIk5ldyBUaW1lID0gJWQvJWQvJWQgJWQ6JTAyZDolMDJkLiVk
XG4iLA0KPiArICAgICAgICAgICAgICAgICAgIHN5cy53WWVhciwgc3lzLndNb250aCwgc3lzLndE
YXksDQo+ICsgICAgICAgICAgICAgICAgICAgc3lzLndIb3VyLCBzeXMud01pbnV0ZSwgc3lzLndT
ZWNvbmQsIHN5cy53TWlsbGlzZWNvbmRzKTsNCj4gKw0KPiArICAgIGlmIChJc1VUQykNCj4gKyAg
ICAgICAgU2V0U3lzdGVtVGltZSgmc3lzKTsNCj4gKyAgICBlbHNlDQo+ICsgICAgICAgIFNldExv
Y2FsVGltZSgmc3lzKTsNCj4gK30NCj4gKw0KPiAgdm9pZCBDWGVuQWdlbnQ6Ok9uU2h1dGRvd24o
KQ0KPiAgew0KPiAgICAgIENDcml0U2VjIGNyaXQoJm1fY3JpdCk7DQo+IEBAIC0zNzksNiArNDk2
LDggQEAgdm9pZCBDWGVuQWdlbnQ6Ok9uU3VzcGVuZCgpDQo+ICAgICAgRXZlbnRMb2coRVZFTlRf
WEVOVVNFUl9VTlNVU1BFTkRFRCk7DQo+IA0KPiAgICAgIG1fZGV2aWNlLT5TdG9yZVdyaXRlKCJj
b250cm9sL2ZlYXR1cmUtc2h1dGRvd24iLCAiMSIpOw0KPiArDQo+ICsgICAgU2V0WGVuVGltZSgp
Ow0KPiAgfQ0KPiANCj4gIHZvaWQgQ1hlbkFnZW50OjpTZXRTZXJ2aWNlU3RhdHVzKERXT1JEIHN0
YXRlLCBEV09SRCBleGl0IC8qPSAwKi8sDQo+IERXT1JEIGhpbnQgLyo9IDAqLykNCj4gZGlmZiAt
LWdpdCBhL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmggYi9zcmMveGVuYWdlbnQvc2VydmljZS5oDQo+
IGluZGV4IGZiOGExZWUuLmJmNWNjNzYgMTAwNjQ0DQo+IC0tLSBhL3NyYy94ZW5hZ2VudC9zZXJ2
aWNlLmgNCj4gKysrIGIvc3JjL3hlbmFnZW50L3NlcnZpY2UuaA0KPiBAQCAtNzEsNiArNzEsMTAg
QEAgcHJpdmF0ZTogLy8gc2VydmljZSBldmVudHMNCj4gIHByaXZhdGU6IC8vIGhlbHBlcnMNCj4g
ICAgICB2b2lkIEFjcXVpcmVTaHV0ZG93blByaXZpbGVnZSgpOw0KPiAgICAgIHZvaWQgRXZlbnRM
b2coRFdPUkQgZXZ0KTsNCj4gKyAgICBib29sIElzSG9zdFRpbWVVVEMoKTsNCj4gKyAgICB2b2lk
IEFkanVzdFhlblRpbWVUb1VUQyhGSUxFVElNRSogdGltZSk7DQo+ICsgICAgYm9vbCBSZWdDaGVj
a0lzVVRDKGNvbnN0IGNoYXIqIHBhdGgpOw0KPiArICAgIHZvaWQgU2V0WGVuVGltZSgpOw0KPiAg
ICAgIHZvaWQgT25TaHV0ZG93bigpOw0KPiAgICAgIHZvaWQgT25TdXNwZW5kKCk7DQo+IA0KPiAt
LQ0KPiAxLjkuNC5tc3lzZ2l0LjENCj4gDQo+IA0KPiBfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXw0KPiB3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0DQo+IHdp
bi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBodHRwOi8vbGlzdHMueGVucHJvamVj
dC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA0KX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcg
bGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5w
cm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Wed Jul 06 15:56:53 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 06 Jul 2016 15:56:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bKpC1-0002dG-1M; Wed, 06 Jul 2016 15:56:53 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=988999fe3=Paul.Durrant@citrix.com>)
 id 1bKpC0-0002d2-97
 for win-pv-devel@lists.xenproject.org; Wed, 06 Jul 2016 15:56:52 +0000
Received: from [193.109.254.147] by server-12.bemta-14.messagelabs.com id
 27/91-31201-34A2D775; Wed, 06 Jul 2016 15:56:51 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmplleJIrShJLcpLzFFi42LZKekooeukVRt
 ucGqmpcWfxYkOjB6HP1xhCWCMYs3MS8qvSGDN2LbwOFPBe8+KW+v2MjUwfvHoYuTgkBDwk3jz
 NLiLkZODTUBHYunR+UwgtohAgcT39/OYQWxmATWJ6/u7WEFsYYEoiXuzN7JA1ERL/D7cCFVvJ
 NH8aA0biM0ioCJx698uVpDxvALuEm+/JXQxcnEICTQwSlx6vhusl1PATWLqqm6wmYwCshJfGl
 dD7RKXuPUE4gYJAQGJJXvOM0PYohIvH/9jhbANJLYu3ccCMp9ZQFNi/S59iFZFiSndD9lBbF4
 BQYmTM5+ArRICOmfL4wNQY7glVn7+wzKBUXQWkm2zECbNQjJpFpJJCxhZVjFqFKcWlaUW6RqZ
 6iUVZaZnlOQmZuboGhqa6OWmFhcnpqfmJCYV6yXn525iBEZJPQMD4w7GTcf9DjFKcjApifKyf
 KsOF+JLyk+pzEgszogvKs1JLT7EKMPBoSTBa6xZGy4kWJSanlqRlpkDjFeYtAQHj5IIbyNImr
 e4IDG3ODMdInWKUZej59XttUxCLHn5ealS4rzFIEUCIEUZpXlwI2Cp4xKjrJQwLyMDA4MQT0F
 qUW5mCar8K0ZxDkYlYd7XGkBTeDLzSuA2vQI6ggnoiJ8u1SBHlCQipKQaGJd9te39G3Hsgtee
 9UuavbULIj8ZFLK//xp2XvXfVrurfYbFc3PP9av5Ss5i0df66src41uaPLWdz3/Nqau3KrauT
 dcW4b/uOUNgxl4h+Z3OG+6bfD9hfPHml4OxLRIWvTOWti55zJUv+im80bSt5e/q11c3yCYomd
 37PSvikXyOycvIhbaqm5VYijMSDbWYi4oTAYS7OZ4YAwAA
X-Env-Sender: prvs=988999fe3=Paul.Durrant@citrix.com
X-Msg-Ref: server-3.tower-27.messagelabs.com!1467820610!51952378!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: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 43221 invoked from network); 6 Jul 2016 15:56:50 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-3.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 6 Jul 2016 15:56:50 -0000
X-IronPort-AV: E=Sophos;i="5.28,319,1464652800"; d="scan'208";a="25687950"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 6/6] Set VM's time based on host's time
 exposed by Xen
Thread-Index: AQHR1qljxgX6RsEWQEKtVwjzO4sIY6ALkAGA
Date: Wed, 6 Jul 2016 15:55:45 +0000
Message-ID: <6dd844f7794e4b13b5615bb2c90486bb@AMSPEX02CL03.citrite.net>
References: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
 <1467715091-13216-7-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1467715091-13216-7-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 6/6] Set VM's time based on host's
	time	exposed by Xen
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMDUgSnVseSAyMDE2IDExOjM4DQo+IFRvOiB3aW4tcHYt
ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gQ2M6IE93ZW4gU21pdGgNCj4gU3ViamVjdDog
W3dpbi1wdi1kZXZlbF0gW1BBVENIIDYvNl0gU2V0IFZNJ3MgdGltZSBiYXNlZCBvbiBob3N0J3Mg
dGltZQ0KPiBleHBvc2VkIGJ5IFhlbg0KPiANCj4gU2V0cyB0aGUgVk0ncyB0aW1lIHdoZW4gWGVu
SWZhY2Ugc3RhcnRzIGFuZCBvbiByZXN1bWUgZnJvbSBzdXNwZW5kLg0KPiBVc2VzIHRoZSB1bmRl
cmx5aW5nIGhvc3QncyB0aW1lLCBhY2Nlc3NlZCB2aWEgWGVuLiBQcm92aWRlIGFuIG9wdGlvbg0K
PiBmb3IgdGhlIGd1ZXN0IHRvIHRyZWF0IFhlbidzIHRpbWUgYXMgVVRDIG9yIHRoZSBjdXJyZW50
IHRpbWV6b25lLg0KPiBUaGlzIG9wdGlvbiBhZGRzIDIgbmV3IGJyYW5kYWJsZSB2YXJpYWJsZXMg
dGhhdCBzcGVjaWZ5IGEgcGFydGlhbA0KPiByZWdpc3RyeSBwYXRoIGFuZCB2YWx1ZSBpbiB0aGUg
Vk0gdGhhdCBkZXRlcm1pbmVzIGhvdyB0aGUgdGltZSBvZmZzZXQNCj4gaXMgbW9kaWZpZWQuIFRo
ZXNlIHZhbHVlcyBhcmUgUkVHX1RPT0xTX1BBVEggYW5kIFJFR19VVENfTkFNRSB3aGljaA0KPiBz
aG91bGQgYmUgc3BlY2lmaWVkIGluIHRoZSBidWlsZCBlbnZpcm9ubWVudCBpZiB0aGUgdmFsdWVz
IG5lZWQgdG8NCj4gYmUgZGlmZmVyZW50Lg0KPiANCj4gU2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0
aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPg0KPiAtLS0NCj4gIGJ1aWxkLnB5ICAgICAgICAgICAg
ICAgICB8ICAxMCArKysrDQo+ICBzcmMveGVuYWdlbnQvc2VydmljZS5jcHAgfCAxMTkNCj4gKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gIHNyYy94ZW5h
Z2VudC9zZXJ2aWNlLmggICB8ICAgNCArKw0KPiAgMyBmaWxlcyBjaGFuZ2VkLCAxMzMgaW5zZXJ0
aW9ucygrKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2J1aWxkLnB5IGIvYnVpbGQucHkNCj4gaW5kZXgg
ZjQ5Mzc0Yy4uZGYzMGVlNiAxMDA3NTUNCj4gLS0tIGEvYnVpbGQucHkNCj4gKysrIGIvYnVpbGQu
cHkNCj4gQEAgLTcwLDYgKzcwLDEwIEBAIGRlZiBtYWtlX2hlYWRlcigpOg0KPiAgICAgIGZpbGUu
d3JpdGUoJyNkZWZpbmUgREFZX1NUUlx0XHRcdCInICsgc3RyKG5vdy5kYXkpICsgJyJcbicpDQo+
ICAgICAgZmlsZS53cml0ZSgnXG4nKQ0KPiANCj4gKyAgICBmaWxlLndyaXRlKCcjZGVmaW5lIFJF
R19UT09MU19QQVRIXHRcdFx0IicgKw0KPiBvcy5lbnZpcm9uWydSRUdfVE9PTFNfUEFUSCddICsg
JyJcbicpDQo+ICsgICAgZmlsZS53cml0ZSgnI2RlZmluZSBSRUdfVVRDX05BTUVcdFx0XHQiJyAr
DQo+IG9zLmVudmlyb25bJ1JFR19VVENfTkFNRSddICsgJyJcbicpDQo+ICsgICAgZmlsZS53cml0
ZSgnXG4nKQ0KPiArDQo+ICAgICAgZmlsZS5jbG9zZSgpDQo+IA0KPiANCj4gQEAgLTQyNiw2ICs0
MzAsMTIgQEAgaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoNCj4gICAgICBpZiAnT0JKRUNUX1BS
RUZJWCcgbm90IGluIG9zLmVudmlyb24ua2V5cygpOg0KPiAgICAgICAgICBvcy5lbnZpcm9uWydP
QkpFQ1RfUFJFRklYJ10gPSAnWGVuUHJvamVjdCcNCj4gDQo+ICsgICAgaWYgJ1JFR19UT09MU19Q
QVRIJyBub3QgaW4gb3MuZW52aXJvbi5rZXlzKCk6DQo+ICsgICAgICAgIG9zLmVudmlyb25bJ1JF
R19UT09MU19QQVRIJ10gPSAnWGVuVG9vbHMnDQo+ICsNCj4gKyAgICBpZiAnUkVHX1VUQ19OQU1F
JyBub3QgaW4gb3MuZW52aXJvbi5rZXlzKCk6DQo+ICsgICAgICAgIG9zLmVudmlyb25bJ1JFR19V
VENfTkFNRSddID0gJ0hvc3RUaW1lJw0KPiArDQoNCk5vdCBlbnRpcmVseSBjb252aW5jZWQgYnkg
dGhlc2UgZGVmYXVsdCBuYW1lcyBzbyBJIG1heSBjaGFuZ2UgdGhlbSB3aGVuIEkgY29tbWl0LiBP
dGhlcndpc2UuLi4NCg0KQWNrZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJp
eC5jb20+DQoNCj4gICAgICBvcy5lbnZpcm9uWydNQUpPUl9WRVJTSU9OJ10gPSAnOCcNCj4gICAg
ICBvcy5lbnZpcm9uWydNSU5PUl9WRVJTSU9OJ10gPSAnMicNCj4gICAgICBvcy5lbnZpcm9uWydN
SUNST19WRVJTSU9OJ10gPSAnMCcNCj4gZGlmZiAtLWdpdCBhL3NyYy94ZW5hZ2VudC9zZXJ2aWNl
LmNwcCBiL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcA0KPiBpbmRleCAzZTYyMWViLi5hNGQ5Mjk3
IDEwMDY0NA0KPiAtLS0gYS9zcmMveGVuYWdlbnQvc2VydmljZS5jcHANCj4gKysrIGIvc3JjL3hl
bmFnZW50L3NlcnZpY2UuY3BwDQo+IEBAIC0yMTgsNiArMjE4LDggQEAgQ1hlbkFnZW50Ojp+Q1hl
bkFnZW50KCkNCj4gDQo+ICAgICAgICAgIC8vIHN1c3BlbmQNCj4gICAgICAgICAgbV9kZXZpY2Ut
PlN1c3BlbmRSZWdpc3RlcihtX2V2dF9zdXNwZW5kLCAmbV9jdHh0X3N1c3BlbmQpOw0KPiArDQo+
ICsgICAgICAgIFNldFhlblRpbWUoKTsNCj4gICAgICB9DQo+ICB9DQo+IA0KPiBAQCAtMzE3LDYg
KzMxOSwxMjEgQEAgdm9pZCBDWGVuQWdlbnQ6OkV2ZW50TG9nKERXT1JEIGV2dCkNCj4gICAgICB9
DQo+ICB9DQo+IA0KPiArYm9vbCBDWGVuQWdlbnQ6OklzSG9zdFRpbWVVVEMoKQ0KPiArew0KPiAr
I2lmZGVmIF9XSU42NA0KPiArICAgIC8vIENoZWNrDQo+IFNPRlRXQVJFXFdvdzY0MzJOb2RlXCQo
VkVORE9SX05BTUVfU1RSKVwkKFJFR19UT09MU19QQVRIKQ0KPiAkKFJFR19VVENfTkFNRSkgPT0g
VVRDDQo+ICsgICAgaWYgKFJlZ0NoZWNrSXNVVEMoIlNPRlRXQVJFXFxXb3c2NDMyTm9kZSIpKQ0K
PiArICAgICAgICByZXR1cm4gdHJ1ZTsNCj4gKyNlbmRpZg0KPiArICAgIC8vIENoZWNrIFNPRlRX
QVJFXCQoVkVORE9SX05BTUVfU1RSKVwkKFJFR19UT09MU19QQVRIKQ0KPiAkKFJFR19VVENfTkFN
RSkgPT0gVVRDDQo+ICsgICAgaWYgKFJlZ0NoZWNrSXNVVEMoIlNPRlRXQVJFIikpDQo+ICsgICAg
ICAgIHJldHVybiB0cnVlOw0KPiArDQo+ICsgICAgcmV0dXJuIGZhbHNlOw0KPiArfQ0KPiArDQo+
ICt2b2lkIENYZW5BZ2VudDo6QWRqdXN0WGVuVGltZVRvVVRDKEZJTEVUSU1FKiBub3cpDQo+ICt7
DQo+ICsgICAgc3RkOjpzdHJpbmcgdm07DQo+ICsgICAgaWYgKCFtX2RldmljZS0+U3RvcmVSZWFk
KCJ2bSIsIHZtKSkNCj4gKyAgICAgICAgcmV0dXJuOw0KPiArDQo+ICsgICAgc3RkOjpzdHJpbmcg
b2ZmczsNCj4gKyAgICBpZiAoIW1fZGV2aWNlLT5TdG9yZVJlYWQodm0gKyAiL3J0Yy90aW1lb2Zm
c2V0Iiwgb2ZmcykpDQo+ICsgICAgICAgIHJldHVybjsNCj4gKw0KPiArICAgIGxvbmcgb2Zmc2V0
ID0gKGxvbmcpYXRvaShvZmZzLmNfc3RyKCkpOw0KPiArDQo+ICsgICAgVUxBUkdFX0lOVEVHRVIg
bG5vdzsNCj4gKyAgICBsbm93Lkxvd1BhcnQgID0gbm93LT5kd0xvd0RhdGVUaW1lOw0KPiArICAg
IGxub3cuSGlnaFBhcnQgPSBub3ctPmR3SGlnaERhdGVUaW1lOw0KPiArDQo+ICsgICAgbG5vdy5R
dWFkUGFydCAtPSAoKExPTkdMT05HKW9mZnNldCAqIDEwMDAwMDApOw0KPiArDQo+ICsgICAgbm93
LT5kd0xvd0RhdGVUaW1lICA9IGxub3cuTG93UGFydDsNCj4gKyAgICBub3ctPmR3SGlnaERhdGVU
aW1lID0gbG5vdy5IaWdoUGFydDsNCj4gK30NCj4gKw0KPiArYm9vbCBDWGVuQWdlbnQ6OlJlZ0No
ZWNrSXNVVEMoY29uc3QgY2hhciogcm9vdHBhdGgpDQo+ICt7DQo+ICsgICAgSEtFWSAgICBrZXk7
DQo+ICsgICAgTFJFU1VMVCBscjsNCj4gKyAgICBzdGQ6OnN0cmluZyBwYXRoOw0KPiArICAgIGJv
b2wgICAgbWF0Y2ggPSBmYWxzZTsNCj4gKw0KPiArICAgIHBhdGggPSByb290cGF0aDsNCj4gKyAg
ICBwYXRoICs9ICJcXCI7DQo+ICsgICAgcGF0aCArPSBWRU5ET1JfTkFNRV9TVFI7DQo+ICsgICAg
cGF0aCArPSAiXFwiOw0KPiArICAgIHBhdGggKz0gUkVHX1RPT0xTX1BBVEg7DQo+ICsNCj4gKyAg
ICBsciA9IFJlZ09wZW5LZXlFeChIS0VZX0xPQ0FMX01BQ0hJTkUsIHBhdGguY19zdHIoKSwgMCwg
S0VZX1JFQUQsDQo+ICZrZXkpOw0KPiArICAgIGlmIChsciAhPSBFUlJPUl9TVUNDRVNTKQ0KPiAr
ICAgICAgICBnb3RvIGZhaWwxOw0KPiArDQo+ICsgICAgbG9uZyBzaXplID0gMzI7DQo+ICsgICAg
RFdPUkQgbGVuZ3RoOw0KPiArICAgIGNoYXIqIGJ1ZmZlciA9IE5VTEw7DQo+ICsNCj4gKyAgICBk
byB7DQo+ICsgICAgICAgIGxlbmd0aCA9IHNpemU7DQo+ICsgICAgICAgIGlmIChidWZmZXIpDQo+
ICsgICAgICAgICAgICBkZWxldGUgW10gYnVmZmVyOw0KPiArDQo+ICsgICAgICAgIGJ1ZmZlciA9
IG5ldyBjaGFyW3NpemVdOw0KPiArICAgICAgICBpZiAoYnVmZmVyID09IE5VTEwpDQo+ICsgICAg
ICAgICAgICBnb3RvIGZhaWwyOw0KPiArDQo+ICsgICAgICAgIGxyID0gUmVnUXVlcnlWYWx1ZUV4
KGtleSwgUkVHX1VUQ19OQU1FLCBOVUxMLCBOVUxMLA0KPiAoTFBCWVRFKWJ1ZmZlciwgJmxlbmd0
aCk7DQo+ICsgICAgICAgIHNpemUgKj0gMjsNCj4gKyAgICB9IHdoaWxlIChsciA9PSBFUlJPUl9N
T1JFX0RBVEEpOw0KPiArICAgIGlmIChsciAhPSBFUlJPUl9TVUNDRVNTKQ0KPiArICAgICAgICBn
b3RvIGZhaWwzOw0KPiArDQo+ICsgICAgaWYgKCFfc3Rybmljb2xsKCJVVEMiLCBidWZmZXIsIGxl
bmd0aCkpDQo+ICsgICAgICAgIG1hdGNoID0gdHJ1ZTsNCj4gKw0KPiArZmFpbDM6DQo+ICsgICAg
ZGVsZXRlIFtdIGJ1ZmZlcjsNCj4gK2ZhaWwyOg0KPiArICAgIFJlZ0Nsb3NlS2V5KGtleSk7DQo+
ICtmYWlsMToNCj4gKw0KPiArICAgIHJldHVybiBtYXRjaDsNCj4gK30NCj4gKw0KPiArdm9pZCBD
WGVuQWdlbnQ6OlNldFhlblRpbWUoKQ0KPiArew0KPiArICAgIC8vIFNldCBWTSdzIHRpbWUgdG8g
WGVuJ3MgdGltZSAoYWRqdXN0IGZvciBVVEMgc2V0dGluZ3Mgb2YgVk0gYW5kIGd1ZXN0KQ0KPiAr
ICAgIEZJTEVUSU1FIG5vdyA9IHsgMCB9Ow0KPiArICAgIGlmICghbV9kZXZpY2UtPlNoYXJlZElu
Zm9HZXRUaW1lKCZub3cpKQ0KPiArICAgICAgICByZXR1cm47DQo+ICsNCj4gKyAgICBib29sIElz
VVRDID0gSXNIb3N0VGltZVVUQygpOw0KPiArICAgIGlmIChJc1VUQykNCj4gKyAgICAgICAgQWRq
dXN0WGVuVGltZVRvVVRDKCZub3cpOw0KPiArDQo+ICsgICAgU1lTVEVNVElNRSBzeXMgPSB7IDAg
fTsNCj4gKyAgICBpZiAoIUZpbGVUaW1lVG9TeXN0ZW1UaW1lKCZub3csICZzeXMpKQ0KPiArICAg
ICAgICByZXR1cm47DQo+ICsNCj4gKyAgICBTWVNURU1USU1FIGN1ciA9IHsgMCB9Ow0KPiArICAg
IEdldExvY2FsVGltZSgmY3VyKTsNCj4gKw0KPiArICAgIENYZW5BZ2VudDo6TG9nKCJUaW1lIE5v
dyA9ICVkLyVkLyVkICVkOiUwMmQ6JTAyZC4lZFxuIiwNCj4gKyAgICAgICAgICAgICAgICAgICBj
dXIud1llYXIsIGN1ci53TW9udGgsIGN1ci53RGF5LA0KPiArICAgICAgICAgICAgICAgICAgIGN1
ci53SG91ciwgY3VyLndNaW51dGUsIGN1ci53U2Vjb25kLCBjdXIud01pbGxpc2Vjb25kcyk7DQo+
ICsgICAgQ1hlbkFnZW50OjpMb2coIk5ldyBUaW1lID0gJWQvJWQvJWQgJWQ6JTAyZDolMDJkLiVk
XG4iLA0KPiArICAgICAgICAgICAgICAgICAgIHN5cy53WWVhciwgc3lzLndNb250aCwgc3lzLndE
YXksDQo+ICsgICAgICAgICAgICAgICAgICAgc3lzLndIb3VyLCBzeXMud01pbnV0ZSwgc3lzLndT
ZWNvbmQsIHN5cy53TWlsbGlzZWNvbmRzKTsNCj4gKw0KPiArICAgIGlmIChJc1VUQykNCj4gKyAg
ICAgICAgU2V0U3lzdGVtVGltZSgmc3lzKTsNCj4gKyAgICBlbHNlDQo+ICsgICAgICAgIFNldExv
Y2FsVGltZSgmc3lzKTsNCj4gK30NCj4gKw0KPiAgdm9pZCBDWGVuQWdlbnQ6Ok9uU2h1dGRvd24o
KQ0KPiAgew0KPiAgICAgIENDcml0U2VjIGNyaXQoJm1fY3JpdCk7DQo+IEBAIC0zNzksNiArNDk2
LDggQEAgdm9pZCBDWGVuQWdlbnQ6Ok9uU3VzcGVuZCgpDQo+ICAgICAgRXZlbnRMb2coRVZFTlRf
WEVOVVNFUl9VTlNVU1BFTkRFRCk7DQo+IA0KPiAgICAgIG1fZGV2aWNlLT5TdG9yZVdyaXRlKCJj
b250cm9sL2ZlYXR1cmUtc2h1dGRvd24iLCAiMSIpOw0KPiArDQo+ICsgICAgU2V0WGVuVGltZSgp
Ow0KPiAgfQ0KPiANCj4gIHZvaWQgQ1hlbkFnZW50OjpTZXRTZXJ2aWNlU3RhdHVzKERXT1JEIHN0
YXRlLCBEV09SRCBleGl0IC8qPSAwKi8sDQo+IERXT1JEIGhpbnQgLyo9IDAqLykNCj4gZGlmZiAt
LWdpdCBhL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmggYi9zcmMveGVuYWdlbnQvc2VydmljZS5oDQo+
IGluZGV4IGZiOGExZWUuLmJmNWNjNzYgMTAwNjQ0DQo+IC0tLSBhL3NyYy94ZW5hZ2VudC9zZXJ2
aWNlLmgNCj4gKysrIGIvc3JjL3hlbmFnZW50L3NlcnZpY2UuaA0KPiBAQCAtNzEsNiArNzEsMTAg
QEAgcHJpdmF0ZTogLy8gc2VydmljZSBldmVudHMNCj4gIHByaXZhdGU6IC8vIGhlbHBlcnMNCj4g
ICAgICB2b2lkIEFjcXVpcmVTaHV0ZG93blByaXZpbGVnZSgpOw0KPiAgICAgIHZvaWQgRXZlbnRM
b2coRFdPUkQgZXZ0KTsNCj4gKyAgICBib29sIElzSG9zdFRpbWVVVEMoKTsNCj4gKyAgICB2b2lk
IEFkanVzdFhlblRpbWVUb1VUQyhGSUxFVElNRSogdGltZSk7DQo+ICsgICAgYm9vbCBSZWdDaGVj
a0lzVVRDKGNvbnN0IGNoYXIqIHBhdGgpOw0KPiArICAgIHZvaWQgU2V0WGVuVGltZSgpOw0KPiAg
ICAgIHZvaWQgT25TaHV0ZG93bigpOw0KPiAgICAgIHZvaWQgT25TdXNwZW5kKCk7DQo+IA0KPiAt
LQ0KPiAxLjkuNC5tc3lzZ2l0LjENCj4gDQo+IA0KPiBfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXw0KPiB3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0DQo+IHdp
bi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBodHRwOi8vbGlzdHMueGVucHJvamVj
dC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA0KX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcg
bGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5w
cm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Wed Jul 06 16:03:22 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 06 Jul 2016 16:03:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bKpII-0004LE-6a; Wed, 06 Jul 2016 16:03:22 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=988999fe3=Paul.Durrant@citrix.com>)
 id 1bKpIG-0004L1-34
 for win-pv-devel@lists.xenproject.org; Wed, 06 Jul 2016 16:03:20 +0000
Received: from [193.109.254.147] by server-9.bemta-14.messagelabs.com id
 68/74-32749-7CB2D775; Wed, 06 Jul 2016 16:03:19 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrJIsWRWlGSWpSXmKPExsWyU9JRQveYdm2
 4weVZPBZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y9EfzoLGuIqLJz+xNTA+ieli5OCQEPCTOHe8
 oouRk4NNQEdi6dH5TCC2iECBxPf385hBbGYBNYnr+7tYQWxhAU+JPVdvsELUeEmcmfGDGcI2k
 jj3pJMRxGYRUJHou/eLBcTmFXCX+LJ0PVA9F4eQQAOjREPbZrAGTgE3id9/VrOB2IwCshJfGl
 dDLROXuPUE4ggJAQGJJXvOM0PYohIvH/9jhbANJLYu3ccCcj+zgKbE+l36EK2KElO6H7JD7BW
 UODnzCdgNQkD3bHl8AGoMt8TKz39YJjCKzkKybRbCpFlIJs1CMmkBI8sqRo3i1KKy1CJdIxO9
 pKLM9IyS3MTMHF1DQxO93NTi4sT01JzEpGK95PzcTYzAKKlnYGDcwfjzkt8hRkkOJiVRXpZv1
 eFCfEn5KZUZicUZ8UWlOanFhxhlODiUJHinaNWGCwkWpaanVqRl5gDjFSYtwcGjJML7AiTNW1
 yQmFucmQ6ROsWoKCXOew0kIQCSyCjNg2uDpYhLjLJSwryMDAwMQjwFqUW5mSWo8q8YxTkYlYR
 5z4JM4cnMK4Gb/gpoMRPQ4p8u1SCLSxIRUlINjBUV3WmS7DmT2e2jK0pfMfQfPdXLonE18pxU
 TdWXBttkh9t/ndbd2Sqz99LtH+U5FmfXx3/69SBCqKEv4WfjYl3uP1s/nlfmO/3N5tfZMuX3r
 x4WX/h9ja/6mPZW+fTjtz6V/prZq1/JL+6i8Lrn4TW36IMqvoeWWx+xvPJrgVSP25lFNqsPuC
 uxFGckGmoxFxUnAgBCPo7sDAMAAA==
X-Env-Sender: prvs=988999fe3=Paul.Durrant@citrix.com
X-Msg-Ref: server-8.tower-27.messagelabs.com!1467820996!41850439!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: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 64938 invoked from network); 6 Jul 2016 16:03:18 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-8.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 6 Jul 2016 16:03:18 -0000
X-IronPort-AV: E=Sophos;i="5.28,319,1464652800"; d="scan'208";a="25688740"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 5/6] Add Suspend and Shutdown handlers
Thread-Index: AQHR1qlhYqKp39VN40OLBhhJ7EC5A6ALkXtA
Date: Wed, 6 Jul 2016 15:59:57 +0000
Message-ID: <c8f1fe27d7214756ad9e6e3da377105b@AMSPEX02CL03.citrite.net>
References: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
 <1467715091-13216-6-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1467715091-13216-6-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 5/6] Add Suspend and Shutdown handlers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMDUgSnVseSAyMDE2IDExOjM4DQo+IFRvOiB3aW4tcHYt
ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gQ2M6IE93ZW4gU21pdGgNCj4gU3ViamVjdDog
W3dpbi1wdi1kZXZlbF0gW1BBVENIIDUvNl0gQWRkIFN1c3BlbmQgYW5kIFNodXRkb3duIGhhbmRs
ZXJzDQo+IA0KPiBTdXNwZW5kIG5lZWRzIHRvIHJlLWFkdmVydGlzZSB0aGUgc2h1dGRvd24gZmVh
dHVyZQ0KPiBTaHV0ZG93biByZXNwb25kcyB0byBjb250cm9sXHNodXRkb3duIHRvIGlzc3VlIGEg
c2h1dGRvd24sIHJlYm9vdCwNCj4gaGliZXJuYXRlIG9yIFMzIHRyYW5zaXRpb24uDQo+IFN1aXRh
YmxlIGV2ZW50IGxvZyBlbnRyaWVzIGFyZSBhZGRlZCB3aGVuIHRoZXNlIGV2ZW50cyBhcmUgdHJp
Z2dlcmVkLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRy
aXguY29tPg0KDQpBY2tlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNv
bT4NCg0KPiAtLS0NCj4gIHNyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcCB8IDE0Nw0KPiArKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQ0KPiAgc3JjL3hlbmFnZW50
L3NlcnZpY2UuaCAgIHwgIDEwICsrKysNCj4gIDIgZmlsZXMgY2hhbmdlZCwgMTU0IGluc2VydGlv
bnMoKyksIDMgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvc3JjL3hlbmFnZW50L3Nl
cnZpY2UuY3BwIGIvc3JjL3hlbmFnZW50L3NlcnZpY2UuY3BwDQo+IGluZGV4IDg0Yjg4MTQuLjNl
NjIxZWIgMTAwNjQ0DQo+IC0tLSBhL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcA0KPiArKysgYi9z
cmMveGVuYWdlbnQvc2VydmljZS5jcHANCj4gQEAgLTMyLDYgKzMyLDggQEANCj4gICNkZWZpbmUg
SU5JVEdVSUQNCj4gICNpbmNsdWRlIDx3aW5kb3dzLmg+DQo+ICAjaW5jbHVkZSA8c3RkaW8uaD4N
Cj4gKyNpbmNsdWRlIDxwb3dycHJvZi5oPg0KPiArI2luY2x1ZGUgPHdpbnVzZXIuaD4NCj4gDQo+
ICAjaW5jbHVkZSA8eGVuaWZhY2VfaW9jdGxzLmg+DQo+IA0KPiBAQCAtMTcwLDcgKzE3Miw4IEBA
IHN0YXRpYyBDWGVuQWdlbnQgc19zZXJ2aWNlOw0KPiAgfQ0KPiANCj4gIENYZW5BZ2VudDo6Q1hl
bkFnZW50KCkgOiBtX2hhbmRsZShOVUxMKSwgbV9ldnRsb2coTlVMTCksDQo+IC0gICAgbV9kZXZs
aXN0KEdVSURfSU5URVJGQUNFX1hFTklGQUNFKSwgbV9kZXZpY2UoTlVMTCkNCj4gKyAgICBtX2Rl
dmxpc3QoR1VJRF9JTlRFUkZBQ0VfWEVOSUZBQ0UpLCBtX2RldmljZShOVUxMKSwNCj4gKyAgICBt
X2N0eHRfc2h1dGRvd24oTlVMTCksIG1fY3R4dF9zdXNwZW5kKE5VTEwpDQo+ICB7DQo+ICAgICAg
bV9zdGF0dXMuZHdTZXJ2aWNlVHlwZSAgICAgICAgPSBTRVJWSUNFX1dJTjMyOw0KPiAgICAgIG1f
c3RhdHVzLmR3Q3VycmVudFN0YXRlICAgICAgID0gU0VSVklDRV9TVEFSVF9QRU5ESU5HOw0KPiBA
QCAtMTgxLDEyICsxODQsMTYgQEAgQ1hlbkFnZW50OjpDWGVuQWdlbnQoKSA6IG1faGFuZGxlKE5V
TEwpLA0KPiBtX2V2dGxvZyhOVUxMKSwNCj4gICAgICBtX3N0YXR1cy5kd1dhaXRIaW50ICAgICAg
ICAgICA9IDA7DQo+IA0KPiAgICAgIG1fc3ZjX3N0b3AgPSBDcmVhdGVFdmVudChGQUxTRSwgTlVM
TCwgTlVMTCwgRkFMU0UpOw0KPiArICAgIG1fZXZ0X3NodXRkb3duID0gQ3JlYXRlRXZlbnQoRkFM
U0UsIE5VTEwsIE5VTEwsIEZBTFNFKTsNCj4gKyAgICBtX2V2dF9zdXNwZW5kID0gQ3JlYXRlRXZl
bnQoRkFMU0UsIE5VTEwsIE5VTEwsIEZBTFNFKTsNCj4gDQo+ICAgICAgSW5pdGlhbGl6ZUNyaXRp
Y2FsU2VjdGlvbigmbV9jcml0KTsNCj4gIH0NCj4gDQo+ICBDWGVuQWdlbnQ6On5DWGVuQWdlbnQo
KQ0KPiAgew0KPiArICAgIENsb3NlSGFuZGxlKG1fZXZ0X3N1c3BlbmQpOw0KPiArICAgIENsb3Nl
SGFuZGxlKG1fZXZ0X3NodXRkb3duKTsNCj4gICAgICBDbG9zZUhhbmRsZShtX3N2Y19zdG9wKTsN
Cj4gDQo+ICAgICAgRGVsZXRlQ3JpdGljYWxTZWN0aW9uKCZtX2NyaXQpOw0KPiBAQCAtMjA0LDYg
KzIxMSwxMyBAQCBDWGVuQWdlbnQ6On5DWGVuQWdlbnQoKQ0KPiAgICAgIENDcml0U2VjIGNyaXQo
Jm1fY3JpdCk7DQo+ICAgICAgaWYgKG1fZGV2aWNlID09IE5VTEwpIHsNCj4gICAgICAgICAgbV9k
ZXZpY2UgPSAoQ1hlbklmYWNlRGV2aWNlKilkZXY7DQo+ICsNCj4gKyAgICAgICAgLy8gc2h1dGRv
d24NCj4gKyAgICAgICAgbV9kZXZpY2UtPlN0b3JlQWRkV2F0Y2goImNvbnRyb2wvc2h1dGRvd24i
LCBtX2V2dF9zaHV0ZG93biwNCj4gJm1fY3R4dF9zaHV0ZG93bik7DQo+ICsgICAgICAgIG1fZGV2
aWNlLT5TdG9yZVdyaXRlKCJjb250cm9sL2ZlYXR1cmUtc2h1dGRvd24iLCAiMSIpOw0KPiArDQo+
ICsgICAgICAgIC8vIHN1c3BlbmQNCj4gKyAgICAgICAgbV9kZXZpY2UtPlN1c3BlbmRSZWdpc3Rl
cihtX2V2dF9zdXNwZW5kLCAmbV9jdHh0X3N1c3BlbmQpOw0KPiAgICAgIH0NCj4gIH0NCj4gDQo+
IEBAIC0yMTMsNiArMjI3LDE3IEBAIENYZW5BZ2VudDo6fkNYZW5BZ2VudCgpDQo+IA0KPiAgICAg
IENDcml0U2VjIGNyaXQoJm1fY3JpdCk7DQo+ICAgICAgaWYgKG1fZGV2aWNlID09IGRldikgew0K
PiArICAgICAgICAvLyBzdXNwZW5kDQo+ICsgICAgICAgIGlmIChtX2N0eHRfc3VzcGVuZCkNCj4g
KyAgICAgICAgICAgIG1fZGV2aWNlLT5TdXNwZW5kRGVyZWdpc3RlcihtX2N0eHRfc3VzcGVuZCk7
DQo+ICsgICAgICAgIG1fY3R4dF9zdXNwZW5kID0gTlVMTDsNCj4gKw0KPiArICAgICAgICAvLyBz
aHV0ZG93bg0KPiArICAgICAgICBtX2RldmljZS0+U3RvcmVSZW1vdmUoImNvbnRyb2wvZmVhdHVy
ZS1zaHV0ZG93biIpOw0KPiArICAgICAgICBpZiAobV9jdHh0X3NodXRkb3duKQ0KPiArICAgICAg
ICAgICAgbV9kZXZpY2UtPlN0b3JlUmVtb3ZlV2F0Y2gobV9jdHh0X3NodXRkb3duKTsNCj4gKyAg
ICAgICAgbV9jdHh0X3NodXRkb3duID0gTlVMTDsNCj4gKw0KPiAgICAgICAgICBtX2RldmljZSA9
IE5VTEw7DQo+ICAgICAgfQ0KPiAgfQ0KPiBAQCAtMjM2LDggKzI2MSwxMjQgQEAgdm9pZCBDWGVu
QWdlbnQ6Ok9uRGV2aWNlRXZlbnQoRFdPUkQgZXZ0LA0KPiBMUFZPSUQgZGF0YSkNCj4gDQo+ICBi
b29sIENYZW5BZ2VudDo6U2VydmljZU1haW5Mb29wKCkNCj4gIHsNCj4gLSAgICBXYWl0Rm9yU2lu
Z2xlT2JqZWN0KG1fc3ZjX3N0b3AsIElORklOSVRFKTsNCj4gLSAgICByZXR1cm4gZmFsc2U7DQo+
ICsgICAgSEFORExFICBldmVudHNbM10gPSB7IG1fc3ZjX3N0b3AsIG1fZXZ0X3NodXRkb3duLCBt
X2V2dF9zdXNwZW5kIH07DQo+ICsgICAgRFdPUkQgICB3YWl0ID0gV2FpdEZvck11bHRpcGxlT2Jq
ZWN0cygzLCBldmVudHMsIEZBTFNFLCBJTkZJTklURSk7DQo+ICsNCj4gKyAgICBzd2l0Y2ggKHdh
aXQpIHsNCj4gKyAgICBjYXNlIFdBSVRfT0JKRUNUXzA6DQo+ICsgICAgICAgIHJldHVybiBmYWxz
ZTsgLy8gZXhpdCBsb29wDQo+ICsNCj4gKyAgICBjYXNlIFdBSVRfT0JKRUNUXzArMToNCj4gKyAg
ICAgICAgT25TaHV0ZG93bigpOw0KPiArICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gY29udGludWUg
bG9vcA0KPiArDQo+ICsgICAgY2FzZSBXQUlUX09CSkVDVF8wKzI6DQo+ICsgICAgICAgIE9uU3Vz
cGVuZCgpOw0KPiArICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gY29udGludWUgbG9vcA0KPiArDQo+
ICsgICAgZGVmYXVsdDoNCj4gKyAgICAgICAgQ1hlbkFnZW50OjpMb2coIldhaXRGb3JNdWx0aXBs
ZU9iamVjdHMgZmFpbGVkICglMDh4KVxuIiwgd2FpdCk7DQo+ICsgICAgICAgIEV2ZW50TG9nKEVW
RU5UX1hFTlVTRVJfVU5FWFBFQ1RFRCk7DQo+ICsgICAgICAgIHJldHVybiB0cnVlOyAvLyBjb250
aW51ZSBsb29wDQo+ICsgICAgfQ0KPiArfQ0KPiArDQo+ICt2b2lkIENYZW5BZ2VudDo6QWNxdWly
ZVNodXRkb3duUHJpdmlsZWdlKCkNCj4gK3sNCj4gKyAgICBIQU5ETEUgICAgICAgICAgdG9rZW47
DQo+ICsgICAgVE9LRU5fUFJJVklMRUdFUyB0cDsNCj4gKw0KPiArICAgIExvb2t1cFByaXZpbGVn
ZVZhbHVlKE5VTEwsIFNFX1NIVVRET1dOX05BTUUsDQo+ICZ0cC5Qcml2aWxlZ2VzWzBdLkx1aWQp
Ow0KPiArICAgIHRwLlByaXZpbGVnZXNbMF0uQXR0cmlidXRlcyA9IFNFX1BSSVZJTEVHRV9FTkFC
TEVEOw0KPiArDQo+ICsgICAgdHAuUHJpdmlsZWdlQ291bnQgPSAxOw0KPiArDQo+ICsgICAgaWYg
KCFPcGVuUHJvY2Vzc1Rva2VuKEdldEN1cnJlbnRQcm9jZXNzKCksDQo+ICsgICAgICAgICAgICAg
ICAgICAgICAgICAgIFRPS0VOX0FESlVTVF9QUklWSUxFR0VTIHwgVE9LRU5fUVVFUlksDQo+ICsg
ICAgICAgICAgICAgICAgICAgICAgICAgICZ0b2tlbikpDQo+ICsgICAgICAgIHJldHVybjsNCj4g
Kw0KPiArICAgIEFkanVzdFRva2VuUHJpdmlsZWdlcyh0b2tlbiwgRkFMU0UsICZ0cCwgTlVMTCwg
MCwgTlVMTCk7DQo+ICsgICAgQ2xvc2VIYW5kbGUodG9rZW4pOw0KPiArfQ0KPiArDQo+ICt2b2lk
IENYZW5BZ2VudDo6RXZlbnRMb2coRFdPUkQgZXZ0KQ0KPiArew0KPiArICAgIGlmIChtX2V2dGxv
Zykgew0KPiArICAgICAgICBSZXBvcnRFdmVudChtX2V2dGxvZywNCj4gKyAgICAgICAgICAgICAg
ICAgICAgRVZFTlRMT0dfU1VDQ0VTUywNCj4gKyAgICAgICAgICAgICAgICAgICAgMCwNCj4gKyAg
ICAgICAgICAgICAgICAgICAgZXZ0LA0KPiArICAgICAgICAgICAgICAgICAgICBOVUxMLA0KPiAr
ICAgICAgICAgICAgICAgICAgICAwLA0KPiArICAgICAgICAgICAgICAgICAgICAwLA0KPiArICAg
ICAgICAgICAgICAgICAgICBOVUxMLA0KPiArICAgICAgICAgICAgICAgICAgICBOVUxMKTsNCj4g
KyAgICB9DQo+ICt9DQo+ICsNCj4gK3ZvaWQgQ1hlbkFnZW50OjpPblNodXRkb3duKCkNCj4gK3sN
Cj4gKyAgICBDQ3JpdFNlYyBjcml0KCZtX2NyaXQpOw0KPiArICAgIGlmIChtX2RldmljZSA9PSBO
VUxMKQ0KPiArICAgICAgICByZXR1cm47DQo+ICsNCj4gKyAgICBzdGQ6OnN0cmluZyB0eXBlOw0K
PiArICAgIG1fZGV2aWNlLT5TdG9yZVJlYWQoImNvbnRyb2wvc2h1dGRvd24iLCB0eXBlKTsNCj4g
Kw0KPiArICAgIENYZW5BZ2VudDo6TG9nKCJPblNodXRkb3duKCV3cykgPSAlc1xuIiwgbV9kZXZp
Y2UtPlBhdGgoKSwNCj4gdHlwZS5jX3N0cigpKTsNCj4gKw0KPiArICAgIGlmICh0eXBlID09ICJw
b3dlcm9mZiIgfHwgdHlwZSA9PSAiaGFsdCIpIHsNCj4gKyAgICAgICAgRXZlbnRMb2coRVZFTlRf
WEVOVVNFUl9QT1dFUk9GRik7DQo+ICsNCj4gKyAgICAgICAgbV9kZXZpY2UtPlN0b3JlV3JpdGUo
ImNvbnRyb2wvc2h1dGRvd24iLCAiIik7DQo+ICsgICAgICAgIEFjcXVpcmVTaHV0ZG93blByaXZp
bGVnZSgpOw0KPiArICAgICAgICBpZiAoIUluaXRpYXRlU3lzdGVtU2h1dGRvd25FeChOVUxMLCBO
VUxMLCAwLCBUUlVFLCBGQUxTRSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgU0hURE5fUkVBU09OX01BSk9SX09USEVSIHwNCj4gKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgU0hURE5fUkVBU09OX01JTk9SX0VOVklST05NRU5UIHwNCj4gKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hURE5fUkVBU09OX0ZMQUdfUExB
Tk5FRCkpIHsNCj4gKyAgICAgICAgICAgIENYZW5BZ2VudDo6TG9nKCJJbml0aWF0ZVN5c3RlbVNo
dXRkb3duRXggZmFpbGVkICUwOHhcbiIsDQo+IEdldExhc3RFcnJvcigpKTsNCj4gKyAgICAgICAg
fQ0KPiArICAgIH0gZWxzZSBpZiAodHlwZSA9PSAicmVib290Iikgew0KPiArICAgICAgICBFdmVu
dExvZyhFVkVOVF9YRU5VU0VSX1JFQk9PVCk7DQo+ICsNCj4gKyAgICAgICAgbV9kZXZpY2UtPlN0
b3JlV3JpdGUoImNvbnRyb2wvc2h1dGRvd24iLCAiIik7DQo+ICsgICAgICAgIEFjcXVpcmVTaHV0
ZG93blByaXZpbGVnZSgpOw0KPiArICAgICAgICBpZiAoIUluaXRpYXRlU3lzdGVtU2h1dGRvd25F
eChOVUxMLCBOVUxMLCAwLCBUUlVFLCBUUlVFLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBTSFRETl9SRUFTT05fTUFKT1JfT1RIRVIgfA0KPiArICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBTSFRETl9SRUFTT05fTUlOT1JfRU5WSVJPTk1FTlQg
fA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSFRETl9SRUFTT05f
RkxBR19QTEFOTkVEKSkgew0KPiArICAgICAgICAgICAgQ1hlbkFnZW50OjpMb2coIkluaXRpYXRl
U3lzdGVtU2h1dGRvd25FeCBmYWlsZWQgJTA4eFxuIiwNCj4gR2V0TGFzdEVycm9yKCkpOw0KPiAr
ICAgICAgICB9DQo+ICsgICAgfSBlbHNlIGlmICh0eXBlID09ICJoaWJlcm5hdGUiKSB7DQo+ICsg
ICAgICAgIEV2ZW50TG9nKEVWRU5UX1hFTlVTRVJfSElCRVJOQVRFKTsNCj4gKw0KPiArICAgICAg
ICBtX2RldmljZS0+U3RvcmVXcml0ZSgiY29udHJvbC9zaHV0ZG93biIsICIiKTsNCj4gKyAgICAg
ICAgQWNxdWlyZVNodXRkb3duUHJpdmlsZWdlKCk7DQo+ICsgICAgICAgIGlmICghU2V0U3lzdGVt
UG93ZXJTdGF0ZShGQUxTRSwgRkFMU0UpKSB7DQo+ICsgICAgICAgICAgICBDWGVuQWdlbnQ6Okxv
ZygiU2V0U3lzdGVtUG93ZXJTdGF0ZSBmYWlsZWQgJTA4eFxuIiwNCj4gR2V0TGFzdEVycm9yKCkp
Ow0KPiArICAgICAgICB9DQo+ICsgICAgfSBlbHNlIGlmICh0eXBlID09ICJzMyIpIHsNCj4gKyAg
ICAgICAgRXZlbnRMb2coRVZFTlRfWEVOVVNFUl9TMyk7DQo+ICsNCj4gKyAgICAgICAgbV9kZXZp
Y2UtPlN0b3JlV3JpdGUoImNvbnRyb2wvc2h1dGRvd24iLCAiIik7DQo+ICsgICAgICAgIEFjcXVp
cmVTaHV0ZG93blByaXZpbGVnZSgpOw0KPiArICAgICAgICBpZiAoIVNldFN1c3BlbmRTdGF0ZShG
QUxTRSwgVFJVRSwgRkFMU0UpKSB7DQo+ICsgICAgICAgICAgICBDWGVuQWdlbnQ6OkxvZygiU2V0
U3VzcGVuZFN0YXRlIGZhaWxlZCAlMDh4XG4iLCBHZXRMYXN0RXJyb3IoKSk7DQo+ICsgICAgICAg
IH0NCj4gKyAgICB9DQo+ICt9DQo+ICsNCj4gK3ZvaWQgQ1hlbkFnZW50OjpPblN1c3BlbmQoKQ0K
PiArew0KPiArICAgIENDcml0U2VjIGNyaXQoJm1fY3JpdCk7DQo+ICsgICAgaWYgKG1fZGV2aWNl
ID09IE5VTEwpDQo+ICsgICAgICAgIHJldHVybjsNCj4gKw0KPiArICAgIENYZW5BZ2VudDo6TG9n
KCJPblN1c3BlbmQoJXdzKVxuIiwgbV9kZXZpY2UtPlBhdGgoKSk7DQo+ICsgICAgRXZlbnRMb2co
RVZFTlRfWEVOVVNFUl9VTlNVU1BFTkRFRCk7DQo+ICsNCj4gKyAgICBtX2RldmljZS0+U3RvcmVX
cml0ZSgiY29udHJvbC9mZWF0dXJlLXNodXRkb3duIiwgIjEiKTsNCj4gIH0NCj4gDQo+ICB2b2lk
IENYZW5BZ2VudDo6U2V0U2VydmljZVN0YXR1cyhEV09SRCBzdGF0ZSwgRFdPUkQgZXhpdCAvKj0g
MCovLA0KPiBEV09SRCBoaW50IC8qPSAwKi8pDQo+IGRpZmYgLS1naXQgYS9zcmMveGVuYWdlbnQv
c2VydmljZS5oIGIvc3JjL3hlbmFnZW50L3NlcnZpY2UuaA0KPiBpbmRleCBhY2M0ZDUyLi5mYjhh
MWVlIDEwMDY0NA0KPiAtLS0gYS9zcmMveGVuYWdlbnQvc2VydmljZS5oDQo+ICsrKyBiL3NyYy94
ZW5hZ2VudC9zZXJ2aWNlLmgNCj4gQEAgLTY4LDYgKzY4LDEyIEBAIHByaXZhdGU6IC8vIHNlcnZp
Y2UgZXZlbnRzDQo+ICAgICAgdm9pZCBPbkRldmljZUV2ZW50KERXT1JELCBMUFZPSUQpOw0KPiAg
ICAgIGJvb2wgU2VydmljZU1haW5Mb29wKCk7DQo+IA0KPiArcHJpdmF0ZTogLy8gaGVscGVycw0K
PiArICAgIHZvaWQgQWNxdWlyZVNodXRkb3duUHJpdmlsZWdlKCk7DQo+ICsgICAgdm9pZCBFdmVu
dExvZyhEV09SRCBldnQpOw0KPiArICAgIHZvaWQgT25TaHV0ZG93bigpOw0KPiArICAgIHZvaWQg
T25TdXNwZW5kKCk7DQo+ICsNCj4gIHByaXZhdGU6IC8vIHNlcnZpY2Ugc3VwcG9ydA0KPiAgICAg
IHZvaWQgU2V0U2VydmljZVN0YXR1cyhEV09SRCBzdGF0ZSwgRFdPUkQgZXhpdCA9IDAsIERXT1JE
IGhpbnQgPSAwKTsNCj4gICAgICB2b2lkIFdJTkFQSSBfX1NlcnZpY2VNYWluKGludCBhcmdjLCBj
aGFyKiogYXJndik7DQo+IEBAIC03NywxMCArODMsMTQgQEAgcHJpdmF0ZTogLy8gc2VydmljZSBz
dXBwb3J0DQo+ICAgICAgU0VSVklDRV9TVEFUVVNfSEFORExFICAgbV9oYW5kbGU7DQo+ICAgICAg
SEFORExFICAgICAgICAgICAgICAgICAgbV9ldnRsb2c7DQo+ICAgICAgSEFORExFICAgICAgICAg
ICAgICAgICAgbV9zdmNfc3RvcDsNCj4gKyAgICBIQU5ETEUgICAgICAgICAgICAgICAgICBtX2V2
dF9zaHV0ZG93bjsNCj4gKyAgICBIQU5ETEUgICAgICAgICAgICAgICAgICBtX2V2dF9zdXNwZW5k
Ow0KPiANCj4gICAgICBDRGV2aWNlTGlzdCAgICAgICAgICAgICBtX2Rldmxpc3Q7DQo+ICAgICAg
Q1hlbklmYWNlRGV2aWNlKiAgICAgICAgbV9kZXZpY2U7DQo+ICAgICAgQ1JJVElDQUxfU0VDVElP
TiAgICAgICAgbV9jcml0Ow0KPiArICAgIHZvaWQqICAgICAgICAgICAgICAgICAgIG1fY3R4dF9z
aHV0ZG93bjsNCj4gKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICBtX2N0eHRfc3VzcGVuZDsN
Cj4gIH07DQo+IA0KPiAgI2VuZGlmDQo+IC0tDQo+IDEuOS40Lm1zeXNnaXQuMQ0KPiANCj4gDQo+
IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+IHdpbi1w
di1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3Jn
DQo+IGh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8v
d2luLXB2LWRldmVsDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9q
ZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0
aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Wed Jul 06 16:03:22 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 06 Jul 2016 16:03:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bKpII-0004LE-6a; Wed, 06 Jul 2016 16:03:22 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=988999fe3=Paul.Durrant@citrix.com>)
 id 1bKpIG-0004L1-34
 for win-pv-devel@lists.xenproject.org; Wed, 06 Jul 2016 16:03:20 +0000
Received: from [193.109.254.147] by server-9.bemta-14.messagelabs.com id
 68/74-32749-7CB2D775; Wed, 06 Jul 2016 16:03:19 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrJIsWRWlGSWpSXmKPExsWyU9JRQveYdm2
 4weVZPBZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y9EfzoLGuIqLJz+xNTA+ieli5OCQEPCTOHe8
 oouRk4NNQEdi6dH5TCC2iECBxPf385hBbGYBNYnr+7tYQWxhAU+JPVdvsELUeEmcmfGDGcI2k
 jj3pJMRxGYRUJHou/eLBcTmFXCX+LJ0PVA9F4eQQAOjREPbZrAGTgE3id9/VrOB2IwCshJfGl
 dDLROXuPUE4ggJAQGJJXvOM0PYohIvH/9jhbANJLYu3ccCcj+zgKbE+l36EK2KElO6H7JD7BW
 UODnzCdgNQkD3bHl8AGoMt8TKz39YJjCKzkKybRbCpFlIJs1CMmkBI8sqRo3i1KKy1CJdIxO9
 pKLM9IyS3MTMHF1DQxO93NTi4sT01JzEpGK95PzcTYzAKKlnYGDcwfjzkt8hRkkOJiVRXpZv1
 eFCfEn5KZUZicUZ8UWlOanFhxhlODiUJHinaNWGCwkWpaanVqRl5gDjFSYtwcGjJML7AiTNW1
 yQmFucmQ6ROsWoKCXOew0kIQCSyCjNg2uDpYhLjLJSwryMDAwMQjwFqUW5mSWo8q8YxTkYlYR
 5z4JM4cnMK4Gb/gpoMRPQ4p8u1SCLSxIRUlINjBUV3WmS7DmT2e2jK0pfMfQfPdXLonE18pxU
 TdWXBttkh9t/ndbd2Sqz99LtH+U5FmfXx3/69SBCqKEv4WfjYl3uP1s/nlfmO/3N5tfZMuX3r
 x4WX/h9ja/6mPZW+fTjtz6V/prZq1/JL+6i8Lrn4TW36IMqvoeWWx+xvPJrgVSP25lFNqsPuC
 uxFGckGmoxFxUnAgBCPo7sDAMAAA==
X-Env-Sender: prvs=988999fe3=Paul.Durrant@citrix.com
X-Msg-Ref: server-8.tower-27.messagelabs.com!1467820996!41850439!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: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 64938 invoked from network); 6 Jul 2016 16:03:18 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-8.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 6 Jul 2016 16:03:18 -0000
X-IronPort-AV: E=Sophos;i="5.28,319,1464652800"; d="scan'208";a="25688740"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 5/6] Add Suspend and Shutdown handlers
Thread-Index: AQHR1qlhYqKp39VN40OLBhhJ7EC5A6ALkXtA
Date: Wed, 6 Jul 2016 15:59:57 +0000
Message-ID: <c8f1fe27d7214756ad9e6e3da377105b@AMSPEX02CL03.citrite.net>
References: <1467715091-13216-1-git-send-email-owen.smith@citrix.com>
 <1467715091-13216-6-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1467715091-13216-6-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 5/6] Add Suspend and Shutdown handlers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMDUgSnVseSAyMDE2IDExOjM4DQo+IFRvOiB3aW4tcHYt
ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gQ2M6IE93ZW4gU21pdGgNCj4gU3ViamVjdDog
W3dpbi1wdi1kZXZlbF0gW1BBVENIIDUvNl0gQWRkIFN1c3BlbmQgYW5kIFNodXRkb3duIGhhbmRs
ZXJzDQo+IA0KPiBTdXNwZW5kIG5lZWRzIHRvIHJlLWFkdmVydGlzZSB0aGUgc2h1dGRvd24gZmVh
dHVyZQ0KPiBTaHV0ZG93biByZXNwb25kcyB0byBjb250cm9sXHNodXRkb3duIHRvIGlzc3VlIGEg
c2h1dGRvd24sIHJlYm9vdCwNCj4gaGliZXJuYXRlIG9yIFMzIHRyYW5zaXRpb24uDQo+IFN1aXRh
YmxlIGV2ZW50IGxvZyBlbnRyaWVzIGFyZSBhZGRlZCB3aGVuIHRoZXNlIGV2ZW50cyBhcmUgdHJp
Z2dlcmVkLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRy
aXguY29tPg0KDQpBY2tlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNv
bT4NCg0KPiAtLS0NCj4gIHNyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcCB8IDE0Nw0KPiArKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQ0KPiAgc3JjL3hlbmFnZW50
L3NlcnZpY2UuaCAgIHwgIDEwICsrKysNCj4gIDIgZmlsZXMgY2hhbmdlZCwgMTU0IGluc2VydGlv
bnMoKyksIDMgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvc3JjL3hlbmFnZW50L3Nl
cnZpY2UuY3BwIGIvc3JjL3hlbmFnZW50L3NlcnZpY2UuY3BwDQo+IGluZGV4IDg0Yjg4MTQuLjNl
NjIxZWIgMTAwNjQ0DQo+IC0tLSBhL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcA0KPiArKysgYi9z
cmMveGVuYWdlbnQvc2VydmljZS5jcHANCj4gQEAgLTMyLDYgKzMyLDggQEANCj4gICNkZWZpbmUg
SU5JVEdVSUQNCj4gICNpbmNsdWRlIDx3aW5kb3dzLmg+DQo+ICAjaW5jbHVkZSA8c3RkaW8uaD4N
Cj4gKyNpbmNsdWRlIDxwb3dycHJvZi5oPg0KPiArI2luY2x1ZGUgPHdpbnVzZXIuaD4NCj4gDQo+
ICAjaW5jbHVkZSA8eGVuaWZhY2VfaW9jdGxzLmg+DQo+IA0KPiBAQCAtMTcwLDcgKzE3Miw4IEBA
IHN0YXRpYyBDWGVuQWdlbnQgc19zZXJ2aWNlOw0KPiAgfQ0KPiANCj4gIENYZW5BZ2VudDo6Q1hl
bkFnZW50KCkgOiBtX2hhbmRsZShOVUxMKSwgbV9ldnRsb2coTlVMTCksDQo+IC0gICAgbV9kZXZs
aXN0KEdVSURfSU5URVJGQUNFX1hFTklGQUNFKSwgbV9kZXZpY2UoTlVMTCkNCj4gKyAgICBtX2Rl
dmxpc3QoR1VJRF9JTlRFUkZBQ0VfWEVOSUZBQ0UpLCBtX2RldmljZShOVUxMKSwNCj4gKyAgICBt
X2N0eHRfc2h1dGRvd24oTlVMTCksIG1fY3R4dF9zdXNwZW5kKE5VTEwpDQo+ICB7DQo+ICAgICAg
bV9zdGF0dXMuZHdTZXJ2aWNlVHlwZSAgICAgICAgPSBTRVJWSUNFX1dJTjMyOw0KPiAgICAgIG1f
c3RhdHVzLmR3Q3VycmVudFN0YXRlICAgICAgID0gU0VSVklDRV9TVEFSVF9QRU5ESU5HOw0KPiBA
QCAtMTgxLDEyICsxODQsMTYgQEAgQ1hlbkFnZW50OjpDWGVuQWdlbnQoKSA6IG1faGFuZGxlKE5V
TEwpLA0KPiBtX2V2dGxvZyhOVUxMKSwNCj4gICAgICBtX3N0YXR1cy5kd1dhaXRIaW50ICAgICAg
ICAgICA9IDA7DQo+IA0KPiAgICAgIG1fc3ZjX3N0b3AgPSBDcmVhdGVFdmVudChGQUxTRSwgTlVM
TCwgTlVMTCwgRkFMU0UpOw0KPiArICAgIG1fZXZ0X3NodXRkb3duID0gQ3JlYXRlRXZlbnQoRkFM
U0UsIE5VTEwsIE5VTEwsIEZBTFNFKTsNCj4gKyAgICBtX2V2dF9zdXNwZW5kID0gQ3JlYXRlRXZl
bnQoRkFMU0UsIE5VTEwsIE5VTEwsIEZBTFNFKTsNCj4gDQo+ICAgICAgSW5pdGlhbGl6ZUNyaXRp
Y2FsU2VjdGlvbigmbV9jcml0KTsNCj4gIH0NCj4gDQo+ICBDWGVuQWdlbnQ6On5DWGVuQWdlbnQo
KQ0KPiAgew0KPiArICAgIENsb3NlSGFuZGxlKG1fZXZ0X3N1c3BlbmQpOw0KPiArICAgIENsb3Nl
SGFuZGxlKG1fZXZ0X3NodXRkb3duKTsNCj4gICAgICBDbG9zZUhhbmRsZShtX3N2Y19zdG9wKTsN
Cj4gDQo+ICAgICAgRGVsZXRlQ3JpdGljYWxTZWN0aW9uKCZtX2NyaXQpOw0KPiBAQCAtMjA0LDYg
KzIxMSwxMyBAQCBDWGVuQWdlbnQ6On5DWGVuQWdlbnQoKQ0KPiAgICAgIENDcml0U2VjIGNyaXQo
Jm1fY3JpdCk7DQo+ICAgICAgaWYgKG1fZGV2aWNlID09IE5VTEwpIHsNCj4gICAgICAgICAgbV9k
ZXZpY2UgPSAoQ1hlbklmYWNlRGV2aWNlKilkZXY7DQo+ICsNCj4gKyAgICAgICAgLy8gc2h1dGRv
d24NCj4gKyAgICAgICAgbV9kZXZpY2UtPlN0b3JlQWRkV2F0Y2goImNvbnRyb2wvc2h1dGRvd24i
LCBtX2V2dF9zaHV0ZG93biwNCj4gJm1fY3R4dF9zaHV0ZG93bik7DQo+ICsgICAgICAgIG1fZGV2
aWNlLT5TdG9yZVdyaXRlKCJjb250cm9sL2ZlYXR1cmUtc2h1dGRvd24iLCAiMSIpOw0KPiArDQo+
ICsgICAgICAgIC8vIHN1c3BlbmQNCj4gKyAgICAgICAgbV9kZXZpY2UtPlN1c3BlbmRSZWdpc3Rl
cihtX2V2dF9zdXNwZW5kLCAmbV9jdHh0X3N1c3BlbmQpOw0KPiAgICAgIH0NCj4gIH0NCj4gDQo+
IEBAIC0yMTMsNiArMjI3LDE3IEBAIENYZW5BZ2VudDo6fkNYZW5BZ2VudCgpDQo+IA0KPiAgICAg
IENDcml0U2VjIGNyaXQoJm1fY3JpdCk7DQo+ICAgICAgaWYgKG1fZGV2aWNlID09IGRldikgew0K
PiArICAgICAgICAvLyBzdXNwZW5kDQo+ICsgICAgICAgIGlmIChtX2N0eHRfc3VzcGVuZCkNCj4g
KyAgICAgICAgICAgIG1fZGV2aWNlLT5TdXNwZW5kRGVyZWdpc3RlcihtX2N0eHRfc3VzcGVuZCk7
DQo+ICsgICAgICAgIG1fY3R4dF9zdXNwZW5kID0gTlVMTDsNCj4gKw0KPiArICAgICAgICAvLyBz
aHV0ZG93bg0KPiArICAgICAgICBtX2RldmljZS0+U3RvcmVSZW1vdmUoImNvbnRyb2wvZmVhdHVy
ZS1zaHV0ZG93biIpOw0KPiArICAgICAgICBpZiAobV9jdHh0X3NodXRkb3duKQ0KPiArICAgICAg
ICAgICAgbV9kZXZpY2UtPlN0b3JlUmVtb3ZlV2F0Y2gobV9jdHh0X3NodXRkb3duKTsNCj4gKyAg
ICAgICAgbV9jdHh0X3NodXRkb3duID0gTlVMTDsNCj4gKw0KPiAgICAgICAgICBtX2RldmljZSA9
IE5VTEw7DQo+ICAgICAgfQ0KPiAgfQ0KPiBAQCAtMjM2LDggKzI2MSwxMjQgQEAgdm9pZCBDWGVu
QWdlbnQ6Ok9uRGV2aWNlRXZlbnQoRFdPUkQgZXZ0LA0KPiBMUFZPSUQgZGF0YSkNCj4gDQo+ICBi
b29sIENYZW5BZ2VudDo6U2VydmljZU1haW5Mb29wKCkNCj4gIHsNCj4gLSAgICBXYWl0Rm9yU2lu
Z2xlT2JqZWN0KG1fc3ZjX3N0b3AsIElORklOSVRFKTsNCj4gLSAgICByZXR1cm4gZmFsc2U7DQo+
ICsgICAgSEFORExFICBldmVudHNbM10gPSB7IG1fc3ZjX3N0b3AsIG1fZXZ0X3NodXRkb3duLCBt
X2V2dF9zdXNwZW5kIH07DQo+ICsgICAgRFdPUkQgICB3YWl0ID0gV2FpdEZvck11bHRpcGxlT2Jq
ZWN0cygzLCBldmVudHMsIEZBTFNFLCBJTkZJTklURSk7DQo+ICsNCj4gKyAgICBzd2l0Y2ggKHdh
aXQpIHsNCj4gKyAgICBjYXNlIFdBSVRfT0JKRUNUXzA6DQo+ICsgICAgICAgIHJldHVybiBmYWxz
ZTsgLy8gZXhpdCBsb29wDQo+ICsNCj4gKyAgICBjYXNlIFdBSVRfT0JKRUNUXzArMToNCj4gKyAg
ICAgICAgT25TaHV0ZG93bigpOw0KPiArICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gY29udGludWUg
bG9vcA0KPiArDQo+ICsgICAgY2FzZSBXQUlUX09CSkVDVF8wKzI6DQo+ICsgICAgICAgIE9uU3Vz
cGVuZCgpOw0KPiArICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gY29udGludWUgbG9vcA0KPiArDQo+
ICsgICAgZGVmYXVsdDoNCj4gKyAgICAgICAgQ1hlbkFnZW50OjpMb2coIldhaXRGb3JNdWx0aXBs
ZU9iamVjdHMgZmFpbGVkICglMDh4KVxuIiwgd2FpdCk7DQo+ICsgICAgICAgIEV2ZW50TG9nKEVW
RU5UX1hFTlVTRVJfVU5FWFBFQ1RFRCk7DQo+ICsgICAgICAgIHJldHVybiB0cnVlOyAvLyBjb250
aW51ZSBsb29wDQo+ICsgICAgfQ0KPiArfQ0KPiArDQo+ICt2b2lkIENYZW5BZ2VudDo6QWNxdWly
ZVNodXRkb3duUHJpdmlsZWdlKCkNCj4gK3sNCj4gKyAgICBIQU5ETEUgICAgICAgICAgdG9rZW47
DQo+ICsgICAgVE9LRU5fUFJJVklMRUdFUyB0cDsNCj4gKw0KPiArICAgIExvb2t1cFByaXZpbGVn
ZVZhbHVlKE5VTEwsIFNFX1NIVVRET1dOX05BTUUsDQo+ICZ0cC5Qcml2aWxlZ2VzWzBdLkx1aWQp
Ow0KPiArICAgIHRwLlByaXZpbGVnZXNbMF0uQXR0cmlidXRlcyA9IFNFX1BSSVZJTEVHRV9FTkFC
TEVEOw0KPiArDQo+ICsgICAgdHAuUHJpdmlsZWdlQ291bnQgPSAxOw0KPiArDQo+ICsgICAgaWYg
KCFPcGVuUHJvY2Vzc1Rva2VuKEdldEN1cnJlbnRQcm9jZXNzKCksDQo+ICsgICAgICAgICAgICAg
ICAgICAgICAgICAgIFRPS0VOX0FESlVTVF9QUklWSUxFR0VTIHwgVE9LRU5fUVVFUlksDQo+ICsg
ICAgICAgICAgICAgICAgICAgICAgICAgICZ0b2tlbikpDQo+ICsgICAgICAgIHJldHVybjsNCj4g
Kw0KPiArICAgIEFkanVzdFRva2VuUHJpdmlsZWdlcyh0b2tlbiwgRkFMU0UsICZ0cCwgTlVMTCwg
MCwgTlVMTCk7DQo+ICsgICAgQ2xvc2VIYW5kbGUodG9rZW4pOw0KPiArfQ0KPiArDQo+ICt2b2lk
IENYZW5BZ2VudDo6RXZlbnRMb2coRFdPUkQgZXZ0KQ0KPiArew0KPiArICAgIGlmIChtX2V2dGxv
Zykgew0KPiArICAgICAgICBSZXBvcnRFdmVudChtX2V2dGxvZywNCj4gKyAgICAgICAgICAgICAg
ICAgICAgRVZFTlRMT0dfU1VDQ0VTUywNCj4gKyAgICAgICAgICAgICAgICAgICAgMCwNCj4gKyAg
ICAgICAgICAgICAgICAgICAgZXZ0LA0KPiArICAgICAgICAgICAgICAgICAgICBOVUxMLA0KPiAr
ICAgICAgICAgICAgICAgICAgICAwLA0KPiArICAgICAgICAgICAgICAgICAgICAwLA0KPiArICAg
ICAgICAgICAgICAgICAgICBOVUxMLA0KPiArICAgICAgICAgICAgICAgICAgICBOVUxMKTsNCj4g
KyAgICB9DQo+ICt9DQo+ICsNCj4gK3ZvaWQgQ1hlbkFnZW50OjpPblNodXRkb3duKCkNCj4gK3sN
Cj4gKyAgICBDQ3JpdFNlYyBjcml0KCZtX2NyaXQpOw0KPiArICAgIGlmIChtX2RldmljZSA9PSBO
VUxMKQ0KPiArICAgICAgICByZXR1cm47DQo+ICsNCj4gKyAgICBzdGQ6OnN0cmluZyB0eXBlOw0K
PiArICAgIG1fZGV2aWNlLT5TdG9yZVJlYWQoImNvbnRyb2wvc2h1dGRvd24iLCB0eXBlKTsNCj4g
Kw0KPiArICAgIENYZW5BZ2VudDo6TG9nKCJPblNodXRkb3duKCV3cykgPSAlc1xuIiwgbV9kZXZp
Y2UtPlBhdGgoKSwNCj4gdHlwZS5jX3N0cigpKTsNCj4gKw0KPiArICAgIGlmICh0eXBlID09ICJw
b3dlcm9mZiIgfHwgdHlwZSA9PSAiaGFsdCIpIHsNCj4gKyAgICAgICAgRXZlbnRMb2coRVZFTlRf
WEVOVVNFUl9QT1dFUk9GRik7DQo+ICsNCj4gKyAgICAgICAgbV9kZXZpY2UtPlN0b3JlV3JpdGUo
ImNvbnRyb2wvc2h1dGRvd24iLCAiIik7DQo+ICsgICAgICAgIEFjcXVpcmVTaHV0ZG93blByaXZp
bGVnZSgpOw0KPiArICAgICAgICBpZiAoIUluaXRpYXRlU3lzdGVtU2h1dGRvd25FeChOVUxMLCBO
VUxMLCAwLCBUUlVFLCBGQUxTRSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgU0hURE5fUkVBU09OX01BSk9SX09USEVSIHwNCj4gKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgU0hURE5fUkVBU09OX01JTk9SX0VOVklST05NRU5UIHwNCj4gKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hURE5fUkVBU09OX0ZMQUdfUExB
Tk5FRCkpIHsNCj4gKyAgICAgICAgICAgIENYZW5BZ2VudDo6TG9nKCJJbml0aWF0ZVN5c3RlbVNo
dXRkb3duRXggZmFpbGVkICUwOHhcbiIsDQo+IEdldExhc3RFcnJvcigpKTsNCj4gKyAgICAgICAg
fQ0KPiArICAgIH0gZWxzZSBpZiAodHlwZSA9PSAicmVib290Iikgew0KPiArICAgICAgICBFdmVu
dExvZyhFVkVOVF9YRU5VU0VSX1JFQk9PVCk7DQo+ICsNCj4gKyAgICAgICAgbV9kZXZpY2UtPlN0
b3JlV3JpdGUoImNvbnRyb2wvc2h1dGRvd24iLCAiIik7DQo+ICsgICAgICAgIEFjcXVpcmVTaHV0
ZG93blByaXZpbGVnZSgpOw0KPiArICAgICAgICBpZiAoIUluaXRpYXRlU3lzdGVtU2h1dGRvd25F
eChOVUxMLCBOVUxMLCAwLCBUUlVFLCBUUlVFLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBTSFRETl9SRUFTT05fTUFKT1JfT1RIRVIgfA0KPiArICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBTSFRETl9SRUFTT05fTUlOT1JfRU5WSVJPTk1FTlQg
fA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSFRETl9SRUFTT05f
RkxBR19QTEFOTkVEKSkgew0KPiArICAgICAgICAgICAgQ1hlbkFnZW50OjpMb2coIkluaXRpYXRl
U3lzdGVtU2h1dGRvd25FeCBmYWlsZWQgJTA4eFxuIiwNCj4gR2V0TGFzdEVycm9yKCkpOw0KPiAr
ICAgICAgICB9DQo+ICsgICAgfSBlbHNlIGlmICh0eXBlID09ICJoaWJlcm5hdGUiKSB7DQo+ICsg
ICAgICAgIEV2ZW50TG9nKEVWRU5UX1hFTlVTRVJfSElCRVJOQVRFKTsNCj4gKw0KPiArICAgICAg
ICBtX2RldmljZS0+U3RvcmVXcml0ZSgiY29udHJvbC9zaHV0ZG93biIsICIiKTsNCj4gKyAgICAg
ICAgQWNxdWlyZVNodXRkb3duUHJpdmlsZWdlKCk7DQo+ICsgICAgICAgIGlmICghU2V0U3lzdGVt
UG93ZXJTdGF0ZShGQUxTRSwgRkFMU0UpKSB7DQo+ICsgICAgICAgICAgICBDWGVuQWdlbnQ6Okxv
ZygiU2V0U3lzdGVtUG93ZXJTdGF0ZSBmYWlsZWQgJTA4eFxuIiwNCj4gR2V0TGFzdEVycm9yKCkp
Ow0KPiArICAgICAgICB9DQo+ICsgICAgfSBlbHNlIGlmICh0eXBlID09ICJzMyIpIHsNCj4gKyAg
ICAgICAgRXZlbnRMb2coRVZFTlRfWEVOVVNFUl9TMyk7DQo+ICsNCj4gKyAgICAgICAgbV9kZXZp
Y2UtPlN0b3JlV3JpdGUoImNvbnRyb2wvc2h1dGRvd24iLCAiIik7DQo+ICsgICAgICAgIEFjcXVp
cmVTaHV0ZG93blByaXZpbGVnZSgpOw0KPiArICAgICAgICBpZiAoIVNldFN1c3BlbmRTdGF0ZShG
QUxTRSwgVFJVRSwgRkFMU0UpKSB7DQo+ICsgICAgICAgICAgICBDWGVuQWdlbnQ6OkxvZygiU2V0
U3VzcGVuZFN0YXRlIGZhaWxlZCAlMDh4XG4iLCBHZXRMYXN0RXJyb3IoKSk7DQo+ICsgICAgICAg
IH0NCj4gKyAgICB9DQo+ICt9DQo+ICsNCj4gK3ZvaWQgQ1hlbkFnZW50OjpPblN1c3BlbmQoKQ0K
PiArew0KPiArICAgIENDcml0U2VjIGNyaXQoJm1fY3JpdCk7DQo+ICsgICAgaWYgKG1fZGV2aWNl
ID09IE5VTEwpDQo+ICsgICAgICAgIHJldHVybjsNCj4gKw0KPiArICAgIENYZW5BZ2VudDo6TG9n
KCJPblN1c3BlbmQoJXdzKVxuIiwgbV9kZXZpY2UtPlBhdGgoKSk7DQo+ICsgICAgRXZlbnRMb2co
RVZFTlRfWEVOVVNFUl9VTlNVU1BFTkRFRCk7DQo+ICsNCj4gKyAgICBtX2RldmljZS0+U3RvcmVX
cml0ZSgiY29udHJvbC9mZWF0dXJlLXNodXRkb3duIiwgIjEiKTsNCj4gIH0NCj4gDQo+ICB2b2lk
IENYZW5BZ2VudDo6U2V0U2VydmljZVN0YXR1cyhEV09SRCBzdGF0ZSwgRFdPUkQgZXhpdCAvKj0g
MCovLA0KPiBEV09SRCBoaW50IC8qPSAwKi8pDQo+IGRpZmYgLS1naXQgYS9zcmMveGVuYWdlbnQv
c2VydmljZS5oIGIvc3JjL3hlbmFnZW50L3NlcnZpY2UuaA0KPiBpbmRleCBhY2M0ZDUyLi5mYjhh
MWVlIDEwMDY0NA0KPiAtLS0gYS9zcmMveGVuYWdlbnQvc2VydmljZS5oDQo+ICsrKyBiL3NyYy94
ZW5hZ2VudC9zZXJ2aWNlLmgNCj4gQEAgLTY4LDYgKzY4LDEyIEBAIHByaXZhdGU6IC8vIHNlcnZp
Y2UgZXZlbnRzDQo+ICAgICAgdm9pZCBPbkRldmljZUV2ZW50KERXT1JELCBMUFZPSUQpOw0KPiAg
ICAgIGJvb2wgU2VydmljZU1haW5Mb29wKCk7DQo+IA0KPiArcHJpdmF0ZTogLy8gaGVscGVycw0K
PiArICAgIHZvaWQgQWNxdWlyZVNodXRkb3duUHJpdmlsZWdlKCk7DQo+ICsgICAgdm9pZCBFdmVu
dExvZyhEV09SRCBldnQpOw0KPiArICAgIHZvaWQgT25TaHV0ZG93bigpOw0KPiArICAgIHZvaWQg
T25TdXNwZW5kKCk7DQo+ICsNCj4gIHByaXZhdGU6IC8vIHNlcnZpY2Ugc3VwcG9ydA0KPiAgICAg
IHZvaWQgU2V0U2VydmljZVN0YXR1cyhEV09SRCBzdGF0ZSwgRFdPUkQgZXhpdCA9IDAsIERXT1JE
IGhpbnQgPSAwKTsNCj4gICAgICB2b2lkIFdJTkFQSSBfX1NlcnZpY2VNYWluKGludCBhcmdjLCBj
aGFyKiogYXJndik7DQo+IEBAIC03NywxMCArODMsMTQgQEAgcHJpdmF0ZTogLy8gc2VydmljZSBz
dXBwb3J0DQo+ICAgICAgU0VSVklDRV9TVEFUVVNfSEFORExFICAgbV9oYW5kbGU7DQo+ICAgICAg
SEFORExFICAgICAgICAgICAgICAgICAgbV9ldnRsb2c7DQo+ICAgICAgSEFORExFICAgICAgICAg
ICAgICAgICAgbV9zdmNfc3RvcDsNCj4gKyAgICBIQU5ETEUgICAgICAgICAgICAgICAgICBtX2V2
dF9zaHV0ZG93bjsNCj4gKyAgICBIQU5ETEUgICAgICAgICAgICAgICAgICBtX2V2dF9zdXNwZW5k
Ow0KPiANCj4gICAgICBDRGV2aWNlTGlzdCAgICAgICAgICAgICBtX2Rldmxpc3Q7DQo+ICAgICAg
Q1hlbklmYWNlRGV2aWNlKiAgICAgICAgbV9kZXZpY2U7DQo+ICAgICAgQ1JJVElDQUxfU0VDVElP
TiAgICAgICAgbV9jcml0Ow0KPiArICAgIHZvaWQqICAgICAgICAgICAgICAgICAgIG1fY3R4dF9z
aHV0ZG93bjsNCj4gKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICBtX2N0eHRfc3VzcGVuZDsN
Cj4gIH07DQo+IA0KPiAgI2VuZGlmDQo+IC0tDQo+IDEuOS40Lm1zeXNnaXQuMQ0KPiANCj4gDQo+
IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+IHdpbi1w
di1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3Jn
DQo+IGh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8v
d2luLXB2LWRldmVsDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9q
ZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0
aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Thu Jul 07 22:46:54 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 07 Jul 2016 22:46:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bLI4L-0000yk-DU; Thu, 07 Jul 2016 22:46:53 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <omeg@invisiblethingslab.com>) id 1bLI4K-0000ye-7h
 for win-pv-devel@lists.xenproject.org; Thu, 07 Jul 2016 22:46:52 +0000
Received: from [193.109.254.147] by server-7.bemta-14.messagelabs.com id
 D5/BA-09881-BDBDE775; Thu, 07 Jul 2016 22:46:51 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrDIsWRWlGSWpSXmKPExsXilM8irXvrdl2
 4wZzpIhZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y+X2n4wFa5YzVbycNYexgfHGIqYuRi4OIYFL
 jBKHjp9j7mLkBHKyJT59280IkmARaGOW2Ne9lg3CaWGW2Pz6JksXIweHhICzxNwPUhDd9xgle
 q79ZgTpFhFQlbi2/BgbiM0m4CKx/tAHsLiwgLTEyUWnWEBsXgFPiUubu5lB5rAIqEjsfqwBEh
 YViJE49mgyM0SJoMTJmU/AypkF/CWajjeyTGDkm4UkNQtJCsJWl/gz7xIzhC0v0bx1NpRtIfH
 qfzuUrSgxpfshO4RtIrFo+RXGBYzsqxg1ilOLylKLdA0t9JKKMtMzSnITM3N0DQ1N9HJTi4sT
 01NzEpOK9ZLzczcxAkO6noGBcQfjke2ehxglOZiURHkV/OvChfiS8lMqMxKLM+KLSnNSiw8xy
 nBwKEnwutwCygkWpaanVqRl5gCjCyYtwcGjJMK7BCTNW1yQmFucmQ6ROsWoy3Fh/721TEIsef
 l5qVLivMEgRQIgRRmleXAjYJF+iVFWSpiXkYGBQYinILUoN7MEVf4VozgHo5IwbyHIFJ7MvBK
 4Ta+AjmACOuKnSzXIESWJCCmpBkZm5xyVfRPvVr50PzjnaLDSncWnlgj++j7ryUelY9v29397
 eLyAoX/5dpNr26tXTbbrYNzgyNRfdkNe8sUiybsXi694mex6Yr94Q6eJUr/p3ydpHt7R5fkKF
 9s3NP0KulXAyeFvss3GeoL0rktX3i65OvHSFra/HLN1T+ns2fF9Es8uqQv79DlOKbEUZyQaaj
 EXFScCAE4Gi/DvAgAA
X-Env-Sender: omeg@invisiblethingslab.com
X-Msg-Ref: server-3.tower-27.messagelabs.com!1467931609!52223798!1
X-Originating-IP: [66.111.4.27]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTExLjQuMjcgPT4gODQ2Mw==\n
X-StarScan-Received: 
X-StarScan-Version: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 57787 invoked from network); 7 Jul 2016 22:46:50 -0000
Received: from out3-smtp.messagingengine.com (HELO
 out3-smtp.messagingengine.com) (66.111.4.27)
 by server-3.tower-27.messagelabs.com with DHE-RSA-AES256-GCM-SHA384 encrypted
 SMTP; 7 Jul 2016 22:46:50 -0000
Received: from compute2.internal (compute2.nyi.internal [10.202.2.42])
 by mailout.nyi.internal (Postfix) with ESMTP id 1EE1A2024B
 for <win-pv-devel@lists.xenproject.org>; Thu,  7 Jul 2016 18:46:49 -0400 (EDT)
Received: from frontend2 ([10.202.2.161])
 by compute2.internal (MEProxy); Thu, 07 Jul 2016 18:46:49 -0400
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=
 invisiblethingslab.com; h=content-type:date:from:message-id
 :mime-version:subject:to:x-sasl-enc:x-sasl-enc; s=mesmtp; bh=XAh
 rvLguj+M/OzJh9NzXEXmxx2M=; b=WqzUQpba4BVW6t2fwJg0tfbx2ChS8PNzDl6
 uVR9/eu+/2zgDV9vt0Gi2VeSleNZk5u1FQ3PjPduRn57ncIiOwrRVvBJnQlZvq7Y
 rMkLzySxx2rv1VmYYyb4eTQs8HZV/ExlE47hMQcuZHxNBQ/WAzNb0hxnn1Sv7YJz
 yRbsY9lM=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=
 messagingengine.com; h=content-type:date:from:message-id
 :mime-version:subject:to:x-sasl-enc:x-sasl-enc; s=smtpout; bh=XA
 hrvLguj+M/OzJh9NzXEXmxx2M=; b=bImuoDLzc5lKR5dsJZeEkNANEgZwXNIU+0
 Af4wYrqfm7yUkzOKAY1Ccl7AyxPqToMYzWu7q7US5GlS46gDPrnm2M+r03uxSkiq
 s/oMoLPhVwzmAamVR7/Yyd8DjUPadJZVsti8mlDdcPz/p3WAoJJc8r36/MQMrC6s
 W/iDzKEUQ=
X-Sasl-enc: +26Jc2ZZPjRaHmKiZnEDq+tOtK5buRsGdA3A99odSxOI 1467931608
Received: from [192.168.0.35] (89-76-38-125.dynamic.chello.pl [89.76.38.125])
 by mail.messagingengine.com (Postfix) with ESMTPA id 0FA1DCCD26
 for <win-pv-devel@lists.xenproject.org>; Thu,  7 Jul 2016 18:46:47 -0400 (EDT)
To: win-pv-devel@lists.xenproject.org
From: =?UTF-8?B?UmFmYcWCIFdvamR5xYJh?= <omeg@invisiblethingslab.com>
Message-ID: <13419f12-599d-9a31-70a6-d9d7a1618b84@invisiblethingslab.com>
Date: Fri, 8 Jul 2016 00:46:39 +0200
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101
 Thunderbird/45.1.1
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="------------044250D30E446C7E5A766C6A"
Subject: [win-pv-devel] xenvif DPC timeout
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

This is a multi-part message in MIME format.
--------------044250D30E446C7E5A766C6A
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

Hi,

I'm testing the latest version of pvdrivers in Qubes and I'm running
into a DPC timeout in xenvif at the system startup (Win 7 x64).
Apparently ControllerSetHashAlgorithm() fails and the whole frontend
fails to initialize? I attached the debug output.

We're using Xen 4.6.0-13 atm.

-- 
Rafał Wojdyła
Qubes Windows Tools developer
https://qubes-os.org/

--------------044250D30E446C7E5A766C6A
Content-Type: text/plain; charset=UTF-8;
 name="vif.txt"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="vif.txt"

WEVOfERsbEluaXRpYWxpemU6IDguMi4wICgwKSAoMDcuMDcuMjAxNikNClhFTnxBY3BpRmlu
ZFJzZHA6IDB4MDAwMDAwMDAwMDBFQTAyMA0KWEVOfFN5c3RlbUdldFN0YXJ0T3B0aW9uczog
IFRFU1RTSUdOSU5HICBOT0VYRUNVVEU9T1BUSU4gIERFQlVHICBERUJVR1BPUlQ9Q09NMSAg
QkFVRFJBVEU9MTE1MjAwDQpYRU58U3lzdGVtR2V0VmVyc2lvbkluZm9ybWF0aW9uOiBLRVJO
RUw6IDYuMSAoQlVJTEQgNzYwMSkgUExBVEZPUk0gV0lOMzJfTlQgKHg2NCkNClhFTnxTeXN0
ZW1HZXRWZXJzaW9uSW5mb3JtYXRpb246IFNQOiAxLjAgKCkNClhFTnxTeXN0ZW1HZXRWZXJz
aW9uSW5mb3JtYXRpb246IFNVSVRFUzoNClhFTnxTeXN0ZW1HZXRWZXJzaW9uSW5mb3JtYXRp
b246IC0gVEVSTUlOQUwNClhFTnxTeXN0ZW1HZXRWZXJzaW9uSW5mb3JtYXRpb246IC0gU0lO
R0xFVVNFUlRTDQpYRU58U3lzdGVtR2V0VmVyc2lvbkluZm9ybWF0aW9uOiBUWVBFOiBXT1JL
U1RBVElPTg0KWEVOfFN5c3RlbUdldE1lbW9yeUluZm9ybWF0aW9uOiBSQU5HRVswXSAwMDAw
MDAwMC4wMDAwMTAwMCAtIDAwMDAwMDAwLjAwMDlkZmZmDQpYRU58U3lzdGVtR2V0TWVtb3J5
SW5mb3JtYXRpb246IFJBTkdFWzFdIDAwMDAwMDAwLjAwMTAwMDAwIC0gMDAwMDAwMDAuN2Vm
ZmZmZmYNClhFTnxBY3BpR2V0WHNkdDogMHgwMDAwMDAwMEZDMDBDRjgwDQpYRU58U3lzdGVt
UHJvY2Vzc29ySW5mb3JtYXRpb246ID09PT0+ICgwOjApDQpYRU58U3lzdGVtUHJvY2Vzc29y
SW5mb3JtYXRpb246IE1hbnVmYWN0dXJlcjogR2VudWluZUludGVsDQpYRU58U3lzdGVtUHJv
Y2Vzc29ySW5mb3JtYXRpb246IEFQSUMgSUQ6IDAwDQpYRU58U3lzdGVtUHJvY2Vzc29ySW5m
b3JtYXRpb246IFBST0NFU1NPUiBJRDogMDANClhFTnxTeXN0ZW1Qcm9jZXNzb3JJbmZvcm1h
dGlvbjogPD09PT0gKDA6MCkNClhFTnxVbnBsdWdTZXRSZXF1ZXN0OiBESVNLUw0KWEVOfFVu
cGx1Z1NldFJlcXVlc3Q6IE5JQ1MNClhFTkZJTFR8RHJpdmVyRW50cnk6IDguMi4wICgwKSAo
MDcuMDcuMjAxNikNClhFTkZJTFR8RmRvQ3JlYXRlOiBGRkZGRkE4MDAyMkMzNDEwIChBQ1BJ
XFBOUDBBMDNcMCkNClhFTkZJTFR8UGRvQ3JlYXRlOiBGRkZGRkE4MDAyN0Q1NDUwIChQQ0lc
VkVOXzgwODYmREVWXzEyMzcmU1VCU1lTXzExMDAxQUY0JlJFVl8wMlwwMCkNClhFTkZJTFR8
UGRvQ3JlYXRlOiBGRkZGRkE4MDAyMzAxQjMwIChQQ0lcVkVOXzgwODYmREVWXzcwMDAmU1VC
U1lTXzExMDAxQUY0JlJFVl8wMFwwOCkNClhFTkZJTFR8UGRvQ3JlYXRlOiBGRkZGRkE4MDAy
MjBBNjAwIChQQ0lcVkVOXzgwODYmREVWXzcwMTAmU1VCU1lTXzAwMDE1ODUzJlJFVl8wMFww
OSkNClhFTkZJTFR8UGRvQ3JlYXRlOiBGRkZGRkE4MDAyMjBCNzcwIChQQ0lcVkVOXzgwODYm
REVWXzcwMjAmU1VCU1lTXzExMDAxQUY0JlJFVl8wMVwwQSkNClhFTkZJTFR8UGRvQ3JlYXRl
OiBGRkZGRkE4MDAyMjA5NzcwIChQQ0lcVkVOXzEyMzQmREVWXzExMTEmU1VCU1lTXzAwMDE1
ODUzJlJFVl8wMFwxMCkNClhFTkZJTFR8UGRvQ3JlYXRlOiBGRkZGRkE4MDAyNDMyNzcwIChQ
Q0lcVkVOXzU4NTMmREVWXzAwMDEmU1VCU1lTXzAwMDE1ODUzJlJFVl8wMVwxOCkNClhFTkZJ
TFR8UGRvQ3JlYXRlOiBGRkZGRkE4MDAyNTYzNzcwIChQQ0lcVkVOXzEwRUMmREVWXzgxMzkm
U1VCU1lTXzAwMDE1ODUzJlJFVl8yMFwyMCkNClhFTkZJTFR8UGRvQ3JlYXRlOiBGRkZGRkE4
MDAyMjA4NzcwIChBQ1BJXFBOUDAxMDNcMCkNClhFTkZJTFR8RHJpdmVyU2V0RmlsdGVyU3Rh
dGU6IEFDVElWRSBERVZJQ0UgUFJFU0VOVA0KWEVORklMVHxEcml2ZXJTZXRGaWx0ZXJTdGF0
ZTogUEVORElORw0KWEVORklMVHxQZG9EZXN0cm95OiBGRkZGRkE4MDAyNTYzNzcwIChQQ0lc
VkVOXzEwRUMmREVWXzgxMzkmU1VCU1lTXzAwMDE1ODUzJlJFVl8yMFwyMCkgKGRldmljZSBk
aXNhcHBlYXJlZCkNClhFTkZJTFR8RHJpdmVyU2V0RmlsdGVyU3RhdGU6IERJU0FCTEVEDQpY
RU5CVVN8RHJpdmVyRW50cnk6IDguMi4wICgwKSAoMDcuMDcuMjAxNikNClhFTkJVU3xGZG9T
ZXRGcmllbmRseU5hbWU6IFhlbiBQViBCdXMgKDAwMDEpDQpYRU5CVVN8RmRvQ3JlYXRlOiBG
RkZGRkE4MDAxODUwOTcwIChYUDAwMDEgWEVOQlVTKSBbQUNUSVZFXQ0KWEVOQlVTfEZkb0Nv
bm5lY3RJbnRlcnJ1cHQ6IEZGRkZGQTgwMDE4NjQzMzg6IFNoYXJlZCBMZXZlbFNlbnNpdGl2
ZSBDUFUgMDowIFZFQ1RPUiBhMg0KWEVOQlVTfEZkb0Nvbm5lY3RJbnRlcnJ1cHQ6IEZGRkZG
QTgwMDE4NTgzMzg6IERldmljZUV4Y2x1c2l2ZSBMYXRjaGVkIENQVSAwOjAgVkVDVE9SIGIw
DQpYRU5CVVN8RmRvQ3JlYXRlSW9TcGFjZTogMDAwMDAwMDAuZjEwMDAwMDAgLSAwMDAwMDAw
MC5mMWZmZmZmZg0KWEVOfEh2bVNldFBhcmFtOiBmYWlsMSAoYzAwMDAwMjIpDQpYRU5CVVN8
RXZ0Y2huQWJpQWNxdWlyZTogRklGTw0KWEVOQlVTfEV2dGNobkludGVycnVwdEVuYWJsZTog
Q1BVIDA6MCAoVmVjdG9yID0gMTc2KQ0KWEVOQlVTfEV2dGNobkludGVycnVwdEVuYWJsZTog
Q0FMTEJBQ0sgVklBIChWZWN0b3IgPSAyOCkNClhFTkJVU3xFdnRjaG5GaWZvRXhwYW5kOiBh
ZGRlZCBwb3J0cyBbMDAwMDAwMDAgLSAwMDAwMDNmZl0NClhFTkJVU3xGZG9TY2FuOiA9PT09
Pg0KWEVOQlVTfEZkb1N1c3BlbmQ6ID09PT0+DQpYRU5CVVN8RmRvQmFsbG9vbjogPT09PT4N
ClhFTkJVU3xQZG9DcmVhdGU6IEZGRkZGQTgwMDIyNkUzODAgKFZCRCkNClhFTkJVU3xQZG9E
dW1wUmV2aXNpb25zOiAwODAwMDAwOSAtPiBTVVNQRU5EIHYxIFNIQVJFRF9JTkZPIHYyIEVW
VENITiB2NCBERUJVRyB2MSBTVE9SRSB2MSBSQU5HRV9TRVQgdjEgQ0FDSEUgdjEgR05UVEFC
IHYxIFVOUExVRyB2MSBFTVVMQVRFRCB2MQ0KWEVOQlVTfFBkb0R1bXBSZXZpc2lvbnM6IDA4
MDAwMDBBIC0+IFNVU1BFTkQgdjEgU0hBUkVEX0lORk8gdjIgRVZUQ0hOIHY1IERFQlVHIHYx
IFNUT1JFIHYxIFJBTkdFX1NFVCB2MSBDQUNIRSB2MSBHTlRUQUIgdjEgVU5QTFVHIHYxIEVN
VUxBVEVEIHYxDQpYRU5CVVN8UGRvRHVtcFJldmlzaW9uczogMDgwMDAwMEIgLT4gU1VTUEVO
RCB2MSBTSEFSRURfSU5GTyB2MiBFVlRDSE4gdjUgREVCVUcgdjEgU1RPUkUgdjIgUkFOR0Vf
U0VUIHYxIENBQ0hFIHYxIEdOVFRBQiB2MiBVTlBMVUcgdjEgRU1VTEFURUQgdjENClhFTkJV
U3xQZG9DcmVhdGU6IEZGRkZGQTgwMDIyNkQ4NjAgKFZJRikNClhFTkJVU3xQZG9EdW1wUmV2
aXNpb25zOiAwODAwMDAwOSAtPiBTVVNQRU5EIHYxIFNIQVJFRF9JTkZPIHYyIEVWVENITiB2
NCBERUJVRyB2MSBTVE9SRSB2MSBSQU5HRV9TRVQgdjEgQ0FDSEUgdjEgR05UVEFCIHYxIFVO
UExVRyB2MSBFTVVMQVRFRCB2MQ0KWEVOQlVTfFBkb0R1bXBSZXZpc2lvbnM6IDA4MDAwMDBB
IC0+IFNVU1BFTkQgdjEgU0hBUkVEX0lORk8gdjIgRVZUQ0hOIHY1IERFQlVHIHYxIFNUT1JF
IHYxIFJBTkdFX1NFVCB2MSBDQUNIRSB2MSBHTlRUQUIgdjEgVU5QTFVHIHYxIEVNVUxBVEVE
IHYxDQpYRU5CVVN8UGRvRHVtcFJldmlzaW9uczogMDgwMDAwMEIgLT4gU1VTUEVORCB2MSBT
SEFSRURfSU5GTyB2MiBFVlRDSE4gdjUgREVCVUcgdjEgU1RPUkUgdjIgUkFOR0VfU0VUIHYx
IENBQ0hFIHYxIEdOVFRBQiB2MiBVTlBMVUcgdjEgRU1VTEFURUQgdjENClhFTkJVU3xQZG9D
cmVhdGU6IEZGRkZGQTgwMDIyNkQ1NDAgKElGQUNFKQ0KWEVOQlVTfFBkb0R1bXBSZXZpc2lv
bnM6IDA4MDAwMDA5IC0+IFNVU1BFTkQgdjEgU0hBUkVEX0lORk8gdjIgRVZUQ0hOIHY0IERF
QlVHIHYxIFNUT1JFIHYxIFJBTkdFX1NFVCB2MSBDQUNIRSB2MSBHTlRUQUIgdjEgVU5QTFVH
IHYxIEVNVUxBVEVEIHYxDQpYRU5CVVN8UGRvRHVtcFJldmlzaW9uczogMDgwMDAwMEEgLT4g
U1VTUEVORCB2MSBTSEFSRURfSU5GTyB2MiBFVlRDSE4gdjUgREVCVUcgdjEgU1RPUkUgdjEg
UkFOR0VfU0VUIHYxIENBQ0hFIHYxIEdOVFRBQiB2MSBVTlBMVUcgdjEgRU1VTEFURUQgdjEN
ClhFTkJVU3xQZG9EdW1wUmV2aXNpb25zOiAwODAwMDAwQiAtPiBTVVNQRU5EIHYxIFNIQVJF
RF9JTkZPIHYyIEVWVENITiB2NSBERUJVRyB2MSBTVE9SRSB2MiBSQU5HRV9TRVQgdjEgQ0FD
SEUgdjEgR05UVEFCIHYyIFVOUExVRyB2MSBFTVVMQVRFRCB2MQ0KWEVORklMVHxGZG9DcmVh
dGU6IEZGRkZGQTgwMDIyRTdDNTAgKFBDSUlERVxJREVDaGFubmVsXDApDQpYRU5GSUxUfEZk
b0NyZWF0ZTogRkZGRkZBODAwMjJFNzg2MCAoUENJSURFXElERUNoYW5uZWxcMSkNClhFTlZC
RHxEcml2ZXJFbnRyeTo4LjIuMC4wICg3LzcvMjAxNikNClhFTlZCRHxfX0RyaXZlclBhcnNl
UGFyYW1ldGVyS2V5OkRyaXZlclBhcmFtZXRlcnM6IA0KWEVORElTS3xEcml2ZXJFbnRyeTpY
RU5ESVNLIDguMi4wICgwKSAoMDcuMDcuMjAxNikNClhFTkRJU0t8RmRvQ3JlYXRlOkZGRkZG
QTgwMDIyRjkwNDANClhFTkJVU3xQZG9RdWVyeUludGVyZmFjZTogVkJEOiBCVVNfSU5URVJG
QUNFIChWRVJTSU9OIDEpDQpYRU5CVVN8UGRvUXVlcnlJbnRlcmZhY2U6IFZCRDogQlVTX0lO
VEVSRkFDRSAoVkVSU0lPTiAxKQ0KWEVOQlVTfERtYUR1bXBEZXZpY2VEZXNjcmlwdGlvbjog
VmVyc2lvbiA9IDANClhFTkJVU3xEbWFEdW1wRGV2aWNlRGVzY3JpcHRpb246IE1hc3RlciA9
IFRSVUUNClhFTkJVU3xEbWFEdW1wRGV2aWNlRGVzY3JpcHRpb246IFNjYXR0ZXJHYXRoZXIg
PSBUUlVFDQpYRU5CVVN8RG1hRHVtcERldmljZURlc2NyaXB0aW9uOiBEZW1hbmRNb2RlID0g
RkFMU0UNClhFTkJVU3xEbWFEdW1wRGV2aWNlRGVzY3JpcHRpb246IEF1dG9Jbml0aWFsaXpl
ID0gRkFMU0UNClhFTkJVU3xEbWFEdW1wRGV2aWNlRGVzY3JpcHRpb246IERtYTMyQml0QWRk
cmVzc2VzID0gVFJVRQ0KWEVOQlVTfERtYUR1bXBEZXZpY2VEZXNjcmlwdGlvbjogSWdub3Jl
Q291bnQgPSBGQUxTRQ0KWEVOQlVTfERtYUR1bXBEZXZpY2VEZXNjcmlwdGlvbjogRG1hNjRC
aXRBZGRyZXNzZXMgPSBUUlVFDQpYRU5CVVN8RG1hRHVtcERldmljZURlc2NyaXB0aW9uOiBC
dXNOdW1iZXIgPSAwMDAwMDAwMA0KWEVOQlVTfERtYUR1bXBEZXZpY2VEZXNjcmlwdGlvbjog
RG1hQ2hhbm5lbCA9IGZmZmZmZmZmDQpYRU5CVVN8RG1hRHVtcERldmljZURlc2NyaXB0aW9u
OiBJbnRlcmZhY2VUeXBlID0gSW50ZXJuYWwNClhFTkJVU3xEbWFEdW1wRGV2aWNlRGVzY3Jp
cHRpb246IERtYVdpZHRoID0gOEJpdHMNClhFTkJVU3xEbWFEdW1wRGV2aWNlRGVzY3JpcHRp
b246IERtYVNwZWVkID0gQ29tcGF0aWJsZQ0KWEVOQlVTfERtYUR1bXBEZXZpY2VEZXNjcmlw
dGlvbjogTWF4aW11bUxlbmd0aCA9IDAwMGIwMDAwDQpYRU5CVVN8RG1hRHVtcERldmljZURl
c2NyaXB0aW9uOiBEbWFQb3J0ID0gZmZmZmZmZmYNClhFTkJVU3xEbWFHZXRBZGFwdGVyOiBu
byBpbnRlcmNlcHRpb24NClhFTkJVU3xQZG9RdWVyeUludGVyZmFjZTogVkJEOiBTVE9SRV9J
TlRFUkZBQ0UgKFZFUlNJT04gMSkNClhFTkJVU3xQZG9RdWVyeUludGVyZmFjZTogVkJEOiBF
VlRDSE5fSU5URVJGQUNFIChWRVJTSU9OIDQpDQpYRU5CVVN8UGRvUXVlcnlJbnRlcmZhY2U6
IFZCRDogR05UVEFCX0lOVEVSRkFDRSAoVkVSU0lPTiAxKQ0KWEVOQlVTfFBkb1F1ZXJ5SW50
ZXJmYWNlOiBWQkQ6IFNVU1BFTkRfSU5URVJGQUNFIChWRVJTSU9OIDEpDQpYRU5CVVN8UGRv
UXVlcnlJbnRlcmZhY2U6IFZCRDogREVCVUdfSU5URVJGQUNFIChWRVJTSU9OIDEpDQpYRU5C
VVN8UGRvUXVlcnlJbnRlcmZhY2U6IFZCRDogVU5QTFVHX0lOVEVSRkFDRSAoVkVSU0lPTiAx
KQ0KWEVOQlVTfFBkb1F1ZXJ5SW50ZXJmYWNlOiBWQkQ6IEVNVUxBVEVEX0lOVEVSRkFDRSAo
VkVSU0lPTiAxKQ0KWEVORklMVHxQZG9RdWVyeUludGVyZmFjZTogUENJXFZFTl81ODUzJkRF
Vl8wMDAxJlNVQlNZU18wMDAxNTg1MyZSRVZfMDFcMTg6IEVNVUxBVEVEX0lOVEVSRkFDRSAo
VkVSU0lPTiAxKQ0KWEVOQlVTfFVucGx1Z1JlcXVlc3Q6IERJU0tTIChNQUtFKQ0KWEVOfFVu
cGx1Z0luY3JlbWVudFZhbHVlOiBESVNLUyAxDQpYRU5WQkR8X19GZG9TZXREZXZpY2VQb3dl
clN0YXRlOlBPV0VSIEQzIHRvIEQwDQpYRU5WQkR8RmRvRDNUb0QwOkQzLT5EMA0KWEVOVkJE
fF9fRmRvSXNQZG9VbnBsdWdnZWQ6VGFyZ2V0WzBdIDogKHZiZC81MTcxMikgRW11bGF0ZWQg
Tk9UX1BSRVNFTlQNClhFTlZCRHxQZG9DcmVhdGU6VGFyZ2V0WzBdIDogQ3JlYXRpbmcNClhF
TlZCRHxQZG9TZXREZXZpY2VQb3dlclN0YXRlOlRhcmdldFswXSA6IFBPV0VSIEQzIHRvIEQw
DQpYRU5WQkR8UGRvRDNUb0QwOlRhcmdldFswXSA6IEQzLT5EMA0KWEVOVkJEfF9fRnJvbnRl
bmRTZXRTdGF0ZTpUYXJnZXRbMF0gOiBJTklUSUFMSVpFRCAtLS0tPiBFTkFCTEVEDQpYRU5W
QkR8X19Gcm9udGVuZFNldFN0YXRlOlRhcmdldFswXSA6IGluIHN0YXRlIENMT1NFRA0KWEVO
VkJEfEZyb250ZW5kV3JpdGVVc2FnZTpUYXJnZXRbMF0gOiBOT1RfRFVNUCBOT1RfSElCRVIg
Tk9UX1BBR0UNClhFTlZCRHxQZG9SZWFkSW5xdWlyeURhdGE6VGFyZ2V0WzBdIDogRmFpbGVk
IHRvIGdldCBQYWdlODAgZGF0YQ0KWEVOVkJEfFBkb1JlYWRJbnF1aXJ5RGF0YTpUYXJnZXRb
MF0gOiBGYWlsZWQgdG8gZ2V0IFBhZ2U4MyBkYXRhDQpYRU5WQkR8UGRvVXBkYXRlSW5xdWly
eURhdGE6VGFyZ2V0WzBdIDogVkRJLVVVSUQgPSB7MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAt
MDAwMDAwMDAwMDAwfQ0KWEVOVkJEfEZyb250ZW5kUHJlcGFyZTpUYXJnZXRbMF0gOiBCYWNr
ZW5kSWQgMCAoL2xvY2FsL2RvbWFpbi8wL2JhY2tlbmQvdmJkLzczLzUxNzEyKQ0KWEVOVkJE
fEZyb250ZW5kUmVhZEZlYXR1cmVzOlRhcmdldFswXSA6IEZlYXR1cmVzOiBSRU1PVkFCTEUN
ClhFTlZCRHxfX0Zyb250ZW5kU2V0U3RhdGU6VGFyZ2V0WzBdIDogaW4gc3RhdGUgUFJFUEFS
RUQNClhFTkJVU3xSYW5nZVNldFBvcDogZmFpbDEgKGMwMDAwMDlhKQ0KWEVOQlVTfEdudHRh
YkV4cGFuZDogYWRkZWQgcmVmZXJlbmNlcyBbMDAwMDAwMjAgLSAwMDAwMDFmZl0NClhFTlZC
RHxfX1JlYWREaXNrSW5mbzpUYXJnZXRbMF0gOiA4Mzg4NjA4MCBzZWN0b3JzIG9mIDUxMiBi
eXRlcyAoNTEyKQ0KWEVOVkJEfF9fUmVhZERpc2tJbmZvOlRhcmdldFswXSA6IDQwIEdCICgw
MDAwMDAwMCkgDQpYRU5WQkR8RnJvbnRlbmRSZWFkRGlza0luZm86VGFyZ2V0WzBdIDogRmVh
dHVyZXM6IEJBUlJJRVIgRkxVU0ggDQpYRU5WQkR8RnJvbnRlbmRSZWFkRmVhdHVyZXM6VGFy
Z2V0WzBdIDogRmVhdHVyZXM6IFBFUlNJU1RFTlQgSU5ESVJFQ1QgUkVNT1ZBQkxFDQpYRU5W
QkR8RnJvbnRlbmRSZWFkRmVhdHVyZXM6VGFyZ2V0WzBdIDogSU5ESVJFQ1QgMTAwDQpYRU5W
QkR8X19Gcm9udGVuZFNldFN0YXRlOlRhcmdldFswXSA6IGluIHN0YXRlIENPTk5FQ1RFRA0K
WEVOVkJEfF9fRnJvbnRlbmRTZXRTdGF0ZTpUYXJnZXRbMF0gOiBpbiBzdGF0ZSBFTkFCTEVE
DQpYRU5WQkR8Tm90aWZpZXJEcGM6VGFyZ2V0WzBdIDogUGF1c2VkLCAwIG91dHN0YW5kaW5n
DQpYRU5WQkR8X19GZG9Jc1Bkb1VucGx1Z2dlZDpUYXJnZXRbMV0gOiAodmJkLzUxNzI4KSBF
bXVsYXRlZCBOT1RfUFJFU0VOVA0KWEVOVkJEfFBkb0NyZWF0ZTpUYXJnZXRbMV0gOiBDcmVh
dGluZw0KWEVOVkJEfFBkb1NldERldmljZVBvd2VyU3RhdGU6VGFyZ2V0WzFdIDogUE9XRVIg
RDMgdG8gRDANClhFTlZCRHxQZG9EM1RvRDA6VGFyZ2V0WzFdIDogRDMtPkQwDQpYRU5WQkR8
X19Gcm9udGVuZFNldFN0YXRlOlRhcmdldFsxXSA6IElOSVRJQUxJWkVEIC0tLS0+IEVOQUJM
RUQNClhFTlZCRHxfX0Zyb250ZW5kU2V0U3RhdGU6VGFyZ2V0WzFdIDogaW4gc3RhdGUgQ0xP
U0VEDQpYRU5WQkR8RnJvbnRlbmRXcml0ZVVzYWdlOlRhcmdldFsxXSA6IE5PVF9EVU1QIE5P
VF9ISUJFUiBOT1RfUEFHRQ0KWEVOVkJEfFBkb1JlYWRJbnF1aXJ5RGF0YTpUYXJnZXRbMV0g
OiBGYWlsZWQgdG8gZ2V0IFBhZ2U4MCBkYXRhDQpYRU5WQkR8UGRvUmVhZElucXVpcnlEYXRh
OlRhcmdldFsxXSA6IEZhaWxlZCB0byBnZXQgUGFnZTgzIGRhdGENClhFTlZCRHxQZG9VcGRh
dGVJbnF1aXJ5RGF0YTpUYXJnZXRbMV0gOiBWREktVVVJRCA9IHswMDAwMDAwMC0wMDAwLTAw
MDAtMDAwMC0wMDAwMDAwMDAwMDB9DQpYRU5WQkR8RnJvbnRlbmRQcmVwYXJlOlRhcmdldFsx
XSA6IEJhY2tlbmRJZCAwICgvbG9jYWwvZG9tYWluLzAvYmFja2VuZC92YmQvNzMvNTE3Mjgp
DQpYRU5WQkR8RnJvbnRlbmRSZWFkRmVhdHVyZXM6VGFyZ2V0WzFdIDogRmVhdHVyZXM6IFJF
TU9WQUJMRQ0KWEVOVkJEfF9fRnJvbnRlbmRTZXRTdGF0ZTpUYXJnZXRbMV0gOiBpbiBzdGF0
ZSBQUkVQQVJFRA0KWEVOVkJEfF9fUmVhZERpc2tJbmZvOlRhcmdldFsxXSA6IDE2Nzc3MjE2
IHNlY3RvcnMgb2YgNTEyIGJ5dGVzICg1MTIpDQpYRU5WQkR8X19SZWFkRGlza0luZm86VGFy
Z2V0WzFdIDogODE5MiBNQiAoMDAwMDAwMDApIA0KWEVOVkJEfEZyb250ZW5kUmVhZERpc2tJ
bmZvOlRhcmdldFsxXSA6IEZlYXR1cmVzOiBCQVJSSUVSIEZMVVNIIERJU0NBUkQgDQpYRU5W
QkR8RnJvbnRlbmRSZWFkRGlza0luZm86VGFyZ2V0WzFdIDogRElTQ0FSRCAwLzEwMDANClhF
TlZCRHxGcm9udGVuZFJlYWRGZWF0dXJlczpUYXJnZXRbMV0gOiBGZWF0dXJlczogUEVSU0lT
VEVOVCBJTkRJUkVDVCBSRU1PVkFCTEUNClhFTlZCRHxGcm9udGVuZFJlYWRGZWF0dXJlczpU
YXJnZXRbMV0gOiBJTkRJUkVDVCAxMDANClhFTlZCRHxfX0Zyb250ZW5kU2V0U3RhdGU6VGFy
Z2V0WzFdIDogaW4gc3RhdGUgQ09OTkVDVEVEDQpYRU5WQkR8X19Gcm9udGVuZFNldFN0YXRl
OlRhcmdldFsxXSA6IGluIHN0YXRlIEVOQUJMRUQNClhFTlZCRHxOb3RpZmllckRwYzpUYXJn
ZXRbMV0gOiBQYXVzZWQsIDAgb3V0c3RhbmRpbmcNClhFTlZCRHxfX0hhbmRsZVBhZ2U4MzpU
YXJnZXRbMF0gOiBJTlFVSVJZIFVzaW5nIEZha2UgUGFnZTgzIERhdGENClhFTlZCRHxfX0hh
bmRsZVBhZ2U4MDpUYXJnZXRbMF0gOiBJTlFVSVJZIFVzaW5nIEZha2UgUGFnZTgwIERhdGEN
ClhFTlZCRHxfX0hhbmRsZVBhZ2U4MzpUYXJnZXRbMV0gOiBJTlFVSVJZIFVzaW5nIEZha2Ug
UGFnZTgzIERhdGENClhFTlZCRHxfX0hhbmRsZVBhZ2U4MDpUYXJnZXRbMV0gOiBJTlFVSVJZ
IFVzaW5nIEZha2UgUGFnZTgwIERhdGENClhFTkRJU0t8UGRvQ3JlYXRlOkZGRkZGQTgwMDI0
NzQ1QzANClhFTkRJU0t8UGRvQ3JlYXRlOkZGRkZGQTgwMDI0N0E5MDANClhFTlZCRHxQZG9T
ZXREZXZpY2VPYmplY3Q6VGFyZ2V0WzBdIDogU2V0dGluZyBEZXZpY2VPYmplY3QgPSAweEZG
RkZGQTgwMDI0NzUwNjANClhFTlZCRHxQZG9TZXREZXZpY2VPYmplY3Q6VGFyZ2V0WzFdIDog
U2V0dGluZyBEZXZpY2VPYmplY3QgPSAweEZGRkZGQTgwMDI0NzU5QzANClhFTlZCRHxQZG9T
ZXREZXZpY2VQbnBTdGF0ZTpUYXJnZXRbMF0gOiBQTlAgUHJlc2VudCB0byBTdGFydGVkDQpY
RU5WQkR8UGRvU2V0RGV2aWNlUG5wU3RhdGU6VGFyZ2V0WzFdIDogUE5QIFByZXNlbnQgdG8g
U3RhcnRlZA0KWEVOVkJEfEZyb250ZW5kV3JpdGVVc2FnZTpUYXJnZXRbMF0gOiBEVU1QIE5P
VF9ISUJFUiBOT1RfUEFHRQ0KWEVOQlVTfEZkb1F1ZXJ5UG5wRGV2aWNlU3RhdGU6IFhQMDAw
MSBYRU5CVVM6IG5vdCBkaXNhYmxlYWJsZQ0KWEVOVklGfERyaXZlckVudHJ5OiBYRU5WSUYg
OC4yLjAgKDApICgwNy4wNy4yMDE2KQ0KWEVOQlVTfFBkb1F1ZXJ5SW50ZXJmYWNlOiBWSUY6
IEJVU19JTlRFUkZBQ0UgKFZFUlNJT04gMSkNClhFTkJVU3xQZG9RdWVyeUludGVyZmFjZTog
VklGOiBERUJVR19JTlRFUkZBQ0UgKFZFUlNJT04gMSkNClhFTkJVU3xQZG9RdWVyeUludGVy
ZmFjZTogVklGOiBTVVNQRU5EX0lOVEVSRkFDRSAoVkVSU0lPTiAxKQ0KWEVOQlVTfFBkb1F1
ZXJ5SW50ZXJmYWNlOiBWSUY6IEVWVENITl9JTlRFUkZBQ0UgKFZFUlNJT04gNSkNClhFTkJV
U3xQZG9RdWVyeUludGVyZmFjZTogVklGOiBTVE9SRV9JTlRFUkZBQ0UgKFZFUlNJT04gMikN
ClhFTkJVU3xQZG9RdWVyeUludGVyZmFjZTogVklGOiBSQU5HRV9TRVRfSU5URVJGQUNFIChW
RVJTSU9OIDEpDQpYRU5CVVN8UGRvUXVlcnlJbnRlcmZhY2U6IFZJRjogQ0FDSEVfSU5URVJG
QUNFIChWRVJTSU9OIDEpDQpYRU5CVVN8UGRvUXVlcnlJbnRlcmZhY2U6IFZJRjogR05UVEFC
X0lOVEVSRkFDRSAoVkVSU0lPTiAxKQ0KWEVOQlVTfFBkb1F1ZXJ5SW50ZXJmYWNlOiBWSUY6
IFVOUExVR19JTlRFUkZBQ0UgKFZFUlNJT04gMSkNClhFTlZJRnxGZG9DcmVhdGU6IEZGRkZG
QTgwMDQ5ODc2MjAgKFhQMDAwMSBYRU5WSUYpDQpYRU5JRkFDRXxEcml2ZXJFbnRyeTogOC4y
LjAuMCAoNy83LzIwMTYpDQpYRU5JRkFDRXxUaHJlYWRDcmVhdGU6IENyZWF0ZSB0aHJlYWQg
RkZGRkY4ODAwM0VFNkNGQyBGRkZGRkE4MDAyNkQ2MDkwDQpYRU5JRkFDRXxUaHJlYWRDcmVh
dGU6IENyZWF0ZSB0aHJlYWQgRkZGRkY4ODAwM0VFNUMzOCBGRkZGRkE4MDAyNkQ2MEEwDQpY
RU5CVVN8UGRvUXVlcnlJbnRlcmZhY2U6IElGQUNFOiBTVVNQRU5EX0lOVEVSRkFDRSAoVkVS
U0lPTiAxKQ0KWEVOQlVTfFBkb1F1ZXJ5SW50ZXJmYWNlOiBJRkFDRTogU0hBUkVEX0lORk9f
SU5URVJGQUNFIChWRVJTSU9OIDIpDQpYRU5CVVN8UGRvUXVlcnlJbnRlcmZhY2U6IElGQUNF
OiBTVE9SRV9JTlRFUkZBQ0UgKFZFUlNJT04gMikNClhFTkJVU3xQZG9RdWVyeUludGVyZmFj
ZTogSUZBQ0U6IEVWVENITl9JTlRFUkZBQ0UgKFZFUlNJT04gNSkNClhFTkJVU3xQZG9RdWVy
eUludGVyZmFjZTogSUZBQ0U6IEdOVFRBQl9JTlRFUkZBQ0UgKFZFUlNJT04gMikNClhFTklG
QUNFfEZkb0luaXRpYWxpc2VYU1JlZ2lzdHJ5RW50cmllczogbm8gc3VjaCB4ZW5zdG9yZSBr
ZXkNClhFTklGQUNFfEZkb0luaXRpYWxpc2VYU1JlZ2lzdHJ5RW50cmllczogRmFpbGVkIHRv
IGluaXRpYWxpc2UgcmVnaXN0cnkgKGMwMDAwMDIyKQ0KWEVOSUZBQ0V8VGhyZWFkQ3JlYXRl
OiBDcmVhdGUgdGhyZWFkIEZGRkZGODgwMDNFRTY3RUMgRkZGRkZBODAwMjZENjQzMA0KWEVO
SUZBQ0V8RmRvQ3JlYXRlOiBGRkZGRkE4MDAzNzMyRDQwIChJRkFDRSkNCisrKysrPldza0tu
ckluaXQuDQpYRU5WSUZ8X19QZG9TZXRQZXJtYW5lbnRBZGRyZXNzOiAwOiAwMDoxNjozZTo1
ZTo2YzowYg0KWEVOVklGfF9fUGRvU2V0Q29udGFpbmVySUQ6IDAgezgwYWRhNmJhLWY2OTQt
NWRhYS04YTA2LTViYmJlYjU5MGZhYX0NClhFTlZJRnxGcm9udGVuZFNldE1heFF1ZXVlczog
ZGV2aWNlL3ZpZi8wOiAxDQpYRU5WSUZ8UGRvQ3JlYXRlOiBGRkZGRkE4MDAyNzcwMTkwICgw
KQ0KWEVOVklGfFBkb0R1bXBSZXZpc2lvbnM6IDA4MDAwMDAyIC0+IENBQ0hFIHYxIFZJRiB2
MiBTVE9SRSB2MCBTVVNQRU5EIHYwDQpYRU5WSUZ8UGRvRHVtcFJldmlzaW9uczogMDgwMDAw
MDMgLT4gQ0FDSEUgdjEgVklGIHYzIFNUT1JFIHYwIFNVU1BFTkQgdjANClhFTlZJRnxQZG9E
dW1wUmV2aXNpb25zOiAwODAwMDAwNCAtPiBDQUNIRSB2MSBWSUYgdjMgU1RPUkUgdjIgU1VT
UEVORCB2MQ0KWEVOVklGfFBkb0R1bXBSZXZpc2lvbnM6IDA4MDAwMDA2IC0+IENBQ0hFIHYx
IFZJRiB2NCBTVE9SRSB2MiBTVVNQRU5EIHYxDQpYRU5WSUZ8UGRvRHVtcFJldmlzaW9uczog
MDgwMDAwMDkgLT4gQ0FDSEUgdjEgVklGIHY1IFNUT1JFIHYyIFNVU1BFTkQgdjENClhFTlZJ
RnxQZG9EdW1wUmV2aXNpb25zOiAwODAwMDAwQiAtPiBDQUNIRSB2MSBWSUYgdjYgU1RPUkUg
djIgU1VTUEVORCB2MQ0KWEVOTkVUfERyaXZlckVudHJ5OiBYRU5ORVQgOC4yLjAgKDApICgw
Ny4wNy4yMDE2KQ0KWEVOSUZBQ0V8V21pUmVnaXN0ZXI6IERSVjogWGVuSWZhY2UgV01JIElu
aXRpYWxpc2F0aW9uDQpYRU5CVVN8VW5wbHVnUmVxdWVzdDogTklDUyAoTUFLRSkNClhFTnxV
bnBsdWdJbmNyZW1lbnRWYWx1ZTogTklDUyAxDQpYRU5WSUZ8UGRvU2V0RnJpZW5kbHlOYW1l
OiBYZW4gUFYgTmV0d29yayBEZXZpY2UgIzANClhFTlZJRnxfX01hY1NldFBlcm1hbmVudEFk
ZHJlc3M6IGF0dHIvdmlmLzA6IDAwOjE2OjNFOjVFOjZDOjBCDQpYRU5WSUZ8X19NYWNTZXRD
dXJyZW50QWRkcmVzczogYXR0ci92aWYvMDogMDA6MTY6M0U6NUU6NkM6MEINClhFTlZJRnxG
cm9udGVuZFNldE51bVF1ZXVlczogZGV2aWNlL3ZpZi8wOiAxDQpYRU5WSUZ8RnJvbnRlbmRT
ZXRTcGxpdDogZGV2aWNlL3ZpZi8wOiBUUlVFDQpYRU5ORVR8TWluaXBvcnRJbml0aWFsaXpl
RXg6ID09PT0+DQpYRU5WSUZ8UGRvUXVlcnlJbnRlcmZhY2U6IDA6IFZJRl9JTlRFUkZBQ0Ug
KFZFUlNJT04gNikNClhFTlZJRnxQZG9RdWVyeUludGVyZmFjZTogMDogU1RPUkVfSU5URVJG
QUNFIChWRVJTSU9OIDIpDQpYRU5CVVN8UGRvUXVlcnlJbnRlcmZhY2U6IFZJRjogU1RPUkVf
SU5URVJGQUNFIChWRVJTSU9OIDIpDQpYRU5WSUZ8UGRvUXVlcnlJbnRlcmZhY2U6IDA6IFNV
U1BFTkRfSU5URVJGQUNFIChWRVJTSU9OIDEpDQpYRU5CVVN8UGRvUXVlcnlJbnRlcmZhY2U6
IFZJRjogU1VTUEVORF9JTlRFUkZBQ0UgKFZFUlNJT04gMSkNClhFTk5FVHxBZGFwdGVyR2V0
QWR2YW5jZWRTZXR0aW5nczogKklQQ2hlY2tzdW1PZmZsb2FkSVB2NCA9IDMNClhFTk5FVHxB
ZGFwdGVyR2V0QWR2YW5jZWRTZXR0aW5nczogKlRDUENoZWNrc3VtT2ZmbG9hZElQdjQgPSAz
DQpYRU5ORVR8QWRhcHRlckdldEFkdmFuY2VkU2V0dGluZ3M6ICpVRFBDaGVja3N1bU9mZmxv
YWRJUHY0ID0gMw0KWEVOTkVUfEFkYXB0ZXJHZXRBZHZhbmNlZFNldHRpbmdzOiAqVENQQ2hl
Y2tzdW1PZmZsb2FkSVB2NiA9IDMNClhFTk5FVHxBZGFwdGVyR2V0QWR2YW5jZWRTZXR0aW5n
czogKlVEUENoZWNrc3VtT2ZmbG9hZElQdjYgPSAzDQpYRU5ORVR8QWRhcHRlckdldEFkdmFu
Y2VkU2V0dGluZ3M6ICpMU092MklQdjQgPSAxDQpYRU5ORVR8QWRhcHRlckdldEFkdmFuY2Vk
U2V0dGluZ3M6ICpMU092MklQdjYgPSAxDQpYRU5ORVR8QWRhcHRlckdldEFkdmFuY2VkU2V0
dGluZ3M6IExST0lQdjQgPSAxDQpYRU5ORVR8QWRhcHRlckdldEFkdmFuY2VkU2V0dGluZ3M6
IExST0lQdjYgPSAxDQpYRU5ORVR8QWRhcHRlckdldEFkdmFuY2VkU2V0dGluZ3M6IE5lZWRD
aGVja3N1bVZhbHVlID0gMQ0KWEVOTkVUfEFkYXB0ZXJHZXRBZHZhbmNlZFNldHRpbmdzOiAq
UlNTID0gMQ0KWEVOVklGfEZyb250ZW5kU2V0SGFzaEFsZ29yaXRobTogZGV2aWNlL3ZpZi8w
OiBUT0VQTElUWg0KWEVOVklGfENvbnRyb2xsZXJTZXRIYXNoQWxnb3JpdGhtOiBmYWlsMSAo
YzAwMDAwYmIpDQpYRU5WSUZ8X19Gcm9udGVuZFVwZGF0ZUhhc2g6IGZhaWwxIChjMDAwMDBi
YikNClhFTlZJRnxSZWNlaXZlclNldEhhc2hBbGdvcml0aG06IGZhaWwyDQpYRU5WSUZ8UmVj
ZWl2ZXJTZXRIYXNoQWxnb3JpdGhtOiBmYWlsMSAoYzAwMDAwYmIpDQpYRU5ORVR8QWRhcHRl
clNldE9mZmxvYWRBdHRyaWJ1dGVzOiBTdXBwb3J0ZWQNClhFTk5FVHxBZGFwdGVyU2V0T2Zm
bG9hZEF0dHJpYnV0ZXM6IENoZWNrc3VtLklQdjRSZWNlaXZlLklwQ2hlY2tzdW0gT04NClhF
Tk5FVHxBZGFwdGVyU2V0T2ZmbG9hZEF0dHJpYnV0ZXM6IENoZWNrc3VtLklQdjRSZWNlaXZl
LlRjcENoZWNrc3VtIE9ODQpYRU5ORVR8QWRhcHRlclNldE9mZmxvYWRBdHRyaWJ1dGVzOiBD
aGVja3N1bS5JUHY0UmVjZWl2ZS5VZHBDaGVja3N1bSBPTg0KWEVOTkVUfEFkYXB0ZXJTZXRP
ZmZsb2FkQXR0cmlidXRlczogQ2hlY2tzdW0uSVB2NlJlY2VpdmUuVGNwQ2hlY2tzdW0gT04N
ClhFTk5FVHxBZGFwdGVyU2V0T2ZmbG9hZEF0dHJpYnV0ZXM6IENoZWNrc3VtLklQdjZSZWNl
aXZlLlVkcENoZWNrc3VtIE9ODQpYRU5ORVR8QWRhcHRlclNldE9mZmxvYWRBdHRyaWJ1dGVz
OiBDaGVja3N1bS5JUHY0VHJhbnNtaXQuSXBDaGVja3N1bSBPTg0KWEVOTkVUfEFkYXB0ZXJT
ZXRPZmZsb2FkQXR0cmlidXRlczogQ2hlY2tzdW0uSVB2NFRyYW5zbWl0LlRjcENoZWNrc3Vt
IE9ODQpYRU5ORVR8QWRhcHRlclNldE9mZmxvYWRBdHRyaWJ1dGVzOiBDaGVja3N1bS5JUHY0
VHJhbnNtaXQuVWRwQ2hlY2tzdW0gT04NClhFTk5FVHxBZGFwdGVyU2V0T2ZmbG9hZEF0dHJp
YnV0ZXM6IENoZWNrc3VtLklQdjZUcmFuc21pdC5UY3BDaGVja3N1bSBPTg0KWEVOTkVUfEFk
YXB0ZXJTZXRPZmZsb2FkQXR0cmlidXRlczogQ2hlY2tzdW0uSVB2NlRyYW5zbWl0LlVkcENo
ZWNrc3VtIE9ODQpYRU5ORVR8QWRhcHRlclNldE9mZmxvYWRBdHRyaWJ1dGVzOiBMc29WMi5J
UHY0Lk1heE9mZkxvYWRTaXplID0gNjUyMDENClhFTk5FVHxBZGFwdGVyU2V0T2ZmbG9hZEF0
dHJpYnV0ZXM6IExzb1YyLklQdjYuTWF4T2ZmTG9hZFNpemUgPSA2NTIwMQ0KWEVOTkVUfEFk
YXB0ZXJTZXRPZmZsb2FkQXR0cmlidXRlczogRGVmYXVsdA0KWEVOTkVUfEFkYXB0ZXJTZXRP
ZmZsb2FkQXR0cmlidXRlczogQ2hlY2tzdW0uSVB2NFJlY2VpdmUuSXBDaGVja3N1bSBPTg0K
WEVOTkVUfEFkYXB0ZXJTZXRPZmZsb2FkQXR0cmlidXRlczogQ2hlY2tzdW0uSVB2NFJlY2Vp
dmUuVGNwQ2hlY2tzdW0gT04NClhFTk5FVHxBZGFwdGVyU2V0T2ZmbG9hZEF0dHJpYnV0ZXM6
IENoZWNrc3VtLklQdjRSZWNlaXZlLlVkcENoZWNrc3VtIE9ODQpYRU5ORVR8QWRhcHRlclNl
dE9mZmxvYWRBdHRyaWJ1dGVzOiBDaGVja3N1bS5JUHY2UmVjZWl2ZS5UY3BDaGVja3N1bSBP
Tg0KWEVOTkVUfEFkYXB0ZXJTZXRPZmZsb2FkQXR0cmlidXRlczogQ2hlY2tzdW0uSVB2NlJl
Y2VpdmUuVWRwQ2hlY2tzdW0gT04NClhFTk5FVHxBZGFwdGVyU2V0T2ZmbG9hZEF0dHJpYnV0
ZXM6IENoZWNrc3VtLklQdjRUcmFuc21pdC5JcENoZWNrc3VtIE9ODQpYRU5ORVR8QWRhcHRl
clNldE9mZmxvYWRBdHRyaWJ1dGVzOiBDaGVja3N1bS5JUHY0VHJhbnNtaXQuVGNwQ2hlY2tz
dW0gT04NClhFTk5FVHxBZGFwdGVyU2V0T2ZmbG9hZEF0dHJpYnV0ZXM6IENoZWNrc3VtLklQ
djRUcmFuc21pdC5VZHBDaGVja3N1bSBPTg0KWEVOTkVUfEFkYXB0ZXJTZXRPZmZsb2FkQXR0
cmlidXRlczogQ2hlY2tzdW0uSVB2NlRyYW5zbWl0LlRjcENoZWNrc3VtIE9ODQpYRU5ORVR8
QWRhcHRlclNldE9mZmxvYWRBdHRyaWJ1dGVzOiBDaGVja3N1bS5JUHY2VHJhbnNtaXQuVWRw
Q2hlY2tzdW0gT04NClhFTk5FVHxBZGFwdGVyU2V0T2ZmbG9hZEF0dHJpYnV0ZXM6IExzb1Yy
LklQdjQuTWF4T2ZmTG9hZFNpemUgPSA2NTIwMQ0KWEVOTkVUfEFkYXB0ZXJTZXRPZmZsb2Fk
QXR0cmlidXRlczogTHNvVjIuSVB2Ni5NYXhPZmZMb2FkU2l6ZSA9IDY1MjAxDQpYRU5WSUZ8
UGRvUXVlcnlJbnRlcmZhY2U6IDA6IEJVU19JTlRFUkZBQ0UgKFZFUlNJT04gMSkNClhFTkJV
U3xEbWFEdW1wRGV2aWNlRGVzY3JpcHRpb246IFZlcnNpb24gPSAyDQpYRU5CVVN8RG1hRHVt
cERldmljZURlc2NyaXB0aW9uOiBNYXN0ZXIgPSBUUlVFDQpYRU5CVVN8RG1hRHVtcERldmlj
ZURlc2NyaXB0aW9uOiBTY2F0dGVyR2F0aGVyID0gVFJVRQ0KWEVOQlVTfERtYUR1bXBEZXZp
Y2VEZXNjcmlwdGlvbjogRGVtYW5kTW9kZSA9IEZBTFNFDQpYRU5CVVN8RG1hRHVtcERldmlj
ZURlc2NyaXB0aW9uOiBBdXRvSW5pdGlhbGl6ZSA9IEZBTFNFDQpYRU5CVVN8RG1hRHVtcERl
dmljZURlc2NyaXB0aW9uOiBEbWEzMkJpdEFkZHJlc3NlcyA9IEZBTFNFDQpYRU5CVVN8RG1h
RHVtcERldmljZURlc2NyaXB0aW9uOiBJZ25vcmVDb3VudCA9IEZBTFNFDQpYRU5CVVN8RG1h
RHVtcERldmljZURlc2NyaXB0aW9uOiBEbWE2NEJpdEFkZHJlc3NlcyA9IFRSVUUNClhFTkJV
U3xEbWFEdW1wRGV2aWNlRGVzY3JpcHRpb246IEJ1c051bWJlciA9IDAwMDAwMDAwDQpYRU5C
VVN8RG1hRHVtcERldmljZURlc2NyaXB0aW9uOiBEbWFDaGFubmVsID0gMDAwMDAwMDANClhF
TkJVU3xEbWFEdW1wRGV2aWNlRGVzY3JpcHRpb246IEludGVyZmFjZVR5cGUgPSBJbnRlcm5h
bA0KWEVOQlVTfERtYUR1bXBEZXZpY2VEZXNjcmlwdGlvbjogRG1hV2lkdGggPSA4Qml0cw0K
WEVOQlVTfERtYUR1bXBEZXZpY2VEZXNjcmlwdGlvbjogRG1hU3BlZWQgPSBDb21wYXRpYmxl
DQpYRU5CVVN8RG1hRHVtcERldmljZURlc2NyaXB0aW9uOiBNYXhpbXVtTGVuZ3RoID0gMDAw
MjAwMDANClhFTkJVU3xEbWFEdW1wRGV2aWNlRGVzY3JpcHRpb246IERtYVBvcnQgPSAwMDAw
MDAwMA0KWEVOQlVTfERtYUdldEFkYXB0ZXI6IG5vIGludGVyY2VwdGlvbg0KWEVOTkVUfE1p
bmlwb3J0SW5pdGlhbGl6ZUV4OiA8PT09PQ0KWEVOTkVUfE1pbmlwb3J0UmVzdGFydDogPT09
PT4NClhFTlZJRnxDb250cm9sbGVyU2V0SGFzaEFsZ29yaXRobTogZmFpbDEgKGMwMDAwMGJi
KQ0KWEVOVklGfF9fRnJvbnRlbmRVcGRhdGVIYXNoOiBmYWlsMSAoYzAwMDAwYmIpDQpYRU5W
SUZ8RnJvbnRlbmRFbmFibGU6IGZhaWw0DQpYRU5WSUZ8RnJvbnRlbmRFbmFibGU6IGZhaWwz
DQpYRU5WSUZ8RnJvbnRlbmRFbmFibGU6IGZhaWwyDQpYRU5WSUZ8RnJvbnRlbmRFbmFibGU6
IGZhaWwxIChjMDAwMDBiYikNClhFTlZJRnxWaWZFbmFibGU6IGZhaWwyDQpYRU5WSUZ8Vmlm
RW5hYmxlOiBmYWlsMSAoYzAwMDAwMDEpDQpYRU5ORVR8TWluaXBvcnRSZXN0YXJ0OiA8PT09
PQ0KWEVOTkVUfE1pbmlwb3J0SGFsdEV4OiA9PT09Pg0KWEVOTkVUfE1pbmlwb3J0SGFsdEV4
OiA8PT09PQ0KWEVOQlVTfFVucGx1Z1JlcXVlc3Q6IE5JQ1MgKFJFVk9LRSkNClhFTnxVbnBs
dWdEZWNyZW1lbnRWYWx1ZTogTklDUyAwDQpYRU5ORVR8RHJpdmVyVW5sb2FkOiBYRU5ORVQg
OC4yLjAgKDApICgwNy4wNy4yMDE2KQ0KWEVOVkJEfEZyb250ZW5kV3JpdGVVc2FnZTpUYXJn
ZXRbMF0gOiBOT1RfRFVNUCBOT1RfSElCRVIgTk9UX1BBR0UNClhFTkJVU3xSYW5nZVNldFBv
cDogZmFpbDEgKGMwMDAwMDlhKQ0KWEVOQlVTfEdudHRhYkV4cGFuZDogYWRkZWQgcmVmZXJl
bmNlcyBbMDAwMDAyMDAgLSAwMDAwMDNmZl0NClhFTkJVU3xSYW5nZVNldFBvcDogZmFpbDEg
KGMwMDAwMDlhKQ0KWEVOQlVTfEdudHRhYkV4cGFuZDogYWRkZWQgcmVmZXJlbmNlcyBbMDAw
MDA0MDAgLSAwMDAwMDVmZl0NClhFTkJVU3xSYW5nZVNldFBvcDogZmFpbDEgKGMwMDAwMDlh
KQ0KWEVOQlVTfEdudHRhYkV4cGFuZDogYWRkZWQgcmVmZXJlbmNlcyBbMDAwMDA2MDAgLSAw
MDAwMDdmZl0NClhFTkJVU3xSYW5nZVNldFBvcDogZmFpbDEgKGMwMDAwMDlhKQ0KWEVOQlVT
fEdudHRhYkV4cGFuZDogYWRkZWQgcmVmZXJlbmNlcyBbMDAwMDA4MDAgLSAwMDAwMDlmZl0N
ClhFTlZCRHxGcm9udGVuZFdyaXRlVXNhZ2U6VGFyZ2V0WzBdIDogTk9UX0RVTVAgTk9UX0hJ
QkVSIFBBR0UNClhFTkJVU3xGZG9RdWVyeVBucERldmljZVN0YXRlOiBYUDAwMDEgWEVOQlVT
OiBub3QgZGlzYWJsZWFibGUNClhFTlZCRHxGcm9udGVuZFdyaXRlVXNhZ2U6VGFyZ2V0WzBd
IDogRFVNUCBOT1RfSElCRVIgUEFHRQ0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJNYXBGb3JlaWdu
UGFnZXM6ID4gUmVmIDEyMQ0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJNYXBGb3JlaWduUGFnZXM6
ID4gUmVmIDU0DQpYRU5JRkFDRXxJb2N0bEdudHRhYk1hcEZvcmVpZ25QYWdlczogPiBSZWYg
MTA4DQpYRU5JRkFDRXxJb2N0bEdudHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M6IEdyYW50c1sw
XSA9IEZGRkZGQTgwMDI3REFFQTgNClhFTklGQUNFfElvY3RsR250dGFiUGVybWl0Rm9yZWln
bkFjY2VzczogR3JhbnRzWzBdID0gRkZGRkZBODAwMjdEQjQyOA0KWEVOSUZBQ0V8SW9jdGxH
bnR0YWJQZXJtaXRGb3JlaWduQWNjZXNzOiBHcmFudHNbMV0gPSBGRkZGRkE4MDAyN0RCMkE4
DQpYRU5JRkFDRXxJb2N0bEdudHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M6IEdyYW50c1syXSA9
IEZGRkZGQTgwMDI3RDdERTgNClhFTklGQUNFfElvY3RsR250dGFiUGVybWl0Rm9yZWlnbkFj
Y2VzczogR3JhbnRzWzNdID0gRkZGRkZBODAwMjdEN0FFOA0KWEVOSUZBQ0V8SW9jdGxHbnR0
YWJQZXJtaXRGb3JlaWduQWNjZXNzOiBHcmFudHNbNF0gPSBGRkZGRkE4MDAyN0RBQkE4DQpY
RU5JRkFDRXxJb2N0bEdudHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M6IEdyYW50c1s1XSA9IEZG
RkZGQTgwMDI3REFBRTgNClhFTklGQUNFfElvY3RsR250dGFiUGVybWl0Rm9yZWlnbkFjY2Vz
czogR3JhbnRzWzZdID0gRkZGRkZBODAwMjdEQUEyOA0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJQ
ZXJtaXRGb3JlaWduQWNjZXNzOiBHcmFudHNbN10gPSBGRkZGRkE4MDAyN0RBOTY4DQpYRU5J
RkFDRXxJb2N0bEdudHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M6IEdyYW50c1s4XSA9IEZGRkZG
QTgwMDI3REE4QTgNClhFTklGQUNFfElvY3RsR250dGFiUGVybWl0Rm9yZWlnbkFjY2Vzczog
R3JhbnRzWzldID0gRkZGRkZBODAwMjdEQTdFOA0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJQZXJt
aXRGb3JlaWduQWNjZXNzOiBHcmFudHNbMTBdID0gRkZGRkZBODAwMjdEQTY2OA0KWEVOSUZB
Q0V8SW9jdGxHbnR0YWJQZXJtaXRGb3JlaWduQWNjZXNzOiBHcmFudHNbMTFdID0gRkZGRkZB
ODAwMjdEQTVBOA0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJQZXJtaXRGb3JlaWduQWNjZXNzOiBH
cmFudHNbMTJdID0gRkZGRkZBODAwMjdEQTRFOA0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJQZXJt
aXRGb3JlaWduQWNjZXNzOiBHcmFudHNbMTNdID0gRkZGRkZBODAwMjdEQTM2OA0KWEVOSUZB
Q0V8SW9jdGxHbnR0YWJQZXJtaXRGb3JlaWduQWNjZXNzOiBHcmFudHNbMTRdID0gRkZGRkZB
ODAwMjdEQTJBOA0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJQZXJtaXRGb3JlaWduQWNjZXNzOiBH
cmFudHNbMTVdID0gRkZGRkZBODAwMjdEREZFOA0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJQZXJt
aXRGb3JlaWduQWNjZXNzOiBHcmFudHNbMF0gPSBGRkZGRkE4MDAyN0RERjI4DQpYRU5JRkFD
RXxJb2N0bEdudHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M6IEdyYW50c1sxXSA9IEZGRkZGQTgw
MDI3RERFNjgNClhFTklGQUNFfElvY3RsR250dGFiUGVybWl0Rm9yZWlnbkFjY2VzczogR3Jh
bnRzWzJdID0gRkZGRkZBODAwMjdERERBOA0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJQZXJtaXRG
b3JlaWduQWNjZXNzOiBHcmFudHNbM10gPSBGRkZGRkE4MDAyN0REQ0U4DQpYRU5JRkFDRXxJ
b2N0bEdudHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M6IEdyYW50c1s0XSA9IEZGRkZGQTgwMDI3
RERDMjgNClhFTklGQUNFfElvY3RsR250dGFiUGVybWl0Rm9yZWlnbkFjY2VzczogR3JhbnRz
WzVdID0gRkZGRkZBODAwMjdEQTcyOA0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJQZXJtaXRGb3Jl
aWduQWNjZXNzOiBHcmFudHNbNl0gPSBGRkZGRkE4MDAyN0RCNzI4DQpYRU5JRkFDRXxJb2N0
bEdudHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M6IEdyYW50c1s3XSA9IEZGRkZGQTgwMDI3RERC
NjgNClhFTklGQUNFfElvY3RsR250dGFiUGVybWl0Rm9yZWlnbkFjY2VzczogR3JhbnRzWzhd
ID0gRkZGRkZBODAwMjdEREFBOA0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJQZXJtaXRGb3JlaWdu
QWNjZXNzOiBHcmFudHNbOV0gPSBGRkZGRkE4MDAyN0REOUU4DQpYRU5JRkFDRXxJb2N0bEdu
dHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M6IEdyYW50c1sxMF0gPSBGRkZGRkE4MDAyN0REOTI4
DQpYRU5JRkFDRXxJb2N0bEdudHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M6IEdyYW50c1sxMV0g
PSBGRkZGRkE4MDAyN0REODY4DQpYRU5JRkFDRXxJb2N0bEdudHRhYlBlcm1pdEZvcmVpZ25B
Y2Nlc3M6IEdyYW50c1sxMl0gPSBGRkZGRkE4MDAyN0REN0E4DQpYRU5JRkFDRXxJb2N0bEdu
dHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M6IEdyYW50c1sxM10gPSBGRkZGRkE4MDAyN0RENkU4
DQpYRU5JRkFDRXxJb2N0bEdudHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M6IEdyYW50c1sxNF0g
PSBGRkZGRkE4MDAyN0RENjI4DQpYRU5JRkFDRXxJb2N0bEdudHRhYlBlcm1pdEZvcmVpZ25B
Y2Nlc3M6IEdyYW50c1sxNV0gPSBGRkZGRkE4MDAyN0RENTY4DQpYRU5JRkFDRXxJb2N0bEdu
dHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M6IEdyYW50c1swXSA9IEZGRkZGQTgwMDI3Rjg2QTgN
ClhFTklGQUNFfElvY3RsR250dGFiUGVybWl0Rm9yZWlnbkFjY2VzczogR3JhbnRzWzBdID0g
RkZGRkZBODAwMjdEQjk2OA0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJQZXJtaXRGb3JlaWduQWNj
ZXNzOiBHcmFudHNbMV0gPSBGRkZGRkE4MDAyN0Y4NzY4DQpYRU5JRkFDRXxJb2N0bEdudHRh
YlBlcm1pdEZvcmVpZ25BY2Nlc3M6IEdyYW50c1syXSA9IEZGRkZGQTgwMDI3Rjg4MjgNClhF
TklGQUNFfElvY3RsR250dGFiUGVybWl0Rm9yZWlnbkFjY2VzczogR3JhbnRzWzNdID0gRkZG
RkZBODAwMjdGQUZFOA0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJQZXJtaXRGb3JlaWduQWNjZXNz
OiBHcmFudHNbMF0gPSBGRkZGRkE4MDAyN0REMUE4DQpYRU5JRkFDRXxJb2N0bEdudHRhYlBl
cm1pdEZvcmVpZ25BY2Nlc3M6IEdyYW50c1sxXSA9IEZGRkZGQTgwMDI3RjgyMjgNClhFTklG
QUNFfElvY3RsR250dGFiUGVybWl0Rm9yZWlnbkFjY2VzczogR3JhbnRzWzJdID0gRkZGRkZB
ODAwMjdEQjhBOA0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJQZXJtaXRGb3JlaWduQWNjZXNzOiBH
cmFudHNbM10gPSBGRkZGRkE4MDAyN0ZBRjI4DQpYRU5JRkFDRXxJb2N0bEdudHRhYk1hcEZv
cmVpZ25QYWdlczogPiBSZWYgOTMNClhFTklGQUNFfElvY3RsR250dGFiTWFwRm9yZWlnblBh
Z2VzOiA+IFJlZiA5Mg0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJNYXBGb3JlaWduUGFnZXM6ID4g
UmVmIDM1DQpYRU5JRkFDRXxJb2N0bEdudHRhYk1hcEZvcmVpZ25QYWdlczogPiBSZWYgNTUN
ClhFTklGQUNFfElvY3RsR250dGFiTWFwRm9yZWlnblBhZ2VzOiA+IFJlZiA1OA0KWEVOSUZB
Q0V8SW9jdGxHbnR0YWJNYXBGb3JlaWduUGFnZXM6ID4gUmVmIDEwNw0KWEVOSUZBQ0V8SW9j
dGxHbnR0YWJNYXBGb3JlaWduUGFnZXM6ID4gUmVmIDc5DQpYRU5JRkFDRXxJb2N0bEdudHRh
Yk1hcEZvcmVpZ25QYWdlczogPiBSZWYgODANClhFTklGQUNFfElvY3RsR250dGFiTWFwRm9y
ZWlnblBhZ2VzOiA+IFJlZiA0MA0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJNYXBGb3JlaWduUGFn
ZXM6ID4gUmVmIDk4DQpYRU5JRkFDRXxJb2N0bEdudHRhYk1hcEZvcmVpZ25QYWdlczogPiBS
ZWYgNTINClhFTklGQUNFfElvY3RsR250dGFiTWFwRm9yZWlnblBhZ2VzOiA+IFJlZiA2Mw0K
WEVOSUZBQ0V8SW9jdGxHbnR0YWJNYXBGb3JlaWduUGFnZXM6ID4gUmVmIDgyDQpYRU5JRkFD
RXxJb2N0bEdudHRhYk1hcEZvcmVpZ25QYWdlczogPiBSZWYgOTENClhFTklGQUNFfElvY3Rs
R250dGFiTWFwRm9yZWlnblBhZ2VzOiA+IFJlZiA2MQ0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJN
YXBGb3JlaWduUGFnZXM6ID4gUmVmIDM2DQpYRU5JRkFDRXxJb2N0bEdudHRhYk1hcEZvcmVp
Z25QYWdlczogPiBSZWYgMTA2DQpYRU5JRkFDRXxJb2N0bEdudHRhYk1hcEZvcmVpZ25QYWdl
czogPiBSZWYgNDENClhFTklGQUNFfElvY3RsR250dGFiTWFwRm9yZWlnblBhZ2VzOiA+IFJl
ZiA1Ng0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJNYXBGb3JlaWduUGFnZXM6ID4gUmVmIDIwDQpY
RU5JRkFDRXxJb2N0bEdudHRhYk1hcEZvcmVpZ25QYWdlczogPiBSZWYgOTQNClhFTklGQUNF
fElvY3RsR250dGFiTWFwRm9yZWlnblBhZ2VzOiA+IFJlZiAzMw0KWEVOSUZBQ0V8SW9jdGxH
bnR0YWJNYXBGb3JlaWduUGFnZXM6ID4gUmVmIDgzDQpYRU5JRkFDRXxJb2N0bEdudHRhYk1h
cEZvcmVpZ25QYWdlczogPiBSZWYgNDQNClhFTklGQUNFfElvY3RsR250dGFiTWFwRm9yZWln
blBhZ2VzOiA+IFJlZiA4NQ0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJNYXBGb3JlaWduUGFnZXM6
ID4gUmVmIDM4DQpYRU5JRkFDRXxJb2N0bEdudHRhYk1hcEZvcmVpZ25QYWdlczogPiBSZWYg
OTANClhFTklGQUNFfElvY3RsR250dGFiTWFwRm9yZWlnblBhZ2VzOiA+IFJlZiAyNA0KWEVO
SUZBQ0V8SW9jdGxHbnR0YWJNYXBGb3JlaWduUGFnZXM6ID4gUmVmIDk3DQpYRU5JRkFDRXxJ
b2N0bEdudHRhYk1hcEZvcmVpZ25QYWdlczogPiBSZWYgODENClhFTklGQUNFfElvY3RsR250
dGFiTWFwRm9yZWlnblBhZ2VzOiA+IFJlZiA0NQ0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJNYXBG
b3JlaWduUGFnZXM6ID4gUmVmIDE3DQpYRU5JRkFDRXxJb2N0bEdudHRhYk1hcEZvcmVpZ25Q
YWdlczogPiBSZWYgNzANClhFTklGQUNFfElvY3RsR250dGFiTWFwRm9yZWlnblBhZ2VzOiA+
IFJlZiAxMDYNClhFTklGQUNFfElvY3RsR250dGFiTWFwRm9yZWlnblBhZ2VzOiA+IFJlZiAz
Ng0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJNYXBGb3JlaWduUGFnZXM6ID4gUmVmIDYxDQpYRU5J
RkFDRXxJb2N0bEdudHRhYk1hcEZvcmVpZ25QYWdlczogPiBSZWYgOTENClhFTklGQUNFfElv
Y3RsR250dGFiTWFwRm9yZWlnblBhZ2VzOiA+IFJlZiA4Mg0KWEVOSUZBQ0V8SW9jdGxHbnR0
YWJNYXBGb3JlaWduUGFnZXM6ID4gUmVmIDYzDQpYRU5JRkFDRXxJb2N0bEdudHRhYk1hcEZv
cmVpZ25QYWdlczogPiBSZWYgNTINClhFTklGQUNFfElvY3RsR250dGFiTWFwRm9yZWlnblBh
Z2VzOiA+IFJlZiA5OA0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJNYXBGb3JlaWduUGFnZXM6ID4g
UmVmIDQwDQpYRU5JRkFDRXxJb2N0bEdudHRhYk1hcEZvcmVpZ25QYWdlczogPiBSZWYgODAN
ClhFTklGQUNFfElvY3RsR250dGFiTWFwRm9yZWlnblBhZ2VzOiA+IFJlZiA3OQ0KWEVOSUZB
Q0V8SW9jdGxHbnR0YWJNYXBGb3JlaWduUGFnZXM6ID4gUmVmIDEwNw0KWEVOSUZBQ0V8SW9j
dGxHbnR0YWJNYXBGb3JlaWduUGFnZXM6ID4gUmVmIDU4DQpYRU5JRkFDRXxJb2N0bEdudHRh
Yk1hcEZvcmVpZ25QYWdlczogPiBSZWYgNTUNClhFTklGQUNFfElvY3RsR250dGFiTWFwRm9y
ZWlnblBhZ2VzOiA+IFJlZiAzNQ0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJNYXBGb3JlaWduUGFn
ZXM6ID4gUmVmIDkyDQpYRU5JRkFDRXxJb2N0bEdudHRhYk1hcEZvcmVpZ25QYWdlczogPiBS
ZWYgOTMNClhFTklGQUNFfElvY3RsR250dGFiTWFwRm9yZWlnblBhZ2VzOiA+IFJlZiA3MA0K
WEVOSUZBQ0V8SW9jdGxHbnR0YWJNYXBGb3JlaWduUGFnZXM6ID4gUmVmIDE3DQpYRU5JRkFD
RXxJb2N0bEdudHRhYk1hcEZvcmVpZ25QYWdlczogPiBSZWYgNDUNClhFTklGQUNFfElvY3Rs
R250dGFiTWFwRm9yZWlnblBhZ2VzOiA+IFJlZiA4MQ0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJN
YXBGb3JlaWduUGFnZXM6ID4gUmVmIDk3DQpYRU5JRkFDRXxJb2N0bEdudHRhYk1hcEZvcmVp
Z25QYWdlczogPiBSZWYgMjQNClhFTklGQUNFfElvY3RsR250dGFiTWFwRm9yZWlnblBhZ2Vz
OiA+IFJlZiA5MA0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJNYXBGb3JlaWduUGFnZXM6ID4gUmVm
IDM4DQpYRU5JRkFDRXxJb2N0bEdudHRhYk1hcEZvcmVpZ25QYWdlczogPiBSZWYgODUNClhF
TklGQUNFfElvY3RsR250dGFiTWFwRm9yZWlnblBhZ2VzOiA+IFJlZiA0NA0KWEVOSUZBQ0V8
SW9jdGxHbnR0YWJNYXBGb3JlaWduUGFnZXM6ID4gUmVmIDgzDQpYRU5JRkFDRXxJb2N0bEdu
dHRhYk1hcEZvcmVpZ25QYWdlczogPiBSZWYgMzMNClhFTklGQUNFfElvY3RsR250dGFiTWFw
Rm9yZWlnblBhZ2VzOiA+IFJlZiA5NA0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJNYXBGb3JlaWdu
UGFnZXM6ID4gUmVmIDIwDQpYRU5JRkFDRXxJb2N0bEdudHRhYk1hcEZvcmVpZ25QYWdlczog
PiBSZWYgNTYNClhFTklGQUNFfElvY3RsR250dGFiTWFwRm9yZWlnblBhZ2VzOiA+IFJlZiA0
MQ0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJQZXJtaXRGb3JlaWduQWNjZXNzOiBHcmFudHNbMF0g
PSBGRkZGRkE4MDAyN0ZBQjY4DQpYRU5JRkFDRXxJb2N0bEdudHRhYlBlcm1pdEZvcmVpZ25B
Y2Nlc3M6IEdyYW50c1swXSA9IEZGRkZGQTgwMDI3Rjg4RTgNClhFTklGQUNFfElvY3RsR250
dGFiUGVybWl0Rm9yZWlnbkFjY2VzczogR3JhbnRzWzFdID0gRkZGRkZBODAwMjdGQTlFOA0K
WEVOSUZBQ0V8SW9jdGxHbnR0YWJQZXJtaXRGb3JlaWduQWNjZXNzOiBHcmFudHNbMl0gPSBG
RkZGRkE4MDAyN0ZBOTI4DQpYRU5JRkFDRXxJb2N0bEdudHRhYlBlcm1pdEZvcmVpZ25BY2Nl
c3M6IEdyYW50c1szXSA9IEZGRkZGQTgwMDI3RkE4NjgNClhFTklGQUNFfElvY3RsR250dGFi
UGVybWl0Rm9yZWlnbkFjY2VzczogR3JhbnRzWzRdID0gRkZGRkZBODAwMjdGQTZFOA0KWEVO
SUZBQ0V8SW9jdGxHbnR0YWJQZXJtaXRGb3JlaWduQWNjZXNzOiBHcmFudHNbNV0gPSBGRkZG
RkE4MDAyN0ZBNjI4DQpYRU5JRkFDRXxJb2N0bEdudHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M6
IEdyYW50c1s2XSA9IEZGRkZGQTgwMDI3RkE1NjgNClhFTklGQUNFfElvY3RsR250dGFiUGVy
bWl0Rm9yZWlnbkFjY2VzczogR3JhbnRzWzddID0gRkZGRkZBODAwMjdGQTRBOA0KWEVOSUZB
Q0V8SW9jdGxHbnR0YWJQZXJtaXRGb3JlaWduQWNjZXNzOiBHcmFudHNbOF0gPSBGRkZGRkE4
MDAyN0ZBM0U4DQpYRU5JRkFDRXxJb2N0bEdudHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M6IEdy
YW50c1s5XSA9IEZGRkZGQTgwMDI3RkEzMjgNClhFTklGQUNFfElvY3RsR250dGFiUGVybWl0
Rm9yZWlnbkFjY2VzczogR3JhbnRzWzEwXSA9IEZGRkZGQTgwMDI3RkExQTgNClhFTklGQUNF
fElvY3RsR250dGFiUGVybWl0Rm9yZWlnbkFjY2VzczogR3JhbnRzWzExXSA9IEZGRkZGQTgw
MDI2MTREQTgNClhFTklGQUNFfElvY3RsR250dGFiUGVybWl0Rm9yZWlnbkFjY2VzczogR3Jh
bnRzWzEyXSA9IEZGRkZGQTgwMDI2MTRDRTgNClhFTklGQUNFfElvY3RsR250dGFiUGVybWl0
Rm9yZWlnbkFjY2VzczogR3JhbnRzWzEzXSA9IEZGRkZGQTgwMDI2MTRDMjgNClhFTklGQUNF
fElvY3RsR250dGFiUGVybWl0Rm9yZWlnbkFjY2VzczogR3JhbnRzWzE0XSA9IEZGRkZGQTgw
MDI2MTRCNjgNClhFTklGQUNFfElvY3RsR250dGFiUGVybWl0Rm9yZWlnbkFjY2VzczogR3Jh
bnRzWzE1XSA9IEZGRkZGQTgwMDI2MTRBQTgNClhFTklGQUNFfElvY3RsR250dGFiUGVybWl0
Rm9yZWlnbkFjY2VzczogR3JhbnRzWzBdID0gRkZGRkZBODAwMjdGQUNFOA0KWEVOSUZBQ0V8
SW9jdGxHbnR0YWJQZXJtaXRGb3JlaWduQWNjZXNzOiBHcmFudHNbMV0gPSBGRkZGRkE4MDAy
N0RCQTI4DQpYRU5JRkFDRXxJb2N0bEdudHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M6IEdyYW50
c1syXSA9IEZGRkZGQTgwMDI2MTQ5RTgNClhFTklGQUNFfElvY3RsR250dGFiUGVybWl0Rm9y
ZWlnbkFjY2VzczogR3JhbnRzWzNdID0gRkZGRkZBODAwMjYxNDkyOA0KWEVOSUZBQ0V8SW9j
dGxHbnR0YWJQZXJtaXRGb3JlaWduQWNjZXNzOiBHcmFudHNbNF0gPSBGRkZGRkE4MDAyNjE0
ODY4DQpYRU5JRkFDRXxJb2N0bEdudHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M6IEdyYW50c1s1
XSA9IEZGRkZGQTgwMDI2MTQ2MjgNClhFTklGQUNFfElvY3RsR250dGFiUGVybWl0Rm9yZWln
bkFjY2VzczogR3JhbnRzWzZdID0gRkZGRkZBODAwMjYxNDU2OA0KWEVOSUZBQ0V8SW9jdGxH
bnR0YWJQZXJtaXRGb3JlaWduQWNjZXNzOiBHcmFudHNbN10gPSBGRkZGRkE4MDAyNjE0NEE4
DQpYRU5JRkFDRXxJb2N0bEdudHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M6IEdyYW50c1s4XSA9
IEZGRkZGQTgwMDI2MTQzRTgNClhFTklGQUNFfElvY3RsR250dGFiUGVybWl0Rm9yZWlnbkFj
Y2VzczogR3JhbnRzWzldID0gRkZGRkZBODAwMjYxNDMyOA0KWEVOSUZBQ0V8SW9jdGxHbnR0
YWJQZXJtaXRGb3JlaWduQWNjZXNzOiBHcmFudHNbMTBdID0gRkZGRkZBODAwMjYxNDI2OA0K
WEVOSUZBQ0V8SW9jdGxHbnR0YWJQZXJtaXRGb3JlaWduQWNjZXNzOiBHcmFudHNbMTFdID0g
RkZGRkZBODAwMjYxNDFBOA0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJQZXJtaXRGb3JlaWduQWNj
ZXNzOiBHcmFudHNbMTJdID0gRkZGRkZBODAwMjdGOEVFOA0KWEVOSUZBQ0V8SW9jdGxHbnR0
YWJQZXJtaXRGb3JlaWduQWNjZXNzOiBHcmFudHNbMTNdID0gRkZGRkZBODAwMjdGOEUyOA0K
WEVOSUZBQ0V8SW9jdGxHbnR0YWJQZXJtaXRGb3JlaWduQWNjZXNzOiBHcmFudHNbMTRdID0g
RkZGRkZBODAwMjdGOEQ2OA0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJQZXJtaXRGb3JlaWduQWNj
ZXNzOiBHcmFudHNbMTVdID0gRkZGRkZBODAwMjdGOENBOA0KQXNzZXJ0aW9uOiAqKiogRFBD
IHdhdGNoZG9nIHRpbWVvdXQNCiAgICBUaGlzIGlzIE5PVCBhIGJyZWFrIGluIHVwZGF0ZSB0
aW1lDQogICAgVGhpcyBpcyBtb3N0IGxpa2VseSBhIEJVRyBpbiBhbiBJU1INCiAgICBQZXJm
b3JtIGEgc3RhY2sgdHJhY2UgdG8gZmluZCB0aGUgY3VscHJpdA0KICAgIFRoZSBwZXJpb2Qg
d2lsbCBiZSBkb3VibGVkIG9uIGNvbnRpbnVhdGlvbg0KICAgIFVzZSBnaCB0byBjb250aW51
ZSEhDQoNCm50ISA/PyA6OkZOT0RPQkZNOjpgc3RyaW5nJysweDRmM2E6DQpmZmZmZjgwMGAw
MjczZTllNSBjZDJjICAgICAgICAgICAgaW50ICAgICAyQ2gNCmtkPiBrDQpDaGlsZC1TUCAg
ICAgICAgICBSZXRBZGRyICAgICAgICAgICBDYWxsIFNpdGUNCmZmZmZmODgwYDAyZmExN2Iw
IGZmZmZmODAwYDAyNmYxNGI3IG50ISA/PyA6OkZOT0RPQkZNOjpgc3RyaW5nJysweDRmM2EN
CmZmZmZmODgwYDAyZmExODQwIGZmZmZmODAwYDAyNjI4ODk1IG50IUtlVXBkYXRlU3lzdGVt
VGltZSsweDM3Nw0KZmZmZmY4ODBgMDJmYTE5NDAgZmZmZmY4MDBgMDI2ZTMyMzMgaGFsIUhh
bHBIcGV0Q2xvY2tJbnRlcnJ1cHQrMHg4ZA0KZmZmZmY4ODBgMDJmYTE5NzAgZmZmZmY4MDBg
MDI2Y2U5YmUgbnQhS2lJbnRlcnJ1cHREaXNwYXRjaE5vTG9jaysweDE2Mw0KZmZmZmY4ODBg
MDJmYTFiMDAgZmZmZmY4MDBgMDI2ZGNjOWYgbnQhS3hXYWl0Rm9yU3BpbkxvY2tBbmRBY3F1
aXJlKzB4MWUNCmZmZmZmODgwYDAyZmExYjMwIGZmZmZmODgwYDAzZWNjOWI2IG50IUtlQWNx
dWlyZVNwaW5Mb2NrQXREcGNMZXZlbCsweDZmDQooSW5saW5lIEZ1bmN0aW9uKSAtLS0tLS0t
LWAtLS0tLS0tLSB4ZW52aWYhX19Db250cm9sbGVyQWNxdWlyZUxvY2srMHhhIFtjOlxxdWJl
cy1idWlsZGVyXGNocm9vdC13aW43eDY0XHF1YmVzLXNyY1x2bW0teGVuLXdpbmRvd3MtcHZk
cml2ZXJzXHhlbnZpZlxzcmNceGVudmlmXGNvbnRyb2xsZXIuYyBAIDExNF0NCmZmZmZmODgw
YDAyZmExYjgwIGZmZmZmODgwYDAzZWM0MTVmIHhlbnZpZiFDb250cm9sbGVyV2F0Y2hkb2cr
MHg0NiBbYzpccXViZXMtYnVpbGRlclxjaHJvb3Qtd2luN3g2NFxxdWJlcy1zcmNcdm1tLXhl
bi13aW5kb3dzLXB2ZHJpdmVyc1x4ZW52aWZcc3JjXHhlbnZpZlxjb250cm9sbGVyLmMgQCAz
NDNdDQpmZmZmZjg4MGAwMmZhMWJkMCBmZmZmZjgwMGAwMjk4MzMyZSB4ZW52aWYhVGhyZWFk
RnVuY3Rpb24rMHgxMyBbYzpccXViZXMtYnVpbGRlclxjaHJvb3Qtd2luN3g2NFxxdWJlcy1z
cmNcdm1tLXhlbi13aW5kb3dzLXB2ZHJpdmVyc1x4ZW52aWZcc3JjXHhlbnZpZlx0aHJlYWQu
YyBAIDExMV0NCmZmZmZmODgwYDAyZmExYzAwIGZmZmZmODAwYDAyNmQ4NjY2IG50IVBzcFN5
c3RlbVRocmVhZFN0YXJ0dXArMHg1YQ0KZmZmZmY4ODBgMDJmYTFjNDAgMDAwMDAwMDBgMDAw
MDAwMDAgbnQhS3hTdGFydFN5c3RlbVRocmVhZCsweDE2DQo=
--------------044250D30E446C7E5A766C6A
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--------------044250D30E446C7E5A766C6A--


From win-pv-devel-bounces@lists.xenproject.org Thu Jul 07 22:46:54 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 07 Jul 2016 22:46:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bLI4L-0000yk-DU; Thu, 07 Jul 2016 22:46:53 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <omeg@invisiblethingslab.com>) id 1bLI4K-0000ye-7h
 for win-pv-devel@lists.xenproject.org; Thu, 07 Jul 2016 22:46:52 +0000
Received: from [193.109.254.147] by server-7.bemta-14.messagelabs.com id
 D5/BA-09881-BDBDE775; Thu, 07 Jul 2016 22:46:51 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrDIsWRWlGSWpSXmKPExsXilM8irXvrdl2
 4wZzpIhZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y+X2n4wFa5YzVbycNYexgfHGIqYuRi4OIYFL
 jBKHjp9j7mLkBHKyJT59280IkmARaGOW2Ne9lg3CaWGW2Pz6JksXIweHhICzxNwPUhDd9xgle
 q79ZgTpFhFQlbi2/BgbiM0m4CKx/tAHsLiwgLTEyUWnWEBsXgFPiUubu5lB5rAIqEjsfqwBEh
 YViJE49mgyM0SJoMTJmU/AypkF/CWajjeyTGDkm4UkNQtJCsJWl/gz7xIzhC0v0bx1NpRtIfH
 qfzuUrSgxpfshO4RtIrFo+RXGBYzsqxg1ilOLylKLdA0t9JKKMtMzSnITM3N0DQ1N9HJTi4sT
 01NzEpOK9ZLzczcxAkO6noGBcQfjke2ehxglOZiURHkV/OvChfiS8lMqMxKLM+KLSnNSiw8xy
 nBwKEnwutwCygkWpaanVqRl5gCjCyYtwcGjJMK7BCTNW1yQmFucmQ6ROsWoy3Fh/721TEIsef
 l5qVLivMEgRQIgRRmleXAjYJF+iVFWSpiXkYGBQYinILUoN7MEVf4VozgHo5IwbyHIFJ7MvBK
 4Ta+AjmACOuKnSzXIESWJCCmpBkZm5xyVfRPvVr50PzjnaLDSncWnlgj++j7ryUelY9v29397
 eLyAoX/5dpNr26tXTbbrYNzgyNRfdkNe8sUiybsXi694mex6Yr94Q6eJUr/p3ydpHt7R5fkKF
 9s3NP0KulXAyeFvss3GeoL0rktX3i65OvHSFra/HLN1T+ns2fF9Es8uqQv79DlOKbEUZyQaaj
 EXFScCAE4Gi/DvAgAA
X-Env-Sender: omeg@invisiblethingslab.com
X-Msg-Ref: server-3.tower-27.messagelabs.com!1467931609!52223798!1
X-Originating-IP: [66.111.4.27]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTExLjQuMjcgPT4gODQ2Mw==\n
X-StarScan-Received: 
X-StarScan-Version: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 57787 invoked from network); 7 Jul 2016 22:46:50 -0000
Received: from out3-smtp.messagingengine.com (HELO
 out3-smtp.messagingengine.com) (66.111.4.27)
 by server-3.tower-27.messagelabs.com with DHE-RSA-AES256-GCM-SHA384 encrypted
 SMTP; 7 Jul 2016 22:46:50 -0000
Received: from compute2.internal (compute2.nyi.internal [10.202.2.42])
 by mailout.nyi.internal (Postfix) with ESMTP id 1EE1A2024B
 for <win-pv-devel@lists.xenproject.org>; Thu,  7 Jul 2016 18:46:49 -0400 (EDT)
Received: from frontend2 ([10.202.2.161])
 by compute2.internal (MEProxy); Thu, 07 Jul 2016 18:46:49 -0400
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=
 invisiblethingslab.com; h=content-type:date:from:message-id
 :mime-version:subject:to:x-sasl-enc:x-sasl-enc; s=mesmtp; bh=XAh
 rvLguj+M/OzJh9NzXEXmxx2M=; b=WqzUQpba4BVW6t2fwJg0tfbx2ChS8PNzDl6
 uVR9/eu+/2zgDV9vt0Gi2VeSleNZk5u1FQ3PjPduRn57ncIiOwrRVvBJnQlZvq7Y
 rMkLzySxx2rv1VmYYyb4eTQs8HZV/ExlE47hMQcuZHxNBQ/WAzNb0hxnn1Sv7YJz
 yRbsY9lM=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=
 messagingengine.com; h=content-type:date:from:message-id
 :mime-version:subject:to:x-sasl-enc:x-sasl-enc; s=smtpout; bh=XA
 hrvLguj+M/OzJh9NzXEXmxx2M=; b=bImuoDLzc5lKR5dsJZeEkNANEgZwXNIU+0
 Af4wYrqfm7yUkzOKAY1Ccl7AyxPqToMYzWu7q7US5GlS46gDPrnm2M+r03uxSkiq
 s/oMoLPhVwzmAamVR7/Yyd8DjUPadJZVsti8mlDdcPz/p3WAoJJc8r36/MQMrC6s
 W/iDzKEUQ=
X-Sasl-enc: +26Jc2ZZPjRaHmKiZnEDq+tOtK5buRsGdA3A99odSxOI 1467931608
Received: from [192.168.0.35] (89-76-38-125.dynamic.chello.pl [89.76.38.125])
 by mail.messagingengine.com (Postfix) with ESMTPA id 0FA1DCCD26
 for <win-pv-devel@lists.xenproject.org>; Thu,  7 Jul 2016 18:46:47 -0400 (EDT)
To: win-pv-devel@lists.xenproject.org
From: =?UTF-8?B?UmFmYcWCIFdvamR5xYJh?= <omeg@invisiblethingslab.com>
Message-ID: <13419f12-599d-9a31-70a6-d9d7a1618b84@invisiblethingslab.com>
Date: Fri, 8 Jul 2016 00:46:39 +0200
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101
 Thunderbird/45.1.1
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="------------044250D30E446C7E5A766C6A"
Subject: [win-pv-devel] xenvif DPC timeout
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

This is a multi-part message in MIME format.
--------------044250D30E446C7E5A766C6A
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

Hi,

I'm testing the latest version of pvdrivers in Qubes and I'm running
into a DPC timeout in xenvif at the system startup (Win 7 x64).
Apparently ControllerSetHashAlgorithm() fails and the whole frontend
fails to initialize? I attached the debug output.

We're using Xen 4.6.0-13 atm.

-- 
Rafał Wojdyła
Qubes Windows Tools developer
https://qubes-os.org/

--------------044250D30E446C7E5A766C6A
Content-Type: text/plain; charset=UTF-8;
 name="vif.txt"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="vif.txt"

WEVOfERsbEluaXRpYWxpemU6IDguMi4wICgwKSAoMDcuMDcuMjAxNikNClhFTnxBY3BpRmlu
ZFJzZHA6IDB4MDAwMDAwMDAwMDBFQTAyMA0KWEVOfFN5c3RlbUdldFN0YXJ0T3B0aW9uczog
IFRFU1RTSUdOSU5HICBOT0VYRUNVVEU9T1BUSU4gIERFQlVHICBERUJVR1BPUlQ9Q09NMSAg
QkFVRFJBVEU9MTE1MjAwDQpYRU58U3lzdGVtR2V0VmVyc2lvbkluZm9ybWF0aW9uOiBLRVJO
RUw6IDYuMSAoQlVJTEQgNzYwMSkgUExBVEZPUk0gV0lOMzJfTlQgKHg2NCkNClhFTnxTeXN0
ZW1HZXRWZXJzaW9uSW5mb3JtYXRpb246IFNQOiAxLjAgKCkNClhFTnxTeXN0ZW1HZXRWZXJz
aW9uSW5mb3JtYXRpb246IFNVSVRFUzoNClhFTnxTeXN0ZW1HZXRWZXJzaW9uSW5mb3JtYXRp
b246IC0gVEVSTUlOQUwNClhFTnxTeXN0ZW1HZXRWZXJzaW9uSW5mb3JtYXRpb246IC0gU0lO
R0xFVVNFUlRTDQpYRU58U3lzdGVtR2V0VmVyc2lvbkluZm9ybWF0aW9uOiBUWVBFOiBXT1JL
U1RBVElPTg0KWEVOfFN5c3RlbUdldE1lbW9yeUluZm9ybWF0aW9uOiBSQU5HRVswXSAwMDAw
MDAwMC4wMDAwMTAwMCAtIDAwMDAwMDAwLjAwMDlkZmZmDQpYRU58U3lzdGVtR2V0TWVtb3J5
SW5mb3JtYXRpb246IFJBTkdFWzFdIDAwMDAwMDAwLjAwMTAwMDAwIC0gMDAwMDAwMDAuN2Vm
ZmZmZmYNClhFTnxBY3BpR2V0WHNkdDogMHgwMDAwMDAwMEZDMDBDRjgwDQpYRU58U3lzdGVt
UHJvY2Vzc29ySW5mb3JtYXRpb246ID09PT0+ICgwOjApDQpYRU58U3lzdGVtUHJvY2Vzc29y
SW5mb3JtYXRpb246IE1hbnVmYWN0dXJlcjogR2VudWluZUludGVsDQpYRU58U3lzdGVtUHJv
Y2Vzc29ySW5mb3JtYXRpb246IEFQSUMgSUQ6IDAwDQpYRU58U3lzdGVtUHJvY2Vzc29ySW5m
b3JtYXRpb246IFBST0NFU1NPUiBJRDogMDANClhFTnxTeXN0ZW1Qcm9jZXNzb3JJbmZvcm1h
dGlvbjogPD09PT0gKDA6MCkNClhFTnxVbnBsdWdTZXRSZXF1ZXN0OiBESVNLUw0KWEVOfFVu
cGx1Z1NldFJlcXVlc3Q6IE5JQ1MNClhFTkZJTFR8RHJpdmVyRW50cnk6IDguMi4wICgwKSAo
MDcuMDcuMjAxNikNClhFTkZJTFR8RmRvQ3JlYXRlOiBGRkZGRkE4MDAyMkMzNDEwIChBQ1BJ
XFBOUDBBMDNcMCkNClhFTkZJTFR8UGRvQ3JlYXRlOiBGRkZGRkE4MDAyN0Q1NDUwIChQQ0lc
VkVOXzgwODYmREVWXzEyMzcmU1VCU1lTXzExMDAxQUY0JlJFVl8wMlwwMCkNClhFTkZJTFR8
UGRvQ3JlYXRlOiBGRkZGRkE4MDAyMzAxQjMwIChQQ0lcVkVOXzgwODYmREVWXzcwMDAmU1VC
U1lTXzExMDAxQUY0JlJFVl8wMFwwOCkNClhFTkZJTFR8UGRvQ3JlYXRlOiBGRkZGRkE4MDAy
MjBBNjAwIChQQ0lcVkVOXzgwODYmREVWXzcwMTAmU1VCU1lTXzAwMDE1ODUzJlJFVl8wMFww
OSkNClhFTkZJTFR8UGRvQ3JlYXRlOiBGRkZGRkE4MDAyMjBCNzcwIChQQ0lcVkVOXzgwODYm
REVWXzcwMjAmU1VCU1lTXzExMDAxQUY0JlJFVl8wMVwwQSkNClhFTkZJTFR8UGRvQ3JlYXRl
OiBGRkZGRkE4MDAyMjA5NzcwIChQQ0lcVkVOXzEyMzQmREVWXzExMTEmU1VCU1lTXzAwMDE1
ODUzJlJFVl8wMFwxMCkNClhFTkZJTFR8UGRvQ3JlYXRlOiBGRkZGRkE4MDAyNDMyNzcwIChQ
Q0lcVkVOXzU4NTMmREVWXzAwMDEmU1VCU1lTXzAwMDE1ODUzJlJFVl8wMVwxOCkNClhFTkZJ
TFR8UGRvQ3JlYXRlOiBGRkZGRkE4MDAyNTYzNzcwIChQQ0lcVkVOXzEwRUMmREVWXzgxMzkm
U1VCU1lTXzAwMDE1ODUzJlJFVl8yMFwyMCkNClhFTkZJTFR8UGRvQ3JlYXRlOiBGRkZGRkE4
MDAyMjA4NzcwIChBQ1BJXFBOUDAxMDNcMCkNClhFTkZJTFR8RHJpdmVyU2V0RmlsdGVyU3Rh
dGU6IEFDVElWRSBERVZJQ0UgUFJFU0VOVA0KWEVORklMVHxEcml2ZXJTZXRGaWx0ZXJTdGF0
ZTogUEVORElORw0KWEVORklMVHxQZG9EZXN0cm95OiBGRkZGRkE4MDAyNTYzNzcwIChQQ0lc
VkVOXzEwRUMmREVWXzgxMzkmU1VCU1lTXzAwMDE1ODUzJlJFVl8yMFwyMCkgKGRldmljZSBk
aXNhcHBlYXJlZCkNClhFTkZJTFR8RHJpdmVyU2V0RmlsdGVyU3RhdGU6IERJU0FCTEVEDQpY
RU5CVVN8RHJpdmVyRW50cnk6IDguMi4wICgwKSAoMDcuMDcuMjAxNikNClhFTkJVU3xGZG9T
ZXRGcmllbmRseU5hbWU6IFhlbiBQViBCdXMgKDAwMDEpDQpYRU5CVVN8RmRvQ3JlYXRlOiBG
RkZGRkE4MDAxODUwOTcwIChYUDAwMDEgWEVOQlVTKSBbQUNUSVZFXQ0KWEVOQlVTfEZkb0Nv
bm5lY3RJbnRlcnJ1cHQ6IEZGRkZGQTgwMDE4NjQzMzg6IFNoYXJlZCBMZXZlbFNlbnNpdGl2
ZSBDUFUgMDowIFZFQ1RPUiBhMg0KWEVOQlVTfEZkb0Nvbm5lY3RJbnRlcnJ1cHQ6IEZGRkZG
QTgwMDE4NTgzMzg6IERldmljZUV4Y2x1c2l2ZSBMYXRjaGVkIENQVSAwOjAgVkVDVE9SIGIw
DQpYRU5CVVN8RmRvQ3JlYXRlSW9TcGFjZTogMDAwMDAwMDAuZjEwMDAwMDAgLSAwMDAwMDAw
MC5mMWZmZmZmZg0KWEVOfEh2bVNldFBhcmFtOiBmYWlsMSAoYzAwMDAwMjIpDQpYRU5CVVN8
RXZ0Y2huQWJpQWNxdWlyZTogRklGTw0KWEVOQlVTfEV2dGNobkludGVycnVwdEVuYWJsZTog
Q1BVIDA6MCAoVmVjdG9yID0gMTc2KQ0KWEVOQlVTfEV2dGNobkludGVycnVwdEVuYWJsZTog
Q0FMTEJBQ0sgVklBIChWZWN0b3IgPSAyOCkNClhFTkJVU3xFdnRjaG5GaWZvRXhwYW5kOiBh
ZGRlZCBwb3J0cyBbMDAwMDAwMDAgLSAwMDAwMDNmZl0NClhFTkJVU3xGZG9TY2FuOiA9PT09
Pg0KWEVOQlVTfEZkb1N1c3BlbmQ6ID09PT0+DQpYRU5CVVN8RmRvQmFsbG9vbjogPT09PT4N
ClhFTkJVU3xQZG9DcmVhdGU6IEZGRkZGQTgwMDIyNkUzODAgKFZCRCkNClhFTkJVU3xQZG9E
dW1wUmV2aXNpb25zOiAwODAwMDAwOSAtPiBTVVNQRU5EIHYxIFNIQVJFRF9JTkZPIHYyIEVW
VENITiB2NCBERUJVRyB2MSBTVE9SRSB2MSBSQU5HRV9TRVQgdjEgQ0FDSEUgdjEgR05UVEFC
IHYxIFVOUExVRyB2MSBFTVVMQVRFRCB2MQ0KWEVOQlVTfFBkb0R1bXBSZXZpc2lvbnM6IDA4
MDAwMDBBIC0+IFNVU1BFTkQgdjEgU0hBUkVEX0lORk8gdjIgRVZUQ0hOIHY1IERFQlVHIHYx
IFNUT1JFIHYxIFJBTkdFX1NFVCB2MSBDQUNIRSB2MSBHTlRUQUIgdjEgVU5QTFVHIHYxIEVN
VUxBVEVEIHYxDQpYRU5CVVN8UGRvRHVtcFJldmlzaW9uczogMDgwMDAwMEIgLT4gU1VTUEVO
RCB2MSBTSEFSRURfSU5GTyB2MiBFVlRDSE4gdjUgREVCVUcgdjEgU1RPUkUgdjIgUkFOR0Vf
U0VUIHYxIENBQ0hFIHYxIEdOVFRBQiB2MiBVTlBMVUcgdjEgRU1VTEFURUQgdjENClhFTkJV
U3xQZG9DcmVhdGU6IEZGRkZGQTgwMDIyNkQ4NjAgKFZJRikNClhFTkJVU3xQZG9EdW1wUmV2
aXNpb25zOiAwODAwMDAwOSAtPiBTVVNQRU5EIHYxIFNIQVJFRF9JTkZPIHYyIEVWVENITiB2
NCBERUJVRyB2MSBTVE9SRSB2MSBSQU5HRV9TRVQgdjEgQ0FDSEUgdjEgR05UVEFCIHYxIFVO
UExVRyB2MSBFTVVMQVRFRCB2MQ0KWEVOQlVTfFBkb0R1bXBSZXZpc2lvbnM6IDA4MDAwMDBB
IC0+IFNVU1BFTkQgdjEgU0hBUkVEX0lORk8gdjIgRVZUQ0hOIHY1IERFQlVHIHYxIFNUT1JF
IHYxIFJBTkdFX1NFVCB2MSBDQUNIRSB2MSBHTlRUQUIgdjEgVU5QTFVHIHYxIEVNVUxBVEVE
IHYxDQpYRU5CVVN8UGRvRHVtcFJldmlzaW9uczogMDgwMDAwMEIgLT4gU1VTUEVORCB2MSBT
SEFSRURfSU5GTyB2MiBFVlRDSE4gdjUgREVCVUcgdjEgU1RPUkUgdjIgUkFOR0VfU0VUIHYx
IENBQ0hFIHYxIEdOVFRBQiB2MiBVTlBMVUcgdjEgRU1VTEFURUQgdjENClhFTkJVU3xQZG9D
cmVhdGU6IEZGRkZGQTgwMDIyNkQ1NDAgKElGQUNFKQ0KWEVOQlVTfFBkb0R1bXBSZXZpc2lv
bnM6IDA4MDAwMDA5IC0+IFNVU1BFTkQgdjEgU0hBUkVEX0lORk8gdjIgRVZUQ0hOIHY0IERF
QlVHIHYxIFNUT1JFIHYxIFJBTkdFX1NFVCB2MSBDQUNIRSB2MSBHTlRUQUIgdjEgVU5QTFVH
IHYxIEVNVUxBVEVEIHYxDQpYRU5CVVN8UGRvRHVtcFJldmlzaW9uczogMDgwMDAwMEEgLT4g
U1VTUEVORCB2MSBTSEFSRURfSU5GTyB2MiBFVlRDSE4gdjUgREVCVUcgdjEgU1RPUkUgdjEg
UkFOR0VfU0VUIHYxIENBQ0hFIHYxIEdOVFRBQiB2MSBVTlBMVUcgdjEgRU1VTEFURUQgdjEN
ClhFTkJVU3xQZG9EdW1wUmV2aXNpb25zOiAwODAwMDAwQiAtPiBTVVNQRU5EIHYxIFNIQVJF
RF9JTkZPIHYyIEVWVENITiB2NSBERUJVRyB2MSBTVE9SRSB2MiBSQU5HRV9TRVQgdjEgQ0FD
SEUgdjEgR05UVEFCIHYyIFVOUExVRyB2MSBFTVVMQVRFRCB2MQ0KWEVORklMVHxGZG9DcmVh
dGU6IEZGRkZGQTgwMDIyRTdDNTAgKFBDSUlERVxJREVDaGFubmVsXDApDQpYRU5GSUxUfEZk
b0NyZWF0ZTogRkZGRkZBODAwMjJFNzg2MCAoUENJSURFXElERUNoYW5uZWxcMSkNClhFTlZC
RHxEcml2ZXJFbnRyeTo4LjIuMC4wICg3LzcvMjAxNikNClhFTlZCRHxfX0RyaXZlclBhcnNl
UGFyYW1ldGVyS2V5OkRyaXZlclBhcmFtZXRlcnM6IA0KWEVORElTS3xEcml2ZXJFbnRyeTpY
RU5ESVNLIDguMi4wICgwKSAoMDcuMDcuMjAxNikNClhFTkRJU0t8RmRvQ3JlYXRlOkZGRkZG
QTgwMDIyRjkwNDANClhFTkJVU3xQZG9RdWVyeUludGVyZmFjZTogVkJEOiBCVVNfSU5URVJG
QUNFIChWRVJTSU9OIDEpDQpYRU5CVVN8UGRvUXVlcnlJbnRlcmZhY2U6IFZCRDogQlVTX0lO
VEVSRkFDRSAoVkVSU0lPTiAxKQ0KWEVOQlVTfERtYUR1bXBEZXZpY2VEZXNjcmlwdGlvbjog
VmVyc2lvbiA9IDANClhFTkJVU3xEbWFEdW1wRGV2aWNlRGVzY3JpcHRpb246IE1hc3RlciA9
IFRSVUUNClhFTkJVU3xEbWFEdW1wRGV2aWNlRGVzY3JpcHRpb246IFNjYXR0ZXJHYXRoZXIg
PSBUUlVFDQpYRU5CVVN8RG1hRHVtcERldmljZURlc2NyaXB0aW9uOiBEZW1hbmRNb2RlID0g
RkFMU0UNClhFTkJVU3xEbWFEdW1wRGV2aWNlRGVzY3JpcHRpb246IEF1dG9Jbml0aWFsaXpl
ID0gRkFMU0UNClhFTkJVU3xEbWFEdW1wRGV2aWNlRGVzY3JpcHRpb246IERtYTMyQml0QWRk
cmVzc2VzID0gVFJVRQ0KWEVOQlVTfERtYUR1bXBEZXZpY2VEZXNjcmlwdGlvbjogSWdub3Jl
Q291bnQgPSBGQUxTRQ0KWEVOQlVTfERtYUR1bXBEZXZpY2VEZXNjcmlwdGlvbjogRG1hNjRC
aXRBZGRyZXNzZXMgPSBUUlVFDQpYRU5CVVN8RG1hRHVtcERldmljZURlc2NyaXB0aW9uOiBC
dXNOdW1iZXIgPSAwMDAwMDAwMA0KWEVOQlVTfERtYUR1bXBEZXZpY2VEZXNjcmlwdGlvbjog
RG1hQ2hhbm5lbCA9IGZmZmZmZmZmDQpYRU5CVVN8RG1hRHVtcERldmljZURlc2NyaXB0aW9u
OiBJbnRlcmZhY2VUeXBlID0gSW50ZXJuYWwNClhFTkJVU3xEbWFEdW1wRGV2aWNlRGVzY3Jp
cHRpb246IERtYVdpZHRoID0gOEJpdHMNClhFTkJVU3xEbWFEdW1wRGV2aWNlRGVzY3JpcHRp
b246IERtYVNwZWVkID0gQ29tcGF0aWJsZQ0KWEVOQlVTfERtYUR1bXBEZXZpY2VEZXNjcmlw
dGlvbjogTWF4aW11bUxlbmd0aCA9IDAwMGIwMDAwDQpYRU5CVVN8RG1hRHVtcERldmljZURl
c2NyaXB0aW9uOiBEbWFQb3J0ID0gZmZmZmZmZmYNClhFTkJVU3xEbWFHZXRBZGFwdGVyOiBu
byBpbnRlcmNlcHRpb24NClhFTkJVU3xQZG9RdWVyeUludGVyZmFjZTogVkJEOiBTVE9SRV9J
TlRFUkZBQ0UgKFZFUlNJT04gMSkNClhFTkJVU3xQZG9RdWVyeUludGVyZmFjZTogVkJEOiBF
VlRDSE5fSU5URVJGQUNFIChWRVJTSU9OIDQpDQpYRU5CVVN8UGRvUXVlcnlJbnRlcmZhY2U6
IFZCRDogR05UVEFCX0lOVEVSRkFDRSAoVkVSU0lPTiAxKQ0KWEVOQlVTfFBkb1F1ZXJ5SW50
ZXJmYWNlOiBWQkQ6IFNVU1BFTkRfSU5URVJGQUNFIChWRVJTSU9OIDEpDQpYRU5CVVN8UGRv
UXVlcnlJbnRlcmZhY2U6IFZCRDogREVCVUdfSU5URVJGQUNFIChWRVJTSU9OIDEpDQpYRU5C
VVN8UGRvUXVlcnlJbnRlcmZhY2U6IFZCRDogVU5QTFVHX0lOVEVSRkFDRSAoVkVSU0lPTiAx
KQ0KWEVOQlVTfFBkb1F1ZXJ5SW50ZXJmYWNlOiBWQkQ6IEVNVUxBVEVEX0lOVEVSRkFDRSAo
VkVSU0lPTiAxKQ0KWEVORklMVHxQZG9RdWVyeUludGVyZmFjZTogUENJXFZFTl81ODUzJkRF
Vl8wMDAxJlNVQlNZU18wMDAxNTg1MyZSRVZfMDFcMTg6IEVNVUxBVEVEX0lOVEVSRkFDRSAo
VkVSU0lPTiAxKQ0KWEVOQlVTfFVucGx1Z1JlcXVlc3Q6IERJU0tTIChNQUtFKQ0KWEVOfFVu
cGx1Z0luY3JlbWVudFZhbHVlOiBESVNLUyAxDQpYRU5WQkR8X19GZG9TZXREZXZpY2VQb3dl
clN0YXRlOlBPV0VSIEQzIHRvIEQwDQpYRU5WQkR8RmRvRDNUb0QwOkQzLT5EMA0KWEVOVkJE
fF9fRmRvSXNQZG9VbnBsdWdnZWQ6VGFyZ2V0WzBdIDogKHZiZC81MTcxMikgRW11bGF0ZWQg
Tk9UX1BSRVNFTlQNClhFTlZCRHxQZG9DcmVhdGU6VGFyZ2V0WzBdIDogQ3JlYXRpbmcNClhF
TlZCRHxQZG9TZXREZXZpY2VQb3dlclN0YXRlOlRhcmdldFswXSA6IFBPV0VSIEQzIHRvIEQw
DQpYRU5WQkR8UGRvRDNUb0QwOlRhcmdldFswXSA6IEQzLT5EMA0KWEVOVkJEfF9fRnJvbnRl
bmRTZXRTdGF0ZTpUYXJnZXRbMF0gOiBJTklUSUFMSVpFRCAtLS0tPiBFTkFCTEVEDQpYRU5W
QkR8X19Gcm9udGVuZFNldFN0YXRlOlRhcmdldFswXSA6IGluIHN0YXRlIENMT1NFRA0KWEVO
VkJEfEZyb250ZW5kV3JpdGVVc2FnZTpUYXJnZXRbMF0gOiBOT1RfRFVNUCBOT1RfSElCRVIg
Tk9UX1BBR0UNClhFTlZCRHxQZG9SZWFkSW5xdWlyeURhdGE6VGFyZ2V0WzBdIDogRmFpbGVk
IHRvIGdldCBQYWdlODAgZGF0YQ0KWEVOVkJEfFBkb1JlYWRJbnF1aXJ5RGF0YTpUYXJnZXRb
MF0gOiBGYWlsZWQgdG8gZ2V0IFBhZ2U4MyBkYXRhDQpYRU5WQkR8UGRvVXBkYXRlSW5xdWly
eURhdGE6VGFyZ2V0WzBdIDogVkRJLVVVSUQgPSB7MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAt
MDAwMDAwMDAwMDAwfQ0KWEVOVkJEfEZyb250ZW5kUHJlcGFyZTpUYXJnZXRbMF0gOiBCYWNr
ZW5kSWQgMCAoL2xvY2FsL2RvbWFpbi8wL2JhY2tlbmQvdmJkLzczLzUxNzEyKQ0KWEVOVkJE
fEZyb250ZW5kUmVhZEZlYXR1cmVzOlRhcmdldFswXSA6IEZlYXR1cmVzOiBSRU1PVkFCTEUN
ClhFTlZCRHxfX0Zyb250ZW5kU2V0U3RhdGU6VGFyZ2V0WzBdIDogaW4gc3RhdGUgUFJFUEFS
RUQNClhFTkJVU3xSYW5nZVNldFBvcDogZmFpbDEgKGMwMDAwMDlhKQ0KWEVOQlVTfEdudHRh
YkV4cGFuZDogYWRkZWQgcmVmZXJlbmNlcyBbMDAwMDAwMjAgLSAwMDAwMDFmZl0NClhFTlZC
RHxfX1JlYWREaXNrSW5mbzpUYXJnZXRbMF0gOiA4Mzg4NjA4MCBzZWN0b3JzIG9mIDUxMiBi
eXRlcyAoNTEyKQ0KWEVOVkJEfF9fUmVhZERpc2tJbmZvOlRhcmdldFswXSA6IDQwIEdCICgw
MDAwMDAwMCkgDQpYRU5WQkR8RnJvbnRlbmRSZWFkRGlza0luZm86VGFyZ2V0WzBdIDogRmVh
dHVyZXM6IEJBUlJJRVIgRkxVU0ggDQpYRU5WQkR8RnJvbnRlbmRSZWFkRmVhdHVyZXM6VGFy
Z2V0WzBdIDogRmVhdHVyZXM6IFBFUlNJU1RFTlQgSU5ESVJFQ1QgUkVNT1ZBQkxFDQpYRU5W
QkR8RnJvbnRlbmRSZWFkRmVhdHVyZXM6VGFyZ2V0WzBdIDogSU5ESVJFQ1QgMTAwDQpYRU5W
QkR8X19Gcm9udGVuZFNldFN0YXRlOlRhcmdldFswXSA6IGluIHN0YXRlIENPTk5FQ1RFRA0K
WEVOVkJEfF9fRnJvbnRlbmRTZXRTdGF0ZTpUYXJnZXRbMF0gOiBpbiBzdGF0ZSBFTkFCTEVE
DQpYRU5WQkR8Tm90aWZpZXJEcGM6VGFyZ2V0WzBdIDogUGF1c2VkLCAwIG91dHN0YW5kaW5n
DQpYRU5WQkR8X19GZG9Jc1Bkb1VucGx1Z2dlZDpUYXJnZXRbMV0gOiAodmJkLzUxNzI4KSBF
bXVsYXRlZCBOT1RfUFJFU0VOVA0KWEVOVkJEfFBkb0NyZWF0ZTpUYXJnZXRbMV0gOiBDcmVh
dGluZw0KWEVOVkJEfFBkb1NldERldmljZVBvd2VyU3RhdGU6VGFyZ2V0WzFdIDogUE9XRVIg
RDMgdG8gRDANClhFTlZCRHxQZG9EM1RvRDA6VGFyZ2V0WzFdIDogRDMtPkQwDQpYRU5WQkR8
X19Gcm9udGVuZFNldFN0YXRlOlRhcmdldFsxXSA6IElOSVRJQUxJWkVEIC0tLS0+IEVOQUJM
RUQNClhFTlZCRHxfX0Zyb250ZW5kU2V0U3RhdGU6VGFyZ2V0WzFdIDogaW4gc3RhdGUgQ0xP
U0VEDQpYRU5WQkR8RnJvbnRlbmRXcml0ZVVzYWdlOlRhcmdldFsxXSA6IE5PVF9EVU1QIE5P
VF9ISUJFUiBOT1RfUEFHRQ0KWEVOVkJEfFBkb1JlYWRJbnF1aXJ5RGF0YTpUYXJnZXRbMV0g
OiBGYWlsZWQgdG8gZ2V0IFBhZ2U4MCBkYXRhDQpYRU5WQkR8UGRvUmVhZElucXVpcnlEYXRh
OlRhcmdldFsxXSA6IEZhaWxlZCB0byBnZXQgUGFnZTgzIGRhdGENClhFTlZCRHxQZG9VcGRh
dGVJbnF1aXJ5RGF0YTpUYXJnZXRbMV0gOiBWREktVVVJRCA9IHswMDAwMDAwMC0wMDAwLTAw
MDAtMDAwMC0wMDAwMDAwMDAwMDB9DQpYRU5WQkR8RnJvbnRlbmRQcmVwYXJlOlRhcmdldFsx
XSA6IEJhY2tlbmRJZCAwICgvbG9jYWwvZG9tYWluLzAvYmFja2VuZC92YmQvNzMvNTE3Mjgp
DQpYRU5WQkR8RnJvbnRlbmRSZWFkRmVhdHVyZXM6VGFyZ2V0WzFdIDogRmVhdHVyZXM6IFJF
TU9WQUJMRQ0KWEVOVkJEfF9fRnJvbnRlbmRTZXRTdGF0ZTpUYXJnZXRbMV0gOiBpbiBzdGF0
ZSBQUkVQQVJFRA0KWEVOVkJEfF9fUmVhZERpc2tJbmZvOlRhcmdldFsxXSA6IDE2Nzc3MjE2
IHNlY3RvcnMgb2YgNTEyIGJ5dGVzICg1MTIpDQpYRU5WQkR8X19SZWFkRGlza0luZm86VGFy
Z2V0WzFdIDogODE5MiBNQiAoMDAwMDAwMDApIA0KWEVOVkJEfEZyb250ZW5kUmVhZERpc2tJ
bmZvOlRhcmdldFsxXSA6IEZlYXR1cmVzOiBCQVJSSUVSIEZMVVNIIERJU0NBUkQgDQpYRU5W
QkR8RnJvbnRlbmRSZWFkRGlza0luZm86VGFyZ2V0WzFdIDogRElTQ0FSRCAwLzEwMDANClhF
TlZCRHxGcm9udGVuZFJlYWRGZWF0dXJlczpUYXJnZXRbMV0gOiBGZWF0dXJlczogUEVSU0lT
VEVOVCBJTkRJUkVDVCBSRU1PVkFCTEUNClhFTlZCRHxGcm9udGVuZFJlYWRGZWF0dXJlczpU
YXJnZXRbMV0gOiBJTkRJUkVDVCAxMDANClhFTlZCRHxfX0Zyb250ZW5kU2V0U3RhdGU6VGFy
Z2V0WzFdIDogaW4gc3RhdGUgQ09OTkVDVEVEDQpYRU5WQkR8X19Gcm9udGVuZFNldFN0YXRl
OlRhcmdldFsxXSA6IGluIHN0YXRlIEVOQUJMRUQNClhFTlZCRHxOb3RpZmllckRwYzpUYXJn
ZXRbMV0gOiBQYXVzZWQsIDAgb3V0c3RhbmRpbmcNClhFTlZCRHxfX0hhbmRsZVBhZ2U4MzpU
YXJnZXRbMF0gOiBJTlFVSVJZIFVzaW5nIEZha2UgUGFnZTgzIERhdGENClhFTlZCRHxfX0hh
bmRsZVBhZ2U4MDpUYXJnZXRbMF0gOiBJTlFVSVJZIFVzaW5nIEZha2UgUGFnZTgwIERhdGEN
ClhFTlZCRHxfX0hhbmRsZVBhZ2U4MzpUYXJnZXRbMV0gOiBJTlFVSVJZIFVzaW5nIEZha2Ug
UGFnZTgzIERhdGENClhFTlZCRHxfX0hhbmRsZVBhZ2U4MDpUYXJnZXRbMV0gOiBJTlFVSVJZ
IFVzaW5nIEZha2UgUGFnZTgwIERhdGENClhFTkRJU0t8UGRvQ3JlYXRlOkZGRkZGQTgwMDI0
NzQ1QzANClhFTkRJU0t8UGRvQ3JlYXRlOkZGRkZGQTgwMDI0N0E5MDANClhFTlZCRHxQZG9T
ZXREZXZpY2VPYmplY3Q6VGFyZ2V0WzBdIDogU2V0dGluZyBEZXZpY2VPYmplY3QgPSAweEZG
RkZGQTgwMDI0NzUwNjANClhFTlZCRHxQZG9TZXREZXZpY2VPYmplY3Q6VGFyZ2V0WzFdIDog
U2V0dGluZyBEZXZpY2VPYmplY3QgPSAweEZGRkZGQTgwMDI0NzU5QzANClhFTlZCRHxQZG9T
ZXREZXZpY2VQbnBTdGF0ZTpUYXJnZXRbMF0gOiBQTlAgUHJlc2VudCB0byBTdGFydGVkDQpY
RU5WQkR8UGRvU2V0RGV2aWNlUG5wU3RhdGU6VGFyZ2V0WzFdIDogUE5QIFByZXNlbnQgdG8g
U3RhcnRlZA0KWEVOVkJEfEZyb250ZW5kV3JpdGVVc2FnZTpUYXJnZXRbMF0gOiBEVU1QIE5P
VF9ISUJFUiBOT1RfUEFHRQ0KWEVOQlVTfEZkb1F1ZXJ5UG5wRGV2aWNlU3RhdGU6IFhQMDAw
MSBYRU5CVVM6IG5vdCBkaXNhYmxlYWJsZQ0KWEVOVklGfERyaXZlckVudHJ5OiBYRU5WSUYg
OC4yLjAgKDApICgwNy4wNy4yMDE2KQ0KWEVOQlVTfFBkb1F1ZXJ5SW50ZXJmYWNlOiBWSUY6
IEJVU19JTlRFUkZBQ0UgKFZFUlNJT04gMSkNClhFTkJVU3xQZG9RdWVyeUludGVyZmFjZTog
VklGOiBERUJVR19JTlRFUkZBQ0UgKFZFUlNJT04gMSkNClhFTkJVU3xQZG9RdWVyeUludGVy
ZmFjZTogVklGOiBTVVNQRU5EX0lOVEVSRkFDRSAoVkVSU0lPTiAxKQ0KWEVOQlVTfFBkb1F1
ZXJ5SW50ZXJmYWNlOiBWSUY6IEVWVENITl9JTlRFUkZBQ0UgKFZFUlNJT04gNSkNClhFTkJV
U3xQZG9RdWVyeUludGVyZmFjZTogVklGOiBTVE9SRV9JTlRFUkZBQ0UgKFZFUlNJT04gMikN
ClhFTkJVU3xQZG9RdWVyeUludGVyZmFjZTogVklGOiBSQU5HRV9TRVRfSU5URVJGQUNFIChW
RVJTSU9OIDEpDQpYRU5CVVN8UGRvUXVlcnlJbnRlcmZhY2U6IFZJRjogQ0FDSEVfSU5URVJG
QUNFIChWRVJTSU9OIDEpDQpYRU5CVVN8UGRvUXVlcnlJbnRlcmZhY2U6IFZJRjogR05UVEFC
X0lOVEVSRkFDRSAoVkVSU0lPTiAxKQ0KWEVOQlVTfFBkb1F1ZXJ5SW50ZXJmYWNlOiBWSUY6
IFVOUExVR19JTlRFUkZBQ0UgKFZFUlNJT04gMSkNClhFTlZJRnxGZG9DcmVhdGU6IEZGRkZG
QTgwMDQ5ODc2MjAgKFhQMDAwMSBYRU5WSUYpDQpYRU5JRkFDRXxEcml2ZXJFbnRyeTogOC4y
LjAuMCAoNy83LzIwMTYpDQpYRU5JRkFDRXxUaHJlYWRDcmVhdGU6IENyZWF0ZSB0aHJlYWQg
RkZGRkY4ODAwM0VFNkNGQyBGRkZGRkE4MDAyNkQ2MDkwDQpYRU5JRkFDRXxUaHJlYWRDcmVh
dGU6IENyZWF0ZSB0aHJlYWQgRkZGRkY4ODAwM0VFNUMzOCBGRkZGRkE4MDAyNkQ2MEEwDQpY
RU5CVVN8UGRvUXVlcnlJbnRlcmZhY2U6IElGQUNFOiBTVVNQRU5EX0lOVEVSRkFDRSAoVkVS
U0lPTiAxKQ0KWEVOQlVTfFBkb1F1ZXJ5SW50ZXJmYWNlOiBJRkFDRTogU0hBUkVEX0lORk9f
SU5URVJGQUNFIChWRVJTSU9OIDIpDQpYRU5CVVN8UGRvUXVlcnlJbnRlcmZhY2U6IElGQUNF
OiBTVE9SRV9JTlRFUkZBQ0UgKFZFUlNJT04gMikNClhFTkJVU3xQZG9RdWVyeUludGVyZmFj
ZTogSUZBQ0U6IEVWVENITl9JTlRFUkZBQ0UgKFZFUlNJT04gNSkNClhFTkJVU3xQZG9RdWVy
eUludGVyZmFjZTogSUZBQ0U6IEdOVFRBQl9JTlRFUkZBQ0UgKFZFUlNJT04gMikNClhFTklG
QUNFfEZkb0luaXRpYWxpc2VYU1JlZ2lzdHJ5RW50cmllczogbm8gc3VjaCB4ZW5zdG9yZSBr
ZXkNClhFTklGQUNFfEZkb0luaXRpYWxpc2VYU1JlZ2lzdHJ5RW50cmllczogRmFpbGVkIHRv
IGluaXRpYWxpc2UgcmVnaXN0cnkgKGMwMDAwMDIyKQ0KWEVOSUZBQ0V8VGhyZWFkQ3JlYXRl
OiBDcmVhdGUgdGhyZWFkIEZGRkZGODgwMDNFRTY3RUMgRkZGRkZBODAwMjZENjQzMA0KWEVO
SUZBQ0V8RmRvQ3JlYXRlOiBGRkZGRkE4MDAzNzMyRDQwIChJRkFDRSkNCisrKysrPldza0tu
ckluaXQuDQpYRU5WSUZ8X19QZG9TZXRQZXJtYW5lbnRBZGRyZXNzOiAwOiAwMDoxNjozZTo1
ZTo2YzowYg0KWEVOVklGfF9fUGRvU2V0Q29udGFpbmVySUQ6IDAgezgwYWRhNmJhLWY2OTQt
NWRhYS04YTA2LTViYmJlYjU5MGZhYX0NClhFTlZJRnxGcm9udGVuZFNldE1heFF1ZXVlczog
ZGV2aWNlL3ZpZi8wOiAxDQpYRU5WSUZ8UGRvQ3JlYXRlOiBGRkZGRkE4MDAyNzcwMTkwICgw
KQ0KWEVOVklGfFBkb0R1bXBSZXZpc2lvbnM6IDA4MDAwMDAyIC0+IENBQ0hFIHYxIFZJRiB2
MiBTVE9SRSB2MCBTVVNQRU5EIHYwDQpYRU5WSUZ8UGRvRHVtcFJldmlzaW9uczogMDgwMDAw
MDMgLT4gQ0FDSEUgdjEgVklGIHYzIFNUT1JFIHYwIFNVU1BFTkQgdjANClhFTlZJRnxQZG9E
dW1wUmV2aXNpb25zOiAwODAwMDAwNCAtPiBDQUNIRSB2MSBWSUYgdjMgU1RPUkUgdjIgU1VT
UEVORCB2MQ0KWEVOVklGfFBkb0R1bXBSZXZpc2lvbnM6IDA4MDAwMDA2IC0+IENBQ0hFIHYx
IFZJRiB2NCBTVE9SRSB2MiBTVVNQRU5EIHYxDQpYRU5WSUZ8UGRvRHVtcFJldmlzaW9uczog
MDgwMDAwMDkgLT4gQ0FDSEUgdjEgVklGIHY1IFNUT1JFIHYyIFNVU1BFTkQgdjENClhFTlZJ
RnxQZG9EdW1wUmV2aXNpb25zOiAwODAwMDAwQiAtPiBDQUNIRSB2MSBWSUYgdjYgU1RPUkUg
djIgU1VTUEVORCB2MQ0KWEVOTkVUfERyaXZlckVudHJ5OiBYRU5ORVQgOC4yLjAgKDApICgw
Ny4wNy4yMDE2KQ0KWEVOSUZBQ0V8V21pUmVnaXN0ZXI6IERSVjogWGVuSWZhY2UgV01JIElu
aXRpYWxpc2F0aW9uDQpYRU5CVVN8VW5wbHVnUmVxdWVzdDogTklDUyAoTUFLRSkNClhFTnxV
bnBsdWdJbmNyZW1lbnRWYWx1ZTogTklDUyAxDQpYRU5WSUZ8UGRvU2V0RnJpZW5kbHlOYW1l
OiBYZW4gUFYgTmV0d29yayBEZXZpY2UgIzANClhFTlZJRnxfX01hY1NldFBlcm1hbmVudEFk
ZHJlc3M6IGF0dHIvdmlmLzA6IDAwOjE2OjNFOjVFOjZDOjBCDQpYRU5WSUZ8X19NYWNTZXRD
dXJyZW50QWRkcmVzczogYXR0ci92aWYvMDogMDA6MTY6M0U6NUU6NkM6MEINClhFTlZJRnxG
cm9udGVuZFNldE51bVF1ZXVlczogZGV2aWNlL3ZpZi8wOiAxDQpYRU5WSUZ8RnJvbnRlbmRT
ZXRTcGxpdDogZGV2aWNlL3ZpZi8wOiBUUlVFDQpYRU5ORVR8TWluaXBvcnRJbml0aWFsaXpl
RXg6ID09PT0+DQpYRU5WSUZ8UGRvUXVlcnlJbnRlcmZhY2U6IDA6IFZJRl9JTlRFUkZBQ0Ug
KFZFUlNJT04gNikNClhFTlZJRnxQZG9RdWVyeUludGVyZmFjZTogMDogU1RPUkVfSU5URVJG
QUNFIChWRVJTSU9OIDIpDQpYRU5CVVN8UGRvUXVlcnlJbnRlcmZhY2U6IFZJRjogU1RPUkVf
SU5URVJGQUNFIChWRVJTSU9OIDIpDQpYRU5WSUZ8UGRvUXVlcnlJbnRlcmZhY2U6IDA6IFNV
U1BFTkRfSU5URVJGQUNFIChWRVJTSU9OIDEpDQpYRU5CVVN8UGRvUXVlcnlJbnRlcmZhY2U6
IFZJRjogU1VTUEVORF9JTlRFUkZBQ0UgKFZFUlNJT04gMSkNClhFTk5FVHxBZGFwdGVyR2V0
QWR2YW5jZWRTZXR0aW5nczogKklQQ2hlY2tzdW1PZmZsb2FkSVB2NCA9IDMNClhFTk5FVHxB
ZGFwdGVyR2V0QWR2YW5jZWRTZXR0aW5nczogKlRDUENoZWNrc3VtT2ZmbG9hZElQdjQgPSAz
DQpYRU5ORVR8QWRhcHRlckdldEFkdmFuY2VkU2V0dGluZ3M6ICpVRFBDaGVja3N1bU9mZmxv
YWRJUHY0ID0gMw0KWEVOTkVUfEFkYXB0ZXJHZXRBZHZhbmNlZFNldHRpbmdzOiAqVENQQ2hl
Y2tzdW1PZmZsb2FkSVB2NiA9IDMNClhFTk5FVHxBZGFwdGVyR2V0QWR2YW5jZWRTZXR0aW5n
czogKlVEUENoZWNrc3VtT2ZmbG9hZElQdjYgPSAzDQpYRU5ORVR8QWRhcHRlckdldEFkdmFu
Y2VkU2V0dGluZ3M6ICpMU092MklQdjQgPSAxDQpYRU5ORVR8QWRhcHRlckdldEFkdmFuY2Vk
U2V0dGluZ3M6ICpMU092MklQdjYgPSAxDQpYRU5ORVR8QWRhcHRlckdldEFkdmFuY2VkU2V0
dGluZ3M6IExST0lQdjQgPSAxDQpYRU5ORVR8QWRhcHRlckdldEFkdmFuY2VkU2V0dGluZ3M6
IExST0lQdjYgPSAxDQpYRU5ORVR8QWRhcHRlckdldEFkdmFuY2VkU2V0dGluZ3M6IE5lZWRD
aGVja3N1bVZhbHVlID0gMQ0KWEVOTkVUfEFkYXB0ZXJHZXRBZHZhbmNlZFNldHRpbmdzOiAq
UlNTID0gMQ0KWEVOVklGfEZyb250ZW5kU2V0SGFzaEFsZ29yaXRobTogZGV2aWNlL3ZpZi8w
OiBUT0VQTElUWg0KWEVOVklGfENvbnRyb2xsZXJTZXRIYXNoQWxnb3JpdGhtOiBmYWlsMSAo
YzAwMDAwYmIpDQpYRU5WSUZ8X19Gcm9udGVuZFVwZGF0ZUhhc2g6IGZhaWwxIChjMDAwMDBi
YikNClhFTlZJRnxSZWNlaXZlclNldEhhc2hBbGdvcml0aG06IGZhaWwyDQpYRU5WSUZ8UmVj
ZWl2ZXJTZXRIYXNoQWxnb3JpdGhtOiBmYWlsMSAoYzAwMDAwYmIpDQpYRU5ORVR8QWRhcHRl
clNldE9mZmxvYWRBdHRyaWJ1dGVzOiBTdXBwb3J0ZWQNClhFTk5FVHxBZGFwdGVyU2V0T2Zm
bG9hZEF0dHJpYnV0ZXM6IENoZWNrc3VtLklQdjRSZWNlaXZlLklwQ2hlY2tzdW0gT04NClhF
Tk5FVHxBZGFwdGVyU2V0T2ZmbG9hZEF0dHJpYnV0ZXM6IENoZWNrc3VtLklQdjRSZWNlaXZl
LlRjcENoZWNrc3VtIE9ODQpYRU5ORVR8QWRhcHRlclNldE9mZmxvYWRBdHRyaWJ1dGVzOiBD
aGVja3N1bS5JUHY0UmVjZWl2ZS5VZHBDaGVja3N1bSBPTg0KWEVOTkVUfEFkYXB0ZXJTZXRP
ZmZsb2FkQXR0cmlidXRlczogQ2hlY2tzdW0uSVB2NlJlY2VpdmUuVGNwQ2hlY2tzdW0gT04N
ClhFTk5FVHxBZGFwdGVyU2V0T2ZmbG9hZEF0dHJpYnV0ZXM6IENoZWNrc3VtLklQdjZSZWNl
aXZlLlVkcENoZWNrc3VtIE9ODQpYRU5ORVR8QWRhcHRlclNldE9mZmxvYWRBdHRyaWJ1dGVz
OiBDaGVja3N1bS5JUHY0VHJhbnNtaXQuSXBDaGVja3N1bSBPTg0KWEVOTkVUfEFkYXB0ZXJT
ZXRPZmZsb2FkQXR0cmlidXRlczogQ2hlY2tzdW0uSVB2NFRyYW5zbWl0LlRjcENoZWNrc3Vt
IE9ODQpYRU5ORVR8QWRhcHRlclNldE9mZmxvYWRBdHRyaWJ1dGVzOiBDaGVja3N1bS5JUHY0
VHJhbnNtaXQuVWRwQ2hlY2tzdW0gT04NClhFTk5FVHxBZGFwdGVyU2V0T2ZmbG9hZEF0dHJp
YnV0ZXM6IENoZWNrc3VtLklQdjZUcmFuc21pdC5UY3BDaGVja3N1bSBPTg0KWEVOTkVUfEFk
YXB0ZXJTZXRPZmZsb2FkQXR0cmlidXRlczogQ2hlY2tzdW0uSVB2NlRyYW5zbWl0LlVkcENo
ZWNrc3VtIE9ODQpYRU5ORVR8QWRhcHRlclNldE9mZmxvYWRBdHRyaWJ1dGVzOiBMc29WMi5J
UHY0Lk1heE9mZkxvYWRTaXplID0gNjUyMDENClhFTk5FVHxBZGFwdGVyU2V0T2ZmbG9hZEF0
dHJpYnV0ZXM6IExzb1YyLklQdjYuTWF4T2ZmTG9hZFNpemUgPSA2NTIwMQ0KWEVOTkVUfEFk
YXB0ZXJTZXRPZmZsb2FkQXR0cmlidXRlczogRGVmYXVsdA0KWEVOTkVUfEFkYXB0ZXJTZXRP
ZmZsb2FkQXR0cmlidXRlczogQ2hlY2tzdW0uSVB2NFJlY2VpdmUuSXBDaGVja3N1bSBPTg0K
WEVOTkVUfEFkYXB0ZXJTZXRPZmZsb2FkQXR0cmlidXRlczogQ2hlY2tzdW0uSVB2NFJlY2Vp
dmUuVGNwQ2hlY2tzdW0gT04NClhFTk5FVHxBZGFwdGVyU2V0T2ZmbG9hZEF0dHJpYnV0ZXM6
IENoZWNrc3VtLklQdjRSZWNlaXZlLlVkcENoZWNrc3VtIE9ODQpYRU5ORVR8QWRhcHRlclNl
dE9mZmxvYWRBdHRyaWJ1dGVzOiBDaGVja3N1bS5JUHY2UmVjZWl2ZS5UY3BDaGVja3N1bSBP
Tg0KWEVOTkVUfEFkYXB0ZXJTZXRPZmZsb2FkQXR0cmlidXRlczogQ2hlY2tzdW0uSVB2NlJl
Y2VpdmUuVWRwQ2hlY2tzdW0gT04NClhFTk5FVHxBZGFwdGVyU2V0T2ZmbG9hZEF0dHJpYnV0
ZXM6IENoZWNrc3VtLklQdjRUcmFuc21pdC5JcENoZWNrc3VtIE9ODQpYRU5ORVR8QWRhcHRl
clNldE9mZmxvYWRBdHRyaWJ1dGVzOiBDaGVja3N1bS5JUHY0VHJhbnNtaXQuVGNwQ2hlY2tz
dW0gT04NClhFTk5FVHxBZGFwdGVyU2V0T2ZmbG9hZEF0dHJpYnV0ZXM6IENoZWNrc3VtLklQ
djRUcmFuc21pdC5VZHBDaGVja3N1bSBPTg0KWEVOTkVUfEFkYXB0ZXJTZXRPZmZsb2FkQXR0
cmlidXRlczogQ2hlY2tzdW0uSVB2NlRyYW5zbWl0LlRjcENoZWNrc3VtIE9ODQpYRU5ORVR8
QWRhcHRlclNldE9mZmxvYWRBdHRyaWJ1dGVzOiBDaGVja3N1bS5JUHY2VHJhbnNtaXQuVWRw
Q2hlY2tzdW0gT04NClhFTk5FVHxBZGFwdGVyU2V0T2ZmbG9hZEF0dHJpYnV0ZXM6IExzb1Yy
LklQdjQuTWF4T2ZmTG9hZFNpemUgPSA2NTIwMQ0KWEVOTkVUfEFkYXB0ZXJTZXRPZmZsb2Fk
QXR0cmlidXRlczogTHNvVjIuSVB2Ni5NYXhPZmZMb2FkU2l6ZSA9IDY1MjAxDQpYRU5WSUZ8
UGRvUXVlcnlJbnRlcmZhY2U6IDA6IEJVU19JTlRFUkZBQ0UgKFZFUlNJT04gMSkNClhFTkJV
U3xEbWFEdW1wRGV2aWNlRGVzY3JpcHRpb246IFZlcnNpb24gPSAyDQpYRU5CVVN8RG1hRHVt
cERldmljZURlc2NyaXB0aW9uOiBNYXN0ZXIgPSBUUlVFDQpYRU5CVVN8RG1hRHVtcERldmlj
ZURlc2NyaXB0aW9uOiBTY2F0dGVyR2F0aGVyID0gVFJVRQ0KWEVOQlVTfERtYUR1bXBEZXZp
Y2VEZXNjcmlwdGlvbjogRGVtYW5kTW9kZSA9IEZBTFNFDQpYRU5CVVN8RG1hRHVtcERldmlj
ZURlc2NyaXB0aW9uOiBBdXRvSW5pdGlhbGl6ZSA9IEZBTFNFDQpYRU5CVVN8RG1hRHVtcERl
dmljZURlc2NyaXB0aW9uOiBEbWEzMkJpdEFkZHJlc3NlcyA9IEZBTFNFDQpYRU5CVVN8RG1h
RHVtcERldmljZURlc2NyaXB0aW9uOiBJZ25vcmVDb3VudCA9IEZBTFNFDQpYRU5CVVN8RG1h
RHVtcERldmljZURlc2NyaXB0aW9uOiBEbWE2NEJpdEFkZHJlc3NlcyA9IFRSVUUNClhFTkJV
U3xEbWFEdW1wRGV2aWNlRGVzY3JpcHRpb246IEJ1c051bWJlciA9IDAwMDAwMDAwDQpYRU5C
VVN8RG1hRHVtcERldmljZURlc2NyaXB0aW9uOiBEbWFDaGFubmVsID0gMDAwMDAwMDANClhF
TkJVU3xEbWFEdW1wRGV2aWNlRGVzY3JpcHRpb246IEludGVyZmFjZVR5cGUgPSBJbnRlcm5h
bA0KWEVOQlVTfERtYUR1bXBEZXZpY2VEZXNjcmlwdGlvbjogRG1hV2lkdGggPSA4Qml0cw0K
WEVOQlVTfERtYUR1bXBEZXZpY2VEZXNjcmlwdGlvbjogRG1hU3BlZWQgPSBDb21wYXRpYmxl
DQpYRU5CVVN8RG1hRHVtcERldmljZURlc2NyaXB0aW9uOiBNYXhpbXVtTGVuZ3RoID0gMDAw
MjAwMDANClhFTkJVU3xEbWFEdW1wRGV2aWNlRGVzY3JpcHRpb246IERtYVBvcnQgPSAwMDAw
MDAwMA0KWEVOQlVTfERtYUdldEFkYXB0ZXI6IG5vIGludGVyY2VwdGlvbg0KWEVOTkVUfE1p
bmlwb3J0SW5pdGlhbGl6ZUV4OiA8PT09PQ0KWEVOTkVUfE1pbmlwb3J0UmVzdGFydDogPT09
PT4NClhFTlZJRnxDb250cm9sbGVyU2V0SGFzaEFsZ29yaXRobTogZmFpbDEgKGMwMDAwMGJi
KQ0KWEVOVklGfF9fRnJvbnRlbmRVcGRhdGVIYXNoOiBmYWlsMSAoYzAwMDAwYmIpDQpYRU5W
SUZ8RnJvbnRlbmRFbmFibGU6IGZhaWw0DQpYRU5WSUZ8RnJvbnRlbmRFbmFibGU6IGZhaWwz
DQpYRU5WSUZ8RnJvbnRlbmRFbmFibGU6IGZhaWwyDQpYRU5WSUZ8RnJvbnRlbmRFbmFibGU6
IGZhaWwxIChjMDAwMDBiYikNClhFTlZJRnxWaWZFbmFibGU6IGZhaWwyDQpYRU5WSUZ8Vmlm
RW5hYmxlOiBmYWlsMSAoYzAwMDAwMDEpDQpYRU5ORVR8TWluaXBvcnRSZXN0YXJ0OiA8PT09
PQ0KWEVOTkVUfE1pbmlwb3J0SGFsdEV4OiA9PT09Pg0KWEVOTkVUfE1pbmlwb3J0SGFsdEV4
OiA8PT09PQ0KWEVOQlVTfFVucGx1Z1JlcXVlc3Q6IE5JQ1MgKFJFVk9LRSkNClhFTnxVbnBs
dWdEZWNyZW1lbnRWYWx1ZTogTklDUyAwDQpYRU5ORVR8RHJpdmVyVW5sb2FkOiBYRU5ORVQg
OC4yLjAgKDApICgwNy4wNy4yMDE2KQ0KWEVOVkJEfEZyb250ZW5kV3JpdGVVc2FnZTpUYXJn
ZXRbMF0gOiBOT1RfRFVNUCBOT1RfSElCRVIgTk9UX1BBR0UNClhFTkJVU3xSYW5nZVNldFBv
cDogZmFpbDEgKGMwMDAwMDlhKQ0KWEVOQlVTfEdudHRhYkV4cGFuZDogYWRkZWQgcmVmZXJl
bmNlcyBbMDAwMDAyMDAgLSAwMDAwMDNmZl0NClhFTkJVU3xSYW5nZVNldFBvcDogZmFpbDEg
KGMwMDAwMDlhKQ0KWEVOQlVTfEdudHRhYkV4cGFuZDogYWRkZWQgcmVmZXJlbmNlcyBbMDAw
MDA0MDAgLSAwMDAwMDVmZl0NClhFTkJVU3xSYW5nZVNldFBvcDogZmFpbDEgKGMwMDAwMDlh
KQ0KWEVOQlVTfEdudHRhYkV4cGFuZDogYWRkZWQgcmVmZXJlbmNlcyBbMDAwMDA2MDAgLSAw
MDAwMDdmZl0NClhFTkJVU3xSYW5nZVNldFBvcDogZmFpbDEgKGMwMDAwMDlhKQ0KWEVOQlVT
fEdudHRhYkV4cGFuZDogYWRkZWQgcmVmZXJlbmNlcyBbMDAwMDA4MDAgLSAwMDAwMDlmZl0N
ClhFTlZCRHxGcm9udGVuZFdyaXRlVXNhZ2U6VGFyZ2V0WzBdIDogTk9UX0RVTVAgTk9UX0hJ
QkVSIFBBR0UNClhFTkJVU3xGZG9RdWVyeVBucERldmljZVN0YXRlOiBYUDAwMDEgWEVOQlVT
OiBub3QgZGlzYWJsZWFibGUNClhFTlZCRHxGcm9udGVuZFdyaXRlVXNhZ2U6VGFyZ2V0WzBd
IDogRFVNUCBOT1RfSElCRVIgUEFHRQ0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJNYXBGb3JlaWdu
UGFnZXM6ID4gUmVmIDEyMQ0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJNYXBGb3JlaWduUGFnZXM6
ID4gUmVmIDU0DQpYRU5JRkFDRXxJb2N0bEdudHRhYk1hcEZvcmVpZ25QYWdlczogPiBSZWYg
MTA4DQpYRU5JRkFDRXxJb2N0bEdudHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M6IEdyYW50c1sw
XSA9IEZGRkZGQTgwMDI3REFFQTgNClhFTklGQUNFfElvY3RsR250dGFiUGVybWl0Rm9yZWln
bkFjY2VzczogR3JhbnRzWzBdID0gRkZGRkZBODAwMjdEQjQyOA0KWEVOSUZBQ0V8SW9jdGxH
bnR0YWJQZXJtaXRGb3JlaWduQWNjZXNzOiBHcmFudHNbMV0gPSBGRkZGRkE4MDAyN0RCMkE4
DQpYRU5JRkFDRXxJb2N0bEdudHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M6IEdyYW50c1syXSA9
IEZGRkZGQTgwMDI3RDdERTgNClhFTklGQUNFfElvY3RsR250dGFiUGVybWl0Rm9yZWlnbkFj
Y2VzczogR3JhbnRzWzNdID0gRkZGRkZBODAwMjdEN0FFOA0KWEVOSUZBQ0V8SW9jdGxHbnR0
YWJQZXJtaXRGb3JlaWduQWNjZXNzOiBHcmFudHNbNF0gPSBGRkZGRkE4MDAyN0RBQkE4DQpY
RU5JRkFDRXxJb2N0bEdudHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M6IEdyYW50c1s1XSA9IEZG
RkZGQTgwMDI3REFBRTgNClhFTklGQUNFfElvY3RsR250dGFiUGVybWl0Rm9yZWlnbkFjY2Vz
czogR3JhbnRzWzZdID0gRkZGRkZBODAwMjdEQUEyOA0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJQ
ZXJtaXRGb3JlaWduQWNjZXNzOiBHcmFudHNbN10gPSBGRkZGRkE4MDAyN0RBOTY4DQpYRU5J
RkFDRXxJb2N0bEdudHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M6IEdyYW50c1s4XSA9IEZGRkZG
QTgwMDI3REE4QTgNClhFTklGQUNFfElvY3RsR250dGFiUGVybWl0Rm9yZWlnbkFjY2Vzczog
R3JhbnRzWzldID0gRkZGRkZBODAwMjdEQTdFOA0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJQZXJt
aXRGb3JlaWduQWNjZXNzOiBHcmFudHNbMTBdID0gRkZGRkZBODAwMjdEQTY2OA0KWEVOSUZB
Q0V8SW9jdGxHbnR0YWJQZXJtaXRGb3JlaWduQWNjZXNzOiBHcmFudHNbMTFdID0gRkZGRkZB
ODAwMjdEQTVBOA0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJQZXJtaXRGb3JlaWduQWNjZXNzOiBH
cmFudHNbMTJdID0gRkZGRkZBODAwMjdEQTRFOA0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJQZXJt
aXRGb3JlaWduQWNjZXNzOiBHcmFudHNbMTNdID0gRkZGRkZBODAwMjdEQTM2OA0KWEVOSUZB
Q0V8SW9jdGxHbnR0YWJQZXJtaXRGb3JlaWduQWNjZXNzOiBHcmFudHNbMTRdID0gRkZGRkZB
ODAwMjdEQTJBOA0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJQZXJtaXRGb3JlaWduQWNjZXNzOiBH
cmFudHNbMTVdID0gRkZGRkZBODAwMjdEREZFOA0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJQZXJt
aXRGb3JlaWduQWNjZXNzOiBHcmFudHNbMF0gPSBGRkZGRkE4MDAyN0RERjI4DQpYRU5JRkFD
RXxJb2N0bEdudHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M6IEdyYW50c1sxXSA9IEZGRkZGQTgw
MDI3RERFNjgNClhFTklGQUNFfElvY3RsR250dGFiUGVybWl0Rm9yZWlnbkFjY2VzczogR3Jh
bnRzWzJdID0gRkZGRkZBODAwMjdERERBOA0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJQZXJtaXRG
b3JlaWduQWNjZXNzOiBHcmFudHNbM10gPSBGRkZGRkE4MDAyN0REQ0U4DQpYRU5JRkFDRXxJ
b2N0bEdudHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M6IEdyYW50c1s0XSA9IEZGRkZGQTgwMDI3
RERDMjgNClhFTklGQUNFfElvY3RsR250dGFiUGVybWl0Rm9yZWlnbkFjY2VzczogR3JhbnRz
WzVdID0gRkZGRkZBODAwMjdEQTcyOA0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJQZXJtaXRGb3Jl
aWduQWNjZXNzOiBHcmFudHNbNl0gPSBGRkZGRkE4MDAyN0RCNzI4DQpYRU5JRkFDRXxJb2N0
bEdudHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M6IEdyYW50c1s3XSA9IEZGRkZGQTgwMDI3RERC
NjgNClhFTklGQUNFfElvY3RsR250dGFiUGVybWl0Rm9yZWlnbkFjY2VzczogR3JhbnRzWzhd
ID0gRkZGRkZBODAwMjdEREFBOA0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJQZXJtaXRGb3JlaWdu
QWNjZXNzOiBHcmFudHNbOV0gPSBGRkZGRkE4MDAyN0REOUU4DQpYRU5JRkFDRXxJb2N0bEdu
dHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M6IEdyYW50c1sxMF0gPSBGRkZGRkE4MDAyN0REOTI4
DQpYRU5JRkFDRXxJb2N0bEdudHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M6IEdyYW50c1sxMV0g
PSBGRkZGRkE4MDAyN0REODY4DQpYRU5JRkFDRXxJb2N0bEdudHRhYlBlcm1pdEZvcmVpZ25B
Y2Nlc3M6IEdyYW50c1sxMl0gPSBGRkZGRkE4MDAyN0REN0E4DQpYRU5JRkFDRXxJb2N0bEdu
dHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M6IEdyYW50c1sxM10gPSBGRkZGRkE4MDAyN0RENkU4
DQpYRU5JRkFDRXxJb2N0bEdudHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M6IEdyYW50c1sxNF0g
PSBGRkZGRkE4MDAyN0RENjI4DQpYRU5JRkFDRXxJb2N0bEdudHRhYlBlcm1pdEZvcmVpZ25B
Y2Nlc3M6IEdyYW50c1sxNV0gPSBGRkZGRkE4MDAyN0RENTY4DQpYRU5JRkFDRXxJb2N0bEdu
dHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M6IEdyYW50c1swXSA9IEZGRkZGQTgwMDI3Rjg2QTgN
ClhFTklGQUNFfElvY3RsR250dGFiUGVybWl0Rm9yZWlnbkFjY2VzczogR3JhbnRzWzBdID0g
RkZGRkZBODAwMjdEQjk2OA0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJQZXJtaXRGb3JlaWduQWNj
ZXNzOiBHcmFudHNbMV0gPSBGRkZGRkE4MDAyN0Y4NzY4DQpYRU5JRkFDRXxJb2N0bEdudHRh
YlBlcm1pdEZvcmVpZ25BY2Nlc3M6IEdyYW50c1syXSA9IEZGRkZGQTgwMDI3Rjg4MjgNClhF
TklGQUNFfElvY3RsR250dGFiUGVybWl0Rm9yZWlnbkFjY2VzczogR3JhbnRzWzNdID0gRkZG
RkZBODAwMjdGQUZFOA0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJQZXJtaXRGb3JlaWduQWNjZXNz
OiBHcmFudHNbMF0gPSBGRkZGRkE4MDAyN0REMUE4DQpYRU5JRkFDRXxJb2N0bEdudHRhYlBl
cm1pdEZvcmVpZ25BY2Nlc3M6IEdyYW50c1sxXSA9IEZGRkZGQTgwMDI3RjgyMjgNClhFTklG
QUNFfElvY3RsR250dGFiUGVybWl0Rm9yZWlnbkFjY2VzczogR3JhbnRzWzJdID0gRkZGRkZB
ODAwMjdEQjhBOA0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJQZXJtaXRGb3JlaWduQWNjZXNzOiBH
cmFudHNbM10gPSBGRkZGRkE4MDAyN0ZBRjI4DQpYRU5JRkFDRXxJb2N0bEdudHRhYk1hcEZv
cmVpZ25QYWdlczogPiBSZWYgOTMNClhFTklGQUNFfElvY3RsR250dGFiTWFwRm9yZWlnblBh
Z2VzOiA+IFJlZiA5Mg0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJNYXBGb3JlaWduUGFnZXM6ID4g
UmVmIDM1DQpYRU5JRkFDRXxJb2N0bEdudHRhYk1hcEZvcmVpZ25QYWdlczogPiBSZWYgNTUN
ClhFTklGQUNFfElvY3RsR250dGFiTWFwRm9yZWlnblBhZ2VzOiA+IFJlZiA1OA0KWEVOSUZB
Q0V8SW9jdGxHbnR0YWJNYXBGb3JlaWduUGFnZXM6ID4gUmVmIDEwNw0KWEVOSUZBQ0V8SW9j
dGxHbnR0YWJNYXBGb3JlaWduUGFnZXM6ID4gUmVmIDc5DQpYRU5JRkFDRXxJb2N0bEdudHRh
Yk1hcEZvcmVpZ25QYWdlczogPiBSZWYgODANClhFTklGQUNFfElvY3RsR250dGFiTWFwRm9y
ZWlnblBhZ2VzOiA+IFJlZiA0MA0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJNYXBGb3JlaWduUGFn
ZXM6ID4gUmVmIDk4DQpYRU5JRkFDRXxJb2N0bEdudHRhYk1hcEZvcmVpZ25QYWdlczogPiBS
ZWYgNTINClhFTklGQUNFfElvY3RsR250dGFiTWFwRm9yZWlnblBhZ2VzOiA+IFJlZiA2Mw0K
WEVOSUZBQ0V8SW9jdGxHbnR0YWJNYXBGb3JlaWduUGFnZXM6ID4gUmVmIDgyDQpYRU5JRkFD
RXxJb2N0bEdudHRhYk1hcEZvcmVpZ25QYWdlczogPiBSZWYgOTENClhFTklGQUNFfElvY3Rs
R250dGFiTWFwRm9yZWlnblBhZ2VzOiA+IFJlZiA2MQ0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJN
YXBGb3JlaWduUGFnZXM6ID4gUmVmIDM2DQpYRU5JRkFDRXxJb2N0bEdudHRhYk1hcEZvcmVp
Z25QYWdlczogPiBSZWYgMTA2DQpYRU5JRkFDRXxJb2N0bEdudHRhYk1hcEZvcmVpZ25QYWdl
czogPiBSZWYgNDENClhFTklGQUNFfElvY3RsR250dGFiTWFwRm9yZWlnblBhZ2VzOiA+IFJl
ZiA1Ng0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJNYXBGb3JlaWduUGFnZXM6ID4gUmVmIDIwDQpY
RU5JRkFDRXxJb2N0bEdudHRhYk1hcEZvcmVpZ25QYWdlczogPiBSZWYgOTQNClhFTklGQUNF
fElvY3RsR250dGFiTWFwRm9yZWlnblBhZ2VzOiA+IFJlZiAzMw0KWEVOSUZBQ0V8SW9jdGxH
bnR0YWJNYXBGb3JlaWduUGFnZXM6ID4gUmVmIDgzDQpYRU5JRkFDRXxJb2N0bEdudHRhYk1h
cEZvcmVpZ25QYWdlczogPiBSZWYgNDQNClhFTklGQUNFfElvY3RsR250dGFiTWFwRm9yZWln
blBhZ2VzOiA+IFJlZiA4NQ0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJNYXBGb3JlaWduUGFnZXM6
ID4gUmVmIDM4DQpYRU5JRkFDRXxJb2N0bEdudHRhYk1hcEZvcmVpZ25QYWdlczogPiBSZWYg
OTANClhFTklGQUNFfElvY3RsR250dGFiTWFwRm9yZWlnblBhZ2VzOiA+IFJlZiAyNA0KWEVO
SUZBQ0V8SW9jdGxHbnR0YWJNYXBGb3JlaWduUGFnZXM6ID4gUmVmIDk3DQpYRU5JRkFDRXxJ
b2N0bEdudHRhYk1hcEZvcmVpZ25QYWdlczogPiBSZWYgODENClhFTklGQUNFfElvY3RsR250
dGFiTWFwRm9yZWlnblBhZ2VzOiA+IFJlZiA0NQ0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJNYXBG
b3JlaWduUGFnZXM6ID4gUmVmIDE3DQpYRU5JRkFDRXxJb2N0bEdudHRhYk1hcEZvcmVpZ25Q
YWdlczogPiBSZWYgNzANClhFTklGQUNFfElvY3RsR250dGFiTWFwRm9yZWlnblBhZ2VzOiA+
IFJlZiAxMDYNClhFTklGQUNFfElvY3RsR250dGFiTWFwRm9yZWlnblBhZ2VzOiA+IFJlZiAz
Ng0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJNYXBGb3JlaWduUGFnZXM6ID4gUmVmIDYxDQpYRU5J
RkFDRXxJb2N0bEdudHRhYk1hcEZvcmVpZ25QYWdlczogPiBSZWYgOTENClhFTklGQUNFfElv
Y3RsR250dGFiTWFwRm9yZWlnblBhZ2VzOiA+IFJlZiA4Mg0KWEVOSUZBQ0V8SW9jdGxHbnR0
YWJNYXBGb3JlaWduUGFnZXM6ID4gUmVmIDYzDQpYRU5JRkFDRXxJb2N0bEdudHRhYk1hcEZv
cmVpZ25QYWdlczogPiBSZWYgNTINClhFTklGQUNFfElvY3RsR250dGFiTWFwRm9yZWlnblBh
Z2VzOiA+IFJlZiA5OA0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJNYXBGb3JlaWduUGFnZXM6ID4g
UmVmIDQwDQpYRU5JRkFDRXxJb2N0bEdudHRhYk1hcEZvcmVpZ25QYWdlczogPiBSZWYgODAN
ClhFTklGQUNFfElvY3RsR250dGFiTWFwRm9yZWlnblBhZ2VzOiA+IFJlZiA3OQ0KWEVOSUZB
Q0V8SW9jdGxHbnR0YWJNYXBGb3JlaWduUGFnZXM6ID4gUmVmIDEwNw0KWEVOSUZBQ0V8SW9j
dGxHbnR0YWJNYXBGb3JlaWduUGFnZXM6ID4gUmVmIDU4DQpYRU5JRkFDRXxJb2N0bEdudHRh
Yk1hcEZvcmVpZ25QYWdlczogPiBSZWYgNTUNClhFTklGQUNFfElvY3RsR250dGFiTWFwRm9y
ZWlnblBhZ2VzOiA+IFJlZiAzNQ0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJNYXBGb3JlaWduUGFn
ZXM6ID4gUmVmIDkyDQpYRU5JRkFDRXxJb2N0bEdudHRhYk1hcEZvcmVpZ25QYWdlczogPiBS
ZWYgOTMNClhFTklGQUNFfElvY3RsR250dGFiTWFwRm9yZWlnblBhZ2VzOiA+IFJlZiA3MA0K
WEVOSUZBQ0V8SW9jdGxHbnR0YWJNYXBGb3JlaWduUGFnZXM6ID4gUmVmIDE3DQpYRU5JRkFD
RXxJb2N0bEdudHRhYk1hcEZvcmVpZ25QYWdlczogPiBSZWYgNDUNClhFTklGQUNFfElvY3Rs
R250dGFiTWFwRm9yZWlnblBhZ2VzOiA+IFJlZiA4MQ0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJN
YXBGb3JlaWduUGFnZXM6ID4gUmVmIDk3DQpYRU5JRkFDRXxJb2N0bEdudHRhYk1hcEZvcmVp
Z25QYWdlczogPiBSZWYgMjQNClhFTklGQUNFfElvY3RsR250dGFiTWFwRm9yZWlnblBhZ2Vz
OiA+IFJlZiA5MA0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJNYXBGb3JlaWduUGFnZXM6ID4gUmVm
IDM4DQpYRU5JRkFDRXxJb2N0bEdudHRhYk1hcEZvcmVpZ25QYWdlczogPiBSZWYgODUNClhF
TklGQUNFfElvY3RsR250dGFiTWFwRm9yZWlnblBhZ2VzOiA+IFJlZiA0NA0KWEVOSUZBQ0V8
SW9jdGxHbnR0YWJNYXBGb3JlaWduUGFnZXM6ID4gUmVmIDgzDQpYRU5JRkFDRXxJb2N0bEdu
dHRhYk1hcEZvcmVpZ25QYWdlczogPiBSZWYgMzMNClhFTklGQUNFfElvY3RsR250dGFiTWFw
Rm9yZWlnblBhZ2VzOiA+IFJlZiA5NA0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJNYXBGb3JlaWdu
UGFnZXM6ID4gUmVmIDIwDQpYRU5JRkFDRXxJb2N0bEdudHRhYk1hcEZvcmVpZ25QYWdlczog
PiBSZWYgNTYNClhFTklGQUNFfElvY3RsR250dGFiTWFwRm9yZWlnblBhZ2VzOiA+IFJlZiA0
MQ0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJQZXJtaXRGb3JlaWduQWNjZXNzOiBHcmFudHNbMF0g
PSBGRkZGRkE4MDAyN0ZBQjY4DQpYRU5JRkFDRXxJb2N0bEdudHRhYlBlcm1pdEZvcmVpZ25B
Y2Nlc3M6IEdyYW50c1swXSA9IEZGRkZGQTgwMDI3Rjg4RTgNClhFTklGQUNFfElvY3RsR250
dGFiUGVybWl0Rm9yZWlnbkFjY2VzczogR3JhbnRzWzFdID0gRkZGRkZBODAwMjdGQTlFOA0K
WEVOSUZBQ0V8SW9jdGxHbnR0YWJQZXJtaXRGb3JlaWduQWNjZXNzOiBHcmFudHNbMl0gPSBG
RkZGRkE4MDAyN0ZBOTI4DQpYRU5JRkFDRXxJb2N0bEdudHRhYlBlcm1pdEZvcmVpZ25BY2Nl
c3M6IEdyYW50c1szXSA9IEZGRkZGQTgwMDI3RkE4NjgNClhFTklGQUNFfElvY3RsR250dGFi
UGVybWl0Rm9yZWlnbkFjY2VzczogR3JhbnRzWzRdID0gRkZGRkZBODAwMjdGQTZFOA0KWEVO
SUZBQ0V8SW9jdGxHbnR0YWJQZXJtaXRGb3JlaWduQWNjZXNzOiBHcmFudHNbNV0gPSBGRkZG
RkE4MDAyN0ZBNjI4DQpYRU5JRkFDRXxJb2N0bEdudHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M6
IEdyYW50c1s2XSA9IEZGRkZGQTgwMDI3RkE1NjgNClhFTklGQUNFfElvY3RsR250dGFiUGVy
bWl0Rm9yZWlnbkFjY2VzczogR3JhbnRzWzddID0gRkZGRkZBODAwMjdGQTRBOA0KWEVOSUZB
Q0V8SW9jdGxHbnR0YWJQZXJtaXRGb3JlaWduQWNjZXNzOiBHcmFudHNbOF0gPSBGRkZGRkE4
MDAyN0ZBM0U4DQpYRU5JRkFDRXxJb2N0bEdudHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M6IEdy
YW50c1s5XSA9IEZGRkZGQTgwMDI3RkEzMjgNClhFTklGQUNFfElvY3RsR250dGFiUGVybWl0
Rm9yZWlnbkFjY2VzczogR3JhbnRzWzEwXSA9IEZGRkZGQTgwMDI3RkExQTgNClhFTklGQUNF
fElvY3RsR250dGFiUGVybWl0Rm9yZWlnbkFjY2VzczogR3JhbnRzWzExXSA9IEZGRkZGQTgw
MDI2MTREQTgNClhFTklGQUNFfElvY3RsR250dGFiUGVybWl0Rm9yZWlnbkFjY2VzczogR3Jh
bnRzWzEyXSA9IEZGRkZGQTgwMDI2MTRDRTgNClhFTklGQUNFfElvY3RsR250dGFiUGVybWl0
Rm9yZWlnbkFjY2VzczogR3JhbnRzWzEzXSA9IEZGRkZGQTgwMDI2MTRDMjgNClhFTklGQUNF
fElvY3RsR250dGFiUGVybWl0Rm9yZWlnbkFjY2VzczogR3JhbnRzWzE0XSA9IEZGRkZGQTgw
MDI2MTRCNjgNClhFTklGQUNFfElvY3RsR250dGFiUGVybWl0Rm9yZWlnbkFjY2VzczogR3Jh
bnRzWzE1XSA9IEZGRkZGQTgwMDI2MTRBQTgNClhFTklGQUNFfElvY3RsR250dGFiUGVybWl0
Rm9yZWlnbkFjY2VzczogR3JhbnRzWzBdID0gRkZGRkZBODAwMjdGQUNFOA0KWEVOSUZBQ0V8
SW9jdGxHbnR0YWJQZXJtaXRGb3JlaWduQWNjZXNzOiBHcmFudHNbMV0gPSBGRkZGRkE4MDAy
N0RCQTI4DQpYRU5JRkFDRXxJb2N0bEdudHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M6IEdyYW50
c1syXSA9IEZGRkZGQTgwMDI2MTQ5RTgNClhFTklGQUNFfElvY3RsR250dGFiUGVybWl0Rm9y
ZWlnbkFjY2VzczogR3JhbnRzWzNdID0gRkZGRkZBODAwMjYxNDkyOA0KWEVOSUZBQ0V8SW9j
dGxHbnR0YWJQZXJtaXRGb3JlaWduQWNjZXNzOiBHcmFudHNbNF0gPSBGRkZGRkE4MDAyNjE0
ODY4DQpYRU5JRkFDRXxJb2N0bEdudHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M6IEdyYW50c1s1
XSA9IEZGRkZGQTgwMDI2MTQ2MjgNClhFTklGQUNFfElvY3RsR250dGFiUGVybWl0Rm9yZWln
bkFjY2VzczogR3JhbnRzWzZdID0gRkZGRkZBODAwMjYxNDU2OA0KWEVOSUZBQ0V8SW9jdGxH
bnR0YWJQZXJtaXRGb3JlaWduQWNjZXNzOiBHcmFudHNbN10gPSBGRkZGRkE4MDAyNjE0NEE4
DQpYRU5JRkFDRXxJb2N0bEdudHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M6IEdyYW50c1s4XSA9
IEZGRkZGQTgwMDI2MTQzRTgNClhFTklGQUNFfElvY3RsR250dGFiUGVybWl0Rm9yZWlnbkFj
Y2VzczogR3JhbnRzWzldID0gRkZGRkZBODAwMjYxNDMyOA0KWEVOSUZBQ0V8SW9jdGxHbnR0
YWJQZXJtaXRGb3JlaWduQWNjZXNzOiBHcmFudHNbMTBdID0gRkZGRkZBODAwMjYxNDI2OA0K
WEVOSUZBQ0V8SW9jdGxHbnR0YWJQZXJtaXRGb3JlaWduQWNjZXNzOiBHcmFudHNbMTFdID0g
RkZGRkZBODAwMjYxNDFBOA0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJQZXJtaXRGb3JlaWduQWNj
ZXNzOiBHcmFudHNbMTJdID0gRkZGRkZBODAwMjdGOEVFOA0KWEVOSUZBQ0V8SW9jdGxHbnR0
YWJQZXJtaXRGb3JlaWduQWNjZXNzOiBHcmFudHNbMTNdID0gRkZGRkZBODAwMjdGOEUyOA0K
WEVOSUZBQ0V8SW9jdGxHbnR0YWJQZXJtaXRGb3JlaWduQWNjZXNzOiBHcmFudHNbMTRdID0g
RkZGRkZBODAwMjdGOEQ2OA0KWEVOSUZBQ0V8SW9jdGxHbnR0YWJQZXJtaXRGb3JlaWduQWNj
ZXNzOiBHcmFudHNbMTVdID0gRkZGRkZBODAwMjdGOENBOA0KQXNzZXJ0aW9uOiAqKiogRFBD
IHdhdGNoZG9nIHRpbWVvdXQNCiAgICBUaGlzIGlzIE5PVCBhIGJyZWFrIGluIHVwZGF0ZSB0
aW1lDQogICAgVGhpcyBpcyBtb3N0IGxpa2VseSBhIEJVRyBpbiBhbiBJU1INCiAgICBQZXJm
b3JtIGEgc3RhY2sgdHJhY2UgdG8gZmluZCB0aGUgY3VscHJpdA0KICAgIFRoZSBwZXJpb2Qg
d2lsbCBiZSBkb3VibGVkIG9uIGNvbnRpbnVhdGlvbg0KICAgIFVzZSBnaCB0byBjb250aW51
ZSEhDQoNCm50ISA/PyA6OkZOT0RPQkZNOjpgc3RyaW5nJysweDRmM2E6DQpmZmZmZjgwMGAw
MjczZTllNSBjZDJjICAgICAgICAgICAgaW50ICAgICAyQ2gNCmtkPiBrDQpDaGlsZC1TUCAg
ICAgICAgICBSZXRBZGRyICAgICAgICAgICBDYWxsIFNpdGUNCmZmZmZmODgwYDAyZmExN2Iw
IGZmZmZmODAwYDAyNmYxNGI3IG50ISA/PyA6OkZOT0RPQkZNOjpgc3RyaW5nJysweDRmM2EN
CmZmZmZmODgwYDAyZmExODQwIGZmZmZmODAwYDAyNjI4ODk1IG50IUtlVXBkYXRlU3lzdGVt
VGltZSsweDM3Nw0KZmZmZmY4ODBgMDJmYTE5NDAgZmZmZmY4MDBgMDI2ZTMyMzMgaGFsIUhh
bHBIcGV0Q2xvY2tJbnRlcnJ1cHQrMHg4ZA0KZmZmZmY4ODBgMDJmYTE5NzAgZmZmZmY4MDBg
MDI2Y2U5YmUgbnQhS2lJbnRlcnJ1cHREaXNwYXRjaE5vTG9jaysweDE2Mw0KZmZmZmY4ODBg
MDJmYTFiMDAgZmZmZmY4MDBgMDI2ZGNjOWYgbnQhS3hXYWl0Rm9yU3BpbkxvY2tBbmRBY3F1
aXJlKzB4MWUNCmZmZmZmODgwYDAyZmExYjMwIGZmZmZmODgwYDAzZWNjOWI2IG50IUtlQWNx
dWlyZVNwaW5Mb2NrQXREcGNMZXZlbCsweDZmDQooSW5saW5lIEZ1bmN0aW9uKSAtLS0tLS0t
LWAtLS0tLS0tLSB4ZW52aWYhX19Db250cm9sbGVyQWNxdWlyZUxvY2srMHhhIFtjOlxxdWJl
cy1idWlsZGVyXGNocm9vdC13aW43eDY0XHF1YmVzLXNyY1x2bW0teGVuLXdpbmRvd3MtcHZk
cml2ZXJzXHhlbnZpZlxzcmNceGVudmlmXGNvbnRyb2xsZXIuYyBAIDExNF0NCmZmZmZmODgw
YDAyZmExYjgwIGZmZmZmODgwYDAzZWM0MTVmIHhlbnZpZiFDb250cm9sbGVyV2F0Y2hkb2cr
MHg0NiBbYzpccXViZXMtYnVpbGRlclxjaHJvb3Qtd2luN3g2NFxxdWJlcy1zcmNcdm1tLXhl
bi13aW5kb3dzLXB2ZHJpdmVyc1x4ZW52aWZcc3JjXHhlbnZpZlxjb250cm9sbGVyLmMgQCAz
NDNdDQpmZmZmZjg4MGAwMmZhMWJkMCBmZmZmZjgwMGAwMjk4MzMyZSB4ZW52aWYhVGhyZWFk
RnVuY3Rpb24rMHgxMyBbYzpccXViZXMtYnVpbGRlclxjaHJvb3Qtd2luN3g2NFxxdWJlcy1z
cmNcdm1tLXhlbi13aW5kb3dzLXB2ZHJpdmVyc1x4ZW52aWZcc3JjXHhlbnZpZlx0aHJlYWQu
YyBAIDExMV0NCmZmZmZmODgwYDAyZmExYzAwIGZmZmZmODAwYDAyNmQ4NjY2IG50IVBzcFN5
c3RlbVRocmVhZFN0YXJ0dXArMHg1YQ0KZmZmZmY4ODBgMDJmYTFjNDAgMDAwMDAwMDBgMDAw
MDAwMDAgbnQhS3hTdGFydFN5c3RlbVRocmVhZCsweDE2DQo=
--------------044250D30E446C7E5A766C6A
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--------------044250D30E446C7E5A766C6A--


From win-pv-devel-bounces@lists.xenproject.org Fri Jul 08 10:12:01 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 08 Jul 2016 10:12:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bLSlM-0001p8-0l; Fri, 08 Jul 2016 10:12:00 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=99086c992=Paul.Durrant@citrix.com>)
 id 1bLSlK-0001ot-Tn
 for win-pv-devel@lists.xenproject.org; Fri, 08 Jul 2016 10:11:59 +0000
Received: from [85.158.137.68] by server-2.bemta-3.messagelabs.com id
 80/74-01903-E6C7F775; Fri, 08 Jul 2016 10:11:58 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrFIsWRWlGSWpSXmKPExsWyU9JRQje3pj7
 cYPMTdYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCasa5/PVvBPa6KV/+usDcwnuHqYuTkkBDwk1iz
 YDYTiM0moCOx9Oh8IJuLQ0Sgh1Fi0rXZrF2MHBzCAnoSmzrcQWpEBPQlDrybywJhG0lc/djDB
 mKzCKhIdC85ChbnFXCXeDz1B9hMIQFPicPTexlBbE4BL4k5b/+D1TMKyEp8aVzNDGIzC4hL3H
 oynwniHgGJJXvOM0PYohIvH/9jhbANJLYu3ccCcg6zgKbE+l36EK2KElO6H7JDrBWUODnzCQv
 EWhWJLY8PQI3hllj5+Q/LBEaRWUi2zUKYNAvJpFlIJi1gZFnFqFGcWlSWWqRrZKqXVJSZnlGS
 m5iZo2toYKyXm1pcnJiempOYVKyXnJ+7iREYD/UMDIw7GFtP+B1ilORgUhLlNQyoDxfiS8pPq
 cxILM6ILyrNSS0+xCjDwaEkwWteDZQTLEpNT61Iy8wBRiZMWoKDR0mE914VUJq3uCAxtzgzHS
 J1ilGXY8uCG2uZhFjy8vNSpcR5P4AUCYAUZZTmwY2AJYlLjLJSwryMDAwMQjwFqUW5mSWo8q8
 YxTkYlYR5X4BM4cnMK4Hb9AroCCagIwwCwI4oSURISTUwCi/j7RKe9lP/FeeDtNkKtoYuy/3L
 EtdNs35+kXnz/7tvPzMHLdhpzM2UIHTX4H2n7oqXH+TbDEpnnJr5LcPae3aEXli/s7/ON0Y/h
 ng26Z7DxXkiL0r/FU6J+uYs8HEqb3a/fZCbpXtL7/qK/QvNlsW8lNKxSyu2eFwRy6bmlMfFzW
 Xu8laJpTgj0VCLuag4EQD5M60vDQMAAA==
X-Env-Sender: prvs=99086c992=Paul.Durrant@citrix.com
X-Msg-Ref: server-11.tower-31.messagelabs.com!1467972717!23255283!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: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 17464 invoked from network); 8 Jul 2016 10:11:57 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-11.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 8 Jul 2016 10:11:57 -0000
X-IronPort-AV: E=Sophos;i="5.28,329,1464652800"; d="scan'208";a="25823686"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: =?utf-8?B?UmFmYcWCIFdvamR5xYJh?= <omeg@invisiblethingslab.com>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] xenvif DPC timeout
Thread-Index: AQHR2KF869ZML2K4gUC2SHdWxtno4KAOUGGA
Date: Fri, 8 Jul 2016 10:11:47 +0000
Message-ID: <11ee63a0933941d88492d0d76883443d@AMSPEX02CL03.citrite.net>
References: <13419f12-599d-9a31-70a6-d9d7a1618b84@invisiblethingslab.com>
In-Reply-To: <13419f12-599d-9a31-70a6-d9d7a1618b84@invisiblethingslab.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] xenvif DPC timeout
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIFJhZmFsIFdvamR5bGENCj4gU2VudDogMDcgSnVseSAyMDE2IDIzOjQ3DQo+IFRvOiB3aW4t
cHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gU3ViamVjdDogW3dpbi1wdi1kZXZlbF0g
eGVudmlmIERQQyB0aW1lb3V0DQo+IA0KPiBIaSwNCj4gDQo+IEknbSB0ZXN0aW5nIHRoZSBsYXRl
c3QgdmVyc2lvbiBvZiBwdmRyaXZlcnMgaW4gUXViZXMgYW5kIEknbSBydW5uaW5nDQo+IGludG8g
YSBEUEMgdGltZW91dCBpbiB4ZW52aWYgYXQgdGhlIHN5c3RlbSBzdGFydHVwIChXaW4gNyB4NjQp
Lg0KPiBBcHBhcmVudGx5IENvbnRyb2xsZXJTZXRIYXNoQWxnb3JpdGhtKCkgZmFpbHMgYW5kIHRo
ZSB3aG9sZSBmcm9udGVuZA0KPiBmYWlscyB0byBpbml0aWFsaXplPyBJIGF0dGFjaGVkIHRoZSBk
ZWJ1ZyBvdXRwdXQuDQo+IA0KDQpEYW1uLiBUaGF0IGxvb2tzIGxpa2UgYSBiYWNrd2FyZHMgY29t
cGF0aWJpbGl0eSBidWcuDQoNCj4gV2UncmUgdXNpbmcgWGVuIDQuNi4wLTEzIGF0bS4NCj4gDQoN
Ckl0J3Mgbm90IHRoZSB2ZXJzaW9uIG9mIFhlbiB0aGF0J3MgdGhlIGlzc3VlLCBpdCdzIHdoYXQg
eW91ciBkb20wIGtlcm5lbCBpcy4gSXQgbG9va3MgbGlrZSB5b3UgbmVlZCB0byBydW4gYSA0Ljcg
a2VybmVsIHdpdGggbXkgcmVjZW50IG5ldGJhY2sgY2hhbmdlcyB0byBmaXggdGhpcyBpbiB0aGUg
c2hvcnQgdGVybS4gSSdsbCB0cnkgdG8gcmVwcm8gYW5kIGFkZCBhbnkgbmVjZXNzYXJ5IGNvbXBh
dGliaWxpdHkgZml4IGEucy5hLnAuDQoNClRoYW5rcyBmb3IgcG9pbnRpbmcgdGhpcyBvdXQhDQoN
CkNoZWVycywNCg0KICBQYXVsDQoNCj4gLS0NCj4gUmFmYcWCIFdvamR5xYJhDQo+IFF1YmVzIFdp
bmRvd3MgVG9vbHMgZGV2ZWxvcGVyDQo+IGh0dHBzOi8vcXViZXMtb3Mub3JnLw0KX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxp
bmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54
ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Fri Jul 08 10:12:01 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 08 Jul 2016 10:12:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bLSlM-0001p8-0l; Fri, 08 Jul 2016 10:12:00 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=99086c992=Paul.Durrant@citrix.com>)
 id 1bLSlK-0001ot-Tn
 for win-pv-devel@lists.xenproject.org; Fri, 08 Jul 2016 10:11:59 +0000
Received: from [85.158.137.68] by server-2.bemta-3.messagelabs.com id
 80/74-01903-E6C7F775; Fri, 08 Jul 2016 10:11:58 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrFIsWRWlGSWpSXmKPExsWyU9JRQje3pj7
 cYPMTdYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCasa5/PVvBPa6KV/+usDcwnuHqYuTkkBDwk1iz
 YDYTiM0moCOx9Oh8IJuLQ0Sgh1Fi0rXZrF2MHBzCAnoSmzrcQWpEBPQlDrybywJhG0lc/djDB
 mKzCKhIdC85ChbnFXCXeDz1B9hMIQFPicPTexlBbE4BL4k5b/+D1TMKyEp8aVzNDGIzC4hL3H
 oynwniHgGJJXvOM0PYohIvH/9jhbANJLYu3ccCcg6zgKbE+l36EK2KElO6H7JDrBWUODnzCQv
 EWhWJLY8PQI3hllj5+Q/LBEaRWUi2zUKYNAvJpFlIJi1gZFnFqFGcWlSWWqRrZKqXVJSZnlGS
 m5iZo2toYKyXm1pcnJiempOYVKyXnJ+7iREYD/UMDIw7GFtP+B1ilORgUhLlNQyoDxfiS8pPq
 cxILM6ILyrNSS0+xCjDwaEkwWteDZQTLEpNT61Iy8wBRiZMWoKDR0mE914VUJq3uCAxtzgzHS
 J1ilGXY8uCG2uZhFjy8vNSpcR5P4AUCYAUZZTmwY2AJYlLjLJSwryMDAwMQjwFqUW5mSWo8q8
 YxTkYlYR5X4BM4cnMK4Hb9AroCCagIwwCwI4oSURISTUwCi/j7RKe9lP/FeeDtNkKtoYuy/3L
 EtdNs35+kXnz/7tvPzMHLdhpzM2UIHTX4H2n7oqXH+TbDEpnnJr5LcPae3aEXli/s7/ON0Y/h
 ng26Z7DxXkiL0r/FU6J+uYs8HEqb3a/fZCbpXtL7/qK/QvNlsW8lNKxSyu2eFwRy6bmlMfFzW
 Xu8laJpTgj0VCLuag4EQD5M60vDQMAAA==
X-Env-Sender: prvs=99086c992=Paul.Durrant@citrix.com
X-Msg-Ref: server-11.tower-31.messagelabs.com!1467972717!23255283!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: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 17464 invoked from network); 8 Jul 2016 10:11:57 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-11.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 8 Jul 2016 10:11:57 -0000
X-IronPort-AV: E=Sophos;i="5.28,329,1464652800"; d="scan'208";a="25823686"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: =?utf-8?B?UmFmYcWCIFdvamR5xYJh?= <omeg@invisiblethingslab.com>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] xenvif DPC timeout
Thread-Index: AQHR2KF869ZML2K4gUC2SHdWxtno4KAOUGGA
Date: Fri, 8 Jul 2016 10:11:47 +0000
Message-ID: <11ee63a0933941d88492d0d76883443d@AMSPEX02CL03.citrite.net>
References: <13419f12-599d-9a31-70a6-d9d7a1618b84@invisiblethingslab.com>
In-Reply-To: <13419f12-599d-9a31-70a6-d9d7a1618b84@invisiblethingslab.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] xenvif DPC timeout
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIFJhZmFsIFdvamR5bGENCj4gU2VudDogMDcgSnVseSAyMDE2IDIzOjQ3DQo+IFRvOiB3aW4t
cHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gU3ViamVjdDogW3dpbi1wdi1kZXZlbF0g
eGVudmlmIERQQyB0aW1lb3V0DQo+IA0KPiBIaSwNCj4gDQo+IEknbSB0ZXN0aW5nIHRoZSBsYXRl
c3QgdmVyc2lvbiBvZiBwdmRyaXZlcnMgaW4gUXViZXMgYW5kIEknbSBydW5uaW5nDQo+IGludG8g
YSBEUEMgdGltZW91dCBpbiB4ZW52aWYgYXQgdGhlIHN5c3RlbSBzdGFydHVwIChXaW4gNyB4NjQp
Lg0KPiBBcHBhcmVudGx5IENvbnRyb2xsZXJTZXRIYXNoQWxnb3JpdGhtKCkgZmFpbHMgYW5kIHRo
ZSB3aG9sZSBmcm9udGVuZA0KPiBmYWlscyB0byBpbml0aWFsaXplPyBJIGF0dGFjaGVkIHRoZSBk
ZWJ1ZyBvdXRwdXQuDQo+IA0KDQpEYW1uLiBUaGF0IGxvb2tzIGxpa2UgYSBiYWNrd2FyZHMgY29t
cGF0aWJpbGl0eSBidWcuDQoNCj4gV2UncmUgdXNpbmcgWGVuIDQuNi4wLTEzIGF0bS4NCj4gDQoN
Ckl0J3Mgbm90IHRoZSB2ZXJzaW9uIG9mIFhlbiB0aGF0J3MgdGhlIGlzc3VlLCBpdCdzIHdoYXQg
eW91ciBkb20wIGtlcm5lbCBpcy4gSXQgbG9va3MgbGlrZSB5b3UgbmVlZCB0byBydW4gYSA0Ljcg
a2VybmVsIHdpdGggbXkgcmVjZW50IG5ldGJhY2sgY2hhbmdlcyB0byBmaXggdGhpcyBpbiB0aGUg
c2hvcnQgdGVybS4gSSdsbCB0cnkgdG8gcmVwcm8gYW5kIGFkZCBhbnkgbmVjZXNzYXJ5IGNvbXBh
dGliaWxpdHkgZml4IGEucy5hLnAuDQoNClRoYW5rcyBmb3IgcG9pbnRpbmcgdGhpcyBvdXQhDQoN
CkNoZWVycywNCg0KICBQYXVsDQoNCj4gLS0NCj4gUmFmYcWCIFdvamR5xYJhDQo+IFF1YmVzIFdp
bmRvd3MgVG9vbHMgZGV2ZWxvcGVyDQo+IGh0dHBzOi8vcXViZXMtb3Mub3JnLw0KX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxp
bmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54
ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Fri Jul 08 15:29:48 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 08 Jul 2016 15:29:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bLXis-0003fh-74; Fri, 08 Jul 2016 15:29:46 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <illuminoid@gmail.com>) id 1bLVyE-0003Eb-1C
 for win-pv-devel@lists.xenproject.org; Fri, 08 Jul 2016 13:37:30 +0000
Received: from [85.158.139.211] by server-15.bemta-5.messagelabs.com id
 AC/79-17282-79CAF775; Fri, 08 Jul 2016 13:37:27 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrBIsWRWlGSWpSXmKPExsVyMfSOk+70NfX
 hBpMeSVn8WZzowOhx+MMVlgDGKNbMvKT8igTWjJuL3jEVfGatuPf4G3sD40+WLkYuDiGBWYwS
 B65NZ+5i5ORgEbjJIrF0BiNIQkLgK4vE2mMTWEESEgIxEo/vTGTvYuQAsqslOu8Wg4SFBJQlF
 i7dxAgxaD6TxLSuRnaQhLCAtsS0LVvAetkE1CXWdv5mhphjJ/H12lmwGhEBVYlry4+xgdjMAl
 oS9z4dYAaZLyxgK9Ew1RPiHlWJB+8nMIHYvALuEp3fe9ghxmhI9O94xD6BUWABI8MqRvXi1KK
 y1CJdE72kosz0jJLcxMwcXUMDU73c1OLixPTUnMSkYr3k/NxNjMCQYgCCHYy3+pwPMUpyMCmJ
 8hoG1IcL8SXlp1RmJBZnxBeV5qQWH2KU4eBQkuDdsRooJ1iUmp5akZaZAwxumLQEB4+SCO9Rk
 DRvcUFibnFmOkTqFKMlx5bf19YycSz4cRtIbpt6by2TEEtefl6qlDjvIpAGAZCGjNI8uHGwCL
 zEKCslzMsIdKAQT0FqUW5mCar8K0ZxDkYlYd6TIFN4MvNK4La+AjqICegggwCwg0oSEVJSDYz
 112ZcmtR2g7fdrbNN6b1V+YGtH/3X+IrkZW5SCJOWu+hx8DBvxpS4wvds3b833y2bxr/qaaRs
 YDFnffI9L+/Vvst/b55f8i+XtX9mYC6D9+7gKUunN66dZqb4/Oeri1d9nFxbja9bLanekciyZ
 dOWXYmx585s1s65+JzXa3fflu3zHtQnfu9QYinOSDTUYi4qTgQAgtHjeLsCAAA=
X-Env-Sender: illuminoid@gmail.com
X-Msg-Ref: server-2.tower-206.messagelabs.com!1467985046!33132353!1
X-Originating-IP: [209.85.220.66]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 50869 invoked from network); 8 Jul 2016 13:37:27 -0000
Received: from mail-pa0-f66.google.com (HELO mail-pa0-f66.google.com)
 (209.85.220.66)
 by server-2.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 8 Jul 2016 13:37:27 -0000
Received: by mail-pa0-f66.google.com with SMTP id ib6so6864096pad.3
 for <win-pv-devel@lists.xenproject.org>; Fri, 08 Jul 2016 06:37:27 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=sender:from:to:cc:subject:date:message-id;
 bh=fjftcWxztBrKaC8FJlau0CkS0xZ3tI1bhy9ZE9cbZ+A=;
 b=GT3NjWfE2aUBjMuO+P43B1HJqhP4PvFLwqyTnchB5MAsBCXx0gKASptGSCE/Cq8ykb
 Ikymwn6s0lY4cWJbgWz7G9dfyJz7bP7n85q+JTNmVI6e4ORKaKekGzTk12ONDrbSDrX2
 xYHiJmERDe45Sv28bAz6C5iuvYD7lahKdXx54Pic8B4WgIBvf1nmlqgjP7V7mxHwh6mW
 bZ1lHbU7FG24HZj4xLHGu0mKZdGVwO4F81xI6sGdTdGFdlqGWLj6ivi/ggCB3OM6uPgm
 pNm79pDnEn4VOyYcMpiCv6+7SiQrnoAFAQGrZpWcF+L4flsb9lP+Z5SCV0kuYBORpNQQ
 alYg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:sender:from:to:cc:subject:date:message-id;
 bh=fjftcWxztBrKaC8FJlau0CkS0xZ3tI1bhy9ZE9cbZ+A=;
 b=XkxfSmWMCzG0L7WxOUqX+O476Ug7Uyqm9ec6cdHWnvoepIkJVq+xaq3dapvsPd0kNe
 O2nvhDxiD7yoteQzqMQaL9hx/Mrk6tO7Wgqq7EeAKCGu8AyHkZJUvZCABie9hI+G4amy
 jRyZ+qlofSbbo5gmh51SzeKgUMJbmF8/H3oMxWpOpvQ9Jog0jzlU1Iz6OH5z/LENlJug
 hX2jA8JX5Ixvh1jVnDHkbOy69ZyGRqsl6W1/G4qEM5ABbHt+zvaBpyU42ORCV7nAyvlz
 EgvEckl9WEs3gOybRPUE2/Asglqt3ZAJOnaoIOKIDdXvwEjFXqSqo/r8SISpeYdP+oMn
 42TQ==
X-Gm-Message-State: ALyK8tLKqBHtq2EfAFg/bEM7Kr0jJYyt98EsmFkfeZSH2Eek9WS6lGiC8bLgylcQMKrJvA==
X-Received: by 10.194.104.134 with SMTP id ge6mr6071841wjb.157.1467985045589; 
 Fri, 08 Jul 2016 06:37:25 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id a84sm3142987wma.0.2016.07.08.06.37.24
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
 Fri, 08 Jul 2016 06:37:24 -0700 (PDT)
From: Ben Chalmers <ben.ch@lmers.co.uk>
X-Google-Original-From: Ben Chalmers <Ben.Chalmers@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Fri,  8 Jul 2016 14:37:01 +0100
Message-Id: <1467985021-22472-1-git-send-email-Ben.Chalmers@citrix.com>
X-Mailer: git-send-email 2.7.0.windows.1
X-Mailman-Approved-At: Fri, 08 Jul 2016 15:29:45 +0000
Cc: Ben Chalmers <Ben.Chalmers@citrix.com>
Subject: [win-pv-devel] [PATCH] An ioctl should fail on any invalid argument
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

UHJldmlvdXNseSBmYWlsdXJlcyBoYXBwZW5lZCBvbmx5IGlmIGFsbCBhcmd1bWVudHMKd2VyZSBp
bnZhbGlkLCBsZWFkaW5nIHRvIGJ1Z2NoZWNrcyBpZiBib3RoIEluTGVuCmFuZCBPdXRMZW4gd2Vy
ZSAwCgpTaWduZWQtb2ZmLWJ5OiBCZW4uQ2hhbG1lcnNAY2l0cml4LmNvbQotLS0KIHNyYy94ZW5p
ZmFjZS9pb2N0bF9nbnR0YWIuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr
KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyYy94ZW5pZmFjZS9pb2N0bF9nbnR0YWIu
YyBiL3NyYy94ZW5pZmFjZS9pb2N0bF9nbnR0YWIuYwppbmRleCBhNjkyZjI5Li4wMmU5MjMxIDEw
MDY0NAotLS0gYS9zcmMveGVuaWZhY2UvaW9jdGxfZ250dGFiLmMKKysrIGIvc3JjL3hlbmlmYWNl
L2lvY3RsX2dudHRhYi5jCkBAIC03MTIsNyArNzEyLDcgQEAgSW9jdGxHbnR0YWJVbm1hcEZvcmVp
Z25QYWdlcygKICAgICBQWEVOSUZBQ0VfQ09OVEVYVF9JRCBDb250ZXh0SWQ7CiAKICAgICBzdGF0
dXMgPSBTVEFUVVNfSU5WQUxJRF9CVUZGRVJfU0laRTsKLSAgICBpZiAoSW5MZW4gIT0gc2l6ZW9m
KFhFTklGQUNFX0dOVFRBQl9VTk1BUF9GT1JFSUdOX1BBR0VTX0lOKSAmJgorICAgIGlmIChJbkxl
biAhPSBzaXplb2YoWEVOSUZBQ0VfR05UVEFCX1VOTUFQX0ZPUkVJR05fUEFHRVNfSU4pIHx8CiAg
ICAgICAgIE91dExlbiAhPSAwKSB7CiAgICAgICAgIGdvdG8gZmFpbDE7CiAgICAgfQotLSAKMi43
LjAud2luZG93cy4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJv
amVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlz
dGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Fri Jul 08 15:29:48 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 08 Jul 2016 15:29:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bLXis-0003fh-74; Fri, 08 Jul 2016 15:29:46 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <illuminoid@gmail.com>) id 1bLVyE-0003Eb-1C
 for win-pv-devel@lists.xenproject.org; Fri, 08 Jul 2016 13:37:30 +0000
Received: from [85.158.139.211] by server-15.bemta-5.messagelabs.com id
 AC/79-17282-79CAF775; Fri, 08 Jul 2016 13:37:27 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrBIsWRWlGSWpSXmKPExsVyMfSOk+70NfX
 hBpMeSVn8WZzowOhx+MMVlgDGKNbMvKT8igTWjJuL3jEVfGatuPf4G3sD40+WLkYuDiGBWYwS
 B65NZ+5i5ORgEbjJIrF0BiNIQkLgK4vE2mMTWEESEgIxEo/vTGTvYuQAsqslOu8Wg4SFBJQlF
 i7dxAgxaD6TxLSuRnaQhLCAtsS0LVvAetkE1CXWdv5mhphjJ/H12lmwGhEBVYlry4+xgdjMAl
 oS9z4dYAaZLyxgK9Ew1RPiHlWJB+8nMIHYvALuEp3fe9ghxmhI9O94xD6BUWABI8MqRvXi1KK
 y1CJdE72kosz0jJLcxMwcXUMDU73c1OLixPTUnMSkYr3k/NxNjMCQYgCCHYy3+pwPMUpyMCmJ
 8hoG1IcL8SXlp1RmJBZnxBeV5qQWH2KU4eBQkuDdsRooJ1iUmp5akZaZAwxumLQEB4+SCO9Rk
 DRvcUFibnFmOkTqFKMlx5bf19YycSz4cRtIbpt6by2TEEtefl6qlDjvIpAGAZCGjNI8uHGwCL
 zEKCslzMsIdKAQT0FqUW5mCar8K0ZxDkYlYd6TIFN4MvNK4La+AjqICegggwCwg0oSEVJSDYz
 112ZcmtR2g7fdrbNN6b1V+YGtH/3X+IrkZW5SCJOWu+hx8DBvxpS4wvds3b833y2bxr/qaaRs
 YDFnffI9L+/Vvst/b55f8i+XtX9mYC6D9+7gKUunN66dZqb4/Oeri1d9nFxbja9bLanekciyZ
 dOWXYmx585s1s65+JzXa3fflu3zHtQnfu9QYinOSDTUYi4qTgQAgtHjeLsCAAA=
X-Env-Sender: illuminoid@gmail.com
X-Msg-Ref: server-2.tower-206.messagelabs.com!1467985046!33132353!1
X-Originating-IP: [209.85.220.66]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.46; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 50869 invoked from network); 8 Jul 2016 13:37:27 -0000
Received: from mail-pa0-f66.google.com (HELO mail-pa0-f66.google.com)
 (209.85.220.66)
 by server-2.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 8 Jul 2016 13:37:27 -0000
Received: by mail-pa0-f66.google.com with SMTP id ib6so6864096pad.3
 for <win-pv-devel@lists.xenproject.org>; Fri, 08 Jul 2016 06:37:27 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=sender:from:to:cc:subject:date:message-id;
 bh=fjftcWxztBrKaC8FJlau0CkS0xZ3tI1bhy9ZE9cbZ+A=;
 b=GT3NjWfE2aUBjMuO+P43B1HJqhP4PvFLwqyTnchB5MAsBCXx0gKASptGSCE/Cq8ykb
 Ikymwn6s0lY4cWJbgWz7G9dfyJz7bP7n85q+JTNmVI6e4ORKaKekGzTk12ONDrbSDrX2
 xYHiJmERDe45Sv28bAz6C5iuvYD7lahKdXx54Pic8B4WgIBvf1nmlqgjP7V7mxHwh6mW
 bZ1lHbU7FG24HZj4xLHGu0mKZdGVwO4F81xI6sGdTdGFdlqGWLj6ivi/ggCB3OM6uPgm
 pNm79pDnEn4VOyYcMpiCv6+7SiQrnoAFAQGrZpWcF+L4flsb9lP+Z5SCV0kuYBORpNQQ
 alYg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:sender:from:to:cc:subject:date:message-id;
 bh=fjftcWxztBrKaC8FJlau0CkS0xZ3tI1bhy9ZE9cbZ+A=;
 b=XkxfSmWMCzG0L7WxOUqX+O476Ug7Uyqm9ec6cdHWnvoepIkJVq+xaq3dapvsPd0kNe
 O2nvhDxiD7yoteQzqMQaL9hx/Mrk6tO7Wgqq7EeAKCGu8AyHkZJUvZCABie9hI+G4amy
 jRyZ+qlofSbbo5gmh51SzeKgUMJbmF8/H3oMxWpOpvQ9Jog0jzlU1Iz6OH5z/LENlJug
 hX2jA8JX5Ixvh1jVnDHkbOy69ZyGRqsl6W1/G4qEM5ABbHt+zvaBpyU42ORCV7nAyvlz
 EgvEckl9WEs3gOybRPUE2/Asglqt3ZAJOnaoIOKIDdXvwEjFXqSqo/r8SISpeYdP+oMn
 42TQ==
X-Gm-Message-State: ALyK8tLKqBHtq2EfAFg/bEM7Kr0jJYyt98EsmFkfeZSH2Eek9WS6lGiC8bLgylcQMKrJvA==
X-Received: by 10.194.104.134 with SMTP id ge6mr6071841wjb.157.1467985045589; 
 Fri, 08 Jul 2016 06:37:25 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id a84sm3142987wma.0.2016.07.08.06.37.24
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
 Fri, 08 Jul 2016 06:37:24 -0700 (PDT)
From: Ben Chalmers <ben.ch@lmers.co.uk>
X-Google-Original-From: Ben Chalmers <Ben.Chalmers@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Fri,  8 Jul 2016 14:37:01 +0100
Message-Id: <1467985021-22472-1-git-send-email-Ben.Chalmers@citrix.com>
X-Mailer: git-send-email 2.7.0.windows.1
X-Mailman-Approved-At: Fri, 08 Jul 2016 15:29:45 +0000
Cc: Ben Chalmers <Ben.Chalmers@citrix.com>
Subject: [win-pv-devel] [PATCH] An ioctl should fail on any invalid argument
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

UHJldmlvdXNseSBmYWlsdXJlcyBoYXBwZW5lZCBvbmx5IGlmIGFsbCBhcmd1bWVudHMKd2VyZSBp
bnZhbGlkLCBsZWFkaW5nIHRvIGJ1Z2NoZWNrcyBpZiBib3RoIEluTGVuCmFuZCBPdXRMZW4gd2Vy
ZSAwCgpTaWduZWQtb2ZmLWJ5OiBCZW4uQ2hhbG1lcnNAY2l0cml4LmNvbQotLS0KIHNyYy94ZW5p
ZmFjZS9pb2N0bF9nbnR0YWIuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr
KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyYy94ZW5pZmFjZS9pb2N0bF9nbnR0YWIu
YyBiL3NyYy94ZW5pZmFjZS9pb2N0bF9nbnR0YWIuYwppbmRleCBhNjkyZjI5Li4wMmU5MjMxIDEw
MDY0NAotLS0gYS9zcmMveGVuaWZhY2UvaW9jdGxfZ250dGFiLmMKKysrIGIvc3JjL3hlbmlmYWNl
L2lvY3RsX2dudHRhYi5jCkBAIC03MTIsNyArNzEyLDcgQEAgSW9jdGxHbnR0YWJVbm1hcEZvcmVp
Z25QYWdlcygKICAgICBQWEVOSUZBQ0VfQ09OVEVYVF9JRCBDb250ZXh0SWQ7CiAKICAgICBzdGF0
dXMgPSBTVEFUVVNfSU5WQUxJRF9CVUZGRVJfU0laRTsKLSAgICBpZiAoSW5MZW4gIT0gc2l6ZW9m
KFhFTklGQUNFX0dOVFRBQl9VTk1BUF9GT1JFSUdOX1BBR0VTX0lOKSAmJgorICAgIGlmIChJbkxl
biAhPSBzaXplb2YoWEVOSUZBQ0VfR05UVEFCX1VOTUFQX0ZPUkVJR05fUEFHRVNfSU4pIHx8CiAg
ICAgICAgIE91dExlbiAhPSAwKSB7CiAgICAgICAgIGdvdG8gZmFpbDE7CiAgICAgfQotLSAKMi43
LjAud2luZG93cy4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJv
amVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlz
dGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Mon Jul 11 08:52:17 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 11 Jul 2016 08:52:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bMWwp-0001OD-AB; Mon, 11 Jul 2016 08:52:15 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=993de7993=Paul.Durrant@citrix.com>)
 id 1bMWwo-0001O2-2n
 for win-pv-devel@lists.xenproject.org; Mon, 11 Jul 2016 08:52:14 +0000
Received: from [85.158.139.211] by server-6.bemta-5.messagelabs.com id
 50/07-00606-D3E53875; Mon, 11 Jul 2016 08:52:13 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrKIsWRWlGSWpSXmKPExsWyU9JRQtcmrjn
 c4MleY4s/ixMdGD0Of7jCEsAYxZqZl5RfkcCacbdzF0vBSb6KYy+8Ghg38HUxcnJICPhJXDm1
 iAnEZhPQkVh6dD6YLSKQL/Hg9jm2LkYODmYBLYmHzVYgprBAoMSf7XYQFUEST/68BqsQETCSu
 NgrChJmEVCVOL16HRuIzSvgLrHoVScziC0EZL/Ye5UFpJxTwENi3mtFkDCjgKzEl8bVYCXMAu
 ISt55A7JcQEJBYsuc8M4QtKvHy8T9WCNtAYuvSfSwQd2lKrN+lD9GqKDGl+yE7xFZBiZMzn7B
 AbFWR2PL4ANQYbomVn/+wTGAUnYVk2yyESbOQTJqFZNICRpZVjBrFqUVlqUW6RqZ6SUWZ6Rkl
 uYmZObqGBqZ6uanFxYnpqTmJScV6yfm5mxiB0VHPwMC4g3FXu98hRkkOJiVR3kkOzeFCfEn5K
 ZUZicUZ8UWlOanFhxhlODiUJHitY4FygkWp6akVaZk5wDiFSUtw8CiJ8LqCpHmLCxJzizPTIV
 KnGBWlxHlZQRICIImM0jy4NlhquMQoKyXMy8jAwCDEU5BalJtZgir/ilGcg1FJmPdODNAUnsy
 8Erjpr4AWMwEtrnUAW1ySiJCSamDMfRDZmfDSQyVYNv29WOxdsXmMUaXRic12sdOOd+vv0ri/
 8uiMuv3LEnmv8n3YOl9trtkNvh2XryowBMSZTeDqvPfaK+yEQEOLkO5vhZDFtn2+5aYP+XYYC
 frN+3SUo0axnKF8p134s+LQObOE26tUC5O4OC5+NchSUzHi+LPv30W75U979ymxFGckGmoxFx
 UnAgA/MaDQCAMAAA==
X-Env-Sender: prvs=993de7993=Paul.Durrant@citrix.com
X-Msg-Ref: server-7.tower-206.messagelabs.com!1468227132!49250055!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: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28348 invoked from network); 11 Jul 2016 08:52:12 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-7.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 11 Jul 2016 08:52:12 -0000
X-IronPort-AV: E=Sophos;i="5.28,345,1464652800"; d="scan'208";a="25947828"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Ben Chalmers <ben.ch@lmers.co.uk>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH] An ioctl should fail on any invalid
 argument
Thread-Index: AQHR2S2d3PuQAc0oOU6UXqNUwjSJTKAS78ng
Date: Mon, 11 Jul 2016 08:49:31 +0000
Message-ID: <49a8a044064046cdadc782155e7bc43d@AMSPEX02CL03.citrite.net>
References: <1467985021-22472-1-git-send-email-Ben.Chalmers@citrix.com>
In-Reply-To: <1467985021-22472-1-git-send-email-Ben.Chalmers@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Ben Chalmers <ben.chalmers@citrix.com>
Subject: Re: [win-pv-devel] [PATCH] An ioctl should fail on any invalid
 argument
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIEJlbiBDaGFsbWVycw0KPiBTZW50OiAwOCBKdWx5IDIwMTYgMTQ6MzcNCj4gVG86IHdpbi1w
di1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogQmVuIENoYWxtZXJzDQo+IFN1Ympl
Y3Q6IFt3aW4tcHYtZGV2ZWxdIFtQQVRDSF0gQW4gaW9jdGwgc2hvdWxkIGZhaWwgb24gYW55IGlu
dmFsaWQgYXJndW1lbnQNCj4gDQo+IFByZXZpb3VzbHkgZmFpbHVyZXMgaGFwcGVuZWQgb25seSBp
ZiBhbGwgYXJndW1lbnRzDQo+IHdlcmUgaW52YWxpZCwgbGVhZGluZyB0byBidWdjaGVja3MgaWYg
Ym90aCBJbkxlbg0KPiBhbmQgT3V0TGVuIHdlcmUgMA0KPiANCj4gU2lnbmVkLW9mZi1ieTogQmVu
LkNoYWxtZXJzQGNpdHJpeC5jb20NCg0KQWNrZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJy
YW50QGNpdHJpeC5jb20+DQoNCj4gLS0tDQo+ICBzcmMveGVuaWZhY2UvaW9jdGxfZ250dGFiLmMg
fCAyICstDQo+ICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkN
Cj4gDQo+IGRpZmYgLS1naXQgYS9zcmMveGVuaWZhY2UvaW9jdGxfZ250dGFiLmMgYi9zcmMveGVu
aWZhY2UvaW9jdGxfZ250dGFiLmMNCj4gaW5kZXggYTY5MmYyOS4uMDJlOTIzMSAxMDA2NDQNCj4g
LS0tIGEvc3JjL3hlbmlmYWNlL2lvY3RsX2dudHRhYi5jDQo+ICsrKyBiL3NyYy94ZW5pZmFjZS9p
b2N0bF9nbnR0YWIuYw0KPiBAQCAtNzEyLDcgKzcxMiw3IEBAIElvY3RsR250dGFiVW5tYXBGb3Jl
aWduUGFnZXMoDQo+ICAgICAgUFhFTklGQUNFX0NPTlRFWFRfSUQgQ29udGV4dElkOw0KPiANCj4g
ICAgICBzdGF0dXMgPSBTVEFUVVNfSU5WQUxJRF9CVUZGRVJfU0laRTsNCj4gLSAgICBpZiAoSW5M
ZW4gIT0gc2l6ZW9mKFhFTklGQUNFX0dOVFRBQl9VTk1BUF9GT1JFSUdOX1BBR0VTX0lOKSAmJg0K
PiArICAgIGlmIChJbkxlbiAhPSBzaXplb2YoWEVOSUZBQ0VfR05UVEFCX1VOTUFQX0ZPUkVJR05f
UEFHRVNfSU4pIHx8DQo+ICAgICAgICAgIE91dExlbiAhPSAwKSB7DQo+ICAgICAgICAgIGdvdG8g
ZmFpbDE7DQo+ICAgICAgfQ0KPiAtLQ0KPiAyLjcuMC53aW5kb3dzLjENCj4gDQo+IA0KPiBfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiB3aW4tcHYtZGV2
ZWwgbWFpbGluZyBsaXN0DQo+IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBo
dHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4t
cHYtZGV2ZWwNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Cndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qu
b3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZv
L3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Mon Jul 11 08:52:17 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 11 Jul 2016 08:52:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bMWwp-0001OD-AB; Mon, 11 Jul 2016 08:52:15 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=993de7993=Paul.Durrant@citrix.com>)
 id 1bMWwo-0001O2-2n
 for win-pv-devel@lists.xenproject.org; Mon, 11 Jul 2016 08:52:14 +0000
Received: from [85.158.139.211] by server-6.bemta-5.messagelabs.com id
 50/07-00606-D3E53875; Mon, 11 Jul 2016 08:52:13 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrKIsWRWlGSWpSXmKPExsWyU9JRQtcmrjn
 c4MleY4s/ixMdGD0Of7jCEsAYxZqZl5RfkcCacbdzF0vBSb6KYy+8Ghg38HUxcnJICPhJXDm1
 iAnEZhPQkVh6dD6YLSKQL/Hg9jm2LkYODmYBLYmHzVYgprBAoMSf7XYQFUEST/68BqsQETCSu
 NgrChJmEVCVOL16HRuIzSvgLrHoVScziC0EZL/Ye5UFpJxTwENi3mtFkDCjgKzEl8bVYCXMAu
 ISt55A7JcQEJBYsuc8M4QtKvHy8T9WCNtAYuvSfSwQd2lKrN+lD9GqKDGl+yE7xFZBiZMzn7B
 AbFWR2PL4ANQYbomVn/+wTGAUnYVk2yyESbOQTJqFZNICRpZVjBrFqUVlqUW6RqZ6SUWZ6Rkl
 uYmZObqGBqZ6uanFxYnpqTmJScV6yfm5mxiB0VHPwMC4g3FXu98hRkkOJiVR3kkOzeFCfEn5K
 ZUZicUZ8UWlOanFhxhlODiUJHitY4FygkWp6akVaZk5wDiFSUtw8CiJ8LqCpHmLCxJzizPTIV
 KnGBWlxHlZQRICIImM0jy4NlhquMQoKyXMy8jAwCDEU5BalJtZgir/ilGcg1FJmPdODNAUnsy
 8Erjpr4AWMwEtrnUAW1ySiJCSamDMfRDZmfDSQyVYNv29WOxdsXmMUaXRic12sdOOd+vv0ri/
 8uiMuv3LEnmv8n3YOl9trtkNvh2XryowBMSZTeDqvPfaK+yEQEOLkO5vhZDFtn2+5aYP+XYYC
 frN+3SUo0axnKF8p134s+LQObOE26tUC5O4OC5+NchSUzHi+LPv30W75U979ymxFGckGmoxFx
 UnAgA/MaDQCAMAAA==
X-Env-Sender: prvs=993de7993=Paul.Durrant@citrix.com
X-Msg-Ref: server-7.tower-206.messagelabs.com!1468227132!49250055!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: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28348 invoked from network); 11 Jul 2016 08:52:12 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-7.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 11 Jul 2016 08:52:12 -0000
X-IronPort-AV: E=Sophos;i="5.28,345,1464652800"; d="scan'208";a="25947828"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Ben Chalmers <ben.ch@lmers.co.uk>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH] An ioctl should fail on any invalid
 argument
Thread-Index: AQHR2S2d3PuQAc0oOU6UXqNUwjSJTKAS78ng
Date: Mon, 11 Jul 2016 08:49:31 +0000
Message-ID: <49a8a044064046cdadc782155e7bc43d@AMSPEX02CL03.citrite.net>
References: <1467985021-22472-1-git-send-email-Ben.Chalmers@citrix.com>
In-Reply-To: <1467985021-22472-1-git-send-email-Ben.Chalmers@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Ben Chalmers <ben.chalmers@citrix.com>
Subject: Re: [win-pv-devel] [PATCH] An ioctl should fail on any invalid
 argument
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIEJlbiBDaGFsbWVycw0KPiBTZW50OiAwOCBKdWx5IDIwMTYgMTQ6MzcNCj4gVG86IHdpbi1w
di1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogQmVuIENoYWxtZXJzDQo+IFN1Ympl
Y3Q6IFt3aW4tcHYtZGV2ZWxdIFtQQVRDSF0gQW4gaW9jdGwgc2hvdWxkIGZhaWwgb24gYW55IGlu
dmFsaWQgYXJndW1lbnQNCj4gDQo+IFByZXZpb3VzbHkgZmFpbHVyZXMgaGFwcGVuZWQgb25seSBp
ZiBhbGwgYXJndW1lbnRzDQo+IHdlcmUgaW52YWxpZCwgbGVhZGluZyB0byBidWdjaGVja3MgaWYg
Ym90aCBJbkxlbg0KPiBhbmQgT3V0TGVuIHdlcmUgMA0KPiANCj4gU2lnbmVkLW9mZi1ieTogQmVu
LkNoYWxtZXJzQGNpdHJpeC5jb20NCg0KQWNrZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJy
YW50QGNpdHJpeC5jb20+DQoNCj4gLS0tDQo+ICBzcmMveGVuaWZhY2UvaW9jdGxfZ250dGFiLmMg
fCAyICstDQo+ICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkN
Cj4gDQo+IGRpZmYgLS1naXQgYS9zcmMveGVuaWZhY2UvaW9jdGxfZ250dGFiLmMgYi9zcmMveGVu
aWZhY2UvaW9jdGxfZ250dGFiLmMNCj4gaW5kZXggYTY5MmYyOS4uMDJlOTIzMSAxMDA2NDQNCj4g
LS0tIGEvc3JjL3hlbmlmYWNlL2lvY3RsX2dudHRhYi5jDQo+ICsrKyBiL3NyYy94ZW5pZmFjZS9p
b2N0bF9nbnR0YWIuYw0KPiBAQCAtNzEyLDcgKzcxMiw3IEBAIElvY3RsR250dGFiVW5tYXBGb3Jl
aWduUGFnZXMoDQo+ICAgICAgUFhFTklGQUNFX0NPTlRFWFRfSUQgQ29udGV4dElkOw0KPiANCj4g
ICAgICBzdGF0dXMgPSBTVEFUVVNfSU5WQUxJRF9CVUZGRVJfU0laRTsNCj4gLSAgICBpZiAoSW5M
ZW4gIT0gc2l6ZW9mKFhFTklGQUNFX0dOVFRBQl9VTk1BUF9GT1JFSUdOX1BBR0VTX0lOKSAmJg0K
PiArICAgIGlmIChJbkxlbiAhPSBzaXplb2YoWEVOSUZBQ0VfR05UVEFCX1VOTUFQX0ZPUkVJR05f
UEFHRVNfSU4pIHx8DQo+ICAgICAgICAgIE91dExlbiAhPSAwKSB7DQo+ICAgICAgICAgIGdvdG8g
ZmFpbDE7DQo+ICAgICAgfQ0KPiAtLQ0KPiAyLjcuMC53aW5kb3dzLjENCj4gDQo+IA0KPiBfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiB3aW4tcHYtZGV2
ZWwgbWFpbGluZyBsaXN0DQo+IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBo
dHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4t
cHYtZGV2ZWwNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Cndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qu
b3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZv
L3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Mon Jul 11 14:05:58 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 11 Jul 2016 14:05:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bMbqO-0006Pe-Rx; Mon, 11 Jul 2016 14:05:56 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <eytanh@gmail.com>) id 1bMbqN-0006PY-Id
 for win-pv-devel@lists.xenproject.org; Mon, 11 Jul 2016 14:05:55 +0000
Received: from [85.158.139.211] by server-6.bemta-5.messagelabs.com id
 DB/5A-00606-2C7A3875; Mon, 11 Jul 2016 14:05:54 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrFIsWRWlGSWpSXmKPExsVyMfT+Id1Dy5v
 DDbZu5rL4szjRgdHj8IcrLAGMUayZeUn5FQmsGZ1vOhgLXotULDnbxNzAuFqoi5GLQ0hgFqPE
 nVXP2UEcFoE7LBJXXjcydTFyckgI/GCRODGtDMLOkfi5dAs7hF0k8fjjHTCbV0BQ4uTMJywgt
 pCAj8Teb2cYQWw2AW2J7b0tzCA2i4CqxLpDW9kg6gMkDk/4DDZfWMBM4srXz2BxEaCaa8uPgd
 nMAl4SZ+9uYZzAyDsLyYpZSFKzGDmAbHWJ9fOEIMJqEre3XWWHsLUlli18zbyAkXUVo3pxalF
 ZapGusV5SUWZ6RkluYmaOrqGBqV5uanFxYnpqTmJSsV5yfu4mRmAIMgDBDsa9/5wOMUpyMCmJ
 8i7tbw4X4kvKT6nMSCzOiC8qzUktPsQow8GhJMHLBwxpIcGi1PTUirTMHGA0wKQlOHiURHgFQ
 NK8xQWJucWZ6RCpU4zGHFt+X1vLxLFt6r21TEIsefl5qVLivA+XAZUKgJRmlObBDYJF6SVGWS
 lhXkag04R4ClKLcjNLUOVfMYpzMCoJ884FmcKTmVcCt+8V0ClMQKfUOoCdUpKIkJJqYJwgsWL
 Gyq/d11cK3xUSSI58+KL2h0KQxL43UfotH59ZH3l2tGpym3ap4630nueLlrrz7so7kPH0QfTG
 B4+vOFWyxCTbzmVZLaZSbPa4duL3FWkz/NVjxEU/b+qeKPTDOmuJl5H9FOPdtz8/KDzsZSNQy
 D29fDHj5sQn/N80f8YUPGnPclhovl+JpTgj0VCLuag4EQA7NI0rzQIAAA==
X-Env-Sender: eytanh@gmail.com
X-Msg-Ref: server-14.tower-206.messagelabs.com!1468245953!13100081!1
X-Originating-IP: [209.85.223.194]
X-SpamReason: No, hits=0.9 required=7.0 tests=HTML_40_50,HTML_MESSAGE,
 RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 6995 invoked from network); 11 Jul 2016 14:05:54 -0000
Received: from mail-io0-f194.google.com (HELO mail-io0-f194.google.com)
 (209.85.223.194)
 by server-14.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 11 Jul 2016 14:05:54 -0000
Received: by mail-io0-f194.google.com with SMTP id y34so265482ioi.3
 for <win-pv-devel@lists.xenproject.org>; Mon, 11 Jul 2016 07:05:53 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=mime-version:from:date:message-id:subject:to;
 bh=37R7RGTsjD0lG9fqMmo+gAZdoZJPadxk4zN425PmjCA=;
 b=qDuEJvK2TsTLGic/+p5XQouGnAYVILUXR0e9R9iB+aBvtEBPmVq4uN1tXb1500yQoU
 p3CqnhXnMl3mq1AhvctBkndNk3Pt5h3ahdwCj20vtrUUOwU5iSVG6a53t4ms5BqL4bDk
 OYvODKKvO1helx+0RFjf4ZQCi+JblgU/8MHDfE+FL6ojhcl7LXvP7epAKTKHqsakUKfj
 O7B4hVaEuUI8JVhoAtyN8Xmi2wiyGw1KmfR8ZwDpJ0uebV0M6aDvwl0ItiVZFLUTfDoN
 QI9S2M8etN6RaCBu9pavhoDV4QUiLMoM0LelzQvAig4VgcIAXGVYepRcFVR3FhoxTLYV
 V0cA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:mime-version:from:date:message-id:subject:to;
 bh=37R7RGTsjD0lG9fqMmo+gAZdoZJPadxk4zN425PmjCA=;
 b=lE+YGDdjFguPMXotdN2SubguoTIbhP3RpHzUR3yD3CN0iX7GtAvSNdXedyHeTHhixB
 tIEcougZF5EBcdNy3DdlmWxiZ/3pSf9ykIDKuoz+2xbcWMceBzE/gQDYfa6RE3cuc4sN
 xepALc1a2S2w6BrAcJPMbA8f9xPGkTGzYqFrhHORVQ72ggZThwanzKN47/551XoVo1jf
 dQbxEiJXRmwJouGO6SplxcCL9tZhcesv4VcCaEdf7jO2O/CZt9QcuS10cjd+oY4mghcb
 cokZKkr/vHnIQ4lQfVj/rVPPPIHvmzPNwzmO2OHz8C0lYmBKSu10FdXKTkZUZEadpzGy
 O4/g==
X-Gm-Message-State: ALyK8tKfYzAgAn7JbeaCBkPWQVhFjDhH2W7UE496L4quwDYWQmqv40IRsN5eTNkap2N5wDsiQPG8cZm/QYC8gw==
X-Received: by 10.107.6.233 with SMTP id f102mr1049058ioi.55.1468245952566;
 Mon, 11 Jul 2016 07:05:52 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.107.153.130 with HTTP; Mon, 11 Jul 2016 07:05:52 -0700 (PDT)
From: Eytan Heidingsfeld <eytanh@gmail.com>
Date: Mon, 11 Jul 2016 17:05:52 +0300
Message-ID: <CAGjCcQNrfvCTQmatbt37ouFC+MRRSyhhbkpz6di0PR4YbwVURg@mail.gmail.com>
To: win-pv-devel@lists.xenproject.org
Subject: [win-pv-devel] Patch for Unexpected Initial States of XenVif
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0609009998616420744=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============0609009998616420744==
Content-Type: multipart/alternative; boundary=001a113ee4a672216205375ca6b3

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

Hello,
I've noticed that the support for unexpected initial states that was added
to support iscsi boot in commit: c9b6e56e7342a1bb31cfb79f28b6a00d05954006,

As there was quite a bit of refactoring around that area I've created a
small patch that fixes the issue again,



diff --git a/src/xenvif/frontend.c b/src/xenvif/frontend.c
index 5a29736..aef6680 100644
--- a/src/xenvif/frontend.c
+++ b/src/xenvif/frontend.c
@@ -1521,6 +1521,11 @@ FrontendPrepare(
             FrontendSetXenbusState(Frontend,
                                    XenbusStateInitialising);
             break;
+
+ case XenbusStateConnected:
+ FrontendSetXenbusState(Frontend,
+ XenbusStateClosing);
+ break;

         case XenbusStateClosing:
             FrontendSetXenbusState(Frontend,
-- 
1.9.5.msysgit.0

Cheers,
Eytan

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

<div dir=3D"ltr">Hello,<br>I&#39;ve noticed that the support for unexpected=
 initial states that was added to support iscsi boot in commit:=C2=A0c9b6e5=
6e7342a1bb31cfb79f28b6a00d05954006,<div><br></div><div>As there was quite a=
 bit of refactoring around that area I&#39;ve created a small patch that fi=
xes the issue again,<br><br><br></div><div><div><br></div><div>diff --git a=
/src/xenvif/frontend.c b/src/xenvif/frontend.c</div><div>index 5a29736..aef=
6680 100644</div><div>--- a/src/xenvif/frontend.c</div><div>+++ b/src/xenvi=
f/frontend.c</div><div>@@ -1521,6 +1521,11 @@ FrontendPrepare(</div><div>=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0FrontendSetXenbusState(Fron=
tend,</div><div>=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 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 XenbusSt=
ateInitialising);</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0break;</div><div>+<span class=3D"" style=3D"white-space:pre">		</span></=
div><div>+<span class=3D"" style=3D"white-space:pre">		</span>case XenbusSt=
ateConnected:</div><div>+<span class=3D"" style=3D"white-space:pre">			</sp=
an>FrontendSetXenbusState(Frontend,</div><div>+<span class=3D"" style=3D"wh=
ite-space:pre">				</span>XenbusStateClosing);</div><div>+<span class=3D"" =
style=3D"white-space:pre">			</span>break;</div><div>=C2=A0</div><div>=C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0case XenbusStateClosing:</div><div>=C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0FrontendSetXenbusState(Frontend,</=
div><div>--=C2=A0</div><div>1.9.5.msysgit.0</div></div><div><br></div><div>=
Cheers,</div><div>Eytan</div></div>

--001a113ee4a672216205375ca6b3--


--===============0609009998616420744==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============0609009998616420744==--


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 11 14:05:58 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 11 Jul 2016 14:05:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bMbqO-0006Pe-Rx; Mon, 11 Jul 2016 14:05:56 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <eytanh@gmail.com>) id 1bMbqN-0006PY-Id
 for win-pv-devel@lists.xenproject.org; Mon, 11 Jul 2016 14:05:55 +0000
Received: from [85.158.139.211] by server-6.bemta-5.messagelabs.com id
 DB/5A-00606-2C7A3875; Mon, 11 Jul 2016 14:05:54 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrFIsWRWlGSWpSXmKPExsVyMfT+Id1Dy5v
 DDbZu5rL4szjRgdHj8IcrLAGMUayZeUn5FQmsGZ1vOhgLXotULDnbxNzAuFqoi5GLQ0hgFqPE
 nVXP2UEcFoE7LBJXXjcydTFyckgI/GCRODGtDMLOkfi5dAs7hF0k8fjjHTCbV0BQ4uTMJywgt
 pCAj8Teb2cYQWw2AW2J7b0tzCA2i4CqxLpDW9kg6gMkDk/4DDZfWMBM4srXz2BxEaCaa8uPgd
 nMAl4SZ+9uYZzAyDsLyYpZSFKzGDmAbHWJ9fOEIMJqEre3XWWHsLUlli18zbyAkXUVo3pxalF
 ZapGusV5SUWZ6RkluYmaOrqGBqV5uanFxYnpqTmJSsV5yfu4mRmAIMgDBDsa9/5wOMUpyMCmJ
 8i7tbw4X4kvKT6nMSCzOiC8qzUktPsQow8GhJMHLBwxpIcGi1PTUirTMHGA0wKQlOHiURHgFQ
 NK8xQWJucWZ6RCpU4zGHFt+X1vLxLFt6r21TEIsefl5qVLivA+XAZUKgJRmlObBDYJF6SVGWS
 lhXkag04R4ClKLcjNLUOVfMYpzMCoJ884FmcKTmVcCt+8V0ClMQKfUOoCdUpKIkJJqYJwgsWL
 Gyq/d11cK3xUSSI58+KL2h0KQxL43UfotH59ZH3l2tGpym3ap4630nueLlrrz7so7kPH0QfTG
 B4+vOFWyxCTbzmVZLaZSbPa4duL3FWkz/NVjxEU/b+qeKPTDOmuJl5H9FOPdtz8/KDzsZSNQy
 D29fDHj5sQn/N80f8YUPGnPclhovl+JpTgj0VCLuag4EQA7NI0rzQIAAA==
X-Env-Sender: eytanh@gmail.com
X-Msg-Ref: server-14.tower-206.messagelabs.com!1468245953!13100081!1
X-Originating-IP: [209.85.223.194]
X-SpamReason: No, hits=0.9 required=7.0 tests=HTML_40_50,HTML_MESSAGE,
 RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 6995 invoked from network); 11 Jul 2016 14:05:54 -0000
Received: from mail-io0-f194.google.com (HELO mail-io0-f194.google.com)
 (209.85.223.194)
 by server-14.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 11 Jul 2016 14:05:54 -0000
Received: by mail-io0-f194.google.com with SMTP id y34so265482ioi.3
 for <win-pv-devel@lists.xenproject.org>; Mon, 11 Jul 2016 07:05:53 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=mime-version:from:date:message-id:subject:to;
 bh=37R7RGTsjD0lG9fqMmo+gAZdoZJPadxk4zN425PmjCA=;
 b=qDuEJvK2TsTLGic/+p5XQouGnAYVILUXR0e9R9iB+aBvtEBPmVq4uN1tXb1500yQoU
 p3CqnhXnMl3mq1AhvctBkndNk3Pt5h3ahdwCj20vtrUUOwU5iSVG6a53t4ms5BqL4bDk
 OYvODKKvO1helx+0RFjf4ZQCi+JblgU/8MHDfE+FL6ojhcl7LXvP7epAKTKHqsakUKfj
 O7B4hVaEuUI8JVhoAtyN8Xmi2wiyGw1KmfR8ZwDpJ0uebV0M6aDvwl0ItiVZFLUTfDoN
 QI9S2M8etN6RaCBu9pavhoDV4QUiLMoM0LelzQvAig4VgcIAXGVYepRcFVR3FhoxTLYV
 V0cA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:mime-version:from:date:message-id:subject:to;
 bh=37R7RGTsjD0lG9fqMmo+gAZdoZJPadxk4zN425PmjCA=;
 b=lE+YGDdjFguPMXotdN2SubguoTIbhP3RpHzUR3yD3CN0iX7GtAvSNdXedyHeTHhixB
 tIEcougZF5EBcdNy3DdlmWxiZ/3pSf9ykIDKuoz+2xbcWMceBzE/gQDYfa6RE3cuc4sN
 xepALc1a2S2w6BrAcJPMbA8f9xPGkTGzYqFrhHORVQ72ggZThwanzKN47/551XoVo1jf
 dQbxEiJXRmwJouGO6SplxcCL9tZhcesv4VcCaEdf7jO2O/CZt9QcuS10cjd+oY4mghcb
 cokZKkr/vHnIQ4lQfVj/rVPPPIHvmzPNwzmO2OHz8C0lYmBKSu10FdXKTkZUZEadpzGy
 O4/g==
X-Gm-Message-State: ALyK8tKfYzAgAn7JbeaCBkPWQVhFjDhH2W7UE496L4quwDYWQmqv40IRsN5eTNkap2N5wDsiQPG8cZm/QYC8gw==
X-Received: by 10.107.6.233 with SMTP id f102mr1049058ioi.55.1468245952566;
 Mon, 11 Jul 2016 07:05:52 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.107.153.130 with HTTP; Mon, 11 Jul 2016 07:05:52 -0700 (PDT)
From: Eytan Heidingsfeld <eytanh@gmail.com>
Date: Mon, 11 Jul 2016 17:05:52 +0300
Message-ID: <CAGjCcQNrfvCTQmatbt37ouFC+MRRSyhhbkpz6di0PR4YbwVURg@mail.gmail.com>
To: win-pv-devel@lists.xenproject.org
Subject: [win-pv-devel] Patch for Unexpected Initial States of XenVif
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0609009998616420744=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============0609009998616420744==
Content-Type: multipart/alternative; boundary=001a113ee4a672216205375ca6b3

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

Hello,
I've noticed that the support for unexpected initial states that was added
to support iscsi boot in commit: c9b6e56e7342a1bb31cfb79f28b6a00d05954006,

As there was quite a bit of refactoring around that area I've created a
small patch that fixes the issue again,



diff --git a/src/xenvif/frontend.c b/src/xenvif/frontend.c
index 5a29736..aef6680 100644
--- a/src/xenvif/frontend.c
+++ b/src/xenvif/frontend.c
@@ -1521,6 +1521,11 @@ FrontendPrepare(
             FrontendSetXenbusState(Frontend,
                                    XenbusStateInitialising);
             break;
+
+ case XenbusStateConnected:
+ FrontendSetXenbusState(Frontend,
+ XenbusStateClosing);
+ break;

         case XenbusStateClosing:
             FrontendSetXenbusState(Frontend,
-- 
1.9.5.msysgit.0

Cheers,
Eytan

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

<div dir=3D"ltr">Hello,<br>I&#39;ve noticed that the support for unexpected=
 initial states that was added to support iscsi boot in commit:=C2=A0c9b6e5=
6e7342a1bb31cfb79f28b6a00d05954006,<div><br></div><div>As there was quite a=
 bit of refactoring around that area I&#39;ve created a small patch that fi=
xes the issue again,<br><br><br></div><div><div><br></div><div>diff --git a=
/src/xenvif/frontend.c b/src/xenvif/frontend.c</div><div>index 5a29736..aef=
6680 100644</div><div>--- a/src/xenvif/frontend.c</div><div>+++ b/src/xenvi=
f/frontend.c</div><div>@@ -1521,6 +1521,11 @@ FrontendPrepare(</div><div>=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0FrontendSetXenbusState(Fron=
tend,</div><div>=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 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 XenbusSt=
ateInitialising);</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0break;</div><div>+<span class=3D"" style=3D"white-space:pre">		</span></=
div><div>+<span class=3D"" style=3D"white-space:pre">		</span>case XenbusSt=
ateConnected:</div><div>+<span class=3D"" style=3D"white-space:pre">			</sp=
an>FrontendSetXenbusState(Frontend,</div><div>+<span class=3D"" style=3D"wh=
ite-space:pre">				</span>XenbusStateClosing);</div><div>+<span class=3D"" =
style=3D"white-space:pre">			</span>break;</div><div>=C2=A0</div><div>=C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0case XenbusStateClosing:</div><div>=C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0FrontendSetXenbusState(Frontend,</=
div><div>--=C2=A0</div><div>1.9.5.msysgit.0</div></div><div><br></div><div>=
Cheers,</div><div>Eytan</div></div>

--001a113ee4a672216205375ca6b3--


--===============0609009998616420744==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============0609009998616420744==--


From win-pv-devel-bounces@lists.xenproject.org Tue Jul 12 08:54:48 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Jul 2016 08:54:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bMtSp-00038d-Ka; Tue, 12 Jul 2016 08:54:47 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <illuminoid@gmail.com>) id 1bMtSo-00038X-Aj
 for win-pv-devel@lists.xenproject.org; Tue, 12 Jul 2016 08:54:46 +0000
Received: from [85.158.139.211] by server-7.bemta-5.messagelabs.com id
 67/42-10476-550B4875; Tue, 12 Jul 2016 08:54:45 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrDIsWRWlGSWpSXmKPExsVyMfSqk27ohpZ
 wg7b7zBZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y+3BjewFC1gr9t5byNrAOJWli5GLQ0hgBqPE
 hiuNTCAOi0AXq8TmhkdgGQmBZawSOxZ+Zu9i5ARyYiT2z//CAmFXSTz4v4kRxBYSUJZYuBTEB
 hk1j0niyNkGsISwgLbEtC1bWEFsNgF1ibWdv5khmu0kvl47CzZUREBV4tryY2wgNrOAlsS9Tw
 eYIXo9JLrXfgSrYQGq+bzkPVgNr4C7xIcpO6EO0pDo3/GIHSIuKHFy5hMWiDnyEtvfzmGewCg
 0C0lqFpLUAkamVYwaxalFZalFuoZGeklFmekZJbmJmTm6hgamermpxcWJ6ak5iUnFesn5uZsY
 gaHLAAQ7GPtmOR9ilORgUhLlbWZuCRfiS8pPqcxILM6ILyrNSS0+xCjDwaEkwauxHignWJSan
 lqRlpkDjCKYtAQHj5IIbylImre4IDG3ODMdInWK0ZJjy+9ra5k4Fvy4DSS3Tb23lkmIJS8/L1
 VKnFcFpEEApCGjNA9uHCzSLzHKSgnzMgIdKMRTkFqUm1mCKv+KUZyDUUmY1wZkCk9mXgnc1ld
 ABzEBHVTr0AxyUEkiQkqqgdHJdYV1R8jdz0darBg2u3z9HDhpR9OLx6ap+T4rZvMGXRbbtfbj
 4ZhTRs9ZDyosL528/lHjL4Wmjxs2lK66f8d+wnLGD68PGJX5zTtxlst5ncgkK2tJH4ajQnG31
 259E7Bb2L9R1Ory1SerPrFtDeN1qxG8NlFQb6Lvwy0KXtsmNLnPuBS1pfaGEktxRqKhFnNRcS
 IA8wbpCu8CAAA=
X-Env-Sender: illuminoid@gmail.com
X-Msg-Ref: server-12.tower-206.messagelabs.com!1468313684!13256102!1
X-Originating-IP: [209.85.213.66]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 46171 invoked from network); 12 Jul 2016 08:54:44 -0000
Received: from mail-vk0-f66.google.com (HELO mail-vk0-f66.google.com)
 (209.85.213.66)
 by server-12.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 12 Jul 2016 08:54:44 -0000
Received: by mail-vk0-f66.google.com with SMTP id a5so564981vkc.2
 for <win-pv-devel@lists.xenproject.org>; Tue, 12 Jul 2016 01:54:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=sender:from:to:cc:subject:date:message-id:mime-version
 :content-transfer-encoding;
 bh=OWoFGpOalYCk5DPo/Nu/Y2uKfak7Tu3iNavoYjLRbAw=;
 b=VaO44JCIHUu/VgJ1axRDUHQ9dqcfGGNdioVq1gTmOMp5roZWOWdv5Z3833wzK8rQyD
 mMDi0yja27hsaeqf1UEx+WNM4/MGZxRWWwCdfo2apX5tSqNJJjMmfew0+zIwNKwIQMjv
 CPMC2UMGV1H8+2e51CWCACDmFTUAFRYTNuNFpg/NJeSdJ/aok7NHUiLD9iCSaXcBEY6h
 JFUaGzgjmicQcANOevz6qhGymF/VKlWy0+j7cpNv9kLSxOExliKoLiteTiwU3eqV/9Wb
 8MdEHgMpMoYPguvkgNbQNPxV11kQs3sJFNmCBdItcrXNsaf94vtdqGiIdcALJuQJfmcI
 VYZQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:sender:from:to:cc:subject:date:message-id
 :mime-version:content-transfer-encoding;
 bh=OWoFGpOalYCk5DPo/Nu/Y2uKfak7Tu3iNavoYjLRbAw=;
 b=ZXaS69voCg3T9ZQzvpJxv/W07QQN+zclbNBlw09tetPDATiKHZBowb1g7V27QhsyXg
 mC982qIduRYD0KJrvnrrOtf3256XKRoycEutLqp7BGJDp+c/A/cYjFX5ZLkfCYIBzsU2
 EWWgdR1Vy7w+k/ULx0gPo69WSZCKjFjDimzKI7GOrTJ38P4qqQE0bptQsGvVL2o3ESIL
 tl5c/p6C4tVFG6lVd6ywJH5AkqP/utk5FFdoao6KYxuJct4AxyKNDalw6jUDi0uz5hFF
 AW5huOttjM4wbmGzIKuUuN0cTyRPrwhxKrof/TGYVmtYd59L265azw1Zmxdkhym53/xA
 fTdw==
X-Gm-Message-State: ALyK8tKX54ba6KSNxrNYs+VdO0TGzQRbPjI8Cs0wHZ31gCk3VwmKdCzawyowU+D1c8aDIQ==
X-Received: by 10.31.182.129 with SMTP id g123mr515432vkf.101.1468313683640;
 Tue, 12 Jul 2016 01:54:43 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id 6sm1673021uap.13.2016.07.12.01.54.42
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
 Tue, 12 Jul 2016 01:54:42 -0700 (PDT)
From: Ben Chalmers <ben.ch@lmers.co.uk>
X-Google-Original-From: Ben Chalmers <Ben.Chalmers@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 12 Jul 2016 09:54:29 +0100
Message-Id: <1468313670-20472-1-git-send-email-Ben.Chalmers@citrix.com>
X-Mailer: git-send-email 2.7.0.windows.1
MIME-Version: 1.0
Cc: Ben Chalmers <Ben.Chalmers@citrix.com>
Subject: [win-pv-devel] [PATCH 1/2] Only break FrontendBackend thread loop
	when alerted
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

UmV0dXJucyBhIG1pc3NlZCAnIScgY2hhcmFjdGVyIHdpdGhvdXQgd2hpY2ggdGhlIEZyb250ZW5k
QmFja2VuZAp0aHJlYWQgZXhpdHMgaW1tZWRpYXRlbHkgLSByYXRoZXIgdGhhbiB3aGVuIHdlIEFs
ZXJ0IHRoZSB0aHJlYWQKdGhhdCB3ZSB3aXNoIGl0IHRvIGV4aXQKClNpZ25lZC1vZmYtYnkgOiBC
ZW4uQ2hhbG1lcnNAY2l0cml4LmNvbQotLS0KIHNyYy94ZW52YmQvZnJvbnRlbmQuYyB8IDIgKy0K
IDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdp
dCBhL3NyYy94ZW52YmQvZnJvbnRlbmQuYyBiL3NyYy94ZW52YmQvZnJvbnRlbmQuYwppbmRleCAy
ZGQ5ZmM3Li4xYWVjOTllIDEwMDY0NAotLS0gYS9zcmMveGVudmJkL2Zyb250ZW5kLmMKKysrIGIv
c3JjL3hlbnZiZC9mcm9udGVuZC5jCkBAIC0xNTE1LDcgKzE1MTUsNyBAQCBGcm9udGVuZEJhY2tl
bmQoCiAgICAgZm9yICg7OykgewogICAgICAgICBLSVJRTCAgICAgICBJcnFsOwogCi0gICAgICAg
IGlmIChUaHJlYWRXYWl0KFRocmVhZCkpCisgICAgICAgIGlmICghVGhyZWFkV2FpdChUaHJlYWQp
KQogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgS2VBY3F1aXJlU3BpbkxvY2soJkZyb250
ZW5kLT5TdGF0ZUxvY2ssICZJcnFsKTsKLS0gCjIuNy4wLndpbmRvd3MuMQoKCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5n
IGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVu
cHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 12 08:54:48 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Jul 2016 08:54:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bMtSp-00038d-Ka; Tue, 12 Jul 2016 08:54:47 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <illuminoid@gmail.com>) id 1bMtSo-00038X-Aj
 for win-pv-devel@lists.xenproject.org; Tue, 12 Jul 2016 08:54:46 +0000
Received: from [85.158.139.211] by server-7.bemta-5.messagelabs.com id
 67/42-10476-550B4875; Tue, 12 Jul 2016 08:54:45 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrDIsWRWlGSWpSXmKPExsVyMfSqk27ohpZ
 wg7b7zBZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y+3BjewFC1gr9t5byNrAOJWli5GLQ0hgBqPE
 hiuNTCAOi0AXq8TmhkdgGQmBZawSOxZ+Zu9i5ARyYiT2z//CAmFXSTz4v4kRxBYSUJZYuBTEB
 hk1j0niyNkGsISwgLbEtC1bWEFsNgF1ibWdv5khmu0kvl47CzZUREBV4tryY2wgNrOAlsS9Tw
 eYIXo9JLrXfgSrYQGq+bzkPVgNr4C7xIcpO6EO0pDo3/GIHSIuKHFy5hMWiDnyEtvfzmGewCg
 0C0lqFpLUAkamVYwaxalFZalFuoZGeklFmekZJbmJmTm6hgamermpxcWJ6ak5iUnFesn5uZsY
 gaHLAAQ7GPtmOR9ilORgUhLlbWZuCRfiS8pPqcxILM6ILyrNSS0+xCjDwaEkwauxHignWJSan
 lqRlpkDjCKYtAQHj5IIbylImre4IDG3ODMdInWK0ZJjy+9ra5k4Fvy4DSS3Tb23lkmIJS8/L1
 VKnFcFpEEApCGjNA9uHCzSLzHKSgnzMgIdKMRTkFqUm1mCKv+KUZyDUUmY1wZkCk9mXgnc1ld
 ABzEBHVTr0AxyUEkiQkqqgdHJdYV1R8jdz0darBg2u3z9HDhpR9OLx6ap+T4rZvMGXRbbtfbj
 4ZhTRs9ZDyosL528/lHjL4Wmjxs2lK66f8d+wnLGD68PGJX5zTtxlst5ncgkK2tJH4ajQnG31
 259E7Bb2L9R1Ory1SerPrFtDeN1qxG8NlFQb6Lvwy0KXtsmNLnPuBS1pfaGEktxRqKhFnNRcS
 IA8wbpCu8CAAA=
X-Env-Sender: illuminoid@gmail.com
X-Msg-Ref: server-12.tower-206.messagelabs.com!1468313684!13256102!1
X-Originating-IP: [209.85.213.66]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 46171 invoked from network); 12 Jul 2016 08:54:44 -0000
Received: from mail-vk0-f66.google.com (HELO mail-vk0-f66.google.com)
 (209.85.213.66)
 by server-12.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 12 Jul 2016 08:54:44 -0000
Received: by mail-vk0-f66.google.com with SMTP id a5so564981vkc.2
 for <win-pv-devel@lists.xenproject.org>; Tue, 12 Jul 2016 01:54:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=sender:from:to:cc:subject:date:message-id:mime-version
 :content-transfer-encoding;
 bh=OWoFGpOalYCk5DPo/Nu/Y2uKfak7Tu3iNavoYjLRbAw=;
 b=VaO44JCIHUu/VgJ1axRDUHQ9dqcfGGNdioVq1gTmOMp5roZWOWdv5Z3833wzK8rQyD
 mMDi0yja27hsaeqf1UEx+WNM4/MGZxRWWwCdfo2apX5tSqNJJjMmfew0+zIwNKwIQMjv
 CPMC2UMGV1H8+2e51CWCACDmFTUAFRYTNuNFpg/NJeSdJ/aok7NHUiLD9iCSaXcBEY6h
 JFUaGzgjmicQcANOevz6qhGymF/VKlWy0+j7cpNv9kLSxOExliKoLiteTiwU3eqV/9Wb
 8MdEHgMpMoYPguvkgNbQNPxV11kQs3sJFNmCBdItcrXNsaf94vtdqGiIdcALJuQJfmcI
 VYZQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:sender:from:to:cc:subject:date:message-id
 :mime-version:content-transfer-encoding;
 bh=OWoFGpOalYCk5DPo/Nu/Y2uKfak7Tu3iNavoYjLRbAw=;
 b=ZXaS69voCg3T9ZQzvpJxv/W07QQN+zclbNBlw09tetPDATiKHZBowb1g7V27QhsyXg
 mC982qIduRYD0KJrvnrrOtf3256XKRoycEutLqp7BGJDp+c/A/cYjFX5ZLkfCYIBzsU2
 EWWgdR1Vy7w+k/ULx0gPo69WSZCKjFjDimzKI7GOrTJ38P4qqQE0bptQsGvVL2o3ESIL
 tl5c/p6C4tVFG6lVd6ywJH5AkqP/utk5FFdoao6KYxuJct4AxyKNDalw6jUDi0uz5hFF
 AW5huOttjM4wbmGzIKuUuN0cTyRPrwhxKrof/TGYVmtYd59L265azw1Zmxdkhym53/xA
 fTdw==
X-Gm-Message-State: ALyK8tKX54ba6KSNxrNYs+VdO0TGzQRbPjI8Cs0wHZ31gCk3VwmKdCzawyowU+D1c8aDIQ==
X-Received: by 10.31.182.129 with SMTP id g123mr515432vkf.101.1468313683640;
 Tue, 12 Jul 2016 01:54:43 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id 6sm1673021uap.13.2016.07.12.01.54.42
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
 Tue, 12 Jul 2016 01:54:42 -0700 (PDT)
From: Ben Chalmers <ben.ch@lmers.co.uk>
X-Google-Original-From: Ben Chalmers <Ben.Chalmers@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 12 Jul 2016 09:54:29 +0100
Message-Id: <1468313670-20472-1-git-send-email-Ben.Chalmers@citrix.com>
X-Mailer: git-send-email 2.7.0.windows.1
MIME-Version: 1.0
Cc: Ben Chalmers <Ben.Chalmers@citrix.com>
Subject: [win-pv-devel] [PATCH 1/2] Only break FrontendBackend thread loop
	when alerted
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

UmV0dXJucyBhIG1pc3NlZCAnIScgY2hhcmFjdGVyIHdpdGhvdXQgd2hpY2ggdGhlIEZyb250ZW5k
QmFja2VuZAp0aHJlYWQgZXhpdHMgaW1tZWRpYXRlbHkgLSByYXRoZXIgdGhhbiB3aGVuIHdlIEFs
ZXJ0IHRoZSB0aHJlYWQKdGhhdCB3ZSB3aXNoIGl0IHRvIGV4aXQKClNpZ25lZC1vZmYtYnkgOiBC
ZW4uQ2hhbG1lcnNAY2l0cml4LmNvbQotLS0KIHNyYy94ZW52YmQvZnJvbnRlbmQuYyB8IDIgKy0K
IDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdp
dCBhL3NyYy94ZW52YmQvZnJvbnRlbmQuYyBiL3NyYy94ZW52YmQvZnJvbnRlbmQuYwppbmRleCAy
ZGQ5ZmM3Li4xYWVjOTllIDEwMDY0NAotLS0gYS9zcmMveGVudmJkL2Zyb250ZW5kLmMKKysrIGIv
c3JjL3hlbnZiZC9mcm9udGVuZC5jCkBAIC0xNTE1LDcgKzE1MTUsNyBAQCBGcm9udGVuZEJhY2tl
bmQoCiAgICAgZm9yICg7OykgewogICAgICAgICBLSVJRTCAgICAgICBJcnFsOwogCi0gICAgICAg
IGlmIChUaHJlYWRXYWl0KFRocmVhZCkpCisgICAgICAgIGlmICghVGhyZWFkV2FpdChUaHJlYWQp
KQogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgS2VBY3F1aXJlU3BpbkxvY2soJkZyb250
ZW5kLT5TdGF0ZUxvY2ssICZJcnFsKTsKLS0gCjIuNy4wLndpbmRvd3MuMQoKCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5n
IGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVu
cHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 12 08:57:11 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Jul 2016 08:57:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bMtV8-0003CE-RM; Tue, 12 Jul 2016 08:57:10 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <illuminoid@gmail.com>) id 1bMtV6-0003C8-Us
 for win-pv-devel@lists.xenproject.org; Tue, 12 Jul 2016 08:57:09 +0000
Received: from [85.158.143.35] by server-1.bemta-6.messagelabs.com id
 3C/CD-09256-4E0B4875; Tue, 12 Jul 2016 08:57:08 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrMIsWRWlGSWpSXmKPExsVyMfSqo+7jDS3
 hBrt6NCz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxusD81kKJopV3D3xjbmB8bFAFyMXh5DATEaJ
 G/uesII4LAILWSUOfVzJBuJICOxllfh08AxjFyMnkBMjceD4GjYIu0Ji5rKXzCC2kICyxMKlm
 xghRs1jkti96QFYg7CAtsS0LVtYQWw2AXWJtZ2/mSGa7SS+XjvLDmKLCKhKXFt+DGwos4CWxL
 1PB5ghesMldq3aDWazANW8u/UPrIZXwF3i/6q9UHM0JPp3PAKbwyngIbF78TEmiIPcJW78/cg
 IUS8ocXLmExaI+fIS29/OYZ7AKDILSWoWktQCRqZVjOrFqUVlqUW6hnpJRZnpGSW5iZk5uoYG
 Znq5qcXFiempOYlJxXrJ+bmbGIGBzgAEOxh3Pnc6xCjJwaQkytvM3BIuxJeUn1KZkVicEV9Um
 pNafIhRhoNDSYJ34XqgnGBRanpqRVpmDjDmYNISHDxKIrwbQdK8xQWJucWZ6RCpU4yWHFt+X1
 vLxDFr+R0guW3qvbVMQix5+XmpUuK8c0AaBEAaMkrz4MbB0sIlRlkpYV5GoAOFeApSi3IzS1D
 lXzGKczAqCfPuAJnCk5lXArf1FdBBTEAH1To0gxxUkoiQkmpgTBLcct3Ep0A6o7Q598D6G1dV
 6qZ/eFDhJNq3pOPMt/C0b5/evK1xWGOuLVoSHOu4ZELpTffvpXo3Turaep3O/hF4rHn3BV1Vv
 p+xk4xLThTFTL5b6jN3QS7P9rWN4qkRt/lVJy/xZD63L8ErXvfxk58yMg/nHxYyPB++w0n86w
 85HkHbMu//SizFGYmGWsxFxYkAPfzxvwYDAAA=
X-Env-Sender: illuminoid@gmail.com
X-Msg-Ref: server-14.tower-21.messagelabs.com!1468313826!23361944!1
X-Originating-IP: [209.85.213.65]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 11193 invoked from network); 12 Jul 2016 08:57:07 -0000
Received: from mail-vk0-f65.google.com (HELO mail-vk0-f65.google.com)
 (209.85.213.65)
 by server-14.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 12 Jul 2016 08:57:07 -0000
Received: by mail-vk0-f65.google.com with SMTP id o63so570813vkg.0
 for <win-pv-devel@lists.xenproject.org>; Tue, 12 Jul 2016 01:57:07 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=sender:from:to:cc:subject:date:message-id:in-reply-to:references
 :mime-version:content-transfer-encoding;
 bh=4EJPXpjyh96y5I46CDaryRBpSQSm4RN7nJnbRqJKkUQ=;
 b=jauCEC7F9P5pGXQa4aAh2pow6xNnIur4T4VBbaPLcDogk/UYQU+PenJezf2xm/yjat
 Y/sRx5vmRsquDU/iJ3Xg2PS0+G4L2YNjRqckVQoSrlfHCTYAnhU45k6MxZjHHmGYQnu2
 rSqgGPbCnmcWbqj4pxM1Lx03wCpjsnK8ZZEAsZlqFvy0/hhuDSTtYr6oaRdH4J9OGcEv
 zKcHn7ZUWHgLA7q7WdZI5xuhskGmKmBx+luqNAZIp1XxzLW4/fEHzTZiZo4jWfkkZeeb
 QoKhSTiOCOFdhyZXOBPHXYeebV9u2+v0Tn1qolVMBUDlw8OttflN2sq1S9hqwHI0VBpm
 91Ew==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:sender:from:to:cc:subject:date:message-id
 :in-reply-to:references:mime-version:content-transfer-encoding;
 bh=4EJPXpjyh96y5I46CDaryRBpSQSm4RN7nJnbRqJKkUQ=;
 b=GHyRLmhBsV6cMMoOa6tppfRmLodrltG0Lard61ISZCZHIBu9/1qrEKQvk8f4IP+N50
 ScdXNPF/slnrBOOhHg7qgAibxAgGWK/fgle6gcuVBxlb16b8/8EoSmsnbIsdvF425WKN
 ndlinOXRZxSgtHBJpmASAK7V4I9iQxDVVJe7y6t4dZsnShbOR977pjFF880FI/u+PDJn
 YKZaSGmPY/SQYpjm67LZypqkcokFun8TL0jmvUueivARD4ACo7u2LW9fgPx7WMqaPOVT
 sTPAqQrEEF2KiXbiH/qf2mpXnfGRzhvmcr0aDjB9bENZb0mF83oYAWaWD01XYV9qRVij
 yyqA==
X-Gm-Message-State: ALyK8tK1RZB07LEREtn/wg9hA6ySr5bz6OZjdZHtTSmdKzO49lQsqSNzmb0zIAoUukudaQ==
X-Received: by 10.176.65.71 with SMTP id j65mr493796uad.103.1468313823419;
 Tue, 12 Jul 2016 01:57:03 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id 6sm1673021uap.13.2016.07.12.01.57.02
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
 Tue, 12 Jul 2016 01:57:02 -0700 (PDT)
From: Ben Chalmers <ben.ch@lmers.co.uk>
X-Google-Original-From: Ben Chalmers <Ben.Chalmers@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 12 Jul 2016 09:54:30 +0100
Message-Id: <1468313670-20472-2-git-send-email-Ben.Chalmers@citrix.com>
X-Mailer: git-send-email 2.7.0.windows.1
In-Reply-To: <1468313670-20472-1-git-send-email-Ben.Chalmers@citrix.com>
References: <1468313670-20472-1-git-send-email-Ben.Chalmers@citrix.com>
MIME-Version: 1.0
Cc: Ben Chalmers <Ben.Chalmers@citrix.com>
Subject: [win-pv-devel] [PATCH 2/2] Revert "Remove PdoPnpSrb,
	since StorPort doesn't call for targets"
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhpcyByZXZlcnRzIGNvbW1pdCAwZjlmNTQyMTA5OWQxZGFiZWQxMWQ5ODhiMzE0NGZiOGY2YmZl
ZDNiLgoKSXQgYXBwZWFycyB0aGF0IHRoaXMgY29kZSBpcyBjYWxsZWQgd2hlbiBkZXRlcm1pbmlu
ZyBpZiBXaW5kb3dzCmNhbiByZW1vdmUgYSBQViBkaXNrLiAgV2l0aG91dCBpdCBXaW5kb3dzIHdp
bGwgbm90IGtub3cgdGhlCmRpc2sgaXMgcmVtb3ZhYmxlIGFuZCB3aWxsIHJlZnVzZSB0byBhbGxv
dyBpdCB0byBiZSByZW1vdmVkCgpTaWduZWQtb2ZmLWJ5OiBCZW4uQ2hhbG1lcnNAY2l0cml4LmNv
bQotLS0KIHNyYy94ZW52YmQvZmRvLmMgfCAyMSArKysrKysrKysrKysrKysrKysrKysKIHNyYy94
ZW52YmQvcGRvLmMgfCAyOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMveGVudmJk
L3Bkby5oIHwgIDYgKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDU1IGluc2VydGlvbnMoKykKCmRp
ZmYgLS1naXQgYS9zcmMveGVudmJkL2Zkby5jIGIvc3JjL3hlbnZiZC9mZG8uYwppbmRleCBhNGZi
ZDNkLi41ZjE3NzhiIDEwMDY0NAotLS0gYS9zcmMveGVudmJkL2Zkby5jCisrKyBiL3NyYy94ZW52
YmQvZmRvLmMKQEAgLTE4MzksNiArMTgzOSwyMyBAQCBGZG9GaW5kQWRhcHRlcigKICAgICByZXR1
cm4gU1BfUkVUVVJOX0ZPVU5EOwogfQogCitzdGF0aWMgRk9SQ0VJTkxJTkUgVk9JRAorX19GZG9T
cmJQbnAoCisgICAgX19pbiBQWEVOVkJEX0ZETyAgICAgICAgICAgICAgICAgRmRvLAorICAgIF9f
aW4gUFNDU0lfUE5QX1JFUVVFU1RfQkxPQ0sgICAgIFNyYgorICAgICkKK3sKKyAgICBpZiAoIShT
cmItPlNyYlBuUEZsYWdzICYgU1JCX1BOUF9GTEFHU19BREFQVEVSX1JFUVVFU1QpKSB7CisgICAg
ICAgIFBYRU5WQkRfUERPICAgICBQZG87CisKKyAgICAgICAgUGRvID0gX19GZG9HZXRQZG8oRmRv
LCBTcmItPlRhcmdldElkKTsKKyAgICAgICAgaWYgKFBkbykgeworICAgICAgICAgICAgUGRvU3Ji
UG5wKFBkbywgU3JiKTsKKyAgICAgICAgICAgIFBkb0RlcmVmZXJlbmNlKFBkbyk7CisgICAgICAg
IH0KKyAgICB9Cit9CisKIEJPT0xFQU4gCiBGZG9CdWlsZElvKAogICAgIF9faW4gUFhFTlZCRF9G
RE8gICAgICAgICAgICAgICAgIEZkbywKQEAgLTE4NTYsNiArMTg3MywxMCBAQCBGZG9CdWlsZElv
KAogICAgICAgICByZXR1cm4gVFJVRTsKIAogICAgICAgICAvLyBkb250IHBhc3MgdG8gU3RhcnRJ
bworICAgIGNhc2UgU1JCX0ZVTkNUSU9OX1BOUDoKKyAgICAgICAgX19GZG9TcmJQbnAoRmRvLCAo
UFNDU0lfUE5QX1JFUVVFU1RfQkxPQ0spU3JiKTsKKyAgICAgICAgU3JiLT5TcmJTdGF0dXMgPSBT
UkJfU1RBVFVTX1NVQ0NFU1M7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU1JCX0ZVTkNUSU9O
X0FCT1JUX0NPTU1BTkQ6CiAgICAgICAgIFNyYi0+U3JiU3RhdHVzID0gU1JCX1NUQVRVU19BQk9S
VF9GQUlMRUQ7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC9wZG8uYyBi
L3NyYy94ZW52YmQvcGRvLmMKaW5kZXggMzU2NWNjNi4uM2NhNTQ0MCAxMDA2NDQKLS0tIGEvc3Jj
L3hlbnZiZC9wZG8uYworKysgYi9zcmMveGVudmJkL3Bkby5jCkBAIC0yMjM3LDYgKzIyMzcsMzQg
QEAgUGRvUmVzZXQoCiAKICAgICBUcmFjZSgiVGFyZ2V0WyVkXSA8PT09PSAoSXJxbD0lZClcbiIs
IFBkb0dldFRhcmdldElkKFBkbyksIEtlR2V0Q3VycmVudElycWwoKSk7CiB9CisgICAgCisgICAg
CitWT0lECitQZG9TcmJQbnAoCisgICAgX19pbiBQWEVOVkJEX1BETyAgICAgICAgICAgICBQZG8s
CisgICAgX19pbiBQU0NTSV9QTlBfUkVRVUVTVF9CTE9DSyBTcmIKKyAgICApCit7CisgICAgc3dp
dGNoIChTcmItPlBuUEFjdGlvbikgeworICAgIGNhc2UgU3RvclF1ZXJ5Q2FwYWJpbGl0aWVzOiB7
CisgICAgICAgIFBTVE9SX0RFVklDRV9DQVBBQklMSVRJRVMgRGV2aWNlQ2FwcyA9IFNyYi0+RGF0
YUJ1ZmZlcjsKKyAgICAgICAgUFhFTlZCRF9DQVBTICAgIENhcHMgPSBGcm9udGVuZEdldENhcHMo
UGRvLT5Gcm9udGVuZCk7CisKKyAgICAgICAgaWYgKENhcHMtPlJlbW92YWJsZSkKKyAgICAgICAg
ICAgIERldmljZUNhcHMtPlJlbW92YWJsZSA9IDE7CisgICAgICAgIGlmIChDYXBzLT5SZW1vdmFi
bGUpCisgICAgICAgICAgICBEZXZpY2VDYXBzLT5FamVjdFN1cHBvcnRlZCA9IDE7CisgICAgICAg
IGlmIChDYXBzLT5TdXJwcmlzZVJlbW92YWJsZSkKKyAgICAgICAgICAgIERldmljZUNhcHMtPlN1
cnByaXNlUmVtb3ZhbE9LID0gMTsKKyAgICAKKyAgICAgICAgRGV2aWNlQ2Fwcy0+VW5pcXVlSUQg
PSAxOworCisgICAgICAgIH0gYnJlYWs7CisKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsK
KyAgICB9Cit9CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFBuUCBIYW5kbGVyCmRpZmYg
LS1naXQgYS9zcmMveGVudmJkL3Bkby5oIGIvc3JjL3hlbnZiZC9wZG8uaAppbmRleCA5NDZjMzRm
Li42ZTNlY2E1IDEwMDY0NAotLS0gYS9zcmMveGVudmJkL3Bkby5oCisrKyBiL3NyYy94ZW52YmQv
cGRvLmgKQEAgLTIwNCw2ICsyMDQsMTIgQEAgUGRvU3RhcnRJbygKICAgICBfX2luIFBTQ1NJX1JF
UVVFU1RfQkxPQ0sgICAgIFNyYgogICAgICk7CiAKK2V4dGVybiBWT0lECitQZG9TcmJQbnAoCisg
ICAgX19pbiBQWEVOVkJEX1BETyAgICAgICAgICAgICBQZG8sCisgICAgX19pbiBQU0NTSV9QTlBf
UkVRVUVTVF9CTE9DSyBTcmIKKyAgICApOworCiAvLyBQblAgSGFuZGxlcgogX19jaGVja1JldHVy
bgogZXh0ZXJuIE5UU1RBVFVTCi0tIAoyLjcuMC53aW5kb3dzLjEKCgpfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0
Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2pl
Y3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 12 08:57:11 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Jul 2016 08:57:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bMtV8-0003CE-RM; Tue, 12 Jul 2016 08:57:10 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <illuminoid@gmail.com>) id 1bMtV6-0003C8-Us
 for win-pv-devel@lists.xenproject.org; Tue, 12 Jul 2016 08:57:09 +0000
Received: from [85.158.143.35] by server-1.bemta-6.messagelabs.com id
 3C/CD-09256-4E0B4875; Tue, 12 Jul 2016 08:57:08 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrMIsWRWlGSWpSXmKPExsVyMfSqo+7jDS3
 hBrt6NCz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxusD81kKJopV3D3xjbmB8bFAFyMXh5DATEaJ
 G/uesII4LAILWSUOfVzJBuJICOxllfh08AxjFyMnkBMjceD4GjYIu0Ji5rKXzCC2kICyxMKlm
 xghRs1jkti96QFYg7CAtsS0LVtYQWw2AXWJtZ2/mSGa7SS+XjvLDmKLCKhKXFt+DGwos4CWxL
 1PB5ghesMldq3aDWazANW8u/UPrIZXwF3i/6q9UHM0JPp3PAKbwyngIbF78TEmiIPcJW78/cg
 IUS8ocXLmExaI+fIS29/OYZ7AKDILSWoWktQCRqZVjOrFqUVlqUW6hnpJRZnpGSW5iZk5uoYG
 Znq5qcXFiempOYlJxXrJ+bmbGIGBzgAEOxh3Pnc6xCjJwaQkytvM3BIuxJeUn1KZkVicEV9Um
 pNafIhRhoNDSYJ34XqgnGBRanpqRVpmDjDmYNISHDxKIrwbQdK8xQWJucWZ6RCpU4yWHFt+X1
 vLxDFr+R0guW3qvbVMQix5+XmpUuK8c0AaBEAaMkrz4MbB0sIlRlkpYV5GoAOFeApSi3IzS1D
 lXzGKczAqCfPuAJnCk5lXArf1FdBBTEAH1To0gxxUkoiQkmpgTBLcct3Ep0A6o7Q598D6G1dV
 6qZ/eFDhJNq3pOPMt/C0b5/evK1xWGOuLVoSHOu4ZELpTffvpXo3Turaep3O/hF4rHn3BV1Vv
 p+xk4xLThTFTL5b6jN3QS7P9rWN4qkRt/lVJy/xZD63L8ErXvfxk58yMg/nHxYyPB++w0n86w
 85HkHbMu//SizFGYmGWsxFxYkAPfzxvwYDAAA=
X-Env-Sender: illuminoid@gmail.com
X-Msg-Ref: server-14.tower-21.messagelabs.com!1468313826!23361944!1
X-Originating-IP: [209.85.213.65]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 11193 invoked from network); 12 Jul 2016 08:57:07 -0000
Received: from mail-vk0-f65.google.com (HELO mail-vk0-f65.google.com)
 (209.85.213.65)
 by server-14.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 12 Jul 2016 08:57:07 -0000
Received: by mail-vk0-f65.google.com with SMTP id o63so570813vkg.0
 for <win-pv-devel@lists.xenproject.org>; Tue, 12 Jul 2016 01:57:07 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=sender:from:to:cc:subject:date:message-id:in-reply-to:references
 :mime-version:content-transfer-encoding;
 bh=4EJPXpjyh96y5I46CDaryRBpSQSm4RN7nJnbRqJKkUQ=;
 b=jauCEC7F9P5pGXQa4aAh2pow6xNnIur4T4VBbaPLcDogk/UYQU+PenJezf2xm/yjat
 Y/sRx5vmRsquDU/iJ3Xg2PS0+G4L2YNjRqckVQoSrlfHCTYAnhU45k6MxZjHHmGYQnu2
 rSqgGPbCnmcWbqj4pxM1Lx03wCpjsnK8ZZEAsZlqFvy0/hhuDSTtYr6oaRdH4J9OGcEv
 zKcHn7ZUWHgLA7q7WdZI5xuhskGmKmBx+luqNAZIp1XxzLW4/fEHzTZiZo4jWfkkZeeb
 QoKhSTiOCOFdhyZXOBPHXYeebV9u2+v0Tn1qolVMBUDlw8OttflN2sq1S9hqwHI0VBpm
 91Ew==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:sender:from:to:cc:subject:date:message-id
 :in-reply-to:references:mime-version:content-transfer-encoding;
 bh=4EJPXpjyh96y5I46CDaryRBpSQSm4RN7nJnbRqJKkUQ=;
 b=GHyRLmhBsV6cMMoOa6tppfRmLodrltG0Lard61ISZCZHIBu9/1qrEKQvk8f4IP+N50
 ScdXNPF/slnrBOOhHg7qgAibxAgGWK/fgle6gcuVBxlb16b8/8EoSmsnbIsdvF425WKN
 ndlinOXRZxSgtHBJpmASAK7V4I9iQxDVVJe7y6t4dZsnShbOR977pjFF880FI/u+PDJn
 YKZaSGmPY/SQYpjm67LZypqkcokFun8TL0jmvUueivARD4ACo7u2LW9fgPx7WMqaPOVT
 sTPAqQrEEF2KiXbiH/qf2mpXnfGRzhvmcr0aDjB9bENZb0mF83oYAWaWD01XYV9qRVij
 yyqA==
X-Gm-Message-State: ALyK8tK1RZB07LEREtn/wg9hA6ySr5bz6OZjdZHtTSmdKzO49lQsqSNzmb0zIAoUukudaQ==
X-Received: by 10.176.65.71 with SMTP id j65mr493796uad.103.1468313823419;
 Tue, 12 Jul 2016 01:57:03 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id 6sm1673021uap.13.2016.07.12.01.57.02
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
 Tue, 12 Jul 2016 01:57:02 -0700 (PDT)
From: Ben Chalmers <ben.ch@lmers.co.uk>
X-Google-Original-From: Ben Chalmers <Ben.Chalmers@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 12 Jul 2016 09:54:30 +0100
Message-Id: <1468313670-20472-2-git-send-email-Ben.Chalmers@citrix.com>
X-Mailer: git-send-email 2.7.0.windows.1
In-Reply-To: <1468313670-20472-1-git-send-email-Ben.Chalmers@citrix.com>
References: <1468313670-20472-1-git-send-email-Ben.Chalmers@citrix.com>
MIME-Version: 1.0
Cc: Ben Chalmers <Ben.Chalmers@citrix.com>
Subject: [win-pv-devel] [PATCH 2/2] Revert "Remove PdoPnpSrb,
	since StorPort doesn't call for targets"
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhpcyByZXZlcnRzIGNvbW1pdCAwZjlmNTQyMTA5OWQxZGFiZWQxMWQ5ODhiMzE0NGZiOGY2YmZl
ZDNiLgoKSXQgYXBwZWFycyB0aGF0IHRoaXMgY29kZSBpcyBjYWxsZWQgd2hlbiBkZXRlcm1pbmlu
ZyBpZiBXaW5kb3dzCmNhbiByZW1vdmUgYSBQViBkaXNrLiAgV2l0aG91dCBpdCBXaW5kb3dzIHdp
bGwgbm90IGtub3cgdGhlCmRpc2sgaXMgcmVtb3ZhYmxlIGFuZCB3aWxsIHJlZnVzZSB0byBhbGxv
dyBpdCB0byBiZSByZW1vdmVkCgpTaWduZWQtb2ZmLWJ5OiBCZW4uQ2hhbG1lcnNAY2l0cml4LmNv
bQotLS0KIHNyYy94ZW52YmQvZmRvLmMgfCAyMSArKysrKysrKysrKysrKysrKysrKysKIHNyYy94
ZW52YmQvcGRvLmMgfCAyOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMveGVudmJk
L3Bkby5oIHwgIDYgKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDU1IGluc2VydGlvbnMoKykKCmRp
ZmYgLS1naXQgYS9zcmMveGVudmJkL2Zkby5jIGIvc3JjL3hlbnZiZC9mZG8uYwppbmRleCBhNGZi
ZDNkLi41ZjE3NzhiIDEwMDY0NAotLS0gYS9zcmMveGVudmJkL2Zkby5jCisrKyBiL3NyYy94ZW52
YmQvZmRvLmMKQEAgLTE4MzksNiArMTgzOSwyMyBAQCBGZG9GaW5kQWRhcHRlcigKICAgICByZXR1
cm4gU1BfUkVUVVJOX0ZPVU5EOwogfQogCitzdGF0aWMgRk9SQ0VJTkxJTkUgVk9JRAorX19GZG9T
cmJQbnAoCisgICAgX19pbiBQWEVOVkJEX0ZETyAgICAgICAgICAgICAgICAgRmRvLAorICAgIF9f
aW4gUFNDU0lfUE5QX1JFUVVFU1RfQkxPQ0sgICAgIFNyYgorICAgICkKK3sKKyAgICBpZiAoIShT
cmItPlNyYlBuUEZsYWdzICYgU1JCX1BOUF9GTEFHU19BREFQVEVSX1JFUVVFU1QpKSB7CisgICAg
ICAgIFBYRU5WQkRfUERPICAgICBQZG87CisKKyAgICAgICAgUGRvID0gX19GZG9HZXRQZG8oRmRv
LCBTcmItPlRhcmdldElkKTsKKyAgICAgICAgaWYgKFBkbykgeworICAgICAgICAgICAgUGRvU3Ji
UG5wKFBkbywgU3JiKTsKKyAgICAgICAgICAgIFBkb0RlcmVmZXJlbmNlKFBkbyk7CisgICAgICAg
IH0KKyAgICB9Cit9CisKIEJPT0xFQU4gCiBGZG9CdWlsZElvKAogICAgIF9faW4gUFhFTlZCRF9G
RE8gICAgICAgICAgICAgICAgIEZkbywKQEAgLTE4NTYsNiArMTg3MywxMCBAQCBGZG9CdWlsZElv
KAogICAgICAgICByZXR1cm4gVFJVRTsKIAogICAgICAgICAvLyBkb250IHBhc3MgdG8gU3RhcnRJ
bworICAgIGNhc2UgU1JCX0ZVTkNUSU9OX1BOUDoKKyAgICAgICAgX19GZG9TcmJQbnAoRmRvLCAo
UFNDU0lfUE5QX1JFUVVFU1RfQkxPQ0spU3JiKTsKKyAgICAgICAgU3JiLT5TcmJTdGF0dXMgPSBT
UkJfU1RBVFVTX1NVQ0NFU1M7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU1JCX0ZVTkNUSU9O
X0FCT1JUX0NPTU1BTkQ6CiAgICAgICAgIFNyYi0+U3JiU3RhdHVzID0gU1JCX1NUQVRVU19BQk9S
VF9GQUlMRUQ7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC9wZG8uYyBi
L3NyYy94ZW52YmQvcGRvLmMKaW5kZXggMzU2NWNjNi4uM2NhNTQ0MCAxMDA2NDQKLS0tIGEvc3Jj
L3hlbnZiZC9wZG8uYworKysgYi9zcmMveGVudmJkL3Bkby5jCkBAIC0yMjM3LDYgKzIyMzcsMzQg
QEAgUGRvUmVzZXQoCiAKICAgICBUcmFjZSgiVGFyZ2V0WyVkXSA8PT09PSAoSXJxbD0lZClcbiIs
IFBkb0dldFRhcmdldElkKFBkbyksIEtlR2V0Q3VycmVudElycWwoKSk7CiB9CisgICAgCisgICAg
CitWT0lECitQZG9TcmJQbnAoCisgICAgX19pbiBQWEVOVkJEX1BETyAgICAgICAgICAgICBQZG8s
CisgICAgX19pbiBQU0NTSV9QTlBfUkVRVUVTVF9CTE9DSyBTcmIKKyAgICApCit7CisgICAgc3dp
dGNoIChTcmItPlBuUEFjdGlvbikgeworICAgIGNhc2UgU3RvclF1ZXJ5Q2FwYWJpbGl0aWVzOiB7
CisgICAgICAgIFBTVE9SX0RFVklDRV9DQVBBQklMSVRJRVMgRGV2aWNlQ2FwcyA9IFNyYi0+RGF0
YUJ1ZmZlcjsKKyAgICAgICAgUFhFTlZCRF9DQVBTICAgIENhcHMgPSBGcm9udGVuZEdldENhcHMo
UGRvLT5Gcm9udGVuZCk7CisKKyAgICAgICAgaWYgKENhcHMtPlJlbW92YWJsZSkKKyAgICAgICAg
ICAgIERldmljZUNhcHMtPlJlbW92YWJsZSA9IDE7CisgICAgICAgIGlmIChDYXBzLT5SZW1vdmFi
bGUpCisgICAgICAgICAgICBEZXZpY2VDYXBzLT5FamVjdFN1cHBvcnRlZCA9IDE7CisgICAgICAg
IGlmIChDYXBzLT5TdXJwcmlzZVJlbW92YWJsZSkKKyAgICAgICAgICAgIERldmljZUNhcHMtPlN1
cnByaXNlUmVtb3ZhbE9LID0gMTsKKyAgICAKKyAgICAgICAgRGV2aWNlQ2Fwcy0+VW5pcXVlSUQg
PSAxOworCisgICAgICAgIH0gYnJlYWs7CisKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsK
KyAgICB9Cit9CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFBuUCBIYW5kbGVyCmRpZmYg
LS1naXQgYS9zcmMveGVudmJkL3Bkby5oIGIvc3JjL3hlbnZiZC9wZG8uaAppbmRleCA5NDZjMzRm
Li42ZTNlY2E1IDEwMDY0NAotLS0gYS9zcmMveGVudmJkL3Bkby5oCisrKyBiL3NyYy94ZW52YmQv
cGRvLmgKQEAgLTIwNCw2ICsyMDQsMTIgQEAgUGRvU3RhcnRJbygKICAgICBfX2luIFBTQ1NJX1JF
UVVFU1RfQkxPQ0sgICAgIFNyYgogICAgICk7CiAKK2V4dGVybiBWT0lECitQZG9TcmJQbnAoCisg
ICAgX19pbiBQWEVOVkJEX1BETyAgICAgICAgICAgICBQZG8sCisgICAgX19pbiBQU0NTSV9QTlBf
UkVRVUVTVF9CTE9DSyBTcmIKKyAgICApOworCiAvLyBQblAgSGFuZGxlcgogX19jaGVja1JldHVy
bgogZXh0ZXJuIE5UU1RBVFVTCi0tIAoyLjcuMC53aW5kb3dzLjEKCgpfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0
Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2pl
Y3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 12 10:54:49 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Jul 2016 10:54:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bMvKx-00047V-UV; Tue, 12 Jul 2016 10:54:47 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=9940f4835=Paul.Durrant@citrix.com>)
 id 1bMvKw-00047P-6a
 for win-pv-devel@lists.xenproject.org; Tue, 12 Jul 2016 10:54:46 +0000
Received: from [85.158.143.35] by server-2.bemta-6.messagelabs.com id
 20/ED-11548-57CC4875; Tue, 12 Jul 2016 10:54:45 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrGIsWRWlGSWpSXmKPExsWyU9JRQrfkTEu
 4wcE/GhZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y/W62oLnvBVHOu4zNzBe4O1i5OSQEPCT+Ldh
 AzOIzSagI7H06HwmEFtEIF/iwe1zbF2MHBzMAloSD5utQMLCAjESh3r2QpXESmx4/4EVwjaSm
 DHrBztIOYuAqsT8U44gYV4Bd4nTNy+xg9hCQPaNvx8ZQWxOAQ+J3YuPgY1hFJCV+NK4GuwCZg
 FxiVtPIC6QEBCQWLLnPDOELSrx8vE/VgjbQGLr0n0sEJdpSqzfpQ/RqigxpfshO8RaQYmTM5+
 wQKxVkdjy+ADUGG6JlZ//sExgFJ2FZNsshEmzkEyahWTSAkaWVYzqxalFZalFusZ6SUWZ6Rkl
 uYmZObqGBmZ6uanFxYnpqTmJScV6yfm5mxiB8cEABDsYO/45HWKU5GBSEuVtZm4JF+JLyk+pz
 EgszogvKs1JLT7EKMPBoSTBa34aKCdYlJqeWpGWmQOMVJi0BAePkghvLkiat7ggMbc4Mx0idY
 pRUUqclwEkIQCSyCjNg2uDJYdLjLJSwryMQIcI8RSkFuVmlqDKv2IU52BUEua1BJnCk5lXAjf
 9FdBiJqDFtQ7NIItLEhFSUg2MPlP//pApkJ+2X6WRp/yFXRRDakzWm8mXPN0fOMR5sf3bt+1g
 xKUUvb9zJVbOFF5guPK+S+gTSz1mb56/jufm1828J2S+empDSsBm4TOu2/zWx+5oXfc2S5/7e
 4d+eXaKvd/JyfJbT80S5mj+9UXB7dn+YOm7fbcn7n3pNH3ZmsCWqf3336pwKrEUZyQaajEXFS
 cCAPd9oV4JAwAA
X-Env-Sender: prvs=9940f4835=Paul.Durrant@citrix.com
X-Msg-Ref: server-9.tower-21.messagelabs.com!1468320884!23386994!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: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 24910 invoked from network); 12 Jul 2016 10:54:44 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-9.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 12 Jul 2016 10:54:44 -0000
X-IronPort-AV: E=Sophos;i="5.28,351,1464652800"; d="scan'208";a="26034856"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Ben Chalmers <ben.ch@lmers.co.uk>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 1/2] Only break FrontendBackend thread
 loop	when alerted
Thread-Index: AQHR3BsZkJjACQwv9E6pXapLXE4swaAUn0Eg
Date: Tue, 12 Jul 2016 10:54:43 +0000
Message-ID: <5af8bee08b754d7d957294fab7dbf124@AMSPEX02CL03.citrite.net>
References: <1468313670-20472-1-git-send-email-Ben.Chalmers@citrix.com>
In-Reply-To: <1468313670-20472-1-git-send-email-Ben.Chalmers@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Ben Chalmers <ben.chalmers@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 1/2] Only break FrontendBackend thread
	loop	when alerted
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIEJlbiBDaGFsbWVycw0KPiBTZW50OiAxMiBKdWx5IDIwMTYgMDk6NTQNCj4gVG86IHdpbi1w
di1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogQmVuIENoYWxtZXJzDQo+IFN1Ympl
Y3Q6IFt3aW4tcHYtZGV2ZWxdIFtQQVRDSCAxLzJdIE9ubHkgYnJlYWsgRnJvbnRlbmRCYWNrZW5k
IHRocmVhZA0KPiBsb29wIHdoZW4gYWxlcnRlZA0KPiANCj4gUmV0dXJucyBhIG1pc3NlZCAnIScg
Y2hhcmFjdGVyIHdpdGhvdXQgd2hpY2ggdGhlIEZyb250ZW5kQmFja2VuZA0KPiB0aHJlYWQgZXhp
dHMgaW1tZWRpYXRlbHkgLSByYXRoZXIgdGhhbiB3aGVuIHdlIEFsZXJ0IHRoZSB0aHJlYWQNCj4g
dGhhdCB3ZSB3aXNoIGl0IHRvIGV4aXQNCj4gDQo+IFNpZ25lZC1vZmYtYnkgOiBCZW4uQ2hhbG1l
cnNAY2l0cml4LmNvbQ0KDQpBY2tlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0
cml4LmNvbT4NCg0KPiAtLS0NCj4gIHNyYy94ZW52YmQvZnJvbnRlbmQuYyB8IDIgKy0NCj4gIDEg
ZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQ0KPiANCj4gZGlmZiAt
LWdpdCBhL3NyYy94ZW52YmQvZnJvbnRlbmQuYyBiL3NyYy94ZW52YmQvZnJvbnRlbmQuYw0KPiBp
bmRleCAyZGQ5ZmM3Li4xYWVjOTllIDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL2Zyb250ZW5k
LmMNCj4gKysrIGIvc3JjL3hlbnZiZC9mcm9udGVuZC5jDQo+IEBAIC0xNTE1LDcgKzE1MTUsNyBA
QCBGcm9udGVuZEJhY2tlbmQoDQo+ICAgICAgZm9yICg7Oykgew0KPiAgICAgICAgICBLSVJRTCAg
ICAgICBJcnFsOw0KPiANCj4gLSAgICAgICAgaWYgKFRocmVhZFdhaXQoVGhyZWFkKSkNCj4gKyAg
ICAgICAgaWYgKCFUaHJlYWRXYWl0KFRocmVhZCkpDQo+ICAgICAgICAgICAgICBicmVhazsNCj4g
DQo+ICAgICAgICAgIEtlQWNxdWlyZVNwaW5Mb2NrKCZGcm9udGVuZC0+U3RhdGVMb2NrLCAmSXJx
bCk7DQo+IC0tDQo+IDIuNy4wLndpbmRvd3MuMQ0KPiANCj4gDQo+IF9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+IHdpbi1wdi1kZXZlbCBtYWlsaW5nIGxp
c3QNCj4gd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IGh0dHBzOi8vbGlzdHMu
eGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA0KX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVs
IG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9s
aXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 12 10:54:49 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Jul 2016 10:54:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bMvKx-00047V-UV; Tue, 12 Jul 2016 10:54:47 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=9940f4835=Paul.Durrant@citrix.com>)
 id 1bMvKw-00047P-6a
 for win-pv-devel@lists.xenproject.org; Tue, 12 Jul 2016 10:54:46 +0000
Received: from [85.158.143.35] by server-2.bemta-6.messagelabs.com id
 20/ED-11548-57CC4875; Tue, 12 Jul 2016 10:54:45 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrGIsWRWlGSWpSXmKPExsWyU9JRQrfkTEu
 4wcE/GhZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y/W62oLnvBVHOu4zNzBe4O1i5OSQEPCT+Ldh
 AzOIzSagI7H06HwmEFtEIF/iwe1zbF2MHBzMAloSD5utQMLCAjESh3r2QpXESmx4/4EVwjaSm
 DHrBztIOYuAqsT8U44gYV4Bd4nTNy+xg9hCQPaNvx8ZQWxOAQ+J3YuPgY1hFJCV+NK4GuwCZg
 FxiVtPIC6QEBCQWLLnPDOELSrx8vE/VgjbQGLr0n0sEJdpSqzfpQ/RqigxpfshO8RaQYmTM5+
 wQKxVkdjy+ADUGG6JlZ//sExgFJ2FZNsshEmzkEyahWTSAkaWVYzqxalFZalFusZ6SUWZ6Rkl
 uYmZObqGBmZ6uanFxYnpqTmJScV6yfm5mxiB8cEABDsYO/45HWKU5GBSEuVtZm4JF+JLyk+pz
 EgszogvKs1JLT7EKMPBoSTBa34aKCdYlJqeWpGWmQOMVJi0BAePkghvLkiat7ggMbc4Mx0idY
 pRUUqclwEkIQCSyCjNg2uDJYdLjLJSwryMQIcI8RSkFuVmlqDKv2IU52BUEua1BJnCk5lXAjf
 9FdBiJqDFtQ7NIItLEhFSUg2MPlP//pApkJ+2X6WRp/yFXRRDakzWm8mXPN0fOMR5sf3bt+1g
 xKUUvb9zJVbOFF5guPK+S+gTSz1mb56/jufm1828J2S+empDSsBm4TOu2/zWx+5oXfc2S5/7e
 4d+eXaKvd/JyfJbT80S5mj+9UXB7dn+YOm7fbcn7n3pNH3ZmsCWqf3336pwKrEUZyQaajEXFS
 cCAPd9oV4JAwAA
X-Env-Sender: prvs=9940f4835=Paul.Durrant@citrix.com
X-Msg-Ref: server-9.tower-21.messagelabs.com!1468320884!23386994!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: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 24910 invoked from network); 12 Jul 2016 10:54:44 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-9.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 12 Jul 2016 10:54:44 -0000
X-IronPort-AV: E=Sophos;i="5.28,351,1464652800"; d="scan'208";a="26034856"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Ben Chalmers <ben.ch@lmers.co.uk>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 1/2] Only break FrontendBackend thread
 loop	when alerted
Thread-Index: AQHR3BsZkJjACQwv9E6pXapLXE4swaAUn0Eg
Date: Tue, 12 Jul 2016 10:54:43 +0000
Message-ID: <5af8bee08b754d7d957294fab7dbf124@AMSPEX02CL03.citrite.net>
References: <1468313670-20472-1-git-send-email-Ben.Chalmers@citrix.com>
In-Reply-To: <1468313670-20472-1-git-send-email-Ben.Chalmers@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Ben Chalmers <ben.chalmers@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 1/2] Only break FrontendBackend thread
	loop	when alerted
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIEJlbiBDaGFsbWVycw0KPiBTZW50OiAxMiBKdWx5IDIwMTYgMDk6NTQNCj4gVG86IHdpbi1w
di1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogQmVuIENoYWxtZXJzDQo+IFN1Ympl
Y3Q6IFt3aW4tcHYtZGV2ZWxdIFtQQVRDSCAxLzJdIE9ubHkgYnJlYWsgRnJvbnRlbmRCYWNrZW5k
IHRocmVhZA0KPiBsb29wIHdoZW4gYWxlcnRlZA0KPiANCj4gUmV0dXJucyBhIG1pc3NlZCAnIScg
Y2hhcmFjdGVyIHdpdGhvdXQgd2hpY2ggdGhlIEZyb250ZW5kQmFja2VuZA0KPiB0aHJlYWQgZXhp
dHMgaW1tZWRpYXRlbHkgLSByYXRoZXIgdGhhbiB3aGVuIHdlIEFsZXJ0IHRoZSB0aHJlYWQNCj4g
dGhhdCB3ZSB3aXNoIGl0IHRvIGV4aXQNCj4gDQo+IFNpZ25lZC1vZmYtYnkgOiBCZW4uQ2hhbG1l
cnNAY2l0cml4LmNvbQ0KDQpBY2tlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0
cml4LmNvbT4NCg0KPiAtLS0NCj4gIHNyYy94ZW52YmQvZnJvbnRlbmQuYyB8IDIgKy0NCj4gIDEg
ZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQ0KPiANCj4gZGlmZiAt
LWdpdCBhL3NyYy94ZW52YmQvZnJvbnRlbmQuYyBiL3NyYy94ZW52YmQvZnJvbnRlbmQuYw0KPiBp
bmRleCAyZGQ5ZmM3Li4xYWVjOTllIDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL2Zyb250ZW5k
LmMNCj4gKysrIGIvc3JjL3hlbnZiZC9mcm9udGVuZC5jDQo+IEBAIC0xNTE1LDcgKzE1MTUsNyBA
QCBGcm9udGVuZEJhY2tlbmQoDQo+ICAgICAgZm9yICg7Oykgew0KPiAgICAgICAgICBLSVJRTCAg
ICAgICBJcnFsOw0KPiANCj4gLSAgICAgICAgaWYgKFRocmVhZFdhaXQoVGhyZWFkKSkNCj4gKyAg
ICAgICAgaWYgKCFUaHJlYWRXYWl0KFRocmVhZCkpDQo+ICAgICAgICAgICAgICBicmVhazsNCj4g
DQo+ICAgICAgICAgIEtlQWNxdWlyZVNwaW5Mb2NrKCZGcm9udGVuZC0+U3RhdGVMb2NrLCAmSXJx
bCk7DQo+IC0tDQo+IDIuNy4wLndpbmRvd3MuMQ0KPiANCj4gDQo+IF9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+IHdpbi1wdi1kZXZlbCBtYWlsaW5nIGxp
c3QNCj4gd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IGh0dHBzOi8vbGlzdHMu
eGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA0KX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVs
IG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9s
aXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 12 11:01:18 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Jul 2016 11:01:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bMvRF-0004j1-Hw; Tue, 12 Jul 2016 11:01:17 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=9940f4835=Paul.Durrant@citrix.com>)
 id 1bMvRD-0004ij-Gj
 for win-pv-devel@lists.xenproject.org; Tue, 12 Jul 2016 11:01:15 +0000
Received: from [85.158.143.35] by server-2.bemta-6.messagelabs.com id
 99/B9-11548-AFDC4875; Tue, 12 Jul 2016 11:01:14 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmplleJIrShJLcpLzFFi42LZKekoofvrbEu
 4wY42QYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCasXvnCqaCXeoVUx9fZGxg/KHWxcjJISHgJ/Hv
 +jlWEJtNQEdi6dH5TCC2iEC+xIPb59i6GDk4mAW0JB42W4GEhQWyJc6+XcEOUZIj8WnLHWYI2
 0hizpnNbCA2i4CqxL/T98BG8gq4S6zfewBoJBeHkEALo8SUyQvAmjkFPCQ+PNoJ1sAoICvxpX
 E12CBmAXGJW08gbpAQEJBYsuc8M4QtKvHy8T9WCNtAYuvSfSwQt2lKrN+lD9GqKDGl+yE7xF5
 BiZMzn7CA2EICKhJbHh+AGsMtsfLzH5YJjKKzkGybhTBpFpJJs5BMWsDIsopRvTi1qCy1SNdQ
 L6koMz2jJDcxM0fX0MBMLze1uDgxPTUnMalYLzk/dxMjMEoYgGAH487nTocYJTmYlER5m5lbw
 oX4kvJTKjMSizPii0pzUosPMcpwcChJ8IoAo05IsCg1PbUiLTMHGK8waQkOHiUR3nNngNK8xQ
 WJucWZ6RCpU4y6HLOW31nLJMSSl5+XKiXO+xukSACkKKM0D24ELHVcYpSVEuZlBDpKiKcgtSg
 3swRV/hWjOAejkjBvBMglPJl5JXCbXgEdwQR0RK1DM8gRJYkIKakGRn6lFcUnONsWsRdnrmN9
 eLxzJ7fPBxsV80ddv20ylq7fbusT7H1S/aTY4/vSXzsVrggVJcj6dBQbGuufbAjdwZfx5oVtn
 cnXnZf2bfza0hSsl7y0c2t6q/bX61M+RfC45NvtOLKh1oyTMeKj0P2JD1J2Hm6LuqSzI3VHvn
 ee6/QpOh4LHS7xK7EUZyQaajEXFScCAF6E5AQYAwAA
X-Env-Sender: prvs=9940f4835=Paul.Durrant@citrix.com
X-Msg-Ref: server-15.tower-21.messagelabs.com!1468321274!23392579!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 3546 invoked from network); 12 Jul 2016 11:01:14 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-15.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 12 Jul 2016 11:01:14 -0000
X-IronPort-AV: E=Sophos;i="5.28,351,1464652800"; d="scan'208";a="26035136"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Ben Chalmers <ben.ch@lmers.co.uk>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 2/2] Revert "Remove PdoPnpSrb,	since
 StorPort doesn't call for targets"
Thread-Index: AQHR3BtnrMbvDhH/K0CL3mQuUSVFOKAUn4jA
Date: Tue, 12 Jul 2016 10:55:46 +0000
Message-ID: <c86c8319098344c8bddf8e779e7b0bdc@AMSPEX02CL03.citrite.net>
References: <1468313670-20472-1-git-send-email-Ben.Chalmers@citrix.com>
 <1468313670-20472-2-git-send-email-Ben.Chalmers@citrix.com>
In-Reply-To: <1468313670-20472-2-git-send-email-Ben.Chalmers@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Ben Chalmers <ben.chalmers@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 2/2] Revert "Remove PdoPnpSrb,
 since StorPort doesn't call for targets"
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIEJlbiBDaGFsbWVycw0KPiBTZW50OiAxMiBKdWx5IDIwMTYgMDk6NTUNCj4gVG86IHdpbi1w
di1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogQmVuIENoYWxtZXJzDQo+IFN1Ympl
Y3Q6IFt3aW4tcHYtZGV2ZWxdIFtQQVRDSCAyLzJdIFJldmVydCAiUmVtb3ZlIFBkb1BucFNyYiwg
c2luY2UNCj4gU3RvclBvcnQgZG9lc24ndCBjYWxsIGZvciB0YXJnZXRzIg0KPiANCj4gVGhpcyBy
ZXZlcnRzIGNvbW1pdCAwZjlmNTQyMTA5OWQxZGFiZWQxMWQ5ODhiMzE0NGZiOGY2YmZlZDNiLg0K
PiANCj4gSXQgYXBwZWFycyB0aGF0IHRoaXMgY29kZSBpcyBjYWxsZWQgd2hlbiBkZXRlcm1pbmlu
ZyBpZiBXaW5kb3dzDQo+IGNhbiByZW1vdmUgYSBQViBkaXNrLiAgV2l0aG91dCBpdCBXaW5kb3dz
IHdpbGwgbm90IGtub3cgdGhlDQo+IGRpc2sgaXMgcmVtb3ZhYmxlIGFuZCB3aWxsIHJlZnVzZSB0
byBhbGxvdyBpdCB0byBiZSByZW1vdmVkDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBCZW4uQ2hhbG1l
cnNAY2l0cml4LmNvbQ0KDQpBY2tlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0
cml4LmNvbT4NCg0KPiAtLS0NCj4gIHNyYy94ZW52YmQvZmRvLmMgfCAyMSArKysrKysrKysrKysr
KysrKysrKysNCj4gIHNyYy94ZW52YmQvcGRvLmMgfCAyOCArKysrKysrKysrKysrKysrKysrKysr
KysrKysrDQo+ICBzcmMveGVudmJkL3Bkby5oIHwgIDYgKysrKysrDQo+ICAzIGZpbGVzIGNoYW5n
ZWQsIDU1IGluc2VydGlvbnMoKykNCj4gDQo+IGRpZmYgLS1naXQgYS9zcmMveGVudmJkL2Zkby5j
IGIvc3JjL3hlbnZiZC9mZG8uYw0KPiBpbmRleCBhNGZiZDNkLi41ZjE3NzhiIDEwMDY0NA0KPiAt
LS0gYS9zcmMveGVudmJkL2Zkby5jDQo+ICsrKyBiL3NyYy94ZW52YmQvZmRvLmMNCj4gQEAgLTE4
MzksNiArMTgzOSwyMyBAQCBGZG9GaW5kQWRhcHRlcigNCj4gICAgICByZXR1cm4gU1BfUkVUVVJO
X0ZPVU5EOw0KPiAgfQ0KPiANCj4gK3N0YXRpYyBGT1JDRUlOTElORSBWT0lEDQo+ICtfX0Zkb1Ny
YlBucCgNCj4gKyAgICBfX2luIFBYRU5WQkRfRkRPICAgICAgICAgICAgICAgICBGZG8sDQo+ICsg
ICAgX19pbiBQU0NTSV9QTlBfUkVRVUVTVF9CTE9DSyAgICAgU3JiDQo+ICsgICAgKQ0KPiArew0K
PiArICAgIGlmICghKFNyYi0+U3JiUG5QRmxhZ3MgJiBTUkJfUE5QX0ZMQUdTX0FEQVBURVJfUkVR
VUVTVCkpIHsNCj4gKyAgICAgICAgUFhFTlZCRF9QRE8gICAgIFBkbzsNCj4gKw0KPiArICAgICAg
ICBQZG8gPSBfX0Zkb0dldFBkbyhGZG8sIFNyYi0+VGFyZ2V0SWQpOw0KPiArICAgICAgICBpZiAo
UGRvKSB7DQo+ICsgICAgICAgICAgICBQZG9TcmJQbnAoUGRvLCBTcmIpOw0KPiArICAgICAgICAg
ICAgUGRvRGVyZWZlcmVuY2UoUGRvKTsNCj4gKyAgICAgICAgfQ0KPiArICAgIH0NCj4gK30NCj4g
Kw0KPiAgQk9PTEVBTg0KPiAgRmRvQnVpbGRJbygNCj4gICAgICBfX2luIFBYRU5WQkRfRkRPICAg
ICAgICAgICAgICAgICBGZG8sDQo+IEBAIC0xODU2LDYgKzE4NzMsMTAgQEAgRmRvQnVpbGRJbygN
Cj4gICAgICAgICAgcmV0dXJuIFRSVUU7DQo+IA0KPiAgICAgICAgICAvLyBkb250IHBhc3MgdG8g
U3RhcnRJbw0KPiArICAgIGNhc2UgU1JCX0ZVTkNUSU9OX1BOUDoNCj4gKyAgICAgICAgX19GZG9T
cmJQbnAoRmRvLCAoUFNDU0lfUE5QX1JFUVVFU1RfQkxPQ0spU3JiKTsNCj4gKyAgICAgICAgU3Ji
LT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVTX1NVQ0NFU1M7DQo+ICsgICAgICAgIGJyZWFrOw0KPiAg
ICAgIGNhc2UgU1JCX0ZVTkNUSU9OX0FCT1JUX0NPTU1BTkQ6DQo+ICAgICAgICAgIFNyYi0+U3Ji
U3RhdHVzID0gU1JCX1NUQVRVU19BQk9SVF9GQUlMRUQ7DQo+ICAgICAgICAgIGJyZWFrOw0KPiBk
aWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC9wZG8uYyBiL3NyYy94ZW52YmQvcGRvLmMNCj4gaW5kZXgg
MzU2NWNjNi4uM2NhNTQ0MCAxMDA2NDQNCj4gLS0tIGEvc3JjL3hlbnZiZC9wZG8uYw0KPiArKysg
Yi9zcmMveGVudmJkL3Bkby5jDQo+IEBAIC0yMjM3LDYgKzIyMzcsMzQgQEAgUGRvUmVzZXQoDQo+
IA0KPiAgICAgIFRyYWNlKCJUYXJnZXRbJWRdIDw9PT09IChJcnFsPSVkKVxuIiwgUGRvR2V0VGFy
Z2V0SWQoUGRvKSwNCj4gS2VHZXRDdXJyZW50SXJxbCgpKTsNCj4gIH0NCj4gKw0KPiArDQo+ICtW
T0lEDQo+ICtQZG9TcmJQbnAoDQo+ICsgICAgX19pbiBQWEVOVkJEX1BETyAgICAgICAgICAgICBQ
ZG8sDQo+ICsgICAgX19pbiBQU0NTSV9QTlBfUkVRVUVTVF9CTE9DSyBTcmINCj4gKyAgICApDQo+
ICt7DQo+ICsgICAgc3dpdGNoIChTcmItPlBuUEFjdGlvbikgew0KPiArICAgIGNhc2UgU3RvclF1
ZXJ5Q2FwYWJpbGl0aWVzOiB7DQo+ICsgICAgICAgIFBTVE9SX0RFVklDRV9DQVBBQklMSVRJRVMg
RGV2aWNlQ2FwcyA9IFNyYi0+RGF0YUJ1ZmZlcjsNCj4gKyAgICAgICAgUFhFTlZCRF9DQVBTICAg
IENhcHMgPSBGcm9udGVuZEdldENhcHMoUGRvLT5Gcm9udGVuZCk7DQo+ICsNCj4gKyAgICAgICAg
aWYgKENhcHMtPlJlbW92YWJsZSkNCj4gKyAgICAgICAgICAgIERldmljZUNhcHMtPlJlbW92YWJs
ZSA9IDE7DQo+ICsgICAgICAgIGlmIChDYXBzLT5SZW1vdmFibGUpDQo+ICsgICAgICAgICAgICBE
ZXZpY2VDYXBzLT5FamVjdFN1cHBvcnRlZCA9IDE7DQo+ICsgICAgICAgIGlmIChDYXBzLT5TdXJw
cmlzZVJlbW92YWJsZSkNCj4gKyAgICAgICAgICAgIERldmljZUNhcHMtPlN1cnByaXNlUmVtb3Zh
bE9LID0gMTsNCj4gKw0KPiArICAgICAgICBEZXZpY2VDYXBzLT5VbmlxdWVJRCA9IDE7DQo+ICsN
Cj4gKyAgICAgICAgfSBicmVhazsNCj4gKw0KPiArICAgIGRlZmF1bHQ6DQo+ICsgICAgICAgIGJy
ZWFrOw0KPiArICAgIH0NCj4gK30NCj4gDQo+IA0KPiAvLz09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA9PT09PT09PT09PT09PT09PT09
PQ0KPiAgLy8gUG5QIEhhbmRsZXINCj4gZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQvcGRvLmggYi9z
cmMveGVudmJkL3Bkby5oDQo+IGluZGV4IDk0NmMzNGYuLjZlM2VjYTUgMTAwNjQ0DQo+IC0tLSBh
L3NyYy94ZW52YmQvcGRvLmgNCj4gKysrIGIvc3JjL3hlbnZiZC9wZG8uaA0KPiBAQCAtMjA0LDYg
KzIwNCwxMiBAQCBQZG9TdGFydElvKA0KPiAgICAgIF9faW4gUFNDU0lfUkVRVUVTVF9CTE9DSyAg
ICAgU3JiDQo+ICAgICAgKTsNCj4gDQo+ICtleHRlcm4gVk9JRA0KPiArUGRvU3JiUG5wKA0KPiAr
ICAgIF9faW4gUFhFTlZCRF9QRE8gICAgICAgICAgICAgUGRvLA0KPiArICAgIF9faW4gUFNDU0lf
UE5QX1JFUVVFU1RfQkxPQ0sgU3JiDQo+ICsgICAgKTsNCj4gKw0KPiAgLy8gUG5QIEhhbmRsZXIN
Cj4gIF9fY2hlY2tSZXR1cm4NCj4gIGV4dGVybiBOVFNUQVRVUw0KPiAtLQ0KPiAyLjcuMC53aW5k
b3dzLjENCj4gDQo+IA0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXw0KPiB3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0DQo+IHdpbi1wdi1kZXZlbEBsaXN0
cy54ZW5wcm9qZWN0Lm9yZw0KPiBodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4v
bWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWwNCl9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRl
dmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dp
LWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 12 11:01:18 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Jul 2016 11:01:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bMvRF-0004j1-Hw; Tue, 12 Jul 2016 11:01:17 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=9940f4835=Paul.Durrant@citrix.com>)
 id 1bMvRD-0004ij-Gj
 for win-pv-devel@lists.xenproject.org; Tue, 12 Jul 2016 11:01:15 +0000
Received: from [85.158.143.35] by server-2.bemta-6.messagelabs.com id
 99/B9-11548-AFDC4875; Tue, 12 Jul 2016 11:01:14 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmplleJIrShJLcpLzFFi42LZKekoofvrbEu
 4wY42QYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCasXvnCqaCXeoVUx9fZGxg/KHWxcjJISHgJ/Hv
 +jlWEJtNQEdi6dH5TCC2iEC+xIPb59i6GDk4mAW0JB42W4GEhQWyJc6+XcEOUZIj8WnLHWYI2
 0hizpnNbCA2i4CqxL/T98BG8gq4S6zfewBoJBeHkEALo8SUyQvAmjkFPCQ+PNoJ1sAoICvxpX
 E12CBmAXGJW08gbpAQEJBYsuc8M4QtKvHy8T9WCNtAYuvSfSwQt2lKrN+lD9GqKDGl+yE7xF5
 BiZMzn7CA2EICKhJbHh+AGsMtsfLzH5YJjKKzkGybhTBpFpJJs5BMWsDIsopRvTi1qCy1SNdQ
 L6koMz2jJDcxM0fX0MBMLze1uDgxPTUnMalYLzk/dxMjMEoYgGAH487nTocYJTmYlER5m5lbw
 oX4kvJTKjMSizPii0pzUosPMcpwcChJ8IoAo05IsCg1PbUiLTMHGK8waQkOHiUR3nNngNK8xQ
 WJucWZ6RCpU4y6HLOW31nLJMSSl5+XKiXO+xukSACkKKM0D24ELHVcYpSVEuZlBDpKiKcgtSg
 3swRV/hWjOAejkjBvBMglPJl5JXCbXgEdwQR0RK1DM8gRJYkIKakGRn6lFcUnONsWsRdnrmN9
 eLxzJ7fPBxsV80ddv20ylq7fbusT7H1S/aTY4/vSXzsVrggVJcj6dBQbGuufbAjdwZfx5oVtn
 cnXnZf2bfza0hSsl7y0c2t6q/bX61M+RfC45NvtOLKh1oyTMeKj0P2JD1J2Hm6LuqSzI3VHvn
 ee6/QpOh4LHS7xK7EUZyQaajEXFScCAF6E5AQYAwAA
X-Env-Sender: prvs=9940f4835=Paul.Durrant@citrix.com
X-Msg-Ref: server-15.tower-21.messagelabs.com!1468321274!23392579!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 3546 invoked from network); 12 Jul 2016 11:01:14 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-15.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 12 Jul 2016 11:01:14 -0000
X-IronPort-AV: E=Sophos;i="5.28,351,1464652800"; d="scan'208";a="26035136"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Ben Chalmers <ben.ch@lmers.co.uk>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 2/2] Revert "Remove PdoPnpSrb,	since
 StorPort doesn't call for targets"
Thread-Index: AQHR3BtnrMbvDhH/K0CL3mQuUSVFOKAUn4jA
Date: Tue, 12 Jul 2016 10:55:46 +0000
Message-ID: <c86c8319098344c8bddf8e779e7b0bdc@AMSPEX02CL03.citrite.net>
References: <1468313670-20472-1-git-send-email-Ben.Chalmers@citrix.com>
 <1468313670-20472-2-git-send-email-Ben.Chalmers@citrix.com>
In-Reply-To: <1468313670-20472-2-git-send-email-Ben.Chalmers@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Ben Chalmers <ben.chalmers@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 2/2] Revert "Remove PdoPnpSrb,
 since StorPort doesn't call for targets"
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIEJlbiBDaGFsbWVycw0KPiBTZW50OiAxMiBKdWx5IDIwMTYgMDk6NTUNCj4gVG86IHdpbi1w
di1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogQmVuIENoYWxtZXJzDQo+IFN1Ympl
Y3Q6IFt3aW4tcHYtZGV2ZWxdIFtQQVRDSCAyLzJdIFJldmVydCAiUmVtb3ZlIFBkb1BucFNyYiwg
c2luY2UNCj4gU3RvclBvcnQgZG9lc24ndCBjYWxsIGZvciB0YXJnZXRzIg0KPiANCj4gVGhpcyBy
ZXZlcnRzIGNvbW1pdCAwZjlmNTQyMTA5OWQxZGFiZWQxMWQ5ODhiMzE0NGZiOGY2YmZlZDNiLg0K
PiANCj4gSXQgYXBwZWFycyB0aGF0IHRoaXMgY29kZSBpcyBjYWxsZWQgd2hlbiBkZXRlcm1pbmlu
ZyBpZiBXaW5kb3dzDQo+IGNhbiByZW1vdmUgYSBQViBkaXNrLiAgV2l0aG91dCBpdCBXaW5kb3dz
IHdpbGwgbm90IGtub3cgdGhlDQo+IGRpc2sgaXMgcmVtb3ZhYmxlIGFuZCB3aWxsIHJlZnVzZSB0
byBhbGxvdyBpdCB0byBiZSByZW1vdmVkDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBCZW4uQ2hhbG1l
cnNAY2l0cml4LmNvbQ0KDQpBY2tlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0
cml4LmNvbT4NCg0KPiAtLS0NCj4gIHNyYy94ZW52YmQvZmRvLmMgfCAyMSArKysrKysrKysrKysr
KysrKysrKysNCj4gIHNyYy94ZW52YmQvcGRvLmMgfCAyOCArKysrKysrKysrKysrKysrKysrKysr
KysrKysrDQo+ICBzcmMveGVudmJkL3Bkby5oIHwgIDYgKysrKysrDQo+ICAzIGZpbGVzIGNoYW5n
ZWQsIDU1IGluc2VydGlvbnMoKykNCj4gDQo+IGRpZmYgLS1naXQgYS9zcmMveGVudmJkL2Zkby5j
IGIvc3JjL3hlbnZiZC9mZG8uYw0KPiBpbmRleCBhNGZiZDNkLi41ZjE3NzhiIDEwMDY0NA0KPiAt
LS0gYS9zcmMveGVudmJkL2Zkby5jDQo+ICsrKyBiL3NyYy94ZW52YmQvZmRvLmMNCj4gQEAgLTE4
MzksNiArMTgzOSwyMyBAQCBGZG9GaW5kQWRhcHRlcigNCj4gICAgICByZXR1cm4gU1BfUkVUVVJO
X0ZPVU5EOw0KPiAgfQ0KPiANCj4gK3N0YXRpYyBGT1JDRUlOTElORSBWT0lEDQo+ICtfX0Zkb1Ny
YlBucCgNCj4gKyAgICBfX2luIFBYRU5WQkRfRkRPICAgICAgICAgICAgICAgICBGZG8sDQo+ICsg
ICAgX19pbiBQU0NTSV9QTlBfUkVRVUVTVF9CTE9DSyAgICAgU3JiDQo+ICsgICAgKQ0KPiArew0K
PiArICAgIGlmICghKFNyYi0+U3JiUG5QRmxhZ3MgJiBTUkJfUE5QX0ZMQUdTX0FEQVBURVJfUkVR
VUVTVCkpIHsNCj4gKyAgICAgICAgUFhFTlZCRF9QRE8gICAgIFBkbzsNCj4gKw0KPiArICAgICAg
ICBQZG8gPSBfX0Zkb0dldFBkbyhGZG8sIFNyYi0+VGFyZ2V0SWQpOw0KPiArICAgICAgICBpZiAo
UGRvKSB7DQo+ICsgICAgICAgICAgICBQZG9TcmJQbnAoUGRvLCBTcmIpOw0KPiArICAgICAgICAg
ICAgUGRvRGVyZWZlcmVuY2UoUGRvKTsNCj4gKyAgICAgICAgfQ0KPiArICAgIH0NCj4gK30NCj4g
Kw0KPiAgQk9PTEVBTg0KPiAgRmRvQnVpbGRJbygNCj4gICAgICBfX2luIFBYRU5WQkRfRkRPICAg
ICAgICAgICAgICAgICBGZG8sDQo+IEBAIC0xODU2LDYgKzE4NzMsMTAgQEAgRmRvQnVpbGRJbygN
Cj4gICAgICAgICAgcmV0dXJuIFRSVUU7DQo+IA0KPiAgICAgICAgICAvLyBkb250IHBhc3MgdG8g
U3RhcnRJbw0KPiArICAgIGNhc2UgU1JCX0ZVTkNUSU9OX1BOUDoNCj4gKyAgICAgICAgX19GZG9T
cmJQbnAoRmRvLCAoUFNDU0lfUE5QX1JFUVVFU1RfQkxPQ0spU3JiKTsNCj4gKyAgICAgICAgU3Ji
LT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVTX1NVQ0NFU1M7DQo+ICsgICAgICAgIGJyZWFrOw0KPiAg
ICAgIGNhc2UgU1JCX0ZVTkNUSU9OX0FCT1JUX0NPTU1BTkQ6DQo+ICAgICAgICAgIFNyYi0+U3Ji
U3RhdHVzID0gU1JCX1NUQVRVU19BQk9SVF9GQUlMRUQ7DQo+ICAgICAgICAgIGJyZWFrOw0KPiBk
aWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC9wZG8uYyBiL3NyYy94ZW52YmQvcGRvLmMNCj4gaW5kZXgg
MzU2NWNjNi4uM2NhNTQ0MCAxMDA2NDQNCj4gLS0tIGEvc3JjL3hlbnZiZC9wZG8uYw0KPiArKysg
Yi9zcmMveGVudmJkL3Bkby5jDQo+IEBAIC0yMjM3LDYgKzIyMzcsMzQgQEAgUGRvUmVzZXQoDQo+
IA0KPiAgICAgIFRyYWNlKCJUYXJnZXRbJWRdIDw9PT09IChJcnFsPSVkKVxuIiwgUGRvR2V0VGFy
Z2V0SWQoUGRvKSwNCj4gS2VHZXRDdXJyZW50SXJxbCgpKTsNCj4gIH0NCj4gKw0KPiArDQo+ICtW
T0lEDQo+ICtQZG9TcmJQbnAoDQo+ICsgICAgX19pbiBQWEVOVkJEX1BETyAgICAgICAgICAgICBQ
ZG8sDQo+ICsgICAgX19pbiBQU0NTSV9QTlBfUkVRVUVTVF9CTE9DSyBTcmINCj4gKyAgICApDQo+
ICt7DQo+ICsgICAgc3dpdGNoIChTcmItPlBuUEFjdGlvbikgew0KPiArICAgIGNhc2UgU3RvclF1
ZXJ5Q2FwYWJpbGl0aWVzOiB7DQo+ICsgICAgICAgIFBTVE9SX0RFVklDRV9DQVBBQklMSVRJRVMg
RGV2aWNlQ2FwcyA9IFNyYi0+RGF0YUJ1ZmZlcjsNCj4gKyAgICAgICAgUFhFTlZCRF9DQVBTICAg
IENhcHMgPSBGcm9udGVuZEdldENhcHMoUGRvLT5Gcm9udGVuZCk7DQo+ICsNCj4gKyAgICAgICAg
aWYgKENhcHMtPlJlbW92YWJsZSkNCj4gKyAgICAgICAgICAgIERldmljZUNhcHMtPlJlbW92YWJs
ZSA9IDE7DQo+ICsgICAgICAgIGlmIChDYXBzLT5SZW1vdmFibGUpDQo+ICsgICAgICAgICAgICBE
ZXZpY2VDYXBzLT5FamVjdFN1cHBvcnRlZCA9IDE7DQo+ICsgICAgICAgIGlmIChDYXBzLT5TdXJw
cmlzZVJlbW92YWJsZSkNCj4gKyAgICAgICAgICAgIERldmljZUNhcHMtPlN1cnByaXNlUmVtb3Zh
bE9LID0gMTsNCj4gKw0KPiArICAgICAgICBEZXZpY2VDYXBzLT5VbmlxdWVJRCA9IDE7DQo+ICsN
Cj4gKyAgICAgICAgfSBicmVhazsNCj4gKw0KPiArICAgIGRlZmF1bHQ6DQo+ICsgICAgICAgIGJy
ZWFrOw0KPiArICAgIH0NCj4gK30NCj4gDQo+IA0KPiAvLz09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA9PT09PT09PT09PT09PT09PT09
PQ0KPiAgLy8gUG5QIEhhbmRsZXINCj4gZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQvcGRvLmggYi9z
cmMveGVudmJkL3Bkby5oDQo+IGluZGV4IDk0NmMzNGYuLjZlM2VjYTUgMTAwNjQ0DQo+IC0tLSBh
L3NyYy94ZW52YmQvcGRvLmgNCj4gKysrIGIvc3JjL3hlbnZiZC9wZG8uaA0KPiBAQCAtMjA0LDYg
KzIwNCwxMiBAQCBQZG9TdGFydElvKA0KPiAgICAgIF9faW4gUFNDU0lfUkVRVUVTVF9CTE9DSyAg
ICAgU3JiDQo+ICAgICAgKTsNCj4gDQo+ICtleHRlcm4gVk9JRA0KPiArUGRvU3JiUG5wKA0KPiAr
ICAgIF9faW4gUFhFTlZCRF9QRE8gICAgICAgICAgICAgUGRvLA0KPiArICAgIF9faW4gUFNDU0lf
UE5QX1JFUVVFU1RfQkxPQ0sgU3JiDQo+ICsgICAgKTsNCj4gKw0KPiAgLy8gUG5QIEhhbmRsZXIN
Cj4gIF9fY2hlY2tSZXR1cm4NCj4gIGV4dGVybiBOVFNUQVRVUw0KPiAtLQ0KPiAyLjcuMC53aW5k
b3dzLjENCj4gDQo+IA0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXw0KPiB3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0DQo+IHdpbi1wdi1kZXZlbEBsaXN0
cy54ZW5wcm9qZWN0Lm9yZw0KPiBodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4v
bWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWwNCl9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRl
dmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dp
LWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Mon Jul 18 08:46:09 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 18 Jul 2016 08:46:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bP4Bj-0002SR-PS; Mon, 18 Jul 2016 08:46:07 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=0001784ad=Paul.Durrant@citrix.com>)
 id 1bP4Bi-0002SK-Uo
 for win-pv-devel@lists.xenproject.org; Mon, 18 Jul 2016 08:46:07 +0000
Received: from [85.158.139.211] by server-4.bemta-5.messagelabs.com id
 3C/99-12285-E479C875; Mon, 18 Jul 2016 08:46:06 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupgleJIrShJLcpLzFFi42LZKekooes7vSf
 c4Gy/qMWfxYkOjB6HP1xhCWCMYs3MS8qvSGDNeP57EXvBi6NMFf9OtDM1MO49yNTFyMkhIRAk
 8eThBzCbTUBHYunR+WC2iECxxNe+y6wgtrCAp8TR/f2sEHEviVUPb7BA2EYSW7vWs4HYLAKqE
 q/WLGQGsXkF3CUOLpgANkdIIECia9UboBoODk6BQIkPfxJBwowCshJfGleDlTMLiEvcejIf6h
 wBiSV7zjND2KISLx//Y4WwDSS2Lt3HAlGfK3Fr0ykWiFWCEidnPmGBWKUiseXxAahebomVn/+
 wTGAUnoVkxSwk7bOQtM8Cuo5ZQFNi/S59iBJFiSndD9khbA2J1jlz2ZHFFzCyr2LUKE4tKkst
 0jUy0EsqykzPKMlNzMzRNTQw1ctNLS5OTE/NSUwq1kvOz93ECIyhegYGxh2MjbP9DjFKcjApi
 fI2KfSEC/El5adUZiQWZ8QXleakFh9ilOHgUJLg/TEVKCdYlJqeWpGWmQOMZpi0BAePkghEmr
 e4IDG3ODMdInWKUVFKnFdoGlBCACSRUZoH1wZLIJcYZaWEeRkZGBiEeApSi3IzS1DlXzGKczA
 qCfNagEzhycwrgZv+CmgxE9BiA9VukMUliQgpqQZGo5anNhYPXs712b/4an7fpo//zZUfeDMp
 3WN6b7orjCdIqSFlo02RkdrU2Lg3LUJpAr+Vnh/6ZlNtejB0k/Dbv01c7Clee7ZdKcqOc5Y79
 f3Sp3cVBxx6nUXNtnJvf8P7kWHptIkHTpf43GCaGmM5JyNS+Kn+jevfrFufb9cskt/VeuB6Zd
 YxJZbijERDLeai4kQAH7iTvhsDAAA=
X-Env-Sender: prvs=0001784ad=Paul.Durrant@citrix.com
X-Msg-Ref: server-16.tower-206.messagelabs.com!1468831564!34173672!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.6 required=7.0 tests=HTML_90_100,HTML_MESSAGE,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5976 invoked from network); 18 Jul 2016 08:46:05 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-16.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 18 Jul 2016 08:46:05 -0000
X-IronPort-AV: E=Sophos;i="5.28,383,1464652800"; d="scan'208,217";a="26498382"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Eytan Heidingsfeld <eytanh@gmail.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] Patch for Unexpected Initial States of XenVif
Thread-Index: AQHR2313Y9Xgtyd5ZUSDaWT7cmPzJqAd5dzQ
Date: Mon, 18 Jul 2016 08:44:42 +0000
Message-ID: <a37e16ee051e4be581b0a2eafda82bd4@AMSPEX02CL03.citrite.net>
References: <CAGjCcQNrfvCTQmatbt37ouFC+MRRSyhhbkpz6di0PR4YbwVURg@mail.gmail.com>
In-Reply-To: <CAGjCcQNrfvCTQmatbt37ouFC+MRRSyhhbkpz6di0PR4YbwVURg@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] Patch for Unexpected Initial States of XenVif
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1695835817551055491=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============1695835817551055491==
Content-Language: en-US
Content-Type: multipart/alternative;
	boundary="_000_a37e16ee051e4be581b0a2eafda82bd4AMSPEX02CL03citritenet_"

--_000_a37e16ee051e4be581b0a2eafda82bd4AMSPEX02CL03citritenet_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

U29ycnksIEkgcmVhbGlzZWQgSSBoYWQgbm90IHJlc3BvbmRlZCB0byB0aGlzLiBUaGlzIGRvZXMg
aW5kZWVkIGxvb2sgbGlrZSBhIGhvbGUgaW4gdGhlIGxvZ2ljIGluIHRoZSBtYXN0ZXIgYnJhbmNo
LiBJIHdpbGwgYWRkIHlvdXIgcGF0Y2ggYnV0IHNpbmNlIHlvdSBkaWQgbm90IGFkZCB5b3VyIFMt
by1iIHRvIHRoZSBwYXRjaCBJIGNhbiBvbmx5IGNyZWRpdCB5b3Ugd2l0aCBhIOKAmHN1Z2dlc3Rl
ZC1ieeKAmS4gSWYgeW91IGNhbiBwb3N0IGEgcGF0Y2ggaW4gdGhlIGNvcnJlY3QgZm9ybSAoc2Vl
IGh0dHA6Ly93aWtpLnhlbnByb2plY3Qub3JnL3dpa2kvU3VibWl0dGluZ19YZW5fUHJvamVjdF9Q
YXRjaGVzIGZvciBndWlkYW5jZSkgdGhlbiBJIGNhbiBnaXZlIHlvdSBmdWxsIGNyZWRpdC4NCg0K
ICBDaGVlcnMsDQoNCiAgUGF1bA0KDQpGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0bzp3aW4tcHYt
ZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24gQmVoYWxmIE9mIEV5dGFuIEhl
aWRpbmdzZmVsZA0KU2VudDogMTEgSnVseSAyMDE2IDE1OjA2DQpUbzogd2luLXB2LWRldmVsQGxp
c3RzLnhlbnByb2plY3Qub3JnDQpTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBQYXRjaCBmb3IgVW5l
eHBlY3RlZCBJbml0aWFsIFN0YXRlcyBvZiBYZW5WaWYNCg0KSGVsbG8sDQpJJ3ZlIG5vdGljZWQg
dGhhdCB0aGUgc3VwcG9ydCBmb3IgdW5leHBlY3RlZCBpbml0aWFsIHN0YXRlcyB0aGF0IHdhcyBh
ZGRlZCB0byBzdXBwb3J0IGlzY3NpIGJvb3QgaW4gY29tbWl0OiBjOWI2ZTU2ZTczNDJhMWJiMzFj
ZmI3OWYyOGI2YTAwZDA1OTU0MDA2LA0KDQpBcyB0aGVyZSB3YXMgcXVpdGUgYSBiaXQgb2YgcmVm
YWN0b3JpbmcgYXJvdW5kIHRoYXQgYXJlYSBJJ3ZlIGNyZWF0ZWQgYSBzbWFsbCBwYXRjaCB0aGF0
IGZpeGVzIHRoZSBpc3N1ZSBhZ2FpbiwNCg0KDQpkaWZmIC0tZ2l0IGEvc3JjL3hlbnZpZi9mcm9u
dGVuZC5jIGIvc3JjL3hlbnZpZi9mcm9udGVuZC5jDQppbmRleCA1YTI5NzM2Li5hZWY2NjgwIDEw
MDY0NA0KLS0tIGEvc3JjL3hlbnZpZi9mcm9udGVuZC5jDQorKysgYi9zcmMveGVudmlmL2Zyb250
ZW5kLmMNCkBAIC0xNTIxLDYgKzE1MjEsMTEgQEAgRnJvbnRlbmRQcmVwYXJlKA0KICAgICAgICAg
ICAgIEZyb250ZW5kU2V0WGVuYnVzU3RhdGUoRnJvbnRlbmQsDQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBYZW5idXNTdGF0ZUluaXRpYWxpc2luZyk7DQogICAgICAgICAgICAg
YnJlYWs7DQorDQorICAgICAgICAgICAgICAgICAgICBjYXNlIFhlbmJ1c1N0YXRlQ29ubmVjdGVk
Og0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJvbnRlbmRTZXRYZW5idXNTdGF0
ZShGcm9udGVuZCwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFhlbmJ1c1N0YXRlQ2xvc2luZyk7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsNCg0KICAgICAgICAgY2FzZSBYZW5idXNTdGF0ZUNsb3Npbmc6DQogICAgICAgICAgICAg
RnJvbnRlbmRTZXRYZW5idXNTdGF0ZShGcm9udGVuZCwNCi0tDQoxLjkuNS5tc3lzZ2l0LjANCg0K
Q2hlZXJzLA0KRXl0YW4NCg==

--_000_a37e16ee051e4be581b0a2eafda82bd4AMSPEX02CL03citritenet_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IlByb2dJZCIg
Y29udGVudD0iV29yZC5Eb2N1bWVudCI+DQo8bWV0YSBuYW1lPSJHZW5lcmF0b3IiIGNvbnRlbnQ9
Ik1pY3Jvc29mdCBXb3JkIDE0Ij4NCjxtZXRhIG5hbWU9Ik9yaWdpbmF0b3IiIGNvbnRlbnQ9Ik1p
Y3Jvc29mdCBXb3JkIDE0Ij4NCjxsaW5rIHJlbD0iRmlsZS1MaXN0IiBocmVmPSJjaWQ6ZmlsZWxp
c3QueG1sQDAxRDFFMEQ5LjAyNDM4NzAwIj48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOk9m
ZmljZURvY3VtZW50U2V0dGluZ3M+DQo8bzpBbGxvd1BORy8+DQo8bzpEb05vdFJlbHlPbkNTUy8+
DQo8L286T2ZmaWNlRG9jdW1lbnRTZXR0aW5ncz4NCjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYg
Z3RlIG1zbyA5XT48eG1sPg0KPHc6V29yZERvY3VtZW50Pg0KPHc6U3BlbGxpbmdTdGF0ZT5DbGVh
bjwvdzpTcGVsbGluZ1N0YXRlPg0KPHc6VHJhY2tNb3Zlcy8+DQo8dzpUcmFja0Zvcm1hdHRpbmcv
Pg0KPHc6RW52ZWxvcGVWaXMvPg0KPHc6VmFsaWRhdGVBZ2FpbnN0U2NoZW1hcy8+DQo8dzpTYXZl
SWZYTUxJbnZhbGlkPmZhbHNlPC93OlNhdmVJZlhNTEludmFsaWQ+DQo8dzpJZ25vcmVNaXhlZENv
bnRlbnQ+ZmFsc2U8L3c6SWdub3JlTWl4ZWRDb250ZW50Pg0KPHc6QWx3YXlzU2hvd1BsYWNlaG9s
ZGVyVGV4dD5mYWxzZTwvdzpBbHdheXNTaG93UGxhY2Vob2xkZXJUZXh0Pg0KPHc6RG9Ob3RQcm9t
b3RlUUYvPg0KPHc6TGlkVGhlbWVPdGhlcj5FTi1HQjwvdzpMaWRUaGVtZU90aGVyPg0KPHc6TGlk
VGhlbWVBc2lhbj5YLU5PTkU8L3c6TGlkVGhlbWVBc2lhbj4NCjx3OkxpZFRoZW1lQ29tcGxleFNj
cmlwdD5YLU5PTkU8L3c6TGlkVGhlbWVDb21wbGV4U2NyaXB0Pg0KPHc6Q29tcGF0aWJpbGl0eT4N
Cjx3OkRvTm90RXhwYW5kU2hpZnRSZXR1cm4vPg0KPHc6QnJlYWtXcmFwcGVkVGFibGVzLz4NCjx3
OlNwbGl0UGdCcmVha0FuZFBhcmFNYXJrLz4NCjx3OkVuYWJsZU9wZW5UeXBlS2VybmluZy8+DQo8
L3c6Q29tcGF0aWJpbGl0eT4NCjxtOm1hdGhQcj4NCjxtOm1hdGhGb250IG06dmFsPSJDYW1icmlh
IE1hdGgiLz4NCjxtOmJya0JpbiBtOnZhbD0iYmVmb3JlIi8+DQo8bTpicmtCaW5TdWIgbTp2YWw9
IiYjNDU7LSIvPg0KPG06c21hbGxGcmFjIG06dmFsPSJvZmYiLz4NCjxtOmRpc3BEZWYvPg0KPG06
bE1hcmdpbiBtOnZhbD0iMCIvPg0KPG06ck1hcmdpbiBtOnZhbD0iMCIvPg0KPG06ZGVmSmMgbTp2
YWw9ImNlbnRlckdyb3VwIi8+DQo8bTp3cmFwSW5kZW50IG06dmFsPSIxNDQwIi8+DQo8bTppbnRM
aW0gbTp2YWw9InN1YlN1cCIvPg0KPG06bmFyeUxpbSBtOnZhbD0idW5kT3ZyIi8+DQo8L206bWF0
aFByPjwvdzpXb3JkRG9jdW1lbnQ+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28g
OV0+PHhtbD4NCjx3OkxhdGVudFN0eWxlcyBEZWZMb2NrZWRTdGF0ZT0iZmFsc2UiIERlZlVuaGlk
ZVdoZW5Vc2VkPSJ0cnVlIiBEZWZTZW1pSGlkZGVuPSJ0cnVlIiBEZWZRRm9ybWF0PSJmYWxzZSIg
RGVmUHJpb3JpdHk9Ijk5IiBMYXRlbnRTdHlsZUNvdW50PSIyNjciPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJOb3JtYWwiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyAxIi8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFFGb3JtYXQ9InRydWUiIE5h
bWU9ImhlYWRpbmcgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyA0
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFFGb3JtYXQ9
InRydWUiIE5hbWU9ImhlYWRpbmcgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDYiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0i
aGVhZGluZyA3Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9Ijki
IFFGb3JtYXQ9InRydWUiIE5hbWU9ImhlYWRpbmcgOCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDkiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzkiIE5hbWU9InRvYyAx
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjM5IiBOYW1lPSJ0
b2MgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzOSIgTmFt
ZT0idG9jIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzki
IE5hbWU9InRvYyA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjM5IiBOYW1lPSJ0b2MgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9y
aXR5PSIzOSIgTmFtZT0idG9jIDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iMzkiIE5hbWU9InRvYyA3Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjM5IiBOYW1lPSJ0b2MgOCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSIzOSIgTmFtZT0idG9jIDkiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzUiIFFGb3JtYXQ9InRydWUiIE5hbWU9ImNhcHRpb24iLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMTAiIFNlbWlIaWRkZW49
ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9IlRpdGxl
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjEiIE5hbWU9IkRl
ZmF1bHQgUGFyYWdyYXBoIEZvbnQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iMTEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFG
b3JtYXQ9InRydWUiIE5hbWU9IlN1YnRpdGxlIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjIyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZh
bHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJTdHJvbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iMjAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNl
ZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9IkVtcGhhc2lzIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjU5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJUYWJsZSBHcmlkIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9j
a2VkPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJQbGFjZWhvbGRlciBUZXh0
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjEiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9Ik5v
IFNwYWNpbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjAi
IFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IFNo
YWRpbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjEiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IExpc3Qi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjIiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IEdyaWQiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjMiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDEiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDEiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDIiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjciIFNlbWlIaWRkZW49ImZhbHNlIiBV
bmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDEiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjgiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhp
ZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDIiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjkiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVX
aGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9IkRhcmsgTGlzdCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI3MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iQ29sb3JmdWwgU2hhZGluZyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iQ29sb3JmdWwgTGlzdCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI2MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIg
TmFtZT0iTGlnaHQgU2hhZGluZyBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI2MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iTGlnaHQgTGlzdCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI2MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgTmFtZT0iTGlnaHQgR3JpZCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMSBBY2NlbnQgMSIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVu
aGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMiBBY2NlbnQgMSIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NSIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3QgMSBBY2NlbnQg
MSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iUmV2aXNpb24iLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iMzQiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3Jt
YXQ9InRydWUiIE5hbWU9Ikxpc3QgUGFyYWdyYXBoIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjI5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJRdW90ZSIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzMCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iSW50ZW5zZSBRdW90ZSIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NiIgU2VtaUhpZGRlbj0iZmFsc2Ui
IFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3QgMiBBY2NlbnQgMSIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NyIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMSBBY2NlbnQg
MSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OCIgU2VtaUhp
ZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMiBB
Y2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OSIg
U2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdy
aWQgMyBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI3MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iRGFy
ayBMaXN0IEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjcxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJD
b2xvcmZ1bCBTaGFkaW5nIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjcyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNl
IiBOYW1lPSJDb2xvcmZ1bCBMaXN0IEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjczIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBHcmlkIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBTaGFkaW5nIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5o
aWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBMaXN0IEFjY2VudCAyIi8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYyIiBTZW1pSGlkZGVuPSJmYWxzZSIg
VW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBHcmlkIEFjY2VudCAyIi8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYzIiBTZW1pSGlkZGVuPSJmYWxz
ZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAxIEFjY2VudCAy
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY0IiBTZW1pSGlk
ZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAy
IEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY1
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0g
TGlzdCAxIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjY2IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJN
ZWRpdW0gTGlzdCAyIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjY3IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBO
YW1lPSJNZWRpdW0gR3JpZCAxIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjY4IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZh
bHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAyIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9j
a2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVz
ZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAzIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJEYXJrIExpc3QgQWNjZW50IDIiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhp
ZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIFNoYWRpbmcgQWNjZW50IDIiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzIiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIExpc3QgQWNjZW50IDIi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzMiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIEdyaWQgQWNj
ZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjAiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IFNoYWRp
bmcgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NjEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0
IExpc3QgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNjIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ikxp
Z2h0IEdyaWQgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNjMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9
Ik1lZGl1bSBTaGFkaW5nIDEgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFs
c2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDEgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhp
ZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDIgQWNjZW50IDMiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjciIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDEgQWNjZW50IDMiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjgiIFNlbWlIaWRkZW49
ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDIgQWNjZW50
IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjkiIFNlbWlI
aWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDMg
QWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzAi
IFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkRhcmsgTGlz
dCBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3
MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3Jm
dWwgU2hhZGluZyBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFBy
aW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFt
ZT0iQ29sb3JmdWwgTGlzdCBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI2MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgTmFtZT0iTGlnaHQgU2hhZGluZyBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdo
ZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQgTGlzdCBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQgR3JpZCBBY2NlbnQgNCIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVu
aGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMSBBY2NlbnQgNCIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NCIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMiBBY2Nl
bnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NSIgU2Vt
aUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3Qg
MSBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2
NiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVt
IExpc3QgMiBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9y
aXR5PSI2NyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0i
TWVkaXVtIEdyaWQgMSBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI2OCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIg
TmFtZT0iTWVkaXVtIEdyaWQgMiBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI2OSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMyBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgTmFtZT0iRGFyayBMaXN0IEFjY2VudCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBTaGFkaW5nIEFjY2VudCA0Ii8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcyIiBTZW1pSGlkZGVuPSJmYWxzZSIg
VW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBMaXN0IEFjY2VudCA0Ii8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjczIiBTZW1pSGlkZGVuPSJm
YWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBHcmlkIEFjY2VudCA0
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYwIiBTZW1pSGlk
ZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBTaGFkaW5nIEFj
Y2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYxIiBT
ZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBMaXN0
IEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYy
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBH
cmlkIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjYzIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRp
dW0gU2hhZGluZyAxIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjY0IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBO
YW1lPSJNZWRpdW0gU2hhZGluZyAyIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjY1IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAxIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY2IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAyIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY3IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5o
aWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAxIEFjY2VudCA1Ii8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY4IiBTZW1pSGlkZGVuPSJmYWxz
ZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAyIEFjY2VudCA1Ii8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY5IiBTZW1pSGlkZGVu
PSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAzIEFjY2Vu
dCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcwIiBTZW1p
SGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJEYXJrIExpc3QgQWNj
ZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzEiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIFNo
YWRpbmcgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNzIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNv
bG9yZnVsIExpc3QgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iNzMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5h
bWU9IkNvbG9yZnVsIEdyaWQgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNjAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFs
c2UiIE5hbWU9IkxpZ2h0IFNoYWRpbmcgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNl
ZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IExpc3QgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IEdyaWQgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVX
aGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDEgQWNjZW50IDYiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIgQWNjZW50IDYi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDEgQWNj
ZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0
IDIgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NjciIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1
bSBHcmlkIDEgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNjgiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9
Ik1lZGl1bSBHcmlkIDIgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBQcmlvcml0eT0iNjkiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2Ui
IE5hbWU9Ik1lZGl1bSBHcmlkIDMgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9
ImZhbHNlIiBQcmlvcml0eT0iNzAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0i
ZmFsc2UiIE5hbWU9IkRhcmsgTGlzdCBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI3MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgU2hhZGluZyBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgTGlzdCBBY2NlbnQgNiIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRlbj0iZmFsc2Ui
IFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCBBY2NlbnQgNiIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIxOSIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iU3VidGxl
IEVtcGhhc2lzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjIx
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVl
IiBOYW1lPSJJbnRlbnNlIEVtcGhhc2lzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjMxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNl
IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJTdWJ0bGUgUmVmZXJlbmNlIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjMyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJJbnRlbnNlIFJlZmVyZW5jZSIv
Pg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzMyIgU2VtaUhpZGRl
bj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iQm9v
ayBUaXRsZSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzNyIg
TmFtZT0iQmlibGlvZ3JhcGh5Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJp
b3JpdHk9IjM5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJUT0MgSGVhZGluZyIvPg0KPC93OkxhdGVu
dFN0eWxlcz4NCjwveG1sPjwhW2VuZGlmXS0tPjxzdHlsZT48IS0tDQovKiBGb250IERlZmluaXRp
b25zICovDQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAx
NSA1IDIgMiAyIDQgMyAyIDQ7DQoJbXNvLWZvbnQtY2hhcnNldDowOw0KCW1zby1nZW5lcmljLWZv
bnQtZmFtaWx5OnN3aXNzOw0KCW1zby1mb250LXBpdGNoOnZhcmlhYmxlOw0KCW1zby1mb250LXNp
Z25hdHVyZTotNTM2ODcwMTQ1IDEwNzM3ODYxMTEgMSAwIDQxNSAwO30NCkBmb250LWZhY2UNCgl7
Zm9udC1mYW1pbHk6VGFob21hOw0KCXBhbm9zZS0xOjIgMTEgNiA0IDMgNSA0IDQgMiA0Ow0KCW1z
by1mb250LWNoYXJzZXQ6MDsNCgltc28tZ2VuZXJpYy1mb250LWZhbWlseTpzd2lzczsNCgltc28t
Zm9udC1waXRjaDp2YXJpYWJsZTsNCgltc28tZm9udC1zaWduYXR1cmU6LTUyMDA4MTY2NSAtMTA3
MzcxNzE1NyA0MSAwIDY2MDQ3IDA7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9y
bWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwNCgl7bXNvLXN0eWxlLXVuaGlkZTpubzsN
Cgltc28tc3R5bGUtcWZvcm1hdDp5ZXM7DQoJbXNvLXN0eWxlLXBhcmVudDoiIjsNCgltYXJnaW46
MGNtOw0KCW1hcmdpbi1ib3R0b206LjAwMDFwdDsNCgltc28tcGFnaW5hdGlvbjp3aWRvdy1vcnBo
YW47DQoJZm9udC1zaXplOjEyLjBwdDsNCglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIiwi
c2VyaWYiOw0KCW1zby1mYXJlYXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7fQ0KYTpsaW5rLCBzcGFu
Lk1zb0h5cGVybGluaw0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6Ymx1ZTsNCgl0
ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOw0KCXRleHQtdW5kZXJsaW5lOnNpbmdsZTt9DQphOnZp
c2l0ZWQsIHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQNCgl7bXNvLXN0eWxlLW5vc2hvdzp5ZXM7
DQoJbXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOnB1cnBsZTsNCgl0ZXh0LWRlY29yYXRp
b246dW5kZXJsaW5lOw0KCXRleHQtdW5kZXJsaW5lOnNpbmdsZTt9DQpzcGFuLkVtYWlsU3R5bGUx
Nw0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbC1yZXBseTsNCgltc28tc3R5bGUtbm9zaG93Onll
czsNCgltc28tc3R5bGUtdW5oaWRlOm5vOw0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMS4wcHQ7DQoJ
bXNvLWJpZGktZm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMt
c2VyaWYiOw0KCW1zby1hc2NpaS1mb250LWZhbWlseTpDYWxpYnJpOw0KCW1zby1mYXJlYXN0LWZv
bnQtZmFtaWx5OkNhbGlicmk7DQoJbXNvLWhhbnNpLWZvbnQtZmFtaWx5OkNhbGlicmk7DQoJbXNv
LWJpZGktZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiI7DQoJY29sb3I6IzFGNDk3RDt9DQpz
cGFuLlNwZWxsRQ0KCXttc28tc3R5bGUtbmFtZToiIjsNCgltc28tc3BsLWU6eWVzO30NCi5Nc29D
aHBEZWZhdWx0DQoJe21zby1zdHlsZS10eXBlOmV4cG9ydC1vbmx5Ow0KCW1zby1kZWZhdWx0LXBy
b3BzOnllczsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMtc2VyaWYiOw0KCW1zby1hc2Np
aS1mb250LWZhbWlseTpDYWxpYnJpOw0KCW1zby1mYXJlYXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7
DQoJbXNvLWhhbnNpLWZvbnQtZmFtaWx5OkNhbGlicmk7DQoJbXNvLWJpZGktZm9udC1mYW1pbHk6
IlRpbWVzIE5ldyBSb21hbiI7DQoJbXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVM7fQ0KQHBhZ2Ug
V29yZFNlY3Rpb24xDQoJe3NpemU6NjEyLjBwdCA3OTIuMHB0Ow0KCW1hcmdpbjo3Mi4wcHQgNzIu
MHB0IDcyLjBwdCA3Mi4wcHQ7DQoJbXNvLWhlYWRlci1tYXJnaW46MzYuMHB0Ow0KCW1zby1mb290
ZXItbWFyZ2luOjM2LjBwdDsNCgltc28tcGFwZXItc291cmNlOjA7fQ0KZGl2LldvcmRTZWN0aW9u
MQ0KCXtwYWdlOldvcmRTZWN0aW9uMTt9DQotLT48L3N0eWxlPjwhLS1baWYgZ3RlIG1zbyAxMF0+
PHN0eWxlPi8qIFN0eWxlIERlZmluaXRpb25zICovDQp0YWJsZS5Nc29Ob3JtYWxUYWJsZQ0KCXtt
c28tc3R5bGUtbmFtZToiVGFibGUgTm9ybWFsIjsNCgltc28tdHN0eWxlLXJvd2JhbmQtc2l6ZTow
Ow0KCW1zby10c3R5bGUtY29sYmFuZC1zaXplOjA7DQoJbXNvLXN0eWxlLW5vc2hvdzp5ZXM7DQoJ
bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCW1zby1zdHlsZS1wYXJlbnQ6IiI7DQoJbXNvLXBhZGRp
bmctYWx0OjBjbSA1LjRwdCAwY20gNS40cHQ7DQoJbXNvLXBhcmEtbWFyZ2luOjBjbTsNCgltc28t
cGFyYS1tYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJbXNvLXBhZ2luYXRpb246d2lkb3ctb3JwaGFu
Ow0KCWZvbnQtc2l6ZToxMS4wcHQ7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLCJzYW5zLXNlcmlm
IjsNCgltc28tYXNjaWktZm9udC1mYW1pbHk6Q2FsaWJyaTsNCgltc28taGFuc2ktZm9udC1mYW1p
bHk6Q2FsaWJyaTsNCgltc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUzt9DQo8L3N0eWxlPjwhW2Vu
ZGlmXS0tPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0KPG86c2hhcGVkZWZhdWx0cyB2OmV4dD0i
ZWRpdCIgc3BpZG1heD0iMTAyNiIgLz4NCjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYgZ3RlIG1z
byA5XT48eG1sPg0KPG86c2hhcGVsYXlvdXQgdjpleHQ9ImVkaXQiPg0KPG86aWRtYXAgdjpleHQ9
ImVkaXQiIGRhdGE9IjEiIC8+DQo8L286c2hhcGVsYXlvdXQ+PC94bWw+PCFbZW5kaWZdLS0+DQo8
L2hlYWQ+DQo8Ym9keSBsYW5nPSJFTi1HQiIgbGluaz0iYmx1ZSIgdmxpbms9InB1cnBsZSIgc3R5
bGU9InRhYi1pbnRlcnZhbDozNi4wcHQiPg0KPGRpdiBjbGFzcz0iV29yZFNlY3Rpb24xIj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJD
YWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWJpZGktZm9udC1mYW1pbHk6
JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPlNvcnJ5LCBJIHJlYWxp
c2VkIEkgaGFkIG5vdCByZXNwb25kZWQgdG8gdGhpcy4gVGhpcyBkb2VzIGluZGVlZCBsb29rIGxp
a2UNCiBhIGhvbGUgaW4gdGhlIGxvZ2ljIGluIHRoZSBtYXN0ZXIgYnJhbmNoLiBJIHdpbGwgYWRk
IHlvdXIgcGF0Y2ggYnV0IHNpbmNlIHlvdSBkaWQgbm90IGFkZCB5b3VyIFMtby1iIHRvIHRoZSBw
YXRjaCBJIGNhbiBvbmx5IGNyZWRpdCB5b3Ugd2l0aCBhIOKAmHN1Z2dlc3RlZC1ieeKAmS4gSWYg
eW91IGNhbiBwb3N0IGEgcGF0Y2ggaW4gdGhlIGNvcnJlY3QgZm9ybSAoc2VlDQo8YSBocmVmPSJo
dHRwOi8vd2lraS54ZW5wcm9qZWN0Lm9yZy93aWtpL1N1Ym1pdHRpbmdfWGVuX1Byb2plY3RfUGF0
Y2hlcyI+aHR0cDovL3dpa2kueGVucHJvamVjdC5vcmcvd2lraS9TdWJtaXR0aW5nX1hlbl9Qcm9q
ZWN0X1BhdGNoZXM8L2E+IGZvciBndWlkYW5jZSkgdGhlbiBJIGNhbiBnaXZlIHlvdSBmdWxsIGNy
ZWRpdC48bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7
c2Fucy1zZXJpZiZxdW90Ozttc28tYmlkaS1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9t
YW4mcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9mb250Pjwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBm
YWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWJpZGktZm9udC1m
YW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxzcGFuIHN0
eWxlPSJtc28tc3BhY2VydW46eWVzIj4mbmJzcDsNCjwvc3Bhbj5DaGVlcnMsPG86cD48L286cD48
L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNv
bG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7
bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMx
RjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90
OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1iaWRpLWZvbnQtZmFtaWx5OiZxdW90O1RpbWVz
IE5ldyBSb21hbiZxdW90Oztjb2xvcjojMUY0OTdEIj48c3BhbiBzdHlsZT0ibXNvLXNwYWNlcnVu
OnllcyI+Jm5ic3A7DQo8L3NwYW4+UGF1bDxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0i
Q2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1iaWRpLWZvbnQtZmFtaWx5
OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90Oztjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwv
bzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxl
ZnQ6c29saWQgYmx1ZSAxLjVwdDtwYWRkaW5nOjBjbSAwY20gMGNtIDQuMHB0Ij4NCjxkaXY+DQo8
ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItdG9wOnNvbGlkICNCNUM0REYgMS4wcHQ7cGFk
ZGluZzozLjBwdCAwY20gMGNtIDBjbSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48Zm9udCBz
aXplPSIyIiBmYWNlPSJUYWhvbWEiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXpl
OjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtUYWhvbWEmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZx
dW90Ozttc28tZmFyZWFzdC1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7
bXNvLWFuc2ktbGFuZ3VhZ2U6RU4tVVM7Zm9udC13ZWlnaHQ6Ym9sZCI+RnJvbTo8L3NwYW4+PC9m
b250PjwvYj48Zm9udCBzaXplPSIyIiBmYWNlPSJUYWhvbWEiPjxzcGFuIGxhbmc9IkVOLVVTIiBz
dHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtUYWhvbWEmcXVvdDssJnF1
b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tZmFyZWFzdC1mb250LWZhbWlseTomcXVvdDtUaW1lcyBO
ZXcgUm9tYW4mcXVvdDs7bXNvLWFuc2ktbGFuZ3VhZ2U6RU4tVVMiPg0KIHdpbi1wdi1kZXZlbCBb
bWFpbHRvOndpbi1wdi1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnXSA8Yj48c3Bh
biBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+T24gQmVoYWxmIE9mDQo8L3NwYW4+PC9iPkV5dGFu
IEhlaWRpbmdzZmVsZDxicj4NCjxiPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5TZW50
Ojwvc3Bhbj48L2I+IDExIEp1bHkgMjAxNiAxNTowNjxicj4NCjxiPjxzcGFuIHN0eWxlPSJmb250
LXdlaWdodDpib2xkIj5Ubzo8L3NwYW4+PC9iPiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVj
dC5vcmc8YnI+DQo8Yj48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+U3ViamVjdDo8L3Nw
YW4+PC9iPiBbd2luLXB2LWRldmVsXSBQYXRjaCBmb3IgVW5leHBlY3RlZCBJbml0aWFsIFN0YXRl
cyBvZiBYZW5WaWY8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8L2Rpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21h
biI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFu
PjwvZm9udD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIg
ZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+SGVs
bG8sPGJyPg0KSSd2ZSBub3RpY2VkIHRoYXQgdGhlIHN1cHBvcnQgZm9yIHVuZXhwZWN0ZWQgaW5p
dGlhbCBzdGF0ZXMgdGhhdCB3YXMgYWRkZWQgdG8gc3VwcG9ydCBpc2NzaSBib290IGluIGNvbW1p
dDombmJzcDtjOWI2ZTU2ZTczNDJhMWJiMzFjZmI3OWYyOGI2YTAwZDA1OTU0MDA2LDxvOnA+PC9v
OnA+PC9zcGFuPjwvZm9udD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQg
c2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEy
LjBwdCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tYm90dG9tOjEyLjBwdCI+PGZvbnQg
c2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEy
LjBwdCI+QXMgdGhlcmUgd2FzIHF1aXRlIGEgYml0IG9mIHJlZmFjdG9yaW5nIGFyb3VuZCB0aGF0
IGFyZWEgSSd2ZSBjcmVhdGVkIGEgc21hbGwgcGF0Y2ggdGhhdCBmaXhlcyB0aGUgaXNzdWUgYWdh
aW4sPGJyIHN0eWxlPSJtc28tc3BlY2lhbC1jaGFyYWN0ZXI6bGluZS1icmVhayI+DQo8IVtpZiAh
c3VwcG9ydExpbmVCcmVha05ld0xpbmVdPjxiciBzdHlsZT0ibXNvLXNwZWNpYWwtY2hhcmFjdGVy
OmxpbmUtYnJlYWsiPg0KPCFbZW5kaWZdPjxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8
L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIg
ZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+PG86
cD4mbmJzcDs8L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPmRpZmYgLS1naXQgYS9zcmMveGVudmlmL2Zyb250ZW5k
LmMgYi9zcmMveGVudmlmL2Zyb250ZW5kLmM8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0K
PC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0i
VGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+aW5kZXggNWEy
OTczNi4uYWVmNjY4MCAxMDA2NDQ8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMg
TmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+LS0tIGEvc3JjL3hlbnZp
Zi9mcm9udGVuZC5jPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21h
biI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPiYjNDM7JiM0MzsmIzQzOyBiL3NyYy94
ZW52aWYvZnJvbnRlbmQuYzxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcg
Um9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5AQCAtMTUyMSw2ICYjNDM7MTUy
MSwxMSBAQCBGcm9udGVuZFByZXBhcmUoPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwv
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRp
bWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPiZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO0Zyb250ZW5kU2V0WGVuYnVzU3Rh
dGUoRnJvbnRlbmQsPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21h
biI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFhlbmJ1c1N0YXRl
SW5pdGlhbGlzaW5nKTs8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJv
bWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7YnJlYWs7PG86cD48L286cD48L3NwYW4+PC9mb250
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMi
IGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPiYj
NDM7PHNwYW4gc3R5bGU9Im1zby10YWItY291bnQ6MiI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PG86cD48L286cD48L3Nw
YW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250
IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
Mi4wcHQiPiYjNDM7PHNwYW4gc3R5bGU9Im1zby10YWItY291bnQ6MiI+Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+Y2FzZSBY
ZW5idXNTdGF0ZUNvbm5lY3RlZDo8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMg
TmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+JiM0Mzs8c3BhbiBzdHls
ZT0ibXNvLXRhYi1jb3VudDozIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsNCjwvc3Bhbj5Gcm9udGVuZFNldFhl
bmJ1c1N0YXRlKEZyb250ZW5kLDxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBO
ZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij4mIzQzOzxzcGFuIHN0eWxl
PSJtc28tdGFiLWNvdW50OjQiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOw0KPC9zcGFu
PlhlbmJ1c1N0YXRlQ2xvc2luZyk7PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVz
IE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPiYjNDM7PHNwYW4gc3R5
bGU9Im1zby10YWItY291bnQ6MyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+YnJlYWs7PG86cD48
L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMi4wcHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1l
cyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij4mbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7Y2FzZSBYZW5idXNTdGF0ZUNsb3Npbmc6PG86cD48L286cD48
L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxm
b250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMi4wcHQiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
O0Zyb250ZW5kU2V0WGVuYnVzU3RhdGUoRnJvbnRlbmQsPG86cD48L286cD48L3NwYW4+PC9mb250
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMi
IGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPi0t
Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjEuOS41Lm1zeXNnaXQuMDxvOnA+PC9vOnA+PC9z
cGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMi4wcHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1l
cyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5DaGVlcnMsPG86cD48
L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMi4wcHQiPkV5dGFuPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2
Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ib2R5Pg0KPC9odG1sPg0K

--_000_a37e16ee051e4be581b0a2eafda82bd4AMSPEX02CL03citritenet_--


--===============1695835817551055491==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============1695835817551055491==--


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 18 08:46:09 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 18 Jul 2016 08:46:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bP4Bj-0002SR-PS; Mon, 18 Jul 2016 08:46:07 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=0001784ad=Paul.Durrant@citrix.com>)
 id 1bP4Bi-0002SK-Uo
 for win-pv-devel@lists.xenproject.org; Mon, 18 Jul 2016 08:46:07 +0000
Received: from [85.158.139.211] by server-4.bemta-5.messagelabs.com id
 3C/99-12285-E479C875; Mon, 18 Jul 2016 08:46:06 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupgleJIrShJLcpLzFFi42LZKekooes7vSf
 c4Gy/qMWfxYkOjB6HP1xhCWCMYs3MS8qvSGDNeP57EXvBi6NMFf9OtDM1MO49yNTFyMkhIRAk
 8eThBzCbTUBHYunR+WC2iECxxNe+y6wgtrCAp8TR/f2sEHEviVUPb7BA2EYSW7vWs4HYLAKqE
 q/WLGQGsXkF3CUOLpgANkdIIECia9UboBoODk6BQIkPfxJBwowCshJfGleDlTMLiEvcejIf6h
 wBiSV7zjND2KISLx//Y4WwDSS2Lt3HAlGfK3Fr0ykWiFWCEidnPmGBWKUiseXxAahebomVn/+
 wTGAUnoVkxSwk7bOQtM8Cuo5ZQFNi/S59iBJFiSndD9khbA2J1jlz2ZHFFzCyr2LUKE4tKkst
 0jUy0EsqykzPKMlNzMzRNTQw1ctNLS5OTE/NSUwq1kvOz93ECIyhegYGxh2MjbP9DjFKcjApi
 fI2KfSEC/El5adUZiQWZ8QXleakFh9ilOHgUJLg/TEVKCdYlJqeWpGWmQOMZpi0BAePkghEmr
 e4IDG3ODMdInWKUVFKnFdoGlBCACSRUZoH1wZLIJcYZaWEeRkZGBiEeApSi3IzS1DlXzGKczA
 qCfNagEzhycwrgZv+CmgxE9BiA9VukMUliQgpqQZGo5anNhYPXs712b/4an7fpo//zZUfeDMp
 3WN6b7orjCdIqSFlo02RkdrU2Lg3LUJpAr+Vnh/6ZlNtejB0k/Dbv01c7Clee7ZdKcqOc5Y79
 f3Sp3cVBxx6nUXNtnJvf8P7kWHptIkHTpf43GCaGmM5JyNS+Kn+jevfrFufb9cskt/VeuB6Zd
 YxJZbijERDLeai4kQAH7iTvhsDAAA=
X-Env-Sender: prvs=0001784ad=Paul.Durrant@citrix.com
X-Msg-Ref: server-16.tower-206.messagelabs.com!1468831564!34173672!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.6 required=7.0 tests=HTML_90_100,HTML_MESSAGE,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5976 invoked from network); 18 Jul 2016 08:46:05 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-16.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 18 Jul 2016 08:46:05 -0000
X-IronPort-AV: E=Sophos;i="5.28,383,1464652800"; d="scan'208,217";a="26498382"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Eytan Heidingsfeld <eytanh@gmail.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] Patch for Unexpected Initial States of XenVif
Thread-Index: AQHR2313Y9Xgtyd5ZUSDaWT7cmPzJqAd5dzQ
Date: Mon, 18 Jul 2016 08:44:42 +0000
Message-ID: <a37e16ee051e4be581b0a2eafda82bd4@AMSPEX02CL03.citrite.net>
References: <CAGjCcQNrfvCTQmatbt37ouFC+MRRSyhhbkpz6di0PR4YbwVURg@mail.gmail.com>
In-Reply-To: <CAGjCcQNrfvCTQmatbt37ouFC+MRRSyhhbkpz6di0PR4YbwVURg@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] Patch for Unexpected Initial States of XenVif
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1695835817551055491=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============1695835817551055491==
Content-Language: en-US
Content-Type: multipart/alternative;
	boundary="_000_a37e16ee051e4be581b0a2eafda82bd4AMSPEX02CL03citritenet_"

--_000_a37e16ee051e4be581b0a2eafda82bd4AMSPEX02CL03citritenet_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

U29ycnksIEkgcmVhbGlzZWQgSSBoYWQgbm90IHJlc3BvbmRlZCB0byB0aGlzLiBUaGlzIGRvZXMg
aW5kZWVkIGxvb2sgbGlrZSBhIGhvbGUgaW4gdGhlIGxvZ2ljIGluIHRoZSBtYXN0ZXIgYnJhbmNo
LiBJIHdpbGwgYWRkIHlvdXIgcGF0Y2ggYnV0IHNpbmNlIHlvdSBkaWQgbm90IGFkZCB5b3VyIFMt
by1iIHRvIHRoZSBwYXRjaCBJIGNhbiBvbmx5IGNyZWRpdCB5b3Ugd2l0aCBhIOKAmHN1Z2dlc3Rl
ZC1ieeKAmS4gSWYgeW91IGNhbiBwb3N0IGEgcGF0Y2ggaW4gdGhlIGNvcnJlY3QgZm9ybSAoc2Vl
IGh0dHA6Ly93aWtpLnhlbnByb2plY3Qub3JnL3dpa2kvU3VibWl0dGluZ19YZW5fUHJvamVjdF9Q
YXRjaGVzIGZvciBndWlkYW5jZSkgdGhlbiBJIGNhbiBnaXZlIHlvdSBmdWxsIGNyZWRpdC4NCg0K
ICBDaGVlcnMsDQoNCiAgUGF1bA0KDQpGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0bzp3aW4tcHYt
ZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24gQmVoYWxmIE9mIEV5dGFuIEhl
aWRpbmdzZmVsZA0KU2VudDogMTEgSnVseSAyMDE2IDE1OjA2DQpUbzogd2luLXB2LWRldmVsQGxp
c3RzLnhlbnByb2plY3Qub3JnDQpTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBQYXRjaCBmb3IgVW5l
eHBlY3RlZCBJbml0aWFsIFN0YXRlcyBvZiBYZW5WaWYNCg0KSGVsbG8sDQpJJ3ZlIG5vdGljZWQg
dGhhdCB0aGUgc3VwcG9ydCBmb3IgdW5leHBlY3RlZCBpbml0aWFsIHN0YXRlcyB0aGF0IHdhcyBh
ZGRlZCB0byBzdXBwb3J0IGlzY3NpIGJvb3QgaW4gY29tbWl0OiBjOWI2ZTU2ZTczNDJhMWJiMzFj
ZmI3OWYyOGI2YTAwZDA1OTU0MDA2LA0KDQpBcyB0aGVyZSB3YXMgcXVpdGUgYSBiaXQgb2YgcmVm
YWN0b3JpbmcgYXJvdW5kIHRoYXQgYXJlYSBJJ3ZlIGNyZWF0ZWQgYSBzbWFsbCBwYXRjaCB0aGF0
IGZpeGVzIHRoZSBpc3N1ZSBhZ2FpbiwNCg0KDQpkaWZmIC0tZ2l0IGEvc3JjL3hlbnZpZi9mcm9u
dGVuZC5jIGIvc3JjL3hlbnZpZi9mcm9udGVuZC5jDQppbmRleCA1YTI5NzM2Li5hZWY2NjgwIDEw
MDY0NA0KLS0tIGEvc3JjL3hlbnZpZi9mcm9udGVuZC5jDQorKysgYi9zcmMveGVudmlmL2Zyb250
ZW5kLmMNCkBAIC0xNTIxLDYgKzE1MjEsMTEgQEAgRnJvbnRlbmRQcmVwYXJlKA0KICAgICAgICAg
ICAgIEZyb250ZW5kU2V0WGVuYnVzU3RhdGUoRnJvbnRlbmQsDQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBYZW5idXNTdGF0ZUluaXRpYWxpc2luZyk7DQogICAgICAgICAgICAg
YnJlYWs7DQorDQorICAgICAgICAgICAgICAgICAgICBjYXNlIFhlbmJ1c1N0YXRlQ29ubmVjdGVk
Og0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJvbnRlbmRTZXRYZW5idXNTdGF0
ZShGcm9udGVuZCwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFhlbmJ1c1N0YXRlQ2xvc2luZyk7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsNCg0KICAgICAgICAgY2FzZSBYZW5idXNTdGF0ZUNsb3Npbmc6DQogICAgICAgICAgICAg
RnJvbnRlbmRTZXRYZW5idXNTdGF0ZShGcm9udGVuZCwNCi0tDQoxLjkuNS5tc3lzZ2l0LjANCg0K
Q2hlZXJzLA0KRXl0YW4NCg==

--_000_a37e16ee051e4be581b0a2eafda82bd4AMSPEX02CL03citritenet_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IlByb2dJZCIg
Y29udGVudD0iV29yZC5Eb2N1bWVudCI+DQo8bWV0YSBuYW1lPSJHZW5lcmF0b3IiIGNvbnRlbnQ9
Ik1pY3Jvc29mdCBXb3JkIDE0Ij4NCjxtZXRhIG5hbWU9Ik9yaWdpbmF0b3IiIGNvbnRlbnQ9Ik1p
Y3Jvc29mdCBXb3JkIDE0Ij4NCjxsaW5rIHJlbD0iRmlsZS1MaXN0IiBocmVmPSJjaWQ6ZmlsZWxp
c3QueG1sQDAxRDFFMEQ5LjAyNDM4NzAwIj48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOk9m
ZmljZURvY3VtZW50U2V0dGluZ3M+DQo8bzpBbGxvd1BORy8+DQo8bzpEb05vdFJlbHlPbkNTUy8+
DQo8L286T2ZmaWNlRG9jdW1lbnRTZXR0aW5ncz4NCjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYg
Z3RlIG1zbyA5XT48eG1sPg0KPHc6V29yZERvY3VtZW50Pg0KPHc6U3BlbGxpbmdTdGF0ZT5DbGVh
bjwvdzpTcGVsbGluZ1N0YXRlPg0KPHc6VHJhY2tNb3Zlcy8+DQo8dzpUcmFja0Zvcm1hdHRpbmcv
Pg0KPHc6RW52ZWxvcGVWaXMvPg0KPHc6VmFsaWRhdGVBZ2FpbnN0U2NoZW1hcy8+DQo8dzpTYXZl
SWZYTUxJbnZhbGlkPmZhbHNlPC93OlNhdmVJZlhNTEludmFsaWQ+DQo8dzpJZ25vcmVNaXhlZENv
bnRlbnQ+ZmFsc2U8L3c6SWdub3JlTWl4ZWRDb250ZW50Pg0KPHc6QWx3YXlzU2hvd1BsYWNlaG9s
ZGVyVGV4dD5mYWxzZTwvdzpBbHdheXNTaG93UGxhY2Vob2xkZXJUZXh0Pg0KPHc6RG9Ob3RQcm9t
b3RlUUYvPg0KPHc6TGlkVGhlbWVPdGhlcj5FTi1HQjwvdzpMaWRUaGVtZU90aGVyPg0KPHc6TGlk
VGhlbWVBc2lhbj5YLU5PTkU8L3c6TGlkVGhlbWVBc2lhbj4NCjx3OkxpZFRoZW1lQ29tcGxleFNj
cmlwdD5YLU5PTkU8L3c6TGlkVGhlbWVDb21wbGV4U2NyaXB0Pg0KPHc6Q29tcGF0aWJpbGl0eT4N
Cjx3OkRvTm90RXhwYW5kU2hpZnRSZXR1cm4vPg0KPHc6QnJlYWtXcmFwcGVkVGFibGVzLz4NCjx3
OlNwbGl0UGdCcmVha0FuZFBhcmFNYXJrLz4NCjx3OkVuYWJsZU9wZW5UeXBlS2VybmluZy8+DQo8
L3c6Q29tcGF0aWJpbGl0eT4NCjxtOm1hdGhQcj4NCjxtOm1hdGhGb250IG06dmFsPSJDYW1icmlh
IE1hdGgiLz4NCjxtOmJya0JpbiBtOnZhbD0iYmVmb3JlIi8+DQo8bTpicmtCaW5TdWIgbTp2YWw9
IiYjNDU7LSIvPg0KPG06c21hbGxGcmFjIG06dmFsPSJvZmYiLz4NCjxtOmRpc3BEZWYvPg0KPG06
bE1hcmdpbiBtOnZhbD0iMCIvPg0KPG06ck1hcmdpbiBtOnZhbD0iMCIvPg0KPG06ZGVmSmMgbTp2
YWw9ImNlbnRlckdyb3VwIi8+DQo8bTp3cmFwSW5kZW50IG06dmFsPSIxNDQwIi8+DQo8bTppbnRM
aW0gbTp2YWw9InN1YlN1cCIvPg0KPG06bmFyeUxpbSBtOnZhbD0idW5kT3ZyIi8+DQo8L206bWF0
aFByPjwvdzpXb3JkRG9jdW1lbnQ+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28g
OV0+PHhtbD4NCjx3OkxhdGVudFN0eWxlcyBEZWZMb2NrZWRTdGF0ZT0iZmFsc2UiIERlZlVuaGlk
ZVdoZW5Vc2VkPSJ0cnVlIiBEZWZTZW1pSGlkZGVuPSJ0cnVlIiBEZWZRRm9ybWF0PSJmYWxzZSIg
RGVmUHJpb3JpdHk9Ijk5IiBMYXRlbnRTdHlsZUNvdW50PSIyNjciPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJOb3JtYWwiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyAxIi8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFFGb3JtYXQ9InRydWUiIE5h
bWU9ImhlYWRpbmcgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyA0
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFFGb3JtYXQ9
InRydWUiIE5hbWU9ImhlYWRpbmcgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDYiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0i
aGVhZGluZyA3Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9Ijki
IFFGb3JtYXQ9InRydWUiIE5hbWU9ImhlYWRpbmcgOCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDkiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzkiIE5hbWU9InRvYyAx
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjM5IiBOYW1lPSJ0
b2MgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzOSIgTmFt
ZT0idG9jIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzki
IE5hbWU9InRvYyA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjM5IiBOYW1lPSJ0b2MgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9y
aXR5PSIzOSIgTmFtZT0idG9jIDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iMzkiIE5hbWU9InRvYyA3Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjM5IiBOYW1lPSJ0b2MgOCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSIzOSIgTmFtZT0idG9jIDkiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzUiIFFGb3JtYXQ9InRydWUiIE5hbWU9ImNhcHRpb24iLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMTAiIFNlbWlIaWRkZW49
ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9IlRpdGxl
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjEiIE5hbWU9IkRl
ZmF1bHQgUGFyYWdyYXBoIEZvbnQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iMTEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFG
b3JtYXQ9InRydWUiIE5hbWU9IlN1YnRpdGxlIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjIyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZh
bHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJTdHJvbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iMjAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNl
ZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9IkVtcGhhc2lzIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjU5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJUYWJsZSBHcmlkIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9j
a2VkPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJQbGFjZWhvbGRlciBUZXh0
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjEiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9Ik5v
IFNwYWNpbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjAi
IFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IFNo
YWRpbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjEiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IExpc3Qi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjIiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IEdyaWQiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjMiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDEiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDEiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDIiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjciIFNlbWlIaWRkZW49ImZhbHNlIiBV
bmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDEiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjgiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhp
ZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDIiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjkiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVX
aGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9IkRhcmsgTGlzdCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI3MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iQ29sb3JmdWwgU2hhZGluZyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iQ29sb3JmdWwgTGlzdCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI2MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIg
TmFtZT0iTGlnaHQgU2hhZGluZyBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI2MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iTGlnaHQgTGlzdCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI2MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgTmFtZT0iTGlnaHQgR3JpZCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMSBBY2NlbnQgMSIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVu
aGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMiBBY2NlbnQgMSIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NSIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3QgMSBBY2NlbnQg
MSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iUmV2aXNpb24iLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iMzQiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3Jt
YXQ9InRydWUiIE5hbWU9Ikxpc3QgUGFyYWdyYXBoIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjI5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJRdW90ZSIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzMCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iSW50ZW5zZSBRdW90ZSIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NiIgU2VtaUhpZGRlbj0iZmFsc2Ui
IFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3QgMiBBY2NlbnQgMSIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NyIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMSBBY2NlbnQg
MSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OCIgU2VtaUhp
ZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMiBB
Y2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OSIg
U2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdy
aWQgMyBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI3MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iRGFy
ayBMaXN0IEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjcxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJD
b2xvcmZ1bCBTaGFkaW5nIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjcyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNl
IiBOYW1lPSJDb2xvcmZ1bCBMaXN0IEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjczIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBHcmlkIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBTaGFkaW5nIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5o
aWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBMaXN0IEFjY2VudCAyIi8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYyIiBTZW1pSGlkZGVuPSJmYWxzZSIg
VW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBHcmlkIEFjY2VudCAyIi8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYzIiBTZW1pSGlkZGVuPSJmYWxz
ZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAxIEFjY2VudCAy
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY0IiBTZW1pSGlk
ZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAy
IEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY1
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0g
TGlzdCAxIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjY2IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJN
ZWRpdW0gTGlzdCAyIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjY3IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBO
YW1lPSJNZWRpdW0gR3JpZCAxIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjY4IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZh
bHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAyIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9j
a2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVz
ZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAzIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJEYXJrIExpc3QgQWNjZW50IDIiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhp
ZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIFNoYWRpbmcgQWNjZW50IDIiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzIiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIExpc3QgQWNjZW50IDIi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzMiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIEdyaWQgQWNj
ZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjAiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IFNoYWRp
bmcgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NjEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0
IExpc3QgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNjIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ikxp
Z2h0IEdyaWQgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNjMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9
Ik1lZGl1bSBTaGFkaW5nIDEgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFs
c2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDEgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhp
ZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDIgQWNjZW50IDMiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjciIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDEgQWNjZW50IDMiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjgiIFNlbWlIaWRkZW49
ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDIgQWNjZW50
IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjkiIFNlbWlI
aWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDMg
QWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzAi
IFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkRhcmsgTGlz
dCBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3
MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3Jm
dWwgU2hhZGluZyBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFBy
aW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFt
ZT0iQ29sb3JmdWwgTGlzdCBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI2MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgTmFtZT0iTGlnaHQgU2hhZGluZyBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdo
ZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQgTGlzdCBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQgR3JpZCBBY2NlbnQgNCIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVu
aGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMSBBY2NlbnQgNCIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NCIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMiBBY2Nl
bnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NSIgU2Vt
aUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3Qg
MSBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2
NiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVt
IExpc3QgMiBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9y
aXR5PSI2NyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0i
TWVkaXVtIEdyaWQgMSBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI2OCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIg
TmFtZT0iTWVkaXVtIEdyaWQgMiBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI2OSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMyBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgTmFtZT0iRGFyayBMaXN0IEFjY2VudCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBTaGFkaW5nIEFjY2VudCA0Ii8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcyIiBTZW1pSGlkZGVuPSJmYWxzZSIg
VW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBMaXN0IEFjY2VudCA0Ii8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjczIiBTZW1pSGlkZGVuPSJm
YWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBHcmlkIEFjY2VudCA0
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYwIiBTZW1pSGlk
ZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBTaGFkaW5nIEFj
Y2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYxIiBT
ZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBMaXN0
IEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYy
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBH
cmlkIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjYzIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRp
dW0gU2hhZGluZyAxIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjY0IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBO
YW1lPSJNZWRpdW0gU2hhZGluZyAyIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjY1IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAxIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY2IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAyIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY3IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5o
aWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAxIEFjY2VudCA1Ii8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY4IiBTZW1pSGlkZGVuPSJmYWxz
ZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAyIEFjY2VudCA1Ii8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY5IiBTZW1pSGlkZGVu
PSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAzIEFjY2Vu
dCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcwIiBTZW1p
SGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJEYXJrIExpc3QgQWNj
ZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzEiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIFNo
YWRpbmcgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNzIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNv
bG9yZnVsIExpc3QgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iNzMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5h
bWU9IkNvbG9yZnVsIEdyaWQgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNjAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFs
c2UiIE5hbWU9IkxpZ2h0IFNoYWRpbmcgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNl
ZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IExpc3QgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IEdyaWQgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVX
aGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDEgQWNjZW50IDYiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIgQWNjZW50IDYi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDEgQWNj
ZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0
IDIgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NjciIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1
bSBHcmlkIDEgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNjgiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9
Ik1lZGl1bSBHcmlkIDIgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBQcmlvcml0eT0iNjkiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2Ui
IE5hbWU9Ik1lZGl1bSBHcmlkIDMgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9
ImZhbHNlIiBQcmlvcml0eT0iNzAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0i
ZmFsc2UiIE5hbWU9IkRhcmsgTGlzdCBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI3MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgU2hhZGluZyBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgTGlzdCBBY2NlbnQgNiIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRlbj0iZmFsc2Ui
IFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCBBY2NlbnQgNiIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIxOSIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iU3VidGxl
IEVtcGhhc2lzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjIx
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVl
IiBOYW1lPSJJbnRlbnNlIEVtcGhhc2lzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjMxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNl
IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJTdWJ0bGUgUmVmZXJlbmNlIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjMyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJJbnRlbnNlIFJlZmVyZW5jZSIv
Pg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzMyIgU2VtaUhpZGRl
bj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iQm9v
ayBUaXRsZSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzNyIg
TmFtZT0iQmlibGlvZ3JhcGh5Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJp
b3JpdHk9IjM5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJUT0MgSGVhZGluZyIvPg0KPC93OkxhdGVu
dFN0eWxlcz4NCjwveG1sPjwhW2VuZGlmXS0tPjxzdHlsZT48IS0tDQovKiBGb250IERlZmluaXRp
b25zICovDQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAx
NSA1IDIgMiAyIDQgMyAyIDQ7DQoJbXNvLWZvbnQtY2hhcnNldDowOw0KCW1zby1nZW5lcmljLWZv
bnQtZmFtaWx5OnN3aXNzOw0KCW1zby1mb250LXBpdGNoOnZhcmlhYmxlOw0KCW1zby1mb250LXNp
Z25hdHVyZTotNTM2ODcwMTQ1IDEwNzM3ODYxMTEgMSAwIDQxNSAwO30NCkBmb250LWZhY2UNCgl7
Zm9udC1mYW1pbHk6VGFob21hOw0KCXBhbm9zZS0xOjIgMTEgNiA0IDMgNSA0IDQgMiA0Ow0KCW1z
by1mb250LWNoYXJzZXQ6MDsNCgltc28tZ2VuZXJpYy1mb250LWZhbWlseTpzd2lzczsNCgltc28t
Zm9udC1waXRjaDp2YXJpYWJsZTsNCgltc28tZm9udC1zaWduYXR1cmU6LTUyMDA4MTY2NSAtMTA3
MzcxNzE1NyA0MSAwIDY2MDQ3IDA7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9y
bWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwNCgl7bXNvLXN0eWxlLXVuaGlkZTpubzsN
Cgltc28tc3R5bGUtcWZvcm1hdDp5ZXM7DQoJbXNvLXN0eWxlLXBhcmVudDoiIjsNCgltYXJnaW46
MGNtOw0KCW1hcmdpbi1ib3R0b206LjAwMDFwdDsNCgltc28tcGFnaW5hdGlvbjp3aWRvdy1vcnBo
YW47DQoJZm9udC1zaXplOjEyLjBwdDsNCglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIiwi
c2VyaWYiOw0KCW1zby1mYXJlYXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7fQ0KYTpsaW5rLCBzcGFu
Lk1zb0h5cGVybGluaw0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6Ymx1ZTsNCgl0
ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOw0KCXRleHQtdW5kZXJsaW5lOnNpbmdsZTt9DQphOnZp
c2l0ZWQsIHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQNCgl7bXNvLXN0eWxlLW5vc2hvdzp5ZXM7
DQoJbXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOnB1cnBsZTsNCgl0ZXh0LWRlY29yYXRp
b246dW5kZXJsaW5lOw0KCXRleHQtdW5kZXJsaW5lOnNpbmdsZTt9DQpzcGFuLkVtYWlsU3R5bGUx
Nw0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbC1yZXBseTsNCgltc28tc3R5bGUtbm9zaG93Onll
czsNCgltc28tc3R5bGUtdW5oaWRlOm5vOw0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMS4wcHQ7DQoJ
bXNvLWJpZGktZm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMt
c2VyaWYiOw0KCW1zby1hc2NpaS1mb250LWZhbWlseTpDYWxpYnJpOw0KCW1zby1mYXJlYXN0LWZv
bnQtZmFtaWx5OkNhbGlicmk7DQoJbXNvLWhhbnNpLWZvbnQtZmFtaWx5OkNhbGlicmk7DQoJbXNv
LWJpZGktZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiI7DQoJY29sb3I6IzFGNDk3RDt9DQpz
cGFuLlNwZWxsRQ0KCXttc28tc3R5bGUtbmFtZToiIjsNCgltc28tc3BsLWU6eWVzO30NCi5Nc29D
aHBEZWZhdWx0DQoJe21zby1zdHlsZS10eXBlOmV4cG9ydC1vbmx5Ow0KCW1zby1kZWZhdWx0LXBy
b3BzOnllczsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMtc2VyaWYiOw0KCW1zby1hc2Np
aS1mb250LWZhbWlseTpDYWxpYnJpOw0KCW1zby1mYXJlYXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7
DQoJbXNvLWhhbnNpLWZvbnQtZmFtaWx5OkNhbGlicmk7DQoJbXNvLWJpZGktZm9udC1mYW1pbHk6
IlRpbWVzIE5ldyBSb21hbiI7DQoJbXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVM7fQ0KQHBhZ2Ug
V29yZFNlY3Rpb24xDQoJe3NpemU6NjEyLjBwdCA3OTIuMHB0Ow0KCW1hcmdpbjo3Mi4wcHQgNzIu
MHB0IDcyLjBwdCA3Mi4wcHQ7DQoJbXNvLWhlYWRlci1tYXJnaW46MzYuMHB0Ow0KCW1zby1mb290
ZXItbWFyZ2luOjM2LjBwdDsNCgltc28tcGFwZXItc291cmNlOjA7fQ0KZGl2LldvcmRTZWN0aW9u
MQ0KCXtwYWdlOldvcmRTZWN0aW9uMTt9DQotLT48L3N0eWxlPjwhLS1baWYgZ3RlIG1zbyAxMF0+
PHN0eWxlPi8qIFN0eWxlIERlZmluaXRpb25zICovDQp0YWJsZS5Nc29Ob3JtYWxUYWJsZQ0KCXtt
c28tc3R5bGUtbmFtZToiVGFibGUgTm9ybWFsIjsNCgltc28tdHN0eWxlLXJvd2JhbmQtc2l6ZTow
Ow0KCW1zby10c3R5bGUtY29sYmFuZC1zaXplOjA7DQoJbXNvLXN0eWxlLW5vc2hvdzp5ZXM7DQoJ
bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCW1zby1zdHlsZS1wYXJlbnQ6IiI7DQoJbXNvLXBhZGRp
bmctYWx0OjBjbSA1LjRwdCAwY20gNS40cHQ7DQoJbXNvLXBhcmEtbWFyZ2luOjBjbTsNCgltc28t
cGFyYS1tYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJbXNvLXBhZ2luYXRpb246d2lkb3ctb3JwaGFu
Ow0KCWZvbnQtc2l6ZToxMS4wcHQ7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLCJzYW5zLXNlcmlm
IjsNCgltc28tYXNjaWktZm9udC1mYW1pbHk6Q2FsaWJyaTsNCgltc28taGFuc2ktZm9udC1mYW1p
bHk6Q2FsaWJyaTsNCgltc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUzt9DQo8L3N0eWxlPjwhW2Vu
ZGlmXS0tPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0KPG86c2hhcGVkZWZhdWx0cyB2OmV4dD0i
ZWRpdCIgc3BpZG1heD0iMTAyNiIgLz4NCjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYgZ3RlIG1z
byA5XT48eG1sPg0KPG86c2hhcGVsYXlvdXQgdjpleHQ9ImVkaXQiPg0KPG86aWRtYXAgdjpleHQ9
ImVkaXQiIGRhdGE9IjEiIC8+DQo8L286c2hhcGVsYXlvdXQ+PC94bWw+PCFbZW5kaWZdLS0+DQo8
L2hlYWQ+DQo8Ym9keSBsYW5nPSJFTi1HQiIgbGluaz0iYmx1ZSIgdmxpbms9InB1cnBsZSIgc3R5
bGU9InRhYi1pbnRlcnZhbDozNi4wcHQiPg0KPGRpdiBjbGFzcz0iV29yZFNlY3Rpb24xIj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJD
YWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWJpZGktZm9udC1mYW1pbHk6
JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPlNvcnJ5LCBJIHJlYWxp
c2VkIEkgaGFkIG5vdCByZXNwb25kZWQgdG8gdGhpcy4gVGhpcyBkb2VzIGluZGVlZCBsb29rIGxp
a2UNCiBhIGhvbGUgaW4gdGhlIGxvZ2ljIGluIHRoZSBtYXN0ZXIgYnJhbmNoLiBJIHdpbGwgYWRk
IHlvdXIgcGF0Y2ggYnV0IHNpbmNlIHlvdSBkaWQgbm90IGFkZCB5b3VyIFMtby1iIHRvIHRoZSBw
YXRjaCBJIGNhbiBvbmx5IGNyZWRpdCB5b3Ugd2l0aCBhIOKAmHN1Z2dlc3RlZC1ieeKAmS4gSWYg
eW91IGNhbiBwb3N0IGEgcGF0Y2ggaW4gdGhlIGNvcnJlY3QgZm9ybSAoc2VlDQo8YSBocmVmPSJo
dHRwOi8vd2lraS54ZW5wcm9qZWN0Lm9yZy93aWtpL1N1Ym1pdHRpbmdfWGVuX1Byb2plY3RfUGF0
Y2hlcyI+aHR0cDovL3dpa2kueGVucHJvamVjdC5vcmcvd2lraS9TdWJtaXR0aW5nX1hlbl9Qcm9q
ZWN0X1BhdGNoZXM8L2E+IGZvciBndWlkYW5jZSkgdGhlbiBJIGNhbiBnaXZlIHlvdSBmdWxsIGNy
ZWRpdC48bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7
c2Fucy1zZXJpZiZxdW90Ozttc28tYmlkaS1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9t
YW4mcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9mb250Pjwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBm
YWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWJpZGktZm9udC1m
YW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxzcGFuIHN0
eWxlPSJtc28tc3BhY2VydW46eWVzIj4mbmJzcDsNCjwvc3Bhbj5DaGVlcnMsPG86cD48L286cD48
L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNv
bG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7
bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMx
RjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90
OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1iaWRpLWZvbnQtZmFtaWx5OiZxdW90O1RpbWVz
IE5ldyBSb21hbiZxdW90Oztjb2xvcjojMUY0OTdEIj48c3BhbiBzdHlsZT0ibXNvLXNwYWNlcnVu
OnllcyI+Jm5ic3A7DQo8L3NwYW4+UGF1bDxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0i
Q2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1iaWRpLWZvbnQtZmFtaWx5
OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90Oztjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwv
bzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxl
ZnQ6c29saWQgYmx1ZSAxLjVwdDtwYWRkaW5nOjBjbSAwY20gMGNtIDQuMHB0Ij4NCjxkaXY+DQo8
ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItdG9wOnNvbGlkICNCNUM0REYgMS4wcHQ7cGFk
ZGluZzozLjBwdCAwY20gMGNtIDBjbSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48Zm9udCBz
aXplPSIyIiBmYWNlPSJUYWhvbWEiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXpl
OjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtUYWhvbWEmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZx
dW90Ozttc28tZmFyZWFzdC1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7
bXNvLWFuc2ktbGFuZ3VhZ2U6RU4tVVM7Zm9udC13ZWlnaHQ6Ym9sZCI+RnJvbTo8L3NwYW4+PC9m
b250PjwvYj48Zm9udCBzaXplPSIyIiBmYWNlPSJUYWhvbWEiPjxzcGFuIGxhbmc9IkVOLVVTIiBz
dHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtUYWhvbWEmcXVvdDssJnF1
b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tZmFyZWFzdC1mb250LWZhbWlseTomcXVvdDtUaW1lcyBO
ZXcgUm9tYW4mcXVvdDs7bXNvLWFuc2ktbGFuZ3VhZ2U6RU4tVVMiPg0KIHdpbi1wdi1kZXZlbCBb
bWFpbHRvOndpbi1wdi1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnXSA8Yj48c3Bh
biBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+T24gQmVoYWxmIE9mDQo8L3NwYW4+PC9iPkV5dGFu
IEhlaWRpbmdzZmVsZDxicj4NCjxiPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5TZW50
Ojwvc3Bhbj48L2I+IDExIEp1bHkgMjAxNiAxNTowNjxicj4NCjxiPjxzcGFuIHN0eWxlPSJmb250
LXdlaWdodDpib2xkIj5Ubzo8L3NwYW4+PC9iPiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVj
dC5vcmc8YnI+DQo8Yj48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+U3ViamVjdDo8L3Nw
YW4+PC9iPiBbd2luLXB2LWRldmVsXSBQYXRjaCBmb3IgVW5leHBlY3RlZCBJbml0aWFsIFN0YXRl
cyBvZiBYZW5WaWY8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8L2Rpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21h
biI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFu
PjwvZm9udD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIg
ZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+SGVs
bG8sPGJyPg0KSSd2ZSBub3RpY2VkIHRoYXQgdGhlIHN1cHBvcnQgZm9yIHVuZXhwZWN0ZWQgaW5p
dGlhbCBzdGF0ZXMgdGhhdCB3YXMgYWRkZWQgdG8gc3VwcG9ydCBpc2NzaSBib290IGluIGNvbW1p
dDombmJzcDtjOWI2ZTU2ZTczNDJhMWJiMzFjZmI3OWYyOGI2YTAwZDA1OTU0MDA2LDxvOnA+PC9v
OnA+PC9zcGFuPjwvZm9udD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQg
c2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEy
LjBwdCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tYm90dG9tOjEyLjBwdCI+PGZvbnQg
c2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEy
LjBwdCI+QXMgdGhlcmUgd2FzIHF1aXRlIGEgYml0IG9mIHJlZmFjdG9yaW5nIGFyb3VuZCB0aGF0
IGFyZWEgSSd2ZSBjcmVhdGVkIGEgc21hbGwgcGF0Y2ggdGhhdCBmaXhlcyB0aGUgaXNzdWUgYWdh
aW4sPGJyIHN0eWxlPSJtc28tc3BlY2lhbC1jaGFyYWN0ZXI6bGluZS1icmVhayI+DQo8IVtpZiAh
c3VwcG9ydExpbmVCcmVha05ld0xpbmVdPjxiciBzdHlsZT0ibXNvLXNwZWNpYWwtY2hhcmFjdGVy
OmxpbmUtYnJlYWsiPg0KPCFbZW5kaWZdPjxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8
L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIg
ZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+PG86
cD4mbmJzcDs8L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPmRpZmYgLS1naXQgYS9zcmMveGVudmlmL2Zyb250ZW5k
LmMgYi9zcmMveGVudmlmL2Zyb250ZW5kLmM8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0K
PC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0i
VGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+aW5kZXggNWEy
OTczNi4uYWVmNjY4MCAxMDA2NDQ8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMg
TmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+LS0tIGEvc3JjL3hlbnZp
Zi9mcm9udGVuZC5jPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21h
biI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPiYjNDM7JiM0MzsmIzQzOyBiL3NyYy94
ZW52aWYvZnJvbnRlbmQuYzxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcg
Um9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5AQCAtMTUyMSw2ICYjNDM7MTUy
MSwxMSBAQCBGcm9udGVuZFByZXBhcmUoPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwv
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRp
bWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPiZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO0Zyb250ZW5kU2V0WGVuYnVzU3Rh
dGUoRnJvbnRlbmQsPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21h
biI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFhlbmJ1c1N0YXRl
SW5pdGlhbGlzaW5nKTs8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJv
bWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7YnJlYWs7PG86cD48L286cD48L3NwYW4+PC9mb250
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMi
IGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPiYj
NDM7PHNwYW4gc3R5bGU9Im1zby10YWItY291bnQ6MiI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PG86cD48L286cD48L3Nw
YW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250
IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
Mi4wcHQiPiYjNDM7PHNwYW4gc3R5bGU9Im1zby10YWItY291bnQ6MiI+Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+Y2FzZSBY
ZW5idXNTdGF0ZUNvbm5lY3RlZDo8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMg
TmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+JiM0Mzs8c3BhbiBzdHls
ZT0ibXNvLXRhYi1jb3VudDozIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsNCjwvc3Bhbj5Gcm9udGVuZFNldFhl
bmJ1c1N0YXRlKEZyb250ZW5kLDxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBO
ZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij4mIzQzOzxzcGFuIHN0eWxl
PSJtc28tdGFiLWNvdW50OjQiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOw0KPC9zcGFu
PlhlbmJ1c1N0YXRlQ2xvc2luZyk7PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVz
IE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPiYjNDM7PHNwYW4gc3R5
bGU9Im1zby10YWItY291bnQ6MyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+YnJlYWs7PG86cD48
L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMi4wcHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1l
cyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij4mbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7Y2FzZSBYZW5idXNTdGF0ZUNsb3Npbmc6PG86cD48L286cD48
L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxm
b250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMi4wcHQiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
O0Zyb250ZW5kU2V0WGVuYnVzU3RhdGUoRnJvbnRlbmQsPG86cD48L286cD48L3NwYW4+PC9mb250
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMi
IGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPi0t
Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjEuOS41Lm1zeXNnaXQuMDxvOnA+PC9vOnA+PC9z
cGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMi4wcHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1l
cyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5DaGVlcnMsPG86cD48
L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMi4wcHQiPkV5dGFuPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2
Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ib2R5Pg0KPC9odG1sPg0K

--_000_a37e16ee051e4be581b0a2eafda82bd4AMSPEX02CL03citritenet_--


--===============1695835817551055491==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============1695835817551055491==--


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 18 09:22:34 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 18 Jul 2016 09:22:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bP4l0-0004oS-55; Mon, 18 Jul 2016 09:22:34 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <eytanh@gmail.com>) id 1bP4ky-0004oK-9g
 for win-pv-devel@lists.xenproject.org; Mon, 18 Jul 2016 09:22:32 +0000
Received: from [85.158.137.68] by server-17.bemta-3.messagelabs.com id
 39/B8-21227-7DF9C875; Mon, 18 Jul 2016 09:22:31 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrEIsWRWlGSWpSXmKPExsVyMfSak+61+T3
 hBgcXylj8WZzowOhx+MMVlgDGKNbMvKT8igTWjMsXZ7AVXLesuL5hF0sDY7NhFyMXh5DAbEaJ
 vs0X2boYOTlYBO6zSLy4pAiSkBD4zSKx8OUzVpCEhECOxJH9E9gg7CKJZbcnM4HYvAKCEidnP
 mEBsYUEfCS+f5sHZrMJaEts721hhhiqKvGz6R0zRH2AxPYbRxhBbGGBIInZWxrB4iICWhITtm
 wFm8ks4C1xbs4kZgjbS2Jd51PGCYx8s5Csm4UkNYuRA8hWl1g/TwgirC2xbOFrZghbTeL2tqv
 syOILGNlWMaoXpxaVpRbpmuolFWWmZ5TkJmbm6BoaGOvlphYXJ6an5iQmFesl5+duYgSGbD0D
 A+MOxstfnQ4xSnIwKYnyNin0hAvxJeWnVGYkFmfEF5XmpBYfYpTh4FCS4M2fB5QTLEpNT61Iy
 8wBRg9MWoKDR0mEt3ouUJq3uCAxtzgzHSJ1itGYY8vva2uZOLZNvbeWSYglLz8vVUqctxxkkg
 BIaUZpHtwgWFRfYpSVEuZlZGBgEOIpSC3KzSxBlX/FKM7BqCTMWwYyhSczrwRu3yugU5iATjF
 Q7QY5pSQRISXVwDipuflb1O17S8r33qgKjLscKfp/m9yuQ7Mn+xQ1rTVdFqj2tf+K+cb2101V
 T9eltsblNh0pL1ef5nlrPmdcRefp6fP2pRuse5BusTzAhsHMVPfSplj5Z3vtp1rMWmI0saPMk
 DVUf6uIZXg3yyLWpJlsG54Exzq8rFXKbS7a1n6af/7PKIUfukosxRmJhlrMRcWJAGRmMKnlAg
 AA
X-Env-Sender: eytanh@gmail.com
X-Msg-Ref: server-13.tower-31.messagelabs.com!1468833749!50484339!1
X-Originating-IP: [209.85.214.66]
X-SpamReason: No, hits=1.2 required=7.0 tests=HTML_20_30,HTML_MESSAGE,
 RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 46557 invoked from network); 18 Jul 2016 09:22:30 -0000
Received: from mail-it0-f66.google.com (HELO mail-it0-f66.google.com)
 (209.85.214.66)
 by server-13.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 18 Jul 2016 09:22:30 -0000
Received: by mail-it0-f66.google.com with SMTP id u186so5591641ita.1
 for <win-pv-devel@lists.xenproject.org>; Mon, 18 Jul 2016 02:22:30 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=mime-version:from:date:message-id:subject:to:cc;
 bh=0RxIY0Etfu7R7c/BnAGhrJRlVs46za/U3fI/u9+Ik0k=;
 b=jQlFJw5p4O9n2v+VzGf2qy2FUlVLBEGF8fpIr0l3qwoHSQPYo4h6wV56KGn/zQjvtc
 oXvX9Sd2W2WkkIqio3+g/I1Nr4QFxQNjFhcN/y7vCxHbtx2NXR65Mhag4D3bOwDr1hzN
 on6tipLOo6U7tzU8xIHBQyeUJPpu/rtxJeDLF0uu6YshsK6DcAgDXjG7v/zZvicSIQvT
 TBNTIbFDMRB68fe73tA6e2A1B/k7GfNGkjHeAH4rsH9WEuWNY3Gi4+99/G7VBe9UoPac
 Y42CNEQq40F+Sx9DjqsKiVNOWy2btitSfUyVSORXGkaH3F9qL7qHDaEoJGwYLm/pS4Fe
 y9xg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc;
 bh=0RxIY0Etfu7R7c/BnAGhrJRlVs46za/U3fI/u9+Ik0k=;
 b=Q7ngv9m3Mur9X6sckAkZyF3R2E8dM6iRbNT86B8nt1j6bmIU7EQRpYMgtiM2mHPeiS
 eR7L6KPMm3lc9hsyP20v0NDFOQ/1z9iL0KgmokNf2K4Fadvil1eaCF82UATL7l2EXggk
 FfEdi+CQbWr09WsPOkMC7ICullj1gRfRSv3N4Li/ZhjG9KJx9QHVbCUJHFTwjAE+SOrp
 tm4K01o31hC2h4f9ExiDaY5wcHYluZimT92xPG0kA7BxpNwgGIlGU6VbT3o3dqVtYU8Q
 HO+gdoJ+x6xPCw2chHBz5Gdh2XVxsVDMdK+959JwtLrIZbHvRtdBAS5g7Qo/cIqioLlO
 QCng==
X-Gm-Message-State: ALyK8tIhtNkOcX1faEkbcMIgtdEJfI8OROIyYTzjI3sUDhn5Yq6Sxfa3u3j+HUEVo8aIv3pdAS9CzpFCbTYybQ==
X-Received: by 10.36.154.65 with SMTP id l62mr32084062ite.79.1468833748906;
 Mon, 18 Jul 2016 02:22:28 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.107.153.130 with HTTP; Mon, 18 Jul 2016 02:22:28 -0700 (PDT)
From: Eytan Heidingsfeld <eytanh@gmail.com>
Date: Mon, 18 Jul 2016 12:22:28 +0300
Message-ID: <CAGjCcQOTj4u3xv1fsGXjxVbOOi+d_L+J0uVMR6qUQ6Eiphq-gQ@mail.gmail.com>
To: Paul Durrant <Paul.Durrant@citrix.com>
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] [XENVIF] Patch for Unexpected Initial States of
	XenVif
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============8442380589322888910=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============8442380589322888910==
Content-Type: multipart/alternative; boundary=94eb2c114852d685cf0537e581c6

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

Trying to get the format right, but if not it's ok with a "suggested-by".

Re-introducing the logic from commit
c9b6e56e7342a1bb31cfb79f28b6a00d05954006, to handle a backend that is
already connected (for cases where Windows is booted via iSCSI)

Signed-off-by: Eytan Heidingsfeld <eytanh@gmail.com>

diff --git a/src/xenvif/frontend.c b/src/xenvif/frontend.c
index 5a29736..aef6680 100644
--- a/src/xenvif/frontend.c
+++ b/src/xenvif/frontend.c
@@ -1521,6 +1521,11 @@ FrontendPrepare(
             FrontendSetXenbusState(Frontend,
                                    XenbusStateInitialising);
             break;
+
+ case XenbusStateConnected:
+ FrontendSetXenbusState(Frontend,
+ XenbusStateClosing);
+ break;

         case XenbusStateClosing:
             FrontendSetXenbusState(Frontend,

On Mon, Jul 18, 2016 at 11:44 AM, Paul Durrant <Paul.Durrant@citrix.com>
wrote:
>
> Sorry, I realised I had not responded to this. This does indeed look like
a hole in the logic in the master branch. I will add your patch but since
you did not add your S-o-b to the patch I can only credit you with a
=E2=80=98suggested-by=E2=80=99. If you can post a patch in the correct form=
 (see
http://wiki.xenproject.org/wiki/Submitting_Xen_Project_Patches for
guidance) then I can give you full credit.
>
>
>
>   Cheers,
>
>
>
>   Paul
>
>
>
> From: win-pv-devel [mailto:win-pv-devel-bounces@lists.xenproject.org] On
Behalf Of Eytan Heidingsfeld
> Sent: 11 July 2016 15:06
> To: win-pv-devel@lists.xenproject.org
> Subject: [win-pv-devel] Patch for Unexpected Initial States of XenVif
>
>
>
> Hello,
> I've noticed that the support for unexpected initial states that was
added to support iscsi boot in commit:
c9b6e56e7342a1bb31cfb79f28b6a00d05954006,
>
>
>
> As there was quite a bit of refactoring around that area I've created a
small patch that fixes the issue again,
>
>
>
> diff --git a/src/xenvif/frontend.c b/src/xenvif/frontend.c
>
> index 5a29736..aef6680 100644
>
> --- a/src/xenvif/frontend.c
>
> +++ b/src/xenvif/frontend.c
>
> @@ -1521,6 +1521,11 @@ FrontendPrepare(
>
>              FrontendSetXenbusState(Frontend,
>
>                                     XenbusStateInitialising);
>
>              break;
>
> +
>
> +                    case XenbusStateConnected:
>
> +                                FrontendSetXenbusState(Frontend,
>
> +                                            XenbusStateClosing);
>
> +                                break;
>
>
>
>          case XenbusStateClosing:
>
>              FrontendSetXenbusState(Frontend,
>
> --
>
> 1.9.5.msysgit.0
>
>
>
> Cheers,
>
> Eytan

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

<div dir=3D"ltr">Trying to get the format right, but if not it&#39;s ok wit=
h a &quot;suggested-by&quot;.<br><br><div>Re-introducing the logic from com=
mit c9b6e56e7342a1bb31cfb79f28b6a00d05954006, to handle a backend that is a=
lready connected (for cases where Windows is booted via iSCSI)</div><div><b=
r></div>Signed-off-by: Eytan Heidingsfeld &lt;<a href=3D"mailto:eytanh@gmai=
l.com">eytanh@gmail.com</a>&gt;<div><font color=3D"#888888" face=3D"monospa=
ce"><br></font><div>diff --git a/src/xenvif/frontend.c b/src/xenvif/fronten=
d.c<br>index 5a29736..aef6680 100644<br>--- a/src/xenvif/frontend.c<br>+++ =
b/src/xenvif/frontend.c<br>@@ -1521,6 +1521,11 @@ FrontendPrepare(<br>=C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0FrontendSetXenbusState(Fronten=
d,<br>=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 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 XenbusStateInitial=
ising);<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>+<br>+=
 case XenbusStateConnected:<br>+ FrontendSetXenbusState(Frontend,<br>+ Xenb=
usStateClosing);<br>+ break;<br>=C2=A0<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0case XenbusStateClosing:<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0FrontendSetXenbusState(Frontend,<br><br>On Mon, Jul 18, 2016 at 11:44=
 AM, Paul Durrant &lt;<a href=3D"mailto:Paul.Durrant@citrix.com">Paul.Durra=
nt@citrix.com</a>&gt; wrote:<br>&gt;<br>&gt; Sorry, I realised I had not re=
sponded to this. This does indeed look like a hole in the logic in the mast=
er branch. I will add your patch but since you did not add your S-o-b to th=
e patch I can only credit you with a =E2=80=98suggested-by=E2=80=99. If you=
 can post a patch in the correct form (see <a href=3D"http://wiki.xenprojec=
t.org/wiki/Submitting_Xen_Project_Patches">http://wiki.xenproject.org/wiki/=
Submitting_Xen_Project_Patches</a> for guidance) then I can give you full c=
redit.<br>&gt;<br>&gt; =C2=A0<br>&gt;<br>&gt; =C2=A0 Cheers,<br>&gt;<br>&gt=
; =C2=A0<br>&gt;<br>&gt; =C2=A0 Paul<br>&gt;<br>&gt; =C2=A0<br>&gt;<br>&gt;=
 From: win-pv-devel [mailto:<a href=3D"mailto:win-pv-devel-bounces@lists.xe=
nproject.org">win-pv-devel-bounces@lists.xenproject.org</a>] On Behalf Of E=
ytan Heidingsfeld<br>&gt; Sent: 11 July 2016 15:06<br>&gt; To: <a href=3D"m=
ailto:win-pv-devel@lists.xenproject.org">win-pv-devel@lists.xenproject.org<=
/a><br>&gt; Subject: [win-pv-devel] Patch for Unexpected Initial States of =
XenVif<br>&gt;<br>&gt; =C2=A0<br>&gt;<br>&gt; Hello,<br>&gt; I&#39;ve notic=
ed that the support for unexpected initial states that was added to support=
 iscsi boot in commit: c9b6e56e7342a1bb31cfb79f28b6a00d05954006,<br>&gt;<br=
>&gt; =C2=A0<br>&gt;<br>&gt; As there was quite a bit of refactoring around=
 that area I&#39;ve created a small patch that fixes the issue again,<br>&g=
t;<br>&gt; =C2=A0<br>&gt;<br>&gt; diff --git a/src/xenvif/frontend.c b/src/=
xenvif/frontend.c<br>&gt;<br>&gt; index 5a29736..aef6680 100644<br>&gt;<br>=
&gt; --- a/src/xenvif/frontend.c<br>&gt;<br>&gt; +++ b/src/xenvif/frontend.=
c<br>&gt;<br>&gt; @@ -1521,6 +1521,11 @@ FrontendPrepare(<br>&gt;<br>&gt; =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0FrontendSetXenbusState(Fron=
tend,<br>&gt;<br>&gt; =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 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 X=
enbusStateInitialising);<br>&gt;<br>&gt; =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0break;<br>&gt;<br>&gt; + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 <br>&gt;<br>&gt; + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0case XenbusStateConnected:<br>&gt;=
<br>&gt; + =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 =C2=A0 =C2=A0 =C2=A0FrontendSetXenbusState(Fron=
tend,<br>&gt;<br>&gt; + =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 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0XenbusStateClosing);<br>&gt;<br>&gt; + =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 =C2=A0 =C2=A0 =C2=A0break;<br>&gt;<br>&gt; =C2=A0<br>&gt;<br>=
&gt; =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0case XenbusStateClosing:<br>&gt;<br>=
&gt; =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0FrontendSetXenbusState=
(Frontend,<br>&gt;<br>&gt; -- <br>&gt;<br>&gt; 1.9.5.msysgit.0<br>&gt;<br>&=
gt; =C2=A0<br>&gt;<br>&gt; Cheers,<br>&gt;<br>&gt; Eytan</div></div></div>

--94eb2c114852d685cf0537e581c6--


--===============8442380589322888910==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============8442380589322888910==--


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 18 09:22:34 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 18 Jul 2016 09:22:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bP4l0-0004oS-55; Mon, 18 Jul 2016 09:22:34 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <eytanh@gmail.com>) id 1bP4ky-0004oK-9g
 for win-pv-devel@lists.xenproject.org; Mon, 18 Jul 2016 09:22:32 +0000
Received: from [85.158.137.68] by server-17.bemta-3.messagelabs.com id
 39/B8-21227-7DF9C875; Mon, 18 Jul 2016 09:22:31 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrEIsWRWlGSWpSXmKPExsVyMfSak+61+T3
 hBgcXylj8WZzowOhx+MMVlgDGKNbMvKT8igTWjMsXZ7AVXLesuL5hF0sDY7NhFyMXh5DAbEaJ
 vs0X2boYOTlYBO6zSLy4pAiSkBD4zSKx8OUzVpCEhECOxJH9E9gg7CKJZbcnM4HYvAKCEidnP
 mEBsYUEfCS+f5sHZrMJaEts721hhhiqKvGz6R0zRH2AxPYbRxhBbGGBIInZWxrB4iICWhITtm
 wFm8ks4C1xbs4kZgjbS2Jd51PGCYx8s5Csm4UkNYuRA8hWl1g/TwgirC2xbOFrZghbTeL2tqv
 syOILGNlWMaoXpxaVpRbpmuolFWWmZ5TkJmbm6BoaGOvlphYXJ6an5iQmFesl5+duYgSGbD0D
 A+MOxstfnQ4xSnIwKYnyNin0hAvxJeWnVGYkFmfEF5XmpBYfYpTh4FCS4M2fB5QTLEpNT61Iy
 8wBRg9MWoKDR0mEt3ouUJq3uCAxtzgzHSJ1itGYY8vva2uZOLZNvbeWSYglLz8vVUqctxxkkg
 BIaUZpHtwgWFRfYpSVEuZlZGBgEOIpSC3KzSxBlX/FKM7BqCTMWwYyhSczrwRu3yugU5iATjF
 Q7QY5pSQRISXVwDipuflb1O17S8r33qgKjLscKfp/m9yuQ7Mn+xQ1rTVdFqj2tf+K+cb2101V
 T9eltsblNh0pL1ef5nlrPmdcRefp6fP2pRuse5BusTzAhsHMVPfSplj5Z3vtp1rMWmI0saPMk
 DVUf6uIZXg3yyLWpJlsG54Exzq8rFXKbS7a1n6af/7PKIUfukosxRmJhlrMRcWJAGRmMKnlAg
 AA
X-Env-Sender: eytanh@gmail.com
X-Msg-Ref: server-13.tower-31.messagelabs.com!1468833749!50484339!1
X-Originating-IP: [209.85.214.66]
X-SpamReason: No, hits=1.2 required=7.0 tests=HTML_20_30,HTML_MESSAGE,
 RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 46557 invoked from network); 18 Jul 2016 09:22:30 -0000
Received: from mail-it0-f66.google.com (HELO mail-it0-f66.google.com)
 (209.85.214.66)
 by server-13.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 18 Jul 2016 09:22:30 -0000
Received: by mail-it0-f66.google.com with SMTP id u186so5591641ita.1
 for <win-pv-devel@lists.xenproject.org>; Mon, 18 Jul 2016 02:22:30 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=mime-version:from:date:message-id:subject:to:cc;
 bh=0RxIY0Etfu7R7c/BnAGhrJRlVs46za/U3fI/u9+Ik0k=;
 b=jQlFJw5p4O9n2v+VzGf2qy2FUlVLBEGF8fpIr0l3qwoHSQPYo4h6wV56KGn/zQjvtc
 oXvX9Sd2W2WkkIqio3+g/I1Nr4QFxQNjFhcN/y7vCxHbtx2NXR65Mhag4D3bOwDr1hzN
 on6tipLOo6U7tzU8xIHBQyeUJPpu/rtxJeDLF0uu6YshsK6DcAgDXjG7v/zZvicSIQvT
 TBNTIbFDMRB68fe73tA6e2A1B/k7GfNGkjHeAH4rsH9WEuWNY3Gi4+99/G7VBe9UoPac
 Y42CNEQq40F+Sx9DjqsKiVNOWy2btitSfUyVSORXGkaH3F9qL7qHDaEoJGwYLm/pS4Fe
 y9xg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc;
 bh=0RxIY0Etfu7R7c/BnAGhrJRlVs46za/U3fI/u9+Ik0k=;
 b=Q7ngv9m3Mur9X6sckAkZyF3R2E8dM6iRbNT86B8nt1j6bmIU7EQRpYMgtiM2mHPeiS
 eR7L6KPMm3lc9hsyP20v0NDFOQ/1z9iL0KgmokNf2K4Fadvil1eaCF82UATL7l2EXggk
 FfEdi+CQbWr09WsPOkMC7ICullj1gRfRSv3N4Li/ZhjG9KJx9QHVbCUJHFTwjAE+SOrp
 tm4K01o31hC2h4f9ExiDaY5wcHYluZimT92xPG0kA7BxpNwgGIlGU6VbT3o3dqVtYU8Q
 HO+gdoJ+x6xPCw2chHBz5Gdh2XVxsVDMdK+959JwtLrIZbHvRtdBAS5g7Qo/cIqioLlO
 QCng==
X-Gm-Message-State: ALyK8tIhtNkOcX1faEkbcMIgtdEJfI8OROIyYTzjI3sUDhn5Yq6Sxfa3u3j+HUEVo8aIv3pdAS9CzpFCbTYybQ==
X-Received: by 10.36.154.65 with SMTP id l62mr32084062ite.79.1468833748906;
 Mon, 18 Jul 2016 02:22:28 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.107.153.130 with HTTP; Mon, 18 Jul 2016 02:22:28 -0700 (PDT)
From: Eytan Heidingsfeld <eytanh@gmail.com>
Date: Mon, 18 Jul 2016 12:22:28 +0300
Message-ID: <CAGjCcQOTj4u3xv1fsGXjxVbOOi+d_L+J0uVMR6qUQ6Eiphq-gQ@mail.gmail.com>
To: Paul Durrant <Paul.Durrant@citrix.com>
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] [XENVIF] Patch for Unexpected Initial States of
	XenVif
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============8442380589322888910=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============8442380589322888910==
Content-Type: multipart/alternative; boundary=94eb2c114852d685cf0537e581c6

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

Trying to get the format right, but if not it's ok with a "suggested-by".

Re-introducing the logic from commit
c9b6e56e7342a1bb31cfb79f28b6a00d05954006, to handle a backend that is
already connected (for cases where Windows is booted via iSCSI)

Signed-off-by: Eytan Heidingsfeld <eytanh@gmail.com>

diff --git a/src/xenvif/frontend.c b/src/xenvif/frontend.c
index 5a29736..aef6680 100644
--- a/src/xenvif/frontend.c
+++ b/src/xenvif/frontend.c
@@ -1521,6 +1521,11 @@ FrontendPrepare(
             FrontendSetXenbusState(Frontend,
                                    XenbusStateInitialising);
             break;
+
+ case XenbusStateConnected:
+ FrontendSetXenbusState(Frontend,
+ XenbusStateClosing);
+ break;

         case XenbusStateClosing:
             FrontendSetXenbusState(Frontend,

On Mon, Jul 18, 2016 at 11:44 AM, Paul Durrant <Paul.Durrant@citrix.com>
wrote:
>
> Sorry, I realised I had not responded to this. This does indeed look like
a hole in the logic in the master branch. I will add your patch but since
you did not add your S-o-b to the patch I can only credit you with a
=E2=80=98suggested-by=E2=80=99. If you can post a patch in the correct form=
 (see
http://wiki.xenproject.org/wiki/Submitting_Xen_Project_Patches for
guidance) then I can give you full credit.
>
>
>
>   Cheers,
>
>
>
>   Paul
>
>
>
> From: win-pv-devel [mailto:win-pv-devel-bounces@lists.xenproject.org] On
Behalf Of Eytan Heidingsfeld
> Sent: 11 July 2016 15:06
> To: win-pv-devel@lists.xenproject.org
> Subject: [win-pv-devel] Patch for Unexpected Initial States of XenVif
>
>
>
> Hello,
> I've noticed that the support for unexpected initial states that was
added to support iscsi boot in commit:
c9b6e56e7342a1bb31cfb79f28b6a00d05954006,
>
>
>
> As there was quite a bit of refactoring around that area I've created a
small patch that fixes the issue again,
>
>
>
> diff --git a/src/xenvif/frontend.c b/src/xenvif/frontend.c
>
> index 5a29736..aef6680 100644
>
> --- a/src/xenvif/frontend.c
>
> +++ b/src/xenvif/frontend.c
>
> @@ -1521,6 +1521,11 @@ FrontendPrepare(
>
>              FrontendSetXenbusState(Frontend,
>
>                                     XenbusStateInitialising);
>
>              break;
>
> +
>
> +                    case XenbusStateConnected:
>
> +                                FrontendSetXenbusState(Frontend,
>
> +                                            XenbusStateClosing);
>
> +                                break;
>
>
>
>          case XenbusStateClosing:
>
>              FrontendSetXenbusState(Frontend,
>
> --
>
> 1.9.5.msysgit.0
>
>
>
> Cheers,
>
> Eytan

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

<div dir=3D"ltr">Trying to get the format right, but if not it&#39;s ok wit=
h a &quot;suggested-by&quot;.<br><br><div>Re-introducing the logic from com=
mit c9b6e56e7342a1bb31cfb79f28b6a00d05954006, to handle a backend that is a=
lready connected (for cases where Windows is booted via iSCSI)</div><div><b=
r></div>Signed-off-by: Eytan Heidingsfeld &lt;<a href=3D"mailto:eytanh@gmai=
l.com">eytanh@gmail.com</a>&gt;<div><font color=3D"#888888" face=3D"monospa=
ce"><br></font><div>diff --git a/src/xenvif/frontend.c b/src/xenvif/fronten=
d.c<br>index 5a29736..aef6680 100644<br>--- a/src/xenvif/frontend.c<br>+++ =
b/src/xenvif/frontend.c<br>@@ -1521,6 +1521,11 @@ FrontendPrepare(<br>=C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0FrontendSetXenbusState(Fronten=
d,<br>=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 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 XenbusStateInitial=
ising);<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>+<br>+=
 case XenbusStateConnected:<br>+ FrontendSetXenbusState(Frontend,<br>+ Xenb=
usStateClosing);<br>+ break;<br>=C2=A0<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0case XenbusStateClosing:<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0FrontendSetXenbusState(Frontend,<br><br>On Mon, Jul 18, 2016 at 11:44=
 AM, Paul Durrant &lt;<a href=3D"mailto:Paul.Durrant@citrix.com">Paul.Durra=
nt@citrix.com</a>&gt; wrote:<br>&gt;<br>&gt; Sorry, I realised I had not re=
sponded to this. This does indeed look like a hole in the logic in the mast=
er branch. I will add your patch but since you did not add your S-o-b to th=
e patch I can only credit you with a =E2=80=98suggested-by=E2=80=99. If you=
 can post a patch in the correct form (see <a href=3D"http://wiki.xenprojec=
t.org/wiki/Submitting_Xen_Project_Patches">http://wiki.xenproject.org/wiki/=
Submitting_Xen_Project_Patches</a> for guidance) then I can give you full c=
redit.<br>&gt;<br>&gt; =C2=A0<br>&gt;<br>&gt; =C2=A0 Cheers,<br>&gt;<br>&gt=
; =C2=A0<br>&gt;<br>&gt; =C2=A0 Paul<br>&gt;<br>&gt; =C2=A0<br>&gt;<br>&gt;=
 From: win-pv-devel [mailto:<a href=3D"mailto:win-pv-devel-bounces@lists.xe=
nproject.org">win-pv-devel-bounces@lists.xenproject.org</a>] On Behalf Of E=
ytan Heidingsfeld<br>&gt; Sent: 11 July 2016 15:06<br>&gt; To: <a href=3D"m=
ailto:win-pv-devel@lists.xenproject.org">win-pv-devel@lists.xenproject.org<=
/a><br>&gt; Subject: [win-pv-devel] Patch for Unexpected Initial States of =
XenVif<br>&gt;<br>&gt; =C2=A0<br>&gt;<br>&gt; Hello,<br>&gt; I&#39;ve notic=
ed that the support for unexpected initial states that was added to support=
 iscsi boot in commit: c9b6e56e7342a1bb31cfb79f28b6a00d05954006,<br>&gt;<br=
>&gt; =C2=A0<br>&gt;<br>&gt; As there was quite a bit of refactoring around=
 that area I&#39;ve created a small patch that fixes the issue again,<br>&g=
t;<br>&gt; =C2=A0<br>&gt;<br>&gt; diff --git a/src/xenvif/frontend.c b/src/=
xenvif/frontend.c<br>&gt;<br>&gt; index 5a29736..aef6680 100644<br>&gt;<br>=
&gt; --- a/src/xenvif/frontend.c<br>&gt;<br>&gt; +++ b/src/xenvif/frontend.=
c<br>&gt;<br>&gt; @@ -1521,6 +1521,11 @@ FrontendPrepare(<br>&gt;<br>&gt; =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0FrontendSetXenbusState(Fron=
tend,<br>&gt;<br>&gt; =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 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 X=
enbusStateInitialising);<br>&gt;<br>&gt; =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0break;<br>&gt;<br>&gt; + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 <br>&gt;<br>&gt; + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0case XenbusStateConnected:<br>&gt;=
<br>&gt; + =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 =C2=A0 =C2=A0 =C2=A0FrontendSetXenbusState(Fron=
tend,<br>&gt;<br>&gt; + =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 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0XenbusStateClosing);<br>&gt;<br>&gt; + =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 =C2=A0 =C2=A0 =C2=A0break;<br>&gt;<br>&gt; =C2=A0<br>&gt;<br>=
&gt; =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0case XenbusStateClosing:<br>&gt;<br>=
&gt; =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0FrontendSetXenbusState=
(Frontend,<br>&gt;<br>&gt; -- <br>&gt;<br>&gt; 1.9.5.msysgit.0<br>&gt;<br>&=
gt; =C2=A0<br>&gt;<br>&gt; Cheers,<br>&gt;<br>&gt; Eytan</div></div></div>

--94eb2c114852d685cf0537e581c6--


--===============8442380589322888910==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============8442380589322888910==--


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 18 09:31:04 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 18 Jul 2016 09:31:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bP4tE-0005bG-Bb; Mon, 18 Jul 2016 09:31:04 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=0001784ad=Paul.Durrant@citrix.com>)
 id 1bP4tC-0005ay-Nx
 for win-pv-devel@lists.xenproject.org; Mon, 18 Jul 2016 09:31:03 +0000
Received: from [85.158.143.35] by server-3.bemta-6.messagelabs.com id
 F1/43-05661-6D1AC875; Mon, 18 Jul 2016 09:31:02 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprEKsWRWlGSWpSXmKPExsWyU9JRQvfqwp5
 wg+bTXBZ/Fic6MHoc/nCFJYAxijUzLym/IoE148K2D8wF7aeYKq5evcfWwHj1KFMXIyeHhECQ
 xMtfZ9hAbDYBHYmlR+eDxUUENCVaN19gBrGZBbwlrp48yAhiCwsES5xq+QpkcwDVhEhsnQxlG
 kl8/h4BUsEioCrRMX0bK4jNK+AucX71NLCJQgIBEtdPfAKbwikQKHH5wUcwm1FAVuJL42qoTe
 ISt57Mh7pMQGLJnvPMELaoxMvH/1ghbAOJrUv3sUDU50rMmfWTCWKXoMTJmU9YIHapSGx5fAC
 ql1ti5ec/LBMYRWYhWTELSfssJO2zgL5hBnp+/S59iBJFiSndD9khbA2J1jlz2ZHFFzCyr2JU
 L04tKkst0jXUSyrKTM8oyU3MzNE1NDDTy00tLk5MT81JTCrWS87P3cQIjCsGINjBuPO50yFGS
 Q4mJVFeqwU94UJ8SfkplRmJxRnxRaU5qcWHGGU4OJQkeCNBcoJFqempFWmZOcAIh0lLcPAoif
 DemA+U5i0uSMwtzkyHSJ1iVJQS59UH6RMASWSU5sG1wZLKJUZZKWFeRqBDhHgKUotyM0tQ5V8
 xinMwKgnzLgKZwpOZVwI3/RXQYiagxQaq3SCLSxIRUlINjC7y/SKe0rnxq+rV9xyJ3FxUs1Ti
 91qdr0vniAZePHG55vqJgFOcs79HTFRm+FDK6cphsnTH46adyxTkjx5o5dA/1fGpMX1eXquGc
 5RezDvTb58Ebd3ZL1VL2t7rD9R7qxsx50dK12++OCmTF72n961p97v53UXzvc+S9lC9O2vk7+
 hGh7TOUmIpzkg01GIuKk4EAAp7R2MlAwAA
X-Env-Sender: prvs=0001784ad=Paul.Durrant@citrix.com
X-Msg-Ref: server-14.tower-21.messagelabs.com!1468834260!24324296!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.6 required=7.0 tests=HTML_90_100,HTML_MESSAGE,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 31314 invoked from network); 18 Jul 2016 09:31:01 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-14.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 18 Jul 2016 09:31:01 -0000
X-IronPort-AV: E=Sophos;i="5.28,383,1464652800"; d="scan'208,217";a="26501354"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Eytan Heidingsfeld <eytanh@gmail.com>
Thread-Topic: [win-pv-devel] [XENVIF] Patch for Unexpected Initial States of
 XenVif
Thread-Index: AQHR4NXqRXfwfph5rUyLH04v431TeKAd7Clg
Date: Mon, 18 Jul 2016 09:30:59 +0000
Message-ID: <14514c8b36cb4eb6a3c4586a808009b6@AMSPEX02CL03.citrite.net>
References: <CAGjCcQOTj4u3xv1fsGXjxVbOOi+d_L+J0uVMR6qUQ6Eiphq-gQ@mail.gmail.com>
In-Reply-To: <CAGjCcQOTj4u3xv1fsGXjxVbOOi+d_L+J0uVMR6qUQ6Eiphq-gQ@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] [XENVIF] Patch for Unexpected Initial States of
 XenVif
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============5186171835501316014=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============5186171835501316014==
Content-Language: en-US
Content-Type: multipart/alternative;
	boundary="_000_14514c8b36cb4eb6a3c4586a808009b6AMSPEX02CL03citritenet_"

--_000_14514c8b36cb4eb6a3c4586a808009b6AMSPEX02CL03citritenet_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SeKAmWxsIHJlLXdvcmQgdGhlIGNvbW1pdCBtZXNzYWdlIGEgYml0IHNvIHdlIGdldCBhIG5pY2Ug
dGl0bGUgaW4gdGhlIHNob3J0bG9nLCBidXQgdGhlIFMtby1iIHdhcyB3aGF0IEkgbmVlZGVkIHNv
IEnigJlsbCBjb21taXQgdGhpcyB0b2RheSBob3BlZnVsbHkuIFRoYW5rcyENCg0KICBQYXVsDQoN
CkZyb206IEV5dGFuIEhlaWRpbmdzZmVsZCBbbWFpbHRvOmV5dGFuaEBnbWFpbC5jb21dDQpTZW50
OiAxOCBKdWx5IDIwMTYgMTA6MjINClRvOiBQYXVsIER1cnJhbnQNCkNjOiB3aW4tcHYtZGV2ZWxA
bGlzdHMueGVucHJvamVjdC5vcmcNClN1YmplY3Q6IFJlOiBbd2luLXB2LWRldmVsXSBbWEVOVklG
XSBQYXRjaCBmb3IgVW5leHBlY3RlZCBJbml0aWFsIFN0YXRlcyBvZiBYZW5WaWYNCg0KVHJ5aW5n
IHRvIGdldCB0aGUgZm9ybWF0IHJpZ2h0LCBidXQgaWYgbm90IGl0J3Mgb2sgd2l0aCBhICJzdWdn
ZXN0ZWQtYnkiLg0KUmUtaW50cm9kdWNpbmcgdGhlIGxvZ2ljIGZyb20gY29tbWl0IGM5YjZlNTZl
NzM0MmExYmIzMWNmYjc5ZjI4YjZhMDBkMDU5NTQwMDYsIHRvIGhhbmRsZSBhIGJhY2tlbmQgdGhh
dCBpcyBhbHJlYWR5IGNvbm5lY3RlZCAoZm9yIGNhc2VzIHdoZXJlIFdpbmRvd3MgaXMgYm9vdGVk
IHZpYSBpU0NTSSkNCg0KU2lnbmVkLW9mZi1ieTogRXl0YW4gSGVpZGluZ3NmZWxkIDxleXRhbmhA
Z21haWwuY29tPG1haWx0bzpleXRhbmhAZ21haWwuY29tPj4NCg0KZGlmZiAtLWdpdCBhL3NyYy94
ZW52aWYvZnJvbnRlbmQuYyBiL3NyYy94ZW52aWYvZnJvbnRlbmQuYw0KaW5kZXggNWEyOTczNi4u
YWVmNjY4MCAxMDA2NDQNCi0tLSBhL3NyYy94ZW52aWYvZnJvbnRlbmQuYw0KKysrIGIvc3JjL3hl
bnZpZi9mcm9udGVuZC5jDQpAQCAtMTUyMSw2ICsxNTIxLDExIEBAIEZyb250ZW5kUHJlcGFyZSgN
CiAgICAgICAgICAgICBGcm9udGVuZFNldFhlbmJ1c1N0YXRlKEZyb250ZW5kLA0KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcpOw0KICAg
ICAgICAgICAgIGJyZWFrOw0KKw0KKyBjYXNlIFhlbmJ1c1N0YXRlQ29ubmVjdGVkOg0KKyBGcm9u
dGVuZFNldFhlbmJ1c1N0YXRlKEZyb250ZW5kLA0KKyBYZW5idXNTdGF0ZUNsb3NpbmcpOw0KKyBi
cmVhazsNCg0KICAgICAgICAgY2FzZSBYZW5idXNTdGF0ZUNsb3Npbmc6DQogICAgICAgICAgICAg
RnJvbnRlbmRTZXRYZW5idXNTdGF0ZShGcm9udGVuZCwNCg0KT24gTW9uLCBKdWwgMTgsIDIwMTYg
YXQgMTE6NDQgQU0sIFBhdWwgRHVycmFudCA8UGF1bC5EdXJyYW50QGNpdHJpeC5jb208bWFpbHRv
OlBhdWwuRHVycmFudEBjaXRyaXguY29tPj4gd3JvdGU6DQo+DQo+IFNvcnJ5LCBJIHJlYWxpc2Vk
IEkgaGFkIG5vdCByZXNwb25kZWQgdG8gdGhpcy4gVGhpcyBkb2VzIGluZGVlZCBsb29rIGxpa2Ug
YSBob2xlIGluIHRoZSBsb2dpYyBpbiB0aGUgbWFzdGVyIGJyYW5jaC4gSSB3aWxsIGFkZCB5b3Vy
IHBhdGNoIGJ1dCBzaW5jZSB5b3UgZGlkIG5vdCBhZGQgeW91ciBTLW8tYiB0byB0aGUgcGF0Y2gg
SSBjYW4gb25seSBjcmVkaXQgeW91IHdpdGggYSDigJhzdWdnZXN0ZWQtYnnigJkuIElmIHlvdSBj
YW4gcG9zdCBhIHBhdGNoIGluIHRoZSBjb3JyZWN0IGZvcm0gKHNlZSBodHRwOi8vd2lraS54ZW5w
cm9qZWN0Lm9yZy93aWtpL1N1Ym1pdHRpbmdfWGVuX1Byb2plY3RfUGF0Y2hlcyBmb3IgZ3VpZGFu
Y2UpIHRoZW4gSSBjYW4gZ2l2ZSB5b3UgZnVsbCBjcmVkaXQuDQo+DQo+DQo+DQo+ICAgQ2hlZXJz
LA0KPg0KPg0KPg0KPiAgIFBhdWwNCj4NCj4NCj4NCj4gRnJvbTogd2luLXB2LWRldmVsIFttYWls
dG86d2luLXB2LWRldmVsLWJvdW5jZXNAbGlzdHMueGVucHJvamVjdC5vcmc8bWFpbHRvOndpbi1w
di1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnPl0gT24gQmVoYWxmIE9mIEV5dGFu
IEhlaWRpbmdzZmVsZA0KPiBTZW50OiAxMSBKdWx5IDIwMTYgMTU6MDYNCj4gVG86IHdpbi1wdi1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZzxtYWlsdG86d2luLXB2LWRldmVsQGxpc3RzLnhlbnBy
b2plY3Qub3JnPg0KPiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBQYXRjaCBmb3IgVW5leHBlY3Rl
ZCBJbml0aWFsIFN0YXRlcyBvZiBYZW5WaWYNCj4NCj4NCj4NCj4gSGVsbG8sDQo+IEkndmUgbm90
aWNlZCB0aGF0IHRoZSBzdXBwb3J0IGZvciB1bmV4cGVjdGVkIGluaXRpYWwgc3RhdGVzIHRoYXQg
d2FzIGFkZGVkIHRvIHN1cHBvcnQgaXNjc2kgYm9vdCBpbiBjb21taXQ6IGM5YjZlNTZlNzM0MmEx
YmIzMWNmYjc5ZjI4YjZhMDBkMDU5NTQwMDYsDQo+DQo+DQo+DQo+IEFzIHRoZXJlIHdhcyBxdWl0
ZSBhIGJpdCBvZiByZWZhY3RvcmluZyBhcm91bmQgdGhhdCBhcmVhIEkndmUgY3JlYXRlZCBhIHNt
YWxsIHBhdGNoIHRoYXQgZml4ZXMgdGhlIGlzc3VlIGFnYWluLA0KPg0KPg0KPg0KPiBkaWZmIC0t
Z2l0IGEvc3JjL3hlbnZpZi9mcm9udGVuZC5jIGIvc3JjL3hlbnZpZi9mcm9udGVuZC5jDQo+DQo+
IGluZGV4IDVhMjk3MzYuLmFlZjY2ODAgMTAwNjQ0DQo+DQo+IC0tLSBhL3NyYy94ZW52aWYvZnJv
bnRlbmQuYw0KPg0KPiArKysgYi9zcmMveGVudmlmL2Zyb250ZW5kLmMNCj4NCj4gQEAgLTE1MjEs
NiArMTUyMSwxMSBAQCBGcm9udGVuZFByZXBhcmUoDQo+DQo+ICAgICAgICAgICAgICBGcm9udGVu
ZFNldFhlbmJ1c1N0YXRlKEZyb250ZW5kLA0KPg0KPiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBYZW5idXNTdGF0ZUluaXRpYWxpc2luZyk7DQo+DQo+ICAgICAgICAgICAgICBi
cmVhazsNCj4NCj4gKw0KPg0KPiArICAgICAgICAgICAgICAgICAgICBjYXNlIFhlbmJ1c1N0YXRl
Q29ubmVjdGVkOg0KPg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcm9udGVu
ZFNldFhlbmJ1c1N0YXRlKEZyb250ZW5kLA0KPg0KPiArICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBYZW5idXNTdGF0ZUNsb3NpbmcpOw0KPg0KPiArICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCj4NCj4NCj4NCj4gICAgICAgICAgY2FzZSBY
ZW5idXNTdGF0ZUNsb3Npbmc6DQo+DQo+ICAgICAgICAgICAgICBGcm9udGVuZFNldFhlbmJ1c1N0
YXRlKEZyb250ZW5kLA0KPg0KPiAtLQ0KPg0KPiAxLjkuNS5tc3lzZ2l0LjANCj4NCj4NCj4NCj4g
Q2hlZXJzLA0KPg0KPiBFeXRhbg0K

--_000_14514c8b36cb4eb6a3c4586a808009b6AMSPEX02CL03citritenet_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IlByb2dJZCIg
Y29udGVudD0iV29yZC5Eb2N1bWVudCI+DQo8bWV0YSBuYW1lPSJHZW5lcmF0b3IiIGNvbnRlbnQ9
Ik1pY3Jvc29mdCBXb3JkIDE0Ij4NCjxtZXRhIG5hbWU9Ik9yaWdpbmF0b3IiIGNvbnRlbnQ9Ik1p
Y3Jvc29mdCBXb3JkIDE0Ij4NCjxsaW5rIHJlbD0iRmlsZS1MaXN0IiBocmVmPSJjaWQ6ZmlsZWxp
c3QueG1sQDAxRDFFMERGLjc5QTU5QTgwIj48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOk9m
ZmljZURvY3VtZW50U2V0dGluZ3M+DQo8bzpBbGxvd1BORy8+DQo8bzpEb05vdFJlbHlPbkNTUy8+
DQo8L286T2ZmaWNlRG9jdW1lbnRTZXR0aW5ncz4NCjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYg
Z3RlIG1zbyA5XT48eG1sPg0KPHc6V29yZERvY3VtZW50Pg0KPHc6U3BlbGxpbmdTdGF0ZT5DbGVh
bjwvdzpTcGVsbGluZ1N0YXRlPg0KPHc6VHJhY2tNb3Zlcy8+DQo8dzpUcmFja0Zvcm1hdHRpbmcv
Pg0KPHc6RW52ZWxvcGVWaXMvPg0KPHc6VmFsaWRhdGVBZ2FpbnN0U2NoZW1hcy8+DQo8dzpTYXZl
SWZYTUxJbnZhbGlkPmZhbHNlPC93OlNhdmVJZlhNTEludmFsaWQ+DQo8dzpJZ25vcmVNaXhlZENv
bnRlbnQ+ZmFsc2U8L3c6SWdub3JlTWl4ZWRDb250ZW50Pg0KPHc6QWx3YXlzU2hvd1BsYWNlaG9s
ZGVyVGV4dD5mYWxzZTwvdzpBbHdheXNTaG93UGxhY2Vob2xkZXJUZXh0Pg0KPHc6RG9Ob3RQcm9t
b3RlUUYvPg0KPHc6TGlkVGhlbWVPdGhlcj5FTi1HQjwvdzpMaWRUaGVtZU90aGVyPg0KPHc6TGlk
VGhlbWVBc2lhbj5YLU5PTkU8L3c6TGlkVGhlbWVBc2lhbj4NCjx3OkxpZFRoZW1lQ29tcGxleFNj
cmlwdD5YLU5PTkU8L3c6TGlkVGhlbWVDb21wbGV4U2NyaXB0Pg0KPHc6Q29tcGF0aWJpbGl0eT4N
Cjx3OkRvTm90RXhwYW5kU2hpZnRSZXR1cm4vPg0KPHc6QnJlYWtXcmFwcGVkVGFibGVzLz4NCjx3
OlNwbGl0UGdCcmVha0FuZFBhcmFNYXJrLz4NCjx3OkVuYWJsZU9wZW5UeXBlS2VybmluZy8+DQo8
L3c6Q29tcGF0aWJpbGl0eT4NCjxtOm1hdGhQcj4NCjxtOm1hdGhGb250IG06dmFsPSJDYW1icmlh
IE1hdGgiLz4NCjxtOmJya0JpbiBtOnZhbD0iYmVmb3JlIi8+DQo8bTpicmtCaW5TdWIgbTp2YWw9
IiYjNDU7LSIvPg0KPG06c21hbGxGcmFjIG06dmFsPSJvZmYiLz4NCjxtOmRpc3BEZWYvPg0KPG06
bE1hcmdpbiBtOnZhbD0iMCIvPg0KPG06ck1hcmdpbiBtOnZhbD0iMCIvPg0KPG06ZGVmSmMgbTp2
YWw9ImNlbnRlckdyb3VwIi8+DQo8bTp3cmFwSW5kZW50IG06dmFsPSIxNDQwIi8+DQo8bTppbnRM
aW0gbTp2YWw9InN1YlN1cCIvPg0KPG06bmFyeUxpbSBtOnZhbD0idW5kT3ZyIi8+DQo8L206bWF0
aFByPjwvdzpXb3JkRG9jdW1lbnQ+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28g
OV0+PHhtbD4NCjx3OkxhdGVudFN0eWxlcyBEZWZMb2NrZWRTdGF0ZT0iZmFsc2UiIERlZlVuaGlk
ZVdoZW5Vc2VkPSJ0cnVlIiBEZWZTZW1pSGlkZGVuPSJ0cnVlIiBEZWZRRm9ybWF0PSJmYWxzZSIg
RGVmUHJpb3JpdHk9Ijk5IiBMYXRlbnRTdHlsZUNvdW50PSIyNjciPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJOb3JtYWwiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyAxIi8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFFGb3JtYXQ9InRydWUiIE5h
bWU9ImhlYWRpbmcgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyA0
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFFGb3JtYXQ9
InRydWUiIE5hbWU9ImhlYWRpbmcgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDYiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0i
aGVhZGluZyA3Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9Ijki
IFFGb3JtYXQ9InRydWUiIE5hbWU9ImhlYWRpbmcgOCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDkiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzkiIE5hbWU9InRvYyAx
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjM5IiBOYW1lPSJ0
b2MgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzOSIgTmFt
ZT0idG9jIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzki
IE5hbWU9InRvYyA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjM5IiBOYW1lPSJ0b2MgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9y
aXR5PSIzOSIgTmFtZT0idG9jIDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iMzkiIE5hbWU9InRvYyA3Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjM5IiBOYW1lPSJ0b2MgOCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSIzOSIgTmFtZT0idG9jIDkiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzUiIFFGb3JtYXQ9InRydWUiIE5hbWU9ImNhcHRpb24iLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMTAiIFNlbWlIaWRkZW49
ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9IlRpdGxl
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjEiIE5hbWU9IkRl
ZmF1bHQgUGFyYWdyYXBoIEZvbnQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iMTEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFG
b3JtYXQ9InRydWUiIE5hbWU9IlN1YnRpdGxlIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjIyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZh
bHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJTdHJvbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iMjAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNl
ZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9IkVtcGhhc2lzIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjU5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJUYWJsZSBHcmlkIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9j
a2VkPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJQbGFjZWhvbGRlciBUZXh0
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjEiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9Ik5v
IFNwYWNpbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjAi
IFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IFNo
YWRpbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjEiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IExpc3Qi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjIiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IEdyaWQiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjMiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDEiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDEiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDIiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjciIFNlbWlIaWRkZW49ImZhbHNlIiBV
bmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDEiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjgiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhp
ZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDIiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjkiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVX
aGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9IkRhcmsgTGlzdCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI3MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iQ29sb3JmdWwgU2hhZGluZyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iQ29sb3JmdWwgTGlzdCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI2MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIg
TmFtZT0iTGlnaHQgU2hhZGluZyBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI2MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iTGlnaHQgTGlzdCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI2MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgTmFtZT0iTGlnaHQgR3JpZCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMSBBY2NlbnQgMSIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVu
aGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMiBBY2NlbnQgMSIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NSIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3QgMSBBY2NlbnQg
MSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iUmV2aXNpb24iLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iMzQiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3Jt
YXQ9InRydWUiIE5hbWU9Ikxpc3QgUGFyYWdyYXBoIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjI5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJRdW90ZSIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzMCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iSW50ZW5zZSBRdW90ZSIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NiIgU2VtaUhpZGRlbj0iZmFsc2Ui
IFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3QgMiBBY2NlbnQgMSIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NyIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMSBBY2NlbnQg
MSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OCIgU2VtaUhp
ZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMiBB
Y2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OSIg
U2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdy
aWQgMyBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI3MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iRGFy
ayBMaXN0IEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjcxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJD
b2xvcmZ1bCBTaGFkaW5nIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjcyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNl
IiBOYW1lPSJDb2xvcmZ1bCBMaXN0IEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjczIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBHcmlkIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBTaGFkaW5nIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5o
aWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBMaXN0IEFjY2VudCAyIi8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYyIiBTZW1pSGlkZGVuPSJmYWxzZSIg
VW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBHcmlkIEFjY2VudCAyIi8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYzIiBTZW1pSGlkZGVuPSJmYWxz
ZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAxIEFjY2VudCAy
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY0IiBTZW1pSGlk
ZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAy
IEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY1
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0g
TGlzdCAxIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjY2IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJN
ZWRpdW0gTGlzdCAyIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjY3IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBO
YW1lPSJNZWRpdW0gR3JpZCAxIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjY4IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZh
bHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAyIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9j
a2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVz
ZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAzIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJEYXJrIExpc3QgQWNjZW50IDIiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhp
ZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIFNoYWRpbmcgQWNjZW50IDIiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzIiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIExpc3QgQWNjZW50IDIi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzMiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIEdyaWQgQWNj
ZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjAiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IFNoYWRp
bmcgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NjEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0
IExpc3QgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNjIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ikxp
Z2h0IEdyaWQgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNjMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9
Ik1lZGl1bSBTaGFkaW5nIDEgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFs
c2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDEgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhp
ZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDIgQWNjZW50IDMiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjciIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDEgQWNjZW50IDMiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjgiIFNlbWlIaWRkZW49
ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDIgQWNjZW50
IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjkiIFNlbWlI
aWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDMg
QWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzAi
IFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkRhcmsgTGlz
dCBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3
MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3Jm
dWwgU2hhZGluZyBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFBy
aW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFt
ZT0iQ29sb3JmdWwgTGlzdCBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI2MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgTmFtZT0iTGlnaHQgU2hhZGluZyBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdo
ZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQgTGlzdCBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQgR3JpZCBBY2NlbnQgNCIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVu
aGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMSBBY2NlbnQgNCIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NCIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMiBBY2Nl
bnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NSIgU2Vt
aUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3Qg
MSBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2
NiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVt
IExpc3QgMiBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9y
aXR5PSI2NyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0i
TWVkaXVtIEdyaWQgMSBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI2OCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIg
TmFtZT0iTWVkaXVtIEdyaWQgMiBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI2OSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMyBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgTmFtZT0iRGFyayBMaXN0IEFjY2VudCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBTaGFkaW5nIEFjY2VudCA0Ii8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcyIiBTZW1pSGlkZGVuPSJmYWxzZSIg
VW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBMaXN0IEFjY2VudCA0Ii8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjczIiBTZW1pSGlkZGVuPSJm
YWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBHcmlkIEFjY2VudCA0
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYwIiBTZW1pSGlk
ZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBTaGFkaW5nIEFj
Y2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYxIiBT
ZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBMaXN0
IEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYy
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBH
cmlkIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjYzIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRp
dW0gU2hhZGluZyAxIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjY0IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBO
YW1lPSJNZWRpdW0gU2hhZGluZyAyIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjY1IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAxIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY2IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAyIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY3IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5o
aWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAxIEFjY2VudCA1Ii8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY4IiBTZW1pSGlkZGVuPSJmYWxz
ZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAyIEFjY2VudCA1Ii8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY5IiBTZW1pSGlkZGVu
PSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAzIEFjY2Vu
dCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcwIiBTZW1p
SGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJEYXJrIExpc3QgQWNj
ZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzEiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIFNo
YWRpbmcgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNzIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNv
bG9yZnVsIExpc3QgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iNzMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5h
bWU9IkNvbG9yZnVsIEdyaWQgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNjAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFs
c2UiIE5hbWU9IkxpZ2h0IFNoYWRpbmcgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNl
ZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IExpc3QgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IEdyaWQgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVX
aGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDEgQWNjZW50IDYiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIgQWNjZW50IDYi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDEgQWNj
ZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0
IDIgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NjciIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1
bSBHcmlkIDEgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNjgiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9
Ik1lZGl1bSBHcmlkIDIgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBQcmlvcml0eT0iNjkiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2Ui
IE5hbWU9Ik1lZGl1bSBHcmlkIDMgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9
ImZhbHNlIiBQcmlvcml0eT0iNzAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0i
ZmFsc2UiIE5hbWU9IkRhcmsgTGlzdCBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI3MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgU2hhZGluZyBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgTGlzdCBBY2NlbnQgNiIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRlbj0iZmFsc2Ui
IFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCBBY2NlbnQgNiIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIxOSIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iU3VidGxl
IEVtcGhhc2lzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjIx
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVl
IiBOYW1lPSJJbnRlbnNlIEVtcGhhc2lzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjMxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNl
IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJTdWJ0bGUgUmVmZXJlbmNlIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjMyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJJbnRlbnNlIFJlZmVyZW5jZSIv
Pg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzMyIgU2VtaUhpZGRl
bj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iQm9v
ayBUaXRsZSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzNyIg
TmFtZT0iQmlibGlvZ3JhcGh5Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJp
b3JpdHk9IjM5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJUT0MgSGVhZGluZyIvPg0KPC93OkxhdGVu
dFN0eWxlcz4NCjwveG1sPjwhW2VuZGlmXS0tPjxzdHlsZT48IS0tDQovKiBGb250IERlZmluaXRp
b25zICovDQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAx
NSA1IDIgMiAyIDQgMyAyIDQ7DQoJbXNvLWZvbnQtY2hhcnNldDowOw0KCW1zby1nZW5lcmljLWZv
bnQtZmFtaWx5OnN3aXNzOw0KCW1zby1mb250LXBpdGNoOnZhcmlhYmxlOw0KCW1zby1mb250LXNp
Z25hdHVyZTotNTM2ODcwMTQ1IDEwNzM3ODYxMTEgMSAwIDQxNSAwO30NCkBmb250LWZhY2UNCgl7
Zm9udC1mYW1pbHk6VGFob21hOw0KCXBhbm9zZS0xOjIgMTEgNiA0IDMgNSA0IDQgMiA0Ow0KCW1z
by1mb250LWNoYXJzZXQ6MDsNCgltc28tZ2VuZXJpYy1mb250LWZhbWlseTpzd2lzczsNCgltc28t
Zm9udC1waXRjaDp2YXJpYWJsZTsNCgltc28tZm9udC1zaWduYXR1cmU6LTUyMDA4MTY2NSAtMTA3
MzcxNzE1NyA0MSAwIDY2MDQ3IDA7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9y
bWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwNCgl7bXNvLXN0eWxlLXVuaGlkZTpubzsN
Cgltc28tc3R5bGUtcWZvcm1hdDp5ZXM7DQoJbXNvLXN0eWxlLXBhcmVudDoiIjsNCgltYXJnaW46
MGNtOw0KCW1hcmdpbi1ib3R0b206LjAwMDFwdDsNCgltc28tcGFnaW5hdGlvbjp3aWRvdy1vcnBo
YW47DQoJZm9udC1zaXplOjEyLjBwdDsNCglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIiwi
c2VyaWYiOw0KCW1zby1mYXJlYXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7fQ0KYTpsaW5rLCBzcGFu
Lk1zb0h5cGVybGluaw0KCXttc28tc3R5bGUtbm9zaG93OnllczsNCgltc28tc3R5bGUtcHJpb3Jp
dHk6OTk7DQoJY29sb3I6Ymx1ZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOw0KCXRleHQt
dW5kZXJsaW5lOnNpbmdsZTt9DQphOnZpc2l0ZWQsIHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQN
Cgl7bXNvLXN0eWxlLW5vc2hvdzp5ZXM7DQoJbXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9y
OnB1cnBsZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOw0KCXRleHQtdW5kZXJsaW5lOnNp
bmdsZTt9DQpzcGFuLkVtYWlsU3R5bGUxNw0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbC1yZXBs
eTsNCgltc28tc3R5bGUtbm9zaG93OnllczsNCgltc28tc3R5bGUtdW5oaWRlOm5vOw0KCW1zby1h
bnNpLWZvbnQtc2l6ZToxMS4wcHQ7DQoJbXNvLWJpZGktZm9udC1zaXplOjExLjBwdDsNCglmb250
LWZhbWlseToiQ2FsaWJyaSIsInNhbnMtc2VyaWYiOw0KCW1zby1hc2NpaS1mb250LWZhbWlseTpD
YWxpYnJpOw0KCW1zby1mYXJlYXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7DQoJbXNvLWhhbnNpLWZv
bnQtZmFtaWx5OkNhbGlicmk7DQoJbXNvLWJpZGktZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21h
biI7DQoJY29sb3I6IzFGNDk3RDt9DQpzcGFuLlNwZWxsRQ0KCXttc28tc3R5bGUtbmFtZToiIjsN
Cgltc28tc3BsLWU6eWVzO30NCi5Nc29DaHBEZWZhdWx0DQoJe21zby1zdHlsZS10eXBlOmV4cG9y
dC1vbmx5Ow0KCW1zby1kZWZhdWx0LXByb3BzOnllczsNCglmb250LWZhbWlseToiQ2FsaWJyaSIs
InNhbnMtc2VyaWYiOw0KCW1zby1hc2NpaS1mb250LWZhbWlseTpDYWxpYnJpOw0KCW1zby1mYXJl
YXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7DQoJbXNvLWhhbnNpLWZvbnQtZmFtaWx5OkNhbGlicmk7
DQoJbXNvLWJpZGktZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiI7DQoJbXNvLWZhcmVhc3Qt
bGFuZ3VhZ2U6RU4tVVM7fQ0KQHBhZ2UgV29yZFNlY3Rpb24xDQoJe3NpemU6NjEyLjBwdCA3OTIu
MHB0Ow0KCW1hcmdpbjo3Mi4wcHQgNzIuMHB0IDcyLjBwdCA3Mi4wcHQ7DQoJbXNvLWhlYWRlci1t
YXJnaW46MzYuMHB0Ow0KCW1zby1mb290ZXItbWFyZ2luOjM2LjBwdDsNCgltc28tcGFwZXItc291
cmNlOjA7fQ0KZGl2LldvcmRTZWN0aW9uMQ0KCXtwYWdlOldvcmRTZWN0aW9uMTt9DQotLT48L3N0
eWxlPjwhLS1baWYgZ3RlIG1zbyAxMF0+PHN0eWxlPi8qIFN0eWxlIERlZmluaXRpb25zICovDQp0
YWJsZS5Nc29Ob3JtYWxUYWJsZQ0KCXttc28tc3R5bGUtbmFtZToiVGFibGUgTm9ybWFsIjsNCglt
c28tdHN0eWxlLXJvd2JhbmQtc2l6ZTowOw0KCW1zby10c3R5bGUtY29sYmFuZC1zaXplOjA7DQoJ
bXNvLXN0eWxlLW5vc2hvdzp5ZXM7DQoJbXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCW1zby1zdHls
ZS1wYXJlbnQ6IiI7DQoJbXNvLXBhZGRpbmctYWx0OjBjbSA1LjRwdCAwY20gNS40cHQ7DQoJbXNv
LXBhcmEtbWFyZ2luOjBjbTsNCgltc28tcGFyYS1tYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJbXNv
LXBhZ2luYXRpb246d2lkb3ctb3JwaGFuOw0KCWZvbnQtc2l6ZToxMS4wcHQ7DQoJZm9udC1mYW1p
bHk6IkNhbGlicmkiLCJzYW5zLXNlcmlmIjsNCgltc28tYXNjaWktZm9udC1mYW1pbHk6Q2FsaWJy
aTsNCgltc28taGFuc2ktZm9udC1mYW1pbHk6Q2FsaWJyaTsNCgltc28tZmFyZWFzdC1sYW5ndWFn
ZTpFTi1VUzt9DQo8L3N0eWxlPjwhW2VuZGlmXS0tPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0K
PG86c2hhcGVkZWZhdWx0cyB2OmV4dD0iZWRpdCIgc3BpZG1heD0iMTAyNiIgLz4NCjwveG1sPjwh
W2VuZGlmXS0tPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0KPG86c2hhcGVsYXlvdXQgdjpleHQ9
ImVkaXQiPg0KPG86aWRtYXAgdjpleHQ9ImVkaXQiIGRhdGE9IjEiIC8+DQo8L286c2hhcGVsYXlv
dXQ+PC94bWw+PCFbZW5kaWZdLS0+DQo8L2hlYWQ+DQo8Ym9keSBsYW5nPSJFTi1HQiIgbGluaz0i
Ymx1ZSIgdmxpbms9InB1cnBsZSIgc3R5bGU9InRhYi1pbnRlcnZhbDozNi4wcHQiPg0KPGRpdiBj
bGFzcz0iV29yZFNlY3Rpb24xIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIi
IGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVv
dDs7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9y
OiMxRjQ5N0QiPknigJlsbCByZS13b3JkIHRoZSBjb21taXQgbWVzc2FnZSBhIGJpdCBzbyB3ZSBn
ZXQgYSBuaWNlIHRpdGxlIGluIHRoZQ0KPHNwYW4gY2xhc3M9IlNwZWxsRSI+c2hvcnRsb2c8L3Nw
YW4+LCBidXQgdGhlIFMtby1iIHdhcyB3aGF0IEkgbmVlZGVkIHNvIEnigJlsbCBjb21taXQgdGhp
cyB0b2RheSBob3BlZnVsbHkuIFRoYW5rcyE8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9
IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tYmlkaS1mb250LWZhbWls
eTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8
L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9
IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYm
cXVvdDs7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2Nv
bG9yOiMxRjQ5N0QiPjxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46eWVzIj4mbmJzcDsNCjwvc3Bh
bj5QYXVsPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
Pjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90
O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJv
bWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9udD48
L3A+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCBibHVlIDEuNXB0
O3BhZGRpbmc6MGNtIDBjbSAwY20gNC4wcHQiPg0KPGRpdj4NCjxkaXYgc3R5bGU9ImJvcmRlcjpu
b25lO2JvcmRlci10b3A6c29saWQgI0I1QzRERiAxLjBwdDtwYWRkaW5nOjMuMHB0IDBjbSAwY20g
MGNtIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPjxmb250IHNpemU9IjIiIGZhY2U9IlRhaG9t
YSI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O1RhaG9tYSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1mYXJlYXN0LWZv
bnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90Ozttc28tYW5zaS1sYW5ndWFnZTpF
Ti1VUztmb250LXdlaWdodDpib2xkIj5Gcm9tOjwvc3Bhbj48L2ZvbnQ+PC9iPjxmb250IHNpemU9
IjIiIGZhY2U9IlRhaG9tYSI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTAu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O1RhaG9tYSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7
O21zby1mYXJlYXN0LWZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90Ozttc28t
YW5zaS1sYW5ndWFnZTpFTi1VUyI+DQogRXl0YW4gSGVpZGluZ3NmZWxkIFttYWlsdG86ZXl0YW5o
QGdtYWlsLmNvbV0gPGJyPg0KPGI+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPlNlbnQ6
PC9zcGFuPjwvYj4gMTggSnVseSAyMDE2IDEwOjIyPGJyPg0KPGI+PHNwYW4gc3R5bGU9ImZvbnQt
d2VpZ2h0OmJvbGQiPlRvOjwvc3Bhbj48L2I+IFBhdWwgRHVycmFudDxicj4NCjxiPjxzcGFuIHN0
eWxlPSJmb250LXdlaWdodDpib2xkIj5DYzo8L3NwYW4+PC9iPiB3aW4tcHYtZGV2ZWxAbGlzdHMu
eGVucHJvamVjdC5vcmc8YnI+DQo8Yj48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+U3Vi
amVjdDo8L3NwYW4+PC9iPiBSZTogW3dpbi1wdi1kZXZlbF0gW1hFTlZJRl0gUGF0Y2ggZm9yIFVu
ZXhwZWN0ZWQgSW5pdGlhbCBTdGF0ZXMgb2YgWGVuVmlmPG86cD48L286cD48L3NwYW4+PC9mb250
PjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIz
IiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij48
bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiIHN0eWxlPSJtYXJnaW4tYm90dG9tOjEyLjBwdCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0i
VGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+VHJ5aW5nIHRv
IGdldCB0aGUgZm9ybWF0IHJpZ2h0LCBidXQgaWYgbm90IGl0J3Mgb2sgd2l0aCBhICZxdW90O3N1
Z2dlc3RlZC1ieSZxdW90Oy48bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPlJlLWludHJvZHVjaW5nIHRoZSBsb2dpYyBm
cm9tIGNvbW1pdCBjOWI2ZTU2ZTczNDJhMWJiMzFjZmI3OWYyOGI2YTAwZDA1OTU0MDA2LCB0byBo
YW5kbGUgYSBiYWNrZW5kIHRoYXQgaXMgYWxyZWFkeSBjb25uZWN0ZWQgKGZvciBjYXNlcyB3aGVy
ZSBXaW5kb3dzIGlzIGJvb3RlZCB2aWEgaVNDU0kpPG86cD48L286cD48L3NwYW4+PC9mb250Pjwv
cD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZh
Y2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjxvOnA+
Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMi4wcHQiPlNpZ25lZC1vZmYtYnk6IEV5dGFuIEhlaWRpbmdzZmVsZCAmbHQ7PGEg
aHJlZj0ibWFpbHRvOmV5dGFuaEBnbWFpbC5jb20iPmV5dGFuaEBnbWFpbC5jb208L2E+Jmd0Ozxv
OnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjEyLjBwdCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4i
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5kaWZmIC0tZ2l0IGEvc3JjL3hlbnZpZi9m
cm9udGVuZC5jIGIvc3JjL3hlbnZpZi9mcm9udGVuZC5jPGJyPg0KaW5kZXggNWEyOTczNi4uYWVm
NjY4MCAxMDA2NDQ8YnI+DQotLS0gYS9zcmMveGVudmlmL2Zyb250ZW5kLmM8YnI+DQomIzQzOyYj
NDM7JiM0MzsgYi9zcmMveGVudmlmL2Zyb250ZW5kLmM8YnI+DQpAQCAtMTUyMSw2ICYjNDM7MTUy
MSwxMSBAQCBGcm9udGVuZFByZXBhcmUoPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7RnJvbnRlbmRTZXRYZW5idXNTdGF0ZShGcm9udGVuZCw8YnI+
DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyBYZW5idXNTdGF0ZUluaXRpYWxpc2luZyk7PGJyPg0KJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7YnJlYWs7PGJyPg0KJiM0Mzs8YnI+
DQomIzQzOyBjYXNlIFhlbmJ1c1N0YXRlQ29ubmVjdGVkOjxicj4NCiYjNDM7IEZyb250ZW5kU2V0
WGVuYnVzU3RhdGUoRnJvbnRlbmQsPGJyPg0KJiM0MzsgWGVuYnVzU3RhdGVDbG9zaW5nKTs8YnI+
DQomIzQzOyBicmVhazs8YnI+DQombmJzcDs8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7Y2FzZSBYZW5idXNTdGF0ZUNsb3Npbmc6PGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7RnJvbnRlbmRTZXRYZW5idXNTdGF0ZShGcm9u
dGVuZCw8YnI+DQo8YnI+DQpPbiBNb24sIEp1bCAxOCwgMjAxNiBhdCAxMTo0NCBBTSwgUGF1bCBE
dXJyYW50ICZsdDs8YSBocmVmPSJtYWlsdG86UGF1bC5EdXJyYW50QGNpdHJpeC5jb20iPlBhdWwu
RHVycmFudEBjaXRyaXguY29tPC9hPiZndDsgd3JvdGU6PGJyPg0KJmd0Ozxicj4NCiZndDsgU29y
cnksIEkgcmVhbGlzZWQgSSBoYWQgbm90IHJlc3BvbmRlZCB0byB0aGlzLiBUaGlzIGRvZXMgaW5k
ZWVkIGxvb2sgbGlrZSBhIGhvbGUgaW4gdGhlIGxvZ2ljIGluIHRoZSBtYXN0ZXIgYnJhbmNoLiBJ
IHdpbGwgYWRkIHlvdXIgcGF0Y2ggYnV0IHNpbmNlIHlvdSBkaWQgbm90IGFkZCB5b3VyIFMtby1i
IHRvIHRoZSBwYXRjaCBJIGNhbiBvbmx5IGNyZWRpdCB5b3Ugd2l0aCBhIOKAmHN1Z2dlc3RlZC1i
eeKAmS4gSWYgeW91IGNhbiBwb3N0IGEgcGF0Y2gNCiBpbiB0aGUgY29ycmVjdCBmb3JtIChzZWUg
PGEgaHJlZj0iaHR0cDovL3dpa2kueGVucHJvamVjdC5vcmcvd2lraS9TdWJtaXR0aW5nX1hlbl9Q
cm9qZWN0X1BhdGNoZXMiPg0KaHR0cDovL3dpa2kueGVucHJvamVjdC5vcmcvd2lraS9TdWJtaXR0
aW5nX1hlbl9Qcm9qZWN0X1BhdGNoZXM8L2E+IGZvciBndWlkYW5jZSkgdGhlbiBJIGNhbiBnaXZl
IHlvdSBmdWxsIGNyZWRpdC48YnI+DQomZ3Q7PGJyPg0KJmd0OyAmbmJzcDs8YnI+DQomZ3Q7PGJy
Pg0KJmd0OyAmbmJzcDsgQ2hlZXJzLDxicj4NCiZndDs8YnI+DQomZ3Q7ICZuYnNwOzxicj4NCiZn
dDs8YnI+DQomZ3Q7ICZuYnNwOyBQYXVsPGJyPg0KJmd0Ozxicj4NCiZndDsgJm5ic3A7PGJyPg0K
Jmd0Ozxicj4NCiZndDsgRnJvbTogd2luLXB2LWRldmVsIFttYWlsdG86PGEgaHJlZj0ibWFpbHRv
Ondpbi1wdi1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnIj53aW4tcHYtZGV2ZWwt
Ym91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZzwvYT5dIE9uIEJlaGFsZiBPZiBFeXRhbiBIZWlk
aW5nc2ZlbGQ8YnI+DQomZ3Q7IFNlbnQ6IDExIEp1bHkgMjAxNiAxNTowNjxicj4NCiZndDsgVG86
IDxhIGhyZWY9Im1haWx0bzp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmciPndpbi1w
di1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZzwvYT48YnI+DQomZ3Q7IFN1YmplY3Q6IFt3aW4t
cHYtZGV2ZWxdIFBhdGNoIGZvciBVbmV4cGVjdGVkIEluaXRpYWwgU3RhdGVzIG9mIFhlblZpZjxi
cj4NCiZndDs8YnI+DQomZ3Q7ICZuYnNwOzxicj4NCiZndDs8YnI+DQomZ3Q7IEhlbGxvLDxicj4N
CiZndDsgSSd2ZSBub3RpY2VkIHRoYXQgdGhlIHN1cHBvcnQgZm9yIHVuZXhwZWN0ZWQgaW5pdGlh
bCBzdGF0ZXMgdGhhdCB3YXMgYWRkZWQgdG8gc3VwcG9ydCBpc2NzaSBib290IGluIGNvbW1pdDog
YzliNmU1NmU3MzQyYTFiYjMxY2ZiNzlmMjhiNmEwMGQwNTk1NDAwNiw8YnI+DQomZ3Q7PGJyPg0K
Jmd0OyAmbmJzcDs8YnI+DQomZ3Q7PGJyPg0KJmd0OyBBcyB0aGVyZSB3YXMgcXVpdGUgYSBiaXQg
b2YgcmVmYWN0b3JpbmcgYXJvdW5kIHRoYXQgYXJlYSBJJ3ZlIGNyZWF0ZWQgYSBzbWFsbCBwYXRj
aCB0aGF0IGZpeGVzIHRoZSBpc3N1ZSBhZ2Fpbiw8YnI+DQomZ3Q7PGJyPg0KJmd0OyAmbmJzcDs8
YnI+DQomZ3Q7PGJyPg0KJmd0OyBkaWZmIC0tZ2l0IGEvc3JjL3hlbnZpZi9mcm9udGVuZC5jIGIv
c3JjL3hlbnZpZi9mcm9udGVuZC5jPGJyPg0KJmd0Ozxicj4NCiZndDsgaW5kZXggNWEyOTczNi4u
YWVmNjY4MCAxMDA2NDQ8YnI+DQomZ3Q7PGJyPg0KJmd0OyAtLS0gYS9zcmMveGVudmlmL2Zyb250
ZW5kLmM8YnI+DQomZ3Q7PGJyPg0KJmd0OyAmIzQzOyYjNDM7JiM0MzsgYi9zcmMveGVudmlmL2Zy
b250ZW5kLmM8YnI+DQomZ3Q7PGJyPg0KJmd0OyBAQCAtMTUyMSw2ICYjNDM7MTUyMSwxMSBAQCBG
cm9udGVuZFByZXBhcmUoPGJyPg0KJmd0Ozxicj4NCiZndDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7RnJvbnRlbmRTZXRYZW5idXNTdGF0ZShGcm9udGVu
ZCw8YnI+DQomZ3Q7PGJyPg0KJmd0OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBYZW5idXNTdGF0ZUluaXRpYWxpc2lu
Zyk7PGJyPg0KJmd0Ozxicj4NCiZndDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7YnJlYWs7PGJyPg0KJmd0Ozxicj4NCiZndDsgJiM0MzsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgPGJy
Pg0KJmd0Ozxicj4NCiZndDsgJiM0MzsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Y2FzZSBYZW5idXNTdGF0ZUNvbm5l
Y3RlZDo8YnI+DQomZ3Q7PGJyPg0KJmd0OyAmIzQzOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtGcm9udGVuZFNldFhlbmJ1c1N0YXRlKEZyb250
ZW5kLDxicj4NCiZndDs8YnI+DQomZ3Q7ICYjNDM7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwO1hlbmJ1c1N0YXRlQ2xvc2luZyk7PGJyPg0KJmd0Ozxicj4NCiZndDsgJiM0
MzsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
YnJlYWs7PGJyPg0KJmd0Ozxicj4NCiZndDsgJm5ic3A7PGJyPg0KJmd0Ozxicj4NCiZndDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2Nhc2UgWGVuYnVzU3RhdGVDbG9zaW5nOjxi
cj4NCiZndDs8YnI+DQomZ3Q7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwO0Zyb250ZW5kU2V0WGVuYnVzU3RhdGUoRnJvbnRlbmQsPGJyPg0KJmd0Ozxicj4N
CiZndDsgLS0gPGJyPg0KJmd0Ozxicj4NCiZndDsgMS45LjUubXN5c2dpdC4wPGJyPg0KJmd0Ozxi
cj4NCiZndDsgJm5ic3A7PGJyPg0KJmd0Ozxicj4NCiZndDsgQ2hlZXJzLDxicj4NCiZndDs8YnI+
DQomZ3Q7IEV5dGFuPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPC9kaXY+
DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2JvZHk+DQo8L2h0bWw+DQo=

--_000_14514c8b36cb4eb6a3c4586a808009b6AMSPEX02CL03citritenet_--


--===============5186171835501316014==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============5186171835501316014==--


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 18 09:31:04 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 18 Jul 2016 09:31:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bP4tE-0005bG-Bb; Mon, 18 Jul 2016 09:31:04 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=0001784ad=Paul.Durrant@citrix.com>)
 id 1bP4tC-0005ay-Nx
 for win-pv-devel@lists.xenproject.org; Mon, 18 Jul 2016 09:31:03 +0000
Received: from [85.158.143.35] by server-3.bemta-6.messagelabs.com id
 F1/43-05661-6D1AC875; Mon, 18 Jul 2016 09:31:02 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprEKsWRWlGSWpSXmKPExsWyU9JRQvfqwp5
 wg+bTXBZ/Fic6MHoc/nCFJYAxijUzLym/IoE148K2D8wF7aeYKq5evcfWwHj1KFMXIyeHhECQ
 xMtfZ9hAbDYBHYmlR+eDxUUENCVaN19gBrGZBbwlrp48yAhiCwsES5xq+QpkcwDVhEhsnQxlG
 kl8/h4BUsEioCrRMX0bK4jNK+AucX71NLCJQgIBEtdPfAKbwikQKHH5wUcwm1FAVuJL42qoTe
 ISt57Mh7pMQGLJnvPMELaoxMvH/1ghbAOJrUv3sUDU50rMmfWTCWKXoMTJmU9YIHapSGx5fAC
 ql1ti5ec/LBMYRWYhWTELSfssJO2zgL5hBnp+/S59iBJFiSndD9khbA2J1jlz2ZHFFzCyr2JU
 L04tKkst0jXUSyrKTM8oyU3MzNE1NDDTy00tLk5MT81JTCrWS87P3cQIjCsGINjBuPO50yFGS
 Q4mJVFeqwU94UJ8SfkplRmJxRnxRaU5qcWHGGU4OJQkeCNBcoJFqempFWmZOcAIh0lLcPAoif
 DemA+U5i0uSMwtzkyHSJ1iVJQS59UH6RMASWSU5sG1wZLKJUZZKWFeRqBDhHgKUotyM0tQ5V8
 xinMwKgnzLgKZwpOZVwI3/RXQYiagxQaq3SCLSxIRUlINjC7y/SKe0rnxq+rV9xyJ3FxUs1Ti
 91qdr0vniAZePHG55vqJgFOcs79HTFRm+FDK6cphsnTH46adyxTkjx5o5dA/1fGpMX1eXquGc
 5RezDvTb58Ebd3ZL1VL2t7rD9R7qxsx50dK12++OCmTF72n961p97v53UXzvc+S9lC9O2vk7+
 hGh7TOUmIpzkg01GIuKk4EAAp7R2MlAwAA
X-Env-Sender: prvs=0001784ad=Paul.Durrant@citrix.com
X-Msg-Ref: server-14.tower-21.messagelabs.com!1468834260!24324296!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.6 required=7.0 tests=HTML_90_100,HTML_MESSAGE,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 31314 invoked from network); 18 Jul 2016 09:31:01 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-14.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 18 Jul 2016 09:31:01 -0000
X-IronPort-AV: E=Sophos;i="5.28,383,1464652800"; d="scan'208,217";a="26501354"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Eytan Heidingsfeld <eytanh@gmail.com>
Thread-Topic: [win-pv-devel] [XENVIF] Patch for Unexpected Initial States of
 XenVif
Thread-Index: AQHR4NXqRXfwfph5rUyLH04v431TeKAd7Clg
Date: Mon, 18 Jul 2016 09:30:59 +0000
Message-ID: <14514c8b36cb4eb6a3c4586a808009b6@AMSPEX02CL03.citrite.net>
References: <CAGjCcQOTj4u3xv1fsGXjxVbOOi+d_L+J0uVMR6qUQ6Eiphq-gQ@mail.gmail.com>
In-Reply-To: <CAGjCcQOTj4u3xv1fsGXjxVbOOi+d_L+J0uVMR6qUQ6Eiphq-gQ@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] [XENVIF] Patch for Unexpected Initial States of
 XenVif
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============5186171835501316014=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============5186171835501316014==
Content-Language: en-US
Content-Type: multipart/alternative;
	boundary="_000_14514c8b36cb4eb6a3c4586a808009b6AMSPEX02CL03citritenet_"

--_000_14514c8b36cb4eb6a3c4586a808009b6AMSPEX02CL03citritenet_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SeKAmWxsIHJlLXdvcmQgdGhlIGNvbW1pdCBtZXNzYWdlIGEgYml0IHNvIHdlIGdldCBhIG5pY2Ug
dGl0bGUgaW4gdGhlIHNob3J0bG9nLCBidXQgdGhlIFMtby1iIHdhcyB3aGF0IEkgbmVlZGVkIHNv
IEnigJlsbCBjb21taXQgdGhpcyB0b2RheSBob3BlZnVsbHkuIFRoYW5rcyENCg0KICBQYXVsDQoN
CkZyb206IEV5dGFuIEhlaWRpbmdzZmVsZCBbbWFpbHRvOmV5dGFuaEBnbWFpbC5jb21dDQpTZW50
OiAxOCBKdWx5IDIwMTYgMTA6MjINClRvOiBQYXVsIER1cnJhbnQNCkNjOiB3aW4tcHYtZGV2ZWxA
bGlzdHMueGVucHJvamVjdC5vcmcNClN1YmplY3Q6IFJlOiBbd2luLXB2LWRldmVsXSBbWEVOVklG
XSBQYXRjaCBmb3IgVW5leHBlY3RlZCBJbml0aWFsIFN0YXRlcyBvZiBYZW5WaWYNCg0KVHJ5aW5n
IHRvIGdldCB0aGUgZm9ybWF0IHJpZ2h0LCBidXQgaWYgbm90IGl0J3Mgb2sgd2l0aCBhICJzdWdn
ZXN0ZWQtYnkiLg0KUmUtaW50cm9kdWNpbmcgdGhlIGxvZ2ljIGZyb20gY29tbWl0IGM5YjZlNTZl
NzM0MmExYmIzMWNmYjc5ZjI4YjZhMDBkMDU5NTQwMDYsIHRvIGhhbmRsZSBhIGJhY2tlbmQgdGhh
dCBpcyBhbHJlYWR5IGNvbm5lY3RlZCAoZm9yIGNhc2VzIHdoZXJlIFdpbmRvd3MgaXMgYm9vdGVk
IHZpYSBpU0NTSSkNCg0KU2lnbmVkLW9mZi1ieTogRXl0YW4gSGVpZGluZ3NmZWxkIDxleXRhbmhA
Z21haWwuY29tPG1haWx0bzpleXRhbmhAZ21haWwuY29tPj4NCg0KZGlmZiAtLWdpdCBhL3NyYy94
ZW52aWYvZnJvbnRlbmQuYyBiL3NyYy94ZW52aWYvZnJvbnRlbmQuYw0KaW5kZXggNWEyOTczNi4u
YWVmNjY4MCAxMDA2NDQNCi0tLSBhL3NyYy94ZW52aWYvZnJvbnRlbmQuYw0KKysrIGIvc3JjL3hl
bnZpZi9mcm9udGVuZC5jDQpAQCAtMTUyMSw2ICsxNTIxLDExIEBAIEZyb250ZW5kUHJlcGFyZSgN
CiAgICAgICAgICAgICBGcm9udGVuZFNldFhlbmJ1c1N0YXRlKEZyb250ZW5kLA0KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcpOw0KICAg
ICAgICAgICAgIGJyZWFrOw0KKw0KKyBjYXNlIFhlbmJ1c1N0YXRlQ29ubmVjdGVkOg0KKyBGcm9u
dGVuZFNldFhlbmJ1c1N0YXRlKEZyb250ZW5kLA0KKyBYZW5idXNTdGF0ZUNsb3NpbmcpOw0KKyBi
cmVhazsNCg0KICAgICAgICAgY2FzZSBYZW5idXNTdGF0ZUNsb3Npbmc6DQogICAgICAgICAgICAg
RnJvbnRlbmRTZXRYZW5idXNTdGF0ZShGcm9udGVuZCwNCg0KT24gTW9uLCBKdWwgMTgsIDIwMTYg
YXQgMTE6NDQgQU0sIFBhdWwgRHVycmFudCA8UGF1bC5EdXJyYW50QGNpdHJpeC5jb208bWFpbHRv
OlBhdWwuRHVycmFudEBjaXRyaXguY29tPj4gd3JvdGU6DQo+DQo+IFNvcnJ5LCBJIHJlYWxpc2Vk
IEkgaGFkIG5vdCByZXNwb25kZWQgdG8gdGhpcy4gVGhpcyBkb2VzIGluZGVlZCBsb29rIGxpa2Ug
YSBob2xlIGluIHRoZSBsb2dpYyBpbiB0aGUgbWFzdGVyIGJyYW5jaC4gSSB3aWxsIGFkZCB5b3Vy
IHBhdGNoIGJ1dCBzaW5jZSB5b3UgZGlkIG5vdCBhZGQgeW91ciBTLW8tYiB0byB0aGUgcGF0Y2gg
SSBjYW4gb25seSBjcmVkaXQgeW91IHdpdGggYSDigJhzdWdnZXN0ZWQtYnnigJkuIElmIHlvdSBj
YW4gcG9zdCBhIHBhdGNoIGluIHRoZSBjb3JyZWN0IGZvcm0gKHNlZSBodHRwOi8vd2lraS54ZW5w
cm9qZWN0Lm9yZy93aWtpL1N1Ym1pdHRpbmdfWGVuX1Byb2plY3RfUGF0Y2hlcyBmb3IgZ3VpZGFu
Y2UpIHRoZW4gSSBjYW4gZ2l2ZSB5b3UgZnVsbCBjcmVkaXQuDQo+DQo+DQo+DQo+ICAgQ2hlZXJz
LA0KPg0KPg0KPg0KPiAgIFBhdWwNCj4NCj4NCj4NCj4gRnJvbTogd2luLXB2LWRldmVsIFttYWls
dG86d2luLXB2LWRldmVsLWJvdW5jZXNAbGlzdHMueGVucHJvamVjdC5vcmc8bWFpbHRvOndpbi1w
di1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnPl0gT24gQmVoYWxmIE9mIEV5dGFu
IEhlaWRpbmdzZmVsZA0KPiBTZW50OiAxMSBKdWx5IDIwMTYgMTU6MDYNCj4gVG86IHdpbi1wdi1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZzxtYWlsdG86d2luLXB2LWRldmVsQGxpc3RzLnhlbnBy
b2plY3Qub3JnPg0KPiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBQYXRjaCBmb3IgVW5leHBlY3Rl
ZCBJbml0aWFsIFN0YXRlcyBvZiBYZW5WaWYNCj4NCj4NCj4NCj4gSGVsbG8sDQo+IEkndmUgbm90
aWNlZCB0aGF0IHRoZSBzdXBwb3J0IGZvciB1bmV4cGVjdGVkIGluaXRpYWwgc3RhdGVzIHRoYXQg
d2FzIGFkZGVkIHRvIHN1cHBvcnQgaXNjc2kgYm9vdCBpbiBjb21taXQ6IGM5YjZlNTZlNzM0MmEx
YmIzMWNmYjc5ZjI4YjZhMDBkMDU5NTQwMDYsDQo+DQo+DQo+DQo+IEFzIHRoZXJlIHdhcyBxdWl0
ZSBhIGJpdCBvZiByZWZhY3RvcmluZyBhcm91bmQgdGhhdCBhcmVhIEkndmUgY3JlYXRlZCBhIHNt
YWxsIHBhdGNoIHRoYXQgZml4ZXMgdGhlIGlzc3VlIGFnYWluLA0KPg0KPg0KPg0KPiBkaWZmIC0t
Z2l0IGEvc3JjL3hlbnZpZi9mcm9udGVuZC5jIGIvc3JjL3hlbnZpZi9mcm9udGVuZC5jDQo+DQo+
IGluZGV4IDVhMjk3MzYuLmFlZjY2ODAgMTAwNjQ0DQo+DQo+IC0tLSBhL3NyYy94ZW52aWYvZnJv
bnRlbmQuYw0KPg0KPiArKysgYi9zcmMveGVudmlmL2Zyb250ZW5kLmMNCj4NCj4gQEAgLTE1MjEs
NiArMTUyMSwxMSBAQCBGcm9udGVuZFByZXBhcmUoDQo+DQo+ICAgICAgICAgICAgICBGcm9udGVu
ZFNldFhlbmJ1c1N0YXRlKEZyb250ZW5kLA0KPg0KPiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBYZW5idXNTdGF0ZUluaXRpYWxpc2luZyk7DQo+DQo+ICAgICAgICAgICAgICBi
cmVhazsNCj4NCj4gKw0KPg0KPiArICAgICAgICAgICAgICAgICAgICBjYXNlIFhlbmJ1c1N0YXRl
Q29ubmVjdGVkOg0KPg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcm9udGVu
ZFNldFhlbmJ1c1N0YXRlKEZyb250ZW5kLA0KPg0KPiArICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBYZW5idXNTdGF0ZUNsb3NpbmcpOw0KPg0KPiArICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCj4NCj4NCj4NCj4gICAgICAgICAgY2FzZSBY
ZW5idXNTdGF0ZUNsb3Npbmc6DQo+DQo+ICAgICAgICAgICAgICBGcm9udGVuZFNldFhlbmJ1c1N0
YXRlKEZyb250ZW5kLA0KPg0KPiAtLQ0KPg0KPiAxLjkuNS5tc3lzZ2l0LjANCj4NCj4NCj4NCj4g
Q2hlZXJzLA0KPg0KPiBFeXRhbg0K

--_000_14514c8b36cb4eb6a3c4586a808009b6AMSPEX02CL03citritenet_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IlByb2dJZCIg
Y29udGVudD0iV29yZC5Eb2N1bWVudCI+DQo8bWV0YSBuYW1lPSJHZW5lcmF0b3IiIGNvbnRlbnQ9
Ik1pY3Jvc29mdCBXb3JkIDE0Ij4NCjxtZXRhIG5hbWU9Ik9yaWdpbmF0b3IiIGNvbnRlbnQ9Ik1p
Y3Jvc29mdCBXb3JkIDE0Ij4NCjxsaW5rIHJlbD0iRmlsZS1MaXN0IiBocmVmPSJjaWQ6ZmlsZWxp
c3QueG1sQDAxRDFFMERGLjc5QTU5QTgwIj48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOk9m
ZmljZURvY3VtZW50U2V0dGluZ3M+DQo8bzpBbGxvd1BORy8+DQo8bzpEb05vdFJlbHlPbkNTUy8+
DQo8L286T2ZmaWNlRG9jdW1lbnRTZXR0aW5ncz4NCjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYg
Z3RlIG1zbyA5XT48eG1sPg0KPHc6V29yZERvY3VtZW50Pg0KPHc6U3BlbGxpbmdTdGF0ZT5DbGVh
bjwvdzpTcGVsbGluZ1N0YXRlPg0KPHc6VHJhY2tNb3Zlcy8+DQo8dzpUcmFja0Zvcm1hdHRpbmcv
Pg0KPHc6RW52ZWxvcGVWaXMvPg0KPHc6VmFsaWRhdGVBZ2FpbnN0U2NoZW1hcy8+DQo8dzpTYXZl
SWZYTUxJbnZhbGlkPmZhbHNlPC93OlNhdmVJZlhNTEludmFsaWQ+DQo8dzpJZ25vcmVNaXhlZENv
bnRlbnQ+ZmFsc2U8L3c6SWdub3JlTWl4ZWRDb250ZW50Pg0KPHc6QWx3YXlzU2hvd1BsYWNlaG9s
ZGVyVGV4dD5mYWxzZTwvdzpBbHdheXNTaG93UGxhY2Vob2xkZXJUZXh0Pg0KPHc6RG9Ob3RQcm9t
b3RlUUYvPg0KPHc6TGlkVGhlbWVPdGhlcj5FTi1HQjwvdzpMaWRUaGVtZU90aGVyPg0KPHc6TGlk
VGhlbWVBc2lhbj5YLU5PTkU8L3c6TGlkVGhlbWVBc2lhbj4NCjx3OkxpZFRoZW1lQ29tcGxleFNj
cmlwdD5YLU5PTkU8L3c6TGlkVGhlbWVDb21wbGV4U2NyaXB0Pg0KPHc6Q29tcGF0aWJpbGl0eT4N
Cjx3OkRvTm90RXhwYW5kU2hpZnRSZXR1cm4vPg0KPHc6QnJlYWtXcmFwcGVkVGFibGVzLz4NCjx3
OlNwbGl0UGdCcmVha0FuZFBhcmFNYXJrLz4NCjx3OkVuYWJsZU9wZW5UeXBlS2VybmluZy8+DQo8
L3c6Q29tcGF0aWJpbGl0eT4NCjxtOm1hdGhQcj4NCjxtOm1hdGhGb250IG06dmFsPSJDYW1icmlh
IE1hdGgiLz4NCjxtOmJya0JpbiBtOnZhbD0iYmVmb3JlIi8+DQo8bTpicmtCaW5TdWIgbTp2YWw9
IiYjNDU7LSIvPg0KPG06c21hbGxGcmFjIG06dmFsPSJvZmYiLz4NCjxtOmRpc3BEZWYvPg0KPG06
bE1hcmdpbiBtOnZhbD0iMCIvPg0KPG06ck1hcmdpbiBtOnZhbD0iMCIvPg0KPG06ZGVmSmMgbTp2
YWw9ImNlbnRlckdyb3VwIi8+DQo8bTp3cmFwSW5kZW50IG06dmFsPSIxNDQwIi8+DQo8bTppbnRM
aW0gbTp2YWw9InN1YlN1cCIvPg0KPG06bmFyeUxpbSBtOnZhbD0idW5kT3ZyIi8+DQo8L206bWF0
aFByPjwvdzpXb3JkRG9jdW1lbnQ+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28g
OV0+PHhtbD4NCjx3OkxhdGVudFN0eWxlcyBEZWZMb2NrZWRTdGF0ZT0iZmFsc2UiIERlZlVuaGlk
ZVdoZW5Vc2VkPSJ0cnVlIiBEZWZTZW1pSGlkZGVuPSJ0cnVlIiBEZWZRRm9ybWF0PSJmYWxzZSIg
RGVmUHJpb3JpdHk9Ijk5IiBMYXRlbnRTdHlsZUNvdW50PSIyNjciPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJOb3JtYWwiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyAxIi8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFFGb3JtYXQ9InRydWUiIE5h
bWU9ImhlYWRpbmcgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyA0
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFFGb3JtYXQ9
InRydWUiIE5hbWU9ImhlYWRpbmcgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDYiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0i
aGVhZGluZyA3Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9Ijki
IFFGb3JtYXQ9InRydWUiIE5hbWU9ImhlYWRpbmcgOCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDkiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzkiIE5hbWU9InRvYyAx
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjM5IiBOYW1lPSJ0
b2MgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzOSIgTmFt
ZT0idG9jIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzki
IE5hbWU9InRvYyA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjM5IiBOYW1lPSJ0b2MgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9y
aXR5PSIzOSIgTmFtZT0idG9jIDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iMzkiIE5hbWU9InRvYyA3Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjM5IiBOYW1lPSJ0b2MgOCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSIzOSIgTmFtZT0idG9jIDkiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzUiIFFGb3JtYXQ9InRydWUiIE5hbWU9ImNhcHRpb24iLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMTAiIFNlbWlIaWRkZW49
ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9IlRpdGxl
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjEiIE5hbWU9IkRl
ZmF1bHQgUGFyYWdyYXBoIEZvbnQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iMTEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFG
b3JtYXQ9InRydWUiIE5hbWU9IlN1YnRpdGxlIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjIyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZh
bHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJTdHJvbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iMjAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNl
ZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9IkVtcGhhc2lzIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjU5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJUYWJsZSBHcmlkIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9j
a2VkPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJQbGFjZWhvbGRlciBUZXh0
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjEiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9Ik5v
IFNwYWNpbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjAi
IFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IFNo
YWRpbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjEiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IExpc3Qi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjIiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IEdyaWQiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjMiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDEiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDEiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDIiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjciIFNlbWlIaWRkZW49ImZhbHNlIiBV
bmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDEiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjgiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhp
ZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDIiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjkiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVX
aGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9IkRhcmsgTGlzdCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI3MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iQ29sb3JmdWwgU2hhZGluZyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iQ29sb3JmdWwgTGlzdCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI2MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIg
TmFtZT0iTGlnaHQgU2hhZGluZyBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI2MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iTGlnaHQgTGlzdCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI2MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgTmFtZT0iTGlnaHQgR3JpZCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMSBBY2NlbnQgMSIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVu
aGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMiBBY2NlbnQgMSIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NSIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3QgMSBBY2NlbnQg
MSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iUmV2aXNpb24iLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iMzQiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3Jt
YXQ9InRydWUiIE5hbWU9Ikxpc3QgUGFyYWdyYXBoIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjI5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJRdW90ZSIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzMCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iSW50ZW5zZSBRdW90ZSIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NiIgU2VtaUhpZGRlbj0iZmFsc2Ui
IFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3QgMiBBY2NlbnQgMSIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NyIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMSBBY2NlbnQg
MSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OCIgU2VtaUhp
ZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMiBB
Y2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OSIg
U2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdy
aWQgMyBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI3MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iRGFy
ayBMaXN0IEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjcxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJD
b2xvcmZ1bCBTaGFkaW5nIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjcyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNl
IiBOYW1lPSJDb2xvcmZ1bCBMaXN0IEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjczIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBHcmlkIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBTaGFkaW5nIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5o
aWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBMaXN0IEFjY2VudCAyIi8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYyIiBTZW1pSGlkZGVuPSJmYWxzZSIg
VW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBHcmlkIEFjY2VudCAyIi8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYzIiBTZW1pSGlkZGVuPSJmYWxz
ZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAxIEFjY2VudCAy
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY0IiBTZW1pSGlk
ZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAy
IEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY1
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0g
TGlzdCAxIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjY2IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJN
ZWRpdW0gTGlzdCAyIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjY3IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBO
YW1lPSJNZWRpdW0gR3JpZCAxIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjY4IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZh
bHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAyIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9j
a2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVz
ZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAzIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJEYXJrIExpc3QgQWNjZW50IDIiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhp
ZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIFNoYWRpbmcgQWNjZW50IDIiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzIiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIExpc3QgQWNjZW50IDIi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzMiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIEdyaWQgQWNj
ZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjAiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IFNoYWRp
bmcgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NjEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0
IExpc3QgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNjIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ikxp
Z2h0IEdyaWQgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNjMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9
Ik1lZGl1bSBTaGFkaW5nIDEgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFs
c2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDEgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhp
ZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDIgQWNjZW50IDMiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjciIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDEgQWNjZW50IDMiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjgiIFNlbWlIaWRkZW49
ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDIgQWNjZW50
IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjkiIFNlbWlI
aWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDMg
QWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzAi
IFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkRhcmsgTGlz
dCBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3
MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3Jm
dWwgU2hhZGluZyBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFBy
aW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFt
ZT0iQ29sb3JmdWwgTGlzdCBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI2MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgTmFtZT0iTGlnaHQgU2hhZGluZyBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdo
ZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQgTGlzdCBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQgR3JpZCBBY2NlbnQgNCIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVu
aGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMSBBY2NlbnQgNCIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NCIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMiBBY2Nl
bnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NSIgU2Vt
aUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3Qg
MSBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2
NiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVt
IExpc3QgMiBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9y
aXR5PSI2NyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0i
TWVkaXVtIEdyaWQgMSBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI2OCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIg
TmFtZT0iTWVkaXVtIEdyaWQgMiBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI2OSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMyBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgTmFtZT0iRGFyayBMaXN0IEFjY2VudCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBTaGFkaW5nIEFjY2VudCA0Ii8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcyIiBTZW1pSGlkZGVuPSJmYWxzZSIg
VW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBMaXN0IEFjY2VudCA0Ii8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjczIiBTZW1pSGlkZGVuPSJm
YWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBHcmlkIEFjY2VudCA0
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYwIiBTZW1pSGlk
ZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBTaGFkaW5nIEFj
Y2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYxIiBT
ZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBMaXN0
IEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYy
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBH
cmlkIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjYzIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRp
dW0gU2hhZGluZyAxIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjY0IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBO
YW1lPSJNZWRpdW0gU2hhZGluZyAyIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjY1IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAxIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY2IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAyIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY3IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5o
aWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAxIEFjY2VudCA1Ii8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY4IiBTZW1pSGlkZGVuPSJmYWxz
ZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAyIEFjY2VudCA1Ii8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY5IiBTZW1pSGlkZGVu
PSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAzIEFjY2Vu
dCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcwIiBTZW1p
SGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJEYXJrIExpc3QgQWNj
ZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzEiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIFNo
YWRpbmcgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNzIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNv
bG9yZnVsIExpc3QgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iNzMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5h
bWU9IkNvbG9yZnVsIEdyaWQgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNjAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFs
c2UiIE5hbWU9IkxpZ2h0IFNoYWRpbmcgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNl
ZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IExpc3QgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IEdyaWQgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVX
aGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDEgQWNjZW50IDYiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIgQWNjZW50IDYi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDEgQWNj
ZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0
IDIgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NjciIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1
bSBHcmlkIDEgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNjgiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9
Ik1lZGl1bSBHcmlkIDIgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBQcmlvcml0eT0iNjkiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2Ui
IE5hbWU9Ik1lZGl1bSBHcmlkIDMgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9
ImZhbHNlIiBQcmlvcml0eT0iNzAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0i
ZmFsc2UiIE5hbWU9IkRhcmsgTGlzdCBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI3MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgU2hhZGluZyBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgTGlzdCBBY2NlbnQgNiIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRlbj0iZmFsc2Ui
IFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCBBY2NlbnQgNiIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIxOSIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iU3VidGxl
IEVtcGhhc2lzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjIx
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVl
IiBOYW1lPSJJbnRlbnNlIEVtcGhhc2lzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjMxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNl
IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJTdWJ0bGUgUmVmZXJlbmNlIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjMyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJJbnRlbnNlIFJlZmVyZW5jZSIv
Pg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzMyIgU2VtaUhpZGRl
bj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iQm9v
ayBUaXRsZSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzNyIg
TmFtZT0iQmlibGlvZ3JhcGh5Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJp
b3JpdHk9IjM5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJUT0MgSGVhZGluZyIvPg0KPC93OkxhdGVu
dFN0eWxlcz4NCjwveG1sPjwhW2VuZGlmXS0tPjxzdHlsZT48IS0tDQovKiBGb250IERlZmluaXRp
b25zICovDQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAx
NSA1IDIgMiAyIDQgMyAyIDQ7DQoJbXNvLWZvbnQtY2hhcnNldDowOw0KCW1zby1nZW5lcmljLWZv
bnQtZmFtaWx5OnN3aXNzOw0KCW1zby1mb250LXBpdGNoOnZhcmlhYmxlOw0KCW1zby1mb250LXNp
Z25hdHVyZTotNTM2ODcwMTQ1IDEwNzM3ODYxMTEgMSAwIDQxNSAwO30NCkBmb250LWZhY2UNCgl7
Zm9udC1mYW1pbHk6VGFob21hOw0KCXBhbm9zZS0xOjIgMTEgNiA0IDMgNSA0IDQgMiA0Ow0KCW1z
by1mb250LWNoYXJzZXQ6MDsNCgltc28tZ2VuZXJpYy1mb250LWZhbWlseTpzd2lzczsNCgltc28t
Zm9udC1waXRjaDp2YXJpYWJsZTsNCgltc28tZm9udC1zaWduYXR1cmU6LTUyMDA4MTY2NSAtMTA3
MzcxNzE1NyA0MSAwIDY2MDQ3IDA7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9y
bWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwNCgl7bXNvLXN0eWxlLXVuaGlkZTpubzsN
Cgltc28tc3R5bGUtcWZvcm1hdDp5ZXM7DQoJbXNvLXN0eWxlLXBhcmVudDoiIjsNCgltYXJnaW46
MGNtOw0KCW1hcmdpbi1ib3R0b206LjAwMDFwdDsNCgltc28tcGFnaW5hdGlvbjp3aWRvdy1vcnBo
YW47DQoJZm9udC1zaXplOjEyLjBwdDsNCglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIiwi
c2VyaWYiOw0KCW1zby1mYXJlYXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7fQ0KYTpsaW5rLCBzcGFu
Lk1zb0h5cGVybGluaw0KCXttc28tc3R5bGUtbm9zaG93OnllczsNCgltc28tc3R5bGUtcHJpb3Jp
dHk6OTk7DQoJY29sb3I6Ymx1ZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOw0KCXRleHQt
dW5kZXJsaW5lOnNpbmdsZTt9DQphOnZpc2l0ZWQsIHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQN
Cgl7bXNvLXN0eWxlLW5vc2hvdzp5ZXM7DQoJbXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9y
OnB1cnBsZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOw0KCXRleHQtdW5kZXJsaW5lOnNp
bmdsZTt9DQpzcGFuLkVtYWlsU3R5bGUxNw0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbC1yZXBs
eTsNCgltc28tc3R5bGUtbm9zaG93OnllczsNCgltc28tc3R5bGUtdW5oaWRlOm5vOw0KCW1zby1h
bnNpLWZvbnQtc2l6ZToxMS4wcHQ7DQoJbXNvLWJpZGktZm9udC1zaXplOjExLjBwdDsNCglmb250
LWZhbWlseToiQ2FsaWJyaSIsInNhbnMtc2VyaWYiOw0KCW1zby1hc2NpaS1mb250LWZhbWlseTpD
YWxpYnJpOw0KCW1zby1mYXJlYXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7DQoJbXNvLWhhbnNpLWZv
bnQtZmFtaWx5OkNhbGlicmk7DQoJbXNvLWJpZGktZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21h
biI7DQoJY29sb3I6IzFGNDk3RDt9DQpzcGFuLlNwZWxsRQ0KCXttc28tc3R5bGUtbmFtZToiIjsN
Cgltc28tc3BsLWU6eWVzO30NCi5Nc29DaHBEZWZhdWx0DQoJe21zby1zdHlsZS10eXBlOmV4cG9y
dC1vbmx5Ow0KCW1zby1kZWZhdWx0LXByb3BzOnllczsNCglmb250LWZhbWlseToiQ2FsaWJyaSIs
InNhbnMtc2VyaWYiOw0KCW1zby1hc2NpaS1mb250LWZhbWlseTpDYWxpYnJpOw0KCW1zby1mYXJl
YXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7DQoJbXNvLWhhbnNpLWZvbnQtZmFtaWx5OkNhbGlicmk7
DQoJbXNvLWJpZGktZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiI7DQoJbXNvLWZhcmVhc3Qt
bGFuZ3VhZ2U6RU4tVVM7fQ0KQHBhZ2UgV29yZFNlY3Rpb24xDQoJe3NpemU6NjEyLjBwdCA3OTIu
MHB0Ow0KCW1hcmdpbjo3Mi4wcHQgNzIuMHB0IDcyLjBwdCA3Mi4wcHQ7DQoJbXNvLWhlYWRlci1t
YXJnaW46MzYuMHB0Ow0KCW1zby1mb290ZXItbWFyZ2luOjM2LjBwdDsNCgltc28tcGFwZXItc291
cmNlOjA7fQ0KZGl2LldvcmRTZWN0aW9uMQ0KCXtwYWdlOldvcmRTZWN0aW9uMTt9DQotLT48L3N0
eWxlPjwhLS1baWYgZ3RlIG1zbyAxMF0+PHN0eWxlPi8qIFN0eWxlIERlZmluaXRpb25zICovDQp0
YWJsZS5Nc29Ob3JtYWxUYWJsZQ0KCXttc28tc3R5bGUtbmFtZToiVGFibGUgTm9ybWFsIjsNCglt
c28tdHN0eWxlLXJvd2JhbmQtc2l6ZTowOw0KCW1zby10c3R5bGUtY29sYmFuZC1zaXplOjA7DQoJ
bXNvLXN0eWxlLW5vc2hvdzp5ZXM7DQoJbXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCW1zby1zdHls
ZS1wYXJlbnQ6IiI7DQoJbXNvLXBhZGRpbmctYWx0OjBjbSA1LjRwdCAwY20gNS40cHQ7DQoJbXNv
LXBhcmEtbWFyZ2luOjBjbTsNCgltc28tcGFyYS1tYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJbXNv
LXBhZ2luYXRpb246d2lkb3ctb3JwaGFuOw0KCWZvbnQtc2l6ZToxMS4wcHQ7DQoJZm9udC1mYW1p
bHk6IkNhbGlicmkiLCJzYW5zLXNlcmlmIjsNCgltc28tYXNjaWktZm9udC1mYW1pbHk6Q2FsaWJy
aTsNCgltc28taGFuc2ktZm9udC1mYW1pbHk6Q2FsaWJyaTsNCgltc28tZmFyZWFzdC1sYW5ndWFn
ZTpFTi1VUzt9DQo8L3N0eWxlPjwhW2VuZGlmXS0tPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0K
PG86c2hhcGVkZWZhdWx0cyB2OmV4dD0iZWRpdCIgc3BpZG1heD0iMTAyNiIgLz4NCjwveG1sPjwh
W2VuZGlmXS0tPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0KPG86c2hhcGVsYXlvdXQgdjpleHQ9
ImVkaXQiPg0KPG86aWRtYXAgdjpleHQ9ImVkaXQiIGRhdGE9IjEiIC8+DQo8L286c2hhcGVsYXlv
dXQ+PC94bWw+PCFbZW5kaWZdLS0+DQo8L2hlYWQ+DQo8Ym9keSBsYW5nPSJFTi1HQiIgbGluaz0i
Ymx1ZSIgdmxpbms9InB1cnBsZSIgc3R5bGU9InRhYi1pbnRlcnZhbDozNi4wcHQiPg0KPGRpdiBj
bGFzcz0iV29yZFNlY3Rpb24xIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIi
IGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVv
dDs7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9y
OiMxRjQ5N0QiPknigJlsbCByZS13b3JkIHRoZSBjb21taXQgbWVzc2FnZSBhIGJpdCBzbyB3ZSBn
ZXQgYSBuaWNlIHRpdGxlIGluIHRoZQ0KPHNwYW4gY2xhc3M9IlNwZWxsRSI+c2hvcnRsb2c8L3Nw
YW4+LCBidXQgdGhlIFMtby1iIHdhcyB3aGF0IEkgbmVlZGVkIHNvIEnigJlsbCBjb21taXQgdGhp
cyB0b2RheSBob3BlZnVsbHkuIFRoYW5rcyE8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9
IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tYmlkaS1mb250LWZhbWls
eTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8
L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9
IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYm
cXVvdDs7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2Nv
bG9yOiMxRjQ5N0QiPjxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46eWVzIj4mbmJzcDsNCjwvc3Bh
bj5QYXVsPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
Pjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90
O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJv
bWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9udD48
L3A+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCBibHVlIDEuNXB0
O3BhZGRpbmc6MGNtIDBjbSAwY20gNC4wcHQiPg0KPGRpdj4NCjxkaXYgc3R5bGU9ImJvcmRlcjpu
b25lO2JvcmRlci10b3A6c29saWQgI0I1QzRERiAxLjBwdDtwYWRkaW5nOjMuMHB0IDBjbSAwY20g
MGNtIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPjxmb250IHNpemU9IjIiIGZhY2U9IlRhaG9t
YSI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O1RhaG9tYSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1mYXJlYXN0LWZv
bnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90Ozttc28tYW5zaS1sYW5ndWFnZTpF
Ti1VUztmb250LXdlaWdodDpib2xkIj5Gcm9tOjwvc3Bhbj48L2ZvbnQ+PC9iPjxmb250IHNpemU9
IjIiIGZhY2U9IlRhaG9tYSI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTAu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O1RhaG9tYSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7
O21zby1mYXJlYXN0LWZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90Ozttc28t
YW5zaS1sYW5ndWFnZTpFTi1VUyI+DQogRXl0YW4gSGVpZGluZ3NmZWxkIFttYWlsdG86ZXl0YW5o
QGdtYWlsLmNvbV0gPGJyPg0KPGI+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPlNlbnQ6
PC9zcGFuPjwvYj4gMTggSnVseSAyMDE2IDEwOjIyPGJyPg0KPGI+PHNwYW4gc3R5bGU9ImZvbnQt
d2VpZ2h0OmJvbGQiPlRvOjwvc3Bhbj48L2I+IFBhdWwgRHVycmFudDxicj4NCjxiPjxzcGFuIHN0
eWxlPSJmb250LXdlaWdodDpib2xkIj5DYzo8L3NwYW4+PC9iPiB3aW4tcHYtZGV2ZWxAbGlzdHMu
eGVucHJvamVjdC5vcmc8YnI+DQo8Yj48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+U3Vi
amVjdDo8L3NwYW4+PC9iPiBSZTogW3dpbi1wdi1kZXZlbF0gW1hFTlZJRl0gUGF0Y2ggZm9yIFVu
ZXhwZWN0ZWQgSW5pdGlhbCBTdGF0ZXMgb2YgWGVuVmlmPG86cD48L286cD48L3NwYW4+PC9mb250
PjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIz
IiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij48
bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiIHN0eWxlPSJtYXJnaW4tYm90dG9tOjEyLjBwdCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0i
VGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+VHJ5aW5nIHRv
IGdldCB0aGUgZm9ybWF0IHJpZ2h0LCBidXQgaWYgbm90IGl0J3Mgb2sgd2l0aCBhICZxdW90O3N1
Z2dlc3RlZC1ieSZxdW90Oy48bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPlJlLWludHJvZHVjaW5nIHRoZSBsb2dpYyBm
cm9tIGNvbW1pdCBjOWI2ZTU2ZTczNDJhMWJiMzFjZmI3OWYyOGI2YTAwZDA1OTU0MDA2LCB0byBo
YW5kbGUgYSBiYWNrZW5kIHRoYXQgaXMgYWxyZWFkeSBjb25uZWN0ZWQgKGZvciBjYXNlcyB3aGVy
ZSBXaW5kb3dzIGlzIGJvb3RlZCB2aWEgaVNDU0kpPG86cD48L286cD48L3NwYW4+PC9mb250Pjwv
cD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZh
Y2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjxvOnA+
Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMi4wcHQiPlNpZ25lZC1vZmYtYnk6IEV5dGFuIEhlaWRpbmdzZmVsZCAmbHQ7PGEg
aHJlZj0ibWFpbHRvOmV5dGFuaEBnbWFpbC5jb20iPmV5dGFuaEBnbWFpbC5jb208L2E+Jmd0Ozxv
OnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjEyLjBwdCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4i
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5kaWZmIC0tZ2l0IGEvc3JjL3hlbnZpZi9m
cm9udGVuZC5jIGIvc3JjL3hlbnZpZi9mcm9udGVuZC5jPGJyPg0KaW5kZXggNWEyOTczNi4uYWVm
NjY4MCAxMDA2NDQ8YnI+DQotLS0gYS9zcmMveGVudmlmL2Zyb250ZW5kLmM8YnI+DQomIzQzOyYj
NDM7JiM0MzsgYi9zcmMveGVudmlmL2Zyb250ZW5kLmM8YnI+DQpAQCAtMTUyMSw2ICYjNDM7MTUy
MSwxMSBAQCBGcm9udGVuZFByZXBhcmUoPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7RnJvbnRlbmRTZXRYZW5idXNTdGF0ZShGcm9udGVuZCw8YnI+
DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyBYZW5idXNTdGF0ZUluaXRpYWxpc2luZyk7PGJyPg0KJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7YnJlYWs7PGJyPg0KJiM0Mzs8YnI+
DQomIzQzOyBjYXNlIFhlbmJ1c1N0YXRlQ29ubmVjdGVkOjxicj4NCiYjNDM7IEZyb250ZW5kU2V0
WGVuYnVzU3RhdGUoRnJvbnRlbmQsPGJyPg0KJiM0MzsgWGVuYnVzU3RhdGVDbG9zaW5nKTs8YnI+
DQomIzQzOyBicmVhazs8YnI+DQombmJzcDs8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7Y2FzZSBYZW5idXNTdGF0ZUNsb3Npbmc6PGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7RnJvbnRlbmRTZXRYZW5idXNTdGF0ZShGcm9u
dGVuZCw8YnI+DQo8YnI+DQpPbiBNb24sIEp1bCAxOCwgMjAxNiBhdCAxMTo0NCBBTSwgUGF1bCBE
dXJyYW50ICZsdDs8YSBocmVmPSJtYWlsdG86UGF1bC5EdXJyYW50QGNpdHJpeC5jb20iPlBhdWwu
RHVycmFudEBjaXRyaXguY29tPC9hPiZndDsgd3JvdGU6PGJyPg0KJmd0Ozxicj4NCiZndDsgU29y
cnksIEkgcmVhbGlzZWQgSSBoYWQgbm90IHJlc3BvbmRlZCB0byB0aGlzLiBUaGlzIGRvZXMgaW5k
ZWVkIGxvb2sgbGlrZSBhIGhvbGUgaW4gdGhlIGxvZ2ljIGluIHRoZSBtYXN0ZXIgYnJhbmNoLiBJ
IHdpbGwgYWRkIHlvdXIgcGF0Y2ggYnV0IHNpbmNlIHlvdSBkaWQgbm90IGFkZCB5b3VyIFMtby1i
IHRvIHRoZSBwYXRjaCBJIGNhbiBvbmx5IGNyZWRpdCB5b3Ugd2l0aCBhIOKAmHN1Z2dlc3RlZC1i
eeKAmS4gSWYgeW91IGNhbiBwb3N0IGEgcGF0Y2gNCiBpbiB0aGUgY29ycmVjdCBmb3JtIChzZWUg
PGEgaHJlZj0iaHR0cDovL3dpa2kueGVucHJvamVjdC5vcmcvd2lraS9TdWJtaXR0aW5nX1hlbl9Q
cm9qZWN0X1BhdGNoZXMiPg0KaHR0cDovL3dpa2kueGVucHJvamVjdC5vcmcvd2lraS9TdWJtaXR0
aW5nX1hlbl9Qcm9qZWN0X1BhdGNoZXM8L2E+IGZvciBndWlkYW5jZSkgdGhlbiBJIGNhbiBnaXZl
IHlvdSBmdWxsIGNyZWRpdC48YnI+DQomZ3Q7PGJyPg0KJmd0OyAmbmJzcDs8YnI+DQomZ3Q7PGJy
Pg0KJmd0OyAmbmJzcDsgQ2hlZXJzLDxicj4NCiZndDs8YnI+DQomZ3Q7ICZuYnNwOzxicj4NCiZn
dDs8YnI+DQomZ3Q7ICZuYnNwOyBQYXVsPGJyPg0KJmd0Ozxicj4NCiZndDsgJm5ic3A7PGJyPg0K
Jmd0Ozxicj4NCiZndDsgRnJvbTogd2luLXB2LWRldmVsIFttYWlsdG86PGEgaHJlZj0ibWFpbHRv
Ondpbi1wdi1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnIj53aW4tcHYtZGV2ZWwt
Ym91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZzwvYT5dIE9uIEJlaGFsZiBPZiBFeXRhbiBIZWlk
aW5nc2ZlbGQ8YnI+DQomZ3Q7IFNlbnQ6IDExIEp1bHkgMjAxNiAxNTowNjxicj4NCiZndDsgVG86
IDxhIGhyZWY9Im1haWx0bzp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmciPndpbi1w
di1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZzwvYT48YnI+DQomZ3Q7IFN1YmplY3Q6IFt3aW4t
cHYtZGV2ZWxdIFBhdGNoIGZvciBVbmV4cGVjdGVkIEluaXRpYWwgU3RhdGVzIG9mIFhlblZpZjxi
cj4NCiZndDs8YnI+DQomZ3Q7ICZuYnNwOzxicj4NCiZndDs8YnI+DQomZ3Q7IEhlbGxvLDxicj4N
CiZndDsgSSd2ZSBub3RpY2VkIHRoYXQgdGhlIHN1cHBvcnQgZm9yIHVuZXhwZWN0ZWQgaW5pdGlh
bCBzdGF0ZXMgdGhhdCB3YXMgYWRkZWQgdG8gc3VwcG9ydCBpc2NzaSBib290IGluIGNvbW1pdDog
YzliNmU1NmU3MzQyYTFiYjMxY2ZiNzlmMjhiNmEwMGQwNTk1NDAwNiw8YnI+DQomZ3Q7PGJyPg0K
Jmd0OyAmbmJzcDs8YnI+DQomZ3Q7PGJyPg0KJmd0OyBBcyB0aGVyZSB3YXMgcXVpdGUgYSBiaXQg
b2YgcmVmYWN0b3JpbmcgYXJvdW5kIHRoYXQgYXJlYSBJJ3ZlIGNyZWF0ZWQgYSBzbWFsbCBwYXRj
aCB0aGF0IGZpeGVzIHRoZSBpc3N1ZSBhZ2Fpbiw8YnI+DQomZ3Q7PGJyPg0KJmd0OyAmbmJzcDs8
YnI+DQomZ3Q7PGJyPg0KJmd0OyBkaWZmIC0tZ2l0IGEvc3JjL3hlbnZpZi9mcm9udGVuZC5jIGIv
c3JjL3hlbnZpZi9mcm9udGVuZC5jPGJyPg0KJmd0Ozxicj4NCiZndDsgaW5kZXggNWEyOTczNi4u
YWVmNjY4MCAxMDA2NDQ8YnI+DQomZ3Q7PGJyPg0KJmd0OyAtLS0gYS9zcmMveGVudmlmL2Zyb250
ZW5kLmM8YnI+DQomZ3Q7PGJyPg0KJmd0OyAmIzQzOyYjNDM7JiM0MzsgYi9zcmMveGVudmlmL2Zy
b250ZW5kLmM8YnI+DQomZ3Q7PGJyPg0KJmd0OyBAQCAtMTUyMSw2ICYjNDM7MTUyMSwxMSBAQCBG
cm9udGVuZFByZXBhcmUoPGJyPg0KJmd0Ozxicj4NCiZndDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7RnJvbnRlbmRTZXRYZW5idXNTdGF0ZShGcm9udGVu
ZCw8YnI+DQomZ3Q7PGJyPg0KJmd0OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBYZW5idXNTdGF0ZUluaXRpYWxpc2lu
Zyk7PGJyPg0KJmd0Ozxicj4NCiZndDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7YnJlYWs7PGJyPg0KJmd0Ozxicj4NCiZndDsgJiM0MzsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgPGJy
Pg0KJmd0Ozxicj4NCiZndDsgJiM0MzsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Y2FzZSBYZW5idXNTdGF0ZUNvbm5l
Y3RlZDo8YnI+DQomZ3Q7PGJyPg0KJmd0OyAmIzQzOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtGcm9udGVuZFNldFhlbmJ1c1N0YXRlKEZyb250
ZW5kLDxicj4NCiZndDs8YnI+DQomZ3Q7ICYjNDM7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwO1hlbmJ1c1N0YXRlQ2xvc2luZyk7PGJyPg0KJmd0Ozxicj4NCiZndDsgJiM0
MzsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
YnJlYWs7PGJyPg0KJmd0Ozxicj4NCiZndDsgJm5ic3A7PGJyPg0KJmd0Ozxicj4NCiZndDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2Nhc2UgWGVuYnVzU3RhdGVDbG9zaW5nOjxi
cj4NCiZndDs8YnI+DQomZ3Q7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwO0Zyb250ZW5kU2V0WGVuYnVzU3RhdGUoRnJvbnRlbmQsPGJyPg0KJmd0Ozxicj4N
CiZndDsgLS0gPGJyPg0KJmd0Ozxicj4NCiZndDsgMS45LjUubXN5c2dpdC4wPGJyPg0KJmd0Ozxi
cj4NCiZndDsgJm5ic3A7PGJyPg0KJmd0Ozxicj4NCiZndDsgQ2hlZXJzLDxicj4NCiZndDs8YnI+
DQomZ3Q7IEV5dGFuPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPC9kaXY+
DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2JvZHk+DQo8L2h0bWw+DQo=

--_000_14514c8b36cb4eb6a3c4586a808009b6AMSPEX02CL03citritenet_--


--===============5186171835501316014==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============5186171835501316014==--


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 18 11:51:33 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 18 Jul 2016 11:51:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bP75A-0000Bs-4d; Mon, 18 Jul 2016 11:51:32 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=000c0e060=owen.smith@citrix.com>)
 id 1bP758-0000Bk-PB
 for win-pv-devel@lists.xenproject.org; Mon, 18 Jul 2016 11:51:30 +0000
Received: from [193.109.254.147] by server-10.bemta-14.messagelabs.com id
 01/49-10191-2C2CC875; Mon, 18 Jul 2016 11:51:30 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpkkeJIrShJLcpLzFFi42JxWrohUvfgoZ5
 wg8WvlS3+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxu6PuxkLZrNXNCxdwdbAOI2ti5GDQ0LAX6J9
 iksXIycHm4CGxIzOxSwgtoiAusS+z1uZQGxmATWJ6/u7WEFsYQEzic7Lv9hAbBYBVYmfn9aB1
 fMKuEj0zH/CDmJLAM3Z1DADrEZIQEni2+IXzBA1ghInZz5hgZgpIXHwBUgc5ARuib/d9hMYeW
 YhqZqFpGoBI9MqRvXi1KKy1CJdI72kosz0jJLcxMwcXUNDE73c1OLixPTUnMSkYr3k/NxNjMD
 gYACCHYwtc5wPMUpyMCmJ8lot6AkX4kvKT6nMSCzOiC8qzUktPsQow8GhJMG76iBQTrAoNT21
 Ii0zBximMGkJDh4lEd7nIGne4oLE3OLMdIjUKUZdjgU/bq9lEmLJy89LlRLnvQZSJABSlFGaB
 zcCFjOXGGWlhHkZgY4S4ilILcrNLEGVf8UozsGoJMxbBzKFJzOvBG7TK6AjmICOMFDtBjmiJB
 EhJdXAuHNbYcnU17v9Zz7sduK52P3q2f+HYcvO/uu7GbpVouGuQX7J+reVWlZzuHh+XTXaZnJ
 fT3jd2+9lijeim8Lznmzo1FqfM9v8RhPv6c2V9er3OTx3RWyeVM1xgS+r/fAcdQa9zKk1sbzz
 O29feVi4QyrpW6t1BpPZLhn/yu40+bWbj+r2zlX4ocRSnJFoqMVcVJwIAGDiiJiUAgAA
X-Env-Sender: prvs=000c0e060=owen.smith@citrix.com
X-Msg-Ref: server-14.tower-27.messagelabs.com!1468842688!42331019!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 51374 invoked from network); 18 Jul 2016 11:51:29 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-14.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 18 Jul 2016 11:51:29 -0000
X-IronPort-AV: E=Sophos;i="5.28,383,1464652800"; d="scan'208";a="366785104"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Mon, 18 Jul 2016 12:51:16 +0100
Message-ID: <1468842676-8020-1-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH] Recreate watch on resume from suspend
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

V2F0Y2hlcyBhcmUgZmxhZ2dlZCBhcyBpbmFjdGl2ZSBvbiB0aGUgcmVzdW1lIGZyb20gc3VzcGVu
ZCwKYW5kIHdpbGwgb25seSByZWNpZXZlIHRoZSBpbml0aWFsIHdhdGNoIGZpcmUgYWZ0ZXIgYSBz
dXNwZW5kLgoKU2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29t
PgotLS0KIHNyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcCB8IDYgKysrKysrCiAxIGZpbGUgY2hhbmdl
ZCwgNiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL3hlbmFnZW50L3NlcnZpY2UuY3Bw
IGIvc3JjL3hlbmFnZW50L3NlcnZpY2UuY3BwCmluZGV4IDI2MzM4MDkuLjU1ZGM4Y2EgMTAwNjQ0
Ci0tLSBhL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcAorKysgYi9zcmMveGVuYWdlbnQvc2Vydmlj
ZS5jcHAKQEAgLTQ5NSw2ICs0OTUsMTIgQEAgdm9pZCBDWGVuQWdlbnQ6Ok9uU3VzcGVuZCgpCiAg
ICAgQ1hlbkFnZW50OjpMb2coIk9uU3VzcGVuZCgld3MpXG4iLCBtX2RldmljZS0+UGF0aCgpKTsK
ICAgICBFdmVudExvZyhFVkVOVF9YRU5VU0VSX1VOU1VTUEVOREVEKTsKIAorICAgIC8vIHJlY3Jl
YXRlIHNodXRkb3duIHdhdGNoLCBhcyBzdXNwZW5kaW5nIGRlYWN0aXZhdGVkIHRoZSB3YXRjaAor
ICAgIGlmIChtX2N0eHRfc2h1dGRvd24pCisgICAgICAgIG1fZGV2aWNlLT5TdG9yZVJlbW92ZVdh
dGNoKG1fY3R4dF9zaHV0ZG93bik7CisgICAgbV9jdHh0X3NodXRkb3duID0gTlVMTDsKKworICAg
IG1fZGV2aWNlLT5TdG9yZUFkZFdhdGNoKCJjb250cm9sL3NodXRkb3duIiwgbV9ldnRfc2h1dGRv
d24sICZtX2N0eHRfc2h1dGRvd24pOwogICAgIG1fZGV2aWNlLT5TdG9yZVdyaXRlKCJjb250cm9s
L2ZlYXR1cmUtc2h1dGRvd24iLCAiMSIpOwogCiAgICAgU2V0WGVuVGltZSgpOwotLSAKMS45LjQu
bXN5c2dpdC4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVj
dC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGlu
Zm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Mon Jul 18 11:51:33 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 18 Jul 2016 11:51:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bP75A-0000Bs-4d; Mon, 18 Jul 2016 11:51:32 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=000c0e060=owen.smith@citrix.com>)
 id 1bP758-0000Bk-PB
 for win-pv-devel@lists.xenproject.org; Mon, 18 Jul 2016 11:51:30 +0000
Received: from [193.109.254.147] by server-10.bemta-14.messagelabs.com id
 01/49-10191-2C2CC875; Mon, 18 Jul 2016 11:51:30 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpkkeJIrShJLcpLzFFi42JxWrohUvfgoZ5
 wg8WvlS3+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxu6PuxkLZrNXNCxdwdbAOI2ti5GDQ0LAX6J9
 iksXIycHm4CGxIzOxSwgtoiAusS+z1uZQGxmATWJ6/u7WEFsYQEzic7Lv9hAbBYBVYmfn9aB1
 fMKuEj0zH/CDmJLAM3Z1DADrEZIQEni2+IXzBA1ghInZz5hgZgpIXHwBUgc5ARuib/d9hMYeW
 YhqZqFpGoBI9MqRvXi1KKy1CJdI72kosz0jJLcxMwcXUNDE73c1OLixPTUnMSkYr3k/NxNjMD
 gYACCHYwtc5wPMUpyMCmJ8lot6AkX4kvKT6nMSCzOiC8qzUktPsQow8GhJMG76iBQTrAoNT21
 Ii0zBximMGkJDh4lEd7nIGne4oLE3OLMdIjUKUZdjgU/bq9lEmLJy89LlRLnvQZSJABSlFGaB
 zcCFjOXGGWlhHkZgY4S4ilILcrNLEGVf8UozsGoJMxbBzKFJzOvBG7TK6AjmICOMFDtBjmiJB
 EhJdXAuHNbYcnU17v9Zz7sduK52P3q2f+HYcvO/uu7GbpVouGuQX7J+reVWlZzuHh+XTXaZnJ
 fT3jd2+9lijeim8Lznmzo1FqfM9v8RhPv6c2V9er3OTx3RWyeVM1xgS+r/fAcdQa9zKk1sbzz
 O29feVi4QyrpW6t1BpPZLhn/yu40+bWbj+r2zlX4ocRSnJFoqMVcVJwIAGDiiJiUAgAA
X-Env-Sender: prvs=000c0e060=owen.smith@citrix.com
X-Msg-Ref: server-14.tower-27.messagelabs.com!1468842688!42331019!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 51374 invoked from network); 18 Jul 2016 11:51:29 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-14.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 18 Jul 2016 11:51:29 -0000
X-IronPort-AV: E=Sophos;i="5.28,383,1464652800"; d="scan'208";a="366785104"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Mon, 18 Jul 2016 12:51:16 +0100
Message-ID: <1468842676-8020-1-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH] Recreate watch on resume from suspend
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

V2F0Y2hlcyBhcmUgZmxhZ2dlZCBhcyBpbmFjdGl2ZSBvbiB0aGUgcmVzdW1lIGZyb20gc3VzcGVu
ZCwKYW5kIHdpbGwgb25seSByZWNpZXZlIHRoZSBpbml0aWFsIHdhdGNoIGZpcmUgYWZ0ZXIgYSBz
dXNwZW5kLgoKU2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29t
PgotLS0KIHNyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcCB8IDYgKysrKysrCiAxIGZpbGUgY2hhbmdl
ZCwgNiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL3hlbmFnZW50L3NlcnZpY2UuY3Bw
IGIvc3JjL3hlbmFnZW50L3NlcnZpY2UuY3BwCmluZGV4IDI2MzM4MDkuLjU1ZGM4Y2EgMTAwNjQ0
Ci0tLSBhL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcAorKysgYi9zcmMveGVuYWdlbnQvc2Vydmlj
ZS5jcHAKQEAgLTQ5NSw2ICs0OTUsMTIgQEAgdm9pZCBDWGVuQWdlbnQ6Ok9uU3VzcGVuZCgpCiAg
ICAgQ1hlbkFnZW50OjpMb2coIk9uU3VzcGVuZCgld3MpXG4iLCBtX2RldmljZS0+UGF0aCgpKTsK
ICAgICBFdmVudExvZyhFVkVOVF9YRU5VU0VSX1VOU1VTUEVOREVEKTsKIAorICAgIC8vIHJlY3Jl
YXRlIHNodXRkb3duIHdhdGNoLCBhcyBzdXNwZW5kaW5nIGRlYWN0aXZhdGVkIHRoZSB3YXRjaAor
ICAgIGlmIChtX2N0eHRfc2h1dGRvd24pCisgICAgICAgIG1fZGV2aWNlLT5TdG9yZVJlbW92ZVdh
dGNoKG1fY3R4dF9zaHV0ZG93bik7CisgICAgbV9jdHh0X3NodXRkb3duID0gTlVMTDsKKworICAg
IG1fZGV2aWNlLT5TdG9yZUFkZFdhdGNoKCJjb250cm9sL3NodXRkb3duIiwgbV9ldnRfc2h1dGRv
d24sICZtX2N0eHRfc2h1dGRvd24pOwogICAgIG1fZGV2aWNlLT5TdG9yZVdyaXRlKCJjb250cm9s
L2ZlYXR1cmUtc2h1dGRvd24iLCAiMSIpOwogCiAgICAgU2V0WGVuVGltZSgpOwotLSAKMS45LjQu
bXN5c2dpdC4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVj
dC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGlu
Zm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Mon Jul 18 12:18:02 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 18 Jul 2016 12:18:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bP7Un-0001iv-NN; Mon, 18 Jul 2016 12:18:01 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=0001784ad=Paul.Durrant@citrix.com>)
 id 1bP7Um-0001ip-Oy
 for win-pv-devel@lists.xenproject.org; Mon, 18 Jul 2016 12:18:00 +0000
Received: from [85.158.143.35] by server-3.bemta-6.messagelabs.com id
 F6/66-05661-8F8CC875; Mon, 18 Jul 2016 12:18:00 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrBIsWRWlGSWpSXmKPExsWyU9JRQvf7iZ5
 wg8kztS3+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxuZp89kL1ghUdJ/6w97AOEGgi5GTQ0LAT2Ln
 ne+MIDabgI7E0qPzmUBsEYECie/v5zGD2MwCahLX93exgtjCAp4SK4/0skDUeElsmd7P3sXIA
 WQbSfya6Q4SZhFQlVj0+hxYCa+Au0TDqVNgI4UEXCT2Hb8JtopTwFViyYNz7CA2o4CsxJfG1V
 CrxCVuPYE4QUJAQGLJnvPMELaoxMvH/1ghbAOJrUv3sYCsZRbQlFi/Sx+iVVFiSvdDdoi1ghI
 nZz5hgVirIrHl8QGoMdwSKz//YZnAKDoLybZZCJNmIZk0C8mkBYwsqxjVi1OLylKLdA31kooy
 0zNKchMzc3QNDcz0clOLixPTU3MSk4r1kvNzNzECY4QBCHYw7nzudIhRkoNJSZTXakFPuBBfU
 n5KZUZicUZ8UWlOavEhRhkODiUJXgZgzAkJFqWmp1akZeYAoxUmLcHBoyTC630cKM1bXJCYW5
 yZDpE6xagoJc7rCNInAJLIKM2Da4MliEuMslLCvIxAhwjxFKQW5WaWoMq/YhTnYFQS5uUAmcK
 TmVcCN/0V0GImoMUGqt0gi0sSEVJSDYxZysn2cfP5N1z8FKW4+uYKnwSfSesOn/V+MNHH6HZU
 WkUAL3f53wY/nW9S+sLa74/N/vrlsxND8prtTLYu3v8uM10+yWlleWH283+ZHa6PGRLsO+Ua2
 NzYV3fKuM1myj96p2ZLh23Z9Hx/L46vdXYCfBfY/ewdPn/kS6o7ldw6Q0XnLlOtthJLcUaioR
 ZzUXEiAJ7XizILAwAA
X-Env-Sender: prvs=0001784ad=Paul.Durrant@citrix.com
X-Msg-Ref: server-4.tower-21.messagelabs.com!1468844278!18316262!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: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 16318 invoked from network); 18 Jul 2016 12:17:59 -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;
 18 Jul 2016 12:17:59 -0000
X-IronPort-AV: E=Sophos;i="5.28,383,1464652800"; d="scan'208";a="26510483"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH] Recreate watch on resume from suspend
Thread-Index: AQHR4OrJYBemBfs1NEC5hr+pq3nWVqAeGpkA
Date: Mon, 18 Jul 2016 12:17:03 +0000
Message-ID: <b0a1950054f240acb7b278a2ce0f98a4@AMSPEX02CL03.citrite.net>
References: <1468842676-8020-1-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1468842676-8020-1-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH] Recreate watch on resume from suspend
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMTggSnVseSAyMDE2IDEyOjUxDQo+IFRvOiB3aW4tcHYt
ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gQ2M6IE93ZW4gU21pdGgNCj4gU3ViamVjdDog
W3dpbi1wdi1kZXZlbF0gW1BBVENIXSBSZWNyZWF0ZSB3YXRjaCBvbiByZXN1bWUgZnJvbSBzdXNw
ZW5kDQo+IA0KPiBXYXRjaGVzIGFyZSBmbGFnZ2VkIGFzIGluYWN0aXZlIG9uIHRoZSByZXN1bWUg
ZnJvbSBzdXNwZW5kLA0KPiBhbmQgd2lsbCBvbmx5IHJlY2lldmUgdGhlIGluaXRpYWwgd2F0Y2gg
ZmlyZSBhZnRlciBhIHN1c3BlbmQuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBPd2VuIFNtaXRoIDxv
d2VuLnNtaXRoQGNpdHJpeC5jb20+DQoNCkFja2VkLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVy
cmFudEBjaXRyaXguY29tPg0KDQo+IC0tLQ0KPiAgc3JjL3hlbmFnZW50L3NlcnZpY2UuY3BwIHwg
NiArKysrKysNCj4gIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKykNCj4gDQo+IGRpZmYg
LS1naXQgYS9zcmMveGVuYWdlbnQvc2VydmljZS5jcHAgYi9zcmMveGVuYWdlbnQvc2VydmljZS5j
cHANCj4gaW5kZXggMjYzMzgwOS4uNTVkYzhjYSAxMDA2NDQNCj4gLS0tIGEvc3JjL3hlbmFnZW50
L3NlcnZpY2UuY3BwDQo+ICsrKyBiL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcA0KPiBAQCAtNDk1
LDYgKzQ5NSwxMiBAQCB2b2lkIENYZW5BZ2VudDo6T25TdXNwZW5kKCkNCj4gICAgICBDWGVuQWdl
bnQ6OkxvZygiT25TdXNwZW5kKCV3cylcbiIsIG1fZGV2aWNlLT5QYXRoKCkpOw0KPiAgICAgIEV2
ZW50TG9nKEVWRU5UX1hFTlVTRVJfVU5TVVNQRU5ERUQpOw0KPiANCj4gKyAgICAvLyByZWNyZWF0
ZSBzaHV0ZG93biB3YXRjaCwgYXMgc3VzcGVuZGluZyBkZWFjdGl2YXRlZCB0aGUgd2F0Y2gNCj4g
KyAgICBpZiAobV9jdHh0X3NodXRkb3duKQ0KPiArICAgICAgICBtX2RldmljZS0+U3RvcmVSZW1v
dmVXYXRjaChtX2N0eHRfc2h1dGRvd24pOw0KPiArICAgIG1fY3R4dF9zaHV0ZG93biA9IE5VTEw7
DQo+ICsNCj4gKyAgICBtX2RldmljZS0+U3RvcmVBZGRXYXRjaCgiY29udHJvbC9zaHV0ZG93biIs
IG1fZXZ0X3NodXRkb3duLA0KPiAmbV9jdHh0X3NodXRkb3duKTsNCj4gICAgICBtX2RldmljZS0+
U3RvcmVXcml0ZSgiY29udHJvbC9mZWF0dXJlLXNodXRkb3duIiwgIjEiKTsNCj4gDQo+ICAgICAg
U2V0WGVuVGltZSgpOw0KPiAtLQ0KPiAxLjkuNC5tc3lzZ2l0LjENCj4gDQo+IA0KPiBfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiB3aW4tcHYtZGV2ZWwg
bWFpbGluZyBsaXN0DQo+IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBodHRw
czovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYt
ZGV2ZWwNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndp
bi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3Jn
Cmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dp
bi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Mon Jul 18 12:18:02 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 18 Jul 2016 12:18:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bP7Un-0001iv-NN; Mon, 18 Jul 2016 12:18:01 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=0001784ad=Paul.Durrant@citrix.com>)
 id 1bP7Um-0001ip-Oy
 for win-pv-devel@lists.xenproject.org; Mon, 18 Jul 2016 12:18:00 +0000
Received: from [85.158.143.35] by server-3.bemta-6.messagelabs.com id
 F6/66-05661-8F8CC875; Mon, 18 Jul 2016 12:18:00 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrBIsWRWlGSWpSXmKPExsWyU9JRQvf7iZ5
 wg8kztS3+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxuZp89kL1ghUdJ/6w97AOEGgi5GTQ0LAT2Ln
 ne+MIDabgI7E0qPzmUBsEYECie/v5zGD2MwCahLX93exgtjCAp4SK4/0skDUeElsmd7P3sXIA
 WQbSfya6Q4SZhFQlVj0+hxYCa+Au0TDqVNgI4UEXCT2Hb8JtopTwFViyYNz7CA2o4CsxJfG1V
 CrxCVuPYE4QUJAQGLJnvPMELaoxMvH/1ghbAOJrUv3sYCsZRbQlFi/Sx+iVVFiSvdDdoi1ghI
 nZz5hgVirIrHl8QGoMdwSKz//YZnAKDoLybZZCJNmIZk0C8mkBYwsqxjVi1OLylKLdA31kooy
 0zNKchMzc3QNDcz0clOLixPTU3MSk4r1kvNzNzECY4QBCHYw7nzudIhRkoNJSZTXakFPuBBfU
 n5KZUZicUZ8UWlOavEhRhkODiUJXgZgzAkJFqWmp1akZeYAoxUmLcHBoyTC630cKM1bXJCYW5
 yZDpE6xagoJc7rCNInAJLIKM2Da4MliEuMslLCvIxAhwjxFKQW5WaWoMq/YhTnYFQS5uUAmcK
 TmVcCN/0V0GImoMUGqt0gi0sSEVJSDYxZysn2cfP5N1z8FKW4+uYKnwSfSesOn/V+MNHH6HZU
 WkUAL3f53wY/nW9S+sLa74/N/vrlsxND8prtTLYu3v8uM10+yWlleWH283+ZHa6PGRLsO+Ua2
 NzYV3fKuM1myj96p2ZLh23Z9Hx/L46vdXYCfBfY/ewdPn/kS6o7ldw6Q0XnLlOtthJLcUaioR
 ZzUXEiAJ7XizILAwAA
X-Env-Sender: prvs=0001784ad=Paul.Durrant@citrix.com
X-Msg-Ref: server-4.tower-21.messagelabs.com!1468844278!18316262!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: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 16318 invoked from network); 18 Jul 2016 12:17:59 -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;
 18 Jul 2016 12:17:59 -0000
X-IronPort-AV: E=Sophos;i="5.28,383,1464652800"; d="scan'208";a="26510483"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH] Recreate watch on resume from suspend
Thread-Index: AQHR4OrJYBemBfs1NEC5hr+pq3nWVqAeGpkA
Date: Mon, 18 Jul 2016 12:17:03 +0000
Message-ID: <b0a1950054f240acb7b278a2ce0f98a4@AMSPEX02CL03.citrite.net>
References: <1468842676-8020-1-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1468842676-8020-1-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH] Recreate watch on resume from suspend
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMTggSnVseSAyMDE2IDEyOjUxDQo+IFRvOiB3aW4tcHYt
ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gQ2M6IE93ZW4gU21pdGgNCj4gU3ViamVjdDog
W3dpbi1wdi1kZXZlbF0gW1BBVENIXSBSZWNyZWF0ZSB3YXRjaCBvbiByZXN1bWUgZnJvbSBzdXNw
ZW5kDQo+IA0KPiBXYXRjaGVzIGFyZSBmbGFnZ2VkIGFzIGluYWN0aXZlIG9uIHRoZSByZXN1bWUg
ZnJvbSBzdXNwZW5kLA0KPiBhbmQgd2lsbCBvbmx5IHJlY2lldmUgdGhlIGluaXRpYWwgd2F0Y2gg
ZmlyZSBhZnRlciBhIHN1c3BlbmQuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBPd2VuIFNtaXRoIDxv
d2VuLnNtaXRoQGNpdHJpeC5jb20+DQoNCkFja2VkLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVy
cmFudEBjaXRyaXguY29tPg0KDQo+IC0tLQ0KPiAgc3JjL3hlbmFnZW50L3NlcnZpY2UuY3BwIHwg
NiArKysrKysNCj4gIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKykNCj4gDQo+IGRpZmYg
LS1naXQgYS9zcmMveGVuYWdlbnQvc2VydmljZS5jcHAgYi9zcmMveGVuYWdlbnQvc2VydmljZS5j
cHANCj4gaW5kZXggMjYzMzgwOS4uNTVkYzhjYSAxMDA2NDQNCj4gLS0tIGEvc3JjL3hlbmFnZW50
L3NlcnZpY2UuY3BwDQo+ICsrKyBiL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcA0KPiBAQCAtNDk1
LDYgKzQ5NSwxMiBAQCB2b2lkIENYZW5BZ2VudDo6T25TdXNwZW5kKCkNCj4gICAgICBDWGVuQWdl
bnQ6OkxvZygiT25TdXNwZW5kKCV3cylcbiIsIG1fZGV2aWNlLT5QYXRoKCkpOw0KPiAgICAgIEV2
ZW50TG9nKEVWRU5UX1hFTlVTRVJfVU5TVVNQRU5ERUQpOw0KPiANCj4gKyAgICAvLyByZWNyZWF0
ZSBzaHV0ZG93biB3YXRjaCwgYXMgc3VzcGVuZGluZyBkZWFjdGl2YXRlZCB0aGUgd2F0Y2gNCj4g
KyAgICBpZiAobV9jdHh0X3NodXRkb3duKQ0KPiArICAgICAgICBtX2RldmljZS0+U3RvcmVSZW1v
dmVXYXRjaChtX2N0eHRfc2h1dGRvd24pOw0KPiArICAgIG1fY3R4dF9zaHV0ZG93biA9IE5VTEw7
DQo+ICsNCj4gKyAgICBtX2RldmljZS0+U3RvcmVBZGRXYXRjaCgiY29udHJvbC9zaHV0ZG93biIs
IG1fZXZ0X3NodXRkb3duLA0KPiAmbV9jdHh0X3NodXRkb3duKTsNCj4gICAgICBtX2RldmljZS0+
U3RvcmVXcml0ZSgiY29udHJvbC9mZWF0dXJlLXNodXRkb3duIiwgIjEiKTsNCj4gDQo+ICAgICAg
U2V0WGVuVGltZSgpOw0KPiAtLQ0KPiAxLjkuNC5tc3lzZ2l0LjENCj4gDQo+IA0KPiBfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiB3aW4tcHYtZGV2ZWwg
bWFpbGluZyBsaXN0DQo+IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBodHRw
czovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYt
ZGV2ZWwNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndp
bi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3Jn
Cmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dp
bi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Mon Jul 18 12:35:26 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 18 Jul 2016 12:35:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bP7ld-0002q1-4s; Mon, 18 Jul 2016 12:35:25 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=0001784ad=Paul.Durrant@citrix.com>)
 id 1bP7lb-0002pp-Ac
 for win-pv-devel@lists.xenproject.org; Mon, 18 Jul 2016 12:35:23 +0000
Received: from [85.158.139.211] by server-11.bemta-5.messagelabs.com id
 83/FD-12614-A0DCC875; Mon, 18 Jul 2016 12:35:22 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprCKsWRWlGSWpSXmKPExsWyU9JRQpfzbE+
 4wbm96hZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y+LOXawFHz8yVbxr2cPUwPj3DVMXIyeHhECQ
 xJJnm1lAbDYBHYmlR+eDxUWA4q8XvmUEsZkFvCWunjwIZgsLBEucavkKZHMA1YRIbJ0MZVpJf
 Gh0AalgEVCV+PPgBBuIzSvgLtH2/ylrFyMXh5BAL6PEq5szwMZwCnhIHHj1khXEZhSQlfjSuJ
 oZYpW4xK0n86FOE5BYsuc8M4QtKvHy8T9WCNtAYuvSfSwQ9bkSd349YYZYJihxcuYTsLiQgIr
 ElscHoHq5JVZ+/sMygVFkFpIVs5C0z0LSPgvoHWYBTYn1u/QhShQlpnQ/ZIewNSRa58xlRxZf
 wMi+ilGjOLWoLLVI19BSL6koMz2jJDcxM0fX0MBULze1uDgxPTUnMalYLzk/dxMjMLbqGRgYd
 zA+6vc7xCjJwaQkymu1oCdciC8pP6UyI7E4I76oNCe1+BCjDAeHkgTvo1NAOcGi1PTUirTMHG
 CUw6QlOHiURHh/nwZK8xYXJOYWZ6ZDpE4xKkqJ804CSQiAJDJK8+DaYInlEqOslDAvIwMDgxB
 PQWpRbmYJqvwrRnEORiVh3jMgU3gy80rgpr8CWswEtNhAtRtkcUkiQkqqgXHiz+tuAX/Srppr
 9//e/8Oi3TbPMHtWhbfXuo3vGP0ZH3+v4dFOmyG67qmMZfKEAu0LKx97MYqbh92+VfZDRfvAP
 NGZEjNjRUV+/yhyD7/YqlS3StU2/9a/esUc3l5DgWPHD0xce43Fn/Hn4ZgQmY/Tf7lvNnHbxP
 Xxvo379cKrkY/YtgmoblZiKc5INNRiLipOBADvMZBtJwMAAA==
X-Env-Sender: prvs=0001784ad=Paul.Durrant@citrix.com
X-Msg-Ref: server-14.tower-206.messagelabs.com!1468845321!13754701!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.6 required=7.0 tests=HTML_90_100,HTML_MESSAGE,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 17312 invoked from network); 18 Jul 2016 12:35:21 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-14.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 18 Jul 2016 12:35:21 -0000
X-IronPort-AV: E=Sophos;i="5.28,383,1464652800"; d="scan'208,217";a="26512409"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Paul Durrant <Paul.Durrant@citrix.com>, Eytan Heidingsfeld
 <eytanh@gmail.com>
Thread-Topic: [win-pv-devel] [XENVIF] Patch for Unexpected Initial States of
 XenVif
Thread-Index: AQHR4NXqRXfwfph5rUyLH04v431TeKAd7ClggAAzu8A=
Date: Mon, 18 Jul 2016 12:35:03 +0000
Message-ID: <f5f79a9d95d04402b36e5a443cb03e1c@AMSPEX02CL03.citrite.net>
References: <CAGjCcQOTj4u3xv1fsGXjxVbOOi+d_L+J0uVMR6qUQ6Eiphq-gQ@mail.gmail.com>
 <14514c8b36cb4eb6a3c4586a808009b6@AMSPEX02CL03.citrite.net>
In-Reply-To: <14514c8b36cb4eb6a3c4586a808009b6@AMSPEX02CL03.citrite.net>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] [XENVIF] Patch for Unexpected Initial States of
 XenVif
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============5093947895050528481=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============5093947895050528481==
Content-Language: en-US
Content-Type: multipart/alternative;
	boundary="_000_f5f79a9d95d04402b36e5a443cb03e1cAMSPEX02CL03citritenet_"

--_000_f5f79a9d95d04402b36e5a443cb03e1cAMSPEX02CL03citritenet_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

QXBwbGllZCBub3cuDQoNCiAgUGF1bA0KDQpGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0bzp3aW4t
cHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24gQmVoYWxmIE9mIFBhdWwg
RHVycmFudA0KU2VudDogMTggSnVseSAyMDE2IDEwOjMxDQpUbzogRXl0YW4gSGVpZGluZ3NmZWxk
DQpDYzogd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQpTdWJqZWN0OiBSZTogW3dp
bi1wdi1kZXZlbF0gW1hFTlZJRl0gUGF0Y2ggZm9yIFVuZXhwZWN0ZWQgSW5pdGlhbCBTdGF0ZXMg
b2YgWGVuVmlmDQoNCknigJlsbCByZS13b3JkIHRoZSBjb21taXQgbWVzc2FnZSBhIGJpdCBzbyB3
ZSBnZXQgYSBuaWNlIHRpdGxlIGluIHRoZSBzaG9ydGxvZywgYnV0IHRoZSBTLW8tYiB3YXMgd2hh
dCBJIG5lZWRlZCBzbyBJ4oCZbGwgY29tbWl0IHRoaXMgdG9kYXkgaG9wZWZ1bGx5LiBUaGFua3Mh
DQoNCiAgUGF1bA0KDQpGcm9tOiBFeXRhbiBIZWlkaW5nc2ZlbGQgW21haWx0bzpleXRhbmhAZ21h
aWwuY29tXQ0KU2VudDogMTggSnVseSAyMDE2IDEwOjIyDQpUbzogUGF1bCBEdXJyYW50DQpDYzog
d2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnPG1haWx0bzp3aW4tcHYtZGV2ZWxAbGlz
dHMueGVucHJvamVjdC5vcmc+DQpTdWJqZWN0OiBSZTogW3dpbi1wdi1kZXZlbF0gW1hFTlZJRl0g
UGF0Y2ggZm9yIFVuZXhwZWN0ZWQgSW5pdGlhbCBTdGF0ZXMgb2YgWGVuVmlmDQoNClRyeWluZyB0
byBnZXQgdGhlIGZvcm1hdCByaWdodCwgYnV0IGlmIG5vdCBpdCdzIG9rIHdpdGggYSAic3VnZ2Vz
dGVkLWJ5Ii4NClJlLWludHJvZHVjaW5nIHRoZSBsb2dpYyBmcm9tIGNvbW1pdCBjOWI2ZTU2ZTcz
NDJhMWJiMzFjZmI3OWYyOGI2YTAwZDA1OTU0MDA2LCB0byBoYW5kbGUgYSBiYWNrZW5kIHRoYXQg
aXMgYWxyZWFkeSBjb25uZWN0ZWQgKGZvciBjYXNlcyB3aGVyZSBXaW5kb3dzIGlzIGJvb3RlZCB2
aWEgaVNDU0kpDQoNClNpZ25lZC1vZmYtYnk6IEV5dGFuIEhlaWRpbmdzZmVsZCA8ZXl0YW5oQGdt
YWlsLmNvbTxtYWlsdG86ZXl0YW5oQGdtYWlsLmNvbT4+DQoNCmRpZmYgLS1naXQgYS9zcmMveGVu
dmlmL2Zyb250ZW5kLmMgYi9zcmMveGVudmlmL2Zyb250ZW5kLmMNCmluZGV4IDVhMjk3MzYuLmFl
ZjY2ODAgMTAwNjQ0DQotLS0gYS9zcmMveGVudmlmL2Zyb250ZW5kLmMNCisrKyBiL3NyYy94ZW52
aWYvZnJvbnRlbmQuYw0KQEAgLTE1MjEsNiArMTUyMSwxMSBAQCBGcm9udGVuZFByZXBhcmUoDQog
ICAgICAgICAgICAgRnJvbnRlbmRTZXRYZW5idXNTdGF0ZShGcm9udGVuZCwNCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nKTsNCiAgICAg
ICAgICAgICBicmVhazsNCisNCisgY2FzZSBYZW5idXNTdGF0ZUNvbm5lY3RlZDoNCisgRnJvbnRl
bmRTZXRYZW5idXNTdGF0ZShGcm9udGVuZCwNCisgWGVuYnVzU3RhdGVDbG9zaW5nKTsNCisgYnJl
YWs7DQoNCiAgICAgICAgIGNhc2UgWGVuYnVzU3RhdGVDbG9zaW5nOg0KICAgICAgICAgICAgIEZy
b250ZW5kU2V0WGVuYnVzU3RhdGUoRnJvbnRlbmQsDQoNCk9uIE1vbiwgSnVsIDE4LCAyMDE2IGF0
IDExOjQ0IEFNLCBQYXVsIER1cnJhbnQgPFBhdWwuRHVycmFudEBjaXRyaXguY29tPG1haWx0bzpQ
YXVsLkR1cnJhbnRAY2l0cml4LmNvbT4+IHdyb3RlOg0KPg0KPiBTb3JyeSwgSSByZWFsaXNlZCBJ
IGhhZCBub3QgcmVzcG9uZGVkIHRvIHRoaXMuIFRoaXMgZG9lcyBpbmRlZWQgbG9vayBsaWtlIGEg
aG9sZSBpbiB0aGUgbG9naWMgaW4gdGhlIG1hc3RlciBicmFuY2guIEkgd2lsbCBhZGQgeW91ciBw
YXRjaCBidXQgc2luY2UgeW91IGRpZCBub3QgYWRkIHlvdXIgUy1vLWIgdG8gdGhlIHBhdGNoIEkg
Y2FuIG9ubHkgY3JlZGl0IHlvdSB3aXRoIGEg4oCYc3VnZ2VzdGVkLWJ54oCZLiBJZiB5b3UgY2Fu
IHBvc3QgYSBwYXRjaCBpbiB0aGUgY29ycmVjdCBmb3JtIChzZWUgaHR0cDovL3dpa2kueGVucHJv
amVjdC5vcmcvd2lraS9TdWJtaXR0aW5nX1hlbl9Qcm9qZWN0X1BhdGNoZXMgZm9yIGd1aWRhbmNl
KSB0aGVuIEkgY2FuIGdpdmUgeW91IGZ1bGwgY3JlZGl0Lg0KPg0KPg0KPg0KPiAgIENoZWVycywN
Cj4NCj4NCj4NCj4gICBQYXVsDQo+DQo+DQo+DQo+IEZyb206IHdpbi1wdi1kZXZlbCBbbWFpbHRv
Ondpbi1wdi1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnPG1haWx0bzp3aW4tcHYt
ZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZz5dIE9uIEJlaGFsZiBPZiBFeXRhbiBI
ZWlkaW5nc2ZlbGQNCj4gU2VudDogMTEgSnVseSAyMDE2IDE1OjA2DQo+IFRvOiB3aW4tcHYtZGV2
ZWxAbGlzdHMueGVucHJvamVjdC5vcmc8bWFpbHRvOndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9q
ZWN0Lm9yZz4NCj4gU3ViamVjdDogW3dpbi1wdi1kZXZlbF0gUGF0Y2ggZm9yIFVuZXhwZWN0ZWQg
SW5pdGlhbCBTdGF0ZXMgb2YgWGVuVmlmDQo+DQo+DQo+DQo+IEhlbGxvLA0KPiBJJ3ZlIG5vdGlj
ZWQgdGhhdCB0aGUgc3VwcG9ydCBmb3IgdW5leHBlY3RlZCBpbml0aWFsIHN0YXRlcyB0aGF0IHdh
cyBhZGRlZCB0byBzdXBwb3J0IGlzY3NpIGJvb3QgaW4gY29tbWl0OiBjOWI2ZTU2ZTczNDJhMWJi
MzFjZmI3OWYyOGI2YTAwZDA1OTU0MDA2LA0KPg0KPg0KPg0KPiBBcyB0aGVyZSB3YXMgcXVpdGUg
YSBiaXQgb2YgcmVmYWN0b3JpbmcgYXJvdW5kIHRoYXQgYXJlYSBJJ3ZlIGNyZWF0ZWQgYSBzbWFs
bCBwYXRjaCB0aGF0IGZpeGVzIHRoZSBpc3N1ZSBhZ2FpbiwNCj4NCj4NCj4NCj4gZGlmZiAtLWdp
dCBhL3NyYy94ZW52aWYvZnJvbnRlbmQuYyBiL3NyYy94ZW52aWYvZnJvbnRlbmQuYw0KPg0KPiBp
bmRleCA1YTI5NzM2Li5hZWY2NjgwIDEwMDY0NA0KPg0KPiAtLS0gYS9zcmMveGVudmlmL2Zyb250
ZW5kLmMNCj4NCj4gKysrIGIvc3JjL3hlbnZpZi9mcm9udGVuZC5jDQo+DQo+IEBAIC0xNTIxLDYg
KzE1MjEsMTEgQEAgRnJvbnRlbmRQcmVwYXJlKA0KPg0KPiAgICAgICAgICAgICAgRnJvbnRlbmRT
ZXRYZW5idXNTdGF0ZShGcm9udGVuZCwNCj4NCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcpOw0KPg0KPiAgICAgICAgICAgICAgYnJl
YWs7DQo+DQo+ICsNCj4NCj4gKyAgICAgICAgICAgICAgICAgICAgY2FzZSBYZW5idXNTdGF0ZUNv
bm5lY3RlZDoNCj4NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJvbnRlbmRT
ZXRYZW5idXNTdGF0ZShGcm9udGVuZCwNCj4NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgWGVuYnVzU3RhdGVDbG9zaW5nKTsNCj4NCj4gKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+DQo+DQo+DQo+ICAgICAgICAgIGNhc2UgWGVu
YnVzU3RhdGVDbG9zaW5nOg0KPg0KPiAgICAgICAgICAgICAgRnJvbnRlbmRTZXRYZW5idXNTdGF0
ZShGcm9udGVuZCwNCj4NCj4gLS0NCj4NCj4gMS45LjUubXN5c2dpdC4wDQo+DQo+DQo+DQo+IENo
ZWVycywNCj4NCj4gRXl0YW4NCg==

--_000_f5f79a9d95d04402b36e5a443cb03e1cAMSPEX02CL03citritenet_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IlByb2dJZCIg
Y29udGVudD0iV29yZC5Eb2N1bWVudCI+DQo8bWV0YSBuYW1lPSJHZW5lcmF0b3IiIGNvbnRlbnQ9
Ik1pY3Jvc29mdCBXb3JkIDE0Ij4NCjxtZXRhIG5hbWU9Ik9yaWdpbmF0b3IiIGNvbnRlbnQ9Ik1p
Y3Jvc29mdCBXb3JkIDE0Ij4NCjxsaW5rIHJlbD0iRmlsZS1MaXN0IiBocmVmPSJjaWQ6ZmlsZWxp
c3QueG1sQDAxRDFFMEY5LjMwMkRFRTEwIj48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOk9m
ZmljZURvY3VtZW50U2V0dGluZ3M+DQo8bzpBbGxvd1BORy8+DQo8bzpEb05vdFJlbHlPbkNTUy8+
DQo8L286T2ZmaWNlRG9jdW1lbnRTZXR0aW5ncz4NCjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYg
Z3RlIG1zbyA5XT48eG1sPg0KPHc6V29yZERvY3VtZW50Pg0KPHc6U3BlbGxpbmdTdGF0ZT5DbGVh
bjwvdzpTcGVsbGluZ1N0YXRlPg0KPHc6VHJhY2tNb3Zlcy8+DQo8dzpUcmFja0Zvcm1hdHRpbmcv
Pg0KPHc6RW52ZWxvcGVWaXMvPg0KPHc6VmFsaWRhdGVBZ2FpbnN0U2NoZW1hcy8+DQo8dzpTYXZl
SWZYTUxJbnZhbGlkPmZhbHNlPC93OlNhdmVJZlhNTEludmFsaWQ+DQo8dzpJZ25vcmVNaXhlZENv
bnRlbnQ+ZmFsc2U8L3c6SWdub3JlTWl4ZWRDb250ZW50Pg0KPHc6QWx3YXlzU2hvd1BsYWNlaG9s
ZGVyVGV4dD5mYWxzZTwvdzpBbHdheXNTaG93UGxhY2Vob2xkZXJUZXh0Pg0KPHc6RG9Ob3RQcm9t
b3RlUUYvPg0KPHc6TGlkVGhlbWVPdGhlcj5FTi1HQjwvdzpMaWRUaGVtZU90aGVyPg0KPHc6TGlk
VGhlbWVBc2lhbj5YLU5PTkU8L3c6TGlkVGhlbWVBc2lhbj4NCjx3OkxpZFRoZW1lQ29tcGxleFNj
cmlwdD5YLU5PTkU8L3c6TGlkVGhlbWVDb21wbGV4U2NyaXB0Pg0KPHc6Q29tcGF0aWJpbGl0eT4N
Cjx3OkRvTm90RXhwYW5kU2hpZnRSZXR1cm4vPg0KPHc6QnJlYWtXcmFwcGVkVGFibGVzLz4NCjx3
OlNwbGl0UGdCcmVha0FuZFBhcmFNYXJrLz4NCjx3OkVuYWJsZU9wZW5UeXBlS2VybmluZy8+DQo8
L3c6Q29tcGF0aWJpbGl0eT4NCjx3OkJyb3dzZXJMZXZlbD5NaWNyb3NvZnRJbnRlcm5ldEV4cGxv
cmVyNDwvdzpCcm93c2VyTGV2ZWw+DQo8bTptYXRoUHI+DQo8bTptYXRoRm9udCBtOnZhbD0iQ2Ft
YnJpYSBNYXRoIi8+DQo8bTpicmtCaW4gbTp2YWw9ImJlZm9yZSIvPg0KPG06YnJrQmluU3ViIG06
dmFsPSImIzQ1Oy0iLz4NCjxtOnNtYWxsRnJhYyBtOnZhbD0ib2ZmIi8+DQo8bTpkaXNwRGVmLz4N
CjxtOmxNYXJnaW4gbTp2YWw9IjAiLz4NCjxtOnJNYXJnaW4gbTp2YWw9IjAiLz4NCjxtOmRlZkpj
IG06dmFsPSJjZW50ZXJHcm91cCIvPg0KPG06d3JhcEluZGVudCBtOnZhbD0iMTQ0MCIvPg0KPG06
aW50TGltIG06dmFsPSJzdWJTdXAiLz4NCjxtOm5hcnlMaW0gbTp2YWw9InVuZE92ciIvPg0KPC9t
Om1hdGhQcj48L3c6V29yZERvY3VtZW50Pg0KPC94bWw+PCFbZW5kaWZdLS0+PCEtLVtpZiBndGUg
bXNvIDldPjx4bWw+DQo8dzpMYXRlbnRTdHlsZXMgRGVmTG9ja2VkU3RhdGU9ImZhbHNlIiBEZWZV
bmhpZGVXaGVuVXNlZD0idHJ1ZSIgRGVmU2VtaUhpZGRlbj0idHJ1ZSIgRGVmUUZvcm1hdD0iZmFs
c2UiIERlZlByaW9yaXR5PSI5OSIgTGF0ZW50U3R5bGVDb3VudD0iMjY3Ij4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iTm9ybWFsIi8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFNlbWlIaWRkZW49ImZhbHNlIiBV
bmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9ImhlYWRpbmcgMSIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI5IiBRRm9ybWF0PSJ0cnVl
IiBOYW1lPSJoZWFkaW5nIDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyAzIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFFGb3JtYXQ9InRydWUiIE5hbWU9ImhlYWRp
bmcgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI5IiBRRm9y
bWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyA2Ii8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFFGb3JtYXQ9InRydWUiIE5h
bWU9ImhlYWRpbmcgNyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDgiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyA5
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjM5IiBOYW1lPSJ0
b2MgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzOSIgTmFt
ZT0idG9jIDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzki
IE5hbWU9InRvYyAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjM5IiBOYW1lPSJ0b2MgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9y
aXR5PSIzOSIgTmFtZT0idG9jIDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iMzkiIE5hbWU9InRvYyA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjM5IiBOYW1lPSJ0b2MgNyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSIzOSIgTmFtZT0idG9jIDgiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzkiIE5hbWU9InRvYyA5Ii8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjM1IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJjYXB0aW9u
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjEwIiBTZW1pSGlk
ZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJU
aXRsZSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIxIiBOYW1l
PSJEZWZhdWx0IFBhcmFncmFwaCBGb250Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjExIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNl
IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJTdWJ0aXRsZSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSIyMiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iU3Ryb25nIi8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjIwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJFbXBoYXNpcyIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI1OSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVu
aGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iVGFibGUgR3JpZCIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iUGxhY2Vob2xkZXIg
VGV4dCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIxIiBTZW1p
SGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1l
PSJObyBTcGFjaW5nIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjYwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdo
dCBTaGFkaW5nIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYx
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBM
aXN0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYyIiBTZW1p
SGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBHcmlkIi8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYzIiBTZW1pSGlkZGVu
PSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAxIi8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY0IiBTZW1pSGlkZGVu
PSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAyIi8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY1IiBTZW1pSGlkZGVu
PSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAxIi8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY2IiBTZW1pSGlkZGVuPSJm
YWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAyIi8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY3IiBTZW1pSGlkZGVuPSJmYWxz
ZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAxIi8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY4IiBTZW1pSGlkZGVuPSJmYWxzZSIg
VW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAyIi8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5o
aWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAzIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJEYXJrIExpc3QiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNl
ZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIFNoYWRpbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNl
ZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIExpc3QiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9
ImZhbHNlIiBQcmlvcml0eT0iNzMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0i
ZmFsc2UiIE5hbWU9IkNvbG9yZnVsIEdyaWQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNjAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFs
c2UiIE5hbWU9IkxpZ2h0IFNoYWRpbmcgQWNjZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNl
ZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IExpc3QgQWNjZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IEdyaWQgQWNjZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVX
aGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDEgQWNjZW50IDEiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIgQWNjZW50IDEi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDEgQWNj
ZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0i
ZmFsc2UiIE5hbWU9IlJldmlzaW9uIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjM0IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBR
Rm9ybWF0PSJ0cnVlIiBOYW1lPSJMaXN0IFBhcmFncmFwaCIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSIyOSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iUXVvdGUiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVX
aGVuVXNlZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9IkludGVuc2UgUXVvdGUiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDIgQWNjZW50IDEi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjciIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDEgQWNj
ZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjgiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlk
IDIgQWNjZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NjkiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1
bSBHcmlkIDMgQWNjZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNzAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9
IkRhcmsgTGlzdCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFBy
aW9yaXR5PSI3MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFt
ZT0iQ29sb3JmdWwgU2hhZGluZyBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iQ29sb3JmdWwgTGlzdCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQgU2hhZGluZyBBY2NlbnQgMiIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MSIgU2VtaUhpZGRlbj0iZmFsc2Ui
IFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQgTGlzdCBBY2NlbnQgMiIvPg0KPHc6
THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MiIgU2VtaUhpZGRlbj0iZmFs
c2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQgR3JpZCBBY2NlbnQgMiIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MyIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMSBBY2Nl
bnQgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NCIgU2Vt
aUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRp
bmcgMiBBY2NlbnQgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI2NSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVk
aXVtIExpc3QgMSBBY2NlbnQgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFBy
aW9yaXR5PSI2NiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFt
ZT0iTWVkaXVtIExpc3QgMiBBY2NlbnQgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI2NyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iTWVkaXVtIEdyaWQgMSBBY2NlbnQgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI2OCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMiBBY2NlbnQgMiIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdo
ZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMyBBY2NlbnQgMiIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVu
aGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iRGFyayBMaXN0IEFjY2VudCAyIi8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcxIiBTZW1pSGlkZGVuPSJmYWxzZSIg
VW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBTaGFkaW5nIEFjY2VudCAyIi8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcyIiBTZW1pSGlkZGVu
PSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBMaXN0IEFjY2Vu
dCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjczIiBTZW1p
SGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBHcmlk
IEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYw
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBT
aGFkaW5nIEFjY2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjYxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJM
aWdodCBMaXN0IEFjY2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJp
b3JpdHk9IjYyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1l
PSJMaWdodCBHcmlkIEFjY2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjYzIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBO
YW1lPSJNZWRpdW0gU2hhZGluZyAxIEFjY2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjY0IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAyIEFjY2VudCAzIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY1IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAxIEFjY2VudCAzIi8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY2IiBTZW1pSGlkZGVuPSJmYWxzZSIg
VW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAyIEFjY2VudCAzIi8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY3IiBTZW1pSGlkZGVuPSJm
YWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAxIEFjY2VudCAz
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY4IiBTZW1pSGlk
ZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAyIEFj
Y2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY5IiBT
ZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3Jp
ZCAzIEFjY2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjcwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJEYXJr
IExpc3QgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNzEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNv
bG9yZnVsIFNoYWRpbmcgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBQcmlvcml0eT0iNzIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2Ui
IE5hbWU9IkNvbG9yZnVsIExpc3QgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9
ImZhbHNlIiBQcmlvcml0eT0iNzMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0i
ZmFsc2UiIE5hbWU9IkNvbG9yZnVsIEdyaWQgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IFNoYWRpbmcgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhp
ZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IExpc3QgQWNjZW50IDQiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjIiIFNlbWlIaWRkZW49ImZhbHNlIiBV
bmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IEdyaWQgQWNjZW50IDQiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjMiIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDEgQWNjZW50IDQi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIg
QWNjZW50IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUi
IFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBM
aXN0IDEgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNjYiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1l
ZGl1bSBMaXN0IDIgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iNjciIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5h
bWU9Ik1lZGl1bSBHcmlkIDEgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNjgiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFs
c2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDIgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjkiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNl
ZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDMgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVX
aGVuVXNlZD0iZmFsc2UiIE5hbWU9IkRhcmsgTGlzdCBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgU2hhZGluZyBBY2NlbnQgNCIvPg0KPHc6
THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFs
c2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgTGlzdCBBY2NlbnQgNCIv
Pg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRl
bj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCBBY2Nl
bnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MCIgU2Vt
aUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQgU2hhZGlu
ZyBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2
MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQg
TGlzdCBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI2MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGln
aHQgR3JpZCBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9y
aXR5PSI2MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0i
TWVkaXVtIFNoYWRpbmcgMSBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI2NCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMiBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3QgMSBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3QgMiBBY2NlbnQgNSIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NyIgU2VtaUhpZGRlbj0iZmFsc2Ui
IFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMSBBY2NlbnQgNSIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OCIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMiBBY2NlbnQg
NSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OSIgU2VtaUhp
ZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMyBB
Y2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MCIg
U2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iRGFyayBMaXN0
IEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9Ijcx
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1
bCBTaGFkaW5nIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJp
b3JpdHk9IjcyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1l
PSJDb2xvcmZ1bCBMaXN0IEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjczIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNl
IiBOYW1lPSJDb2xvcmZ1bCBHcmlkIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjYwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBOYW1lPSJMaWdodCBTaGFkaW5nIEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBMaXN0IEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBHcmlkIEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYzIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5o
aWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAxIEFjY2VudCA2Ii8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY0IiBTZW1pSGlkZGVuPSJm
YWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAyIEFjY2Vu
dCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY1IiBTZW1p
SGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAx
IEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY2
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0g
TGlzdCAyIEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjY3IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJN
ZWRpdW0gR3JpZCAxIEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjY4IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBO
YW1lPSJNZWRpdW0gR3JpZCAyIEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjY5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZh
bHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAzIEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9j
a2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVz
ZWQ9ImZhbHNlIiBOYW1lPSJEYXJrIExpc3QgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIFNoYWRpbmcgQWNjZW50IDYiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzIiIFNlbWlIaWRkZW49ImZhbHNlIiBV
bmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIExpc3QgQWNjZW50IDYiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzMiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIEdyaWQgQWNjZW50IDYi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMTkiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9IlN1
YnRsZSBFbXBoYXNpcyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSIyMSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0i
dHJ1ZSIgTmFtZT0iSW50ZW5zZSBFbXBoYXNpcyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSIzMSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iU3VidGxlIFJlZmVyZW5jZSIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzMiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVu
aGlkZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iSW50ZW5zZSBSZWZlcmVu
Y2UiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzMiIFNlbWlI
aWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9
IkJvb2sgVGl0bGUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
MzciIE5hbWU9IkJpYmxpb2dyYXBoeSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSIzOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iVE9DIEhlYWRpbmciLz4NCjwvdzpM
YXRlbnRTdHlsZXM+DQo8L3htbD48IVtlbmRpZl0tLT48c3R5bGU+PCEtLQ0KLyogRm9udCBEZWZp
bml0aW9ucyAqLw0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpDYWxpYnJpOw0KCXBhbm9zZS0x
OjIgMTUgNSAyIDIgMiA0IDMgMiA0Ow0KCW1zby1mb250LWNoYXJzZXQ6MDsNCgltc28tZ2VuZXJp
Yy1mb250LWZhbWlseTpzd2lzczsNCgltc28tZm9udC1waXRjaDp2YXJpYWJsZTsNCgltc28tZm9u
dC1zaWduYXR1cmU6LTUzNjg3MDE0NSAxMDczNzg2MTExIDEgMCA0MTUgMDt9DQpAZm9udC1mYWNl
DQoJe2ZvbnQtZmFtaWx5OlRhaG9tYTsNCglwYW5vc2UtMToyIDExIDYgNCAzIDUgNCA0IDIgNDsN
Cgltc28tZm9udC1jaGFyc2V0OjA7DQoJbXNvLWdlbmVyaWMtZm9udC1mYW1pbHk6c3dpc3M7DQoJ
bXNvLWZvbnQtcGl0Y2g6dmFyaWFibGU7DQoJbXNvLWZvbnQtc2lnbmF0dXJlOi01MjAwODE2NjUg
LTEwNzM3MTcxNTcgNDEgMCA2NjA0NyAwO30NCi8qIFN0eWxlIERlZmluaXRpb25zICovDQpwLk1z
b05vcm1hbCwgbGkuTXNvTm9ybWFsLCBkaXYuTXNvTm9ybWFsDQoJe21zby1zdHlsZS11bmhpZGU6
bm87DQoJbXNvLXN0eWxlLXFmb3JtYXQ6eWVzOw0KCW1zby1zdHlsZS1wYXJlbnQ6IiI7DQoJbWFy
Z2luOjBjbTsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJbXNvLXBhZ2luYXRpb246d2lkb3ct
b3JwaGFuOw0KCWZvbnQtc2l6ZToxMi4wcHQ7DQoJZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21h
biIsInNlcmlmIjsNCgltc28tZmFyZWFzdC1mb250LWZhbWlseTpDYWxpYnJpO30NCmE6bGluaywg
c3Bhbi5Nc29IeXBlcmxpbmsNCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOmJsdWU7
DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsNCgl0ZXh0LXVuZGVybGluZTpzaW5nbGU7fQ0K
YTp2aXNpdGVkLCBzcGFuLk1zb0h5cGVybGlua0ZvbGxvd2VkDQoJe21zby1zdHlsZS1ub3Nob3c6
eWVzOw0KCW1zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjpwdXJwbGU7DQoJdGV4dC1kZWNv
cmF0aW9uOnVuZGVybGluZTsNCgl0ZXh0LXVuZGVybGluZTpzaW5nbGU7fQ0KcC5Nc29BY2V0YXRl
LCBsaS5Nc29BY2V0YXRlLCBkaXYuTXNvQWNldGF0ZQ0KCXttc28tc3R5bGUtbm9zaG93OnllczsN
Cgltc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJbXNvLXN0eWxlLWxpbms6IkJhbGxvb24gVGV4dCBD
aGFyIjsNCgltYXJnaW46MGNtOw0KCW1hcmdpbi1ib3R0b206LjAwMDFwdDsNCgltc28tcGFnaW5h
dGlvbjp3aWRvdy1vcnBoYW47DQoJZm9udC1zaXplOjguMHB0Ow0KCWZvbnQtZmFtaWx5OiJUYWhv
bWEiLCJzYW5zLXNlcmlmIjsNCgltc28tZmFyZWFzdC1mb250LWZhbWlseTpDYWxpYnJpO30NCnNw
YW4uRW1haWxTdHlsZTE3DQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsOw0KCW1zby1zdHlsZS1u
b3Nob3c6eWVzOw0KCW1zby1zdHlsZS11bmhpZGU6bm87DQoJbXNvLWFuc2ktZm9udC1zaXplOjEx
LjBwdDsNCgltc28tYmlkaS1mb250LXNpemU6MTEuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJp
Iiwic2Fucy1zZXJpZiI7DQoJbXNvLWFzY2lpLWZvbnQtZmFtaWx5OkNhbGlicmk7DQoJbXNvLWZh
cmVhc3QtZm9udC1mYW1pbHk6Q2FsaWJyaTsNCgltc28taGFuc2ktZm9udC1mYW1pbHk6Q2FsaWJy
aTsNCgltc28tYmlkaS1mb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIjsNCgljb2xvcjojMUY0
OTdEO30NCnNwYW4uRW1haWxTdHlsZTE4DQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsLXJlcGx5
Ow0KCW1zby1zdHlsZS1ub3Nob3c6eWVzOw0KCW1zby1zdHlsZS11bmhpZGU6bm87DQoJbXNvLWFu
c2ktZm9udC1zaXplOjExLjBwdDsNCgltc28tYmlkaS1mb250LXNpemU6MTEuMHB0Ow0KCWZvbnQt
ZmFtaWx5OiJDYWxpYnJpIiwic2Fucy1zZXJpZiI7DQoJbXNvLWFzY2lpLWZvbnQtZmFtaWx5OkNh
bGlicmk7DQoJbXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6Q2FsaWJyaTsNCgltc28taGFuc2ktZm9u
dC1mYW1pbHk6Q2FsaWJyaTsNCgltc28tYmlkaS1mb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFu
IjsNCgljb2xvcjojMUY0OTdEO30NCnNwYW4uQmFsbG9vblRleHRDaGFyDQoJe21zby1zdHlsZS1u
YW1lOiJCYWxsb29uIFRleHQgQ2hhciI7DQoJbXNvLXN0eWxlLW5vc2hvdzp5ZXM7DQoJbXNvLXN0
eWxlLXByaW9yaXR5Ojk5Ow0KCW1zby1zdHlsZS11bmhpZGU6bm87DQoJbXNvLXN0eWxlLWxvY2tl
ZDp5ZXM7DQoJbXNvLXN0eWxlLWxpbms6IkJhbGxvb24gVGV4dCI7DQoJbXNvLWFuc2ktZm9udC1z
aXplOjguMHB0Ow0KCW1zby1iaWRpLWZvbnQtc2l6ZTo4LjBwdDsNCglmb250LWZhbWlseToiVGFo
b21hIiwic2Fucy1zZXJpZiI7DQoJbXNvLWFzY2lpLWZvbnQtZmFtaWx5OlRhaG9tYTsNCgltc28t
aGFuc2ktZm9udC1mYW1pbHk6VGFob21hOw0KCW1zby1iaWRpLWZvbnQtZmFtaWx5OlRhaG9tYTsN
Cgltc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1HQjt9DQouTXNvQ2hwRGVmYXVsdA0KCXttc28tc3R5
bGUtdHlwZTpleHBvcnQtb25seTsNCgltc28tZGVmYXVsdC1wcm9wczp5ZXM7DQoJZm9udC1zaXpl
OjEwLjBwdDsNCgltc28tYW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCW1zby1iaWRpLWZvbnQtc2l6
ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLCJzYW5zLXNlcmlmIjsNCgltc28tYXNj
aWktZm9udC1mYW1pbHk6Q2FsaWJyaTsNCgltc28tZmFyZWFzdC1mb250LWZhbWlseTpDYWxpYnJp
Ow0KCW1zby1oYW5zaS1mb250LWZhbWlseTpDYWxpYnJpOw0KCW1zby1mYXJlYXN0LWxhbmd1YWdl
OkVOLVVTO30NCkBwYWdlIFdvcmRTZWN0aW9uMQ0KCXtzaXplOjYxMi4wcHQgNzkyLjBwdDsNCglt
YXJnaW46NzIuMHB0IDcyLjBwdCA3Mi4wcHQgNzIuMHB0Ow0KCW1zby1oZWFkZXItbWFyZ2luOjM2
LjBwdDsNCgltc28tZm9vdGVyLW1hcmdpbjozNi4wcHQ7DQoJbXNvLXBhcGVyLXNvdXJjZTowO30N
CmRpdi5Xb3JkU2VjdGlvbjENCgl7cGFnZTpXb3JkU2VjdGlvbjE7fQ0KLS0+PC9zdHlsZT48IS0t
W2lmIGd0ZSBtc28gMTBdPjxzdHlsZT4vKiBTdHlsZSBEZWZpbml0aW9ucyAqLw0KdGFibGUuTXNv
Tm9ybWFsVGFibGUNCgl7bXNvLXN0eWxlLW5hbWU6IlRhYmxlIE5vcm1hbCI7DQoJbXNvLXRzdHls
ZS1yb3diYW5kLXNpemU6MDsNCgltc28tdHN0eWxlLWNvbGJhbmQtc2l6ZTowOw0KCW1zby1zdHls
ZS1ub3Nob3c6eWVzOw0KCW1zby1zdHlsZS1wcmlvcml0eTo5OTsNCgltc28tc3R5bGUtcGFyZW50
OiIiOw0KCW1zby1wYWRkaW5nLWFsdDowY20gNS40cHQgMGNtIDUuNHB0Ow0KCW1zby1wYXJhLW1h
cmdpbjowY207DQoJbXNvLXBhcmEtbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0KCW1zby1wYWdpbmF0
aW9uOndpZG93LW9ycGhhbjsNCglmb250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxp
YnJpIiwic2Fucy1zZXJpZiI7DQoJbXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVM7fQ0KPC9zdHls
ZT48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlZGVmYXVsdHMg
djpleHQ9ImVkaXQiIHNwaWRtYXg9IjEwMjYiIC8+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lm
IGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlbGF5b3V0IHY6ZXh0PSJlZGl0Ij4NCjxvOmlkbWFw
IHY6ZXh0PSJlZGl0IiBkYXRhPSIxIiAvPg0KPC9vOnNoYXBlbGF5b3V0PjwveG1sPjwhW2VuZGlm
XS0tPg0KPC9oZWFkPg0KPGJvZHkgbGFuZz0iRU4tR0IiIGxpbms9ImJsdWUiIHZsaW5rPSJwdXJw
bGUiIHN0eWxlPSJ0YWItaW50ZXJ2YWw6MzYuMHB0Ij4NCjxkaXYgY2xhc3M9IldvcmRTZWN0aW9u
MSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIg
ZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1mYXJlYXN0LWZv
bnQtZmFtaWx5OkNhbGlicmk7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJv
bWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPkFwcGxpZWQgbm93LjxvOnA+PC9vOnA+PC9zcGFuPjwv
Zm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFm
NDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1mYXJl
YXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMg
TmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwv
Zm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFm
NDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1mYXJl
YXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMg
TmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46
eWVzIj4mbmJzcDsNCjwvc3Bhbj5QYXVsPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJD
YWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWZhcmVhc3QtZm9udC1mYW1p
bHk6Q2FsaWJyaTttc28tYmlkaS1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVv
dDs7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxk
aXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlkIGJsdWUgMS41cHQ7cGFkZGlu
ZzowY20gMGNtIDBjbSA0LjBwdCI+DQo8ZGl2Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9y
ZGVyLXRvcDpzb2xpZCAjQjVDNERGIDEuMHB0O3BhZGRpbmc6My4wcHQgMGNtIDBjbSAwY20iPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iVGFob21hIj48c3Bh
biBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
VGFob21hJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWZhcmVhc3QtZm9udC1mYW1p
bHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O21zby1hbnNpLWxhbmd1YWdlOkVOLVVTO2Zv
bnQtd2VpZ2h0OmJvbGQiPkZyb206PC9zcGFuPjwvZm9udD48L2I+PGZvbnQgc2l6ZT0iMiIgZmFj
ZT0iVGFob21hIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7VGFob21hJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWZh
cmVhc3QtZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O21zby1hbnNpLWxh
bmd1YWdlOkVOLVVTIj4NCiB3aW4tcHYtZGV2ZWwgW21haWx0bzp3aW4tcHYtZGV2ZWwtYm91bmNl
c0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gPGI+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQi
Pk9uIEJlaGFsZiBPZg0KPC9zcGFuPjwvYj5QYXVsIER1cnJhbnQ8YnI+DQo8Yj48c3BhbiBzdHls
ZT0iZm9udC13ZWlnaHQ6Ym9sZCI+U2VudDo8L3NwYW4+PC9iPiAxOCBKdWx5IDIwMTYgMTA6MzE8
YnI+DQo8Yj48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+VG86PC9zcGFuPjwvYj4gRXl0
YW4gSGVpZGluZ3NmZWxkPGJyPg0KPGI+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkNj
Ojwvc3Bhbj48L2I+IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZzxicj4NCjxiPjxz
cGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5TdWJqZWN0Ojwvc3Bhbj48L2I+IFJlOiBbd2lu
LXB2LWRldmVsXSBbWEVOVklGXSBQYXRjaCBmb3IgVW5leHBlY3RlZCBJbml0aWFsIFN0YXRlcyBv
ZiBYZW5WaWY8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwv
Zm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFm
NDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMx
RjQ5N0QiPknigJlsbCByZS13b3JkIHRoZSBjb21taXQgbWVzc2FnZSBhIGJpdCBzbyB3ZSBnZXQg
YSBuaWNlIHRpdGxlIGluIHRoZSBzaG9ydGxvZywgYnV0IHRoZSBTLW8tYiB3YXMgd2hhdCBJIG5l
ZWRlZA0KIHNvIEnigJlsbCBjb21taXQgdGhpcyB0b2RheSBob3BlZnVsbHkuIFRoYW5rcyE8bzpw
PjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6
ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJp
ZiZxdW90Oztjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9w
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZh
Y2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj48
c3BhbiBzdHlsZT0ibXNvLXNwYWNlcnVuOnllcyI+Jm5ic3A7DQo8L3NwYW4+UGF1bDxvOnA+PC9v
OnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIy
IiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1
b3Q7O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8
ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCBibHVlIDEuNXB0O3BhZGRp
bmc6MGNtIDBjbSAwY20gNC4wcHQiPg0KPGRpdj4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2Jv
cmRlci10b3A6c29saWQgI0I1QzRERiAxLjBwdDtwYWRkaW5nOjMuMHB0IDBjbSAwY20gMGNtIj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tb3V0bGluZS1sZXZlbDoxIj48Yj48Zm9u
dCBzaXplPSIyIiBmYWNlPSJUYWhvbWEiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1z
aXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtUYWhvbWEmcXVvdDssJnF1b3Q7c2Fucy1zZXJp
ZiZxdW90Ozttc28tZmFyZWFzdC1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVv
dDs7bXNvLWFuc2ktbGFuZ3VhZ2U6RU4tVVM7Zm9udC13ZWlnaHQ6Ym9sZCI+RnJvbTo8L3NwYW4+
PC9mb250PjwvYj48Zm9udCBzaXplPSIyIiBmYWNlPSJUYWhvbWEiPjxzcGFuIGxhbmc9IkVOLVVT
IiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtUYWhvbWEmcXVvdDss
JnF1b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tZmFyZWFzdC1mb250LWZhbWlseTomcXVvdDtUaW1l
cyBOZXcgUm9tYW4mcXVvdDs7bXNvLWFuc2ktbGFuZ3VhZ2U6RU4tVVMiPg0KIEV5dGFuIEhlaWRp
bmdzZmVsZCBbPGEgaHJlZj0ibWFpbHRvOmV5dGFuaEBnbWFpbC5jb20iPm1haWx0bzpleXRhbmhA
Z21haWwuY29tPC9hPl0NCjxicj4NCjxiPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5T
ZW50Ojwvc3Bhbj48L2I+IDE4IEp1bHkgMjAxNiAxMDoyMjxicj4NCjxiPjxzcGFuIHN0eWxlPSJm
b250LXdlaWdodDpib2xkIj5Ubzo8L3NwYW4+PC9iPiBQYXVsIER1cnJhbnQ8YnI+DQo8Yj48c3Bh
biBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+Q2M6PC9zcGFuPjwvYj4gPGEgaHJlZj0ibWFpbHRv
Ondpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyI+DQp3aW4tcHYtZGV2ZWxAbGlzdHMu
eGVucHJvamVjdC5vcmc8L2E+PGJyPg0KPGI+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQi
PlN1YmplY3Q6PC9zcGFuPjwvYj4gUmU6IFt3aW4tcHYtZGV2ZWxdIFtYRU5WSUZdIFBhdGNoIGZv
ciBVbmV4cGVjdGVkIEluaXRpYWwgU3RhdGVzIG9mIFhlblZpZjxvOnA+PC9vOnA+PC9zcGFuPjwv
Zm9udD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6
ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBw
dCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWJvdHRvbToxMi4wcHQiPjxmb250IHNpemU9IjMiIGZh
Y2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPlRyeWlu
ZyB0byBnZXQgdGhlIGZvcm1hdCByaWdodCwgYnV0IGlmIG5vdCBpdCdzIG9rIHdpdGggYSAmcXVv
dDtzdWdnZXN0ZWQtYnkmcXVvdDsuPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9t
YW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5SZS1pbnRyb2R1Y2luZyB0aGUgbG9n
aWMgZnJvbSBjb21taXQgYzliNmU1NmU3MzQyYTFiYjMxY2ZiNzlmMjhiNmEwMGQwNTk1NDAwNiwg
dG8gaGFuZGxlIGEgYmFja2VuZCB0aGF0IGlzIGFscmVhZHkgY29ubmVjdGVkIChmb3IgY2FzZXMg
d2hlcmUgV2luZG93cyBpcyBib290ZWQgdmlhIGlTQ1NJKTxvOnA+PC9vOnA+PC9zcGFuPjwvZm9u
dD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIz
IiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij48
bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTIuMHB0Ij5TaWduZWQtb2ZmLWJ5OiBFeXRhbiBIZWlkaW5nc2ZlbGQgJmx0
OzxhIGhyZWY9Im1haWx0bzpleXRhbmhAZ21haWwuY29tIj5leXRhbmhAZ21haWwuY29tPC9hPiZn
dDs8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMi4wcHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJv
bWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+ZGlmZiAtLWdpdCBhL3NyYy94ZW52
aWYvZnJvbnRlbmQuYyBiL3NyYy94ZW52aWYvZnJvbnRlbmQuYzxicj4NCmluZGV4IDVhMjk3MzYu
LmFlZjY2ODAgMTAwNjQ0PGJyPg0KLS0tIGEvc3JjL3hlbnZpZi9mcm9udGVuZC5jPGJyPg0KJiM0
MzsmIzQzOyYjNDM7IGIvc3JjL3hlbnZpZi9mcm9udGVuZC5jPGJyPg0KQEAgLTE1MjEsNiAmIzQz
OzE1MjEsMTEgQEAgRnJvbnRlbmRQcmVwYXJlKDxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO0Zyb250ZW5kU2V0WGVuYnVzU3RhdGUoRnJvbnRlbmQs
PGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcpOzxicj4NCiZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2JyZWFrOzxicj4NCiYjNDM7
PGJyPg0KJiM0MzsgY2FzZSBYZW5idXNTdGF0ZUNvbm5lY3RlZDo8YnI+DQomIzQzOyBGcm9udGVu
ZFNldFhlbmJ1c1N0YXRlKEZyb250ZW5kLDxicj4NCiYjNDM7IFhlbmJ1c1N0YXRlQ2xvc2luZyk7
PGJyPg0KJiM0MzsgYnJlYWs7PGJyPg0KJm5ic3A7PGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwO2Nhc2UgWGVuYnVzU3RhdGVDbG9zaW5nOjxicj4NCiZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO0Zyb250ZW5kU2V0WGVuYnVzU3RhdGUo
RnJvbnRlbmQsPGJyPg0KPGJyPg0KT24gTW9uLCBKdWwgMTgsIDIwMTYgYXQgMTE6NDQgQU0sIFBh
dWwgRHVycmFudCAmbHQ7PGEgaHJlZj0ibWFpbHRvOlBhdWwuRHVycmFudEBjaXRyaXguY29tIj5Q
YXVsLkR1cnJhbnRAY2l0cml4LmNvbTwvYT4mZ3Q7IHdyb3RlOjxicj4NCiZndDs8YnI+DQomZ3Q7
IFNvcnJ5LCBJIHJlYWxpc2VkIEkgaGFkIG5vdCByZXNwb25kZWQgdG8gdGhpcy4gVGhpcyBkb2Vz
IGluZGVlZCBsb29rIGxpa2UgYSBob2xlIGluIHRoZSBsb2dpYyBpbiB0aGUgbWFzdGVyIGJyYW5j
aC4gSSB3aWxsIGFkZCB5b3VyIHBhdGNoIGJ1dCBzaW5jZSB5b3UgZGlkIG5vdCBhZGQgeW91ciBT
LW8tYiB0byB0aGUgcGF0Y2ggSSBjYW4gb25seSBjcmVkaXQgeW91IHdpdGggYSDigJhzdWdnZXN0
ZWQtYnnigJkuIElmIHlvdSBjYW4gcG9zdCBhIHBhdGNoDQogaW4gdGhlIGNvcnJlY3QgZm9ybSAo
c2VlIDxhIGhyZWY9Imh0dHA6Ly93aWtpLnhlbnByb2plY3Qub3JnL3dpa2kvU3VibWl0dGluZ19Y
ZW5fUHJvamVjdF9QYXRjaGVzIj4NCmh0dHA6Ly93aWtpLnhlbnByb2plY3Qub3JnL3dpa2kvU3Vi
bWl0dGluZ19YZW5fUHJvamVjdF9QYXRjaGVzPC9hPiBmb3IgZ3VpZGFuY2UpIHRoZW4gSSBjYW4g
Z2l2ZSB5b3UgZnVsbCBjcmVkaXQuPGJyPg0KJmd0Ozxicj4NCiZndDsgJm5ic3A7PGJyPg0KJmd0
Ozxicj4NCiZndDsgJm5ic3A7IENoZWVycyw8YnI+DQomZ3Q7PGJyPg0KJmd0OyAmbmJzcDs8YnI+
DQomZ3Q7PGJyPg0KJmd0OyAmbmJzcDsgUGF1bDxicj4NCiZndDs8YnI+DQomZ3Q7ICZuYnNwOzxi
cj4NCiZndDs8YnI+DQomZ3Q7IEZyb206IHdpbi1wdi1kZXZlbCBbbWFpbHRvOjxhIGhyZWY9Im1h
aWx0bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZyI+d2luLXB2LWRl
dmVsLWJvdW5jZXNAbGlzdHMueGVucHJvamVjdC5vcmc8L2E+XSBPbiBCZWhhbGYgT2YgRXl0YW4g
SGVpZGluZ3NmZWxkPGJyPg0KJmd0OyBTZW50OiAxMSBKdWx5IDIwMTYgMTU6MDY8YnI+DQomZ3Q7
IFRvOiA8YSBocmVmPSJtYWlsdG86d2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIj53
aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmc8L2E+PGJyPg0KJmd0OyBTdWJqZWN0OiBb
d2luLXB2LWRldmVsXSBQYXRjaCBmb3IgVW5leHBlY3RlZCBJbml0aWFsIFN0YXRlcyBvZiBYZW5W
aWY8YnI+DQomZ3Q7PGJyPg0KJmd0OyAmbmJzcDs8YnI+DQomZ3Q7PGJyPg0KJmd0OyBIZWxsbyw8
YnI+DQomZ3Q7IEkndmUgbm90aWNlZCB0aGF0IHRoZSBzdXBwb3J0IGZvciB1bmV4cGVjdGVkIGlu
aXRpYWwgc3RhdGVzIHRoYXQgd2FzIGFkZGVkIHRvIHN1cHBvcnQgaXNjc2kgYm9vdCBpbiBjb21t
aXQ6IGM5YjZlNTZlNzM0MmExYmIzMWNmYjc5ZjI4YjZhMDBkMDU5NTQwMDYsPGJyPg0KJmd0Ozxi
cj4NCiZndDsgJm5ic3A7PGJyPg0KJmd0Ozxicj4NCiZndDsgQXMgdGhlcmUgd2FzIHF1aXRlIGEg
Yml0IG9mIHJlZmFjdG9yaW5nIGFyb3VuZCB0aGF0IGFyZWEgSSd2ZSBjcmVhdGVkIGEgc21hbGwg
cGF0Y2ggdGhhdCBmaXhlcyB0aGUgaXNzdWUgYWdhaW4sPGJyPg0KJmd0Ozxicj4NCiZndDsgJm5i
c3A7PGJyPg0KJmd0Ozxicj4NCiZndDsgZGlmZiAtLWdpdCBhL3NyYy94ZW52aWYvZnJvbnRlbmQu
YyBiL3NyYy94ZW52aWYvZnJvbnRlbmQuYzxicj4NCiZndDs8YnI+DQomZ3Q7IGluZGV4IDVhMjk3
MzYuLmFlZjY2ODAgMTAwNjQ0PGJyPg0KJmd0Ozxicj4NCiZndDsgLS0tIGEvc3JjL3hlbnZpZi9m
cm9udGVuZC5jPGJyPg0KJmd0Ozxicj4NCiZndDsgJiM0MzsmIzQzOyYjNDM7IGIvc3JjL3hlbnZp
Zi9mcm9udGVuZC5jPGJyPg0KJmd0Ozxicj4NCiZndDsgQEAgLTE1MjEsNiAmIzQzOzE1MjEsMTEg
QEAgRnJvbnRlbmRQcmVwYXJlKDxicj4NCiZndDs8YnI+DQomZ3Q7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO0Zyb250ZW5kU2V0WGVuYnVzU3RhdGUoRnJv
bnRlbmQsPGJyPg0KJmd0Ozxicj4NCiZndDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgWGVuYnVzU3RhdGVJbml0aWFs
aXNpbmcpOzxicj4NCiZndDs8YnI+DQomZ3Q7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwO2JyZWFrOzxicj4NCiZndDs8YnI+DQomZ3Q7ICYjNDM7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
IDxicj4NCiZndDs8YnI+DQomZ3Q7ICYjNDM7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2Nhc2UgWGVuYnVzU3RhdGVD
b25uZWN0ZWQ6PGJyPg0KJmd0Ozxicj4NCiZndDsgJiM0MzsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7RnJvbnRlbmRTZXRYZW5idXNTdGF0ZShG
cm9udGVuZCw8YnI+DQomZ3Q7PGJyPg0KJmd0OyAmIzQzOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDtYZW5idXNTdGF0ZUNsb3NpbmcpOzxicj4NCiZndDs8YnI+DQomZ3Q7
ICYjNDM7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwO2JyZWFrOzxicj4NCiZndDs8YnI+DQomZ3Q7ICZuYnNwOzxicj4NCiZndDs8YnI+DQomZ3Q7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtjYXNlIFhlbmJ1c1N0YXRlQ2xvc2lu
Zzo8YnI+DQomZ3Q7PGJyPg0KJmd0OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDtGcm9udGVuZFNldFhlbmJ1c1N0YXRlKEZyb250ZW5kLDxicj4NCiZndDs8
YnI+DQomZ3Q7IC0tIDxicj4NCiZndDs8YnI+DQomZ3Q7IDEuOS41Lm1zeXNnaXQuMDxicj4NCiZn
dDs8YnI+DQomZ3Q7ICZuYnNwOzxicj4NCiZndDs8YnI+DQomZ3Q7IENoZWVycyw8YnI+DQomZ3Q7
PGJyPg0KJmd0OyBFeXRhbjxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjwv
ZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2JvZHk+DQo8L2h0bWw+DQo=

--_000_f5f79a9d95d04402b36e5a443cb03e1cAMSPEX02CL03citritenet_--


--===============5093947895050528481==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============5093947895050528481==--


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 18 12:35:26 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 18 Jul 2016 12:35:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bP7ld-0002q1-4s; Mon, 18 Jul 2016 12:35:25 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=0001784ad=Paul.Durrant@citrix.com>)
 id 1bP7lb-0002pp-Ac
 for win-pv-devel@lists.xenproject.org; Mon, 18 Jul 2016 12:35:23 +0000
Received: from [85.158.139.211] by server-11.bemta-5.messagelabs.com id
 83/FD-12614-A0DCC875; Mon, 18 Jul 2016 12:35:22 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprCKsWRWlGSWpSXmKPExsWyU9JRQpfzbE+
 4wbm96hZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y+LOXawFHz8yVbxr2cPUwPj3DVMXIyeHhECQ
 xJJnm1lAbDYBHYmlR+eDxUWA4q8XvmUEsZkFvCWunjwIZgsLBEucavkKZHMA1YRIbJ0MZVpJf
 Gh0AalgEVCV+PPgBBuIzSvgLtH2/ylrFyMXh5BAL6PEq5szwMZwCnhIHHj1khXEZhSQlfjSuJ
 oZYpW4xK0n86FOE5BYsuc8M4QtKvHy8T9WCNtAYuvSfSwQ9bkSd349YYZYJihxcuYTsLiQgIr
 ElscHoHq5JVZ+/sMygVFkFpIVs5C0z0LSPgvoHWYBTYn1u/QhShQlpnQ/ZIewNSRa58xlRxZf
 wMi+ilGjOLWoLLVI19BSL6koMz2jJDcxM0fX0MBULze1uDgxPTUnMalYLzk/dxMjMLbqGRgYd
 zA+6vc7xCjJwaQkymu1oCdciC8pP6UyI7E4I76oNCe1+BCjDAeHkgTvo1NAOcGi1PTUirTMHG
 CUw6QlOHiURHh/nwZK8xYXJOYWZ6ZDpE4xKkqJ804CSQiAJDJK8+DaYInlEqOslDAvIwMDgxB
 PQWpRbmYJqvwrRnEORiVh3jMgU3gy80rgpr8CWswEtNhAtRtkcUkiQkqqgXHiz+tuAX/Srppr
 9//e/8Oi3TbPMHtWhbfXuo3vGP0ZH3+v4dFOmyG67qmMZfKEAu0LKx97MYqbh92+VfZDRfvAP
 NGZEjNjRUV+/yhyD7/YqlS3StU2/9a/esUc3l5DgWPHD0xce43Fn/Hn4ZgQmY/Tf7lvNnHbxP
 Xxvo379cKrkY/YtgmoblZiKc5INNRiLipOBADvMZBtJwMAAA==
X-Env-Sender: prvs=0001784ad=Paul.Durrant@citrix.com
X-Msg-Ref: server-14.tower-206.messagelabs.com!1468845321!13754701!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.6 required=7.0 tests=HTML_90_100,HTML_MESSAGE,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 17312 invoked from network); 18 Jul 2016 12:35:21 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-14.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 18 Jul 2016 12:35:21 -0000
X-IronPort-AV: E=Sophos;i="5.28,383,1464652800"; d="scan'208,217";a="26512409"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Paul Durrant <Paul.Durrant@citrix.com>, Eytan Heidingsfeld
 <eytanh@gmail.com>
Thread-Topic: [win-pv-devel] [XENVIF] Patch for Unexpected Initial States of
 XenVif
Thread-Index: AQHR4NXqRXfwfph5rUyLH04v431TeKAd7ClggAAzu8A=
Date: Mon, 18 Jul 2016 12:35:03 +0000
Message-ID: <f5f79a9d95d04402b36e5a443cb03e1c@AMSPEX02CL03.citrite.net>
References: <CAGjCcQOTj4u3xv1fsGXjxVbOOi+d_L+J0uVMR6qUQ6Eiphq-gQ@mail.gmail.com>
 <14514c8b36cb4eb6a3c4586a808009b6@AMSPEX02CL03.citrite.net>
In-Reply-To: <14514c8b36cb4eb6a3c4586a808009b6@AMSPEX02CL03.citrite.net>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] [XENVIF] Patch for Unexpected Initial States of
 XenVif
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============5093947895050528481=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============5093947895050528481==
Content-Language: en-US
Content-Type: multipart/alternative;
	boundary="_000_f5f79a9d95d04402b36e5a443cb03e1cAMSPEX02CL03citritenet_"

--_000_f5f79a9d95d04402b36e5a443cb03e1cAMSPEX02CL03citritenet_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

QXBwbGllZCBub3cuDQoNCiAgUGF1bA0KDQpGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0bzp3aW4t
cHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24gQmVoYWxmIE9mIFBhdWwg
RHVycmFudA0KU2VudDogMTggSnVseSAyMDE2IDEwOjMxDQpUbzogRXl0YW4gSGVpZGluZ3NmZWxk
DQpDYzogd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQpTdWJqZWN0OiBSZTogW3dp
bi1wdi1kZXZlbF0gW1hFTlZJRl0gUGF0Y2ggZm9yIFVuZXhwZWN0ZWQgSW5pdGlhbCBTdGF0ZXMg
b2YgWGVuVmlmDQoNCknigJlsbCByZS13b3JkIHRoZSBjb21taXQgbWVzc2FnZSBhIGJpdCBzbyB3
ZSBnZXQgYSBuaWNlIHRpdGxlIGluIHRoZSBzaG9ydGxvZywgYnV0IHRoZSBTLW8tYiB3YXMgd2hh
dCBJIG5lZWRlZCBzbyBJ4oCZbGwgY29tbWl0IHRoaXMgdG9kYXkgaG9wZWZ1bGx5LiBUaGFua3Mh
DQoNCiAgUGF1bA0KDQpGcm9tOiBFeXRhbiBIZWlkaW5nc2ZlbGQgW21haWx0bzpleXRhbmhAZ21h
aWwuY29tXQ0KU2VudDogMTggSnVseSAyMDE2IDEwOjIyDQpUbzogUGF1bCBEdXJyYW50DQpDYzog
d2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnPG1haWx0bzp3aW4tcHYtZGV2ZWxAbGlz
dHMueGVucHJvamVjdC5vcmc+DQpTdWJqZWN0OiBSZTogW3dpbi1wdi1kZXZlbF0gW1hFTlZJRl0g
UGF0Y2ggZm9yIFVuZXhwZWN0ZWQgSW5pdGlhbCBTdGF0ZXMgb2YgWGVuVmlmDQoNClRyeWluZyB0
byBnZXQgdGhlIGZvcm1hdCByaWdodCwgYnV0IGlmIG5vdCBpdCdzIG9rIHdpdGggYSAic3VnZ2Vz
dGVkLWJ5Ii4NClJlLWludHJvZHVjaW5nIHRoZSBsb2dpYyBmcm9tIGNvbW1pdCBjOWI2ZTU2ZTcz
NDJhMWJiMzFjZmI3OWYyOGI2YTAwZDA1OTU0MDA2LCB0byBoYW5kbGUgYSBiYWNrZW5kIHRoYXQg
aXMgYWxyZWFkeSBjb25uZWN0ZWQgKGZvciBjYXNlcyB3aGVyZSBXaW5kb3dzIGlzIGJvb3RlZCB2
aWEgaVNDU0kpDQoNClNpZ25lZC1vZmYtYnk6IEV5dGFuIEhlaWRpbmdzZmVsZCA8ZXl0YW5oQGdt
YWlsLmNvbTxtYWlsdG86ZXl0YW5oQGdtYWlsLmNvbT4+DQoNCmRpZmYgLS1naXQgYS9zcmMveGVu
dmlmL2Zyb250ZW5kLmMgYi9zcmMveGVudmlmL2Zyb250ZW5kLmMNCmluZGV4IDVhMjk3MzYuLmFl
ZjY2ODAgMTAwNjQ0DQotLS0gYS9zcmMveGVudmlmL2Zyb250ZW5kLmMNCisrKyBiL3NyYy94ZW52
aWYvZnJvbnRlbmQuYw0KQEAgLTE1MjEsNiArMTUyMSwxMSBAQCBGcm9udGVuZFByZXBhcmUoDQog
ICAgICAgICAgICAgRnJvbnRlbmRTZXRYZW5idXNTdGF0ZShGcm9udGVuZCwNCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nKTsNCiAgICAg
ICAgICAgICBicmVhazsNCisNCisgY2FzZSBYZW5idXNTdGF0ZUNvbm5lY3RlZDoNCisgRnJvbnRl
bmRTZXRYZW5idXNTdGF0ZShGcm9udGVuZCwNCisgWGVuYnVzU3RhdGVDbG9zaW5nKTsNCisgYnJl
YWs7DQoNCiAgICAgICAgIGNhc2UgWGVuYnVzU3RhdGVDbG9zaW5nOg0KICAgICAgICAgICAgIEZy
b250ZW5kU2V0WGVuYnVzU3RhdGUoRnJvbnRlbmQsDQoNCk9uIE1vbiwgSnVsIDE4LCAyMDE2IGF0
IDExOjQ0IEFNLCBQYXVsIER1cnJhbnQgPFBhdWwuRHVycmFudEBjaXRyaXguY29tPG1haWx0bzpQ
YXVsLkR1cnJhbnRAY2l0cml4LmNvbT4+IHdyb3RlOg0KPg0KPiBTb3JyeSwgSSByZWFsaXNlZCBJ
IGhhZCBub3QgcmVzcG9uZGVkIHRvIHRoaXMuIFRoaXMgZG9lcyBpbmRlZWQgbG9vayBsaWtlIGEg
aG9sZSBpbiB0aGUgbG9naWMgaW4gdGhlIG1hc3RlciBicmFuY2guIEkgd2lsbCBhZGQgeW91ciBw
YXRjaCBidXQgc2luY2UgeW91IGRpZCBub3QgYWRkIHlvdXIgUy1vLWIgdG8gdGhlIHBhdGNoIEkg
Y2FuIG9ubHkgY3JlZGl0IHlvdSB3aXRoIGEg4oCYc3VnZ2VzdGVkLWJ54oCZLiBJZiB5b3UgY2Fu
IHBvc3QgYSBwYXRjaCBpbiB0aGUgY29ycmVjdCBmb3JtIChzZWUgaHR0cDovL3dpa2kueGVucHJv
amVjdC5vcmcvd2lraS9TdWJtaXR0aW5nX1hlbl9Qcm9qZWN0X1BhdGNoZXMgZm9yIGd1aWRhbmNl
KSB0aGVuIEkgY2FuIGdpdmUgeW91IGZ1bGwgY3JlZGl0Lg0KPg0KPg0KPg0KPiAgIENoZWVycywN
Cj4NCj4NCj4NCj4gICBQYXVsDQo+DQo+DQo+DQo+IEZyb206IHdpbi1wdi1kZXZlbCBbbWFpbHRv
Ondpbi1wdi1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnPG1haWx0bzp3aW4tcHYt
ZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZz5dIE9uIEJlaGFsZiBPZiBFeXRhbiBI
ZWlkaW5nc2ZlbGQNCj4gU2VudDogMTEgSnVseSAyMDE2IDE1OjA2DQo+IFRvOiB3aW4tcHYtZGV2
ZWxAbGlzdHMueGVucHJvamVjdC5vcmc8bWFpbHRvOndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9q
ZWN0Lm9yZz4NCj4gU3ViamVjdDogW3dpbi1wdi1kZXZlbF0gUGF0Y2ggZm9yIFVuZXhwZWN0ZWQg
SW5pdGlhbCBTdGF0ZXMgb2YgWGVuVmlmDQo+DQo+DQo+DQo+IEhlbGxvLA0KPiBJJ3ZlIG5vdGlj
ZWQgdGhhdCB0aGUgc3VwcG9ydCBmb3IgdW5leHBlY3RlZCBpbml0aWFsIHN0YXRlcyB0aGF0IHdh
cyBhZGRlZCB0byBzdXBwb3J0IGlzY3NpIGJvb3QgaW4gY29tbWl0OiBjOWI2ZTU2ZTczNDJhMWJi
MzFjZmI3OWYyOGI2YTAwZDA1OTU0MDA2LA0KPg0KPg0KPg0KPiBBcyB0aGVyZSB3YXMgcXVpdGUg
YSBiaXQgb2YgcmVmYWN0b3JpbmcgYXJvdW5kIHRoYXQgYXJlYSBJJ3ZlIGNyZWF0ZWQgYSBzbWFs
bCBwYXRjaCB0aGF0IGZpeGVzIHRoZSBpc3N1ZSBhZ2FpbiwNCj4NCj4NCj4NCj4gZGlmZiAtLWdp
dCBhL3NyYy94ZW52aWYvZnJvbnRlbmQuYyBiL3NyYy94ZW52aWYvZnJvbnRlbmQuYw0KPg0KPiBp
bmRleCA1YTI5NzM2Li5hZWY2NjgwIDEwMDY0NA0KPg0KPiAtLS0gYS9zcmMveGVudmlmL2Zyb250
ZW5kLmMNCj4NCj4gKysrIGIvc3JjL3hlbnZpZi9mcm9udGVuZC5jDQo+DQo+IEBAIC0xNTIxLDYg
KzE1MjEsMTEgQEAgRnJvbnRlbmRQcmVwYXJlKA0KPg0KPiAgICAgICAgICAgICAgRnJvbnRlbmRT
ZXRYZW5idXNTdGF0ZShGcm9udGVuZCwNCj4NCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcpOw0KPg0KPiAgICAgICAgICAgICAgYnJl
YWs7DQo+DQo+ICsNCj4NCj4gKyAgICAgICAgICAgICAgICAgICAgY2FzZSBYZW5idXNTdGF0ZUNv
bm5lY3RlZDoNCj4NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJvbnRlbmRT
ZXRYZW5idXNTdGF0ZShGcm9udGVuZCwNCj4NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgWGVuYnVzU3RhdGVDbG9zaW5nKTsNCj4NCj4gKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+DQo+DQo+DQo+ICAgICAgICAgIGNhc2UgWGVu
YnVzU3RhdGVDbG9zaW5nOg0KPg0KPiAgICAgICAgICAgICAgRnJvbnRlbmRTZXRYZW5idXNTdGF0
ZShGcm9udGVuZCwNCj4NCj4gLS0NCj4NCj4gMS45LjUubXN5c2dpdC4wDQo+DQo+DQo+DQo+IENo
ZWVycywNCj4NCj4gRXl0YW4NCg==

--_000_f5f79a9d95d04402b36e5a443cb03e1cAMSPEX02CL03citritenet_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IlByb2dJZCIg
Y29udGVudD0iV29yZC5Eb2N1bWVudCI+DQo8bWV0YSBuYW1lPSJHZW5lcmF0b3IiIGNvbnRlbnQ9
Ik1pY3Jvc29mdCBXb3JkIDE0Ij4NCjxtZXRhIG5hbWU9Ik9yaWdpbmF0b3IiIGNvbnRlbnQ9Ik1p
Y3Jvc29mdCBXb3JkIDE0Ij4NCjxsaW5rIHJlbD0iRmlsZS1MaXN0IiBocmVmPSJjaWQ6ZmlsZWxp
c3QueG1sQDAxRDFFMEY5LjMwMkRFRTEwIj48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOk9m
ZmljZURvY3VtZW50U2V0dGluZ3M+DQo8bzpBbGxvd1BORy8+DQo8bzpEb05vdFJlbHlPbkNTUy8+
DQo8L286T2ZmaWNlRG9jdW1lbnRTZXR0aW5ncz4NCjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYg
Z3RlIG1zbyA5XT48eG1sPg0KPHc6V29yZERvY3VtZW50Pg0KPHc6U3BlbGxpbmdTdGF0ZT5DbGVh
bjwvdzpTcGVsbGluZ1N0YXRlPg0KPHc6VHJhY2tNb3Zlcy8+DQo8dzpUcmFja0Zvcm1hdHRpbmcv
Pg0KPHc6RW52ZWxvcGVWaXMvPg0KPHc6VmFsaWRhdGVBZ2FpbnN0U2NoZW1hcy8+DQo8dzpTYXZl
SWZYTUxJbnZhbGlkPmZhbHNlPC93OlNhdmVJZlhNTEludmFsaWQ+DQo8dzpJZ25vcmVNaXhlZENv
bnRlbnQ+ZmFsc2U8L3c6SWdub3JlTWl4ZWRDb250ZW50Pg0KPHc6QWx3YXlzU2hvd1BsYWNlaG9s
ZGVyVGV4dD5mYWxzZTwvdzpBbHdheXNTaG93UGxhY2Vob2xkZXJUZXh0Pg0KPHc6RG9Ob3RQcm9t
b3RlUUYvPg0KPHc6TGlkVGhlbWVPdGhlcj5FTi1HQjwvdzpMaWRUaGVtZU90aGVyPg0KPHc6TGlk
VGhlbWVBc2lhbj5YLU5PTkU8L3c6TGlkVGhlbWVBc2lhbj4NCjx3OkxpZFRoZW1lQ29tcGxleFNj
cmlwdD5YLU5PTkU8L3c6TGlkVGhlbWVDb21wbGV4U2NyaXB0Pg0KPHc6Q29tcGF0aWJpbGl0eT4N
Cjx3OkRvTm90RXhwYW5kU2hpZnRSZXR1cm4vPg0KPHc6QnJlYWtXcmFwcGVkVGFibGVzLz4NCjx3
OlNwbGl0UGdCcmVha0FuZFBhcmFNYXJrLz4NCjx3OkVuYWJsZU9wZW5UeXBlS2VybmluZy8+DQo8
L3c6Q29tcGF0aWJpbGl0eT4NCjx3OkJyb3dzZXJMZXZlbD5NaWNyb3NvZnRJbnRlcm5ldEV4cGxv
cmVyNDwvdzpCcm93c2VyTGV2ZWw+DQo8bTptYXRoUHI+DQo8bTptYXRoRm9udCBtOnZhbD0iQ2Ft
YnJpYSBNYXRoIi8+DQo8bTpicmtCaW4gbTp2YWw9ImJlZm9yZSIvPg0KPG06YnJrQmluU3ViIG06
dmFsPSImIzQ1Oy0iLz4NCjxtOnNtYWxsRnJhYyBtOnZhbD0ib2ZmIi8+DQo8bTpkaXNwRGVmLz4N
CjxtOmxNYXJnaW4gbTp2YWw9IjAiLz4NCjxtOnJNYXJnaW4gbTp2YWw9IjAiLz4NCjxtOmRlZkpj
IG06dmFsPSJjZW50ZXJHcm91cCIvPg0KPG06d3JhcEluZGVudCBtOnZhbD0iMTQ0MCIvPg0KPG06
aW50TGltIG06dmFsPSJzdWJTdXAiLz4NCjxtOm5hcnlMaW0gbTp2YWw9InVuZE92ciIvPg0KPC9t
Om1hdGhQcj48L3c6V29yZERvY3VtZW50Pg0KPC94bWw+PCFbZW5kaWZdLS0+PCEtLVtpZiBndGUg
bXNvIDldPjx4bWw+DQo8dzpMYXRlbnRTdHlsZXMgRGVmTG9ja2VkU3RhdGU9ImZhbHNlIiBEZWZV
bmhpZGVXaGVuVXNlZD0idHJ1ZSIgRGVmU2VtaUhpZGRlbj0idHJ1ZSIgRGVmUUZvcm1hdD0iZmFs
c2UiIERlZlByaW9yaXR5PSI5OSIgTGF0ZW50U3R5bGVDb3VudD0iMjY3Ij4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iTm9ybWFsIi8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFNlbWlIaWRkZW49ImZhbHNlIiBV
bmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9ImhlYWRpbmcgMSIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI5IiBRRm9ybWF0PSJ0cnVl
IiBOYW1lPSJoZWFkaW5nIDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyAzIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFFGb3JtYXQ9InRydWUiIE5hbWU9ImhlYWRp
bmcgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI5IiBRRm9y
bWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyA2Ii8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFFGb3JtYXQ9InRydWUiIE5h
bWU9ImhlYWRpbmcgNyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDgiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyA5
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjM5IiBOYW1lPSJ0
b2MgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzOSIgTmFt
ZT0idG9jIDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzki
IE5hbWU9InRvYyAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjM5IiBOYW1lPSJ0b2MgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9y
aXR5PSIzOSIgTmFtZT0idG9jIDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iMzkiIE5hbWU9InRvYyA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjM5IiBOYW1lPSJ0b2MgNyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSIzOSIgTmFtZT0idG9jIDgiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzkiIE5hbWU9InRvYyA5Ii8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjM1IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJjYXB0aW9u
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjEwIiBTZW1pSGlk
ZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJU
aXRsZSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIxIiBOYW1l
PSJEZWZhdWx0IFBhcmFncmFwaCBGb250Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjExIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNl
IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJTdWJ0aXRsZSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSIyMiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iU3Ryb25nIi8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjIwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJFbXBoYXNpcyIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI1OSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVu
aGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iVGFibGUgR3JpZCIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iUGxhY2Vob2xkZXIg
VGV4dCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIxIiBTZW1p
SGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1l
PSJObyBTcGFjaW5nIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjYwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdo
dCBTaGFkaW5nIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYx
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBM
aXN0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYyIiBTZW1p
SGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBHcmlkIi8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYzIiBTZW1pSGlkZGVu
PSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAxIi8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY0IiBTZW1pSGlkZGVu
PSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAyIi8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY1IiBTZW1pSGlkZGVu
PSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAxIi8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY2IiBTZW1pSGlkZGVuPSJm
YWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAyIi8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY3IiBTZW1pSGlkZGVuPSJmYWxz
ZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAxIi8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY4IiBTZW1pSGlkZGVuPSJmYWxzZSIg
VW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAyIi8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5o
aWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAzIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJEYXJrIExpc3QiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNl
ZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIFNoYWRpbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNl
ZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIExpc3QiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9
ImZhbHNlIiBQcmlvcml0eT0iNzMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0i
ZmFsc2UiIE5hbWU9IkNvbG9yZnVsIEdyaWQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNjAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFs
c2UiIE5hbWU9IkxpZ2h0IFNoYWRpbmcgQWNjZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNl
ZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IExpc3QgQWNjZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IEdyaWQgQWNjZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVX
aGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDEgQWNjZW50IDEiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIgQWNjZW50IDEi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDEgQWNj
ZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0i
ZmFsc2UiIE5hbWU9IlJldmlzaW9uIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjM0IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBR
Rm9ybWF0PSJ0cnVlIiBOYW1lPSJMaXN0IFBhcmFncmFwaCIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSIyOSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iUXVvdGUiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVX
aGVuVXNlZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9IkludGVuc2UgUXVvdGUiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDIgQWNjZW50IDEi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjciIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDEgQWNj
ZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjgiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlk
IDIgQWNjZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NjkiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1
bSBHcmlkIDMgQWNjZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNzAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9
IkRhcmsgTGlzdCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFBy
aW9yaXR5PSI3MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFt
ZT0iQ29sb3JmdWwgU2hhZGluZyBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iQ29sb3JmdWwgTGlzdCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQgU2hhZGluZyBBY2NlbnQgMiIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MSIgU2VtaUhpZGRlbj0iZmFsc2Ui
IFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQgTGlzdCBBY2NlbnQgMiIvPg0KPHc6
THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MiIgU2VtaUhpZGRlbj0iZmFs
c2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQgR3JpZCBBY2NlbnQgMiIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MyIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMSBBY2Nl
bnQgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NCIgU2Vt
aUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRp
bmcgMiBBY2NlbnQgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI2NSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVk
aXVtIExpc3QgMSBBY2NlbnQgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFBy
aW9yaXR5PSI2NiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFt
ZT0iTWVkaXVtIExpc3QgMiBBY2NlbnQgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI2NyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iTWVkaXVtIEdyaWQgMSBBY2NlbnQgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI2OCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMiBBY2NlbnQgMiIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdo
ZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMyBBY2NlbnQgMiIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVu
aGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iRGFyayBMaXN0IEFjY2VudCAyIi8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcxIiBTZW1pSGlkZGVuPSJmYWxzZSIg
VW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBTaGFkaW5nIEFjY2VudCAyIi8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcyIiBTZW1pSGlkZGVu
PSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBMaXN0IEFjY2Vu
dCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjczIiBTZW1p
SGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBHcmlk
IEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYw
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBT
aGFkaW5nIEFjY2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjYxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJM
aWdodCBMaXN0IEFjY2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJp
b3JpdHk9IjYyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1l
PSJMaWdodCBHcmlkIEFjY2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjYzIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBO
YW1lPSJNZWRpdW0gU2hhZGluZyAxIEFjY2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjY0IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAyIEFjY2VudCAzIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY1IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAxIEFjY2VudCAzIi8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY2IiBTZW1pSGlkZGVuPSJmYWxzZSIg
VW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAyIEFjY2VudCAzIi8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY3IiBTZW1pSGlkZGVuPSJm
YWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAxIEFjY2VudCAz
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY4IiBTZW1pSGlk
ZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAyIEFj
Y2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY5IiBT
ZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3Jp
ZCAzIEFjY2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjcwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJEYXJr
IExpc3QgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNzEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNv
bG9yZnVsIFNoYWRpbmcgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBQcmlvcml0eT0iNzIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2Ui
IE5hbWU9IkNvbG9yZnVsIExpc3QgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9
ImZhbHNlIiBQcmlvcml0eT0iNzMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0i
ZmFsc2UiIE5hbWU9IkNvbG9yZnVsIEdyaWQgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IFNoYWRpbmcgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhp
ZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IExpc3QgQWNjZW50IDQiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjIiIFNlbWlIaWRkZW49ImZhbHNlIiBV
bmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IEdyaWQgQWNjZW50IDQiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjMiIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDEgQWNjZW50IDQi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIg
QWNjZW50IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUi
IFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBM
aXN0IDEgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNjYiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1l
ZGl1bSBMaXN0IDIgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iNjciIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5h
bWU9Ik1lZGl1bSBHcmlkIDEgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNjgiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFs
c2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDIgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjkiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNl
ZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDMgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVX
aGVuVXNlZD0iZmFsc2UiIE5hbWU9IkRhcmsgTGlzdCBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgU2hhZGluZyBBY2NlbnQgNCIvPg0KPHc6
THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFs
c2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgTGlzdCBBY2NlbnQgNCIv
Pg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRl
bj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCBBY2Nl
bnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MCIgU2Vt
aUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQgU2hhZGlu
ZyBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2
MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQg
TGlzdCBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI2MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGln
aHQgR3JpZCBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9y
aXR5PSI2MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0i
TWVkaXVtIFNoYWRpbmcgMSBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI2NCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMiBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3QgMSBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3QgMiBBY2NlbnQgNSIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NyIgU2VtaUhpZGRlbj0iZmFsc2Ui
IFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMSBBY2NlbnQgNSIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OCIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMiBBY2NlbnQg
NSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OSIgU2VtaUhp
ZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMyBB
Y2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MCIg
U2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iRGFyayBMaXN0
IEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9Ijcx
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1
bCBTaGFkaW5nIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJp
b3JpdHk9IjcyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1l
PSJDb2xvcmZ1bCBMaXN0IEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjczIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNl
IiBOYW1lPSJDb2xvcmZ1bCBHcmlkIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjYwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBOYW1lPSJMaWdodCBTaGFkaW5nIEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBMaXN0IEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBHcmlkIEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYzIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5o
aWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAxIEFjY2VudCA2Ii8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY0IiBTZW1pSGlkZGVuPSJm
YWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAyIEFjY2Vu
dCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY1IiBTZW1p
SGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAx
IEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY2
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0g
TGlzdCAyIEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjY3IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJN
ZWRpdW0gR3JpZCAxIEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjY4IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBO
YW1lPSJNZWRpdW0gR3JpZCAyIEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjY5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZh
bHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAzIEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9j
a2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVz
ZWQ9ImZhbHNlIiBOYW1lPSJEYXJrIExpc3QgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIFNoYWRpbmcgQWNjZW50IDYiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzIiIFNlbWlIaWRkZW49ImZhbHNlIiBV
bmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIExpc3QgQWNjZW50IDYiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzMiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIEdyaWQgQWNjZW50IDYi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMTkiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9IlN1
YnRsZSBFbXBoYXNpcyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSIyMSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0i
dHJ1ZSIgTmFtZT0iSW50ZW5zZSBFbXBoYXNpcyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSIzMSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iU3VidGxlIFJlZmVyZW5jZSIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzMiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVu
aGlkZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iSW50ZW5zZSBSZWZlcmVu
Y2UiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzMiIFNlbWlI
aWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9
IkJvb2sgVGl0bGUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
MzciIE5hbWU9IkJpYmxpb2dyYXBoeSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSIzOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iVE9DIEhlYWRpbmciLz4NCjwvdzpM
YXRlbnRTdHlsZXM+DQo8L3htbD48IVtlbmRpZl0tLT48c3R5bGU+PCEtLQ0KLyogRm9udCBEZWZp
bml0aW9ucyAqLw0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpDYWxpYnJpOw0KCXBhbm9zZS0x
OjIgMTUgNSAyIDIgMiA0IDMgMiA0Ow0KCW1zby1mb250LWNoYXJzZXQ6MDsNCgltc28tZ2VuZXJp
Yy1mb250LWZhbWlseTpzd2lzczsNCgltc28tZm9udC1waXRjaDp2YXJpYWJsZTsNCgltc28tZm9u
dC1zaWduYXR1cmU6LTUzNjg3MDE0NSAxMDczNzg2MTExIDEgMCA0MTUgMDt9DQpAZm9udC1mYWNl
DQoJe2ZvbnQtZmFtaWx5OlRhaG9tYTsNCglwYW5vc2UtMToyIDExIDYgNCAzIDUgNCA0IDIgNDsN
Cgltc28tZm9udC1jaGFyc2V0OjA7DQoJbXNvLWdlbmVyaWMtZm9udC1mYW1pbHk6c3dpc3M7DQoJ
bXNvLWZvbnQtcGl0Y2g6dmFyaWFibGU7DQoJbXNvLWZvbnQtc2lnbmF0dXJlOi01MjAwODE2NjUg
LTEwNzM3MTcxNTcgNDEgMCA2NjA0NyAwO30NCi8qIFN0eWxlIERlZmluaXRpb25zICovDQpwLk1z
b05vcm1hbCwgbGkuTXNvTm9ybWFsLCBkaXYuTXNvTm9ybWFsDQoJe21zby1zdHlsZS11bmhpZGU6
bm87DQoJbXNvLXN0eWxlLXFmb3JtYXQ6eWVzOw0KCW1zby1zdHlsZS1wYXJlbnQ6IiI7DQoJbWFy
Z2luOjBjbTsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJbXNvLXBhZ2luYXRpb246d2lkb3ct
b3JwaGFuOw0KCWZvbnQtc2l6ZToxMi4wcHQ7DQoJZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21h
biIsInNlcmlmIjsNCgltc28tZmFyZWFzdC1mb250LWZhbWlseTpDYWxpYnJpO30NCmE6bGluaywg
c3Bhbi5Nc29IeXBlcmxpbmsNCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOmJsdWU7
DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsNCgl0ZXh0LXVuZGVybGluZTpzaW5nbGU7fQ0K
YTp2aXNpdGVkLCBzcGFuLk1zb0h5cGVybGlua0ZvbGxvd2VkDQoJe21zby1zdHlsZS1ub3Nob3c6
eWVzOw0KCW1zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjpwdXJwbGU7DQoJdGV4dC1kZWNv
cmF0aW9uOnVuZGVybGluZTsNCgl0ZXh0LXVuZGVybGluZTpzaW5nbGU7fQ0KcC5Nc29BY2V0YXRl
LCBsaS5Nc29BY2V0YXRlLCBkaXYuTXNvQWNldGF0ZQ0KCXttc28tc3R5bGUtbm9zaG93OnllczsN
Cgltc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJbXNvLXN0eWxlLWxpbms6IkJhbGxvb24gVGV4dCBD
aGFyIjsNCgltYXJnaW46MGNtOw0KCW1hcmdpbi1ib3R0b206LjAwMDFwdDsNCgltc28tcGFnaW5h
dGlvbjp3aWRvdy1vcnBoYW47DQoJZm9udC1zaXplOjguMHB0Ow0KCWZvbnQtZmFtaWx5OiJUYWhv
bWEiLCJzYW5zLXNlcmlmIjsNCgltc28tZmFyZWFzdC1mb250LWZhbWlseTpDYWxpYnJpO30NCnNw
YW4uRW1haWxTdHlsZTE3DQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsOw0KCW1zby1zdHlsZS1u
b3Nob3c6eWVzOw0KCW1zby1zdHlsZS11bmhpZGU6bm87DQoJbXNvLWFuc2ktZm9udC1zaXplOjEx
LjBwdDsNCgltc28tYmlkaS1mb250LXNpemU6MTEuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJp
Iiwic2Fucy1zZXJpZiI7DQoJbXNvLWFzY2lpLWZvbnQtZmFtaWx5OkNhbGlicmk7DQoJbXNvLWZh
cmVhc3QtZm9udC1mYW1pbHk6Q2FsaWJyaTsNCgltc28taGFuc2ktZm9udC1mYW1pbHk6Q2FsaWJy
aTsNCgltc28tYmlkaS1mb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIjsNCgljb2xvcjojMUY0
OTdEO30NCnNwYW4uRW1haWxTdHlsZTE4DQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsLXJlcGx5
Ow0KCW1zby1zdHlsZS1ub3Nob3c6eWVzOw0KCW1zby1zdHlsZS11bmhpZGU6bm87DQoJbXNvLWFu
c2ktZm9udC1zaXplOjExLjBwdDsNCgltc28tYmlkaS1mb250LXNpemU6MTEuMHB0Ow0KCWZvbnQt
ZmFtaWx5OiJDYWxpYnJpIiwic2Fucy1zZXJpZiI7DQoJbXNvLWFzY2lpLWZvbnQtZmFtaWx5OkNh
bGlicmk7DQoJbXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6Q2FsaWJyaTsNCgltc28taGFuc2ktZm9u
dC1mYW1pbHk6Q2FsaWJyaTsNCgltc28tYmlkaS1mb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFu
IjsNCgljb2xvcjojMUY0OTdEO30NCnNwYW4uQmFsbG9vblRleHRDaGFyDQoJe21zby1zdHlsZS1u
YW1lOiJCYWxsb29uIFRleHQgQ2hhciI7DQoJbXNvLXN0eWxlLW5vc2hvdzp5ZXM7DQoJbXNvLXN0
eWxlLXByaW9yaXR5Ojk5Ow0KCW1zby1zdHlsZS11bmhpZGU6bm87DQoJbXNvLXN0eWxlLWxvY2tl
ZDp5ZXM7DQoJbXNvLXN0eWxlLWxpbms6IkJhbGxvb24gVGV4dCI7DQoJbXNvLWFuc2ktZm9udC1z
aXplOjguMHB0Ow0KCW1zby1iaWRpLWZvbnQtc2l6ZTo4LjBwdDsNCglmb250LWZhbWlseToiVGFo
b21hIiwic2Fucy1zZXJpZiI7DQoJbXNvLWFzY2lpLWZvbnQtZmFtaWx5OlRhaG9tYTsNCgltc28t
aGFuc2ktZm9udC1mYW1pbHk6VGFob21hOw0KCW1zby1iaWRpLWZvbnQtZmFtaWx5OlRhaG9tYTsN
Cgltc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1HQjt9DQouTXNvQ2hwRGVmYXVsdA0KCXttc28tc3R5
bGUtdHlwZTpleHBvcnQtb25seTsNCgltc28tZGVmYXVsdC1wcm9wczp5ZXM7DQoJZm9udC1zaXpl
OjEwLjBwdDsNCgltc28tYW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCW1zby1iaWRpLWZvbnQtc2l6
ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLCJzYW5zLXNlcmlmIjsNCgltc28tYXNj
aWktZm9udC1mYW1pbHk6Q2FsaWJyaTsNCgltc28tZmFyZWFzdC1mb250LWZhbWlseTpDYWxpYnJp
Ow0KCW1zby1oYW5zaS1mb250LWZhbWlseTpDYWxpYnJpOw0KCW1zby1mYXJlYXN0LWxhbmd1YWdl
OkVOLVVTO30NCkBwYWdlIFdvcmRTZWN0aW9uMQ0KCXtzaXplOjYxMi4wcHQgNzkyLjBwdDsNCglt
YXJnaW46NzIuMHB0IDcyLjBwdCA3Mi4wcHQgNzIuMHB0Ow0KCW1zby1oZWFkZXItbWFyZ2luOjM2
LjBwdDsNCgltc28tZm9vdGVyLW1hcmdpbjozNi4wcHQ7DQoJbXNvLXBhcGVyLXNvdXJjZTowO30N
CmRpdi5Xb3JkU2VjdGlvbjENCgl7cGFnZTpXb3JkU2VjdGlvbjE7fQ0KLS0+PC9zdHlsZT48IS0t
W2lmIGd0ZSBtc28gMTBdPjxzdHlsZT4vKiBTdHlsZSBEZWZpbml0aW9ucyAqLw0KdGFibGUuTXNv
Tm9ybWFsVGFibGUNCgl7bXNvLXN0eWxlLW5hbWU6IlRhYmxlIE5vcm1hbCI7DQoJbXNvLXRzdHls
ZS1yb3diYW5kLXNpemU6MDsNCgltc28tdHN0eWxlLWNvbGJhbmQtc2l6ZTowOw0KCW1zby1zdHls
ZS1ub3Nob3c6eWVzOw0KCW1zby1zdHlsZS1wcmlvcml0eTo5OTsNCgltc28tc3R5bGUtcGFyZW50
OiIiOw0KCW1zby1wYWRkaW5nLWFsdDowY20gNS40cHQgMGNtIDUuNHB0Ow0KCW1zby1wYXJhLW1h
cmdpbjowY207DQoJbXNvLXBhcmEtbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0KCW1zby1wYWdpbmF0
aW9uOndpZG93LW9ycGhhbjsNCglmb250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxp
YnJpIiwic2Fucy1zZXJpZiI7DQoJbXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVM7fQ0KPC9zdHls
ZT48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlZGVmYXVsdHMg
djpleHQ9ImVkaXQiIHNwaWRtYXg9IjEwMjYiIC8+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lm
IGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlbGF5b3V0IHY6ZXh0PSJlZGl0Ij4NCjxvOmlkbWFw
IHY6ZXh0PSJlZGl0IiBkYXRhPSIxIiAvPg0KPC9vOnNoYXBlbGF5b3V0PjwveG1sPjwhW2VuZGlm
XS0tPg0KPC9oZWFkPg0KPGJvZHkgbGFuZz0iRU4tR0IiIGxpbms9ImJsdWUiIHZsaW5rPSJwdXJw
bGUiIHN0eWxlPSJ0YWItaW50ZXJ2YWw6MzYuMHB0Ij4NCjxkaXYgY2xhc3M9IldvcmRTZWN0aW9u
MSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIg
ZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1mYXJlYXN0LWZv
bnQtZmFtaWx5OkNhbGlicmk7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJv
bWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPkFwcGxpZWQgbm93LjxvOnA+PC9vOnA+PC9zcGFuPjwv
Zm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFm
NDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1mYXJl
YXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMg
TmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwv
Zm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFm
NDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1mYXJl
YXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMg
TmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46
eWVzIj4mbmJzcDsNCjwvc3Bhbj5QYXVsPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJD
YWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWZhcmVhc3QtZm9udC1mYW1p
bHk6Q2FsaWJyaTttc28tYmlkaS1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVv
dDs7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxk
aXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlkIGJsdWUgMS41cHQ7cGFkZGlu
ZzowY20gMGNtIDBjbSA0LjBwdCI+DQo8ZGl2Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9y
ZGVyLXRvcDpzb2xpZCAjQjVDNERGIDEuMHB0O3BhZGRpbmc6My4wcHQgMGNtIDBjbSAwY20iPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iVGFob21hIj48c3Bh
biBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
VGFob21hJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWZhcmVhc3QtZm9udC1mYW1p
bHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O21zby1hbnNpLWxhbmd1YWdlOkVOLVVTO2Zv
bnQtd2VpZ2h0OmJvbGQiPkZyb206PC9zcGFuPjwvZm9udD48L2I+PGZvbnQgc2l6ZT0iMiIgZmFj
ZT0iVGFob21hIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7VGFob21hJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWZh
cmVhc3QtZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O21zby1hbnNpLWxh
bmd1YWdlOkVOLVVTIj4NCiB3aW4tcHYtZGV2ZWwgW21haWx0bzp3aW4tcHYtZGV2ZWwtYm91bmNl
c0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gPGI+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQi
Pk9uIEJlaGFsZiBPZg0KPC9zcGFuPjwvYj5QYXVsIER1cnJhbnQ8YnI+DQo8Yj48c3BhbiBzdHls
ZT0iZm9udC13ZWlnaHQ6Ym9sZCI+U2VudDo8L3NwYW4+PC9iPiAxOCBKdWx5IDIwMTYgMTA6MzE8
YnI+DQo8Yj48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+VG86PC9zcGFuPjwvYj4gRXl0
YW4gSGVpZGluZ3NmZWxkPGJyPg0KPGI+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkNj
Ojwvc3Bhbj48L2I+IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZzxicj4NCjxiPjxz
cGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5TdWJqZWN0Ojwvc3Bhbj48L2I+IFJlOiBbd2lu
LXB2LWRldmVsXSBbWEVOVklGXSBQYXRjaCBmb3IgVW5leHBlY3RlZCBJbml0aWFsIFN0YXRlcyBv
ZiBYZW5WaWY8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwv
Zm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFm
NDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMx
RjQ5N0QiPknigJlsbCByZS13b3JkIHRoZSBjb21taXQgbWVzc2FnZSBhIGJpdCBzbyB3ZSBnZXQg
YSBuaWNlIHRpdGxlIGluIHRoZSBzaG9ydGxvZywgYnV0IHRoZSBTLW8tYiB3YXMgd2hhdCBJIG5l
ZWRlZA0KIHNvIEnigJlsbCBjb21taXQgdGhpcyB0b2RheSBob3BlZnVsbHkuIFRoYW5rcyE8bzpw
PjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6
ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJp
ZiZxdW90Oztjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9w
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZh
Y2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj48
c3BhbiBzdHlsZT0ibXNvLXNwYWNlcnVuOnllcyI+Jm5ic3A7DQo8L3NwYW4+UGF1bDxvOnA+PC9v
OnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIy
IiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1
b3Q7O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8
ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCBibHVlIDEuNXB0O3BhZGRp
bmc6MGNtIDBjbSAwY20gNC4wcHQiPg0KPGRpdj4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2Jv
cmRlci10b3A6c29saWQgI0I1QzRERiAxLjBwdDtwYWRkaW5nOjMuMHB0IDBjbSAwY20gMGNtIj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tb3V0bGluZS1sZXZlbDoxIj48Yj48Zm9u
dCBzaXplPSIyIiBmYWNlPSJUYWhvbWEiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1z
aXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtUYWhvbWEmcXVvdDssJnF1b3Q7c2Fucy1zZXJp
ZiZxdW90Ozttc28tZmFyZWFzdC1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVv
dDs7bXNvLWFuc2ktbGFuZ3VhZ2U6RU4tVVM7Zm9udC13ZWlnaHQ6Ym9sZCI+RnJvbTo8L3NwYW4+
PC9mb250PjwvYj48Zm9udCBzaXplPSIyIiBmYWNlPSJUYWhvbWEiPjxzcGFuIGxhbmc9IkVOLVVT
IiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtUYWhvbWEmcXVvdDss
JnF1b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tZmFyZWFzdC1mb250LWZhbWlseTomcXVvdDtUaW1l
cyBOZXcgUm9tYW4mcXVvdDs7bXNvLWFuc2ktbGFuZ3VhZ2U6RU4tVVMiPg0KIEV5dGFuIEhlaWRp
bmdzZmVsZCBbPGEgaHJlZj0ibWFpbHRvOmV5dGFuaEBnbWFpbC5jb20iPm1haWx0bzpleXRhbmhA
Z21haWwuY29tPC9hPl0NCjxicj4NCjxiPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5T
ZW50Ojwvc3Bhbj48L2I+IDE4IEp1bHkgMjAxNiAxMDoyMjxicj4NCjxiPjxzcGFuIHN0eWxlPSJm
b250LXdlaWdodDpib2xkIj5Ubzo8L3NwYW4+PC9iPiBQYXVsIER1cnJhbnQ8YnI+DQo8Yj48c3Bh
biBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+Q2M6PC9zcGFuPjwvYj4gPGEgaHJlZj0ibWFpbHRv
Ondpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyI+DQp3aW4tcHYtZGV2ZWxAbGlzdHMu
eGVucHJvamVjdC5vcmc8L2E+PGJyPg0KPGI+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQi
PlN1YmplY3Q6PC9zcGFuPjwvYj4gUmU6IFt3aW4tcHYtZGV2ZWxdIFtYRU5WSUZdIFBhdGNoIGZv
ciBVbmV4cGVjdGVkIEluaXRpYWwgU3RhdGVzIG9mIFhlblZpZjxvOnA+PC9vOnA+PC9zcGFuPjwv
Zm9udD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6
ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBw
dCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWJvdHRvbToxMi4wcHQiPjxmb250IHNpemU9IjMiIGZh
Y2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPlRyeWlu
ZyB0byBnZXQgdGhlIGZvcm1hdCByaWdodCwgYnV0IGlmIG5vdCBpdCdzIG9rIHdpdGggYSAmcXVv
dDtzdWdnZXN0ZWQtYnkmcXVvdDsuPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9t
YW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5SZS1pbnRyb2R1Y2luZyB0aGUgbG9n
aWMgZnJvbSBjb21taXQgYzliNmU1NmU3MzQyYTFiYjMxY2ZiNzlmMjhiNmEwMGQwNTk1NDAwNiwg
dG8gaGFuZGxlIGEgYmFja2VuZCB0aGF0IGlzIGFscmVhZHkgY29ubmVjdGVkIChmb3IgY2FzZXMg
d2hlcmUgV2luZG93cyBpcyBib290ZWQgdmlhIGlTQ1NJKTxvOnA+PC9vOnA+PC9zcGFuPjwvZm9u
dD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIz
IiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij48
bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTIuMHB0Ij5TaWduZWQtb2ZmLWJ5OiBFeXRhbiBIZWlkaW5nc2ZlbGQgJmx0
OzxhIGhyZWY9Im1haWx0bzpleXRhbmhAZ21haWwuY29tIj5leXRhbmhAZ21haWwuY29tPC9hPiZn
dDs8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMi4wcHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJv
bWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+ZGlmZiAtLWdpdCBhL3NyYy94ZW52
aWYvZnJvbnRlbmQuYyBiL3NyYy94ZW52aWYvZnJvbnRlbmQuYzxicj4NCmluZGV4IDVhMjk3MzYu
LmFlZjY2ODAgMTAwNjQ0PGJyPg0KLS0tIGEvc3JjL3hlbnZpZi9mcm9udGVuZC5jPGJyPg0KJiM0
MzsmIzQzOyYjNDM7IGIvc3JjL3hlbnZpZi9mcm9udGVuZC5jPGJyPg0KQEAgLTE1MjEsNiAmIzQz
OzE1MjEsMTEgQEAgRnJvbnRlbmRQcmVwYXJlKDxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO0Zyb250ZW5kU2V0WGVuYnVzU3RhdGUoRnJvbnRlbmQs
PGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcpOzxicj4NCiZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2JyZWFrOzxicj4NCiYjNDM7
PGJyPg0KJiM0MzsgY2FzZSBYZW5idXNTdGF0ZUNvbm5lY3RlZDo8YnI+DQomIzQzOyBGcm9udGVu
ZFNldFhlbmJ1c1N0YXRlKEZyb250ZW5kLDxicj4NCiYjNDM7IFhlbmJ1c1N0YXRlQ2xvc2luZyk7
PGJyPg0KJiM0MzsgYnJlYWs7PGJyPg0KJm5ic3A7PGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwO2Nhc2UgWGVuYnVzU3RhdGVDbG9zaW5nOjxicj4NCiZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO0Zyb250ZW5kU2V0WGVuYnVzU3RhdGUo
RnJvbnRlbmQsPGJyPg0KPGJyPg0KT24gTW9uLCBKdWwgMTgsIDIwMTYgYXQgMTE6NDQgQU0sIFBh
dWwgRHVycmFudCAmbHQ7PGEgaHJlZj0ibWFpbHRvOlBhdWwuRHVycmFudEBjaXRyaXguY29tIj5Q
YXVsLkR1cnJhbnRAY2l0cml4LmNvbTwvYT4mZ3Q7IHdyb3RlOjxicj4NCiZndDs8YnI+DQomZ3Q7
IFNvcnJ5LCBJIHJlYWxpc2VkIEkgaGFkIG5vdCByZXNwb25kZWQgdG8gdGhpcy4gVGhpcyBkb2Vz
IGluZGVlZCBsb29rIGxpa2UgYSBob2xlIGluIHRoZSBsb2dpYyBpbiB0aGUgbWFzdGVyIGJyYW5j
aC4gSSB3aWxsIGFkZCB5b3VyIHBhdGNoIGJ1dCBzaW5jZSB5b3UgZGlkIG5vdCBhZGQgeW91ciBT
LW8tYiB0byB0aGUgcGF0Y2ggSSBjYW4gb25seSBjcmVkaXQgeW91IHdpdGggYSDigJhzdWdnZXN0
ZWQtYnnigJkuIElmIHlvdSBjYW4gcG9zdCBhIHBhdGNoDQogaW4gdGhlIGNvcnJlY3QgZm9ybSAo
c2VlIDxhIGhyZWY9Imh0dHA6Ly93aWtpLnhlbnByb2plY3Qub3JnL3dpa2kvU3VibWl0dGluZ19Y
ZW5fUHJvamVjdF9QYXRjaGVzIj4NCmh0dHA6Ly93aWtpLnhlbnByb2plY3Qub3JnL3dpa2kvU3Vi
bWl0dGluZ19YZW5fUHJvamVjdF9QYXRjaGVzPC9hPiBmb3IgZ3VpZGFuY2UpIHRoZW4gSSBjYW4g
Z2l2ZSB5b3UgZnVsbCBjcmVkaXQuPGJyPg0KJmd0Ozxicj4NCiZndDsgJm5ic3A7PGJyPg0KJmd0
Ozxicj4NCiZndDsgJm5ic3A7IENoZWVycyw8YnI+DQomZ3Q7PGJyPg0KJmd0OyAmbmJzcDs8YnI+
DQomZ3Q7PGJyPg0KJmd0OyAmbmJzcDsgUGF1bDxicj4NCiZndDs8YnI+DQomZ3Q7ICZuYnNwOzxi
cj4NCiZndDs8YnI+DQomZ3Q7IEZyb206IHdpbi1wdi1kZXZlbCBbbWFpbHRvOjxhIGhyZWY9Im1h
aWx0bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZyI+d2luLXB2LWRl
dmVsLWJvdW5jZXNAbGlzdHMueGVucHJvamVjdC5vcmc8L2E+XSBPbiBCZWhhbGYgT2YgRXl0YW4g
SGVpZGluZ3NmZWxkPGJyPg0KJmd0OyBTZW50OiAxMSBKdWx5IDIwMTYgMTU6MDY8YnI+DQomZ3Q7
IFRvOiA8YSBocmVmPSJtYWlsdG86d2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIj53
aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmc8L2E+PGJyPg0KJmd0OyBTdWJqZWN0OiBb
d2luLXB2LWRldmVsXSBQYXRjaCBmb3IgVW5leHBlY3RlZCBJbml0aWFsIFN0YXRlcyBvZiBYZW5W
aWY8YnI+DQomZ3Q7PGJyPg0KJmd0OyAmbmJzcDs8YnI+DQomZ3Q7PGJyPg0KJmd0OyBIZWxsbyw8
YnI+DQomZ3Q7IEkndmUgbm90aWNlZCB0aGF0IHRoZSBzdXBwb3J0IGZvciB1bmV4cGVjdGVkIGlu
aXRpYWwgc3RhdGVzIHRoYXQgd2FzIGFkZGVkIHRvIHN1cHBvcnQgaXNjc2kgYm9vdCBpbiBjb21t
aXQ6IGM5YjZlNTZlNzM0MmExYmIzMWNmYjc5ZjI4YjZhMDBkMDU5NTQwMDYsPGJyPg0KJmd0Ozxi
cj4NCiZndDsgJm5ic3A7PGJyPg0KJmd0Ozxicj4NCiZndDsgQXMgdGhlcmUgd2FzIHF1aXRlIGEg
Yml0IG9mIHJlZmFjdG9yaW5nIGFyb3VuZCB0aGF0IGFyZWEgSSd2ZSBjcmVhdGVkIGEgc21hbGwg
cGF0Y2ggdGhhdCBmaXhlcyB0aGUgaXNzdWUgYWdhaW4sPGJyPg0KJmd0Ozxicj4NCiZndDsgJm5i
c3A7PGJyPg0KJmd0Ozxicj4NCiZndDsgZGlmZiAtLWdpdCBhL3NyYy94ZW52aWYvZnJvbnRlbmQu
YyBiL3NyYy94ZW52aWYvZnJvbnRlbmQuYzxicj4NCiZndDs8YnI+DQomZ3Q7IGluZGV4IDVhMjk3
MzYuLmFlZjY2ODAgMTAwNjQ0PGJyPg0KJmd0Ozxicj4NCiZndDsgLS0tIGEvc3JjL3hlbnZpZi9m
cm9udGVuZC5jPGJyPg0KJmd0Ozxicj4NCiZndDsgJiM0MzsmIzQzOyYjNDM7IGIvc3JjL3hlbnZp
Zi9mcm9udGVuZC5jPGJyPg0KJmd0Ozxicj4NCiZndDsgQEAgLTE1MjEsNiAmIzQzOzE1MjEsMTEg
QEAgRnJvbnRlbmRQcmVwYXJlKDxicj4NCiZndDs8YnI+DQomZ3Q7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO0Zyb250ZW5kU2V0WGVuYnVzU3RhdGUoRnJv
bnRlbmQsPGJyPg0KJmd0Ozxicj4NCiZndDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgWGVuYnVzU3RhdGVJbml0aWFs
aXNpbmcpOzxicj4NCiZndDs8YnI+DQomZ3Q7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwO2JyZWFrOzxicj4NCiZndDs8YnI+DQomZ3Q7ICYjNDM7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
IDxicj4NCiZndDs8YnI+DQomZ3Q7ICYjNDM7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2Nhc2UgWGVuYnVzU3RhdGVD
b25uZWN0ZWQ6PGJyPg0KJmd0Ozxicj4NCiZndDsgJiM0MzsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7RnJvbnRlbmRTZXRYZW5idXNTdGF0ZShG
cm9udGVuZCw8YnI+DQomZ3Q7PGJyPg0KJmd0OyAmIzQzOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDtYZW5idXNTdGF0ZUNsb3NpbmcpOzxicj4NCiZndDs8YnI+DQomZ3Q7
ICYjNDM7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwO2JyZWFrOzxicj4NCiZndDs8YnI+DQomZ3Q7ICZuYnNwOzxicj4NCiZndDs8YnI+DQomZ3Q7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtjYXNlIFhlbmJ1c1N0YXRlQ2xvc2lu
Zzo8YnI+DQomZ3Q7PGJyPg0KJmd0OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDtGcm9udGVuZFNldFhlbmJ1c1N0YXRlKEZyb250ZW5kLDxicj4NCiZndDs8
YnI+DQomZ3Q7IC0tIDxicj4NCiZndDs8YnI+DQomZ3Q7IDEuOS41Lm1zeXNnaXQuMDxicj4NCiZn
dDs8YnI+DQomZ3Q7ICZuYnNwOzxicj4NCiZndDs8YnI+DQomZ3Q7IENoZWVycyw8YnI+DQomZ3Q7
PGJyPg0KJmd0OyBFeXRhbjxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjwv
ZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2JvZHk+DQo8L2h0bWw+DQo=

--_000_f5f79a9d95d04402b36e5a443cb03e1cAMSPEX02CL03citritenet_--


--===============5093947895050528481==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============5093947895050528481==--


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 18 12:39:36 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 18 Jul 2016 12:39:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bP7pg-0002vp-Hp; Mon, 18 Jul 2016 12:39:36 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bP7pe-0002vj-F9
 for win-pv-devel@lists.xenproject.org; Mon, 18 Jul 2016 12:39:34 +0000
Received: from [85.158.143.35] by server-2.bemta-6.messagelabs.com id
 98/BA-13744-50ECC875; Mon, 18 Jul 2016 12:39:33 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrAIsWRWlGSWpSXmKPExsVyMfSqky7zuZ5
 wg76bghZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y1rXWaaCxqOsFY0Xb7M0MC5az9LFyMUhJDCb
 UeL0psVsIA6LwCUWiYf3VrCCOBIC71gk3mzeyd7FyAnkxEi8/nYUKMEBZFdJXPltDhIWElCUa
 L52gR1i0jImiePzW1hAEmwC6hK33y+G6rWT+DTrJpgtIqAqcW35MTYQm1lAS+LhhnmMILawgK
 3E0s1nwGwWoJp9R9eBzeEVcJfoP3ubDWKOnMTeyatZJjDyL2BkWMWoXpxaVJZapGuol1SUmZ5
 RkpuYmaNraGCml5taXJyYnpqTmFSsl5yfu4kRGEIMQLCDcedzp0OMkhxMSqK8Vgt6woX4kvJT
 KjMSizPii0pzUosPMcpwcChJ8L49A5QTLEpNT61Iy8wBBjNMWoKDR0kEIs1bXJCYW5yZDpE6x
 WjJseX3tbVMHFsW3ACS26beW8skxJKXn5cqJc77BaRBAKQhozQPbhws4i4xykoJ8zICHSjEU5
 BalJtZgir/ilGcg1FJmNfoLNAUnsy8Eritr4AOYgI6yEC1G+SgkkSElFQDo6bI17shExdGRci
 7zn/YfdKmUbtgTdZd9oi0K+ddLqvdm2wktTDI6oC2y7Jb1gahqWEuaz3y/pvHX5r8r7L1XeFr
 G3khqxnTV56ZGL2zz/KZiZzX1Au8Vi9uTn/84V3dir299Yv9f93/yf4x9fn+2OhT8VcvHpmxr
 oyvr3+d6nTzf5Isk99JbldiKc5INNRiLipOBAAGEDtAswIAAA==
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-13.tower-21.messagelabs.com!1468845570!24483267!1
X-Originating-IP: [209.85.213.66]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG, UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 50225 invoked from network); 18 Jul 2016 12:39:30 -0000
Received: from mail-vk0-f66.google.com (HELO mail-vk0-f66.google.com)
 (209.85.213.66)
 by server-13.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 18 Jul 2016 12:39:30 -0000
Received: by mail-vk0-f66.google.com with SMTP id s189so1902531vkh.0
 for <win-pv-devel@lists.xenproject.org>; Mon, 18 Jul 2016 05:39:30 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=Vrw8TZxsUA3AQlkOTugjok+jUj6fuSVljTiFLMNdR7c=;
 b=hKn0/NgFEou5UK0vZa8jvYiFEANz/aBQlqPl4c3VRFHsCgp8penjwjaW2Hi5iUhvUU
 l9FEIc5NVglM2vgORrGjPcEjdxnnQhvJPCInFfvjcJdpodm3LyPGt40OkEOlol7Ab2xJ
 XDsj0awpFpB+cHk+zuSos+YVKljaVAHMyPT6p5wIpEowOVjzCnETHXkaG8bPE2qI/7FK
 S/TwB/8NCgAdhGaLDhcIp8ciPQVxVgM7jVk4dd+23LL4IEwuUhaiUo6FtP7lQlrTRYuF
 Gn86t/Sq+P9M3/+/aS6hzc93T0JLfICcULQ3phcHxzdKj6an3YHYvv3ihq0r6J6hVDON
 LCiQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=Vrw8TZxsUA3AQlkOTugjok+jUj6fuSVljTiFLMNdR7c=;
 b=SECcJz5HksAPFwbDJo2RUykagx9pKqWlSG6Ik4E+9MhX+3mSGXl48eUmlKwYxXCt6J
 VAq339YD39Ru6Q0jw9vRpvYWeOMm6+Vu6fNtGVJxZFLCcYi1BVGT2TAPjwyZ46RlTDKj
 cd69+zHnNsZ9CNTGUeVEHQQGgWPabova6tLb5AAFGmRWmgAJdSAT41moVUKfGYd/7bgU
 aUD7D2kdutb4qTv0YoCyP8/ktyv7iexdhCh2zA1ZQzc+ZMd0SuIUE8WFn2raj3qZnBf3
 nNGiNNhABG+VO44Figpyc7FYuMg+xAJ5nXrjTGYkCg4yuh8cstvDp7HRR96kw2BEaSba
 8m0g==
X-Gm-Message-State: ALyK8tLv83SI744X7b2/8xXaXoXbpUUWX1DVjdN+nNq0TIhcjfIeRYB5wo90muT7CG2gsg==
X-Received: by 10.176.65.33 with SMTP id j30mr17153585uad.151.1468845566976;
 Mon, 18 Jul 2016 05:39:26 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id 42sm2022807uac.20.2016.07.18.05.39.25
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Mon, 18 Jul 2016 05:39:26 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Mon, 18 Jul 2016 13:38:44 +0100
Message-Id: <1468845524-12076-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Avoid lock contention between receiving CPUs
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhlIHNpbmdsZSBQdXRMaXN0L0dldExpc3QgZm9yIGNhY2hlZCBORVRfQlVGRkVSX0xJU1Qgc3Ry
dWN0dXJlcyBpcwpjdXJyZW50bHkgYSBwb2ludCBvZiBjb250ZW50aW9uLiBUaGlzIHBhdGNoIGdl
dHMgcmlkIG9mIHRoZSBjb250ZW50aW9uCmJ5IGtlZXBpbmcgcGVyLUNQVSBHZXRMaXN0cy4KClRv
IGFjY2VzcyB0aGUgZGVmaW5pdGlvbiBvZiBIVk1fTUFYX1ZDUFVTLCB0aGUgaHZtX2luZm9fdGFi
bGUuaCBoZWFkZXIKbmVlZHMgdG8gYmUgcHVsbGVkIGluIHRoZSBmcm9tIHRoZSBYZW4gc291cmNl
IGJhc2UuIFRoaXMgcGF0Y2ggdGhlcmVmb3JlCmFkZHMgdGhlIGluZnJhc3RydWN0dXJlIGZvciBw
dWxsaW5nIGluIFhlbiBoZWFkZXJzLgoKU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVs
LmR1cnJhbnRAY2l0cml4LmNvbT4KLS0tCiBnZXRfeGVuX2hlYWRlcnMucHkgICAgICAgICAgICAg
ICAgICAgICAgIHwgIDc0ICsrKwogaW5jbHVkZS94ZW4tdHlwZXMuaCAgICAgICAgICAgICAgICAg
ICAgICB8ICA1NSArKwogaW5jbHVkZS94ZW4tdmVyc2lvbi5oICAgICAgICAgICAgICAgICAgICB8
ICAzNyArKwogaW5jbHVkZS94ZW4td2FybmluZ3MuaCAgICAgICAgICAgICAgICAgICB8ICA0MiAr
KwogaW5jbHVkZS94ZW4uaCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0MyArKwogaW5j
bHVkZS94ZW4vcHVibGljL2FyY2gteDg2L3hlbi14ODZfMzIuaCB8IDE2OSArKysrKysKIGluY2x1
ZGUveGVuL3B1YmxpYy9hcmNoLXg4Ni94ZW4teDg2XzY0LmggfCAyMDIgKysrKysrKwogaW5jbHVk
ZS94ZW4vcHVibGljL2FyY2gteDg2L3hlbi5oICAgICAgICB8IDMzOCArKysrKysrKysrKwogaW5j
bHVkZS94ZW4vcHVibGljL2h2bS9odm1faW5mb190YWJsZS5oICB8ICA3NCArKysKIGluY2x1ZGUv
eGVuL3B1YmxpYy94ZW4tY29tcGF0LmggICAgICAgICAgfCAgNDQgKysKIGluY2x1ZGUveGVuL3B1
YmxpYy94ZW4uaCAgICAgICAgICAgICAgICAgfCA5OTUgKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKwogc3JjL3hlbm5ldC9yZWNlaXZlci5jICAgICAgICAgICAgICAgICAgICB8ICAzOCAr
LQogdnMyMDEyL3hlbm5ldC94ZW5uZXQudmN4cHJvaiAgICAgICAgICAgICB8ICAgMiArLQogdnMy
MDEzL3hlbm5ldC94ZW5uZXQudmN4cHJvaiAgICAgICAgICAgICB8ICAgNSArLQogMTQgZmlsZXMg
Y2hhbmdlZCwgMjA5OCBpbnNlcnRpb25zKCspLCAyMCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBnZXRfeGVuX2hlYWRlcnMucHkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3hl
bi10eXBlcy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4tdmVyc2lvbi5oCiBjcmVh
dGUgbW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4td2FybmluZ3MuaAogY3JlYXRlIG1vZGUgMTAwNjQ0
IGluY2x1ZGUveGVuLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3hlbi9wdWJsaWMvYXJj
aC14ODYveGVuLXg4Nl8zMi5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4vcHVibGlj
L2FyY2gteDg2L3hlbi14ODZfNjQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL3B1
YmxpYy9hcmNoLXg4Ni94ZW4uaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL3B1Ymxp
Yy9odm0vaHZtX2luZm9fdGFibGUuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL3B1
YmxpYy94ZW4tY29tcGF0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3hlbi9wdWJsaWMv
eGVuLmgKCmRpZmYgLS1naXQgYS9nZXRfeGVuX2hlYWRlcnMucHkgYi9nZXRfeGVuX2hlYWRlcnMu
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmQ0ZDBmNgotLS0gL2Rldi9u
dWxsCisrKyBiL2dldF94ZW5faGVhZGVycy5weQpAQCAtMCwwICsxLDc0IEBACisjIXB5dGhvbiAt
dQorCitpbXBvcnQgb3MsIHN5cworaW1wb3J0IHNodXRpbAoraW1wb3J0IHN1YnByb2Nlc3MKK2lt
cG9ydCByZQorCitkZWYgc2hlbGwoY29tbWFuZCwgZGlyID0gJy4nKToKKyAgICBwcmludCgiaW4g
JyVzJyBleGVjdXRlICclcyciICUgKGRpciwgJyAnLmpvaW4oY29tbWFuZCkpKQorICAgIHN5cy5z
dGRvdXQuZmx1c2goKQorCisgICAgc3ViID0gc3VicHJvY2Vzcy5Qb3BlbignICcuam9pbihjb21t
YW5kKSwgY3dkPWRpciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZG91dD1zdWJwcm9j
ZXNzLlBJUEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRlcnI9c3VicHJvY2Vzcy5T
VERPVVQpCisKKyAgICBmb3IgbGluZSBpbiBzdWIuc3Rkb3V0OgorICAgICAgICBwcmludChsaW5l
LmRlY29kZShzeXMuZ2V0ZGVmYXVsdGVuY29kaW5nKCkpLnJzdHJpcCgpKQorCisgICAgc3ViLndh
aXQoKQorCisgICAgcmV0dXJuIHN1Yi5yZXR1cm5jb2RlCisKK2RlZiBnZXRfcmVwbyh1cmwsIHdv
cmtpbmcpOgorICAgIHNoZWxsKFsnZ2l0JywgJ2Nsb25lJywgJy0tbm8tY2hlY2tvdXQnLCB1cmws
IHdvcmtpbmddKQorCitkZWYgZ2V0X2JyYW5jaCh0YWcsIHdvcmtpbmcpOgorICAgIHNoZWxsKFsn
Z2l0JywgJ2NoZWNrb3V0JywgJy1iJywgJ3RtcCcsIHRhZ10sIHdvcmtpbmcpCisKK2RlZiBwdXRf
YnJhbmNoKHdvcmtpbmcpOgorICAgIHNoZWxsKFsnZ2l0JywgJ2NoZWNrb3V0JywgJ21hc3Rlcidd
LCB3b3JraW5nKQorICAgIHNoZWxsKFsnZ2l0JywgJ2JyYW5jaCcsICctZCcsICd0bXAnXSwgd29y
a2luZykKKworZGVmIGNvcHlfZmlsZSh3b3JraW5nLCBkaXIsIG5hbWUpOgorICAgIHRyeToKKyAg
ICAgICAgb3MubWFrZWRpcnMoJ2luY2x1ZGVcXHhlblxcJXMnICUgZGlyKQorICAgIGV4Y2VwdCBP
U0Vycm9yOgorICAgICAgICBOb25lCisKKyAgICBzcmMgPSBvcGVuKCclc1xceGVuXFxpbmNsdWRl
XFwlc1xcJXMnICUgKHdvcmtpbmcsIGRpciwgbmFtZSksICdyJykKKyAgICBkc3QgPSBvcGVuKCdp
bmNsdWRlXFx4ZW5cXCVzXFwlcycgJSAoZGlyLCBuYW1lKSwgJ3cnLCBuZXdsaW5lPSdcbicpCisK
KyAgICBwcmludChuYW1lKQorCisgICAgZm9yIGxpbmUgaW4gc3JjOgorICAgICAgICBsaW5lID0g
cmUuc3ViKCcgdW5zaWduZWQgbG9uZycsICcgVUxPTkdfUFRSJywgbGluZSkKKyAgICAgICAgbGlu
ZSA9IHJlLnN1YignXCh1bnNpZ25lZCBsb25nJywgJyhVTE9OR19QVFInLCBsaW5lKQorICAgICAg
ICBsaW5lID0gcmUuc3ViKCcgbG9uZycsICcgTE9OR19QVFInLCBsaW5lKQorICAgICAgICBsaW5l
ID0gcmUuc3ViKCdcKGxvbmcnLCAnKExPTkdfUFRSJywgbGluZSkKKyAgICAgICAgZHN0LndyaXRl
KGxpbmUpCisKKyAgICBkc3QuY2xvc2UoKQorICAgIHNyYy5jbG9zZSgpCisKK2lmIF9fbmFtZV9f
ID09ICdfX21haW5fXyc6CisgICAgdGFnID0gc3lzLmFyZ3ZbMV0KKyAgICB3b3JraW5nID0gc3lz
LmFyZ3ZbMl0KKworICAgIGdldF9yZXBvKCdnaXQ6Ly94ZW5iaXRzLnhlbi5vcmcveGVuLmdpdCcs
IHdvcmtpbmcpCisgICAgZ2V0X2JyYW5jaCh0YWcsIHdvcmtpbmcpCisKKyAgICBzaGVsbChbJ2dp
dCcsICdybScsICctcicsICctZicsICd4ZW4nXSwgJ2luY2x1ZGUnKQorCisgICAgY29weV9maWxl
KHdvcmtpbmcsICdwdWJsaWMnLCAneGVuLmgnKQorICAgIGNvcHlfZmlsZSh3b3JraW5nLCAncHVi
bGljJywgJ3hlbi1jb21wYXQuaCcpCisKKyAgICBjb3B5X2ZpbGUod29ya2luZywgJ3B1YmxpY1xc
YXJjaC14ODYnLCAneGVuLmgnKQorICAgIGNvcHlfZmlsZSh3b3JraW5nLCAncHVibGljXFxhcmNo
LXg4NicsICd4ZW4teDg2XzMyLmgnKQorICAgIGNvcHlfZmlsZSh3b3JraW5nLCAncHVibGljXFxh
cmNoLXg4NicsICd4ZW4teDg2XzY0LmgnKQorCisgICAgY29weV9maWxlKHdvcmtpbmcsICdwdWJs
aWNcXGh2bScsICdodm1faW5mb190YWJsZS5oJykKKworICAgIHB1dF9icmFuY2god29ya2luZykK
KworICAgIHNoZWxsKFsnZ2l0JywgJ2FkZCcsICd4ZW4nXSwgJ2luY2x1ZGUnKQpkaWZmIC0tZ2l0
IGEvaW5jbHVkZS94ZW4tdHlwZXMuaCBiL2luY2x1ZGUveGVuLXR5cGVzLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWVlZDYxMgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1
ZGUveGVuLXR5cGVzLmgKQEAgLTAsMCArMSw1NSBAQAorLyogQ29weXJpZ2h0IChjKSBDaXRyaXgg
U3lzdGVtcyBJbmMuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsCisgKiB3aXRoIG9yIHdpdGhv
dXQgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkCisgKiB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqICogICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICAgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZQorICogICAgIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogKiAgIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyAqICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlCisgKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyCisgKiAgICAgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQKKyAqIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsCisgKiBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsCisgKiBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LAorICogV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIF9YRU5fVFlQ
RVNfSAorI2RlZmluZSBfWEVOX1RZUEVTX0gKKworI2luY2x1ZGUgPG50ZGRrLmg+CisKKy8vIERl
ZmluZSB0eXBlcyBuZWNlc3NhcnkgdG8gaW5jbHVkZSB4ZW4gaGVhZGVycworCit0eXBlZGVmIENI
QVIgICAgaW50OF90OwordHlwZWRlZiBTSE9SVCAgIGludDE2X3Q7Cit0eXBlZGVmIExPTkcgICAg
aW50MzJfdDsKK3R5cGVkZWYgTE9ORzY0ICBpbnQ2NF90OworCit0eXBlZGVmIFVDSEFSICAgdWlu
dDhfdDsKK3R5cGVkZWYgVVNIT1JUICB1aW50MTZfdDsKK3R5cGVkZWYgVUxPTkcgICB1aW50MzJf
dDsKK3R5cGVkZWYgVUxPTkc2NCB1aW50NjRfdDsKKworI2RlZmluZSBvZmZzZXRvZihfdHlwZSwg
X2ZpZWxkKSBGSUVMRF9PRkZTRVQoX3R5cGUsIF9maWVsZCkKKworI2RlZmluZSB4ZW5fbWIoKSAg
ICBLZU1lbW9yeUJhcnJpZXIoKQorI2RlZmluZSB4ZW5fd21iKCkgICBLZU1lbW9yeUJhcnJpZXIo
KQorI2RlZmluZSB4ZW5fcm1iKCkgICBLZW1lbW9yeUJhcnJpZXIoKQorCisjZW5kaWYgIC8vIF9Y
RU5fVFlQRVNfSApkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4tdmVyc2lvbi5oIGIvaW5jbHVkZS94
ZW4tdmVyc2lvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkYTgwN2EK
LS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL3hlbi12ZXJzaW9uLmgKQEAgLTAsMCArMSwzNyBA
QAorLyogQ29weXJpZ2h0IChjKSBDaXRyaXggU3lzdGVtcyBJbmMuCisgKiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsCisgKiB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkCisgKiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoK
KyAqICogICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlCisgKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZQorICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogKiAgIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgICBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlCisgKiAgICAgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyCisgKiAgICAg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQKKyAqIENPTlRS
SUJVVE9SUyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsCisg
KiBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9M
REVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsCisgKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAorICogV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIF9YRU5fVkVSU0lPTl9ICisjZGVmaW5lIF9YRU5fVkVSU0lPTl9I
CisKKyNkZWZpbmUgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyBfX1hFTl9MQVRFU1RfSU5URVJG
QUNFX1ZFUlNJT05fXworCisjZW5kaWYgIC8vIF9YRU5fVkVSU0lPTl9ICmRpZmYgLS1naXQgYS9p
bmNsdWRlL3hlbi13YXJuaW5ncy5oIGIvaW5jbHVkZS94ZW4td2FybmluZ3MuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MGFlNmFlCi0tLSAvZGV2L251bGwKKysrIGIvaW5j
bHVkZS94ZW4td2FybmluZ3MuaApAQCAtMCwwICsxLDQyIEBACisvKiBDb3B5cmlnaHQgKGMpIENp
dHJpeCBTeXN0ZW1zIEluYy4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcywKKyAqIHdpdGggb3Ig
d2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQKKyAqIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogKiAgIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgICBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlCisgKiAgICAgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAqICAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUKKyAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIKKyAqICAgICBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORAorICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywKKyAqIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywKKyAq
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgor
ICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksCisgKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcKKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgX1hF
Tl9XQVJOSU5HU19ICisjZGVmaW5lIF9YRU5fV0FSTklOR1NfSAorCisjaW5jbHVkZSA8bnRkZGsu
aD4KKworLy8gRGlzYWJsZSB3YXJuaW5ncyBuZWNlc3NhcnkgdG8gaW5jbHVkZSB4ZW4gaGVhZGVy
cworCisjIHByYWdtYSB3YXJuaW5nKGRpc2FibGU6NDIxNCkgLy8gbm9uc3RhbmRhcmQgZXh0ZW5z
aW9uIHVzZWQgOiBiaXQgZmllbGQgdHlwZXMgb3RoZXIgdGhhbiBpbnQKKyMgcHJhZ21hIHdhcm5p
bmcoZGlzYWJsZTo0MjAwKSAvLyBub25zdGFuZGFyZCBleHRlbnNpb24gdXNlZCA6IHplcm8tc2l6
ZWQgYXJyYXkgaW4gc3RydWN0L3VuaW9uCisKKyNlbmRpZiAgLy8gX1hFTl9XQVJOSU5HU19ICmRp
ZmYgLS1naXQgYS9pbmNsdWRlL3hlbi5oIGIvaW5jbHVkZS94ZW4uaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4yN2MxMTVjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS94
ZW4uaApAQCAtMCwwICsxLDQzIEBACisvKiBDb3B5cmlnaHQgKGMpIENpdHJpeCBTeXN0ZW1zIElu
Yy4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcywKKyAqIHdpdGggb3Igd2l0aG91dCBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQKKyAqIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZSBtZXQ6CisgKgorICogKiAgIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlCisgKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAqICAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUKKyAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIKKyAqICAgICBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORAorICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywKKyAqIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywKKyAqIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksCisgKiBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcKKyAq
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgX1hFTl9ICisjZGVmaW5lIF9Y
RU5fSAorCisjaW5jbHVkZSA8bnRkZGsuaD4KKworI2luY2x1ZGUgPHhlbi12ZXJzaW9uLmg+Cisj
aW5jbHVkZSA8eGVuLXR5cGVzLmg+CisjaW5jbHVkZSA8eGVuLXdhcm5pbmdzLmg+CisKKyNpbmNs
dWRlIDxwdWJsaWMvaHZtL2h2bV9pbmZvX3RhYmxlLmg+CisKKyNlbmRpZiAgLy8gX1hFTl9ICmRp
ZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9wdWJsaWMvYXJjaC14ODYveGVuLXg4Nl8zMi5oIGIvaW5j
bHVkZS94ZW4vcHVibGljL2FyY2gteDg2L3hlbi14ODZfMzIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5kMjMzNDBiCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS94ZW4v
cHVibGljL2FyY2gteDg2L3hlbi14ODZfMzIuaApAQCAtMCwwICsxLDE2OSBAQAorLyoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKgorICogeGVuLXg4Nl8zMi5oCisgKgorICogR3Vlc3QgT1MgaW50ZXJmYWNl
IHRvIHg4NiAzMi1iaXQgWGVuLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQs
IGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyAqIG9mIHRo
aXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0
d2FyZSIpLCB0bworICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwg
aW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHks
IG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgor
ICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8g
d2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3Rp
Y2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFs
bCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAq
IFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFO
WSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVE
IFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRQorICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBD
TEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElP
TiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBP
RiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIK
KyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDQt
MjAwNywgSyBBIEZyYXNlcgorICovCisKKyNpZm5kZWYgX19YRU5fUFVCTElDX0FSQ0hfWDg2X1hF
Tl9YODZfMzJfSF9fCisjZGVmaW5lIF9fWEVOX1BVQkxJQ19BUkNIX1g4Nl9YRU5fWDg2XzMyX0hf
XworCisvKgorICogSHlwZXJjYWxsIGludGVyZmFjZToKKyAqICBJbnB1dDogICVlYngsICVlY3gs
ICVlZHgsICVlc2ksICVlZGksICVlYnAgKGFyZ3VtZW50cyAxLTYpCisgKiAgT3V0cHV0OiAlZWF4
CisgKiBBY2Nlc3MgaXMgdmlhIGh5cGVyY2FsbCBwYWdlIChzZXQgdXAgYnkgZ3Vlc3QgbG9hZGVy
IG9yIHZpYSBhIFhlbiBNU1IpOgorICogIGNhbGwgaHlwZXJjYWxsX3BhZ2UgKyBoeXBlcmNhbGwt
bnVtYmVyICogMzIKKyAqIENsb2JiZXJlZDogQXJndW1lbnQgcmVnaXN0ZXJzIChlLmcuLCAyLWFy
ZyBoeXBlcmNhbGwgY2xvYmJlcnMgJWVieCwlZWN4KQorICovCisKKy8qCisgKiBUaGVzZSBmbGF0
IHNlZ21lbnRzIGFyZSBpbiB0aGUgWGVuLXByaXZhdGUgc2VjdGlvbiBvZiBldmVyeSBHRFQuIFNp
bmNlIHRoZXNlCisgKiBhcmUgYWxzbyBwcmVzZW50IGluIHRoZSBpbml0aWFsIEdEVCwgbWFueSBP
U2VzIHdpbGwgYmUgYWJsZSB0byBhdm9pZAorICogaW5zdGFsbGluZyB0aGVpciBvd24gR0RULgor
ICovCisjZGVmaW5lIEZMQVRfUklORzFfQ1MgMHhlMDE5ICAgIC8qIEdEVCBpbmRleCAyNTkgKi8K
KyNkZWZpbmUgRkxBVF9SSU5HMV9EUyAweGUwMjEgICAgLyogR0RUIGluZGV4IDI2MCAqLworI2Rl
ZmluZSBGTEFUX1JJTkcxX1NTIDB4ZTAyMSAgICAvKiBHRFQgaW5kZXggMjYwICovCisjZGVmaW5l
IEZMQVRfUklORzNfQ1MgMHhlMDJiICAgIC8qIEdEVCBpbmRleCAyNjEgKi8KKyNkZWZpbmUgRkxB
VF9SSU5HM19EUyAweGUwMzMgICAgLyogR0RUIGluZGV4IDI2MiAqLworI2RlZmluZSBGTEFUX1JJ
TkczX1NTIDB4ZTAzMyAgICAvKiBHRFQgaW5kZXggMjYyICovCisKKyNkZWZpbmUgRkxBVF9LRVJO
RUxfQ1MgRkxBVF9SSU5HMV9DUworI2RlZmluZSBGTEFUX0tFUk5FTF9EUyBGTEFUX1JJTkcxX0RT
CisjZGVmaW5lIEZMQVRfS0VSTkVMX1NTIEZMQVRfUklORzFfU1MKKyNkZWZpbmUgRkxBVF9VU0VS
X0NTICAgIEZMQVRfUklORzNfQ1MKKyNkZWZpbmUgRkxBVF9VU0VSX0RTICAgIEZMQVRfUklORzNf
RFMKKyNkZWZpbmUgRkxBVF9VU0VSX1NTICAgIEZMQVRfUklORzNfU1MKKworI2RlZmluZSBfX0hZ
UEVSVklTT1JfVklSVF9TVEFSVF9QQUUgICAgMHhGNTgwMDAwMAorI2RlZmluZSBfX01BQ0gyUEhZ
U19WSVJUX1NUQVJUX1BBRSAgICAgMHhGNTgwMDAwMAorI2RlZmluZSBfX01BQ0gyUEhZU19WSVJU
X0VORF9QQUUgICAgICAgMHhGNjgwMDAwMAorI2RlZmluZSBIWVBFUlZJU09SX1ZJUlRfU1RBUlRf
UEFFICAgICAgeGVuX21rX3Vsb25nKF9fSFlQRVJWSVNPUl9WSVJUX1NUQVJUX1BBRSkKKyNkZWZp
bmUgTUFDSDJQSFlTX1ZJUlRfU1RBUlRfUEFFICAgICAgIHhlbl9ta191bG9uZyhfX01BQ0gyUEhZ
U19WSVJUX1NUQVJUX1BBRSkKKyNkZWZpbmUgTUFDSDJQSFlTX1ZJUlRfRU5EX1BBRSAgICAgICAg
IHhlbl9ta191bG9uZyhfX01BQ0gyUEhZU19WSVJUX0VORF9QQUUpCisKKy8qIE5vbi1QQUUgYm91
bmRzIGFyZSBvYnNvbGV0ZS4gKi8KKyNkZWZpbmUgX19IWVBFUlZJU09SX1ZJUlRfU1RBUlRfTk9O
UEFFIDB4RkMwMDAwMDAKKyNkZWZpbmUgX19NQUNIMlBIWVNfVklSVF9TVEFSVF9OT05QQUUgIDB4
RkMwMDAwMDAKKyNkZWZpbmUgX19NQUNIMlBIWVNfVklSVF9FTkRfTk9OUEFFICAgIDB4RkM0MDAw
MDAKKyNkZWZpbmUgSFlQRVJWSVNPUl9WSVJUX1NUQVJUX05PTlBBRSAgIFwKKyAgICB4ZW5fbWtf
dWxvbmcoX19IWVBFUlZJU09SX1ZJUlRfU1RBUlRfTk9OUEFFKQorI2RlZmluZSBNQUNIMlBIWVNf
VklSVF9TVEFSVF9OT05QQUUgICAgXAorICAgIHhlbl9ta191bG9uZyhfX01BQ0gyUEhZU19WSVJU
X1NUQVJUX05PTlBBRSkKKyNkZWZpbmUgTUFDSDJQSFlTX1ZJUlRfRU5EX05PTlBBRSAgICAgIFwK
KyAgICB4ZW5fbWtfdWxvbmcoX19NQUNIMlBIWVNfVklSVF9FTkRfTk9OUEFFKQorCisjZGVmaW5l
IF9fSFlQRVJWSVNPUl9WSVJUX1NUQVJUIF9fSFlQRVJWSVNPUl9WSVJUX1NUQVJUX1BBRQorI2Rl
ZmluZSBfX01BQ0gyUEhZU19WSVJUX1NUQVJUICBfX01BQ0gyUEhZU19WSVJUX1NUQVJUX1BBRQor
I2RlZmluZSBfX01BQ0gyUEhZU19WSVJUX0VORCAgICBfX01BQ0gyUEhZU19WSVJUX0VORF9QQUUK
KworI2lmbmRlZiBIWVBFUlZJU09SX1ZJUlRfU1RBUlQKKyNkZWZpbmUgSFlQRVJWSVNPUl9WSVJU
X1NUQVJUIHhlbl9ta191bG9uZyhfX0hZUEVSVklTT1JfVklSVF9TVEFSVCkKKyNlbmRpZgorCisj
ZGVmaW5lIE1BQ0gyUEhZU19WSVJUX1NUQVJUICB4ZW5fbWtfdWxvbmcoX19NQUNIMlBIWVNfVklS
VF9TVEFSVCkKKyNkZWZpbmUgTUFDSDJQSFlTX1ZJUlRfRU5EICAgIHhlbl9ta191bG9uZyhfX01B
Q0gyUEhZU19WSVJUX0VORCkKKyNkZWZpbmUgTUFDSDJQSFlTX05SX0VOVFJJRVMgICgoTUFDSDJQ
SFlTX1ZJUlRfRU5ELU1BQ0gyUEhZU19WSVJUX1NUQVJUKT4+MikKKyNpZm5kZWYgbWFjaGluZV90
b19waHlzX21hcHBpbmcKKyNkZWZpbmUgbWFjaGluZV90b19waHlzX21hcHBpbmcgKChVTE9OR19Q
VFIgKilNQUNIMlBIWVNfVklSVF9TVEFSVCkKKyNlbmRpZgorCisvKiAzMi0vNjQtYml0IGludmFy
aWFiaWxpdHkgZm9yIGNvbnRyb2wgaW50ZXJmYWNlcyAoZG9tY3RsL3N5c2N0bCkuICovCisjaWYg
ZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pCisjdW5kZWYgX19fREVG
SU5FX1hFTl9HVUVTVF9IQU5ETEUKKyNkZWZpbmUgX19fREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUo
bmFtZSwgdHlwZSkgICAgICAgICAgICAgICAgICBcCisgICAgdHlwZWRlZiBzdHJ1Y3QgeyB0eXBl
ICpwOyB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBfX2d1ZXN0
X2hhbmRsZV8gIyMgbmFtZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB0
eXBlZGVmIHN0cnVjdCB7IHVuaW9uIHsgdHlwZSAqcDsgdWludDY0X2FsaWduZWRfdCBxOyB9OyB9
ICBcCisgICAgICAgIF9fZ3Vlc3RfaGFuZGxlXzY0XyAjIyBuYW1lCisjdW5kZWYgc2V0X3hlbl9n
dWVzdF9oYW5kbGVfcmF3CisjZGVmaW5lIHNldF94ZW5fZ3Vlc3RfaGFuZGxlX3JhdyhobmQsIHZh
bCkgICAgICAgICAgICAgICAgICBcCisgICAgZG8geyBpZiAoIHNpemVvZihobmQpID09IDggKSAq
KHVpbnQ2NF90ICopJihobmQpID0gMDsgICBcCisgICAgICAgICAoaG5kKS5wID0gdmFsOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSB3aGlsZSAoIDAgKQorI2Rl
ZmluZSAgaW50NjRfYWxpZ25lZF90ICBpbnQ2NF90IF9fYXR0cmlidXRlX18oKGFsaWduZWQoOCkp
KQorI2RlZmluZSB1aW50NjRfYWxpZ25lZF90IHVpbnQ2NF90IF9fYXR0cmlidXRlX18oKGFsaWdu
ZWQoOCkpKQorI2RlZmluZSBfX1hFTl9HVUVTVF9IQU5ETEVfNjQobmFtZSkgX19ndWVzdF9oYW5k
bGVfNjRfICMjIG5hbWUKKyNkZWZpbmUgWEVOX0dVRVNUX0hBTkRMRV82NChuYW1lKSBfX1hFTl9H
VUVTVF9IQU5ETEVfNjQobmFtZSkKKyNlbmRpZgorCisjaWZuZGVmIF9fQVNTRU1CTFlfXworCitz
dHJ1Y3QgY3B1X3VzZXJfcmVncyB7CisgICAgdWludDMyX3QgZWJ4OworICAgIHVpbnQzMl90IGVj
eDsKKyAgICB1aW50MzJfdCBlZHg7CisgICAgdWludDMyX3QgZXNpOworICAgIHVpbnQzMl90IGVk
aTsKKyAgICB1aW50MzJfdCBlYnA7CisgICAgdWludDMyX3QgZWF4OworICAgIHVpbnQxNl90IGVy
cm9yX2NvZGU7ICAgIC8qIHByaXZhdGUgKi8KKyAgICB1aW50MTZfdCBlbnRyeV92ZWN0b3I7ICAv
KiBwcml2YXRlICovCisgICAgdWludDMyX3QgZWlwOworICAgIHVpbnQxNl90IGNzOworICAgIHVp
bnQ4X3QgIHNhdmVkX3VwY2FsbF9tYXNrOworICAgIHVpbnQ4X3QgIF9wYWQwOworICAgIHVpbnQz
Ml90IGVmbGFnczsgICAgICAgIC8qIGVmbGFncy5JRiA9PSAhc2F2ZWRfdXBjYWxsX21hc2sgKi8K
KyAgICB1aW50MzJfdCBlc3A7CisgICAgdWludDE2X3Qgc3MsIF9wYWQxOworICAgIHVpbnQxNl90
IGVzLCBfcGFkMjsKKyAgICB1aW50MTZfdCBkcywgX3BhZDM7CisgICAgdWludDE2X3QgZnMsIF9w
YWQ0OworICAgIHVpbnQxNl90IGdzLCBfcGFkNTsKK307Cit0eXBlZGVmIHN0cnVjdCBjcHVfdXNl
cl9yZWdzIGNwdV91c2VyX3JlZ3NfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKGNwdV91c2Vy
X3JlZ3NfdCk7CisKKy8qCisgKiBQYWdlLWRpcmVjdG9yeSBhZGRyZXNzZXMgYWJvdmUgNEdCIGRv
IG5vdCBmaXQgaW50byBhcmNoaXRlY3R1cmFsICVjcjMuCisgKiBXaGVuIGFjY2Vzc2luZyAlY3Iz
LCBvciBlcXVpdmFsZW50IGZpZWxkIGluIHZjcHVfZ3Vlc3RfY29udGV4dCwgZ3Vlc3RzCisgKiBt
dXN0IHVzZSB0aGUgZm9sbG93aW5nIGFjY2Vzc29yIG1hY3JvcyB0byBwYWNrL3VucGFjayB2YWxp
ZCBNRk5zLgorICovCisjZGVmaW5lIHhlbl9wZm5fdG9fY3IzKHBmbikgKCgodW5zaWduZWQpKHBm
bikgPDwgMTIpIHwgKCh1bnNpZ25lZCkocGZuKSA+PiAyMCkpCisjZGVmaW5lIHhlbl9jcjNfdG9f
cGZuKGNyMykgKCgodW5zaWduZWQpKGNyMykgPj4gMTIpIHwgKCh1bnNpZ25lZCkoY3IzKSA8PCAy
MCkpCisKK3N0cnVjdCBhcmNoX3ZjcHVfaW5mbyB7CisgICAgVUxPTkdfUFRSIGNyMjsKKyAgICBV
TE9OR19QVFIgcGFkWzVdOyAvKiBzaXplb2YodmNwdV9pbmZvX3QpID09IDY0ICovCit9OwordHlw
ZWRlZiBzdHJ1Y3QgYXJjaF92Y3B1X2luZm8gYXJjaF92Y3B1X2luZm9fdDsKKworc3RydWN0IHhl
bl9jYWxsYmFjayB7CisgICAgVUxPTkdfUFRSIGNzOworICAgIFVMT05HX1BUUiBlaXA7Cit9Owor
dHlwZWRlZiBzdHJ1Y3QgeGVuX2NhbGxiYWNrIHhlbl9jYWxsYmFja190OworCisjZW5kaWYgLyog
IV9fQVNTRU1CTFlfXyAqLworCisjZW5kaWYgLyogX19YRU5fUFVCTElDX0FSQ0hfWDg2X1hFTl9Y
ODZfMzJfSF9fICovCisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBj
LWZpbGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0
CisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEvaW5j
bHVkZS94ZW4vcHVibGljL2FyY2gteDg2L3hlbi14ODZfNjQuaCBiL2luY2x1ZGUveGVuL3B1Ymxp
Yy9hcmNoLXg4Ni94ZW4teDg2XzY0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMmY1M2Y2OQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUveGVuL3B1YmxpYy9hcmNoLXg4
Ni94ZW4teDg2XzY0LmgKQEAgLTAsMCArMSwyMDIgQEAKKy8qKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
KyAqIHhlbi14ODZfNjQuaAorICoKKyAqIEd1ZXN0IE9TIGludGVyZmFjZSB0byB4ODYgNjQtYml0
IFhlbi4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJn
ZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3YXJlIGFu
ZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KKyAq
IGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRo
b3V0IGxpbWl0YXRpb24gdGhlCisgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdl
LCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKKyAqIHNlbGwgY29waWVz
IG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3
YXJlIGlzCisgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBl
cm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1
YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUg
SVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVT
UyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIEFVVEhP
UlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMg
T1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1Qs
IFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVD
VElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJ
TiBUSEUgU09GVFdBUkUuCisgKgorICogQ29weXJpZ2h0IChjKSAyMDA0LTIwMDYsIEsgQSBGcmFz
ZXIKKyAqLworCisjaWZuZGVmIF9fWEVOX1BVQkxJQ19BUkNIX1g4Nl9YRU5fWDg2XzY0X0hfXwor
I2RlZmluZSBfX1hFTl9QVUJMSUNfQVJDSF9YODZfWEVOX1g4Nl82NF9IX18KKworLyoKKyAqIEh5
cGVyY2FsbCBpbnRlcmZhY2U6CisgKiAgSW5wdXQ6ICAlcmRpLCAlcnNpLCAlcmR4LCAlcjEwLCAl
cjgsICVyOSAoYXJndW1lbnRzIDEtNikKKyAqICBPdXRwdXQ6ICVyYXgKKyAqIEFjY2VzcyBpcyB2
aWEgaHlwZXJjYWxsIHBhZ2UgKHNldCB1cCBieSBndWVzdCBsb2FkZXIgb3IgdmlhIGEgWGVuIE1T
Uik6CisgKiAgY2FsbCBoeXBlcmNhbGxfcGFnZSArIGh5cGVyY2FsbC1udW1iZXIgKiAzMgorICog
Q2xvYmJlcmVkOiBhcmd1bWVudCByZWdpc3RlcnMgKGUuZy4sIDItYXJnIGh5cGVyY2FsbCBjbG9i
YmVycyAlcmRpLCVyc2kpCisgKi8KKworLyoKKyAqIDY0LWJpdCBzZWdtZW50IHNlbGVjdG9ycwor
ICogVGhlc2UgZmxhdCBzZWdtZW50cyBhcmUgaW4gdGhlIFhlbi1wcml2YXRlIHNlY3Rpb24gb2Yg
ZXZlcnkgR0RULiBTaW5jZSB0aGVzZQorICogYXJlIGFsc28gcHJlc2VudCBpbiB0aGUgaW5pdGlh
bCBHRFQsIG1hbnkgT1NlcyB3aWxsIGJlIGFibGUgdG8gYXZvaWQKKyAqIGluc3RhbGxpbmcgdGhl
aXIgb3duIEdEVC4KKyAqLworCisjZGVmaW5lIEZMQVRfUklORzNfQ1MzMiAweGUwMjMgIC8qIEdE
VCBpbmRleCAyNjAgKi8KKyNkZWZpbmUgRkxBVF9SSU5HM19DUzY0IDB4ZTAzMyAgLyogR0RUIGlu
ZGV4IDI2MSAqLworI2RlZmluZSBGTEFUX1JJTkczX0RTMzIgMHhlMDJiICAvKiBHRFQgaW5kZXgg
MjYyICovCisjZGVmaW5lIEZMQVRfUklORzNfRFM2NCAweDAwMDAgIC8qIE5VTEwgc2VsZWN0b3Ig
Ki8KKyNkZWZpbmUgRkxBVF9SSU5HM19TUzMyIDB4ZTAyYiAgLyogR0RUIGluZGV4IDI2MiAqLwor
I2RlZmluZSBGTEFUX1JJTkczX1NTNjQgMHhlMDJiICAvKiBHRFQgaW5kZXggMjYyICovCisKKyNk
ZWZpbmUgRkxBVF9LRVJORUxfRFM2NCBGTEFUX1JJTkczX0RTNjQKKyNkZWZpbmUgRkxBVF9LRVJO
RUxfRFMzMiBGTEFUX1JJTkczX0RTMzIKKyNkZWZpbmUgRkxBVF9LRVJORUxfRFMgICBGTEFUX0tF
Uk5FTF9EUzY0CisjZGVmaW5lIEZMQVRfS0VSTkVMX0NTNjQgRkxBVF9SSU5HM19DUzY0CisjZGVm
aW5lIEZMQVRfS0VSTkVMX0NTMzIgRkxBVF9SSU5HM19DUzMyCisjZGVmaW5lIEZMQVRfS0VSTkVM
X0NTICAgRkxBVF9LRVJORUxfQ1M2NAorI2RlZmluZSBGTEFUX0tFUk5FTF9TUzY0IEZMQVRfUklO
RzNfU1M2NAorI2RlZmluZSBGTEFUX0tFUk5FTF9TUzMyIEZMQVRfUklORzNfU1MzMgorI2RlZmlu
ZSBGTEFUX0tFUk5FTF9TUyAgIEZMQVRfS0VSTkVMX1NTNjQKKworI2RlZmluZSBGTEFUX1VTRVJf
RFM2NCBGTEFUX1JJTkczX0RTNjQKKyNkZWZpbmUgRkxBVF9VU0VSX0RTMzIgRkxBVF9SSU5HM19E
UzMyCisjZGVmaW5lIEZMQVRfVVNFUl9EUyAgIEZMQVRfVVNFUl9EUzY0CisjZGVmaW5lIEZMQVRf
VVNFUl9DUzY0IEZMQVRfUklORzNfQ1M2NAorI2RlZmluZSBGTEFUX1VTRVJfQ1MzMiBGTEFUX1JJ
TkczX0NTMzIKKyNkZWZpbmUgRkxBVF9VU0VSX0NTICAgRkxBVF9VU0VSX0NTNjQKKyNkZWZpbmUg
RkxBVF9VU0VSX1NTNjQgRkxBVF9SSU5HM19TUzY0CisjZGVmaW5lIEZMQVRfVVNFUl9TUzMyIEZM
QVRfUklORzNfU1MzMgorI2RlZmluZSBGTEFUX1VTRVJfU1MgICBGTEFUX1VTRVJfU1M2NAorCisj
ZGVmaW5lIF9fSFlQRVJWSVNPUl9WSVJUX1NUQVJUIDB4RkZGRjgwMDAwMDAwMDAwMAorI2RlZmlu
ZSBfX0hZUEVSVklTT1JfVklSVF9FTkQgICAweEZGRkY4ODAwMDAwMDAwMDAKKyNkZWZpbmUgX19N
QUNIMlBIWVNfVklSVF9TVEFSVCAgMHhGRkZGODAwMDAwMDAwMDAwCisjZGVmaW5lIF9fTUFDSDJQ
SFlTX1ZJUlRfRU5EICAgIDB4RkZGRjgwNDAwMDAwMDAwMAorCisjaWZuZGVmIEhZUEVSVklTT1Jf
VklSVF9TVEFSVAorI2RlZmluZSBIWVBFUlZJU09SX1ZJUlRfU1RBUlQgeGVuX21rX3Vsb25nKF9f
SFlQRVJWSVNPUl9WSVJUX1NUQVJUKQorI2RlZmluZSBIWVBFUlZJU09SX1ZJUlRfRU5EICAgeGVu
X21rX3Vsb25nKF9fSFlQRVJWSVNPUl9WSVJUX0VORCkKKyNlbmRpZgorCisjZGVmaW5lIE1BQ0gy
UEhZU19WSVJUX1NUQVJUICB4ZW5fbWtfdWxvbmcoX19NQUNIMlBIWVNfVklSVF9TVEFSVCkKKyNk
ZWZpbmUgTUFDSDJQSFlTX1ZJUlRfRU5EICAgIHhlbl9ta191bG9uZyhfX01BQ0gyUEhZU19WSVJU
X0VORCkKKyNkZWZpbmUgTUFDSDJQSFlTX05SX0VOVFJJRVMgICgoTUFDSDJQSFlTX1ZJUlRfRU5E
LU1BQ0gyUEhZU19WSVJUX1NUQVJUKT4+MykKKyNpZm5kZWYgbWFjaGluZV90b19waHlzX21hcHBp
bmcKKyNkZWZpbmUgbWFjaGluZV90b19waHlzX21hcHBpbmcgKChVTE9OR19QVFIgKilIWVBFUlZJ
U09SX1ZJUlRfU1RBUlQpCisjZW5kaWYKKworLyoKKyAqIGludCBIWVBFUlZJU09SX3NldF9zZWdt
ZW50X2Jhc2UodW5zaWduZWQgaW50IHdoaWNoLCBVTE9OR19QVFIgYmFzZSkKKyAqICBAd2hpY2gg
PT0gU0VHQkFTRV8qICA7ICBAYmFzZSA9PSA2NC1iaXQgYmFzZSBhZGRyZXNzCisgKiBSZXR1cm5z
IDAgb24gc3VjY2Vzcy4KKyAqLworI2RlZmluZSBTRUdCQVNFX0ZTICAgICAgICAgIDAKKyNkZWZp
bmUgU0VHQkFTRV9HU19VU0VSICAgICAxCisjZGVmaW5lIFNFR0JBU0VfR1NfS0VSTkVMICAgMgor
I2RlZmluZSBTRUdCQVNFX0dTX1VTRVJfU0VMIDMgLyogU2V0IHVzZXIgJWdzIHNwZWNpZmllZCBp
biBiYXNlWzE1OjBdICovCisKKy8qCisgKiBpbnQgSFlQRVJWSVNPUl9pcmV0KHZvaWQpCisgKiBB
bGwgYXJndW1lbnRzIGFyZSBvbiB0aGUga2VybmVsIHN0YWNrLCBpbiB0aGUgZm9sbG93aW5nIGZv
cm1hdC4KKyAqIE5ldmVyIHJldHVybnMgaWYgc3VjY2Vzc2Z1bC4gQ3VycmVudCBrZXJuZWwgY29u
dGV4dCBpcyBsb3N0LgorICogVGhlIHNhdmVkIENTIGlzIG1hcHBlZCBhcyBmb2xsb3dzOgorICog
ICBSSU5HMCAtPiBSSU5HMyBrZXJuZWwgbW9kZS4KKyAqICAgUklORzEgLT4gUklORzMga2VybmVs
IG1vZGUuCisgKiAgIFJJTkcyIC0+IFJJTkczIGtlcm5lbCBtb2RlLgorICogICBSSU5HMyAtPiBS
SU5HMyB1c2VyIG1vZGUuCisgKiBIb3dldmVyIFJJTkcwIGluZGljYXRlcyB0aGF0IHRoZSBndWVz
dCBrZXJuZWwgc2hvdWxkIHJldHVybiB0byBpdGVzZWxmCisgKiBkaXJlY3RseSB3aXRoCisgKiAg
ICAgIG9yYiAgICQzLDEqOCglcnNwKQorICogICAgICBpcmV0cQorICogSWYgZmxhZ3MgY29udGFp
bnMgVkdDRl9pbl9zeXNjYWxsOgorICogICBSZXN0b3JlIFJBWCwgUklQLCBSRkxBR1MsIFJTUC4K
KyAqICAgRGlzY2FyZCBSMTEsIFJDWCwgQ1MsIFNTLgorICogT3RoZXJ3aXNlOgorICogICBSZXN0
b3JlIFJBWCwgUjExLCBSQ1gsIENTOlJJUCwgUkZMQUdTLCBTUzpSU1AuCisgKiBBbGwgb3RoZXIg
cmVnaXN0ZXJzIGFyZSBzYXZlZCBvbiBoeXBlcmNhbGwgZW50cnkgYW5kIHJlc3RvcmVkIHRvIHVz
ZXIuCisgKi8KKy8qIEd1ZXN0IGV4aXRlZCBpbiBTWVNDQUxMIGNvbnRleHQ/IFJldHVybiB0byBn
dWVzdCB3aXRoIFNZU1JFVD8gKi8KKyNkZWZpbmUgX1ZHQ0ZfaW5fc3lzY2FsbCA4CisjZGVmaW5l
IFZHQ0ZfaW5fc3lzY2FsbCAgKDE8PF9WR0NGX2luX3N5c2NhbGwpCisjZGVmaW5lIFZHQ0ZfSU5f
U1lTQ0FMTCAgVkdDRl9pbl9zeXNjYWxsCisKKyNpZm5kZWYgX19BU1NFTUJMWV9fCisKK3N0cnVj
dCBpcmV0X2NvbnRleHQgeworICAgIC8qIFRvcCBvZiBzdGFjayAoJXJzcCBhdCBwb2ludCBvZiBo
eXBlcmNhbGwpLiAqLworICAgIHVpbnQ2NF90IHJheCwgcjExLCByY3gsIGZsYWdzLCByaXAsIGNz
LCByZmxhZ3MsIHJzcCwgc3M7CisgICAgLyogQm90dG9tIG9mIGlyZXQgc3RhY2sgZnJhbWUuICov
Cit9OworCisjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgIWRlZmluZWQoX19TVFJJQ1RfQU5TSV9f
KQorLyogQW5vbnltb3VzIHVuaW9uIGluY2x1ZGVzIGJvdGggMzItIGFuZCA2NC1iaXQgbmFtZXMg
KGUuZy4sIGVheC9yYXgpLiAqLworI2RlZmluZSBfX0RFQ0xfUkVHKG5hbWUpIHVuaW9uIHsgXAor
ICAgIHVpbnQ2NF90IHIgIyMgbmFtZSwgZSAjIyBuYW1lOyBcCisgICAgdWludDMyX3QgX2UgIyMg
bmFtZTsgXAorfQorI2Vsc2UKKy8qIE5vbi1nY2Mgc291cmNlcyBtdXN0IGFsd2F5cyB1c2UgdGhl
IHByb3BlciA2NC1iaXQgbmFtZSAoZS5nLiwgcmF4KS4gKi8KKyNkZWZpbmUgX19ERUNMX1JFRyhu
YW1lKSB1aW50NjRfdCByICMjIG5hbWUKKyNlbmRpZgorCitzdHJ1Y3QgY3B1X3VzZXJfcmVncyB7
CisgICAgdWludDY0X3QgcjE1OworICAgIHVpbnQ2NF90IHIxNDsKKyAgICB1aW50NjRfdCByMTM7
CisgICAgdWludDY0X3QgcjEyOworICAgIF9fREVDTF9SRUcoYnApOworICAgIF9fREVDTF9SRUco
YngpOworICAgIHVpbnQ2NF90IHIxMTsKKyAgICB1aW50NjRfdCByMTA7CisgICAgdWludDY0X3Qg
cjk7CisgICAgdWludDY0X3Qgcjg7CisgICAgX19ERUNMX1JFRyhheCk7CisgICAgX19ERUNMX1JF
RyhjeCk7CisgICAgX19ERUNMX1JFRyhkeCk7CisgICAgX19ERUNMX1JFRyhzaSk7CisgICAgX19E
RUNMX1JFRyhkaSk7CisgICAgdWludDMyX3QgZXJyb3JfY29kZTsgICAgLyogcHJpdmF0ZSAqLwor
ICAgIHVpbnQzMl90IGVudHJ5X3ZlY3RvcjsgIC8qIHByaXZhdGUgKi8KKyAgICBfX0RFQ0xfUkVH
KGlwKTsKKyAgICB1aW50MTZfdCBjcywgX3BhZDBbMV07CisgICAgdWludDhfdCAgc2F2ZWRfdXBj
YWxsX21hc2s7CisgICAgdWludDhfdCAgX3BhZDFbM107CisgICAgX19ERUNMX1JFRyhmbGFncyk7
ICAgICAgLyogcmZsYWdzLklGID09ICFzYXZlZF91cGNhbGxfbWFzayAqLworICAgIF9fREVDTF9S
RUcoc3ApOworICAgIHVpbnQxNl90IHNzLCBfcGFkMlszXTsKKyAgICB1aW50MTZfdCBlcywgX3Bh
ZDNbM107CisgICAgdWludDE2X3QgZHMsIF9wYWQ0WzNdOworICAgIHVpbnQxNl90IGZzLCBfcGFk
NVszXTsgLyogTm9uLXplcm8gPT4gdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGZzX2Jhc2UuICAgICAq
LworICAgIHVpbnQxNl90IGdzLCBfcGFkNlszXTsgLyogTm9uLXplcm8gPT4gdGFrZXMgcHJlY2Vk
ZW5jZSBvdmVyIGdzX2Jhc2VfdXNyLiAqLworfTsKK3R5cGVkZWYgc3RydWN0IGNwdV91c2VyX3Jl
Z3MgY3B1X3VzZXJfcmVnc190OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoY3B1X3VzZXJfcmVn
c190KTsKKworI3VuZGVmIF9fREVDTF9SRUcKKworI2RlZmluZSB4ZW5fcGZuX3RvX2NyMyhwZm4p
ICgoVUxPTkdfUFRSKShwZm4pIDw8IDEyKQorI2RlZmluZSB4ZW5fY3IzX3RvX3BmbihjcjMpICgo
VUxPTkdfUFRSKShjcjMpID4+IDEyKQorCitzdHJ1Y3QgYXJjaF92Y3B1X2luZm8geworICAgIFVM
T05HX1BUUiBjcjI7CisgICAgVUxPTkdfUFRSIHBhZDsgLyogc2l6ZW9mKHZjcHVfaW5mb190KSA9
PSA2NCAqLworfTsKK3R5cGVkZWYgc3RydWN0IGFyY2hfdmNwdV9pbmZvIGFyY2hfdmNwdV9pbmZv
X3Q7CisKK3R5cGVkZWYgVUxPTkdfUFRSIHhlbl9jYWxsYmFja190OworCisjZW5kaWYgLyogIV9f
QVNTRU1CTFlfXyAqLworCisjZW5kaWYgLyogX19YRU5fUFVCTElDX0FSQ0hfWDg2X1hFTl9YODZf
NjRfSF9fICovCisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZp
bGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0Cisg
KiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVk
ZS94ZW4vcHVibGljL2FyY2gteDg2L3hlbi5oIGIvaW5jbHVkZS94ZW4vcHVibGljL2FyY2gteDg2
L3hlbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1ZGI3N2YKLS0tIC9k
ZXYvbnVsbAorKysgYi9pbmNsdWRlL3hlbi9wdWJsaWMvYXJjaC14ODYveGVuLmgKQEAgLTAsMCAr
MSwzMzggQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIGFyY2gteDg2L3hlbi5oCisgKgor
ICogR3Vlc3QgT1MgaW50ZXJmYWNlIHRvIHg4NiBYZW4uCisgKgorICogUGVybWlzc2lvbiBpcyBo
ZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEg
Y29weQorICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZp
bGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCisgKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0
IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQorICogcmlnaHRz
IHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGlj
ZW5zZSwgYW5kL29yCisgKiBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJt
aXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNv
LCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUg
Y29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNs
dWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29m
dHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQg
V0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBC
VVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICog
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFCisgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJ
QUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwor
ICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhF
IFVTRSBPUiBPVEhFUgorICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIENvcHly
aWdodCAoYykgMjAwNC0yMDA2LCBLIEEgRnJhc2VyCisgKi8KKworI2luY2x1ZGUgIi4uL3hlbi5o
IgorCisjaWZuZGVmIF9fWEVOX1BVQkxJQ19BUkNIX1g4Nl9YRU5fSF9fCisjZGVmaW5lIF9fWEVO
X1BVQkxJQ19BUkNIX1g4Nl9YRU5fSF9fCisKKy8qIFN0cnVjdHVyYWwgZ3Vlc3QgaGFuZGxlcyBp
bnRyb2R1Y2VkIGluIDB4MDAwMzAyMDEuICovCisjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05f
XyA+PSAweDAwMDMwMjAxCisjZGVmaW5lIF9fX0RFRklORV9YRU5fR1VFU1RfSEFORExFKG5hbWUs
IHR5cGUpIFwKKyAgICB0eXBlZGVmIHN0cnVjdCB7IHR5cGUgKnA7IH0gX19ndWVzdF9oYW5kbGVf
ICMjIG5hbWUKKyNlbHNlCisjZGVmaW5lIF9fX0RFRklORV9YRU5fR1VFU1RfSEFORExFKG5hbWUs
IHR5cGUpIFwKKyAgICB0eXBlZGVmIHR5cGUgKiBfX2d1ZXN0X2hhbmRsZV8gIyMgbmFtZQorI2Vu
ZGlmCisKKy8qCisgKiBYRU5fR1VFU1RfSEFORExFIHJlcHJlc2VudHMgYSBndWVzdCBwb2ludGVy
LCB3aGVuIHBhc3NlZCBhcyBhIGZpZWxkCisgKiBpbiBhIHN0cnVjdCBpbiBtZW1vcnkuCisgKiBY
RU5fR1VFU1RfSEFORExFX1BBUkFNIHJlcHJlc2VudCBhIGd1ZXN0IHBvaW50ZXIsIHdoZW4gcGFz
c2VkIGFzIGFuCisgKiBoeXBlcmNhbGwgYXJndW1lbnQuCisgKiBYRU5fR1VFU1RfSEFORExFX1BB
UkFNIGFuZCBYRU5fR1VFU1RfSEFORExFIGFyZSB0aGUgc2FtZSBvbiBYODYgYnV0CisgKiB0aGV5
IG1pZ2h0IG5vdCBiZSBvbiBvdGhlciBhcmNoaXRlY3R1cmVzLgorICovCisjZGVmaW5lIF9fREVG
SU5FX1hFTl9HVUVTVF9IQU5ETEUobmFtZSwgdHlwZSkgXAorICAgIF9fX0RFRklORV9YRU5fR1VF
U1RfSEFORExFKG5hbWUsIHR5cGUpOyAgIFwKKyAgICBfX19ERUZJTkVfWEVOX0dVRVNUX0hBTkRM
RShjb25zdF8jI25hbWUsIGNvbnN0IHR5cGUpCisjZGVmaW5lIERFRklORV9YRU5fR1VFU1RfSEFO
RExFKG5hbWUpICAgX19ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShuYW1lLCBuYW1lKQorI2RlZmlu
ZSBfX1hFTl9HVUVTVF9IQU5ETEUobmFtZSkgICAgICAgIF9fZ3Vlc3RfaGFuZGxlXyAjIyBuYW1l
CisjZGVmaW5lIFhFTl9HVUVTVF9IQU5ETEUobmFtZSkgICAgICAgICAgX19YRU5fR1VFU1RfSEFO
RExFKG5hbWUpCisjZGVmaW5lIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0obmFtZSkgICAgWEVOX0dV
RVNUX0hBTkRMRShuYW1lKQorI2RlZmluZSBzZXRfeGVuX2d1ZXN0X2hhbmRsZV9yYXcoaG5kLCB2
YWwpICBkbyB7IChobmQpLnAgPSB2YWw7IH0gd2hpbGUgKDApCisjZGVmaW5lIHNldF94ZW5fZ3Vl
c3RfaGFuZGxlKGhuZCwgdmFsKSBzZXRfeGVuX2d1ZXN0X2hhbmRsZV9yYXcoaG5kLCB2YWwpCisK
KyNpZiBkZWZpbmVkKF9faTM4Nl9fKQorI2luY2x1ZGUgInhlbi14ODZfMzIuaCIKKyNlbGlmIGRl
ZmluZWQoX194ODZfNjRfXykKKyNpbmNsdWRlICJ4ZW4teDg2XzY0LmgiCisjZW5kaWYKKworI2lm
bmRlZiBfX0FTU0VNQkxZX18KK3R5cGVkZWYgVUxPTkdfUFRSIHhlbl9wZm5fdDsKKyNkZWZpbmUg
UFJJX3hlbl9wZm4gImx4IgorI2VuZGlmCisKKyNkZWZpbmUgWEVOX0hBVkVfUFZfR1VFU1RfRU5U
UlkgMQorCisjZGVmaW5lIFhFTl9IQVZFX1BWX1VQQ0FMTF9NQVNLIDEKKworLyoKKyAqIGBpbmNv
bnRlbnRzIDIwMCBzZWdkZXNjIFNlZ21lbnQgRGVzY3JpcHRvciBUYWJsZXMKKyAqLworLyoKKyAq
IGAgZW51bSBuZWdfZXJybm92YWwKKyAqIGAgSFlQRVJWSVNPUl9zZXRfZ2R0KGNvbnN0IHhlbl9w
Zm5fdCBmcmFtZXNbXSwgdW5zaWduZWQgaW50IGVudHJpZXMpOworICogYAorICovCisvKgorICog
QSBudW1iZXIgb2YgR0RUIGVudHJpZXMgYXJlIHJlc2VydmVkIGJ5IFhlbi4gVGhlc2UgYXJlIG5v
dCBzaXR1YXRlZCBhdCB0aGUKKyAqIHN0YXJ0IG9mIHRoZSBHRFQgYmVjYXVzZSBzb21lIHN0dXBp
ZCBPU2VzIGV4cG9ydCBoYXJkLWNvZGVkIHNlbGVjdG9yIHZhbHVlcworICogaW4gdGhlaXIgQUJJ
LiBUaGVzZSBoYXJkLWNvZGVkIHZhbHVlcyBhcmUgYWx3YXlzIG5lYXIgdGhlIHN0YXJ0IG9mIHRo
ZSBHRFQsCisgKiBzbyBYZW4gcGxhY2VzIGl0c2VsZiBvdXQgb2YgdGhlIHdheSwgYXQgdGhlIGZh
ciBlbmQgb2YgdGhlIEdEVC4KKyAqCisgKiBOQiBUaGUgTERUIGlzIHNldCB1c2luZyB0aGUgTU1V
RVhUX1NFVF9MRFQgb3Agb2YgSFlQRVJWSVNPUl9tbXVleHRfb3AKKyAqLworI2RlZmluZSBGSVJT
VF9SRVNFUlZFRF9HRFRfUEFHRSAgMTQKKyNkZWZpbmUgRklSU1RfUkVTRVJWRURfR0RUX0JZVEUg
IChGSVJTVF9SRVNFUlZFRF9HRFRfUEFHRSAqIDQwOTYpCisjZGVmaW5lIEZJUlNUX1JFU0VSVkVE
X0dEVF9FTlRSWSAoRklSU1RfUkVTRVJWRURfR0RUX0JZVEUgLyA4KQorCisKKy8qCisgKiBgIGVu
dW0gbmVnX2Vycm5vdmFsCisgKiBgIEhZUEVSVklTT1JfdXBkYXRlX2Rlc2NyaXB0b3IodTY0IHBh
LCB1NjQgZGVzYyk7CisgKiBgCisgKiBgIEBwYSAgIFRoZSBtYWNoaW5lIHBoeXNpY2FsIGFkZHJl
c3Mgb2YgdGhlIGRlc2NyaXB0b3IgdG8KKyAqIGAgICAgICAgdXBkYXRlLiBNdXN0IGJlIGVpdGhl
ciBhIGRlc2NyaXB0b3IgcGFnZSBvciB3cml0YWJsZS4KKyAqIGAgQGRlc2MgVGhlIGRlc2NyaXB0
b3IgdmFsdWUgdG8gdXBkYXRlLCBpbiB0aGUgc2FtZSBmb3JtYXQgYXMgYQorICogYCAgICAgICBu
YXRpdmUgZGVzY3JpcHRvciB0YWJsZSBlbnRyeS4KKyAqLworCisvKiBNYXhpbXVtIG51bWJlciBv
ZiB2aXJ0dWFsIENQVXMgaW4gbGVnYWN5IG11bHRpLXByb2Nlc3NvciBndWVzdHMuICovCisjZGVm
aW5lIFhFTl9MRUdBQ1lfTUFYX1ZDUFVTIDMyCisKKyNpZm5kZWYgX19BU1NFTUJMWV9fCisKK3R5
cGVkZWYgVUxPTkdfUFRSIHhlbl91bG9uZ190OworI2RlZmluZSBQUklfeGVuX3Vsb25nICJseCIK
KworLyoKKyAqIGAgZW51bSBuZWdfZXJybm92YWwKKyAqIGAgSFlQRVJWSVNPUl9zdGFja19zd2l0
Y2goVUxPTkdfUFRSIHNzLCBVTE9OR19QVFIgZXNwKTsKKyAqIGAKKyAqIFNldHMgdGhlIHN0YWNr
IHNlZ21lbnQgYW5kIHBvaW50ZXIgZm9yIHRoZSBjdXJyZW50IHZjcHUuCisgKi8KKworLyoKKyAq
IGAgZW51bSBuZWdfZXJybm92YWwKKyAqIGAgSFlQRVJWSVNPUl9zZXRfdHJhcF90YWJsZShjb25z
dCBzdHJ1Y3QgdHJhcF9pbmZvIHRyYXBzW10pOworICogYAorICovCisvKgorICogU2VuZCBhbiBh
cnJheSBvZiB0aGVzZSB0byBIWVBFUlZJU09SX3NldF90cmFwX3RhYmxlKCkuCisgKiBUZXJtaW5h
dGUgdGhlIGFycmF5IHdpdGggYSBzZW50aW5lbCBlbnRyeSwgd2l0aCB0cmFwc1tdLmFkZHJlc3M9
PTAuCisgKiBUaGUgcHJpdmlsZWdlIGxldmVsIHNwZWNpZmllcyB3aGljaCBtb2RlcyBtYXkgZW50
ZXIgYSB0cmFwIHZpYSBhIHNvZnR3YXJlCisgKiBpbnRlcnJ1cHQuIE9uIHg4Ni82NCwgc2luY2Ug
cmluZ3MgMSBhbmQgMiBhcmUgdW5hdmFpbGFibGUsIHdlIGFsbG9jYXRlCisgKiBwcml2aWxlZ2Ug
bGV2ZWxzIGFzIGZvbGxvd3M6CisgKiAgTGV2ZWwgPT0gMDogTm9vbmUgbWF5IGVudGVyCisgKiAg
TGV2ZWwgPT0gMTogS2VybmVsIG1heSBlbnRlcgorICogIExldmVsID09IDI6IEtlcm5lbCBtYXkg
ZW50ZXIKKyAqICBMZXZlbCA9PSAzOiBFdmVyeW9uZSBtYXkgZW50ZXIKKyAqLworI2RlZmluZSBU
SV9HRVRfRFBMKF90aSkgICAgICAoKF90aSktPmZsYWdzICYgMykKKyNkZWZpbmUgVElfR0VUX0lG
KF90aSkgICAgICAgKChfdGkpLT5mbGFncyAmIDQpCisjZGVmaW5lIFRJX1NFVF9EUEwoX3RpLF9k
cGwpICgoX3RpKS0+ZmxhZ3MgfD0gKF9kcGwpKQorI2RlZmluZSBUSV9TRVRfSUYoX3RpLF9pZikg
ICAoKF90aSktPmZsYWdzIHw9ICgoISEoX2lmKSk8PDIpKQorc3RydWN0IHRyYXBfaW5mbyB7Cisg
ICAgdWludDhfdCAgICAgICB2ZWN0b3I7ICAvKiBleGNlcHRpb24gdmVjdG9yICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKi8KKyAgICB1aW50OF90ICAgICAgIGZsYWdzOyAgIC8qIDAtMzog
cHJpdmlsZWdlIGxldmVsOyA0OiBjbGVhciBldmVudCBlbmFibGU/ICAqLworICAgIHVpbnQxNl90
ICAgICAgY3M7ICAgICAgLyogY29kZSBzZWxlY3RvciAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICovCisgICAgVUxPTkdfUFRSIGFkZHJlc3M7IC8qIGNvZGUgb2Zmc2V0ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAqLworfTsKK3R5cGVkZWYgc3RydWN0IHRyYXBfaW5m
byB0cmFwX2luZm9fdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHRyYXBfaW5mb190KTsKKwor
dHlwZWRlZiB1aW50NjRfdCB0c2NfdGltZXN0YW1wX3Q7IC8qIFJEVFNDIHRpbWVzdGFtcCAqLwor
CisvKgorICogVGhlIGZvbGxvd2luZyBpcyBhbGwgQ1BVIGNvbnRleHQuIE5vdGUgdGhhdCB0aGUg
ZnB1X2N0eHQgYmxvY2sgaXMgZmlsbGVkCisgKiBpbiBieSBGWFNBVkUgaWYgdGhlIENQVSBoYXMg
ZmVhdHVyZSBGWFNSOyBvdGhlcndpc2UgRlNBVkUgaXMgdXNlZC4KKyAqCisgKiBBbHNvIG5vdGUg
dGhhdCB3aGVuIGNhbGxpbmcgRE9NQ1RMX3NldHZjcHVjb250ZXh0IGFuZCBWQ1BVX2luaXRpYWxp
c2UKKyAqIGZvciBIVk0gYW5kIFBWSCBndWVzdHMsIG5vdCBhbGwgaW5mb3JtYXRpb24gaW4gdGhp
cyBzdHJ1Y3R1cmUgaXMgdXBkYXRlZDoKKyAqCisgKiAtIEZvciBIVk0gZ3Vlc3RzLCB0aGUgc3Ry
dWN0dXJlcyByZWFkIGluY2x1ZGU6IGZwdV9jdHh0IChpZgorICogVkdDVF9JMzg3X1ZBTElEIGlz
IHNldCksIGZsYWdzLCB1c2VyX3JlZ3MsIGRlYnVncmVnWypdCisgKgorICogLSBQVkggZ3Vlc3Rz
IGFyZSB0aGUgc2FtZSBhcyBIVk0gZ3Vlc3RzLCBidXQgYWRkaXRpb25hbGx5IHVzZSBjdHJscmVn
WzNdIHRvCisgKiBzZXQgY3IzLiBBbGwgb3RoZXIgZmllbGRzIG5vdCB1c2VkIHNob3VsZCBiZSBz
ZXQgdG8gMC4KKyAqLworc3RydWN0IHZjcHVfZ3Vlc3RfY29udGV4dCB7CisgICAgLyogRlBVIHJl
Z2lzdGVycyBjb21lIGZpcnN0IHNvIHRoZXkgY2FuIGJlIGFsaWduZWQgZm9yIEZYU0FWRS9GWFJT
VE9SLiAqLworICAgIHN0cnVjdCB7IGNoYXIgeFs1MTJdOyB9IGZwdV9jdHh0OyAgICAgICAvKiBV
c2VyLWxldmVsIEZQVSByZWdpc3RlcnMgICAgICovCisjZGVmaW5lIFZHQ0ZfSTM4N19WQUxJRCAg
ICAgICAgICAgICAgICAoMTw8MCkKKyNkZWZpbmUgVkdDRl9JTl9LRVJORUwgICAgICAgICAgICAg
ICAgICgxPDwyKQorI2RlZmluZSBfVkdDRl9pMzg3X3ZhbGlkICAgICAgICAgICAgICAgMAorI2Rl
ZmluZSBWR0NGX2kzODdfdmFsaWQgICAgICAgICAgICAgICAgKDE8PF9WR0NGX2kzODdfdmFsaWQp
CisjZGVmaW5lIF9WR0NGX2luX2tlcm5lbCAgICAgICAgICAgICAgICAyCisjZGVmaW5lIFZHQ0Zf
aW5fa2VybmVsICAgICAgICAgICAgICAgICAoMTw8X1ZHQ0ZfaW5fa2VybmVsKQorI2RlZmluZSBf
VkdDRl9mYWlsc2FmZV9kaXNhYmxlc19ldmVudHMgMworI2RlZmluZSBWR0NGX2ZhaWxzYWZlX2Rp
c2FibGVzX2V2ZW50cyAgKDE8PF9WR0NGX2ZhaWxzYWZlX2Rpc2FibGVzX2V2ZW50cykKKyNkZWZp
bmUgX1ZHQ0Zfc3lzY2FsbF9kaXNhYmxlc19ldmVudHMgIDQKKyNkZWZpbmUgVkdDRl9zeXNjYWxs
X2Rpc2FibGVzX2V2ZW50cyAgICgxPDxfVkdDRl9zeXNjYWxsX2Rpc2FibGVzX2V2ZW50cykKKyNk
ZWZpbmUgX1ZHQ0Zfb25saW5lICAgICAgICAgICAgICAgICAgIDUKKyNkZWZpbmUgVkdDRl9vbmxp
bmUgICAgICAgICAgICAgICAgICAgICgxPDxfVkdDRl9vbmxpbmUpCisgICAgVUxPTkdfUFRSIGZs
YWdzOyAgICAgICAgICAgICAgICAgICAgLyogVkdDRl8qIGZsYWdzICAgICAgICAgICAgICAgICAq
LworICAgIHN0cnVjdCBjcHVfdXNlcl9yZWdzIHVzZXJfcmVnczsgICAgICAgICAvKiBVc2VyLWxl
dmVsIENQVSByZWdpc3RlcnMgICAgICovCisgICAgc3RydWN0IHRyYXBfaW5mbyB0cmFwX2N0eHRb
MjU2XTsgICAgICAgIC8qIFZpcnR1YWwgSURUICAgICAgICAgICAgICAgICAgKi8KKyAgICBVTE9O
R19QVFIgbGR0X2Jhc2UsIGxkdF9lbnRzOyAgICAgICAvKiBMRFQgKGxpbmVhciBhZGRyZXNzLCAj
IGVudHMpICovCisgICAgVUxPTkdfUFRSIGdkdF9mcmFtZXNbMTZdLCBnZHRfZW50czsgLyogR0RU
IChtYWNoaW5lIGZyYW1lcywgIyBlbnRzKSAqLworICAgIFVMT05HX1BUUiBrZXJuZWxfc3MsIGtl
cm5lbF9zcDsgICAgIC8qIFZpcnR1YWwgVFNTIChvbmx5IFNTMS9TUDEpICAgKi8KKyAgICAvKiBO
Qi4gVXNlciBwYWdldGFibGUgb24geDg2LzY0IGlzIHBsYWNlZCBpbiBjdHJscmVnWzFdLiAqLwor
ICAgIFVMT05HX1BUUiBjdHJscmVnWzhdOyAgICAgICAgICAgICAgIC8qIENSMC1DUjcgKGNvbnRy
b2wgcmVnaXN0ZXJzKSAgKi8KKyAgICBVTE9OR19QVFIgZGVidWdyZWdbOF07ICAgICAgICAgICAg
ICAvKiBEQjAtREI3IChkZWJ1ZyByZWdpc3RlcnMpICAgICovCisjaWZkZWYgX19pMzg2X18KKyAg
ICBVTE9OR19QVFIgZXZlbnRfY2FsbGJhY2tfY3M7ICAgICAgICAvKiBDUzpFSVAgb2YgZXZlbnQg
Y2FsbGJhY2sgICAgICovCisgICAgVUxPTkdfUFRSIGV2ZW50X2NhbGxiYWNrX2VpcDsKKyAgICBV
TE9OR19QVFIgZmFpbHNhZmVfY2FsbGJhY2tfY3M7ICAgICAvKiBDUzpFSVAgb2YgZmFpbHNhZmUg
Y2FsbGJhY2sgICovCisgICAgVUxPTkdfUFRSIGZhaWxzYWZlX2NhbGxiYWNrX2VpcDsKKyNlbHNl
CisgICAgVUxPTkdfUFRSIGV2ZW50X2NhbGxiYWNrX2VpcDsKKyAgICBVTE9OR19QVFIgZmFpbHNh
ZmVfY2FsbGJhY2tfZWlwOworI2lmZGVmIF9fWEVOX18KKyAgICB1bmlvbiB7CisgICAgICAgIFVM
T05HX1BUUiBzeXNjYWxsX2NhbGxiYWNrX2VpcDsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAg
ICAgIHVuc2lnbmVkIGludCBldmVudF9jYWxsYmFja19jczsgICAgLyogY29tcGF0IENTIG9mIGV2
ZW50IGNiICAgICAqLworICAgICAgICAgICAgdW5zaWduZWQgaW50IGZhaWxzYWZlX2NhbGxiYWNr
X2NzOyAvKiBjb21wYXQgQ1Mgb2YgZmFpbHNhZmUgY2IgICovCisgICAgICAgIH07CisgICAgfTsK
KyNlbHNlCisgICAgVUxPTkdfUFRSIHN5c2NhbGxfY2FsbGJhY2tfZWlwOworI2VuZGlmCisjZW5k
aWYKKyAgICBVTE9OR19QVFIgdm1fYXNzaXN0OyAgICAgICAgICAgICAgICAvKiBWTUFTU1RfVFlQ
RV8qIGJpdG1hcCAqLworI2lmZGVmIF9feDg2XzY0X18KKyAgICAvKiBTZWdtZW50IGJhc2UgYWRk
cmVzc2VzLiAqLworICAgIHVpbnQ2NF90ICAgICAgZnNfYmFzZTsKKyAgICB1aW50NjRfdCAgICAg
IGdzX2Jhc2Vfa2VybmVsOworICAgIHVpbnQ2NF90ICAgICAgZ3NfYmFzZV91c2VyOworI2VuZGlm
Cit9OwordHlwZWRlZiBzdHJ1Y3QgdmNwdV9ndWVzdF9jb250ZXh0IHZjcHVfZ3Vlc3RfY29udGV4
dF90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUodmNwdV9ndWVzdF9jb250ZXh0X3QpOworCitz
dHJ1Y3QgYXJjaF9zaGFyZWRfaW5mbyB7CisgICAgLyoKKyAgICAgKiBOdW1iZXIgb2YgdmFsaWQg
ZW50cmllcyBpbiB0aGUgcDJtIHRhYmxlKHMpIGFuY2hvcmVkIGF0CisgICAgICogcGZuX3RvX21m
bl9mcmFtZV9saXN0X2xpc3QgYW5kL29yIHAybV92YWRkci4KKyAgICAgKi8KKyAgICBVTE9OR19Q
VFIgbWF4X3BmbjsKKyAgICAvKgorICAgICAqIEZyYW1lIGNvbnRhaW5pbmcgbGlzdCBvZiBtZm5z
IGNvbnRhaW5pbmcgbGlzdCBvZiBtZm5zIGNvbnRhaW5pbmcgcDJtLgorICAgICAqIEEgdmFsdWUg
b2YgMCBpbmRpY2F0ZXMgaXQgaGFzIG5vdCB5ZXQgYmVlbiBzZXQgdXAsIH4wIGluZGljYXRlcyBp
dCBoYXMKKyAgICAgKiBiZWVuIHNldCB0byBpbnZhbGlkIGUuZy4gZHVlIHRvIHRoZSBwMm0gYmVp
bmcgdG9vIGxhcmdlIGZvciB0aGUgMy1sZXZlbAorICAgICAqIHAybSB0cmVlLiBJbiB0aGlzIGNh
c2UgdGhlIGxpbmVhciBtYXBwZXIgcDJtIGxpc3QgYW5jaG9yZWQgYXQgcDJtX3ZhZGRyCisgICAg
ICogaXMgdG8gYmUgdXNlZC4KKyAgICAgKi8KKyAgICB4ZW5fcGZuX3QgICAgIHBmbl90b19tZm5f
ZnJhbWVfbGlzdF9saXN0OworICAgIFVMT05HX1BUUiBubWlfcmVhc29uOworICAgIC8qCisgICAg
ICogRm9sbG93aW5nIHRocmVlIGZpZWxkcyBhcmUgdmFsaWQgaWYgcDJtX2NyMyBjb250YWlucyBh
IHZhbHVlIGRpZmZlcmVudAorICAgICAqIGZyb20gMC4KKyAgICAgKiBwMm1fY3IzIGlzIHRoZSBy
b290IG9mIHRoZSBhZGRyZXNzIHNwYWNlIHdoZXJlIHAybV92YWRkciBpcyB2YWxpZC4KKyAgICAg
KiBwMm1fY3IzIGlzIGluIHRoZSBzYW1lIGZvcm1hdCBhcyBhIGNyMyB2YWx1ZSBpbiB0aGUgdmNw
dSByZWdpc3RlciBzdGF0ZQorICAgICAqIGFuZCBob2xkcyB0aGUgZm9sZGVkIG1hY2hpbmUgZnJh
bWUgbnVtYmVyICh2aWEgeGVuX3Bmbl90b19jcjMpIG9mIGEKKyAgICAgKiBMMyBvciBMNCBwYWdl
IHRhYmxlLgorICAgICAqIHAybV92YWRkciBob2xkcyB0aGUgdmlydHVhbCBhZGRyZXNzIG9mIHRo
ZSBsaW5lYXIgcDJtIGxpc3QuIEFsbCBlbnRyaWVzCisgICAgICogaW4gdGhlIHJhbmdlIFswLi4u
bWF4X3BmblsgYXJlIGFjY2Vzc2libGUgdmlhIHRoaXMgcG9pbnRlci4KKyAgICAgKiBwMm1fZ2Vu
ZXJhdGlvbiB3aWxsIGJlIGluY3JlbWVudGVkIGJ5IHRoZSBndWVzdCBiZWZvcmUgYW5kIGFmdGVy
IGVhY2gKKyAgICAgKiBjaGFuZ2Ugb2YgdGhlIG1hcHBpbmdzIG9mIHRoZSBwMm0gbGlzdC4gcDJt
X2dlbmVyYXRpb24gc3RhcnRzIGF0IDAgYW5kCisgICAgICogYSB2YWx1ZSB3aXRoIHRoZSBsZWFz
dCBzaWduaWZpY2FudCBiaXQgc2V0IGluZGljYXRlcyB0aGF0IGEgbWFwcGluZworICAgICAqIHVw
ZGF0ZSBpcyBpbiBwcm9ncmVzcy4gVGhpcyBhbGxvd3MgZ3Vlc3QgZXh0ZXJuYWwgc29mdHdhcmUg
KGUuZy4gaW4gRG9tMCkKKyAgICAgKiB0byB2ZXJpZnkgdGhhdCByZWFkIG1hcHBpbmdzIGFyZSBj
b25zaXN0ZW50IGFuZCB3aGV0aGVyIHRoZXkgaGF2ZSBjaGFuZ2VkCisgICAgICogc2luY2UgdGhl
IGxhc3QgY2hlY2suCisgICAgICogTW9kaWZ5aW5nIGEgcDJtIGVsZW1lbnQgaW4gdGhlIGxpbmVh
ciBwMm0gbGlzdCBpcyBhbGxvd2VkIHZpYSBhbiBhdG9taWMKKyAgICAgKiB3cml0ZSBvbmx5Lgor
ICAgICAqLworICAgIFVMT05HX1BUUiBwMm1fY3IzOyAgICAgICAgIC8qIGNyMyB2YWx1ZSBvZiB0
aGUgcDJtIGFkZHJlc3Mgc3BhY2UgKi8KKyAgICBVTE9OR19QVFIgcDJtX3ZhZGRyOyAgICAgICAv
KiB2aXJ0dWFsIGFkZHJlc3Mgb2YgdGhlIHAybSBsaXN0ICovCisgICAgVUxPTkdfUFRSIHAybV9n
ZW5lcmF0aW9uOyAgLyogZ2VuZXJhdGlvbiBjb3VudCBvZiBwMm0gbWFwcGluZyAqLworI2lmZGVm
IF9faTM4Nl9fCisgICAgLyogVGhlcmUncyBubyByb29tIGZvciB0aGlzIGZpZWxkIGluIHRoZSBn
ZW5lcmljIHN0cnVjdHVyZS4gKi8KKyAgICB1aW50MzJfdCB3Y19zZWNfaGk7CisjZW5kaWYKK307
Cit0eXBlZGVmIHN0cnVjdCBhcmNoX3NoYXJlZF9pbmZvIGFyY2hfc2hhcmVkX2luZm9fdDsKKwor
I2lmIGRlZmluZWQoX19YRU5fXykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19fKQorLyoKKyAqIHN0
cnVjdCB4ZW5fYXJjaF9kb21haW5jb25maWcncyBBQkkgaXMgY292ZXJlZCBieQorICogWEVOX0RP
TUNUTF9JTlRFUkZBQ0VfVkVSU0lPTi4KKyAqLworc3RydWN0IHhlbl9hcmNoX2RvbWFpbmNvbmZp
ZyB7CisjZGVmaW5lIF9YRU5fWDg2X0VNVV9MQVBJQyAgICAgICAgICAwCisjZGVmaW5lIFhFTl9Y
ODZfRU1VX0xBUElDICAgICAgICAgICAoMVU8PF9YRU5fWDg2X0VNVV9MQVBJQykKKyNkZWZpbmUg
X1hFTl9YODZfRU1VX0hQRVQgICAgICAgICAgIDEKKyNkZWZpbmUgWEVOX1g4Nl9FTVVfSFBFVCAg
ICAgICAgICAgICgxVTw8X1hFTl9YODZfRU1VX0hQRVQpCisjZGVmaW5lIF9YRU5fWDg2X0VNVV9Q
TSAgICAgICAgICAgICAyCisjZGVmaW5lIFhFTl9YODZfRU1VX1BNICAgICAgICAgICAgICAoMVU8
PF9YRU5fWDg2X0VNVV9QTSkKKyNkZWZpbmUgX1hFTl9YODZfRU1VX1JUQyAgICAgICAgICAgIDMK
KyNkZWZpbmUgWEVOX1g4Nl9FTVVfUlRDICAgICAgICAgICAgICgxVTw8X1hFTl9YODZfRU1VX1JU
QykKKyNkZWZpbmUgX1hFTl9YODZfRU1VX0lPQVBJQyAgICAgICAgIDQKKyNkZWZpbmUgWEVOX1g4
Nl9FTVVfSU9BUElDICAgICAgICAgICgxVTw8X1hFTl9YODZfRU1VX0lPQVBJQykKKyNkZWZpbmUg
X1hFTl9YODZfRU1VX1BJQyAgICAgICAgICAgIDUKKyNkZWZpbmUgWEVOX1g4Nl9FTVVfUElDICAg
ICAgICAgICAgICgxVTw8X1hFTl9YODZfRU1VX1BJQykKKyNkZWZpbmUgX1hFTl9YODZfRU1VX1ZH
QSAgICAgICAgICAgIDYKKyNkZWZpbmUgWEVOX1g4Nl9FTVVfVkdBICAgICAgICAgICAgICgxVTw8
X1hFTl9YODZfRU1VX1ZHQSkKKyNkZWZpbmUgX1hFTl9YODZfRU1VX0lPTU1VICAgICAgICAgIDcK
KyNkZWZpbmUgWEVOX1g4Nl9FTVVfSU9NTVUgICAgICAgICAgICgxVTw8X1hFTl9YODZfRU1VX0lP
TU1VKQorI2RlZmluZSBfWEVOX1g4Nl9FTVVfUElUICAgICAgICAgICAgOAorI2RlZmluZSBYRU5f
WDg2X0VNVV9QSVQgICAgICAgICAgICAgKDFVPDxfWEVOX1g4Nl9FTVVfUElUKQorCisjZGVmaW5l
IFhFTl9YODZfRU1VX0FMTCAgICAgICAgICAgICAoWEVOX1g4Nl9FTVVfTEFQSUMgfCBYRU5fWDg2
X0VNVV9IUEVUIHwgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5f
WDg2X0VNVV9QTSB8IFhFTl9YODZfRU1VX1JUQyB8ICAgICAgXAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFhFTl9YODZfRU1VX0lPQVBJQyB8IFhFTl9YODZfRU1VX1BJQyB8
ICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX1g4Nl9FTVVfVkdB
IHwgWEVOX1g4Nl9FTVVfSU9NTVUgfCAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBYRU5fWDg2X0VNVV9QSVQpCisgICAgdWludDMyX3QgZW11bGF0aW9uX2ZsYWdzOwor
fTsKKyNlbmRpZgorCisjZW5kaWYgLyogIV9fQVNTRU1CTFlfXyAqLworCisvKgorICogYCBlbnVt
IG5lZ19lcnJub3ZhbAorICogYCBIWVBFUlZJU09SX2ZwdV90YXNrc3dpdGNoKGludCBzZXQpOwor
ICogYAorICogU2V0cyAoaWYgc2V0IT0wKSBvciBjbGVhcnMgKGlmIHNldD09MCkgQ1IwLlRTLgor
ICovCisKKy8qCisgKiBgIGVudW0gbmVnX2Vycm5vdmFsCisgKiBgIEhZUEVSVklTT1Jfc2V0X2Rl
YnVncmVnKGludCByZWdubywgVUxPTkdfUFRSIHZhbHVlKTsKKyAqCisgKiBgIFVMT05HX1BUUgor
ICogYCBIWVBFUlZJU09SX2dldF9kZWJ1Z3JlZyhpbnQgcmVnbm8pOworICogRm9yIDA8PXJlZzw9
NywgcmV0dXJucyB0aGUgZGVidWcgcmVnaXN0ZXIgdmFsdWUuCisgKiBGb3Igb3RoZXIgdmFsdWVz
IG9mIHJlZywgcmV0dXJucyAoKFVMT05HX1BUUiktRUlOVkFMKS4KKyAqIChVbmZvcnR1bmF0ZWx5
LCB0aGlzIGludGVyZmFjZSBpcyBkZWZlY3RpdmUuKQorICovCisKKy8qCisgKiBQcmVmaXggZm9y
Y2VzIGVtdWxhdGlvbiBvZiBzb21lIG5vbi10cmFwcGluZyBpbnN0cnVjdGlvbnMuCisgKiBDdXJy
ZW50bHkgb25seSBDUFVJRC4KKyAqLworI2lmZGVmIF9fQVNTRU1CTFlfXworI2RlZmluZSBYRU5f
RU1VTEFURV9QUkVGSVggLmJ5dGUgMHgwZiwweDBiLDB4NzgsMHg2NSwweDZlIDsKKyNkZWZpbmUg
WEVOX0NQVUlEICAgICAgICAgIFhFTl9FTVVMQVRFX1BSRUZJWCBjcHVpZAorI2Vsc2UKKyNkZWZp
bmUgWEVOX0VNVUxBVEVfUFJFRklYICIuYnl0ZSAweDBmLDB4MGIsMHg3OCwweDY1LDB4NmUgOyAi
CisjZGVmaW5lIFhFTl9DUFVJRCAgICAgICAgICBYRU5fRU1VTEFURV9QUkVGSVggImNwdWlkIgor
I2VuZGlmCisKKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfQVJDSF9YODZfWEVOX0hfXyAqLworCisv
KgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAiQlNE
IgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50LXRhYnMt
bW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3B1YmxpYy9o
dm0vaHZtX2luZm9fdGFibGUuaCBiL2luY2x1ZGUveGVuL3B1YmxpYy9odm0vaHZtX2luZm9fdGFi
bGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOTJlOGY3Ci0tLSAvZGV2
L251bGwKKysrIGIvaW5jbHVkZS94ZW4vcHVibGljL2h2bS9odm1faW5mb190YWJsZS5oCkBAIC0w
LDAgKzEsNzQgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIGh2bS9odm1faW5mb190YWJs
ZS5oCisgKgorICogSFZNIHBhcmFtZXRlciBhbmQgaW5mb3JtYXRpb24gdGFibGUsIHdyaXR0ZW4g
aW50byBndWVzdCBtZW1vcnkgbWFwLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50
ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyAqIG9m
IHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJT
b2Z0d2FyZSIpLCB0bworICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlv
biwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKKyAqIHJpZ2h0cyB0byB1c2UsIGNv
cHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9v
cgorICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMg
dG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0
byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBu
b3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAq
IGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoK
KyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9G
IEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1J
VEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRQorICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFO
WSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFD
VElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9V
VCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RI
RVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIw
MDYsIEtlaXIgRnJhc2VyCisgKi8KKworI2lmbmRlZiBfX1hFTl9QVUJMSUNfSFZNX0hWTV9JTkZP
X1RBQkxFX0hfXworI2RlZmluZSBfX1hFTl9QVUJMSUNfSFZNX0hWTV9JTkZPX1RBQkxFX0hfXwor
CisjZGVmaW5lIEhWTV9JTkZPX1BGTiAgICAgICAgIDB4MDlGCisjZGVmaW5lIEhWTV9JTkZPX09G
RlNFVCAgICAgIDB4ODAwCisjZGVmaW5lIEhWTV9JTkZPX1BBRERSICAgICAgICgoSFZNX0lORk9f
UEZOIDw8IDEyKSArIEhWTV9JTkZPX09GRlNFVCkKKworLyogTWF4aW11bSB3ZSBjYW4gc3VwcG9y
dCB3aXRoIGN1cnJlbnQgdkxBUElDIElEIG1hcHBpbmcuICovCisjZGVmaW5lIEhWTV9NQVhfVkNQ
VVMgICAgICAgIDEyOAorCitzdHJ1Y3QgaHZtX2luZm9fdGFibGUgeworICAgIGNoYXIgICAgICAg
IHNpZ25hdHVyZVs4XTsgLyogIkhWTSBJTkZPIiAqLworICAgIHVpbnQzMl90ICAgIGxlbmd0aDsK
KyAgICB1aW50OF90ICAgICBjaGVja3N1bTsKKworICAgIC8qIFNob3VsZCBmaXJtd2FyZSBidWls
ZCBBUElDIGRlc2NyaXB0b3JzIChBUElDIE1BRFQgLyBNUCBCSU9TKT8gKi8KKyAgICB1aW50OF90
ICAgICBhcGljX21vZGU7CisKKyAgICAvKiBIb3cgbWFueSBDUFVzIGRvZXMgdGhpcyBkb21haW4g
aGF2ZT8gKi8KKyAgICB1aW50MzJfdCAgICBucl92Y3B1czsKKworICAgIC8qCisgICAgICogTUVN
T1JZIE1BUCBwcm92aWRlZCBieSBIVk0gZG9tYWluIGJ1aWxkZXIuCisgICAgICogTm90ZXM6Cisg
ICAgICogIDEuIHBhZ2VfdG9fcGh5cyh4KSA9IHggPDwgMTIKKyAgICAgKiAgMi4gSWYgYSBmaWVs
ZCBpcyB6ZXJvLCB0aGUgY29ycmVzcG9uZGluZyByYW5nZSBkb2VzIG5vdCBleGlzdC4KKyAgICAg
Ki8KKyAgICAvKgorICAgICAqICAweDAgdG8gcGFnZV90b19waHlzKGxvd19tZW1fcGdlbmQpLTE6
CisgICAgICogICAgUkFNIGJlbG93IDRHQiAoZXhjZXB0IGZvciBWR0EgaG9sZSAweEEwMDAwLTB4
QkZGRkYpCisgICAgICovCisgICAgdWludDMyX3QgICAgbG93X21lbV9wZ2VuZDsKKyAgICAvKgor
ICAgICAqICBwYWdlX3RvX3BoeXMocmVzZXJ2ZWRfbWVtX3Bnc3RhcnQpIHRvIDB4RkZGRkZGRkY6
CisgICAgICogICAgUmVzZXJ2ZWQgZm9yIHNwZWNpYWwgbWVtb3J5IG1hcHBpbmdzCisgICAgICov
CisgICAgdWludDMyX3QgICAgcmVzZXJ2ZWRfbWVtX3Bnc3RhcnQ7CisgICAgLyoKKyAgICAgKiAg
MHgxMDAwMDAwMDAgdG8gcGFnZV90b19waHlzKGhpZ2hfbWVtX3BnZW5kKS0xOgorICAgICAqICAg
IFJBTSBhYm92ZSA0R0IKKyAgICAgKi8KKyAgICB1aW50MzJfdCAgICBoaWdoX21lbV9wZ2VuZDsK
KworICAgIC8qIEJpdG1hcCBvZiB3aGljaCBDUFVzIGFyZSBvbmxpbmUgYXQgYm9vdCB0aW1lLiAq
LworICAgIHVpbnQ4X3QgICAgIHZjcHVfb25saW5lWyhIVk1fTUFYX1ZDUFVTICsgNykvOF07Cit9
OworCisjZW5kaWYgLyogX19YRU5fUFVCTElDX0hWTV9IVk1fSU5GT19UQUJMRV9IX18gKi8KZGlm
ZiAtLWdpdCBhL2luY2x1ZGUveGVuL3B1YmxpYy94ZW4tY29tcGF0LmggYi9pbmNsdWRlL3hlbi9w
dWJsaWMveGVuLWNvbXBhdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJl
ZWEwZTIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL3hlbi9wdWJsaWMveGVuLWNvbXBhdC5o
CkBAIC0wLDAgKzEsNDQgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIHhlbi1jb21wYXQu
aAorICoKKyAqIEd1ZXN0IE9TIGludGVyZmFjZSB0byBYZW4uICBDb21wYXRpYmlsaXR5IGxheWVy
LgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0
byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFz
c29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bworICogZGVh
bCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQg
bGltaXRhdGlvbiB0aGUKKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1
Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgorICogc2VsbCBjb3BpZXMgb2Yg
dGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUg
aXMKKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlz
c2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3Rh
bnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9S
CisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorICogQVVUSE9SUyBP
UiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBP
VEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9S
VCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9O
IFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRI
RSBTT0ZUV0FSRS4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDYsIENocmlzdGlhbiBMaW1wYWNo
CisgKi8KKworI2lmbmRlZiBfX1hFTl9QVUJMSUNfWEVOX0NPTVBBVF9IX18KKyNkZWZpbmUgX19Y
RU5fUFVCTElDX1hFTl9DT01QQVRfSF9fCisKKyNkZWZpbmUgX19YRU5fTEFURVNUX0lOVEVSRkFD
RV9WRVJTSU9OX18gMHgwMDA0MDcwMAorCisjaWYgZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVk
KF9fWEVOX1RPT0xTX18pCisvKiBYZW4gaXMgYnVpbHQgd2l0aCBtYXRjaGluZyBoZWFkZXJzIGFu
ZCBpbXBsZW1lbnRzIHRoZSBsYXRlc3QgaW50ZXJmYWNlLiAqLworI2RlZmluZSBfX1hFTl9JTlRF
UkZBQ0VfVkVSU0lPTl9fIF9fWEVOX0xBVEVTVF9JTlRFUkZBQ0VfVkVSU0lPTl9fCisjZWxpZiAh
ZGVmaW5lZChfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fKQorLyogR3Vlc3RzIHdoaWNoIGRvIG5v
dCBzcGVjaWZ5IGEgdmVyc2lvbiBnZXQgdGhlIGxlZ2FjeSBpbnRlcmZhY2UuICovCisjZGVmaW5l
IF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gMHgwMDAwMDAwMAorI2VuZGlmCisKKyNpZiBfX1hF
Tl9JTlRFUkZBQ0VfVkVSU0lPTl9fID4gX19YRU5fTEFURVNUX0lOVEVSRkFDRV9WRVJTSU9OX18K
KyNlcnJvciAiVGhlc2UgaGVhZGVyIGZpbGVzIGRvIG5vdCBzdXBwb3J0IHRoZSByZXF1ZXN0ZWQg
aW50ZXJmYWNlIHZlcnNpb24uIgorI2VuZGlmCisKKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfWEVO
X0NPTVBBVF9IX18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3B1YmxpYy94ZW4uaCBiL2lu
Y2x1ZGUveGVuL3B1YmxpYy94ZW4uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4yMDU3YjUyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS94ZW4vcHVibGljL3hlbi5oCkBA
IC0wLDAgKzEsOTk1IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiB4ZW4uaAorICoKKyAq
IEd1ZXN0IE9TIGludGVyZmFjZSB0byBYZW4uCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkg
Z3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQor
ICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0
aGUgIlNvZnR3YXJlIiksIHRvCisgKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3Ry
aWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQorICogcmlnaHRzIHRvIHVz
ZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwg
YW5kL29yCisgKiBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVy
c29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJq
ZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJp
Z2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBp
bgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUu
CisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFO
VFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9U
IExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFCisgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBG
T1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
QU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJP
TSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBP
UiBPVEhFUgorICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIENvcHlyaWdodCAo
YykgMjAwNCwgSyBBIEZyYXNlcgorICovCisKKyNpZm5kZWYgX19YRU5fUFVCTElDX1hFTl9IX18K
KyNkZWZpbmUgX19YRU5fUFVCTElDX1hFTl9IX18KKworI2luY2x1ZGUgInhlbi1jb21wYXQuaCIK
KworI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKKyNpbmNsdWRl
ICJhcmNoLXg4Ni94ZW4uaCIKKyNlbGlmIGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZCAoX19h
YXJjaDY0X18pCisjaW5jbHVkZSAiYXJjaC1hcm0uaCIKKyNlbHNlCisjZXJyb3IgIlVuc3VwcG9y
dGVkIGFyY2hpdGVjdHVyZSIKKyNlbmRpZgorCisjaWZuZGVmIF9fQVNTRU1CTFlfXworLyogR3Vl
c3QgaGFuZGxlcyBmb3IgcHJpbWl0aXZlIEMgdHlwZXMuICovCitERUZJTkVfWEVOX0dVRVNUX0hB
TkRMRShjaGFyKTsKK19fREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUodWNoYXIsIHVuc2lnbmVkIGNo
YXIpOworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoaW50KTsKK19fREVGSU5FX1hFTl9HVUVTVF9I
QU5ETEUodWludCwgIHVuc2lnbmVkIGludCk7CisjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05f
XyA8IDB4MDAwNDAzMDAKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKExPTkdfUFRSKTsKK19fREVG
SU5FX1hFTl9HVUVTVF9IQU5ETEUodWxvbmcsIFVMT05HX1BUUik7CisjZW5kaWYKK0RFRklORV9Y
RU5fR1VFU1RfSEFORExFKHZvaWQpOworCitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh1aW50NjRf
dCk7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fcGZuX3QpOworREVGSU5FX1hFTl9HVUVT
VF9IQU5ETEUoeGVuX3Vsb25nX3QpOworCisvKiBUdXJuIGEgcGxhaW4gbnVtYmVyIGludG8gYSBD
IHVuc2lnbmVkIChMT05HX1BUUikgY29uc3RhbnQuICovCisjZGVmaW5lIF9feGVuX21rX3VpbnQo
eCkgIHggIyMgVQorI2RlZmluZSBfX3hlbl9ta191bG9uZyh4KSB4ICMjIFVMCisjZGVmaW5lIHhl
bl9ta191aW50KHgpICAgIF9feGVuX21rX3VpbnQoeCkKKyNkZWZpbmUgeGVuX21rX3Vsb25nKHgp
ICAgX194ZW5fbWtfdWxvbmcoeCkKKworI2Vsc2UKKworLyogSW4gYXNzZW1ibHkgY29kZSB3ZSBj
YW5ub3QgdXNlIEMgbnVtZXJpYyBjb25zdGFudCBzdWZmaXhlcy4gKi8KKyNkZWZpbmUgeGVuX21r
X3VpbnQoeCkgIHgKKyNkZWZpbmUgeGVuX21rX3Vsb25nKHgpIHgKKworI2VuZGlmCisKKy8qCisg
KiBIWVBFUkNBTExTCisgKi8KKworLyogYGluY29udGVudHMgMTAwIGhjYWxscyBMaXN0IG9mIGh5
cGVyY2FsbHMKKyAqIGAgZW51bSBoeXBlcmNhbGxfbnVtIHsgLy8gX19IWVBFUlZJU09SXyogPT4g
SFlQRVJWSVNPUl8qKCkKKyAqLworCisjZGVmaW5lIF9fSFlQRVJWSVNPUl9zZXRfdHJhcF90YWJs
ZSAgICAgICAgMAorI2RlZmluZSBfX0hZUEVSVklTT1JfbW11X3VwZGF0ZSAgICAgICAgICAgIDEK
KyNkZWZpbmUgX19IWVBFUlZJU09SX3NldF9nZHQgICAgICAgICAgICAgICAyCisjZGVmaW5lIF9f
SFlQRVJWSVNPUl9zdGFja19zd2l0Y2ggICAgICAgICAgMworI2RlZmluZSBfX0hZUEVSVklTT1Jf
c2V0X2NhbGxiYWNrcyAgICAgICAgIDQKKyNkZWZpbmUgX19IWVBFUlZJU09SX2ZwdV90YXNrc3dp
dGNoICAgICAgICA1CisjZGVmaW5lIF9fSFlQRVJWSVNPUl9zY2hlZF9vcF9jb21wYXQgICAgICAg
NiAvKiBjb21wYXQgc2luY2UgMHgwMDAzMDEwMSAqLworI2RlZmluZSBfX0hZUEVSVklTT1JfcGxh
dGZvcm1fb3AgICAgICAgICAgIDcKKyNkZWZpbmUgX19IWVBFUlZJU09SX3NldF9kZWJ1Z3JlZyAg
ICAgICAgICA4CisjZGVmaW5lIF9fSFlQRVJWSVNPUl9nZXRfZGVidWdyZWcgICAgICAgICAgOQor
I2RlZmluZSBfX0hZUEVSVklTT1JfdXBkYXRlX2Rlc2NyaXB0b3IgICAgMTAKKyNkZWZpbmUgX19I
WVBFUlZJU09SX21lbW9yeV9vcCAgICAgICAgICAgIDEyCisjZGVmaW5lIF9fSFlQRVJWSVNPUl9t
dWx0aWNhbGwgICAgICAgICAgICAxMworI2RlZmluZSBfX0hZUEVSVklTT1JfdXBkYXRlX3ZhX21h
cHBpbmcgICAgMTQKKyNkZWZpbmUgX19IWVBFUlZJU09SX3NldF90aW1lcl9vcCAgICAgICAgIDE1
CisjZGVmaW5lIF9fSFlQRVJWSVNPUl9ldmVudF9jaGFubmVsX29wX2NvbXBhdCAxNiAvKiBjb21w
YXQgc2luY2UgMHgwMDAzMDIwMiAqLworI2RlZmluZSBfX0hZUEVSVklTT1JfeGVuX3ZlcnNpb24g
ICAgICAgICAgMTcKKyNkZWZpbmUgX19IWVBFUlZJU09SX2NvbnNvbGVfaW8gICAgICAgICAgIDE4
CisjZGVmaW5lIF9fSFlQRVJWSVNPUl9waHlzZGV2X29wX2NvbXBhdCAgICAxOSAvKiBjb21wYXQg
c2luY2UgMHgwMDAzMDIwMiAqLworI2RlZmluZSBfX0hZUEVSVklTT1JfZ3JhbnRfdGFibGVfb3Ag
ICAgICAgMjAKKyNkZWZpbmUgX19IWVBFUlZJU09SX3ZtX2Fzc2lzdCAgICAgICAgICAgIDIxCisj
ZGVmaW5lIF9fSFlQRVJWSVNPUl91cGRhdGVfdmFfbWFwcGluZ19vdGhlcmRvbWFpbiAyMgorI2Rl
ZmluZSBfX0hZUEVSVklTT1JfaXJldCAgICAgICAgICAgICAgICAgMjMgLyogeDg2IG9ubHkgKi8K
KyNkZWZpbmUgX19IWVBFUlZJU09SX3ZjcHVfb3AgICAgICAgICAgICAgIDI0CisjZGVmaW5lIF9f
SFlQRVJWSVNPUl9zZXRfc2VnbWVudF9iYXNlICAgICAyNSAvKiB4ODYvNjQgb25seSAqLworI2Rl
ZmluZSBfX0hZUEVSVklTT1JfbW11ZXh0X29wICAgICAgICAgICAgMjYKKyNkZWZpbmUgX19IWVBF
UlZJU09SX3hzbV9vcCAgICAgICAgICAgICAgIDI3CisjZGVmaW5lIF9fSFlQRVJWSVNPUl9ubWlf
b3AgICAgICAgICAgICAgICAyOAorI2RlZmluZSBfX0hZUEVSVklTT1Jfc2NoZWRfb3AgICAgICAg
ICAgICAgMjkKKyNkZWZpbmUgX19IWVBFUlZJU09SX2NhbGxiYWNrX29wICAgICAgICAgIDMwCisj
ZGVmaW5lIF9fSFlQRVJWSVNPUl94ZW5vcHJvZl9vcCAgICAgICAgICAzMQorI2RlZmluZSBfX0hZ
UEVSVklTT1JfZXZlbnRfY2hhbm5lbF9vcCAgICAgMzIKKyNkZWZpbmUgX19IWVBFUlZJU09SX3Bo
eXNkZXZfb3AgICAgICAgICAgIDMzCisjZGVmaW5lIF9fSFlQRVJWSVNPUl9odm1fb3AgICAgICAg
ICAgICAgICAzNAorI2RlZmluZSBfX0hZUEVSVklTT1Jfc3lzY3RsICAgICAgICAgICAgICAgMzUK
KyNkZWZpbmUgX19IWVBFUlZJU09SX2RvbWN0bCAgICAgICAgICAgICAgIDM2CisjZGVmaW5lIF9f
SFlQRVJWSVNPUl9rZXhlY19vcCAgICAgICAgICAgICAzNworI2RlZmluZSBfX0hZUEVSVklTT1Jf
dG1lbV9vcCAgICAgICAgICAgICAgMzgKKyNkZWZpbmUgX19IWVBFUlZJU09SX3hjX3Jlc2VydmVk
X29wICAgICAgIDM5IC8qIHJlc2VydmVkIGZvciBYZW5DbGllbnQgKi8KKyNkZWZpbmUgX19IWVBF
UlZJU09SX3hlbnBtdV9vcCAgICAgICAgICAgIDQwCisKKy8qIEFyY2hpdGVjdHVyZS1zcGVjaWZp
YyBoeXBlcmNhbGwgZGVmaW5pdGlvbnMuICovCisjZGVmaW5lIF9fSFlQRVJWSVNPUl9hcmNoXzAg
ICAgICAgICAgICAgICA0OAorI2RlZmluZSBfX0hZUEVSVklTT1JfYXJjaF8xICAgICAgICAgICAg
ICAgNDkKKyNkZWZpbmUgX19IWVBFUlZJU09SX2FyY2hfMiAgICAgICAgICAgICAgIDUwCisjZGVm
aW5lIF9fSFlQRVJWSVNPUl9hcmNoXzMgICAgICAgICAgICAgICA1MQorI2RlZmluZSBfX0hZUEVS
VklTT1JfYXJjaF80ICAgICAgICAgICAgICAgNTIKKyNkZWZpbmUgX19IWVBFUlZJU09SX2FyY2hf
NSAgICAgICAgICAgICAgIDUzCisjZGVmaW5lIF9fSFlQRVJWSVNPUl9hcmNoXzYgICAgICAgICAg
ICAgICA1NAorI2RlZmluZSBfX0hZUEVSVklTT1JfYXJjaF83ICAgICAgICAgICAgICAgNTUKKwor
LyogYCB9ICovCisKKy8qCisgKiBIWVBFUkNBTEwgQ09NUEFUSUJJTElUWS4KKyAqLworCisvKiBO
ZXcgc2NoZWRfb3AgaHlwZXJjYWxsIGludHJvZHVjZWQgaW4gMHgwMDAzMDEwMS4gKi8KKyNpZiBf
X1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fIDwgMHgwMDAzMDEwMQorI3VuZGVmIF9fSFlQRVJWSVNP
Ul9zY2hlZF9vcAorI2RlZmluZSBfX0hZUEVSVklTT1Jfc2NoZWRfb3AgX19IWVBFUlZJU09SX3Nj
aGVkX29wX2NvbXBhdAorI2VuZGlmCisKKy8qIE5ldyBldmVudC1jaGFubmVsIGFuZCBwaHlzZGV2
IGh5cGVyY2FsbHMgaW50cm9kdWNlZCBpbiAweDAwMDMwMjAyLiAqLworI2lmIF9fWEVOX0lOVEVS
RkFDRV9WRVJTSU9OX18gPCAweDAwMDMwMjAyCisjdW5kZWYgX19IWVBFUlZJU09SX2V2ZW50X2No
YW5uZWxfb3AKKyNkZWZpbmUgX19IWVBFUlZJU09SX2V2ZW50X2NoYW5uZWxfb3AgX19IWVBFUlZJ
U09SX2V2ZW50X2NoYW5uZWxfb3BfY29tcGF0CisjdW5kZWYgX19IWVBFUlZJU09SX3BoeXNkZXZf
b3AKKyNkZWZpbmUgX19IWVBFUlZJU09SX3BoeXNkZXZfb3AgX19IWVBFUlZJU09SX3BoeXNkZXZf
b3BfY29tcGF0CisjZW5kaWYKKworLyogTmV3IHBsYXRmb3JtX29wIGh5cGVyY2FsbCBpbnRyb2R1
Y2VkIGluIDB4MDAwMzAyMDQuICovCisjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA8IDB4
MDAwMzAyMDQKKyNkZWZpbmUgX19IWVBFUlZJU09SX2RvbTBfb3AgX19IWVBFUlZJU09SX3BsYXRm
b3JtX29wCisjZW5kaWYKKworLyoKKyAqIFZJUlRVQUwgSU5URVJSVVBUUworICoKKyAqIFZpcnR1
YWwgaW50ZXJydXB0cyB0aGF0IGEgZ3Vlc3QgT1MgbWF5IHJlY2VpdmUgZnJvbSBYZW4uCisgKgor
ICogSW4gdGhlIHNpZGUgY29tbWVudHMsICdWLicgZGVub3RlcyBhIHBlci1WQ1BVIFZJUlEgd2hp
bGUgJ0cuJyBkZW5vdGVzIGEKKyAqIGdsb2JhbCBWSVJRLiBUaGUgZm9ybWVyIGNhbiBiZSBib3Vu
ZCBvbmNlIHBlciBWQ1BVIGFuZCBjYW5ub3QgYmUgcmUtYm91bmQuCisgKiBUaGUgbGF0dGVyIGNh
biBiZSBhbGxvY2F0ZWQgb25seSBvbmNlIHBlciBndWVzdDogdGhleSBtdXN0IGluaXRpYWxseSBi
ZQorICogYWxsb2NhdGVkIHRvIFZDUFUwIGJ1dCBjYW4gc3Vic2VxdWVudGx5IGJlIHJlLWJvdW5k
LgorICovCisvKiBgIGVudW0gdmlycSB7ICovCisjZGVmaW5lIFZJUlFfVElNRVIgICAgICAwICAv
KiBWLiBUaW1lYmFzZSB1cGRhdGUsIGFuZC9vciByZXF1ZXN0ZWQgdGltZW91dC4gICovCisjZGVm
aW5lIFZJUlFfREVCVUcgICAgICAxICAvKiBWLiBSZXF1ZXN0IGd1ZXN0IHRvIGR1bXAgZGVidWcg
aW5mby4gICAgICAgICAgICovCisjZGVmaW5lIFZJUlFfQ09OU09MRSAgICAyICAvKiBHLiAoRE9N
MCkgQnl0ZXMgcmVjZWl2ZWQgb24gZW1lcmdlbmN5IGNvbnNvbGUuICovCisjZGVmaW5lIFZJUlFf
RE9NX0VYQyAgICAzICAvKiBHLiAoRE9NMCkgRXhjZXB0aW9uYWwgZXZlbnQgZm9yIHNvbWUgZG9t
YWluLiAgICovCisjZGVmaW5lIFZJUlFfVEJVRiAgICAgICA0ICAvKiBHLiAoRE9NMCkgVHJhY2Ug
YnVmZmVyIGhhcyByZWNvcmRzIGF2YWlsYWJsZS4gICovCisjZGVmaW5lIFZJUlFfREVCVUdHRVIg
ICA2ICAvKiBHLiAoRE9NMCkgQSBkb21haW4gaGFzIHBhdXNlZCBmb3IgZGVidWdnaW5nLiAgICov
CisjZGVmaW5lIFZJUlFfWEVOT1BST0YgICA3ICAvKiBWLiBYZW5PcHJvZmlsZSBpbnRlcnJ1cHQ6
IG5ldyBzYW1wbGUgYXZhaWxhYmxlICovCisjZGVmaW5lIFZJUlFfQ09OX1JJTkcgICA4ICAvKiBH
LiAoRE9NMCkgQnl0ZXMgcmVjZWl2ZWQgb24gY29uc29sZSAgICAgICAgICAgICovCisjZGVmaW5l
IFZJUlFfUENQVV9TVEFURSA5ICAvKiBHLiAoRE9NMCkgUENQVSBzdGF0ZSBjaGFuZ2VkICAgICAg
ICAgICAgICAgICAgICovCisjZGVmaW5lIFZJUlFfTUVNX0VWRU5UICAxMCAvKiBHLiAoRE9NMCkg
QSBtZW1vcnkgZXZlbnQgaGFzIG9jY3VyZWQgICAgICAgICAgICovCisjZGVmaW5lIFZJUlFfWENf
UkVTRVJWRUQgMTEgLyogRy4gUmVzZXJ2ZWQgZm9yIFhlbkNsaWVudCAgICAgICAgICAgICAgICAg
ICAgICovCisjZGVmaW5lIFZJUlFfRU5PTUVNICAgICAxMiAvKiBHLiAoRE9NMCkgTG93IG9uIGhl
YXAgbWVtb3J5ICAgICAgICovCisjZGVmaW5lIFZJUlFfWEVOUE1VICAgICAxMyAvKiBWLiAgUE1D
IGludGVycnVwdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisKKy8qIEFyY2hpdGVj
dHVyZS1zcGVjaWZpYyBWSVJRIGRlZmluaXRpb25zLiAqLworI2RlZmluZSBWSVJRX0FSQ0hfMCAg
ICAxNgorI2RlZmluZSBWSVJRX0FSQ0hfMSAgICAxNworI2RlZmluZSBWSVJRX0FSQ0hfMiAgICAx
OAorI2RlZmluZSBWSVJRX0FSQ0hfMyAgICAxOQorI2RlZmluZSBWSVJRX0FSQ0hfNCAgICAyMAor
I2RlZmluZSBWSVJRX0FSQ0hfNSAgICAyMQorI2RlZmluZSBWSVJRX0FSQ0hfNiAgICAyMgorI2Rl
ZmluZSBWSVJRX0FSQ0hfNyAgICAyMworLyogYCB9ICovCisKKyNkZWZpbmUgTlJfVklSUVMgICAg
ICAgMjQKKworLyoKKyAqIGAgZW51bSBuZWdfZXJybm92YWwKKyAqIGAgSFlQRVJWSVNPUl9tbXVf
dXBkYXRlKGNvbnN0IHN0cnVjdCBtbXVfdXBkYXRlIHJlcXNbXSwKKyAqIGAgICAgICAgICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIGNvdW50LCB1bnNpZ25lZCAqZG9uZV9vdXQsCisgKiBgICAgICAg
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBmb3JlaWduZG9tKQorICogYAorICogQHJlcXMgaXMg
YW4gYXJyYXkgb2YgbW11X3VwZGF0ZV90IHN0cnVjdHVyZXMgKChwdHIsIHZhbCkgcGFpcnMpLgor
ICogQGNvdW50IGlzIHRoZSBsZW5ndGggb2YgdGhlIGFib3ZlIGFycmF5LgorICogQHBkb25lIGlz
IGFuIG91dHB1dCBwYXJhbWV0ZXIgaW5kaWNhdGluZyBudW1iZXIgb2YgY29tcGxldGVkIG9wZXJh
dGlvbnMKKyAqIEBmb3JlaWduZG9tWzE1OjBdOiBGRCwgdGhlIGV4cGVjdGVkIG93bmVyIG9mIGRh
dGEgcGFnZXMgcmVmZXJlbmNlZCBpbiB0aGlzCisgKiAgICAgICAgICAgICAgICAgICAgaHlwZXJj
YWxsIGludm9jYXRpb24uIENhbiBiZSBET01JRF9TRUxGLgorICogQGZvcmVpZ25kb21bMzE6MTZd
OiBQRkQsIHRoZSBleHBlY3RlZCBvd25lciBvZiBwYWdldGFibGUgcGFnZXMgcmVmZXJlbmNlZAor
ICogICAgICAgICAgICAgICAgICAgICBpbiB0aGlzIGh5cGVyY2FsbCBpbnZvY2F0aW9uLiBUaGUg
dmFsdWUgb2YgdGhpcyBmaWVsZAorICogICAgICAgICAgICAgICAgICAgICAoeCkgZW5jb2RlcyB0
aGUgUEZEIGFzIGZvbGxvd3M6CisgKiAgICAgICAgICAgICAgICAgICAgIHggPT0gMCA9PiBQRkQg
PT0gRE9NSURfU0VMRgorICogICAgICAgICAgICAgICAgICAgICB4ICE9IDAgPT4gUEZEID09IHgg
LSAxCisgKgorICogU3ViLWNvbW1hbmRzOiBwdHJbMTowXSBzcGVjaWZpZXMgdGhlIGFwcHJvcHJp
YXRlIE1NVV8qIGNvbW1hbmQuCisgKiAtLS0tLS0tLS0tLS0tCisgKiBwdHJbMTowXSA9PSBNTVVf
Tk9STUFMX1BUX1VQREFURToKKyAqIFVwZGF0ZXMgYW4gZW50cnkgaW4gYSBwYWdlIHRhYmxlIGJl
bG9uZ2luZyB0byBQRkQuIElmIHVwZGF0aW5nIGFuIEwxIHRhYmxlLAorICogYW5kIHRoZSBuZXcg
dGFibGUgZW50cnkgaXMgdmFsaWQvcHJlc2VudCwgdGhlIG1hcHBlZCBmcmFtZSBtdXN0IGJlbG9u
ZyB0bworICogRkQuIElmIGF0dGVtcHRpbmcgdG8gbWFwIGFuIEkvTyBwYWdlIHRoZW4gdGhlIGNh
bGxlciBhc3N1bWVzIHRoZSBwcml2aWxlZ2UKKyAqIG9mIHRoZSBGRC4KKyAqIEZEID09IERPTUlE
X0lPOiBQZXJtaXQgL29ubHkvIEkvTyBtYXBwaW5ncywgYXQgdGhlIHByaXYgbGV2ZWwgb2YgdGhl
IGNhbGxlci4KKyAqIEZEID09IERPTUlEX1hFTjogTWFwIHJlc3RyaWN0ZWQgYXJlYXMgb2YgWGVu
J3MgaGVhcCBzcGFjZS4KKyAqIHB0cls6Ml0gIC0tIE1hY2hpbmUgYWRkcmVzcyBvZiB0aGUgcGFn
ZS10YWJsZSBlbnRyeSB0byBtb2RpZnkuCisgKiB2YWwgICAgICAtLSBWYWx1ZSB0byB3cml0ZS4K
KyAqCisgKiBUaGVyZSBhbHNvIGNlcnRhaW4gaW1wbGljaXQgcmVxdWlyZW1lbnRzIHdoZW4gdXNp
bmcgdGhpcyBoeXBlcmNhbGwuIFRoZQorICogcGFnZXMgdGhhdCBtYWtlIHVwIGEgcGFnZXRhYmxl
IG11c3QgYmUgbWFwcGVkIHJlYWQtb25seSBpbiB0aGUgZ3Vlc3QuCisgKiBUaGlzIHByZXZlbnRz
IHVuY29udHJvbGxlZCBndWVzdCB1cGRhdGVzIHRvIHRoZSBwYWdldGFibGUuIFhlbiBzdHJpY3Rs
eQorICogZW5mb3JjZXMgdGhpcywgYW5kIHdpbGwgZGlzYWxsb3cgYW55IHBhZ2V0YWJsZSB1cGRh
dGUgd2hpY2ggd2lsbCBlbmQgdXAKKyAqIG1hcHBpbmcgcGFnZXRhYmxlIHBhZ2UgUlcsIGFuZCB3
aWxsIGRpc2FsbG93IHVzaW5nIGFueSB3cml0YWJsZSBwYWdlIGFzIGEKKyAqIHBhZ2V0YWJsZS4g
SW4gcHJhY3RpY2UgaXQgbWVhbnMgdGhhdCB3aGVuIGNvbnN0cnVjdGluZyBhIHBhZ2UgdGFibGUg
Zm9yIGEKKyAqIHByb2Nlc3MsIHRocmVhZCwgZXRjLCB3ZSBNVVNUIGJlIHZlcnkgZGlsbGlnaWVu
dCBpbiBmb2xsb3dpbmcgdGhlc2UgcnVsZXM6CisgKiAgMSkuIFN0YXJ0IHdpdGggdG9wLWxldmVs
IHBhZ2UgKFBHRCBvciBpbiBYZW4gbGFuZ3VhZ2U6IEw0KS4gRmlsbCBvdXQKKyAqICAgICAgdGhl
IGVudHJpZXMuCisgKiAgMikuIEtlZXAgb24gZ29pbmcsIGZpbGxpbmcgb3V0IHRoZSB1cHBlciAo
UFVEIG9yIEwzKSwgYW5kIG1pZGRsZSAoUE1ECisgKiAgICAgIG9yIEwyKS4KKyAqICAzKS4gU3Rh
cnQgZmlsbGluZyBvdXQgdGhlIFBURSB0YWJsZSAoTDEpIHdpdGggdGhlIFBURSBlbnRyaWVzLiBP
bmNlCisgKiAgCWRvbmUsIG1ha2Ugc3VyZSB0byBzZXQgZWFjaCBvZiB0aG9zZSBlbnRyaWVzIHRv
IFJPIChzbyB3cml0ZWFibGUgYml0CisgKiAgCWlzIHVuc2V0KS4gT25jZSB0aGF0IGhhcyBiZWVu
IGNvbXBsZXRlZCwgc2V0IHRoZSBQTUQgKEwyKSBmb3IgdGhpcworICogIAlQVEUgdGFibGUgYXMg
Uk8uCisgKiAgNCkuIFdoZW4gY29tcGxldGVkIHdpdGggYWxsIG9mIHRoZSBQTUQgKEwyKSBlbnRy
aWVzLCBhbmQgYWxsIG9mIHRoZW0gaGF2ZQorICogIAliZWVuIHNldCB0byBSTywgbWFrZSBzdXJl
IHRvIHNldCBSTyB0aGUgUFVEIChMMykuIERvIHRoZSBzYW1lCisgKiAgCW9wZXJhdGlvbiBvbiBQ
R0QgKEw0KSBwYWdldGFibGUgZW50cmllcyB0aGF0IGhhdmUgYSBQVUQgKEwzKSBlbnRyeS4KKyAq
ICA1KS4gTm93IGJlZm9yZSB5b3UgY2FuIHVzZSB0aG9zZSBwYWdlcyAoc28gc2V0dGluZyB0aGUg
Y3IzKSwgeW91IE1VU1QgYWxzbworICogICAgICBwaW4gdGhlbSBzbyB0aGF0IHRoZSBoeXBlcnZp
c29yIGNhbiB2ZXJpZnkgdGhlIGVudHJpZXMuIFRoaXMgaXMgZG9uZQorICogICAgICB2aWEgdGhl
IEhZUEVSVklTT1JfbW11ZXh0X29wKE1NVUVYVF9QSU5fTDRfVEFCTEUsIGd1ZXN0IHBoeXNpY2Fs
IGZyYW1lCisgKiAgICAgIG51bWJlciBvZiB0aGUgUEdEIChMNCkpLiBBbmQgdGhpcyBwb2ludCB0
aGUgSFlQRVJWSVNPUl9tbXVleHRfb3AoCisgKiAgICAgIE1NVUVYVF9ORVdfQkFTRVBUUiwgZ3Vl
c3QgcGh5c2ljYWwgZnJhbWUgbnVtYmVyIG9mIHRoZSBQR0QgKEw0KSkgY2FuIGJlCisgKiAgICAg
IGlzc3VlZC4KKyAqIEZvciAzMi1iaXQgZ3Vlc3RzLCB0aGUgTDQgaXMgbm90IHVzZWQgKGFzIHRo
ZXJlIGlzIGxlc3MgcGFnZXRhYmxlcyksIHNvCisgKiBpbnN0ZWFkIHVzZSBMMy4KKyAqIEF0IHRo
aXMgcG9pbnQgdGhlIHBhZ2V0YWJsZXMgY2FuIGJlIG1vZGlmaWVkIHVzaW5nIHRoZSBNTVVfTk9S
TUFMX1BUX1VQREFURQorICogaHlwZXJjYWxsLiBBbHNvIGlmIHNvIGRlc2lyZWQgdGhlIE9TIGNh
biBhbHNvIHRyeSB0byB3cml0ZSB0byB0aGUgUFRFCisgKiBhbmQgYmUgdHJhcHBlZCBieSB0aGUg
aHlwZXJ2aXNvciAoYXMgdGhlIFBURSBlbnRyeSBpcyBSTykuCisgKgorICogVG8gZGVhbGxvY2F0
ZSB0aGUgcGFnZXMsIHRoZSBvcGVyYXRpb25zIGFyZSB0aGUgcmV2ZXJzZSBvZiB0aGUgc3RlcHMK
KyAqIG1lbnRpb25lZCBhYm92ZS4gVGhlIGFyZ3VtZW50IGlzIE1NVUVYVF9VTlBJTl9UQUJMRSBm
b3IgYWxsIGxldmVscyBhbmQgdGhlCisgKiBwYWdldGFibGUgTVVTVCBub3QgYmUgaW4gdXNlICht
ZWFuaW5nIHRoYXQgdGhlIGNyMyBpcyBub3Qgc2V0IHRvIGl0KS4KKyAqCisgKiBwdHJbMTowXSA9
PSBNTVVfTUFDSFBIWVNfVVBEQVRFOgorICogVXBkYXRlcyBhbiBlbnRyeSBpbiB0aGUgbWFjaGlu
ZS0+cHNldWRvLXBoeXNpY2FsIG1hcHBpbmcgdGFibGUuCisgKiBwdHJbOjJdICAtLSBNYWNoaW5l
IGFkZHJlc3Mgd2l0aGluIHRoZSBmcmFtZSB3aG9zZSBtYXBwaW5nIHRvIG1vZGlmeS4KKyAqICAg
ICAgICAgICAgIFRoZSBmcmFtZSBtdXN0IGJlbG9uZyB0byB0aGUgRkQsIGlmIG9uZSBpcyBzcGVj
aWZpZWQuCisgKiB2YWwgICAgICAtLSBWYWx1ZSB0byB3cml0ZSBpbnRvIHRoZSBtYXBwaW5nIGVu
dHJ5LgorICoKKyAqIHB0clsxOjBdID09IE1NVV9QVF9VUERBVEVfUFJFU0VSVkVfQUQ6CisgKiBB
cyBNTVVfTk9STUFMX1BUX1VQREFURSBhYm92ZSwgYnV0IEEvRCBiaXRzIGN1cnJlbnRseSBpbiB0
aGUgUFRFIGFyZSBPUmVkCisgKiB3aXRoIHRob3NlIGluIEB2YWwuCisgKgorICogQHZhbCBpcyB1
c3VhbGx5IHRoZSBtYWNoaW5lIGZyYW1lIG51bWJlciBhbG9uZyB3aXRoIHNvbWUgYXR0cmlidXRl
cy4KKyAqIFRoZSBhdHRyaWJ1dGVzIGJ5IGRlZmF1bHQgZm9sbG93IHRoZSBhcmNoaXRlY3R1cmUg
ZGVmaW5lZCBiaXRzLiBNZWFuaW5nIHRoYXQKKyAqIGlmIHRoaXMgaXMgYSBYODZfNjQgbWFjaGlu
ZSBhbmQgZm91ciBwYWdlIHRhYmxlIGxheW91dCBpcyB1c2VkLCB0aGUgbGF5b3V0CisgKiBvZiB2
YWwgaXM6CisgKiAgLSA2MyBpZiBzZXQgbWVhbnMgTm8gZXhlY3V0ZSAoTlgpCisgKiAgLSA0Ni0x
MyB0aGUgbWFjaGluZSBmcmFtZSBudW1iZXIKKyAqICAtIDEyIGF2YWlsYWJsZSBmb3IgZ3Vlc3QK
KyAqICAtIDExIGF2YWlsYWJsZSBmb3IgZ3Vlc3QKKyAqICAtIDEwIGF2YWlsYWJsZSBmb3IgZ3Vl
c3QKKyAqICAtIDkgYXZhaWxhYmxlIGZvciBndWVzdAorICogIC0gOCBnbG9iYWwKKyAqICAtIDcg
UEFUIChQU0UgaXMgZGlzYWJsZWQsIG11c3QgdXNlIGh5cGVyY2FsbCB0byBtYWtlIDRNQiBvciAy
TUIgcGFnZXMpCisgKiAgLSA2IGRpcnR5CisgKiAgLSA1IGFjY2Vzc2VkCisgKiAgLSA0IHBhZ2Ug
Y2FjaGVkIGRpc2FibGVkCisgKiAgLSAzIHBhZ2Ugd3JpdGUgdGhyb3VnaAorICogIC0gMiB1c2Vy
c3BhY2UgYWNjZXNzaWJsZQorICogIC0gMSB3cml0ZWFibGUKKyAqICAtIDAgcHJlc2VudAorICoK
KyAqICBUaGUgb25lIGJpdHMgdGhhdCBkb2VzIG5vdCBmaXQgd2l0aCB0aGUgZGVmYXVsdCBsYXlv
dXQgaXMgdGhlIFBBR0VfUFNFCisgKiAgYWxzbyBjYWxsZWQgUEFHRV9QQVQpLiBUaGUgTU1VRVhU
X1tVTl1NQVJLX1NVUEVSIGFyZ3VtZW50cyB0byB0aGUKKyAqICBIWVBFUlZJU09SX21tdWV4dF9v
cCBzZXJ2ZSBhcyBtZWNoYW5pc20gdG8gc2V0IGEgcGFnZXRhYmxlIHRvIGJlIDRNQgorICogIChv
ciAyTUIpIGluc3RlYWQgb2YgdXNpbmcgdGhlIFBBR0VfUFNFIGJpdC4KKyAqCisgKiAgVGhlIHJl
YXNvbiB0aGF0IHRoZSBQQUdFX1BTRSAoYml0IDcpIGlzIG5vdCBiZWluZyB1dGlsaXplZCBpcyBk
dWUgdG8gWGVuCisgKiAgdXNpbmcgaXQgYXMgdGhlIFBhZ2UgQXR0cmlidXRlIFRhYmxlIChQQVQp
IGJpdCAtIGZvciBkZXRhaWxzIG9uIGl0IHBsZWFzZQorICogIHJlZmVyIHRvIEludGVsIFNETSAx
MC4xMi4gVGhlIFBBVCBhbGxvd3MgdG8gc2V0IHRoZSBjYWNoaW5nIGF0dHJpYnV0ZXMgb2YKKyAq
ICBwYWdlcyBpbnN0ZWFkIG9mIHVzaW5nIE1UUlJzLgorICoKKyAqICBUaGUgUEFUIE1TUiBpcyBh
cyBmb2xsb3dzIChpdCBpcyBhIDY0LWJpdCB2YWx1ZSwgZWFjaCBlbnRyeSBpcyA4IGJpdHMpOgor
ICogICAgICAgICAgICAgICAgICAgIFBBVDQgICAgICAgICAgICAgICAgIFBBVDAKKyAqICArLS0t
LS0rLS0tLS0rLS0tLSstLS0tKy0tLS0rLS0tLS0rLS0tLSstLS0tKworICogIHwgVUMgIHwgVUMt
IHwgV0MgfCBXQiB8IFVDIHwgVUMtIHwgV0MgfCBXQiB8ICA8PSBMaW51eAorICogICstLS0tLSst
LS0tLSstLS0tKy0tLS0rLS0tLSstLS0tLSstLS0tKy0tLS0rCisgKiAgfCBVQyAgfCBVQy0gfCBX
VCB8IFdCIHwgVUMgfCBVQy0gfCBXVCB8IFdCIHwgIDw9IEJJT1MgKGRlZmF1bHQgd2hlbiBtYWNo
aW5lIGJvb3RzKQorICogICstLS0tLSstLS0tLSstLS0tKy0tLS0rLS0tLSstLS0tLSstLS0tKy0t
LS0rCisgKiAgfCByc3YgfCByc3YgfCBXUCB8IFdDIHwgVUMgfCBVQy0gfCBXVCB8IFdCIHwgIDw9
IFhlbgorICogICstLS0tLSstLS0tLSstLS0tKy0tLS0rLS0tLSstLS0tLSstLS0tKy0tLS0rCisg
KgorICogIFRoZSBsb29rdXAgb2YgdGhpcyBpbmRleCB0YWJsZSB0cmFuc2xhdGVzIHRvIGxvb2tp
bmcgdXAKKyAqICBCaXQgNywgQml0IDQsIGFuZCBCaXQgMyBvZiB2YWwgZW50cnk6CisgKgorICog
IFBBVC9QU0UgKGJpdCA3KSAuLi4gUENEIChiaXQgNCkgLi4gUFdUIChiaXQgMykuCisgKgorICog
IElmIGFsbCBiaXRzIGFyZSBvZmYsIHRoZW4gd2UgYXJlIHVzaW5nIFBBVDAuIElmIGJpdCAzIHR1
cm5lZCBvbiwKKyAqICB0aGVuIHdlIGFyZSB1c2luZyBQQVQxLCBpZiBiaXQgMyBhbmQgYml0IDQs
IHRoZW4gUEFUMi4uCisgKgorICogIEFzIHlvdSBjYW4gc2VlLCB0aGUgTGludXggUEFUMSB0cmFu
c2xhdGVzIHRvIFBBVDQgdW5kZXIgWGVuLiBXaGljaCBtZWFucworICogIHRoYXQgaWYgYSBndWVz
dCB0aGF0IGZvbGxvd3MgTGludXgncyBQQVQgc2V0dXAgYW5kIHdvdWxkIGxpa2UgdG8gc2V0IFdy
aXRlCisgKiAgQ29tYmluZWQgb24gcGFnZXMgaXQgTVVTVCB1c2UgUEFUNCBlbnRyeS4gTWVhbmlu
ZyB0aGF0IEJpdCA3IChQQUdFX1BBVCkgaXMKKyAqICBzZXQuIEZvciBleGFtcGxlLCB1bmRlciBM
aW51eCBpdCBvbmx5IHVzZXMgUEFUMCwgUEFUMSwgYW5kIFBBVDIgZm9yIHRoZQorICogIGNhY2hp
bmcgYXM6CisgKgorICogICBXQiA9IG5vbmUgKHNvIFBBVDApCisgKiAgIFdDID0gUFdUIChiaXQg
MyBvbikKKyAqICAgVUMgPSBQV1QgfCBQQ0QgKGJpdCAzIGFuZCA0IGFyZSBvbikuCisgKgorICog
VG8gbWFrZSBpdCB3b3JrIHdpdGggWGVuLCBpdCBuZWVkcyB0byB0cmFuc2xhdGUgdGhlIFdDIGJp
dCBhcyBzbzoKKyAqCisgKiAgUFdUIChzbyBiaXQgMyBvbikgLS0+IFBBVCAoc28gYml0IDcgaXMg
b24pIGFuZCBjbGVhciBiaXQgMworICoKKyAqIEFuZCB0byB0cmFuc2xhdGUgYmFjayBpdCB3b3Vs
ZDoKKyAqCisgKiBQQVQgKGJpdCA3IG9uKSAtLT4gUFdUIChiaXQgMyBvbikgYW5kIGNsZWFyIGJp
dCA3LgorICovCisjZGVmaW5lIE1NVV9OT1JNQUxfUFRfVVBEQVRFICAgICAgMCAvKiBjaGVja2Vk
ICcqcHRyID0gdmFsJy4gcHRyIGlzIE1BLiAgICAgICovCisjZGVmaW5lIE1NVV9NQUNIUEhZU19V
UERBVEUgICAgICAgMSAvKiBwdHIgPSBNQSBvZiBmcmFtZSB0byBtb2RpZnkgZW50cnkgZm9yICov
CisjZGVmaW5lIE1NVV9QVF9VUERBVEVfUFJFU0VSVkVfQUQgMiAvKiBhdG9taWNhbGx5OiAqcHRy
ID0gdmFsIHwgKCpwdHImKEF8RCkpICovCisKKy8qCisgKiBNTVUgRVhURU5ERUQgT1BFUkFUSU9O
UworICoKKyAqIGAgZW51bSBuZWdfZXJybm92YWwKKyAqIGAgSFlQRVJWSVNPUl9tbXVleHRfb3Ao
bW11ZXh0X29wX3QgdW9wc1tdLAorICogYCAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp
bnQgY291bnQsCisgKiBgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqcGRvbmUs
CisgKiBgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBmb3JlaWduZG9tKQorICov
CisvKiBIWVBFUlZJU09SX21tdWV4dF9vcCgpIGFjY2VwdHMgYSBsaXN0IG9mIG1tdWV4dF9vcCBz
dHJ1Y3R1cmVzLgorICogQSBmb3JlaWduZG9tIChGRCkgY2FuIGJlIHNwZWNpZmllZCAob3IgRE9N
SURfU0VMRiBmb3Igbm9uZSkuCisgKiBXaGVyZSB0aGUgRkQgaGFzIHNvbWUgZWZmZWN0LCBpdCBp
cyBkZXNjcmliZWQgYmVsb3cuCisgKgorICogY21kOiBNTVVFWFRfKFVOKVBJTl8qX1RBQkxFCisg
KiBtZm46IE1hY2hpbmUgZnJhbWUgbnVtYmVyIHRvIGJlICh1bilwaW5uZWQgYXMgYSBwLnQuIHBh
Z2UuCisgKiAgICAgIFRoZSBmcmFtZSBtdXN0IGJlbG9uZyB0byB0aGUgRkQsIGlmIG9uZSBpcyBz
cGVjaWZpZWQuCisgKgorICogY21kOiBNTVVFWFRfTkVXX0JBU0VQVFIKKyAqIG1mbjogTWFjaGlu
ZSBmcmFtZSBudW1iZXIgb2YgbmV3IHBhZ2UtdGFibGUgYmFzZSB0byBpbnN0YWxsIGluIE1NVS4K
KyAqCisgKiBjbWQ6IE1NVUVYVF9ORVdfVVNFUl9CQVNFUFRSIFt4ODYvNjQgb25seV0KKyAqIG1m
bjogTWFjaGluZSBmcmFtZSBudW1iZXIgb2YgbmV3IHBhZ2UtdGFibGUgYmFzZSB0byBpbnN0YWxs
IGluIE1NVQorICogICAgICB3aGVuIGluIHVzZXIgc3BhY2UuCisgKgorICogY21kOiBNTVVFWFRf
VExCX0ZMVVNIX0xPQ0FMCisgKiBObyBhZGRpdGlvbmFsIGFyZ3VtZW50cy4gRmx1c2hlcyBsb2Nh
bCBUTEIuCisgKgorICogY21kOiBNTVVFWFRfSU5WTFBHX0xPQ0FMCisgKiBsaW5lYXJfYWRkcjog
TGluZWFyIGFkZHJlc3MgdG8gYmUgZmx1c2hlZCBmcm9tIHRoZSBsb2NhbCBUTEIuCisgKgorICog
Y21kOiBNTVVFWFRfVExCX0ZMVVNIX01VTFRJCisgKiB2Y3B1bWFzazogUG9pbnRlciB0byBiaXRt
YXAgb2YgVkNQVXMgdG8gYmUgZmx1c2hlZC4KKyAqCisgKiBjbWQ6IE1NVUVYVF9JTlZMUEdfTVVM
VEkKKyAqIGxpbmVhcl9hZGRyOiBMaW5lYXIgYWRkcmVzcyB0byBiZSBmbHVzaGVkLgorICogdmNw
dW1hc2s6IFBvaW50ZXIgdG8gYml0bWFwIG9mIFZDUFVzIHRvIGJlIGZsdXNoZWQuCisgKgorICog
Y21kOiBNTVVFWFRfVExCX0ZMVVNIX0FMTAorICogTm8gYWRkaXRpb25hbCBhcmd1bWVudHMuIEZs
dXNoZXMgYWxsIFZDUFVzJyBUTEJzLgorICoKKyAqIGNtZDogTU1VRVhUX0lOVkxQR19BTEwKKyAq
IGxpbmVhcl9hZGRyOiBMaW5lYXIgYWRkcmVzcyB0byBiZSBmbHVzaGVkIGZyb20gYWxsIFZDUFVz
JyBUTEJzLgorICoKKyAqIGNtZDogTU1VRVhUX0ZMVVNIX0NBQ0hFCisgKiBObyBhZGRpdGlvbmFs
IGFyZ3VtZW50cy4gV3JpdGVzIGJhY2sgYW5kIGZsdXNoZXMgY2FjaGUgY29udGVudHMuCisgKgor
ICogY21kOiBNTVVFWFRfRkxVU0hfQ0FDSEVfR0xPQkFMCisgKiBObyBhZGRpdGlvbmFsIGFyZ3Vt
ZW50cy4gV3JpdGVzIGJhY2sgYW5kIGZsdXNoZXMgY2FjaGUgY29udGVudHMKKyAqIG9uIGFsbCBD
UFVzIGluIHRoZSBzeXN0ZW0uCisgKgorICogY21kOiBNTVVFWFRfU0VUX0xEVAorICogbGluZWFy
X2FkZHI6IExpbmVhciBhZGRyZXNzIG9mIExEVCBiYXNlIChOQi4gbXVzdCBiZSBwYWdlLWFsaWdu
ZWQpLgorICogbnJfZW50czogTnVtYmVyIG9mIGVudHJpZXMgaW4gTERULgorICoKKyAqIGNtZDog
TU1VRVhUX0NMRUFSX1BBR0UKKyAqIG1mbjogTWFjaGluZSBmcmFtZSBudW1iZXIgdG8gYmUgY2xl
YXJlZC4KKyAqCisgKiBjbWQ6IE1NVUVYVF9DT1BZX1BBR0UKKyAqIG1mbjogTWFjaGluZSBmcmFt
ZSBudW1iZXIgb2YgdGhlIGRlc3RpbmF0aW9uIHBhZ2UuCisgKiBzcmNfbWZuOiBNYWNoaW5lIGZy
YW1lIG51bWJlciBvZiB0aGUgc291cmNlIHBhZ2UuCisgKgorICogY21kOiBNTVVFWFRfW1VOXU1B
UktfU1VQRVIKKyAqIG1mbjogTWFjaGluZSBmcmFtZSBudW1iZXIgb2YgaGVhZCBvZiBzdXBlcnBh
Z2UgdG8gYmUgW3VuXW1hcmtlZC4KKyAqLworLyogYCBlbnVtIG1tdWV4dF9jbWQgeyAqLworI2Rl
ZmluZSBNTVVFWFRfUElOX0wxX1RBQkxFICAgICAgMAorI2RlZmluZSBNTVVFWFRfUElOX0wyX1RB
QkxFICAgICAgMQorI2RlZmluZSBNTVVFWFRfUElOX0wzX1RBQkxFICAgICAgMgorI2RlZmluZSBN
TVVFWFRfUElOX0w0X1RBQkxFICAgICAgMworI2RlZmluZSBNTVVFWFRfVU5QSU5fVEFCTEUgICAg
ICAgNAorI2RlZmluZSBNTVVFWFRfTkVXX0JBU0VQVFIgICAgICAgNQorI2RlZmluZSBNTVVFWFRf
VExCX0ZMVVNIX0xPQ0FMICAgNgorI2RlZmluZSBNTVVFWFRfSU5WTFBHX0xPQ0FMICAgICAgNwor
I2RlZmluZSBNTVVFWFRfVExCX0ZMVVNIX01VTFRJICAgOAorI2RlZmluZSBNTVVFWFRfSU5WTFBH
X01VTFRJICAgICAgOQorI2RlZmluZSBNTVVFWFRfVExCX0ZMVVNIX0FMTCAgICAxMAorI2RlZmlu
ZSBNTVVFWFRfSU5WTFBHX0FMTCAgICAgICAxMQorI2RlZmluZSBNTVVFWFRfRkxVU0hfQ0FDSEUg
ICAgICAxMgorI2RlZmluZSBNTVVFWFRfU0VUX0xEVCAgICAgICAgICAxMworI2RlZmluZSBNTVVF
WFRfTkVXX1VTRVJfQkFTRVBUUiAxNQorI2RlZmluZSBNTVVFWFRfQ0xFQVJfUEFHRSAgICAgICAx
NgorI2RlZmluZSBNTVVFWFRfQ09QWV9QQUdFICAgICAgICAxNworI2RlZmluZSBNTVVFWFRfRkxV
U0hfQ0FDSEVfR0xPQkFMIDE4CisjZGVmaW5lIE1NVUVYVF9NQVJLX1NVUEVSICAgICAgIDE5Cisj
ZGVmaW5lIE1NVUVYVF9VTk1BUktfU1VQRVIgICAgIDIwCisvKiBgIH0gKi8KKworI2lmbmRlZiBf
X0FTU0VNQkxZX18KK3N0cnVjdCBtbXVleHRfb3AgeworICAgIHVuc2lnbmVkIGludCBjbWQ7IC8q
ID0+IGVudW0gbW11ZXh0X2NtZCAqLworICAgIHVuaW9uIHsKKyAgICAgICAgLyogW1VOXVBJTl9U
QUJMRSwgTkVXX0JBU0VQVFIsIE5FV19VU0VSX0JBU0VQVFIKKyAgICAgICAgICogQ0xFQVJfUEFH
RSwgQ09QWV9QQUdFLCBbVU5dTUFSS19TVVBFUiAqLworICAgICAgICB4ZW5fcGZuX3QgICAgIG1m
bjsKKyAgICAgICAgLyogSU5WTFBHX0xPQ0FMLCBJTlZMUEdfQUxMLCBTRVRfTERUICovCisgICAg
ICAgIFVMT05HX1BUUiBsaW5lYXJfYWRkcjsKKyAgICB9IGFyZzE7CisgICAgdW5pb24geworICAg
ICAgICAvKiBTRVRfTERUICovCisgICAgICAgIHVuc2lnbmVkIGludCBucl9lbnRzOworICAgICAg
ICAvKiBUTEJfRkxVU0hfTVVMVEksIElOVkxQR19NVUxUSSAqLworI2lmIF9fWEVOX0lOVEVSRkFD
RV9WRVJTSU9OX18gPj0gMHgwMDAzMDIwNQorICAgICAgICBYRU5fR1VFU1RfSEFORExFKGNvbnN0
X3ZvaWQpIHZjcHVtYXNrOworI2Vsc2UKKyAgICAgICAgY29uc3Qgdm9pZCAqdmNwdW1hc2s7Cisj
ZW5kaWYKKyAgICAgICAgLyogQ09QWV9QQUdFICovCisgICAgICAgIHhlbl9wZm5fdCBzcmNfbWZu
OworICAgIH0gYXJnMjsKK307Cit0eXBlZGVmIHN0cnVjdCBtbXVleHRfb3AgbW11ZXh0X29wX3Q7
CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShtbXVleHRfb3BfdCk7CisjZW5kaWYKKworLyoKKyAq
IGAgZW51bSBuZWdfZXJybm92YWwKKyAqIGAgSFlQRVJWSVNPUl91cGRhdGVfdmFfbWFwcGluZyhV
TE9OR19QVFIgdmEsIHU2NCB2YWwsCisgKiBgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZW51bSB1dm1fZmxhZ3MgZmxhZ3MpCisgKiBgCisgKiBgIGVudW0gbmVnX2Vycm5vdmFsCisgKiBg
IEhZUEVSVklTT1JfdXBkYXRlX3ZhX21hcHBpbmdfb3RoZXJkb21haW4oVUxPTkdfUFRSIHZhLCB1
NjQgdmFsLAorICogYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVu
dW0gdXZtX2ZsYWdzIGZsYWdzLAorICogYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRvbWlkX3QgZG9taWQpCisgKiBgCisgKiBgIEB2YTogVGhlIHZpcnR1YWwgYWRk
cmVzcyB3aG9zZSBtYXBwaW5nIHdlIHdhbnQgdG8gY2hhbmdlCisgKiBgIEB2YWw6IFRoZSBuZXcg
cGFnZSB0YWJsZSBlbnRyeSwgbXVzdCBjb250YWluIGEgbWFjaGluZSBhZGRyZXNzCisgKiBgIEBm
bGFnczogQ29udHJvbCBUTEIgZmx1c2hlcworICovCisvKiBUaGVzZSBhcmUgcGFzc2VkIGFzICdm
bGFncycgdG8gdXBkYXRlX3ZhX21hcHBpbmcuIFRoZXkgY2FuIGJlIE9SZWQuICovCisvKiBXaGVu
IHNwZWNpZnlpbmcgVVZNRl9NVUxUSSwgYWxzbyBPUiBpbiBhIHBvaW50ZXIgdG8gYSBDUFUgYml0
bWFwLiAgICovCisvKiBVVk1GX0xPQ0FMIGlzIG1lcmVseSBVVk1GX01VTFRJIHdpdGggYSBOVUxM
IGJpdG1hcCBwb2ludGVyLiAgICAgICAgICovCisvKiBgIGVudW0gdXZtX2ZsYWdzIHsgKi8KKyNk
ZWZpbmUgVVZNRl9OT05FICAgICAgICAgICAoeGVuX21rX3Vsb25nKDApPDwwKSAvKiBObyBmbHVz
aGluZyBhdCBhbGwuICAgKi8KKyNkZWZpbmUgVVZNRl9UTEJfRkxVU0ggICAgICAoeGVuX21rX3Vs
b25nKDEpPDwwKSAvKiBGbHVzaCBlbnRpcmUgVExCKHMpLiAgKi8KKyNkZWZpbmUgVVZNRl9JTlZM
UEcgICAgICAgICAoeGVuX21rX3Vsb25nKDIpPDwwKSAvKiBGbHVzaCBvbmx5IG9uZSBlbnRyeS4g
Ki8KKyNkZWZpbmUgVVZNRl9GTFVTSFRZUEVfTUFTSyAoeGVuX21rX3Vsb25nKDMpPDwwKQorI2Rl
ZmluZSBVVk1GX01VTFRJICAgICAgICAgICh4ZW5fbWtfdWxvbmcoMCk8PDIpIC8qIEZsdXNoIHN1
YnNldCBvZiBUTEJzLiAqLworI2RlZmluZSBVVk1GX0xPQ0FMICAgICAgICAgICh4ZW5fbWtfdWxv
bmcoMCk8PDIpIC8qIEZsdXNoIGxvY2FsIFRMQi4gICAgICAqLworI2RlZmluZSBVVk1GX0FMTCAg
ICAgICAgICAgICh4ZW5fbWtfdWxvbmcoMSk8PDIpIC8qIEZsdXNoIGFsbCBUTEJzLiAgICAgICAq
LworLyogYCB9ICovCisKKy8qCisgKiBDb21tYW5kcyB0byBIWVBFUlZJU09SX2NvbnNvbGVfaW8o
KS4KKyAqLworI2RlZmluZSBDT05TT0xFSU9fd3JpdGUgICAgICAgICAwCisjZGVmaW5lIENPTlNP
TEVJT19yZWFkICAgICAgICAgIDEKKworLyoKKyAqIENvbW1hbmRzIHRvIEhZUEVSVklTT1Jfdm1f
YXNzaXN0KCkuCisgKi8KKyNkZWZpbmUgVk1BU1NUX0NNRF9lbmFibGUgICAgICAgICAgICAgICAg
MAorI2RlZmluZSBWTUFTU1RfQ01EX2Rpc2FibGUgICAgICAgICAgICAgICAxCisKKy8qIHg4Ni8z
MiBndWVzdHM6IHNpbXVsYXRlIGZ1bGwgNEdCIHNlZ21lbnQgbGltaXRzLiAqLworI2RlZmluZSBW
TUFTU1RfVFlQRV80Z2Jfc2VnbWVudHMgICAgICAgICAwCisKKy8qIHg4Ni8zMiBndWVzdHM6IHRy
YXAgKHZlY3RvciAxNSkgd2hlbmV2ZXIgYWJvdmUgdm1hc3Npc3QgaXMgdXNlZC4gKi8KKyNkZWZp
bmUgVk1BU1NUX1RZUEVfNGdiX3NlZ21lbnRzX25vdGlmeSAgMQorCisvKgorICogeDg2IGd1ZXN0
czogc3VwcG9ydCB3cml0ZXMgdG8gYm90dG9tLWxldmVsIFBURXMuCisgKiBOQjEuIFBhZ2UtZGly
ZWN0b3J5IGVudHJpZXMgY2Fubm90IGJlIHdyaXR0ZW4uCisgKiBOQjIuIEd1ZXN0IG11c3QgY29u
dGludWUgdG8gcmVtb3ZlIGFsbCB3cml0YWJsZSBtYXBwaW5ncyBvZiBQVEVzLgorICovCisjZGVm
aW5lIFZNQVNTVF9UWVBFX3dyaXRhYmxlX3BhZ2V0YWJsZXMgIDIKKworLyogeDg2L1BBRSBndWVz
dHM6IHN1cHBvcnQgUERQVHMgYWJvdmUgNEdCLiAqLworI2RlZmluZSBWTUFTU1RfVFlQRV9wYWVf
ZXh0ZW5kZWRfY3IzICAgICAzCisKKy8qCisgKiB4ODYgZ3Vlc3RzOiBTYW5lIGJlaGF2aW91ciBm
b3IgdmlydHVhbCBpb3BsCisgKiAgLSB2aXJ0dWFsIGlvcGwgdXBkYXRlZCBmcm9tIGRvX2lyZXQo
KSBoeXBlcmNhbGxzLgorICogIC0gdmlydHVhbCBpb3BsIHJlcG9ydGVkIGluIGJvdW5jZSBmcmFt
ZXMuCisgKiAgLSBndWVzdCBrZXJuZWxzIGFzc3VtZWQgdG8gYmUgbGV2ZWwgMCBmb3IgdGhlIHB1
cnBvc2Ugb2YgaW9wbCBjaGVja3MuCisgKi8KKyNkZWZpbmUgVk1BU1NUX1RZUEVfYXJjaGl0ZWN0
dXJhbF9pb3BsICAgNAorCisvKgorICogeDg2LzY0IGd1ZXN0czogc3RyaWN0bHkgaGlkZSBNMlAg
ZnJvbSB1c2VyIG1vZGUuCisgKiBUaGlzIGFsbG93cyB0aGUgZ3Vlc3QgdG8gY29udHJvbCByZXNw
ZWN0aXZlIGh5cGVydmlzb3IgYmVoYXZpb3I6CisgKiAtIHdoZW4gbm90IHNldCwgTDQgdGFibGVz
IGdldCBjcmVhdGVkIHdpdGggdGhlIHJlc3BlY3RpdmUgc2xvdCBibGFuaywKKyAqICAgYW5kIHdo
ZW5ldmVyIHRoZSBMNCB0YWJsZSBnZXRzIHVzZWQgYXMgYSBrZXJuZWwgb25lIHRoZSBtaXNzaW5n
CisgKiAgIG1hcHBpbmcgZ2V0cyBpbnNlcnRlZCwKKyAqIC0gd2hlbiBzZXQsIEw0IHRhYmxlcyBn
ZXQgY3JlYXRlZCB3aXRoIHRoZSByZXNwZWN0aXZlIHNsb3QgaW5pdGlhbGl6ZWQKKyAqICAgYXMg
YmVmb3JlLCBhbmQgd2hlbmV2ZXIgdGhlIEw0IHRhYmxlIGdldHMgdXNlZCBhcyBhIHVzZXIgb25l
IHRoZQorICogICBtYXBwaW5nIGdldHMgemFwcGVkLgorICovCisjZGVmaW5lIFZNQVNTVF9UWVBF
X20ycF9zdHJpY3QgICAgICAgICAgIDMyCisKKyNpZiBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9f
IDwgMHgwMDA0MDYwMAorI2RlZmluZSBNQVhfVk1BU1NUX1RZUEUgICAgICAgICAgICAgICAgICAz
CisjZW5kaWYKKworLyogRG9tYWluIGlkcyA+PSBET01JRF9GSVJTVF9SRVNFUlZFRCBjYW5ub3Qg
YmUgdXNlZCBmb3Igb3JkaW5hcnkgZG9tYWlucy4gKi8KKyNkZWZpbmUgRE9NSURfRklSU1RfUkVT
RVJWRUQgeGVuX21rX3VpbnQoMHg3RkYwKQorCisvKiBET01JRF9TRUxGIGlzIHVzZWQgaW4gY2Vy
dGFpbiBjb250ZXh0cyB0byByZWZlciB0byBvbmVzZWxmLiAqLworI2RlZmluZSBET01JRF9TRUxG
ICAgICAgICAgICB4ZW5fbWtfdWludCgweDdGRjApCisKKy8qCisgKiBET01JRF9JTyBpcyB1c2Vk
IHRvIHJlc3RyaWN0IHBhZ2UtdGFibGUgdXBkYXRlcyB0byBtYXBwaW5nIEkvTyBtZW1vcnkuCisg
KiBBbHRob3VnaCBubyBGb3JlaWduIERvbWFpbiBuZWVkIGJlIHNwZWNpZmllZCB0byBtYXAgSS9P
IHBhZ2VzLCBET01JRF9JTworICogaXMgdXNlZnVsIHRvIGVuc3VyZSB0aGF0IG5vIG1hcHBpbmdz
IHRvIHRoZSBPUydzIG93biBoZWFwIGFyZSBhY2NpZGVudGFsbHkKKyAqIGluc3RhbGxlZC4gKGUu
Zy4sIGluIExpbnV4IHRoaXMgY291bGQgY2F1c2UgaGF2b2MgYXMgcmVmZXJlbmNlIGNvdW50cwor
ICogYXJlbid0IGFkanVzdGVkIG9uIHRoZSBJL08tbWFwcGluZyBjb2RlIHBhdGgpLgorICogVGhp
cyBvbmx5IG1ha2VzIHNlbnNlIGluIE1NVUVYVF9TRVRfRk9SRUlHTkRPTSwgYnV0IGluIHRoYXQg
Y29udGV4dCBjYW4KKyAqIGJlIHNwZWNpZmllZCBieSBhbnkgY2FsbGluZyBkb21haW4uCisgKi8K
KyNkZWZpbmUgRE9NSURfSU8gICAgICAgICAgICAgeGVuX21rX3VpbnQoMHg3RkYxKQorCisvKgor
ICogRE9NSURfWEVOIGlzIHVzZWQgdG8gYWxsb3cgcHJpdmlsZWdlZCBkb21haW5zIHRvIG1hcCBy
ZXN0cmljdGVkIHBhcnRzIG9mCisgKiBYZW4ncyBoZWFwIHNwYWNlIChlLmcuLCB0aGUgbWFjaGlu
ZV90b19waHlzIHRhYmxlKS4KKyAqIFRoaXMgb25seSBtYWtlcyBzZW5zZSBpbiBNTVVFWFRfU0VU
X0ZPUkVJR05ET00sIGFuZCBpcyBvbmx5IHBlcm1pdHRlZCBpZgorICogdGhlIGNhbGxlciBpcyBw
cml2aWxlZ2VkLgorICovCisjZGVmaW5lIERPTUlEX1hFTiAgICAgICAgICAgIHhlbl9ta191aW50
KDB4N0ZGMikKKworLyoKKyAqIERPTUlEX0NPVyBpcyB1c2VkIGFzIHRoZSBvd25lciBvZiBzaGFy
YWJsZSBwYWdlcyAqLworI2RlZmluZSBET01JRF9DT1cgICAgICAgICAgICB4ZW5fbWtfdWludCgw
eDdGRjMpCisKKy8qIERPTUlEX0lOVkFMSUQgaXMgdXNlZCB0byBpZGVudGlmeSBwYWdlcyB3aXRo
IHVua25vd24gb3duZXIuICovCisjZGVmaW5lIERPTUlEX0lOVkFMSUQgICAgICAgIHhlbl9ta191
aW50KDB4N0ZGNCkKKworLyogSWRsZSBkb21haW4uICovCisjZGVmaW5lIERPTUlEX0lETEUgICAg
ICAgICAgIHhlbl9ta191aW50KDB4N0ZGRikKKworI2lmbmRlZiBfX0FTU0VNQkxZX18KKwordHlw
ZWRlZiB1aW50MTZfdCBkb21pZF90OworCisvKgorICogU2VuZCBhbiBhcnJheSBvZiB0aGVzZSB0
byBIWVBFUlZJU09SX21tdV91cGRhdGUoKS4KKyAqIE5CLiBUaGUgZmllbGRzIGFyZSBuYXR1cmFs
IHBvaW50ZXIvYWRkcmVzcyBzaXplIGZvciB0aGlzIGFyY2hpdGVjdHVyZS4KKyAqLworc3RydWN0
IG1tdV91cGRhdGUgeworICAgIHVpbnQ2NF90IHB0cjsgICAgICAgLyogTWFjaGluZSBhZGRyZXNz
IG9mIFBURS4gKi8KKyAgICB1aW50NjRfdCB2YWw7ICAgICAgIC8qIE5ldyBjb250ZW50cyBvZiBQ
VEUuICAgICovCit9OwordHlwZWRlZiBzdHJ1Y3QgbW11X3VwZGF0ZSBtbXVfdXBkYXRlX3Q7CitE
RUZJTkVfWEVOX0dVRVNUX0hBTkRMRShtbXVfdXBkYXRlX3QpOworCisvKgorICogYCBlbnVtIG5l
Z19lcnJub3ZhbAorICogYCBIWVBFUlZJU09SX211bHRpY2FsbChtdWx0aWNhbGxfZW50cnlfdCBj
YWxsX2xpc3RbXSwKKyAqIGAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgbnJfY2FsbHMp
OworICoKKyAqIE5CLiBUaGUgZmllbGRzIGFyZSBsb2dpY2FsbHkgdGhlIG5hdHVyYWwgcmVnaXN0
ZXIgc2l6ZSBmb3IgdGhpcworICogYXJjaGl0ZWN0dXJlLiBJbiBjYXNlcyB3aGVyZSB4ZW5fdWxv
bmdfdCBpcyBsYXJnZXIgdGhhbiB0aGlzIHRoZW4KKyAqIGFueSB1bnVzZWQgYml0cyBpbiB0aGUg
dXBwZXIgcG9ydGlvbiBtdXN0IGJlIHplcm8uCisgKi8KK3N0cnVjdCBtdWx0aWNhbGxfZW50cnkg
eworICAgIHhlbl91bG9uZ190IG9wLCByZXN1bHQ7CisgICAgeGVuX3Vsb25nX3QgYXJnc1s2XTsK
K307Cit0eXBlZGVmIHN0cnVjdCBtdWx0aWNhbGxfZW50cnkgbXVsdGljYWxsX2VudHJ5X3Q7CitE
RUZJTkVfWEVOX0dVRVNUX0hBTkRMRShtdWx0aWNhbGxfZW50cnlfdCk7CisKKyNpZiBfX1hFTl9J
TlRFUkZBQ0VfVkVSU0lPTl9fIDwgMHgwMDA0MDQwMAorLyoKKyAqIEV2ZW50IGNoYW5uZWwgZW5k
cG9pbnRzIHBlciBkb21haW4gKHdoZW4gdXNpbmcgdGhlIDItbGV2ZWwgQUJJKToKKyAqICAxMDI0
IGlmIGEgTE9OR19QVFIgaXMgMzIgYml0czsgNDA5NiBpZiBhIExPTkdfUFRSIGlzIDY0IGJpdHMu
CisgKi8KKyNkZWZpbmUgTlJfRVZFTlRfQ0hBTk5FTFMgRVZUQ0hOXzJMX05SX0NIQU5ORUxTCisj
ZW5kaWYKKworc3RydWN0IHZjcHVfdGltZV9pbmZvIHsKKyAgICAvKgorICAgICAqIFVwZGF0ZXMg
dG8gdGhlIGZvbGxvd2luZyB2YWx1ZXMgYXJlIHByZWNlZGVkIGFuZCBmb2xsb3dlZCBieSBhbgor
ICAgICAqIGluY3JlbWVudCBvZiAndmVyc2lvbicuIFRoZSBndWVzdCBjYW4gdGhlcmVmb3JlIGRl
dGVjdCB1cGRhdGVzIGJ5CisgICAgICogbG9va2luZyBmb3IgY2hhbmdlcyB0byAndmVyc2lvbicu
IElmIHRoZSBsZWFzdC1zaWduaWZpY2FudCBiaXQgb2YKKyAgICAgKiB0aGUgdmVyc2lvbiBudW1i
ZXIgaXMgc2V0IHRoZW4gYW4gdXBkYXRlIGlzIGluIHByb2dyZXNzIGFuZCB0aGUgZ3Vlc3QKKyAg
ICAgKiBtdXN0IHdhaXQgdG8gcmVhZCBhIGNvbnNpc3RlbnQgc2V0IG9mIHZhbHVlcy4KKyAgICAg
KiBUaGUgY29ycmVjdCB3YXkgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgdmVyc2lvbiBudW1iZXIgaXMg
c2ltaWxhciB0bworICAgICAqIExpbnV4J3Mgc2VxbG9jazogc2VlIHRoZSBpbXBsZW1lbnRhdGlv
bnMgb2YgcmVhZF9zZXFiZWdpbi9yZWFkX3NlcXJldHJ5LgorICAgICAqLworICAgIHVpbnQzMl90
IHZlcnNpb247CisgICAgdWludDMyX3QgcGFkMDsKKyAgICB1aW50NjRfdCB0c2NfdGltZXN0YW1w
OyAgIC8qIFRTQyBhdCBsYXN0IHVwZGF0ZSBvZiB0aW1lIHZhbHMuICAqLworICAgIHVpbnQ2NF90
IHN5c3RlbV90aW1lOyAgICAgLyogVGltZSwgaW4gbmFub3NlY3MsIHNpbmNlIGJvb3QuICAgICov
CisgICAgLyoKKyAgICAgKiBDdXJyZW50IHN5c3RlbSB0aW1lOgorICAgICAqICAgc3lzdGVtX3Rp
bWUgKworICAgICAqICAgKCgoKHRzYyAtIHRzY190aW1lc3RhbXApIDw8IHRzY19zaGlmdCkgKiB0
c2NfdG9fc3lzdGVtX211bCkgPj4gMzIpCisgICAgICogQ1BVIGZyZXF1ZW5jeSAoSHopOgorICAg
ICAqICAgKCgxMF45IDw8IDMyKSAvIHRzY190b19zeXN0ZW1fbXVsKSA+PiB0c2Nfc2hpZnQKKyAg
ICAgKi8KKyAgICB1aW50MzJfdCB0c2NfdG9fc3lzdGVtX211bDsKKyAgICBpbnQ4X3QgICB0c2Nf
c2hpZnQ7CisjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA+IDB4MDQwNjAwCisgICAgdWlu
dDhfdCAgZmxhZ3M7CisgICAgdWludDhfdCAgcGFkMVsyXTsKKyNlbHNlCisgICAgaW50OF90ICAg
cGFkMVszXTsKKyNlbmRpZgorfTsgLyogMzIgYnl0ZXMgKi8KK3R5cGVkZWYgc3RydWN0IHZjcHVf
dGltZV9pbmZvIHZjcHVfdGltZV9pbmZvX3Q7CisKKyNkZWZpbmUgWEVOX1BWQ0xPQ0tfVFNDX1NU
QUJMRV9CSVQgICAgICgxIDw8IDApCisjZGVmaW5lIFhFTl9QVkNMT0NLX0dVRVNUX1NUT1BQRUQg
ICAgICAoMSA8PCAxKQorCitzdHJ1Y3QgdmNwdV9pbmZvIHsKKyAgICAvKgorICAgICAqICdldnRj
aG5fdXBjYWxsX3BlbmRpbmcnIGlzIHdyaXR0ZW4gbm9uLXplcm8gYnkgWGVuIHRvIGluZGljYXRl
CisgICAgICogYSBwZW5kaW5nIG5vdGlmaWNhdGlvbiBmb3IgYSBwYXJ0aWN1bGFyIFZDUFUuIEl0
IGlzIHRoZW4gY2xlYXJlZAorICAgICAqIGJ5IHRoZSBndWVzdCBPUyAvYmVmb3JlLyBjaGVja2lu
ZyBmb3IgcGVuZGluZyB3b3JrLCB0aHVzIGF2b2lkaW5nCisgICAgICogYSBzZXQtYW5kLWNoZWNr
IHJhY2UuIE5vdGUgdGhhdCB0aGUgbWFzayBpcyBvbmx5IGFjY2Vzc2VkIGJ5IFhlbgorICAgICAq
IG9uIHRoZSBDUFUgdGhhdCBpcyBjdXJyZW50bHkgaG9zdGluZyB0aGUgVkNQVS4gVGhpcyBtZWFu
cyB0aGF0IHRoZQorICAgICAqIHBlbmRpbmcgYW5kIG1hc2sgZmxhZ3MgY2FuIGJlIHVwZGF0ZWQg
YnkgdGhlIGd1ZXN0IHdpdGhvdXQgc3BlY2lhbAorICAgICAqIHN5bmNocm9uaXNhdGlvbiAoaS5l
Liwgbm8gbmVlZCBmb3IgdGhlIHg4NiBMT0NLIHByZWZpeCkuCisgICAgICogVGhpcyBtYXkgc2Vl
bSBzdWJvcHRpbWFsIGJlY2F1c2UgaWYgdGhlIHBlbmRpbmcgZmxhZyBpcyBzZXQgYnkKKyAgICAg
KiBhIGRpZmZlcmVudCBDUFUgdGhlbiBhbiBJUEkgbWF5IGJlIHNjaGVkdWxlZCBldmVuIHdoZW4g
dGhlIG1hc2sKKyAgICAgKiBpcyBzZXQuIEhvd2V2ZXIsIG5vdGU6CisgICAgICogIDEuIFRoZSB0
YXNrIG9mICdpbnRlcnJ1cHQgaG9sZG9mZicgaXMgY292ZXJlZCBieSB0aGUgcGVyLWV2ZW50LQor
ICAgICAqICAgICBjaGFubmVsIG1hc2sgYml0cy4gQSAnbm9pc3knIGV2ZW50IHRoYXQgaXMgY29u
dGludWFsbHkgYmVpbmcKKyAgICAgKiAgICAgdHJpZ2dlcmVkIGNhbiBiZSBtYXNrZWQgYXQgc291
cmNlIGF0IHRoaXMgdmVyeSBwcmVjaXNlCisgICAgICogICAgIGdyYW51bGFyaXR5LgorICAgICAq
ICAyLiBUaGUgbWFpbiBwdXJwb3NlIG9mIHRoZSBwZXItVkNQVSBtYXNrIGlzIHRoZXJlZm9yZSB0
byByZXN0cmljdAorICAgICAqICAgICByZWVudHJhbnQgZXhlY3V0aW9uOiB3aGV0aGVyIGZvciBj
b25jdXJyZW5jeSBjb250cm9sLCBvciB0bworICAgICAqICAgICBwcmV2ZW50IHVuYm91bmRlZCBz
dGFjayB1c2FnZS4gV2hhdGV2ZXIgdGhlIHB1cnBvc2UsIHdlIGV4cGVjdAorICAgICAqICAgICB0
aGF0IHRoZSBtYXNrIHdpbGwgYmUgYXNzZXJ0ZWQgb25seSBmb3Igc2hvcnQgcGVyaW9kcyBhdCBh
IHRpbWUsCisgICAgICogICAgIGFuZCBzbyB0aGUgbGlrZWxpaG9vZCBvZiBhICdzcHVyaW91cycg
SVBJIGlzIHN1aXRhYmx5IHNtYWxsLgorICAgICAqIFRoZSBtYXNrIGlzIHJlYWQgYmVmb3JlIG1h
a2luZyBhbiBldmVudCB1cGNhbGwgdG8gdGhlIGd1ZXN0OiBhCisgICAgICogbm9uLXplcm8gbWFz
ayB0aGVyZWZvcmUgZ3VhcmFudGVlcyB0aGF0IHRoZSBWQ1BVIHdpbGwgbm90IHJlY2VpdmUKKyAg
ICAgKiBhbiB1cGNhbGwgYWN0aXZhdGlvbi4gVGhlIG1hc2sgaXMgY2xlYXJlZCB3aGVuIHRoZSBW
Q1BVIHJlcXVlc3RzCisgICAgICogdG8gYmxvY2s6IHRoaXMgYXZvaWRzIHdha2V1cC13YWl0aW5n
IHJhY2VzLgorICAgICAqLworICAgIHVpbnQ4X3QgZXZ0Y2huX3VwY2FsbF9wZW5kaW5nOworI2lm
ZGVmIFhFTl9IQVZFX1BWX1VQQ0FMTF9NQVNLCisgICAgdWludDhfdCBldnRjaG5fdXBjYWxsX21h
c2s7CisjZWxzZSAvKiBYRU5fSEFWRV9QVl9VUENBTExfTUFTSyAqLworICAgIHVpbnQ4X3QgcGFk
MDsKKyNlbmRpZiAvKiBYRU5fSEFWRV9QVl9VUENBTExfTUFTSyAqLworICAgIHhlbl91bG9uZ190
IGV2dGNobl9wZW5kaW5nX3NlbDsKKyAgICBzdHJ1Y3QgYXJjaF92Y3B1X2luZm8gYXJjaDsKKyAg
ICBzdHJ1Y3QgdmNwdV90aW1lX2luZm8gdGltZTsKK307IC8qIDY0IGJ5dGVzICh4ODYpICovCisj
aWZuZGVmIF9fWEVOX18KK3R5cGVkZWYgc3RydWN0IHZjcHVfaW5mbyB2Y3B1X2luZm9fdDsKKyNl
bmRpZgorCisvKgorICogYGluY29udGVudHMgMjAwIHN0YXJ0b2ZkYXlfc2hhcmVkIFN0YXJ0LW9m
LWRheSBzaGFyZWQgZGF0YSBzdHJ1Y3R1cmUKKyAqIFhlbi9rZXJuZWwgc2hhcmVkIGRhdGEgLS0g
cG9pbnRlciBwcm92aWRlZCBpbiBzdGFydF9pbmZvLgorICoKKyAqIFRoaXMgc3RydWN0dXJlIGlz
IGRlZmluZWQgdG8gYmUgYm90aCBzbWFsbGVyIHRoYW4gYSBwYWdlLCBhbmQgdGhlCisgKiBvbmx5
IGRhdGEgb24gdGhlIHNoYXJlZCBwYWdlLCBidXQgbWF5IHZhcnkgaW4gYWN0dWFsIHNpemUgZXZl
biB3aXRoaW4KKyAqIGNvbXBhdGlibGUgWGVuIHZlcnNpb25zOyBndWVzdHMgc2hvdWxkIG5vdCBy
ZWx5IG9uIHRoZSBzaXplCisgKiBvZiB0aGlzIHN0cnVjdHVyZSByZW1haW5pbmcgY29uc3RhbnQu
CisgKi8KK3N0cnVjdCBzaGFyZWRfaW5mbyB7CisgICAgc3RydWN0IHZjcHVfaW5mbyB2Y3B1X2lu
Zm9bWEVOX0xFR0FDWV9NQVhfVkNQVVNdOworCisgICAgLyoKKyAgICAgKiBBIGRvbWFpbiBjYW4g
Y3JlYXRlICJldmVudCBjaGFubmVscyIgb24gd2hpY2ggaXQgY2FuIHNlbmQgYW5kIHJlY2VpdmUK
KyAgICAgKiBhc3luY2hyb25vdXMgZXZlbnQgbm90aWZpY2F0aW9ucy4gVGhlcmUgYXJlIHRocmVl
IGNsYXNzZXMgb2YgZXZlbnQgdGhhdAorICAgICAqIGFyZSBkZWxpdmVyZWQgYnkgdGhpcyBtZWNo
YW5pc206CisgICAgICogIDEuIEJpLWRpcmVjdGlvbmFsIGludGVyLSBhbmQgaW50cmEtZG9tYWlu
IGNvbm5lY3Rpb25zLiBEb21haW5zIG11c3QKKyAgICAgKiAgICAgYXJyYW5nZSBvdXQtb2YtYmFu
ZCB0byBzZXQgdXAgYSBjb25uZWN0aW9uICh1c3VhbGx5IGJ5IGFsbG9jYXRpbmcKKyAgICAgKiAg
ICAgYW4gdW5ib3VuZCAnbGlzdGVuZXInIHBvcnQgYW5kIGF2ZXJ0aXNpbmcgdGhhdCB2aWEgYSBz
dG9yYWdlIHNlcnZpY2UKKyAgICAgKiAgICAgc3VjaCBhcyB4ZW5zdG9yZSkuCisgICAgICogIDIu
IFBoeXNpY2FsIGludGVycnVwdHMuIEEgZG9tYWluIHdpdGggc3VpdGFibGUgaGFyZHdhcmUtYWNj
ZXNzCisgICAgICogICAgIHByaXZpbGVnZXMgY2FuIGJpbmQgYW4gZXZlbnQtY2hhbm5lbCBwb3J0
IHRvIGEgcGh5c2ljYWwgaW50ZXJydXB0CisgICAgICogICAgIHNvdXJjZS4KKyAgICAgKiAgMy4g
VmlydHVhbCBpbnRlcnJ1cHRzICgnZXZlbnRzJykuIEEgZG9tYWluIGNhbiBiaW5kIGFuIGV2ZW50
LWNoYW5uZWwKKyAgICAgKiAgICAgcG9ydCB0byBhIHZpcnR1YWwgaW50ZXJydXB0IHNvdXJjZSwg
c3VjaCBhcyB0aGUgdmlydHVhbC10aW1lcgorICAgICAqICAgICBkZXZpY2Ugb3IgdGhlIGVtZXJn
ZW5jeSBjb25zb2xlLgorICAgICAqCisgICAgICogRXZlbnQgY2hhbm5lbHMgYXJlIGFkZHJlc3Nl
ZCBieSBhICJwb3J0IGluZGV4Ii4gRWFjaCBjaGFubmVsIGlzCisgICAgICogYXNzb2NpYXRlZCB3
aXRoIHR3byBiaXRzIG9mIGluZm9ybWF0aW9uOgorICAgICAqICAxLiBQRU5ESU5HIC0tIG5vdGlm
aWVzIHRoZSBkb21haW4gdGhhdCB0aGVyZSBpcyBhIHBlbmRpbmcgbm90aWZpY2F0aW9uCisgICAg
ICogICAgIHRvIGJlIHByb2Nlc3NlZC4gVGhpcyBiaXQgaXMgY2xlYXJlZCBieSB0aGUgZ3Vlc3Qu
CisgICAgICogIDIuIE1BU0sgLS0gaWYgdGhpcyBiaXQgaXMgY2xlYXIgdGhlbiBhIDAtPjEgdHJh
bnNpdGlvbiBvZiBQRU5ESU5HCisgICAgICogICAgIHdpbGwgY2F1c2UgYW4gYXN5bmNocm9ub3Vz
IHVwY2FsbCB0byBiZSBzY2hlZHVsZWQuIFRoaXMgYml0IGlzIG9ubHkKKyAgICAgKiAgICAgdXBk
YXRlZCBieSB0aGUgZ3Vlc3QuIEl0IGlzIHJlYWQtb25seSB3aXRoaW4gWGVuLiBJZiBhIGNoYW5u
ZWwKKyAgICAgKiAgICAgYmVjb21lcyBwZW5kaW5nIHdoaWxlIHRoZSBjaGFubmVsIGlzIG1hc2tl
ZCB0aGVuIHRoZSAnZWRnZScgaXMgbG9zdAorICAgICAqICAgICAoaS5lLiwgd2hlbiB0aGUgY2hh
bm5lbCBpcyB1bm1hc2tlZCwgdGhlIGd1ZXN0IG11c3QgbWFudWFsbHkgaGFuZGxlCisgICAgICog
ICAgIHBlbmRpbmcgbm90aWZpY2F0aW9ucyBhcyBubyB1cGNhbGwgd2lsbCBiZSBzY2hlZHVsZWQg
YnkgWGVuKS4KKyAgICAgKgorICAgICAqIFRvIGV4cGVkaXRlIHNjYW5uaW5nIG9mIHBlbmRpbmcg
bm90aWZpY2F0aW9ucywgYW55IDAtPjEgcGVuZGluZworICAgICAqIHRyYW5zaXRpb24gb24gYW4g
dW5tYXNrZWQgY2hhbm5lbCBjYXVzZXMgYSBjb3JyZXNwb25kaW5nIGJpdCBpbiBhCisgICAgICog
cGVyLXZjcHUgc2VsZWN0b3Igd29yZCB0byBiZSBzZXQuIEVhY2ggYml0IGluIHRoZSBzZWxlY3Rv
ciBjb3ZlcnMgYQorICAgICAqICdDIExPTkdfUFRSJyBpbiB0aGUgUEVORElORyBiaXRmaWVsZCBh
cnJheS4KKyAgICAgKi8KKyAgICB4ZW5fdWxvbmdfdCBldnRjaG5fcGVuZGluZ1tzaXplb2YoeGVu
X3Vsb25nX3QpICogOF07CisgICAgeGVuX3Vsb25nX3QgZXZ0Y2huX21hc2tbc2l6ZW9mKHhlbl91
bG9uZ190KSAqIDhdOworCisgICAgLyoKKyAgICAgKiBXYWxsY2xvY2sgdGltZTogdXBkYXRlZCBv
bmx5IGJ5IGNvbnRyb2wgc29mdHdhcmUuIEd1ZXN0cyBzaG91bGQgYmFzZQorICAgICAqIHRoZWly
IGdldHRpbWVvZmRheSgpIHN5c2NhbGwgb24gdGhpcyB3YWxsY2xvY2stYmFzZSB2YWx1ZS4KKyAg
ICAgKi8KKyAgICB1aW50MzJfdCB3Y192ZXJzaW9uOyAgICAgIC8qIFZlcnNpb24gY291bnRlcjog
c2VlIHZjcHVfdGltZV9pbmZvX3QuICovCisgICAgdWludDMyX3Qgd2Nfc2VjOyAgICAgICAgICAv
KiBTZWNzICAwMDowMDowMCBVVEMsIEphbiAxLCAxOTcwLiAgKi8KKyAgICB1aW50MzJfdCB3Y19u
c2VjOyAgICAgICAgIC8qIE5zZWNzIDAwOjAwOjAwIFVUQywgSmFuIDEsIDE5NzAuICAqLworI2lm
ICFkZWZpbmVkKF9faTM4Nl9fKQorICAgIHVpbnQzMl90IHdjX3NlY19oaTsKKyMgZGVmaW5lIHhl
bl93Y19zZWNfaGkgd2Nfc2VjX2hpCisjZWxpZiAhZGVmaW5lZChfX1hFTl9fKSAmJiAhZGVmaW5l
ZChfX1hFTl9UT09MU19fKQorIyBkZWZpbmUgeGVuX3djX3NlY19oaSBhcmNoLndjX3NlY19oaQor
I2VuZGlmCisKKyAgICBzdHJ1Y3QgYXJjaF9zaGFyZWRfaW5mbyBhcmNoOworCit9OworI2lmbmRl
ZiBfX1hFTl9fCit0eXBlZGVmIHN0cnVjdCBzaGFyZWRfaW5mbyBzaGFyZWRfaW5mb190OworI2Vu
ZGlmCisKKy8qCisgKiBgaW5jb250ZW50cyAyMDAgc3RhcnRvZmRheSBTdGFydC1vZi1kYXkgbWVt
b3J5IGxheW91dAorICoKKyAqICAxLiBUaGUgZG9tYWluIGlzIHN0YXJ0ZWQgd2l0aGluIGNvbnRp
Z3VvdXMgdmlydHVhbC1tZW1vcnkgcmVnaW9uLgorICogIDIuIFRoZSBjb250aWd1b3VzIHJlZ2lv
biBlbmRzIG9uIGFuIGFsaWduZWQgNE1CIGJvdW5kYXJ5LgorICogIDMuIFRoaXMgdGhlIG9yZGVy
IG9mIGJvb3RzdHJhcCBlbGVtZW50cyBpbiB0aGUgaW5pdGlhbCB2aXJ0dWFsIHJlZ2lvbjoKKyAq
ICAgICAgYS4gcmVsb2NhdGVkIGtlcm5lbCBpbWFnZQorICogICAgICBiLiBpbml0aWFsIHJhbSBk
aXNrICAgICAgICAgICAgICBbbW9kX3N0YXJ0LCBtb2RfbGVuXQorICogICAgICAgICAobWF5IGJl
IG9taXR0ZWQpCisgKiAgICAgIGMuIGxpc3Qgb2YgYWxsb2NhdGVkIHBhZ2UgZnJhbWVzIFttZm5f
bGlzdCwgbnJfcGFnZXNdCisgKiAgICAgICAgICh1bmxlc3MgcmVsb2NhdGVkIGR1ZSB0byBYRU5f
RUxGTk9URV9JTklUX1AyTSkKKyAqICAgICAgZC4gc3RhcnRfaW5mb190IHN0cnVjdHVyZSAgICAg
ICAgW3JlZ2lzdGVyIEVTSSAoeDg2KV0KKyAqICAgICAgICAgaW4gY2FzZSBvZiBkb20wIHRoaXMg
cGFnZSBjb250YWlucyB0aGUgY29uc29sZSBpbmZvLCB0b28KKyAqICAgICAgZS4gdW5sZXNzIGRv
bTA6IHhlbnN0b3JlIHJpbmcgcGFnZQorICogICAgICBmLiB1bmxlc3MgZG9tMDogY29uc29sZSBy
aW5nIHBhZ2UKKyAqICAgICAgZy4gYm9vdHN0cmFwIHBhZ2UgdGFibGVzICAgICAgICAgW3B0X2Jh
c2UgYW5kIENSMyAoeDg2KV0KKyAqICAgICAgaC4gYm9vdHN0cmFwIHN0YWNrICAgICAgICAgICAg
ICAgW3JlZ2lzdGVyIEVTUCAoeDg2KV0KKyAqICA0LiBCb290c3RyYXAgZWxlbWVudHMgYXJlIHBh
Y2tlZCB0b2dldGhlciwgYnV0IGVhY2ggaXMgNGtCLWFsaWduZWQuCisgKiAgNS4gVGhlIGxpc3Qg
b2YgcGFnZSBmcmFtZXMgZm9ybXMgYSBjb250aWd1b3VzICdwc2V1ZG8tcGh5c2ljYWwnIG1lbW9y
eQorICogICAgIGxheW91dCBmb3IgdGhlIGRvbWFpbi4gSW4gcGFydGljdWxhciwgdGhlIGJvb3Rz
dHJhcCB2aXJ0dWFsLW1lbW9yeQorICogICAgIHJlZ2lvbiBpcyBhIDE6MSBtYXBwaW5nIHRvIHRo
ZSBmaXJzdCBzZWN0aW9uIG9mIHRoZSBwc2V1ZG8tcGh5c2ljYWwgbWFwLgorICogIDYuIEFsbCBi
b290c3RyYXAgZWxlbWVudHMgYXJlIG1hcHBlZCByZWFkLXdyaXRhYmxlIGZvciB0aGUgZ3Vlc3Qg
T1MuIFRoZQorICogICAgIG9ubHkgZXhjZXB0aW9uIGlzIHRoZSBib290c3RyYXAgcGFnZSB0YWJs
ZSwgd2hpY2ggaXMgbWFwcGVkIHJlYWQtb25seS4KKyAqICA3LiBUaGVyZSBpcyBndWFyYW50ZWVk
IHRvIGJlIGF0IGxlYXN0IDUxMmtCIHBhZGRpbmcgYWZ0ZXIgdGhlIGZpbmFsCisgKiAgICAgYm9v
dHN0cmFwIGVsZW1lbnQuIElmIG5lY2Vzc2FyeSwgdGhlIGJvb3RzdHJhcCB2aXJ0dWFsIHJlZ2lv
biBpcworICogICAgIGV4dGVuZGVkIGJ5IGFuIGV4dHJhIDRNQiB0byBlbnN1cmUgdGhpcy4KKyAq
CisgKiBOb3RlOiBQcmlvciB0byAyNTgzMzpiYjg1YmJjY2IxYzkuICgieDg2LzMyLW9uLTY0IGFk
anVzdCBEb20wIGluaXRpYWwgcGFnZQorICogdGFibGUgbGF5b3V0IikgYSBidWcgY2F1c2VkIHRo
ZSBwdF9iYXNlICgzLmcgYWJvdmUpIGFuZCBjcjMgdG8gbm90IHBvaW50CisgKiB0byB0aGUgc3Rh
cnQgb2YgdGhlIGd1ZXN0IHBhZ2UgdGFibGVzIChpdCB3YXMgb2Zmc2V0IGJ5IHR3byBwYWdlcyku
CisgKiBUaGlzIG9ubHkgbWFuaWZlc3RlZCBpdHNlbGYgb24gMzItb24tNjQgZG9tMCBrZXJuZWxz
IGFuZCBub3QgMzItb24tNjQgZG9tVQorICogb3IgNjQtYml0IGtlcm5lbHMgb2YgYW55IGNvbG91
ci4gVGhlIHBhZ2UgdGFibGVzIGZvciBhIDMyLW9uLTY0IGRvbTAgZ290CisgKiBhbGxvY2F0ZWQg
aW4gdGhlIG9yZGVyOiAnZmlyc3QgTDEnLCdmaXJzdCBMMicsICdmaXJzdCBMMycsIHNvIHRoZSBv
ZmZzZXQKKyAqIHRvIHRoZSBwYWdlIHRhYmxlIGJhc2UgaXMgYnkgdHdvIHBhZ2VzIGJhY2suIFRo
ZSBpbml0aWFsIGRvbWFpbiBpZiBpdCBpcworICogMzItYml0IGFuZCBydW5zIHVuZGVyIGEgNjQt
Yml0IGh5cGVydmlzb3Igc2hvdWxkIF9OT1RfIHVzZSB0d28gb2YgdGhlCisgKiBwYWdlcyBwcmVj
ZWRpbmcgcHRfYmFzZSBhbmQgbWFyayB0aGVtIGFzIHJlc2VydmVkL3VudXNlZC4KKyAqLworI2lm
ZGVmIFhFTl9IQVZFX1BWX0dVRVNUX0VOVFJZCitzdHJ1Y3Qgc3RhcnRfaW5mbyB7CisgICAgLyog
VEhFIEZPTExPV0lORyBBUkUgRklMTEVEIElOIEJPVEggT04gSU5JVElBTCBCT09UIEFORCBPTiBS
RVNVTUUuICAgICovCisgICAgY2hhciBtYWdpY1szMl07ICAgICAgICAgICAgIC8qICJ4ZW4tPHZl
cnNpb24+LTxwbGF0Zm9ybT4iLiAgICAgICAgICAgICovCisgICAgVUxPTkdfUFRSIG5yX3BhZ2Vz
OyAgICAgLyogVG90YWwgcGFnZXMgYWxsb2NhdGVkIHRvIHRoaXMgZG9tYWluLiAgKi8KKyAgICBV
TE9OR19QVFIgc2hhcmVkX2luZm87ICAvKiBNQUNISU5FIGFkZHJlc3Mgb2Ygc2hhcmVkIGluZm8g
c3RydWN0LiAqLworICAgIHVpbnQzMl90IGZsYWdzOyAgICAgICAgICAgICAvKiBTSUZfeHh4IGZs
YWdzLiAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgIHhlbl9wZm5fdCBzdG9yZV9tZm47
ICAgICAgICAvKiBNQUNISU5FIHBhZ2UgbnVtYmVyIG9mIHNoYXJlZCBwYWdlLiAgICAqLworICAg
IHVpbnQzMl90IHN0b3JlX2V2dGNobjsgICAgICAvKiBFdmVudCBjaGFubmVsIGZvciBzdG9yZSBj
b21tdW5pY2F0aW9uLiAqLworICAgIHVuaW9uIHsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAg
ICAgIHhlbl9wZm5fdCBtZm47ICAgICAgLyogTUFDSElORSBwYWdlIG51bWJlciBvZiBjb25zb2xl
IHBhZ2UuICAgKi8KKyAgICAgICAgICAgIHVpbnQzMl90ICBldnRjaG47ICAgLyogRXZlbnQgY2hh
bm5lbCBmb3IgY29uc29sZSBwYWdlLiAgICAgICAgKi8KKyAgICAgICAgfSBkb21VOworICAgICAg
ICBzdHJ1Y3QgeworICAgICAgICAgICAgdWludDMyX3QgaW5mb19vZmY7ICAvKiBPZmZzZXQgb2Yg
Y29uc29sZV9pbmZvIHN0cnVjdC4gICAgICAgICAqLworICAgICAgICAgICAgdWludDMyX3QgaW5m
b19zaXplOyAvKiBTaXplIG9mIGNvbnNvbGVfaW5mbyBzdHJ1Y3QgZnJvbSBzdGFydC4qLworICAg
ICAgICB9IGRvbTA7CisgICAgfSBjb25zb2xlOworICAgIC8qIFRIRSBGT0xMT1dJTkcgQVJFIE9O
TFkgRklMTEVEIElOIE9OIElOSVRJQUwgQk9PVCAoTk9UIFJFU1VNRSkuICAgICAqLworICAgIFVM
T05HX1BUUiBwdF9iYXNlOyAgICAgIC8qIFZJUlRVQUwgYWRkcmVzcyBvZiBwYWdlIGRpcmVjdG9y
eS4gICAgICovCisgICAgVUxPTkdfUFRSIG5yX3B0X2ZyYW1lczsgLyogTnVtYmVyIG9mIGJvb3Rz
dHJhcCBwLnQuIGZyYW1lcy4gICAgICAgKi8KKyAgICBVTE9OR19QVFIgbWZuX2xpc3Q7ICAgICAv
KiBWSVJUVUFMIGFkZHJlc3Mgb2YgcGFnZS1mcmFtZSBsaXN0LiAgICAqLworICAgIFVMT05HX1BU
UiBtb2Rfc3RhcnQ7ICAgIC8qIFZJUlRVQUwgYWRkcmVzcyBvZiBwcmUtbG9hZGVkIG1vZHVsZSAg
ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIChQRk4gb2YgcHJlLWxvYWRl
ZCBtb2R1bGUgaWYgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8qICBTSUZfTU9EX1NUQVJUX1BGTiBzZXQgaW4gZmxhZ3MpLiAgICAgICovCisgICAgVUxPTkdf
UFRSIG1vZF9sZW47ICAgICAgLyogU2l6ZSAoYnl0ZXMpIG9mIHByZS1sb2FkZWQgbW9kdWxlLiAg
ICAgKi8KKyNkZWZpbmUgTUFYX0dVRVNUX0NNRExJTkUgMTAyNAorICAgIGludDhfdCBjbWRfbGlu
ZVtNQVhfR1VFU1RfQ01ETElORV07CisgICAgLyogVGhlIHBmbiByYW5nZSBoZXJlIGNvdmVycyBi
b3RoIHBhZ2UgdGFibGUgYW5kIHAtPm0gdGFibGUgZnJhbWVzLiAgICovCisgICAgVUxPTkdfUFRS
IGZpcnN0X3AybV9wZm47LyogMXN0IHBmbiBmb3JtaW5nIGluaXRpYWwgUC0+TSB0YWJsZS4gICAg
Ki8KKyAgICBVTE9OR19QVFIgbnJfcDJtX2ZyYW1lczsvKiAjIG9mIHBmbnMgZm9ybWluZyBpbml0
aWFsIFAtPk0gdGFibGUuICAqLworfTsKK3R5cGVkZWYgc3RydWN0IHN0YXJ0X2luZm8gc3RhcnRf
aW5mb190OworCisvKgorICogU3RhcnQgb2YgZGF5IHN0cnVjdHVyZSBwYXNzZWQgdG8gUFZIIGd1
ZXN0cyBpbiAlZWJ4LgorICoKKyAqIE5PVEU6IG5vdGhpbmcgd2lsbCBiZSBsb2FkZWQgYXQgcGh5
c2ljYWwgYWRkcmVzcyAwLCBzbyBhIDAgdmFsdWUgaW4gYW55CisgKiBvZiB0aGUgYWRkcmVzcyBm
aWVsZHMgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgbm90IHByZXNlbnQuCisgKgorICogIDAgKy0tLS0t
LS0tLS0tLS0tLS0rCisgKiAgICB8IG1hZ2ljICAgICAgICAgIHwgQ29udGFpbnMgdGhlIG1hZ2lj
IHZhbHVlIFhFTl9IVk1fU1RBUlRfTUFHSUNfVkFMVUUKKyAqICAgIHwgICAgICAgICAgICAgICAg
fCAoInhFbjMiIHdpdGggdGhlIDB4ODAgYml0IG9mIHRoZSAiRSIgc2V0KS4KKyAqICA0ICstLS0t
LS0tLS0tLS0tLS0tKworICogICAgfCB2ZXJzaW9uICAgICAgICB8IFZlcnNpb24gb2YgdGhpcyBz
dHJ1Y3R1cmUuIEN1cnJlbnQgdmVyc2lvbiBpcyAwLiBOZXcKKyAqICAgIHwgICAgICAgICAgICAg
ICAgfCB2ZXJzaW9ucyBhcmUgZ3VhcmFudGVlZCB0byBiZSBiYWNrd2FyZHMtY29tcGF0aWJsZS4K
KyAqICA4ICstLS0tLS0tLS0tLS0tLS0tKworICogICAgfCBmbGFncyAgICAgICAgICB8IFNJRl94
eHggZmxhZ3MuCisgKiAxMiArLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAgIHwgbnJfbW9kdWxlcyAg
ICAgfCBOdW1iZXIgb2YgbW9kdWxlcyBwYXNzZWQgdG8gdGhlIGtlcm5lbC4KKyAqIDE2ICstLS0t
LS0tLS0tLS0tLS0tKworICogICAgfCBtb2RsaXN0X3BhZGRyICB8IFBoeXNpY2FsIGFkZHJlc3Mg
b2YgYW4gYXJyYXkgb2YgbW9kdWxlcworICogICAgfCAgICAgICAgICAgICAgICB8IChsYXlvdXQg
b2YgdGhlIHN0cnVjdHVyZSBiZWxvdykuCisgKiAyNCArLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAg
IHwgY21kbGluZV9wYWRkciAgfCBQaHlzaWNhbCBhZGRyZXNzIG9mIHRoZSBjb21tYW5kIGxpbmUs
CisgKiAgICB8ICAgICAgICAgICAgICAgIHwgYSB6ZXJvLXRlcm1pbmF0ZWQgQVNDSUkgc3RyaW5n
LgorICogMzIgKy0tLS0tLS0tLS0tLS0tLS0rCisgKiAgICB8IHJzZHBfcGFkZHIgICAgIHwgUGh5
c2ljYWwgYWRkcmVzcyBvZiB0aGUgUlNEUCBBQ1BJIGRhdGEgc3RydWN0dXJlLgorICogNDAgKy0t
LS0tLS0tLS0tLS0tLS0rCisgKgorICogVGhlIGxheW91dCBvZiBlYWNoIGVudHJ5IGluIHRoZSBt
b2R1bGUgc3RydWN0dXJlIGlzIHRoZSBmb2xsb3dpbmc6CisgKgorICogIDAgKy0tLS0tLS0tLS0t
LS0tLS0rCisgKiAgICB8IHBhZGRyICAgICAgICAgIHwgUGh5c2ljYWwgYWRkcmVzcyBvZiB0aGUg
bW9kdWxlLgorICogIDggKy0tLS0tLS0tLS0tLS0tLS0rCisgKiAgICB8IHNpemUgICAgICAgICAg
IHwgU2l6ZSBvZiB0aGUgbW9kdWxlIGluIGJ5dGVzLgorICogMTYgKy0tLS0tLS0tLS0tLS0tLS0r
CisgKiAgICB8IGNtZGxpbmVfcGFkZHIgIHwgUGh5c2ljYWwgYWRkcmVzcyBvZiB0aGUgY29tbWFu
ZCBsaW5lLAorICogICAgfCAgICAgICAgICAgICAgICB8IGEgemVyby10ZXJtaW5hdGVkIEFTQ0lJ
IHN0cmluZy4KKyAqIDI0ICstLS0tLS0tLS0tLS0tLS0tKworICogICAgfCByZXNlcnZlZCAgICAg
ICB8CisgKiAzMiArLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBUaGUgYWRkcmVzcyBhbmQgc2l6
ZXMgYXJlIGFsd2F5cyBhIDY0Yml0IGxpdHRsZSBlbmRpYW4gdW5zaWduZWQgaW50ZWdlci4KKyAq
CisgKiBOQjogWGVuIG9uIHg4NiB3aWxsIGFsd2F5cyB0cnkgdG8gcGxhY2UgYWxsIHRoZSBkYXRh
IGJlbG93IHRoZSA0R2lCCisgKiBib3VuZGFyeS4KKyAqLworI2RlZmluZSBYRU5fSFZNX1NUQVJU
X01BR0lDX1ZBTFVFIDB4MzM2ZWM1NzgKKworLyogTmV3IGNvbnNvbGUgdW5pb24gZm9yIGRvbTAg
aW50cm9kdWNlZCBpbiAweDAwMDMwMjAzLiAqLworI2lmIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9O
X18gPCAweDAwMDMwMjAzCisjZGVmaW5lIGNvbnNvbGVfbWZuICAgIGNvbnNvbGUuZG9tVS5tZm4K
KyNkZWZpbmUgY29uc29sZV9ldnRjaG4gY29uc29sZS5kb21VLmV2dGNobgorI2VuZGlmCisjZW5k
aWYgLyogWEVOX0hBVkVfUFZfR1VFU1RfRU5UUlkgKi8KKworLyogVGhlc2UgZmxhZ3MgYXJlIHBh
c3NlZCBpbiB0aGUgJ2ZsYWdzJyBmaWVsZCBvZiBzdGFydF9pbmZvX3QuICovCisjZGVmaW5lIFNJ
Rl9QUklWSUxFR0VEICAgICgxPDwwKSAgLyogSXMgdGhlIGRvbWFpbiBwcml2aWxlZ2VkPyAqLwor
I2RlZmluZSBTSUZfSU5JVERPTUFJTiAgICAoMTw8MSkgIC8qIElzIHRoaXMgdGhlIGluaXRpYWwg
Y29udHJvbCBkb21haW4/ICovCisjZGVmaW5lIFNJRl9NVUxUSUJPT1RfTU9EICgxPDwyKSAgLyog
SXMgbW9kX3N0YXJ0IGEgbXVsdGlib290IG1vZHVsZT8gKi8KKyNkZWZpbmUgU0lGX01PRF9TVEFS
VF9QRk4gKDE8PDMpICAvKiBJcyBtb2Rfc3RhcnQgYSBQRk4/ICovCisjZGVmaW5lIFNJRl9WSVJU
X1AyTV80VE9PTFMgKDE8PDQpIC8qIERvIFhlbiB0b29scyB1bmRlcnN0YW5kIGEgdmlydC4gbWFw
cGVkICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFAtPk0gbWFraW5n
IHRoZSAzIGxldmVsIHRyZWUgb2Jzb2xldGU/ICovCisjZGVmaW5lIFNJRl9QTV9NQVNLICAgICAg
ICgweEZGPDw4KSAvKiByZXNlcnZlIDEgYnl0ZSBmb3IgeGVuLXBtIG9wdGlvbnMgKi8KKworLyoK
KyAqIEEgbXVsdGlib290IG1vZHVsZSBpcyBhIHBhY2thZ2UgY29udGFpbmluZyBtb2R1bGVzIHZl
cnkgc2ltaWxhciB0byBhCisgKiBtdWx0aWJvb3QgbW9kdWxlIGFycmF5LiBUaGUgb25seSBkaWZm
ZXJlbmNlcyBhcmU6CisgKiAtIHRoZSBhcnJheSBvZiBtb2R1bGUgZGVzY3JpcHRvcnMgaXMgYnkg
Y29udmVudGlvbiBzaW1wbHkgYXQgdGhlIGJlZ2lubmluZworICogICBvZiB0aGUgbXVsdGlib290
IG1vZHVsZSwKKyAqIC0gYWRkcmVzc2VzIGluIHRoZSBtb2R1bGUgZGVzY3JpcHRvcnMgYXJlIGJh
c2VkIG9uIHRoZSBiZWdpbm5pbmcgb2YgdGhlCisgKiAgIG11bHRpYm9vdCBtb2R1bGUsCisgKiAt
IHRoZSBudW1iZXIgb2YgbW9kdWxlcyBpcyBkZXRlcm1pbmVkIGJ5IGEgdGVybWluYXRpb24gZGVz
Y3JpcHRvciB0aGF0IGhhcworICogICBtb2Rfc3RhcnQgPT0gMC4KKyAqCisgKiBUaGlzIHBlcm1p
dHMgdG8gYm90aCBidWlsZCBpdCBzdGF0aWNhbGx5IGFuZCByZWZlcmVuY2UgaXQgaW4gYSBjb25m
aWd1cmF0aW9uCisgKiBmaWxlLCBhbmQgbGV0IHRoZSBQViBndWVzdCBlYXNpbHkgcmViYXNlIHRo
ZSBhZGRyZXNzZXMgdG8gdmlydHVhbCBhZGRyZXNzZXMKKyAqIGFuZCBhdCB0aGUgc2FtZSB0aW1l
IGNvdW50IHRoZSBudW1iZXIgb2YgbW9kdWxlcy4KKyAqLworc3RydWN0IHhlbl9tdWx0aWJvb3Rf
bW9kX2xpc3QKK3sKKyAgICAvKiBBZGRyZXNzIG9mIGZpcnN0IGJ5dGUgb2YgdGhlIG1vZHVsZSAq
LworICAgIHVpbnQzMl90IG1vZF9zdGFydDsKKyAgICAvKiBBZGRyZXNzIG9mIGxhc3QgYnl0ZSBv
ZiB0aGUgbW9kdWxlIChpbmNsdXNpdmUpICovCisgICAgdWludDMyX3QgbW9kX2VuZDsKKyAgICAv
KiBBZGRyZXNzIG9mIHplcm8tdGVybWluYXRlZCBjb21tYW5kIGxpbmUgKi8KKyAgICB1aW50MzJf
dCBjbWRsaW5lOworICAgIC8qIFVudXNlZCwgbXVzdCBiZSB6ZXJvICovCisgICAgdWludDMyX3Qg
cGFkOworfTsKKy8qCisgKiBgaW5jb250ZW50cyAyMDAgc3RhcnRvZmRheV9kb20wX2NvbnNvbGUg
RG9tMF9jb25zb2xlCisgKgorICogVGhlIGNvbnNvbGUgc3RydWN0dXJlIGluIHN0YXJ0X2luZm8u
Y29uc29sZS5kb20wCisgKgorICogVGhpcyBzdHJ1Y3R1cmUgaW5jbHVkZXMgYSB2YXJpZXR5IG9m
IGluZm9ybWF0aW9uIHJlcXVpcmVkIHRvCisgKiBoYXZlIGEgd29ya2luZyBWR0EvVkVTQSBjb25z
b2xlLgorICovCit0eXBlZGVmIHN0cnVjdCBkb20wX3ZnYV9jb25zb2xlX2luZm8geworICAgIHVp
bnQ4X3QgdmlkZW9fdHlwZTsgLyogRE9NMF9WR0FfQ09OU09MRV8/Pz8gKi8KKyNkZWZpbmUgWEVO
X1ZHQVRZUEVfVEVYVF9NT0RFXzMgMHgwMworI2RlZmluZSBYRU5fVkdBVFlQRV9WRVNBX0xGQiAg
ICAweDIzCisjZGVmaW5lIFhFTl9WR0FUWVBFX0VGSV9MRkIgICAgIDB4NzAKKworICAgIHVuaW9u
IHsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAgIC8qIEZvbnQgaGVpZ2h0LCBpbiBwaXhl
bHMuICovCisgICAgICAgICAgICB1aW50MTZfdCBmb250X2hlaWdodDsKKyAgICAgICAgICAgIC8q
IEN1cnNvciBsb2NhdGlvbiAoY29sdW1uLCByb3cpLiAqLworICAgICAgICAgICAgdWludDE2X3Qg
Y3Vyc29yX3gsIGN1cnNvcl95OworICAgICAgICAgICAgLyogTnVtYmVyIG9mIHJvd3MgYW5kIGNv
bHVtbnMgKGRpbWVuc2lvbnMgaW4gY2hhcmFjdGVycykuICovCisgICAgICAgICAgICB1aW50MTZf
dCByb3dzLCBjb2x1bW5zOworICAgICAgICB9IHRleHRfbW9kZV8zOworCisgICAgICAgIHN0cnVj
dCB7CisgICAgICAgICAgICAvKiBXaWR0aCBhbmQgaGVpZ2h0LCBpbiBwaXhlbHMuICovCisgICAg
ICAgICAgICB1aW50MTZfdCB3aWR0aCwgaGVpZ2h0OworICAgICAgICAgICAgLyogQnl0ZXMgcGVy
IHNjYW4gbGluZS4gKi8KKyAgICAgICAgICAgIHVpbnQxNl90IGJ5dGVzX3Blcl9saW5lOworICAg
ICAgICAgICAgLyogQml0cyBwZXIgcGl4ZWwuICovCisgICAgICAgICAgICB1aW50MTZfdCBiaXRz
X3Blcl9waXhlbDsKKyAgICAgICAgICAgIC8qIExGQiBwaHlzaWNhbCBhZGRyZXNzLCBhbmQgc2l6
ZSAoaW4gdW5pdHMgb2YgNjRrQikuICovCisgICAgICAgICAgICB1aW50MzJfdCBsZmJfYmFzZTsK
KyAgICAgICAgICAgIHVpbnQzMl90IGxmYl9zaXplOworICAgICAgICAgICAgLyogUkdCIG1hc2sg
b2Zmc2V0cyBhbmQgc2l6ZXMsIGFzIGRlZmluZWQgYnkgVkJFIDEuMisgKi8KKyAgICAgICAgICAg
IHVpbnQ4X3QgIHJlZF9wb3MsIHJlZF9zaXplOworICAgICAgICAgICAgdWludDhfdCAgZ3JlZW5f
cG9zLCBncmVlbl9zaXplOworICAgICAgICAgICAgdWludDhfdCAgYmx1ZV9wb3MsIGJsdWVfc2l6
ZTsKKyAgICAgICAgICAgIHVpbnQ4X3QgIHJzdmRfcG9zLCByc3ZkX3NpemU7CisjaWYgX19YRU5f
SU5URVJGQUNFX1ZFUlNJT05fXyA+PSAweDAwMDMwMjA2CisgICAgICAgICAgICAvKiBWRVNBIGNh
cGFiaWxpdGllcyAob2Zmc2V0IDB4YSwgVkVTQSBjb21tYW5kIDB4NGYwMCkuICovCisgICAgICAg
ICAgICB1aW50MzJfdCBnYmxfY2FwczsKKyAgICAgICAgICAgIC8qIE1vZGUgYXR0cmlidXRlcyAo
b2Zmc2V0IDB4MCwgVkVTQSBjb21tYW5kIDB4NGYwMSkuICovCisgICAgICAgICAgICB1aW50MTZf
dCBtb2RlX2F0dHJzOworI2VuZGlmCisgICAgICAgIH0gdmVzYV9sZmI7CisgICAgfSB1OworfSBk
b20wX3ZnYV9jb25zb2xlX2luZm9fdDsKKyNkZWZpbmUgeGVuX3ZnYV9jb25zb2xlX2luZm8gZG9t
MF92Z2FfY29uc29sZV9pbmZvCisjZGVmaW5lIHhlbl92Z2FfY29uc29sZV9pbmZvX3QgZG9tMF92
Z2FfY29uc29sZV9pbmZvX3QKKwordHlwZWRlZiB1aW50OF90IHhlbl9kb21haW5faGFuZGxlX3Rb
MTZdOworCitfX0RFRklORV9YRU5fR1VFU1RfSEFORExFKHVpbnQ4LCAgdWludDhfdCk7CitfX0RF
RklORV9YRU5fR1VFU1RfSEFORExFKHVpbnQxNiwgdWludDE2X3QpOworX19ERUZJTkVfWEVOX0dV
RVNUX0hBTkRMRSh1aW50MzIsIHVpbnQzMl90KTsKK19fREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUo
dWludDY0LCB1aW50NjRfdCk7CisKKyNlbmRpZiAvKiAhX19BU1NFTUJMWV9fICovCisKKy8qIERl
ZmF1bHQgZGVmaW5pdGlvbnMgZm9yIG1hY3JvcyB1c2VkIGJ5IGRvbWN0bC9zeXNjdGwuICovCisj
aWYgZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pCisKKyNpZm5kZWYg
aW50NjRfYWxpZ25lZF90CisjZGVmaW5lIGludDY0X2FsaWduZWRfdCBpbnQ2NF90CisjZW5kaWYK
KyNpZm5kZWYgdWludDY0X2FsaWduZWRfdAorI2RlZmluZSB1aW50NjRfYWxpZ25lZF90IHVpbnQ2
NF90CisjZW5kaWYKKyNpZm5kZWYgWEVOX0dVRVNUX0hBTkRMRV82NAorI2RlZmluZSBYRU5fR1VF
U1RfSEFORExFXzY0KG5hbWUpIFhFTl9HVUVTVF9IQU5ETEUobmFtZSkKKyNlbmRpZgorCisjaWZu
ZGVmIF9fQVNTRU1CTFlfXworc3RydWN0IHhlbmN0bF9iaXRtYXAgeworICAgIFhFTl9HVUVTVF9I
QU5ETEVfNjQodWludDgpIGJpdG1hcDsKKyAgICB1aW50MzJfdCBucl9iaXRzOworfTsKKyNlbmRp
ZgorCisjZW5kaWYgLyogZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18p
ICovCisKKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfWEVOX0hfXyAqLworCisvKgorICogTG9jYWwg
dmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAiQlNEIgorICogYy1iYXNp
Yy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisg
KiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL3NyYy94ZW5uZXQvcmVjZWl2ZXIuYyBiL3NyYy94ZW5u
ZXQvcmVjZWl2ZXIuYwppbmRleCA4NDNkZjJiLi45NjRjYTkwIDEwMDY0NAotLS0gYS9zcmMveGVu
bmV0L3JlY2VpdmVyLmMKKysrIGIvc3JjL3hlbm5ldC9yZWNlaXZlci5jCkBAIC0zMSw2ICszMSw3
IEBACiAKICNpbmNsdWRlIDxuZGlzLmg+CiAjaW5jbHVkZSA8dGNwaXAuaD4KKyNpbmNsdWRlIDx4
ZW4uaD4KIAogI2luY2x1ZGUgInV0aWwuaCIKICNpbmNsdWRlICJyZWNlaXZlci5oIgpAQCAtNDIs
OCArNDMsNyBAQCBzdHJ1Y3QgX1hFTk5FVF9SRUNFSVZFUiB7CiAgICAgUFhFTk5FVF9BREFQVEVS
ICAgICAgICAgICAgIEFkYXB0ZXI7CiAgICAgTkRJU19IQU5ETEUgICAgICAgICAgICAgICAgIE5l
dEJ1ZmZlckxpc3RQb29sOwogICAgIFBORVRfQlVGRkVSX0xJU1QgICAgICAgICAgICBQdXRMaXN0
OwotICAgIFBORVRfQlVGRkVSX0xJU1QgICAgICAgICAgICBHZXRMaXN0OwotICAgIEtTUElOX0xP
Q0sgICAgICAgICAgICAgICAgICBMb2NrOworICAgIFBORVRfQlVGRkVSX0xJU1QgICAgICAgICAg
ICBHZXRMaXN0W0hWTV9NQVhfVkNQVVNdOwogICAgIExPTkcgICAgICAgICAgICAgICAgICAgICAg
ICBJbk5ESVM7CiAgICAgTE9ORyAgICAgICAgICAgICAgICAgICAgICAgIEluTkRJU01heDsKICAg
ICBYRU5WSUZfVklGX09GRkxPQURfT1BUSU9OUyAgT2ZmbG9hZE9wdGlvbnM7CkBAIC02NywyMCAr
NjcsMjIgQEAgX19SZWNlaXZlckFsbG9jYXRlTmV0QnVmZmVyTGlzdCgKICAgICBJTiAgUFZPSUQg
ICAgICAgICAgICAgICAgICAgQ29va2llCiAgICAgKQogeworICAgIFVMT05HICAgICAgICAgICAg
ICAgICAgICAgICBJbmRleDsKICAgICBQTkVUX0JVRkZFUl9MSVNUICAgICAgICAgICAgTmV0QnVm
ZmVyTGlzdDsKICAgICBQTkVUX0JVRkZFUl9MSVNUX1JFU0VSVkVEICAgTGlzdFJlc2VydmVkOwog
CiAgICAgQVNTRVJUM1UoS2VHZXRDdXJyZW50SXJxbCgpLCA9PSwgRElTUEFUQ0hfTEVWRUwpOwot
ICAgIEtlQWNxdWlyZVNwaW5Mb2NrQXREcGNMZXZlbCgmUmVjZWl2ZXItPkxvY2spOwogCi0gICAg
aWYgKFJlY2VpdmVyLT5HZXRMaXN0ID09IE5VTEwpCi0gICAgICAgIFJlY2VpdmVyLT5HZXRMaXN0
ID0gSW50ZXJsb2NrZWRFeGNoYW5nZVBvaW50ZXIoJlJlY2VpdmVyLT5QdXRMaXN0LCBOVUxMKTsK
KyAgICBJbmRleCA9IEtlR2V0Q3VycmVudFByb2Nlc3Nvck51bWJlckV4KE5VTEwpOwogCi0gICAg
TmV0QnVmZmVyTGlzdCA9IFJlY2VpdmVyLT5HZXRMaXN0OworICAgIGlmIChSZWNlaXZlci0+R2V0
TGlzdFtJbmRleF0gPT0gTlVMTCkKKyAgICAgICAgUmVjZWl2ZXItPkdldExpc3RbSW5kZXhdID0g
SW50ZXJsb2NrZWRFeGNoYW5nZVBvaW50ZXIoJlJlY2VpdmVyLT5QdXRMaXN0LCBOVUxMKTsKKwor
ICAgIE5ldEJ1ZmZlckxpc3QgPSBSZWNlaXZlci0+R2V0TGlzdFtJbmRleF07CiAgICAgaWYgKE5l
dEJ1ZmZlckxpc3QgIT0gTlVMTCkgewogICAgICAgICBQTkVUX0JVRkZFUiBOZXRCdWZmZXI7CiAK
LSAgICAgICAgUmVjZWl2ZXItPkdldExpc3QgPSBORVRfQlVGRkVSX0xJU1RfTkVYVF9OQkwoTmV0
QnVmZmVyTGlzdCk7CisgICAgICAgIFJlY2VpdmVyLT5HZXRMaXN0W0luZGV4XSA9IE5FVF9CVUZG
RVJfTElTVF9ORVhUX05CTChOZXRCdWZmZXJMaXN0KTsKICAgICAgICAgTkVUX0JVRkZFUl9MSVNU
X05FWFRfTkJMKE5ldEJ1ZmZlckxpc3QpID0gTlVMTDsKIAogICAgICAgICBORVRfQlVGRkVSX0xJ
U1RfSU5GTyhOZXRCdWZmZXJMaXN0LCBUY3BJcENoZWNrc3VtTmV0QnVmZmVyTGlzdEluZm8pID0g
TlVMTDsKQEAgLTEwNiw4ICsxMDgsNiBAQCBfX1JlY2VpdmVyQWxsb2NhdGVOZXRCdWZmZXJMaXN0
KAogICAgICAgICBBU1NFUlQoSU1QTFkoTmV0QnVmZmVyTGlzdCAhPSBOVUxMLCBORVRfQlVGRkVS
X0xJU1RfTkVYVF9OQkwoTmV0QnVmZmVyTGlzdCkgPT0gTlVMTCkpOwogICAgIH0KIAotICAgIEtl
UmVsZWFzZVNwaW5Mb2NrRnJvbURwY0xldmVsKCZSZWNlaXZlci0+TG9jayk7Ci0KICAgICBMaXN0
UmVzZXJ2ZWQgPSAoUE5FVF9CVUZGRVJfTElTVF9SRVNFUlZFRClORVRfQlVGRkVSX0xJU1RfTUlO
SVBPUlRfUkVTRVJWRUQoTmV0QnVmZmVyTGlzdCk7CiAgICAgQVNTRVJUM1AoTGlzdFJlc2VydmVk
LT5Db29raWUsID09LCBOVUxMKTsKICAgICBMaXN0UmVzZXJ2ZWQtPkNvb2tpZSA9IENvb2tpZTsK
QEAgLTM0NSw4ICszNDUsNiBAQCBSZWNlaXZlckluaXRpYWxpemUoCiAgICAgaWYgKCgqUmVjZWl2
ZXIpLT5OZXRCdWZmZXJMaXN0UG9vbCA9PSBOVUxMKQogICAgICAgICBnb3RvIGZhaWwyOwogCi0g
ICAgS2VJbml0aWFsaXplU3BpbkxvY2soJigqUmVjZWl2ZXIpLT5Mb2NrKTsKLQogICAgIHJldHVy
biBORElTX1NUQVRVU19TVUNDRVNTOwogCiBmYWlsMjoKQEAgLTM1OSwyMCArMzU3LDI0IEBAIFJl
Y2VpdmVyVGVhcmRvd24oCiAgICAgSU4gIFBYRU5ORVRfUkVDRUlWRVIgICAgUmVjZWl2ZXIKICAg
ICApCiB7CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgSW5kZXg7CiAgICAgUE5FVF9CVUZG
RVJfTElTVCAgICAgICAgTmV0QnVmZmVyTGlzdDsKIAogICAgIEFTU0VSVChSZWNlaXZlciAhPSBO
VUxMKTsKIAotICAgIE5ldEJ1ZmZlckxpc3QgPSBSZWNlaXZlci0+R2V0TGlzdDsKLSAgICB3aGls
ZSAoTmV0QnVmZmVyTGlzdCAhPSBOVUxMKSB7Ci0gICAgICAgIFBORVRfQlVGRkVSX0xJU1QgICAg
TmV4dDsKKyAgICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBIVk1fTUFYX1ZDUFVTOyBJbmRleCsr
KSB7CisgICAgICAgIE5ldEJ1ZmZlckxpc3QgPSBSZWNlaXZlci0+R2V0TGlzdFtJbmRleF07CiAK
LSAgICAgICAgTmV4dCA9IE5FVF9CVUZGRVJfTElTVF9ORVhUX05CTChOZXRCdWZmZXJMaXN0KTsK
LSAgICAgICAgTkVUX0JVRkZFUl9MSVNUX05FWFRfTkJMKE5ldEJ1ZmZlckxpc3QpID0gTlVMTDsK
KyAgICAgICAgd2hpbGUgKE5ldEJ1ZmZlckxpc3QgIT0gTlVMTCkgeworICAgICAgICAgICAgUE5F
VF9CVUZGRVJfTElTVCAgICBOZXh0OwogCi0gICAgICAgIE5kaXNGcmVlTmV0QnVmZmVyTGlzdChO
ZXRCdWZmZXJMaXN0KTsKKyAgICAgICAgICAgIE5leHQgPSBORVRfQlVGRkVSX0xJU1RfTkVYVF9O
QkwoTmV0QnVmZmVyTGlzdCk7CisgICAgICAgICAgICBORVRfQlVGRkVSX0xJU1RfTkVYVF9OQkwo
TmV0QnVmZmVyTGlzdCkgPSBOVUxMOwogCi0gICAgICAgIE5ldEJ1ZmZlckxpc3QgPSBOZXh0Owor
ICAgICAgICAgICAgTmRpc0ZyZWVOZXRCdWZmZXJMaXN0KE5ldEJ1ZmZlckxpc3QpOworCisgICAg
ICAgICAgICBOZXRCdWZmZXJMaXN0ID0gTmV4dDsKKyAgICAgICAgfQogICAgIH0KIAogICAgIE5l
dEJ1ZmZlckxpc3QgPSBSZWNlaXZlci0+UHV0TGlzdDsKZGlmZiAtLWdpdCBhL3ZzMjAxMi94ZW5u
ZXQveGVubmV0LnZjeHByb2ogYi92czIwMTIveGVubmV0L3hlbm5ldC52Y3hwcm9qCmluZGV4IDA1
NGI0YTYuLmYwZTkwNzMgMTAwNjQ0Ci0tLSBhL3ZzMjAxMi94ZW5uZXQveGVubmV0LnZjeHByb2oK
KysrIGIvdnMyMDEyL3hlbm5ldC94ZW5uZXQudmN4cHJvagpAQCAtMjMsNyArMjMsNyBAQAogCTxJ
bXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPiAK
IAogCTxQcm9wZXJ0eUdyb3VwPgotCQk8SW5jbHVkZVBhdGg+Li5cLi5caW5jbHVkZTskKEluY2x1
ZGVQYXRoKTwvSW5jbHVkZVBhdGg+CisJICAgICAgICA8SW5jbHVkZVBhdGg+Li5cLi5caW5jbHVk
ZTsuLlwuLlxpbmNsdWRlXHhlbjskKEluY2x1ZGVQYXRoKTwvSW5jbHVkZVBhdGg+CiAJCTxSdW5D
b2RlQW5hbHlzaXM+dHJ1ZTwvUnVuQ29kZUFuYWx5c2lzPgogCQk8RW5hYmxlSW5mMmNhdD5mYWxz
ZTwvRW5hYmxlSW5mMmNhdD4KIAkJPEludERpcj4uLlwkKFByb2plY3ROYW1lKVwkKENvbmZpZ3Vy
YXRpb25OYW1lKVwkKFBsYXRmb3JtKVw8L0ludERpcj4KZGlmZiAtLWdpdCBhL3ZzMjAxMy94ZW5u
ZXQveGVubmV0LnZjeHByb2ogYi92czIwMTMveGVubmV0L3hlbm5ldC52Y3hwcm9qCmluZGV4IDU4
ZjQwMzIuLmNiZTU3ZjUgMTAwNjQ0Ci0tLSBhL3ZzMjAxMy94ZW5uZXQveGVubmV0LnZjeHByb2oK
KysrIGIvdnMyMDEzL3hlbm5ldC94ZW5uZXQudmN4cHJvagpAQCAtMjAsNyArMjAsNiBAQAogICA8
SW1wb3J0IFByb2plY3Q9Ii4uXHRhcmdldHMucHJvcHMiIC8+CiAgIDxJbXBvcnQgUHJvamVjdD0i
JChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPgogICA8UHJvcGVydHlHcm91
cD4KLSAgICA8SW5jbHVkZVBhdGg+Li5cLi5caW5jbHVkZTskKEluY2x1ZGVQYXRoKTwvSW5jbHVk
ZVBhdGg+CiAgICAgPFJ1bkNvZGVBbmFseXNpcz50cnVlPC9SdW5Db2RlQW5hbHlzaXM+CiAgICAg
PEVuYWJsZUluZjJjYXQ+ZmFsc2U8L0VuYWJsZUluZjJjYXQ+CiAgICAgPEludERpcj4uLlwkKFBy
b2plY3ROYW1lKVwkKENvbmZpZ3VyYXRpb25OYW1lKVwkKFBsYXRmb3JtKVw8L0ludERpcj4KQEAg
LTI5LDExICsyOCwxNSBAQAogICA8SXRlbURlZmluaXRpb25Hcm91cD4KICAgICA8Q2xDb21waWxl
PgogICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPl9fTU9EVUxFX189IlhFTk5FVCI7TkRJ
U19NSU5JUE9SVF9EUklWRVI7TkRJU19XRE09MTtORElTNjFfTUlOSVBPUlQ9MTtQT09MX05YX09Q
VElOPTE7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25z
PgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+JChXaW5kb3dzU2RrRGlyKVxp
bmNsdWRlXGttOy4uXC4uXGluY2x1ZGU7Li5cLi5caW5jbHVkZVx4ZW47PC9BZGRpdGlvbmFsSW5j
bHVkZURpcmVjdG9yaWVzPgogICAgICAgPFdhcm5pbmdMZXZlbD5FbmFibGVBbGxXYXJuaW5nczwv
V2FybmluZ0xldmVsPgogICAgICAgPERpc2FibGVTcGVjaWZpY1dhcm5pbmdzPjQ3MTE7NDU0ODs0
ODIwOzQ2Njg7NDI1NTs2MDAxOzYwNTQ7MjgxOTY7JShEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncyk8
L0Rpc2FibGVTcGVjaWZpY1dhcm5pbmdzPgogICAgICAgPE11bHRpUHJvY2Vzc29yQ29tcGlsYXRp
b24+dHJ1ZTwvTXVsdGlQcm9jZXNzb3JDb21waWxhdGlvbj4KICAgICAgIDxFbmFibGVQUkVmYXN0
PnRydWU8L0VuYWJsZVBSRWZhc3Q+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPFJlc291cmNlQ29t
cGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7
JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcz4KKyAgICA8L1Jlc291cmNlQ29tcGlsZT4KICAgICA8TGluaz4KICAgICAgIDxJbWFnZUhh
c1NhZmVFeGNlcHRpb25IYW5kbGVycz5mYWxzZTwvSW1hZ2VIYXNTYWZlRXhjZXB0aW9uSGFuZGxl
cnM+CiAgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz4kKERES19MSUJfUEFUSClcbmRpcy5s
aWI7JChEREtfTElCX1BBVEgpL2xpYmNudHByLmxpYjskKERES19MSUJfUEFUSCkvYXV4X2tsaWIu
bGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+Ci0t
IAoyLjEuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Cndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qu
b3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZv
L3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Mon Jul 18 12:39:36 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 18 Jul 2016 12:39:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bP7pg-0002vp-Hp; Mon, 18 Jul 2016 12:39:36 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bP7pe-0002vj-F9
 for win-pv-devel@lists.xenproject.org; Mon, 18 Jul 2016 12:39:34 +0000
Received: from [85.158.143.35] by server-2.bemta-6.messagelabs.com id
 98/BA-13744-50ECC875; Mon, 18 Jul 2016 12:39:33 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrAIsWRWlGSWpSXmKPExsVyMfSqky7zuZ5
 wg76bghZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y1rXWaaCxqOsFY0Xb7M0MC5az9LFyMUhJDCb
 UeL0psVsIA6LwCUWiYf3VrCCOBIC71gk3mzeyd7FyAnkxEi8/nYUKMEBZFdJXPltDhIWElCUa
 L52gR1i0jImiePzW1hAEmwC6hK33y+G6rWT+DTrJpgtIqAqcW35MTYQm1lAS+LhhnmMILawgK
 3E0s1nwGwWoJp9R9eBzeEVcJfoP3ubDWKOnMTeyatZJjDyL2BkWMWoXpxaVJZapGuol1SUmZ5
 RkpuYmaNraGCml5taXJyYnpqTmFSsl5yfu4kRGEIMQLCDcedzp0OMkhxMSqK8Vgt6woX4kvJT
 KjMSizPii0pzUosPMcpwcChJ8L49A5QTLEpNT61Iy8wBBjNMWoKDR0kEIs1bXJCYW5yZDpE6x
 WjJseX3tbVMHFsW3ACS26beW8skxJKXn5cqJc77BaRBAKQhozQPbhws4i4xykoJ8zICHSjEU5
 BalJtZgir/ilGcg1FJmNfoLNAUnsy8Eritr4AOYgI6yEC1G+SgkkSElFQDo6bI17shExdGRci
 7zn/YfdKmUbtgTdZd9oi0K+ddLqvdm2wktTDI6oC2y7Jb1gahqWEuaz3y/pvHX5r8r7L1XeFr
 G3khqxnTV56ZGL2zz/KZiZzX1Au8Vi9uTn/84V3dir299Yv9f93/yf4x9fn+2OhT8VcvHpmxr
 oyvr3+d6nTzf5Isk99JbldiKc5INNRiLipOBAAGEDtAswIAAA==
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-13.tower-21.messagelabs.com!1468845570!24483267!1
X-Originating-IP: [209.85.213.66]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG, UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 50225 invoked from network); 18 Jul 2016 12:39:30 -0000
Received: from mail-vk0-f66.google.com (HELO mail-vk0-f66.google.com)
 (209.85.213.66)
 by server-13.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 18 Jul 2016 12:39:30 -0000
Received: by mail-vk0-f66.google.com with SMTP id s189so1902531vkh.0
 for <win-pv-devel@lists.xenproject.org>; Mon, 18 Jul 2016 05:39:30 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=Vrw8TZxsUA3AQlkOTugjok+jUj6fuSVljTiFLMNdR7c=;
 b=hKn0/NgFEou5UK0vZa8jvYiFEANz/aBQlqPl4c3VRFHsCgp8penjwjaW2Hi5iUhvUU
 l9FEIc5NVglM2vgORrGjPcEjdxnnQhvJPCInFfvjcJdpodm3LyPGt40OkEOlol7Ab2xJ
 XDsj0awpFpB+cHk+zuSos+YVKljaVAHMyPT6p5wIpEowOVjzCnETHXkaG8bPE2qI/7FK
 S/TwB/8NCgAdhGaLDhcIp8ciPQVxVgM7jVk4dd+23LL4IEwuUhaiUo6FtP7lQlrTRYuF
 Gn86t/Sq+P9M3/+/aS6hzc93T0JLfICcULQ3phcHxzdKj6an3YHYvv3ihq0r6J6hVDON
 LCiQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=Vrw8TZxsUA3AQlkOTugjok+jUj6fuSVljTiFLMNdR7c=;
 b=SECcJz5HksAPFwbDJo2RUykagx9pKqWlSG6Ik4E+9MhX+3mSGXl48eUmlKwYxXCt6J
 VAq339YD39Ru6Q0jw9vRpvYWeOMm6+Vu6fNtGVJxZFLCcYi1BVGT2TAPjwyZ46RlTDKj
 cd69+zHnNsZ9CNTGUeVEHQQGgWPabova6tLb5AAFGmRWmgAJdSAT41moVUKfGYd/7bgU
 aUD7D2kdutb4qTv0YoCyP8/ktyv7iexdhCh2zA1ZQzc+ZMd0SuIUE8WFn2raj3qZnBf3
 nNGiNNhABG+VO44Figpyc7FYuMg+xAJ5nXrjTGYkCg4yuh8cstvDp7HRR96kw2BEaSba
 8m0g==
X-Gm-Message-State: ALyK8tLv83SI744X7b2/8xXaXoXbpUUWX1DVjdN+nNq0TIhcjfIeRYB5wo90muT7CG2gsg==
X-Received: by 10.176.65.33 with SMTP id j30mr17153585uad.151.1468845566976;
 Mon, 18 Jul 2016 05:39:26 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id 42sm2022807uac.20.2016.07.18.05.39.25
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Mon, 18 Jul 2016 05:39:26 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Mon, 18 Jul 2016 13:38:44 +0100
Message-Id: <1468845524-12076-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Avoid lock contention between receiving CPUs
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhlIHNpbmdsZSBQdXRMaXN0L0dldExpc3QgZm9yIGNhY2hlZCBORVRfQlVGRkVSX0xJU1Qgc3Ry
dWN0dXJlcyBpcwpjdXJyZW50bHkgYSBwb2ludCBvZiBjb250ZW50aW9uLiBUaGlzIHBhdGNoIGdl
dHMgcmlkIG9mIHRoZSBjb250ZW50aW9uCmJ5IGtlZXBpbmcgcGVyLUNQVSBHZXRMaXN0cy4KClRv
IGFjY2VzcyB0aGUgZGVmaW5pdGlvbiBvZiBIVk1fTUFYX1ZDUFVTLCB0aGUgaHZtX2luZm9fdGFi
bGUuaCBoZWFkZXIKbmVlZHMgdG8gYmUgcHVsbGVkIGluIHRoZSBmcm9tIHRoZSBYZW4gc291cmNl
IGJhc2UuIFRoaXMgcGF0Y2ggdGhlcmVmb3JlCmFkZHMgdGhlIGluZnJhc3RydWN0dXJlIGZvciBw
dWxsaW5nIGluIFhlbiBoZWFkZXJzLgoKU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVs
LmR1cnJhbnRAY2l0cml4LmNvbT4KLS0tCiBnZXRfeGVuX2hlYWRlcnMucHkgICAgICAgICAgICAg
ICAgICAgICAgIHwgIDc0ICsrKwogaW5jbHVkZS94ZW4tdHlwZXMuaCAgICAgICAgICAgICAgICAg
ICAgICB8ICA1NSArKwogaW5jbHVkZS94ZW4tdmVyc2lvbi5oICAgICAgICAgICAgICAgICAgICB8
ICAzNyArKwogaW5jbHVkZS94ZW4td2FybmluZ3MuaCAgICAgICAgICAgICAgICAgICB8ICA0MiAr
KwogaW5jbHVkZS94ZW4uaCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0MyArKwogaW5j
bHVkZS94ZW4vcHVibGljL2FyY2gteDg2L3hlbi14ODZfMzIuaCB8IDE2OSArKysrKysKIGluY2x1
ZGUveGVuL3B1YmxpYy9hcmNoLXg4Ni94ZW4teDg2XzY0LmggfCAyMDIgKysrKysrKwogaW5jbHVk
ZS94ZW4vcHVibGljL2FyY2gteDg2L3hlbi5oICAgICAgICB8IDMzOCArKysrKysrKysrKwogaW5j
bHVkZS94ZW4vcHVibGljL2h2bS9odm1faW5mb190YWJsZS5oICB8ICA3NCArKysKIGluY2x1ZGUv
eGVuL3B1YmxpYy94ZW4tY29tcGF0LmggICAgICAgICAgfCAgNDQgKysKIGluY2x1ZGUveGVuL3B1
YmxpYy94ZW4uaCAgICAgICAgICAgICAgICAgfCA5OTUgKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKwogc3JjL3hlbm5ldC9yZWNlaXZlci5jICAgICAgICAgICAgICAgICAgICB8ICAzOCAr
LQogdnMyMDEyL3hlbm5ldC94ZW5uZXQudmN4cHJvaiAgICAgICAgICAgICB8ICAgMiArLQogdnMy
MDEzL3hlbm5ldC94ZW5uZXQudmN4cHJvaiAgICAgICAgICAgICB8ICAgNSArLQogMTQgZmlsZXMg
Y2hhbmdlZCwgMjA5OCBpbnNlcnRpb25zKCspLCAyMCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBnZXRfeGVuX2hlYWRlcnMucHkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3hl
bi10eXBlcy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4tdmVyc2lvbi5oCiBjcmVh
dGUgbW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4td2FybmluZ3MuaAogY3JlYXRlIG1vZGUgMTAwNjQ0
IGluY2x1ZGUveGVuLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3hlbi9wdWJsaWMvYXJj
aC14ODYveGVuLXg4Nl8zMi5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4vcHVibGlj
L2FyY2gteDg2L3hlbi14ODZfNjQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL3B1
YmxpYy9hcmNoLXg4Ni94ZW4uaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL3B1Ymxp
Yy9odm0vaHZtX2luZm9fdGFibGUuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL3B1
YmxpYy94ZW4tY29tcGF0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3hlbi9wdWJsaWMv
eGVuLmgKCmRpZmYgLS1naXQgYS9nZXRfeGVuX2hlYWRlcnMucHkgYi9nZXRfeGVuX2hlYWRlcnMu
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmQ0ZDBmNgotLS0gL2Rldi9u
dWxsCisrKyBiL2dldF94ZW5faGVhZGVycy5weQpAQCAtMCwwICsxLDc0IEBACisjIXB5dGhvbiAt
dQorCitpbXBvcnQgb3MsIHN5cworaW1wb3J0IHNodXRpbAoraW1wb3J0IHN1YnByb2Nlc3MKK2lt
cG9ydCByZQorCitkZWYgc2hlbGwoY29tbWFuZCwgZGlyID0gJy4nKToKKyAgICBwcmludCgiaW4g
JyVzJyBleGVjdXRlICclcyciICUgKGRpciwgJyAnLmpvaW4oY29tbWFuZCkpKQorICAgIHN5cy5z
dGRvdXQuZmx1c2goKQorCisgICAgc3ViID0gc3VicHJvY2Vzcy5Qb3BlbignICcuam9pbihjb21t
YW5kKSwgY3dkPWRpciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZG91dD1zdWJwcm9j
ZXNzLlBJUEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRlcnI9c3VicHJvY2Vzcy5T
VERPVVQpCisKKyAgICBmb3IgbGluZSBpbiBzdWIuc3Rkb3V0OgorICAgICAgICBwcmludChsaW5l
LmRlY29kZShzeXMuZ2V0ZGVmYXVsdGVuY29kaW5nKCkpLnJzdHJpcCgpKQorCisgICAgc3ViLndh
aXQoKQorCisgICAgcmV0dXJuIHN1Yi5yZXR1cm5jb2RlCisKK2RlZiBnZXRfcmVwbyh1cmwsIHdv
cmtpbmcpOgorICAgIHNoZWxsKFsnZ2l0JywgJ2Nsb25lJywgJy0tbm8tY2hlY2tvdXQnLCB1cmws
IHdvcmtpbmddKQorCitkZWYgZ2V0X2JyYW5jaCh0YWcsIHdvcmtpbmcpOgorICAgIHNoZWxsKFsn
Z2l0JywgJ2NoZWNrb3V0JywgJy1iJywgJ3RtcCcsIHRhZ10sIHdvcmtpbmcpCisKK2RlZiBwdXRf
YnJhbmNoKHdvcmtpbmcpOgorICAgIHNoZWxsKFsnZ2l0JywgJ2NoZWNrb3V0JywgJ21hc3Rlcidd
LCB3b3JraW5nKQorICAgIHNoZWxsKFsnZ2l0JywgJ2JyYW5jaCcsICctZCcsICd0bXAnXSwgd29y
a2luZykKKworZGVmIGNvcHlfZmlsZSh3b3JraW5nLCBkaXIsIG5hbWUpOgorICAgIHRyeToKKyAg
ICAgICAgb3MubWFrZWRpcnMoJ2luY2x1ZGVcXHhlblxcJXMnICUgZGlyKQorICAgIGV4Y2VwdCBP
U0Vycm9yOgorICAgICAgICBOb25lCisKKyAgICBzcmMgPSBvcGVuKCclc1xceGVuXFxpbmNsdWRl
XFwlc1xcJXMnICUgKHdvcmtpbmcsIGRpciwgbmFtZSksICdyJykKKyAgICBkc3QgPSBvcGVuKCdp
bmNsdWRlXFx4ZW5cXCVzXFwlcycgJSAoZGlyLCBuYW1lKSwgJ3cnLCBuZXdsaW5lPSdcbicpCisK
KyAgICBwcmludChuYW1lKQorCisgICAgZm9yIGxpbmUgaW4gc3JjOgorICAgICAgICBsaW5lID0g
cmUuc3ViKCcgdW5zaWduZWQgbG9uZycsICcgVUxPTkdfUFRSJywgbGluZSkKKyAgICAgICAgbGlu
ZSA9IHJlLnN1YignXCh1bnNpZ25lZCBsb25nJywgJyhVTE9OR19QVFInLCBsaW5lKQorICAgICAg
ICBsaW5lID0gcmUuc3ViKCcgbG9uZycsICcgTE9OR19QVFInLCBsaW5lKQorICAgICAgICBsaW5l
ID0gcmUuc3ViKCdcKGxvbmcnLCAnKExPTkdfUFRSJywgbGluZSkKKyAgICAgICAgZHN0LndyaXRl
KGxpbmUpCisKKyAgICBkc3QuY2xvc2UoKQorICAgIHNyYy5jbG9zZSgpCisKK2lmIF9fbmFtZV9f
ID09ICdfX21haW5fXyc6CisgICAgdGFnID0gc3lzLmFyZ3ZbMV0KKyAgICB3b3JraW5nID0gc3lz
LmFyZ3ZbMl0KKworICAgIGdldF9yZXBvKCdnaXQ6Ly94ZW5iaXRzLnhlbi5vcmcveGVuLmdpdCcs
IHdvcmtpbmcpCisgICAgZ2V0X2JyYW5jaCh0YWcsIHdvcmtpbmcpCisKKyAgICBzaGVsbChbJ2dp
dCcsICdybScsICctcicsICctZicsICd4ZW4nXSwgJ2luY2x1ZGUnKQorCisgICAgY29weV9maWxl
KHdvcmtpbmcsICdwdWJsaWMnLCAneGVuLmgnKQorICAgIGNvcHlfZmlsZSh3b3JraW5nLCAncHVi
bGljJywgJ3hlbi1jb21wYXQuaCcpCisKKyAgICBjb3B5X2ZpbGUod29ya2luZywgJ3B1YmxpY1xc
YXJjaC14ODYnLCAneGVuLmgnKQorICAgIGNvcHlfZmlsZSh3b3JraW5nLCAncHVibGljXFxhcmNo
LXg4NicsICd4ZW4teDg2XzMyLmgnKQorICAgIGNvcHlfZmlsZSh3b3JraW5nLCAncHVibGljXFxh
cmNoLXg4NicsICd4ZW4teDg2XzY0LmgnKQorCisgICAgY29weV9maWxlKHdvcmtpbmcsICdwdWJs
aWNcXGh2bScsICdodm1faW5mb190YWJsZS5oJykKKworICAgIHB1dF9icmFuY2god29ya2luZykK
KworICAgIHNoZWxsKFsnZ2l0JywgJ2FkZCcsICd4ZW4nXSwgJ2luY2x1ZGUnKQpkaWZmIC0tZ2l0
IGEvaW5jbHVkZS94ZW4tdHlwZXMuaCBiL2luY2x1ZGUveGVuLXR5cGVzLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWVlZDYxMgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1
ZGUveGVuLXR5cGVzLmgKQEAgLTAsMCArMSw1NSBAQAorLyogQ29weXJpZ2h0IChjKSBDaXRyaXgg
U3lzdGVtcyBJbmMuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsCisgKiB3aXRoIG9yIHdpdGhv
dXQgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkCisgKiB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqICogICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICAgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZQorICogICAgIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogKiAgIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyAqICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlCisgKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyCisgKiAgICAgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQKKyAqIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsCisgKiBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsCisgKiBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LAorICogV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIF9YRU5fVFlQ
RVNfSAorI2RlZmluZSBfWEVOX1RZUEVTX0gKKworI2luY2x1ZGUgPG50ZGRrLmg+CisKKy8vIERl
ZmluZSB0eXBlcyBuZWNlc3NhcnkgdG8gaW5jbHVkZSB4ZW4gaGVhZGVycworCit0eXBlZGVmIENI
QVIgICAgaW50OF90OwordHlwZWRlZiBTSE9SVCAgIGludDE2X3Q7Cit0eXBlZGVmIExPTkcgICAg
aW50MzJfdDsKK3R5cGVkZWYgTE9ORzY0ICBpbnQ2NF90OworCit0eXBlZGVmIFVDSEFSICAgdWlu
dDhfdDsKK3R5cGVkZWYgVVNIT1JUICB1aW50MTZfdDsKK3R5cGVkZWYgVUxPTkcgICB1aW50MzJf
dDsKK3R5cGVkZWYgVUxPTkc2NCB1aW50NjRfdDsKKworI2RlZmluZSBvZmZzZXRvZihfdHlwZSwg
X2ZpZWxkKSBGSUVMRF9PRkZTRVQoX3R5cGUsIF9maWVsZCkKKworI2RlZmluZSB4ZW5fbWIoKSAg
ICBLZU1lbW9yeUJhcnJpZXIoKQorI2RlZmluZSB4ZW5fd21iKCkgICBLZU1lbW9yeUJhcnJpZXIo
KQorI2RlZmluZSB4ZW5fcm1iKCkgICBLZW1lbW9yeUJhcnJpZXIoKQorCisjZW5kaWYgIC8vIF9Y
RU5fVFlQRVNfSApkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4tdmVyc2lvbi5oIGIvaW5jbHVkZS94
ZW4tdmVyc2lvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkYTgwN2EK
LS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL3hlbi12ZXJzaW9uLmgKQEAgLTAsMCArMSwzNyBA
QAorLyogQ29weXJpZ2h0IChjKSBDaXRyaXggU3lzdGVtcyBJbmMuCisgKiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsCisgKiB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkCisgKiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoK
KyAqICogICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlCisgKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZQorICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogKiAgIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgICBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlCisgKiAgICAgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyCisgKiAgICAg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQKKyAqIENPTlRS
SUJVVE9SUyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsCisg
KiBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9M
REVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsCisgKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAorICogV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIF9YRU5fVkVSU0lPTl9ICisjZGVmaW5lIF9YRU5fVkVSU0lPTl9I
CisKKyNkZWZpbmUgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyBfX1hFTl9MQVRFU1RfSU5URVJG
QUNFX1ZFUlNJT05fXworCisjZW5kaWYgIC8vIF9YRU5fVkVSU0lPTl9ICmRpZmYgLS1naXQgYS9p
bmNsdWRlL3hlbi13YXJuaW5ncy5oIGIvaW5jbHVkZS94ZW4td2FybmluZ3MuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MGFlNmFlCi0tLSAvZGV2L251bGwKKysrIGIvaW5j
bHVkZS94ZW4td2FybmluZ3MuaApAQCAtMCwwICsxLDQyIEBACisvKiBDb3B5cmlnaHQgKGMpIENp
dHJpeCBTeXN0ZW1zIEluYy4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcywKKyAqIHdpdGggb3Ig
d2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQKKyAqIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogKiAgIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgICBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlCisgKiAgICAgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAqICAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUKKyAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIKKyAqICAgICBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORAorICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywKKyAqIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywKKyAq
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgor
ICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksCisgKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcKKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgX1hF
Tl9XQVJOSU5HU19ICisjZGVmaW5lIF9YRU5fV0FSTklOR1NfSAorCisjaW5jbHVkZSA8bnRkZGsu
aD4KKworLy8gRGlzYWJsZSB3YXJuaW5ncyBuZWNlc3NhcnkgdG8gaW5jbHVkZSB4ZW4gaGVhZGVy
cworCisjIHByYWdtYSB3YXJuaW5nKGRpc2FibGU6NDIxNCkgLy8gbm9uc3RhbmRhcmQgZXh0ZW5z
aW9uIHVzZWQgOiBiaXQgZmllbGQgdHlwZXMgb3RoZXIgdGhhbiBpbnQKKyMgcHJhZ21hIHdhcm5p
bmcoZGlzYWJsZTo0MjAwKSAvLyBub25zdGFuZGFyZCBleHRlbnNpb24gdXNlZCA6IHplcm8tc2l6
ZWQgYXJyYXkgaW4gc3RydWN0L3VuaW9uCisKKyNlbmRpZiAgLy8gX1hFTl9XQVJOSU5HU19ICmRp
ZmYgLS1naXQgYS9pbmNsdWRlL3hlbi5oIGIvaW5jbHVkZS94ZW4uaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4yN2MxMTVjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS94
ZW4uaApAQCAtMCwwICsxLDQzIEBACisvKiBDb3B5cmlnaHQgKGMpIENpdHJpeCBTeXN0ZW1zIElu
Yy4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcywKKyAqIHdpdGggb3Igd2l0aG91dCBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQKKyAqIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZSBtZXQ6CisgKgorICogKiAgIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlCisgKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAqICAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUKKyAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIKKyAqICAgICBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORAorICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywKKyAqIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywKKyAqIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksCisgKiBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcKKyAq
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgX1hFTl9ICisjZGVmaW5lIF9Y
RU5fSAorCisjaW5jbHVkZSA8bnRkZGsuaD4KKworI2luY2x1ZGUgPHhlbi12ZXJzaW9uLmg+Cisj
aW5jbHVkZSA8eGVuLXR5cGVzLmg+CisjaW5jbHVkZSA8eGVuLXdhcm5pbmdzLmg+CisKKyNpbmNs
dWRlIDxwdWJsaWMvaHZtL2h2bV9pbmZvX3RhYmxlLmg+CisKKyNlbmRpZiAgLy8gX1hFTl9ICmRp
ZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9wdWJsaWMvYXJjaC14ODYveGVuLXg4Nl8zMi5oIGIvaW5j
bHVkZS94ZW4vcHVibGljL2FyY2gteDg2L3hlbi14ODZfMzIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5kMjMzNDBiCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS94ZW4v
cHVibGljL2FyY2gteDg2L3hlbi14ODZfMzIuaApAQCAtMCwwICsxLDE2OSBAQAorLyoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKgorICogeGVuLXg4Nl8zMi5oCisgKgorICogR3Vlc3QgT1MgaW50ZXJmYWNl
IHRvIHg4NiAzMi1iaXQgWGVuLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQs
IGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyAqIG9mIHRo
aXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0
d2FyZSIpLCB0bworICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwg
aW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHks
IG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgor
ICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8g
d2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3Rp
Y2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFs
bCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAq
IFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFO
WSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVE
IFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRQorICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBD
TEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElP
TiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBP
RiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIK
KyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDQt
MjAwNywgSyBBIEZyYXNlcgorICovCisKKyNpZm5kZWYgX19YRU5fUFVCTElDX0FSQ0hfWDg2X1hF
Tl9YODZfMzJfSF9fCisjZGVmaW5lIF9fWEVOX1BVQkxJQ19BUkNIX1g4Nl9YRU5fWDg2XzMyX0hf
XworCisvKgorICogSHlwZXJjYWxsIGludGVyZmFjZToKKyAqICBJbnB1dDogICVlYngsICVlY3gs
ICVlZHgsICVlc2ksICVlZGksICVlYnAgKGFyZ3VtZW50cyAxLTYpCisgKiAgT3V0cHV0OiAlZWF4
CisgKiBBY2Nlc3MgaXMgdmlhIGh5cGVyY2FsbCBwYWdlIChzZXQgdXAgYnkgZ3Vlc3QgbG9hZGVy
IG9yIHZpYSBhIFhlbiBNU1IpOgorICogIGNhbGwgaHlwZXJjYWxsX3BhZ2UgKyBoeXBlcmNhbGwt
bnVtYmVyICogMzIKKyAqIENsb2JiZXJlZDogQXJndW1lbnQgcmVnaXN0ZXJzIChlLmcuLCAyLWFy
ZyBoeXBlcmNhbGwgY2xvYmJlcnMgJWVieCwlZWN4KQorICovCisKKy8qCisgKiBUaGVzZSBmbGF0
IHNlZ21lbnRzIGFyZSBpbiB0aGUgWGVuLXByaXZhdGUgc2VjdGlvbiBvZiBldmVyeSBHRFQuIFNp
bmNlIHRoZXNlCisgKiBhcmUgYWxzbyBwcmVzZW50IGluIHRoZSBpbml0aWFsIEdEVCwgbWFueSBP
U2VzIHdpbGwgYmUgYWJsZSB0byBhdm9pZAorICogaW5zdGFsbGluZyB0aGVpciBvd24gR0RULgor
ICovCisjZGVmaW5lIEZMQVRfUklORzFfQ1MgMHhlMDE5ICAgIC8qIEdEVCBpbmRleCAyNTkgKi8K
KyNkZWZpbmUgRkxBVF9SSU5HMV9EUyAweGUwMjEgICAgLyogR0RUIGluZGV4IDI2MCAqLworI2Rl
ZmluZSBGTEFUX1JJTkcxX1NTIDB4ZTAyMSAgICAvKiBHRFQgaW5kZXggMjYwICovCisjZGVmaW5l
IEZMQVRfUklORzNfQ1MgMHhlMDJiICAgIC8qIEdEVCBpbmRleCAyNjEgKi8KKyNkZWZpbmUgRkxB
VF9SSU5HM19EUyAweGUwMzMgICAgLyogR0RUIGluZGV4IDI2MiAqLworI2RlZmluZSBGTEFUX1JJ
TkczX1NTIDB4ZTAzMyAgICAvKiBHRFQgaW5kZXggMjYyICovCisKKyNkZWZpbmUgRkxBVF9LRVJO
RUxfQ1MgRkxBVF9SSU5HMV9DUworI2RlZmluZSBGTEFUX0tFUk5FTF9EUyBGTEFUX1JJTkcxX0RT
CisjZGVmaW5lIEZMQVRfS0VSTkVMX1NTIEZMQVRfUklORzFfU1MKKyNkZWZpbmUgRkxBVF9VU0VS
X0NTICAgIEZMQVRfUklORzNfQ1MKKyNkZWZpbmUgRkxBVF9VU0VSX0RTICAgIEZMQVRfUklORzNf
RFMKKyNkZWZpbmUgRkxBVF9VU0VSX1NTICAgIEZMQVRfUklORzNfU1MKKworI2RlZmluZSBfX0hZ
UEVSVklTT1JfVklSVF9TVEFSVF9QQUUgICAgMHhGNTgwMDAwMAorI2RlZmluZSBfX01BQ0gyUEhZ
U19WSVJUX1NUQVJUX1BBRSAgICAgMHhGNTgwMDAwMAorI2RlZmluZSBfX01BQ0gyUEhZU19WSVJU
X0VORF9QQUUgICAgICAgMHhGNjgwMDAwMAorI2RlZmluZSBIWVBFUlZJU09SX1ZJUlRfU1RBUlRf
UEFFICAgICAgeGVuX21rX3Vsb25nKF9fSFlQRVJWSVNPUl9WSVJUX1NUQVJUX1BBRSkKKyNkZWZp
bmUgTUFDSDJQSFlTX1ZJUlRfU1RBUlRfUEFFICAgICAgIHhlbl9ta191bG9uZyhfX01BQ0gyUEhZ
U19WSVJUX1NUQVJUX1BBRSkKKyNkZWZpbmUgTUFDSDJQSFlTX1ZJUlRfRU5EX1BBRSAgICAgICAg
IHhlbl9ta191bG9uZyhfX01BQ0gyUEhZU19WSVJUX0VORF9QQUUpCisKKy8qIE5vbi1QQUUgYm91
bmRzIGFyZSBvYnNvbGV0ZS4gKi8KKyNkZWZpbmUgX19IWVBFUlZJU09SX1ZJUlRfU1RBUlRfTk9O
UEFFIDB4RkMwMDAwMDAKKyNkZWZpbmUgX19NQUNIMlBIWVNfVklSVF9TVEFSVF9OT05QQUUgIDB4
RkMwMDAwMDAKKyNkZWZpbmUgX19NQUNIMlBIWVNfVklSVF9FTkRfTk9OUEFFICAgIDB4RkM0MDAw
MDAKKyNkZWZpbmUgSFlQRVJWSVNPUl9WSVJUX1NUQVJUX05PTlBBRSAgIFwKKyAgICB4ZW5fbWtf
dWxvbmcoX19IWVBFUlZJU09SX1ZJUlRfU1RBUlRfTk9OUEFFKQorI2RlZmluZSBNQUNIMlBIWVNf
VklSVF9TVEFSVF9OT05QQUUgICAgXAorICAgIHhlbl9ta191bG9uZyhfX01BQ0gyUEhZU19WSVJU
X1NUQVJUX05PTlBBRSkKKyNkZWZpbmUgTUFDSDJQSFlTX1ZJUlRfRU5EX05PTlBBRSAgICAgIFwK
KyAgICB4ZW5fbWtfdWxvbmcoX19NQUNIMlBIWVNfVklSVF9FTkRfTk9OUEFFKQorCisjZGVmaW5l
IF9fSFlQRVJWSVNPUl9WSVJUX1NUQVJUIF9fSFlQRVJWSVNPUl9WSVJUX1NUQVJUX1BBRQorI2Rl
ZmluZSBfX01BQ0gyUEhZU19WSVJUX1NUQVJUICBfX01BQ0gyUEhZU19WSVJUX1NUQVJUX1BBRQor
I2RlZmluZSBfX01BQ0gyUEhZU19WSVJUX0VORCAgICBfX01BQ0gyUEhZU19WSVJUX0VORF9QQUUK
KworI2lmbmRlZiBIWVBFUlZJU09SX1ZJUlRfU1RBUlQKKyNkZWZpbmUgSFlQRVJWSVNPUl9WSVJU
X1NUQVJUIHhlbl9ta191bG9uZyhfX0hZUEVSVklTT1JfVklSVF9TVEFSVCkKKyNlbmRpZgorCisj
ZGVmaW5lIE1BQ0gyUEhZU19WSVJUX1NUQVJUICB4ZW5fbWtfdWxvbmcoX19NQUNIMlBIWVNfVklS
VF9TVEFSVCkKKyNkZWZpbmUgTUFDSDJQSFlTX1ZJUlRfRU5EICAgIHhlbl9ta191bG9uZyhfX01B
Q0gyUEhZU19WSVJUX0VORCkKKyNkZWZpbmUgTUFDSDJQSFlTX05SX0VOVFJJRVMgICgoTUFDSDJQ
SFlTX1ZJUlRfRU5ELU1BQ0gyUEhZU19WSVJUX1NUQVJUKT4+MikKKyNpZm5kZWYgbWFjaGluZV90
b19waHlzX21hcHBpbmcKKyNkZWZpbmUgbWFjaGluZV90b19waHlzX21hcHBpbmcgKChVTE9OR19Q
VFIgKilNQUNIMlBIWVNfVklSVF9TVEFSVCkKKyNlbmRpZgorCisvKiAzMi0vNjQtYml0IGludmFy
aWFiaWxpdHkgZm9yIGNvbnRyb2wgaW50ZXJmYWNlcyAoZG9tY3RsL3N5c2N0bCkuICovCisjaWYg
ZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pCisjdW5kZWYgX19fREVG
SU5FX1hFTl9HVUVTVF9IQU5ETEUKKyNkZWZpbmUgX19fREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUo
bmFtZSwgdHlwZSkgICAgICAgICAgICAgICAgICBcCisgICAgdHlwZWRlZiBzdHJ1Y3QgeyB0eXBl
ICpwOyB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBfX2d1ZXN0
X2hhbmRsZV8gIyMgbmFtZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB0
eXBlZGVmIHN0cnVjdCB7IHVuaW9uIHsgdHlwZSAqcDsgdWludDY0X2FsaWduZWRfdCBxOyB9OyB9
ICBcCisgICAgICAgIF9fZ3Vlc3RfaGFuZGxlXzY0XyAjIyBuYW1lCisjdW5kZWYgc2V0X3hlbl9n
dWVzdF9oYW5kbGVfcmF3CisjZGVmaW5lIHNldF94ZW5fZ3Vlc3RfaGFuZGxlX3JhdyhobmQsIHZh
bCkgICAgICAgICAgICAgICAgICBcCisgICAgZG8geyBpZiAoIHNpemVvZihobmQpID09IDggKSAq
KHVpbnQ2NF90ICopJihobmQpID0gMDsgICBcCisgICAgICAgICAoaG5kKS5wID0gdmFsOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSB3aGlsZSAoIDAgKQorI2Rl
ZmluZSAgaW50NjRfYWxpZ25lZF90ICBpbnQ2NF90IF9fYXR0cmlidXRlX18oKGFsaWduZWQoOCkp
KQorI2RlZmluZSB1aW50NjRfYWxpZ25lZF90IHVpbnQ2NF90IF9fYXR0cmlidXRlX18oKGFsaWdu
ZWQoOCkpKQorI2RlZmluZSBfX1hFTl9HVUVTVF9IQU5ETEVfNjQobmFtZSkgX19ndWVzdF9oYW5k
bGVfNjRfICMjIG5hbWUKKyNkZWZpbmUgWEVOX0dVRVNUX0hBTkRMRV82NChuYW1lKSBfX1hFTl9H
VUVTVF9IQU5ETEVfNjQobmFtZSkKKyNlbmRpZgorCisjaWZuZGVmIF9fQVNTRU1CTFlfXworCitz
dHJ1Y3QgY3B1X3VzZXJfcmVncyB7CisgICAgdWludDMyX3QgZWJ4OworICAgIHVpbnQzMl90IGVj
eDsKKyAgICB1aW50MzJfdCBlZHg7CisgICAgdWludDMyX3QgZXNpOworICAgIHVpbnQzMl90IGVk
aTsKKyAgICB1aW50MzJfdCBlYnA7CisgICAgdWludDMyX3QgZWF4OworICAgIHVpbnQxNl90IGVy
cm9yX2NvZGU7ICAgIC8qIHByaXZhdGUgKi8KKyAgICB1aW50MTZfdCBlbnRyeV92ZWN0b3I7ICAv
KiBwcml2YXRlICovCisgICAgdWludDMyX3QgZWlwOworICAgIHVpbnQxNl90IGNzOworICAgIHVp
bnQ4X3QgIHNhdmVkX3VwY2FsbF9tYXNrOworICAgIHVpbnQ4X3QgIF9wYWQwOworICAgIHVpbnQz
Ml90IGVmbGFnczsgICAgICAgIC8qIGVmbGFncy5JRiA9PSAhc2F2ZWRfdXBjYWxsX21hc2sgKi8K
KyAgICB1aW50MzJfdCBlc3A7CisgICAgdWludDE2X3Qgc3MsIF9wYWQxOworICAgIHVpbnQxNl90
IGVzLCBfcGFkMjsKKyAgICB1aW50MTZfdCBkcywgX3BhZDM7CisgICAgdWludDE2X3QgZnMsIF9w
YWQ0OworICAgIHVpbnQxNl90IGdzLCBfcGFkNTsKK307Cit0eXBlZGVmIHN0cnVjdCBjcHVfdXNl
cl9yZWdzIGNwdV91c2VyX3JlZ3NfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKGNwdV91c2Vy
X3JlZ3NfdCk7CisKKy8qCisgKiBQYWdlLWRpcmVjdG9yeSBhZGRyZXNzZXMgYWJvdmUgNEdCIGRv
IG5vdCBmaXQgaW50byBhcmNoaXRlY3R1cmFsICVjcjMuCisgKiBXaGVuIGFjY2Vzc2luZyAlY3Iz
LCBvciBlcXVpdmFsZW50IGZpZWxkIGluIHZjcHVfZ3Vlc3RfY29udGV4dCwgZ3Vlc3RzCisgKiBt
dXN0IHVzZSB0aGUgZm9sbG93aW5nIGFjY2Vzc29yIG1hY3JvcyB0byBwYWNrL3VucGFjayB2YWxp
ZCBNRk5zLgorICovCisjZGVmaW5lIHhlbl9wZm5fdG9fY3IzKHBmbikgKCgodW5zaWduZWQpKHBm
bikgPDwgMTIpIHwgKCh1bnNpZ25lZCkocGZuKSA+PiAyMCkpCisjZGVmaW5lIHhlbl9jcjNfdG9f
cGZuKGNyMykgKCgodW5zaWduZWQpKGNyMykgPj4gMTIpIHwgKCh1bnNpZ25lZCkoY3IzKSA8PCAy
MCkpCisKK3N0cnVjdCBhcmNoX3ZjcHVfaW5mbyB7CisgICAgVUxPTkdfUFRSIGNyMjsKKyAgICBV
TE9OR19QVFIgcGFkWzVdOyAvKiBzaXplb2YodmNwdV9pbmZvX3QpID09IDY0ICovCit9OwordHlw
ZWRlZiBzdHJ1Y3QgYXJjaF92Y3B1X2luZm8gYXJjaF92Y3B1X2luZm9fdDsKKworc3RydWN0IHhl
bl9jYWxsYmFjayB7CisgICAgVUxPTkdfUFRSIGNzOworICAgIFVMT05HX1BUUiBlaXA7Cit9Owor
dHlwZWRlZiBzdHJ1Y3QgeGVuX2NhbGxiYWNrIHhlbl9jYWxsYmFja190OworCisjZW5kaWYgLyog
IV9fQVNTRU1CTFlfXyAqLworCisjZW5kaWYgLyogX19YRU5fUFVCTElDX0FSQ0hfWDg2X1hFTl9Y
ODZfMzJfSF9fICovCisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBj
LWZpbGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0
CisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEvaW5j
bHVkZS94ZW4vcHVibGljL2FyY2gteDg2L3hlbi14ODZfNjQuaCBiL2luY2x1ZGUveGVuL3B1Ymxp
Yy9hcmNoLXg4Ni94ZW4teDg2XzY0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMmY1M2Y2OQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUveGVuL3B1YmxpYy9hcmNoLXg4
Ni94ZW4teDg2XzY0LmgKQEAgLTAsMCArMSwyMDIgQEAKKy8qKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
KyAqIHhlbi14ODZfNjQuaAorICoKKyAqIEd1ZXN0IE9TIGludGVyZmFjZSB0byB4ODYgNjQtYml0
IFhlbi4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJn
ZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3YXJlIGFu
ZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KKyAq
IGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRo
b3V0IGxpbWl0YXRpb24gdGhlCisgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdl
LCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKKyAqIHNlbGwgY29waWVz
IG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3
YXJlIGlzCisgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBl
cm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1
YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUg
SVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVT
UyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIEFVVEhP
UlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMg
T1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1Qs
IFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVD
VElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJ
TiBUSEUgU09GVFdBUkUuCisgKgorICogQ29weXJpZ2h0IChjKSAyMDA0LTIwMDYsIEsgQSBGcmFz
ZXIKKyAqLworCisjaWZuZGVmIF9fWEVOX1BVQkxJQ19BUkNIX1g4Nl9YRU5fWDg2XzY0X0hfXwor
I2RlZmluZSBfX1hFTl9QVUJMSUNfQVJDSF9YODZfWEVOX1g4Nl82NF9IX18KKworLyoKKyAqIEh5
cGVyY2FsbCBpbnRlcmZhY2U6CisgKiAgSW5wdXQ6ICAlcmRpLCAlcnNpLCAlcmR4LCAlcjEwLCAl
cjgsICVyOSAoYXJndW1lbnRzIDEtNikKKyAqICBPdXRwdXQ6ICVyYXgKKyAqIEFjY2VzcyBpcyB2
aWEgaHlwZXJjYWxsIHBhZ2UgKHNldCB1cCBieSBndWVzdCBsb2FkZXIgb3IgdmlhIGEgWGVuIE1T
Uik6CisgKiAgY2FsbCBoeXBlcmNhbGxfcGFnZSArIGh5cGVyY2FsbC1udW1iZXIgKiAzMgorICog
Q2xvYmJlcmVkOiBhcmd1bWVudCByZWdpc3RlcnMgKGUuZy4sIDItYXJnIGh5cGVyY2FsbCBjbG9i
YmVycyAlcmRpLCVyc2kpCisgKi8KKworLyoKKyAqIDY0LWJpdCBzZWdtZW50IHNlbGVjdG9ycwor
ICogVGhlc2UgZmxhdCBzZWdtZW50cyBhcmUgaW4gdGhlIFhlbi1wcml2YXRlIHNlY3Rpb24gb2Yg
ZXZlcnkgR0RULiBTaW5jZSB0aGVzZQorICogYXJlIGFsc28gcHJlc2VudCBpbiB0aGUgaW5pdGlh
bCBHRFQsIG1hbnkgT1NlcyB3aWxsIGJlIGFibGUgdG8gYXZvaWQKKyAqIGluc3RhbGxpbmcgdGhl
aXIgb3duIEdEVC4KKyAqLworCisjZGVmaW5lIEZMQVRfUklORzNfQ1MzMiAweGUwMjMgIC8qIEdE
VCBpbmRleCAyNjAgKi8KKyNkZWZpbmUgRkxBVF9SSU5HM19DUzY0IDB4ZTAzMyAgLyogR0RUIGlu
ZGV4IDI2MSAqLworI2RlZmluZSBGTEFUX1JJTkczX0RTMzIgMHhlMDJiICAvKiBHRFQgaW5kZXgg
MjYyICovCisjZGVmaW5lIEZMQVRfUklORzNfRFM2NCAweDAwMDAgIC8qIE5VTEwgc2VsZWN0b3Ig
Ki8KKyNkZWZpbmUgRkxBVF9SSU5HM19TUzMyIDB4ZTAyYiAgLyogR0RUIGluZGV4IDI2MiAqLwor
I2RlZmluZSBGTEFUX1JJTkczX1NTNjQgMHhlMDJiICAvKiBHRFQgaW5kZXggMjYyICovCisKKyNk
ZWZpbmUgRkxBVF9LRVJORUxfRFM2NCBGTEFUX1JJTkczX0RTNjQKKyNkZWZpbmUgRkxBVF9LRVJO
RUxfRFMzMiBGTEFUX1JJTkczX0RTMzIKKyNkZWZpbmUgRkxBVF9LRVJORUxfRFMgICBGTEFUX0tF
Uk5FTF9EUzY0CisjZGVmaW5lIEZMQVRfS0VSTkVMX0NTNjQgRkxBVF9SSU5HM19DUzY0CisjZGVm
aW5lIEZMQVRfS0VSTkVMX0NTMzIgRkxBVF9SSU5HM19DUzMyCisjZGVmaW5lIEZMQVRfS0VSTkVM
X0NTICAgRkxBVF9LRVJORUxfQ1M2NAorI2RlZmluZSBGTEFUX0tFUk5FTF9TUzY0IEZMQVRfUklO
RzNfU1M2NAorI2RlZmluZSBGTEFUX0tFUk5FTF9TUzMyIEZMQVRfUklORzNfU1MzMgorI2RlZmlu
ZSBGTEFUX0tFUk5FTF9TUyAgIEZMQVRfS0VSTkVMX1NTNjQKKworI2RlZmluZSBGTEFUX1VTRVJf
RFM2NCBGTEFUX1JJTkczX0RTNjQKKyNkZWZpbmUgRkxBVF9VU0VSX0RTMzIgRkxBVF9SSU5HM19E
UzMyCisjZGVmaW5lIEZMQVRfVVNFUl9EUyAgIEZMQVRfVVNFUl9EUzY0CisjZGVmaW5lIEZMQVRf
VVNFUl9DUzY0IEZMQVRfUklORzNfQ1M2NAorI2RlZmluZSBGTEFUX1VTRVJfQ1MzMiBGTEFUX1JJ
TkczX0NTMzIKKyNkZWZpbmUgRkxBVF9VU0VSX0NTICAgRkxBVF9VU0VSX0NTNjQKKyNkZWZpbmUg
RkxBVF9VU0VSX1NTNjQgRkxBVF9SSU5HM19TUzY0CisjZGVmaW5lIEZMQVRfVVNFUl9TUzMyIEZM
QVRfUklORzNfU1MzMgorI2RlZmluZSBGTEFUX1VTRVJfU1MgICBGTEFUX1VTRVJfU1M2NAorCisj
ZGVmaW5lIF9fSFlQRVJWSVNPUl9WSVJUX1NUQVJUIDB4RkZGRjgwMDAwMDAwMDAwMAorI2RlZmlu
ZSBfX0hZUEVSVklTT1JfVklSVF9FTkQgICAweEZGRkY4ODAwMDAwMDAwMDAKKyNkZWZpbmUgX19N
QUNIMlBIWVNfVklSVF9TVEFSVCAgMHhGRkZGODAwMDAwMDAwMDAwCisjZGVmaW5lIF9fTUFDSDJQ
SFlTX1ZJUlRfRU5EICAgIDB4RkZGRjgwNDAwMDAwMDAwMAorCisjaWZuZGVmIEhZUEVSVklTT1Jf
VklSVF9TVEFSVAorI2RlZmluZSBIWVBFUlZJU09SX1ZJUlRfU1RBUlQgeGVuX21rX3Vsb25nKF9f
SFlQRVJWSVNPUl9WSVJUX1NUQVJUKQorI2RlZmluZSBIWVBFUlZJU09SX1ZJUlRfRU5EICAgeGVu
X21rX3Vsb25nKF9fSFlQRVJWSVNPUl9WSVJUX0VORCkKKyNlbmRpZgorCisjZGVmaW5lIE1BQ0gy
UEhZU19WSVJUX1NUQVJUICB4ZW5fbWtfdWxvbmcoX19NQUNIMlBIWVNfVklSVF9TVEFSVCkKKyNk
ZWZpbmUgTUFDSDJQSFlTX1ZJUlRfRU5EICAgIHhlbl9ta191bG9uZyhfX01BQ0gyUEhZU19WSVJU
X0VORCkKKyNkZWZpbmUgTUFDSDJQSFlTX05SX0VOVFJJRVMgICgoTUFDSDJQSFlTX1ZJUlRfRU5E
LU1BQ0gyUEhZU19WSVJUX1NUQVJUKT4+MykKKyNpZm5kZWYgbWFjaGluZV90b19waHlzX21hcHBp
bmcKKyNkZWZpbmUgbWFjaGluZV90b19waHlzX21hcHBpbmcgKChVTE9OR19QVFIgKilIWVBFUlZJ
U09SX1ZJUlRfU1RBUlQpCisjZW5kaWYKKworLyoKKyAqIGludCBIWVBFUlZJU09SX3NldF9zZWdt
ZW50X2Jhc2UodW5zaWduZWQgaW50IHdoaWNoLCBVTE9OR19QVFIgYmFzZSkKKyAqICBAd2hpY2gg
PT0gU0VHQkFTRV8qICA7ICBAYmFzZSA9PSA2NC1iaXQgYmFzZSBhZGRyZXNzCisgKiBSZXR1cm5z
IDAgb24gc3VjY2Vzcy4KKyAqLworI2RlZmluZSBTRUdCQVNFX0ZTICAgICAgICAgIDAKKyNkZWZp
bmUgU0VHQkFTRV9HU19VU0VSICAgICAxCisjZGVmaW5lIFNFR0JBU0VfR1NfS0VSTkVMICAgMgor
I2RlZmluZSBTRUdCQVNFX0dTX1VTRVJfU0VMIDMgLyogU2V0IHVzZXIgJWdzIHNwZWNpZmllZCBp
biBiYXNlWzE1OjBdICovCisKKy8qCisgKiBpbnQgSFlQRVJWSVNPUl9pcmV0KHZvaWQpCisgKiBB
bGwgYXJndW1lbnRzIGFyZSBvbiB0aGUga2VybmVsIHN0YWNrLCBpbiB0aGUgZm9sbG93aW5nIGZv
cm1hdC4KKyAqIE5ldmVyIHJldHVybnMgaWYgc3VjY2Vzc2Z1bC4gQ3VycmVudCBrZXJuZWwgY29u
dGV4dCBpcyBsb3N0LgorICogVGhlIHNhdmVkIENTIGlzIG1hcHBlZCBhcyBmb2xsb3dzOgorICog
ICBSSU5HMCAtPiBSSU5HMyBrZXJuZWwgbW9kZS4KKyAqICAgUklORzEgLT4gUklORzMga2VybmVs
IG1vZGUuCisgKiAgIFJJTkcyIC0+IFJJTkczIGtlcm5lbCBtb2RlLgorICogICBSSU5HMyAtPiBS
SU5HMyB1c2VyIG1vZGUuCisgKiBIb3dldmVyIFJJTkcwIGluZGljYXRlcyB0aGF0IHRoZSBndWVz
dCBrZXJuZWwgc2hvdWxkIHJldHVybiB0byBpdGVzZWxmCisgKiBkaXJlY3RseSB3aXRoCisgKiAg
ICAgIG9yYiAgICQzLDEqOCglcnNwKQorICogICAgICBpcmV0cQorICogSWYgZmxhZ3MgY29udGFp
bnMgVkdDRl9pbl9zeXNjYWxsOgorICogICBSZXN0b3JlIFJBWCwgUklQLCBSRkxBR1MsIFJTUC4K
KyAqICAgRGlzY2FyZCBSMTEsIFJDWCwgQ1MsIFNTLgorICogT3RoZXJ3aXNlOgorICogICBSZXN0
b3JlIFJBWCwgUjExLCBSQ1gsIENTOlJJUCwgUkZMQUdTLCBTUzpSU1AuCisgKiBBbGwgb3RoZXIg
cmVnaXN0ZXJzIGFyZSBzYXZlZCBvbiBoeXBlcmNhbGwgZW50cnkgYW5kIHJlc3RvcmVkIHRvIHVz
ZXIuCisgKi8KKy8qIEd1ZXN0IGV4aXRlZCBpbiBTWVNDQUxMIGNvbnRleHQ/IFJldHVybiB0byBn
dWVzdCB3aXRoIFNZU1JFVD8gKi8KKyNkZWZpbmUgX1ZHQ0ZfaW5fc3lzY2FsbCA4CisjZGVmaW5l
IFZHQ0ZfaW5fc3lzY2FsbCAgKDE8PF9WR0NGX2luX3N5c2NhbGwpCisjZGVmaW5lIFZHQ0ZfSU5f
U1lTQ0FMTCAgVkdDRl9pbl9zeXNjYWxsCisKKyNpZm5kZWYgX19BU1NFTUJMWV9fCisKK3N0cnVj
dCBpcmV0X2NvbnRleHQgeworICAgIC8qIFRvcCBvZiBzdGFjayAoJXJzcCBhdCBwb2ludCBvZiBo
eXBlcmNhbGwpLiAqLworICAgIHVpbnQ2NF90IHJheCwgcjExLCByY3gsIGZsYWdzLCByaXAsIGNz
LCByZmxhZ3MsIHJzcCwgc3M7CisgICAgLyogQm90dG9tIG9mIGlyZXQgc3RhY2sgZnJhbWUuICov
Cit9OworCisjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgIWRlZmluZWQoX19TVFJJQ1RfQU5TSV9f
KQorLyogQW5vbnltb3VzIHVuaW9uIGluY2x1ZGVzIGJvdGggMzItIGFuZCA2NC1iaXQgbmFtZXMg
KGUuZy4sIGVheC9yYXgpLiAqLworI2RlZmluZSBfX0RFQ0xfUkVHKG5hbWUpIHVuaW9uIHsgXAor
ICAgIHVpbnQ2NF90IHIgIyMgbmFtZSwgZSAjIyBuYW1lOyBcCisgICAgdWludDMyX3QgX2UgIyMg
bmFtZTsgXAorfQorI2Vsc2UKKy8qIE5vbi1nY2Mgc291cmNlcyBtdXN0IGFsd2F5cyB1c2UgdGhl
IHByb3BlciA2NC1iaXQgbmFtZSAoZS5nLiwgcmF4KS4gKi8KKyNkZWZpbmUgX19ERUNMX1JFRyhu
YW1lKSB1aW50NjRfdCByICMjIG5hbWUKKyNlbmRpZgorCitzdHJ1Y3QgY3B1X3VzZXJfcmVncyB7
CisgICAgdWludDY0X3QgcjE1OworICAgIHVpbnQ2NF90IHIxNDsKKyAgICB1aW50NjRfdCByMTM7
CisgICAgdWludDY0X3QgcjEyOworICAgIF9fREVDTF9SRUcoYnApOworICAgIF9fREVDTF9SRUco
YngpOworICAgIHVpbnQ2NF90IHIxMTsKKyAgICB1aW50NjRfdCByMTA7CisgICAgdWludDY0X3Qg
cjk7CisgICAgdWludDY0X3Qgcjg7CisgICAgX19ERUNMX1JFRyhheCk7CisgICAgX19ERUNMX1JF
RyhjeCk7CisgICAgX19ERUNMX1JFRyhkeCk7CisgICAgX19ERUNMX1JFRyhzaSk7CisgICAgX19E
RUNMX1JFRyhkaSk7CisgICAgdWludDMyX3QgZXJyb3JfY29kZTsgICAgLyogcHJpdmF0ZSAqLwor
ICAgIHVpbnQzMl90IGVudHJ5X3ZlY3RvcjsgIC8qIHByaXZhdGUgKi8KKyAgICBfX0RFQ0xfUkVH
KGlwKTsKKyAgICB1aW50MTZfdCBjcywgX3BhZDBbMV07CisgICAgdWludDhfdCAgc2F2ZWRfdXBj
YWxsX21hc2s7CisgICAgdWludDhfdCAgX3BhZDFbM107CisgICAgX19ERUNMX1JFRyhmbGFncyk7
ICAgICAgLyogcmZsYWdzLklGID09ICFzYXZlZF91cGNhbGxfbWFzayAqLworICAgIF9fREVDTF9S
RUcoc3ApOworICAgIHVpbnQxNl90IHNzLCBfcGFkMlszXTsKKyAgICB1aW50MTZfdCBlcywgX3Bh
ZDNbM107CisgICAgdWludDE2X3QgZHMsIF9wYWQ0WzNdOworICAgIHVpbnQxNl90IGZzLCBfcGFk
NVszXTsgLyogTm9uLXplcm8gPT4gdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGZzX2Jhc2UuICAgICAq
LworICAgIHVpbnQxNl90IGdzLCBfcGFkNlszXTsgLyogTm9uLXplcm8gPT4gdGFrZXMgcHJlY2Vk
ZW5jZSBvdmVyIGdzX2Jhc2VfdXNyLiAqLworfTsKK3R5cGVkZWYgc3RydWN0IGNwdV91c2VyX3Jl
Z3MgY3B1X3VzZXJfcmVnc190OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoY3B1X3VzZXJfcmVn
c190KTsKKworI3VuZGVmIF9fREVDTF9SRUcKKworI2RlZmluZSB4ZW5fcGZuX3RvX2NyMyhwZm4p
ICgoVUxPTkdfUFRSKShwZm4pIDw8IDEyKQorI2RlZmluZSB4ZW5fY3IzX3RvX3BmbihjcjMpICgo
VUxPTkdfUFRSKShjcjMpID4+IDEyKQorCitzdHJ1Y3QgYXJjaF92Y3B1X2luZm8geworICAgIFVM
T05HX1BUUiBjcjI7CisgICAgVUxPTkdfUFRSIHBhZDsgLyogc2l6ZW9mKHZjcHVfaW5mb190KSA9
PSA2NCAqLworfTsKK3R5cGVkZWYgc3RydWN0IGFyY2hfdmNwdV9pbmZvIGFyY2hfdmNwdV9pbmZv
X3Q7CisKK3R5cGVkZWYgVUxPTkdfUFRSIHhlbl9jYWxsYmFja190OworCisjZW5kaWYgLyogIV9f
QVNTRU1CTFlfXyAqLworCisjZW5kaWYgLyogX19YRU5fUFVCTElDX0FSQ0hfWDg2X1hFTl9YODZf
NjRfSF9fICovCisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZp
bGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0Cisg
KiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVk
ZS94ZW4vcHVibGljL2FyY2gteDg2L3hlbi5oIGIvaW5jbHVkZS94ZW4vcHVibGljL2FyY2gteDg2
L3hlbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1ZGI3N2YKLS0tIC9k
ZXYvbnVsbAorKysgYi9pbmNsdWRlL3hlbi9wdWJsaWMvYXJjaC14ODYveGVuLmgKQEAgLTAsMCAr
MSwzMzggQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIGFyY2gteDg2L3hlbi5oCisgKgor
ICogR3Vlc3QgT1MgaW50ZXJmYWNlIHRvIHg4NiBYZW4uCisgKgorICogUGVybWlzc2lvbiBpcyBo
ZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEg
Y29weQorICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZp
bGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCisgKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0
IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQorICogcmlnaHRz
IHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGlj
ZW5zZSwgYW5kL29yCisgKiBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJt
aXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNv
LCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUg
Y29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNs
dWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29m
dHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQg
V0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBC
VVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICog
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFCisgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJ
QUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwor
ICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhF
IFVTRSBPUiBPVEhFUgorICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIENvcHly
aWdodCAoYykgMjAwNC0yMDA2LCBLIEEgRnJhc2VyCisgKi8KKworI2luY2x1ZGUgIi4uL3hlbi5o
IgorCisjaWZuZGVmIF9fWEVOX1BVQkxJQ19BUkNIX1g4Nl9YRU5fSF9fCisjZGVmaW5lIF9fWEVO
X1BVQkxJQ19BUkNIX1g4Nl9YRU5fSF9fCisKKy8qIFN0cnVjdHVyYWwgZ3Vlc3QgaGFuZGxlcyBp
bnRyb2R1Y2VkIGluIDB4MDAwMzAyMDEuICovCisjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05f
XyA+PSAweDAwMDMwMjAxCisjZGVmaW5lIF9fX0RFRklORV9YRU5fR1VFU1RfSEFORExFKG5hbWUs
IHR5cGUpIFwKKyAgICB0eXBlZGVmIHN0cnVjdCB7IHR5cGUgKnA7IH0gX19ndWVzdF9oYW5kbGVf
ICMjIG5hbWUKKyNlbHNlCisjZGVmaW5lIF9fX0RFRklORV9YRU5fR1VFU1RfSEFORExFKG5hbWUs
IHR5cGUpIFwKKyAgICB0eXBlZGVmIHR5cGUgKiBfX2d1ZXN0X2hhbmRsZV8gIyMgbmFtZQorI2Vu
ZGlmCisKKy8qCisgKiBYRU5fR1VFU1RfSEFORExFIHJlcHJlc2VudHMgYSBndWVzdCBwb2ludGVy
LCB3aGVuIHBhc3NlZCBhcyBhIGZpZWxkCisgKiBpbiBhIHN0cnVjdCBpbiBtZW1vcnkuCisgKiBY
RU5fR1VFU1RfSEFORExFX1BBUkFNIHJlcHJlc2VudCBhIGd1ZXN0IHBvaW50ZXIsIHdoZW4gcGFz
c2VkIGFzIGFuCisgKiBoeXBlcmNhbGwgYXJndW1lbnQuCisgKiBYRU5fR1VFU1RfSEFORExFX1BB
UkFNIGFuZCBYRU5fR1VFU1RfSEFORExFIGFyZSB0aGUgc2FtZSBvbiBYODYgYnV0CisgKiB0aGV5
IG1pZ2h0IG5vdCBiZSBvbiBvdGhlciBhcmNoaXRlY3R1cmVzLgorICovCisjZGVmaW5lIF9fREVG
SU5FX1hFTl9HVUVTVF9IQU5ETEUobmFtZSwgdHlwZSkgXAorICAgIF9fX0RFRklORV9YRU5fR1VF
U1RfSEFORExFKG5hbWUsIHR5cGUpOyAgIFwKKyAgICBfX19ERUZJTkVfWEVOX0dVRVNUX0hBTkRM
RShjb25zdF8jI25hbWUsIGNvbnN0IHR5cGUpCisjZGVmaW5lIERFRklORV9YRU5fR1VFU1RfSEFO
RExFKG5hbWUpICAgX19ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShuYW1lLCBuYW1lKQorI2RlZmlu
ZSBfX1hFTl9HVUVTVF9IQU5ETEUobmFtZSkgICAgICAgIF9fZ3Vlc3RfaGFuZGxlXyAjIyBuYW1l
CisjZGVmaW5lIFhFTl9HVUVTVF9IQU5ETEUobmFtZSkgICAgICAgICAgX19YRU5fR1VFU1RfSEFO
RExFKG5hbWUpCisjZGVmaW5lIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0obmFtZSkgICAgWEVOX0dV
RVNUX0hBTkRMRShuYW1lKQorI2RlZmluZSBzZXRfeGVuX2d1ZXN0X2hhbmRsZV9yYXcoaG5kLCB2
YWwpICBkbyB7IChobmQpLnAgPSB2YWw7IH0gd2hpbGUgKDApCisjZGVmaW5lIHNldF94ZW5fZ3Vl
c3RfaGFuZGxlKGhuZCwgdmFsKSBzZXRfeGVuX2d1ZXN0X2hhbmRsZV9yYXcoaG5kLCB2YWwpCisK
KyNpZiBkZWZpbmVkKF9faTM4Nl9fKQorI2luY2x1ZGUgInhlbi14ODZfMzIuaCIKKyNlbGlmIGRl
ZmluZWQoX194ODZfNjRfXykKKyNpbmNsdWRlICJ4ZW4teDg2XzY0LmgiCisjZW5kaWYKKworI2lm
bmRlZiBfX0FTU0VNQkxZX18KK3R5cGVkZWYgVUxPTkdfUFRSIHhlbl9wZm5fdDsKKyNkZWZpbmUg
UFJJX3hlbl9wZm4gImx4IgorI2VuZGlmCisKKyNkZWZpbmUgWEVOX0hBVkVfUFZfR1VFU1RfRU5U
UlkgMQorCisjZGVmaW5lIFhFTl9IQVZFX1BWX1VQQ0FMTF9NQVNLIDEKKworLyoKKyAqIGBpbmNv
bnRlbnRzIDIwMCBzZWdkZXNjIFNlZ21lbnQgRGVzY3JpcHRvciBUYWJsZXMKKyAqLworLyoKKyAq
IGAgZW51bSBuZWdfZXJybm92YWwKKyAqIGAgSFlQRVJWSVNPUl9zZXRfZ2R0KGNvbnN0IHhlbl9w
Zm5fdCBmcmFtZXNbXSwgdW5zaWduZWQgaW50IGVudHJpZXMpOworICogYAorICovCisvKgorICog
QSBudW1iZXIgb2YgR0RUIGVudHJpZXMgYXJlIHJlc2VydmVkIGJ5IFhlbi4gVGhlc2UgYXJlIG5v
dCBzaXR1YXRlZCBhdCB0aGUKKyAqIHN0YXJ0IG9mIHRoZSBHRFQgYmVjYXVzZSBzb21lIHN0dXBp
ZCBPU2VzIGV4cG9ydCBoYXJkLWNvZGVkIHNlbGVjdG9yIHZhbHVlcworICogaW4gdGhlaXIgQUJJ
LiBUaGVzZSBoYXJkLWNvZGVkIHZhbHVlcyBhcmUgYWx3YXlzIG5lYXIgdGhlIHN0YXJ0IG9mIHRo
ZSBHRFQsCisgKiBzbyBYZW4gcGxhY2VzIGl0c2VsZiBvdXQgb2YgdGhlIHdheSwgYXQgdGhlIGZh
ciBlbmQgb2YgdGhlIEdEVC4KKyAqCisgKiBOQiBUaGUgTERUIGlzIHNldCB1c2luZyB0aGUgTU1V
RVhUX1NFVF9MRFQgb3Agb2YgSFlQRVJWSVNPUl9tbXVleHRfb3AKKyAqLworI2RlZmluZSBGSVJT
VF9SRVNFUlZFRF9HRFRfUEFHRSAgMTQKKyNkZWZpbmUgRklSU1RfUkVTRVJWRURfR0RUX0JZVEUg
IChGSVJTVF9SRVNFUlZFRF9HRFRfUEFHRSAqIDQwOTYpCisjZGVmaW5lIEZJUlNUX1JFU0VSVkVE
X0dEVF9FTlRSWSAoRklSU1RfUkVTRVJWRURfR0RUX0JZVEUgLyA4KQorCisKKy8qCisgKiBgIGVu
dW0gbmVnX2Vycm5vdmFsCisgKiBgIEhZUEVSVklTT1JfdXBkYXRlX2Rlc2NyaXB0b3IodTY0IHBh
LCB1NjQgZGVzYyk7CisgKiBgCisgKiBgIEBwYSAgIFRoZSBtYWNoaW5lIHBoeXNpY2FsIGFkZHJl
c3Mgb2YgdGhlIGRlc2NyaXB0b3IgdG8KKyAqIGAgICAgICAgdXBkYXRlLiBNdXN0IGJlIGVpdGhl
ciBhIGRlc2NyaXB0b3IgcGFnZSBvciB3cml0YWJsZS4KKyAqIGAgQGRlc2MgVGhlIGRlc2NyaXB0
b3IgdmFsdWUgdG8gdXBkYXRlLCBpbiB0aGUgc2FtZSBmb3JtYXQgYXMgYQorICogYCAgICAgICBu
YXRpdmUgZGVzY3JpcHRvciB0YWJsZSBlbnRyeS4KKyAqLworCisvKiBNYXhpbXVtIG51bWJlciBv
ZiB2aXJ0dWFsIENQVXMgaW4gbGVnYWN5IG11bHRpLXByb2Nlc3NvciBndWVzdHMuICovCisjZGVm
aW5lIFhFTl9MRUdBQ1lfTUFYX1ZDUFVTIDMyCisKKyNpZm5kZWYgX19BU1NFTUJMWV9fCisKK3R5
cGVkZWYgVUxPTkdfUFRSIHhlbl91bG9uZ190OworI2RlZmluZSBQUklfeGVuX3Vsb25nICJseCIK
KworLyoKKyAqIGAgZW51bSBuZWdfZXJybm92YWwKKyAqIGAgSFlQRVJWSVNPUl9zdGFja19zd2l0
Y2goVUxPTkdfUFRSIHNzLCBVTE9OR19QVFIgZXNwKTsKKyAqIGAKKyAqIFNldHMgdGhlIHN0YWNr
IHNlZ21lbnQgYW5kIHBvaW50ZXIgZm9yIHRoZSBjdXJyZW50IHZjcHUuCisgKi8KKworLyoKKyAq
IGAgZW51bSBuZWdfZXJybm92YWwKKyAqIGAgSFlQRVJWSVNPUl9zZXRfdHJhcF90YWJsZShjb25z
dCBzdHJ1Y3QgdHJhcF9pbmZvIHRyYXBzW10pOworICogYAorICovCisvKgorICogU2VuZCBhbiBh
cnJheSBvZiB0aGVzZSB0byBIWVBFUlZJU09SX3NldF90cmFwX3RhYmxlKCkuCisgKiBUZXJtaW5h
dGUgdGhlIGFycmF5IHdpdGggYSBzZW50aW5lbCBlbnRyeSwgd2l0aCB0cmFwc1tdLmFkZHJlc3M9
PTAuCisgKiBUaGUgcHJpdmlsZWdlIGxldmVsIHNwZWNpZmllcyB3aGljaCBtb2RlcyBtYXkgZW50
ZXIgYSB0cmFwIHZpYSBhIHNvZnR3YXJlCisgKiBpbnRlcnJ1cHQuIE9uIHg4Ni82NCwgc2luY2Ug
cmluZ3MgMSBhbmQgMiBhcmUgdW5hdmFpbGFibGUsIHdlIGFsbG9jYXRlCisgKiBwcml2aWxlZ2Ug
bGV2ZWxzIGFzIGZvbGxvd3M6CisgKiAgTGV2ZWwgPT0gMDogTm9vbmUgbWF5IGVudGVyCisgKiAg
TGV2ZWwgPT0gMTogS2VybmVsIG1heSBlbnRlcgorICogIExldmVsID09IDI6IEtlcm5lbCBtYXkg
ZW50ZXIKKyAqICBMZXZlbCA9PSAzOiBFdmVyeW9uZSBtYXkgZW50ZXIKKyAqLworI2RlZmluZSBU
SV9HRVRfRFBMKF90aSkgICAgICAoKF90aSktPmZsYWdzICYgMykKKyNkZWZpbmUgVElfR0VUX0lG
KF90aSkgICAgICAgKChfdGkpLT5mbGFncyAmIDQpCisjZGVmaW5lIFRJX1NFVF9EUEwoX3RpLF9k
cGwpICgoX3RpKS0+ZmxhZ3MgfD0gKF9kcGwpKQorI2RlZmluZSBUSV9TRVRfSUYoX3RpLF9pZikg
ICAoKF90aSktPmZsYWdzIHw9ICgoISEoX2lmKSk8PDIpKQorc3RydWN0IHRyYXBfaW5mbyB7Cisg
ICAgdWludDhfdCAgICAgICB2ZWN0b3I7ICAvKiBleGNlcHRpb24gdmVjdG9yICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKi8KKyAgICB1aW50OF90ICAgICAgIGZsYWdzOyAgIC8qIDAtMzog
cHJpdmlsZWdlIGxldmVsOyA0OiBjbGVhciBldmVudCBlbmFibGU/ICAqLworICAgIHVpbnQxNl90
ICAgICAgY3M7ICAgICAgLyogY29kZSBzZWxlY3RvciAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICovCisgICAgVUxPTkdfUFRSIGFkZHJlc3M7IC8qIGNvZGUgb2Zmc2V0ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAqLworfTsKK3R5cGVkZWYgc3RydWN0IHRyYXBfaW5m
byB0cmFwX2luZm9fdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHRyYXBfaW5mb190KTsKKwor
dHlwZWRlZiB1aW50NjRfdCB0c2NfdGltZXN0YW1wX3Q7IC8qIFJEVFNDIHRpbWVzdGFtcCAqLwor
CisvKgorICogVGhlIGZvbGxvd2luZyBpcyBhbGwgQ1BVIGNvbnRleHQuIE5vdGUgdGhhdCB0aGUg
ZnB1X2N0eHQgYmxvY2sgaXMgZmlsbGVkCisgKiBpbiBieSBGWFNBVkUgaWYgdGhlIENQVSBoYXMg
ZmVhdHVyZSBGWFNSOyBvdGhlcndpc2UgRlNBVkUgaXMgdXNlZC4KKyAqCisgKiBBbHNvIG5vdGUg
dGhhdCB3aGVuIGNhbGxpbmcgRE9NQ1RMX3NldHZjcHVjb250ZXh0IGFuZCBWQ1BVX2luaXRpYWxp
c2UKKyAqIGZvciBIVk0gYW5kIFBWSCBndWVzdHMsIG5vdCBhbGwgaW5mb3JtYXRpb24gaW4gdGhp
cyBzdHJ1Y3R1cmUgaXMgdXBkYXRlZDoKKyAqCisgKiAtIEZvciBIVk0gZ3Vlc3RzLCB0aGUgc3Ry
dWN0dXJlcyByZWFkIGluY2x1ZGU6IGZwdV9jdHh0IChpZgorICogVkdDVF9JMzg3X1ZBTElEIGlz
IHNldCksIGZsYWdzLCB1c2VyX3JlZ3MsIGRlYnVncmVnWypdCisgKgorICogLSBQVkggZ3Vlc3Rz
IGFyZSB0aGUgc2FtZSBhcyBIVk0gZ3Vlc3RzLCBidXQgYWRkaXRpb25hbGx5IHVzZSBjdHJscmVn
WzNdIHRvCisgKiBzZXQgY3IzLiBBbGwgb3RoZXIgZmllbGRzIG5vdCB1c2VkIHNob3VsZCBiZSBz
ZXQgdG8gMC4KKyAqLworc3RydWN0IHZjcHVfZ3Vlc3RfY29udGV4dCB7CisgICAgLyogRlBVIHJl
Z2lzdGVycyBjb21lIGZpcnN0IHNvIHRoZXkgY2FuIGJlIGFsaWduZWQgZm9yIEZYU0FWRS9GWFJT
VE9SLiAqLworICAgIHN0cnVjdCB7IGNoYXIgeFs1MTJdOyB9IGZwdV9jdHh0OyAgICAgICAvKiBV
c2VyLWxldmVsIEZQVSByZWdpc3RlcnMgICAgICovCisjZGVmaW5lIFZHQ0ZfSTM4N19WQUxJRCAg
ICAgICAgICAgICAgICAoMTw8MCkKKyNkZWZpbmUgVkdDRl9JTl9LRVJORUwgICAgICAgICAgICAg
ICAgICgxPDwyKQorI2RlZmluZSBfVkdDRl9pMzg3X3ZhbGlkICAgICAgICAgICAgICAgMAorI2Rl
ZmluZSBWR0NGX2kzODdfdmFsaWQgICAgICAgICAgICAgICAgKDE8PF9WR0NGX2kzODdfdmFsaWQp
CisjZGVmaW5lIF9WR0NGX2luX2tlcm5lbCAgICAgICAgICAgICAgICAyCisjZGVmaW5lIFZHQ0Zf
aW5fa2VybmVsICAgICAgICAgICAgICAgICAoMTw8X1ZHQ0ZfaW5fa2VybmVsKQorI2RlZmluZSBf
VkdDRl9mYWlsc2FmZV9kaXNhYmxlc19ldmVudHMgMworI2RlZmluZSBWR0NGX2ZhaWxzYWZlX2Rp
c2FibGVzX2V2ZW50cyAgKDE8PF9WR0NGX2ZhaWxzYWZlX2Rpc2FibGVzX2V2ZW50cykKKyNkZWZp
bmUgX1ZHQ0Zfc3lzY2FsbF9kaXNhYmxlc19ldmVudHMgIDQKKyNkZWZpbmUgVkdDRl9zeXNjYWxs
X2Rpc2FibGVzX2V2ZW50cyAgICgxPDxfVkdDRl9zeXNjYWxsX2Rpc2FibGVzX2V2ZW50cykKKyNk
ZWZpbmUgX1ZHQ0Zfb25saW5lICAgICAgICAgICAgICAgICAgIDUKKyNkZWZpbmUgVkdDRl9vbmxp
bmUgICAgICAgICAgICAgICAgICAgICgxPDxfVkdDRl9vbmxpbmUpCisgICAgVUxPTkdfUFRSIGZs
YWdzOyAgICAgICAgICAgICAgICAgICAgLyogVkdDRl8qIGZsYWdzICAgICAgICAgICAgICAgICAq
LworICAgIHN0cnVjdCBjcHVfdXNlcl9yZWdzIHVzZXJfcmVnczsgICAgICAgICAvKiBVc2VyLWxl
dmVsIENQVSByZWdpc3RlcnMgICAgICovCisgICAgc3RydWN0IHRyYXBfaW5mbyB0cmFwX2N0eHRb
MjU2XTsgICAgICAgIC8qIFZpcnR1YWwgSURUICAgICAgICAgICAgICAgICAgKi8KKyAgICBVTE9O
R19QVFIgbGR0X2Jhc2UsIGxkdF9lbnRzOyAgICAgICAvKiBMRFQgKGxpbmVhciBhZGRyZXNzLCAj
IGVudHMpICovCisgICAgVUxPTkdfUFRSIGdkdF9mcmFtZXNbMTZdLCBnZHRfZW50czsgLyogR0RU
IChtYWNoaW5lIGZyYW1lcywgIyBlbnRzKSAqLworICAgIFVMT05HX1BUUiBrZXJuZWxfc3MsIGtl
cm5lbF9zcDsgICAgIC8qIFZpcnR1YWwgVFNTIChvbmx5IFNTMS9TUDEpICAgKi8KKyAgICAvKiBO
Qi4gVXNlciBwYWdldGFibGUgb24geDg2LzY0IGlzIHBsYWNlZCBpbiBjdHJscmVnWzFdLiAqLwor
ICAgIFVMT05HX1BUUiBjdHJscmVnWzhdOyAgICAgICAgICAgICAgIC8qIENSMC1DUjcgKGNvbnRy
b2wgcmVnaXN0ZXJzKSAgKi8KKyAgICBVTE9OR19QVFIgZGVidWdyZWdbOF07ICAgICAgICAgICAg
ICAvKiBEQjAtREI3IChkZWJ1ZyByZWdpc3RlcnMpICAgICovCisjaWZkZWYgX19pMzg2X18KKyAg
ICBVTE9OR19QVFIgZXZlbnRfY2FsbGJhY2tfY3M7ICAgICAgICAvKiBDUzpFSVAgb2YgZXZlbnQg
Y2FsbGJhY2sgICAgICovCisgICAgVUxPTkdfUFRSIGV2ZW50X2NhbGxiYWNrX2VpcDsKKyAgICBV
TE9OR19QVFIgZmFpbHNhZmVfY2FsbGJhY2tfY3M7ICAgICAvKiBDUzpFSVAgb2YgZmFpbHNhZmUg
Y2FsbGJhY2sgICovCisgICAgVUxPTkdfUFRSIGZhaWxzYWZlX2NhbGxiYWNrX2VpcDsKKyNlbHNl
CisgICAgVUxPTkdfUFRSIGV2ZW50X2NhbGxiYWNrX2VpcDsKKyAgICBVTE9OR19QVFIgZmFpbHNh
ZmVfY2FsbGJhY2tfZWlwOworI2lmZGVmIF9fWEVOX18KKyAgICB1bmlvbiB7CisgICAgICAgIFVM
T05HX1BUUiBzeXNjYWxsX2NhbGxiYWNrX2VpcDsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAg
ICAgIHVuc2lnbmVkIGludCBldmVudF9jYWxsYmFja19jczsgICAgLyogY29tcGF0IENTIG9mIGV2
ZW50IGNiICAgICAqLworICAgICAgICAgICAgdW5zaWduZWQgaW50IGZhaWxzYWZlX2NhbGxiYWNr
X2NzOyAvKiBjb21wYXQgQ1Mgb2YgZmFpbHNhZmUgY2IgICovCisgICAgICAgIH07CisgICAgfTsK
KyNlbHNlCisgICAgVUxPTkdfUFRSIHN5c2NhbGxfY2FsbGJhY2tfZWlwOworI2VuZGlmCisjZW5k
aWYKKyAgICBVTE9OR19QVFIgdm1fYXNzaXN0OyAgICAgICAgICAgICAgICAvKiBWTUFTU1RfVFlQ
RV8qIGJpdG1hcCAqLworI2lmZGVmIF9feDg2XzY0X18KKyAgICAvKiBTZWdtZW50IGJhc2UgYWRk
cmVzc2VzLiAqLworICAgIHVpbnQ2NF90ICAgICAgZnNfYmFzZTsKKyAgICB1aW50NjRfdCAgICAg
IGdzX2Jhc2Vfa2VybmVsOworICAgIHVpbnQ2NF90ICAgICAgZ3NfYmFzZV91c2VyOworI2VuZGlm
Cit9OwordHlwZWRlZiBzdHJ1Y3QgdmNwdV9ndWVzdF9jb250ZXh0IHZjcHVfZ3Vlc3RfY29udGV4
dF90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUodmNwdV9ndWVzdF9jb250ZXh0X3QpOworCitz
dHJ1Y3QgYXJjaF9zaGFyZWRfaW5mbyB7CisgICAgLyoKKyAgICAgKiBOdW1iZXIgb2YgdmFsaWQg
ZW50cmllcyBpbiB0aGUgcDJtIHRhYmxlKHMpIGFuY2hvcmVkIGF0CisgICAgICogcGZuX3RvX21m
bl9mcmFtZV9saXN0X2xpc3QgYW5kL29yIHAybV92YWRkci4KKyAgICAgKi8KKyAgICBVTE9OR19Q
VFIgbWF4X3BmbjsKKyAgICAvKgorICAgICAqIEZyYW1lIGNvbnRhaW5pbmcgbGlzdCBvZiBtZm5z
IGNvbnRhaW5pbmcgbGlzdCBvZiBtZm5zIGNvbnRhaW5pbmcgcDJtLgorICAgICAqIEEgdmFsdWUg
b2YgMCBpbmRpY2F0ZXMgaXQgaGFzIG5vdCB5ZXQgYmVlbiBzZXQgdXAsIH4wIGluZGljYXRlcyBp
dCBoYXMKKyAgICAgKiBiZWVuIHNldCB0byBpbnZhbGlkIGUuZy4gZHVlIHRvIHRoZSBwMm0gYmVp
bmcgdG9vIGxhcmdlIGZvciB0aGUgMy1sZXZlbAorICAgICAqIHAybSB0cmVlLiBJbiB0aGlzIGNh
c2UgdGhlIGxpbmVhciBtYXBwZXIgcDJtIGxpc3QgYW5jaG9yZWQgYXQgcDJtX3ZhZGRyCisgICAg
ICogaXMgdG8gYmUgdXNlZC4KKyAgICAgKi8KKyAgICB4ZW5fcGZuX3QgICAgIHBmbl90b19tZm5f
ZnJhbWVfbGlzdF9saXN0OworICAgIFVMT05HX1BUUiBubWlfcmVhc29uOworICAgIC8qCisgICAg
ICogRm9sbG93aW5nIHRocmVlIGZpZWxkcyBhcmUgdmFsaWQgaWYgcDJtX2NyMyBjb250YWlucyBh
IHZhbHVlIGRpZmZlcmVudAorICAgICAqIGZyb20gMC4KKyAgICAgKiBwMm1fY3IzIGlzIHRoZSBy
b290IG9mIHRoZSBhZGRyZXNzIHNwYWNlIHdoZXJlIHAybV92YWRkciBpcyB2YWxpZC4KKyAgICAg
KiBwMm1fY3IzIGlzIGluIHRoZSBzYW1lIGZvcm1hdCBhcyBhIGNyMyB2YWx1ZSBpbiB0aGUgdmNw
dSByZWdpc3RlciBzdGF0ZQorICAgICAqIGFuZCBob2xkcyB0aGUgZm9sZGVkIG1hY2hpbmUgZnJh
bWUgbnVtYmVyICh2aWEgeGVuX3Bmbl90b19jcjMpIG9mIGEKKyAgICAgKiBMMyBvciBMNCBwYWdl
IHRhYmxlLgorICAgICAqIHAybV92YWRkciBob2xkcyB0aGUgdmlydHVhbCBhZGRyZXNzIG9mIHRo
ZSBsaW5lYXIgcDJtIGxpc3QuIEFsbCBlbnRyaWVzCisgICAgICogaW4gdGhlIHJhbmdlIFswLi4u
bWF4X3BmblsgYXJlIGFjY2Vzc2libGUgdmlhIHRoaXMgcG9pbnRlci4KKyAgICAgKiBwMm1fZ2Vu
ZXJhdGlvbiB3aWxsIGJlIGluY3JlbWVudGVkIGJ5IHRoZSBndWVzdCBiZWZvcmUgYW5kIGFmdGVy
IGVhY2gKKyAgICAgKiBjaGFuZ2Ugb2YgdGhlIG1hcHBpbmdzIG9mIHRoZSBwMm0gbGlzdC4gcDJt
X2dlbmVyYXRpb24gc3RhcnRzIGF0IDAgYW5kCisgICAgICogYSB2YWx1ZSB3aXRoIHRoZSBsZWFz
dCBzaWduaWZpY2FudCBiaXQgc2V0IGluZGljYXRlcyB0aGF0IGEgbWFwcGluZworICAgICAqIHVw
ZGF0ZSBpcyBpbiBwcm9ncmVzcy4gVGhpcyBhbGxvd3MgZ3Vlc3QgZXh0ZXJuYWwgc29mdHdhcmUg
KGUuZy4gaW4gRG9tMCkKKyAgICAgKiB0byB2ZXJpZnkgdGhhdCByZWFkIG1hcHBpbmdzIGFyZSBj
b25zaXN0ZW50IGFuZCB3aGV0aGVyIHRoZXkgaGF2ZSBjaGFuZ2VkCisgICAgICogc2luY2UgdGhl
IGxhc3QgY2hlY2suCisgICAgICogTW9kaWZ5aW5nIGEgcDJtIGVsZW1lbnQgaW4gdGhlIGxpbmVh
ciBwMm0gbGlzdCBpcyBhbGxvd2VkIHZpYSBhbiBhdG9taWMKKyAgICAgKiB3cml0ZSBvbmx5Lgor
ICAgICAqLworICAgIFVMT05HX1BUUiBwMm1fY3IzOyAgICAgICAgIC8qIGNyMyB2YWx1ZSBvZiB0
aGUgcDJtIGFkZHJlc3Mgc3BhY2UgKi8KKyAgICBVTE9OR19QVFIgcDJtX3ZhZGRyOyAgICAgICAv
KiB2aXJ0dWFsIGFkZHJlc3Mgb2YgdGhlIHAybSBsaXN0ICovCisgICAgVUxPTkdfUFRSIHAybV9n
ZW5lcmF0aW9uOyAgLyogZ2VuZXJhdGlvbiBjb3VudCBvZiBwMm0gbWFwcGluZyAqLworI2lmZGVm
IF9faTM4Nl9fCisgICAgLyogVGhlcmUncyBubyByb29tIGZvciB0aGlzIGZpZWxkIGluIHRoZSBn
ZW5lcmljIHN0cnVjdHVyZS4gKi8KKyAgICB1aW50MzJfdCB3Y19zZWNfaGk7CisjZW5kaWYKK307
Cit0eXBlZGVmIHN0cnVjdCBhcmNoX3NoYXJlZF9pbmZvIGFyY2hfc2hhcmVkX2luZm9fdDsKKwor
I2lmIGRlZmluZWQoX19YRU5fXykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19fKQorLyoKKyAqIHN0
cnVjdCB4ZW5fYXJjaF9kb21haW5jb25maWcncyBBQkkgaXMgY292ZXJlZCBieQorICogWEVOX0RP
TUNUTF9JTlRFUkZBQ0VfVkVSU0lPTi4KKyAqLworc3RydWN0IHhlbl9hcmNoX2RvbWFpbmNvbmZp
ZyB7CisjZGVmaW5lIF9YRU5fWDg2X0VNVV9MQVBJQyAgICAgICAgICAwCisjZGVmaW5lIFhFTl9Y
ODZfRU1VX0xBUElDICAgICAgICAgICAoMVU8PF9YRU5fWDg2X0VNVV9MQVBJQykKKyNkZWZpbmUg
X1hFTl9YODZfRU1VX0hQRVQgICAgICAgICAgIDEKKyNkZWZpbmUgWEVOX1g4Nl9FTVVfSFBFVCAg
ICAgICAgICAgICgxVTw8X1hFTl9YODZfRU1VX0hQRVQpCisjZGVmaW5lIF9YRU5fWDg2X0VNVV9Q
TSAgICAgICAgICAgICAyCisjZGVmaW5lIFhFTl9YODZfRU1VX1BNICAgICAgICAgICAgICAoMVU8
PF9YRU5fWDg2X0VNVV9QTSkKKyNkZWZpbmUgX1hFTl9YODZfRU1VX1JUQyAgICAgICAgICAgIDMK
KyNkZWZpbmUgWEVOX1g4Nl9FTVVfUlRDICAgICAgICAgICAgICgxVTw8X1hFTl9YODZfRU1VX1JU
QykKKyNkZWZpbmUgX1hFTl9YODZfRU1VX0lPQVBJQyAgICAgICAgIDQKKyNkZWZpbmUgWEVOX1g4
Nl9FTVVfSU9BUElDICAgICAgICAgICgxVTw8X1hFTl9YODZfRU1VX0lPQVBJQykKKyNkZWZpbmUg
X1hFTl9YODZfRU1VX1BJQyAgICAgICAgICAgIDUKKyNkZWZpbmUgWEVOX1g4Nl9FTVVfUElDICAg
ICAgICAgICAgICgxVTw8X1hFTl9YODZfRU1VX1BJQykKKyNkZWZpbmUgX1hFTl9YODZfRU1VX1ZH
QSAgICAgICAgICAgIDYKKyNkZWZpbmUgWEVOX1g4Nl9FTVVfVkdBICAgICAgICAgICAgICgxVTw8
X1hFTl9YODZfRU1VX1ZHQSkKKyNkZWZpbmUgX1hFTl9YODZfRU1VX0lPTU1VICAgICAgICAgIDcK
KyNkZWZpbmUgWEVOX1g4Nl9FTVVfSU9NTVUgICAgICAgICAgICgxVTw8X1hFTl9YODZfRU1VX0lP
TU1VKQorI2RlZmluZSBfWEVOX1g4Nl9FTVVfUElUICAgICAgICAgICAgOAorI2RlZmluZSBYRU5f
WDg2X0VNVV9QSVQgICAgICAgICAgICAgKDFVPDxfWEVOX1g4Nl9FTVVfUElUKQorCisjZGVmaW5l
IFhFTl9YODZfRU1VX0FMTCAgICAgICAgICAgICAoWEVOX1g4Nl9FTVVfTEFQSUMgfCBYRU5fWDg2
X0VNVV9IUEVUIHwgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5f
WDg2X0VNVV9QTSB8IFhFTl9YODZfRU1VX1JUQyB8ICAgICAgXAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFhFTl9YODZfRU1VX0lPQVBJQyB8IFhFTl9YODZfRU1VX1BJQyB8
ICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX1g4Nl9FTVVfVkdB
IHwgWEVOX1g4Nl9FTVVfSU9NTVUgfCAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBYRU5fWDg2X0VNVV9QSVQpCisgICAgdWludDMyX3QgZW11bGF0aW9uX2ZsYWdzOwor
fTsKKyNlbmRpZgorCisjZW5kaWYgLyogIV9fQVNTRU1CTFlfXyAqLworCisvKgorICogYCBlbnVt
IG5lZ19lcnJub3ZhbAorICogYCBIWVBFUlZJU09SX2ZwdV90YXNrc3dpdGNoKGludCBzZXQpOwor
ICogYAorICogU2V0cyAoaWYgc2V0IT0wKSBvciBjbGVhcnMgKGlmIHNldD09MCkgQ1IwLlRTLgor
ICovCisKKy8qCisgKiBgIGVudW0gbmVnX2Vycm5vdmFsCisgKiBgIEhZUEVSVklTT1Jfc2V0X2Rl
YnVncmVnKGludCByZWdubywgVUxPTkdfUFRSIHZhbHVlKTsKKyAqCisgKiBgIFVMT05HX1BUUgor
ICogYCBIWVBFUlZJU09SX2dldF9kZWJ1Z3JlZyhpbnQgcmVnbm8pOworICogRm9yIDA8PXJlZzw9
NywgcmV0dXJucyB0aGUgZGVidWcgcmVnaXN0ZXIgdmFsdWUuCisgKiBGb3Igb3RoZXIgdmFsdWVz
IG9mIHJlZywgcmV0dXJucyAoKFVMT05HX1BUUiktRUlOVkFMKS4KKyAqIChVbmZvcnR1bmF0ZWx5
LCB0aGlzIGludGVyZmFjZSBpcyBkZWZlY3RpdmUuKQorICovCisKKy8qCisgKiBQcmVmaXggZm9y
Y2VzIGVtdWxhdGlvbiBvZiBzb21lIG5vbi10cmFwcGluZyBpbnN0cnVjdGlvbnMuCisgKiBDdXJy
ZW50bHkgb25seSBDUFVJRC4KKyAqLworI2lmZGVmIF9fQVNTRU1CTFlfXworI2RlZmluZSBYRU5f
RU1VTEFURV9QUkVGSVggLmJ5dGUgMHgwZiwweDBiLDB4NzgsMHg2NSwweDZlIDsKKyNkZWZpbmUg
WEVOX0NQVUlEICAgICAgICAgIFhFTl9FTVVMQVRFX1BSRUZJWCBjcHVpZAorI2Vsc2UKKyNkZWZp
bmUgWEVOX0VNVUxBVEVfUFJFRklYICIuYnl0ZSAweDBmLDB4MGIsMHg3OCwweDY1LDB4NmUgOyAi
CisjZGVmaW5lIFhFTl9DUFVJRCAgICAgICAgICBYRU5fRU1VTEFURV9QUkVGSVggImNwdWlkIgor
I2VuZGlmCisKKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfQVJDSF9YODZfWEVOX0hfXyAqLworCisv
KgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAiQlNE
IgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50LXRhYnMt
bW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3B1YmxpYy9o
dm0vaHZtX2luZm9fdGFibGUuaCBiL2luY2x1ZGUveGVuL3B1YmxpYy9odm0vaHZtX2luZm9fdGFi
bGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOTJlOGY3Ci0tLSAvZGV2
L251bGwKKysrIGIvaW5jbHVkZS94ZW4vcHVibGljL2h2bS9odm1faW5mb190YWJsZS5oCkBAIC0w
LDAgKzEsNzQgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIGh2bS9odm1faW5mb190YWJs
ZS5oCisgKgorICogSFZNIHBhcmFtZXRlciBhbmQgaW5mb3JtYXRpb24gdGFibGUsIHdyaXR0ZW4g
aW50byBndWVzdCBtZW1vcnkgbWFwLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50
ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyAqIG9m
IHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJT
b2Z0d2FyZSIpLCB0bworICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlv
biwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKKyAqIHJpZ2h0cyB0byB1c2UsIGNv
cHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9v
cgorICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMg
dG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0
byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBu
b3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAq
IGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoK
KyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9G
IEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1J
VEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRQorICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFO
WSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFD
VElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9V
VCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RI
RVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIw
MDYsIEtlaXIgRnJhc2VyCisgKi8KKworI2lmbmRlZiBfX1hFTl9QVUJMSUNfSFZNX0hWTV9JTkZP
X1RBQkxFX0hfXworI2RlZmluZSBfX1hFTl9QVUJMSUNfSFZNX0hWTV9JTkZPX1RBQkxFX0hfXwor
CisjZGVmaW5lIEhWTV9JTkZPX1BGTiAgICAgICAgIDB4MDlGCisjZGVmaW5lIEhWTV9JTkZPX09G
RlNFVCAgICAgIDB4ODAwCisjZGVmaW5lIEhWTV9JTkZPX1BBRERSICAgICAgICgoSFZNX0lORk9f
UEZOIDw8IDEyKSArIEhWTV9JTkZPX09GRlNFVCkKKworLyogTWF4aW11bSB3ZSBjYW4gc3VwcG9y
dCB3aXRoIGN1cnJlbnQgdkxBUElDIElEIG1hcHBpbmcuICovCisjZGVmaW5lIEhWTV9NQVhfVkNQ
VVMgICAgICAgIDEyOAorCitzdHJ1Y3QgaHZtX2luZm9fdGFibGUgeworICAgIGNoYXIgICAgICAg
IHNpZ25hdHVyZVs4XTsgLyogIkhWTSBJTkZPIiAqLworICAgIHVpbnQzMl90ICAgIGxlbmd0aDsK
KyAgICB1aW50OF90ICAgICBjaGVja3N1bTsKKworICAgIC8qIFNob3VsZCBmaXJtd2FyZSBidWls
ZCBBUElDIGRlc2NyaXB0b3JzIChBUElDIE1BRFQgLyBNUCBCSU9TKT8gKi8KKyAgICB1aW50OF90
ICAgICBhcGljX21vZGU7CisKKyAgICAvKiBIb3cgbWFueSBDUFVzIGRvZXMgdGhpcyBkb21haW4g
aGF2ZT8gKi8KKyAgICB1aW50MzJfdCAgICBucl92Y3B1czsKKworICAgIC8qCisgICAgICogTUVN
T1JZIE1BUCBwcm92aWRlZCBieSBIVk0gZG9tYWluIGJ1aWxkZXIuCisgICAgICogTm90ZXM6Cisg
ICAgICogIDEuIHBhZ2VfdG9fcGh5cyh4KSA9IHggPDwgMTIKKyAgICAgKiAgMi4gSWYgYSBmaWVs
ZCBpcyB6ZXJvLCB0aGUgY29ycmVzcG9uZGluZyByYW5nZSBkb2VzIG5vdCBleGlzdC4KKyAgICAg
Ki8KKyAgICAvKgorICAgICAqICAweDAgdG8gcGFnZV90b19waHlzKGxvd19tZW1fcGdlbmQpLTE6
CisgICAgICogICAgUkFNIGJlbG93IDRHQiAoZXhjZXB0IGZvciBWR0EgaG9sZSAweEEwMDAwLTB4
QkZGRkYpCisgICAgICovCisgICAgdWludDMyX3QgICAgbG93X21lbV9wZ2VuZDsKKyAgICAvKgor
ICAgICAqICBwYWdlX3RvX3BoeXMocmVzZXJ2ZWRfbWVtX3Bnc3RhcnQpIHRvIDB4RkZGRkZGRkY6
CisgICAgICogICAgUmVzZXJ2ZWQgZm9yIHNwZWNpYWwgbWVtb3J5IG1hcHBpbmdzCisgICAgICov
CisgICAgdWludDMyX3QgICAgcmVzZXJ2ZWRfbWVtX3Bnc3RhcnQ7CisgICAgLyoKKyAgICAgKiAg
MHgxMDAwMDAwMDAgdG8gcGFnZV90b19waHlzKGhpZ2hfbWVtX3BnZW5kKS0xOgorICAgICAqICAg
IFJBTSBhYm92ZSA0R0IKKyAgICAgKi8KKyAgICB1aW50MzJfdCAgICBoaWdoX21lbV9wZ2VuZDsK
KworICAgIC8qIEJpdG1hcCBvZiB3aGljaCBDUFVzIGFyZSBvbmxpbmUgYXQgYm9vdCB0aW1lLiAq
LworICAgIHVpbnQ4X3QgICAgIHZjcHVfb25saW5lWyhIVk1fTUFYX1ZDUFVTICsgNykvOF07Cit9
OworCisjZW5kaWYgLyogX19YRU5fUFVCTElDX0hWTV9IVk1fSU5GT19UQUJMRV9IX18gKi8KZGlm
ZiAtLWdpdCBhL2luY2x1ZGUveGVuL3B1YmxpYy94ZW4tY29tcGF0LmggYi9pbmNsdWRlL3hlbi9w
dWJsaWMveGVuLWNvbXBhdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJl
ZWEwZTIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL3hlbi9wdWJsaWMveGVuLWNvbXBhdC5o
CkBAIC0wLDAgKzEsNDQgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIHhlbi1jb21wYXQu
aAorICoKKyAqIEd1ZXN0IE9TIGludGVyZmFjZSB0byBYZW4uICBDb21wYXRpYmlsaXR5IGxheWVy
LgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0
byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFz
c29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bworICogZGVh
bCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQg
bGltaXRhdGlvbiB0aGUKKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1
Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgorICogc2VsbCBjb3BpZXMgb2Yg
dGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUg
aXMKKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlz
c2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3Rh
bnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9S
CisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorICogQVVUSE9SUyBP
UiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBP
VEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9S
VCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9O
IFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRI
RSBTT0ZUV0FSRS4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDYsIENocmlzdGlhbiBMaW1wYWNo
CisgKi8KKworI2lmbmRlZiBfX1hFTl9QVUJMSUNfWEVOX0NPTVBBVF9IX18KKyNkZWZpbmUgX19Y
RU5fUFVCTElDX1hFTl9DT01QQVRfSF9fCisKKyNkZWZpbmUgX19YRU5fTEFURVNUX0lOVEVSRkFD
RV9WRVJTSU9OX18gMHgwMDA0MDcwMAorCisjaWYgZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVk
KF9fWEVOX1RPT0xTX18pCisvKiBYZW4gaXMgYnVpbHQgd2l0aCBtYXRjaGluZyBoZWFkZXJzIGFu
ZCBpbXBsZW1lbnRzIHRoZSBsYXRlc3QgaW50ZXJmYWNlLiAqLworI2RlZmluZSBfX1hFTl9JTlRF
UkZBQ0VfVkVSU0lPTl9fIF9fWEVOX0xBVEVTVF9JTlRFUkZBQ0VfVkVSU0lPTl9fCisjZWxpZiAh
ZGVmaW5lZChfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fKQorLyogR3Vlc3RzIHdoaWNoIGRvIG5v
dCBzcGVjaWZ5IGEgdmVyc2lvbiBnZXQgdGhlIGxlZ2FjeSBpbnRlcmZhY2UuICovCisjZGVmaW5l
IF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gMHgwMDAwMDAwMAorI2VuZGlmCisKKyNpZiBfX1hF
Tl9JTlRFUkZBQ0VfVkVSU0lPTl9fID4gX19YRU5fTEFURVNUX0lOVEVSRkFDRV9WRVJTSU9OX18K
KyNlcnJvciAiVGhlc2UgaGVhZGVyIGZpbGVzIGRvIG5vdCBzdXBwb3J0IHRoZSByZXF1ZXN0ZWQg
aW50ZXJmYWNlIHZlcnNpb24uIgorI2VuZGlmCisKKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfWEVO
X0NPTVBBVF9IX18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3B1YmxpYy94ZW4uaCBiL2lu
Y2x1ZGUveGVuL3B1YmxpYy94ZW4uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4yMDU3YjUyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS94ZW4vcHVibGljL3hlbi5oCkBA
IC0wLDAgKzEsOTk1IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiB4ZW4uaAorICoKKyAq
IEd1ZXN0IE9TIGludGVyZmFjZSB0byBYZW4uCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkg
Z3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQor
ICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0
aGUgIlNvZnR3YXJlIiksIHRvCisgKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3Ry
aWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQorICogcmlnaHRzIHRvIHVz
ZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwg
YW5kL29yCisgKiBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVy
c29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJq
ZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJp
Z2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBp
bgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUu
CisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFO
VFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9U
IExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFCisgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBG
T1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
QU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJP
TSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBP
UiBPVEhFUgorICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIENvcHlyaWdodCAo
YykgMjAwNCwgSyBBIEZyYXNlcgorICovCisKKyNpZm5kZWYgX19YRU5fUFVCTElDX1hFTl9IX18K
KyNkZWZpbmUgX19YRU5fUFVCTElDX1hFTl9IX18KKworI2luY2x1ZGUgInhlbi1jb21wYXQuaCIK
KworI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKKyNpbmNsdWRl
ICJhcmNoLXg4Ni94ZW4uaCIKKyNlbGlmIGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZCAoX19h
YXJjaDY0X18pCisjaW5jbHVkZSAiYXJjaC1hcm0uaCIKKyNlbHNlCisjZXJyb3IgIlVuc3VwcG9y
dGVkIGFyY2hpdGVjdHVyZSIKKyNlbmRpZgorCisjaWZuZGVmIF9fQVNTRU1CTFlfXworLyogR3Vl
c3QgaGFuZGxlcyBmb3IgcHJpbWl0aXZlIEMgdHlwZXMuICovCitERUZJTkVfWEVOX0dVRVNUX0hB
TkRMRShjaGFyKTsKK19fREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUodWNoYXIsIHVuc2lnbmVkIGNo
YXIpOworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoaW50KTsKK19fREVGSU5FX1hFTl9HVUVTVF9I
QU5ETEUodWludCwgIHVuc2lnbmVkIGludCk7CisjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05f
XyA8IDB4MDAwNDAzMDAKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKExPTkdfUFRSKTsKK19fREVG
SU5FX1hFTl9HVUVTVF9IQU5ETEUodWxvbmcsIFVMT05HX1BUUik7CisjZW5kaWYKK0RFRklORV9Y
RU5fR1VFU1RfSEFORExFKHZvaWQpOworCitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh1aW50NjRf
dCk7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fcGZuX3QpOworREVGSU5FX1hFTl9HVUVT
VF9IQU5ETEUoeGVuX3Vsb25nX3QpOworCisvKiBUdXJuIGEgcGxhaW4gbnVtYmVyIGludG8gYSBD
IHVuc2lnbmVkIChMT05HX1BUUikgY29uc3RhbnQuICovCisjZGVmaW5lIF9feGVuX21rX3VpbnQo
eCkgIHggIyMgVQorI2RlZmluZSBfX3hlbl9ta191bG9uZyh4KSB4ICMjIFVMCisjZGVmaW5lIHhl
bl9ta191aW50KHgpICAgIF9feGVuX21rX3VpbnQoeCkKKyNkZWZpbmUgeGVuX21rX3Vsb25nKHgp
ICAgX194ZW5fbWtfdWxvbmcoeCkKKworI2Vsc2UKKworLyogSW4gYXNzZW1ibHkgY29kZSB3ZSBj
YW5ub3QgdXNlIEMgbnVtZXJpYyBjb25zdGFudCBzdWZmaXhlcy4gKi8KKyNkZWZpbmUgeGVuX21r
X3VpbnQoeCkgIHgKKyNkZWZpbmUgeGVuX21rX3Vsb25nKHgpIHgKKworI2VuZGlmCisKKy8qCisg
KiBIWVBFUkNBTExTCisgKi8KKworLyogYGluY29udGVudHMgMTAwIGhjYWxscyBMaXN0IG9mIGh5
cGVyY2FsbHMKKyAqIGAgZW51bSBoeXBlcmNhbGxfbnVtIHsgLy8gX19IWVBFUlZJU09SXyogPT4g
SFlQRVJWSVNPUl8qKCkKKyAqLworCisjZGVmaW5lIF9fSFlQRVJWSVNPUl9zZXRfdHJhcF90YWJs
ZSAgICAgICAgMAorI2RlZmluZSBfX0hZUEVSVklTT1JfbW11X3VwZGF0ZSAgICAgICAgICAgIDEK
KyNkZWZpbmUgX19IWVBFUlZJU09SX3NldF9nZHQgICAgICAgICAgICAgICAyCisjZGVmaW5lIF9f
SFlQRVJWSVNPUl9zdGFja19zd2l0Y2ggICAgICAgICAgMworI2RlZmluZSBfX0hZUEVSVklTT1Jf
c2V0X2NhbGxiYWNrcyAgICAgICAgIDQKKyNkZWZpbmUgX19IWVBFUlZJU09SX2ZwdV90YXNrc3dp
dGNoICAgICAgICA1CisjZGVmaW5lIF9fSFlQRVJWSVNPUl9zY2hlZF9vcF9jb21wYXQgICAgICAg
NiAvKiBjb21wYXQgc2luY2UgMHgwMDAzMDEwMSAqLworI2RlZmluZSBfX0hZUEVSVklTT1JfcGxh
dGZvcm1fb3AgICAgICAgICAgIDcKKyNkZWZpbmUgX19IWVBFUlZJU09SX3NldF9kZWJ1Z3JlZyAg
ICAgICAgICA4CisjZGVmaW5lIF9fSFlQRVJWSVNPUl9nZXRfZGVidWdyZWcgICAgICAgICAgOQor
I2RlZmluZSBfX0hZUEVSVklTT1JfdXBkYXRlX2Rlc2NyaXB0b3IgICAgMTAKKyNkZWZpbmUgX19I
WVBFUlZJU09SX21lbW9yeV9vcCAgICAgICAgICAgIDEyCisjZGVmaW5lIF9fSFlQRVJWSVNPUl9t
dWx0aWNhbGwgICAgICAgICAgICAxMworI2RlZmluZSBfX0hZUEVSVklTT1JfdXBkYXRlX3ZhX21h
cHBpbmcgICAgMTQKKyNkZWZpbmUgX19IWVBFUlZJU09SX3NldF90aW1lcl9vcCAgICAgICAgIDE1
CisjZGVmaW5lIF9fSFlQRVJWSVNPUl9ldmVudF9jaGFubmVsX29wX2NvbXBhdCAxNiAvKiBjb21w
YXQgc2luY2UgMHgwMDAzMDIwMiAqLworI2RlZmluZSBfX0hZUEVSVklTT1JfeGVuX3ZlcnNpb24g
ICAgICAgICAgMTcKKyNkZWZpbmUgX19IWVBFUlZJU09SX2NvbnNvbGVfaW8gICAgICAgICAgIDE4
CisjZGVmaW5lIF9fSFlQRVJWSVNPUl9waHlzZGV2X29wX2NvbXBhdCAgICAxOSAvKiBjb21wYXQg
c2luY2UgMHgwMDAzMDIwMiAqLworI2RlZmluZSBfX0hZUEVSVklTT1JfZ3JhbnRfdGFibGVfb3Ag
ICAgICAgMjAKKyNkZWZpbmUgX19IWVBFUlZJU09SX3ZtX2Fzc2lzdCAgICAgICAgICAgIDIxCisj
ZGVmaW5lIF9fSFlQRVJWSVNPUl91cGRhdGVfdmFfbWFwcGluZ19vdGhlcmRvbWFpbiAyMgorI2Rl
ZmluZSBfX0hZUEVSVklTT1JfaXJldCAgICAgICAgICAgICAgICAgMjMgLyogeDg2IG9ubHkgKi8K
KyNkZWZpbmUgX19IWVBFUlZJU09SX3ZjcHVfb3AgICAgICAgICAgICAgIDI0CisjZGVmaW5lIF9f
SFlQRVJWSVNPUl9zZXRfc2VnbWVudF9iYXNlICAgICAyNSAvKiB4ODYvNjQgb25seSAqLworI2Rl
ZmluZSBfX0hZUEVSVklTT1JfbW11ZXh0X29wICAgICAgICAgICAgMjYKKyNkZWZpbmUgX19IWVBF
UlZJU09SX3hzbV9vcCAgICAgICAgICAgICAgIDI3CisjZGVmaW5lIF9fSFlQRVJWSVNPUl9ubWlf
b3AgICAgICAgICAgICAgICAyOAorI2RlZmluZSBfX0hZUEVSVklTT1Jfc2NoZWRfb3AgICAgICAg
ICAgICAgMjkKKyNkZWZpbmUgX19IWVBFUlZJU09SX2NhbGxiYWNrX29wICAgICAgICAgIDMwCisj
ZGVmaW5lIF9fSFlQRVJWSVNPUl94ZW5vcHJvZl9vcCAgICAgICAgICAzMQorI2RlZmluZSBfX0hZ
UEVSVklTT1JfZXZlbnRfY2hhbm5lbF9vcCAgICAgMzIKKyNkZWZpbmUgX19IWVBFUlZJU09SX3Bo
eXNkZXZfb3AgICAgICAgICAgIDMzCisjZGVmaW5lIF9fSFlQRVJWSVNPUl9odm1fb3AgICAgICAg
ICAgICAgICAzNAorI2RlZmluZSBfX0hZUEVSVklTT1Jfc3lzY3RsICAgICAgICAgICAgICAgMzUK
KyNkZWZpbmUgX19IWVBFUlZJU09SX2RvbWN0bCAgICAgICAgICAgICAgIDM2CisjZGVmaW5lIF9f
SFlQRVJWSVNPUl9rZXhlY19vcCAgICAgICAgICAgICAzNworI2RlZmluZSBfX0hZUEVSVklTT1Jf
dG1lbV9vcCAgICAgICAgICAgICAgMzgKKyNkZWZpbmUgX19IWVBFUlZJU09SX3hjX3Jlc2VydmVk
X29wICAgICAgIDM5IC8qIHJlc2VydmVkIGZvciBYZW5DbGllbnQgKi8KKyNkZWZpbmUgX19IWVBF
UlZJU09SX3hlbnBtdV9vcCAgICAgICAgICAgIDQwCisKKy8qIEFyY2hpdGVjdHVyZS1zcGVjaWZp
YyBoeXBlcmNhbGwgZGVmaW5pdGlvbnMuICovCisjZGVmaW5lIF9fSFlQRVJWSVNPUl9hcmNoXzAg
ICAgICAgICAgICAgICA0OAorI2RlZmluZSBfX0hZUEVSVklTT1JfYXJjaF8xICAgICAgICAgICAg
ICAgNDkKKyNkZWZpbmUgX19IWVBFUlZJU09SX2FyY2hfMiAgICAgICAgICAgICAgIDUwCisjZGVm
aW5lIF9fSFlQRVJWSVNPUl9hcmNoXzMgICAgICAgICAgICAgICA1MQorI2RlZmluZSBfX0hZUEVS
VklTT1JfYXJjaF80ICAgICAgICAgICAgICAgNTIKKyNkZWZpbmUgX19IWVBFUlZJU09SX2FyY2hf
NSAgICAgICAgICAgICAgIDUzCisjZGVmaW5lIF9fSFlQRVJWSVNPUl9hcmNoXzYgICAgICAgICAg
ICAgICA1NAorI2RlZmluZSBfX0hZUEVSVklTT1JfYXJjaF83ICAgICAgICAgICAgICAgNTUKKwor
LyogYCB9ICovCisKKy8qCisgKiBIWVBFUkNBTEwgQ09NUEFUSUJJTElUWS4KKyAqLworCisvKiBO
ZXcgc2NoZWRfb3AgaHlwZXJjYWxsIGludHJvZHVjZWQgaW4gMHgwMDAzMDEwMS4gKi8KKyNpZiBf
X1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fIDwgMHgwMDAzMDEwMQorI3VuZGVmIF9fSFlQRVJWSVNP
Ul9zY2hlZF9vcAorI2RlZmluZSBfX0hZUEVSVklTT1Jfc2NoZWRfb3AgX19IWVBFUlZJU09SX3Nj
aGVkX29wX2NvbXBhdAorI2VuZGlmCisKKy8qIE5ldyBldmVudC1jaGFubmVsIGFuZCBwaHlzZGV2
IGh5cGVyY2FsbHMgaW50cm9kdWNlZCBpbiAweDAwMDMwMjAyLiAqLworI2lmIF9fWEVOX0lOVEVS
RkFDRV9WRVJTSU9OX18gPCAweDAwMDMwMjAyCisjdW5kZWYgX19IWVBFUlZJU09SX2V2ZW50X2No
YW5uZWxfb3AKKyNkZWZpbmUgX19IWVBFUlZJU09SX2V2ZW50X2NoYW5uZWxfb3AgX19IWVBFUlZJ
U09SX2V2ZW50X2NoYW5uZWxfb3BfY29tcGF0CisjdW5kZWYgX19IWVBFUlZJU09SX3BoeXNkZXZf
b3AKKyNkZWZpbmUgX19IWVBFUlZJU09SX3BoeXNkZXZfb3AgX19IWVBFUlZJU09SX3BoeXNkZXZf
b3BfY29tcGF0CisjZW5kaWYKKworLyogTmV3IHBsYXRmb3JtX29wIGh5cGVyY2FsbCBpbnRyb2R1
Y2VkIGluIDB4MDAwMzAyMDQuICovCisjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA8IDB4
MDAwMzAyMDQKKyNkZWZpbmUgX19IWVBFUlZJU09SX2RvbTBfb3AgX19IWVBFUlZJU09SX3BsYXRm
b3JtX29wCisjZW5kaWYKKworLyoKKyAqIFZJUlRVQUwgSU5URVJSVVBUUworICoKKyAqIFZpcnR1
YWwgaW50ZXJydXB0cyB0aGF0IGEgZ3Vlc3QgT1MgbWF5IHJlY2VpdmUgZnJvbSBYZW4uCisgKgor
ICogSW4gdGhlIHNpZGUgY29tbWVudHMsICdWLicgZGVub3RlcyBhIHBlci1WQ1BVIFZJUlEgd2hp
bGUgJ0cuJyBkZW5vdGVzIGEKKyAqIGdsb2JhbCBWSVJRLiBUaGUgZm9ybWVyIGNhbiBiZSBib3Vu
ZCBvbmNlIHBlciBWQ1BVIGFuZCBjYW5ub3QgYmUgcmUtYm91bmQuCisgKiBUaGUgbGF0dGVyIGNh
biBiZSBhbGxvY2F0ZWQgb25seSBvbmNlIHBlciBndWVzdDogdGhleSBtdXN0IGluaXRpYWxseSBi
ZQorICogYWxsb2NhdGVkIHRvIFZDUFUwIGJ1dCBjYW4gc3Vic2VxdWVudGx5IGJlIHJlLWJvdW5k
LgorICovCisvKiBgIGVudW0gdmlycSB7ICovCisjZGVmaW5lIFZJUlFfVElNRVIgICAgICAwICAv
KiBWLiBUaW1lYmFzZSB1cGRhdGUsIGFuZC9vciByZXF1ZXN0ZWQgdGltZW91dC4gICovCisjZGVm
aW5lIFZJUlFfREVCVUcgICAgICAxICAvKiBWLiBSZXF1ZXN0IGd1ZXN0IHRvIGR1bXAgZGVidWcg
aW5mby4gICAgICAgICAgICovCisjZGVmaW5lIFZJUlFfQ09OU09MRSAgICAyICAvKiBHLiAoRE9N
MCkgQnl0ZXMgcmVjZWl2ZWQgb24gZW1lcmdlbmN5IGNvbnNvbGUuICovCisjZGVmaW5lIFZJUlFf
RE9NX0VYQyAgICAzICAvKiBHLiAoRE9NMCkgRXhjZXB0aW9uYWwgZXZlbnQgZm9yIHNvbWUgZG9t
YWluLiAgICovCisjZGVmaW5lIFZJUlFfVEJVRiAgICAgICA0ICAvKiBHLiAoRE9NMCkgVHJhY2Ug
YnVmZmVyIGhhcyByZWNvcmRzIGF2YWlsYWJsZS4gICovCisjZGVmaW5lIFZJUlFfREVCVUdHRVIg
ICA2ICAvKiBHLiAoRE9NMCkgQSBkb21haW4gaGFzIHBhdXNlZCBmb3IgZGVidWdnaW5nLiAgICov
CisjZGVmaW5lIFZJUlFfWEVOT1BST0YgICA3ICAvKiBWLiBYZW5PcHJvZmlsZSBpbnRlcnJ1cHQ6
IG5ldyBzYW1wbGUgYXZhaWxhYmxlICovCisjZGVmaW5lIFZJUlFfQ09OX1JJTkcgICA4ICAvKiBH
LiAoRE9NMCkgQnl0ZXMgcmVjZWl2ZWQgb24gY29uc29sZSAgICAgICAgICAgICovCisjZGVmaW5l
IFZJUlFfUENQVV9TVEFURSA5ICAvKiBHLiAoRE9NMCkgUENQVSBzdGF0ZSBjaGFuZ2VkICAgICAg
ICAgICAgICAgICAgICovCisjZGVmaW5lIFZJUlFfTUVNX0VWRU5UICAxMCAvKiBHLiAoRE9NMCkg
QSBtZW1vcnkgZXZlbnQgaGFzIG9jY3VyZWQgICAgICAgICAgICovCisjZGVmaW5lIFZJUlFfWENf
UkVTRVJWRUQgMTEgLyogRy4gUmVzZXJ2ZWQgZm9yIFhlbkNsaWVudCAgICAgICAgICAgICAgICAg
ICAgICovCisjZGVmaW5lIFZJUlFfRU5PTUVNICAgICAxMiAvKiBHLiAoRE9NMCkgTG93IG9uIGhl
YXAgbWVtb3J5ICAgICAgICovCisjZGVmaW5lIFZJUlFfWEVOUE1VICAgICAxMyAvKiBWLiAgUE1D
IGludGVycnVwdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisKKy8qIEFyY2hpdGVj
dHVyZS1zcGVjaWZpYyBWSVJRIGRlZmluaXRpb25zLiAqLworI2RlZmluZSBWSVJRX0FSQ0hfMCAg
ICAxNgorI2RlZmluZSBWSVJRX0FSQ0hfMSAgICAxNworI2RlZmluZSBWSVJRX0FSQ0hfMiAgICAx
OAorI2RlZmluZSBWSVJRX0FSQ0hfMyAgICAxOQorI2RlZmluZSBWSVJRX0FSQ0hfNCAgICAyMAor
I2RlZmluZSBWSVJRX0FSQ0hfNSAgICAyMQorI2RlZmluZSBWSVJRX0FSQ0hfNiAgICAyMgorI2Rl
ZmluZSBWSVJRX0FSQ0hfNyAgICAyMworLyogYCB9ICovCisKKyNkZWZpbmUgTlJfVklSUVMgICAg
ICAgMjQKKworLyoKKyAqIGAgZW51bSBuZWdfZXJybm92YWwKKyAqIGAgSFlQRVJWSVNPUl9tbXVf
dXBkYXRlKGNvbnN0IHN0cnVjdCBtbXVfdXBkYXRlIHJlcXNbXSwKKyAqIGAgICAgICAgICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIGNvdW50LCB1bnNpZ25lZCAqZG9uZV9vdXQsCisgKiBgICAgICAg
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBmb3JlaWduZG9tKQorICogYAorICogQHJlcXMgaXMg
YW4gYXJyYXkgb2YgbW11X3VwZGF0ZV90IHN0cnVjdHVyZXMgKChwdHIsIHZhbCkgcGFpcnMpLgor
ICogQGNvdW50IGlzIHRoZSBsZW5ndGggb2YgdGhlIGFib3ZlIGFycmF5LgorICogQHBkb25lIGlz
IGFuIG91dHB1dCBwYXJhbWV0ZXIgaW5kaWNhdGluZyBudW1iZXIgb2YgY29tcGxldGVkIG9wZXJh
dGlvbnMKKyAqIEBmb3JlaWduZG9tWzE1OjBdOiBGRCwgdGhlIGV4cGVjdGVkIG93bmVyIG9mIGRh
dGEgcGFnZXMgcmVmZXJlbmNlZCBpbiB0aGlzCisgKiAgICAgICAgICAgICAgICAgICAgaHlwZXJj
YWxsIGludm9jYXRpb24uIENhbiBiZSBET01JRF9TRUxGLgorICogQGZvcmVpZ25kb21bMzE6MTZd
OiBQRkQsIHRoZSBleHBlY3RlZCBvd25lciBvZiBwYWdldGFibGUgcGFnZXMgcmVmZXJlbmNlZAor
ICogICAgICAgICAgICAgICAgICAgICBpbiB0aGlzIGh5cGVyY2FsbCBpbnZvY2F0aW9uLiBUaGUg
dmFsdWUgb2YgdGhpcyBmaWVsZAorICogICAgICAgICAgICAgICAgICAgICAoeCkgZW5jb2RlcyB0
aGUgUEZEIGFzIGZvbGxvd3M6CisgKiAgICAgICAgICAgICAgICAgICAgIHggPT0gMCA9PiBQRkQg
PT0gRE9NSURfU0VMRgorICogICAgICAgICAgICAgICAgICAgICB4ICE9IDAgPT4gUEZEID09IHgg
LSAxCisgKgorICogU3ViLWNvbW1hbmRzOiBwdHJbMTowXSBzcGVjaWZpZXMgdGhlIGFwcHJvcHJp
YXRlIE1NVV8qIGNvbW1hbmQuCisgKiAtLS0tLS0tLS0tLS0tCisgKiBwdHJbMTowXSA9PSBNTVVf
Tk9STUFMX1BUX1VQREFURToKKyAqIFVwZGF0ZXMgYW4gZW50cnkgaW4gYSBwYWdlIHRhYmxlIGJl
bG9uZ2luZyB0byBQRkQuIElmIHVwZGF0aW5nIGFuIEwxIHRhYmxlLAorICogYW5kIHRoZSBuZXcg
dGFibGUgZW50cnkgaXMgdmFsaWQvcHJlc2VudCwgdGhlIG1hcHBlZCBmcmFtZSBtdXN0IGJlbG9u
ZyB0bworICogRkQuIElmIGF0dGVtcHRpbmcgdG8gbWFwIGFuIEkvTyBwYWdlIHRoZW4gdGhlIGNh
bGxlciBhc3N1bWVzIHRoZSBwcml2aWxlZ2UKKyAqIG9mIHRoZSBGRC4KKyAqIEZEID09IERPTUlE
X0lPOiBQZXJtaXQgL29ubHkvIEkvTyBtYXBwaW5ncywgYXQgdGhlIHByaXYgbGV2ZWwgb2YgdGhl
IGNhbGxlci4KKyAqIEZEID09IERPTUlEX1hFTjogTWFwIHJlc3RyaWN0ZWQgYXJlYXMgb2YgWGVu
J3MgaGVhcCBzcGFjZS4KKyAqIHB0cls6Ml0gIC0tIE1hY2hpbmUgYWRkcmVzcyBvZiB0aGUgcGFn
ZS10YWJsZSBlbnRyeSB0byBtb2RpZnkuCisgKiB2YWwgICAgICAtLSBWYWx1ZSB0byB3cml0ZS4K
KyAqCisgKiBUaGVyZSBhbHNvIGNlcnRhaW4gaW1wbGljaXQgcmVxdWlyZW1lbnRzIHdoZW4gdXNp
bmcgdGhpcyBoeXBlcmNhbGwuIFRoZQorICogcGFnZXMgdGhhdCBtYWtlIHVwIGEgcGFnZXRhYmxl
IG11c3QgYmUgbWFwcGVkIHJlYWQtb25seSBpbiB0aGUgZ3Vlc3QuCisgKiBUaGlzIHByZXZlbnRz
IHVuY29udHJvbGxlZCBndWVzdCB1cGRhdGVzIHRvIHRoZSBwYWdldGFibGUuIFhlbiBzdHJpY3Rs
eQorICogZW5mb3JjZXMgdGhpcywgYW5kIHdpbGwgZGlzYWxsb3cgYW55IHBhZ2V0YWJsZSB1cGRh
dGUgd2hpY2ggd2lsbCBlbmQgdXAKKyAqIG1hcHBpbmcgcGFnZXRhYmxlIHBhZ2UgUlcsIGFuZCB3
aWxsIGRpc2FsbG93IHVzaW5nIGFueSB3cml0YWJsZSBwYWdlIGFzIGEKKyAqIHBhZ2V0YWJsZS4g
SW4gcHJhY3RpY2UgaXQgbWVhbnMgdGhhdCB3aGVuIGNvbnN0cnVjdGluZyBhIHBhZ2UgdGFibGUg
Zm9yIGEKKyAqIHByb2Nlc3MsIHRocmVhZCwgZXRjLCB3ZSBNVVNUIGJlIHZlcnkgZGlsbGlnaWVu
dCBpbiBmb2xsb3dpbmcgdGhlc2UgcnVsZXM6CisgKiAgMSkuIFN0YXJ0IHdpdGggdG9wLWxldmVs
IHBhZ2UgKFBHRCBvciBpbiBYZW4gbGFuZ3VhZ2U6IEw0KS4gRmlsbCBvdXQKKyAqICAgICAgdGhl
IGVudHJpZXMuCisgKiAgMikuIEtlZXAgb24gZ29pbmcsIGZpbGxpbmcgb3V0IHRoZSB1cHBlciAo
UFVEIG9yIEwzKSwgYW5kIG1pZGRsZSAoUE1ECisgKiAgICAgIG9yIEwyKS4KKyAqICAzKS4gU3Rh
cnQgZmlsbGluZyBvdXQgdGhlIFBURSB0YWJsZSAoTDEpIHdpdGggdGhlIFBURSBlbnRyaWVzLiBP
bmNlCisgKiAgCWRvbmUsIG1ha2Ugc3VyZSB0byBzZXQgZWFjaCBvZiB0aG9zZSBlbnRyaWVzIHRv
IFJPIChzbyB3cml0ZWFibGUgYml0CisgKiAgCWlzIHVuc2V0KS4gT25jZSB0aGF0IGhhcyBiZWVu
IGNvbXBsZXRlZCwgc2V0IHRoZSBQTUQgKEwyKSBmb3IgdGhpcworICogIAlQVEUgdGFibGUgYXMg
Uk8uCisgKiAgNCkuIFdoZW4gY29tcGxldGVkIHdpdGggYWxsIG9mIHRoZSBQTUQgKEwyKSBlbnRy
aWVzLCBhbmQgYWxsIG9mIHRoZW0gaGF2ZQorICogIAliZWVuIHNldCB0byBSTywgbWFrZSBzdXJl
IHRvIHNldCBSTyB0aGUgUFVEIChMMykuIERvIHRoZSBzYW1lCisgKiAgCW9wZXJhdGlvbiBvbiBQ
R0QgKEw0KSBwYWdldGFibGUgZW50cmllcyB0aGF0IGhhdmUgYSBQVUQgKEwzKSBlbnRyeS4KKyAq
ICA1KS4gTm93IGJlZm9yZSB5b3UgY2FuIHVzZSB0aG9zZSBwYWdlcyAoc28gc2V0dGluZyB0aGUg
Y3IzKSwgeW91IE1VU1QgYWxzbworICogICAgICBwaW4gdGhlbSBzbyB0aGF0IHRoZSBoeXBlcnZp
c29yIGNhbiB2ZXJpZnkgdGhlIGVudHJpZXMuIFRoaXMgaXMgZG9uZQorICogICAgICB2aWEgdGhl
IEhZUEVSVklTT1JfbW11ZXh0X29wKE1NVUVYVF9QSU5fTDRfVEFCTEUsIGd1ZXN0IHBoeXNpY2Fs
IGZyYW1lCisgKiAgICAgIG51bWJlciBvZiB0aGUgUEdEIChMNCkpLiBBbmQgdGhpcyBwb2ludCB0
aGUgSFlQRVJWSVNPUl9tbXVleHRfb3AoCisgKiAgICAgIE1NVUVYVF9ORVdfQkFTRVBUUiwgZ3Vl
c3QgcGh5c2ljYWwgZnJhbWUgbnVtYmVyIG9mIHRoZSBQR0QgKEw0KSkgY2FuIGJlCisgKiAgICAg
IGlzc3VlZC4KKyAqIEZvciAzMi1iaXQgZ3Vlc3RzLCB0aGUgTDQgaXMgbm90IHVzZWQgKGFzIHRo
ZXJlIGlzIGxlc3MgcGFnZXRhYmxlcyksIHNvCisgKiBpbnN0ZWFkIHVzZSBMMy4KKyAqIEF0IHRo
aXMgcG9pbnQgdGhlIHBhZ2V0YWJsZXMgY2FuIGJlIG1vZGlmaWVkIHVzaW5nIHRoZSBNTVVfTk9S
TUFMX1BUX1VQREFURQorICogaHlwZXJjYWxsLiBBbHNvIGlmIHNvIGRlc2lyZWQgdGhlIE9TIGNh
biBhbHNvIHRyeSB0byB3cml0ZSB0byB0aGUgUFRFCisgKiBhbmQgYmUgdHJhcHBlZCBieSB0aGUg
aHlwZXJ2aXNvciAoYXMgdGhlIFBURSBlbnRyeSBpcyBSTykuCisgKgorICogVG8gZGVhbGxvY2F0
ZSB0aGUgcGFnZXMsIHRoZSBvcGVyYXRpb25zIGFyZSB0aGUgcmV2ZXJzZSBvZiB0aGUgc3RlcHMK
KyAqIG1lbnRpb25lZCBhYm92ZS4gVGhlIGFyZ3VtZW50IGlzIE1NVUVYVF9VTlBJTl9UQUJMRSBm
b3IgYWxsIGxldmVscyBhbmQgdGhlCisgKiBwYWdldGFibGUgTVVTVCBub3QgYmUgaW4gdXNlICht
ZWFuaW5nIHRoYXQgdGhlIGNyMyBpcyBub3Qgc2V0IHRvIGl0KS4KKyAqCisgKiBwdHJbMTowXSA9
PSBNTVVfTUFDSFBIWVNfVVBEQVRFOgorICogVXBkYXRlcyBhbiBlbnRyeSBpbiB0aGUgbWFjaGlu
ZS0+cHNldWRvLXBoeXNpY2FsIG1hcHBpbmcgdGFibGUuCisgKiBwdHJbOjJdICAtLSBNYWNoaW5l
IGFkZHJlc3Mgd2l0aGluIHRoZSBmcmFtZSB3aG9zZSBtYXBwaW5nIHRvIG1vZGlmeS4KKyAqICAg
ICAgICAgICAgIFRoZSBmcmFtZSBtdXN0IGJlbG9uZyB0byB0aGUgRkQsIGlmIG9uZSBpcyBzcGVj
aWZpZWQuCisgKiB2YWwgICAgICAtLSBWYWx1ZSB0byB3cml0ZSBpbnRvIHRoZSBtYXBwaW5nIGVu
dHJ5LgorICoKKyAqIHB0clsxOjBdID09IE1NVV9QVF9VUERBVEVfUFJFU0VSVkVfQUQ6CisgKiBB
cyBNTVVfTk9STUFMX1BUX1VQREFURSBhYm92ZSwgYnV0IEEvRCBiaXRzIGN1cnJlbnRseSBpbiB0
aGUgUFRFIGFyZSBPUmVkCisgKiB3aXRoIHRob3NlIGluIEB2YWwuCisgKgorICogQHZhbCBpcyB1
c3VhbGx5IHRoZSBtYWNoaW5lIGZyYW1lIG51bWJlciBhbG9uZyB3aXRoIHNvbWUgYXR0cmlidXRl
cy4KKyAqIFRoZSBhdHRyaWJ1dGVzIGJ5IGRlZmF1bHQgZm9sbG93IHRoZSBhcmNoaXRlY3R1cmUg
ZGVmaW5lZCBiaXRzLiBNZWFuaW5nIHRoYXQKKyAqIGlmIHRoaXMgaXMgYSBYODZfNjQgbWFjaGlu
ZSBhbmQgZm91ciBwYWdlIHRhYmxlIGxheW91dCBpcyB1c2VkLCB0aGUgbGF5b3V0CisgKiBvZiB2
YWwgaXM6CisgKiAgLSA2MyBpZiBzZXQgbWVhbnMgTm8gZXhlY3V0ZSAoTlgpCisgKiAgLSA0Ni0x
MyB0aGUgbWFjaGluZSBmcmFtZSBudW1iZXIKKyAqICAtIDEyIGF2YWlsYWJsZSBmb3IgZ3Vlc3QK
KyAqICAtIDExIGF2YWlsYWJsZSBmb3IgZ3Vlc3QKKyAqICAtIDEwIGF2YWlsYWJsZSBmb3IgZ3Vl
c3QKKyAqICAtIDkgYXZhaWxhYmxlIGZvciBndWVzdAorICogIC0gOCBnbG9iYWwKKyAqICAtIDcg
UEFUIChQU0UgaXMgZGlzYWJsZWQsIG11c3QgdXNlIGh5cGVyY2FsbCB0byBtYWtlIDRNQiBvciAy
TUIgcGFnZXMpCisgKiAgLSA2IGRpcnR5CisgKiAgLSA1IGFjY2Vzc2VkCisgKiAgLSA0IHBhZ2Ug
Y2FjaGVkIGRpc2FibGVkCisgKiAgLSAzIHBhZ2Ugd3JpdGUgdGhyb3VnaAorICogIC0gMiB1c2Vy
c3BhY2UgYWNjZXNzaWJsZQorICogIC0gMSB3cml0ZWFibGUKKyAqICAtIDAgcHJlc2VudAorICoK
KyAqICBUaGUgb25lIGJpdHMgdGhhdCBkb2VzIG5vdCBmaXQgd2l0aCB0aGUgZGVmYXVsdCBsYXlv
dXQgaXMgdGhlIFBBR0VfUFNFCisgKiAgYWxzbyBjYWxsZWQgUEFHRV9QQVQpLiBUaGUgTU1VRVhU
X1tVTl1NQVJLX1NVUEVSIGFyZ3VtZW50cyB0byB0aGUKKyAqICBIWVBFUlZJU09SX21tdWV4dF9v
cCBzZXJ2ZSBhcyBtZWNoYW5pc20gdG8gc2V0IGEgcGFnZXRhYmxlIHRvIGJlIDRNQgorICogIChv
ciAyTUIpIGluc3RlYWQgb2YgdXNpbmcgdGhlIFBBR0VfUFNFIGJpdC4KKyAqCisgKiAgVGhlIHJl
YXNvbiB0aGF0IHRoZSBQQUdFX1BTRSAoYml0IDcpIGlzIG5vdCBiZWluZyB1dGlsaXplZCBpcyBk
dWUgdG8gWGVuCisgKiAgdXNpbmcgaXQgYXMgdGhlIFBhZ2UgQXR0cmlidXRlIFRhYmxlIChQQVQp
IGJpdCAtIGZvciBkZXRhaWxzIG9uIGl0IHBsZWFzZQorICogIHJlZmVyIHRvIEludGVsIFNETSAx
MC4xMi4gVGhlIFBBVCBhbGxvd3MgdG8gc2V0IHRoZSBjYWNoaW5nIGF0dHJpYnV0ZXMgb2YKKyAq
ICBwYWdlcyBpbnN0ZWFkIG9mIHVzaW5nIE1UUlJzLgorICoKKyAqICBUaGUgUEFUIE1TUiBpcyBh
cyBmb2xsb3dzIChpdCBpcyBhIDY0LWJpdCB2YWx1ZSwgZWFjaCBlbnRyeSBpcyA4IGJpdHMpOgor
ICogICAgICAgICAgICAgICAgICAgIFBBVDQgICAgICAgICAgICAgICAgIFBBVDAKKyAqICArLS0t
LS0rLS0tLS0rLS0tLSstLS0tKy0tLS0rLS0tLS0rLS0tLSstLS0tKworICogIHwgVUMgIHwgVUMt
IHwgV0MgfCBXQiB8IFVDIHwgVUMtIHwgV0MgfCBXQiB8ICA8PSBMaW51eAorICogICstLS0tLSst
LS0tLSstLS0tKy0tLS0rLS0tLSstLS0tLSstLS0tKy0tLS0rCisgKiAgfCBVQyAgfCBVQy0gfCBX
VCB8IFdCIHwgVUMgfCBVQy0gfCBXVCB8IFdCIHwgIDw9IEJJT1MgKGRlZmF1bHQgd2hlbiBtYWNo
aW5lIGJvb3RzKQorICogICstLS0tLSstLS0tLSstLS0tKy0tLS0rLS0tLSstLS0tLSstLS0tKy0t
LS0rCisgKiAgfCByc3YgfCByc3YgfCBXUCB8IFdDIHwgVUMgfCBVQy0gfCBXVCB8IFdCIHwgIDw9
IFhlbgorICogICstLS0tLSstLS0tLSstLS0tKy0tLS0rLS0tLSstLS0tLSstLS0tKy0tLS0rCisg
KgorICogIFRoZSBsb29rdXAgb2YgdGhpcyBpbmRleCB0YWJsZSB0cmFuc2xhdGVzIHRvIGxvb2tp
bmcgdXAKKyAqICBCaXQgNywgQml0IDQsIGFuZCBCaXQgMyBvZiB2YWwgZW50cnk6CisgKgorICog
IFBBVC9QU0UgKGJpdCA3KSAuLi4gUENEIChiaXQgNCkgLi4gUFdUIChiaXQgMykuCisgKgorICog
IElmIGFsbCBiaXRzIGFyZSBvZmYsIHRoZW4gd2UgYXJlIHVzaW5nIFBBVDAuIElmIGJpdCAzIHR1
cm5lZCBvbiwKKyAqICB0aGVuIHdlIGFyZSB1c2luZyBQQVQxLCBpZiBiaXQgMyBhbmQgYml0IDQs
IHRoZW4gUEFUMi4uCisgKgorICogIEFzIHlvdSBjYW4gc2VlLCB0aGUgTGludXggUEFUMSB0cmFu
c2xhdGVzIHRvIFBBVDQgdW5kZXIgWGVuLiBXaGljaCBtZWFucworICogIHRoYXQgaWYgYSBndWVz
dCB0aGF0IGZvbGxvd3MgTGludXgncyBQQVQgc2V0dXAgYW5kIHdvdWxkIGxpa2UgdG8gc2V0IFdy
aXRlCisgKiAgQ29tYmluZWQgb24gcGFnZXMgaXQgTVVTVCB1c2UgUEFUNCBlbnRyeS4gTWVhbmlu
ZyB0aGF0IEJpdCA3IChQQUdFX1BBVCkgaXMKKyAqICBzZXQuIEZvciBleGFtcGxlLCB1bmRlciBM
aW51eCBpdCBvbmx5IHVzZXMgUEFUMCwgUEFUMSwgYW5kIFBBVDIgZm9yIHRoZQorICogIGNhY2hp
bmcgYXM6CisgKgorICogICBXQiA9IG5vbmUgKHNvIFBBVDApCisgKiAgIFdDID0gUFdUIChiaXQg
MyBvbikKKyAqICAgVUMgPSBQV1QgfCBQQ0QgKGJpdCAzIGFuZCA0IGFyZSBvbikuCisgKgorICog
VG8gbWFrZSBpdCB3b3JrIHdpdGggWGVuLCBpdCBuZWVkcyB0byB0cmFuc2xhdGUgdGhlIFdDIGJp
dCBhcyBzbzoKKyAqCisgKiAgUFdUIChzbyBiaXQgMyBvbikgLS0+IFBBVCAoc28gYml0IDcgaXMg
b24pIGFuZCBjbGVhciBiaXQgMworICoKKyAqIEFuZCB0byB0cmFuc2xhdGUgYmFjayBpdCB3b3Vs
ZDoKKyAqCisgKiBQQVQgKGJpdCA3IG9uKSAtLT4gUFdUIChiaXQgMyBvbikgYW5kIGNsZWFyIGJp
dCA3LgorICovCisjZGVmaW5lIE1NVV9OT1JNQUxfUFRfVVBEQVRFICAgICAgMCAvKiBjaGVja2Vk
ICcqcHRyID0gdmFsJy4gcHRyIGlzIE1BLiAgICAgICovCisjZGVmaW5lIE1NVV9NQUNIUEhZU19V
UERBVEUgICAgICAgMSAvKiBwdHIgPSBNQSBvZiBmcmFtZSB0byBtb2RpZnkgZW50cnkgZm9yICov
CisjZGVmaW5lIE1NVV9QVF9VUERBVEVfUFJFU0VSVkVfQUQgMiAvKiBhdG9taWNhbGx5OiAqcHRy
ID0gdmFsIHwgKCpwdHImKEF8RCkpICovCisKKy8qCisgKiBNTVUgRVhURU5ERUQgT1BFUkFUSU9O
UworICoKKyAqIGAgZW51bSBuZWdfZXJybm92YWwKKyAqIGAgSFlQRVJWSVNPUl9tbXVleHRfb3Ao
bW11ZXh0X29wX3QgdW9wc1tdLAorICogYCAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp
bnQgY291bnQsCisgKiBgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqcGRvbmUs
CisgKiBgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBmb3JlaWduZG9tKQorICov
CisvKiBIWVBFUlZJU09SX21tdWV4dF9vcCgpIGFjY2VwdHMgYSBsaXN0IG9mIG1tdWV4dF9vcCBz
dHJ1Y3R1cmVzLgorICogQSBmb3JlaWduZG9tIChGRCkgY2FuIGJlIHNwZWNpZmllZCAob3IgRE9N
SURfU0VMRiBmb3Igbm9uZSkuCisgKiBXaGVyZSB0aGUgRkQgaGFzIHNvbWUgZWZmZWN0LCBpdCBp
cyBkZXNjcmliZWQgYmVsb3cuCisgKgorICogY21kOiBNTVVFWFRfKFVOKVBJTl8qX1RBQkxFCisg
KiBtZm46IE1hY2hpbmUgZnJhbWUgbnVtYmVyIHRvIGJlICh1bilwaW5uZWQgYXMgYSBwLnQuIHBh
Z2UuCisgKiAgICAgIFRoZSBmcmFtZSBtdXN0IGJlbG9uZyB0byB0aGUgRkQsIGlmIG9uZSBpcyBz
cGVjaWZpZWQuCisgKgorICogY21kOiBNTVVFWFRfTkVXX0JBU0VQVFIKKyAqIG1mbjogTWFjaGlu
ZSBmcmFtZSBudW1iZXIgb2YgbmV3IHBhZ2UtdGFibGUgYmFzZSB0byBpbnN0YWxsIGluIE1NVS4K
KyAqCisgKiBjbWQ6IE1NVUVYVF9ORVdfVVNFUl9CQVNFUFRSIFt4ODYvNjQgb25seV0KKyAqIG1m
bjogTWFjaGluZSBmcmFtZSBudW1iZXIgb2YgbmV3IHBhZ2UtdGFibGUgYmFzZSB0byBpbnN0YWxs
IGluIE1NVQorICogICAgICB3aGVuIGluIHVzZXIgc3BhY2UuCisgKgorICogY21kOiBNTVVFWFRf
VExCX0ZMVVNIX0xPQ0FMCisgKiBObyBhZGRpdGlvbmFsIGFyZ3VtZW50cy4gRmx1c2hlcyBsb2Nh
bCBUTEIuCisgKgorICogY21kOiBNTVVFWFRfSU5WTFBHX0xPQ0FMCisgKiBsaW5lYXJfYWRkcjog
TGluZWFyIGFkZHJlc3MgdG8gYmUgZmx1c2hlZCBmcm9tIHRoZSBsb2NhbCBUTEIuCisgKgorICog
Y21kOiBNTVVFWFRfVExCX0ZMVVNIX01VTFRJCisgKiB2Y3B1bWFzazogUG9pbnRlciB0byBiaXRt
YXAgb2YgVkNQVXMgdG8gYmUgZmx1c2hlZC4KKyAqCisgKiBjbWQ6IE1NVUVYVF9JTlZMUEdfTVVM
VEkKKyAqIGxpbmVhcl9hZGRyOiBMaW5lYXIgYWRkcmVzcyB0byBiZSBmbHVzaGVkLgorICogdmNw
dW1hc2s6IFBvaW50ZXIgdG8gYml0bWFwIG9mIFZDUFVzIHRvIGJlIGZsdXNoZWQuCisgKgorICog
Y21kOiBNTVVFWFRfVExCX0ZMVVNIX0FMTAorICogTm8gYWRkaXRpb25hbCBhcmd1bWVudHMuIEZs
dXNoZXMgYWxsIFZDUFVzJyBUTEJzLgorICoKKyAqIGNtZDogTU1VRVhUX0lOVkxQR19BTEwKKyAq
IGxpbmVhcl9hZGRyOiBMaW5lYXIgYWRkcmVzcyB0byBiZSBmbHVzaGVkIGZyb20gYWxsIFZDUFVz
JyBUTEJzLgorICoKKyAqIGNtZDogTU1VRVhUX0ZMVVNIX0NBQ0hFCisgKiBObyBhZGRpdGlvbmFs
IGFyZ3VtZW50cy4gV3JpdGVzIGJhY2sgYW5kIGZsdXNoZXMgY2FjaGUgY29udGVudHMuCisgKgor
ICogY21kOiBNTVVFWFRfRkxVU0hfQ0FDSEVfR0xPQkFMCisgKiBObyBhZGRpdGlvbmFsIGFyZ3Vt
ZW50cy4gV3JpdGVzIGJhY2sgYW5kIGZsdXNoZXMgY2FjaGUgY29udGVudHMKKyAqIG9uIGFsbCBD
UFVzIGluIHRoZSBzeXN0ZW0uCisgKgorICogY21kOiBNTVVFWFRfU0VUX0xEVAorICogbGluZWFy
X2FkZHI6IExpbmVhciBhZGRyZXNzIG9mIExEVCBiYXNlIChOQi4gbXVzdCBiZSBwYWdlLWFsaWdu
ZWQpLgorICogbnJfZW50czogTnVtYmVyIG9mIGVudHJpZXMgaW4gTERULgorICoKKyAqIGNtZDog
TU1VRVhUX0NMRUFSX1BBR0UKKyAqIG1mbjogTWFjaGluZSBmcmFtZSBudW1iZXIgdG8gYmUgY2xl
YXJlZC4KKyAqCisgKiBjbWQ6IE1NVUVYVF9DT1BZX1BBR0UKKyAqIG1mbjogTWFjaGluZSBmcmFt
ZSBudW1iZXIgb2YgdGhlIGRlc3RpbmF0aW9uIHBhZ2UuCisgKiBzcmNfbWZuOiBNYWNoaW5lIGZy
YW1lIG51bWJlciBvZiB0aGUgc291cmNlIHBhZ2UuCisgKgorICogY21kOiBNTVVFWFRfW1VOXU1B
UktfU1VQRVIKKyAqIG1mbjogTWFjaGluZSBmcmFtZSBudW1iZXIgb2YgaGVhZCBvZiBzdXBlcnBh
Z2UgdG8gYmUgW3VuXW1hcmtlZC4KKyAqLworLyogYCBlbnVtIG1tdWV4dF9jbWQgeyAqLworI2Rl
ZmluZSBNTVVFWFRfUElOX0wxX1RBQkxFICAgICAgMAorI2RlZmluZSBNTVVFWFRfUElOX0wyX1RB
QkxFICAgICAgMQorI2RlZmluZSBNTVVFWFRfUElOX0wzX1RBQkxFICAgICAgMgorI2RlZmluZSBN
TVVFWFRfUElOX0w0X1RBQkxFICAgICAgMworI2RlZmluZSBNTVVFWFRfVU5QSU5fVEFCTEUgICAg
ICAgNAorI2RlZmluZSBNTVVFWFRfTkVXX0JBU0VQVFIgICAgICAgNQorI2RlZmluZSBNTVVFWFRf
VExCX0ZMVVNIX0xPQ0FMICAgNgorI2RlZmluZSBNTVVFWFRfSU5WTFBHX0xPQ0FMICAgICAgNwor
I2RlZmluZSBNTVVFWFRfVExCX0ZMVVNIX01VTFRJICAgOAorI2RlZmluZSBNTVVFWFRfSU5WTFBH
X01VTFRJICAgICAgOQorI2RlZmluZSBNTVVFWFRfVExCX0ZMVVNIX0FMTCAgICAxMAorI2RlZmlu
ZSBNTVVFWFRfSU5WTFBHX0FMTCAgICAgICAxMQorI2RlZmluZSBNTVVFWFRfRkxVU0hfQ0FDSEUg
ICAgICAxMgorI2RlZmluZSBNTVVFWFRfU0VUX0xEVCAgICAgICAgICAxMworI2RlZmluZSBNTVVF
WFRfTkVXX1VTRVJfQkFTRVBUUiAxNQorI2RlZmluZSBNTVVFWFRfQ0xFQVJfUEFHRSAgICAgICAx
NgorI2RlZmluZSBNTVVFWFRfQ09QWV9QQUdFICAgICAgICAxNworI2RlZmluZSBNTVVFWFRfRkxV
U0hfQ0FDSEVfR0xPQkFMIDE4CisjZGVmaW5lIE1NVUVYVF9NQVJLX1NVUEVSICAgICAgIDE5Cisj
ZGVmaW5lIE1NVUVYVF9VTk1BUktfU1VQRVIgICAgIDIwCisvKiBgIH0gKi8KKworI2lmbmRlZiBf
X0FTU0VNQkxZX18KK3N0cnVjdCBtbXVleHRfb3AgeworICAgIHVuc2lnbmVkIGludCBjbWQ7IC8q
ID0+IGVudW0gbW11ZXh0X2NtZCAqLworICAgIHVuaW9uIHsKKyAgICAgICAgLyogW1VOXVBJTl9U
QUJMRSwgTkVXX0JBU0VQVFIsIE5FV19VU0VSX0JBU0VQVFIKKyAgICAgICAgICogQ0xFQVJfUEFH
RSwgQ09QWV9QQUdFLCBbVU5dTUFSS19TVVBFUiAqLworICAgICAgICB4ZW5fcGZuX3QgICAgIG1m
bjsKKyAgICAgICAgLyogSU5WTFBHX0xPQ0FMLCBJTlZMUEdfQUxMLCBTRVRfTERUICovCisgICAg
ICAgIFVMT05HX1BUUiBsaW5lYXJfYWRkcjsKKyAgICB9IGFyZzE7CisgICAgdW5pb24geworICAg
ICAgICAvKiBTRVRfTERUICovCisgICAgICAgIHVuc2lnbmVkIGludCBucl9lbnRzOworICAgICAg
ICAvKiBUTEJfRkxVU0hfTVVMVEksIElOVkxQR19NVUxUSSAqLworI2lmIF9fWEVOX0lOVEVSRkFD
RV9WRVJTSU9OX18gPj0gMHgwMDAzMDIwNQorICAgICAgICBYRU5fR1VFU1RfSEFORExFKGNvbnN0
X3ZvaWQpIHZjcHVtYXNrOworI2Vsc2UKKyAgICAgICAgY29uc3Qgdm9pZCAqdmNwdW1hc2s7Cisj
ZW5kaWYKKyAgICAgICAgLyogQ09QWV9QQUdFICovCisgICAgICAgIHhlbl9wZm5fdCBzcmNfbWZu
OworICAgIH0gYXJnMjsKK307Cit0eXBlZGVmIHN0cnVjdCBtbXVleHRfb3AgbW11ZXh0X29wX3Q7
CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShtbXVleHRfb3BfdCk7CisjZW5kaWYKKworLyoKKyAq
IGAgZW51bSBuZWdfZXJybm92YWwKKyAqIGAgSFlQRVJWSVNPUl91cGRhdGVfdmFfbWFwcGluZyhV
TE9OR19QVFIgdmEsIHU2NCB2YWwsCisgKiBgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZW51bSB1dm1fZmxhZ3MgZmxhZ3MpCisgKiBgCisgKiBgIGVudW0gbmVnX2Vycm5vdmFsCisgKiBg
IEhZUEVSVklTT1JfdXBkYXRlX3ZhX21hcHBpbmdfb3RoZXJkb21haW4oVUxPTkdfUFRSIHZhLCB1
NjQgdmFsLAorICogYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVu
dW0gdXZtX2ZsYWdzIGZsYWdzLAorICogYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRvbWlkX3QgZG9taWQpCisgKiBgCisgKiBgIEB2YTogVGhlIHZpcnR1YWwgYWRk
cmVzcyB3aG9zZSBtYXBwaW5nIHdlIHdhbnQgdG8gY2hhbmdlCisgKiBgIEB2YWw6IFRoZSBuZXcg
cGFnZSB0YWJsZSBlbnRyeSwgbXVzdCBjb250YWluIGEgbWFjaGluZSBhZGRyZXNzCisgKiBgIEBm
bGFnczogQ29udHJvbCBUTEIgZmx1c2hlcworICovCisvKiBUaGVzZSBhcmUgcGFzc2VkIGFzICdm
bGFncycgdG8gdXBkYXRlX3ZhX21hcHBpbmcuIFRoZXkgY2FuIGJlIE9SZWQuICovCisvKiBXaGVu
IHNwZWNpZnlpbmcgVVZNRl9NVUxUSSwgYWxzbyBPUiBpbiBhIHBvaW50ZXIgdG8gYSBDUFUgYml0
bWFwLiAgICovCisvKiBVVk1GX0xPQ0FMIGlzIG1lcmVseSBVVk1GX01VTFRJIHdpdGggYSBOVUxM
IGJpdG1hcCBwb2ludGVyLiAgICAgICAgICovCisvKiBgIGVudW0gdXZtX2ZsYWdzIHsgKi8KKyNk
ZWZpbmUgVVZNRl9OT05FICAgICAgICAgICAoeGVuX21rX3Vsb25nKDApPDwwKSAvKiBObyBmbHVz
aGluZyBhdCBhbGwuICAgKi8KKyNkZWZpbmUgVVZNRl9UTEJfRkxVU0ggICAgICAoeGVuX21rX3Vs
b25nKDEpPDwwKSAvKiBGbHVzaCBlbnRpcmUgVExCKHMpLiAgKi8KKyNkZWZpbmUgVVZNRl9JTlZM
UEcgICAgICAgICAoeGVuX21rX3Vsb25nKDIpPDwwKSAvKiBGbHVzaCBvbmx5IG9uZSBlbnRyeS4g
Ki8KKyNkZWZpbmUgVVZNRl9GTFVTSFRZUEVfTUFTSyAoeGVuX21rX3Vsb25nKDMpPDwwKQorI2Rl
ZmluZSBVVk1GX01VTFRJICAgICAgICAgICh4ZW5fbWtfdWxvbmcoMCk8PDIpIC8qIEZsdXNoIHN1
YnNldCBvZiBUTEJzLiAqLworI2RlZmluZSBVVk1GX0xPQ0FMICAgICAgICAgICh4ZW5fbWtfdWxv
bmcoMCk8PDIpIC8qIEZsdXNoIGxvY2FsIFRMQi4gICAgICAqLworI2RlZmluZSBVVk1GX0FMTCAg
ICAgICAgICAgICh4ZW5fbWtfdWxvbmcoMSk8PDIpIC8qIEZsdXNoIGFsbCBUTEJzLiAgICAgICAq
LworLyogYCB9ICovCisKKy8qCisgKiBDb21tYW5kcyB0byBIWVBFUlZJU09SX2NvbnNvbGVfaW8o
KS4KKyAqLworI2RlZmluZSBDT05TT0xFSU9fd3JpdGUgICAgICAgICAwCisjZGVmaW5lIENPTlNP
TEVJT19yZWFkICAgICAgICAgIDEKKworLyoKKyAqIENvbW1hbmRzIHRvIEhZUEVSVklTT1Jfdm1f
YXNzaXN0KCkuCisgKi8KKyNkZWZpbmUgVk1BU1NUX0NNRF9lbmFibGUgICAgICAgICAgICAgICAg
MAorI2RlZmluZSBWTUFTU1RfQ01EX2Rpc2FibGUgICAgICAgICAgICAgICAxCisKKy8qIHg4Ni8z
MiBndWVzdHM6IHNpbXVsYXRlIGZ1bGwgNEdCIHNlZ21lbnQgbGltaXRzLiAqLworI2RlZmluZSBW
TUFTU1RfVFlQRV80Z2Jfc2VnbWVudHMgICAgICAgICAwCisKKy8qIHg4Ni8zMiBndWVzdHM6IHRy
YXAgKHZlY3RvciAxNSkgd2hlbmV2ZXIgYWJvdmUgdm1hc3Npc3QgaXMgdXNlZC4gKi8KKyNkZWZp
bmUgVk1BU1NUX1RZUEVfNGdiX3NlZ21lbnRzX25vdGlmeSAgMQorCisvKgorICogeDg2IGd1ZXN0
czogc3VwcG9ydCB3cml0ZXMgdG8gYm90dG9tLWxldmVsIFBURXMuCisgKiBOQjEuIFBhZ2UtZGly
ZWN0b3J5IGVudHJpZXMgY2Fubm90IGJlIHdyaXR0ZW4uCisgKiBOQjIuIEd1ZXN0IG11c3QgY29u
dGludWUgdG8gcmVtb3ZlIGFsbCB3cml0YWJsZSBtYXBwaW5ncyBvZiBQVEVzLgorICovCisjZGVm
aW5lIFZNQVNTVF9UWVBFX3dyaXRhYmxlX3BhZ2V0YWJsZXMgIDIKKworLyogeDg2L1BBRSBndWVz
dHM6IHN1cHBvcnQgUERQVHMgYWJvdmUgNEdCLiAqLworI2RlZmluZSBWTUFTU1RfVFlQRV9wYWVf
ZXh0ZW5kZWRfY3IzICAgICAzCisKKy8qCisgKiB4ODYgZ3Vlc3RzOiBTYW5lIGJlaGF2aW91ciBm
b3IgdmlydHVhbCBpb3BsCisgKiAgLSB2aXJ0dWFsIGlvcGwgdXBkYXRlZCBmcm9tIGRvX2lyZXQo
KSBoeXBlcmNhbGxzLgorICogIC0gdmlydHVhbCBpb3BsIHJlcG9ydGVkIGluIGJvdW5jZSBmcmFt
ZXMuCisgKiAgLSBndWVzdCBrZXJuZWxzIGFzc3VtZWQgdG8gYmUgbGV2ZWwgMCBmb3IgdGhlIHB1
cnBvc2Ugb2YgaW9wbCBjaGVja3MuCisgKi8KKyNkZWZpbmUgVk1BU1NUX1RZUEVfYXJjaGl0ZWN0
dXJhbF9pb3BsICAgNAorCisvKgorICogeDg2LzY0IGd1ZXN0czogc3RyaWN0bHkgaGlkZSBNMlAg
ZnJvbSB1c2VyIG1vZGUuCisgKiBUaGlzIGFsbG93cyB0aGUgZ3Vlc3QgdG8gY29udHJvbCByZXNw
ZWN0aXZlIGh5cGVydmlzb3IgYmVoYXZpb3I6CisgKiAtIHdoZW4gbm90IHNldCwgTDQgdGFibGVz
IGdldCBjcmVhdGVkIHdpdGggdGhlIHJlc3BlY3RpdmUgc2xvdCBibGFuaywKKyAqICAgYW5kIHdo
ZW5ldmVyIHRoZSBMNCB0YWJsZSBnZXRzIHVzZWQgYXMgYSBrZXJuZWwgb25lIHRoZSBtaXNzaW5n
CisgKiAgIG1hcHBpbmcgZ2V0cyBpbnNlcnRlZCwKKyAqIC0gd2hlbiBzZXQsIEw0IHRhYmxlcyBn
ZXQgY3JlYXRlZCB3aXRoIHRoZSByZXNwZWN0aXZlIHNsb3QgaW5pdGlhbGl6ZWQKKyAqICAgYXMg
YmVmb3JlLCBhbmQgd2hlbmV2ZXIgdGhlIEw0IHRhYmxlIGdldHMgdXNlZCBhcyBhIHVzZXIgb25l
IHRoZQorICogICBtYXBwaW5nIGdldHMgemFwcGVkLgorICovCisjZGVmaW5lIFZNQVNTVF9UWVBF
X20ycF9zdHJpY3QgICAgICAgICAgIDMyCisKKyNpZiBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9f
IDwgMHgwMDA0MDYwMAorI2RlZmluZSBNQVhfVk1BU1NUX1RZUEUgICAgICAgICAgICAgICAgICAz
CisjZW5kaWYKKworLyogRG9tYWluIGlkcyA+PSBET01JRF9GSVJTVF9SRVNFUlZFRCBjYW5ub3Qg
YmUgdXNlZCBmb3Igb3JkaW5hcnkgZG9tYWlucy4gKi8KKyNkZWZpbmUgRE9NSURfRklSU1RfUkVT
RVJWRUQgeGVuX21rX3VpbnQoMHg3RkYwKQorCisvKiBET01JRF9TRUxGIGlzIHVzZWQgaW4gY2Vy
dGFpbiBjb250ZXh0cyB0byByZWZlciB0byBvbmVzZWxmLiAqLworI2RlZmluZSBET01JRF9TRUxG
ICAgICAgICAgICB4ZW5fbWtfdWludCgweDdGRjApCisKKy8qCisgKiBET01JRF9JTyBpcyB1c2Vk
IHRvIHJlc3RyaWN0IHBhZ2UtdGFibGUgdXBkYXRlcyB0byBtYXBwaW5nIEkvTyBtZW1vcnkuCisg
KiBBbHRob3VnaCBubyBGb3JlaWduIERvbWFpbiBuZWVkIGJlIHNwZWNpZmllZCB0byBtYXAgSS9P
IHBhZ2VzLCBET01JRF9JTworICogaXMgdXNlZnVsIHRvIGVuc3VyZSB0aGF0IG5vIG1hcHBpbmdz
IHRvIHRoZSBPUydzIG93biBoZWFwIGFyZSBhY2NpZGVudGFsbHkKKyAqIGluc3RhbGxlZC4gKGUu
Zy4sIGluIExpbnV4IHRoaXMgY291bGQgY2F1c2UgaGF2b2MgYXMgcmVmZXJlbmNlIGNvdW50cwor
ICogYXJlbid0IGFkanVzdGVkIG9uIHRoZSBJL08tbWFwcGluZyBjb2RlIHBhdGgpLgorICogVGhp
cyBvbmx5IG1ha2VzIHNlbnNlIGluIE1NVUVYVF9TRVRfRk9SRUlHTkRPTSwgYnV0IGluIHRoYXQg
Y29udGV4dCBjYW4KKyAqIGJlIHNwZWNpZmllZCBieSBhbnkgY2FsbGluZyBkb21haW4uCisgKi8K
KyNkZWZpbmUgRE9NSURfSU8gICAgICAgICAgICAgeGVuX21rX3VpbnQoMHg3RkYxKQorCisvKgor
ICogRE9NSURfWEVOIGlzIHVzZWQgdG8gYWxsb3cgcHJpdmlsZWdlZCBkb21haW5zIHRvIG1hcCBy
ZXN0cmljdGVkIHBhcnRzIG9mCisgKiBYZW4ncyBoZWFwIHNwYWNlIChlLmcuLCB0aGUgbWFjaGlu
ZV90b19waHlzIHRhYmxlKS4KKyAqIFRoaXMgb25seSBtYWtlcyBzZW5zZSBpbiBNTVVFWFRfU0VU
X0ZPUkVJR05ET00sIGFuZCBpcyBvbmx5IHBlcm1pdHRlZCBpZgorICogdGhlIGNhbGxlciBpcyBw
cml2aWxlZ2VkLgorICovCisjZGVmaW5lIERPTUlEX1hFTiAgICAgICAgICAgIHhlbl9ta191aW50
KDB4N0ZGMikKKworLyoKKyAqIERPTUlEX0NPVyBpcyB1c2VkIGFzIHRoZSBvd25lciBvZiBzaGFy
YWJsZSBwYWdlcyAqLworI2RlZmluZSBET01JRF9DT1cgICAgICAgICAgICB4ZW5fbWtfdWludCgw
eDdGRjMpCisKKy8qIERPTUlEX0lOVkFMSUQgaXMgdXNlZCB0byBpZGVudGlmeSBwYWdlcyB3aXRo
IHVua25vd24gb3duZXIuICovCisjZGVmaW5lIERPTUlEX0lOVkFMSUQgICAgICAgIHhlbl9ta191
aW50KDB4N0ZGNCkKKworLyogSWRsZSBkb21haW4uICovCisjZGVmaW5lIERPTUlEX0lETEUgICAg
ICAgICAgIHhlbl9ta191aW50KDB4N0ZGRikKKworI2lmbmRlZiBfX0FTU0VNQkxZX18KKwordHlw
ZWRlZiB1aW50MTZfdCBkb21pZF90OworCisvKgorICogU2VuZCBhbiBhcnJheSBvZiB0aGVzZSB0
byBIWVBFUlZJU09SX21tdV91cGRhdGUoKS4KKyAqIE5CLiBUaGUgZmllbGRzIGFyZSBuYXR1cmFs
IHBvaW50ZXIvYWRkcmVzcyBzaXplIGZvciB0aGlzIGFyY2hpdGVjdHVyZS4KKyAqLworc3RydWN0
IG1tdV91cGRhdGUgeworICAgIHVpbnQ2NF90IHB0cjsgICAgICAgLyogTWFjaGluZSBhZGRyZXNz
IG9mIFBURS4gKi8KKyAgICB1aW50NjRfdCB2YWw7ICAgICAgIC8qIE5ldyBjb250ZW50cyBvZiBQ
VEUuICAgICovCit9OwordHlwZWRlZiBzdHJ1Y3QgbW11X3VwZGF0ZSBtbXVfdXBkYXRlX3Q7CitE
RUZJTkVfWEVOX0dVRVNUX0hBTkRMRShtbXVfdXBkYXRlX3QpOworCisvKgorICogYCBlbnVtIG5l
Z19lcnJub3ZhbAorICogYCBIWVBFUlZJU09SX211bHRpY2FsbChtdWx0aWNhbGxfZW50cnlfdCBj
YWxsX2xpc3RbXSwKKyAqIGAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgbnJfY2FsbHMp
OworICoKKyAqIE5CLiBUaGUgZmllbGRzIGFyZSBsb2dpY2FsbHkgdGhlIG5hdHVyYWwgcmVnaXN0
ZXIgc2l6ZSBmb3IgdGhpcworICogYXJjaGl0ZWN0dXJlLiBJbiBjYXNlcyB3aGVyZSB4ZW5fdWxv
bmdfdCBpcyBsYXJnZXIgdGhhbiB0aGlzIHRoZW4KKyAqIGFueSB1bnVzZWQgYml0cyBpbiB0aGUg
dXBwZXIgcG9ydGlvbiBtdXN0IGJlIHplcm8uCisgKi8KK3N0cnVjdCBtdWx0aWNhbGxfZW50cnkg
eworICAgIHhlbl91bG9uZ190IG9wLCByZXN1bHQ7CisgICAgeGVuX3Vsb25nX3QgYXJnc1s2XTsK
K307Cit0eXBlZGVmIHN0cnVjdCBtdWx0aWNhbGxfZW50cnkgbXVsdGljYWxsX2VudHJ5X3Q7CitE
RUZJTkVfWEVOX0dVRVNUX0hBTkRMRShtdWx0aWNhbGxfZW50cnlfdCk7CisKKyNpZiBfX1hFTl9J
TlRFUkZBQ0VfVkVSU0lPTl9fIDwgMHgwMDA0MDQwMAorLyoKKyAqIEV2ZW50IGNoYW5uZWwgZW5k
cG9pbnRzIHBlciBkb21haW4gKHdoZW4gdXNpbmcgdGhlIDItbGV2ZWwgQUJJKToKKyAqICAxMDI0
IGlmIGEgTE9OR19QVFIgaXMgMzIgYml0czsgNDA5NiBpZiBhIExPTkdfUFRSIGlzIDY0IGJpdHMu
CisgKi8KKyNkZWZpbmUgTlJfRVZFTlRfQ0hBTk5FTFMgRVZUQ0hOXzJMX05SX0NIQU5ORUxTCisj
ZW5kaWYKKworc3RydWN0IHZjcHVfdGltZV9pbmZvIHsKKyAgICAvKgorICAgICAqIFVwZGF0ZXMg
dG8gdGhlIGZvbGxvd2luZyB2YWx1ZXMgYXJlIHByZWNlZGVkIGFuZCBmb2xsb3dlZCBieSBhbgor
ICAgICAqIGluY3JlbWVudCBvZiAndmVyc2lvbicuIFRoZSBndWVzdCBjYW4gdGhlcmVmb3JlIGRl
dGVjdCB1cGRhdGVzIGJ5CisgICAgICogbG9va2luZyBmb3IgY2hhbmdlcyB0byAndmVyc2lvbicu
IElmIHRoZSBsZWFzdC1zaWduaWZpY2FudCBiaXQgb2YKKyAgICAgKiB0aGUgdmVyc2lvbiBudW1i
ZXIgaXMgc2V0IHRoZW4gYW4gdXBkYXRlIGlzIGluIHByb2dyZXNzIGFuZCB0aGUgZ3Vlc3QKKyAg
ICAgKiBtdXN0IHdhaXQgdG8gcmVhZCBhIGNvbnNpc3RlbnQgc2V0IG9mIHZhbHVlcy4KKyAgICAg
KiBUaGUgY29ycmVjdCB3YXkgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgdmVyc2lvbiBudW1iZXIgaXMg
c2ltaWxhciB0bworICAgICAqIExpbnV4J3Mgc2VxbG9jazogc2VlIHRoZSBpbXBsZW1lbnRhdGlv
bnMgb2YgcmVhZF9zZXFiZWdpbi9yZWFkX3NlcXJldHJ5LgorICAgICAqLworICAgIHVpbnQzMl90
IHZlcnNpb247CisgICAgdWludDMyX3QgcGFkMDsKKyAgICB1aW50NjRfdCB0c2NfdGltZXN0YW1w
OyAgIC8qIFRTQyBhdCBsYXN0IHVwZGF0ZSBvZiB0aW1lIHZhbHMuICAqLworICAgIHVpbnQ2NF90
IHN5c3RlbV90aW1lOyAgICAgLyogVGltZSwgaW4gbmFub3NlY3MsIHNpbmNlIGJvb3QuICAgICov
CisgICAgLyoKKyAgICAgKiBDdXJyZW50IHN5c3RlbSB0aW1lOgorICAgICAqICAgc3lzdGVtX3Rp
bWUgKworICAgICAqICAgKCgoKHRzYyAtIHRzY190aW1lc3RhbXApIDw8IHRzY19zaGlmdCkgKiB0
c2NfdG9fc3lzdGVtX211bCkgPj4gMzIpCisgICAgICogQ1BVIGZyZXF1ZW5jeSAoSHopOgorICAg
ICAqICAgKCgxMF45IDw8IDMyKSAvIHRzY190b19zeXN0ZW1fbXVsKSA+PiB0c2Nfc2hpZnQKKyAg
ICAgKi8KKyAgICB1aW50MzJfdCB0c2NfdG9fc3lzdGVtX211bDsKKyAgICBpbnQ4X3QgICB0c2Nf
c2hpZnQ7CisjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA+IDB4MDQwNjAwCisgICAgdWlu
dDhfdCAgZmxhZ3M7CisgICAgdWludDhfdCAgcGFkMVsyXTsKKyNlbHNlCisgICAgaW50OF90ICAg
cGFkMVszXTsKKyNlbmRpZgorfTsgLyogMzIgYnl0ZXMgKi8KK3R5cGVkZWYgc3RydWN0IHZjcHVf
dGltZV9pbmZvIHZjcHVfdGltZV9pbmZvX3Q7CisKKyNkZWZpbmUgWEVOX1BWQ0xPQ0tfVFNDX1NU
QUJMRV9CSVQgICAgICgxIDw8IDApCisjZGVmaW5lIFhFTl9QVkNMT0NLX0dVRVNUX1NUT1BQRUQg
ICAgICAoMSA8PCAxKQorCitzdHJ1Y3QgdmNwdV9pbmZvIHsKKyAgICAvKgorICAgICAqICdldnRj
aG5fdXBjYWxsX3BlbmRpbmcnIGlzIHdyaXR0ZW4gbm9uLXplcm8gYnkgWGVuIHRvIGluZGljYXRl
CisgICAgICogYSBwZW5kaW5nIG5vdGlmaWNhdGlvbiBmb3IgYSBwYXJ0aWN1bGFyIFZDUFUuIEl0
IGlzIHRoZW4gY2xlYXJlZAorICAgICAqIGJ5IHRoZSBndWVzdCBPUyAvYmVmb3JlLyBjaGVja2lu
ZyBmb3IgcGVuZGluZyB3b3JrLCB0aHVzIGF2b2lkaW5nCisgICAgICogYSBzZXQtYW5kLWNoZWNr
IHJhY2UuIE5vdGUgdGhhdCB0aGUgbWFzayBpcyBvbmx5IGFjY2Vzc2VkIGJ5IFhlbgorICAgICAq
IG9uIHRoZSBDUFUgdGhhdCBpcyBjdXJyZW50bHkgaG9zdGluZyB0aGUgVkNQVS4gVGhpcyBtZWFu
cyB0aGF0IHRoZQorICAgICAqIHBlbmRpbmcgYW5kIG1hc2sgZmxhZ3MgY2FuIGJlIHVwZGF0ZWQg
YnkgdGhlIGd1ZXN0IHdpdGhvdXQgc3BlY2lhbAorICAgICAqIHN5bmNocm9uaXNhdGlvbiAoaS5l
Liwgbm8gbmVlZCBmb3IgdGhlIHg4NiBMT0NLIHByZWZpeCkuCisgICAgICogVGhpcyBtYXkgc2Vl
bSBzdWJvcHRpbWFsIGJlY2F1c2UgaWYgdGhlIHBlbmRpbmcgZmxhZyBpcyBzZXQgYnkKKyAgICAg
KiBhIGRpZmZlcmVudCBDUFUgdGhlbiBhbiBJUEkgbWF5IGJlIHNjaGVkdWxlZCBldmVuIHdoZW4g
dGhlIG1hc2sKKyAgICAgKiBpcyBzZXQuIEhvd2V2ZXIsIG5vdGU6CisgICAgICogIDEuIFRoZSB0
YXNrIG9mICdpbnRlcnJ1cHQgaG9sZG9mZicgaXMgY292ZXJlZCBieSB0aGUgcGVyLWV2ZW50LQor
ICAgICAqICAgICBjaGFubmVsIG1hc2sgYml0cy4gQSAnbm9pc3knIGV2ZW50IHRoYXQgaXMgY29u
dGludWFsbHkgYmVpbmcKKyAgICAgKiAgICAgdHJpZ2dlcmVkIGNhbiBiZSBtYXNrZWQgYXQgc291
cmNlIGF0IHRoaXMgdmVyeSBwcmVjaXNlCisgICAgICogICAgIGdyYW51bGFyaXR5LgorICAgICAq
ICAyLiBUaGUgbWFpbiBwdXJwb3NlIG9mIHRoZSBwZXItVkNQVSBtYXNrIGlzIHRoZXJlZm9yZSB0
byByZXN0cmljdAorICAgICAqICAgICByZWVudHJhbnQgZXhlY3V0aW9uOiB3aGV0aGVyIGZvciBj
b25jdXJyZW5jeSBjb250cm9sLCBvciB0bworICAgICAqICAgICBwcmV2ZW50IHVuYm91bmRlZCBz
dGFjayB1c2FnZS4gV2hhdGV2ZXIgdGhlIHB1cnBvc2UsIHdlIGV4cGVjdAorICAgICAqICAgICB0
aGF0IHRoZSBtYXNrIHdpbGwgYmUgYXNzZXJ0ZWQgb25seSBmb3Igc2hvcnQgcGVyaW9kcyBhdCBh
IHRpbWUsCisgICAgICogICAgIGFuZCBzbyB0aGUgbGlrZWxpaG9vZCBvZiBhICdzcHVyaW91cycg
SVBJIGlzIHN1aXRhYmx5IHNtYWxsLgorICAgICAqIFRoZSBtYXNrIGlzIHJlYWQgYmVmb3JlIG1h
a2luZyBhbiBldmVudCB1cGNhbGwgdG8gdGhlIGd1ZXN0OiBhCisgICAgICogbm9uLXplcm8gbWFz
ayB0aGVyZWZvcmUgZ3VhcmFudGVlcyB0aGF0IHRoZSBWQ1BVIHdpbGwgbm90IHJlY2VpdmUKKyAg
ICAgKiBhbiB1cGNhbGwgYWN0aXZhdGlvbi4gVGhlIG1hc2sgaXMgY2xlYXJlZCB3aGVuIHRoZSBW
Q1BVIHJlcXVlc3RzCisgICAgICogdG8gYmxvY2s6IHRoaXMgYXZvaWRzIHdha2V1cC13YWl0aW5n
IHJhY2VzLgorICAgICAqLworICAgIHVpbnQ4X3QgZXZ0Y2huX3VwY2FsbF9wZW5kaW5nOworI2lm
ZGVmIFhFTl9IQVZFX1BWX1VQQ0FMTF9NQVNLCisgICAgdWludDhfdCBldnRjaG5fdXBjYWxsX21h
c2s7CisjZWxzZSAvKiBYRU5fSEFWRV9QVl9VUENBTExfTUFTSyAqLworICAgIHVpbnQ4X3QgcGFk
MDsKKyNlbmRpZiAvKiBYRU5fSEFWRV9QVl9VUENBTExfTUFTSyAqLworICAgIHhlbl91bG9uZ190
IGV2dGNobl9wZW5kaW5nX3NlbDsKKyAgICBzdHJ1Y3QgYXJjaF92Y3B1X2luZm8gYXJjaDsKKyAg
ICBzdHJ1Y3QgdmNwdV90aW1lX2luZm8gdGltZTsKK307IC8qIDY0IGJ5dGVzICh4ODYpICovCisj
aWZuZGVmIF9fWEVOX18KK3R5cGVkZWYgc3RydWN0IHZjcHVfaW5mbyB2Y3B1X2luZm9fdDsKKyNl
bmRpZgorCisvKgorICogYGluY29udGVudHMgMjAwIHN0YXJ0b2ZkYXlfc2hhcmVkIFN0YXJ0LW9m
LWRheSBzaGFyZWQgZGF0YSBzdHJ1Y3R1cmUKKyAqIFhlbi9rZXJuZWwgc2hhcmVkIGRhdGEgLS0g
cG9pbnRlciBwcm92aWRlZCBpbiBzdGFydF9pbmZvLgorICoKKyAqIFRoaXMgc3RydWN0dXJlIGlz
IGRlZmluZWQgdG8gYmUgYm90aCBzbWFsbGVyIHRoYW4gYSBwYWdlLCBhbmQgdGhlCisgKiBvbmx5
IGRhdGEgb24gdGhlIHNoYXJlZCBwYWdlLCBidXQgbWF5IHZhcnkgaW4gYWN0dWFsIHNpemUgZXZl
biB3aXRoaW4KKyAqIGNvbXBhdGlibGUgWGVuIHZlcnNpb25zOyBndWVzdHMgc2hvdWxkIG5vdCBy
ZWx5IG9uIHRoZSBzaXplCisgKiBvZiB0aGlzIHN0cnVjdHVyZSByZW1haW5pbmcgY29uc3RhbnQu
CisgKi8KK3N0cnVjdCBzaGFyZWRfaW5mbyB7CisgICAgc3RydWN0IHZjcHVfaW5mbyB2Y3B1X2lu
Zm9bWEVOX0xFR0FDWV9NQVhfVkNQVVNdOworCisgICAgLyoKKyAgICAgKiBBIGRvbWFpbiBjYW4g
Y3JlYXRlICJldmVudCBjaGFubmVscyIgb24gd2hpY2ggaXQgY2FuIHNlbmQgYW5kIHJlY2VpdmUK
KyAgICAgKiBhc3luY2hyb25vdXMgZXZlbnQgbm90aWZpY2F0aW9ucy4gVGhlcmUgYXJlIHRocmVl
IGNsYXNzZXMgb2YgZXZlbnQgdGhhdAorICAgICAqIGFyZSBkZWxpdmVyZWQgYnkgdGhpcyBtZWNo
YW5pc206CisgICAgICogIDEuIEJpLWRpcmVjdGlvbmFsIGludGVyLSBhbmQgaW50cmEtZG9tYWlu
IGNvbm5lY3Rpb25zLiBEb21haW5zIG11c3QKKyAgICAgKiAgICAgYXJyYW5nZSBvdXQtb2YtYmFu
ZCB0byBzZXQgdXAgYSBjb25uZWN0aW9uICh1c3VhbGx5IGJ5IGFsbG9jYXRpbmcKKyAgICAgKiAg
ICAgYW4gdW5ib3VuZCAnbGlzdGVuZXInIHBvcnQgYW5kIGF2ZXJ0aXNpbmcgdGhhdCB2aWEgYSBz
dG9yYWdlIHNlcnZpY2UKKyAgICAgKiAgICAgc3VjaCBhcyB4ZW5zdG9yZSkuCisgICAgICogIDIu
IFBoeXNpY2FsIGludGVycnVwdHMuIEEgZG9tYWluIHdpdGggc3VpdGFibGUgaGFyZHdhcmUtYWNj
ZXNzCisgICAgICogICAgIHByaXZpbGVnZXMgY2FuIGJpbmQgYW4gZXZlbnQtY2hhbm5lbCBwb3J0
IHRvIGEgcGh5c2ljYWwgaW50ZXJydXB0CisgICAgICogICAgIHNvdXJjZS4KKyAgICAgKiAgMy4g
VmlydHVhbCBpbnRlcnJ1cHRzICgnZXZlbnRzJykuIEEgZG9tYWluIGNhbiBiaW5kIGFuIGV2ZW50
LWNoYW5uZWwKKyAgICAgKiAgICAgcG9ydCB0byBhIHZpcnR1YWwgaW50ZXJydXB0IHNvdXJjZSwg
c3VjaCBhcyB0aGUgdmlydHVhbC10aW1lcgorICAgICAqICAgICBkZXZpY2Ugb3IgdGhlIGVtZXJn
ZW5jeSBjb25zb2xlLgorICAgICAqCisgICAgICogRXZlbnQgY2hhbm5lbHMgYXJlIGFkZHJlc3Nl
ZCBieSBhICJwb3J0IGluZGV4Ii4gRWFjaCBjaGFubmVsIGlzCisgICAgICogYXNzb2NpYXRlZCB3
aXRoIHR3byBiaXRzIG9mIGluZm9ybWF0aW9uOgorICAgICAqICAxLiBQRU5ESU5HIC0tIG5vdGlm
aWVzIHRoZSBkb21haW4gdGhhdCB0aGVyZSBpcyBhIHBlbmRpbmcgbm90aWZpY2F0aW9uCisgICAg
ICogICAgIHRvIGJlIHByb2Nlc3NlZC4gVGhpcyBiaXQgaXMgY2xlYXJlZCBieSB0aGUgZ3Vlc3Qu
CisgICAgICogIDIuIE1BU0sgLS0gaWYgdGhpcyBiaXQgaXMgY2xlYXIgdGhlbiBhIDAtPjEgdHJh
bnNpdGlvbiBvZiBQRU5ESU5HCisgICAgICogICAgIHdpbGwgY2F1c2UgYW4gYXN5bmNocm9ub3Vz
IHVwY2FsbCB0byBiZSBzY2hlZHVsZWQuIFRoaXMgYml0IGlzIG9ubHkKKyAgICAgKiAgICAgdXBk
YXRlZCBieSB0aGUgZ3Vlc3QuIEl0IGlzIHJlYWQtb25seSB3aXRoaW4gWGVuLiBJZiBhIGNoYW5u
ZWwKKyAgICAgKiAgICAgYmVjb21lcyBwZW5kaW5nIHdoaWxlIHRoZSBjaGFubmVsIGlzIG1hc2tl
ZCB0aGVuIHRoZSAnZWRnZScgaXMgbG9zdAorICAgICAqICAgICAoaS5lLiwgd2hlbiB0aGUgY2hh
bm5lbCBpcyB1bm1hc2tlZCwgdGhlIGd1ZXN0IG11c3QgbWFudWFsbHkgaGFuZGxlCisgICAgICog
ICAgIHBlbmRpbmcgbm90aWZpY2F0aW9ucyBhcyBubyB1cGNhbGwgd2lsbCBiZSBzY2hlZHVsZWQg
YnkgWGVuKS4KKyAgICAgKgorICAgICAqIFRvIGV4cGVkaXRlIHNjYW5uaW5nIG9mIHBlbmRpbmcg
bm90aWZpY2F0aW9ucywgYW55IDAtPjEgcGVuZGluZworICAgICAqIHRyYW5zaXRpb24gb24gYW4g
dW5tYXNrZWQgY2hhbm5lbCBjYXVzZXMgYSBjb3JyZXNwb25kaW5nIGJpdCBpbiBhCisgICAgICog
cGVyLXZjcHUgc2VsZWN0b3Igd29yZCB0byBiZSBzZXQuIEVhY2ggYml0IGluIHRoZSBzZWxlY3Rv
ciBjb3ZlcnMgYQorICAgICAqICdDIExPTkdfUFRSJyBpbiB0aGUgUEVORElORyBiaXRmaWVsZCBh
cnJheS4KKyAgICAgKi8KKyAgICB4ZW5fdWxvbmdfdCBldnRjaG5fcGVuZGluZ1tzaXplb2YoeGVu
X3Vsb25nX3QpICogOF07CisgICAgeGVuX3Vsb25nX3QgZXZ0Y2huX21hc2tbc2l6ZW9mKHhlbl91
bG9uZ190KSAqIDhdOworCisgICAgLyoKKyAgICAgKiBXYWxsY2xvY2sgdGltZTogdXBkYXRlZCBv
bmx5IGJ5IGNvbnRyb2wgc29mdHdhcmUuIEd1ZXN0cyBzaG91bGQgYmFzZQorICAgICAqIHRoZWly
IGdldHRpbWVvZmRheSgpIHN5c2NhbGwgb24gdGhpcyB3YWxsY2xvY2stYmFzZSB2YWx1ZS4KKyAg
ICAgKi8KKyAgICB1aW50MzJfdCB3Y192ZXJzaW9uOyAgICAgIC8qIFZlcnNpb24gY291bnRlcjog
c2VlIHZjcHVfdGltZV9pbmZvX3QuICovCisgICAgdWludDMyX3Qgd2Nfc2VjOyAgICAgICAgICAv
KiBTZWNzICAwMDowMDowMCBVVEMsIEphbiAxLCAxOTcwLiAgKi8KKyAgICB1aW50MzJfdCB3Y19u
c2VjOyAgICAgICAgIC8qIE5zZWNzIDAwOjAwOjAwIFVUQywgSmFuIDEsIDE5NzAuICAqLworI2lm
ICFkZWZpbmVkKF9faTM4Nl9fKQorICAgIHVpbnQzMl90IHdjX3NlY19oaTsKKyMgZGVmaW5lIHhl
bl93Y19zZWNfaGkgd2Nfc2VjX2hpCisjZWxpZiAhZGVmaW5lZChfX1hFTl9fKSAmJiAhZGVmaW5l
ZChfX1hFTl9UT09MU19fKQorIyBkZWZpbmUgeGVuX3djX3NlY19oaSBhcmNoLndjX3NlY19oaQor
I2VuZGlmCisKKyAgICBzdHJ1Y3QgYXJjaF9zaGFyZWRfaW5mbyBhcmNoOworCit9OworI2lmbmRl
ZiBfX1hFTl9fCit0eXBlZGVmIHN0cnVjdCBzaGFyZWRfaW5mbyBzaGFyZWRfaW5mb190OworI2Vu
ZGlmCisKKy8qCisgKiBgaW5jb250ZW50cyAyMDAgc3RhcnRvZmRheSBTdGFydC1vZi1kYXkgbWVt
b3J5IGxheW91dAorICoKKyAqICAxLiBUaGUgZG9tYWluIGlzIHN0YXJ0ZWQgd2l0aGluIGNvbnRp
Z3VvdXMgdmlydHVhbC1tZW1vcnkgcmVnaW9uLgorICogIDIuIFRoZSBjb250aWd1b3VzIHJlZ2lv
biBlbmRzIG9uIGFuIGFsaWduZWQgNE1CIGJvdW5kYXJ5LgorICogIDMuIFRoaXMgdGhlIG9yZGVy
IG9mIGJvb3RzdHJhcCBlbGVtZW50cyBpbiB0aGUgaW5pdGlhbCB2aXJ0dWFsIHJlZ2lvbjoKKyAq
ICAgICAgYS4gcmVsb2NhdGVkIGtlcm5lbCBpbWFnZQorICogICAgICBiLiBpbml0aWFsIHJhbSBk
aXNrICAgICAgICAgICAgICBbbW9kX3N0YXJ0LCBtb2RfbGVuXQorICogICAgICAgICAobWF5IGJl
IG9taXR0ZWQpCisgKiAgICAgIGMuIGxpc3Qgb2YgYWxsb2NhdGVkIHBhZ2UgZnJhbWVzIFttZm5f
bGlzdCwgbnJfcGFnZXNdCisgKiAgICAgICAgICh1bmxlc3MgcmVsb2NhdGVkIGR1ZSB0byBYRU5f
RUxGTk9URV9JTklUX1AyTSkKKyAqICAgICAgZC4gc3RhcnRfaW5mb190IHN0cnVjdHVyZSAgICAg
ICAgW3JlZ2lzdGVyIEVTSSAoeDg2KV0KKyAqICAgICAgICAgaW4gY2FzZSBvZiBkb20wIHRoaXMg
cGFnZSBjb250YWlucyB0aGUgY29uc29sZSBpbmZvLCB0b28KKyAqICAgICAgZS4gdW5sZXNzIGRv
bTA6IHhlbnN0b3JlIHJpbmcgcGFnZQorICogICAgICBmLiB1bmxlc3MgZG9tMDogY29uc29sZSBy
aW5nIHBhZ2UKKyAqICAgICAgZy4gYm9vdHN0cmFwIHBhZ2UgdGFibGVzICAgICAgICAgW3B0X2Jh
c2UgYW5kIENSMyAoeDg2KV0KKyAqICAgICAgaC4gYm9vdHN0cmFwIHN0YWNrICAgICAgICAgICAg
ICAgW3JlZ2lzdGVyIEVTUCAoeDg2KV0KKyAqICA0LiBCb290c3RyYXAgZWxlbWVudHMgYXJlIHBh
Y2tlZCB0b2dldGhlciwgYnV0IGVhY2ggaXMgNGtCLWFsaWduZWQuCisgKiAgNS4gVGhlIGxpc3Qg
b2YgcGFnZSBmcmFtZXMgZm9ybXMgYSBjb250aWd1b3VzICdwc2V1ZG8tcGh5c2ljYWwnIG1lbW9y
eQorICogICAgIGxheW91dCBmb3IgdGhlIGRvbWFpbi4gSW4gcGFydGljdWxhciwgdGhlIGJvb3Rz
dHJhcCB2aXJ0dWFsLW1lbW9yeQorICogICAgIHJlZ2lvbiBpcyBhIDE6MSBtYXBwaW5nIHRvIHRo
ZSBmaXJzdCBzZWN0aW9uIG9mIHRoZSBwc2V1ZG8tcGh5c2ljYWwgbWFwLgorICogIDYuIEFsbCBi
b290c3RyYXAgZWxlbWVudHMgYXJlIG1hcHBlZCByZWFkLXdyaXRhYmxlIGZvciB0aGUgZ3Vlc3Qg
T1MuIFRoZQorICogICAgIG9ubHkgZXhjZXB0aW9uIGlzIHRoZSBib290c3RyYXAgcGFnZSB0YWJs
ZSwgd2hpY2ggaXMgbWFwcGVkIHJlYWQtb25seS4KKyAqICA3LiBUaGVyZSBpcyBndWFyYW50ZWVk
IHRvIGJlIGF0IGxlYXN0IDUxMmtCIHBhZGRpbmcgYWZ0ZXIgdGhlIGZpbmFsCisgKiAgICAgYm9v
dHN0cmFwIGVsZW1lbnQuIElmIG5lY2Vzc2FyeSwgdGhlIGJvb3RzdHJhcCB2aXJ0dWFsIHJlZ2lv
biBpcworICogICAgIGV4dGVuZGVkIGJ5IGFuIGV4dHJhIDRNQiB0byBlbnN1cmUgdGhpcy4KKyAq
CisgKiBOb3RlOiBQcmlvciB0byAyNTgzMzpiYjg1YmJjY2IxYzkuICgieDg2LzMyLW9uLTY0IGFk
anVzdCBEb20wIGluaXRpYWwgcGFnZQorICogdGFibGUgbGF5b3V0IikgYSBidWcgY2F1c2VkIHRo
ZSBwdF9iYXNlICgzLmcgYWJvdmUpIGFuZCBjcjMgdG8gbm90IHBvaW50CisgKiB0byB0aGUgc3Rh
cnQgb2YgdGhlIGd1ZXN0IHBhZ2UgdGFibGVzIChpdCB3YXMgb2Zmc2V0IGJ5IHR3byBwYWdlcyku
CisgKiBUaGlzIG9ubHkgbWFuaWZlc3RlZCBpdHNlbGYgb24gMzItb24tNjQgZG9tMCBrZXJuZWxz
IGFuZCBub3QgMzItb24tNjQgZG9tVQorICogb3IgNjQtYml0IGtlcm5lbHMgb2YgYW55IGNvbG91
ci4gVGhlIHBhZ2UgdGFibGVzIGZvciBhIDMyLW9uLTY0IGRvbTAgZ290CisgKiBhbGxvY2F0ZWQg
aW4gdGhlIG9yZGVyOiAnZmlyc3QgTDEnLCdmaXJzdCBMMicsICdmaXJzdCBMMycsIHNvIHRoZSBv
ZmZzZXQKKyAqIHRvIHRoZSBwYWdlIHRhYmxlIGJhc2UgaXMgYnkgdHdvIHBhZ2VzIGJhY2suIFRo
ZSBpbml0aWFsIGRvbWFpbiBpZiBpdCBpcworICogMzItYml0IGFuZCBydW5zIHVuZGVyIGEgNjQt
Yml0IGh5cGVydmlzb3Igc2hvdWxkIF9OT1RfIHVzZSB0d28gb2YgdGhlCisgKiBwYWdlcyBwcmVj
ZWRpbmcgcHRfYmFzZSBhbmQgbWFyayB0aGVtIGFzIHJlc2VydmVkL3VudXNlZC4KKyAqLworI2lm
ZGVmIFhFTl9IQVZFX1BWX0dVRVNUX0VOVFJZCitzdHJ1Y3Qgc3RhcnRfaW5mbyB7CisgICAgLyog
VEhFIEZPTExPV0lORyBBUkUgRklMTEVEIElOIEJPVEggT04gSU5JVElBTCBCT09UIEFORCBPTiBS
RVNVTUUuICAgICovCisgICAgY2hhciBtYWdpY1szMl07ICAgICAgICAgICAgIC8qICJ4ZW4tPHZl
cnNpb24+LTxwbGF0Zm9ybT4iLiAgICAgICAgICAgICovCisgICAgVUxPTkdfUFRSIG5yX3BhZ2Vz
OyAgICAgLyogVG90YWwgcGFnZXMgYWxsb2NhdGVkIHRvIHRoaXMgZG9tYWluLiAgKi8KKyAgICBV
TE9OR19QVFIgc2hhcmVkX2luZm87ICAvKiBNQUNISU5FIGFkZHJlc3Mgb2Ygc2hhcmVkIGluZm8g
c3RydWN0LiAqLworICAgIHVpbnQzMl90IGZsYWdzOyAgICAgICAgICAgICAvKiBTSUZfeHh4IGZs
YWdzLiAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgIHhlbl9wZm5fdCBzdG9yZV9tZm47
ICAgICAgICAvKiBNQUNISU5FIHBhZ2UgbnVtYmVyIG9mIHNoYXJlZCBwYWdlLiAgICAqLworICAg
IHVpbnQzMl90IHN0b3JlX2V2dGNobjsgICAgICAvKiBFdmVudCBjaGFubmVsIGZvciBzdG9yZSBj
b21tdW5pY2F0aW9uLiAqLworICAgIHVuaW9uIHsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAg
ICAgIHhlbl9wZm5fdCBtZm47ICAgICAgLyogTUFDSElORSBwYWdlIG51bWJlciBvZiBjb25zb2xl
IHBhZ2UuICAgKi8KKyAgICAgICAgICAgIHVpbnQzMl90ICBldnRjaG47ICAgLyogRXZlbnQgY2hh
bm5lbCBmb3IgY29uc29sZSBwYWdlLiAgICAgICAgKi8KKyAgICAgICAgfSBkb21VOworICAgICAg
ICBzdHJ1Y3QgeworICAgICAgICAgICAgdWludDMyX3QgaW5mb19vZmY7ICAvKiBPZmZzZXQgb2Yg
Y29uc29sZV9pbmZvIHN0cnVjdC4gICAgICAgICAqLworICAgICAgICAgICAgdWludDMyX3QgaW5m
b19zaXplOyAvKiBTaXplIG9mIGNvbnNvbGVfaW5mbyBzdHJ1Y3QgZnJvbSBzdGFydC4qLworICAg
ICAgICB9IGRvbTA7CisgICAgfSBjb25zb2xlOworICAgIC8qIFRIRSBGT0xMT1dJTkcgQVJFIE9O
TFkgRklMTEVEIElOIE9OIElOSVRJQUwgQk9PVCAoTk9UIFJFU1VNRSkuICAgICAqLworICAgIFVM
T05HX1BUUiBwdF9iYXNlOyAgICAgIC8qIFZJUlRVQUwgYWRkcmVzcyBvZiBwYWdlIGRpcmVjdG9y
eS4gICAgICovCisgICAgVUxPTkdfUFRSIG5yX3B0X2ZyYW1lczsgLyogTnVtYmVyIG9mIGJvb3Rz
dHJhcCBwLnQuIGZyYW1lcy4gICAgICAgKi8KKyAgICBVTE9OR19QVFIgbWZuX2xpc3Q7ICAgICAv
KiBWSVJUVUFMIGFkZHJlc3Mgb2YgcGFnZS1mcmFtZSBsaXN0LiAgICAqLworICAgIFVMT05HX1BU
UiBtb2Rfc3RhcnQ7ICAgIC8qIFZJUlRVQUwgYWRkcmVzcyBvZiBwcmUtbG9hZGVkIG1vZHVsZSAg
ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIChQRk4gb2YgcHJlLWxvYWRl
ZCBtb2R1bGUgaWYgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8qICBTSUZfTU9EX1NUQVJUX1BGTiBzZXQgaW4gZmxhZ3MpLiAgICAgICovCisgICAgVUxPTkdf
UFRSIG1vZF9sZW47ICAgICAgLyogU2l6ZSAoYnl0ZXMpIG9mIHByZS1sb2FkZWQgbW9kdWxlLiAg
ICAgKi8KKyNkZWZpbmUgTUFYX0dVRVNUX0NNRExJTkUgMTAyNAorICAgIGludDhfdCBjbWRfbGlu
ZVtNQVhfR1VFU1RfQ01ETElORV07CisgICAgLyogVGhlIHBmbiByYW5nZSBoZXJlIGNvdmVycyBi
b3RoIHBhZ2UgdGFibGUgYW5kIHAtPm0gdGFibGUgZnJhbWVzLiAgICovCisgICAgVUxPTkdfUFRS
IGZpcnN0X3AybV9wZm47LyogMXN0IHBmbiBmb3JtaW5nIGluaXRpYWwgUC0+TSB0YWJsZS4gICAg
Ki8KKyAgICBVTE9OR19QVFIgbnJfcDJtX2ZyYW1lczsvKiAjIG9mIHBmbnMgZm9ybWluZyBpbml0
aWFsIFAtPk0gdGFibGUuICAqLworfTsKK3R5cGVkZWYgc3RydWN0IHN0YXJ0X2luZm8gc3RhcnRf
aW5mb190OworCisvKgorICogU3RhcnQgb2YgZGF5IHN0cnVjdHVyZSBwYXNzZWQgdG8gUFZIIGd1
ZXN0cyBpbiAlZWJ4LgorICoKKyAqIE5PVEU6IG5vdGhpbmcgd2lsbCBiZSBsb2FkZWQgYXQgcGh5
c2ljYWwgYWRkcmVzcyAwLCBzbyBhIDAgdmFsdWUgaW4gYW55CisgKiBvZiB0aGUgYWRkcmVzcyBm
aWVsZHMgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgbm90IHByZXNlbnQuCisgKgorICogIDAgKy0tLS0t
LS0tLS0tLS0tLS0rCisgKiAgICB8IG1hZ2ljICAgICAgICAgIHwgQ29udGFpbnMgdGhlIG1hZ2lj
IHZhbHVlIFhFTl9IVk1fU1RBUlRfTUFHSUNfVkFMVUUKKyAqICAgIHwgICAgICAgICAgICAgICAg
fCAoInhFbjMiIHdpdGggdGhlIDB4ODAgYml0IG9mIHRoZSAiRSIgc2V0KS4KKyAqICA0ICstLS0t
LS0tLS0tLS0tLS0tKworICogICAgfCB2ZXJzaW9uICAgICAgICB8IFZlcnNpb24gb2YgdGhpcyBz
dHJ1Y3R1cmUuIEN1cnJlbnQgdmVyc2lvbiBpcyAwLiBOZXcKKyAqICAgIHwgICAgICAgICAgICAg
ICAgfCB2ZXJzaW9ucyBhcmUgZ3VhcmFudGVlZCB0byBiZSBiYWNrd2FyZHMtY29tcGF0aWJsZS4K
KyAqICA4ICstLS0tLS0tLS0tLS0tLS0tKworICogICAgfCBmbGFncyAgICAgICAgICB8IFNJRl94
eHggZmxhZ3MuCisgKiAxMiArLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAgIHwgbnJfbW9kdWxlcyAg
ICAgfCBOdW1iZXIgb2YgbW9kdWxlcyBwYXNzZWQgdG8gdGhlIGtlcm5lbC4KKyAqIDE2ICstLS0t
LS0tLS0tLS0tLS0tKworICogICAgfCBtb2RsaXN0X3BhZGRyICB8IFBoeXNpY2FsIGFkZHJlc3Mg
b2YgYW4gYXJyYXkgb2YgbW9kdWxlcworICogICAgfCAgICAgICAgICAgICAgICB8IChsYXlvdXQg
b2YgdGhlIHN0cnVjdHVyZSBiZWxvdykuCisgKiAyNCArLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAg
IHwgY21kbGluZV9wYWRkciAgfCBQaHlzaWNhbCBhZGRyZXNzIG9mIHRoZSBjb21tYW5kIGxpbmUs
CisgKiAgICB8ICAgICAgICAgICAgICAgIHwgYSB6ZXJvLXRlcm1pbmF0ZWQgQVNDSUkgc3RyaW5n
LgorICogMzIgKy0tLS0tLS0tLS0tLS0tLS0rCisgKiAgICB8IHJzZHBfcGFkZHIgICAgIHwgUGh5
c2ljYWwgYWRkcmVzcyBvZiB0aGUgUlNEUCBBQ1BJIGRhdGEgc3RydWN0dXJlLgorICogNDAgKy0t
LS0tLS0tLS0tLS0tLS0rCisgKgorICogVGhlIGxheW91dCBvZiBlYWNoIGVudHJ5IGluIHRoZSBt
b2R1bGUgc3RydWN0dXJlIGlzIHRoZSBmb2xsb3dpbmc6CisgKgorICogIDAgKy0tLS0tLS0tLS0t
LS0tLS0rCisgKiAgICB8IHBhZGRyICAgICAgICAgIHwgUGh5c2ljYWwgYWRkcmVzcyBvZiB0aGUg
bW9kdWxlLgorICogIDggKy0tLS0tLS0tLS0tLS0tLS0rCisgKiAgICB8IHNpemUgICAgICAgICAg
IHwgU2l6ZSBvZiB0aGUgbW9kdWxlIGluIGJ5dGVzLgorICogMTYgKy0tLS0tLS0tLS0tLS0tLS0r
CisgKiAgICB8IGNtZGxpbmVfcGFkZHIgIHwgUGh5c2ljYWwgYWRkcmVzcyBvZiB0aGUgY29tbWFu
ZCBsaW5lLAorICogICAgfCAgICAgICAgICAgICAgICB8IGEgemVyby10ZXJtaW5hdGVkIEFTQ0lJ
IHN0cmluZy4KKyAqIDI0ICstLS0tLS0tLS0tLS0tLS0tKworICogICAgfCByZXNlcnZlZCAgICAg
ICB8CisgKiAzMiArLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBUaGUgYWRkcmVzcyBhbmQgc2l6
ZXMgYXJlIGFsd2F5cyBhIDY0Yml0IGxpdHRsZSBlbmRpYW4gdW5zaWduZWQgaW50ZWdlci4KKyAq
CisgKiBOQjogWGVuIG9uIHg4NiB3aWxsIGFsd2F5cyB0cnkgdG8gcGxhY2UgYWxsIHRoZSBkYXRh
IGJlbG93IHRoZSA0R2lCCisgKiBib3VuZGFyeS4KKyAqLworI2RlZmluZSBYRU5fSFZNX1NUQVJU
X01BR0lDX1ZBTFVFIDB4MzM2ZWM1NzgKKworLyogTmV3IGNvbnNvbGUgdW5pb24gZm9yIGRvbTAg
aW50cm9kdWNlZCBpbiAweDAwMDMwMjAzLiAqLworI2lmIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9O
X18gPCAweDAwMDMwMjAzCisjZGVmaW5lIGNvbnNvbGVfbWZuICAgIGNvbnNvbGUuZG9tVS5tZm4K
KyNkZWZpbmUgY29uc29sZV9ldnRjaG4gY29uc29sZS5kb21VLmV2dGNobgorI2VuZGlmCisjZW5k
aWYgLyogWEVOX0hBVkVfUFZfR1VFU1RfRU5UUlkgKi8KKworLyogVGhlc2UgZmxhZ3MgYXJlIHBh
c3NlZCBpbiB0aGUgJ2ZsYWdzJyBmaWVsZCBvZiBzdGFydF9pbmZvX3QuICovCisjZGVmaW5lIFNJ
Rl9QUklWSUxFR0VEICAgICgxPDwwKSAgLyogSXMgdGhlIGRvbWFpbiBwcml2aWxlZ2VkPyAqLwor
I2RlZmluZSBTSUZfSU5JVERPTUFJTiAgICAoMTw8MSkgIC8qIElzIHRoaXMgdGhlIGluaXRpYWwg
Y29udHJvbCBkb21haW4/ICovCisjZGVmaW5lIFNJRl9NVUxUSUJPT1RfTU9EICgxPDwyKSAgLyog
SXMgbW9kX3N0YXJ0IGEgbXVsdGlib290IG1vZHVsZT8gKi8KKyNkZWZpbmUgU0lGX01PRF9TVEFS
VF9QRk4gKDE8PDMpICAvKiBJcyBtb2Rfc3RhcnQgYSBQRk4/ICovCisjZGVmaW5lIFNJRl9WSVJU
X1AyTV80VE9PTFMgKDE8PDQpIC8qIERvIFhlbiB0b29scyB1bmRlcnN0YW5kIGEgdmlydC4gbWFw
cGVkICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFAtPk0gbWFraW5n
IHRoZSAzIGxldmVsIHRyZWUgb2Jzb2xldGU/ICovCisjZGVmaW5lIFNJRl9QTV9NQVNLICAgICAg
ICgweEZGPDw4KSAvKiByZXNlcnZlIDEgYnl0ZSBmb3IgeGVuLXBtIG9wdGlvbnMgKi8KKworLyoK
KyAqIEEgbXVsdGlib290IG1vZHVsZSBpcyBhIHBhY2thZ2UgY29udGFpbmluZyBtb2R1bGVzIHZl
cnkgc2ltaWxhciB0byBhCisgKiBtdWx0aWJvb3QgbW9kdWxlIGFycmF5LiBUaGUgb25seSBkaWZm
ZXJlbmNlcyBhcmU6CisgKiAtIHRoZSBhcnJheSBvZiBtb2R1bGUgZGVzY3JpcHRvcnMgaXMgYnkg
Y29udmVudGlvbiBzaW1wbHkgYXQgdGhlIGJlZ2lubmluZworICogICBvZiB0aGUgbXVsdGlib290
IG1vZHVsZSwKKyAqIC0gYWRkcmVzc2VzIGluIHRoZSBtb2R1bGUgZGVzY3JpcHRvcnMgYXJlIGJh
c2VkIG9uIHRoZSBiZWdpbm5pbmcgb2YgdGhlCisgKiAgIG11bHRpYm9vdCBtb2R1bGUsCisgKiAt
IHRoZSBudW1iZXIgb2YgbW9kdWxlcyBpcyBkZXRlcm1pbmVkIGJ5IGEgdGVybWluYXRpb24gZGVz
Y3JpcHRvciB0aGF0IGhhcworICogICBtb2Rfc3RhcnQgPT0gMC4KKyAqCisgKiBUaGlzIHBlcm1p
dHMgdG8gYm90aCBidWlsZCBpdCBzdGF0aWNhbGx5IGFuZCByZWZlcmVuY2UgaXQgaW4gYSBjb25m
aWd1cmF0aW9uCisgKiBmaWxlLCBhbmQgbGV0IHRoZSBQViBndWVzdCBlYXNpbHkgcmViYXNlIHRo
ZSBhZGRyZXNzZXMgdG8gdmlydHVhbCBhZGRyZXNzZXMKKyAqIGFuZCBhdCB0aGUgc2FtZSB0aW1l
IGNvdW50IHRoZSBudW1iZXIgb2YgbW9kdWxlcy4KKyAqLworc3RydWN0IHhlbl9tdWx0aWJvb3Rf
bW9kX2xpc3QKK3sKKyAgICAvKiBBZGRyZXNzIG9mIGZpcnN0IGJ5dGUgb2YgdGhlIG1vZHVsZSAq
LworICAgIHVpbnQzMl90IG1vZF9zdGFydDsKKyAgICAvKiBBZGRyZXNzIG9mIGxhc3QgYnl0ZSBv
ZiB0aGUgbW9kdWxlIChpbmNsdXNpdmUpICovCisgICAgdWludDMyX3QgbW9kX2VuZDsKKyAgICAv
KiBBZGRyZXNzIG9mIHplcm8tdGVybWluYXRlZCBjb21tYW5kIGxpbmUgKi8KKyAgICB1aW50MzJf
dCBjbWRsaW5lOworICAgIC8qIFVudXNlZCwgbXVzdCBiZSB6ZXJvICovCisgICAgdWludDMyX3Qg
cGFkOworfTsKKy8qCisgKiBgaW5jb250ZW50cyAyMDAgc3RhcnRvZmRheV9kb20wX2NvbnNvbGUg
RG9tMF9jb25zb2xlCisgKgorICogVGhlIGNvbnNvbGUgc3RydWN0dXJlIGluIHN0YXJ0X2luZm8u
Y29uc29sZS5kb20wCisgKgorICogVGhpcyBzdHJ1Y3R1cmUgaW5jbHVkZXMgYSB2YXJpZXR5IG9m
IGluZm9ybWF0aW9uIHJlcXVpcmVkIHRvCisgKiBoYXZlIGEgd29ya2luZyBWR0EvVkVTQSBjb25z
b2xlLgorICovCit0eXBlZGVmIHN0cnVjdCBkb20wX3ZnYV9jb25zb2xlX2luZm8geworICAgIHVp
bnQ4X3QgdmlkZW9fdHlwZTsgLyogRE9NMF9WR0FfQ09OU09MRV8/Pz8gKi8KKyNkZWZpbmUgWEVO
X1ZHQVRZUEVfVEVYVF9NT0RFXzMgMHgwMworI2RlZmluZSBYRU5fVkdBVFlQRV9WRVNBX0xGQiAg
ICAweDIzCisjZGVmaW5lIFhFTl9WR0FUWVBFX0VGSV9MRkIgICAgIDB4NzAKKworICAgIHVuaW9u
IHsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAgIC8qIEZvbnQgaGVpZ2h0LCBpbiBwaXhl
bHMuICovCisgICAgICAgICAgICB1aW50MTZfdCBmb250X2hlaWdodDsKKyAgICAgICAgICAgIC8q
IEN1cnNvciBsb2NhdGlvbiAoY29sdW1uLCByb3cpLiAqLworICAgICAgICAgICAgdWludDE2X3Qg
Y3Vyc29yX3gsIGN1cnNvcl95OworICAgICAgICAgICAgLyogTnVtYmVyIG9mIHJvd3MgYW5kIGNv
bHVtbnMgKGRpbWVuc2lvbnMgaW4gY2hhcmFjdGVycykuICovCisgICAgICAgICAgICB1aW50MTZf
dCByb3dzLCBjb2x1bW5zOworICAgICAgICB9IHRleHRfbW9kZV8zOworCisgICAgICAgIHN0cnVj
dCB7CisgICAgICAgICAgICAvKiBXaWR0aCBhbmQgaGVpZ2h0LCBpbiBwaXhlbHMuICovCisgICAg
ICAgICAgICB1aW50MTZfdCB3aWR0aCwgaGVpZ2h0OworICAgICAgICAgICAgLyogQnl0ZXMgcGVy
IHNjYW4gbGluZS4gKi8KKyAgICAgICAgICAgIHVpbnQxNl90IGJ5dGVzX3Blcl9saW5lOworICAg
ICAgICAgICAgLyogQml0cyBwZXIgcGl4ZWwuICovCisgICAgICAgICAgICB1aW50MTZfdCBiaXRz
X3Blcl9waXhlbDsKKyAgICAgICAgICAgIC8qIExGQiBwaHlzaWNhbCBhZGRyZXNzLCBhbmQgc2l6
ZSAoaW4gdW5pdHMgb2YgNjRrQikuICovCisgICAgICAgICAgICB1aW50MzJfdCBsZmJfYmFzZTsK
KyAgICAgICAgICAgIHVpbnQzMl90IGxmYl9zaXplOworICAgICAgICAgICAgLyogUkdCIG1hc2sg
b2Zmc2V0cyBhbmQgc2l6ZXMsIGFzIGRlZmluZWQgYnkgVkJFIDEuMisgKi8KKyAgICAgICAgICAg
IHVpbnQ4X3QgIHJlZF9wb3MsIHJlZF9zaXplOworICAgICAgICAgICAgdWludDhfdCAgZ3JlZW5f
cG9zLCBncmVlbl9zaXplOworICAgICAgICAgICAgdWludDhfdCAgYmx1ZV9wb3MsIGJsdWVfc2l6
ZTsKKyAgICAgICAgICAgIHVpbnQ4X3QgIHJzdmRfcG9zLCByc3ZkX3NpemU7CisjaWYgX19YRU5f
SU5URVJGQUNFX1ZFUlNJT05fXyA+PSAweDAwMDMwMjA2CisgICAgICAgICAgICAvKiBWRVNBIGNh
cGFiaWxpdGllcyAob2Zmc2V0IDB4YSwgVkVTQSBjb21tYW5kIDB4NGYwMCkuICovCisgICAgICAg
ICAgICB1aW50MzJfdCBnYmxfY2FwczsKKyAgICAgICAgICAgIC8qIE1vZGUgYXR0cmlidXRlcyAo
b2Zmc2V0IDB4MCwgVkVTQSBjb21tYW5kIDB4NGYwMSkuICovCisgICAgICAgICAgICB1aW50MTZf
dCBtb2RlX2F0dHJzOworI2VuZGlmCisgICAgICAgIH0gdmVzYV9sZmI7CisgICAgfSB1OworfSBk
b20wX3ZnYV9jb25zb2xlX2luZm9fdDsKKyNkZWZpbmUgeGVuX3ZnYV9jb25zb2xlX2luZm8gZG9t
MF92Z2FfY29uc29sZV9pbmZvCisjZGVmaW5lIHhlbl92Z2FfY29uc29sZV9pbmZvX3QgZG9tMF92
Z2FfY29uc29sZV9pbmZvX3QKKwordHlwZWRlZiB1aW50OF90IHhlbl9kb21haW5faGFuZGxlX3Rb
MTZdOworCitfX0RFRklORV9YRU5fR1VFU1RfSEFORExFKHVpbnQ4LCAgdWludDhfdCk7CitfX0RF
RklORV9YRU5fR1VFU1RfSEFORExFKHVpbnQxNiwgdWludDE2X3QpOworX19ERUZJTkVfWEVOX0dV
RVNUX0hBTkRMRSh1aW50MzIsIHVpbnQzMl90KTsKK19fREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUo
dWludDY0LCB1aW50NjRfdCk7CisKKyNlbmRpZiAvKiAhX19BU1NFTUJMWV9fICovCisKKy8qIERl
ZmF1bHQgZGVmaW5pdGlvbnMgZm9yIG1hY3JvcyB1c2VkIGJ5IGRvbWN0bC9zeXNjdGwuICovCisj
aWYgZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pCisKKyNpZm5kZWYg
aW50NjRfYWxpZ25lZF90CisjZGVmaW5lIGludDY0X2FsaWduZWRfdCBpbnQ2NF90CisjZW5kaWYK
KyNpZm5kZWYgdWludDY0X2FsaWduZWRfdAorI2RlZmluZSB1aW50NjRfYWxpZ25lZF90IHVpbnQ2
NF90CisjZW5kaWYKKyNpZm5kZWYgWEVOX0dVRVNUX0hBTkRMRV82NAorI2RlZmluZSBYRU5fR1VF
U1RfSEFORExFXzY0KG5hbWUpIFhFTl9HVUVTVF9IQU5ETEUobmFtZSkKKyNlbmRpZgorCisjaWZu
ZGVmIF9fQVNTRU1CTFlfXworc3RydWN0IHhlbmN0bF9iaXRtYXAgeworICAgIFhFTl9HVUVTVF9I
QU5ETEVfNjQodWludDgpIGJpdG1hcDsKKyAgICB1aW50MzJfdCBucl9iaXRzOworfTsKKyNlbmRp
ZgorCisjZW5kaWYgLyogZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18p
ICovCisKKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfWEVOX0hfXyAqLworCisvKgorICogTG9jYWwg
dmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAiQlNEIgorICogYy1iYXNp
Yy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisg
KiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL3NyYy94ZW5uZXQvcmVjZWl2ZXIuYyBiL3NyYy94ZW5u
ZXQvcmVjZWl2ZXIuYwppbmRleCA4NDNkZjJiLi45NjRjYTkwIDEwMDY0NAotLS0gYS9zcmMveGVu
bmV0L3JlY2VpdmVyLmMKKysrIGIvc3JjL3hlbm5ldC9yZWNlaXZlci5jCkBAIC0zMSw2ICszMSw3
IEBACiAKICNpbmNsdWRlIDxuZGlzLmg+CiAjaW5jbHVkZSA8dGNwaXAuaD4KKyNpbmNsdWRlIDx4
ZW4uaD4KIAogI2luY2x1ZGUgInV0aWwuaCIKICNpbmNsdWRlICJyZWNlaXZlci5oIgpAQCAtNDIs
OCArNDMsNyBAQCBzdHJ1Y3QgX1hFTk5FVF9SRUNFSVZFUiB7CiAgICAgUFhFTk5FVF9BREFQVEVS
ICAgICAgICAgICAgIEFkYXB0ZXI7CiAgICAgTkRJU19IQU5ETEUgICAgICAgICAgICAgICAgIE5l
dEJ1ZmZlckxpc3RQb29sOwogICAgIFBORVRfQlVGRkVSX0xJU1QgICAgICAgICAgICBQdXRMaXN0
OwotICAgIFBORVRfQlVGRkVSX0xJU1QgICAgICAgICAgICBHZXRMaXN0OwotICAgIEtTUElOX0xP
Q0sgICAgICAgICAgICAgICAgICBMb2NrOworICAgIFBORVRfQlVGRkVSX0xJU1QgICAgICAgICAg
ICBHZXRMaXN0W0hWTV9NQVhfVkNQVVNdOwogICAgIExPTkcgICAgICAgICAgICAgICAgICAgICAg
ICBJbk5ESVM7CiAgICAgTE9ORyAgICAgICAgICAgICAgICAgICAgICAgIEluTkRJU01heDsKICAg
ICBYRU5WSUZfVklGX09GRkxPQURfT1BUSU9OUyAgT2ZmbG9hZE9wdGlvbnM7CkBAIC02NywyMCAr
NjcsMjIgQEAgX19SZWNlaXZlckFsbG9jYXRlTmV0QnVmZmVyTGlzdCgKICAgICBJTiAgUFZPSUQg
ICAgICAgICAgICAgICAgICAgQ29va2llCiAgICAgKQogeworICAgIFVMT05HICAgICAgICAgICAg
ICAgICAgICAgICBJbmRleDsKICAgICBQTkVUX0JVRkZFUl9MSVNUICAgICAgICAgICAgTmV0QnVm
ZmVyTGlzdDsKICAgICBQTkVUX0JVRkZFUl9MSVNUX1JFU0VSVkVEICAgTGlzdFJlc2VydmVkOwog
CiAgICAgQVNTRVJUM1UoS2VHZXRDdXJyZW50SXJxbCgpLCA9PSwgRElTUEFUQ0hfTEVWRUwpOwot
ICAgIEtlQWNxdWlyZVNwaW5Mb2NrQXREcGNMZXZlbCgmUmVjZWl2ZXItPkxvY2spOwogCi0gICAg
aWYgKFJlY2VpdmVyLT5HZXRMaXN0ID09IE5VTEwpCi0gICAgICAgIFJlY2VpdmVyLT5HZXRMaXN0
ID0gSW50ZXJsb2NrZWRFeGNoYW5nZVBvaW50ZXIoJlJlY2VpdmVyLT5QdXRMaXN0LCBOVUxMKTsK
KyAgICBJbmRleCA9IEtlR2V0Q3VycmVudFByb2Nlc3Nvck51bWJlckV4KE5VTEwpOwogCi0gICAg
TmV0QnVmZmVyTGlzdCA9IFJlY2VpdmVyLT5HZXRMaXN0OworICAgIGlmIChSZWNlaXZlci0+R2V0
TGlzdFtJbmRleF0gPT0gTlVMTCkKKyAgICAgICAgUmVjZWl2ZXItPkdldExpc3RbSW5kZXhdID0g
SW50ZXJsb2NrZWRFeGNoYW5nZVBvaW50ZXIoJlJlY2VpdmVyLT5QdXRMaXN0LCBOVUxMKTsKKwor
ICAgIE5ldEJ1ZmZlckxpc3QgPSBSZWNlaXZlci0+R2V0TGlzdFtJbmRleF07CiAgICAgaWYgKE5l
dEJ1ZmZlckxpc3QgIT0gTlVMTCkgewogICAgICAgICBQTkVUX0JVRkZFUiBOZXRCdWZmZXI7CiAK
LSAgICAgICAgUmVjZWl2ZXItPkdldExpc3QgPSBORVRfQlVGRkVSX0xJU1RfTkVYVF9OQkwoTmV0
QnVmZmVyTGlzdCk7CisgICAgICAgIFJlY2VpdmVyLT5HZXRMaXN0W0luZGV4XSA9IE5FVF9CVUZG
RVJfTElTVF9ORVhUX05CTChOZXRCdWZmZXJMaXN0KTsKICAgICAgICAgTkVUX0JVRkZFUl9MSVNU
X05FWFRfTkJMKE5ldEJ1ZmZlckxpc3QpID0gTlVMTDsKIAogICAgICAgICBORVRfQlVGRkVSX0xJ
U1RfSU5GTyhOZXRCdWZmZXJMaXN0LCBUY3BJcENoZWNrc3VtTmV0QnVmZmVyTGlzdEluZm8pID0g
TlVMTDsKQEAgLTEwNiw4ICsxMDgsNiBAQCBfX1JlY2VpdmVyQWxsb2NhdGVOZXRCdWZmZXJMaXN0
KAogICAgICAgICBBU1NFUlQoSU1QTFkoTmV0QnVmZmVyTGlzdCAhPSBOVUxMLCBORVRfQlVGRkVS
X0xJU1RfTkVYVF9OQkwoTmV0QnVmZmVyTGlzdCkgPT0gTlVMTCkpOwogICAgIH0KIAotICAgIEtl
UmVsZWFzZVNwaW5Mb2NrRnJvbURwY0xldmVsKCZSZWNlaXZlci0+TG9jayk7Ci0KICAgICBMaXN0
UmVzZXJ2ZWQgPSAoUE5FVF9CVUZGRVJfTElTVF9SRVNFUlZFRClORVRfQlVGRkVSX0xJU1RfTUlO
SVBPUlRfUkVTRVJWRUQoTmV0QnVmZmVyTGlzdCk7CiAgICAgQVNTRVJUM1AoTGlzdFJlc2VydmVk
LT5Db29raWUsID09LCBOVUxMKTsKICAgICBMaXN0UmVzZXJ2ZWQtPkNvb2tpZSA9IENvb2tpZTsK
QEAgLTM0NSw4ICszNDUsNiBAQCBSZWNlaXZlckluaXRpYWxpemUoCiAgICAgaWYgKCgqUmVjZWl2
ZXIpLT5OZXRCdWZmZXJMaXN0UG9vbCA9PSBOVUxMKQogICAgICAgICBnb3RvIGZhaWwyOwogCi0g
ICAgS2VJbml0aWFsaXplU3BpbkxvY2soJigqUmVjZWl2ZXIpLT5Mb2NrKTsKLQogICAgIHJldHVy
biBORElTX1NUQVRVU19TVUNDRVNTOwogCiBmYWlsMjoKQEAgLTM1OSwyMCArMzU3LDI0IEBAIFJl
Y2VpdmVyVGVhcmRvd24oCiAgICAgSU4gIFBYRU5ORVRfUkVDRUlWRVIgICAgUmVjZWl2ZXIKICAg
ICApCiB7CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgSW5kZXg7CiAgICAgUE5FVF9CVUZG
RVJfTElTVCAgICAgICAgTmV0QnVmZmVyTGlzdDsKIAogICAgIEFTU0VSVChSZWNlaXZlciAhPSBO
VUxMKTsKIAotICAgIE5ldEJ1ZmZlckxpc3QgPSBSZWNlaXZlci0+R2V0TGlzdDsKLSAgICB3aGls
ZSAoTmV0QnVmZmVyTGlzdCAhPSBOVUxMKSB7Ci0gICAgICAgIFBORVRfQlVGRkVSX0xJU1QgICAg
TmV4dDsKKyAgICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBIVk1fTUFYX1ZDUFVTOyBJbmRleCsr
KSB7CisgICAgICAgIE5ldEJ1ZmZlckxpc3QgPSBSZWNlaXZlci0+R2V0TGlzdFtJbmRleF07CiAK
LSAgICAgICAgTmV4dCA9IE5FVF9CVUZGRVJfTElTVF9ORVhUX05CTChOZXRCdWZmZXJMaXN0KTsK
LSAgICAgICAgTkVUX0JVRkZFUl9MSVNUX05FWFRfTkJMKE5ldEJ1ZmZlckxpc3QpID0gTlVMTDsK
KyAgICAgICAgd2hpbGUgKE5ldEJ1ZmZlckxpc3QgIT0gTlVMTCkgeworICAgICAgICAgICAgUE5F
VF9CVUZGRVJfTElTVCAgICBOZXh0OwogCi0gICAgICAgIE5kaXNGcmVlTmV0QnVmZmVyTGlzdChO
ZXRCdWZmZXJMaXN0KTsKKyAgICAgICAgICAgIE5leHQgPSBORVRfQlVGRkVSX0xJU1RfTkVYVF9O
QkwoTmV0QnVmZmVyTGlzdCk7CisgICAgICAgICAgICBORVRfQlVGRkVSX0xJU1RfTkVYVF9OQkwo
TmV0QnVmZmVyTGlzdCkgPSBOVUxMOwogCi0gICAgICAgIE5ldEJ1ZmZlckxpc3QgPSBOZXh0Owor
ICAgICAgICAgICAgTmRpc0ZyZWVOZXRCdWZmZXJMaXN0KE5ldEJ1ZmZlckxpc3QpOworCisgICAg
ICAgICAgICBOZXRCdWZmZXJMaXN0ID0gTmV4dDsKKyAgICAgICAgfQogICAgIH0KIAogICAgIE5l
dEJ1ZmZlckxpc3QgPSBSZWNlaXZlci0+UHV0TGlzdDsKZGlmZiAtLWdpdCBhL3ZzMjAxMi94ZW5u
ZXQveGVubmV0LnZjeHByb2ogYi92czIwMTIveGVubmV0L3hlbm5ldC52Y3hwcm9qCmluZGV4IDA1
NGI0YTYuLmYwZTkwNzMgMTAwNjQ0Ci0tLSBhL3ZzMjAxMi94ZW5uZXQveGVubmV0LnZjeHByb2oK
KysrIGIvdnMyMDEyL3hlbm5ldC94ZW5uZXQudmN4cHJvagpAQCAtMjMsNyArMjMsNyBAQAogCTxJ
bXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPiAK
IAogCTxQcm9wZXJ0eUdyb3VwPgotCQk8SW5jbHVkZVBhdGg+Li5cLi5caW5jbHVkZTskKEluY2x1
ZGVQYXRoKTwvSW5jbHVkZVBhdGg+CisJICAgICAgICA8SW5jbHVkZVBhdGg+Li5cLi5caW5jbHVk
ZTsuLlwuLlxpbmNsdWRlXHhlbjskKEluY2x1ZGVQYXRoKTwvSW5jbHVkZVBhdGg+CiAJCTxSdW5D
b2RlQW5hbHlzaXM+dHJ1ZTwvUnVuQ29kZUFuYWx5c2lzPgogCQk8RW5hYmxlSW5mMmNhdD5mYWxz
ZTwvRW5hYmxlSW5mMmNhdD4KIAkJPEludERpcj4uLlwkKFByb2plY3ROYW1lKVwkKENvbmZpZ3Vy
YXRpb25OYW1lKVwkKFBsYXRmb3JtKVw8L0ludERpcj4KZGlmZiAtLWdpdCBhL3ZzMjAxMy94ZW5u
ZXQveGVubmV0LnZjeHByb2ogYi92czIwMTMveGVubmV0L3hlbm5ldC52Y3hwcm9qCmluZGV4IDU4
ZjQwMzIuLmNiZTU3ZjUgMTAwNjQ0Ci0tLSBhL3ZzMjAxMy94ZW5uZXQveGVubmV0LnZjeHByb2oK
KysrIGIvdnMyMDEzL3hlbm5ldC94ZW5uZXQudmN4cHJvagpAQCAtMjAsNyArMjAsNiBAQAogICA8
SW1wb3J0IFByb2plY3Q9Ii4uXHRhcmdldHMucHJvcHMiIC8+CiAgIDxJbXBvcnQgUHJvamVjdD0i
JChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPgogICA8UHJvcGVydHlHcm91
cD4KLSAgICA8SW5jbHVkZVBhdGg+Li5cLi5caW5jbHVkZTskKEluY2x1ZGVQYXRoKTwvSW5jbHVk
ZVBhdGg+CiAgICAgPFJ1bkNvZGVBbmFseXNpcz50cnVlPC9SdW5Db2RlQW5hbHlzaXM+CiAgICAg
PEVuYWJsZUluZjJjYXQ+ZmFsc2U8L0VuYWJsZUluZjJjYXQ+CiAgICAgPEludERpcj4uLlwkKFBy
b2plY3ROYW1lKVwkKENvbmZpZ3VyYXRpb25OYW1lKVwkKFBsYXRmb3JtKVw8L0ludERpcj4KQEAg
LTI5LDExICsyOCwxNSBAQAogICA8SXRlbURlZmluaXRpb25Hcm91cD4KICAgICA8Q2xDb21waWxl
PgogICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPl9fTU9EVUxFX189IlhFTk5FVCI7TkRJ
U19NSU5JUE9SVF9EUklWRVI7TkRJU19XRE09MTtORElTNjFfTUlOSVBPUlQ9MTtQT09MX05YX09Q
VElOPTE7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25z
PgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+JChXaW5kb3dzU2RrRGlyKVxp
bmNsdWRlXGttOy4uXC4uXGluY2x1ZGU7Li5cLi5caW5jbHVkZVx4ZW47PC9BZGRpdGlvbmFsSW5j
bHVkZURpcmVjdG9yaWVzPgogICAgICAgPFdhcm5pbmdMZXZlbD5FbmFibGVBbGxXYXJuaW5nczwv
V2FybmluZ0xldmVsPgogICAgICAgPERpc2FibGVTcGVjaWZpY1dhcm5pbmdzPjQ3MTE7NDU0ODs0
ODIwOzQ2Njg7NDI1NTs2MDAxOzYwNTQ7MjgxOTY7JShEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncyk8
L0Rpc2FibGVTcGVjaWZpY1dhcm5pbmdzPgogICAgICAgPE11bHRpUHJvY2Vzc29yQ29tcGlsYXRp
b24+dHJ1ZTwvTXVsdGlQcm9jZXNzb3JDb21waWxhdGlvbj4KICAgICAgIDxFbmFibGVQUkVmYXN0
PnRydWU8L0VuYWJsZVBSRWZhc3Q+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPFJlc291cmNlQ29t
cGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXGluY2x1ZGU7
JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcz4KKyAgICA8L1Jlc291cmNlQ29tcGlsZT4KICAgICA8TGluaz4KICAgICAgIDxJbWFnZUhh
c1NhZmVFeGNlcHRpb25IYW5kbGVycz5mYWxzZTwvSW1hZ2VIYXNTYWZlRXhjZXB0aW9uSGFuZGxl
cnM+CiAgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz4kKERES19MSUJfUEFUSClcbmRpcy5s
aWI7JChEREtfTElCX1BBVEgpL2xpYmNudHByLmxpYjskKERES19MSUJfUEFUSCkvYXV4X2tsaWIu
bGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+Ci0t
IAoyLjEuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Cndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qu
b3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZv
L3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Mon Jul 18 12:44:10 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 18 Jul 2016 12:44:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bP7u6-0003Mn-1k; Mon, 18 Jul 2016 12:44:10 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bP7u4-0003Ma-QM
 for win-pv-devel@lists.xenproject.org; Mon, 18 Jul 2016 12:44:08 +0000
Received: from [193.109.254.147] by server-3.bemta-14.messagelabs.com id
 F9/56-17627-81FCC875; Mon, 18 Jul 2016 12:44:08 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprCIsWRWlGSWpSXmKPExsXiVRvkoit+vif
 coOeSisWfxYkOjB6HP1xhCWCMYs3MS8qvSGDNeLJ9KlvBdcGKYx+nsDYw7uHtYuTiEBKYzShx
 99xMdhCHReASi8ShKW1MII6EwDsWia67l5i7GDmBnBiJ3ukH2SHsconHXYcZQWwhAUWJ5msX2
 CFGrWSSaFv1kA0kwSagLnH7/WKoBjuJT7NugtkiAqoS15YfA6thFtCSeLhhHtggYQEDib9bT4
 ItYwGqufCuH6yGV8Bd4sWbE6wQc+Qk9k5ezTKBkX8BI8MqRo3i1KKy1CJdQ2O9pKLM9IyS3MT
 MHF1DQxO93NTi4sT01JzEpGK95PzcTYzAEKpnYGDcwbhru+chRkkOJiVRXqsFPeFCfEn5KZUZ
 icUZ8UWlOanFhxhlODiUJHhfnwXKCRalpqdWpGXmAIMZJi3BwaMkwht5DijNW1yQmFucmQ6RO
 sWoy7Fl6r21TEIsefl5qVLivM9BZgiAFGWU5sGNgEXWJUZZKWFeRgYGBiGegtSi3MwSVPlXjO
 IcjErCvCtBpvBk5pXAbXoFdAQT0BEGqt0gR5QkIqSkGhgX7CqU07fJtd15eOWPQvnDUVlRB5a
 7vpwWejWuyvtx1i2Zm+m/VZf/mON87shj48VJ3yO/n6jdcn/DS+sXMaLflN5eDWi6bW9i53Bo
 8Uu1eS8uzNtvdE/P//a7j0mq0xutg44eFa2PLf+xKyjixL1JDy/VanGcDth4Q6ayRevAntZvY
 RPXlfsYKLEUZyQaajEXFScCAPow2f2nAgAA
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-14.tower-27.messagelabs.com!1468845847!42343125!1
X-Originating-IP: [74.125.82.68]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 44675 invoked from network); 18 Jul 2016 12:44:07 -0000
Received: from mail-wm0-f68.google.com (HELO mail-wm0-f68.google.com)
 (74.125.82.68)
 by server-14.tower-27.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 18 Jul 2016 12:44:07 -0000
Received: by mail-wm0-f68.google.com with SMTP id o80so12526540wme.0
 for <win-pv-devel@lists.xenproject.org>; Mon, 18 Jul 2016 05:44:07 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=XSALFKGHgGGVCA7TFzAcmfNJiLNFZ6I0ZajTRntHfrs=;
 b=IRYSW54/DBnrvxxSegpChA+mwjPo4UeAja1WBSxwCkAM/CmbWKs21pVNNxvBwitqmg
 4ff4l10IMEh3EoEYuMYfiYPp2kBuJCinGSqaIijBajmqpQLwsXYqSozrdUGAC8biLsGz
 vMEug6MxxUO5kL5iPiF70YBFlGBYqzU4Q2jhzL4rtSrRmQMRtKj3LIVMbSZ4VcsHkIf5
 cl8lLzUxqQZSqxmU4zIeTdZvkAaOTcwZiXoG86y1f/K5FfeVyIeev90O9YgRetwtVQrO
 yfPhqY92USB1WIrrTsnUIVEVaK91MOJS8ZLR4t2t8Kbp+JgwwJJ78ubz3kuv2WAjxHWN
 Et6Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=XSALFKGHgGGVCA7TFzAcmfNJiLNFZ6I0ZajTRntHfrs=;
 b=eoTKO/aeOOwq50I2E6iBRybs85Fjm2GW7YeLsAIKZLXv8YmtT1XURW2wMfYT3jd2A3
 IbQzUX0nekvcVl5Y0NvtrMfEyl6LX09lfc9GrosxajW3EPF266hqtMk02zgqgR4wcFwv
 aNl8u1Q2XFltVqR1ktNLU6fdbQpR5woeEC7L6wFCY4TlIHZt7l6+l0zvyLsa0owV1qnU
 lJIQ3xPSDGICB5mWtcge4GamkexsJuatU4cupSXVDB2Zez7FWtzm1S1+GB9mZ5VEFzHl
 rgwKc32s29YaxMF1FVJuEEjYCTkhIGAZUtglGopvtGmQN5/14pMS45DlzpPCoebm2ByJ
 fpBg==
X-Gm-Message-State: ALyK8tJYaO/2W1vbH5FaMQJFpIqSFOIHGTVRKjANMZ0TcCS4wuZG/K0ErbySotWzIZyajA==
X-Received: by 10.28.51.21 with SMTP id z21mr9298604wmz.24.1468845846606;
 Mon, 18 Jul 2016 05:44:06 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id q139sm16528777wmb.18.2016.07.18.05.44.05
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Mon, 18 Jul 2016 05:44:05 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Mon, 18 Jul 2016 13:43:53 +0100
Message-Id: <1468845835-14016-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 1/3] Affinitize watchdog threads
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VG8gYXZvaWQgYm91bmNpbmcgbG9ja3MgYmV0d2VlbiBDUFVzLCBhZmZpbml0aXplIHRoZSByaW5n
IHdhdGNoZG9nIHRocmVhZAp0byB0aGUgc2FtZSBDUFUgYXMgdGhlIGV2ZW50IGNoYW5uZWwgYW5k
IERQQy4KClNpZ25lZC1vZmYtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5j
b20+Ci0tLQogc3JjL3hlbnZpZi9yZWNlaXZlci5jICAgIHwgMTQgKysrKysrKysrKysrKysKIHNy
Yy94ZW52aWYvdHJhbnNtaXR0ZXIuYyB8IDE0ICsrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5n
ZWQsIDI4IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmMveGVudmlmL3JlY2VpdmVyLmMg
Yi9zcmMveGVudmlmL3JlY2VpdmVyLmMKaW5kZXggM2QzN2FkMi4uZjJkNTdiYSAxMDA2NDQKLS0t
IGEvc3JjL3hlbnZpZi9yZWNlaXZlci5jCisrKyBiL3NyYy94ZW52aWYvcmVjZWl2ZXIuYwpAQCAt
MjE3NCwxMiArMjE3NCwyNiBAQCBSZWNlaXZlclJpbmdXYXRjaGRvZygKICAgICApCiB7CiAgICAg
UFhFTlZJRl9SRUNFSVZFUl9SSU5HICAgUmluZyA9IENvbnRleHQ7CisgICAgUFJPQ0VTU09SX05V
TUJFUiAgICAgICAgUHJvY051bWJlcjsKKyAgICBHUk9VUF9BRkZJTklUWSAgICAgICAgICBBZmZp
bml0eTsKICAgICBMQVJHRV9JTlRFR0VSICAgICAgICAgICBUaW1lb3V0OwogICAgIFJJTkdfSURY
ICAgICAgICAgICAgICAgIHJzcF9wcm9kOwogICAgIFJJTkdfSURYICAgICAgICAgICAgICAgIHJz
cF9jb25zOworICAgIE5UU1RBVFVTICAgICAgICAgICAgICAgIHN0YXR1czsKIAogICAgIFRyYWNl
KCI9PT09PlxuIik7CiAKKyAgICAvLworICAgIC8vIEFmZmluaXRpemUgdGhpcyB0aHJlYWQgdG8g
dGhlIHNhbWUgQ1BVIGFzIHRoZSBldmVudCBjaGFubmVsCisgICAgLy8gYW5kIERQQy4KKyAgICAv
LworICAgIHN0YXR1cyA9IEtlR2V0UHJvY2Vzc29yTnVtYmVyRnJvbUluZGV4KFJpbmctPkluZGV4
LCAmUHJvY051bWJlcik7CisgICAgQVNTRVJUKE5UX1NVQ0NFU1Moc3RhdHVzKSk7CisKKyAgICBB
ZmZpbml0eS5Hcm91cCA9IFByb2NOdW1iZXIuR3JvdXA7CisgICAgQWZmaW5pdHkuTWFzayA9IChL
QUZGSU5JVFkpMSA8PCBQcm9jTnVtYmVyLk51bWJlcjsKKyAgICBLZVNldFN5c3RlbUdyb3VwQWZm
aW5pdHlUaHJlYWQoJkFmZmluaXR5LCBOVUxMKTsKKwogICAgIFRpbWVvdXQuUXVhZFBhcnQgPSBU
SU1FX1JFTEFUSVZFKFRJTUVfUyhYRU5WSUZfUkVDRUlWRVJfV0FUQ0hET0dfUEVSSU9EKSk7CiAK
ICAgICByc3BfcHJvZCA9IDA7CmRpZmYgLS1naXQgYS9zcmMveGVudmlmL3RyYW5zbWl0dGVyLmMg
Yi9zcmMveGVudmlmL3RyYW5zbWl0dGVyLmMKaW5kZXggMzU0MmEwOS4uMTk2MzZiMyAxMDA2NDQK
LS0tIGEvc3JjL3hlbnZpZi90cmFuc21pdHRlci5jCisrKyBiL3NyYy94ZW52aWYvdHJhbnNtaXR0
ZXIuYwpAQCAtMzE2NCwxMSArMzE2NCwyNSBAQCBUcmFuc21pdHRlclJpbmdXYXRjaGRvZygKICAg
ICApCiB7CiAgICAgUFhFTlZJRl9UUkFOU01JVFRFUl9SSU5HICAgIFJpbmcgPSBDb250ZXh0Owor
ICAgIFBST0NFU1NPUl9OVU1CRVIgICAgICAgICAgICBQcm9jTnVtYmVyOworICAgIEdST1VQX0FG
RklOSVRZICAgICAgICAgICAgICBBZmZpbml0eTsKICAgICBMQVJHRV9JTlRFR0VSICAgICAgICAg
ICAgICAgVGltZW91dDsKICAgICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAgUGFja2V0c1F1
ZXVlZDsKKyAgICBOVFNUQVRVUyAgICAgICAgICAgICAgICAgICAgc3RhdHVzOwogCiAgICAgVHJh
Y2UoIj09PT0+XG4iKTsKIAorICAgIC8vCisgICAgLy8gQWZmaW5pdGl6ZSB0aGlzIHRocmVhZCB0
byB0aGUgc2FtZSBDUFUgYXMgdGhlIGV2ZW50IGNoYW5uZWwKKyAgICAvLyBhbmQgRFBDLgorICAg
IC8vCisgICAgc3RhdHVzID0gS2VHZXRQcm9jZXNzb3JOdW1iZXJGcm9tSW5kZXgoUmluZy0+SW5k
ZXgsICZQcm9jTnVtYmVyKTsKKyAgICBBU1NFUlQoTlRfU1VDQ0VTUyhzdGF0dXMpKTsKKworICAg
IEFmZmluaXR5Lkdyb3VwID0gUHJvY051bWJlci5Hcm91cDsKKyAgICBBZmZpbml0eS5NYXNrID0g
KEtBRkZJTklUWSkxIDw8IFByb2NOdW1iZXIuTnVtYmVyOworICAgIEtlU2V0U3lzdGVtR3JvdXBB
ZmZpbml0eVRocmVhZCgmQWZmaW5pdHksIE5VTEwpOworCiAgICAgVGltZW91dC5RdWFkUGFydCA9
IFRJTUVfUkVMQVRJVkUoVElNRV9TKFhFTlZJRl9UUkFOU01JVFRFUl9XQVRDSERPR19QRVJJT0Qp
KTsKICAgICBQYWNrZXRzUXVldWVkID0gMDsKIAotLSAKMi4xLjEKCgpfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0
Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2pl
Y3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Mon Jul 18 12:44:10 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 18 Jul 2016 12:44:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bP7u6-0003Mn-1k; Mon, 18 Jul 2016 12:44:10 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bP7u4-0003Ma-QM
 for win-pv-devel@lists.xenproject.org; Mon, 18 Jul 2016 12:44:08 +0000
Received: from [193.109.254.147] by server-3.bemta-14.messagelabs.com id
 F9/56-17627-81FCC875; Mon, 18 Jul 2016 12:44:08 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprCIsWRWlGSWpSXmKPExsXiVRvkoit+vif
 coOeSisWfxYkOjB6HP1xhCWCMYs3MS8qvSGDNeLJ9KlvBdcGKYx+nsDYw7uHtYuTiEBKYzShx
 99xMdhCHReASi8ShKW1MII6EwDsWia67l5i7GDmBnBiJ3ukH2SHsconHXYcZQWwhAUWJ5msX2
 CFGrWSSaFv1kA0kwSagLnH7/WKoBjuJT7NugtkiAqoS15YfA6thFtCSeLhhHtggYQEDib9bT4
 ItYwGqufCuH6yGV8Bd4sWbE6wQc+Qk9k5ezTKBkX8BI8MqRo3i1KKy1CJdQ2O9pKLM9IyS3MT
 MHF1DQxO93NTi4sT01JzEpGK95PzcTYzAEKpnYGDcwbhru+chRkkOJiVRXqsFPeFCfEn5KZUZ
 icUZ8UWlOanFhxhlODiUJHhfnwXKCRalpqdWpGXmAIMZJi3BwaMkwht5DijNW1yQmFucmQ6RO
 sWoy7Fl6r21TEIsefl5qVLivM9BZgiAFGWU5sGNgEXWJUZZKWFeRgYGBiGegtSi3MwSVPlXjO
 IcjErCvCtBpvBk5pXAbXoFdAQT0BEGqt0gR5QkIqSkGhgX7CqU07fJtd15eOWPQvnDUVlRB5a
 7vpwWejWuyvtx1i2Zm+m/VZf/mON87shj48VJ3yO/n6jdcn/DS+sXMaLflN5eDWi6bW9i53Bo
 8Uu1eS8uzNtvdE/P//a7j0mq0xutg44eFa2PLf+xKyjixL1JDy/VanGcDth4Q6ayRevAntZvY
 RPXlfsYKLEUZyQaajEXFScCAPow2f2nAgAA
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-14.tower-27.messagelabs.com!1468845847!42343125!1
X-Originating-IP: [74.125.82.68]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 44675 invoked from network); 18 Jul 2016 12:44:07 -0000
Received: from mail-wm0-f68.google.com (HELO mail-wm0-f68.google.com)
 (74.125.82.68)
 by server-14.tower-27.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 18 Jul 2016 12:44:07 -0000
Received: by mail-wm0-f68.google.com with SMTP id o80so12526540wme.0
 for <win-pv-devel@lists.xenproject.org>; Mon, 18 Jul 2016 05:44:07 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=XSALFKGHgGGVCA7TFzAcmfNJiLNFZ6I0ZajTRntHfrs=;
 b=IRYSW54/DBnrvxxSegpChA+mwjPo4UeAja1WBSxwCkAM/CmbWKs21pVNNxvBwitqmg
 4ff4l10IMEh3EoEYuMYfiYPp2kBuJCinGSqaIijBajmqpQLwsXYqSozrdUGAC8biLsGz
 vMEug6MxxUO5kL5iPiF70YBFlGBYqzU4Q2jhzL4rtSrRmQMRtKj3LIVMbSZ4VcsHkIf5
 cl8lLzUxqQZSqxmU4zIeTdZvkAaOTcwZiXoG86y1f/K5FfeVyIeev90O9YgRetwtVQrO
 yfPhqY92USB1WIrrTsnUIVEVaK91MOJS8ZLR4t2t8Kbp+JgwwJJ78ubz3kuv2WAjxHWN
 Et6Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=XSALFKGHgGGVCA7TFzAcmfNJiLNFZ6I0ZajTRntHfrs=;
 b=eoTKO/aeOOwq50I2E6iBRybs85Fjm2GW7YeLsAIKZLXv8YmtT1XURW2wMfYT3jd2A3
 IbQzUX0nekvcVl5Y0NvtrMfEyl6LX09lfc9GrosxajW3EPF266hqtMk02zgqgR4wcFwv
 aNl8u1Q2XFltVqR1ktNLU6fdbQpR5woeEC7L6wFCY4TlIHZt7l6+l0zvyLsa0owV1qnU
 lJIQ3xPSDGICB5mWtcge4GamkexsJuatU4cupSXVDB2Zez7FWtzm1S1+GB9mZ5VEFzHl
 rgwKc32s29YaxMF1FVJuEEjYCTkhIGAZUtglGopvtGmQN5/14pMS45DlzpPCoebm2ByJ
 fpBg==
X-Gm-Message-State: ALyK8tJYaO/2W1vbH5FaMQJFpIqSFOIHGTVRKjANMZ0TcCS4wuZG/K0ErbySotWzIZyajA==
X-Received: by 10.28.51.21 with SMTP id z21mr9298604wmz.24.1468845846606;
 Mon, 18 Jul 2016 05:44:06 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id q139sm16528777wmb.18.2016.07.18.05.44.05
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Mon, 18 Jul 2016 05:44:05 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Mon, 18 Jul 2016 13:43:53 +0100
Message-Id: <1468845835-14016-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 1/3] Affinitize watchdog threads
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VG8gYXZvaWQgYm91bmNpbmcgbG9ja3MgYmV0d2VlbiBDUFVzLCBhZmZpbml0aXplIHRoZSByaW5n
IHdhdGNoZG9nIHRocmVhZAp0byB0aGUgc2FtZSBDUFUgYXMgdGhlIGV2ZW50IGNoYW5uZWwgYW5k
IERQQy4KClNpZ25lZC1vZmYtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5j
b20+Ci0tLQogc3JjL3hlbnZpZi9yZWNlaXZlci5jICAgIHwgMTQgKysrKysrKysrKysrKysKIHNy
Yy94ZW52aWYvdHJhbnNtaXR0ZXIuYyB8IDE0ICsrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5n
ZWQsIDI4IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmMveGVudmlmL3JlY2VpdmVyLmMg
Yi9zcmMveGVudmlmL3JlY2VpdmVyLmMKaW5kZXggM2QzN2FkMi4uZjJkNTdiYSAxMDA2NDQKLS0t
IGEvc3JjL3hlbnZpZi9yZWNlaXZlci5jCisrKyBiL3NyYy94ZW52aWYvcmVjZWl2ZXIuYwpAQCAt
MjE3NCwxMiArMjE3NCwyNiBAQCBSZWNlaXZlclJpbmdXYXRjaGRvZygKICAgICApCiB7CiAgICAg
UFhFTlZJRl9SRUNFSVZFUl9SSU5HICAgUmluZyA9IENvbnRleHQ7CisgICAgUFJPQ0VTU09SX05V
TUJFUiAgICAgICAgUHJvY051bWJlcjsKKyAgICBHUk9VUF9BRkZJTklUWSAgICAgICAgICBBZmZp
bml0eTsKICAgICBMQVJHRV9JTlRFR0VSICAgICAgICAgICBUaW1lb3V0OwogICAgIFJJTkdfSURY
ICAgICAgICAgICAgICAgIHJzcF9wcm9kOwogICAgIFJJTkdfSURYICAgICAgICAgICAgICAgIHJz
cF9jb25zOworICAgIE5UU1RBVFVTICAgICAgICAgICAgICAgIHN0YXR1czsKIAogICAgIFRyYWNl
KCI9PT09PlxuIik7CiAKKyAgICAvLworICAgIC8vIEFmZmluaXRpemUgdGhpcyB0aHJlYWQgdG8g
dGhlIHNhbWUgQ1BVIGFzIHRoZSBldmVudCBjaGFubmVsCisgICAgLy8gYW5kIERQQy4KKyAgICAv
LworICAgIHN0YXR1cyA9IEtlR2V0UHJvY2Vzc29yTnVtYmVyRnJvbUluZGV4KFJpbmctPkluZGV4
LCAmUHJvY051bWJlcik7CisgICAgQVNTRVJUKE5UX1NVQ0NFU1Moc3RhdHVzKSk7CisKKyAgICBB
ZmZpbml0eS5Hcm91cCA9IFByb2NOdW1iZXIuR3JvdXA7CisgICAgQWZmaW5pdHkuTWFzayA9IChL
QUZGSU5JVFkpMSA8PCBQcm9jTnVtYmVyLk51bWJlcjsKKyAgICBLZVNldFN5c3RlbUdyb3VwQWZm
aW5pdHlUaHJlYWQoJkFmZmluaXR5LCBOVUxMKTsKKwogICAgIFRpbWVvdXQuUXVhZFBhcnQgPSBU
SU1FX1JFTEFUSVZFKFRJTUVfUyhYRU5WSUZfUkVDRUlWRVJfV0FUQ0hET0dfUEVSSU9EKSk7CiAK
ICAgICByc3BfcHJvZCA9IDA7CmRpZmYgLS1naXQgYS9zcmMveGVudmlmL3RyYW5zbWl0dGVyLmMg
Yi9zcmMveGVudmlmL3RyYW5zbWl0dGVyLmMKaW5kZXggMzU0MmEwOS4uMTk2MzZiMyAxMDA2NDQK
LS0tIGEvc3JjL3hlbnZpZi90cmFuc21pdHRlci5jCisrKyBiL3NyYy94ZW52aWYvdHJhbnNtaXR0
ZXIuYwpAQCAtMzE2NCwxMSArMzE2NCwyNSBAQCBUcmFuc21pdHRlclJpbmdXYXRjaGRvZygKICAg
ICApCiB7CiAgICAgUFhFTlZJRl9UUkFOU01JVFRFUl9SSU5HICAgIFJpbmcgPSBDb250ZXh0Owor
ICAgIFBST0NFU1NPUl9OVU1CRVIgICAgICAgICAgICBQcm9jTnVtYmVyOworICAgIEdST1VQX0FG
RklOSVRZICAgICAgICAgICAgICBBZmZpbml0eTsKICAgICBMQVJHRV9JTlRFR0VSICAgICAgICAg
ICAgICAgVGltZW91dDsKICAgICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAgUGFja2V0c1F1
ZXVlZDsKKyAgICBOVFNUQVRVUyAgICAgICAgICAgICAgICAgICAgc3RhdHVzOwogCiAgICAgVHJh
Y2UoIj09PT0+XG4iKTsKIAorICAgIC8vCisgICAgLy8gQWZmaW5pdGl6ZSB0aGlzIHRocmVhZCB0
byB0aGUgc2FtZSBDUFUgYXMgdGhlIGV2ZW50IGNoYW5uZWwKKyAgICAvLyBhbmQgRFBDLgorICAg
IC8vCisgICAgc3RhdHVzID0gS2VHZXRQcm9jZXNzb3JOdW1iZXJGcm9tSW5kZXgoUmluZy0+SW5k
ZXgsICZQcm9jTnVtYmVyKTsKKyAgICBBU1NFUlQoTlRfU1VDQ0VTUyhzdGF0dXMpKTsKKworICAg
IEFmZmluaXR5Lkdyb3VwID0gUHJvY051bWJlci5Hcm91cDsKKyAgICBBZmZpbml0eS5NYXNrID0g
KEtBRkZJTklUWSkxIDw8IFByb2NOdW1iZXIuTnVtYmVyOworICAgIEtlU2V0U3lzdGVtR3JvdXBB
ZmZpbml0eVRocmVhZCgmQWZmaW5pdHksIE5VTEwpOworCiAgICAgVGltZW91dC5RdWFkUGFydCA9
IFRJTUVfUkVMQVRJVkUoVElNRV9TKFhFTlZJRl9UUkFOU01JVFRFUl9XQVRDSERPR19QRVJJT0Qp
KTsKICAgICBQYWNrZXRzUXVldWVkID0gMDsKIAotLSAKMi4xLjEKCgpfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0
Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2pl
Y3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Mon Jul 18 12:44:11 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 18 Jul 2016 12:44:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bP7u7-0003NI-3A; Mon, 18 Jul 2016 12:44:11 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bP7u5-0003Mg-Hu
 for win-pv-devel@lists.xenproject.org; Mon, 18 Jul 2016 12:44:09 +0000
Received: from [85.158.137.68] by server-9.bemta-3.messagelabs.com id
 85/A6-16470-81FCC875; Mon, 18 Jul 2016 12:44:08 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrFIsWRWlGSWpSXmKPExsXiVRvkrCtxvif
 cYE4Lv8WfxYkOjB6HP1xhCWCMYs3MS8qvSGDNOLV6KWPBXo6K1YePMzUw9rN3MXJxCAnMYpTY
 cfAmUxcjJweLwEsWiWWtgiAJCYF+VomWOU2MIAkJgRiJDzvesEHYlRL7zq0GiwsJKEo0X7sAN
 Wklk8Td9lZmkASbgLrE7feL2SEa7CQ+zboJZosIqEpcW34MbBCzgJbEww3zwAYJC1hInL5+hQ
 3iClWJjzuvA9VzcPAKuEtMvaMIMUZOYu/k1SwgNqeAh0TbylnMEDe4S3x9eYZlAqPgAkaGVYw
 axalFZalFuoZmeklFmekZJbmJmTm6hgbGermpxcWJ6ak5iUnFesn5uZsYgeHGAAQ7GFdt9zzE
 KMnBpCTKa7WgJ1yILyk/pTIjsTgjvqg0J7X4EKMMB4eSBO/rs0A5waLU9NSKtMwcYODDpCU4e
 JREeCPPAaV5iwsSc4sz0yFSpxh1ObZMvbeWSYglLz8vVUqc9znIDAGQoozSPLgRsCi8xCgrJc
 zLCHSUEE9BalFuZgmq/CtGcQ5GJWHelSBTeDLzSuA2vQI6ggnoCAPVbpAjShIRUlINjAyn3pW
 XCkhOfvVu29aIa7/WP9Za8vzQR++0M0dk7nnm9l4WX/d5n0Hx5wXNvxNsnE65i7iVy7OG5B2u
 6lkU3jjPQzJvW8GidbY1P2cfmdvsY77ctJ5bUPTcT34l7auiQWqroyVNv/w/Pl9zYiRjmUXkx
 1/3pD/vSXkuEdEr986Nz6rgwq7VDkosxRmJhlrMRcWJAKae+W29AgAA
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-15.tower-31.messagelabs.com!1468845848!47199183!1
X-Originating-IP: [74.125.82.67]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 43471 invoked from network); 18 Jul 2016 12:44:08 -0000
Received: from mail-wm0-f67.google.com (HELO mail-wm0-f67.google.com)
 (74.125.82.67)
 by server-15.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 18 Jul 2016 12:44:08 -0000
Received: by mail-wm0-f67.google.com with SMTP id i5so12527268wmg.2
 for <win-pv-devel@lists.xenproject.org>; Mon, 18 Jul 2016 05:44:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id:in-reply-to:references;
 bh=fl5RbkcGatDhBfRhgq9+OAXG0zXTr/sKP88U0nxkzBk=;
 b=APXtX2ANqkJztb+V/MRMX6Gd+B86n+TAypOG/bj6zRojdcgmkZ41gYk5Aj3klhGXIH
 7B3JPlTIE0yHn2kTdj/UtbtdGqAu9x4HeEUZ9dHdamcoN3TcfCPwhZvC9ejZkL7+a9u0
 7fLYP2DkYNowMl5nY3FfSLosRMfqnVC/vNhm5vtJKRxUjxcYyiR1n2T/0taZr8HUgmSG
 UqidAHsk0pucUOkJa30+OVIKdqrb6iJ4h0FXDvQi+q9xGbq4CgPMyMyTYyBnhDZsnIRY
 pK4GCXkMuAcptvjZGThXidO5VoVfbB9JhjYkg085sFkkXxNN9eueOlBNB3h4qoC2YTOX
 YmpA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
 :references;
 bh=fl5RbkcGatDhBfRhgq9+OAXG0zXTr/sKP88U0nxkzBk=;
 b=U3MaYXleN0deP0IuqB6/BQ4dZBvWt4zvqoLryqIhzervieugRjQMof+EeJALHRWZpb
 jX75KF0/DZzd3x9YfjUQrs/E4e2572dRwo6rp/sxBNciKyKWOAjHazqvuP4QzxwODLDK
 wYQOUegMCRfWyeFleBarX6Tk4oiuMT7QhmF7EGtLSvO/Cb+jz0Gxakr9ESFvQT7mZuaz
 Kii2ndq6/4MBDGBwWd93DtpwJAJtBWtgXriZ183CU9E5COzF5hlfatuHF/Qjuu7hk/hv
 1DQeUCeXgWaTKSQGR9DCajJ2P+v1mYo7xDbWxAM1AIlLbuQh9ZJ5+Qr4euwJmI8F+fNc
 eOQw==
X-Gm-Message-State: ALyK8tKxLAvg8fzyaSRanS8yerRVfIrL/i0GrTQmLhr16uE2jHnwskitx9ERnEaMPPZf5Q==
X-Received: by 10.194.150.129 with SMTP id ui1mr1033376wjb.8.1468845847796;
 Mon, 18 Jul 2016 05:44:07 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id q139sm16528777wmb.18.2016.07.18.05.44.06
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Mon, 18 Jul 2016 05:44:06 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Mon, 18 Jul 2016 13:43:54 +0100
Message-Id: <1468845835-14016-2-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1468845835-14016-1-git-send-email-paul.durrant@citrix.com>
References: <1468845835-14016-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 2/3] Avoid transmitting on the wrong CPU
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhlIHRyYW5zbWl0IGFuZCByZWNlaXZlIHJpbmdzIGhhdmUgRFBDcyBhbmQgZXZlbnQgY2hhbm5l
bHMgYWZmaW5pdGl6ZWQKdG8gYSBwYXJ0aWN1bGFyIENQVS4gVGh1cywgd2hlbiBYRU5ORVQgcXVl
dWVzIGEgbmV3IHBhY2tldCBhdCB0aGUKdHJhbnNtaXQgc2lkZSwgbWFrZSBzdXJlIHRoZSBwYWNr
ZXQgaXMgcHJlcGFyZWQgYW5kIHBvc3RlZCBmcm9tIHRoZQpDUFUgdG8gd2hpY2ggdGhlIERQQyBh
bmQgZXZlbnQgY2hhbm5lbCBhcmUgYm91bmQgdG8gYXZvaWQgbG9jayBjb250ZW50aW9uLgoKU2ln
bmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0tCiBz
cmMveGVudmlmL3RyYW5zbWl0dGVyLmMgfCA0ICsrKy0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2Vy
dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMveGVudmlmL3RyYW5zbWl0
dGVyLmMgYi9zcmMveGVudmlmL3RyYW5zbWl0dGVyLmMKaW5kZXggMTk2MzZiMy4uOTVjMzQ3OSAx
MDA2NDQKLS0tIGEvc3JjL3hlbnZpZi90cmFuc21pdHRlci5jCisrKyBiL3NyYy94ZW52aWYvdHJh
bnNtaXR0ZXIuYwpAQCAtNDAwNyw3ICs0MDA3LDkgQEAgX19UcmFuc21pdHRlclJpbmdRdWV1ZVBh
Y2tldCgKICAgICAvLyBncmFiIGl0IHRoZW4gdGhhdCdzIG9rIGJlY2F1c2Ugd2hpY2hldmVyIHRo
cmVhZCBpcyBob2xkaW5nIGl0IHdpbGwgaGF2ZSB0byBjYWxsCiAgICAgLy8gX19UcmFuc21pdHRl
clJpbmdSZWxlYXNlTG9jaygpIGFuZCB3aWxsIHRoZXJlZm9yZSBkcmFpbiB0aGUgYXRvbWljIHBh
Y2tldCBsaXN0LgogCi0gICAgaWYgKF9fVHJhbnNtaXR0ZXJSaW5nVHJ5QWNxdWlyZUxvY2soUmlu
ZykpCisgICAgaWYgKFJpbmctPkluZGV4ICE9IEtlR2V0Q3VycmVudFByb2Nlc3Nvck51bWJlckV4
KE5VTEwpKQorICAgICAgICBLZUluc2VydFF1ZXVlRHBjKCZSaW5nLT5EcGMsIE5VTEwsIE5VTEwp
OworICAgIGVsc2UgaWYgKF9fVHJhbnNtaXR0ZXJSaW5nVHJ5QWNxdWlyZUxvY2soUmluZykpCiAg
ICAgICAgIF9fVHJhbnNtaXR0ZXJSaW5nUmVsZWFzZUxvY2soUmluZyk7CiB9CiAKLS0gCjIuMS4x
CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2
LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0
cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2
LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Mon Jul 18 12:44:11 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 18 Jul 2016 12:44:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bP7u7-0003NI-3A; Mon, 18 Jul 2016 12:44:11 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bP7u5-0003Mg-Hu
 for win-pv-devel@lists.xenproject.org; Mon, 18 Jul 2016 12:44:09 +0000
Received: from [85.158.137.68] by server-9.bemta-3.messagelabs.com id
 85/A6-16470-81FCC875; Mon, 18 Jul 2016 12:44:08 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrFIsWRWlGSWpSXmKPExsXiVRvkrCtxvif
 cYE4Lv8WfxYkOjB6HP1xhCWCMYs3MS8qvSGDNOLV6KWPBXo6K1YePMzUw9rN3MXJxCAnMYpTY
 cfAmUxcjJweLwEsWiWWtgiAJCYF+VomWOU2MIAkJgRiJDzvesEHYlRL7zq0GiwsJKEo0X7sAN
 Wklk8Td9lZmkASbgLrE7feL2SEa7CQ+zboJZosIqEpcW34MbBCzgJbEww3zwAYJC1hInL5+hQ
 3iClWJjzuvA9VzcPAKuEtMvaMIMUZOYu/k1SwgNqeAh0TbylnMEDe4S3x9eYZlAqPgAkaGVYw
 axalFZalFuoZmeklFmekZJbmJmTm6hgbGermpxcWJ6ak5iUnFesn5uZsYgeHGAAQ7GFdt9zzE
 KMnBpCTKa7WgJ1yILyk/pTIjsTgjvqg0J7X4EKMMB4eSBO/rs0A5waLU9NSKtMwcYODDpCU4e
 JREeCPPAaV5iwsSc4sz0yFSpxh1ObZMvbeWSYglLz8vVUqc9znIDAGQoozSPLgRsCi8xCgrJc
 zLCHSUEE9BalFuZgmq/CtGcQ5GJWHelSBTeDLzSuA2vQI6ggnoCAPVbpAjShIRUlINjAyn3pW
 XCkhOfvVu29aIa7/WP9Za8vzQR++0M0dk7nnm9l4WX/d5n0Hx5wXNvxNsnE65i7iVy7OG5B2u
 6lkU3jjPQzJvW8GidbY1P2cfmdvsY77ctJ5bUPTcT34l7auiQWqroyVNv/w/Pl9zYiRjmUXkx
 1/3pD/vSXkuEdEr986Nz6rgwq7VDkosxRmJhlrMRcWJAKae+W29AgAA
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-15.tower-31.messagelabs.com!1468845848!47199183!1
X-Originating-IP: [74.125.82.67]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 43471 invoked from network); 18 Jul 2016 12:44:08 -0000
Received: from mail-wm0-f67.google.com (HELO mail-wm0-f67.google.com)
 (74.125.82.67)
 by server-15.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 18 Jul 2016 12:44:08 -0000
Received: by mail-wm0-f67.google.com with SMTP id i5so12527268wmg.2
 for <win-pv-devel@lists.xenproject.org>; Mon, 18 Jul 2016 05:44:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id:in-reply-to:references;
 bh=fl5RbkcGatDhBfRhgq9+OAXG0zXTr/sKP88U0nxkzBk=;
 b=APXtX2ANqkJztb+V/MRMX6Gd+B86n+TAypOG/bj6zRojdcgmkZ41gYk5Aj3klhGXIH
 7B3JPlTIE0yHn2kTdj/UtbtdGqAu9x4HeEUZ9dHdamcoN3TcfCPwhZvC9ejZkL7+a9u0
 7fLYP2DkYNowMl5nY3FfSLosRMfqnVC/vNhm5vtJKRxUjxcYyiR1n2T/0taZr8HUgmSG
 UqidAHsk0pucUOkJa30+OVIKdqrb6iJ4h0FXDvQi+q9xGbq4CgPMyMyTYyBnhDZsnIRY
 pK4GCXkMuAcptvjZGThXidO5VoVfbB9JhjYkg085sFkkXxNN9eueOlBNB3h4qoC2YTOX
 YmpA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
 :references;
 bh=fl5RbkcGatDhBfRhgq9+OAXG0zXTr/sKP88U0nxkzBk=;
 b=U3MaYXleN0deP0IuqB6/BQ4dZBvWt4zvqoLryqIhzervieugRjQMof+EeJALHRWZpb
 jX75KF0/DZzd3x9YfjUQrs/E4e2572dRwo6rp/sxBNciKyKWOAjHazqvuP4QzxwODLDK
 wYQOUegMCRfWyeFleBarX6Tk4oiuMT7QhmF7EGtLSvO/Cb+jz0Gxakr9ESFvQT7mZuaz
 Kii2ndq6/4MBDGBwWd93DtpwJAJtBWtgXriZ183CU9E5COzF5hlfatuHF/Qjuu7hk/hv
 1DQeUCeXgWaTKSQGR9DCajJ2P+v1mYo7xDbWxAM1AIlLbuQh9ZJ5+Qr4euwJmI8F+fNc
 eOQw==
X-Gm-Message-State: ALyK8tKxLAvg8fzyaSRanS8yerRVfIrL/i0GrTQmLhr16uE2jHnwskitx9ERnEaMPPZf5Q==
X-Received: by 10.194.150.129 with SMTP id ui1mr1033376wjb.8.1468845847796;
 Mon, 18 Jul 2016 05:44:07 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id q139sm16528777wmb.18.2016.07.18.05.44.06
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Mon, 18 Jul 2016 05:44:06 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Mon, 18 Jul 2016 13:43:54 +0100
Message-Id: <1468845835-14016-2-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1468845835-14016-1-git-send-email-paul.durrant@citrix.com>
References: <1468845835-14016-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 2/3] Avoid transmitting on the wrong CPU
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhlIHRyYW5zbWl0IGFuZCByZWNlaXZlIHJpbmdzIGhhdmUgRFBDcyBhbmQgZXZlbnQgY2hhbm5l
bHMgYWZmaW5pdGl6ZWQKdG8gYSBwYXJ0aWN1bGFyIENQVS4gVGh1cywgd2hlbiBYRU5ORVQgcXVl
dWVzIGEgbmV3IHBhY2tldCBhdCB0aGUKdHJhbnNtaXQgc2lkZSwgbWFrZSBzdXJlIHRoZSBwYWNr
ZXQgaXMgcHJlcGFyZWQgYW5kIHBvc3RlZCBmcm9tIHRoZQpDUFUgdG8gd2hpY2ggdGhlIERQQyBh
bmQgZXZlbnQgY2hhbm5lbCBhcmUgYm91bmQgdG8gYXZvaWQgbG9jayBjb250ZW50aW9uLgoKU2ln
bmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0tCiBz
cmMveGVudmlmL3RyYW5zbWl0dGVyLmMgfCA0ICsrKy0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2Vy
dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMveGVudmlmL3RyYW5zbWl0
dGVyLmMgYi9zcmMveGVudmlmL3RyYW5zbWl0dGVyLmMKaW5kZXggMTk2MzZiMy4uOTVjMzQ3OSAx
MDA2NDQKLS0tIGEvc3JjL3hlbnZpZi90cmFuc21pdHRlci5jCisrKyBiL3NyYy94ZW52aWYvdHJh
bnNtaXR0ZXIuYwpAQCAtNDAwNyw3ICs0MDA3LDkgQEAgX19UcmFuc21pdHRlclJpbmdRdWV1ZVBh
Y2tldCgKICAgICAvLyBncmFiIGl0IHRoZW4gdGhhdCdzIG9rIGJlY2F1c2Ugd2hpY2hldmVyIHRo
cmVhZCBpcyBob2xkaW5nIGl0IHdpbGwgaGF2ZSB0byBjYWxsCiAgICAgLy8gX19UcmFuc21pdHRl
clJpbmdSZWxlYXNlTG9jaygpIGFuZCB3aWxsIHRoZXJlZm9yZSBkcmFpbiB0aGUgYXRvbWljIHBh
Y2tldCBsaXN0LgogCi0gICAgaWYgKF9fVHJhbnNtaXR0ZXJSaW5nVHJ5QWNxdWlyZUxvY2soUmlu
ZykpCisgICAgaWYgKFJpbmctPkluZGV4ICE9IEtlR2V0Q3VycmVudFByb2Nlc3Nvck51bWJlckV4
KE5VTEwpKQorICAgICAgICBLZUluc2VydFF1ZXVlRHBjKCZSaW5nLT5EcGMsIE5VTEwsIE5VTEwp
OworICAgIGVsc2UgaWYgKF9fVHJhbnNtaXR0ZXJSaW5nVHJ5QWNxdWlyZUxvY2soUmluZykpCiAg
ICAgICAgIF9fVHJhbnNtaXR0ZXJSaW5nUmVsZWFzZUxvY2soUmluZyk7CiB9CiAKLS0gCjIuMS4x
CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2
LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0
cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2
LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Mon Jul 18 12:44:12 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 18 Jul 2016 12:44:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bP7u8-0003Nr-4O; Mon, 18 Jul 2016 12:44:12 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bP7u6-0003Mm-80
 for win-pv-devel@lists.xenproject.org; Mon, 18 Jul 2016 12:44:10 +0000
Received: from [85.158.137.68] by server-13.bemta-3.messagelabs.com id
 EE/5D-20705-91FCC875; Mon, 18 Jul 2016 12:44:09 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrFIsWRWlGSWpSXmKPExsXiVRvkqCt5vif
 cYJW3xZ/FiQ6MHoc/XGEJYIxizcxLyq9IYM341bSJqeAne8Wxo9+YGhhPsnUxcnEICcxilOjY
 sosRxGEReMkiceFoJzOIIyHQzyrRMnsGUxcjJ5ATI3Fn1V+WLkYOILtSYvoXL5CwkICiRPO1C
 +wQk1YySWz9fpUVJMEmoC5x+/1idoheO4lPs26C2SICqhLXlh9jA7GZBbQkHm6YxwhiCwsESq
 y78A6slwWo5v6byWD1vALuEu+/nWeDmCMnsXfyahYQm1PAQ6Jt5SxmiCPcJb6+PMMygVFwASP
 DKkaN4tSistQiXUNDvaSizPSMktzEzBxdQwNjvdzU4uLE9NScxKRiveT83E2MwHBjAIIdjKt/
 Ox1ilORgUhLltVrQEy7El5SfUpmRWJwRX1Sak1p8iFGGg0NJgvf1WaCcYFFqempFWmYOMPBh0
 hIcPEoivJHngNK8xQWJucWZ6RCpU4y6HFum3lvLJMSSl5+XKiXO+xxkhgBIUUZpHtwIWBReYp
 SVEuZlBDpKiKcgtSg3swRV/hWjOAejkjDvSpApPJl5JXCbXgEdwQR0hIFqN8gRJYkIKakGRjV
 eswzdV9FqXefd72svb5u9qPVF1aw3G361/rofWeucHHJrwQ/7zoULZG6ulxSQcPqlNz1lh1Ho
 9qUXbtt1chp6bxV8+e96j1VR5Rwu/yOTuULPerG91wr2d2qV/Opl93DqiScPl9Yf0mU0ftO1Y
 K2LbZHDk8tCcb5hGfMsF/t+rt6VbCS4WYmlOCPRUIu5qDgRAGXWU0i9AgAA
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-8.tower-31.messagelabs.com!1468845848!51199357!1
X-Originating-IP: [74.125.82.65]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 17872 invoked from network); 18 Jul 2016 12:44:08 -0000
Received: from mail-wm0-f65.google.com (HELO mail-wm0-f65.google.com)
 (74.125.82.65)
 by server-8.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 18 Jul 2016 12:44:08 -0000
Received: by mail-wm0-f65.google.com with SMTP id i5so12527343wmg.2
 for <win-pv-devel@lists.xenproject.org>; Mon, 18 Jul 2016 05:44:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id:in-reply-to:references;
 bh=8n9vBqMM0vWJgI7tKdMk75Xp3zyCUjRlNxiGZgfj3lM=;
 b=jI0/mdb/xN1oU8fLVkN9xAB2D3yxB+YAXzeEvksyoJ+OzOx28kj13z5T/HL/DdAki0
 bS7gm01wNpsNYyF6uUfszc56mc9ypDvVwyh/6ZSofedTpyc/DkcpOKpTGo5+TdSzxs+t
 9XI+DymWKU5Joa5V8PqTQJQ+KOqulIDWOyJa2+Y+JCeyf5K5/H7M6eK2lClIBZFBBvI9
 4N6xrB8/R77XCxfmqP0mn+POpWqlbQ0/hjsoimBNFRy7hWjXSP6XPpPeB8KSi/2kMvEU
 23Tx0GxRNUyM5L/BU1/75Q+iSaRoph3gXGYQ+IMLBZih9v9DUM5WTf2hSLiQYvPF2zrG
 38ig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
 :references;
 bh=8n9vBqMM0vWJgI7tKdMk75Xp3zyCUjRlNxiGZgfj3lM=;
 b=JxMjAaSNkn4ZsfSzlgu5dBButIa5x96DTFhOOqIqSQMqsZg2XdJOdN6TfigGNM2X0P
 bnGi5rrQntBQAAIj4OpGCPIiJzFsPCvUfkbAF2IPHzv6PT9CCPwaRrVfrLpN5yeLR8h1
 c4den296V7q0XdYyPxiUja9e9PLNCL/dgyx5S9qzjNO/F/H/qgENGSA8Z7wvoi9ujwvu
 JwDoiQgLJnWOtqkpiW4qL0ZTwVslx7AQIs6ZjuyJE72nfzWWdzs/HvzTs2JtxVA7cCQh
 SDgGNYfzNfDu6g1W0qhX2uAqmUAXRiNFX1yU6wq7tSIcFJbCDF7rr3iLJsiNUB+A43AJ
 y5HQ==
X-Gm-Message-State: ALyK8tKquFYGG58cCYM01fKL5C/4Qwq80VsgQg6XawTgA2Oku+SwUHeHH1uqYSwN7XXiOg==
X-Received: by 10.194.161.6 with SMTP id xo6mr1058142wjb.135.1468845848681;
 Mon, 18 Jul 2016 05:44:08 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id q139sm16528777wmb.18.2016.07.18.05.44.07
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Mon, 18 Jul 2016 05:44:08 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Mon, 18 Jul 2016 13:43:55 +0100
Message-Id: <1468845835-14016-3-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1468845835-14016-1-git-send-email-paul.durrant@citrix.com>
References: <1468845835-14016-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 3/3] Defer transmit response event until the
	last possible moment
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

V2hlbiBzZW5kaW5nIHBhY2tldHMsIHRoZXJlIGlzIG5vIG5lZWQgdG8gZW5hYmxlIGEgdHJhbnNt
aXQgcmVwb25zZQpldmVudCB1bnRpbCB0aGUgcmluZyBmaWxscyBvciB0aGVyZSBhcmUgbm8gbW9y
ZSBwYWNrZXRzIHRvIHNlbmQuCgpUaGlzIHBhdGNoIHRoZXJlZm9yZSBkZWZlcnMgYWR2YW5jaW5n
IHRoZSByaW5nIGV2ZW50IGNvdW50IHVudGlsIGp1c3QKYmVmb3JlIGEgYmF0Y2ggb2YgcGFja2V0
cyBhcmUgcHVzaGVkLgoKU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRA
Y2l0cml4LmNvbT4KLS0tCiBzcmMveGVudmlmL3RyYW5zbWl0dGVyLmMgfCAzICsrLQogMSBmaWxl
IGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3Ny
Yy94ZW52aWYvdHJhbnNtaXR0ZXIuYyBiL3NyYy94ZW52aWYvdHJhbnNtaXR0ZXIuYwppbmRleCA5
NWMzNDc5Li5iNTVkYWEzIDEwMDY0NAotLS0gYS9zcmMveGVudmlmL3RyYW5zbWl0dGVyLmMKKysr
IGIvc3JjL3hlbnZpZi90cmFuc21pdHRlci5jCkBAIC0yNjA0LDcgKzI2MDQsNiBAQCBUcmFuc21p
dHRlclJpbmdQb2xsKAogICAgICAgICBLZU1lbW9yeUJhcnJpZXIoKTsKIAogICAgICAgICBSaW5n
LT5Gcm9udC5yc3BfY29ucyA9IHJzcF9jb25zOwotICAgICAgICBSaW5nLT5TaGFyZWQtPnJzcF9l
dmVudCA9IHJzcF9jb25zICsgMTsKICAgICB9CiAKIGRvbmU6CkBAIC0yNjc4LDYgKzI2NzcsOCBA
QCBfX1RyYW5zbWl0dGVyUmluZ1B1c2hSZXF1ZXN0cygKICNwcmFnbWEgd2FybmluZyAocHVzaCkK
ICNwcmFnbWEgd2FybmluZyAoZGlzYWJsZTo0MjQ0KQogCisgICAgUmluZy0+U2hhcmVkLT5yc3Bf
ZXZlbnQgPSBSaW5nLT5Gcm9udC5yZXFfcHJvZF9wdnQ7CisKICAgICAvLyBNYWtlIHRoZSByZXF1
ZXN0cyB2aXNpYmxlIHRvIHRoZSBiYWNrZW5kCiAgICAgUklOR19QVVNIX1JFUVVFU1RTX0FORF9D
SEVDS19OT1RJRlkoJlJpbmctPkZyb250LCBOb3RpZnkpOwogCi0tIAoyLjEuMQoKCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWls
aW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMu
eGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Mon Jul 18 12:44:12 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 18 Jul 2016 12:44:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bP7u8-0003Nr-4O; Mon, 18 Jul 2016 12:44:12 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bP7u6-0003Mm-80
 for win-pv-devel@lists.xenproject.org; Mon, 18 Jul 2016 12:44:10 +0000
Received: from [85.158.137.68] by server-13.bemta-3.messagelabs.com id
 EE/5D-20705-91FCC875; Mon, 18 Jul 2016 12:44:09 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrFIsWRWlGSWpSXmKPExsXiVRvkqCt5vif
 cYJW3xZ/FiQ6MHoc/XGEJYIxizcxLyq9IYM341bSJqeAne8Wxo9+YGhhPsnUxcnEICcxilOjY
 sosRxGEReMkiceFoJzOIIyHQzyrRMnsGUxcjJ5ATI3Fn1V+WLkYOILtSYvoXL5CwkICiRPO1C
 +wQk1YySWz9fpUVJMEmoC5x+/1idoheO4lPs26C2SICqhLXlh9jA7GZBbQkHm6YxwhiCwsESq
 y78A6slwWo5v6byWD1vALuEu+/nWeDmCMnsXfyahYQm1PAQ6Jt5SxmiCPcJb6+PMMygVFwASP
 DKkaN4tSistQiXUNDvaSizPSMktzEzBxdQwNjvdzU4uLE9NScxKRiveT83E2MwHBjAIIdjKt/
 Ox1ilORgUhLltVrQEy7El5SfUpmRWJwRX1Sak1p8iFGGg0NJgvf1WaCcYFFqempFWmYOMPBh0
 hIcPEoivJHngNK8xQWJucWZ6RCpU4y6HFum3lvLJMSSl5+XKiXO+xxkhgBIUUZpHtwIWBReYp
 SVEuZlBDpKiKcgtSg3swRV/hWjOAejkjDvSpApPJl5JXCbXgEdwQR0hIFqN8gRJYkIKakGRjV
 eswzdV9FqXefd72svb5u9qPVF1aw3G361/rofWeucHHJrwQ/7zoULZG6ulxSQcPqlNz1lh1Ho
 9qUXbtt1chp6bxV8+e96j1VR5Rwu/yOTuULPerG91wr2d2qV/Opl93DqiScPl9Yf0mU0ftO1Y
 K2LbZHDk8tCcb5hGfMsF/t+rt6VbCS4WYmlOCPRUIu5qDgRAGXWU0i9AgAA
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-8.tower-31.messagelabs.com!1468845848!51199357!1
X-Originating-IP: [74.125.82.65]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 17872 invoked from network); 18 Jul 2016 12:44:08 -0000
Received: from mail-wm0-f65.google.com (HELO mail-wm0-f65.google.com)
 (74.125.82.65)
 by server-8.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 18 Jul 2016 12:44:08 -0000
Received: by mail-wm0-f65.google.com with SMTP id i5so12527343wmg.2
 for <win-pv-devel@lists.xenproject.org>; Mon, 18 Jul 2016 05:44:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id:in-reply-to:references;
 bh=8n9vBqMM0vWJgI7tKdMk75Xp3zyCUjRlNxiGZgfj3lM=;
 b=jI0/mdb/xN1oU8fLVkN9xAB2D3yxB+YAXzeEvksyoJ+OzOx28kj13z5T/HL/DdAki0
 bS7gm01wNpsNYyF6uUfszc56mc9ypDvVwyh/6ZSofedTpyc/DkcpOKpTGo5+TdSzxs+t
 9XI+DymWKU5Joa5V8PqTQJQ+KOqulIDWOyJa2+Y+JCeyf5K5/H7M6eK2lClIBZFBBvI9
 4N6xrB8/R77XCxfmqP0mn+POpWqlbQ0/hjsoimBNFRy7hWjXSP6XPpPeB8KSi/2kMvEU
 23Tx0GxRNUyM5L/BU1/75Q+iSaRoph3gXGYQ+IMLBZih9v9DUM5WTf2hSLiQYvPF2zrG
 38ig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
 :references;
 bh=8n9vBqMM0vWJgI7tKdMk75Xp3zyCUjRlNxiGZgfj3lM=;
 b=JxMjAaSNkn4ZsfSzlgu5dBButIa5x96DTFhOOqIqSQMqsZg2XdJOdN6TfigGNM2X0P
 bnGi5rrQntBQAAIj4OpGCPIiJzFsPCvUfkbAF2IPHzv6PT9CCPwaRrVfrLpN5yeLR8h1
 c4den296V7q0XdYyPxiUja9e9PLNCL/dgyx5S9qzjNO/F/H/qgENGSA8Z7wvoi9ujwvu
 JwDoiQgLJnWOtqkpiW4qL0ZTwVslx7AQIs6ZjuyJE72nfzWWdzs/HvzTs2JtxVA7cCQh
 SDgGNYfzNfDu6g1W0qhX2uAqmUAXRiNFX1yU6wq7tSIcFJbCDF7rr3iLJsiNUB+A43AJ
 y5HQ==
X-Gm-Message-State: ALyK8tKquFYGG58cCYM01fKL5C/4Qwq80VsgQg6XawTgA2Oku+SwUHeHH1uqYSwN7XXiOg==
X-Received: by 10.194.161.6 with SMTP id xo6mr1058142wjb.135.1468845848681;
 Mon, 18 Jul 2016 05:44:08 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id q139sm16528777wmb.18.2016.07.18.05.44.07
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Mon, 18 Jul 2016 05:44:08 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Mon, 18 Jul 2016 13:43:55 +0100
Message-Id: <1468845835-14016-3-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1468845835-14016-1-git-send-email-paul.durrant@citrix.com>
References: <1468845835-14016-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 3/3] Defer transmit response event until the
	last possible moment
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

V2hlbiBzZW5kaW5nIHBhY2tldHMsIHRoZXJlIGlzIG5vIG5lZWQgdG8gZW5hYmxlIGEgdHJhbnNt
aXQgcmVwb25zZQpldmVudCB1bnRpbCB0aGUgcmluZyBmaWxscyBvciB0aGVyZSBhcmUgbm8gbW9y
ZSBwYWNrZXRzIHRvIHNlbmQuCgpUaGlzIHBhdGNoIHRoZXJlZm9yZSBkZWZlcnMgYWR2YW5jaW5n
IHRoZSByaW5nIGV2ZW50IGNvdW50IHVudGlsIGp1c3QKYmVmb3JlIGEgYmF0Y2ggb2YgcGFja2V0
cyBhcmUgcHVzaGVkLgoKU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRA
Y2l0cml4LmNvbT4KLS0tCiBzcmMveGVudmlmL3RyYW5zbWl0dGVyLmMgfCAzICsrLQogMSBmaWxl
IGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3Ny
Yy94ZW52aWYvdHJhbnNtaXR0ZXIuYyBiL3NyYy94ZW52aWYvdHJhbnNtaXR0ZXIuYwppbmRleCA5
NWMzNDc5Li5iNTVkYWEzIDEwMDY0NAotLS0gYS9zcmMveGVudmlmL3RyYW5zbWl0dGVyLmMKKysr
IGIvc3JjL3hlbnZpZi90cmFuc21pdHRlci5jCkBAIC0yNjA0LDcgKzI2MDQsNiBAQCBUcmFuc21p
dHRlclJpbmdQb2xsKAogICAgICAgICBLZU1lbW9yeUJhcnJpZXIoKTsKIAogICAgICAgICBSaW5n
LT5Gcm9udC5yc3BfY29ucyA9IHJzcF9jb25zOwotICAgICAgICBSaW5nLT5TaGFyZWQtPnJzcF9l
dmVudCA9IHJzcF9jb25zICsgMTsKICAgICB9CiAKIGRvbmU6CkBAIC0yNjc4LDYgKzI2NzcsOCBA
QCBfX1RyYW5zbWl0dGVyUmluZ1B1c2hSZXF1ZXN0cygKICNwcmFnbWEgd2FybmluZyAocHVzaCkK
ICNwcmFnbWEgd2FybmluZyAoZGlzYWJsZTo0MjQ0KQogCisgICAgUmluZy0+U2hhcmVkLT5yc3Bf
ZXZlbnQgPSBSaW5nLT5Gcm9udC5yZXFfcHJvZF9wdnQ7CisKICAgICAvLyBNYWtlIHRoZSByZXF1
ZXN0cyB2aXNpYmxlIHRvIHRoZSBiYWNrZW5kCiAgICAgUklOR19QVVNIX1JFUVVFU1RTX0FORF9D
SEVDS19OT1RJRlkoJlJpbmctPkZyb250LCBOb3RpZnkpOwogCi0tIAoyLjEuMQoKCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWls
aW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMu
eGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 19 13:17:02 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 19 Jul 2016 13:17:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bPUtQ-0007LW-Hn; Tue, 19 Jul 2016 13:17:00 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bPUtP-0007LO-Hn
 for win-pv-devel@lists.xenproject.org; Tue, 19 Jul 2016 13:16:59 +0000
Received: from [85.158.139.211] by server-10.bemta-5.messagelabs.com id
 BE/AB-19922-A482E875; Tue, 19 Jul 2016 13:16:58 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprBIsWRWlGSWpSXmKPExsXiVRvkqOul0Rd
 usHS1gMWfxYkOjB6HP1xhCWCMYs3MS8qvSGDNaF56nbHgPHvF/ZfLWBsYG9m6GLk4hARmMUo8
 7nnIDuKwCFxikWj4vZkVxJEQeMci0dJ+mKWLkRPIiZE4fKebCcKukNi/so8ZxBYSUJRovnaBH
 cJeyiSxbj2YzSagLnH7/WJ2iHo7iU+zboLZIgKqEteWH2MDsZkFtCQebpjHCGILCxhJXO/tZg
 WxWYBqPn7tBKvnFXCXeLnnBSvEHDmJvZNXs0xg5F/AyLCKUb04tagstUjXRC+pKDM9oyQ3MTN
 H19DAVC83tbg4MT01JzGpWC85P3cTIzB8GIBgB+OtPudDjJIcTEqivKqiveFCfEn5KZUZicUZ
 8UWlOanFhxhlODiUJHg71frChQSLUtNTK9Iyc4CBDJOW4OBREuENAEnzFhck5hZnpkOkTjEac
 yz4cXstE8eWqffWMgmx5OXnpUqJ88aDlAqAlGaU5sENgkXYJUZZKWFeRqDThHgKUotyM0tQ5V
 8xinMwKgnzrgWZwpOZVwK37xXQKUxApxiodoOcUpKIkJJqYGyoYJrw3+Xk55TcW5UP/j15JXM
 yfZbqho/HAm5a7Hy/J1XpQ2sc+wb1/mB78fAS/smeRh2f/7HoXTo7Xyd3cclc5S/npcqfHTjv
 GRYao3eSTcrApOWO7UXhs+pnKk79WHD0gPn1KKYzSod+Pvyqt376j9mnVcuzmXIPcuyb8KJ0R
 4kho3CUlpMSS3FGoqEWc1FxIgBgyavQqwIAAA==
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-10.tower-206.messagelabs.com!1468934218!33157429!1
X-Originating-IP: [74.125.82.65]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13242 invoked from network); 19 Jul 2016 13:16:58 -0000
Received: from mail-wm0-f65.google.com (HELO mail-wm0-f65.google.com)
 (74.125.82.65)
 by server-10.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 19 Jul 2016 13:16:58 -0000
Received: by mail-wm0-f65.google.com with SMTP id o80so2807676wme.0
 for <win-pv-devel@lists.xenproject.org>; Tue, 19 Jul 2016 06:16:58 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=tcMnhcaQH4VS9kXLHYtoArGtzbnR7jwRN7F1AL4d7zo=;
 b=fm8zBoIOHHusZfO/nwFeWpwn4o0TTBkMpfZaxqwGA9TXfqs25qRjhKLY+cwX93PawW
 JgEsvv4U455Zdstl0zpSepWWHMdWq6ETbsKO21trNPdVF1qlnAJ5b95Ccfhgmag564nN
 I0iBhQ+scxw6SBvEq+Nj9/PWNUnyz1qoZUENmCKL5K/wD7LojTYfM7sUN/XNn3TRL6B5
 0sHXZP4wn/mWOxFVwxiHk4+hn3XMjwqw0JsVVDo4sjzla24Zmu50K63dkjD50feCVlKm
 Ve+G0ZGJ3bb6hzlJupDQ5VV6UoewSJVf7TLQMXWSysOtVTDW2lqZCNNHXSRSDqcjX9ls
 I15w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=tcMnhcaQH4VS9kXLHYtoArGtzbnR7jwRN7F1AL4d7zo=;
 b=lRkX15p1PxQj4CcwVcaIW72OA7VuQgfevyMAzLWPNXjTFAVxFTVzmMN/Ow+Ef05cSl
 gYbNRpaenL7UnLDZGJOdiA2lIiNYvspduytrg4F+trM99BP4BQFAw/mZpnz2FU67W9kq
 9/Veyc3NOJnFVT3fswbOvOgDpcVZ2Adgo0oaf9ApnAoOXh3hT+aH/p79/G6Gs/aBIdC4
 MQLnmHP4xSLMuF+g+GgJLfLW58xyemNKT2r1pL7zEBmcX9/nfq+oGR6L7ni0Cwf2nDwq
 /qKDFOweojuv7Z03O1FSk+gLnP44O9rVJae+gsrxwiiXATkBBGdWv/W6sgOQbhq9b9VV
 HZMA==
X-Gm-Message-State: ALyK8tJ1UxK+jAEn7pAnuz/NTF1jy6/M+y981vfq5NGBHKCaP8mlwgIJ2AmEsCBBMki+dQ==
X-Received: by 10.28.16.193 with SMTP id 184mr4502815wmq.62.1468934217830;
 Tue, 19 Jul 2016 06:16:57 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id d8sm5591399wmi.0.2016.07.19.06.16.56
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Tue, 19 Jul 2016 06:16:57 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 19 Jul 2016 14:16:40 +0100
Message-Id: <1468934200-12588-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Reduce priority of suspend thread
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

SW4gY3ljbGVzIG9mIHJlcGVhdGVkIHN1c3BlbmQvcmVzdW1lIGF0dGVtcHQgdG8gbWFrZSBzdXJl
IG90aGVyIHRocmVhZHMKZ2V0IHRvIHJ1biBieToKCmEpIERyb3BwaW5nIHRoZSBwcmlvcml0eSBv
ZiB0aGUgc3VzcGVuZCB0aHJlYWQgYXMgbG93IGFzIHBvc3NpYmxlLgpiKSBEZWxpYmVyYXRlbHkg
d2FpdGluZyBmb3IgRFBTYyBvbiBvdGhlciBDUFVzIHRvIGNvbXBsZXRlIGJlZm9yZQogICBjaGVj
a2luZyB4ZW5zdG9yZSBhZ2Fpbi4KClNpZ25lZC1vZmYtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5k
dXJyYW50QGNpdHJpeC5jb20+Ci0tLQogc3JjL3hlbmJ1cy9mZG8uYyB8IDUgKysrKysKIDEgZmls
ZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmMveGVuYnVzL2Zkby5j
IGIvc3JjL3hlbmJ1cy9mZG8uYwppbmRleCBkYTVjZGNjLi5jZTRkNGFjIDEwMDY0NAotLS0gYS9z
cmMveGVuYnVzL2Zkby5jCisrKyBiL3NyYy94ZW5idXMvZmRvLmMKQEAgLTE0NjIsNiArMTQ2Miw5
IEBAIEZkb1N1c3BlbmQoCiAgICAgQWZmaW5pdHkuTWFzayA9IChLQUZGSU5JVFkpMTsKICAgICBL
ZVNldFN5c3RlbUdyb3VwQWZmaW5pdHlUaHJlYWQoJkFmZmluaXR5LCBOVUxMKTsKIAorICAgIChW
T0lEKSBLZVNldFByaW9yaXR5VGhyZWFkKEtlR2V0Q3VycmVudFRocmVhZCgpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIExPV19QUklPUklUWSk7CisKICAgICBFdmVudCA9IFRocmVh
ZEdldEV2ZW50KFNlbGYpOwogCiAgICAgZm9yICg7OykgewpAQCAtMTUyMiw2ICsxNTI1LDggQEAg
RmRvU3VzcGVuZCgKIAogICAgICAgICBfX0Zkb1N1c3BlbmRDbGVhckFjdGl2ZShGZG8pOwogCisg
ICAgICAgIEtlRmx1c2hRdWV1ZWREcGNzKCk7CisKIGxvb3A6CiAgICAgICAgIEtlU2V0RXZlbnQo
JkZkby0+U3VzcGVuZEV2ZW50LCBJT19OT19JTkNSRU1FTlQsIEZBTFNFKTsKICAgICB9Ci0tIAoy
LjEuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndp
bi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3Jn
Cmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dp
bi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 19 13:17:02 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 19 Jul 2016 13:17:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bPUtQ-0007LW-Hn; Tue, 19 Jul 2016 13:17:00 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bPUtP-0007LO-Hn
 for win-pv-devel@lists.xenproject.org; Tue, 19 Jul 2016 13:16:59 +0000
Received: from [85.158.139.211] by server-10.bemta-5.messagelabs.com id
 BE/AB-19922-A482E875; Tue, 19 Jul 2016 13:16:58 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprBIsWRWlGSWpSXmKPExsXiVRvkqOul0Rd
 usHS1gMWfxYkOjB6HP1xhCWCMYs3MS8qvSGDNaF56nbHgPHvF/ZfLWBsYG9m6GLk4hARmMUo8
 7nnIDuKwCFxikWj4vZkVxJEQeMci0dJ+mKWLkRPIiZE4fKebCcKukNi/so8ZxBYSUJRovnaBH
 cJeyiSxbj2YzSagLnH7/WJ2iHo7iU+zboLZIgKqEteWH2MDsZkFtCQebpjHCGILCxhJXO/tZg
 WxWYBqPn7tBKvnFXCXeLnnBSvEHDmJvZNXs0xg5F/AyLCKUb04tagstUjXRC+pKDM9oyQ3MTN
 H19DAVC83tbg4MT01JzGpWC85P3cTIzB8GIBgB+OtPudDjJIcTEqivKqiveFCfEn5KZUZicUZ
 8UWlOanFhxhlODiUJHg71frChQSLUtNTK9Iyc4CBDJOW4OBREuENAEnzFhck5hZnpkOkTjEac
 yz4cXstE8eWqffWMgmx5OXnpUqJ88aDlAqAlGaU5sENgkXYJUZZKWFeRqDThHgKUotyM0tQ5V
 8xinMwKgnzrgWZwpOZVwK37xXQKUxApxiodoOcUpKIkJJqYGyoYJrw3+Xk55TcW5UP/j15JXM
 yfZbqho/HAm5a7Hy/J1XpQ2sc+wb1/mB78fAS/smeRh2f/7HoXTo7Xyd3cclc5S/npcqfHTjv
 GRYao3eSTcrApOWO7UXhs+pnKk79WHD0gPn1KKYzSod+Pvyqt376j9mnVcuzmXIPcuyb8KJ0R
 4kho3CUlpMSS3FGoqEWc1FxIgBgyavQqwIAAA==
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-10.tower-206.messagelabs.com!1468934218!33157429!1
X-Originating-IP: [74.125.82.65]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 13242 invoked from network); 19 Jul 2016 13:16:58 -0000
Received: from mail-wm0-f65.google.com (HELO mail-wm0-f65.google.com)
 (74.125.82.65)
 by server-10.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 19 Jul 2016 13:16:58 -0000
Received: by mail-wm0-f65.google.com with SMTP id o80so2807676wme.0
 for <win-pv-devel@lists.xenproject.org>; Tue, 19 Jul 2016 06:16:58 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=tcMnhcaQH4VS9kXLHYtoArGtzbnR7jwRN7F1AL4d7zo=;
 b=fm8zBoIOHHusZfO/nwFeWpwn4o0TTBkMpfZaxqwGA9TXfqs25qRjhKLY+cwX93PawW
 JgEsvv4U455Zdstl0zpSepWWHMdWq6ETbsKO21trNPdVF1qlnAJ5b95Ccfhgmag564nN
 I0iBhQ+scxw6SBvEq+Nj9/PWNUnyz1qoZUENmCKL5K/wD7LojTYfM7sUN/XNn3TRL6B5
 0sHXZP4wn/mWOxFVwxiHk4+hn3XMjwqw0JsVVDo4sjzla24Zmu50K63dkjD50feCVlKm
 Ve+G0ZGJ3bb6hzlJupDQ5VV6UoewSJVf7TLQMXWSysOtVTDW2lqZCNNHXSRSDqcjX9ls
 I15w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=tcMnhcaQH4VS9kXLHYtoArGtzbnR7jwRN7F1AL4d7zo=;
 b=lRkX15p1PxQj4CcwVcaIW72OA7VuQgfevyMAzLWPNXjTFAVxFTVzmMN/Ow+Ef05cSl
 gYbNRpaenL7UnLDZGJOdiA2lIiNYvspduytrg4F+trM99BP4BQFAw/mZpnz2FU67W9kq
 9/Veyc3NOJnFVT3fswbOvOgDpcVZ2Adgo0oaf9ApnAoOXh3hT+aH/p79/G6Gs/aBIdC4
 MQLnmHP4xSLMuF+g+GgJLfLW58xyemNKT2r1pL7zEBmcX9/nfq+oGR6L7ni0Cwf2nDwq
 /qKDFOweojuv7Z03O1FSk+gLnP44O9rVJae+gsrxwiiXATkBBGdWv/W6sgOQbhq9b9VV
 HZMA==
X-Gm-Message-State: ALyK8tJ1UxK+jAEn7pAnuz/NTF1jy6/M+y981vfq5NGBHKCaP8mlwgIJ2AmEsCBBMki+dQ==
X-Received: by 10.28.16.193 with SMTP id 184mr4502815wmq.62.1468934217830;
 Tue, 19 Jul 2016 06:16:57 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id d8sm5591399wmi.0.2016.07.19.06.16.56
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Tue, 19 Jul 2016 06:16:57 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 19 Jul 2016 14:16:40 +0100
Message-Id: <1468934200-12588-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Reduce priority of suspend thread
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

SW4gY3ljbGVzIG9mIHJlcGVhdGVkIHN1c3BlbmQvcmVzdW1lIGF0dGVtcHQgdG8gbWFrZSBzdXJl
IG90aGVyIHRocmVhZHMKZ2V0IHRvIHJ1biBieToKCmEpIERyb3BwaW5nIHRoZSBwcmlvcml0eSBv
ZiB0aGUgc3VzcGVuZCB0aHJlYWQgYXMgbG93IGFzIHBvc3NpYmxlLgpiKSBEZWxpYmVyYXRlbHkg
d2FpdGluZyBmb3IgRFBTYyBvbiBvdGhlciBDUFVzIHRvIGNvbXBsZXRlIGJlZm9yZQogICBjaGVj
a2luZyB4ZW5zdG9yZSBhZ2Fpbi4KClNpZ25lZC1vZmYtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5k
dXJyYW50QGNpdHJpeC5jb20+Ci0tLQogc3JjL3hlbmJ1cy9mZG8uYyB8IDUgKysrKysKIDEgZmls
ZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmMveGVuYnVzL2Zkby5j
IGIvc3JjL3hlbmJ1cy9mZG8uYwppbmRleCBkYTVjZGNjLi5jZTRkNGFjIDEwMDY0NAotLS0gYS9z
cmMveGVuYnVzL2Zkby5jCisrKyBiL3NyYy94ZW5idXMvZmRvLmMKQEAgLTE0NjIsNiArMTQ2Miw5
IEBAIEZkb1N1c3BlbmQoCiAgICAgQWZmaW5pdHkuTWFzayA9IChLQUZGSU5JVFkpMTsKICAgICBL
ZVNldFN5c3RlbUdyb3VwQWZmaW5pdHlUaHJlYWQoJkFmZmluaXR5LCBOVUxMKTsKIAorICAgIChW
T0lEKSBLZVNldFByaW9yaXR5VGhyZWFkKEtlR2V0Q3VycmVudFRocmVhZCgpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIExPV19QUklPUklUWSk7CisKICAgICBFdmVudCA9IFRocmVh
ZEdldEV2ZW50KFNlbGYpOwogCiAgICAgZm9yICg7OykgewpAQCAtMTUyMiw2ICsxNTI1LDggQEAg
RmRvU3VzcGVuZCgKIAogICAgICAgICBfX0Zkb1N1c3BlbmRDbGVhckFjdGl2ZShGZG8pOwogCisg
ICAgICAgIEtlRmx1c2hRdWV1ZWREcGNzKCk7CisKIGxvb3A6CiAgICAgICAgIEtlU2V0RXZlbnQo
JkZkby0+U3VzcGVuZEV2ZW50LCBJT19OT19JTkNSRU1FTlQsIEZBTFNFKTsKICAgICB9Ci0tIAoy
LjEuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndp
bi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3Jn
Cmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dp
bi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Thu Jul 21 11:12:06 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 21 Jul 2016 11:12:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQBtd-00023t-CA; Thu, 21 Jul 2016 11:12:05 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=0030e9458=owen.smith@citrix.com>)
 id 1bQBtb-00023V-UO
 for win-pv-devel@lists.xenproject.org; Thu, 21 Jul 2016 11:12:04 +0000
Received: from [85.158.139.211] by server-10.bemta-5.messagelabs.com id
 99/C9-19922-30EA0975; Thu, 21 Jul 2016 11:12:03 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprNIsWRWlGSWpSXmKPExsXitHSDvS7zugn
 hBis1LP4sTnRg9Dj84QpLAGMUa2ZeUn5FAmvGwi+/WQpmcVc8W9zI3MDYwtnFyMkhIeAvcfLL
 KTYQm01AQ2JG52IWEFtEQF1i3+etTCA2s4CaxPX9XawgtrCAtcT81h+MIDaLgKrEmWXzweK8A
 i4SDxavYISYqSGxqWEG2ExOAVeJM0tvg9UIAdXs6v0MZStJfFv8ghmiV1Di5MwnLBC7JCQOvo
 CISwhwS9w+PZV5AiPfLCRls5CULWBkWsWoUZxaVJZapGtorpdUlJmeUZKbmJmja2hgqpebWly
 cmJ6ak5hUrJecn7uJERhQDECwg/Hiac9DjJIcTEqivG8nTwgX4kvKT6nMSCzOiC8qzUktPsSo
 wcEhsHnt6guMUix5+XmpShK8cmuB6gSLUtNTK9Iyc4AhD1MqwcGjJML7fBVQmre4IDG3ODMdI
 nWKUVFKnPfbGqCEAEgiozQPrg0WZ5cYZaWEeRmBjhLiKUgtys0sQZV/xSjOwagkzHsbZApPZl
 4J3PRXQIuZgBbPEegHWVySiJCSamCU/fZiq/Hkprm7RH/UhGa77e/TuTNL5tW6dCW1P0sPVsl
 8j+YJU9gWtJfNfI/cT91ZEnNXLJynEn9+yZGtDuxb3x4UecJxsv758QKF/DVPTxnvfXHk3pY9
 7HKeSjsKLK4KW32YmvlD5vj9/zue957ckDjH5/QnZt7IEmVltRaOc6sO+WorPUpjUmIpzkg01
 GIuKk4EAGXsbpWuAgAA
X-Env-Sender: prvs=0030e9458=owen.smith@citrix.com
X-Msg-Ref: server-9.tower-206.messagelabs.com!1469099521!50808231!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: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 53862 invoked from network); 21 Jul 2016 11:12:02 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
 by server-9.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 21 Jul 2016 11:12:02 -0000
X-IronPort-AV: E=Sophos;i="5.28,399,1464652800"; d="scan'208";a="374508199"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Thu, 21 Jul 2016 12:11:43 +0100
Message-ID: <1469099503-7416-2-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1469099503-7416-1-git-send-email-owen.smith@citrix.com>
References: <1469099503-7416-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA2
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 2/2] Log messages to dom0 log (if possible)
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

SW9jdGxMb2cgd2lsbCBzdHJpcCBhbnkgdHJhaWxpbmcgbmV3bGluZSBhbmQgaW5zZXJ0IGEgc2lu
Z2xlCm5ld2xpbmUgdG8gZW5mb3JjZSBsb2cgZmlsZSBjb25zaXN0YW5jeQoKU2lnbmVkLW9mZi1i
eTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNyYy94ZW5hZ2VudC9z
ZXJ2aWNlLmNwcCB8IDYgKysrKysrCiBzcmMveGVuaWZhY2UvaW9jdGxzLmMgICAgfCA2ICsrKysr
KwogMiBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL3hl
bmFnZW50L3NlcnZpY2UuY3BwIGIvc3JjL3hlbmFnZW50L3NlcnZpY2UuY3BwCmluZGV4IDU1ZGM4
Y2EuLjE4Mjc1MmYgMTAwNjQ0Ci0tLSBhL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcAorKysgYi9z
cmMveGVuYWdlbnQvc2VydmljZS5jcHAKQEAgLTgxLDYgKzgxLDEyIEBAIHN0YXRpYyBDWGVuQWdl
bnQgc19zZXJ2aWNlOwogICAgIHZhX2VuZChhcmdzKTsKIAogICAgIE91dHB1dERlYnVnU3RyaW5n
KG1lc3NhZ2UpOworCisgICAgLy8gaWYgcG9zc2libGUsIHNlbmQgdG8geGVuaWZhY2UgdG8gZm9y
d2FyZCB0byBsb2dzCisgICAgQ0NyaXRTZWMgY3JpdCgmc19zZXJ2aWNlLm1fY3JpdCk7CisgICAg
aWYgKHNfc2VydmljZS5tX2RldmljZSkgeworICAgICAgICBzX3NlcnZpY2UubV9kZXZpY2UtPkxv
ZyhtZXNzYWdlKTsKKyAgICB9CiB9CiAKIC8qc3RhdGljKi8gaW50IENYZW5BZ2VudDo6U2Vydmlj
ZUluc3RhbGwoKQpkaWZmIC0tZ2l0IGEvc3JjL3hlbmlmYWNlL2lvY3Rscy5jIGIvc3JjL3hlbmlm
YWNlL2lvY3Rscy5jCmluZGV4IGNhOTQ2NTguLmY2YTM4OWYgMTAwNjQ0Ci0tLSBhL3NyYy94ZW5p
ZmFjZS9pb2N0bHMuYworKysgYi9zcmMveGVuaWZhY2UvaW9jdGxzLmMKQEAgLTExMyw2ICsxMTMs
NyBAQCBJb2N0bExvZygKICAgICApCiB7CiAgICAgTlRTVEFUVVMgICAgc3RhdHVzOworCVBDSEFS
CQlwdHI7CiAKICAgICBzdGF0dXMgPSBTVEFUVVNfSU5WQUxJRF9CVUZGRVJfU0laRTsKICAgICBp
ZiAoSW5MZW4gPT0gMCB8fCBJbkxlbiA+IFhFTklGQUNFX0xPR19NQVhfTEVOR1RIIHx8IE91dExl
biAhPSAwKQpAQCAtMTIyLDYgKzEyMywxMSBAQCBJb2N0bExvZygKICAgICBpZiAoIV9fSXNWYWxp
ZFN0cihCdWZmZXIsIEluTGVuKSkKICAgICAgICAgZ290byBmYWlsMjsKIAorCS8vIHJlbW92ZSBu
ZXdsaW5lcyBmcm9tIGVuZCBvZiBidWZmZXIKKwlmb3IgKHB0ciA9IEJ1ZmZlciArIEluTGVuIC0g
MTsKKwkJIHB0ciAhPSBCdWZmZXIgJiYgKnB0ciAhPSAwICYmICpwdHIgIT0gJ1xuJzsKKwkJIC0t
cHRyKQorCQkJKnB0ciA9IDA7CiAgICAgWGVuSWZhY2VEZWJ1Z1ByaW50KElORk8sICJVU0VSOiAl
c1xuIiwgQnVmZmVyKTsKICAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7CiAKLS0gCjEuOS40Lm1z
eXNnaXQuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Cndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qu
b3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZv
L3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Thu Jul 21 11:12:06 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 21 Jul 2016 11:12:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQBtd-00023l-B5; Thu, 21 Jul 2016 11:12:05 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=0030e9458=owen.smith@citrix.com>)
 id 1bQBtb-00023T-Ri
 for win-pv-devel@lists.xenproject.org; Thu, 21 Jul 2016 11:12:03 +0000
Received: from [85.158.139.211] by server-4.bemta-5.messagelabs.com id
 EF/85-12285-30EA0975; Thu, 21 Jul 2016 11:12:03 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrOLMWRWlGSWpSXmKPExsXitHRDpC7Tugn
 hBjd/GVn8WZzowOhx+MMVlgDGKNbMvKT8igTWjOuHZ7EUPBep2HPtIUsD4yGBLkZODgkBf4mV
 J56xgNhsAhoSMzoXg9kiAuoS+z5vZQKxmQXUJK7v72IFsYUFfCT6Zn9kA7FZBFQlps76BVbDK
 +AisWDtakaImRoSmxpmgNUICShJfFv8ghmiRlDi5MwnLBAzJSQOvgCJcwDVc0v87bafwMgzC0
 nVLCRVCxiZVjFqFKcWlaUW6Rob6CUVZaZnlOQmZuboGhqY6uWmFhcnpqfmJCYV6yXn525iBAZ
 IPQMD4w7GCav8DjFKcjApifK+nTwhXIgvKT+lMiOxOCO+qDQntfgQowwHh5IEr/4aoJxgUWp6
 akVaZg4wVGHSEhw8SiK8z1cBpXmLCxJzizPTIVKnGBWlxHmLQfoEQBIZpXlwbbD4uMQoKyXMy
 8jAwCDEU5BalJtZgir/ilGcg1FJGGI7T2ZeCdz0V0CLmYAWzxHoB1lckoiQkmpgtHy0Rv+bVO
 qMnBOKF1Uiz97+dPCRUpGp6Ku+zaez+Lv5q6suFl9ldejM+ODjUXqtWvJyoKEYa5aYxn/nzm2
 ix8U/fun/oNzBs35lQswZq2hmPsH6IJ2b3VftttzSr8tJS6/1meO4tWLarM56tVTN0oBdZt0H
 Gr635WXtLl2o3ZW+sUtn7QIlluKMREMt5qLiRAChwoDRigIAAA==
X-Env-Sender: prvs=0030e9458=owen.smith@citrix.com
X-Msg-Ref: server-6.tower-206.messagelabs.com!1469099521!50459654!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 64618 invoked from network); 21 Jul 2016 11:12:02 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-6.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 21 Jul 2016 11:12:02 -0000
X-IronPort-AV: E=Sophos;i="5.28,399,1464652800"; d="scan'208";a="367514735"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Thu, 21 Jul 2016 12:11:42 +0100
Message-ID: <1469099503-7416-1-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 1/2] Clean up watches,
	suspend handlers and events on D0->D3
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

KiBDYWxsIFhlbklmYWNlQ2xlYW51cCBvbiBEMC0+RDMgdHJhbnNpdGlvbgoqIENoYW5nZSBYZW5J
ZmFjZUNsZWFudXAgdG8gYWNjZXB0IGEgTlVMTCBmaWxlIG9iamVjdCwgd2hpY2ggd2lsbAogIGNs
ZWFuIHVwIGV2ZXJ5dGhpbmcsIHJlZ2FyZGxlc3Mgb2YgZmlsZSBvYmplY3QKClNpZ25lZC1vZmYt
Ynk6IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4KLS0tCiBzcmMveGVuaWZhY2Uv
ZmRvLmMgICAgfCAgMSArCiBzcmMveGVuaWZhY2UvaW9jdGxzLmMgfCAxMSArKysrKysrLS0tLQog
c3JjL3hlbmlmYWNlL2lvY3Rscy5oIHwgIDIgKy0KIDMgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRp
b25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy94ZW5pZmFjZS9mZG8uYyBi
L3NyYy94ZW5pZmFjZS9mZG8uYwppbmRleCAxOWU1MGZlLi5jMWMzOTAxIDEwMDY0NAotLS0gYS9z
cmMveGVuaWZhY2UvZmRvLmMKKysrIGIvc3JjL3hlbmlmYWNlL2Zkby5jCkBAIC0xMDUwLDYgKzEw
NTAsNyBAQCBGZG9EMFRvRDMoCiAgICAgVHJhY2UoIj09PT0+XG4iKTsKIAogICAgIFdtaVNlc3Np
b25zU3VzcGVuZEFsbChGZG8pOworICAgIFhlbklmYWNlQ2xlYW51cChGZG8sIE5VTEwpOwogCiAg
ICAgUG93ZXJTdGF0ZS5EZXZpY2VTdGF0ZSA9IFBvd2VyRGV2aWNlRDM7CiAgICAgUG9TZXRQb3dl
clN0YXRlKEZkby0+RHgtPkRldmljZU9iamVjdCwKZGlmZiAtLWdpdCBhL3NyYy94ZW5pZmFjZS9p
b2N0bHMuYyBiL3NyYy94ZW5pZmFjZS9pb2N0bHMuYwppbmRleCA2MzliMDE1Li5jYTk0NjU4IDEw
MDY0NAotLS0gYS9zcmMveGVuaWZhY2UvaW9jdGxzLmMKKysrIGIvc3JjL3hlbmlmYWNlL2lvY3Rs
cy5jCkBAIC0xMzcsNyArMTM3LDcgQEAgX0lSUUxfcmVxdWlyZXNfKFBBU1NJVkVfTEVWRUwpIC8v
IEV2dGNobkZyZWUgY2FsbHMgS2VGbHVzaFF1ZXVlZERwY3MKIFZPSUQKIFhlbklmYWNlQ2xlYW51
cCgKICAgICBfX2luICBQWEVOSUZBQ0VfRkRPIEZkbywKLSAgICBfX2luICBQRklMRV9PQkpFQ1Qg
IEZpbGVPYmplY3QKKyAgICBfX2luX29wdCAgUEZJTEVfT0JKRUNUICBGaWxlT2JqZWN0CiAgICAg
KQogewogICAgIFBMSVNUX0VOVFJZIE5vZGU7CkBAIC0xNTQsNyArMTU0LDggQEAgWGVuSWZhY2VD
bGVhbnVwKAogICAgICAgICBTdG9yZUNvbnRleHQgPSBDT05UQUlOSU5HX1JFQ09SRChOb2RlLCBY
RU5JRkFDRV9TVE9SRV9DT05URVhULCBFbnRyeSk7CiAKICAgICAgICAgTm9kZSA9IE5vZGUtPkZs
aW5rOwotICAgICAgICBpZiAoU3RvcmVDb250ZXh0LT5GaWxlT2JqZWN0ICE9IEZpbGVPYmplY3Qp
CisgICAgICAgIGlmIChGaWxlT2JqZWN0ICE9IE5VTEwgJiYKKyAgICAgICAgICAgIFN0b3JlQ29u
dGV4dC0+RmlsZU9iamVjdCAhPSBGaWxlT2JqZWN0KQogICAgICAgICAgICAgY29udGludWU7CiAK
ICAgICAgICAgWGVuSWZhY2VEZWJ1Z1ByaW50KFRSQUNFLCAiU3RvcmUgY29udGV4dCAlcFxuIiwg
U3RvcmVDb250ZXh0KTsKQEAgLTE3MSw3ICsxNzIsOCBAQCBYZW5JZmFjZUNsZWFudXAoCiAgICAg
ICAgIEV2dGNobkNvbnRleHQgPSBDT05UQUlOSU5HX1JFQ09SRChOb2RlLCBYRU5JRkFDRV9FVlRD
SE5fQ09OVEVYVCwgRW50cnkpOwogCiAgICAgICAgIE5vZGUgPSBOb2RlLT5GbGluazsKLSAgICAg
ICAgaWYgKEV2dGNobkNvbnRleHQtPkZpbGVPYmplY3QgIT0gRmlsZU9iamVjdCkKKyAgICAgICAg
aWYgKEZpbGVPYmplY3QgIT0gTlVMTCAmJgorICAgICAgICAgICAgRXZ0Y2huQ29udGV4dC0+Rmls
ZU9iamVjdCAhPSBGaWxlT2JqZWN0KQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAg
WGVuSWZhY2VEZWJ1Z1ByaW50KFRSQUNFLCAiRXZ0Y2huIGNvbnRleHQgJXBcbiIsIEV2dGNobkNv
bnRleHQpOwpAQCAtMTk3LDcgKzE5OSw4IEBAIFhlbklmYWNlQ2xlYW51cCgKICAgICAgICAgU3Vz
cGVuZENvbnRleHQgPSBDT05UQUlOSU5HX1JFQ09SRChOb2RlLCBYRU5JRkFDRV9TVVNQRU5EX0NP
TlRFWFQsIEVudHJ5KTsKIAogICAgICAgICBOb2RlID0gTm9kZS0+Rmxpbms7Ci0gICAgICAgIGlm
IChTdXNwZW5kQ29udGV4dC0+RmlsZU9iamVjdCAhPSBGaWxlT2JqZWN0KQorICAgICAgICBpZiAo
RmlsZU9iamVjdCAhPSBOVUxMICYmCisgICAgICAgICAgICBTdXNwZW5kQ29udGV4dC0+RmlsZU9i
amVjdCAhPSBGaWxlT2JqZWN0KQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgWGVu
SWZhY2VEZWJ1Z1ByaW50KFRSQUNFLCAiU3VzcGVuZCBjb250ZXh0ICVwXG4iLCBTdXNwZW5kQ29u
dGV4dCk7CmRpZmYgLS1naXQgYS9zcmMveGVuaWZhY2UvaW9jdGxzLmggYi9zcmMveGVuaWZhY2Uv
aW9jdGxzLmgKaW5kZXggMTRkYTY3NC4uMTZhZjBhMiAxMDA2NDQKLS0tIGEvc3JjL3hlbmlmYWNl
L2lvY3Rscy5oCisrKyBiL3NyYy94ZW5pZmFjZS9pb2N0bHMuaApAQCAtMTE5LDcgKzExOSw3IEBA
IF9JUlFMX3JlcXVpcmVzXyhQQVNTSVZFX0xFVkVMKQogVk9JRAogWGVuSWZhY2VDbGVhbnVwKAog
ICAgIF9faW4gIFBYRU5JRkFDRV9GRE8gRmRvLAotICAgIF9faW4gIFBGSUxFX09CSkVDVCAgRmls
ZU9iamVjdAorICAgIF9faW5fb3B0ICBQRklMRV9PQkpFQ1QgIEZpbGVPYmplY3QKICAgICApOwog
CiBERUNMU1BFQ19OT0lOTElORQotLSAKMS45LjQubXN5c2dpdC4xCgoKX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlz
dAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9q
ZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Thu Jul 21 11:12:06 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 21 Jul 2016 11:12:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQBtd-00023l-B5; Thu, 21 Jul 2016 11:12:05 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=0030e9458=owen.smith@citrix.com>)
 id 1bQBtb-00023T-Ri
 for win-pv-devel@lists.xenproject.org; Thu, 21 Jul 2016 11:12:03 +0000
Received: from [85.158.139.211] by server-4.bemta-5.messagelabs.com id
 EF/85-12285-30EA0975; Thu, 21 Jul 2016 11:12:03 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrOLMWRWlGSWpSXmKPExsXitHRDpC7Tugn
 hBjd/GVn8WZzowOhx+MMVlgDGKNbMvKT8igTWjOuHZ7EUPBep2HPtIUsD4yGBLkZODgkBf4mV
 J56xgNhsAhoSMzoXg9kiAuoS+z5vZQKxmQXUJK7v72IFsYUFfCT6Zn9kA7FZBFQlps76BVbDK
 +AisWDtakaImRoSmxpmgNUICShJfFv8ghmiRlDi5MwnLBAzJSQOvgCJcwDVc0v87bafwMgzC0
 nVLCRVCxiZVjFqFKcWlaUW6Rob6CUVZaZnlOQmZuboGhqY6uWmFhcnpqfmJCYV6yXn525iBAZ
 IPQMD4w7GCav8DjFKcjApifK+nTwhXIgvKT+lMiOxOCO+qDQntfgQowwHh5IEr/4aoJxgUWp6
 akVaZg4wVGHSEhw8SiK8z1cBpXmLCxJzizPTIVKnGBWlxHmLQfoEQBIZpXlwbbD4uMQoKyXMy
 8jAwCDEU5BalJtZgir/ilGcg1FJGGI7T2ZeCdz0V0CLmYAWzxHoB1lckoiQkmpgtHy0Rv+bVO
 qMnBOKF1Uiz97+dPCRUpGp6Ku+zaez+Lv5q6suFl9ldejM+ODjUXqtWvJyoKEYa5aYxn/nzm2
 ix8U/fun/oNzBs35lQswZq2hmPsH6IJ2b3VftttzSr8tJS6/1meO4tWLarM56tVTN0oBdZt0H
 Gr635WXtLl2o3ZW+sUtn7QIlluKMREMt5qLiRAChwoDRigIAAA==
X-Env-Sender: prvs=0030e9458=owen.smith@citrix.com
X-Msg-Ref: server-6.tower-206.messagelabs.com!1469099521!50459654!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 64618 invoked from network); 21 Jul 2016 11:12:02 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-6.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 21 Jul 2016 11:12:02 -0000
X-IronPort-AV: E=Sophos;i="5.28,399,1464652800"; d="scan'208";a="367514735"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Thu, 21 Jul 2016 12:11:42 +0100
Message-ID: <1469099503-7416-1-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
MIME-Version: 1.0
X-DLP: MIA1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 1/2] Clean up watches,
	suspend handlers and events on D0->D3
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

KiBDYWxsIFhlbklmYWNlQ2xlYW51cCBvbiBEMC0+RDMgdHJhbnNpdGlvbgoqIENoYW5nZSBYZW5J
ZmFjZUNsZWFudXAgdG8gYWNjZXB0IGEgTlVMTCBmaWxlIG9iamVjdCwgd2hpY2ggd2lsbAogIGNs
ZWFuIHVwIGV2ZXJ5dGhpbmcsIHJlZ2FyZGxlc3Mgb2YgZmlsZSBvYmplY3QKClNpZ25lZC1vZmYt
Ynk6IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4KLS0tCiBzcmMveGVuaWZhY2Uv
ZmRvLmMgICAgfCAgMSArCiBzcmMveGVuaWZhY2UvaW9jdGxzLmMgfCAxMSArKysrKysrLS0tLQog
c3JjL3hlbmlmYWNlL2lvY3Rscy5oIHwgIDIgKy0KIDMgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRp
b25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy94ZW5pZmFjZS9mZG8uYyBi
L3NyYy94ZW5pZmFjZS9mZG8uYwppbmRleCAxOWU1MGZlLi5jMWMzOTAxIDEwMDY0NAotLS0gYS9z
cmMveGVuaWZhY2UvZmRvLmMKKysrIGIvc3JjL3hlbmlmYWNlL2Zkby5jCkBAIC0xMDUwLDYgKzEw
NTAsNyBAQCBGZG9EMFRvRDMoCiAgICAgVHJhY2UoIj09PT0+XG4iKTsKIAogICAgIFdtaVNlc3Np
b25zU3VzcGVuZEFsbChGZG8pOworICAgIFhlbklmYWNlQ2xlYW51cChGZG8sIE5VTEwpOwogCiAg
ICAgUG93ZXJTdGF0ZS5EZXZpY2VTdGF0ZSA9IFBvd2VyRGV2aWNlRDM7CiAgICAgUG9TZXRQb3dl
clN0YXRlKEZkby0+RHgtPkRldmljZU9iamVjdCwKZGlmZiAtLWdpdCBhL3NyYy94ZW5pZmFjZS9p
b2N0bHMuYyBiL3NyYy94ZW5pZmFjZS9pb2N0bHMuYwppbmRleCA2MzliMDE1Li5jYTk0NjU4IDEw
MDY0NAotLS0gYS9zcmMveGVuaWZhY2UvaW9jdGxzLmMKKysrIGIvc3JjL3hlbmlmYWNlL2lvY3Rs
cy5jCkBAIC0xMzcsNyArMTM3LDcgQEAgX0lSUUxfcmVxdWlyZXNfKFBBU1NJVkVfTEVWRUwpIC8v
IEV2dGNobkZyZWUgY2FsbHMgS2VGbHVzaFF1ZXVlZERwY3MKIFZPSUQKIFhlbklmYWNlQ2xlYW51
cCgKICAgICBfX2luICBQWEVOSUZBQ0VfRkRPIEZkbywKLSAgICBfX2luICBQRklMRV9PQkpFQ1Qg
IEZpbGVPYmplY3QKKyAgICBfX2luX29wdCAgUEZJTEVfT0JKRUNUICBGaWxlT2JqZWN0CiAgICAg
KQogewogICAgIFBMSVNUX0VOVFJZIE5vZGU7CkBAIC0xNTQsNyArMTU0LDggQEAgWGVuSWZhY2VD
bGVhbnVwKAogICAgICAgICBTdG9yZUNvbnRleHQgPSBDT05UQUlOSU5HX1JFQ09SRChOb2RlLCBY
RU5JRkFDRV9TVE9SRV9DT05URVhULCBFbnRyeSk7CiAKICAgICAgICAgTm9kZSA9IE5vZGUtPkZs
aW5rOwotICAgICAgICBpZiAoU3RvcmVDb250ZXh0LT5GaWxlT2JqZWN0ICE9IEZpbGVPYmplY3Qp
CisgICAgICAgIGlmIChGaWxlT2JqZWN0ICE9IE5VTEwgJiYKKyAgICAgICAgICAgIFN0b3JlQ29u
dGV4dC0+RmlsZU9iamVjdCAhPSBGaWxlT2JqZWN0KQogICAgICAgICAgICAgY29udGludWU7CiAK
ICAgICAgICAgWGVuSWZhY2VEZWJ1Z1ByaW50KFRSQUNFLCAiU3RvcmUgY29udGV4dCAlcFxuIiwg
U3RvcmVDb250ZXh0KTsKQEAgLTE3MSw3ICsxNzIsOCBAQCBYZW5JZmFjZUNsZWFudXAoCiAgICAg
ICAgIEV2dGNobkNvbnRleHQgPSBDT05UQUlOSU5HX1JFQ09SRChOb2RlLCBYRU5JRkFDRV9FVlRD
SE5fQ09OVEVYVCwgRW50cnkpOwogCiAgICAgICAgIE5vZGUgPSBOb2RlLT5GbGluazsKLSAgICAg
ICAgaWYgKEV2dGNobkNvbnRleHQtPkZpbGVPYmplY3QgIT0gRmlsZU9iamVjdCkKKyAgICAgICAg
aWYgKEZpbGVPYmplY3QgIT0gTlVMTCAmJgorICAgICAgICAgICAgRXZ0Y2huQ29udGV4dC0+Rmls
ZU9iamVjdCAhPSBGaWxlT2JqZWN0KQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAg
WGVuSWZhY2VEZWJ1Z1ByaW50KFRSQUNFLCAiRXZ0Y2huIGNvbnRleHQgJXBcbiIsIEV2dGNobkNv
bnRleHQpOwpAQCAtMTk3LDcgKzE5OSw4IEBAIFhlbklmYWNlQ2xlYW51cCgKICAgICAgICAgU3Vz
cGVuZENvbnRleHQgPSBDT05UQUlOSU5HX1JFQ09SRChOb2RlLCBYRU5JRkFDRV9TVVNQRU5EX0NP
TlRFWFQsIEVudHJ5KTsKIAogICAgICAgICBOb2RlID0gTm9kZS0+Rmxpbms7Ci0gICAgICAgIGlm
IChTdXNwZW5kQ29udGV4dC0+RmlsZU9iamVjdCAhPSBGaWxlT2JqZWN0KQorICAgICAgICBpZiAo
RmlsZU9iamVjdCAhPSBOVUxMICYmCisgICAgICAgICAgICBTdXNwZW5kQ29udGV4dC0+RmlsZU9i
amVjdCAhPSBGaWxlT2JqZWN0KQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgWGVu
SWZhY2VEZWJ1Z1ByaW50KFRSQUNFLCAiU3VzcGVuZCBjb250ZXh0ICVwXG4iLCBTdXNwZW5kQ29u
dGV4dCk7CmRpZmYgLS1naXQgYS9zcmMveGVuaWZhY2UvaW9jdGxzLmggYi9zcmMveGVuaWZhY2Uv
aW9jdGxzLmgKaW5kZXggMTRkYTY3NC4uMTZhZjBhMiAxMDA2NDQKLS0tIGEvc3JjL3hlbmlmYWNl
L2lvY3Rscy5oCisrKyBiL3NyYy94ZW5pZmFjZS9pb2N0bHMuaApAQCAtMTE5LDcgKzExOSw3IEBA
IF9JUlFMX3JlcXVpcmVzXyhQQVNTSVZFX0xFVkVMKQogVk9JRAogWGVuSWZhY2VDbGVhbnVwKAog
ICAgIF9faW4gIFBYRU5JRkFDRV9GRE8gRmRvLAotICAgIF9faW4gIFBGSUxFX09CSkVDVCAgRmls
ZU9iamVjdAorICAgIF9faW5fb3B0ICBQRklMRV9PQkpFQ1QgIEZpbGVPYmplY3QKICAgICApOwog
CiBERUNMU1BFQ19OT0lOTElORQotLSAKMS45LjQubXN5c2dpdC4xCgoKX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlz
dAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9q
ZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Thu Jul 21 11:12:06 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 21 Jul 2016 11:12:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQBtd-00023t-CA; Thu, 21 Jul 2016 11:12:05 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=0030e9458=owen.smith@citrix.com>)
 id 1bQBtb-00023V-UO
 for win-pv-devel@lists.xenproject.org; Thu, 21 Jul 2016 11:12:04 +0000
Received: from [85.158.139.211] by server-10.bemta-5.messagelabs.com id
 99/C9-19922-30EA0975; Thu, 21 Jul 2016 11:12:03 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprNIsWRWlGSWpSXmKPExsXitHSDvS7zugn
 hBis1LP4sTnRg9Dj84QpLAGMUa2ZeUn5FAmvGwi+/WQpmcVc8W9zI3MDYwtnFyMkhIeAvcfLL
 KTYQm01AQ2JG52IWEFtEQF1i3+etTCA2s4CaxPX9XawgtrCAtcT81h+MIDaLgKrEmWXzweK8A
 i4SDxavYISYqSGxqWEG2ExOAVeJM0tvg9UIAdXs6v0MZStJfFv8ghmiV1Di5MwnLBC7JCQOvo
 CISwhwS9w+PZV5AiPfLCRls5CULWBkWsWoUZxaVJZapGtorpdUlJmeUZKbmJmja2hgqpebWly
 cmJ6ak5hUrJecn7uJERhQDECwg/Hiac9DjJIcTEqivG8nTwgX4kvKT6nMSCzOiC8qzUktPsSo
 wcEhsHnt6guMUix5+XmpShK8cmuB6gSLUtNTK9Iyc4AhD1MqwcGjJML7fBVQmre4IDG3ODMdI
 nWKUVFKnPfbGqCEAEgiozQPrg0WZ5cYZaWEeRmBjhLiKUgtys0sQZV/xSjOwagkzHsbZApPZl
 4J3PRXQIuZgBbPEegHWVySiJCSamCU/fZiq/Hkprm7RH/UhGa77e/TuTNL5tW6dCW1P0sPVsl
 8j+YJU9gWtJfNfI/cT91ZEnNXLJynEn9+yZGtDuxb3x4UecJxsv758QKF/DVPTxnvfXHk3pY9
 7HKeSjsKLK4KW32YmvlD5vj9/zue957ckDjH5/QnZt7IEmVltRaOc6sO+WorPUpjUmIpzkg01
 GIuKk4EAGXsbpWuAgAA
X-Env-Sender: prvs=0030e9458=owen.smith@citrix.com
X-Msg-Ref: server-9.tower-206.messagelabs.com!1469099521!50808231!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: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 53862 invoked from network); 21 Jul 2016 11:12:02 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
 by server-9.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 21 Jul 2016 11:12:02 -0000
X-IronPort-AV: E=Sophos;i="5.28,399,1464652800"; d="scan'208";a="374508199"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Thu, 21 Jul 2016 12:11:43 +0100
Message-ID: <1469099503-7416-2-git-send-email-owen.smith@citrix.com>
X-Mailer: git-send-email 1.9.4.msysgit.1
In-Reply-To: <1469099503-7416-1-git-send-email-owen.smith@citrix.com>
References: <1469099503-7416-1-git-send-email-owen.smith@citrix.com>
MIME-Version: 1.0
X-DLP: MIA2
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 2/2] Log messages to dom0 log (if possible)
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

SW9jdGxMb2cgd2lsbCBzdHJpcCBhbnkgdHJhaWxpbmcgbmV3bGluZSBhbmQgaW5zZXJ0IGEgc2lu
Z2xlCm5ld2xpbmUgdG8gZW5mb3JjZSBsb2cgZmlsZSBjb25zaXN0YW5jeQoKU2lnbmVkLW9mZi1i
eTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNyYy94ZW5hZ2VudC9z
ZXJ2aWNlLmNwcCB8IDYgKysrKysrCiBzcmMveGVuaWZhY2UvaW9jdGxzLmMgICAgfCA2ICsrKysr
KwogMiBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL3hl
bmFnZW50L3NlcnZpY2UuY3BwIGIvc3JjL3hlbmFnZW50L3NlcnZpY2UuY3BwCmluZGV4IDU1ZGM4
Y2EuLjE4Mjc1MmYgMTAwNjQ0Ci0tLSBhL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcAorKysgYi9z
cmMveGVuYWdlbnQvc2VydmljZS5jcHAKQEAgLTgxLDYgKzgxLDEyIEBAIHN0YXRpYyBDWGVuQWdl
bnQgc19zZXJ2aWNlOwogICAgIHZhX2VuZChhcmdzKTsKIAogICAgIE91dHB1dERlYnVnU3RyaW5n
KG1lc3NhZ2UpOworCisgICAgLy8gaWYgcG9zc2libGUsIHNlbmQgdG8geGVuaWZhY2UgdG8gZm9y
d2FyZCB0byBsb2dzCisgICAgQ0NyaXRTZWMgY3JpdCgmc19zZXJ2aWNlLm1fY3JpdCk7CisgICAg
aWYgKHNfc2VydmljZS5tX2RldmljZSkgeworICAgICAgICBzX3NlcnZpY2UubV9kZXZpY2UtPkxv
ZyhtZXNzYWdlKTsKKyAgICB9CiB9CiAKIC8qc3RhdGljKi8gaW50IENYZW5BZ2VudDo6U2Vydmlj
ZUluc3RhbGwoKQpkaWZmIC0tZ2l0IGEvc3JjL3hlbmlmYWNlL2lvY3Rscy5jIGIvc3JjL3hlbmlm
YWNlL2lvY3Rscy5jCmluZGV4IGNhOTQ2NTguLmY2YTM4OWYgMTAwNjQ0Ci0tLSBhL3NyYy94ZW5p
ZmFjZS9pb2N0bHMuYworKysgYi9zcmMveGVuaWZhY2UvaW9jdGxzLmMKQEAgLTExMyw2ICsxMTMs
NyBAQCBJb2N0bExvZygKICAgICApCiB7CiAgICAgTlRTVEFUVVMgICAgc3RhdHVzOworCVBDSEFS
CQlwdHI7CiAKICAgICBzdGF0dXMgPSBTVEFUVVNfSU5WQUxJRF9CVUZGRVJfU0laRTsKICAgICBp
ZiAoSW5MZW4gPT0gMCB8fCBJbkxlbiA+IFhFTklGQUNFX0xPR19NQVhfTEVOR1RIIHx8IE91dExl
biAhPSAwKQpAQCAtMTIyLDYgKzEyMywxMSBAQCBJb2N0bExvZygKICAgICBpZiAoIV9fSXNWYWxp
ZFN0cihCdWZmZXIsIEluTGVuKSkKICAgICAgICAgZ290byBmYWlsMjsKIAorCS8vIHJlbW92ZSBu
ZXdsaW5lcyBmcm9tIGVuZCBvZiBidWZmZXIKKwlmb3IgKHB0ciA9IEJ1ZmZlciArIEluTGVuIC0g
MTsKKwkJIHB0ciAhPSBCdWZmZXIgJiYgKnB0ciAhPSAwICYmICpwdHIgIT0gJ1xuJzsKKwkJIC0t
cHRyKQorCQkJKnB0ciA9IDA7CiAgICAgWGVuSWZhY2VEZWJ1Z1ByaW50KElORk8sICJVU0VSOiAl
c1xuIiwgQnVmZmVyKTsKICAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7CiAKLS0gCjEuOS40Lm1z
eXNnaXQuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Cndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qu
b3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZv
L3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Thu Jul 21 13:30:47 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 21 Jul 2016 13:30:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQE3p-0003GY-Sj; Thu, 21 Jul 2016 13:30:45 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <tknchris@gmail.com>) id 1bQE3o-0003GC-L3
 for win-pv-devel@lists.xenproject.org; Thu, 21 Jul 2016 13:30:44 +0000
Received: from [85.158.137.68] by server-14.bemta-3.messagelabs.com id
 1F/4C-20915-38EC0975; Thu, 21 Jul 2016 13:30:43 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrKIsWRWlGSWpSXmKPExsVyMfSWo27zuQn
 hBtenslr8WZzowOhx+MMVlgDGKNbMvKT8igTWjA83lrMUnLCsmL9uAVsD4xf9LkYuDiGBmYwS
 L9oOM4M4LAJ3WCTObmliAnEkBH6wSDxsvM7excgJ5ORI7PpyixXCLpZ4+fMxM4jNKyAocXLmE
 5YuRg6gUd4SrXO9QEw2AQWJ95PkQCpYBFQlHv7rgqoOkDh4qo8FxBYWMJGY+mg72HQRoJpry4
 +xgdjMAl4Sv3+9YJ7AyDsLyYJZSFKzgDYwC6hLrJ8nBBFWk7i97So7hK0tsWzha+YFjKyrGNW
 LU4vKUot0LfWSijLTM0pyEzNzdA0NjPVyU4uLE9NTcxKTivWS83M3MQIDsJ6BgXEH4+ufTocY
 JTmYlER5306eEC7El5SfUpmRWJwRX1Sak1p8iFGGg0NJgtfwLFBOsCg1PbUiLTMHGAswaQkOH
 iUR3nyQNG9xQWJucWY6ROoUoz3Hlt/X1jJxvJh8HUhuWXADSG6bem8tkxBLXn5eqpQ4ry5Imw
 BIW0ZpHtxQWOxeYpSVEuZlZGBgEOIpSC3KzSxBlX/FKM7BqCTM2wMyhSczrwRu9yugs5iAzpo
 j0A9yVkkiQkqqgVHq57xDbwzuHDv6zi7rv/YSz5mnzQQsPD8t3Dn3S0PvLfmfBYHtR52mXX8x
 yXjSbKd7V+PdZnn/0T29/ePdV1Gcp+cLGxb2mi7RjGFZKSd2SWbD42XT4hg79z18vsR13WWV1
 DN2VpPniD6dlqg89+WOQx/1WL4+uLMt/Xt29591qx+LPL4ayTs1S4mlOCPRUIu5qDgRAAkczw
 fYAgAA
X-Env-Sender: tknchris@gmail.com
X-Msg-Ref: server-15.tower-31.messagelabs.com!1469107841!47800021!1
X-Originating-IP: [209.85.218.65]
X-SpamReason: No, hits=1.2 required=7.0 tests=HTML_20_30,HTML_MESSAGE,
 RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 34154 invoked from network); 21 Jul 2016 13:30:42 -0000
Received: from mail-oi0-f65.google.com (HELO mail-oi0-f65.google.com)
 (209.85.218.65)
 by server-15.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 21 Jul 2016 13:30:42 -0000
Received: by mail-oi0-f65.google.com with SMTP id l9so7700992oih.0
 for <win-pv-devel@lists.xenproject.org>; Thu, 21 Jul 2016 06:30:42 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=mime-version:from:date:message-id:subject:to;
 bh=MIVkrY+3LiJttXfE8NW/VETiLlzjPPV1o90s+rQv/ps=;
 b=CPxPl/sv82ZgVtRerFvACMqy02UiD8VuOvxbXT7EGof3jHcKKA0EeCSJCUYoDlxeRs
 xCkfkbWa1v1NEDbLXkZ3rr+4fHp7rTt7n0Cx2EUGf8WOcjKwvLZvy7HO9YjVo1vmB2f0
 PfXYcR74Miqy/9Fp5iwTp/h0Dc482ExusfDDZYq+ngV+3h37Zflu+sFm+cKPBwcboXqo
 HfCi0ktj0zexWb6aKh2sBbQgsD3XSyAA0m1HeqXweu7DXcirdycBxr5aCWx/Is7PgUgq
 jGKlSVQB11mUc1B1huF1eykkU9KL2+9gh4iaSEfLLD3bnff7a780Yh6DdP5XNGrCof8x
 1Gmg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:mime-version:from:date:message-id:subject:to;
 bh=MIVkrY+3LiJttXfE8NW/VETiLlzjPPV1o90s+rQv/ps=;
 b=iZlbiyOIeR0AXEZT67ObiS/beyCCQAMZdhe6cS61WS0WGFxkwPHOx4masmdSbOalAR
 VmGjJamkufoZraV6ixJ4XSfghkclrqFlH3wYbKMl70gX7emCSsvOJmatnbbJ+fWuBHKA
 WW37BLzNOsWviqk4x2jvc1NAtBY6ikr5CNluSnR4i+4zolsIf28AWKxTqLfRuTv1De9k
 OPxcE+E8C+zllC3LJjpR4E5BbLQMnOq+CNLDTjuMAOzTEJ7UUy7oCMkpMw0dz9IfxDD4
 XJL57QlXiTE00mxHZo0Ar+Ch2uUE31e7lLMLCeNVGZDdZ585BCiwhav5jHzHnCsg9TuV
 hhrw==
X-Gm-Message-State: ALyK8tIbpIUvlu1KRhENztGBzM4P1lQeQ5m849ReBFJnlROQwXCSqr0hUgQBxpyGRTsvZbtjdHpsHh/1C3v7iQ==
X-Received: by 10.157.47.246 with SMTP id b51mr27509308otd.25.1469107841168;
 Thu, 21 Jul 2016 06:30:41 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.202.173.14 with HTTP; Thu, 21 Jul 2016 06:30:40 -0700 (PDT)
From: chris <tknchris@gmail.com>
Date: Thu, 21 Jul 2016 09:30:40 -0400
Message-ID: <CAKnNFz_GLVZ2G6L_EBMq1AY5JpTUqVaNschscEtJ5q+Hzz1-0w@mail.gmail.com>
To: win-pv-devel@lists.xenproject.org
Subject: [win-pv-devel] Win-pv driver install success fails to boot
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============7429541860356775274=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============7429541860356775274==
Content-Type: multipart/alternative; boundary=001a113dc02a027890053825534b

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

Hello,

I am a previous gplpv user who recently came across this project and wanted
to give a try to atleast help provide feedback and testing.

I downloaded the latest drivers via the tar files on this page:

http://www.xenproject.org/downloads/windows-pv-drivers/development-builds.html

I extracted and ran dpinst as noted in the readme txt  for each driver and
saw that in device manager it created some new devices. NOTE this is a
clean install and did not have gplpv or any other drivers previously

I shutdown the domu, changed my disk and network lines to use the PV style:

'file:/mnt/vil1064/vil1064-ssd.img,xvda,w',

vif = ['type=netfront, bridge=xenbr0, mac=00:16:3D:37:A0:A3']

and when i tried to start it up, it gets stuck at windows 10 loading screen
with the logo and the spinning wheel underneath. i left it for several
hours and it never got any further nor did it bsod'd or reboot over and
over.

i went  back and changed my config back to emulated interfaces and windows
10 does not start via the original config either

did i miss some critical step(s)? any ideas why the OS wont boot? whats he
best to remove the drivers and try again?

i am a fairly technical linux and windows user and willing to invest some
time to anything that will help so please let me know if theres any more
info or anything i can do to give you more data

the dom0 is a up to date debian jessie, xl info gives:
release                : 3.16.0-4-amd64
version                : #1 SMP Debian 3.16.7-ckt11-1+deb8u5 (2015-10-09)
machine                : x86_64
nr_cpus                : 12
max_cpu_id             : 15
nr_nodes               : 2
cores_per_socket       : 12
threads_per_core       : 1
cpu_mhz                : 2100
hw_caps                :
178bf3ff:efd3fbff:00000000:00001300:00802001:00000000:000837ff:00000000
virt_caps              : hvm
total_memory           : 57342
free_memory            : 16455
sharing_freed_memory   : 0
sharing_used_memory    : 0
outstanding_claims     : 0
free_cpus              : 0
xen_major              : 4
xen_minor              : 4
xen_extra              : .1
xen_version            : 4.4.1
xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32
hvm-3.0-x86_32p hvm-3.0-x86_64
xen_scheduler          : credit
xen_pagesize           : 4096
platform_params        : virt_start=0xffff800000000000
xen_changeset          :
xen_commandline        : placeholder dom0_mem=1024M
cc_compiler            : gcc (Debian 4.9.2-10) 4.9.2
cc_compile_by          : ultrotter
cc_compile_domain      : debian.org
cc_compile_date        : Thu Jun 11 18:24:17 EEST 2015
xend_config_format     : 4

chris

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

<div dir=3D"ltr">Hello,<div><br></div><div>I am a previous gplpv user who r=
ecently came across this project and wanted to give a try to atleast help p=
rovide feedback and testing.</div><div><br></div><div>I downloaded the late=
st drivers via the tar files on this page:</div><div><br></div><div><a href=
=3D"http://www.xenproject.org/downloads/windows-pv-drivers/development-buil=
ds.html">http://www.xenproject.org/downloads/windows-pv-drivers/development=
-builds.html</a><br></div><div><br></div><div>I extracted and ran dpinst as=
 noted in the readme txt =C2=A0for each driver and saw that in device manag=
er it created some new devices. NOTE this is a clean install and did not ha=
ve gplpv or any other drivers previously=C2=A0</div><div><br>I shutdown the=
 domu, changed my disk and network lines to use the PV style:</div><div><br=
></div><div><div>&#39;file:/mnt/vil1064/vil1064-ssd.img,xvda,w&#39;,</div><=
/div><div><div><br></div><div>vif =3D [&#39;type=3Dnetfront, bridge=3Dxenbr=
0, mac=3D00:16:3D:37:A0:A3&#39;]</div></div><div><br></div><div>and when i =
tried to start it up, it gets stuck at windows 10 loading screen with the l=
ogo and the spinning wheel underneath. i left it for several hours and it n=
ever got any further nor did it bsod&#39;d or reboot over and over.</div><d=
iv><br></div><div>i went =C2=A0back and changed my config back to emulated =
interfaces and windows 10 does not start via the original config either</di=
v><div><br></div><div>did i miss some critical step(s)? any ideas why the O=
S wont boot? whats he best to remove the drivers and try again?</div><div><=
br></div><div>i am a fairly technical linux and windows user and willing to=
 invest some time to anything that will help so please let me know if there=
s any more info or anything i can do to give you more data</div><div><br></=
div><div>the dom0 is a up to date debian jessie, xl info gives:</div><div><=
div>release =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0: 3.16.0=
-4-amd64<br></div><div>version =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0: #1 SMP Debian 3.16.7-ckt11-1+deb8u5 (2015-10-09)</div><div>m=
achine =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0: x86_64</div=
><div>nr_cpus =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0: 12</=
div><div>max_cpu_id =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 : 15</div><di=
v>nr_nodes =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 : 2</div><div>c=
ores_per_socket =C2=A0 =C2=A0 =C2=A0 : 12</div><div>threads_per_core =C2=A0=
 =C2=A0 =C2=A0 : 1</div><div>cpu_mhz =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0: 2100</div><div>hw_caps =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0: 178bf3ff:efd3fbff:00000000:00001300:00802001:0000=
0000:000837ff:00000000</div><div>virt_caps =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0: hvm</div><div>total_memory =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 : 57342</div><div>free_memory =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0: 16455</div><div>sharing_freed_memory =C2=A0 : 0</div><div>sharing_used=
_memory =C2=A0 =C2=A0: 0</div><div>outstanding_claims =C2=A0 =C2=A0 : 0</di=
v><div>free_cpus =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0: 0</div><=
div>xen_major =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0: 4</div><div=
>xen_minor =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0: 4</div><div>xe=
n_extra =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0: .1</div><div>xen_=
version =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0: 4.4.1</div><div>xen_caps=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 : xen-3.0-x86_64 xen-3.0-=
x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64=C2=A0</div><div>xen_s=
cheduler =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0: credit</div><div>xen_pagesize =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 : 4096</div><div>platform_params =C2=A0 =
=C2=A0 =C2=A0 =C2=A0: virt_start=3D0xffff800000000000</div><div>xen_changes=
et =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0:=C2=A0</div><div>xen_commandline =C2=
=A0 =C2=A0 =C2=A0 =C2=A0: placeholder dom0_mem=3D1024M</div><div>cc_compile=
r =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0: gcc (Debian 4.9.2-10) 4.9.2</d=
iv><div>cc_compile_by =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0: ultrotter</div><d=
iv>cc_compile_domain =C2=A0 =C2=A0 =C2=A0: <a href=3D"http://debian.org">de=
bian.org</a></div><div>cc_compile_date =C2=A0 =C2=A0 =C2=A0 =C2=A0: Thu Jun=
 11 18:24:17 EEST 2015</div><div>xend_config_format =C2=A0 =C2=A0 : 4</div>=
</div><div><br></div><div>chris</div></div>

--001a113dc02a027890053825534b--


--===============7429541860356775274==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============7429541860356775274==--


From win-pv-devel-bounces@lists.xenproject.org Thu Jul 21 13:30:47 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 21 Jul 2016 13:30:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQE3p-0003GY-Sj; Thu, 21 Jul 2016 13:30:45 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <tknchris@gmail.com>) id 1bQE3o-0003GC-L3
 for win-pv-devel@lists.xenproject.org; Thu, 21 Jul 2016 13:30:44 +0000
Received: from [85.158.137.68] by server-14.bemta-3.messagelabs.com id
 1F/4C-20915-38EC0975; Thu, 21 Jul 2016 13:30:43 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrKIsWRWlGSWpSXmKPExsVyMfSWo27zuQn
 hBtenslr8WZzowOhx+MMVlgDGKNbMvKT8igTWjA83lrMUnLCsmL9uAVsD4xf9LkYuDiGBmYwS
 L9oOM4M4LAJ3WCTObmliAnEkBH6wSDxsvM7excgJ5ORI7PpyixXCLpZ4+fMxM4jNKyAocXLmE
 5YuRg6gUd4SrXO9QEw2AQWJ95PkQCpYBFQlHv7rgqoOkDh4qo8FxBYWMJGY+mg72HQRoJpry4
 +xgdjMAl4Sv3+9YJ7AyDsLyYJZSFKzgDYwC6hLrJ8nBBFWk7i97So7hK0tsWzha+YFjKyrGNW
 LU4vKUot0LfWSijLTM0pyEzNzdA0NjPVyU4uLE9NTcxKTivWS83M3MQIDsJ6BgXEH4+ufTocY
 JTmYlER5306eEC7El5SfUpmRWJwRX1Sak1p8iFGGg0NJgtfwLFBOsCg1PbUiLTMHGAswaQkOH
 iUR3nyQNG9xQWJucWY6ROoUoz3Hlt/X1jJxvJh8HUhuWXADSG6bem8tkxBLXn5eqpQ4ry5Imw
 BIW0ZpHtxQWOxeYpSVEuZlZGBgEOIpSC3KzSxBlX/FKM7BqCTM2wMyhSczrwRu9yugs5iAzpo
 j0A9yVkkiQkqqgVHq57xDbwzuHDv6zi7rv/YSz5mnzQQsPD8t3Dn3S0PvLfmfBYHtR52mXX8x
 yXjSbKd7V+PdZnn/0T29/ePdV1Gcp+cLGxb2mi7RjGFZKSd2SWbD42XT4hg79z18vsR13WWV1
 DN2VpPniD6dlqg89+WOQx/1WL4+uLMt/Xt29591qx+LPL4ayTs1S4mlOCPRUIu5qDgRAAkczw
 fYAgAA
X-Env-Sender: tknchris@gmail.com
X-Msg-Ref: server-15.tower-31.messagelabs.com!1469107841!47800021!1
X-Originating-IP: [209.85.218.65]
X-SpamReason: No, hits=1.2 required=7.0 tests=HTML_20_30,HTML_MESSAGE,
 RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 34154 invoked from network); 21 Jul 2016 13:30:42 -0000
Received: from mail-oi0-f65.google.com (HELO mail-oi0-f65.google.com)
 (209.85.218.65)
 by server-15.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 21 Jul 2016 13:30:42 -0000
Received: by mail-oi0-f65.google.com with SMTP id l9so7700992oih.0
 for <win-pv-devel@lists.xenproject.org>; Thu, 21 Jul 2016 06:30:42 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=mime-version:from:date:message-id:subject:to;
 bh=MIVkrY+3LiJttXfE8NW/VETiLlzjPPV1o90s+rQv/ps=;
 b=CPxPl/sv82ZgVtRerFvACMqy02UiD8VuOvxbXT7EGof3jHcKKA0EeCSJCUYoDlxeRs
 xCkfkbWa1v1NEDbLXkZ3rr+4fHp7rTt7n0Cx2EUGf8WOcjKwvLZvy7HO9YjVo1vmB2f0
 PfXYcR74Miqy/9Fp5iwTp/h0Dc482ExusfDDZYq+ngV+3h37Zflu+sFm+cKPBwcboXqo
 HfCi0ktj0zexWb6aKh2sBbQgsD3XSyAA0m1HeqXweu7DXcirdycBxr5aCWx/Is7PgUgq
 jGKlSVQB11mUc1B1huF1eykkU9KL2+9gh4iaSEfLLD3bnff7a780Yh6DdP5XNGrCof8x
 1Gmg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:mime-version:from:date:message-id:subject:to;
 bh=MIVkrY+3LiJttXfE8NW/VETiLlzjPPV1o90s+rQv/ps=;
 b=iZlbiyOIeR0AXEZT67ObiS/beyCCQAMZdhe6cS61WS0WGFxkwPHOx4masmdSbOalAR
 VmGjJamkufoZraV6ixJ4XSfghkclrqFlH3wYbKMl70gX7emCSsvOJmatnbbJ+fWuBHKA
 WW37BLzNOsWviqk4x2jvc1NAtBY6ikr5CNluSnR4i+4zolsIf28AWKxTqLfRuTv1De9k
 OPxcE+E8C+zllC3LJjpR4E5BbLQMnOq+CNLDTjuMAOzTEJ7UUy7oCMkpMw0dz9IfxDD4
 XJL57QlXiTE00mxHZo0Ar+Ch2uUE31e7lLMLCeNVGZDdZ585BCiwhav5jHzHnCsg9TuV
 hhrw==
X-Gm-Message-State: ALyK8tIbpIUvlu1KRhENztGBzM4P1lQeQ5m849ReBFJnlROQwXCSqr0hUgQBxpyGRTsvZbtjdHpsHh/1C3v7iQ==
X-Received: by 10.157.47.246 with SMTP id b51mr27509308otd.25.1469107841168;
 Thu, 21 Jul 2016 06:30:41 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.202.173.14 with HTTP; Thu, 21 Jul 2016 06:30:40 -0700 (PDT)
From: chris <tknchris@gmail.com>
Date: Thu, 21 Jul 2016 09:30:40 -0400
Message-ID: <CAKnNFz_GLVZ2G6L_EBMq1AY5JpTUqVaNschscEtJ5q+Hzz1-0w@mail.gmail.com>
To: win-pv-devel@lists.xenproject.org
Subject: [win-pv-devel] Win-pv driver install success fails to boot
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============7429541860356775274=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============7429541860356775274==
Content-Type: multipart/alternative; boundary=001a113dc02a027890053825534b

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

Hello,

I am a previous gplpv user who recently came across this project and wanted
to give a try to atleast help provide feedback and testing.

I downloaded the latest drivers via the tar files on this page:

http://www.xenproject.org/downloads/windows-pv-drivers/development-builds.html

I extracted and ran dpinst as noted in the readme txt  for each driver and
saw that in device manager it created some new devices. NOTE this is a
clean install and did not have gplpv or any other drivers previously

I shutdown the domu, changed my disk and network lines to use the PV style:

'file:/mnt/vil1064/vil1064-ssd.img,xvda,w',

vif = ['type=netfront, bridge=xenbr0, mac=00:16:3D:37:A0:A3']

and when i tried to start it up, it gets stuck at windows 10 loading screen
with the logo and the spinning wheel underneath. i left it for several
hours and it never got any further nor did it bsod'd or reboot over and
over.

i went  back and changed my config back to emulated interfaces and windows
10 does not start via the original config either

did i miss some critical step(s)? any ideas why the OS wont boot? whats he
best to remove the drivers and try again?

i am a fairly technical linux and windows user and willing to invest some
time to anything that will help so please let me know if theres any more
info or anything i can do to give you more data

the dom0 is a up to date debian jessie, xl info gives:
release                : 3.16.0-4-amd64
version                : #1 SMP Debian 3.16.7-ckt11-1+deb8u5 (2015-10-09)
machine                : x86_64
nr_cpus                : 12
max_cpu_id             : 15
nr_nodes               : 2
cores_per_socket       : 12
threads_per_core       : 1
cpu_mhz                : 2100
hw_caps                :
178bf3ff:efd3fbff:00000000:00001300:00802001:00000000:000837ff:00000000
virt_caps              : hvm
total_memory           : 57342
free_memory            : 16455
sharing_freed_memory   : 0
sharing_used_memory    : 0
outstanding_claims     : 0
free_cpus              : 0
xen_major              : 4
xen_minor              : 4
xen_extra              : .1
xen_version            : 4.4.1
xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32
hvm-3.0-x86_32p hvm-3.0-x86_64
xen_scheduler          : credit
xen_pagesize           : 4096
platform_params        : virt_start=0xffff800000000000
xen_changeset          :
xen_commandline        : placeholder dom0_mem=1024M
cc_compiler            : gcc (Debian 4.9.2-10) 4.9.2
cc_compile_by          : ultrotter
cc_compile_domain      : debian.org
cc_compile_date        : Thu Jun 11 18:24:17 EEST 2015
xend_config_format     : 4

chris

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

<div dir=3D"ltr">Hello,<div><br></div><div>I am a previous gplpv user who r=
ecently came across this project and wanted to give a try to atleast help p=
rovide feedback and testing.</div><div><br></div><div>I downloaded the late=
st drivers via the tar files on this page:</div><div><br></div><div><a href=
=3D"http://www.xenproject.org/downloads/windows-pv-drivers/development-buil=
ds.html">http://www.xenproject.org/downloads/windows-pv-drivers/development=
-builds.html</a><br></div><div><br></div><div>I extracted and ran dpinst as=
 noted in the readme txt =C2=A0for each driver and saw that in device manag=
er it created some new devices. NOTE this is a clean install and did not ha=
ve gplpv or any other drivers previously=C2=A0</div><div><br>I shutdown the=
 domu, changed my disk and network lines to use the PV style:</div><div><br=
></div><div><div>&#39;file:/mnt/vil1064/vil1064-ssd.img,xvda,w&#39;,</div><=
/div><div><div><br></div><div>vif =3D [&#39;type=3Dnetfront, bridge=3Dxenbr=
0, mac=3D00:16:3D:37:A0:A3&#39;]</div></div><div><br></div><div>and when i =
tried to start it up, it gets stuck at windows 10 loading screen with the l=
ogo and the spinning wheel underneath. i left it for several hours and it n=
ever got any further nor did it bsod&#39;d or reboot over and over.</div><d=
iv><br></div><div>i went =C2=A0back and changed my config back to emulated =
interfaces and windows 10 does not start via the original config either</di=
v><div><br></div><div>did i miss some critical step(s)? any ideas why the O=
S wont boot? whats he best to remove the drivers and try again?</div><div><=
br></div><div>i am a fairly technical linux and windows user and willing to=
 invest some time to anything that will help so please let me know if there=
s any more info or anything i can do to give you more data</div><div><br></=
div><div>the dom0 is a up to date debian jessie, xl info gives:</div><div><=
div>release =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0: 3.16.0=
-4-amd64<br></div><div>version =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0: #1 SMP Debian 3.16.7-ckt11-1+deb8u5 (2015-10-09)</div><div>m=
achine =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0: x86_64</div=
><div>nr_cpus =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0: 12</=
div><div>max_cpu_id =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 : 15</div><di=
v>nr_nodes =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 : 2</div><div>c=
ores_per_socket =C2=A0 =C2=A0 =C2=A0 : 12</div><div>threads_per_core =C2=A0=
 =C2=A0 =C2=A0 : 1</div><div>cpu_mhz =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0: 2100</div><div>hw_caps =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0: 178bf3ff:efd3fbff:00000000:00001300:00802001:0000=
0000:000837ff:00000000</div><div>virt_caps =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0: hvm</div><div>total_memory =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 : 57342</div><div>free_memory =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0: 16455</div><div>sharing_freed_memory =C2=A0 : 0</div><div>sharing_used=
_memory =C2=A0 =C2=A0: 0</div><div>outstanding_claims =C2=A0 =C2=A0 : 0</di=
v><div>free_cpus =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0: 0</div><=
div>xen_major =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0: 4</div><div=
>xen_minor =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0: 4</div><div>xe=
n_extra =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0: .1</div><div>xen_=
version =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0: 4.4.1</div><div>xen_caps=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 : xen-3.0-x86_64 xen-3.0-=
x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64=C2=A0</div><div>xen_s=
cheduler =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0: credit</div><div>xen_pagesize =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 : 4096</div><div>platform_params =C2=A0 =
=C2=A0 =C2=A0 =C2=A0: virt_start=3D0xffff800000000000</div><div>xen_changes=
et =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0:=C2=A0</div><div>xen_commandline =C2=
=A0 =C2=A0 =C2=A0 =C2=A0: placeholder dom0_mem=3D1024M</div><div>cc_compile=
r =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0: gcc (Debian 4.9.2-10) 4.9.2</d=
iv><div>cc_compile_by =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0: ultrotter</div><d=
iv>cc_compile_domain =C2=A0 =C2=A0 =C2=A0: <a href=3D"http://debian.org">de=
bian.org</a></div><div>cc_compile_date =C2=A0 =C2=A0 =C2=A0 =C2=A0: Thu Jun=
 11 18:24:17 EEST 2015</div><div>xend_config_format =C2=A0 =C2=A0 : 4</div>=
</div><div><br></div><div>chris</div></div>

--001a113dc02a027890053825534b--


--===============7429541860356775274==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============7429541860356775274==--


From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 08:51:33 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 08:51:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQWBA-0007d4-Dg; Fri, 22 Jul 2016 08:51:32 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=004762f41=Paul.Durrant@citrix.com>)
 id 1bQWB9-0007cw-MB
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 08:51:32 +0000
Received: from [193.109.254.147] by server-14.bemta-14.messagelabs.com id
 B2/84-17024-39ED1975; Fri, 22 Jul 2016 08:51:31 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprKKsWRWlGSWpSXmKPExsWyU9JRQnfivYn
 hBis+GVr8WZzowOhx+MMVlgDGKNbMvKT8igTWjI/dn1gLVm5irmhb08XWwHhyDXMXIyeHhECQ
 xLWeNkYQm01AR2Lp0flMILaIQIbE2xdPWEBsYQF3iVfrWxgh4h4SbU0z2CBsI4mD93aD1bMIq
 Eqc797KCmLzAtWvWrcXrF5IIEBiZvd/sBpOgUCJKROms4PYjAKyEl8aV4PdwCwgLnHrCcReCQ
 EBiSV7zkPdJirx8vE/VgjbQGLr0n0sEPW5EvO3HGaE2CUocXImxJ1CAioSWx4fgOrlllj5+Q/
 LBEbhWUhWzELSPgtJ+yxGDqC4psT6XfoQJYoSU7ofskPYGhKtc+ayI4svYGRfxahRnFpUllqk
 a2ihl1SUmZ5RkpuYmaNraGiil5taXJyYnpqTmFSsl5yfu4kRGEX1DAyMOxiPbPc8xCjJwaQky
 vvj6sRwIb6k/JTKjMTijPii0pzU4kOMMhwcShK8tneBcoJFqempFWmZOcB4hklLcPAoifAuA0
 nzFhck5hZnpkOkTjHqcmxZcGMtkxBLXn5eqpQ47yyQIgGQoozSPLgRsNRyiVFWSpiXkYGBQYi
 nILUoN7MEVf4VozgHo5IwbzfIFJ7MvBK4Ta+AjmACOmKOQD/IESWJCCmpBsaSXbFWX5Skd55Q
 1lz56sm5r1qZJfPd5esfyP1t9JjiNe1PUkvLz7e3d2tVllwxlb57vPHnNrezge5vPJVOH2dn+
 nsh59wLnrSnAeZz9bZOeCHsFvM8I0tFZOWP1i+2m7/sfNp+56nvZ2GFuLTtUx0fiW69tex36z
 v1ZI/P+e6vSrc1/HvF5NWvxFKckWioxVxUnAgALxno4ygDAAA=
X-Env-Sender: prvs=004762f41=Paul.Durrant@citrix.com
X-Msg-Ref: server-8.tower-27.messagelabs.com!1469177489!44936177!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.6 required=7.0 tests=HTML_90_100,HTML_MESSAGE,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 33044 invoked from network); 22 Jul 2016 08:51:29 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-8.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 22 Jul 2016 08:51:29 -0000
X-IronPort-AV: E=Sophos;i="5.28,404,1464652800"; d="scan'208,217";a="26920566"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: chris <tknchris@gmail.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] Win-pv driver install success fails to boot
Thread-Index: AQHR41Qnk63y5YVv80ive5FTHt9jR6AkIa6A
Date: Fri, 22 Jul 2016 08:45:07 +0000
Message-ID: <16f8e57a658c4d20a7d7cc06fb6c19af@AMSPEX02CL03.citrite.net>
References: <CAKnNFz_GLVZ2G6L_EBMq1AY5JpTUqVaNschscEtJ5q+Hzz1-0w@mail.gmail.com>
In-Reply-To: <CAKnNFz_GLVZ2G6L_EBMq1AY5JpTUqVaNschscEtJ5q+Hzz1-0w@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] Win-pv driver install success fails to boot
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============3482659518969153909=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============3482659518969153909==
Content-Language: en-US
Content-Type: multipart/alternative;
	boundary="_000_16f8e57a658c4d20a7d7cc06fb6c19afAMSPEX02CL03citritenet_"

--_000_16f8e57a658c4d20a7d7cc06fb6c19afAMSPEX02CL03citritenet_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGkgQ2hyaXMsDQoNCiAgRG9u4oCZdCBtZXNzIHdpdGggdGhlIGRpc2sgYW5kIG5ldHdvcmsgbGlu
ZXMgaW4geW91ciBjb25maWcuIFlvdSBzdGlsbCBuZWVkIGVtdWxhdGVkIGRpc2sgdG8gYm9vdCBX
aW5kb3dzIGFzIHRoZSBmaXJtd2FyZSAoU2VhQklPUyBvciBST01CSU9TKSBkb2VzIG5vdCBoYXZl
IFBWIGZyb250ZW5kcy4gT25jZSBXaW5kb3dzIHN0YXJ0cyBhbmQgdGhlIFBWIGRyaXZlcnMgbG9h
ZCB0aGV5IHdpbGwgaW5zdHJ1Y3QgUUVNVSB0byB1bnBsdWcgdGhlIGVtdWxhdGVkIGRldmljZXMg
c28gdGhhdCB0aGUgUFYgZGV2aWNlcyBjYW4gdGFrZSB0aGVpciBwbGFjZS4NCg0KICBBcyBmb3Ig
cmVjb3ZlcmluZywgaXTigJlzIHByb2JhYmx5IGdvaW5nIHRvIGJlIHRyaWNreS4gU2luY2UgeW91
IHdlcmUgZG9pbmcgYSBmcmVzaCBpbnN0YWxsIGl04oCZcyBwcm9iYWJseSBxdWlja2VyIHRvIHN0
YXJ0IGFnYWluLiBUaGUgb3RoZXIgdGhpbmcgdG8gZG8gKmJlZm9yZSogeW91IGluc3RhbGwgUFYg
ZHJpdmVycyAoYW5kIEkgc3VzcGVjdCB0aGlzIGlzIHRoZSByb290IG9mIHlvdXIgcHJvYmxlbSkg
aXMgdG8gZW5hYmxlIHRlc3Qgc2lnbmVkIGRyaXZlcnMgaW4gV2luZG93cy4gV2luZG93cyAxMCAo
ZXZlbiAzMi1iaXQpIHdpbGwgbm90IGxvYWQgdGVzdCBzaWduZWQgZHJpdmVycyB1bmxlc3MgeW91
IGhhdmUgZG9uZToNCg0KYmNkZWRpdCAvc2V0IHRlc3RzaWduaW5nIG9uDQoNCiAgSG9wZSB0aGF0
IGhlbHBzLA0KDQogIFBhdWwNCg0KRnJvbTogd2luLXB2LWRldmVsIFttYWlsdG86d2luLXB2LWRl
dmVsLWJvdW5jZXNAbGlzdHMueGVucHJvamVjdC5vcmddIE9uIEJlaGFsZiBPZiBjaHJpcw0KU2Vu
dDogMjEgSnVseSAyMDE2IDE0OjMxDQpUbzogd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qu
b3JnDQpTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBXaW4tcHYgZHJpdmVyIGluc3RhbGwgc3VjY2Vz
cyBmYWlscyB0byBib290DQoNCkhlbGxvLA0KDQpJIGFtIGEgcHJldmlvdXMgZ3BscHYgdXNlciB3
aG8gcmVjZW50bHkgY2FtZSBhY3Jvc3MgdGhpcyBwcm9qZWN0IGFuZCB3YW50ZWQgdG8gZ2l2ZSBh
IHRyeSB0byBhdGxlYXN0IGhlbHAgcHJvdmlkZSBmZWVkYmFjayBhbmQgdGVzdGluZy4NCg0KSSBk
b3dubG9hZGVkIHRoZSBsYXRlc3QgZHJpdmVycyB2aWEgdGhlIHRhciBmaWxlcyBvbiB0aGlzIHBh
Z2U6DQoNCmh0dHA6Ly93d3cueGVucHJvamVjdC5vcmcvZG93bmxvYWRzL3dpbmRvd3MtcHYtZHJp
dmVycy9kZXZlbG9wbWVudC1idWlsZHMuaHRtbA0KDQpJIGV4dHJhY3RlZCBhbmQgcmFuIGRwaW5z
dCBhcyBub3RlZCBpbiB0aGUgcmVhZG1lIHR4dCAgZm9yIGVhY2ggZHJpdmVyIGFuZCBzYXcgdGhh
dCBpbiBkZXZpY2UgbWFuYWdlciBpdCBjcmVhdGVkIHNvbWUgbmV3IGRldmljZXMuIE5PVEUgdGhp
cyBpcyBhIGNsZWFuIGluc3RhbGwgYW5kIGRpZCBub3QgaGF2ZSBncGxwdiBvciBhbnkgb3RoZXIg
ZHJpdmVycyBwcmV2aW91c2x5DQoNCkkgc2h1dGRvd24gdGhlIGRvbXUsIGNoYW5nZWQgbXkgZGlz
ayBhbmQgbmV0d29yayBsaW5lcyB0byB1c2UgdGhlIFBWIHN0eWxlOg0KDQonZmlsZTovbW50L3Zp
bDEwNjQvdmlsMTA2NC1zc2QuaW1nLHh2ZGEsdycsDQoNCnZpZiA9IFsndHlwZT1uZXRmcm9udCwg
YnJpZGdlPXhlbmJyMCwgbWFjPTAwOjE2OjNEOjM3OkEwOkEzJ10NCg0KYW5kIHdoZW4gaSB0cmll
ZCB0byBzdGFydCBpdCB1cCwgaXQgZ2V0cyBzdHVjayBhdCB3aW5kb3dzIDEwIGxvYWRpbmcgc2Ny
ZWVuIHdpdGggdGhlIGxvZ28gYW5kIHRoZSBzcGlubmluZyB3aGVlbCB1bmRlcm5lYXRoLiBpIGxl
ZnQgaXQgZm9yIHNldmVyYWwgaG91cnMgYW5kIGl0IG5ldmVyIGdvdCBhbnkgZnVydGhlciBub3Ig
ZGlkIGl0IGJzb2QnZCBvciByZWJvb3Qgb3ZlciBhbmQgb3Zlci4NCg0KaSB3ZW50ICBiYWNrIGFu
ZCBjaGFuZ2VkIG15IGNvbmZpZyBiYWNrIHRvIGVtdWxhdGVkIGludGVyZmFjZXMgYW5kIHdpbmRv
d3MgMTAgZG9lcyBub3Qgc3RhcnQgdmlhIHRoZSBvcmlnaW5hbCBjb25maWcgZWl0aGVyDQoNCmRp
ZCBpIG1pc3Mgc29tZSBjcml0aWNhbCBzdGVwKHMpPyBhbnkgaWRlYXMgd2h5IHRoZSBPUyB3b250
IGJvb3Q/IHdoYXRzIGhlIGJlc3QgdG8gcmVtb3ZlIHRoZSBkcml2ZXJzIGFuZCB0cnkgYWdhaW4/
DQoNCmkgYW0gYSBmYWlybHkgdGVjaG5pY2FsIGxpbnV4IGFuZCB3aW5kb3dzIHVzZXIgYW5kIHdp
bGxpbmcgdG8gaW52ZXN0IHNvbWUgdGltZSB0byBhbnl0aGluZyB0aGF0IHdpbGwgaGVscCBzbyBw
bGVhc2UgbGV0IG1lIGtub3cgaWYgdGhlcmVzIGFueSBtb3JlIGluZm8gb3IgYW55dGhpbmcgaSBj
YW4gZG8gdG8gZ2l2ZSB5b3UgbW9yZSBkYXRhDQoNCnRoZSBkb20wIGlzIGEgdXAgdG8gZGF0ZSBk
ZWJpYW4gamVzc2llLCB4bCBpbmZvIGdpdmVzOg0KcmVsZWFzZSAgICAgICAgICAgICAgICA6IDMu
MTYuMC00LWFtZDY0DQp2ZXJzaW9uICAgICAgICAgICAgICAgIDogIzEgU01QIERlYmlhbiAzLjE2
LjctY2t0MTEtMStkZWI4dTUgKDIwMTUtMTAtMDkpDQptYWNoaW5lICAgICAgICAgICAgICAgIDog
eDg2XzY0DQpucl9jcHVzICAgICAgICAgICAgICAgIDogMTINCm1heF9jcHVfaWQgICAgICAgICAg
ICAgOiAxNQ0KbnJfbm9kZXMgICAgICAgICAgICAgICA6IDINCmNvcmVzX3Blcl9zb2NrZXQgICAg
ICAgOiAxMg0KdGhyZWFkc19wZXJfY29yZSAgICAgICA6IDENCmNwdV9taHogICAgICAgICAgICAg
ICAgOiAyMTAwDQpod19jYXBzICAgICAgICAgICAgICAgIDogMTc4YmYzZmY6ZWZkM2ZiZmY6MDAw
MDAwMDA6MDAwMDEzMDA6MDA4MDIwMDE6MDAwMDAwMDA6MDAwODM3ZmY6MDAwMDAwMDANCnZpcnRf
Y2FwcyAgICAgICAgICAgICAgOiBodm0NCnRvdGFsX21lbW9yeSAgICAgICAgICAgOiA1NzM0Mg0K
ZnJlZV9tZW1vcnkgICAgICAgICAgICA6IDE2NDU1DQpzaGFyaW5nX2ZyZWVkX21lbW9yeSAgIDog
MA0Kc2hhcmluZ191c2VkX21lbW9yeSAgICA6IDANCm91dHN0YW5kaW5nX2NsYWltcyAgICAgOiAw
DQpmcmVlX2NwdXMgICAgICAgICAgICAgIDogMA0KeGVuX21ham9yICAgICAgICAgICAgICA6IDQN
Cnhlbl9taW5vciAgICAgICAgICAgICAgOiA0DQp4ZW5fZXh0cmEgICAgICAgICAgICAgIDogLjEN
Cnhlbl92ZXJzaW9uICAgICAgICAgICAgOiA0LjQuMQ0KeGVuX2NhcHMgICAgICAgICAgICAgICA6
IHhlbi0zLjAteDg2XzY0IHhlbi0zLjAteDg2XzMycCBodm0tMy4wLXg4Nl8zMiBodm0tMy4wLXg4
Nl8zMnAgaHZtLTMuMC14ODZfNjQNCnhlbl9zY2hlZHVsZXIgICAgICAgICAgOiBjcmVkaXQNCnhl
bl9wYWdlc2l6ZSAgICAgICAgICAgOiA0MDk2DQpwbGF0Zm9ybV9wYXJhbXMgICAgICAgIDogdmly
dF9zdGFydD0weGZmZmY4MDAwMDAwMDAwMDANCnhlbl9jaGFuZ2VzZXQgICAgICAgICAgOg0KeGVu
X2NvbW1hbmRsaW5lICAgICAgICA6IHBsYWNlaG9sZGVyIGRvbTBfbWVtPTEwMjRNDQpjY19jb21w
aWxlciAgICAgICAgICAgIDogZ2NjIChEZWJpYW4gNC45LjItMTApIDQuOS4yDQpjY19jb21waWxl
X2J5ICAgICAgICAgIDogdWx0cm90dGVyDQpjY19jb21waWxlX2RvbWFpbiAgICAgIDogZGViaWFu
Lm9yZzxodHRwOi8vZGViaWFuLm9yZz4NCmNjX2NvbXBpbGVfZGF0ZSAgICAgICAgOiBUaHUgSnVu
IDExIDE4OjI0OjE3IEVFU1QgMjAxNQ0KeGVuZF9jb25maWdfZm9ybWF0ICAgICA6IDQNCg0KY2hy
aXMNCg==

--_000_16f8e57a658c4d20a7d7cc06fb6c19afAMSPEX02CL03citritenet_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IlByb2dJZCIg
Y29udGVudD0iV29yZC5Eb2N1bWVudCI+DQo8bWV0YSBuYW1lPSJHZW5lcmF0b3IiIGNvbnRlbnQ9
Ik1pY3Jvc29mdCBXb3JkIDE0Ij4NCjxtZXRhIG5hbWU9Ik9yaWdpbmF0b3IiIGNvbnRlbnQ9Ik1p
Y3Jvc29mdCBXb3JkIDE0Ij4NCjxsaW5rIHJlbD0iRmlsZS1MaXN0IiBocmVmPSJjaWQ6ZmlsZWxp
c3QueG1sQDAxRDFFM0ZELkJBQTE0RkUwIj48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOk9m
ZmljZURvY3VtZW50U2V0dGluZ3M+DQo8bzpBbGxvd1BORy8+DQo8bzpEb05vdFJlbHlPbkNTUy8+
DQo8L286T2ZmaWNlRG9jdW1lbnRTZXR0aW5ncz4NCjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYg
Z3RlIG1zbyA5XT48eG1sPg0KPHc6V29yZERvY3VtZW50Pg0KPHc6U3BlbGxpbmdTdGF0ZT5DbGVh
bjwvdzpTcGVsbGluZ1N0YXRlPg0KPHc6VHJhY2tNb3Zlcy8+DQo8dzpUcmFja0Zvcm1hdHRpbmcv
Pg0KPHc6RW52ZWxvcGVWaXMvPg0KPHc6VmFsaWRhdGVBZ2FpbnN0U2NoZW1hcy8+DQo8dzpTYXZl
SWZYTUxJbnZhbGlkPmZhbHNlPC93OlNhdmVJZlhNTEludmFsaWQ+DQo8dzpJZ25vcmVNaXhlZENv
bnRlbnQ+ZmFsc2U8L3c6SWdub3JlTWl4ZWRDb250ZW50Pg0KPHc6QWx3YXlzU2hvd1BsYWNlaG9s
ZGVyVGV4dD5mYWxzZTwvdzpBbHdheXNTaG93UGxhY2Vob2xkZXJUZXh0Pg0KPHc6RG9Ob3RQcm9t
b3RlUUYvPg0KPHc6TGlkVGhlbWVPdGhlcj5FTi1HQjwvdzpMaWRUaGVtZU90aGVyPg0KPHc6TGlk
VGhlbWVBc2lhbj5YLU5PTkU8L3c6TGlkVGhlbWVBc2lhbj4NCjx3OkxpZFRoZW1lQ29tcGxleFNj
cmlwdD5YLU5PTkU8L3c6TGlkVGhlbWVDb21wbGV4U2NyaXB0Pg0KPHc6Q29tcGF0aWJpbGl0eT4N
Cjx3OkRvTm90RXhwYW5kU2hpZnRSZXR1cm4vPg0KPHc6QnJlYWtXcmFwcGVkVGFibGVzLz4NCjx3
OlNwbGl0UGdCcmVha0FuZFBhcmFNYXJrLz4NCjx3OkVuYWJsZU9wZW5UeXBlS2VybmluZy8+DQo8
L3c6Q29tcGF0aWJpbGl0eT4NCjxtOm1hdGhQcj4NCjxtOm1hdGhGb250IG06dmFsPSJDYW1icmlh
IE1hdGgiLz4NCjxtOmJya0JpbiBtOnZhbD0iYmVmb3JlIi8+DQo8bTpicmtCaW5TdWIgbTp2YWw9
IiYjNDU7LSIvPg0KPG06c21hbGxGcmFjIG06dmFsPSJvZmYiLz4NCjxtOmRpc3BEZWYvPg0KPG06
bE1hcmdpbiBtOnZhbD0iMCIvPg0KPG06ck1hcmdpbiBtOnZhbD0iMCIvPg0KPG06ZGVmSmMgbTp2
YWw9ImNlbnRlckdyb3VwIi8+DQo8bTp3cmFwSW5kZW50IG06dmFsPSIxNDQwIi8+DQo8bTppbnRM
aW0gbTp2YWw9InN1YlN1cCIvPg0KPG06bmFyeUxpbSBtOnZhbD0idW5kT3ZyIi8+DQo8L206bWF0
aFByPjwvdzpXb3JkRG9jdW1lbnQ+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28g
OV0+PHhtbD4NCjx3OkxhdGVudFN0eWxlcyBEZWZMb2NrZWRTdGF0ZT0iZmFsc2UiIERlZlVuaGlk
ZVdoZW5Vc2VkPSJ0cnVlIiBEZWZTZW1pSGlkZGVuPSJ0cnVlIiBEZWZRRm9ybWF0PSJmYWxzZSIg
RGVmUHJpb3JpdHk9Ijk5IiBMYXRlbnRTdHlsZUNvdW50PSIyNjciPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJOb3JtYWwiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyAxIi8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFFGb3JtYXQ9InRydWUiIE5h
bWU9ImhlYWRpbmcgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyA0
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFFGb3JtYXQ9
InRydWUiIE5hbWU9ImhlYWRpbmcgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDYiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0i
aGVhZGluZyA3Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9Ijki
IFFGb3JtYXQ9InRydWUiIE5hbWU9ImhlYWRpbmcgOCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDkiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzkiIE5hbWU9InRvYyAx
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjM5IiBOYW1lPSJ0
b2MgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzOSIgTmFt
ZT0idG9jIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzki
IE5hbWU9InRvYyA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjM5IiBOYW1lPSJ0b2MgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9y
aXR5PSIzOSIgTmFtZT0idG9jIDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iMzkiIE5hbWU9InRvYyA3Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjM5IiBOYW1lPSJ0b2MgOCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSIzOSIgTmFtZT0idG9jIDkiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzUiIFFGb3JtYXQ9InRydWUiIE5hbWU9ImNhcHRpb24iLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMTAiIFNlbWlIaWRkZW49
ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9IlRpdGxl
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjEiIE5hbWU9IkRl
ZmF1bHQgUGFyYWdyYXBoIEZvbnQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iMTEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFG
b3JtYXQ9InRydWUiIE5hbWU9IlN1YnRpdGxlIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjIyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZh
bHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJTdHJvbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iMjAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNl
ZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9IkVtcGhhc2lzIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjU5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJUYWJsZSBHcmlkIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9j
a2VkPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJQbGFjZWhvbGRlciBUZXh0
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjEiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9Ik5v
IFNwYWNpbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjAi
IFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IFNo
YWRpbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjEiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IExpc3Qi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjIiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IEdyaWQiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjMiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDEiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDEiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDIiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjciIFNlbWlIaWRkZW49ImZhbHNlIiBV
bmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDEiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjgiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhp
ZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDIiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjkiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVX
aGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9IkRhcmsgTGlzdCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI3MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iQ29sb3JmdWwgU2hhZGluZyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iQ29sb3JmdWwgTGlzdCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI2MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIg
TmFtZT0iTGlnaHQgU2hhZGluZyBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI2MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iTGlnaHQgTGlzdCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI2MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgTmFtZT0iTGlnaHQgR3JpZCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMSBBY2NlbnQgMSIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVu
aGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMiBBY2NlbnQgMSIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NSIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3QgMSBBY2NlbnQg
MSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iUmV2aXNpb24iLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iMzQiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3Jt
YXQ9InRydWUiIE5hbWU9Ikxpc3QgUGFyYWdyYXBoIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjI5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJRdW90ZSIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzMCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iSW50ZW5zZSBRdW90ZSIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NiIgU2VtaUhpZGRlbj0iZmFsc2Ui
IFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3QgMiBBY2NlbnQgMSIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NyIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMSBBY2NlbnQg
MSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OCIgU2VtaUhp
ZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMiBB
Y2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OSIg
U2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdy
aWQgMyBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI3MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iRGFy
ayBMaXN0IEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjcxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJD
b2xvcmZ1bCBTaGFkaW5nIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjcyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNl
IiBOYW1lPSJDb2xvcmZ1bCBMaXN0IEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjczIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBHcmlkIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBTaGFkaW5nIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5o
aWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBMaXN0IEFjY2VudCAyIi8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYyIiBTZW1pSGlkZGVuPSJmYWxzZSIg
VW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBHcmlkIEFjY2VudCAyIi8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYzIiBTZW1pSGlkZGVuPSJmYWxz
ZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAxIEFjY2VudCAy
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY0IiBTZW1pSGlk
ZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAy
IEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY1
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0g
TGlzdCAxIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjY2IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJN
ZWRpdW0gTGlzdCAyIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjY3IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBO
YW1lPSJNZWRpdW0gR3JpZCAxIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjY4IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZh
bHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAyIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9j
a2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVz
ZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAzIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJEYXJrIExpc3QgQWNjZW50IDIiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhp
ZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIFNoYWRpbmcgQWNjZW50IDIiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzIiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIExpc3QgQWNjZW50IDIi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzMiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIEdyaWQgQWNj
ZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjAiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IFNoYWRp
bmcgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NjEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0
IExpc3QgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNjIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ikxp
Z2h0IEdyaWQgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNjMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9
Ik1lZGl1bSBTaGFkaW5nIDEgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFs
c2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDEgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhp
ZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDIgQWNjZW50IDMiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjciIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDEgQWNjZW50IDMiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjgiIFNlbWlIaWRkZW49
ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDIgQWNjZW50
IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjkiIFNlbWlI
aWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDMg
QWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzAi
IFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkRhcmsgTGlz
dCBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3
MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3Jm
dWwgU2hhZGluZyBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFBy
aW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFt
ZT0iQ29sb3JmdWwgTGlzdCBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI2MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgTmFtZT0iTGlnaHQgU2hhZGluZyBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdo
ZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQgTGlzdCBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQgR3JpZCBBY2NlbnQgNCIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVu
aGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMSBBY2NlbnQgNCIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NCIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMiBBY2Nl
bnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NSIgU2Vt
aUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3Qg
MSBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2
NiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVt
IExpc3QgMiBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9y
aXR5PSI2NyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0i
TWVkaXVtIEdyaWQgMSBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI2OCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIg
TmFtZT0iTWVkaXVtIEdyaWQgMiBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI2OSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMyBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgTmFtZT0iRGFyayBMaXN0IEFjY2VudCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBTaGFkaW5nIEFjY2VudCA0Ii8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcyIiBTZW1pSGlkZGVuPSJmYWxzZSIg
VW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBMaXN0IEFjY2VudCA0Ii8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjczIiBTZW1pSGlkZGVuPSJm
YWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBHcmlkIEFjY2VudCA0
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYwIiBTZW1pSGlk
ZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBTaGFkaW5nIEFj
Y2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYxIiBT
ZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBMaXN0
IEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYy
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBH
cmlkIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjYzIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRp
dW0gU2hhZGluZyAxIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjY0IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBO
YW1lPSJNZWRpdW0gU2hhZGluZyAyIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjY1IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAxIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY2IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAyIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY3IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5o
aWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAxIEFjY2VudCA1Ii8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY4IiBTZW1pSGlkZGVuPSJmYWxz
ZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAyIEFjY2VudCA1Ii8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY5IiBTZW1pSGlkZGVu
PSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAzIEFjY2Vu
dCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcwIiBTZW1p
SGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJEYXJrIExpc3QgQWNj
ZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzEiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIFNo
YWRpbmcgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNzIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNv
bG9yZnVsIExpc3QgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iNzMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5h
bWU9IkNvbG9yZnVsIEdyaWQgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNjAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFs
c2UiIE5hbWU9IkxpZ2h0IFNoYWRpbmcgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNl
ZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IExpc3QgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IEdyaWQgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVX
aGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDEgQWNjZW50IDYiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIgQWNjZW50IDYi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDEgQWNj
ZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0
IDIgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NjciIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1
bSBHcmlkIDEgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNjgiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9
Ik1lZGl1bSBHcmlkIDIgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBQcmlvcml0eT0iNjkiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2Ui
IE5hbWU9Ik1lZGl1bSBHcmlkIDMgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9
ImZhbHNlIiBQcmlvcml0eT0iNzAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0i
ZmFsc2UiIE5hbWU9IkRhcmsgTGlzdCBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI3MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgU2hhZGluZyBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgTGlzdCBBY2NlbnQgNiIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRlbj0iZmFsc2Ui
IFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCBBY2NlbnQgNiIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIxOSIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iU3VidGxl
IEVtcGhhc2lzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjIx
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVl
IiBOYW1lPSJJbnRlbnNlIEVtcGhhc2lzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjMxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNl
IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJTdWJ0bGUgUmVmZXJlbmNlIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjMyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJJbnRlbnNlIFJlZmVyZW5jZSIv
Pg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzMyIgU2VtaUhpZGRl
bj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iQm9v
ayBUaXRsZSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzNyIg
TmFtZT0iQmlibGlvZ3JhcGh5Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJp
b3JpdHk9IjM5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJUT0MgSGVhZGluZyIvPg0KPC93OkxhdGVu
dFN0eWxlcz4NCjwveG1sPjwhW2VuZGlmXS0tPjxzdHlsZT48IS0tDQovKiBGb250IERlZmluaXRp
b25zICovDQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAx
NSA1IDIgMiAyIDQgMyAyIDQ7DQoJbXNvLWZvbnQtYWx0OiJDZW50dXJ5IEdvdGhpYyI7DQoJbXNv
LWZvbnQtY2hhcnNldDowOw0KCW1zby1nZW5lcmljLWZvbnQtZmFtaWx5OnN3aXNzOw0KCW1zby1m
b250LXBpdGNoOnZhcmlhYmxlOw0KCW1zby1mb250LXNpZ25hdHVyZTotNTM2ODcwMTQ1IDEwNzM3
ODYxMTEgMSAwIDQxNSAwO30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6VGFob21hOw0KCXBh
bm9zZS0xOjIgMTEgNiA0IDMgNSA0IDQgMiA0Ow0KCW1zby1mb250LWNoYXJzZXQ6MDsNCgltc28t
Z2VuZXJpYy1mb250LWZhbWlseTpzd2lzczsNCgltc28tZm9udC1waXRjaDp2YXJpYWJsZTsNCglt
c28tZm9udC1zaWduYXR1cmU6LTUyMDA4MTY2NSAtMTA3MzcxNzE1NyA0MSAwIDY2MDQ3IDA7fQ0K
LyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5N
c29Ob3JtYWwNCgl7bXNvLXN0eWxlLXVuaGlkZTpubzsNCgltc28tc3R5bGUtcWZvcm1hdDp5ZXM7
DQoJbXNvLXN0eWxlLXBhcmVudDoiIjsNCgltYXJnaW46MGNtOw0KCW1hcmdpbi1ib3R0b206LjAw
MDFwdDsNCgltc28tcGFnaW5hdGlvbjp3aWRvdy1vcnBoYW47DQoJZm9udC1zaXplOjEyLjBwdDsN
Cglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIiwic2VyaWYiOw0KCW1zby1mYXJlYXN0LWZv
bnQtZmFtaWx5OkNhbGlicmk7fQ0KYTpsaW5rLCBzcGFuLk1zb0h5cGVybGluaw0KCXttc28tc3R5
bGUtbm9zaG93OnllczsNCgltc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6Ymx1ZTsNCgl0
ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOw0KCXRleHQtdW5kZXJsaW5lOnNpbmdsZTt9DQphOnZp
c2l0ZWQsIHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQNCgl7bXNvLXN0eWxlLW5vc2hvdzp5ZXM7
DQoJbXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOnB1cnBsZTsNCgl0ZXh0LWRlY29yYXRp
b246dW5kZXJsaW5lOw0KCXRleHQtdW5kZXJsaW5lOnNpbmdsZTt9DQpzcGFuLkVtYWlsU3R5bGUx
Nw0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbC1yZXBseTsNCgltc28tc3R5bGUtbm9zaG93Onll
czsNCgltc28tc3R5bGUtdW5oaWRlOm5vOw0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMS4wcHQ7DQoJ
bXNvLWJpZGktZm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMt
c2VyaWYiOw0KCW1zby1hc2NpaS1mb250LWZhbWlseTpDYWxpYnJpOw0KCW1zby1mYXJlYXN0LWZv
bnQtZmFtaWx5OkNhbGlicmk7DQoJbXNvLWhhbnNpLWZvbnQtZmFtaWx5OkNhbGlicmk7DQoJbXNv
LWJpZGktZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiI7DQoJY29sb3I6IzFGNDk3RDt9DQpz
cGFuLlNwZWxsRQ0KCXttc28tc3R5bGUtbmFtZToiIjsNCgltc28tc3BsLWU6eWVzO30NCi5Nc29D
aHBEZWZhdWx0DQoJe21zby1zdHlsZS10eXBlOmV4cG9ydC1vbmx5Ow0KCW1zby1kZWZhdWx0LXBy
b3BzOnllczsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMtc2VyaWYiOw0KCW1zby1hc2Np
aS1mb250LWZhbWlseTpDYWxpYnJpOw0KCW1zby1mYXJlYXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7
DQoJbXNvLWhhbnNpLWZvbnQtZmFtaWx5OkNhbGlicmk7DQoJbXNvLWJpZGktZm9udC1mYW1pbHk6
IlRpbWVzIE5ldyBSb21hbiI7DQoJbXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVM7fQ0KQHBhZ2Ug
V29yZFNlY3Rpb24xDQoJe3NpemU6NjEyLjBwdCA3OTIuMHB0Ow0KCW1hcmdpbjo3Mi4wcHQgNzIu
MHB0IDcyLjBwdCA3Mi4wcHQ7DQoJbXNvLWhlYWRlci1tYXJnaW46MzYuMHB0Ow0KCW1zby1mb290
ZXItbWFyZ2luOjM2LjBwdDsNCgltc28tcGFwZXItc291cmNlOjA7fQ0KZGl2LldvcmRTZWN0aW9u
MQ0KCXtwYWdlOldvcmRTZWN0aW9uMTt9DQotLT48L3N0eWxlPjwhLS1baWYgZ3RlIG1zbyAxMF0+
PHN0eWxlPi8qIFN0eWxlIERlZmluaXRpb25zICovDQp0YWJsZS5Nc29Ob3JtYWxUYWJsZQ0KCXtt
c28tc3R5bGUtbmFtZToiVGFibGUgTm9ybWFsIjsNCgltc28tdHN0eWxlLXJvd2JhbmQtc2l6ZTow
Ow0KCW1zby10c3R5bGUtY29sYmFuZC1zaXplOjA7DQoJbXNvLXN0eWxlLW5vc2hvdzp5ZXM7DQoJ
bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCW1zby1zdHlsZS1wYXJlbnQ6IiI7DQoJbXNvLXBhZGRp
bmctYWx0OjBjbSA1LjRwdCAwY20gNS40cHQ7DQoJbXNvLXBhcmEtbWFyZ2luOjBjbTsNCgltc28t
cGFyYS1tYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJbXNvLXBhZ2luYXRpb246d2lkb3ctb3JwaGFu
Ow0KCWZvbnQtc2l6ZToxMS4wcHQ7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLCJzYW5zLXNlcmlm
IjsNCgltc28tYXNjaWktZm9udC1mYW1pbHk6Q2FsaWJyaTsNCgltc28taGFuc2ktZm9udC1mYW1p
bHk6Q2FsaWJyaTsNCgltc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUzt9DQo8L3N0eWxlPjwhW2Vu
ZGlmXS0tPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0KPG86c2hhcGVkZWZhdWx0cyB2OmV4dD0i
ZWRpdCIgc3BpZG1heD0iMTAyNiIgLz4NCjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYgZ3RlIG1z
byA5XT48eG1sPg0KPG86c2hhcGVsYXlvdXQgdjpleHQ9ImVkaXQiPg0KPG86aWRtYXAgdjpleHQ9
ImVkaXQiIGRhdGE9IjEiIC8+DQo8L286c2hhcGVsYXlvdXQ+PC94bWw+PCFbZW5kaWZdLS0+DQo8
L2hlYWQ+DQo8Ym9keSBsYW5nPSJFTi1HQiIgbGluaz0iYmx1ZSIgdmxpbms9InB1cnBsZSIgc3R5
bGU9InRhYi1pbnRlcnZhbDozNi4wcHQiPg0KPGRpdiBjbGFzcz0iV29yZFNlY3Rpb24xIj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJD
YWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWJpZGktZm9udC1mYW1pbHk6
JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPkhpIENocmlzLDxvOnA+
PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXpl
PSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlm
JnF1b3Q7O21zby1iaWRpLWZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90Oztj
b2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9IkNhbGli
cmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGli
cmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tYmlkaS1mb250LWZhbWlseTomcXVv
dDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RCI+PHNwYW4gc3R5bGU9Im1zby1z
cGFjZXJ1bjp5ZXMiPiZuYnNwOw0KPC9zcGFuPkRvbuKAmXQgbWVzcyB3aXRoIHRoZSBkaXNrIGFu
ZCBuZXR3b3JrIGxpbmVzIGluIHlvdXIgPHNwYW4gY2xhc3M9IlNwZWxsRSI+Y29uZmlnPC9zcGFu
Pi4gWW91IHN0aWxsIG5lZWQgZW11bGF0ZWQgZGlzayB0byBib290IFdpbmRvd3MgYXMgdGhlIGZp
cm13YXJlICg8c3BhbiBjbGFzcz0iU3BlbGxFIj5TZWFCSU9TPC9zcGFuPiBvciBST01CSU9TKSBk
b2VzIG5vdCBoYXZlIFBWIGZyb250ZW5kcy4gT25jZSBXaW5kb3dzIHN0YXJ0cyBhbmQgdGhlDQog
UFYgZHJpdmVycyBsb2FkIHRoZXkgd2lsbCBpbnN0cnVjdCBRRU1VIHRvIHVucGx1ZyB0aGUgZW11
bGF0ZWQgZGV2aWNlcyBzbyB0aGF0IHRoZSBQViBkZXZpY2VzIGNhbiB0YWtlIHRoZWlyIHBsYWNl
LjxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9u
dCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5z
LXNlcmlmJnF1b3Q7O21zby1iaWRpLWZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZx
dW90Oztjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9
IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tYmlkaS1mb250LWZhbWls
eTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RCI+PHNwYW4gc3R5bGU9
Im1zby1zcGFjZXJ1bjp5ZXMiPiZuYnNwOw0KPC9zcGFuPkFzIGZvciByZWNvdmVyaW5nLCBpdOKA
mXMgcHJvYmFibHkgZ29pbmcgdG8gYmUgdHJpY2t5LiBTaW5jZSB5b3Ugd2VyZSBkb2luZyBhIGZy
ZXNoIGluc3RhbGwgaXTigJlzIHByb2JhYmx5IHF1aWNrZXIgdG8gc3RhcnQgYWdhaW4uIFRoZSBv
dGhlciB0aGluZyB0byBkbyAqPGI+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPmJlZm9y
ZTwvc3Bhbj48L2I+KiB5b3UgaW5zdGFsbCBQViBkcml2ZXJzIChhbmQgSSBzdXNwZWN0IHRoaXMg
aXMNCiB0aGUgcm9vdCBvZiB5b3VyIHByb2JsZW0pIGlzIHRvIGVuYWJsZSB0ZXN0IHNpZ25lZCBk
cml2ZXJzIGluIFdpbmRvd3MuIFdpbmRvd3MgMTAgKGV2ZW4gMzItYml0KSB3aWxsIG5vdCBsb2Fk
IHRlc3Qgc2lnbmVkIGRyaXZlcnMgdW5sZXNzIHlvdSBoYXZlIGRvbmU6PG86cD48L286cD48L3Nw
YW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9y
PSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNv
LWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5
N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBjbGFzcz0iU3BlbGxFIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIg
ZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1iaWRpLWZvbnQt
ZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90Oztjb2xvcjojMUY0OTdEIj5iY2RlZGl0
PC9zcGFuPjwvZm9udD48L3NwYW4+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9
IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tYmlkaS1mb250LWZhbWls
eTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RCI+DQogL3NldCA8c3Bh
biBjbGFzcz0iU3BlbGxFIj50ZXN0c2lnbmluZzwvc3Bhbj4gb248bzpwPjwvbzpwPjwvc3Bhbj48
L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMx
ZjQ5N2QiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tYmlk
aS1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RCI+
PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
Pjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90
O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJv
bWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46eWVzIj4m
bmJzcDsNCjwvc3Bhbj5Ib3BlIHRoYXQgaGVscHMsPG86cD48L286cD48L3NwYW4+PC9mb250Pjwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBm
YWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWJpZGktZm9udC1m
YW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5i
c3A7PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBz
aXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNl
cmlmJnF1b3Q7O21zby1iaWRpLWZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90
Oztjb2xvcjojMUY0OTdEIj48c3BhbiBzdHlsZT0ibXNvLXNwYWNlcnVuOnllcyI+Jm5ic3A7DQo8
L3NwYW4+UGF1bDxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oywm
cXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1iaWRpLWZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5l
dyBSb21hbiZxdW90Oztjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L2Zv
bnQ+PC9wPg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgYmx1ZSAx
LjVwdDtwYWRkaW5nOjBjbSAwY20gMGNtIDQuMHB0Ij4NCjxkaXY+DQo8ZGl2IHN0eWxlPSJib3Jk
ZXI6bm9uZTtib3JkZXItdG9wOnNvbGlkICNCNUM0REYgMS4wcHQ7cGFkZGluZzozLjBwdCAwY20g
MGNtIDBjbSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48Zm9udCBzaXplPSIyIiBmYWNlPSJU
YWhvbWEiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZh
bWlseTomcXVvdDtUYWhvbWEmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tZmFyZWFz
dC1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7bXNvLWFuc2ktbGFuZ3Vh
Z2U6RU4tVVM7Zm9udC13ZWlnaHQ6Ym9sZCI+RnJvbTo8L3NwYW4+PC9mb250PjwvYj48Zm9udCBz
aXplPSIyIiBmYWNlPSJUYWhvbWEiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXpl
OjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtUYWhvbWEmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZx
dW90Ozttc28tZmFyZWFzdC1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7
bXNvLWFuc2ktbGFuZ3VhZ2U6RU4tVVMiPg0KIHdpbi1wdi1kZXZlbCBbbWFpbHRvOndpbi1wdi1k
ZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnXSA8Yj48c3BhbiBzdHlsZT0iZm9udC13
ZWlnaHQ6Ym9sZCI+T24gQmVoYWxmIE9mDQo8L3NwYW4+PC9iPmNocmlzPGJyPg0KPGI+PHNwYW4g
c3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPlNlbnQ6PC9zcGFuPjwvYj4gMjEgSnVseSAyMDE2IDE0
OjMxPGJyPg0KPGI+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPlRvOjwvc3Bhbj48L2I+
IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZzxicj4NCjxiPjxzcGFuIHN0eWxlPSJm
b250LXdlaWdodDpib2xkIj5TdWJqZWN0Ojwvc3Bhbj48L2I+IFt3aW4tcHYtZGV2ZWxdIFdpbi1w
diBkcml2ZXIgaW5zdGFsbCBzdWNjZXNzIGZhaWxzIHRvIGJvb3Q8bzpwPjwvbzpwPjwvc3Bhbj48
L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNp
emU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4w
cHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjEyLjBwdCI+SGVsbG8sPG86cD48L286cD48L3NwYW4+PC9mb250Pjwv
cD4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1l
cyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij48bzpwPiZuYnNwOzwv
bzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjEyLjBwdCI+SSBhbSBhIHByZXZpb3VzIGdwbHB2IHVzZXIgd2hvIHJlY2VudGx5IGNh
bWUgYWNyb3NzIHRoaXMgcHJvamVjdCBhbmQgd2FudGVkIHRvIGdpdmUgYSB0cnkgdG8gYXRsZWFz
dCBoZWxwIHByb3ZpZGUgZmVlZGJhY2sgYW5kIHRlc3RpbmcuPG86cD48L286cD48L3NwYW4+PC9m
b250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9
IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQi
PjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5JIGRvd25sb2FkZWQgdGhlIGxhdGVzdCBkcml2
ZXJzIHZpYSB0aGUgdGFyIGZpbGVzIG9uIHRoaXMgcGFnZTo8bzpwPjwvbzpwPjwvc3Bhbj48L2Zv
bnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0i
MyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+
PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjxhIGhyZWY9Imh0dHA6Ly93d3cueGVucHJvamVj
dC5vcmcvZG93bmxvYWRzL3dpbmRvd3MtcHYtZHJpdmVycy9kZXZlbG9wbWVudC1idWlsZHMuaHRt
bCI+aHR0cDovL3d3dy54ZW5wcm9qZWN0Lm9yZy9kb3dubG9hZHMvd2luZG93cy1wdi1kcml2ZXJz
L2RldmVsb3BtZW50LWJ1aWxkcy5odG1sPC9hPjxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNl
PSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij48bzpwPiZu
YnNwOzwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjEyLjBwdCI+SSBleHRyYWN0ZWQgYW5kIHJhbiBkcGluc3QgYXMgbm90ZWQg
aW4gdGhlIHJlYWRtZSB0eHQgJm5ic3A7Zm9yIGVhY2ggZHJpdmVyIGFuZCBzYXcgdGhhdCBpbiBk
ZXZpY2UgbWFuYWdlciBpdCBjcmVhdGVkIHNvbWUgbmV3IGRldmljZXMuIE5PVEUgdGhpcyBpcyBh
IGNsZWFuIGluc3RhbGwgYW5kIGRpZA0KIG5vdCBoYXZlIGdwbHB2IG9yIGFueSBvdGhlciBkcml2
ZXJzIHByZXZpb3VzbHkmbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMg
TmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+PGJyPg0KSSBzaHV0ZG93
biB0aGUgZG9tdSwgY2hhbmdlZCBteSBkaXNrIGFuZCBuZXR3b3JrIGxpbmVzIHRvIHVzZSB0aGUg
UFYgc3R5bGU6PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwv
Zm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZv
bnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjEyLjBwdCI+J2ZpbGU6L21udC92aWwxMDY0L3ZpbDEwNjQtc3NkLmltZyx4dmRhLHcnLDxvOnA+
PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4i
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48
L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6
ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBw
dCI+dmlmID0gWyd0eXBlPW5ldGZyb250LCBicmlkZ2U9eGVuYnIwLCBtYWM9MDA6MTY6M0Q6Mzc6
QTA6QTMnXTxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBS
b21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9z
cGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9u
dCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTIuMHB0Ij5hbmQgd2hlbiBpIHRyaWVkIHRvIHN0YXJ0IGl0IHVwLCBpdCBnZXRzIHN0dWNrIGF0
IHdpbmRvd3MgMTAgbG9hZGluZyBzY3JlZW4gd2l0aCB0aGUgbG9nbyBhbmQgdGhlIHNwaW5uaW5n
IHdoZWVsIHVuZGVybmVhdGguIGkgbGVmdCBpdCBmb3Igc2V2ZXJhbCBob3VycyBhbmQgaXQgbmV2
ZXIgZ290DQogYW55IGZ1cnRoZXIgbm9yIGRpZCBpdCBic29kJ2Qgb3IgcmVib290IG92ZXIgYW5k
IG92ZXIuPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9u
dD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIz
IiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5p
IHdlbnQgJm5ic3A7YmFjayBhbmQgY2hhbmdlZCBteSBjb25maWcgYmFjayB0byBlbXVsYXRlZCBp
bnRlcmZhY2VzIGFuZCB3aW5kb3dzIDEwIGRvZXMgbm90IHN0YXJ0IHZpYSB0aGUgb3JpZ2luYWwg
Y29uZmlnIGVpdGhlcjxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9t
YW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bh
bj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQg
c2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEy
LjBwdCI+ZGlkIGkgbWlzcyBzb21lIGNyaXRpY2FsIHN0ZXAocyk/IGFueSBpZGVhcyB3aHkgdGhl
IE9TIHdvbnQgYm9vdD8gd2hhdHMgaGUgYmVzdCB0byByZW1vdmUgdGhlIGRyaXZlcnMgYW5kIHRy
eSBhZ2Fpbj88bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9m
b250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9
IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQi
PmkgYW0gYSBmYWlybHkgdGVjaG5pY2FsIGxpbnV4IGFuZCB3aW5kb3dzIHVzZXIgYW5kIHdpbGxp
bmcgdG8gaW52ZXN0IHNvbWUgdGltZSB0byBhbnl0aGluZyB0aGF0IHdpbGwgaGVscCBzbyBwbGVh
c2UgbGV0IG1lIGtub3cgaWYgdGhlcmVzIGFueSBtb3JlIGluZm8gb3IgYW55dGhpbmcgaSBjYW4N
CiBkbyB0byBnaXZlIHlvdSBtb3JlIGRhdGE8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0K
PC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0i
VGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+PG86cD4mbmJz
cDs8L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMi4wcHQiPnRoZSBkb20wIGlzIGEgdXAgdG8gZGF0ZSBkZWJpYW4gamVzc2ll
LCB4bCBpbmZvIGdpdmVzOjxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxk
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGlt
ZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+cmVsZWFzZSAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiAzLjE2
LjAtNC1hbWQ2NDxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4i
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij52ZXJzaW9uICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs6ICMxIFNNUCBEZWJpYW4gMy4x
Ni43LWNrdDExLTEmIzQzO2RlYjh1NSAoMjAxNS0xMC0wOSk8bzpwPjwvbzpwPjwvc3Bhbj48L2Zv
bnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0i
MyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+
bWFjaGluZSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7OiB4ODZfNjQ8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJv
bWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+bnJfY3B1cyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiAxMjxvOnA+PC9vOnA+
PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTIuMHB0Ij5tYXhfY3B1X2lkICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7IDogMTU8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFu
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+bnJfbm9kZXMgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogMjxvOnA+PC9vOnA+PC9zcGFuPjwv
Zm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXpl
PSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0
Ij5jb3Jlc19wZXJfc29ja2V0ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogMTI8bzpwPjwvbzpwPjwv
c3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZv
bnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjEyLjBwdCI+dGhyZWFkc19wZXJfY29yZSAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IDE8bzpwPjwv
bzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjEyLjBwdCI+Y3B1X21oeiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiAyMTAwPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4N
CjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9
IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPmh3X2NhcHMg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzog
MTc4YmYzZmY6ZWZkM2ZiZmY6MDAwMDAwMDA6MDAwMDEzMDA6MDA4MDIwMDE6MDAwMDAwMDA6MDAw
ODM3ZmY6MDAwMDAwMDA8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJv
bWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+dmlydF9jYXBzICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzogaHZtPG86cD48L286cD48L3Nw
YW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250
IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
Mi4wcHQiPnRvdGFsX21lbW9yeSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDog
NTczNDI8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+ZnJlZV9tZW1vcnkgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs6IDE2NDU1PG86cD48L286cD48L3NwYW4+PC9mb250Pjwv
cD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZh
Y2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPnNoYXJp
bmdfZnJlZWRfbWVtb3J5ICZuYnNwOyA6IDA8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0K
PC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0i
VGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+c2hhcmluZ191
c2VkX21lbW9yeSAmbmJzcDsgJm5ic3A7OiAwPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4N
CjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9
IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPm91dHN0YW5k
aW5nX2NsYWltcyAmbmJzcDsgJm5ic3A7IDogMDxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNl
PSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5mcmVlX2Nw
dXMgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiAwPG86
cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMi4wcHQiPnhlbl9tYWpvciAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDs6IDQ8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9k
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGlt
ZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+eGVuX21pbm9yICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzogNDxvOnA+PC9v
OnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTIuMHB0Ij54ZW5fZXh0cmEgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7OiAuMTxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBO
ZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij54ZW5fdmVyc2lvbiAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzogNC40LjE8bzpwPjwvbzpwPjwv
c3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZv
bnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjEyLjBwdCI+eGVuX2NhcHMgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7IDogeGVuLTMuMC14ODZfNjQgeGVuLTMuMC14ODZfMzJwIGh2bS0zLjAteDg2XzMy
IGh2bS0zLjAteDg2XzMycCBodm0tMy4wLXg4Nl82NCZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwv
Zm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXpl
PSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0
Ij54ZW5fc2NoZWR1bGVyICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs6IGNyZWRp
dDxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTIuMHB0Ij54ZW5fcGFnZXNpemUgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyA6IDQwOTY8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMg
TmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+cGxhdGZvcm1fcGFyYW1z
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzogdmlydF9zdGFydD0weGZmZmY4MDAwMDAwMDAw
MDA8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjEyLjBwdCI+eGVuX2NoYW5nZXNldCAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7OiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1l
cyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij54ZW5fY29tbWFuZGxp
bmUgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiBwbGFjZWhvbGRlciBkb20wX21lbT0xMDI0
TTxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTIuMHB0Ij5jY19jb21waWxlciAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOzogZ2NjIChEZWJpYW4gNC45LjItMTApIDQuOS4yPG86cD48L286
cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
Pjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMi4wcHQiPmNjX2NvbXBpbGVfYnkgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOzogdWx0cm90dGVyPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBS
b21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPmNjX2NvbXBpbGVfZG9tYWluICZu
YnNwOyAmbmJzcDsgJm5ic3A7Og0KPGEgaHJlZj0iaHR0cDovL2RlYmlhbi5vcmciPmRlYmlhbi5v
cmc8L2E+PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPmNjX2NvbXBpbGVfZGF0ZSAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDs6IFRodSBKdW4gMTEgMTg6MjQ6MTcgRUVTVCAyMDE1PG86cD48L286cD48
L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxm
b250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMi4wcHQiPnhlbmRfY29uZmlnX2Zvcm1hdCAmbmJzcDsgJm5ic3A7IDogNDxvOnA+PC9vOnA+
PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMi4wcHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8
L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJU
aW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5jaHJpczxvOnA+
PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4N
CjwvYm9keT4NCjwvaHRtbD4NCg==

--_000_16f8e57a658c4d20a7d7cc06fb6c19afAMSPEX02CL03citritenet_--


--===============3482659518969153909==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============3482659518969153909==--


From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 08:51:33 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 08:51:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQWBA-0007d4-Dg; Fri, 22 Jul 2016 08:51:32 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=004762f41=Paul.Durrant@citrix.com>)
 id 1bQWB9-0007cw-MB
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 08:51:32 +0000
Received: from [193.109.254.147] by server-14.bemta-14.messagelabs.com id
 B2/84-17024-39ED1975; Fri, 22 Jul 2016 08:51:31 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprKKsWRWlGSWpSXmKPExsWyU9JRQnfivYn
 hBis+GVr8WZzowOhx+MMVlgDGKNbMvKT8igTWjI/dn1gLVm5irmhb08XWwHhyDXMXIyeHhECQ
 xLWeNkYQm01AR2Lp0flMILaIQIbE2xdPWEBsYQF3iVfrWxgh4h4SbU0z2CBsI4mD93aD1bMIq
 Eqc797KCmLzAtWvWrcXrF5IIEBiZvd/sBpOgUCJKROms4PYjAKyEl8aV4PdwCwgLnHrCcReCQ
 EBiSV7zkPdJirx8vE/VgjbQGLr0n0sEPW5EvO3HGaE2CUocXImxJ1CAioSWx4fgOrlllj5+Q/
 LBEbhWUhWzELSPgtJ+yxGDqC4psT6XfoQJYoSU7ofskPYGhKtc+ayI4svYGRfxahRnFpUllqk
 a2ihl1SUmZ5RkpuYmaNraGiil5taXJyYnpqTmFSsl5yfu4kRGEX1DAyMOxiPbPc8xCjJwaQky
 vvj6sRwIb6k/JTKjMTijPii0pzU4kOMMhwcShK8tneBcoJFqempFWmZOcB4hklLcPAoifAuA0
 nzFhck5hZnpkOkTjHqcmxZcGMtkxBLXn5eqpQ47yyQIgGQoozSPLgRsNRyiVFWSpiXkYGBQYi
 nILUoN7MEVf4VozgHo5IwbzfIFJ7MvBK4Ta+AjmACOmKOQD/IESWJCCmpBsaSXbFWX5Skd55Q
 1lz56sm5r1qZJfPd5esfyP1t9JjiNe1PUkvLz7e3d2tVllwxlb57vPHnNrezge5vPJVOH2dn+
 nsh59wLnrSnAeZz9bZOeCHsFvM8I0tFZOWP1i+2m7/sfNp+56nvZ2GFuLTtUx0fiW69tex36z
 v1ZI/P+e6vSrc1/HvF5NWvxFKckWioxVxUnAgALxno4ygDAAA=
X-Env-Sender: prvs=004762f41=Paul.Durrant@citrix.com
X-Msg-Ref: server-8.tower-27.messagelabs.com!1469177489!44936177!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.6 required=7.0 tests=HTML_90_100,HTML_MESSAGE,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 33044 invoked from network); 22 Jul 2016 08:51:29 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-8.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 22 Jul 2016 08:51:29 -0000
X-IronPort-AV: E=Sophos;i="5.28,404,1464652800"; d="scan'208,217";a="26920566"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: chris <tknchris@gmail.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] Win-pv driver install success fails to boot
Thread-Index: AQHR41Qnk63y5YVv80ive5FTHt9jR6AkIa6A
Date: Fri, 22 Jul 2016 08:45:07 +0000
Message-ID: <16f8e57a658c4d20a7d7cc06fb6c19af@AMSPEX02CL03.citrite.net>
References: <CAKnNFz_GLVZ2G6L_EBMq1AY5JpTUqVaNschscEtJ5q+Hzz1-0w@mail.gmail.com>
In-Reply-To: <CAKnNFz_GLVZ2G6L_EBMq1AY5JpTUqVaNschscEtJ5q+Hzz1-0w@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] Win-pv driver install success fails to boot
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============3482659518969153909=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============3482659518969153909==
Content-Language: en-US
Content-Type: multipart/alternative;
	boundary="_000_16f8e57a658c4d20a7d7cc06fb6c19afAMSPEX02CL03citritenet_"

--_000_16f8e57a658c4d20a7d7cc06fb6c19afAMSPEX02CL03citritenet_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGkgQ2hyaXMsDQoNCiAgRG9u4oCZdCBtZXNzIHdpdGggdGhlIGRpc2sgYW5kIG5ldHdvcmsgbGlu
ZXMgaW4geW91ciBjb25maWcuIFlvdSBzdGlsbCBuZWVkIGVtdWxhdGVkIGRpc2sgdG8gYm9vdCBX
aW5kb3dzIGFzIHRoZSBmaXJtd2FyZSAoU2VhQklPUyBvciBST01CSU9TKSBkb2VzIG5vdCBoYXZl
IFBWIGZyb250ZW5kcy4gT25jZSBXaW5kb3dzIHN0YXJ0cyBhbmQgdGhlIFBWIGRyaXZlcnMgbG9h
ZCB0aGV5IHdpbGwgaW5zdHJ1Y3QgUUVNVSB0byB1bnBsdWcgdGhlIGVtdWxhdGVkIGRldmljZXMg
c28gdGhhdCB0aGUgUFYgZGV2aWNlcyBjYW4gdGFrZSB0aGVpciBwbGFjZS4NCg0KICBBcyBmb3Ig
cmVjb3ZlcmluZywgaXTigJlzIHByb2JhYmx5IGdvaW5nIHRvIGJlIHRyaWNreS4gU2luY2UgeW91
IHdlcmUgZG9pbmcgYSBmcmVzaCBpbnN0YWxsIGl04oCZcyBwcm9iYWJseSBxdWlja2VyIHRvIHN0
YXJ0IGFnYWluLiBUaGUgb3RoZXIgdGhpbmcgdG8gZG8gKmJlZm9yZSogeW91IGluc3RhbGwgUFYg
ZHJpdmVycyAoYW5kIEkgc3VzcGVjdCB0aGlzIGlzIHRoZSByb290IG9mIHlvdXIgcHJvYmxlbSkg
aXMgdG8gZW5hYmxlIHRlc3Qgc2lnbmVkIGRyaXZlcnMgaW4gV2luZG93cy4gV2luZG93cyAxMCAo
ZXZlbiAzMi1iaXQpIHdpbGwgbm90IGxvYWQgdGVzdCBzaWduZWQgZHJpdmVycyB1bmxlc3MgeW91
IGhhdmUgZG9uZToNCg0KYmNkZWRpdCAvc2V0IHRlc3RzaWduaW5nIG9uDQoNCiAgSG9wZSB0aGF0
IGhlbHBzLA0KDQogIFBhdWwNCg0KRnJvbTogd2luLXB2LWRldmVsIFttYWlsdG86d2luLXB2LWRl
dmVsLWJvdW5jZXNAbGlzdHMueGVucHJvamVjdC5vcmddIE9uIEJlaGFsZiBPZiBjaHJpcw0KU2Vu
dDogMjEgSnVseSAyMDE2IDE0OjMxDQpUbzogd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qu
b3JnDQpTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBXaW4tcHYgZHJpdmVyIGluc3RhbGwgc3VjY2Vz
cyBmYWlscyB0byBib290DQoNCkhlbGxvLA0KDQpJIGFtIGEgcHJldmlvdXMgZ3BscHYgdXNlciB3
aG8gcmVjZW50bHkgY2FtZSBhY3Jvc3MgdGhpcyBwcm9qZWN0IGFuZCB3YW50ZWQgdG8gZ2l2ZSBh
IHRyeSB0byBhdGxlYXN0IGhlbHAgcHJvdmlkZSBmZWVkYmFjayBhbmQgdGVzdGluZy4NCg0KSSBk
b3dubG9hZGVkIHRoZSBsYXRlc3QgZHJpdmVycyB2aWEgdGhlIHRhciBmaWxlcyBvbiB0aGlzIHBh
Z2U6DQoNCmh0dHA6Ly93d3cueGVucHJvamVjdC5vcmcvZG93bmxvYWRzL3dpbmRvd3MtcHYtZHJp
dmVycy9kZXZlbG9wbWVudC1idWlsZHMuaHRtbA0KDQpJIGV4dHJhY3RlZCBhbmQgcmFuIGRwaW5z
dCBhcyBub3RlZCBpbiB0aGUgcmVhZG1lIHR4dCAgZm9yIGVhY2ggZHJpdmVyIGFuZCBzYXcgdGhh
dCBpbiBkZXZpY2UgbWFuYWdlciBpdCBjcmVhdGVkIHNvbWUgbmV3IGRldmljZXMuIE5PVEUgdGhp
cyBpcyBhIGNsZWFuIGluc3RhbGwgYW5kIGRpZCBub3QgaGF2ZSBncGxwdiBvciBhbnkgb3RoZXIg
ZHJpdmVycyBwcmV2aW91c2x5DQoNCkkgc2h1dGRvd24gdGhlIGRvbXUsIGNoYW5nZWQgbXkgZGlz
ayBhbmQgbmV0d29yayBsaW5lcyB0byB1c2UgdGhlIFBWIHN0eWxlOg0KDQonZmlsZTovbW50L3Zp
bDEwNjQvdmlsMTA2NC1zc2QuaW1nLHh2ZGEsdycsDQoNCnZpZiA9IFsndHlwZT1uZXRmcm9udCwg
YnJpZGdlPXhlbmJyMCwgbWFjPTAwOjE2OjNEOjM3OkEwOkEzJ10NCg0KYW5kIHdoZW4gaSB0cmll
ZCB0byBzdGFydCBpdCB1cCwgaXQgZ2V0cyBzdHVjayBhdCB3aW5kb3dzIDEwIGxvYWRpbmcgc2Ny
ZWVuIHdpdGggdGhlIGxvZ28gYW5kIHRoZSBzcGlubmluZyB3aGVlbCB1bmRlcm5lYXRoLiBpIGxl
ZnQgaXQgZm9yIHNldmVyYWwgaG91cnMgYW5kIGl0IG5ldmVyIGdvdCBhbnkgZnVydGhlciBub3Ig
ZGlkIGl0IGJzb2QnZCBvciByZWJvb3Qgb3ZlciBhbmQgb3Zlci4NCg0KaSB3ZW50ICBiYWNrIGFu
ZCBjaGFuZ2VkIG15IGNvbmZpZyBiYWNrIHRvIGVtdWxhdGVkIGludGVyZmFjZXMgYW5kIHdpbmRv
d3MgMTAgZG9lcyBub3Qgc3RhcnQgdmlhIHRoZSBvcmlnaW5hbCBjb25maWcgZWl0aGVyDQoNCmRp
ZCBpIG1pc3Mgc29tZSBjcml0aWNhbCBzdGVwKHMpPyBhbnkgaWRlYXMgd2h5IHRoZSBPUyB3b250
IGJvb3Q/IHdoYXRzIGhlIGJlc3QgdG8gcmVtb3ZlIHRoZSBkcml2ZXJzIGFuZCB0cnkgYWdhaW4/
DQoNCmkgYW0gYSBmYWlybHkgdGVjaG5pY2FsIGxpbnV4IGFuZCB3aW5kb3dzIHVzZXIgYW5kIHdp
bGxpbmcgdG8gaW52ZXN0IHNvbWUgdGltZSB0byBhbnl0aGluZyB0aGF0IHdpbGwgaGVscCBzbyBw
bGVhc2UgbGV0IG1lIGtub3cgaWYgdGhlcmVzIGFueSBtb3JlIGluZm8gb3IgYW55dGhpbmcgaSBj
YW4gZG8gdG8gZ2l2ZSB5b3UgbW9yZSBkYXRhDQoNCnRoZSBkb20wIGlzIGEgdXAgdG8gZGF0ZSBk
ZWJpYW4gamVzc2llLCB4bCBpbmZvIGdpdmVzOg0KcmVsZWFzZSAgICAgICAgICAgICAgICA6IDMu
MTYuMC00LWFtZDY0DQp2ZXJzaW9uICAgICAgICAgICAgICAgIDogIzEgU01QIERlYmlhbiAzLjE2
LjctY2t0MTEtMStkZWI4dTUgKDIwMTUtMTAtMDkpDQptYWNoaW5lICAgICAgICAgICAgICAgIDog
eDg2XzY0DQpucl9jcHVzICAgICAgICAgICAgICAgIDogMTINCm1heF9jcHVfaWQgICAgICAgICAg
ICAgOiAxNQ0KbnJfbm9kZXMgICAgICAgICAgICAgICA6IDINCmNvcmVzX3Blcl9zb2NrZXQgICAg
ICAgOiAxMg0KdGhyZWFkc19wZXJfY29yZSAgICAgICA6IDENCmNwdV9taHogICAgICAgICAgICAg
ICAgOiAyMTAwDQpod19jYXBzICAgICAgICAgICAgICAgIDogMTc4YmYzZmY6ZWZkM2ZiZmY6MDAw
MDAwMDA6MDAwMDEzMDA6MDA4MDIwMDE6MDAwMDAwMDA6MDAwODM3ZmY6MDAwMDAwMDANCnZpcnRf
Y2FwcyAgICAgICAgICAgICAgOiBodm0NCnRvdGFsX21lbW9yeSAgICAgICAgICAgOiA1NzM0Mg0K
ZnJlZV9tZW1vcnkgICAgICAgICAgICA6IDE2NDU1DQpzaGFyaW5nX2ZyZWVkX21lbW9yeSAgIDog
MA0Kc2hhcmluZ191c2VkX21lbW9yeSAgICA6IDANCm91dHN0YW5kaW5nX2NsYWltcyAgICAgOiAw
DQpmcmVlX2NwdXMgICAgICAgICAgICAgIDogMA0KeGVuX21ham9yICAgICAgICAgICAgICA6IDQN
Cnhlbl9taW5vciAgICAgICAgICAgICAgOiA0DQp4ZW5fZXh0cmEgICAgICAgICAgICAgIDogLjEN
Cnhlbl92ZXJzaW9uICAgICAgICAgICAgOiA0LjQuMQ0KeGVuX2NhcHMgICAgICAgICAgICAgICA6
IHhlbi0zLjAteDg2XzY0IHhlbi0zLjAteDg2XzMycCBodm0tMy4wLXg4Nl8zMiBodm0tMy4wLXg4
Nl8zMnAgaHZtLTMuMC14ODZfNjQNCnhlbl9zY2hlZHVsZXIgICAgICAgICAgOiBjcmVkaXQNCnhl
bl9wYWdlc2l6ZSAgICAgICAgICAgOiA0MDk2DQpwbGF0Zm9ybV9wYXJhbXMgICAgICAgIDogdmly
dF9zdGFydD0weGZmZmY4MDAwMDAwMDAwMDANCnhlbl9jaGFuZ2VzZXQgICAgICAgICAgOg0KeGVu
X2NvbW1hbmRsaW5lICAgICAgICA6IHBsYWNlaG9sZGVyIGRvbTBfbWVtPTEwMjRNDQpjY19jb21w
aWxlciAgICAgICAgICAgIDogZ2NjIChEZWJpYW4gNC45LjItMTApIDQuOS4yDQpjY19jb21waWxl
X2J5ICAgICAgICAgIDogdWx0cm90dGVyDQpjY19jb21waWxlX2RvbWFpbiAgICAgIDogZGViaWFu
Lm9yZzxodHRwOi8vZGViaWFuLm9yZz4NCmNjX2NvbXBpbGVfZGF0ZSAgICAgICAgOiBUaHUgSnVu
IDExIDE4OjI0OjE3IEVFU1QgMjAxNQ0KeGVuZF9jb25maWdfZm9ybWF0ICAgICA6IDQNCg0KY2hy
aXMNCg==

--_000_16f8e57a658c4d20a7d7cc06fb6c19afAMSPEX02CL03citritenet_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IlByb2dJZCIg
Y29udGVudD0iV29yZC5Eb2N1bWVudCI+DQo8bWV0YSBuYW1lPSJHZW5lcmF0b3IiIGNvbnRlbnQ9
Ik1pY3Jvc29mdCBXb3JkIDE0Ij4NCjxtZXRhIG5hbWU9Ik9yaWdpbmF0b3IiIGNvbnRlbnQ9Ik1p
Y3Jvc29mdCBXb3JkIDE0Ij4NCjxsaW5rIHJlbD0iRmlsZS1MaXN0IiBocmVmPSJjaWQ6ZmlsZWxp
c3QueG1sQDAxRDFFM0ZELkJBQTE0RkUwIj48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOk9m
ZmljZURvY3VtZW50U2V0dGluZ3M+DQo8bzpBbGxvd1BORy8+DQo8bzpEb05vdFJlbHlPbkNTUy8+
DQo8L286T2ZmaWNlRG9jdW1lbnRTZXR0aW5ncz4NCjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYg
Z3RlIG1zbyA5XT48eG1sPg0KPHc6V29yZERvY3VtZW50Pg0KPHc6U3BlbGxpbmdTdGF0ZT5DbGVh
bjwvdzpTcGVsbGluZ1N0YXRlPg0KPHc6VHJhY2tNb3Zlcy8+DQo8dzpUcmFja0Zvcm1hdHRpbmcv
Pg0KPHc6RW52ZWxvcGVWaXMvPg0KPHc6VmFsaWRhdGVBZ2FpbnN0U2NoZW1hcy8+DQo8dzpTYXZl
SWZYTUxJbnZhbGlkPmZhbHNlPC93OlNhdmVJZlhNTEludmFsaWQ+DQo8dzpJZ25vcmVNaXhlZENv
bnRlbnQ+ZmFsc2U8L3c6SWdub3JlTWl4ZWRDb250ZW50Pg0KPHc6QWx3YXlzU2hvd1BsYWNlaG9s
ZGVyVGV4dD5mYWxzZTwvdzpBbHdheXNTaG93UGxhY2Vob2xkZXJUZXh0Pg0KPHc6RG9Ob3RQcm9t
b3RlUUYvPg0KPHc6TGlkVGhlbWVPdGhlcj5FTi1HQjwvdzpMaWRUaGVtZU90aGVyPg0KPHc6TGlk
VGhlbWVBc2lhbj5YLU5PTkU8L3c6TGlkVGhlbWVBc2lhbj4NCjx3OkxpZFRoZW1lQ29tcGxleFNj
cmlwdD5YLU5PTkU8L3c6TGlkVGhlbWVDb21wbGV4U2NyaXB0Pg0KPHc6Q29tcGF0aWJpbGl0eT4N
Cjx3OkRvTm90RXhwYW5kU2hpZnRSZXR1cm4vPg0KPHc6QnJlYWtXcmFwcGVkVGFibGVzLz4NCjx3
OlNwbGl0UGdCcmVha0FuZFBhcmFNYXJrLz4NCjx3OkVuYWJsZU9wZW5UeXBlS2VybmluZy8+DQo8
L3c6Q29tcGF0aWJpbGl0eT4NCjxtOm1hdGhQcj4NCjxtOm1hdGhGb250IG06dmFsPSJDYW1icmlh
IE1hdGgiLz4NCjxtOmJya0JpbiBtOnZhbD0iYmVmb3JlIi8+DQo8bTpicmtCaW5TdWIgbTp2YWw9
IiYjNDU7LSIvPg0KPG06c21hbGxGcmFjIG06dmFsPSJvZmYiLz4NCjxtOmRpc3BEZWYvPg0KPG06
bE1hcmdpbiBtOnZhbD0iMCIvPg0KPG06ck1hcmdpbiBtOnZhbD0iMCIvPg0KPG06ZGVmSmMgbTp2
YWw9ImNlbnRlckdyb3VwIi8+DQo8bTp3cmFwSW5kZW50IG06dmFsPSIxNDQwIi8+DQo8bTppbnRM
aW0gbTp2YWw9InN1YlN1cCIvPg0KPG06bmFyeUxpbSBtOnZhbD0idW5kT3ZyIi8+DQo8L206bWF0
aFByPjwvdzpXb3JkRG9jdW1lbnQ+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28g
OV0+PHhtbD4NCjx3OkxhdGVudFN0eWxlcyBEZWZMb2NrZWRTdGF0ZT0iZmFsc2UiIERlZlVuaGlk
ZVdoZW5Vc2VkPSJ0cnVlIiBEZWZTZW1pSGlkZGVuPSJ0cnVlIiBEZWZRRm9ybWF0PSJmYWxzZSIg
RGVmUHJpb3JpdHk9Ijk5IiBMYXRlbnRTdHlsZUNvdW50PSIyNjciPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJOb3JtYWwiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyAxIi8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFFGb3JtYXQ9InRydWUiIE5h
bWU9ImhlYWRpbmcgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyA0
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFFGb3JtYXQ9
InRydWUiIE5hbWU9ImhlYWRpbmcgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDYiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0i
aGVhZGluZyA3Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9Ijki
IFFGb3JtYXQ9InRydWUiIE5hbWU9ImhlYWRpbmcgOCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDkiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzkiIE5hbWU9InRvYyAx
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjM5IiBOYW1lPSJ0
b2MgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzOSIgTmFt
ZT0idG9jIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzki
IE5hbWU9InRvYyA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjM5IiBOYW1lPSJ0b2MgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9y
aXR5PSIzOSIgTmFtZT0idG9jIDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iMzkiIE5hbWU9InRvYyA3Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjM5IiBOYW1lPSJ0b2MgOCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSIzOSIgTmFtZT0idG9jIDkiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzUiIFFGb3JtYXQ9InRydWUiIE5hbWU9ImNhcHRpb24iLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMTAiIFNlbWlIaWRkZW49
ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9IlRpdGxl
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjEiIE5hbWU9IkRl
ZmF1bHQgUGFyYWdyYXBoIEZvbnQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iMTEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFG
b3JtYXQ9InRydWUiIE5hbWU9IlN1YnRpdGxlIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjIyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZh
bHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJTdHJvbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iMjAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNl
ZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9IkVtcGhhc2lzIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjU5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJUYWJsZSBHcmlkIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9j
a2VkPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJQbGFjZWhvbGRlciBUZXh0
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjEiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9Ik5v
IFNwYWNpbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjAi
IFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IFNo
YWRpbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjEiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IExpc3Qi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjIiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IEdyaWQiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjMiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDEiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDEiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDIiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjciIFNlbWlIaWRkZW49ImZhbHNlIiBV
bmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDEiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjgiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhp
ZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDIiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjkiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVX
aGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9IkRhcmsgTGlzdCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI3MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iQ29sb3JmdWwgU2hhZGluZyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iQ29sb3JmdWwgTGlzdCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI2MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIg
TmFtZT0iTGlnaHQgU2hhZGluZyBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI2MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iTGlnaHQgTGlzdCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI2MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgTmFtZT0iTGlnaHQgR3JpZCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMSBBY2NlbnQgMSIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVu
aGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMiBBY2NlbnQgMSIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NSIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3QgMSBBY2NlbnQg
MSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iUmV2aXNpb24iLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iMzQiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3Jt
YXQ9InRydWUiIE5hbWU9Ikxpc3QgUGFyYWdyYXBoIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjI5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJRdW90ZSIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzMCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iSW50ZW5zZSBRdW90ZSIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NiIgU2VtaUhpZGRlbj0iZmFsc2Ui
IFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3QgMiBBY2NlbnQgMSIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NyIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMSBBY2NlbnQg
MSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OCIgU2VtaUhp
ZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMiBB
Y2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OSIg
U2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdy
aWQgMyBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI3MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iRGFy
ayBMaXN0IEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjcxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJD
b2xvcmZ1bCBTaGFkaW5nIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjcyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNl
IiBOYW1lPSJDb2xvcmZ1bCBMaXN0IEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjczIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBHcmlkIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBTaGFkaW5nIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5o
aWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBMaXN0IEFjY2VudCAyIi8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYyIiBTZW1pSGlkZGVuPSJmYWxzZSIg
VW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBHcmlkIEFjY2VudCAyIi8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYzIiBTZW1pSGlkZGVuPSJmYWxz
ZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAxIEFjY2VudCAy
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY0IiBTZW1pSGlk
ZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAy
IEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY1
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0g
TGlzdCAxIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjY2IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJN
ZWRpdW0gTGlzdCAyIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjY3IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBO
YW1lPSJNZWRpdW0gR3JpZCAxIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjY4IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZh
bHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAyIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9j
a2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVz
ZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAzIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJEYXJrIExpc3QgQWNjZW50IDIiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhp
ZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIFNoYWRpbmcgQWNjZW50IDIiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzIiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIExpc3QgQWNjZW50IDIi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzMiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIEdyaWQgQWNj
ZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjAiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IFNoYWRp
bmcgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NjEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0
IExpc3QgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNjIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ikxp
Z2h0IEdyaWQgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNjMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9
Ik1lZGl1bSBTaGFkaW5nIDEgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFs
c2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDEgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhp
ZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDIgQWNjZW50IDMiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjciIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDEgQWNjZW50IDMiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjgiIFNlbWlIaWRkZW49
ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDIgQWNjZW50
IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjkiIFNlbWlI
aWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDMg
QWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzAi
IFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkRhcmsgTGlz
dCBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3
MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3Jm
dWwgU2hhZGluZyBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFBy
aW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFt
ZT0iQ29sb3JmdWwgTGlzdCBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI2MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgTmFtZT0iTGlnaHQgU2hhZGluZyBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdo
ZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQgTGlzdCBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQgR3JpZCBBY2NlbnQgNCIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVu
aGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMSBBY2NlbnQgNCIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NCIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMiBBY2Nl
bnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NSIgU2Vt
aUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3Qg
MSBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2
NiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVt
IExpc3QgMiBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9y
aXR5PSI2NyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0i
TWVkaXVtIEdyaWQgMSBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI2OCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIg
TmFtZT0iTWVkaXVtIEdyaWQgMiBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI2OSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMyBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgTmFtZT0iRGFyayBMaXN0IEFjY2VudCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBTaGFkaW5nIEFjY2VudCA0Ii8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcyIiBTZW1pSGlkZGVuPSJmYWxzZSIg
VW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBMaXN0IEFjY2VudCA0Ii8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjczIiBTZW1pSGlkZGVuPSJm
YWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBHcmlkIEFjY2VudCA0
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYwIiBTZW1pSGlk
ZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBTaGFkaW5nIEFj
Y2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYxIiBT
ZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBMaXN0
IEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYy
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBH
cmlkIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjYzIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRp
dW0gU2hhZGluZyAxIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjY0IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBO
YW1lPSJNZWRpdW0gU2hhZGluZyAyIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjY1IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAxIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY2IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAyIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY3IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5o
aWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAxIEFjY2VudCA1Ii8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY4IiBTZW1pSGlkZGVuPSJmYWxz
ZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAyIEFjY2VudCA1Ii8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY5IiBTZW1pSGlkZGVu
PSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAzIEFjY2Vu
dCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcwIiBTZW1p
SGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJEYXJrIExpc3QgQWNj
ZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzEiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIFNo
YWRpbmcgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNzIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNv
bG9yZnVsIExpc3QgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iNzMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5h
bWU9IkNvbG9yZnVsIEdyaWQgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNjAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFs
c2UiIE5hbWU9IkxpZ2h0IFNoYWRpbmcgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNl
ZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IExpc3QgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IEdyaWQgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVX
aGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDEgQWNjZW50IDYiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIgQWNjZW50IDYi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDEgQWNj
ZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0
IDIgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NjciIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1
bSBHcmlkIDEgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNjgiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9
Ik1lZGl1bSBHcmlkIDIgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBQcmlvcml0eT0iNjkiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2Ui
IE5hbWU9Ik1lZGl1bSBHcmlkIDMgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9
ImZhbHNlIiBQcmlvcml0eT0iNzAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0i
ZmFsc2UiIE5hbWU9IkRhcmsgTGlzdCBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI3MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgU2hhZGluZyBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgTGlzdCBBY2NlbnQgNiIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRlbj0iZmFsc2Ui
IFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCBBY2NlbnQgNiIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIxOSIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iU3VidGxl
IEVtcGhhc2lzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjIx
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVl
IiBOYW1lPSJJbnRlbnNlIEVtcGhhc2lzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjMxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNl
IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJTdWJ0bGUgUmVmZXJlbmNlIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjMyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJJbnRlbnNlIFJlZmVyZW5jZSIv
Pg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzMyIgU2VtaUhpZGRl
bj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iQm9v
ayBUaXRsZSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzNyIg
TmFtZT0iQmlibGlvZ3JhcGh5Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJp
b3JpdHk9IjM5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJUT0MgSGVhZGluZyIvPg0KPC93OkxhdGVu
dFN0eWxlcz4NCjwveG1sPjwhW2VuZGlmXS0tPjxzdHlsZT48IS0tDQovKiBGb250IERlZmluaXRp
b25zICovDQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAx
NSA1IDIgMiAyIDQgMyAyIDQ7DQoJbXNvLWZvbnQtYWx0OiJDZW50dXJ5IEdvdGhpYyI7DQoJbXNv
LWZvbnQtY2hhcnNldDowOw0KCW1zby1nZW5lcmljLWZvbnQtZmFtaWx5OnN3aXNzOw0KCW1zby1m
b250LXBpdGNoOnZhcmlhYmxlOw0KCW1zby1mb250LXNpZ25hdHVyZTotNTM2ODcwMTQ1IDEwNzM3
ODYxMTEgMSAwIDQxNSAwO30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6VGFob21hOw0KCXBh
bm9zZS0xOjIgMTEgNiA0IDMgNSA0IDQgMiA0Ow0KCW1zby1mb250LWNoYXJzZXQ6MDsNCgltc28t
Z2VuZXJpYy1mb250LWZhbWlseTpzd2lzczsNCgltc28tZm9udC1waXRjaDp2YXJpYWJsZTsNCglt
c28tZm9udC1zaWduYXR1cmU6LTUyMDA4MTY2NSAtMTA3MzcxNzE1NyA0MSAwIDY2MDQ3IDA7fQ0K
LyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5N
c29Ob3JtYWwNCgl7bXNvLXN0eWxlLXVuaGlkZTpubzsNCgltc28tc3R5bGUtcWZvcm1hdDp5ZXM7
DQoJbXNvLXN0eWxlLXBhcmVudDoiIjsNCgltYXJnaW46MGNtOw0KCW1hcmdpbi1ib3R0b206LjAw
MDFwdDsNCgltc28tcGFnaW5hdGlvbjp3aWRvdy1vcnBoYW47DQoJZm9udC1zaXplOjEyLjBwdDsN
Cglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIiwic2VyaWYiOw0KCW1zby1mYXJlYXN0LWZv
bnQtZmFtaWx5OkNhbGlicmk7fQ0KYTpsaW5rLCBzcGFuLk1zb0h5cGVybGluaw0KCXttc28tc3R5
bGUtbm9zaG93OnllczsNCgltc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6Ymx1ZTsNCgl0
ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOw0KCXRleHQtdW5kZXJsaW5lOnNpbmdsZTt9DQphOnZp
c2l0ZWQsIHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQNCgl7bXNvLXN0eWxlLW5vc2hvdzp5ZXM7
DQoJbXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOnB1cnBsZTsNCgl0ZXh0LWRlY29yYXRp
b246dW5kZXJsaW5lOw0KCXRleHQtdW5kZXJsaW5lOnNpbmdsZTt9DQpzcGFuLkVtYWlsU3R5bGUx
Nw0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbC1yZXBseTsNCgltc28tc3R5bGUtbm9zaG93Onll
czsNCgltc28tc3R5bGUtdW5oaWRlOm5vOw0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMS4wcHQ7DQoJ
bXNvLWJpZGktZm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMt
c2VyaWYiOw0KCW1zby1hc2NpaS1mb250LWZhbWlseTpDYWxpYnJpOw0KCW1zby1mYXJlYXN0LWZv
bnQtZmFtaWx5OkNhbGlicmk7DQoJbXNvLWhhbnNpLWZvbnQtZmFtaWx5OkNhbGlicmk7DQoJbXNv
LWJpZGktZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiI7DQoJY29sb3I6IzFGNDk3RDt9DQpz
cGFuLlNwZWxsRQ0KCXttc28tc3R5bGUtbmFtZToiIjsNCgltc28tc3BsLWU6eWVzO30NCi5Nc29D
aHBEZWZhdWx0DQoJe21zby1zdHlsZS10eXBlOmV4cG9ydC1vbmx5Ow0KCW1zby1kZWZhdWx0LXBy
b3BzOnllczsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMtc2VyaWYiOw0KCW1zby1hc2Np
aS1mb250LWZhbWlseTpDYWxpYnJpOw0KCW1zby1mYXJlYXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7
DQoJbXNvLWhhbnNpLWZvbnQtZmFtaWx5OkNhbGlicmk7DQoJbXNvLWJpZGktZm9udC1mYW1pbHk6
IlRpbWVzIE5ldyBSb21hbiI7DQoJbXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVM7fQ0KQHBhZ2Ug
V29yZFNlY3Rpb24xDQoJe3NpemU6NjEyLjBwdCA3OTIuMHB0Ow0KCW1hcmdpbjo3Mi4wcHQgNzIu
MHB0IDcyLjBwdCA3Mi4wcHQ7DQoJbXNvLWhlYWRlci1tYXJnaW46MzYuMHB0Ow0KCW1zby1mb290
ZXItbWFyZ2luOjM2LjBwdDsNCgltc28tcGFwZXItc291cmNlOjA7fQ0KZGl2LldvcmRTZWN0aW9u
MQ0KCXtwYWdlOldvcmRTZWN0aW9uMTt9DQotLT48L3N0eWxlPjwhLS1baWYgZ3RlIG1zbyAxMF0+
PHN0eWxlPi8qIFN0eWxlIERlZmluaXRpb25zICovDQp0YWJsZS5Nc29Ob3JtYWxUYWJsZQ0KCXtt
c28tc3R5bGUtbmFtZToiVGFibGUgTm9ybWFsIjsNCgltc28tdHN0eWxlLXJvd2JhbmQtc2l6ZTow
Ow0KCW1zby10c3R5bGUtY29sYmFuZC1zaXplOjA7DQoJbXNvLXN0eWxlLW5vc2hvdzp5ZXM7DQoJ
bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCW1zby1zdHlsZS1wYXJlbnQ6IiI7DQoJbXNvLXBhZGRp
bmctYWx0OjBjbSA1LjRwdCAwY20gNS40cHQ7DQoJbXNvLXBhcmEtbWFyZ2luOjBjbTsNCgltc28t
cGFyYS1tYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJbXNvLXBhZ2luYXRpb246d2lkb3ctb3JwaGFu
Ow0KCWZvbnQtc2l6ZToxMS4wcHQ7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLCJzYW5zLXNlcmlm
IjsNCgltc28tYXNjaWktZm9udC1mYW1pbHk6Q2FsaWJyaTsNCgltc28taGFuc2ktZm9udC1mYW1p
bHk6Q2FsaWJyaTsNCgltc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUzt9DQo8L3N0eWxlPjwhW2Vu
ZGlmXS0tPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0KPG86c2hhcGVkZWZhdWx0cyB2OmV4dD0i
ZWRpdCIgc3BpZG1heD0iMTAyNiIgLz4NCjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYgZ3RlIG1z
byA5XT48eG1sPg0KPG86c2hhcGVsYXlvdXQgdjpleHQ9ImVkaXQiPg0KPG86aWRtYXAgdjpleHQ9
ImVkaXQiIGRhdGE9IjEiIC8+DQo8L286c2hhcGVsYXlvdXQ+PC94bWw+PCFbZW5kaWZdLS0+DQo8
L2hlYWQ+DQo8Ym9keSBsYW5nPSJFTi1HQiIgbGluaz0iYmx1ZSIgdmxpbms9InB1cnBsZSIgc3R5
bGU9InRhYi1pbnRlcnZhbDozNi4wcHQiPg0KPGRpdiBjbGFzcz0iV29yZFNlY3Rpb24xIj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJD
YWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWJpZGktZm9udC1mYW1pbHk6
JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPkhpIENocmlzLDxvOnA+
PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXpl
PSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlm
JnF1b3Q7O21zby1iaWRpLWZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90Oztj
b2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9IkNhbGli
cmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGli
cmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tYmlkaS1mb250LWZhbWlseTomcXVv
dDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RCI+PHNwYW4gc3R5bGU9Im1zby1z
cGFjZXJ1bjp5ZXMiPiZuYnNwOw0KPC9zcGFuPkRvbuKAmXQgbWVzcyB3aXRoIHRoZSBkaXNrIGFu
ZCBuZXR3b3JrIGxpbmVzIGluIHlvdXIgPHNwYW4gY2xhc3M9IlNwZWxsRSI+Y29uZmlnPC9zcGFu
Pi4gWW91IHN0aWxsIG5lZWQgZW11bGF0ZWQgZGlzayB0byBib290IFdpbmRvd3MgYXMgdGhlIGZp
cm13YXJlICg8c3BhbiBjbGFzcz0iU3BlbGxFIj5TZWFCSU9TPC9zcGFuPiBvciBST01CSU9TKSBk
b2VzIG5vdCBoYXZlIFBWIGZyb250ZW5kcy4gT25jZSBXaW5kb3dzIHN0YXJ0cyBhbmQgdGhlDQog
UFYgZHJpdmVycyBsb2FkIHRoZXkgd2lsbCBpbnN0cnVjdCBRRU1VIHRvIHVucGx1ZyB0aGUgZW11
bGF0ZWQgZGV2aWNlcyBzbyB0aGF0IHRoZSBQViBkZXZpY2VzIGNhbiB0YWtlIHRoZWlyIHBsYWNl
LjxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9u
dCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5z
LXNlcmlmJnF1b3Q7O21zby1iaWRpLWZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZx
dW90Oztjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9
IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tYmlkaS1mb250LWZhbWls
eTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RCI+PHNwYW4gc3R5bGU9
Im1zby1zcGFjZXJ1bjp5ZXMiPiZuYnNwOw0KPC9zcGFuPkFzIGZvciByZWNvdmVyaW5nLCBpdOKA
mXMgcHJvYmFibHkgZ29pbmcgdG8gYmUgdHJpY2t5LiBTaW5jZSB5b3Ugd2VyZSBkb2luZyBhIGZy
ZXNoIGluc3RhbGwgaXTigJlzIHByb2JhYmx5IHF1aWNrZXIgdG8gc3RhcnQgYWdhaW4uIFRoZSBv
dGhlciB0aGluZyB0byBkbyAqPGI+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPmJlZm9y
ZTwvc3Bhbj48L2I+KiB5b3UgaW5zdGFsbCBQViBkcml2ZXJzIChhbmQgSSBzdXNwZWN0IHRoaXMg
aXMNCiB0aGUgcm9vdCBvZiB5b3VyIHByb2JsZW0pIGlzIHRvIGVuYWJsZSB0ZXN0IHNpZ25lZCBk
cml2ZXJzIGluIFdpbmRvd3MuIFdpbmRvd3MgMTAgKGV2ZW4gMzItYml0KSB3aWxsIG5vdCBsb2Fk
IHRlc3Qgc2lnbmVkIGRyaXZlcnMgdW5sZXNzIHlvdSBoYXZlIGRvbmU6PG86cD48L286cD48L3Nw
YW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9y
PSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNv
LWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5
N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBjbGFzcz0iU3BlbGxFIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIg
ZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1iaWRpLWZvbnQt
ZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90Oztjb2xvcjojMUY0OTdEIj5iY2RlZGl0
PC9zcGFuPjwvZm9udD48L3NwYW4+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9
IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tYmlkaS1mb250LWZhbWls
eTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RCI+DQogL3NldCA8c3Bh
biBjbGFzcz0iU3BlbGxFIj50ZXN0c2lnbmluZzwvc3Bhbj4gb248bzpwPjwvbzpwPjwvc3Bhbj48
L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMx
ZjQ5N2QiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tYmlk
aS1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RCI+
PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
Pjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90
O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJv
bWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46eWVzIj4m
bmJzcDsNCjwvc3Bhbj5Ib3BlIHRoYXQgaGVscHMsPG86cD48L286cD48L3NwYW4+PC9mb250Pjwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBm
YWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWJpZGktZm9udC1m
YW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5i
c3A7PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBz
aXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNl
cmlmJnF1b3Q7O21zby1iaWRpLWZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90
Oztjb2xvcjojMUY0OTdEIj48c3BhbiBzdHlsZT0ibXNvLXNwYWNlcnVuOnllcyI+Jm5ic3A7DQo8
L3NwYW4+UGF1bDxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oywm
cXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1iaWRpLWZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5l
dyBSb21hbiZxdW90Oztjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L2Zv
bnQ+PC9wPg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgYmx1ZSAx
LjVwdDtwYWRkaW5nOjBjbSAwY20gMGNtIDQuMHB0Ij4NCjxkaXY+DQo8ZGl2IHN0eWxlPSJib3Jk
ZXI6bm9uZTtib3JkZXItdG9wOnNvbGlkICNCNUM0REYgMS4wcHQ7cGFkZGluZzozLjBwdCAwY20g
MGNtIDBjbSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48Zm9udCBzaXplPSIyIiBmYWNlPSJU
YWhvbWEiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZh
bWlseTomcXVvdDtUYWhvbWEmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tZmFyZWFz
dC1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7bXNvLWFuc2ktbGFuZ3Vh
Z2U6RU4tVVM7Zm9udC13ZWlnaHQ6Ym9sZCI+RnJvbTo8L3NwYW4+PC9mb250PjwvYj48Zm9udCBz
aXplPSIyIiBmYWNlPSJUYWhvbWEiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXpl
OjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtUYWhvbWEmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZx
dW90Ozttc28tZmFyZWFzdC1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7
bXNvLWFuc2ktbGFuZ3VhZ2U6RU4tVVMiPg0KIHdpbi1wdi1kZXZlbCBbbWFpbHRvOndpbi1wdi1k
ZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnXSA8Yj48c3BhbiBzdHlsZT0iZm9udC13
ZWlnaHQ6Ym9sZCI+T24gQmVoYWxmIE9mDQo8L3NwYW4+PC9iPmNocmlzPGJyPg0KPGI+PHNwYW4g
c3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPlNlbnQ6PC9zcGFuPjwvYj4gMjEgSnVseSAyMDE2IDE0
OjMxPGJyPg0KPGI+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPlRvOjwvc3Bhbj48L2I+
IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZzxicj4NCjxiPjxzcGFuIHN0eWxlPSJm
b250LXdlaWdodDpib2xkIj5TdWJqZWN0Ojwvc3Bhbj48L2I+IFt3aW4tcHYtZGV2ZWxdIFdpbi1w
diBkcml2ZXIgaW5zdGFsbCBzdWNjZXNzIGZhaWxzIHRvIGJvb3Q8bzpwPjwvbzpwPjwvc3Bhbj48
L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNp
emU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4w
cHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjEyLjBwdCI+SGVsbG8sPG86cD48L286cD48L3NwYW4+PC9mb250Pjwv
cD4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1l
cyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij48bzpwPiZuYnNwOzwv
bzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjEyLjBwdCI+SSBhbSBhIHByZXZpb3VzIGdwbHB2IHVzZXIgd2hvIHJlY2VudGx5IGNh
bWUgYWNyb3NzIHRoaXMgcHJvamVjdCBhbmQgd2FudGVkIHRvIGdpdmUgYSB0cnkgdG8gYXRsZWFz
dCBoZWxwIHByb3ZpZGUgZmVlZGJhY2sgYW5kIHRlc3RpbmcuPG86cD48L286cD48L3NwYW4+PC9m
b250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9
IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQi
PjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5JIGRvd25sb2FkZWQgdGhlIGxhdGVzdCBkcml2
ZXJzIHZpYSB0aGUgdGFyIGZpbGVzIG9uIHRoaXMgcGFnZTo8bzpwPjwvbzpwPjwvc3Bhbj48L2Zv
bnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0i
MyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+
PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjxhIGhyZWY9Imh0dHA6Ly93d3cueGVucHJvamVj
dC5vcmcvZG93bmxvYWRzL3dpbmRvd3MtcHYtZHJpdmVycy9kZXZlbG9wbWVudC1idWlsZHMuaHRt
bCI+aHR0cDovL3d3dy54ZW5wcm9qZWN0Lm9yZy9kb3dubG9hZHMvd2luZG93cy1wdi1kcml2ZXJz
L2RldmVsb3BtZW50LWJ1aWxkcy5odG1sPC9hPjxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNl
PSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij48bzpwPiZu
YnNwOzwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjEyLjBwdCI+SSBleHRyYWN0ZWQgYW5kIHJhbiBkcGluc3QgYXMgbm90ZWQg
aW4gdGhlIHJlYWRtZSB0eHQgJm5ic3A7Zm9yIGVhY2ggZHJpdmVyIGFuZCBzYXcgdGhhdCBpbiBk
ZXZpY2UgbWFuYWdlciBpdCBjcmVhdGVkIHNvbWUgbmV3IGRldmljZXMuIE5PVEUgdGhpcyBpcyBh
IGNsZWFuIGluc3RhbGwgYW5kIGRpZA0KIG5vdCBoYXZlIGdwbHB2IG9yIGFueSBvdGhlciBkcml2
ZXJzIHByZXZpb3VzbHkmbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMg
TmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+PGJyPg0KSSBzaHV0ZG93
biB0aGUgZG9tdSwgY2hhbmdlZCBteSBkaXNrIGFuZCBuZXR3b3JrIGxpbmVzIHRvIHVzZSB0aGUg
UFYgc3R5bGU6PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwv
Zm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZv
bnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjEyLjBwdCI+J2ZpbGU6L21udC92aWwxMDY0L3ZpbDEwNjQtc3NkLmltZyx4dmRhLHcnLDxvOnA+
PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4i
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48
L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6
ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBw
dCI+dmlmID0gWyd0eXBlPW5ldGZyb250LCBicmlkZ2U9eGVuYnIwLCBtYWM9MDA6MTY6M0Q6Mzc6
QTA6QTMnXTxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBS
b21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9z
cGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9u
dCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTIuMHB0Ij5hbmQgd2hlbiBpIHRyaWVkIHRvIHN0YXJ0IGl0IHVwLCBpdCBnZXRzIHN0dWNrIGF0
IHdpbmRvd3MgMTAgbG9hZGluZyBzY3JlZW4gd2l0aCB0aGUgbG9nbyBhbmQgdGhlIHNwaW5uaW5n
IHdoZWVsIHVuZGVybmVhdGguIGkgbGVmdCBpdCBmb3Igc2V2ZXJhbCBob3VycyBhbmQgaXQgbmV2
ZXIgZ290DQogYW55IGZ1cnRoZXIgbm9yIGRpZCBpdCBic29kJ2Qgb3IgcmVib290IG92ZXIgYW5k
IG92ZXIuPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9u
dD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIz
IiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5p
IHdlbnQgJm5ic3A7YmFjayBhbmQgY2hhbmdlZCBteSBjb25maWcgYmFjayB0byBlbXVsYXRlZCBp
bnRlcmZhY2VzIGFuZCB3aW5kb3dzIDEwIGRvZXMgbm90IHN0YXJ0IHZpYSB0aGUgb3JpZ2luYWwg
Y29uZmlnIGVpdGhlcjxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9t
YW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bh
bj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQg
c2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEy
LjBwdCI+ZGlkIGkgbWlzcyBzb21lIGNyaXRpY2FsIHN0ZXAocyk/IGFueSBpZGVhcyB3aHkgdGhl
IE9TIHdvbnQgYm9vdD8gd2hhdHMgaGUgYmVzdCB0byByZW1vdmUgdGhlIGRyaXZlcnMgYW5kIHRy
eSBhZ2Fpbj88bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9m
b250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9
IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQi
PmkgYW0gYSBmYWlybHkgdGVjaG5pY2FsIGxpbnV4IGFuZCB3aW5kb3dzIHVzZXIgYW5kIHdpbGxp
bmcgdG8gaW52ZXN0IHNvbWUgdGltZSB0byBhbnl0aGluZyB0aGF0IHdpbGwgaGVscCBzbyBwbGVh
c2UgbGV0IG1lIGtub3cgaWYgdGhlcmVzIGFueSBtb3JlIGluZm8gb3IgYW55dGhpbmcgaSBjYW4N
CiBkbyB0byBnaXZlIHlvdSBtb3JlIGRhdGE8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0K
PC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0i
VGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+PG86cD4mbmJz
cDs8L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMi4wcHQiPnRoZSBkb20wIGlzIGEgdXAgdG8gZGF0ZSBkZWJpYW4gamVzc2ll
LCB4bCBpbmZvIGdpdmVzOjxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxk
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGlt
ZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+cmVsZWFzZSAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiAzLjE2
LjAtNC1hbWQ2NDxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4i
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij52ZXJzaW9uICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs6ICMxIFNNUCBEZWJpYW4gMy4x
Ni43LWNrdDExLTEmIzQzO2RlYjh1NSAoMjAxNS0xMC0wOSk8bzpwPjwvbzpwPjwvc3Bhbj48L2Zv
bnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0i
MyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+
bWFjaGluZSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7OiB4ODZfNjQ8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJv
bWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+bnJfY3B1cyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiAxMjxvOnA+PC9vOnA+
PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTIuMHB0Ij5tYXhfY3B1X2lkICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7IDogMTU8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFu
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+bnJfbm9kZXMgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogMjxvOnA+PC9vOnA+PC9zcGFuPjwv
Zm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXpl
PSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0
Ij5jb3Jlc19wZXJfc29ja2V0ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogMTI8bzpwPjwvbzpwPjwv
c3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZv
bnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjEyLjBwdCI+dGhyZWFkc19wZXJfY29yZSAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IDE8bzpwPjwv
bzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjEyLjBwdCI+Y3B1X21oeiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiAyMTAwPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4N
CjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9
IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPmh3X2NhcHMg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzog
MTc4YmYzZmY6ZWZkM2ZiZmY6MDAwMDAwMDA6MDAwMDEzMDA6MDA4MDIwMDE6MDAwMDAwMDA6MDAw
ODM3ZmY6MDAwMDAwMDA8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJv
bWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+dmlydF9jYXBzICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzogaHZtPG86cD48L286cD48L3Nw
YW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250
IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
Mi4wcHQiPnRvdGFsX21lbW9yeSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDog
NTczNDI8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+ZnJlZV9tZW1vcnkgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs6IDE2NDU1PG86cD48L286cD48L3NwYW4+PC9mb250Pjwv
cD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZh
Y2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPnNoYXJp
bmdfZnJlZWRfbWVtb3J5ICZuYnNwOyA6IDA8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0K
PC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0i
VGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+c2hhcmluZ191
c2VkX21lbW9yeSAmbmJzcDsgJm5ic3A7OiAwPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4N
CjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9
IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPm91dHN0YW5k
aW5nX2NsYWltcyAmbmJzcDsgJm5ic3A7IDogMDxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNl
PSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5mcmVlX2Nw
dXMgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiAwPG86
cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMi4wcHQiPnhlbl9tYWpvciAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDs6IDQ8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9k
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGlt
ZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+eGVuX21pbm9yICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzogNDxvOnA+PC9v
OnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTIuMHB0Ij54ZW5fZXh0cmEgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7OiAuMTxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBO
ZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij54ZW5fdmVyc2lvbiAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzogNC40LjE8bzpwPjwvbzpwPjwv
c3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZv
bnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjEyLjBwdCI+eGVuX2NhcHMgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7IDogeGVuLTMuMC14ODZfNjQgeGVuLTMuMC14ODZfMzJwIGh2bS0zLjAteDg2XzMy
IGh2bS0zLjAteDg2XzMycCBodm0tMy4wLXg4Nl82NCZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwv
Zm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXpl
PSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0
Ij54ZW5fc2NoZWR1bGVyICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs6IGNyZWRp
dDxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTIuMHB0Ij54ZW5fcGFnZXNpemUgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyA6IDQwOTY8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMg
TmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+cGxhdGZvcm1fcGFyYW1z
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzogdmlydF9zdGFydD0weGZmZmY4MDAwMDAwMDAw
MDA8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjEyLjBwdCI+eGVuX2NoYW5nZXNldCAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7OiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1l
cyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij54ZW5fY29tbWFuZGxp
bmUgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiBwbGFjZWhvbGRlciBkb20wX21lbT0xMDI0
TTxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTIuMHB0Ij5jY19jb21waWxlciAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOzogZ2NjIChEZWJpYW4gNC45LjItMTApIDQuOS4yPG86cD48L286
cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
Pjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMi4wcHQiPmNjX2NvbXBpbGVfYnkgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOzogdWx0cm90dGVyPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBS
b21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPmNjX2NvbXBpbGVfZG9tYWluICZu
YnNwOyAmbmJzcDsgJm5ic3A7Og0KPGEgaHJlZj0iaHR0cDovL2RlYmlhbi5vcmciPmRlYmlhbi5v
cmc8L2E+PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPmNjX2NvbXBpbGVfZGF0ZSAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDs6IFRodSBKdW4gMTEgMTg6MjQ6MTcgRUVTVCAyMDE1PG86cD48L286cD48
L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxm
b250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMi4wcHQiPnhlbmRfY29uZmlnX2Zvcm1hdCAmbmJzcDsgJm5ic3A7IDogNDxvOnA+PC9vOnA+
PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMi4wcHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8
L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJU
aW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5jaHJpczxvOnA+
PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4N
CjwvYm9keT4NCjwvaHRtbD4NCg==

--_000_16f8e57a658c4d20a7d7cc06fb6c19afAMSPEX02CL03citritenet_--


--===============3482659518969153909==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============3482659518969153909==--


From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 09:40:42 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 09:40:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQWwj-0003J0-Te; Fri, 22 Jul 2016 09:40:41 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bQWwi-0003Is-Bh
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 09:40:40 +0000
Received: from [85.158.143.35] by server-1.bemta-6.messagelabs.com id
 4A/8A-21406-71AE1975; Fri, 22 Jul 2016 09:40:39 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrFIsWRWlGSWpSXmKPExsXiVRvkqCv+amK
 4wdsT/BZ/Fic6MHoc/nCFJYAxijUzLym/IoE1o/3hRdaCRRoVq/40sjYwXpHqYuTiEBKYySjx
 +/5jJhCHReAli8TRpj2sII6EQD+rxJddFxi7GDmBnBiJvv7NzBB2icSve4/ZQWwhAUWJ5msX2
 CFGrWSSmHPqDQtIgk1AXeL2+8XsEA12Ep9m3QSzRQRUJa4tP8YGYjMLaEk83DAPbIGwgJnE44
 ufWEFsFqCadf/Pg9XwCrhLbNx5BmqxnMTeyauB5nNwcAp4SDQtVYC4wV1ixr/N7BMYBRcwMqx
 iVC9OLSpLLdI11ksqykzPKMlNzMzRNTQw08tNLS5OTE/NSUwq1kvOz93ECAw3BiDYwdjxz+kQ
 oyQHk5Io74+rE8OF+JLyUyozEosz4otKc1KLDzHKcHAoSfCWvwDKCRalpqdWpGXmAAMfJi3Bw
 aMkwrscJM1bXJCYW5yZDpE6xajLsWXqvbVMQix5+XmpUuK8zSBFAiBFGaV5cCNgUXiJUVZKmJ
 cR6CghnoLUotzMElT5V4ziHIxKwrzRIFN4MvNK4Da9AjqCCeiIOQL9IEeUJCKkpBoYVzmdcJD
 2rbobsiteJS0uqVvvsnbkGdFA/hnM6+2z267M/TalSih7zVp765/3TsvEnNOdcyv6YeK7WX+z
 F+RzeonI7mRX2CDiyHm1PFgkZvY218XTdqw4pNLflmXHP/XYq83zNvfFvjh9O3Tnp4Mf78h3n
 511/3Cx4C6u5R1znm5Y+NbquOj2DCWW4oxEQy3mouJEAMRo0+S9AgAA
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-13.tower-21.messagelabs.com!1469180439!25180558!1
X-Originating-IP: [74.125.82.65]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 63239 invoked from network); 22 Jul 2016 09:40:39 -0000
Received: from mail-wm0-f65.google.com (HELO mail-wm0-f65.google.com)
 (74.125.82.65)
 by server-13.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 22 Jul 2016 09:40:39 -0000
Received: by mail-wm0-f65.google.com with SMTP id i5so5420091wmg.2
 for <win-pv-devel@lists.xenproject.org>; Fri, 22 Jul 2016 02:40:39 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id:in-reply-to:references;
 bh=6bVnJCWLYApi8yQcsrSG0U882mRHPrfleP3nHFezJJo=;
 b=JWi8qlEPMqt4b2BJT5Pzcvsms6X2kvy3BG9yU28h3Ua/3ftIP2uz3UrolPrgGxCovZ
 ABFFUh8IdqCip/Q1NFQ09O1UO56ArnBZl0iAUl8+iAgt2TvdA6f62F89M9pjH5WOAaJU
 2P8ggiojHxprbCU47QJ4yxWTHA3Kj13+lr6k9KDD1QfRWW4qrKn43UzShiemg+9Zb6wp
 xCdSFtRCf/+xqbVynYlroYYJnQKAETV3QWICRna4WxSlMYQQjmdCuEZWDJ6CJPpUPTf/
 VumnkhAFELAc/C7+F21fTqeIStJvIUv1nyzQNGv9U+xZ5Y4RCvkhwXroGOo3J08eWbUH
 dYOQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
 :references;
 bh=6bVnJCWLYApi8yQcsrSG0U882mRHPrfleP3nHFezJJo=;
 b=C4RCGuNpE+Zm/OR1wbssNpLyxOzs537wtWARB5582pCgzPjDsD2cetHjEHtcIrgjUM
 YVbPyWgpwxrVDKTC1S7zlWui1uMVkHdGc8a3W2uxw4sRTvsf6+i8+Ydm5WAx67MR+vX7
 3qKczJ12NwI/Y7UKi0dLsJOuOwqUKwC3PCAPCa/EuqqH3MLVe/Scfu/VRwiqjaDS48OI
 YX0wP2r73yj+F6n7yY5g2E6e3sGZOhfnQKtpzBYDNdOPwQnBL7pC9mLq0wIskwDIeeDD
 qlVfceVnfjsu5OHzEhQ06+h12HKh8gmaLjxDfl+14joxAizMU7QBSwiHnQM9exI9c3eo
 e0qw==
X-Gm-Message-State: AEkooutTptE02nRrx/u3ds46y6exq9cxcxKlg2M4Wo4GKRw6kXqLcm2AOsWySJSWcn165A==
X-Received: by 10.194.47.7 with SMTP id z7mr38790wjm.63.1469180437804;
 Fri, 22 Jul 2016 02:40:37 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id g184sm11640847wme.15.2016.07.22.02.40.36
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 22 Jul 2016 02:40:36 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Fri, 22 Jul 2016 10:40:20 +0100
Message-Id: <1469180422-15112-2-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1469180422-15112-1-git-send-email-paul.durrant@citrix.com>
References: <1469180422-15112-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 2/4] Add code to monitor 'Request' key
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhlIHhlbmJ1c19tb25pdG9yIHNlcnZpY2Uga2V5IGhhcyBhIHN1Yi1rZXkgY2FsbGVkICdSZXF1
ZXN0Jy4gVGhpcwpwYXRjaCBhZHNzIGNvZGUgdG8gcmVnaXN0ZXIgZm9yIGEgbm90aWZpY2F0aW9u
IGV2ZW50IG9uIHRoZSBrZXkuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVy
cmFudEBjaXRyaXguY29tPgotLS0KIHNyYy9tb25pdG9yL21vbml0b3IuYyB8IDExNSArKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQogMSBmaWxlIGNoYW5n
ZWQsIDEwOSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9t
b25pdG9yL21vbml0b3IuYyBiL3NyYy9tb25pdG9yL21vbml0b3IuYwppbmRleCA3YWViNWQyLi42
YzY2NTE4IDEwMDY0NAotLS0gYS9zcmMvbW9uaXRvci9tb25pdG9yLmMKKysrIGIvc3JjL21vbml0
b3IvbW9uaXRvci5jCkBAIC00NiwxMiArNDYsMjIgQEAgdHlwZWRlZiBzdHJ1Y3QgX01PTklUT1Jf
Q09OVEVYVCB7CiAgICAgU0VSVklDRV9TVEFUVVNfSEFORExFICAgU2VydmljZTsKICAgICBIQU5E
TEUgICAgICAgICAgICAgICAgICBFdmVudExvZzsKICAgICBIQU5ETEUgICAgICAgICAgICAgICAg
ICBTdG9wRXZlbnQ7CisgICAgSEFORExFICAgICAgICAgICAgICAgICAgUmVxdWVzdEV2ZW50Owor
ICAgIEhLRVkgICAgICAgICAgICAgICAgICAgIFJlcXVlc3RLZXk7CiB9IE1PTklUT1JfQ09OVEVY
VCwgKlBNT05JVE9SX0NPTlRFWFQ7CiAKIE1PTklUT1JfQ09OVEVYVCBNb25pdG9yQ29udGV4dDsK
IAogI2RlZmluZSBNQVhJTVVNX0JVRkZFUl9TSVpFIDEwMjQKIAorI2RlZmluZSBTRVJWSUNFU19L
RVkgIlNZU1RFTVxcQ3VycmVudENvbnRyb2xTZXRcXFNlcnZpY2VzIgorCisjZGVmaW5lIFNFUlZJ
Q0VfS0VZKF9TZXJ2aWNlKSBcCisgICAgICAgIFNFUlZJQ0VTX0tFWSAjIyAiXFwiICMjICNfU2Vy
dmljZQorCisjZGVmaW5lIFJFUVVFU1RfS0VZIFwKKyAgICAgICAgU0VSVklDRV9LRVkoWEVOQlVT
X01PTklUT1IpICMjICJcXFJlcXVlc3QiCisKIHN0YXRpYyBWT0lECiAjcHJhZ21hIHByZWZhc3Qo
c3VwcHJlc3M6NjI2MikgLy8gRnVuY3Rpb24gdXNlcyAnMTAzNicgYnl0ZXMgb2Ygc3RhY2s6IGV4
Y2VlZHMgL2FuYWx5emU6c3RhY2tzaXplJzEwMjQnCiBfX0xvZygKQEAgLTE4MCw3ICsxOTAsOCBA
QCBSZXBvcnRTdGF0dXMoCiAgICAgICAgIENvbnRleHQtPlN0YXR1cy5kd0NvbnRyb2xzQWNjZXB0
ZWQgPSAwOwogICAgIGVsc2UKICAgICAgICAgQ29udGV4dC0+U3RhdHVzLmR3Q29udHJvbHNBY2Nl
cHRlZCA9IFNFUlZJQ0VfQUNDRVBUX1NUT1AgfAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgU0VSVklDRV9BQ0NFUFRfU0hVVERPV047CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRVJWSUNFX0FDQ0VQVF9TSFVURE9XTiB8
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRVJWSUNFX0FD
Q0VQVF9TRVNTSU9OQ0hBTkdFOwogCiAgICAgaWYgKEN1cnJlbnRTdGF0ZSA9PSBTRVJWSUNFX1JV
Tk5JTkcgfHwKICAgICAgICAgQ3VycmVudFN0YXRlID09IFNFUlZJQ0VfU1RPUFBFRCApCkBAIC0y
MjksNiArMjQwLDEwIEBAIE1vbml0b3JDdHJsSGFuZGxlckV4KAogICAgICAgICBTZXRFdmVudChD
b250ZXh0LT5TdG9wRXZlbnQpOwogICAgICAgICByZXR1cm4gTk9fRVJST1I7CiAKKyAgICBjYXNl
IFNFUlZJQ0VfQ09OVFJPTF9TRVNTSU9OQ0hBTkdFOgorICAgICAgICBTZXRFdmVudChDb250ZXh0
LT5SZXF1ZXN0RXZlbnQpOworICAgICAgICByZXR1cm4gTk9fRVJST1I7CisKICAgICBjYXNlIFNF
UlZJQ0VfQ09OVFJPTF9JTlRFUlJPR0FURToKICAgICAgICAgUmVwb3J0U3RhdHVzKFNFUlZJQ0Vf
UlVOTklORywgTk9fRVJST1IsIDApOwogICAgICAgICByZXR1cm4gTk9fRVJST1I7CkBAIC0yNDEs
NiArMjU2LDQwIEBAIE1vbml0b3JDdHJsSGFuZGxlckV4KAogICAgIHJldHVybiBFUlJPUl9DQUxM
X05PVF9JTVBMRU1FTlRFRDsKIH0KIAorc3RhdGljIFZPSUQKK0NoZWNrUmVxdWVzdEtleSgKKyAg
ICBWT0lECisgICAgKQoreworICAgIFBNT05JVE9SX0NPTlRFWFQgICAgQ29udGV4dCA9ICZNb25p
dG9yQ29udGV4dDsKKyAgICBIUkVTVUxUICAgICAgICAgICAgIEVycm9yOworCisgICAgTG9nKCI9
PT09PiIpOworCisgICAgRXJyb3IgPSBSZWdOb3RpZnlDaGFuZ2VLZXlWYWx1ZShDb250ZXh0LT5S
ZXF1ZXN0S2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19OT1RJRllfQ0hBTkdFX0xBU1Rf
U0VULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udGV4dC0+UmVxdWVz
dEV2ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSk7CisKKyAg
ICBpZiAoRXJyb3IgIT0gRVJST1JfU1VDQ0VTUykKKyAgICAgICAgZ290byBmYWlsMTsKKworICAg
IExvZygiPD09PT0iKTsKKworICAgIHJldHVybjsKKworZmFpbDE6CisgICAgRXJyb3IgPSBHZXRM
YXN0RXJyb3IoKTsKKworICAgIHsKKyAgICAgICAgUFRDSEFSICBNZXNzYWdlOworICAgICAgICBN
ZXNzYWdlID0gR2V0RXJyb3JNZXNzYWdlKEVycm9yKTsKKyAgICAgICAgTG9nKCJmYWlsMSAoJXMp
IiwgTWVzc2FnZSk7CisgICAgICAgIExvY2FsRnJlZShNZXNzYWdlKTsKKyAgICB9Cit9CisKIFZP
SUQgV0lOQVBJCiBNb25pdG9yTWFpbigKICAgICBfSW5fICAgIERXT1JEICAgICAgIGFyZ2MsCkBA
IC0yNDgsNiArMjk3LDcgQEAgTW9uaXRvck1haW4oCiAgICAgKQogewogICAgIFBNT05JVE9SX0NP
TlRFWFQgICAgQ29udGV4dCA9ICZNb25pdG9yQ29udGV4dDsKKyAgICBCT09MICAgICAgICAgICAg
ICAgIFN1Y2Nlc3M7CiAgICAgSFJFU1VMVCAgICAgICAgICAgICBFcnJvcjsKIAogICAgIFVOUkVG
RVJFTkNFRF9QQVJBTUVURVIoYXJnYyk7CkBAIC0yNzksMTYgKzMyOSw1OSBAQCBNb25pdG9yTWFp
bigKICAgICBpZiAoQ29udGV4dC0+U3RvcEV2ZW50ID09IE5VTEwpCiAgICAgICAgIGdvdG8gZmFp
bDM7CiAKKyAgICBDb250ZXh0LT5SZXF1ZXN0RXZlbnQgPSBDcmVhdGVFdmVudChOVUxMLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTlVMTCk7CisKKyAgICBpZiAoQ29udGV4dC0+UmVxdWVzdEV2ZW50
ID09IE5VTEwpCisgICAgICAgIGdvdG8gZmFpbDQ7CisKKyAgICBFcnJvciA9IFJlZ09wZW5LZXlF
eChIS0VZX0xPQ0FMX01BQ0hJTkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgUkVRVUVTVF9L
RVksCisgICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICBLRVlfQUxMX0FDQ0VTUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAmQ29udGV4dC0+UmVx
dWVzdEtleSk7CisKKyAgICBpZiAoRXJyb3IgIT0gRVJST1JfU1VDQ0VTUykKKyAgICAgICAgZ290
byBmYWlsNTsKKworICAgIFNldEV2ZW50KENvbnRleHQtPlJlcXVlc3RFdmVudCk7CisKICAgICBS
ZXBvcnRTdGF0dXMoU0VSVklDRV9SVU5OSU5HLCBOT19FUlJPUiwgMCk7CiAKICAgICBmb3IgKDs7
KSB7Ci0gICAgICAgIExvZygid2FpdGluZy4uLiIpOwotICAgICAgICBXYWl0Rm9yU2luZ2xlT2Jq
ZWN0KENvbnRleHQtPlN0b3BFdmVudCwgSU5GSU5JVEUpOworICAgICAgICBIQU5ETEUgIEV2ZW50
c1syXTsKKyAgICAgICAgRFdPUkQgICBPYmplY3Q7CisKKyAgICAgICAgRXZlbnRzWzBdID0gQ29u
dGV4dC0+U3RvcEV2ZW50OworICAgICAgICBFdmVudHNbMV0gPSBDb250ZXh0LT5SZXF1ZXN0RXZl
bnQ7CisKKyAgICAgICAgTG9nKCJ3YWl0aW5nICgldSkuLi4iLCBBUlJBWVNJWkUoRXZlbnRzKSk7
CisgICAgICAgIE9iamVjdCA9IFdhaXRGb3JNdWx0aXBsZU9iamVjdHMoQVJSQVlTSVpFKEV2ZW50
cyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXZlbnRzLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElORklOSVRFKTsKICAgICAgICAgTG9nKCJhd2Fr
ZSIpOwogCi0gICAgICAgIGJyZWFrOworICAgICAgICBzd2l0Y2ggKE9iamVjdCkgeworICAgICAg
ICBjYXNlIFdBSVRfT0JKRUNUXzA6CisgICAgICAgICAgICBSZXNldEV2ZW50KEV2ZW50c1swXSk7
CisgICAgICAgICAgICBnb3RvIGRvbmU7CisKKyAgICAgICAgY2FzZSBXQUlUX09CSkVDVF8wICsg
MToKKyAgICAgICAgICAgIFJlc2V0RXZlbnQoRXZlbnRzWzFdKTsKKyAgICAgICAgICAgIENoZWNr
UmVxdWVzdEtleSgpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgfQogCitkb25lOgorICAgIENsb3NlSGFu
ZGxlKENvbnRleHQtPlJlcXVlc3RLZXkpOworICAgIENsb3NlSGFuZGxlKENvbnRleHQtPlJlcXVl
c3RFdmVudCk7CiAgICAgQ2xvc2VIYW5kbGUoQ29udGV4dC0+U3RvcEV2ZW50KTsKIAogICAgIFJl
cG9ydFN0YXR1cyhTRVJWSUNFX1NUT1BQRUQsIE5PX0VSUk9SLCAwKTsKQEAgLTI5OSwxMSArMzky
LDIxIEBAIE1vbml0b3JNYWluKAogCiAgICAgcmV0dXJuOwogCi1mYWlsMzoKLSAgICBMb2coImZh
aWwzIik7CitmYWlsNToKKyAgICBMb2coImZhaWw1Iik7CiAKICAgICBSZXBvcnRTdGF0dXMoU0VS
VklDRV9TVE9QUEVELCBHZXRMYXN0RXJyb3IoKSwgMCk7CiAKKyAgICBDbG9zZUhhbmRsZShDb250
ZXh0LT5SZXF1ZXN0RXZlbnQpOworCitmYWlsNDoKKyAgICBMb2coImZhaWw0Iik7CisKKyAgICBD
bG9zZUhhbmRsZShDb250ZXh0LT5TdG9wRXZlbnQpOworCitmYWlsMzoKKyAgICBMb2coImZhaWwz
Iik7CisKICAgICAoVk9JRCkgRGVyZWdpc3RlckV2ZW50U291cmNlKENvbnRleHQtPkV2ZW50TG9n
KTsKIAogZmFpbDI6Ci0tIAoyLjEuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxp
c3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9t
YWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 09:40:42 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 09:40:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQWwj-0003J0-Te; Fri, 22 Jul 2016 09:40:41 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bQWwi-0003Is-Bh
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 09:40:40 +0000
Received: from [85.158.143.35] by server-1.bemta-6.messagelabs.com id
 4A/8A-21406-71AE1975; Fri, 22 Jul 2016 09:40:39 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrFIsWRWlGSWpSXmKPExsXiVRvkqCv+amK
 4wdsT/BZ/Fic6MHoc/nCFJYAxijUzLym/IoE1o/3hRdaCRRoVq/40sjYwXpHqYuTiEBKYySjx
 +/5jJhCHReAli8TRpj2sII6EQD+rxJddFxi7GDmBnBiJvv7NzBB2icSve4/ZQWwhAUWJ5msX2
 CFGrWSSmHPqDQtIgk1AXeL2+8XsEA12Ep9m3QSzRQRUJa4tP8YGYjMLaEk83DAPbIGwgJnE44
 ufWEFsFqCadf/Pg9XwCrhLbNx5BmqxnMTeyauB5nNwcAp4SDQtVYC4wV1ixr/N7BMYBRcwMqx
 iVC9OLSpLLdI11ksqykzPKMlNzMzRNTQw08tNLS5OTE/NSUwq1kvOz93ECAw3BiDYwdjxz+kQ
 oyQHk5Io74+rE8OF+JLyUyozEosz4otKc1KLDzHKcHAoSfCWvwDKCRalpqdWpGXmAAMfJi3Bw
 aMkwrscJM1bXJCYW5yZDpE6xajLsWXqvbVMQix5+XmpUuK8zSBFAiBFGaV5cCNgUXiJUVZKmJ
 cR6CghnoLUotzMElT5V4ziHIxKwrzRIFN4MvNK4Da9AjqCCeiIOQL9IEeUJCKkpBoYVzmdcJD
 2rbobsiteJS0uqVvvsnbkGdFA/hnM6+2z267M/TalSih7zVp765/3TsvEnNOdcyv6YeK7WX+z
 F+RzeonI7mRX2CDiyHm1PFgkZvY218XTdqw4pNLflmXHP/XYq83zNvfFvjh9O3Tnp4Mf78h3n
 511/3Cx4C6u5R1znm5Y+NbquOj2DCWW4oxEQy3mouJEAMRo0+S9AgAA
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-13.tower-21.messagelabs.com!1469180439!25180558!1
X-Originating-IP: [74.125.82.65]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 63239 invoked from network); 22 Jul 2016 09:40:39 -0000
Received: from mail-wm0-f65.google.com (HELO mail-wm0-f65.google.com)
 (74.125.82.65)
 by server-13.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 22 Jul 2016 09:40:39 -0000
Received: by mail-wm0-f65.google.com with SMTP id i5so5420091wmg.2
 for <win-pv-devel@lists.xenproject.org>; Fri, 22 Jul 2016 02:40:39 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id:in-reply-to:references;
 bh=6bVnJCWLYApi8yQcsrSG0U882mRHPrfleP3nHFezJJo=;
 b=JWi8qlEPMqt4b2BJT5Pzcvsms6X2kvy3BG9yU28h3Ua/3ftIP2uz3UrolPrgGxCovZ
 ABFFUh8IdqCip/Q1NFQ09O1UO56ArnBZl0iAUl8+iAgt2TvdA6f62F89M9pjH5WOAaJU
 2P8ggiojHxprbCU47QJ4yxWTHA3Kj13+lr6k9KDD1QfRWW4qrKn43UzShiemg+9Zb6wp
 xCdSFtRCf/+xqbVynYlroYYJnQKAETV3QWICRna4WxSlMYQQjmdCuEZWDJ6CJPpUPTf/
 VumnkhAFELAc/C7+F21fTqeIStJvIUv1nyzQNGv9U+xZ5Y4RCvkhwXroGOo3J08eWbUH
 dYOQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
 :references;
 bh=6bVnJCWLYApi8yQcsrSG0U882mRHPrfleP3nHFezJJo=;
 b=C4RCGuNpE+Zm/OR1wbssNpLyxOzs537wtWARB5582pCgzPjDsD2cetHjEHtcIrgjUM
 YVbPyWgpwxrVDKTC1S7zlWui1uMVkHdGc8a3W2uxw4sRTvsf6+i8+Ydm5WAx67MR+vX7
 3qKczJ12NwI/Y7UKi0dLsJOuOwqUKwC3PCAPCa/EuqqH3MLVe/Scfu/VRwiqjaDS48OI
 YX0wP2r73yj+F6n7yY5g2E6e3sGZOhfnQKtpzBYDNdOPwQnBL7pC9mLq0wIskwDIeeDD
 qlVfceVnfjsu5OHzEhQ06+h12HKh8gmaLjxDfl+14joxAizMU7QBSwiHnQM9exI9c3eo
 e0qw==
X-Gm-Message-State: AEkooutTptE02nRrx/u3ds46y6exq9cxcxKlg2M4Wo4GKRw6kXqLcm2AOsWySJSWcn165A==
X-Received: by 10.194.47.7 with SMTP id z7mr38790wjm.63.1469180437804;
 Fri, 22 Jul 2016 02:40:37 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id g184sm11640847wme.15.2016.07.22.02.40.36
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 22 Jul 2016 02:40:36 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Fri, 22 Jul 2016 10:40:20 +0100
Message-Id: <1469180422-15112-2-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1469180422-15112-1-git-send-email-paul.durrant@citrix.com>
References: <1469180422-15112-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 2/4] Add code to monitor 'Request' key
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhlIHhlbmJ1c19tb25pdG9yIHNlcnZpY2Uga2V5IGhhcyBhIHN1Yi1rZXkgY2FsbGVkICdSZXF1
ZXN0Jy4gVGhpcwpwYXRjaCBhZHNzIGNvZGUgdG8gcmVnaXN0ZXIgZm9yIGEgbm90aWZpY2F0aW9u
IGV2ZW50IG9uIHRoZSBrZXkuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVy
cmFudEBjaXRyaXguY29tPgotLS0KIHNyYy9tb25pdG9yL21vbml0b3IuYyB8IDExNSArKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQogMSBmaWxlIGNoYW5n
ZWQsIDEwOSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9t
b25pdG9yL21vbml0b3IuYyBiL3NyYy9tb25pdG9yL21vbml0b3IuYwppbmRleCA3YWViNWQyLi42
YzY2NTE4IDEwMDY0NAotLS0gYS9zcmMvbW9uaXRvci9tb25pdG9yLmMKKysrIGIvc3JjL21vbml0
b3IvbW9uaXRvci5jCkBAIC00NiwxMiArNDYsMjIgQEAgdHlwZWRlZiBzdHJ1Y3QgX01PTklUT1Jf
Q09OVEVYVCB7CiAgICAgU0VSVklDRV9TVEFUVVNfSEFORExFICAgU2VydmljZTsKICAgICBIQU5E
TEUgICAgICAgICAgICAgICAgICBFdmVudExvZzsKICAgICBIQU5ETEUgICAgICAgICAgICAgICAg
ICBTdG9wRXZlbnQ7CisgICAgSEFORExFICAgICAgICAgICAgICAgICAgUmVxdWVzdEV2ZW50Owor
ICAgIEhLRVkgICAgICAgICAgICAgICAgICAgIFJlcXVlc3RLZXk7CiB9IE1PTklUT1JfQ09OVEVY
VCwgKlBNT05JVE9SX0NPTlRFWFQ7CiAKIE1PTklUT1JfQ09OVEVYVCBNb25pdG9yQ29udGV4dDsK
IAogI2RlZmluZSBNQVhJTVVNX0JVRkZFUl9TSVpFIDEwMjQKIAorI2RlZmluZSBTRVJWSUNFU19L
RVkgIlNZU1RFTVxcQ3VycmVudENvbnRyb2xTZXRcXFNlcnZpY2VzIgorCisjZGVmaW5lIFNFUlZJ
Q0VfS0VZKF9TZXJ2aWNlKSBcCisgICAgICAgIFNFUlZJQ0VTX0tFWSAjIyAiXFwiICMjICNfU2Vy
dmljZQorCisjZGVmaW5lIFJFUVVFU1RfS0VZIFwKKyAgICAgICAgU0VSVklDRV9LRVkoWEVOQlVT
X01PTklUT1IpICMjICJcXFJlcXVlc3QiCisKIHN0YXRpYyBWT0lECiAjcHJhZ21hIHByZWZhc3Qo
c3VwcHJlc3M6NjI2MikgLy8gRnVuY3Rpb24gdXNlcyAnMTAzNicgYnl0ZXMgb2Ygc3RhY2s6IGV4
Y2VlZHMgL2FuYWx5emU6c3RhY2tzaXplJzEwMjQnCiBfX0xvZygKQEAgLTE4MCw3ICsxOTAsOCBA
QCBSZXBvcnRTdGF0dXMoCiAgICAgICAgIENvbnRleHQtPlN0YXR1cy5kd0NvbnRyb2xzQWNjZXB0
ZWQgPSAwOwogICAgIGVsc2UKICAgICAgICAgQ29udGV4dC0+U3RhdHVzLmR3Q29udHJvbHNBY2Nl
cHRlZCA9IFNFUlZJQ0VfQUNDRVBUX1NUT1AgfAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgU0VSVklDRV9BQ0NFUFRfU0hVVERPV047CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRVJWSUNFX0FDQ0VQVF9TSFVURE9XTiB8
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRVJWSUNFX0FD
Q0VQVF9TRVNTSU9OQ0hBTkdFOwogCiAgICAgaWYgKEN1cnJlbnRTdGF0ZSA9PSBTRVJWSUNFX1JV
Tk5JTkcgfHwKICAgICAgICAgQ3VycmVudFN0YXRlID09IFNFUlZJQ0VfU1RPUFBFRCApCkBAIC0y
MjksNiArMjQwLDEwIEBAIE1vbml0b3JDdHJsSGFuZGxlckV4KAogICAgICAgICBTZXRFdmVudChD
b250ZXh0LT5TdG9wRXZlbnQpOwogICAgICAgICByZXR1cm4gTk9fRVJST1I7CiAKKyAgICBjYXNl
IFNFUlZJQ0VfQ09OVFJPTF9TRVNTSU9OQ0hBTkdFOgorICAgICAgICBTZXRFdmVudChDb250ZXh0
LT5SZXF1ZXN0RXZlbnQpOworICAgICAgICByZXR1cm4gTk9fRVJST1I7CisKICAgICBjYXNlIFNF
UlZJQ0VfQ09OVFJPTF9JTlRFUlJPR0FURToKICAgICAgICAgUmVwb3J0U3RhdHVzKFNFUlZJQ0Vf
UlVOTklORywgTk9fRVJST1IsIDApOwogICAgICAgICByZXR1cm4gTk9fRVJST1I7CkBAIC0yNDEs
NiArMjU2LDQwIEBAIE1vbml0b3JDdHJsSGFuZGxlckV4KAogICAgIHJldHVybiBFUlJPUl9DQUxM
X05PVF9JTVBMRU1FTlRFRDsKIH0KIAorc3RhdGljIFZPSUQKK0NoZWNrUmVxdWVzdEtleSgKKyAg
ICBWT0lECisgICAgKQoreworICAgIFBNT05JVE9SX0NPTlRFWFQgICAgQ29udGV4dCA9ICZNb25p
dG9yQ29udGV4dDsKKyAgICBIUkVTVUxUICAgICAgICAgICAgIEVycm9yOworCisgICAgTG9nKCI9
PT09PiIpOworCisgICAgRXJyb3IgPSBSZWdOb3RpZnlDaGFuZ2VLZXlWYWx1ZShDb250ZXh0LT5S
ZXF1ZXN0S2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19OT1RJRllfQ0hBTkdFX0xBU1Rf
U0VULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udGV4dC0+UmVxdWVz
dEV2ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSk7CisKKyAg
ICBpZiAoRXJyb3IgIT0gRVJST1JfU1VDQ0VTUykKKyAgICAgICAgZ290byBmYWlsMTsKKworICAg
IExvZygiPD09PT0iKTsKKworICAgIHJldHVybjsKKworZmFpbDE6CisgICAgRXJyb3IgPSBHZXRM
YXN0RXJyb3IoKTsKKworICAgIHsKKyAgICAgICAgUFRDSEFSICBNZXNzYWdlOworICAgICAgICBN
ZXNzYWdlID0gR2V0RXJyb3JNZXNzYWdlKEVycm9yKTsKKyAgICAgICAgTG9nKCJmYWlsMSAoJXMp
IiwgTWVzc2FnZSk7CisgICAgICAgIExvY2FsRnJlZShNZXNzYWdlKTsKKyAgICB9Cit9CisKIFZP
SUQgV0lOQVBJCiBNb25pdG9yTWFpbigKICAgICBfSW5fICAgIERXT1JEICAgICAgIGFyZ2MsCkBA
IC0yNDgsNiArMjk3LDcgQEAgTW9uaXRvck1haW4oCiAgICAgKQogewogICAgIFBNT05JVE9SX0NP
TlRFWFQgICAgQ29udGV4dCA9ICZNb25pdG9yQ29udGV4dDsKKyAgICBCT09MICAgICAgICAgICAg
ICAgIFN1Y2Nlc3M7CiAgICAgSFJFU1VMVCAgICAgICAgICAgICBFcnJvcjsKIAogICAgIFVOUkVG
RVJFTkNFRF9QQVJBTUVURVIoYXJnYyk7CkBAIC0yNzksMTYgKzMyOSw1OSBAQCBNb25pdG9yTWFp
bigKICAgICBpZiAoQ29udGV4dC0+U3RvcEV2ZW50ID09IE5VTEwpCiAgICAgICAgIGdvdG8gZmFp
bDM7CiAKKyAgICBDb250ZXh0LT5SZXF1ZXN0RXZlbnQgPSBDcmVhdGVFdmVudChOVUxMLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTlVMTCk7CisKKyAgICBpZiAoQ29udGV4dC0+UmVxdWVzdEV2ZW50
ID09IE5VTEwpCisgICAgICAgIGdvdG8gZmFpbDQ7CisKKyAgICBFcnJvciA9IFJlZ09wZW5LZXlF
eChIS0VZX0xPQ0FMX01BQ0hJTkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgUkVRVUVTVF9L
RVksCisgICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICBLRVlfQUxMX0FDQ0VTUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAmQ29udGV4dC0+UmVx
dWVzdEtleSk7CisKKyAgICBpZiAoRXJyb3IgIT0gRVJST1JfU1VDQ0VTUykKKyAgICAgICAgZ290
byBmYWlsNTsKKworICAgIFNldEV2ZW50KENvbnRleHQtPlJlcXVlc3RFdmVudCk7CisKICAgICBS
ZXBvcnRTdGF0dXMoU0VSVklDRV9SVU5OSU5HLCBOT19FUlJPUiwgMCk7CiAKICAgICBmb3IgKDs7
KSB7Ci0gICAgICAgIExvZygid2FpdGluZy4uLiIpOwotICAgICAgICBXYWl0Rm9yU2luZ2xlT2Jq
ZWN0KENvbnRleHQtPlN0b3BFdmVudCwgSU5GSU5JVEUpOworICAgICAgICBIQU5ETEUgIEV2ZW50
c1syXTsKKyAgICAgICAgRFdPUkQgICBPYmplY3Q7CisKKyAgICAgICAgRXZlbnRzWzBdID0gQ29u
dGV4dC0+U3RvcEV2ZW50OworICAgICAgICBFdmVudHNbMV0gPSBDb250ZXh0LT5SZXF1ZXN0RXZl
bnQ7CisKKyAgICAgICAgTG9nKCJ3YWl0aW5nICgldSkuLi4iLCBBUlJBWVNJWkUoRXZlbnRzKSk7
CisgICAgICAgIE9iamVjdCA9IFdhaXRGb3JNdWx0aXBsZU9iamVjdHMoQVJSQVlTSVpFKEV2ZW50
cyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXZlbnRzLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElORklOSVRFKTsKICAgICAgICAgTG9nKCJhd2Fr
ZSIpOwogCi0gICAgICAgIGJyZWFrOworICAgICAgICBzd2l0Y2ggKE9iamVjdCkgeworICAgICAg
ICBjYXNlIFdBSVRfT0JKRUNUXzA6CisgICAgICAgICAgICBSZXNldEV2ZW50KEV2ZW50c1swXSk7
CisgICAgICAgICAgICBnb3RvIGRvbmU7CisKKyAgICAgICAgY2FzZSBXQUlUX09CSkVDVF8wICsg
MToKKyAgICAgICAgICAgIFJlc2V0RXZlbnQoRXZlbnRzWzFdKTsKKyAgICAgICAgICAgIENoZWNr
UmVxdWVzdEtleSgpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgfQogCitkb25lOgorICAgIENsb3NlSGFu
ZGxlKENvbnRleHQtPlJlcXVlc3RLZXkpOworICAgIENsb3NlSGFuZGxlKENvbnRleHQtPlJlcXVl
c3RFdmVudCk7CiAgICAgQ2xvc2VIYW5kbGUoQ29udGV4dC0+U3RvcEV2ZW50KTsKIAogICAgIFJl
cG9ydFN0YXR1cyhTRVJWSUNFX1NUT1BQRUQsIE5PX0VSUk9SLCAwKTsKQEAgLTI5OSwxMSArMzky
LDIxIEBAIE1vbml0b3JNYWluKAogCiAgICAgcmV0dXJuOwogCi1mYWlsMzoKLSAgICBMb2coImZh
aWwzIik7CitmYWlsNToKKyAgICBMb2coImZhaWw1Iik7CiAKICAgICBSZXBvcnRTdGF0dXMoU0VS
VklDRV9TVE9QUEVELCBHZXRMYXN0RXJyb3IoKSwgMCk7CiAKKyAgICBDbG9zZUhhbmRsZShDb250
ZXh0LT5SZXF1ZXN0RXZlbnQpOworCitmYWlsNDoKKyAgICBMb2coImZhaWw0Iik7CisKKyAgICBD
bG9zZUhhbmRsZShDb250ZXh0LT5TdG9wRXZlbnQpOworCitmYWlsMzoKKyAgICBMb2coImZhaWwz
Iik7CisKICAgICAoVk9JRCkgRGVyZWdpc3RlckV2ZW50U291cmNlKENvbnRleHQtPkV2ZW50TG9n
KTsKIAogZmFpbDI6Ci0tIAoyLjEuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxp
c3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9t
YWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 09:40:42 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 09:40:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQWwk-0003JV-Uw; Fri, 22 Jul 2016 09:40:42 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bQWwj-0003It-Tu
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 09:40:42 +0000
Received: from [193.109.254.147] by server-11.bemta-14.messagelabs.com id
 C3/91-09831-81AE1975; Fri, 22 Jul 2016 09:40:40 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrJIsWRWlGSWpSXmKPExsXiVRvkqCv+amK
 4wd0zYhZ/Fic6MHoc/nCFJYAxijUzLym/IoE1o+t9P2vBg+SKc11NLA2Mly27GLk4hARmMkqc
 3v+EHcRhEXjJInHh0Gsgh5NDQqCfVeLYNR0IO0bi6NRFLBB2mcS5c51gNUICihLN1y5A2SuZJ
 B7/yQOx2QTUJW6/Xww1x07i06ybYLaIgKrEteXH2EBsZgEtiYcb5jGC2MJANVMvXQabzwJUs+
 /HVlYQm1fAXeLh2xVQe+Uk9k5eDWRzcHAKeEg0LVWAWOsuMePfZvYJjIILGBlWMWoUpxaVpRb
 pGhvoJRVlpmeU5CZm5ugaGpro5aYWFyemp+YkJhXrJefnbmIEBls9AwPjDsb9l/wOMUpyMCmJ
 8v64OjFciC8pP6UyI7E4I76oNCe1+BCjDAeHkgTvnRdAOcGi1PTUirTMHGDYw6QlOHiURHhVX
 gKleYsLEnOLM9MhUqcYdTm2TL23lkmIJS8/L1VKnPclyAwBkKKM0jy4EbAYvMQoKyXMy8jAwC
 DEU5BalJtZgir/ilGcg1FJmLcDZBVPZl4J3KZXQEcwAR0xR6Af5IiSRISUVAOj1q6uu1Xbn7i
 Vye/6mSSjUtQjInXVb8W11pVsBgXHb3kks1synnc4ujB7gVqLbNPGBT5lbj/Zv776f5fj4xq7
 ZzyvLyyacl4keteHg9tb2Ipy9Gdf6Lq8901n2yNVVqfNytWr7hot0dF9J1VuKT/rxJsjZxcu5
 JwoUSW+9ryi2n7pI7oMR3rYlViKMxINtZiLihMBFvHhNrwCAAA=
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-9.tower-27.messagelabs.com!1469180438!55325314!1
X-Originating-IP: [74.125.82.65]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 35397 invoked from network); 22 Jul 2016 09:40:39 -0000
Received: from mail-wm0-f65.google.com (HELO mail-wm0-f65.google.com)
 (74.125.82.65)
 by server-9.tower-27.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 22 Jul 2016 09:40:39 -0000
Received: by mail-wm0-f65.google.com with SMTP id i5so5420152wmg.2
 for <win-pv-devel@lists.xenproject.org>; Fri, 22 Jul 2016 02:40:39 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id:in-reply-to:references;
 bh=eDVqiMrCg0Wxe1uKlOs+JgF7t0Ow6iepXyEveAmxbe4=;
 b=yNHfSkMXI298UmtVyfswJPzikHn4Lepuu/KGYfptLrvPKfg6cjAFi98/spbyV0N1jA
 /aigT3I+QolvjJw6HpoUDXJlPveyfzUzhDul1PKY6dSwpGq3kCd01CkzJ23tyJ+o2O/3
 +IK+Dxj8sMVjFHdK009VJdD29/uyaxA6jaHD3xtp3eamSkYD5lIYzP3TCS602vZx88MT
 L4uwfDMjAwRXrxCwACutCXkLpVAni5xTT88mt6t1YjH+gQEYtf+z8CoEX0yKEzGTBMhV
 AbVVBDBffwnW9V3eYE1d4Ykk6W5zF3GzkUnegRZ0+MxAQljT7dQ2bc0fywCzU5v6QwJ6
 A+DA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
 :references;
 bh=eDVqiMrCg0Wxe1uKlOs+JgF7t0Ow6iepXyEveAmxbe4=;
 b=W9gk9kxkKvgaEV3wBjUP3U9mjKjOjIoEb567JF1/PNLtQFBTDluYGsGLEbLSAUD+Kl
 PmLXTlMkt8PgLCZmhswF5xzKA56CWwX3c1kySeXtnL46KQGh/d241sq5oqG9eYxz/DM9
 d+bs+OPxAMoigP0gAgPb3BkusDUCySc8yPN529Vpu8AVDspuibk9dHav7xuCXNX1hPXX
 T0ybZGcSwOUipZWxhIRVCI3UT6bEJDJrRD9lmlWoS6adOwCcDYIhkrpz2i6xj+NaCIGr
 EPgxkSxz06TVeuuf2eRLJyNOu6z8Hp3jc3bpKanRc9QsXXkxwSr6uyK6C9dDhdxEgusV
 4RMg==
X-Gm-Message-State: ALyK8tKV2sHrGZjQxLiyqKLRsBXf4GP2o6bN3bz+xjiBXnTS1lop/GOa+9gcXJpcWwfT0Q==
X-Received: by 10.28.165.3 with SMTP id o3mr25626998wme.3.1469180438707;
 Fri, 22 Jul 2016 02:40:38 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id g184sm11640847wme.15.2016.07.22.02.40.37
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 22 Jul 2016 02:40:38 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Fri, 22 Jul 2016 10:40:21 +0100
Message-Id: <1469180422-15112-3-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1469180422-15112-1-git-send-email-paul.durrant@citrix.com>
References: <1469180422-15112-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 3/4] Check 'Reboot' value in the 'Request' key
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

SWYgdGhlICdSZWJvb3QnIHZhbHVlIGlzIHNldCB3aXRoIGEgc2VydmljZSBuYW1lIHRoZW4gcG9w
IHVwIGEgbWVzc2FnZSBpbgp0aGUgYWN0aXZlIHNlc3Npb24gaW5kaWNhdGluZyB0aGF0IHRoZSBz
cGVjaWZpZWQgc2VydmljZSByZXF1aXJlcyBhIHN5c3RlbQpyZWJvb3QgaW4gb3JkZXIgdG8gY29t
cGxldGUgaW5zdGFsbGF0aW9uLiBJZiB0aGUgc2Vzc2lvbiB1c2VyIHJlc3BvbmRzCmFmZmlybWF0
aXZlbHkgdG8gdGhlIG1lc3NhZ2UgdGhlbiBpbml0aWF0ZSBhIHJlYm9vdC4KClNpZ25lZC1vZmYt
Ynk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+Ci0tLQogc3JjL21vbml0
b3IvbW9uaXRvci5jIHwgNDEzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgNDAzIGluc2VydGlvbnMoKyksIDEwIGRlbGV0
aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9tb25pdG9yL21vbml0b3IuYyBiL3NyYy9tb25pdG9y
L21vbml0b3IuYwppbmRleCA2YzY2NTE4Li45ZTQ1NTVmIDEwMDY0NAotLS0gYS9zcmMvbW9uaXRv
ci9tb25pdG9yLmMKKysrIGIvc3JjL21vbml0b3IvbW9uaXRvci5jCkBAIC0zMyw2ICszMyw5IEBA
CiAjaW5jbHVkZSA8dGNoYXIuaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJz
YWZlLmg+CisjaW5jbHVkZSA8d3RzYXBpMzIuaD4KKyNpbmNsdWRlIDxtYWxsb2MuaD4KKyNpbmNs
dWRlIDxhc3NlcnQuaD4KIAogI2luY2x1ZGUgPHZlcnNpb24uaD4KIApAQCAtNDgsNiArNTEsNyBA
QCB0eXBlZGVmIHN0cnVjdCBfTU9OSVRPUl9DT05URVhUIHsKICAgICBIQU5ETEUgICAgICAgICAg
ICAgICAgICBTdG9wRXZlbnQ7CiAgICAgSEFORExFICAgICAgICAgICAgICAgICAgUmVxdWVzdEV2
ZW50OwogICAgIEhLRVkgICAgICAgICAgICAgICAgICAgIFJlcXVlc3RLZXk7CisgICAgQk9PTCAg
ICAgICAgICAgICAgICAgICAgUmVib290UGVuZGluZzsKIH0gTU9OSVRPUl9DT05URVhULCAqUE1P
TklUT1JfQ09OVEVYVDsKIAogTU9OSVRPUl9DT05URVhUIE1vbml0b3JDb250ZXh0OwpAQCAtMjU2
LDYgKzI2MCwzMTggQEAgTW9uaXRvckN0cmxIYW5kbGVyRXgoCiAgICAgcmV0dXJuIEVSUk9SX0NB
TExfTk9UX0lNUExFTUVOVEVEOwogfQogCitzdGF0aWMgY29uc3QgQ0hBUiAqCitXVFNTdGF0ZU5h
bWUoCisgICAgSU4gIERXT1JEICAgU3RhdGUKKyAgICApCit7CisjZGVmaW5lIF9TVEFURV9OQU1F
KF9TdGF0ZSkgXAorICAgIGNhc2UgV1RTICMjIF9TdGF0ZTogXAorICAgICAgICByZXR1cm4gI19T
dGF0ZQorCisgICAgc3dpdGNoIChTdGF0ZSkgeworICAgIF9TVEFURV9OQU1FKEFjdGl2ZSk7Cisg
ICAgX1NUQVRFX05BTUUoQ29ubmVjdGVkKTsKKyAgICBfU1RBVEVfTkFNRShDb25uZWN0UXVlcnkp
OworICAgIF9TVEFURV9OQU1FKFNoYWRvdyk7CisgICAgX1NUQVRFX05BTUUoRGlzY29ubmVjdGVk
KTsKKyAgICBfU1RBVEVfTkFNRShJZGxlKTsKKyAgICBfU1RBVEVfTkFNRShMaXN0ZW4pOworICAg
IF9TVEFURV9OQU1FKFJlc2V0KTsKKyAgICBfU1RBVEVfTkFNRShEb3duKTsKKyAgICBfU1RBVEVf
TkFNRShJbml0KTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBy
ZXR1cm4gIlVOS05PV04iOworCisjdW5kZWYgIF9TVEFURV9OQU1FCit9CisKK3N0YXRpYyBWT0lE
CitEb1JlYm9vdCgKKyAgICBWT0lECisgICAgKQoreworICAgIChWT0lEKSBJbml0aWF0ZVN5c3Rl
bVNodXRkb3duRXgoTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5V
TEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFRSVUUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSFRE
Tl9SRUFTT05fTUFKT1JfT1BFUkFUSU5HU1lTVEVNIHwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFNIVEROX1JFQVNPTl9NSU5PUl9JTlNUQUxMQVRJT04gfAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hURE5fUkVBU09OX0ZMQUdfUExBTk5FRCk7Cit9
CisKK3N0YXRpYyBWT0lECitQcm9tcHRGb3JSZWJvb3QoCisgICAgSU4gUFRDSEFSICAgICAgICAg
ICBEcml2ZXJOYW1lCisgICAgKQoreworICAgIFBNT05JVE9SX0NPTlRFWFQgICAgQ29udGV4dCA9
ICZNb25pdG9yQ29udGV4dDsKKyAgICBIUkVTVUxUICAgICAgICAgICAgIFJlc3VsdDsKKyAgICBU
Q0hBUiAgICAgICAgICAgICAgIFNlcnZpY2VLZXlOYW1lW01BWF9QQVRIXTsKKyAgICBIS0VZICAg
ICAgICAgICAgICAgIFNlcnZpY2VLZXk7CisgICAgRFdPUkQgICAgICAgICAgICAgICBNYXhWYWx1
ZUxlbmd0aDsKKyAgICBEV09SRCAgICAgICAgICAgICAgIERpc3BsYXlOYW1lTGVuZ3RoOworICAg
IFBUQ0hBUiAgICAgICAgICAgICAgRGlzcGxheU5hbWU7CisgICAgRFdPUkQgICAgICAgICAgICAg
ICBUeXBlOworICAgIFRDSEFSICAgICAgICAgICAgICAgVGl0bGVbXSA9IFRFWFQoVkVORE9SX05B
TUVfU1RSKTsKKyAgICBUQ0hBUiAgICAgICAgICAgICAgIE1lc3NhZ2VbTUFYSU1VTV9CVUZGRVJf
U0laRV07CisgICAgUFdUU19TRVNTSU9OX0lORk8gICBTZXNzaW9uSW5mbzsKKyAgICBEV09SRCAg
ICAgICAgICAgICAgIENvdW50OworICAgIERXT1JEICAgICAgICAgICAgICAgSW5kZXg7CisgICAg
Qk9PTCAgICAgICAgICAgICAgICBTdWNjZXNzOworICAgIEhSRVNVTFQgICAgICAgICAgICAgRXJy
b3I7CisKKyAgICBMb2coIj09PT0+ICglcykiLCBEcml2ZXJOYW1lKTsKKworICAgIFJlc3VsdCA9
IFN0cmluZ0NiUHJpbnRmKFNlcnZpY2VLZXlOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIE1BWF9QQVRILAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFUlZJQ0VTX0tFWSAi
XFwlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRHJpdmVyTmFtZSk7CisgICAgYXNz
ZXJ0KFNVQ0NFRURFRChSZXN1bHQpKTsKKworICAgIEVycm9yID0gUmVnT3BlbktleUV4KEhLRVlf
TE9DQUxfTUFDSElORSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBTZXJ2aWNlS2V5TmFtZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAgIEtF
WV9SRUFELAorICAgICAgICAgICAgICAgICAgICAgICAgICZTZXJ2aWNlS2V5KTsKKyAgICBpZiAo
RXJyb3IgIT0gRVJST1JfU1VDQ0VTUykgeworICAgICAgICBTZXRMYXN0RXJyb3IoRXJyb3IpOwor
ICAgICAgICBnb3RvIGZhaWwxOworICAgIH0KKworICAgIEVycm9yID0gUmVnUXVlcnlJbmZvS2V5
KFNlcnZpY2VLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5V
TEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICZNYXhWYWx1ZUxlbmd0aCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIE5VTEwpOworICAgIGlmIChFcnJvciAhPSBFUlJPUl9TVUNDRVNTKSB7CisgICAgICAgIFNl
dExhc3RFcnJvcihFcnJvcik7CisgICAgICAgIGdvdG8gZmFpbDI7CisgICAgfQorCisgICAgRGlz
cGxheU5hbWVMZW5ndGggPSBNYXhWYWx1ZUxlbmd0aCArIHNpemVvZiAoVENIQVIpOworCisgICAg
RGlzcGxheU5hbWUgPSBjYWxsb2MoMSwgRGlzcGxheU5hbWVMZW5ndGgpOworICAgIGlmIChEaXNw
bGF5TmFtZSA9PSBOVUxMKQorICAgICAgICBnb3RvIGZhaWwzOworCisgICAgRXJyb3IgPSBSZWdR
dWVyeVZhbHVlRXgoU2VydmljZUtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGlz
cGxheU5hbWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJlR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExQ
QllURSlEaXNwbGF5TmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAmRGlzcGxheU5h
bWVMZW5ndGgpOworICAgIGlmIChFcnJvciAhPSBFUlJPUl9TVUNDRVNTKSB7CisgICAgICAgIFNl
dExhc3RFcnJvcihFcnJvcik7CisgICAgICAgIGdvdG8gZmFpbDQ7CisgICAgfQorCisgICAgaWYg
KFR5cGUgIT0gUkVHX1NaKSB7CisgICAgICAgIFNldExhc3RFcnJvcihFUlJPUl9CQURfRk9STUFU
KTsKKyAgICAgICAgZ290byBmYWlsNTsKKyAgICB9CisKKyAgICBSZXN1bHQgPSBTdHJpbmdDYlBy
aW50ZihNZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BWElNVU1fQlVGRkVS
X1NJWkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEVYVCgiJXMgbmVlZHMgdG8gcmVz
dGFydCB0aGUgc3lzdGVtIHRvICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJj
b21wbGV0ZSBpbnN0YWxsYXRpb24uXG4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiUHJlc3MgJ1llcycgdG8gcmVzdGFydCB0aGUgc3lzdGVtICIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJub3cgb3IgJ05vJyBpZiB5b3UgcGxhbiB0byByZXN0YXJ0ICIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0aGUgc3lzdGVtIGxhdGVyLlxuIiksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheU5hbWUpOworICAgIGFzc2VydChTVUND
RUVERUQoUmVzdWx0KSk7CisKKyAgICBTdWNjZXNzID0gV1RTRW51bWVyYXRlU2Vzc2lvbnMoV1RT
X0NVUlJFTlRfU0VSVkVSX0hBTkRMRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJlNlc3Npb25JbmZvLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAmQ291bnQpOworCisgICAgaWYgKCFTdWNjZXNzKQorICAgICAgICBn
b3RvIGZhaWw2OworCisgICAgZm9yIChJbmRleCA9IDA7IEluZGV4IDwgQ291bnQ7IEluZGV4Kysp
IHsKKyAgICAgICAgRFdPUkQgICAgICAgICAgICAgICAgICAgU2Vzc2lvbklkID0gU2Vzc2lvbklu
Zm9bSW5kZXhdLlNlc3Npb25JZDsKKyAgICAgICAgUFRDSEFSICAgICAgICAgICAgICAgICAgTmFt
ZSA9IFNlc3Npb25JbmZvW0luZGV4XS5wV2luU3RhdGlvbk5hbWU7CisgICAgICAgIFdUU19DT05O
RUNUU1RBVEVfQ0xBU1MgIFN0YXRlID0gU2Vzc2lvbkluZm9bSW5kZXhdLlN0YXRlOworICAgICAg
ICBEV09SRCAgICAgICAgICAgICAgICAgICBSZXNwb25zZTsKKworICAgICAgICBMb2coIlsldV06
ICVzIFslc10iLAorICAgICAgICAgICAgU2Vzc2lvbklkLAorICAgICAgICAgICAgTmFtZSwKKyAg
ICAgICAgICAgIFdUU1N0YXRlTmFtZShTdGF0ZSkpOworCisgICAgICAgIGlmIChTdGF0ZSAhPSBX
VFNBY3RpdmUpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBTdWNjZXNzID0gV1RT
U2VuZE1lc3NhZ2UoV1RTX0NVUlJFTlRfU0VSVkVSX0hBTkRMRSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFNlc3Npb25JZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFRpdGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mIChUaXRs
ZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mIChNZXNzYWdlKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIE1CX1lFU05PIHwgTUJfSUNPTkVYQ0xBTUFUSU9OLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICZSZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUp
OworCisgICAgICAgIGlmICghU3VjY2VzcykKKyAgICAgICAgICAgIGdvdG8gZmFpbDc7CisKKyAg
ICAgICAgQ29udGV4dC0+UmVib290UGVuZGluZyA9IFRSVUU7CisKKyAgICAgICAgaWYgKFJlc3Bv
bnNlID09IElEWUVTKQorICAgICAgICAgICAgRG9SZWJvb3QoKTsKKworICAgICAgICBicmVhazsK
KyAgICB9CisKKyAgICBXVFNGcmVlTWVtb3J5KFNlc3Npb25JbmZvKTsKKworICAgIGZyZWUoRGlz
cGxheU5hbWUpOworCisgICAgUmVnQ2xvc2VLZXkoU2VydmljZUtleSk7CisKKyAgICBMb2coIjw9
PT09Iik7CisKKyAgICByZXR1cm47CisKK2ZhaWw3OgorICAgIExvZygiZmFpbDciKTsKKworICAg
IFdUU0ZyZWVNZW1vcnkoU2Vzc2lvbkluZm8pOworCitmYWlsNjoKKyAgICBMb2coImZhaWw2Iik7
CisKK2ZhaWw1OgorICAgIExvZygiZmFpbDUiKTsKKworZmFpbDQ6CisgICAgTG9nKCJmYWlsNCIp
OworCisgICAgZnJlZShEaXNwbGF5TmFtZSk7CisKK2ZhaWwzOgorICAgIExvZygiZmFpbDMiKTsK
KworZmFpbDI6CisgICAgTG9nKCJmYWlsMiIpOworCisgICAgUmVnQ2xvc2VLZXkoU2VydmljZUtl
eSk7CisKK2ZhaWwxOgorICAgIEVycm9yID0gR2V0TGFzdEVycm9yKCk7CisKKyAgICB7CisgICAg
ICAgIFBUQ0hBUiAgTWVzc2FnZTsKKyAgICAgICAgTWVzc2FnZSA9IEdldEVycm9yTWVzc2FnZShF
cnJvcik7CisgICAgICAgIExvZygiZmFpbDEgKCVzKSIsIE1lc3NhZ2UpOworICAgICAgICBMb2Nh
bEZyZWUoTWVzc2FnZSk7CisgICAgfQorfQorCitzdGF0aWMgVk9JRAorQ2hlY2tSZWJvb3RWYWx1
ZSgKKyAgICBWT0lECisgICAgKQoreworICAgIFBNT05JVE9SX0NPTlRFWFQgICAgQ29udGV4dCA9
ICZNb25pdG9yQ29udGV4dDsKKyAgICBIUkVTVUxUICAgICAgICAgICAgIEVycm9yOworICAgIERX
T1JEICAgICAgICAgICAgICAgTWF4VmFsdWVMZW5ndGg7CisgICAgRFdPUkQgICAgICAgICAgICAg
ICBSZWJvb3RMZW5ndGg7CisgICAgUFRDSEFSICAgICAgICAgICAgICBSZWJvb3Q7CisgICAgRFdP
UkQgICAgICAgICAgICAgICBUeXBlOworCisgICAgTG9nKCI9PT09PiIpOworCisgICAgRXJyb3Ig
PSBSZWdRdWVyeUluZm9LZXkoQ29udGV4dC0+UmVxdWVzdEtleSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJk1heFZhbHVlTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEws
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgICAgaWYgKEVycm9yICE9IEVS
Uk9SX1NVQ0NFU1MpIHsKKyAgICAgICAgU2V0TGFzdEVycm9yKEVycm9yKTsKKyAgICAgICAgZ290
byBmYWlsMTsKKyAgICB9CisKKyAgICBSZWJvb3RMZW5ndGggPSBNYXhWYWx1ZUxlbmd0aCArIHNp
emVvZiAoVENIQVIpOworCisgICAgUmVib290ID0gY2FsbG9jKDEsIFJlYm9vdExlbmd0aCk7Cisg
ICAgaWYgKFJlYm9vdCA9PSBOVUxMKQorICAgICAgICBnb3RvIGZhaWwyOworCisgICAgRXJyb3Ig
PSBSZWdRdWVyeVZhbHVlRXgoQ29udGV4dC0+UmVxdWVzdEtleSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiUmVib290IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZUeXBlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChMUEJZVEUpUmVib290LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICZSZWJv
b3RMZW5ndGgpOworICAgIGlmIChFcnJvciAhPSBFUlJPUl9TVUNDRVNTKSB7CisgICAgICAgIGlm
IChFcnJvciA9PSBFUlJPUl9GSUxFX05PVF9GT1VORCkKKyAgICAgICAgICAgIGdvdG8gZG9uZTsK
KworICAgICAgICBTZXRMYXN0RXJyb3IoRXJyb3IpOworICAgICAgICBnb3RvIGZhaWwzOworICAg
IH0KKworICAgIGlmIChUeXBlICE9IFJFR19TWikgeworICAgICAgICBTZXRMYXN0RXJyb3IoRVJS
T1JfQkFEX0ZPUk1BVCk7CisgICAgICAgIGdvdG8gZmFpbDQ7CisgICAgfQorCisgICAgaWYgKCFD
b250ZXh0LT5SZWJvb3RQZW5kaW5nKQorICAgICAgICBQcm9tcHRGb3JSZWJvb3QoUmVib290KTsK
KworICAgIChWT0lEKSBSZWdEZWxldGVWYWx1ZShDb250ZXh0LT5SZXF1ZXN0S2V5LCAiUmVib290
Iik7CisKK2RvbmU6CisgICAgZnJlZShSZWJvb3QpOworCisgICAgTG9nKCI8PT09PSIpOworCisg
ICAgcmV0dXJuOworCitmYWlsNDoKKyAgICBMb2coImZhaWw0Iik7CisKK2ZhaWwzOgorICAgIExv
ZygiZmFpbDMiKTsKKworICAgIGZyZWUoUmVib290KTsKKworZmFpbDI6CisgICAgTG9nKCJmYWls
MiIpOworCitmYWlsMToKKyAgICBFcnJvciA9IEdldExhc3RFcnJvcigpOworCisgICAgeworICAg
ICAgICBQVENIQVIgIE1lc3NhZ2U7CisgICAgICAgIE1lc3NhZ2UgPSBHZXRFcnJvck1lc3NhZ2Uo
RXJyb3IpOworICAgICAgICBMb2coImZhaWwxICglcykiLCBNZXNzYWdlKTsKKyAgICAgICAgTG9j
YWxGcmVlKE1lc3NhZ2UpOworICAgIH0KK30KKwogc3RhdGljIFZPSUQKIENoZWNrUmVxdWVzdEtl
eSgKICAgICBWT0lECkBAIC0yNjYsNiArNTgyLDggQEAgQ2hlY2tSZXF1ZXN0S2V5KAogCiAgICAg
TG9nKCI9PT09PiIpOwogCisgICAgQ2hlY2tSZWJvb3RWYWx1ZSgpOworCiAgICAgRXJyb3IgPSBS
ZWdOb3RpZnlDaGFuZ2VLZXlWYWx1ZShDb250ZXh0LT5SZXF1ZXN0S2V5LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFJFR19OT1RJRllfQ0hBTkdFX0xBU1RfU0VULApAQCAtMjkwLDYgKzYwOCw3MyBA
QCBmYWlsMToKICAgICB9CiB9CiAKK3N0YXRpYyBCT09MCitBY3F1aXJlU2h1dGRvd25Qcml2aWxl
Z2UoCisgICAgVk9JRAorICAgICkKK3sKKyAgICBIQU5ETEUgICAgICAgICAgICAgIFRva2VuOwor
ICAgIFRPS0VOX1BSSVZJTEVHRVMgICAgTmV3OworICAgIEJPT0wgICAgICAgICAgICAgICAgU3Vj
Y2VzczsKKyAgICBIUkVTVUxUICAgICAgICAgICAgIEVycm9yOworCisgICAgTG9nKCI9PT09PiIp
OworCisgICAgTmV3LlByaXZpbGVnZUNvdW50ID0gMTsKKworICAgIFN1Y2Nlc3MgPSBMb29rdXBQ
cml2aWxlZ2VWYWx1ZShOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT
RV9TSFVURE9XTl9OQU1FLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmTmV3
LlByaXZpbGVnZXNbMF0uTHVpZCk7CisKKyAgICBpZiAoIVN1Y2Nlc3MpCisgICAgICAgIGdvdG8g
ZmFpbDE7CisKKyAgICBOZXcuUHJpdmlsZWdlc1swXS5BdHRyaWJ1dGVzID0gU0VfUFJJVklMRUdF
X0VOQUJMRUQ7CisKKyAgICBTdWNjZXNzID0gT3BlblByb2Nlc3NUb2tlbihHZXRDdXJyZW50UHJv
Y2VzcygpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRPS0VOX0FESlVTVF9QUklW
SUxFR0VTIHwgVE9LRU5fUVVFUlksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlRv
a2VuKTsKKworICAgIGlmICghU3VjY2VzcykKKyAgICAgICAgZ290byBmYWlsMjsKKworICAgIFN1
Y2Nlc3MgPSBBZGp1c3RUb2tlblByaXZpbGVnZXMoVG9rZW4sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBGQUxTRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICZOZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIE5VTEwpOworCisgICAgaWYgKCFTdWNjZXNzKQorICAgICAgICBnb3Rv
IGZhaWwzOworCisgICAgQ2xvc2VIYW5kbGUoVG9rZW4pOworCisgICAgTG9nKCI8PT09PSIpOwor
CisgICAgcmV0dXJuIFRSVUU7CisKK2ZhaWwzOgorICAgIExvZygiZmFpbDMiKTsKKworICAgIENs
b3NlSGFuZGxlKFRva2VuKTsKKworZmFpbDI6CisgICAgTG9nKCJmYWlsMiIpOworCitmYWlsMToK
KyAgICBFcnJvciA9IEdldExhc3RFcnJvcigpOworCisgICAgeworICAgICAgICBQVENIQVIgIE1l
c3NhZ2U7CisgICAgICAgIE1lc3NhZ2UgPSBHZXRFcnJvck1lc3NhZ2UoRXJyb3IpOworICAgICAg
ICBMb2coImZhaWwxICglcykiLCBNZXNzYWdlKTsKKyAgICAgICAgTG9jYWxGcmVlKE1lc3NhZ2Up
OworICAgIH0KKworICAgIHJldHVybiBGQUxTRTsKK30KKwogVk9JRCBXSU5BUEkKIE1vbml0b3JN
YWluKAogICAgIF9Jbl8gICAgRFdPUkQgICAgICAgYXJnYywKQEAgLTMwNSwxNiArNjkwLDIxIEBA
IE1vbml0b3JNYWluKAogCiAgICAgTG9nKCI9PT09PiIpOwogCisgICAgU3VjY2VzcyA9IEFjcXVp
cmVTaHV0ZG93blByaXZpbGVnZSgpOworCisgICAgaWYgKCFTdWNjZXNzKQorICAgICAgICBnb3Rv
IGZhaWwxOworCiAgICAgQ29udGV4dC0+U2VydmljZSA9IFJlZ2lzdGVyU2VydmljZUN0cmxIYW5k
bGVyRXgoTU9OSVRPUl9OQU1FLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIE1vbml0b3JDdHJsSGFuZGxlckV4LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwogICAgIGlmIChDb250ZXh0
LT5TZXJ2aWNlID09IE5VTEwpCi0gICAgICAgIGdvdG8gZmFpbDE7CisgICAgICAgIGdvdG8gZmFp
bDI7CiAKICAgICBDb250ZXh0LT5FdmVudExvZyA9IFJlZ2lzdGVyRXZlbnRTb3VyY2UoTlVMTCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTU9OSVRPUl9OQU1F
KTsKICAgICBpZiAoQ29udGV4dC0+RXZlbnRMb2cgPT0gTlVMTCkKLSAgICAgICAgZ290byBmYWls
MjsKKyAgICAgICAgZ290byBmYWlsMzsKIAogICAgIENvbnRleHQtPlN0YXR1cy5kd1NlcnZpY2VU
eXBlID0gU0VSVklDRV9XSU4zMl9PV05fUFJPQ0VTUzsKICAgICBDb250ZXh0LT5TdGF0dXMuZHdT
ZXJ2aWNlU3BlY2lmaWNFeGl0Q29kZSA9IDA7CkBAIC0zMjcsNyArNzE3LDcgQEAgTW9uaXRvck1h
aW4oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CiAKICAgICBp
ZiAoQ29udGV4dC0+U3RvcEV2ZW50ID09IE5VTEwpCi0gICAgICAgIGdvdG8gZmFpbDM7CisgICAg
ICAgIGdvdG8gZmFpbDQ7CiAKICAgICBDb250ZXh0LT5SZXF1ZXN0RXZlbnQgPSBDcmVhdGVFdmVu
dChOVUxMLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUsCkBA
IC0zMzUsNyArNzI1LDcgQEAgTW9uaXRvck1haW4oCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTlVMTCk7CiAKICAgICBpZiAoQ29udGV4dC0+UmVxdWVzdEV2ZW50ID09
IE5VTEwpCi0gICAgICAgIGdvdG8gZmFpbDQ7CisgICAgICAgIGdvdG8gZmFpbDU7CiAKICAgICBF
cnJvciA9IFJlZ09wZW5LZXlFeChIS0VZX0xPQ0FMX01BQ0hJTkUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgUkVRVUVTVF9LRVksCkBAIC0zNDQsNyArNzM0LDcgQEAgTW9uaXRvck1haW4oCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgJkNvbnRleHQtPlJlcXVlc3RLZXkpOwogCiAgICAgaWYg
KEVycm9yICE9IEVSUk9SX1NVQ0NFU1MpCi0gICAgICAgIGdvdG8gZmFpbDU7CisgICAgICAgIGdv
dG8gZmFpbDY7CiAKICAgICBTZXRFdmVudChDb250ZXh0LT5SZXF1ZXN0RXZlbnQpOwogCkBAIC0z
OTIsMjMgKzc4MiwyNiBAQCBkb25lOgogCiAgICAgcmV0dXJuOwogCi1mYWlsNToKLSAgICBMb2co
ImZhaWw1Iik7CitmYWlsNjoKKyAgICBMb2coImZhaWw2Iik7CiAKICAgICBSZXBvcnRTdGF0dXMo
U0VSVklDRV9TVE9QUEVELCBHZXRMYXN0RXJyb3IoKSwgMCk7CiAKICAgICBDbG9zZUhhbmRsZShD
b250ZXh0LT5SZXF1ZXN0RXZlbnQpOwogCitmYWlsNToKKyAgICBMb2coImZhaWw1Iik7CisKKyAg
ICBDbG9zZUhhbmRsZShDb250ZXh0LT5TdG9wRXZlbnQpOworCiBmYWlsNDoKICAgICBMb2coImZh
aWw0Iik7CiAKLSAgICBDbG9zZUhhbmRsZShDb250ZXh0LT5TdG9wRXZlbnQpOworICAgIChWT0lE
KSBEZXJlZ2lzdGVyRXZlbnRTb3VyY2UoQ29udGV4dC0+RXZlbnRMb2cpOwogCiBmYWlsMzoKICAg
ICBMb2coImZhaWwzIik7CiAKLSAgICAoVk9JRCkgRGVyZWdpc3RlckV2ZW50U291cmNlKENvbnRl
eHQtPkV2ZW50TG9nKTsKLQogZmFpbDI6CiAgICAgTG9nKCJmYWlsMiIpOwogCi0tIAoyLjEuMQoK
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1k
ZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBz
Oi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1k
ZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 09:40:42 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 09:40:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQWwk-0003JV-Uw; Fri, 22 Jul 2016 09:40:42 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bQWwj-0003It-Tu
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 09:40:42 +0000
Received: from [193.109.254.147] by server-11.bemta-14.messagelabs.com id
 C3/91-09831-81AE1975; Fri, 22 Jul 2016 09:40:40 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrJIsWRWlGSWpSXmKPExsXiVRvkqCv+amK
 4wd0zYhZ/Fic6MHoc/nCFJYAxijUzLym/IoE1o+t9P2vBg+SKc11NLA2Mly27GLk4hARmMkqc
 3v+EHcRhEXjJInHh0Gsgh5NDQqCfVeLYNR0IO0bi6NRFLBB2mcS5c51gNUICihLN1y5A2SuZJ
 B7/yQOx2QTUJW6/Xww1x07i06ybYLaIgKrEteXH2EBsZgEtiYcb5jGC2MJANVMvXQabzwJUs+
 /HVlYQm1fAXeLh2xVQe+Uk9k5eDWRzcHAKeEg0LVWAWOsuMePfZvYJjIILGBlWMWoUpxaVpRb
 pGhvoJRVlpmeU5CZm5ugaGpro5aYWFyemp+YkJhXrJefnbmIEBls9AwPjDsb9l/wOMUpyMCmJ
 8v64OjFciC8pP6UyI7E4I76oNCe1+BCjDAeHkgTvnRdAOcGi1PTUirTMHGDYw6QlOHiURHhVX
 gKleYsLEnOLM9MhUqcYdTm2TL23lkmIJS8/L1VKnPclyAwBkKKM0jy4EbAYvMQoKyXMy8jAwC
 DEU5BalJtZgir/ilGcg1FJmLcDZBVPZl4J3KZXQEcwAR0xR6Af5IiSRISUVAOj1q6uu1Xbn7i
 Vye/6mSSjUtQjInXVb8W11pVsBgXHb3kks1synnc4ujB7gVqLbNPGBT5lbj/Zv776f5fj4xq7
 ZzyvLyyacl4keteHg9tb2Ipy9Gdf6Lq8901n2yNVVqfNytWr7hot0dF9J1VuKT/rxJsjZxcu5
 JwoUSW+9ryi2n7pI7oMR3rYlViKMxINtZiLihMBFvHhNrwCAAA=
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-9.tower-27.messagelabs.com!1469180438!55325314!1
X-Originating-IP: [74.125.82.65]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 35397 invoked from network); 22 Jul 2016 09:40:39 -0000
Received: from mail-wm0-f65.google.com (HELO mail-wm0-f65.google.com)
 (74.125.82.65)
 by server-9.tower-27.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 22 Jul 2016 09:40:39 -0000
Received: by mail-wm0-f65.google.com with SMTP id i5so5420152wmg.2
 for <win-pv-devel@lists.xenproject.org>; Fri, 22 Jul 2016 02:40:39 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id:in-reply-to:references;
 bh=eDVqiMrCg0Wxe1uKlOs+JgF7t0Ow6iepXyEveAmxbe4=;
 b=yNHfSkMXI298UmtVyfswJPzikHn4Lepuu/KGYfptLrvPKfg6cjAFi98/spbyV0N1jA
 /aigT3I+QolvjJw6HpoUDXJlPveyfzUzhDul1PKY6dSwpGq3kCd01CkzJ23tyJ+o2O/3
 +IK+Dxj8sMVjFHdK009VJdD29/uyaxA6jaHD3xtp3eamSkYD5lIYzP3TCS602vZx88MT
 L4uwfDMjAwRXrxCwACutCXkLpVAni5xTT88mt6t1YjH+gQEYtf+z8CoEX0yKEzGTBMhV
 AbVVBDBffwnW9V3eYE1d4Ykk6W5zF3GzkUnegRZ0+MxAQljT7dQ2bc0fywCzU5v6QwJ6
 A+DA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
 :references;
 bh=eDVqiMrCg0Wxe1uKlOs+JgF7t0Ow6iepXyEveAmxbe4=;
 b=W9gk9kxkKvgaEV3wBjUP3U9mjKjOjIoEb567JF1/PNLtQFBTDluYGsGLEbLSAUD+Kl
 PmLXTlMkt8PgLCZmhswF5xzKA56CWwX3c1kySeXtnL46KQGh/d241sq5oqG9eYxz/DM9
 d+bs+OPxAMoigP0gAgPb3BkusDUCySc8yPN529Vpu8AVDspuibk9dHav7xuCXNX1hPXX
 T0ybZGcSwOUipZWxhIRVCI3UT6bEJDJrRD9lmlWoS6adOwCcDYIhkrpz2i6xj+NaCIGr
 EPgxkSxz06TVeuuf2eRLJyNOu6z8Hp3jc3bpKanRc9QsXXkxwSr6uyK6C9dDhdxEgusV
 4RMg==
X-Gm-Message-State: ALyK8tKV2sHrGZjQxLiyqKLRsBXf4GP2o6bN3bz+xjiBXnTS1lop/GOa+9gcXJpcWwfT0Q==
X-Received: by 10.28.165.3 with SMTP id o3mr25626998wme.3.1469180438707;
 Fri, 22 Jul 2016 02:40:38 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id g184sm11640847wme.15.2016.07.22.02.40.37
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 22 Jul 2016 02:40:38 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Fri, 22 Jul 2016 10:40:21 +0100
Message-Id: <1469180422-15112-3-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1469180422-15112-1-git-send-email-paul.durrant@citrix.com>
References: <1469180422-15112-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 3/4] Check 'Reboot' value in the 'Request' key
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

SWYgdGhlICdSZWJvb3QnIHZhbHVlIGlzIHNldCB3aXRoIGEgc2VydmljZSBuYW1lIHRoZW4gcG9w
IHVwIGEgbWVzc2FnZSBpbgp0aGUgYWN0aXZlIHNlc3Npb24gaW5kaWNhdGluZyB0aGF0IHRoZSBz
cGVjaWZpZWQgc2VydmljZSByZXF1aXJlcyBhIHN5c3RlbQpyZWJvb3QgaW4gb3JkZXIgdG8gY29t
cGxldGUgaW5zdGFsbGF0aW9uLiBJZiB0aGUgc2Vzc2lvbiB1c2VyIHJlc3BvbmRzCmFmZmlybWF0
aXZlbHkgdG8gdGhlIG1lc3NhZ2UgdGhlbiBpbml0aWF0ZSBhIHJlYm9vdC4KClNpZ25lZC1vZmYt
Ynk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+Ci0tLQogc3JjL21vbml0
b3IvbW9uaXRvci5jIHwgNDEzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgNDAzIGluc2VydGlvbnMoKyksIDEwIGRlbGV0
aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9tb25pdG9yL21vbml0b3IuYyBiL3NyYy9tb25pdG9y
L21vbml0b3IuYwppbmRleCA2YzY2NTE4Li45ZTQ1NTVmIDEwMDY0NAotLS0gYS9zcmMvbW9uaXRv
ci9tb25pdG9yLmMKKysrIGIvc3JjL21vbml0b3IvbW9uaXRvci5jCkBAIC0zMyw2ICszMyw5IEBA
CiAjaW5jbHVkZSA8dGNoYXIuaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJz
YWZlLmg+CisjaW5jbHVkZSA8d3RzYXBpMzIuaD4KKyNpbmNsdWRlIDxtYWxsb2MuaD4KKyNpbmNs
dWRlIDxhc3NlcnQuaD4KIAogI2luY2x1ZGUgPHZlcnNpb24uaD4KIApAQCAtNDgsNiArNTEsNyBA
QCB0eXBlZGVmIHN0cnVjdCBfTU9OSVRPUl9DT05URVhUIHsKICAgICBIQU5ETEUgICAgICAgICAg
ICAgICAgICBTdG9wRXZlbnQ7CiAgICAgSEFORExFICAgICAgICAgICAgICAgICAgUmVxdWVzdEV2
ZW50OwogICAgIEhLRVkgICAgICAgICAgICAgICAgICAgIFJlcXVlc3RLZXk7CisgICAgQk9PTCAg
ICAgICAgICAgICAgICAgICAgUmVib290UGVuZGluZzsKIH0gTU9OSVRPUl9DT05URVhULCAqUE1P
TklUT1JfQ09OVEVYVDsKIAogTU9OSVRPUl9DT05URVhUIE1vbml0b3JDb250ZXh0OwpAQCAtMjU2
LDYgKzI2MCwzMTggQEAgTW9uaXRvckN0cmxIYW5kbGVyRXgoCiAgICAgcmV0dXJuIEVSUk9SX0NB
TExfTk9UX0lNUExFTUVOVEVEOwogfQogCitzdGF0aWMgY29uc3QgQ0hBUiAqCitXVFNTdGF0ZU5h
bWUoCisgICAgSU4gIERXT1JEICAgU3RhdGUKKyAgICApCit7CisjZGVmaW5lIF9TVEFURV9OQU1F
KF9TdGF0ZSkgXAorICAgIGNhc2UgV1RTICMjIF9TdGF0ZTogXAorICAgICAgICByZXR1cm4gI19T
dGF0ZQorCisgICAgc3dpdGNoIChTdGF0ZSkgeworICAgIF9TVEFURV9OQU1FKEFjdGl2ZSk7Cisg
ICAgX1NUQVRFX05BTUUoQ29ubmVjdGVkKTsKKyAgICBfU1RBVEVfTkFNRShDb25uZWN0UXVlcnkp
OworICAgIF9TVEFURV9OQU1FKFNoYWRvdyk7CisgICAgX1NUQVRFX05BTUUoRGlzY29ubmVjdGVk
KTsKKyAgICBfU1RBVEVfTkFNRShJZGxlKTsKKyAgICBfU1RBVEVfTkFNRShMaXN0ZW4pOworICAg
IF9TVEFURV9OQU1FKFJlc2V0KTsKKyAgICBfU1RBVEVfTkFNRShEb3duKTsKKyAgICBfU1RBVEVf
TkFNRShJbml0KTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBy
ZXR1cm4gIlVOS05PV04iOworCisjdW5kZWYgIF9TVEFURV9OQU1FCit9CisKK3N0YXRpYyBWT0lE
CitEb1JlYm9vdCgKKyAgICBWT0lECisgICAgKQoreworICAgIChWT0lEKSBJbml0aWF0ZVN5c3Rl
bVNodXRkb3duRXgoTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5V
TEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFRSVUUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSFRE
Tl9SRUFTT05fTUFKT1JfT1BFUkFUSU5HU1lTVEVNIHwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFNIVEROX1JFQVNPTl9NSU5PUl9JTlNUQUxMQVRJT04gfAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hURE5fUkVBU09OX0ZMQUdfUExBTk5FRCk7Cit9
CisKK3N0YXRpYyBWT0lECitQcm9tcHRGb3JSZWJvb3QoCisgICAgSU4gUFRDSEFSICAgICAgICAg
ICBEcml2ZXJOYW1lCisgICAgKQoreworICAgIFBNT05JVE9SX0NPTlRFWFQgICAgQ29udGV4dCA9
ICZNb25pdG9yQ29udGV4dDsKKyAgICBIUkVTVUxUICAgICAgICAgICAgIFJlc3VsdDsKKyAgICBU
Q0hBUiAgICAgICAgICAgICAgIFNlcnZpY2VLZXlOYW1lW01BWF9QQVRIXTsKKyAgICBIS0VZICAg
ICAgICAgICAgICAgIFNlcnZpY2VLZXk7CisgICAgRFdPUkQgICAgICAgICAgICAgICBNYXhWYWx1
ZUxlbmd0aDsKKyAgICBEV09SRCAgICAgICAgICAgICAgIERpc3BsYXlOYW1lTGVuZ3RoOworICAg
IFBUQ0hBUiAgICAgICAgICAgICAgRGlzcGxheU5hbWU7CisgICAgRFdPUkQgICAgICAgICAgICAg
ICBUeXBlOworICAgIFRDSEFSICAgICAgICAgICAgICAgVGl0bGVbXSA9IFRFWFQoVkVORE9SX05B
TUVfU1RSKTsKKyAgICBUQ0hBUiAgICAgICAgICAgICAgIE1lc3NhZ2VbTUFYSU1VTV9CVUZGRVJf
U0laRV07CisgICAgUFdUU19TRVNTSU9OX0lORk8gICBTZXNzaW9uSW5mbzsKKyAgICBEV09SRCAg
ICAgICAgICAgICAgIENvdW50OworICAgIERXT1JEICAgICAgICAgICAgICAgSW5kZXg7CisgICAg
Qk9PTCAgICAgICAgICAgICAgICBTdWNjZXNzOworICAgIEhSRVNVTFQgICAgICAgICAgICAgRXJy
b3I7CisKKyAgICBMb2coIj09PT0+ICglcykiLCBEcml2ZXJOYW1lKTsKKworICAgIFJlc3VsdCA9
IFN0cmluZ0NiUHJpbnRmKFNlcnZpY2VLZXlOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIE1BWF9QQVRILAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFUlZJQ0VTX0tFWSAi
XFwlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRHJpdmVyTmFtZSk7CisgICAgYXNz
ZXJ0KFNVQ0NFRURFRChSZXN1bHQpKTsKKworICAgIEVycm9yID0gUmVnT3BlbktleUV4KEhLRVlf
TE9DQUxfTUFDSElORSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBTZXJ2aWNlS2V5TmFtZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAgIEtF
WV9SRUFELAorICAgICAgICAgICAgICAgICAgICAgICAgICZTZXJ2aWNlS2V5KTsKKyAgICBpZiAo
RXJyb3IgIT0gRVJST1JfU1VDQ0VTUykgeworICAgICAgICBTZXRMYXN0RXJyb3IoRXJyb3IpOwor
ICAgICAgICBnb3RvIGZhaWwxOworICAgIH0KKworICAgIEVycm9yID0gUmVnUXVlcnlJbmZvS2V5
KFNlcnZpY2VLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5V
TEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICZNYXhWYWx1ZUxlbmd0aCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIE5VTEwpOworICAgIGlmIChFcnJvciAhPSBFUlJPUl9TVUNDRVNTKSB7CisgICAgICAgIFNl
dExhc3RFcnJvcihFcnJvcik7CisgICAgICAgIGdvdG8gZmFpbDI7CisgICAgfQorCisgICAgRGlz
cGxheU5hbWVMZW5ndGggPSBNYXhWYWx1ZUxlbmd0aCArIHNpemVvZiAoVENIQVIpOworCisgICAg
RGlzcGxheU5hbWUgPSBjYWxsb2MoMSwgRGlzcGxheU5hbWVMZW5ndGgpOworICAgIGlmIChEaXNw
bGF5TmFtZSA9PSBOVUxMKQorICAgICAgICBnb3RvIGZhaWwzOworCisgICAgRXJyb3IgPSBSZWdR
dWVyeVZhbHVlRXgoU2VydmljZUtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGlz
cGxheU5hbWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJlR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExQ
QllURSlEaXNwbGF5TmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAmRGlzcGxheU5h
bWVMZW5ndGgpOworICAgIGlmIChFcnJvciAhPSBFUlJPUl9TVUNDRVNTKSB7CisgICAgICAgIFNl
dExhc3RFcnJvcihFcnJvcik7CisgICAgICAgIGdvdG8gZmFpbDQ7CisgICAgfQorCisgICAgaWYg
KFR5cGUgIT0gUkVHX1NaKSB7CisgICAgICAgIFNldExhc3RFcnJvcihFUlJPUl9CQURfRk9STUFU
KTsKKyAgICAgICAgZ290byBmYWlsNTsKKyAgICB9CisKKyAgICBSZXN1bHQgPSBTdHJpbmdDYlBy
aW50ZihNZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BWElNVU1fQlVGRkVS
X1NJWkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEVYVCgiJXMgbmVlZHMgdG8gcmVz
dGFydCB0aGUgc3lzdGVtIHRvICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJj
b21wbGV0ZSBpbnN0YWxsYXRpb24uXG4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiUHJlc3MgJ1llcycgdG8gcmVzdGFydCB0aGUgc3lzdGVtICIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJub3cgb3IgJ05vJyBpZiB5b3UgcGxhbiB0byByZXN0YXJ0ICIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0aGUgc3lzdGVtIGxhdGVyLlxuIiksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheU5hbWUpOworICAgIGFzc2VydChTVUND
RUVERUQoUmVzdWx0KSk7CisKKyAgICBTdWNjZXNzID0gV1RTRW51bWVyYXRlU2Vzc2lvbnMoV1RT
X0NVUlJFTlRfU0VSVkVSX0hBTkRMRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJlNlc3Npb25JbmZvLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAmQ291bnQpOworCisgICAgaWYgKCFTdWNjZXNzKQorICAgICAgICBn
b3RvIGZhaWw2OworCisgICAgZm9yIChJbmRleCA9IDA7IEluZGV4IDwgQ291bnQ7IEluZGV4Kysp
IHsKKyAgICAgICAgRFdPUkQgICAgICAgICAgICAgICAgICAgU2Vzc2lvbklkID0gU2Vzc2lvbklu
Zm9bSW5kZXhdLlNlc3Npb25JZDsKKyAgICAgICAgUFRDSEFSICAgICAgICAgICAgICAgICAgTmFt
ZSA9IFNlc3Npb25JbmZvW0luZGV4XS5wV2luU3RhdGlvbk5hbWU7CisgICAgICAgIFdUU19DT05O
RUNUU1RBVEVfQ0xBU1MgIFN0YXRlID0gU2Vzc2lvbkluZm9bSW5kZXhdLlN0YXRlOworICAgICAg
ICBEV09SRCAgICAgICAgICAgICAgICAgICBSZXNwb25zZTsKKworICAgICAgICBMb2coIlsldV06
ICVzIFslc10iLAorICAgICAgICAgICAgU2Vzc2lvbklkLAorICAgICAgICAgICAgTmFtZSwKKyAg
ICAgICAgICAgIFdUU1N0YXRlTmFtZShTdGF0ZSkpOworCisgICAgICAgIGlmIChTdGF0ZSAhPSBX
VFNBY3RpdmUpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBTdWNjZXNzID0gV1RT
U2VuZE1lc3NhZ2UoV1RTX0NVUlJFTlRfU0VSVkVSX0hBTkRMRSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFNlc3Npb25JZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFRpdGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mIChUaXRs
ZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mIChNZXNzYWdlKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIE1CX1lFU05PIHwgTUJfSUNPTkVYQ0xBTUFUSU9OLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICZSZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUp
OworCisgICAgICAgIGlmICghU3VjY2VzcykKKyAgICAgICAgICAgIGdvdG8gZmFpbDc7CisKKyAg
ICAgICAgQ29udGV4dC0+UmVib290UGVuZGluZyA9IFRSVUU7CisKKyAgICAgICAgaWYgKFJlc3Bv
bnNlID09IElEWUVTKQorICAgICAgICAgICAgRG9SZWJvb3QoKTsKKworICAgICAgICBicmVhazsK
KyAgICB9CisKKyAgICBXVFNGcmVlTWVtb3J5KFNlc3Npb25JbmZvKTsKKworICAgIGZyZWUoRGlz
cGxheU5hbWUpOworCisgICAgUmVnQ2xvc2VLZXkoU2VydmljZUtleSk7CisKKyAgICBMb2coIjw9
PT09Iik7CisKKyAgICByZXR1cm47CisKK2ZhaWw3OgorICAgIExvZygiZmFpbDciKTsKKworICAg
IFdUU0ZyZWVNZW1vcnkoU2Vzc2lvbkluZm8pOworCitmYWlsNjoKKyAgICBMb2coImZhaWw2Iik7
CisKK2ZhaWw1OgorICAgIExvZygiZmFpbDUiKTsKKworZmFpbDQ6CisgICAgTG9nKCJmYWlsNCIp
OworCisgICAgZnJlZShEaXNwbGF5TmFtZSk7CisKK2ZhaWwzOgorICAgIExvZygiZmFpbDMiKTsK
KworZmFpbDI6CisgICAgTG9nKCJmYWlsMiIpOworCisgICAgUmVnQ2xvc2VLZXkoU2VydmljZUtl
eSk7CisKK2ZhaWwxOgorICAgIEVycm9yID0gR2V0TGFzdEVycm9yKCk7CisKKyAgICB7CisgICAg
ICAgIFBUQ0hBUiAgTWVzc2FnZTsKKyAgICAgICAgTWVzc2FnZSA9IEdldEVycm9yTWVzc2FnZShF
cnJvcik7CisgICAgICAgIExvZygiZmFpbDEgKCVzKSIsIE1lc3NhZ2UpOworICAgICAgICBMb2Nh
bEZyZWUoTWVzc2FnZSk7CisgICAgfQorfQorCitzdGF0aWMgVk9JRAorQ2hlY2tSZWJvb3RWYWx1
ZSgKKyAgICBWT0lECisgICAgKQoreworICAgIFBNT05JVE9SX0NPTlRFWFQgICAgQ29udGV4dCA9
ICZNb25pdG9yQ29udGV4dDsKKyAgICBIUkVTVUxUICAgICAgICAgICAgIEVycm9yOworICAgIERX
T1JEICAgICAgICAgICAgICAgTWF4VmFsdWVMZW5ndGg7CisgICAgRFdPUkQgICAgICAgICAgICAg
ICBSZWJvb3RMZW5ndGg7CisgICAgUFRDSEFSICAgICAgICAgICAgICBSZWJvb3Q7CisgICAgRFdP
UkQgICAgICAgICAgICAgICBUeXBlOworCisgICAgTG9nKCI9PT09PiIpOworCisgICAgRXJyb3Ig
PSBSZWdRdWVyeUluZm9LZXkoQ29udGV4dC0+UmVxdWVzdEtleSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJk1heFZhbHVlTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEws
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgICAgaWYgKEVycm9yICE9IEVS
Uk9SX1NVQ0NFU1MpIHsKKyAgICAgICAgU2V0TGFzdEVycm9yKEVycm9yKTsKKyAgICAgICAgZ290
byBmYWlsMTsKKyAgICB9CisKKyAgICBSZWJvb3RMZW5ndGggPSBNYXhWYWx1ZUxlbmd0aCArIHNp
emVvZiAoVENIQVIpOworCisgICAgUmVib290ID0gY2FsbG9jKDEsIFJlYm9vdExlbmd0aCk7Cisg
ICAgaWYgKFJlYm9vdCA9PSBOVUxMKQorICAgICAgICBnb3RvIGZhaWwyOworCisgICAgRXJyb3Ig
PSBSZWdRdWVyeVZhbHVlRXgoQ29udGV4dC0+UmVxdWVzdEtleSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiUmVib290IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZUeXBlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChMUEJZVEUpUmVib290LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICZSZWJv
b3RMZW5ndGgpOworICAgIGlmIChFcnJvciAhPSBFUlJPUl9TVUNDRVNTKSB7CisgICAgICAgIGlm
IChFcnJvciA9PSBFUlJPUl9GSUxFX05PVF9GT1VORCkKKyAgICAgICAgICAgIGdvdG8gZG9uZTsK
KworICAgICAgICBTZXRMYXN0RXJyb3IoRXJyb3IpOworICAgICAgICBnb3RvIGZhaWwzOworICAg
IH0KKworICAgIGlmIChUeXBlICE9IFJFR19TWikgeworICAgICAgICBTZXRMYXN0RXJyb3IoRVJS
T1JfQkFEX0ZPUk1BVCk7CisgICAgICAgIGdvdG8gZmFpbDQ7CisgICAgfQorCisgICAgaWYgKCFD
b250ZXh0LT5SZWJvb3RQZW5kaW5nKQorICAgICAgICBQcm9tcHRGb3JSZWJvb3QoUmVib290KTsK
KworICAgIChWT0lEKSBSZWdEZWxldGVWYWx1ZShDb250ZXh0LT5SZXF1ZXN0S2V5LCAiUmVib290
Iik7CisKK2RvbmU6CisgICAgZnJlZShSZWJvb3QpOworCisgICAgTG9nKCI8PT09PSIpOworCisg
ICAgcmV0dXJuOworCitmYWlsNDoKKyAgICBMb2coImZhaWw0Iik7CisKK2ZhaWwzOgorICAgIExv
ZygiZmFpbDMiKTsKKworICAgIGZyZWUoUmVib290KTsKKworZmFpbDI6CisgICAgTG9nKCJmYWls
MiIpOworCitmYWlsMToKKyAgICBFcnJvciA9IEdldExhc3RFcnJvcigpOworCisgICAgeworICAg
ICAgICBQVENIQVIgIE1lc3NhZ2U7CisgICAgICAgIE1lc3NhZ2UgPSBHZXRFcnJvck1lc3NhZ2Uo
RXJyb3IpOworICAgICAgICBMb2coImZhaWwxICglcykiLCBNZXNzYWdlKTsKKyAgICAgICAgTG9j
YWxGcmVlKE1lc3NhZ2UpOworICAgIH0KK30KKwogc3RhdGljIFZPSUQKIENoZWNrUmVxdWVzdEtl
eSgKICAgICBWT0lECkBAIC0yNjYsNiArNTgyLDggQEAgQ2hlY2tSZXF1ZXN0S2V5KAogCiAgICAg
TG9nKCI9PT09PiIpOwogCisgICAgQ2hlY2tSZWJvb3RWYWx1ZSgpOworCiAgICAgRXJyb3IgPSBS
ZWdOb3RpZnlDaGFuZ2VLZXlWYWx1ZShDb250ZXh0LT5SZXF1ZXN0S2V5LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFJFR19OT1RJRllfQ0hBTkdFX0xBU1RfU0VULApAQCAtMjkwLDYgKzYwOCw3MyBA
QCBmYWlsMToKICAgICB9CiB9CiAKK3N0YXRpYyBCT09MCitBY3F1aXJlU2h1dGRvd25Qcml2aWxl
Z2UoCisgICAgVk9JRAorICAgICkKK3sKKyAgICBIQU5ETEUgICAgICAgICAgICAgIFRva2VuOwor
ICAgIFRPS0VOX1BSSVZJTEVHRVMgICAgTmV3OworICAgIEJPT0wgICAgICAgICAgICAgICAgU3Vj
Y2VzczsKKyAgICBIUkVTVUxUICAgICAgICAgICAgIEVycm9yOworCisgICAgTG9nKCI9PT09PiIp
OworCisgICAgTmV3LlByaXZpbGVnZUNvdW50ID0gMTsKKworICAgIFN1Y2Nlc3MgPSBMb29rdXBQ
cml2aWxlZ2VWYWx1ZShOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT
RV9TSFVURE9XTl9OQU1FLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmTmV3
LlByaXZpbGVnZXNbMF0uTHVpZCk7CisKKyAgICBpZiAoIVN1Y2Nlc3MpCisgICAgICAgIGdvdG8g
ZmFpbDE7CisKKyAgICBOZXcuUHJpdmlsZWdlc1swXS5BdHRyaWJ1dGVzID0gU0VfUFJJVklMRUdF
X0VOQUJMRUQ7CisKKyAgICBTdWNjZXNzID0gT3BlblByb2Nlc3NUb2tlbihHZXRDdXJyZW50UHJv
Y2VzcygpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRPS0VOX0FESlVTVF9QUklW
SUxFR0VTIHwgVE9LRU5fUVVFUlksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlRv
a2VuKTsKKworICAgIGlmICghU3VjY2VzcykKKyAgICAgICAgZ290byBmYWlsMjsKKworICAgIFN1
Y2Nlc3MgPSBBZGp1c3RUb2tlblByaXZpbGVnZXMoVG9rZW4sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBGQUxTRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICZOZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIE5VTEwpOworCisgICAgaWYgKCFTdWNjZXNzKQorICAgICAgICBnb3Rv
IGZhaWwzOworCisgICAgQ2xvc2VIYW5kbGUoVG9rZW4pOworCisgICAgTG9nKCI8PT09PSIpOwor
CisgICAgcmV0dXJuIFRSVUU7CisKK2ZhaWwzOgorICAgIExvZygiZmFpbDMiKTsKKworICAgIENs
b3NlSGFuZGxlKFRva2VuKTsKKworZmFpbDI6CisgICAgTG9nKCJmYWlsMiIpOworCitmYWlsMToK
KyAgICBFcnJvciA9IEdldExhc3RFcnJvcigpOworCisgICAgeworICAgICAgICBQVENIQVIgIE1l
c3NhZ2U7CisgICAgICAgIE1lc3NhZ2UgPSBHZXRFcnJvck1lc3NhZ2UoRXJyb3IpOworICAgICAg
ICBMb2coImZhaWwxICglcykiLCBNZXNzYWdlKTsKKyAgICAgICAgTG9jYWxGcmVlKE1lc3NhZ2Up
OworICAgIH0KKworICAgIHJldHVybiBGQUxTRTsKK30KKwogVk9JRCBXSU5BUEkKIE1vbml0b3JN
YWluKAogICAgIF9Jbl8gICAgRFdPUkQgICAgICAgYXJnYywKQEAgLTMwNSwxNiArNjkwLDIxIEBA
IE1vbml0b3JNYWluKAogCiAgICAgTG9nKCI9PT09PiIpOwogCisgICAgU3VjY2VzcyA9IEFjcXVp
cmVTaHV0ZG93blByaXZpbGVnZSgpOworCisgICAgaWYgKCFTdWNjZXNzKQorICAgICAgICBnb3Rv
IGZhaWwxOworCiAgICAgQ29udGV4dC0+U2VydmljZSA9IFJlZ2lzdGVyU2VydmljZUN0cmxIYW5k
bGVyRXgoTU9OSVRPUl9OQU1FLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIE1vbml0b3JDdHJsSGFuZGxlckV4LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwogICAgIGlmIChDb250ZXh0
LT5TZXJ2aWNlID09IE5VTEwpCi0gICAgICAgIGdvdG8gZmFpbDE7CisgICAgICAgIGdvdG8gZmFp
bDI7CiAKICAgICBDb250ZXh0LT5FdmVudExvZyA9IFJlZ2lzdGVyRXZlbnRTb3VyY2UoTlVMTCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTU9OSVRPUl9OQU1F
KTsKICAgICBpZiAoQ29udGV4dC0+RXZlbnRMb2cgPT0gTlVMTCkKLSAgICAgICAgZ290byBmYWls
MjsKKyAgICAgICAgZ290byBmYWlsMzsKIAogICAgIENvbnRleHQtPlN0YXR1cy5kd1NlcnZpY2VU
eXBlID0gU0VSVklDRV9XSU4zMl9PV05fUFJPQ0VTUzsKICAgICBDb250ZXh0LT5TdGF0dXMuZHdT
ZXJ2aWNlU3BlY2lmaWNFeGl0Q29kZSA9IDA7CkBAIC0zMjcsNyArNzE3LDcgQEAgTW9uaXRvck1h
aW4oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CiAKICAgICBp
ZiAoQ29udGV4dC0+U3RvcEV2ZW50ID09IE5VTEwpCi0gICAgICAgIGdvdG8gZmFpbDM7CisgICAg
ICAgIGdvdG8gZmFpbDQ7CiAKICAgICBDb250ZXh0LT5SZXF1ZXN0RXZlbnQgPSBDcmVhdGVFdmVu
dChOVUxMLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUsCkBA
IC0zMzUsNyArNzI1LDcgQEAgTW9uaXRvck1haW4oCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTlVMTCk7CiAKICAgICBpZiAoQ29udGV4dC0+UmVxdWVzdEV2ZW50ID09
IE5VTEwpCi0gICAgICAgIGdvdG8gZmFpbDQ7CisgICAgICAgIGdvdG8gZmFpbDU7CiAKICAgICBF
cnJvciA9IFJlZ09wZW5LZXlFeChIS0VZX0xPQ0FMX01BQ0hJTkUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgUkVRVUVTVF9LRVksCkBAIC0zNDQsNyArNzM0LDcgQEAgTW9uaXRvck1haW4oCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgJkNvbnRleHQtPlJlcXVlc3RLZXkpOwogCiAgICAgaWYg
KEVycm9yICE9IEVSUk9SX1NVQ0NFU1MpCi0gICAgICAgIGdvdG8gZmFpbDU7CisgICAgICAgIGdv
dG8gZmFpbDY7CiAKICAgICBTZXRFdmVudChDb250ZXh0LT5SZXF1ZXN0RXZlbnQpOwogCkBAIC0z
OTIsMjMgKzc4MiwyNiBAQCBkb25lOgogCiAgICAgcmV0dXJuOwogCi1mYWlsNToKLSAgICBMb2co
ImZhaWw1Iik7CitmYWlsNjoKKyAgICBMb2coImZhaWw2Iik7CiAKICAgICBSZXBvcnRTdGF0dXMo
U0VSVklDRV9TVE9QUEVELCBHZXRMYXN0RXJyb3IoKSwgMCk7CiAKICAgICBDbG9zZUhhbmRsZShD
b250ZXh0LT5SZXF1ZXN0RXZlbnQpOwogCitmYWlsNToKKyAgICBMb2coImZhaWw1Iik7CisKKyAg
ICBDbG9zZUhhbmRsZShDb250ZXh0LT5TdG9wRXZlbnQpOworCiBmYWlsNDoKICAgICBMb2coImZh
aWw0Iik7CiAKLSAgICBDbG9zZUhhbmRsZShDb250ZXh0LT5TdG9wRXZlbnQpOworICAgIChWT0lE
KSBEZXJlZ2lzdGVyRXZlbnRTb3VyY2UoQ29udGV4dC0+RXZlbnRMb2cpOwogCiBmYWlsMzoKICAg
ICBMb2coImZhaWwzIik7CiAKLSAgICAoVk9JRCkgRGVyZWdpc3RlckV2ZW50U291cmNlKENvbnRl
eHQtPkV2ZW50TG9nKTsKLQogZmFpbDI6CiAgICAgTG9nKCJmYWlsMiIpOwogCi0tIAoyLjEuMQoK
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1k
ZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBz
Oi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1k
ZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 09:40:43 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 09:40:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQWwl-0003Jq-01; Fri, 22 Jul 2016 09:40:43 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bQWwj-0003Iz-VS
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 09:40:42 +0000
Received: from [193.109.254.147] by server-14.bemta-14.messagelabs.com id
 00/A7-17024-91AE1975; Fri, 22 Jul 2016 09:40:41 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrBIsWRWlGSWpSXmKPExsXiVRvkoivxamK
 4wfWpShZ/Fic6MHoc/nCFJYAxijUzLym/IoE1o/e9ZsGk9Irbze9ZGhh/uXUxcnEICcxilOh5
 9p0VxGEReMki8aBzPUsXIyeHhEA/q8SFxdoQdozEvqeLoOIVEtentbOC2EICihLN1y6wQ0xay
 SQx8cNpRpAEm4C6xO33i9khGuwkPs26CWaLCKhKXFt+jA3EZhbQkni4YR5YvbCAt8TzA2eA4h
 xAV6hK/JzkDxLmFXCXeN/3mRVijJzE3smrWUBKOAU8JJqWKkCc4C4x499m9gmMggsYGVYxahS
 nFpWlFukaWuglFWWmZ5TkJmbm6BoamujlphYXJ6an5iQmFesl5+duYgSGWj0DA+MOxiPbPQ8x
 SnIwKYny/rg6MVyILyk/pTIjsTgjvqg0J7X4EKMMB4eSBO+dF0A5waLU9NSKtMwcYNDDpCU4e
 JREeJeDpHmLCxJzizPTIVKnGHU5tky9t5ZJiCUvPy9VSpy3GaRIAKQoozQPbgQsAi8xykoJ8z
 IyMDAI8RSkFuVmlqDKv2IU52BUEua9CjKFJzOvBG7TK6AjmICOmCPQD3JESSJCSqqBUSLQtEs
 q4PikvPrcLfna2WIbbaNDJAJUT++cF2B46+bqd7dmGB9/drbht8+N2EerBCqUdy/M2LWqmsX0
 4/s101/0KO3kkpRQXufvciZ5SerxX7yOajYSU7SZe6/GfNs/wUsjmVeyUL79Y56A14oVGoXJZ
 1K6aq72SUm/etazKt6U78ziTdtklFiKMxINtZiLihMBM8uv3LsCAAA=
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-12.tower-27.messagelabs.com!1469180440!54398987!1
X-Originating-IP: [74.125.82.68]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 38831 invoked from network); 22 Jul 2016 09:40:40 -0000
Received: from mail-wm0-f68.google.com (HELO mail-wm0-f68.google.com)
 (74.125.82.68)
 by server-12.tower-27.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 22 Jul 2016 09:40:40 -0000
Received: by mail-wm0-f68.google.com with SMTP id x83so5405459wma.3
 for <win-pv-devel@lists.xenproject.org>; Fri, 22 Jul 2016 02:40:40 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id:in-reply-to:references;
 bh=VNIKwFxWL8Wo4/wsiiQF6jTqQ3lga5k06k0laRP3YqM=;
 b=RfJbT1OqTDAK24SzrD8fNMgEN2KM9udN9xkyHlH4luwc2xGlCelH0OzHSZsxCgTDcr
 WZf1omGSZlQwSCxzoqz7tjVE/B3+81EYlm6p/UAAm38zWQHCUAWc+e6R/KOG3DMjtfoZ
 C+iFprBd3wR9svXTjmHeO1wgAtqEmoIHCF696fRKx+FKlAVxyNTKzvBKY4aPRdWFPeCI
 JEPMMYrXjGnj6iB8w2xD+AP8OuzdpptYbRY5t1hR6qTk+A0E2bV5o8kNKe/sHjFYDFpZ
 orhtGf5DksQYIiWBcswKTYPr8G1KiaUcj5rwBrfJuop8ORmHnUVZjpSPnXpuRuYhxipB
 4MjA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
 :references;
 bh=VNIKwFxWL8Wo4/wsiiQF6jTqQ3lga5k06k0laRP3YqM=;
 b=FDLiZVKPVhuSkhphrEQNGFqcV9iLrzXsO2WFyuIBniJ2hdF6OebF2RCUG7ffExT1Nr
 29DHiC35xjX5le/OdjHWg72W9S0z8jNl0L52WnuYSKdN1QtX8YxkjZbA81wwtqumT22b
 4V+mWMrDnWv+62+oJ2qAUdAcGxw39nLBE9i/VGQJhqF/gMSnhJDIeV+OjWyLojD4RREU
 Z1nnaLbVuctzKdif4UDXnjG+k9wRvaQ8a+HUrZGT+S1Tn+Uoul1zb62sTcyk0drgkW/9
 ZAHtN/2oJdLGIRKtE17QbWafuK851JTOrGtkcbxfG34zJxrk02DGtNMXNf8AA6t9MdaT
 fSww==
X-Gm-Message-State: AEkoousf9QNImHOtBU+ie03Eil05TAUi6/wJfOhw8fej7YMvYwI1vCCHRXQxWpDRNqLIVA==
X-Received: by 10.194.123.35 with SMTP id lx3mr40123wjb.126.1469180439619;
 Fri, 22 Jul 2016 02:40:39 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id g184sm11640847wme.15.2016.07.22.02.40.38
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 22 Jul 2016 02:40:39 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Fri, 22 Jul 2016 10:40:22 +0100
Message-Id: <1469180422-15112-4-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1469180422-15112-1-git-send-email-paul.durrant@citrix.com>
References: <1469180422-15112-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 4/4] Use new service to request reboot rather
	than SetupAPI
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhpcyBtZWFucyBtb3JlIGNvZGUgY2FuIGJlIHJlbW92ZWQgZnJvbSB0aGUgY28taW5zdGFsbGVy
IGFuZCB3ZSBnZXQgYQptb3JlIG1lYW5pbmdmdWwgbWVzc2FnZSBkaXNwbGF5ZWQgdG8gdGhlIHVz
ZXIuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29t
PgotLS0KIHNyYy9jb2luc3QvY29pbnN0LmMgfCAxNDQgKystLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogc3JjL3hlbi9kcml2ZXIuYyAgICB8ICA4OCAr
KysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogc3JjL3hlbmJ1cy5pbmYgICAgICB8ICAg
MiArLQogc3JjL3hlbmJ1cy9kcml2ZXIuYyB8IDEwMiArKysrKysrKysrKysrKysrKysrLS0tLS0t
LS0tLS0tLS0tLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDcwIGluc2VydGlvbnMoKyksIDI2NiBkZWxl
dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvY29pbnN0L2NvaW5zdC5jIGIvc3JjL2NvaW5zdC9j
b2luc3QuYwppbmRleCA2NjM1OWUwLi4xMjQxYWQxIDEwMDY0NAotLS0gYS9zcmMvY29pbnN0L2Nv
aW5zdC5jCisrKyBiL3NyYy9jb2luc3QvY29pbnN0LmMKQEAgLTEyOTAsMTMzICsxMjkwLDYgQEAg
ZmFpbDE6CiB9CiAKIHN0YXRpYyBCT09MRUFOCi1DaGVja1N0YXR1cygKLSAgICBJTiAgUFRDSEFS
ICAgICAgRHJpdmVyTmFtZSwKLSAgICBPVVQgUEJPT0xFQU4gICAgTmVlZFJlYm9vdAotICAgICkK
LXsKLSAgICBUQ0hBUiAgICAgICAgICAgU3RhdHVzS2V5TmFtZVtNQVhfUEFUSF07Ci0gICAgSEtF
WSAgICAgICAgICAgIFN0YXR1c0tleTsKLSAgICBIUkVTVUxUICAgICAgICAgUmVzdWx0OwotICAg
IEhSRVNVTFQgICAgICAgICBFcnJvcjsKLSAgICBEV09SRCAgICAgICAgICAgVmFsdWVMZW5ndGg7
Ci0gICAgRFdPUkQgICAgICAgICAgIFZhbHVlOwotICAgIERXT1JEICAgICAgICAgICBUeXBlOwot
Ci0gICAgUmVzdWx0ID0gU3RyaW5nQ2JQcmludGYoU3RhdHVzS2V5TmFtZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBNQVhfUEFUSCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBT
RVJWSUNFU19LRVkgIlxcJXNcXFN0YXR1cyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
RHJpdmVyTmFtZSk7Ci0gICAgYXNzZXJ0KFNVQ0NFRURFRChSZXN1bHQpKTsKLQotICAgIEVycm9y
ID0gUmVnT3BlbktleUV4KEhLRVlfTE9DQUxfTUFDSElORSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICBTdGF0dXNLZXlOYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgIDAsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgS0VZX1JFQUQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgJlN0
YXR1c0tleSk7Ci0gICAgaWYgKEVycm9yICE9IEVSUk9SX1NVQ0NFU1MpIHsKLSAgICAgICAgU2V0
TGFzdEVycm9yKEVycm9yKTsKLSAgICAgICAgZ290byBmYWlsMTsKLSAgICB9Ci0KLSAgICBWYWx1
ZUxlbmd0aCA9IHNpemVvZiAoVmFsdWUpOwotCi0gICAgRXJyb3IgPSBSZWdRdWVyeVZhbHVlRXgo
U3RhdHVzS2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOZWVkUmVib290IiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICZUeXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMUEJZVEUpJlZhbHVlLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZWYWx1ZUxlbmd0aCk7Ci0gICAgaWYgKEVycm9y
ICE9IEVSUk9SX1NVQ0NFU1MpIHsKLSAgICAgICAgaWYgKEVycm9yID09IEVSUk9SX0ZJTEVfTk9U
X0ZPVU5EKSB7Ci0gICAgICAgICAgICBUeXBlID0gUkVHX0RXT1JEOwotICAgICAgICAgICAgVmFs
dWUgPSAwOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgU2V0TGFzdEVycm9yKEVycm9y
KTsKLSAgICAgICAgICAgIGdvdG8gZmFpbDI7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAo
VHlwZSAhPSBSRUdfRFdPUkQpIHsKLSAgICAgICAgU2V0TGFzdEVycm9yKEVSUk9SX0JBRF9GT1JN
QVQpOwotICAgICAgICBnb3RvIGZhaWwzOwotICAgIH0KLQotICAgICpOZWVkUmVib290ID0gKFZh
bHVlICE9IDApID8gVFJVRSA6IEZBTFNFOwotCi0gICAgaWYgKCpOZWVkUmVib290KQotICAgICAg
ICBMb2coIk5lZWRSZWJvb3QiKTsKLQotICAgIFJlZ0Nsb3NlS2V5KFN0YXR1c0tleSk7Ci0KLSAg
ICByZXR1cm4gVFJVRTsKLQotZmFpbDM6Ci0gICAgTG9nKCJmYWlsMyIpOwotCi1mYWlsMjoKLSAg
ICBMb2coImZhaWwyIik7Ci0KLSAgICBSZWdDbG9zZUtleShTdGF0dXNLZXkpOwotCi1mYWlsMToK
LSAgICBFcnJvciA9IEdldExhc3RFcnJvcigpOwotCi0gICAgewotICAgICAgICBQVENIQVIgIE1l
c3NhZ2U7Ci0gICAgICAgIE1lc3NhZ2UgPSBHZXRFcnJvck1lc3NhZ2UoRXJyb3IpOwotICAgICAg
ICBMb2coImZhaWwxICglcykiLCBNZXNzYWdlKTsKLSAgICAgICAgTG9jYWxGcmVlKE1lc3NhZ2Up
OwotICAgIH0KLQotICAgIHJldHVybiBGQUxTRTsKLX0KLQotc3RhdGljIEJPT0xFQU4KLVJlcXVl
c3RSZWJvb3QoCi0gICAgSU4gIEhERVZJTkZPICAgICAgICAgICAgRGV2aWNlSW5mb1NldCwKLSAg
ICBJTiAgUFNQX0RFVklORk9fREFUQSAgICBEZXZpY2VJbmZvRGF0YQotICAgICkKLXsKLSAgICBT
UF9ERVZJTlNUQUxMX1BBUkFNUyAgICBEZXZpY2VJbnN0YWxsUGFyYW1zOwotICAgIEhSRVNVTFQg
ICAgICAgICAgICAgICAgIEVycm9yOwotCi0gICAgRGV2aWNlSW5zdGFsbFBhcmFtcy5jYlNpemUg
PSBzaXplb2YgKERldmljZUluc3RhbGxQYXJhbXMpOwotCi0gICAgaWYgKCFTZXR1cERpR2V0RGV2
aWNlSW5zdGFsbFBhcmFtcyhEZXZpY2VJbmZvU2V0LAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRGV2aWNlSW5mb0RhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAmRGV2aWNlSW5zdGFsbFBhcmFtcykpCi0gICAgICAgIGdvdG8gZmFpbDE7
Ci0KLSAgICBEZXZpY2VJbnN0YWxsUGFyYW1zLkZsYWdzIHw9IERJX05FRURSRUJPT1Q7Ci0KLSAg
ICBMb2coIkZsYWdzID0gJTA4eCIsIERldmljZUluc3RhbGxQYXJhbXMuRmxhZ3MpOwotCi0gICAg
aWYgKCFTZXR1cERpU2V0RGV2aWNlSW5zdGFsbFBhcmFtcyhEZXZpY2VJbmZvU2V0LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGV2aWNlSW5mb0RhdGEsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmRGV2aWNlSW5zdGFsbFBhcmFtcykpCi0g
ICAgICAgIGdvdG8gZmFpbDI7Ci0KLSAgICByZXR1cm4gVFJVRTsKLQotZmFpbDI6Ci0gICAgTG9n
KCJmYWlsMiIpOwotCi1mYWlsMToKLSAgICBFcnJvciA9IEdldExhc3RFcnJvcigpOwotCi0gICAg
ewotICAgICAgICBQVENIQVIgIE1lc3NhZ2U7Ci0KLSAgICAgICAgTWVzc2FnZSA9IEdldEVycm9y
TWVzc2FnZShFcnJvcik7Ci0gICAgICAgIExvZygiZmFpbDEgKCVzKSIsIE1lc3NhZ2UpOwotICAg
ICAgICBMb2NhbEZyZWUoTWVzc2FnZSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIEZBTFNFOwotfQot
Ci1zdGF0aWMgQk9PTEVBTgogQ2xlYXJVbnBsdWdSZXF1ZXN0KAogICAgIElOICBQVENIQVIgICAg
ICBDbGFzc05hbWUKICAgICApCkBAIC0xNjE1LDIyICsxNDg4LDExIEBAIERpZkluc3RhbGxQb3N0
UHJvY2VzcygKICAgICBJTiAgUENPSU5TVEFMTEVSX0NPTlRFWFRfREFUQSAgIENvbnRleHQKICAg
ICApCiB7Ci0gICAgQk9PTEVBTiAgICAgICAgICAgICAgICAgICAgICAgICBOZWVkUmVib290Owot
CisgICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihEZXZpY2VJbmZvU2V0KTsKKyAgICBVTlJFRkVS
RU5DRURfUEFSQU1FVEVSKERldmljZUluZm9EYXRhKTsKICAgICBVTlJFRkVSRU5DRURfUEFSQU1F
VEVSKENvbnRleHQpOwogCi0gICAgTG9nKCI9PT09PiIpOwotCi0gICAgTmVlZFJlYm9vdCA9IEZB
TFNFOwotCi0gICAgKFZPSUQpIENoZWNrU3RhdHVzKCJYRU4iLCAmTmVlZFJlYm9vdCk7Ci0gICAg
aWYgKCFOZWVkUmVib290KQotICAgICAgICAoVk9JRCkgQ2hlY2tTdGF0dXMoIlhFTkJVUyIsICZO
ZWVkUmVib290KTsKLQotICAgIGlmIChOZWVkUmVib290KQotICAgICAgICAoVk9JRCkgUmVxdWVz
dFJlYm9vdChEZXZpY2VJbmZvU2V0LCBEZXZpY2VJbmZvRGF0YSk7Ci0KLSAgICBMb2coIjw9PT09
Iik7CisgICAgTG9nKCI8PT09PiIpOwogCiAgICAgcmV0dXJuIE5PX0VSUk9SOwogfQpkaWZmIC0t
Z2l0IGEvc3JjL3hlbi9kcml2ZXIuYyBiL3NyYy94ZW4vZHJpdmVyLmMKaW5kZXggNjExOWM3Yy4u
ZjgzY2IxMyAxMDA2NDQKLS0tIGEvc3JjL3hlbi9kcml2ZXIuYworKysgYi9zcmMveGVuL2RyaXZl
ci5jCkBAIC01Myw3ICs1Myw2IEBAIHR5cGVkZWYgc3RydWN0IF9YRU5fRFJJVkVSIHsKICAgICBQ
TE9HX0RJU1BPU0lUSU9OICAgIFRyYWNlRGlzcG9zaXRpb247CiAgICAgUExPR19ESVNQT1NJVElP
TiAgICBJbmZvRGlzcG9zaXRpb247CiAgICAgSEFORExFICAgICAgICAgICAgICBVbnBsdWdLZXk7
Ci0gICAgSEFORExFICAgICAgICAgICAgICBTdGF0dXNLZXk7CiB9IFhFTl9EUklWRVIsICpQWEVO
X0RSSVZFUjsKIAogc3RhdGljIFhFTl9EUklWRVIgICBEcml2ZXI7CkBAIC05Miw0NCArOTEsNiBA
QCBEcml2ZXJHZXRVbnBsdWdLZXkoCiAgICAgcmV0dXJuIF9fRHJpdmVyR2V0VW5wbHVnS2V5KCk7
CiB9CiAKLXN0YXRpYyBGT1JDRUlOTElORSBWT0lECi1fX0RyaXZlclNldFN0YXR1c0tleSgKLSAg
ICBJTiAgSEFORExFICBLZXkKLSAgICApCi17Ci0gICAgRHJpdmVyLlN0YXR1c0tleSA9IEtleTsK
LX0KLQotc3RhdGljIEZPUkNFSU5MSU5FIEhBTkRMRQotX19Ecml2ZXJHZXRTdGF0dXNLZXkoCi0g
ICAgVk9JRAotICAgICkKLXsKLSAgICByZXR1cm4gRHJpdmVyLlN0YXR1c0tleTsKLX0KLQotSEFO
RExFCi1Ecml2ZXJHZXRTdGF0dXNLZXkoCi0gICAgVk9JRAotICAgICkKLXsKLSAgICByZXR1cm4g
X19Ecml2ZXJHZXRTdGF0dXNLZXkoKTsKLX0KLQotc3RhdGljIEZPUkNFSU5MSU5FIFZPSUQKLV9f
RHJpdmVyUmVxdWVzdFJlYm9vdCgKLSAgICBWT0lECi0gICAgKQotewotICAgIEluZm8oIjw9PT0+
XG4iKTsKLQotICAgIEFTU0VSVDNVKEtlR2V0Q3VycmVudElycWwoKSwgPT0sIFBBU1NJVkVfTEVW
RUwpOwotCi0gICAgKFZPSUQpIFJlZ2lzdHJ5VXBkYXRlRHdvcmRWYWx1ZShfX0RyaXZlckdldFN0
YXR1c0tleSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5lZWRSZWJv
b3QiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSk7Ci19Ci0KIFhFTl9B
UEkKIE5UU1RBVFVTCiBYZW5Ub3VjaCgKQEAgLTE3Myw3ICsxMzQsNiBAQCBkb25lOgogCiBmYWls
MToKICAgICBJbmZvKCJNT0RVTEUgJyVzJyBOT1QgQ09NUEFUSUJMRSAoUkVCT09UIFJFUVVJUkVE
KVxuIiwgTmFtZSk7Ci0gICAgX19Ecml2ZXJSZXF1ZXN0UmVib290KCk7CiAKICAgICByZXR1cm4g
U1RBVFVTX0lOQ09NUEFUSUJMRV9EUklWRVJfQkxPQ0tFRDsKIH0KQEAgLTIwMCw3ICsxNjAsNiBA
QCBEbGxJbml0aWFsaXplKAogewogICAgIEhBTkRMRSAgICAgICAgICAgICAgU2VydmljZUtleTsK
ICAgICBIQU5ETEUgICAgICAgICAgICAgIFVucGx1Z0tleTsKLSAgICBIQU5ETEUgICAgICAgICAg
ICAgIFN0YXR1c0tleTsKICAgICBOVFNUQVRVUyAgICAgICAgICAgIHN0YXR1czsKIAogICAgIEV4
SW5pdGlhbGl6ZURyaXZlclJ1bnRpbWUoRHJ2UnRQb29sTnhPcHRJbik7CkBAIC0yNTksNDIgKzIx
OCwzMyBAQCBEbGxJbml0aWFsaXplKAogCiAgICAgX19Ecml2ZXJTZXRVbnBsdWdLZXkoVW5wbHVn
S2V5KTsKIAotICAgIHN0YXR1cyA9IFJlZ2lzdHJ5Q3JlYXRlU3ViS2V5KFNlcnZpY2VLZXksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN0YXR1cyIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUkVHX09QVElPTl9WT0xBVElMRSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAmU3RhdHVzS2V5KTsKLSAgICBpZiAoIU5UX1NVQ0NFU1Moc3Rh
dHVzKSkKLSAgICAgICAgZ290byBmYWlsNTsKLQotICAgIF9fRHJpdmVyU2V0U3RhdHVzS2V5KFN0
YXR1c0tleSk7Ci0KICAgICBzdGF0dXMgPSBBY3BpSW5pdGlhbGl6ZSgpOwogICAgIGlmICghTlRf
U1VDQ0VTUyhzdGF0dXMpKQotICAgICAgICBnb3RvIGZhaWw2OworICAgICAgICBnb3RvIGZhaWw1
OwogCiAgICAgc3RhdHVzID0gU3lzdGVtSW5pdGlhbGl6ZSgpOwogICAgIGlmICghTlRfU1VDQ0VT
UyhzdGF0dXMpKQotICAgICAgICBnb3RvIGZhaWw3OworICAgICAgICBnb3RvIGZhaWw2OwogCiAg
ICAgc3RhdHVzID0gSHlwZXJjYWxsSW5pdGlhbGl6ZSgpOwogICAgIGlmICghTlRfU1VDQ0VTUyhz
dGF0dXMpKQotICAgICAgICBnb3RvIGZhaWw4OworICAgICAgICBnb3RvIGZhaWw3OwogCiAgICAg
c3RhdHVzID0gQnVnQ2hlY2tJbml0aWFsaXplKCk7CiAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1
cykpCi0gICAgICAgIGdvdG8gZmFpbDk7CisgICAgICAgIGdvdG8gZmFpbDg7CiAKICAgICBzdGF0
dXMgPSBNb2R1bGVJbml0aWFsaXplKCk7CiAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCi0g
ICAgICAgIGdvdG8gZmFpbDEwOworICAgICAgICBnb3RvIGZhaWw5OwogCiAgICAgc3RhdHVzID0g
UHJvY2Vzc0luaXRpYWxpemUoKTsKICAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKLSAgICAg
ICAgZ290byBmYWlsMTE7CisgICAgICAgIGdvdG8gZmFpbDEwOwogCiAgICAgc3RhdHVzID0gVW5w
bHVnSW5pdGlhbGl6ZSgpOwogICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQotICAgICAgICBn
b3RvIGZhaWwxMjsKKyAgICAgICAgZ290byBmYWlsMTE7CiAKICAgICBSZWdpc3RyeUNsb3NlS2V5
KFNlcnZpY2VLZXkpOwogCkBAIC0zMDIsNDEgKzI1MiwzNSBAQCBEbGxJbml0aWFsaXplKAogCiAg
ICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOwogCi1mYWlsMTI6Ci0gICAgRXJyb3IoImZhaWwxMlxu
Iik7Ci0KLSAgICBQcm9jZXNzVGVhcmRvd24oKTsKLQogZmFpbDExOgogICAgIEVycm9yKCJmYWls
MTFcbiIpOwogCi0gICAgTW9kdWxlVGVhcmRvd24oKTsKKyAgICBQcm9jZXNzVGVhcmRvd24oKTsK
IAogZmFpbDEwOgogICAgIEVycm9yKCJmYWlsMTBcbiIpOwogCi0gICAgQnVnQ2hlY2tUZWFyZG93
bigpOworICAgIE1vZHVsZVRlYXJkb3duKCk7CiAKIGZhaWw5OgogICAgIEVycm9yKCJmYWlsOVxu
Iik7CiAKLSAgICBIeXBlcmNhbGxUZWFyZG93bigpOworICAgIEJ1Z0NoZWNrVGVhcmRvd24oKTsK
IAogZmFpbDg6CiAgICAgRXJyb3IoImZhaWw4XG4iKTsKIAotICAgIFN5c3RlbVRlYXJkb3duKCk7
CisgICAgSHlwZXJjYWxsVGVhcmRvd24oKTsKIAogZmFpbDc6CiAgICAgRXJyb3IoImZhaWw3XG4i
KTsKIAotICAgIEFjcGlUZWFyZG93bigpOworICAgIFN5c3RlbVRlYXJkb3duKCk7CiAKIGZhaWw2
OgogICAgIEVycm9yKCJmYWlsNlxuIik7CiAKLSAgICBSZWdpc3RyeUNsb3NlS2V5KFN0YXR1c0tl
eSk7Ci0gICAgX19Ecml2ZXJTZXRTdGF0dXNLZXkoTlVMTCk7CisgICAgQWNwaVRlYXJkb3duKCk7
CiAKIGZhaWw1OgogICAgIEVycm9yKCJmYWlsNVxuIik7CkBAIC0zNzgsNyArMzIyLDYgQEAgRGxs
VW5sb2FkKAogICAgIFZPSUQKICAgICApCiB7Ci0gICAgSEFORExFICBTdGF0dXNLZXk7CiAgICAg
SEFORExFICBVbnBsdWdLZXk7CiAKICAgICBUcmFjZSgiPT09PT5cbiIpOwpAQCAtMzk1LDExICsz
MzgsNiBAQCBEbGxVbmxvYWQoCiAKICAgICBTeXN0ZW1UZWFyZG93bigpOwogCi0gICAgU3RhdHVz
S2V5ID0gX19Ecml2ZXJHZXRTdGF0dXNLZXkoKTsKLQotICAgIFJlZ2lzdHJ5Q2xvc2VLZXkoU3Rh
dHVzS2V5KTsKLSAgICBfX0RyaXZlclNldFN0YXR1c0tleShOVUxMKTsKLQogICAgIFVucGx1Z0tl
eSA9IF9fRHJpdmVyR2V0VW5wbHVnS2V5KCk7CiAKICAgICBSZWdpc3RyeUNsb3NlS2V5KFVucGx1
Z0tleSk7CmRpZmYgLS1naXQgYS9zcmMveGVuYnVzLmluZiBiL3NyYy94ZW5idXMuaW5mCmluZGV4
IGRkYzFjNDUuLjAzYTNkNmIgMTAwNjQ0Ci0tLSBhL3NyYy94ZW5idXMuaW5mCisrKyBiL3NyYy94
ZW5idXMuaW5mCkBAIC04MSw5ICs4MSw5IEBAIENvcHlGaWxlcz1YZW5CdXNfQ29weUZpbGVzCiBD
b3B5RmlsZXM9TW9uaXRvcl9Db3B5RmlsZXMKIAogW1hlbkJ1c19JbnN0LlNlcnZpY2VzXQorQWRk
U2VydmljZT14ZW5idXNfbW9uaXRvciwlU1BTVkNTSU5TVF9TVEFSVFNFUlZJQ0UlLE1vbml0b3Jf
U2VydmljZSxNb25pdG9yX0V2ZW50TG9nCiBBZGRTZXJ2aWNlPXhlbmJ1cywlU1BTVkNJTlNUX0FT
U09DU0VSVklDRSUsWGVuQnVzX1NlcnZpY2UKIEFkZFNlcnZpY2U9eGVuZmlsdCwsWGVuRmlsdF9T
ZXJ2aWNlLAotQWRkU2VydmljZT14ZW5idXNfbW9uaXRvciwlU1BTVkNTSU5TVF9TVEFSVFNFUlZJ
Q0UlLE1vbml0b3JfU2VydmljZSxNb25pdG9yX0V2ZW50TG9nCiAKIFtYZW5CdXNfU2VydmljZV0g
CiBEaXNwbGF5TmFtZT0lWGVuQnVzRGVzYyUKZGlmZiAtLWdpdCBhL3NyYy94ZW5idXMvZHJpdmVy
LmMgYi9zcmMveGVuYnVzL2RyaXZlci5jCmluZGV4IDI0ZjA2ZjUuLjMxMzg4YmUgMTAwNjQ0Ci0t
LSBhL3NyYy94ZW5idXMvZHJpdmVyLmMKKysrIGIvc3JjL3hlbmJ1cy9kcml2ZXIuYwpAQCAtNDgs
NyArNDgsNiBAQAogdHlwZWRlZiBzdHJ1Y3QgX1hFTkJVU19EUklWRVIgewogICAgIFBEUklWRVJf
T0JKRUNUICAgICAgRHJpdmVyT2JqZWN0OwogICAgIEhBTkRMRSAgICAgICAgICAgICAgUGFyYW1l
dGVyc0tleTsKLSAgICBIQU5ETEUgICAgICAgICAgICAgIFN0YXR1c0tleTsKIAogICAgIE1VVEVY
ICAgICAgICAgICAgICAgTXV0ZXg7CiAgICAgTElTVF9FTlRSWSAgICAgICAgICBMaXN0OwpAQCAt
MTIzLDM0ICsxMjIsNTggQEAgRHJpdmVyR2V0UGFyYW1ldGVyc0tleSgKICAgICByZXR1cm4gX19E
cml2ZXJHZXRQYXJhbWV0ZXJzS2V5KCk7CiB9CiAKLXN0YXRpYyBGT1JDRUlOTElORSBWT0lECi1f
X0RyaXZlclNldFN0YXR1c0tleSgKLSAgICBJTiAgSEFORExFICBLZXkKLSAgICApCi17Ci0gICAg
RHJpdmVyLlN0YXR1c0tleSA9IEtleTsKLX0KKyNkZWZpbmUgU0VSVklDRVNfUEFUSCAiXFxSZWdp
c3RyeVxcTWFjaGluZVxcU1lTVEVNXFxDdXJyZW50Q29udHJvbFNldFxcU2VydmljZXMiCiAKLXN0
YXRpYyBGT1JDRUlOTElORSBIQU5ETEUKLV9fRHJpdmVyR2V0U3RhdHVzS2V5KAotICAgIFZPSUQK
LSAgICApCi17Ci0gICAgcmV0dXJuIERyaXZlci5TdGF0dXNLZXk7Ci19CisjZGVmaW5lIFNFUlZJ
Q0VfS0VZKF9OYW1lKSBcCisgICAgICAgIFNFUlZJQ0VTX1BBVEggIyMgIlxcIiAjIyAjX05hbWUK
IAotVk9JRAotRHJpdmVyUmVxdWVzdFJlYm9vdCgKKyNkZWZpbmUgUkVRVUVTVF9LRVkgXAorICAg
ICAgICBTRVJWSUNFX0tFWShYRU5CVVNfTU9OSVRPUikgIyMgIlxcUmVxdWVzdCIKKworc3RhdGlj
IEZPUkNFSU5MSU5FIFZPSUQKK19fRHJpdmVyUmVxdWVzdFJlYm9vdCgKICAgICBWT0lECiAgICAg
KQogewotICAgIEluZm8oIjw9PT0+XG4iKTsKKyAgICBIQU5ETEUgICAgICBSZXF1ZXN0S2V5Owor
ICAgIEFOU0lfU1RSSU5HIEFuc2lbMl07CisgICAgTlRTVEFUVVMgICAgc3RhdHVzOworCisgICAg
SW5mbygiPT09PT5cbiIpOwogCiAgICAgQVNTRVJUM1UoS2VHZXRDdXJyZW50SXJxbCgpLCA9PSwg
UEFTU0lWRV9MRVZFTCk7CiAKLSAgICAoVk9JRCkgUmVnaXN0cnlVcGRhdGVEd29yZFZhbHVlKF9f
RHJpdmVyR2V0U3RhdHVzS2V5KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiTmVlZFJlYm9vdCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxKTsK
KyAgICBzdGF0dXMgPSBSZWdpc3RyeU9wZW5TdWJLZXkoTlVMTCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgUkVRVUVTVF9LRVksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEtFWV9BTExfQUNDRVNTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmUmVx
dWVzdEtleSk7CisgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCisgICAgICAgIGdvdG8gZmFp
bDE7CisKKyAgICBSdGxaZXJvTWVtb3J5KEFuc2ksIHNpemVvZiAoQW5zaSkpOworCisgICAgUnRs
SW5pdEFuc2lTdHJpbmcoJkFuc2lbMF0sICJYRU5CVVMiKTsKKworICAgIHN0YXR1cyA9IFJlZ2lz
dHJ5VXBkYXRlU3pWYWx1ZShSZXF1ZXN0S2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiUmVib290IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVH
X1NaLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbnNpKTsKKyAgICBpZiAo
IU5UX1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBmYWlsMjsKKworICAgIFJlZ2lzdHJ5
Q2xvc2VLZXkoUmVxdWVzdEtleSk7CisKKyAgICBJbmZvKCI8PT09PVxuIik7CisKKyAgICByZXR1
cm47CisKK2ZhaWwyOgorICAgIEVycm9yKCJmYWlsMlxuIik7CisKKyAgICBSZWdpc3RyeUNsb3Nl
S2V5KFJlcXVlc3RLZXkpOworCitmYWlsMToKKyAgICBFcnJvcigiZmFpbDEgKCUwOHgpXG4iLCBz
dGF0dXMpOwogfQogCiBzdGF0aWMgRk9SQ0VJTkxJTkUgVk9JRApAQCAtNTEwLDcgKzUzMyw2IEBA
IERyaXZlclVubG9hZCgKICAgICApCiB7CiAgICAgSEFORExFICAgICAgICAgICAgICBQYXJhbWV0
ZXJzS2V5OwotICAgIEhBTkRMRSAgICAgICAgICAgICAgU3RhdHVzS2V5OwogCiAgICAgQVNTRVJU
M1AoRHJpdmVyT2JqZWN0LCA9PSwgX19Ecml2ZXJHZXREcml2ZXJPYmplY3QoKSk7CiAKQEAgLTUy
MywxMSArNTQ1LDYgQEAgRHJpdmVyVW5sb2FkKAogICAgIFJ0bFplcm9NZW1vcnkoJkRyaXZlci5M
aXN0LCBzaXplb2YgKExJU1RfRU5UUlkpKTsKICAgICBSdGxaZXJvTWVtb3J5KCZEcml2ZXIuTXV0
ZXgsIHNpemVvZiAoTVVURVgpKTsKIAotICAgIFN0YXR1c0tleSA9IF9fRHJpdmVyR2V0U3RhdHVz
S2V5KCk7Ci0gICAgX19Ecml2ZXJTZXRTdGF0dXNLZXkoTlVMTCk7Ci0KLSAgICBSZWdpc3RyeUNs
b3NlS2V5KFN0YXR1c0tleSk7Ci0KICAgICBQYXJhbWV0ZXJzS2V5ID0gX19Ecml2ZXJHZXRQYXJh
bWV0ZXJzS2V5KCk7CiAKICAgICBSZWdpc3RyeUNsb3NlS2V5KFBhcmFtZXRlcnNLZXkpOwpAQCAt
NjM5LDcgKzY1Niw2IEBAIERyaXZlckVudHJ5KAogewogICAgIEhBTkRMRSAgICAgICAgICAgICAg
U2VydmljZUtleTsKICAgICBIQU5ETEUgICAgICAgICAgICAgIFBhcmFtZXRlcnNLZXk7Ci0gICAg
SEFORExFICAgICAgICAgICAgICBTdGF0dXNLZXk7CiAgICAgVUxPTkcgICAgICAgICAgICAgICBJ
bmRleDsKICAgICBOVFNUQVRVUyAgICAgICAgICAgIHN0YXR1czsKIApAQCAtNjcwLDM0ICs2ODYs
MjcgQEAgRHJpdmVyRW50cnkoCiAgICAgICAgICAgICAgICAgICAgICAgTUlOT1JfVkVSU0lPTiwK
ICAgICAgICAgICAgICAgICAgICAgICBNSUNST19WRVJTSU9OLAogICAgICAgICAgICAgICAgICAg
ICAgIEJVSUxEX05VTUJFUik7Ci0gICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCi0gICAgICAg
IGdvdG8gZG9uZTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkgeworICAgICAgICBfX0Ry
aXZlclJlcXVlc3RSZWJvb3QoKTsKKyAgICAgICAgZ290byBmYWlsMTsKKyAgICB9CiAKICAgICBz
dGF0dXMgPSBSZWdpc3RyeUluaXRpYWxpemUoUmVnaXN0cnlQYXRoKTsKICAgICBpZiAoIU5UX1NV
Q0NFU1Moc3RhdHVzKSkKLSAgICAgICAgZ290byBmYWlsMTsKKyAgICAgICAgZ290byBmYWlsMjsK
IAogICAgIHN0YXR1cyA9IFJlZ2lzdHJ5T3BlblNlcnZpY2VLZXkoS0VZX1JFQUQsICZTZXJ2aWNl
S2V5KTsKICAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKLSAgICAgICAgZ290byBmYWlsMjsK
KyAgICAgICAgZ290byBmYWlsMzsKIAogICAgIHN0YXR1cyA9IFJlZ2lzdHJ5T3BlblN1YktleShT
ZXJ2aWNlS2V5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGFyYW1ldGVycyIs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtFWV9SRUFELAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAmUGFyYW1ldGVyc0tleSk7CiAgICAgaWYgKCFOVF9TVUNDRVNT
KHN0YXR1cykpCi0gICAgICAgIGdvdG8gZmFpbDM7Ci0KLSAgICBfX0RyaXZlclNldFBhcmFtZXRl
cnNLZXkoUGFyYW1ldGVyc0tleSk7Ci0KLSAgICBzdGF0dXMgPSBSZWdpc3RyeUNyZWF0ZVN1Yktl
eShTZXJ2aWNlS2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdGF0dXMi
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19PUFRJT05fVk9MQVRJTEUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlN0YXR1c0tleSk7Ci0gICAgaWYg
KCFOVF9TVUNDRVNTKHN0YXR1cykpCiAgICAgICAgIGdvdG8gZmFpbDQ7CiAKLSAgICBfX0RyaXZl
clNldFN0YXR1c0tleShTdGF0dXNLZXkpOworICAgIF9fRHJpdmVyU2V0UGFyYW1ldGVyc0tleShQ
YXJhbWV0ZXJzS2V5KTsKIAogICAgIFJlZ2lzdHJ5Q2xvc2VLZXkoU2VydmljZUtleSk7CiAKQEAg
LTcxMyw3ICs3MjIsNiBAQCBEcml2ZXJFbnRyeSgKICAgICBJbml0aWFsaXplTGlzdEhlYWQoJkRy
aXZlci5MaXN0KTsKICAgICBEcml2ZXIuUmVmZXJlbmNlcyA9IDE7CiAKLWRvbmU6CiAgICAgVHJh
Y2UoIjw9PT09XG4iKTsKIAogICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsKQEAgLTcyMSwyMCAr
NzI5LDE2IEBAIGRvbmU6CiBmYWlsNDoKICAgICBFcnJvcigiZmFpbDRcbiIpOwogCi0gICAgX19E
cml2ZXJTZXRQYXJhbWV0ZXJzS2V5KE5VTEwpOwotCi0gICAgUmVnaXN0cnlDbG9zZUtleShQYXJh
bWV0ZXJzS2V5KTsKKyAgICBSZWdpc3RyeUNsb3NlS2V5KFNlcnZpY2VLZXkpOwogCiBmYWlsMzoK
ICAgICBFcnJvcigiZmFpbDNcbiIpOwogCi0gICAgUmVnaXN0cnlDbG9zZUtleShTZXJ2aWNlS2V5
KTsKKyAgICBSZWdpc3RyeVRlYXJkb3duKCk7CiAKIGZhaWwyOgogICAgIEVycm9yKCJmYWlsMlxu
Iik7CiAKLSAgICBSZWdpc3RyeVRlYXJkb3duKCk7Ci0KIGZhaWwxOgogICAgIEVycm9yKCJmYWls
MSAoJTA4eClcbiIsIHN0YXR1cyk7CiAKLS0gCjIuMS4xCgoKX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4t
cHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9y
Zy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 09:40:43 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 09:40:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQWwl-0003Jq-01; Fri, 22 Jul 2016 09:40:43 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bQWwj-0003Iz-VS
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 09:40:42 +0000
Received: from [193.109.254.147] by server-14.bemta-14.messagelabs.com id
 00/A7-17024-91AE1975; Fri, 22 Jul 2016 09:40:41 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrBIsWRWlGSWpSXmKPExsXiVRvkoivxamK
 4wfWpShZ/Fic6MHoc/nCFJYAxijUzLym/IoE1o/e9ZsGk9Irbze9ZGhh/uXUxcnEICcxilOh5
 9p0VxGEReMki8aBzPUsXIyeHhEA/q8SFxdoQdozEvqeLoOIVEtentbOC2EICihLN1y6wQ0xay
 SQx8cNpRpAEm4C6xO33i9khGuwkPs26CWaLCKhKXFt+jA3EZhbQkni4YR5YvbCAt8TzA2eA4h
 xAV6hK/JzkDxLmFXCXeN/3mRVijJzE3smrWUBKOAU8JJqWKkCc4C4x499m9gmMggsYGVYxahS
 nFpWlFukaWuglFWWmZ5TkJmbm6BoamujlphYXJ6an5iQmFesl5+duYgSGWj0DA+MOxiPbPQ8x
 SnIwKYny/rg6MVyILyk/pTIjsTgjvqg0J7X4EKMMB4eSBO+dF0A5waLU9NSKtMwcYNDDpCU4e
 JREeJeDpHmLCxJzizPTIVKnGHU5tky9t5ZJiCUvPy9VSpy3GaRIAKQoozQPbgQsAi8xykoJ8z
 IyMDAI8RSkFuVmlqDKv2IU52BUEua9CjKFJzOvBG7TK6AjmICOmCPQD3JESSJCSqqBUSLQtEs
 q4PikvPrcLfna2WIbbaNDJAJUT++cF2B46+bqd7dmGB9/drbht8+N2EerBCqUdy/M2LWqmsX0
 4/s101/0KO3kkpRQXufvciZ5SerxX7yOajYSU7SZe6/GfNs/wUsjmVeyUL79Y56A14oVGoXJZ
 1K6aq72SUm/etazKt6U78ziTdtklFiKMxINtZiLihMBM8uv3LsCAAA=
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-12.tower-27.messagelabs.com!1469180440!54398987!1
X-Originating-IP: [74.125.82.68]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 38831 invoked from network); 22 Jul 2016 09:40:40 -0000
Received: from mail-wm0-f68.google.com (HELO mail-wm0-f68.google.com)
 (74.125.82.68)
 by server-12.tower-27.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 22 Jul 2016 09:40:40 -0000
Received: by mail-wm0-f68.google.com with SMTP id x83so5405459wma.3
 for <win-pv-devel@lists.xenproject.org>; Fri, 22 Jul 2016 02:40:40 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id:in-reply-to:references;
 bh=VNIKwFxWL8Wo4/wsiiQF6jTqQ3lga5k06k0laRP3YqM=;
 b=RfJbT1OqTDAK24SzrD8fNMgEN2KM9udN9xkyHlH4luwc2xGlCelH0OzHSZsxCgTDcr
 WZf1omGSZlQwSCxzoqz7tjVE/B3+81EYlm6p/UAAm38zWQHCUAWc+e6R/KOG3DMjtfoZ
 C+iFprBd3wR9svXTjmHeO1wgAtqEmoIHCF696fRKx+FKlAVxyNTKzvBKY4aPRdWFPeCI
 JEPMMYrXjGnj6iB8w2xD+AP8OuzdpptYbRY5t1hR6qTk+A0E2bV5o8kNKe/sHjFYDFpZ
 orhtGf5DksQYIiWBcswKTYPr8G1KiaUcj5rwBrfJuop8ORmHnUVZjpSPnXpuRuYhxipB
 4MjA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
 :references;
 bh=VNIKwFxWL8Wo4/wsiiQF6jTqQ3lga5k06k0laRP3YqM=;
 b=FDLiZVKPVhuSkhphrEQNGFqcV9iLrzXsO2WFyuIBniJ2hdF6OebF2RCUG7ffExT1Nr
 29DHiC35xjX5le/OdjHWg72W9S0z8jNl0L52WnuYSKdN1QtX8YxkjZbA81wwtqumT22b
 4V+mWMrDnWv+62+oJ2qAUdAcGxw39nLBE9i/VGQJhqF/gMSnhJDIeV+OjWyLojD4RREU
 Z1nnaLbVuctzKdif4UDXnjG+k9wRvaQ8a+HUrZGT+S1Tn+Uoul1zb62sTcyk0drgkW/9
 ZAHtN/2oJdLGIRKtE17QbWafuK851JTOrGtkcbxfG34zJxrk02DGtNMXNf8AA6t9MdaT
 fSww==
X-Gm-Message-State: AEkoousf9QNImHOtBU+ie03Eil05TAUi6/wJfOhw8fej7YMvYwI1vCCHRXQxWpDRNqLIVA==
X-Received: by 10.194.123.35 with SMTP id lx3mr40123wjb.126.1469180439619;
 Fri, 22 Jul 2016 02:40:39 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id g184sm11640847wme.15.2016.07.22.02.40.38
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 22 Jul 2016 02:40:39 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Fri, 22 Jul 2016 10:40:22 +0100
Message-Id: <1469180422-15112-4-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1469180422-15112-1-git-send-email-paul.durrant@citrix.com>
References: <1469180422-15112-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 4/4] Use new service to request reboot rather
	than SetupAPI
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhpcyBtZWFucyBtb3JlIGNvZGUgY2FuIGJlIHJlbW92ZWQgZnJvbSB0aGUgY28taW5zdGFsbGVy
IGFuZCB3ZSBnZXQgYQptb3JlIG1lYW5pbmdmdWwgbWVzc2FnZSBkaXNwbGF5ZWQgdG8gdGhlIHVz
ZXIuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29t
PgotLS0KIHNyYy9jb2luc3QvY29pbnN0LmMgfCAxNDQgKystLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogc3JjL3hlbi9kcml2ZXIuYyAgICB8ICA4OCAr
KysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogc3JjL3hlbmJ1cy5pbmYgICAgICB8ICAg
MiArLQogc3JjL3hlbmJ1cy9kcml2ZXIuYyB8IDEwMiArKysrKysrKysrKysrKysrKysrLS0tLS0t
LS0tLS0tLS0tLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDcwIGluc2VydGlvbnMoKyksIDI2NiBkZWxl
dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvY29pbnN0L2NvaW5zdC5jIGIvc3JjL2NvaW5zdC9j
b2luc3QuYwppbmRleCA2NjM1OWUwLi4xMjQxYWQxIDEwMDY0NAotLS0gYS9zcmMvY29pbnN0L2Nv
aW5zdC5jCisrKyBiL3NyYy9jb2luc3QvY29pbnN0LmMKQEAgLTEyOTAsMTMzICsxMjkwLDYgQEAg
ZmFpbDE6CiB9CiAKIHN0YXRpYyBCT09MRUFOCi1DaGVja1N0YXR1cygKLSAgICBJTiAgUFRDSEFS
ICAgICAgRHJpdmVyTmFtZSwKLSAgICBPVVQgUEJPT0xFQU4gICAgTmVlZFJlYm9vdAotICAgICkK
LXsKLSAgICBUQ0hBUiAgICAgICAgICAgU3RhdHVzS2V5TmFtZVtNQVhfUEFUSF07Ci0gICAgSEtF
WSAgICAgICAgICAgIFN0YXR1c0tleTsKLSAgICBIUkVTVUxUICAgICAgICAgUmVzdWx0OwotICAg
IEhSRVNVTFQgICAgICAgICBFcnJvcjsKLSAgICBEV09SRCAgICAgICAgICAgVmFsdWVMZW5ndGg7
Ci0gICAgRFdPUkQgICAgICAgICAgIFZhbHVlOwotICAgIERXT1JEICAgICAgICAgICBUeXBlOwot
Ci0gICAgUmVzdWx0ID0gU3RyaW5nQ2JQcmludGYoU3RhdHVzS2V5TmFtZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBNQVhfUEFUSCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBT
RVJWSUNFU19LRVkgIlxcJXNcXFN0YXR1cyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
RHJpdmVyTmFtZSk7Ci0gICAgYXNzZXJ0KFNVQ0NFRURFRChSZXN1bHQpKTsKLQotICAgIEVycm9y
ID0gUmVnT3BlbktleUV4KEhLRVlfTE9DQUxfTUFDSElORSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICBTdGF0dXNLZXlOYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgIDAsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgS0VZX1JFQUQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgJlN0
YXR1c0tleSk7Ci0gICAgaWYgKEVycm9yICE9IEVSUk9SX1NVQ0NFU1MpIHsKLSAgICAgICAgU2V0
TGFzdEVycm9yKEVycm9yKTsKLSAgICAgICAgZ290byBmYWlsMTsKLSAgICB9Ci0KLSAgICBWYWx1
ZUxlbmd0aCA9IHNpemVvZiAoVmFsdWUpOwotCi0gICAgRXJyb3IgPSBSZWdRdWVyeVZhbHVlRXgo
U3RhdHVzS2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOZWVkUmVib290IiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICZUeXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMUEJZVEUpJlZhbHVlLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZWYWx1ZUxlbmd0aCk7Ci0gICAgaWYgKEVycm9y
ICE9IEVSUk9SX1NVQ0NFU1MpIHsKLSAgICAgICAgaWYgKEVycm9yID09IEVSUk9SX0ZJTEVfTk9U
X0ZPVU5EKSB7Ci0gICAgICAgICAgICBUeXBlID0gUkVHX0RXT1JEOwotICAgICAgICAgICAgVmFs
dWUgPSAwOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgU2V0TGFzdEVycm9yKEVycm9y
KTsKLSAgICAgICAgICAgIGdvdG8gZmFpbDI7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAo
VHlwZSAhPSBSRUdfRFdPUkQpIHsKLSAgICAgICAgU2V0TGFzdEVycm9yKEVSUk9SX0JBRF9GT1JN
QVQpOwotICAgICAgICBnb3RvIGZhaWwzOwotICAgIH0KLQotICAgICpOZWVkUmVib290ID0gKFZh
bHVlICE9IDApID8gVFJVRSA6IEZBTFNFOwotCi0gICAgaWYgKCpOZWVkUmVib290KQotICAgICAg
ICBMb2coIk5lZWRSZWJvb3QiKTsKLQotICAgIFJlZ0Nsb3NlS2V5KFN0YXR1c0tleSk7Ci0KLSAg
ICByZXR1cm4gVFJVRTsKLQotZmFpbDM6Ci0gICAgTG9nKCJmYWlsMyIpOwotCi1mYWlsMjoKLSAg
ICBMb2coImZhaWwyIik7Ci0KLSAgICBSZWdDbG9zZUtleShTdGF0dXNLZXkpOwotCi1mYWlsMToK
LSAgICBFcnJvciA9IEdldExhc3RFcnJvcigpOwotCi0gICAgewotICAgICAgICBQVENIQVIgIE1l
c3NhZ2U7Ci0gICAgICAgIE1lc3NhZ2UgPSBHZXRFcnJvck1lc3NhZ2UoRXJyb3IpOwotICAgICAg
ICBMb2coImZhaWwxICglcykiLCBNZXNzYWdlKTsKLSAgICAgICAgTG9jYWxGcmVlKE1lc3NhZ2Up
OwotICAgIH0KLQotICAgIHJldHVybiBGQUxTRTsKLX0KLQotc3RhdGljIEJPT0xFQU4KLVJlcXVl
c3RSZWJvb3QoCi0gICAgSU4gIEhERVZJTkZPICAgICAgICAgICAgRGV2aWNlSW5mb1NldCwKLSAg
ICBJTiAgUFNQX0RFVklORk9fREFUQSAgICBEZXZpY2VJbmZvRGF0YQotICAgICkKLXsKLSAgICBT
UF9ERVZJTlNUQUxMX1BBUkFNUyAgICBEZXZpY2VJbnN0YWxsUGFyYW1zOwotICAgIEhSRVNVTFQg
ICAgICAgICAgICAgICAgIEVycm9yOwotCi0gICAgRGV2aWNlSW5zdGFsbFBhcmFtcy5jYlNpemUg
PSBzaXplb2YgKERldmljZUluc3RhbGxQYXJhbXMpOwotCi0gICAgaWYgKCFTZXR1cERpR2V0RGV2
aWNlSW5zdGFsbFBhcmFtcyhEZXZpY2VJbmZvU2V0LAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRGV2aWNlSW5mb0RhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAmRGV2aWNlSW5zdGFsbFBhcmFtcykpCi0gICAgICAgIGdvdG8gZmFpbDE7
Ci0KLSAgICBEZXZpY2VJbnN0YWxsUGFyYW1zLkZsYWdzIHw9IERJX05FRURSRUJPT1Q7Ci0KLSAg
ICBMb2coIkZsYWdzID0gJTA4eCIsIERldmljZUluc3RhbGxQYXJhbXMuRmxhZ3MpOwotCi0gICAg
aWYgKCFTZXR1cERpU2V0RGV2aWNlSW5zdGFsbFBhcmFtcyhEZXZpY2VJbmZvU2V0LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGV2aWNlSW5mb0RhdGEsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmRGV2aWNlSW5zdGFsbFBhcmFtcykpCi0g
ICAgICAgIGdvdG8gZmFpbDI7Ci0KLSAgICByZXR1cm4gVFJVRTsKLQotZmFpbDI6Ci0gICAgTG9n
KCJmYWlsMiIpOwotCi1mYWlsMToKLSAgICBFcnJvciA9IEdldExhc3RFcnJvcigpOwotCi0gICAg
ewotICAgICAgICBQVENIQVIgIE1lc3NhZ2U7Ci0KLSAgICAgICAgTWVzc2FnZSA9IEdldEVycm9y
TWVzc2FnZShFcnJvcik7Ci0gICAgICAgIExvZygiZmFpbDEgKCVzKSIsIE1lc3NhZ2UpOwotICAg
ICAgICBMb2NhbEZyZWUoTWVzc2FnZSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIEZBTFNFOwotfQot
Ci1zdGF0aWMgQk9PTEVBTgogQ2xlYXJVbnBsdWdSZXF1ZXN0KAogICAgIElOICBQVENIQVIgICAg
ICBDbGFzc05hbWUKICAgICApCkBAIC0xNjE1LDIyICsxNDg4LDExIEBAIERpZkluc3RhbGxQb3N0
UHJvY2VzcygKICAgICBJTiAgUENPSU5TVEFMTEVSX0NPTlRFWFRfREFUQSAgIENvbnRleHQKICAg
ICApCiB7Ci0gICAgQk9PTEVBTiAgICAgICAgICAgICAgICAgICAgICAgICBOZWVkUmVib290Owot
CisgICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihEZXZpY2VJbmZvU2V0KTsKKyAgICBVTlJFRkVS
RU5DRURfUEFSQU1FVEVSKERldmljZUluZm9EYXRhKTsKICAgICBVTlJFRkVSRU5DRURfUEFSQU1F
VEVSKENvbnRleHQpOwogCi0gICAgTG9nKCI9PT09PiIpOwotCi0gICAgTmVlZFJlYm9vdCA9IEZB
TFNFOwotCi0gICAgKFZPSUQpIENoZWNrU3RhdHVzKCJYRU4iLCAmTmVlZFJlYm9vdCk7Ci0gICAg
aWYgKCFOZWVkUmVib290KQotICAgICAgICAoVk9JRCkgQ2hlY2tTdGF0dXMoIlhFTkJVUyIsICZO
ZWVkUmVib290KTsKLQotICAgIGlmIChOZWVkUmVib290KQotICAgICAgICAoVk9JRCkgUmVxdWVz
dFJlYm9vdChEZXZpY2VJbmZvU2V0LCBEZXZpY2VJbmZvRGF0YSk7Ci0KLSAgICBMb2coIjw9PT09
Iik7CisgICAgTG9nKCI8PT09PiIpOwogCiAgICAgcmV0dXJuIE5PX0VSUk9SOwogfQpkaWZmIC0t
Z2l0IGEvc3JjL3hlbi9kcml2ZXIuYyBiL3NyYy94ZW4vZHJpdmVyLmMKaW5kZXggNjExOWM3Yy4u
ZjgzY2IxMyAxMDA2NDQKLS0tIGEvc3JjL3hlbi9kcml2ZXIuYworKysgYi9zcmMveGVuL2RyaXZl
ci5jCkBAIC01Myw3ICs1Myw2IEBAIHR5cGVkZWYgc3RydWN0IF9YRU5fRFJJVkVSIHsKICAgICBQ
TE9HX0RJU1BPU0lUSU9OICAgIFRyYWNlRGlzcG9zaXRpb247CiAgICAgUExPR19ESVNQT1NJVElP
TiAgICBJbmZvRGlzcG9zaXRpb247CiAgICAgSEFORExFICAgICAgICAgICAgICBVbnBsdWdLZXk7
Ci0gICAgSEFORExFICAgICAgICAgICAgICBTdGF0dXNLZXk7CiB9IFhFTl9EUklWRVIsICpQWEVO
X0RSSVZFUjsKIAogc3RhdGljIFhFTl9EUklWRVIgICBEcml2ZXI7CkBAIC05Miw0NCArOTEsNiBA
QCBEcml2ZXJHZXRVbnBsdWdLZXkoCiAgICAgcmV0dXJuIF9fRHJpdmVyR2V0VW5wbHVnS2V5KCk7
CiB9CiAKLXN0YXRpYyBGT1JDRUlOTElORSBWT0lECi1fX0RyaXZlclNldFN0YXR1c0tleSgKLSAg
ICBJTiAgSEFORExFICBLZXkKLSAgICApCi17Ci0gICAgRHJpdmVyLlN0YXR1c0tleSA9IEtleTsK
LX0KLQotc3RhdGljIEZPUkNFSU5MSU5FIEhBTkRMRQotX19Ecml2ZXJHZXRTdGF0dXNLZXkoCi0g
ICAgVk9JRAotICAgICkKLXsKLSAgICByZXR1cm4gRHJpdmVyLlN0YXR1c0tleTsKLX0KLQotSEFO
RExFCi1Ecml2ZXJHZXRTdGF0dXNLZXkoCi0gICAgVk9JRAotICAgICkKLXsKLSAgICByZXR1cm4g
X19Ecml2ZXJHZXRTdGF0dXNLZXkoKTsKLX0KLQotc3RhdGljIEZPUkNFSU5MSU5FIFZPSUQKLV9f
RHJpdmVyUmVxdWVzdFJlYm9vdCgKLSAgICBWT0lECi0gICAgKQotewotICAgIEluZm8oIjw9PT0+
XG4iKTsKLQotICAgIEFTU0VSVDNVKEtlR2V0Q3VycmVudElycWwoKSwgPT0sIFBBU1NJVkVfTEVW
RUwpOwotCi0gICAgKFZPSUQpIFJlZ2lzdHJ5VXBkYXRlRHdvcmRWYWx1ZShfX0RyaXZlckdldFN0
YXR1c0tleSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5lZWRSZWJv
b3QiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSk7Ci19Ci0KIFhFTl9B
UEkKIE5UU1RBVFVTCiBYZW5Ub3VjaCgKQEAgLTE3Myw3ICsxMzQsNiBAQCBkb25lOgogCiBmYWls
MToKICAgICBJbmZvKCJNT0RVTEUgJyVzJyBOT1QgQ09NUEFUSUJMRSAoUkVCT09UIFJFUVVJUkVE
KVxuIiwgTmFtZSk7Ci0gICAgX19Ecml2ZXJSZXF1ZXN0UmVib290KCk7CiAKICAgICByZXR1cm4g
U1RBVFVTX0lOQ09NUEFUSUJMRV9EUklWRVJfQkxPQ0tFRDsKIH0KQEAgLTIwMCw3ICsxNjAsNiBA
QCBEbGxJbml0aWFsaXplKAogewogICAgIEhBTkRMRSAgICAgICAgICAgICAgU2VydmljZUtleTsK
ICAgICBIQU5ETEUgICAgICAgICAgICAgIFVucGx1Z0tleTsKLSAgICBIQU5ETEUgICAgICAgICAg
ICAgIFN0YXR1c0tleTsKICAgICBOVFNUQVRVUyAgICAgICAgICAgIHN0YXR1czsKIAogICAgIEV4
SW5pdGlhbGl6ZURyaXZlclJ1bnRpbWUoRHJ2UnRQb29sTnhPcHRJbik7CkBAIC0yNTksNDIgKzIx
OCwzMyBAQCBEbGxJbml0aWFsaXplKAogCiAgICAgX19Ecml2ZXJTZXRVbnBsdWdLZXkoVW5wbHVn
S2V5KTsKIAotICAgIHN0YXR1cyA9IFJlZ2lzdHJ5Q3JlYXRlU3ViS2V5KFNlcnZpY2VLZXksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN0YXR1cyIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUkVHX09QVElPTl9WT0xBVElMRSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAmU3RhdHVzS2V5KTsKLSAgICBpZiAoIU5UX1NVQ0NFU1Moc3Rh
dHVzKSkKLSAgICAgICAgZ290byBmYWlsNTsKLQotICAgIF9fRHJpdmVyU2V0U3RhdHVzS2V5KFN0
YXR1c0tleSk7Ci0KICAgICBzdGF0dXMgPSBBY3BpSW5pdGlhbGl6ZSgpOwogICAgIGlmICghTlRf
U1VDQ0VTUyhzdGF0dXMpKQotICAgICAgICBnb3RvIGZhaWw2OworICAgICAgICBnb3RvIGZhaWw1
OwogCiAgICAgc3RhdHVzID0gU3lzdGVtSW5pdGlhbGl6ZSgpOwogICAgIGlmICghTlRfU1VDQ0VT
UyhzdGF0dXMpKQotICAgICAgICBnb3RvIGZhaWw3OworICAgICAgICBnb3RvIGZhaWw2OwogCiAg
ICAgc3RhdHVzID0gSHlwZXJjYWxsSW5pdGlhbGl6ZSgpOwogICAgIGlmICghTlRfU1VDQ0VTUyhz
dGF0dXMpKQotICAgICAgICBnb3RvIGZhaWw4OworICAgICAgICBnb3RvIGZhaWw3OwogCiAgICAg
c3RhdHVzID0gQnVnQ2hlY2tJbml0aWFsaXplKCk7CiAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1
cykpCi0gICAgICAgIGdvdG8gZmFpbDk7CisgICAgICAgIGdvdG8gZmFpbDg7CiAKICAgICBzdGF0
dXMgPSBNb2R1bGVJbml0aWFsaXplKCk7CiAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCi0g
ICAgICAgIGdvdG8gZmFpbDEwOworICAgICAgICBnb3RvIGZhaWw5OwogCiAgICAgc3RhdHVzID0g
UHJvY2Vzc0luaXRpYWxpemUoKTsKICAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKLSAgICAg
ICAgZ290byBmYWlsMTE7CisgICAgICAgIGdvdG8gZmFpbDEwOwogCiAgICAgc3RhdHVzID0gVW5w
bHVnSW5pdGlhbGl6ZSgpOwogICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQotICAgICAgICBn
b3RvIGZhaWwxMjsKKyAgICAgICAgZ290byBmYWlsMTE7CiAKICAgICBSZWdpc3RyeUNsb3NlS2V5
KFNlcnZpY2VLZXkpOwogCkBAIC0zMDIsNDEgKzI1MiwzNSBAQCBEbGxJbml0aWFsaXplKAogCiAg
ICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOwogCi1mYWlsMTI6Ci0gICAgRXJyb3IoImZhaWwxMlxu
Iik7Ci0KLSAgICBQcm9jZXNzVGVhcmRvd24oKTsKLQogZmFpbDExOgogICAgIEVycm9yKCJmYWls
MTFcbiIpOwogCi0gICAgTW9kdWxlVGVhcmRvd24oKTsKKyAgICBQcm9jZXNzVGVhcmRvd24oKTsK
IAogZmFpbDEwOgogICAgIEVycm9yKCJmYWlsMTBcbiIpOwogCi0gICAgQnVnQ2hlY2tUZWFyZG93
bigpOworICAgIE1vZHVsZVRlYXJkb3duKCk7CiAKIGZhaWw5OgogICAgIEVycm9yKCJmYWlsOVxu
Iik7CiAKLSAgICBIeXBlcmNhbGxUZWFyZG93bigpOworICAgIEJ1Z0NoZWNrVGVhcmRvd24oKTsK
IAogZmFpbDg6CiAgICAgRXJyb3IoImZhaWw4XG4iKTsKIAotICAgIFN5c3RlbVRlYXJkb3duKCk7
CisgICAgSHlwZXJjYWxsVGVhcmRvd24oKTsKIAogZmFpbDc6CiAgICAgRXJyb3IoImZhaWw3XG4i
KTsKIAotICAgIEFjcGlUZWFyZG93bigpOworICAgIFN5c3RlbVRlYXJkb3duKCk7CiAKIGZhaWw2
OgogICAgIEVycm9yKCJmYWlsNlxuIik7CiAKLSAgICBSZWdpc3RyeUNsb3NlS2V5KFN0YXR1c0tl
eSk7Ci0gICAgX19Ecml2ZXJTZXRTdGF0dXNLZXkoTlVMTCk7CisgICAgQWNwaVRlYXJkb3duKCk7
CiAKIGZhaWw1OgogICAgIEVycm9yKCJmYWlsNVxuIik7CkBAIC0zNzgsNyArMzIyLDYgQEAgRGxs
VW5sb2FkKAogICAgIFZPSUQKICAgICApCiB7Ci0gICAgSEFORExFICBTdGF0dXNLZXk7CiAgICAg
SEFORExFICBVbnBsdWdLZXk7CiAKICAgICBUcmFjZSgiPT09PT5cbiIpOwpAQCAtMzk1LDExICsz
MzgsNiBAQCBEbGxVbmxvYWQoCiAKICAgICBTeXN0ZW1UZWFyZG93bigpOwogCi0gICAgU3RhdHVz
S2V5ID0gX19Ecml2ZXJHZXRTdGF0dXNLZXkoKTsKLQotICAgIFJlZ2lzdHJ5Q2xvc2VLZXkoU3Rh
dHVzS2V5KTsKLSAgICBfX0RyaXZlclNldFN0YXR1c0tleShOVUxMKTsKLQogICAgIFVucGx1Z0tl
eSA9IF9fRHJpdmVyR2V0VW5wbHVnS2V5KCk7CiAKICAgICBSZWdpc3RyeUNsb3NlS2V5KFVucGx1
Z0tleSk7CmRpZmYgLS1naXQgYS9zcmMveGVuYnVzLmluZiBiL3NyYy94ZW5idXMuaW5mCmluZGV4
IGRkYzFjNDUuLjAzYTNkNmIgMTAwNjQ0Ci0tLSBhL3NyYy94ZW5idXMuaW5mCisrKyBiL3NyYy94
ZW5idXMuaW5mCkBAIC04MSw5ICs4MSw5IEBAIENvcHlGaWxlcz1YZW5CdXNfQ29weUZpbGVzCiBD
b3B5RmlsZXM9TW9uaXRvcl9Db3B5RmlsZXMKIAogW1hlbkJ1c19JbnN0LlNlcnZpY2VzXQorQWRk
U2VydmljZT14ZW5idXNfbW9uaXRvciwlU1BTVkNTSU5TVF9TVEFSVFNFUlZJQ0UlLE1vbml0b3Jf
U2VydmljZSxNb25pdG9yX0V2ZW50TG9nCiBBZGRTZXJ2aWNlPXhlbmJ1cywlU1BTVkNJTlNUX0FT
U09DU0VSVklDRSUsWGVuQnVzX1NlcnZpY2UKIEFkZFNlcnZpY2U9eGVuZmlsdCwsWGVuRmlsdF9T
ZXJ2aWNlLAotQWRkU2VydmljZT14ZW5idXNfbW9uaXRvciwlU1BTVkNTSU5TVF9TVEFSVFNFUlZJ
Q0UlLE1vbml0b3JfU2VydmljZSxNb25pdG9yX0V2ZW50TG9nCiAKIFtYZW5CdXNfU2VydmljZV0g
CiBEaXNwbGF5TmFtZT0lWGVuQnVzRGVzYyUKZGlmZiAtLWdpdCBhL3NyYy94ZW5idXMvZHJpdmVy
LmMgYi9zcmMveGVuYnVzL2RyaXZlci5jCmluZGV4IDI0ZjA2ZjUuLjMxMzg4YmUgMTAwNjQ0Ci0t
LSBhL3NyYy94ZW5idXMvZHJpdmVyLmMKKysrIGIvc3JjL3hlbmJ1cy9kcml2ZXIuYwpAQCAtNDgs
NyArNDgsNiBAQAogdHlwZWRlZiBzdHJ1Y3QgX1hFTkJVU19EUklWRVIgewogICAgIFBEUklWRVJf
T0JKRUNUICAgICAgRHJpdmVyT2JqZWN0OwogICAgIEhBTkRMRSAgICAgICAgICAgICAgUGFyYW1l
dGVyc0tleTsKLSAgICBIQU5ETEUgICAgICAgICAgICAgIFN0YXR1c0tleTsKIAogICAgIE1VVEVY
ICAgICAgICAgICAgICAgTXV0ZXg7CiAgICAgTElTVF9FTlRSWSAgICAgICAgICBMaXN0OwpAQCAt
MTIzLDM0ICsxMjIsNTggQEAgRHJpdmVyR2V0UGFyYW1ldGVyc0tleSgKICAgICByZXR1cm4gX19E
cml2ZXJHZXRQYXJhbWV0ZXJzS2V5KCk7CiB9CiAKLXN0YXRpYyBGT1JDRUlOTElORSBWT0lECi1f
X0RyaXZlclNldFN0YXR1c0tleSgKLSAgICBJTiAgSEFORExFICBLZXkKLSAgICApCi17Ci0gICAg
RHJpdmVyLlN0YXR1c0tleSA9IEtleTsKLX0KKyNkZWZpbmUgU0VSVklDRVNfUEFUSCAiXFxSZWdp
c3RyeVxcTWFjaGluZVxcU1lTVEVNXFxDdXJyZW50Q29udHJvbFNldFxcU2VydmljZXMiCiAKLXN0
YXRpYyBGT1JDRUlOTElORSBIQU5ETEUKLV9fRHJpdmVyR2V0U3RhdHVzS2V5KAotICAgIFZPSUQK
LSAgICApCi17Ci0gICAgcmV0dXJuIERyaXZlci5TdGF0dXNLZXk7Ci19CisjZGVmaW5lIFNFUlZJ
Q0VfS0VZKF9OYW1lKSBcCisgICAgICAgIFNFUlZJQ0VTX1BBVEggIyMgIlxcIiAjIyAjX05hbWUK
IAotVk9JRAotRHJpdmVyUmVxdWVzdFJlYm9vdCgKKyNkZWZpbmUgUkVRVUVTVF9LRVkgXAorICAg
ICAgICBTRVJWSUNFX0tFWShYRU5CVVNfTU9OSVRPUikgIyMgIlxcUmVxdWVzdCIKKworc3RhdGlj
IEZPUkNFSU5MSU5FIFZPSUQKK19fRHJpdmVyUmVxdWVzdFJlYm9vdCgKICAgICBWT0lECiAgICAg
KQogewotICAgIEluZm8oIjw9PT0+XG4iKTsKKyAgICBIQU5ETEUgICAgICBSZXF1ZXN0S2V5Owor
ICAgIEFOU0lfU1RSSU5HIEFuc2lbMl07CisgICAgTlRTVEFUVVMgICAgc3RhdHVzOworCisgICAg
SW5mbygiPT09PT5cbiIpOwogCiAgICAgQVNTRVJUM1UoS2VHZXRDdXJyZW50SXJxbCgpLCA9PSwg
UEFTU0lWRV9MRVZFTCk7CiAKLSAgICAoVk9JRCkgUmVnaXN0cnlVcGRhdGVEd29yZFZhbHVlKF9f
RHJpdmVyR2V0U3RhdHVzS2V5KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiTmVlZFJlYm9vdCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxKTsK
KyAgICBzdGF0dXMgPSBSZWdpc3RyeU9wZW5TdWJLZXkoTlVMTCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgUkVRVUVTVF9LRVksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEtFWV9BTExfQUNDRVNTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmUmVx
dWVzdEtleSk7CisgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCisgICAgICAgIGdvdG8gZmFp
bDE7CisKKyAgICBSdGxaZXJvTWVtb3J5KEFuc2ksIHNpemVvZiAoQW5zaSkpOworCisgICAgUnRs
SW5pdEFuc2lTdHJpbmcoJkFuc2lbMF0sICJYRU5CVVMiKTsKKworICAgIHN0YXR1cyA9IFJlZ2lz
dHJ5VXBkYXRlU3pWYWx1ZShSZXF1ZXN0S2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiUmVib290IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVH
X1NaLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbnNpKTsKKyAgICBpZiAo
IU5UX1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBmYWlsMjsKKworICAgIFJlZ2lzdHJ5
Q2xvc2VLZXkoUmVxdWVzdEtleSk7CisKKyAgICBJbmZvKCI8PT09PVxuIik7CisKKyAgICByZXR1
cm47CisKK2ZhaWwyOgorICAgIEVycm9yKCJmYWlsMlxuIik7CisKKyAgICBSZWdpc3RyeUNsb3Nl
S2V5KFJlcXVlc3RLZXkpOworCitmYWlsMToKKyAgICBFcnJvcigiZmFpbDEgKCUwOHgpXG4iLCBz
dGF0dXMpOwogfQogCiBzdGF0aWMgRk9SQ0VJTkxJTkUgVk9JRApAQCAtNTEwLDcgKzUzMyw2IEBA
IERyaXZlclVubG9hZCgKICAgICApCiB7CiAgICAgSEFORExFICAgICAgICAgICAgICBQYXJhbWV0
ZXJzS2V5OwotICAgIEhBTkRMRSAgICAgICAgICAgICAgU3RhdHVzS2V5OwogCiAgICAgQVNTRVJU
M1AoRHJpdmVyT2JqZWN0LCA9PSwgX19Ecml2ZXJHZXREcml2ZXJPYmplY3QoKSk7CiAKQEAgLTUy
MywxMSArNTQ1LDYgQEAgRHJpdmVyVW5sb2FkKAogICAgIFJ0bFplcm9NZW1vcnkoJkRyaXZlci5M
aXN0LCBzaXplb2YgKExJU1RfRU5UUlkpKTsKICAgICBSdGxaZXJvTWVtb3J5KCZEcml2ZXIuTXV0
ZXgsIHNpemVvZiAoTVVURVgpKTsKIAotICAgIFN0YXR1c0tleSA9IF9fRHJpdmVyR2V0U3RhdHVz
S2V5KCk7Ci0gICAgX19Ecml2ZXJTZXRTdGF0dXNLZXkoTlVMTCk7Ci0KLSAgICBSZWdpc3RyeUNs
b3NlS2V5KFN0YXR1c0tleSk7Ci0KICAgICBQYXJhbWV0ZXJzS2V5ID0gX19Ecml2ZXJHZXRQYXJh
bWV0ZXJzS2V5KCk7CiAKICAgICBSZWdpc3RyeUNsb3NlS2V5KFBhcmFtZXRlcnNLZXkpOwpAQCAt
NjM5LDcgKzY1Niw2IEBAIERyaXZlckVudHJ5KAogewogICAgIEhBTkRMRSAgICAgICAgICAgICAg
U2VydmljZUtleTsKICAgICBIQU5ETEUgICAgICAgICAgICAgIFBhcmFtZXRlcnNLZXk7Ci0gICAg
SEFORExFICAgICAgICAgICAgICBTdGF0dXNLZXk7CiAgICAgVUxPTkcgICAgICAgICAgICAgICBJ
bmRleDsKICAgICBOVFNUQVRVUyAgICAgICAgICAgIHN0YXR1czsKIApAQCAtNjcwLDM0ICs2ODYs
MjcgQEAgRHJpdmVyRW50cnkoCiAgICAgICAgICAgICAgICAgICAgICAgTUlOT1JfVkVSU0lPTiwK
ICAgICAgICAgICAgICAgICAgICAgICBNSUNST19WRVJTSU9OLAogICAgICAgICAgICAgICAgICAg
ICAgIEJVSUxEX05VTUJFUik7Ci0gICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCi0gICAgICAg
IGdvdG8gZG9uZTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkgeworICAgICAgICBfX0Ry
aXZlclJlcXVlc3RSZWJvb3QoKTsKKyAgICAgICAgZ290byBmYWlsMTsKKyAgICB9CiAKICAgICBz
dGF0dXMgPSBSZWdpc3RyeUluaXRpYWxpemUoUmVnaXN0cnlQYXRoKTsKICAgICBpZiAoIU5UX1NV
Q0NFU1Moc3RhdHVzKSkKLSAgICAgICAgZ290byBmYWlsMTsKKyAgICAgICAgZ290byBmYWlsMjsK
IAogICAgIHN0YXR1cyA9IFJlZ2lzdHJ5T3BlblNlcnZpY2VLZXkoS0VZX1JFQUQsICZTZXJ2aWNl
S2V5KTsKICAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKLSAgICAgICAgZ290byBmYWlsMjsK
KyAgICAgICAgZ290byBmYWlsMzsKIAogICAgIHN0YXR1cyA9IFJlZ2lzdHJ5T3BlblN1YktleShT
ZXJ2aWNlS2V5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGFyYW1ldGVycyIs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtFWV9SRUFELAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAmUGFyYW1ldGVyc0tleSk7CiAgICAgaWYgKCFOVF9TVUNDRVNT
KHN0YXR1cykpCi0gICAgICAgIGdvdG8gZmFpbDM7Ci0KLSAgICBfX0RyaXZlclNldFBhcmFtZXRl
cnNLZXkoUGFyYW1ldGVyc0tleSk7Ci0KLSAgICBzdGF0dXMgPSBSZWdpc3RyeUNyZWF0ZVN1Yktl
eShTZXJ2aWNlS2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdGF0dXMi
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19PUFRJT05fVk9MQVRJTEUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlN0YXR1c0tleSk7Ci0gICAgaWYg
KCFOVF9TVUNDRVNTKHN0YXR1cykpCiAgICAgICAgIGdvdG8gZmFpbDQ7CiAKLSAgICBfX0RyaXZl
clNldFN0YXR1c0tleShTdGF0dXNLZXkpOworICAgIF9fRHJpdmVyU2V0UGFyYW1ldGVyc0tleShQ
YXJhbWV0ZXJzS2V5KTsKIAogICAgIFJlZ2lzdHJ5Q2xvc2VLZXkoU2VydmljZUtleSk7CiAKQEAg
LTcxMyw3ICs3MjIsNiBAQCBEcml2ZXJFbnRyeSgKICAgICBJbml0aWFsaXplTGlzdEhlYWQoJkRy
aXZlci5MaXN0KTsKICAgICBEcml2ZXIuUmVmZXJlbmNlcyA9IDE7CiAKLWRvbmU6CiAgICAgVHJh
Y2UoIjw9PT09XG4iKTsKIAogICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsKQEAgLTcyMSwyMCAr
NzI5LDE2IEBAIGRvbmU6CiBmYWlsNDoKICAgICBFcnJvcigiZmFpbDRcbiIpOwogCi0gICAgX19E
cml2ZXJTZXRQYXJhbWV0ZXJzS2V5KE5VTEwpOwotCi0gICAgUmVnaXN0cnlDbG9zZUtleShQYXJh
bWV0ZXJzS2V5KTsKKyAgICBSZWdpc3RyeUNsb3NlS2V5KFNlcnZpY2VLZXkpOwogCiBmYWlsMzoK
ICAgICBFcnJvcigiZmFpbDNcbiIpOwogCi0gICAgUmVnaXN0cnlDbG9zZUtleShTZXJ2aWNlS2V5
KTsKKyAgICBSZWdpc3RyeVRlYXJkb3duKCk7CiAKIGZhaWwyOgogICAgIEVycm9yKCJmYWlsMlxu
Iik7CiAKLSAgICBSZWdpc3RyeVRlYXJkb3duKCk7Ci0KIGZhaWwxOgogICAgIEVycm9yKCJmYWls
MSAoJTA4eClcbiIsIHN0YXR1cyk7CiAKLS0gCjIuMS4xCgoKX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4t
cHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9y
Zy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 09:40:45 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 09:40:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQWwn-0003LT-2C; Fri, 22 Jul 2016 09:40:45 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bQWwl-0003Jz-FS
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 09:40:43 +0000
Received: from [85.158.143.35] by server-3.bemta-6.messagelabs.com id
 DE/4B-05661-A1AE1975; Fri, 22 Jul 2016 09:40:42 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprCIsWRWlGSWpSXmKPExsXiVRvkpCv5amK
 4weq7IhZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y/35dtaChe+ZK75vPM/UwLhiMXMXIxeHkMBM
 RolLHy+zgDgsApdYJBbcesMK4kgIvGORuDnrM5DDCeTESNxtmMgGYVdIfDx9ixnEFhJQlGi+d
 oEdYtRKJontC5+AFbEJqEvcfr+YHaLBTuLTrJtgtoiAqsS15cfAapgFtCQebpjH2MXIwSEsoC
 fR8iAaJMwCVHLl6mwmEJtXwF1i6sV+qDFyEnsnr2aZwMi/gJFhFaN6cWpRWWqRrrFeUlFmekZ
 JbmJmjq6hgZlebmpxcWJ6ak5iUrFecn7uJkZgCDEAwQ7Gjn9OhxglOZiURHl/XJ0YLsSXlJ9S
 mZFYnBFfVJqTWnyIUYaDQ0mCt/wFUE6wKDU9tSItMwcYzDBpCQ4eJRHe5SBp3uKCxNzizHSI1
 ClGXY4tU++tZRJiycvPS5US520GKRIAKcoozYMbAYusS4yyUsK8jEBHCfEUpBblZpagyr9iFO
 dgVBLmjQaZwpOZVwK36RXQEUxAR8wR6Ac5oiQRISUFjNWKOEGlfwmz/511dvMsmZDSz9W94B/
 PhTcKvfWmCoWqRUtMvpkmpiyzPN+z7/CRFft2rD29bO1KV61trkFpzk6nonsuut96toYp87vU
 O0vVmck1U0/OruA9ku8z9UHWfoNNxZWbKo7obXNSD+Wdclan7qpxKONmpp2L9yWIO56oqftZ8
 muauxJLcUaioRZzUXEiALye2lSnAgAA
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-15.tower-21.messagelabs.com!1469180441!25065635!1
X-Originating-IP: [74.125.82.66]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 27857 invoked from network); 22 Jul 2016 09:40:41 -0000
Received: from mail-wm0-f66.google.com (HELO mail-wm0-f66.google.com)
 (74.125.82.66)
 by server-15.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 22 Jul 2016 09:40:41 -0000
Received: by mail-wm0-f66.google.com with SMTP id i5so5420093wmg.2
 for <win-pv-devel@lists.xenproject.org>; Fri, 22 Jul 2016 02:40:41 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=Igt8kISCwCJKcTCHhOr960dVg5c8cgmLZt3TUPwFy2I=;
 b=ef3iIB+ENxmxkt7Xde4JKKqyFvTUXKqpMMY2D15srm2vfm1wF4bEeid1E9ZR+Ccs+D
 OhnydhBo0TnYg7QxJ05XHEZtJbJOb3/MINauHAbQoqdNl9DvBKNgMpy9R4qMPFY/IGPC
 wMWigUM2C9/N40fu8T7Ggn/ARqjycvDdS6GlxUC9oMjDGZbTa7yU+6lFD5W4YaGHNy8X
 xepAMMVpJgdBZ+ozwfBDs2dSCMA8hVtu17ihomPxmlD2Wmq6vL1VFygyAA9EAYYUpUxq
 zTCyGpQjmx5iiGwUSOGuxZzWmMqC59ywBkYyPxqI+3pnpFpk2iwHClFsYutxOBtJ+CCH
 0ynQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=Igt8kISCwCJKcTCHhOr960dVg5c8cgmLZt3TUPwFy2I=;
 b=lBF4PBwU7JvvxohjwHr8nMxHj2X4yCIqkr0gceE3Km5K4h+I66rmJp8APLYhZPNnQ0
 PGXgB6FoxIUA7sfLum2GhXnxoBHaElOl9vFaDTRrMv0kCGyfIlWgvJfumgiWZK3Y7jjl
 v7MZkKEfQUfcSstDjQtghvhXonAHZOjOVqC0a76Cgl0InabumXFUPy7IWOb3FabSHmFX
 +ikOQ1YfZNYS4UpQw7hYNsOGuZ7ckkuG+zl3uhfg/SwmxZyK2UtduiYbOaFLXAPULGXZ
 7swRJDtrXZIbV9cEdpx4IJgkOO4T8xTkHC5LogRP8oy/ttmERw5ljkIJlPx2B7zlwDEN
 E/1A==
X-Gm-Message-State: ALyK8tKEw4m2Xn0tC+C76T86/ViM6jgfo8SzmUlM/LR9Lz1t5POOvY/a5ePJSf2q+FIhKw==
X-Received: by 10.28.95.67 with SMTP id t64mr23195790wmb.99.1469180436612;
 Fri, 22 Jul 2016 02:40:36 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id g184sm11640847wme.15.2016.07.22.02.40.35
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 22 Jul 2016 02:40:35 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Fri, 22 Jul 2016 10:40:19 +0100
Message-Id: <1469180422-15112-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 1/4] Add a new monitor service
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhpcyBwYXRjaCBhZGRzIHRoZSBib2lsZXJwbGF0ZSBmb3IgYSBzZXJ2aWNlIGNhbGxlZCBYRU5C
VVNfTU9OSVRPUi4KVGhlIHNlcnZpY2UgZG9lcyBub3QgeWV0IGhhdmUgYW55IGZ1bmN0aW9uYWxp
dHkuIFRoaXMgd2lsbCBiZSBhZGRlZApieSBzdWJzZXF1ZW50IHBhdGNoZXMuCgpTaWduZWQtb2Zm
LWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgotLS0KIHNyYy9jb2lu
c3QvY29pbnN0LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgODAgKysrLQogc3Jj
L21vbml0b3IvbWVzc2FnZXMubWMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyNCArCiBz
cmMvbW9uaXRvci9tb25pdG9yLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNTI0ICsr
KysrKysrKysrKysrKysrKysrKysKIHNyYy9tb25pdG9yL3hlbmJ1c19tb25pdG9yLnJjICAgICAg
ICAgICAgICAgICAgICAgfCAgNTcgKysrCiBzcmMveGVuYnVzLmluZiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgIDM5ICstCiB2czIwMTIvcGFja2FnZS9wYWNrYWdlLnZjeHBy
b2ogICAgICAgICAgICAgICAgICAgIHwgICAzICsKIHZzMjAxMi94ZW5idXMuc2xuICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgODIgKystLQogdnMyMDEyL3hlbmJ1c19tb25pdG9y
L3hlbmJ1c19tb25pdG9yLnZjeHByb2ogICAgICB8ICA4MiArKysrCiB2czIwMTIveGVuYnVzX21v
bml0b3IveGVuYnVzX21vbml0b3IudmN4cHJvai51c2VyIHwgICA4ICsKIHZzMjAxMy9wYWNrYWdl
L3BhY2thZ2UudmN4cHJvaiAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwogdnMyMDEzL3hlbmJ1
cy5zbG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE3MCArKysrLS0tCiB2czIw
MTMveGVuYnVzX21vbml0b3IveGVuYnVzX21vbml0b3IudmN4cHJvaiAgICAgIHwgIDgyICsrKysK
IHZzMjAxMy94ZW5idXNfbW9uaXRvci94ZW5idXNfbW9uaXRvci52Y3hwcm9qLnVzZXIgfCAgIDgg
KwogMTMgZmlsZXMgY2hhbmdlZCwgMTA2MyBpbnNlcnRpb25zKCspLCA5OSBkZWxldGlvbnMoLSkK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvbW9uaXRvci9tZXNzYWdlcy5tYwogY3JlYXRlIG1vZGUg
MTAwNjQ0IHNyYy9tb25pdG9yL21vbml0b3IuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9tb25p
dG9yL3hlbmJ1c19tb25pdG9yLnJjCiBjcmVhdGUgbW9kZSAxMDA2NDQgdnMyMDEyL3hlbmJ1c19t
b25pdG9yL3hlbmJ1c19tb25pdG9yLnZjeHByb2oKIGNyZWF0ZSBtb2RlIDEwMDY0NCB2czIwMTIv
eGVuYnVzX21vbml0b3IveGVuYnVzX21vbml0b3IudmN4cHJvai51c2VyCiBjcmVhdGUgbW9kZSAx
MDA2NDQgdnMyMDEzL3hlbmJ1c19tb25pdG9yL3hlbmJ1c19tb25pdG9yLnZjeHByb2oKIGNyZWF0
ZSBtb2RlIDEwMDY0NCB2czIwMTMveGVuYnVzX21vbml0b3IveGVuYnVzX21vbml0b3IudmN4cHJv
ai51c2VyCgpkaWZmIC0tZ2l0IGEvc3JjL2NvaW5zdC9jb2luc3QuYyBiL3NyYy9jb2luc3QvY29p
bnN0LmMKaW5kZXggZjhlZjkyZS4uNjYzNTllMCAxMDA2NDQKLS0tIGEvc3JjL2NvaW5zdC9jb2lu
c3QuYworKysgYi9zcmMvY29pbnN0L2NvaW5zdC5jCkBAIC02Miw2ICs2Miw4IEBAIF9fdXNlcl9j
b2RlOwogCiAjZGVmaW5lIEVOVU1fS0VZICAgICJTWVNURU1cXEN1cnJlbnRDb250cm9sU2V0XFxF
bnVtIgogCisjZGVmaW5lIE1PTklUT1JfTkFNRSAgICAiWEVOQlVTX01PTklUT1IiCisKIHN0YXRp
YyBWT0lECiAjcHJhZ21hIHByZWZhc3Qoc3VwcHJlc3M6NjI2MikgLy8gRnVuY3Rpb24gdXNlcyAn
MTAzNicgYnl0ZXMgb2Ygc3RhY2s6IGV4Y2VlZHMgL2FuYWx5emU6c3RhY2tzaXplJzEwMjQnCiBf
X0xvZygKQEAgLTE0NjUsNiArMTQ2Nyw3OCBAQCBmYWlsMToKICAgICByZXR1cm4gRkFMU0U7CiB9
CiAKK3N0YXRpYyBCT09MCitNb25pdG9yRGVsZXRlKAorICAgIFZPSUQKKyAgICApCit7CisgICAg
U0NfSEFORExFICAgICAgICAgICBTQ01hbmFnZXI7CisgICAgU0NfSEFORExFICAgICAgICAgICBT
ZXJ2aWNlOworICAgIEJPT0wgICAgICAgICAgICAgICAgU3VjY2VzczsKKyAgICBTRVJWSUNFX1NU
QVRVUyAgICAgIFN0YXR1czsKKyAgICBIUkVTVUxUICAgICAgICAgICAgIEVycm9yOworCisgICAg
TG9nKCI9PT09PiIpOworCisgICAgU0NNYW5hZ2VyID0gT3BlblNDTWFuYWdlcihOVUxMLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFNDX01BTkFHRVJfQUxMX0FDQ0VTUyk7CisKKyAgICBpZiAoU0NNYW5hZ2VyID09IE5V
TEwpCisgICAgICAgIGdvdG8gZmFpbDE7CisKKyAgICBTZXJ2aWNlID0gT3BlblNlcnZpY2UoU0NN
YW5hZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICBNT05JVE9SX05BTUUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgIFNFUlZJQ0VfQUxMX0FDQ0VTUyk7CisKKyAgICBpZiAoU2Vydmlj
ZSA9PSBOVUxMKQorICAgICAgICBnb3RvIGZhaWwyOworCisgICAgU3VjY2VzcyA9IENvbnRyb2xT
ZXJ2aWNlKFNlcnZpY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFUlZJQ0VfQ09O
VFJPTF9TVE9QLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmU3RhdHVzKTsKKworICAg
IGlmICghU3VjY2VzcykKKyAgICAgICAgZ290byBmYWlsMzsKKworICAgIFN1Y2Nlc3MgPSBEZWxl
dGVTZXJ2aWNlKFNlcnZpY2UpOworCisgICAgaWYgKCFTdWNjZXNzKQorICAgICAgICBnb3RvIGZh
aWw0OworCisgICAgQ2xvc2VTZXJ2aWNlSGFuZGxlKFNlcnZpY2UpOworICAgIENsb3NlU2Vydmlj
ZUhhbmRsZShTQ01hbmFnZXIpOworCisgICAgTG9nKCI8PT09PSIpOworCisgICAgcmV0dXJuIFRS
VUU7CisKK2ZhaWw0OgorICAgIExvZygiZmFpbDQiKTsKKworZmFpbDM6CisgICAgTG9nKCJmYWls
MyIpOworCisgICAgQ2xvc2VTZXJ2aWNlSGFuZGxlKFNlcnZpY2UpOworCitmYWlsMjoKKyAgICBM
b2coImZhaWwyIik7CisKKyAgICBDbG9zZVNlcnZpY2VIYW5kbGUoU0NNYW5hZ2VyKTsKKworZmFp
bDE6CisgICAgRXJyb3IgPSBHZXRMYXN0RXJyb3IoKTsKKworICAgIHsKKyAgICAgICAgUFRDSEFS
ICBNZXNzYWdlOworICAgICAgICBNZXNzYWdlID0gR2V0RXJyb3JNZXNzYWdlKEVycm9yKTsKKyAg
ICAgICAgTG9nKCJmYWlsMSAoJXMpIiwgTWVzc2FnZSk7CisgICAgICAgIExvY2FsRnJlZShNZXNz
YWdlKTsKKyAgICB9CisKKyAgICByZXR1cm4gRkFMU0U7Cit9CisKIHN0YXRpYyBIUkVTVUxUCiBE
aWZJbnN0YWxsUHJlUHJvY2VzcygKICAgICBJTiAgSERFVklORk8gICAgICAgICAgICAgICAgICAg
IERldmljZUluZm9TZXQsCkBAIC0xNjI4LDcgKzE3MDIsMTEgQEAgRGlmUmVtb3ZlUHJlUHJvY2Vz
cygKICAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVSKERldmljZUluZm9EYXRhKTsKICAgICBVTlJF
RkVSRU5DRURfUEFSQU1FVEVSKENvbnRleHQpOwogCi0gICAgTG9nKCI8PT09PiIpOworICAgIExv
ZygiPT09PT4iKTsKKworICAgIChWT0lEKSBNb25pdG9yRGVsZXRlKCk7CisKKyAgICBMb2coIjw9
PT09Iik7CiAKICAgICByZXR1cm4gTk9fRVJST1I7CiB9CmRpZmYgLS1naXQgYS9zcmMvbW9uaXRv
ci9tZXNzYWdlcy5tYyBiL3NyYy9tb25pdG9yL21lc3NhZ2VzLm1jCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmFiNDkyNDMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvbW9uaXRv
ci9tZXNzYWdlcy5tYwpAQCAtMCwwICsxLDI0IEBACitNZXNzYWdlSWRUeXBlZGVmPURXT1JECisK
K1NldmVyaXR5TmFtZXM9KAorCVN1Y2Nlc3M9MHgwOlNUQVRVU19TRVZFUklUWV9TVUNDRVNTCisJ
SW5mb3JtYXRpb25hbD0weDE6U1RBVFVTX1NFVkVSSVRZX0lORk9STUFUSU9OQUwKKwlXYXJuaW5n
PTB4MjpTVEFUVVNfU0VWRVJJVFlfV0FSTklORworCUVycm9yPTB4MzpTVEFUVVNfU0VWRVJJVFlf
RVJST1IKKwkpCisKKworRmFjaWxpdHlOYW1lcz0oCisJU3lzdGVtPTB4MDpGQUNJTElUWV9TWVNU
RU0KKwlSdW50aW1lPTB4MjpGQUNJTElUWV9SVU5USU1FCisJU3R1YnM9MHgzOkZBQ0lMSVRZX1NU
VUJTCisJSW89MHg0OkZBQ0lMSVRZX0lPX0VSUk9SX0NPREUKKwkpCisKK01lc3NhZ2VJZD0weDEK
K1NldmVyaXR5PUluZm9ybWF0aW9uYWwKK0ZhY2lsaXR5PVN5c3RlbQorU3ltYm9saWNOYW1lPU1P
TklUT1JfTE9HCitMYW5ndWFnZT1FbmdsaXNoCislMQorLgpkaWZmIC0tZ2l0IGEvc3JjL21vbml0
b3IvbW9uaXRvci5jIGIvc3JjL21vbml0b3IvbW9uaXRvci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjdhZWI1ZDIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvbW9uaXRvci9t
b25pdG9yLmMKQEAgLTAsMCArMSw1MjQgQEAKKy8qIENvcHlyaWdodCAoYykgQ2l0cml4IFN5c3Rl
bXMgSW5jLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSAxYW5kIGJpbmFyeSBmb3JtcywKKyAqIHdpdGggb3Igd2l0aG91dCBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQKKyAqIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogKiAgIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgICBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlMjMKKyAqICAgICBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqICogICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZQorICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlcgorICogICAgIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5ECisgKiBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLAorICogSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLAorICogQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwK
KyAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORworICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgPHdpbmRvd3Mu
aD4KKyNpbmNsdWRlIDx0Y2hhci5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0
cnNhZmUuaD4KKworI2luY2x1ZGUgPHZlcnNpb24uaD4KKworI2luY2x1ZGUgIm1lc3NhZ2VzLmgi
CisKKyNkZWZpbmUgTU9OSVRPUl9OQU1FICAgICAgICBfX01PRFVMRV9fCisjZGVmaW5lIE1PTklU
T1JfRElTUExBWU5BTUUgTU9OSVRPUl9OQU1FCisKK3R5cGVkZWYgc3RydWN0IF9NT05JVE9SX0NP
TlRFWFQgeworICAgIFNFUlZJQ0VfU1RBVFVTICAgICAgICAgIFN0YXR1czsKKyAgICBTRVJWSUNF
X1NUQVRVU19IQU5ETEUgICBTZXJ2aWNlOworICAgIEhBTkRMRSAgICAgICAgICAgICAgICAgIEV2
ZW50TG9nOworICAgIEhBTkRMRSAgICAgICAgICAgICAgICAgIFN0b3BFdmVudDsKK30gTU9OSVRP
Ul9DT05URVhULCAqUE1PTklUT1JfQ09OVEVYVDsKKworTU9OSVRPUl9DT05URVhUIE1vbml0b3JD
b250ZXh0OworCisjZGVmaW5lIE1BWElNVU1fQlVGRkVSX1NJWkUgMTAyNAorCitzdGF0aWMgVk9J
RAorI3ByYWdtYSBwcmVmYXN0KHN1cHByZXNzOjYyNjIpIC8vIEZ1bmN0aW9uIHVzZXMgJzEwMzYn
IGJ5dGVzIG9mIHN0YWNrOiBleGNlZWRzIC9hbmFseXplOnN0YWNrc2l6ZScxMDI0JworX19Mb2co
CisgICAgSU4gIGNvbnN0IENIQVIgICAgICAqRm9ybWF0LAorICAgIElOICAuLi4KKyAgICApCit7
CisjaWYgREJHCisgICAgUE1PTklUT1JfQ09OVEVYVCAgICBDb250ZXh0ID0gJk1vbml0b3JDb250
ZXh0OworICAgIGNvbnN0IFRDSEFSICAgICAgICAgKlN0cmluZ3NbMV07CisjZW5kaWYKKyAgICBU
Q0hBUiAgICAgICAgICAgICAgIEJ1ZmZlcltNQVhJTVVNX0JVRkZFUl9TSVpFXTsKKyAgICB2YV9s
aXN0ICAgICAgICAgICAgIEFyZ3VtZW50czsKKyAgICBzaXplX3QgICAgICAgICAgICAgIExlbmd0
aDsKKyAgICBIUkVTVUxUICAgICAgICAgICAgIFJlc3VsdDsKKworICAgIHZhX3N0YXJ0KEFyZ3Vt
ZW50cywgRm9ybWF0KTsKKyAgICBSZXN1bHQgPSBTdHJpbmdDY2hWUHJpbnRmKEJ1ZmZlciwgTUFY
SU1VTV9CVUZGRVJfU0laRSwgRm9ybWF0LCBBcmd1bWVudHMpOworICAgIHZhX2VuZChBcmd1bWVu
dHMpOworCisgICAgaWYgKFJlc3VsdCAhPSBTX09LICYmIFJlc3VsdCAhPSBTVFJTQUZFX0VfSU5T
VUZGSUNJRU5UX0JVRkZFUikKKyAgICAgICAgcmV0dXJuOworCisgICAgUmVzdWx0ID0gU3RyaW5n
Q2NoTGVuZ3RoKEJ1ZmZlciwgTUFYSU1VTV9CVUZGRVJfU0laRSwgJkxlbmd0aCk7CisgICAgaWYg
KFJlc3VsdCAhPSBTX09LKQorICAgICAgICByZXR1cm47CisKKyAgICBMZW5ndGggPSBfX21pbihN
QVhJTVVNX0JVRkZFUl9TSVpFIC0gMSwgTGVuZ3RoICsgMik7CisKKyAgICBfX2FuYWx5c2lzX2Fz
c3VtZShMZW5ndGggPCBNQVhJTVVNX0JVRkZFUl9TSVpFKTsKKyAgICBfX2FuYWx5c2lzX2Fzc3Vt
ZShMZW5ndGggPj0gMik7CisgICAgQnVmZmVyW0xlbmd0aF0gPSAnXDAnOworICAgIEJ1ZmZlcltM
ZW5ndGggLSAxXSA9ICdcbic7CisgICAgQnVmZmVyW0xlbmd0aCAtIDJdID0gJ1xyJzsKKworICAg
IE91dHB1dERlYnVnU3RyaW5nKEJ1ZmZlcik7CisKKyNpZiBEQkcKKyAgICBTdHJpbmdzWzBdID0g
QnVmZmVyOworCisgICAgaWYgKENvbnRleHQtPkV2ZW50TG9nICE9IE5VTEwpCisgICAgICAgIFJl
cG9ydEV2ZW50KENvbnRleHQtPkV2ZW50TG9nLAorICAgICAgICAgICAgICAgICAgICBFVkVOVExP
R19JTkZPUk1BVElPTl9UWVBFLAorICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAg
ICAgICAgICBNT05JVE9SX0xPRywKKyAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAg
ICAgICAgICAgICAgQVJSQVlTSVpFKFN0cmluZ3MpLAorICAgICAgICAgICAgICAgICAgICAwLAor
ICAgICAgICAgICAgICAgICAgICBTdHJpbmdzLAorICAgICAgICAgICAgICAgICAgICBOVUxMKTsK
KyNlbmRpZgorfQorCisjZGVmaW5lIExvZyhfRm9ybWF0LCAuLi4pIFwKKyAgICAgICAgX19Mb2co
X19NT0RVTEVfXyAifCIgX19GVU5DVElPTl9fICI6ICIgX0Zvcm1hdCwgX19WQV9BUkdTX18pCisK
K3N0YXRpYyBQVENIQVIKK0dldEVycm9yTWVzc2FnZSgKKyAgICBJTiAgSFJFU1VMVCBFcnJvcgor
ICAgICkKK3sKKyAgICBQVENIQVIgICAgICBNZXNzYWdlOworICAgIFVMT05HICAgICAgIEluZGV4
OworCisgICAgRm9ybWF0TWVzc2FnZShGT1JNQVRfTUVTU0FHRV9BTExPQ0FURV9CVUZGRVIgfAor
ICAgICAgICAgICAgICAgICAgRk9STUFUX01FU1NBR0VfRlJPTV9TWVNURU0gfAorICAgICAgICAg
ICAgICAgICAgRk9STUFUX01FU1NBR0VfSUdOT1JFX0lOU0VSVFMsCisgICAgICAgICAgICAgICAg
ICBOVUxMLAorICAgICAgICAgICAgICAgICAgRXJyb3IsCisgICAgICAgICAgICAgICAgICBNQUtF
TEFOR0lEKExBTkdfTkVVVFJBTCwgU1VCTEFOR19ERUZBVUxUKSwKKyAgICAgICAgICAgICAgICAg
IChMUFRTVFIpJk1lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAg
ICAgTlVMTCk7CisKKyAgICBmb3IgKEluZGV4ID0gMDsgTWVzc2FnZVtJbmRleF0gIT0gJ1wwJzsg
SW5kZXgrKykgeworICAgICAgICBpZiAoTWVzc2FnZVtJbmRleF0gPT0gJ1xyJyB8fCBNZXNzYWdl
W0luZGV4XSA9PSAnXG4nKSB7CisgICAgICAgICAgICBNZXNzYWdlW0luZGV4XSA9ICdcMCc7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBNZXNzYWdl
OworfQorCitzdGF0aWMgY29uc3QgQ0hBUiAqCitTZXJ2aWNlU3RhdGVOYW1lKAorICAgIElOICBE
V09SRCAgIFN0YXRlCisgICAgKQoreworI2RlZmluZSBfU1RBVEVfTkFNRShfU3RhdGUpIFwKKyAg
ICBjYXNlIFNFUlZJQ0VfICMjIF9TdGF0ZTogXAorICAgICAgICByZXR1cm4gI19TdGF0ZQorCisg
ICAgc3dpdGNoIChTdGF0ZSkgeworICAgIF9TVEFURV9OQU1FKFNUQVJUX1BFTkRJTkcpOworICAg
IF9TVEFURV9OQU1FKFJVTk5JTkcpOworICAgIF9TVEFURV9OQU1FKFNUT1BfUEVORElORyk7Cisg
ICAgX1NUQVRFX05BTUUoU1RPUFBFRCk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7Cisg
ICAgfQorCisgICAgcmV0dXJuICJVTktOT1dOIjsKKworI3VuZGVmICBfU1RBVEVfTkFNRQorfQor
CitzdGF0aWMgVk9JRAorUmVwb3J0U3RhdHVzKAorICAgIElOICBEV09SRCAgICAgICAgICAgQ3Vy
cmVudFN0YXRlLAorICAgIElOICBEV09SRCAgICAgICAgICAgV2luMzJFeGl0Q29kZSwKKyAgICBJ
TiAgRFdPUkQgICAgICAgICAgIFdhaXRIaW50KQoreworICAgIFBNT05JVE9SX0NPTlRFWFQgICAg
Q29udGV4dCA9ICZNb25pdG9yQ29udGV4dDsKKyAgICBzdGF0aWMgRFdPUkQgICAgICAgIENoZWNr
UG9pbnQgPSAxOworICAgIEJPT0wgICAgICAgICAgICAgICAgU3VjY2VzczsKKyAgICBIUkVTVUxU
ICAgICAgICAgICAgIEVycm9yOworCisgICAgTG9nKCI9PT09PiAoJXMpIiwgU2VydmljZVN0YXRl
TmFtZShDdXJyZW50U3RhdGUpKTsKKworICAgIENvbnRleHQtPlN0YXR1cy5kd0N1cnJlbnRTdGF0
ZSA9IEN1cnJlbnRTdGF0ZTsKKyAgICBDb250ZXh0LT5TdGF0dXMuZHdXaW4zMkV4aXRDb2RlID0g
V2luMzJFeGl0Q29kZTsKKyAgICBDb250ZXh0LT5TdGF0dXMuZHdXYWl0SGludCA9IFdhaXRIaW50
OworCisgICAgaWYgKEN1cnJlbnRTdGF0ZSA9PSBTRVJWSUNFX1NUQVJUX1BFTkRJTkcpCisgICAg
ICAgIENvbnRleHQtPlN0YXR1cy5kd0NvbnRyb2xzQWNjZXB0ZWQgPSAwOworICAgIGVsc2UKKyAg
ICAgICAgQ29udGV4dC0+U3RhdHVzLmR3Q29udHJvbHNBY2NlcHRlZCA9IFNFUlZJQ0VfQUNDRVBU
X1NUT1AgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VS
VklDRV9BQ0NFUFRfU0hVVERPV047CisKKyAgICBpZiAoQ3VycmVudFN0YXRlID09IFNFUlZJQ0Vf
UlVOTklORyB8fAorICAgICAgICBDdXJyZW50U3RhdGUgPT0gU0VSVklDRV9TVE9QUEVEICkKKyAg
ICAgICAgQ29udGV4dC0+U3RhdHVzLmR3Q2hlY2tQb2ludCA9IDA7CisgICAgZWxzZQorICAgICAg
ICBDb250ZXh0LT5TdGF0dXMuZHdDaGVja1BvaW50ID0gQ2hlY2tQb2ludCsrOworCisgICAgU3Vj
Y2VzcyA9IFNldFNlcnZpY2VTdGF0dXMoQ29udGV4dC0+U2VydmljZSwgJkNvbnRleHQtPlN0YXR1
cyk7CisKKyAgICBpZiAoIVN1Y2Nlc3MpCisgICAgICAgIGdvdG8gZmFpbDE7CisKKyAgICBMb2co
Ijw9PT09Iik7CisKKyAgICByZXR1cm47CisKK2ZhaWwxOgorICAgIEVycm9yID0gR2V0TGFzdEVy
cm9yKCk7CisKKyAgICB7CisgICAgICAgIFBUQ0hBUiAgTWVzc2FnZTsKKyAgICAgICAgTWVzc2Fn
ZSA9IEdldEVycm9yTWVzc2FnZShFcnJvcik7CisgICAgICAgIExvZygiZmFpbDEgKCVzKSIsIE1l
c3NhZ2UpOworICAgICAgICBMb2NhbEZyZWUoTWVzc2FnZSk7CisgICAgfQorfQorCitEV09SRCBX
SU5BUEkKK01vbml0b3JDdHJsSGFuZGxlckV4KAorICAgIElOICBEV09SRCAgICAgICAgICAgQ3Ry
bCwKKyAgICBJTiAgRFdPUkQgICAgICAgICAgIEV2ZW50VHlwZSwKKyAgICBJTiAgTFBWT0lEICAg
ICAgICAgIEV2ZW50RGF0YSwKKyAgICBJTiAgTFBWT0lEICAgICAgICAgIEFyZ3VtZW50CisgICAg
KQoreworICAgIFBNT05JVE9SX0NPTlRFWFQgICAgQ29udGV4dCA9ICZNb25pdG9yQ29udGV4dDsK
KworICAgIFVOUkVGRVJFTkNFRF9QQVJBTUVURVIoRXZlbnRUeXBlKTsKKyAgICBVTlJFRkVSRU5D
RURfUEFSQU1FVEVSKEV2ZW50RGF0YSk7CisgICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihBcmd1
bWVudCk7CisKKyAgICBzd2l0Y2ggKEN0cmwpIHsKKyAgICBjYXNlIFNFUlZJQ0VfQ09OVFJPTF9T
VE9QOgorICAgIGNhc2UgU0VSVklDRV9DT05UUk9MX1NIVVRET1dOOgorICAgICAgICBSZXBvcnRT
dGF0dXMoU0VSVklDRV9TVE9QX1BFTkRJTkcsIE5PX0VSUk9SLCAwKTsKKyAgICAgICAgU2V0RXZl
bnQoQ29udGV4dC0+U3RvcEV2ZW50KTsKKyAgICAgICAgcmV0dXJuIE5PX0VSUk9SOworCisgICAg
Y2FzZSBTRVJWSUNFX0NPTlRST0xfSU5URVJST0dBVEU6CisgICAgICAgIFJlcG9ydFN0YXR1cyhT
RVJWSUNFX1JVTk5JTkcsIE5PX0VSUk9SLCAwKTsKKyAgICAgICAgcmV0dXJuIE5PX0VSUk9SOwor
CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgUmVwb3J0U3RhdHVz
KFNFUlZJQ0VfUlVOTklORywgTk9fRVJST1IsIDApOworICAgIHJldHVybiBFUlJPUl9DQUxMX05P
VF9JTVBMRU1FTlRFRDsKK30KKworVk9JRCBXSU5BUEkKK01vbml0b3JNYWluKAorICAgIF9Jbl8g
ICAgRFdPUkQgICAgICAgYXJnYywKKyAgICBfSW5fICAgIExQVFNUUiAgICAgICphcmd2CisgICAg
KQoreworICAgIFBNT05JVE9SX0NPTlRFWFQgICAgQ29udGV4dCA9ICZNb25pdG9yQ29udGV4dDsK
KyAgICBIUkVTVUxUICAgICAgICAgICAgIEVycm9yOworCisgICAgVU5SRUZFUkVOQ0VEX1BBUkFN
RVRFUihhcmdjKTsKKyAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVSKGFyZ3YpOworCisgICAgTG9n
KCI9PT09PiIpOworCisgICAgQ29udGV4dC0+U2VydmljZSA9IFJlZ2lzdGVyU2VydmljZUN0cmxI
YW5kbGVyRXgoTU9OSVRPUl9OQU1FLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIE1vbml0b3JDdHJsSGFuZGxlckV4LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgIGlmIChDb250
ZXh0LT5TZXJ2aWNlID09IE5VTEwpCisgICAgICAgIGdvdG8gZmFpbDE7CisKKyAgICBDb250ZXh0
LT5FdmVudExvZyA9IFJlZ2lzdGVyRXZlbnRTb3VyY2UoTlVMTCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTU9OSVRPUl9OQU1FKTsKKyAgICBpZiAoQ29udGV4
dC0+RXZlbnRMb2cgPT0gTlVMTCkKKyAgICAgICAgZ290byBmYWlsMjsKKworICAgIENvbnRleHQt
PlN0YXR1cy5kd1NlcnZpY2VUeXBlID0gU0VSVklDRV9XSU4zMl9PV05fUFJPQ0VTUzsKKyAgICBD
b250ZXh0LT5TdGF0dXMuZHdTZXJ2aWNlU3BlY2lmaWNFeGl0Q29kZSA9IDA7CisKKyAgICBSZXBv
cnRTdGF0dXMoU0VSVklDRV9TVEFSVF9QRU5ESU5HLCBOT19FUlJPUiwgMzAwMCk7CisKKyAgICBD
b250ZXh0LT5TdG9wRXZlbnQgPSBDcmVhdGVFdmVudChOVUxMLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFRSVUUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRkFMU0UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7
CisKKyAgICBpZiAoQ29udGV4dC0+U3RvcEV2ZW50ID09IE5VTEwpCisgICAgICAgIGdvdG8gZmFp
bDM7CisKKyAgICBSZXBvcnRTdGF0dXMoU0VSVklDRV9SVU5OSU5HLCBOT19FUlJPUiwgMCk7CisK
KyAgICBmb3IgKDs7KSB7CisgICAgICAgIExvZygid2FpdGluZy4uLiIpOworICAgICAgICBXYWl0
Rm9yU2luZ2xlT2JqZWN0KENvbnRleHQtPlN0b3BFdmVudCwgSU5GSU5JVEUpOworICAgICAgICBM
b2coImF3YWtlIik7CisKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgQ2xvc2VIYW5kbGUo
Q29udGV4dC0+U3RvcEV2ZW50KTsKKworICAgIFJlcG9ydFN0YXR1cyhTRVJWSUNFX1NUT1BQRUQs
IE5PX0VSUk9SLCAwKTsKKworICAgIChWT0lEKSBEZXJlZ2lzdGVyRXZlbnRTb3VyY2UoQ29udGV4
dC0+RXZlbnRMb2cpOworCisgICAgTG9nKCI8PT09PSIpOworCisgICAgcmV0dXJuOworCitmYWls
MzoKKyAgICBMb2coImZhaWwzIik7CisKKyAgICBSZXBvcnRTdGF0dXMoU0VSVklDRV9TVE9QUEVE
LCBHZXRMYXN0RXJyb3IoKSwgMCk7CisKKyAgICAoVk9JRCkgRGVyZWdpc3RlckV2ZW50U291cmNl
KENvbnRleHQtPkV2ZW50TG9nKTsKKworZmFpbDI6CisgICAgTG9nKCJmYWlsMiIpOworCitmYWls
MToKKyAgICBFcnJvciA9IEdldExhc3RFcnJvcigpOworCisgICAgeworICAgICAgICBQVENIQVIg
IE1lc3NhZ2U7CisgICAgICAgIE1lc3NhZ2UgPSBHZXRFcnJvck1lc3NhZ2UoRXJyb3IpOworICAg
ICAgICBMb2coImZhaWwxICglcykiLCBNZXNzYWdlKTsKKyAgICAgICAgTG9jYWxGcmVlKE1lc3Nh
Z2UpOworICAgIH0KK30KKworc3RhdGljIEJPT0wKK01vbml0b3JDcmVhdGUoCisgICAgVk9JRAor
ICAgICkKK3sKKyAgICBTQ19IQU5ETEUgICBTQ01hbmFnZXI7CisgICAgU0NfSEFORExFICAgU2Vy
dmljZTsKKyAgICBUQ0hBUiAgICAgICBQYXRoW01BWF9QQVRIXTsKKyAgICBIUkVTVUxUICAgICBF
cnJvcjsKKworICAgIExvZygiPT09PT4iKTsKKworICAgIGlmKCFHZXRNb2R1bGVGaWxlTmFtZShO
VUxMLCBQYXRoLCBNQVhfUEFUSCkpCisgICAgICAgIGdvdG8gZmFpbDE7CisKKyAgICBTQ01hbmFn
ZXIgPSBPcGVuU0NNYW5hZ2VyKE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBO
VUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0NfTUFOQUdFUl9BTExfQUNDRVNT
KTsKKworICAgIGlmIChTQ01hbmFnZXIgPT0gTlVMTCkKKyAgICAgICAgZ290byBmYWlsMjsKKwor
ICAgIFNlcnZpY2UgPSBDcmVhdGVTZXJ2aWNlKFNDTWFuYWdlciwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBNT05JVE9SX05BTUUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTU9O
SVRPUl9ESVNQTEFZTkFNRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRVJWSUNFX0FM
TF9BQ0NFU1MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VSVklDRV9XSU4zMl9PV05f
UFJPQ0VTUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRVJWSUNFX0FVVE9fU1RBUlQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VSVklDRV9FUlJPUl9OT1JNQUwsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgUGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworCisgICAgaWYgKFNlcnZpY2UgPT0g
TlVMTCkKKyAgICAgICAgZ290byBmYWlsMzsKKworICAgIENsb3NlU2VydmljZUhhbmRsZShTZXJ2
aWNlKTsKKyAgICBDbG9zZVNlcnZpY2VIYW5kbGUoU0NNYW5hZ2VyKTsKKworICAgIExvZygiPD09
PT0iKTsKKworICAgIHJldHVybiBUUlVFOworCitmYWlsMzoKKyAgICBMb2coImZhaWwzIik7CisK
KyAgICBDbG9zZVNlcnZpY2VIYW5kbGUoU0NNYW5hZ2VyKTsKKworZmFpbDI6CisgICAgTG9nKCJm
YWlsMiIpOworCitmYWlsMToKKyAgICBFcnJvciA9IEdldExhc3RFcnJvcigpOworCisgICAgewor
ICAgICAgICBQVENIQVIgIE1lc3NhZ2U7CisgICAgICAgIE1lc3NhZ2UgPSBHZXRFcnJvck1lc3Nh
Z2UoRXJyb3IpOworICAgICAgICBMb2coImZhaWwxICglcykiLCBNZXNzYWdlKTsKKyAgICAgICAg
TG9jYWxGcmVlKE1lc3NhZ2UpOworICAgIH0KKworICAgIHJldHVybiBGQUxTRTsKK30KKworc3Rh
dGljIEJPT0wKK01vbml0b3JEZWxldGUoCisgICAgVk9JRAorICAgICkKK3sKKyAgICBTQ19IQU5E
TEUgICAgICAgICAgIFNDTWFuYWdlcjsKKyAgICBTQ19IQU5ETEUgICAgICAgICAgIFNlcnZpY2U7
CisgICAgQk9PTCAgICAgICAgICAgICAgICBTdWNjZXNzOworICAgIFNFUlZJQ0VfU1RBVFVTICAg
ICAgU3RhdHVzOworICAgIEhSRVNVTFQgICAgICAgICAgICAgRXJyb3I7CisKKyAgICBMb2coIj09
PT0+Iik7CisKKyAgICBTQ01hbmFnZXIgPSBPcGVuU0NNYW5hZ2VyKE5VTEwsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
U0NfTUFOQUdFUl9BTExfQUNDRVNTKTsKKworICAgIGlmIChTQ01hbmFnZXIgPT0gTlVMTCkKKyAg
ICAgICAgZ290byBmYWlsMTsKKworICAgIFNlcnZpY2UgPSBPcGVuU2VydmljZShTQ01hbmFnZXIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgIE1PTklUT1JfTkFNRSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgU0VSVklDRV9BTExfQUNDRVNTKTsKKworICAgIGlmIChTZXJ2aWNlID09IE5V
TEwpCisgICAgICAgIGdvdG8gZmFpbDI7CisKKyAgICBTdWNjZXNzID0gQ29udHJvbFNlcnZpY2Uo
U2VydmljZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VSVklDRV9DT05UUk9MX1NU
T1AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZTdGF0dXMpOworCisgICAgaWYgKCFT
dWNjZXNzKQorICAgICAgICBnb3RvIGZhaWwzOworCisgICAgU3VjY2VzcyA9IERlbGV0ZVNlcnZp
Y2UoU2VydmljZSk7CisKKyAgICBpZiAoIVN1Y2Nlc3MpCisgICAgICAgIGdvdG8gZmFpbDQ7CisK
KyAgICBDbG9zZVNlcnZpY2VIYW5kbGUoU2VydmljZSk7CisgICAgQ2xvc2VTZXJ2aWNlSGFuZGxl
KFNDTWFuYWdlcik7CisKKyAgICBMb2coIjw9PT09Iik7CisKKyAgICByZXR1cm4gVFJVRTsKKwor
ZmFpbDQ6CisgICAgTG9nKCJmYWlsNCIpOworCitmYWlsMzoKKyAgICBMb2coImZhaWwzIik7CisK
KyAgICBDbG9zZVNlcnZpY2VIYW5kbGUoU2VydmljZSk7CisKK2ZhaWwyOgorICAgIExvZygiZmFp
bDIiKTsKKworICAgIENsb3NlU2VydmljZUhhbmRsZShTQ01hbmFnZXIpOworCitmYWlsMToKKyAg
ICBFcnJvciA9IEdldExhc3RFcnJvcigpOworCisgICAgeworICAgICAgICBQVENIQVIgIE1lc3Nh
Z2U7CisgICAgICAgIE1lc3NhZ2UgPSBHZXRFcnJvck1lc3NhZ2UoRXJyb3IpOworICAgICAgICBM
b2coImZhaWwxICglcykiLCBNZXNzYWdlKTsKKyAgICAgICAgTG9jYWxGcmVlKE1lc3NhZ2UpOwor
ICAgIH0KKworICAgIHJldHVybiBGQUxTRTsKK30KKworc3RhdGljIEJPT0wKK01vbml0b3JFbnRy
eSgKKyAgICBWT0lECisgICAgKQoreworICAgIFNFUlZJQ0VfVEFCTEVfRU5UUlkgVGFibGVbXSA9
IHsKKyAgICAgICAgeyBNT05JVE9SX05BTUUsIE1vbml0b3JNYWluIH0sCisgICAgICAgIHsgTlVM
TCwgTlVMTCB9CisgICAgfTsKKyAgICBIUkVTVUxUICAgICAgICAgICAgIEVycm9yOworCisgICAg
TG9nKCIlcyAoJXMpID09PT0+IiwKKyAgICAgICAgTUFKT1JfVkVSU0lPTl9TVFIgIi4iIE1JTk9S
X1ZFUlNJT05fU1RSICIuIiBNSUNST19WRVJTSU9OX1NUUiAiLiIgQlVJTERfTlVNQkVSX1NUUiwK
KyAgICAgICAgREFZX1NUUiAiLyIgTU9OVEhfU1RSICIvIiBZRUFSX1NUUik7CisKKyAgICBpZiAo
IVN0YXJ0U2VydmljZUN0cmxEaXNwYXRjaGVyKFRhYmxlKSkKKyAgICAgICAgZ290byBmYWlsMTsK
KworICAgIExvZygiJXMgKCVzKSA8PT09PSIsCisgICAgICAgIE1BSk9SX1ZFUlNJT05fU1RSICIu
IiBNSU5PUl9WRVJTSU9OX1NUUiAiLiIgTUlDUk9fVkVSU0lPTl9TVFIgIi4iIEJVSUxEX05VTUJF
Ul9TVFIsCisgICAgICAgIERBWV9TVFIgIi8iIE1PTlRIX1NUUiAiLyIgWUVBUl9TVFIpOworCisg
ICAgcmV0dXJuIFRSVUU7CisKK2ZhaWwxOgorICAgIEVycm9yID0gR2V0TGFzdEVycm9yKCk7CisK
KyAgICB7CisgICAgICAgIFBUQ0hBUiAgTWVzc2FnZTsKKyAgICAgICAgTWVzc2FnZSA9IEdldEVy
cm9yTWVzc2FnZShFcnJvcik7CisgICAgICAgIExvZygiZmFpbDEgKCVzKSIsIE1lc3NhZ2UpOwor
ICAgICAgICBMb2NhbEZyZWUoTWVzc2FnZSk7CisgICAgfQorCisgICAgcmV0dXJuIEZBTFNFOwor
fQorCitpbnQgQ0FMTEJBQ0sKK190V2luTWFpbigKKyAgICBfSW5fICAgICAgICBISU5TVEFOQ0Ug
ICBDdXJyZW50LAorICAgIF9Jbl9vcHRfICAgIEhJTlNUQU5DRSAgIFByZXZpb3VzLAorICAgIF9J
bl8gICAgICAgIExQU1RSICAgICAgIENtZExpbmUsCisgICAgX0luXyAgICAgICAgaW50ICAgICAg
ICAgQ21kU2hvdworICAgICkKK3sKKyAgICBCT09MICAgICAgICAgICAgICAgICAgICBTdWNjZXNz
OworCisgICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihDdXJyZW50KTsKKyAgICBVTlJFRkVSRU5D
RURfUEFSQU1FVEVSKFByZXZpb3VzKTsKKyAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVSKENtZFNo
b3cpOworCisgICAgaWYgKF90Y3NsZW4oQ21kTGluZSkgIT0gMCkgeworICAgICAgICAgaWYgKF90
Y3NpY21wKENtZExpbmUsIFRFWFQoImNyZWF0ZSIpKSA9PSAwKQorICAgICAgICAgICAgIFN1Y2Nl
c3MgPSBNb25pdG9yQ3JlYXRlKCk7CisgICAgICAgICBlbHNlIGlmIChfdGNzaWNtcChDbWRMaW5l
LCBURVhUKCJkZWxldGUiKSkgPT0gMCkKKyAgICAgICAgICAgICBTdWNjZXNzID0gTW9uaXRvckRl
bGV0ZSgpOworICAgICAgICAgZWxzZQorICAgICAgICAgICAgIFN1Y2Nlc3MgPSBGQUxTRTsKKyAg
ICB9IGVsc2UKKyAgICAgICAgU3VjY2VzcyA9IE1vbml0b3JFbnRyeSgpOworCisgICAgcmV0dXJu
IFN1Y2Nlc3MgPyAwIDogMTsKK30KZGlmZiAtLWdpdCBhL3NyYy9tb25pdG9yL3hlbmJ1c19tb25p
dG9yLnJjIGIvc3JjL21vbml0b3IveGVuYnVzX21vbml0b3IucmMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMTk0ODY1NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9tb25pdG9y
L3hlbmJ1c19tb25pdG9yLnJjCkBAIC0wLDAgKzEsNTcgQEAKKy8qIENvcHlyaWdodCAoYykgQ2l0
cml4IFN5c3RlbXMgSW5jLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLAorICogd2l0aCBvciB3
aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZAorICogdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAqICAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUKKyAqICAgICBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICogICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZQorICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlcgorICogICAgIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5ECisgKiBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLAorICogSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLAorICog
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisg
KiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwKKyAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworCisjaW5jbHVkZSA8
d2luZG93cy5oPgorI2luY2x1ZGUgPG50dmVycC5oPgorCisjdW5kZWYgVkVSX0NPTVBBTllOQU1F
X1NUUgorI3VuZGVmIFZFUl9QUk9EVUNUTkFNRV9TVFIKKyN1bmRlZiBWRVJfUFJPRFVDVFZFUlNJ
T04KKyN1bmRlZiBWRVJfUFJPRFVDVFZFUlNJT05fU1RSCisKKyNpbmNsdWRlIDx2ZXJzaW9uLmg+
CisKKyNkZWZpbmUgVkVSX0NPTVBBTllOQU1FX1NUUiAgICAgICAgIFZFTkRPUl9OQU1FX1NUUgor
I2RlZmluZSBWRVJfTEVHQUxDT1BZUklHSFRfU1RSICAgICAgIkNvcHlyaWdodCAoYykgQ2l0cml4
IFN5c3RlbXMgSW5jLiIKKworI2RlZmluZSBWRVJfUFJPRFVDVE5BTUVfU1RSICAgICAgICAgIlhF
TkJVUyIKKyNkZWZpbmUgVkVSX1BST0RVQ1RWRVJTSU9OICAgICAgICAgIE1BSk9SX1ZFUlNJT04s
TUlOT1JfVkVSU0lPTixNSUNST19WRVJTSU9OLEJVSUxEX05VTUJFUgorI2RlZmluZSBWRVJfUFJP
RFVDVFZFUlNJT05fU1RSICAgICAgTUFKT1JfVkVSU0lPTl9TVFIgIi4iIE1JTk9SX1ZFUlNJT05f
U1RSICIuIiBNSUNST19WRVJTSU9OX1NUUiAiLiIgQlVJTERfTlVNQkVSX1NUUgorCisjZGVmaW5l
IFZFUl9JTlRFUk5BTE5BTUVfU1RSIAkgICAgIlhFTkJVU19NT05JVE9SLkVYRSIKKyNkZWZpbmUg
VkVSX0ZJTEVERVNDUklQVElPTl9TVFIgICAgICJYRU5CVVNfTU9OSVRPUiIKKworI2RlZmluZSBW
RVJfRklMRVRZUEUJCSAgICBWRlRfQVBQCisjZGVmaW5lIFZFUl9GSUxFU1VCVFlQRQkJICAgIFZG
VDJfVU5LTk9XTgorCisjaW5jbHVkZSAiY29tbW9uLnZlciIKKyNpbmNsdWRlICJtZXNzYWdlcy5y
YyIKZGlmZiAtLWdpdCBhL3NyYy94ZW5idXMuaW5mIGIvc3JjL3hlbmJ1cy5pbmYKaW5kZXggN2Vj
ZTk1MS4uZGRjMWM0NSAxMDA2NDQKLS0tIGEvc3JjL3hlbmJ1cy5pbmYKKysrIGIvc3JjL3hlbmJ1
cy5pbmYKQEAgLTM1LDEwICszNSwxMiBAQCBDbGFzc0dVSUQ9ezRkMzZlOTdkLWUzMjUtMTFjZS1i
ZmMxLTA4MDAyYmUxMDMxOH0KIFByb3ZpZGVyPSVWZW5kb3IlIAogQ2F0YWxvZ0ZpbGU9eGVuYnVz
LmNhdAogRHJpdmVyVmVyPTAxLzAxLzE5MDAsMC4wLjAuMAorRHJpdmVyUGFja2FnZURpc3BsYXlO
YW1lPSVEaXNrRGVzYyUKIAogW0Rlc3RpbmF0aW9uRGlyc10gCiBEZWZhdWx0RGVzdERpcj0xMiAK
IENvSW5zdF9Db3B5RmlsZXM9MTEKK01vbml0b3JfQ29weUZpbGVzPTExCiAKIFtTb3VyY2VEaXNr
c05hbWVzXQogMD0lRGlza0Rlc2MlCkBAIC00OCw4ICs1MCwxMCBAQCB4ZW4uc3lzPTAsLAogeGVu
YnVzLnN5cz0wLCwKIHhlbmZpbHQuc3lzPTAsLAogeGVuYnVzX2NvaW5zdC5kbGw9MCwsCit4ZW5i
dXNfbW9uaXRvci5leGU9MCwsCit4ZW5idXNfbW9uaXRvci5kbGw9MCwsCiAKLVtYZW5CdXNfQ29w
eWZpbGVzXQorW1hlbkJ1c19Db3B5RmlsZXNdCiB4ZW4uc3lzCiB4ZW5idXMuc3lzCiB4ZW5maWx0
LnN5cwpAQCAtNTcsNiArNjEsMTAgQEAgeGVuZmlsdC5zeXMKIFtDb0luc3RfQ29weUZpbGVzXQog
eGVuYnVzX2NvaW5zdF9ATUFKT1JfVkVSU0lPTkBfQE1JTk9SX1ZFUlNJT05AX0BNSUNST19WRVJT
SU9OQF9AQlVJTERfTlVNQkVSQC5kbGwseGVuYnVzX2NvaW5zdC5kbGwKIAorW01vbml0b3JfQ29w
eUZpbGVzXQoreGVuYnVzX21vbml0b3JfQE1BSk9SX1ZFUlNJT05AX0BNSU5PUl9WRVJTSU9OQF9A
TUlDUk9fVkVSU0lPTkBfQEJVSUxEX05VTUJFUkAuZXhlLHhlbmJ1c19tb25pdG9yLmV4ZQoreGVu
YnVzX21vbml0b3JfQE1BSk9SX1ZFUlNJT05AX0BNSU5PUl9WRVJTSU9OQF9ATUlDUk9fVkVSU0lP
TkBfQEJVSUxEX05VTUJFUkAuZGxsLHhlbmJ1c19tb25pdG9yLmRsbAorCiBbTWFudWZhY3R1cmVy
XSAKICVWZW5kb3IlPUluc3QsTlQkQVJDSCQKIApAQCAtNjksMTEgKzc3LDEzIEBAIHhlbmJ1c19j
b2luc3RfQE1BSk9SX1ZFUlNJT05AX0BNSU5PUl9WRVJTSU9OQF9ATUlDUk9fVkVSU0lPTkBfQEJV
SUxEX05VTUJFUkAuZGxsCiAlWGVuQnVzRGVzYyUJCT1YZW5CdXNfSW5zdCwJUENJXFZFTl81ODUz
JkRFVl8wMDAxCiAKIFtYZW5CdXNfSW5zdF0gCi1Db3B5RmlsZXM9WGVuQnVzX0NvcHlmaWxlcwor
Q29weUZpbGVzPVhlbkJ1c19Db3B5RmlsZXMKK0NvcHlGaWxlcz1Nb25pdG9yX0NvcHlGaWxlcwog
CiBbWGVuQnVzX0luc3QuU2VydmljZXNdCi1BZGRTZXJ2aWNlPXhlbmJ1cywweDAyLFhlbkJ1c19T
ZXJ2aWNlCitBZGRTZXJ2aWNlPXhlbmJ1cywlU1BTVkNJTlNUX0FTU09DU0VSVklDRSUsWGVuQnVz
X1NlcnZpY2UKIEFkZFNlcnZpY2U9eGVuZmlsdCwsWGVuRmlsdF9TZXJ2aWNlLAorQWRkU2Vydmlj
ZT14ZW5idXNfbW9uaXRvciwlU1BTVkNTSU5TVF9TVEFSVFNFUlZJQ0UlLE1vbml0b3JfU2Vydmlj
ZSxNb25pdG9yX0V2ZW50TG9nCiAKIFtYZW5CdXNfU2VydmljZV0gCiBEaXNwbGF5TmFtZT0lWGVu
QnVzRGVzYyUKQEAgLTEwOSw2ICsxMTksMjQgQEAgSEtSLCJQYXJhbWV0ZXJzIiwsMHgwMDAwMDAx
MAogSEtSLCJQYXJhbWV0ZXJzIiwiQUNQSVxQTlAwQTAzIiwweDAwMDAwMDAwLCJERVZJQ0UiCiBI
S1IsIlBhcmFtZXRlcnMiLCJQQ0lJREVcSURFQ2hhbm5lbCIsMHgwMDAwMDAwMCwiRElTSyIKIAor
W01vbml0b3JfU2VydmljZV0KK0Rpc3BsYXlOYW1lPSVNb25pdG9yRGVzYyUKK1NlcnZpY2VUeXBl
PSVTRVJWSUNFX1dJTjMyX09XTl9QUk9DRVNTJQorU3RhcnRUeXBlPSVTRVJWSUNFX0FVVE9fU1RB
UlQlCitFcnJvckNvbnRyb2w9JVNFUlZJQ0VfRVJST1JfTk9STUFMJQorU2VydmljZUJpbmFyeT0l
MTElXHhlbmJ1c19tb25pdG9yX0BNQUpPUl9WRVJTSU9OQF9ATUlOT1JfVkVSU0lPTkBfQE1JQ1JP
X1ZFUlNJT05AX0BCVUlMRF9OVU1CRVJALmV4ZQorQWRkUmVnID0gTW9uaXRvcl9SZXF1ZXN0CisK
K1tNb25pdG9yX1JlcXVlc3RdCitIS1IsIlJlcXVlc3QiLCwweDAwMDAwMDEwCisKK1tNb25pdG9y
X0V2ZW50TG9nXQorQWRkUmVnPU1vbml0b3JfRXZlbnRMb2dfQWRkUmVnCisKK1tNb25pdG9yX0V2
ZW50TG9nX0FkZFJlZ10KK0hLUiwsRXZlbnRNZXNzYWdlRmlsZSwweDAwMDIwMDAwLCIlJVN5c3Rl
bVJvb3QlJVxTeXN0ZW0zMlx4ZW5idXNfbW9uaXRvcl9ATUFKT1JfVkVSU0lPTkBfQE1JTk9SX1ZF
UlNJT05AX0BNSUNST19WRVJTSU9OQF9AQlVJTERfTlVNQkVSQC5kbGwiCitIS1IsLFR5cGVzU3Vw
cG9ydGVkLDB4MDAwMTAwMDEsNworCiBbWGVuQnVzX0luc3QuQ29JbnN0YWxsZXJzXQogQ29weUZp
bGVzPUNvSW5zdF9Db3B5RmlsZXMKIEFkZFJlZz1Db0luc3RfQWRkUmVnCkBAIC0xMjIsNiArMTUw
LDcgQEAgVmVuZG9yPSJAVkVORE9SX05BTUVAIgogRGlza0Rlc2M9IkBQUk9EVUNUX05BTUVAIFBW
IEJ1cyBQYWNrYWdlIiAKIFhlbkJ1c0Rlc2M9IkBQUk9EVUNUX05BTUVAIFBWIEJ1cyIKIFhlbkZp
bHREZXNjPSJAUFJPRFVDVF9OQU1FQCBHZW5lcmljIEJ1cyBGaWx0ZXIiCitNb25pdG9yRGVzYz0i
QFBST0RVQ1RfTkFNRUAgUFYgRHJpdmVyIE1vbml0b3IiCiAKIFNFUlZJQ0VfQk9PVF9TVEFSVD0w
eDAgCiBTRVJWSUNFX1NZU1RFTV9TVEFSVD0weDEgCkBAIC0xMjksOCArMTU4LDEyIEBAIFNFUlZJ
Q0VfQVVUT19TVEFSVD0weDIKIFNFUlZJQ0VfREVNQU5EX1NUQVJUPTB4MyAKIFNFUlZJQ0VfRElT
QUJMRUQ9MHg0IAogCitTRVJWSUNFX1dJTjMyX09XTl9QUk9DRVNTPTB4MTAKIFNFUlZJQ0VfS0VS
TkVMX0RSSVZFUj0weDEgCiBTRVJWSUNFX0VSUk9SX0lHTk9SRT0weDAgCiBTRVJWSUNFX0VSUk9S
X05PUk1BTD0weDEgCiBTRVJWSUNFX0VSUk9SX1NFVkVSRT0weDIgCiBTRVJWSUNFX0VSUk9SX0NS
SVRJQ0FMPTB4MyAKKworU1BTVkNJTlNUX0FTU09DU0VSVklDRT0weDAwMDAwMDAyCitTUFNWQ1NJ
TlNUX1NUQVJUU0VSVklDRT0weDAwMDAwODAwCmRpZmYgLS1naXQgYS92czIwMTIvcGFja2FnZS9w
YWNrYWdlLnZjeHByb2ogYi92czIwMTIvcGFja2FnZS9wYWNrYWdlLnZjeHByb2oKaW5kZXggZWU2
MGJkYi4uYjYwMGE5MyAxMDA2NDQKLS0tIGEvdnMyMDEyL3BhY2thZ2UvcGFja2FnZS52Y3hwcm9q
CisrKyBiL3ZzMjAxMi9wYWNrYWdlL3BhY2thZ2UudmN4cHJvagpAQCAtNDksNiArNDksOSBAQAog
ICAgIDxQcm9qZWN0UmVmZXJlbmNlIEluY2x1ZGU9Ii4uXHhlblx4ZW4udmN4cHJvaiI+CiAgICAg
ICA8UHJvamVjdD57OWM2YTVkNDgtYTMzMS00YjFmLWEwMDQtN2JiNjdiYTViZTFjfTwvUHJvamVj
dD4KICAgICA8L1Byb2plY3RSZWZlcmVuY2U+CisgICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVk
ZT0iLi5ceGVuYnVzX21vbml0b3JceGVuYnVzX21vbml0b3IudmN4cHJvaiI+CisgICAgICA8UHJv
amVjdD57MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfTwvUHJvamVjdD4KKyAg
ICA8L1Byb2plY3RSZWZlcmVuY2U+CiAgIDwvSXRlbUdyb3VwPgogICA8SXRlbUdyb3VwPgogICAg
IDxGaWxlc1RvUGFja2FnZSBJbmNsdWRlPSIkKEtJVClcUmVkaXN0XERJRnhcZHBpbnN0XEVuZ011
aVx4ODZcZHBpbnN0LmV4ZSIgQ29uZGl0aW9uPSInJChQbGF0Zm9ybSknPT0nV2luMzInIiAvPgpk
aWZmIC0tZ2l0IGEvdnMyMDEyL3hlbmJ1cy5zbG4gYi92czIwMTIveGVuYnVzLnNsbgppbmRleCA2
MjZmZDg1Li5lYjNkMDNhIDEwMDY0NAotLS0gYS92czIwMTIveGVuYnVzLnNsbgorKysgYi92czIw
MTIveGVuYnVzLnNsbgpAQCAtMSw1ICsxLDkgQEAKIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIFNv
bHV0aW9uIEZpbGUsIEZvcm1hdCBWZXJzaW9uIDEyLjAwCiAjIFZpc3VhbCBTdHVkaW8gMjAxMgor
UHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJ4ZW5i
dXNfY29pbnN0IiwgInhlbmJ1c19jb2luc3RceGVuYnVzX2NvaW5zdC52Y3hwcm9qIiwgIns0QkY0
MTM3OC1DMDFCLTQwMDItODU4MS01NjNDNUY3MDMzNjJ9IgorRW5kUHJvamVjdAorUHJvamVjdCgi
ezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJ4ZW5idXNfbW9uaXRv
ciIsICJ4ZW5idXNfbW9uaXRvclx4ZW5idXNfbW9uaXRvci52Y3hwcm9qIiwgInsyRTYxRDJDQy04
NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9IgorRW5kUHJvamVjdAogUHJvamVjdCgiezhCQzlD
RUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJ4ZW4iLCAieGVuXHhlbi52Y3hw
cm9qIiwgIns5QzZBNUQ0OC1BMzMxLTRCMUYtQTAwNC03QkI2N0JBNUJFMUN9IgogRW5kUHJvamVj
dAogUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJ4
ZW5maWx0IiwgInhlbmZpbHRceGVuZmlsdC52Y3hwcm9qIiwgIntENzQxMUIyQy0yQzQzLTQzNEQt
OUY1Ni1FMTBBM0QyRjVCQUR9IgpAQCAtNywxMSArMTEsNiBAQCBQcm9qZWN0KCJ7OEJDOUNFQjgt
OEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gInhlbmZpbHQiLCAieGVuZmlsdFx4ZW5m
aWx0LgogCQl7OUM2QTVENDgtQTMzMS00QjFGLUEwMDQtN0JCNjdCQTVCRTFDfSA9IHs5QzZBNUQ0
OC1BMzMxLTRCMUYtQTAwNC03QkI2N0JBNUJFMUN9CiAJRW5kUHJvamVjdFNlY3Rpb24KIEVuZFBy
b2plY3QKLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9Iikg
PSAieGVuYnVzX2NvaW5zdCIsICJ4ZW5idXNfY29pbnN0XHhlbmJ1c19jb2luc3QudmN4cHJvaiIs
ICJ7NEJGNDEzNzgtQzAxQi00MDAyLTg1ODEtNTYzQzVGNzAzMzYyfSIKLQlQcm9qZWN0U2VjdGlv
bihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0Ci0JCXs5QzZBNUQ0OC1BMzMxLTRC
MUYtQTAwNC03QkI2N0JBNUJFMUN9ID0gezlDNkE1RDQ4LUEzMzEtNEIxRi1BMDA0LTdCQjY3QkE1
QkUxQ30KLQlFbmRQcm9qZWN0U2VjdGlvbgotRW5kUHJvamVjdAogUHJvamVjdCgiezhCQzlDRUI4
LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJ4ZW5idXMiLCAieGVuYnVzXHhlbmJ1
cy52Y3hwcm9qIiwgInsxNEMxNkMyOS03N0M5LTQ3NUItQTYxOC0xQjAxRTY3Q0Y5ODV9IgogCVBy
b2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QKIAkJezlDNkE1
RDQ4LUEzMzEtNEIxRi1BMDA0LTdCQjY3QkE1QkUxQ30gPSB7OUM2QTVENDgtQTMzMS00QjFGLUEw
MDQtN0JCNjdCQTVCRTFDfQpAQCAtMjMsNiArMjIsNyBAQCBQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0
QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gInBhY2thZ2UiLCAicGFja2FnZVxwYWNrYWdl
LgogCQl7RDc0MTFCMkMtMkM0My00MzRELTlGNTYtRTEwQTNEMkY1QkFEfSA9IHtENzQxMUIyQy0y
QzQzLTQzNEQtOUY1Ni1FMTBBM0QyRjVCQUR9CiAJCXs5QzZBNUQ0OC1BMzMxLTRCMUYtQTAwNC03
QkI2N0JBNUJFMUN9ID0gezlDNkE1RDQ4LUEzMzEtNEIxRi1BMDA0LTdCQjY3QkE1QkUxQ30KIAkJ
ezRCRjQxMzc4LUMwMUItNDAwMi04NTgxLTU2M0M1RjcwMzM2Mn0gPSB7NEJGNDEzNzgtQzAxQi00
MDAyLTg1ODEtNTYzQzVGNzAzMzYyfQorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZE
N0JCRDNCfSA9IHsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9CiAJRW5kUHJv
amVjdFNlY3Rpb24KIEVuZFByb2plY3QKIEdsb2JhbApAQCAtNDEsNiArNDEsNTQgQEAgR2xvYmFs
CiAJCVdpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0
CiAJRW5kR2xvYmFsU2VjdGlvbgogCUdsb2JhbFNlY3Rpb24oUHJvamVjdENvbmZpZ3VyYXRpb25Q
bGF0Zm9ybXMpID0gcG9zdFNvbHV0aW9uCisJCXs0QkY0MTM3OC1DMDFCLTQwMDItODU4MS01NjND
NUY3MDMzNjJ9LldpbmRvd3MgNyBEZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIDcgRGVi
dWd8V2luMzIKKwkJezRCRjQxMzc4LUMwMUItNDAwMi04NTgxLTU2M0M1RjcwMzM2Mn0uV2luZG93
cyA3IERlYnVnfFdpbjMyLkJ1aWxkLjAgPSBXaW5kb3dzIDcgRGVidWd8V2luMzIKKwkJezRCRjQx
Mzc4LUMwMUItNDAwMi04NTgxLTU2M0M1RjcwMzM2Mn0uV2luZG93cyA3IERlYnVnfHg2NC5BY3Rp
dmVDZmcgPSBXaW5kb3dzIDcgRGVidWd8eDY0CisJCXs0QkY0MTM3OC1DMDFCLTQwMDItODU4MS01
NjNDNUY3MDMzNjJ9LldpbmRvd3MgNyBEZWJ1Z3x4NjQuQnVpbGQuMCA9IFdpbmRvd3MgNyBEZWJ1
Z3x4NjQKKwkJezRCRjQxMzc4LUMwMUItNDAwMi04NTgxLTU2M0M1RjcwMzM2Mn0uV2luZG93cyA3
IFJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gV2luZG93cyA3IFJlbGVhc2V8V2luMzIKKwkJezRC
RjQxMzc4LUMwMUItNDAwMi04NTgxLTU2M0M1RjcwMzM2Mn0uV2luZG93cyA3IFJlbGVhc2V8V2lu
MzIuQnVpbGQuMCA9IFdpbmRvd3MgNyBSZWxlYXNlfFdpbjMyCisJCXs0QkY0MTM3OC1DMDFCLTQw
MDItODU4MS01NjNDNUY3MDMzNjJ9LldpbmRvd3MgNyBSZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBX
aW5kb3dzIDcgUmVsZWFzZXx4NjQKKwkJezRCRjQxMzc4LUMwMUItNDAwMi04NTgxLTU2M0M1Rjcw
MzM2Mn0uV2luZG93cyA3IFJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBXaW5kb3dzIDcgUmVsZWFzZXx4
NjQKKwkJezRCRjQxMzc4LUMwMUItNDAwMi04NTgxLTU2M0M1RjcwMzM2Mn0uV2luZG93cyA4IERl
YnVnfFdpbjMyLkFjdGl2ZUNmZyA9IFdpbmRvd3MgOCBEZWJ1Z3xXaW4zMgorCQl7NEJGNDEzNzgt
QzAxQi00MDAyLTg1ODEtNTYzQzVGNzAzMzYyfS5XaW5kb3dzIDggRGVidWd8V2luMzIuQnVpbGQu
MCA9IFdpbmRvd3MgOCBEZWJ1Z3xXaW4zMgorCQl7NEJGNDEzNzgtQzAxQi00MDAyLTg1ODEtNTYz
QzVGNzAzMzYyfS5XaW5kb3dzIDggRGVidWd8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgOCBEZWJ1
Z3x4NjQKKwkJezRCRjQxMzc4LUMwMUItNDAwMi04NTgxLTU2M0M1RjcwMzM2Mn0uV2luZG93cyA4
IERlYnVnfHg2NC5CdWlsZC4wID0gV2luZG93cyA4IERlYnVnfHg2NAorCQl7NEJGNDEzNzgtQzAx
Qi00MDAyLTg1ODEtNTYzQzVGNzAzMzYyfS5XaW5kb3dzIDggUmVsZWFzZXxXaW4zMi5BY3RpdmVD
ZmcgPSBXaW5kb3dzIDggUmVsZWFzZXxXaW4zMgorCQl7NEJGNDEzNzgtQzAxQi00MDAyLTg1ODEt
NTYzQzVGNzAzMzYyfS5XaW5kb3dzIDggUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gV2luZG93cyA4
IFJlbGVhc2V8V2luMzIKKwkJezRCRjQxMzc4LUMwMUItNDAwMi04NTgxLTU2M0M1RjcwMzM2Mn0u
V2luZG93cyA4IFJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgOCBSZWxlYXNlfHg2NAor
CQl7NEJGNDEzNzgtQzAxQi00MDAyLTg1ODEtNTYzQzVGNzAzMzYyfS5XaW5kb3dzIDggUmVsZWFz
ZXx4NjQuQnVpbGQuMCA9IFdpbmRvd3MgOCBSZWxlYXNlfHg2NAorCQl7NEJGNDEzNzgtQzAxQi00
MDAyLTg1ODEtNTYzQzVGNzAzMzYyfS5XaW5kb3dzIFZpc3RhIERlYnVnfFdpbjMyLkFjdGl2ZUNm
ZyA9IFdpbmRvd3MgVmlzdGEgRGVidWd8V2luMzIKKwkJezRCRjQxMzc4LUMwMUItNDAwMi04NTgx
LTU2M0M1RjcwMzM2Mn0uV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMi5CdWlsZC4wID0gV2luZG93
cyBWaXN0YSBEZWJ1Z3xXaW4zMgorCQl7NEJGNDEzNzgtQzAxQi00MDAyLTg1ODEtNTYzQzVGNzAz
MzYyfS5XaW5kb3dzIFZpc3RhIERlYnVnfHg2NC5BY3RpdmVDZmcgPSBXaW5kb3dzIFZpc3RhIERl
YnVnfHg2NAorCQl7NEJGNDEzNzgtQzAxQi00MDAyLTg1ODEtNTYzQzVGNzAzMzYyfS5XaW5kb3dz
IFZpc3RhIERlYnVnfHg2NC5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBEZWJ1Z3x4NjQKKwkJezRC
RjQxMzc4LUMwMUItNDAwMi04NTgxLTU2M0M1RjcwMzM2Mn0uV2luZG93cyBWaXN0YSBSZWxlYXNl
fFdpbjMyLkFjdGl2ZUNmZyA9IFdpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMgorCQl7NEJGNDEz
NzgtQzAxQi00MDAyLTg1ODEtNTYzQzVGNzAzMzYyfS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2lu
MzIuQnVpbGQuMCA9IFdpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMgorCQl7NEJGNDEzNzgtQzAx
Qi00MDAyLTg1ODEtNTYzQzVGNzAzMzYyfS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0LkFjdGl2
ZUNmZyA9IFdpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQKKwkJezRCRjQxMzc4LUMwMUItNDAwMi04
NTgxLTU2M0M1RjcwMzM2Mn0uV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NC5CdWlsZC4wID0gV2lu
ZG93cyBWaXN0YSBSZWxlYXNlfHg2NAorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZE
N0JCRDNCfS5XaW5kb3dzIDcgRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gV2luZG93cyA3IERlYnVn
fFdpbjMyCisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3Mg
NyBEZWJ1Z3xXaW4zMi5CdWlsZC4wID0gV2luZG93cyA3IERlYnVnfFdpbjMyCisJCXsyRTYxRDJD
Qy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgNyBEZWJ1Z3x4NjQuQWN0aXZl
Q2ZnID0gV2luZG93cyA3IERlYnVnfHg2NAorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhE
QUZEN0JCRDNCfS5XaW5kb3dzIDcgRGVidWd8eDY0LkJ1aWxkLjAgPSBXaW5kb3dzIDcgRGVidWd8
eDY0CisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgNyBS
ZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFdpbmRvd3MgNyBSZWxlYXNlfFdpbjMyCisJCXsyRTYx
RDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgNyBSZWxlYXNlfFdpbjMy
LkJ1aWxkLjAgPSBXaW5kb3dzIDcgUmVsZWFzZXxXaW4zMgorCQl7MkU2MUQyQ0MtODY1RS00NDJD
LThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIDcgUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gV2lu
ZG93cyA3IFJlbGVhc2V8eDY0CisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJE
M0J9LldpbmRvd3MgNyBSZWxlYXNlfHg2NC5CdWlsZC4wID0gV2luZG93cyA3IFJlbGVhc2V8eDY0
CisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgOCBEZWJ1
Z3xXaW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIDggRGVidWd8V2luMzIKKwkJezJFNjFEMkNDLTg2
NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyA4IERlYnVnfFdpbjMyLkJ1aWxkLjAg
PSBXaW5kb3dzIDggRGVidWd8V2luMzIKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFG
RDdCQkQzQn0uV2luZG93cyA4IERlYnVnfHg2NC5BY3RpdmVDZmcgPSBXaW5kb3dzIDggRGVidWd8
eDY0CisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgOCBE
ZWJ1Z3x4NjQuQnVpbGQuMCA9IFdpbmRvd3MgOCBEZWJ1Z3x4NjQKKwkJezJFNjFEMkNDLTg2NUUt
NDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyA4IFJlbGVhc2V8V2luMzIuQWN0aXZlQ2Zn
ID0gV2luZG93cyA4IFJlbGVhc2V8V2luMzIKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4
REFGRDdCQkQzQn0uV2luZG93cyA4IFJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFdpbmRvd3MgOCBS
ZWxlYXNlfFdpbjMyCisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9Lldp
bmRvd3MgOCBSZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBXaW5kb3dzIDggUmVsZWFzZXx4NjQKKwkJ
ezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyA4IFJlbGVhc2V8
eDY0LkJ1aWxkLjAgPSBXaW5kb3dzIDggUmVsZWFzZXx4NjQKKwkJezJFNjFEMkNDLTg2NUUtNDQy
Qy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMi5BY3RpdmVDZmcg
PSBXaW5kb3dzIFZpc3RhIERlYnVnfFdpbjMyCisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1C
OERBRkQ3QkJEM0J9LldpbmRvd3MgVmlzdGEgRGVidWd8V2luMzIuQnVpbGQuMCA9IFdpbmRvd3Mg
VmlzdGEgRGVidWd8V2luMzIKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQz
Qn0uV2luZG93cyBWaXN0YSBEZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gV2luZG93cyBWaXN0YSBEZWJ1
Z3x4NjQKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBW
aXN0YSBEZWJ1Z3x4NjQuQnVpbGQuMCA9IFdpbmRvd3MgVmlzdGEgRGVidWd8eDY0CisJCXsyRTYx
RDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXxX
aW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzIKKwkJezJFNjFEMkND
LTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMy
LkJ1aWxkLjAgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzIKKwkJezJFNjFEMkNDLTg2NUUt
NDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NC5BY3RpdmVD
ZmcgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0CisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4
My1COERBRkQ3QkJEM0J9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFdpbmRv
d3MgVmlzdGEgUmVsZWFzZXx4NjQKIAkJezlDNkE1RDQ4LUEzMzEtNEIxRi1BMDA0LTdCQjY3QkE1
QkUxQ30uV2luZG93cyA3IERlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IFdpbmRvd3MgNyBEZWJ1Z3xX
aW4zMgogCQl7OUM2QTVENDgtQTMzMS00QjFGLUEwMDQtN0JCNjdCQTVCRTFDfS5XaW5kb3dzIDcg
RGVidWd8V2luMzIuQnVpbGQuMCA9IFdpbmRvd3MgNyBEZWJ1Z3xXaW4zMgogCQl7OUM2QTVENDgt
QTMzMS00QjFGLUEwMDQtN0JCNjdCQTVCRTFDfS5XaW5kb3dzIDcgRGVidWd8eDY0LkFjdGl2ZUNm
ZyA9IFdpbmRvd3MgNyBEZWJ1Z3x4NjQKQEAgLTg5LDMwICsxMzcsNiBAQCBHbG9iYWwKIAkJe0Q3
NDExQjJDLTJDNDMtNDM0RC05RjU2LUUxMEEzRDJGNUJBRH0uV2luZG93cyBWaXN0YSBSZWxlYXNl
fFdpbjMyLkJ1aWxkLjAgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzIKIAkJe0Q3NDExQjJD
LTJDNDMtNDM0RC05RjU2LUUxMEEzRDJGNUJBRH0uV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NC5B
Y3RpdmVDZmcgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0CiAJCXtENzQxMUIyQy0yQzQzLTQz
NEQtOUY1Ni1FMTBBM0QyRjVCQUR9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQuQnVpbGQuMCA9
IFdpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQKLQkJezRCRjQxMzc4LUMwMUItNDAwMi04NTgxLTU2
M0M1RjcwMzM2Mn0uV2luZG93cyA3IERlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IFdpbmRvd3MgNyBE
ZWJ1Z3xXaW4zMgotCQl7NEJGNDEzNzgtQzAxQi00MDAyLTg1ODEtNTYzQzVGNzAzMzYyfS5XaW5k
b3dzIDcgRGVidWd8V2luMzIuQnVpbGQuMCA9IFdpbmRvd3MgNyBEZWJ1Z3xXaW4zMgotCQl7NEJG
NDEzNzgtQzAxQi00MDAyLTg1ODEtNTYzQzVGNzAzMzYyfS5XaW5kb3dzIDcgRGVidWd8eDY0LkFj
dGl2ZUNmZyA9IFdpbmRvd3MgNyBEZWJ1Z3x4NjQKLQkJezRCRjQxMzc4LUMwMUItNDAwMi04NTgx
LTU2M0M1RjcwMzM2Mn0uV2luZG93cyA3IERlYnVnfHg2NC5CdWlsZC4wID0gV2luZG93cyA3IERl
YnVnfHg2NAotCQl7NEJGNDEzNzgtQzAxQi00MDAyLTg1ODEtNTYzQzVGNzAzMzYyfS5XaW5kb3dz
IDcgUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIDcgUmVsZWFzZXxXaW4zMgotCQl7
NEJGNDEzNzgtQzAxQi00MDAyLTg1ODEtNTYzQzVGNzAzMzYyfS5XaW5kb3dzIDcgUmVsZWFzZXxX
aW4zMi5CdWlsZC4wID0gV2luZG93cyA3IFJlbGVhc2V8V2luMzIKLQkJezRCRjQxMzc4LUMwMUIt
NDAwMi04NTgxLTU2M0M1RjcwMzM2Mn0uV2luZG93cyA3IFJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9
IFdpbmRvd3MgNyBSZWxlYXNlfHg2NAotCQl7NEJGNDEzNzgtQzAxQi00MDAyLTg1ODEtNTYzQzVG
NzAzMzYyfS5XaW5kb3dzIDcgUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFdpbmRvd3MgNyBSZWxlYXNl
fHg2NAotCQl7NEJGNDEzNzgtQzAxQi00MDAyLTg1ODEtNTYzQzVGNzAzMzYyfS5XaW5kb3dzIDgg
RGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gV2luZG93cyA4IERlYnVnfFdpbjMyCi0JCXs0QkY0MTM3
OC1DMDFCLTQwMDItODU4MS01NjNDNUY3MDMzNjJ9LldpbmRvd3MgOCBEZWJ1Z3xXaW4zMi5CdWls
ZC4wID0gV2luZG93cyA4IERlYnVnfFdpbjMyCi0JCXs0QkY0MTM3OC1DMDFCLTQwMDItODU4MS01
NjNDNUY3MDMzNjJ9LldpbmRvd3MgOCBEZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gV2luZG93cyA4IERl
YnVnfHg2NAotCQl7NEJGNDEzNzgtQzAxQi00MDAyLTg1ODEtNTYzQzVGNzAzMzYyfS5XaW5kb3dz
IDggRGVidWd8eDY0LkJ1aWxkLjAgPSBXaW5kb3dzIDggRGVidWd8eDY0Ci0JCXs0QkY0MTM3OC1D
MDFCLTQwMDItODU4MS01NjNDNUY3MDMzNjJ9LldpbmRvd3MgOCBSZWxlYXNlfFdpbjMyLkFjdGl2
ZUNmZyA9IFdpbmRvd3MgOCBSZWxlYXNlfFdpbjMyCi0JCXs0QkY0MTM3OC1DMDFCLTQwMDItODU4
MS01NjNDNUY3MDMzNjJ9LldpbmRvd3MgOCBSZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBXaW5kb3dz
IDggUmVsZWFzZXxXaW4zMgotCQl7NEJGNDEzNzgtQzAxQi00MDAyLTg1ODEtNTYzQzVGNzAzMzYy
fS5XaW5kb3dzIDggUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gV2luZG93cyA4IFJlbGVhc2V8eDY0
Ci0JCXs0QkY0MTM3OC1DMDFCLTQwMDItODU4MS01NjNDNUY3MDMzNjJ9LldpbmRvd3MgOCBSZWxl
YXNlfHg2NC5CdWlsZC4wID0gV2luZG93cyA4IFJlbGVhc2V8eDY0Ci0JCXs0QkY0MTM3OC1DMDFC
LTQwMDItODU4MS01NjNDNUY3MDMzNjJ9LldpbmRvd3MgVmlzdGEgRGVidWd8V2luMzIuQWN0aXZl
Q2ZnID0gV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMgotCQl7NEJGNDEzNzgtQzAxQi00MDAyLTg1
ODEtNTYzQzVGNzAzMzYyfS5XaW5kb3dzIFZpc3RhIERlYnVnfFdpbjMyLkJ1aWxkLjAgPSBXaW5k
b3dzIFZpc3RhIERlYnVnfFdpbjMyCi0JCXs0QkY0MTM3OC1DMDFCLTQwMDItODU4MS01NjNDNUY3
MDMzNjJ9LldpbmRvd3MgVmlzdGEgRGVidWd8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgVmlzdGEg
RGVidWd8eDY0Ci0JCXs0QkY0MTM3OC1DMDFCLTQwMDItODU4MS01NjNDNUY3MDMzNjJ9LldpbmRv
d3MgVmlzdGEgRGVidWd8eDY0LkJ1aWxkLjAgPSBXaW5kb3dzIFZpc3RhIERlYnVnfHg2NAotCQl7
NEJGNDEzNzgtQzAxQi00MDAyLTg1ODEtNTYzQzVGNzAzMzYyfS5XaW5kb3dzIFZpc3RhIFJlbGVh
c2V8V2luMzIuQWN0aXZlQ2ZnID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyCi0JCXs0QkY0
MTM3OC1DMDFCLTQwMDItODU4MS01NjNDNUY3MDMzNjJ9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXxX
aW4zMi5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyCi0JCXs0QkY0MTM3OC1D
MDFCLTQwMDItODU4MS01NjNDNUY3MDMzNjJ9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQuQWN0
aXZlQ2ZnID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NAotCQl7NEJGNDEzNzgtQzAxQi00MDAy
LTg1ODEtNTYzQzVGNzAzMzYyfS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBX
aW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0CiAJCXsxNEMxNkMyOS03N0M5LTQ3NUItQTYxOC0xQjAx
RTY3Q0Y5ODV9LldpbmRvd3MgNyBEZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIDcgRGVi
dWd8V2luMzIKIAkJezE0QzE2QzI5LTc3QzktNDc1Qi1BNjE4LTFCMDFFNjdDRjk4NX0uV2luZG93
cyA3IERlYnVnfFdpbjMyLkJ1aWxkLjAgPSBXaW5kb3dzIDcgRGVidWd8V2luMzIKIAkJezE0QzE2
QzI5LTc3QzktNDc1Qi1BNjE4LTFCMDFFNjdDRjk4NX0uV2luZG93cyA3IERlYnVnfHg2NC5BY3Rp
dmVDZmcgPSBXaW5kb3dzIDcgRGVidWd8eDY0CmRpZmYgLS1naXQgYS92czIwMTIveGVuYnVzX21v
bml0b3IveGVuYnVzX21vbml0b3IudmN4cHJvaiBiL3ZzMjAxMi94ZW5idXNfbW9uaXRvci94ZW5i
dXNfbW9uaXRvci52Y3hwcm9qCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJk
OGY4MDEKLS0tIC9kZXYvbnVsbAorKysgYi92czIwMTIveGVuYnVzX21vbml0b3IveGVuYnVzX21v
bml0b3IudmN4cHJvagpAQCAtMCwwICsxLDgyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29k
aW5nPSJ1dGYtOCI/PgorPFByb2plY3QgRGVmYXVsdFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNp
b249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21z
YnVpbGQvMjAwMyI+CisgIDxJbXBvcnQgUHJvamVjdD0iLi5cY29uZmlncy5wcm9wcyIgLz4KKyAg
PFByb3BlcnR5R3JvdXAgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8Q2hhcmFjdGVyU2V0
Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgorICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0Fw
cGxpY2F0aW9uRm9yRHJpdmVyczguMDwvUGxhdGZvcm1Ub29sc2V0PgorICAgIDxDb25maWd1cmF0
aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+CisgIDwvUHJvcGVydHlHcm91
cD4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPgorICAgIDxDb25maWd1cmF0aW9u
PldpbmRvd3MgVmlzdGEgRGVidWc8L0NvbmZpZ3VyYXRpb24+CisgICAgPFBsYXRmb3JtIENvbmRp
dGlvbj0iJyQoUGxhdGZvcm0pJyA9PSAnJyI+V2luMzI8L1BsYXRmb3JtPgorICAgIDxEZWJ1Z2dl
ckZsYXZvcj5EYmdlbmdLZXJuZWxEZWJ1Z2dlcjwvRGVidWdnZXJGbGF2b3I+CisgIDwvUHJvcGVy
dHlHcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5D
cHAuRGVmYXVsdC5wcm9wcyIgLz4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPgor
ICAgIDxQcm9qZWN0R3VpZD57MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfTwv
UHJvamVjdEd1aWQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIuLlx0
YXJnZXRzLnByb3BzIiAvPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWlj
cm9zb2Z0LkNwcC5wcm9wcyIgLz4KKyAgPFByb3BlcnR5R3JvdXA+CisgICAgPEluY2x1ZGVQYXRo
PiQoSW5jbHVkZVBhdGgpPC9JbmNsdWRlUGF0aD4KKyAgICA8UnVuQ29kZUFuYWx5c2lzPnRydWU8
L1J1bkNvZGVBbmFseXNpcz4KKyAgICA8RW5hYmxlSW5mMmNhdD5mYWxzZTwvRW5hYmxlSW5mMmNh
dD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cD4KKyAgICA8Q3VzdG9tQnVp
bGRBZnRlclRhcmdldHM+TGluazwvQ3VzdG9tQnVpbGRBZnRlclRhcmdldHM+CisgIDwvUHJvcGVy
dHlHcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXA+CisgICAgPENsQ29tcGlsZT4KKyAgICAg
IDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPiQoU29sdXRpb25EaXIpLi5caW5jbHVkZTsl
KEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9y
aWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19XSU5ET1dTO19DUlRf
U0VDVVJFX05PX1dBUk5JTkdTO19fTU9EVUxFX189IlhFTkJVU19NT05JVE9SIjslKFByZXByb2Nl
c3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8V2Fybmlu
Z0xldmVsPkVuYWJsZUFsbFdhcm5pbmdzPC9XYXJuaW5nTGV2ZWw+CisgICAgICA8RGlzYWJsZVNw
ZWNpZmljV2FybmluZ3M+NDEyNzs0NzExOzQ1NDg7NDgyMDs0NjY4OzQyNTU7NjAwMTs2MDU0OzI4
MTk2OyUoRGlzYWJsZVNwZWNpZmljV2FybmluZ3MpPC9EaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz4K
KyAgICAgIDxNdWx0aVByb2Nlc3NvckNvbXBpbGF0aW9uPnRydWU8L011bHRpUHJvY2Vzc29yQ29t
cGlsYXRpb24+CisgICAgICA8RW5hYmxlUFJFZmFzdD50cnVlPC9FbmFibGVQUkVmYXN0PgorICAg
ICAgPFJ1bnRpbWVMaWJyYXJ5IENvbmRpdGlvbj0iJyQoVXNlRGVidWdMaWJyYXJpZXMpJz09J3Ry
dWUnIj5NdWx0aVRocmVhZGVkRGVidWc8L1J1bnRpbWVMaWJyYXJ5PgorICAgICAgPFJ1bnRpbWVM
aWJyYXJ5IENvbmRpdGlvbj0iJyQoVXNlRGVidWdMaWJyYXJpZXMpJz09J2ZhbHNlJyI+TXVsdGlU
aHJlYWRlZDwvUnVudGltZUxpYnJhcnk+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+Cisg
ICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz53dHNhcGkzMi5saWI7JShBZGRpdGlvbmFsRGVw
ZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAgICA8L0xpbms+CisgICAgPFJl
c291cmNlQ29tcGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPiQoU29s
dXRpb25EaXIpLi5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRp
dGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgIDwvUmVzb3VyY2VDb21waWxlPgorICA8L0l0
ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQo
UGxhdGZvcm0pJz09J1dpbjMyJyI+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxQcmVwcm9jZXNz
b3JEZWZpbml0aW9ucz5fX2kzODZfXzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJv
Y2Vzc29yRGVmaW5pdGlvbnM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPEN1c3RvbUJ1aWxkU3Rl
cD4KKyAgICAgIDxPdXRwdXRzPiQoVGFyZ2V0RGlyKSQoVGFyZ2V0TmFtZSkuZGxsPC9PdXRwdXRz
PgorICAgICAgPElucHV0cz4kKEludERpcikkKFRhcmdldE5hbWUpLnJlczwvSW5wdXRzPgorICAg
ICAgPENvbW1hbmQ+bGluayAtbWFjaGluZTp4ODYgLWRsbCAtbm9lbnRyeSAtb3V0OiUoT3V0cHV0
cykgJShJbnB1dHMpPC9Db21tYW5kPgorICAgIDwvQ3VzdG9tQnVpbGRTdGVwPgorICA8L0l0ZW1E
ZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoUGxh
dGZvcm0pJz09J3g2NCciPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8UHJlcHJvY2Vzc29yRGVm
aW5pdGlvbnM+X194ODZfNjRfXzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vz
c29yRGVmaW5pdGlvbnM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPEN1c3RvbUJ1aWxkU3RlcD4K
KyAgICAgIDxPdXRwdXRzPiQoVGFyZ2V0RGlyKSQoVGFyZ2V0TmFtZSkuZGxsPC9PdXRwdXRzPgor
ICAgICAgPElucHV0cz4kKEludERpcikkKFRhcmdldE5hbWUpLnJlczwvSW5wdXRzPgorICAgICAg
PENvbW1hbmQ+bGluayAtbWFjaGluZTp4NjQgLWRsbCAtbm9lbnRyeSAtb3V0OiUoT3V0cHV0cykg
JShJbnB1dHMpPC9Db21tYW5kPgorICAgIDwvQ3VzdG9tQnVpbGRTdGVwPgorICA8L0l0ZW1EZWZp
bml0aW9uR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPEZpbGVzVG9QYWNrYWdlIEluY2x1ZGU9
IiQoVGFyZ2V0UGF0aCkiIC8+CisgICAgPEZpbGVzVG9QYWNrYWdlIEluY2x1ZGU9IiQoT3V0RGly
KSQoVGFyZ2V0TmFtZSkucGRiIiAvPgorICAgIDxGaWxlc1RvUGFja2FnZSBJbmNsdWRlPSIkKE91
dERpcikkKFRhcmdldE5hbWUpLmRsbCIgLz4KKyAgICA8RmlsZXNUb1BhY2thZ2UgSW5jbHVkZT0i
QChJbmYtPiclKENvcHlPdXRwdXQpJykiIENvbmRpdGlvbj0iJ0AoSW5mKSchPScnIiAvPgorICA8
L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8TWVzc2FnZUNvbXBpbGUgSW5jbHVkZT0i
Li5cLi5cc3JjXG1vbml0b3JcbWVzc2FnZXMubWMiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRl
bUdyb3VwPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXG1vbml0b3JcbW9uaXRv
ci5jIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8UmVzb3VyY2VDb21w
aWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1xtb25pdG9yXHhlbmJ1c19tb25pdG9yLnJjIiAvPgorICA8
L0l0ZW1Hcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29m
dC5DcHAudGFyZ2V0cyIgLz4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS92czIwMTIveGVuYnVzX21vbml0b3IveGVuYnVzX21vbml0b3IudmN4cHJv
ai51c2VyIGIvdnMyMDEyL3hlbmJ1c19tb25pdG9yL3hlbmJ1c19tb25pdG9yLnZjeHByb2oudXNl
cgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OGVjY2U4Ci0tLSAvZGV2L251
bGwKKysrIGIvdnMyMDEyL3hlbmJ1c19tb25pdG9yL3hlbmJ1c19tb25pdG9yLnZjeHByb2oudXNl
cgpAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+
Cis8UHJvamVjdCBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jv
c29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+CisgIDxQcm9wZXJ0eUdyb3VwPgorICAg
IDxTaWduTW9kZT5UZXN0U2lnbjwvU2lnbk1vZGU+CisgICAgPFRlc3RDZXJ0aWZpY2F0ZT4uLlwu
LlxzcmNceGVuYnVzLnBmeDwvVGVzdENlcnRpZmljYXRlPgorICAgIDxUaW1lU3RhbXBTZXJ2ZXI+
aHR0cDovL3RpbWVzdGFtcC52ZXJpc2lnbi5jb20vc2NyaXB0cy90aW1zdGFtcC5kbGw8L1RpbWVT
dGFtcFNlcnZlcj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorPC9Qcm9qZWN0PgpkaWZmIC0tZ2l0IGEv
dnMyMDEzL3BhY2thZ2UvcGFja2FnZS52Y3hwcm9qIGIvdnMyMDEzL3BhY2thZ2UvcGFja2FnZS52
Y3hwcm9qCmluZGV4IGFlMWMyMzAuLmMzYTZjY2UgMTAwNjQ0Ci0tLSBhL3ZzMjAxMy9wYWNrYWdl
L3BhY2thZ2UudmN4cHJvagorKysgYi92czIwMTMvcGFja2FnZS9wYWNrYWdlLnZjeHByb2oKQEAg
LTUwLDYgKzUwLDkgQEAKICAgICA8UHJvamVjdFJlZmVyZW5jZSBJbmNsdWRlPSIuLlx4ZW5ceGVu
LnZjeHByb2oiPgogICAgICAgPFByb2plY3Q+ezljNmE1ZDQ4LWEzMzEtNGIxZi1hMDA0LTdiYjY3
YmE1YmUxY308L1Byb2plY3Q+CiAgICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgorICAgIDxQcm9qZWN0
UmVmZXJlbmNlIEluY2x1ZGU9Ii4uXHhlbmJ1c19tb25pdG9yXHhlbmJ1c19tb25pdG9yLnZjeHBy
b2oiPgorICAgICAgPFByb2plY3Q+ezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQz
Qn08L1Byb2plY3Q+CisgICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgogICA8L0l0ZW1Hcm91cD4KICAg
PEl0ZW1Hcm91cD4KICAgICA8RmlsZXNUb1BhY2thZ2UgSW5jbHVkZT0iJChLSVQpXFJlZGlzdFxE
SUZ4XGRwaW5zdFxFbmdNdWlceDg2XGRwaW5zdC5leGUiIENvbmRpdGlvbj0iJyQoUGxhdGZvcm0p
Jz09J1dpbjMyJyIgLz4KZGlmZiAtLWdpdCBhL3ZzMjAxMy94ZW5idXMuc2xuIGIvdnMyMDEzL3hl
bmJ1cy5zbG4KaW5kZXggMDBjMjFmOS4uMDEwNDJjNiAxMDA2NDQKLS0tIGEvdnMyMDEzL3hlbmJ1
cy5zbG4KKysrIGIvdnMyMDEzL3hlbmJ1cy5zbG4KQEAgLTEsNSArMSwxMSBAQAogTWljcm9zb2Z0
IFZpc3VhbCBTdHVkaW8gU29sdXRpb24gRmlsZSwgRm9ybWF0IFZlcnNpb24gMTIuMDAKLSMgVmlz
dWFsIFN0dWRpbyAxMQorIyBWaXN1YWwgU3R1ZGlvIEV4cHJlc3MgMjAxMyBmb3IgV2luZG93cyBE
ZXNrdG9wCitWaXN1YWxTdHVkaW9WZXJzaW9uID0gMTIuMC4zMDcyMy4wCitNaW5pbXVtVmlzdWFs
U3R1ZGlvVmVyc2lvbiA9IDEwLjAuNDAyMTkuMQorUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFE
MC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJ4ZW5idXNfY29pbnN0IiwgInhlbmJ1c19jb2luc3Rc
eGVuYnVzX2NvaW5zdC52Y3hwcm9qIiwgIns0QkY0MTM3OC1DMDFCLTQwMDItODU4MS01NjNDNUY3
MDMzNjJ9IgorRW5kUHJvamVjdAorUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAw
QTBDOTFCQzk0Mn0iKSA9ICJ4ZW5idXNfbW9uaXRvciIsICJ4ZW5idXNfbW9uaXRvclx4ZW5idXNf
bW9uaXRvci52Y3hwcm9qIiwgInsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9
IgorRW5kUHJvamVjdAogUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFC
Qzk0Mn0iKSA9ICJ4ZW4iLCAieGVuXHhlbi52Y3hwcm9qIiwgIns5QzZBNUQ0OC1BMzMxLTRCMUYt
QTAwNC03QkI2N0JBNUJFMUN9IgogRW5kUHJvamVjdAogUHJvamVjdCgiezhCQzlDRUI4LThCNEEt
MTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJ4ZW5maWx0IiwgInhlbmZpbHRceGVuZmlsdC52
Y3hwcm9qIiwgIntENzQxMUIyQy0yQzQzLTQzNEQtOUY1Ni1FMTBBM0QyRjVCQUR9IgpAQCAtNywx
MSArMTMsNiBAQCBQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQy
fSIpID0gInhlbmZpbHQiLCAieGVuZmlsdFx4ZW5maWx0LgogCQl7OUM2QTVENDgtQTMzMS00QjFG
LUEwMDQtN0JCNjdCQTVCRTFDfSA9IHs5QzZBNUQ0OC1BMzMxLTRCMUYtQTAwNC03QkI2N0JBNUJF
MUN9CiAJRW5kUHJvamVjdFNlY3Rpb24KIEVuZFByb2plY3QKLVByb2plY3QoIns4QkM5Q0VCOC04
QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAieGVuYnVzX2NvaW5zdCIsICJ4ZW5idXNf
Y29pbnN0XHhlbmJ1c19jb2luc3QudmN4cHJvaiIsICJ7NEJGNDEzNzgtQzAxQi00MDAyLTg1ODEt
NTYzQzVGNzAzMzYyfSIKLQlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBv
c3RQcm9qZWN0Ci0JCXs5QzZBNUQ0OC1BMzMxLTRCMUYtQTAwNC03QkI2N0JBNUJFMUN9ID0gezlD
NkE1RDQ4LUEzMzEtNEIxRi1BMDA0LTdCQjY3QkE1QkUxQ30KLQlFbmRQcm9qZWN0U2VjdGlvbgot
RW5kUHJvamVjdAogUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0
Mn0iKSA9ICJ4ZW5idXMiLCAieGVuYnVzXHhlbmJ1cy52Y3hwcm9qIiwgInsxNEMxNkMyOS03N0M5
LTQ3NUItQTYxOC0xQjAxRTY3Q0Y5ODV9IgogCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRl
bmNpZXMpID0gcG9zdFByb2plY3QKIAkJezlDNkE1RDQ4LUEzMzEtNEIxRi1BMDA0LTdCQjY3QkE1
QkUxQ30gPSB7OUM2QTVENDgtQTMzMS00QjFGLUEwMDQtN0JCNjdCQTVCRTFDfQpAQCAtMjMsNiAr
MjQsNyBAQCBQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIp
ID0gInBhY2thZ2UiLCAicGFja2FnZVxwYWNrYWdlLgogCQl7NEJGNDEzNzgtQzAxQi00MDAyLTg1
ODEtNTYzQzVGNzAzMzYyfSA9IHs0QkY0MTM3OC1DMDFCLTQwMDItODU4MS01NjNDNUY3MDMzNjJ9
CiAJCXs5QzZBNUQ0OC1BMzMxLTRCMUYtQTAwNC03QkI2N0JBNUJFMUN9ID0gezlDNkE1RDQ4LUEz
MzEtNEIxRi1BMDA0LTdCQjY3QkE1QkUxQ30KIAkJe0Q3NDExQjJDLTJDNDMtNDM0RC05RjU2LUUx
MEEzRDJGNUJBRH0gPSB7RDc0MTFCMkMtMkM0My00MzRELTlGNTYtRTEwQTNEMkY1QkFEfQorCQl7
MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfSA9IHsyRTYxRDJDQy04NjVFLTQ0
MkMtOEM4My1COERBRkQ3QkJEM0J9CiAJRW5kUHJvamVjdFNlY3Rpb24KIEVuZFByb2plY3QKIEds
b2JhbApAQCAtNDEsMzAgKzQzLDYgQEAgR2xvYmFsCiAJCVdpbmRvd3MgVmlzdGEgUmVsZWFzZXx4
NjQgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0CiAJRW5kR2xvYmFsU2VjdGlvbgogCUdsb2Jh
bFNlY3Rpb24oUHJvamVjdENvbmZpZ3VyYXRpb25QbGF0Zm9ybXMpID0gcG9zdFNvbHV0aW9uCi0J
CXsxNEMxNkMyOS03N0M5LTQ3NUItQTYxOC0xQjAxRTY3Q0Y5ODV9LldpbmRvd3MgNyBEZWJ1Z3xX
aW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIDcgRGVidWd8V2luMzIKLQkJezE0QzE2QzI5LTc3Qzkt
NDc1Qi1BNjE4LTFCMDFFNjdDRjk4NX0uV2luZG93cyA3IERlYnVnfFdpbjMyLkJ1aWxkLjAgPSBX
aW5kb3dzIDcgRGVidWd8V2luMzIKLQkJezE0QzE2QzI5LTc3QzktNDc1Qi1BNjE4LTFCMDFFNjdD
Rjk4NX0uV2luZG93cyA3IERlYnVnfHg2NC5BY3RpdmVDZmcgPSBXaW5kb3dzIDcgRGVidWd8eDY0
Ci0JCXsxNEMxNkMyOS03N0M5LTQ3NUItQTYxOC0xQjAxRTY3Q0Y5ODV9LldpbmRvd3MgNyBEZWJ1
Z3x4NjQuQnVpbGQuMCA9IFdpbmRvd3MgNyBEZWJ1Z3x4NjQKLQkJezE0QzE2QzI5LTc3QzktNDc1
Qi1BNjE4LTFCMDFFNjdDRjk4NX0uV2luZG93cyA3IFJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0g
V2luZG93cyA3IFJlbGVhc2V8V2luMzIKLQkJezE0QzE2QzI5LTc3QzktNDc1Qi1BNjE4LTFCMDFF
NjdDRjk4NX0uV2luZG93cyA3IFJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFdpbmRvd3MgNyBSZWxl
YXNlfFdpbjMyCi0JCXsxNEMxNkMyOS03N0M5LTQ3NUItQTYxOC0xQjAxRTY3Q0Y5ODV9LldpbmRv
d3MgNyBSZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBXaW5kb3dzIDcgUmVsZWFzZXx4NjQKLQkJezE0
QzE2QzI5LTc3QzktNDc1Qi1BNjE4LTFCMDFFNjdDRjk4NX0uV2luZG93cyA3IFJlbGVhc2V8eDY0
LkJ1aWxkLjAgPSBXaW5kb3dzIDcgUmVsZWFzZXx4NjQKLQkJezE0QzE2QzI5LTc3QzktNDc1Qi1B
NjE4LTFCMDFFNjdDRjk4NX0uV2luZG93cyA4IERlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IFdpbmRv
d3MgOCBEZWJ1Z3xXaW4zMgotCQl7MTRDMTZDMjktNzdDOS00NzVCLUE2MTgtMUIwMUU2N0NGOTg1
fS5XaW5kb3dzIDggRGVidWd8V2luMzIuQnVpbGQuMCA9IFdpbmRvd3MgOCBEZWJ1Z3xXaW4zMgot
CQl7MTRDMTZDMjktNzdDOS00NzVCLUE2MTgtMUIwMUU2N0NGOTg1fS5XaW5kb3dzIDggRGVidWd8
eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgOCBEZWJ1Z3x4NjQKLQkJezE0QzE2QzI5LTc3QzktNDc1
Qi1BNjE4LTFCMDFFNjdDRjk4NX0uV2luZG93cyA4IERlYnVnfHg2NC5CdWlsZC4wID0gV2luZG93
cyA4IERlYnVnfHg2NAotCQl7MTRDMTZDMjktNzdDOS00NzVCLUE2MTgtMUIwMUU2N0NGOTg1fS5X
aW5kb3dzIDggUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIDggUmVsZWFzZXxXaW4z
MgotCQl7MTRDMTZDMjktNzdDOS00NzVCLUE2MTgtMUIwMUU2N0NGOTg1fS5XaW5kb3dzIDggUmVs
ZWFzZXxXaW4zMi5CdWlsZC4wID0gV2luZG93cyA4IFJlbGVhc2V8V2luMzIKLQkJezE0QzE2QzI5
LTc3QzktNDc1Qi1BNjE4LTFCMDFFNjdDRjk4NX0uV2luZG93cyA4IFJlbGVhc2V8eDY0LkFjdGl2
ZUNmZyA9IFdpbmRvd3MgOCBSZWxlYXNlfHg2NAotCQl7MTRDMTZDMjktNzdDOS00NzVCLUE2MTgt
MUIwMUU2N0NGOTg1fS5XaW5kb3dzIDggUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFdpbmRvd3MgOCBS
ZWxlYXNlfHg2NAotCQl7MTRDMTZDMjktNzdDOS00NzVCLUE2MTgtMUIwMUU2N0NGOTg1fS5XaW5k
b3dzIFZpc3RhIERlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IFdpbmRvd3MgVmlzdGEgRGVidWd8V2lu
MzIKLQkJezE0QzE2QzI5LTc3QzktNDc1Qi1BNjE4LTFCMDFFNjdDRjk4NX0uV2luZG93cyBWaXN0
YSBEZWJ1Z3xXaW4zMi5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMgotCQl7MTRD
MTZDMjktNzdDOS00NzVCLUE2MTgtMUIwMUU2N0NGOTg1fS5XaW5kb3dzIFZpc3RhIERlYnVnfHg2
NC5BY3RpdmVDZmcgPSBXaW5kb3dzIFZpc3RhIERlYnVnfHg2NAotCQl7MTRDMTZDMjktNzdDOS00
NzVCLUE2MTgtMUIwMUU2N0NGOTg1fS5XaW5kb3dzIFZpc3RhIERlYnVnfHg2NC5CdWlsZC4wID0g
V2luZG93cyBWaXN0YSBEZWJ1Z3x4NjQKLQkJezE0QzE2QzI5LTc3QzktNDc1Qi1BNjE4LTFCMDFF
NjdDRjk4NX0uV2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFdpbmRvd3Mg
VmlzdGEgUmVsZWFzZXxXaW4zMgotCQl7MTRDMTZDMjktNzdDOS00NzVCLUE2MTgtMUIwMUU2N0NG
OTg1fS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFdpbmRvd3MgVmlzdGEg
UmVsZWFzZXxXaW4zMgotCQl7MTRDMTZDMjktNzdDOS00NzVCLUE2MTgtMUIwMUU2N0NGOTg1fS5X
aW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgVmlzdGEgUmVsZWFz
ZXx4NjQKLQkJezE0QzE2QzI5LTc3QzktNDc1Qi1BNjE4LTFCMDFFNjdDRjk4NX0uV2luZG93cyBW
aXN0YSBSZWxlYXNlfHg2NC5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NAogCQl7
NEJGNDEzNzgtQzAxQi00MDAyLTg1ODEtNTYzQzVGNzAzMzYyfS5XaW5kb3dzIDcgRGVidWd8V2lu
MzIuQWN0aXZlQ2ZnID0gV2luZG93cyA3IERlYnVnfFdpbjMyCiAJCXs0QkY0MTM3OC1DMDFCLTQw
MDItODU4MS01NjNDNUY3MDMzNjJ9LldpbmRvd3MgNyBEZWJ1Z3xXaW4zMi5CdWlsZC4wID0gV2lu
ZG93cyA3IERlYnVnfFdpbjMyCiAJCXs0QkY0MTM3OC1DMDFCLTQwMDItODU4MS01NjNDNUY3MDMz
NjJ9LldpbmRvd3MgNyBEZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gV2luZG93cyA3IERlYnVnfHg2NApA
QCAtODksNDIgKzY3LDQyIEBAIEdsb2JhbAogCQl7NEJGNDEzNzgtQzAxQi00MDAyLTg1ODEtNTYz
QzVGNzAzMzYyfS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFdpbmRvd3Mg
VmlzdGEgUmVsZWFzZXxXaW4zMgogCQl7NEJGNDEzNzgtQzAxQi00MDAyLTg1ODEtNTYzQzVGNzAz
MzYyfS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgVmlzdGEg
UmVsZWFzZXx4NjQKIAkJezRCRjQxMzc4LUMwMUItNDAwMi04NTgxLTU2M0M1RjcwMzM2Mn0uV2lu
ZG93cyBWaXN0YSBSZWxlYXNlfHg2NC5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2
NAotCQl7OTJFNUE0NkItOTEzQy00NUM2LUI2RjgtN0UwNjJEODUyNzlGfS5XaW5kb3dzIDcgRGVi
dWd8V2luMzIuQWN0aXZlQ2ZnID0gV2luZG93cyA3IERlYnVnfFdpbjMyCi0JCXs5MkU1QTQ2Qi05
MTNDLTQ1QzYtQjZGOC03RTA2MkQ4NTI3OUZ9LldpbmRvd3MgNyBEZWJ1Z3xXaW4zMi5CdWlsZC4w
ID0gV2luZG93cyA3IERlYnVnfFdpbjMyCi0JCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZGOC03RTA2
MkQ4NTI3OUZ9LldpbmRvd3MgNyBEZWJ1Z3xXaW4zMi5EZXBsb3kuMCA9IFdpbmRvd3MgNyBEZWJ1
Z3xXaW4zMgotCQl7OTJFNUE0NkItOTEzQy00NUM2LUI2RjgtN0UwNjJEODUyNzlGfS5XaW5kb3dz
IDcgRGVidWd8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgNyBEZWJ1Z3x4NjQKLQkJezkyRTVBNDZC
LTkxM0MtNDVDNi1CNkY4LTdFMDYyRDg1Mjc5Rn0uV2luZG93cyA3IERlYnVnfHg2NC5CdWlsZC4w
ID0gV2luZG93cyA3IERlYnVnfHg2NAotCQl7OTJFNUE0NkItOTEzQy00NUM2LUI2RjgtN0UwNjJE
ODUyNzlGfS5XaW5kb3dzIDcgRGVidWd8eDY0LkRlcGxveS4wID0gV2luZG93cyA3IERlYnVnfHg2
NAotCQl7OTJFNUE0NkItOTEzQy00NUM2LUI2RjgtN0UwNjJEODUyNzlGfS5XaW5kb3dzIDcgUmVs
ZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIDcgUmVsZWFzZXxXaW4zMgotCQl7OTJFNUE0
NkItOTEzQy00NUM2LUI2RjgtN0UwNjJEODUyNzlGfS5XaW5kb3dzIDcgUmVsZWFzZXxXaW4zMi5C
dWlsZC4wID0gV2luZG93cyA3IFJlbGVhc2V8V2luMzIKLQkJezkyRTVBNDZCLTkxM0MtNDVDNi1C
NkY4LTdFMDYyRDg1Mjc5Rn0uV2luZG93cyA3IFJlbGVhc2V8V2luMzIuRGVwbG95LjAgPSBXaW5k
b3dzIDcgUmVsZWFzZXxXaW4zMgotCQl7OTJFNUE0NkItOTEzQy00NUM2LUI2RjgtN0UwNjJEODUy
NzlGfS5XaW5kb3dzIDcgUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gV2luZG93cyA3IFJlbGVhc2V8
eDY0Ci0JCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZGOC03RTA2MkQ4NTI3OUZ9LldpbmRvd3MgNyBS
ZWxlYXNlfHg2NC5CdWlsZC4wID0gV2luZG93cyA3IFJlbGVhc2V8eDY0Ci0JCXs5MkU1QTQ2Qi05
MTNDLTQ1QzYtQjZGOC03RTA2MkQ4NTI3OUZ9LldpbmRvd3MgNyBSZWxlYXNlfHg2NC5EZXBsb3ku
MCA9IFdpbmRvd3MgNyBSZWxlYXNlfHg2NAotCQl7OTJFNUE0NkItOTEzQy00NUM2LUI2RjgtN0Uw
NjJEODUyNzlGfS5XaW5kb3dzIDggRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gV2luZG93cyA4IERl
YnVnfFdpbjMyCi0JCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZGOC03RTA2MkQ4NTI3OUZ9LldpbmRv
d3MgOCBEZWJ1Z3xXaW4zMi5CdWlsZC4wID0gV2luZG93cyA4IERlYnVnfFdpbjMyCi0JCXs5MkU1
QTQ2Qi05MTNDLTQ1QzYtQjZGOC03RTA2MkQ4NTI3OUZ9LldpbmRvd3MgOCBEZWJ1Z3xXaW4zMi5E
ZXBsb3kuMCA9IFdpbmRvd3MgOCBEZWJ1Z3xXaW4zMgotCQl7OTJFNUE0NkItOTEzQy00NUM2LUI2
RjgtN0UwNjJEODUyNzlGfS5XaW5kb3dzIDggRGVidWd8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3Mg
OCBEZWJ1Z3x4NjQKLQkJezkyRTVBNDZCLTkxM0MtNDVDNi1CNkY4LTdFMDYyRDg1Mjc5Rn0uV2lu
ZG93cyA4IERlYnVnfHg2NC5CdWlsZC4wID0gV2luZG93cyA4IERlYnVnfHg2NAotCQl7OTJFNUE0
NkItOTEzQy00NUM2LUI2RjgtN0UwNjJEODUyNzlGfS5XaW5kb3dzIDggRGVidWd8eDY0LkRlcGxv
eS4wID0gV2luZG93cyA4IERlYnVnfHg2NAotCQl7OTJFNUE0NkItOTEzQy00NUM2LUI2RjgtN0Uw
NjJEODUyNzlGfS5XaW5kb3dzIDggUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIDgg
UmVsZWFzZXxXaW4zMgotCQl7OTJFNUE0NkItOTEzQy00NUM2LUI2RjgtN0UwNjJEODUyNzlGfS5X
aW5kb3dzIDggUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gV2luZG93cyA4IFJlbGVhc2V8V2luMzIK
LQkJezkyRTVBNDZCLTkxM0MtNDVDNi1CNkY4LTdFMDYyRDg1Mjc5Rn0uV2luZG93cyA4IFJlbGVh
c2V8V2luMzIuRGVwbG95LjAgPSBXaW5kb3dzIDggUmVsZWFzZXxXaW4zMgotCQl7OTJFNUE0NkIt
OTEzQy00NUM2LUI2RjgtN0UwNjJEODUyNzlGfS5XaW5kb3dzIDggUmVsZWFzZXx4NjQuQWN0aXZl
Q2ZnID0gV2luZG93cyA4IFJlbGVhc2V8eDY0Ci0JCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZGOC03
RTA2MkQ4NTI3OUZ9LldpbmRvd3MgOCBSZWxlYXNlfHg2NC5CdWlsZC4wID0gV2luZG93cyA4IFJl
bGVhc2V8eDY0Ci0JCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZGOC03RTA2MkQ4NTI3OUZ9LldpbmRv
d3MgOCBSZWxlYXNlfHg2NC5EZXBsb3kuMCA9IFdpbmRvd3MgOCBSZWxlYXNlfHg2NAotCQl7OTJF
NUE0NkItOTEzQy00NUM2LUI2RjgtN0UwNjJEODUyNzlGfS5XaW5kb3dzIFZpc3RhIERlYnVnfFdp
bjMyLkFjdGl2ZUNmZyA9IFdpbmRvd3MgVmlzdGEgRGVidWd8V2luMzIKLQkJezkyRTVBNDZCLTkx
M0MtNDVDNi1CNkY4LTdFMDYyRDg1Mjc5Rn0uV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMi5CdWls
ZC4wID0gV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMgotCQl7OTJFNUE0NkItOTEzQy00NUM2LUI2
RjgtN0UwNjJEODUyNzlGfS5XaW5kb3dzIFZpc3RhIERlYnVnfFdpbjMyLkRlcGxveS4wID0gV2lu
ZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMgotCQl7OTJFNUE0NkItOTEzQy00NUM2LUI2RjgtN0UwNjJE
ODUyNzlGfS5XaW5kb3dzIFZpc3RhIERlYnVnfHg2NC5BY3RpdmVDZmcgPSBXaW5kb3dzIFZpc3Rh
IERlYnVnfHg2NAotCQl7OTJFNUE0NkItOTEzQy00NUM2LUI2RjgtN0UwNjJEODUyNzlGfS5XaW5k
b3dzIFZpc3RhIERlYnVnfHg2NC5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBEZWJ1Z3x4NjQKLQkJ
ezkyRTVBNDZCLTkxM0MtNDVDNi1CNkY4LTdFMDYyRDg1Mjc5Rn0uV2luZG93cyBWaXN0YSBEZWJ1
Z3x4NjQuRGVwbG95LjAgPSBXaW5kb3dzIFZpc3RhIERlYnVnfHg2NAotCQl7OTJFNUE0NkItOTEz
Qy00NUM2LUI2RjgtN0UwNjJEODUyNzlGfS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzIuQWN0
aXZlQ2ZnID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyCi0JCXs5MkU1QTQ2Qi05MTNDLTQ1
QzYtQjZGOC03RTA2MkQ4NTI3OUZ9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMi5CdWlsZC4w
ID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyCi0JCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZG
OC03RTA2MkQ4NTI3OUZ9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMi5EZXBsb3kuMCA9IFdp
bmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMgotCQl7OTJFNUE0NkItOTEzQy00NUM2LUI2RjgtN0Uw
NjJEODUyNzlGfS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3Mg
VmlzdGEgUmVsZWFzZXx4NjQKLQkJezkyRTVBNDZCLTkxM0MtNDVDNi1CNkY4LTdFMDYyRDg1Mjc5
Rn0uV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NC5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBSZWxl
YXNlfHg2NAotCQl7OTJFNUE0NkItOTEzQy00NUM2LUI2RjgtN0UwNjJEODUyNzlGfS5XaW5kb3dz
IFZpc3RhIFJlbGVhc2V8eDY0LkRlcGxveS4wID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NAor
CQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIDcgRGVidWd8
V2luMzIuQWN0aXZlQ2ZnID0gV2luZG93cyA3IERlYnVnfFdpbjMyCisJCXsyRTYxRDJDQy04NjVF
LTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgNyBEZWJ1Z3xXaW4zMi5CdWlsZC4wID0g
V2luZG93cyA3IERlYnVnfFdpbjMyCisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3
QkJEM0J9LldpbmRvd3MgNyBEZWJ1Z3xXaW4zMi5EZXBsb3kuMCA9IFdpbmRvd3MgNyBEZWJ1Z3xX
aW4zMgorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIDcg
RGVidWd8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgNyBEZWJ1Z3x4NjQKKwkJezJFNjFEMkNDLTg2
NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyA3IERlYnVnfHg2NC5CdWlsZC4wID0g
V2luZG93cyA3IERlYnVnfHg2NAorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JC
RDNCfS5XaW5kb3dzIDcgRGVidWd8eDY0LkRlcGxveS4wID0gV2luZG93cyA3IERlYnVnfHg2NAor
CQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIDcgUmVsZWFz
ZXxXaW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIDcgUmVsZWFzZXxXaW4zMgorCQl7MkU2MUQyQ0Mt
ODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIDcgUmVsZWFzZXxXaW4zMi5CdWls
ZC4wID0gV2luZG93cyA3IFJlbGVhc2V8V2luMzIKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04Qzgz
LUI4REFGRDdCQkQzQn0uV2luZG93cyA3IFJlbGVhc2V8V2luMzIuRGVwbG95LjAgPSBXaW5kb3dz
IDcgUmVsZWFzZXxXaW4zMgorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNC
fS5XaW5kb3dzIDcgUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gV2luZG93cyA3IFJlbGVhc2V8eDY0
CisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgNyBSZWxl
YXNlfHg2NC5CdWlsZC4wID0gV2luZG93cyA3IFJlbGVhc2V8eDY0CisJCXsyRTYxRDJDQy04NjVF
LTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgNyBSZWxlYXNlfHg2NC5EZXBsb3kuMCA9
IFdpbmRvd3MgNyBSZWxlYXNlfHg2NAorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZE
N0JCRDNCfS5XaW5kb3dzIDggRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gV2luZG93cyA4IERlYnVn
fFdpbjMyCisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3Mg
OCBEZWJ1Z3xXaW4zMi5CdWlsZC4wID0gV2luZG93cyA4IERlYnVnfFdpbjMyCisJCXsyRTYxRDJD
Qy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgOCBEZWJ1Z3xXaW4zMi5EZXBs
b3kuMCA9IFdpbmRvd3MgOCBEZWJ1Z3xXaW4zMgorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMt
QjhEQUZEN0JCRDNCfS5XaW5kb3dzIDggRGVidWd8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgOCBE
ZWJ1Z3x4NjQKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93
cyA4IERlYnVnfHg2NC5CdWlsZC4wID0gV2luZG93cyA4IERlYnVnfHg2NAorCQl7MkU2MUQyQ0Mt
ODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIDggRGVidWd8eDY0LkRlcGxveS4w
ID0gV2luZG93cyA4IERlYnVnfHg2NAorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZE
N0JCRDNCfS5XaW5kb3dzIDggUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIDggUmVs
ZWFzZXxXaW4zMgorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5k
b3dzIDggUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gV2luZG93cyA4IFJlbGVhc2V8V2luMzIKKwkJ
ezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyA4IFJlbGVhc2V8
V2luMzIuRGVwbG95LjAgPSBXaW5kb3dzIDggUmVsZWFzZXxXaW4zMgorCQl7MkU2MUQyQ0MtODY1
RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIDggUmVsZWFzZXx4NjQuQWN0aXZlQ2Zn
ID0gV2luZG93cyA4IFJlbGVhc2V8eDY0CisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERB
RkQ3QkJEM0J9LldpbmRvd3MgOCBSZWxlYXNlfHg2NC5CdWlsZC4wID0gV2luZG93cyA4IFJlbGVh
c2V8eDY0CisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3Mg
OCBSZWxlYXNlfHg2NC5EZXBsb3kuMCA9IFdpbmRvd3MgOCBSZWxlYXNlfHg2NAorCQl7MkU2MUQy
Q0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIFZpc3RhIERlYnVnfFdpbjMy
LkFjdGl2ZUNmZyA9IFdpbmRvd3MgVmlzdGEgRGVidWd8V2luMzIKKwkJezJFNjFEMkNDLTg2NUUt
NDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMi5CdWlsZC4w
ID0gV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMgorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMt
QjhEQUZEN0JCRDNCfS5XaW5kb3dzIFZpc3RhIERlYnVnfFdpbjMyLkRlcGxveS4wID0gV2luZG93
cyBWaXN0YSBEZWJ1Z3xXaW4zMgorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JC
RDNCfS5XaW5kb3dzIFZpc3RhIERlYnVnfHg2NC5BY3RpdmVDZmcgPSBXaW5kb3dzIFZpc3RhIERl
YnVnfHg2NAorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dz
IFZpc3RhIERlYnVnfHg2NC5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBEZWJ1Z3x4NjQKKwkJezJF
NjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBWaXN0YSBEZWJ1Z3x4
NjQuRGVwbG95LjAgPSBXaW5kb3dzIFZpc3RhIERlYnVnfHg2NAorCQl7MkU2MUQyQ0MtODY1RS00
NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzIuQWN0aXZl
Q2ZnID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyCisJCXsyRTYxRDJDQy04NjVFLTQ0MkMt
OEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0g
V2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyCisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1C
OERBRkQ3QkJEM0J9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMi5EZXBsb3kuMCA9IFdpbmRv
d3MgVmlzdGEgUmVsZWFzZXxXaW4zMgorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZE
N0JCRDNCfS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgVmlz
dGEgUmVsZWFzZXx4NjQKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0u
V2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NC5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBSZWxlYXNl
fHg2NAorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIFZp
c3RhIFJlbGVhc2V8eDY0LkRlcGxveS4wID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NAogCQl7
OUM2QTVENDgtQTMzMS00QjFGLUEwMDQtN0JCNjdCQTVCRTFDfS5XaW5kb3dzIDcgRGVidWd8V2lu
MzIuQWN0aXZlQ2ZnID0gV2luZG93cyA3IERlYnVnfFdpbjMyCiAJCXs5QzZBNUQ0OC1BMzMxLTRC
MUYtQTAwNC03QkI2N0JBNUJFMUN9LldpbmRvd3MgNyBEZWJ1Z3xXaW4zMi5CdWlsZC4wID0gV2lu
ZG93cyA3IERlYnVnfFdpbjMyCiAJCXs5QzZBNUQ0OC1BMzMxLTRCMUYtQTAwNC03QkI2N0JBNUJF
MUN9LldpbmRvd3MgNyBEZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gV2luZG93cyA3IERlYnVnfHg2NApA
QCAtMTczLDYgKzE1MSw2NiBAQCBHbG9iYWwKIAkJe0Q3NDExQjJDLTJDNDMtNDM0RC05RjU2LUUx
MEEzRDJGNUJBRH0uV2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBXaW5kb3dz
IFZpc3RhIFJlbGVhc2V8V2luMzIKIAkJe0Q3NDExQjJDLTJDNDMtNDM0RC05RjU2LUUxMEEzRDJG
NUJBRH0uV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBXaW5kb3dzIFZpc3Rh
IFJlbGVhc2V8eDY0CiAJCXtENzQxMUIyQy0yQzQzLTQzNEQtOUY1Ni1FMTBBM0QyRjVCQUR9Lldp
bmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFdpbmRvd3MgVmlzdGEgUmVsZWFzZXx4
NjQKKwkJezE0QzE2QzI5LTc3QzktNDc1Qi1BNjE4LTFCMDFFNjdDRjk4NX0uV2luZG93cyA3IERl
YnVnfFdpbjMyLkFjdGl2ZUNmZyA9IFdpbmRvd3MgNyBEZWJ1Z3xXaW4zMgorCQl7MTRDMTZDMjkt
NzdDOS00NzVCLUE2MTgtMUIwMUU2N0NGOTg1fS5XaW5kb3dzIDcgRGVidWd8V2luMzIuQnVpbGQu
MCA9IFdpbmRvd3MgNyBEZWJ1Z3xXaW4zMgorCQl7MTRDMTZDMjktNzdDOS00NzVCLUE2MTgtMUIw
MUU2N0NGOTg1fS5XaW5kb3dzIDcgRGVidWd8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgNyBEZWJ1
Z3x4NjQKKwkJezE0QzE2QzI5LTc3QzktNDc1Qi1BNjE4LTFCMDFFNjdDRjk4NX0uV2luZG93cyA3
IERlYnVnfHg2NC5CdWlsZC4wID0gV2luZG93cyA3IERlYnVnfHg2NAorCQl7MTRDMTZDMjktNzdD
OS00NzVCLUE2MTgtMUIwMUU2N0NGOTg1fS5XaW5kb3dzIDcgUmVsZWFzZXxXaW4zMi5BY3RpdmVD
ZmcgPSBXaW5kb3dzIDcgUmVsZWFzZXxXaW4zMgorCQl7MTRDMTZDMjktNzdDOS00NzVCLUE2MTgt
MUIwMUU2N0NGOTg1fS5XaW5kb3dzIDcgUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gV2luZG93cyA3
IFJlbGVhc2V8V2luMzIKKwkJezE0QzE2QzI5LTc3QzktNDc1Qi1BNjE4LTFCMDFFNjdDRjk4NX0u
V2luZG93cyA3IFJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgNyBSZWxlYXNlfHg2NAor
CQl7MTRDMTZDMjktNzdDOS00NzVCLUE2MTgtMUIwMUU2N0NGOTg1fS5XaW5kb3dzIDcgUmVsZWFz
ZXx4NjQuQnVpbGQuMCA9IFdpbmRvd3MgNyBSZWxlYXNlfHg2NAorCQl7MTRDMTZDMjktNzdDOS00
NzVCLUE2MTgtMUIwMUU2N0NGOTg1fS5XaW5kb3dzIDggRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0g
V2luZG93cyA4IERlYnVnfFdpbjMyCisJCXsxNEMxNkMyOS03N0M5LTQ3NUItQTYxOC0xQjAxRTY3
Q0Y5ODV9LldpbmRvd3MgOCBEZWJ1Z3xXaW4zMi5CdWlsZC4wID0gV2luZG93cyA4IERlYnVnfFdp
bjMyCisJCXsxNEMxNkMyOS03N0M5LTQ3NUItQTYxOC0xQjAxRTY3Q0Y5ODV9LldpbmRvd3MgOCBE
ZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gV2luZG93cyA4IERlYnVnfHg2NAorCQl7MTRDMTZDMjktNzdD
OS00NzVCLUE2MTgtMUIwMUU2N0NGOTg1fS5XaW5kb3dzIDggRGVidWd8eDY0LkJ1aWxkLjAgPSBX
aW5kb3dzIDggRGVidWd8eDY0CisJCXsxNEMxNkMyOS03N0M5LTQ3NUItQTYxOC0xQjAxRTY3Q0Y5
ODV9LldpbmRvd3MgOCBSZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFdpbmRvd3MgOCBSZWxlYXNl
fFdpbjMyCisJCXsxNEMxNkMyOS03N0M5LTQ3NUItQTYxOC0xQjAxRTY3Q0Y5ODV9LldpbmRvd3Mg
OCBSZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBXaW5kb3dzIDggUmVsZWFzZXxXaW4zMgorCQl7MTRD
MTZDMjktNzdDOS00NzVCLUE2MTgtMUIwMUU2N0NGOTg1fS5XaW5kb3dzIDggUmVsZWFzZXx4NjQu
QWN0aXZlQ2ZnID0gV2luZG93cyA4IFJlbGVhc2V8eDY0CisJCXsxNEMxNkMyOS03N0M5LTQ3NUIt
QTYxOC0xQjAxRTY3Q0Y5ODV9LldpbmRvd3MgOCBSZWxlYXNlfHg2NC5CdWlsZC4wID0gV2luZG93
cyA4IFJlbGVhc2V8eDY0CisJCXsxNEMxNkMyOS03N0M5LTQ3NUItQTYxOC0xQjAxRTY3Q0Y5ODV9
LldpbmRvd3MgVmlzdGEgRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gV2luZG93cyBWaXN0YSBEZWJ1
Z3xXaW4zMgorCQl7MTRDMTZDMjktNzdDOS00NzVCLUE2MTgtMUIwMUU2N0NGOTg1fS5XaW5kb3dz
IFZpc3RhIERlYnVnfFdpbjMyLkJ1aWxkLjAgPSBXaW5kb3dzIFZpc3RhIERlYnVnfFdpbjMyCisJ
CXsxNEMxNkMyOS03N0M5LTQ3NUItQTYxOC0xQjAxRTY3Q0Y5ODV9LldpbmRvd3MgVmlzdGEgRGVi
dWd8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgVmlzdGEgRGVidWd8eDY0CisJCXsxNEMxNkMyOS03
N0M5LTQ3NUItQTYxOC0xQjAxRTY3Q0Y5ODV9LldpbmRvd3MgVmlzdGEgRGVidWd8eDY0LkJ1aWxk
LjAgPSBXaW5kb3dzIFZpc3RhIERlYnVnfHg2NAorCQl7MTRDMTZDMjktNzdDOS00NzVCLUE2MTgt
MUIwMUU2N0NGOTg1fS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gV2lu
ZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyCisJCXsxNEMxNkMyOS03N0M5LTQ3NUItQTYxOC0xQjAx
RTY3Q0Y5ODV9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gV2luZG93cyBW
aXN0YSBSZWxlYXNlfFdpbjMyCisJCXsxNEMxNkMyOS03N0M5LTQ3NUItQTYxOC0xQjAxRTY3Q0Y5
ODV9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gV2luZG93cyBWaXN0YSBS
ZWxlYXNlfHg2NAorCQl7MTRDMTZDMjktNzdDOS00NzVCLUE2MTgtMUIwMUU2N0NGOTg1fS5XaW5k
b3dzIFZpc3RhIFJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0
CisJCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZGOC03RTA2MkQ4NTI3OUZ9LldpbmRvd3MgNyBEZWJ1
Z3xXaW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIDcgRGVidWd8V2luMzIKKwkJezkyRTVBNDZCLTkx
M0MtNDVDNi1CNkY4LTdFMDYyRDg1Mjc5Rn0uV2luZG93cyA3IERlYnVnfFdpbjMyLkJ1aWxkLjAg
PSBXaW5kb3dzIDcgRGVidWd8V2luMzIKKwkJezkyRTVBNDZCLTkxM0MtNDVDNi1CNkY4LTdFMDYy
RDg1Mjc5Rn0uV2luZG93cyA3IERlYnVnfFdpbjMyLkRlcGxveS4wID0gV2luZG93cyA3IERlYnVn
fFdpbjMyCisJCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZGOC03RTA2MkQ4NTI3OUZ9LldpbmRvd3Mg
NyBEZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gV2luZG93cyA3IERlYnVnfHg2NAorCQl7OTJFNUE0NkIt
OTEzQy00NUM2LUI2RjgtN0UwNjJEODUyNzlGfS5XaW5kb3dzIDcgRGVidWd8eDY0LkJ1aWxkLjAg
PSBXaW5kb3dzIDcgRGVidWd8eDY0CisJCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZGOC03RTA2MkQ4
NTI3OUZ9LldpbmRvd3MgNyBEZWJ1Z3x4NjQuRGVwbG95LjAgPSBXaW5kb3dzIDcgRGVidWd8eDY0
CisJCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZGOC03RTA2MkQ4NTI3OUZ9LldpbmRvd3MgNyBSZWxl
YXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFdpbmRvd3MgNyBSZWxlYXNlfFdpbjMyCisJCXs5MkU1QTQ2
Qi05MTNDLTQ1QzYtQjZGOC03RTA2MkQ4NTI3OUZ9LldpbmRvd3MgNyBSZWxlYXNlfFdpbjMyLkJ1
aWxkLjAgPSBXaW5kb3dzIDcgUmVsZWFzZXxXaW4zMgorCQl7OTJFNUE0NkItOTEzQy00NUM2LUI2
RjgtN0UwNjJEODUyNzlGfS5XaW5kb3dzIDcgUmVsZWFzZXxXaW4zMi5EZXBsb3kuMCA9IFdpbmRv
d3MgNyBSZWxlYXNlfFdpbjMyCisJCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZGOC03RTA2MkQ4NTI3
OUZ9LldpbmRvd3MgNyBSZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBXaW5kb3dzIDcgUmVsZWFzZXx4
NjQKKwkJezkyRTVBNDZCLTkxM0MtNDVDNi1CNkY4LTdFMDYyRDg1Mjc5Rn0uV2luZG93cyA3IFJl
bGVhc2V8eDY0LkJ1aWxkLjAgPSBXaW5kb3dzIDcgUmVsZWFzZXx4NjQKKwkJezkyRTVBNDZCLTkx
M0MtNDVDNi1CNkY4LTdFMDYyRDg1Mjc5Rn0uV2luZG93cyA3IFJlbGVhc2V8eDY0LkRlcGxveS4w
ID0gV2luZG93cyA3IFJlbGVhc2V8eDY0CisJCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZGOC03RTA2
MkQ4NTI3OUZ9LldpbmRvd3MgOCBEZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIDggRGVi
dWd8V2luMzIKKwkJezkyRTVBNDZCLTkxM0MtNDVDNi1CNkY4LTdFMDYyRDg1Mjc5Rn0uV2luZG93
cyA4IERlYnVnfFdpbjMyLkJ1aWxkLjAgPSBXaW5kb3dzIDggRGVidWd8V2luMzIKKwkJezkyRTVB
NDZCLTkxM0MtNDVDNi1CNkY4LTdFMDYyRDg1Mjc5Rn0uV2luZG93cyA4IERlYnVnfFdpbjMyLkRl
cGxveS4wID0gV2luZG93cyA4IERlYnVnfFdpbjMyCisJCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZG
OC03RTA2MkQ4NTI3OUZ9LldpbmRvd3MgOCBEZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gV2luZG93cyA4
IERlYnVnfHg2NAorCQl7OTJFNUE0NkItOTEzQy00NUM2LUI2RjgtN0UwNjJEODUyNzlGfS5XaW5k
b3dzIDggRGVidWd8eDY0LkJ1aWxkLjAgPSBXaW5kb3dzIDggRGVidWd8eDY0CisJCXs5MkU1QTQ2
Qi05MTNDLTQ1QzYtQjZGOC03RTA2MkQ4NTI3OUZ9LldpbmRvd3MgOCBEZWJ1Z3x4NjQuRGVwbG95
LjAgPSBXaW5kb3dzIDggRGVidWd8eDY0CisJCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZGOC03RTA2
MkQ4NTI3OUZ9LldpbmRvd3MgOCBSZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFdpbmRvd3MgOCBS
ZWxlYXNlfFdpbjMyCisJCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZGOC03RTA2MkQ4NTI3OUZ9Lldp
bmRvd3MgOCBSZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBXaW5kb3dzIDggUmVsZWFzZXxXaW4zMgor
CQl7OTJFNUE0NkItOTEzQy00NUM2LUI2RjgtN0UwNjJEODUyNzlGfS5XaW5kb3dzIDggUmVsZWFz
ZXxXaW4zMi5EZXBsb3kuMCA9IFdpbmRvd3MgOCBSZWxlYXNlfFdpbjMyCisJCXs5MkU1QTQ2Qi05
MTNDLTQ1QzYtQjZGOC03RTA2MkQ4NTI3OUZ9LldpbmRvd3MgOCBSZWxlYXNlfHg2NC5BY3RpdmVD
ZmcgPSBXaW5kb3dzIDggUmVsZWFzZXx4NjQKKwkJezkyRTVBNDZCLTkxM0MtNDVDNi1CNkY4LTdF
MDYyRDg1Mjc5Rn0uV2luZG93cyA4IFJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBXaW5kb3dzIDggUmVs
ZWFzZXx4NjQKKwkJezkyRTVBNDZCLTkxM0MtNDVDNi1CNkY4LTdFMDYyRDg1Mjc5Rn0uV2luZG93
cyA4IFJlbGVhc2V8eDY0LkRlcGxveS4wID0gV2luZG93cyA4IFJlbGVhc2V8eDY0CisJCXs5MkU1
QTQ2Qi05MTNDLTQ1QzYtQjZGOC03RTA2MkQ4NTI3OUZ9LldpbmRvd3MgVmlzdGEgRGVidWd8V2lu
MzIuQWN0aXZlQ2ZnID0gV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMgorCQl7OTJFNUE0NkItOTEz
Qy00NUM2LUI2RjgtN0UwNjJEODUyNzlGfS5XaW5kb3dzIFZpc3RhIERlYnVnfFdpbjMyLkJ1aWxk
LjAgPSBXaW5kb3dzIFZpc3RhIERlYnVnfFdpbjMyCisJCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZG
OC03RTA2MkQ4NTI3OUZ9LldpbmRvd3MgVmlzdGEgRGVidWd8V2luMzIuRGVwbG95LjAgPSBXaW5k
b3dzIFZpc3RhIERlYnVnfFdpbjMyCisJCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZGOC03RTA2MkQ4
NTI3OUZ9LldpbmRvd3MgVmlzdGEgRGVidWd8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgVmlzdGEg
RGVidWd8eDY0CisJCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZGOC03RTA2MkQ4NTI3OUZ9LldpbmRv
d3MgVmlzdGEgRGVidWd8eDY0LkJ1aWxkLjAgPSBXaW5kb3dzIFZpc3RhIERlYnVnfHg2NAorCQl7
OTJFNUE0NkItOTEzQy00NUM2LUI2RjgtN0UwNjJEODUyNzlGfS5XaW5kb3dzIFZpc3RhIERlYnVn
fHg2NC5EZXBsb3kuMCA9IFdpbmRvd3MgVmlzdGEgRGVidWd8eDY0CisJCXs5MkU1QTQ2Qi05MTND
LTQ1QzYtQjZGOC03RTA2MkQ4NTI3OUZ9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMi5BY3Rp
dmVDZmcgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzIKKwkJezkyRTVBNDZCLTkxM0MtNDVD
Ni1CNkY4LTdFMDYyRDg1Mjc5Rn0uV2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyLkJ1aWxkLjAg
PSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzIKKwkJezkyRTVBNDZCLTkxM0MtNDVDNi1CNkY4
LTdFMDYyRDg1Mjc5Rn0uV2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyLkRlcGxveS4wID0gV2lu
ZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyCisJCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZGOC03RTA2
MkQ4NTI3OUZ9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gV2luZG93cyBW
aXN0YSBSZWxlYXNlfHg2NAorCQl7OTJFNUE0NkItOTEzQy00NUM2LUI2RjgtN0UwNjJEODUyNzlG
fS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBXaW5kb3dzIFZpc3RhIFJlbGVh
c2V8eDY0CisJCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZGOC03RTA2MkQ4NTI3OUZ9LldpbmRvd3Mg
VmlzdGEgUmVsZWFzZXx4NjQuRGVwbG95LjAgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0CiAJ
RW5kR2xvYmFsU2VjdGlvbgogCUdsb2JhbFNlY3Rpb24oU29sdXRpb25Qcm9wZXJ0aWVzKSA9IHBy
ZVNvbHV0aW9uCiAJCUhpZGVTb2x1dGlvbk5vZGUgPSBGQUxTRQpkaWZmIC0tZ2l0IGEvdnMyMDEz
L3hlbmJ1c19tb25pdG9yL3hlbmJ1c19tb25pdG9yLnZjeHByb2ogYi92czIwMTMveGVuYnVzX21v
bml0b3IveGVuYnVzX21vbml0b3IudmN4cHJvagpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi41NTc1YzdlCi0tLSAvZGV2L251bGwKKysrIGIvdnMyMDEzL3hlbmJ1c19tb25pdG9y
L3hlbmJ1c19tb25pdG9yLnZjeHByb2oKQEAgLTAsMCArMSw4MiBAQAorPD94bWwgdmVyc2lvbj0i
MS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzxQcm9qZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIg
VG9vbHNWZXJzaW9uPSIxMi4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9k
ZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEltcG9ydCBQcm9qZWN0PSIuLlxjb25maWdzLnBy
b3BzIiAvPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+CisgICAgPENvbmZpZ3Vy
YXRpb24+V2luZG93cyBWaXN0YSBEZWJ1ZzwvQ29uZmlndXJhdGlvbj4KKyAgICA8UGxhdGZvcm0g
Q29uZGl0aW9uPSInJChQbGF0Zm9ybSknID09ICcnIj5XaW4zMjwvUGxhdGZvcm0+CisgICAgPERl
YnVnZ2VyRmxhdm9yPkRiZ2VuZ0tlcm5lbERlYnVnZ2VyPC9EZWJ1Z2dlckZsYXZvcj4KKyAgPC9Q
cm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgor
ICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+CisgICAgPFBsYXRmb3Jt
VG9vbHNldD5XaW5kb3dzQXBwbGljYXRpb25Gb3JEcml2ZXJzOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+
CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4K
KyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClc
TWljcm9zb2Z0LkNwcC5EZWZhdWx0LnByb3BzIiAvPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0i
R2xvYmFscyI+CisgICAgPFByb2plY3RHdWlkPnsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERB
RkQ3QkJEM0J9PC9Qcm9qZWN0R3VpZD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFBy
b2plY3Q9Ii4uXHRhcmdldHMucHJvcHMiIC8+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1Rhcmdl
dHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPgorICA8UHJvcGVydHlHcm91cD4KKyAgICA8
SW5jbHVkZVBhdGg+JChJbmNsdWRlUGF0aCk8L0luY2x1ZGVQYXRoPgorICAgIDxSdW5Db2RlQW5h
bHlzaXM+dHJ1ZTwvUnVuQ29kZUFuYWx5c2lzPgorICAgIDxFbmFibGVJbmYyY2F0PmZhbHNlPC9F
bmFibGVJbmYyY2F0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwPgorICAg
IDxDdXN0b21CdWlsZEFmdGVyVGFyZ2V0cz5MaW5rPC9DdXN0b21CdWlsZEFmdGVyVGFyZ2V0cz4K
KyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cD4KKyAgICA8Q2xDb21w
aWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+JChTb2x1dGlvbkRpciku
LlxpbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNs
dWRlRGlyZWN0b3JpZXM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X1dJ
TkRPV1M7X0NSVF9TRUNVUkVfTk9fV0FSTklOR1M7X19NT0RVTEVfXz0iWEVOQlVTX01PTklUT1Ii
OyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAg
ICAgIDxXYXJuaW5nTGV2ZWw+RW5hYmxlQWxsV2FybmluZ3M8L1dhcm5pbmdMZXZlbD4KKyAgICAg
IDxEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz40MTI3OzQ3MTE7NDU0ODs0ODIwOzQ2Njg7NDI1NTs2
MDAxOzYwNTQ7MjgxOTY7JShEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncyk8L0Rpc2FibGVTcGVjaWZp
Y1dhcm5pbmdzPgorICAgICAgPE11bHRpUHJvY2Vzc29yQ29tcGlsYXRpb24+dHJ1ZTwvTXVsdGlQ
cm9jZXNzb3JDb21waWxhdGlvbj4KKyAgICAgIDxFbmFibGVQUkVmYXN0PnRydWU8L0VuYWJsZVBS
RWZhc3Q+CisgICAgICA8UnVudGltZUxpYnJhcnkgQ29uZGl0aW9uPSInJChVc2VEZWJ1Z0xpYnJh
cmllcyknPT0ndHJ1ZSciPk11bHRpVGhyZWFkZWREZWJ1ZzwvUnVudGltZUxpYnJhcnk+CisgICAg
ICA8UnVudGltZUxpYnJhcnkgQ29uZGl0aW9uPSInJChVc2VEZWJ1Z0xpYnJhcmllcyknPT0nZmFs
c2UnIj5NdWx0aVRocmVhZGVkPC9SdW50aW1lTGlicmFyeT4KKyAgICA8L0NsQ29tcGlsZT4KKyAg
ICA8TGluaz4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPnd0c2FwaTMyLmxpYjslKEFk
ZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgIDwvTGlu
az4KKyAgICA8UmVzb3VyY2VDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0
b3JpZXM+JChTb2x1dGlvbkRpcikuLlxpbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgPC9SZXNvdXJjZUNvbXBp
bGU+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29u
ZGl0aW9uPSInJChQbGF0Zm9ybSknPT0nV2luMzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAg
PFByZXByb2Nlc3NvckRlZmluaXRpb25zPl9faTM4Nl9fOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlv
bnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q3Vz
dG9tQnVpbGRTdGVwPgorICAgICAgPE91dHB1dHM+JChUYXJnZXREaXIpJChUYXJnZXROYW1lKS5k
bGw8L091dHB1dHM+CisgICAgICA8SW5wdXRzPiQoSW50RGlyKSQoVGFyZ2V0TmFtZSkucmVzPC9J
bnB1dHM+CisgICAgICA8Q29tbWFuZD5saW5rIC1tYWNoaW5lOng4NiAtZGxsIC1ub2VudHJ5IC1v
dXQ6JShPdXRwdXRzKSAlKElucHV0cyk8L0NvbW1hbmQ+CisgICAgPC9DdXN0b21CdWlsZFN0ZXA+
CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0
aW9uPSInJChQbGF0Zm9ybSknPT0neDY0JyI+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxQcmVw
cm9jZXNzb3JEZWZpbml0aW9ucz5fX3g4Nl82NF9fOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMp
PC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q3VzdG9t
QnVpbGRTdGVwPgorICAgICAgPE91dHB1dHM+JChUYXJnZXREaXIpJChUYXJnZXROYW1lKS5kbGw8
L091dHB1dHM+CisgICAgICA8SW5wdXRzPiQoSW50RGlyKSQoVGFyZ2V0TmFtZSkucmVzPC9JbnB1
dHM+CisgICAgICA8Q29tbWFuZD5saW5rIC1tYWNoaW5lOng2NCAtZGxsIC1ub2VudHJ5IC1vdXQ6
JShPdXRwdXRzKSAlKElucHV0cyk8L0NvbW1hbmQ+CisgICAgPC9DdXN0b21CdWlsZFN0ZXA+Cisg
IDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8RmlsZXNUb1BhY2th
Z2UgSW5jbHVkZT0iJChUYXJnZXRQYXRoKSIgLz4KKyAgICA8RmlsZXNUb1BhY2thZ2UgSW5jbHVk
ZT0iJChPdXREaXIpJChUYXJnZXROYW1lKS5wZGIiIC8+CisgICAgPEZpbGVzVG9QYWNrYWdlIElu
Y2x1ZGU9IiQoT3V0RGlyKSQoVGFyZ2V0TmFtZSkuZGxsIiAvPgorICAgIDxGaWxlc1RvUGFja2Fn
ZSBJbmNsdWRlPSJAKEluZi0+JyUoQ29weU91dHB1dCknKSIgQ29uZGl0aW9uPSInQChJbmYpJyE9
JyciIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxNZXNzYWdlQ29tcGls
ZSBJbmNsdWRlPSIuLlwuLlxzcmNcbW9uaXRvclxtZXNzYWdlcy5tYyIgLz4KKyAgPC9JdGVtR3Jv
dXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcbW9u
aXRvclxtb25pdG9yLmMiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxS
ZXNvdXJjZUNvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXG1vbml0b3JceGVuYnVzX21vbml0b3Iu
cmMiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0
aClcTWljcm9zb2Z0LkNwcC50YXJnZXRzIiAvPgorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3ZzMjAxMy94ZW5idXNfbW9uaXRvci94ZW5idXNfbW9u
aXRvci52Y3hwcm9qLnVzZXIgYi92czIwMTMveGVuYnVzX21vbml0b3IveGVuYnVzX21vbml0b3Iu
dmN4cHJvai51c2VyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4ZWNjZTgK
LS0tIC9kZXYvbnVsbAorKysgYi92czIwMTMveGVuYnVzX21vbml0b3IveGVuYnVzX21vbml0b3Iu
dmN4cHJvai51c2VyCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGlu
Zz0idXRmLTgiPz4KKzxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3Nj
aGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPFByb3BlcnR5
R3JvdXA+CisgICAgPFNpZ25Nb2RlPlRlc3RTaWduPC9TaWduTW9kZT4KKyAgICA8VGVzdENlcnRp
ZmljYXRlPi4uXC4uXHNyY1x4ZW5idXMucGZ4PC9UZXN0Q2VydGlmaWNhdGU+CisgICAgPFRpbWVT
dGFtcFNlcnZlcj5odHRwOi8vdGltZXN0YW1wLnZlcmlzaWduLmNvbS9zY3JpcHRzL3RpbXN0YW1w
LmRsbDwvVGltZVN0YW1wU2VydmVyPgorICA8L1Byb3BlcnR5R3JvdXA+Cis8L1Byb2plY3Q+Ci0t
IAoyLjEuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Cndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qu
b3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZv
L3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 09:40:45 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 09:40:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQWwn-0003LT-2C; Fri, 22 Jul 2016 09:40:45 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bQWwl-0003Jz-FS
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 09:40:43 +0000
Received: from [85.158.143.35] by server-3.bemta-6.messagelabs.com id
 DE/4B-05661-A1AE1975; Fri, 22 Jul 2016 09:40:42 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprCIsWRWlGSWpSXmKPExsXiVRvkpCv5amK
 4weq7IhZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y/35dtaChe+ZK75vPM/UwLhiMXMXIxeHkMBM
 RolLHy+zgDgsApdYJBbcesMK4kgIvGORuDnrM5DDCeTESNxtmMgGYVdIfDx9ixnEFhJQlGi+d
 oEdYtRKJontC5+AFbEJqEvcfr+YHaLBTuLTrJtgtoiAqsS15cfAapgFtCQebpjH2MXIwSEsoC
 fR8iAaJMwCVHLl6mwmEJtXwF1i6sV+qDFyEnsnr2aZwMi/gJFhFaN6cWpRWWqRrrFeUlFmekZ
 JbmJmjq6hgZlebmpxcWJ6ak5iUrFecn7uJkZgCDEAwQ7Gjn9OhxglOZiURHl/XJ0YLsSXlJ9S
 mZFYnBFfVJqTWnyIUYaDQ0mCt/wFUE6wKDU9tSItMwcYzDBpCQ4eJRHe5SBp3uKCxNzizHSI1
 ClGXY4tU++tZRJiycvPS5US520GKRIAKcoozYMbAYusS4yyUsK8jEBHCfEUpBblZpagyr9iFO
 dgVBLmjQaZwpOZVwK36RXQEUxAR8wR6Ac5oiQRISUFjNWKOEGlfwmz/511dvMsmZDSz9W94B/
 PhTcKvfWmCoWqRUtMvpkmpiyzPN+z7/CRFft2rD29bO1KV61trkFpzk6nonsuut96toYp87vU
 O0vVmck1U0/OruA9ku8z9UHWfoNNxZWbKo7obXNSD+Wdclan7qpxKONmpp2L9yWIO56oqftZ8
 muauxJLcUaioRZzUXEiALye2lSnAgAA
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-15.tower-21.messagelabs.com!1469180441!25065635!1
X-Originating-IP: [74.125.82.66]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 27857 invoked from network); 22 Jul 2016 09:40:41 -0000
Received: from mail-wm0-f66.google.com (HELO mail-wm0-f66.google.com)
 (74.125.82.66)
 by server-15.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 22 Jul 2016 09:40:41 -0000
Received: by mail-wm0-f66.google.com with SMTP id i5so5420093wmg.2
 for <win-pv-devel@lists.xenproject.org>; Fri, 22 Jul 2016 02:40:41 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=Igt8kISCwCJKcTCHhOr960dVg5c8cgmLZt3TUPwFy2I=;
 b=ef3iIB+ENxmxkt7Xde4JKKqyFvTUXKqpMMY2D15srm2vfm1wF4bEeid1E9ZR+Ccs+D
 OhnydhBo0TnYg7QxJ05XHEZtJbJOb3/MINauHAbQoqdNl9DvBKNgMpy9R4qMPFY/IGPC
 wMWigUM2C9/N40fu8T7Ggn/ARqjycvDdS6GlxUC9oMjDGZbTa7yU+6lFD5W4YaGHNy8X
 xepAMMVpJgdBZ+ozwfBDs2dSCMA8hVtu17ihomPxmlD2Wmq6vL1VFygyAA9EAYYUpUxq
 zTCyGpQjmx5iiGwUSOGuxZzWmMqC59ywBkYyPxqI+3pnpFpk2iwHClFsYutxOBtJ+CCH
 0ynQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=Igt8kISCwCJKcTCHhOr960dVg5c8cgmLZt3TUPwFy2I=;
 b=lBF4PBwU7JvvxohjwHr8nMxHj2X4yCIqkr0gceE3Km5K4h+I66rmJp8APLYhZPNnQ0
 PGXgB6FoxIUA7sfLum2GhXnxoBHaElOl9vFaDTRrMv0kCGyfIlWgvJfumgiWZK3Y7jjl
 v7MZkKEfQUfcSstDjQtghvhXonAHZOjOVqC0a76Cgl0InabumXFUPy7IWOb3FabSHmFX
 +ikOQ1YfZNYS4UpQw7hYNsOGuZ7ckkuG+zl3uhfg/SwmxZyK2UtduiYbOaFLXAPULGXZ
 7swRJDtrXZIbV9cEdpx4IJgkOO4T8xTkHC5LogRP8oy/ttmERw5ljkIJlPx2B7zlwDEN
 E/1A==
X-Gm-Message-State: ALyK8tKEw4m2Xn0tC+C76T86/ViM6jgfo8SzmUlM/LR9Lz1t5POOvY/a5ePJSf2q+FIhKw==
X-Received: by 10.28.95.67 with SMTP id t64mr23195790wmb.99.1469180436612;
 Fri, 22 Jul 2016 02:40:36 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id g184sm11640847wme.15.2016.07.22.02.40.35
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 22 Jul 2016 02:40:35 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Fri, 22 Jul 2016 10:40:19 +0100
Message-Id: <1469180422-15112-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 1/4] Add a new monitor service
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhpcyBwYXRjaCBhZGRzIHRoZSBib2lsZXJwbGF0ZSBmb3IgYSBzZXJ2aWNlIGNhbGxlZCBYRU5C
VVNfTU9OSVRPUi4KVGhlIHNlcnZpY2UgZG9lcyBub3QgeWV0IGhhdmUgYW55IGZ1bmN0aW9uYWxp
dHkuIFRoaXMgd2lsbCBiZSBhZGRlZApieSBzdWJzZXF1ZW50IHBhdGNoZXMuCgpTaWduZWQtb2Zm
LWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgotLS0KIHNyYy9jb2lu
c3QvY29pbnN0LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgODAgKysrLQogc3Jj
L21vbml0b3IvbWVzc2FnZXMubWMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyNCArCiBz
cmMvbW9uaXRvci9tb25pdG9yLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNTI0ICsr
KysrKysrKysrKysrKysrKysrKysKIHNyYy9tb25pdG9yL3hlbmJ1c19tb25pdG9yLnJjICAgICAg
ICAgICAgICAgICAgICAgfCAgNTcgKysrCiBzcmMveGVuYnVzLmluZiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgIDM5ICstCiB2czIwMTIvcGFja2FnZS9wYWNrYWdlLnZjeHBy
b2ogICAgICAgICAgICAgICAgICAgIHwgICAzICsKIHZzMjAxMi94ZW5idXMuc2xuICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgODIgKystLQogdnMyMDEyL3hlbmJ1c19tb25pdG9y
L3hlbmJ1c19tb25pdG9yLnZjeHByb2ogICAgICB8ICA4MiArKysrCiB2czIwMTIveGVuYnVzX21v
bml0b3IveGVuYnVzX21vbml0b3IudmN4cHJvai51c2VyIHwgICA4ICsKIHZzMjAxMy9wYWNrYWdl
L3BhY2thZ2UudmN4cHJvaiAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwogdnMyMDEzL3hlbmJ1
cy5zbG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE3MCArKysrLS0tCiB2czIw
MTMveGVuYnVzX21vbml0b3IveGVuYnVzX21vbml0b3IudmN4cHJvaiAgICAgIHwgIDgyICsrKysK
IHZzMjAxMy94ZW5idXNfbW9uaXRvci94ZW5idXNfbW9uaXRvci52Y3hwcm9qLnVzZXIgfCAgIDgg
KwogMTMgZmlsZXMgY2hhbmdlZCwgMTA2MyBpbnNlcnRpb25zKCspLCA5OSBkZWxldGlvbnMoLSkK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvbW9uaXRvci9tZXNzYWdlcy5tYwogY3JlYXRlIG1vZGUg
MTAwNjQ0IHNyYy9tb25pdG9yL21vbml0b3IuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9tb25p
dG9yL3hlbmJ1c19tb25pdG9yLnJjCiBjcmVhdGUgbW9kZSAxMDA2NDQgdnMyMDEyL3hlbmJ1c19t
b25pdG9yL3hlbmJ1c19tb25pdG9yLnZjeHByb2oKIGNyZWF0ZSBtb2RlIDEwMDY0NCB2czIwMTIv
eGVuYnVzX21vbml0b3IveGVuYnVzX21vbml0b3IudmN4cHJvai51c2VyCiBjcmVhdGUgbW9kZSAx
MDA2NDQgdnMyMDEzL3hlbmJ1c19tb25pdG9yL3hlbmJ1c19tb25pdG9yLnZjeHByb2oKIGNyZWF0
ZSBtb2RlIDEwMDY0NCB2czIwMTMveGVuYnVzX21vbml0b3IveGVuYnVzX21vbml0b3IudmN4cHJv
ai51c2VyCgpkaWZmIC0tZ2l0IGEvc3JjL2NvaW5zdC9jb2luc3QuYyBiL3NyYy9jb2luc3QvY29p
bnN0LmMKaW5kZXggZjhlZjkyZS4uNjYzNTllMCAxMDA2NDQKLS0tIGEvc3JjL2NvaW5zdC9jb2lu
c3QuYworKysgYi9zcmMvY29pbnN0L2NvaW5zdC5jCkBAIC02Miw2ICs2Miw4IEBAIF9fdXNlcl9j
b2RlOwogCiAjZGVmaW5lIEVOVU1fS0VZICAgICJTWVNURU1cXEN1cnJlbnRDb250cm9sU2V0XFxF
bnVtIgogCisjZGVmaW5lIE1PTklUT1JfTkFNRSAgICAiWEVOQlVTX01PTklUT1IiCisKIHN0YXRp
YyBWT0lECiAjcHJhZ21hIHByZWZhc3Qoc3VwcHJlc3M6NjI2MikgLy8gRnVuY3Rpb24gdXNlcyAn
MTAzNicgYnl0ZXMgb2Ygc3RhY2s6IGV4Y2VlZHMgL2FuYWx5emU6c3RhY2tzaXplJzEwMjQnCiBf
X0xvZygKQEAgLTE0NjUsNiArMTQ2Nyw3OCBAQCBmYWlsMToKICAgICByZXR1cm4gRkFMU0U7CiB9
CiAKK3N0YXRpYyBCT09MCitNb25pdG9yRGVsZXRlKAorICAgIFZPSUQKKyAgICApCit7CisgICAg
U0NfSEFORExFICAgICAgICAgICBTQ01hbmFnZXI7CisgICAgU0NfSEFORExFICAgICAgICAgICBT
ZXJ2aWNlOworICAgIEJPT0wgICAgICAgICAgICAgICAgU3VjY2VzczsKKyAgICBTRVJWSUNFX1NU
QVRVUyAgICAgIFN0YXR1czsKKyAgICBIUkVTVUxUICAgICAgICAgICAgIEVycm9yOworCisgICAg
TG9nKCI9PT09PiIpOworCisgICAgU0NNYW5hZ2VyID0gT3BlblNDTWFuYWdlcihOVUxMLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFNDX01BTkFHRVJfQUxMX0FDQ0VTUyk7CisKKyAgICBpZiAoU0NNYW5hZ2VyID09IE5V
TEwpCisgICAgICAgIGdvdG8gZmFpbDE7CisKKyAgICBTZXJ2aWNlID0gT3BlblNlcnZpY2UoU0NN
YW5hZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICBNT05JVE9SX05BTUUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgIFNFUlZJQ0VfQUxMX0FDQ0VTUyk7CisKKyAgICBpZiAoU2Vydmlj
ZSA9PSBOVUxMKQorICAgICAgICBnb3RvIGZhaWwyOworCisgICAgU3VjY2VzcyA9IENvbnRyb2xT
ZXJ2aWNlKFNlcnZpY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFUlZJQ0VfQ09O
VFJPTF9TVE9QLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmU3RhdHVzKTsKKworICAg
IGlmICghU3VjY2VzcykKKyAgICAgICAgZ290byBmYWlsMzsKKworICAgIFN1Y2Nlc3MgPSBEZWxl
dGVTZXJ2aWNlKFNlcnZpY2UpOworCisgICAgaWYgKCFTdWNjZXNzKQorICAgICAgICBnb3RvIGZh
aWw0OworCisgICAgQ2xvc2VTZXJ2aWNlSGFuZGxlKFNlcnZpY2UpOworICAgIENsb3NlU2Vydmlj
ZUhhbmRsZShTQ01hbmFnZXIpOworCisgICAgTG9nKCI8PT09PSIpOworCisgICAgcmV0dXJuIFRS
VUU7CisKK2ZhaWw0OgorICAgIExvZygiZmFpbDQiKTsKKworZmFpbDM6CisgICAgTG9nKCJmYWls
MyIpOworCisgICAgQ2xvc2VTZXJ2aWNlSGFuZGxlKFNlcnZpY2UpOworCitmYWlsMjoKKyAgICBM
b2coImZhaWwyIik7CisKKyAgICBDbG9zZVNlcnZpY2VIYW5kbGUoU0NNYW5hZ2VyKTsKKworZmFp
bDE6CisgICAgRXJyb3IgPSBHZXRMYXN0RXJyb3IoKTsKKworICAgIHsKKyAgICAgICAgUFRDSEFS
ICBNZXNzYWdlOworICAgICAgICBNZXNzYWdlID0gR2V0RXJyb3JNZXNzYWdlKEVycm9yKTsKKyAg
ICAgICAgTG9nKCJmYWlsMSAoJXMpIiwgTWVzc2FnZSk7CisgICAgICAgIExvY2FsRnJlZShNZXNz
YWdlKTsKKyAgICB9CisKKyAgICByZXR1cm4gRkFMU0U7Cit9CisKIHN0YXRpYyBIUkVTVUxUCiBE
aWZJbnN0YWxsUHJlUHJvY2VzcygKICAgICBJTiAgSERFVklORk8gICAgICAgICAgICAgICAgICAg
IERldmljZUluZm9TZXQsCkBAIC0xNjI4LDcgKzE3MDIsMTEgQEAgRGlmUmVtb3ZlUHJlUHJvY2Vz
cygKICAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVSKERldmljZUluZm9EYXRhKTsKICAgICBVTlJF
RkVSRU5DRURfUEFSQU1FVEVSKENvbnRleHQpOwogCi0gICAgTG9nKCI8PT09PiIpOworICAgIExv
ZygiPT09PT4iKTsKKworICAgIChWT0lEKSBNb25pdG9yRGVsZXRlKCk7CisKKyAgICBMb2coIjw9
PT09Iik7CiAKICAgICByZXR1cm4gTk9fRVJST1I7CiB9CmRpZmYgLS1naXQgYS9zcmMvbW9uaXRv
ci9tZXNzYWdlcy5tYyBiL3NyYy9tb25pdG9yL21lc3NhZ2VzLm1jCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmFiNDkyNDMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvbW9uaXRv
ci9tZXNzYWdlcy5tYwpAQCAtMCwwICsxLDI0IEBACitNZXNzYWdlSWRUeXBlZGVmPURXT1JECisK
K1NldmVyaXR5TmFtZXM9KAorCVN1Y2Nlc3M9MHgwOlNUQVRVU19TRVZFUklUWV9TVUNDRVNTCisJ
SW5mb3JtYXRpb25hbD0weDE6U1RBVFVTX1NFVkVSSVRZX0lORk9STUFUSU9OQUwKKwlXYXJuaW5n
PTB4MjpTVEFUVVNfU0VWRVJJVFlfV0FSTklORworCUVycm9yPTB4MzpTVEFUVVNfU0VWRVJJVFlf
RVJST1IKKwkpCisKKworRmFjaWxpdHlOYW1lcz0oCisJU3lzdGVtPTB4MDpGQUNJTElUWV9TWVNU
RU0KKwlSdW50aW1lPTB4MjpGQUNJTElUWV9SVU5USU1FCisJU3R1YnM9MHgzOkZBQ0lMSVRZX1NU
VUJTCisJSW89MHg0OkZBQ0lMSVRZX0lPX0VSUk9SX0NPREUKKwkpCisKK01lc3NhZ2VJZD0weDEK
K1NldmVyaXR5PUluZm9ybWF0aW9uYWwKK0ZhY2lsaXR5PVN5c3RlbQorU3ltYm9saWNOYW1lPU1P
TklUT1JfTE9HCitMYW5ndWFnZT1FbmdsaXNoCislMQorLgpkaWZmIC0tZ2l0IGEvc3JjL21vbml0
b3IvbW9uaXRvci5jIGIvc3JjL21vbml0b3IvbW9uaXRvci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjdhZWI1ZDIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvbW9uaXRvci9t
b25pdG9yLmMKQEAgLTAsMCArMSw1MjQgQEAKKy8qIENvcHlyaWdodCAoYykgQ2l0cml4IFN5c3Rl
bXMgSW5jLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSAxYW5kIGJpbmFyeSBmb3JtcywKKyAqIHdpdGggb3Igd2l0aG91dCBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQKKyAqIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogKiAgIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgICBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlMjMKKyAqICAgICBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqICogICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZQorICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlcgorICogICAgIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5ECisgKiBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLAorICogSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLAorICogQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwK
KyAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORworICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgPHdpbmRvd3Mu
aD4KKyNpbmNsdWRlIDx0Y2hhci5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0
cnNhZmUuaD4KKworI2luY2x1ZGUgPHZlcnNpb24uaD4KKworI2luY2x1ZGUgIm1lc3NhZ2VzLmgi
CisKKyNkZWZpbmUgTU9OSVRPUl9OQU1FICAgICAgICBfX01PRFVMRV9fCisjZGVmaW5lIE1PTklU
T1JfRElTUExBWU5BTUUgTU9OSVRPUl9OQU1FCisKK3R5cGVkZWYgc3RydWN0IF9NT05JVE9SX0NP
TlRFWFQgeworICAgIFNFUlZJQ0VfU1RBVFVTICAgICAgICAgIFN0YXR1czsKKyAgICBTRVJWSUNF
X1NUQVRVU19IQU5ETEUgICBTZXJ2aWNlOworICAgIEhBTkRMRSAgICAgICAgICAgICAgICAgIEV2
ZW50TG9nOworICAgIEhBTkRMRSAgICAgICAgICAgICAgICAgIFN0b3BFdmVudDsKK30gTU9OSVRP
Ul9DT05URVhULCAqUE1PTklUT1JfQ09OVEVYVDsKKworTU9OSVRPUl9DT05URVhUIE1vbml0b3JD
b250ZXh0OworCisjZGVmaW5lIE1BWElNVU1fQlVGRkVSX1NJWkUgMTAyNAorCitzdGF0aWMgVk9J
RAorI3ByYWdtYSBwcmVmYXN0KHN1cHByZXNzOjYyNjIpIC8vIEZ1bmN0aW9uIHVzZXMgJzEwMzYn
IGJ5dGVzIG9mIHN0YWNrOiBleGNlZWRzIC9hbmFseXplOnN0YWNrc2l6ZScxMDI0JworX19Mb2co
CisgICAgSU4gIGNvbnN0IENIQVIgICAgICAqRm9ybWF0LAorICAgIElOICAuLi4KKyAgICApCit7
CisjaWYgREJHCisgICAgUE1PTklUT1JfQ09OVEVYVCAgICBDb250ZXh0ID0gJk1vbml0b3JDb250
ZXh0OworICAgIGNvbnN0IFRDSEFSICAgICAgICAgKlN0cmluZ3NbMV07CisjZW5kaWYKKyAgICBU
Q0hBUiAgICAgICAgICAgICAgIEJ1ZmZlcltNQVhJTVVNX0JVRkZFUl9TSVpFXTsKKyAgICB2YV9s
aXN0ICAgICAgICAgICAgIEFyZ3VtZW50czsKKyAgICBzaXplX3QgICAgICAgICAgICAgIExlbmd0
aDsKKyAgICBIUkVTVUxUICAgICAgICAgICAgIFJlc3VsdDsKKworICAgIHZhX3N0YXJ0KEFyZ3Vt
ZW50cywgRm9ybWF0KTsKKyAgICBSZXN1bHQgPSBTdHJpbmdDY2hWUHJpbnRmKEJ1ZmZlciwgTUFY
SU1VTV9CVUZGRVJfU0laRSwgRm9ybWF0LCBBcmd1bWVudHMpOworICAgIHZhX2VuZChBcmd1bWVu
dHMpOworCisgICAgaWYgKFJlc3VsdCAhPSBTX09LICYmIFJlc3VsdCAhPSBTVFJTQUZFX0VfSU5T
VUZGSUNJRU5UX0JVRkZFUikKKyAgICAgICAgcmV0dXJuOworCisgICAgUmVzdWx0ID0gU3RyaW5n
Q2NoTGVuZ3RoKEJ1ZmZlciwgTUFYSU1VTV9CVUZGRVJfU0laRSwgJkxlbmd0aCk7CisgICAgaWYg
KFJlc3VsdCAhPSBTX09LKQorICAgICAgICByZXR1cm47CisKKyAgICBMZW5ndGggPSBfX21pbihN
QVhJTVVNX0JVRkZFUl9TSVpFIC0gMSwgTGVuZ3RoICsgMik7CisKKyAgICBfX2FuYWx5c2lzX2Fz
c3VtZShMZW5ndGggPCBNQVhJTVVNX0JVRkZFUl9TSVpFKTsKKyAgICBfX2FuYWx5c2lzX2Fzc3Vt
ZShMZW5ndGggPj0gMik7CisgICAgQnVmZmVyW0xlbmd0aF0gPSAnXDAnOworICAgIEJ1ZmZlcltM
ZW5ndGggLSAxXSA9ICdcbic7CisgICAgQnVmZmVyW0xlbmd0aCAtIDJdID0gJ1xyJzsKKworICAg
IE91dHB1dERlYnVnU3RyaW5nKEJ1ZmZlcik7CisKKyNpZiBEQkcKKyAgICBTdHJpbmdzWzBdID0g
QnVmZmVyOworCisgICAgaWYgKENvbnRleHQtPkV2ZW50TG9nICE9IE5VTEwpCisgICAgICAgIFJl
cG9ydEV2ZW50KENvbnRleHQtPkV2ZW50TG9nLAorICAgICAgICAgICAgICAgICAgICBFVkVOVExP
R19JTkZPUk1BVElPTl9UWVBFLAorICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAg
ICAgICAgICBNT05JVE9SX0xPRywKKyAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAg
ICAgICAgICAgICAgQVJSQVlTSVpFKFN0cmluZ3MpLAorICAgICAgICAgICAgICAgICAgICAwLAor
ICAgICAgICAgICAgICAgICAgICBTdHJpbmdzLAorICAgICAgICAgICAgICAgICAgICBOVUxMKTsK
KyNlbmRpZgorfQorCisjZGVmaW5lIExvZyhfRm9ybWF0LCAuLi4pIFwKKyAgICAgICAgX19Mb2co
X19NT0RVTEVfXyAifCIgX19GVU5DVElPTl9fICI6ICIgX0Zvcm1hdCwgX19WQV9BUkdTX18pCisK
K3N0YXRpYyBQVENIQVIKK0dldEVycm9yTWVzc2FnZSgKKyAgICBJTiAgSFJFU1VMVCBFcnJvcgor
ICAgICkKK3sKKyAgICBQVENIQVIgICAgICBNZXNzYWdlOworICAgIFVMT05HICAgICAgIEluZGV4
OworCisgICAgRm9ybWF0TWVzc2FnZShGT1JNQVRfTUVTU0FHRV9BTExPQ0FURV9CVUZGRVIgfAor
ICAgICAgICAgICAgICAgICAgRk9STUFUX01FU1NBR0VfRlJPTV9TWVNURU0gfAorICAgICAgICAg
ICAgICAgICAgRk9STUFUX01FU1NBR0VfSUdOT1JFX0lOU0VSVFMsCisgICAgICAgICAgICAgICAg
ICBOVUxMLAorICAgICAgICAgICAgICAgICAgRXJyb3IsCisgICAgICAgICAgICAgICAgICBNQUtF
TEFOR0lEKExBTkdfTkVVVFJBTCwgU1VCTEFOR19ERUZBVUxUKSwKKyAgICAgICAgICAgICAgICAg
IChMUFRTVFIpJk1lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAg
ICAgTlVMTCk7CisKKyAgICBmb3IgKEluZGV4ID0gMDsgTWVzc2FnZVtJbmRleF0gIT0gJ1wwJzsg
SW5kZXgrKykgeworICAgICAgICBpZiAoTWVzc2FnZVtJbmRleF0gPT0gJ1xyJyB8fCBNZXNzYWdl
W0luZGV4XSA9PSAnXG4nKSB7CisgICAgICAgICAgICBNZXNzYWdlW0luZGV4XSA9ICdcMCc7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBNZXNzYWdl
OworfQorCitzdGF0aWMgY29uc3QgQ0hBUiAqCitTZXJ2aWNlU3RhdGVOYW1lKAorICAgIElOICBE
V09SRCAgIFN0YXRlCisgICAgKQoreworI2RlZmluZSBfU1RBVEVfTkFNRShfU3RhdGUpIFwKKyAg
ICBjYXNlIFNFUlZJQ0VfICMjIF9TdGF0ZTogXAorICAgICAgICByZXR1cm4gI19TdGF0ZQorCisg
ICAgc3dpdGNoIChTdGF0ZSkgeworICAgIF9TVEFURV9OQU1FKFNUQVJUX1BFTkRJTkcpOworICAg
IF9TVEFURV9OQU1FKFJVTk5JTkcpOworICAgIF9TVEFURV9OQU1FKFNUT1BfUEVORElORyk7Cisg
ICAgX1NUQVRFX05BTUUoU1RPUFBFRCk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7Cisg
ICAgfQorCisgICAgcmV0dXJuICJVTktOT1dOIjsKKworI3VuZGVmICBfU1RBVEVfTkFNRQorfQor
CitzdGF0aWMgVk9JRAorUmVwb3J0U3RhdHVzKAorICAgIElOICBEV09SRCAgICAgICAgICAgQ3Vy
cmVudFN0YXRlLAorICAgIElOICBEV09SRCAgICAgICAgICAgV2luMzJFeGl0Q29kZSwKKyAgICBJ
TiAgRFdPUkQgICAgICAgICAgIFdhaXRIaW50KQoreworICAgIFBNT05JVE9SX0NPTlRFWFQgICAg
Q29udGV4dCA9ICZNb25pdG9yQ29udGV4dDsKKyAgICBzdGF0aWMgRFdPUkQgICAgICAgIENoZWNr
UG9pbnQgPSAxOworICAgIEJPT0wgICAgICAgICAgICAgICAgU3VjY2VzczsKKyAgICBIUkVTVUxU
ICAgICAgICAgICAgIEVycm9yOworCisgICAgTG9nKCI9PT09PiAoJXMpIiwgU2VydmljZVN0YXRl
TmFtZShDdXJyZW50U3RhdGUpKTsKKworICAgIENvbnRleHQtPlN0YXR1cy5kd0N1cnJlbnRTdGF0
ZSA9IEN1cnJlbnRTdGF0ZTsKKyAgICBDb250ZXh0LT5TdGF0dXMuZHdXaW4zMkV4aXRDb2RlID0g
V2luMzJFeGl0Q29kZTsKKyAgICBDb250ZXh0LT5TdGF0dXMuZHdXYWl0SGludCA9IFdhaXRIaW50
OworCisgICAgaWYgKEN1cnJlbnRTdGF0ZSA9PSBTRVJWSUNFX1NUQVJUX1BFTkRJTkcpCisgICAg
ICAgIENvbnRleHQtPlN0YXR1cy5kd0NvbnRyb2xzQWNjZXB0ZWQgPSAwOworICAgIGVsc2UKKyAg
ICAgICAgQ29udGV4dC0+U3RhdHVzLmR3Q29udHJvbHNBY2NlcHRlZCA9IFNFUlZJQ0VfQUNDRVBU
X1NUT1AgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VS
VklDRV9BQ0NFUFRfU0hVVERPV047CisKKyAgICBpZiAoQ3VycmVudFN0YXRlID09IFNFUlZJQ0Vf
UlVOTklORyB8fAorICAgICAgICBDdXJyZW50U3RhdGUgPT0gU0VSVklDRV9TVE9QUEVEICkKKyAg
ICAgICAgQ29udGV4dC0+U3RhdHVzLmR3Q2hlY2tQb2ludCA9IDA7CisgICAgZWxzZQorICAgICAg
ICBDb250ZXh0LT5TdGF0dXMuZHdDaGVja1BvaW50ID0gQ2hlY2tQb2ludCsrOworCisgICAgU3Vj
Y2VzcyA9IFNldFNlcnZpY2VTdGF0dXMoQ29udGV4dC0+U2VydmljZSwgJkNvbnRleHQtPlN0YXR1
cyk7CisKKyAgICBpZiAoIVN1Y2Nlc3MpCisgICAgICAgIGdvdG8gZmFpbDE7CisKKyAgICBMb2co
Ijw9PT09Iik7CisKKyAgICByZXR1cm47CisKK2ZhaWwxOgorICAgIEVycm9yID0gR2V0TGFzdEVy
cm9yKCk7CisKKyAgICB7CisgICAgICAgIFBUQ0hBUiAgTWVzc2FnZTsKKyAgICAgICAgTWVzc2Fn
ZSA9IEdldEVycm9yTWVzc2FnZShFcnJvcik7CisgICAgICAgIExvZygiZmFpbDEgKCVzKSIsIE1l
c3NhZ2UpOworICAgICAgICBMb2NhbEZyZWUoTWVzc2FnZSk7CisgICAgfQorfQorCitEV09SRCBX
SU5BUEkKK01vbml0b3JDdHJsSGFuZGxlckV4KAorICAgIElOICBEV09SRCAgICAgICAgICAgQ3Ry
bCwKKyAgICBJTiAgRFdPUkQgICAgICAgICAgIEV2ZW50VHlwZSwKKyAgICBJTiAgTFBWT0lEICAg
ICAgICAgIEV2ZW50RGF0YSwKKyAgICBJTiAgTFBWT0lEICAgICAgICAgIEFyZ3VtZW50CisgICAg
KQoreworICAgIFBNT05JVE9SX0NPTlRFWFQgICAgQ29udGV4dCA9ICZNb25pdG9yQ29udGV4dDsK
KworICAgIFVOUkVGRVJFTkNFRF9QQVJBTUVURVIoRXZlbnRUeXBlKTsKKyAgICBVTlJFRkVSRU5D
RURfUEFSQU1FVEVSKEV2ZW50RGF0YSk7CisgICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihBcmd1
bWVudCk7CisKKyAgICBzd2l0Y2ggKEN0cmwpIHsKKyAgICBjYXNlIFNFUlZJQ0VfQ09OVFJPTF9T
VE9QOgorICAgIGNhc2UgU0VSVklDRV9DT05UUk9MX1NIVVRET1dOOgorICAgICAgICBSZXBvcnRT
dGF0dXMoU0VSVklDRV9TVE9QX1BFTkRJTkcsIE5PX0VSUk9SLCAwKTsKKyAgICAgICAgU2V0RXZl
bnQoQ29udGV4dC0+U3RvcEV2ZW50KTsKKyAgICAgICAgcmV0dXJuIE5PX0VSUk9SOworCisgICAg
Y2FzZSBTRVJWSUNFX0NPTlRST0xfSU5URVJST0dBVEU6CisgICAgICAgIFJlcG9ydFN0YXR1cyhT
RVJWSUNFX1JVTk5JTkcsIE5PX0VSUk9SLCAwKTsKKyAgICAgICAgcmV0dXJuIE5PX0VSUk9SOwor
CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgUmVwb3J0U3RhdHVz
KFNFUlZJQ0VfUlVOTklORywgTk9fRVJST1IsIDApOworICAgIHJldHVybiBFUlJPUl9DQUxMX05P
VF9JTVBMRU1FTlRFRDsKK30KKworVk9JRCBXSU5BUEkKK01vbml0b3JNYWluKAorICAgIF9Jbl8g
ICAgRFdPUkQgICAgICAgYXJnYywKKyAgICBfSW5fICAgIExQVFNUUiAgICAgICphcmd2CisgICAg
KQoreworICAgIFBNT05JVE9SX0NPTlRFWFQgICAgQ29udGV4dCA9ICZNb25pdG9yQ29udGV4dDsK
KyAgICBIUkVTVUxUICAgICAgICAgICAgIEVycm9yOworCisgICAgVU5SRUZFUkVOQ0VEX1BBUkFN
RVRFUihhcmdjKTsKKyAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVSKGFyZ3YpOworCisgICAgTG9n
KCI9PT09PiIpOworCisgICAgQ29udGV4dC0+U2VydmljZSA9IFJlZ2lzdGVyU2VydmljZUN0cmxI
YW5kbGVyRXgoTU9OSVRPUl9OQU1FLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIE1vbml0b3JDdHJsSGFuZGxlckV4LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgIGlmIChDb250
ZXh0LT5TZXJ2aWNlID09IE5VTEwpCisgICAgICAgIGdvdG8gZmFpbDE7CisKKyAgICBDb250ZXh0
LT5FdmVudExvZyA9IFJlZ2lzdGVyRXZlbnRTb3VyY2UoTlVMTCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTU9OSVRPUl9OQU1FKTsKKyAgICBpZiAoQ29udGV4
dC0+RXZlbnRMb2cgPT0gTlVMTCkKKyAgICAgICAgZ290byBmYWlsMjsKKworICAgIENvbnRleHQt
PlN0YXR1cy5kd1NlcnZpY2VUeXBlID0gU0VSVklDRV9XSU4zMl9PV05fUFJPQ0VTUzsKKyAgICBD
b250ZXh0LT5TdGF0dXMuZHdTZXJ2aWNlU3BlY2lmaWNFeGl0Q29kZSA9IDA7CisKKyAgICBSZXBv
cnRTdGF0dXMoU0VSVklDRV9TVEFSVF9QRU5ESU5HLCBOT19FUlJPUiwgMzAwMCk7CisKKyAgICBD
b250ZXh0LT5TdG9wRXZlbnQgPSBDcmVhdGVFdmVudChOVUxMLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFRSVUUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRkFMU0UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7
CisKKyAgICBpZiAoQ29udGV4dC0+U3RvcEV2ZW50ID09IE5VTEwpCisgICAgICAgIGdvdG8gZmFp
bDM7CisKKyAgICBSZXBvcnRTdGF0dXMoU0VSVklDRV9SVU5OSU5HLCBOT19FUlJPUiwgMCk7CisK
KyAgICBmb3IgKDs7KSB7CisgICAgICAgIExvZygid2FpdGluZy4uLiIpOworICAgICAgICBXYWl0
Rm9yU2luZ2xlT2JqZWN0KENvbnRleHQtPlN0b3BFdmVudCwgSU5GSU5JVEUpOworICAgICAgICBM
b2coImF3YWtlIik7CisKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgQ2xvc2VIYW5kbGUo
Q29udGV4dC0+U3RvcEV2ZW50KTsKKworICAgIFJlcG9ydFN0YXR1cyhTRVJWSUNFX1NUT1BQRUQs
IE5PX0VSUk9SLCAwKTsKKworICAgIChWT0lEKSBEZXJlZ2lzdGVyRXZlbnRTb3VyY2UoQ29udGV4
dC0+RXZlbnRMb2cpOworCisgICAgTG9nKCI8PT09PSIpOworCisgICAgcmV0dXJuOworCitmYWls
MzoKKyAgICBMb2coImZhaWwzIik7CisKKyAgICBSZXBvcnRTdGF0dXMoU0VSVklDRV9TVE9QUEVE
LCBHZXRMYXN0RXJyb3IoKSwgMCk7CisKKyAgICAoVk9JRCkgRGVyZWdpc3RlckV2ZW50U291cmNl
KENvbnRleHQtPkV2ZW50TG9nKTsKKworZmFpbDI6CisgICAgTG9nKCJmYWlsMiIpOworCitmYWls
MToKKyAgICBFcnJvciA9IEdldExhc3RFcnJvcigpOworCisgICAgeworICAgICAgICBQVENIQVIg
IE1lc3NhZ2U7CisgICAgICAgIE1lc3NhZ2UgPSBHZXRFcnJvck1lc3NhZ2UoRXJyb3IpOworICAg
ICAgICBMb2coImZhaWwxICglcykiLCBNZXNzYWdlKTsKKyAgICAgICAgTG9jYWxGcmVlKE1lc3Nh
Z2UpOworICAgIH0KK30KKworc3RhdGljIEJPT0wKK01vbml0b3JDcmVhdGUoCisgICAgVk9JRAor
ICAgICkKK3sKKyAgICBTQ19IQU5ETEUgICBTQ01hbmFnZXI7CisgICAgU0NfSEFORExFICAgU2Vy
dmljZTsKKyAgICBUQ0hBUiAgICAgICBQYXRoW01BWF9QQVRIXTsKKyAgICBIUkVTVUxUICAgICBF
cnJvcjsKKworICAgIExvZygiPT09PT4iKTsKKworICAgIGlmKCFHZXRNb2R1bGVGaWxlTmFtZShO
VUxMLCBQYXRoLCBNQVhfUEFUSCkpCisgICAgICAgIGdvdG8gZmFpbDE7CisKKyAgICBTQ01hbmFn
ZXIgPSBPcGVuU0NNYW5hZ2VyKE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBO
VUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0NfTUFOQUdFUl9BTExfQUNDRVNT
KTsKKworICAgIGlmIChTQ01hbmFnZXIgPT0gTlVMTCkKKyAgICAgICAgZ290byBmYWlsMjsKKwor
ICAgIFNlcnZpY2UgPSBDcmVhdGVTZXJ2aWNlKFNDTWFuYWdlciwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBNT05JVE9SX05BTUUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTU9O
SVRPUl9ESVNQTEFZTkFNRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRVJWSUNFX0FM
TF9BQ0NFU1MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VSVklDRV9XSU4zMl9PV05f
UFJPQ0VTUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRVJWSUNFX0FVVE9fU1RBUlQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VSVklDRV9FUlJPUl9OT1JNQUwsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgUGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworCisgICAgaWYgKFNlcnZpY2UgPT0g
TlVMTCkKKyAgICAgICAgZ290byBmYWlsMzsKKworICAgIENsb3NlU2VydmljZUhhbmRsZShTZXJ2
aWNlKTsKKyAgICBDbG9zZVNlcnZpY2VIYW5kbGUoU0NNYW5hZ2VyKTsKKworICAgIExvZygiPD09
PT0iKTsKKworICAgIHJldHVybiBUUlVFOworCitmYWlsMzoKKyAgICBMb2coImZhaWwzIik7CisK
KyAgICBDbG9zZVNlcnZpY2VIYW5kbGUoU0NNYW5hZ2VyKTsKKworZmFpbDI6CisgICAgTG9nKCJm
YWlsMiIpOworCitmYWlsMToKKyAgICBFcnJvciA9IEdldExhc3RFcnJvcigpOworCisgICAgewor
ICAgICAgICBQVENIQVIgIE1lc3NhZ2U7CisgICAgICAgIE1lc3NhZ2UgPSBHZXRFcnJvck1lc3Nh
Z2UoRXJyb3IpOworICAgICAgICBMb2coImZhaWwxICglcykiLCBNZXNzYWdlKTsKKyAgICAgICAg
TG9jYWxGcmVlKE1lc3NhZ2UpOworICAgIH0KKworICAgIHJldHVybiBGQUxTRTsKK30KKworc3Rh
dGljIEJPT0wKK01vbml0b3JEZWxldGUoCisgICAgVk9JRAorICAgICkKK3sKKyAgICBTQ19IQU5E
TEUgICAgICAgICAgIFNDTWFuYWdlcjsKKyAgICBTQ19IQU5ETEUgICAgICAgICAgIFNlcnZpY2U7
CisgICAgQk9PTCAgICAgICAgICAgICAgICBTdWNjZXNzOworICAgIFNFUlZJQ0VfU1RBVFVTICAg
ICAgU3RhdHVzOworICAgIEhSRVNVTFQgICAgICAgICAgICAgRXJyb3I7CisKKyAgICBMb2coIj09
PT0+Iik7CisKKyAgICBTQ01hbmFnZXIgPSBPcGVuU0NNYW5hZ2VyKE5VTEwsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
U0NfTUFOQUdFUl9BTExfQUNDRVNTKTsKKworICAgIGlmIChTQ01hbmFnZXIgPT0gTlVMTCkKKyAg
ICAgICAgZ290byBmYWlsMTsKKworICAgIFNlcnZpY2UgPSBPcGVuU2VydmljZShTQ01hbmFnZXIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgIE1PTklUT1JfTkFNRSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgU0VSVklDRV9BTExfQUNDRVNTKTsKKworICAgIGlmIChTZXJ2aWNlID09IE5V
TEwpCisgICAgICAgIGdvdG8gZmFpbDI7CisKKyAgICBTdWNjZXNzID0gQ29udHJvbFNlcnZpY2Uo
U2VydmljZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VSVklDRV9DT05UUk9MX1NU
T1AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZTdGF0dXMpOworCisgICAgaWYgKCFT
dWNjZXNzKQorICAgICAgICBnb3RvIGZhaWwzOworCisgICAgU3VjY2VzcyA9IERlbGV0ZVNlcnZp
Y2UoU2VydmljZSk7CisKKyAgICBpZiAoIVN1Y2Nlc3MpCisgICAgICAgIGdvdG8gZmFpbDQ7CisK
KyAgICBDbG9zZVNlcnZpY2VIYW5kbGUoU2VydmljZSk7CisgICAgQ2xvc2VTZXJ2aWNlSGFuZGxl
KFNDTWFuYWdlcik7CisKKyAgICBMb2coIjw9PT09Iik7CisKKyAgICByZXR1cm4gVFJVRTsKKwor
ZmFpbDQ6CisgICAgTG9nKCJmYWlsNCIpOworCitmYWlsMzoKKyAgICBMb2coImZhaWwzIik7CisK
KyAgICBDbG9zZVNlcnZpY2VIYW5kbGUoU2VydmljZSk7CisKK2ZhaWwyOgorICAgIExvZygiZmFp
bDIiKTsKKworICAgIENsb3NlU2VydmljZUhhbmRsZShTQ01hbmFnZXIpOworCitmYWlsMToKKyAg
ICBFcnJvciA9IEdldExhc3RFcnJvcigpOworCisgICAgeworICAgICAgICBQVENIQVIgIE1lc3Nh
Z2U7CisgICAgICAgIE1lc3NhZ2UgPSBHZXRFcnJvck1lc3NhZ2UoRXJyb3IpOworICAgICAgICBM
b2coImZhaWwxICglcykiLCBNZXNzYWdlKTsKKyAgICAgICAgTG9jYWxGcmVlKE1lc3NhZ2UpOwor
ICAgIH0KKworICAgIHJldHVybiBGQUxTRTsKK30KKworc3RhdGljIEJPT0wKK01vbml0b3JFbnRy
eSgKKyAgICBWT0lECisgICAgKQoreworICAgIFNFUlZJQ0VfVEFCTEVfRU5UUlkgVGFibGVbXSA9
IHsKKyAgICAgICAgeyBNT05JVE9SX05BTUUsIE1vbml0b3JNYWluIH0sCisgICAgICAgIHsgTlVM
TCwgTlVMTCB9CisgICAgfTsKKyAgICBIUkVTVUxUICAgICAgICAgICAgIEVycm9yOworCisgICAg
TG9nKCIlcyAoJXMpID09PT0+IiwKKyAgICAgICAgTUFKT1JfVkVSU0lPTl9TVFIgIi4iIE1JTk9S
X1ZFUlNJT05fU1RSICIuIiBNSUNST19WRVJTSU9OX1NUUiAiLiIgQlVJTERfTlVNQkVSX1NUUiwK
KyAgICAgICAgREFZX1NUUiAiLyIgTU9OVEhfU1RSICIvIiBZRUFSX1NUUik7CisKKyAgICBpZiAo
IVN0YXJ0U2VydmljZUN0cmxEaXNwYXRjaGVyKFRhYmxlKSkKKyAgICAgICAgZ290byBmYWlsMTsK
KworICAgIExvZygiJXMgKCVzKSA8PT09PSIsCisgICAgICAgIE1BSk9SX1ZFUlNJT05fU1RSICIu
IiBNSU5PUl9WRVJTSU9OX1NUUiAiLiIgTUlDUk9fVkVSU0lPTl9TVFIgIi4iIEJVSUxEX05VTUJF
Ul9TVFIsCisgICAgICAgIERBWV9TVFIgIi8iIE1PTlRIX1NUUiAiLyIgWUVBUl9TVFIpOworCisg
ICAgcmV0dXJuIFRSVUU7CisKK2ZhaWwxOgorICAgIEVycm9yID0gR2V0TGFzdEVycm9yKCk7CisK
KyAgICB7CisgICAgICAgIFBUQ0hBUiAgTWVzc2FnZTsKKyAgICAgICAgTWVzc2FnZSA9IEdldEVy
cm9yTWVzc2FnZShFcnJvcik7CisgICAgICAgIExvZygiZmFpbDEgKCVzKSIsIE1lc3NhZ2UpOwor
ICAgICAgICBMb2NhbEZyZWUoTWVzc2FnZSk7CisgICAgfQorCisgICAgcmV0dXJuIEZBTFNFOwor
fQorCitpbnQgQ0FMTEJBQ0sKK190V2luTWFpbigKKyAgICBfSW5fICAgICAgICBISU5TVEFOQ0Ug
ICBDdXJyZW50LAorICAgIF9Jbl9vcHRfICAgIEhJTlNUQU5DRSAgIFByZXZpb3VzLAorICAgIF9J
bl8gICAgICAgIExQU1RSICAgICAgIENtZExpbmUsCisgICAgX0luXyAgICAgICAgaW50ICAgICAg
ICAgQ21kU2hvdworICAgICkKK3sKKyAgICBCT09MICAgICAgICAgICAgICAgICAgICBTdWNjZXNz
OworCisgICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihDdXJyZW50KTsKKyAgICBVTlJFRkVSRU5D
RURfUEFSQU1FVEVSKFByZXZpb3VzKTsKKyAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVSKENtZFNo
b3cpOworCisgICAgaWYgKF90Y3NsZW4oQ21kTGluZSkgIT0gMCkgeworICAgICAgICAgaWYgKF90
Y3NpY21wKENtZExpbmUsIFRFWFQoImNyZWF0ZSIpKSA9PSAwKQorICAgICAgICAgICAgIFN1Y2Nl
c3MgPSBNb25pdG9yQ3JlYXRlKCk7CisgICAgICAgICBlbHNlIGlmIChfdGNzaWNtcChDbWRMaW5l
LCBURVhUKCJkZWxldGUiKSkgPT0gMCkKKyAgICAgICAgICAgICBTdWNjZXNzID0gTW9uaXRvckRl
bGV0ZSgpOworICAgICAgICAgZWxzZQorICAgICAgICAgICAgIFN1Y2Nlc3MgPSBGQUxTRTsKKyAg
ICB9IGVsc2UKKyAgICAgICAgU3VjY2VzcyA9IE1vbml0b3JFbnRyeSgpOworCisgICAgcmV0dXJu
IFN1Y2Nlc3MgPyAwIDogMTsKK30KZGlmZiAtLWdpdCBhL3NyYy9tb25pdG9yL3hlbmJ1c19tb25p
dG9yLnJjIGIvc3JjL21vbml0b3IveGVuYnVzX21vbml0b3IucmMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMTk0ODY1NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9tb25pdG9y
L3hlbmJ1c19tb25pdG9yLnJjCkBAIC0wLDAgKzEsNTcgQEAKKy8qIENvcHlyaWdodCAoYykgQ2l0
cml4IFN5c3RlbXMgSW5jLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLAorICogd2l0aCBvciB3
aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZAorICogdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAqICAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUKKyAqICAgICBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICogICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZQorICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlcgorICogICAgIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5ECisgKiBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLAorICogSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLAorICog
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisg
KiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwKKyAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworCisjaW5jbHVkZSA8
d2luZG93cy5oPgorI2luY2x1ZGUgPG50dmVycC5oPgorCisjdW5kZWYgVkVSX0NPTVBBTllOQU1F
X1NUUgorI3VuZGVmIFZFUl9QUk9EVUNUTkFNRV9TVFIKKyN1bmRlZiBWRVJfUFJPRFVDVFZFUlNJ
T04KKyN1bmRlZiBWRVJfUFJPRFVDVFZFUlNJT05fU1RSCisKKyNpbmNsdWRlIDx2ZXJzaW9uLmg+
CisKKyNkZWZpbmUgVkVSX0NPTVBBTllOQU1FX1NUUiAgICAgICAgIFZFTkRPUl9OQU1FX1NUUgor
I2RlZmluZSBWRVJfTEVHQUxDT1BZUklHSFRfU1RSICAgICAgIkNvcHlyaWdodCAoYykgQ2l0cml4
IFN5c3RlbXMgSW5jLiIKKworI2RlZmluZSBWRVJfUFJPRFVDVE5BTUVfU1RSICAgICAgICAgIlhF
TkJVUyIKKyNkZWZpbmUgVkVSX1BST0RVQ1RWRVJTSU9OICAgICAgICAgIE1BSk9SX1ZFUlNJT04s
TUlOT1JfVkVSU0lPTixNSUNST19WRVJTSU9OLEJVSUxEX05VTUJFUgorI2RlZmluZSBWRVJfUFJP
RFVDVFZFUlNJT05fU1RSICAgICAgTUFKT1JfVkVSU0lPTl9TVFIgIi4iIE1JTk9SX1ZFUlNJT05f
U1RSICIuIiBNSUNST19WRVJTSU9OX1NUUiAiLiIgQlVJTERfTlVNQkVSX1NUUgorCisjZGVmaW5l
IFZFUl9JTlRFUk5BTE5BTUVfU1RSIAkgICAgIlhFTkJVU19NT05JVE9SLkVYRSIKKyNkZWZpbmUg
VkVSX0ZJTEVERVNDUklQVElPTl9TVFIgICAgICJYRU5CVVNfTU9OSVRPUiIKKworI2RlZmluZSBW
RVJfRklMRVRZUEUJCSAgICBWRlRfQVBQCisjZGVmaW5lIFZFUl9GSUxFU1VCVFlQRQkJICAgIFZG
VDJfVU5LTk9XTgorCisjaW5jbHVkZSAiY29tbW9uLnZlciIKKyNpbmNsdWRlICJtZXNzYWdlcy5y
YyIKZGlmZiAtLWdpdCBhL3NyYy94ZW5idXMuaW5mIGIvc3JjL3hlbmJ1cy5pbmYKaW5kZXggN2Vj
ZTk1MS4uZGRjMWM0NSAxMDA2NDQKLS0tIGEvc3JjL3hlbmJ1cy5pbmYKKysrIGIvc3JjL3hlbmJ1
cy5pbmYKQEAgLTM1LDEwICszNSwxMiBAQCBDbGFzc0dVSUQ9ezRkMzZlOTdkLWUzMjUtMTFjZS1i
ZmMxLTA4MDAyYmUxMDMxOH0KIFByb3ZpZGVyPSVWZW5kb3IlIAogQ2F0YWxvZ0ZpbGU9eGVuYnVz
LmNhdAogRHJpdmVyVmVyPTAxLzAxLzE5MDAsMC4wLjAuMAorRHJpdmVyUGFja2FnZURpc3BsYXlO
YW1lPSVEaXNrRGVzYyUKIAogW0Rlc3RpbmF0aW9uRGlyc10gCiBEZWZhdWx0RGVzdERpcj0xMiAK
IENvSW5zdF9Db3B5RmlsZXM9MTEKK01vbml0b3JfQ29weUZpbGVzPTExCiAKIFtTb3VyY2VEaXNr
c05hbWVzXQogMD0lRGlza0Rlc2MlCkBAIC00OCw4ICs1MCwxMCBAQCB4ZW4uc3lzPTAsLAogeGVu
YnVzLnN5cz0wLCwKIHhlbmZpbHQuc3lzPTAsLAogeGVuYnVzX2NvaW5zdC5kbGw9MCwsCit4ZW5i
dXNfbW9uaXRvci5leGU9MCwsCit4ZW5idXNfbW9uaXRvci5kbGw9MCwsCiAKLVtYZW5CdXNfQ29w
eWZpbGVzXQorW1hlbkJ1c19Db3B5RmlsZXNdCiB4ZW4uc3lzCiB4ZW5idXMuc3lzCiB4ZW5maWx0
LnN5cwpAQCAtNTcsNiArNjEsMTAgQEAgeGVuZmlsdC5zeXMKIFtDb0luc3RfQ29weUZpbGVzXQog
eGVuYnVzX2NvaW5zdF9ATUFKT1JfVkVSU0lPTkBfQE1JTk9SX1ZFUlNJT05AX0BNSUNST19WRVJT
SU9OQF9AQlVJTERfTlVNQkVSQC5kbGwseGVuYnVzX2NvaW5zdC5kbGwKIAorW01vbml0b3JfQ29w
eUZpbGVzXQoreGVuYnVzX21vbml0b3JfQE1BSk9SX1ZFUlNJT05AX0BNSU5PUl9WRVJTSU9OQF9A
TUlDUk9fVkVSU0lPTkBfQEJVSUxEX05VTUJFUkAuZXhlLHhlbmJ1c19tb25pdG9yLmV4ZQoreGVu
YnVzX21vbml0b3JfQE1BSk9SX1ZFUlNJT05AX0BNSU5PUl9WRVJTSU9OQF9ATUlDUk9fVkVSU0lP
TkBfQEJVSUxEX05VTUJFUkAuZGxsLHhlbmJ1c19tb25pdG9yLmRsbAorCiBbTWFudWZhY3R1cmVy
XSAKICVWZW5kb3IlPUluc3QsTlQkQVJDSCQKIApAQCAtNjksMTEgKzc3LDEzIEBAIHhlbmJ1c19j
b2luc3RfQE1BSk9SX1ZFUlNJT05AX0BNSU5PUl9WRVJTSU9OQF9ATUlDUk9fVkVSU0lPTkBfQEJV
SUxEX05VTUJFUkAuZGxsCiAlWGVuQnVzRGVzYyUJCT1YZW5CdXNfSW5zdCwJUENJXFZFTl81ODUz
JkRFVl8wMDAxCiAKIFtYZW5CdXNfSW5zdF0gCi1Db3B5RmlsZXM9WGVuQnVzX0NvcHlmaWxlcwor
Q29weUZpbGVzPVhlbkJ1c19Db3B5RmlsZXMKK0NvcHlGaWxlcz1Nb25pdG9yX0NvcHlGaWxlcwog
CiBbWGVuQnVzX0luc3QuU2VydmljZXNdCi1BZGRTZXJ2aWNlPXhlbmJ1cywweDAyLFhlbkJ1c19T
ZXJ2aWNlCitBZGRTZXJ2aWNlPXhlbmJ1cywlU1BTVkNJTlNUX0FTU09DU0VSVklDRSUsWGVuQnVz
X1NlcnZpY2UKIEFkZFNlcnZpY2U9eGVuZmlsdCwsWGVuRmlsdF9TZXJ2aWNlLAorQWRkU2Vydmlj
ZT14ZW5idXNfbW9uaXRvciwlU1BTVkNTSU5TVF9TVEFSVFNFUlZJQ0UlLE1vbml0b3JfU2Vydmlj
ZSxNb25pdG9yX0V2ZW50TG9nCiAKIFtYZW5CdXNfU2VydmljZV0gCiBEaXNwbGF5TmFtZT0lWGVu
QnVzRGVzYyUKQEAgLTEwOSw2ICsxMTksMjQgQEAgSEtSLCJQYXJhbWV0ZXJzIiwsMHgwMDAwMDAx
MAogSEtSLCJQYXJhbWV0ZXJzIiwiQUNQSVxQTlAwQTAzIiwweDAwMDAwMDAwLCJERVZJQ0UiCiBI
S1IsIlBhcmFtZXRlcnMiLCJQQ0lJREVcSURFQ2hhbm5lbCIsMHgwMDAwMDAwMCwiRElTSyIKIAor
W01vbml0b3JfU2VydmljZV0KK0Rpc3BsYXlOYW1lPSVNb25pdG9yRGVzYyUKK1NlcnZpY2VUeXBl
PSVTRVJWSUNFX1dJTjMyX09XTl9QUk9DRVNTJQorU3RhcnRUeXBlPSVTRVJWSUNFX0FVVE9fU1RB
UlQlCitFcnJvckNvbnRyb2w9JVNFUlZJQ0VfRVJST1JfTk9STUFMJQorU2VydmljZUJpbmFyeT0l
MTElXHhlbmJ1c19tb25pdG9yX0BNQUpPUl9WRVJTSU9OQF9ATUlOT1JfVkVSU0lPTkBfQE1JQ1JP
X1ZFUlNJT05AX0BCVUlMRF9OVU1CRVJALmV4ZQorQWRkUmVnID0gTW9uaXRvcl9SZXF1ZXN0CisK
K1tNb25pdG9yX1JlcXVlc3RdCitIS1IsIlJlcXVlc3QiLCwweDAwMDAwMDEwCisKK1tNb25pdG9y
X0V2ZW50TG9nXQorQWRkUmVnPU1vbml0b3JfRXZlbnRMb2dfQWRkUmVnCisKK1tNb25pdG9yX0V2
ZW50TG9nX0FkZFJlZ10KK0hLUiwsRXZlbnRNZXNzYWdlRmlsZSwweDAwMDIwMDAwLCIlJVN5c3Rl
bVJvb3QlJVxTeXN0ZW0zMlx4ZW5idXNfbW9uaXRvcl9ATUFKT1JfVkVSU0lPTkBfQE1JTk9SX1ZF
UlNJT05AX0BNSUNST19WRVJTSU9OQF9AQlVJTERfTlVNQkVSQC5kbGwiCitIS1IsLFR5cGVzU3Vw
cG9ydGVkLDB4MDAwMTAwMDEsNworCiBbWGVuQnVzX0luc3QuQ29JbnN0YWxsZXJzXQogQ29weUZp
bGVzPUNvSW5zdF9Db3B5RmlsZXMKIEFkZFJlZz1Db0luc3RfQWRkUmVnCkBAIC0xMjIsNiArMTUw
LDcgQEAgVmVuZG9yPSJAVkVORE9SX05BTUVAIgogRGlza0Rlc2M9IkBQUk9EVUNUX05BTUVAIFBW
IEJ1cyBQYWNrYWdlIiAKIFhlbkJ1c0Rlc2M9IkBQUk9EVUNUX05BTUVAIFBWIEJ1cyIKIFhlbkZp
bHREZXNjPSJAUFJPRFVDVF9OQU1FQCBHZW5lcmljIEJ1cyBGaWx0ZXIiCitNb25pdG9yRGVzYz0i
QFBST0RVQ1RfTkFNRUAgUFYgRHJpdmVyIE1vbml0b3IiCiAKIFNFUlZJQ0VfQk9PVF9TVEFSVD0w
eDAgCiBTRVJWSUNFX1NZU1RFTV9TVEFSVD0weDEgCkBAIC0xMjksOCArMTU4LDEyIEBAIFNFUlZJ
Q0VfQVVUT19TVEFSVD0weDIKIFNFUlZJQ0VfREVNQU5EX1NUQVJUPTB4MyAKIFNFUlZJQ0VfRElT
QUJMRUQ9MHg0IAogCitTRVJWSUNFX1dJTjMyX09XTl9QUk9DRVNTPTB4MTAKIFNFUlZJQ0VfS0VS
TkVMX0RSSVZFUj0weDEgCiBTRVJWSUNFX0VSUk9SX0lHTk9SRT0weDAgCiBTRVJWSUNFX0VSUk9S
X05PUk1BTD0weDEgCiBTRVJWSUNFX0VSUk9SX1NFVkVSRT0weDIgCiBTRVJWSUNFX0VSUk9SX0NS
SVRJQ0FMPTB4MyAKKworU1BTVkNJTlNUX0FTU09DU0VSVklDRT0weDAwMDAwMDAyCitTUFNWQ1NJ
TlNUX1NUQVJUU0VSVklDRT0weDAwMDAwODAwCmRpZmYgLS1naXQgYS92czIwMTIvcGFja2FnZS9w
YWNrYWdlLnZjeHByb2ogYi92czIwMTIvcGFja2FnZS9wYWNrYWdlLnZjeHByb2oKaW5kZXggZWU2
MGJkYi4uYjYwMGE5MyAxMDA2NDQKLS0tIGEvdnMyMDEyL3BhY2thZ2UvcGFja2FnZS52Y3hwcm9q
CisrKyBiL3ZzMjAxMi9wYWNrYWdlL3BhY2thZ2UudmN4cHJvagpAQCAtNDksNiArNDksOSBAQAog
ICAgIDxQcm9qZWN0UmVmZXJlbmNlIEluY2x1ZGU9Ii4uXHhlblx4ZW4udmN4cHJvaiI+CiAgICAg
ICA8UHJvamVjdD57OWM2YTVkNDgtYTMzMS00YjFmLWEwMDQtN2JiNjdiYTViZTFjfTwvUHJvamVj
dD4KICAgICA8L1Byb2plY3RSZWZlcmVuY2U+CisgICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVk
ZT0iLi5ceGVuYnVzX21vbml0b3JceGVuYnVzX21vbml0b3IudmN4cHJvaiI+CisgICAgICA8UHJv
amVjdD57MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfTwvUHJvamVjdD4KKyAg
ICA8L1Byb2plY3RSZWZlcmVuY2U+CiAgIDwvSXRlbUdyb3VwPgogICA8SXRlbUdyb3VwPgogICAg
IDxGaWxlc1RvUGFja2FnZSBJbmNsdWRlPSIkKEtJVClcUmVkaXN0XERJRnhcZHBpbnN0XEVuZ011
aVx4ODZcZHBpbnN0LmV4ZSIgQ29uZGl0aW9uPSInJChQbGF0Zm9ybSknPT0nV2luMzInIiAvPgpk
aWZmIC0tZ2l0IGEvdnMyMDEyL3hlbmJ1cy5zbG4gYi92czIwMTIveGVuYnVzLnNsbgppbmRleCA2
MjZmZDg1Li5lYjNkMDNhIDEwMDY0NAotLS0gYS92czIwMTIveGVuYnVzLnNsbgorKysgYi92czIw
MTIveGVuYnVzLnNsbgpAQCAtMSw1ICsxLDkgQEAKIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIFNv
bHV0aW9uIEZpbGUsIEZvcm1hdCBWZXJzaW9uIDEyLjAwCiAjIFZpc3VhbCBTdHVkaW8gMjAxMgor
UHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJ4ZW5i
dXNfY29pbnN0IiwgInhlbmJ1c19jb2luc3RceGVuYnVzX2NvaW5zdC52Y3hwcm9qIiwgIns0QkY0
MTM3OC1DMDFCLTQwMDItODU4MS01NjNDNUY3MDMzNjJ9IgorRW5kUHJvamVjdAorUHJvamVjdCgi
ezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJ4ZW5idXNfbW9uaXRv
ciIsICJ4ZW5idXNfbW9uaXRvclx4ZW5idXNfbW9uaXRvci52Y3hwcm9qIiwgInsyRTYxRDJDQy04
NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9IgorRW5kUHJvamVjdAogUHJvamVjdCgiezhCQzlD
RUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJ4ZW4iLCAieGVuXHhlbi52Y3hw
cm9qIiwgIns5QzZBNUQ0OC1BMzMxLTRCMUYtQTAwNC03QkI2N0JBNUJFMUN9IgogRW5kUHJvamVj
dAogUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJ4
ZW5maWx0IiwgInhlbmZpbHRceGVuZmlsdC52Y3hwcm9qIiwgIntENzQxMUIyQy0yQzQzLTQzNEQt
OUY1Ni1FMTBBM0QyRjVCQUR9IgpAQCAtNywxMSArMTEsNiBAQCBQcm9qZWN0KCJ7OEJDOUNFQjgt
OEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gInhlbmZpbHQiLCAieGVuZmlsdFx4ZW5m
aWx0LgogCQl7OUM2QTVENDgtQTMzMS00QjFGLUEwMDQtN0JCNjdCQTVCRTFDfSA9IHs5QzZBNUQ0
OC1BMzMxLTRCMUYtQTAwNC03QkI2N0JBNUJFMUN9CiAJRW5kUHJvamVjdFNlY3Rpb24KIEVuZFBy
b2plY3QKLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9Iikg
PSAieGVuYnVzX2NvaW5zdCIsICJ4ZW5idXNfY29pbnN0XHhlbmJ1c19jb2luc3QudmN4cHJvaiIs
ICJ7NEJGNDEzNzgtQzAxQi00MDAyLTg1ODEtNTYzQzVGNzAzMzYyfSIKLQlQcm9qZWN0U2VjdGlv
bihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0Ci0JCXs5QzZBNUQ0OC1BMzMxLTRC
MUYtQTAwNC03QkI2N0JBNUJFMUN9ID0gezlDNkE1RDQ4LUEzMzEtNEIxRi1BMDA0LTdCQjY3QkE1
QkUxQ30KLQlFbmRQcm9qZWN0U2VjdGlvbgotRW5kUHJvamVjdAogUHJvamVjdCgiezhCQzlDRUI4
LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJ4ZW5idXMiLCAieGVuYnVzXHhlbmJ1
cy52Y3hwcm9qIiwgInsxNEMxNkMyOS03N0M5LTQ3NUItQTYxOC0xQjAxRTY3Q0Y5ODV9IgogCVBy
b2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QKIAkJezlDNkE1
RDQ4LUEzMzEtNEIxRi1BMDA0LTdCQjY3QkE1QkUxQ30gPSB7OUM2QTVENDgtQTMzMS00QjFGLUEw
MDQtN0JCNjdCQTVCRTFDfQpAQCAtMjMsNiArMjIsNyBAQCBQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0
QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gInBhY2thZ2UiLCAicGFja2FnZVxwYWNrYWdl
LgogCQl7RDc0MTFCMkMtMkM0My00MzRELTlGNTYtRTEwQTNEMkY1QkFEfSA9IHtENzQxMUIyQy0y
QzQzLTQzNEQtOUY1Ni1FMTBBM0QyRjVCQUR9CiAJCXs5QzZBNUQ0OC1BMzMxLTRCMUYtQTAwNC03
QkI2N0JBNUJFMUN9ID0gezlDNkE1RDQ4LUEzMzEtNEIxRi1BMDA0LTdCQjY3QkE1QkUxQ30KIAkJ
ezRCRjQxMzc4LUMwMUItNDAwMi04NTgxLTU2M0M1RjcwMzM2Mn0gPSB7NEJGNDEzNzgtQzAxQi00
MDAyLTg1ODEtNTYzQzVGNzAzMzYyfQorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZE
N0JCRDNCfSA9IHsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9CiAJRW5kUHJv
amVjdFNlY3Rpb24KIEVuZFByb2plY3QKIEdsb2JhbApAQCAtNDEsNiArNDEsNTQgQEAgR2xvYmFs
CiAJCVdpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0
CiAJRW5kR2xvYmFsU2VjdGlvbgogCUdsb2JhbFNlY3Rpb24oUHJvamVjdENvbmZpZ3VyYXRpb25Q
bGF0Zm9ybXMpID0gcG9zdFNvbHV0aW9uCisJCXs0QkY0MTM3OC1DMDFCLTQwMDItODU4MS01NjND
NUY3MDMzNjJ9LldpbmRvd3MgNyBEZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIDcgRGVi
dWd8V2luMzIKKwkJezRCRjQxMzc4LUMwMUItNDAwMi04NTgxLTU2M0M1RjcwMzM2Mn0uV2luZG93
cyA3IERlYnVnfFdpbjMyLkJ1aWxkLjAgPSBXaW5kb3dzIDcgRGVidWd8V2luMzIKKwkJezRCRjQx
Mzc4LUMwMUItNDAwMi04NTgxLTU2M0M1RjcwMzM2Mn0uV2luZG93cyA3IERlYnVnfHg2NC5BY3Rp
dmVDZmcgPSBXaW5kb3dzIDcgRGVidWd8eDY0CisJCXs0QkY0MTM3OC1DMDFCLTQwMDItODU4MS01
NjNDNUY3MDMzNjJ9LldpbmRvd3MgNyBEZWJ1Z3x4NjQuQnVpbGQuMCA9IFdpbmRvd3MgNyBEZWJ1
Z3x4NjQKKwkJezRCRjQxMzc4LUMwMUItNDAwMi04NTgxLTU2M0M1RjcwMzM2Mn0uV2luZG93cyA3
IFJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gV2luZG93cyA3IFJlbGVhc2V8V2luMzIKKwkJezRC
RjQxMzc4LUMwMUItNDAwMi04NTgxLTU2M0M1RjcwMzM2Mn0uV2luZG93cyA3IFJlbGVhc2V8V2lu
MzIuQnVpbGQuMCA9IFdpbmRvd3MgNyBSZWxlYXNlfFdpbjMyCisJCXs0QkY0MTM3OC1DMDFCLTQw
MDItODU4MS01NjNDNUY3MDMzNjJ9LldpbmRvd3MgNyBSZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBX
aW5kb3dzIDcgUmVsZWFzZXx4NjQKKwkJezRCRjQxMzc4LUMwMUItNDAwMi04NTgxLTU2M0M1Rjcw
MzM2Mn0uV2luZG93cyA3IFJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBXaW5kb3dzIDcgUmVsZWFzZXx4
NjQKKwkJezRCRjQxMzc4LUMwMUItNDAwMi04NTgxLTU2M0M1RjcwMzM2Mn0uV2luZG93cyA4IERl
YnVnfFdpbjMyLkFjdGl2ZUNmZyA9IFdpbmRvd3MgOCBEZWJ1Z3xXaW4zMgorCQl7NEJGNDEzNzgt
QzAxQi00MDAyLTg1ODEtNTYzQzVGNzAzMzYyfS5XaW5kb3dzIDggRGVidWd8V2luMzIuQnVpbGQu
MCA9IFdpbmRvd3MgOCBEZWJ1Z3xXaW4zMgorCQl7NEJGNDEzNzgtQzAxQi00MDAyLTg1ODEtNTYz
QzVGNzAzMzYyfS5XaW5kb3dzIDggRGVidWd8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgOCBEZWJ1
Z3x4NjQKKwkJezRCRjQxMzc4LUMwMUItNDAwMi04NTgxLTU2M0M1RjcwMzM2Mn0uV2luZG93cyA4
IERlYnVnfHg2NC5CdWlsZC4wID0gV2luZG93cyA4IERlYnVnfHg2NAorCQl7NEJGNDEzNzgtQzAx
Qi00MDAyLTg1ODEtNTYzQzVGNzAzMzYyfS5XaW5kb3dzIDggUmVsZWFzZXxXaW4zMi5BY3RpdmVD
ZmcgPSBXaW5kb3dzIDggUmVsZWFzZXxXaW4zMgorCQl7NEJGNDEzNzgtQzAxQi00MDAyLTg1ODEt
NTYzQzVGNzAzMzYyfS5XaW5kb3dzIDggUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gV2luZG93cyA4
IFJlbGVhc2V8V2luMzIKKwkJezRCRjQxMzc4LUMwMUItNDAwMi04NTgxLTU2M0M1RjcwMzM2Mn0u
V2luZG93cyA4IFJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgOCBSZWxlYXNlfHg2NAor
CQl7NEJGNDEzNzgtQzAxQi00MDAyLTg1ODEtNTYzQzVGNzAzMzYyfS5XaW5kb3dzIDggUmVsZWFz
ZXx4NjQuQnVpbGQuMCA9IFdpbmRvd3MgOCBSZWxlYXNlfHg2NAorCQl7NEJGNDEzNzgtQzAxQi00
MDAyLTg1ODEtNTYzQzVGNzAzMzYyfS5XaW5kb3dzIFZpc3RhIERlYnVnfFdpbjMyLkFjdGl2ZUNm
ZyA9IFdpbmRvd3MgVmlzdGEgRGVidWd8V2luMzIKKwkJezRCRjQxMzc4LUMwMUItNDAwMi04NTgx
LTU2M0M1RjcwMzM2Mn0uV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMi5CdWlsZC4wID0gV2luZG93
cyBWaXN0YSBEZWJ1Z3xXaW4zMgorCQl7NEJGNDEzNzgtQzAxQi00MDAyLTg1ODEtNTYzQzVGNzAz
MzYyfS5XaW5kb3dzIFZpc3RhIERlYnVnfHg2NC5BY3RpdmVDZmcgPSBXaW5kb3dzIFZpc3RhIERl
YnVnfHg2NAorCQl7NEJGNDEzNzgtQzAxQi00MDAyLTg1ODEtNTYzQzVGNzAzMzYyfS5XaW5kb3dz
IFZpc3RhIERlYnVnfHg2NC5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBEZWJ1Z3x4NjQKKwkJezRC
RjQxMzc4LUMwMUItNDAwMi04NTgxLTU2M0M1RjcwMzM2Mn0uV2luZG93cyBWaXN0YSBSZWxlYXNl
fFdpbjMyLkFjdGl2ZUNmZyA9IFdpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMgorCQl7NEJGNDEz
NzgtQzAxQi00MDAyLTg1ODEtNTYzQzVGNzAzMzYyfS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2lu
MzIuQnVpbGQuMCA9IFdpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMgorCQl7NEJGNDEzNzgtQzAx
Qi00MDAyLTg1ODEtNTYzQzVGNzAzMzYyfS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0LkFjdGl2
ZUNmZyA9IFdpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQKKwkJezRCRjQxMzc4LUMwMUItNDAwMi04
NTgxLTU2M0M1RjcwMzM2Mn0uV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NC5CdWlsZC4wID0gV2lu
ZG93cyBWaXN0YSBSZWxlYXNlfHg2NAorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZE
N0JCRDNCfS5XaW5kb3dzIDcgRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gV2luZG93cyA3IERlYnVn
fFdpbjMyCisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3Mg
NyBEZWJ1Z3xXaW4zMi5CdWlsZC4wID0gV2luZG93cyA3IERlYnVnfFdpbjMyCisJCXsyRTYxRDJD
Qy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgNyBEZWJ1Z3x4NjQuQWN0aXZl
Q2ZnID0gV2luZG93cyA3IERlYnVnfHg2NAorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhE
QUZEN0JCRDNCfS5XaW5kb3dzIDcgRGVidWd8eDY0LkJ1aWxkLjAgPSBXaW5kb3dzIDcgRGVidWd8
eDY0CisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgNyBS
ZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFdpbmRvd3MgNyBSZWxlYXNlfFdpbjMyCisJCXsyRTYx
RDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgNyBSZWxlYXNlfFdpbjMy
LkJ1aWxkLjAgPSBXaW5kb3dzIDcgUmVsZWFzZXxXaW4zMgorCQl7MkU2MUQyQ0MtODY1RS00NDJD
LThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIDcgUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gV2lu
ZG93cyA3IFJlbGVhc2V8eDY0CisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJE
M0J9LldpbmRvd3MgNyBSZWxlYXNlfHg2NC5CdWlsZC4wID0gV2luZG93cyA3IFJlbGVhc2V8eDY0
CisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgOCBEZWJ1
Z3xXaW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIDggRGVidWd8V2luMzIKKwkJezJFNjFEMkNDLTg2
NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyA4IERlYnVnfFdpbjMyLkJ1aWxkLjAg
PSBXaW5kb3dzIDggRGVidWd8V2luMzIKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFG
RDdCQkQzQn0uV2luZG93cyA4IERlYnVnfHg2NC5BY3RpdmVDZmcgPSBXaW5kb3dzIDggRGVidWd8
eDY0CisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgOCBE
ZWJ1Z3x4NjQuQnVpbGQuMCA9IFdpbmRvd3MgOCBEZWJ1Z3x4NjQKKwkJezJFNjFEMkNDLTg2NUUt
NDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyA4IFJlbGVhc2V8V2luMzIuQWN0aXZlQ2Zn
ID0gV2luZG93cyA4IFJlbGVhc2V8V2luMzIKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4
REFGRDdCQkQzQn0uV2luZG93cyA4IFJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFdpbmRvd3MgOCBS
ZWxlYXNlfFdpbjMyCisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9Lldp
bmRvd3MgOCBSZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBXaW5kb3dzIDggUmVsZWFzZXx4NjQKKwkJ
ezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyA4IFJlbGVhc2V8
eDY0LkJ1aWxkLjAgPSBXaW5kb3dzIDggUmVsZWFzZXx4NjQKKwkJezJFNjFEMkNDLTg2NUUtNDQy
Qy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMi5BY3RpdmVDZmcg
PSBXaW5kb3dzIFZpc3RhIERlYnVnfFdpbjMyCisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1C
OERBRkQ3QkJEM0J9LldpbmRvd3MgVmlzdGEgRGVidWd8V2luMzIuQnVpbGQuMCA9IFdpbmRvd3Mg
VmlzdGEgRGVidWd8V2luMzIKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQz
Qn0uV2luZG93cyBWaXN0YSBEZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gV2luZG93cyBWaXN0YSBEZWJ1
Z3x4NjQKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBW
aXN0YSBEZWJ1Z3x4NjQuQnVpbGQuMCA9IFdpbmRvd3MgVmlzdGEgRGVidWd8eDY0CisJCXsyRTYx
RDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXxX
aW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzIKKwkJezJFNjFEMkND
LTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMy
LkJ1aWxkLjAgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzIKKwkJezJFNjFEMkNDLTg2NUUt
NDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NC5BY3RpdmVD
ZmcgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0CisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4
My1COERBRkQ3QkJEM0J9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFdpbmRv
d3MgVmlzdGEgUmVsZWFzZXx4NjQKIAkJezlDNkE1RDQ4LUEzMzEtNEIxRi1BMDA0LTdCQjY3QkE1
QkUxQ30uV2luZG93cyA3IERlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IFdpbmRvd3MgNyBEZWJ1Z3xX
aW4zMgogCQl7OUM2QTVENDgtQTMzMS00QjFGLUEwMDQtN0JCNjdCQTVCRTFDfS5XaW5kb3dzIDcg
RGVidWd8V2luMzIuQnVpbGQuMCA9IFdpbmRvd3MgNyBEZWJ1Z3xXaW4zMgogCQl7OUM2QTVENDgt
QTMzMS00QjFGLUEwMDQtN0JCNjdCQTVCRTFDfS5XaW5kb3dzIDcgRGVidWd8eDY0LkFjdGl2ZUNm
ZyA9IFdpbmRvd3MgNyBEZWJ1Z3x4NjQKQEAgLTg5LDMwICsxMzcsNiBAQCBHbG9iYWwKIAkJe0Q3
NDExQjJDLTJDNDMtNDM0RC05RjU2LUUxMEEzRDJGNUJBRH0uV2luZG93cyBWaXN0YSBSZWxlYXNl
fFdpbjMyLkJ1aWxkLjAgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzIKIAkJe0Q3NDExQjJD
LTJDNDMtNDM0RC05RjU2LUUxMEEzRDJGNUJBRH0uV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NC5B
Y3RpdmVDZmcgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0CiAJCXtENzQxMUIyQy0yQzQzLTQz
NEQtOUY1Ni1FMTBBM0QyRjVCQUR9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQuQnVpbGQuMCA9
IFdpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQKLQkJezRCRjQxMzc4LUMwMUItNDAwMi04NTgxLTU2
M0M1RjcwMzM2Mn0uV2luZG93cyA3IERlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IFdpbmRvd3MgNyBE
ZWJ1Z3xXaW4zMgotCQl7NEJGNDEzNzgtQzAxQi00MDAyLTg1ODEtNTYzQzVGNzAzMzYyfS5XaW5k
b3dzIDcgRGVidWd8V2luMzIuQnVpbGQuMCA9IFdpbmRvd3MgNyBEZWJ1Z3xXaW4zMgotCQl7NEJG
NDEzNzgtQzAxQi00MDAyLTg1ODEtNTYzQzVGNzAzMzYyfS5XaW5kb3dzIDcgRGVidWd8eDY0LkFj
dGl2ZUNmZyA9IFdpbmRvd3MgNyBEZWJ1Z3x4NjQKLQkJezRCRjQxMzc4LUMwMUItNDAwMi04NTgx
LTU2M0M1RjcwMzM2Mn0uV2luZG93cyA3IERlYnVnfHg2NC5CdWlsZC4wID0gV2luZG93cyA3IERl
YnVnfHg2NAotCQl7NEJGNDEzNzgtQzAxQi00MDAyLTg1ODEtNTYzQzVGNzAzMzYyfS5XaW5kb3dz
IDcgUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIDcgUmVsZWFzZXxXaW4zMgotCQl7
NEJGNDEzNzgtQzAxQi00MDAyLTg1ODEtNTYzQzVGNzAzMzYyfS5XaW5kb3dzIDcgUmVsZWFzZXxX
aW4zMi5CdWlsZC4wID0gV2luZG93cyA3IFJlbGVhc2V8V2luMzIKLQkJezRCRjQxMzc4LUMwMUIt
NDAwMi04NTgxLTU2M0M1RjcwMzM2Mn0uV2luZG93cyA3IFJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9
IFdpbmRvd3MgNyBSZWxlYXNlfHg2NAotCQl7NEJGNDEzNzgtQzAxQi00MDAyLTg1ODEtNTYzQzVG
NzAzMzYyfS5XaW5kb3dzIDcgUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFdpbmRvd3MgNyBSZWxlYXNl
fHg2NAotCQl7NEJGNDEzNzgtQzAxQi00MDAyLTg1ODEtNTYzQzVGNzAzMzYyfS5XaW5kb3dzIDgg
RGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gV2luZG93cyA4IERlYnVnfFdpbjMyCi0JCXs0QkY0MTM3
OC1DMDFCLTQwMDItODU4MS01NjNDNUY3MDMzNjJ9LldpbmRvd3MgOCBEZWJ1Z3xXaW4zMi5CdWls
ZC4wID0gV2luZG93cyA4IERlYnVnfFdpbjMyCi0JCXs0QkY0MTM3OC1DMDFCLTQwMDItODU4MS01
NjNDNUY3MDMzNjJ9LldpbmRvd3MgOCBEZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gV2luZG93cyA4IERl
YnVnfHg2NAotCQl7NEJGNDEzNzgtQzAxQi00MDAyLTg1ODEtNTYzQzVGNzAzMzYyfS5XaW5kb3dz
IDggRGVidWd8eDY0LkJ1aWxkLjAgPSBXaW5kb3dzIDggRGVidWd8eDY0Ci0JCXs0QkY0MTM3OC1D
MDFCLTQwMDItODU4MS01NjNDNUY3MDMzNjJ9LldpbmRvd3MgOCBSZWxlYXNlfFdpbjMyLkFjdGl2
ZUNmZyA9IFdpbmRvd3MgOCBSZWxlYXNlfFdpbjMyCi0JCXs0QkY0MTM3OC1DMDFCLTQwMDItODU4
MS01NjNDNUY3MDMzNjJ9LldpbmRvd3MgOCBSZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBXaW5kb3dz
IDggUmVsZWFzZXxXaW4zMgotCQl7NEJGNDEzNzgtQzAxQi00MDAyLTg1ODEtNTYzQzVGNzAzMzYy
fS5XaW5kb3dzIDggUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gV2luZG93cyA4IFJlbGVhc2V8eDY0
Ci0JCXs0QkY0MTM3OC1DMDFCLTQwMDItODU4MS01NjNDNUY3MDMzNjJ9LldpbmRvd3MgOCBSZWxl
YXNlfHg2NC5CdWlsZC4wID0gV2luZG93cyA4IFJlbGVhc2V8eDY0Ci0JCXs0QkY0MTM3OC1DMDFC
LTQwMDItODU4MS01NjNDNUY3MDMzNjJ9LldpbmRvd3MgVmlzdGEgRGVidWd8V2luMzIuQWN0aXZl
Q2ZnID0gV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMgotCQl7NEJGNDEzNzgtQzAxQi00MDAyLTg1
ODEtNTYzQzVGNzAzMzYyfS5XaW5kb3dzIFZpc3RhIERlYnVnfFdpbjMyLkJ1aWxkLjAgPSBXaW5k
b3dzIFZpc3RhIERlYnVnfFdpbjMyCi0JCXs0QkY0MTM3OC1DMDFCLTQwMDItODU4MS01NjNDNUY3
MDMzNjJ9LldpbmRvd3MgVmlzdGEgRGVidWd8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgVmlzdGEg
RGVidWd8eDY0Ci0JCXs0QkY0MTM3OC1DMDFCLTQwMDItODU4MS01NjNDNUY3MDMzNjJ9LldpbmRv
d3MgVmlzdGEgRGVidWd8eDY0LkJ1aWxkLjAgPSBXaW5kb3dzIFZpc3RhIERlYnVnfHg2NAotCQl7
NEJGNDEzNzgtQzAxQi00MDAyLTg1ODEtNTYzQzVGNzAzMzYyfS5XaW5kb3dzIFZpc3RhIFJlbGVh
c2V8V2luMzIuQWN0aXZlQ2ZnID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyCi0JCXs0QkY0
MTM3OC1DMDFCLTQwMDItODU4MS01NjNDNUY3MDMzNjJ9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXxX
aW4zMi5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyCi0JCXs0QkY0MTM3OC1D
MDFCLTQwMDItODU4MS01NjNDNUY3MDMzNjJ9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQuQWN0
aXZlQ2ZnID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NAotCQl7NEJGNDEzNzgtQzAxQi00MDAy
LTg1ODEtNTYzQzVGNzAzMzYyfS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBX
aW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0CiAJCXsxNEMxNkMyOS03N0M5LTQ3NUItQTYxOC0xQjAx
RTY3Q0Y5ODV9LldpbmRvd3MgNyBEZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIDcgRGVi
dWd8V2luMzIKIAkJezE0QzE2QzI5LTc3QzktNDc1Qi1BNjE4LTFCMDFFNjdDRjk4NX0uV2luZG93
cyA3IERlYnVnfFdpbjMyLkJ1aWxkLjAgPSBXaW5kb3dzIDcgRGVidWd8V2luMzIKIAkJezE0QzE2
QzI5LTc3QzktNDc1Qi1BNjE4LTFCMDFFNjdDRjk4NX0uV2luZG93cyA3IERlYnVnfHg2NC5BY3Rp
dmVDZmcgPSBXaW5kb3dzIDcgRGVidWd8eDY0CmRpZmYgLS1naXQgYS92czIwMTIveGVuYnVzX21v
bml0b3IveGVuYnVzX21vbml0b3IudmN4cHJvaiBiL3ZzMjAxMi94ZW5idXNfbW9uaXRvci94ZW5i
dXNfbW9uaXRvci52Y3hwcm9qCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJk
OGY4MDEKLS0tIC9kZXYvbnVsbAorKysgYi92czIwMTIveGVuYnVzX21vbml0b3IveGVuYnVzX21v
bml0b3IudmN4cHJvagpAQCAtMCwwICsxLDgyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29k
aW5nPSJ1dGYtOCI/PgorPFByb2plY3QgRGVmYXVsdFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNp
b249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21z
YnVpbGQvMjAwMyI+CisgIDxJbXBvcnQgUHJvamVjdD0iLi5cY29uZmlncy5wcm9wcyIgLz4KKyAg
PFByb3BlcnR5R3JvdXAgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8Q2hhcmFjdGVyU2V0
Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgorICAgIDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0Fw
cGxpY2F0aW9uRm9yRHJpdmVyczguMDwvUGxhdGZvcm1Ub29sc2V0PgorICAgIDxDb25maWd1cmF0
aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+CisgIDwvUHJvcGVydHlHcm91
cD4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPgorICAgIDxDb25maWd1cmF0aW9u
PldpbmRvd3MgVmlzdGEgRGVidWc8L0NvbmZpZ3VyYXRpb24+CisgICAgPFBsYXRmb3JtIENvbmRp
dGlvbj0iJyQoUGxhdGZvcm0pJyA9PSAnJyI+V2luMzI8L1BsYXRmb3JtPgorICAgIDxEZWJ1Z2dl
ckZsYXZvcj5EYmdlbmdLZXJuZWxEZWJ1Z2dlcjwvRGVidWdnZXJGbGF2b3I+CisgIDwvUHJvcGVy
dHlHcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5D
cHAuRGVmYXVsdC5wcm9wcyIgLz4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPgor
ICAgIDxQcm9qZWN0R3VpZD57MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfTwv
UHJvamVjdEd1aWQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIuLlx0
YXJnZXRzLnByb3BzIiAvPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWlj
cm9zb2Z0LkNwcC5wcm9wcyIgLz4KKyAgPFByb3BlcnR5R3JvdXA+CisgICAgPEluY2x1ZGVQYXRo
PiQoSW5jbHVkZVBhdGgpPC9JbmNsdWRlUGF0aD4KKyAgICA8UnVuQ29kZUFuYWx5c2lzPnRydWU8
L1J1bkNvZGVBbmFseXNpcz4KKyAgICA8RW5hYmxlSW5mMmNhdD5mYWxzZTwvRW5hYmxlSW5mMmNh
dD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cD4KKyAgICA8Q3VzdG9tQnVp
bGRBZnRlclRhcmdldHM+TGluazwvQ3VzdG9tQnVpbGRBZnRlclRhcmdldHM+CisgIDwvUHJvcGVy
dHlHcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXA+CisgICAgPENsQ29tcGlsZT4KKyAgICAg
IDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPiQoU29sdXRpb25EaXIpLi5caW5jbHVkZTsl
KEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9y
aWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19XSU5ET1dTO19DUlRf
U0VDVVJFX05PX1dBUk5JTkdTO19fTU9EVUxFX189IlhFTkJVU19NT05JVE9SIjslKFByZXByb2Nl
c3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8V2Fybmlu
Z0xldmVsPkVuYWJsZUFsbFdhcm5pbmdzPC9XYXJuaW5nTGV2ZWw+CisgICAgICA8RGlzYWJsZVNw
ZWNpZmljV2FybmluZ3M+NDEyNzs0NzExOzQ1NDg7NDgyMDs0NjY4OzQyNTU7NjAwMTs2MDU0OzI4
MTk2OyUoRGlzYWJsZVNwZWNpZmljV2FybmluZ3MpPC9EaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz4K
KyAgICAgIDxNdWx0aVByb2Nlc3NvckNvbXBpbGF0aW9uPnRydWU8L011bHRpUHJvY2Vzc29yQ29t
cGlsYXRpb24+CisgICAgICA8RW5hYmxlUFJFZmFzdD50cnVlPC9FbmFibGVQUkVmYXN0PgorICAg
ICAgPFJ1bnRpbWVMaWJyYXJ5IENvbmRpdGlvbj0iJyQoVXNlRGVidWdMaWJyYXJpZXMpJz09J3Ry
dWUnIj5NdWx0aVRocmVhZGVkRGVidWc8L1J1bnRpbWVMaWJyYXJ5PgorICAgICAgPFJ1bnRpbWVM
aWJyYXJ5IENvbmRpdGlvbj0iJyQoVXNlRGVidWdMaWJyYXJpZXMpJz09J2ZhbHNlJyI+TXVsdGlU
aHJlYWRlZDwvUnVudGltZUxpYnJhcnk+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+Cisg
ICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz53dHNhcGkzMi5saWI7JShBZGRpdGlvbmFsRGVw
ZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAgICA8L0xpbms+CisgICAgPFJl
c291cmNlQ29tcGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPiQoU29s
dXRpb25EaXIpLi5caW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRp
dGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgIDwvUmVzb3VyY2VDb21waWxlPgorICA8L0l0
ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQo
UGxhdGZvcm0pJz09J1dpbjMyJyI+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxQcmVwcm9jZXNz
b3JEZWZpbml0aW9ucz5fX2kzODZfXzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJv
Y2Vzc29yRGVmaW5pdGlvbnM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPEN1c3RvbUJ1aWxkU3Rl
cD4KKyAgICAgIDxPdXRwdXRzPiQoVGFyZ2V0RGlyKSQoVGFyZ2V0TmFtZSkuZGxsPC9PdXRwdXRz
PgorICAgICAgPElucHV0cz4kKEludERpcikkKFRhcmdldE5hbWUpLnJlczwvSW5wdXRzPgorICAg
ICAgPENvbW1hbmQ+bGluayAtbWFjaGluZTp4ODYgLWRsbCAtbm9lbnRyeSAtb3V0OiUoT3V0cHV0
cykgJShJbnB1dHMpPC9Db21tYW5kPgorICAgIDwvQ3VzdG9tQnVpbGRTdGVwPgorICA8L0l0ZW1E
ZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoUGxh
dGZvcm0pJz09J3g2NCciPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8UHJlcHJvY2Vzc29yRGVm
aW5pdGlvbnM+X194ODZfNjRfXzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vz
c29yRGVmaW5pdGlvbnM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPEN1c3RvbUJ1aWxkU3RlcD4K
KyAgICAgIDxPdXRwdXRzPiQoVGFyZ2V0RGlyKSQoVGFyZ2V0TmFtZSkuZGxsPC9PdXRwdXRzPgor
ICAgICAgPElucHV0cz4kKEludERpcikkKFRhcmdldE5hbWUpLnJlczwvSW5wdXRzPgorICAgICAg
PENvbW1hbmQ+bGluayAtbWFjaGluZTp4NjQgLWRsbCAtbm9lbnRyeSAtb3V0OiUoT3V0cHV0cykg
JShJbnB1dHMpPC9Db21tYW5kPgorICAgIDwvQ3VzdG9tQnVpbGRTdGVwPgorICA8L0l0ZW1EZWZp
bml0aW9uR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPEZpbGVzVG9QYWNrYWdlIEluY2x1ZGU9
IiQoVGFyZ2V0UGF0aCkiIC8+CisgICAgPEZpbGVzVG9QYWNrYWdlIEluY2x1ZGU9IiQoT3V0RGly
KSQoVGFyZ2V0TmFtZSkucGRiIiAvPgorICAgIDxGaWxlc1RvUGFja2FnZSBJbmNsdWRlPSIkKE91
dERpcikkKFRhcmdldE5hbWUpLmRsbCIgLz4KKyAgICA8RmlsZXNUb1BhY2thZ2UgSW5jbHVkZT0i
QChJbmYtPiclKENvcHlPdXRwdXQpJykiIENvbmRpdGlvbj0iJ0AoSW5mKSchPScnIiAvPgorICA8
L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8TWVzc2FnZUNvbXBpbGUgSW5jbHVkZT0i
Li5cLi5cc3JjXG1vbml0b3JcbWVzc2FnZXMubWMiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRl
bUdyb3VwPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXG1vbml0b3JcbW9uaXRv
ci5jIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8UmVzb3VyY2VDb21w
aWxlIEluY2x1ZGU9Ii4uXC4uXHNyY1xtb25pdG9yXHhlbmJ1c19tb25pdG9yLnJjIiAvPgorICA8
L0l0ZW1Hcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29m
dC5DcHAudGFyZ2V0cyIgLz4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS92czIwMTIveGVuYnVzX21vbml0b3IveGVuYnVzX21vbml0b3IudmN4cHJv
ai51c2VyIGIvdnMyMDEyL3hlbmJ1c19tb25pdG9yL3hlbmJ1c19tb25pdG9yLnZjeHByb2oudXNl
cgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OGVjY2U4Ci0tLSAvZGV2L251
bGwKKysrIGIvdnMyMDEyL3hlbmJ1c19tb25pdG9yL3hlbmJ1c19tb25pdG9yLnZjeHByb2oudXNl
cgpAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+
Cis8UHJvamVjdCBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jv
c29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+CisgIDxQcm9wZXJ0eUdyb3VwPgorICAg
IDxTaWduTW9kZT5UZXN0U2lnbjwvU2lnbk1vZGU+CisgICAgPFRlc3RDZXJ0aWZpY2F0ZT4uLlwu
LlxzcmNceGVuYnVzLnBmeDwvVGVzdENlcnRpZmljYXRlPgorICAgIDxUaW1lU3RhbXBTZXJ2ZXI+
aHR0cDovL3RpbWVzdGFtcC52ZXJpc2lnbi5jb20vc2NyaXB0cy90aW1zdGFtcC5kbGw8L1RpbWVT
dGFtcFNlcnZlcj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorPC9Qcm9qZWN0PgpkaWZmIC0tZ2l0IGEv
dnMyMDEzL3BhY2thZ2UvcGFja2FnZS52Y3hwcm9qIGIvdnMyMDEzL3BhY2thZ2UvcGFja2FnZS52
Y3hwcm9qCmluZGV4IGFlMWMyMzAuLmMzYTZjY2UgMTAwNjQ0Ci0tLSBhL3ZzMjAxMy9wYWNrYWdl
L3BhY2thZ2UudmN4cHJvagorKysgYi92czIwMTMvcGFja2FnZS9wYWNrYWdlLnZjeHByb2oKQEAg
LTUwLDYgKzUwLDkgQEAKICAgICA8UHJvamVjdFJlZmVyZW5jZSBJbmNsdWRlPSIuLlx4ZW5ceGVu
LnZjeHByb2oiPgogICAgICAgPFByb2plY3Q+ezljNmE1ZDQ4LWEzMzEtNGIxZi1hMDA0LTdiYjY3
YmE1YmUxY308L1Byb2plY3Q+CiAgICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgorICAgIDxQcm9qZWN0
UmVmZXJlbmNlIEluY2x1ZGU9Ii4uXHhlbmJ1c19tb25pdG9yXHhlbmJ1c19tb25pdG9yLnZjeHBy
b2oiPgorICAgICAgPFByb2plY3Q+ezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQz
Qn08L1Byb2plY3Q+CisgICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgogICA8L0l0ZW1Hcm91cD4KICAg
PEl0ZW1Hcm91cD4KICAgICA8RmlsZXNUb1BhY2thZ2UgSW5jbHVkZT0iJChLSVQpXFJlZGlzdFxE
SUZ4XGRwaW5zdFxFbmdNdWlceDg2XGRwaW5zdC5leGUiIENvbmRpdGlvbj0iJyQoUGxhdGZvcm0p
Jz09J1dpbjMyJyIgLz4KZGlmZiAtLWdpdCBhL3ZzMjAxMy94ZW5idXMuc2xuIGIvdnMyMDEzL3hl
bmJ1cy5zbG4KaW5kZXggMDBjMjFmOS4uMDEwNDJjNiAxMDA2NDQKLS0tIGEvdnMyMDEzL3hlbmJ1
cy5zbG4KKysrIGIvdnMyMDEzL3hlbmJ1cy5zbG4KQEAgLTEsNSArMSwxMSBAQAogTWljcm9zb2Z0
IFZpc3VhbCBTdHVkaW8gU29sdXRpb24gRmlsZSwgRm9ybWF0IFZlcnNpb24gMTIuMDAKLSMgVmlz
dWFsIFN0dWRpbyAxMQorIyBWaXN1YWwgU3R1ZGlvIEV4cHJlc3MgMjAxMyBmb3IgV2luZG93cyBE
ZXNrdG9wCitWaXN1YWxTdHVkaW9WZXJzaW9uID0gMTIuMC4zMDcyMy4wCitNaW5pbXVtVmlzdWFs
U3R1ZGlvVmVyc2lvbiA9IDEwLjAuNDAyMTkuMQorUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFE
MC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJ4ZW5idXNfY29pbnN0IiwgInhlbmJ1c19jb2luc3Rc
eGVuYnVzX2NvaW5zdC52Y3hwcm9qIiwgIns0QkY0MTM3OC1DMDFCLTQwMDItODU4MS01NjNDNUY3
MDMzNjJ9IgorRW5kUHJvamVjdAorUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAw
QTBDOTFCQzk0Mn0iKSA9ICJ4ZW5idXNfbW9uaXRvciIsICJ4ZW5idXNfbW9uaXRvclx4ZW5idXNf
bW9uaXRvci52Y3hwcm9qIiwgInsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9
IgorRW5kUHJvamVjdAogUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFC
Qzk0Mn0iKSA9ICJ4ZW4iLCAieGVuXHhlbi52Y3hwcm9qIiwgIns5QzZBNUQ0OC1BMzMxLTRCMUYt
QTAwNC03QkI2N0JBNUJFMUN9IgogRW5kUHJvamVjdAogUHJvamVjdCgiezhCQzlDRUI4LThCNEEt
MTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJ4ZW5maWx0IiwgInhlbmZpbHRceGVuZmlsdC52
Y3hwcm9qIiwgIntENzQxMUIyQy0yQzQzLTQzNEQtOUY1Ni1FMTBBM0QyRjVCQUR9IgpAQCAtNywx
MSArMTMsNiBAQCBQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQy
fSIpID0gInhlbmZpbHQiLCAieGVuZmlsdFx4ZW5maWx0LgogCQl7OUM2QTVENDgtQTMzMS00QjFG
LUEwMDQtN0JCNjdCQTVCRTFDfSA9IHs5QzZBNUQ0OC1BMzMxLTRCMUYtQTAwNC03QkI2N0JBNUJF
MUN9CiAJRW5kUHJvamVjdFNlY3Rpb24KIEVuZFByb2plY3QKLVByb2plY3QoIns4QkM5Q0VCOC04
QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAieGVuYnVzX2NvaW5zdCIsICJ4ZW5idXNf
Y29pbnN0XHhlbmJ1c19jb2luc3QudmN4cHJvaiIsICJ7NEJGNDEzNzgtQzAxQi00MDAyLTg1ODEt
NTYzQzVGNzAzMzYyfSIKLQlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBv
c3RQcm9qZWN0Ci0JCXs5QzZBNUQ0OC1BMzMxLTRCMUYtQTAwNC03QkI2N0JBNUJFMUN9ID0gezlD
NkE1RDQ4LUEzMzEtNEIxRi1BMDA0LTdCQjY3QkE1QkUxQ30KLQlFbmRQcm9qZWN0U2VjdGlvbgot
RW5kUHJvamVjdAogUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0
Mn0iKSA9ICJ4ZW5idXMiLCAieGVuYnVzXHhlbmJ1cy52Y3hwcm9qIiwgInsxNEMxNkMyOS03N0M5
LTQ3NUItQTYxOC0xQjAxRTY3Q0Y5ODV9IgogCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRl
bmNpZXMpID0gcG9zdFByb2plY3QKIAkJezlDNkE1RDQ4LUEzMzEtNEIxRi1BMDA0LTdCQjY3QkE1
QkUxQ30gPSB7OUM2QTVENDgtQTMzMS00QjFGLUEwMDQtN0JCNjdCQTVCRTFDfQpAQCAtMjMsNiAr
MjQsNyBAQCBQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIp
ID0gInBhY2thZ2UiLCAicGFja2FnZVxwYWNrYWdlLgogCQl7NEJGNDEzNzgtQzAxQi00MDAyLTg1
ODEtNTYzQzVGNzAzMzYyfSA9IHs0QkY0MTM3OC1DMDFCLTQwMDItODU4MS01NjNDNUY3MDMzNjJ9
CiAJCXs5QzZBNUQ0OC1BMzMxLTRCMUYtQTAwNC03QkI2N0JBNUJFMUN9ID0gezlDNkE1RDQ4LUEz
MzEtNEIxRi1BMDA0LTdCQjY3QkE1QkUxQ30KIAkJe0Q3NDExQjJDLTJDNDMtNDM0RC05RjU2LUUx
MEEzRDJGNUJBRH0gPSB7RDc0MTFCMkMtMkM0My00MzRELTlGNTYtRTEwQTNEMkY1QkFEfQorCQl7
MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfSA9IHsyRTYxRDJDQy04NjVFLTQ0
MkMtOEM4My1COERBRkQ3QkJEM0J9CiAJRW5kUHJvamVjdFNlY3Rpb24KIEVuZFByb2plY3QKIEds
b2JhbApAQCAtNDEsMzAgKzQzLDYgQEAgR2xvYmFsCiAJCVdpbmRvd3MgVmlzdGEgUmVsZWFzZXx4
NjQgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0CiAJRW5kR2xvYmFsU2VjdGlvbgogCUdsb2Jh
bFNlY3Rpb24oUHJvamVjdENvbmZpZ3VyYXRpb25QbGF0Zm9ybXMpID0gcG9zdFNvbHV0aW9uCi0J
CXsxNEMxNkMyOS03N0M5LTQ3NUItQTYxOC0xQjAxRTY3Q0Y5ODV9LldpbmRvd3MgNyBEZWJ1Z3xX
aW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIDcgRGVidWd8V2luMzIKLQkJezE0QzE2QzI5LTc3Qzkt
NDc1Qi1BNjE4LTFCMDFFNjdDRjk4NX0uV2luZG93cyA3IERlYnVnfFdpbjMyLkJ1aWxkLjAgPSBX
aW5kb3dzIDcgRGVidWd8V2luMzIKLQkJezE0QzE2QzI5LTc3QzktNDc1Qi1BNjE4LTFCMDFFNjdD
Rjk4NX0uV2luZG93cyA3IERlYnVnfHg2NC5BY3RpdmVDZmcgPSBXaW5kb3dzIDcgRGVidWd8eDY0
Ci0JCXsxNEMxNkMyOS03N0M5LTQ3NUItQTYxOC0xQjAxRTY3Q0Y5ODV9LldpbmRvd3MgNyBEZWJ1
Z3x4NjQuQnVpbGQuMCA9IFdpbmRvd3MgNyBEZWJ1Z3x4NjQKLQkJezE0QzE2QzI5LTc3QzktNDc1
Qi1BNjE4LTFCMDFFNjdDRjk4NX0uV2luZG93cyA3IFJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0g
V2luZG93cyA3IFJlbGVhc2V8V2luMzIKLQkJezE0QzE2QzI5LTc3QzktNDc1Qi1BNjE4LTFCMDFF
NjdDRjk4NX0uV2luZG93cyA3IFJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFdpbmRvd3MgNyBSZWxl
YXNlfFdpbjMyCi0JCXsxNEMxNkMyOS03N0M5LTQ3NUItQTYxOC0xQjAxRTY3Q0Y5ODV9LldpbmRv
d3MgNyBSZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBXaW5kb3dzIDcgUmVsZWFzZXx4NjQKLQkJezE0
QzE2QzI5LTc3QzktNDc1Qi1BNjE4LTFCMDFFNjdDRjk4NX0uV2luZG93cyA3IFJlbGVhc2V8eDY0
LkJ1aWxkLjAgPSBXaW5kb3dzIDcgUmVsZWFzZXx4NjQKLQkJezE0QzE2QzI5LTc3QzktNDc1Qi1B
NjE4LTFCMDFFNjdDRjk4NX0uV2luZG93cyA4IERlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IFdpbmRv
d3MgOCBEZWJ1Z3xXaW4zMgotCQl7MTRDMTZDMjktNzdDOS00NzVCLUE2MTgtMUIwMUU2N0NGOTg1
fS5XaW5kb3dzIDggRGVidWd8V2luMzIuQnVpbGQuMCA9IFdpbmRvd3MgOCBEZWJ1Z3xXaW4zMgot
CQl7MTRDMTZDMjktNzdDOS00NzVCLUE2MTgtMUIwMUU2N0NGOTg1fS5XaW5kb3dzIDggRGVidWd8
eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgOCBEZWJ1Z3x4NjQKLQkJezE0QzE2QzI5LTc3QzktNDc1
Qi1BNjE4LTFCMDFFNjdDRjk4NX0uV2luZG93cyA4IERlYnVnfHg2NC5CdWlsZC4wID0gV2luZG93
cyA4IERlYnVnfHg2NAotCQl7MTRDMTZDMjktNzdDOS00NzVCLUE2MTgtMUIwMUU2N0NGOTg1fS5X
aW5kb3dzIDggUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIDggUmVsZWFzZXxXaW4z
MgotCQl7MTRDMTZDMjktNzdDOS00NzVCLUE2MTgtMUIwMUU2N0NGOTg1fS5XaW5kb3dzIDggUmVs
ZWFzZXxXaW4zMi5CdWlsZC4wID0gV2luZG93cyA4IFJlbGVhc2V8V2luMzIKLQkJezE0QzE2QzI5
LTc3QzktNDc1Qi1BNjE4LTFCMDFFNjdDRjk4NX0uV2luZG93cyA4IFJlbGVhc2V8eDY0LkFjdGl2
ZUNmZyA9IFdpbmRvd3MgOCBSZWxlYXNlfHg2NAotCQl7MTRDMTZDMjktNzdDOS00NzVCLUE2MTgt
MUIwMUU2N0NGOTg1fS5XaW5kb3dzIDggUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFdpbmRvd3MgOCBS
ZWxlYXNlfHg2NAotCQl7MTRDMTZDMjktNzdDOS00NzVCLUE2MTgtMUIwMUU2N0NGOTg1fS5XaW5k
b3dzIFZpc3RhIERlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IFdpbmRvd3MgVmlzdGEgRGVidWd8V2lu
MzIKLQkJezE0QzE2QzI5LTc3QzktNDc1Qi1BNjE4LTFCMDFFNjdDRjk4NX0uV2luZG93cyBWaXN0
YSBEZWJ1Z3xXaW4zMi5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMgotCQl7MTRD
MTZDMjktNzdDOS00NzVCLUE2MTgtMUIwMUU2N0NGOTg1fS5XaW5kb3dzIFZpc3RhIERlYnVnfHg2
NC5BY3RpdmVDZmcgPSBXaW5kb3dzIFZpc3RhIERlYnVnfHg2NAotCQl7MTRDMTZDMjktNzdDOS00
NzVCLUE2MTgtMUIwMUU2N0NGOTg1fS5XaW5kb3dzIFZpc3RhIERlYnVnfHg2NC5CdWlsZC4wID0g
V2luZG93cyBWaXN0YSBEZWJ1Z3x4NjQKLQkJezE0QzE2QzI5LTc3QzktNDc1Qi1BNjE4LTFCMDFF
NjdDRjk4NX0uV2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFdpbmRvd3Mg
VmlzdGEgUmVsZWFzZXxXaW4zMgotCQl7MTRDMTZDMjktNzdDOS00NzVCLUE2MTgtMUIwMUU2N0NG
OTg1fS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFdpbmRvd3MgVmlzdGEg
UmVsZWFzZXxXaW4zMgotCQl7MTRDMTZDMjktNzdDOS00NzVCLUE2MTgtMUIwMUU2N0NGOTg1fS5X
aW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgVmlzdGEgUmVsZWFz
ZXx4NjQKLQkJezE0QzE2QzI5LTc3QzktNDc1Qi1BNjE4LTFCMDFFNjdDRjk4NX0uV2luZG93cyBW
aXN0YSBSZWxlYXNlfHg2NC5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NAogCQl7
NEJGNDEzNzgtQzAxQi00MDAyLTg1ODEtNTYzQzVGNzAzMzYyfS5XaW5kb3dzIDcgRGVidWd8V2lu
MzIuQWN0aXZlQ2ZnID0gV2luZG93cyA3IERlYnVnfFdpbjMyCiAJCXs0QkY0MTM3OC1DMDFCLTQw
MDItODU4MS01NjNDNUY3MDMzNjJ9LldpbmRvd3MgNyBEZWJ1Z3xXaW4zMi5CdWlsZC4wID0gV2lu
ZG93cyA3IERlYnVnfFdpbjMyCiAJCXs0QkY0MTM3OC1DMDFCLTQwMDItODU4MS01NjNDNUY3MDMz
NjJ9LldpbmRvd3MgNyBEZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gV2luZG93cyA3IERlYnVnfHg2NApA
QCAtODksNDIgKzY3LDQyIEBAIEdsb2JhbAogCQl7NEJGNDEzNzgtQzAxQi00MDAyLTg1ODEtNTYz
QzVGNzAzMzYyfS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFdpbmRvd3Mg
VmlzdGEgUmVsZWFzZXxXaW4zMgogCQl7NEJGNDEzNzgtQzAxQi00MDAyLTg1ODEtNTYzQzVGNzAz
MzYyfS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgVmlzdGEg
UmVsZWFzZXx4NjQKIAkJezRCRjQxMzc4LUMwMUItNDAwMi04NTgxLTU2M0M1RjcwMzM2Mn0uV2lu
ZG93cyBWaXN0YSBSZWxlYXNlfHg2NC5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2
NAotCQl7OTJFNUE0NkItOTEzQy00NUM2LUI2RjgtN0UwNjJEODUyNzlGfS5XaW5kb3dzIDcgRGVi
dWd8V2luMzIuQWN0aXZlQ2ZnID0gV2luZG93cyA3IERlYnVnfFdpbjMyCi0JCXs5MkU1QTQ2Qi05
MTNDLTQ1QzYtQjZGOC03RTA2MkQ4NTI3OUZ9LldpbmRvd3MgNyBEZWJ1Z3xXaW4zMi5CdWlsZC4w
ID0gV2luZG93cyA3IERlYnVnfFdpbjMyCi0JCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZGOC03RTA2
MkQ4NTI3OUZ9LldpbmRvd3MgNyBEZWJ1Z3xXaW4zMi5EZXBsb3kuMCA9IFdpbmRvd3MgNyBEZWJ1
Z3xXaW4zMgotCQl7OTJFNUE0NkItOTEzQy00NUM2LUI2RjgtN0UwNjJEODUyNzlGfS5XaW5kb3dz
IDcgRGVidWd8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgNyBEZWJ1Z3x4NjQKLQkJezkyRTVBNDZC
LTkxM0MtNDVDNi1CNkY4LTdFMDYyRDg1Mjc5Rn0uV2luZG93cyA3IERlYnVnfHg2NC5CdWlsZC4w
ID0gV2luZG93cyA3IERlYnVnfHg2NAotCQl7OTJFNUE0NkItOTEzQy00NUM2LUI2RjgtN0UwNjJE
ODUyNzlGfS5XaW5kb3dzIDcgRGVidWd8eDY0LkRlcGxveS4wID0gV2luZG93cyA3IERlYnVnfHg2
NAotCQl7OTJFNUE0NkItOTEzQy00NUM2LUI2RjgtN0UwNjJEODUyNzlGfS5XaW5kb3dzIDcgUmVs
ZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIDcgUmVsZWFzZXxXaW4zMgotCQl7OTJFNUE0
NkItOTEzQy00NUM2LUI2RjgtN0UwNjJEODUyNzlGfS5XaW5kb3dzIDcgUmVsZWFzZXxXaW4zMi5C
dWlsZC4wID0gV2luZG93cyA3IFJlbGVhc2V8V2luMzIKLQkJezkyRTVBNDZCLTkxM0MtNDVDNi1C
NkY4LTdFMDYyRDg1Mjc5Rn0uV2luZG93cyA3IFJlbGVhc2V8V2luMzIuRGVwbG95LjAgPSBXaW5k
b3dzIDcgUmVsZWFzZXxXaW4zMgotCQl7OTJFNUE0NkItOTEzQy00NUM2LUI2RjgtN0UwNjJEODUy
NzlGfS5XaW5kb3dzIDcgUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gV2luZG93cyA3IFJlbGVhc2V8
eDY0Ci0JCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZGOC03RTA2MkQ4NTI3OUZ9LldpbmRvd3MgNyBS
ZWxlYXNlfHg2NC5CdWlsZC4wID0gV2luZG93cyA3IFJlbGVhc2V8eDY0Ci0JCXs5MkU1QTQ2Qi05
MTNDLTQ1QzYtQjZGOC03RTA2MkQ4NTI3OUZ9LldpbmRvd3MgNyBSZWxlYXNlfHg2NC5EZXBsb3ku
MCA9IFdpbmRvd3MgNyBSZWxlYXNlfHg2NAotCQl7OTJFNUE0NkItOTEzQy00NUM2LUI2RjgtN0Uw
NjJEODUyNzlGfS5XaW5kb3dzIDggRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gV2luZG93cyA4IERl
YnVnfFdpbjMyCi0JCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZGOC03RTA2MkQ4NTI3OUZ9LldpbmRv
d3MgOCBEZWJ1Z3xXaW4zMi5CdWlsZC4wID0gV2luZG93cyA4IERlYnVnfFdpbjMyCi0JCXs5MkU1
QTQ2Qi05MTNDLTQ1QzYtQjZGOC03RTA2MkQ4NTI3OUZ9LldpbmRvd3MgOCBEZWJ1Z3xXaW4zMi5E
ZXBsb3kuMCA9IFdpbmRvd3MgOCBEZWJ1Z3xXaW4zMgotCQl7OTJFNUE0NkItOTEzQy00NUM2LUI2
RjgtN0UwNjJEODUyNzlGfS5XaW5kb3dzIDggRGVidWd8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3Mg
OCBEZWJ1Z3x4NjQKLQkJezkyRTVBNDZCLTkxM0MtNDVDNi1CNkY4LTdFMDYyRDg1Mjc5Rn0uV2lu
ZG93cyA4IERlYnVnfHg2NC5CdWlsZC4wID0gV2luZG93cyA4IERlYnVnfHg2NAotCQl7OTJFNUE0
NkItOTEzQy00NUM2LUI2RjgtN0UwNjJEODUyNzlGfS5XaW5kb3dzIDggRGVidWd8eDY0LkRlcGxv
eS4wID0gV2luZG93cyA4IERlYnVnfHg2NAotCQl7OTJFNUE0NkItOTEzQy00NUM2LUI2RjgtN0Uw
NjJEODUyNzlGfS5XaW5kb3dzIDggUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIDgg
UmVsZWFzZXxXaW4zMgotCQl7OTJFNUE0NkItOTEzQy00NUM2LUI2RjgtN0UwNjJEODUyNzlGfS5X
aW5kb3dzIDggUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gV2luZG93cyA4IFJlbGVhc2V8V2luMzIK
LQkJezkyRTVBNDZCLTkxM0MtNDVDNi1CNkY4LTdFMDYyRDg1Mjc5Rn0uV2luZG93cyA4IFJlbGVh
c2V8V2luMzIuRGVwbG95LjAgPSBXaW5kb3dzIDggUmVsZWFzZXxXaW4zMgotCQl7OTJFNUE0NkIt
OTEzQy00NUM2LUI2RjgtN0UwNjJEODUyNzlGfS5XaW5kb3dzIDggUmVsZWFzZXx4NjQuQWN0aXZl
Q2ZnID0gV2luZG93cyA4IFJlbGVhc2V8eDY0Ci0JCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZGOC03
RTA2MkQ4NTI3OUZ9LldpbmRvd3MgOCBSZWxlYXNlfHg2NC5CdWlsZC4wID0gV2luZG93cyA4IFJl
bGVhc2V8eDY0Ci0JCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZGOC03RTA2MkQ4NTI3OUZ9LldpbmRv
d3MgOCBSZWxlYXNlfHg2NC5EZXBsb3kuMCA9IFdpbmRvd3MgOCBSZWxlYXNlfHg2NAotCQl7OTJF
NUE0NkItOTEzQy00NUM2LUI2RjgtN0UwNjJEODUyNzlGfS5XaW5kb3dzIFZpc3RhIERlYnVnfFdp
bjMyLkFjdGl2ZUNmZyA9IFdpbmRvd3MgVmlzdGEgRGVidWd8V2luMzIKLQkJezkyRTVBNDZCLTkx
M0MtNDVDNi1CNkY4LTdFMDYyRDg1Mjc5Rn0uV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMi5CdWls
ZC4wID0gV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMgotCQl7OTJFNUE0NkItOTEzQy00NUM2LUI2
RjgtN0UwNjJEODUyNzlGfS5XaW5kb3dzIFZpc3RhIERlYnVnfFdpbjMyLkRlcGxveS4wID0gV2lu
ZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMgotCQl7OTJFNUE0NkItOTEzQy00NUM2LUI2RjgtN0UwNjJE
ODUyNzlGfS5XaW5kb3dzIFZpc3RhIERlYnVnfHg2NC5BY3RpdmVDZmcgPSBXaW5kb3dzIFZpc3Rh
IERlYnVnfHg2NAotCQl7OTJFNUE0NkItOTEzQy00NUM2LUI2RjgtN0UwNjJEODUyNzlGfS5XaW5k
b3dzIFZpc3RhIERlYnVnfHg2NC5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBEZWJ1Z3x4NjQKLQkJ
ezkyRTVBNDZCLTkxM0MtNDVDNi1CNkY4LTdFMDYyRDg1Mjc5Rn0uV2luZG93cyBWaXN0YSBEZWJ1
Z3x4NjQuRGVwbG95LjAgPSBXaW5kb3dzIFZpc3RhIERlYnVnfHg2NAotCQl7OTJFNUE0NkItOTEz
Qy00NUM2LUI2RjgtN0UwNjJEODUyNzlGfS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzIuQWN0
aXZlQ2ZnID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyCi0JCXs5MkU1QTQ2Qi05MTNDLTQ1
QzYtQjZGOC03RTA2MkQ4NTI3OUZ9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMi5CdWlsZC4w
ID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyCi0JCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZG
OC03RTA2MkQ4NTI3OUZ9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMi5EZXBsb3kuMCA9IFdp
bmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMgotCQl7OTJFNUE0NkItOTEzQy00NUM2LUI2RjgtN0Uw
NjJEODUyNzlGfS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3Mg
VmlzdGEgUmVsZWFzZXx4NjQKLQkJezkyRTVBNDZCLTkxM0MtNDVDNi1CNkY4LTdFMDYyRDg1Mjc5
Rn0uV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NC5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBSZWxl
YXNlfHg2NAotCQl7OTJFNUE0NkItOTEzQy00NUM2LUI2RjgtN0UwNjJEODUyNzlGfS5XaW5kb3dz
IFZpc3RhIFJlbGVhc2V8eDY0LkRlcGxveS4wID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NAor
CQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIDcgRGVidWd8
V2luMzIuQWN0aXZlQ2ZnID0gV2luZG93cyA3IERlYnVnfFdpbjMyCisJCXsyRTYxRDJDQy04NjVF
LTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgNyBEZWJ1Z3xXaW4zMi5CdWlsZC4wID0g
V2luZG93cyA3IERlYnVnfFdpbjMyCisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3
QkJEM0J9LldpbmRvd3MgNyBEZWJ1Z3xXaW4zMi5EZXBsb3kuMCA9IFdpbmRvd3MgNyBEZWJ1Z3xX
aW4zMgorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIDcg
RGVidWd8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgNyBEZWJ1Z3x4NjQKKwkJezJFNjFEMkNDLTg2
NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyA3IERlYnVnfHg2NC5CdWlsZC4wID0g
V2luZG93cyA3IERlYnVnfHg2NAorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JC
RDNCfS5XaW5kb3dzIDcgRGVidWd8eDY0LkRlcGxveS4wID0gV2luZG93cyA3IERlYnVnfHg2NAor
CQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIDcgUmVsZWFz
ZXxXaW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIDcgUmVsZWFzZXxXaW4zMgorCQl7MkU2MUQyQ0Mt
ODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIDcgUmVsZWFzZXxXaW4zMi5CdWls
ZC4wID0gV2luZG93cyA3IFJlbGVhc2V8V2luMzIKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04Qzgz
LUI4REFGRDdCQkQzQn0uV2luZG93cyA3IFJlbGVhc2V8V2luMzIuRGVwbG95LjAgPSBXaW5kb3dz
IDcgUmVsZWFzZXxXaW4zMgorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNC
fS5XaW5kb3dzIDcgUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gV2luZG93cyA3IFJlbGVhc2V8eDY0
CisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgNyBSZWxl
YXNlfHg2NC5CdWlsZC4wID0gV2luZG93cyA3IFJlbGVhc2V8eDY0CisJCXsyRTYxRDJDQy04NjVF
LTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgNyBSZWxlYXNlfHg2NC5EZXBsb3kuMCA9
IFdpbmRvd3MgNyBSZWxlYXNlfHg2NAorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZE
N0JCRDNCfS5XaW5kb3dzIDggRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gV2luZG93cyA4IERlYnVn
fFdpbjMyCisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3Mg
OCBEZWJ1Z3xXaW4zMi5CdWlsZC4wID0gV2luZG93cyA4IERlYnVnfFdpbjMyCisJCXsyRTYxRDJD
Qy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgOCBEZWJ1Z3xXaW4zMi5EZXBs
b3kuMCA9IFdpbmRvd3MgOCBEZWJ1Z3xXaW4zMgorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMt
QjhEQUZEN0JCRDNCfS5XaW5kb3dzIDggRGVidWd8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgOCBE
ZWJ1Z3x4NjQKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93
cyA4IERlYnVnfHg2NC5CdWlsZC4wID0gV2luZG93cyA4IERlYnVnfHg2NAorCQl7MkU2MUQyQ0Mt
ODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIDggRGVidWd8eDY0LkRlcGxveS4w
ID0gV2luZG93cyA4IERlYnVnfHg2NAorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZE
N0JCRDNCfS5XaW5kb3dzIDggUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIDggUmVs
ZWFzZXxXaW4zMgorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5k
b3dzIDggUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gV2luZG93cyA4IFJlbGVhc2V8V2luMzIKKwkJ
ezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyA4IFJlbGVhc2V8
V2luMzIuRGVwbG95LjAgPSBXaW5kb3dzIDggUmVsZWFzZXxXaW4zMgorCQl7MkU2MUQyQ0MtODY1
RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIDggUmVsZWFzZXx4NjQuQWN0aXZlQ2Zn
ID0gV2luZG93cyA4IFJlbGVhc2V8eDY0CisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERB
RkQ3QkJEM0J9LldpbmRvd3MgOCBSZWxlYXNlfHg2NC5CdWlsZC4wID0gV2luZG93cyA4IFJlbGVh
c2V8eDY0CisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3Mg
OCBSZWxlYXNlfHg2NC5EZXBsb3kuMCA9IFdpbmRvd3MgOCBSZWxlYXNlfHg2NAorCQl7MkU2MUQy
Q0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIFZpc3RhIERlYnVnfFdpbjMy
LkFjdGl2ZUNmZyA9IFdpbmRvd3MgVmlzdGEgRGVidWd8V2luMzIKKwkJezJFNjFEMkNDLTg2NUUt
NDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMi5CdWlsZC4w
ID0gV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMgorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMt
QjhEQUZEN0JCRDNCfS5XaW5kb3dzIFZpc3RhIERlYnVnfFdpbjMyLkRlcGxveS4wID0gV2luZG93
cyBWaXN0YSBEZWJ1Z3xXaW4zMgorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JC
RDNCfS5XaW5kb3dzIFZpc3RhIERlYnVnfHg2NC5BY3RpdmVDZmcgPSBXaW5kb3dzIFZpc3RhIERl
YnVnfHg2NAorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dz
IFZpc3RhIERlYnVnfHg2NC5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBEZWJ1Z3x4NjQKKwkJezJF
NjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0uV2luZG93cyBWaXN0YSBEZWJ1Z3x4
NjQuRGVwbG95LjAgPSBXaW5kb3dzIFZpc3RhIERlYnVnfHg2NAorCQl7MkU2MUQyQ0MtODY1RS00
NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzIuQWN0aXZl
Q2ZnID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyCisJCXsyRTYxRDJDQy04NjVFLTQ0MkMt
OEM4My1COERBRkQ3QkJEM0J9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0g
V2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyCisJCXsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1C
OERBRkQ3QkJEM0J9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMi5EZXBsb3kuMCA9IFdpbmRv
d3MgVmlzdGEgUmVsZWFzZXxXaW4zMgorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZE
N0JCRDNCfS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgVmlz
dGEgUmVsZWFzZXx4NjQKKwkJezJFNjFEMkNDLTg2NUUtNDQyQy04QzgzLUI4REFGRDdCQkQzQn0u
V2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NC5CdWlsZC4wID0gV2luZG93cyBWaXN0YSBSZWxlYXNl
fHg2NAorCQl7MkU2MUQyQ0MtODY1RS00NDJDLThDODMtQjhEQUZEN0JCRDNCfS5XaW5kb3dzIFZp
c3RhIFJlbGVhc2V8eDY0LkRlcGxveS4wID0gV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NAogCQl7
OUM2QTVENDgtQTMzMS00QjFGLUEwMDQtN0JCNjdCQTVCRTFDfS5XaW5kb3dzIDcgRGVidWd8V2lu
MzIuQWN0aXZlQ2ZnID0gV2luZG93cyA3IERlYnVnfFdpbjMyCiAJCXs5QzZBNUQ0OC1BMzMxLTRC
MUYtQTAwNC03QkI2N0JBNUJFMUN9LldpbmRvd3MgNyBEZWJ1Z3xXaW4zMi5CdWlsZC4wID0gV2lu
ZG93cyA3IERlYnVnfFdpbjMyCiAJCXs5QzZBNUQ0OC1BMzMxLTRCMUYtQTAwNC03QkI2N0JBNUJF
MUN9LldpbmRvd3MgNyBEZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gV2luZG93cyA3IERlYnVnfHg2NApA
QCAtMTczLDYgKzE1MSw2NiBAQCBHbG9iYWwKIAkJe0Q3NDExQjJDLTJDNDMtNDM0RC05RjU2LUUx
MEEzRDJGNUJBRH0uV2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBXaW5kb3dz
IFZpc3RhIFJlbGVhc2V8V2luMzIKIAkJe0Q3NDExQjJDLTJDNDMtNDM0RC05RjU2LUUxMEEzRDJG
NUJBRH0uV2luZG93cyBWaXN0YSBSZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBXaW5kb3dzIFZpc3Rh
IFJlbGVhc2V8eDY0CiAJCXtENzQxMUIyQy0yQzQzLTQzNEQtOUY1Ni1FMTBBM0QyRjVCQUR9Lldp
bmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFdpbmRvd3MgVmlzdGEgUmVsZWFzZXx4
NjQKKwkJezE0QzE2QzI5LTc3QzktNDc1Qi1BNjE4LTFCMDFFNjdDRjk4NX0uV2luZG93cyA3IERl
YnVnfFdpbjMyLkFjdGl2ZUNmZyA9IFdpbmRvd3MgNyBEZWJ1Z3xXaW4zMgorCQl7MTRDMTZDMjkt
NzdDOS00NzVCLUE2MTgtMUIwMUU2N0NGOTg1fS5XaW5kb3dzIDcgRGVidWd8V2luMzIuQnVpbGQu
MCA9IFdpbmRvd3MgNyBEZWJ1Z3xXaW4zMgorCQl7MTRDMTZDMjktNzdDOS00NzVCLUE2MTgtMUIw
MUU2N0NGOTg1fS5XaW5kb3dzIDcgRGVidWd8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgNyBEZWJ1
Z3x4NjQKKwkJezE0QzE2QzI5LTc3QzktNDc1Qi1BNjE4LTFCMDFFNjdDRjk4NX0uV2luZG93cyA3
IERlYnVnfHg2NC5CdWlsZC4wID0gV2luZG93cyA3IERlYnVnfHg2NAorCQl7MTRDMTZDMjktNzdD
OS00NzVCLUE2MTgtMUIwMUU2N0NGOTg1fS5XaW5kb3dzIDcgUmVsZWFzZXxXaW4zMi5BY3RpdmVD
ZmcgPSBXaW5kb3dzIDcgUmVsZWFzZXxXaW4zMgorCQl7MTRDMTZDMjktNzdDOS00NzVCLUE2MTgt
MUIwMUU2N0NGOTg1fS5XaW5kb3dzIDcgUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gV2luZG93cyA3
IFJlbGVhc2V8V2luMzIKKwkJezE0QzE2QzI5LTc3QzktNDc1Qi1BNjE4LTFCMDFFNjdDRjk4NX0u
V2luZG93cyA3IFJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgNyBSZWxlYXNlfHg2NAor
CQl7MTRDMTZDMjktNzdDOS00NzVCLUE2MTgtMUIwMUU2N0NGOTg1fS5XaW5kb3dzIDcgUmVsZWFz
ZXx4NjQuQnVpbGQuMCA9IFdpbmRvd3MgNyBSZWxlYXNlfHg2NAorCQl7MTRDMTZDMjktNzdDOS00
NzVCLUE2MTgtMUIwMUU2N0NGOTg1fS5XaW5kb3dzIDggRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0g
V2luZG93cyA4IERlYnVnfFdpbjMyCisJCXsxNEMxNkMyOS03N0M5LTQ3NUItQTYxOC0xQjAxRTY3
Q0Y5ODV9LldpbmRvd3MgOCBEZWJ1Z3xXaW4zMi5CdWlsZC4wID0gV2luZG93cyA4IERlYnVnfFdp
bjMyCisJCXsxNEMxNkMyOS03N0M5LTQ3NUItQTYxOC0xQjAxRTY3Q0Y5ODV9LldpbmRvd3MgOCBE
ZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gV2luZG93cyA4IERlYnVnfHg2NAorCQl7MTRDMTZDMjktNzdD
OS00NzVCLUE2MTgtMUIwMUU2N0NGOTg1fS5XaW5kb3dzIDggRGVidWd8eDY0LkJ1aWxkLjAgPSBX
aW5kb3dzIDggRGVidWd8eDY0CisJCXsxNEMxNkMyOS03N0M5LTQ3NUItQTYxOC0xQjAxRTY3Q0Y5
ODV9LldpbmRvd3MgOCBSZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFdpbmRvd3MgOCBSZWxlYXNl
fFdpbjMyCisJCXsxNEMxNkMyOS03N0M5LTQ3NUItQTYxOC0xQjAxRTY3Q0Y5ODV9LldpbmRvd3Mg
OCBSZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBXaW5kb3dzIDggUmVsZWFzZXxXaW4zMgorCQl7MTRD
MTZDMjktNzdDOS00NzVCLUE2MTgtMUIwMUU2N0NGOTg1fS5XaW5kb3dzIDggUmVsZWFzZXx4NjQu
QWN0aXZlQ2ZnID0gV2luZG93cyA4IFJlbGVhc2V8eDY0CisJCXsxNEMxNkMyOS03N0M5LTQ3NUIt
QTYxOC0xQjAxRTY3Q0Y5ODV9LldpbmRvd3MgOCBSZWxlYXNlfHg2NC5CdWlsZC4wID0gV2luZG93
cyA4IFJlbGVhc2V8eDY0CisJCXsxNEMxNkMyOS03N0M5LTQ3NUItQTYxOC0xQjAxRTY3Q0Y5ODV9
LldpbmRvd3MgVmlzdGEgRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gV2luZG93cyBWaXN0YSBEZWJ1
Z3xXaW4zMgorCQl7MTRDMTZDMjktNzdDOS00NzVCLUE2MTgtMUIwMUU2N0NGOTg1fS5XaW5kb3dz
IFZpc3RhIERlYnVnfFdpbjMyLkJ1aWxkLjAgPSBXaW5kb3dzIFZpc3RhIERlYnVnfFdpbjMyCisJ
CXsxNEMxNkMyOS03N0M5LTQ3NUItQTYxOC0xQjAxRTY3Q0Y5ODV9LldpbmRvd3MgVmlzdGEgRGVi
dWd8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgVmlzdGEgRGVidWd8eDY0CisJCXsxNEMxNkMyOS03
N0M5LTQ3NUItQTYxOC0xQjAxRTY3Q0Y5ODV9LldpbmRvd3MgVmlzdGEgRGVidWd8eDY0LkJ1aWxk
LjAgPSBXaW5kb3dzIFZpc3RhIERlYnVnfHg2NAorCQl7MTRDMTZDMjktNzdDOS00NzVCLUE2MTgt
MUIwMUU2N0NGOTg1fS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gV2lu
ZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyCisJCXsxNEMxNkMyOS03N0M5LTQ3NUItQTYxOC0xQjAx
RTY3Q0Y5ODV9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gV2luZG93cyBW
aXN0YSBSZWxlYXNlfFdpbjMyCisJCXsxNEMxNkMyOS03N0M5LTQ3NUItQTYxOC0xQjAxRTY3Q0Y5
ODV9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gV2luZG93cyBWaXN0YSBS
ZWxlYXNlfHg2NAorCQl7MTRDMTZDMjktNzdDOS00NzVCLUE2MTgtMUIwMUU2N0NGOTg1fS5XaW5k
b3dzIFZpc3RhIFJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0
CisJCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZGOC03RTA2MkQ4NTI3OUZ9LldpbmRvd3MgNyBEZWJ1
Z3xXaW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIDcgRGVidWd8V2luMzIKKwkJezkyRTVBNDZCLTkx
M0MtNDVDNi1CNkY4LTdFMDYyRDg1Mjc5Rn0uV2luZG93cyA3IERlYnVnfFdpbjMyLkJ1aWxkLjAg
PSBXaW5kb3dzIDcgRGVidWd8V2luMzIKKwkJezkyRTVBNDZCLTkxM0MtNDVDNi1CNkY4LTdFMDYy
RDg1Mjc5Rn0uV2luZG93cyA3IERlYnVnfFdpbjMyLkRlcGxveS4wID0gV2luZG93cyA3IERlYnVn
fFdpbjMyCisJCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZGOC03RTA2MkQ4NTI3OUZ9LldpbmRvd3Mg
NyBEZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gV2luZG93cyA3IERlYnVnfHg2NAorCQl7OTJFNUE0NkIt
OTEzQy00NUM2LUI2RjgtN0UwNjJEODUyNzlGfS5XaW5kb3dzIDcgRGVidWd8eDY0LkJ1aWxkLjAg
PSBXaW5kb3dzIDcgRGVidWd8eDY0CisJCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZGOC03RTA2MkQ4
NTI3OUZ9LldpbmRvd3MgNyBEZWJ1Z3x4NjQuRGVwbG95LjAgPSBXaW5kb3dzIDcgRGVidWd8eDY0
CisJCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZGOC03RTA2MkQ4NTI3OUZ9LldpbmRvd3MgNyBSZWxl
YXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFdpbmRvd3MgNyBSZWxlYXNlfFdpbjMyCisJCXs5MkU1QTQ2
Qi05MTNDLTQ1QzYtQjZGOC03RTA2MkQ4NTI3OUZ9LldpbmRvd3MgNyBSZWxlYXNlfFdpbjMyLkJ1
aWxkLjAgPSBXaW5kb3dzIDcgUmVsZWFzZXxXaW4zMgorCQl7OTJFNUE0NkItOTEzQy00NUM2LUI2
RjgtN0UwNjJEODUyNzlGfS5XaW5kb3dzIDcgUmVsZWFzZXxXaW4zMi5EZXBsb3kuMCA9IFdpbmRv
d3MgNyBSZWxlYXNlfFdpbjMyCisJCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZGOC03RTA2MkQ4NTI3
OUZ9LldpbmRvd3MgNyBSZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBXaW5kb3dzIDcgUmVsZWFzZXx4
NjQKKwkJezkyRTVBNDZCLTkxM0MtNDVDNi1CNkY4LTdFMDYyRDg1Mjc5Rn0uV2luZG93cyA3IFJl
bGVhc2V8eDY0LkJ1aWxkLjAgPSBXaW5kb3dzIDcgUmVsZWFzZXx4NjQKKwkJezkyRTVBNDZCLTkx
M0MtNDVDNi1CNkY4LTdFMDYyRDg1Mjc5Rn0uV2luZG93cyA3IFJlbGVhc2V8eDY0LkRlcGxveS4w
ID0gV2luZG93cyA3IFJlbGVhc2V8eDY0CisJCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZGOC03RTA2
MkQ4NTI3OUZ9LldpbmRvd3MgOCBEZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBXaW5kb3dzIDggRGVi
dWd8V2luMzIKKwkJezkyRTVBNDZCLTkxM0MtNDVDNi1CNkY4LTdFMDYyRDg1Mjc5Rn0uV2luZG93
cyA4IERlYnVnfFdpbjMyLkJ1aWxkLjAgPSBXaW5kb3dzIDggRGVidWd8V2luMzIKKwkJezkyRTVB
NDZCLTkxM0MtNDVDNi1CNkY4LTdFMDYyRDg1Mjc5Rn0uV2luZG93cyA4IERlYnVnfFdpbjMyLkRl
cGxveS4wID0gV2luZG93cyA4IERlYnVnfFdpbjMyCisJCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZG
OC03RTA2MkQ4NTI3OUZ9LldpbmRvd3MgOCBEZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gV2luZG93cyA4
IERlYnVnfHg2NAorCQl7OTJFNUE0NkItOTEzQy00NUM2LUI2RjgtN0UwNjJEODUyNzlGfS5XaW5k
b3dzIDggRGVidWd8eDY0LkJ1aWxkLjAgPSBXaW5kb3dzIDggRGVidWd8eDY0CisJCXs5MkU1QTQ2
Qi05MTNDLTQ1QzYtQjZGOC03RTA2MkQ4NTI3OUZ9LldpbmRvd3MgOCBEZWJ1Z3x4NjQuRGVwbG95
LjAgPSBXaW5kb3dzIDggRGVidWd8eDY0CisJCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZGOC03RTA2
MkQ4NTI3OUZ9LldpbmRvd3MgOCBSZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFdpbmRvd3MgOCBS
ZWxlYXNlfFdpbjMyCisJCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZGOC03RTA2MkQ4NTI3OUZ9Lldp
bmRvd3MgOCBSZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBXaW5kb3dzIDggUmVsZWFzZXxXaW4zMgor
CQl7OTJFNUE0NkItOTEzQy00NUM2LUI2RjgtN0UwNjJEODUyNzlGfS5XaW5kb3dzIDggUmVsZWFz
ZXxXaW4zMi5EZXBsb3kuMCA9IFdpbmRvd3MgOCBSZWxlYXNlfFdpbjMyCisJCXs5MkU1QTQ2Qi05
MTNDLTQ1QzYtQjZGOC03RTA2MkQ4NTI3OUZ9LldpbmRvd3MgOCBSZWxlYXNlfHg2NC5BY3RpdmVD
ZmcgPSBXaW5kb3dzIDggUmVsZWFzZXx4NjQKKwkJezkyRTVBNDZCLTkxM0MtNDVDNi1CNkY4LTdF
MDYyRDg1Mjc5Rn0uV2luZG93cyA4IFJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBXaW5kb3dzIDggUmVs
ZWFzZXx4NjQKKwkJezkyRTVBNDZCLTkxM0MtNDVDNi1CNkY4LTdFMDYyRDg1Mjc5Rn0uV2luZG93
cyA4IFJlbGVhc2V8eDY0LkRlcGxveS4wID0gV2luZG93cyA4IFJlbGVhc2V8eDY0CisJCXs5MkU1
QTQ2Qi05MTNDLTQ1QzYtQjZGOC03RTA2MkQ4NTI3OUZ9LldpbmRvd3MgVmlzdGEgRGVidWd8V2lu
MzIuQWN0aXZlQ2ZnID0gV2luZG93cyBWaXN0YSBEZWJ1Z3xXaW4zMgorCQl7OTJFNUE0NkItOTEz
Qy00NUM2LUI2RjgtN0UwNjJEODUyNzlGfS5XaW5kb3dzIFZpc3RhIERlYnVnfFdpbjMyLkJ1aWxk
LjAgPSBXaW5kb3dzIFZpc3RhIERlYnVnfFdpbjMyCisJCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZG
OC03RTA2MkQ4NTI3OUZ9LldpbmRvd3MgVmlzdGEgRGVidWd8V2luMzIuRGVwbG95LjAgPSBXaW5k
b3dzIFZpc3RhIERlYnVnfFdpbjMyCisJCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZGOC03RTA2MkQ4
NTI3OUZ9LldpbmRvd3MgVmlzdGEgRGVidWd8eDY0LkFjdGl2ZUNmZyA9IFdpbmRvd3MgVmlzdGEg
RGVidWd8eDY0CisJCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZGOC03RTA2MkQ4NTI3OUZ9LldpbmRv
d3MgVmlzdGEgRGVidWd8eDY0LkJ1aWxkLjAgPSBXaW5kb3dzIFZpc3RhIERlYnVnfHg2NAorCQl7
OTJFNUE0NkItOTEzQy00NUM2LUI2RjgtN0UwNjJEODUyNzlGfS5XaW5kb3dzIFZpc3RhIERlYnVn
fHg2NC5EZXBsb3kuMCA9IFdpbmRvd3MgVmlzdGEgRGVidWd8eDY0CisJCXs5MkU1QTQ2Qi05MTND
LTQ1QzYtQjZGOC03RTA2MkQ4NTI3OUZ9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXxXaW4zMi5BY3Rp
dmVDZmcgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzIKKwkJezkyRTVBNDZCLTkxM0MtNDVD
Ni1CNkY4LTdFMDYyRDg1Mjc5Rn0uV2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyLkJ1aWxkLjAg
PSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8V2luMzIKKwkJezkyRTVBNDZCLTkxM0MtNDVDNi1CNkY4
LTdFMDYyRDg1Mjc5Rn0uV2luZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyLkRlcGxveS4wID0gV2lu
ZG93cyBWaXN0YSBSZWxlYXNlfFdpbjMyCisJCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZGOC03RTA2
MkQ4NTI3OUZ9LldpbmRvd3MgVmlzdGEgUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gV2luZG93cyBW
aXN0YSBSZWxlYXNlfHg2NAorCQl7OTJFNUE0NkItOTEzQy00NUM2LUI2RjgtN0UwNjJEODUyNzlG
fS5XaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBXaW5kb3dzIFZpc3RhIFJlbGVh
c2V8eDY0CisJCXs5MkU1QTQ2Qi05MTNDLTQ1QzYtQjZGOC03RTA2MkQ4NTI3OUZ9LldpbmRvd3Mg
VmlzdGEgUmVsZWFzZXx4NjQuRGVwbG95LjAgPSBXaW5kb3dzIFZpc3RhIFJlbGVhc2V8eDY0CiAJ
RW5kR2xvYmFsU2VjdGlvbgogCUdsb2JhbFNlY3Rpb24oU29sdXRpb25Qcm9wZXJ0aWVzKSA9IHBy
ZVNvbHV0aW9uCiAJCUhpZGVTb2x1dGlvbk5vZGUgPSBGQUxTRQpkaWZmIC0tZ2l0IGEvdnMyMDEz
L3hlbmJ1c19tb25pdG9yL3hlbmJ1c19tb25pdG9yLnZjeHByb2ogYi92czIwMTMveGVuYnVzX21v
bml0b3IveGVuYnVzX21vbml0b3IudmN4cHJvagpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi41NTc1YzdlCi0tLSAvZGV2L251bGwKKysrIGIvdnMyMDEzL3hlbmJ1c19tb25pdG9y
L3hlbmJ1c19tb25pdG9yLnZjeHByb2oKQEAgLTAsMCArMSw4MiBAQAorPD94bWwgdmVyc2lvbj0i
MS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzxQcm9qZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIg
VG9vbHNWZXJzaW9uPSIxMi4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9k
ZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEltcG9ydCBQcm9qZWN0PSIuLlxjb25maWdzLnBy
b3BzIiAvPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+CisgICAgPENvbmZpZ3Vy
YXRpb24+V2luZG93cyBWaXN0YSBEZWJ1ZzwvQ29uZmlndXJhdGlvbj4KKyAgICA8UGxhdGZvcm0g
Q29uZGl0aW9uPSInJChQbGF0Zm9ybSknID09ICcnIj5XaW4zMjwvUGxhdGZvcm0+CisgICAgPERl
YnVnZ2VyRmxhdm9yPkRiZ2VuZ0tlcm5lbERlYnVnZ2VyPC9EZWJ1Z2dlckZsYXZvcj4KKyAgPC9Q
cm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgor
ICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+CisgICAgPFBsYXRmb3Jt
VG9vbHNldD5XaW5kb3dzQXBwbGljYXRpb25Gb3JEcml2ZXJzOC4xPC9QbGF0Zm9ybVRvb2xzZXQ+
CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4K
KyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClc
TWljcm9zb2Z0LkNwcC5EZWZhdWx0LnByb3BzIiAvPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0i
R2xvYmFscyI+CisgICAgPFByb2plY3RHdWlkPnsyRTYxRDJDQy04NjVFLTQ0MkMtOEM4My1COERB
RkQ3QkJEM0J9PC9Qcm9qZWN0R3VpZD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFBy
b2plY3Q9Ii4uXHRhcmdldHMucHJvcHMiIC8+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1Rhcmdl
dHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPgorICA8UHJvcGVydHlHcm91cD4KKyAgICA8
SW5jbHVkZVBhdGg+JChJbmNsdWRlUGF0aCk8L0luY2x1ZGVQYXRoPgorICAgIDxSdW5Db2RlQW5h
bHlzaXM+dHJ1ZTwvUnVuQ29kZUFuYWx5c2lzPgorICAgIDxFbmFibGVJbmYyY2F0PmZhbHNlPC9F
bmFibGVJbmYyY2F0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwPgorICAg
IDxDdXN0b21CdWlsZEFmdGVyVGFyZ2V0cz5MaW5rPC9DdXN0b21CdWlsZEFmdGVyVGFyZ2V0cz4K
KyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cD4KKyAgICA8Q2xDb21w
aWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+JChTb2x1dGlvbkRpciku
LlxpbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNs
dWRlRGlyZWN0b3JpZXM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X1dJ
TkRPV1M7X0NSVF9TRUNVUkVfTk9fV0FSTklOR1M7X19NT0RVTEVfXz0iWEVOQlVTX01PTklUT1Ii
OyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAg
ICAgIDxXYXJuaW5nTGV2ZWw+RW5hYmxlQWxsV2FybmluZ3M8L1dhcm5pbmdMZXZlbD4KKyAgICAg
IDxEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz40MTI3OzQ3MTE7NDU0ODs0ODIwOzQ2Njg7NDI1NTs2
MDAxOzYwNTQ7MjgxOTY7JShEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncyk8L0Rpc2FibGVTcGVjaWZp
Y1dhcm5pbmdzPgorICAgICAgPE11bHRpUHJvY2Vzc29yQ29tcGlsYXRpb24+dHJ1ZTwvTXVsdGlQ
cm9jZXNzb3JDb21waWxhdGlvbj4KKyAgICAgIDxFbmFibGVQUkVmYXN0PnRydWU8L0VuYWJsZVBS
RWZhc3Q+CisgICAgICA8UnVudGltZUxpYnJhcnkgQ29uZGl0aW9uPSInJChVc2VEZWJ1Z0xpYnJh
cmllcyknPT0ndHJ1ZSciPk11bHRpVGhyZWFkZWREZWJ1ZzwvUnVudGltZUxpYnJhcnk+CisgICAg
ICA8UnVudGltZUxpYnJhcnkgQ29uZGl0aW9uPSInJChVc2VEZWJ1Z0xpYnJhcmllcyknPT0nZmFs
c2UnIj5NdWx0aVRocmVhZGVkPC9SdW50aW1lTGlicmFyeT4KKyAgICA8L0NsQ29tcGlsZT4KKyAg
ICA8TGluaz4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPnd0c2FwaTMyLmxpYjslKEFk
ZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgIDwvTGlu
az4KKyAgICA8UmVzb3VyY2VDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0
b3JpZXM+JChTb2x1dGlvbkRpcikuLlxpbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgPC9SZXNvdXJjZUNvbXBp
bGU+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29u
ZGl0aW9uPSInJChQbGF0Zm9ybSknPT0nV2luMzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAg
PFByZXByb2Nlc3NvckRlZmluaXRpb25zPl9faTM4Nl9fOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlv
bnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q3Vz
dG9tQnVpbGRTdGVwPgorICAgICAgPE91dHB1dHM+JChUYXJnZXREaXIpJChUYXJnZXROYW1lKS5k
bGw8L091dHB1dHM+CisgICAgICA8SW5wdXRzPiQoSW50RGlyKSQoVGFyZ2V0TmFtZSkucmVzPC9J
bnB1dHM+CisgICAgICA8Q29tbWFuZD5saW5rIC1tYWNoaW5lOng4NiAtZGxsIC1ub2VudHJ5IC1v
dXQ6JShPdXRwdXRzKSAlKElucHV0cyk8L0NvbW1hbmQ+CisgICAgPC9DdXN0b21CdWlsZFN0ZXA+
CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0
aW9uPSInJChQbGF0Zm9ybSknPT0neDY0JyI+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxQcmVw
cm9jZXNzb3JEZWZpbml0aW9ucz5fX3g4Nl82NF9fOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMp
PC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q3VzdG9t
QnVpbGRTdGVwPgorICAgICAgPE91dHB1dHM+JChUYXJnZXREaXIpJChUYXJnZXROYW1lKS5kbGw8
L091dHB1dHM+CisgICAgICA8SW5wdXRzPiQoSW50RGlyKSQoVGFyZ2V0TmFtZSkucmVzPC9JbnB1
dHM+CisgICAgICA8Q29tbWFuZD5saW5rIC1tYWNoaW5lOng2NCAtZGxsIC1ub2VudHJ5IC1vdXQ6
JShPdXRwdXRzKSAlKElucHV0cyk8L0NvbW1hbmQ+CisgICAgPC9DdXN0b21CdWlsZFN0ZXA+Cisg
IDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8RmlsZXNUb1BhY2th
Z2UgSW5jbHVkZT0iJChUYXJnZXRQYXRoKSIgLz4KKyAgICA8RmlsZXNUb1BhY2thZ2UgSW5jbHVk
ZT0iJChPdXREaXIpJChUYXJnZXROYW1lKS5wZGIiIC8+CisgICAgPEZpbGVzVG9QYWNrYWdlIElu
Y2x1ZGU9IiQoT3V0RGlyKSQoVGFyZ2V0TmFtZSkuZGxsIiAvPgorICAgIDxGaWxlc1RvUGFja2Fn
ZSBJbmNsdWRlPSJAKEluZi0+JyUoQ29weU91dHB1dCknKSIgQ29uZGl0aW9uPSInQChJbmYpJyE9
JyciIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxNZXNzYWdlQ29tcGls
ZSBJbmNsdWRlPSIuLlwuLlxzcmNcbW9uaXRvclxtZXNzYWdlcy5tYyIgLz4KKyAgPC9JdGVtR3Jv
dXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlxzcmNcbW9u
aXRvclxtb25pdG9yLmMiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxS
ZXNvdXJjZUNvbXBpbGUgSW5jbHVkZT0iLi5cLi5cc3JjXG1vbml0b3JceGVuYnVzX21vbml0b3Iu
cmMiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0
aClcTWljcm9zb2Z0LkNwcC50YXJnZXRzIiAvPgorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3ZzMjAxMy94ZW5idXNfbW9uaXRvci94ZW5idXNfbW9u
aXRvci52Y3hwcm9qLnVzZXIgYi92czIwMTMveGVuYnVzX21vbml0b3IveGVuYnVzX21vbml0b3Iu
dmN4cHJvai51c2VyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4ZWNjZTgK
LS0tIC9kZXYvbnVsbAorKysgYi92czIwMTMveGVuYnVzX21vbml0b3IveGVuYnVzX21vbml0b3Iu
dmN4cHJvai51c2VyCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGlu
Zz0idXRmLTgiPz4KKzxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3Nj
aGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPFByb3BlcnR5
R3JvdXA+CisgICAgPFNpZ25Nb2RlPlRlc3RTaWduPC9TaWduTW9kZT4KKyAgICA8VGVzdENlcnRp
ZmljYXRlPi4uXC4uXHNyY1x4ZW5idXMucGZ4PC9UZXN0Q2VydGlmaWNhdGU+CisgICAgPFRpbWVT
dGFtcFNlcnZlcj5odHRwOi8vdGltZXN0YW1wLnZlcmlzaWduLmNvbS9zY3JpcHRzL3RpbXN0YW1w
LmRsbDwvVGltZVN0YW1wU2VydmVyPgorICA8L1Byb3BlcnR5R3JvdXA+Cis8L1Byb2plY3Q+Ci0t
IAoyLjEuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Cndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qu
b3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZv
L3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 09:41:57 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 09:41:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQWxx-0003PA-7q; Fri, 22 Jul 2016 09:41:57 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bQWxw-0003P4-1r
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 09:41:56 +0000
Received: from [85.158.143.35] by server-3.bemta-6.messagelabs.com id
 7B/3D-05661-36AE1975; Fri, 22 Jul 2016 09:41:55 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprOIsWRWlGSWpSXmKPExsXiVRvkqJv0amK
 4wcp/VhZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y9nSp8wFh9kqJs14w97A+IS1i5GLQ0hgFqPE
 sUdnGLsYOTlYBC6xSPxo4gFJSAi8Y5HY9P0HK0hCQiBG4trmbYwQdpnEyw9n2UFsIQFFieZrF
 9ghJq1kkni5/wVYgk1AXeL2+8XsEA12Ep9m3QSzRQRUJa4tP8YGYjMLaEk83DAPaCgHh7CAmc
 TTyykQR6hK/Nv0GGwXr4C7xNblJ5ghxshJ7J28mmUCI/8CRoZVjOrFqUVlqUW6hnpJRZnpGSW
 5iZk5uoYGZnq5qcXFiempOYlJxXrJ+bmbGIHBwwAEOxh3Pnc6xCjJwaQkyvvj6sRwIb6k/JTK
 jMTijPii0pzU4kOMMhwcShK8Ri+BcoJFqempFWmZOcAwhklLcPAoifCqgKR5iwsSc4sz0yFSp
 xiNORb8uL2WiWPL1HtrmYRY8vLzUqXEeV++ACoVACnNKM2DGwSLr0uMslLCvIxApwnxFKQW5W
 aWoMq/YhTnYFQS5u0AWciTmVcCt+8V0ClMQKfMEegHOaUkESEl1cCovzk2t0y1hFf426OSyxN
 0Tn9+zjGhS/r3je4VH1/ace+872X/5s2+Jos1Hrnar9Z/XPu0aQ+PwMkJOn7PP1zoVt2+7p7e
 8iubMhZksuXemcBRvfl71spUsRQml2uFL0+s+LH/07Upn1feVjb7xtRpJnYkSkyl5tTBJhX2o
 hneDgna9xYWC4vEKrEUZyQaajEXFScCAPsZQlGqAgAA
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-6.tower-21.messagelabs.com!1469180514!2624128!1
X-Originating-IP: [74.125.82.65]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 61684 invoked from network); 22 Jul 2016 09:41:54 -0000
Received: from mail-wm0-f65.google.com (HELO mail-wm0-f65.google.com)
 (74.125.82.65)
 by server-6.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 22 Jul 2016 09:41:54 -0000
Received: by mail-wm0-f65.google.com with SMTP id o80so5438580wme.0
 for <win-pv-devel@lists.xenproject.org>; Fri, 22 Jul 2016 02:41:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=WjUocZCGm3dY0s4DimBtZ+gTT3MYB/dQ3d+zQ5qWhiY=;
 b=jIMp3Jsu/1xTvbwqcgEk1dPq61S73y/IGbHm0R3RqOJm/5UagAJb8IpXakdG2D8kS4
 bUc3Vs7zTz7mbyxCfKakYAnsuJ0sOT1VPfmFd7s6ti1VNcYlru/Is1LzjcZXiuOAa56q
 Fz7BX8HuprkXTyubGlIVo2K1AzJrL5IyKLTvjWiP6ruKhF2csyVsoKV8r6s2TztYq3fF
 gcEYI0UsQw0iMNFO29S1Yg/NxnjELNKK8g9mW9UasXpUn9QejiNhHqw2a64fpg+q33+z
 Xr0ykLBfXMHrkFCnCsxFXJDcNIa6i8Nxsf4jksHBxkx8WIdN0N1vYKn6SE7qJih9Ebkz
 MR7Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=WjUocZCGm3dY0s4DimBtZ+gTT3MYB/dQ3d+zQ5qWhiY=;
 b=jWiW1pcAaDEZciNX/n0RUBR8PAbtL6KfKbnyCLS7ROYzXwVt+yYnbMu+D7T4S/hVwm
 wf/R226cy+qrlACi4OMLpHvFyQM1DlvVC1UGvPbOmybodTZzR/Q/F5W3yH5xf0m6xA7/
 47WNbxHMklIQscO5i24tbICmi6L9a+gPPKLKSxcdL3ZSnkBAOCVvpCOk79oiPQ6/9wm4
 yHX/Q3RDn3R3IYEgepnPgHxxpmshegIOBQwIWOxnapkOB5JVCYl+H+DOIALMfUWbiQ79
 yes4eHgHXJ9BDG2pOb8z9G8tePq+6Wx2aTI92Zt5OVvZcVbV0ReDMBm60kDPeN8Cozra
 l5Ng==
X-Gm-Message-State: ALyK8tILNmrApYUj3mgch0TPmUWIX4YzTFj/TuNJtuwqzcD8H+CuBBo4h1CtjVvPzfnMIw==
X-Received: by 10.28.56.3 with SMTP id f3mr22779064wma.31.1469180514408;
 Fri, 22 Jul 2016 02:41:54 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id b186sm11681236wmg.23.2016.07.22.02.41.53
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 22 Jul 2016 02:41:53 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Fri, 22 Jul 2016 10:41:42 +0100
Message-Id: <1469180503-10680-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 1/2] Add missing names to the INF file
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhlIHBhY2thZ2Ugc2hvdWxkIGhhdmUgYSBuYW1lIGFuZCB0aGUgWEVOVklGIGRyaXZlciBzaG91
bGQgYWxzbyBoYXZlIGEKRGlzcGxheU5hbWUuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQg
PHBhdWwuZHVycmFudEBjaXRyaXguY29tPgotLS0KIHNyYy94ZW52aWYuaW5mIHwgNCArKystCiAx
IGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0
IGEvc3JjL3hlbnZpZi5pbmYgYi9zcmMveGVudmlmLmluZgppbmRleCA4OTkyNjBlLi5mMjMwZWVh
IDEwMDY0NAotLS0gYS9zcmMveGVudmlmLmluZgorKysgYi9zcmMveGVudmlmLmluZgpAQCAtMzYs
NiArMzYsNyBAQCBDbGFzc0dVSUQ9ezRkMzZlOTdkLWUzMjUtMTFjZS1iZmMxLTA4MDAyYmUxMDMx
OH0KIFByb3ZpZGVyPSVWZW5kb3IlCiBDYXRhbG9nRmlsZT14ZW52aWYuY2F0CiBEcml2ZXJWZXI9
MDEvMDEvMTkwMCwwLjAuMC4wCitEcml2ZXJQYWNrYWdlRGlzcGxheU5hbWU9JURpc2tEZXNjJQog
CiBbRGVzdGluYXRpb25EaXJzXSAKIERlZmF1bHREZXN0RGlyPTEyIApAQCAtNzEsNyArNzIsOCBA
QCB4ZW52aWYuc3lzCiBbWGVuVmlmX0luc3QuU2VydmljZXNdIAogQWRkU2VydmljZT14ZW52aWYs
MHgwMixYZW5WaWZfU2VydmljZSwKIAotW1hlblZpZl9TZXJ2aWNlXSAKK1tYZW5WaWZfU2Vydmlj
ZV0KK0Rpc3BsYXlOYW1lPSVYZW5WaWZEZXNjJQogU2VydmljZVR5cGU9JVNFUlZJQ0VfS0VSTkVM
X0RSSVZFUiUgCiBTdGFydFR5cGU9JVNFUlZJQ0VfREVNQU5EX1NUQVJUJSAKIEVycm9yQ29udHJv
bD0lU0VSVklDRV9FUlJPUl9OT1JNQUwlIAotLSAKMi4xLjEKCgpfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndp
bi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qu
b3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 09:41:57 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 09:41:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQWxx-0003PA-7q; Fri, 22 Jul 2016 09:41:57 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bQWxw-0003P4-1r
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 09:41:56 +0000
Received: from [85.158.143.35] by server-3.bemta-6.messagelabs.com id
 7B/3D-05661-36AE1975; Fri, 22 Jul 2016 09:41:55 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprOIsWRWlGSWpSXmKPExsXiVRvkqJv0amK
 4wcp/VhZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y9nSp8wFh9kqJs14w97A+IS1i5GLQ0hgFqPE
 sUdnGLsYOTlYBC6xSPxo4gFJSAi8Y5HY9P0HK0hCQiBG4trmbYwQdpnEyw9n2UFsIQFFieZrF
 9ghJq1kkni5/wVYgk1AXeL2+8XsEA12Ep9m3QSzRQRUJa4tP8YGYjMLaEk83DAPaCgHh7CAmc
 TTyykQR6hK/Nv0GGwXr4C7xNblJ5ghxshJ7J28mmUCI/8CRoZVjOrFqUVlqUW6hnpJRZnpGSW
 5iZk5uoYGZnq5qcXFiempOYlJxXrJ+bmbGIHBwwAEOxh3Pnc6xCjJwaQkyvvj6sRwIb6k/JTK
 jMTijPii0pzU4kOMMhwcShK8Ri+BcoJFqempFWmZOcAwhklLcPAoifCqgKR5iwsSc4sz0yFSp
 xiNORb8uL2WiWPL1HtrmYRY8vLzUqXEeV++ACoVACnNKM2DGwSLr0uMslLCvIxApwnxFKQW5W
 aWoMq/YhTnYFQS5u0AWciTmVcCt+8V0ClMQKfMEegHOaUkESEl1cCovzk2t0y1hFf426OSyxN
 0Tn9+zjGhS/r3je4VH1/ace+872X/5s2+Jos1Hrnar9Z/XPu0aQ+PwMkJOn7PP1zoVt2+7p7e
 8iubMhZksuXemcBRvfl71spUsRQml2uFL0+s+LH/07Upn1feVjb7xtRpJnYkSkyl5tTBJhX2o
 hneDgna9xYWC4vEKrEUZyQaajEXFScCAPsZQlGqAgAA
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-6.tower-21.messagelabs.com!1469180514!2624128!1
X-Originating-IP: [74.125.82.65]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 61684 invoked from network); 22 Jul 2016 09:41:54 -0000
Received: from mail-wm0-f65.google.com (HELO mail-wm0-f65.google.com)
 (74.125.82.65)
 by server-6.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 22 Jul 2016 09:41:54 -0000
Received: by mail-wm0-f65.google.com with SMTP id o80so5438580wme.0
 for <win-pv-devel@lists.xenproject.org>; Fri, 22 Jul 2016 02:41:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=WjUocZCGm3dY0s4DimBtZ+gTT3MYB/dQ3d+zQ5qWhiY=;
 b=jIMp3Jsu/1xTvbwqcgEk1dPq61S73y/IGbHm0R3RqOJm/5UagAJb8IpXakdG2D8kS4
 bUc3Vs7zTz7mbyxCfKakYAnsuJ0sOT1VPfmFd7s6ti1VNcYlru/Is1LzjcZXiuOAa56q
 Fz7BX8HuprkXTyubGlIVo2K1AzJrL5IyKLTvjWiP6ruKhF2csyVsoKV8r6s2TztYq3fF
 gcEYI0UsQw0iMNFO29S1Yg/NxnjELNKK8g9mW9UasXpUn9QejiNhHqw2a64fpg+q33+z
 Xr0ykLBfXMHrkFCnCsxFXJDcNIa6i8Nxsf4jksHBxkx8WIdN0N1vYKn6SE7qJih9Ebkz
 MR7Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=WjUocZCGm3dY0s4DimBtZ+gTT3MYB/dQ3d+zQ5qWhiY=;
 b=jWiW1pcAaDEZciNX/n0RUBR8PAbtL6KfKbnyCLS7ROYzXwVt+yYnbMu+D7T4S/hVwm
 wf/R226cy+qrlACi4OMLpHvFyQM1DlvVC1UGvPbOmybodTZzR/Q/F5W3yH5xf0m6xA7/
 47WNbxHMklIQscO5i24tbICmi6L9a+gPPKLKSxcdL3ZSnkBAOCVvpCOk79oiPQ6/9wm4
 yHX/Q3RDn3R3IYEgepnPgHxxpmshegIOBQwIWOxnapkOB5JVCYl+H+DOIALMfUWbiQ79
 yes4eHgHXJ9BDG2pOb8z9G8tePq+6Wx2aTI92Zt5OVvZcVbV0ReDMBm60kDPeN8Cozra
 l5Ng==
X-Gm-Message-State: ALyK8tILNmrApYUj3mgch0TPmUWIX4YzTFj/TuNJtuwqzcD8H+CuBBo4h1CtjVvPzfnMIw==
X-Received: by 10.28.56.3 with SMTP id f3mr22779064wma.31.1469180514408;
 Fri, 22 Jul 2016 02:41:54 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id b186sm11681236wmg.23.2016.07.22.02.41.53
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 22 Jul 2016 02:41:53 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Fri, 22 Jul 2016 10:41:42 +0100
Message-Id: <1469180503-10680-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 1/2] Add missing names to the INF file
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhlIHBhY2thZ2Ugc2hvdWxkIGhhdmUgYSBuYW1lIGFuZCB0aGUgWEVOVklGIGRyaXZlciBzaG91
bGQgYWxzbyBoYXZlIGEKRGlzcGxheU5hbWUuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQg
PHBhdWwuZHVycmFudEBjaXRyaXguY29tPgotLS0KIHNyYy94ZW52aWYuaW5mIHwgNCArKystCiAx
IGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0
IGEvc3JjL3hlbnZpZi5pbmYgYi9zcmMveGVudmlmLmluZgppbmRleCA4OTkyNjBlLi5mMjMwZWVh
IDEwMDY0NAotLS0gYS9zcmMveGVudmlmLmluZgorKysgYi9zcmMveGVudmlmLmluZgpAQCAtMzYs
NiArMzYsNyBAQCBDbGFzc0dVSUQ9ezRkMzZlOTdkLWUzMjUtMTFjZS1iZmMxLTA4MDAyYmUxMDMx
OH0KIFByb3ZpZGVyPSVWZW5kb3IlCiBDYXRhbG9nRmlsZT14ZW52aWYuY2F0CiBEcml2ZXJWZXI9
MDEvMDEvMTkwMCwwLjAuMC4wCitEcml2ZXJQYWNrYWdlRGlzcGxheU5hbWU9JURpc2tEZXNjJQog
CiBbRGVzdGluYXRpb25EaXJzXSAKIERlZmF1bHREZXN0RGlyPTEyIApAQCAtNzEsNyArNzIsOCBA
QCB4ZW52aWYuc3lzCiBbWGVuVmlmX0luc3QuU2VydmljZXNdIAogQWRkU2VydmljZT14ZW52aWYs
MHgwMixYZW5WaWZfU2VydmljZSwKIAotW1hlblZpZl9TZXJ2aWNlXSAKK1tYZW5WaWZfU2Vydmlj
ZV0KK0Rpc3BsYXlOYW1lPSVYZW5WaWZEZXNjJQogU2VydmljZVR5cGU9JVNFUlZJQ0VfS0VSTkVM
X0RSSVZFUiUgCiBTdGFydFR5cGU9JVNFUlZJQ0VfREVNQU5EX1NUQVJUJSAKIEVycm9yQ29udHJv
bD0lU0VSVklDRV9FUlJPUl9OT1JNQUwlIAotLSAKMi4xLjEKCgpfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndp
bi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qu
b3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 09:42:00 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 09:42:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQWy0-0003Pt-9J; Fri, 22 Jul 2016 09:42:00 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bQWxy-0003Pb-Ip
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 09:41:58 +0000
Received: from [193.109.254.147] by server-2.bemta-14.messagelabs.com id
 12/EF-30017-46AE1975; Fri, 22 Jul 2016 09:41:56 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrFIsWRWlGSWpSXmKPExsXiVRvkopvyamK
 4wdVuDos/ixMdGD0Of7jCEsAYxZqZl5RfkcCaMXPJD/aCZvmKxkUfWBsY74l2MXJxCAnMYpTY
 //0RaxcjJweLwEsWiUk/s0ASEgL9rBLTPv1nB0lICMRInJmwnhHCrpRoO/GJBcQWElCUaL52g
 R1i0komibsnl4Ml2ATUJW6/XwzVbCfxadZNMFtEQFXi2vJjbCA2s4CWxMMN88CGCguESTR37W
 eEuEJV4v6/NmYQm1fAXWLut+lQi+Uk9k5eDTafU8BD4ueTBUA2B9Bid4mv230nMAouYGRYxah
 RnFpUllqka2Sil1SUmZ5RkpuYmaNraGiil5taXJyYnpqTmFSsl5yfu4kRGG71DAyMOxh/XvI7
 xCjJwaQkyvvj6sRwIb6k/JTKjMTijPii0pzU4kOMMhwcShK8Ri+BcoJFqempFWmZOcDAh0lLc
 PAoifCqgKR5iwsSc4sz0yFSpxh1ObZMvbeWSYglLz8vVUqc1x+kSACkKKM0D24ELAovMcpKCf
 MyMjAwCPEUpBblZpagyr9iFOdgVBLm9QaZwpOZVwK36RXQEUxAR8wR6Ac5oiQRISXVwNjnqsG
 qY+TBGXNTS2Ly/Ei16fn/gqr0057kzTRa+OfrY97t3b/fzUk/FnpSLOff4ff/Lfn2fTsR8uGx
 x/c/stuvMn6tfP9L0mfzVBnPxCtz5N4ae5Q/yz6/KJCVZe9uMd5fTeKllxrfmciutp1tx8O/S
 qxZ4Fd3skM++70ZbzfOXnotJFD7xGwlluKMREMt5qLiRAAWuOqRvQIAAA==
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-6.tower-27.messagelabs.com!1469180515!55437765!1
X-Originating-IP: [74.125.82.68]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 860 invoked from network); 22 Jul 2016 09:41:55 -0000
Received: from mail-wm0-f68.google.com (HELO mail-wm0-f68.google.com)
 (74.125.82.68)
 by server-6.tower-27.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 22 Jul 2016 09:41:55 -0000
Received: by mail-wm0-f68.google.com with SMTP id o80so5438628wme.0
 for <win-pv-devel@lists.xenproject.org>; Fri, 22 Jul 2016 02:41:55 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id:in-reply-to:references;
 bh=/gaXLn/WVrdTA1EebAzhGkUBnQv6+AxNWTq+F2OdRXs=;
 b=e3VFziGKDbYHsQsxlKl9mi1A9fBycQjBwzELLxceRwSztdEdPHQQKXWB2cF5NdVv4G
 Vqwky5dA+3LmSp4mjOf75ASzD3p9HA8pHiPIYoOqp/WGvbdNx/bY9R2DCzrpgpiH8S2c
 wqHpTJNjwUGN8NpBaEaT1fMRwhx/TLm25m5HLRkudewJS99awnn7GYwlp+MJSDFr7Xzm
 TRwJQ6LDTveuwZnufLylu+5u7pL706aEavpdTu7GBm1lx9gNyL+ILyJTB27XjReUGIae
 jRpGZlfjbFuQW/5nefa9Sqi94M8CwnQMVdAWggqz7S/FseymFRR2yx4Cdp4T5k5A1Eb/
 vFfg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
 :references;
 bh=/gaXLn/WVrdTA1EebAzhGkUBnQv6+AxNWTq+F2OdRXs=;
 b=lhTVPQmAFgjVH5mdaAfsYwJlqcolYl0ZC5ahe8jOy+SaJa3oKRwG3oz8BLehTsZk9m
 GuJwM3T1gjIZeVheJ/lL23ybaQg+opBomBnkl87NkpGUDHesCqoPCR2PKpiSVdkGDPqV
 xN1D3Ur2b/zw+iqbkNS8Qa8B8uhHIYQl1c8gtxoo5pM45v8+NgWssgso4ZnZGeZs3Mj5
 wH+6s1mtrfkVjXRpaQ1WPsuMfuGTvxnYkrkHC5zileUb3VcnLvzelg9sjZ2CcXFKjN3H
 TMaiRQCDAThguID37M7oXfujHqbkm1JT8oeb/GlBt3RToJRPArjTcFguvqYQrbGprkga
 T3mw==
X-Gm-Message-State: AEkoouvu6joscV0VeLhO125o9adP7eACzK/x8QxfQXxTpYoyV+6LxdYmJ1DXQ2jhdNoPDQ==
X-Received: by 10.194.192.195 with SMTP id hi3mr44800wjc.108.1469180515359;
 Fri, 22 Jul 2016 02:41:55 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id b186sm11681236wmg.23.2016.07.22.02.41.54
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 22 Jul 2016 02:41:54 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Fri, 22 Jul 2016 10:41:43 +0100
Message-Id: <1469180503-10680-2-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1469180503-10680-1-git-send-email-paul.durrant@citrix.com>
References: <1469180503-10680-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 2/2] Use XENBUS_MONITOR service to request
	reboot rather than SetupAPI
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhpcyBtZWFucyBtb3JlIGNvZGUgY2FuIGJlIHJlbW92ZWQgZnJvbSBYRU5ORVQncyBjby1pbnN0
YWxsZXIgYW5kIHdlIGdldCBhCm1vcmUgbWVhbmluZ2Z1bCBtZXNzYWdlIGRpc3BsYXllZCB0byB0
aGUgdXNlci4KClNpZ25lZC1vZmYtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJp
eC5jb20+Ci0tLQogc3JjL3hlbnZpZi9kcml2ZXIuYyB8IDkxICsrKysrKysrKysrKysrKysrKysr
KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNTAgaW5z
ZXJ0aW9ucygrKSwgNDEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3hlbnZpZi9kcml2
ZXIuYyBiL3NyYy94ZW52aWYvZHJpdmVyLmMKaW5kZXggOGU2MTQyMC4uMjdkNDkxMSAxMDA2NDQK
LS0tIGEvc3JjL3hlbnZpZi9kcml2ZXIuYworKysgYi9zcmMveGVudmlmL2RyaXZlci5jCkBAIC00
NSw3ICs0NSw2IEBACiB0eXBlZGVmIHN0cnVjdCBfWEVOVklGX0RSSVZFUiB7CiAgICAgUERSSVZF
Ul9PQkpFQ1QgICAgICBEcml2ZXJPYmplY3Q7CiAgICAgSEFORExFICAgICAgICAgICAgICBQYXJh
bWV0ZXJzS2V5OwotICAgIEhBTkRMRSAgICAgICAgICAgICAgU3RhdHVzS2V5OwogICAgIEJPT0xF
QU4gICAgICAgICAgICAgTmVlZFJlYm9vdDsKIH0gWEVOVklGX0RSSVZFUiwgKlBYRU5WSUZfRFJJ
VkVSOwogCkBAIC0xMTcsMjAgKzExNiw1OCBAQCBEcml2ZXJHZXRQYXJhbWV0ZXJzS2V5KAogICAg
IHJldHVybiBfX0RyaXZlckdldFBhcmFtZXRlcnNLZXkoKTsKIH0KIAotc3RhdGljIEZPUkNFSU5M
SU5FIFZPSUQKLV9fRHJpdmVyU2V0U3RhdHVzS2V5KAotICAgIElOICBIQU5ETEUgIEtleQotICAg
ICkKLXsKLSAgICBEcml2ZXIuU3RhdHVzS2V5ID0gS2V5OwotfQorI2RlZmluZSBTRVJWSUNFU19Q
QVRIICJcXFJlZ2lzdHJ5XFxNYWNoaW5lXFxTWVNURU1cXEN1cnJlbnRDb250cm9sU2V0XFxTZXJ2
aWNlcyIKIAotc3RhdGljIEZPUkNFSU5MSU5FIEhBTkRMRQotX19Ecml2ZXJHZXRTdGF0dXNLZXko
CisjZGVmaW5lIFNFUlZJQ0VfS0VZKF9OYW1lKSBcCisgICAgICAgIFNFUlZJQ0VTX1BBVEggIyMg
IlxcIiAjIyAjX05hbWUKKworI2RlZmluZSBSRVFVRVNUX0tFWSBcCisgICAgICAgIFNFUlZJQ0Vf
S0VZKFhFTkJVU19NT05JVE9SKSAjIyAiXFxSZXF1ZXN0IgorCitzdGF0aWMgRk9SQ0VJTkxJTkUg
Vk9JRAorX19Ecml2ZXJSZXF1ZXN0UmVib290KAogICAgIFZPSUQKICAgICApCiB7Ci0gICAgcmV0
dXJuIERyaXZlci5TdGF0dXNLZXk7CisgICAgSEFORExFICAgICAgUmVxdWVzdEtleTsKKyAgICBB
TlNJX1NUUklORyBBbnNpWzJdOworICAgIE5UU1RBVFVTICAgIHN0YXR1czsKKworICAgIEluZm8o
Ij09PT0+XG4iKTsKKworICAgIEFTU0VSVDNVKEtlR2V0Q3VycmVudElycWwoKSwgPT0sIFBBU1NJ
VkVfTEVWRUwpOworCisgICAgc3RhdHVzID0gUmVnaXN0cnlPcGVuU3ViS2V5KE5VTEwsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFUVVFU1RfS0VZLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBLRVlfQUxMX0FDQ0VTUywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJlJlcXVlc3RLZXkpOworICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQorICAg
ICAgICBnb3RvIGZhaWwxOworCisgICAgUnRsWmVyb01lbW9yeShBbnNpLCBzaXplb2YgKEFuc2kp
KTsKKworICAgIFJ0bEluaXRBbnNpU3RyaW5nKCZBbnNpWzBdLCAiWEVOVklGIik7CisKKyAgICBz
dGF0dXMgPSBSZWdpc3RyeVVwZGF0ZVN6VmFsdWUoUmVxdWVzdEtleSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIlJlYm9vdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFJFR19TWiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQW5z
aSk7CisgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCisgICAgICAgIGdvdG8gZmFpbDI7CisK
KyAgICBSZWdpc3RyeUNsb3NlS2V5KFJlcXVlc3RLZXkpOworCisgICAgSW5mbygiPD09PT1cbiIp
OworCisgICAgcmV0dXJuOworCitmYWlsMjoKKyAgICBFcnJvcigiZmFpbDJcbiIpOworCisgICAg
UmVnaXN0cnlDbG9zZUtleShSZXF1ZXN0S2V5KTsKKworZmFpbDE6CisgICAgRXJyb3IoImZhaWwx
ICglMDh4KVxuIiwgc3RhdHVzKTsKIH0KIAogVk9JRApAQCAtMTM4LDE2ICsxNzUsMTEgQEAgRHJp
dmVyUmVxdWVzdFJlYm9vdCgKICAgICBWT0lECiAgICAgKQogewotICAgIEluZm8oIjw9PT0+XG4i
KTsKLQotICAgIEFTU0VSVDNVKEtlR2V0Q3VycmVudElycWwoKSwgPT0sIFBBU1NJVkVfTEVWRUwp
OwotCiAgICAgaWYgKERyaXZlci5OZWVkUmVib290KQogICAgICAgICByZXR1cm47CiAKLSAgICAo
Vk9JRCkgUmVnaXN0cnlVcGRhdGVEd29yZFZhbHVlKF9fRHJpdmVyR2V0U3RhdHVzS2V5KCksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTmVlZFJlYm9vdCIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxKTsKKyAgICBfX0RyaXZlclJlcXVlc3RSZWJv
b3QoKTsKKwogICAgIERyaXZlci5OZWVkUmVib290ID0gVFJVRTsKIH0KIApAQCAtMTU5LDcgKzE5
MSw2IEBAIERyaXZlclVubG9hZCgKICAgICApCiB7CiAgICAgSEFORExFICAgICAgICAgICAgICBQ
YXJhbWV0ZXJzS2V5OwotICAgIEhBTkRMRSAgICAgICAgICAgICAgU3RhdHVzS2V5OwogCiAgICAg
QVNTRVJUM1AoRHJpdmVyT2JqZWN0LCA9PSwgX19Ecml2ZXJHZXREcml2ZXJPYmplY3QoKSk7CiAK
QEAgLTE2NywxMSArMTk4LDYgQEAgRHJpdmVyVW5sb2FkKAogCiAgICAgRHJpdmVyLk5lZWRSZWJv
b3QgPSBGQUxTRTsKIAotICAgIFN0YXR1c0tleSA9IF9fRHJpdmVyR2V0U3RhdHVzS2V5KCk7Ci0g
ICAgX19Ecml2ZXJTZXRTdGF0dXNLZXkoTlVMTCk7Ci0KLSAgICBSZWdpc3RyeUNsb3NlS2V5KFN0
YXR1c0tleSk7Ci0KICAgICBQYXJhbWV0ZXJzS2V5ID0gX19Ecml2ZXJHZXRQYXJhbWV0ZXJzS2V5
KCk7CiAgICAgX19Ecml2ZXJTZXRQYXJhbWV0ZXJzS2V5KE5VTEwpOwogCkBAIC0yNzgsNyArMzA0
LDYgQEAgRHJpdmVyRW50cnkoCiB7CiAgICAgSEFORExFICAgICAgICAgICAgICBTZXJ2aWNlS2V5
OwogICAgIEhBTkRMRSAgICAgICAgICAgICAgUGFyYW1ldGVyc0tleTsKLSAgICBIQU5ETEUgICAg
ICAgICAgICAgIFN0YXR1c0tleTsKICAgICBVTE9ORyAgICAgICAgICAgICAgIEluZGV4OwogICAg
IE5UU1RBVFVTICAgICAgICAgICAgc3RhdHVzOwogCkBAIC0zMTksMTUgKzM0NCw2IEBAIERyaXZl
ckVudHJ5KAogCiAgICAgX19Ecml2ZXJTZXRQYXJhbWV0ZXJzS2V5KFBhcmFtZXRlcnNLZXkpOwog
Ci0gICAgc3RhdHVzID0gUmVnaXN0cnlDcmVhdGVTdWJLZXkoU2VydmljZUtleSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiU3RhdHVzIiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBSRUdfT1BUSU9OX1ZPTEFUSUxFLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICZTdGF0dXNLZXkpOwotICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQot
ICAgICAgICBnb3RvIGZhaWw0OwotCi0gICAgX19Ecml2ZXJTZXRTdGF0dXNLZXkoU3RhdHVzS2V5
KTsKLQogICAgIFJlZ2lzdHJ5Q2xvc2VLZXkoU2VydmljZUtleSk7CiAKICAgICBEcml2ZXJPYmpl
Y3QtPkRyaXZlckV4dGVuc2lvbi0+QWRkRGV2aWNlID0gQWRkRGV2aWNlOwpAQCAtMzQyLDEzICsz
NTgsNiBAQCBEcml2ZXJFbnRyeSgKIAogICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsKIAotZmFp
bDQ6Ci0gICAgRXJyb3IoImZhaWw0XG4iKTsKLQotICAgIF9fRHJpdmVyU2V0UGFyYW1ldGVyc0tl
eShOVUxMKTsKLQotICAgIFJlZ2lzdHJ5Q2xvc2VLZXkoUGFyYW1ldGVyc0tleSk7Ci0KIGZhaWwz
OgogICAgIEVycm9yKCJmYWlsM1xuIik7CiAKLS0gCjIuMS4xCgoKX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3
aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0
Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 09:42:00 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 09:42:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQWy0-0003Pt-9J; Fri, 22 Jul 2016 09:42:00 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bQWxy-0003Pb-Ip
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 09:41:58 +0000
Received: from [193.109.254.147] by server-2.bemta-14.messagelabs.com id
 12/EF-30017-46AE1975; Fri, 22 Jul 2016 09:41:56 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrFIsWRWlGSWpSXmKPExsXiVRvkopvyamK
 4wdVuDos/ixMdGD0Of7jCEsAYxZqZl5RfkcCaMXPJD/aCZvmKxkUfWBsY74l2MXJxCAnMYpTY
 //0RaxcjJweLwEsWiUk/s0ASEgL9rBLTPv1nB0lICMRInJmwnhHCrpRoO/GJBcQWElCUaL52g
 R1i0komibsnl4Ml2ATUJW6/XwzVbCfxadZNMFtEQFXi2vJjbCA2s4CWxMMN88CGCguESTR37W
 eEuEJV4v6/NmYQm1fAXWLut+lQi+Uk9k5eDTafU8BD4ueTBUA2B9Bid4mv230nMAouYGRYxah
 RnFpUllqka2Sil1SUmZ5RkpuYmaNraGiil5taXJyYnpqTmFSsl5yfu4kRGG71DAyMOxh/XvI7
 xCjJwaQkyvvj6sRwIb6k/JTKjMTijPii0pzU4kOMMhwcShK8Ri+BcoJFqempFWmZOcDAh0lLc
 PAoifCqgKR5iwsSc4sz0yFSpxh1ObZMvbeWSYglLz8vVUqc1x+kSACkKKM0D24ELAovMcpKCf
 MyMjAwCPEUpBblZpagyr9iFOdgVBLm9QaZwpOZVwK36RXQEUxAR8wR6Ac5oiQRISXVwNjnqsG
 qY+TBGXNTS2Ly/Ei16fn/gqr0057kzTRa+OfrY97t3b/fzUk/FnpSLOff4ff/Lfn2fTsR8uGx
 x/c/stuvMn6tfP9L0mfzVBnPxCtz5N4ae5Q/yz6/KJCVZe9uMd5fTeKllxrfmciutp1tx8O/S
 qxZ4Fd3skM++70ZbzfOXnotJFD7xGwlluKMREMt5qLiRAAWuOqRvQIAAA==
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-6.tower-27.messagelabs.com!1469180515!55437765!1
X-Originating-IP: [74.125.82.68]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 860 invoked from network); 22 Jul 2016 09:41:55 -0000
Received: from mail-wm0-f68.google.com (HELO mail-wm0-f68.google.com)
 (74.125.82.68)
 by server-6.tower-27.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 22 Jul 2016 09:41:55 -0000
Received: by mail-wm0-f68.google.com with SMTP id o80so5438628wme.0
 for <win-pv-devel@lists.xenproject.org>; Fri, 22 Jul 2016 02:41:55 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id:in-reply-to:references;
 bh=/gaXLn/WVrdTA1EebAzhGkUBnQv6+AxNWTq+F2OdRXs=;
 b=e3VFziGKDbYHsQsxlKl9mi1A9fBycQjBwzELLxceRwSztdEdPHQQKXWB2cF5NdVv4G
 Vqwky5dA+3LmSp4mjOf75ASzD3p9HA8pHiPIYoOqp/WGvbdNx/bY9R2DCzrpgpiH8S2c
 wqHpTJNjwUGN8NpBaEaT1fMRwhx/TLm25m5HLRkudewJS99awnn7GYwlp+MJSDFr7Xzm
 TRwJQ6LDTveuwZnufLylu+5u7pL706aEavpdTu7GBm1lx9gNyL+ILyJTB27XjReUGIae
 jRpGZlfjbFuQW/5nefa9Sqi94M8CwnQMVdAWggqz7S/FseymFRR2yx4Cdp4T5k5A1Eb/
 vFfg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
 :references;
 bh=/gaXLn/WVrdTA1EebAzhGkUBnQv6+AxNWTq+F2OdRXs=;
 b=lhTVPQmAFgjVH5mdaAfsYwJlqcolYl0ZC5ahe8jOy+SaJa3oKRwG3oz8BLehTsZk9m
 GuJwM3T1gjIZeVheJ/lL23ybaQg+opBomBnkl87NkpGUDHesCqoPCR2PKpiSVdkGDPqV
 xN1D3Ur2b/zw+iqbkNS8Qa8B8uhHIYQl1c8gtxoo5pM45v8+NgWssgso4ZnZGeZs3Mj5
 wH+6s1mtrfkVjXRpaQ1WPsuMfuGTvxnYkrkHC5zileUb3VcnLvzelg9sjZ2CcXFKjN3H
 TMaiRQCDAThguID37M7oXfujHqbkm1JT8oeb/GlBt3RToJRPArjTcFguvqYQrbGprkga
 T3mw==
X-Gm-Message-State: AEkoouvu6joscV0VeLhO125o9adP7eACzK/x8QxfQXxTpYoyV+6LxdYmJ1DXQ2jhdNoPDQ==
X-Received: by 10.194.192.195 with SMTP id hi3mr44800wjc.108.1469180515359;
 Fri, 22 Jul 2016 02:41:55 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id b186sm11681236wmg.23.2016.07.22.02.41.54
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 22 Jul 2016 02:41:54 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Fri, 22 Jul 2016 10:41:43 +0100
Message-Id: <1469180503-10680-2-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1469180503-10680-1-git-send-email-paul.durrant@citrix.com>
References: <1469180503-10680-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 2/2] Use XENBUS_MONITOR service to request
	reboot rather than SetupAPI
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhpcyBtZWFucyBtb3JlIGNvZGUgY2FuIGJlIHJlbW92ZWQgZnJvbSBYRU5ORVQncyBjby1pbnN0
YWxsZXIgYW5kIHdlIGdldCBhCm1vcmUgbWVhbmluZ2Z1bCBtZXNzYWdlIGRpc3BsYXllZCB0byB0
aGUgdXNlci4KClNpZ25lZC1vZmYtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJp
eC5jb20+Ci0tLQogc3JjL3hlbnZpZi9kcml2ZXIuYyB8IDkxICsrKysrKysrKysrKysrKysrKysr
KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNTAgaW5z
ZXJ0aW9ucygrKSwgNDEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3hlbnZpZi9kcml2
ZXIuYyBiL3NyYy94ZW52aWYvZHJpdmVyLmMKaW5kZXggOGU2MTQyMC4uMjdkNDkxMSAxMDA2NDQK
LS0tIGEvc3JjL3hlbnZpZi9kcml2ZXIuYworKysgYi9zcmMveGVudmlmL2RyaXZlci5jCkBAIC00
NSw3ICs0NSw2IEBACiB0eXBlZGVmIHN0cnVjdCBfWEVOVklGX0RSSVZFUiB7CiAgICAgUERSSVZF
Ul9PQkpFQ1QgICAgICBEcml2ZXJPYmplY3Q7CiAgICAgSEFORExFICAgICAgICAgICAgICBQYXJh
bWV0ZXJzS2V5OwotICAgIEhBTkRMRSAgICAgICAgICAgICAgU3RhdHVzS2V5OwogICAgIEJPT0xF
QU4gICAgICAgICAgICAgTmVlZFJlYm9vdDsKIH0gWEVOVklGX0RSSVZFUiwgKlBYRU5WSUZfRFJJ
VkVSOwogCkBAIC0xMTcsMjAgKzExNiw1OCBAQCBEcml2ZXJHZXRQYXJhbWV0ZXJzS2V5KAogICAg
IHJldHVybiBfX0RyaXZlckdldFBhcmFtZXRlcnNLZXkoKTsKIH0KIAotc3RhdGljIEZPUkNFSU5M
SU5FIFZPSUQKLV9fRHJpdmVyU2V0U3RhdHVzS2V5KAotICAgIElOICBIQU5ETEUgIEtleQotICAg
ICkKLXsKLSAgICBEcml2ZXIuU3RhdHVzS2V5ID0gS2V5OwotfQorI2RlZmluZSBTRVJWSUNFU19Q
QVRIICJcXFJlZ2lzdHJ5XFxNYWNoaW5lXFxTWVNURU1cXEN1cnJlbnRDb250cm9sU2V0XFxTZXJ2
aWNlcyIKIAotc3RhdGljIEZPUkNFSU5MSU5FIEhBTkRMRQotX19Ecml2ZXJHZXRTdGF0dXNLZXko
CisjZGVmaW5lIFNFUlZJQ0VfS0VZKF9OYW1lKSBcCisgICAgICAgIFNFUlZJQ0VTX1BBVEggIyMg
IlxcIiAjIyAjX05hbWUKKworI2RlZmluZSBSRVFVRVNUX0tFWSBcCisgICAgICAgIFNFUlZJQ0Vf
S0VZKFhFTkJVU19NT05JVE9SKSAjIyAiXFxSZXF1ZXN0IgorCitzdGF0aWMgRk9SQ0VJTkxJTkUg
Vk9JRAorX19Ecml2ZXJSZXF1ZXN0UmVib290KAogICAgIFZPSUQKICAgICApCiB7Ci0gICAgcmV0
dXJuIERyaXZlci5TdGF0dXNLZXk7CisgICAgSEFORExFICAgICAgUmVxdWVzdEtleTsKKyAgICBB
TlNJX1NUUklORyBBbnNpWzJdOworICAgIE5UU1RBVFVTICAgIHN0YXR1czsKKworICAgIEluZm8o
Ij09PT0+XG4iKTsKKworICAgIEFTU0VSVDNVKEtlR2V0Q3VycmVudElycWwoKSwgPT0sIFBBU1NJ
VkVfTEVWRUwpOworCisgICAgc3RhdHVzID0gUmVnaXN0cnlPcGVuU3ViS2V5KE5VTEwsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFUVVFU1RfS0VZLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBLRVlfQUxMX0FDQ0VTUywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJlJlcXVlc3RLZXkpOworICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQorICAg
ICAgICBnb3RvIGZhaWwxOworCisgICAgUnRsWmVyb01lbW9yeShBbnNpLCBzaXplb2YgKEFuc2kp
KTsKKworICAgIFJ0bEluaXRBbnNpU3RyaW5nKCZBbnNpWzBdLCAiWEVOVklGIik7CisKKyAgICBz
dGF0dXMgPSBSZWdpc3RyeVVwZGF0ZVN6VmFsdWUoUmVxdWVzdEtleSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIlJlYm9vdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFJFR19TWiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQW5z
aSk7CisgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCisgICAgICAgIGdvdG8gZmFpbDI7CisK
KyAgICBSZWdpc3RyeUNsb3NlS2V5KFJlcXVlc3RLZXkpOworCisgICAgSW5mbygiPD09PT1cbiIp
OworCisgICAgcmV0dXJuOworCitmYWlsMjoKKyAgICBFcnJvcigiZmFpbDJcbiIpOworCisgICAg
UmVnaXN0cnlDbG9zZUtleShSZXF1ZXN0S2V5KTsKKworZmFpbDE6CisgICAgRXJyb3IoImZhaWwx
ICglMDh4KVxuIiwgc3RhdHVzKTsKIH0KIAogVk9JRApAQCAtMTM4LDE2ICsxNzUsMTEgQEAgRHJp
dmVyUmVxdWVzdFJlYm9vdCgKICAgICBWT0lECiAgICAgKQogewotICAgIEluZm8oIjw9PT0+XG4i
KTsKLQotICAgIEFTU0VSVDNVKEtlR2V0Q3VycmVudElycWwoKSwgPT0sIFBBU1NJVkVfTEVWRUwp
OwotCiAgICAgaWYgKERyaXZlci5OZWVkUmVib290KQogICAgICAgICByZXR1cm47CiAKLSAgICAo
Vk9JRCkgUmVnaXN0cnlVcGRhdGVEd29yZFZhbHVlKF9fRHJpdmVyR2V0U3RhdHVzS2V5KCksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTmVlZFJlYm9vdCIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxKTsKKyAgICBfX0RyaXZlclJlcXVlc3RSZWJv
b3QoKTsKKwogICAgIERyaXZlci5OZWVkUmVib290ID0gVFJVRTsKIH0KIApAQCAtMTU5LDcgKzE5
MSw2IEBAIERyaXZlclVubG9hZCgKICAgICApCiB7CiAgICAgSEFORExFICAgICAgICAgICAgICBQ
YXJhbWV0ZXJzS2V5OwotICAgIEhBTkRMRSAgICAgICAgICAgICAgU3RhdHVzS2V5OwogCiAgICAg
QVNTRVJUM1AoRHJpdmVyT2JqZWN0LCA9PSwgX19Ecml2ZXJHZXREcml2ZXJPYmplY3QoKSk7CiAK
QEAgLTE2NywxMSArMTk4LDYgQEAgRHJpdmVyVW5sb2FkKAogCiAgICAgRHJpdmVyLk5lZWRSZWJv
b3QgPSBGQUxTRTsKIAotICAgIFN0YXR1c0tleSA9IF9fRHJpdmVyR2V0U3RhdHVzS2V5KCk7Ci0g
ICAgX19Ecml2ZXJTZXRTdGF0dXNLZXkoTlVMTCk7Ci0KLSAgICBSZWdpc3RyeUNsb3NlS2V5KFN0
YXR1c0tleSk7Ci0KICAgICBQYXJhbWV0ZXJzS2V5ID0gX19Ecml2ZXJHZXRQYXJhbWV0ZXJzS2V5
KCk7CiAgICAgX19Ecml2ZXJTZXRQYXJhbWV0ZXJzS2V5KE5VTEwpOwogCkBAIC0yNzgsNyArMzA0
LDYgQEAgRHJpdmVyRW50cnkoCiB7CiAgICAgSEFORExFICAgICAgICAgICAgICBTZXJ2aWNlS2V5
OwogICAgIEhBTkRMRSAgICAgICAgICAgICAgUGFyYW1ldGVyc0tleTsKLSAgICBIQU5ETEUgICAg
ICAgICAgICAgIFN0YXR1c0tleTsKICAgICBVTE9ORyAgICAgICAgICAgICAgIEluZGV4OwogICAg
IE5UU1RBVFVTICAgICAgICAgICAgc3RhdHVzOwogCkBAIC0zMTksMTUgKzM0NCw2IEBAIERyaXZl
ckVudHJ5KAogCiAgICAgX19Ecml2ZXJTZXRQYXJhbWV0ZXJzS2V5KFBhcmFtZXRlcnNLZXkpOwog
Ci0gICAgc3RhdHVzID0gUmVnaXN0cnlDcmVhdGVTdWJLZXkoU2VydmljZUtleSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiU3RhdHVzIiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBSRUdfT1BUSU9OX1ZPTEFUSUxFLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICZTdGF0dXNLZXkpOwotICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQot
ICAgICAgICBnb3RvIGZhaWw0OwotCi0gICAgX19Ecml2ZXJTZXRTdGF0dXNLZXkoU3RhdHVzS2V5
KTsKLQogICAgIFJlZ2lzdHJ5Q2xvc2VLZXkoU2VydmljZUtleSk7CiAKICAgICBEcml2ZXJPYmpl
Y3QtPkRyaXZlckV4dGVuc2lvbi0+QWRkRGV2aWNlID0gQWRkRGV2aWNlOwpAQCAtMzQyLDEzICsz
NTgsNiBAQCBEcml2ZXJFbnRyeSgKIAogICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsKIAotZmFp
bDQ6Ci0gICAgRXJyb3IoImZhaWw0XG4iKTsKLQotICAgIF9fRHJpdmVyU2V0UGFyYW1ldGVyc0tl
eShOVUxMKTsKLQotICAgIFJlZ2lzdHJ5Q2xvc2VLZXkoUGFyYW1ldGVyc0tleSk7Ci0KIGZhaWwz
OgogICAgIEVycm9yKCJmYWlsM1xuIik7CiAKLS0gCjIuMS4xCgoKX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3
aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0
Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 09:42:39 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 09:42:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQWyd-0003Ry-C7; Fri, 22 Jul 2016 09:42:39 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bQWyb-0003Rm-Ru
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 09:42:37 +0000
Received: from [85.158.137.68] by server-1.bemta-3.messagelabs.com id
 70/AD-17152-D8AE1975; Fri, 22 Jul 2016 09:42:37 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprBIsWRWlGSWpSXmKPExsXiVRvkpNvzamK
 4wc6H6hZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y96Hv0wFP9kqrl87yNLA+JO1i5GLQ0hgNqPE
 nGlvmUAcFoFLLBI/v+9iA3EkBN6xSMw694K5i5ETyImRmPKqB8qulLjweD+YLSSgKNF87QI7x
 KiVTBIrp31iAUmwCahL3H6/mB2iwU7i06ybYLaIgKrEteXH2EBsZgEtiYcb5jF2MXJwCAuYST
 y9nAISZgEqmb9hPlg5r4CbxOSOC0wQY+Qk9k5ezTKBkX8BI8MqRvXi1KKy1CJdI72kosz0jJL
 cxMwcXUMDY73c1OLixPTUnMSkYr3k/NxNjMDwqWdgYNzBeKrZ+RCjJAeTkijvj6sTw4X4kvJT
 KjMSizPii0pzUosPMcpwcChJ8Bq9BMoJFqWmp1akZeYAAxkmLcHBoyTCqwKS5i0uSMwtzkyHS
 J1iNOZY8OP2WiaOLVPvrWUSYsnLz0uVEuf1BykVACnNKM2DGwSLsEuMslLCvIwMDAxCPAWpRb
 mZJajyrxjFORiVhHk7QKbwZOaVwO17BXQKE9ApcwT6QU4pSURISTUwcgfvZVBafOz41zlOB4u
 dVh0x1OFNybE7FN25QCV0xpeHMXUfnSYw35BKdStcUZx0ZvUmt53PM3eXH9FgrZ3WXV4uYamu
 9z9k2v3vcg3F26pPnWX5dnbpXvdrB6Kv/zj66o/o7kdV6YZKu/T0by1jW3hjK8PF2E3TGR///
 r/Ago1l/fUPVmHJa5VYijMSDbWYi4oTAXU2ZoerAgAA
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-2.tower-31.messagelabs.com!1469180556!51861186!1
X-Originating-IP: [74.125.82.66]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20846 invoked from network); 22 Jul 2016 09:42:36 -0000
Received: from mail-wm0-f66.google.com (HELO mail-wm0-f66.google.com)
 (74.125.82.66)
 by server-2.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 22 Jul 2016 09:42:36 -0000
Received: by mail-wm0-f66.google.com with SMTP id q128so5438048wma.1
 for <win-pv-devel@lists.xenproject.org>; Fri, 22 Jul 2016 02:42:36 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=iH/+RUXsFzCDNy+2N9O0w04gyJV4TE8qJCYx9WXOXfM=;
 b=IE47upF3vofxI+nayP5/7aKwOQlQe8x/ffR02zRV8w0pJS6/Aw+MQ8pvtC+9KvhX4p
 0NnwqOnmwte97gzNtXa7fI4NerieQMqVlxdh+OR2y7Ju0S6yVFWbKCtBvMIiyctuN2B6
 HbkrWgJzpJVidm8Ijy67jXVfwkk5Tlvg1U4dtwIRPBxkhBylOMAfoNnT6VauT8C5I2Bl
 KY/aGnj+HNXc8ZzR3PUH4iQXNxBKRlvs9Hji55YwgZeI8Yv8RHgzfPQDjZ0gAKHvlqs7
 EvOGgVUEKKEQXp+prTl8QSQBrNq8vb23yP0eN8wXP2gfdolwkGaGM55xbRtlHiCXGRzd
 POMQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=iH/+RUXsFzCDNy+2N9O0w04gyJV4TE8qJCYx9WXOXfM=;
 b=lL/MF9nF+MNtjMBqgERa2j77Nn/cA4EYmT42JHKlWAHDkEGtB9ZFf9VntsMfADrd3I
 wi0r7gA+u1sOdgZ6G6c/nmvTixc5MPdXmrETHPHMMRTH+/34UxXow1h0z5VXdLk+YFyY
 /+/ZIoeuKoYxhcNdgxXX7lhblKohRGk3kb17sPT/5ymuInm6LmCDkNARTAcOTj2UeuQP
 0wGESsPyA0FvO2MqY3Zrs8QQveCJyThwi3ftwAOJOokP6W03seSibOwPNJXZWGLC31Di
 mVrxW4/+alKfDaPmfLZWErGvc9pQXNmkmXm8KDSW7UYEYMJ6OgK0tY5ULYLfjr9zQcCO
 koSQ==
X-Gm-Message-State: AEkoouuUpbqBTPbVg/rn6ZDX4M+bz5AnKN71EjqA4PjHVYSESkBQNhqYjBFzQ5Cj4WEGWQ==
X-Received: by 10.28.45.138 with SMTP id t132mr4027754wmt.70.1469180555590;
 Fri, 22 Jul 2016 02:42:35 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id b186sm11683999wmg.23.2016.07.22.02.42.34
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 22 Jul 2016 02:42:35 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Fri, 22 Jul 2016 10:42:21 +0100
Message-Id: <1469180542-6452-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 1/2] Add missing names to the INF file
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhlIHBhY2thZ2Ugc2hvdWxkIGhhdmUgYSBuYW1lIGFuZCB0aGUgWEVOVklGIGRyaXZlciBzaG91
bGQgYWxzbyBoYXZlIGEKRGlzcGxheU5hbWUuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQg
PHBhdWwuZHVycmFudEBjaXRyaXguY29tPgotLS0KIHNyYy94ZW5uZXQuaW5mIHwgMyArKy0KIDEg
ZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg
YS9zcmMveGVubmV0LmluZiBiL3NyYy94ZW5uZXQuaW5mCmluZGV4IGI2ZTY2MjguLjYxNTc2M2Ug
MTAwNjQ0Ci0tLSBhL3NyYy94ZW5uZXQuaW5mCisrKyBiL3NyYy94ZW5uZXQuaW5mCkBAIC0zNSw3
ICszNSw3IEBAIENsYXNzR1VJRD17NGQzNmU5NzItZTMyNS0xMWNlLWJmYzEtMDgwMDJiZTEwMzE4
fQogUHJvdmlkZXI9JVZlbmRvciUgCiBDYXRhbG9nRmlsZT14ZW5uZXQuY2F0CiBEcml2ZXJWZXI9
MDEvMDEvMTkwMCwwLjAuMC4wCi1Cb290Q3JpdGljYWw9MQorRHJpdmVyUGFja2FnZURpc3BsYXlO
YW1lPSVEaXNrRGVzYyUKIAogW0Rlc3RpbmF0aW9uRGlyc10gCiBEZWZhdWx0RGVzdERpcj0xMiAK
QEAgLTE3MCw2ICsxNzAsNyBAQCBIS1IsIE5kaVxwYXJhbXNcKlJTU1xlbnVtLCAgICAgICAgICAg
ICAgICAgICAgICAgICIxIiwgICAgICAgIDAsICVFbmFibGVkJQogQWRkU2VydmljZT14ZW5uZXQs
MHgwMixYZW5OZXRfU2VydmljZSxYZW5OZXRfRXZlbnRMb2cKIAogW1hlbk5ldF9TZXJ2aWNlXSAK
K0Rpc3BsYXlOYW1lPSVYZW5OZXREZXNjJQogU2VydmljZVR5cGU9JVNFUlZJQ0VfS0VSTkVMX0RS
SVZFUiUgCiBTdGFydFR5cGU9JVNFUlZJQ0VfREVNQU5EX1NUQVJUJSAKIEVycm9yQ29udHJvbD0l
U0VSVklDRV9FUlJPUl9OT1JNQUwlIAotLSAKMi4xLjEKCgpfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1w
di1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3Jn
L2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 09:42:39 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 09:42:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQWyd-0003Ry-C7; Fri, 22 Jul 2016 09:42:39 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bQWyb-0003Rm-Ru
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 09:42:37 +0000
Received: from [85.158.137.68] by server-1.bemta-3.messagelabs.com id
 70/AD-17152-D8AE1975; Fri, 22 Jul 2016 09:42:37 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprBIsWRWlGSWpSXmKPExsXiVRvkpNvzamK
 4wc6H6hZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y96Hv0wFP9kqrl87yNLA+JO1i5GLQ0hgNqPE
 nGlvmUAcFoFLLBI/v+9iA3EkBN6xSMw694K5i5ETyImRmPKqB8qulLjweD+YLSSgKNF87QI7x
 KiVTBIrp31iAUmwCahL3H6/mB2iwU7i06ybYLaIgKrEteXH2EBsZgEtiYcb5jF2MXJwCAuYST
 y9nAISZgEqmb9hPlg5r4CbxOSOC0wQY+Qk9k5ezTKBkX8BI8MqRvXi1KKy1CJdI72kosz0jJL
 cxMwcXUMDY73c1OLixPTUnMSkYr3k/NxNjMDwqWdgYNzBeKrZ+RCjJAeTkijvj6sTw4X4kvJT
 KjMSizPii0pzUosPMcpwcChJ8Bq9BMoJFqWmp1akZeYAAxkmLcHBoyTCqwKS5i0uSMwtzkyHS
 J1iNOZY8OP2WiaOLVPvrWUSYsnLz0uVEuf1BykVACnNKM2DGwSLsEuMslLCvIwMDAxCPAWpRb
 mZJajyrxjFORiVhHk7QKbwZOaVwO17BXQKE9ApcwT6QU4pSURISTUwcgfvZVBafOz41zlOB4u
 dVh0x1OFNybE7FN25QCV0xpeHMXUfnSYw35BKdStcUZx0ZvUmt53PM3eXH9FgrZ3WXV4uYamu
 9z9k2v3vcg3F26pPnWX5dnbpXvdrB6Kv/zj66o/o7kdV6YZKu/T0by1jW3hjK8PF2E3TGR///
 r/Ago1l/fUPVmHJa5VYijMSDbWYi4oTAXU2ZoerAgAA
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-2.tower-31.messagelabs.com!1469180556!51861186!1
X-Originating-IP: [74.125.82.66]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20846 invoked from network); 22 Jul 2016 09:42:36 -0000
Received: from mail-wm0-f66.google.com (HELO mail-wm0-f66.google.com)
 (74.125.82.66)
 by server-2.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 22 Jul 2016 09:42:36 -0000
Received: by mail-wm0-f66.google.com with SMTP id q128so5438048wma.1
 for <win-pv-devel@lists.xenproject.org>; Fri, 22 Jul 2016 02:42:36 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=iH/+RUXsFzCDNy+2N9O0w04gyJV4TE8qJCYx9WXOXfM=;
 b=IE47upF3vofxI+nayP5/7aKwOQlQe8x/ffR02zRV8w0pJS6/Aw+MQ8pvtC+9KvhX4p
 0NnwqOnmwte97gzNtXa7fI4NerieQMqVlxdh+OR2y7Ju0S6yVFWbKCtBvMIiyctuN2B6
 HbkrWgJzpJVidm8Ijy67jXVfwkk5Tlvg1U4dtwIRPBxkhBylOMAfoNnT6VauT8C5I2Bl
 KY/aGnj+HNXc8ZzR3PUH4iQXNxBKRlvs9Hji55YwgZeI8Yv8RHgzfPQDjZ0gAKHvlqs7
 EvOGgVUEKKEQXp+prTl8QSQBrNq8vb23yP0eN8wXP2gfdolwkGaGM55xbRtlHiCXGRzd
 POMQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=iH/+RUXsFzCDNy+2N9O0w04gyJV4TE8qJCYx9WXOXfM=;
 b=lL/MF9nF+MNtjMBqgERa2j77Nn/cA4EYmT42JHKlWAHDkEGtB9ZFf9VntsMfADrd3I
 wi0r7gA+u1sOdgZ6G6c/nmvTixc5MPdXmrETHPHMMRTH+/34UxXow1h0z5VXdLk+YFyY
 /+/ZIoeuKoYxhcNdgxXX7lhblKohRGk3kb17sPT/5ymuInm6LmCDkNARTAcOTj2UeuQP
 0wGESsPyA0FvO2MqY3Zrs8QQveCJyThwi3ftwAOJOokP6W03seSibOwPNJXZWGLC31Di
 mVrxW4/+alKfDaPmfLZWErGvc9pQXNmkmXm8KDSW7UYEYMJ6OgK0tY5ULYLfjr9zQcCO
 koSQ==
X-Gm-Message-State: AEkoouuUpbqBTPbVg/rn6ZDX4M+bz5AnKN71EjqA4PjHVYSESkBQNhqYjBFzQ5Cj4WEGWQ==
X-Received: by 10.28.45.138 with SMTP id t132mr4027754wmt.70.1469180555590;
 Fri, 22 Jul 2016 02:42:35 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id b186sm11683999wmg.23.2016.07.22.02.42.34
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 22 Jul 2016 02:42:35 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Fri, 22 Jul 2016 10:42:21 +0100
Message-Id: <1469180542-6452-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 1/2] Add missing names to the INF file
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhlIHBhY2thZ2Ugc2hvdWxkIGhhdmUgYSBuYW1lIGFuZCB0aGUgWEVOVklGIGRyaXZlciBzaG91
bGQgYWxzbyBoYXZlIGEKRGlzcGxheU5hbWUuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQg
PHBhdWwuZHVycmFudEBjaXRyaXguY29tPgotLS0KIHNyYy94ZW5uZXQuaW5mIHwgMyArKy0KIDEg
ZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg
YS9zcmMveGVubmV0LmluZiBiL3NyYy94ZW5uZXQuaW5mCmluZGV4IGI2ZTY2MjguLjYxNTc2M2Ug
MTAwNjQ0Ci0tLSBhL3NyYy94ZW5uZXQuaW5mCisrKyBiL3NyYy94ZW5uZXQuaW5mCkBAIC0zNSw3
ICszNSw3IEBAIENsYXNzR1VJRD17NGQzNmU5NzItZTMyNS0xMWNlLWJmYzEtMDgwMDJiZTEwMzE4
fQogUHJvdmlkZXI9JVZlbmRvciUgCiBDYXRhbG9nRmlsZT14ZW5uZXQuY2F0CiBEcml2ZXJWZXI9
MDEvMDEvMTkwMCwwLjAuMC4wCi1Cb290Q3JpdGljYWw9MQorRHJpdmVyUGFja2FnZURpc3BsYXlO
YW1lPSVEaXNrRGVzYyUKIAogW0Rlc3RpbmF0aW9uRGlyc10gCiBEZWZhdWx0RGVzdERpcj0xMiAK
QEAgLTE3MCw2ICsxNzAsNyBAQCBIS1IsIE5kaVxwYXJhbXNcKlJTU1xlbnVtLCAgICAgICAgICAg
ICAgICAgICAgICAgICIxIiwgICAgICAgIDAsICVFbmFibGVkJQogQWRkU2VydmljZT14ZW5uZXQs
MHgwMixYZW5OZXRfU2VydmljZSxYZW5OZXRfRXZlbnRMb2cKIAogW1hlbk5ldF9TZXJ2aWNlXSAK
K0Rpc3BsYXlOYW1lPSVYZW5OZXREZXNjJQogU2VydmljZVR5cGU9JVNFUlZJQ0VfS0VSTkVMX0RS
SVZFUiUgCiBTdGFydFR5cGU9JVNFUlZJQ0VfREVNQU5EX1NUQVJUJSAKIEVycm9yQ29udHJvbD0l
U0VSVklDRV9FUlJPUl9OT1JNQUwlIAotLSAKMi4xLjEKCgpfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1w
di1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3Jn
L2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 09:42:40 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 09:42:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQWye-0003SS-DE; Fri, 22 Jul 2016 09:42:40 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bQWyd-0003Rs-6D
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 09:42:39 +0000
Received: from [85.158.139.211] by server-3.bemta-5.messagelabs.com id
 AE/A9-12946-E8AE1975; Fri, 22 Jul 2016 09:42:38 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrNIsWRWlGSWpSXmKPExsXiVRvkpNv7amK
 4wZQ2I4s/ixMdGD0Of7jCEsAYxZqZl5RfkcCacWryYfaCH/IVbY19bA2MW0W7GLk4hARmMUr8
 /n2KBcRhEXjJItFy7zEriCMh0M8q8XzObrYuRk4gJ0ZizsWTrBB2pUTj6SOMILaQgKJE87UL7
 BCjVjJJHPt8iAkkwSagLnH7/WJ2iAY7iU+zboLZIgKqEteWHwMbyiygJfFwwzywQcICDhKzW/
 YD1XAAnaEqMWsh2C5eATeJprP7oW6Qk9g7eTULiM0p4C4x9/VFFogb3CSmL2tnmsAouICRYRW
 jRnFqUVlqka6huV5SUWZ6RkluYmaOrqGBqV5uanFxYnpqTmJSsV5yfu4mRmDAMQDBDsaLpz0P
 MUpyMCmJ8v64OjFciC8pP6UyI7E4I76oNCe1+BCjDAeHkgSv0UugnGBRanpqRVpmDjD0YdISH
 DxKIrwqIGne4oLE3OLMdIjUKUZdji1T761lEmLJy89LlRLnffkCqEgApCijNA9uBCwOLzHKSg
 nzMgIdJcRTkFqUm1mCKv+KUZyDUUmYlxdkFU9mXgncpldARzABHTFHoB/kiJJEhJRUA6Npq+I
 erZCc9FMdtSvNP4cKsnqqbpeZ5rvlyDmBNp2WE81fGd8WesgLhH3l6Nvcn/qv5vKvG+WWIivL
 ojlZewIltK6uD1j4R39Vju7MHffEZ3owGq2wT25R3f6kulpg58oTURwly3rCrrO9St5dEVl3v
 VQ6vUO+4u49g6WnIkxdis5f3fjqmBJLcUaioRZzUXEiAFz5Yfi+AgAA
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-16.tower-206.messagelabs.com!1469180557!34970114!1
X-Originating-IP: [74.125.82.66]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 44954 invoked from network); 22 Jul 2016 09:42:37 -0000
Received: from mail-wm0-f66.google.com (HELO mail-wm0-f66.google.com)
 (74.125.82.66)
 by server-16.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 22 Jul 2016 09:42:37 -0000
Received: by mail-wm0-f66.google.com with SMTP id x83so5412951wma.3
 for <win-pv-devel@lists.xenproject.org>; Fri, 22 Jul 2016 02:42:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id:in-reply-to:references;
 bh=OsjGgsj39rb3//z18UG2CRseZpl22FgCEvz4ucFDIQg=;
 b=o8Zy4PBcLC4O8MEI5d+7V2CiaK0aHFL3kF8SSCFSyDnzwhM0EldVfgE7Km3khO8GgT
 tpVH1Uabj7sSN8ALovKfsqJ+r/HffGloAcRI4BABuKkpCVIWW43cqS2i+t/emjAspZJM
 zQ1vTD9m/K2i1dZORo09JhwDJRmgOBXSeuBLtQmBvTOcNP8982+LwVRUCuK8DCCDyS8J
 EkHeIU4gH2E6ZJRtoZozuK5argSu2PvgAKqq+YzcJKMpf5vQf4UmNh9tzmYmoHPPGTHB
 MyqHlZT80vSoGdTKXPUdwv10Xn32DjMv2qvI/fuEKhxHmwKAotbxH3KOCDagpxrqlylK
 HCWA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
 :references;
 bh=OsjGgsj39rb3//z18UG2CRseZpl22FgCEvz4ucFDIQg=;
 b=NW025YiSmnWBiwGXGJPL8tL9wbDpwU/YeuDAsa+9TCdjTpBsklKDtKOdsnGI+QEmmg
 K3v143RdxbnqaVTrtYPcmHH3epjVsZp7laMUESsuggNYuMH5JG0TuxP6HtXHY1vqzbrA
 MfbpHStq/xVpF9obp7Lu25qAKWmQZYUqvUKgpKAppIekiDaj2yfg4mIiBJchLDaICdmZ
 s13QUe1oDeyVaqFlPP3snkP4eDqGjgT/mRMDioVoqbM1PVITrOM2evK5sKkAsjUVUvyt
 CZPqJzxqBCH5IDjSORZlGSaTOZE7gjeM1E3HGdocWsjx7eQBR+jtNwL4qXQodjGMbc59
 xeVA==
X-Gm-Message-State: ALyK8tJqbQeTcPlTU0MK6nac5XY3AzIP8+e6KK5oJ0Ownnk8Kyhgw3/rFl4gLVjkIuxPFw==
X-Received: by 10.28.74.221 with SMTP id n90mr23476585wmi.16.1469180557227;
 Fri, 22 Jul 2016 02:42:37 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id b186sm11683999wmg.23.2016.07.22.02.42.36
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 22 Jul 2016 02:42:36 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Fri, 22 Jul 2016 10:42:22 +0100
Message-Id: <1469180542-6452-2-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1469180542-6452-1-git-send-email-paul.durrant@citrix.com>
References: <1469180542-6452-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 2/2] Remove reboot request from the
	co-installer
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhpcyBpcyBub3cgdGFrZW4gY2FyZSBvZiBieSBYRU5WSUYgYnkgd2F5IG9mIHRoZSBYRU5CVVNf
TU9OSVRPUiBzZXJ2aWNlLgoKU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJh
bnRAY2l0cml4LmNvbT4KLS0tCiBzcmMvY29pbnN0L2NvaW5zdC5jIHwgMTM5ICsrLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2Vk
LCAzIGluc2VydGlvbnMoKyksIDEzNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvY29p
bnN0L2NvaW5zdC5jIGIvc3JjL2NvaW5zdC9jb2luc3QuYwppbmRleCBkMzhkOTBkLi5jZGY2MWMw
IDEwMDY0NAotLS0gYS9zcmMvY29pbnN0L2NvaW5zdC5jCisrKyBiL3NyYy9jb2luc3QvY29pbnN0
LmMKQEAgLTU1LDEyICs1NSw2IEBAIF9fdXNlcl9jb2RlOwogCiAjZGVmaW5lIFNFUlZJQ0VTX0tF
WSAiU1lTVEVNXFxDdXJyZW50Q29udHJvbFNldFxcU2VydmljZXMiCiAKLSNkZWZpbmUgU0VSVklD
RV9LRVkoX0RyaXZlcikgICAgXAotICAgICAgICBTRVJWSUNFU19LRVkgIyMgIlxcIiAjIyAjX0Ry
aXZlcgotCi0jZGVmaW5lIFNUQVRVU19LRVkgIFwKLSAgICAgICAgU0VSVklDRV9LRVkoWEVOVklG
KSAjIyAiXFxTdGF0dXMiCi0KIHN0YXRpYyBWT0lECiAjcHJhZ21hIHByZWZhc3Qoc3VwcHJlc3M6
NjI2MikgLy8gRnVuY3Rpb24gdXNlcyAnMTAzNicgYnl0ZXMgb2Ygc3RhY2s6IGV4Y2VlZHMgL2Fu
YWx5emU6c3RhY2tzaXplJzEwMjQnCiBfX0xvZygKQEAgLTMxNiwxMjQgKzMxMCw2IEBAIGZhaWwx
OgogfQogCiBzdGF0aWMgQk9PTEVBTgotQ2hlY2tTdGF0dXMoCi0gICAgT1VUIFBCT09MRUFOICAg
IE5lZWRSZWJvb3QKLSAgICApCi17Ci0gICAgSEtFWSAgICAgICAgICAgIFN0YXR1c0tleTsKLSAg
ICBIUkVTVUxUICAgICAgICAgRXJyb3I7Ci0gICAgRFdPUkQgICAgICAgICAgIFZhbHVlTGVuZ3Ro
OwotICAgIERXT1JEICAgICAgICAgICBWYWx1ZTsKLSAgICBEV09SRCAgICAgICAgICAgVHlwZTsK
LQotICAgIEVycm9yID0gUmVnT3BlbktleUV4KEhLRVlfTE9DQUxfTUFDSElORSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICBTVEFUVVNfS0VZLAotICAgICAgICAgICAgICAgICAgICAgICAgIDAs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgS0VZX1JFQUQsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgJlN0YXR1c0tleSk7Ci0gICAgaWYgKEVycm9yICE9IEVSUk9SX1NVQ0NFU1MpIHsKLSAg
ICAgICAgU2V0TGFzdEVycm9yKEVycm9yKTsKLSAgICAgICAgZ290byBmYWlsMTsKLSAgICB9Ci0K
LSAgICBWYWx1ZUxlbmd0aCA9IHNpemVvZiAoVmFsdWUpOwotCi0gICAgRXJyb3IgPSBSZWdRdWVy
eVZhbHVlRXgoU3RhdHVzS2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOZWVkUmVi
b290IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICZUeXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMUEJZVEUp
JlZhbHVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICZWYWx1ZUxlbmd0aCk7Ci0gICAg
aWYgKEVycm9yICE9IEVSUk9SX1NVQ0NFU1MpIHsKLSAgICAgICAgaWYgKEVycm9yID09IEVSUk9S
X0ZJTEVfTk9UX0ZPVU5EKSB7Ci0gICAgICAgICAgICBUeXBlID0gUkVHX0RXT1JEOwotICAgICAg
ICAgICAgVmFsdWUgPSAwOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgU2V0TGFzdEVy
cm9yKEVycm9yKTsKLSAgICAgICAgICAgIGdvdG8gZmFpbDI7Ci0gICAgICAgIH0KLSAgICB9Ci0K
LSAgICBpZiAoVHlwZSAhPSBSRUdfRFdPUkQpIHsKLSAgICAgICAgU2V0TGFzdEVycm9yKEVSUk9S
X0JBRF9GT1JNQVQpOwotICAgICAgICBnb3RvIGZhaWwzOwotICAgIH0KLQotICAgICpOZWVkUmVi
b290ID0gKFZhbHVlICE9IDApID8gVFJVRSA6IEZBTFNFOwotCi0gICAgaWYgKCpOZWVkUmVib290
KQotICAgICAgICBMb2coIk5lZWRSZWJvb3QiKTsKLQotICAgIFJlZ0Nsb3NlS2V5KFN0YXR1c0tl
eSk7Ci0KLSAgICByZXR1cm4gVFJVRTsKLQotZmFpbDM6Ci0gICAgTG9nKCJmYWlsMyIpOwotCi1m
YWlsMjoKLSAgICBMb2coImZhaWwyIik7Ci0KLSAgICBSZWdDbG9zZUtleShTdGF0dXNLZXkpOwot
Ci1mYWlsMToKLSAgICBFcnJvciA9IEdldExhc3RFcnJvcigpOwotCi0gICAgewotICAgICAgICBQ
VENIQVIgIE1lc3NhZ2U7Ci0gICAgICAgIE1lc3NhZ2UgPSBfX0dldEVycm9yTWVzc2FnZShFcnJv
cik7Ci0gICAgICAgIExvZygiZmFpbDEgKCVzKSIsIE1lc3NhZ2UpOwotICAgICAgICBMb2NhbEZy
ZWUoTWVzc2FnZSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIEZBTFNFOwotfQotCi1zdGF0aWMgQk9P
TEVBTgotUmVxdWVzdFJlYm9vdCgKLSAgICBJTiAgSERFVklORk8gICAgICAgICAgICBEZXZpY2VJ
bmZvU2V0LAotICAgIElOICBQU1BfREVWSU5GT19EQVRBICAgIERldmljZUluZm9EYXRhCi0gICAg
KQotewotICAgIFNQX0RFVklOU1RBTExfUEFSQU1TICAgIERldmljZUluc3RhbGxQYXJhbXM7Ci0g
ICAgSFJFU1VMVCAgICAgICAgICAgICAgICAgRXJyb3I7Ci0KLSAgICBEZXZpY2VJbnN0YWxsUGFy
YW1zLmNiU2l6ZSA9IHNpemVvZiAoRGV2aWNlSW5zdGFsbFBhcmFtcyk7Ci0KLSAgICBpZiAoIVNl
dHVwRGlHZXREZXZpY2VJbnN0YWxsUGFyYW1zKERldmljZUluZm9TZXQsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBEZXZpY2VJbmZvRGF0YSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICZEZXZpY2VJbnN0YWxsUGFyYW1zKSkKLSAgICAgICAg
Z290byBmYWlsMTsKLQotICAgIERldmljZUluc3RhbGxQYXJhbXMuRmxhZ3MgfD0gRElfTkVFRFJF
Qk9PVDsKLQotICAgIExvZygiRmxhZ3MgPSAlMDh4IiwgRGV2aWNlSW5zdGFsbFBhcmFtcy5GbGFn
cyk7Ci0KLSAgICBpZiAoIVNldHVwRGlTZXREZXZpY2VJbnN0YWxsUGFyYW1zKERldmljZUluZm9T
ZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXZpY2VJbmZvRGF0
YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZEZXZpY2VJbnN0YWxs
UGFyYW1zKSkKLSAgICAgICAgZ290byBmYWlsMjsKLQotICAgIHJldHVybiBUUlVFOwotCi1mYWls
MjoKLSAgICBMb2coImZhaWwyIik7Ci0KLWZhaWwxOgotICAgIEVycm9yID0gR2V0TGFzdEVycm9y
KCk7Ci0KLSAgICB7Ci0gICAgICAgIFBUQ0hBUiAgTWVzc2FnZTsKLQotICAgICAgICBNZXNzYWdl
ID0gX19HZXRFcnJvck1lc3NhZ2UoRXJyb3IpOwotICAgICAgICBMb2coImZhaWwxICglcykiLCBN
ZXNzYWdlKTsKLSAgICAgICAgTG9jYWxGcmVlKE1lc3NhZ2UpOwotICAgIH0KLQotICAgIHJldHVy
biBGQUxTRTsKLX0KLQotc3RhdGljIEJPT0xFQU4KIE9wZW5Tb2Z0d2FyZUtleSgKICAgICBJTiAg
SERFVklORk8gICAgICAgICAgICBEZXZpY2VJbmZvU2V0LAogICAgIElOICBQU1BfREVWSU5GT19E
QVRBICAgIERldmljZUluZm9EYXRhLApAQCAtNjcwLDIwICs1NDYsMTEgQEAgX19EaWZJbnN0YWxs
UG9zdFByb2Nlc3MoCiAgICAgSU4gIFBDT0lOU1RBTExFUl9DT05URVhUX0RBVEEgICBDb250ZXh0
CiAgICAgKQogewotICAgIEJPT0xFQU4gICAgICAgICAgICAgICAgICAgICAgICAgTmVlZFJlYm9v
dDsKLQorICAgIFVOUkVGRVJFTkNFRF9QQVJBTUVURVIoRGV2aWNlSW5mb1NldCk7CisgICAgVU5S
RUZFUkVOQ0VEX1BBUkFNRVRFUihEZXZpY2VJbmZvRGF0YSk7CiAgICAgVU5SRUZFUkVOQ0VEX1BB
UkFNRVRFUihDb250ZXh0KTsKIAotICAgIExvZygiPT09PT4iKTsKLQotICAgIE5lZWRSZWJvb3Qg
PSBGQUxTRTsKLQotICAgIChWT0lEKSBDaGVja1N0YXR1cygmTmVlZFJlYm9vdCk7Ci0KLSAgICBp
ZiAoTmVlZFJlYm9vdCkKLSAgICAgICAgKFZPSUQpIFJlcXVlc3RSZWJvb3QoRGV2aWNlSW5mb1Nl
dCwgRGV2aWNlSW5mb0RhdGEpOwotCi0gICAgTG9nKCI8PT09PSIpOworICAgIExvZygiPD09PT4i
KTsKIAogICAgIHJldHVybiBOT19FUlJPUjsKIH0KLS0gCjIuMS4xCgoKX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlz
dAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9q
ZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 09:42:40 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 09:42:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQWye-0003SS-DE; Fri, 22 Jul 2016 09:42:40 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bQWyd-0003Rs-6D
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 09:42:39 +0000
Received: from [85.158.139.211] by server-3.bemta-5.messagelabs.com id
 AE/A9-12946-E8AE1975; Fri, 22 Jul 2016 09:42:38 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrNIsWRWlGSWpSXmKPExsXiVRvkpNv7amK
 4wZQ2I4s/ixMdGD0Of7jCEsAYxZqZl5RfkcCacWryYfaCH/IVbY19bA2MW0W7GLk4hARmMUr8
 /n2KBcRhEXjJItFy7zEriCMh0M8q8XzObrYuRk4gJ0ZizsWTrBB2pUTj6SOMILaQgKJE87UL7
 BCjVjJJHPt8iAkkwSagLnH7/WJ2iAY7iU+zboLZIgKqEteWHwMbyiygJfFwwzywQcICDhKzW/
 YD1XAAnaEqMWsh2C5eATeJprP7oW6Qk9g7eTULiM0p4C4x9/VFFogb3CSmL2tnmsAouICRYRW
 jRnFqUVlqka6huV5SUWZ6RkluYmaOrqGBqV5uanFxYnpqTmJSsV5yfu4mRmDAMQDBDsaLpz0P
 MUpyMCmJ8v64OjFciC8pP6UyI7E4I76oNCe1+BCjDAeHkgSv0UugnGBRanpqRVpmDjD0YdISH
 DxKIrwqIGne4oLE3OLMdIjUKUZdji1T761lEmLJy89LlRLnffkCqEgApCijNA9uBCwOLzHKSg
 nzMgIdJcRTkFqUm1mCKv+KUZyDUUmYlxdkFU9mXgncpldARzABHTFHoB/kiJJEhJRUA6Npq+I
 erZCc9FMdtSvNP4cKsnqqbpeZ5rvlyDmBNp2WE81fGd8WesgLhH3l6Nvcn/qv5vKvG+WWIivL
 ojlZewIltK6uD1j4R39Vju7MHffEZ3owGq2wT25R3f6kulpg58oTURwly3rCrrO9St5dEVl3v
 VQ6vUO+4u49g6WnIkxdis5f3fjqmBJLcUaioRZzUXEiAFz5Yfi+AgAA
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-16.tower-206.messagelabs.com!1469180557!34970114!1
X-Originating-IP: [74.125.82.66]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 44954 invoked from network); 22 Jul 2016 09:42:37 -0000
Received: from mail-wm0-f66.google.com (HELO mail-wm0-f66.google.com)
 (74.125.82.66)
 by server-16.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 22 Jul 2016 09:42:37 -0000
Received: by mail-wm0-f66.google.com with SMTP id x83so5412951wma.3
 for <win-pv-devel@lists.xenproject.org>; Fri, 22 Jul 2016 02:42:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id:in-reply-to:references;
 bh=OsjGgsj39rb3//z18UG2CRseZpl22FgCEvz4ucFDIQg=;
 b=o8Zy4PBcLC4O8MEI5d+7V2CiaK0aHFL3kF8SSCFSyDnzwhM0EldVfgE7Km3khO8GgT
 tpVH1Uabj7sSN8ALovKfsqJ+r/HffGloAcRI4BABuKkpCVIWW43cqS2i+t/emjAspZJM
 zQ1vTD9m/K2i1dZORo09JhwDJRmgOBXSeuBLtQmBvTOcNP8982+LwVRUCuK8DCCDyS8J
 EkHeIU4gH2E6ZJRtoZozuK5argSu2PvgAKqq+YzcJKMpf5vQf4UmNh9tzmYmoHPPGTHB
 MyqHlZT80vSoGdTKXPUdwv10Xn32DjMv2qvI/fuEKhxHmwKAotbxH3KOCDagpxrqlylK
 HCWA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
 :references;
 bh=OsjGgsj39rb3//z18UG2CRseZpl22FgCEvz4ucFDIQg=;
 b=NW025YiSmnWBiwGXGJPL8tL9wbDpwU/YeuDAsa+9TCdjTpBsklKDtKOdsnGI+QEmmg
 K3v143RdxbnqaVTrtYPcmHH3epjVsZp7laMUESsuggNYuMH5JG0TuxP6HtXHY1vqzbrA
 MfbpHStq/xVpF9obp7Lu25qAKWmQZYUqvUKgpKAppIekiDaj2yfg4mIiBJchLDaICdmZ
 s13QUe1oDeyVaqFlPP3snkP4eDqGjgT/mRMDioVoqbM1PVITrOM2evK5sKkAsjUVUvyt
 CZPqJzxqBCH5IDjSORZlGSaTOZE7gjeM1E3HGdocWsjx7eQBR+jtNwL4qXQodjGMbc59
 xeVA==
X-Gm-Message-State: ALyK8tJqbQeTcPlTU0MK6nac5XY3AzIP8+e6KK5oJ0Ownnk8Kyhgw3/rFl4gLVjkIuxPFw==
X-Received: by 10.28.74.221 with SMTP id n90mr23476585wmi.16.1469180557227;
 Fri, 22 Jul 2016 02:42:37 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id b186sm11683999wmg.23.2016.07.22.02.42.36
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 22 Jul 2016 02:42:36 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Fri, 22 Jul 2016 10:42:22 +0100
Message-Id: <1469180542-6452-2-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1469180542-6452-1-git-send-email-paul.durrant@citrix.com>
References: <1469180542-6452-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 2/2] Remove reboot request from the
	co-installer
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhpcyBpcyBub3cgdGFrZW4gY2FyZSBvZiBieSBYRU5WSUYgYnkgd2F5IG9mIHRoZSBYRU5CVVNf
TU9OSVRPUiBzZXJ2aWNlLgoKU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJh
bnRAY2l0cml4LmNvbT4KLS0tCiBzcmMvY29pbnN0L2NvaW5zdC5jIHwgMTM5ICsrLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2Vk
LCAzIGluc2VydGlvbnMoKyksIDEzNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvY29p
bnN0L2NvaW5zdC5jIGIvc3JjL2NvaW5zdC9jb2luc3QuYwppbmRleCBkMzhkOTBkLi5jZGY2MWMw
IDEwMDY0NAotLS0gYS9zcmMvY29pbnN0L2NvaW5zdC5jCisrKyBiL3NyYy9jb2luc3QvY29pbnN0
LmMKQEAgLTU1LDEyICs1NSw2IEBAIF9fdXNlcl9jb2RlOwogCiAjZGVmaW5lIFNFUlZJQ0VTX0tF
WSAiU1lTVEVNXFxDdXJyZW50Q29udHJvbFNldFxcU2VydmljZXMiCiAKLSNkZWZpbmUgU0VSVklD
RV9LRVkoX0RyaXZlcikgICAgXAotICAgICAgICBTRVJWSUNFU19LRVkgIyMgIlxcIiAjIyAjX0Ry
aXZlcgotCi0jZGVmaW5lIFNUQVRVU19LRVkgIFwKLSAgICAgICAgU0VSVklDRV9LRVkoWEVOVklG
KSAjIyAiXFxTdGF0dXMiCi0KIHN0YXRpYyBWT0lECiAjcHJhZ21hIHByZWZhc3Qoc3VwcHJlc3M6
NjI2MikgLy8gRnVuY3Rpb24gdXNlcyAnMTAzNicgYnl0ZXMgb2Ygc3RhY2s6IGV4Y2VlZHMgL2Fu
YWx5emU6c3RhY2tzaXplJzEwMjQnCiBfX0xvZygKQEAgLTMxNiwxMjQgKzMxMCw2IEBAIGZhaWwx
OgogfQogCiBzdGF0aWMgQk9PTEVBTgotQ2hlY2tTdGF0dXMoCi0gICAgT1VUIFBCT09MRUFOICAg
IE5lZWRSZWJvb3QKLSAgICApCi17Ci0gICAgSEtFWSAgICAgICAgICAgIFN0YXR1c0tleTsKLSAg
ICBIUkVTVUxUICAgICAgICAgRXJyb3I7Ci0gICAgRFdPUkQgICAgICAgICAgIFZhbHVlTGVuZ3Ro
OwotICAgIERXT1JEICAgICAgICAgICBWYWx1ZTsKLSAgICBEV09SRCAgICAgICAgICAgVHlwZTsK
LQotICAgIEVycm9yID0gUmVnT3BlbktleUV4KEhLRVlfTE9DQUxfTUFDSElORSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICBTVEFUVVNfS0VZLAotICAgICAgICAgICAgICAgICAgICAgICAgIDAs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgS0VZX1JFQUQsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgJlN0YXR1c0tleSk7Ci0gICAgaWYgKEVycm9yICE9IEVSUk9SX1NVQ0NFU1MpIHsKLSAg
ICAgICAgU2V0TGFzdEVycm9yKEVycm9yKTsKLSAgICAgICAgZ290byBmYWlsMTsKLSAgICB9Ci0K
LSAgICBWYWx1ZUxlbmd0aCA9IHNpemVvZiAoVmFsdWUpOwotCi0gICAgRXJyb3IgPSBSZWdRdWVy
eVZhbHVlRXgoU3RhdHVzS2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOZWVkUmVi
b290IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICZUeXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMUEJZVEUp
JlZhbHVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICZWYWx1ZUxlbmd0aCk7Ci0gICAg
aWYgKEVycm9yICE9IEVSUk9SX1NVQ0NFU1MpIHsKLSAgICAgICAgaWYgKEVycm9yID09IEVSUk9S
X0ZJTEVfTk9UX0ZPVU5EKSB7Ci0gICAgICAgICAgICBUeXBlID0gUkVHX0RXT1JEOwotICAgICAg
ICAgICAgVmFsdWUgPSAwOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgU2V0TGFzdEVy
cm9yKEVycm9yKTsKLSAgICAgICAgICAgIGdvdG8gZmFpbDI7Ci0gICAgICAgIH0KLSAgICB9Ci0K
LSAgICBpZiAoVHlwZSAhPSBSRUdfRFdPUkQpIHsKLSAgICAgICAgU2V0TGFzdEVycm9yKEVSUk9S
X0JBRF9GT1JNQVQpOwotICAgICAgICBnb3RvIGZhaWwzOwotICAgIH0KLQotICAgICpOZWVkUmVi
b290ID0gKFZhbHVlICE9IDApID8gVFJVRSA6IEZBTFNFOwotCi0gICAgaWYgKCpOZWVkUmVib290
KQotICAgICAgICBMb2coIk5lZWRSZWJvb3QiKTsKLQotICAgIFJlZ0Nsb3NlS2V5KFN0YXR1c0tl
eSk7Ci0KLSAgICByZXR1cm4gVFJVRTsKLQotZmFpbDM6Ci0gICAgTG9nKCJmYWlsMyIpOwotCi1m
YWlsMjoKLSAgICBMb2coImZhaWwyIik7Ci0KLSAgICBSZWdDbG9zZUtleShTdGF0dXNLZXkpOwot
Ci1mYWlsMToKLSAgICBFcnJvciA9IEdldExhc3RFcnJvcigpOwotCi0gICAgewotICAgICAgICBQ
VENIQVIgIE1lc3NhZ2U7Ci0gICAgICAgIE1lc3NhZ2UgPSBfX0dldEVycm9yTWVzc2FnZShFcnJv
cik7Ci0gICAgICAgIExvZygiZmFpbDEgKCVzKSIsIE1lc3NhZ2UpOwotICAgICAgICBMb2NhbEZy
ZWUoTWVzc2FnZSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIEZBTFNFOwotfQotCi1zdGF0aWMgQk9P
TEVBTgotUmVxdWVzdFJlYm9vdCgKLSAgICBJTiAgSERFVklORk8gICAgICAgICAgICBEZXZpY2VJ
bmZvU2V0LAotICAgIElOICBQU1BfREVWSU5GT19EQVRBICAgIERldmljZUluZm9EYXRhCi0gICAg
KQotewotICAgIFNQX0RFVklOU1RBTExfUEFSQU1TICAgIERldmljZUluc3RhbGxQYXJhbXM7Ci0g
ICAgSFJFU1VMVCAgICAgICAgICAgICAgICAgRXJyb3I7Ci0KLSAgICBEZXZpY2VJbnN0YWxsUGFy
YW1zLmNiU2l6ZSA9IHNpemVvZiAoRGV2aWNlSW5zdGFsbFBhcmFtcyk7Ci0KLSAgICBpZiAoIVNl
dHVwRGlHZXREZXZpY2VJbnN0YWxsUGFyYW1zKERldmljZUluZm9TZXQsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBEZXZpY2VJbmZvRGF0YSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICZEZXZpY2VJbnN0YWxsUGFyYW1zKSkKLSAgICAgICAg
Z290byBmYWlsMTsKLQotICAgIERldmljZUluc3RhbGxQYXJhbXMuRmxhZ3MgfD0gRElfTkVFRFJF
Qk9PVDsKLQotICAgIExvZygiRmxhZ3MgPSAlMDh4IiwgRGV2aWNlSW5zdGFsbFBhcmFtcy5GbGFn
cyk7Ci0KLSAgICBpZiAoIVNldHVwRGlTZXREZXZpY2VJbnN0YWxsUGFyYW1zKERldmljZUluZm9T
ZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXZpY2VJbmZvRGF0
YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZEZXZpY2VJbnN0YWxs
UGFyYW1zKSkKLSAgICAgICAgZ290byBmYWlsMjsKLQotICAgIHJldHVybiBUUlVFOwotCi1mYWls
MjoKLSAgICBMb2coImZhaWwyIik7Ci0KLWZhaWwxOgotICAgIEVycm9yID0gR2V0TGFzdEVycm9y
KCk7Ci0KLSAgICB7Ci0gICAgICAgIFBUQ0hBUiAgTWVzc2FnZTsKLQotICAgICAgICBNZXNzYWdl
ID0gX19HZXRFcnJvck1lc3NhZ2UoRXJyb3IpOwotICAgICAgICBMb2coImZhaWwxICglcykiLCBN
ZXNzYWdlKTsKLSAgICAgICAgTG9jYWxGcmVlKE1lc3NhZ2UpOwotICAgIH0KLQotICAgIHJldHVy
biBGQUxTRTsKLX0KLQotc3RhdGljIEJPT0xFQU4KIE9wZW5Tb2Z0d2FyZUtleSgKICAgICBJTiAg
SERFVklORk8gICAgICAgICAgICBEZXZpY2VJbmZvU2V0LAogICAgIElOICBQU1BfREVWSU5GT19E
QVRBICAgIERldmljZUluZm9EYXRhLApAQCAtNjcwLDIwICs1NDYsMTEgQEAgX19EaWZJbnN0YWxs
UG9zdFByb2Nlc3MoCiAgICAgSU4gIFBDT0lOU1RBTExFUl9DT05URVhUX0RBVEEgICBDb250ZXh0
CiAgICAgKQogewotICAgIEJPT0xFQU4gICAgICAgICAgICAgICAgICAgICAgICAgTmVlZFJlYm9v
dDsKLQorICAgIFVOUkVGRVJFTkNFRF9QQVJBTUVURVIoRGV2aWNlSW5mb1NldCk7CisgICAgVU5S
RUZFUkVOQ0VEX1BBUkFNRVRFUihEZXZpY2VJbmZvRGF0YSk7CiAgICAgVU5SRUZFUkVOQ0VEX1BB
UkFNRVRFUihDb250ZXh0KTsKIAotICAgIExvZygiPT09PT4iKTsKLQotICAgIE5lZWRSZWJvb3Qg
PSBGQUxTRTsKLQotICAgIChWT0lEKSBDaGVja1N0YXR1cygmTmVlZFJlYm9vdCk7Ci0KLSAgICBp
ZiAoTmVlZFJlYm9vdCkKLSAgICAgICAgKFZPSUQpIFJlcXVlc3RSZWJvb3QoRGV2aWNlSW5mb1Nl
dCwgRGV2aWNlSW5mb0RhdGEpOwotCi0gICAgTG9nKCI8PT09PSIpOworICAgIExvZygiPD09PT4i
KTsKIAogICAgIHJldHVybiBOT19FUlJPUjsKIH0KLS0gCjIuMS4xCgoKX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlz
dAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9q
ZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 09:43:27 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 09:43:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQWzP-0003Un-GR; Fri, 22 Jul 2016 09:43:27 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bQWzN-0003Uh-Ox
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 09:43:25 +0000
Received: from [85.158.143.35] by server-1.bemta-6.messagelabs.com id
 FF/BE-21406-DBAE1975; Fri, 22 Jul 2016 09:43:25 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprOIsWRWlGSWpSXmKPExsXiVRvkrLvn1cR
 wgxOtMhZ/Fic6MHoc/nCFJYAxijUzLym/IoE14/fmWywF15krPtzxbmBczNzFyMUhJDCLUeLt
 +i9gDovAJRaJJ3tfMIE4EgLvWCT6+z8DOZxAToxE44nPLBB2mcShtRvZQGwhAUWJ5msX2CFGL
 WGS+Nz0hRUkwSagLnH7/WJ2iAY7iU+zboLZIgKqEteWHwNrZhbQkni4YR4jiC0sYCvxYeUyoF
 4OoDNUJR7MUgIJ8wq4S9ztfQV1g5zE3smrWSYw8i9gZFjFqF6cWlSWWqRrrJdUlJmeUZKbmJm
 ja2hgppebWlycmJ6ak5hUrJecn7uJERg8DECwg7Hjn9MhRkkOJiVR3h9XJ4YL8SXlp1RmJBZn
 xBeV5qQWH2KU4eBQkuDd/xIoJ1iUmp5akZaZAwxjmLQEB4+SCK8KSJq3uCAxtzgzHSJ1itGYY
 8GP22uZOLZMvbeWSYglLz8vVUqc1x+kVACkNKM0D24QLL4uMcpKCfMyAp0mxFOQWpSbWYIq/4
 pRnINRSZjXG2QKT2ZeCdy+V0CnMAGdMkegH+SUkkSElFQDo3Q/99uj878bGL+Rdu79uv+pirr
 Z1u3n/kSKJGkGPk39ciBjYcmyw++0/rnaK91q35TGY+Gt2WqyhPmt6fQr5+/JG8ZGfDl29VpL
 C6db1qvYAOmZT57M/tKlOMVW5+m7T9dtbJa2WXLuSPg4b/nHlrmODE+CX0tqMBwuVrI3v7j+3
 ffWF38rkpVYijMSDbWYi4oTARzCIIaqAgAA
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-14.tower-21.messagelabs.com!1469180604!25058921!1
X-Originating-IP: [74.125.82.67]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 27236 invoked from network); 22 Jul 2016 09:43:24 -0000
Received: from mail-wm0-f67.google.com (HELO mail-wm0-f67.google.com)
 (74.125.82.67)
 by server-14.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 22 Jul 2016 09:43:24 -0000
Received: by mail-wm0-f67.google.com with SMTP id o80so5444160wme.0
 for <win-pv-devel@lists.xenproject.org>; Fri, 22 Jul 2016 02:43:24 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=wls4u90FeaDojBnWXmuriHKmPUTUy/vXq3hPHT+rms8=;
 b=zrAbfnZbfwUIIB2gWqie5lQbJPEi/jc4DLAHC505Nfnq3A+0tr0Z4Tl0nVNH9qwxxw
 jgPrLWr3KlrJeMKsD61xM5kTuMMQp5QUrtsj4dWqQcpBgwuFKMA8UChqbGIdAE8Acq/u
 XSK7aQ6fJG49rlVoByLQrFDD9uRIDrSVbpFzXagECRXpn7Xc9PSXL0Fy8312x9gXSUyf
 5Dd1pnUQNAMWoW/hXjSXzJ5asjI7eRBDm1wACr53n2rV+032y1YHYXyIofCnzcJn+nnb
 VRasR6qjnPStLom646PnbZECfXeqNP0eM4k4pNIUaRP/FDBZN1pKTBjmpaS7Cn5IcVDm
 5Z2w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=wls4u90FeaDojBnWXmuriHKmPUTUy/vXq3hPHT+rms8=;
 b=MblnGS4TldwQE8lBm1vHAU4oXuBBAB+JkuugCSXwDhC1HGqIN5tKH+LD9+h4HCvYyX
 OerINnBosotQddIxO8+f/AcbCvMnu8ZkMr5HEOI6r9NFQM0wj1RevMT/33dl58fH8q+D
 9/j1QiGD3W96dojctYfSn5M4TdhQ3ZILWYc8RTUZkWkUaVWaLGMzxtykNygMXj/1XUr3
 4iXrGoIjtE0o7fULniNOtdk1SQO7KmCuPxuwkTpoMP4V/aIwRguhHOZc41jKxoF5pWK0
 dLDYRfLwxvI7+js2EyoQZ7vK+QtQmrDyx9FtVJXr/EBDug0+288fXqDucbbP+GDsUcNO
 YbfQ==
X-Gm-Message-State: AEkoout0UiniQTQb5kfLFiv5s8VzGN7vqPdwACVVDe6bNwbe+FU2sSNjCQlNqlcB7HumBA==
X-Received: by 10.28.152.5 with SMTP id a5mr4370065wme.76.1469180604139;
 Fri, 22 Jul 2016 02:43:24 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id i7sm45084wjg.42.2016.07.22.02.43.23
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 22 Jul 2016 02:43:23 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Fri, 22 Jul 2016 10:43:13 +0100
Message-Id: <1469180593-17332-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Add the missing package name to the INF file
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0t
CiBzcmMveGVuaWZhY2UuaW5mIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykK
CmRpZmYgLS1naXQgYS9zcmMveGVuaWZhY2UuaW5mIGIvc3JjL3hlbmlmYWNlLmluZgppbmRleCAy
ZmY1MjQ5Li5iMmU0ZTZlIDEwMDY0NAotLS0gYS9zcmMveGVuaWZhY2UuaW5mCisrKyBiL3NyYy94
ZW5pZmFjZS5pbmYKQEAgLTM1LDYgKzM1LDcgQEAgQ2xhc3NHVUlEPXs0ZDM2ZTk3ZC1lMzI1LTEx
Y2UtYmZjMS0wODAwMmJlMTAzMTh9CiBQcm92aWRlcj0lVmVuZG9yJQogRHJpdmVyVmVyPTAxLzAx
LzE5MDAsMC4wLjAuMAogQ2F0YWxvZ0ZpbGU9eGVuaWZhY2UuY2F0CitEcml2ZXJQYWNrYWdlRGlz
cGxheU5hbWU9JURpc2tJZDElCiAKIFtEZXN0aW5hdGlvbkRpcnNdCiBEZWZhdWx0RGVzdERpciA9
IDEyCi0tIAoyLjEuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnBy
b2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xp
c3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 09:43:27 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 09:43:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQWzP-0003Un-GR; Fri, 22 Jul 2016 09:43:27 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bQWzN-0003Uh-Ox
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 09:43:25 +0000
Received: from [85.158.143.35] by server-1.bemta-6.messagelabs.com id
 FF/BE-21406-DBAE1975; Fri, 22 Jul 2016 09:43:25 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprOIsWRWlGSWpSXmKPExsXiVRvkrLvn1cR
 wgxOtMhZ/Fic6MHoc/nCFJYAxijUzLym/IoE14/fmWywF15krPtzxbmBczNzFyMUhJDCLUeLt
 +i9gDovAJRaJJ3tfMIE4EgLvWCT6+z8DOZxAToxE44nPLBB2mcShtRvZQGwhAUWJ5msX2CFGL
 WGS+Nz0hRUkwSagLnH7/WJ2iAY7iU+zboLZIgKqEteWHwNrZhbQkni4YR4jiC0sYCvxYeUyoF
 4OoDNUJR7MUgIJ8wq4S9ztfQV1g5zE3smrWSYw8i9gZFjFqF6cWlSWWqRrrJdUlJmeUZKbmJm
 ja2hgppebWlycmJ6ak5hUrJecn7uJERg8DECwg7Hjn9MhRkkOJiVR3h9XJ4YL8SXlp1RmJBZn
 xBeV5qQWH2KU4eBQkuDd/xIoJ1iUmp5akZaZAwxjmLQEB4+SCK8KSJq3uCAxtzgzHSJ1itGYY
 8GP22uZOLZMvbeWSYglLz8vVUqc1x+kVACkNKM0D24QLL4uMcpKCfMyAp0mxFOQWpSbWYIq/4
 pRnINRSZjXG2QKT2ZeCdy+V0CnMAGdMkegH+SUkkSElFQDo3Q/99uj878bGL+Rdu79uv+pirr
 Z1u3n/kSKJGkGPk39ciBjYcmyw++0/rnaK91q35TGY+Gt2WqyhPmt6fQr5+/JG8ZGfDl29VpL
 C6db1qvYAOmZT57M/tKlOMVW5+m7T9dtbJa2WXLuSPg4b/nHlrmODE+CX0tqMBwuVrI3v7j+3
 ffWF38rkpVYijMSDbWYi4oTARzCIIaqAgAA
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-14.tower-21.messagelabs.com!1469180604!25058921!1
X-Originating-IP: [74.125.82.67]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 27236 invoked from network); 22 Jul 2016 09:43:24 -0000
Received: from mail-wm0-f67.google.com (HELO mail-wm0-f67.google.com)
 (74.125.82.67)
 by server-14.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 22 Jul 2016 09:43:24 -0000
Received: by mail-wm0-f67.google.com with SMTP id o80so5444160wme.0
 for <win-pv-devel@lists.xenproject.org>; Fri, 22 Jul 2016 02:43:24 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=wls4u90FeaDojBnWXmuriHKmPUTUy/vXq3hPHT+rms8=;
 b=zrAbfnZbfwUIIB2gWqie5lQbJPEi/jc4DLAHC505Nfnq3A+0tr0Z4Tl0nVNH9qwxxw
 jgPrLWr3KlrJeMKsD61xM5kTuMMQp5QUrtsj4dWqQcpBgwuFKMA8UChqbGIdAE8Acq/u
 XSK7aQ6fJG49rlVoByLQrFDD9uRIDrSVbpFzXagECRXpn7Xc9PSXL0Fy8312x9gXSUyf
 5Dd1pnUQNAMWoW/hXjSXzJ5asjI7eRBDm1wACr53n2rV+032y1YHYXyIofCnzcJn+nnb
 VRasR6qjnPStLom646PnbZECfXeqNP0eM4k4pNIUaRP/FDBZN1pKTBjmpaS7Cn5IcVDm
 5Z2w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=wls4u90FeaDojBnWXmuriHKmPUTUy/vXq3hPHT+rms8=;
 b=MblnGS4TldwQE8lBm1vHAU4oXuBBAB+JkuugCSXwDhC1HGqIN5tKH+LD9+h4HCvYyX
 OerINnBosotQddIxO8+f/AcbCvMnu8ZkMr5HEOI6r9NFQM0wj1RevMT/33dl58fH8q+D
 9/j1QiGD3W96dojctYfSn5M4TdhQ3ZILWYc8RTUZkWkUaVWaLGMzxtykNygMXj/1XUr3
 4iXrGoIjtE0o7fULniNOtdk1SQO7KmCuPxuwkTpoMP4V/aIwRguhHOZc41jKxoF5pWK0
 dLDYRfLwxvI7+js2EyoQZ7vK+QtQmrDyx9FtVJXr/EBDug0+288fXqDucbbP+GDsUcNO
 YbfQ==
X-Gm-Message-State: AEkoout0UiniQTQb5kfLFiv5s8VzGN7vqPdwACVVDe6bNwbe+FU2sSNjCQlNqlcB7HumBA==
X-Received: by 10.28.152.5 with SMTP id a5mr4370065wme.76.1469180604139;
 Fri, 22 Jul 2016 02:43:24 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id i7sm45084wjg.42.2016.07.22.02.43.23
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 22 Jul 2016 02:43:23 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Fri, 22 Jul 2016 10:43:13 +0100
Message-Id: <1469180593-17332-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Add the missing package name to the INF file
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0t
CiBzcmMveGVuaWZhY2UuaW5mIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykK
CmRpZmYgLS1naXQgYS9zcmMveGVuaWZhY2UuaW5mIGIvc3JjL3hlbmlmYWNlLmluZgppbmRleCAy
ZmY1MjQ5Li5iMmU0ZTZlIDEwMDY0NAotLS0gYS9zcmMveGVuaWZhY2UuaW5mCisrKyBiL3NyYy94
ZW5pZmFjZS5pbmYKQEAgLTM1LDYgKzM1LDcgQEAgQ2xhc3NHVUlEPXs0ZDM2ZTk3ZC1lMzI1LTEx
Y2UtYmZjMS0wODAwMmJlMTAzMTh9CiBQcm92aWRlcj0lVmVuZG9yJQogRHJpdmVyVmVyPTAxLzAx
LzE5MDAsMC4wLjAuMAogQ2F0YWxvZ0ZpbGU9eGVuaWZhY2UuY2F0CitEcml2ZXJQYWNrYWdlRGlz
cGxheU5hbWU9JURpc2tJZDElCiAKIFtEZXN0aW5hdGlvbkRpcnNdCiBEZWZhdWx0RGVzdERpciA9
IDEyCi0tIAoyLjEuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnBy
b2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xp
c3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 09:44:14 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 09:44:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQX0A-0003k4-5E; Fri, 22 Jul 2016 09:44:14 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bQX08-0003it-QT
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 09:44:12 +0000
Received: from [85.158.143.35] by server-2.bemta-6.messagelabs.com id
 EB/65-13744-CEAE1975; Fri, 22 Jul 2016 09:44:12 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprBIsWRWlGSWpSXmKPExsXiVRvkqPv61cR
 wg12zxS3+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxqTOJ6wFZ5krLsz7ydjAOIO5i5GLQ0hgNqPE
 3Vdb2EAcFoFLLBI9s2+wgDgSAu9YJGZfXA2U4QRyYiTeXnvHBGFXSLyeO5kdxBYSUJRovnaBH
 WLUEiaJ1bNWs4Ik2ATUJW6/X8wO0WAn8WnWTTBbREBV4tryY2BDmQW0JB5umMcIYgsLOEpMn3
 0e6CYOoDNUJTastwMJ8wq4S2yY8hzqBjmJvZNXs0xg5F/AyLCKUb04tagstUjXWC+pKDM9oyQ
 3MTNH19DATC83tbg4MT01JzGpWC85P3cTIzB8GIBgB2PHP6dDjJIcTEqivD+uTgwX4kvKT6nM
 SCzOiC8qzUktPsQow8GhJMGrCAxHIcGi1PTUirTMHGAgw6QlOHiURHjlQNK8xQWJucWZ6RCpU
 4zGHAt+3F7LxLFl6r21TEIsefl5qVLivE9eApUKgJRmlObBDYJF2CVGWSlhXkag04R4ClKLcj
 NLUOVfMYpzMCoJ8zKBLOTJzCuB2/cK6BQmoFPmCPSDnFKSiJCSamDsfFdYlHr64P1mFp9vUYf
 3Vph9/RQ8t/nf0wVORnm97/3Xfrr96EDSrNzu5gmqE7qsLd36zsZYsO7sVLdM+K285q3r4x0q
 6z+JtvLm1Zxk2Z4/V6hjRij3xHK76/0R1Rx35ed42rg6/d1+ruu/f3iP9XlG1a+bE8ML2Rdxi
 kp8L2wMf5EhLKzEUpyRaKjFXFScCAD/dV4GqwIAAA==
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-9.tower-21.messagelabs.com!1469180651!25057059!1
X-Originating-IP: [74.125.82.65]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 6752 invoked from network); 22 Jul 2016 09:44:11 -0000
Received: from mail-wm0-f65.google.com (HELO mail-wm0-f65.google.com)
 (74.125.82.65)
 by server-9.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 22 Jul 2016 09:44:11 -0000
Received: by mail-wm0-f65.google.com with SMTP id q128so5443734wma.1
 for <win-pv-devel@lists.xenproject.org>; Fri, 22 Jul 2016 02:44:11 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=71aQer3QpTRyR8a3ahb/YVhLTegfnGHNNzC8TZDR3hY=;
 b=iFnDSLKm9EepRqCilXVMYycju0PodgY+9livDs/1DPAA9AXEpuIX1CTM1Y5yUZa63T
 +yoeVgtWcjuUD4PshpJEB7uU6ipx0hW54zVsTh1T5JvoKVCF0CGwpI4eRUXFk5uADq2k
 izsDQkhrDC0Ar3m8tIuVRTx01UfSddpvOllc6CYxf0mT3zLQJYxSxKZNTGM6RTsuOgHr
 8pAUh3ETSiJqN5s8ISEhcaXuYNOc9sPvYf35idgZi6kTk+i/A0deUMM1esNwvD/hpljT
 CgBOm40GD6/kz1YzHEMJQu1sPjPD8G1V11b3mRMXJlYmeStr5HfX3NBa2dD/xb/TUvre
 k5vQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=71aQer3QpTRyR8a3ahb/YVhLTegfnGHNNzC8TZDR3hY=;
 b=dShmPH88m6Orrn+ZysDCTpPaIluTNyq0qkW4cKfJw0Z6Ron4G5ak1fTzf1CbGZRaF4
 TYpLkiETl2MP8Gjis1ZPgh70lVX58Q1VKjQ2WxLAxcvHvYZvArZAoWIgtO0lxSKdj1mt
 h4jB9XRi1ticjfaDCm4E1/rdNoLCPYzBNBmRL7F6Fc8aPsV+WtpPA8djKvQcVAJPaRzO
 2CdyY7XZ+uIDe8/xh8/lgH1KMyqQisU/SL3SopCdSZLGYaH9k4cxETLmsEZ24/jqRhTw
 ebh2xSqpzpZwdRZEh1Zr3REepYQnMBowjrpzWqyTgfn1z5W4yOgJu7B0Dcw0pvK94nsC
 vhYQ==
X-Gm-Message-State: AEkoouvIcQPpek2q9ieMTXc+viHO48J/EJPp/btmo5w3U7Utz+Z94CW0EpJp0AJc9wV0Ug==
X-Received: by 10.194.100.197 with SMTP id fa5mr54992wjb.25.1469180651066;
 Fri, 22 Jul 2016 02:44:11 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id s6sm48329wjm.25.2016.07.22.02.44.10
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 22 Jul 2016 02:44:10 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Fri, 22 Jul 2016 10:44:00 +0100
Message-Id: <1469180641-10320-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 1/2] Add the missing package name to the INF
	file
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0t
CiBzcmMveGVudmJkLmluZiB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpk
aWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC5pbmYgYi9zcmMveGVudmJkLmluZgppbmRleCA5OGVjM2Rl
Li41ZjA5ZWVkIDEwMDY0NAotLS0gYS9zcmMveGVudmJkLmluZgorKysgYi9zcmMveGVudmJkLmlu
ZgpAQCAtMzUsNiArMzUsNyBAQCBDbGFzc0dVSUQ9ezREMzZFOTdCLUUzMjUtMTFDRS1CRkMxLTA4
MDAyQkUxMDMxOH0KIFByb3ZpZGVyPSVWZW5kb3IlIAogQ2F0YWxvZ0ZpbGU9eGVudmJkLmNhdAog
RHJpdmVyVmVyPTAxLzAxLzE5MDAsMC4wLjAuMAorRHJpdmVyUGFja2FnZURpc3BsYXlOYW1lPSVE
aXNrRGVzYyUKIAogW0Rlc3RpbmF0aW9uRGlyc10gCiBEZWZhdWx0RGVzdERpcj0xMiAKLS0gCjIu
MS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2lu
LXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcK
aHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2lu
LXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 09:44:14 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 09:44:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQX0A-0003k4-5E; Fri, 22 Jul 2016 09:44:14 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bQX08-0003it-QT
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 09:44:12 +0000
Received: from [85.158.143.35] by server-2.bemta-6.messagelabs.com id
 EB/65-13744-CEAE1975; Fri, 22 Jul 2016 09:44:12 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprBIsWRWlGSWpSXmKPExsXiVRvkqPv61cR
 wg12zxS3+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxqTOJ6wFZ5krLsz7ydjAOIO5i5GLQ0hgNqPE
 3Vdb2EAcFoFLLBI9s2+wgDgSAu9YJGZfXA2U4QRyYiTeXnvHBGFXSLyeO5kdxBYSUJRovnaBH
 WLUEiaJ1bNWs4Ik2ATUJW6/X8wO0WAn8WnWTTBbREBV4tryY2BDmQW0JB5umMcIYgsLOEpMn3
 0e6CYOoDNUJTastwMJ8wq4S2yY8hzqBjmJvZNXs0xg5F/AyLCKUb04tagstUjXWC+pKDM9oyQ
 3MTNH19DATC83tbg4MT01JzGpWC85P3cTIzB8GIBgB2PHP6dDjJIcTEqivD+uTgwX4kvKT6nM
 SCzOiC8qzUktPsQow8GhJMGrCAxHIcGi1PTUirTMHGAgw6QlOHiURHjlQNK8xQWJucWZ6RCpU
 4zGHAt+3F7LxLFl6r21TEIsefl5qVLivE9eApUKgJRmlObBDYJF2CVGWSlhXkag04R4ClKLcj
 NLUOVfMYpzMCoJ8zKBLOTJzCuB2/cK6BQmoFPmCPSDnFKSiJCSamDsfFdYlHr64P1mFp9vUYf
 3Vph9/RQ8t/nf0wVORnm97/3Xfrr96EDSrNzu5gmqE7qsLd36zsZYsO7sVLdM+K285q3r4x0q
 6z+JtvLm1Zxk2Z4/V6hjRij3xHK76/0R1Rx35ed42rg6/d1+ruu/f3iP9XlG1a+bE8ML2Rdxi
 kp8L2wMf5EhLKzEUpyRaKjFXFScCAD/dV4GqwIAAA==
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-9.tower-21.messagelabs.com!1469180651!25057059!1
X-Originating-IP: [74.125.82.65]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 6752 invoked from network); 22 Jul 2016 09:44:11 -0000
Received: from mail-wm0-f65.google.com (HELO mail-wm0-f65.google.com)
 (74.125.82.65)
 by server-9.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 22 Jul 2016 09:44:11 -0000
Received: by mail-wm0-f65.google.com with SMTP id q128so5443734wma.1
 for <win-pv-devel@lists.xenproject.org>; Fri, 22 Jul 2016 02:44:11 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=71aQer3QpTRyR8a3ahb/YVhLTegfnGHNNzC8TZDR3hY=;
 b=iFnDSLKm9EepRqCilXVMYycju0PodgY+9livDs/1DPAA9AXEpuIX1CTM1Y5yUZa63T
 +yoeVgtWcjuUD4PshpJEB7uU6ipx0hW54zVsTh1T5JvoKVCF0CGwpI4eRUXFk5uADq2k
 izsDQkhrDC0Ar3m8tIuVRTx01UfSddpvOllc6CYxf0mT3zLQJYxSxKZNTGM6RTsuOgHr
 8pAUh3ETSiJqN5s8ISEhcaXuYNOc9sPvYf35idgZi6kTk+i/A0deUMM1esNwvD/hpljT
 CgBOm40GD6/kz1YzHEMJQu1sPjPD8G1V11b3mRMXJlYmeStr5HfX3NBa2dD/xb/TUvre
 k5vQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=71aQer3QpTRyR8a3ahb/YVhLTegfnGHNNzC8TZDR3hY=;
 b=dShmPH88m6Orrn+ZysDCTpPaIluTNyq0qkW4cKfJw0Z6Ron4G5ak1fTzf1CbGZRaF4
 TYpLkiETl2MP8Gjis1ZPgh70lVX58Q1VKjQ2WxLAxcvHvYZvArZAoWIgtO0lxSKdj1mt
 h4jB9XRi1ticjfaDCm4E1/rdNoLCPYzBNBmRL7F6Fc8aPsV+WtpPA8djKvQcVAJPaRzO
 2CdyY7XZ+uIDe8/xh8/lgH1KMyqQisU/SL3SopCdSZLGYaH9k4cxETLmsEZ24/jqRhTw
 ebh2xSqpzpZwdRZEh1Zr3REepYQnMBowjrpzWqyTgfn1z5W4yOgJu7B0Dcw0pvK94nsC
 vhYQ==
X-Gm-Message-State: AEkoouvIcQPpek2q9ieMTXc+viHO48J/EJPp/btmo5w3U7Utz+Z94CW0EpJp0AJc9wV0Ug==
X-Received: by 10.194.100.197 with SMTP id fa5mr54992wjb.25.1469180651066;
 Fri, 22 Jul 2016 02:44:11 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id s6sm48329wjm.25.2016.07.22.02.44.10
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 22 Jul 2016 02:44:10 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Fri, 22 Jul 2016 10:44:00 +0100
Message-Id: <1469180641-10320-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 1/2] Add the missing package name to the INF
	file
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0t
CiBzcmMveGVudmJkLmluZiB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpk
aWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC5pbmYgYi9zcmMveGVudmJkLmluZgppbmRleCA5OGVjM2Rl
Li41ZjA5ZWVkIDEwMDY0NAotLS0gYS9zcmMveGVudmJkLmluZgorKysgYi9zcmMveGVudmJkLmlu
ZgpAQCAtMzUsNiArMzUsNyBAQCBDbGFzc0dVSUQ9ezREMzZFOTdCLUUzMjUtMTFDRS1CRkMxLTA4
MDAyQkUxMDMxOH0KIFByb3ZpZGVyPSVWZW5kb3IlIAogQ2F0YWxvZ0ZpbGU9eGVudmJkLmNhdAog
RHJpdmVyVmVyPTAxLzAxLzE5MDAsMC4wLjAuMAorRHJpdmVyUGFja2FnZURpc3BsYXlOYW1lPSVE
aXNrRGVzYyUKIAogW0Rlc3RpbmF0aW9uRGlyc10gCiBEZWZhdWx0RGVzdERpcj0xMiAKLS0gCjIu
MS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2lu
LXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcK
aHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2lu
LXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 09:44:15 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 09:44:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQX0B-0003l6-6L; Fri, 22 Jul 2016 09:44:15 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bQX0A-0003jw-3F
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 09:44:14 +0000
Received: from [193.109.254.147] by server-14.bemta-14.messagelabs.com id
 ED/8E-17024-DEAE1975; Fri, 22 Jul 2016 09:44:13 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrJIsWRWlGSWpSXmKPExsXiVRvkqPvm1cR
 wg+97TSz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxqQHt1kK1llX/Dn4jK2B8aJaFyMXh5DALEaJ
 1gNbWEEcFoGXLBLtMzoZQRwJgX5WiVs/fzJ3MXICOTESx149YOli5ACyyyWur5UACQsJKEo0X
 7vADjFpCZPEpr/7WEESbALqErffL2aH6LWT+DTrJpgtIqAqcW35MTYQm1lAS+LhhnmMIDOFBZ
 wlrn3UBAmzAJU8u/KDGSTMK+AucXytH8QUOYm9k1ezgNicAh4SPb3P2SFOcJf4/qGLfQKj4AJ
 GhlWMGsWpRWWpRbpGpnpJRZnpGSW5iZk5uoaGJnq5qcXFiempOYlJxXrJ+bmbGIHBVs/AwLiD
 cdNxv0OMkhxMSqK8P65ODBfiS8pPqcxILM6ILyrNSS0+xCjDwaEkwbv/JVBOsCg1PbUiLTMHG
 PYwaQkOHiURXjlg6AvxFhck5hZnpkOkTjHqcmyZem8tkxBLXn5eqpQ47xOQGQIgRRmleXAjYD
 F4iVFWSpiXkYGBQYinILUoN7MEVf4VozgHo5IwbwfIFJ7MvBK4Ta+AjmACOmKOQD/IESWJCCm
 pBsaU8LRU3puveJdXZSi5Xgy2u37i3B7VF6fn6f0KPfOL16zWdaN+5TxOdV2l7lmZdjIRN92e
 qy/43h5873LB1Pdp4QJBr+ONZNXvN277VfWkIN1RyfhY6UelCdeuvi5uLHuvovanIJRrWeDhG
 2zSMo/73PQf5WqZ5+S+qb+xW+/1/bsWx78/3q7EUpyRaKjFXFScCABBtab7vAIAAA==
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-11.tower-27.messagelabs.com!1469180652!46792946!1
X-Originating-IP: [74.125.82.65]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 40025 invoked from network); 22 Jul 2016 09:44:12 -0000
Received: from mail-wm0-f65.google.com (HELO mail-wm0-f65.google.com)
 (74.125.82.65)
 by server-11.tower-27.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 22 Jul 2016 09:44:12 -0000
Received: by mail-wm0-f65.google.com with SMTP id o80so5446802wme.0
 for <win-pv-devel@lists.xenproject.org>; Fri, 22 Jul 2016 02:44:12 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id:in-reply-to:references;
 bh=vXPCn/CsbcuXfzCNCOPGVvleck3E0mJ/SYCdUiOwv60=;
 b=BXRS7d6ZHeZL3mUEzyC495tEuVvSQDme6OUBexQsB7TnGhGa3peu7NOGg7wn89f362
 us1LeeDwGxGPWp7G0QWZNIe82qbHXHZH2XA6rfT89oAgfXkCCCI0mIzUtijN9sjmqbXP
 +WTKGiZJCzoagfalb74PlRlG1IW/3ltvstlAXC6TgSkQoevGPohR3luz5pK+EoTDC/bJ
 VcMZIZMAHbyIFqFvUz5OOwXdWQSGljZRSCwRQiYHf/Pe7x/Db74qAmXh9lByEtBb0SMK
 SQVI6Vvx8IQGXd/jHGc2cTNHtqdD6k5ITVt5vpordZa4c7eAMhtoqo2ROpoo0+hZcJox
 T8/A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
 :references;
 bh=vXPCn/CsbcuXfzCNCOPGVvleck3E0mJ/SYCdUiOwv60=;
 b=JSIAlv3EZl+IbueWtsAp+rrwlCVIUnK0rNRnkpnV57fdF19N56pGOFUZWeFdx07kg1
 mRfZougHVP9ZmMJwGdrsAXfrTKLKVRiBto25k8XQUQ+fMWlk37hHXKGpPidyGKYKs/Ww
 Gvw/t/9xlSbAHQqiaFegIj6QoThgaW5MQ1HAYROb0lepLeGFMqXiKJt7eC9M979umpoD
 2WvUwibtuGJX6d3oEwHYBsdokccPo1QCDILvoYpfIBjoTFGWFe4tEobQNij1bzCYrop4
 3OpK4VSKJgCtKzGN/6yfXSbWlrLs+VQo03fOTxCrGIZZ6nflAXclS4xgiWrclH4Ld+10
 6ZRA==
X-Gm-Message-State: AEkoouvXcidm6dDndnWb+OptqqZ5V2v9wkMUTaFCIlenr74OcC6ZUuzxsG2iplzMrOsabw==
X-Received: by 10.28.45.69 with SMTP id t66mr1436919wmt.41.1469180651955;
 Fri, 22 Jul 2016 02:44:11 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id s6sm48329wjm.25.2016.07.22.02.44.11
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 22 Jul 2016 02:44:11 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Fri, 22 Jul 2016 10:44:01 +0100
Message-Id: <1469180641-10320-2-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1469180641-10320-1-git-send-email-paul.durrant@citrix.com>
References: <1469180641-10320-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 2/2] Remove reboot request from the
	co-installer...
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

Li4uYW5kIHVzZSB0aGUgWEVOQlVTX01PTklUT1Igc2VydmljZSBpbnN0ZWFkLgoKU2lnbmVkLW9m
Zi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0tCiBzcmMvY29p
bnN0L2NvaW5zdC5jIHwgMTI5ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KIHNyYy94ZW52YmQvZHJpdmVyLmMgfCAgNzEgKysrKysrKysrKysrKysr
KysrKy0tLS0tLS0tLS0KIHNyYy94ZW52YmQvZHJpdmVyLmggfCAgIDIgKy0KIHNyYy94ZW52YmQv
ZmRvLmMgICAgfCAgIDIgKy0KIDQgZmlsZXMgY2hhbmdlZCwgNTIgaW5zZXJ0aW9ucygrKSwgMTUy
IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9jb2luc3QvY29pbnN0LmMgYi9zcmMvY29p
bnN0L2NvaW5zdC5jCmluZGV4IDFiZGNiYzYuLmY5NzI4MjIgMTAwNjQ0Ci0tLSBhL3NyYy9jb2lu
c3QvY29pbnN0LmMKKysrIGIvc3JjL2NvaW5zdC9jb2luc3QuYwpAQCAtNTcwLDEyNCArNTcwLDYg
QEAgZmFpbDE6CiAgICAgcmV0dXJuIEZBTFNFOwogfQogCi1zdGF0aWMgQk9PTEVBTgotQ2hlY2tT
dGF0dXMoCi0gICAgT1VUIFBCT09MRUFOICAgIE5lZWRSZWJvb3QKLSAgICApCi17Ci0gICAgSEtF
WSAgICAgICAgICAgIFN0YXR1c0tleTsKLSAgICBIUkVTVUxUICAgICAgICAgRXJyb3I7Ci0gICAg
RFdPUkQgICAgICAgICAgIFZhbHVlTGVuZ3RoOwotICAgIERXT1JEICAgICAgICAgICBWYWx1ZTsK
LSAgICBEV09SRCAgICAgICAgICAgVHlwZTsKLQotICAgIEVycm9yID0gUmVnT3BlbktleUV4KEhL
RVlfTE9DQUxfTUFDSElORSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBTVEFUVVNfS0VZLAot
ICAgICAgICAgICAgICAgICAgICAgICAgIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgS0VZ
X1JFQUQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgJlN0YXR1c0tleSk7Ci0gICAgaWYgKEVy
cm9yICE9IEVSUk9SX1NVQ0NFU1MpIHsKLSAgICAgICAgU2V0TGFzdEVycm9yKEVycm9yKTsKLSAg
ICAgICAgZ290byBmYWlsMTsKLSAgICB9Ci0KLSAgICBWYWx1ZUxlbmd0aCA9IHNpemVvZiAoVmFs
dWUpOwotCi0gICAgRXJyb3IgPSBSZWdRdWVyeVZhbHVlRXgoU3RhdHVzS2V5LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJOZWVkUmVib290IiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICZUeXBlLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChMUEJZVEUpJlZhbHVlLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICZWYWx1ZUxlbmd0aCk7Ci0gICAgaWYgKEVycm9yICE9IEVSUk9SX1NVQ0NFU1MpIHsK
LSAgICAgICAgaWYgKEVycm9yID09IEVSUk9SX0ZJTEVfTk9UX0ZPVU5EKSB7Ci0gICAgICAgICAg
ICBUeXBlID0gUkVHX0RXT1JEOwotICAgICAgICAgICAgVmFsdWUgPSAwOwotICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgU2V0TGFzdEVycm9yKEVycm9yKTsKLSAgICAgICAgICAgIGdvdG8g
ZmFpbDI7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoVHlwZSAhPSBSRUdfRFdPUkQpIHsK
LSAgICAgICAgU2V0TGFzdEVycm9yKEVSUk9SX0JBRF9GT1JNQVQpOwotICAgICAgICBnb3RvIGZh
aWwzOwotICAgIH0KLQotICAgICpOZWVkUmVib290ID0gKFZhbHVlICE9IDApID8gVFJVRSA6IEZB
TFNFOwotCi0gICAgaWYgKCpOZWVkUmVib290KQotICAgICAgICBMb2coIk5lZWRSZWJvb3QiKTsK
LQotICAgIFJlZ0Nsb3NlS2V5KFN0YXR1c0tleSk7Ci0KLSAgICByZXR1cm4gVFJVRTsKLQotZmFp
bDM6Ci0gICAgTG9nKCJmYWlsMyIpOwotCi1mYWlsMjoKLSAgICBMb2coImZhaWwyIik7Ci0KLSAg
ICBSZWdDbG9zZUtleShTdGF0dXNLZXkpOwotCi1mYWlsMToKLSAgICBFcnJvciA9IEdldExhc3RF
cnJvcigpOwotCi0gICAgewotICAgICAgICBQVENIQVIgIE1lc3NhZ2U7Ci0gICAgICAgIE1lc3Nh
Z2UgPSBfX0dldEVycm9yTWVzc2FnZShFcnJvcik7Ci0gICAgICAgIExvZygiZmFpbDEgKCVzKSIs
IE1lc3NhZ2UpOwotICAgICAgICBMb2NhbEZyZWUoTWVzc2FnZSk7Ci0gICAgfQotCi0gICAgcmV0
dXJuIEZBTFNFOwotfQotCi1zdGF0aWMgQk9PTEVBTgotUmVxdWVzdFJlYm9vdCgKLSAgICBJTiAg
SERFVklORk8gICAgICAgICAgICBEZXZpY2VJbmZvU2V0LAotICAgIElOICBQU1BfREVWSU5GT19E
QVRBICAgIERldmljZUluZm9EYXRhCi0gICAgKQotewotICAgIFNQX0RFVklOU1RBTExfUEFSQU1T
ICAgIERldmljZUluc3RhbGxQYXJhbXM7Ci0gICAgSFJFU1VMVCAgICAgICAgICAgICAgICAgRXJy
b3I7Ci0KLSAgICBEZXZpY2VJbnN0YWxsUGFyYW1zLmNiU2l6ZSA9IHNpemVvZiAoRGV2aWNlSW5z
dGFsbFBhcmFtcyk7Ci0KLSAgICBpZiAoIVNldHVwRGlHZXREZXZpY2VJbnN0YWxsUGFyYW1zKERl
dmljZUluZm9TZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXZp
Y2VJbmZvRGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZEZXZp
Y2VJbnN0YWxsUGFyYW1zKSkKLSAgICAgICAgZ290byBmYWlsMTsKLQotICAgIERldmljZUluc3Rh
bGxQYXJhbXMuRmxhZ3MgfD0gRElfTkVFRFJFQk9PVDsKLQotICAgIExvZygiRmxhZ3MgPSAlMDh4
IiwgRGV2aWNlSW5zdGFsbFBhcmFtcy5GbGFncyk7Ci0KLSAgICBpZiAoIVNldHVwRGlTZXREZXZp
Y2VJbnN0YWxsUGFyYW1zKERldmljZUluZm9TZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBEZXZpY2VJbmZvRGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICZEZXZpY2VJbnN0YWxsUGFyYW1zKSkKLSAgICAgICAgZ290byBmYWlsMjsK
LQotICAgIHJldHVybiBUUlVFOwotCi1mYWlsMjoKLSAgICBMb2coImZhaWwyIik7Ci0KLWZhaWwx
OgotICAgIEVycm9yID0gR2V0TGFzdEVycm9yKCk7Ci0KLSAgICB7Ci0gICAgICAgIFBUQ0hBUiAg
TWVzc2FnZTsKLQotICAgICAgICBNZXNzYWdlID0gX19HZXRFcnJvck1lc3NhZ2UoRXJyb3IpOwot
ICAgICAgICBMb2coImZhaWwxICglcykiLCBNZXNzYWdlKTsKLSAgICAgICAgTG9jYWxGcmVlKE1l
c3NhZ2UpOwotICAgIH0KLQotICAgIHJldHVybiBGQUxTRTsKLX0KLQogc3RhdGljIEZPUkNFSU5M
SU5FIEhSRVNVTFQKIF9fRGlmSW5zdGFsbFByZVByb2Nlc3MoCiAgICAgSU4gIEhERVZJTkZPICAg
ICAgICAgICAgICAgICAgICBEZXZpY2VJbmZvU2V0LApAQCAtNzQyLDkgKzYyNCw4IEBAIF9fRGlm
SW5zdGFsbFBvc3RQcm9jZXNzKAogICAgIElOICBQQ09JTlNUQUxMRVJfQ09OVEVYVF9EQVRBICAg
Q29udGV4dAogICAgICkKIHsKLSAgICBCT09MRUFOICAgICAgICAgICAgICAgICAgICAgICAgIFN1
Y2Nlc3M7Ci0gICAgQk9PTEVBTiAgICAgICAgICAgICAgICAgICAgICAgICBOZWVkUmVib290Owot
CisgICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihEZXZpY2VJbmZvU2V0KTsKKyAgICBVTlJFRkVS
RU5DRURfUEFSQU1FVEVSKERldmljZUluZm9EYXRhKTsKICAgICBVTlJFRkVSRU5DRURfUEFSQU1F
VEVSKENvbnRleHQpOwogCiAgICAgTG9nKCI9PT09PiIpOwpAQCAtNzUzLDEyICs2MzQsNiBAQCBf
X0RpZkluc3RhbGxQb3N0UHJvY2VzcygKICAgICAoVk9JRCkgT3ZlcnJpZGVTYW5Qb2xpY3koKTsK
ICAgICAoVk9JRCkgSW5jcmVhc2VEaXNrVGltZU91dCgpOwogCi0gICAgTmVlZFJlYm9vdCA9IEZB
TFNFOwotCi0gICAgU3VjY2VzcyA9IENoZWNrU3RhdHVzKCZOZWVkUmVib290KTsKLSAgICBpZiAo
U3VjY2VzcyAmJiBOZWVkUmVib290KQotICAgICAgICAoVk9JRCkgUmVxdWVzdFJlYm9vdChEZXZp
Y2VJbmZvU2V0LCBEZXZpY2VJbmZvRGF0YSk7Ci0KICAgICBMb2coIjw9PT09Iik7CiAKICAgICBy
ZXR1cm4gTk9fRVJST1I7CmRpZmYgLS1naXQgYS9zcmMveGVudmJkL2RyaXZlci5jIGIvc3JjL3hl
bnZiZC9kcml2ZXIuYwppbmRleCA2ZTdiNjM1Li4zM2RlNDgxIDEwMDY0NAotLS0gYS9zcmMveGVu
dmJkL2RyaXZlci5jCisrKyBiL3NyYy94ZW52YmQvZHJpdmVyLmMKQEAgLTI3OSw0OSArMjc5LDc0
IEBAIF9fRHJpdmVyR2V0RmRvKAogICAgIHJldHVybiBJc0ZkbzsKIH0KIAorI2RlZmluZSBTRVJW
SUNFU19QQVRIICJcXFJlZ2lzdHJ5XFxNYWNoaW5lXFxTWVNURU1cXEN1cnJlbnRDb250cm9sU2V0
XFxTZXJ2aWNlcyIKKworI2RlZmluZSBTRVJWSUNFX0tFWShfTmFtZSkgXAorICAgICAgICBTRVJW
SUNFU19QQVRIICMjICJcXCIgIyMgI19OYW1lCisKKyNkZWZpbmUgUkVRVUVTVF9LRVkgXAorICAg
ICAgICBTRVJWSUNFX0tFWShYRU5CVVNfTU9OSVRPUikgIyMgIlxcUmVxdWVzdCIKKwogVk9JRAot
RHJpdmVyTm90aWZ5SW5zdGFsbGVyKAorRHJpdmVyUmVxdWVzdFJlYm9vdCgKICAgICBWT0lECiAg
ICAgKQogewotICAgIFVOSUNPREVfU1RSSU5HICAgICAgICAgICAgICAgICAgVW5pY29kZTsKLSAg
ICBQS0VZX1ZBTFVFX1BBUlRJQUxfSU5GT1JNQVRJT04gIFBhcnRpYWw7CisgICAgQU5TSV9TVFJJ
TkcgICAgICAgICAgICAgICAgICAgICBBbnNpOworICAgIFVOSUNPREVfU1RSSU5HICAgICAgICAg
ICAgICAgICAgS2V5TmFtZTsKKyAgICBVTklDT0RFX1NUUklORyAgICAgICAgICAgICAgICAgIFZh
bHVlTmFtZTsKKyAgICBXQ0hBUiAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlW10gPSBM
IlhFTlZCRCI7CisgICAgT0JKRUNUX0FUVFJJQlVURVMgICAgICAgICAgICAgICBBdHRyaWJ1dGVz
OworICAgIEhBTkRMRSAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5OwogICAgIE5UU1RBVFVT
ICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOwogCiAgICAgQVNTRVJUM1UoS2VHZXRDdXJy
ZW50SXJxbCgpLCA9PSwgUEFTU0lWRV9MRVZFTCk7CiAKLSAgICBQYXJ0aWFsID0gX19BbGxvY2F0
ZU5vblBhZ2VkUG9vbFdpdGhUYWcoX19GVU5DVElPTl9fLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBfX0xJTkVfXywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRklFTERfT0ZGU0VUKEtFWV9WQUxVRV9QQVJUSUFMX0lORk9S
TUFUSU9OLCBEYXRhKSArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNpemVvZiAoVUxPTkcpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBYRU5WQkRfUE9PTF9UQUcpOwotICAgIHN0YXR1cyA9IFNUQVRVU19OT19NRU1PUlk7
Ci0gICAgaWYgKFBhcnRpYWwgPT0gTlVMTCkKLSAgICAgICAgZ290byBmYWlsMTsKKyAgICBSdGxJ
bml0QW5zaVN0cmluZygmQW5zaSwgUkVRVUVTVF9LRVkpOwogCi0gICAgUGFydGlhbC0+VGl0bGVJ
bmRleCA9IDA7Ci0gICAgUGFydGlhbC0+VHlwZSA9IFJFR19EV09SRDsKLSAgICBQYXJ0aWFsLT5E
YXRhTGVuZ3RoID0gc2l6ZW9mIChVTE9ORyk7Ci0gICAgKihQVUxPTkcpUGFydGlhbC0+RGF0YSA9
IDE7CisgICAgc3RhdHVzID0gUnRsQW5zaVN0cmluZ1RvVW5pY29kZVN0cmluZygmS2V5TmFtZSwg
JkFuc2ksIFRSVUUpOworICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAgICBnb3Rv
IGZhaWwxOwogCi0gICAgUnRsSW5pdFVuaWNvZGVTdHJpbmcoJlVuaWNvZGUsIEwiTmVlZFJlYm9v
dCIpOworICAgIEluaXRpYWxpemVPYmplY3RBdHRyaWJ1dGVzKCZBdHRyaWJ1dGVzLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICZLZXlOYW1lLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIE9CSl9DQVNFX0lOU0VOU0lUSVZFIHwgT0JKX0tFUk5FTF9IQU5ETEUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBOVUxMKTsKIAotICAgIHN0YXR1cyA9IFp3U2V0VmFsdWVLZXkoRHJpdmVyLlN0YXR1
c0tleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICZVbmljb2RlLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgUGFydGlhbC0+VGl0bGVJbmRleCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFBhcnRpYWwtPlR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJ0aWFs
LT5EYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFydGlhbC0+RGF0YUxlbmd0aCk7
CisgICAgc3RhdHVzID0gWndPcGVuS2V5KCZLZXksCisgICAgICAgICAgICAgICAgICAgICAgIEtF
WV9BTExfQUNDRVNTLAorICAgICAgICAgICAgICAgICAgICAgICAmQXR0cmlidXRlcyk7CiAgICAg
aWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCiAgICAgICAgIGdvdG8gZmFpbDI7CiAKLSAgICBfX0Zy
ZWVQb29sV2l0aFRhZyhQYXJ0aWFsLCBYRU5WQkRfUE9PTF9UQUcpOworICAgIFJ0bEluaXRVbmlj
b2RlU3RyaW5nKCZWYWx1ZU5hbWUsIEwiUmVib290Iik7CisKKyAgICBzdGF0dXMgPSBad1NldFZh
bHVlS2V5KEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICZWYWx1ZU5hbWUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVH
X1NaLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzaXplb2YoVmFsdWUpKTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkK
KyAgICAgICAgZ290byBmYWlsMzsKKworICAgIFp3Q2xvc2UoS2V5KTsKKworICAgIFJ0bEZyZWVV
bmljb2RlU3RyaW5nKCZLZXlOYW1lKTsKIAogICAgIHJldHVybjsKIAorZmFpbDM6CisgICAgRXJy
b3IoImZhaWwzXG4iKTsKKworICAgIFp3Q2xvc2UoS2V5KTsKKwogZmFpbDI6CiAgICAgRXJyb3Io
ImZhaWwyXG4iKTsKIAorICAgIFJ0bEZyZWVVbmljb2RlU3RyaW5nKCZLZXlOYW1lKTsKKwogZmFp
bDE6CiAgICAgRXJyb3IoImZhaWwxICglMDh4KVxuIiwgc3RhdHVzKTsKIH0KZGlmZiAtLWdpdCBh
L3NyYy94ZW52YmQvZHJpdmVyLmggYi9zcmMveGVudmJkL2RyaXZlci5oCmluZGV4IDc5MjYwY2Qu
LmNmNTUzMzAgMTAwNjQ0Ci0tLSBhL3NyYy94ZW52YmQvZHJpdmVyLmgKKysrIGIvc3JjL3hlbnZi
ZC9kcml2ZXIuaApAQCAtODEsNyArODEsNyBAQCBEcml2ZXJVbmxpbmtGZG8oCiAgICAgKTsKIAog
ZXh0ZXJuIFZPSUQKLURyaXZlck5vdGlmeUluc3RhbGxlcigKK0RyaXZlclJlcXVlc3RSZWJvb3Qo
CiAgICAgVk9JRAogICAgICk7CiAKZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQvZmRvLmMgYi9zcmMv
eGVudmJkL2Zkby5jCmluZGV4IDVmMTc3OGIuLmRlYWMyMjQgMTAwNjQ0Ci0tLSBhL3NyYy94ZW52
YmQvZmRvLmMKKysrIGIvc3JjL3hlbnZiZC9mZG8uYwpAQCAtODMwLDcgKzgzMCw3IEBAIEZkb1Nj
YW5UYXJnZXRzKAogICAgICAgICBTdG9yUG9ydE5vdGlmaWNhdGlvbihCdXNDaGFuZ2VEZXRlY3Rl
ZCwgRmRvLCAwKTsKICAgICB9CiAgICAgaWYgKE5lZWRSZWJvb3QpIHsKLSAgICAgICAgRHJpdmVy
Tm90aWZ5SW5zdGFsbGVyKCk7CisgICAgICAgIERyaXZlclJlcXVlc3RSZWJvb3QoKTsKICAgICB9
CiB9CiAKLS0gCjIuMS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVu
cHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4v
bGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 09:44:15 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 09:44:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQX0B-0003l6-6L; Fri, 22 Jul 2016 09:44:15 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bQX0A-0003jw-3F
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 09:44:14 +0000
Received: from [193.109.254.147] by server-14.bemta-14.messagelabs.com id
 ED/8E-17024-DEAE1975; Fri, 22 Jul 2016 09:44:13 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrJIsWRWlGSWpSXmKPExsXiVRvkqPvm1cR
 wg+97TSz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxqQHt1kK1llX/Dn4jK2B8aJaFyMXh5DALEaJ
 1gNbWEEcFoGXLBLtMzoZQRwJgX5WiVs/fzJ3MXICOTESx149YOli5ACyyyWur5UACQsJKEo0X
 7vADjFpCZPEpr/7WEESbALqErffL2aH6LWT+DTrJpgtIqAqcW35MTYQm1lAS+LhhnmMIDOFBZ
 wlrn3UBAmzAJU8u/KDGSTMK+AucXytH8QUOYm9k1ezgNicAh4SPb3P2SFOcJf4/qGLfQKj4AJ
 GhlWMGsWpRWWpRbpGpnpJRZnpGSW5iZk5uoaGJnq5qcXFiempOYlJxXrJ+bmbGIHBVs/AwLiD
 cdNxv0OMkhxMSqK8P65ODBfiS8pPqcxILM6ILyrNSS0+xCjDwaEkwbv/JVBOsCg1PbUiLTMHG
 PYwaQkOHiURXjlg6AvxFhck5hZnpkOkTjHqcmyZem8tkxBLXn5eqpQ47xOQGQIgRRmleXAjYD
 F4iVFWSpiXkYGBQYinILUoN7MEVf4VozgHo5IwbwfIFJ7MvBK4Ta+AjmACOmKOQD/IESWJCCm
 pBsaU8LRU3puveJdXZSi5Xgy2u37i3B7VF6fn6f0KPfOL16zWdaN+5TxOdV2l7lmZdjIRN92e
 qy/43h5873LB1Pdp4QJBr+ONZNXvN277VfWkIN1RyfhY6UelCdeuvi5uLHuvovanIJRrWeDhG
 2zSMo/73PQf5WqZ5+S+qb+xW+/1/bsWx78/3q7EUpyRaKjFXFScCABBtab7vAIAAA==
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-11.tower-27.messagelabs.com!1469180652!46792946!1
X-Originating-IP: [74.125.82.65]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 40025 invoked from network); 22 Jul 2016 09:44:12 -0000
Received: from mail-wm0-f65.google.com (HELO mail-wm0-f65.google.com)
 (74.125.82.65)
 by server-11.tower-27.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 22 Jul 2016 09:44:12 -0000
Received: by mail-wm0-f65.google.com with SMTP id o80so5446802wme.0
 for <win-pv-devel@lists.xenproject.org>; Fri, 22 Jul 2016 02:44:12 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id:in-reply-to:references;
 bh=vXPCn/CsbcuXfzCNCOPGVvleck3E0mJ/SYCdUiOwv60=;
 b=BXRS7d6ZHeZL3mUEzyC495tEuVvSQDme6OUBexQsB7TnGhGa3peu7NOGg7wn89f362
 us1LeeDwGxGPWp7G0QWZNIe82qbHXHZH2XA6rfT89oAgfXkCCCI0mIzUtijN9sjmqbXP
 +WTKGiZJCzoagfalb74PlRlG1IW/3ltvstlAXC6TgSkQoevGPohR3luz5pK+EoTDC/bJ
 VcMZIZMAHbyIFqFvUz5OOwXdWQSGljZRSCwRQiYHf/Pe7x/Db74qAmXh9lByEtBb0SMK
 SQVI6Vvx8IQGXd/jHGc2cTNHtqdD6k5ITVt5vpordZa4c7eAMhtoqo2ROpoo0+hZcJox
 T8/A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
 :references;
 bh=vXPCn/CsbcuXfzCNCOPGVvleck3E0mJ/SYCdUiOwv60=;
 b=JSIAlv3EZl+IbueWtsAp+rrwlCVIUnK0rNRnkpnV57fdF19N56pGOFUZWeFdx07kg1
 mRfZougHVP9ZmMJwGdrsAXfrTKLKVRiBto25k8XQUQ+fMWlk37hHXKGpPidyGKYKs/Ww
 Gvw/t/9xlSbAHQqiaFegIj6QoThgaW5MQ1HAYROb0lepLeGFMqXiKJt7eC9M979umpoD
 2WvUwibtuGJX6d3oEwHYBsdokccPo1QCDILvoYpfIBjoTFGWFe4tEobQNij1bzCYrop4
 3OpK4VSKJgCtKzGN/6yfXSbWlrLs+VQo03fOTxCrGIZZ6nflAXclS4xgiWrclH4Ld+10
 6ZRA==
X-Gm-Message-State: AEkoouvXcidm6dDndnWb+OptqqZ5V2v9wkMUTaFCIlenr74OcC6ZUuzxsG2iplzMrOsabw==
X-Received: by 10.28.45.69 with SMTP id t66mr1436919wmt.41.1469180651955;
 Fri, 22 Jul 2016 02:44:11 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id s6sm48329wjm.25.2016.07.22.02.44.11
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 22 Jul 2016 02:44:11 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Fri, 22 Jul 2016 10:44:01 +0100
Message-Id: <1469180641-10320-2-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1469180641-10320-1-git-send-email-paul.durrant@citrix.com>
References: <1469180641-10320-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 2/2] Remove reboot request from the
	co-installer...
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

Li4uYW5kIHVzZSB0aGUgWEVOQlVTX01PTklUT1Igc2VydmljZSBpbnN0ZWFkLgoKU2lnbmVkLW9m
Zi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0tCiBzcmMvY29p
bnN0L2NvaW5zdC5jIHwgMTI5ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KIHNyYy94ZW52YmQvZHJpdmVyLmMgfCAgNzEgKysrKysrKysrKysrKysr
KysrKy0tLS0tLS0tLS0KIHNyYy94ZW52YmQvZHJpdmVyLmggfCAgIDIgKy0KIHNyYy94ZW52YmQv
ZmRvLmMgICAgfCAgIDIgKy0KIDQgZmlsZXMgY2hhbmdlZCwgNTIgaW5zZXJ0aW9ucygrKSwgMTUy
IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9jb2luc3QvY29pbnN0LmMgYi9zcmMvY29p
bnN0L2NvaW5zdC5jCmluZGV4IDFiZGNiYzYuLmY5NzI4MjIgMTAwNjQ0Ci0tLSBhL3NyYy9jb2lu
c3QvY29pbnN0LmMKKysrIGIvc3JjL2NvaW5zdC9jb2luc3QuYwpAQCAtNTcwLDEyNCArNTcwLDYg
QEAgZmFpbDE6CiAgICAgcmV0dXJuIEZBTFNFOwogfQogCi1zdGF0aWMgQk9PTEVBTgotQ2hlY2tT
dGF0dXMoCi0gICAgT1VUIFBCT09MRUFOICAgIE5lZWRSZWJvb3QKLSAgICApCi17Ci0gICAgSEtF
WSAgICAgICAgICAgIFN0YXR1c0tleTsKLSAgICBIUkVTVUxUICAgICAgICAgRXJyb3I7Ci0gICAg
RFdPUkQgICAgICAgICAgIFZhbHVlTGVuZ3RoOwotICAgIERXT1JEICAgICAgICAgICBWYWx1ZTsK
LSAgICBEV09SRCAgICAgICAgICAgVHlwZTsKLQotICAgIEVycm9yID0gUmVnT3BlbktleUV4KEhL
RVlfTE9DQUxfTUFDSElORSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBTVEFUVVNfS0VZLAot
ICAgICAgICAgICAgICAgICAgICAgICAgIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgS0VZ
X1JFQUQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgJlN0YXR1c0tleSk7Ci0gICAgaWYgKEVy
cm9yICE9IEVSUk9SX1NVQ0NFU1MpIHsKLSAgICAgICAgU2V0TGFzdEVycm9yKEVycm9yKTsKLSAg
ICAgICAgZ290byBmYWlsMTsKLSAgICB9Ci0KLSAgICBWYWx1ZUxlbmd0aCA9IHNpemVvZiAoVmFs
dWUpOwotCi0gICAgRXJyb3IgPSBSZWdRdWVyeVZhbHVlRXgoU3RhdHVzS2V5LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJOZWVkUmVib290IiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICZUeXBlLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChMUEJZVEUpJlZhbHVlLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICZWYWx1ZUxlbmd0aCk7Ci0gICAgaWYgKEVycm9yICE9IEVSUk9SX1NVQ0NFU1MpIHsK
LSAgICAgICAgaWYgKEVycm9yID09IEVSUk9SX0ZJTEVfTk9UX0ZPVU5EKSB7Ci0gICAgICAgICAg
ICBUeXBlID0gUkVHX0RXT1JEOwotICAgICAgICAgICAgVmFsdWUgPSAwOwotICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgU2V0TGFzdEVycm9yKEVycm9yKTsKLSAgICAgICAgICAgIGdvdG8g
ZmFpbDI7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoVHlwZSAhPSBSRUdfRFdPUkQpIHsK
LSAgICAgICAgU2V0TGFzdEVycm9yKEVSUk9SX0JBRF9GT1JNQVQpOwotICAgICAgICBnb3RvIGZh
aWwzOwotICAgIH0KLQotICAgICpOZWVkUmVib290ID0gKFZhbHVlICE9IDApID8gVFJVRSA6IEZB
TFNFOwotCi0gICAgaWYgKCpOZWVkUmVib290KQotICAgICAgICBMb2coIk5lZWRSZWJvb3QiKTsK
LQotICAgIFJlZ0Nsb3NlS2V5KFN0YXR1c0tleSk7Ci0KLSAgICByZXR1cm4gVFJVRTsKLQotZmFp
bDM6Ci0gICAgTG9nKCJmYWlsMyIpOwotCi1mYWlsMjoKLSAgICBMb2coImZhaWwyIik7Ci0KLSAg
ICBSZWdDbG9zZUtleShTdGF0dXNLZXkpOwotCi1mYWlsMToKLSAgICBFcnJvciA9IEdldExhc3RF
cnJvcigpOwotCi0gICAgewotICAgICAgICBQVENIQVIgIE1lc3NhZ2U7Ci0gICAgICAgIE1lc3Nh
Z2UgPSBfX0dldEVycm9yTWVzc2FnZShFcnJvcik7Ci0gICAgICAgIExvZygiZmFpbDEgKCVzKSIs
IE1lc3NhZ2UpOwotICAgICAgICBMb2NhbEZyZWUoTWVzc2FnZSk7Ci0gICAgfQotCi0gICAgcmV0
dXJuIEZBTFNFOwotfQotCi1zdGF0aWMgQk9PTEVBTgotUmVxdWVzdFJlYm9vdCgKLSAgICBJTiAg
SERFVklORk8gICAgICAgICAgICBEZXZpY2VJbmZvU2V0LAotICAgIElOICBQU1BfREVWSU5GT19E
QVRBICAgIERldmljZUluZm9EYXRhCi0gICAgKQotewotICAgIFNQX0RFVklOU1RBTExfUEFSQU1T
ICAgIERldmljZUluc3RhbGxQYXJhbXM7Ci0gICAgSFJFU1VMVCAgICAgICAgICAgICAgICAgRXJy
b3I7Ci0KLSAgICBEZXZpY2VJbnN0YWxsUGFyYW1zLmNiU2l6ZSA9IHNpemVvZiAoRGV2aWNlSW5z
dGFsbFBhcmFtcyk7Ci0KLSAgICBpZiAoIVNldHVwRGlHZXREZXZpY2VJbnN0YWxsUGFyYW1zKERl
dmljZUluZm9TZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXZp
Y2VJbmZvRGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZEZXZp
Y2VJbnN0YWxsUGFyYW1zKSkKLSAgICAgICAgZ290byBmYWlsMTsKLQotICAgIERldmljZUluc3Rh
bGxQYXJhbXMuRmxhZ3MgfD0gRElfTkVFRFJFQk9PVDsKLQotICAgIExvZygiRmxhZ3MgPSAlMDh4
IiwgRGV2aWNlSW5zdGFsbFBhcmFtcy5GbGFncyk7Ci0KLSAgICBpZiAoIVNldHVwRGlTZXREZXZp
Y2VJbnN0YWxsUGFyYW1zKERldmljZUluZm9TZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBEZXZpY2VJbmZvRGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICZEZXZpY2VJbnN0YWxsUGFyYW1zKSkKLSAgICAgICAgZ290byBmYWlsMjsK
LQotICAgIHJldHVybiBUUlVFOwotCi1mYWlsMjoKLSAgICBMb2coImZhaWwyIik7Ci0KLWZhaWwx
OgotICAgIEVycm9yID0gR2V0TGFzdEVycm9yKCk7Ci0KLSAgICB7Ci0gICAgICAgIFBUQ0hBUiAg
TWVzc2FnZTsKLQotICAgICAgICBNZXNzYWdlID0gX19HZXRFcnJvck1lc3NhZ2UoRXJyb3IpOwot
ICAgICAgICBMb2coImZhaWwxICglcykiLCBNZXNzYWdlKTsKLSAgICAgICAgTG9jYWxGcmVlKE1l
c3NhZ2UpOwotICAgIH0KLQotICAgIHJldHVybiBGQUxTRTsKLX0KLQogc3RhdGljIEZPUkNFSU5M
SU5FIEhSRVNVTFQKIF9fRGlmSW5zdGFsbFByZVByb2Nlc3MoCiAgICAgSU4gIEhERVZJTkZPICAg
ICAgICAgICAgICAgICAgICBEZXZpY2VJbmZvU2V0LApAQCAtNzQyLDkgKzYyNCw4IEBAIF9fRGlm
SW5zdGFsbFBvc3RQcm9jZXNzKAogICAgIElOICBQQ09JTlNUQUxMRVJfQ09OVEVYVF9EQVRBICAg
Q29udGV4dAogICAgICkKIHsKLSAgICBCT09MRUFOICAgICAgICAgICAgICAgICAgICAgICAgIFN1
Y2Nlc3M7Ci0gICAgQk9PTEVBTiAgICAgICAgICAgICAgICAgICAgICAgICBOZWVkUmVib290Owot
CisgICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihEZXZpY2VJbmZvU2V0KTsKKyAgICBVTlJFRkVS
RU5DRURfUEFSQU1FVEVSKERldmljZUluZm9EYXRhKTsKICAgICBVTlJFRkVSRU5DRURfUEFSQU1F
VEVSKENvbnRleHQpOwogCiAgICAgTG9nKCI9PT09PiIpOwpAQCAtNzUzLDEyICs2MzQsNiBAQCBf
X0RpZkluc3RhbGxQb3N0UHJvY2VzcygKICAgICAoVk9JRCkgT3ZlcnJpZGVTYW5Qb2xpY3koKTsK
ICAgICAoVk9JRCkgSW5jcmVhc2VEaXNrVGltZU91dCgpOwogCi0gICAgTmVlZFJlYm9vdCA9IEZB
TFNFOwotCi0gICAgU3VjY2VzcyA9IENoZWNrU3RhdHVzKCZOZWVkUmVib290KTsKLSAgICBpZiAo
U3VjY2VzcyAmJiBOZWVkUmVib290KQotICAgICAgICAoVk9JRCkgUmVxdWVzdFJlYm9vdChEZXZp
Y2VJbmZvU2V0LCBEZXZpY2VJbmZvRGF0YSk7Ci0KICAgICBMb2coIjw9PT09Iik7CiAKICAgICBy
ZXR1cm4gTk9fRVJST1I7CmRpZmYgLS1naXQgYS9zcmMveGVudmJkL2RyaXZlci5jIGIvc3JjL3hl
bnZiZC9kcml2ZXIuYwppbmRleCA2ZTdiNjM1Li4zM2RlNDgxIDEwMDY0NAotLS0gYS9zcmMveGVu
dmJkL2RyaXZlci5jCisrKyBiL3NyYy94ZW52YmQvZHJpdmVyLmMKQEAgLTI3OSw0OSArMjc5LDc0
IEBAIF9fRHJpdmVyR2V0RmRvKAogICAgIHJldHVybiBJc0ZkbzsKIH0KIAorI2RlZmluZSBTRVJW
SUNFU19QQVRIICJcXFJlZ2lzdHJ5XFxNYWNoaW5lXFxTWVNURU1cXEN1cnJlbnRDb250cm9sU2V0
XFxTZXJ2aWNlcyIKKworI2RlZmluZSBTRVJWSUNFX0tFWShfTmFtZSkgXAorICAgICAgICBTRVJW
SUNFU19QQVRIICMjICJcXCIgIyMgI19OYW1lCisKKyNkZWZpbmUgUkVRVUVTVF9LRVkgXAorICAg
ICAgICBTRVJWSUNFX0tFWShYRU5CVVNfTU9OSVRPUikgIyMgIlxcUmVxdWVzdCIKKwogVk9JRAot
RHJpdmVyTm90aWZ5SW5zdGFsbGVyKAorRHJpdmVyUmVxdWVzdFJlYm9vdCgKICAgICBWT0lECiAg
ICAgKQogewotICAgIFVOSUNPREVfU1RSSU5HICAgICAgICAgICAgICAgICAgVW5pY29kZTsKLSAg
ICBQS0VZX1ZBTFVFX1BBUlRJQUxfSU5GT1JNQVRJT04gIFBhcnRpYWw7CisgICAgQU5TSV9TVFJJ
TkcgICAgICAgICAgICAgICAgICAgICBBbnNpOworICAgIFVOSUNPREVfU1RSSU5HICAgICAgICAg
ICAgICAgICAgS2V5TmFtZTsKKyAgICBVTklDT0RFX1NUUklORyAgICAgICAgICAgICAgICAgIFZh
bHVlTmFtZTsKKyAgICBXQ0hBUiAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlW10gPSBM
IlhFTlZCRCI7CisgICAgT0JKRUNUX0FUVFJJQlVURVMgICAgICAgICAgICAgICBBdHRyaWJ1dGVz
OworICAgIEhBTkRMRSAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5OwogICAgIE5UU1RBVFVT
ICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOwogCiAgICAgQVNTRVJUM1UoS2VHZXRDdXJy
ZW50SXJxbCgpLCA9PSwgUEFTU0lWRV9MRVZFTCk7CiAKLSAgICBQYXJ0aWFsID0gX19BbGxvY2F0
ZU5vblBhZ2VkUG9vbFdpdGhUYWcoX19GVU5DVElPTl9fLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBfX0xJTkVfXywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRklFTERfT0ZGU0VUKEtFWV9WQUxVRV9QQVJUSUFMX0lORk9S
TUFUSU9OLCBEYXRhKSArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNpemVvZiAoVUxPTkcpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBYRU5WQkRfUE9PTF9UQUcpOwotICAgIHN0YXR1cyA9IFNUQVRVU19OT19NRU1PUlk7
Ci0gICAgaWYgKFBhcnRpYWwgPT0gTlVMTCkKLSAgICAgICAgZ290byBmYWlsMTsKKyAgICBSdGxJ
bml0QW5zaVN0cmluZygmQW5zaSwgUkVRVUVTVF9LRVkpOwogCi0gICAgUGFydGlhbC0+VGl0bGVJ
bmRleCA9IDA7Ci0gICAgUGFydGlhbC0+VHlwZSA9IFJFR19EV09SRDsKLSAgICBQYXJ0aWFsLT5E
YXRhTGVuZ3RoID0gc2l6ZW9mIChVTE9ORyk7Ci0gICAgKihQVUxPTkcpUGFydGlhbC0+RGF0YSA9
IDE7CisgICAgc3RhdHVzID0gUnRsQW5zaVN0cmluZ1RvVW5pY29kZVN0cmluZygmS2V5TmFtZSwg
JkFuc2ksIFRSVUUpOworICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAgICBnb3Rv
IGZhaWwxOwogCi0gICAgUnRsSW5pdFVuaWNvZGVTdHJpbmcoJlVuaWNvZGUsIEwiTmVlZFJlYm9v
dCIpOworICAgIEluaXRpYWxpemVPYmplY3RBdHRyaWJ1dGVzKCZBdHRyaWJ1dGVzLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICZLZXlOYW1lLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIE9CSl9DQVNFX0lOU0VOU0lUSVZFIHwgT0JKX0tFUk5FTF9IQU5ETEUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBOVUxMKTsKIAotICAgIHN0YXR1cyA9IFp3U2V0VmFsdWVLZXkoRHJpdmVyLlN0YXR1
c0tleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICZVbmljb2RlLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgUGFydGlhbC0+VGl0bGVJbmRleCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFBhcnRpYWwtPlR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJ0aWFs
LT5EYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFydGlhbC0+RGF0YUxlbmd0aCk7
CisgICAgc3RhdHVzID0gWndPcGVuS2V5KCZLZXksCisgICAgICAgICAgICAgICAgICAgICAgIEtF
WV9BTExfQUNDRVNTLAorICAgICAgICAgICAgICAgICAgICAgICAmQXR0cmlidXRlcyk7CiAgICAg
aWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCiAgICAgICAgIGdvdG8gZmFpbDI7CiAKLSAgICBfX0Zy
ZWVQb29sV2l0aFRhZyhQYXJ0aWFsLCBYRU5WQkRfUE9PTF9UQUcpOworICAgIFJ0bEluaXRVbmlj
b2RlU3RyaW5nKCZWYWx1ZU5hbWUsIEwiUmVib290Iik7CisKKyAgICBzdGF0dXMgPSBad1NldFZh
bHVlS2V5KEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICZWYWx1ZU5hbWUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVH
X1NaLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzaXplb2YoVmFsdWUpKTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkK
KyAgICAgICAgZ290byBmYWlsMzsKKworICAgIFp3Q2xvc2UoS2V5KTsKKworICAgIFJ0bEZyZWVV
bmljb2RlU3RyaW5nKCZLZXlOYW1lKTsKIAogICAgIHJldHVybjsKIAorZmFpbDM6CisgICAgRXJy
b3IoImZhaWwzXG4iKTsKKworICAgIFp3Q2xvc2UoS2V5KTsKKwogZmFpbDI6CiAgICAgRXJyb3Io
ImZhaWwyXG4iKTsKIAorICAgIFJ0bEZyZWVVbmljb2RlU3RyaW5nKCZLZXlOYW1lKTsKKwogZmFp
bDE6CiAgICAgRXJyb3IoImZhaWwxICglMDh4KVxuIiwgc3RhdHVzKTsKIH0KZGlmZiAtLWdpdCBh
L3NyYy94ZW52YmQvZHJpdmVyLmggYi9zcmMveGVudmJkL2RyaXZlci5oCmluZGV4IDc5MjYwY2Qu
LmNmNTUzMzAgMTAwNjQ0Ci0tLSBhL3NyYy94ZW52YmQvZHJpdmVyLmgKKysrIGIvc3JjL3hlbnZi
ZC9kcml2ZXIuaApAQCAtODEsNyArODEsNyBAQCBEcml2ZXJVbmxpbmtGZG8oCiAgICAgKTsKIAog
ZXh0ZXJuIFZPSUQKLURyaXZlck5vdGlmeUluc3RhbGxlcigKK0RyaXZlclJlcXVlc3RSZWJvb3Qo
CiAgICAgVk9JRAogICAgICk7CiAKZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQvZmRvLmMgYi9zcmMv
eGVudmJkL2Zkby5jCmluZGV4IDVmMTc3OGIuLmRlYWMyMjQgMTAwNjQ0Ci0tLSBhL3NyYy94ZW52
YmQvZmRvLmMKKysrIGIvc3JjL3hlbnZiZC9mZG8uYwpAQCAtODMwLDcgKzgzMCw3IEBAIEZkb1Nj
YW5UYXJnZXRzKAogICAgICAgICBTdG9yUG9ydE5vdGlmaWNhdGlvbihCdXNDaGFuZ2VEZXRlY3Rl
ZCwgRmRvLCAwKTsKICAgICB9CiAgICAgaWYgKE5lZWRSZWJvb3QpIHsKLSAgICAgICAgRHJpdmVy
Tm90aWZ5SW5zdGFsbGVyKCk7CisgICAgICAgIERyaXZlclJlcXVlc3RSZWJvb3QoKTsKICAgICB9
CiB9CiAKLS0gCjIuMS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVu
cHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4v
bGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 10:05:11 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 10:05:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQXKQ-00067h-05; Fri, 22 Jul 2016 10:05:09 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=004762f41=Paul.Durrant@citrix.com>)
 id 1bQXKO-00067b-Hs
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 10:05:08 +0000
Received: from [85.158.143.35] by server-3.bemta-6.messagelabs.com id
 69/E4-05661-3DFE1975; Fri, 22 Jul 2016 10:05:07 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrJIsWRWlGSWpSXmKPExsWyU9JRQvfy+4n
 hBjt3iVr8WZzowOhx+MMVlgDGKNbMvKT8igTWjO17PjMW3FSpOLTyFEsD4xyVLkZODgkBP4ll
 EzYwgthsAjoSS4/OZwKxRQQKJL6/n8cMYjMLqElc39/FCmILCyRIHF7VxAZRkygxZ/sMqHoji
 eYpl8HiLAKqEi3NR8FsXgF3iYW/H4PZQgIuErt6P4PN4RRwlTiz9DaYzSggK/GlcTXULnGJW0
 8gbpAQEJBYsuc8M4QtKvHy8T9WCNtAYuvSfSxdjBxA9ZoS63fpQ7QqSkzpfsgOsVZQ4uTMJyw
 Qa1Uktjw+ADWGW2Ll5z8sExhFZyHZNgth0iwkk2YhmbSAkWUVo3pxalFZapGusV5SUWZ6Rklu
 YmaOrqGBmV5uanFxYnpqTmJSsV5yfu4mRmCUMADBDsaOf06HGCU5mJREeX9cnRguxJeUn1KZk
 VicEV9UmpNafIhRhoNDSYI35h1QTrAoNT21Ii0zBxivMGkJDh4lEd5ekDRvcUFibnFmOkTqFK
 OilDivIUhCACSRUZoH1wZLEZcYZaWEeRmBDhHiKUgtys0sQZV/xSjOwagkzFsMMoUnM68Ebvo
 roMVMQIvnCPSDLC5JREhJNTC6XRZpezLHb6Egy6M07rXrGm9vWtw34fb/8BYLzePrEiSP3239
 fny9jPjFkKetfy4bnt2waMLqp3IyGywZ7Z4ITrE55KgW+j/xmT+jNeOuI9tlNz/5b3nrfkeZZ
 c58a8/V+t9LujMXablrb9y19wQ7Z+/3tfLiCiE/875vik8Ra5l2atWf5IozSizFGYmGWsxFxY
 kA+Q7dNQwDAAA=
X-Env-Sender: prvs=004762f41=Paul.Durrant@citrix.com
X-Msg-Ref: server-16.tower-21.messagelabs.com!1469181907!20691979!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: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 41011 invoked from network); 22 Jul 2016 10:05:07 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-16.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 22 Jul 2016 10:05:07 -0000
X-IronPort-AV: E=Sophos;i="5.28,404,1464652800"; d="scan'208";a="26926949"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 1/2] Clean up watches,	suspend handlers
 and events on D0->D3
Thread-Index: AQHR40C+JB4bubIiu0WmFiLSj23KOaAkOmbg
Date: Fri, 22 Jul 2016 10:05:05 +0000
Message-ID: <ca29d3f2d0de491c83e00aeaddfcaf2d@AMSPEX02CL03.citrite.net>
References: <1469099503-7416-1-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1469099503-7416-1-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 1/2] Clean up watches,
 suspend handlers and events on D0->D3
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjEgSnVseSAyMDE2IDEyOjEyDQo+IFRvOiB3aW4tcHYt
ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gQ2M6IE93ZW4gU21pdGgNCj4gU3ViamVjdDog
W3dpbi1wdi1kZXZlbF0gW1BBVENIIDEvMl0gQ2xlYW4gdXAgd2F0Y2hlcywgc3VzcGVuZCBoYW5k
bGVycw0KPiBhbmQgZXZlbnRzIG9uIEQwLT5EMw0KPiANCj4gKiBDYWxsIFhlbklmYWNlQ2xlYW51
cCBvbiBEMC0+RDMgdHJhbnNpdGlvbg0KPiAqIENoYW5nZSBYZW5JZmFjZUNsZWFudXAgdG8gYWNj
ZXB0IGEgTlVMTCBmaWxlIG9iamVjdCwgd2hpY2ggd2lsbA0KPiAgIGNsZWFuIHVwIGV2ZXJ5dGhp
bmcsIHJlZ2FyZGxlc3Mgb2YgZmlsZSBvYmplY3QNCj4gDQo+IFNpZ25lZC1vZmYtYnk6IE93ZW4g
U21pdGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4NCg0KQWNrZWQtYnk6IFBhdWwgRHVycmFudCA8
cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+DQoNCj4gLS0tDQo+ICBzcmMveGVuaWZhY2UvZmRvLmMg
ICAgfCAgMSArDQo+ICBzcmMveGVuaWZhY2UvaW9jdGxzLmMgfCAxMSArKysrKysrLS0tLQ0KPiAg
c3JjL3hlbmlmYWNlL2lvY3Rscy5oIHwgIDIgKy0NCj4gIDMgZmlsZXMgY2hhbmdlZCwgOSBpbnNl
cnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL3NyYy94ZW5pZmFj
ZS9mZG8uYyBiL3NyYy94ZW5pZmFjZS9mZG8uYw0KPiBpbmRleCAxOWU1MGZlLi5jMWMzOTAxIDEw
MDY0NA0KPiAtLS0gYS9zcmMveGVuaWZhY2UvZmRvLmMNCj4gKysrIGIvc3JjL3hlbmlmYWNlL2Zk
by5jDQo+IEBAIC0xMDUwLDYgKzEwNTAsNyBAQCBGZG9EMFRvRDMoDQo+ICAgICAgVHJhY2UoIj09
PT0+XG4iKTsNCj4gDQo+ICAgICAgV21pU2Vzc2lvbnNTdXNwZW5kQWxsKEZkbyk7DQo+ICsgICAg
WGVuSWZhY2VDbGVhbnVwKEZkbywgTlVMTCk7DQo+IA0KPiAgICAgIFBvd2VyU3RhdGUuRGV2aWNl
U3RhdGUgPSBQb3dlckRldmljZUQzOw0KPiAgICAgIFBvU2V0UG93ZXJTdGF0ZShGZG8tPkR4LT5E
ZXZpY2VPYmplY3QsDQo+IGRpZmYgLS1naXQgYS9zcmMveGVuaWZhY2UvaW9jdGxzLmMgYi9zcmMv
eGVuaWZhY2UvaW9jdGxzLmMNCj4gaW5kZXggNjM5YjAxNS4uY2E5NDY1OCAxMDA2NDQNCj4gLS0t
IGEvc3JjL3hlbmlmYWNlL2lvY3Rscy5jDQo+ICsrKyBiL3NyYy94ZW5pZmFjZS9pb2N0bHMuYw0K
PiBAQCAtMTM3LDcgKzEzNyw3IEBAIF9JUlFMX3JlcXVpcmVzXyhQQVNTSVZFX0xFVkVMKSAvLyBF
dnRjaG5GcmVlIGNhbGxzDQo+IEtlRmx1c2hRdWV1ZWREcGNzDQo+ICBWT0lEDQo+ICBYZW5JZmFj
ZUNsZWFudXAoDQo+ICAgICAgX19pbiAgUFhFTklGQUNFX0ZETyBGZG8sDQo+IC0gICAgX19pbiAg
UEZJTEVfT0JKRUNUICBGaWxlT2JqZWN0DQo+ICsgICAgX19pbl9vcHQgIFBGSUxFX09CSkVDVCAg
RmlsZU9iamVjdA0KPiAgICAgICkNCj4gIHsNCj4gICAgICBQTElTVF9FTlRSWSBOb2RlOw0KPiBA
QCAtMTU0LDcgKzE1NCw4IEBAIFhlbklmYWNlQ2xlYW51cCgNCj4gICAgICAgICAgU3RvcmVDb250
ZXh0ID0gQ09OVEFJTklOR19SRUNPUkQoTm9kZSwNCj4gWEVOSUZBQ0VfU1RPUkVfQ09OVEVYVCwg
RW50cnkpOw0KPiANCj4gICAgICAgICAgTm9kZSA9IE5vZGUtPkZsaW5rOw0KPiAtICAgICAgICBp
ZiAoU3RvcmVDb250ZXh0LT5GaWxlT2JqZWN0ICE9IEZpbGVPYmplY3QpDQo+ICsgICAgICAgIGlm
IChGaWxlT2JqZWN0ICE9IE5VTEwgJiYNCj4gKyAgICAgICAgICAgIFN0b3JlQ29udGV4dC0+Rmls
ZU9iamVjdCAhPSBGaWxlT2JqZWN0KQ0KPiAgICAgICAgICAgICAgY29udGludWU7DQo+IA0KPiAg
ICAgICAgICBYZW5JZmFjZURlYnVnUHJpbnQoVFJBQ0UsICJTdG9yZSBjb250ZXh0ICVwXG4iLCBT
dG9yZUNvbnRleHQpOw0KPiBAQCAtMTcxLDcgKzE3Miw4IEBAIFhlbklmYWNlQ2xlYW51cCgNCj4g
ICAgICAgICAgRXZ0Y2huQ29udGV4dCA9IENPTlRBSU5JTkdfUkVDT1JEKE5vZGUsDQo+IFhFTklG
QUNFX0VWVENITl9DT05URVhULCBFbnRyeSk7DQo+IA0KPiAgICAgICAgICBOb2RlID0gTm9kZS0+
Rmxpbms7DQo+IC0gICAgICAgIGlmIChFdnRjaG5Db250ZXh0LT5GaWxlT2JqZWN0ICE9IEZpbGVP
YmplY3QpDQo+ICsgICAgICAgIGlmIChGaWxlT2JqZWN0ICE9IE5VTEwgJiYNCj4gKyAgICAgICAg
ICAgIEV2dGNobkNvbnRleHQtPkZpbGVPYmplY3QgIT0gRmlsZU9iamVjdCkNCj4gICAgICAgICAg
ICAgIGNvbnRpbnVlOw0KPiANCj4gICAgICAgICAgWGVuSWZhY2VEZWJ1Z1ByaW50KFRSQUNFLCAi
RXZ0Y2huIGNvbnRleHQgJXBcbiIsIEV2dGNobkNvbnRleHQpOw0KPiBAQCAtMTk3LDcgKzE5OSw4
IEBAIFhlbklmYWNlQ2xlYW51cCgNCj4gICAgICAgICAgU3VzcGVuZENvbnRleHQgPSBDT05UQUlO
SU5HX1JFQ09SRChOb2RlLA0KPiBYRU5JRkFDRV9TVVNQRU5EX0NPTlRFWFQsIEVudHJ5KTsNCj4g
DQo+ICAgICAgICAgIE5vZGUgPSBOb2RlLT5GbGluazsNCj4gLSAgICAgICAgaWYgKFN1c3BlbmRD
b250ZXh0LT5GaWxlT2JqZWN0ICE9IEZpbGVPYmplY3QpDQo+ICsgICAgICAgIGlmIChGaWxlT2Jq
ZWN0ICE9IE5VTEwgJiYNCj4gKyAgICAgICAgICAgIFN1c3BlbmRDb250ZXh0LT5GaWxlT2JqZWN0
ICE9IEZpbGVPYmplY3QpDQo+ICAgICAgICAgICAgICBjb250aW51ZTsNCj4gDQo+ICAgICAgICAg
IFhlbklmYWNlRGVidWdQcmludChUUkFDRSwgIlN1c3BlbmQgY29udGV4dCAlcFxuIiwgU3VzcGVu
ZENvbnRleHQpOw0KPiBkaWZmIC0tZ2l0IGEvc3JjL3hlbmlmYWNlL2lvY3Rscy5oIGIvc3JjL3hl
bmlmYWNlL2lvY3Rscy5oDQo+IGluZGV4IDE0ZGE2NzQuLjE2YWYwYTIgMTAwNjQ0DQo+IC0tLSBh
L3NyYy94ZW5pZmFjZS9pb2N0bHMuaA0KPiArKysgYi9zcmMveGVuaWZhY2UvaW9jdGxzLmgNCj4g
QEAgLTExOSw3ICsxMTksNyBAQCBfSVJRTF9yZXF1aXJlc18oUEFTU0lWRV9MRVZFTCkNCj4gIFZP
SUQNCj4gIFhlbklmYWNlQ2xlYW51cCgNCj4gICAgICBfX2luICBQWEVOSUZBQ0VfRkRPIEZkbywN
Cj4gLSAgICBfX2luICBQRklMRV9PQkpFQ1QgIEZpbGVPYmplY3QNCj4gKyAgICBfX2luX29wdCAg
UEZJTEVfT0JKRUNUICBGaWxlT2JqZWN0DQo+ICAgICAgKTsNCj4gDQo+ICBERUNMU1BFQ19OT0lO
TElORQ0KPiAtLQ0KPiAxLjkuNC5tc3lzZ2l0LjENCj4gDQo+IA0KPiBfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiB3aW4tcHYtZGV2ZWwgbWFpbGluZyBs
aXN0DQo+IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBodHRwczovL2xpc3Rz
LnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWwNCl9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZl
bCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8v
bGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZl
bA==

From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 10:05:11 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 10:05:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQXKQ-00067h-05; Fri, 22 Jul 2016 10:05:09 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=004762f41=Paul.Durrant@citrix.com>)
 id 1bQXKO-00067b-Hs
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 10:05:08 +0000
Received: from [85.158.143.35] by server-3.bemta-6.messagelabs.com id
 69/E4-05661-3DFE1975; Fri, 22 Jul 2016 10:05:07 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrJIsWRWlGSWpSXmKPExsWyU9JRQvfy+4n
 hBjt3iVr8WZzowOhx+MMVlgDGKNbMvKT8igTWjO17PjMW3FSpOLTyFEsD4xyVLkZODgkBP4ll
 EzYwgthsAjoSS4/OZwKxRQQKJL6/n8cMYjMLqElc39/FCmILCyRIHF7VxAZRkygxZ/sMqHoji
 eYpl8HiLAKqEi3NR8FsXgF3iYW/H4PZQgIuErt6P4PN4RRwlTiz9DaYzSggK/GlcTXULnGJW0
 8gbpAQEJBYsuc8M4QtKvHy8T9WCNtAYuvSfSxdjBxA9ZoS63fpQ7QqSkzpfsgOsVZQ4uTMJyw
 Qa1Uktjw+ADWGW2Ll5z8sExhFZyHZNgth0iwkk2YhmbSAkWUVo3pxalFZapGusV5SUWZ6Rklu
 YmaOrqGBmV5uanFxYnpqTmJSsV5yfu4mRmCUMADBDsaOf06HGCU5mJREeX9cnRguxJeUn1KZk
 VicEV9UmpNafIhRhoNDSYI35h1QTrAoNT21Ii0zBxivMGkJDh4lEd5ekDRvcUFibnFmOkTqFK
 OilDivIUhCACSRUZoH1wZLEZcYZaWEeRmBDhHiKUgtys0sQZV/xSjOwagkzFsMMoUnM68Ebvo
 roMVMQIvnCPSDLC5JREhJNTC6XRZpezLHb6Egy6M07rXrGm9vWtw34fb/8BYLzePrEiSP3239
 fny9jPjFkKetfy4bnt2waMLqp3IyGywZ7Z4ITrE55KgW+j/xmT+jNeOuI9tlNz/5b3nrfkeZZ
 c58a8/V+t9LujMXablrb9y19wQ7Z+/3tfLiCiE/875vik8Ra5l2atWf5IozSizFGYmGWsxFxY
 kA+Q7dNQwDAAA=
X-Env-Sender: prvs=004762f41=Paul.Durrant@citrix.com
X-Msg-Ref: server-16.tower-21.messagelabs.com!1469181907!20691979!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: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 41011 invoked from network); 22 Jul 2016 10:05:07 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-16.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 22 Jul 2016 10:05:07 -0000
X-IronPort-AV: E=Sophos;i="5.28,404,1464652800"; d="scan'208";a="26926949"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 1/2] Clean up watches,	suspend handlers
 and events on D0->D3
Thread-Index: AQHR40C+JB4bubIiu0WmFiLSj23KOaAkOmbg
Date: Fri, 22 Jul 2016 10:05:05 +0000
Message-ID: <ca29d3f2d0de491c83e00aeaddfcaf2d@AMSPEX02CL03.citrite.net>
References: <1469099503-7416-1-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1469099503-7416-1-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 1/2] Clean up watches,
 suspend handlers and events on D0->D3
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjEgSnVseSAyMDE2IDEyOjEyDQo+IFRvOiB3aW4tcHYt
ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gQ2M6IE93ZW4gU21pdGgNCj4gU3ViamVjdDog
W3dpbi1wdi1kZXZlbF0gW1BBVENIIDEvMl0gQ2xlYW4gdXAgd2F0Y2hlcywgc3VzcGVuZCBoYW5k
bGVycw0KPiBhbmQgZXZlbnRzIG9uIEQwLT5EMw0KPiANCj4gKiBDYWxsIFhlbklmYWNlQ2xlYW51
cCBvbiBEMC0+RDMgdHJhbnNpdGlvbg0KPiAqIENoYW5nZSBYZW5JZmFjZUNsZWFudXAgdG8gYWNj
ZXB0IGEgTlVMTCBmaWxlIG9iamVjdCwgd2hpY2ggd2lsbA0KPiAgIGNsZWFuIHVwIGV2ZXJ5dGhp
bmcsIHJlZ2FyZGxlc3Mgb2YgZmlsZSBvYmplY3QNCj4gDQo+IFNpZ25lZC1vZmYtYnk6IE93ZW4g
U21pdGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4NCg0KQWNrZWQtYnk6IFBhdWwgRHVycmFudCA8
cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+DQoNCj4gLS0tDQo+ICBzcmMveGVuaWZhY2UvZmRvLmMg
ICAgfCAgMSArDQo+ICBzcmMveGVuaWZhY2UvaW9jdGxzLmMgfCAxMSArKysrKysrLS0tLQ0KPiAg
c3JjL3hlbmlmYWNlL2lvY3Rscy5oIHwgIDIgKy0NCj4gIDMgZmlsZXMgY2hhbmdlZCwgOSBpbnNl
cnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL3NyYy94ZW5pZmFj
ZS9mZG8uYyBiL3NyYy94ZW5pZmFjZS9mZG8uYw0KPiBpbmRleCAxOWU1MGZlLi5jMWMzOTAxIDEw
MDY0NA0KPiAtLS0gYS9zcmMveGVuaWZhY2UvZmRvLmMNCj4gKysrIGIvc3JjL3hlbmlmYWNlL2Zk
by5jDQo+IEBAIC0xMDUwLDYgKzEwNTAsNyBAQCBGZG9EMFRvRDMoDQo+ICAgICAgVHJhY2UoIj09
PT0+XG4iKTsNCj4gDQo+ICAgICAgV21pU2Vzc2lvbnNTdXNwZW5kQWxsKEZkbyk7DQo+ICsgICAg
WGVuSWZhY2VDbGVhbnVwKEZkbywgTlVMTCk7DQo+IA0KPiAgICAgIFBvd2VyU3RhdGUuRGV2aWNl
U3RhdGUgPSBQb3dlckRldmljZUQzOw0KPiAgICAgIFBvU2V0UG93ZXJTdGF0ZShGZG8tPkR4LT5E
ZXZpY2VPYmplY3QsDQo+IGRpZmYgLS1naXQgYS9zcmMveGVuaWZhY2UvaW9jdGxzLmMgYi9zcmMv
eGVuaWZhY2UvaW9jdGxzLmMNCj4gaW5kZXggNjM5YjAxNS4uY2E5NDY1OCAxMDA2NDQNCj4gLS0t
IGEvc3JjL3hlbmlmYWNlL2lvY3Rscy5jDQo+ICsrKyBiL3NyYy94ZW5pZmFjZS9pb2N0bHMuYw0K
PiBAQCAtMTM3LDcgKzEzNyw3IEBAIF9JUlFMX3JlcXVpcmVzXyhQQVNTSVZFX0xFVkVMKSAvLyBF
dnRjaG5GcmVlIGNhbGxzDQo+IEtlRmx1c2hRdWV1ZWREcGNzDQo+ICBWT0lEDQo+ICBYZW5JZmFj
ZUNsZWFudXAoDQo+ICAgICAgX19pbiAgUFhFTklGQUNFX0ZETyBGZG8sDQo+IC0gICAgX19pbiAg
UEZJTEVfT0JKRUNUICBGaWxlT2JqZWN0DQo+ICsgICAgX19pbl9vcHQgIFBGSUxFX09CSkVDVCAg
RmlsZU9iamVjdA0KPiAgICAgICkNCj4gIHsNCj4gICAgICBQTElTVF9FTlRSWSBOb2RlOw0KPiBA
QCAtMTU0LDcgKzE1NCw4IEBAIFhlbklmYWNlQ2xlYW51cCgNCj4gICAgICAgICAgU3RvcmVDb250
ZXh0ID0gQ09OVEFJTklOR19SRUNPUkQoTm9kZSwNCj4gWEVOSUZBQ0VfU1RPUkVfQ09OVEVYVCwg
RW50cnkpOw0KPiANCj4gICAgICAgICAgTm9kZSA9IE5vZGUtPkZsaW5rOw0KPiAtICAgICAgICBp
ZiAoU3RvcmVDb250ZXh0LT5GaWxlT2JqZWN0ICE9IEZpbGVPYmplY3QpDQo+ICsgICAgICAgIGlm
IChGaWxlT2JqZWN0ICE9IE5VTEwgJiYNCj4gKyAgICAgICAgICAgIFN0b3JlQ29udGV4dC0+Rmls
ZU9iamVjdCAhPSBGaWxlT2JqZWN0KQ0KPiAgICAgICAgICAgICAgY29udGludWU7DQo+IA0KPiAg
ICAgICAgICBYZW5JZmFjZURlYnVnUHJpbnQoVFJBQ0UsICJTdG9yZSBjb250ZXh0ICVwXG4iLCBT
dG9yZUNvbnRleHQpOw0KPiBAQCAtMTcxLDcgKzE3Miw4IEBAIFhlbklmYWNlQ2xlYW51cCgNCj4g
ICAgICAgICAgRXZ0Y2huQ29udGV4dCA9IENPTlRBSU5JTkdfUkVDT1JEKE5vZGUsDQo+IFhFTklG
QUNFX0VWVENITl9DT05URVhULCBFbnRyeSk7DQo+IA0KPiAgICAgICAgICBOb2RlID0gTm9kZS0+
Rmxpbms7DQo+IC0gICAgICAgIGlmIChFdnRjaG5Db250ZXh0LT5GaWxlT2JqZWN0ICE9IEZpbGVP
YmplY3QpDQo+ICsgICAgICAgIGlmIChGaWxlT2JqZWN0ICE9IE5VTEwgJiYNCj4gKyAgICAgICAg
ICAgIEV2dGNobkNvbnRleHQtPkZpbGVPYmplY3QgIT0gRmlsZU9iamVjdCkNCj4gICAgICAgICAg
ICAgIGNvbnRpbnVlOw0KPiANCj4gICAgICAgICAgWGVuSWZhY2VEZWJ1Z1ByaW50KFRSQUNFLCAi
RXZ0Y2huIGNvbnRleHQgJXBcbiIsIEV2dGNobkNvbnRleHQpOw0KPiBAQCAtMTk3LDcgKzE5OSw4
IEBAIFhlbklmYWNlQ2xlYW51cCgNCj4gICAgICAgICAgU3VzcGVuZENvbnRleHQgPSBDT05UQUlO
SU5HX1JFQ09SRChOb2RlLA0KPiBYRU5JRkFDRV9TVVNQRU5EX0NPTlRFWFQsIEVudHJ5KTsNCj4g
DQo+ICAgICAgICAgIE5vZGUgPSBOb2RlLT5GbGluazsNCj4gLSAgICAgICAgaWYgKFN1c3BlbmRD
b250ZXh0LT5GaWxlT2JqZWN0ICE9IEZpbGVPYmplY3QpDQo+ICsgICAgICAgIGlmIChGaWxlT2Jq
ZWN0ICE9IE5VTEwgJiYNCj4gKyAgICAgICAgICAgIFN1c3BlbmRDb250ZXh0LT5GaWxlT2JqZWN0
ICE9IEZpbGVPYmplY3QpDQo+ICAgICAgICAgICAgICBjb250aW51ZTsNCj4gDQo+ICAgICAgICAg
IFhlbklmYWNlRGVidWdQcmludChUUkFDRSwgIlN1c3BlbmQgY29udGV4dCAlcFxuIiwgU3VzcGVu
ZENvbnRleHQpOw0KPiBkaWZmIC0tZ2l0IGEvc3JjL3hlbmlmYWNlL2lvY3Rscy5oIGIvc3JjL3hl
bmlmYWNlL2lvY3Rscy5oDQo+IGluZGV4IDE0ZGE2NzQuLjE2YWYwYTIgMTAwNjQ0DQo+IC0tLSBh
L3NyYy94ZW5pZmFjZS9pb2N0bHMuaA0KPiArKysgYi9zcmMveGVuaWZhY2UvaW9jdGxzLmgNCj4g
QEAgLTExOSw3ICsxMTksNyBAQCBfSVJRTF9yZXF1aXJlc18oUEFTU0lWRV9MRVZFTCkNCj4gIFZP
SUQNCj4gIFhlbklmYWNlQ2xlYW51cCgNCj4gICAgICBfX2luICBQWEVOSUZBQ0VfRkRPIEZkbywN
Cj4gLSAgICBfX2luICBQRklMRV9PQkpFQ1QgIEZpbGVPYmplY3QNCj4gKyAgICBfX2luX29wdCAg
UEZJTEVfT0JKRUNUICBGaWxlT2JqZWN0DQo+ICAgICAgKTsNCj4gDQo+ICBERUNMU1BFQ19OT0lO
TElORQ0KPiAtLQ0KPiAxLjkuNC5tc3lzZ2l0LjENCj4gDQo+IA0KPiBfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiB3aW4tcHYtZGV2ZWwgbWFpbGluZyBs
aXN0DQo+IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBodHRwczovL2xpc3Rz
LnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWwNCl9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZl
bCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8v
bGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZl
bA==

From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 10:07:28 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 10:07:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQXMe-0006CA-6e; Fri, 22 Jul 2016 10:07:28 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=004762f41=Paul.Durrant@citrix.com>)
 id 1bQXMc-0006C4-Nv
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 10:07:26 +0000
Received: from [85.158.139.211] by server-14.bemta-5.messagelabs.com id
 DA/70-10347-E50F1975; Fri, 22 Jul 2016 10:07:26 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuplleJIrShJLcpLzFFi42LZKekooRv7YWK
 4wefPKhZ/Fic6MHoc/nCFJYAxijUzLym/IoE14+E6gYJDYhWfVn9iamCcI9bFyMEhIeAn8WV6
 WRcjJwebgI7E0qPzmUBsEYECie/v5zGD2MwCahLX93exgpQLA5V/+K0EURIgcWfyByaQsIiAk
 cSjU5kgYRYBVYmrW9eyg9i8Au4SDYcmsIDYQgJ1Ej0n/zOC2JwCrhK3pt0Cq2EUkJX40rgaap
 O4xK0nEBdICAhILNlznhnCFpV4+fgfK4RtILF16T4WkLXMApoS63fpQ7QqSkzpfgi1VlDi5Mw
 nUGtVJLY8PgA1hlti5ec/LBMYRWch2TYLYdIsJJNmIZm0gJFlFaN6cWpRWWqRrpFeUlFmekZJ
 bmJmjq6hgalebmpxcWJ6ak5iUrFecn7uJkZgdDAAwQ7G73+cDjFKcjApifL+uDoxXIgvKT+lM
 iOxOCO+qDQntfgQowYHh8DmtasvMEqx5OXnpSpJ8Pq9B6oTLEpNT61Iy8wBxi9MqQQHj5IIrx
 NImre4IDG3ODMdInWKUZdjy4Iba5mEwGZIifN6gRQJgBRllObBjYClkkuMslLCvIxABwrxFKQ
 W5WaWoMq/YhTnYFQS5tUAmcKTmVcCt+kV0BFMQEfMEegHOaIkESEl1cDYHNDf1Hnoi+k5pl/X
 QuV8eaQ3TFAslQ5MOOoqvGiuLb/cnjq2I8tjmY9On1bzXS856pLChK1acb9SX09MK408wXCxa
 8V7lRXTY3NrVAocdabJCqjV3P/N77Fp/s4rm3LYw9Zkiz2bavw5tiDN++whTucHHov5XD9Uzz
 LN6zxSIRrxs8p5g4kSS3FGoqEWc1FxIgAbmFEXIAMAAA==
X-Env-Sender: prvs=004762f41=Paul.Durrant@citrix.com
X-Msg-Ref: server-14.tower-206.messagelabs.com!1469182045!14503925!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: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20751 invoked from network); 22 Jul 2016 10:07:25 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-14.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 22 Jul 2016 10:07:25 -0000
X-IronPort-AV: E=Sophos;i="5.28,404,1464652800"; d="scan'208";a="26927154"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 2/2] Log messages to dom0 log (if possible)
Thread-Index: AQHR40C9+SHKzOAg/0CQm8IT1hDsz6AkOxHQ
Date: Fri, 22 Jul 2016 10:07:24 +0000
Message-ID: <477378b783934af1879754589da2bfaf@AMSPEX02CL03.citrite.net>
References: <1469099503-7416-1-git-send-email-owen.smith@citrix.com>
 <1469099503-7416-2-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1469099503-7416-2-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 2/2] Log messages to dom0 log (if
	possible)
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjEgSnVseSAyMDE2IDEyOjEyDQo+IFRvOiB3aW4tcHYt
ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gQ2M6IE93ZW4gU21pdGgNCj4gU3ViamVjdDog
W3dpbi1wdi1kZXZlbF0gW1BBVENIIDIvMl0gTG9nIG1lc3NhZ2VzIHRvIGRvbTAgbG9nIChpZiBw
b3NzaWJsZSkNCj4gDQo+IElvY3RsTG9nIHdpbGwgc3RyaXAgYW55IHRyYWlsaW5nIG5ld2xpbmUg
YW5kIGluc2VydCBhIHNpbmdsZQ0KPiBuZXdsaW5lIHRvIGVuZm9yY2UgbG9nIGZpbGUgY29uc2lz
dGFuY3kNCj4gDQo+IFNpZ25lZC1vZmYtYnk6IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0cml4
LmNvbT4NCg0KQWNrZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+
DQoNCj4gLS0tDQo+ICBzcmMveGVuYWdlbnQvc2VydmljZS5jcHAgfCA2ICsrKysrKw0KPiAgc3Jj
L3hlbmlmYWNlL2lvY3Rscy5jICAgIHwgNiArKysrKysNCj4gIDIgZmlsZXMgY2hhbmdlZCwgMTIg
aW5zZXJ0aW9ucygrKQ0KPiANCj4gZGlmZiAtLWdpdCBhL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmNw
cCBiL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcA0KPiBpbmRleCA1NWRjOGNhLi4xODI3NTJmIDEw
MDY0NA0KPiAtLS0gYS9zcmMveGVuYWdlbnQvc2VydmljZS5jcHANCj4gKysrIGIvc3JjL3hlbmFn
ZW50L3NlcnZpY2UuY3BwDQo+IEBAIC04MSw2ICs4MSwxMiBAQCBzdGF0aWMgQ1hlbkFnZW50IHNf
c2VydmljZTsNCj4gICAgICB2YV9lbmQoYXJncyk7DQo+IA0KPiAgICAgIE91dHB1dERlYnVnU3Ry
aW5nKG1lc3NhZ2UpOw0KPiArDQo+ICsgICAgLy8gaWYgcG9zc2libGUsIHNlbmQgdG8geGVuaWZh
Y2UgdG8gZm9yd2FyZCB0byBsb2dzDQo+ICsgICAgQ0NyaXRTZWMgY3JpdCgmc19zZXJ2aWNlLm1f
Y3JpdCk7DQo+ICsgICAgaWYgKHNfc2VydmljZS5tX2RldmljZSkgew0KPiArICAgICAgICBzX3Nl
cnZpY2UubV9kZXZpY2UtPkxvZyhtZXNzYWdlKTsNCj4gKyAgICB9DQo+ICB9DQo+IA0KPiAgLypz
dGF0aWMqLyBpbnQgQ1hlbkFnZW50OjpTZXJ2aWNlSW5zdGFsbCgpDQo+IGRpZmYgLS1naXQgYS9z
cmMveGVuaWZhY2UvaW9jdGxzLmMgYi9zcmMveGVuaWZhY2UvaW9jdGxzLmMNCj4gaW5kZXggY2E5
NDY1OC4uZjZhMzg5ZiAxMDA2NDQNCj4gLS0tIGEvc3JjL3hlbmlmYWNlL2lvY3Rscy5jDQo+ICsr
KyBiL3NyYy94ZW5pZmFjZS9pb2N0bHMuYw0KPiBAQCAtMTEzLDYgKzExMyw3IEBAIElvY3RsTG9n
KA0KPiAgICAgICkNCj4gIHsNCj4gICAgICBOVFNUQVRVUyAgICBzdGF0dXM7DQo+ICsJUENIQVIJ
CXB0cjsNCj4gDQo+ICAgICAgc3RhdHVzID0gU1RBVFVTX0lOVkFMSURfQlVGRkVSX1NJWkU7DQo+
ICAgICAgaWYgKEluTGVuID09IDAgfHwgSW5MZW4gPiBYRU5JRkFDRV9MT0dfTUFYX0xFTkdUSCB8
fCBPdXRMZW4gIT0gMCkNCj4gQEAgLTEyMiw2ICsxMjMsMTEgQEAgSW9jdGxMb2coDQo+ICAgICAg
aWYgKCFfX0lzVmFsaWRTdHIoQnVmZmVyLCBJbkxlbikpDQo+ICAgICAgICAgIGdvdG8gZmFpbDI7
DQo+IA0KPiArCS8vIHJlbW92ZSBuZXdsaW5lcyBmcm9tIGVuZCBvZiBidWZmZXINCj4gKwlmb3Ig
KHB0ciA9IEJ1ZmZlciArIEluTGVuIC0gMTsNCj4gKwkJIHB0ciAhPSBCdWZmZXIgJiYgKnB0ciAh
PSAwICYmICpwdHIgIT0gJ1xuJzsNCj4gKwkJIC0tcHRyKQ0KPiArCQkJKnB0ciA9IDA7DQo+ICAg
ICAgWGVuSWZhY2VEZWJ1Z1ByaW50KElORk8sICJVU0VSOiAlc1xuIiwgQnVmZmVyKTsNCj4gICAg
ICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7DQo+IA0KPiAtLQ0KPiAxLjkuNC5tc3lzZ2l0LjENCj4g
DQo+IA0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0K
PiB3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0DQo+IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9q
ZWN0Lm9yZw0KPiBodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9s
aXN0aW5mby93aW4tcHYtZGV2ZWwNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3Rz
LnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWls
bWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 10:07:28 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 10:07:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQXMe-0006CA-6e; Fri, 22 Jul 2016 10:07:28 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=004762f41=Paul.Durrant@citrix.com>)
 id 1bQXMc-0006C4-Nv
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 10:07:26 +0000
Received: from [85.158.139.211] by server-14.bemta-5.messagelabs.com id
 DA/70-10347-E50F1975; Fri, 22 Jul 2016 10:07:26 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuplleJIrShJLcpLzFFi42LZKekooRv7YWK
 4wefPKhZ/Fic6MHoc/nCFJYAxijUzLym/IoE14+E6gYJDYhWfVn9iamCcI9bFyMEhIeAn8WV6
 WRcjJwebgI7E0qPzmUBsEYECie/v5zGD2MwCahLX93exgpQLA5V/+K0EURIgcWfyByaQsIiAk
 cSjU5kgYRYBVYmrW9eyg9i8Au4SDYcmsIDYQgJ1Ej0n/zOC2JwCrhK3pt0Cq2EUkJX40rgaap
 O4xK0nEBdICAhILNlznhnCFpV4+fgfK4RtILF16T4WkLXMApoS63fpQ7QqSkzpfgi1VlDi5Mw
 nUGtVJLY8PgA1hlti5ec/LBMYRWch2TYLYdIsJJNmIZm0gJFlFaN6cWpRWWqRrpFeUlFmekZJ
 bmJmjq6hgalebmpxcWJ6ak5iUrFecn7uJkZgdDAAwQ7G73+cDjFKcjApifL+uDoxXIgvKT+lM
 iOxOCO+qDQntfgQowYHh8DmtasvMEqx5OXnpSpJ8Pq9B6oTLEpNT61Iy8wBxi9MqQQHj5IIrx
 NImre4IDG3ODMdInWKUZdjy4Iba5mEwGZIifN6gRQJgBRllObBjYClkkuMslLCvIxABwrxFKQ
 W5WaWoMq/YhTnYFQS5tUAmcKTmVcCt+kV0BFMQEfMEegHOaIkESEl1cDYHNDf1Hnoi+k5pl/X
 QuV8eaQ3TFAslQ5MOOoqvGiuLb/cnjq2I8tjmY9On1bzXS856pLChK1acb9SX09MK408wXCxa
 8V7lRXTY3NrVAocdabJCqjV3P/N77Fp/s4rm3LYw9Zkiz2bavw5tiDN++whTucHHov5XD9Uzz
 LN6zxSIRrxs8p5g4kSS3FGoqEWc1FxIgAbmFEXIAMAAA==
X-Env-Sender: prvs=004762f41=Paul.Durrant@citrix.com
X-Msg-Ref: server-14.tower-206.messagelabs.com!1469182045!14503925!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: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20751 invoked from network); 22 Jul 2016 10:07:25 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-14.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 22 Jul 2016 10:07:25 -0000
X-IronPort-AV: E=Sophos;i="5.28,404,1464652800"; d="scan'208";a="26927154"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 2/2] Log messages to dom0 log (if possible)
Thread-Index: AQHR40C9+SHKzOAg/0CQm8IT1hDsz6AkOxHQ
Date: Fri, 22 Jul 2016 10:07:24 +0000
Message-ID: <477378b783934af1879754589da2bfaf@AMSPEX02CL03.citrite.net>
References: <1469099503-7416-1-git-send-email-owen.smith@citrix.com>
 <1469099503-7416-2-git-send-email-owen.smith@citrix.com>
In-Reply-To: <1469099503-7416-2-git-send-email-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 2/2] Log messages to dom0 log (if
	possible)
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjEgSnVseSAyMDE2IDEyOjEyDQo+IFRvOiB3aW4tcHYt
ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gQ2M6IE93ZW4gU21pdGgNCj4gU3ViamVjdDog
W3dpbi1wdi1kZXZlbF0gW1BBVENIIDIvMl0gTG9nIG1lc3NhZ2VzIHRvIGRvbTAgbG9nIChpZiBw
b3NzaWJsZSkNCj4gDQo+IElvY3RsTG9nIHdpbGwgc3RyaXAgYW55IHRyYWlsaW5nIG5ld2xpbmUg
YW5kIGluc2VydCBhIHNpbmdsZQ0KPiBuZXdsaW5lIHRvIGVuZm9yY2UgbG9nIGZpbGUgY29uc2lz
dGFuY3kNCj4gDQo+IFNpZ25lZC1vZmYtYnk6IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0cml4
LmNvbT4NCg0KQWNrZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+
DQoNCj4gLS0tDQo+ICBzcmMveGVuYWdlbnQvc2VydmljZS5jcHAgfCA2ICsrKysrKw0KPiAgc3Jj
L3hlbmlmYWNlL2lvY3Rscy5jICAgIHwgNiArKysrKysNCj4gIDIgZmlsZXMgY2hhbmdlZCwgMTIg
aW5zZXJ0aW9ucygrKQ0KPiANCj4gZGlmZiAtLWdpdCBhL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmNw
cCBiL3NyYy94ZW5hZ2VudC9zZXJ2aWNlLmNwcA0KPiBpbmRleCA1NWRjOGNhLi4xODI3NTJmIDEw
MDY0NA0KPiAtLS0gYS9zcmMveGVuYWdlbnQvc2VydmljZS5jcHANCj4gKysrIGIvc3JjL3hlbmFn
ZW50L3NlcnZpY2UuY3BwDQo+IEBAIC04MSw2ICs4MSwxMiBAQCBzdGF0aWMgQ1hlbkFnZW50IHNf
c2VydmljZTsNCj4gICAgICB2YV9lbmQoYXJncyk7DQo+IA0KPiAgICAgIE91dHB1dERlYnVnU3Ry
aW5nKG1lc3NhZ2UpOw0KPiArDQo+ICsgICAgLy8gaWYgcG9zc2libGUsIHNlbmQgdG8geGVuaWZh
Y2UgdG8gZm9yd2FyZCB0byBsb2dzDQo+ICsgICAgQ0NyaXRTZWMgY3JpdCgmc19zZXJ2aWNlLm1f
Y3JpdCk7DQo+ICsgICAgaWYgKHNfc2VydmljZS5tX2RldmljZSkgew0KPiArICAgICAgICBzX3Nl
cnZpY2UubV9kZXZpY2UtPkxvZyhtZXNzYWdlKTsNCj4gKyAgICB9DQo+ICB9DQo+IA0KPiAgLypz
dGF0aWMqLyBpbnQgQ1hlbkFnZW50OjpTZXJ2aWNlSW5zdGFsbCgpDQo+IGRpZmYgLS1naXQgYS9z
cmMveGVuaWZhY2UvaW9jdGxzLmMgYi9zcmMveGVuaWZhY2UvaW9jdGxzLmMNCj4gaW5kZXggY2E5
NDY1OC4uZjZhMzg5ZiAxMDA2NDQNCj4gLS0tIGEvc3JjL3hlbmlmYWNlL2lvY3Rscy5jDQo+ICsr
KyBiL3NyYy94ZW5pZmFjZS9pb2N0bHMuYw0KPiBAQCAtMTEzLDYgKzExMyw3IEBAIElvY3RsTG9n
KA0KPiAgICAgICkNCj4gIHsNCj4gICAgICBOVFNUQVRVUyAgICBzdGF0dXM7DQo+ICsJUENIQVIJ
CXB0cjsNCj4gDQo+ICAgICAgc3RhdHVzID0gU1RBVFVTX0lOVkFMSURfQlVGRkVSX1NJWkU7DQo+
ICAgICAgaWYgKEluTGVuID09IDAgfHwgSW5MZW4gPiBYRU5JRkFDRV9MT0dfTUFYX0xFTkdUSCB8
fCBPdXRMZW4gIT0gMCkNCj4gQEAgLTEyMiw2ICsxMjMsMTEgQEAgSW9jdGxMb2coDQo+ICAgICAg
aWYgKCFfX0lzVmFsaWRTdHIoQnVmZmVyLCBJbkxlbikpDQo+ICAgICAgICAgIGdvdG8gZmFpbDI7
DQo+IA0KPiArCS8vIHJlbW92ZSBuZXdsaW5lcyBmcm9tIGVuZCBvZiBidWZmZXINCj4gKwlmb3Ig
KHB0ciA9IEJ1ZmZlciArIEluTGVuIC0gMTsNCj4gKwkJIHB0ciAhPSBCdWZmZXIgJiYgKnB0ciAh
PSAwICYmICpwdHIgIT0gJ1xuJzsNCj4gKwkJIC0tcHRyKQ0KPiArCQkJKnB0ciA9IDA7DQo+ICAg
ICAgWGVuSWZhY2VEZWJ1Z1ByaW50KElORk8sICJVU0VSOiAlc1xuIiwgQnVmZmVyKTsNCj4gICAg
ICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7DQo+IA0KPiAtLQ0KPiAxLjkuNC5tc3lzZ2l0LjENCj4g
DQo+IA0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0K
PiB3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0DQo+IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9q
ZWN0Lm9yZw0KPiBodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9s
aXN0aW5mby93aW4tcHYtZGV2ZWwNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3Rz
LnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWls
bWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 15:12:29 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 15:12:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQc7n-0003yc-Mx; Fri, 22 Jul 2016 15:12:27 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=004762f41=Paul.Durrant@citrix.com>)
 id 1bQc7m-0003yP-2q
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 15:12:26 +0000
Received: from [193.109.254.147] by server-4.bemta-14.messagelabs.com id
 AE/9B-10431-9D732975; Fri, 22 Jul 2016 15:12:25 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrEIsWRWlGSWpSXmKPExsWyU9JRQveG+aR
 wg7l9JhZ/Fic6MHoc/nCFJYAxijUzLym/IoE14/6CdsaCJSwVC543szcwbmPuYuTkkBDwk2jd
 18EEYrMJ6EgsPTofyObgEBHwlri9gh8kLCwgK3Hx0GawchEBJYnDXzdC2XoSHXPXMYOUswioS
 uzcywcS5hVwl/h/aTYbiM0I1PqlcTVYObOAuMStJ/OZILYKSCzZcx7qAlGJl4//sULYBhJbl+
 5jgajXkViw+xMbhK0tsWzha2aI+YISJ2c+AasRElCR2PL4ANQcbomVn/+wTGAUmoVk3Swko2Y
 hGTULyagFjCyrGDWKU4vKUot0jSz1kooy0zNKchMzc3QNDU30clOLixPTU3MSk4r1kvNzNzEC
 w7uegYFxB+Ou436HGCU5mJREedVYJoUL8SXlp1RmJBZnxBeV5qQWH2KU4eBQkuAtMAPKCRalp
 qdWpGXmACMNJi3BwaMkwrsQJM1bXJCYW5yZDpE6xajLseDH7bVMQix5+XmpUuK8K0CKBECKMk
 rz4EbAov4So6yUMC8jAwODEE9BalFuZgmq/CtGcQ5GJWHe9SBTeDLzSuA2vQI6ggnoiDkC/SB
 HlCQipKQaGM1PP9Xat3fqyT8f/vckZ+nNllm9rivN4J/sp31qH5Y1JDwzujNFebVn86epNZnn
 2OISex+2r6xyr2IwYWCrzsrb+o3Jxfby7SnbNfukjzy/3LPuyZdDP5lfCWpvfTK32+rZ5hkV5
 rcXBpuxzk7p3HNzoU3484OTBAz0OW0+X3Rv1Nhd1lvf3arEUpyRaKjFXFScCACAh8KI9QIAAA
 ==
X-Env-Sender: prvs=004762f41=Paul.Durrant@citrix.com
X-Msg-Ref: server-12.tower-27.messagelabs.com!1469200344!54472515!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: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 52734 invoked from network); 22 Jul 2016 15:12:24 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-12.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 22 Jul 2016 15:12:24 -0000
X-IronPort-AV: E=Sophos;i="5.28,405,1464652800"; d="scan'208";a="26953785"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: Signed 8.1.0 drivers
Thread-Index: AdHkKv6ycLsSp0RNRIWfEjeYPAAr4w==
Date: Fri, 22 Jul 2016 15:12:22 +0000
Message-ID: <f92517584f1142d9b4bfee538df7d3df@AMSPEX02CL03.citrite.net>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Subject: [win-pv-devel] Signed 8.1.0 drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

QWxsLAoKICBHb29kIG5ld3MhIEkgaGF2ZSB0YWdnZWQgdGhlIDguMS4wIHJlbGVhc2UgZHJpdmVy
IHNvdXJjZSBpbiBlYWNoIG9mIHRoZSByZXBvc2l0b3JpZXMsIGJ1aWx0IGl0IGFuZCBzaWduZWQg
aXQuIEkgZG9uJ3QgeWV0IGhhdmUgYW4gb2ZmaWNpYWwgcGxhY2UgdG8gcHV0IHRoZSBzaWduZWQg
YnVpbGRzIHNvIGZvciB0aGUgbW9tZW50IHlvdSBjYW4gZ2V0IHRoZW0gZnJvbQoKaHR0cHM6Ly94
ZW5iaXRzLnhlbi5vcmcvcGVvcGxlL3BhdWxkdS9wdmRyaXZlcnMvd2luL3JlbGVhc2UvOC4xLjAK
CiAgSSBoYXZlIHRlc3RlZCBpbnN0YWxsYXRpb24gb24gV2luZG93cyAxMCAoMzItYml0KSBhbmQg
dGhlIHNpZ25hdHVyZXMgYXBwZWFyIHRvIGJlIGdvb2QuCgogIEkgd2lsbCBsZXQgdGhlIGxpc3Qg
a25vdyB3aGVuIHRoZSB0YXJiYWxscyBtb3ZlIHRvIGEgbW9yZSBwZXJtYW5lbnQgcGxhY2UgYW5k
IEkgd2lsbCwgYXQgdGhhdCBwb2ludCwgbGluayB0aGVtIGZyb20gdGhlIHByb2plY3QgZnJvbnQg
cGFnZS4KCiAgQ2hlZXJzLAoKICAgIFBhdWwKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVs
QGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJp
bi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 15:12:29 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 15:12:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQc7n-0003yc-Mx; Fri, 22 Jul 2016 15:12:27 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=004762f41=Paul.Durrant@citrix.com>)
 id 1bQc7m-0003yP-2q
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 15:12:26 +0000
Received: from [193.109.254.147] by server-4.bemta-14.messagelabs.com id
 AE/9B-10431-9D732975; Fri, 22 Jul 2016 15:12:25 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrEIsWRWlGSWpSXmKPExsWyU9JRQveG+aR
 wg7l9JhZ/Fic6MHoc/nCFJYAxijUzLym/IoE14/6CdsaCJSwVC543szcwbmPuYuTkkBDwk2jd
 18EEYrMJ6EgsPTofyObgEBHwlri9gh8kLCwgK3Hx0GawchEBJYnDXzdC2XoSHXPXMYOUswioS
 uzcywcS5hVwl/h/aTYbiM0I1PqlcTVYObOAuMStJ/OZILYKSCzZcx7qAlGJl4//sULYBhJbl+
 5jgajXkViw+xMbhK0tsWzha2aI+YISJ2c+AasRElCR2PL4ANQcbomVn/+wTGAUmoVk3Swko2Y
 hGTULyagFjCyrGDWKU4vKUot0jSz1kooy0zNKchMzc3QNDU30clOLixPTU3MSk4r1kvNzNzEC
 w7uegYFxB+Ou436HGCU5mJREedVYJoUL8SXlp1RmJBZnxBeV5qQWH2KU4eBQkuAtMAPKCRalp
 qdWpGXmACMNJi3BwaMkwrsQJM1bXJCYW5yZDpE6xajLseDH7bVMQix5+XmpUuK8K0CKBECKMk
 rz4EbAov4So6yUMC8jAwODEE9BalFuZgmq/CtGcQ5GJWHe9SBTeDLzSuA2vQI6ggnoiDkC/SB
 HlCQipKQaGM1PP9Xat3fqyT8f/vckZ+nNllm9rivN4J/sp31qH5Y1JDwzujNFebVn86epNZnn
 2OISex+2r6xyr2IwYWCrzsrb+o3Jxfby7SnbNfukjzy/3LPuyZdDP5lfCWpvfTK32+rZ5hkV5
 rcXBpuxzk7p3HNzoU3484OTBAz0OW0+X3Rv1Nhd1lvf3arEUpyRaKjFXFScCACAh8KI9QIAAA
 ==
X-Env-Sender: prvs=004762f41=Paul.Durrant@citrix.com
X-Msg-Ref: server-12.tower-27.messagelabs.com!1469200344!54472515!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: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 52734 invoked from network); 22 Jul 2016 15:12:24 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-12.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 22 Jul 2016 15:12:24 -0000
X-IronPort-AV: E=Sophos;i="5.28,405,1464652800"; d="scan'208";a="26953785"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: Signed 8.1.0 drivers
Thread-Index: AdHkKv6ycLsSp0RNRIWfEjeYPAAr4w==
Date: Fri, 22 Jul 2016 15:12:22 +0000
Message-ID: <f92517584f1142d9b4bfee538df7d3df@AMSPEX02CL03.citrite.net>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Subject: [win-pv-devel] Signed 8.1.0 drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

QWxsLAoKICBHb29kIG5ld3MhIEkgaGF2ZSB0YWdnZWQgdGhlIDguMS4wIHJlbGVhc2UgZHJpdmVy
IHNvdXJjZSBpbiBlYWNoIG9mIHRoZSByZXBvc2l0b3JpZXMsIGJ1aWx0IGl0IGFuZCBzaWduZWQg
aXQuIEkgZG9uJ3QgeWV0IGhhdmUgYW4gb2ZmaWNpYWwgcGxhY2UgdG8gcHV0IHRoZSBzaWduZWQg
YnVpbGRzIHNvIGZvciB0aGUgbW9tZW50IHlvdSBjYW4gZ2V0IHRoZW0gZnJvbQoKaHR0cHM6Ly94
ZW5iaXRzLnhlbi5vcmcvcGVvcGxlL3BhdWxkdS9wdmRyaXZlcnMvd2luL3JlbGVhc2UvOC4xLjAK
CiAgSSBoYXZlIHRlc3RlZCBpbnN0YWxsYXRpb24gb24gV2luZG93cyAxMCAoMzItYml0KSBhbmQg
dGhlIHNpZ25hdHVyZXMgYXBwZWFyIHRvIGJlIGdvb2QuCgogIEkgd2lsbCBsZXQgdGhlIGxpc3Qg
a25vdyB3aGVuIHRoZSB0YXJiYWxscyBtb3ZlIHRvIGEgbW9yZSBwZXJtYW5lbnQgcGxhY2UgYW5k
IEkgd2lsbCwgYXQgdGhhdCBwb2ludCwgbGluayB0aGVtIGZyb20gdGhlIHByb2plY3QgZnJvbnQg
cGFnZS4KCiAgQ2hlZXJzLAoKICAgIFBhdWwKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVs
QGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJp
bi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 15:24:53 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 15:24:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQcJo-0004gc-Ny; Fri, 22 Jul 2016 15:24:52 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <stevie@qrpff.net>) id 1bQcJo-0004gW-D3
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 15:24:52 +0000
Received: from [85.158.139.211] by server-13.bemta-5.messagelabs.com id
 65/C5-12874-3CA32975; Fri, 22 Jul 2016 15:24:51 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrGIsWRWlGSWpSXmKPExsVyofBEo+5hq0n
 hBgunMlv8WZzowOhx+MMVlgDGKNbMvKT8igTWjKbdp5kK2rgqji48yNTA+Jiji5GLQ0jgFqPE
 uudX2SCcl0wSBx5sZYJwZjNKrFlxnb2LkZNDQiBH4vyl41B2ocTas2/BbF4BQYmTM5+wgNhCA
 j4SW181sILYnAIeEvNOz2eDiLtLLO/7A1bDJqAjcez6abAaFgFViUPLt7NCzEyUmDBrIwvEzA
 CJ5++Wg8WFBQwkXn+6CjZHREBLYsIWkOM4OZgFvCXOzZnEDGF7SRw/+IFpAqPgLCQnzUKSmsX
 IAWSrS6yfJwQRVpO4ve0qO4StLbFs4WvmBYysqxg1ilOLylKLdI2M9JKKMtMzSnITM3N0DQ1M
 9XJTi4sT01NzEpOK9ZLzczcxAsO8noGBcQfjnna/Q4ySHExKorxqLJPChfiS8lMqMxKLM+KLS
 nNSiw8xynBwKEnwbrIEygkWpaanVqRl5gAjDiYtwcGjJML7CiTNW1yQmFucmQ6ROsWoy7Fl6r
 21TEIsefl5qVLivOUgRQIgRRmleXAjYNF/iVFWSpiXkYGBQYinILUoN7MEVf4VozgHo5Iw7ye
 QKTyZeSVwm14BHcEEdMQcgX6QI0oSEVJSDYzFXi/VYjvL/qxs0l/j/Flozt0fl0/8v/1x8Qqn
 CB/GZzfYvD7M/fEx5fSKlL1blv+RPfuvKMlTQ+rGs12nzTzEj8RsYLgjm73v8hm72cbTDrz5b
 pZp9P+ty4PFQeH6f568WShirVWwNli7wPhAxrqTW28L2eS56W3IjuzMFFhfLmq4wDT9ehaXEk
 txRqKhFnNRcSIANUPmRfkCAAA=
X-Env-Sender: stevie@qrpff.net
X-Msg-Ref: server-10.tower-206.messagelabs.com!1469201089!33758056!1
X-Originating-IP: [208.113.200.129]
X-SpamReason: No, hits=0.9 required=7.0 tests=HTML_40_50,HTML_MESSAGE,
 RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 9291 invoked from network); 22 Jul 2016 15:24:50 -0000
Received: from sub5.mail.dreamhost.com (HELO homiemail-a80.g.dreamhost.com)
 (208.113.200.129)
 by server-10.tower-206.messagelabs.com with DHE-RSA-AES256-SHA encrypted SMTP;
 22 Jul 2016 15:24:50 -0000
Received: from homiemail-a80.g.dreamhost.com (localhost [127.0.0.1])
 by homiemail-a80.g.dreamhost.com (Postfix) with ESMTP id 8376837A089
 for <win-pv-devel@lists.xenproject.org>; Fri, 22 Jul 2016 08:24:47 -0700 (PDT)
Received: from mail-wm0-f47.google.com (mail-wm0-f47.google.com [74.125.82.47])
 (using TLSv1 with cipher AES128-SHA (128/128 bits))
 (No client certificate requested)
 (Authenticated sender: stevie@qrpff.net)
 by homiemail-a80.g.dreamhost.com (Postfix) with ESMTPSA id 8221A37A08B
 for <win-pv-devel@lists.xenproject.org>; Fri, 22 Jul 2016 08:24:00 -0700 (PDT)
Received: by mail-wm0-f47.google.com with SMTP id f65so61602544wmi.0
 for <win-pv-devel@lists.xenproject.org>; Fri, 22 Jul 2016 08:24:00 -0700 (PDT)
X-Gm-Message-State: AEkoouuSE8cxE4agA8ztH2ZRVnCkS6uNDHQ4uvnQGNoSz0hWApVCFoB6VAj/cnlUcUAQ5s3mC9bsEI4BKaljiA==
X-Received: by 10.28.39.133 with SMTP id n127mr5810739wmn.6.1469201039021;
 Fri, 22 Jul 2016 08:23:59 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.194.114.226 with HTTP; Fri, 22 Jul 2016 08:23:58 -0700 (PDT)
In-Reply-To: <f92517584f1142d9b4bfee538df7d3df@AMSPEX02CL03.citrite.net>
References: <f92517584f1142d9b4bfee538df7d3df@AMSPEX02CL03.citrite.net>
From: Stephen Oberholtzer <stevie@qrpff.net>
Date: Fri, 22 Jul 2016 11:23:58 -0400
X-Gmail-Original-Message-ID: <CAD_xR9dpnBF2coq7sg0-2zoTiv6L_GR0EZC8N0nih05JnjiYLg@mail.gmail.com>
Message-ID: <CAD_xR9dpnBF2coq7sg0-2zoTiv6L_GR0EZC8N0nih05JnjiYLg@mail.gmail.com>
To: Paul Durrant <Paul.Durrant@citrix.com>
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] Signed 8.1.0 drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============4607759727382093907=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============4607759727382093907==
Content-Type: multipart/alternative; boundary=001a114e161208e09905383b06f7

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

On Fri, Jul 22, 2016 at 11:12 AM, Paul Durrant <Paul.Durrant@citrix.com>
wrote:

>
>   Good news! I have tagged the 8.1.0 release driver source in each of the
> repositories, built it and signed it. I don't yet have an official place to
> put the signed builds so for the moment you can get them from
>

Are these test-signed or release-signed?

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

<div dir=3D"ltr"><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">=
On Fri, Jul 22, 2016 at 11:12 AM, Paul Durrant <span dir=3D"ltr">&lt;<a hre=
f=3D"mailto:Paul.Durrant@citrix.com" target=3D"_blank">Paul.Durrant@citrix.=
com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"mar=
gin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
=C2=A0 Good news! I have tagged the 8.1.0 release driver source in each of =
the repositories, built it and signed it. I don&#39;t yet have an official =
place to put the signed builds so for the moment you can get them from<br><=
/blockquote></div><br></div><div class=3D"gmail_extra">Are these test-signe=
d or release-signed?<br>
</div></div>

--001a114e161208e09905383b06f7--


--===============4607759727382093907==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============4607759727382093907==--


From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 15:24:53 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 15:24:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQcJo-0004gc-Ny; Fri, 22 Jul 2016 15:24:52 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <stevie@qrpff.net>) id 1bQcJo-0004gW-D3
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 15:24:52 +0000
Received: from [85.158.139.211] by server-13.bemta-5.messagelabs.com id
 65/C5-12874-3CA32975; Fri, 22 Jul 2016 15:24:51 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrGIsWRWlGSWpSXmKPExsVyofBEo+5hq0n
 hBgunMlv8WZzowOhx+MMVlgDGKNbMvKT8igTWjKbdp5kK2rgqji48yNTA+Jiji5GLQ0jgFqPE
 uudX2SCcl0wSBx5sZYJwZjNKrFlxnb2LkZNDQiBH4vyl41B2ocTas2/BbF4BQYmTM5+wgNhCA
 j4SW181sILYnAIeEvNOz2eDiLtLLO/7A1bDJqAjcez6abAaFgFViUPLt7NCzEyUmDBrIwvEzA
 CJ5++Wg8WFBQwkXn+6CjZHREBLYsIWkOM4OZgFvCXOzZnEDGF7SRw/+IFpAqPgLCQnzUKSmsX
 IAWSrS6yfJwQRVpO4ve0qO4StLbFs4WvmBYysqxg1ilOLylKLdI2M9JKKMtMzSnITM3N0DQ1M
 9XJTi4sT01NzEpOK9ZLzczcxAsO8noGBcQfjnna/Q4ySHExKorxqLJPChfiS8lMqMxKLM+KLS
 nNSiw8xynBwKEnwbrIEygkWpaanVqRl5gAjDiYtwcGjJML7CiTNW1yQmFucmQ6ROsWoy7Fl6r
 21TEIsefl5qVLivOUgRQIgRRmleXAjYNF/iVFWSpiXkYGBQYinILUoN7MEVf4VozgHo5Iw7ye
 QKTyZeSVwm14BHcEEdMQcgX6QI0oSEVJSDYzFXi/VYjvL/qxs0l/j/Flozt0fl0/8v/1x8Qqn
 CB/GZzfYvD7M/fEx5fSKlL1blv+RPfuvKMlTQ+rGs12nzTzEj8RsYLgjm73v8hm72cbTDrz5b
 pZp9P+ty4PFQeH6f568WShirVWwNli7wPhAxrqTW28L2eS56W3IjuzMFFhfLmq4wDT9ehaXEk
 txRqKhFnNRcSIANUPmRfkCAAA=
X-Env-Sender: stevie@qrpff.net
X-Msg-Ref: server-10.tower-206.messagelabs.com!1469201089!33758056!1
X-Originating-IP: [208.113.200.129]
X-SpamReason: No, hits=0.9 required=7.0 tests=HTML_40_50,HTML_MESSAGE,
 RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 9291 invoked from network); 22 Jul 2016 15:24:50 -0000
Received: from sub5.mail.dreamhost.com (HELO homiemail-a80.g.dreamhost.com)
 (208.113.200.129)
 by server-10.tower-206.messagelabs.com with DHE-RSA-AES256-SHA encrypted SMTP;
 22 Jul 2016 15:24:50 -0000
Received: from homiemail-a80.g.dreamhost.com (localhost [127.0.0.1])
 by homiemail-a80.g.dreamhost.com (Postfix) with ESMTP id 8376837A089
 for <win-pv-devel@lists.xenproject.org>; Fri, 22 Jul 2016 08:24:47 -0700 (PDT)
Received: from mail-wm0-f47.google.com (mail-wm0-f47.google.com [74.125.82.47])
 (using TLSv1 with cipher AES128-SHA (128/128 bits))
 (No client certificate requested)
 (Authenticated sender: stevie@qrpff.net)
 by homiemail-a80.g.dreamhost.com (Postfix) with ESMTPSA id 8221A37A08B
 for <win-pv-devel@lists.xenproject.org>; Fri, 22 Jul 2016 08:24:00 -0700 (PDT)
Received: by mail-wm0-f47.google.com with SMTP id f65so61602544wmi.0
 for <win-pv-devel@lists.xenproject.org>; Fri, 22 Jul 2016 08:24:00 -0700 (PDT)
X-Gm-Message-State: AEkoouuSE8cxE4agA8ztH2ZRVnCkS6uNDHQ4uvnQGNoSz0hWApVCFoB6VAj/cnlUcUAQ5s3mC9bsEI4BKaljiA==
X-Received: by 10.28.39.133 with SMTP id n127mr5810739wmn.6.1469201039021;
 Fri, 22 Jul 2016 08:23:59 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.194.114.226 with HTTP; Fri, 22 Jul 2016 08:23:58 -0700 (PDT)
In-Reply-To: <f92517584f1142d9b4bfee538df7d3df@AMSPEX02CL03.citrite.net>
References: <f92517584f1142d9b4bfee538df7d3df@AMSPEX02CL03.citrite.net>
From: Stephen Oberholtzer <stevie@qrpff.net>
Date: Fri, 22 Jul 2016 11:23:58 -0400
X-Gmail-Original-Message-ID: <CAD_xR9dpnBF2coq7sg0-2zoTiv6L_GR0EZC8N0nih05JnjiYLg@mail.gmail.com>
Message-ID: <CAD_xR9dpnBF2coq7sg0-2zoTiv6L_GR0EZC8N0nih05JnjiYLg@mail.gmail.com>
To: Paul Durrant <Paul.Durrant@citrix.com>
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] Signed 8.1.0 drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============4607759727382093907=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============4607759727382093907==
Content-Type: multipart/alternative; boundary=001a114e161208e09905383b06f7

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

On Fri, Jul 22, 2016 at 11:12 AM, Paul Durrant <Paul.Durrant@citrix.com>
wrote:

>
>   Good news! I have tagged the 8.1.0 release driver source in each of the
> repositories, built it and signed it. I don't yet have an official place to
> put the signed builds so for the moment you can get them from
>

Are these test-signed or release-signed?

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

<div dir=3D"ltr"><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">=
On Fri, Jul 22, 2016 at 11:12 AM, Paul Durrant <span dir=3D"ltr">&lt;<a hre=
f=3D"mailto:Paul.Durrant@citrix.com" target=3D"_blank">Paul.Durrant@citrix.=
com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"mar=
gin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
=C2=A0 Good news! I have tagged the 8.1.0 release driver source in each of =
the repositories, built it and signed it. I don&#39;t yet have an official =
place to put the signed builds so for the moment you can get them from<br><=
/blockquote></div><br></div><div class=3D"gmail_extra">Are these test-signe=
d or release-signed?<br>
</div></div>

--001a114e161208e09905383b06f7--


--===============4607759727382093907==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============4607759727382093907==--


From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 18:22:32 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 18:22:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQf5i-00081i-2g; Fri, 22 Jul 2016 18:22:30 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <cboxall@family-enterprises.com>) id 1bQf5g-00081Y-Pw
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 18:22:28 +0000
Received: from [85.158.139.211] by server-11.bemta-5.messagelabs.com id
 8B/1E-12614-46462975; Fri, 22 Jul 2016 18:22:28 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrHIsWRWlGSWpSXmKPExsXiIDv5q25yyqR
 wg0l7pCz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxr7ZjxkLejkq3l29z9TAeJGti5GTQ0LARGLX
 0Tb2LkYuDiGBRUwSZ+Z2sYAkhAUMJF5/ugpWJCKgKnFt+TEwW0jAXWJ53x+wGjYBY4nmw51gc
 V4BT4lzhxYzgtgsQPVnvzaxg9iiAiESJ+5PZIKoEZQ4OfMJWC+ngIfEvNPzwXqZBcwk5m1+yA
 xhy0tsfzuHGeI4DomOB1dZQY6TENjAJHH41RdGiESSxKMXu5ggbGGJ7Q9uQcVFJLo+PmGFiU/
 YeYwFwuaTmHJuK1Q9v8S9HWuhFohLPO96wDKBUWwWkvtmIblpFpKbFjAyr2LUKE4tKkst0jU0
 0ksqykzPKMlNzMzRNTQw1ctNLS5OTE/NSUwq1kvOz93ECIwXBiDYwdg3y/kQoyQHk5Io7/vgS
 eFCfEn5KZUZicUZ8UWlOanFhxhlODiUJHhfJwHlBItS01Mr0jJzgJELk5bg4FES4b0GkuYtLk
 jMLc5Mh0idYlSUEue9C5IQAElklObBtcGSxSVGWSlhXkagQ4R4ClKLcjNLUOVfMYpzMCoJ84o
 kA03hycwrgZv+CmgxE9DiOQL9IItLEhFSUg2MotkaW/bI+f7Zo+5dfvKNZMWDdf3Bc9rdzTNf
 y6WfNDR1dot+PNni2JREoZTuChkHA/U13vH6V74uemnPlHn5qCg7d4P9YSNrN+GE+MR30RfUi
 jUXrd+51ZC5Y9350zH+of0fO9zbA19nzL/3eNal3a48+fqL30f8551YzXyZ4XhWJUOG71wllu
 KMREMt5qLiRACkKAYGEQMAAA==
X-Env-Sender: cboxall@family-enterprises.com
X-Msg-Ref: server-5.tower-206.messagelabs.com!1469211746!50978544!1
X-Originating-IP: [64.29.147.245]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 24852 invoked from network); 22 Jul 2016 18:22:27 -0000
Received: from mail231c25.carrierzone.com (HELO mail238c25.carrierzone.com)
 (64.29.147.245)
 by server-5.tower-206.messagelabs.com with DHE-RSA-AES256-GCM-SHA384 encrypted
 SMTP; 22 Jul 2016 18:22:27 -0000
X-Authenticated-User: cboxall.family-enterprises.com
Received: from [172.20.11.120] ([199.200.223.3]) (authenticated bits=0)
 by mail238c25.carrierzone.com (8.14.9/8.13.1) with ESMTP id u6MIMN4i008338
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO)
 for <win-pv-devel@lists.xenproject.org>; Fri, 22 Jul 2016 18:22:25 +0000
To: win-pv-devel@lists.xenproject.org
References: <f92517584f1142d9b4bfee538df7d3df@AMSPEX02CL03.citrite.net>
From: Colin Boxall <cboxall@family-enterprises.com>
Message-ID: <4c14a4b5-c4b0-1afb-c7ba-a9315f411036@family-enterprises.com>
Date: Fri, 22 Jul 2016 14:22:18 -0400
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:45.0) Gecko/20100101
 Thunderbird/45.2.0
MIME-Version: 1.0
In-Reply-To: <f92517584f1142d9b4bfee538df7d3df@AMSPEX02CL03.citrite.net>
X-CSC: 0
X-CHA: v=2.1 cv=RuD8ckWK c=1 sm=1 tr=0 a=wijWDcBZJ0TnsSYX2Qiajg==:117
 a=wijWDcBZJ0TnsSYX2Qiajg==:17 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10
 a=s5jvgZ67dGcA:10 a=IkcTkHD0fZMA:10 a=mLnsDVdbAAAA:8 a=cWRNjhkoAAAA:8
 a=0Mug2YIrmq-3NiULr8cA:9 a=QEXdDO2ut3YA:10 a=xnp1pY6zelCj5OLna2To:22
 a=sVa6W5Aao32NNC1mekxh:22
X-CTCH-RefID: str=0001.0A010202.57926461.0079, ss=1, re=0.000, recu=0.000,
 reip=0.000, cl=1, cld=1, fgs=0
X-CTCH-VOD: Unknown
X-CTCH-Spam: Unknown
X-CTCH-Score: 0.000
X-CTCH-Rules: 
X-CTCH-Flags: 0
X-CTCH-ScoreCust: 0.000
Subject: Re: [win-pv-devel] Signed 8.1.0 drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhhbmsgeW91LCB0aGFuayB5b3UsIHRoYW5rIHlvdSEgIEkgdGhhbmsgeW91LCBteSBWTXMgdGhh
bmsgeW91LCBhbmQgbXkgCmdpcmxmcmllbmQgKHdobyBub3cgZG9lc24ndCBoYXZlIHRvIGxvc2Ug
bWUgdG8gdGltZSBzcGVudCBmaXhpbmcgVk1zIApzY3Jld2VkIHVwIGJ5IGltcHJvcGVyIHNodXQg
ZG93bnMpIHRoYW5rcyB5b3UhCgpFeGNlbGxlbnQgam9iIHRvIGV2ZXJ5b25lIHdobyBtYWRlIHRo
aXMgaGFwcGVuIQoKCk9uIDcvMjIvMjAxNiAxMToxMiBBTSwgUGF1bCBEdXJyYW50IHdyb3RlOgo+
IEFsbCwKPgo+ICAgIEdvb2QgbmV3cyEgSSBoYXZlIHRhZ2dlZCB0aGUgOC4xLjAgcmVsZWFzZSBk
cml2ZXIgc291cmNlIGluIGVhY2ggb2YgdGhlIHJlcG9zaXRvcmllcywgYnVpbHQgaXQgYW5kIHNp
Z25lZCBpdC4gSSBkb24ndCB5ZXQgaGF2ZSBhbiBvZmZpY2lhbCBwbGFjZSB0byBwdXQgdGhlIHNp
Z25lZCBidWlsZHMgc28gZm9yIHRoZSBtb21lbnQgeW91IGNhbiBnZXQgdGhlbSBmcm9tCj4KPiBo
dHRwczovL3hlbmJpdHMueGVuLm9yZy9wZW9wbGUvcGF1bGR1L3B2ZHJpdmVycy93aW4vcmVsZWFz
ZS84LjEuMAo+Cj4gICAgSSBoYXZlIHRlc3RlZCBpbnN0YWxsYXRpb24gb24gV2luZG93cyAxMCAo
MzItYml0KSBhbmQgdGhlIHNpZ25hdHVyZXMgYXBwZWFyIHRvIGJlIGdvb2QuCj4KPiAgICBJIHdp
bGwgbGV0IHRoZSBsaXN0IGtub3cgd2hlbiB0aGUgdGFyYmFsbHMgbW92ZSB0byBhIG1vcmUgcGVy
bWFuZW50IHBsYWNlIGFuZCBJIHdpbGwsIGF0IHRoYXQgcG9pbnQsIGxpbmsgdGhlbSBmcm9tIHRo
ZSBwcm9qZWN0IGZyb250IHBhZ2UuCj4KPiAgICBDaGVlcnMsCj4KPiAgICAgIFBhdWwKPgo+IF9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAo+IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwo+IGh0
dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1w
di1kZXZlbAo+CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVj
dC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGlu
Zm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 18:22:32 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 18:22:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQf5i-00081i-2g; Fri, 22 Jul 2016 18:22:30 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <cboxall@family-enterprises.com>) id 1bQf5g-00081Y-Pw
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 18:22:28 +0000
Received: from [85.158.139.211] by server-11.bemta-5.messagelabs.com id
 8B/1E-12614-46462975; Fri, 22 Jul 2016 18:22:28 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrHIsWRWlGSWpSXmKPExsXiIDv5q25yyqR
 wg0l7pCz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxr7ZjxkLejkq3l29z9TAeJGti5GTQ0LARGLX
 0Tb2LkYuDiGBRUwSZ+Z2sYAkhAUMJF5/ugpWJCKgKnFt+TEwW0jAXWJ53x+wGjYBY4nmw51gc
 V4BT4lzhxYzgtgsQPVnvzaxg9iiAiESJ+5PZIKoEZQ4OfMJWC+ngIfEvNPzwXqZBcwk5m1+yA
 xhy0tsfzuHGeI4DomOB1dZQY6TENjAJHH41RdGiESSxKMXu5ggbGGJ7Q9uQcVFJLo+PmGFiU/
 YeYwFwuaTmHJuK1Q9v8S9HWuhFohLPO96wDKBUWwWkvtmIblpFpKbFjAyr2LUKE4tKkst0jU0
 0ksqykzPKMlNzMzRNTQw1ctNLS5OTE/NSUwq1kvOz93ECIwXBiDYwdg3y/kQoyQHk5Io7/vgS
 eFCfEn5KZUZicUZ8UWlOanFhxhlODiUJHhfJwHlBItS01Mr0jJzgJELk5bg4FES4b0GkuYtLk
 jMLc5Mh0idYlSUEue9C5IQAElklObBtcGSxSVGWSlhXkagQ4R4ClKLcjNLUOVfMYpzMCoJ84o
 kA03hycwrgZv+CmgxE9DiOQL9IItLEhFSUg2MotkaW/bI+f7Zo+5dfvKNZMWDdf3Bc9rdzTNf
 y6WfNDR1dot+PNni2JREoZTuChkHA/U13vH6V74uemnPlHn5qCg7d4P9YSNrN+GE+MR30RfUi
 jUXrd+51ZC5Y9350zH+of0fO9zbA19nzL/3eNal3a48+fqL30f8551YzXyZ4XhWJUOG71wllu
 KMREMt5qLiRACkKAYGEQMAAA==
X-Env-Sender: cboxall@family-enterprises.com
X-Msg-Ref: server-5.tower-206.messagelabs.com!1469211746!50978544!1
X-Originating-IP: [64.29.147.245]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 24852 invoked from network); 22 Jul 2016 18:22:27 -0000
Received: from mail231c25.carrierzone.com (HELO mail238c25.carrierzone.com)
 (64.29.147.245)
 by server-5.tower-206.messagelabs.com with DHE-RSA-AES256-GCM-SHA384 encrypted
 SMTP; 22 Jul 2016 18:22:27 -0000
X-Authenticated-User: cboxall.family-enterprises.com
Received: from [172.20.11.120] ([199.200.223.3]) (authenticated bits=0)
 by mail238c25.carrierzone.com (8.14.9/8.13.1) with ESMTP id u6MIMN4i008338
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO)
 for <win-pv-devel@lists.xenproject.org>; Fri, 22 Jul 2016 18:22:25 +0000
To: win-pv-devel@lists.xenproject.org
References: <f92517584f1142d9b4bfee538df7d3df@AMSPEX02CL03.citrite.net>
From: Colin Boxall <cboxall@family-enterprises.com>
Message-ID: <4c14a4b5-c4b0-1afb-c7ba-a9315f411036@family-enterprises.com>
Date: Fri, 22 Jul 2016 14:22:18 -0400
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:45.0) Gecko/20100101
 Thunderbird/45.2.0
MIME-Version: 1.0
In-Reply-To: <f92517584f1142d9b4bfee538df7d3df@AMSPEX02CL03.citrite.net>
X-CSC: 0
X-CHA: v=2.1 cv=RuD8ckWK c=1 sm=1 tr=0 a=wijWDcBZJ0TnsSYX2Qiajg==:117
 a=wijWDcBZJ0TnsSYX2Qiajg==:17 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10
 a=s5jvgZ67dGcA:10 a=IkcTkHD0fZMA:10 a=mLnsDVdbAAAA:8 a=cWRNjhkoAAAA:8
 a=0Mug2YIrmq-3NiULr8cA:9 a=QEXdDO2ut3YA:10 a=xnp1pY6zelCj5OLna2To:22
 a=sVa6W5Aao32NNC1mekxh:22
X-CTCH-RefID: str=0001.0A010202.57926461.0079, ss=1, re=0.000, recu=0.000,
 reip=0.000, cl=1, cld=1, fgs=0
X-CTCH-VOD: Unknown
X-CTCH-Spam: Unknown
X-CTCH-Score: 0.000
X-CTCH-Rules: 
X-CTCH-Flags: 0
X-CTCH-ScoreCust: 0.000
Subject: Re: [win-pv-devel] Signed 8.1.0 drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhhbmsgeW91LCB0aGFuayB5b3UsIHRoYW5rIHlvdSEgIEkgdGhhbmsgeW91LCBteSBWTXMgdGhh
bmsgeW91LCBhbmQgbXkgCmdpcmxmcmllbmQgKHdobyBub3cgZG9lc24ndCBoYXZlIHRvIGxvc2Ug
bWUgdG8gdGltZSBzcGVudCBmaXhpbmcgVk1zIApzY3Jld2VkIHVwIGJ5IGltcHJvcGVyIHNodXQg
ZG93bnMpIHRoYW5rcyB5b3UhCgpFeGNlbGxlbnQgam9iIHRvIGV2ZXJ5b25lIHdobyBtYWRlIHRo
aXMgaGFwcGVuIQoKCk9uIDcvMjIvMjAxNiAxMToxMiBBTSwgUGF1bCBEdXJyYW50IHdyb3RlOgo+
IEFsbCwKPgo+ICAgIEdvb2QgbmV3cyEgSSBoYXZlIHRhZ2dlZCB0aGUgOC4xLjAgcmVsZWFzZSBk
cml2ZXIgc291cmNlIGluIGVhY2ggb2YgdGhlIHJlcG9zaXRvcmllcywgYnVpbHQgaXQgYW5kIHNp
Z25lZCBpdC4gSSBkb24ndCB5ZXQgaGF2ZSBhbiBvZmZpY2lhbCBwbGFjZSB0byBwdXQgdGhlIHNp
Z25lZCBidWlsZHMgc28gZm9yIHRoZSBtb21lbnQgeW91IGNhbiBnZXQgdGhlbSBmcm9tCj4KPiBo
dHRwczovL3hlbmJpdHMueGVuLm9yZy9wZW9wbGUvcGF1bGR1L3B2ZHJpdmVycy93aW4vcmVsZWFz
ZS84LjEuMAo+Cj4gICAgSSBoYXZlIHRlc3RlZCBpbnN0YWxsYXRpb24gb24gV2luZG93cyAxMCAo
MzItYml0KSBhbmQgdGhlIHNpZ25hdHVyZXMgYXBwZWFyIHRvIGJlIGdvb2QuCj4KPiAgICBJIHdp
bGwgbGV0IHRoZSBsaXN0IGtub3cgd2hlbiB0aGUgdGFyYmFsbHMgbW92ZSB0byBhIG1vcmUgcGVy
bWFuZW50IHBsYWNlIGFuZCBJIHdpbGwsIGF0IHRoYXQgcG9pbnQsIGxpbmsgdGhlbSBmcm9tIHRo
ZSBwcm9qZWN0IGZyb250IHBhZ2UuCj4KPiAgICBDaGVlcnMsCj4KPiAgICAgIFBhdWwKPgo+IF9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAo+IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwo+IGh0
dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1w
di1kZXZlbAo+CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVj
dC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGlu
Zm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 18:26:11 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 18:26:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQf9H-00086t-FC; Fri, 22 Jul 2016 18:26:11 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <joel.noyce-barnham@zynstra.com>) id 1bQf9G-00086n-DP
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 18:26:10 +0000
Received: from [85.158.137.68] by server-9.bemta-3.messagelabs.com id
 E6/79-27233-14562975; Fri, 22 Jul 2016 18:26:09 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA1WSW0gUYRTH95uZ3Z3Eic9V87Tpy0ZU1i5rUpk
 h1EMphBlpFELoqKMzuBebWUOj0FUf0qKLleSt1MrsIqRulqXSWpSbaRRuEVgvKqWFmQU92G3H
 8dbb/zv/33fO/8ChSV2LRk9zeQ5OtLEWg8aPWpNNJBm3ceX7zd+nV0X9usJuQ3GPJwepPShZL
 djS7Hmpat550U3k9ITljbh6USEaXV6G/GgKF5NQ0TZGyQ8driBgwH2aUB69CIp/T5NlaAmtwV
 ugtmWSkHUQDoczrrszmsS7wOtxI1kHYjN8nvJqyhDtYyLgQ0OmgptgdLhpBqfwKmg/NTmDMDg
 Vjju3y2WEw+CH8xapdAyBoh831LIGjOFq50tS0cEwNvxHrfCp8K7mhEapG2CiewQpOh5GH74l
 5fiAS7Tw9lwTpRhx0Op1UfJcwHZofmNUytFw50GlVuEHEEyXDM3yodB5tRsphlMDnd6PMyl0O
 B1cJyu0yr56eD9YOrt7KHwa6lLLA0hsg4ExP7nM4ADwVI7M9/QUt2sVnQCvnF/IM2hl1aKdqx
 Z+Vy36rSDroe7hlEbR66Cx/jM5p188GiYW1+uQ9iZaI3HiYU40bthsShOFLN5hZQWLMcIcabJ
 yksRmcRY2TTKl262tyHc+BSoVuo9Kunb3oOU0YQhmviaW79ctTbNn5POsxKeIuRZO6kGhNG0A
 JjbD5wWIXBaXlylYfDc4ZwPtbwhijso2I+WwVknIUqznyEg3tg01EzrKZrdx+hAmSYawDPG5t
 vkWc5f8GoXpAxmkUql0/jmcaBUc//vjKIRGhkCmSO7iL9gc85PGfSEIX4gafFoO4WAXLH0hQu
 viVi9rr87cNHW37VqCeuBCaWR12bNWfYxn7BJXf2Tj6oKMgqbEQ3xffsKn19kpB2KCyZSdwr4
 V93IdUcfi3BPjxtifdXvPbr38rlAbW+Dydg2Z+xwd8d395w9GTfD5Hv56cMsT07eO3rUb/6qF
 Ew3NyVOialnt05DoR7d3vEroN1ASz0aEk6LE/gMHvWaRxAMAAA==
X-Env-Sender: joel.noyce-barnham@zynstra.com
X-Msg-Ref: server-5.tower-31.messagelabs.com!1469211968!48828020!1
X-Originating-IP: [40.107.2.84]
X-SpamReason: No, hits=0.1 required=7.0 tests=HTML_30_40,HTML_MESSAGE
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8526 invoked from network); 22 Jul 2016 18:26:08 -0000
Received: from mail-eopbgr20084.outbound.protection.outlook.com (HELO
 EUR02-VE1-obe.outbound.protection.outlook.com) (40.107.2.84)
 by server-5.tower-31.messagelabs.com with AES256-SHA256 encrypted SMTP;
 22 Jul 2016 18:26:08 -0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zyn.onmicrosoft.com;
 s=selector1-zynstra-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version;
 bh=kL5HJV773eil3iJRiygvEVU20zYDjngSmY+LVTvWq+g=;
 b=O2VizYnlckCz8FhUIs7GGqYhziFHZHrDsp1OBS5gNeo9l8CRt8E1qd/Mxurttm/UGNTtFnXTbKWzZgqN1CpNy5k2y0f2UvKme7RKXjFR9eYD+wDNTGgdiecjWvPKRhTR/MH8L7EsxBX7YQaCWj3WFKRuWlBo3ek/Cdqy1LEdjqQ=
Received: from DB5PR0401MB1912.eurprd04.prod.outlook.com (10.166.10.147) by
 DB5PR0401MB1910.eurprd04.prod.outlook.com (10.166.10.145) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id
 15.1.549.5; Fri, 22 Jul 2016 18:26:05 +0000
Received: from DB5PR0401MB1912.eurprd04.prod.outlook.com ([10.166.10.147]) by
 DB5PR0401MB1912.eurprd04.prod.outlook.com ([10.166.10.147]) with
 mapi id 15.01.0549.003; Fri, 22 Jul 2016 18:26:05 +0000
From: Joel Noyce-Barnham <joel.noyce-barnham@zynstra.com>
To: Paul Durrant <Paul.Durrant@citrix.com>
Thread-Topic: [win-pv-devel] Signed 8.1.0 drivers
Thread-Index: AQHR5EZ/cLsSp0RNRIWfEjeYPAAr4w==
Date: Fri, 22 Jul 2016 18:26:05 +0000
Message-ID: <DB5PR0401MB19128A5467AAC862AD25C573C60A0@DB5PR0401MB1912.eurprd04.prod.outlook.com>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [82.132.233.150]
x-ms-office365-filtering-correlation-id: 3c40a2ef-7b5c-4719-5a35-08d3b25da4fe
x-microsoft-exchange-diagnostics: 1; DB5PR0401MB1910;
 6:DGkJzCbTd0v/KwhVFU91/xZ6Eg5zeMBlrNJ0IUQjrHmnzqvhsxiSEP0/Ckgr5YzAwOiWlIdasFJrRsRJDKdf8fCWXUmTnDLqDNVjIVHJqFTt07LUkL1Hh82yNCelloDrEUzEs3F0aUEjPv9RDmFbGZYTcEgdoCl2bqYW0nQdJ+ErA3ohEHkTJ7FSl8eRAT9jKu/lOH8cXJlJCE2xZCKtmuuRXbALYmF3L13OCQkfjuW9rOqL3aakfD+VIq/rzA2UeImFaRJOEikvdj3xR3m1xGZlKOChuhe9x5r1qeyRq/sNHqc1KwFvF8c/5MaD05F3;
 5:Eg90vECQO77EOjtZK51pLyTpLJJCuPvK4/wDbdM4UibGHY2QDK1uiWtizQ8BX5EczkNwwA8a8cS0d62X8SleltJHwo9EMCHCZpJxy2sBBy9Ye34uES10ST14qTV8Vb8iuKJS7oFn33OOIpic0oqydA==;
 24:JHUekH6APh/od7e2ICvXzsqCusPCcq/odZZWH8RLAvptWrUSvxGBUzw8uQWLXpPMEVltbcdlqQKbtyR6p5clj9WkV8N76T0G0RYn4bDfYZU=;
 7:XHys+C6dUMS4vV2WSW/4IMPHDFoiwGiFKoKvybNXzQCz7eiaTlSm4gAtP3bcgEy1StQchX1mKI9H0DIkZpiwxNV3VdavDUmjJns2klodnR9o92bP2t74NU+Pt7RMTjUutkSg0OtzqHnT5jLzlMR3xfFxWtpBx52+BuAA+ftqyODgH4h4dm9cLqg8HRzdW0LprU/uJunpI0LSp8H9zhq427Tohsm0LXQtf3LFXUEHTcHVOJwSW2DK59dcuZk2AapP
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DB5PR0401MB1910;
x-microsoft-antispam-prvs: <DB5PR0401MB1910731378C7EE8EB2EEFB66C60A0@DB5PR0401MB1910.eurprd04.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(70601490899591);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0;
 RULEID:(6040130)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6041072)(6043046);
 SRVR:DB5PR0401MB1910; BCL:0; PCL:0; RULEID:; SRVR:DB5PR0401MB1910; 
x-forefront-prvs: 0011612A55
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10009020)(7916002)(24454002)(199003)(189002)(377454003)(106356001)(16236675004)(50986999)(66066001)(101416001)(230783001)(8936002)(19580405001)(81156014)(81166006)(19580395003)(3660700001)(9686002)(3280700002)(76576001)(68736007)(106116001)(86362001)(87936001)(110136002)(5002640100001)(97736004)(7736002)(74316002)(10400500002)(5003600100003)(7696003)(7906003)(7846002)(4326007)(8676002)(105586002)(189998001)(6116002)(102836003)(3846002)(2900100001)(586003)(11100500001)(122556002)(54356999)(33656002)(8666005)(5890100001)(2906002)(19617315012)(77096005)(92566002)(15975445007)(7059030);
 DIR:OUT; SFP:1101; SCL:1; SRVR:DB5PR0401MB1910;
 H:DB5PR0401MB1912.eurprd04.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;
 A:1; MX:1; LANG:en; 
received-spf: None (protection.outlook.com: zynstra.com does not designate
 permitted sender hosts)
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
MIME-Version: 1.0
X-OriginatorOrg: zynstra.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Jul 2016 18:26:05.5724 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4c2b4c7a-32de-4e00-8ebe-361d80e7a665
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR0401MB1910
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] Signed 8.1.0 drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============7342738915911352403=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============7342738915911352403==
Content-Language: en-GB
Content-Type: multipart/alternative;
	boundary="_000_DB5PR0401MB19128A5467AAC862AD25C573C60A0DB5PR0401MB1912_"

--_000_DB5PR0401MB19128A5467AAC862AD25C573C60A0DB5PR0401MB1912_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Excellent work Paul! Thanks to you and all the other contributors for your =
hard work on this release.

On 22 Jul 2016 4:12 p.m., Paul Durrant <Paul.Durrant@citrix.com> wrote:
All,

  Good news! I have tagged the 8.1.0 release driver source in each of the r=
epositories, built it and signed it. I don't yet have an official place to =
put the signed builds so for the moment you can get them from

https://xenbits.xen.org/people/pauldu/pvdrivers/win/release/8.1.0

  I have tested installation on Windows 10 (32-bit) and the signatures appe=
ar to be good.

  I will let the list know when the tarballs move to a more permanent place=
 and I will, at that point, link them from the project front page.

  Cheers,

    Paul

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel


Zynstra is a private limited company registered in England and Wales (regis=
tered number 07864369). Our registered office and Headquarters are at The I=
nnovation Centre, Broad Quay, Bath, BA1 1UD. This email, its contents and a=
ny attachments are confidential. If you have received this message in error=
 please delete it from your system and advise the sender immediately.

--_000_DB5PR0401MB19128A5467AAC862AD25C573C60A0DB5PR0401MB1912_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
</head>
<body>
<p dir=3D"ltr">Excellent work Paul! Thanks to you and all the other contrib=
utors for your hard work on this release.</p>
<div class=3D"gmail_extra"><br>
<div class=3D"gmail_quote">On 22 Jul 2016 4:12 p.m., Paul Durrant &lt;Paul.=
Durrant@citrix.com&gt; wrote:<br type=3D"attribution">
<blockquote class=3D"quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc=
 solid;padding-left:1ex">
<div><font size=3D"2"><span style=3D"font-size:10pt"></span></font>
<div>All,<br>
<br>
&nbsp; Good news! I have tagged the 8.1.0 release driver source in each of =
the repositories, built it and signed it. I don't yet have an official plac=
e to put the signed builds so for the moment you can get them from<br>
<br>
<a href=3D"https://xenbits.xen.org/people/pauldu/pvdrivers/win/release/8.1.=
0">https://xenbits.xen.org/people/pauldu/pvdrivers/win/release/8.1.0</a><br=
>
<br>
&nbsp; I have tested installation on Windows 10 (32-bit) and the signatures=
 appear to be good.<br>
<br>
&nbsp; I will let the list know when the tarballs move to a more permanent =
place and I will, at that point, link them from the project front page.<br>
<br>
&nbsp; Cheers,<br>
<br>
&nbsp;&nbsp;&nbsp; Paul<br>
<br>
_______________________________________________<br>
win-pv-devel mailing list<br>
win-pv-devel@lists.xenproject.org<br>
<a href=3D"https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-dev=
el">https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel</a><=
/div>
</div>
</blockquote>
</div>
<br>
</div>
<p style=3D"font-size:8pt; line-height:10pt; color:gray; font-family: 'Camb=
ria','times roman',serif;">
Zynstra is a private limited company registered in England and Wales (regis=
tered number 07864369). Our registered office and Headquarters are at The I=
nnovation Centre, Broad Quay, Bath, BA1 1UD. This email, its contents and a=
ny attachments are confidential.
 If you have received this message in error please delete it from your syst=
em and advise the sender immediately.
</p>
</body>
</html>

--_000_DB5PR0401MB19128A5467AAC862AD25C573C60A0DB5PR0401MB1912_--


--===============7342738915911352403==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============7342738915911352403==--


From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 18:26:11 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 18:26:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQf9H-00086t-FC; Fri, 22 Jul 2016 18:26:11 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <joel.noyce-barnham@zynstra.com>) id 1bQf9G-00086n-DP
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 18:26:10 +0000
Received: from [85.158.137.68] by server-9.bemta-3.messagelabs.com id
 E6/79-27233-14562975; Fri, 22 Jul 2016 18:26:09 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA1WSW0gUYRTH95uZ3Z3Eic9V87Tpy0ZU1i5rUpk
 h1EMphBlpFELoqKMzuBebWUOj0FUf0qKLleSt1MrsIqRulqXSWpSbaRRuEVgvKqWFmQU92G3H
 8dbb/zv/33fO/8ChSV2LRk9zeQ5OtLEWg8aPWpNNJBm3ceX7zd+nV0X9usJuQ3GPJwepPShZL
 djS7Hmpat550U3k9ITljbh6USEaXV6G/GgKF5NQ0TZGyQ8driBgwH2aUB69CIp/T5NlaAmtwV
 ugtmWSkHUQDoczrrszmsS7wOtxI1kHYjN8nvJqyhDtYyLgQ0OmgptgdLhpBqfwKmg/NTmDMDg
 Vjju3y2WEw+CH8xapdAyBoh831LIGjOFq50tS0cEwNvxHrfCp8K7mhEapG2CiewQpOh5GH74l
 5fiAS7Tw9lwTpRhx0Op1UfJcwHZofmNUytFw50GlVuEHEEyXDM3yodB5tRsphlMDnd6PMyl0O
 B1cJyu0yr56eD9YOrt7KHwa6lLLA0hsg4ExP7nM4ADwVI7M9/QUt2sVnQCvnF/IM2hl1aKdqx
 Z+Vy36rSDroe7hlEbR66Cx/jM5p188GiYW1+uQ9iZaI3HiYU40bthsShOFLN5hZQWLMcIcabJ
 yksRmcRY2TTKl262tyHc+BSoVuo9Kunb3oOU0YQhmviaW79ctTbNn5POsxKeIuRZO6kGhNG0A
 JjbD5wWIXBaXlylYfDc4ZwPtbwhijso2I+WwVknIUqznyEg3tg01EzrKZrdx+hAmSYawDPG5t
 vkWc5f8GoXpAxmkUql0/jmcaBUc//vjKIRGhkCmSO7iL9gc85PGfSEIX4gafFoO4WAXLH0hQu
 viVi9rr87cNHW37VqCeuBCaWR12bNWfYxn7BJXf2Tj6oKMgqbEQ3xffsKn19kpB2KCyZSdwr4
 V93IdUcfi3BPjxtifdXvPbr38rlAbW+Dydg2Z+xwd8d395w9GTfD5Hv56cMsT07eO3rUb/6qF
 Ew3NyVOialnt05DoR7d3vEroN1ASz0aEk6LE/gMHvWaRxAMAAA==
X-Env-Sender: joel.noyce-barnham@zynstra.com
X-Msg-Ref: server-5.tower-31.messagelabs.com!1469211968!48828020!1
X-Originating-IP: [40.107.2.84]
X-SpamReason: No, hits=0.1 required=7.0 tests=HTML_30_40,HTML_MESSAGE
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8526 invoked from network); 22 Jul 2016 18:26:08 -0000
Received: from mail-eopbgr20084.outbound.protection.outlook.com (HELO
 EUR02-VE1-obe.outbound.protection.outlook.com) (40.107.2.84)
 by server-5.tower-31.messagelabs.com with AES256-SHA256 encrypted SMTP;
 22 Jul 2016 18:26:08 -0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zyn.onmicrosoft.com;
 s=selector1-zynstra-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version;
 bh=kL5HJV773eil3iJRiygvEVU20zYDjngSmY+LVTvWq+g=;
 b=O2VizYnlckCz8FhUIs7GGqYhziFHZHrDsp1OBS5gNeo9l8CRt8E1qd/Mxurttm/UGNTtFnXTbKWzZgqN1CpNy5k2y0f2UvKme7RKXjFR9eYD+wDNTGgdiecjWvPKRhTR/MH8L7EsxBX7YQaCWj3WFKRuWlBo3ek/Cdqy1LEdjqQ=
Received: from DB5PR0401MB1912.eurprd04.prod.outlook.com (10.166.10.147) by
 DB5PR0401MB1910.eurprd04.prod.outlook.com (10.166.10.145) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id
 15.1.549.5; Fri, 22 Jul 2016 18:26:05 +0000
Received: from DB5PR0401MB1912.eurprd04.prod.outlook.com ([10.166.10.147]) by
 DB5PR0401MB1912.eurprd04.prod.outlook.com ([10.166.10.147]) with
 mapi id 15.01.0549.003; Fri, 22 Jul 2016 18:26:05 +0000
From: Joel Noyce-Barnham <joel.noyce-barnham@zynstra.com>
To: Paul Durrant <Paul.Durrant@citrix.com>
Thread-Topic: [win-pv-devel] Signed 8.1.0 drivers
Thread-Index: AQHR5EZ/cLsSp0RNRIWfEjeYPAAr4w==
Date: Fri, 22 Jul 2016 18:26:05 +0000
Message-ID: <DB5PR0401MB19128A5467AAC862AD25C573C60A0@DB5PR0401MB1912.eurprd04.prod.outlook.com>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [82.132.233.150]
x-ms-office365-filtering-correlation-id: 3c40a2ef-7b5c-4719-5a35-08d3b25da4fe
x-microsoft-exchange-diagnostics: 1; DB5PR0401MB1910;
 6:DGkJzCbTd0v/KwhVFU91/xZ6Eg5zeMBlrNJ0IUQjrHmnzqvhsxiSEP0/Ckgr5YzAwOiWlIdasFJrRsRJDKdf8fCWXUmTnDLqDNVjIVHJqFTt07LUkL1Hh82yNCelloDrEUzEs3F0aUEjPv9RDmFbGZYTcEgdoCl2bqYW0nQdJ+ErA3ohEHkTJ7FSl8eRAT9jKu/lOH8cXJlJCE2xZCKtmuuRXbALYmF3L13OCQkfjuW9rOqL3aakfD+VIq/rzA2UeImFaRJOEikvdj3xR3m1xGZlKOChuhe9x5r1qeyRq/sNHqc1KwFvF8c/5MaD05F3;
 5:Eg90vECQO77EOjtZK51pLyTpLJJCuPvK4/wDbdM4UibGHY2QDK1uiWtizQ8BX5EczkNwwA8a8cS0d62X8SleltJHwo9EMCHCZpJxy2sBBy9Ye34uES10ST14qTV8Vb8iuKJS7oFn33OOIpic0oqydA==;
 24:JHUekH6APh/od7e2ICvXzsqCusPCcq/odZZWH8RLAvptWrUSvxGBUzw8uQWLXpPMEVltbcdlqQKbtyR6p5clj9WkV8N76T0G0RYn4bDfYZU=;
 7:XHys+C6dUMS4vV2WSW/4IMPHDFoiwGiFKoKvybNXzQCz7eiaTlSm4gAtP3bcgEy1StQchX1mKI9H0DIkZpiwxNV3VdavDUmjJns2klodnR9o92bP2t74NU+Pt7RMTjUutkSg0OtzqHnT5jLzlMR3xfFxWtpBx52+BuAA+ftqyODgH4h4dm9cLqg8HRzdW0LprU/uJunpI0LSp8H9zhq427Tohsm0LXQtf3LFXUEHTcHVOJwSW2DK59dcuZk2AapP
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DB5PR0401MB1910;
x-microsoft-antispam-prvs: <DB5PR0401MB1910731378C7EE8EB2EEFB66C60A0@DB5PR0401MB1910.eurprd04.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(70601490899591);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0;
 RULEID:(6040130)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6041072)(6043046);
 SRVR:DB5PR0401MB1910; BCL:0; PCL:0; RULEID:; SRVR:DB5PR0401MB1910; 
x-forefront-prvs: 0011612A55
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10009020)(7916002)(24454002)(199003)(189002)(377454003)(106356001)(16236675004)(50986999)(66066001)(101416001)(230783001)(8936002)(19580405001)(81156014)(81166006)(19580395003)(3660700001)(9686002)(3280700002)(76576001)(68736007)(106116001)(86362001)(87936001)(110136002)(5002640100001)(97736004)(7736002)(74316002)(10400500002)(5003600100003)(7696003)(7906003)(7846002)(4326007)(8676002)(105586002)(189998001)(6116002)(102836003)(3846002)(2900100001)(586003)(11100500001)(122556002)(54356999)(33656002)(8666005)(5890100001)(2906002)(19617315012)(77096005)(92566002)(15975445007)(7059030);
 DIR:OUT; SFP:1101; SCL:1; SRVR:DB5PR0401MB1910;
 H:DB5PR0401MB1912.eurprd04.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;
 A:1; MX:1; LANG:en; 
received-spf: None (protection.outlook.com: zynstra.com does not designate
 permitted sender hosts)
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
MIME-Version: 1.0
X-OriginatorOrg: zynstra.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Jul 2016 18:26:05.5724 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4c2b4c7a-32de-4e00-8ebe-361d80e7a665
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR0401MB1910
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] Signed 8.1.0 drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============7342738915911352403=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============7342738915911352403==
Content-Language: en-GB
Content-Type: multipart/alternative;
	boundary="_000_DB5PR0401MB19128A5467AAC862AD25C573C60A0DB5PR0401MB1912_"

--_000_DB5PR0401MB19128A5467AAC862AD25C573C60A0DB5PR0401MB1912_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Excellent work Paul! Thanks to you and all the other contributors for your =
hard work on this release.

On 22 Jul 2016 4:12 p.m., Paul Durrant <Paul.Durrant@citrix.com> wrote:
All,

  Good news! I have tagged the 8.1.0 release driver source in each of the r=
epositories, built it and signed it. I don't yet have an official place to =
put the signed builds so for the moment you can get them from

https://xenbits.xen.org/people/pauldu/pvdrivers/win/release/8.1.0

  I have tested installation on Windows 10 (32-bit) and the signatures appe=
ar to be good.

  I will let the list know when the tarballs move to a more permanent place=
 and I will, at that point, link them from the project front page.

  Cheers,

    Paul

_______________________________________________
win-pv-devel mailing list
win-pv-devel@lists.xenproject.org
https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel


Zynstra is a private limited company registered in England and Wales (regis=
tered number 07864369). Our registered office and Headquarters are at The I=
nnovation Centre, Broad Quay, Bath, BA1 1UD. This email, its contents and a=
ny attachments are confidential. If you have received this message in error=
 please delete it from your system and advise the sender immediately.

--_000_DB5PR0401MB19128A5467AAC862AD25C573C60A0DB5PR0401MB1912_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
</head>
<body>
<p dir=3D"ltr">Excellent work Paul! Thanks to you and all the other contrib=
utors for your hard work on this release.</p>
<div class=3D"gmail_extra"><br>
<div class=3D"gmail_quote">On 22 Jul 2016 4:12 p.m., Paul Durrant &lt;Paul.=
Durrant@citrix.com&gt; wrote:<br type=3D"attribution">
<blockquote class=3D"quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc=
 solid;padding-left:1ex">
<div><font size=3D"2"><span style=3D"font-size:10pt"></span></font>
<div>All,<br>
<br>
&nbsp; Good news! I have tagged the 8.1.0 release driver source in each of =
the repositories, built it and signed it. I don't yet have an official plac=
e to put the signed builds so for the moment you can get them from<br>
<br>
<a href=3D"https://xenbits.xen.org/people/pauldu/pvdrivers/win/release/8.1.=
0">https://xenbits.xen.org/people/pauldu/pvdrivers/win/release/8.1.0</a><br=
>
<br>
&nbsp; I have tested installation on Windows 10 (32-bit) and the signatures=
 appear to be good.<br>
<br>
&nbsp; I will let the list know when the tarballs move to a more permanent =
place and I will, at that point, link them from the project front page.<br>
<br>
&nbsp; Cheers,<br>
<br>
&nbsp;&nbsp;&nbsp; Paul<br>
<br>
_______________________________________________<br>
win-pv-devel mailing list<br>
win-pv-devel@lists.xenproject.org<br>
<a href=3D"https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-dev=
el">https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel</a><=
/div>
</div>
</blockquote>
</div>
<br>
</div>
<p style=3D"font-size:8pt; line-height:10pt; color:gray; font-family: 'Camb=
ria','times roman',serif;">
Zynstra is a private limited company registered in England and Wales (regis=
tered number 07864369). Our registered office and Headquarters are at The I=
nnovation Centre, Broad Quay, Bath, BA1 1UD. This email, its contents and a=
ny attachments are confidential.
 If you have received this message in error please delete it from your syst=
em and advise the sender immediately.
</p>
</body>
</html>

--_000_DB5PR0401MB19128A5467AAC862AD25C573C60A0DB5PR0401MB1912_--


--===============7342738915911352403==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============7342738915911352403==--


From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 20:24:37 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 20:24:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQgzr-0006Et-07; Fri, 22 Jul 2016 20:24:35 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=004762f41=Paul.Durrant@citrix.com>)
 id 1bQgzp-0006En-KQ
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 20:24:33 +0000
Received: from [193.109.254.147] by server-7.bemta-14.messagelabs.com id
 91/9E-06589-00182975; Fri, 22 Jul 2016 20:24:32 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprCKsWRWlGSWpSXmKPExsWyU9JRQvd/w6R
 wg/Zl5hZ/Fic6MHoc/nCFJYAxijUzLym/IoE148K6D+wFp4Uqdu/az97AuEegi5GTQ0IgSOLk
 2W0sIDabgI7E0qPzmUBsEQEtibfTr4LZzALeEldPHmQEsYUFDCRef7rK1sXIAVRjKHFvURpEu
 ZVE16FWsBIWAVWJ/dfPs4LYvAJuEhf2tLN3MXJxCAn0MEo0bvzKDJLgFAiU6F70F6yBUUBW4k
 vjamaIXeISTV9WskLcJiCxZM95ZghbVOLl439QcQOJrUv3sUDUZ0u0dMxng1gmKHFy5hOwuJC
 AisSWxwegerklVn7+wzKBUWQWkhWzkLTPQtIOEdeRWLD7ExuErS2xbOFrZhj7zIHHTMjiCxjZ
 VzFqFKcWlaUW6Roa6iUVZaZnlOQmZuYAeSZ6uanFxYnpqTmJScV6yfm5mxiBscUABDsYz6xwP
 sQoycGkJMr7PnhSuBBfUn5KZUZicUZ8UWlOavEhRhkODiUJXn5grAoJFqWmp1akZeYAoxwmLc
 HBoyTC61cPlOYtLkjMLc5Mh0idYlSUEue9D5IQAElklObBtcESyyVGWSlhXkagQ4R4ClKLcjN
 LUOVfMYpzMCoJ87qAbOfJzCuBm/4KaDET0OI5Av0gi0sSEVJSDYyqPHNjpOObbk6UX1/LrtNS
 HrPC81Zi5T5psXfSnd7bv3IKz5F+HzVlkcTSKcsF71sKh7Q8kel/WcSs2LZu4tVDG59XKPCW6
 E/2aVsaWjntNIv1Db/mz/sjD1Zp/i67xXnuxdW7Dy6+Wy0S9zVz/bXY1Sf3G2TtCX7q1XIsdf
 IutYqECi2F9VZKLMUZiYZazEXFiQAq+JeWJwMAAA==
X-Env-Sender: prvs=004762f41=Paul.Durrant@citrix.com
X-Msg-Ref: server-7.tower-27.messagelabs.com!1469219071!50782221!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.1 required=7.0 tests=HTML_50_60,HTML_MESSAGE,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28963 invoked from network); 22 Jul 2016 20:24:31 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-7.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 22 Jul 2016 20:24:31 -0000
X-IronPort-AV: E=Sophos;i="5.28,405,1464652800"; d="scan'208,217";a="26981451"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Stephen Oberholtzer <stevie@qrpff.net>
Thread-Topic: [win-pv-devel] Signed 8.1.0 drivers
Thread-Index: AdHkKv6ycLsSp0RNRIWfEjeYPAAr4///4p0AgAB1dDE=
Date: Fri, 22 Jul 2016 20:24:20 +0000
Message-ID: <3cxe82iwd0eciwvqegjfh3fc.1469219059890@email.android.com>
References: <f92517584f1142d9b4bfee538df7d3df@AMSPEX02CL03.citrite.net>,
 <CAD_xR9dpnBF2coq7sg0-2zoTiv6L_GR0EZC8N0nih05JnjiYLg@mail.gmail.com>
In-Reply-To: <CAD_xR9dpnBF2coq7sg0-2zoTiv6L_GR0EZC8N0nih05JnjiYLg@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] Signed 8.1.0 drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============4466498900481028468=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============4466498900481028468==
Content-Language: en-GB
Content-Type: multipart/alternative;
	boundary="_000_3cxe82iwd0eciwvqegjfh3fc1469219059890emailandroidcom_"

--_000_3cxe82iwd0eciwvqegjfh3fc1469219059890emailandroidcom_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Release signed.

Paul


Sent from Samsung Mobile


-------- Original message --------
From: Stephen Oberholtzer
Date:22/07/2016 16:24 (GMT+00:00)
To: Paul Durrant
Cc: win-pv-devel@lists.xenproject.org
Subject: Re: [win-pv-devel] Signed 8.1.0 drivers


On Fri, Jul 22, 2016 at 11:12 AM, Paul Durrant <Paul.Durrant@citrix.com<mai=
lto:Paul.Durrant@citrix.com>> wrote:

  Good news! I have tagged the 8.1.0 release driver source in each of the r=
epositories, built it and signed it. I don't yet have an official place to =
put the signed builds so for the moment you can get them from

Are these test-signed or release-signed?

--_000_3cxe82iwd0eciwvqegjfh3fc1469219059890emailandroidcom_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta content=3D"text/html; charset=3Dutf-8">
</head>
<body>
<div>Release signed.</div>
<div><br>
</div>
<div>Paul</div>
<div><br>
</div>
<div><br>
</div>
<div>
<div style=3D"font-size:9px; color:#575757">Sent from Samsung Mobile</div>
</div>
<br>
<br>
<div>-------- Original message --------</div>
<div>From: Stephen Oberholtzer </div>
<div>Date:22/07/2016 16:24 (GMT&#43;00:00) </div>
<div>To: Paul Durrant </div>
<div>Cc: win-pv-devel@lists.xenproject.org </div>
<div>Subject: Re: [win-pv-devel] Signed 8.1.0 drivers </div>
<div><br>
</div>
<div>
<div dir=3D"ltr">
<div class=3D"gmail_extra"><br>
<div class=3D"gmail_quote">On Fri, Jul 22, 2016 at 11:12 AM, Paul Durrant <=
span dir=3D"ltr">
&lt;<a href=3D"mailto:Paul.Durrant@citrix.com" target=3D"_blank">Paul.Durra=
nt@citrix.com</a>&gt;</span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex; border-left:1=
px #ccc solid; padding-left:1ex">
<br>
&nbsp; Good news! I have tagged the 8.1.0 release driver source in each of =
the repositories, built it and signed it. I don't yet have an official plac=
e to put the signed builds so for the moment you can get them from<br>
</blockquote>
</div>
<br>
</div>
<div class=3D"gmail_extra">Are these test-signed or release-signed?<br>
</div>
</div>
</div>
</body>
</html>

--_000_3cxe82iwd0eciwvqegjfh3fc1469219059890emailandroidcom_--


--===============4466498900481028468==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============4466498900481028468==--


From win-pv-devel-bounces@lists.xenproject.org Fri Jul 22 20:24:37 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 22 Jul 2016 20:24:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bQgzr-0006Et-07; Fri, 22 Jul 2016 20:24:35 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=004762f41=Paul.Durrant@citrix.com>)
 id 1bQgzp-0006En-KQ
 for win-pv-devel@lists.xenproject.org; Fri, 22 Jul 2016 20:24:33 +0000
Received: from [193.109.254.147] by server-7.bemta-14.messagelabs.com id
 91/9E-06589-00182975; Fri, 22 Jul 2016 20:24:32 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprCKsWRWlGSWpSXmKPExsWyU9JRQvd/w6R
 wg/Zl5hZ/Fic6MHoc/nCFJYAxijUzLym/IoE148K6D+wFp4Uqdu/az97AuEegi5GTQ0IgSOLk
 2W0sIDabgI7E0qPzmUBsEQEtibfTr4LZzALeEldPHmQEsYUFDCRef7rK1sXIAVRjKHFvURpEu
 ZVE16FWsBIWAVWJ/dfPs4LYvAJuEhf2tLN3MXJxCAn0MEo0bvzKDJLgFAiU6F70F6yBUUBW4k
 vjamaIXeISTV9WskLcJiCxZM95ZghbVOLl439QcQOJrUv3sUDUZ0u0dMxng1gmKHFy5hOwuJC
 AisSWxwegerklVn7+wzKBUWQWkhWzkLTPQtIOEdeRWLD7ExuErS2xbOFrZhj7zIHHTMjiCxjZ
 VzFqFKcWlaUW6Roa6iUVZaZnlOQmZuYAeSZ6uanFxYnpqTmJScV6yfm5mxiBscUABDsYz6xwP
 sQoycGkJMr7PnhSuBBfUn5KZUZicUZ8UWlOavEhRhkODiUJXn5grAoJFqWmp1akZeYAoxwmLc
 HBoyTC61cPlOYtLkjMLc5Mh0idYlSUEue9D5IQAElklObBtcESyyVGWSlhXkagQ4R4ClKLcjN
 LUOVfMYpzMCoJ87qAbOfJzCuBm/4KaDET0OI5Av0gi0sSEVJSDYyqPHNjpOObbk6UX1/LrtNS
 HrPC81Zi5T5psXfSnd7bv3IKz5F+HzVlkcTSKcsF71sKh7Q8kel/WcSs2LZu4tVDG59XKPCW6
 E/2aVsaWjntNIv1Db/mz/sjD1Zp/i67xXnuxdW7Dy6+Wy0S9zVz/bXY1Sf3G2TtCX7q1XIsdf
 IutYqECi2F9VZKLMUZiYZazEXFiQAq+JeWJwMAAA==
X-Env-Sender: prvs=004762f41=Paul.Durrant@citrix.com
X-Msg-Ref: server-7.tower-27.messagelabs.com!1469219071!50782221!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.1 required=7.0 tests=HTML_50_60,HTML_MESSAGE,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28963 invoked from network); 22 Jul 2016 20:24:31 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-7.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 22 Jul 2016 20:24:31 -0000
X-IronPort-AV: E=Sophos;i="5.28,405,1464652800"; d="scan'208,217";a="26981451"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Stephen Oberholtzer <stevie@qrpff.net>
Thread-Topic: [win-pv-devel] Signed 8.1.0 drivers
Thread-Index: AdHkKv6ycLsSp0RNRIWfEjeYPAAr4///4p0AgAB1dDE=
Date: Fri, 22 Jul 2016 20:24:20 +0000
Message-ID: <3cxe82iwd0eciwvqegjfh3fc.1469219059890@email.android.com>
References: <f92517584f1142d9b4bfee538df7d3df@AMSPEX02CL03.citrite.net>,
 <CAD_xR9dpnBF2coq7sg0-2zoTiv6L_GR0EZC8N0nih05JnjiYLg@mail.gmail.com>
In-Reply-To: <CAD_xR9dpnBF2coq7sg0-2zoTiv6L_GR0EZC8N0nih05JnjiYLg@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] Signed 8.1.0 drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============4466498900481028468=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============4466498900481028468==
Content-Language: en-GB
Content-Type: multipart/alternative;
	boundary="_000_3cxe82iwd0eciwvqegjfh3fc1469219059890emailandroidcom_"

--_000_3cxe82iwd0eciwvqegjfh3fc1469219059890emailandroidcom_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Release signed.

Paul


Sent from Samsung Mobile


-------- Original message --------
From: Stephen Oberholtzer
Date:22/07/2016 16:24 (GMT+00:00)
To: Paul Durrant
Cc: win-pv-devel@lists.xenproject.org
Subject: Re: [win-pv-devel] Signed 8.1.0 drivers


On Fri, Jul 22, 2016 at 11:12 AM, Paul Durrant <Paul.Durrant@citrix.com<mai=
lto:Paul.Durrant@citrix.com>> wrote:

  Good news! I have tagged the 8.1.0 release driver source in each of the r=
epositories, built it and signed it. I don't yet have an official place to =
put the signed builds so for the moment you can get them from

Are these test-signed or release-signed?

--_000_3cxe82iwd0eciwvqegjfh3fc1469219059890emailandroidcom_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta content=3D"text/html; charset=3Dutf-8">
</head>
<body>
<div>Release signed.</div>
<div><br>
</div>
<div>Paul</div>
<div><br>
</div>
<div><br>
</div>
<div>
<div style=3D"font-size:9px; color:#575757">Sent from Samsung Mobile</div>
</div>
<br>
<br>
<div>-------- Original message --------</div>
<div>From: Stephen Oberholtzer </div>
<div>Date:22/07/2016 16:24 (GMT&#43;00:00) </div>
<div>To: Paul Durrant </div>
<div>Cc: win-pv-devel@lists.xenproject.org </div>
<div>Subject: Re: [win-pv-devel] Signed 8.1.0 drivers </div>
<div><br>
</div>
<div>
<div dir=3D"ltr">
<div class=3D"gmail_extra"><br>
<div class=3D"gmail_quote">On Fri, Jul 22, 2016 at 11:12 AM, Paul Durrant <=
span dir=3D"ltr">
&lt;<a href=3D"mailto:Paul.Durrant@citrix.com" target=3D"_blank">Paul.Durra=
nt@citrix.com</a>&gt;</span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex; border-left:1=
px #ccc solid; padding-left:1ex">
<br>
&nbsp; Good news! I have tagged the 8.1.0 release driver source in each of =
the repositories, built it and signed it. I don't yet have an official plac=
e to put the signed builds so for the moment you can get them from<br>
</blockquote>
</div>
<br>
</div>
<div class=3D"gmail_extra">Are these test-signed or release-signed?<br>
</div>
</div>
</div>
</body>
</html>

--_000_3cxe82iwd0eciwvqegjfh3fc1469219059890emailandroidcom_--


--===============4466498900481028468==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============4466498900481028468==--


From win-pv-devel-bounces@lists.xenproject.org Sat Jul 23 19:59:58 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 23 Jul 2016 19:59:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bR35X-00051Y-JB; Sat, 23 Jul 2016 19:59:55 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <info@kotan.hu>) id 1bR35V-00051S-IH
 for win-pv-devel@lists.xenproject.org; Sat, 23 Jul 2016 19:59:54 +0000
Received: from [193.109.254.147] by server-13.bemta-14.messagelabs.com id
 0F/A1-01538-8BCC3975; Sat, 23 Jul 2016 19:59:52 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrIIsWRWlGSWpSXmKPExsWyM8BQV3fHmcn
 hBle6+C3+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxqLzO9gL9rFXNBxbw9bAOIOti5GLg0XgE5PE
 4c1LgBxODmEBA4nXn66C2SICqhLXlh8Ds4UE3CWW9/1hAbHZBJQk1t6bywxi8wpYS+zd2A9Ww
 wJU37FmKzuILSogL/Go4ycjRI2gxMmZT8B6OQU8JOadng9WzyxgJjFv80NmCFteonnrbDBbQk
 Bb4u6tKYwQtqZEy8JFbBC2lsSltstQcUGJnc8vsE1gFJiFZMUsJGNnIRm7gJF5FaNGcWpRWWq
 RrpGRXlJRZnpGSW5iZo6uoaGJXm5qcXFiempOYlKxXnJ+7iZGYHDWMzAw7mC8fcnvEKMkB5OS
 KO+NE5PChfiS8lMqMxKLM+KLSnNSiw8xynBwKEnwBp2eHC4kWJSanlqRlpkDjBOYtAQHj5IIb
 zlImre4IDG3ODMdInWKUZdjwY/ba5mEWPLy81KlxHkDQYoEQIoySvPgRsBi9hKjrJQwLyMDA4
 MQT0FqUW5mCar8K0ZxDkYlYd5gkCk8mXklcJteAR3BBHTEAh6wI0oSEVJSDYy8z58XHy8/t/L
 AcllRWY3zZ/58Or0hzCtg7iPGOb2zbs+UXzFpxZIJN831k+bN3+4+e34G5zGxw4Y6ysx6Ut51
 TWeb3pQde1X6tFDF8nvhwnuqWzt84p8b1t/fVzVv0hMG649nF+9fVnRX8WHSq/YFyoGnVh3LO
 fpUXnNJzRquzad+8Dekbrj/VYmlOCPRUIu5qDgRAP1dxLPUAgAA
X-Env-Sender: info@kotan.hu
X-Msg-Ref: server-15.tower-27.messagelabs.com!1469303991!350974!1
X-Originating-IP: [185.80.49.45]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 65502 invoked from network); 23 Jul 2016 19:59:52 -0000
Received: from mx1.faircomp.hu (HELO mx1.faircomp.hu) (185.80.49.45)
 by server-15.tower-27.messagelabs.com with DHE-RSA-AES256-GCM-SHA384 encrypted
 SMTP; 23 Jul 2016 19:59:52 -0000
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kotan.hu; s=mail;
 t=1469303990; bh=CYRLMkfxmalYCyX0oKVGJU5MAX/DGkL9H8frct6t74U=;
 h=Subject:To:References:From:Date:In-Reply-To:From;
 b=KdUJRerNH6J3CpozMpH/E0/oepBRw9v+2ak+2LUJembsH0IFwteAn7eiqyEQ3RRDi
 kVvX8DZ5NCgT2ncP9UD/wb4z2BvQApbXOY96jZVS0jM+rdbmfz0NPAC/ObvSdEUUPh
 ILkLxCRdcq5yyWz+O6XSqZppEVFdajdiVzV6JUoA=
To: win-pv-devel@lists.xenproject.org
References: <f92517584f1142d9b4bfee538df7d3df@AMSPEX02CL03.citrite.net>
From: Kotan Attila <info@kotan.hu>
Message-ID: <b901d5ca-d944-7459-9449-b218c24507da@kotan.hu>
Date: Sat, 23 Jul 2016 21:59:50 +0200
User-Agent: Mozilla-Thunderbird
MIME-Version: 1.0
In-Reply-To: <f92517584f1142d9b4bfee538df7d3df@AMSPEX02CL03.citrite.net>
X-Faircomp-MailScanner-ID: C6DD15FE66.A7B78
X-Faircomp-MailScanner: Found to be clean
X-Faircomp-MailScanner-From: info@kotan.hu
X-Spam-Status: No
Subject: Re: [win-pv-devel] Signed 8.1.0 drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

QWxsLAoKSSBpbnN0YWxsZWQgdG8gdGhlIFdpbmRvd3MgOC4xIDY0Yml0IChodW5nYXJpYW4gbGFu
Z3VhZ2UsIGZyZXNoIGluc3RhbGwpIAphbmQgaSBjb25maXJtZWQgd29ya2luZyBwZXJmZWN0IQpH
b29kIGpvYiEgVGhhbmsgeW91IHZlcnkgbXVjaCEKCkF0dGlsYQoKMjAxNi4gMDcuIDIyLiAxNzox
MiBrZWx0ZXrDqXNzZWwsIFBhdWwgRHVycmFudCDDrXJ0YToKPiBBbGwsCj4KPiAgICBHb29kIG5l
d3MhIEkgaGF2ZSB0YWdnZWQgdGhlIDguMS4wIHJlbGVhc2UgZHJpdmVyIHNvdXJjZSBpbiBlYWNo
IG9mIHRoZSByZXBvc2l0b3JpZXMsIGJ1aWx0IGl0IGFuZCBzaWduZWQgaXQuIEkgZG9uJ3QgeWV0
IGhhdmUgYW4gb2ZmaWNpYWwgcGxhY2UgdG8gcHV0IHRoZSBzaWduZWQgYnVpbGRzIHNvIGZvciB0
aGUgbW9tZW50IHlvdSBjYW4gZ2V0IHRoZW0gZnJvbQo+Cj4gaHR0cHM6Ly94ZW5iaXRzLnhlbi5v
cmcvcGVvcGxlL3BhdWxkdS9wdmRyaXZlcnMvd2luL3JlbGVhc2UvOC4xLjAKPgo+ICAgIEkgaGF2
ZSB0ZXN0ZWQgaW5zdGFsbGF0aW9uIG9uIFdpbmRvd3MgMTAgKDMyLWJpdCkgYW5kIHRoZSBzaWdu
YXR1cmVzIGFwcGVhciB0byBiZSBnb29kLgo+Cj4gICAgSSB3aWxsIGxldCB0aGUgbGlzdCBrbm93
IHdoZW4gdGhlIHRhcmJhbGxzIG1vdmUgdG8gYSBtb3JlIHBlcm1hbmVudCBwbGFjZSBhbmQgSSB3
aWxsLCBhdCB0aGF0IHBvaW50LCBsaW5rIHRoZW0gZnJvbSB0aGUgcHJvamVjdCBmcm9udCBwYWdl
Lgo+Cj4gICAgQ2hlZXJzLAo+Cj4gICAgICBQYXVsCj4KPiBfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwo+IHdpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKPiB3
aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKPiBodHRwczovL2xpc3RzLnhlbnByb2pl
Y3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWwKCgpfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGlu
ZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhl
bnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Sat Jul 23 19:59:58 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 23 Jul 2016 19:59:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bR35X-00051Y-JB; Sat, 23 Jul 2016 19:59:55 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <info@kotan.hu>) id 1bR35V-00051S-IH
 for win-pv-devel@lists.xenproject.org; Sat, 23 Jul 2016 19:59:54 +0000
Received: from [193.109.254.147] by server-13.bemta-14.messagelabs.com id
 0F/A1-01538-8BCC3975; Sat, 23 Jul 2016 19:59:52 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrIIsWRWlGSWpSXmKPExsWyM8BQV3fHmcn
 hBle6+C3+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxqLzO9gL9rFXNBxbw9bAOIOti5GLg0XgE5PE
 4c1LgBxODmEBA4nXn66C2SICqhLXlh8Ds4UE3CWW9/1hAbHZBJQk1t6bywxi8wpYS+zd2A9Ww
 wJU37FmKzuILSogL/Go4ycjRI2gxMmZT8B6OQU8JOadng9WzyxgJjFv80NmCFteonnrbDBbQk
 Bb4u6tKYwQtqZEy8JFbBC2lsSltstQcUGJnc8vsE1gFJiFZMUsJGNnIRm7gJF5FaNGcWpRWWq
 RrpGRXlJRZnpGSW5iZo6uoaGJXm5qcXFiempOYlKxXnJ+7iZGYHDWMzAw7mC8fcnvEKMkB5OS
 KO+NE5PChfiS8lMqMxKLM+KLSnNSiw8xynBwKEnwBp2eHC4kWJSanlqRlpkDjBOYtAQHj5IIb
 zlImre4IDG3ODMdInWKUZdjwY/ba5mEWPLy81KlxHkDQYoEQIoySvPgRsBi9hKjrJQwLyMDA4
 MQT0FqUW5mCar8K0ZxDkYlYd5gkCk8mXklcJteAR3BBHTEAh6wI0oSEVJSDYy8z58XHy8/t/L
 AcllRWY3zZ/58Or0hzCtg7iPGOb2zbs+UXzFpxZIJN831k+bN3+4+e34G5zGxw4Y6ysx6Ut51
 TWeb3pQde1X6tFDF8nvhwnuqWzt84p8b1t/fVzVv0hMG649nF+9fVnRX8WHSq/YFyoGnVh3LO
 fpUXnNJzRquzad+8Dekbrj/VYmlOCPRUIu5qDgRAP1dxLPUAgAA
X-Env-Sender: info@kotan.hu
X-Msg-Ref: server-15.tower-27.messagelabs.com!1469303991!350974!1
X-Originating-IP: [185.80.49.45]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 65502 invoked from network); 23 Jul 2016 19:59:52 -0000
Received: from mx1.faircomp.hu (HELO mx1.faircomp.hu) (185.80.49.45)
 by server-15.tower-27.messagelabs.com with DHE-RSA-AES256-GCM-SHA384 encrypted
 SMTP; 23 Jul 2016 19:59:52 -0000
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kotan.hu; s=mail;
 t=1469303990; bh=CYRLMkfxmalYCyX0oKVGJU5MAX/DGkL9H8frct6t74U=;
 h=Subject:To:References:From:Date:In-Reply-To:From;
 b=KdUJRerNH6J3CpozMpH/E0/oepBRw9v+2ak+2LUJembsH0IFwteAn7eiqyEQ3RRDi
 kVvX8DZ5NCgT2ncP9UD/wb4z2BvQApbXOY96jZVS0jM+rdbmfz0NPAC/ObvSdEUUPh
 ILkLxCRdcq5yyWz+O6XSqZppEVFdajdiVzV6JUoA=
To: win-pv-devel@lists.xenproject.org
References: <f92517584f1142d9b4bfee538df7d3df@AMSPEX02CL03.citrite.net>
From: Kotan Attila <info@kotan.hu>
Message-ID: <b901d5ca-d944-7459-9449-b218c24507da@kotan.hu>
Date: Sat, 23 Jul 2016 21:59:50 +0200
User-Agent: Mozilla-Thunderbird
MIME-Version: 1.0
In-Reply-To: <f92517584f1142d9b4bfee538df7d3df@AMSPEX02CL03.citrite.net>
X-Faircomp-MailScanner-ID: C6DD15FE66.A7B78
X-Faircomp-MailScanner: Found to be clean
X-Faircomp-MailScanner-From: info@kotan.hu
X-Spam-Status: No
Subject: Re: [win-pv-devel] Signed 8.1.0 drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

QWxsLAoKSSBpbnN0YWxsZWQgdG8gdGhlIFdpbmRvd3MgOC4xIDY0Yml0IChodW5nYXJpYW4gbGFu
Z3VhZ2UsIGZyZXNoIGluc3RhbGwpIAphbmQgaSBjb25maXJtZWQgd29ya2luZyBwZXJmZWN0IQpH
b29kIGpvYiEgVGhhbmsgeW91IHZlcnkgbXVjaCEKCkF0dGlsYQoKMjAxNi4gMDcuIDIyLiAxNzox
MiBrZWx0ZXrDqXNzZWwsIFBhdWwgRHVycmFudCDDrXJ0YToKPiBBbGwsCj4KPiAgICBHb29kIG5l
d3MhIEkgaGF2ZSB0YWdnZWQgdGhlIDguMS4wIHJlbGVhc2UgZHJpdmVyIHNvdXJjZSBpbiBlYWNo
IG9mIHRoZSByZXBvc2l0b3JpZXMsIGJ1aWx0IGl0IGFuZCBzaWduZWQgaXQuIEkgZG9uJ3QgeWV0
IGhhdmUgYW4gb2ZmaWNpYWwgcGxhY2UgdG8gcHV0IHRoZSBzaWduZWQgYnVpbGRzIHNvIGZvciB0
aGUgbW9tZW50IHlvdSBjYW4gZ2V0IHRoZW0gZnJvbQo+Cj4gaHR0cHM6Ly94ZW5iaXRzLnhlbi5v
cmcvcGVvcGxlL3BhdWxkdS9wdmRyaXZlcnMvd2luL3JlbGVhc2UvOC4xLjAKPgo+ICAgIEkgaGF2
ZSB0ZXN0ZWQgaW5zdGFsbGF0aW9uIG9uIFdpbmRvd3MgMTAgKDMyLWJpdCkgYW5kIHRoZSBzaWdu
YXR1cmVzIGFwcGVhciB0byBiZSBnb29kLgo+Cj4gICAgSSB3aWxsIGxldCB0aGUgbGlzdCBrbm93
IHdoZW4gdGhlIHRhcmJhbGxzIG1vdmUgdG8gYSBtb3JlIHBlcm1hbmVudCBwbGFjZSBhbmQgSSB3
aWxsLCBhdCB0aGF0IHBvaW50LCBsaW5rIHRoZW0gZnJvbSB0aGUgcHJvamVjdCBmcm9udCBwYWdl
Lgo+Cj4gICAgQ2hlZXJzLAo+Cj4gICAgICBQYXVsCj4KPiBfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwo+IHdpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKPiB3
aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKPiBodHRwczovL2xpc3RzLnhlbnByb2pl
Y3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWwKCgpfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGlu
ZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhl
bnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Sun Jul 24 03:38:57 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 24 Jul 2016 03:38:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bRAFi-0005x2-2n; Sun, 24 Jul 2016 03:38:54 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <tknchris@gmail.com>) id 1bRAFg-0005ww-7C
 for win-pv-devel@lists.xenproject.org; Sun, 24 Jul 2016 03:38:52 +0000
Received: from [85.158.137.68] by server-12.bemta-3.messagelabs.com id
 91/8F-09160-B4834975; Sun, 24 Jul 2016 03:38:51 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrBIsWRWlGSWpSXmKPExsVyMfSWrq6nxZR
 wg237DC3+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxrO5f1kLevczVvTsvsDWwHhhBWMXIxeHkMAc
 Rok3r44zdzFycrAINLBKvJhpAZKQEJjDKvH5yDtWkISEQI7EtHPP2CHsYommmXPBGngFBCVOz
 nzCAmILCfhIHLr8gAnE5hTwkNh18jw7xIZeRomdz1cDFXFwsAkoSLyfJAexTFWi7cFeRog5AR
 LfV/5mBykRFnCX6O4yBAmLCGhJTNiyFWwks4C3xLk5k5ghbC+JyQevsU5gFJiF5IpZSFKzgCY
 xC6hLrJ8nBBHWlli28DUzhK0mcXvbVXZk8QWMbKsYNYpTi8pSi3QNLfWSijLTM0pyEzNzdA0N
 jPVyU4uLE9NTcxKTivWS83M3MQLDvJ6BgXEH4+/jfocYJTmYlER5b5yYFC7El5SfUpmRWJwRX
 1Sak1p8iFGGg0NJgrfNbEq4kGBRanpqRVpmDjDiYNISHDxKIrwVIGne4oLE3OLMdIjUKUZ7ji
 2/r61l4ngx+TqQ3LLgBpDcNvXeWiYhlrz8vFQpcd5OkDYBkLaM0jy4obAEcYlRVkqYl5GBgUG
 IpyC1KDezBFX+FaM4B6OSMO9+kCk8mXklcLtfAZ3FBHTWAp7JIGeVJCKkpBoYuWbMaNA/ecZq
 wYXjel691fcX7LufdH/hNM7tCxP2n9VWzpz6qOLALem8YE2/I9bz7s5i010VfCLG+rOLANvvy
 J2HVpp9400IdtwzyTzWdOeTzrULz9RvqlOzE3tmPP2pioXbtsPFIt8Dd3v0K4l8/2xzVrUwPi
 Ej5imLNFvI11M7i7RehznqKrEUZyQaajEXFScCALHVauALAwAA
X-Env-Sender: tknchris@gmail.com
X-Msg-Ref: server-3.tower-31.messagelabs.com!1469331528!52080490!1
X-Originating-IP: [209.85.218.45]
X-SpamReason: No, hits=0.3 required=7.0 tests=HTML_MESSAGE,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 53186 invoked from network); 24 Jul 2016 03:38:49 -0000
Received: from mail-oi0-f45.google.com (HELO mail-oi0-f45.google.com)
 (209.85.218.45)
 by server-3.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 24 Jul 2016 03:38:49 -0000
Received: by mail-oi0-f45.google.com with SMTP id l65so212107621oib.1
 for <win-pv-devel@lists.xenproject.org>; Sat, 23 Jul 2016 20:38:49 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=mime-version:in-reply-to:references:from:date:message-id:subject:to
 :cc; bh=WDtntUdB58GxjueWjIcaWuwnI5RI+zI45VGkIs0MSW4=;
 b=xenPNxsuCAsKrxpLrnV8uHW7JHAzlwP0IesvCF1SetA3mwKArZICUwfoKyW39ErLP/
 G9C53Lptvhwq4zEmqr3tAQXrISRojodhQbtcN8vQ3H/2Pyc+TeC/I1faoXwP6v2NMa4g
 sr6Q4dklW1zpV/d7PEPwCHmYVV/AdfGUWTFNMeh+TPENgbzZwd3Go5gFK3qf2SakLd/u
 R/DA5u5z2LhFzmm2Uf0UnNX/rZ2L5KP+e20kCmxvfwcF7kKY1vbSnfatHbReY9nA6i3Z
 dAfzgSSjnmx6iKuZiZr+b/aQtpH5p8OxTrDy9IAAdq/Mj4kHI05M0+yTgxVAj1G0+AiZ
 EWcg==
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:from:date
 :message-id:subject:to:cc;
 bh=WDtntUdB58GxjueWjIcaWuwnI5RI+zI45VGkIs0MSW4=;
 b=A1NTZK8O/ytMBNnUXSiIQxu8BVRQh93LsR+FEdmEYlD+c/DTuO89/hqetPf6glKx9R
 d6fJJwwqj1/GYrpVO9nsgvM/L+UlbWHlkPppEeFHW+U+MCBfsafWf9Ay1N819jtYCW6i
 8aaZ4KWzB8b6UA6GvxVhd5YLEcWmb3jMTBfdEREfjOVGG1DUp/83KSUQbt5VWecOZLG7
 uU5/hXgV45HRkusgTV+WDf7qFZYPCsIs7E9xMKgJFwczBH4tVuxbuoKoSb0CbhPZM1m9
 0fWfLaTg1ya5M+XXhulx/6zxvTsQ+fV02p3kmjniSaF7dLq2d3tiXB6It24vO3T5Y0s/
 R3QA==
X-Gm-Message-State: AEkoous/8anjhzGFayoy+V8pzFcQtrjm70PU1m4y58/Q5kAsHcecbmWlgkwvZISlZvaAfXPlanJAu2tP9i7tog==
X-Received: by 10.157.27.225 with SMTP id v30mr6692217otv.107.1469331527936;
 Sat, 23 Jul 2016 20:38:47 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.202.105.195 with HTTP; Sat, 23 Jul 2016 20:38:47 -0700 (PDT)
In-Reply-To: <16f8e57a658c4d20a7d7cc06fb6c19af@AMSPEX02CL03.citrite.net>
References: <CAKnNFz_GLVZ2G6L_EBMq1AY5JpTUqVaNschscEtJ5q+Hzz1-0w@mail.gmail.com>
 <16f8e57a658c4d20a7d7cc06fb6c19af@AMSPEX02CL03.citrite.net>
From: chris <tknchris@gmail.com>
Date: Sat, 23 Jul 2016 23:38:47 -0400
Message-ID: <CAKnNFz9ueJMN4Zun_dvQPZP0jqq+pe3vXhufB6bFMfSy=VBkaA@mail.gmail.com>
To: Paul Durrant <Paul.Durrant@citrix.com>
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] Win-pv driver install success fails to boot
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============2393688086323990982=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============2393688086323990982==
Content-Type: multipart/alternative; boundary=001a11494faec7b00b05385967b8

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

OK. I changed the config back and i still cant boot. I did have testsigning
enabled and rebooted twice before attempting to install the drivers.

Any idea why windows cant boot? I followed the instructions to the letter
so I am trying to understand why its not working.

Also, even though I could reinstall I'd like to work through getting the
drivers disabled / uninstalled and get things booting again so I am
familiar with this process. I don't really think its wise to just reinstall
then down the line deploy this into production and have something like this
happen and not have any solution other than reinstalling.

I have tried:
- tried booting in safe mode
- tried startup repair
- tried booting into a command prompt and tried renaming all the xen*.sys
files in c:\windows\system32\drivers\
- tried booting into command prompt and doing bootrec /fixboot, bootrec
/fixmbr, bootrec /rebuildbcd


Whats the process to reverse the installation and get windows to boot?

Thanks!
chris

On Fri, Jul 22, 2016 at 4:45 AM, Paul Durrant <Paul.Durrant@citrix.com>
wrote:

> Hi Chris,
>
>
>
>   Don=E2=80=99t mess with the disk and network lines in your config. You =
still
> need emulated disk to boot Windows as the firmware (SeaBIOS or ROMBIOS)
> does not have PV frontends. Once Windows starts and the PV drivers load
> they will instruct QEMU to unplug the emulated devices so that the PV
> devices can take their place.
>
>
>
>   As for recovering, it=E2=80=99s probably going to be tricky. Since you =
were
> doing a fresh install it=E2=80=99s probably quicker to start again. The o=
ther thing
> to do **before** you install PV drivers (and I suspect this is the root
> of your problem) is to enable test signed drivers in Windows. Windows 10
> (even 32-bit) will not load test signed drivers unless you have done:
>
>
>
> bcdedit /set testsigning on
>
>
>
>   Hope that helps,
>
>
>
>   Paul
>
>
>
> *From:* win-pv-devel [mailto:win-pv-devel-bounces@lists.xenproject.org] *=
On
> Behalf Of *chris
> *Sent:* 21 July 2016 14:31
> *To:* win-pv-devel@lists.xenproject.org
> *Subject:* [win-pv-devel] Win-pv driver install success fails to boot
>
>
>
> Hello,
>
>
>
> I am a previous gplpv user who recently came across this project and
> wanted to give a try to atleast help provide feedback and testing.
>
>
>
> I downloaded the latest drivers via the tar files on this page:
>
>
>
>
> http://www.xenproject.org/downloads/windows-pv-drivers/development-builds=
.html
>
>
>
> I extracted and ran dpinst as noted in the readme txt  for each driver an=
d
> saw that in device manager it created some new devices. NOTE this is a
> clean install and did not have gplpv or any other drivers previously
>
>
> I shutdown the domu, changed my disk and network lines to use the PV styl=
e:
>
>
>
> 'file:/mnt/vil1064/vil1064-ssd.img,xvda,w',
>
>
>
> vif =3D ['type=3Dnetfront, bridge=3Dxenbr0, mac=3D00:16:3D:37:A0:A3']
>
>
>
> and when i tried to start it up, it gets stuck at windows 10 loading
> screen with the logo and the spinning wheel underneath. i left it for
> several hours and it never got any further nor did it bsod'd or reboot ov=
er
> and over.
>
>
>
> i went  back and changed my config back to emulated interfaces and window=
s
> 10 does not start via the original config either
>
>
>
> did i miss some critical step(s)? any ideas why the OS wont boot? whats h=
e
> best to remove the drivers and try again?
>
>
>
> i am a fairly technical linux and windows user and willing to invest some
> time to anything that will help so please let me know if theres any more
> info or anything i can do to give you more data
>
>
>
> the dom0 is a up to date debian jessie, xl info gives:
>
> release                : 3.16.0-4-amd64
>
> version                : #1 SMP Debian 3.16.7-ckt11-1+deb8u5 (2015-10-09)
>
> machine                : x86_64
>
> nr_cpus                : 12
>
> max_cpu_id             : 15
>
> nr_nodes               : 2
>
> cores_per_socket       : 12
>
> threads_per_core       : 1
>
> cpu_mhz                : 2100
>
> hw_caps                :
> 178bf3ff:efd3fbff:00000000:00001300:00802001:00000000:000837ff:00000000
>
> virt_caps              : hvm
>
> total_memory           : 57342
>
> free_memory            : 16455
>
> sharing_freed_memory   : 0
>
> sharing_used_memory    : 0
>
> outstanding_claims     : 0
>
> free_cpus              : 0
>
> xen_major              : 4
>
> xen_minor              : 4
>
> xen_extra              : .1
>
> xen_version            : 4.4.1
>
> xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32
> hvm-3.0-x86_32p hvm-3.0-x86_64
>
> xen_scheduler          : credit
>
> xen_pagesize           : 4096
>
> platform_params        : virt_start=3D0xffff800000000000
>
> xen_changeset          :
>
> xen_commandline        : placeholder dom0_mem=3D1024M
>
> cc_compiler            : gcc (Debian 4.9.2-10) 4.9.2
>
> cc_compile_by          : ultrotter
>
> cc_compile_domain      : debian.org
>
> cc_compile_date        : Thu Jun 11 18:24:17 EEST 2015
>
> xend_config_format     : 4
>
>
>
> chris
>

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

<div dir=3D"ltr">OK. I changed the config back and i still cant boot. I did=
 have testsigning enabled and rebooted twice before attempting to install t=
he drivers.=C2=A0<br><br>Any idea why windows cant boot? I followed the ins=
tructions to the letter so I am trying to understand why its not working.<d=
iv><br></div><div>Also, even though I could reinstall I&#39;d like to work =
through getting the drivers disabled / uninstalled and get things booting a=
gain so I am familiar with this process. I don&#39;t really think its wise =
to just reinstall then down the line deploy this into production and have s=
omething like this happen and not have any solution other than reinstalling=
.</div><div><br></div><div>I have tried:</div><div>- tried booting in safe =
mode=C2=A0</div><div>- tried startup repair</div><div>- tried booting into =
a command prompt and tried renaming all the xen*.sys files in c:\windows\sy=
stem32\drivers\</div><div>- tried booting into command prompt and doing boo=
trec /fixboot, bootrec /fixmbr, bootrec /rebuildbcd</div><div><br></div><di=
v><br></div><div>Whats the process to reverse the installation and get wind=
ows to boot?</div><div><br></div><div>Thanks!</div><div>chris</div></div><d=
iv class=3D"gmail_extra"><br><div class=3D"gmail_quote">On Fri, Jul 22, 201=
6 at 4:45 AM, Paul Durrant <span dir=3D"ltr">&lt;<a href=3D"mailto:Paul.Dur=
rant@citrix.com" target=3D"_blank">Paul.Durrant@citrix.com</a>&gt;</span> w=
rote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;borde=
r-left:1px #ccc solid;padding-left:1ex">







<div lang=3D"EN-GB" link=3D"blue" vlink=3D"purple">
<div>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-=
serif&quot;;color:#1f497d">Hi Chris,<u></u><u></u></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-=
serif&quot;;color:#1f497d"><u></u>=C2=A0<u></u></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-=
serif&quot;;color:#1f497d"><span>=C2=A0
</span>Don=E2=80=99t mess with the disk and network lines in your <span>con=
fig</span>. You still need emulated disk to boot Windows as the firmware (<=
span>SeaBIOS</span> or ROMBIOS) does not have PV frontends. Once Windows st=
arts and the
 PV drivers load they will instruct QEMU to unplug the emulated devices so =
that the PV devices can take their place.<u></u><u></u></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-=
serif&quot;;color:#1f497d"><u></u>=C2=A0<u></u></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-=
serif&quot;;color:#1f497d"><span>=C2=A0
</span>As for recovering, it=E2=80=99s probably going to be tricky. Since y=
ou were doing a fresh install it=E2=80=99s probably quicker to start again.=
 The other thing to do *<b><span style=3D"font-weight:bold">before</span></=
b>* you install PV drivers (and I suspect this is
 the root of your problem) is to enable test signed drivers in Windows. Win=
dows 10 (even 32-bit) will not load test signed drivers unless you have don=
e:<u></u><u></u></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-=
serif&quot;;color:#1f497d"><u></u>=C2=A0<u></u></span></font></p>
<p class=3D"MsoNormal"><span><font size=3D"2" color=3D"#1f497d" face=3D"Cal=
ibri"><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot=
;sans-serif&quot;;color:#1f497d">bcdedit</span></font></span><font size=3D"=
2" color=3D"#1f497d" face=3D"Calibri"><span style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d">
 /set <span>testsigning</span> on<u></u><u></u></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-=
serif&quot;;color:#1f497d"><u></u>=C2=A0<u></u></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-=
serif&quot;;color:#1f497d"><span>=C2=A0
</span>Hope that helps,<u></u><u></u></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-=
serif&quot;;color:#1f497d"><u></u>=C2=A0<u></u></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-=
serif&quot;;color:#1f497d"><span>=C2=A0
</span>Paul<u></u><u></u></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-=
serif&quot;;color:#1f497d"><u></u>=C2=A0<u></u></span></font></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><font size=3D"2" face=3D"Tahoma"><span lang=3D"EN=
-US" style=3D"font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-se=
rif&quot;;font-weight:bold">From:</span></font></b><font size=3D"2" face=3D=
"Tahoma"><span lang=3D"EN-US" style=3D"font-size:10.0pt;font-family:&quot;T=
ahoma&quot;,&quot;sans-serif&quot;">
 win-pv-devel [mailto:<a href=3D"mailto:win-pv-devel-bounces@lists.xenproje=
ct.org" target=3D"_blank">win-pv-devel-bounces@lists.xenproject.org</a>] <b=
><span style=3D"font-weight:bold">On Behalf Of
</span></b>chris<br>
<b><span style=3D"font-weight:bold">Sent:</span></b> 21 July 2016 14:31<br>
<b><span style=3D"font-weight:bold">To:</span></b> <a href=3D"mailto:win-pv=
-devel@lists.xenproject.org" target=3D"_blank">win-pv-devel@lists.xenprojec=
t.org</a><br>
<b><span style=3D"font-weight:bold">Subject:</span></b> [win-pv-devel] Win-=
pv driver install success fails to boot<u></u><u></u></span></font></p>
</div>
</div><div><div class=3D"h5">
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt"><u></u>=C2=A0<u></u></span></font></p>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">Hello,<u></u><u></u></span></font></p>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt"><u></u>=C2=A0<u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">I am a previous gplpv user who recently came across =
this project and wanted to give a try to atleast help provide feedback and =
testing.<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt"><u></u>=C2=A0<u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">I downloaded the latest drivers via the tar files on=
 this page:<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt"><u></u>=C2=A0<u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt"><a href=3D"http://www.xenproject.org/downloads/windo=
ws-pv-drivers/development-builds.html" target=3D"_blank">http://www.xenproj=
ect.org/downloads/windows-pv-drivers/development-builds.html</a><u></u><u><=
/u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt"><u></u>=C2=A0<u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">I extracted and ran dpinst as noted in the readme tx=
t =C2=A0for each driver and saw that in device manager it created some new =
devices. NOTE this is a clean install and did
 not have gplpv or any other drivers previously=C2=A0<u></u><u></u></span><=
/font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt"><br>
I shutdown the domu, changed my disk and network lines to use the PV style:=
<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt"><u></u>=C2=A0<u></u></span></font></p>
</div>
<div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">&#39;file:/mnt/vil1064/vil1064-ssd.img,xvda,w&#39;,<=
u></u><u></u></span></font></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt"><u></u>=C2=A0<u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">vif =3D [&#39;type=3Dnetfront, bridge=3Dxenbr0, mac=
=3D00:16:3D:37:A0:A3&#39;]<u></u><u></u></span></font></p>
</div>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt"><u></u>=C2=A0<u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">and when i tried to start it up, it gets stuck at wi=
ndows 10 loading screen with the logo and the spinning wheel underneath. i =
left it for several hours and it never got
 any further nor did it bsod&#39;d or reboot over and over.<u></u><u></u></=
span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt"><u></u>=C2=A0<u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">i went =C2=A0back and changed my config back to emul=
ated interfaces and windows 10 does not start via the original config eithe=
r<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt"><u></u>=C2=A0<u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">did i miss some critical step(s)? any ideas why the =
OS wont boot? whats he best to remove the drivers and try again?<u></u><u><=
/u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt"><u></u>=C2=A0<u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">i am a fairly technical linux and windows user and w=
illing to invest some time to anything that will help so please let me know=
 if theres any more info or anything i can
 do to give you more data<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt"><u></u>=C2=A0<u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">the dom0 is a up to date debian jessie, xl info give=
s:<u></u><u></u></span></font></p>
</div>
<div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">release =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0: 3.16.0-4-amd64<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">version =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0: #1 SMP Debian 3.16.7-ckt11-1+deb8u5 (2015-10-09)<u></u><u></=
u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">machine =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0: x86_64<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">nr_cpus =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0: 12<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">max_cpu_id =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 : 15<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">nr_nodes =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 : 2<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">cores_per_socket =C2=A0 =C2=A0 =C2=A0 : 12<u></u><u>=
</u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">threads_per_core =C2=A0 =C2=A0 =C2=A0 : 1<u></u><u><=
/u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">cpu_mhz =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0: 2100<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">hw_caps =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0: 178bf3ff:efd3fbff:00000000:00001300:00802001:00000000:000837=
ff:00000000<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">virt_caps =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0: hvm<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">total_memory =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 : 57=
342<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">free_memory =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0: 16455<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">sharing_freed_memory =C2=A0 : 0<u></u><u></u></span>=
</font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">sharing_used_memory =C2=A0 =C2=A0: 0<u></u><u></u></=
span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">outstanding_claims =C2=A0 =C2=A0 : 0<u></u><u></u></=
span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">free_cpus =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0: 0<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">xen_major =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0: 4<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">xen_minor =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0: 4<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">xen_extra =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0: .1<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">xen_version =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0: 4.4.1<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">xen_caps =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-=
3.0-x86_64=C2=A0<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">xen_scheduler =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0: cr=
edit<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">xen_pagesize =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 : 40=
96<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">platform_params =C2=A0 =C2=A0 =C2=A0 =C2=A0: virt_st=
art=3D0xffff800000000000<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">xen_changeset =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0:=C2=
=A0<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">xen_commandline =C2=A0 =C2=A0 =C2=A0 =C2=A0: placeho=
lder dom0_mem=3D1024M<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">cc_compiler =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0: gcc (Debian 4.9.2-10) 4.9.2<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">cc_compile_by =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0: ul=
trotter<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">cc_compile_domain =C2=A0 =C2=A0 =C2=A0:
<a href=3D"http://debian.org" target=3D"_blank">debian.org</a><u></u><u></u=
></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">cc_compile_date =C2=A0 =C2=A0 =C2=A0 =C2=A0: Thu Jun=
 11 18:24:17 EEST 2015<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">xend_config_format =C2=A0 =C2=A0 : 4<u></u><u></u></=
span></font></p>
</div>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt"><u></u>=C2=A0<u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">chris<u></u><u></u></span></font></p>
</div>
</div>
</div></div></div>
</div>
</div>

</blockquote></div><br></div>

--001a11494faec7b00b05385967b8--


--===============2393688086323990982==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============2393688086323990982==--


From win-pv-devel-bounces@lists.xenproject.org Sun Jul 24 03:38:57 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 24 Jul 2016 03:38:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bRAFi-0005x2-2n; Sun, 24 Jul 2016 03:38:54 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <tknchris@gmail.com>) id 1bRAFg-0005ww-7C
 for win-pv-devel@lists.xenproject.org; Sun, 24 Jul 2016 03:38:52 +0000
Received: from [85.158.137.68] by server-12.bemta-3.messagelabs.com id
 91/8F-09160-B4834975; Sun, 24 Jul 2016 03:38:51 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrBIsWRWlGSWpSXmKPExsVyMfSWrq6nxZR
 wg237DC3+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxrO5f1kLevczVvTsvsDWwHhhBWMXIxeHkMAc
 Rok3r44zdzFycrAINLBKvJhpAZKQEJjDKvH5yDtWkISEQI7EtHPP2CHsYommmXPBGngFBCVOz
 nzCAmILCfhIHLr8gAnE5hTwkNh18jw7xIZeRomdz1cDFXFwsAkoSLyfJAexTFWi7cFeRog5AR
 LfV/5mBykRFnCX6O4yBAmLCGhJTNiyFWwks4C3xLk5k5ghbC+JyQevsU5gFJiF5IpZSFKzgCY
 xC6hLrJ8nBBHWlli28DUzhK0mcXvbVXZk8QWMbKsYNYpTi8pSi3QNLfWSijLTM0pyEzNzdA0N
 jPVyU4uLE9NTcxKTivWS83M3MQLDvJ6BgXEH4+/jfocYJTmYlER5b5yYFC7El5SfUpmRWJwRX
 1Sak1p8iFGGg0NJgrfNbEq4kGBRanpqRVpmDjDiYNISHDxKIrwVIGne4oLE3OLMdIjUKUZ7ji
 2/r61l4ngx+TqQ3LLgBpDcNvXeWiYhlrz8vFQpcd5OkDYBkLaM0jy4obAEcYlRVkqYl5GBgUG
 IpyC1KDezBFX+FaM4B6OSMO9+kCk8mXklcLtfAZ3FBHTWAp7JIGeVJCKkpBoYuWbMaNA/ecZq
 wYXjel691fcX7LufdH/hNM7tCxP2n9VWzpz6qOLALem8YE2/I9bz7s5i010VfCLG+rOLANvvy
 J2HVpp9400IdtwzyTzWdOeTzrULz9RvqlOzE3tmPP2pioXbtsPFIt8Dd3v0K4l8/2xzVrUwPi
 Ej5imLNFvI11M7i7RehznqKrEUZyQaajEXFScCALHVauALAwAA
X-Env-Sender: tknchris@gmail.com
X-Msg-Ref: server-3.tower-31.messagelabs.com!1469331528!52080490!1
X-Originating-IP: [209.85.218.45]
X-SpamReason: No, hits=0.3 required=7.0 tests=HTML_MESSAGE,RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 53186 invoked from network); 24 Jul 2016 03:38:49 -0000
Received: from mail-oi0-f45.google.com (HELO mail-oi0-f45.google.com)
 (209.85.218.45)
 by server-3.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 24 Jul 2016 03:38:49 -0000
Received: by mail-oi0-f45.google.com with SMTP id l65so212107621oib.1
 for <win-pv-devel@lists.xenproject.org>; Sat, 23 Jul 2016 20:38:49 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=mime-version:in-reply-to:references:from:date:message-id:subject:to
 :cc; bh=WDtntUdB58GxjueWjIcaWuwnI5RI+zI45VGkIs0MSW4=;
 b=xenPNxsuCAsKrxpLrnV8uHW7JHAzlwP0IesvCF1SetA3mwKArZICUwfoKyW39ErLP/
 G9C53Lptvhwq4zEmqr3tAQXrISRojodhQbtcN8vQ3H/2Pyc+TeC/I1faoXwP6v2NMa4g
 sr6Q4dklW1zpV/d7PEPwCHmYVV/AdfGUWTFNMeh+TPENgbzZwd3Go5gFK3qf2SakLd/u
 R/DA5u5z2LhFzmm2Uf0UnNX/rZ2L5KP+e20kCmxvfwcF7kKY1vbSnfatHbReY9nA6i3Z
 dAfzgSSjnmx6iKuZiZr+b/aQtpH5p8OxTrDy9IAAdq/Mj4kHI05M0+yTgxVAj1G0+AiZ
 EWcg==
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:from:date
 :message-id:subject:to:cc;
 bh=WDtntUdB58GxjueWjIcaWuwnI5RI+zI45VGkIs0MSW4=;
 b=A1NTZK8O/ytMBNnUXSiIQxu8BVRQh93LsR+FEdmEYlD+c/DTuO89/hqetPf6glKx9R
 d6fJJwwqj1/GYrpVO9nsgvM/L+UlbWHlkPppEeFHW+U+MCBfsafWf9Ay1N819jtYCW6i
 8aaZ4KWzB8b6UA6GvxVhd5YLEcWmb3jMTBfdEREfjOVGG1DUp/83KSUQbt5VWecOZLG7
 uU5/hXgV45HRkusgTV+WDf7qFZYPCsIs7E9xMKgJFwczBH4tVuxbuoKoSb0CbhPZM1m9
 0fWfLaTg1ya5M+XXhulx/6zxvTsQ+fV02p3kmjniSaF7dLq2d3tiXB6It24vO3T5Y0s/
 R3QA==
X-Gm-Message-State: AEkoous/8anjhzGFayoy+V8pzFcQtrjm70PU1m4y58/Q5kAsHcecbmWlgkwvZISlZvaAfXPlanJAu2tP9i7tog==
X-Received: by 10.157.27.225 with SMTP id v30mr6692217otv.107.1469331527936;
 Sat, 23 Jul 2016 20:38:47 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.202.105.195 with HTTP; Sat, 23 Jul 2016 20:38:47 -0700 (PDT)
In-Reply-To: <16f8e57a658c4d20a7d7cc06fb6c19af@AMSPEX02CL03.citrite.net>
References: <CAKnNFz_GLVZ2G6L_EBMq1AY5JpTUqVaNschscEtJ5q+Hzz1-0w@mail.gmail.com>
 <16f8e57a658c4d20a7d7cc06fb6c19af@AMSPEX02CL03.citrite.net>
From: chris <tknchris@gmail.com>
Date: Sat, 23 Jul 2016 23:38:47 -0400
Message-ID: <CAKnNFz9ueJMN4Zun_dvQPZP0jqq+pe3vXhufB6bFMfSy=VBkaA@mail.gmail.com>
To: Paul Durrant <Paul.Durrant@citrix.com>
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] Win-pv driver install success fails to boot
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============2393688086323990982=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============2393688086323990982==
Content-Type: multipart/alternative; boundary=001a11494faec7b00b05385967b8

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

OK. I changed the config back and i still cant boot. I did have testsigning
enabled and rebooted twice before attempting to install the drivers.

Any idea why windows cant boot? I followed the instructions to the letter
so I am trying to understand why its not working.

Also, even though I could reinstall I'd like to work through getting the
drivers disabled / uninstalled and get things booting again so I am
familiar with this process. I don't really think its wise to just reinstall
then down the line deploy this into production and have something like this
happen and not have any solution other than reinstalling.

I have tried:
- tried booting in safe mode
- tried startup repair
- tried booting into a command prompt and tried renaming all the xen*.sys
files in c:\windows\system32\drivers\
- tried booting into command prompt and doing bootrec /fixboot, bootrec
/fixmbr, bootrec /rebuildbcd


Whats the process to reverse the installation and get windows to boot?

Thanks!
chris

On Fri, Jul 22, 2016 at 4:45 AM, Paul Durrant <Paul.Durrant@citrix.com>
wrote:

> Hi Chris,
>
>
>
>   Don=E2=80=99t mess with the disk and network lines in your config. You =
still
> need emulated disk to boot Windows as the firmware (SeaBIOS or ROMBIOS)
> does not have PV frontends. Once Windows starts and the PV drivers load
> they will instruct QEMU to unplug the emulated devices so that the PV
> devices can take their place.
>
>
>
>   As for recovering, it=E2=80=99s probably going to be tricky. Since you =
were
> doing a fresh install it=E2=80=99s probably quicker to start again. The o=
ther thing
> to do **before** you install PV drivers (and I suspect this is the root
> of your problem) is to enable test signed drivers in Windows. Windows 10
> (even 32-bit) will not load test signed drivers unless you have done:
>
>
>
> bcdedit /set testsigning on
>
>
>
>   Hope that helps,
>
>
>
>   Paul
>
>
>
> *From:* win-pv-devel [mailto:win-pv-devel-bounces@lists.xenproject.org] *=
On
> Behalf Of *chris
> *Sent:* 21 July 2016 14:31
> *To:* win-pv-devel@lists.xenproject.org
> *Subject:* [win-pv-devel] Win-pv driver install success fails to boot
>
>
>
> Hello,
>
>
>
> I am a previous gplpv user who recently came across this project and
> wanted to give a try to atleast help provide feedback and testing.
>
>
>
> I downloaded the latest drivers via the tar files on this page:
>
>
>
>
> http://www.xenproject.org/downloads/windows-pv-drivers/development-builds=
.html
>
>
>
> I extracted and ran dpinst as noted in the readme txt  for each driver an=
d
> saw that in device manager it created some new devices. NOTE this is a
> clean install and did not have gplpv or any other drivers previously
>
>
> I shutdown the domu, changed my disk and network lines to use the PV styl=
e:
>
>
>
> 'file:/mnt/vil1064/vil1064-ssd.img,xvda,w',
>
>
>
> vif =3D ['type=3Dnetfront, bridge=3Dxenbr0, mac=3D00:16:3D:37:A0:A3']
>
>
>
> and when i tried to start it up, it gets stuck at windows 10 loading
> screen with the logo and the spinning wheel underneath. i left it for
> several hours and it never got any further nor did it bsod'd or reboot ov=
er
> and over.
>
>
>
> i went  back and changed my config back to emulated interfaces and window=
s
> 10 does not start via the original config either
>
>
>
> did i miss some critical step(s)? any ideas why the OS wont boot? whats h=
e
> best to remove the drivers and try again?
>
>
>
> i am a fairly technical linux and windows user and willing to invest some
> time to anything that will help so please let me know if theres any more
> info or anything i can do to give you more data
>
>
>
> the dom0 is a up to date debian jessie, xl info gives:
>
> release                : 3.16.0-4-amd64
>
> version                : #1 SMP Debian 3.16.7-ckt11-1+deb8u5 (2015-10-09)
>
> machine                : x86_64
>
> nr_cpus                : 12
>
> max_cpu_id             : 15
>
> nr_nodes               : 2
>
> cores_per_socket       : 12
>
> threads_per_core       : 1
>
> cpu_mhz                : 2100
>
> hw_caps                :
> 178bf3ff:efd3fbff:00000000:00001300:00802001:00000000:000837ff:00000000
>
> virt_caps              : hvm
>
> total_memory           : 57342
>
> free_memory            : 16455
>
> sharing_freed_memory   : 0
>
> sharing_used_memory    : 0
>
> outstanding_claims     : 0
>
> free_cpus              : 0
>
> xen_major              : 4
>
> xen_minor              : 4
>
> xen_extra              : .1
>
> xen_version            : 4.4.1
>
> xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32
> hvm-3.0-x86_32p hvm-3.0-x86_64
>
> xen_scheduler          : credit
>
> xen_pagesize           : 4096
>
> platform_params        : virt_start=3D0xffff800000000000
>
> xen_changeset          :
>
> xen_commandline        : placeholder dom0_mem=3D1024M
>
> cc_compiler            : gcc (Debian 4.9.2-10) 4.9.2
>
> cc_compile_by          : ultrotter
>
> cc_compile_domain      : debian.org
>
> cc_compile_date        : Thu Jun 11 18:24:17 EEST 2015
>
> xend_config_format     : 4
>
>
>
> chris
>

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

<div dir=3D"ltr">OK. I changed the config back and i still cant boot. I did=
 have testsigning enabled and rebooted twice before attempting to install t=
he drivers.=C2=A0<br><br>Any idea why windows cant boot? I followed the ins=
tructions to the letter so I am trying to understand why its not working.<d=
iv><br></div><div>Also, even though I could reinstall I&#39;d like to work =
through getting the drivers disabled / uninstalled and get things booting a=
gain so I am familiar with this process. I don&#39;t really think its wise =
to just reinstall then down the line deploy this into production and have s=
omething like this happen and not have any solution other than reinstalling=
.</div><div><br></div><div>I have tried:</div><div>- tried booting in safe =
mode=C2=A0</div><div>- tried startup repair</div><div>- tried booting into =
a command prompt and tried renaming all the xen*.sys files in c:\windows\sy=
stem32\drivers\</div><div>- tried booting into command prompt and doing boo=
trec /fixboot, bootrec /fixmbr, bootrec /rebuildbcd</div><div><br></div><di=
v><br></div><div>Whats the process to reverse the installation and get wind=
ows to boot?</div><div><br></div><div>Thanks!</div><div>chris</div></div><d=
iv class=3D"gmail_extra"><br><div class=3D"gmail_quote">On Fri, Jul 22, 201=
6 at 4:45 AM, Paul Durrant <span dir=3D"ltr">&lt;<a href=3D"mailto:Paul.Dur=
rant@citrix.com" target=3D"_blank">Paul.Durrant@citrix.com</a>&gt;</span> w=
rote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;borde=
r-left:1px #ccc solid;padding-left:1ex">







<div lang=3D"EN-GB" link=3D"blue" vlink=3D"purple">
<div>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-=
serif&quot;;color:#1f497d">Hi Chris,<u></u><u></u></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-=
serif&quot;;color:#1f497d"><u></u>=C2=A0<u></u></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-=
serif&quot;;color:#1f497d"><span>=C2=A0
</span>Don=E2=80=99t mess with the disk and network lines in your <span>con=
fig</span>. You still need emulated disk to boot Windows as the firmware (<=
span>SeaBIOS</span> or ROMBIOS) does not have PV frontends. Once Windows st=
arts and the
 PV drivers load they will instruct QEMU to unplug the emulated devices so =
that the PV devices can take their place.<u></u><u></u></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-=
serif&quot;;color:#1f497d"><u></u>=C2=A0<u></u></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-=
serif&quot;;color:#1f497d"><span>=C2=A0
</span>As for recovering, it=E2=80=99s probably going to be tricky. Since y=
ou were doing a fresh install it=E2=80=99s probably quicker to start again.=
 The other thing to do *<b><span style=3D"font-weight:bold">before</span></=
b>* you install PV drivers (and I suspect this is
 the root of your problem) is to enable test signed drivers in Windows. Win=
dows 10 (even 32-bit) will not load test signed drivers unless you have don=
e:<u></u><u></u></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-=
serif&quot;;color:#1f497d"><u></u>=C2=A0<u></u></span></font></p>
<p class=3D"MsoNormal"><span><font size=3D"2" color=3D"#1f497d" face=3D"Cal=
ibri"><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot=
;sans-serif&quot;;color:#1f497d">bcdedit</span></font></span><font size=3D"=
2" color=3D"#1f497d" face=3D"Calibri"><span style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d">
 /set <span>testsigning</span> on<u></u><u></u></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-=
serif&quot;;color:#1f497d"><u></u>=C2=A0<u></u></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-=
serif&quot;;color:#1f497d"><span>=C2=A0
</span>Hope that helps,<u></u><u></u></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-=
serif&quot;;color:#1f497d"><u></u>=C2=A0<u></u></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-=
serif&quot;;color:#1f497d"><span>=C2=A0
</span>Paul<u></u><u></u></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" color=3D"#1f497d" face=3D"Calibri">=
<span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-=
serif&quot;;color:#1f497d"><u></u>=C2=A0<u></u></span></font></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><font size=3D"2" face=3D"Tahoma"><span lang=3D"EN=
-US" style=3D"font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-se=
rif&quot;;font-weight:bold">From:</span></font></b><font size=3D"2" face=3D=
"Tahoma"><span lang=3D"EN-US" style=3D"font-size:10.0pt;font-family:&quot;T=
ahoma&quot;,&quot;sans-serif&quot;">
 win-pv-devel [mailto:<a href=3D"mailto:win-pv-devel-bounces@lists.xenproje=
ct.org" target=3D"_blank">win-pv-devel-bounces@lists.xenproject.org</a>] <b=
><span style=3D"font-weight:bold">On Behalf Of
</span></b>chris<br>
<b><span style=3D"font-weight:bold">Sent:</span></b> 21 July 2016 14:31<br>
<b><span style=3D"font-weight:bold">To:</span></b> <a href=3D"mailto:win-pv=
-devel@lists.xenproject.org" target=3D"_blank">win-pv-devel@lists.xenprojec=
t.org</a><br>
<b><span style=3D"font-weight:bold">Subject:</span></b> [win-pv-devel] Win-=
pv driver install success fails to boot<u></u><u></u></span></font></p>
</div>
</div><div><div class=3D"h5">
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt"><u></u>=C2=A0<u></u></span></font></p>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">Hello,<u></u><u></u></span></font></p>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt"><u></u>=C2=A0<u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">I am a previous gplpv user who recently came across =
this project and wanted to give a try to atleast help provide feedback and =
testing.<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt"><u></u>=C2=A0<u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">I downloaded the latest drivers via the tar files on=
 this page:<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt"><u></u>=C2=A0<u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt"><a href=3D"http://www.xenproject.org/downloads/windo=
ws-pv-drivers/development-builds.html" target=3D"_blank">http://www.xenproj=
ect.org/downloads/windows-pv-drivers/development-builds.html</a><u></u><u><=
/u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt"><u></u>=C2=A0<u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">I extracted and ran dpinst as noted in the readme tx=
t =C2=A0for each driver and saw that in device manager it created some new =
devices. NOTE this is a clean install and did
 not have gplpv or any other drivers previously=C2=A0<u></u><u></u></span><=
/font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt"><br>
I shutdown the domu, changed my disk and network lines to use the PV style:=
<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt"><u></u>=C2=A0<u></u></span></font></p>
</div>
<div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">&#39;file:/mnt/vil1064/vil1064-ssd.img,xvda,w&#39;,<=
u></u><u></u></span></font></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt"><u></u>=C2=A0<u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">vif =3D [&#39;type=3Dnetfront, bridge=3Dxenbr0, mac=
=3D00:16:3D:37:A0:A3&#39;]<u></u><u></u></span></font></p>
</div>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt"><u></u>=C2=A0<u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">and when i tried to start it up, it gets stuck at wi=
ndows 10 loading screen with the logo and the spinning wheel underneath. i =
left it for several hours and it never got
 any further nor did it bsod&#39;d or reboot over and over.<u></u><u></u></=
span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt"><u></u>=C2=A0<u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">i went =C2=A0back and changed my config back to emul=
ated interfaces and windows 10 does not start via the original config eithe=
r<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt"><u></u>=C2=A0<u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">did i miss some critical step(s)? any ideas why the =
OS wont boot? whats he best to remove the drivers and try again?<u></u><u><=
/u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt"><u></u>=C2=A0<u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">i am a fairly technical linux and windows user and w=
illing to invest some time to anything that will help so please let me know=
 if theres any more info or anything i can
 do to give you more data<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt"><u></u>=C2=A0<u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">the dom0 is a up to date debian jessie, xl info give=
s:<u></u><u></u></span></font></p>
</div>
<div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">release =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0: 3.16.0-4-amd64<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">version =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0: #1 SMP Debian 3.16.7-ckt11-1+deb8u5 (2015-10-09)<u></u><u></=
u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">machine =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0: x86_64<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">nr_cpus =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0: 12<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">max_cpu_id =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 : 15<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">nr_nodes =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 : 2<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">cores_per_socket =C2=A0 =C2=A0 =C2=A0 : 12<u></u><u>=
</u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">threads_per_core =C2=A0 =C2=A0 =C2=A0 : 1<u></u><u><=
/u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">cpu_mhz =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0: 2100<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">hw_caps =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0: 178bf3ff:efd3fbff:00000000:00001300:00802001:00000000:000837=
ff:00000000<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">virt_caps =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0: hvm<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">total_memory =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 : 57=
342<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">free_memory =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0: 16455<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">sharing_freed_memory =C2=A0 : 0<u></u><u></u></span>=
</font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">sharing_used_memory =C2=A0 =C2=A0: 0<u></u><u></u></=
span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">outstanding_claims =C2=A0 =C2=A0 : 0<u></u><u></u></=
span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">free_cpus =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0: 0<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">xen_major =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0: 4<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">xen_minor =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0: 4<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">xen_extra =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0: .1<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">xen_version =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0: 4.4.1<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">xen_caps =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-=
3.0-x86_64=C2=A0<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">xen_scheduler =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0: cr=
edit<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">xen_pagesize =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 : 40=
96<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">platform_params =C2=A0 =C2=A0 =C2=A0 =C2=A0: virt_st=
art=3D0xffff800000000000<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">xen_changeset =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0:=C2=
=A0<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">xen_commandline =C2=A0 =C2=A0 =C2=A0 =C2=A0: placeho=
lder dom0_mem=3D1024M<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">cc_compiler =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0: gcc (Debian 4.9.2-10) 4.9.2<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">cc_compile_by =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0: ul=
trotter<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">cc_compile_domain =C2=A0 =C2=A0 =C2=A0:
<a href=3D"http://debian.org" target=3D"_blank">debian.org</a><u></u><u></u=
></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">cc_compile_date =C2=A0 =C2=A0 =C2=A0 =C2=A0: Thu Jun=
 11 18:24:17 EEST 2015<u></u><u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">xend_config_format =C2=A0 =C2=A0 : 4<u></u><u></u></=
span></font></p>
</div>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt"><u></u>=C2=A0<u></u></span></font></p>
</div>
<div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12.0pt">chris<u></u><u></u></span></font></p>
</div>
</div>
</div></div></div>
</div>
</div>

</blockquote></div><br></div>

--001a11494faec7b00b05385967b8--


--===============2393688086323990982==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============2393688086323990982==--


From win-pv-devel-bounces@lists.xenproject.org Sun Jul 24 06:37:22 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 24 Jul 2016 06:37:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bRD2N-0007Zo-MY; Sun, 24 Jul 2016 06:37:19 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <et@etit.hu>) id 1bRD2K-0007Zi-VY
 for win-pv-devel@lists.xenproject.org; Sun, 24 Jul 2016 06:37:18 +0000
Received: from [85.158.143.35] by server-2.bemta-6.messagelabs.com id
 E6/D6-13744-C1264975; Sun, 24 Jul 2016 06:37:16 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrEKsWRWlGSWpSXmKPExsUSd3yrvK500pR
 wg82L2Sz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxvpjhxkLTkhW3JuwkaWBcZl4FyMXh5DANkaJ
 /2d62boYOTgkBJQkWprdIOI7GSWuH1/GCuKwCDQyS9x/dYgRxJEQWMsosXHHZ0aIsquMEtOW7
 2BHU8bJISxgIPH601U2EFtEQFXi2vJjYLaQgLvE8r4/LCA2m4CxROu55WD1/AKyEh9XTmQCsX
 kF1CQa908Hq2EB6r35eAoriC0qEC7RN283VI2gxMmZT8BqOAU8JOadns8GcgSzQDujxIkLp8E
 SEgLCEkf272SZwCg8C0nPLGR1IAlmAW+JL5NOsM5CctQsJIfPQnLULCTPzULy0Cwkh0DMVJf4
 M+8SM4StLbFs4Wso21Zi3br3UHv1JN7+7oWyLSXW7/jEvoCRbxWjenFqUVlqka6hXlJRZnpGS
 W5iZo6uoYGZXm5qcXFiempOYlKxXnJ+7iZGYNwzAMEOxp3PnQ4xSnIwKYny3jgxKVyILyk/pT
 IjsTgjvqg0J7X4EKMMB4eSBK9n4pRwIcGi1PTUirTMHGACgklLcPAoifDuTwBK8xYXJOYWZ6Z
 DpE4xKkqJ84aD9AmAJDJK8+DaYEnvEqOslDAvI9AhQjwFqUW5mSWo8q8YxTkYlYR5OUGm8GTm
 lcBNfwW0mAlo8QKeySCLSxIRUlINjK0rPoUYOHg03dY/mcxdYz/pgPGpTG3T7ctKgy6Xa1qe4
 Ijv+v24h9e3xrE2MEB5U3qPfuuh472RHpbfi2WC32t/9HXYnzA90ucHy3kVVo/Nil/3vIo+8T
 bX3WUpkx+7wUGnrTZOfRuDDknf2Mw4YenEq56eVvWzSnWtFxmVHTp6LKZOeJ2QEktxRqKhFnN
 RcSIAikioAXUDAAA=
X-Env-Sender: et@etit.hu
X-Msg-Ref: server-13.tower-21.messagelabs.com!1469342234!25396748!1
X-Originating-IP: [94.199.181.31]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 10036 invoked from network); 24 Jul 2016 06:37:15 -0000
Received: from mail.etit.hu (HELO mail.etit.hu) (94.199.181.31)
 by server-13.tower-21.messagelabs.com with SMTP; 24 Jul 2016 06:37:15 -0000
Received: from localhost (localhost [127.0.0.1])
 by mail.etit.hu (Postfix) with ESMTP id 3E0EF40419C
 for <win-pv-devel@lists.xenproject.org>; Sun, 24 Jul 2016 08:37:14 +0200 (CEST)
X-Virus-Scanned: AMAVIS at etit.hu
Received: from mail.etit.hu (localhost [127.0.0.1])
 by mail.etit.hu (Postfix) with ESMTP id 818A64041AC
 for <win-pv-devel@lists.xenproject.org>; Sun, 24 Jul 2016 08:36:54 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=etit.hu; s=mail;
 t=1469342214; bh=fafjcSkt8+YagUSb88w89c6aacveuu0AzZc0WKVPFII=;
 h=Subject:To:From:Message-ID:Date:MIME-Version:Content-Type:From;
 b=t6Util6a3ct8lcHese9QVX4/TOG98tqyi7wba/J+5GdjcHbTI4gI6q1iJb5VrBkQv
 gl0D2RUIP8Hr56IoHlSI10hkizfTViqwp/HTHNpQy7Mk0GDGSxdUVUYDL9chv/gmVh
 rJRJMoMJTHWKiJr0IaB4J3rz1foFZ4ySMGPmG79o=
X-Virus-Scanner: This message was checked by ESET Mail Security
 for Linux/BSD. For more information on ESET Mail Security,
 please, visit our website: http://www.eset.com/.
Received: from [100.66.235.177] (254c0eae.nat.pool.telekom.hu [37.76.14.174])
 by mail.etit.hu (Postfix) with ESMTPSA id 4052040419C
 for <win-pv-devel@lists.xenproject.org>; Sun, 24 Jul 2016 08:36:54 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=etit.hu; s=mail;
 t=1469342214; bh=fafjcSkt8+YagUSb88w89c6aacveuu0AzZc0WKVPFII=;
 h=Subject:To:From:Message-ID:Date:MIME-Version:Content-Type:From;
 b=t6Util6a3ct8lcHese9QVX4/TOG98tqyi7wba/J+5GdjcHbTI4gI6q1iJb5VrBkQv
 gl0D2RUIP8Hr56IoHlSI10hkizfTViqwp/HTHNpQy7Mk0GDGSxdUVUYDL9chv/gmVh
 rJRJMoMJTHWKiJr0IaB4J3rz1foFZ4ySMGPmG79o=
To: win-pv-devel@lists.xenproject.org
References: <f92517584f1142d9b4bfee538df7d3df@AMSPEX02CL03.citrite.net>
From: =?UTF-8?B?w4lsacOhcyBUYW3DoXM=?= <et@etit.hu>
Organization: ETIT[nwpro] KFT
Message-ID: <57946205.1040009@etit.hu>
Date: Sun, 24 Jul 2016 08:36:53 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
 Thunderbird/38.8.0
MIME-Version: 1.0
In-Reply-To: <f92517584f1142d9b4bfee538df7d3df@AMSPEX02CL03.citrite.net>
X-EsetResult: clean
Subject: Re: [win-pv-devel] Signed 8.1.0 drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============2883678457533077178=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--===============2883678457533077178==
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="rNeUSmU4rsTOkqOJgAJl2ap8p2DHgFxeA"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--rNeUSmU4rsTOkqOJgAJl2ap8p2DHgFxeA
Content-Type: multipart/mixed; boundary="w97gTHuCPX8vhaKM9Wdip0wrjH3gweHr2"
From: =?UTF-8?B?w4lsacOhcyBUYW3DoXM=?= <et@etit.hu>
To: win-pv-devel@lists.xenproject.org
Message-ID: <57946205.1040009@etit.hu>
Subject: Re: [win-pv-devel] Signed 8.1.0 drivers
References: <f92517584f1142d9b4bfee538df7d3df@AMSPEX02CL03.citrite.net>
In-Reply-To: <f92517584f1142d9b4bfee538df7d3df@AMSPEX02CL03.citrite.net>

--w97gTHuCPX8vhaKM9Wdip0wrjH3gweHr2
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

All, very good news!

Windows 10 64bit Hungarian, working perfectly.

August seemes to be a VM-fix month! :)

Thank you.

2016-07-22 17:12 keltez=C3=A9ssel, Paul Durrant =C3=ADrta:
> All,
>=20
>   Good news! I have tagged the 8.1.0 release driver source in each of t=
he repositories, built it and signed it. I don't yet have an official pla=
ce to put the signed builds so for the moment you can get them from
>=20
> https://xenbits.xen.org/people/pauldu/pvdrivers/win/release/8.1.0
>=20
>   I have tested installation on Windows 10 (32-bit) and the signatures =
appear to be good.
>=20
>   I will let the list know when the tarballs move to a more permanent p=
lace and I will, at that point, link them from the project front page.
>=20
>   Cheers,
>=20
>     Paul
>=20
> _______________________________________________
> win-pv-devel mailing list
> win-pv-devel@lists.xenproject.org
> https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
>=20

--=20


=C3=89li=C3=A1s Tam=C3=A1s
Thomas Elias

ETIT[nwpro] KFT, =C3=9Cgyvezet=C5=91-H=C3=A1l=C3=B3zatbiztons=C3=A1gi spe=
cialista
ETIT[nwpro] Ltd, General Manager-Network security specialist

Tel. HU: +36/30-497-1626
Tel. DE: +49/160-651-8723
OpenPGP pubkey: http://etit.hu/doc/et-pub.asc

Okleveles m=C3=A9rn=C3=B6k-informatikus (MSC)
Master of Science in Information Technology (MSC)

Kapcsolat: http://etit.hu/index.php/hu/kapcsolat
Jogi nyilatkozat: http://etit.hu/disclaimer-email-hu.txt
Contact: http://etit.hu/index.php/en/contact
Disclaimer: http://etit.hu/disclaimer-email-en.txt


--w97gTHuCPX8vhaKM9Wdip0wrjH3gweHr2--

--rNeUSmU4rsTOkqOJgAJl2ap8p2DHgFxeA
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCAAGBQJXlGIFAAoJENWYes1C3s/ClZwP/jtJ1JAIvxsHIwFHoPuWnyqJ
gU96A4G9yvKRjIyreiCLG23ignNeapSy6+wlFcWRdWIEWYaUUfiNVTv34FNhL941
67Cd5q6N3VLGODTRHsjRuJ+0ynuF+Zny2ploOZXKeW4rTo+tJ9ek0+bTMdxpNVJA
P8N7FFZmqay5wPCztUVVdY2wN0EQq5dVBY4rIRK48rZ6FnCWrgHYMUkGrOWV2ryN
8kPg7Z6oFRiY+d3yZLRxBV4J2UjS6tF62mw52GYkIDM33KF9OF7w5UvzYTBXJM2h
d49l/m5eQ/t6Likz/u2lUiACMrI7U9i63BbyVt/QrSZhuCPkETi9ihSyIw4FiSBP
heZCXZNSPFeKn/5PYa7zqRBrsGUCqcN/SsSBFm2ISX7qhPQanZWPn7p+eZ+AT2KA
c4SPszT/wTK2Itc6OSCgNdke2bqmGC9Ut3bxk45VIJpZU55Yt393jXo+ng/Gu5gQ
HwyrqMCcE2CnxacOhCItZaPBK/U1CRL2Z2tr3UEns+kHsmSF0cxD5O90vwYWcOpU
3UJaZDlQV4Sx9cmjdtAa7O1r8hN8LraOvagDI226Qo+TYDDCB0FPL1mYLvRwR56g
oKg89XeqgZOw+8bMOzit7xDYQPFUcwqGz9E3wJ3iwcVzeuO7XTDhKkz+OXoq9WYH
Dx6/czX8HfYl4Eipxbcu
=ZI24
-----END PGP SIGNATURE-----

--rNeUSmU4rsTOkqOJgAJl2ap8p2DHgFxeA--


--===============2883678457533077178==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============2883678457533077178==--


From win-pv-devel-bounces@lists.xenproject.org Sun Jul 24 06:37:22 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 24 Jul 2016 06:37:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bRD2N-0007Zo-MY; Sun, 24 Jul 2016 06:37:19 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <et@etit.hu>) id 1bRD2K-0007Zi-VY
 for win-pv-devel@lists.xenproject.org; Sun, 24 Jul 2016 06:37:18 +0000
Received: from [85.158.143.35] by server-2.bemta-6.messagelabs.com id
 E6/D6-13744-C1264975; Sun, 24 Jul 2016 06:37:16 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrEKsWRWlGSWpSXmKPExsUSd3yrvK500pR
 wg82L2Sz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxvpjhxkLTkhW3JuwkaWBcZl4FyMXh5DANkaJ
 /2d62boYOTgkBJQkWprdIOI7GSWuH1/GCuKwCDQyS9x/dYgRxJEQWMsosXHHZ0aIsquMEtOW7
 2BHU8bJISxgIPH601U2EFtEQFXi2vJjYLaQgLvE8r4/LCA2m4CxROu55WD1/AKyEh9XTmQCsX
 kF1CQa908Hq2EB6r35eAoriC0qEC7RN283VI2gxMmZT8BqOAU8JOadns8GcgSzQDujxIkLp8E
 SEgLCEkf272SZwCg8C0nPLGR1IAlmAW+JL5NOsM5CctQsJIfPQnLULCTPzULy0Cwkh0DMVJf4
 M+8SM4StLbFs4Wso21Zi3br3UHv1JN7+7oWyLSXW7/jEvoCRbxWjenFqUVlqka6hXlJRZnpGS
 W5iZo6uoYGZXm5qcXFiempOYlKxXnJ+7iZGYNwzAMEOxp3PnQ4xSnIwKYny3jgxKVyILyk/pT
 IjsTgjvqg0J7X4EKMMB4eSBK9n4pRwIcGi1PTUirTMHGACgklLcPAoifDuTwBK8xYXJOYWZ6Z
 DpE4xKkqJ84aD9AmAJDJK8+DaYEnvEqOslDAvI9AhQjwFqUW5mSWo8q8YxTkYlYR5OUGm8GTm
 lcBNfwW0mAlo8QKeySCLSxIRUlINjK0rPoUYOHg03dY/mcxdYz/pgPGpTG3T7ctKgy6Xa1qe4
 Ijv+v24h9e3xrE2MEB5U3qPfuuh472RHpbfi2WC32t/9HXYnzA90ucHy3kVVo/Nil/3vIo+8T
 bX3WUpkx+7wUGnrTZOfRuDDknf2Mw4YenEq56eVvWzSnWtFxmVHTp6LKZOeJ2QEktxRqKhFnN
 RcSIAikioAXUDAAA=
X-Env-Sender: et@etit.hu
X-Msg-Ref: server-13.tower-21.messagelabs.com!1469342234!25396748!1
X-Originating-IP: [94.199.181.31]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 10036 invoked from network); 24 Jul 2016 06:37:15 -0000
Received: from mail.etit.hu (HELO mail.etit.hu) (94.199.181.31)
 by server-13.tower-21.messagelabs.com with SMTP; 24 Jul 2016 06:37:15 -0000
Received: from localhost (localhost [127.0.0.1])
 by mail.etit.hu (Postfix) with ESMTP id 3E0EF40419C
 for <win-pv-devel@lists.xenproject.org>; Sun, 24 Jul 2016 08:37:14 +0200 (CEST)
X-Virus-Scanned: AMAVIS at etit.hu
Received: from mail.etit.hu (localhost [127.0.0.1])
 by mail.etit.hu (Postfix) with ESMTP id 818A64041AC
 for <win-pv-devel@lists.xenproject.org>; Sun, 24 Jul 2016 08:36:54 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=etit.hu; s=mail;
 t=1469342214; bh=fafjcSkt8+YagUSb88w89c6aacveuu0AzZc0WKVPFII=;
 h=Subject:To:From:Message-ID:Date:MIME-Version:Content-Type:From;
 b=t6Util6a3ct8lcHese9QVX4/TOG98tqyi7wba/J+5GdjcHbTI4gI6q1iJb5VrBkQv
 gl0D2RUIP8Hr56IoHlSI10hkizfTViqwp/HTHNpQy7Mk0GDGSxdUVUYDL9chv/gmVh
 rJRJMoMJTHWKiJr0IaB4J3rz1foFZ4ySMGPmG79o=
X-Virus-Scanner: This message was checked by ESET Mail Security
 for Linux/BSD. For more information on ESET Mail Security,
 please, visit our website: http://www.eset.com/.
Received: from [100.66.235.177] (254c0eae.nat.pool.telekom.hu [37.76.14.174])
 by mail.etit.hu (Postfix) with ESMTPSA id 4052040419C
 for <win-pv-devel@lists.xenproject.org>; Sun, 24 Jul 2016 08:36:54 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=etit.hu; s=mail;
 t=1469342214; bh=fafjcSkt8+YagUSb88w89c6aacveuu0AzZc0WKVPFII=;
 h=Subject:To:From:Message-ID:Date:MIME-Version:Content-Type:From;
 b=t6Util6a3ct8lcHese9QVX4/TOG98tqyi7wba/J+5GdjcHbTI4gI6q1iJb5VrBkQv
 gl0D2RUIP8Hr56IoHlSI10hkizfTViqwp/HTHNpQy7Mk0GDGSxdUVUYDL9chv/gmVh
 rJRJMoMJTHWKiJr0IaB4J3rz1foFZ4ySMGPmG79o=
To: win-pv-devel@lists.xenproject.org
References: <f92517584f1142d9b4bfee538df7d3df@AMSPEX02CL03.citrite.net>
From: =?UTF-8?B?w4lsacOhcyBUYW3DoXM=?= <et@etit.hu>
Organization: ETIT[nwpro] KFT
Message-ID: <57946205.1040009@etit.hu>
Date: Sun, 24 Jul 2016 08:36:53 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
 Thunderbird/38.8.0
MIME-Version: 1.0
In-Reply-To: <f92517584f1142d9b4bfee538df7d3df@AMSPEX02CL03.citrite.net>
X-EsetResult: clean
Subject: Re: [win-pv-devel] Signed 8.1.0 drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============2883678457533077178=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--===============2883678457533077178==
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="rNeUSmU4rsTOkqOJgAJl2ap8p2DHgFxeA"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--rNeUSmU4rsTOkqOJgAJl2ap8p2DHgFxeA
Content-Type: multipart/mixed; boundary="w97gTHuCPX8vhaKM9Wdip0wrjH3gweHr2"
From: =?UTF-8?B?w4lsacOhcyBUYW3DoXM=?= <et@etit.hu>
To: win-pv-devel@lists.xenproject.org
Message-ID: <57946205.1040009@etit.hu>
Subject: Re: [win-pv-devel] Signed 8.1.0 drivers
References: <f92517584f1142d9b4bfee538df7d3df@AMSPEX02CL03.citrite.net>
In-Reply-To: <f92517584f1142d9b4bfee538df7d3df@AMSPEX02CL03.citrite.net>

--w97gTHuCPX8vhaKM9Wdip0wrjH3gweHr2
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

All, very good news!

Windows 10 64bit Hungarian, working perfectly.

August seemes to be a VM-fix month! :)

Thank you.

2016-07-22 17:12 keltez=C3=A9ssel, Paul Durrant =C3=ADrta:
> All,
>=20
>   Good news! I have tagged the 8.1.0 release driver source in each of t=
he repositories, built it and signed it. I don't yet have an official pla=
ce to put the signed builds so for the moment you can get them from
>=20
> https://xenbits.xen.org/people/pauldu/pvdrivers/win/release/8.1.0
>=20
>   I have tested installation on Windows 10 (32-bit) and the signatures =
appear to be good.
>=20
>   I will let the list know when the tarballs move to a more permanent p=
lace and I will, at that point, link them from the project front page.
>=20
>   Cheers,
>=20
>     Paul
>=20
> _______________________________________________
> win-pv-devel mailing list
> win-pv-devel@lists.xenproject.org
> https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
>=20

--=20


=C3=89li=C3=A1s Tam=C3=A1s
Thomas Elias

ETIT[nwpro] KFT, =C3=9Cgyvezet=C5=91-H=C3=A1l=C3=B3zatbiztons=C3=A1gi spe=
cialista
ETIT[nwpro] Ltd, General Manager-Network security specialist

Tel. HU: +36/30-497-1626
Tel. DE: +49/160-651-8723
OpenPGP pubkey: http://etit.hu/doc/et-pub.asc

Okleveles m=C3=A9rn=C3=B6k-informatikus (MSC)
Master of Science in Information Technology (MSC)

Kapcsolat: http://etit.hu/index.php/hu/kapcsolat
Jogi nyilatkozat: http://etit.hu/disclaimer-email-hu.txt
Contact: http://etit.hu/index.php/en/contact
Disclaimer: http://etit.hu/disclaimer-email-en.txt


--w97gTHuCPX8vhaKM9Wdip0wrjH3gweHr2--

--rNeUSmU4rsTOkqOJgAJl2ap8p2DHgFxeA
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCAAGBQJXlGIFAAoJENWYes1C3s/ClZwP/jtJ1JAIvxsHIwFHoPuWnyqJ
gU96A4G9yvKRjIyreiCLG23ignNeapSy6+wlFcWRdWIEWYaUUfiNVTv34FNhL941
67Cd5q6N3VLGODTRHsjRuJ+0ynuF+Zny2ploOZXKeW4rTo+tJ9ek0+bTMdxpNVJA
P8N7FFZmqay5wPCztUVVdY2wN0EQq5dVBY4rIRK48rZ6FnCWrgHYMUkGrOWV2ryN
8kPg7Z6oFRiY+d3yZLRxBV4J2UjS6tF62mw52GYkIDM33KF9OF7w5UvzYTBXJM2h
d49l/m5eQ/t6Likz/u2lUiACMrI7U9i63BbyVt/QrSZhuCPkETi9ihSyIw4FiSBP
heZCXZNSPFeKn/5PYa7zqRBrsGUCqcN/SsSBFm2ISX7qhPQanZWPn7p+eZ+AT2KA
c4SPszT/wTK2Itc6OSCgNdke2bqmGC9Ut3bxk45VIJpZU55Yt393jXo+ng/Gu5gQ
HwyrqMCcE2CnxacOhCItZaPBK/U1CRL2Z2tr3UEns+kHsmSF0cxD5O90vwYWcOpU
3UJaZDlQV4Sx9cmjdtAa7O1r8hN8LraOvagDI226Qo+TYDDCB0FPL1mYLvRwR56g
oKg89XeqgZOw+8bMOzit7xDYQPFUcwqGz9E3wJ3iwcVzeuO7XTDhKkz+OXoq9WYH
Dx6/czX8HfYl4Eipxbcu
=ZI24
-----END PGP SIGNATURE-----

--rNeUSmU4rsTOkqOJgAJl2ap8p2DHgFxeA--


--===============2883678457533077178==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============2883678457533077178==--


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 25 08:14:08 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 25 Jul 2016 08:14:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bRb1Z-0002zI-Dq; Mon, 25 Jul 2016 08:14:05 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=0077a6cd2=Paul.Durrant@citrix.com>)
 id 1bRb1X-0002zC-HB
 for win-pv-devel@lists.xenproject.org; Mon, 25 Jul 2016 08:14:03 +0000
Received: from [85.158.137.68] by server-9.bemta-3.messagelabs.com id
 B5/30-27233-A4AC5975; Mon, 25 Jul 2016 08:14:02 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrIKsWRWlGSWpSXmKPExsWyU9JRQtfz1NR
 wg4OTFCz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxv4JB1kKdjWxVkxquMTcwNj4i6WLkZNDQiBI
 4tfOzawgNpuAjsTSo/OZQGwRATmJ5rcnweLMAt4SV08eZASxhQXcJV6tb2GEqPGQaGuawQZhO
 0n0vFjNDGKzCKhK7N25gB3E5gWqv7jrKdAcLg4hgcuMEl2Nx8EWcwoESnyd/h/MZhSQlfjSCN
 HMLCAucesJxBESAgISS/acZ4awRSVePv7HCmEbSGxduo8Foj5XYsbbaywQywQlTs58AmYLCah
 IbHl8AKqXW2Ll5z8sExhFZiFZMQtJ+ywk7bMYOYDimhLrd+lDlChKTOl+yA5ha0i0zpnLjiy+
 gJF9FaN6cWpRWWqRrrleUlFmekZJbmJmjq6hgbFebmpxcWJ6ak5iUrFecn7uJkZgdDEAwQ7Gx
 u9OhxglOZiURHknrpkaLsSXlJ9SmZFYnBFfVJqTWnyIUYaDQ0mCd+8JoJxgUWp6akVaZg4wzm
 HSEhw8SiK8T0DSvMUFibnFmekQqVOMuhxbFtxYyyTEkpeflyolzrsZpEgApCijNA9uBCzlXGK
 UlRLmZQQ6SoinILUoN7MEVf4VozgHo5Iwr8JJoCk8mXklcJteAR3BBHTEAp7JIEeUJCKkpBoY
 9894dU+At3f+pv+JQd5sLLaOfyc/WmPd/1j26S6jZ2wfLTReWPpf/mThMyP6+KtN88rtuiP1/
 BWU1q2pLwgw0F/O/Oau5qVNLwp/C5hPtbsxf8Kd2t2eiteztni+k3qcHicwY/W+mdxeQjPeaX
 le0Gtvu5g0s15F67GYhdTTbudLi57M3sC+Q4mlOCPRUIu5qDgRAL4o/yg0AwAA
X-Env-Sender: prvs=0077a6cd2=Paul.Durrant@citrix.com
X-Msg-Ref: server-3.tower-31.messagelabs.com!1469434440!52194094!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=HTML_MESSAGE,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 17356 invoked from network); 25 Jul 2016 08:14:01 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-3.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 25 Jul 2016 08:14:01 -0000
X-IronPort-AV: E=Sophos;i="5.28,418,1464652800"; d="scan'208,217";a="27060746"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: chris <tknchris@gmail.com>
Thread-Topic: [win-pv-devel] Win-pv driver install success fails to boot
Thread-Index: AQHR41Qnk63y5YVv80ive5FTHt9jR6AkIa6AgAKv54CAAf3PsA==
Date: Mon, 25 Jul 2016 08:13:59 +0000
Message-ID: <c848c20d02a0447c9fa608e215f78e2b@AMSPEX02CL03.citrite.net>
References: <CAKnNFz_GLVZ2G6L_EBMq1AY5JpTUqVaNschscEtJ5q+Hzz1-0w@mail.gmail.com>
 <16f8e57a658c4d20a7d7cc06fb6c19af@AMSPEX02CL03.citrite.net>
 <CAKnNFz9ueJMN4Zun_dvQPZP0jqq+pe3vXhufB6bFMfSy=VBkaA@mail.gmail.com>
In-Reply-To: <CAKnNFz9ueJMN4Zun_dvQPZP0jqq+pe3vXhufB6bFMfSy=VBkaA@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] Win-pv driver install success fails to boot
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============3781493159367009718=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============3781493159367009718==
Content-Language: en-US
Content-Type: multipart/alternative;
	boundary="_000_c848c20d02a0447c9fa608e215f78e2bAMSPEX02CL03citritenet_"

--_000_c848c20d02a0447c9fa608e215f78e2bAMSPEX02CL03citritenet_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

VGhlcmXigJlzIGEgbXVsdGl0dWRlIG9mIHJlYXNvbnMgd2h5IHlvdXIgVk0gbWF5IG5vdCBiZSBi
b290aW5nIGFmdGVyIG1lc3Npbmcgd2l0aCB0aGUgY29uZmlnLiBZb3UgaGF2ZW7igJl0IGFjdHVh
bGx5IHNhaWQgaG93IGl0IGlzIGZhaWxpbmcgYnV0LCBzaW5jZSB5b3UgZG8gaGF2ZSB0ZXN0c2ln
bmluZyBlbmFibGVkLCBteSBuZXh0IGd1ZXNzIGlzIHRoYXQgeW91IGFyZSBnZXR0aW5nIGEgMHg3
QiBibHVlIHNjcmVlbiBhdCBib290IHRpbWUuIElmIHNvLCB0aGlzIGlzIGJlY2F1c2UgdGhlIFhF
TkZJTFQgZmlsdGVyIGRyaXZlciBpcyBzdGlsbCBpbnN0YWxsZWQgYW5kIGlzIGluc3RydWN0aW5n
IFFFTVUgdG8gdW5wbHVnIGVtdWxhdGVkIGRldmljZXMgYXQgYm9vdCB0aW1lLg0KVG8gc3RvcCBp
dCBmcm9tIGRvaW5nIHRoaXMgeW91IGhhdmUgYSBjb3VwbGUgb2Ygb3B0aW9uczoNCg0KDQotICAg
ICAgICAgIEZpbmQgYWxsIHRoZSBpbnN0YW5jZXMgb2YgVXBwZXJGaWx0ZXJzIHdoZXJlIFhFTkZJ
TFQgaXMgc3BlY2lmaWVkICh1bmRlciBIS0xNL1N5c3RlbS9DdXJyZW50Q29udHJvbHNldC9Db250
cm9sL0NsYXNzKSBhbmQgcmVtb3ZlIHRoZW0uDQoNCi0gICAgICAgICAgTG9vayB1bmRlciBIS0xN
L1N5c3RlbS9DdXJyZW50Q29udHJvbFNldC9TZXJ2aWNlcy9YRU4vVW5wbHVnIGFuZCByZW1vdmUg
YW55IERJU0tTIHZhbHVlIHlvdSBtYXkgZmluZCB0aGVyZS4NCg0KT25jZSB5b3UgaGF2ZSBkb25l
IG9uZSBvciBib3RoIG9mIHRoZXNlIHlvdSBzaG91bGQgYmUgYWJsZSB0byByZWJvb3QgeW91ciBW
TSBhbmQgZW11bGF0ZWQgZGV2aWNlcyB3aWxsIHN0YXkgcGx1Z2dlZC4NCg0KVGhlIFBWIGRyaXZl
cnMgbG9nIHRvIFFFTVUsIGlmIHlvdSBhcmUgcnVubmluZyBxZW11IHRyYWQsIHlvdSBzaG91bGQg
c2VlIG91dHB1dCBpbiB0aGUgcWVtdSBsb2cgZmlsZS4gSWYgeW91IGFyZSBydW5uaW5nIHVwc3Ry
ZWFtIFFFTVUgeW914oCZbGwgbmVlZCB0byBlbmFibGUgdGhlIHhlbl9wbGF0Zm9ybV9sb2cgZXZl
bnQgYmVmb3JlIHlvdSBnZXQgYW55IGxvZ2dpbmcuDQoNCiAgUGF1bA0KDQoNCkZyb206IGNocmlz
IFttYWlsdG86dGtuY2hyaXNAZ21haWwuY29tXQ0KU2VudDogMjQgSnVseSAyMDE2IDA0OjM5DQpU
bzogUGF1bCBEdXJyYW50DQpDYzogd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQpT
dWJqZWN0OiBSZTogW3dpbi1wdi1kZXZlbF0gV2luLXB2IGRyaXZlciBpbnN0YWxsIHN1Y2Nlc3Mg
ZmFpbHMgdG8gYm9vdA0KDQpPSy4gSSBjaGFuZ2VkIHRoZSBjb25maWcgYmFjayBhbmQgaSBzdGls
bCBjYW50IGJvb3QuIEkgZGlkIGhhdmUgdGVzdHNpZ25pbmcgZW5hYmxlZCBhbmQgcmVib290ZWQg
dHdpY2UgYmVmb3JlIGF0dGVtcHRpbmcgdG8gaW5zdGFsbCB0aGUgZHJpdmVycy4NCg0KQW55IGlk
ZWEgd2h5IHdpbmRvd3MgY2FudCBib290PyBJIGZvbGxvd2VkIHRoZSBpbnN0cnVjdGlvbnMgdG8g
dGhlIGxldHRlciBzbyBJIGFtIHRyeWluZyB0byB1bmRlcnN0YW5kIHdoeSBpdHMgbm90IHdvcmtp
bmcuDQoNCkFsc28sIGV2ZW4gdGhvdWdoIEkgY291bGQgcmVpbnN0YWxsIEknZCBsaWtlIHRvIHdv
cmsgdGhyb3VnaCBnZXR0aW5nIHRoZSBkcml2ZXJzIGRpc2FibGVkIC8gdW5pbnN0YWxsZWQgYW5k
IGdldCB0aGluZ3MgYm9vdGluZyBhZ2FpbiBzbyBJIGFtIGZhbWlsaWFyIHdpdGggdGhpcyBwcm9j
ZXNzLiBJIGRvbid0IHJlYWxseSB0aGluayBpdHMgd2lzZSB0byBqdXN0IHJlaW5zdGFsbCB0aGVu
IGRvd24gdGhlIGxpbmUgZGVwbG95IHRoaXMgaW50byBwcm9kdWN0aW9uIGFuZCBoYXZlIHNvbWV0
aGluZyBsaWtlIHRoaXMgaGFwcGVuIGFuZCBub3QgaGF2ZSBhbnkgc29sdXRpb24gb3RoZXIgdGhh
biByZWluc3RhbGxpbmcuDQoNCkkgaGF2ZSB0cmllZDoNCi0gdHJpZWQgYm9vdGluZyBpbiBzYWZl
IG1vZGUNCi0gdHJpZWQgc3RhcnR1cCByZXBhaXINCi0gdHJpZWQgYm9vdGluZyBpbnRvIGEgY29t
bWFuZCBwcm9tcHQgYW5kIHRyaWVkIHJlbmFtaW5nIGFsbCB0aGUgeGVuKi5zeXMgZmlsZXMgaW4g
Yzpcd2luZG93c1xzeXN0ZW0zMlxkcml2ZXJzXA0KLSB0cmllZCBib290aW5nIGludG8gY29tbWFu
ZCBwcm9tcHQgYW5kIGRvaW5nIGJvb3RyZWMgL2ZpeGJvb3QsIGJvb3RyZWMgL2ZpeG1iciwgYm9v
dHJlYyAvcmVidWlsZGJjZA0KDQoNCldoYXRzIHRoZSBwcm9jZXNzIHRvIHJldmVyc2UgdGhlIGlu
c3RhbGxhdGlvbiBhbmQgZ2V0IHdpbmRvd3MgdG8gYm9vdD8NCg0KVGhhbmtzIQ0KY2hyaXMNCg0K
T24gRnJpLCBKdWwgMjIsIDIwMTYgYXQgNDo0NSBBTSwgUGF1bCBEdXJyYW50IDxQYXVsLkR1cnJh
bnRAY2l0cml4LmNvbTxtYWlsdG86UGF1bC5EdXJyYW50QGNpdHJpeC5jb20+PiB3cm90ZToNCkhp
IENocmlzLA0KDQogIERvbuKAmXQgbWVzcyB3aXRoIHRoZSBkaXNrIGFuZCBuZXR3b3JrIGxpbmVz
IGluIHlvdXIgY29uZmlnLiBZb3Ugc3RpbGwgbmVlZCBlbXVsYXRlZCBkaXNrIHRvIGJvb3QgV2lu
ZG93cyBhcyB0aGUgZmlybXdhcmUgKFNlYUJJT1Mgb3IgUk9NQklPUykgZG9lcyBub3QgaGF2ZSBQ
ViBmcm9udGVuZHMuIE9uY2UgV2luZG93cyBzdGFydHMgYW5kIHRoZSBQViBkcml2ZXJzIGxvYWQg
dGhleSB3aWxsIGluc3RydWN0IFFFTVUgdG8gdW5wbHVnIHRoZSBlbXVsYXRlZCBkZXZpY2VzIHNv
IHRoYXQgdGhlIFBWIGRldmljZXMgY2FuIHRha2UgdGhlaXIgcGxhY2UuDQoNCiAgQXMgZm9yIHJl
Y292ZXJpbmcsIGl04oCZcyBwcm9iYWJseSBnb2luZyB0byBiZSB0cmlja3kuIFNpbmNlIHlvdSB3
ZXJlIGRvaW5nIGEgZnJlc2ggaW5zdGFsbCBpdOKAmXMgcHJvYmFibHkgcXVpY2tlciB0byBzdGFy
dCBhZ2Fpbi4gVGhlIG90aGVyIHRoaW5nIHRvIGRvICpiZWZvcmUqIHlvdSBpbnN0YWxsIFBWIGRy
aXZlcnMgKGFuZCBJIHN1c3BlY3QgdGhpcyBpcyB0aGUgcm9vdCBvZiB5b3VyIHByb2JsZW0pIGlz
IHRvIGVuYWJsZSB0ZXN0IHNpZ25lZCBkcml2ZXJzIGluIFdpbmRvd3MuIFdpbmRvd3MgMTAgKGV2
ZW4gMzItYml0KSB3aWxsIG5vdCBsb2FkIHRlc3Qgc2lnbmVkIGRyaXZlcnMgdW5sZXNzIHlvdSBo
YXZlIGRvbmU6DQoNCmJjZGVkaXQgL3NldCB0ZXN0c2lnbmluZyBvbg0KDQogIEhvcGUgdGhhdCBo
ZWxwcywNCg0KICBQYXVsDQoNCkZyb206IHdpbi1wdi1kZXZlbCBbbWFpbHRvOndpbi1wdi1kZXZl
bC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnPG1haWx0bzp3aW4tcHYtZGV2ZWwtYm91bmNl
c0BsaXN0cy54ZW5wcm9qZWN0Lm9yZz5dIE9uIEJlaGFsZiBPZiBjaHJpcw0KU2VudDogMjEgSnVs
eSAyMDE2IDE0OjMxDQpUbzogd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnPG1haWx0
bzp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmc+DQpTdWJqZWN0OiBbd2luLXB2LWRl
dmVsXSBXaW4tcHYgZHJpdmVyIGluc3RhbGwgc3VjY2VzcyBmYWlscyB0byBib290DQoNCkhlbGxv
LA0KDQpJIGFtIGEgcHJldmlvdXMgZ3BscHYgdXNlciB3aG8gcmVjZW50bHkgY2FtZSBhY3Jvc3Mg
dGhpcyBwcm9qZWN0IGFuZCB3YW50ZWQgdG8gZ2l2ZSBhIHRyeSB0byBhdGxlYXN0IGhlbHAgcHJv
dmlkZSBmZWVkYmFjayBhbmQgdGVzdGluZy4NCg0KSSBkb3dubG9hZGVkIHRoZSBsYXRlc3QgZHJp
dmVycyB2aWEgdGhlIHRhciBmaWxlcyBvbiB0aGlzIHBhZ2U6DQoNCmh0dHA6Ly93d3cueGVucHJv
amVjdC5vcmcvZG93bmxvYWRzL3dpbmRvd3MtcHYtZHJpdmVycy9kZXZlbG9wbWVudC1idWlsZHMu
aHRtbA0KDQpJIGV4dHJhY3RlZCBhbmQgcmFuIGRwaW5zdCBhcyBub3RlZCBpbiB0aGUgcmVhZG1l
IHR4dCAgZm9yIGVhY2ggZHJpdmVyIGFuZCBzYXcgdGhhdCBpbiBkZXZpY2UgbWFuYWdlciBpdCBj
cmVhdGVkIHNvbWUgbmV3IGRldmljZXMuIE5PVEUgdGhpcyBpcyBhIGNsZWFuIGluc3RhbGwgYW5k
IGRpZCBub3QgaGF2ZSBncGxwdiBvciBhbnkgb3RoZXIgZHJpdmVycyBwcmV2aW91c2x5DQoNCkkg
c2h1dGRvd24gdGhlIGRvbXUsIGNoYW5nZWQgbXkgZGlzayBhbmQgbmV0d29yayBsaW5lcyB0byB1
c2UgdGhlIFBWIHN0eWxlOg0KDQonZmlsZTovbW50L3ZpbDEwNjQvdmlsMTA2NC1zc2QuaW1nLHh2
ZGEsdycsDQoNCnZpZiA9IFsndHlwZT1uZXRmcm9udCwgYnJpZGdlPXhlbmJyMCwgbWFjPTAwOjE2
OjNEOjM3OkEwOkEzJ10NCg0KYW5kIHdoZW4gaSB0cmllZCB0byBzdGFydCBpdCB1cCwgaXQgZ2V0
cyBzdHVjayBhdCB3aW5kb3dzIDEwIGxvYWRpbmcgc2NyZWVuIHdpdGggdGhlIGxvZ28gYW5kIHRo
ZSBzcGlubmluZyB3aGVlbCB1bmRlcm5lYXRoLiBpIGxlZnQgaXQgZm9yIHNldmVyYWwgaG91cnMg
YW5kIGl0IG5ldmVyIGdvdCBhbnkgZnVydGhlciBub3IgZGlkIGl0IGJzb2QnZCBvciByZWJvb3Qg
b3ZlciBhbmQgb3Zlci4NCg0KaSB3ZW50ICBiYWNrIGFuZCBjaGFuZ2VkIG15IGNvbmZpZyBiYWNr
IHRvIGVtdWxhdGVkIGludGVyZmFjZXMgYW5kIHdpbmRvd3MgMTAgZG9lcyBub3Qgc3RhcnQgdmlh
IHRoZSBvcmlnaW5hbCBjb25maWcgZWl0aGVyDQoNCmRpZCBpIG1pc3Mgc29tZSBjcml0aWNhbCBz
dGVwKHMpPyBhbnkgaWRlYXMgd2h5IHRoZSBPUyB3b250IGJvb3Q/IHdoYXRzIGhlIGJlc3QgdG8g
cmVtb3ZlIHRoZSBkcml2ZXJzIGFuZCB0cnkgYWdhaW4/DQoNCmkgYW0gYSBmYWlybHkgdGVjaG5p
Y2FsIGxpbnV4IGFuZCB3aW5kb3dzIHVzZXIgYW5kIHdpbGxpbmcgdG8gaW52ZXN0IHNvbWUgdGlt
ZSB0byBhbnl0aGluZyB0aGF0IHdpbGwgaGVscCBzbyBwbGVhc2UgbGV0IG1lIGtub3cgaWYgdGhl
cmVzIGFueSBtb3JlIGluZm8gb3IgYW55dGhpbmcgaSBjYW4gZG8gdG8gZ2l2ZSB5b3UgbW9yZSBk
YXRhDQoNCnRoZSBkb20wIGlzIGEgdXAgdG8gZGF0ZSBkZWJpYW4gamVzc2llLCB4bCBpbmZvIGdp
dmVzOg0KcmVsZWFzZSAgICAgICAgICAgICAgICA6IDMuMTYuMC00LWFtZDY0DQp2ZXJzaW9uICAg
ICAgICAgICAgICAgIDogIzEgU01QIERlYmlhbiAzLjE2LjctY2t0MTEtMStkZWI4dTUgKDIwMTUt
MTAtMDkpDQptYWNoaW5lICAgICAgICAgICAgICAgIDogeDg2XzY0DQpucl9jcHVzICAgICAgICAg
ICAgICAgIDogMTINCm1heF9jcHVfaWQgICAgICAgICAgICAgOiAxNQ0KbnJfbm9kZXMgICAgICAg
ICAgICAgICA6IDINCmNvcmVzX3Blcl9zb2NrZXQgICAgICAgOiAxMg0KdGhyZWFkc19wZXJfY29y
ZSAgICAgICA6IDENCmNwdV9taHogICAgICAgICAgICAgICAgOiAyMTAwDQpod19jYXBzICAgICAg
ICAgICAgICAgIDogMTc4YmYzZmY6ZWZkM2ZiZmY6MDAwMDAwMDA6MDAwMDEzMDA6MDA4MDIwMDE6
MDAwMDAwMDA6MDAwODM3ZmY6MDAwMDAwMDANCnZpcnRfY2FwcyAgICAgICAgICAgICAgOiBodm0N
CnRvdGFsX21lbW9yeSAgICAgICAgICAgOiA1NzM0Mg0KZnJlZV9tZW1vcnkgICAgICAgICAgICA6
IDE2NDU1DQpzaGFyaW5nX2ZyZWVkX21lbW9yeSAgIDogMA0Kc2hhcmluZ191c2VkX21lbW9yeSAg
ICA6IDANCm91dHN0YW5kaW5nX2NsYWltcyAgICAgOiAwDQpmcmVlX2NwdXMgICAgICAgICAgICAg
IDogMA0KeGVuX21ham9yICAgICAgICAgICAgICA6IDQNCnhlbl9taW5vciAgICAgICAgICAgICAg
OiA0DQp4ZW5fZXh0cmEgICAgICAgICAgICAgIDogLjENCnhlbl92ZXJzaW9uICAgICAgICAgICAg
OiA0LjQuMQ0KeGVuX2NhcHMgICAgICAgICAgICAgICA6IHhlbi0zLjAteDg2XzY0IHhlbi0zLjAt
eDg2XzMycCBodm0tMy4wLXg4Nl8zMiBodm0tMy4wLXg4Nl8zMnAgaHZtLTMuMC14ODZfNjQNCnhl
bl9zY2hlZHVsZXIgICAgICAgICAgOiBjcmVkaXQNCnhlbl9wYWdlc2l6ZSAgICAgICAgICAgOiA0
MDk2DQpwbGF0Zm9ybV9wYXJhbXMgICAgICAgIDogdmlydF9zdGFydD0weGZmZmY4MDAwMDAwMDAw
MDANCnhlbl9jaGFuZ2VzZXQgICAgICAgICAgOg0KeGVuX2NvbW1hbmRsaW5lICAgICAgICA6IHBs
YWNlaG9sZGVyIGRvbTBfbWVtPTEwMjRNDQpjY19jb21waWxlciAgICAgICAgICAgIDogZ2NjIChE
ZWJpYW4gNC45LjItMTApIDQuOS4yDQpjY19jb21waWxlX2J5ICAgICAgICAgIDogdWx0cm90dGVy
DQpjY19jb21waWxlX2RvbWFpbiAgICAgIDogZGViaWFuLm9yZzxodHRwOi8vZGViaWFuLm9yZz4N
CmNjX2NvbXBpbGVfZGF0ZSAgICAgICAgOiBUaHUgSnVuIDExIDE4OjI0OjE3IEVFU1QgMjAxNQ0K
eGVuZF9jb25maWdfZm9ybWF0ICAgICA6IDQNCg0KY2hyaXMNCg0K

--_000_c848c20d02a0447c9fa608e215f78e2bAMSPEX02CL03citritenet_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IlByb2dJZCIg
Y29udGVudD0iV29yZC5Eb2N1bWVudCI+DQo8bWV0YSBuYW1lPSJHZW5lcmF0b3IiIGNvbnRlbnQ9
Ik1pY3Jvc29mdCBXb3JkIDE0Ij4NCjxtZXRhIG5hbWU9Ik9yaWdpbmF0b3IiIGNvbnRlbnQ9Ik1p
Y3Jvc29mdCBXb3JkIDE0Ij4NCjxsaW5rIHJlbD0iRmlsZS1MaXN0IiBocmVmPSJjaWQ6ZmlsZWxp
c3QueG1sQDAxRDFFNjU0LkUwMERCMEQwIj48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOk9m
ZmljZURvY3VtZW50U2V0dGluZ3M+DQo8bzpBbGxvd1BORy8+DQo8bzpEb05vdFJlbHlPbkNTUy8+
DQo8L286T2ZmaWNlRG9jdW1lbnRTZXR0aW5ncz4NCjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYg
Z3RlIG1zbyA5XT48eG1sPg0KPHc6V29yZERvY3VtZW50Pg0KPHc6U3BlbGxpbmdTdGF0ZT5DbGVh
bjwvdzpTcGVsbGluZ1N0YXRlPg0KPHc6VHJhY2tNb3Zlcy8+DQo8dzpUcmFja0Zvcm1hdHRpbmcv
Pg0KPHc6RW52ZWxvcGVWaXMvPg0KPHc6VmFsaWRhdGVBZ2FpbnN0U2NoZW1hcy8+DQo8dzpTYXZl
SWZYTUxJbnZhbGlkPmZhbHNlPC93OlNhdmVJZlhNTEludmFsaWQ+DQo8dzpJZ25vcmVNaXhlZENv
bnRlbnQ+ZmFsc2U8L3c6SWdub3JlTWl4ZWRDb250ZW50Pg0KPHc6QWx3YXlzU2hvd1BsYWNlaG9s
ZGVyVGV4dD5mYWxzZTwvdzpBbHdheXNTaG93UGxhY2Vob2xkZXJUZXh0Pg0KPHc6RG9Ob3RQcm9t
b3RlUUYvPg0KPHc6TGlkVGhlbWVPdGhlcj5FTi1HQjwvdzpMaWRUaGVtZU90aGVyPg0KPHc6TGlk
VGhlbWVBc2lhbj5YLU5PTkU8L3c6TGlkVGhlbWVBc2lhbj4NCjx3OkxpZFRoZW1lQ29tcGxleFNj
cmlwdD5YLU5PTkU8L3c6TGlkVGhlbWVDb21wbGV4U2NyaXB0Pg0KPHc6Q29tcGF0aWJpbGl0eT4N
Cjx3OkRvTm90RXhwYW5kU2hpZnRSZXR1cm4vPg0KPHc6QnJlYWtXcmFwcGVkVGFibGVzLz4NCjx3
OlNwbGl0UGdCcmVha0FuZFBhcmFNYXJrLz4NCjx3OkVuYWJsZU9wZW5UeXBlS2VybmluZy8+DQo8
L3c6Q29tcGF0aWJpbGl0eT4NCjxtOm1hdGhQcj4NCjxtOm1hdGhGb250IG06dmFsPSJDYW1icmlh
IE1hdGgiLz4NCjxtOmJya0JpbiBtOnZhbD0iYmVmb3JlIi8+DQo8bTpicmtCaW5TdWIgbTp2YWw9
IiYjNDU7LSIvPg0KPG06c21hbGxGcmFjIG06dmFsPSJvZmYiLz4NCjxtOmRpc3BEZWYvPg0KPG06
bE1hcmdpbiBtOnZhbD0iMCIvPg0KPG06ck1hcmdpbiBtOnZhbD0iMCIvPg0KPG06ZGVmSmMgbTp2
YWw9ImNlbnRlckdyb3VwIi8+DQo8bTp3cmFwSW5kZW50IG06dmFsPSIxNDQwIi8+DQo8bTppbnRM
aW0gbTp2YWw9InN1YlN1cCIvPg0KPG06bmFyeUxpbSBtOnZhbD0idW5kT3ZyIi8+DQo8L206bWF0
aFByPjwvdzpXb3JkRG9jdW1lbnQ+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28g
OV0+PHhtbD4NCjx3OkxhdGVudFN0eWxlcyBEZWZMb2NrZWRTdGF0ZT0iZmFsc2UiIERlZlVuaGlk
ZVdoZW5Vc2VkPSJ0cnVlIiBEZWZTZW1pSGlkZGVuPSJ0cnVlIiBEZWZRRm9ybWF0PSJmYWxzZSIg
RGVmUHJpb3JpdHk9Ijk5IiBMYXRlbnRTdHlsZUNvdW50PSIyNjciPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJOb3JtYWwiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyAxIi8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFFGb3JtYXQ9InRydWUiIE5h
bWU9ImhlYWRpbmcgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyA0
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFFGb3JtYXQ9
InRydWUiIE5hbWU9ImhlYWRpbmcgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDYiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0i
aGVhZGluZyA3Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9Ijki
IFFGb3JtYXQ9InRydWUiIE5hbWU9ImhlYWRpbmcgOCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDkiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzkiIE5hbWU9InRvYyAx
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjM5IiBOYW1lPSJ0
b2MgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzOSIgTmFt
ZT0idG9jIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzki
IE5hbWU9InRvYyA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjM5IiBOYW1lPSJ0b2MgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9y
aXR5PSIzOSIgTmFtZT0idG9jIDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iMzkiIE5hbWU9InRvYyA3Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjM5IiBOYW1lPSJ0b2MgOCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSIzOSIgTmFtZT0idG9jIDkiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzUiIFFGb3JtYXQ9InRydWUiIE5hbWU9ImNhcHRpb24iLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMTAiIFNlbWlIaWRkZW49
ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9IlRpdGxl
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjEiIE5hbWU9IkRl
ZmF1bHQgUGFyYWdyYXBoIEZvbnQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iMTEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFG
b3JtYXQ9InRydWUiIE5hbWU9IlN1YnRpdGxlIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjIyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZh
bHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJTdHJvbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iMjAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNl
ZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9IkVtcGhhc2lzIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjU5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJUYWJsZSBHcmlkIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9j
a2VkPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJQbGFjZWhvbGRlciBUZXh0
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjEiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9Ik5v
IFNwYWNpbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjAi
IFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IFNo
YWRpbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjEiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IExpc3Qi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjIiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IEdyaWQiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjMiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDEiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDEiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDIiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjciIFNlbWlIaWRkZW49ImZhbHNlIiBV
bmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDEiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjgiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhp
ZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDIiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjkiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVX
aGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9IkRhcmsgTGlzdCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI3MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iQ29sb3JmdWwgU2hhZGluZyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iQ29sb3JmdWwgTGlzdCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI2MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIg
TmFtZT0iTGlnaHQgU2hhZGluZyBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI2MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iTGlnaHQgTGlzdCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI2MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgTmFtZT0iTGlnaHQgR3JpZCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMSBBY2NlbnQgMSIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVu
aGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMiBBY2NlbnQgMSIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NSIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3QgMSBBY2NlbnQg
MSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iUmV2aXNpb24iLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iMzQiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3Jt
YXQ9InRydWUiIE5hbWU9Ikxpc3QgUGFyYWdyYXBoIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjI5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJRdW90ZSIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzMCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iSW50ZW5zZSBRdW90ZSIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NiIgU2VtaUhpZGRlbj0iZmFsc2Ui
IFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3QgMiBBY2NlbnQgMSIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NyIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMSBBY2NlbnQg
MSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OCIgU2VtaUhp
ZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMiBB
Y2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OSIg
U2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdy
aWQgMyBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI3MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iRGFy
ayBMaXN0IEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjcxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJD
b2xvcmZ1bCBTaGFkaW5nIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjcyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNl
IiBOYW1lPSJDb2xvcmZ1bCBMaXN0IEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjczIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBHcmlkIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBTaGFkaW5nIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5o
aWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBMaXN0IEFjY2VudCAyIi8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYyIiBTZW1pSGlkZGVuPSJmYWxzZSIg
VW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBHcmlkIEFjY2VudCAyIi8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYzIiBTZW1pSGlkZGVuPSJmYWxz
ZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAxIEFjY2VudCAy
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY0IiBTZW1pSGlk
ZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAy
IEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY1
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0g
TGlzdCAxIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjY2IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJN
ZWRpdW0gTGlzdCAyIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjY3IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBO
YW1lPSJNZWRpdW0gR3JpZCAxIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjY4IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZh
bHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAyIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9j
a2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVz
ZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAzIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJEYXJrIExpc3QgQWNjZW50IDIiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhp
ZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIFNoYWRpbmcgQWNjZW50IDIiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzIiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIExpc3QgQWNjZW50IDIi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzMiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIEdyaWQgQWNj
ZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjAiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IFNoYWRp
bmcgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NjEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0
IExpc3QgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNjIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ikxp
Z2h0IEdyaWQgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNjMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9
Ik1lZGl1bSBTaGFkaW5nIDEgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFs
c2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDEgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhp
ZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDIgQWNjZW50IDMiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjciIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDEgQWNjZW50IDMiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjgiIFNlbWlIaWRkZW49
ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDIgQWNjZW50
IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjkiIFNlbWlI
aWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDMg
QWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzAi
IFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkRhcmsgTGlz
dCBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3
MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3Jm
dWwgU2hhZGluZyBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFBy
aW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFt
ZT0iQ29sb3JmdWwgTGlzdCBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI2MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgTmFtZT0iTGlnaHQgU2hhZGluZyBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdo
ZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQgTGlzdCBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQgR3JpZCBBY2NlbnQgNCIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVu
aGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMSBBY2NlbnQgNCIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NCIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMiBBY2Nl
bnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NSIgU2Vt
aUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3Qg
MSBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2
NiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVt
IExpc3QgMiBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9y
aXR5PSI2NyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0i
TWVkaXVtIEdyaWQgMSBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI2OCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIg
TmFtZT0iTWVkaXVtIEdyaWQgMiBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI2OSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMyBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgTmFtZT0iRGFyayBMaXN0IEFjY2VudCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBTaGFkaW5nIEFjY2VudCA0Ii8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcyIiBTZW1pSGlkZGVuPSJmYWxzZSIg
VW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBMaXN0IEFjY2VudCA0Ii8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjczIiBTZW1pSGlkZGVuPSJm
YWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBHcmlkIEFjY2VudCA0
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYwIiBTZW1pSGlk
ZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBTaGFkaW5nIEFj
Y2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYxIiBT
ZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBMaXN0
IEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYy
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBH
cmlkIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjYzIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRp
dW0gU2hhZGluZyAxIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjY0IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBO
YW1lPSJNZWRpdW0gU2hhZGluZyAyIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjY1IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAxIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY2IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAyIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY3IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5o
aWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAxIEFjY2VudCA1Ii8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY4IiBTZW1pSGlkZGVuPSJmYWxz
ZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAyIEFjY2VudCA1Ii8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY5IiBTZW1pSGlkZGVu
PSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAzIEFjY2Vu
dCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcwIiBTZW1p
SGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJEYXJrIExpc3QgQWNj
ZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzEiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIFNo
YWRpbmcgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNzIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNv
bG9yZnVsIExpc3QgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iNzMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5h
bWU9IkNvbG9yZnVsIEdyaWQgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNjAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFs
c2UiIE5hbWU9IkxpZ2h0IFNoYWRpbmcgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNl
ZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IExpc3QgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IEdyaWQgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVX
aGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDEgQWNjZW50IDYiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIgQWNjZW50IDYi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDEgQWNj
ZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0
IDIgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NjciIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1
bSBHcmlkIDEgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNjgiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9
Ik1lZGl1bSBHcmlkIDIgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBQcmlvcml0eT0iNjkiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2Ui
IE5hbWU9Ik1lZGl1bSBHcmlkIDMgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9
ImZhbHNlIiBQcmlvcml0eT0iNzAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0i
ZmFsc2UiIE5hbWU9IkRhcmsgTGlzdCBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI3MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgU2hhZGluZyBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgTGlzdCBBY2NlbnQgNiIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRlbj0iZmFsc2Ui
IFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCBBY2NlbnQgNiIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIxOSIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iU3VidGxl
IEVtcGhhc2lzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjIx
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVl
IiBOYW1lPSJJbnRlbnNlIEVtcGhhc2lzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjMxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNl
IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJTdWJ0bGUgUmVmZXJlbmNlIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjMyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJJbnRlbnNlIFJlZmVyZW5jZSIv
Pg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzMyIgU2VtaUhpZGRl
bj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iQm9v
ayBUaXRsZSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzNyIg
TmFtZT0iQmlibGlvZ3JhcGh5Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJp
b3JpdHk9IjM5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJUT0MgSGVhZGluZyIvPg0KPC93OkxhdGVu
dFN0eWxlcz4NCjwveG1sPjwhW2VuZGlmXS0tPjxzdHlsZT48IS0tDQovKiBGb250IERlZmluaXRp
b25zICovDQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OldpbmdkaW5nczsNCglwYW5vc2UtMTo1
IDAgMCAwIDAgMCAwIDAgMCAwOw0KCW1zby1mb250LWNoYXJzZXQ6MjsNCgltc28tZ2VuZXJpYy1m
b250LWZhbWlseTphdXRvOw0KCW1zby1mb250LXBpdGNoOnZhcmlhYmxlOw0KCW1zby1mb250LXNp
Z25hdHVyZTowIDI2ODQzNTQ1NiAwIDAgLTIxNDc0ODM2NDggMDt9DQpAZm9udC1mYWNlDQoJe2Zv
bnQtZmFtaWx5OldpbmdkaW5nczsNCglwYW5vc2UtMTo1IDAgMCAwIDAgMCAwIDAgMCAwOw0KCW1z
by1mb250LWNoYXJzZXQ6MjsNCgltc28tZ2VuZXJpYy1mb250LWZhbWlseTphdXRvOw0KCW1zby1m
b250LXBpdGNoOnZhcmlhYmxlOw0KCW1zby1mb250LXNpZ25hdHVyZTowIDI2ODQzNTQ1NiAwIDAg
LTIxNDc0ODM2NDggMDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFu
b3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAyIDQ7DQoJbXNvLWZvbnQtYWx0OiJDZW50dXJ5IEdvdGhp
YyI7DQoJbXNvLWZvbnQtY2hhcnNldDowOw0KCW1zby1nZW5lcmljLWZvbnQtZmFtaWx5OnN3aXNz
Ow0KCW1zby1mb250LXBpdGNoOnZhcmlhYmxlOw0KCW1zby1mb250LXNpZ25hdHVyZTotNTM2ODcw
MTQ1IDEwNzM3ODYxMTEgMSAwIDQxNSAwO30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6VGFo
b21hOw0KCXBhbm9zZS0xOjIgMTEgNiA0IDMgNSA0IDQgMiA0Ow0KCW1zby1mb250LWNoYXJzZXQ6
MDsNCgltc28tZ2VuZXJpYy1mb250LWZhbWlseTpzd2lzczsNCgltc28tZm9udC1waXRjaDp2YXJp
YWJsZTsNCgltc28tZm9udC1zaWduYXR1cmU6LTUyMDA4MTY2NSAtMTA3MzcxNzE1NyA0MSAwIDY2
MDQ3IDA7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3Jt
YWwsIGRpdi5Nc29Ob3JtYWwNCgl7bXNvLXN0eWxlLXVuaGlkZTpubzsNCgltc28tc3R5bGUtcWZv
cm1hdDp5ZXM7DQoJbXNvLXN0eWxlLXBhcmVudDoiIjsNCgltYXJnaW46MGNtOw0KCW1hcmdpbi1i
b3R0b206LjAwMDFwdDsNCgltc28tcGFnaW5hdGlvbjp3aWRvdy1vcnBoYW47DQoJZm9udC1zaXpl
OjEyLjBwdDsNCglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIiwic2VyaWYiOw0KCW1zby1m
YXJlYXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7fQ0KYTpsaW5rLCBzcGFuLk1zb0h5cGVybGluaw0K
CXttc28tc3R5bGUtbm9zaG93OnllczsNCgltc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6
Ymx1ZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOw0KCXRleHQtdW5kZXJsaW5lOnNpbmds
ZTt9DQphOnZpc2l0ZWQsIHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQNCgl7bXNvLXN0eWxlLW5v
c2hvdzp5ZXM7DQoJbXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOnB1cnBsZTsNCgl0ZXh0
LWRlY29yYXRpb246dW5kZXJsaW5lOw0KCXRleHQtdW5kZXJsaW5lOnNpbmdsZTt9DQpwLk1zb0Fj
ZXRhdGUsIGxpLk1zb0FjZXRhdGUsIGRpdi5Nc29BY2V0YXRlDQoJe21zby1zdHlsZS1ub3Nob3c6
eWVzOw0KCW1zby1zdHlsZS1wcmlvcml0eTo5OTsNCgltc28tc3R5bGUtbGluazoiQmFsbG9vbiBU
ZXh0IENoYXIiOw0KCW1hcmdpbjowY207DQoJbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0KCW1zby1w
YWdpbmF0aW9uOndpZG93LW9ycGhhbjsNCglmb250LXNpemU6OC4wcHQ7DQoJZm9udC1mYW1pbHk6
IlRhaG9tYSIsInNhbnMtc2VyaWYiOw0KCW1zby1mYXJlYXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7
fQ0KcC5Nc29MaXN0UGFyYWdyYXBoLCBsaS5Nc29MaXN0UGFyYWdyYXBoLCBkaXYuTXNvTGlzdFBh
cmFncmFwaA0KCXttc28tc3R5bGUtcHJpb3JpdHk6MzQ7DQoJbXNvLXN0eWxlLXVuaGlkZTpubzsN
Cgltc28tc3R5bGUtcWZvcm1hdDp5ZXM7DQoJbWFyZ2luLXRvcDowY207DQoJbWFyZ2luLXJpZ2h0
OjBjbTsNCgltYXJnaW4tYm90dG9tOjBjbTsNCgltYXJnaW4tbGVmdDozNi4wcHQ7DQoJbWFyZ2lu
LWJvdHRvbTouMDAwMXB0Ow0KCW1zby1wYWdpbmF0aW9uOndpZG93LW9ycGhhbjsNCglmb250LXNp
emU6MTIuMHB0Ow0KCWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iLCJzZXJpZiI7DQoJbXNv
LWZhcmVhc3QtZm9udC1mYW1pbHk6Q2FsaWJyaTt9DQpzcGFuLkVtYWlsU3R5bGUxNw0KCXttc28t
c3R5bGUtdHlwZTpwZXJzb25hbC1yZXBseTsNCgltc28tc3R5bGUtbm9zaG93OnllczsNCgltc28t
c3R5bGUtdW5oaWRlOm5vOw0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMS4wcHQ7DQoJbXNvLWJpZGkt
Zm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMtc2VyaWYiOw0K
CW1zby1hc2NpaS1mb250LWZhbWlseTpDYWxpYnJpOw0KCW1zby1mYXJlYXN0LWZvbnQtZmFtaWx5
OkNhbGlicmk7DQoJbXNvLWhhbnNpLWZvbnQtZmFtaWx5OkNhbGlicmk7DQoJbXNvLWJpZGktZm9u
dC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiI7DQoJY29sb3I6IzFGNDk3RDt9DQpzcGFuLkJhbGxv
b25UZXh0Q2hhcg0KCXttc28tc3R5bGUtbmFtZToiQmFsbG9vbiBUZXh0IENoYXIiOw0KCW1zby1z
dHlsZS1ub3Nob3c6eWVzOw0KCW1zby1zdHlsZS1wcmlvcml0eTo5OTsNCgltc28tc3R5bGUtdW5o
aWRlOm5vOw0KCW1zby1zdHlsZS1sb2NrZWQ6eWVzOw0KCW1zby1zdHlsZS1saW5rOiJCYWxsb29u
IFRleHQiOw0KCW1zby1hbnNpLWZvbnQtc2l6ZTo4LjBwdDsNCgltc28tYmlkaS1mb250LXNpemU6
OC4wcHQ7DQoJZm9udC1mYW1pbHk6IlRhaG9tYSIsInNhbnMtc2VyaWYiOw0KCW1zby1hc2NpaS1m
b250LWZhbWlseTpUYWhvbWE7DQoJbXNvLWhhbnNpLWZvbnQtZmFtaWx5OlRhaG9tYTsNCgltc28t
YmlkaS1mb250LWZhbWlseTpUYWhvbWE7DQoJbXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tR0I7fQ0K
c3Bhbi5TcGVsbEUNCgl7bXNvLXN0eWxlLW5hbWU6IiI7DQoJbXNvLXNwbC1lOnllczt9DQouTXNv
Q2hwRGVmYXVsdA0KCXttc28tc3R5bGUtdHlwZTpleHBvcnQtb25seTsNCgltc28tZGVmYXVsdC1w
cm9wczp5ZXM7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLCJzYW5zLXNlcmlmIjsNCgltc28tYXNj
aWktZm9udC1mYW1pbHk6Q2FsaWJyaTsNCgltc28tZmFyZWFzdC1mb250LWZhbWlseTpDYWxpYnJp
Ow0KCW1zby1oYW5zaS1mb250LWZhbWlseTpDYWxpYnJpOw0KCW1zby1iaWRpLWZvbnQtZmFtaWx5
OiJUaW1lcyBOZXcgUm9tYW4iOw0KCW1zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTO30NCkBwYWdl
IFdvcmRTZWN0aW9uMQ0KCXtzaXplOjYxMi4wcHQgNzkyLjBwdDsNCgltYXJnaW46NzIuMHB0IDcy
LjBwdCA3Mi4wcHQgNzIuMHB0Ow0KCW1zby1oZWFkZXItbWFyZ2luOjM2LjBwdDsNCgltc28tZm9v
dGVyLW1hcmdpbjozNi4wcHQ7DQoJbXNvLXBhcGVyLXNvdXJjZTowO30NCmRpdi5Xb3JkU2VjdGlv
bjENCgl7cGFnZTpXb3JkU2VjdGlvbjE7fQ0KLyogTGlzdCBEZWZpbml0aW9ucyAqLw0KQGxpc3Qg
bDANCgl7bXNvLWxpc3QtaWQ6MTk1Mjg1MzQ2MDsNCgltc28tbGlzdC10eXBlOmh5YnJpZDsNCglt
c28tbGlzdC10ZW1wbGF0ZS1pZHM6LTE5OTA2OTc1NDIgOTU1Njg2MjE4IDEzNDgwNzU1NSAxMzQ4
MDc1NTcgMTM0ODA3NTUzIDEzNDgwNzU1NSAxMzQ4MDc1NTcgMTM0ODA3NTUzIDEzNDgwNzU1NSAx
MzQ4MDc1NTc7fQ0KQGxpc3QgbDA6bGV2ZWwxDQoJe21zby1sZXZlbC1zdGFydC1hdDowOw0KCW1z
by1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDotOw0KCW1zby1s
ZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0
ZXh0LWluZGVudDotMTguMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIiwic2Fucy1zZXJpZiI7
DQoJbXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6Q2FsaWJyaTsNCgltc28tYmlkaS1mb250LWZhbWls
eToiVGltZXMgTmV3IFJvbWFuIjt9DQpAbGlzdCBsMDpsZXZlbDINCgl7bXNvLWxldmVsLW51bWJl
ci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Om87DQoJbXNvLWxldmVsLXRhYi1zdG9w
Om5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0x
OC4wcHQ7DQoJZm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Ijt9DQpAbGlzdCBsMDpsZXZlbDMNCgl7
bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CpzsNCglt
c28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7
DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7fQ0KQGxpc3Qg
bDA6bGV2ZWw0DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwt
dGV4dDrvgrc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1w
b3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJZm9udC1mYW1pbHk6U3ltYm9s
O30NCkBsaXN0IGwwOmxldmVsNQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJ
bXNvLWxldmVsLXRleHQ6bzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwt
bnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCglmb250LWZhbWls
eToiQ291cmllciBOZXciO30NCkBsaXN0IGwwOmxldmVsNg0KCXttc28tbGV2ZWwtbnVtYmVyLWZv
cm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10YWItc3RvcDpu
b25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTgu
MHB0Ow0KCWZvbnQtZmFtaWx5OldpbmdkaW5nczt9DQpAbGlzdCBsMDpsZXZlbDcNCgl7bXNvLWxl
dmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2
ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4
dC1pbmRlbnQ6LTE4LjBwdDsNCglmb250LWZhbWlseTpTeW1ib2w7fQ0KQGxpc3QgbDA6bGV2ZWw4
DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDpvOw0K
CW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVm
dDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCWZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyI7fQ0K
QGxpc3QgbDA6bGV2ZWw5DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28t
bGV2ZWwtdGV4dDrvgqc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51
bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJZm9udC1mYW1pbHk6
V2luZ2RpbmdzO30NCm9sDQoJe21hcmdpbi1ib3R0b206MGNtO30NCnVsDQoJe21hcmdpbi1ib3R0
b206MGNtO30NCi0tPjwvc3R5bGU+PCEtLVtpZiBndGUgbXNvIDEwXT48c3R5bGU+LyogU3R5bGUg
RGVmaW5pdGlvbnMgKi8NCnRhYmxlLk1zb05vcm1hbFRhYmxlDQoJe21zby1zdHlsZS1uYW1lOiJU
YWJsZSBOb3JtYWwiOw0KCW1zby10c3R5bGUtcm93YmFuZC1zaXplOjA7DQoJbXNvLXRzdHlsZS1j
b2xiYW5kLXNpemU6MDsNCgltc28tc3R5bGUtbm9zaG93OnllczsNCgltc28tc3R5bGUtcHJpb3Jp
dHk6OTk7DQoJbXNvLXN0eWxlLXBhcmVudDoiIjsNCgltc28tcGFkZGluZy1hbHQ6MGNtIDUuNHB0
IDBjbSA1LjRwdDsNCgltc28tcGFyYS1tYXJnaW46MGNtOw0KCW1zby1wYXJhLW1hcmdpbi1ib3R0
b206LjAwMDFwdDsNCgltc28tcGFnaW5hdGlvbjp3aWRvdy1vcnBoYW47DQoJZm9udC1zaXplOjEx
LjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMtc2VyaWYiOw0KCW1zby1hc2NpaS1m
b250LWZhbWlseTpDYWxpYnJpOw0KCW1zby1oYW5zaS1mb250LWZhbWlseTpDYWxpYnJpOw0KCW1z
by1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTO30NCjwvc3R5bGU+PCFbZW5kaWZdLS0+PCEtLVtpZiBn
dGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWRlZmF1bHRzIHY6ZXh0PSJlZGl0IiBzcGlkbWF4PSIx
MDI2IiAvPg0KPC94bWw+PCFbZW5kaWZdLS0+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpz
aGFwZWxheW91dCB2OmV4dD0iZWRpdCI+DQo8bzppZG1hcCB2OmV4dD0iZWRpdCIgZGF0YT0iMSIg
Lz4NCjwvbzpzaGFwZWxheW91dD48L3htbD48IVtlbmRpZl0tLT4NCjwvaGVhZD4NCjxib2R5IGxh
bmc9IkVOLUdCIiBsaW5rPSJibHVlIiB2bGluaz0icHVycGxlIiBzdHlsZT0idGFiLWludGVydmFs
OjM2LjBwdCI+DQo8ZGl2IGNsYXNzPSJXb3JkU2VjdGlvbjEiPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1
b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tYmlkaS1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcg
Um9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RCI+VGhlcmXigJlzIGEgbXVsdGl0dWRlIG9mIHJlYXNv
bnMgd2h5IHlvdXIgVk0gbWF5IG5vdCBiZSBib290aW5nIGFmdGVyIG1lc3NpbmcNCiB3aXRoIHRo
ZSA8c3BhbiBjbGFzcz0iU3BlbGxFIj5jb25maWc8L3NwYW4+LiBZb3UgaGF2ZW7igJl0IGFjdHVh
bGx5IHNhaWQgaG93IGl0IGlzIGZhaWxpbmcgYnV0LCBzaW5jZSB5b3UgZG8gaGF2ZQ0KPHNwYW4g
Y2xhc3M9IlNwZWxsRSI+dGVzdHNpZ25pbmc8L3NwYW4+IGVuYWJsZWQsIG15IG5leHQgZ3Vlc3Mg
aXMgdGhhdCB5b3UgYXJlIGdldHRpbmcgYSAweDdCIGJsdWUgc2NyZWVuIGF0IGJvb3QgdGltZS4g
SWYgc28sIHRoaXMgaXMgYmVjYXVzZSB0aGUgWEVORklMVCBmaWx0ZXIgZHJpdmVyIGlzIHN0aWxs
IGluc3RhbGxlZCBhbmQgaXMgaW5zdHJ1Y3RpbmcgUUVNVSB0byB1bnBsdWcgZW11bGF0ZWQgZGV2
aWNlcyBhdCBib290IHRpbWUuPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJp
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7
VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPlRvIHN0b3AgaXQgZnJvbSBkb2lu
ZyB0aGlzIHlvdSBoYXZlIGEgY291cGxlIG9mIG9wdGlvbnM6PG86cD48L286cD48L3NwYW4+PC9m
b250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0
OTdkIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZh
bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWJpZGkt
Zm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxv
OnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFn
cmFwaCIgc3R5bGU9InRleHQtaW5kZW50Oi0xOC4wcHQ7bXNvLWxpc3Q6bDAgbGV2ZWwxIGxmbzEi
PjwhW2lmICFzdXBwb3J0TGlzdHNdPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNl
PSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWZhcmVhc3QtZm9udC1m
YW1pbHk6Q2FsaWJyaTttc28tYmlkaS1mb250LWZhbWlseTpDYWxpYnJpO2NvbG9yOiMxRjQ5N0Qi
PjxzcGFuIHN0eWxlPSJtc28tbGlzdDpJZ25vcmUiPi08Zm9udCBzaXplPSIxIiBmYWNlPSJUaW1l
cyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250OjcuMHB0ICZxdW90O1RpbWVzIE5ldyBSb21h
biZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7DQo8L3NwYW4+PC9mb250Pjwvc3Bhbj48L3NwYW4+PC9mb250PjwhW2VuZGlmXT48Zm9u
dCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5z
LXNlcmlmJnF1b3Q7O21zby1iaWRpLWZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZx
dW90Oztjb2xvcjojMUY0OTdEIj5GaW5kIGFsbCB0aGUgaW5zdGFuY2VzIG9mDQo8c3BhbiBjbGFz
cz0iU3BlbGxFIj5VcHBlckZpbHRlcnM8L3NwYW4+IHdoZXJlIFhFTkZJTFQgaXMgc3BlY2lmaWVk
ICh1bmRlciBIS0xNL1N5c3RlbS88c3BhbiBjbGFzcz0iU3BlbGxFIj5DdXJyZW50Q29udHJvbHNl
dDwvc3Bhbj4vQ29udHJvbC9DbGFzcykgYW5kIHJlbW92ZSB0aGVtLjxvOnA+PC9vOnA+PC9zcGFu
PjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCIgc3R5bGU9InRleHQtaW5k
ZW50Oi0xOC4wcHQ7bXNvLWxpc3Q6bDAgbGV2ZWwxIGxmbzEiPjwhW2lmICFzdXBwb3J0TGlzdHNd
Pjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90
O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6Q2FsaWJyaTttc28tYmlk
aS1mb250LWZhbWlseTpDYWxpYnJpO2NvbG9yOiMxRjQ5N0QiPjxzcGFuIHN0eWxlPSJtc28tbGlz
dDpJZ25vcmUiPi08Zm9udCBzaXplPSIxIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0
eWxlPSJmb250OjcuMHB0ICZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OyI+Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PC9mb250
Pjwvc3Bhbj48L3NwYW4+PC9mb250PjwhW2VuZGlmXT48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFm
NDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1iaWRp
LWZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90Oztjb2xvcjojMUY0OTdEIj5M
b29rIHVuZGVyIEhLTE0vU3lzdGVtLzxzcGFuIGNsYXNzPSJTcGVsbEUiPkN1cnJlbnRDb250cm9s
U2V0PC9zcGFuPi9TZXJ2aWNlcy9YRU4vVW5wbHVnDQogYW5kIHJlbW92ZSBhbnkgRElTS1MgdmFs
dWUgeW91IG1heSBmaW5kIHRoZXJlLjxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2Fs
aWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1iaWRpLWZvbnQtZmFtaWx5OiZx
dW90O1RpbWVzIE5ldyBSb21hbiZxdW90Oztjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpw
Pjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIg
Y29sb3I9IiMxZjQ5N2QiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90
Ozttc28tYmlkaS1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7Y29sb3I6
IzFGNDk3RCI+T25jZSB5b3UgaGF2ZSBkb25lIG9uZSBvciBib3RoIG9mIHRoZXNlIHlvdSBzaG91
bGQgYmUgYWJsZSB0byByZWJvb3QgeW91cg0KIFZNIGFuZCBlbXVsYXRlZCBkZXZpY2VzIHdpbGwg
c3RheSBwbHVnZ2VkLjxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90
OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1iaWRpLWZvbnQtZmFtaWx5OiZxdW90O1RpbWVz
IE5ldyBSb21hbiZxdW90Oztjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48
L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMx
ZjQ5N2QiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tYmlk
aS1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RCI+
VGhlIFBWIGRyaXZlcnMgbG9nIHRvIFFFTVUsIGlmIHlvdSBhcmUgcnVubmluZyBxZW11DQo8c3Bh
biBjbGFzcz0iU3BlbGxFIj50cmFkPC9zcGFuPiwgeW91IHNob3VsZCBzZWUgb3V0cHV0IGluIHRo
ZSBxZW11IGxvZyBmaWxlLiBJZiB5b3UgYXJlIHJ1bm5pbmcgdXBzdHJlYW0gUUVNVSB5b3XigJls
bCBuZWVkIHRvIGVuYWJsZSB0aGUNCjxzcGFuIGNsYXNzPSJTcGVsbEUiPnhlbl9wbGF0Zm9ybV9s
b2c8L3NwYW4+IGV2ZW50IGJlZm9yZSB5b3UgZ2V0IGFueSBsb2dnaW5nLjxvOnA+PC9vOnA+PC9z
cGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xv
cj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7
Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21z
by1iaWRpLWZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90Oztjb2xvcjojMUY0
OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9IkNhbGlicmkiPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss
JnF1b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tYmlkaS1mb250LWZhbWlseTomcXVvdDtUaW1lcyBO
ZXcgUm9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RCI+PHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjp5
ZXMiPiZuYnNwOw0KPC9zcGFuPlBhdWw8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9IkNh
bGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tYmlkaS1mb250LWZhbWlseTom
cXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286
cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIi
IGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVv
dDs7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9y
OiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8ZGl2IHN0eWxl
PSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCBibHVlIDEuNXB0O3BhZGRpbmc6MGNtIDBj
bSAwY20gNC4wcHQiPg0KPGRpdj4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci10b3A6
c29saWQgI0I1QzRERiAxLjBwdDtwYWRkaW5nOjMuMHB0IDBjbSAwY20gMGNtIj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxiPjxmb250IHNpemU9IjIiIGZhY2U9IlRhaG9tYSI+PHNwYW4gbGFuZz0i
RU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O1RhaG9tYSZx
dW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1mYXJlYXN0LWZvbnQtZmFtaWx5OiZxdW90
O1RpbWVzIE5ldyBSb21hbiZxdW90Ozttc28tYW5zaS1sYW5ndWFnZTpFTi1VUztmb250LXdlaWdo
dDpib2xkIj5Gcm9tOjwvc3Bhbj48L2ZvbnQ+PC9iPjxmb250IHNpemU9IjIiIGZhY2U9IlRhaG9t
YSI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O1RhaG9tYSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1mYXJlYXN0LWZv
bnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90Ozttc28tYW5zaS1sYW5ndWFnZTpF
Ti1VUyI+DQogY2hyaXMgW21haWx0bzp0a25jaHJpc0BnbWFpbC5jb21dIDxicj4NCjxiPjxzcGFu
IHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5TZW50Ojwvc3Bhbj48L2I+IDI0IEp1bHkgMjAxNiAw
NDozOTxicj4NCjxiPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5Ubzo8L3NwYW4+PC9i
PiBQYXVsIER1cnJhbnQ8YnI+DQo8Yj48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+Q2M6
PC9zcGFuPjwvYj4gd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnPGJyPg0KPGI+PHNw
YW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPlN1YmplY3Q6PC9zcGFuPjwvYj4gUmU6IFt3aW4t
cHYtZGV2ZWxdIFdpbi1wdiBkcml2ZXIgaW5zdGFsbCBzdWNjZXNzIGZhaWxzIHRvIGJvb3Q8bzpw
PjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMi4wcHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3
IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+T0suIEkgY2hhbmdlZCB0aGUg
Y29uZmlnIGJhY2sgYW5kIGkgc3RpbGwgY2FudCBib290LiBJIGRpZCBoYXZlIHRlc3RzaWduaW5n
IGVuYWJsZWQgYW5kIHJlYm9vdGVkIHR3aWNlIGJlZm9yZSBhdHRlbXB0aW5nIHRvIGluc3RhbGwg
dGhlIGRyaXZlcnMuJm5ic3A7PGJyPg0KPGJyPg0KQW55IGlkZWEgd2h5IHdpbmRvd3MgY2FudCBi
b290PyBJIGZvbGxvd2VkIHRoZSBpbnN0cnVjdGlvbnMgdG8gdGhlIGxldHRlciBzbyBJIGFtIHRy
eWluZyB0byB1bmRlcnN0YW5kIHdoeSBpdHMgbm90IHdvcmtpbmcuPG86cD48L286cD48L3NwYW4+
PC9mb250PjwvcD4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBm
YWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij48bzpw
PiZuYnNwOzwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjEyLjBwdCI+QWxzbywgZXZlbiB0aG91Z2ggSSBjb3VsZCByZWluc3Rh
bGwgSSdkIGxpa2UgdG8gd29yayB0aHJvdWdoIGdldHRpbmcgdGhlIGRyaXZlcnMgZGlzYWJsZWQg
LyB1bmluc3RhbGxlZCBhbmQgZ2V0IHRoaW5ncyBib290aW5nIGFnYWluIHNvIEkgYW0gZmFtaWxp
YXIgd2l0aCB0aGlzIHByb2Nlc3MuDQogSSBkb24ndCByZWFsbHkgdGhpbmsgaXRzIHdpc2UgdG8g
anVzdCByZWluc3RhbGwgdGhlbiBkb3duIHRoZSBsaW5lIGRlcGxveSB0aGlzIGludG8gcHJvZHVj
dGlvbiBhbmQgaGF2ZSBzb21ldGhpbmcgbGlrZSB0aGlzIGhhcHBlbiBhbmQgbm90IGhhdmUgYW55
IHNvbHV0aW9uIG90aGVyIHRoYW4gcmVpbnN0YWxsaW5nLjxvOnA+PC9vOnA+PC9zcGFuPjwvZm9u
dD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIz
IiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij48
bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+SSBoYXZlIHRyaWVkOjxvOnA+PC9vOnA+PC9zcGFu
PjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBz
aXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIu
MHB0Ij4tIHRyaWVkIGJvb3RpbmcgaW4gc2FmZSBtb2RlJm5ic3A7PG86cD48L286cD48L3NwYW4+
PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNp
emU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4w
cHQiPi0gdHJpZWQgc3RhcnR1cCByZXBhaXI8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0K
PC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0i
VGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+LSB0cmllZCBi
b290aW5nIGludG8gYSBjb21tYW5kIHByb21wdCBhbmQgdHJpZWQgcmVuYW1pbmcgYWxsIHRoZSB4
ZW4qLnN5cyBmaWxlcyBpbiBjOlx3aW5kb3dzXHN5c3RlbTMyXGRyaXZlcnNcPG86cD48L286cD48
L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxm
b250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMi4wcHQiPi0gdHJpZWQgYm9vdGluZyBpbnRvIGNvbW1hbmQgcHJvbXB0IGFuZCBkb2luZyBi
b290cmVjIC9maXhib290LCBib290cmVjIC9maXhtYnIsIGJvb3RyZWMgL3JlYnVpbGRiY2Q8bzpw
PjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjEyLjBwdCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwv
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRp
bWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjxvOnA+Jm5ic3A7
PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTIuMHB0Ij5XaGF0cyB0aGUgcHJvY2VzcyB0byByZXZlcnNlIHRoZSBpbnN0YWxs
YXRpb24gYW5kIGdldCB3aW5kb3dzIHRvIGJvb3Q/PG86cD48L286cD48L3NwYW4+PC9mb250Pjwv
cD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZh
Y2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjxvOnA+
Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTIuMHB0Ij5UaGFua3MhPG86cD48L286cD48L3NwYW4+PC9mb250Pjwv
cD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZh
Y2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPmNocmlz
PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9m
b250PjwvcD4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNl
PSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5PbiBGcmks
IEp1bCAyMiwgMjAxNiBhdCA0OjQ1IEFNLCBQYXVsIER1cnJhbnQgJmx0OzxhIGhyZWY9Im1haWx0
bzpQYXVsLkR1cnJhbnRAY2l0cml4LmNvbSIgdGFyZ2V0PSJfYmxhbmsiPlBhdWwuRHVycmFudEBj
aXRyaXguY29tPC9hPiZndDsgd3JvdGU6PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxk
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFs
dDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Zm9udCBzaXplPSIyIiBjb2xvcj0i
IzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9y
OiMxRjQ5N0QiPkhpIENocmlzLDwvc3Bhbj48L2ZvbnQ+PG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1i
b3R0b20tYWx0OmF1dG8iPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxp
YnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp
YnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9z
cGFuPjwvZm9udD48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJt
c28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGZvbnQg
c2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1z
ZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4mbmJzcDsgRG9u4oCZdCBtZXNzIHdpdGggdGhlIGRp
c2sgYW5kIG5ldHdvcmsgbGluZXMgaW4geW91cg0KIGNvbmZpZy4gWW91IHN0aWxsIG5lZWQgZW11
bGF0ZWQgZGlzayB0byBib290IFdpbmRvd3MgYXMgdGhlIGZpcm13YXJlIChTZWFCSU9TIG9yIFJP
TUJJT1MpIGRvZXMgbm90IGhhdmUgUFYgZnJvbnRlbmRzLiBPbmNlIFdpbmRvd3Mgc3RhcnRzIGFu
ZCB0aGUgUFYgZHJpdmVycyBsb2FkIHRoZXkgd2lsbCBpbnN0cnVjdCBRRU1VIHRvIHVucGx1ZyB0
aGUgZW11bGF0ZWQgZGV2aWNlcyBzbyB0aGF0IHRoZSBQViBkZXZpY2VzIGNhbiB0YWtlIHRoZWly
IHBsYWNlLjwvc3Bhbj48L2ZvbnQ+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
IiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1
dG8iPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZx
dW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjwvZm9udD48
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRv
cC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGZvbnQgc2l6ZT0iMiIgY29s
b3I9IiMxZjQ5N2QiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztj
b2xvcjojMUY0OTdEIj4mbmJzcDsgQXMgZm9yIHJlY292ZXJpbmcsIGl04oCZcyBwcm9iYWJseSBn
b2luZyB0byBiZSB0cmlja3kuDQogU2luY2UgeW91IHdlcmUgZG9pbmcgYSBmcmVzaCBpbnN0YWxs
IGl04oCZcyBwcm9iYWJseSBxdWlja2VyIHRvIHN0YXJ0IGFnYWluLiBUaGUgb3RoZXIgdGhpbmcg
dG8gZG8gKjxiPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5iZWZvcmU8L3NwYW4+PC9i
PiogeW91IGluc3RhbGwgUFYgZHJpdmVycyAoYW5kIEkgc3VzcGVjdCB0aGlzIGlzIHRoZSByb290
IG9mIHlvdXIgcHJvYmxlbSkgaXMgdG8gZW5hYmxlIHRlc3Qgc2lnbmVkIGRyaXZlcnMNCiBpbiBX
aW5kb3dzLiBXaW5kb3dzIDEwIChldmVuIDMyLWJpdCkgd2lsbCBub3QgbG9hZCB0ZXN0IHNpZ25l
ZCBkcml2ZXJzIHVubGVzcyB5b3UgaGF2ZSBkb25lOjwvc3Bhbj48L2ZvbnQ+PG86cD48L286cD48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87
bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdk
IiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3
RCI+Jm5ic3A7PC9zcGFuPjwvZm9udD48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6
YXV0byI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9IkNhbGlicmkiPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss
JnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj5iY2RlZGl0IC9zZXQgdGVzdHNp
Z25pbmcgb248L3NwYW4+PC9mb250PjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDph
dXRvIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oywm
cXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48L2ZvbnQ+
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10
b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxmb250IHNpemU9IjIiIGNv
bG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7
Y29sb3I6IzFGNDk3RCI+Jm5ic3A7IEhvcGUgdGhhdCBoZWxwcyw8L3NwYW4+PC9mb250PjxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFs
dDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Zm9udCBzaXplPSIyIiBjb2xvcj0i
IzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9y
OiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48L2ZvbnQ+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0
b20tYWx0OmF1dG8iPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJp
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7IFBhdWw8
L3NwYW4+PC9mb250PjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9
Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Zm9u
dCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5z
LXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48L2ZvbnQ+PG86cD48L286
cD48L3A+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCBibHVlIDEu
NXB0O3BhZGRpbmc6MGNtIDBjbSAwY20gNC4wcHQiPg0KPGRpdj4NCjxkaXYgc3R5bGU9ImJvcmRl
cjpub25lO2JvcmRlci10b3A6c29saWQgI0I1QzRERiAxLjBwdDtwYWRkaW5nOjMuMHB0IDBjbSAw
Y20gMGNtIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6
YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzttc28tb3V0bGluZS1sZXZlbDoxIj4NCjxi
Pjxmb250IHNpemU9IjIiIGZhY2U9IlRhaG9tYSI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJm
b250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O1RhaG9tYSZxdW90OywmcXVvdDtzYW5z
LXNlcmlmJnF1b3Q7O21zby1hbnNpLWxhbmd1YWdlOkVOLVVTO2ZvbnQtd2VpZ2h0OmJvbGQiPkZy
b206PC9zcGFuPjwvZm9udD48L2I+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iVGFob21hIj48c3BhbiBs
YW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7VGFo
b21hJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWFuc2ktbGFuZ3VhZ2U6RU4tVVMi
Pg0KIHdpbi1wdi1kZXZlbCBbbWFpbHRvOjxhIGhyZWY9Im1haWx0bzp3aW4tcHYtZGV2ZWwtYm91
bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZyIgdGFyZ2V0PSJfYmxhbmsiPndpbi1wdi1kZXZlbC1i
b3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnPC9hPl0NCjxiPjxzcGFuIHN0eWxlPSJmb250LXdl
aWdodDpib2xkIj5PbiBCZWhhbGYgT2YgPC9zcGFuPjwvYj5jaHJpczxicj4NCjxiPjxzcGFuIHN0
eWxlPSJmb250LXdlaWdodDpib2xkIj5TZW50Ojwvc3Bhbj48L2I+IDIxIEp1bHkgMjAxNiAxNDoz
MTxicj4NCjxiPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5Ubzo8L3NwYW4+PC9iPiA8
YSBocmVmPSJtYWlsdG86d2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIiB0YXJnZXQ9
Il9ibGFuayI+DQp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmc8L2E+PGJyPg0KPGI+
PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPlN1YmplY3Q6PC9zcGFuPjwvYj4gW3dpbi1w
di1kZXZlbF0gV2luLXB2IGRyaXZlciBpbnN0YWxsIHN1Y2Nlc3MgZmFpbHMgdG8gYm9vdDwvc3Bh
bj48L2ZvbnQ+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1h
cmdpbi1ib3R0b20tYWx0OmF1dG8iPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21h
biI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFu
PjwvZm9udD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJn
aW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Zm9udCBzaXplPSIz
IiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5I
ZWxsbyw8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1h
bHQ6YXV0byI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjEyLjBwdCI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4N
CjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRv
cC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGZvbnQgc2l6ZT0iMyIgZmFj
ZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+SSBhbSBh
IHByZXZpb3VzIGdwbHB2IHVzZXIgd2hvIHJlY2VudGx5IGNhbWUgYWNyb3NzIHRoaXMgcHJvamVj
dCBhbmQgd2FudGVkIHRvIGdpdmUgYSB0cnkgdG8gYXRsZWFzdCBoZWxwIHByb3ZpZGUNCiBmZWVk
YmFjayBhbmQgdGVzdGluZy48bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRv
O21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBO
ZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij4mbmJzcDs8bzpwPjwvbzpw
Pjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIg
c3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRv
Ij48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTIuMHB0Ij5JIGRvd25sb2FkZWQgdGhlIGxhdGVzdCBkcml2ZXJzIHZpYSB0aGUgdGFy
IGZpbGVzIG9uIHRoaXMgcGFnZTo8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDph
dXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1l
cyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij4mbmJzcDs8bzpwPjwv
bzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDph
dXRvIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTIuMHB0Ij48YSBocmVmPSJodHRwOi8vd3d3LnhlbnByb2plY3Qub3JnL2Rvd25s
b2Fkcy93aW5kb3dzLXB2LWRyaXZlcnMvZGV2ZWxvcG1lbnQtYnVpbGRzLmh0bWwiIHRhcmdldD0i
X2JsYW5rIj5odHRwOi8vd3d3LnhlbnByb2plY3Qub3JnL2Rvd25sb2Fkcy93aW5kb3dzLXB2LWRy
aXZlcnMvZGV2ZWxvcG1lbnQtYnVpbGRzLmh0bWw8L2E+PG86cD48L286cD48L3NwYW4+PC9mb250
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFy
Z2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGZvbnQgc2l6ZT0i
MyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+
Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2lu
LWJvdHRvbS1hbHQ6YXV0byI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+SSBleHRyYWN0ZWQgYW5kIHJhbiBkcGluc3Qg
YXMgbm90ZWQgaW4gdGhlIHJlYWRtZSB0eHQgJm5ic3A7Zm9yIGVhY2ggZHJpdmVyIGFuZCBzYXcg
dGhhdCBpbiBkZXZpY2UgbWFuYWdlciBpdCBjcmVhdGVkDQogc29tZSBuZXcgZGV2aWNlcy4gTk9U
RSB0aGlzIGlzIGEgY2xlYW4gaW5zdGFsbCBhbmQgZGlkIG5vdCBoYXZlIGdwbHB2IG9yIGFueSBv
dGhlciBkcml2ZXJzIHByZXZpb3VzbHkmbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9w
Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4t
dG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Zm9udCBzaXplPSIzIiBm
YWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij48YnI+
DQpJIHNodXRkb3duIHRoZSBkb211LCBjaGFuZ2VkIG15IGRpc2sgYW5kIG5ldHdvcmsgbGluZXMg
dG8gdXNlIHRoZSBQViBzdHlsZTo8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDph
dXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1l
cyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij4mbmJzcDs8bzpwPjwv
bzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRv
bS1hbHQ6YXV0byI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjEyLjBwdCI+J2ZpbGU6L21udC92aWwxMDY0L3ZpbDEwNjQtc3NkLmlt
Zyx4dmRhLHcnLDxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0K
PGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3At
YWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxmb250IHNpemU9IjMiIGZhY2U9
IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPiZuYnNwOzxv
OnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20t
YWx0OmF1dG8iPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMi4wcHQiPnZpZiA9IFsndHlwZT1uZXRmcm9udCwgYnJpZGdlPXhlbmJy
MCwgbWFjPTAwOjE2OjNEOjM3OkEwOkEzJ108bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0K
PC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1h
cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxmb250IHNpemU9
IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQi
PiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdp
bi1ib3R0b20tYWx0OmF1dG8iPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPmFuZCB3aGVuIGkgdHJpZWQgdG8gc3RhcnQg
aXQgdXAsIGl0IGdldHMgc3R1Y2sgYXQgd2luZG93cyAxMCBsb2FkaW5nIHNjcmVlbiB3aXRoIHRo
ZSBsb2dvIGFuZCB0aGUgc3Bpbm5pbmcgd2hlZWwNCiB1bmRlcm5lYXRoLiBpIGxlZnQgaXQgZm9y
IHNldmVyYWwgaG91cnMgYW5kIGl0IG5ldmVyIGdvdCBhbnkgZnVydGhlciBub3IgZGlkIGl0IGJz
b2QnZCBvciByZWJvb3Qgb3ZlciBhbmQgb3Zlci48bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9w
Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4t
dG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Zm9udCBzaXplPSIzIiBm
YWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij4mbmJz
cDs8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90
dG9tLWFsdDphdXRvIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5pIHdlbnQgJm5ic3A7YmFjayBhbmQgY2hhbmdlZCBt
eSBjb25maWcgYmFjayB0byBlbXVsYXRlZCBpbnRlcmZhY2VzIGFuZCB3aW5kb3dzIDEwIGRvZXMg
bm90IHN0YXJ0IHZpYSB0aGUgb3JpZ2luYWwNCiBjb25maWcgZWl0aGVyPG86cD48L286cD48L3Nw
YW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxl
PSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGZv
bnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjEyLjBwdCI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bztt
c28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3
IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+ZGlkIGkgbWlzcyBzb21lIGNy
aXRpY2FsIHN0ZXAocyk/IGFueSBpZGVhcyB3aHkgdGhlIE9TIHdvbnQgYm9vdD8gd2hhdHMgaGUg
YmVzdCB0byByZW1vdmUgdGhlIGRyaXZlcnMgYW5kIHRyeQ0KIGFnYWluPzxvOnA+PC9vOnA+PC9z
cGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls
ZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxm
b250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMi4wcHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87
bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5l
dyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPmkgYW0gYSBmYWlybHkgdGVj
aG5pY2FsIGxpbnV4IGFuZCB3aW5kb3dzIHVzZXIgYW5kIHdpbGxpbmcgdG8gaW52ZXN0IHNvbWUg
dGltZSB0byBhbnl0aGluZyB0aGF0IHdpbGwgaGVscCBzbw0KIHBsZWFzZSBsZXQgbWUga25vdyBp
ZiB0aGVyZXMgYW55IG1vcmUgaW5mbyBvciBhbnl0aGluZyBpIGNhbiBkbyB0byBnaXZlIHlvdSBt
b3JlIGRhdGE8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJn
aW4tYm90dG9tLWFsdDphdXRvIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4i
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij4mbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48
L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1z
by1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Zm9udCBz
aXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIu
MHB0Ij50aGUgZG9tMCBpcyBhIHVwIHRvIGRhdGUgZGViaWFuIGplc3NpZSwgeGwgaW5mbyBnaXZl
czo8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFy
Z2luLWJvdHRvbS1hbHQ6YXV0byI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFu
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+cmVsZWFzZSAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiAzLjE2LjAtNC1hbWQ2NDxv
OnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20t
YWx0OmF1dG8iPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMi4wcHQiPnZlcnNpb24gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzogIzEgU01QIERlYmlhbiAzLjE2LjctY2t0MTEt
MSYjNDM7ZGViOHU1ICgyMDE1LTEwLTA5KTxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8
L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3At
YWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxmb250IHNpemU9IjMiIGZhY2U9
IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPm1hY2hpbmUg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzog
eDg2XzY0PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2lu
LWJvdHRvbS1hbHQ6YXV0byI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+bnJfY3B1cyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiAxMjxvOnA+PC9vOnA+PC9zcGFu
PjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0i
bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxmb250
IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
Mi4wcHQiPm1heF9jcHVfaWQgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgOiAxNTxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdp
bi1ib3R0b20tYWx0OmF1dG8iPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPm5yX25vZGVzICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IDI8bzpwPjwvbzpwPjwvc3Bhbj48L2Zv
bnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1t
YXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Zm9udCBzaXpl
PSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0
Ij5jb3Jlc19wZXJfc29ja2V0ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogMTI8bzpwPjwvbzpwPjwv
c3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5
bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48
Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTIuMHB0Ij50aHJlYWRzX3Blcl9jb3JlICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogMTxvOnA+
PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0
OmF1dG8iPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMi4wcHQiPmNwdV9taHogJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzogMjEwMDxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48
L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdp
bi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxmb250IHNpemU9IjMi
IGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPmh3
X2NhcHMgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOzogMTc4YmYzZmY6ZWZkM2ZiZmY6MDAwMDAwMDA6MDAwMDEzMDA6MDA4MDIwMDE6MDAwMDAw
MDA6MDAwODM3ZmY6MDAwMDAwMDA8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDph
dXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1l
cyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij52aXJ0X2NhcHMgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiBodm08bzpwPjwv
bzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDph
dXRvIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTIuMHB0Ij50b3RhbF9tZW1vcnkgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyA6IDU3MzQyPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bztt
c28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3
IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+ZnJlZV9tZW1vcnkgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs6IDE2NDU1PG86cD48L286cD48L3Nw
YW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxl
PSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGZv
bnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjEyLjBwdCI+c2hhcmluZ19mcmVlZF9tZW1vcnkgJm5ic3A7IDogMDxvOnA+PC9vOnA+PC9zcGFu
PjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0i
bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxmb250
IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
Mi4wcHQiPnNoYXJpbmdfdXNlZF9tZW1vcnkgJm5ic3A7ICZuYnNwOzogMDxvOnA+PC9vOnA+PC9z
cGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls
ZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxm
b250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMi4wcHQiPm91dHN0YW5kaW5nX2NsYWltcyAmbmJzcDsgJm5ic3A7IDogMDxvOnA+PC9vOnA+
PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBz
dHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8i
Pjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMi4wcHQiPmZyZWVfY3B1cyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDs6IDA8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRv
O21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBO
ZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij54ZW5fbWFqb3IgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiA0PG86cD48L286cD48
L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0
eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+
PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjEyLjBwdCI+eGVuX21pbm9yICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOzogNDxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87
bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5l
dyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPnhlbl9leHRyYSAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs6IC4xPG86cD48L286cD48
L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0
eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+
PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjEyLjBwdCI+eGVuX3ZlcnNpb24gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDs6IDQuNC4xPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bztt
c28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3
IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+eGVuX2NhcHMgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogeGVuLTMuMC14ODZfNjQg
eGVuLTMuMC14ODZfMzJwIGh2bS0zLjAteDg2XzMyIGh2bS0zLjAteDg2XzMycCBodm0tMy4wLXg4
Nl82NCZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1h
cmdpbi1ib3R0b20tYWx0OmF1dG8iPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21h
biI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPnhlbl9zY2hlZHVsZXIgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzogY3JlZGl0PG86cD48L286cD48L3NwYW4+PC9mb250
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFy
Z2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGZvbnQgc2l6ZT0i
MyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+
eGVuX3BhZ2VzaXplICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiA0MDk2PG86
cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1h
bHQ6YXV0byI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjEyLjBwdCI+cGxhdGZvcm1fcGFyYW1zICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOzogdmlydF9zdGFydD0weGZmZmY4MDAwMDAwMDAwMDA8bzpwPjwvbzpwPjwvc3Bhbj48
L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1z
by1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Zm9udCBz
aXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIu
MHB0Ij54ZW5fY2hhbmdlc2V0ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs6Jm5i
c3A7PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJv
dHRvbS1hbHQ6YXV0byI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+eGVuX2NvbW1hbmRsaW5lICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOzogcGxhY2Vob2xkZXIgZG9tMF9tZW09MTAyNE08bzpwPjwvbzpwPjwvc3Bh
bj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9
Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Zm9u
dCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTIuMHB0Ij5jY19jb21waWxlciAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOzogZ2NjIChEZWJpYW4gNC45LjItMTApIDQuOS4yPG86cD48L286cD48L3NwYW4+PC9mb250
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFy
Z2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGZvbnQgc2l6ZT0i
MyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+
Y2NfY29tcGlsZV9ieSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiB1bHRyb3R0
ZXI8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90
dG9tLWFsdDphdXRvIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5jY19jb21waWxlX2RvbWFpbiAmbmJzcDsgJm5ic3A7
ICZuYnNwOzoNCjxhIGhyZWY9Imh0dHA6Ly9kZWJpYW4ub3JnIiB0YXJnZXQ9Il9ibGFuayI+ZGVi
aWFuLm9yZzwvYT48bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1t
YXJnaW4tYm90dG9tLWFsdDphdXRvIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9t
YW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5jY19jb21waWxlX2RhdGUgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiBUaHUgSnVuIDExIDE4OjI0OjE3IEVFU1QgMjAxNTxvOnA+
PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0
OmF1dG8iPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMi4wcHQiPnhlbmRfY29uZmlnX2Zvcm1hdCAmbmJzcDsgJm5ic3A7IDogNDxv
OnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2lu
LWJvdHRvbS1hbHQ6YXV0byI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9m
b250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28t
bWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGZvbnQgc2l6
ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBw
dCI+Y2hyaXM8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwv
ZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+
DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2JvZHk+DQo8L2h0bWw+DQo=

--_000_c848c20d02a0447c9fa608e215f78e2bAMSPEX02CL03citritenet_--


--===============3781493159367009718==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============3781493159367009718==--


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 25 08:14:08 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 25 Jul 2016 08:14:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bRb1Z-0002zI-Dq; Mon, 25 Jul 2016 08:14:05 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=0077a6cd2=Paul.Durrant@citrix.com>)
 id 1bRb1X-0002zC-HB
 for win-pv-devel@lists.xenproject.org; Mon, 25 Jul 2016 08:14:03 +0000
Received: from [85.158.137.68] by server-9.bemta-3.messagelabs.com id
 B5/30-27233-A4AC5975; Mon, 25 Jul 2016 08:14:02 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrIKsWRWlGSWpSXmKPExsWyU9JRQtfz1NR
 wg4OTFCz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxv4JB1kKdjWxVkxquMTcwNj4i6WLkZNDQiBI
 4tfOzawgNpuAjsTSo/OZQGwRATmJ5rcnweLMAt4SV08eZASxhQXcJV6tb2GEqPGQaGuawQZhO
 0n0vFjNDGKzCKhK7N25gB3E5gWqv7jrKdAcLg4hgcuMEl2Nx8EWcwoESnyd/h/MZhSQlfjSCN
 HMLCAucesJxBESAgISS/acZ4awRSVePv7HCmEbSGxduo8Foj5XYsbbaywQywQlTs58AmYLCah
 IbHl8AKqXW2Ll5z8sExhFZiFZMQtJ+ywk7bMYOYDimhLrd+lDlChKTOl+yA5ha0i0zpnLjiy+
 gJF9FaN6cWpRWWqRrrleUlFmekZJbmJmjq6hgbFebmpxcWJ6ak5iUrFecn7uJkZgdDEAwQ7Gx
 u9OhxglOZiURHknrpkaLsSXlJ9SmZFYnBFfVJqTWnyIUYaDQ0mCd+8JoJxgUWp6akVaZg4wzm
 HSEhw8SiK8T0DSvMUFibnFmekQqVOMuhxbFtxYyyTEkpeflyolzrsZpEgApCijNA9uBCzlXGK
 UlRLmZQQ6SoinILUoN7MEVf4VozgHo5Iwr8JJoCk8mXklcJteAR3BBHTEAp7JIEeUJCKkpBoY
 9894dU+At3f+pv+JQd5sLLaOfyc/WmPd/1j26S6jZ2wfLTReWPpf/mThMyP6+KtN88rtuiP1/
 BWU1q2pLwgw0F/O/Oau5qVNLwp/C5hPtbsxf8Kd2t2eiteztni+k3qcHicwY/W+mdxeQjPeaX
 le0Gtvu5g0s15F67GYhdTTbudLi57M3sC+Q4mlOCPRUIu5qDgRAL4o/yg0AwAA
X-Env-Sender: prvs=0077a6cd2=Paul.Durrant@citrix.com
X-Msg-Ref: server-3.tower-31.messagelabs.com!1469434440!52194094!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=HTML_MESSAGE,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 17356 invoked from network); 25 Jul 2016 08:14:01 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-3.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 25 Jul 2016 08:14:01 -0000
X-IronPort-AV: E=Sophos;i="5.28,418,1464652800"; d="scan'208,217";a="27060746"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: chris <tknchris@gmail.com>
Thread-Topic: [win-pv-devel] Win-pv driver install success fails to boot
Thread-Index: AQHR41Qnk63y5YVv80ive5FTHt9jR6AkIa6AgAKv54CAAf3PsA==
Date: Mon, 25 Jul 2016 08:13:59 +0000
Message-ID: <c848c20d02a0447c9fa608e215f78e2b@AMSPEX02CL03.citrite.net>
References: <CAKnNFz_GLVZ2G6L_EBMq1AY5JpTUqVaNschscEtJ5q+Hzz1-0w@mail.gmail.com>
 <16f8e57a658c4d20a7d7cc06fb6c19af@AMSPEX02CL03.citrite.net>
 <CAKnNFz9ueJMN4Zun_dvQPZP0jqq+pe3vXhufB6bFMfSy=VBkaA@mail.gmail.com>
In-Reply-To: <CAKnNFz9ueJMN4Zun_dvQPZP0jqq+pe3vXhufB6bFMfSy=VBkaA@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] Win-pv driver install success fails to boot
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============3781493159367009718=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============3781493159367009718==
Content-Language: en-US
Content-Type: multipart/alternative;
	boundary="_000_c848c20d02a0447c9fa608e215f78e2bAMSPEX02CL03citritenet_"

--_000_c848c20d02a0447c9fa608e215f78e2bAMSPEX02CL03citritenet_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

VGhlcmXigJlzIGEgbXVsdGl0dWRlIG9mIHJlYXNvbnMgd2h5IHlvdXIgVk0gbWF5IG5vdCBiZSBi
b290aW5nIGFmdGVyIG1lc3Npbmcgd2l0aCB0aGUgY29uZmlnLiBZb3UgaGF2ZW7igJl0IGFjdHVh
bGx5IHNhaWQgaG93IGl0IGlzIGZhaWxpbmcgYnV0LCBzaW5jZSB5b3UgZG8gaGF2ZSB0ZXN0c2ln
bmluZyBlbmFibGVkLCBteSBuZXh0IGd1ZXNzIGlzIHRoYXQgeW91IGFyZSBnZXR0aW5nIGEgMHg3
QiBibHVlIHNjcmVlbiBhdCBib290IHRpbWUuIElmIHNvLCB0aGlzIGlzIGJlY2F1c2UgdGhlIFhF
TkZJTFQgZmlsdGVyIGRyaXZlciBpcyBzdGlsbCBpbnN0YWxsZWQgYW5kIGlzIGluc3RydWN0aW5n
IFFFTVUgdG8gdW5wbHVnIGVtdWxhdGVkIGRldmljZXMgYXQgYm9vdCB0aW1lLg0KVG8gc3RvcCBp
dCBmcm9tIGRvaW5nIHRoaXMgeW91IGhhdmUgYSBjb3VwbGUgb2Ygb3B0aW9uczoNCg0KDQotICAg
ICAgICAgIEZpbmQgYWxsIHRoZSBpbnN0YW5jZXMgb2YgVXBwZXJGaWx0ZXJzIHdoZXJlIFhFTkZJ
TFQgaXMgc3BlY2lmaWVkICh1bmRlciBIS0xNL1N5c3RlbS9DdXJyZW50Q29udHJvbHNldC9Db250
cm9sL0NsYXNzKSBhbmQgcmVtb3ZlIHRoZW0uDQoNCi0gICAgICAgICAgTG9vayB1bmRlciBIS0xN
L1N5c3RlbS9DdXJyZW50Q29udHJvbFNldC9TZXJ2aWNlcy9YRU4vVW5wbHVnIGFuZCByZW1vdmUg
YW55IERJU0tTIHZhbHVlIHlvdSBtYXkgZmluZCB0aGVyZS4NCg0KT25jZSB5b3UgaGF2ZSBkb25l
IG9uZSBvciBib3RoIG9mIHRoZXNlIHlvdSBzaG91bGQgYmUgYWJsZSB0byByZWJvb3QgeW91ciBW
TSBhbmQgZW11bGF0ZWQgZGV2aWNlcyB3aWxsIHN0YXkgcGx1Z2dlZC4NCg0KVGhlIFBWIGRyaXZl
cnMgbG9nIHRvIFFFTVUsIGlmIHlvdSBhcmUgcnVubmluZyBxZW11IHRyYWQsIHlvdSBzaG91bGQg
c2VlIG91dHB1dCBpbiB0aGUgcWVtdSBsb2cgZmlsZS4gSWYgeW91IGFyZSBydW5uaW5nIHVwc3Ry
ZWFtIFFFTVUgeW914oCZbGwgbmVlZCB0byBlbmFibGUgdGhlIHhlbl9wbGF0Zm9ybV9sb2cgZXZl
bnQgYmVmb3JlIHlvdSBnZXQgYW55IGxvZ2dpbmcuDQoNCiAgUGF1bA0KDQoNCkZyb206IGNocmlz
IFttYWlsdG86dGtuY2hyaXNAZ21haWwuY29tXQ0KU2VudDogMjQgSnVseSAyMDE2IDA0OjM5DQpU
bzogUGF1bCBEdXJyYW50DQpDYzogd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQpT
dWJqZWN0OiBSZTogW3dpbi1wdi1kZXZlbF0gV2luLXB2IGRyaXZlciBpbnN0YWxsIHN1Y2Nlc3Mg
ZmFpbHMgdG8gYm9vdA0KDQpPSy4gSSBjaGFuZ2VkIHRoZSBjb25maWcgYmFjayBhbmQgaSBzdGls
bCBjYW50IGJvb3QuIEkgZGlkIGhhdmUgdGVzdHNpZ25pbmcgZW5hYmxlZCBhbmQgcmVib290ZWQg
dHdpY2UgYmVmb3JlIGF0dGVtcHRpbmcgdG8gaW5zdGFsbCB0aGUgZHJpdmVycy4NCg0KQW55IGlk
ZWEgd2h5IHdpbmRvd3MgY2FudCBib290PyBJIGZvbGxvd2VkIHRoZSBpbnN0cnVjdGlvbnMgdG8g
dGhlIGxldHRlciBzbyBJIGFtIHRyeWluZyB0byB1bmRlcnN0YW5kIHdoeSBpdHMgbm90IHdvcmtp
bmcuDQoNCkFsc28sIGV2ZW4gdGhvdWdoIEkgY291bGQgcmVpbnN0YWxsIEknZCBsaWtlIHRvIHdv
cmsgdGhyb3VnaCBnZXR0aW5nIHRoZSBkcml2ZXJzIGRpc2FibGVkIC8gdW5pbnN0YWxsZWQgYW5k
IGdldCB0aGluZ3MgYm9vdGluZyBhZ2FpbiBzbyBJIGFtIGZhbWlsaWFyIHdpdGggdGhpcyBwcm9j
ZXNzLiBJIGRvbid0IHJlYWxseSB0aGluayBpdHMgd2lzZSB0byBqdXN0IHJlaW5zdGFsbCB0aGVu
IGRvd24gdGhlIGxpbmUgZGVwbG95IHRoaXMgaW50byBwcm9kdWN0aW9uIGFuZCBoYXZlIHNvbWV0
aGluZyBsaWtlIHRoaXMgaGFwcGVuIGFuZCBub3QgaGF2ZSBhbnkgc29sdXRpb24gb3RoZXIgdGhh
biByZWluc3RhbGxpbmcuDQoNCkkgaGF2ZSB0cmllZDoNCi0gdHJpZWQgYm9vdGluZyBpbiBzYWZl
IG1vZGUNCi0gdHJpZWQgc3RhcnR1cCByZXBhaXINCi0gdHJpZWQgYm9vdGluZyBpbnRvIGEgY29t
bWFuZCBwcm9tcHQgYW5kIHRyaWVkIHJlbmFtaW5nIGFsbCB0aGUgeGVuKi5zeXMgZmlsZXMgaW4g
Yzpcd2luZG93c1xzeXN0ZW0zMlxkcml2ZXJzXA0KLSB0cmllZCBib290aW5nIGludG8gY29tbWFu
ZCBwcm9tcHQgYW5kIGRvaW5nIGJvb3RyZWMgL2ZpeGJvb3QsIGJvb3RyZWMgL2ZpeG1iciwgYm9v
dHJlYyAvcmVidWlsZGJjZA0KDQoNCldoYXRzIHRoZSBwcm9jZXNzIHRvIHJldmVyc2UgdGhlIGlu
c3RhbGxhdGlvbiBhbmQgZ2V0IHdpbmRvd3MgdG8gYm9vdD8NCg0KVGhhbmtzIQ0KY2hyaXMNCg0K
T24gRnJpLCBKdWwgMjIsIDIwMTYgYXQgNDo0NSBBTSwgUGF1bCBEdXJyYW50IDxQYXVsLkR1cnJh
bnRAY2l0cml4LmNvbTxtYWlsdG86UGF1bC5EdXJyYW50QGNpdHJpeC5jb20+PiB3cm90ZToNCkhp
IENocmlzLA0KDQogIERvbuKAmXQgbWVzcyB3aXRoIHRoZSBkaXNrIGFuZCBuZXR3b3JrIGxpbmVz
IGluIHlvdXIgY29uZmlnLiBZb3Ugc3RpbGwgbmVlZCBlbXVsYXRlZCBkaXNrIHRvIGJvb3QgV2lu
ZG93cyBhcyB0aGUgZmlybXdhcmUgKFNlYUJJT1Mgb3IgUk9NQklPUykgZG9lcyBub3QgaGF2ZSBQ
ViBmcm9udGVuZHMuIE9uY2UgV2luZG93cyBzdGFydHMgYW5kIHRoZSBQViBkcml2ZXJzIGxvYWQg
dGhleSB3aWxsIGluc3RydWN0IFFFTVUgdG8gdW5wbHVnIHRoZSBlbXVsYXRlZCBkZXZpY2VzIHNv
IHRoYXQgdGhlIFBWIGRldmljZXMgY2FuIHRha2UgdGhlaXIgcGxhY2UuDQoNCiAgQXMgZm9yIHJl
Y292ZXJpbmcsIGl04oCZcyBwcm9iYWJseSBnb2luZyB0byBiZSB0cmlja3kuIFNpbmNlIHlvdSB3
ZXJlIGRvaW5nIGEgZnJlc2ggaW5zdGFsbCBpdOKAmXMgcHJvYmFibHkgcXVpY2tlciB0byBzdGFy
dCBhZ2Fpbi4gVGhlIG90aGVyIHRoaW5nIHRvIGRvICpiZWZvcmUqIHlvdSBpbnN0YWxsIFBWIGRy
aXZlcnMgKGFuZCBJIHN1c3BlY3QgdGhpcyBpcyB0aGUgcm9vdCBvZiB5b3VyIHByb2JsZW0pIGlz
IHRvIGVuYWJsZSB0ZXN0IHNpZ25lZCBkcml2ZXJzIGluIFdpbmRvd3MuIFdpbmRvd3MgMTAgKGV2
ZW4gMzItYml0KSB3aWxsIG5vdCBsb2FkIHRlc3Qgc2lnbmVkIGRyaXZlcnMgdW5sZXNzIHlvdSBo
YXZlIGRvbmU6DQoNCmJjZGVkaXQgL3NldCB0ZXN0c2lnbmluZyBvbg0KDQogIEhvcGUgdGhhdCBo
ZWxwcywNCg0KICBQYXVsDQoNCkZyb206IHdpbi1wdi1kZXZlbCBbbWFpbHRvOndpbi1wdi1kZXZl
bC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnPG1haWx0bzp3aW4tcHYtZGV2ZWwtYm91bmNl
c0BsaXN0cy54ZW5wcm9qZWN0Lm9yZz5dIE9uIEJlaGFsZiBPZiBjaHJpcw0KU2VudDogMjEgSnVs
eSAyMDE2IDE0OjMxDQpUbzogd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnPG1haWx0
bzp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmc+DQpTdWJqZWN0OiBbd2luLXB2LWRl
dmVsXSBXaW4tcHYgZHJpdmVyIGluc3RhbGwgc3VjY2VzcyBmYWlscyB0byBib290DQoNCkhlbGxv
LA0KDQpJIGFtIGEgcHJldmlvdXMgZ3BscHYgdXNlciB3aG8gcmVjZW50bHkgY2FtZSBhY3Jvc3Mg
dGhpcyBwcm9qZWN0IGFuZCB3YW50ZWQgdG8gZ2l2ZSBhIHRyeSB0byBhdGxlYXN0IGhlbHAgcHJv
dmlkZSBmZWVkYmFjayBhbmQgdGVzdGluZy4NCg0KSSBkb3dubG9hZGVkIHRoZSBsYXRlc3QgZHJp
dmVycyB2aWEgdGhlIHRhciBmaWxlcyBvbiB0aGlzIHBhZ2U6DQoNCmh0dHA6Ly93d3cueGVucHJv
amVjdC5vcmcvZG93bmxvYWRzL3dpbmRvd3MtcHYtZHJpdmVycy9kZXZlbG9wbWVudC1idWlsZHMu
aHRtbA0KDQpJIGV4dHJhY3RlZCBhbmQgcmFuIGRwaW5zdCBhcyBub3RlZCBpbiB0aGUgcmVhZG1l
IHR4dCAgZm9yIGVhY2ggZHJpdmVyIGFuZCBzYXcgdGhhdCBpbiBkZXZpY2UgbWFuYWdlciBpdCBj
cmVhdGVkIHNvbWUgbmV3IGRldmljZXMuIE5PVEUgdGhpcyBpcyBhIGNsZWFuIGluc3RhbGwgYW5k
IGRpZCBub3QgaGF2ZSBncGxwdiBvciBhbnkgb3RoZXIgZHJpdmVycyBwcmV2aW91c2x5DQoNCkkg
c2h1dGRvd24gdGhlIGRvbXUsIGNoYW5nZWQgbXkgZGlzayBhbmQgbmV0d29yayBsaW5lcyB0byB1
c2UgdGhlIFBWIHN0eWxlOg0KDQonZmlsZTovbW50L3ZpbDEwNjQvdmlsMTA2NC1zc2QuaW1nLHh2
ZGEsdycsDQoNCnZpZiA9IFsndHlwZT1uZXRmcm9udCwgYnJpZGdlPXhlbmJyMCwgbWFjPTAwOjE2
OjNEOjM3OkEwOkEzJ10NCg0KYW5kIHdoZW4gaSB0cmllZCB0byBzdGFydCBpdCB1cCwgaXQgZ2V0
cyBzdHVjayBhdCB3aW5kb3dzIDEwIGxvYWRpbmcgc2NyZWVuIHdpdGggdGhlIGxvZ28gYW5kIHRo
ZSBzcGlubmluZyB3aGVlbCB1bmRlcm5lYXRoLiBpIGxlZnQgaXQgZm9yIHNldmVyYWwgaG91cnMg
YW5kIGl0IG5ldmVyIGdvdCBhbnkgZnVydGhlciBub3IgZGlkIGl0IGJzb2QnZCBvciByZWJvb3Qg
b3ZlciBhbmQgb3Zlci4NCg0KaSB3ZW50ICBiYWNrIGFuZCBjaGFuZ2VkIG15IGNvbmZpZyBiYWNr
IHRvIGVtdWxhdGVkIGludGVyZmFjZXMgYW5kIHdpbmRvd3MgMTAgZG9lcyBub3Qgc3RhcnQgdmlh
IHRoZSBvcmlnaW5hbCBjb25maWcgZWl0aGVyDQoNCmRpZCBpIG1pc3Mgc29tZSBjcml0aWNhbCBz
dGVwKHMpPyBhbnkgaWRlYXMgd2h5IHRoZSBPUyB3b250IGJvb3Q/IHdoYXRzIGhlIGJlc3QgdG8g
cmVtb3ZlIHRoZSBkcml2ZXJzIGFuZCB0cnkgYWdhaW4/DQoNCmkgYW0gYSBmYWlybHkgdGVjaG5p
Y2FsIGxpbnV4IGFuZCB3aW5kb3dzIHVzZXIgYW5kIHdpbGxpbmcgdG8gaW52ZXN0IHNvbWUgdGlt
ZSB0byBhbnl0aGluZyB0aGF0IHdpbGwgaGVscCBzbyBwbGVhc2UgbGV0IG1lIGtub3cgaWYgdGhl
cmVzIGFueSBtb3JlIGluZm8gb3IgYW55dGhpbmcgaSBjYW4gZG8gdG8gZ2l2ZSB5b3UgbW9yZSBk
YXRhDQoNCnRoZSBkb20wIGlzIGEgdXAgdG8gZGF0ZSBkZWJpYW4gamVzc2llLCB4bCBpbmZvIGdp
dmVzOg0KcmVsZWFzZSAgICAgICAgICAgICAgICA6IDMuMTYuMC00LWFtZDY0DQp2ZXJzaW9uICAg
ICAgICAgICAgICAgIDogIzEgU01QIERlYmlhbiAzLjE2LjctY2t0MTEtMStkZWI4dTUgKDIwMTUt
MTAtMDkpDQptYWNoaW5lICAgICAgICAgICAgICAgIDogeDg2XzY0DQpucl9jcHVzICAgICAgICAg
ICAgICAgIDogMTINCm1heF9jcHVfaWQgICAgICAgICAgICAgOiAxNQ0KbnJfbm9kZXMgICAgICAg
ICAgICAgICA6IDINCmNvcmVzX3Blcl9zb2NrZXQgICAgICAgOiAxMg0KdGhyZWFkc19wZXJfY29y
ZSAgICAgICA6IDENCmNwdV9taHogICAgICAgICAgICAgICAgOiAyMTAwDQpod19jYXBzICAgICAg
ICAgICAgICAgIDogMTc4YmYzZmY6ZWZkM2ZiZmY6MDAwMDAwMDA6MDAwMDEzMDA6MDA4MDIwMDE6
MDAwMDAwMDA6MDAwODM3ZmY6MDAwMDAwMDANCnZpcnRfY2FwcyAgICAgICAgICAgICAgOiBodm0N
CnRvdGFsX21lbW9yeSAgICAgICAgICAgOiA1NzM0Mg0KZnJlZV9tZW1vcnkgICAgICAgICAgICA6
IDE2NDU1DQpzaGFyaW5nX2ZyZWVkX21lbW9yeSAgIDogMA0Kc2hhcmluZ191c2VkX21lbW9yeSAg
ICA6IDANCm91dHN0YW5kaW5nX2NsYWltcyAgICAgOiAwDQpmcmVlX2NwdXMgICAgICAgICAgICAg
IDogMA0KeGVuX21ham9yICAgICAgICAgICAgICA6IDQNCnhlbl9taW5vciAgICAgICAgICAgICAg
OiA0DQp4ZW5fZXh0cmEgICAgICAgICAgICAgIDogLjENCnhlbl92ZXJzaW9uICAgICAgICAgICAg
OiA0LjQuMQ0KeGVuX2NhcHMgICAgICAgICAgICAgICA6IHhlbi0zLjAteDg2XzY0IHhlbi0zLjAt
eDg2XzMycCBodm0tMy4wLXg4Nl8zMiBodm0tMy4wLXg4Nl8zMnAgaHZtLTMuMC14ODZfNjQNCnhl
bl9zY2hlZHVsZXIgICAgICAgICAgOiBjcmVkaXQNCnhlbl9wYWdlc2l6ZSAgICAgICAgICAgOiA0
MDk2DQpwbGF0Zm9ybV9wYXJhbXMgICAgICAgIDogdmlydF9zdGFydD0weGZmZmY4MDAwMDAwMDAw
MDANCnhlbl9jaGFuZ2VzZXQgICAgICAgICAgOg0KeGVuX2NvbW1hbmRsaW5lICAgICAgICA6IHBs
YWNlaG9sZGVyIGRvbTBfbWVtPTEwMjRNDQpjY19jb21waWxlciAgICAgICAgICAgIDogZ2NjIChE
ZWJpYW4gNC45LjItMTApIDQuOS4yDQpjY19jb21waWxlX2J5ICAgICAgICAgIDogdWx0cm90dGVy
DQpjY19jb21waWxlX2RvbWFpbiAgICAgIDogZGViaWFuLm9yZzxodHRwOi8vZGViaWFuLm9yZz4N
CmNjX2NvbXBpbGVfZGF0ZSAgICAgICAgOiBUaHUgSnVuIDExIDE4OjI0OjE3IEVFU1QgMjAxNQ0K
eGVuZF9jb25maWdfZm9ybWF0ICAgICA6IDQNCg0KY2hyaXMNCg0K

--_000_c848c20d02a0447c9fa608e215f78e2bAMSPEX02CL03citritenet_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IlByb2dJZCIg
Y29udGVudD0iV29yZC5Eb2N1bWVudCI+DQo8bWV0YSBuYW1lPSJHZW5lcmF0b3IiIGNvbnRlbnQ9
Ik1pY3Jvc29mdCBXb3JkIDE0Ij4NCjxtZXRhIG5hbWU9Ik9yaWdpbmF0b3IiIGNvbnRlbnQ9Ik1p
Y3Jvc29mdCBXb3JkIDE0Ij4NCjxsaW5rIHJlbD0iRmlsZS1MaXN0IiBocmVmPSJjaWQ6ZmlsZWxp
c3QueG1sQDAxRDFFNjU0LkUwMERCMEQwIj48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOk9m
ZmljZURvY3VtZW50U2V0dGluZ3M+DQo8bzpBbGxvd1BORy8+DQo8bzpEb05vdFJlbHlPbkNTUy8+
DQo8L286T2ZmaWNlRG9jdW1lbnRTZXR0aW5ncz4NCjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYg
Z3RlIG1zbyA5XT48eG1sPg0KPHc6V29yZERvY3VtZW50Pg0KPHc6U3BlbGxpbmdTdGF0ZT5DbGVh
bjwvdzpTcGVsbGluZ1N0YXRlPg0KPHc6VHJhY2tNb3Zlcy8+DQo8dzpUcmFja0Zvcm1hdHRpbmcv
Pg0KPHc6RW52ZWxvcGVWaXMvPg0KPHc6VmFsaWRhdGVBZ2FpbnN0U2NoZW1hcy8+DQo8dzpTYXZl
SWZYTUxJbnZhbGlkPmZhbHNlPC93OlNhdmVJZlhNTEludmFsaWQ+DQo8dzpJZ25vcmVNaXhlZENv
bnRlbnQ+ZmFsc2U8L3c6SWdub3JlTWl4ZWRDb250ZW50Pg0KPHc6QWx3YXlzU2hvd1BsYWNlaG9s
ZGVyVGV4dD5mYWxzZTwvdzpBbHdheXNTaG93UGxhY2Vob2xkZXJUZXh0Pg0KPHc6RG9Ob3RQcm9t
b3RlUUYvPg0KPHc6TGlkVGhlbWVPdGhlcj5FTi1HQjwvdzpMaWRUaGVtZU90aGVyPg0KPHc6TGlk
VGhlbWVBc2lhbj5YLU5PTkU8L3c6TGlkVGhlbWVBc2lhbj4NCjx3OkxpZFRoZW1lQ29tcGxleFNj
cmlwdD5YLU5PTkU8L3c6TGlkVGhlbWVDb21wbGV4U2NyaXB0Pg0KPHc6Q29tcGF0aWJpbGl0eT4N
Cjx3OkRvTm90RXhwYW5kU2hpZnRSZXR1cm4vPg0KPHc6QnJlYWtXcmFwcGVkVGFibGVzLz4NCjx3
OlNwbGl0UGdCcmVha0FuZFBhcmFNYXJrLz4NCjx3OkVuYWJsZU9wZW5UeXBlS2VybmluZy8+DQo8
L3c6Q29tcGF0aWJpbGl0eT4NCjxtOm1hdGhQcj4NCjxtOm1hdGhGb250IG06dmFsPSJDYW1icmlh
IE1hdGgiLz4NCjxtOmJya0JpbiBtOnZhbD0iYmVmb3JlIi8+DQo8bTpicmtCaW5TdWIgbTp2YWw9
IiYjNDU7LSIvPg0KPG06c21hbGxGcmFjIG06dmFsPSJvZmYiLz4NCjxtOmRpc3BEZWYvPg0KPG06
bE1hcmdpbiBtOnZhbD0iMCIvPg0KPG06ck1hcmdpbiBtOnZhbD0iMCIvPg0KPG06ZGVmSmMgbTp2
YWw9ImNlbnRlckdyb3VwIi8+DQo8bTp3cmFwSW5kZW50IG06dmFsPSIxNDQwIi8+DQo8bTppbnRM
aW0gbTp2YWw9InN1YlN1cCIvPg0KPG06bmFyeUxpbSBtOnZhbD0idW5kT3ZyIi8+DQo8L206bWF0
aFByPjwvdzpXb3JkRG9jdW1lbnQ+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28g
OV0+PHhtbD4NCjx3OkxhdGVudFN0eWxlcyBEZWZMb2NrZWRTdGF0ZT0iZmFsc2UiIERlZlVuaGlk
ZVdoZW5Vc2VkPSJ0cnVlIiBEZWZTZW1pSGlkZGVuPSJ0cnVlIiBEZWZRRm9ybWF0PSJmYWxzZSIg
RGVmUHJpb3JpdHk9Ijk5IiBMYXRlbnRTdHlsZUNvdW50PSIyNjciPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJOb3JtYWwiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyAxIi8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFFGb3JtYXQ9InRydWUiIE5h
bWU9ImhlYWRpbmcgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyA0
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFFGb3JtYXQ9
InRydWUiIE5hbWU9ImhlYWRpbmcgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDYiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0i
aGVhZGluZyA3Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9Ijki
IFFGb3JtYXQ9InRydWUiIE5hbWU9ImhlYWRpbmcgOCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDkiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzkiIE5hbWU9InRvYyAx
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjM5IiBOYW1lPSJ0
b2MgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzOSIgTmFt
ZT0idG9jIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzki
IE5hbWU9InRvYyA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjM5IiBOYW1lPSJ0b2MgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9y
aXR5PSIzOSIgTmFtZT0idG9jIDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iMzkiIE5hbWU9InRvYyA3Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjM5IiBOYW1lPSJ0b2MgOCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSIzOSIgTmFtZT0idG9jIDkiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzUiIFFGb3JtYXQ9InRydWUiIE5hbWU9ImNhcHRpb24iLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMTAiIFNlbWlIaWRkZW49
ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9IlRpdGxl
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjEiIE5hbWU9IkRl
ZmF1bHQgUGFyYWdyYXBoIEZvbnQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iMTEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFG
b3JtYXQ9InRydWUiIE5hbWU9IlN1YnRpdGxlIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjIyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZh
bHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJTdHJvbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iMjAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNl
ZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9IkVtcGhhc2lzIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjU5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJUYWJsZSBHcmlkIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9j
a2VkPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJQbGFjZWhvbGRlciBUZXh0
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjEiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3JtYXQ9InRydWUiIE5hbWU9Ik5v
IFNwYWNpbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjAi
IFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IFNo
YWRpbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjEiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IExpc3Qi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjIiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IEdyaWQiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjMiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDEiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDEiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDIiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjciIFNlbWlIaWRkZW49ImZhbHNlIiBV
bmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDEiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjgiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhp
ZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDIiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjkiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVX
aGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9IkRhcmsgTGlzdCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI3MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iQ29sb3JmdWwgU2hhZGluZyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iQ29sb3JmdWwgTGlzdCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI2MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIg
TmFtZT0iTGlnaHQgU2hhZGluZyBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI2MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iTGlnaHQgTGlzdCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI2MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgTmFtZT0iTGlnaHQgR3JpZCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMSBBY2NlbnQgMSIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVu
aGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMiBBY2NlbnQgMSIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NSIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3QgMSBBY2NlbnQg
MSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iUmV2aXNpb24iLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iMzQiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIFFGb3Jt
YXQ9InRydWUiIE5hbWU9Ikxpc3QgUGFyYWdyYXBoIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjI5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJRdW90ZSIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzMCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iSW50ZW5zZSBRdW90ZSIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NiIgU2VtaUhpZGRlbj0iZmFsc2Ui
IFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3QgMiBBY2NlbnQgMSIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NyIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMSBBY2NlbnQg
MSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OCIgU2VtaUhp
ZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMiBB
Y2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OSIg
U2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIEdy
aWQgMyBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI3MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iRGFy
ayBMaXN0IEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjcxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJD
b2xvcmZ1bCBTaGFkaW5nIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjcyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNl
IiBOYW1lPSJDb2xvcmZ1bCBMaXN0IEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjczIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBHcmlkIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBTaGFkaW5nIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5o
aWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBMaXN0IEFjY2VudCAyIi8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYyIiBTZW1pSGlkZGVuPSJmYWxzZSIg
VW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBHcmlkIEFjY2VudCAyIi8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYzIiBTZW1pSGlkZGVuPSJmYWxz
ZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAxIEFjY2VudCAy
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY0IiBTZW1pSGlk
ZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAy
IEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY1
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0g
TGlzdCAxIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjY2IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJN
ZWRpdW0gTGlzdCAyIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjY3IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBO
YW1lPSJNZWRpdW0gR3JpZCAxIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjY4IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZh
bHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAyIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9j
a2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY5IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVz
ZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAzIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcwIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJEYXJrIExpc3QgQWNjZW50IDIiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhp
ZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIFNoYWRpbmcgQWNjZW50IDIiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzIiIFNlbWlIaWRkZW49ImZh
bHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIExpc3QgQWNjZW50IDIi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzMiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIEdyaWQgQWNj
ZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjAiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IFNoYWRp
bmcgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NjEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0
IExpc3QgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNjIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ikxp
Z2h0IEdyaWQgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNjMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9
Ik1lZGl1bSBTaGFkaW5nIDEgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFs
c2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDEgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhp
ZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDIgQWNjZW50IDMiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjciIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDEgQWNjZW50IDMiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjgiIFNlbWlIaWRkZW49
ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDIgQWNjZW50
IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjkiIFNlbWlI
aWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBHcmlkIDMg
QWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzAi
IFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkRhcmsgTGlz
dCBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3
MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3Jm
dWwgU2hhZGluZyBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFBy
aW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFt
ZT0iQ29sb3JmdWwgTGlzdCBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxz
ZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI2MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgTmFtZT0iTGlnaHQgU2hhZGluZyBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdo
ZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQgTGlzdCBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTGlnaHQgR3JpZCBBY2NlbnQgNCIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVu
aGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMSBBY2NlbnQgNCIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NCIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMiBBY2Nl
bnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NSIgU2Vt
aUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVtIExpc3Qg
MSBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2
NiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iTWVkaXVt
IExpc3QgMiBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9y
aXR5PSI2NyIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0i
TWVkaXVtIEdyaWQgMSBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI2OCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIg
TmFtZT0iTWVkaXVtIEdyaWQgMiBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI2OSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJm
YWxzZSIgTmFtZT0iTWVkaXVtIEdyaWQgMyBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MCIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5V
c2VkPSJmYWxzZSIgTmFtZT0iRGFyayBMaXN0IEFjY2VudCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBTaGFkaW5nIEFjY2VudCA0Ii8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcyIiBTZW1pSGlkZGVuPSJmYWxzZSIg
VW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBMaXN0IEFjY2VudCA0Ii8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjczIiBTZW1pSGlkZGVuPSJm
YWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJDb2xvcmZ1bCBHcmlkIEFjY2VudCA0
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYwIiBTZW1pSGlk
ZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBTaGFkaW5nIEFj
Y2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYxIiBT
ZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBMaXN0
IEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYy
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJMaWdodCBH
cmlkIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjYzIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRp
dW0gU2hhZGluZyAxIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjY0IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBO
YW1lPSJNZWRpdW0gU2hhZGluZyAyIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjY1IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9
ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAxIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY2IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hl
blVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gTGlzdCAyIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY3IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5o
aWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAxIEFjY2VudCA1Ii8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY4IiBTZW1pSGlkZGVuPSJmYWxz
ZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAyIEFjY2VudCA1Ii8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY5IiBTZW1pSGlkZGVu
PSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJNZWRpdW0gR3JpZCAzIEFjY2Vu
dCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcwIiBTZW1p
SGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBOYW1lPSJEYXJrIExpc3QgQWNj
ZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzEiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNvbG9yZnVsIFNo
YWRpbmcgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNzIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9IkNv
bG9yZnVsIExpc3QgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iNzMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5h
bWU9IkNvbG9yZnVsIEdyaWQgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNjAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFs
c2UiIE5hbWU9IkxpZ2h0IFNoYWRpbmcgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjEiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNl
ZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IExpc3QgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjIiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVu
VXNlZD0iZmFsc2UiIE5hbWU9IkxpZ2h0IEdyaWQgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjMiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVX
aGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDEgQWNjZW50IDYiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjQiIFNlbWlIaWRkZW49ImZhbHNl
IiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIgQWNjZW50IDYi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIFNlbWlIaWRk
ZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0IDEgQWNj
ZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIFNl
bWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1bSBMaXN0
IDIgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NjciIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9Ik1lZGl1
bSBHcmlkIDEgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNjgiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2UiIE5hbWU9
Ik1lZGl1bSBHcmlkIDIgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBQcmlvcml0eT0iNjkiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0iZmFsc2Ui
IE5hbWU9Ik1lZGl1bSBHcmlkIDMgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9
ImZhbHNlIiBQcmlvcml0eT0iNzAiIFNlbWlIaWRkZW49ImZhbHNlIiBVbmhpZGVXaGVuVXNlZD0i
ZmFsc2UiIE5hbWU9IkRhcmsgTGlzdCBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI3MSIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2Vk
PSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgU2hhZGluZyBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MiIgU2VtaUhpZGRlbj0iZmFsc2UiIFVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgTGlzdCBBY2NlbnQgNiIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MyIgU2VtaUhpZGRlbj0iZmFsc2Ui
IFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgTmFtZT0iQ29sb3JmdWwgR3JpZCBBY2NlbnQgNiIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIxOSIgU2VtaUhpZGRlbj0i
ZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iU3VidGxl
IEVtcGhhc2lzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjIx
IiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVl
IiBOYW1lPSJJbnRlbnNlIEVtcGhhc2lzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjMxIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRlV2hlblVzZWQ9ImZhbHNl
IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJTdWJ0bGUgUmVmZXJlbmNlIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjMyIiBTZW1pSGlkZGVuPSJmYWxzZSIgVW5oaWRl
V2hlblVzZWQ9ImZhbHNlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJJbnRlbnNlIFJlZmVyZW5jZSIv
Pg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzMyIgU2VtaUhpZGRl
bj0iZmFsc2UiIFVuaGlkZVdoZW5Vc2VkPSJmYWxzZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iQm9v
ayBUaXRsZSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzNyIg
TmFtZT0iQmlibGlvZ3JhcGh5Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJp
b3JpdHk9IjM5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJUT0MgSGVhZGluZyIvPg0KPC93OkxhdGVu
dFN0eWxlcz4NCjwveG1sPjwhW2VuZGlmXS0tPjxzdHlsZT48IS0tDQovKiBGb250IERlZmluaXRp
b25zICovDQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OldpbmdkaW5nczsNCglwYW5vc2UtMTo1
IDAgMCAwIDAgMCAwIDAgMCAwOw0KCW1zby1mb250LWNoYXJzZXQ6MjsNCgltc28tZ2VuZXJpYy1m
b250LWZhbWlseTphdXRvOw0KCW1zby1mb250LXBpdGNoOnZhcmlhYmxlOw0KCW1zby1mb250LXNp
Z25hdHVyZTowIDI2ODQzNTQ1NiAwIDAgLTIxNDc0ODM2NDggMDt9DQpAZm9udC1mYWNlDQoJe2Zv
bnQtZmFtaWx5OldpbmdkaW5nczsNCglwYW5vc2UtMTo1IDAgMCAwIDAgMCAwIDAgMCAwOw0KCW1z
by1mb250LWNoYXJzZXQ6MjsNCgltc28tZ2VuZXJpYy1mb250LWZhbWlseTphdXRvOw0KCW1zby1m
b250LXBpdGNoOnZhcmlhYmxlOw0KCW1zby1mb250LXNpZ25hdHVyZTowIDI2ODQzNTQ1NiAwIDAg
LTIxNDc0ODM2NDggMDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFu
b3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAyIDQ7DQoJbXNvLWZvbnQtYWx0OiJDZW50dXJ5IEdvdGhp
YyI7DQoJbXNvLWZvbnQtY2hhcnNldDowOw0KCW1zby1nZW5lcmljLWZvbnQtZmFtaWx5OnN3aXNz
Ow0KCW1zby1mb250LXBpdGNoOnZhcmlhYmxlOw0KCW1zby1mb250LXNpZ25hdHVyZTotNTM2ODcw
MTQ1IDEwNzM3ODYxMTEgMSAwIDQxNSAwO30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6VGFo
b21hOw0KCXBhbm9zZS0xOjIgMTEgNiA0IDMgNSA0IDQgMiA0Ow0KCW1zby1mb250LWNoYXJzZXQ6
MDsNCgltc28tZ2VuZXJpYy1mb250LWZhbWlseTpzd2lzczsNCgltc28tZm9udC1waXRjaDp2YXJp
YWJsZTsNCgltc28tZm9udC1zaWduYXR1cmU6LTUyMDA4MTY2NSAtMTA3MzcxNzE1NyA0MSAwIDY2
MDQ3IDA7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3Jt
YWwsIGRpdi5Nc29Ob3JtYWwNCgl7bXNvLXN0eWxlLXVuaGlkZTpubzsNCgltc28tc3R5bGUtcWZv
cm1hdDp5ZXM7DQoJbXNvLXN0eWxlLXBhcmVudDoiIjsNCgltYXJnaW46MGNtOw0KCW1hcmdpbi1i
b3R0b206LjAwMDFwdDsNCgltc28tcGFnaW5hdGlvbjp3aWRvdy1vcnBoYW47DQoJZm9udC1zaXpl
OjEyLjBwdDsNCglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIiwic2VyaWYiOw0KCW1zby1m
YXJlYXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7fQ0KYTpsaW5rLCBzcGFuLk1zb0h5cGVybGluaw0K
CXttc28tc3R5bGUtbm9zaG93OnllczsNCgltc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6
Ymx1ZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOw0KCXRleHQtdW5kZXJsaW5lOnNpbmds
ZTt9DQphOnZpc2l0ZWQsIHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQNCgl7bXNvLXN0eWxlLW5v
c2hvdzp5ZXM7DQoJbXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOnB1cnBsZTsNCgl0ZXh0
LWRlY29yYXRpb246dW5kZXJsaW5lOw0KCXRleHQtdW5kZXJsaW5lOnNpbmdsZTt9DQpwLk1zb0Fj
ZXRhdGUsIGxpLk1zb0FjZXRhdGUsIGRpdi5Nc29BY2V0YXRlDQoJe21zby1zdHlsZS1ub3Nob3c6
eWVzOw0KCW1zby1zdHlsZS1wcmlvcml0eTo5OTsNCgltc28tc3R5bGUtbGluazoiQmFsbG9vbiBU
ZXh0IENoYXIiOw0KCW1hcmdpbjowY207DQoJbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0KCW1zby1w
YWdpbmF0aW9uOndpZG93LW9ycGhhbjsNCglmb250LXNpemU6OC4wcHQ7DQoJZm9udC1mYW1pbHk6
IlRhaG9tYSIsInNhbnMtc2VyaWYiOw0KCW1zby1mYXJlYXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7
fQ0KcC5Nc29MaXN0UGFyYWdyYXBoLCBsaS5Nc29MaXN0UGFyYWdyYXBoLCBkaXYuTXNvTGlzdFBh
cmFncmFwaA0KCXttc28tc3R5bGUtcHJpb3JpdHk6MzQ7DQoJbXNvLXN0eWxlLXVuaGlkZTpubzsN
Cgltc28tc3R5bGUtcWZvcm1hdDp5ZXM7DQoJbWFyZ2luLXRvcDowY207DQoJbWFyZ2luLXJpZ2h0
OjBjbTsNCgltYXJnaW4tYm90dG9tOjBjbTsNCgltYXJnaW4tbGVmdDozNi4wcHQ7DQoJbWFyZ2lu
LWJvdHRvbTouMDAwMXB0Ow0KCW1zby1wYWdpbmF0aW9uOndpZG93LW9ycGhhbjsNCglmb250LXNp
emU6MTIuMHB0Ow0KCWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iLCJzZXJpZiI7DQoJbXNv
LWZhcmVhc3QtZm9udC1mYW1pbHk6Q2FsaWJyaTt9DQpzcGFuLkVtYWlsU3R5bGUxNw0KCXttc28t
c3R5bGUtdHlwZTpwZXJzb25hbC1yZXBseTsNCgltc28tc3R5bGUtbm9zaG93OnllczsNCgltc28t
c3R5bGUtdW5oaWRlOm5vOw0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMS4wcHQ7DQoJbXNvLWJpZGkt
Zm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMtc2VyaWYiOw0K
CW1zby1hc2NpaS1mb250LWZhbWlseTpDYWxpYnJpOw0KCW1zby1mYXJlYXN0LWZvbnQtZmFtaWx5
OkNhbGlicmk7DQoJbXNvLWhhbnNpLWZvbnQtZmFtaWx5OkNhbGlicmk7DQoJbXNvLWJpZGktZm9u
dC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiI7DQoJY29sb3I6IzFGNDk3RDt9DQpzcGFuLkJhbGxv
b25UZXh0Q2hhcg0KCXttc28tc3R5bGUtbmFtZToiQmFsbG9vbiBUZXh0IENoYXIiOw0KCW1zby1z
dHlsZS1ub3Nob3c6eWVzOw0KCW1zby1zdHlsZS1wcmlvcml0eTo5OTsNCgltc28tc3R5bGUtdW5o
aWRlOm5vOw0KCW1zby1zdHlsZS1sb2NrZWQ6eWVzOw0KCW1zby1zdHlsZS1saW5rOiJCYWxsb29u
IFRleHQiOw0KCW1zby1hbnNpLWZvbnQtc2l6ZTo4LjBwdDsNCgltc28tYmlkaS1mb250LXNpemU6
OC4wcHQ7DQoJZm9udC1mYW1pbHk6IlRhaG9tYSIsInNhbnMtc2VyaWYiOw0KCW1zby1hc2NpaS1m
b250LWZhbWlseTpUYWhvbWE7DQoJbXNvLWhhbnNpLWZvbnQtZmFtaWx5OlRhaG9tYTsNCgltc28t
YmlkaS1mb250LWZhbWlseTpUYWhvbWE7DQoJbXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tR0I7fQ0K
c3Bhbi5TcGVsbEUNCgl7bXNvLXN0eWxlLW5hbWU6IiI7DQoJbXNvLXNwbC1lOnllczt9DQouTXNv
Q2hwRGVmYXVsdA0KCXttc28tc3R5bGUtdHlwZTpleHBvcnQtb25seTsNCgltc28tZGVmYXVsdC1w
cm9wczp5ZXM7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLCJzYW5zLXNlcmlmIjsNCgltc28tYXNj
aWktZm9udC1mYW1pbHk6Q2FsaWJyaTsNCgltc28tZmFyZWFzdC1mb250LWZhbWlseTpDYWxpYnJp
Ow0KCW1zby1oYW5zaS1mb250LWZhbWlseTpDYWxpYnJpOw0KCW1zby1iaWRpLWZvbnQtZmFtaWx5
OiJUaW1lcyBOZXcgUm9tYW4iOw0KCW1zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTO30NCkBwYWdl
IFdvcmRTZWN0aW9uMQ0KCXtzaXplOjYxMi4wcHQgNzkyLjBwdDsNCgltYXJnaW46NzIuMHB0IDcy
LjBwdCA3Mi4wcHQgNzIuMHB0Ow0KCW1zby1oZWFkZXItbWFyZ2luOjM2LjBwdDsNCgltc28tZm9v
dGVyLW1hcmdpbjozNi4wcHQ7DQoJbXNvLXBhcGVyLXNvdXJjZTowO30NCmRpdi5Xb3JkU2VjdGlv
bjENCgl7cGFnZTpXb3JkU2VjdGlvbjE7fQ0KLyogTGlzdCBEZWZpbml0aW9ucyAqLw0KQGxpc3Qg
bDANCgl7bXNvLWxpc3QtaWQ6MTk1Mjg1MzQ2MDsNCgltc28tbGlzdC10eXBlOmh5YnJpZDsNCglt
c28tbGlzdC10ZW1wbGF0ZS1pZHM6LTE5OTA2OTc1NDIgOTU1Njg2MjE4IDEzNDgwNzU1NSAxMzQ4
MDc1NTcgMTM0ODA3NTUzIDEzNDgwNzU1NSAxMzQ4MDc1NTcgMTM0ODA3NTUzIDEzNDgwNzU1NSAx
MzQ4MDc1NTc7fQ0KQGxpc3QgbDA6bGV2ZWwxDQoJe21zby1sZXZlbC1zdGFydC1hdDowOw0KCW1z
by1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDotOw0KCW1zby1s
ZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0
ZXh0LWluZGVudDotMTguMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIiwic2Fucy1zZXJpZiI7
DQoJbXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6Q2FsaWJyaTsNCgltc28tYmlkaS1mb250LWZhbWls
eToiVGltZXMgTmV3IFJvbWFuIjt9DQpAbGlzdCBsMDpsZXZlbDINCgl7bXNvLWxldmVsLW51bWJl
ci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Om87DQoJbXNvLWxldmVsLXRhYi1zdG9w
Om5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0x
OC4wcHQ7DQoJZm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Ijt9DQpAbGlzdCBsMDpsZXZlbDMNCgl7
bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CpzsNCglt
c28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7
DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7fQ0KQGxpc3Qg
bDA6bGV2ZWw0DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwt
dGV4dDrvgrc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1w
b3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJZm9udC1mYW1pbHk6U3ltYm9s
O30NCkBsaXN0IGwwOmxldmVsNQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJ
bXNvLWxldmVsLXRleHQ6bzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwt
bnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCglmb250LWZhbWls
eToiQ291cmllciBOZXciO30NCkBsaXN0IGwwOmxldmVsNg0KCXttc28tbGV2ZWwtbnVtYmVyLWZv
cm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10YWItc3RvcDpu
b25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTgu
MHB0Ow0KCWZvbnQtZmFtaWx5OldpbmdkaW5nczt9DQpAbGlzdCBsMDpsZXZlbDcNCgl7bXNvLWxl
dmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2
ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4
dC1pbmRlbnQ6LTE4LjBwdDsNCglmb250LWZhbWlseTpTeW1ib2w7fQ0KQGxpc3QgbDA6bGV2ZWw4
DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDpvOw0K
CW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVm
dDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCWZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyI7fQ0K
QGxpc3QgbDA6bGV2ZWw5DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28t
bGV2ZWwtdGV4dDrvgqc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51
bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJZm9udC1mYW1pbHk6
V2luZ2RpbmdzO30NCm9sDQoJe21hcmdpbi1ib3R0b206MGNtO30NCnVsDQoJe21hcmdpbi1ib3R0
b206MGNtO30NCi0tPjwvc3R5bGU+PCEtLVtpZiBndGUgbXNvIDEwXT48c3R5bGU+LyogU3R5bGUg
RGVmaW5pdGlvbnMgKi8NCnRhYmxlLk1zb05vcm1hbFRhYmxlDQoJe21zby1zdHlsZS1uYW1lOiJU
YWJsZSBOb3JtYWwiOw0KCW1zby10c3R5bGUtcm93YmFuZC1zaXplOjA7DQoJbXNvLXRzdHlsZS1j
b2xiYW5kLXNpemU6MDsNCgltc28tc3R5bGUtbm9zaG93OnllczsNCgltc28tc3R5bGUtcHJpb3Jp
dHk6OTk7DQoJbXNvLXN0eWxlLXBhcmVudDoiIjsNCgltc28tcGFkZGluZy1hbHQ6MGNtIDUuNHB0
IDBjbSA1LjRwdDsNCgltc28tcGFyYS1tYXJnaW46MGNtOw0KCW1zby1wYXJhLW1hcmdpbi1ib3R0
b206LjAwMDFwdDsNCgltc28tcGFnaW5hdGlvbjp3aWRvdy1vcnBoYW47DQoJZm9udC1zaXplOjEx
LjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMtc2VyaWYiOw0KCW1zby1hc2NpaS1m
b250LWZhbWlseTpDYWxpYnJpOw0KCW1zby1oYW5zaS1mb250LWZhbWlseTpDYWxpYnJpOw0KCW1z
by1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTO30NCjwvc3R5bGU+PCFbZW5kaWZdLS0+PCEtLVtpZiBn
dGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWRlZmF1bHRzIHY6ZXh0PSJlZGl0IiBzcGlkbWF4PSIx
MDI2IiAvPg0KPC94bWw+PCFbZW5kaWZdLS0+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpz
aGFwZWxheW91dCB2OmV4dD0iZWRpdCI+DQo8bzppZG1hcCB2OmV4dD0iZWRpdCIgZGF0YT0iMSIg
Lz4NCjwvbzpzaGFwZWxheW91dD48L3htbD48IVtlbmRpZl0tLT4NCjwvaGVhZD4NCjxib2R5IGxh
bmc9IkVOLUdCIiBsaW5rPSJibHVlIiB2bGluaz0icHVycGxlIiBzdHlsZT0idGFiLWludGVydmFs
OjM2LjBwdCI+DQo8ZGl2IGNsYXNzPSJXb3JkU2VjdGlvbjEiPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1
b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tYmlkaS1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcg
Um9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RCI+VGhlcmXigJlzIGEgbXVsdGl0dWRlIG9mIHJlYXNv
bnMgd2h5IHlvdXIgVk0gbWF5IG5vdCBiZSBib290aW5nIGFmdGVyIG1lc3NpbmcNCiB3aXRoIHRo
ZSA8c3BhbiBjbGFzcz0iU3BlbGxFIj5jb25maWc8L3NwYW4+LiBZb3UgaGF2ZW7igJl0IGFjdHVh
bGx5IHNhaWQgaG93IGl0IGlzIGZhaWxpbmcgYnV0LCBzaW5jZSB5b3UgZG8gaGF2ZQ0KPHNwYW4g
Y2xhc3M9IlNwZWxsRSI+dGVzdHNpZ25pbmc8L3NwYW4+IGVuYWJsZWQsIG15IG5leHQgZ3Vlc3Mg
aXMgdGhhdCB5b3UgYXJlIGdldHRpbmcgYSAweDdCIGJsdWUgc2NyZWVuIGF0IGJvb3QgdGltZS4g
SWYgc28sIHRoaXMgaXMgYmVjYXVzZSB0aGUgWEVORklMVCBmaWx0ZXIgZHJpdmVyIGlzIHN0aWxs
IGluc3RhbGxlZCBhbmQgaXMgaW5zdHJ1Y3RpbmcgUUVNVSB0byB1bnBsdWcgZW11bGF0ZWQgZGV2
aWNlcyBhdCBib290IHRpbWUuPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJp
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7
VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPlRvIHN0b3AgaXQgZnJvbSBkb2lu
ZyB0aGlzIHlvdSBoYXZlIGEgY291cGxlIG9mIG9wdGlvbnM6PG86cD48L286cD48L3NwYW4+PC9m
b250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0
OTdkIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZh
bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWJpZGkt
Zm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxv
OnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFn
cmFwaCIgc3R5bGU9InRleHQtaW5kZW50Oi0xOC4wcHQ7bXNvLWxpc3Q6bDAgbGV2ZWwxIGxmbzEi
PjwhW2lmICFzdXBwb3J0TGlzdHNdPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNl
PSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWZhcmVhc3QtZm9udC1m
YW1pbHk6Q2FsaWJyaTttc28tYmlkaS1mb250LWZhbWlseTpDYWxpYnJpO2NvbG9yOiMxRjQ5N0Qi
PjxzcGFuIHN0eWxlPSJtc28tbGlzdDpJZ25vcmUiPi08Zm9udCBzaXplPSIxIiBmYWNlPSJUaW1l
cyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250OjcuMHB0ICZxdW90O1RpbWVzIE5ldyBSb21h
biZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7DQo8L3NwYW4+PC9mb250Pjwvc3Bhbj48L3NwYW4+PC9mb250PjwhW2VuZGlmXT48Zm9u
dCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5z
LXNlcmlmJnF1b3Q7O21zby1iaWRpLWZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZx
dW90Oztjb2xvcjojMUY0OTdEIj5GaW5kIGFsbCB0aGUgaW5zdGFuY2VzIG9mDQo8c3BhbiBjbGFz
cz0iU3BlbGxFIj5VcHBlckZpbHRlcnM8L3NwYW4+IHdoZXJlIFhFTkZJTFQgaXMgc3BlY2lmaWVk
ICh1bmRlciBIS0xNL1N5c3RlbS88c3BhbiBjbGFzcz0iU3BlbGxFIj5DdXJyZW50Q29udHJvbHNl
dDwvc3Bhbj4vQ29udHJvbC9DbGFzcykgYW5kIHJlbW92ZSB0aGVtLjxvOnA+PC9vOnA+PC9zcGFu
PjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCIgc3R5bGU9InRleHQtaW5k
ZW50Oi0xOC4wcHQ7bXNvLWxpc3Q6bDAgbGV2ZWwxIGxmbzEiPjwhW2lmICFzdXBwb3J0TGlzdHNd
Pjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90
O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6Q2FsaWJyaTttc28tYmlk
aS1mb250LWZhbWlseTpDYWxpYnJpO2NvbG9yOiMxRjQ5N0QiPjxzcGFuIHN0eWxlPSJtc28tbGlz
dDpJZ25vcmUiPi08Zm9udCBzaXplPSIxIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0
eWxlPSJmb250OjcuMHB0ICZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OyI+Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PC9mb250
Pjwvc3Bhbj48L3NwYW4+PC9mb250PjwhW2VuZGlmXT48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFm
NDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1iaWRp
LWZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90Oztjb2xvcjojMUY0OTdEIj5M
b29rIHVuZGVyIEhLTE0vU3lzdGVtLzxzcGFuIGNsYXNzPSJTcGVsbEUiPkN1cnJlbnRDb250cm9s
U2V0PC9zcGFuPi9TZXJ2aWNlcy9YRU4vVW5wbHVnDQogYW5kIHJlbW92ZSBhbnkgRElTS1MgdmFs
dWUgeW91IG1heSBmaW5kIHRoZXJlLjxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2Fs
aWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1iaWRpLWZvbnQtZmFtaWx5OiZx
dW90O1RpbWVzIE5ldyBSb21hbiZxdW90Oztjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpw
Pjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIg
Y29sb3I9IiMxZjQ5N2QiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90
Ozttc28tYmlkaS1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7Y29sb3I6
IzFGNDk3RCI+T25jZSB5b3UgaGF2ZSBkb25lIG9uZSBvciBib3RoIG9mIHRoZXNlIHlvdSBzaG91
bGQgYmUgYWJsZSB0byByZWJvb3QgeW91cg0KIFZNIGFuZCBlbXVsYXRlZCBkZXZpY2VzIHdpbGwg
c3RheSBwbHVnZ2VkLjxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90
OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1iaWRpLWZvbnQtZmFtaWx5OiZxdW90O1RpbWVz
IE5ldyBSb21hbiZxdW90Oztjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48
L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMx
ZjQ5N2QiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tYmlk
aS1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RCI+
VGhlIFBWIGRyaXZlcnMgbG9nIHRvIFFFTVUsIGlmIHlvdSBhcmUgcnVubmluZyBxZW11DQo8c3Bh
biBjbGFzcz0iU3BlbGxFIj50cmFkPC9zcGFuPiwgeW91IHNob3VsZCBzZWUgb3V0cHV0IGluIHRo
ZSBxZW11IGxvZyBmaWxlLiBJZiB5b3UgYXJlIHJ1bm5pbmcgdXBzdHJlYW0gUUVNVSB5b3XigJls
bCBuZWVkIHRvIGVuYWJsZSB0aGUNCjxzcGFuIGNsYXNzPSJTcGVsbEUiPnhlbl9wbGF0Zm9ybV9s
b2c8L3NwYW4+IGV2ZW50IGJlZm9yZSB5b3UgZ2V0IGFueSBsb2dnaW5nLjxvOnA+PC9vOnA+PC9z
cGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xv
cj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7
Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21z
by1iaWRpLWZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90Oztjb2xvcjojMUY0
OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9IkNhbGlicmkiPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss
JnF1b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tYmlkaS1mb250LWZhbWlseTomcXVvdDtUaW1lcyBO
ZXcgUm9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RCI+PHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjp5
ZXMiPiZuYnNwOw0KPC9zcGFuPlBhdWw8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9IkNh
bGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Ozttc28tYmlkaS1mb250LWZhbWlseTom
cXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286
cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIi
IGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVv
dDs7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9y
OiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8ZGl2IHN0eWxl
PSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCBibHVlIDEuNXB0O3BhZGRpbmc6MGNtIDBj
bSAwY20gNC4wcHQiPg0KPGRpdj4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci10b3A6
c29saWQgI0I1QzRERiAxLjBwdDtwYWRkaW5nOjMuMHB0IDBjbSAwY20gMGNtIj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxiPjxmb250IHNpemU9IjIiIGZhY2U9IlRhaG9tYSI+PHNwYW4gbGFuZz0i
RU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O1RhaG9tYSZx
dW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1mYXJlYXN0LWZvbnQtZmFtaWx5OiZxdW90
O1RpbWVzIE5ldyBSb21hbiZxdW90Ozttc28tYW5zaS1sYW5ndWFnZTpFTi1VUztmb250LXdlaWdo
dDpib2xkIj5Gcm9tOjwvc3Bhbj48L2ZvbnQ+PC9iPjxmb250IHNpemU9IjIiIGZhY2U9IlRhaG9t
YSI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O1RhaG9tYSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O21zby1mYXJlYXN0LWZv
bnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90Ozttc28tYW5zaS1sYW5ndWFnZTpF
Ti1VUyI+DQogY2hyaXMgW21haWx0bzp0a25jaHJpc0BnbWFpbC5jb21dIDxicj4NCjxiPjxzcGFu
IHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5TZW50Ojwvc3Bhbj48L2I+IDI0IEp1bHkgMjAxNiAw
NDozOTxicj4NCjxiPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5Ubzo8L3NwYW4+PC9i
PiBQYXVsIER1cnJhbnQ8YnI+DQo8Yj48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+Q2M6
PC9zcGFuPjwvYj4gd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnPGJyPg0KPGI+PHNw
YW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPlN1YmplY3Q6PC9zcGFuPjwvYj4gUmU6IFt3aW4t
cHYtZGV2ZWxdIFdpbi1wdiBkcml2ZXIgaW5zdGFsbCBzdWNjZXNzIGZhaWxzIHRvIGJvb3Q8bzpw
PjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMi4wcHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3
IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+T0suIEkgY2hhbmdlZCB0aGUg
Y29uZmlnIGJhY2sgYW5kIGkgc3RpbGwgY2FudCBib290LiBJIGRpZCBoYXZlIHRlc3RzaWduaW5n
IGVuYWJsZWQgYW5kIHJlYm9vdGVkIHR3aWNlIGJlZm9yZSBhdHRlbXB0aW5nIHRvIGluc3RhbGwg
dGhlIGRyaXZlcnMuJm5ic3A7PGJyPg0KPGJyPg0KQW55IGlkZWEgd2h5IHdpbmRvd3MgY2FudCBi
b290PyBJIGZvbGxvd2VkIHRoZSBpbnN0cnVjdGlvbnMgdG8gdGhlIGxldHRlciBzbyBJIGFtIHRy
eWluZyB0byB1bmRlcnN0YW5kIHdoeSBpdHMgbm90IHdvcmtpbmcuPG86cD48L286cD48L3NwYW4+
PC9mb250PjwvcD4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBm
YWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij48bzpw
PiZuYnNwOzwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjEyLjBwdCI+QWxzbywgZXZlbiB0aG91Z2ggSSBjb3VsZCByZWluc3Rh
bGwgSSdkIGxpa2UgdG8gd29yayB0aHJvdWdoIGdldHRpbmcgdGhlIGRyaXZlcnMgZGlzYWJsZWQg
LyB1bmluc3RhbGxlZCBhbmQgZ2V0IHRoaW5ncyBib290aW5nIGFnYWluIHNvIEkgYW0gZmFtaWxp
YXIgd2l0aCB0aGlzIHByb2Nlc3MuDQogSSBkb24ndCByZWFsbHkgdGhpbmsgaXRzIHdpc2UgdG8g
anVzdCByZWluc3RhbGwgdGhlbiBkb3duIHRoZSBsaW5lIGRlcGxveSB0aGlzIGludG8gcHJvZHVj
dGlvbiBhbmQgaGF2ZSBzb21ldGhpbmcgbGlrZSB0aGlzIGhhcHBlbiBhbmQgbm90IGhhdmUgYW55
IHNvbHV0aW9uIG90aGVyIHRoYW4gcmVpbnN0YWxsaW5nLjxvOnA+PC9vOnA+PC9zcGFuPjwvZm9u
dD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIz
IiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij48
bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+SSBoYXZlIHRyaWVkOjxvOnA+PC9vOnA+PC9zcGFu
PjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBz
aXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIu
MHB0Ij4tIHRyaWVkIGJvb3RpbmcgaW4gc2FmZSBtb2RlJm5ic3A7PG86cD48L286cD48L3NwYW4+
PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNp
emU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4w
cHQiPi0gdHJpZWQgc3RhcnR1cCByZXBhaXI8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0K
PC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0i
VGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+LSB0cmllZCBi
b290aW5nIGludG8gYSBjb21tYW5kIHByb21wdCBhbmQgdHJpZWQgcmVuYW1pbmcgYWxsIHRoZSB4
ZW4qLnN5cyBmaWxlcyBpbiBjOlx3aW5kb3dzXHN5c3RlbTMyXGRyaXZlcnNcPG86cD48L286cD48
L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxm
b250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMi4wcHQiPi0gdHJpZWQgYm9vdGluZyBpbnRvIGNvbW1hbmQgcHJvbXB0IGFuZCBkb2luZyBi
b290cmVjIC9maXhib290LCBib290cmVjIC9maXhtYnIsIGJvb3RyZWMgL3JlYnVpbGRiY2Q8bzpw
PjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjEyLjBwdCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwv
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRp
bWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjxvOnA+Jm5ic3A7
PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTIuMHB0Ij5XaGF0cyB0aGUgcHJvY2VzcyB0byByZXZlcnNlIHRoZSBpbnN0YWxs
YXRpb24gYW5kIGdldCB3aW5kb3dzIHRvIGJvb3Q/PG86cD48L286cD48L3NwYW4+PC9mb250Pjwv
cD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZh
Y2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjxvOnA+
Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTIuMHB0Ij5UaGFua3MhPG86cD48L286cD48L3NwYW4+PC9mb250Pjwv
cD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZh
Y2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPmNocmlz
PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9m
b250PjwvcD4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNl
PSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5PbiBGcmks
IEp1bCAyMiwgMjAxNiBhdCA0OjQ1IEFNLCBQYXVsIER1cnJhbnQgJmx0OzxhIGhyZWY9Im1haWx0
bzpQYXVsLkR1cnJhbnRAY2l0cml4LmNvbSIgdGFyZ2V0PSJfYmxhbmsiPlBhdWwuRHVycmFudEBj
aXRyaXguY29tPC9hPiZndDsgd3JvdGU6PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxk
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFs
dDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Zm9udCBzaXplPSIyIiBjb2xvcj0i
IzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9y
OiMxRjQ5N0QiPkhpIENocmlzLDwvc3Bhbj48L2ZvbnQ+PG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1i
b3R0b20tYWx0OmF1dG8iPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxp
YnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp
YnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9z
cGFuPjwvZm9udD48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJt
c28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGZvbnQg
c2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1z
ZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4mbmJzcDsgRG9u4oCZdCBtZXNzIHdpdGggdGhlIGRp
c2sgYW5kIG5ldHdvcmsgbGluZXMgaW4geW91cg0KIGNvbmZpZy4gWW91IHN0aWxsIG5lZWQgZW11
bGF0ZWQgZGlzayB0byBib290IFdpbmRvd3MgYXMgdGhlIGZpcm13YXJlIChTZWFCSU9TIG9yIFJP
TUJJT1MpIGRvZXMgbm90IGhhdmUgUFYgZnJvbnRlbmRzLiBPbmNlIFdpbmRvd3Mgc3RhcnRzIGFu
ZCB0aGUgUFYgZHJpdmVycyBsb2FkIHRoZXkgd2lsbCBpbnN0cnVjdCBRRU1VIHRvIHVucGx1ZyB0
aGUgZW11bGF0ZWQgZGV2aWNlcyBzbyB0aGF0IHRoZSBQViBkZXZpY2VzIGNhbiB0YWtlIHRoZWly
IHBsYWNlLjwvc3Bhbj48L2ZvbnQ+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
IiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1
dG8iPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZx
dW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjwvZm9udD48
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRv
cC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGZvbnQgc2l6ZT0iMiIgY29s
b3I9IiMxZjQ5N2QiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztj
b2xvcjojMUY0OTdEIj4mbmJzcDsgQXMgZm9yIHJlY292ZXJpbmcsIGl04oCZcyBwcm9iYWJseSBn
b2luZyB0byBiZSB0cmlja3kuDQogU2luY2UgeW91IHdlcmUgZG9pbmcgYSBmcmVzaCBpbnN0YWxs
IGl04oCZcyBwcm9iYWJseSBxdWlja2VyIHRvIHN0YXJ0IGFnYWluLiBUaGUgb3RoZXIgdGhpbmcg
dG8gZG8gKjxiPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5iZWZvcmU8L3NwYW4+PC9i
PiogeW91IGluc3RhbGwgUFYgZHJpdmVycyAoYW5kIEkgc3VzcGVjdCB0aGlzIGlzIHRoZSByb290
IG9mIHlvdXIgcHJvYmxlbSkgaXMgdG8gZW5hYmxlIHRlc3Qgc2lnbmVkIGRyaXZlcnMNCiBpbiBX
aW5kb3dzLiBXaW5kb3dzIDEwIChldmVuIDMyLWJpdCkgd2lsbCBub3QgbG9hZCB0ZXN0IHNpZ25l
ZCBkcml2ZXJzIHVubGVzcyB5b3UgaGF2ZSBkb25lOjwvc3Bhbj48L2ZvbnQ+PG86cD48L286cD48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87
bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdk
IiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3
RCI+Jm5ic3A7PC9zcGFuPjwvZm9udD48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6
YXV0byI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9IkNhbGlicmkiPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss
JnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj5iY2RlZGl0IC9zZXQgdGVzdHNp
Z25pbmcgb248L3NwYW4+PC9mb250PjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDph
dXRvIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oywm
cXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48L2ZvbnQ+
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10
b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxmb250IHNpemU9IjIiIGNv
bG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7
Y29sb3I6IzFGNDk3RCI+Jm5ic3A7IEhvcGUgdGhhdCBoZWxwcyw8L3NwYW4+PC9mb250PjxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFs
dDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Zm9udCBzaXplPSIyIiBjb2xvcj0i
IzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9y
OiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48L2ZvbnQ+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0
b20tYWx0OmF1dG8iPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJp
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7IFBhdWw8
L3NwYW4+PC9mb250PjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9
Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Zm9u
dCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5z
LXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48L2ZvbnQ+PG86cD48L286
cD48L3A+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCBibHVlIDEu
NXB0O3BhZGRpbmc6MGNtIDBjbSAwY20gNC4wcHQiPg0KPGRpdj4NCjxkaXYgc3R5bGU9ImJvcmRl
cjpub25lO2JvcmRlci10b3A6c29saWQgI0I1QzRERiAxLjBwdDtwYWRkaW5nOjMuMHB0IDBjbSAw
Y20gMGNtIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6
YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzttc28tb3V0bGluZS1sZXZlbDoxIj4NCjxi
Pjxmb250IHNpemU9IjIiIGZhY2U9IlRhaG9tYSI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJm
b250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O1RhaG9tYSZxdW90OywmcXVvdDtzYW5z
LXNlcmlmJnF1b3Q7O21zby1hbnNpLWxhbmd1YWdlOkVOLVVTO2ZvbnQtd2VpZ2h0OmJvbGQiPkZy
b206PC9zcGFuPjwvZm9udD48L2I+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iVGFob21hIj48c3BhbiBs
YW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7VGFo
b21hJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7bXNvLWFuc2ktbGFuZ3VhZ2U6RU4tVVMi
Pg0KIHdpbi1wdi1kZXZlbCBbbWFpbHRvOjxhIGhyZWY9Im1haWx0bzp3aW4tcHYtZGV2ZWwtYm91
bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZyIgdGFyZ2V0PSJfYmxhbmsiPndpbi1wdi1kZXZlbC1i
b3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnPC9hPl0NCjxiPjxzcGFuIHN0eWxlPSJmb250LXdl
aWdodDpib2xkIj5PbiBCZWhhbGYgT2YgPC9zcGFuPjwvYj5jaHJpczxicj4NCjxiPjxzcGFuIHN0
eWxlPSJmb250LXdlaWdodDpib2xkIj5TZW50Ojwvc3Bhbj48L2I+IDIxIEp1bHkgMjAxNiAxNDoz
MTxicj4NCjxiPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5Ubzo8L3NwYW4+PC9iPiA8
YSBocmVmPSJtYWlsdG86d2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIiB0YXJnZXQ9
Il9ibGFuayI+DQp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmc8L2E+PGJyPg0KPGI+
PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPlN1YmplY3Q6PC9zcGFuPjwvYj4gW3dpbi1w
di1kZXZlbF0gV2luLXB2IGRyaXZlciBpbnN0YWxsIHN1Y2Nlc3MgZmFpbHMgdG8gYm9vdDwvc3Bh
bj48L2ZvbnQ+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1h
cmdpbi1ib3R0b20tYWx0OmF1dG8iPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21h
biI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFu
PjwvZm9udD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJn
aW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Zm9udCBzaXplPSIz
IiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5I
ZWxsbyw8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1h
bHQ6YXV0byI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjEyLjBwdCI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4N
CjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRv
cC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGZvbnQgc2l6ZT0iMyIgZmFj
ZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+SSBhbSBh
IHByZXZpb3VzIGdwbHB2IHVzZXIgd2hvIHJlY2VudGx5IGNhbWUgYWNyb3NzIHRoaXMgcHJvamVj
dCBhbmQgd2FudGVkIHRvIGdpdmUgYSB0cnkgdG8gYXRsZWFzdCBoZWxwIHByb3ZpZGUNCiBmZWVk
YmFjayBhbmQgdGVzdGluZy48bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRv
O21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBO
ZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij4mbmJzcDs8bzpwPjwvbzpw
Pjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIg
c3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRv
Ij48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTIuMHB0Ij5JIGRvd25sb2FkZWQgdGhlIGxhdGVzdCBkcml2ZXJzIHZpYSB0aGUgdGFy
IGZpbGVzIG9uIHRoaXMgcGFnZTo8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDph
dXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1l
cyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij4mbmJzcDs8bzpwPjwv
bzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDph
dXRvIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTIuMHB0Ij48YSBocmVmPSJodHRwOi8vd3d3LnhlbnByb2plY3Qub3JnL2Rvd25s
b2Fkcy93aW5kb3dzLXB2LWRyaXZlcnMvZGV2ZWxvcG1lbnQtYnVpbGRzLmh0bWwiIHRhcmdldD0i
X2JsYW5rIj5odHRwOi8vd3d3LnhlbnByb2plY3Qub3JnL2Rvd25sb2Fkcy93aW5kb3dzLXB2LWRy
aXZlcnMvZGV2ZWxvcG1lbnQtYnVpbGRzLmh0bWw8L2E+PG86cD48L286cD48L3NwYW4+PC9mb250
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFy
Z2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGZvbnQgc2l6ZT0i
MyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+
Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2lu
LWJvdHRvbS1hbHQ6YXV0byI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+SSBleHRyYWN0ZWQgYW5kIHJhbiBkcGluc3Qg
YXMgbm90ZWQgaW4gdGhlIHJlYWRtZSB0eHQgJm5ic3A7Zm9yIGVhY2ggZHJpdmVyIGFuZCBzYXcg
dGhhdCBpbiBkZXZpY2UgbWFuYWdlciBpdCBjcmVhdGVkDQogc29tZSBuZXcgZGV2aWNlcy4gTk9U
RSB0aGlzIGlzIGEgY2xlYW4gaW5zdGFsbCBhbmQgZGlkIG5vdCBoYXZlIGdwbHB2IG9yIGFueSBv
dGhlciBkcml2ZXJzIHByZXZpb3VzbHkmbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9w
Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4t
dG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Zm9udCBzaXplPSIzIiBm
YWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij48YnI+
DQpJIHNodXRkb3duIHRoZSBkb211LCBjaGFuZ2VkIG15IGRpc2sgYW5kIG5ldHdvcmsgbGluZXMg
dG8gdXNlIHRoZSBQViBzdHlsZTo8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDph
dXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1l
cyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij4mbmJzcDs8bzpwPjwv
bzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRv
bS1hbHQ6YXV0byI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjEyLjBwdCI+J2ZpbGU6L21udC92aWwxMDY0L3ZpbDEwNjQtc3NkLmlt
Zyx4dmRhLHcnLDxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0K
PGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3At
YWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxmb250IHNpemU9IjMiIGZhY2U9
IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPiZuYnNwOzxv
OnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20t
YWx0OmF1dG8iPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMi4wcHQiPnZpZiA9IFsndHlwZT1uZXRmcm9udCwgYnJpZGdlPXhlbmJy
MCwgbWFjPTAwOjE2OjNEOjM3OkEwOkEzJ108bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0K
PC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1h
cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxmb250IHNpemU9
IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQi
PiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdp
bi1ib3R0b20tYWx0OmF1dG8iPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPmFuZCB3aGVuIGkgdHJpZWQgdG8gc3RhcnQg
aXQgdXAsIGl0IGdldHMgc3R1Y2sgYXQgd2luZG93cyAxMCBsb2FkaW5nIHNjcmVlbiB3aXRoIHRo
ZSBsb2dvIGFuZCB0aGUgc3Bpbm5pbmcgd2hlZWwNCiB1bmRlcm5lYXRoLiBpIGxlZnQgaXQgZm9y
IHNldmVyYWwgaG91cnMgYW5kIGl0IG5ldmVyIGdvdCBhbnkgZnVydGhlciBub3IgZGlkIGl0IGJz
b2QnZCBvciByZWJvb3Qgb3ZlciBhbmQgb3Zlci48bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9w
Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4t
dG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Zm9udCBzaXplPSIzIiBm
YWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij4mbmJz
cDs8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90
dG9tLWFsdDphdXRvIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5pIHdlbnQgJm5ic3A7YmFjayBhbmQgY2hhbmdlZCBt
eSBjb25maWcgYmFjayB0byBlbXVsYXRlZCBpbnRlcmZhY2VzIGFuZCB3aW5kb3dzIDEwIGRvZXMg
bm90IHN0YXJ0IHZpYSB0aGUgb3JpZ2luYWwNCiBjb25maWcgZWl0aGVyPG86cD48L286cD48L3Nw
YW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxl
PSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGZv
bnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjEyLjBwdCI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bztt
c28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3
IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+ZGlkIGkgbWlzcyBzb21lIGNy
aXRpY2FsIHN0ZXAocyk/IGFueSBpZGVhcyB3aHkgdGhlIE9TIHdvbnQgYm9vdD8gd2hhdHMgaGUg
YmVzdCB0byByZW1vdmUgdGhlIGRyaXZlcnMgYW5kIHRyeQ0KIGFnYWluPzxvOnA+PC9vOnA+PC9z
cGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls
ZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxm
b250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMi4wcHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87
bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5l
dyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPmkgYW0gYSBmYWlybHkgdGVj
aG5pY2FsIGxpbnV4IGFuZCB3aW5kb3dzIHVzZXIgYW5kIHdpbGxpbmcgdG8gaW52ZXN0IHNvbWUg
dGltZSB0byBhbnl0aGluZyB0aGF0IHdpbGwgaGVscCBzbw0KIHBsZWFzZSBsZXQgbWUga25vdyBp
ZiB0aGVyZXMgYW55IG1vcmUgaW5mbyBvciBhbnl0aGluZyBpIGNhbiBkbyB0byBnaXZlIHlvdSBt
b3JlIGRhdGE8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJn
aW4tYm90dG9tLWFsdDphdXRvIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4i
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij4mbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48
L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1z
by1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Zm9udCBz
aXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIu
MHB0Ij50aGUgZG9tMCBpcyBhIHVwIHRvIGRhdGUgZGViaWFuIGplc3NpZSwgeGwgaW5mbyBnaXZl
czo8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFy
Z2luLWJvdHRvbS1hbHQ6YXV0byI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFu
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+cmVsZWFzZSAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiAzLjE2LjAtNC1hbWQ2NDxv
OnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20t
YWx0OmF1dG8iPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMi4wcHQiPnZlcnNpb24gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzogIzEgU01QIERlYmlhbiAzLjE2LjctY2t0MTEt
MSYjNDM7ZGViOHU1ICgyMDE1LTEwLTA5KTxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8
L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3At
YWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxmb250IHNpemU9IjMiIGZhY2U9
IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPm1hY2hpbmUg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzog
eDg2XzY0PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2lu
LWJvdHRvbS1hbHQ6YXV0byI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+bnJfY3B1cyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiAxMjxvOnA+PC9vOnA+PC9zcGFu
PjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0i
bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxmb250
IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
Mi4wcHQiPm1heF9jcHVfaWQgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgOiAxNTxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdp
bi1ib3R0b20tYWx0OmF1dG8iPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPm5yX25vZGVzICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IDI8bzpwPjwvbzpwPjwvc3Bhbj48L2Zv
bnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1t
YXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Zm9udCBzaXpl
PSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0
Ij5jb3Jlc19wZXJfc29ja2V0ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogMTI8bzpwPjwvbzpwPjwv
c3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5
bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48
Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTIuMHB0Ij50aHJlYWRzX3Blcl9jb3JlICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogMTxvOnA+
PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0
OmF1dG8iPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMi4wcHQiPmNwdV9taHogJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzogMjEwMDxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48
L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdp
bi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxmb250IHNpemU9IjMi
IGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPmh3
X2NhcHMgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOzogMTc4YmYzZmY6ZWZkM2ZiZmY6MDAwMDAwMDA6MDAwMDEzMDA6MDA4MDIwMDE6MDAwMDAw
MDA6MDAwODM3ZmY6MDAwMDAwMDA8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDph
dXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1l
cyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij52aXJ0X2NhcHMgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiBodm08bzpwPjwv
bzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDph
dXRvIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTIuMHB0Ij50b3RhbF9tZW1vcnkgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyA6IDU3MzQyPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bztt
c28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3
IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+ZnJlZV9tZW1vcnkgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs6IDE2NDU1PG86cD48L286cD48L3Nw
YW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxl
PSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGZv
bnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjEyLjBwdCI+c2hhcmluZ19mcmVlZF9tZW1vcnkgJm5ic3A7IDogMDxvOnA+PC9vOnA+PC9zcGFu
PjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0i
bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxmb250
IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
Mi4wcHQiPnNoYXJpbmdfdXNlZF9tZW1vcnkgJm5ic3A7ICZuYnNwOzogMDxvOnA+PC9vOnA+PC9z
cGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls
ZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxm
b250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMi4wcHQiPm91dHN0YW5kaW5nX2NsYWltcyAmbmJzcDsgJm5ic3A7IDogMDxvOnA+PC9vOnA+
PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBz
dHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8i
Pjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMi4wcHQiPmZyZWVfY3B1cyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDs6IDA8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRv
O21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBO
ZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij54ZW5fbWFqb3IgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiA0PG86cD48L286cD48
L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0
eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+
PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjEyLjBwdCI+eGVuX21pbm9yICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOzogNDxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87
bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5l
dyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPnhlbl9leHRyYSAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs6IC4xPG86cD48L286cD48
L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0
eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+
PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjEyLjBwdCI+eGVuX3ZlcnNpb24gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDs6IDQuNC4xPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bztt
c28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3
IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+eGVuX2NhcHMgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogeGVuLTMuMC14ODZfNjQg
eGVuLTMuMC14ODZfMzJwIGh2bS0zLjAteDg2XzMyIGh2bS0zLjAteDg2XzMycCBodm0tMy4wLXg4
Nl82NCZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1h
cmdpbi1ib3R0b20tYWx0OmF1dG8iPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21h
biI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPnhlbl9zY2hlZHVsZXIgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzogY3JlZGl0PG86cD48L286cD48L3NwYW4+PC9mb250
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFy
Z2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGZvbnQgc2l6ZT0i
MyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+
eGVuX3BhZ2VzaXplICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiA0MDk2PG86
cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1h
bHQ6YXV0byI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjEyLjBwdCI+cGxhdGZvcm1fcGFyYW1zICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOzogdmlydF9zdGFydD0weGZmZmY4MDAwMDAwMDAwMDA8bzpwPjwvbzpwPjwvc3Bhbj48
L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1z
by1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Zm9udCBz
aXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIu
MHB0Ij54ZW5fY2hhbmdlc2V0ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs6Jm5i
c3A7PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJv
dHRvbS1hbHQ6YXV0byI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+eGVuX2NvbW1hbmRsaW5lICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOzogcGxhY2Vob2xkZXIgZG9tMF9tZW09MTAyNE08bzpwPjwvbzpwPjwvc3Bh
bj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9
Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Zm9u
dCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTIuMHB0Ij5jY19jb21waWxlciAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOzogZ2NjIChEZWJpYW4gNC45LjItMTApIDQuOS4yPG86cD48L286cD48L3NwYW4+PC9mb250
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFy
Z2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGZvbnQgc2l6ZT0i
MyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+
Y2NfY29tcGlsZV9ieSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiB1bHRyb3R0
ZXI8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90
dG9tLWFsdDphdXRvIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5jY19jb21waWxlX2RvbWFpbiAmbmJzcDsgJm5ic3A7
ICZuYnNwOzoNCjxhIGhyZWY9Imh0dHA6Ly9kZWJpYW4ub3JnIiB0YXJnZXQ9Il9ibGFuayI+ZGVi
aWFuLm9yZzwvYT48bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1t
YXJnaW4tYm90dG9tLWFsdDphdXRvIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9t
YW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5jY19jb21waWxlX2RhdGUgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiBUaHUgSnVuIDExIDE4OjI0OjE3IEVFU1QgMjAxNTxvOnA+
PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0
OmF1dG8iPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMi4wcHQiPnhlbmRfY29uZmlnX2Zvcm1hdCAmbmJzcDsgJm5ic3A7IDogNDxv
OnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2lu
LWJvdHRvbS1hbHQ6YXV0byI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9m
b250PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28t
bWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGZvbnQgc2l6
ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBw
dCI+Y2hyaXM8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwv
ZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+
DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2JvZHk+DQo8L2h0bWw+DQo=

--_000_c848c20d02a0447c9fa608e215f78e2bAMSPEX02CL03citritenet_--


--===============3781493159367009718==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============3781493159367009718==--


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 25 13:51:13 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 25 Jul 2016 13:51:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bRgHo-00019r-5I; Mon, 25 Jul 2016 13:51:12 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=0077a6cd2=Paul.Durrant@citrix.com>)
 id 1bRgHm-00019l-I8
 for win-pv-devel@lists.xenproject.org; Mon, 25 Jul 2016 13:51:10 +0000
Received: from [85.158.143.35] by server-3.bemta-6.messagelabs.com id
 28/7C-05661-D4916975; Mon, 25 Jul 2016 13:51:09 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrDIsWRWlGSWpSXmKPExsWyU9JRQtdXclq
 4wYX1whZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y93lhSwFu3krzi8PaWBcwtvFyMkhIeAncefm
 ajYQm01AR2Lp0flMILaIQInEumWfmEFsYQFFiZudEDUiAkoSh79uZIawjST2b94JVs8ioCqx4
 EovO4jNK+Auce/AbrC4EJC9vO8PC4jNKeAhMe/0fLA5jAKyEl8aV4PNYRYQl7j1BGKvhICAxJ
 I955khbFGJl4//sULYBhJbl+4DmsMBVK8psX6XPkSrosSU7odQawUlTs58wgKxVkViy+MDUGO
 4JVZ+/sMygVFkFpJtsxAmzUIyaRaSSQsYWVYxqhenFpWlFuka6iUVZaZnlOQmZuboGhqY6eWm
 FhcnpqfmJCYV6yXn525iBMYCAxDsYNz53OkQoyQHk5IorwPjtHAhvqT8lMqMxOKM+KLSnNTiQ
 4wyHBxKErzbxIFygkWp6akVaZk5wKiESUtw8CiJ8M4HSfMWFyTmFmemQ6ROMSpKifMeBEkIgC
 QySvPg2mCJ4BKjrJQwLyPQIUI8BalFuZklqPKvGMU5GJWEedeATOHJzCuBm/4KaDET0OIFPJN
 BFpckIqSkGhiZOnIMo1j+vludxlp3++SnqfEzvvxSfvV0xrsrMxWO5V++Gdm1nNdoftkmrY7Z
 eTfSv2VMjo39qH42+Xb56sPlgVfyD9kw3OA+crJdfL9Idbi6gG2OVcQthrd7WyRa791jti9do
 z357urN5y4+if0rENvwrEKj0vzzxL6yE72hqfzPrzIqRpcqsRRnJBpqMRcVJwIABijsnf8CAA
 A=
X-Env-Sender: prvs=0077a6cd2=Paul.Durrant@citrix.com
X-Msg-Ref: server-12.tower-21.messagelabs.com!1469454669!25597191!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: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 49263 invoked from network); 25 Jul 2016 13:51:09 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-12.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 25 Jul 2016 13:51:09 -0000
X-IronPort-AV: E=Sophos;i="5.28,419,1464652800"; d="scan'208";a="27082305"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Paul Durrant <Paul.Durrant@citrix.com>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: Signed 8.1.0 drivers
Thread-Index: AdHkKv6ycLsSp0RNRIWfEjeYPAAr4wCUGK/Q
Date: Mon, 25 Jul 2016 13:51:07 +0000
Message-ID: <0c379cd3a28f44569b154d9afa1a4ee2@AMSPEX02CL03.citrite.net>
References: <f92517584f1142d9b4bfee538df7d3df@AMSPEX02CL03.citrite.net>
In-Reply-To: <f92517584f1142d9b4bfee538df7d3df@AMSPEX02CL03.citrite.net>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] Signed 8.1.0 drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIFBhdWwgRHVycmFudA0KPiBTZW50OiAyMiBKdWx5IDIwMTYgMTY6MTINCj4gVG86IHdpbi1w
di1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBT
aWduZWQgOC4xLjAgZHJpdmVycw0KPiANCj4gQWxsLA0KPiANCj4gICBHb29kIG5ld3MhIEkgaGF2
ZSB0YWdnZWQgdGhlIDguMS4wIHJlbGVhc2UgZHJpdmVyIHNvdXJjZSBpbiBlYWNoIG9mIHRoZQ0K
PiByZXBvc2l0b3JpZXMsIGJ1aWx0IGl0IGFuZCBzaWduZWQgaXQuIEkgZG9uJ3QgeWV0IGhhdmUg
YW4gb2ZmaWNpYWwgcGxhY2UgdG8gcHV0IHRoZQ0KPiBzaWduZWQgYnVpbGRzIHNvIGZvciB0aGUg
bW9tZW50IHlvdSBjYW4gZ2V0IHRoZW0gZnJvbQ0KPiANCj4gaHR0cHM6Ly94ZW5iaXRzLnhlbi5v
cmcvcGVvcGxlL3BhdWxkdS9wdmRyaXZlcnMvd2luL3JlbGVhc2UvOC4xLjANCj4gDQo+ICAgSSBo
YXZlIHRlc3RlZCBpbnN0YWxsYXRpb24gb24gV2luZG93cyAxMCAoMzItYml0KSBhbmQgdGhlIHNp
Z25hdHVyZXMgYXBwZWFyDQo+IHRvIGJlIGdvb2QuDQo+IA0KPiAgIEkgd2lsbCBsZXQgdGhlIGxp
c3Qga25vdyB3aGVuIHRoZSB0YXJiYWxscyBtb3ZlIHRvIGEgbW9yZSBwZXJtYW5lbnQgcGxhY2UN
Cj4gYW5kIEkgd2lsbCwgYXQgdGhhdCBwb2ludCwgbGluayB0aGVtIGZyb20gdGhlIHByb2plY3Qg
ZnJvbnQgcGFnZS4NCj4gDQoNCkFsbCwNCg0KVGhlIHRhcmJhbGxzIGFyZSBub3cgaW4gdGhlaXIg
cGVybWFuZW50IGhvbWUgKGh0dHBzOi8veGVuYml0cy54ZW4ub3JnL3B2ZHJpdmVycy93aW4vOC4x
LjApIGFuZCBhcmUgbGlua2VkIGZyb20gdGhlIHByb2plY3QgZnJvbnQgcGFnZSAoaHR0cDovL3d3
dy54ZW5wcm9qZWN0Lm9yZy9kZXZlbG9wZXJzL3RlYW1zL3dpbmRvd3MtcHYtZHJpdmVycy5odG1s
KS4NCg0KICBDaGVlcnMsDQoNCiAgUGF1bA0KDQo+ICAgQ2hlZXJzLA0KPiANCj4gICAgIFBhdWwN
Cj4gDQo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+
IHdpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2pl
Y3Qub3JnDQo+IGh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xp
c3RpbmZvL3dpbi1wdi1kZXZlbA0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMu
eGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxt
YW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Mon Jul 25 13:51:13 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 25 Jul 2016 13:51:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bRgHo-00019r-5I; Mon, 25 Jul 2016 13:51:12 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=0077a6cd2=Paul.Durrant@citrix.com>)
 id 1bRgHm-00019l-I8
 for win-pv-devel@lists.xenproject.org; Mon, 25 Jul 2016 13:51:10 +0000
Received: from [85.158.143.35] by server-3.bemta-6.messagelabs.com id
 28/7C-05661-D4916975; Mon, 25 Jul 2016 13:51:09 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrDIsWRWlGSWpSXmKPExsWyU9JRQtdXclq
 4wYX1whZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y93lhSwFu3krzi8PaWBcwtvFyMkhIeAncefm
 ajYQm01AR2Lp0flMILaIQInEumWfmEFsYQFFiZudEDUiAkoSh79uZIawjST2b94JVs8ioCqx4
 EovO4jNK+Auce/AbrC4EJC9vO8PC4jNKeAhMe/0fLA5jAKyEl8aV4PNYRYQl7j1BGKvhICAxJ
 I955khbFGJl4//sULYBhJbl+4DmsMBVK8psX6XPkSrosSU7odQawUlTs58wgKxVkViy+MDUGO
 4JVZ+/sMygVFkFpJtsxAmzUIyaRaSSQsYWVYxqhenFpWlFuka6iUVZaZnlOQmZuboGhqY6eWm
 FhcnpqfmJCYV6yXn525iBMYCAxDsYNz53OkQoyQHk5IorwPjtHAhvqT8lMqMxOKM+KLSnNTiQ
 4wyHBxKErzbxIFygkWp6akVaZk5wKiESUtw8CiJ8M4HSfMWFyTmFmemQ6ROMSpKifMeBEkIgC
 QySvPg2mCJ4BKjrJQwLyPQIUI8BalFuZklqPKvGMU5GJWEedeATOHJzCuBm/4KaDET0OIFPJN
 BFpckIqSkGhiZOnIMo1j+vludxlp3++SnqfEzvvxSfvV0xrsrMxWO5V++Gdm1nNdoftkmrY7Z
 eTfSv2VMjo39qH42+Xb56sPlgVfyD9kw3OA+crJdfL9Idbi6gG2OVcQthrd7WyRa791jti9do
 z357urN5y4+if0rENvwrEKj0vzzxL6yE72hqfzPrzIqRpcqsRRnJBpqMRcVJwIABijsnf8CAA
 A=
X-Env-Sender: prvs=0077a6cd2=Paul.Durrant@citrix.com
X-Msg-Ref: server-12.tower-21.messagelabs.com!1469454669!25597191!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: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 49263 invoked from network); 25 Jul 2016 13:51:09 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-12.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 25 Jul 2016 13:51:09 -0000
X-IronPort-AV: E=Sophos;i="5.28,419,1464652800"; d="scan'208";a="27082305"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Paul Durrant <Paul.Durrant@citrix.com>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: Signed 8.1.0 drivers
Thread-Index: AdHkKv6ycLsSp0RNRIWfEjeYPAAr4wCUGK/Q
Date: Mon, 25 Jul 2016 13:51:07 +0000
Message-ID: <0c379cd3a28f44569b154d9afa1a4ee2@AMSPEX02CL03.citrite.net>
References: <f92517584f1142d9b4bfee538df7d3df@AMSPEX02CL03.citrite.net>
In-Reply-To: <f92517584f1142d9b4bfee538df7d3df@AMSPEX02CL03.citrite.net>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] Signed 8.1.0 drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIFBhdWwgRHVycmFudA0KPiBTZW50OiAyMiBKdWx5IDIwMTYgMTY6MTINCj4gVG86IHdpbi1w
di1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBT
aWduZWQgOC4xLjAgZHJpdmVycw0KPiANCj4gQWxsLA0KPiANCj4gICBHb29kIG5ld3MhIEkgaGF2
ZSB0YWdnZWQgdGhlIDguMS4wIHJlbGVhc2UgZHJpdmVyIHNvdXJjZSBpbiBlYWNoIG9mIHRoZQ0K
PiByZXBvc2l0b3JpZXMsIGJ1aWx0IGl0IGFuZCBzaWduZWQgaXQuIEkgZG9uJ3QgeWV0IGhhdmUg
YW4gb2ZmaWNpYWwgcGxhY2UgdG8gcHV0IHRoZQ0KPiBzaWduZWQgYnVpbGRzIHNvIGZvciB0aGUg
bW9tZW50IHlvdSBjYW4gZ2V0IHRoZW0gZnJvbQ0KPiANCj4gaHR0cHM6Ly94ZW5iaXRzLnhlbi5v
cmcvcGVvcGxlL3BhdWxkdS9wdmRyaXZlcnMvd2luL3JlbGVhc2UvOC4xLjANCj4gDQo+ICAgSSBo
YXZlIHRlc3RlZCBpbnN0YWxsYXRpb24gb24gV2luZG93cyAxMCAoMzItYml0KSBhbmQgdGhlIHNp
Z25hdHVyZXMgYXBwZWFyDQo+IHRvIGJlIGdvb2QuDQo+IA0KPiAgIEkgd2lsbCBsZXQgdGhlIGxp
c3Qga25vdyB3aGVuIHRoZSB0YXJiYWxscyBtb3ZlIHRvIGEgbW9yZSBwZXJtYW5lbnQgcGxhY2UN
Cj4gYW5kIEkgd2lsbCwgYXQgdGhhdCBwb2ludCwgbGluayB0aGVtIGZyb20gdGhlIHByb2plY3Qg
ZnJvbnQgcGFnZS4NCj4gDQoNCkFsbCwNCg0KVGhlIHRhcmJhbGxzIGFyZSBub3cgaW4gdGhlaXIg
cGVybWFuZW50IGhvbWUgKGh0dHBzOi8veGVuYml0cy54ZW4ub3JnL3B2ZHJpdmVycy93aW4vOC4x
LjApIGFuZCBhcmUgbGlua2VkIGZyb20gdGhlIHByb2plY3QgZnJvbnQgcGFnZSAoaHR0cDovL3d3
dy54ZW5wcm9qZWN0Lm9yZy9kZXZlbG9wZXJzL3RlYW1zL3dpbmRvd3MtcHYtZHJpdmVycy5odG1s
KS4NCg0KICBDaGVlcnMsDQoNCiAgUGF1bA0KDQo+ICAgQ2hlZXJzLA0KPiANCj4gICAgIFBhdWwN
Cj4gDQo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+
IHdpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2pl
Y3Qub3JnDQo+IGh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xp
c3RpbmZvL3dpbi1wdi1kZXZlbA0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMu
eGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxt
YW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 26 08:26:16 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 26 Jul 2016 08:26:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bRxgs-0006Vo-SE; Tue, 26 Jul 2016 08:26:14 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bRxgs-0006Vi-Bb
 for win-pv-devel@lists.xenproject.org; Tue, 26 Jul 2016 08:26:14 +0000
Received: from [85.158.143.35] by server-2.bemta-6.messagelabs.com id
 6A/C0-13744-5AE17975; Tue, 26 Jul 2016 08:26:13 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprMIsWRWlGSWpSXmKPExsXiVRvkqLtUbnq
 4wZstbBZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y9OUG0wFj6QrVm67xdTAuEiyi5GLQ0hgFqNE
 64EPzCAOi8AlFondp3eygjgSAu9YJI7tW87excgJ5MRIPLu1lBXCrpRonfAeLC4koCjRfO0CO
 8SolUwSs1t6GUESbALqErffL4ZqtpP4NOsmmC0ioCpxbfkxNhCbWUBL4uGGeWD1wgJKEr/WLg
 JbwAJUs+TGWWYQm1fATeLU3+dsEHPkJPZOXs0ygZF/ASPDKkb14tSistQiXUO9pKLM9IyS3MT
 MHF1DAzO93NTi4sT01JzEpGK95PzcTYzAAGIAgh2MO587HWKU5GBSEuVlmjAtXIgvKT+lMiOx
 OCO+qDQntfgQowwHh5IE7yzZ6eFCgkWp6akVaZk5wFCGSUtw8CiJ8E4FSfMWFyTmFmemQ6ROM
 epybJl6by2TEEtefl6qlDjvPJAiAZCijNI8uBGwuLrEKCslzMsIdJQQT0FqUW5mCar8K0ZxDk
 YlYd6tIFN4MvNK4Da9AjqCCeiIBTyTQY4oSURISTUwquTG8jdFOT3+bf/n5vK220pOW86pysy
 TrZque2w+7ykb7cML7Xju62X+FTP8nNNycr0Lq/Oe2yFMqw4cc4lhc1fp3zjjnmzj1En2kz/s
 Ya+64T+n07481oDpL//8hpa1u8Pf2PW3cW1/y9XKz/TyhkrlrIK5F1crbvxxp3zC1013lyzas
 2CmjBJLcUaioRZzUXEiAKrha8GmAgAA
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-11.tower-21.messagelabs.com!1469521572!25595026!1
X-Originating-IP: [74.125.82.65]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 35395 invoked from network); 26 Jul 2016 08:26:13 -0000
Received: from mail-wm0-f65.google.com (HELO mail-wm0-f65.google.com)
 (74.125.82.65)
 by server-11.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 26 Jul 2016 08:26:13 -0000
Received: by mail-wm0-f65.google.com with SMTP id q128so480554wma.1
 for <win-pv-devel@lists.xenproject.org>; Tue, 26 Jul 2016 01:26:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=vuIRaGNA/CaRdS+zyUnyiBAwZfPHdER6cmvgf3MrdFI=;
 b=vtS/zoh0gUVIo/2Jtl1VYLhMVagjoDtdKAAGGnRGDYAN/P+Nl2XaPVwkbVLgsyfcwB
 xJ95OBffJLzthTFTfCaTXBWHmOWELUnZeTAiyI9iYh0lZbPKfJDztIQLWAvH5DBTJBR6
 858Y3Hw/ZvEonArfgs+JC5ZkeqyUaDpCXEyEhTwLOxkkyzQcioQxsFZETqYBjFe6028L
 HGnt0nysPhUf/kKGrZSBuTEjy5Js3WKYdJ0JVDwX7I+F1Qs4igWVqYDYFVEvv9UnKZNN
 B6/+0DzRZneKy/n42FP4CZhN7gcof3bjkR1fG5/dH+3M/M41mkbHck+gMK8bP56pI8ZT
 wX0w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=vuIRaGNA/CaRdS+zyUnyiBAwZfPHdER6cmvgf3MrdFI=;
 b=JaPqc7Hr8GjGnI7MRj3bpePR5girS+h8t/NV8s/05QI9XP5PGhEwZear90Ykcofcwj
 0omb/MOpfI/X61XhwXmw4CD2KLaEUxWCpaCQgH6xlJutO6/q2dXt+SLYGSXcfCJFK8wi
 +YKGFVkywKr9YNx9eXInqBrOmubJWIlI0GGcxt01cXqjVUidKZjZvw/dIPIgHAWP0TbX
 AHlcK7nTejzCxl7UyT83ATk3wEuno0hw5TnAx9R3DvPzysAzZHfzftKsAmgudwQ1tJR5
 vS9wsgB/vxRD8J3X5yCcg70qQBuCWk56Vu1QZA+VmEV0A66eIehj5V4Ix85c0wlxOqAK
 cZdg==
X-Gm-Message-State: ALyK8tLHG5NDX2EcpxBy0O5InnisXichBDdbaddl159oYZWTUPk/1YdhpQU/qu25EIll3A==
X-Received: by 10.28.54.229 with SMTP id y98mr42280245wmh.96.1469521572481;
 Tue, 26 Jul 2016 01:26:12 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id r127sm31533403wmf.23.2016.07.26.01.26.11
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Tue, 26 Jul 2016 01:26:11 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 26 Jul 2016 09:25:59 +0100
Message-Id: <1469521559-8892-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Fix VS2012 builds
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

QnVpbGRpbmcgZm9yIE9TIGVhcmxpZXIgdGhhbiBXaW5kb3dzIDcgbm93IHJlcXVpcmVzIHVzZSBv
ZiBwcm9jZ3JwLmxpYgpzaW5jZSBLZUdldEN1cnJlbnRQcm9jZXNzb3JFeCgpIGlzIHVzZWQuIFNp
bmNlIHRoZSBiYXNlIE9TIG9mIFZTMjAxMiBidWlsZHMKaXMgVmlzdGEsIHRoZXNlIGhhdmUgYmVl
biBmYWlsaW5nIHNpbmNlIGNvbW1pdCA4Y2I1YzE1Ni4KClNpZ25lZC1vZmYtYnk6IFBhdWwgRHVy
cmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+Ci0tLQogc3JjL3hlbm5ldC9yZWNlaXZlci5j
ICAgICAgICB8IDEgKwogdnMyMDEyL3hlbm5ldC94ZW5uZXQudmN4cHJvaiB8IDQgKystLQogdnMy
MDEzL3hlbm5ldC94ZW5uZXQudmN4cHJvaiB8IDQgKystLQogMyBmaWxlcyBjaGFuZ2VkLCA1IGlu
c2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3hlbm5ldC9yZWNl
aXZlci5jIGIvc3JjL3hlbm5ldC9yZWNlaXZlci5jCmluZGV4IDk2NGNhOTAuLmJhMDU3OTkgMTAw
NjQ0Ci0tLSBhL3NyYy94ZW5uZXQvcmVjZWl2ZXIuYworKysgYi9zcmMveGVubmV0L3JlY2VpdmVy
LmMKQEAgLTMwLDYgKzMwLDcgQEAKICAqLwogCiAjaW5jbHVkZSA8bmRpcy5oPgorI2luY2x1ZGUg
PHByb2NncnAuaD4KICNpbmNsdWRlIDx0Y3BpcC5oPgogI2luY2x1ZGUgPHhlbi5oPgogCmRpZmYg
LS1naXQgYS92czIwMTIveGVubmV0L3hlbm5ldC52Y3hwcm9qIGIvdnMyMDEyL3hlbm5ldC94ZW5u
ZXQudmN4cHJvagppbmRleCBmMGU5MDczLi5mMzgzZTg1IDEwMDY0NAotLS0gYS92czIwMTIveGVu
bmV0L3hlbm5ldC52Y3hwcm9qCisrKyBiL3ZzMjAxMi94ZW5uZXQveGVubmV0LnZjeHByb2oKQEAg
LTMyLDcgKzMyLDcgQEAKIAkKICAgICA8SXRlbURlZmluaXRpb25Hcm91cD4KIAkJPENsQ29tcGls
ZT4KLQkJCTxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5fX01PRFVMRV9fPSJYRU5ORVQiO05ESVNf
TUlOSVBPUlRfRFJJVkVSO05ESVNfV0RNPTE7TkRJUzYxX01JTklQT1JUPTE7UE9PTF9OWF9PUFRJ
Tj0xOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4K
KwkJCTxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5fX01PRFVMRV9fPSJYRU5ORVQiO05ESVNfTUlO
SVBPUlRfRFJJVkVSO05ESVNfV0RNPTE7TkRJUzYxX01JTklQT1JUPTE7UE9PTF9OWF9PUFRJTj0x
O05UX1BST0NFU1NPUl9HUk9VUFM7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nl
c3NvckRlZmluaXRpb25zPgogCQkJPFdhcm5pbmdMZXZlbD5FbmFibGVBbGxXYXJuaW5nczwvV2Fy
bmluZ0xldmVsPgogCQkJPERpc2FibGVTcGVjaWZpY1dhcm5pbmdzPjQ3MTE7NDU0ODs0ODIwOzQ2
Njg7NDI1NTs2MDAxOzYwNTQ7MjgxOTY7JShEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncyk8L0Rpc2Fi
bGVTcGVjaWZpY1dhcm5pbmdzPgogCQkJPE11bHRpUHJvY2Vzc29yQ29tcGlsYXRpb24+dHJ1ZTwv
TXVsdGlQcm9jZXNzb3JDb21waWxhdGlvbj4KQEAgLTQwLDcgKzQwLDcgQEAKIAkJPC9DbENvbXBp
bGU+CiAJCTxMaW5rPgogCQkJPEltYWdlSGFzU2FmZUV4Y2VwdGlvbkhhbmRsZXJzPmZhbHNlPC9J
bWFnZUhhc1NhZmVFeGNlcHRpb25IYW5kbGVycz4KLQkJCTxBZGRpdGlvbmFsRGVwZW5kZW5jaWVz
PiQoRERLX0xJQl9QQVRIKVxuZGlzLmxpYjskKERES19MSUJfUEFUSCkvbGliY250cHIubGliOyQo
RERLX0xJQl9QQVRIKS9hdXhfa2xpYi5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRk
aXRpb25hbERlcGVuZGVuY2llcz4KKwkJCTxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPiQoRERLX0xJ
Ql9QQVRIKVxuZGlzLmxpYjskKERES19MSUJfUEFUSCkvbGliY250cHIubGliOyQoRERLX0xJQl9Q
QVRIKS9hdXhfa2xpYi5saWI7JChEREtfTElCX1BBVEgpL3Byb2NncnAubGliOyUoQWRkaXRpb25h
bERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CiAJCQk8RW5hYmxlQ09NREFU
Rm9sZGluZz5mYWxzZTwvRW5hYmxlQ09NREFURm9sZGluZz4KIAkJPC9MaW5rPgogCQk8SW5mPgpk
aWZmIC0tZ2l0IGEvdnMyMDEzL3hlbm5ldC94ZW5uZXQudmN4cHJvaiBiL3ZzMjAxMy94ZW5uZXQv
eGVubmV0LnZjeHByb2oKaW5kZXggY2JlNTdmNS4uNDhlY2FiZSAxMDA2NDQKLS0tIGEvdnMyMDEz
L3hlbm5ldC94ZW5uZXQudmN4cHJvagorKysgYi92czIwMTMveGVubmV0L3hlbm5ldC52Y3hwcm9q
CkBAIC0yNyw3ICsyNyw3IEBACiAgIDwvUHJvcGVydHlHcm91cD4KICAgPEl0ZW1EZWZpbml0aW9u
R3JvdXA+CiAgICAgPENsQ29tcGlsZT4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5f
X01PRFVMRV9fPSJYRU5ORVQiO05ESVNfTUlOSVBPUlRfRFJJVkVSO05ESVNfV0RNPTE7TkRJUzYx
X01JTklQT1JUPTE7UE9PTF9OWF9PUFRJTj0xOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9Q
cmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5f
X01PRFVMRV9fPSJYRU5ORVQiO05ESVNfTUlOSVBPUlRfRFJJVkVSO05ESVNfV0RNPTE7TkRJUzYx
X01JTklQT1JUPTE7UE9PTF9OWF9PUFRJTj0xO05UX1BST0NFU1NPUl9HUk9VUFM7JShQcmVwcm9j
ZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgogICAgICAgPEFkZGl0
aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+JChXaW5kb3dzU2RrRGlyKVxpbmNsdWRlXGttOy4uXC4u
XGluY2x1ZGU7Li5cLi5caW5jbHVkZVx4ZW47PC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVz
PgogICAgICAgPFdhcm5pbmdMZXZlbD5FbmFibGVBbGxXYXJuaW5nczwvV2FybmluZ0xldmVsPgog
ICAgICAgPERpc2FibGVTcGVjaWZpY1dhcm5pbmdzPjQ3MTE7NDU0ODs0ODIwOzQ2Njg7NDI1NTs2
MDAxOzYwNTQ7MjgxOTY7JShEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncyk8L0Rpc2FibGVTcGVjaWZp
Y1dhcm5pbmdzPgpAQCAtMzksNyArMzksNyBAQAogICAgIDwvUmVzb3VyY2VDb21waWxlPgogICAg
IDxMaW5rPgogICAgICAgPEltYWdlSGFzU2FmZUV4Y2VwdGlvbkhhbmRsZXJzPmZhbHNlPC9JbWFn
ZUhhc1NhZmVFeGNlcHRpb25IYW5kbGVycz4KLSAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVz
PiQoRERLX0xJQl9QQVRIKVxuZGlzLmxpYjskKERES19MSUJfUEFUSCkvbGliY250cHIubGliOyQo
RERLX0xJQl9QQVRIKS9hdXhfa2xpYi5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRk
aXRpb25hbERlcGVuZGVuY2llcz4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPiQoRERL
X0xJQl9QQVRIKVxuZGlzLmxpYjskKERES19MSUJfUEFUSCkvbGliY250cHIubGliOyQoRERLX0xJ
Ql9QQVRIKS9hdXhfa2xpYi5saWI7JChEREtfTElCX1BBVEgpL3Byb2NncnAubGliOyUoQWRkaXRp
b25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CiAgICAgICA8RW5hYmxl
Q09NREFURm9sZGluZz5mYWxzZTwvRW5hYmxlQ09NREFURm9sZGluZz4KICAgICA8L0xpbms+CiAg
ICAgPEluZj4KLS0gCjIuMS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMu
eGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxt
YW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 26 08:26:16 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 26 Jul 2016 08:26:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bRxgs-0006Vo-SE; Tue, 26 Jul 2016 08:26:14 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bRxgs-0006Vi-Bb
 for win-pv-devel@lists.xenproject.org; Tue, 26 Jul 2016 08:26:14 +0000
Received: from [85.158.143.35] by server-2.bemta-6.messagelabs.com id
 6A/C0-13744-5AE17975; Tue, 26 Jul 2016 08:26:13 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprMIsWRWlGSWpSXmKPExsXiVRvkqLtUbnq
 4wZstbBZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y9OUG0wFj6QrVm67xdTAuEiyi5GLQ0hgFqNE
 64EPzCAOi8AlFondp3eygjgSAu9YJI7tW87excgJ5MRIPLu1lBXCrpRonfAeLC4koCjRfO0CO
 8SolUwSs1t6GUESbALqErffL4ZqtpP4NOsmmC0ioCpxbfkxNhCbWUBL4uGGeWD1wgJKEr/WLg
 JbwAJUs+TGWWYQm1fATeLU3+dsEHPkJPZOXs0ygZF/ASPDKkb14tSistQiXUO9pKLM9IyS3MT
 MHF1DAzO93NTi4sT01JzEpGK95PzcTYzAAGIAgh2MO587HWKU5GBSEuVlmjAtXIgvKT+lMiOx
 OCO+qDQntfgQowwHh5IE7yzZ6eFCgkWp6akVaZk5wFCGSUtw8CiJ8E4FSfMWFyTmFmemQ6ROM
 epybJl6by2TEEtefl6qlDjvPJAiAZCijNI8uBGwuLrEKCslzMsIdJQQT0FqUW5mCar8K0ZxDk
 YlYd6tIFN4MvNK4Da9AjqCCeiIBTyTQY4oSURISTUwquTG8jdFOT3+bf/n5vK220pOW86pysy
 TrZque2w+7ykb7cML7Xju62X+FTP8nNNycr0Lq/Oe2yFMqw4cc4lhc1fp3zjjnmzj1En2kz/s
 Ya+64T+n07481oDpL//8hpa1u8Pf2PW3cW1/y9XKz/TyhkrlrIK5F1crbvxxp3zC1013lyzas
 2CmjBJLcUaioRZzUXEiAKrha8GmAgAA
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-11.tower-21.messagelabs.com!1469521572!25595026!1
X-Originating-IP: [74.125.82.65]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 35395 invoked from network); 26 Jul 2016 08:26:13 -0000
Received: from mail-wm0-f65.google.com (HELO mail-wm0-f65.google.com)
 (74.125.82.65)
 by server-11.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 26 Jul 2016 08:26:13 -0000
Received: by mail-wm0-f65.google.com with SMTP id q128so480554wma.1
 for <win-pv-devel@lists.xenproject.org>; Tue, 26 Jul 2016 01:26:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=vuIRaGNA/CaRdS+zyUnyiBAwZfPHdER6cmvgf3MrdFI=;
 b=vtS/zoh0gUVIo/2Jtl1VYLhMVagjoDtdKAAGGnRGDYAN/P+Nl2XaPVwkbVLgsyfcwB
 xJ95OBffJLzthTFTfCaTXBWHmOWELUnZeTAiyI9iYh0lZbPKfJDztIQLWAvH5DBTJBR6
 858Y3Hw/ZvEonArfgs+JC5ZkeqyUaDpCXEyEhTwLOxkkyzQcioQxsFZETqYBjFe6028L
 HGnt0nysPhUf/kKGrZSBuTEjy5Js3WKYdJ0JVDwX7I+F1Qs4igWVqYDYFVEvv9UnKZNN
 B6/+0DzRZneKy/n42FP4CZhN7gcof3bjkR1fG5/dH+3M/M41mkbHck+gMK8bP56pI8ZT
 wX0w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=vuIRaGNA/CaRdS+zyUnyiBAwZfPHdER6cmvgf3MrdFI=;
 b=JaPqc7Hr8GjGnI7MRj3bpePR5girS+h8t/NV8s/05QI9XP5PGhEwZear90Ykcofcwj
 0omb/MOpfI/X61XhwXmw4CD2KLaEUxWCpaCQgH6xlJutO6/q2dXt+SLYGSXcfCJFK8wi
 +YKGFVkywKr9YNx9eXInqBrOmubJWIlI0GGcxt01cXqjVUidKZjZvw/dIPIgHAWP0TbX
 AHlcK7nTejzCxl7UyT83ATk3wEuno0hw5TnAx9R3DvPzysAzZHfzftKsAmgudwQ1tJR5
 vS9wsgB/vxRD8J3X5yCcg70qQBuCWk56Vu1QZA+VmEV0A66eIehj5V4Ix85c0wlxOqAK
 cZdg==
X-Gm-Message-State: ALyK8tLHG5NDX2EcpxBy0O5InnisXichBDdbaddl159oYZWTUPk/1YdhpQU/qu25EIll3A==
X-Received: by 10.28.54.229 with SMTP id y98mr42280245wmh.96.1469521572481;
 Tue, 26 Jul 2016 01:26:12 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id r127sm31533403wmf.23.2016.07.26.01.26.11
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Tue, 26 Jul 2016 01:26:11 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 26 Jul 2016 09:25:59 +0100
Message-Id: <1469521559-8892-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Fix VS2012 builds
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

QnVpbGRpbmcgZm9yIE9TIGVhcmxpZXIgdGhhbiBXaW5kb3dzIDcgbm93IHJlcXVpcmVzIHVzZSBv
ZiBwcm9jZ3JwLmxpYgpzaW5jZSBLZUdldEN1cnJlbnRQcm9jZXNzb3JFeCgpIGlzIHVzZWQuIFNp
bmNlIHRoZSBiYXNlIE9TIG9mIFZTMjAxMiBidWlsZHMKaXMgVmlzdGEsIHRoZXNlIGhhdmUgYmVl
biBmYWlsaW5nIHNpbmNlIGNvbW1pdCA4Y2I1YzE1Ni4KClNpZ25lZC1vZmYtYnk6IFBhdWwgRHVy
cmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+Ci0tLQogc3JjL3hlbm5ldC9yZWNlaXZlci5j
ICAgICAgICB8IDEgKwogdnMyMDEyL3hlbm5ldC94ZW5uZXQudmN4cHJvaiB8IDQgKystLQogdnMy
MDEzL3hlbm5ldC94ZW5uZXQudmN4cHJvaiB8IDQgKystLQogMyBmaWxlcyBjaGFuZ2VkLCA1IGlu
c2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3hlbm5ldC9yZWNl
aXZlci5jIGIvc3JjL3hlbm5ldC9yZWNlaXZlci5jCmluZGV4IDk2NGNhOTAuLmJhMDU3OTkgMTAw
NjQ0Ci0tLSBhL3NyYy94ZW5uZXQvcmVjZWl2ZXIuYworKysgYi9zcmMveGVubmV0L3JlY2VpdmVy
LmMKQEAgLTMwLDYgKzMwLDcgQEAKICAqLwogCiAjaW5jbHVkZSA8bmRpcy5oPgorI2luY2x1ZGUg
PHByb2NncnAuaD4KICNpbmNsdWRlIDx0Y3BpcC5oPgogI2luY2x1ZGUgPHhlbi5oPgogCmRpZmYg
LS1naXQgYS92czIwMTIveGVubmV0L3hlbm5ldC52Y3hwcm9qIGIvdnMyMDEyL3hlbm5ldC94ZW5u
ZXQudmN4cHJvagppbmRleCBmMGU5MDczLi5mMzgzZTg1IDEwMDY0NAotLS0gYS92czIwMTIveGVu
bmV0L3hlbm5ldC52Y3hwcm9qCisrKyBiL3ZzMjAxMi94ZW5uZXQveGVubmV0LnZjeHByb2oKQEAg
LTMyLDcgKzMyLDcgQEAKIAkKICAgICA8SXRlbURlZmluaXRpb25Hcm91cD4KIAkJPENsQ29tcGls
ZT4KLQkJCTxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5fX01PRFVMRV9fPSJYRU5ORVQiO05ESVNf
TUlOSVBPUlRfRFJJVkVSO05ESVNfV0RNPTE7TkRJUzYxX01JTklQT1JUPTE7UE9PTF9OWF9PUFRJ
Tj0xOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4K
KwkJCTxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5fX01PRFVMRV9fPSJYRU5ORVQiO05ESVNfTUlO
SVBPUlRfRFJJVkVSO05ESVNfV0RNPTE7TkRJUzYxX01JTklQT1JUPTE7UE9PTF9OWF9PUFRJTj0x
O05UX1BST0NFU1NPUl9HUk9VUFM7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nl
c3NvckRlZmluaXRpb25zPgogCQkJPFdhcm5pbmdMZXZlbD5FbmFibGVBbGxXYXJuaW5nczwvV2Fy
bmluZ0xldmVsPgogCQkJPERpc2FibGVTcGVjaWZpY1dhcm5pbmdzPjQ3MTE7NDU0ODs0ODIwOzQ2
Njg7NDI1NTs2MDAxOzYwNTQ7MjgxOTY7JShEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncyk8L0Rpc2Fi
bGVTcGVjaWZpY1dhcm5pbmdzPgogCQkJPE11bHRpUHJvY2Vzc29yQ29tcGlsYXRpb24+dHJ1ZTwv
TXVsdGlQcm9jZXNzb3JDb21waWxhdGlvbj4KQEAgLTQwLDcgKzQwLDcgQEAKIAkJPC9DbENvbXBp
bGU+CiAJCTxMaW5rPgogCQkJPEltYWdlSGFzU2FmZUV4Y2VwdGlvbkhhbmRsZXJzPmZhbHNlPC9J
bWFnZUhhc1NhZmVFeGNlcHRpb25IYW5kbGVycz4KLQkJCTxBZGRpdGlvbmFsRGVwZW5kZW5jaWVz
PiQoRERLX0xJQl9QQVRIKVxuZGlzLmxpYjskKERES19MSUJfUEFUSCkvbGliY250cHIubGliOyQo
RERLX0xJQl9QQVRIKS9hdXhfa2xpYi5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRk
aXRpb25hbERlcGVuZGVuY2llcz4KKwkJCTxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPiQoRERLX0xJ
Ql9QQVRIKVxuZGlzLmxpYjskKERES19MSUJfUEFUSCkvbGliY250cHIubGliOyQoRERLX0xJQl9Q
QVRIKS9hdXhfa2xpYi5saWI7JChEREtfTElCX1BBVEgpL3Byb2NncnAubGliOyUoQWRkaXRpb25h
bERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CiAJCQk8RW5hYmxlQ09NREFU
Rm9sZGluZz5mYWxzZTwvRW5hYmxlQ09NREFURm9sZGluZz4KIAkJPC9MaW5rPgogCQk8SW5mPgpk
aWZmIC0tZ2l0IGEvdnMyMDEzL3hlbm5ldC94ZW5uZXQudmN4cHJvaiBiL3ZzMjAxMy94ZW5uZXQv
eGVubmV0LnZjeHByb2oKaW5kZXggY2JlNTdmNS4uNDhlY2FiZSAxMDA2NDQKLS0tIGEvdnMyMDEz
L3hlbm5ldC94ZW5uZXQudmN4cHJvagorKysgYi92czIwMTMveGVubmV0L3hlbm5ldC52Y3hwcm9q
CkBAIC0yNyw3ICsyNyw3IEBACiAgIDwvUHJvcGVydHlHcm91cD4KICAgPEl0ZW1EZWZpbml0aW9u
R3JvdXA+CiAgICAgPENsQ29tcGlsZT4KLSAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5f
X01PRFVMRV9fPSJYRU5ORVQiO05ESVNfTUlOSVBPUlRfRFJJVkVSO05ESVNfV0RNPTE7TkRJUzYx
X01JTklQT1JUPTE7UE9PTF9OWF9PUFRJTj0xOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9Q
cmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5f
X01PRFVMRV9fPSJYRU5ORVQiO05ESVNfTUlOSVBPUlRfRFJJVkVSO05ESVNfV0RNPTE7TkRJUzYx
X01JTklQT1JUPTE7UE9PTF9OWF9PUFRJTj0xO05UX1BST0NFU1NPUl9HUk9VUFM7JShQcmVwcm9j
ZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgogICAgICAgPEFkZGl0
aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+JChXaW5kb3dzU2RrRGlyKVxpbmNsdWRlXGttOy4uXC4u
XGluY2x1ZGU7Li5cLi5caW5jbHVkZVx4ZW47PC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVz
PgogICAgICAgPFdhcm5pbmdMZXZlbD5FbmFibGVBbGxXYXJuaW5nczwvV2FybmluZ0xldmVsPgog
ICAgICAgPERpc2FibGVTcGVjaWZpY1dhcm5pbmdzPjQ3MTE7NDU0ODs0ODIwOzQ2Njg7NDI1NTs2
MDAxOzYwNTQ7MjgxOTY7JShEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncyk8L0Rpc2FibGVTcGVjaWZp
Y1dhcm5pbmdzPgpAQCAtMzksNyArMzksNyBAQAogICAgIDwvUmVzb3VyY2VDb21waWxlPgogICAg
IDxMaW5rPgogICAgICAgPEltYWdlSGFzU2FmZUV4Y2VwdGlvbkhhbmRsZXJzPmZhbHNlPC9JbWFn
ZUhhc1NhZmVFeGNlcHRpb25IYW5kbGVycz4KLSAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVz
PiQoRERLX0xJQl9QQVRIKVxuZGlzLmxpYjskKERES19MSUJfUEFUSCkvbGliY250cHIubGliOyQo
RERLX0xJQl9QQVRIKS9hdXhfa2xpYi5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRk
aXRpb25hbERlcGVuZGVuY2llcz4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPiQoRERL
X0xJQl9QQVRIKVxuZGlzLmxpYjskKERES19MSUJfUEFUSCkvbGliY250cHIubGliOyQoRERLX0xJ
Ql9QQVRIKS9hdXhfa2xpYi5saWI7JChEREtfTElCX1BBVEgpL3Byb2NncnAubGliOyUoQWRkaXRp
b25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CiAgICAgICA8RW5hYmxl
Q09NREFURm9sZGluZz5mYWxzZTwvRW5hYmxlQ09NREFURm9sZGluZz4KICAgICA8L0xpbms+CiAg
ICAgPEluZj4KLS0gCjIuMS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMu
eGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxt
YW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 26 11:36:36 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 26 Jul 2016 11:36:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bS0f3-0004GK-IZ; Tue, 26 Jul 2016 11:36:33 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <lars.kurth.xen@gmail.com>) id 1bS0f1-0004G8-DY
 for Win-pv-devel@lists.xenproject.org; Tue, 26 Jul 2016 11:36:31 +0000
Received: from [85.158.139.211] by server-9.bemta-5.messagelabs.com id
 04/75-13924-E3B47975; Tue, 26 Jul 2016 11:36:30 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrKIsWRWlGSWpSXmKPExsXiVRtkoGvrPT3
 cYNVtLYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCasW3fGpaCjbwVt1ZOYG5g3MTdxcjFISQwl1Hi
 7q6jzCAOi8AsVok192+xdDFyckgIbGOVmD7DEcKOkdh09SszhF0ucefUbjYQW0hAXeLeotvsE
 JO6mCRmv5vGDpJgFtCSuPHvJROIzSugJ/Hq1mVWEFsYqKF1w1WwBWwC2hKbbjwAGsrBwSkQKL
 HqXABImEVAVeLI1ltQY7Iklm+fyQhha0ssW/garJxXwEZi1XYmiBNWMUkc2qwPYosATZ+zeAL
 UmbISu38/YprAKDwLyUGzkBw0C8nUBYzMqxg1ilOLylKLdI3M9ZKKMtMzSnITM3N0DQ1M9XJT
 i4sT01NzEpOK9ZLzczcxAoO8noGBcQfj1S1+hxglOZiURHmZJkwLF+JLyk+pzEgszogvKs1JL
 T7EKMPBoSTBK+01PVxIsCg1PbUiLTMHGG8waQkOHiURXmuQNG9xQWJucWY6ROoUoy7Hlqn31j
 IJseTl56VKifPe9QQqEgApyijNgxsBi/1LjLJSwryMDAwMQjwFqUW5mSWo8q8YxTkYlYR5E0B
 W8WTmlcBtegV0BBPQEQt4JoMcUZKIkJJqYJxSJD+N4/8Unq9T9bxYo5rr7U6vTc5e4yCyoW5V
 alluTATXvM1VXzwesjM1lU2OFLnFaPHV7rLrj/ypejy9k/Uv1jjKPLp6P/xIhtqt+tO/2GUXf
 ly8MvTm29J/+cJTQ06wFPX/kPyVJDt9+frmby6bT0kszMn9KbL+iuSWguWOmSK7tO/IeyixFG
 ckGmoxFxUnAgBiOQTt+AIAAA==
X-Env-Sender: lars.kurth.xen@gmail.com
X-Msg-Ref: server-16.tower-206.messagelabs.com!1469532989!35476667!1
X-Originating-IP: [74.125.82.48]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21428 invoked from network); 26 Jul 2016 11:36:29 -0000
Received: from mail-wm0-f48.google.com (HELO mail-wm0-f48.google.com)
 (74.125.82.48)
 by server-16.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 26 Jul 2016 11:36:29 -0000
Received: by mail-wm0-f48.google.com with SMTP id q128so169510971wma.1
 for <Win-pv-devel@lists.xenproject.org>; Tue, 26 Jul 2016 04:36:29 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=mime-version:subject:from:in-reply-to:date:cc
 :content-transfer-encoding:message-id:references:to;
 bh=Iyj+hxuOYepNwOIAhXDanZyKOdS5gSm8uKhT1f8eFbg=;
 b=qnDiOD83aTbU0aRilt9W6BYKCGZZwQ1YdO9OAk7femJOWU9D4QjznJMZoxYGpuWQT5
 PMbrFEPc4PneWU8RKsGqhV8h8YnG1ZgWoq3d/Zzs6U4oftSY99XGKaRhUfPUNtQN59MN
 9J7sLAKVsJu3KnhExBbVIeOriyeID5oIQGvc3uhOh1M03Swl1k9HEFfO0mhQPkTrbVwD
 RRzj8A806X0LIZcCxHONnZRiFkxIMHLD3bi6w8MK9D9tnkqy65VPC8xeF2VoMq9OwnuO
 XGrqdvmZV1jkq9pcrZY6lA/sDVpNrz8aNmaptR73Yh9T1WTfItrf8y402qWQStZpOymJ
 lUKw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc
 :content-transfer-encoding:message-id:references:to;
 bh=Iyj+hxuOYepNwOIAhXDanZyKOdS5gSm8uKhT1f8eFbg=;
 b=hLdVW+9TIACE5mxEWYCUIKjvAxjrJer70mLEOIthBtj0Qs2eYuXl6XVS5vmX1OTUI6
 us3xCWom/5yXfjuJ/0h919GP6JJa6yyiizXupLXzjCMkURZgnsfLWNyU5n8aIsLWOUnG
 5XRUk84y0NWRTKYKUg8Ahk3Sk13DpPryfLasJGb2LaIi84kamKc+JPdHnVMXHUuTZVNv
 NQc1d/y04a//nLEkCK9/bmYNcSEZyrtvLsuB5LPS5Q2C0SbON5tkabc3pkO0HAu0yaAZ
 jACkBx6YmPKs7MtKDePuDFqNtn+46s9zwabzzHznt4L76GMQvyHltLhmxfB/FFU80fb+
 ZwjQ==
X-Gm-Message-State: AEkoouvpNhkloh49zn5Kr4arW4KeZeiKA1wx5CV4LssEQEAIvgRr3pdcF93ht2XYQBtJlg==
X-Received: by 10.28.221.8 with SMTP id u8mr24475520wmg.61.1469532989277;
 Tue, 26 Jul 2016 04:36:29 -0700 (PDT)
Received: from [192.168.0.9] (97e3ccc9.skybroadband.com. [151.227.204.201])
 by smtp.gmail.com with ESMTPSA id a2sm32553033wma.2.2016.07.26.04.36.27
 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
 Tue, 26 Jul 2016 04:36:28 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Lars Kurth <lars.kurth.xen@gmail.com>
In-Reply-To: <CAG1y0seBn=-1gvUTDC4pYJb2ioFjUD_X9EmzW20GQC5zutc1Pg@mail.gmail.com>
Date: Tue, 26 Jul 2016 12:36:27 +0100
Message-Id: <2B413B3B-2750-48E2-A4F8-51407671E7C5@gmail.com>
References: <CAKnNFz-Y0iu=wN7R=hq9NA7mhgqiniNhT=e-dJRTNBvsE_N-7Q@mail.gmail.com>
 <039a05eb-321b-70df-3680-6ab0de6acba9@gmail.com>
 <9d2474ab-cc02-ff6b-b2e0-560a4b32fda2@zynstra.com>
 <CC96940D-46E1-4668-AD6C-166973892B7E@gmail.com>
 <CAG1y0seBn=-1gvUTDC4pYJb2ioFjUD_X9EmzW20GQC5zutc1Pg@mail.gmail.com>
To: "Fajar A. Nugraha" <list@fajar.net>
X-Mailer: Apple Mail (2.2104)
Cc: "xen-users@lists.xen.org" <xen-users@lists.xen.org>,
 win-pv-devel <Win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] [Xen-users] GPLPV defunct?
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

QWRkaW5nIHRoZSB3aW4tcHYtZGV2ZWxAIGxpc3QsIHdoaWNoIHNob3VsZCBoYXZlIGhhcHBlbmVk
IGVhcmxpZXIKRm9yIHJlZmVyZW5jZSB0aGUgdGhyZWFkIHN0YXJ0ZWQgYXQgaHR0cHM6Ly9saXN0
cy54ZW5wcm9qZWN0Lm9yZy9hcmNoaXZlcy9odG1sL3hlbi11c2Vycy8yMDE2LTA3L21zZzAwMDky
Lmh0bWwKCj4gT24gMjIgSnVsIDIwMTYsIGF0IDA2OjQ5LCBGYWphciBBLiBOdWdyYWhhIDxsaXN0
QGZhamFyLm5ldD4gd3JvdGU6Cj4gCj4gT24gVGh1LCBKdWwgMjEsIDIwMTYgYXQgMTE6NTcgUE0s
IExhcnMgS3VydGggPGxhcnMua3VydGgueGVuQGdtYWlsLmNvbT4gd3JvdGU6Cj4+IEFuZCBpbiBm
YWN0IHNvIGRvZXMgS1ZNOiBmb3IgS1ZNIFJlZEhhdCBzaWducyB0aGUgRmVkb3JhIGRyaXZlcnMg
YW5kIEtWTSByZWNvbW1lbmRzIHRoYXQgYWxsIHByb2plY3RzIHdoaWNoIGNhbm5vdCBzaWduIGRy
aXZlcnMgdXNlIHRoZSBGZWRvcmEgb25lcy4gVGhhdCBpcyBub3QgcmVhbGx5IGRpZmZlcmVudCB0
byB1c2luZyB0aGUgQ2l0cml4IG9uZXMuCj4gCj4gCj4gU3RlcGhlbiBPYmVyaG9sdHplciB3cm90
ZToKPiAiCj4gQ2l0cml4IFhlblNlcnZlciBoYXMgc2lnbmVkIGRyaXZlcnMsIGJ1dCB0aGV5IG9u
bHkgd29yayB3aXRoIFhlblNlcnZlci4KPiAiCj4gCj4gSXMgdGhhdCB0aGUgY2FzZSwgb3IgYXJl
IHRoZXkgYWN0dWFsbHkgdXNhYmxlIG9uIGFueSB4ZW4gaW1wbGVtZW50YXRpb24/Cj4gCj4gSWYg
dGhleSBBUkUgdXNhYmxlLCB0aGVuIGl0IG1pZ2h0IGJlIGhlbHBmdWwgdG8gbWFrZSB0aGF0IGZh
Y3Qgd2VsbAo+IGtub3duLCBzaW5jZSBhdCBsZWFzdCBzb21lIHVzZXJzIHBlcmNpZXZlIGl0IGRp
ZmZlcmVudGx5LiBJbiB0aGlzIGNhc2UKPiB4ZW4gaXMgcHJldHR5IG11Y2ggc2ltaWxhciB0byBr
dm0gdy5yLnQuIGRyaXZlciBzaWduaW5nIHNpdHVhdGlvbi4KClRoZXkgYXJlIHVzYWJsZSBhcyBm
YXIgYXMgSSBrbm93LiBUaGV5IGFyZSBidWlsdCBmcm9tIGh0dHA6Ly93d3cueGVucHJvamVjdC5v
cmcvZGV2ZWxvcGVycy90ZWFtcy93aW5kb3dzLXB2LWRyaXZlcnMuaHRtbCAKQWthIHRoZSBXaW5k
b3dhIFBWIERyaXZlcnMgb24gWGVuIFByb2plY3QgYXJlIHRoZSB1cHN0cmVhbSBvZiB0aGUgWGVu
U2VydmVyIGRyaXZlcnMKClRoZXJlIGlzIG5vdyBhbHNvIGEgWGVuIFByb2plY3Qgc2lnbmVkIHZl
cnNpb24gb2YgdGhlIGRyaXZlcnMgdmlhIGh0dHA6Ly93d3cueGVucHJvamVjdC5vcmcvZG93bmxv
YWRzL3dpbmRvd3MtcHYtZHJpdmVycy93aW5wdi1kcml2ZXJzLTgxLmh0bWwgCgpodHRwOi8vd3d3
LnhlbnByb2plY3Qub3JnL2Rvd25sb2Fkcy93aW5kb3dzLXB2LWRyaXZlcnMgaXMgd2hlcmUgZHJp
dmVycyAoYW5kIHNlY3VyaXR5IHVwZGF0ZXMpIHdpbGwgYmUgcHVibGlzaGVkIGluIGZ1dHVyZSwg
YW5kIEkgYWRkZWQgYSBsaW5rIHRvIHRoZSBkb3dubG9hZHMgZnJvbSBodHRwOi8vd3d3LnhlbnBy
b2plY3Qub3JnL2RldmVsb3BlcnMvdGVhbXMvaHlwZXJ2aXNvci5odG1sIHVuZGVyICJXSU5ET1dT
IFBWIERSSVZFUlMgRE9XTkxPQURTIgoKQWxzbyBzZWUgaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0
Lm9yZy9hcmNoaXZlcy9odG1sL3dpbi1wdi1kZXZlbC8yMDE2LTA3L21zZzAwMDU0Lmh0bWwKClJl
Z2FyZHMKTGFycwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Xwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0
Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5m
by93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 26 11:36:36 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 26 Jul 2016 11:36:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bS0f3-0004GK-IZ; Tue, 26 Jul 2016 11:36:33 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <lars.kurth.xen@gmail.com>) id 1bS0f1-0004G8-DY
 for Win-pv-devel@lists.xenproject.org; Tue, 26 Jul 2016 11:36:31 +0000
Received: from [85.158.139.211] by server-9.bemta-5.messagelabs.com id
 04/75-13924-E3B47975; Tue, 26 Jul 2016 11:36:30 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrKIsWRWlGSWpSXmKPExsXiVRtkoGvrPT3
 cYNVtLYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCasW3fGpaCjbwVt1ZOYG5g3MTdxcjFISQwl1Hi
 7q6jzCAOi8AsVok192+xdDFyckgIbGOVmD7DEcKOkdh09SszhF0ucefUbjYQW0hAXeLeotvsE
 JO6mCRmv5vGDpJgFtCSuPHvJROIzSugJ/Hq1mVWEFsYqKF1w1WwBWwC2hKbbjwAGsrBwSkQKL
 HqXABImEVAVeLI1ltQY7Iklm+fyQhha0ssW/garJxXwEZi1XYmiBNWMUkc2qwPYosATZ+zeAL
 UmbISu38/YprAKDwLyUGzkBw0C8nUBYzMqxg1ilOLylKLdI3M9ZKKMtMzSnITM3N0DQ1M9XJT
 i4sT01NzEpOK9ZLzczcxAoO8noGBcQfj1S1+hxglOZiURHmZJkwLF+JLyk+pzEgszogvKs1JL
 T7EKMPBoSTBK+01PVxIsCg1PbUiLTMHGG8waQkOHiURXmuQNG9xQWJucWY6ROoUoy7Hlqn31j
 IJseTl56VKifPe9QQqEgApyijNgxsBi/1LjLJSwryMDAwMQjwFqUW5mSWo8q8YxTkYlYR5E0B
 W8WTmlcBtegV0BBPQEQt4JoMcUZKIkJJqYJxSJD+N4/8Unq9T9bxYo5rr7U6vTc5e4yCyoW5V
 alluTATXvM1VXzwesjM1lU2OFLnFaPHV7rLrj/ypejy9k/Uv1jjKPLp6P/xIhtqt+tO/2GUXf
 ly8MvTm29J/+cJTQ06wFPX/kPyVJDt9+frmby6bT0kszMn9KbL+iuSWguWOmSK7tO/IeyixFG
 ckGmoxFxUnAgBiOQTt+AIAAA==
X-Env-Sender: lars.kurth.xen@gmail.com
X-Msg-Ref: server-16.tower-206.messagelabs.com!1469532989!35476667!1
X-Originating-IP: [74.125.82.48]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21428 invoked from network); 26 Jul 2016 11:36:29 -0000
Received: from mail-wm0-f48.google.com (HELO mail-wm0-f48.google.com)
 (74.125.82.48)
 by server-16.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 26 Jul 2016 11:36:29 -0000
Received: by mail-wm0-f48.google.com with SMTP id q128so169510971wma.1
 for <Win-pv-devel@lists.xenproject.org>; Tue, 26 Jul 2016 04:36:29 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=mime-version:subject:from:in-reply-to:date:cc
 :content-transfer-encoding:message-id:references:to;
 bh=Iyj+hxuOYepNwOIAhXDanZyKOdS5gSm8uKhT1f8eFbg=;
 b=qnDiOD83aTbU0aRilt9W6BYKCGZZwQ1YdO9OAk7femJOWU9D4QjznJMZoxYGpuWQT5
 PMbrFEPc4PneWU8RKsGqhV8h8YnG1ZgWoq3d/Zzs6U4oftSY99XGKaRhUfPUNtQN59MN
 9J7sLAKVsJu3KnhExBbVIeOriyeID5oIQGvc3uhOh1M03Swl1k9HEFfO0mhQPkTrbVwD
 RRzj8A806X0LIZcCxHONnZRiFkxIMHLD3bi6w8MK9D9tnkqy65VPC8xeF2VoMq9OwnuO
 XGrqdvmZV1jkq9pcrZY6lA/sDVpNrz8aNmaptR73Yh9T1WTfItrf8y402qWQStZpOymJ
 lUKw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc
 :content-transfer-encoding:message-id:references:to;
 bh=Iyj+hxuOYepNwOIAhXDanZyKOdS5gSm8uKhT1f8eFbg=;
 b=hLdVW+9TIACE5mxEWYCUIKjvAxjrJer70mLEOIthBtj0Qs2eYuXl6XVS5vmX1OTUI6
 us3xCWom/5yXfjuJ/0h919GP6JJa6yyiizXupLXzjCMkURZgnsfLWNyU5n8aIsLWOUnG
 5XRUk84y0NWRTKYKUg8Ahk3Sk13DpPryfLasJGb2LaIi84kamKc+JPdHnVMXHUuTZVNv
 NQc1d/y04a//nLEkCK9/bmYNcSEZyrtvLsuB5LPS5Q2C0SbON5tkabc3pkO0HAu0yaAZ
 jACkBx6YmPKs7MtKDePuDFqNtn+46s9zwabzzHznt4L76GMQvyHltLhmxfB/FFU80fb+
 ZwjQ==
X-Gm-Message-State: AEkoouvpNhkloh49zn5Kr4arW4KeZeiKA1wx5CV4LssEQEAIvgRr3pdcF93ht2XYQBtJlg==
X-Received: by 10.28.221.8 with SMTP id u8mr24475520wmg.61.1469532989277;
 Tue, 26 Jul 2016 04:36:29 -0700 (PDT)
Received: from [192.168.0.9] (97e3ccc9.skybroadband.com. [151.227.204.201])
 by smtp.gmail.com with ESMTPSA id a2sm32553033wma.2.2016.07.26.04.36.27
 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
 Tue, 26 Jul 2016 04:36:28 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Lars Kurth <lars.kurth.xen@gmail.com>
In-Reply-To: <CAG1y0seBn=-1gvUTDC4pYJb2ioFjUD_X9EmzW20GQC5zutc1Pg@mail.gmail.com>
Date: Tue, 26 Jul 2016 12:36:27 +0100
Message-Id: <2B413B3B-2750-48E2-A4F8-51407671E7C5@gmail.com>
References: <CAKnNFz-Y0iu=wN7R=hq9NA7mhgqiniNhT=e-dJRTNBvsE_N-7Q@mail.gmail.com>
 <039a05eb-321b-70df-3680-6ab0de6acba9@gmail.com>
 <9d2474ab-cc02-ff6b-b2e0-560a4b32fda2@zynstra.com>
 <CC96940D-46E1-4668-AD6C-166973892B7E@gmail.com>
 <CAG1y0seBn=-1gvUTDC4pYJb2ioFjUD_X9EmzW20GQC5zutc1Pg@mail.gmail.com>
To: "Fajar A. Nugraha" <list@fajar.net>
X-Mailer: Apple Mail (2.2104)
Cc: "xen-users@lists.xen.org" <xen-users@lists.xen.org>,
 win-pv-devel <Win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] [Xen-users] GPLPV defunct?
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

QWRkaW5nIHRoZSB3aW4tcHYtZGV2ZWxAIGxpc3QsIHdoaWNoIHNob3VsZCBoYXZlIGhhcHBlbmVk
IGVhcmxpZXIKRm9yIHJlZmVyZW5jZSB0aGUgdGhyZWFkIHN0YXJ0ZWQgYXQgaHR0cHM6Ly9saXN0
cy54ZW5wcm9qZWN0Lm9yZy9hcmNoaXZlcy9odG1sL3hlbi11c2Vycy8yMDE2LTA3L21zZzAwMDky
Lmh0bWwKCj4gT24gMjIgSnVsIDIwMTYsIGF0IDA2OjQ5LCBGYWphciBBLiBOdWdyYWhhIDxsaXN0
QGZhamFyLm5ldD4gd3JvdGU6Cj4gCj4gT24gVGh1LCBKdWwgMjEsIDIwMTYgYXQgMTE6NTcgUE0s
IExhcnMgS3VydGggPGxhcnMua3VydGgueGVuQGdtYWlsLmNvbT4gd3JvdGU6Cj4+IEFuZCBpbiBm
YWN0IHNvIGRvZXMgS1ZNOiBmb3IgS1ZNIFJlZEhhdCBzaWducyB0aGUgRmVkb3JhIGRyaXZlcnMg
YW5kIEtWTSByZWNvbW1lbmRzIHRoYXQgYWxsIHByb2plY3RzIHdoaWNoIGNhbm5vdCBzaWduIGRy
aXZlcnMgdXNlIHRoZSBGZWRvcmEgb25lcy4gVGhhdCBpcyBub3QgcmVhbGx5IGRpZmZlcmVudCB0
byB1c2luZyB0aGUgQ2l0cml4IG9uZXMuCj4gCj4gCj4gU3RlcGhlbiBPYmVyaG9sdHplciB3cm90
ZToKPiAiCj4gQ2l0cml4IFhlblNlcnZlciBoYXMgc2lnbmVkIGRyaXZlcnMsIGJ1dCB0aGV5IG9u
bHkgd29yayB3aXRoIFhlblNlcnZlci4KPiAiCj4gCj4gSXMgdGhhdCB0aGUgY2FzZSwgb3IgYXJl
IHRoZXkgYWN0dWFsbHkgdXNhYmxlIG9uIGFueSB4ZW4gaW1wbGVtZW50YXRpb24/Cj4gCj4gSWYg
dGhleSBBUkUgdXNhYmxlLCB0aGVuIGl0IG1pZ2h0IGJlIGhlbHBmdWwgdG8gbWFrZSB0aGF0IGZh
Y3Qgd2VsbAo+IGtub3duLCBzaW5jZSBhdCBsZWFzdCBzb21lIHVzZXJzIHBlcmNpZXZlIGl0IGRp
ZmZlcmVudGx5LiBJbiB0aGlzIGNhc2UKPiB4ZW4gaXMgcHJldHR5IG11Y2ggc2ltaWxhciB0byBr
dm0gdy5yLnQuIGRyaXZlciBzaWduaW5nIHNpdHVhdGlvbi4KClRoZXkgYXJlIHVzYWJsZSBhcyBm
YXIgYXMgSSBrbm93LiBUaGV5IGFyZSBidWlsdCBmcm9tIGh0dHA6Ly93d3cueGVucHJvamVjdC5v
cmcvZGV2ZWxvcGVycy90ZWFtcy93aW5kb3dzLXB2LWRyaXZlcnMuaHRtbCAKQWthIHRoZSBXaW5k
b3dhIFBWIERyaXZlcnMgb24gWGVuIFByb2plY3QgYXJlIHRoZSB1cHN0cmVhbSBvZiB0aGUgWGVu
U2VydmVyIGRyaXZlcnMKClRoZXJlIGlzIG5vdyBhbHNvIGEgWGVuIFByb2plY3Qgc2lnbmVkIHZl
cnNpb24gb2YgdGhlIGRyaXZlcnMgdmlhIGh0dHA6Ly93d3cueGVucHJvamVjdC5vcmcvZG93bmxv
YWRzL3dpbmRvd3MtcHYtZHJpdmVycy93aW5wdi1kcml2ZXJzLTgxLmh0bWwgCgpodHRwOi8vd3d3
LnhlbnByb2plY3Qub3JnL2Rvd25sb2Fkcy93aW5kb3dzLXB2LWRyaXZlcnMgaXMgd2hlcmUgZHJp
dmVycyAoYW5kIHNlY3VyaXR5IHVwZGF0ZXMpIHdpbGwgYmUgcHVibGlzaGVkIGluIGZ1dHVyZSwg
YW5kIEkgYWRkZWQgYSBsaW5rIHRvIHRoZSBkb3dubG9hZHMgZnJvbSBodHRwOi8vd3d3LnhlbnBy
b2plY3Qub3JnL2RldmVsb3BlcnMvdGVhbXMvaHlwZXJ2aXNvci5odG1sIHVuZGVyICJXSU5ET1dT
IFBWIERSSVZFUlMgRE9XTkxPQURTIgoKQWxzbyBzZWUgaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0
Lm9yZy9hcmNoaXZlcy9odG1sL3dpbi1wdi1kZXZlbC8yMDE2LTA3L21zZzAwMDU0Lmh0bWwKClJl
Z2FyZHMKTGFycwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Xwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0
Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5m
by93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 26 17:05:23 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 26 Jul 2016 17:05:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bS5nF-00056O-QI; Tue, 26 Jul 2016 17:05:21 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bS5nE-00056I-CR
 for win-pv-devel@lists.xenproject.org; Tue, 26 Jul 2016 17:05:20 +0000
Received: from [85.158.139.211] by server-5.bemta-5.messagelabs.com id
 C8/DE-30284-F4897975; Tue, 26 Jul 2016 17:05:19 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprFIsWRWlGSWpSXmKPExsVyMXThQV2/GdP
 DDTZf0LP4szjRgdHj8IcrLAGMUayZeUn5FQmsGc8/3mAqWCdfsWV/G1sD42yZLkYuDiGBOYwS
 32d8ZwNxWAQusUhMmdzOAuJICLxjkfg4u5Gpi5ETyImRuD97OwuEXS6xfM8JdhBbSEBRovnaB
 XaIUcuZJNpWXwFLsAmoS9x+v5gdosFO4tOsm2C2iICqxLXlx9hAbGYBLYmHG+YxgtjCQPHpj/
 6CLWABsldufQZm8wq4Scx8spoZYo6cxN7Jq1kmMPIvYGRYxahRnFpUllqka2ihl1SUmZ5Rkpu
 YmaNraGCql5taXJyYnpqTmFSsl5yfu4kRGEIMQLCDsWm75yFGSQ4mJVFepgnTwoX4kvJTKjMS
 izPii0pzUosPMcpwcChJ8IZPnx4uJFiUmp5akZaZAwxmmLQEB4+SCK8USJq3uCAxtzgzHSJ1i
 tGYY8vva2uZOLZNvbeWSYglLz8vVUqc9980oFIBkNKM0jy4QbAou8QoKyXMywh0mhBPQWpRbm
 YJqvwrRnEORiVhXiGQhTyZeSVw+14BncIEdMoCnskgp5QkIqSkGhjbFsQ9O1RcE7FBVlDVUvK
 u2Q/2pDMndc5aZL7657PsmNTiU2dEtW9HdF4oKvx9fOGEl1o/WROvnLneyfyBtcx8I0/JpMZN
 MUyFMra86/lWBNy7fic3atf/iX71Fz3+/k26N+vs7DS3losvuyQ76/v4BW1S9xhqOx4Q/sPiy
 XXTwLfzrBCLyyQlluKMREMt5qLiRADy99ZxrQIAAA==
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-3.tower-206.messagelabs.com!1469552717!47828865!1
X-Originating-IP: [209.85.161.193]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8636 invoked from network); 26 Jul 2016 17:05:18 -0000
Received: from mail-yw0-f193.google.com (HELO mail-yw0-f193.google.com)
 (209.85.161.193)
 by server-3.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 26 Jul 2016 17:05:18 -0000
Received: by mail-yw0-f193.google.com with SMTP id u134so1536600ywg.3
 for <win-pv-devel@lists.xenproject.org>; Tue, 26 Jul 2016 10:05:18 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=CPcSwp8fIWkfOt2IOp7pTmFfL0gDkb1ZhGO3GttfiiU=;
 b=xQeaShbV/u3uSzfgoZ/C1dBCfHLAs0XKT5UMoUpjDcd3KTyLzKoLZq4dMqVdIWO87z
 Lxv/UJ+x2ECORa+maX0nCCnrYH1bhF9xpbt9xNf9vmevBqecTLiNXxGnxscUnrulPIIJ
 XAY3G272BMO/F70X00h1jyj2EDwp9gYqm4N1rono1aXt5wP2RrmhwMl1VrOthdX49mPL
 ArcBK5mYCde2/NCx5JxdCcqcctiMdWgAGyc+rDJKw0amh65XESS+e2FTi18LjMwau2y5
 YoJHNeK0R7qUG/oGyMXRPsGnrMicfZBqUr0sVT0M1xaq+T5TtYLYhwGP/sES6RQDC5yP
 Gkrg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=CPcSwp8fIWkfOt2IOp7pTmFfL0gDkb1ZhGO3GttfiiU=;
 b=dOzPtjcM046TK2S8X7FuxM00rj1zEw8Un+oaQgI2+IjnNhcw4tXZm4h+ibmta92H8/
 L1mgZUW70FenPrinMsmB//VJBcVecclR1iaf3VoPJiiidUwhDvZ9RxVyNlGakHAdvydJ
 4YUGR3hYyMQ2Fs9bi3klh7X3bXssHTB5zU05eJJpTxn6uQZgrfGmWvJsajclLH86ZLPC
 DjFNzaribOwog+jISOC5QFPxi2c1ZpxQBxwuQ957Aea+Qrs78olpH76S1oGvvjrXTiD5
 h3WGRXo33Y69cPR/XSvvS0yXTpx1FDKzAckB7k8y51JoL2rO5pRN06crFLBOZ9UjZWzf
 e1xQ==
X-Gm-Message-State: AEkoousYncZ85fYm/P82plC4gRpFKalw4slQS9QdvLeSqmyAPzerd5X7zER/cGm4+NQ0bw==
X-Received: by 10.31.57.71 with SMTP id g68mr9497186vka.20.1469552717458;
 Tue, 26 Jul 2016 10:05:17 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id w185sm244986vkw.11.2016.07.26.10.05.16
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Tue, 26 Jul 2016 10:05:16 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 26 Jul 2016 18:05:02 +0100
Message-Id: <1469552702-4736-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH v2] Fix VS2012 builds
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

QnVpbGRpbmcgZm9yIE9TIGVhcmxpZXIgdGhhbiBXaW5kb3dzIDcgbm93IHJlcXVpcmVzIHVzZSBv
ZiBwcm9jZ3JwLmxpYgpzaW5jZSBLZUdldEN1cnJlbnRQcm9jZXNzb3JFeCgpIGlzIHVzZWQuIFNp
bmNlIHRoZSBiYXNlIE9TIG9mIFZTMjAxMiBidWlsZHMKaXMgVmlzdGEsIHRoZXNlIGhhdmUgYmVl
biBmYWlsaW5nIHNpbmNlIGNvbW1pdCA4Y2I1YzE1Ni4KClNpZ25lZC1vZmYtYnk6IFBhdWwgRHVy
cmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+Ci0tLQogc3JjL3hlbm5ldC9kcml2ZXIuYyAg
ICAgICAgICB8IDIgKysKIHNyYy94ZW5uZXQvcmVjZWl2ZXIuYyAgICAgICAgfCAxICsKIHZzMjAx
Mi94ZW5uZXQveGVubmV0LnZjeHByb2ogfCA0ICsrLS0KIHZzMjAxMy94ZW5uZXQveGVubmV0LnZj
eHByb2ogfCA0ICsrLS0KIDQgZmlsZXMgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA0IGRlbGV0
aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy94ZW5uZXQvZHJpdmVyLmMgYi9zcmMveGVubmV0L2Ry
aXZlci5jCmluZGV4IGU0ZDQ2YmUuLjIwZjFkMGUgMTAwNjQ0Ci0tLSBhL3NyYy94ZW5uZXQvZHJp
dmVyLmMKKysrIGIvc3JjL3hlbm5ldC9kcml2ZXIuYwpAQCAtMzAsNiArMzAsNyBAQAogICovCiAK
ICNpbmNsdWRlIDxuZGlzLmg+CisjaW5jbHVkZSA8cHJvY2dycC5oPgogI2luY2x1ZGUgPHZlcnNp
b24uaD4KIAogI2luY2x1ZGUgImRyaXZlci5oIgpAQCAtMTk3LDYgKzE5OCw3IEBAIERyaXZlckVu
dHJ5ICgKICAgICBVTE9ORyBGYWlsRGV2aWNlQ29udHJvbDsKIAogICAgIEV4SW5pdGlhbGl6ZURy
aXZlclJ1bnRpbWUoRHJ2UnRQb29sTnhPcHRJbik7CisgICAgV2RtbGliUHJvY2dycEluaXRpYWxp
emUoKTsKIAogICAgIFRyYWNlKCI9PT09PlxuIik7CiAKZGlmZiAtLWdpdCBhL3NyYy94ZW5uZXQv
cmVjZWl2ZXIuYyBiL3NyYy94ZW5uZXQvcmVjZWl2ZXIuYwppbmRleCA5NjRjYTkwLi5iYTA1Nzk5
IDEwMDY0NAotLS0gYS9zcmMveGVubmV0L3JlY2VpdmVyLmMKKysrIGIvc3JjL3hlbm5ldC9yZWNl
aXZlci5jCkBAIC0zMCw2ICszMCw3IEBACiAgKi8KIAogI2luY2x1ZGUgPG5kaXMuaD4KKyNpbmNs
dWRlIDxwcm9jZ3JwLmg+CiAjaW5jbHVkZSA8dGNwaXAuaD4KICNpbmNsdWRlIDx4ZW4uaD4KIApk
aWZmIC0tZ2l0IGEvdnMyMDEyL3hlbm5ldC94ZW5uZXQudmN4cHJvaiBiL3ZzMjAxMi94ZW5uZXQv
eGVubmV0LnZjeHByb2oKaW5kZXggZjBlOTA3My4uZjM4M2U4NSAxMDA2NDQKLS0tIGEvdnMyMDEy
L3hlbm5ldC94ZW5uZXQudmN4cHJvagorKysgYi92czIwMTIveGVubmV0L3hlbm5ldC52Y3hwcm9q
CkBAIC0zMiw3ICszMiw3IEBACiAJCiAgICAgPEl0ZW1EZWZpbml0aW9uR3JvdXA+CiAJCTxDbENv
bXBpbGU+Ci0JCQk8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+X19NT0RVTEVfXz0iWEVOTkVUIjtO
RElTX01JTklQT1JUX0RSSVZFUjtORElTX1dETT0xO05ESVM2MV9NSU5JUE9SVD0xO1BPT0xfTlhf
T1BUSU49MTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlv
bnM+CisJCQk8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+X19NT0RVTEVfXz0iWEVOTkVUIjtORElT
X01JTklQT1JUX0RSSVZFUjtORElTX1dETT0xO05ESVM2MV9NSU5JUE9SVD0xO1BPT0xfTlhfT1BU
SU49MTtOVF9QUk9DRVNTT1JfR1JPVVBTOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVw
cm9jZXNzb3JEZWZpbml0aW9ucz4KIAkJCTxXYXJuaW5nTGV2ZWw+RW5hYmxlQWxsV2FybmluZ3M8
L1dhcm5pbmdMZXZlbD4KIAkJCTxEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz40NzExOzQ1NDg7NDgy
MDs0NjY4OzQyNTU7NjAwMTs2MDU0OzI4MTk2OyUoRGlzYWJsZVNwZWNpZmljV2FybmluZ3MpPC9E
aXNhYmxlU3BlY2lmaWNXYXJuaW5ncz4KIAkJCTxNdWx0aVByb2Nlc3NvckNvbXBpbGF0aW9uPnRy
dWU8L011bHRpUHJvY2Vzc29yQ29tcGlsYXRpb24+CkBAIC00MCw3ICs0MCw3IEBACiAJCTwvQ2xD
b21waWxlPgogCQk8TGluaz4KIAkJCTxJbWFnZUhhc1NhZmVFeGNlcHRpb25IYW5kbGVycz5mYWxz
ZTwvSW1hZ2VIYXNTYWZlRXhjZXB0aW9uSGFuZGxlcnM+Ci0JCQk8QWRkaXRpb25hbERlcGVuZGVu
Y2llcz4kKERES19MSUJfUEFUSClcbmRpcy5saWI7JChEREtfTElCX1BBVEgpL2xpYmNudHByLmxp
YjskKERES19MSUJfUEFUSCkvYXV4X2tsaWIubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8
L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisJCQk8QWRkaXRpb25hbERlcGVuZGVuY2llcz4kKERE
S19MSUJfUEFUSClcbmRpcy5saWI7JChEREtfTElCX1BBVEgpL2xpYmNudHByLmxpYjskKERES19M
SUJfUEFUSCkvYXV4X2tsaWIubGliOyQoRERLX0xJQl9QQVRIKS9wcm9jZ3JwLmxpYjslKEFkZGl0
aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgogCQkJPEVuYWJsZUNP
TURBVEZvbGRpbmc+ZmFsc2U8L0VuYWJsZUNPTURBVEZvbGRpbmc+CiAJCTwvTGluaz4KIAkJPElu
Zj4KZGlmZiAtLWdpdCBhL3ZzMjAxMy94ZW5uZXQveGVubmV0LnZjeHByb2ogYi92czIwMTMveGVu
bmV0L3hlbm5ldC52Y3hwcm9qCmluZGV4IGNiZTU3ZjUuLjQ4ZWNhYmUgMTAwNjQ0Ci0tLSBhL3Zz
MjAxMy94ZW5uZXQveGVubmV0LnZjeHByb2oKKysrIGIvdnMyMDEzL3hlbm5ldC94ZW5uZXQudmN4
cHJvagpAQCAtMjcsNyArMjcsNyBAQAogICA8L1Byb3BlcnR5R3JvdXA+CiAgIDxJdGVtRGVmaW5p
dGlvbkdyb3VwPgogICAgIDxDbENvbXBpbGU+Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlv
bnM+X19NT0RVTEVfXz0iWEVOTkVUIjtORElTX01JTklQT1JUX0RSSVZFUjtORElTX1dETT0xO05E
SVM2MV9NSU5JUE9SVD0xO1BPT0xfTlhfT1BUSU49MTslKFByZXByb2Nlc3NvckRlZmluaXRpb25z
KTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlv
bnM+X19NT0RVTEVfXz0iWEVOTkVUIjtORElTX01JTklQT1JUX0RSSVZFUjtORElTX1dETT0xO05E
SVM2MV9NSU5JUE9SVD0xO1BPT0xfTlhfT1BUSU49MTtOVF9QUk9DRVNTT1JfR1JPVVBTOyUoUHJl
cHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KICAgICAgIDxB
ZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPiQoV2luZG93c1Nka0RpcilcaW5jbHVkZVxrbTsu
LlwuLlxpbmNsdWRlOy4uXC4uXGluY2x1ZGVceGVuOzwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcz4KICAgICAgIDxXYXJuaW5nTGV2ZWw+RW5hYmxlQWxsV2FybmluZ3M8L1dhcm5pbmdMZXZl
bD4KICAgICAgIDxEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz40NzExOzQ1NDg7NDgyMDs0NjY4OzQy
NTU7NjAwMTs2MDU0OzI4MTk2OyUoRGlzYWJsZVNwZWNpZmljV2FybmluZ3MpPC9EaXNhYmxlU3Bl
Y2lmaWNXYXJuaW5ncz4KQEAgLTM5LDcgKzM5LDcgQEAKICAgICA8L1Jlc291cmNlQ29tcGlsZT4K
ICAgICA8TGluaz4KICAgICAgIDxJbWFnZUhhc1NhZmVFeGNlcHRpb25IYW5kbGVycz5mYWxzZTwv
SW1hZ2VIYXNTYWZlRXhjZXB0aW9uSGFuZGxlcnM+Ci0gICAgICA8QWRkaXRpb25hbERlcGVuZGVu
Y2llcz4kKERES19MSUJfUEFUSClcbmRpcy5saWI7JChEREtfTElCX1BBVEgpL2xpYmNudHByLmxp
YjskKERES19MSUJfUEFUSCkvYXV4X2tsaWIubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8
L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz4k
KERES19MSUJfUEFUSClcbmRpcy5saWI7JChEREtfTElCX1BBVEgpL2xpYmNudHByLmxpYjskKERE
S19MSUJfUEFUSCkvYXV4X2tsaWIubGliOyQoRERLX0xJQl9QQVRIKS9wcm9jZ3JwLmxpYjslKEFk
ZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgogICAgICAgPEVu
YWJsZUNPTURBVEZvbGRpbmc+ZmFsc2U8L0VuYWJsZUNPTURBVEZvbGRpbmc+CiAgICAgPC9MaW5r
PgogICAgIDxJbmY+Ci0tIAoyLjEuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxp
c3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9t
YWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 26 17:05:23 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 26 Jul 2016 17:05:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bS5nF-00056O-QI; Tue, 26 Jul 2016 17:05:21 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bS5nE-00056I-CR
 for win-pv-devel@lists.xenproject.org; Tue, 26 Jul 2016 17:05:20 +0000
Received: from [85.158.139.211] by server-5.bemta-5.messagelabs.com id
 C8/DE-30284-F4897975; Tue, 26 Jul 2016 17:05:19 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprFIsWRWlGSWpSXmKPExsVyMXThQV2/GdP
 DDTZf0LP4szjRgdHj8IcrLAGMUayZeUn5FQmsGc8/3mAqWCdfsWV/G1sD42yZLkYuDiGBOYwS
 32d8ZwNxWAQusUhMmdzOAuJICLxjkfg4u5Gpi5ETyImRuD97OwuEXS6xfM8JdhBbSEBRovnaB
 XaIUcuZJNpWXwFLsAmoS9x+v5gdosFO4tOsm2C2iICqxLXlx9hAbGYBLYmHG+YxgtjCQPHpj/
 6CLWABsldufQZm8wq4Scx8spoZYo6cxN7Jq1kmMPIvYGRYxahRnFpUllqka2ihl1SUmZ5Rkpu
 YmaNraGCql5taXJyYnpqTmFSsl5yfu4kRGEIMQLCDsWm75yFGSQ4mJVFepgnTwoX4kvJTKjMS
 izPii0pzUosPMcpwcChJ8IZPnx4uJFiUmp5akZaZAwxmmLQEB4+SCK8USJq3uCAxtzgzHSJ1i
 tGYY8vva2uZOLZNvbeWSYglLz8vVUqc9980oFIBkNKM0jy4QbAou8QoKyXMywh0mhBPQWpRbm
 YJqvwrRnEORiVhXiGQhTyZeSVw+14BncIEdMoCnskgp5QkIqSkGhjbFsQ9O1RcE7FBVlDVUvK
 u2Q/2pDMndc5aZL7657PsmNTiU2dEtW9HdF4oKvx9fOGEl1o/WROvnLneyfyBtcx8I0/JpMZN
 MUyFMra86/lWBNy7fic3atf/iX71Fz3+/k26N+vs7DS3losvuyQ76/v4BW1S9xhqOx4Q/sPiy
 XXTwLfzrBCLyyQlluKMREMt5qLiRADy99ZxrQIAAA==
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-3.tower-206.messagelabs.com!1469552717!47828865!1
X-Originating-IP: [209.85.161.193]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8636 invoked from network); 26 Jul 2016 17:05:18 -0000
Received: from mail-yw0-f193.google.com (HELO mail-yw0-f193.google.com)
 (209.85.161.193)
 by server-3.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 26 Jul 2016 17:05:18 -0000
Received: by mail-yw0-f193.google.com with SMTP id u134so1536600ywg.3
 for <win-pv-devel@lists.xenproject.org>; Tue, 26 Jul 2016 10:05:18 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=CPcSwp8fIWkfOt2IOp7pTmFfL0gDkb1ZhGO3GttfiiU=;
 b=xQeaShbV/u3uSzfgoZ/C1dBCfHLAs0XKT5UMoUpjDcd3KTyLzKoLZq4dMqVdIWO87z
 Lxv/UJ+x2ECORa+maX0nCCnrYH1bhF9xpbt9xNf9vmevBqecTLiNXxGnxscUnrulPIIJ
 XAY3G272BMO/F70X00h1jyj2EDwp9gYqm4N1rono1aXt5wP2RrmhwMl1VrOthdX49mPL
 ArcBK5mYCde2/NCx5JxdCcqcctiMdWgAGyc+rDJKw0amh65XESS+e2FTi18LjMwau2y5
 YoJHNeK0R7qUG/oGyMXRPsGnrMicfZBqUr0sVT0M1xaq+T5TtYLYhwGP/sES6RQDC5yP
 Gkrg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=CPcSwp8fIWkfOt2IOp7pTmFfL0gDkb1ZhGO3GttfiiU=;
 b=dOzPtjcM046TK2S8X7FuxM00rj1zEw8Un+oaQgI2+IjnNhcw4tXZm4h+ibmta92H8/
 L1mgZUW70FenPrinMsmB//VJBcVecclR1iaf3VoPJiiidUwhDvZ9RxVyNlGakHAdvydJ
 4YUGR3hYyMQ2Fs9bi3klh7X3bXssHTB5zU05eJJpTxn6uQZgrfGmWvJsajclLH86ZLPC
 DjFNzaribOwog+jISOC5QFPxi2c1ZpxQBxwuQ957Aea+Qrs78olpH76S1oGvvjrXTiD5
 h3WGRXo33Y69cPR/XSvvS0yXTpx1FDKzAckB7k8y51JoL2rO5pRN06crFLBOZ9UjZWzf
 e1xQ==
X-Gm-Message-State: AEkoousYncZ85fYm/P82plC4gRpFKalw4slQS9QdvLeSqmyAPzerd5X7zER/cGm4+NQ0bw==
X-Received: by 10.31.57.71 with SMTP id g68mr9497186vka.20.1469552717458;
 Tue, 26 Jul 2016 10:05:17 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id w185sm244986vkw.11.2016.07.26.10.05.16
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Tue, 26 Jul 2016 10:05:16 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Tue, 26 Jul 2016 18:05:02 +0100
Message-Id: <1469552702-4736-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH v2] Fix VS2012 builds
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

QnVpbGRpbmcgZm9yIE9TIGVhcmxpZXIgdGhhbiBXaW5kb3dzIDcgbm93IHJlcXVpcmVzIHVzZSBv
ZiBwcm9jZ3JwLmxpYgpzaW5jZSBLZUdldEN1cnJlbnRQcm9jZXNzb3JFeCgpIGlzIHVzZWQuIFNp
bmNlIHRoZSBiYXNlIE9TIG9mIFZTMjAxMiBidWlsZHMKaXMgVmlzdGEsIHRoZXNlIGhhdmUgYmVl
biBmYWlsaW5nIHNpbmNlIGNvbW1pdCA4Y2I1YzE1Ni4KClNpZ25lZC1vZmYtYnk6IFBhdWwgRHVy
cmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+Ci0tLQogc3JjL3hlbm5ldC9kcml2ZXIuYyAg
ICAgICAgICB8IDIgKysKIHNyYy94ZW5uZXQvcmVjZWl2ZXIuYyAgICAgICAgfCAxICsKIHZzMjAx
Mi94ZW5uZXQveGVubmV0LnZjeHByb2ogfCA0ICsrLS0KIHZzMjAxMy94ZW5uZXQveGVubmV0LnZj
eHByb2ogfCA0ICsrLS0KIDQgZmlsZXMgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA0IGRlbGV0
aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy94ZW5uZXQvZHJpdmVyLmMgYi9zcmMveGVubmV0L2Ry
aXZlci5jCmluZGV4IGU0ZDQ2YmUuLjIwZjFkMGUgMTAwNjQ0Ci0tLSBhL3NyYy94ZW5uZXQvZHJp
dmVyLmMKKysrIGIvc3JjL3hlbm5ldC9kcml2ZXIuYwpAQCAtMzAsNiArMzAsNyBAQAogICovCiAK
ICNpbmNsdWRlIDxuZGlzLmg+CisjaW5jbHVkZSA8cHJvY2dycC5oPgogI2luY2x1ZGUgPHZlcnNp
b24uaD4KIAogI2luY2x1ZGUgImRyaXZlci5oIgpAQCAtMTk3LDYgKzE5OCw3IEBAIERyaXZlckVu
dHJ5ICgKICAgICBVTE9ORyBGYWlsRGV2aWNlQ29udHJvbDsKIAogICAgIEV4SW5pdGlhbGl6ZURy
aXZlclJ1bnRpbWUoRHJ2UnRQb29sTnhPcHRJbik7CisgICAgV2RtbGliUHJvY2dycEluaXRpYWxp
emUoKTsKIAogICAgIFRyYWNlKCI9PT09PlxuIik7CiAKZGlmZiAtLWdpdCBhL3NyYy94ZW5uZXQv
cmVjZWl2ZXIuYyBiL3NyYy94ZW5uZXQvcmVjZWl2ZXIuYwppbmRleCA5NjRjYTkwLi5iYTA1Nzk5
IDEwMDY0NAotLS0gYS9zcmMveGVubmV0L3JlY2VpdmVyLmMKKysrIGIvc3JjL3hlbm5ldC9yZWNl
aXZlci5jCkBAIC0zMCw2ICszMCw3IEBACiAgKi8KIAogI2luY2x1ZGUgPG5kaXMuaD4KKyNpbmNs
dWRlIDxwcm9jZ3JwLmg+CiAjaW5jbHVkZSA8dGNwaXAuaD4KICNpbmNsdWRlIDx4ZW4uaD4KIApk
aWZmIC0tZ2l0IGEvdnMyMDEyL3hlbm5ldC94ZW5uZXQudmN4cHJvaiBiL3ZzMjAxMi94ZW5uZXQv
eGVubmV0LnZjeHByb2oKaW5kZXggZjBlOTA3My4uZjM4M2U4NSAxMDA2NDQKLS0tIGEvdnMyMDEy
L3hlbm5ldC94ZW5uZXQudmN4cHJvagorKysgYi92czIwMTIveGVubmV0L3hlbm5ldC52Y3hwcm9q
CkBAIC0zMiw3ICszMiw3IEBACiAJCiAgICAgPEl0ZW1EZWZpbml0aW9uR3JvdXA+CiAJCTxDbENv
bXBpbGU+Ci0JCQk8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+X19NT0RVTEVfXz0iWEVOTkVUIjtO
RElTX01JTklQT1JUX0RSSVZFUjtORElTX1dETT0xO05ESVM2MV9NSU5JUE9SVD0xO1BPT0xfTlhf
T1BUSU49MTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlv
bnM+CisJCQk8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+X19NT0RVTEVfXz0iWEVOTkVUIjtORElT
X01JTklQT1JUX0RSSVZFUjtORElTX1dETT0xO05ESVM2MV9NSU5JUE9SVD0xO1BPT0xfTlhfT1BU
SU49MTtOVF9QUk9DRVNTT1JfR1JPVVBTOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVw
cm9jZXNzb3JEZWZpbml0aW9ucz4KIAkJCTxXYXJuaW5nTGV2ZWw+RW5hYmxlQWxsV2FybmluZ3M8
L1dhcm5pbmdMZXZlbD4KIAkJCTxEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz40NzExOzQ1NDg7NDgy
MDs0NjY4OzQyNTU7NjAwMTs2MDU0OzI4MTk2OyUoRGlzYWJsZVNwZWNpZmljV2FybmluZ3MpPC9E
aXNhYmxlU3BlY2lmaWNXYXJuaW5ncz4KIAkJCTxNdWx0aVByb2Nlc3NvckNvbXBpbGF0aW9uPnRy
dWU8L011bHRpUHJvY2Vzc29yQ29tcGlsYXRpb24+CkBAIC00MCw3ICs0MCw3IEBACiAJCTwvQ2xD
b21waWxlPgogCQk8TGluaz4KIAkJCTxJbWFnZUhhc1NhZmVFeGNlcHRpb25IYW5kbGVycz5mYWxz
ZTwvSW1hZ2VIYXNTYWZlRXhjZXB0aW9uSGFuZGxlcnM+Ci0JCQk8QWRkaXRpb25hbERlcGVuZGVu
Y2llcz4kKERES19MSUJfUEFUSClcbmRpcy5saWI7JChEREtfTElCX1BBVEgpL2xpYmNudHByLmxp
YjskKERES19MSUJfUEFUSCkvYXV4X2tsaWIubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8
L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisJCQk8QWRkaXRpb25hbERlcGVuZGVuY2llcz4kKERE
S19MSUJfUEFUSClcbmRpcy5saWI7JChEREtfTElCX1BBVEgpL2xpYmNudHByLmxpYjskKERES19M
SUJfUEFUSCkvYXV4X2tsaWIubGliOyQoRERLX0xJQl9QQVRIKS9wcm9jZ3JwLmxpYjslKEFkZGl0
aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgogCQkJPEVuYWJsZUNP
TURBVEZvbGRpbmc+ZmFsc2U8L0VuYWJsZUNPTURBVEZvbGRpbmc+CiAJCTwvTGluaz4KIAkJPElu
Zj4KZGlmZiAtLWdpdCBhL3ZzMjAxMy94ZW5uZXQveGVubmV0LnZjeHByb2ogYi92czIwMTMveGVu
bmV0L3hlbm5ldC52Y3hwcm9qCmluZGV4IGNiZTU3ZjUuLjQ4ZWNhYmUgMTAwNjQ0Ci0tLSBhL3Zz
MjAxMy94ZW5uZXQveGVubmV0LnZjeHByb2oKKysrIGIvdnMyMDEzL3hlbm5ldC94ZW5uZXQudmN4
cHJvagpAQCAtMjcsNyArMjcsNyBAQAogICA8L1Byb3BlcnR5R3JvdXA+CiAgIDxJdGVtRGVmaW5p
dGlvbkdyb3VwPgogICAgIDxDbENvbXBpbGU+Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlv
bnM+X19NT0RVTEVfXz0iWEVOTkVUIjtORElTX01JTklQT1JUX0RSSVZFUjtORElTX1dETT0xO05E
SVM2MV9NSU5JUE9SVD0xO1BPT0xfTlhfT1BUSU49MTslKFByZXByb2Nlc3NvckRlZmluaXRpb25z
KTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlv
bnM+X19NT0RVTEVfXz0iWEVOTkVUIjtORElTX01JTklQT1JUX0RSSVZFUjtORElTX1dETT0xO05E
SVM2MV9NSU5JUE9SVD0xO1BPT0xfTlhfT1BUSU49MTtOVF9QUk9DRVNTT1JfR1JPVVBTOyUoUHJl
cHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KICAgICAgIDxB
ZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPiQoV2luZG93c1Nka0RpcilcaW5jbHVkZVxrbTsu
LlwuLlxpbmNsdWRlOy4uXC4uXGluY2x1ZGVceGVuOzwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcz4KICAgICAgIDxXYXJuaW5nTGV2ZWw+RW5hYmxlQWxsV2FybmluZ3M8L1dhcm5pbmdMZXZl
bD4KICAgICAgIDxEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz40NzExOzQ1NDg7NDgyMDs0NjY4OzQy
NTU7NjAwMTs2MDU0OzI4MTk2OyUoRGlzYWJsZVNwZWNpZmljV2FybmluZ3MpPC9EaXNhYmxlU3Bl
Y2lmaWNXYXJuaW5ncz4KQEAgLTM5LDcgKzM5LDcgQEAKICAgICA8L1Jlc291cmNlQ29tcGlsZT4K
ICAgICA8TGluaz4KICAgICAgIDxJbWFnZUhhc1NhZmVFeGNlcHRpb25IYW5kbGVycz5mYWxzZTwv
SW1hZ2VIYXNTYWZlRXhjZXB0aW9uSGFuZGxlcnM+Ci0gICAgICA8QWRkaXRpb25hbERlcGVuZGVu
Y2llcz4kKERES19MSUJfUEFUSClcbmRpcy5saWI7JChEREtfTElCX1BBVEgpL2xpYmNudHByLmxp
YjskKERES19MSUJfUEFUSCkvYXV4X2tsaWIubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8
L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz4k
KERES19MSUJfUEFUSClcbmRpcy5saWI7JChEREtfTElCX1BBVEgpL2xpYmNudHByLmxpYjskKERE
S19MSUJfUEFUSCkvYXV4X2tsaWIubGliOyQoRERLX0xJQl9QQVRIKS9wcm9jZ3JwLmxpYjslKEFk
ZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgogICAgICAgPEVu
YWJsZUNPTURBVEZvbGRpbmc+ZmFsc2U8L0VuYWJsZUNPTURBVEZvbGRpbmc+CiAgICAgPC9MaW5r
PgogICAgIDxJbmY+Ci0tIAoyLjEuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxp
c3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9t
YWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 26 17:07:59 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 26 Jul 2016 17:07:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bS5pn-00059V-1B; Tue, 26 Jul 2016 17:07:59 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <brandon@thinkhuge.net>) id 1bS5pm-00059P-00
 for win-pv-devel@lists.xenproject.org; Tue, 26 Jul 2016 17:07:58 +0000
Received: from [85.158.139.211] by server-13.bemta-5.messagelabs.com id
 3C/F5-12874-DE897975; Tue, 26 Jul 2016 17:07:57 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrFIsWRWlGSWpSXmKPExsVyMfSOtu6bGdP
 DDc7vVbP4szjRgdHj8IcrLAGMUayZeUn5FQmsGe2bJzMXXBCqePZgLXsD41n+LkYuDiGBWYwS
 u3bdYeti5ORgEbjGLPHzuDlIQkJgF6vE8se7WEASEgIxEl/+HWfuYuQAsislHr/LAwkLCahIX
 Ox9wg5hH2WS+PtSCMRmEzCUOLLmKliriIC6xL7PW5lAbGEBHYmuC6fZIXapSlzu/wpm8wpYS0
 xZ/pcZwhaUODnzCVgvs4CWxNS1r6BsbYllC18zQ5yjIPHz6TJWiPl6Ep+utLFD1IhLvDx6hH0
 Co9AsJKNmIRk1C8moWUhaFjCyrGJUL04tKkst0jXUSyrKTM8oyU3MzNE1NDDVy00tLk5MT81J
 TCrWS87P3cQIDPF6BgbGHYxNvc6HGCU5mJREeZkmTAsX4kvKT6nMSCzOiC8qzUktPsQow8GhJ
 MF7Y/r0cCHBotT01Iq0zBxgtMGkJTh4lER4uYARJ8RbXJCYW5yZDpE6xWjMseX3tbVMHNum3l
 vLJMSSl5+XKiXOywdSKgBSmlGaBzcIlgQuMcpKCfMyMjAwCPEUpBblZpagyr9iFOdgVBLmPQJ
 yD09mXgncvldApzABnbKAZzLIKSWJCCmpBsYah8sLine8+2HwwSNB4Rqrv1rrw71tH5UXiitY
 Luzh5Ip/V3SmQiLCPfxGlNY7TY2jESJpllJRx1LmyZQne6+9UGn0+tH+4GtLrA5LOEopiOqHX
 jreEpgdKzNfrichvNV9+hTfjO+bjkrOSPhzbF6iqtpfMbmqAycXbHu7/dOMPaXSCg3xrUosxR
 mJhlrMRcWJAFwMQNX9AgAA
X-Env-Sender: brandon@thinkhuge.net
X-Msg-Ref: server-7.tower-206.messagelabs.com!1469552875!51289955!1
X-Originating-IP: [209.85.220.43]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 37719 invoked from network); 26 Jul 2016 17:07:56 -0000
Received: from mail-pa0-f43.google.com (HELO mail-pa0-f43.google.com)
 (209.85.220.43)
 by server-7.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 26 Jul 2016 17:07:56 -0000
Received: by mail-pa0-f43.google.com with SMTP id ks6so1567094pab.0
 for <win-pv-devel@lists.xenproject.org>; Tue, 26 Jul 2016 10:07:56 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=thinkhuge.net; s=google;
 h=from:to:subject:date:message-id:mime-version
 :content-transfer-encoding:thread-index:content-language;
 bh=TDFJRWsa8gab/qPwsVDET611ydHgEEG8CxjC7zzUVws=;
 b=caw+cRJzCW7tam8h1zWn4HITVMA7mpQ933TrdEJNHm6wMTjT4aB0DaOdZpAATLLLnK
 TnPo9yW3VeLx35cPXg02LPrbHnUSpJt3x56+3S7+IBe4ESqzWJEHiO+/oXYGaBQiyf6v
 3KmbG4i9vCCdIU1gAWc8wUi9srKPfIKlgqXl0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:subject:date:message-id:mime-version
 :content-transfer-encoding:thread-index:content-language;
 bh=TDFJRWsa8gab/qPwsVDET611ydHgEEG8CxjC7zzUVws=;
 b=Wg/ccYwGs8Cwrq0YVSxfA5lNfGZnlHtH1k38CZacg+sRSs+blZL82hnRVeetaP1Wyw
 gLpD0ROr9AKMTj4Mw8ZhPb0XBijaxCRHGQa3BOz8tqNeIohHsdgVkhoFTj3+VeWjVl4t
 txY0fq7WWAmHq4Iti2RO4rA1PXWCGrih7bGLsynyd5pEANC9+P+5oNcBPewaI9dVajI/
 +T+R/TOZDJur4bpO1GLUm64lT5d77pWo+nnxMRx0cei3PSnXwCodgM59fI/5gh+hkhvh
 OvA89ua+EW34tbzwoEO5dyFkJxABi/7DwMWd0R4JfMqWsvfzCSIF8vqwjU22uZB9P+tS
 XB2A==
X-Gm-Message-State: AEkoouuZwVITODOTSi6VdqPU/zZM5pa6o0wL8bYo9Gic82k/tKgQ+l3Jzwn/6hjAaIiYRWs3
X-Received: by 10.66.254.39 with SMTP id af7mr41129068pad.37.1469552874479;
 Tue, 26 Jul 2016 10:07:54 -0700 (PDT)
Received: from venus (ip70-170-124-201.lv.lv.cox.net. [70.170.124.201])
 by smtp.googlemail.com with ESMTPSA id g21sm2838633pfj.88.2016.07.26.10.07.52
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Tue, 26 Jul 2016 10:07:53 -0700 (PDT)
From: "Brandon Shoemaker" <brandon@thinkhuge.net>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 26 Jul 2016 10:07:51 -0700
Message-ID: <08a801d1e760$3f2549a0$bd6fdce0$@thinkhuge.net>
MIME-Version: 1.0
X-Mailer: Microsoft Outlook 16.0
Thread-Index: AdHnX9YJ49ZYf2raRWSegcQym2WaAw==
Content-Language: en-us
Subject: [win-pv-devel]  Signed 8.1.0 drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

SGVsbG8sCgpJIGhhdmUgYmVlbiB3YWl0aW5nIG9uIHRoZXNlIG5ldyBzaWduZWQgZHJpdmVycy4g
IFRoYW5rcyBmb3IgZmluYWxseSBtYWtpbmcgdGhlbSBhdmFpbGFibGUhCgpJIGhhdmUgdGVzdGVk
IGFuZCBydW4gaW50byBhIHByb2JsZW1zIHVuZm9ydHVuYXRlbHkgc28gSSB3YW50ZWQgdG8gcmVw
b3J0IHRoaXMuCgpGaXJzdCBJIHRyaWVkIHVuaW5zdGFsbGluZyB0aGUgRUpCIGRpZ2l0YWwgZHJp
dmVycyAoZWpicHZfVmlzdGEyMDA4eDY0XzEuMC4xMTA1Lm1zaSkgYW5kIGluc3RhbGxpbmcgdGhl
c2UgbmV3IGRyaXZlcnMgb24gV2luZG93cyAyMDA4IFIyIHg2NCBleGlzdGluZyBWUFMuICBBZnRl
ciByZWJvb3RpbmcgV2luZG93cyAyMDA4IFIyIGhhbmdzIGZvcmV2ZXIgYXQgYm9vdC4KClNlY29u
ZGx5IEkgaGF2ZSBpbnN0YWxsZWQgYSBjbGVhbiBXaW5kb3dzIDIwMDggUjIgYW5kIHRoZW4gaW5z
dGFsbGVkIGFsbCB0aGUgZHJpdmVycyBhbmQgd2hlbiBJIHJlYm9vdCBpdCBnb2VzIGludG8gcmVj
b3ZlcnkgbW9kZS4gIEkgaGFwcGVuIHRvIGNoZWNrIFdpbmRvd3MgZGV2aWNlIG1hbmFnZXIgYmVm
b3JlIEkgcmVib290ZWQgYW5kIEkgbm90aWNlZCB0aGF0IHRoZSAiWGVuIFBWIEJ1cyIgZHJpdmVy
IGhhcyBhIHllbGxvdyB3YXJuaW5nIHN5bWJvbCBhcyBzaG93biBpbiB0aGUgc2NyZWVuc2hvdCA+
IGh0dHBzOi8vcG9zdGltZy5vcmcvaW1hZ2UveDA4ZzduNHduLyAgIGl0IHNheXMgaXQgY2Fubm90
IHZlcmlmeSB0aGUgZGlnaXRhbCBzaWduYXR1cmUgZm9yIHRoZSBYZW4gUFYgQnVzIGRyaXZlcnMu
ICBOb3RoaW5nIHdhcyBkb25lIGJ1dCB0aGUgaW5zdGFsbCBvZiBXaW5kb3dzIGFuZCB0aGVuIGlt
bWVkaWF0ZSBpbnN0YWxsIG9mIHRoZSBkcml2ZXJzLgoKTXkgWGVuIHNlcnZlcnMgYXJlIGJ1aWx0
IHZpYSBTb2x1c1ZNIGluc3RhbGwgc2NyaXB0IGFuZCB0aGlzIHBhcnRpY3VsYXIgc2VydmVyIGlz
IHhlbl92ZXJzaW9uIDQuNi4xLTExLmVsNiBvbiBjZW50b3M2LgoKLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKPiAt
LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+IEZyb206IHdpbi1wdi1kZXZlbCBbbWFpbHRvOndp
bi1wdi1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnXSAKPiBPbiBCZWhhbGYgT2Yg
UGF1bCBEdXJyYW50Cj4gU2VudDogMjIgSnVseSAyMDE2IDE2OjEyCj4gVG86IHdpbi1wdi1kZXZl
bEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwo+IFN1YmplY3Q6IFt3aW4tcHYtZGV2ZWxdIFNpZ25lZCA4
LjEuMCBkcml2ZXJzCj4gCj4gQWxsLAo+IAo+ICAgR29vZCBuZXdzISBJIGhhdmUgdGFnZ2VkIHRo
ZSA4LjEuMCByZWxlYXNlIGRyaXZlciBzb3VyY2UgaW4gZWFjaCBvZiAKPiB0aGUgcmVwb3NpdG9y
aWVzLCBidWlsdCBpdCBhbmQgc2lnbmVkIGl0LiBJIGRvbid0IHlldCBoYXZlIGFuIG9mZmljaWFs
IAo+IHBsYWNlIHRvIHB1dCB0aGUgc2lnbmVkIGJ1aWxkcyBzbyBmb3IgdGhlIG1vbWVudCB5b3Ug
Y2FuIGdldCB0aGVtIGZyb20KPiAKPiBodHRwczovL3hlbmJpdHMueGVuLm9yZy9wZW9wbGUvcGF1
bGR1L3B2ZHJpdmVycy93aW4vcmVsZWFzZS84LjEuMAo+IAo+ICAgSSBoYXZlIHRlc3RlZCBpbnN0
YWxsYXRpb24gb24gV2luZG93cyAxMCAoMzItYml0KSBhbmQgdGhlIHNpZ25hdHVyZXMgCj4gYXBw
ZWFyIHRvIGJlIGdvb2QuCj4gCj4gICBJIHdpbGwgbGV0IHRoZSBsaXN0IGtub3cgd2hlbiB0aGUg
dGFyYmFsbHMgbW92ZSB0byBhIG1vcmUgcGVybWFuZW50IAo+IHBsYWNlIGFuZCBJIHdpbGwsIGF0
IHRoYXQgcG9pbnQsIGxpbmsgdGhlbSBmcm9tIHRoZSBwcm9qZWN0IGZyb250IHBhZ2UuCj4gCgpB
bGwsCgpUaGUgdGFyYmFsbHMgYXJlIG5vdyBpbiB0aGVpciBwZXJtYW5lbnQgaG9tZSAoaHR0cHM6
Ly94ZW5iaXRzLnhlbi5vcmcvcHZkcml2ZXJzL3dpbi84LjEuMCkgYW5kIGFyZSBsaW5rZWQgZnJv
bSB0aGUgcHJvamVjdCBmcm9udCBwYWdlIChodHRwOi8vd3d3LnhlbnByb2plY3Qub3JnL2RldmVs
b3BlcnMvdGVhbXMvd2luZG93cy1wdi1kcml2ZXJzLmh0bWwpLgoKICBDaGVlcnMsCgogIFBhdWwK
Cj4gICBDaGVlcnMsCj4gCj4gICAgIFBhdWwKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwo+IHdpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKPiB3aW4t
cHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKPiBodHRwczovL2xpc3RzLnhlbnByb2plY3Qu
b3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWwKCgoKX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcg
bGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5w
cm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 26 17:07:59 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 26 Jul 2016 17:07:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bS5pn-00059V-1B; Tue, 26 Jul 2016 17:07:59 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <brandon@thinkhuge.net>) id 1bS5pm-00059P-00
 for win-pv-devel@lists.xenproject.org; Tue, 26 Jul 2016 17:07:58 +0000
Received: from [85.158.139.211] by server-13.bemta-5.messagelabs.com id
 3C/F5-12874-DE897975; Tue, 26 Jul 2016 17:07:57 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrFIsWRWlGSWpSXmKPExsVyMfSOtu6bGdP
 DDc7vVbP4szjRgdHj8IcrLAGMUayZeUn5FQmsGe2bJzMXXBCqePZgLXsD41n+LkYuDiGBWYwS
 u3bdYeti5ORgEbjGLPHzuDlIQkJgF6vE8se7WEASEgIxEl/+HWfuYuQAsislHr/LAwkLCahIX
 Ox9wg5hH2WS+PtSCMRmEzCUOLLmKliriIC6xL7PW5lAbGEBHYmuC6fZIXapSlzu/wpm8wpYS0
 xZ/pcZwhaUODnzCVgvs4CWxNS1r6BsbYllC18zQ5yjIPHz6TJWiPl6Ep+utLFD1IhLvDx6hH0
 Co9AsJKNmIRk1C8moWUhaFjCyrGJUL04tKkst0jXUSyrKTM8oyU3MzNE1NDDVy00tLk5MT81J
 TCrWS87P3cQIDPF6BgbGHYxNvc6HGCU5mJREeZkmTAsX4kvKT6nMSCzOiC8qzUktPsQow8GhJ
 MF7Y/r0cCHBotT01Iq0zBxgtMGkJTh4lER4uYARJ8RbXJCYW5yZDpE6xWjMseX3tbVMHNum3l
 vLJMSSl5+XKiXOywdSKgBSmlGaBzcIlgQuMcpKCfMyMjAwCPEUpBblZpagyr9iFOdgVBLmPQJ
 yD09mXgncvldApzABnbKAZzLIKSWJCCmpBsYah8sLine8+2HwwSNB4Rqrv1rrw71tH5UXiitY
 Luzh5Ip/V3SmQiLCPfxGlNY7TY2jESJpllJRx1LmyZQne6+9UGn0+tH+4GtLrA5LOEopiOqHX
 jreEpgdKzNfrichvNV9+hTfjO+bjkrOSPhzbF6iqtpfMbmqAycXbHu7/dOMPaXSCg3xrUosxR
 mJhlrMRcWJAFwMQNX9AgAA
X-Env-Sender: brandon@thinkhuge.net
X-Msg-Ref: server-7.tower-206.messagelabs.com!1469552875!51289955!1
X-Originating-IP: [209.85.220.43]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 37719 invoked from network); 26 Jul 2016 17:07:56 -0000
Received: from mail-pa0-f43.google.com (HELO mail-pa0-f43.google.com)
 (209.85.220.43)
 by server-7.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 26 Jul 2016 17:07:56 -0000
Received: by mail-pa0-f43.google.com with SMTP id ks6so1567094pab.0
 for <win-pv-devel@lists.xenproject.org>; Tue, 26 Jul 2016 10:07:56 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=thinkhuge.net; s=google;
 h=from:to:subject:date:message-id:mime-version
 :content-transfer-encoding:thread-index:content-language;
 bh=TDFJRWsa8gab/qPwsVDET611ydHgEEG8CxjC7zzUVws=;
 b=caw+cRJzCW7tam8h1zWn4HITVMA7mpQ933TrdEJNHm6wMTjT4aB0DaOdZpAATLLLnK
 TnPo9yW3VeLx35cPXg02LPrbHnUSpJt3x56+3S7+IBe4ESqzWJEHiO+/oXYGaBQiyf6v
 3KmbG4i9vCCdIU1gAWc8wUi9srKPfIKlgqXl0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:subject:date:message-id:mime-version
 :content-transfer-encoding:thread-index:content-language;
 bh=TDFJRWsa8gab/qPwsVDET611ydHgEEG8CxjC7zzUVws=;
 b=Wg/ccYwGs8Cwrq0YVSxfA5lNfGZnlHtH1k38CZacg+sRSs+blZL82hnRVeetaP1Wyw
 gLpD0ROr9AKMTj4Mw8ZhPb0XBijaxCRHGQa3BOz8tqNeIohHsdgVkhoFTj3+VeWjVl4t
 txY0fq7WWAmHq4Iti2RO4rA1PXWCGrih7bGLsynyd5pEANC9+P+5oNcBPewaI9dVajI/
 +T+R/TOZDJur4bpO1GLUm64lT5d77pWo+nnxMRx0cei3PSnXwCodgM59fI/5gh+hkhvh
 OvA89ua+EW34tbzwoEO5dyFkJxABi/7DwMWd0R4JfMqWsvfzCSIF8vqwjU22uZB9P+tS
 XB2A==
X-Gm-Message-State: AEkoouuZwVITODOTSi6VdqPU/zZM5pa6o0wL8bYo9Gic82k/tKgQ+l3Jzwn/6hjAaIiYRWs3
X-Received: by 10.66.254.39 with SMTP id af7mr41129068pad.37.1469552874479;
 Tue, 26 Jul 2016 10:07:54 -0700 (PDT)
Received: from venus (ip70-170-124-201.lv.lv.cox.net. [70.170.124.201])
 by smtp.googlemail.com with ESMTPSA id g21sm2838633pfj.88.2016.07.26.10.07.52
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Tue, 26 Jul 2016 10:07:53 -0700 (PDT)
From: "Brandon Shoemaker" <brandon@thinkhuge.net>
To: <win-pv-devel@lists.xenproject.org>
Date: Tue, 26 Jul 2016 10:07:51 -0700
Message-ID: <08a801d1e760$3f2549a0$bd6fdce0$@thinkhuge.net>
MIME-Version: 1.0
X-Mailer: Microsoft Outlook 16.0
Thread-Index: AdHnX9YJ49ZYf2raRWSegcQym2WaAw==
Content-Language: en-us
Subject: [win-pv-devel]  Signed 8.1.0 drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

SGVsbG8sCgpJIGhhdmUgYmVlbiB3YWl0aW5nIG9uIHRoZXNlIG5ldyBzaWduZWQgZHJpdmVycy4g
IFRoYW5rcyBmb3IgZmluYWxseSBtYWtpbmcgdGhlbSBhdmFpbGFibGUhCgpJIGhhdmUgdGVzdGVk
IGFuZCBydW4gaW50byBhIHByb2JsZW1zIHVuZm9ydHVuYXRlbHkgc28gSSB3YW50ZWQgdG8gcmVw
b3J0IHRoaXMuCgpGaXJzdCBJIHRyaWVkIHVuaW5zdGFsbGluZyB0aGUgRUpCIGRpZ2l0YWwgZHJp
dmVycyAoZWpicHZfVmlzdGEyMDA4eDY0XzEuMC4xMTA1Lm1zaSkgYW5kIGluc3RhbGxpbmcgdGhl
c2UgbmV3IGRyaXZlcnMgb24gV2luZG93cyAyMDA4IFIyIHg2NCBleGlzdGluZyBWUFMuICBBZnRl
ciByZWJvb3RpbmcgV2luZG93cyAyMDA4IFIyIGhhbmdzIGZvcmV2ZXIgYXQgYm9vdC4KClNlY29u
ZGx5IEkgaGF2ZSBpbnN0YWxsZWQgYSBjbGVhbiBXaW5kb3dzIDIwMDggUjIgYW5kIHRoZW4gaW5z
dGFsbGVkIGFsbCB0aGUgZHJpdmVycyBhbmQgd2hlbiBJIHJlYm9vdCBpdCBnb2VzIGludG8gcmVj
b3ZlcnkgbW9kZS4gIEkgaGFwcGVuIHRvIGNoZWNrIFdpbmRvd3MgZGV2aWNlIG1hbmFnZXIgYmVm
b3JlIEkgcmVib290ZWQgYW5kIEkgbm90aWNlZCB0aGF0IHRoZSAiWGVuIFBWIEJ1cyIgZHJpdmVy
IGhhcyBhIHllbGxvdyB3YXJuaW5nIHN5bWJvbCBhcyBzaG93biBpbiB0aGUgc2NyZWVuc2hvdCA+
IGh0dHBzOi8vcG9zdGltZy5vcmcvaW1hZ2UveDA4ZzduNHduLyAgIGl0IHNheXMgaXQgY2Fubm90
IHZlcmlmeSB0aGUgZGlnaXRhbCBzaWduYXR1cmUgZm9yIHRoZSBYZW4gUFYgQnVzIGRyaXZlcnMu
ICBOb3RoaW5nIHdhcyBkb25lIGJ1dCB0aGUgaW5zdGFsbCBvZiBXaW5kb3dzIGFuZCB0aGVuIGlt
bWVkaWF0ZSBpbnN0YWxsIG9mIHRoZSBkcml2ZXJzLgoKTXkgWGVuIHNlcnZlcnMgYXJlIGJ1aWx0
IHZpYSBTb2x1c1ZNIGluc3RhbGwgc2NyaXB0IGFuZCB0aGlzIHBhcnRpY3VsYXIgc2VydmVyIGlz
IHhlbl92ZXJzaW9uIDQuNi4xLTExLmVsNiBvbiBjZW50b3M2LgoKLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKPiAt
LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+IEZyb206IHdpbi1wdi1kZXZlbCBbbWFpbHRvOndp
bi1wdi1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnXSAKPiBPbiBCZWhhbGYgT2Yg
UGF1bCBEdXJyYW50Cj4gU2VudDogMjIgSnVseSAyMDE2IDE2OjEyCj4gVG86IHdpbi1wdi1kZXZl
bEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwo+IFN1YmplY3Q6IFt3aW4tcHYtZGV2ZWxdIFNpZ25lZCA4
LjEuMCBkcml2ZXJzCj4gCj4gQWxsLAo+IAo+ICAgR29vZCBuZXdzISBJIGhhdmUgdGFnZ2VkIHRo
ZSA4LjEuMCByZWxlYXNlIGRyaXZlciBzb3VyY2UgaW4gZWFjaCBvZiAKPiB0aGUgcmVwb3NpdG9y
aWVzLCBidWlsdCBpdCBhbmQgc2lnbmVkIGl0LiBJIGRvbid0IHlldCBoYXZlIGFuIG9mZmljaWFs
IAo+IHBsYWNlIHRvIHB1dCB0aGUgc2lnbmVkIGJ1aWxkcyBzbyBmb3IgdGhlIG1vbWVudCB5b3Ug
Y2FuIGdldCB0aGVtIGZyb20KPiAKPiBodHRwczovL3hlbmJpdHMueGVuLm9yZy9wZW9wbGUvcGF1
bGR1L3B2ZHJpdmVycy93aW4vcmVsZWFzZS84LjEuMAo+IAo+ICAgSSBoYXZlIHRlc3RlZCBpbnN0
YWxsYXRpb24gb24gV2luZG93cyAxMCAoMzItYml0KSBhbmQgdGhlIHNpZ25hdHVyZXMgCj4gYXBw
ZWFyIHRvIGJlIGdvb2QuCj4gCj4gICBJIHdpbGwgbGV0IHRoZSBsaXN0IGtub3cgd2hlbiB0aGUg
dGFyYmFsbHMgbW92ZSB0byBhIG1vcmUgcGVybWFuZW50IAo+IHBsYWNlIGFuZCBJIHdpbGwsIGF0
IHRoYXQgcG9pbnQsIGxpbmsgdGhlbSBmcm9tIHRoZSBwcm9qZWN0IGZyb250IHBhZ2UuCj4gCgpB
bGwsCgpUaGUgdGFyYmFsbHMgYXJlIG5vdyBpbiB0aGVpciBwZXJtYW5lbnQgaG9tZSAoaHR0cHM6
Ly94ZW5iaXRzLnhlbi5vcmcvcHZkcml2ZXJzL3dpbi84LjEuMCkgYW5kIGFyZSBsaW5rZWQgZnJv
bSB0aGUgcHJvamVjdCBmcm9udCBwYWdlIChodHRwOi8vd3d3LnhlbnByb2plY3Qub3JnL2RldmVs
b3BlcnMvdGVhbXMvd2luZG93cy1wdi1kcml2ZXJzLmh0bWwpLgoKICBDaGVlcnMsCgogIFBhdWwK
Cj4gICBDaGVlcnMsCj4gCj4gICAgIFBhdWwKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwo+IHdpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKPiB3aW4t
cHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKPiBodHRwczovL2xpc3RzLnhlbnByb2plY3Qu
b3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWwKCgoKX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcg
bGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5w
cm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 26 17:15:35 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 26 Jul 2016 17:15:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bS5x8-0005ed-Ly; Tue, 26 Jul 2016 17:15:34 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=0084a2c2e=Paul.Durrant@citrix.com>)
 id 1bS5x7-0005eR-FN
 for win-pv-devel@lists.xenproject.org; Tue, 26 Jul 2016 17:15:33 +0000
Received: from [85.158.139.211] by server-12.bemta-5.messagelabs.com id
 B9/F6-01026-4BA97975; Tue, 26 Jul 2016 17:15:32 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrHIsWRWlGSWpSXmKPExsWyU9JRQnfLrOn
 hBicPclv8WZzowOhx+MMVlgDGKNbMvKT8igTWjM2Pb7EVTFCoaH1n2sB4X6aLkZNDQsBP4v3u
 I8wgNpuAjsTSo/OZQGwRgXyJFx/+gtnCAmoSq/q7WSDi6hJrd11hhrCNJI5cP8sOYrMIqEoc7
 PgAZvMKuEv8vPcDrEZIwE2iffYEoDkcHJxA8bXfwEYyCshKfGlcDVbCLCAucesJxFoJAQGJJX
 vOM0PYohIvH/9jhbANJLYu3ccCUa8jsWD3JzYIW1ti2cLXzBBrBSVOznzCArFWRWLL4wNQc7g
 lVn7+wzKBUWQWknWzkIyahWTULCSjFjCyrGLUKE4tKkst0jUy00sqykzPKMlNzMzRNTQw1ctN
 LS5OTE/NSUwq1kvOz93ECIyHegYGxh2Mtyf7HWKU5GBSEuVlmjAtXIgvKT+lMiOxOCO+qDQnt
 fgQowwHh5IEr9vM6eFCgkWp6akVaZk5wMiESUtw8CiJ8BaCpHmLCxJzizPTIVKnGBWlxHkFQB
 ICIImM0jy4NlgyuMQoKyXMy8jAwCDEU5BalJtZgir/ilGcg1FJmDcTZApPZl4J3PRXQIuZgBY
 v4JkMsrgkESEl1cDYt0X6xL4jUqdu8JefOhkhqrvcvrE4+MBP3YV96u/PSoUrbQzpeb58x6ut
 q7UTTmss/8ticc2JeT3n6USzPzLON5arf1lU+3yVVMWDTyrmH/dfDlzAZea6Ya3Z+vuM1nbOf
 QmOJ6/dnnLVUGXB+gYD30/2+gW7dlYIVDk/2djcvSTHMNuuzuasEktxRqKhFnNRcSIAj/h2mg
 EDAAA=
X-Env-Sender: prvs=0084a2c2e=Paul.Durrant@citrix.com
X-Msg-Ref: server-12.tower-206.messagelabs.com!1469553331!15100405!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: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 32954 invoked from network); 26 Jul 2016 17:15:32 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-12.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 26 Jul 2016 17:15:32 -0000
X-IronPort-AV: E=Sophos;i="5.28,425,1464652800"; d="scan'208";a="27205583"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Paul Durrant <pdurrant@gmail.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [PATCH] Fix VS2012 builds
Thread-Index: AQHR5xfnpQIKpvwSx0qOoXiL7iwJ06Aq8TLw
Date: Tue, 26 Jul 2016 17:04:45 +0000
Message-ID: <fb1c9333cb32405b8a99e944a28a2f5e@AMSPEX02CL03.citrite.net>
References: <1469521559-8892-1-git-send-email-paul.durrant@citrix.com>
In-Reply-To: <1469521559-8892-1-git-send-email-paul.durrant@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] [PATCH] Fix VS2012 builds
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+IEZyb206IFBhdWwgRHVycmFudCBbbWFpbHRv
OnBkdXJyYW50QGdtYWlsLmNvbV0KPiBTZW50OiAyNiBKdWx5IDIwMTYgMDk6MjYKPiBUbzogd2lu
LXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCj4gQ2M6IFBhdWwgRHVycmFudAo+IFN1Ympl
Y3Q6IFtQQVRDSF0gRml4IFZTMjAxMiBidWlsZHMKPiAKPiBCdWlsZGluZyBmb3IgT1MgZWFybGll
ciB0aGFuIFdpbmRvd3MgNyBub3cgcmVxdWlyZXMgdXNlIG9mIHByb2NncnAubGliCj4gc2luY2Ug
S2VHZXRDdXJyZW50UHJvY2Vzc29yRXgoKSBpcyB1c2VkLiBTaW5jZSB0aGUgYmFzZSBPUyBvZiBW
UzIwMTIgYnVpbGRzCj4gaXMgVmlzdGEsIHRoZXNlIGhhdmUgYmVlbiBmYWlsaW5nIHNpbmNlIGNv
bW1pdCA4Y2I1YzE1Ni4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVy
cmFudEBjaXRyaXguY29tPgoKSSBmb3VuZCBhIGJ1ZyBpbiB0ZXN0aW5nIHRoaXMgYmVjYXVzZSB0
aGUgY29tcGF0aWJpbGl0eSBsaWJyYXJ5IHdhcyBub3QgYmVpbmcgaW5pdGlhbGl6ZWQuIEknbGwg
c2VuZCB2Mi4KCiAgUGF1bAoKPiAtLS0KPiAgc3JjL3hlbm5ldC9yZWNlaXZlci5jICAgICAgICB8
IDEgKwo+ICB2czIwMTIveGVubmV0L3hlbm5ldC52Y3hwcm9qIHwgNCArKy0tCj4gIHZzMjAxMy94
ZW5uZXQveGVubmV0LnZjeHByb2ogfCA0ICsrLS0KPiAgMyBmaWxlcyBjaGFuZ2VkLCA1IGluc2Vy
dGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL3NyYy94ZW5uZXQvcmVj
ZWl2ZXIuYyBiL3NyYy94ZW5uZXQvcmVjZWl2ZXIuYwo+IGluZGV4IDk2NGNhOTAuLmJhMDU3OTkg
MTAwNjQ0Cj4gLS0tIGEvc3JjL3hlbm5ldC9yZWNlaXZlci5jCj4gKysrIGIvc3JjL3hlbm5ldC9y
ZWNlaXZlci5jCj4gQEAgLTMwLDYgKzMwLDcgQEAKPiAgICovCj4gCj4gICNpbmNsdWRlIDxuZGlz
Lmg+Cj4gKyNpbmNsdWRlIDxwcm9jZ3JwLmg+Cj4gICNpbmNsdWRlIDx0Y3BpcC5oPgo+ICAjaW5j
bHVkZSA8eGVuLmg+Cj4gCj4gZGlmZiAtLWdpdCBhL3ZzMjAxMi94ZW5uZXQveGVubmV0LnZjeHBy
b2ogYi92czIwMTIveGVubmV0L3hlbm5ldC52Y3hwcm9qCj4gaW5kZXggZjBlOTA3My4uZjM4M2U4
NSAxMDA2NDQKPiAtLS0gYS92czIwMTIveGVubmV0L3hlbm5ldC52Y3hwcm9qCj4gKysrIGIvdnMy
MDEyL3hlbm5ldC94ZW5uZXQudmN4cHJvago+IEBAIC0zMiw3ICszMiw3IEBACj4gCj4gICAgICA8
SXRlbURlZmluaXRpb25Hcm91cD4KPiAgCQk8Q2xDb21waWxlPgo+IC0KPiAJPFByZXByb2Nlc3Nv
ckRlZmluaXRpb25zPl9fTU9EVUxFX189IlhFTk5FVCI7TkRJU19NSU5JUE9SCj4gVF9EUklWRVI7
TkRJU19XRE09MTtORElTNjFfTUlOSVBPUlQ9MTtQT09MX05YX09QVElOPTE7JShQcmVwcgo+IG9j
ZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgo+ICsKPiAJPFByZXBy
b2Nlc3NvckRlZmluaXRpb25zPl9fTU9EVUxFX189IlhFTk5FVCI7TkRJU19NSU5JUE9SCj4gVF9E
UklWRVI7TkRJU19XRE09MTtORElTNjFfTUlOSVBPUlQ9MTtQT09MX05YX09QVElOPTE7TlRfUFJP
Cj4gQ0VTU09SX0dST1VQUzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29y
RGVmaW5pdGlvbnM+Cj4gIAkJCTxXYXJuaW5nTGV2ZWw+RW5hYmxlQWxsV2FybmluZ3M8L1dhcm5p
bmdMZXZlbD4KPiAKPiAJPERpc2FibGVTcGVjaWZpY1dhcm5pbmdzPjQ3MTE7NDU0ODs0ODIwOzQ2
Njg7NDI1NTs2MDAxOzYwNTQ7MjgxOTYKPiA7JShEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncyk8L0Rp
c2FibGVTcGVjaWZpY1dhcm5pbmdzPgo+IAo+IAk8TXVsdGlQcm9jZXNzb3JDb21waWxhdGlvbj50
cnVlPC9NdWx0aVByb2Nlc3NvckNvbXBpbGF0aW9uPgo+IEBAIC00MCw3ICs0MCw3IEBACj4gIAkJ
PC9DbENvbXBpbGU+Cj4gIAkJPExpbms+Cj4gCj4gCTxJbWFnZUhhc1NhZmVFeGNlcHRpb25IYW5k
bGVycz5mYWxzZTwvSW1hZ2VIYXNTYWZlRXhjZXB0aW9uSAo+IGFuZGxlcnM+Cj4gLQo+IAk8QWRk
aXRpb25hbERlcGVuZGVuY2llcz4kKERES19MSUJfUEFUSClcbmRpcy5saWI7JChEREtfTElCX1BB
Cj4gVEgpL2xpYmNudHByLmxpYjskKERES19MSUJfUEFUSCkvYXV4X2tsaWIubGliOyUoQWRkaXRp
b25hbERlcGVuZGVuY2llcyk8Lwo+IEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+Cj4gKwo+IAk8QWRk
aXRpb25hbERlcGVuZGVuY2llcz4kKERES19MSUJfUEFUSClcbmRpcy5saWI7JChEREtfTElCX1BB
Cj4gVEgpL2xpYmNudHByLmxpYjskKERES19MSUJfUEFUSCkvYXV4X2tsaWIubGliOyQoRERLX0xJ
Ql9QQVRIKS9wcm9jZ3JwLmxpYjsKPiAlKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlv
bmFsRGVwZW5kZW5jaWVzPgo+IAo+IAk8RW5hYmxlQ09NREFURm9sZGluZz5mYWxzZTwvRW5hYmxl
Q09NREFURm9sZGluZz4KPiAgCQk8L0xpbms+Cj4gIAkJPEluZj4KPiBkaWZmIC0tZ2l0IGEvdnMy
MDEzL3hlbm5ldC94ZW5uZXQudmN4cHJvaiBiL3ZzMjAxMy94ZW5uZXQveGVubmV0LnZjeHByb2oK
PiBpbmRleCBjYmU1N2Y1Li40OGVjYWJlIDEwMDY0NAo+IC0tLSBhL3ZzMjAxMy94ZW5uZXQveGVu
bmV0LnZjeHByb2oKPiArKysgYi92czIwMTMveGVubmV0L3hlbm5ldC52Y3hwcm9qCj4gQEAgLTI3
LDcgKzI3LDcgQEAKPiAgICA8L1Byb3BlcnR5R3JvdXA+Cj4gICAgPEl0ZW1EZWZpbml0aW9uR3Jv
dXA+Cj4gICAgICA8Q2xDb21waWxlPgo+IC0KPiA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+X19N
T0RVTEVfXz0iWEVOTkVUIjtORElTX01JTklQT1JUX0RSSVZFCj4gUjtORElTX1dETT0xO05ESVM2
MV9NSU5JUE9SVD0xO1BPT0xfTlhfT1BUSU49MTslKFByZXByb2Nlc3Nvcgo+IERlZmluaXRpb25z
KTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Cj4gKwo+IDxQcmVwcm9jZXNzb3JEZWZpbml0aW9u
cz5fX01PRFVMRV9fPSJYRU5ORVQiO05ESVNfTUlOSVBPUlRfRFJJVkUKPiBSO05ESVNfV0RNPTE7
TkRJUzYxX01JTklQT1JUPTE7UE9PTF9OWF9PUFRJTj0xO05UX1BST0NFU1NPUgo+IF9HUk9VUFM7
JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgo+IAo+
IDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPiQoV2luZG93c1Nka0RpcilcaW5jbHVkZVxr
bTsuLlwuLlxpbmNsdWRlOy4uCj4gXC4uXGluY2x1ZGVceGVuOzwvQWRkaXRpb25hbEluY2x1ZGVE
aXJlY3Rvcmllcz4KPiAgICAgICAgPFdhcm5pbmdMZXZlbD5FbmFibGVBbGxXYXJuaW5nczwvV2Fy
bmluZ0xldmVsPgo+IAo+IDxEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz40NzExOzQ1NDg7NDgyMDs0
NjY4OzQyNTU7NjAwMTs2MDU0OzI4MTk2OyUoRGlzYQo+IGJsZVNwZWNpZmljV2FybmluZ3MpPC9E
aXNhYmxlU3BlY2lmaWNXYXJuaW5ncz4KPiBAQCAtMzksNyArMzksNyBAQAo+ICAgICAgPC9SZXNv
dXJjZUNvbXBpbGU+Cj4gICAgICA8TGluaz4KPiAKPiA8SW1hZ2VIYXNTYWZlRXhjZXB0aW9uSGFu
ZGxlcnM+ZmFsc2U8L0ltYWdlSGFzU2FmZUV4Y2VwdGlvbkhhbmRsZXJzPgo+IC0KPiA8QWRkaXRp
b25hbERlcGVuZGVuY2llcz4kKERES19MSUJfUEFUSClcbmRpcy5saWI7JChEREtfTElCX1BBVEgp
L2xpYmMKPiBudHByLmxpYjskKERES19MSUJfUEFUSCkvYXV4X2tsaWIubGliOyUoQWRkaXRpb25h
bERlcGVuZGVuY2llcyk8L0FkZGl0aW8KPiBuYWxEZXBlbmRlbmNpZXM+Cj4gKwo+IDxBZGRpdGlv
bmFsRGVwZW5kZW5jaWVzPiQoRERLX0xJQl9QQVRIKVxuZGlzLmxpYjskKERES19MSUJfUEFUSCkv
bGliYwo+IG50cHIubGliOyQoRERLX0xJQl9QQVRIKS9hdXhfa2xpYi5saWI7JChEREtfTElCX1BB
VEgpL3Byb2NncnAubGliOyUoQWRkaQo+IHRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxE
ZXBlbmRlbmNpZXM+Cj4gICAgICAgIDxFbmFibGVDT01EQVRGb2xkaW5nPmZhbHNlPC9FbmFibGVD
T01EQVRGb2xkaW5nPgo+ICAgICAgPC9MaW5rPgo+ICAgICAgPEluZj4KPiAtLQo+IDIuMS4xCgoK
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 26 17:15:35 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 26 Jul 2016 17:15:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bS5x8-0005ed-Ly; Tue, 26 Jul 2016 17:15:34 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=0084a2c2e=Paul.Durrant@citrix.com>)
 id 1bS5x7-0005eR-FN
 for win-pv-devel@lists.xenproject.org; Tue, 26 Jul 2016 17:15:33 +0000
Received: from [85.158.139.211] by server-12.bemta-5.messagelabs.com id
 B9/F6-01026-4BA97975; Tue, 26 Jul 2016 17:15:32 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrHIsWRWlGSWpSXmKPExsWyU9JRQnfLrOn
 hBicPclv8WZzowOhx+MMVlgDGKNbMvKT8igTWjM2Pb7EVTFCoaH1n2sB4X6aLkZNDQsBP4v3u
 I8wgNpuAjsTSo/OZQGwRgXyJFx/+gtnCAmoSq/q7WSDi6hJrd11hhrCNJI5cP8sOYrMIqEoc7
 PgAZvMKuEv8vPcDrEZIwE2iffYEoDkcHJxA8bXfwEYyCshKfGlcDVbCLCAucesJxFoJAQGJJX
 vOM0PYohIvH/9jhbANJLYu3ccCUa8jsWD3JzYIW1ti2cLXzBBrBSVOznzCArFWRWLL4wNQc7g
 lVn7+wzKBUWQWknWzkIyahWTULCSjFjCyrGLUKE4tKkst0jUy00sqykzPKMlNzMzRNTQw1ctN
 LS5OTE/NSUwq1kvOz93ECIyHegYGxh2Mtyf7HWKU5GBSEuVlmjAtXIgvKT+lMiOxOCO+qDQnt
 fgQowwHh5IEr9vM6eFCgkWp6akVaZk5wMiESUtw8CiJ8BaCpHmLCxJzizPTIVKnGBWlxHkFQB
 ICIImM0jy4NlgyuMQoKyXMy8jAwCDEU5BalJtZgir/ilGcg1FJmDcTZApPZl4J3PRXQIuZgBY
 v4JkMsrgkESEl1cDYt0X6xL4jUqdu8JefOhkhqrvcvrE4+MBP3YV96u/PSoUrbQzpeb58x6ut
 q7UTTmss/8ticc2JeT3n6USzPzLON5arf1lU+3yVVMWDTyrmH/dfDlzAZea6Ya3Z+vuM1nbOf
 QmOJ6/dnnLVUGXB+gYD30/2+gW7dlYIVDk/2djcvSTHMNuuzuasEktxRqKhFnNRcSIAj/h2mg
 EDAAA=
X-Env-Sender: prvs=0084a2c2e=Paul.Durrant@citrix.com
X-Msg-Ref: server-12.tower-206.messagelabs.com!1469553331!15100405!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: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 32954 invoked from network); 26 Jul 2016 17:15:32 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-12.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 26 Jul 2016 17:15:32 -0000
X-IronPort-AV: E=Sophos;i="5.28,425,1464652800"; d="scan'208";a="27205583"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Paul Durrant <pdurrant@gmail.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [PATCH] Fix VS2012 builds
Thread-Index: AQHR5xfnpQIKpvwSx0qOoXiL7iwJ06Aq8TLw
Date: Tue, 26 Jul 2016 17:04:45 +0000
Message-ID: <fb1c9333cb32405b8a99e944a28a2f5e@AMSPEX02CL03.citrite.net>
References: <1469521559-8892-1-git-send-email-paul.durrant@citrix.com>
In-Reply-To: <1469521559-8892-1-git-send-email-paul.durrant@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] [PATCH] Fix VS2012 builds
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+IEZyb206IFBhdWwgRHVycmFudCBbbWFpbHRv
OnBkdXJyYW50QGdtYWlsLmNvbV0KPiBTZW50OiAyNiBKdWx5IDIwMTYgMDk6MjYKPiBUbzogd2lu
LXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCj4gQ2M6IFBhdWwgRHVycmFudAo+IFN1Ympl
Y3Q6IFtQQVRDSF0gRml4IFZTMjAxMiBidWlsZHMKPiAKPiBCdWlsZGluZyBmb3IgT1MgZWFybGll
ciB0aGFuIFdpbmRvd3MgNyBub3cgcmVxdWlyZXMgdXNlIG9mIHByb2NncnAubGliCj4gc2luY2Ug
S2VHZXRDdXJyZW50UHJvY2Vzc29yRXgoKSBpcyB1c2VkLiBTaW5jZSB0aGUgYmFzZSBPUyBvZiBW
UzIwMTIgYnVpbGRzCj4gaXMgVmlzdGEsIHRoZXNlIGhhdmUgYmVlbiBmYWlsaW5nIHNpbmNlIGNv
bW1pdCA4Y2I1YzE1Ni4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVy
cmFudEBjaXRyaXguY29tPgoKSSBmb3VuZCBhIGJ1ZyBpbiB0ZXN0aW5nIHRoaXMgYmVjYXVzZSB0
aGUgY29tcGF0aWJpbGl0eSBsaWJyYXJ5IHdhcyBub3QgYmVpbmcgaW5pdGlhbGl6ZWQuIEknbGwg
c2VuZCB2Mi4KCiAgUGF1bAoKPiAtLS0KPiAgc3JjL3hlbm5ldC9yZWNlaXZlci5jICAgICAgICB8
IDEgKwo+ICB2czIwMTIveGVubmV0L3hlbm5ldC52Y3hwcm9qIHwgNCArKy0tCj4gIHZzMjAxMy94
ZW5uZXQveGVubmV0LnZjeHByb2ogfCA0ICsrLS0KPiAgMyBmaWxlcyBjaGFuZ2VkLCA1IGluc2Vy
dGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL3NyYy94ZW5uZXQvcmVj
ZWl2ZXIuYyBiL3NyYy94ZW5uZXQvcmVjZWl2ZXIuYwo+IGluZGV4IDk2NGNhOTAuLmJhMDU3OTkg
MTAwNjQ0Cj4gLS0tIGEvc3JjL3hlbm5ldC9yZWNlaXZlci5jCj4gKysrIGIvc3JjL3hlbm5ldC9y
ZWNlaXZlci5jCj4gQEAgLTMwLDYgKzMwLDcgQEAKPiAgICovCj4gCj4gICNpbmNsdWRlIDxuZGlz
Lmg+Cj4gKyNpbmNsdWRlIDxwcm9jZ3JwLmg+Cj4gICNpbmNsdWRlIDx0Y3BpcC5oPgo+ICAjaW5j
bHVkZSA8eGVuLmg+Cj4gCj4gZGlmZiAtLWdpdCBhL3ZzMjAxMi94ZW5uZXQveGVubmV0LnZjeHBy
b2ogYi92czIwMTIveGVubmV0L3hlbm5ldC52Y3hwcm9qCj4gaW5kZXggZjBlOTA3My4uZjM4M2U4
NSAxMDA2NDQKPiAtLS0gYS92czIwMTIveGVubmV0L3hlbm5ldC52Y3hwcm9qCj4gKysrIGIvdnMy
MDEyL3hlbm5ldC94ZW5uZXQudmN4cHJvago+IEBAIC0zMiw3ICszMiw3IEBACj4gCj4gICAgICA8
SXRlbURlZmluaXRpb25Hcm91cD4KPiAgCQk8Q2xDb21waWxlPgo+IC0KPiAJPFByZXByb2Nlc3Nv
ckRlZmluaXRpb25zPl9fTU9EVUxFX189IlhFTk5FVCI7TkRJU19NSU5JUE9SCj4gVF9EUklWRVI7
TkRJU19XRE09MTtORElTNjFfTUlOSVBPUlQ9MTtQT09MX05YX09QVElOPTE7JShQcmVwcgo+IG9j
ZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgo+ICsKPiAJPFByZXBy
b2Nlc3NvckRlZmluaXRpb25zPl9fTU9EVUxFX189IlhFTk5FVCI7TkRJU19NSU5JUE9SCj4gVF9E
UklWRVI7TkRJU19XRE09MTtORElTNjFfTUlOSVBPUlQ9MTtQT09MX05YX09QVElOPTE7TlRfUFJP
Cj4gQ0VTU09SX0dST1VQUzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29y
RGVmaW5pdGlvbnM+Cj4gIAkJCTxXYXJuaW5nTGV2ZWw+RW5hYmxlQWxsV2FybmluZ3M8L1dhcm5p
bmdMZXZlbD4KPiAKPiAJPERpc2FibGVTcGVjaWZpY1dhcm5pbmdzPjQ3MTE7NDU0ODs0ODIwOzQ2
Njg7NDI1NTs2MDAxOzYwNTQ7MjgxOTYKPiA7JShEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncyk8L0Rp
c2FibGVTcGVjaWZpY1dhcm5pbmdzPgo+IAo+IAk8TXVsdGlQcm9jZXNzb3JDb21waWxhdGlvbj50
cnVlPC9NdWx0aVByb2Nlc3NvckNvbXBpbGF0aW9uPgo+IEBAIC00MCw3ICs0MCw3IEBACj4gIAkJ
PC9DbENvbXBpbGU+Cj4gIAkJPExpbms+Cj4gCj4gCTxJbWFnZUhhc1NhZmVFeGNlcHRpb25IYW5k
bGVycz5mYWxzZTwvSW1hZ2VIYXNTYWZlRXhjZXB0aW9uSAo+IGFuZGxlcnM+Cj4gLQo+IAk8QWRk
aXRpb25hbERlcGVuZGVuY2llcz4kKERES19MSUJfUEFUSClcbmRpcy5saWI7JChEREtfTElCX1BB
Cj4gVEgpL2xpYmNudHByLmxpYjskKERES19MSUJfUEFUSCkvYXV4X2tsaWIubGliOyUoQWRkaXRp
b25hbERlcGVuZGVuY2llcyk8Lwo+IEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+Cj4gKwo+IAk8QWRk
aXRpb25hbERlcGVuZGVuY2llcz4kKERES19MSUJfUEFUSClcbmRpcy5saWI7JChEREtfTElCX1BB
Cj4gVEgpL2xpYmNudHByLmxpYjskKERES19MSUJfUEFUSCkvYXV4X2tsaWIubGliOyQoRERLX0xJ
Ql9QQVRIKS9wcm9jZ3JwLmxpYjsKPiAlKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlv
bmFsRGVwZW5kZW5jaWVzPgo+IAo+IAk8RW5hYmxlQ09NREFURm9sZGluZz5mYWxzZTwvRW5hYmxl
Q09NREFURm9sZGluZz4KPiAgCQk8L0xpbms+Cj4gIAkJPEluZj4KPiBkaWZmIC0tZ2l0IGEvdnMy
MDEzL3hlbm5ldC94ZW5uZXQudmN4cHJvaiBiL3ZzMjAxMy94ZW5uZXQveGVubmV0LnZjeHByb2oK
PiBpbmRleCBjYmU1N2Y1Li40OGVjYWJlIDEwMDY0NAo+IC0tLSBhL3ZzMjAxMy94ZW5uZXQveGVu
bmV0LnZjeHByb2oKPiArKysgYi92czIwMTMveGVubmV0L3hlbm5ldC52Y3hwcm9qCj4gQEAgLTI3
LDcgKzI3LDcgQEAKPiAgICA8L1Byb3BlcnR5R3JvdXA+Cj4gICAgPEl0ZW1EZWZpbml0aW9uR3Jv
dXA+Cj4gICAgICA8Q2xDb21waWxlPgo+IC0KPiA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+X19N
T0RVTEVfXz0iWEVOTkVUIjtORElTX01JTklQT1JUX0RSSVZFCj4gUjtORElTX1dETT0xO05ESVM2
MV9NSU5JUE9SVD0xO1BPT0xfTlhfT1BUSU49MTslKFByZXByb2Nlc3Nvcgo+IERlZmluaXRpb25z
KTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+Cj4gKwo+IDxQcmVwcm9jZXNzb3JEZWZpbml0aW9u
cz5fX01PRFVMRV9fPSJYRU5ORVQiO05ESVNfTUlOSVBPUlRfRFJJVkUKPiBSO05ESVNfV0RNPTE7
TkRJUzYxX01JTklQT1JUPTE7UE9PTF9OWF9PUFRJTj0xO05UX1BST0NFU1NPUgo+IF9HUk9VUFM7
JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgo+IAo+
IDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPiQoV2luZG93c1Nka0RpcilcaW5jbHVkZVxr
bTsuLlwuLlxpbmNsdWRlOy4uCj4gXC4uXGluY2x1ZGVceGVuOzwvQWRkaXRpb25hbEluY2x1ZGVE
aXJlY3Rvcmllcz4KPiAgICAgICAgPFdhcm5pbmdMZXZlbD5FbmFibGVBbGxXYXJuaW5nczwvV2Fy
bmluZ0xldmVsPgo+IAo+IDxEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz40NzExOzQ1NDg7NDgyMDs0
NjY4OzQyNTU7NjAwMTs2MDU0OzI4MTk2OyUoRGlzYQo+IGJsZVNwZWNpZmljV2FybmluZ3MpPC9E
aXNhYmxlU3BlY2lmaWNXYXJuaW5ncz4KPiBAQCAtMzksNyArMzksNyBAQAo+ICAgICAgPC9SZXNv
dXJjZUNvbXBpbGU+Cj4gICAgICA8TGluaz4KPiAKPiA8SW1hZ2VIYXNTYWZlRXhjZXB0aW9uSGFu
ZGxlcnM+ZmFsc2U8L0ltYWdlSGFzU2FmZUV4Y2VwdGlvbkhhbmRsZXJzPgo+IC0KPiA8QWRkaXRp
b25hbERlcGVuZGVuY2llcz4kKERES19MSUJfUEFUSClcbmRpcy5saWI7JChEREtfTElCX1BBVEgp
L2xpYmMKPiBudHByLmxpYjskKERES19MSUJfUEFUSCkvYXV4X2tsaWIubGliOyUoQWRkaXRpb25h
bERlcGVuZGVuY2llcyk8L0FkZGl0aW8KPiBuYWxEZXBlbmRlbmNpZXM+Cj4gKwo+IDxBZGRpdGlv
bmFsRGVwZW5kZW5jaWVzPiQoRERLX0xJQl9QQVRIKVxuZGlzLmxpYjskKERES19MSUJfUEFUSCkv
bGliYwo+IG50cHIubGliOyQoRERLX0xJQl9QQVRIKS9hdXhfa2xpYi5saWI7JChEREtfTElCX1BB
VEgpL3Byb2NncnAubGliOyUoQWRkaQo+IHRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxE
ZXBlbmRlbmNpZXM+Cj4gICAgICAgIDxFbmFibGVDT01EQVRGb2xkaW5nPmZhbHNlPC9FbmFibGVD
T01EQVRGb2xkaW5nPgo+ICAgICAgPC9MaW5rPgo+ICAgICAgPEluZj4KPiAtLQo+IDIuMS4xCgoK
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 26 17:24:36 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 26 Jul 2016 17:24:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bS65q-00069w-CI; Tue, 26 Jul 2016 17:24:34 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=0084a2c2e=Paul.Durrant@citrix.com>)
 id 1bS65p-00069q-6C
 for win-pv-devel@lists.xenproject.org; Tue, 26 Jul 2016 17:24:33 +0000
Received: from [85.158.139.211] by server-12.bemta-5.messagelabs.com id
 6B/50-01026-0DC97975; Tue, 26 Jul 2016 17:24:32 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrLIsWRWlGSWpSXmKPExsWyU9JRQvf8nOn
 hBs83q1j8WZzowOhx+MMVlgDGKNbMvKT8igTWjIOt7YwFMxQrGpdrNjA+UOhi5OSQEPCT2Pf3
 NDuIzSagI7H06HwmEFtEoFyiZWoLC4gtLGAosfrqQ3aIuJHEzE+7mWHsKx9egNWwCKhKbO/8A
 9bLK+Ausan3HliNkIC1ROe0FlYQm1PARmLxqR+MIDajgKzEl8bVYDXMAuISt55A7JUQEJBYsu
 c8M4QtKvHy8T9WCNtAYuvSfUC7OIDqNSXW79KHaFWUmNINcRqvgKDEyZlPWCDWqkhseXwAagy
 3xMrPf1gmMIrMQrJtFsKkWUgmzUIyaQEjyypGjeLUorLUIl1DY72kosz0jJLcxMwcXUMDU73c
 1OLixPTUnMSkYr3k/NxNjMBoYACCHYz/tnkeYpTkYFIS5WWaMC1ciC8pP6UyI7E4I76oNCe1+
 BCjDAeHkgSv9ezp4UKCRanpqRVpmTnAuIRJS3DwKInw2oOkeYsLEnOLM9MhUqcYFaXEeT/OAk
 oIgCQySvPg2mCp4BKjrJQwLyPQIUI8BalFuZklqPKvGMU5GJWEeZ1AxvNk5pXATX8FtJgJaPE
 Cnskgi0sSEVJSDYzrTIw+G019nT7t/YxE4/MllzYXy8zoEcsqVRQIq7fJlxe4qH2Ic3HcI6PY
 8yq/n5itWJT2eM2O+NCF0x6nO5eI3LnQa1Ze1szrIMpjNH8a31TV9WynGwrX765dwP/2y7+at
 o4z1cfuNP8SvTn16Dah7n2t324Y6q8RMjI4/Cqvv3hS8r3doUuVWIozEg21mIuKEwHJJwS4AA
 MAAA==
X-Env-Sender: prvs=0084a2c2e=Paul.Durrant@citrix.com
X-Msg-Ref: server-5.tower-206.messagelabs.com!1469553871!49826143!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: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 31209 invoked from network); 26 Jul 2016 17:24:31 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-5.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 26 Jul 2016 17:24:31 -0000
X-IronPort-AV: E=Sophos;i="5.28,425,1464652800"; d="scan'208";a="27206497"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Brandon Shoemaker <brandon@thinkhuge.net>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel]  Signed 8.1.0 drivers
Thread-Index: AdHnX9YJ49ZYf2raRWSegcQym2WaAwAAO3dA
Date: Tue, 26 Jul 2016 17:24:11 +0000
Message-ID: <ade82a97a308443aaaaab0295a188bf4@AMSPEX02CL03.citrite.net>
References: <08a801d1e760$3f2549a0$bd6fdce0$@thinkhuge.net>
In-Reply-To: <08a801d1e760$3f2549a0$bd6fdce0$@thinkhuge.net>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] Signed 8.1.0 drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIEJyYW5kb24gU2hvZW1ha2VyDQo+IFNlbnQ6IDI2IEp1bHkgMjAxNiAxODowOA0KPiBUbzog
d2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IFN1YmplY3Q6IFt3aW4tcHYtZGV2
ZWxdIFNpZ25lZCA4LjEuMCBkcml2ZXJzDQo+IA0KPiBIZWxsbywNCj4gDQo+IEkgaGF2ZSBiZWVu
IHdhaXRpbmcgb24gdGhlc2UgbmV3IHNpZ25lZCBkcml2ZXJzLiAgVGhhbmtzIGZvciBmaW5hbGx5
IG1ha2luZw0KPiB0aGVtIGF2YWlsYWJsZSENCj4gDQo+IEkgaGF2ZSB0ZXN0ZWQgYW5kIHJ1biBp
bnRvIGEgcHJvYmxlbXMgdW5mb3J0dW5hdGVseSBzbyBJIHdhbnRlZCB0byByZXBvcnQNCj4gdGhp
cy4NCj4gDQo+IEZpcnN0IEkgdHJpZWQgdW5pbnN0YWxsaW5nIHRoZSBFSkIgZGlnaXRhbCBkcml2
ZXJzDQo+IChlamJwdl9WaXN0YTIwMDh4NjRfMS4wLjExMDUubXNpKSBhbmQgaW5zdGFsbGluZyB0
aGVzZSBuZXcgZHJpdmVycyBvbg0KPiBXaW5kb3dzIDIwMDggUjIgeDY0IGV4aXN0aW5nIFZQUy4g
IEFmdGVyIHJlYm9vdGluZyBXaW5kb3dzIDIwMDggUjIgaGFuZ3MNCj4gZm9yZXZlciBhdCBib290
Lg0KPiANCj4gU2Vjb25kbHkgSSBoYXZlIGluc3RhbGxlZCBhIGNsZWFuIFdpbmRvd3MgMjAwOCBS
MiBhbmQgdGhlbiBpbnN0YWxsZWQgYWxsIHRoZQ0KPiBkcml2ZXJzIGFuZCB3aGVuIEkgcmVib290
IGl0IGdvZXMgaW50byByZWNvdmVyeSBtb2RlLiAgSSBoYXBwZW4gdG8gY2hlY2sNCj4gV2luZG93
cyBkZXZpY2UgbWFuYWdlciBiZWZvcmUgSSByZWJvb3RlZCBhbmQgSSBub3RpY2VkIHRoYXQgdGhl
ICJYZW4gUFYNCj4gQnVzIiBkcml2ZXIgaGFzIGEgeWVsbG93IHdhcm5pbmcgc3ltYm9sIGFzIHNo
b3duIGluIHRoZSBzY3JlZW5zaG90ID4NCj4gaHR0cHM6Ly9wb3N0aW1nLm9yZy9pbWFnZS94MDhn
N240d24vICAgaXQgc2F5cyBpdCBjYW5ub3QgdmVyaWZ5IHRoZSBkaWdpdGFsDQo+IHNpZ25hdHVy
ZSBmb3IgdGhlIFhlbiBQViBCdXMgZHJpdmVycy4gIE5vdGhpbmcgd2FzIGRvbmUgYnV0IHRoZSBp
bnN0YWxsIG9mDQo+IFdpbmRvd3MgYW5kIHRoZW4gaW1tZWRpYXRlIGluc3RhbGwgb2YgdGhlIGRy
aXZlcnMuDQoNCkkgc3VzcGVjdCB0aGlzIGlzIGJlY2F1c2UgdGhlIGRyaXZlcnMgYXJlIHNpZ25l
ZCB3aXRoIFNIQS0yNTYgYW5kIHlvdSBtYXkgbmVlZCBhIGhvdGZpeCB0byBlbmFibGUgdmVyaWZp
Y2F0aW9uIG9mIGtlcm5lbCBtb2RlIGRyaXZlcnMgc2lnbmVkIHdpdGggYSBTSEEtMjU2IGNlcnQu
DQoNCiAgUGF1bA0KDQo+IA0KPiBNeSBYZW4gc2VydmVycyBhcmUgYnVpbHQgdmlhIFNvbHVzVk0g
aW5zdGFsbCBzY3JpcHQgYW5kIHRoaXMgcGFydGljdWxhciBzZXJ2ZXIgaXMNCj4geGVuX3ZlcnNp
b24gNC42LjEtMTEuZWw2IG9uIGNlbnRvczYuDQo+IA0KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+IA0KPiA+
IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogd2luLXB2LWRldmVsIFttYWls
dG86d2luLXB2LWRldmVsLWJvdW5jZXNAbGlzdHMueGVucHJvamVjdC5vcmddDQo+ID4gT24gQmVo
YWxmIE9mIFBhdWwgRHVycmFudA0KPiA+IFNlbnQ6IDIyIEp1bHkgMjAxNiAxNjoxMg0KPiA+IFRv
OiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gPiBTdWJqZWN0OiBbd2luLXB2
LWRldmVsXSBTaWduZWQgOC4xLjAgZHJpdmVycw0KPiA+DQo+ID4gQWxsLA0KPiA+DQo+ID4gICBH
b29kIG5ld3MhIEkgaGF2ZSB0YWdnZWQgdGhlIDguMS4wIHJlbGVhc2UgZHJpdmVyIHNvdXJjZSBp
biBlYWNoIG9mDQo+ID4gdGhlIHJlcG9zaXRvcmllcywgYnVpbHQgaXQgYW5kIHNpZ25lZCBpdC4g
SSBkb24ndCB5ZXQgaGF2ZSBhbiBvZmZpY2lhbA0KPiA+IHBsYWNlIHRvIHB1dCB0aGUgc2lnbmVk
IGJ1aWxkcyBzbyBmb3IgdGhlIG1vbWVudCB5b3UgY2FuIGdldCB0aGVtIGZyb20NCj4gPg0KPiA+
IGh0dHBzOi8veGVuYml0cy54ZW4ub3JnL3Blb3BsZS9wYXVsZHUvcHZkcml2ZXJzL3dpbi9yZWxl
YXNlLzguMS4wDQo+ID4NCj4gPiAgIEkgaGF2ZSB0ZXN0ZWQgaW5zdGFsbGF0aW9uIG9uIFdpbmRv
d3MgMTAgKDMyLWJpdCkgYW5kIHRoZSBzaWduYXR1cmVzDQo+ID4gYXBwZWFyIHRvIGJlIGdvb2Qu
DQo+ID4NCj4gPiAgIEkgd2lsbCBsZXQgdGhlIGxpc3Qga25vdyB3aGVuIHRoZSB0YXJiYWxscyBt
b3ZlIHRvIGEgbW9yZSBwZXJtYW5lbnQNCj4gPiBwbGFjZSBhbmQgSSB3aWxsLCBhdCB0aGF0IHBv
aW50LCBsaW5rIHRoZW0gZnJvbSB0aGUgcHJvamVjdCBmcm9udCBwYWdlLg0KPiA+DQo+IA0KPiBB
bGwsDQo+IA0KPiBUaGUgdGFyYmFsbHMgYXJlIG5vdyBpbiB0aGVpciBwZXJtYW5lbnQgaG9tZQ0K
PiAoaHR0cHM6Ly94ZW5iaXRzLnhlbi5vcmcvcHZkcml2ZXJzL3dpbi84LjEuMCkgYW5kIGFyZSBs
aW5rZWQgZnJvbSB0aGUNCj4gcHJvamVjdCBmcm9udCBwYWdlDQo+IChodHRwOi8vd3d3LnhlbnBy
b2plY3Qub3JnL2RldmVsb3BlcnMvdGVhbXMvd2luZG93cy1wdi1kcml2ZXJzLmh0bWwpLg0KPiAN
Cj4gICBDaGVlcnMsDQo+IA0KPiAgIFBhdWwNCj4gDQo+ID4gICBDaGVlcnMsDQo+ID4NCj4gPiAg
ICAgUGF1bA0KPiA+DQo+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX18NCj4gPiB3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0DQo+ID4gd2luLXB2LWRldmVs
QGxpc3RzLnhlbnByb2plY3Qub3JnDQo+ID4gaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9j
Z2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVsDQo+IA0KPiANCj4gDQo+IF9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+IHdpbi1wdi1kZXZl
bCBtYWlsaW5nIGxpc3QNCj4gd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IGh0
dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1w
di1kZXZlbA0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
d2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5v
cmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8v
d2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 26 17:24:36 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 26 Jul 2016 17:24:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bS65q-00069w-CI; Tue, 26 Jul 2016 17:24:34 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=0084a2c2e=Paul.Durrant@citrix.com>)
 id 1bS65p-00069q-6C
 for win-pv-devel@lists.xenproject.org; Tue, 26 Jul 2016 17:24:33 +0000
Received: from [85.158.139.211] by server-12.bemta-5.messagelabs.com id
 6B/50-01026-0DC97975; Tue, 26 Jul 2016 17:24:32 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrLIsWRWlGSWpSXmKPExsWyU9JRQvf8nOn
 hBs83q1j8WZzowOhx+MMVlgDGKNbMvKT8igTWjIOt7YwFMxQrGpdrNjA+UOhi5OSQEPCT2Pf3
 NDuIzSagI7H06HwmEFtEoFyiZWoLC4gtLGAosfrqQ3aIuJHEzE+7mWHsKx9egNWwCKhKbO/8A
 9bLK+Ausan3HliNkIC1ROe0FlYQm1PARmLxqR+MIDajgKzEl8bVYDXMAuISt55A7JUQEJBYsu
 c8M4QtKvHy8T9WCNtAYuvSfUC7OIDqNSXW79KHaFWUmNINcRqvgKDEyZlPWCDWqkhseXwAagy
 3xMrPf1gmMIrMQrJtFsKkWUgmzUIyaQEjyypGjeLUorLUIl1DY72kosz0jJLcxMwcXUMDU73c
 1OLixPTUnMSkYr3k/NxNjMBoYACCHYz/tnkeYpTkYFIS5WWaMC1ciC8pP6UyI7E4I76oNCe1+
 BCjDAeHkgSv9ezp4UKCRanpqRVpmTnAuIRJS3DwKInw2oOkeYsLEnOLM9MhUqcYFaXEeT/OAk
 oIgCQySvPg2mCp4BKjrJQwLyPQIUI8BalFuZklqPKvGMU5GJWEeZ1AxvNk5pXATX8FtJgJaPE
 Cnskgi0sSEVJSDYzrTIw+G019nT7t/YxE4/MllzYXy8zoEcsqVRQIq7fJlxe4qH2Ic3HcI6PY
 8yq/n5itWJT2eM2O+NCF0x6nO5eI3LnQa1Ze1szrIMpjNH8a31TV9WynGwrX765dwP/2y7+at
 o4z1cfuNP8SvTn16Dah7n2t324Y6q8RMjI4/Cqvv3hS8r3doUuVWIozEg21mIuKEwHJJwS4AA
 MAAA==
X-Env-Sender: prvs=0084a2c2e=Paul.Durrant@citrix.com
X-Msg-Ref: server-5.tower-206.messagelabs.com!1469553871!49826143!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: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 31209 invoked from network); 26 Jul 2016 17:24:31 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-5.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 26 Jul 2016 17:24:31 -0000
X-IronPort-AV: E=Sophos;i="5.28,425,1464652800"; d="scan'208";a="27206497"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Brandon Shoemaker <brandon@thinkhuge.net>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel]  Signed 8.1.0 drivers
Thread-Index: AdHnX9YJ49ZYf2raRWSegcQym2WaAwAAO3dA
Date: Tue, 26 Jul 2016 17:24:11 +0000
Message-ID: <ade82a97a308443aaaaab0295a188bf4@AMSPEX02CL03.citrite.net>
References: <08a801d1e760$3f2549a0$bd6fdce0$@thinkhuge.net>
In-Reply-To: <08a801d1e760$3f2549a0$bd6fdce0$@thinkhuge.net>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] Signed 8.1.0 drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIEJyYW5kb24gU2hvZW1ha2VyDQo+IFNlbnQ6IDI2IEp1bHkgMjAxNiAxODowOA0KPiBUbzog
d2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IFN1YmplY3Q6IFt3aW4tcHYtZGV2
ZWxdIFNpZ25lZCA4LjEuMCBkcml2ZXJzDQo+IA0KPiBIZWxsbywNCj4gDQo+IEkgaGF2ZSBiZWVu
IHdhaXRpbmcgb24gdGhlc2UgbmV3IHNpZ25lZCBkcml2ZXJzLiAgVGhhbmtzIGZvciBmaW5hbGx5
IG1ha2luZw0KPiB0aGVtIGF2YWlsYWJsZSENCj4gDQo+IEkgaGF2ZSB0ZXN0ZWQgYW5kIHJ1biBp
bnRvIGEgcHJvYmxlbXMgdW5mb3J0dW5hdGVseSBzbyBJIHdhbnRlZCB0byByZXBvcnQNCj4gdGhp
cy4NCj4gDQo+IEZpcnN0IEkgdHJpZWQgdW5pbnN0YWxsaW5nIHRoZSBFSkIgZGlnaXRhbCBkcml2
ZXJzDQo+IChlamJwdl9WaXN0YTIwMDh4NjRfMS4wLjExMDUubXNpKSBhbmQgaW5zdGFsbGluZyB0
aGVzZSBuZXcgZHJpdmVycyBvbg0KPiBXaW5kb3dzIDIwMDggUjIgeDY0IGV4aXN0aW5nIFZQUy4g
IEFmdGVyIHJlYm9vdGluZyBXaW5kb3dzIDIwMDggUjIgaGFuZ3MNCj4gZm9yZXZlciBhdCBib290
Lg0KPiANCj4gU2Vjb25kbHkgSSBoYXZlIGluc3RhbGxlZCBhIGNsZWFuIFdpbmRvd3MgMjAwOCBS
MiBhbmQgdGhlbiBpbnN0YWxsZWQgYWxsIHRoZQ0KPiBkcml2ZXJzIGFuZCB3aGVuIEkgcmVib290
IGl0IGdvZXMgaW50byByZWNvdmVyeSBtb2RlLiAgSSBoYXBwZW4gdG8gY2hlY2sNCj4gV2luZG93
cyBkZXZpY2UgbWFuYWdlciBiZWZvcmUgSSByZWJvb3RlZCBhbmQgSSBub3RpY2VkIHRoYXQgdGhl
ICJYZW4gUFYNCj4gQnVzIiBkcml2ZXIgaGFzIGEgeWVsbG93IHdhcm5pbmcgc3ltYm9sIGFzIHNo
b3duIGluIHRoZSBzY3JlZW5zaG90ID4NCj4gaHR0cHM6Ly9wb3N0aW1nLm9yZy9pbWFnZS94MDhn
N240d24vICAgaXQgc2F5cyBpdCBjYW5ub3QgdmVyaWZ5IHRoZSBkaWdpdGFsDQo+IHNpZ25hdHVy
ZSBmb3IgdGhlIFhlbiBQViBCdXMgZHJpdmVycy4gIE5vdGhpbmcgd2FzIGRvbmUgYnV0IHRoZSBp
bnN0YWxsIG9mDQo+IFdpbmRvd3MgYW5kIHRoZW4gaW1tZWRpYXRlIGluc3RhbGwgb2YgdGhlIGRy
aXZlcnMuDQoNCkkgc3VzcGVjdCB0aGlzIGlzIGJlY2F1c2UgdGhlIGRyaXZlcnMgYXJlIHNpZ25l
ZCB3aXRoIFNIQS0yNTYgYW5kIHlvdSBtYXkgbmVlZCBhIGhvdGZpeCB0byBlbmFibGUgdmVyaWZp
Y2F0aW9uIG9mIGtlcm5lbCBtb2RlIGRyaXZlcnMgc2lnbmVkIHdpdGggYSBTSEEtMjU2IGNlcnQu
DQoNCiAgUGF1bA0KDQo+IA0KPiBNeSBYZW4gc2VydmVycyBhcmUgYnVpbHQgdmlhIFNvbHVzVk0g
aW5zdGFsbCBzY3JpcHQgYW5kIHRoaXMgcGFydGljdWxhciBzZXJ2ZXIgaXMNCj4geGVuX3ZlcnNp
b24gNC42LjEtMTEuZWw2IG9uIGNlbnRvczYuDQo+IA0KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+IA0KPiA+
IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogd2luLXB2LWRldmVsIFttYWls
dG86d2luLXB2LWRldmVsLWJvdW5jZXNAbGlzdHMueGVucHJvamVjdC5vcmddDQo+ID4gT24gQmVo
YWxmIE9mIFBhdWwgRHVycmFudA0KPiA+IFNlbnQ6IDIyIEp1bHkgMjAxNiAxNjoxMg0KPiA+IFRv
OiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gPiBTdWJqZWN0OiBbd2luLXB2
LWRldmVsXSBTaWduZWQgOC4xLjAgZHJpdmVycw0KPiA+DQo+ID4gQWxsLA0KPiA+DQo+ID4gICBH
b29kIG5ld3MhIEkgaGF2ZSB0YWdnZWQgdGhlIDguMS4wIHJlbGVhc2UgZHJpdmVyIHNvdXJjZSBp
biBlYWNoIG9mDQo+ID4gdGhlIHJlcG9zaXRvcmllcywgYnVpbHQgaXQgYW5kIHNpZ25lZCBpdC4g
SSBkb24ndCB5ZXQgaGF2ZSBhbiBvZmZpY2lhbA0KPiA+IHBsYWNlIHRvIHB1dCB0aGUgc2lnbmVk
IGJ1aWxkcyBzbyBmb3IgdGhlIG1vbWVudCB5b3UgY2FuIGdldCB0aGVtIGZyb20NCj4gPg0KPiA+
IGh0dHBzOi8veGVuYml0cy54ZW4ub3JnL3Blb3BsZS9wYXVsZHUvcHZkcml2ZXJzL3dpbi9yZWxl
YXNlLzguMS4wDQo+ID4NCj4gPiAgIEkgaGF2ZSB0ZXN0ZWQgaW5zdGFsbGF0aW9uIG9uIFdpbmRv
d3MgMTAgKDMyLWJpdCkgYW5kIHRoZSBzaWduYXR1cmVzDQo+ID4gYXBwZWFyIHRvIGJlIGdvb2Qu
DQo+ID4NCj4gPiAgIEkgd2lsbCBsZXQgdGhlIGxpc3Qga25vdyB3aGVuIHRoZSB0YXJiYWxscyBt
b3ZlIHRvIGEgbW9yZSBwZXJtYW5lbnQNCj4gPiBwbGFjZSBhbmQgSSB3aWxsLCBhdCB0aGF0IHBv
aW50LCBsaW5rIHRoZW0gZnJvbSB0aGUgcHJvamVjdCBmcm9udCBwYWdlLg0KPiA+DQo+IA0KPiBB
bGwsDQo+IA0KPiBUaGUgdGFyYmFsbHMgYXJlIG5vdyBpbiB0aGVpciBwZXJtYW5lbnQgaG9tZQ0K
PiAoaHR0cHM6Ly94ZW5iaXRzLnhlbi5vcmcvcHZkcml2ZXJzL3dpbi84LjEuMCkgYW5kIGFyZSBs
aW5rZWQgZnJvbSB0aGUNCj4gcHJvamVjdCBmcm9udCBwYWdlDQo+IChodHRwOi8vd3d3LnhlbnBy
b2plY3Qub3JnL2RldmVsb3BlcnMvdGVhbXMvd2luZG93cy1wdi1kcml2ZXJzLmh0bWwpLg0KPiAN
Cj4gICBDaGVlcnMsDQo+IA0KPiAgIFBhdWwNCj4gDQo+ID4gICBDaGVlcnMsDQo+ID4NCj4gPiAg
ICAgUGF1bA0KPiA+DQo+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX18NCj4gPiB3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0DQo+ID4gd2luLXB2LWRldmVs
QGxpc3RzLnhlbnByb2plY3Qub3JnDQo+ID4gaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9j
Z2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVsDQo+IA0KPiANCj4gDQo+IF9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+IHdpbi1wdi1kZXZl
bCBtYWlsaW5nIGxpc3QNCj4gd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IGh0
dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1w
di1kZXZlbA0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
d2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5v
cmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8v
d2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 26 17:25:30 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 26 Jul 2016 17:25:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bS66k-0006CN-Gc; Tue, 26 Jul 2016 17:25:30 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=0084a2c2e=Paul.Durrant@citrix.com>)
 id 1bS66j-0006CH-Sd
 for win-pv-devel@lists.xenproject.org; Tue, 26 Jul 2016 17:25:29 +0000
Received: from [85.158.139.211] by server-13.bemta-5.messagelabs.com id
 72/B9-12874-90D97975; Tue, 26 Jul 2016 17:25:29 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrLIsWRWlGSWpSXmKPExsWyU9JRQpdj7vR
 wg7OXJSz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxpS+x0wFK9Qq9t++xtjA+EK1i5GTQ0LAT2L6
 i4NMIDabgI7E0qPzwWwRgXKJlqktLCC2sIChxOqrD9kh4kYSMz/tZoawrSS6Ju8Dq2cRUJW4+
 GIbWA2vgLvEpU2TwOJCAjYSZycvZAOxGQVkJb40rgbrZRYQl7j1BGKXhICAxJI955khbFGJl4
 //sULYBhJbl+4DuoEDqF5TYv0ufYhWRYkp3Q+hVglKnJz5hAVilYrElscHoMZwS6z8/IdlAqP
 wLCTbZiFMmoVk0iwkkxYwsqxiVC9OLSpLLdI110sqykzPKMlNzMzRNTQw1ctNLS5OTE/NSUwq
 1kvOz93ECAx6BiDYwXhssvMhRkkOJiVRXqYJ08KF+JLyUyozEosz4otKc1KLDzHKcHAoSfAun
 D09XEiwKDU9tSItMwcYfzBpCQ4eJRHeXSBp3uKCxNzizHSI1ClGXY4FC2+uZRJiycvPS5US50
 0HKRIAKcoozYMbAUsFlxhlpYR5GYGOEuIpSC3KzSxBlX/FKM7BqCTMuwdkCk9mXgncpldARzA
 BHbGAZzLIESWJCCmpBsbw29ND7B/z5044e7R2xf9/6WuSFv5+6yTrZP6iS3bq6WaT85eS7Kuy
 EtZo3n74+cDfjNz2SzMjVnyY92OB/0T/IsGjrXdvfVqpKDmBL366/oOrOllxi1g+50WcjGb9f
 LDVcouB+j//Vf7vGDRXJBzOrpNjO9PXJqdzJDtsm+yevX2rZ/syblmvxFKckWioxVxUnAgAzB
 dc5gADAAA=
X-Env-Sender: prvs=0084a2c2e=Paul.Durrant@citrix.com
X-Msg-Ref: server-12.tower-206.messagelabs.com!1469553928!15101555!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: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 35143 invoked from network); 26 Jul 2016 17:25:28 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-12.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 26 Jul 2016 17:25:28 -0000
X-IronPort-AV: E=Sophos;i="5.28,425,1464652800"; d="scan'208";a="27206666"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Brandon Shoemaker <brandon@thinkhuge.net>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel]  Signed 8.1.0 drivers
Thread-Index: AdHnX9YJ49ZYf2raRWSegcQym2WaAwAAO3dAAAB5G6A=
Date: Tue, 26 Jul 2016 17:25:27 +0000
Message-ID: <c582eb60539340008a1fbc241346ba5e@AMSPEX02CL03.citrite.net>
References: <08a801d1e760$3f2549a0$bd6fdce0$@thinkhuge.net> 
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] Signed 8.1.0 drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBQYXVsIER1cnJhbnQNCj4gU2Vu
dDogMjYgSnVseSAyMDE2IDE4OjI0DQo+IFRvOiAnQnJhbmRvbiBTaG9lbWFrZXInOyB3aW4tcHYt
ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gU3ViamVjdDogUkU6IFt3aW4tcHYtZGV2ZWxd
IFNpZ25lZCA4LjEuMCBkcml2ZXJzDQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0t
DQo+ID4gRnJvbTogd2luLXB2LWRldmVsIFttYWlsdG86d2luLXB2LWRldmVsLWJvdW5jZXNAbGlz
dHMueGVucHJvamVjdC5vcmddDQo+IE9uDQo+ID4gQmVoYWxmIE9mIEJyYW5kb24gU2hvZW1ha2Vy
DQo+ID4gU2VudDogMjYgSnVseSAyMDE2IDE4OjA4DQo+ID4gVG86IHdpbi1wdi1kZXZlbEBsaXN0
cy54ZW5wcm9qZWN0Lm9yZw0KPiA+IFN1YmplY3Q6IFt3aW4tcHYtZGV2ZWxdIFNpZ25lZCA4LjEu
MCBkcml2ZXJzDQo+ID4NCj4gPiBIZWxsbywNCj4gPg0KPiA+IEkgaGF2ZSBiZWVuIHdhaXRpbmcg
b24gdGhlc2UgbmV3IHNpZ25lZCBkcml2ZXJzLiAgVGhhbmtzIGZvciBmaW5hbGx5IG1ha2luZw0K
PiA+IHRoZW0gYXZhaWxhYmxlIQ0KPiA+DQo+ID4gSSBoYXZlIHRlc3RlZCBhbmQgcnVuIGludG8g
YSBwcm9ibGVtcyB1bmZvcnR1bmF0ZWx5IHNvIEkgd2FudGVkIHRvIHJlcG9ydA0KPiA+IHRoaXMu
DQo+ID4NCj4gPiBGaXJzdCBJIHRyaWVkIHVuaW5zdGFsbGluZyB0aGUgRUpCIGRpZ2l0YWwgZHJp
dmVycw0KPiA+IChlamJwdl9WaXN0YTIwMDh4NjRfMS4wLjExMDUubXNpKSBhbmQgaW5zdGFsbGlu
ZyB0aGVzZSBuZXcgZHJpdmVycyBvbg0KPiA+IFdpbmRvd3MgMjAwOCBSMiB4NjQgZXhpc3Rpbmcg
VlBTLiAgQWZ0ZXIgcmVib290aW5nIFdpbmRvd3MgMjAwOCBSMg0KPiBoYW5ncw0KPiA+IGZvcmV2
ZXIgYXQgYm9vdC4NCj4gPg0KPiA+IFNlY29uZGx5IEkgaGF2ZSBpbnN0YWxsZWQgYSBjbGVhbiBX
aW5kb3dzIDIwMDggUjIgYW5kIHRoZW4gaW5zdGFsbGVkIGFsbCB0aGUNCj4gPiBkcml2ZXJzIGFu
ZCB3aGVuIEkgcmVib290IGl0IGdvZXMgaW50byByZWNvdmVyeSBtb2RlLiAgSSBoYXBwZW4gdG8g
Y2hlY2sNCj4gPiBXaW5kb3dzIGRldmljZSBtYW5hZ2VyIGJlZm9yZSBJIHJlYm9vdGVkIGFuZCBJ
IG5vdGljZWQgdGhhdCB0aGUgIlhlbiBQVg0KPiA+IEJ1cyIgZHJpdmVyIGhhcyBhIHllbGxvdyB3
YXJuaW5nIHN5bWJvbCBhcyBzaG93biBpbiB0aGUgc2NyZWVuc2hvdCA+DQo+ID4gaHR0cHM6Ly9w
b3N0aW1nLm9yZy9pbWFnZS94MDhnN240d24vICAgaXQgc2F5cyBpdCBjYW5ub3QgdmVyaWZ5IHRo
ZSBkaWdpdGFsDQo+ID4gc2lnbmF0dXJlIGZvciB0aGUgWGVuIFBWIEJ1cyBkcml2ZXJzLiAgTm90
aGluZyB3YXMgZG9uZSBidXQgdGhlIGluc3RhbGwgb2YNCj4gPiBXaW5kb3dzIGFuZCB0aGVuIGlt
bWVkaWF0ZSBpbnN0YWxsIG9mIHRoZSBkcml2ZXJzLg0KPiANCj4gSSBzdXNwZWN0IHRoaXMgaXMg
YmVjYXVzZSB0aGUgZHJpdmVycyBhcmUgc2lnbmVkIHdpdGggU0hBLTI1NiBhbmQgeW91IG1heQ0K
PiBuZWVkIGEgaG90Zml4IHRvIGVuYWJsZSB2ZXJpZmljYXRpb24gb2Yga2VybmVsIG1vZGUgZHJp
dmVycyBzaWduZWQgd2l0aCBhDQo+IFNIQS0yNTYgY2VydC4NCg0KU3BlY2lmaWNhbGx5IHNlZSBo
dHRwczovL3RlY2huZXQubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L3NlY3VyaXR5LzMwMzM5
Mjk/Zj0yNTUmTVNQUEVycm9yPS0yMTQ3MjE3Mzk2DQoNCj4gDQo+ICAgUGF1bA0KPiANCj4gPg0K
PiA+IE15IFhlbiBzZXJ2ZXJzIGFyZSBidWlsdCB2aWEgU29sdXNWTSBpbnN0YWxsIHNjcmlwdCBh
bmQgdGhpcyBwYXJ0aWN1bGFyIHNlcnZlcg0KPiBpcw0KPiA+IHhlbl92ZXJzaW9uIDQuNi4xLTEx
LmVsNiBvbiBjZW50b3M2Lg0KPiA+DQo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+DQo+ID4gPiAtLS0t
LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogd2luLXB2LWRldmVsIFttYWlsdG86
d2luLXB2LWRldmVsLWJvdW5jZXNAbGlzdHMueGVucHJvamVjdC5vcmddDQo+ID4gPiBPbiBCZWhh
bGYgT2YgUGF1bCBEdXJyYW50DQo+ID4gPiBTZW50OiAyMiBKdWx5IDIwMTYgMTY6MTINCj4gPiA+
IFRvOiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gPiA+IFN1YmplY3Q6IFt3
aW4tcHYtZGV2ZWxdIFNpZ25lZCA4LjEuMCBkcml2ZXJzDQo+ID4gPg0KPiA+ID4gQWxsLA0KPiA+
ID4NCj4gPiA+ICAgR29vZCBuZXdzISBJIGhhdmUgdGFnZ2VkIHRoZSA4LjEuMCByZWxlYXNlIGRy
aXZlciBzb3VyY2UgaW4gZWFjaCBvZg0KPiA+ID4gdGhlIHJlcG9zaXRvcmllcywgYnVpbHQgaXQg
YW5kIHNpZ25lZCBpdC4gSSBkb24ndCB5ZXQgaGF2ZSBhbiBvZmZpY2lhbA0KPiA+ID4gcGxhY2Ug
dG8gcHV0IHRoZSBzaWduZWQgYnVpbGRzIHNvIGZvciB0aGUgbW9tZW50IHlvdSBjYW4gZ2V0IHRo
ZW0gZnJvbQ0KPiA+ID4NCj4gPiA+IGh0dHBzOi8veGVuYml0cy54ZW4ub3JnL3Blb3BsZS9wYXVs
ZHUvcHZkcml2ZXJzL3dpbi9yZWxlYXNlLzguMS4wDQo+ID4gPg0KPiA+ID4gICBJIGhhdmUgdGVz
dGVkIGluc3RhbGxhdGlvbiBvbiBXaW5kb3dzIDEwICgzMi1iaXQpIGFuZCB0aGUgc2lnbmF0dXJl
cw0KPiA+ID4gYXBwZWFyIHRvIGJlIGdvb2QuDQo+ID4gPg0KPiA+ID4gICBJIHdpbGwgbGV0IHRo
ZSBsaXN0IGtub3cgd2hlbiB0aGUgdGFyYmFsbHMgbW92ZSB0byBhIG1vcmUgcGVybWFuZW50DQo+
ID4gPiBwbGFjZSBhbmQgSSB3aWxsLCBhdCB0aGF0IHBvaW50LCBsaW5rIHRoZW0gZnJvbSB0aGUg
cHJvamVjdCBmcm9udCBwYWdlLg0KPiA+ID4NCj4gPg0KPiA+IEFsbCwNCj4gPg0KPiA+IFRoZSB0
YXJiYWxscyBhcmUgbm93IGluIHRoZWlyIHBlcm1hbmVudCBob21lDQo+ID4gKGh0dHBzOi8veGVu
Yml0cy54ZW4ub3JnL3B2ZHJpdmVycy93aW4vOC4xLjApIGFuZCBhcmUgbGlua2VkIGZyb20gdGhl
DQo+ID4gcHJvamVjdCBmcm9udCBwYWdlDQo+ID4gKGh0dHA6Ly93d3cueGVucHJvamVjdC5vcmcv
ZGV2ZWxvcGVycy90ZWFtcy93aW5kb3dzLXB2LQ0KPiBkcml2ZXJzLmh0bWwpLg0KPiA+DQo+ID4g
ICBDaGVlcnMsDQo+ID4NCj4gPiAgIFBhdWwNCj4gPg0KPiA+ID4gICBDaGVlcnMsDQo+ID4gPg0K
PiA+ID4gICAgIFBhdWwNCj4gPiA+DQo+ID4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXw0KPiA+ID4gd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdA0KPiA+
ID4gd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+ID4gPiBodHRwczovL2xpc3Rz
LnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWwNCj4g
Pg0KPiA+DQo+ID4NCj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXw0KPiA+IHdpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gPiB3aW4tcHYtZGV2ZWxA
bGlzdHMueGVucHJvamVjdC5vcmcNCj4gPiBodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2Nn
aS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWwNCl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2lu
LXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5v
cmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 26 17:25:30 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 26 Jul 2016 17:25:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bS66k-0006CN-Gc; Tue, 26 Jul 2016 17:25:30 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=0084a2c2e=Paul.Durrant@citrix.com>)
 id 1bS66j-0006CH-Sd
 for win-pv-devel@lists.xenproject.org; Tue, 26 Jul 2016 17:25:29 +0000
Received: from [85.158.139.211] by server-13.bemta-5.messagelabs.com id
 72/B9-12874-90D97975; Tue, 26 Jul 2016 17:25:29 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrLIsWRWlGSWpSXmKPExsWyU9JRQpdj7vR
 wg7OXJSz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxpS+x0wFK9Qq9t++xtjA+EK1i5GTQ0LAT2L6
 i4NMIDabgI7E0qPzwWwRgXKJlqktLCC2sIChxOqrD9kh4kYSMz/tZoawrSS6Ju8Dq2cRUJW4+
 GIbWA2vgLvEpU2TwOJCAjYSZycvZAOxGQVkJb40rgbrZRYQl7j1BGKXhICAxJI955khbFGJl4
 //sULYBhJbl+4DuoEDqF5TYv0ufYhWRYkp3Q+hVglKnJz5hAVilYrElscHoMZwS6z8/IdlAqP
 wLCTbZiFMmoVk0iwkkxYwsqxiVC9OLSpLLdI110sqykzPKMlNzMzRNTQw1ctNLS5OTE/NSUwq
 1kvOz93ECAx6BiDYwXhssvMhRkkOJiVRXqYJ08KF+JLyUyozEosz4otKc1KLDzHKcHAoSfAun
 D09XEiwKDU9tSItMwcYfzBpCQ4eJRHeXSBp3uKCxNzizHSI1ClGXY4FC2+uZRJiycvPS5US50
 0HKRIAKcoozYMbAUsFlxhlpYR5GYGOEuIpSC3KzSxBlX/FKM7BqCTMuwdkCk9mXgncpldARzA
 BHbGAZzLIESWJCCmpBsbw29ND7B/z5044e7R2xf9/6WuSFv5+6yTrZP6iS3bq6WaT85eS7Kuy
 EtZo3n74+cDfjNz2SzMjVnyY92OB/0T/IsGjrXdvfVqpKDmBL366/oOrOllxi1g+50WcjGb9f
 LDVcouB+j//Vf7vGDRXJBzOrpNjO9PXJqdzJDtsm+yevX2rZ/syblmvxFKckWioxVxUnAgAzB
 dc5gADAAA=
X-Env-Sender: prvs=0084a2c2e=Paul.Durrant@citrix.com
X-Msg-Ref: server-12.tower-206.messagelabs.com!1469553928!15101555!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: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 35143 invoked from network); 26 Jul 2016 17:25:28 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-12.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 26 Jul 2016 17:25:28 -0000
X-IronPort-AV: E=Sophos;i="5.28,425,1464652800"; d="scan'208";a="27206666"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Brandon Shoemaker <brandon@thinkhuge.net>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel]  Signed 8.1.0 drivers
Thread-Index: AdHnX9YJ49ZYf2raRWSegcQym2WaAwAAO3dAAAB5G6A=
Date: Tue, 26 Jul 2016 17:25:27 +0000
Message-ID: <c582eb60539340008a1fbc241346ba5e@AMSPEX02CL03.citrite.net>
References: <08a801d1e760$3f2549a0$bd6fdce0$@thinkhuge.net> 
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] Signed 8.1.0 drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBQYXVsIER1cnJhbnQNCj4gU2Vu
dDogMjYgSnVseSAyMDE2IDE4OjI0DQo+IFRvOiAnQnJhbmRvbiBTaG9lbWFrZXInOyB3aW4tcHYt
ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gU3ViamVjdDogUkU6IFt3aW4tcHYtZGV2ZWxd
IFNpZ25lZCA4LjEuMCBkcml2ZXJzDQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0t
DQo+ID4gRnJvbTogd2luLXB2LWRldmVsIFttYWlsdG86d2luLXB2LWRldmVsLWJvdW5jZXNAbGlz
dHMueGVucHJvamVjdC5vcmddDQo+IE9uDQo+ID4gQmVoYWxmIE9mIEJyYW5kb24gU2hvZW1ha2Vy
DQo+ID4gU2VudDogMjYgSnVseSAyMDE2IDE4OjA4DQo+ID4gVG86IHdpbi1wdi1kZXZlbEBsaXN0
cy54ZW5wcm9qZWN0Lm9yZw0KPiA+IFN1YmplY3Q6IFt3aW4tcHYtZGV2ZWxdIFNpZ25lZCA4LjEu
MCBkcml2ZXJzDQo+ID4NCj4gPiBIZWxsbywNCj4gPg0KPiA+IEkgaGF2ZSBiZWVuIHdhaXRpbmcg
b24gdGhlc2UgbmV3IHNpZ25lZCBkcml2ZXJzLiAgVGhhbmtzIGZvciBmaW5hbGx5IG1ha2luZw0K
PiA+IHRoZW0gYXZhaWxhYmxlIQ0KPiA+DQo+ID4gSSBoYXZlIHRlc3RlZCBhbmQgcnVuIGludG8g
YSBwcm9ibGVtcyB1bmZvcnR1bmF0ZWx5IHNvIEkgd2FudGVkIHRvIHJlcG9ydA0KPiA+IHRoaXMu
DQo+ID4NCj4gPiBGaXJzdCBJIHRyaWVkIHVuaW5zdGFsbGluZyB0aGUgRUpCIGRpZ2l0YWwgZHJp
dmVycw0KPiA+IChlamJwdl9WaXN0YTIwMDh4NjRfMS4wLjExMDUubXNpKSBhbmQgaW5zdGFsbGlu
ZyB0aGVzZSBuZXcgZHJpdmVycyBvbg0KPiA+IFdpbmRvd3MgMjAwOCBSMiB4NjQgZXhpc3Rpbmcg
VlBTLiAgQWZ0ZXIgcmVib290aW5nIFdpbmRvd3MgMjAwOCBSMg0KPiBoYW5ncw0KPiA+IGZvcmV2
ZXIgYXQgYm9vdC4NCj4gPg0KPiA+IFNlY29uZGx5IEkgaGF2ZSBpbnN0YWxsZWQgYSBjbGVhbiBX
aW5kb3dzIDIwMDggUjIgYW5kIHRoZW4gaW5zdGFsbGVkIGFsbCB0aGUNCj4gPiBkcml2ZXJzIGFu
ZCB3aGVuIEkgcmVib290IGl0IGdvZXMgaW50byByZWNvdmVyeSBtb2RlLiAgSSBoYXBwZW4gdG8g
Y2hlY2sNCj4gPiBXaW5kb3dzIGRldmljZSBtYW5hZ2VyIGJlZm9yZSBJIHJlYm9vdGVkIGFuZCBJ
IG5vdGljZWQgdGhhdCB0aGUgIlhlbiBQVg0KPiA+IEJ1cyIgZHJpdmVyIGhhcyBhIHllbGxvdyB3
YXJuaW5nIHN5bWJvbCBhcyBzaG93biBpbiB0aGUgc2NyZWVuc2hvdCA+DQo+ID4gaHR0cHM6Ly9w
b3N0aW1nLm9yZy9pbWFnZS94MDhnN240d24vICAgaXQgc2F5cyBpdCBjYW5ub3QgdmVyaWZ5IHRo
ZSBkaWdpdGFsDQo+ID4gc2lnbmF0dXJlIGZvciB0aGUgWGVuIFBWIEJ1cyBkcml2ZXJzLiAgTm90
aGluZyB3YXMgZG9uZSBidXQgdGhlIGluc3RhbGwgb2YNCj4gPiBXaW5kb3dzIGFuZCB0aGVuIGlt
bWVkaWF0ZSBpbnN0YWxsIG9mIHRoZSBkcml2ZXJzLg0KPiANCj4gSSBzdXNwZWN0IHRoaXMgaXMg
YmVjYXVzZSB0aGUgZHJpdmVycyBhcmUgc2lnbmVkIHdpdGggU0hBLTI1NiBhbmQgeW91IG1heQ0K
PiBuZWVkIGEgaG90Zml4IHRvIGVuYWJsZSB2ZXJpZmljYXRpb24gb2Yga2VybmVsIG1vZGUgZHJp
dmVycyBzaWduZWQgd2l0aCBhDQo+IFNIQS0yNTYgY2VydC4NCg0KU3BlY2lmaWNhbGx5IHNlZSBo
dHRwczovL3RlY2huZXQubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L3NlY3VyaXR5LzMwMzM5
Mjk/Zj0yNTUmTVNQUEVycm9yPS0yMTQ3MjE3Mzk2DQoNCj4gDQo+ICAgUGF1bA0KPiANCj4gPg0K
PiA+IE15IFhlbiBzZXJ2ZXJzIGFyZSBidWlsdCB2aWEgU29sdXNWTSBpbnN0YWxsIHNjcmlwdCBh
bmQgdGhpcyBwYXJ0aWN1bGFyIHNlcnZlcg0KPiBpcw0KPiA+IHhlbl92ZXJzaW9uIDQuNi4xLTEx
LmVsNiBvbiBjZW50b3M2Lg0KPiA+DQo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+DQo+ID4gPiAtLS0t
LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogd2luLXB2LWRldmVsIFttYWlsdG86
d2luLXB2LWRldmVsLWJvdW5jZXNAbGlzdHMueGVucHJvamVjdC5vcmddDQo+ID4gPiBPbiBCZWhh
bGYgT2YgUGF1bCBEdXJyYW50DQo+ID4gPiBTZW50OiAyMiBKdWx5IDIwMTYgMTY6MTINCj4gPiA+
IFRvOiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gPiA+IFN1YmplY3Q6IFt3
aW4tcHYtZGV2ZWxdIFNpZ25lZCA4LjEuMCBkcml2ZXJzDQo+ID4gPg0KPiA+ID4gQWxsLA0KPiA+
ID4NCj4gPiA+ICAgR29vZCBuZXdzISBJIGhhdmUgdGFnZ2VkIHRoZSA4LjEuMCByZWxlYXNlIGRy
aXZlciBzb3VyY2UgaW4gZWFjaCBvZg0KPiA+ID4gdGhlIHJlcG9zaXRvcmllcywgYnVpbHQgaXQg
YW5kIHNpZ25lZCBpdC4gSSBkb24ndCB5ZXQgaGF2ZSBhbiBvZmZpY2lhbA0KPiA+ID4gcGxhY2Ug
dG8gcHV0IHRoZSBzaWduZWQgYnVpbGRzIHNvIGZvciB0aGUgbW9tZW50IHlvdSBjYW4gZ2V0IHRo
ZW0gZnJvbQ0KPiA+ID4NCj4gPiA+IGh0dHBzOi8veGVuYml0cy54ZW4ub3JnL3Blb3BsZS9wYXVs
ZHUvcHZkcml2ZXJzL3dpbi9yZWxlYXNlLzguMS4wDQo+ID4gPg0KPiA+ID4gICBJIGhhdmUgdGVz
dGVkIGluc3RhbGxhdGlvbiBvbiBXaW5kb3dzIDEwICgzMi1iaXQpIGFuZCB0aGUgc2lnbmF0dXJl
cw0KPiA+ID4gYXBwZWFyIHRvIGJlIGdvb2QuDQo+ID4gPg0KPiA+ID4gICBJIHdpbGwgbGV0IHRo
ZSBsaXN0IGtub3cgd2hlbiB0aGUgdGFyYmFsbHMgbW92ZSB0byBhIG1vcmUgcGVybWFuZW50DQo+
ID4gPiBwbGFjZSBhbmQgSSB3aWxsLCBhdCB0aGF0IHBvaW50LCBsaW5rIHRoZW0gZnJvbSB0aGUg
cHJvamVjdCBmcm9udCBwYWdlLg0KPiA+ID4NCj4gPg0KPiA+IEFsbCwNCj4gPg0KPiA+IFRoZSB0
YXJiYWxscyBhcmUgbm93IGluIHRoZWlyIHBlcm1hbmVudCBob21lDQo+ID4gKGh0dHBzOi8veGVu
Yml0cy54ZW4ub3JnL3B2ZHJpdmVycy93aW4vOC4xLjApIGFuZCBhcmUgbGlua2VkIGZyb20gdGhl
DQo+ID4gcHJvamVjdCBmcm9udCBwYWdlDQo+ID4gKGh0dHA6Ly93d3cueGVucHJvamVjdC5vcmcv
ZGV2ZWxvcGVycy90ZWFtcy93aW5kb3dzLXB2LQ0KPiBkcml2ZXJzLmh0bWwpLg0KPiA+DQo+ID4g
ICBDaGVlcnMsDQo+ID4NCj4gPiAgIFBhdWwNCj4gPg0KPiA+ID4gICBDaGVlcnMsDQo+ID4gPg0K
PiA+ID4gICAgIFBhdWwNCj4gPiA+DQo+ID4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXw0KPiA+ID4gd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdA0KPiA+
ID4gd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+ID4gPiBodHRwczovL2xpc3Rz
LnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWwNCj4g
Pg0KPiA+DQo+ID4NCj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXw0KPiA+IHdpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gPiB3aW4tcHYtZGV2ZWxA
bGlzdHMueGVucHJvamVjdC5vcmcNCj4gPiBodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2Nn
aS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWwNCl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2lu
LXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5v
cmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 26 17:52:55 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 26 Jul 2016 17:52:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bS6XG-00084T-FX; Tue, 26 Jul 2016 17:52:54 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <brandon@thinkhuge.net>) id 1bS6XF-00084L-14
 for win-pv-devel@lists.xenproject.org; Tue, 26 Jul 2016 17:52:53 +0000
Received: from [85.158.143.35] by server-3.bemta-6.messagelabs.com id
 47/E1-05661-473A7975; Tue, 26 Jul 2016 17:52:52 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpileJIrShJLcpLzFFi42K5GHpgjW7x4un
 hBhMXGlj8WZzowOhx+MMVlgDGKNbMvKT8igTWjBu37rEXbBGtmNoygbWBcbdgFyMXh5DAbEaJ
 rx8/MoE4LAJvmSU2NL1k7mLk5JAQuM0q8eBkAYQdI7FzcicjhF0l0bz2FJgtJKAicbH3CTuEP
 YVJYsUuMJtNwFDiyJqrLCC2iECIxM+N56DqKyS+PD4AFucU8JD4PfsvG4gtDFS/+upDsF4WAV
 WJM6e/gNXzClhLXD7fzwxhC0qcnPkErJdZQEti6tpXULa2xLKFr6FuVpD4+XQZaxcjB9BeK4n
 H/8wgSsQlXh49wj6BUWQWkkmzkEyahWTSLCQtCxhZVjGqF6cWlaUW6ZrpJRVlpmeU5CZm5uga
 Gpjp5aYWFyemp+YkJhXrJefnbmIExgQDEOxgnHfC/xCjJAeTkigv04Rp4UJ8SfkplRmJxRnxR
 aU5qcWHGGU4OJQkeL8vnB4uJFiUmp5akZaZA4xOmLQEB4+SCK/YIqA0b3FBYm5xZjpE6hSjMc
 eW39fWMnFsm3pvLZMQS15+XqqUOO9+kEkCIKUZpXlwg2BJ4xKjrJQwLyPQaUI8BalFuZklqPK
 vGMU5GJWEeUVAFvJk5pXA7XsFdAoT0CkLeCaDnFKSiJCSamD0vVW3P3qpQL9rnU2L5Om0oLhw
 9u0/RZe+uXVgXc/ra/tUEk4U3i0OXnx6dW+moNHK2REsejrW86Kut79gkjYSenhA5PWUbAvZ/
 CnP0niutNkZLJe13p0nJvq4wNc9+0aRxJGLEoefd+18O8WNq6x19oVyrfPfZgVdaGu5Xj0x58
 /21hQpxnolluKMREMt5qLiRAD4oQrUFQMAAA==
X-Env-Sender: brandon@thinkhuge.net
X-Msg-Ref: server-4.tower-21.messagelabs.com!1469555570!19639992!1
X-Originating-IP: [209.85.192.172]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 2843 invoked from network); 26 Jul 2016 17:52:51 -0000
Received: from mail-pf0-f172.google.com (HELO mail-pf0-f172.google.com)
 (209.85.192.172)
 by server-4.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 26 Jul 2016 17:52:51 -0000
Received: by mail-pf0-f172.google.com with SMTP id x72so1966756pfd.2
 for <win-pv-devel@lists.xenproject.org>; Tue, 26 Jul 2016 10:52:51 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=thinkhuge.net; s=google;
 h=from:to:references:in-reply-to:subject:date:message-id:mime-version
 :content-transfer-encoding:thread-index:content-language;
 bh=wSyx6CcbLhItN3MGbxHjjXHXPp3DuvB8TelxrVtOVZ0=;
 b=aWns11WYvTUeYsXNafJxDCSC1G2Y6MQHSKGhMfN/9a5Bou5mVqrhf9ixTweG4cjRIw
 A1w4Zw43dMvLshRCPislnDTxKLCyTemJfexgsAueVtTloATavHM9d3IT8aH465oSYAkN
 QYDoGB/XxEXilbVmmV7QcinfEMwZFB1vX7ksE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:references:in-reply-to:subject:date
 :message-id:mime-version:content-transfer-encoding:thread-index
 :content-language;
 bh=wSyx6CcbLhItN3MGbxHjjXHXPp3DuvB8TelxrVtOVZ0=;
 b=V0p2zft7p7H7cCwppKRdooMESqWnUh6LBuzc7ynRVJYf8JUGKErMamOF6glORYj4rU
 O7gHncbl2ZtAVX8WeOoCUJoJK9LffgwIw3kpnentDYd73jHi3cw82ynNcYbHlUns835F
 EVh0Ea5ufG+ajb4kc0ZysVhI44G0w8fmPtOLDYJT5g4cgW/BEapBvyz1kacTftELC63R
 0UDrKGCt1et+o7OK3cX/4YfsA+MoRzgqSrbVbsobNkPcYpLco6BRdDR4VkdNmCO3bAi5
 EXRKh5xFPLyHjWWol1kALZf6BRDwlpy2QIsXSQVxTkC4r7tGzjGYeuBPhuMjbm/bUFyR
 8fuA==
X-Gm-Message-State: AEkoout6qT9X/80B3CbCA+xaMwMYnJkY9OKGg69sPuvQGSIxS+uF69fOcI38sslIrGdePGLx
X-Received: by 10.98.34.151 with SMTP id p23mr41928468pfj.102.1469555570006;
 Tue, 26 Jul 2016 10:52:50 -0700 (PDT)
Received: from venus (ip70-170-124-201.lv.lv.cox.net. [70.170.124.201])
 by smtp.googlemail.com with ESMTPSA id q1sm3085113pfd.48.2016.07.26.10.52.48
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Tue, 26 Jul 2016 10:52:48 -0700 (PDT)
From: "Brandon Shoemaker" <brandon@thinkhuge.net>
To: "'Paul Durrant'" <Paul.Durrant@citrix.com>,
 <win-pv-devel@lists.xenproject.org>
References: <08a801d1e760$3f2549a0$bd6fdce0$@thinkhuge.net>
 <c582eb60539340008a1fbc241346ba5e@AMSPEX02CL03.citrite.net>
In-Reply-To: <c582eb60539340008a1fbc241346ba5e@AMSPEX02CL03.citrite.net>
Date: Tue, 26 Jul 2016 10:52:47 -0700
Message-ID: <08bf01d1e766$85a68be0$90f3a3a0$@thinkhuge.net>
MIME-Version: 1.0
X-Mailer: Microsoft Outlook 16.0
Thread-Index: AQHofboCPFqgQ3hplQ/PG/Kuh4UhaAJZGSK9n+sGGUA=
Content-Language: en-us
Subject: Re: [win-pv-devel] Signed 8.1.0 drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

SGV5IFBhdWwgYW5kIGxpc3QsCgpUaGF0IGZpeGVkIGl0ISAgT2theSBzbyBJIHdpbGwgcmVtZW1i
ZXIgdGhhdCBvbmUgdXBkYXRlIGlzIG5lZWRlZCBmb3IgYW55IG5ldyBjbGVhbiBXaW5kb3dzIDIw
MDggUjIgaW5zdGFsbCBub3QgeWV0IHVwZGF0ZWQuCgpTdGlsbCBJIGFtIG5vdCBzdXJlIGFib3V0
IHRoZSByZWFzb24gd2h5IHRoZSBFSkIgZGlnaXRhbCBkcml2ZXIgdW5pbnN0YWxsIGFuZCB1cGRh
dGUgdG8gdGhlc2UgZHJpdmVycyByZXN1bHRlZCBpbiBXaW5kb3dzIDIwMDggUjIgaGFuZ2luZyBm
b3JldmVyIG9uIHJlYm9vdC4gIEkgdGVzdGVkIHRoaXMgdHdpY2Ugd2l0aCB0aGUgc2FtZSByZXN1
bHRzLiAgSSdkIGV4cGVjdCB5b3UgbWF5IHNlZSBzb21lIG90aGVycyBjb21wbGFpbiBvZiBzZWVp
bmcgdGhpcyBwcm9ibGVtIGluIHRoZSBmdXR1cmUuICBNYXliZSBzb21lb25lIHdpdGggbW9yZSB0
aW1lIGFuZCBjYXBhYmlsaXR5IHRoYW4gbWUgY2FuIGxhdGVyIGNvbmZpcm0gYSB3b3JraW5nIHBy
b2NlZHVyZSBmb3IgdXBncmFkaW5nIGZyb20gdGhvc2UgZHJpdmVycyB0byB0aGVzZSBuZXcgZHJp
dmVycyB0aGF0IGNhbiByZXN1bHQgaW4gc3VjY2Vzcy4KCk15IHByb2NlZHVyZSB3YXM6CgoxLiBV
bmluc3RhbGwgdGhlIEVKQiBkaWdpdGFsIGRyaXZlcnMgZnJvbSB0aGUgV2luZG93cyBjb250cm9s
IHBhbmVsCjIuIERvbid0IHJlYm9vdCB5ZXQKMy4gSW5zdGFsbCBhbGwgdGhlIG5ldyBkcml2ZXJz
CjQuIHJlYm9vdAo1LiBJIGZvdW5kIGlmIHlvdSByZWJvb3QgZmlyc3QgYmVmb3JlIGluc3RhbGxp
bmcgdGhlIG5ldyBkcml2ZXJzIHlvdSBlbmQgdXAgd2l0aCBhIGJsdWUgc2NyZWVuCgpNeSBwcm9j
ZWR1cmUgbXVzdCBiZSBpbmNvbXBsZXRlIG9yIGhhdmUgZmxhd3MuCgpUaGFua3MgYWdhaW4gZm9y
IHlvdXIgc3VwcG9ydCBvbiB0aGlzIGxpc3QuCgoKPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t
LQo+IEZyb206IFBhdWwgRHVycmFudAo+IFNlbnQ6IDI2IEp1bHkgMjAxNiAxODoyNAo+IFRvOiAn
QnJhbmRvbiBTaG9lbWFrZXInOyB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKPiBT
dWJqZWN0OiBSRTogW3dpbi1wdi1kZXZlbF0gU2lnbmVkIDguMS4wIGRyaXZlcnMKPiAKPiA+IC0t
LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gPiBGcm9tOiB3aW4tcHYtZGV2ZWwgCj4gPiBbbWFp
bHRvOndpbi1wdi1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnXQo+IE9uCj4gPiBC
ZWhhbGYgT2YgQnJhbmRvbiBTaG9lbWFrZXIKPiA+IFNlbnQ6IDI2IEp1bHkgMjAxNiAxODowOAo+
ID4gVG86IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwo+ID4gU3ViamVjdDogW3dp
bi1wdi1kZXZlbF0gU2lnbmVkIDguMS4wIGRyaXZlcnMKPiA+Cj4gPiBIZWxsbywKPiA+Cj4gPiBJ
IGhhdmUgYmVlbiB3YWl0aW5nIG9uIHRoZXNlIG5ldyBzaWduZWQgZHJpdmVycy4gIFRoYW5rcyBm
b3IgZmluYWxseSAKPiA+IG1ha2luZyB0aGVtIGF2YWlsYWJsZSEKPiA+Cj4gPiBJIGhhdmUgdGVz
dGVkIGFuZCBydW4gaW50byBhIHByb2JsZW1zIHVuZm9ydHVuYXRlbHkgc28gSSB3YW50ZWQgdG8g
Cj4gPiByZXBvcnQgdGhpcy4KPiA+Cj4gPiBGaXJzdCBJIHRyaWVkIHVuaW5zdGFsbGluZyB0aGUg
RUpCIGRpZ2l0YWwgZHJpdmVycwo+ID4gKGVqYnB2X1Zpc3RhMjAwOHg2NF8xLjAuMTEwNS5tc2kp
IGFuZCBpbnN0YWxsaW5nIHRoZXNlIG5ldyBkcml2ZXJzIAo+ID4gb24gV2luZG93cyAyMDA4IFIy
IHg2NCBleGlzdGluZyBWUFMuICBBZnRlciByZWJvb3RpbmcgV2luZG93cyAyMDA4IAo+ID4gUjIK
PiBoYW5ncwo+ID4gZm9yZXZlciBhdCBib290Lgo+ID4KPiA+IFNlY29uZGx5IEkgaGF2ZSBpbnN0
YWxsZWQgYSBjbGVhbiBXaW5kb3dzIDIwMDggUjIgYW5kIHRoZW4gaW5zdGFsbGVkIAo+ID4gYWxs
IHRoZSBkcml2ZXJzIGFuZCB3aGVuIEkgcmVib290IGl0IGdvZXMgaW50byByZWNvdmVyeSBtb2Rl
LiAgSSAKPiA+IGhhcHBlbiB0byBjaGVjayBXaW5kb3dzIGRldmljZSBtYW5hZ2VyIGJlZm9yZSBJ
IHJlYm9vdGVkIGFuZCBJIAo+ID4gbm90aWNlZCB0aGF0IHRoZSAiWGVuIFBWIEJ1cyIgZHJpdmVy
IGhhcyBhIHllbGxvdyB3YXJuaW5nIHN5bWJvbCBhcyBzaG93biBpbiB0aGUgc2NyZWVuc2hvdCA+
Cj4gPiBodHRwczovL3Bvc3RpbWcub3JnL2ltYWdlL3gwOGc3bjR3bi8gICBpdCBzYXlzIGl0IGNh
bm5vdCB2ZXJpZnkgdGhlIGRpZ2l0YWwKPiA+IHNpZ25hdHVyZSBmb3IgdGhlIFhlbiBQViBCdXMg
ZHJpdmVycy4gIE5vdGhpbmcgd2FzIGRvbmUgYnV0IHRoZSAKPiA+IGluc3RhbGwgb2YgV2luZG93
cyBhbmQgdGhlbiBpbW1lZGlhdGUgaW5zdGFsbCBvZiB0aGUgZHJpdmVycy4KPiAKPiBJIHN1c3Bl
Y3QgdGhpcyBpcyBiZWNhdXNlIHRoZSBkcml2ZXJzIGFyZSBzaWduZWQgd2l0aCBTSEEtMjU2IGFu
ZCB5b3UgCj4gbWF5IG5lZWQgYSBob3RmaXggdG8gZW5hYmxlIHZlcmlmaWNhdGlvbiBvZiBrZXJu
ZWwgbW9kZSBkcml2ZXJzIHNpZ25lZCAKPiB3aXRoIGEKPiBTSEEtMjU2IGNlcnQuCgpTcGVjaWZp
Y2FsbHkgc2VlIGh0dHBzOi8vdGVjaG5ldC5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvc2Vj
dXJpdHkvMzAzMzkyOT9mPTI1NSZNU1BQRXJyb3I9LTIxNDcyMTczOTYKCj4gCj4gICBQYXVsCj4g
CgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1w
di1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0
dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1w
di1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue Jul 26 17:52:55 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 26 Jul 2016 17:52:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bS6XG-00084T-FX; Tue, 26 Jul 2016 17:52:54 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <brandon@thinkhuge.net>) id 1bS6XF-00084L-14
 for win-pv-devel@lists.xenproject.org; Tue, 26 Jul 2016 17:52:53 +0000
Received: from [85.158.143.35] by server-3.bemta-6.messagelabs.com id
 47/E1-05661-473A7975; Tue, 26 Jul 2016 17:52:52 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpileJIrShJLcpLzFFi42K5GHpgjW7x4un
 hBhMXGlj8WZzowOhx+MMVlgDGKNbMvKT8igTWjBu37rEXbBGtmNoygbWBcbdgFyMXh5DAbEaJ
 rx8/MoE4LAJvmSU2NL1k7mLk5JAQuM0q8eBkAYQdI7FzcicjhF0l0bz2FJgtJKAicbH3CTuEP
 YVJYsUuMJtNwFDiyJqrLCC2iECIxM+N56DqKyS+PD4AFucU8JD4PfsvG4gtDFS/+upDsF4WAV
 WJM6e/gNXzClhLXD7fzwxhC0qcnPkErJdZQEti6tpXULa2xLKFr6FuVpD4+XQZaxcjB9BeK4n
 H/8wgSsQlXh49wj6BUWQWkkmzkEyahWTSLCQtCxhZVjGqF6cWlaUW6ZrpJRVlpmeU5CZm5uga
 Gpjp5aYWFyemp+YkJhXrJefnbmIExgQDEOxgnHfC/xCjJAeTkigv04Rp4UJ8SfkplRmJxRnxR
 aU5qcWHGGU4OJQkeL8vnB4uJFiUmp5akZaZA4xOmLQEB4+SCK/YIqA0b3FBYm5xZjpE6hSjMc
 eW39fWMnFsm3pvLZMQS15+XqqUOO9+kEkCIKUZpXlwg2BJ4xKjrJQwLyPQaUI8BalFuZklqPK
 vGMU5GJWEeUVAFvJk5pXA7XsFdAoT0CkLeCaDnFKSiJCSamD0vVW3P3qpQL9rnU2L5Om0oLhw
 9u0/RZe+uXVgXc/ra/tUEk4U3i0OXnx6dW+moNHK2REsejrW86Kut79gkjYSenhA5PWUbAvZ/
 CnP0niutNkZLJe13p0nJvq4wNc9+0aRxJGLEoefd+18O8WNq6x19oVyrfPfZgVdaGu5Xj0x58
 /21hQpxnolluKMREMt5qLiRAD4oQrUFQMAAA==
X-Env-Sender: brandon@thinkhuge.net
X-Msg-Ref: server-4.tower-21.messagelabs.com!1469555570!19639992!1
X-Originating-IP: [209.85.192.172]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 2843 invoked from network); 26 Jul 2016 17:52:51 -0000
Received: from mail-pf0-f172.google.com (HELO mail-pf0-f172.google.com)
 (209.85.192.172)
 by server-4.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 26 Jul 2016 17:52:51 -0000
Received: by mail-pf0-f172.google.com with SMTP id x72so1966756pfd.2
 for <win-pv-devel@lists.xenproject.org>; Tue, 26 Jul 2016 10:52:51 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=thinkhuge.net; s=google;
 h=from:to:references:in-reply-to:subject:date:message-id:mime-version
 :content-transfer-encoding:thread-index:content-language;
 bh=wSyx6CcbLhItN3MGbxHjjXHXPp3DuvB8TelxrVtOVZ0=;
 b=aWns11WYvTUeYsXNafJxDCSC1G2Y6MQHSKGhMfN/9a5Bou5mVqrhf9ixTweG4cjRIw
 A1w4Zw43dMvLshRCPislnDTxKLCyTemJfexgsAueVtTloATavHM9d3IT8aH465oSYAkN
 QYDoGB/XxEXilbVmmV7QcinfEMwZFB1vX7ksE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:references:in-reply-to:subject:date
 :message-id:mime-version:content-transfer-encoding:thread-index
 :content-language;
 bh=wSyx6CcbLhItN3MGbxHjjXHXPp3DuvB8TelxrVtOVZ0=;
 b=V0p2zft7p7H7cCwppKRdooMESqWnUh6LBuzc7ynRVJYf8JUGKErMamOF6glORYj4rU
 O7gHncbl2ZtAVX8WeOoCUJoJK9LffgwIw3kpnentDYd73jHi3cw82ynNcYbHlUns835F
 EVh0Ea5ufG+ajb4kc0ZysVhI44G0w8fmPtOLDYJT5g4cgW/BEapBvyz1kacTftELC63R
 0UDrKGCt1et+o7OK3cX/4YfsA+MoRzgqSrbVbsobNkPcYpLco6BRdDR4VkdNmCO3bAi5
 EXRKh5xFPLyHjWWol1kALZf6BRDwlpy2QIsXSQVxTkC4r7tGzjGYeuBPhuMjbm/bUFyR
 8fuA==
X-Gm-Message-State: AEkoout6qT9X/80B3CbCA+xaMwMYnJkY9OKGg69sPuvQGSIxS+uF69fOcI38sslIrGdePGLx
X-Received: by 10.98.34.151 with SMTP id p23mr41928468pfj.102.1469555570006;
 Tue, 26 Jul 2016 10:52:50 -0700 (PDT)
Received: from venus (ip70-170-124-201.lv.lv.cox.net. [70.170.124.201])
 by smtp.googlemail.com with ESMTPSA id q1sm3085113pfd.48.2016.07.26.10.52.48
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Tue, 26 Jul 2016 10:52:48 -0700 (PDT)
From: "Brandon Shoemaker" <brandon@thinkhuge.net>
To: "'Paul Durrant'" <Paul.Durrant@citrix.com>,
 <win-pv-devel@lists.xenproject.org>
References: <08a801d1e760$3f2549a0$bd6fdce0$@thinkhuge.net>
 <c582eb60539340008a1fbc241346ba5e@AMSPEX02CL03.citrite.net>
In-Reply-To: <c582eb60539340008a1fbc241346ba5e@AMSPEX02CL03.citrite.net>
Date: Tue, 26 Jul 2016 10:52:47 -0700
Message-ID: <08bf01d1e766$85a68be0$90f3a3a0$@thinkhuge.net>
MIME-Version: 1.0
X-Mailer: Microsoft Outlook 16.0
Thread-Index: AQHofboCPFqgQ3hplQ/PG/Kuh4UhaAJZGSK9n+sGGUA=
Content-Language: en-us
Subject: Re: [win-pv-devel] Signed 8.1.0 drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

SGV5IFBhdWwgYW5kIGxpc3QsCgpUaGF0IGZpeGVkIGl0ISAgT2theSBzbyBJIHdpbGwgcmVtZW1i
ZXIgdGhhdCBvbmUgdXBkYXRlIGlzIG5lZWRlZCBmb3IgYW55IG5ldyBjbGVhbiBXaW5kb3dzIDIw
MDggUjIgaW5zdGFsbCBub3QgeWV0IHVwZGF0ZWQuCgpTdGlsbCBJIGFtIG5vdCBzdXJlIGFib3V0
IHRoZSByZWFzb24gd2h5IHRoZSBFSkIgZGlnaXRhbCBkcml2ZXIgdW5pbnN0YWxsIGFuZCB1cGRh
dGUgdG8gdGhlc2UgZHJpdmVycyByZXN1bHRlZCBpbiBXaW5kb3dzIDIwMDggUjIgaGFuZ2luZyBm
b3JldmVyIG9uIHJlYm9vdC4gIEkgdGVzdGVkIHRoaXMgdHdpY2Ugd2l0aCB0aGUgc2FtZSByZXN1
bHRzLiAgSSdkIGV4cGVjdCB5b3UgbWF5IHNlZSBzb21lIG90aGVycyBjb21wbGFpbiBvZiBzZWVp
bmcgdGhpcyBwcm9ibGVtIGluIHRoZSBmdXR1cmUuICBNYXliZSBzb21lb25lIHdpdGggbW9yZSB0
aW1lIGFuZCBjYXBhYmlsaXR5IHRoYW4gbWUgY2FuIGxhdGVyIGNvbmZpcm0gYSB3b3JraW5nIHBy
b2NlZHVyZSBmb3IgdXBncmFkaW5nIGZyb20gdGhvc2UgZHJpdmVycyB0byB0aGVzZSBuZXcgZHJp
dmVycyB0aGF0IGNhbiByZXN1bHQgaW4gc3VjY2Vzcy4KCk15IHByb2NlZHVyZSB3YXM6CgoxLiBV
bmluc3RhbGwgdGhlIEVKQiBkaWdpdGFsIGRyaXZlcnMgZnJvbSB0aGUgV2luZG93cyBjb250cm9s
IHBhbmVsCjIuIERvbid0IHJlYm9vdCB5ZXQKMy4gSW5zdGFsbCBhbGwgdGhlIG5ldyBkcml2ZXJz
CjQuIHJlYm9vdAo1LiBJIGZvdW5kIGlmIHlvdSByZWJvb3QgZmlyc3QgYmVmb3JlIGluc3RhbGxp
bmcgdGhlIG5ldyBkcml2ZXJzIHlvdSBlbmQgdXAgd2l0aCBhIGJsdWUgc2NyZWVuCgpNeSBwcm9j
ZWR1cmUgbXVzdCBiZSBpbmNvbXBsZXRlIG9yIGhhdmUgZmxhd3MuCgpUaGFua3MgYWdhaW4gZm9y
IHlvdXIgc3VwcG9ydCBvbiB0aGlzIGxpc3QuCgoKPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t
LQo+IEZyb206IFBhdWwgRHVycmFudAo+IFNlbnQ6IDI2IEp1bHkgMjAxNiAxODoyNAo+IFRvOiAn
QnJhbmRvbiBTaG9lbWFrZXInOyB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKPiBT
dWJqZWN0OiBSRTogW3dpbi1wdi1kZXZlbF0gU2lnbmVkIDguMS4wIGRyaXZlcnMKPiAKPiA+IC0t
LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gPiBGcm9tOiB3aW4tcHYtZGV2ZWwgCj4gPiBbbWFp
bHRvOndpbi1wdi1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnXQo+IE9uCj4gPiBC
ZWhhbGYgT2YgQnJhbmRvbiBTaG9lbWFrZXIKPiA+IFNlbnQ6IDI2IEp1bHkgMjAxNiAxODowOAo+
ID4gVG86IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwo+ID4gU3ViamVjdDogW3dp
bi1wdi1kZXZlbF0gU2lnbmVkIDguMS4wIGRyaXZlcnMKPiA+Cj4gPiBIZWxsbywKPiA+Cj4gPiBJ
IGhhdmUgYmVlbiB3YWl0aW5nIG9uIHRoZXNlIG5ldyBzaWduZWQgZHJpdmVycy4gIFRoYW5rcyBm
b3IgZmluYWxseSAKPiA+IG1ha2luZyB0aGVtIGF2YWlsYWJsZSEKPiA+Cj4gPiBJIGhhdmUgdGVz
dGVkIGFuZCBydW4gaW50byBhIHByb2JsZW1zIHVuZm9ydHVuYXRlbHkgc28gSSB3YW50ZWQgdG8g
Cj4gPiByZXBvcnQgdGhpcy4KPiA+Cj4gPiBGaXJzdCBJIHRyaWVkIHVuaW5zdGFsbGluZyB0aGUg
RUpCIGRpZ2l0YWwgZHJpdmVycwo+ID4gKGVqYnB2X1Zpc3RhMjAwOHg2NF8xLjAuMTEwNS5tc2kp
IGFuZCBpbnN0YWxsaW5nIHRoZXNlIG5ldyBkcml2ZXJzIAo+ID4gb24gV2luZG93cyAyMDA4IFIy
IHg2NCBleGlzdGluZyBWUFMuICBBZnRlciByZWJvb3RpbmcgV2luZG93cyAyMDA4IAo+ID4gUjIK
PiBoYW5ncwo+ID4gZm9yZXZlciBhdCBib290Lgo+ID4KPiA+IFNlY29uZGx5IEkgaGF2ZSBpbnN0
YWxsZWQgYSBjbGVhbiBXaW5kb3dzIDIwMDggUjIgYW5kIHRoZW4gaW5zdGFsbGVkIAo+ID4gYWxs
IHRoZSBkcml2ZXJzIGFuZCB3aGVuIEkgcmVib290IGl0IGdvZXMgaW50byByZWNvdmVyeSBtb2Rl
LiAgSSAKPiA+IGhhcHBlbiB0byBjaGVjayBXaW5kb3dzIGRldmljZSBtYW5hZ2VyIGJlZm9yZSBJ
IHJlYm9vdGVkIGFuZCBJIAo+ID4gbm90aWNlZCB0aGF0IHRoZSAiWGVuIFBWIEJ1cyIgZHJpdmVy
IGhhcyBhIHllbGxvdyB3YXJuaW5nIHN5bWJvbCBhcyBzaG93biBpbiB0aGUgc2NyZWVuc2hvdCA+
Cj4gPiBodHRwczovL3Bvc3RpbWcub3JnL2ltYWdlL3gwOGc3bjR3bi8gICBpdCBzYXlzIGl0IGNh
bm5vdCB2ZXJpZnkgdGhlIGRpZ2l0YWwKPiA+IHNpZ25hdHVyZSBmb3IgdGhlIFhlbiBQViBCdXMg
ZHJpdmVycy4gIE5vdGhpbmcgd2FzIGRvbmUgYnV0IHRoZSAKPiA+IGluc3RhbGwgb2YgV2luZG93
cyBhbmQgdGhlbiBpbW1lZGlhdGUgaW5zdGFsbCBvZiB0aGUgZHJpdmVycy4KPiAKPiBJIHN1c3Bl
Y3QgdGhpcyBpcyBiZWNhdXNlIHRoZSBkcml2ZXJzIGFyZSBzaWduZWQgd2l0aCBTSEEtMjU2IGFu
ZCB5b3UgCj4gbWF5IG5lZWQgYSBob3RmaXggdG8gZW5hYmxlIHZlcmlmaWNhdGlvbiBvZiBrZXJu
ZWwgbW9kZSBkcml2ZXJzIHNpZ25lZCAKPiB3aXRoIGEKPiBTSEEtMjU2IGNlcnQuCgpTcGVjaWZp
Y2FsbHkgc2VlIGh0dHBzOi8vdGVjaG5ldC5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvc2Vj
dXJpdHkvMzAzMzkyOT9mPTI1NSZNU1BQRXJyb3I9LTIxNDcyMTczOTYKCj4gCj4gICBQYXVsCj4g
CgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1w
di1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0
dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1w
di1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Wed Jul 27 09:10:45 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 27 Jul 2016 09:10:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bSKrT-0004o9-FI; Wed, 27 Jul 2016 09:10:43 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bSKrS-0004o3-05
 for win-pv-devel@lists.xenproject.org; Wed, 27 Jul 2016 09:10:42 +0000
Received: from [85.158.139.211] by server-15.bemta-5.messagelabs.com id
 55/DB-12460-19A78975; Wed, 27 Jul 2016 09:10:41 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprJIsWRWlGSWpSXmKPExsVyMfSqo+6Eqhn
 hBp+n8Fr8WZzowOhx+MMVlgDGKNbMvKT8igTWjMcvnjEWfOtnrFje3MPSwHg9sYuRi0NIYBaj
 xNQpB5lBHBaBSywSZzYtZOpi5OSQEHjHIrHzmSuEHSOx7NhLqHiVxIXZv8BsIQFFieZrF9ghJ
 i1lkvi59jArSIJNQF3i9vvF7BANdhKfZt0Es0UEVCWuLT/GBmIzC2hJPNwwjxHEFhYwk3j3ah
 tYDQtQTfO3FywgNq+Au8TMpudsEHPkJPZOXs0ygZF/ASPDKkb14tSistQiXSO9pKLM9IyS3MT
 MHF1DA1O93NTi4sT01JzEpGK95PzcTYzAAGIAgh2M3/84HWKU5GBSEuVd5DgjXIgvKT+lMiOx
 OCO+qDQntfgQowwHh5IE75MKoJxgUWp6akVaZg4wlGHSEhw8SiK8t0DSvMUFibnFmekQqVOMx
 hxbfl9by8Sxbeq9tUxCLHn5ealS4ryfQEoFQEozSvPgBsFi7BKjrJQwLyPQaUI8BalFuZklqP
 KvGMU5GJWEec+DTOHJzCuB2/cK6BQmoFOKY8FOKUlESEk1MGZcL3jM4ZH1Rdz017epEv17Fqx
 WvieXP82xxWDi42XZ/PkuHKdPXmhxfVP2Ltl2wleR6redef/fd9+f5uaotNEg2KxMQtm+mql5
 98mv9mfmHuM+8fXqr30zZRiOBvZPCzE+lW+m5yJw47i09JcjT3q5Q/clH0/z1bsjvOP08p6Xd
 08YpL3cVaXEUpyRaKjFXFScCACivlSZrAIAAA==
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-2.tower-206.messagelabs.com!1469610639!35550204!1
X-Originating-IP: [209.85.213.65]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 10186 invoked from network); 27 Jul 2016 09:10:39 -0000
Received: from mail-vk0-f65.google.com (HELO mail-vk0-f65.google.com)
 (209.85.213.65)
 by server-2.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 27 Jul 2016 09:10:39 -0000
Received: by mail-vk0-f65.google.com with SMTP id x130so259410vkc.2
 for <win-pv-devel@lists.xenproject.org>; Wed, 27 Jul 2016 02:10:39 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=XEUoD2vgR7L6T4BkxHzxXPxYqel1/0A6QFrD/JC4WjA=;
 b=qJ9+gdWzn14OaB5fKwwnwQN+cOH9bvvuUaOeVlfeGKfZCLN/xhQbh4+kQ3iNEz/O8f
 DJE3/034b8LkEgeGQu+hc7Fju/kuF9J/9TRL+zSke6MY0i6A8DG/yaCwt7aiCyAWV8FU
 oy9k/RE2ObINS7d1H5DPy1NFgqLIDCDus7XRL8pVegui257zdjwAyU2kxudrjoKcwRVX
 CGDHvaP+Jm6OfU5XaYCAmijspnJoT3FO+MsbgXVrTqF6RM0bq2UMy3TedsW4kothSCMe
 kxfs3OPMV7jfk4Onx7KSnDpRHykl0IMH7sOaQZt00KSr/fRvukQIiQ0uulJmdaF+EtDs
 injg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=XEUoD2vgR7L6T4BkxHzxXPxYqel1/0A6QFrD/JC4WjA=;
 b=M/gDE4icgdTBCwbcDc/3cN/gQ/gQPNADZuE+QGhHb/JoeGbYRAD8x3sxa40AA/0Svn
 Ed5WEya/SGva9+MurBJQaQ412BRIdDVPIBuD4SwCNih2gZr0vQ7z6JIoJEzzCOFL+0nu
 wUEOEeoPO24hsF/zh0DPvHopHZlqCt32qQhbtC0RT8D3IwFffK+/txdj9NVwFtw/2hNQ
 HC37lC1Ooliiy1GI0xH9EBlsI5OZUL8M/Xaq265crik/GlmUWss2Ts3tuwqC1jn4nroT
 iSQJDNxjWPSyOGqRd/ff/6Z7N0228rt8xS9fd+dY4cucVuUiZRWsPMDUh0Us2AOZ61o9
 juDw==
X-Gm-Message-State: AEkoouuIUkK7kEcZJ0h8uNNmtG2DOZufBVvyVtIJ3HTq9BNbE9NtaiZFfPUaXgF8bEyUhQ==
X-Received: by 10.31.63.197 with SMTP id m188mr10286765vka.19.1469610638759;
 Wed, 27 Jul 2016 02:10:38 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id w67sm779031vkh.6.2016.07.27.02.10.37
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Wed, 27 Jul 2016 02:10:38 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Wed, 27 Jul 2016 10:10:23 +0100
Message-Id: <1469610623-10668-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Fix compatibility with older backends
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhlcmUgd2FzIGEgcHJvYmxlbSB3aGVuIFhFTlZJRiB3YXMgYnJvdWdodCB1cCBvbiBiYWNrZW5k
cyB0aGF0IGRvbid0CmltcGxlbWVudCBhIGNvbnRyb2wgcmluZy4gVGhpcyBwYXRjaCBmaXhlcyB0
aGUgaXNzdWUuCgpSZXBvcnR0ZWQtYnk6IFJhZmFsIFdvamR5bGEgPG9tZWdAaW52aXNpYmxldGhp
bmdzbGFiLmNvbT4KU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0
cml4LmNvbT4KLS0tCiBzcmMveGVudmlmL2NvbnRyb2xsZXIuYyB8IDE0MyArKysrKysrKysrKysr
KystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHNyYy94ZW52aWYvZnJvbnRlbmQu
YyAgIHwgMTE1ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiBzcmMveGVu
dmlmL2Zyb250ZW5kLmggICB8ICAgNSAtLQogc3JjL3hlbnZpZi9yZWNlaXZlci5jICAgfCAgMTgg
LS0tLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDExOSBpbnNlcnRpb25zKCspLCAxNjIgZGVsZXRpb25z
KC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3hlbnZpZi9jb250cm9sbGVyLmMgYi9zcmMveGVudmlmL2Nv
bnRyb2xsZXIuYwppbmRleCAxZDFmMTZlLi5lNTRjOWZjIDEwMDY0NAotLS0gYS9zcmMveGVudmlm
L2NvbnRyb2xsZXIuYworKysgYi9zcmMveGVudmlmL2NvbnRyb2xsZXIuYwpAQCAtNzMsNyArNzMs
NiBAQCBzdHJ1Y3QgX1hFTlZJRl9DT05UUk9MTEVSIHsKICAgICBVTE9ORyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBEcGNzOwogICAgIFVMT05HICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEV2ZW50czsKICAgICBCT09MRUFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICBD
b25uZWN0ZWQ7Ci0gICAgQk9PTEVBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5hYmxl
ZDsKICAgICBVU0hPUlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXF1ZXN0SWQ7CiAg
ICAgc3RydWN0IHhlbl9uZXRpZl9jdHJsX3JlcXVlc3QgICAgICAgUmVxdWVzdDsKICAgICBzdHJ1
Y3QgeGVuX25ldGlmX2N0cmxfcmVzcG9uc2UgICAgICBSZXNwb25zZTsKQEAgLTE5Myw5ICsxOTIs
MTMgQEAgQ29udHJvbGxlclB1dFJlcXVlc3QoCiAgICAgQk9PTEVBTiAgICAgICAgICAgICAgICAg
ICAgICAgICBOb3RpZnk7CiAgICAgTlRTVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICBzdGF0
dXM7CiAKKyAgICBzdGF0dXMgPSBTVEFUVVNfTk9UX1NVUFBPUlRFRDsKKyAgICBpZiAoIUNvbnRy
b2xsZXItPkNvbm5lY3RlZCkKKyAgICAgICAgZ290byBmYWlsMTsKKwogICAgIHN0YXR1cyA9IFNU
QVRVU19JTlNVRkZJQ0lFTlRfUkVTT1VSQ0VTOwogICAgIGlmIChSSU5HX0ZVTEwoJkNvbnRyb2xs
ZXItPkZyb250KSkKLSAgICAgICAgZ290byBmYWlsMTsKKyAgICAgICAgZ290byBmYWlsMjsKIAog
ICAgIENvbnRyb2xsZXItPlJlcXVlc3QudHlwZSA9IFR5cGU7CiAgICAgQ29udHJvbGxlci0+UmVx
dWVzdC5pZCA9IENvbnRyb2xsZXItPlJlcXVlc3RJZCsrOwpAQCAtMjI3LDYgKzIzMCw5IEBAIENv
bnRyb2xsZXJQdXRSZXF1ZXN0KAogCiAgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOwogCitmYWls
MjoKKyAgICBFcnJvcigiZmFpbDJcbiIpOworCiBmYWlsMToKICAgICBFcnJvcigiZmFpbDEgKCUw
OHgpXG4iLCBzdGF0dXMpOwogCkBAIC0zNDAsMTEgKzM0NiwxMSBAQCBDb250cm9sbGVyV2F0Y2hk
b2coCiAgICAgICAgIEtlUmFpc2VJcnFsKERJU1BBVENIX0xFVkVMLCAmSXJxbCk7CiAgICAgICAg
IF9fQ29udHJvbGxlckFjcXVpcmVMb2NrKENvbnRyb2xsZXIpOwogCi0gICAgICAgIGlmIChDb250
cm9sbGVyLT5FbmFibGVkKSB7CisgICAgICAgIGlmIChDb250cm9sbGVyLT5Db25uZWN0ZWQpIHsK
ICAgICAgICAgICAgIEtlTWVtb3J5QmFycmllcigpOwogCiAgICAgICAgICAgICBpZiAoQ29udHJv
bGxlci0+U2hhcmVkLT5yc3BfcHJvZCAhPSByc3BfcHJvZCAmJgotICAgICAgICAgICAgICAgICBD
b250cm9sbGVyLT5Gcm9udC5yc3BfY29ucyA9PSByc3BfY29ucykgeworICAgICAgICAgICAgICAg
IENvbnRyb2xsZXItPkZyb250LnJzcF9jb25zID09IHJzcF9jb25zKSB7CiAgICAgICAgICAgICAg
ICAgWEVOQlVTX0RFQlVHKFRyaWdnZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZD
b250cm9sbGVyLT5EZWJ1Z0ludGVyZmFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Q29udHJvbGxlci0+RGVidWdDYWxsYmFjayk7CkBAIC0zOTIsNyArMzk4LDcgQEAgQ29udHJvbGxl
ckRwYygKIAogICAgIF9fQ29udHJvbGxlckFjcXVpcmVMb2NrKENvbnRyb2xsZXIpOwogCi0gICAg
aWYgKENvbnRyb2xsZXItPkVuYWJsZWQpCisgICAgaWYgKENvbnRyb2xsZXItPkNvbm5lY3RlZCkK
ICAgICAgICAgQ29udHJvbGxlclBvbGwoQ29udHJvbGxlcik7CiAKICAgICBfX0NvbnRyb2xsZXJS
ZWxlYXNlTG9jayhDb250cm9sbGVyKTsKQEAgLTc2NywxNSArNzczLDkgQEAgQ29udHJvbGxlckVu
YWJsZSgKICAgICBJTiAgUFhFTlZJRl9DT05UUk9MTEVSICAgICAgQ29udHJvbGxlcgogICAgICkK
IHsKLSAgICBUcmFjZSgiPT09PT5cbiIpOwotCi0gICAgX19Db250cm9sbGVyQWNxdWlyZUxvY2so
Q29udHJvbGxlcik7CisgICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihDb250cm9sbGVyKTsKIAot
ICAgIENvbnRyb2xsZXItPkVuYWJsZWQgPSBUUlVFOwotCi0gICAgX19Db250cm9sbGVyUmVsZWFz
ZUxvY2soQ29udHJvbGxlcik7Ci0KLSAgICBUcmFjZSgiPD09PT1cbiIpOworICAgIFRyYWNlKCI8
PT09PlxuIik7CiB9CiAKIFZPSUQKQEAgLTc4MywxNSArNzgzLDkgQEAgQ29udHJvbGxlckRpc2Fi
bGUoCiAgICAgSU4gIFBYRU5WSUZfQ09OVFJPTExFUiAgICAgIENvbnRyb2xsZXIKICAgICApCiB7
Ci0gICAgVHJhY2UoIj09PT0+XG4iKTsKLQotICAgIF9fQ29udHJvbGxlckFjcXVpcmVMb2NrKENv
bnRyb2xsZXIpOwotCi0gICAgQ29udHJvbGxlci0+RW5hYmxlZCA9IEZBTFNFOworICAgIFVOUkVG
RVJFTkNFRF9QQVJBTUVURVIoQ29udHJvbGxlcik7CiAKLSAgICBfX0NvbnRyb2xsZXJSZWxlYXNl
TG9jayhDb250cm9sbGVyKTsKLQotICAgIFRyYWNlKCI8PT09PVxuIik7CisgICAgVHJhY2UoIjw9
PT0+XG4iKTsKIH0KIAogVk9JRApAQCAtOTA2LDI5ICs5MDAsMjIgQEAgQ29udHJvbGxlclNldEhh
c2hBbGdvcml0aG0oCiAKICAgICBfX0NvbnRyb2xsZXJBY3F1aXJlTG9jayhDb250cm9sbGVyKTsK
IAotICAgIHN0YXR1cyA9IFNUQVRVU19OT1RfU1VQUE9SVEVEOwotICAgIGlmICghQ29udHJvbGxl
ci0+Q29ubmVjdGVkKQotICAgICAgICBnb3RvIGZhaWwxOwotCiAgICAgc3RhdHVzID0gQ29udHJv
bGxlclB1dFJlcXVlc3QoQ29udHJvbGxlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBYRU5fTkVUSUZfQ1RSTF9UWVBFX1NFVF9IQVNIX0FMR09SSVRITSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBBbGdvcml0aG0sCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKTsKICAg
ICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKLSAgICAgICAgZ290byBmYWlsMjsKKyAgICAgICAg
Z290byBmYWlsMTsKIAogICAgIHN0YXR1cyA9IENvbnRyb2xsZXJHZXRSZXNwb25zZShDb250cm9s
bGVyLCBOVUxMKTsKICAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKLSAgICAgICAgZ290byBm
YWlsMzsKKyAgICAgICAgZ290byBmYWlsMjsKIAogICAgIF9fQ29udHJvbGxlclJlbGVhc2VMb2Nr
KENvbnRyb2xsZXIpOwogCiAgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOwogCi1mYWlsMzoKLSAg
ICBFcnJvcigiZmFpbDNcbiIpOwotCiBmYWlsMjoKICAgICBFcnJvcigiZmFpbDJcbiIpOwogCkBA
IC05NTMsMjkgKzk0MCwyMiBAQCBDb250cm9sbGVyR2V0SGFzaEZsYWdzKAogCiAgICAgX19Db250
cm9sbGVyQWNxdWlyZUxvY2soQ29udHJvbGxlcik7CiAKLSAgICBzdGF0dXMgPSBTVEFUVVNfTk9U
X1NVUFBPUlRFRDsKLSAgICBpZiAoIUNvbnRyb2xsZXItPkVuYWJsZWQpCi0gICAgICAgIGdvdG8g
ZmFpbDE7Ci0KICAgICBzdGF0dXMgPSBDb250cm9sbGVyUHV0UmVxdWVzdChDb250cm9sbGVyLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTl9ORVRJRl9DVFJMX1RZUEVfR0VU
X0hBU0hfRkxBR1MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDApOwogICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQotICAgICAgICBnb3Rv
IGZhaWwyOworICAgICAgICBnb3RvIGZhaWwxOwogCiAgICAgc3RhdHVzID0gQ29udHJvbGxlckdl
dFJlc3BvbnNlKENvbnRyb2xsZXIsIEZsYWdzKTsKICAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVz
KSkKLSAgICAgICAgZ290byBmYWlsMzsKKyAgICAgICAgZ290byBmYWlsMjsKIAogICAgIF9fQ29u
dHJvbGxlclJlbGVhc2VMb2NrKENvbnRyb2xsZXIpOwogCiAgICAgcmV0dXJuIFNUQVRVU19TVUND
RVNTOwogCi1mYWlsMzoKLSAgICBFcnJvcigiZmFpbDNcbiIpOwotCiBmYWlsMjoKICAgICBFcnJv
cigiZmFpbDJcbiIpOwogCkBAIC0xMDAwLDI5ICs5ODAsMjIgQEAgQ29udHJvbGxlclNldEhhc2hG
bGFncygKIAogICAgIF9fQ29udHJvbGxlckFjcXVpcmVMb2NrKENvbnRyb2xsZXIpOwogCi0gICAg
c3RhdHVzID0gU1RBVFVTX05PVF9TVVBQT1JURUQ7Ci0gICAgaWYgKCFDb250cm9sbGVyLT5Db25u
ZWN0ZWQpCi0gICAgICAgIGdvdG8gZmFpbDE7Ci0KICAgICBzdGF0dXMgPSBDb250cm9sbGVyUHV0
UmVxdWVzdChDb250cm9sbGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhF
Tl9ORVRJRl9DVFJMX1RZUEVfU0VUX0hBU0hfRkxBR1MsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgRmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKTsKICAgICBpZiAoIU5UX1NVQ0NF
U1Moc3RhdHVzKSkKLSAgICAgICAgZ290byBmYWlsMjsKKyAgICAgICAgZ290byBmYWlsMTsKIAog
ICAgIHN0YXR1cyA9IENvbnRyb2xsZXJHZXRSZXNwb25zZShDb250cm9sbGVyLCBOVUxMKTsKICAg
ICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKLSAgICAgICAgZ290byBmYWlsMzsKKyAgICAgICAg
Z290byBmYWlsMjsKIAogICAgIF9fQ29udHJvbGxlclJlbGVhc2VMb2NrKENvbnRyb2xsZXIpOwog
CiAgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOwogCi1mYWlsMzoKLSAgICBFcnJvcigiZmFpbDNc
biIpOwotCiBmYWlsMjoKICAgICBFcnJvcigiZmFpbDJcbiIpOwogCkBAIC0xMDUyLDE1ICsxMDI1
LDExIEBAIENvbnRyb2xsZXJTZXRIYXNoS2V5KAogCiAgICAgX19Db250cm9sbGVyQWNxdWlyZUxv
Y2soQ29udHJvbGxlcik7CiAKLSAgICBzdGF0dXMgPSBTVEFUVVNfTk9UX1NVUFBPUlRFRDsKLSAg
ICBpZiAoIUNvbnRyb2xsZXItPkVuYWJsZWQpCi0gICAgICAgIGdvdG8gZmFpbDE7Ci0KICAgICBN
ZGwgPSBfX0FsbG9jYXRlUGFnZSgpOwogCiAgICAgc3RhdHVzID0gU1RBVFVTX05PX01FTU9SWTsK
ICAgICBpZiAoQ29udHJvbGxlci0+TWRsID09IE5VTEwpCi0gICAgICAgIGdvdG8gZmFpbDI7Cisg
ICAgICAgIGdvdG8gZmFpbDE7CiAKICAgICBCdWZmZXIgPSBNbUdldFN5c3RlbUFkZHJlc3NGb3JN
ZGxTYWZlKE1kbCwgTm9ybWFsUGFnZVByaW9yaXR5KTsKICAgICBBU1NFUlQoQnVmZmVyICE9IE5V
TEwpOwpAQCAtMTA3OCw3ICsxMDQ3LDcgQEAgQ29udHJvbGxlclNldEhhc2hLZXkoCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBGQUxTRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICZF
bnRyeSk7CiAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCi0gICAgICAgIGdvdG8gZmFpbDM7
CisgICAgICAgIGdvdG8gZmFpbDI7CiAKICAgICBzdGF0dXMgPSBDb250cm9sbGVyUHV0UmVxdWVz
dChDb250cm9sbGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTl9ORVRJ
Rl9DVFJMX1RZUEVfU0VUX0hBU0hfS0VZLApAQCAtMTA4OCwxMSArMTA1NywxMSBAQCBDb250cm9s
bGVyU2V0SGFzaEtleSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaXplLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDApOwogICAgIGlmICghTlRfU1VDQ0VT
UyhzdGF0dXMpKQotICAgICAgICBnb3RvIGZhaWw0OworICAgICAgICBnb3RvIGZhaWwzOwogCiAg
ICAgc3RhdHVzID0gQ29udHJvbGxlckdldFJlc3BvbnNlKENvbnRyb2xsZXIsIE5VTEwpOwogICAg
IGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQotICAgICAgICBnb3RvIGZhaWw1OworICAgICAgICBn
b3RvIGZhaWw0OwogCiAgICAgKFZPSUQpIFhFTkJVU19HTlRUQUIoUmV2b2tlRm9yZWlnbkFjY2Vz
cywKICAgICAgICAgICAgICAgICAgICAgICAgICAmQ29udHJvbGxlci0+R250dGFiSW50ZXJmYWNl
LApAQCAtMTEwNiwyNiArMTA3NSwyMyBAQCBDb250cm9sbGVyU2V0SGFzaEtleSgKIAogICAgIHJl
dHVybiBTVEFUVVNfU1VDQ0VTUzsKIAotZmFpbDU6Ci0gICAgRXJyb3IoImZhaWw1XG4iKTsKLQog
ZmFpbDQ6CiAgICAgRXJyb3IoImZhaWw0XG4iKTsKIAorZmFpbDM6CisgICAgRXJyb3IoImZhaWwz
XG4iKTsKKwogICAgIChWT0lEKSBYRU5CVVNfR05UVEFCKFJldm9rZUZvcmVpZ25BY2Nlc3MsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgJkNvbnRyb2xsZXItPkdudHRhYkludGVyZmFjZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICBDb250cm9sbGVyLT5HbnR0YWJDYWNoZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICBUUlVFLAogICAgICAgICAgICAgICAgICAgICAgICAgIEVudHJ5KTsK
IAotZmFpbDM6Ci0gICAgRXJyb3IoImZhaWwzXG4iKTsKLQotICAgIF9fRnJlZVBhZ2UoTWRsKTsK
LQogZmFpbDI6CiAgICAgRXJyb3IoImZhaWwyXG4iKTsKIAorICAgIF9fRnJlZVBhZ2UoTWRsKTsK
KwogZmFpbDE6CiAgICAgRXJyb3IoImZhaWwxICglMDh4KVxuIiwgc3RhdHVzKTsKIApAQCAtMTE0
NywyOSArMTExMywyMiBAQCBDb250cm9sbGVyR2V0SGFzaE1hcHBpbmdTaXplKAogCiAgICAgX19D
b250cm9sbGVyQWNxdWlyZUxvY2soQ29udHJvbGxlcik7CiAKLSAgICBzdGF0dXMgPSBTVEFUVVNf
Tk9UX1NVUFBPUlRFRDsKLSAgICBpZiAoIUNvbnRyb2xsZXItPkVuYWJsZWQpCi0gICAgICAgIGdv
dG8gZmFpbDE7Ci0KICAgICBzdGF0dXMgPSBDb250cm9sbGVyUHV0UmVxdWVzdChDb250cm9sbGVy
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTl9ORVRJRl9DVFJMX1RZUEVf
R0VUX0hBU0hfTUFQUElOR19TSVpFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAwKTsKICAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKLSAg
ICAgICAgZ290byBmYWlsMjsKKyAgICAgICAgZ290byBmYWlsMTsKIAogICAgIHN0YXR1cyA9IENv
bnRyb2xsZXJHZXRSZXNwb25zZShDb250cm9sbGVyLCBTaXplKTsKICAgICBpZiAoIU5UX1NVQ0NF
U1Moc3RhdHVzKSkKLSAgICAgICAgZ290byBmYWlsMzsKKyAgICAgICAgZ290byBmYWlsMjsKIAog
ICAgIF9fQ29udHJvbGxlclJlbGVhc2VMb2NrKENvbnRyb2xsZXIpOwogCiAgICAgcmV0dXJuIFNU
QVRVU19TVUNDRVNTOwogCi1mYWlsMzoKLSAgICBFcnJvcigiZmFpbDNcbiIpOwotCiBmYWlsMjoK
ICAgICBFcnJvcigiZmFpbDJcbiIpOwogCkBAIC0xMTk0LDI5ICsxMTUzLDIyIEBAIENvbnRyb2xs
ZXJTZXRIYXNoTWFwcGluZ1NpemUoCiAKICAgICBfX0NvbnRyb2xsZXJBY3F1aXJlTG9jayhDb250
cm9sbGVyKTsKIAotICAgIHN0YXR1cyA9IFNUQVRVU19OT1RfU1VQUE9SVEVEOwotICAgIGlmICgh
Q29udHJvbGxlci0+RW5hYmxlZCkKLSAgICAgICAgZ290byBmYWlsMTsKLQogICAgIHN0YXR1cyA9
IENvbnRyb2xsZXJQdXRSZXF1ZXN0KENvbnRyb2xsZXIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgWEVOX05FVElGX0NUUkxfVFlQRV9TRVRfSEFTSF9NQVBQSU5HX1NJWkUsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2l6ZSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAp
OwogICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQotICAgICAgICBnb3RvIGZhaWwyOworICAg
ICAgICBnb3RvIGZhaWwxOwogCiAgICAgc3RhdHVzID0gQ29udHJvbGxlckdldFJlc3BvbnNlKENv
bnRyb2xsZXIsIE5VTEwpOwogICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQotICAgICAgICBn
b3RvIGZhaWwzOworICAgICAgICBnb3RvIGZhaWwyOwogCiAgICAgX19Db250cm9sbGVyUmVsZWFz
ZUxvY2soQ29udHJvbGxlcik7CiAKICAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7CiAKLWZhaWwz
OgotICAgIEVycm9yKCJmYWlsM1xuIik7Ci0KIGZhaWwyOgogICAgIEVycm9yKCJmYWlsMlxuIik7
CiAKQEAgLTEyNDcsMTkgKzExOTksMTUgQEAgQ29udHJvbGxlclNldEhhc2hNYXBwaW5nKAogCiAg
ICAgX19Db250cm9sbGVyQWNxdWlyZUxvY2soQ29udHJvbGxlcik7CiAKLSAgICBzdGF0dXMgPSBT
VEFUVVNfTk9UX1NVUFBPUlRFRDsKLSAgICBpZiAoIUNvbnRyb2xsZXItPkVuYWJsZWQpCi0gICAg
ICAgIGdvdG8gZmFpbDE7Ci0KICAgICBzdGF0dXMgPSBTVEFUVVNfSU5WQUxJRF9QQVJBTUVURVI7
CiAgICAgaWYgKFNpemUgKiBzaXplb2YgKFVMT05HKSA+IFBBR0VfU0laRSkKLSAgICAgICAgZ290
byBmYWlsMjsKKyAgICAgICAgZ290byBmYWlsMTsKIAogICAgIE1kbCA9IF9fQWxsb2NhdGVQYWdl
KCk7CiAKICAgICBzdGF0dXMgPSBTVEFUVVNfTk9fTUVNT1JZOwogICAgIGlmIChDb250cm9sbGVy
LT5NZGwgPT0gTlVMTCkKLSAgICAgICAgZ290byBmYWlsMzsKKyAgICAgICAgZ290byBmYWlsMjsK
IAogICAgIEJ1ZmZlciA9IE1tR2V0U3lzdGVtQWRkcmVzc0Zvck1kbFNhZmUoTWRsLCBOb3JtYWxQ
YWdlUHJpb3JpdHkpOwogICAgIEFTU0VSVChCdWZmZXIgIT0gTlVMTCk7CkBAIC0xMjc3LDcgKzEy
MjUsNyBAQCBDb250cm9sbGVyU2V0SGFzaE1hcHBpbmcoCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBGQUxTRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICZFbnRyeSk7CiAgICAgaWYg
KCFOVF9TVUNDRVNTKHN0YXR1cykpCi0gICAgICAgIGdvdG8gZmFpbDQ7CisgICAgICAgIGdvdG8g
ZmFpbDM7CiAKICAgICBzdGF0dXMgPSBDb250cm9sbGVyUHV0UmVxdWVzdChDb250cm9sbGVyLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTl9ORVRJRl9DVFJMX1RZUEVfU0VU
X0hBU0hfTUFQUElORywKQEAgLTEyODcsMTEgKzEyMzUsMTEgQEAgQ29udHJvbGxlclNldEhhc2hN
YXBwaW5nKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpemUsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0KTsKICAgICBpZiAoIU5UX1NVQ0NFU1Mo
c3RhdHVzKSkKLSAgICAgICAgZ290byBmYWlsNTsKKyAgICAgICAgZ290byBmYWlsNDsKIAogICAg
IHN0YXR1cyA9IENvbnRyb2xsZXJHZXRSZXNwb25zZShDb250cm9sbGVyLCBOVUxMKTsKICAgICBp
ZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKLSAgICAgICAgZ290byBmYWlsNjsKKyAgICAgICAgZ290
byBmYWlsNTsKIAogICAgIChWT0lEKSBYRU5CVVNfR05UVEFCKFJldm9rZUZvcmVpZ25BY2Nlc3Ms
CiAgICAgICAgICAgICAgICAgICAgICAgICAgJkNvbnRyb2xsZXItPkdudHRhYkludGVyZmFjZSwK
QEAgLTEzMDUsMjYgKzEyNTMsMjMgQEAgQ29udHJvbGxlclNldEhhc2hNYXBwaW5nKAogCiAgICAg
cmV0dXJuIFNUQVRVU19TVUNDRVNTOwogCi1mYWlsNjoKLSAgICBFcnJvcigiZmFpbDZcbiIpOwot
CiBmYWlsNToKICAgICBFcnJvcigiZmFpbDVcbiIpOwogCitmYWlsNDoKKyAgICBFcnJvcigiZmFp
bDRcbiIpOworCiAgICAgKFZPSUQpIFhFTkJVU19HTlRUQUIoUmV2b2tlRm9yZWlnbkFjY2VzcywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAmQ29udHJvbGxlci0+R250dGFiSW50ZXJmYWNlLAog
ICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRyb2xsZXItPkdudHRhYkNhY2hlLAogICAgICAg
ICAgICAgICAgICAgICAgICAgIFRSVUUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgRW50cnkp
OwogCi1mYWlsNDoKLSAgICBFcnJvcigiZmFpbDRcbiIpOwotCi0gICAgX19GcmVlUGFnZShNZGwp
OwotCiBmYWlsMzoKICAgICBFcnJvcigiZmFpbDNcbiIpOwogCisgICAgX19GcmVlUGFnZShNZGwp
OworCiBmYWlsMjoKICAgICBFcnJvcigiZmFpbDJcbiIpOwogCmRpZmYgLS1naXQgYS9zcmMveGVu
dmlmL2Zyb250ZW5kLmMgYi9zcmMveGVudmlmL2Zyb250ZW5kLmMKaW5kZXggMGZiZDY0MC4uNmEy
MDE5ZSAxMDA2NDQKLS0tIGEvc3JjL3hlbnZpZi9mcm9udGVuZC5jCisrKyBiL3NyYy94ZW52aWYv
ZnJvbnRlbmQuYwpAQCAtMTgwOCwxNiArMTgwOCwxNiBAQCBGcm9udGVuZElzU3BsaXQoCiAKIHN0
YXRpYyBGT1JDRUlOTElORSBOVFNUQVRVUwogX19Gcm9udGVuZFVwZGF0ZUhhc2goCi0gICAgSU4g
IFBYRU5WSUZfRlJPTlRFTkQgICAgICAgICAgICAgICAgRnJvbnRlbmQKKyAgICBQWEVOVklGX0ZS
T05URU5EICAgICAgICBGcm9udGVuZCwKKyAgICBQWEVOVklGX0ZST05URU5EX0hBU0ggICBIYXNo
CiAgICAgKQogewotICAgIFBYRU5WSUZfRlJPTlRFTkRfSEFTSCAgICAgICAgICAgICAgIEhhc2gg
PSAmRnJvbnRlbmQtPkhhc2g7Ci0gICAgUFhFTlZJRl9DT05UUk9MTEVSICAgICAgICAgICAgICAg
ICAgQ29udHJvbGxlcjsKLSAgICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBa
ZXJvID0gMDsKLSAgICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaXplOwot
ICAgIFBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hcHBpbmc7Ci0gICAgVUxP
TkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmxhZ3M7Ci0gICAgTlRTVEFUVVMgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOworICAgIFBYRU5WSUZfQ09OVFJPTExFUiAg
ICAgIENvbnRyb2xsZXI7CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgWmVybyA9IDA7Cisg
ICAgVUxPTkcgICAgICAgICAgICAgICAgICAgU2l6ZTsKKyAgICBQVUxPTkcgICAgICAgICAgICAg
ICAgICBNYXBwaW5nOworICAgIFVMT05HICAgICAgICAgICAgICAgICAgIEZsYWdzOworICAgIE5U
U1RBVFVTICAgICAgICAgICAgICAgIHN0YXR1czsKIAogICAgIENvbnRyb2xsZXIgPSBfX0Zyb250
ZW5kR2V0Q29udHJvbGxlcihGcm9udGVuZCk7CiAKQEAgLTE4ODQsMzUgKzE4ODQsMTcgQEAgZmFp
bDE6CiB9CiAKIE5UU1RBVFVTCi1Gcm9udGVuZFVwZGF0ZUhhc2goCi0gICAgSU4gIFBYRU5WSUZf
RlJPTlRFTkQgICAgICAgICAgICAgICAgRnJvbnRlbmQKLSAgICApCi17Ci0gICAgS0lSUUwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgSXJxbDsKLSAgICBOVFNUQVRVUyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdGF0dXM7Ci0KLSAgICBLZUFjcXVpcmVTcGluTG9jaygmRnJvbnRl
bmQtPkxvY2ssICZJcnFsKTsKLSAgICBzdGF0dXMgPSBfX0Zyb250ZW5kVXBkYXRlSGFzaChGcm9u
dGVuZCk7Ci0gICAgS2VSZWxlYXNlU3BpbkxvY2soJkZyb250ZW5kLT5Mb2NrLCBJcnFsKTsKLQot
ICAgIHJldHVybiBzdGF0dXM7Ci19Ci0KLU5UU1RBVFVTCiBGcm9udGVuZFNldEhhc2hBbGdvcml0
aG0oCiAgICAgSU4gIFBYRU5WSUZfRlJPTlRFTkQgICAgICAgICAgICAgICAgRnJvbnRlbmQsCiAg
ICAgSU4gIFhFTlZJRl9QQUNLRVRfSEFTSF9BTEdPUklUSE0gICAgQWxnb3JpdGhtCiAgICAgKQog
ewotICAgIFBYRU5WSUZfRlJPTlRFTkRfSEFTSCAgICAgICAgICAgICAgIEhhc2ggPSAmRnJvbnRl
bmQtPkhhc2g7CisgICAgWEVOVklGX0ZST05URU5EX0hBU0ggICAgICAgICAgICAgICAgSGFzaDsK
ICAgICBLSVJRTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJcnFsOwogICAgIE5UU1RB
VFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czsKIAogICAgIEtlQWNxdWlyZVNw
aW5Mb2NrKCZGcm9udGVuZC0+TG9jaywgJklycWwpOwogCi0gICAgaWYgKEFsZ29yaXRobSA9PSBI
YXNoLT5BbGdvcml0aG0pCi0gICAgICAgIGdvdG8gZG9uZTsKLQogICAgIHN3aXRjaCAoQWxnb3Jp
dGhtKSB7CiAgICAgY2FzZSBYRU5WSUZfUEFDS0VUX0hBU0hfQUxHT1JJVEhNX05PTkU6CiAgICAg
Y2FzZSBYRU5WSUZfUEFDS0VUX0hBU0hfQUxHT1JJVEhNX1VOU1BFQ0lGSUVEOgpAQCAtMTkzNCwx
MyArMTkxNiwyMyBAQCBGcm9udGVuZFNldEhhc2hBbGdvcml0aG0oCiAgICAgICAgICAoQWxnb3Jp
dGhtID09IFhFTlZJRl9QQUNLRVRfSEFTSF9BTEdPUklUSE1fVE9FUExJVFopID8gIlRPRVBMSVRa
IiA6CiAgICAgICAgICAiIik7CiAKLSAgICBIYXNoLT5BbGdvcml0aG0gPSBBbGdvcml0aG07Cisg
ICAgSGFzaCA9IEZyb250ZW5kLT5IYXNoOworCisgICAgSGFzaC5BbGdvcml0aG0gPSBBbGdvcml0
aG07CisKKyAgICBzdGF0dXMgPSBfX0Zyb250ZW5kVXBkYXRlSGFzaChGcm9udGVuZCwgJkhhc2gp
OworICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAgICBnb3RvIGZhaWwyOworCisg
ICAgRnJvbnRlbmQtPkhhc2ggPSBIYXNoOwogCi1kb25lOgogICAgIEtlUmVsZWFzZVNwaW5Mb2Nr
KCZGcm9udGVuZC0+TG9jaywgSXJxbCk7CiAKICAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7CiAK
K2ZhaWwyOgorICAgIEVycm9yKCJmYWlsMlxuIik7CisKIGZhaWwxOgogICAgIEVycm9yKCJmYWls
MSAoJTA4eClcbiIpOwogCkBAIC0xOTk1LDcgKzE5ODcsNyBAQCBGcm9udGVuZFNldEhhc2hNYXBw
aW5nKAogICAgIElOICBVTE9ORyAgICAgICAgICAgICAgIFNpemUKICAgICApCiB7Ci0gICAgUFhF
TlZJRl9GUk9OVEVORF9IQVNIICAgSGFzaCA9ICZGcm9udGVuZC0+SGFzaDsKKyAgICBYRU5WSUZf
RlJPTlRFTkRfSEFTSCAgICBIYXNoOwogICAgIEtJUlFMICAgICAgICAgICAgICAgICAgIElycWw7
CiAgICAgTlRTVEFUVVMgICAgICAgICAgICAgICAgc3RhdHVzOwogCkBAIC0yMDA1LDEzICsxOTk3
LDI0IEBAIEZyb250ZW5kU2V0SGFzaE1hcHBpbmcoCiAgICAgaWYgKFNpemUgPiBYRU5WSUZfRlJP
TlRFTkRfTUFYSU1VTV9IQVNIX01BUFBJTkdfU0laRSkKICAgICAgICAgZ290byBmYWlsMTsKIAot
ICAgIFJ0bENvcHlNZW1vcnkoSGFzaC0+TWFwcGluZywgTWFwcGluZywgc2l6ZW9mIChVTE9ORykg
KiBTaXplKTsKLSAgICBIYXNoLT5TaXplID0gU2l6ZTsKKyAgICBIYXNoID0gRnJvbnRlbmQtPkhh
c2g7CisKKyAgICBSdGxDb3B5TWVtb3J5KEhhc2guTWFwcGluZywgTWFwcGluZywgc2l6ZW9mIChV
TE9ORykgKiBTaXplKTsKKyAgICBIYXNoLlNpemUgPSBTaXplOworCisgICAgc3RhdHVzID0gX19G
cm9udGVuZFVwZGF0ZUhhc2goRnJvbnRlbmQsICZIYXNoKTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Mo
c3RhdHVzKSkKKyAgICAgICAgZ290byBmYWlsMjsKKworICAgIEZyb250ZW5kLT5IYXNoID0gSGFz
aDsKIAogICAgIEtlUmVsZWFzZVNwaW5Mb2NrKCZGcm9udGVuZC0+TG9jaywgSXJxbCk7CiAKICAg
ICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7CiAKK2ZhaWwyOgorICAgIEVycm9yKCJmYWlsMlxuIik7
CisKIGZhaWwxOgogICAgIEVycm9yKCJmYWlsMSAoJTA4eClcbiIsIHN0YXR1cyk7CiAKQEAgLTIw
MjYsMTYgKzIwMjksMzIgQEAgRnJvbnRlbmRTZXRIYXNoS2V5KAogICAgIElOICBQVUNIQVIgICAg
ICAgICAgICAgIEtleQogICAgICkKIHsKLSAgICBQWEVOVklGX0ZST05URU5EX0hBU0ggICBIYXNo
ID0gJkZyb250ZW5kLT5IYXNoOworICAgIFhFTlZJRl9GUk9OVEVORF9IQVNIICAgIEhhc2g7CiAg
ICAgS0lSUUwgICAgICAgICAgICAgICAgICAgSXJxbDsKKyAgICBOVFNUQVRVUyAgICAgICAgICAg
ICAgICBzdGF0dXM7CiAKICAgICBLZUFjcXVpcmVTcGluTG9jaygmRnJvbnRlbmQtPkxvY2ssICZJ
cnFsKTsKIAotICAgIFJ0bENvcHlNZW1vcnkoSGFzaC0+S2V5LCBLZXksIFhFTlZJRl9WSUZfSEFT
SF9LRVlfU0laRSk7CisgICAgSGFzaCA9IEZyb250ZW5kLT5IYXNoOworCisgICAgUnRsQ29weU1l
bW9yeShIYXNoLktleSwgS2V5LCBYRU5WSUZfVklGX0hBU0hfS0VZX1NJWkUpOworCisgICAgc3Rh
dHVzID0gX19Gcm9udGVuZFVwZGF0ZUhhc2goRnJvbnRlbmQsICZIYXNoKTsKKyAgICBpZiAoIU5U
X1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBmYWlsMTsKKworICAgIEZyb250ZW5kLT5I
YXNoID0gSGFzaDsKIAogICAgIEtlUmVsZWFzZVNwaW5Mb2NrKCZGcm9udGVuZC0+TG9jaywgSXJx
bCk7CiAKICAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7CisKK2ZhaWwxOgorICAgIEVycm9yKCJm
YWlsMSAoJTA4eClcbiIsIHN0YXR1cyk7CisKKyAgICBLZVJlbGVhc2VTcGluTG9jaygmRnJvbnRl
bmQtPkxvY2ssIElycWwpOworCisgICAgcmV0dXJuIHN0YXR1czsKIH0KIAogTlRTVEFUVVMKQEAg
LTIwNDQsMTIgKzIwNjMsMTUgQEAgRnJvbnRlbmRTZXRIYXNoVHlwZXMoCiAgICAgSU4gIFVMT05H
ICAgICAgICAgICAgICAgVHlwZXMKICAgICApCiB7Ci0gICAgUFhFTlZJRl9GUk9OVEVORF9IQVNI
ICAgSGFzaCA9ICZGcm9udGVuZC0+SGFzaDsKKyAgICBYRU5WSUZfRlJPTlRFTkRfSEFTSCAgICBI
YXNoOwogICAgIEtJUlFMICAgICAgICAgICAgICAgICAgIElycWw7CiAgICAgVUxPTkcgICAgICAg
ICAgICAgICAgICAgRmxhZ3M7CisgICAgTlRTVEFUVVMgICAgICAgICAgICAgICAgc3RhdHVzOwog
CiAgICAgS2VBY3F1aXJlU3BpbkxvY2soJkZyb250ZW5kLT5Mb2NrLCAmSXJxbCk7CiAKKyAgICBI
YXNoID0gRnJvbnRlbmQtPkhhc2g7CisKICAgICBGbGFncyA9IDA7CiAgICAgaWYgKFR5cGVzICYg
KDEgPDwgWEVOVklGX1BBQ0tFVF9IQVNIX1RZUEVfSVBWNCkpCiAgICAgICAgIEZsYWdzIHw9IFhF
Tl9ORVRJRl9DVFJMX0hBU0hfVFlQRV9JUFY0OwpAQCAtMjA2MCwxMSArMjA4MiwyNCBAQCBGcm9u
dGVuZFNldEhhc2hUeXBlcygKICAgICBpZiAoVHlwZXMgJiAoMSA8PCBYRU5WSUZfUEFDS0VUX0hB
U0hfVFlQRV9JUFY2X1RDUCkpCiAgICAgICAgIEZsYWdzIHw9IFhFTl9ORVRJRl9DVFJMX0hBU0hf
VFlQRV9JUFY2X1RDUDsKIAotICAgIEhhc2gtPkZsYWdzID0gRmxhZ3M7CisgICAgSGFzaC5GbGFn
cyA9IEZsYWdzOworCisgICAgc3RhdHVzID0gX19Gcm9udGVuZFVwZGF0ZUhhc2goRnJvbnRlbmQs
ICZIYXNoKTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBmYWls
MTsKKworICAgIEZyb250ZW5kLT5IYXNoID0gSGFzaDsKIAogICAgIEtlUmVsZWFzZVNwaW5Mb2Nr
KCZGcm9udGVuZC0+TG9jaywgSXJxbCk7CiAKICAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7CisK
K2ZhaWwxOgorICAgIEVycm9yKCJmYWlsMSAoJTA4eClcbiIsIHN0YXR1cyk7CisKKyAgICBLZVJl
bGVhc2VTcGluTG9jaygmRnJvbnRlbmQtPkxvY2ssIElycWwpOworCisgICAgcmV0dXJuIHN0YXR1
czsKIH0KIAogVUxPTkcKQEAgLTIwNzMsMTcgKzIxMDgsMTYgQEAgRnJvbnRlbmRHZXRRdWV1ZSgK
ICAgICBJTiAgVUxPTkcgICAgICAgICAgICAgICBWYWx1ZQogICAgICkKIHsKLSAgICBQWEVOVklG
X0ZST05URU5EX0hBU0ggICBIYXNoID0gJkZyb250ZW5kLT5IYXNoOwogICAgIFVMT05HICAgICAg
ICAgICAgICAgICAgIFF1ZXVlOwogCi0gICAgc3dpdGNoIChIYXNoLT5BbGdvcml0aG0pIHsKKyAg
ICBzd2l0Y2ggKEZyb250ZW5kLT5IYXNoLkFsZ29yaXRobSkgewogICAgIGNhc2UgWEVOVklGX1BB
Q0tFVF9IQVNIX0FMR09SSVRITV9OT05FOgogICAgIGNhc2UgWEVOVklGX1BBQ0tFVF9IQVNIX0FM
R09SSVRITV9VTlNQRUNJRklFRDoKICAgICAgICAgUXVldWUgPSBWYWx1ZSAlIF9fRnJvbnRlbmRH
ZXROdW1RdWV1ZXMoRnJvbnRlbmQpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgWEVOVklG
X1BBQ0tFVF9IQVNIX0FMR09SSVRITV9UT0VQTElUWjoKLSAgICAgICAgUXVldWUgPSBIYXNoLT5N
YXBwaW5nW1ZhbHVlICUgSGFzaC0+U2l6ZV07CisgICAgICAgIFF1ZXVlID0gRnJvbnRlbmQtPkhh
c2guTWFwcGluZ1tWYWx1ZSAlIEZyb250ZW5kLT5IYXNoLlNpemVdOwogICAgICAgICBicmVhazsK
IAogICAgIGRlZmF1bHQ6CkBAIC0yMjI2LDYgKzIyNjAsNyBAQCBhYm9ydDoKICAgICAgICAgICAg
IGJyZWFrOwogCiAgICAgICAgIGNhc2UgWGVuYnVzU3RhdGVDb25uZWN0ZWQ6CisgICAgICAgIGNh
c2UgWGVuYnVzU3RhdGVDbG9zZWQ6CiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBkZWZh
dWx0OgpAQCAtMjM1MCw3ICsyMzg1LDcgQEAgRnJvbnRlbmRFbmFibGUoCiAgICAgaWYgKCFOVF9T
VUNDRVNTKHN0YXR1cykpCiAgICAgICAgIGdvdG8gZmFpbDM7CiAKLSAgICBzdGF0dXMgPSBfX0Zy
b250ZW5kVXBkYXRlSGFzaChGcm9udGVuZCk7CisgICAgc3RhdHVzID0gX19Gcm9udGVuZFVwZGF0
ZUhhc2goRnJvbnRlbmQsICZGcm9udGVuZC0+SGFzaCk7CiAgICAgaWYgKCFOVF9TVUNDRVNTKHN0
YXR1cykpCiAgICAgICAgIGdvdG8gZmFpbDQ7CiAKZGlmZiAtLWdpdCBhL3NyYy94ZW52aWYvZnJv
bnRlbmQuaCBiL3NyYy94ZW52aWYvZnJvbnRlbmQuaAppbmRleCA1MTNlODEyLi4wNmFlNzhhIDEw
MDY0NAotLS0gYS9zcmMveGVudmlmL2Zyb250ZW5kLmgKKysrIGIvc3JjL3hlbnZpZi9mcm9udGVu
ZC5oCkBAIC0yMDYsMTEgKzIwNiw2IEBAIEZyb250ZW5kQWR2ZXJ0aXNlSXBBZGRyZXNzZXMoCiAg
ICAgKTsKIAogZXh0ZXJuIE5UU1RBVFVTCi1Gcm9udGVuZFVwZGF0ZUhhc2goCi0gICAgSU4gIFBY
RU5WSUZfRlJPTlRFTkQgICAgRnJvbnRlbmQKLSAgICApOwotCi1leHRlcm4gTlRTVEFUVVMKIEZy
b250ZW5kU2V0SGFzaEFsZ29yaXRobSgKICAgICBJTiAgUFhFTlZJRl9GUk9OVEVORCAgICAgICAg
ICAgICAgICBGcm9udGVuZCwKICAgICBJTiAgWEVOVklGX1BBQ0tFVF9IQVNIX0FMR09SSVRITSAg
ICBBbGdvcml0aG0KZGlmZiAtLWdpdCBhL3NyYy94ZW52aWYvcmVjZWl2ZXIuYyBiL3NyYy94ZW52
aWYvcmVjZWl2ZXIuYwppbmRleCBmMmQ1N2JhLi5hMzNmOGNlIDEwMDY0NAotLS0gYS9zcmMveGVu
dmlmL3JlY2VpdmVyLmMKKysrIGIvc3JjL3hlbnZpZi9yZWNlaXZlci5jCkBAIC0zNjIxLDE1ICsz
NjIxLDggQEAgUmVjZWl2ZXJTZXRIYXNoQWxnb3JpdGhtKAogICAgIGlmICghTlRfU1VDQ0VTUyhz
dGF0dXMpKQogICAgICAgICBnb3RvIGZhaWwxOwogCi0gICAgc3RhdHVzID0gRnJvbnRlbmRVcGRh
dGVIYXNoKEZyb250ZW5kKTsKLSAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKLSAgICAgICAg
Z290byBmYWlsMjsKLQogICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsKIAotZmFpbDI6Ci0gICAg
RXJyb3IoImZhaWwyXG4iKTsKLQogZmFpbDE6CiAgICAgRXJyb3IoImZhaWwxICglMDh4KVxuIiwg
c3RhdHVzKTsKIApAQCAtMzY5NywxMCArMzY5MCw2IEBAIFJlY2VpdmVyVXBkYXRlSGFzaFBhcmFt
ZXRlcnMoCiAKICAgICBzdGF0dXMgPSBGcm9udGVuZFNldEhhc2hLZXkoRnJvbnRlbmQsIEtleSk7
CiAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCi0gICAgICAgIGdvdG8gZmFpbDE7Ci0KLSAg
ICBzdGF0dXMgPSBGcm9udGVuZFVwZGF0ZUhhc2goRnJvbnRlbmQpOwotICAgIGlmICghTlRfU1VD
Q0VTUyhzdGF0dXMpKQogICAgICAgICBnb3RvIGZhaWwyOwogCiAgICAgcmV0dXJuIFNUQVRVU19T
VUNDRVNTOwpAQCAtMzc0OSwxNyArMzczOCwxMCBAQCBSZWNlaXZlclVwZGF0ZUhhc2hNYXBwaW5n
KAogICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQogICAgICAgICBnb3RvIGZhaWwzOwogCi0g
ICAgc3RhdHVzID0gRnJvbnRlbmRVcGRhdGVIYXNoKEZyb250ZW5kKTsKLSAgICBpZiAoIU5UX1NV
Q0NFU1Moc3RhdHVzKSkKLSAgICAgICAgZ290byBmYWlsNDsKLQogICAgIF9fUmVjZWl2ZXJGcmVl
KFF1ZXVlTWFwcGluZyk7CiAKICAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7CiAKLWZhaWw0Ogot
ICAgIEVycm9yKCJmYWlsNFxuIik7Ci0KIGZhaWwzOgogICAgIEVycm9yKCJmYWlsM1xuIik7CiAK
LS0gCjIuMS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVj
dC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGlu
Zm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Wed Jul 27 09:10:45 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 27 Jul 2016 09:10:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bSKrT-0004o9-FI; Wed, 27 Jul 2016 09:10:43 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bSKrS-0004o3-05
 for win-pv-devel@lists.xenproject.org; Wed, 27 Jul 2016 09:10:42 +0000
Received: from [85.158.139.211] by server-15.bemta-5.messagelabs.com id
 55/DB-12460-19A78975; Wed, 27 Jul 2016 09:10:41 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprJIsWRWlGSWpSXmKPExsVyMfSqo+6Eqhn
 hBp+n8Fr8WZzowOhx+MMVlgDGKNbMvKT8igTWjMcvnjEWfOtnrFje3MPSwHg9sYuRi0NIYBaj
 xNQpB5lBHBaBSywSZzYtZOpi5OSQEHjHIrHzmSuEHSOx7NhLqHiVxIXZv8BsIQFFieZrF9ghJ
 i1lkvi59jArSIJNQF3i9vvF7BANdhKfZt0Es0UEVCWuLT/GBmIzC2hJPNwwjxHEFhYwk3j3ah
 tYDQtQTfO3FywgNq+Au8TMpudsEHPkJPZOXs0ygZF/ASPDKkb14tSistQiXSO9pKLM9IyS3MT
 MHF1DA1O93NTi4sT01JzEpGK95PzcTYzAAGIAgh2M3/84HWKU5GBSEuVd5DgjXIgvKT+lMiOx
 OCO+qDQntfgQowwHh5IE75MKoJxgUWp6akVaZg4wlGHSEhw8SiK8t0DSvMUFibnFmekQqVOMx
 hxbfl9by8Sxbeq9tUxCLHn5ealS4ryfQEoFQEozSvPgBsFi7BKjrJQwLyPQaUI8BalFuZklqP
 KvGMU5GJWEec+DTOHJzCuB2/cK6BQmoFOKY8FOKUlESEk1MGZcL3jM4ZH1Rdz017epEv17Fqx
 WvieXP82xxWDi42XZ/PkuHKdPXmhxfVP2Ltl2wleR6redef/fd9+f5uaotNEg2KxMQtm+mql5
 98mv9mfmHuM+8fXqr30zZRiOBvZPCzE+lW+m5yJw47i09JcjT3q5Q/clH0/z1bsjvOP08p6Xd
 08YpL3cVaXEUpyRaKjFXFScCACivlSZrAIAAA==
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-2.tower-206.messagelabs.com!1469610639!35550204!1
X-Originating-IP: [209.85.213.65]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 10186 invoked from network); 27 Jul 2016 09:10:39 -0000
Received: from mail-vk0-f65.google.com (HELO mail-vk0-f65.google.com)
 (209.85.213.65)
 by server-2.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 27 Jul 2016 09:10:39 -0000
Received: by mail-vk0-f65.google.com with SMTP id x130so259410vkc.2
 for <win-pv-devel@lists.xenproject.org>; Wed, 27 Jul 2016 02:10:39 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=XEUoD2vgR7L6T4BkxHzxXPxYqel1/0A6QFrD/JC4WjA=;
 b=qJ9+gdWzn14OaB5fKwwnwQN+cOH9bvvuUaOeVlfeGKfZCLN/xhQbh4+kQ3iNEz/O8f
 DJE3/034b8LkEgeGQu+hc7Fju/kuF9J/9TRL+zSke6MY0i6A8DG/yaCwt7aiCyAWV8FU
 oy9k/RE2ObINS7d1H5DPy1NFgqLIDCDus7XRL8pVegui257zdjwAyU2kxudrjoKcwRVX
 CGDHvaP+Jm6OfU5XaYCAmijspnJoT3FO+MsbgXVrTqF6RM0bq2UMy3TedsW4kothSCMe
 kxfs3OPMV7jfk4Onx7KSnDpRHykl0IMH7sOaQZt00KSr/fRvukQIiQ0uulJmdaF+EtDs
 injg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=XEUoD2vgR7L6T4BkxHzxXPxYqel1/0A6QFrD/JC4WjA=;
 b=M/gDE4icgdTBCwbcDc/3cN/gQ/gQPNADZuE+QGhHb/JoeGbYRAD8x3sxa40AA/0Svn
 Ed5WEya/SGva9+MurBJQaQ412BRIdDVPIBuD4SwCNih2gZr0vQ7z6JIoJEzzCOFL+0nu
 wUEOEeoPO24hsF/zh0DPvHopHZlqCt32qQhbtC0RT8D3IwFffK+/txdj9NVwFtw/2hNQ
 HC37lC1Ooliiy1GI0xH9EBlsI5OZUL8M/Xaq265crik/GlmUWss2Ts3tuwqC1jn4nroT
 iSQJDNxjWPSyOGqRd/ff/6Z7N0228rt8xS9fd+dY4cucVuUiZRWsPMDUh0Us2AOZ61o9
 juDw==
X-Gm-Message-State: AEkoouuIUkK7kEcZJ0h8uNNmtG2DOZufBVvyVtIJ3HTq9BNbE9NtaiZFfPUaXgF8bEyUhQ==
X-Received: by 10.31.63.197 with SMTP id m188mr10286765vka.19.1469610638759;
 Wed, 27 Jul 2016 02:10:38 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id w67sm779031vkh.6.2016.07.27.02.10.37
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Wed, 27 Jul 2016 02:10:38 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Wed, 27 Jul 2016 10:10:23 +0100
Message-Id: <1469610623-10668-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Fix compatibility with older backends
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhlcmUgd2FzIGEgcHJvYmxlbSB3aGVuIFhFTlZJRiB3YXMgYnJvdWdodCB1cCBvbiBiYWNrZW5k
cyB0aGF0IGRvbid0CmltcGxlbWVudCBhIGNvbnRyb2wgcmluZy4gVGhpcyBwYXRjaCBmaXhlcyB0
aGUgaXNzdWUuCgpSZXBvcnR0ZWQtYnk6IFJhZmFsIFdvamR5bGEgPG9tZWdAaW52aXNpYmxldGhp
bmdzbGFiLmNvbT4KU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0
cml4LmNvbT4KLS0tCiBzcmMveGVudmlmL2NvbnRyb2xsZXIuYyB8IDE0MyArKysrKysrKysrKysr
KystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHNyYy94ZW52aWYvZnJvbnRlbmQu
YyAgIHwgMTE1ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiBzcmMveGVu
dmlmL2Zyb250ZW5kLmggICB8ICAgNSAtLQogc3JjL3hlbnZpZi9yZWNlaXZlci5jICAgfCAgMTgg
LS0tLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDExOSBpbnNlcnRpb25zKCspLCAxNjIgZGVsZXRpb25z
KC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3hlbnZpZi9jb250cm9sbGVyLmMgYi9zcmMveGVudmlmL2Nv
bnRyb2xsZXIuYwppbmRleCAxZDFmMTZlLi5lNTRjOWZjIDEwMDY0NAotLS0gYS9zcmMveGVudmlm
L2NvbnRyb2xsZXIuYworKysgYi9zcmMveGVudmlmL2NvbnRyb2xsZXIuYwpAQCAtNzMsNyArNzMs
NiBAQCBzdHJ1Y3QgX1hFTlZJRl9DT05UUk9MTEVSIHsKICAgICBVTE9ORyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBEcGNzOwogICAgIFVMT05HICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEV2ZW50czsKICAgICBCT09MRUFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICBD
b25uZWN0ZWQ7Ci0gICAgQk9PTEVBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5hYmxl
ZDsKICAgICBVU0hPUlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXF1ZXN0SWQ7CiAg
ICAgc3RydWN0IHhlbl9uZXRpZl9jdHJsX3JlcXVlc3QgICAgICAgUmVxdWVzdDsKICAgICBzdHJ1
Y3QgeGVuX25ldGlmX2N0cmxfcmVzcG9uc2UgICAgICBSZXNwb25zZTsKQEAgLTE5Myw5ICsxOTIs
MTMgQEAgQ29udHJvbGxlclB1dFJlcXVlc3QoCiAgICAgQk9PTEVBTiAgICAgICAgICAgICAgICAg
ICAgICAgICBOb3RpZnk7CiAgICAgTlRTVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICBzdGF0
dXM7CiAKKyAgICBzdGF0dXMgPSBTVEFUVVNfTk9UX1NVUFBPUlRFRDsKKyAgICBpZiAoIUNvbnRy
b2xsZXItPkNvbm5lY3RlZCkKKyAgICAgICAgZ290byBmYWlsMTsKKwogICAgIHN0YXR1cyA9IFNU
QVRVU19JTlNVRkZJQ0lFTlRfUkVTT1VSQ0VTOwogICAgIGlmIChSSU5HX0ZVTEwoJkNvbnRyb2xs
ZXItPkZyb250KSkKLSAgICAgICAgZ290byBmYWlsMTsKKyAgICAgICAgZ290byBmYWlsMjsKIAog
ICAgIENvbnRyb2xsZXItPlJlcXVlc3QudHlwZSA9IFR5cGU7CiAgICAgQ29udHJvbGxlci0+UmVx
dWVzdC5pZCA9IENvbnRyb2xsZXItPlJlcXVlc3RJZCsrOwpAQCAtMjI3LDYgKzIzMCw5IEBAIENv
bnRyb2xsZXJQdXRSZXF1ZXN0KAogCiAgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOwogCitmYWls
MjoKKyAgICBFcnJvcigiZmFpbDJcbiIpOworCiBmYWlsMToKICAgICBFcnJvcigiZmFpbDEgKCUw
OHgpXG4iLCBzdGF0dXMpOwogCkBAIC0zNDAsMTEgKzM0NiwxMSBAQCBDb250cm9sbGVyV2F0Y2hk
b2coCiAgICAgICAgIEtlUmFpc2VJcnFsKERJU1BBVENIX0xFVkVMLCAmSXJxbCk7CiAgICAgICAg
IF9fQ29udHJvbGxlckFjcXVpcmVMb2NrKENvbnRyb2xsZXIpOwogCi0gICAgICAgIGlmIChDb250
cm9sbGVyLT5FbmFibGVkKSB7CisgICAgICAgIGlmIChDb250cm9sbGVyLT5Db25uZWN0ZWQpIHsK
ICAgICAgICAgICAgIEtlTWVtb3J5QmFycmllcigpOwogCiAgICAgICAgICAgICBpZiAoQ29udHJv
bGxlci0+U2hhcmVkLT5yc3BfcHJvZCAhPSByc3BfcHJvZCAmJgotICAgICAgICAgICAgICAgICBD
b250cm9sbGVyLT5Gcm9udC5yc3BfY29ucyA9PSByc3BfY29ucykgeworICAgICAgICAgICAgICAg
IENvbnRyb2xsZXItPkZyb250LnJzcF9jb25zID09IHJzcF9jb25zKSB7CiAgICAgICAgICAgICAg
ICAgWEVOQlVTX0RFQlVHKFRyaWdnZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZD
b250cm9sbGVyLT5EZWJ1Z0ludGVyZmFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Q29udHJvbGxlci0+RGVidWdDYWxsYmFjayk7CkBAIC0zOTIsNyArMzk4LDcgQEAgQ29udHJvbGxl
ckRwYygKIAogICAgIF9fQ29udHJvbGxlckFjcXVpcmVMb2NrKENvbnRyb2xsZXIpOwogCi0gICAg
aWYgKENvbnRyb2xsZXItPkVuYWJsZWQpCisgICAgaWYgKENvbnRyb2xsZXItPkNvbm5lY3RlZCkK
ICAgICAgICAgQ29udHJvbGxlclBvbGwoQ29udHJvbGxlcik7CiAKICAgICBfX0NvbnRyb2xsZXJS
ZWxlYXNlTG9jayhDb250cm9sbGVyKTsKQEAgLTc2NywxNSArNzczLDkgQEAgQ29udHJvbGxlckVu
YWJsZSgKICAgICBJTiAgUFhFTlZJRl9DT05UUk9MTEVSICAgICAgQ29udHJvbGxlcgogICAgICkK
IHsKLSAgICBUcmFjZSgiPT09PT5cbiIpOwotCi0gICAgX19Db250cm9sbGVyQWNxdWlyZUxvY2so
Q29udHJvbGxlcik7CisgICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihDb250cm9sbGVyKTsKIAot
ICAgIENvbnRyb2xsZXItPkVuYWJsZWQgPSBUUlVFOwotCi0gICAgX19Db250cm9sbGVyUmVsZWFz
ZUxvY2soQ29udHJvbGxlcik7Ci0KLSAgICBUcmFjZSgiPD09PT1cbiIpOworICAgIFRyYWNlKCI8
PT09PlxuIik7CiB9CiAKIFZPSUQKQEAgLTc4MywxNSArNzgzLDkgQEAgQ29udHJvbGxlckRpc2Fi
bGUoCiAgICAgSU4gIFBYRU5WSUZfQ09OVFJPTExFUiAgICAgIENvbnRyb2xsZXIKICAgICApCiB7
Ci0gICAgVHJhY2UoIj09PT0+XG4iKTsKLQotICAgIF9fQ29udHJvbGxlckFjcXVpcmVMb2NrKENv
bnRyb2xsZXIpOwotCi0gICAgQ29udHJvbGxlci0+RW5hYmxlZCA9IEZBTFNFOworICAgIFVOUkVG
RVJFTkNFRF9QQVJBTUVURVIoQ29udHJvbGxlcik7CiAKLSAgICBfX0NvbnRyb2xsZXJSZWxlYXNl
TG9jayhDb250cm9sbGVyKTsKLQotICAgIFRyYWNlKCI8PT09PVxuIik7CisgICAgVHJhY2UoIjw9
PT0+XG4iKTsKIH0KIAogVk9JRApAQCAtOTA2LDI5ICs5MDAsMjIgQEAgQ29udHJvbGxlclNldEhh
c2hBbGdvcml0aG0oCiAKICAgICBfX0NvbnRyb2xsZXJBY3F1aXJlTG9jayhDb250cm9sbGVyKTsK
IAotICAgIHN0YXR1cyA9IFNUQVRVU19OT1RfU1VQUE9SVEVEOwotICAgIGlmICghQ29udHJvbGxl
ci0+Q29ubmVjdGVkKQotICAgICAgICBnb3RvIGZhaWwxOwotCiAgICAgc3RhdHVzID0gQ29udHJv
bGxlclB1dFJlcXVlc3QoQ29udHJvbGxlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBYRU5fTkVUSUZfQ1RSTF9UWVBFX1NFVF9IQVNIX0FMR09SSVRITSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBBbGdvcml0aG0sCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKTsKICAg
ICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKLSAgICAgICAgZ290byBmYWlsMjsKKyAgICAgICAg
Z290byBmYWlsMTsKIAogICAgIHN0YXR1cyA9IENvbnRyb2xsZXJHZXRSZXNwb25zZShDb250cm9s
bGVyLCBOVUxMKTsKICAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKLSAgICAgICAgZ290byBm
YWlsMzsKKyAgICAgICAgZ290byBmYWlsMjsKIAogICAgIF9fQ29udHJvbGxlclJlbGVhc2VMb2Nr
KENvbnRyb2xsZXIpOwogCiAgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOwogCi1mYWlsMzoKLSAg
ICBFcnJvcigiZmFpbDNcbiIpOwotCiBmYWlsMjoKICAgICBFcnJvcigiZmFpbDJcbiIpOwogCkBA
IC05NTMsMjkgKzk0MCwyMiBAQCBDb250cm9sbGVyR2V0SGFzaEZsYWdzKAogCiAgICAgX19Db250
cm9sbGVyQWNxdWlyZUxvY2soQ29udHJvbGxlcik7CiAKLSAgICBzdGF0dXMgPSBTVEFUVVNfTk9U
X1NVUFBPUlRFRDsKLSAgICBpZiAoIUNvbnRyb2xsZXItPkVuYWJsZWQpCi0gICAgICAgIGdvdG8g
ZmFpbDE7Ci0KICAgICBzdGF0dXMgPSBDb250cm9sbGVyUHV0UmVxdWVzdChDb250cm9sbGVyLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTl9ORVRJRl9DVFJMX1RZUEVfR0VU
X0hBU0hfRkxBR1MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDApOwogICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQotICAgICAgICBnb3Rv
IGZhaWwyOworICAgICAgICBnb3RvIGZhaWwxOwogCiAgICAgc3RhdHVzID0gQ29udHJvbGxlckdl
dFJlc3BvbnNlKENvbnRyb2xsZXIsIEZsYWdzKTsKICAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVz
KSkKLSAgICAgICAgZ290byBmYWlsMzsKKyAgICAgICAgZ290byBmYWlsMjsKIAogICAgIF9fQ29u
dHJvbGxlclJlbGVhc2VMb2NrKENvbnRyb2xsZXIpOwogCiAgICAgcmV0dXJuIFNUQVRVU19TVUND
RVNTOwogCi1mYWlsMzoKLSAgICBFcnJvcigiZmFpbDNcbiIpOwotCiBmYWlsMjoKICAgICBFcnJv
cigiZmFpbDJcbiIpOwogCkBAIC0xMDAwLDI5ICs5ODAsMjIgQEAgQ29udHJvbGxlclNldEhhc2hG
bGFncygKIAogICAgIF9fQ29udHJvbGxlckFjcXVpcmVMb2NrKENvbnRyb2xsZXIpOwogCi0gICAg
c3RhdHVzID0gU1RBVFVTX05PVF9TVVBQT1JURUQ7Ci0gICAgaWYgKCFDb250cm9sbGVyLT5Db25u
ZWN0ZWQpCi0gICAgICAgIGdvdG8gZmFpbDE7Ci0KICAgICBzdGF0dXMgPSBDb250cm9sbGVyUHV0
UmVxdWVzdChDb250cm9sbGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhF
Tl9ORVRJRl9DVFJMX1RZUEVfU0VUX0hBU0hfRkxBR1MsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgRmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKTsKICAgICBpZiAoIU5UX1NVQ0NF
U1Moc3RhdHVzKSkKLSAgICAgICAgZ290byBmYWlsMjsKKyAgICAgICAgZ290byBmYWlsMTsKIAog
ICAgIHN0YXR1cyA9IENvbnRyb2xsZXJHZXRSZXNwb25zZShDb250cm9sbGVyLCBOVUxMKTsKICAg
ICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKLSAgICAgICAgZ290byBmYWlsMzsKKyAgICAgICAg
Z290byBmYWlsMjsKIAogICAgIF9fQ29udHJvbGxlclJlbGVhc2VMb2NrKENvbnRyb2xsZXIpOwog
CiAgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOwogCi1mYWlsMzoKLSAgICBFcnJvcigiZmFpbDNc
biIpOwotCiBmYWlsMjoKICAgICBFcnJvcigiZmFpbDJcbiIpOwogCkBAIC0xMDUyLDE1ICsxMDI1
LDExIEBAIENvbnRyb2xsZXJTZXRIYXNoS2V5KAogCiAgICAgX19Db250cm9sbGVyQWNxdWlyZUxv
Y2soQ29udHJvbGxlcik7CiAKLSAgICBzdGF0dXMgPSBTVEFUVVNfTk9UX1NVUFBPUlRFRDsKLSAg
ICBpZiAoIUNvbnRyb2xsZXItPkVuYWJsZWQpCi0gICAgICAgIGdvdG8gZmFpbDE7Ci0KICAgICBN
ZGwgPSBfX0FsbG9jYXRlUGFnZSgpOwogCiAgICAgc3RhdHVzID0gU1RBVFVTX05PX01FTU9SWTsK
ICAgICBpZiAoQ29udHJvbGxlci0+TWRsID09IE5VTEwpCi0gICAgICAgIGdvdG8gZmFpbDI7Cisg
ICAgICAgIGdvdG8gZmFpbDE7CiAKICAgICBCdWZmZXIgPSBNbUdldFN5c3RlbUFkZHJlc3NGb3JN
ZGxTYWZlKE1kbCwgTm9ybWFsUGFnZVByaW9yaXR5KTsKICAgICBBU1NFUlQoQnVmZmVyICE9IE5V
TEwpOwpAQCAtMTA3OCw3ICsxMDQ3LDcgQEAgQ29udHJvbGxlclNldEhhc2hLZXkoCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBGQUxTRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICZF
bnRyeSk7CiAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCi0gICAgICAgIGdvdG8gZmFpbDM7
CisgICAgICAgIGdvdG8gZmFpbDI7CiAKICAgICBzdGF0dXMgPSBDb250cm9sbGVyUHV0UmVxdWVz
dChDb250cm9sbGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTl9ORVRJ
Rl9DVFJMX1RZUEVfU0VUX0hBU0hfS0VZLApAQCAtMTA4OCwxMSArMTA1NywxMSBAQCBDb250cm9s
bGVyU2V0SGFzaEtleSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaXplLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDApOwogICAgIGlmICghTlRfU1VDQ0VT
UyhzdGF0dXMpKQotICAgICAgICBnb3RvIGZhaWw0OworICAgICAgICBnb3RvIGZhaWwzOwogCiAg
ICAgc3RhdHVzID0gQ29udHJvbGxlckdldFJlc3BvbnNlKENvbnRyb2xsZXIsIE5VTEwpOwogICAg
IGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQotICAgICAgICBnb3RvIGZhaWw1OworICAgICAgICBn
b3RvIGZhaWw0OwogCiAgICAgKFZPSUQpIFhFTkJVU19HTlRUQUIoUmV2b2tlRm9yZWlnbkFjY2Vz
cywKICAgICAgICAgICAgICAgICAgICAgICAgICAmQ29udHJvbGxlci0+R250dGFiSW50ZXJmYWNl
LApAQCAtMTEwNiwyNiArMTA3NSwyMyBAQCBDb250cm9sbGVyU2V0SGFzaEtleSgKIAogICAgIHJl
dHVybiBTVEFUVVNfU1VDQ0VTUzsKIAotZmFpbDU6Ci0gICAgRXJyb3IoImZhaWw1XG4iKTsKLQog
ZmFpbDQ6CiAgICAgRXJyb3IoImZhaWw0XG4iKTsKIAorZmFpbDM6CisgICAgRXJyb3IoImZhaWwz
XG4iKTsKKwogICAgIChWT0lEKSBYRU5CVVNfR05UVEFCKFJldm9rZUZvcmVpZ25BY2Nlc3MsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgJkNvbnRyb2xsZXItPkdudHRhYkludGVyZmFjZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICBDb250cm9sbGVyLT5HbnR0YWJDYWNoZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICBUUlVFLAogICAgICAgICAgICAgICAgICAgICAgICAgIEVudHJ5KTsK
IAotZmFpbDM6Ci0gICAgRXJyb3IoImZhaWwzXG4iKTsKLQotICAgIF9fRnJlZVBhZ2UoTWRsKTsK
LQogZmFpbDI6CiAgICAgRXJyb3IoImZhaWwyXG4iKTsKIAorICAgIF9fRnJlZVBhZ2UoTWRsKTsK
KwogZmFpbDE6CiAgICAgRXJyb3IoImZhaWwxICglMDh4KVxuIiwgc3RhdHVzKTsKIApAQCAtMTE0
NywyOSArMTExMywyMiBAQCBDb250cm9sbGVyR2V0SGFzaE1hcHBpbmdTaXplKAogCiAgICAgX19D
b250cm9sbGVyQWNxdWlyZUxvY2soQ29udHJvbGxlcik7CiAKLSAgICBzdGF0dXMgPSBTVEFUVVNf
Tk9UX1NVUFBPUlRFRDsKLSAgICBpZiAoIUNvbnRyb2xsZXItPkVuYWJsZWQpCi0gICAgICAgIGdv
dG8gZmFpbDE7Ci0KICAgICBzdGF0dXMgPSBDb250cm9sbGVyUHV0UmVxdWVzdChDb250cm9sbGVy
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTl9ORVRJRl9DVFJMX1RZUEVf
R0VUX0hBU0hfTUFQUElOR19TSVpFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAwKTsKICAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKLSAg
ICAgICAgZ290byBmYWlsMjsKKyAgICAgICAgZ290byBmYWlsMTsKIAogICAgIHN0YXR1cyA9IENv
bnRyb2xsZXJHZXRSZXNwb25zZShDb250cm9sbGVyLCBTaXplKTsKICAgICBpZiAoIU5UX1NVQ0NF
U1Moc3RhdHVzKSkKLSAgICAgICAgZ290byBmYWlsMzsKKyAgICAgICAgZ290byBmYWlsMjsKIAog
ICAgIF9fQ29udHJvbGxlclJlbGVhc2VMb2NrKENvbnRyb2xsZXIpOwogCiAgICAgcmV0dXJuIFNU
QVRVU19TVUNDRVNTOwogCi1mYWlsMzoKLSAgICBFcnJvcigiZmFpbDNcbiIpOwotCiBmYWlsMjoK
ICAgICBFcnJvcigiZmFpbDJcbiIpOwogCkBAIC0xMTk0LDI5ICsxMTUzLDIyIEBAIENvbnRyb2xs
ZXJTZXRIYXNoTWFwcGluZ1NpemUoCiAKICAgICBfX0NvbnRyb2xsZXJBY3F1aXJlTG9jayhDb250
cm9sbGVyKTsKIAotICAgIHN0YXR1cyA9IFNUQVRVU19OT1RfU1VQUE9SVEVEOwotICAgIGlmICgh
Q29udHJvbGxlci0+RW5hYmxlZCkKLSAgICAgICAgZ290byBmYWlsMTsKLQogICAgIHN0YXR1cyA9
IENvbnRyb2xsZXJQdXRSZXF1ZXN0KENvbnRyb2xsZXIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgWEVOX05FVElGX0NUUkxfVFlQRV9TRVRfSEFTSF9NQVBQSU5HX1NJWkUsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2l6ZSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAp
OwogICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQotICAgICAgICBnb3RvIGZhaWwyOworICAg
ICAgICBnb3RvIGZhaWwxOwogCiAgICAgc3RhdHVzID0gQ29udHJvbGxlckdldFJlc3BvbnNlKENv
bnRyb2xsZXIsIE5VTEwpOwogICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQotICAgICAgICBn
b3RvIGZhaWwzOworICAgICAgICBnb3RvIGZhaWwyOwogCiAgICAgX19Db250cm9sbGVyUmVsZWFz
ZUxvY2soQ29udHJvbGxlcik7CiAKICAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7CiAKLWZhaWwz
OgotICAgIEVycm9yKCJmYWlsM1xuIik7Ci0KIGZhaWwyOgogICAgIEVycm9yKCJmYWlsMlxuIik7
CiAKQEAgLTEyNDcsMTkgKzExOTksMTUgQEAgQ29udHJvbGxlclNldEhhc2hNYXBwaW5nKAogCiAg
ICAgX19Db250cm9sbGVyQWNxdWlyZUxvY2soQ29udHJvbGxlcik7CiAKLSAgICBzdGF0dXMgPSBT
VEFUVVNfTk9UX1NVUFBPUlRFRDsKLSAgICBpZiAoIUNvbnRyb2xsZXItPkVuYWJsZWQpCi0gICAg
ICAgIGdvdG8gZmFpbDE7Ci0KICAgICBzdGF0dXMgPSBTVEFUVVNfSU5WQUxJRF9QQVJBTUVURVI7
CiAgICAgaWYgKFNpemUgKiBzaXplb2YgKFVMT05HKSA+IFBBR0VfU0laRSkKLSAgICAgICAgZ290
byBmYWlsMjsKKyAgICAgICAgZ290byBmYWlsMTsKIAogICAgIE1kbCA9IF9fQWxsb2NhdGVQYWdl
KCk7CiAKICAgICBzdGF0dXMgPSBTVEFUVVNfTk9fTUVNT1JZOwogICAgIGlmIChDb250cm9sbGVy
LT5NZGwgPT0gTlVMTCkKLSAgICAgICAgZ290byBmYWlsMzsKKyAgICAgICAgZ290byBmYWlsMjsK
IAogICAgIEJ1ZmZlciA9IE1tR2V0U3lzdGVtQWRkcmVzc0Zvck1kbFNhZmUoTWRsLCBOb3JtYWxQ
YWdlUHJpb3JpdHkpOwogICAgIEFTU0VSVChCdWZmZXIgIT0gTlVMTCk7CkBAIC0xMjc3LDcgKzEy
MjUsNyBAQCBDb250cm9sbGVyU2V0SGFzaE1hcHBpbmcoCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBGQUxTRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICZFbnRyeSk7CiAgICAgaWYg
KCFOVF9TVUNDRVNTKHN0YXR1cykpCi0gICAgICAgIGdvdG8gZmFpbDQ7CisgICAgICAgIGdvdG8g
ZmFpbDM7CiAKICAgICBzdGF0dXMgPSBDb250cm9sbGVyUHV0UmVxdWVzdChDb250cm9sbGVyLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTl9ORVRJRl9DVFJMX1RZUEVfU0VU
X0hBU0hfTUFQUElORywKQEAgLTEyODcsMTEgKzEyMzUsMTEgQEAgQ29udHJvbGxlclNldEhhc2hN
YXBwaW5nKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpemUsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0KTsKICAgICBpZiAoIU5UX1NVQ0NFU1Mo
c3RhdHVzKSkKLSAgICAgICAgZ290byBmYWlsNTsKKyAgICAgICAgZ290byBmYWlsNDsKIAogICAg
IHN0YXR1cyA9IENvbnRyb2xsZXJHZXRSZXNwb25zZShDb250cm9sbGVyLCBOVUxMKTsKICAgICBp
ZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKLSAgICAgICAgZ290byBmYWlsNjsKKyAgICAgICAgZ290
byBmYWlsNTsKIAogICAgIChWT0lEKSBYRU5CVVNfR05UVEFCKFJldm9rZUZvcmVpZ25BY2Nlc3Ms
CiAgICAgICAgICAgICAgICAgICAgICAgICAgJkNvbnRyb2xsZXItPkdudHRhYkludGVyZmFjZSwK
QEAgLTEzMDUsMjYgKzEyNTMsMjMgQEAgQ29udHJvbGxlclNldEhhc2hNYXBwaW5nKAogCiAgICAg
cmV0dXJuIFNUQVRVU19TVUNDRVNTOwogCi1mYWlsNjoKLSAgICBFcnJvcigiZmFpbDZcbiIpOwot
CiBmYWlsNToKICAgICBFcnJvcigiZmFpbDVcbiIpOwogCitmYWlsNDoKKyAgICBFcnJvcigiZmFp
bDRcbiIpOworCiAgICAgKFZPSUQpIFhFTkJVU19HTlRUQUIoUmV2b2tlRm9yZWlnbkFjY2VzcywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAmQ29udHJvbGxlci0+R250dGFiSW50ZXJmYWNlLAog
ICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRyb2xsZXItPkdudHRhYkNhY2hlLAogICAgICAg
ICAgICAgICAgICAgICAgICAgIFRSVUUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgRW50cnkp
OwogCi1mYWlsNDoKLSAgICBFcnJvcigiZmFpbDRcbiIpOwotCi0gICAgX19GcmVlUGFnZShNZGwp
OwotCiBmYWlsMzoKICAgICBFcnJvcigiZmFpbDNcbiIpOwogCisgICAgX19GcmVlUGFnZShNZGwp
OworCiBmYWlsMjoKICAgICBFcnJvcigiZmFpbDJcbiIpOwogCmRpZmYgLS1naXQgYS9zcmMveGVu
dmlmL2Zyb250ZW5kLmMgYi9zcmMveGVudmlmL2Zyb250ZW5kLmMKaW5kZXggMGZiZDY0MC4uNmEy
MDE5ZSAxMDA2NDQKLS0tIGEvc3JjL3hlbnZpZi9mcm9udGVuZC5jCisrKyBiL3NyYy94ZW52aWYv
ZnJvbnRlbmQuYwpAQCAtMTgwOCwxNiArMTgwOCwxNiBAQCBGcm9udGVuZElzU3BsaXQoCiAKIHN0
YXRpYyBGT1JDRUlOTElORSBOVFNUQVRVUwogX19Gcm9udGVuZFVwZGF0ZUhhc2goCi0gICAgSU4g
IFBYRU5WSUZfRlJPTlRFTkQgICAgICAgICAgICAgICAgRnJvbnRlbmQKKyAgICBQWEVOVklGX0ZS
T05URU5EICAgICAgICBGcm9udGVuZCwKKyAgICBQWEVOVklGX0ZST05URU5EX0hBU0ggICBIYXNo
CiAgICAgKQogewotICAgIFBYRU5WSUZfRlJPTlRFTkRfSEFTSCAgICAgICAgICAgICAgIEhhc2gg
PSAmRnJvbnRlbmQtPkhhc2g7Ci0gICAgUFhFTlZJRl9DT05UUk9MTEVSICAgICAgICAgICAgICAg
ICAgQ29udHJvbGxlcjsKLSAgICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBa
ZXJvID0gMDsKLSAgICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaXplOwot
ICAgIFBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hcHBpbmc7Ci0gICAgVUxP
TkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmxhZ3M7Ci0gICAgTlRTVEFUVVMgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOworICAgIFBYRU5WSUZfQ09OVFJPTExFUiAg
ICAgIENvbnRyb2xsZXI7CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgWmVybyA9IDA7Cisg
ICAgVUxPTkcgICAgICAgICAgICAgICAgICAgU2l6ZTsKKyAgICBQVUxPTkcgICAgICAgICAgICAg
ICAgICBNYXBwaW5nOworICAgIFVMT05HICAgICAgICAgICAgICAgICAgIEZsYWdzOworICAgIE5U
U1RBVFVTICAgICAgICAgICAgICAgIHN0YXR1czsKIAogICAgIENvbnRyb2xsZXIgPSBfX0Zyb250
ZW5kR2V0Q29udHJvbGxlcihGcm9udGVuZCk7CiAKQEAgLTE4ODQsMzUgKzE4ODQsMTcgQEAgZmFp
bDE6CiB9CiAKIE5UU1RBVFVTCi1Gcm9udGVuZFVwZGF0ZUhhc2goCi0gICAgSU4gIFBYRU5WSUZf
RlJPTlRFTkQgICAgICAgICAgICAgICAgRnJvbnRlbmQKLSAgICApCi17Ci0gICAgS0lSUUwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgSXJxbDsKLSAgICBOVFNUQVRVUyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdGF0dXM7Ci0KLSAgICBLZUFjcXVpcmVTcGluTG9jaygmRnJvbnRl
bmQtPkxvY2ssICZJcnFsKTsKLSAgICBzdGF0dXMgPSBfX0Zyb250ZW5kVXBkYXRlSGFzaChGcm9u
dGVuZCk7Ci0gICAgS2VSZWxlYXNlU3BpbkxvY2soJkZyb250ZW5kLT5Mb2NrLCBJcnFsKTsKLQot
ICAgIHJldHVybiBzdGF0dXM7Ci19Ci0KLU5UU1RBVFVTCiBGcm9udGVuZFNldEhhc2hBbGdvcml0
aG0oCiAgICAgSU4gIFBYRU5WSUZfRlJPTlRFTkQgICAgICAgICAgICAgICAgRnJvbnRlbmQsCiAg
ICAgSU4gIFhFTlZJRl9QQUNLRVRfSEFTSF9BTEdPUklUSE0gICAgQWxnb3JpdGhtCiAgICAgKQog
ewotICAgIFBYRU5WSUZfRlJPTlRFTkRfSEFTSCAgICAgICAgICAgICAgIEhhc2ggPSAmRnJvbnRl
bmQtPkhhc2g7CisgICAgWEVOVklGX0ZST05URU5EX0hBU0ggICAgICAgICAgICAgICAgSGFzaDsK
ICAgICBLSVJRTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJcnFsOwogICAgIE5UU1RB
VFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czsKIAogICAgIEtlQWNxdWlyZVNw
aW5Mb2NrKCZGcm9udGVuZC0+TG9jaywgJklycWwpOwogCi0gICAgaWYgKEFsZ29yaXRobSA9PSBI
YXNoLT5BbGdvcml0aG0pCi0gICAgICAgIGdvdG8gZG9uZTsKLQogICAgIHN3aXRjaCAoQWxnb3Jp
dGhtKSB7CiAgICAgY2FzZSBYRU5WSUZfUEFDS0VUX0hBU0hfQUxHT1JJVEhNX05PTkU6CiAgICAg
Y2FzZSBYRU5WSUZfUEFDS0VUX0hBU0hfQUxHT1JJVEhNX1VOU1BFQ0lGSUVEOgpAQCAtMTkzNCwx
MyArMTkxNiwyMyBAQCBGcm9udGVuZFNldEhhc2hBbGdvcml0aG0oCiAgICAgICAgICAoQWxnb3Jp
dGhtID09IFhFTlZJRl9QQUNLRVRfSEFTSF9BTEdPUklUSE1fVE9FUExJVFopID8gIlRPRVBMSVRa
IiA6CiAgICAgICAgICAiIik7CiAKLSAgICBIYXNoLT5BbGdvcml0aG0gPSBBbGdvcml0aG07Cisg
ICAgSGFzaCA9IEZyb250ZW5kLT5IYXNoOworCisgICAgSGFzaC5BbGdvcml0aG0gPSBBbGdvcml0
aG07CisKKyAgICBzdGF0dXMgPSBfX0Zyb250ZW5kVXBkYXRlSGFzaChGcm9udGVuZCwgJkhhc2gp
OworICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAgICBnb3RvIGZhaWwyOworCisg
ICAgRnJvbnRlbmQtPkhhc2ggPSBIYXNoOwogCi1kb25lOgogICAgIEtlUmVsZWFzZVNwaW5Mb2Nr
KCZGcm9udGVuZC0+TG9jaywgSXJxbCk7CiAKICAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7CiAK
K2ZhaWwyOgorICAgIEVycm9yKCJmYWlsMlxuIik7CisKIGZhaWwxOgogICAgIEVycm9yKCJmYWls
MSAoJTA4eClcbiIpOwogCkBAIC0xOTk1LDcgKzE5ODcsNyBAQCBGcm9udGVuZFNldEhhc2hNYXBw
aW5nKAogICAgIElOICBVTE9ORyAgICAgICAgICAgICAgIFNpemUKICAgICApCiB7Ci0gICAgUFhF
TlZJRl9GUk9OVEVORF9IQVNIICAgSGFzaCA9ICZGcm9udGVuZC0+SGFzaDsKKyAgICBYRU5WSUZf
RlJPTlRFTkRfSEFTSCAgICBIYXNoOwogICAgIEtJUlFMICAgICAgICAgICAgICAgICAgIElycWw7
CiAgICAgTlRTVEFUVVMgICAgICAgICAgICAgICAgc3RhdHVzOwogCkBAIC0yMDA1LDEzICsxOTk3
LDI0IEBAIEZyb250ZW5kU2V0SGFzaE1hcHBpbmcoCiAgICAgaWYgKFNpemUgPiBYRU5WSUZfRlJP
TlRFTkRfTUFYSU1VTV9IQVNIX01BUFBJTkdfU0laRSkKICAgICAgICAgZ290byBmYWlsMTsKIAot
ICAgIFJ0bENvcHlNZW1vcnkoSGFzaC0+TWFwcGluZywgTWFwcGluZywgc2l6ZW9mIChVTE9ORykg
KiBTaXplKTsKLSAgICBIYXNoLT5TaXplID0gU2l6ZTsKKyAgICBIYXNoID0gRnJvbnRlbmQtPkhh
c2g7CisKKyAgICBSdGxDb3B5TWVtb3J5KEhhc2guTWFwcGluZywgTWFwcGluZywgc2l6ZW9mIChV
TE9ORykgKiBTaXplKTsKKyAgICBIYXNoLlNpemUgPSBTaXplOworCisgICAgc3RhdHVzID0gX19G
cm9udGVuZFVwZGF0ZUhhc2goRnJvbnRlbmQsICZIYXNoKTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Mo
c3RhdHVzKSkKKyAgICAgICAgZ290byBmYWlsMjsKKworICAgIEZyb250ZW5kLT5IYXNoID0gSGFz
aDsKIAogICAgIEtlUmVsZWFzZVNwaW5Mb2NrKCZGcm9udGVuZC0+TG9jaywgSXJxbCk7CiAKICAg
ICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7CiAKK2ZhaWwyOgorICAgIEVycm9yKCJmYWlsMlxuIik7
CisKIGZhaWwxOgogICAgIEVycm9yKCJmYWlsMSAoJTA4eClcbiIsIHN0YXR1cyk7CiAKQEAgLTIw
MjYsMTYgKzIwMjksMzIgQEAgRnJvbnRlbmRTZXRIYXNoS2V5KAogICAgIElOICBQVUNIQVIgICAg
ICAgICAgICAgIEtleQogICAgICkKIHsKLSAgICBQWEVOVklGX0ZST05URU5EX0hBU0ggICBIYXNo
ID0gJkZyb250ZW5kLT5IYXNoOworICAgIFhFTlZJRl9GUk9OVEVORF9IQVNIICAgIEhhc2g7CiAg
ICAgS0lSUUwgICAgICAgICAgICAgICAgICAgSXJxbDsKKyAgICBOVFNUQVRVUyAgICAgICAgICAg
ICAgICBzdGF0dXM7CiAKICAgICBLZUFjcXVpcmVTcGluTG9jaygmRnJvbnRlbmQtPkxvY2ssICZJ
cnFsKTsKIAotICAgIFJ0bENvcHlNZW1vcnkoSGFzaC0+S2V5LCBLZXksIFhFTlZJRl9WSUZfSEFT
SF9LRVlfU0laRSk7CisgICAgSGFzaCA9IEZyb250ZW5kLT5IYXNoOworCisgICAgUnRsQ29weU1l
bW9yeShIYXNoLktleSwgS2V5LCBYRU5WSUZfVklGX0hBU0hfS0VZX1NJWkUpOworCisgICAgc3Rh
dHVzID0gX19Gcm9udGVuZFVwZGF0ZUhhc2goRnJvbnRlbmQsICZIYXNoKTsKKyAgICBpZiAoIU5U
X1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBmYWlsMTsKKworICAgIEZyb250ZW5kLT5I
YXNoID0gSGFzaDsKIAogICAgIEtlUmVsZWFzZVNwaW5Mb2NrKCZGcm9udGVuZC0+TG9jaywgSXJx
bCk7CiAKICAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7CisKK2ZhaWwxOgorICAgIEVycm9yKCJm
YWlsMSAoJTA4eClcbiIsIHN0YXR1cyk7CisKKyAgICBLZVJlbGVhc2VTcGluTG9jaygmRnJvbnRl
bmQtPkxvY2ssIElycWwpOworCisgICAgcmV0dXJuIHN0YXR1czsKIH0KIAogTlRTVEFUVVMKQEAg
LTIwNDQsMTIgKzIwNjMsMTUgQEAgRnJvbnRlbmRTZXRIYXNoVHlwZXMoCiAgICAgSU4gIFVMT05H
ICAgICAgICAgICAgICAgVHlwZXMKICAgICApCiB7Ci0gICAgUFhFTlZJRl9GUk9OVEVORF9IQVNI
ICAgSGFzaCA9ICZGcm9udGVuZC0+SGFzaDsKKyAgICBYRU5WSUZfRlJPTlRFTkRfSEFTSCAgICBI
YXNoOwogICAgIEtJUlFMICAgICAgICAgICAgICAgICAgIElycWw7CiAgICAgVUxPTkcgICAgICAg
ICAgICAgICAgICAgRmxhZ3M7CisgICAgTlRTVEFUVVMgICAgICAgICAgICAgICAgc3RhdHVzOwog
CiAgICAgS2VBY3F1aXJlU3BpbkxvY2soJkZyb250ZW5kLT5Mb2NrLCAmSXJxbCk7CiAKKyAgICBI
YXNoID0gRnJvbnRlbmQtPkhhc2g7CisKICAgICBGbGFncyA9IDA7CiAgICAgaWYgKFR5cGVzICYg
KDEgPDwgWEVOVklGX1BBQ0tFVF9IQVNIX1RZUEVfSVBWNCkpCiAgICAgICAgIEZsYWdzIHw9IFhF
Tl9ORVRJRl9DVFJMX0hBU0hfVFlQRV9JUFY0OwpAQCAtMjA2MCwxMSArMjA4MiwyNCBAQCBGcm9u
dGVuZFNldEhhc2hUeXBlcygKICAgICBpZiAoVHlwZXMgJiAoMSA8PCBYRU5WSUZfUEFDS0VUX0hB
U0hfVFlQRV9JUFY2X1RDUCkpCiAgICAgICAgIEZsYWdzIHw9IFhFTl9ORVRJRl9DVFJMX0hBU0hf
VFlQRV9JUFY2X1RDUDsKIAotICAgIEhhc2gtPkZsYWdzID0gRmxhZ3M7CisgICAgSGFzaC5GbGFn
cyA9IEZsYWdzOworCisgICAgc3RhdHVzID0gX19Gcm9udGVuZFVwZGF0ZUhhc2goRnJvbnRlbmQs
ICZIYXNoKTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBmYWls
MTsKKworICAgIEZyb250ZW5kLT5IYXNoID0gSGFzaDsKIAogICAgIEtlUmVsZWFzZVNwaW5Mb2Nr
KCZGcm9udGVuZC0+TG9jaywgSXJxbCk7CiAKICAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7CisK
K2ZhaWwxOgorICAgIEVycm9yKCJmYWlsMSAoJTA4eClcbiIsIHN0YXR1cyk7CisKKyAgICBLZVJl
bGVhc2VTcGluTG9jaygmRnJvbnRlbmQtPkxvY2ssIElycWwpOworCisgICAgcmV0dXJuIHN0YXR1
czsKIH0KIAogVUxPTkcKQEAgLTIwNzMsMTcgKzIxMDgsMTYgQEAgRnJvbnRlbmRHZXRRdWV1ZSgK
ICAgICBJTiAgVUxPTkcgICAgICAgICAgICAgICBWYWx1ZQogICAgICkKIHsKLSAgICBQWEVOVklG
X0ZST05URU5EX0hBU0ggICBIYXNoID0gJkZyb250ZW5kLT5IYXNoOwogICAgIFVMT05HICAgICAg
ICAgICAgICAgICAgIFF1ZXVlOwogCi0gICAgc3dpdGNoIChIYXNoLT5BbGdvcml0aG0pIHsKKyAg
ICBzd2l0Y2ggKEZyb250ZW5kLT5IYXNoLkFsZ29yaXRobSkgewogICAgIGNhc2UgWEVOVklGX1BB
Q0tFVF9IQVNIX0FMR09SSVRITV9OT05FOgogICAgIGNhc2UgWEVOVklGX1BBQ0tFVF9IQVNIX0FM
R09SSVRITV9VTlNQRUNJRklFRDoKICAgICAgICAgUXVldWUgPSBWYWx1ZSAlIF9fRnJvbnRlbmRH
ZXROdW1RdWV1ZXMoRnJvbnRlbmQpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgWEVOVklG
X1BBQ0tFVF9IQVNIX0FMR09SSVRITV9UT0VQTElUWjoKLSAgICAgICAgUXVldWUgPSBIYXNoLT5N
YXBwaW5nW1ZhbHVlICUgSGFzaC0+U2l6ZV07CisgICAgICAgIFF1ZXVlID0gRnJvbnRlbmQtPkhh
c2guTWFwcGluZ1tWYWx1ZSAlIEZyb250ZW5kLT5IYXNoLlNpemVdOwogICAgICAgICBicmVhazsK
IAogICAgIGRlZmF1bHQ6CkBAIC0yMjI2LDYgKzIyNjAsNyBAQCBhYm9ydDoKICAgICAgICAgICAg
IGJyZWFrOwogCiAgICAgICAgIGNhc2UgWGVuYnVzU3RhdGVDb25uZWN0ZWQ6CisgICAgICAgIGNh
c2UgWGVuYnVzU3RhdGVDbG9zZWQ6CiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBkZWZh
dWx0OgpAQCAtMjM1MCw3ICsyMzg1LDcgQEAgRnJvbnRlbmRFbmFibGUoCiAgICAgaWYgKCFOVF9T
VUNDRVNTKHN0YXR1cykpCiAgICAgICAgIGdvdG8gZmFpbDM7CiAKLSAgICBzdGF0dXMgPSBfX0Zy
b250ZW5kVXBkYXRlSGFzaChGcm9udGVuZCk7CisgICAgc3RhdHVzID0gX19Gcm9udGVuZFVwZGF0
ZUhhc2goRnJvbnRlbmQsICZGcm9udGVuZC0+SGFzaCk7CiAgICAgaWYgKCFOVF9TVUNDRVNTKHN0
YXR1cykpCiAgICAgICAgIGdvdG8gZmFpbDQ7CiAKZGlmZiAtLWdpdCBhL3NyYy94ZW52aWYvZnJv
bnRlbmQuaCBiL3NyYy94ZW52aWYvZnJvbnRlbmQuaAppbmRleCA1MTNlODEyLi4wNmFlNzhhIDEw
MDY0NAotLS0gYS9zcmMveGVudmlmL2Zyb250ZW5kLmgKKysrIGIvc3JjL3hlbnZpZi9mcm9udGVu
ZC5oCkBAIC0yMDYsMTEgKzIwNiw2IEBAIEZyb250ZW5kQWR2ZXJ0aXNlSXBBZGRyZXNzZXMoCiAg
ICAgKTsKIAogZXh0ZXJuIE5UU1RBVFVTCi1Gcm9udGVuZFVwZGF0ZUhhc2goCi0gICAgSU4gIFBY
RU5WSUZfRlJPTlRFTkQgICAgRnJvbnRlbmQKLSAgICApOwotCi1leHRlcm4gTlRTVEFUVVMKIEZy
b250ZW5kU2V0SGFzaEFsZ29yaXRobSgKICAgICBJTiAgUFhFTlZJRl9GUk9OVEVORCAgICAgICAg
ICAgICAgICBGcm9udGVuZCwKICAgICBJTiAgWEVOVklGX1BBQ0tFVF9IQVNIX0FMR09SSVRITSAg
ICBBbGdvcml0aG0KZGlmZiAtLWdpdCBhL3NyYy94ZW52aWYvcmVjZWl2ZXIuYyBiL3NyYy94ZW52
aWYvcmVjZWl2ZXIuYwppbmRleCBmMmQ1N2JhLi5hMzNmOGNlIDEwMDY0NAotLS0gYS9zcmMveGVu
dmlmL3JlY2VpdmVyLmMKKysrIGIvc3JjL3hlbnZpZi9yZWNlaXZlci5jCkBAIC0zNjIxLDE1ICsz
NjIxLDggQEAgUmVjZWl2ZXJTZXRIYXNoQWxnb3JpdGhtKAogICAgIGlmICghTlRfU1VDQ0VTUyhz
dGF0dXMpKQogICAgICAgICBnb3RvIGZhaWwxOwogCi0gICAgc3RhdHVzID0gRnJvbnRlbmRVcGRh
dGVIYXNoKEZyb250ZW5kKTsKLSAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKLSAgICAgICAg
Z290byBmYWlsMjsKLQogICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsKIAotZmFpbDI6Ci0gICAg
RXJyb3IoImZhaWwyXG4iKTsKLQogZmFpbDE6CiAgICAgRXJyb3IoImZhaWwxICglMDh4KVxuIiwg
c3RhdHVzKTsKIApAQCAtMzY5NywxMCArMzY5MCw2IEBAIFJlY2VpdmVyVXBkYXRlSGFzaFBhcmFt
ZXRlcnMoCiAKICAgICBzdGF0dXMgPSBGcm9udGVuZFNldEhhc2hLZXkoRnJvbnRlbmQsIEtleSk7
CiAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCi0gICAgICAgIGdvdG8gZmFpbDE7Ci0KLSAg
ICBzdGF0dXMgPSBGcm9udGVuZFVwZGF0ZUhhc2goRnJvbnRlbmQpOwotICAgIGlmICghTlRfU1VD
Q0VTUyhzdGF0dXMpKQogICAgICAgICBnb3RvIGZhaWwyOwogCiAgICAgcmV0dXJuIFNUQVRVU19T
VUNDRVNTOwpAQCAtMzc0OSwxNyArMzczOCwxMCBAQCBSZWNlaXZlclVwZGF0ZUhhc2hNYXBwaW5n
KAogICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQogICAgICAgICBnb3RvIGZhaWwzOwogCi0g
ICAgc3RhdHVzID0gRnJvbnRlbmRVcGRhdGVIYXNoKEZyb250ZW5kKTsKLSAgICBpZiAoIU5UX1NV
Q0NFU1Moc3RhdHVzKSkKLSAgICAgICAgZ290byBmYWlsNDsKLQogICAgIF9fUmVjZWl2ZXJGcmVl
KFF1ZXVlTWFwcGluZyk7CiAKICAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7CiAKLWZhaWw0Ogot
ICAgIEVycm9yKCJmYWlsNFxuIik7Ci0KIGZhaWwzOgogICAgIEVycm9yKCJmYWlsM1xuIik7CiAK
LS0gCjIuMS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVj
dC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGlu
Zm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Wed Jul 27 09:56:02 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 27 Jul 2016 09:56:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bSLZJ-0007W2-Kn; Wed, 27 Jul 2016 09:56:01 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bSLZI-0007Vv-RO
 for win-pv-devel@lists.xensource.com; Wed, 27 Jul 2016 09:56:00 +0000
Received: from [85.158.139.211] by server-3.bemta-5.messagelabs.com id
 A5/61-12946-03588975; Wed, 27 Jul 2016 09:56:00 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprMIsWRWlGSWpSXmKPExsXiVRvkrKvfOiP
 cYGennMXn2c0sDowe2/t2sQcwRrFm5iXlVySwZlzf/4m5YJZbRcvbM8wNjB9Muhi5OIQEZjFK
 HO44xQTisAhcYpHoPn+KHcSREHjHIvF390nWLkZOICdG4mnjSaAqDiC7WmLFeSGQsJCAokTzt
 QvsEJNWMEmc73rBCJJgE1CXuP1+MTtEr53Ep1k3wWwRARWJr4c+gtnMAloSDzfMA6sXFtCWuL
 7/IJjNIqAqMet+B1gNr4C7xJyZm6DmyEnsnbyaZQIj/wJGhlWM6sWpRWWpRbpmeklFmekZJbm
 JmTm6hgamermpxcWJ6ak5iUnFesn5uZsYgQHEAAQ7GKc2OB9ilORgUhLlXeQ4I1yILyk/pTIj
 sTgjvqg0J7X4EKMMB4eSBC9DC1BOsCg1PbUiLTMHGMowaQkOHiURXnmQNG9xQWJucWY6ROoUo
 y7Hlqn31jIJseTl56VKifPObgYqEgApyijNgxsBi6tLjLJSwryMQEcJ8RSkFuVmlqDKv2IU52
 BUEuaVBlnFk5lXArfpFdARTEBHFMeCHVGSiJCSamBcUnPc2PifdMzrKUpJ2Sxsv80/6B1ZO5t
 /cVTDkUMql606VJK/nVPOWW1t+nvhqQfbCwUnHjBZtsaNfa37Lf7ZhuFzL3E16u6dWh0tsJG7
 m7WfzSu17NL/h076YdO1Kz9krI7m4ZSV3zu77OAlg01Z6Vu3/Ou9wiomkBbpzJ13zN8701PnL
 5sSS3FGoqEWc1FxIgDzEHRlpgIAAA==
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-8.tower-206.messagelabs.com!1469613359!51400609!1
X-Originating-IP: [74.125.82.67]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 17815 invoked from network); 27 Jul 2016 09:55:59 -0000
Received: from mail-wm0-f67.google.com (HELO mail-wm0-f67.google.com)
 (74.125.82.67)
 by server-8.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 27 Jul 2016 09:55:59 -0000
Received: by mail-wm0-f67.google.com with SMTP id q128so5636690wma.1
 for <win-pv-devel@lists.xensource.com>; Wed, 27 Jul 2016 02:55:59 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=47bPlCdkM2dj9wYK3QdCaGCt6/Kr5MHM5zZZuC3BdHU=;
 b=N91gVJaBI7/y9avZBCHqAtUrEFuhdAnudjZhsfRQgqAwPXJXH7l2D97C29JnFCWKN3
 RukJPjZII1W4qcoZY5cOAoC3MVbzMSNSzBmxh706p6NuXdtJyptShP2oYDTPBAY+t55X
 yRx85uS/Bb9CA82QV61zczleH8d0XTkBfU9KaGcGv++BagKMxeufg1YYSpAMGKRv7YQb
 4zz+p0TthhnkGKLXJY7Fml8Of5k+iDfz+Vg1Ac/TobXaDSEpplcoheoFHskGyWvjpTay
 rjdVix2d+BRuT+EY7E97UD9s9PQvnN+nGJp2sBnoM5U7u1s6kuYNainMyvLNrBbsoWiu
 SsQA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=47bPlCdkM2dj9wYK3QdCaGCt6/Kr5MHM5zZZuC3BdHU=;
 b=jLvR+nDuTqm72YQtxbV+owticajGVz4yrUr2kLO2jCSuIv7bfqJCqPd+c+AoiBfnMS
 s54rXeBzpzH36jkRzBYF8Y6eZGOgp6SYsiLEUg+1gtDZBRrsaBuzTGvqyhoSlUgkaGkQ
 2nGl1Mjd4S7x5PlS//cSqkQpE0jC3q1+3q5vKr1wpHNv/tH3dIGA2SxgYkc9eNOvGtmt
 OSE9L2f7pFw5j8gyZZLdAoiCD2btIC4eyz/gr65apjHp90CaqeR4spzF28LUzTb32pC/
 cFSgah9OyYhRsph9TFZ9Q7nO7m02wad0aCeiKzDTO63/RvvP1D0U2b+NsZKasgEKoofe
 ZxdQ==
X-Gm-Message-State: AEkoouuIS7LMx6qnIYDmBcoylhdnl10izJIgjW4ebWKAYG3dt05pvEwyu+mY0ODphhQJoQ==
X-Received: by 10.194.96.205 with SMTP id du13mr27546297wjb.89.1469613358940; 
 Wed, 27 Jul 2016 02:55:58 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id x133sm6252616wmf.16.2016.07.27.02.55.57
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Wed, 27 Jul 2016 02:55:58 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xensource.com
Date: Wed, 27 Jul 2016 10:55:45 +0100
Message-Id: <1469613345-15520-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] XENBUS_MONITOR refinements
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VXNlIGEgc3RyaW5nIHRhYmxlIGZvciB0aGUgZGlhbG9nIG1lc3NhZ2UgcmF0aGVyIHRoYW4gY29k
aW5nIGl0IGlubGluZS4KQWxzbywgdHJpbSB0aGUgRGlzcGxheU5hbWUgcHVsbGVkIGZyb20gdGhl
IHJlZ2lzdHJ5IGJlY2F1c2UgV2luZG93cyAxMApzZWVtcyB0byBwcmVmaXggaXQgd2l0aCB1c2Vs
ZXNzIHRhZ3MuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRy
aXguY29tPgotLS0KIHNyYy9tb25pdG9yL21lc3NhZ2VzLm1jICAgICAgIHwgMzAgKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrCiBzcmMvbW9uaXRvci9tb25pdG9yLmMgICAgICAgICB8IDM3
ICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIHNyYy9tb25pdG9yL3N0cmlu
Z3MuaCAgICAgICAgIHwgMzcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog
c3JjL21vbml0b3Ivc3RyaW5ncy5yYyAgICAgICAgfCAzNyArKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrCiBzcmMvbW9uaXRvci94ZW5idXNfbW9uaXRvci5yYyB8ICAyICstCiA1
IGZpbGVzIGNoYW5nZWQsIDEzMiBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBzcmMvbW9uaXRvci9zdHJpbmdzLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz
cmMvbW9uaXRvci9zdHJpbmdzLnJjCgpkaWZmIC0tZ2l0IGEvc3JjL21vbml0b3IvbWVzc2FnZXMu
bWMgYi9zcmMvbW9uaXRvci9tZXNzYWdlcy5tYwppbmRleCBhYjQ5MjQzLi45ZmZmMTM1IDEwMDY0
NAotLS0gYS9zcmMvbW9uaXRvci9tZXNzYWdlcy5tYworKysgYi9zcmMvbW9uaXRvci9tZXNzYWdl
cy5tYwpAQCAtMSwzICsxLDMzIEBACis7IC8vIENvcHlyaWdodCAoYykgQ2l0cml4IFN5c3RlbXMg
SW5jLgorOyAvLyBBbGwgcmlnaHRzIHJlc2VydmVkLgorOyAvLworOyAvLyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLAorOyAvLyB3aXRoIG9yIHdpdGhv
dXQgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkCis7IC8vIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Cis7IC8vCis7IC8vICogICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCis7IC8vICAgICBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlCis7IC8vICAgICBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKzsgLy8gKiAgIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKzsgLy8gICAgIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUKKzsgLy8gICAgIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlcgorOyAvLyAgICAgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKzsgLy8KKzsgLy8gVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5ECis7IC8vIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsCis7IC8v
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
Cis7IC8vIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCis7IC8vIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQg
SE9MREVSIE9SCis7IC8vIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorOyAvLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLAorOyAvLyBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKzsgLy8gU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworOyAvLyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKKzsgLy8gV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCis7IC8vIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KzsgLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRgorOyAvLyBTVUNIIERBTUFHRS4KKwogTWVzc2FnZUlkVHlwZWRlZj1EV09SRAogCiBTZXZl
cml0eU5hbWVzPSgKZGlmZiAtLWdpdCBhL3NyYy9tb25pdG9yL21vbml0b3IuYyBiL3NyYy9tb25p
dG9yL21vbml0b3IuYwppbmRleCA5ZTQ1NTVmLi45YTRmNGY5IDEwMDY0NAotLS0gYS9zcmMvbW9u
aXRvci9tb25pdG9yLmMKKysrIGIvc3JjL21vbml0b3IvbW9uaXRvci5jCkBAIC00MCw2ICs0MCw3
IEBACiAjaW5jbHVkZSA8dmVyc2lvbi5oPgogCiAjaW5jbHVkZSAibWVzc2FnZXMuaCIKKyNpbmNs
dWRlICJzdHJpbmdzLmgiCiAKICNkZWZpbmUgTU9OSVRPUl9OQU1FICAgICAgICBfX01PRFVMRV9f
CiAjZGVmaW5lIE1PTklUT1JfRElTUExBWU5BTUUgTU9OSVRPUl9OQU1FCkBAIC0zMTYsOSArMzE3
LDExIEBAIFByb21wdEZvclJlYm9vdCgKICAgICBEV09SRCAgICAgICAgICAgICAgIE1heFZhbHVl
TGVuZ3RoOwogICAgIERXT1JEICAgICAgICAgICAgICAgRGlzcGxheU5hbWVMZW5ndGg7CiAgICAg
UFRDSEFSICAgICAgICAgICAgICBEaXNwbGF5TmFtZTsKKyAgICBQVENIQVIgICAgICAgICAgICAg
IERlc2NyaXB0aW9uOwogICAgIERXT1JEICAgICAgICAgICAgICAgVHlwZTsKICAgICBUQ0hBUiAg
ICAgICAgICAgICAgIFRpdGxlW10gPSBURVhUKFZFTkRPUl9OQU1FX1NUUik7CiAgICAgVENIQVIg
ICAgICAgICAgICAgICBNZXNzYWdlW01BWElNVU1fQlVGRkVSX1NJWkVdOworICAgIERXT1JEICAg
ICAgICAgICAgICAgTGVuZ3RoOwogICAgIFBXVFNfU0VTU0lPTl9JTkZPICAgU2Vzc2lvbkluZm87
CiAgICAgRFdPUkQgICAgICAgICAgICAgICBDb3VudDsKICAgICBEV09SRCAgICAgICAgICAgICAg
IEluZGV4OwpAQCAtMzgyLDE2ICszODUsMjcgQEAgUHJvbXB0Rm9yUmVib290KAogICAgICAgICBn
b3RvIGZhaWw1OwogICAgIH0KIAorICAgIERlc2NyaXB0aW9uID0gX3Rjc3JjaHIoRGlzcGxheU5h
bWUsICc7Jyk7CisgICAgaWYgKERlc2NyaXB0aW9uID09IE5VTEwpCisgICAgICAgIERlc2NyaXB0
aW9uID0gRGlzcGxheU5hbWU7CisgICAgZWxzZQorICAgICAgICBEZXNjcmlwdGlvbisrOworCiAg
ICAgUmVzdWx0ID0gU3RyaW5nQ2JQcmludGYoTWVzc2FnZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBNQVhJTVVNX0JVRkZFUl9TSVpFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFRFWFQoIiVzIG5lZWRzIHRvIHJlc3RhcnQgdGhlIHN5c3RlbSB0byAiCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiY29tcGxldGUgaW5zdGFsbGF0aW9uLlxuIgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIlByZXNzICdZZXMnIHRvIHJlc3RhcnQgdGhlIHN5c3Rl
bSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibm93IG9yICdObycgaWYgeW91
IHBsYW4gdG8gcmVzdGFydCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGhl
IHN5c3RlbSBsYXRlci5cbiIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXlO
YW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBURVhUKCIlcyAiKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbik7CiAgICAgYXNzZXJ0KFNVQ0NFRURFRChS
ZXN1bHQpKTsKIAorICAgIExlbmd0aCA9IChEV09SRClfdGNzbGVuKE1lc3NhZ2UpOworCisgICAg
TGVuZ3RoID0gTG9hZFN0cmluZyhHZXRNb2R1bGVIYW5kbGUoTlVMTCksCisgICAgICAgICAgICAg
ICAgICAgICAgICBJRFNfRElBTE9HLAorICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAr
IExlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgIEFSUkFZU0laRShNZXNzYWdlKSAtIExl
bmd0aCk7CisgICAgaWYgKExlbmd0aCA9PSAwKQorICAgICAgICBnb3RvIGZhaWw2OworCiAgICAg
U3VjY2VzcyA9IFdUU0VudW1lcmF0ZVNlc3Npb25zKFdUU19DVVJSRU5UX1NFUlZFUl9IQU5ETEUs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDEsCkBAIC0zOTksNyArNDEzLDcgQEAgUHJvbXB0Rm9yUmVib290
KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmQ291bnQpOwogCiAgICAgaWYg
KCFTdWNjZXNzKQotICAgICAgICBnb3RvIGZhaWw2OworICAgICAgICBnb3RvIGZhaWw3OwogCiAg
ICAgZm9yIChJbmRleCA9IDA7IEluZGV4IDwgQ291bnQ7IEluZGV4KyspIHsKICAgICAgICAgRFdP
UkQgICAgICAgICAgICAgICAgICAgU2Vzc2lvbklkID0gU2Vzc2lvbkluZm9bSW5kZXhdLlNlc3Np
b25JZDsKQEAgLTQyNyw3ICs0NDEsNyBAQCBQcm9tcHRGb3JSZWJvb3QoCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBUUlVFKTsKIAogICAgICAgICBpZiAoIVN1Y2Nlc3MpCi0gICAg
ICAgICAgICBnb3RvIGZhaWw3OworICAgICAgICAgICAgZ290byBmYWlsODsKIAogICAgICAgICBD
b250ZXh0LT5SZWJvb3RQZW5kaW5nID0gVFJVRTsKIApAQCAtNDQ3LDExICs0NjEsMTQgQEAgUHJv
bXB0Rm9yUmVib290KAogCiAgICAgcmV0dXJuOwogCi1mYWlsNzoKLSAgICBMb2coImZhaWw3Iik7
CitmYWlsODoKKyAgICBMb2coImZhaWw4Iik7CiAKICAgICBXVFNGcmVlTWVtb3J5KFNlc3Npb25J
bmZvKTsKIAorZmFpbDc6CisgICAgTG9nKCJmYWlsNyIpOworCiBmYWlsNjoKICAgICBMb2coImZh
aWw2Iik7CiAKZGlmZiAtLWdpdCBhL3NyYy9tb25pdG9yL3N0cmluZ3MuaCBiL3NyYy9tb25pdG9y
L3N0cmluZ3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NmVmOTc1Ci0t
LSAvZGV2L251bGwKKysrIGIvc3JjL21vbml0b3Ivc3RyaW5ncy5oCkBAIC0wLDAgKzEsMzcgQEAK
Ky8qIENvcHlyaWdodCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLgorICogQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLAorICogd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZAorICogdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisg
KiAqICAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZQorICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUKKyAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICogICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICAgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZQorICogICAgIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlcgorICogICAgIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5ECisgKiBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLAorICog
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YK
KyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERF
UiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLAorICogQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKKyAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBfTU9OSVRPUl9TVFJJTkdTX0hfCisjZGVmaW5lIF9NT05JVE9SX1NU
UklOR1NfSF8KKworI2RlZmluZQlJRFNfRElBTE9HCTEKKworI2VuZGlmIC8vIF9NT05JVE9SX1NU
UklOR1NfSF8KZGlmZiAtLWdpdCBhL3NyYy9tb25pdG9yL3N0cmluZ3MucmMgYi9zcmMvbW9uaXRv
ci9zdHJpbmdzLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5ZDRmYzEK
LS0tIC9kZXYvbnVsbAorKysgYi9zcmMvbW9uaXRvci9zdHJpbmdzLnJjCkBAIC0wLDAgKzEsMzcg
QEAKKy8qIENvcHlyaWdodCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLgorICogQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLAorICogd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZAorICogdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAq
CisgKiAqICAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZQorICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUKKyAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICogICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICAgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZQorICogICAgIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlcgorICogICAg
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5ECisgKiBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLAor
ICogSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhP
TERFUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLAorICogQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKKyAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgInN0cmluZ3MuaCIKKworU1RSSU5HVEFCTEUKK3sKKwlJRFNf
RElBTE9HLCAibmVlZHMgdG8gcmVzdGFydCB0aGUgc3lzdGVtIHRvIGNvbXBsZXRlIGluc3RhbGxh
dGlvbi5cblByZXNzICdZZXMnIHRvIHJlc3RhcnQgdGhlIHN5c3RlbSBub3cgb3IgJ05vJyBpZiB5
b3UgcGxhbiB0byByZXN0YXJ0IHRoZSBzeXN0ZW0gbGF0ZXIuIgorfQpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9tb25pdG9yL3hlbmJ1c19tb25pdG9yLnJjIGIv
c3JjL21vbml0b3IveGVuYnVzX21vbml0b3IucmMKaW5kZXggMTk0ODY1Ny4uOTYyNDdlMyAxMDA2
NDQKLS0tIGEvc3JjL21vbml0b3IveGVuYnVzX21vbml0b3IucmMKKysrIGIvc3JjL21vbml0b3Iv
eGVuYnVzX21vbml0b3IucmMKQEAgLTI5LDcgKzI5LDYgQEAKICAqIFNVQ0ggREFNQUdFLgogICov
CiAKLQogI2luY2x1ZGUgPHdpbmRvd3MuaD4KICNpbmNsdWRlIDxudHZlcnAuaD4KIApAQCAtNTUs
MyArNTQsNCBAQAogCiAjaW5jbHVkZSAiY29tbW9uLnZlciIKICNpbmNsdWRlICJtZXNzYWdlcy5y
YyIKKyNpbmNsdWRlICJzdHJpbmdzLnJjIgotLSAKMi4xLjEKCgpfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndp
bi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qu
b3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Wed Jul 27 09:56:02 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 27 Jul 2016 09:56:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bSLZJ-0007W2-Kn; Wed, 27 Jul 2016 09:56:01 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bSLZI-0007Vv-RO
 for win-pv-devel@lists.xensource.com; Wed, 27 Jul 2016 09:56:00 +0000
Received: from [85.158.139.211] by server-3.bemta-5.messagelabs.com id
 A5/61-12946-03588975; Wed, 27 Jul 2016 09:56:00 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprMIsWRWlGSWpSXmKPExsXiVRvkrKvfOiP
 cYGennMXn2c0sDowe2/t2sQcwRrFm5iXlVySwZlzf/4m5YJZbRcvbM8wNjB9Muhi5OIQEZjFK
 HO44xQTisAhcYpHoPn+KHcSREHjHIvF390nWLkZOICdG4mnjSaAqDiC7WmLFeSGQsJCAokTzt
 QvsEJNWMEmc73rBCJJgE1CXuP1+MTtEr53Ep1k3wWwRARWJr4c+gtnMAloSDzfMA6sXFtCWuL
 7/IJjNIqAqMet+B1gNr4C7xJyZm6DmyEnsnbyaZQIj/wJGhlWM6sWpRWWpRbpmeklFmekZJbm
 JmTm6hgamermpxcWJ6ak5iUnFesn5uZsYgQHEAAQ7GKc2OB9ilORgUhLlXeQ4I1yILyk/pTIj
 sTgjvqg0J7X4EKMMB4eSBC9DC1BOsCg1PbUiLTMHGMowaQkOHiURXnmQNG9xQWJucWY6ROoUo
 y7Hlqn31jIJseTl56VKifPObgYqEgApyijNgxsBi6tLjLJSwryMQEcJ8RSkFuVmlqDKv2IU52
 BUEuaVBlnFk5lXArfpFdARTEBHFMeCHVGSiJCSamBcUnPc2PifdMzrKUpJ2Sxsv80/6B1ZO5t
 /cVTDkUMql606VJK/nVPOWW1t+nvhqQfbCwUnHjBZtsaNfa37Lf7ZhuFzL3E16u6dWh0tsJG7
 m7WfzSu17NL/h076YdO1Kz9krI7m4ZSV3zu77OAlg01Z6Vu3/Ou9wiomkBbpzJ13zN8701PnL
 5sSS3FGoqEWc1FxIgDzEHRlpgIAAA==
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-8.tower-206.messagelabs.com!1469613359!51400609!1
X-Originating-IP: [74.125.82.67]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 17815 invoked from network); 27 Jul 2016 09:55:59 -0000
Received: from mail-wm0-f67.google.com (HELO mail-wm0-f67.google.com)
 (74.125.82.67)
 by server-8.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 27 Jul 2016 09:55:59 -0000
Received: by mail-wm0-f67.google.com with SMTP id q128so5636690wma.1
 for <win-pv-devel@lists.xensource.com>; Wed, 27 Jul 2016 02:55:59 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=47bPlCdkM2dj9wYK3QdCaGCt6/Kr5MHM5zZZuC3BdHU=;
 b=N91gVJaBI7/y9avZBCHqAtUrEFuhdAnudjZhsfRQgqAwPXJXH7l2D97C29JnFCWKN3
 RukJPjZII1W4qcoZY5cOAoC3MVbzMSNSzBmxh706p6NuXdtJyptShP2oYDTPBAY+t55X
 yRx85uS/Bb9CA82QV61zczleH8d0XTkBfU9KaGcGv++BagKMxeufg1YYSpAMGKRv7YQb
 4zz+p0TthhnkGKLXJY7Fml8Of5k+iDfz+Vg1Ac/TobXaDSEpplcoheoFHskGyWvjpTay
 rjdVix2d+BRuT+EY7E97UD9s9PQvnN+nGJp2sBnoM5U7u1s6kuYNainMyvLNrBbsoWiu
 SsQA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=47bPlCdkM2dj9wYK3QdCaGCt6/Kr5MHM5zZZuC3BdHU=;
 b=jLvR+nDuTqm72YQtxbV+owticajGVz4yrUr2kLO2jCSuIv7bfqJCqPd+c+AoiBfnMS
 s54rXeBzpzH36jkRzBYF8Y6eZGOgp6SYsiLEUg+1gtDZBRrsaBuzTGvqyhoSlUgkaGkQ
 2nGl1Mjd4S7x5PlS//cSqkQpE0jC3q1+3q5vKr1wpHNv/tH3dIGA2SxgYkc9eNOvGtmt
 OSE9L2f7pFw5j8gyZZLdAoiCD2btIC4eyz/gr65apjHp90CaqeR4spzF28LUzTb32pC/
 cFSgah9OyYhRsph9TFZ9Q7nO7m02wad0aCeiKzDTO63/RvvP1D0U2b+NsZKasgEKoofe
 ZxdQ==
X-Gm-Message-State: AEkoouuIS7LMx6qnIYDmBcoylhdnl10izJIgjW4ebWKAYG3dt05pvEwyu+mY0ODphhQJoQ==
X-Received: by 10.194.96.205 with SMTP id du13mr27546297wjb.89.1469613358940; 
 Wed, 27 Jul 2016 02:55:58 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id x133sm6252616wmf.16.2016.07.27.02.55.57
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Wed, 27 Jul 2016 02:55:58 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xensource.com
Date: Wed, 27 Jul 2016 10:55:45 +0100
Message-Id: <1469613345-15520-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] XENBUS_MONITOR refinements
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VXNlIGEgc3RyaW5nIHRhYmxlIGZvciB0aGUgZGlhbG9nIG1lc3NhZ2UgcmF0aGVyIHRoYW4gY29k
aW5nIGl0IGlubGluZS4KQWxzbywgdHJpbSB0aGUgRGlzcGxheU5hbWUgcHVsbGVkIGZyb20gdGhl
IHJlZ2lzdHJ5IGJlY2F1c2UgV2luZG93cyAxMApzZWVtcyB0byBwcmVmaXggaXQgd2l0aCB1c2Vs
ZXNzIHRhZ3MuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRy
aXguY29tPgotLS0KIHNyYy9tb25pdG9yL21lc3NhZ2VzLm1jICAgICAgIHwgMzAgKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrCiBzcmMvbW9uaXRvci9tb25pdG9yLmMgICAgICAgICB8IDM3
ICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIHNyYy9tb25pdG9yL3N0cmlu
Z3MuaCAgICAgICAgIHwgMzcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog
c3JjL21vbml0b3Ivc3RyaW5ncy5yYyAgICAgICAgfCAzNyArKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrCiBzcmMvbW9uaXRvci94ZW5idXNfbW9uaXRvci5yYyB8ICAyICstCiA1
IGZpbGVzIGNoYW5nZWQsIDEzMiBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBzcmMvbW9uaXRvci9zdHJpbmdzLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz
cmMvbW9uaXRvci9zdHJpbmdzLnJjCgpkaWZmIC0tZ2l0IGEvc3JjL21vbml0b3IvbWVzc2FnZXMu
bWMgYi9zcmMvbW9uaXRvci9tZXNzYWdlcy5tYwppbmRleCBhYjQ5MjQzLi45ZmZmMTM1IDEwMDY0
NAotLS0gYS9zcmMvbW9uaXRvci9tZXNzYWdlcy5tYworKysgYi9zcmMvbW9uaXRvci9tZXNzYWdl
cy5tYwpAQCAtMSwzICsxLDMzIEBACis7IC8vIENvcHlyaWdodCAoYykgQ2l0cml4IFN5c3RlbXMg
SW5jLgorOyAvLyBBbGwgcmlnaHRzIHJlc2VydmVkLgorOyAvLworOyAvLyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLAorOyAvLyB3aXRoIG9yIHdpdGhv
dXQgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkCis7IC8vIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Cis7IC8vCis7IC8vICogICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCis7IC8vICAgICBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlCis7IC8vICAgICBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKzsgLy8gKiAgIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKzsgLy8gICAgIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUKKzsgLy8gICAgIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlcgorOyAvLyAgICAgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKzsgLy8KKzsgLy8gVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5ECis7IC8vIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsCis7IC8v
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
Cis7IC8vIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCis7IC8vIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQg
SE9MREVSIE9SCis7IC8vIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorOyAvLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLAorOyAvLyBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKzsgLy8gU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworOyAvLyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKKzsgLy8gV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCis7IC8vIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KzsgLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRgorOyAvLyBTVUNIIERBTUFHRS4KKwogTWVzc2FnZUlkVHlwZWRlZj1EV09SRAogCiBTZXZl
cml0eU5hbWVzPSgKZGlmZiAtLWdpdCBhL3NyYy9tb25pdG9yL21vbml0b3IuYyBiL3NyYy9tb25p
dG9yL21vbml0b3IuYwppbmRleCA5ZTQ1NTVmLi45YTRmNGY5IDEwMDY0NAotLS0gYS9zcmMvbW9u
aXRvci9tb25pdG9yLmMKKysrIGIvc3JjL21vbml0b3IvbW9uaXRvci5jCkBAIC00MCw2ICs0MCw3
IEBACiAjaW5jbHVkZSA8dmVyc2lvbi5oPgogCiAjaW5jbHVkZSAibWVzc2FnZXMuaCIKKyNpbmNs
dWRlICJzdHJpbmdzLmgiCiAKICNkZWZpbmUgTU9OSVRPUl9OQU1FICAgICAgICBfX01PRFVMRV9f
CiAjZGVmaW5lIE1PTklUT1JfRElTUExBWU5BTUUgTU9OSVRPUl9OQU1FCkBAIC0zMTYsOSArMzE3
LDExIEBAIFByb21wdEZvclJlYm9vdCgKICAgICBEV09SRCAgICAgICAgICAgICAgIE1heFZhbHVl
TGVuZ3RoOwogICAgIERXT1JEICAgICAgICAgICAgICAgRGlzcGxheU5hbWVMZW5ndGg7CiAgICAg
UFRDSEFSICAgICAgICAgICAgICBEaXNwbGF5TmFtZTsKKyAgICBQVENIQVIgICAgICAgICAgICAg
IERlc2NyaXB0aW9uOwogICAgIERXT1JEICAgICAgICAgICAgICAgVHlwZTsKICAgICBUQ0hBUiAg
ICAgICAgICAgICAgIFRpdGxlW10gPSBURVhUKFZFTkRPUl9OQU1FX1NUUik7CiAgICAgVENIQVIg
ICAgICAgICAgICAgICBNZXNzYWdlW01BWElNVU1fQlVGRkVSX1NJWkVdOworICAgIERXT1JEICAg
ICAgICAgICAgICAgTGVuZ3RoOwogICAgIFBXVFNfU0VTU0lPTl9JTkZPICAgU2Vzc2lvbkluZm87
CiAgICAgRFdPUkQgICAgICAgICAgICAgICBDb3VudDsKICAgICBEV09SRCAgICAgICAgICAgICAg
IEluZGV4OwpAQCAtMzgyLDE2ICszODUsMjcgQEAgUHJvbXB0Rm9yUmVib290KAogICAgICAgICBn
b3RvIGZhaWw1OwogICAgIH0KIAorICAgIERlc2NyaXB0aW9uID0gX3Rjc3JjaHIoRGlzcGxheU5h
bWUsICc7Jyk7CisgICAgaWYgKERlc2NyaXB0aW9uID09IE5VTEwpCisgICAgICAgIERlc2NyaXB0
aW9uID0gRGlzcGxheU5hbWU7CisgICAgZWxzZQorICAgICAgICBEZXNjcmlwdGlvbisrOworCiAg
ICAgUmVzdWx0ID0gU3RyaW5nQ2JQcmludGYoTWVzc2FnZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBNQVhJTVVNX0JVRkZFUl9TSVpFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFRFWFQoIiVzIG5lZWRzIHRvIHJlc3RhcnQgdGhlIHN5c3RlbSB0byAiCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiY29tcGxldGUgaW5zdGFsbGF0aW9uLlxuIgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIlByZXNzICdZZXMnIHRvIHJlc3RhcnQgdGhlIHN5c3Rl
bSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibm93IG9yICdObycgaWYgeW91
IHBsYW4gdG8gcmVzdGFydCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGhl
IHN5c3RlbSBsYXRlci5cbiIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXlO
YW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBURVhUKCIlcyAiKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbik7CiAgICAgYXNzZXJ0KFNVQ0NFRURFRChS
ZXN1bHQpKTsKIAorICAgIExlbmd0aCA9IChEV09SRClfdGNzbGVuKE1lc3NhZ2UpOworCisgICAg
TGVuZ3RoID0gTG9hZFN0cmluZyhHZXRNb2R1bGVIYW5kbGUoTlVMTCksCisgICAgICAgICAgICAg
ICAgICAgICAgICBJRFNfRElBTE9HLAorICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAr
IExlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgIEFSUkFZU0laRShNZXNzYWdlKSAtIExl
bmd0aCk7CisgICAgaWYgKExlbmd0aCA9PSAwKQorICAgICAgICBnb3RvIGZhaWw2OworCiAgICAg
U3VjY2VzcyA9IFdUU0VudW1lcmF0ZVNlc3Npb25zKFdUU19DVVJSRU5UX1NFUlZFUl9IQU5ETEUs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDEsCkBAIC0zOTksNyArNDEzLDcgQEAgUHJvbXB0Rm9yUmVib290
KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmQ291bnQpOwogCiAgICAgaWYg
KCFTdWNjZXNzKQotICAgICAgICBnb3RvIGZhaWw2OworICAgICAgICBnb3RvIGZhaWw3OwogCiAg
ICAgZm9yIChJbmRleCA9IDA7IEluZGV4IDwgQ291bnQ7IEluZGV4KyspIHsKICAgICAgICAgRFdP
UkQgICAgICAgICAgICAgICAgICAgU2Vzc2lvbklkID0gU2Vzc2lvbkluZm9bSW5kZXhdLlNlc3Np
b25JZDsKQEAgLTQyNyw3ICs0NDEsNyBAQCBQcm9tcHRGb3JSZWJvb3QoCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBUUlVFKTsKIAogICAgICAgICBpZiAoIVN1Y2Nlc3MpCi0gICAg
ICAgICAgICBnb3RvIGZhaWw3OworICAgICAgICAgICAgZ290byBmYWlsODsKIAogICAgICAgICBD
b250ZXh0LT5SZWJvb3RQZW5kaW5nID0gVFJVRTsKIApAQCAtNDQ3LDExICs0NjEsMTQgQEAgUHJv
bXB0Rm9yUmVib290KAogCiAgICAgcmV0dXJuOwogCi1mYWlsNzoKLSAgICBMb2coImZhaWw3Iik7
CitmYWlsODoKKyAgICBMb2coImZhaWw4Iik7CiAKICAgICBXVFNGcmVlTWVtb3J5KFNlc3Npb25J
bmZvKTsKIAorZmFpbDc6CisgICAgTG9nKCJmYWlsNyIpOworCiBmYWlsNjoKICAgICBMb2coImZh
aWw2Iik7CiAKZGlmZiAtLWdpdCBhL3NyYy9tb25pdG9yL3N0cmluZ3MuaCBiL3NyYy9tb25pdG9y
L3N0cmluZ3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NmVmOTc1Ci0t
LSAvZGV2L251bGwKKysrIGIvc3JjL21vbml0b3Ivc3RyaW5ncy5oCkBAIC0wLDAgKzEsMzcgQEAK
Ky8qIENvcHlyaWdodCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLgorICogQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLAorICogd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZAorICogdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisg
KiAqICAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZQorICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUKKyAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICogICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICAgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZQorICogICAgIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlcgorICogICAgIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5ECisgKiBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLAorICog
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YK
KyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERF
UiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLAorICogQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKKyAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBfTU9OSVRPUl9TVFJJTkdTX0hfCisjZGVmaW5lIF9NT05JVE9SX1NU
UklOR1NfSF8KKworI2RlZmluZQlJRFNfRElBTE9HCTEKKworI2VuZGlmIC8vIF9NT05JVE9SX1NU
UklOR1NfSF8KZGlmZiAtLWdpdCBhL3NyYy9tb25pdG9yL3N0cmluZ3MucmMgYi9zcmMvbW9uaXRv
ci9zdHJpbmdzLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5ZDRmYzEK
LS0tIC9kZXYvbnVsbAorKysgYi9zcmMvbW9uaXRvci9zdHJpbmdzLnJjCkBAIC0wLDAgKzEsMzcg
QEAKKy8qIENvcHlyaWdodCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLgorICogQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLAorICogd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZAorICogdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAq
CisgKiAqICAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZQorICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUKKyAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICogICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICAgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZQorICogICAgIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlcgorICogICAg
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5ECisgKiBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLAor
ICogSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhP
TERFUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLAorICogQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKKyAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgInN0cmluZ3MuaCIKKworU1RSSU5HVEFCTEUKK3sKKwlJRFNf
RElBTE9HLCAibmVlZHMgdG8gcmVzdGFydCB0aGUgc3lzdGVtIHRvIGNvbXBsZXRlIGluc3RhbGxh
dGlvbi5cblByZXNzICdZZXMnIHRvIHJlc3RhcnQgdGhlIHN5c3RlbSBub3cgb3IgJ05vJyBpZiB5
b3UgcGxhbiB0byByZXN0YXJ0IHRoZSBzeXN0ZW0gbGF0ZXIuIgorfQpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9tb25pdG9yL3hlbmJ1c19tb25pdG9yLnJjIGIv
c3JjL21vbml0b3IveGVuYnVzX21vbml0b3IucmMKaW5kZXggMTk0ODY1Ny4uOTYyNDdlMyAxMDA2
NDQKLS0tIGEvc3JjL21vbml0b3IveGVuYnVzX21vbml0b3IucmMKKysrIGIvc3JjL21vbml0b3Iv
eGVuYnVzX21vbml0b3IucmMKQEAgLTI5LDcgKzI5LDYgQEAKICAqIFNVQ0ggREFNQUdFLgogICov
CiAKLQogI2luY2x1ZGUgPHdpbmRvd3MuaD4KICNpbmNsdWRlIDxudHZlcnAuaD4KIApAQCAtNTUs
MyArNTQsNCBAQAogCiAjaW5jbHVkZSAiY29tbW9uLnZlciIKICNpbmNsdWRlICJtZXNzYWdlcy5y
YyIKKyNpbmNsdWRlICJzdHJpbmdzLnJjIgotLSAKMi4xLjEKCgpfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndp
bi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qu
b3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Wed Jul 27 11:55:44 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 27 Jul 2016 11:55:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bSNR8-0007Hg-OW; Wed, 27 Jul 2016 11:55:42 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bSNR7-0007Ha-3z
 for win-pv-devel@lists.xenproject.org; Wed, 27 Jul 2016 11:55:41 +0000
Received: from [85.158.137.68] by server-6.bemta-3.messagelabs.com id
 C8/DD-28813-C31A8975; Wed, 27 Jul 2016 11:55:40 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrAIsWRWlGSWpSXmKPExsVyMfSqo671whn
 hBpf+KVj8WZzowOhx+MMVlgDGKNbMvKT8igTWjCd/G1gLTrBV3Jl3m7WBsYO1i5GLQ0hgFqPE
 p/XfGUEcFoFLLBI9Sw6wgzgSAu9YJD5fv8PUxcgJ5MRITFjwlx3CLpfYe/QQG4gtJKAo0XztA
 jvEqGVMEu3bFoIVsQmoS9x+vxiqwU7i06ybYLaIgKrEteXHwJqZBbQkHm6YxwhiCwt4S8y7uJ
 UFxGYBqvl0YBkriM0r4CbxqvUK1Bw5ib2TV7NMYORfwMiwilGjOLWoLLVI19BQL6koMz2jJDc
 xM0fX0MBYLze1uDgxPTUnMalYLzk/dxMjMIQYgGAH4+rfTocYJTmYlER5FznOCBfiS8pPqcxI
 LM6ILyrNSS0+xCjDwaEkwbtoPlBOsCg1PbUiLTMHGMwwaQkOHiUR3tsgad7igsTc4sx0iNQpR
 kuOLb+vrWXiWPDjNpDcNvXeWiYhlrz8vFQpcd7NIA0CIA0ZpXlw42ARd4lRVkqYlxHoQCGegt
 Si3MwSVPlXjOIcjErCvAILgKbwZOaVwG19BXQQE9BBxbFgB5UkIqSkGhi7kn2CNpsrfJH9qbV
 C1s6l3ru57NLW6ycjhD+Uxlzk/fd85ewDs2UfBN2R/Hd9Qb41g8okuQi1ma6T7ebE5O6pso+Y
 3dpZurCky6Rh2qdilyAtmZrmEyr15RqO7a0u5R1ejsFSDeLGq39pXX1xivNLci5rTO6jb0JqW
 y5G9cwLemMp9C9PWYmlOCPRUIu5qDgRAG6ldnizAgAA
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-12.tower-31.messagelabs.com!1469620538!35965963!1
X-Originating-IP: [209.85.213.65]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 62577 invoked from network); 27 Jul 2016 11:55:39 -0000
Received: from mail-vk0-f65.google.com (HELO mail-vk0-f65.google.com)
 (209.85.213.65)
 by server-12.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 27 Jul 2016 11:55:39 -0000
Received: by mail-vk0-f65.google.com with SMTP id s189so396041vkh.0
 for <win-pv-devel@lists.xenproject.org>; Wed, 27 Jul 2016 04:55:39 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=skBHUJBMovrCnvUF02SO6mwLY+PgOzSm4gm6mTQ2mZg=;
 b=Xpdd9+XSw/1kO/F60juFLW1HtbS2rjEQfKMfIdUYO5Kfv1oC8HbhFTr3Lo6YmkcpyW
 x773YmFzkcUM7WBlpC0VIVaBIlhuY1R7GGzZwfBThysHytxomDI84IUOLYr85eQix/Ad
 VbLguvewSqGTjVsidfoivpwn9+/usfJdlmDELoDXfnTEqfXI34i5IBh63sWYv+t9KWYl
 pvwhLOtj9YvadstDwiLQwqNfRaCizpSKi846LXMKzrf3c6Wf6p94Oe/S9tawAgae+rkg
 PO77xolMJxMbkNoBODFYT+AsStamqda7KR4xo+3NL32/pQNFdX/X8ny91iLsy5QaMLN/
 yHXA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=skBHUJBMovrCnvUF02SO6mwLY+PgOzSm4gm6mTQ2mZg=;
 b=i8keGTIKS58faXrUh742/ag05qVQvYsTXz5hQGc8P97X6Oo6qCAXR1NfHYDnWaOkfj
 0iUG6YPOKt3bsh27jfnIXb/rNETR+PI4X6UsV01zS5/cyDPNgPiz0Qhd1A4+TQ8Ik/EY
 Gf6nky8vAjMVK9jMPwUOGEYtIEEMOsJ6laiAKY7Wf1XvpGXd3+sWfaM15OwdA5xjOx5u
 XizkQIP94Ktm252bdxU9VMPwPqHqIGdiEEltj7iUl/IqDbOXr0MV83BU4BFLvgSFXADc
 O7r4gqb8yqy9cuacrYEgZkH8PeyUUirKukzfrm68k6zWHDfLpA1QJX96Xx51sWZ1JXbh
 OxwA==
X-Gm-Message-State: AEkoousPHph7HUjiEl21uZnNmM+tCYQzDXkH1FP80i6dN4CCt7Pco98WsTTbwEsrYL6YmA==
X-Received: by 10.31.137.8 with SMTP id l8mr11931237vkd.97.1469620538209;
 Wed, 27 Jul 2016 04:55:38 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id q12sm848310uaq.22.2016.07.27.04.55.36
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Wed, 27 Jul 2016 04:55:37 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Wed, 27 Jul 2016 12:55:25 +0100
Message-Id: <1469620525-1392-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Make sure trailing whitespace is trimmed
	from log messages
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0t
CiBzcmMveGVuaWZhY2UvaW9jdGxzLmMgfCAxMyArKysrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdl
ZCwgOCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy94ZW5p
ZmFjZS9pb2N0bHMuYyBiL3NyYy94ZW5pZmFjZS9pb2N0bHMuYwppbmRleCBjYTJjZjFjLi5lNDdl
ZjZlIDEwMDY0NAotLS0gYS9zcmMveGVuaWZhY2UvaW9jdGxzLmMKKysrIGIvc3JjL3hlbmlmYWNl
L2lvY3Rscy5jCkBAIC0xMjMsMTEgKzEyMywxNCBAQCBJb2N0bExvZygKICAgICBpZiAoIV9fSXNW
YWxpZFN0cihCdWZmZXIsIEluTGVuKSkKICAgICAgICAgZ290byBmYWlsMjsKIAotCS8vIHJlbW92
ZSBuZXdsaW5lcyBmcm9tIGVuZCBvZiBidWZmZXIKLQlmb3IgKHB0ciA9IEJ1ZmZlciArIEluTGVu
IC0gMTsKLQkJIHB0ciAhPSBCdWZmZXIgJiYgKnB0ciAhPSAwICYmICpwdHIgIT0gJ1xuJzsKLQkJ
IC0tcHRyKQotCQkJKnB0ciA9IDA7CisJLy8gcmVtb3ZlIHdoaXRlc3BhY2UgZnJvbSBlbmQgb2Yg
YnVmZmVyCisJZm9yIChwdHIgPSBCdWZmZXIgKyBJbkxlbiAtIDE7IHB0ciAhPSBCdWZmZXI7IC0t
cHRyKSB7CisgICAgICAgIGlmICgqcHRyICE9ICdcbicgJiYgKnB0ciAhPSAnXHInICYmICpwdHIg
IT0gJ1wwJykKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICpwdHIgPSAnXDAnOworICAg
IH0KKwogICAgIFhlbklmYWNlRGVidWdQcmludChJTkZPLCAiVVNFUjogJXNcbiIsIEJ1ZmZlcik7
CiAgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOwogCi0tIAoyLjEuMQoKCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxp
c3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJv
amVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Wed Jul 27 11:55:44 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 27 Jul 2016 11:55:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bSNR8-0007Hg-OW; Wed, 27 Jul 2016 11:55:42 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bSNR7-0007Ha-3z
 for win-pv-devel@lists.xenproject.org; Wed, 27 Jul 2016 11:55:41 +0000
Received: from [85.158.137.68] by server-6.bemta-3.messagelabs.com id
 C8/DD-28813-C31A8975; Wed, 27 Jul 2016 11:55:40 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrAIsWRWlGSWpSXmKPExsVyMfSqo671whn
 hBpf+KVj8WZzowOhx+MMVlgDGKNbMvKT8igTWjCd/G1gLTrBV3Jl3m7WBsYO1i5GLQ0hgFqPE
 p/XfGUEcFoFLLBI9Sw6wgzgSAu9YJD5fv8PUxcgJ5MRITFjwlx3CLpfYe/QQG4gtJKAo0XztA
 jvEqGVMEu3bFoIVsQmoS9x+vxiqwU7i06ybYLaIgKrEteXHwJqZBbQkHm6YxwhiCwt4S8y7uJ
 UFxGYBqvl0YBkriM0r4CbxqvUK1Bw5ib2TV7NMYORfwMiwilGjOLWoLLVI19BQL6koMz2jJDc
 xM0fX0MBYLze1uDgxPTUnMalYLzk/dxMjMIQYgGAH4+rfTocYJTmYlER5FznOCBfiS8pPqcxI
 LM6ILyrNSS0+xCjDwaEkwbtoPlBOsCg1PbUiLTMHGMwwaQkOHiUR3tsgad7igsTc4sx0iNQpR
 kuOLb+vrWXiWPDjNpDcNvXeWiYhlrz8vFQpcd7NIA0CIA0ZpXlw42ARd4lRVkqYlxHoQCGegt
 Si3MwSVPlXjOIcjErCvAILgKbwZOaVwG19BXQQE9BBxbFgB5UkIqSkGhi7kn2CNpsrfJH9qbV
 C1s6l3ru57NLW6ycjhD+Uxlzk/fd85ewDs2UfBN2R/Hd9Qb41g8okuQi1ma6T7ebE5O6pso+Y
 3dpZurCky6Rh2qdilyAtmZrmEyr15RqO7a0u5R1ejsFSDeLGq39pXX1xivNLci5rTO6jb0JqW
 y5G9cwLemMp9C9PWYmlOCPRUIu5qDgRAG6ldnizAgAA
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-12.tower-31.messagelabs.com!1469620538!35965963!1
X-Originating-IP: [209.85.213.65]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 62577 invoked from network); 27 Jul 2016 11:55:39 -0000
Received: from mail-vk0-f65.google.com (HELO mail-vk0-f65.google.com)
 (209.85.213.65)
 by server-12.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 27 Jul 2016 11:55:39 -0000
Received: by mail-vk0-f65.google.com with SMTP id s189so396041vkh.0
 for <win-pv-devel@lists.xenproject.org>; Wed, 27 Jul 2016 04:55:39 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=skBHUJBMovrCnvUF02SO6mwLY+PgOzSm4gm6mTQ2mZg=;
 b=Xpdd9+XSw/1kO/F60juFLW1HtbS2rjEQfKMfIdUYO5Kfv1oC8HbhFTr3Lo6YmkcpyW
 x773YmFzkcUM7WBlpC0VIVaBIlhuY1R7GGzZwfBThysHytxomDI84IUOLYr85eQix/Ad
 VbLguvewSqGTjVsidfoivpwn9+/usfJdlmDELoDXfnTEqfXI34i5IBh63sWYv+t9KWYl
 pvwhLOtj9YvadstDwiLQwqNfRaCizpSKi846LXMKzrf3c6Wf6p94Oe/S9tawAgae+rkg
 PO77xolMJxMbkNoBODFYT+AsStamqda7KR4xo+3NL32/pQNFdX/X8ny91iLsy5QaMLN/
 yHXA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=skBHUJBMovrCnvUF02SO6mwLY+PgOzSm4gm6mTQ2mZg=;
 b=i8keGTIKS58faXrUh742/ag05qVQvYsTXz5hQGc8P97X6Oo6qCAXR1NfHYDnWaOkfj
 0iUG6YPOKt3bsh27jfnIXb/rNETR+PI4X6UsV01zS5/cyDPNgPiz0Qhd1A4+TQ8Ik/EY
 Gf6nky8vAjMVK9jMPwUOGEYtIEEMOsJ6laiAKY7Wf1XvpGXd3+sWfaM15OwdA5xjOx5u
 XizkQIP94Ktm252bdxU9VMPwPqHqIGdiEEltj7iUl/IqDbOXr0MV83BU4BFLvgSFXADc
 O7r4gqb8yqy9cuacrYEgZkH8PeyUUirKukzfrm68k6zWHDfLpA1QJX96Xx51sWZ1JXbh
 OxwA==
X-Gm-Message-State: AEkoousPHph7HUjiEl21uZnNmM+tCYQzDXkH1FP80i6dN4CCt7Pco98WsTTbwEsrYL6YmA==
X-Received: by 10.31.137.8 with SMTP id l8mr11931237vkd.97.1469620538209;
 Wed, 27 Jul 2016 04:55:38 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id q12sm848310uaq.22.2016.07.27.04.55.36
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Wed, 27 Jul 2016 04:55:37 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Wed, 27 Jul 2016 12:55:25 +0100
Message-Id: <1469620525-1392-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Make sure trailing whitespace is trimmed
	from log messages
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0t
CiBzcmMveGVuaWZhY2UvaW9jdGxzLmMgfCAxMyArKysrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdl
ZCwgOCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy94ZW5p
ZmFjZS9pb2N0bHMuYyBiL3NyYy94ZW5pZmFjZS9pb2N0bHMuYwppbmRleCBjYTJjZjFjLi5lNDdl
ZjZlIDEwMDY0NAotLS0gYS9zcmMveGVuaWZhY2UvaW9jdGxzLmMKKysrIGIvc3JjL3hlbmlmYWNl
L2lvY3Rscy5jCkBAIC0xMjMsMTEgKzEyMywxNCBAQCBJb2N0bExvZygKICAgICBpZiAoIV9fSXNW
YWxpZFN0cihCdWZmZXIsIEluTGVuKSkKICAgICAgICAgZ290byBmYWlsMjsKIAotCS8vIHJlbW92
ZSBuZXdsaW5lcyBmcm9tIGVuZCBvZiBidWZmZXIKLQlmb3IgKHB0ciA9IEJ1ZmZlciArIEluTGVu
IC0gMTsKLQkJIHB0ciAhPSBCdWZmZXIgJiYgKnB0ciAhPSAwICYmICpwdHIgIT0gJ1xuJzsKLQkJ
IC0tcHRyKQotCQkJKnB0ciA9IDA7CisJLy8gcmVtb3ZlIHdoaXRlc3BhY2UgZnJvbSBlbmQgb2Yg
YnVmZmVyCisJZm9yIChwdHIgPSBCdWZmZXIgKyBJbkxlbiAtIDE7IHB0ciAhPSBCdWZmZXI7IC0t
cHRyKSB7CisgICAgICAgIGlmICgqcHRyICE9ICdcbicgJiYgKnB0ciAhPSAnXHInICYmICpwdHIg
IT0gJ1wwJykKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICpwdHIgPSAnXDAnOworICAg
IH0KKwogICAgIFhlbklmYWNlRGVidWdQcmludChJTkZPLCAiVVNFUjogJXNcbiIsIEJ1ZmZlcik7
CiAgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOwogCi0tIAoyLjEuMQoKCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxp
c3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJv
amVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Wed Jul 27 12:35:20 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 27 Jul 2016 12:35:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bSO3I-00015H-39; Wed, 27 Jul 2016 12:35:08 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <et@etit.hu>) id 1bSO3F-00014f-Mf
 for win-pv-devel@lists.xenproject.org; Wed, 27 Jul 2016 12:35:06 +0000
Received: from [193.109.254.147] by server-7.bemta-14.messagelabs.com id
 E9/95-06589-97AA8975; Wed, 27 Jul 2016 12:35:05 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrKKsWRWlGSWpSXmKPExsUSd3yrvG75qhn
 hBj82yVr8WZzowOhx+MMVlgDGKNbMvKT8igTWjMnztjAXvNKrWHxhIXsD4xTNLkYuDiGBbYwS
 U393sHcxcnBICChJtDS7QcR3Mkq0bz7PDOKwCDQyS+xZdZYJxJEQWMsosXHHZ0aIsouMEh3n9
 7CiKePkEBYwkHj96SobiC0ioCpxbfkxNoiOlYwSszvns4Ak2ASMJVrPLWcEsfkFZCU+rpwI1s
 wrYCWxuvE3WJwFqHnLt/1gg0QFwiVWznzGAlEjKHFy5hMwm1PARuLz069gJzELtDNK3Dv5GSw
 hISAscWT/TpYJjMKzkPTMQlYHkmAW8Jb43rWBaRaSo2YhuXwWkqNmIfluFrKPZiG5BGKousSf
 eZeYIWxtiWULX0PZthLr1r2HWqwn8fZ3L5RtKbF+xyf2BYx8qxg1ilOLylKLdI0M9JKKMtMzS
 nITM3N0DQ1N9HJTi4sT01NzEpOK9ZLzczcxAqO/noGBcQdj52W/Q4ySHExKoryLHGeEC/El5a
 dUZiQWZ8QXleakFh9ilOHgUJLgFV4JlBMsSk1PrUjLzAGmIZi0BAePkggvG0iat7ggMbc4Mx0
 idYpRUUqclxMkIQCSyCjNg2uDpb5LjLJSwryMDAwMQjwFqUW5mSWo8q8YxTkYlYR5LUGm8GTm
 lcBNfwW0mAlocXEs2OKSRISUVAOjrLc9p/6+h8e/F7nN+mP2IPTm+RP/NSt17Zfcs09apd7ba
 v15u5TCthnaxWVMG3etNFi1Yeu/z4/DODyW6px8Gci2mFfzv2laeHug6W7+5rb9D9uvXpX6s/
 TYtqUBKu0TmTltlq1P2Dm7y8gkvYf9sPlKmTCz10nz+5IXTCp6LaQz4dfnXVeClViKMxINtZi
 LihMBV1XweHgDAAA=
X-Env-Sender: et@etit.hu
X-Msg-Ref: server-16.tower-27.messagelabs.com!1469622903!56239231!1
X-Originating-IP: [94.199.181.31]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 37380 invoked from network); 27 Jul 2016 12:35:03 -0000
Received: from mail.etit.hu (HELO mail.etit.hu) (94.199.181.31)
 by server-16.tower-27.messagelabs.com with SMTP; 27 Jul 2016 12:35:03 -0000
Received: from localhost (localhost [127.0.0.1])
 by mail.etit.hu (Postfix) with ESMTP id 721B44041AD
 for <win-pv-devel@lists.xenproject.org>; Wed, 27 Jul 2016 14:35:02 +0200 (CEST)
X-Virus-Scanned: AMAVIS at etit.hu
Received: from mail.etit.hu (localhost [127.0.0.1])
 by mail.etit.hu (Postfix) with ESMTP id A31CA4041AE
 for <win-pv-devel@lists.xenproject.org>; Wed, 27 Jul 2016 14:34:42 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=etit.hu; s=mail;
 t=1469622882; bh=svGKFxqTaAg71hqBl0lLfri06J+r7djT6FtStDIL+7s=;
 h=Subject:To:From:Message-ID:Date:MIME-Version:Content-Type:From;
 b=Bqp1NM8uDJHf0fodbzcnq2XMFiESbySP+6RlHBcEaCHsyivC3v+Ejlt+wO+B4eNfM
 F/UdbvOUQGcideb2l6ctJ8+rirgaXUIMbDuajFcdwBUvin6TLy9Rx+f3fSVn+x7K8I
 14rAnuxrE5Evx8b1YLttWZu/mgzextFtbPmV7Ec4=
X-Virus-Scanner: This message was checked by ESET Mail Security
 for Linux/BSD. For more information on ESET Mail Security,
 please, visit our website: http://www.eset.com/.
Received: from [192.168.100.225] (87.229.89.127.z-net.hu [87.229.89.127])
 by mail.etit.hu (Postfix) with ESMTPSA id 63D4E4041AD
 for <win-pv-devel@lists.xenproject.org>; Wed, 27 Jul 2016 14:34:42 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=etit.hu; s=mail;
 t=1469622882; bh=svGKFxqTaAg71hqBl0lLfri06J+r7djT6FtStDIL+7s=;
 h=Subject:To:From:Message-ID:Date:MIME-Version:Content-Type:From;
 b=Bqp1NM8uDJHf0fodbzcnq2XMFiESbySP+6RlHBcEaCHsyivC3v+Ejlt+wO+B4eNfM
 F/UdbvOUQGcideb2l6ctJ8+rirgaXUIMbDuajFcdwBUvin6TLy9Rx+f3fSVn+x7K8I
 14rAnuxrE5Evx8b1YLttWZu/mgzextFtbPmV7Ec4=
To: win-pv-devel@lists.xenproject.org
References: <08a801d1e760$3f2549a0$bd6fdce0$@thinkhuge.net>
 <c582eb60539340008a1fbc241346ba5e@AMSPEX02CL03.citrite.net>
 <08bf01d1e766$85a68be0$90f3a3a0$@thinkhuge.net>
From: =?UTF-8?B?w4lsacOhcyBUYW3DoXM=?= <et@etit.hu>
Organization: ETIT[nwpro] KFT
Message-ID: <5c280b55-a48e-1fb1-7770-c664c44fbed7@etit.hu>
Date: Wed, 27 Jul 2016 14:34:16 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
 Thunderbird/45.2.0
MIME-Version: 1.0
In-Reply-To: <08bf01d1e766$85a68be0$90f3a3a0$@thinkhuge.net>
X-EsetResult: clean
Subject: Re: [win-pv-devel] Signed 8.1.0 drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============4583959515373903002=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--===============4583959515373903002==
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="HD9p74CbJ6aAO6cF6m0pV1OjcmATGpQql"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--HD9p74CbJ6aAO6cF6m0pV1OjcmATGpQql
Content-Type: multipart/mixed; boundary="AnwHcn0c2jihht4g1wKiSqPKm1cocv3GP"
From: =?UTF-8?B?w4lsacOhcyBUYW3DoXM=?= <et@etit.hu>
To: win-pv-devel@lists.xenproject.org
Message-ID: <5c280b55-a48e-1fb1-7770-c664c44fbed7@etit.hu>
Subject: Re: [win-pv-devel] Signed 8.1.0 drivers
References: <08a801d1e760$3f2549a0$bd6fdce0$@thinkhuge.net>
 <c582eb60539340008a1fbc241346ba5e@AMSPEX02CL03.citrite.net>
 <08bf01d1e766$85a68be0$90f3a3a0$@thinkhuge.net>
In-Reply-To: <08bf01d1e766$85a68be0$90f3a3a0$@thinkhuge.net>

--AnwHcn0c2jihht4g1wKiSqPKm1cocv3GP
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hi.
I played quite a lot with those EJB drivers.

when you uninstall them, you need to be extremely sure, that you
uninstalled allprevious versions, and used the uninstaller.bat file too,
and also you removed any reference fromt he registry. pls browse through
the archives of the list, becaosuse there already had been several
scripts published on this to resolv this problem.

After unisntallation a reboot is required, then booting into safe mode
and installing the new drivers should do the trick.

2016-07-26 19:52 keltez=C3=A9ssel, Brandon Shoemaker =C3=ADrta:
> Hey Paul and list,
>=20
> That fixed it!  Okay so I will remember that one update is needed for a=
ny new clean Windows 2008 R2 install not yet updated.
>=20
> Still I am not sure about the reason why the EJB digital driver uninsta=
ll and update to these drivers resulted in Windows 2008 R2 hanging foreve=
r on reboot.  I tested this twice with the same results.  I'd expect you =
may see some others complain of seeing this problem in the future.  Maybe=
 someone with more time and capability than me can later confirm a workin=
g procedure for upgrading from those drivers to these new drivers that ca=
n result in success.
>=20
> My procedure was:
>=20
> 1. Uninstall the EJB digital drivers from the Windows control panel
> 2. Don't reboot yet
> 3. Install all the new drivers
> 4. reboot
> 5. I found if you reboot first before installing the new drivers you en=
d up with a blue screen
>=20
> My procedure must be incomplete or have flaws.
>=20
> Thanks again for your support on this list.
>=20
>=20
>> -----Original Message-----
>> From: Paul Durrant
>> Sent: 26 July 2016 18:24
>> To: 'Brandon Shoemaker'; win-pv-devel@lists.xenproject.org
>> Subject: RE: [win-pv-devel] Signed 8.1.0 drivers
>>
>>> -----Original Message-----
>>> From: win-pv-devel=20
>>> [mailto:win-pv-devel-bounces@lists.xenproject.org]
>> On
>>> Behalf Of Brandon Shoemaker
>>> Sent: 26 July 2016 18:08
>>> To: win-pv-devel@lists.xenproject.org
>>> Subject: [win-pv-devel] Signed 8.1.0 drivers
>>>
>>> Hello,
>>>
>>> I have been waiting on these new signed drivers.  Thanks for finally =

>>> making them available!
>>>
>>> I have tested and run into a problems unfortunately so I wanted to=20
>>> report this.
>>>
>>> First I tried uninstalling the EJB digital drivers
>>> (ejbpv_Vista2008x64_1.0.1105.msi) and installing these new drivers=20
>>> on Windows 2008 R2 x64 existing VPS.  After rebooting Windows 2008=20
>>> R2
>> hangs
>>> forever at boot.
>>>
>>> Secondly I have installed a clean Windows 2008 R2 and then installed =

>>> all the drivers and when I reboot it goes into recovery mode.  I=20
>>> happen to check Windows device manager before I rebooted and I=20
>>> noticed that the "Xen PV Bus" driver has a yellow warning symbol as s=
hown in the screenshot >
>>> https://postimg.org/image/x08g7n4wn/   it says it cannot verify the d=
igital
>>> signature for the Xen PV Bus drivers.  Nothing was done but the=20
>>> install of Windows and then immediate install of the drivers.
>>
>> I suspect this is because the drivers are signed with SHA-256 and you =

>> may need a hotfix to enable verification of kernel mode drivers signed=
=20
>> with a
>> SHA-256 cert.
>=20
> Specifically see https://technet.microsoft.com/en-us/library/security/3=
033929?f=3D255&MSPPError=3D-2147217396
>=20
>>
>>   Paul
>>
>=20
>=20
>=20
> _______________________________________________
> win-pv-devel mailing list
> win-pv-devel@lists.xenproject.org
> https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
>=20

--=20


=C3=89li=C3=A1s Tam=C3=A1s
Thomas Elias

ETIT[nwpro] KFT, =C3=9Cgyvezet=C5=91-H=C3=A1l=C3=B3zatbiztons=C3=A1gi spe=
cialista
ETIT[nwpro] Ltd, General Manager-Network security specialist

Tel. HU: +36/30-497-1626
Tel. DE: +49/160-651-8723
OpenPGP pubkey: http://etit.hu/doc/et-pub.asc

Okleveles m=C3=A9rn=C3=B6k-informatikus (MSC)
Master of Science in Information Technology (MSC)

Kapcsolat: http://etit.hu/index.php/hu/kapcsolat
Jogi nyilatkozat: http://etit.hu/disclaimer-email-hu.txt
Contact: http://etit.hu/index.php/en/contact
Disclaimer: http://etit.hu/disclaimer-email-en.txt


--AnwHcn0c2jihht4g1wKiSqPKm1cocv3GP--

--HD9p74CbJ6aAO6cF6m0pV1OjcmATGpQql
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCAAGBQJXmKpIAAoJENWYes1C3s/C8cIP/iZCVzN8GjFUbYxX9PJLM4iV
6GDZvFUVYe+HdLzvGUZzIMa+pQiE+kmJwHOWgFo0VvywcdNhN+iBEW6wyZm+uMwf
dDaMcVkmwXrtBKMmSo0SN5N69ohn49QMum78ImkTqx+Em5KMNcHO/wge3tcg3q8D
5Vo/T+2uKQR4LBh65HIP9DH5tqkenBFkqtd57dP4oS4dEbKMm82+WwycbNNkuv7j
76MByAy6BN2btR15DuIrZizUTzFhDirnMo2HDPjQqhErq2u29prP5vvq3R/uGJL5
Mdk2JxCfGTulVg2ztlZmhlCuLc29+s/cXDRCJgrlGLG0I1qcmzN8yF0gV6eGIdOK
5+YUsJtP90PJ+lYBd5tcIjy2+uKJOtl9oQQ+o0DAtDEiS5KXSkhv+0K4HGTNzP7M
Ul7rPE2AWNizrdgFQd/gou8o2GO0Q8JQRMPLj0K4ErNEj+UIXt5f4o/ZEJIf2Hsq
qTciTaZbElE4Aazptc5KOsuZvq0Pwzgkz+pBlVQvCf0rh2gBag1IrHUQNS1N0+c6
yqoxWDRQnIZ6SL1oQ0R+dWaqKOqGJfBfisyGoiuKpmqJu2rgk8TYzljKmY6qj+n9
e7Zkx5sjE90pm7Tlt6zokbRQpiiOd8zdX5PcaXzJxxQSU0xEZ/xJgneRRoUiyp/l
n4oa6k5FqR0GQptYRMV6
=R8bi
-----END PGP SIGNATURE-----

--HD9p74CbJ6aAO6cF6m0pV1OjcmATGpQql--


--===============4583959515373903002==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============4583959515373903002==--


From win-pv-devel-bounces@lists.xenproject.org Wed Jul 27 12:35:20 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 27 Jul 2016 12:35:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bSO3I-00015H-39; Wed, 27 Jul 2016 12:35:08 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <et@etit.hu>) id 1bSO3F-00014f-Mf
 for win-pv-devel@lists.xenproject.org; Wed, 27 Jul 2016 12:35:06 +0000
Received: from [193.109.254.147] by server-7.bemta-14.messagelabs.com id
 E9/95-06589-97AA8975; Wed, 27 Jul 2016 12:35:05 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrKKsWRWlGSWpSXmKPExsUSd3yrvG75qhn
 hBj82yVr8WZzowOhx+MMVlgDGKNbMvKT8igTWjMnztjAXvNKrWHxhIXsD4xTNLkYuDiGBbYwS
 U393sHcxcnBICChJtDS7QcR3Mkq0bz7PDOKwCDQyS+xZdZYJxJEQWMsosXHHZ0aIsouMEh3n9
 7CiKePkEBYwkHj96SobiC0ioCpxbfkxNoiOlYwSszvns4Ak2ASMJVrPLWcEsfkFZCU+rpwI1s
 wrYCWxuvE3WJwFqHnLt/1gg0QFwiVWznzGAlEjKHFy5hMwm1PARuLz069gJzELtDNK3Dv5GSw
 hISAscWT/TpYJjMKzkPTMQlYHkmAW8Jb43rWBaRaSo2YhuXwWkqNmIfluFrKPZiG5BGKousSf
 eZeYIWxtiWULX0PZthLr1r2HWqwn8fZ3L5RtKbF+xyf2BYx8qxg1ilOLylKLdI0M9JKKMtMzS
 nITM3N0DQ1N9HJTi4sT01NzEpOK9ZLzczcxAqO/noGBcQdj52W/Q4ySHExKoryLHGeEC/El5a
 dUZiQWZ8QXleakFh9ilOHgUJLgFV4JlBMsSk1PrUjLzAGmIZi0BAePkggvG0iat7ggMbc4Mx0
 idYpRUUqclxMkIQCSyCjNg2uDpb5LjLJSwryMDAwMQjwFqUW5mSWo8q8YxTkYlYR5LUGm8GTm
 lcBNfwW0mAlocXEs2OKSRISUVAOjrLc9p/6+h8e/F7nN+mP2IPTm+RP/NSt17Zfcs09apd7ba
 v15u5TCthnaxWVMG3etNFi1Yeu/z4/DODyW6px8Gci2mFfzv2laeHug6W7+5rb9D9uvXpX6s/
 TYtqUBKu0TmTltlq1P2Dm7y8gkvYf9sPlKmTCz10nz+5IXTCp6LaQz4dfnXVeClViKMxINtZi
 LihMBV1XweHgDAAA=
X-Env-Sender: et@etit.hu
X-Msg-Ref: server-16.tower-27.messagelabs.com!1469622903!56239231!1
X-Originating-IP: [94.199.181.31]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 37380 invoked from network); 27 Jul 2016 12:35:03 -0000
Received: from mail.etit.hu (HELO mail.etit.hu) (94.199.181.31)
 by server-16.tower-27.messagelabs.com with SMTP; 27 Jul 2016 12:35:03 -0000
Received: from localhost (localhost [127.0.0.1])
 by mail.etit.hu (Postfix) with ESMTP id 721B44041AD
 for <win-pv-devel@lists.xenproject.org>; Wed, 27 Jul 2016 14:35:02 +0200 (CEST)
X-Virus-Scanned: AMAVIS at etit.hu
Received: from mail.etit.hu (localhost [127.0.0.1])
 by mail.etit.hu (Postfix) with ESMTP id A31CA4041AE
 for <win-pv-devel@lists.xenproject.org>; Wed, 27 Jul 2016 14:34:42 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=etit.hu; s=mail;
 t=1469622882; bh=svGKFxqTaAg71hqBl0lLfri06J+r7djT6FtStDIL+7s=;
 h=Subject:To:From:Message-ID:Date:MIME-Version:Content-Type:From;
 b=Bqp1NM8uDJHf0fodbzcnq2XMFiESbySP+6RlHBcEaCHsyivC3v+Ejlt+wO+B4eNfM
 F/UdbvOUQGcideb2l6ctJ8+rirgaXUIMbDuajFcdwBUvin6TLy9Rx+f3fSVn+x7K8I
 14rAnuxrE5Evx8b1YLttWZu/mgzextFtbPmV7Ec4=
X-Virus-Scanner: This message was checked by ESET Mail Security
 for Linux/BSD. For more information on ESET Mail Security,
 please, visit our website: http://www.eset.com/.
Received: from [192.168.100.225] (87.229.89.127.z-net.hu [87.229.89.127])
 by mail.etit.hu (Postfix) with ESMTPSA id 63D4E4041AD
 for <win-pv-devel@lists.xenproject.org>; Wed, 27 Jul 2016 14:34:42 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=etit.hu; s=mail;
 t=1469622882; bh=svGKFxqTaAg71hqBl0lLfri06J+r7djT6FtStDIL+7s=;
 h=Subject:To:From:Message-ID:Date:MIME-Version:Content-Type:From;
 b=Bqp1NM8uDJHf0fodbzcnq2XMFiESbySP+6RlHBcEaCHsyivC3v+Ejlt+wO+B4eNfM
 F/UdbvOUQGcideb2l6ctJ8+rirgaXUIMbDuajFcdwBUvin6TLy9Rx+f3fSVn+x7K8I
 14rAnuxrE5Evx8b1YLttWZu/mgzextFtbPmV7Ec4=
To: win-pv-devel@lists.xenproject.org
References: <08a801d1e760$3f2549a0$bd6fdce0$@thinkhuge.net>
 <c582eb60539340008a1fbc241346ba5e@AMSPEX02CL03.citrite.net>
 <08bf01d1e766$85a68be0$90f3a3a0$@thinkhuge.net>
From: =?UTF-8?B?w4lsacOhcyBUYW3DoXM=?= <et@etit.hu>
Organization: ETIT[nwpro] KFT
Message-ID: <5c280b55-a48e-1fb1-7770-c664c44fbed7@etit.hu>
Date: Wed, 27 Jul 2016 14:34:16 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
 Thunderbird/45.2.0
MIME-Version: 1.0
In-Reply-To: <08bf01d1e766$85a68be0$90f3a3a0$@thinkhuge.net>
X-EsetResult: clean
Subject: Re: [win-pv-devel] Signed 8.1.0 drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============4583959515373903002=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--===============4583959515373903002==
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="HD9p74CbJ6aAO6cF6m0pV1OjcmATGpQql"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--HD9p74CbJ6aAO6cF6m0pV1OjcmATGpQql
Content-Type: multipart/mixed; boundary="AnwHcn0c2jihht4g1wKiSqPKm1cocv3GP"
From: =?UTF-8?B?w4lsacOhcyBUYW3DoXM=?= <et@etit.hu>
To: win-pv-devel@lists.xenproject.org
Message-ID: <5c280b55-a48e-1fb1-7770-c664c44fbed7@etit.hu>
Subject: Re: [win-pv-devel] Signed 8.1.0 drivers
References: <08a801d1e760$3f2549a0$bd6fdce0$@thinkhuge.net>
 <c582eb60539340008a1fbc241346ba5e@AMSPEX02CL03.citrite.net>
 <08bf01d1e766$85a68be0$90f3a3a0$@thinkhuge.net>
In-Reply-To: <08bf01d1e766$85a68be0$90f3a3a0$@thinkhuge.net>

--AnwHcn0c2jihht4g1wKiSqPKm1cocv3GP
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hi.
I played quite a lot with those EJB drivers.

when you uninstall them, you need to be extremely sure, that you
uninstalled allprevious versions, and used the uninstaller.bat file too,
and also you removed any reference fromt he registry. pls browse through
the archives of the list, becaosuse there already had been several
scripts published on this to resolv this problem.

After unisntallation a reboot is required, then booting into safe mode
and installing the new drivers should do the trick.

2016-07-26 19:52 keltez=C3=A9ssel, Brandon Shoemaker =C3=ADrta:
> Hey Paul and list,
>=20
> That fixed it!  Okay so I will remember that one update is needed for a=
ny new clean Windows 2008 R2 install not yet updated.
>=20
> Still I am not sure about the reason why the EJB digital driver uninsta=
ll and update to these drivers resulted in Windows 2008 R2 hanging foreve=
r on reboot.  I tested this twice with the same results.  I'd expect you =
may see some others complain of seeing this problem in the future.  Maybe=
 someone with more time and capability than me can later confirm a workin=
g procedure for upgrading from those drivers to these new drivers that ca=
n result in success.
>=20
> My procedure was:
>=20
> 1. Uninstall the EJB digital drivers from the Windows control panel
> 2. Don't reboot yet
> 3. Install all the new drivers
> 4. reboot
> 5. I found if you reboot first before installing the new drivers you en=
d up with a blue screen
>=20
> My procedure must be incomplete or have flaws.
>=20
> Thanks again for your support on this list.
>=20
>=20
>> -----Original Message-----
>> From: Paul Durrant
>> Sent: 26 July 2016 18:24
>> To: 'Brandon Shoemaker'; win-pv-devel@lists.xenproject.org
>> Subject: RE: [win-pv-devel] Signed 8.1.0 drivers
>>
>>> -----Original Message-----
>>> From: win-pv-devel=20
>>> [mailto:win-pv-devel-bounces@lists.xenproject.org]
>> On
>>> Behalf Of Brandon Shoemaker
>>> Sent: 26 July 2016 18:08
>>> To: win-pv-devel@lists.xenproject.org
>>> Subject: [win-pv-devel] Signed 8.1.0 drivers
>>>
>>> Hello,
>>>
>>> I have been waiting on these new signed drivers.  Thanks for finally =

>>> making them available!
>>>
>>> I have tested and run into a problems unfortunately so I wanted to=20
>>> report this.
>>>
>>> First I tried uninstalling the EJB digital drivers
>>> (ejbpv_Vista2008x64_1.0.1105.msi) and installing these new drivers=20
>>> on Windows 2008 R2 x64 existing VPS.  After rebooting Windows 2008=20
>>> R2
>> hangs
>>> forever at boot.
>>>
>>> Secondly I have installed a clean Windows 2008 R2 and then installed =

>>> all the drivers and when I reboot it goes into recovery mode.  I=20
>>> happen to check Windows device manager before I rebooted and I=20
>>> noticed that the "Xen PV Bus" driver has a yellow warning symbol as s=
hown in the screenshot >
>>> https://postimg.org/image/x08g7n4wn/   it says it cannot verify the d=
igital
>>> signature for the Xen PV Bus drivers.  Nothing was done but the=20
>>> install of Windows and then immediate install of the drivers.
>>
>> I suspect this is because the drivers are signed with SHA-256 and you =

>> may need a hotfix to enable verification of kernel mode drivers signed=
=20
>> with a
>> SHA-256 cert.
>=20
> Specifically see https://technet.microsoft.com/en-us/library/security/3=
033929?f=3D255&MSPPError=3D-2147217396
>=20
>>
>>   Paul
>>
>=20
>=20
>=20
> _______________________________________________
> win-pv-devel mailing list
> win-pv-devel@lists.xenproject.org
> https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
>=20

--=20


=C3=89li=C3=A1s Tam=C3=A1s
Thomas Elias

ETIT[nwpro] KFT, =C3=9Cgyvezet=C5=91-H=C3=A1l=C3=B3zatbiztons=C3=A1gi spe=
cialista
ETIT[nwpro] Ltd, General Manager-Network security specialist

Tel. HU: +36/30-497-1626
Tel. DE: +49/160-651-8723
OpenPGP pubkey: http://etit.hu/doc/et-pub.asc

Okleveles m=C3=A9rn=C3=B6k-informatikus (MSC)
Master of Science in Information Technology (MSC)

Kapcsolat: http://etit.hu/index.php/hu/kapcsolat
Jogi nyilatkozat: http://etit.hu/disclaimer-email-hu.txt
Contact: http://etit.hu/index.php/en/contact
Disclaimer: http://etit.hu/disclaimer-email-en.txt


--AnwHcn0c2jihht4g1wKiSqPKm1cocv3GP--

--HD9p74CbJ6aAO6cF6m0pV1OjcmATGpQql
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCAAGBQJXmKpIAAoJENWYes1C3s/C8cIP/iZCVzN8GjFUbYxX9PJLM4iV
6GDZvFUVYe+HdLzvGUZzIMa+pQiE+kmJwHOWgFo0VvywcdNhN+iBEW6wyZm+uMwf
dDaMcVkmwXrtBKMmSo0SN5N69ohn49QMum78ImkTqx+Em5KMNcHO/wge3tcg3q8D
5Vo/T+2uKQR4LBh65HIP9DH5tqkenBFkqtd57dP4oS4dEbKMm82+WwycbNNkuv7j
76MByAy6BN2btR15DuIrZizUTzFhDirnMo2HDPjQqhErq2u29prP5vvq3R/uGJL5
Mdk2JxCfGTulVg2ztlZmhlCuLc29+s/cXDRCJgrlGLG0I1qcmzN8yF0gV6eGIdOK
5+YUsJtP90PJ+lYBd5tcIjy2+uKJOtl9oQQ+o0DAtDEiS5KXSkhv+0K4HGTNzP7M
Ul7rPE2AWNizrdgFQd/gou8o2GO0Q8JQRMPLj0K4ErNEj+UIXt5f4o/ZEJIf2Hsq
qTciTaZbElE4Aazptc5KOsuZvq0Pwzgkz+pBlVQvCf0rh2gBag1IrHUQNS1N0+c6
yqoxWDRQnIZ6SL1oQ0R+dWaqKOqGJfBfisyGoiuKpmqJu2rgk8TYzljKmY6qj+n9
e7Zkx5sjE90pm7Tlt6zokbRQpiiOd8zdX5PcaXzJxxQSU0xEZ/xJgneRRoUiyp/l
n4oa6k5FqR0GQptYRMV6
=R8bi
-----END PGP SIGNATURE-----

--HD9p74CbJ6aAO6cF6m0pV1OjcmATGpQql--


--===============4583959515373903002==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============4583959515373903002==--


From win-pv-devel-bounces@lists.xenproject.org Wed Jul 27 12:41:17 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 27 Jul 2016 12:41:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bSO9E-0001Ys-GN; Wed, 27 Jul 2016 12:41:16 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=0097d8557=Paul.Durrant@citrix.com>)
 id 1bSO9D-0001Ym-QH
 for win-pv-devel@lists.xenproject.org; Wed, 27 Jul 2016 12:41:15 +0000
Received: from [85.158.143.35] by server-1.bemta-6.messagelabs.com id
 92/7A-21406-BEBA8975; Wed, 27 Jul 2016 12:41:15 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrBIsWRWlGSWpSXmKPExsWyU9JRQvfV6hn
 hBsfWS1j8WZzowOhx+MMVlgDGKNbMvKT8igTWjIWdU1gKvhtXLH/5ha2BcYFxFyMHh4SAn8SS
 brEuRk4ONgEdiaVH5zOB2CIC1RJf+p4wg9jCAgYSL3f/YAQpFxEwlLi3KA2ixEhi95U/jCA2i
 4CqxIPFR1lBbF4Bd4mrTQeBbC4OIYGbjBK3b/8DK+IUsJY4+v0OC4jNKCAr8aVxNdh8ZgFxiV
 tPIPZKCAhILNlznhnCFpV4+fgfK4RtILF16T4WkBuYBTQl1u/Sh2hVlJjS/ZAdYq+gxMmZT8D
 GCwmoSGx5fABqDLfEys9/WCYwisxCsm0WwqRZSCbNQjJpASPLKkb14tSistQiXWO9pKLM9IyS
 3MTMHF1DAzO93NTi4sT01JzEpGK95PzcTYzAWGAAgh2MHf+cDjFKcjApifIucpwRLsSXlJ9Sm
 ZFYnBFfVJqTWnyIUYaDQ0mClx8YW0KCRanpqRVpmTnAqIRJS3DwKInwqoGkeYsLEnOLM9MhUq
 cYdTmuXX6wlkmIJS8/L1VKnPfDKqAiAZCijNI8uBGwBHGJUVZKmJcR6CghnoLUotzMElT5V4z
 iHIxKwryyIKt4MvNK4Da9AjqCCeiI4liwI0oSEVJSDYwr911fxBDt+7l8lc61jhknHkd677g2
 lVup8KgN2/mNVxaUPPjrzff/Zqzpv3nPs3n6bpndrd5xuH3ixtykfv1pYuoXP02rs5Bq3mC2I
 t5OvmKmxyHlkniPyOu8jDaKW+TyVGf+Tsq5Vz5JNvzogb0hc8IzWaKV/+7TSWmWL3uesG1306
 0PoaeUWIozEg21mIuKEwGehWYUCwMAAA==
X-Env-Sender: prvs=0097d8557=Paul.Durrant@citrix.com
X-Msg-Ref: server-11.tower-21.messagelabs.com!1469623274!25840339!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 14134 invoked from network); 27 Jul 2016 12:41:14 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-11.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 27 Jul 2016 12:41:14 -0000
X-IronPort-AV: E=Sophos;i="5.28,429,1464652800"; d="scan'208";a="27267615"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: =?utf-8?B?w4lsacOhcyBUYW3DoXM=?= <et@etit.hu>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] Signed 8.1.0 drivers
Thread-Index: AQHR6ANe/NURN0QRkkymxst+nGKfrqAsN7vw
Date: Wed, 27 Jul 2016 12:41:12 +0000
Message-ID: <cbaa637eef394277ac8c0d11885a986f@AMSPEX02CL03.citrite.net>
References: <08a801d1e760$3f2549a0$bd6fdce0$@thinkhuge.net>
 <c582eb60539340008a1fbc241346ba5e@AMSPEX02CL03.citrite.net>
 <08bf01d1e766$85a68be0$90f3a3a0$@thinkhuge.net>
 <5c280b55-a48e-1fb1-7770-c664c44fbed7@etit.hu>
In-Reply-To: <5c280b55-a48e-1fb1-7770-c664c44fbed7@etit.hu>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] Signed 8.1.0 drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIMOJbGnDoXMgVGFtw6FzDQo+IFNlbnQ6IDI3IEp1bHkgMjAxNiAxMzozNA0KPiBUbzogd2lu
LXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IFN1YmplY3Q6IFJlOiBbd2luLXB2LWRl
dmVsXSBTaWduZWQgOC4xLjAgZHJpdmVycw0KPiANCj4gSGkuDQo+IEkgcGxheWVkIHF1aXRlIGEg
bG90IHdpdGggdGhvc2UgRUpCIGRyaXZlcnMuDQo+IA0KPiB3aGVuIHlvdSB1bmluc3RhbGwgdGhl
bSwgeW91IG5lZWQgdG8gYmUgZXh0cmVtZWx5IHN1cmUsIHRoYXQgeW91DQo+IHVuaW5zdGFsbGVk
IGFsbHByZXZpb3VzIHZlcnNpb25zLCBhbmQgdXNlZCB0aGUgdW5pbnN0YWxsZXIuYmF0IGZpbGUg
dG9vLA0KPiBhbmQgYWxzbyB5b3UgcmVtb3ZlZCBhbnkgcmVmZXJlbmNlIGZyb210IGhlIHJlZ2lz
dHJ5LiBwbHMgYnJvd3NlIHRocm91Z2gNCj4gdGhlIGFyY2hpdmVzIG9mIHRoZSBsaXN0LCBiZWNh
b3N1c2UgdGhlcmUgYWxyZWFkeSBoYWQgYmVlbiBzZXZlcmFsDQo+IHNjcmlwdHMgcHVibGlzaGVk
IG9uIHRoaXMgdG8gcmVzb2x2IHRoaXMgcHJvYmxlbS4NCj4gDQo+IEFmdGVyIHVuaXNudGFsbGF0
aW9uIGEgcmVib290IGlzIHJlcXVpcmVkLCB0aGVuIGJvb3RpbmcgaW50byBzYWZlIG1vZGUNCj4g
YW5kIGluc3RhbGxpbmcgdGhlIG5ldyBkcml2ZXJzIHNob3VsZCBkbyB0aGUgdHJpY2suDQo+IA0K
DQpUaGFua3MgRWxpYXMuIFJlYWxseSB5b3Ugc2hvdWxkIG5vdCBpbnN0YWxsIG5ldyBQViBkcml2
ZXJzIHVudGlsIHlvdSBoYXZlIGEgVk0gdGhhdCBib290cyBub3JtYWxseSBhZnRlciBoYXZpbmcg
cmVtb3ZlZCBwcmV2aW91cyBQViBkcml2ZXJzLiBJbnN0YWxsYXRpb24gb2YgdGhlIFhlbiBQcm9q
ZWN0IGRyaXZlcnMgc2hvdWxkIHRoZW4gYmUgZG9uZSBhZnRlciBhIG5vcm1hbCBib290ICh3aXRo
IGVtdWxhdGVkIGRldmljZXMpLCBub3Qgd2hlbiBpbiBzYWZlIG1vZGUuDQoNCiAgUGF1bA0KDQo+
IDIwMTYtMDctMjYgMTk6NTIga2VsdGV6w6lzc2VsLCBCcmFuZG9uIFNob2VtYWtlciDDrXJ0YToN
Cj4gPiBIZXkgUGF1bCBhbmQgbGlzdCwNCj4gPg0KPiA+IFRoYXQgZml4ZWQgaXQhICBPa2F5IHNv
IEkgd2lsbCByZW1lbWJlciB0aGF0IG9uZSB1cGRhdGUgaXMgbmVlZGVkIGZvciBhbnkNCj4gbmV3
IGNsZWFuIFdpbmRvd3MgMjAwOCBSMiBpbnN0YWxsIG5vdCB5ZXQgdXBkYXRlZC4NCj4gPg0KPiA+
IFN0aWxsIEkgYW0gbm90IHN1cmUgYWJvdXQgdGhlIHJlYXNvbiB3aHkgdGhlIEVKQiBkaWdpdGFs
IGRyaXZlciB1bmluc3RhbGwgYW5kDQo+IHVwZGF0ZSB0byB0aGVzZSBkcml2ZXJzIHJlc3VsdGVk
IGluIFdpbmRvd3MgMjAwOCBSMiBoYW5naW5nIGZvcmV2ZXIgb24NCj4gcmVib290LiAgSSB0ZXN0
ZWQgdGhpcyB0d2ljZSB3aXRoIHRoZSBzYW1lIHJlc3VsdHMuICBJJ2QgZXhwZWN0IHlvdSBtYXkg
c2VlDQo+IHNvbWUgb3RoZXJzIGNvbXBsYWluIG9mIHNlZWluZyB0aGlzIHByb2JsZW0gaW4gdGhl
IGZ1dHVyZS4gIE1heWJlIHNvbWVvbmUNCj4gd2l0aCBtb3JlIHRpbWUgYW5kIGNhcGFiaWxpdHkg
dGhhbiBtZSBjYW4gbGF0ZXIgY29uZmlybSBhIHdvcmtpbmcgcHJvY2VkdXJlDQo+IGZvciB1cGdy
YWRpbmcgZnJvbSB0aG9zZSBkcml2ZXJzIHRvIHRoZXNlIG5ldyBkcml2ZXJzIHRoYXQgY2FuIHJl
c3VsdCBpbg0KPiBzdWNjZXNzLg0KPiA+DQo+ID4gTXkgcHJvY2VkdXJlIHdhczoNCj4gPg0KPiA+
IDEuIFVuaW5zdGFsbCB0aGUgRUpCIGRpZ2l0YWwgZHJpdmVycyBmcm9tIHRoZSBXaW5kb3dzIGNv
bnRyb2wgcGFuZWwNCj4gPiAyLiBEb24ndCByZWJvb3QgeWV0DQo+ID4gMy4gSW5zdGFsbCBhbGwg
dGhlIG5ldyBkcml2ZXJzDQo+ID4gNC4gcmVib290DQo+ID4gNS4gSSBmb3VuZCBpZiB5b3UgcmVi
b290IGZpcnN0IGJlZm9yZSBpbnN0YWxsaW5nIHRoZSBuZXcgZHJpdmVycyB5b3UgZW5kIHVwDQo+
IHdpdGggYSBibHVlIHNjcmVlbg0KPiA+DQo+ID4gTXkgcHJvY2VkdXJlIG11c3QgYmUgaW5jb21w
bGV0ZSBvciBoYXZlIGZsYXdzLg0KPiA+DQo+ID4gVGhhbmtzIGFnYWluIGZvciB5b3VyIHN1cHBv
cnQgb24gdGhpcyBsaXN0Lg0KPiA+DQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t
LS0NCj4gPj4gRnJvbTogUGF1bCBEdXJyYW50DQo+ID4+IFNlbnQ6IDI2IEp1bHkgMjAxNiAxODoy
NA0KPiA+PiBUbzogJ0JyYW5kb24gU2hvZW1ha2VyJzsgd2luLXB2LWRldmVsQGxpc3RzLnhlbnBy
b2plY3Qub3JnDQo+ID4+IFN1YmplY3Q6IFJFOiBbd2luLXB2LWRldmVsXSBTaWduZWQgOC4xLjAg
ZHJpdmVycw0KPiA+Pg0KPiA+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4+IEZy
b206IHdpbi1wdi1kZXZlbA0KPiA+Pj4gW21haWx0bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0
cy54ZW5wcm9qZWN0Lm9yZ10NCj4gPj4gT24NCj4gPj4+IEJlaGFsZiBPZiBCcmFuZG9uIFNob2Vt
YWtlcg0KPiA+Pj4gU2VudDogMjYgSnVseSAyMDE2IDE4OjA4DQo+ID4+PiBUbzogd2luLXB2LWRl
dmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+ID4+PiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBT
aWduZWQgOC4xLjAgZHJpdmVycw0KPiA+Pj4NCj4gPj4+IEhlbGxvLA0KPiA+Pj4NCj4gPj4+IEkg
aGF2ZSBiZWVuIHdhaXRpbmcgb24gdGhlc2UgbmV3IHNpZ25lZCBkcml2ZXJzLiAgVGhhbmtzIGZv
ciBmaW5hbGx5DQo+ID4+PiBtYWtpbmcgdGhlbSBhdmFpbGFibGUhDQo+ID4+Pg0KPiA+Pj4gSSBo
YXZlIHRlc3RlZCBhbmQgcnVuIGludG8gYSBwcm9ibGVtcyB1bmZvcnR1bmF0ZWx5IHNvIEkgd2Fu
dGVkIHRvDQo+ID4+PiByZXBvcnQgdGhpcy4NCj4gPj4+DQo+ID4+PiBGaXJzdCBJIHRyaWVkIHVu
aW5zdGFsbGluZyB0aGUgRUpCIGRpZ2l0YWwgZHJpdmVycw0KPiA+Pj4gKGVqYnB2X1Zpc3RhMjAw
OHg2NF8xLjAuMTEwNS5tc2kpIGFuZCBpbnN0YWxsaW5nIHRoZXNlIG5ldyBkcml2ZXJzDQo+ID4+
PiBvbiBXaW5kb3dzIDIwMDggUjIgeDY0IGV4aXN0aW5nIFZQUy4gIEFmdGVyIHJlYm9vdGluZyBX
aW5kb3dzIDIwMDgNCj4gPj4+IFIyDQo+ID4+IGhhbmdzDQo+ID4+PiBmb3JldmVyIGF0IGJvb3Qu
DQo+ID4+Pg0KPiA+Pj4gU2Vjb25kbHkgSSBoYXZlIGluc3RhbGxlZCBhIGNsZWFuIFdpbmRvd3Mg
MjAwOCBSMiBhbmQgdGhlbiBpbnN0YWxsZWQNCj4gPj4+IGFsbCB0aGUgZHJpdmVycyBhbmQgd2hl
biBJIHJlYm9vdCBpdCBnb2VzIGludG8gcmVjb3ZlcnkgbW9kZS4gIEkNCj4gPj4+IGhhcHBlbiB0
byBjaGVjayBXaW5kb3dzIGRldmljZSBtYW5hZ2VyIGJlZm9yZSBJIHJlYm9vdGVkIGFuZCBJDQo+
ID4+PiBub3RpY2VkIHRoYXQgdGhlICJYZW4gUFYgQnVzIiBkcml2ZXIgaGFzIGEgeWVsbG93IHdh
cm5pbmcgc3ltYm9sIGFzDQo+IHNob3duIGluIHRoZSBzY3JlZW5zaG90ID4NCj4gPj4+IGh0dHBz
Oi8vcG9zdGltZy5vcmcvaW1hZ2UveDA4ZzduNHduLyAgIGl0IHNheXMgaXQgY2Fubm90IHZlcmlm
eSB0aGUNCj4gZGlnaXRhbA0KPiA+Pj4gc2lnbmF0dXJlIGZvciB0aGUgWGVuIFBWIEJ1cyBkcml2
ZXJzLiAgTm90aGluZyB3YXMgZG9uZSBidXQgdGhlDQo+ID4+PiBpbnN0YWxsIG9mIFdpbmRvd3Mg
YW5kIHRoZW4gaW1tZWRpYXRlIGluc3RhbGwgb2YgdGhlIGRyaXZlcnMuDQo+ID4+DQo+ID4+IEkg
c3VzcGVjdCB0aGlzIGlzIGJlY2F1c2UgdGhlIGRyaXZlcnMgYXJlIHNpZ25lZCB3aXRoIFNIQS0y
NTYgYW5kIHlvdQ0KPiA+PiBtYXkgbmVlZCBhIGhvdGZpeCB0byBlbmFibGUgdmVyaWZpY2F0aW9u
IG9mIGtlcm5lbCBtb2RlIGRyaXZlcnMgc2lnbmVkDQo+ID4+IHdpdGggYQ0KPiA+PiBTSEEtMjU2
IGNlcnQuDQo+ID4NCj4gPiBTcGVjaWZpY2FsbHkgc2VlIGh0dHBzOi8vdGVjaG5ldC5taWNyb3Nv
ZnQuY29tL2VuLQ0KPiB1cy9saWJyYXJ5L3NlY3VyaXR5LzMwMzM5Mjk/Zj0yNTUmTVNQUEVycm9y
PS0yMTQ3MjE3Mzk2DQo+ID4NCj4gPj4NCj4gPj4gICBQYXVsDQo+ID4+DQo+ID4NCj4gPg0KPiA+
DQo+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4g
PiB3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0DQo+ID4gd2luLXB2LWRldmVsQGxpc3RzLnhlbnBy
b2plY3Qub3JnDQo+ID4gaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxt
YW4vbGlzdGluZm8vd2luLXB2LWRldmVsDQo+ID4NCj4gDQo+IC0tDQo+IA0KPiANCj4gw4lsacOh
cyBUYW3DoXMNCj4gVGhvbWFzIEVsaWFzDQo+IA0KPiBFVElUW253cHJvXSBLRlQsIMOcZ3l2ZXpl
dMWRLUjDoWzDs3phdGJpenRvbnPDoWdpIHNwZWNpYWxpc3RhDQo+IEVUSVRbbndwcm9dIEx0ZCwg
R2VuZXJhbCBNYW5hZ2VyLU5ldHdvcmsgc2VjdXJpdHkgc3BlY2lhbGlzdA0KPiANCj4gVGVsLiBI
VTogKzM2LzMwLTQ5Ny0xNjI2DQo+IFRlbC4gREU6ICs0OS8xNjAtNjUxLTg3MjMNCj4gT3BlblBH
UCBwdWJrZXk6IGh0dHA6Ly9ldGl0Lmh1L2RvYy9ldC1wdWIuYXNjDQo+IA0KPiBPa2xldmVsZXMg
bcOpcm7DtmstaW5mb3JtYXRpa3VzIChNU0MpDQo+IE1hc3RlciBvZiBTY2llbmNlIGluIEluZm9y
bWF0aW9uIFRlY2hub2xvZ3kgKE1TQykNCj4gDQo+IEthcGNzb2xhdDogaHR0cDovL2V0aXQuaHUv
aW5kZXgucGhwL2h1L2thcGNzb2xhdA0KPiBKb2dpIG55aWxhdGtvemF0OiBodHRwOi8vZXRpdC5o
dS9kaXNjbGFpbWVyLWVtYWlsLWh1LnR4dA0KPiBDb250YWN0OiBodHRwOi8vZXRpdC5odS9pbmRl
eC5waHAvZW4vY29udGFjdA0KPiBEaXNjbGFpbWVyOiBodHRwOi8vZXRpdC5odS9kaXNjbGFpbWVy
LWVtYWlsLWVuLnR4dA0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5w
cm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9s
aXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Wed Jul 27 12:41:17 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 27 Jul 2016 12:41:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bSO9E-0001Ys-GN; Wed, 27 Jul 2016 12:41:16 +0000
Received: from mail6.bemta6.messagelabs.com ([85.158.143.247])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=0097d8557=Paul.Durrant@citrix.com>)
 id 1bSO9D-0001Ym-QH
 for win-pv-devel@lists.xenproject.org; Wed, 27 Jul 2016 12:41:15 +0000
Received: from [85.158.143.35] by server-1.bemta-6.messagelabs.com id
 92/7A-21406-BEBA8975; Wed, 27 Jul 2016 12:41:15 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrBIsWRWlGSWpSXmKPExsWyU9JRQvfV6hn
 hBsfWS1j8WZzowOhx+MMVlgDGKNbMvKT8igTWjIWdU1gKvhtXLH/5ha2BcYFxFyMHh4SAn8SS
 brEuRk4ONgEdiaVH5zOB2CIC1RJf+p4wg9jCAgYSL3f/YAQpFxEwlLi3KA2ixEhi95U/jCA2i
 4CqxIPFR1lBbF4Bd4mrTQeBbC4OIYGbjBK3b/8DK+IUsJY4+v0OC4jNKCAr8aVxNdh8ZgFxiV
 tPIPZKCAhILNlznhnCFpV4+fgfK4RtILF16T4WkBuYBTQl1u/Sh2hVlJjS/ZAdYq+gxMmZT8D
 GCwmoSGx5fABqDLfEys9/WCYwisxCsm0WwqRZSCbNQjJpASPLKkb14tSistQiXWO9pKLM9IyS
 3MTMHF1DAzO93NTi4sT01JzEpGK95PzcTYzAWGAAgh2MHf+cDjFKcjApifIucpwRLsSXlJ9Sm
 ZFYnBFfVJqTWnyIUYaDQ0mClx8YW0KCRanpqRVpmTnAqIRJS3DwKInwqoGkeYsLEnOLM9MhUq
 cYdTmuXX6wlkmIJS8/L1VKnPfDKqAiAZCijNI8uBGwBHGJUVZKmJcR6CghnoLUotzMElT5V4z
 iHIxKwryyIKt4MvNK4Da9AjqCCeiI4liwI0oSEVJSDYwr911fxBDt+7l8lc61jhknHkd677g2
 lVup8KgN2/mNVxaUPPjrzff/Zqzpv3nPs3n6bpndrd5xuH3ixtykfv1pYuoXP02rs5Bq3mC2I
 t5OvmKmxyHlkniPyOu8jDaKW+TyVGf+Tsq5Vz5JNvzogb0hc8IzWaKV/+7TSWmWL3uesG1306
 0PoaeUWIozEg21mIuKEwGehWYUCwMAAA==
X-Env-Sender: prvs=0097d8557=Paul.Durrant@citrix.com
X-Msg-Ref: server-11.tower-21.messagelabs.com!1469623274!25840339!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 14134 invoked from network); 27 Jul 2016 12:41:14 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-11.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 27 Jul 2016 12:41:14 -0000
X-IronPort-AV: E=Sophos;i="5.28,429,1464652800"; d="scan'208";a="27267615"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: =?utf-8?B?w4lsacOhcyBUYW3DoXM=?= <et@etit.hu>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] Signed 8.1.0 drivers
Thread-Index: AQHR6ANe/NURN0QRkkymxst+nGKfrqAsN7vw
Date: Wed, 27 Jul 2016 12:41:12 +0000
Message-ID: <cbaa637eef394277ac8c0d11885a986f@AMSPEX02CL03.citrite.net>
References: <08a801d1e760$3f2549a0$bd6fdce0$@thinkhuge.net>
 <c582eb60539340008a1fbc241346ba5e@AMSPEX02CL03.citrite.net>
 <08bf01d1e766$85a68be0$90f3a3a0$@thinkhuge.net>
 <5c280b55-a48e-1fb1-7770-c664c44fbed7@etit.hu>
In-Reply-To: <5c280b55-a48e-1fb1-7770-c664c44fbed7@etit.hu>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
X-DLP: AMS1
Subject: Re: [win-pv-devel] Signed 8.1.0 drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIMOJbGnDoXMgVGFtw6FzDQo+IFNlbnQ6IDI3IEp1bHkgMjAxNiAxMzozNA0KPiBUbzogd2lu
LXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IFN1YmplY3Q6IFJlOiBbd2luLXB2LWRl
dmVsXSBTaWduZWQgOC4xLjAgZHJpdmVycw0KPiANCj4gSGkuDQo+IEkgcGxheWVkIHF1aXRlIGEg
bG90IHdpdGggdGhvc2UgRUpCIGRyaXZlcnMuDQo+IA0KPiB3aGVuIHlvdSB1bmluc3RhbGwgdGhl
bSwgeW91IG5lZWQgdG8gYmUgZXh0cmVtZWx5IHN1cmUsIHRoYXQgeW91DQo+IHVuaW5zdGFsbGVk
IGFsbHByZXZpb3VzIHZlcnNpb25zLCBhbmQgdXNlZCB0aGUgdW5pbnN0YWxsZXIuYmF0IGZpbGUg
dG9vLA0KPiBhbmQgYWxzbyB5b3UgcmVtb3ZlZCBhbnkgcmVmZXJlbmNlIGZyb210IGhlIHJlZ2lz
dHJ5LiBwbHMgYnJvd3NlIHRocm91Z2gNCj4gdGhlIGFyY2hpdmVzIG9mIHRoZSBsaXN0LCBiZWNh
b3N1c2UgdGhlcmUgYWxyZWFkeSBoYWQgYmVlbiBzZXZlcmFsDQo+IHNjcmlwdHMgcHVibGlzaGVk
IG9uIHRoaXMgdG8gcmVzb2x2IHRoaXMgcHJvYmxlbS4NCj4gDQo+IEFmdGVyIHVuaXNudGFsbGF0
aW9uIGEgcmVib290IGlzIHJlcXVpcmVkLCB0aGVuIGJvb3RpbmcgaW50byBzYWZlIG1vZGUNCj4g
YW5kIGluc3RhbGxpbmcgdGhlIG5ldyBkcml2ZXJzIHNob3VsZCBkbyB0aGUgdHJpY2suDQo+IA0K
DQpUaGFua3MgRWxpYXMuIFJlYWxseSB5b3Ugc2hvdWxkIG5vdCBpbnN0YWxsIG5ldyBQViBkcml2
ZXJzIHVudGlsIHlvdSBoYXZlIGEgVk0gdGhhdCBib290cyBub3JtYWxseSBhZnRlciBoYXZpbmcg
cmVtb3ZlZCBwcmV2aW91cyBQViBkcml2ZXJzLiBJbnN0YWxsYXRpb24gb2YgdGhlIFhlbiBQcm9q
ZWN0IGRyaXZlcnMgc2hvdWxkIHRoZW4gYmUgZG9uZSBhZnRlciBhIG5vcm1hbCBib290ICh3aXRo
IGVtdWxhdGVkIGRldmljZXMpLCBub3Qgd2hlbiBpbiBzYWZlIG1vZGUuDQoNCiAgUGF1bA0KDQo+
IDIwMTYtMDctMjYgMTk6NTIga2VsdGV6w6lzc2VsLCBCcmFuZG9uIFNob2VtYWtlciDDrXJ0YToN
Cj4gPiBIZXkgUGF1bCBhbmQgbGlzdCwNCj4gPg0KPiA+IFRoYXQgZml4ZWQgaXQhICBPa2F5IHNv
IEkgd2lsbCByZW1lbWJlciB0aGF0IG9uZSB1cGRhdGUgaXMgbmVlZGVkIGZvciBhbnkNCj4gbmV3
IGNsZWFuIFdpbmRvd3MgMjAwOCBSMiBpbnN0YWxsIG5vdCB5ZXQgdXBkYXRlZC4NCj4gPg0KPiA+
IFN0aWxsIEkgYW0gbm90IHN1cmUgYWJvdXQgdGhlIHJlYXNvbiB3aHkgdGhlIEVKQiBkaWdpdGFs
IGRyaXZlciB1bmluc3RhbGwgYW5kDQo+IHVwZGF0ZSB0byB0aGVzZSBkcml2ZXJzIHJlc3VsdGVk
IGluIFdpbmRvd3MgMjAwOCBSMiBoYW5naW5nIGZvcmV2ZXIgb24NCj4gcmVib290LiAgSSB0ZXN0
ZWQgdGhpcyB0d2ljZSB3aXRoIHRoZSBzYW1lIHJlc3VsdHMuICBJJ2QgZXhwZWN0IHlvdSBtYXkg
c2VlDQo+IHNvbWUgb3RoZXJzIGNvbXBsYWluIG9mIHNlZWluZyB0aGlzIHByb2JsZW0gaW4gdGhl
IGZ1dHVyZS4gIE1heWJlIHNvbWVvbmUNCj4gd2l0aCBtb3JlIHRpbWUgYW5kIGNhcGFiaWxpdHkg
dGhhbiBtZSBjYW4gbGF0ZXIgY29uZmlybSBhIHdvcmtpbmcgcHJvY2VkdXJlDQo+IGZvciB1cGdy
YWRpbmcgZnJvbSB0aG9zZSBkcml2ZXJzIHRvIHRoZXNlIG5ldyBkcml2ZXJzIHRoYXQgY2FuIHJl
c3VsdCBpbg0KPiBzdWNjZXNzLg0KPiA+DQo+ID4gTXkgcHJvY2VkdXJlIHdhczoNCj4gPg0KPiA+
IDEuIFVuaW5zdGFsbCB0aGUgRUpCIGRpZ2l0YWwgZHJpdmVycyBmcm9tIHRoZSBXaW5kb3dzIGNv
bnRyb2wgcGFuZWwNCj4gPiAyLiBEb24ndCByZWJvb3QgeWV0DQo+ID4gMy4gSW5zdGFsbCBhbGwg
dGhlIG5ldyBkcml2ZXJzDQo+ID4gNC4gcmVib290DQo+ID4gNS4gSSBmb3VuZCBpZiB5b3UgcmVi
b290IGZpcnN0IGJlZm9yZSBpbnN0YWxsaW5nIHRoZSBuZXcgZHJpdmVycyB5b3UgZW5kIHVwDQo+
IHdpdGggYSBibHVlIHNjcmVlbg0KPiA+DQo+ID4gTXkgcHJvY2VkdXJlIG11c3QgYmUgaW5jb21w
bGV0ZSBvciBoYXZlIGZsYXdzLg0KPiA+DQo+ID4gVGhhbmtzIGFnYWluIGZvciB5b3VyIHN1cHBv
cnQgb24gdGhpcyBsaXN0Lg0KPiA+DQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t
LS0NCj4gPj4gRnJvbTogUGF1bCBEdXJyYW50DQo+ID4+IFNlbnQ6IDI2IEp1bHkgMjAxNiAxODoy
NA0KPiA+PiBUbzogJ0JyYW5kb24gU2hvZW1ha2VyJzsgd2luLXB2LWRldmVsQGxpc3RzLnhlbnBy
b2plY3Qub3JnDQo+ID4+IFN1YmplY3Q6IFJFOiBbd2luLXB2LWRldmVsXSBTaWduZWQgOC4xLjAg
ZHJpdmVycw0KPiA+Pg0KPiA+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4+IEZy
b206IHdpbi1wdi1kZXZlbA0KPiA+Pj4gW21haWx0bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0
cy54ZW5wcm9qZWN0Lm9yZ10NCj4gPj4gT24NCj4gPj4+IEJlaGFsZiBPZiBCcmFuZG9uIFNob2Vt
YWtlcg0KPiA+Pj4gU2VudDogMjYgSnVseSAyMDE2IDE4OjA4DQo+ID4+PiBUbzogd2luLXB2LWRl
dmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+ID4+PiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBT
aWduZWQgOC4xLjAgZHJpdmVycw0KPiA+Pj4NCj4gPj4+IEhlbGxvLA0KPiA+Pj4NCj4gPj4+IEkg
aGF2ZSBiZWVuIHdhaXRpbmcgb24gdGhlc2UgbmV3IHNpZ25lZCBkcml2ZXJzLiAgVGhhbmtzIGZv
ciBmaW5hbGx5DQo+ID4+PiBtYWtpbmcgdGhlbSBhdmFpbGFibGUhDQo+ID4+Pg0KPiA+Pj4gSSBo
YXZlIHRlc3RlZCBhbmQgcnVuIGludG8gYSBwcm9ibGVtcyB1bmZvcnR1bmF0ZWx5IHNvIEkgd2Fu
dGVkIHRvDQo+ID4+PiByZXBvcnQgdGhpcy4NCj4gPj4+DQo+ID4+PiBGaXJzdCBJIHRyaWVkIHVu
aW5zdGFsbGluZyB0aGUgRUpCIGRpZ2l0YWwgZHJpdmVycw0KPiA+Pj4gKGVqYnB2X1Zpc3RhMjAw
OHg2NF8xLjAuMTEwNS5tc2kpIGFuZCBpbnN0YWxsaW5nIHRoZXNlIG5ldyBkcml2ZXJzDQo+ID4+
PiBvbiBXaW5kb3dzIDIwMDggUjIgeDY0IGV4aXN0aW5nIFZQUy4gIEFmdGVyIHJlYm9vdGluZyBX
aW5kb3dzIDIwMDgNCj4gPj4+IFIyDQo+ID4+IGhhbmdzDQo+ID4+PiBmb3JldmVyIGF0IGJvb3Qu
DQo+ID4+Pg0KPiA+Pj4gU2Vjb25kbHkgSSBoYXZlIGluc3RhbGxlZCBhIGNsZWFuIFdpbmRvd3Mg
MjAwOCBSMiBhbmQgdGhlbiBpbnN0YWxsZWQNCj4gPj4+IGFsbCB0aGUgZHJpdmVycyBhbmQgd2hl
biBJIHJlYm9vdCBpdCBnb2VzIGludG8gcmVjb3ZlcnkgbW9kZS4gIEkNCj4gPj4+IGhhcHBlbiB0
byBjaGVjayBXaW5kb3dzIGRldmljZSBtYW5hZ2VyIGJlZm9yZSBJIHJlYm9vdGVkIGFuZCBJDQo+
ID4+PiBub3RpY2VkIHRoYXQgdGhlICJYZW4gUFYgQnVzIiBkcml2ZXIgaGFzIGEgeWVsbG93IHdh
cm5pbmcgc3ltYm9sIGFzDQo+IHNob3duIGluIHRoZSBzY3JlZW5zaG90ID4NCj4gPj4+IGh0dHBz
Oi8vcG9zdGltZy5vcmcvaW1hZ2UveDA4ZzduNHduLyAgIGl0IHNheXMgaXQgY2Fubm90IHZlcmlm
eSB0aGUNCj4gZGlnaXRhbA0KPiA+Pj4gc2lnbmF0dXJlIGZvciB0aGUgWGVuIFBWIEJ1cyBkcml2
ZXJzLiAgTm90aGluZyB3YXMgZG9uZSBidXQgdGhlDQo+ID4+PiBpbnN0YWxsIG9mIFdpbmRvd3Mg
YW5kIHRoZW4gaW1tZWRpYXRlIGluc3RhbGwgb2YgdGhlIGRyaXZlcnMuDQo+ID4+DQo+ID4+IEkg
c3VzcGVjdCB0aGlzIGlzIGJlY2F1c2UgdGhlIGRyaXZlcnMgYXJlIHNpZ25lZCB3aXRoIFNIQS0y
NTYgYW5kIHlvdQ0KPiA+PiBtYXkgbmVlZCBhIGhvdGZpeCB0byBlbmFibGUgdmVyaWZpY2F0aW9u
IG9mIGtlcm5lbCBtb2RlIGRyaXZlcnMgc2lnbmVkDQo+ID4+IHdpdGggYQ0KPiA+PiBTSEEtMjU2
IGNlcnQuDQo+ID4NCj4gPiBTcGVjaWZpY2FsbHkgc2VlIGh0dHBzOi8vdGVjaG5ldC5taWNyb3Nv
ZnQuY29tL2VuLQ0KPiB1cy9saWJyYXJ5L3NlY3VyaXR5LzMwMzM5Mjk/Zj0yNTUmTVNQUEVycm9y
PS0yMTQ3MjE3Mzk2DQo+ID4NCj4gPj4NCj4gPj4gICBQYXVsDQo+ID4+DQo+ID4NCj4gPg0KPiA+
DQo+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4g
PiB3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0DQo+ID4gd2luLXB2LWRldmVsQGxpc3RzLnhlbnBy
b2plY3Qub3JnDQo+ID4gaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxt
YW4vbGlzdGluZm8vd2luLXB2LWRldmVsDQo+ID4NCj4gDQo+IC0tDQo+IA0KPiANCj4gw4lsacOh
cyBUYW3DoXMNCj4gVGhvbWFzIEVsaWFzDQo+IA0KPiBFVElUW253cHJvXSBLRlQsIMOcZ3l2ZXpl
dMWRLUjDoWzDs3phdGJpenRvbnPDoWdpIHNwZWNpYWxpc3RhDQo+IEVUSVRbbndwcm9dIEx0ZCwg
R2VuZXJhbCBNYW5hZ2VyLU5ldHdvcmsgc2VjdXJpdHkgc3BlY2lhbGlzdA0KPiANCj4gVGVsLiBI
VTogKzM2LzMwLTQ5Ny0xNjI2DQo+IFRlbC4gREU6ICs0OS8xNjAtNjUxLTg3MjMNCj4gT3BlblBH
UCBwdWJrZXk6IGh0dHA6Ly9ldGl0Lmh1L2RvYy9ldC1wdWIuYXNjDQo+IA0KPiBPa2xldmVsZXMg
bcOpcm7DtmstaW5mb3JtYXRpa3VzIChNU0MpDQo+IE1hc3RlciBvZiBTY2llbmNlIGluIEluZm9y
bWF0aW9uIFRlY2hub2xvZ3kgKE1TQykNCj4gDQo+IEthcGNzb2xhdDogaHR0cDovL2V0aXQuaHUv
aW5kZXgucGhwL2h1L2thcGNzb2xhdA0KPiBKb2dpIG55aWxhdGtvemF0OiBodHRwOi8vZXRpdC5o
dS9kaXNjbGFpbWVyLWVtYWlsLWh1LnR4dA0KPiBDb250YWN0OiBodHRwOi8vZXRpdC5odS9pbmRl
eC5waHAvZW4vY29udGFjdA0KPiBEaXNjbGFpbWVyOiBodHRwOi8vZXRpdC5odS9kaXNjbGFpbWVy
LWVtYWlsLWVuLnR4dA0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5w
cm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9s
aXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Wed Jul 27 12:49:56 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 27 Jul 2016 12:49:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bSOHb-0001ky-B6; Wed, 27 Jul 2016 12:49:55 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bSOHZ-0001ks-LS
 for win-pv-devel@lists.xenproject.org; Wed, 27 Jul 2016 12:49:53 +0000
Received: from [85.158.137.68] by server-8.bemta-3.messagelabs.com id
 D6/1A-10540-0FDA8975; Wed, 27 Jul 2016 12:49:52 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprIIsWRWlGSWpSXmKPExsXiVRvkpPth7Yx
 wg6mHBC3+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxqe3zWwFGzgr/ryQb2C8zt7FyMUhJDCTUeLZ
 hH4mEIdF4BKLxKrmPywgjoTAOxaJbzu+snUxcgI5MRIHz7xihrArJK5deA9mCwkoSjRfuwA1a
 hmTxNztC1hAEmwC6hK33y9mh2iwk/g06yaYLSKgKnFt+TGwocwCWhIPN8xjBLGFBVwldkxaC3
 QGB9AZqhL7u3VAwrwC7hJ35p1jghgjJ7F38mqWCYz8CxgZVjGqF6cWlaUW6ZrrJRVlpmeU5CZ
 m5ugaGhjr5aYWFyemp+YkJhXrJefnbmIEBg8DEOxgbPzudIhRkoNJSZR3keOMcCG+pPyUyozE
 4oz4otKc1OJDjDIcHEoSvPfXAOUEi1LTUyvSMnOAYQyTluDgURLhvbsaKM1bXJCYW5yZDpE6x
 ajLsWXqvbVMQix5+XmpUuK8MSAzBECKMkrz4EbAYuoSo6yUMC8j0FFCPAWpRbmZJajyrxjFOR
 iVhHkPg0zhycwrgdv0CugIJqAjimPBjihJREhJNTCGth0UYpsUUZ32uHu7LHP039BVhxN1j9m
 c/eBcyPtYpXRNeHuU07n8x7x3FBleSurN/jZj4k8zzeBTNT/d/mza9IQ352q6rdBSp2c71Wec
 i5zD+mrp1c6f1mmPJtefy5q+4YbKg5lsTB0uQjIpryZ/rAi8HsXq2+rVkj1DY/bOtBO169y5r
 rMrsRRnJBpqMRcVJwIAjkhpMqQCAAA=
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-3.tower-31.messagelabs.com!1469623792!52658015!1
X-Originating-IP: [74.125.82.66]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 31176 invoked from network); 27 Jul 2016 12:49:52 -0000
Received: from mail-wm0-f66.google.com (HELO mail-wm0-f66.google.com)
 (74.125.82.66)
 by server-3.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 27 Jul 2016 12:49:52 -0000
Received: by mail-wm0-f66.google.com with SMTP id i5so6322974wmg.2
 for <win-pv-devel@lists.xenproject.org>; Wed, 27 Jul 2016 05:49:52 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=g66w56rVctVQfBxs8v3oEzfeDT8Dky7j19s3zxuJ9jw=;
 b=jQV6SpV4xzUymgFCDhTCyNm0yFdPYaBWZ7ceCQrXdUlnt8zzXR1IV9XDbpn0DdnJem
 1BnmzQ+TEbNhpEqZXx97HwNPaI9lwz1SrsrinUTQGJoYwdMx8qdfJfsUu17cWH6tP+p+
 SAp8xu1Z75TpqbIDiPrS5zo03O4Ji0wFrocHXbRcH6EOhHoASVS2nJ/OVZWMV4K80fvG
 VkeoMX9UAK1JqzfXBFxRvx9PuMBN/akLwu+gWd9klgG4iSStuczEJ2ienxrr3YJUSNgH
 KLCUn6ziE7kqk71Re3ND6bInCz3ah+dQiD8lMH3Tvr6g0LNTrul4h45xFBuJqSU+F+pm
 s5XA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=g66w56rVctVQfBxs8v3oEzfeDT8Dky7j19s3zxuJ9jw=;
 b=Q8gRFaRMnbAfdmxT2SLgLYTTNbN8sQpE/Qkz0KOAJ4kEoapC3Ho2yvTrN0r+Sf5UEC
 bmv2PxhPFPg/bXB2sI1ICmsIp9ZfiXx5W66iErCXlF5fIu7cHqouXZSIJGxU/3TLA/CH
 977+9cOInEdo8Uv9GNrfJun44vxazdpKOaWzGMCRA7gSk/bnBbm6yGujL0Myc5ggdlus
 TuGutzx6G6zCKPMT8Cvw16I+mHj23quOpbONpm085apxPsR3BTcOw1LbmMZnuS/LSbB2
 Nj4fkuhlh7+ew+cXMQ3mhxhLbBNYgx4+dta9I1P7fdUMAuDtaBRvPtWz+nWuocVWJb3T
 t7TA==
X-Gm-Message-State: ALyK8tKP0yrGoFPgb6XzKgz6QORVsALJJfJRZnAXAY2b7DZc4/ez9s3Xs52JGy1/8rPXvQ==
X-Received: by 10.28.229.19 with SMTP id c19mr55828910wmh.0.1469623731808;
 Wed, 27 Jul 2016 05:48:51 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id h7sm6271465wjd.17.2016.07.27.05.48.50
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Wed, 27 Jul 2016 05:48:51 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Wed, 27 Jul 2016 13:48:40 +0100
Message-Id: <1469623720-11908-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Fix locking and teardown bugs in controller
	frontend
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

SWYgdGhlIGJhY2tlbmQgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBjb250cm9sIHJpbmcgdGhlbiB0
aGUgZnJvbnRlbmQgd2lsbApldmVudHVhbGx5IGRlYWRsb2NrLiBBbHNvLCBieSBpbnNwZWN0aW9u
LCB0aGUgdGVhcmRvd24gY29kZSBkb2VzIG5vdApyZWxlYXNlIGludGVyZmFjZXMgaWYgdGhlIGNv
bnRyb2wgcmluZyB3YXMgbm90IHByZXNlbnQuCgpUaGlzIHBhdGNoIGZpeGVzIGJvdGggaXNzdWVz
LgoKU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4K
LS0tCiBzcmMveGVudmlmL2NvbnRyb2xsZXIuYyB8IDYgKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwg
NCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy94ZW52aWYv
Y29udHJvbGxlci5jIGIvc3JjL3hlbnZpZi9jb250cm9sbGVyLmMKaW5kZXggZTU0YzlmYy4uYTkw
Mzk3YSAxMDA2NDQKLS0tIGEvc3JjL3hlbnZpZi9jb250cm9sbGVyLmMKKysrIGIvc3JjL3hlbnZp
Zi9jb250cm9sbGVyLmMKQEAgLTc5Nyw4ICs3OTcsMTAgQEAgQ29udHJvbGxlckRpc2Nvbm5lY3Qo
CiAKICAgICBfX0NvbnRyb2xsZXJBY3F1aXJlTG9jayhDb250cm9sbGVyKTsKIAotICAgIGlmICgh
Q29udHJvbGxlci0+Q29ubmVjdGVkKQorICAgIGlmICghQ29udHJvbGxlci0+Q29ubmVjdGVkKSB7
CisgICAgICAgIF9fQ29udHJvbGxlclJlbGVhc2VMb2NrKENvbnRyb2xsZXIpOwogICAgICAgICBn
b3RvIGRvbmU7CisgICAgfQogCiAgICAgQ29udHJvbGxlci0+Q29ubmVjdGVkID0gRkFMU0U7CiAK
QEAgLTgzNyw2ICs4MzksNyBAQCBDb250cm9sbGVyRGlzY29ubmVjdCgKICAgICAgICAgICAgICAg
ICAgIENvbnRyb2xsZXItPkdudHRhYkNhY2hlKTsKICAgICBDb250cm9sbGVyLT5HbnR0YWJDYWNo
ZSA9IE5VTEw7CiAKK2RvbmU6CiAgICAgWEVOQlVTX0dOVFRBQihSZWxlYXNlLCAmQ29udHJvbGxl
ci0+R250dGFiSW50ZXJmYWNlKTsKIAogICAgIFhFTkJVU19FVlRDSE4oUmVsZWFzZSwgJkNvbnRy
b2xsZXItPkV2dGNobkludGVyZmFjZSk7CkBAIC04NDUsNyArODQ4LDYgQEAgQ29udHJvbGxlckRp
c2Nvbm5lY3QoCiAKICAgICBYRU5CVVNfREVCVUcoUmVsZWFzZSwgJkNvbnRyb2xsZXItPkRlYnVn
SW50ZXJmYWNlKTsKIAotZG9uZToKICAgICBUcmFjZSgiPD09PT1cbiIpOwogfQogCi0tIAoyLjEu
MQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1w
di1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0
dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1w
di1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Wed Jul 27 12:49:56 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 27 Jul 2016 12:49:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bSOHb-0001ky-B6; Wed, 27 Jul 2016 12:49:55 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bSOHZ-0001ks-LS
 for win-pv-devel@lists.xenproject.org; Wed, 27 Jul 2016 12:49:53 +0000
Received: from [85.158.137.68] by server-8.bemta-3.messagelabs.com id
 D6/1A-10540-0FDA8975; Wed, 27 Jul 2016 12:49:52 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprIIsWRWlGSWpSXmKPExsXiVRvkpPth7Yx
 wg6mHBC3+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxqe3zWwFGzgr/ryQb2C8zt7FyMUhJDCTUeLZ
 hH4mEIdF4BKLxKrmPywgjoTAOxaJbzu+snUxcgI5MRIHz7xihrArJK5deA9mCwkoSjRfuwA1a
 hmTxNztC1hAEmwC6hK33y9mh2iwk/g06yaYLSKgKnFt+TGwocwCWhIPN8xjBLGFBVwldkxaC3
 QGB9AZqhL7u3VAwrwC7hJ35p1jghgjJ7F38mqWCYz8CxgZVjGqF6cWlaUW6ZrrJRVlpmeU5CZ
 m5ugaGhjr5aYWFyemp+YkJhXrJefnbmIEBg8DEOxgbPzudIhRkoNJSZR3keOMcCG+pPyUyozE
 4oz4otKc1OJDjDIcHEoSvPfXAOUEi1LTUyvSMnOAYQyTluDgURLhvbsaKM1bXJCYW5yZDpE6x
 ajLsWXqvbVMQix5+XmpUuK8MSAzBECKMkrz4EbAYuoSo6yUMC8j0FFCPAWpRbmZJajyrxjFOR
 iVhHkPg0zhycwrgdv0CugIJqAjimPBjihJREhJNTCGth0UYpsUUZ32uHu7LHP039BVhxN1j9m
 c/eBcyPtYpXRNeHuU07n8x7x3FBleSurN/jZj4k8zzeBTNT/d/mza9IQ352q6rdBSp2c71Wec
 i5zD+mrp1c6f1mmPJtefy5q+4YbKg5lsTB0uQjIpryZ/rAi8HsXq2+rVkj1DY/bOtBO169y5r
 rMrsRRnJBpqMRcVJwIAjkhpMqQCAAA=
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-3.tower-31.messagelabs.com!1469623792!52658015!1
X-Originating-IP: [74.125.82.66]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 31176 invoked from network); 27 Jul 2016 12:49:52 -0000
Received: from mail-wm0-f66.google.com (HELO mail-wm0-f66.google.com)
 (74.125.82.66)
 by server-3.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 27 Jul 2016 12:49:52 -0000
Received: by mail-wm0-f66.google.com with SMTP id i5so6322974wmg.2
 for <win-pv-devel@lists.xenproject.org>; Wed, 27 Jul 2016 05:49:52 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=g66w56rVctVQfBxs8v3oEzfeDT8Dky7j19s3zxuJ9jw=;
 b=jQV6SpV4xzUymgFCDhTCyNm0yFdPYaBWZ7ceCQrXdUlnt8zzXR1IV9XDbpn0DdnJem
 1BnmzQ+TEbNhpEqZXx97HwNPaI9lwz1SrsrinUTQGJoYwdMx8qdfJfsUu17cWH6tP+p+
 SAp8xu1Z75TpqbIDiPrS5zo03O4Ji0wFrocHXbRcH6EOhHoASVS2nJ/OVZWMV4K80fvG
 VkeoMX9UAK1JqzfXBFxRvx9PuMBN/akLwu+gWd9klgG4iSStuczEJ2ienxrr3YJUSNgH
 KLCUn6ziE7kqk71Re3ND6bInCz3ah+dQiD8lMH3Tvr6g0LNTrul4h45xFBuJqSU+F+pm
 s5XA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=g66w56rVctVQfBxs8v3oEzfeDT8Dky7j19s3zxuJ9jw=;
 b=Q8gRFaRMnbAfdmxT2SLgLYTTNbN8sQpE/Qkz0KOAJ4kEoapC3Ho2yvTrN0r+Sf5UEC
 bmv2PxhPFPg/bXB2sI1ICmsIp9ZfiXx5W66iErCXlF5fIu7cHqouXZSIJGxU/3TLA/CH
 977+9cOInEdo8Uv9GNrfJun44vxazdpKOaWzGMCRA7gSk/bnBbm6yGujL0Myc5ggdlus
 TuGutzx6G6zCKPMT8Cvw16I+mHj23quOpbONpm085apxPsR3BTcOw1LbmMZnuS/LSbB2
 Nj4fkuhlh7+ew+cXMQ3mhxhLbBNYgx4+dta9I1P7fdUMAuDtaBRvPtWz+nWuocVWJb3T
 t7TA==
X-Gm-Message-State: ALyK8tKP0yrGoFPgb6XzKgz6QORVsALJJfJRZnAXAY2b7DZc4/ez9s3Xs52JGy1/8rPXvQ==
X-Received: by 10.28.229.19 with SMTP id c19mr55828910wmh.0.1469623731808;
 Wed, 27 Jul 2016 05:48:51 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id h7sm6271465wjd.17.2016.07.27.05.48.50
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Wed, 27 Jul 2016 05:48:51 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Wed, 27 Jul 2016 13:48:40 +0100
Message-Id: <1469623720-11908-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Fix locking and teardown bugs in controller
	frontend
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

SWYgdGhlIGJhY2tlbmQgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBjb250cm9sIHJpbmcgdGhlbiB0
aGUgZnJvbnRlbmQgd2lsbApldmVudHVhbGx5IGRlYWRsb2NrLiBBbHNvLCBieSBpbnNwZWN0aW9u
LCB0aGUgdGVhcmRvd24gY29kZSBkb2VzIG5vdApyZWxlYXNlIGludGVyZmFjZXMgaWYgdGhlIGNv
bnRyb2wgcmluZyB3YXMgbm90IHByZXNlbnQuCgpUaGlzIHBhdGNoIGZpeGVzIGJvdGggaXNzdWVz
LgoKU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4K
LS0tCiBzcmMveGVudmlmL2NvbnRyb2xsZXIuYyB8IDYgKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwg
NCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy94ZW52aWYv
Y29udHJvbGxlci5jIGIvc3JjL3hlbnZpZi9jb250cm9sbGVyLmMKaW5kZXggZTU0YzlmYy4uYTkw
Mzk3YSAxMDA2NDQKLS0tIGEvc3JjL3hlbnZpZi9jb250cm9sbGVyLmMKKysrIGIvc3JjL3hlbnZp
Zi9jb250cm9sbGVyLmMKQEAgLTc5Nyw4ICs3OTcsMTAgQEAgQ29udHJvbGxlckRpc2Nvbm5lY3Qo
CiAKICAgICBfX0NvbnRyb2xsZXJBY3F1aXJlTG9jayhDb250cm9sbGVyKTsKIAotICAgIGlmICgh
Q29udHJvbGxlci0+Q29ubmVjdGVkKQorICAgIGlmICghQ29udHJvbGxlci0+Q29ubmVjdGVkKSB7
CisgICAgICAgIF9fQ29udHJvbGxlclJlbGVhc2VMb2NrKENvbnRyb2xsZXIpOwogICAgICAgICBn
b3RvIGRvbmU7CisgICAgfQogCiAgICAgQ29udHJvbGxlci0+Q29ubmVjdGVkID0gRkFMU0U7CiAK
QEAgLTgzNyw2ICs4MzksNyBAQCBDb250cm9sbGVyRGlzY29ubmVjdCgKICAgICAgICAgICAgICAg
ICAgIENvbnRyb2xsZXItPkdudHRhYkNhY2hlKTsKICAgICBDb250cm9sbGVyLT5HbnR0YWJDYWNo
ZSA9IE5VTEw7CiAKK2RvbmU6CiAgICAgWEVOQlVTX0dOVFRBQihSZWxlYXNlLCAmQ29udHJvbGxl
ci0+R250dGFiSW50ZXJmYWNlKTsKIAogICAgIFhFTkJVU19FVlRDSE4oUmVsZWFzZSwgJkNvbnRy
b2xsZXItPkV2dGNobkludGVyZmFjZSk7CkBAIC04NDUsNyArODQ4LDYgQEAgQ29udHJvbGxlckRp
c2Nvbm5lY3QoCiAKICAgICBYRU5CVVNfREVCVUcoUmVsZWFzZSwgJkNvbnRyb2xsZXItPkRlYnVn
SW50ZXJmYWNlKTsKIAotZG9uZToKICAgICBUcmFjZSgiPD09PT1cbiIpOwogfQogCi0tIAoyLjEu
MQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1w
di1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0
dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1w
di1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Wed Jul 27 12:58:13 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 27 Jul 2016 12:58:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bSOPb-0002GI-Sc; Wed, 27 Jul 2016 12:58:11 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <cboxall@family-enterprises.com>) id 1bSOPa-0002GC-4E
 for win-pv-devel@lists.xenproject.org; Wed, 27 Jul 2016 12:58:10 +0000
Received: from [85.158.137.68] by server-9.bemta-3.messagelabs.com id
 1F/59-27233-1EFA8975; Wed, 27 Jul 2016 12:58:09 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrIKsWRWlGSWpSXmKPExsXiIDv5ru799TP
 CDa58ELL4szjRgdHj8IcrLAGMUayZeUn5FQmsGTcn3GAp6JrFWPFgkW8D47/pjF2MnBwSAiYS
 u462sXcxcnEICSxnkvi/fA07SIJFQFXiz+X1TCA2m4CKRO+Ur4wgRSICOxglZjx7B+RwcPAKu
 EnM/VUIYnIKeEhMnywFMWcak0TPkj4WkF5hAQOJ15+usoHYvAKCEidnPgGLMwuESrzcdpgJpF
 dCQENi+xWwtaICWhJLl3xkgbiNQ6LjwVVWkJkSAhNYJfoOXGSHSCRJbJ88hw3CFpbY/uAW1DM
 iEl0fn7DCxCfsPAY1iE9iyrmtTBA2v8S9HWuZIWxxieddD1gmMIrNQnLeLCTnQdjqEn/mXWKG
 sBUlpnQ/ZJ8FdDazgJrEslYlZOEFjGyrGDWKU4vKUot0jcz0kooy0zNKchMzc3QNDYz1clOLi
 xPTU3MSk4r1kvNzNzECo66egYFxB2PDXr9DjJIcTEqivIscZ4QL8SXlp1RmJBZnxBeV5qQWH2
 KU4eBQkuDduw4oJ1iUmp5akZaZA4x/mLQEB4+SCK8qMAUI8RYXJOYWZ6ZDpE4xKkqJ874H6RM
 ASWSU5sG1wVLOJUZZKWFeRgYGBiGegtSi3MwSVPlXjOIcjErCvGtApvBk5pXATX8FtJgJaHFx
 LNjikkSElFQDY34Op07/zc2RdqvP3DHc+d31bNqfJ04Mq9j7ihxLDr5qs8hzjf8ldHObOkPfm
 USWKl/pS8LXDhmrn1Jc5LbZetnBvC/dNwxiqmedUNg1z6o/+1PehLkP1zpWnnKeFufnzdRb8e
 YYs9LrY2K7/kwuL9zpFMly4J0vywPBmK8721jF/2gL+W5foMRSnJFoqMVcVJwIADvlkVc0AwA
 A
X-Env-Sender: cboxall@family-enterprises.com
X-Msg-Ref: server-2.tower-31.messagelabs.com!1469624285!52645117!1
X-Originating-IP: [64.29.147.221]
X-SpamReason: No, hits=1.1 required=7.0 tests=BODY_RANDOM_LONG,
 HTML_40_50,HTML_MESSAGE
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 52083 invoked from network); 27 Jul 2016 12:58:06 -0000
Received: from mail151c25.carrierzone.com (HELO mail24c25.carrierzone.com)
 (64.29.147.221)
 by server-2.tower-31.messagelabs.com with DHE-RSA-AES256-GCM-SHA384 encrypted
 SMTP; 27 Jul 2016 12:58:06 -0000
X-Authenticated-User: cboxall.family-enterprises.com
Received: from [10.115.95.220] (mobile-166-171-059-138.mycingular.net
 [166.171.59.138]) (authenticated bits=0)
 by mail24c25.carrierzone.com (8.14.9/8.13.1) with ESMTP id u6RCvacM023543
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO);
 Wed, 27 Jul 2016 12:57:39 +0000
Date: Wed, 27 Jul 2016 08:57:35 -0400
From: cboxall@family-enterprises.com
To: =?UTF-8?Q?=C3=89li=C3=A1s_Tam=C3=A1s?= <et@etit.hu>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>,
 Paul Durrant <Paul.Durrant@citrix.com>
Message-ID: <ed8e668a-704b-4e14-bb8d-1c8677f7d495.maildroid@localhost>
In-Reply-To: <cbaa637eef394277ac8c0d11885a986f@AMSPEX02CL03.citrite.net>
References: <08a801d1e760$3f2549a0$bd6fdce0$@thinkhuge.net>
 <c582eb60539340008a1fbc241346ba5e@AMSPEX02CL03.citrite.net>
 <08bf01d1e766$85a68be0$90f3a3a0$@thinkhuge.net>
 <5c280b55-a48e-1fb1-7770-c664c44fbed7@etit.hu>
 <cbaa637eef394277ac8c0d11885a986f@AMSPEX02CL03.citrite.net>
MIME-Version: 1.0
X-Mailer: MailDroid/4.35 (Android 5.1.1)
User-Agent: MailDroid/4.35 (Android 5.1.1)
X-CSC: 0
X-CHA: v=2.1 cv=e48/F8Z/ c=1 sm=1 tr=0 a=+9ujVRAeGT57iJNqehmk8A==:117
 a=+9ujVRAeGT57iJNqehmk8A==:17 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10
 a=s5jvgZ67dGcA:10 a=tHz9FfFoAAAA:8 a=cWRNjhkoAAAA:8 a=c_2Yb8BRAAAA:20
 a=yMhMjlubAAAA:8 a=JOf7AlrsAAAA:8 a=ZL3cnePm8e92G6RnKVIA:9
 a=nIwSO7OT-rfOxu36:21 a=J3MVCdRoYg0aahhD:21 a=QEXdDO2ut3YA:10
 a=G2uicN79_xgA:10 a=teLQDhfPlQcA:10 a=quu1wrNWAAAA:20 a=FnTV7rK0AAAA:20
 a=62AnJiQFAAAA:20 a=DGSk7Cvj7oihp-FGbZ4A:9 a=aZe98IgOWRExeEyf:21
 a=JbrZNL4gi0vWjTJ-:21 a=7myvxPLqndVe9500:21 a=qiWi7Edwir4A:10
 a=NWVoK91CQyQA:10 a=Z52K5TbU17EcDgFyT5Ki:22 a=sVa6W5Aao32NNC1mekxh:22
 a=BKKCjISod1eDJeS0ORpz:22 a=tFtQa-HLCNgsQ2euEmZQ:22
X-CTCH-RefID: str=0001.0A010206.5798AFC6.000A, ss=1, re=0.000, recu=0.000,
 reip=0.000, cl=1, cld=1, fgs=0
X-CTCH-VOD: Unknown
X-CTCH-Spam: Unknown
X-CTCH-Score: 0.000
X-CTCH-Rules: 
X-CTCH-Flags: 0
X-CTCH-ScoreCust: 0.000
Subject: Re: [win-pv-devel] Signed 8.1.0 drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============7567167777963704064=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============7567167777963704064==
Content-Type: multipart/alternative;
	 boundary="----=_Part_0_58995047.1469624256030"

------=_Part_0_58995047.1469624256030
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: base64

SSBjYW4gY29uZmlybSB0aGF0IFdpbmRvd3MgMTAgUHJvIGFuZCBTZXJ2ZXIgMjAxMiBSMiwgd2l0
aCBhbGwgY3VycmVudCBXaW5kb3dzIFVwZGF0ZSB1cGRhdGVzIGluc3RhbGxlZCwgdG9vayB0aGUg
bmV3IGRyaXZlcnMgZmxhd2xlc3NseS4gVGhhbmtzIGFnYWluIQoKU2VudCBmcm9tIG15IGFuZHJv
aWQgZGV2aWNlLgoKLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KRnJvbTogUGF1bCBEdXJyYW50
IDxQYXVsLkR1cnJhbnRAY2l0cml4LmNvbT4KVG86ICLDiWxpw6FzIFRhbcOhcyIgPGV0QGV0aXQu
aHU+LCAid2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIiA8d2luLXB2LWRldmVsQGxp
c3RzLnhlbnByb2plY3Qub3JnPgpTZW50OiBXZWQsIDI3IEp1bCAyMDE2IDg6NDEgQU0KU3ViamVj
dDogUmU6IFt3aW4tcHYtZGV2ZWxdIFNpZ25lZCA4LjEuMCBkcml2ZXJzCgo+IC0tLS0tT3JpZ2lu
YWwgTWVzc2FnZS0tLS0tCj4gRnJvbTogd2luLXB2LWRldmVsIFttYWlsdG86d2luLXB2LWRldmVs
LWJvdW5jZXNAbGlzdHMueGVucHJvamVjdC5vcmddIE9uCj4gQmVoYWxmIE9mIMOJbGnDoXMgVGFt
w6FzCj4gU2VudDogMjcgSnVseSAyMDE2IDEzOjM0Cj4gVG86IHdpbi1wdi1kZXZlbEBsaXN0cy54
ZW5wcm9qZWN0Lm9yZwo+IFN1YmplY3Q6IFJlOiBbd2luLXB2LWRldmVsXSBTaWduZWQgOC4xLjAg
ZHJpdmVycwo+IAo+IEhpLgo+IEkgcGxheWVkIHF1aXRlIGEgbG90IHdpdGggdGhvc2UgRUpCIGRy
aXZlcnMuCj4gCj4gd2hlbiB5b3UgdW5pbnN0YWxsIHRoZW0sIHlvdSBuZWVkIHRvIGJlIGV4dHJl
bWVseSBzdXJlLCB0aGF0IHlvdQo+IHVuaW5zdGFsbGVkIGFsbHByZXZpb3VzIHZlcnNpb25zLCBh
bmQgdXNlZCB0aGUgdW5pbnN0YWxsZXIuYmF0IGZpbGUgdG9vLAo+IGFuZCBhbHNvIHlvdSByZW1v
dmVkIGFueSByZWZlcmVuY2UgZnJvbXQgaGUgcmVnaXN0cnkuIHBscyBicm93c2UgdGhyb3VnaAo+
IHRoZSBhcmNoaXZlcyBvZiB0aGUgbGlzdCwgYmVjYW9zdXNlIHRoZXJlIGFscmVhZHkgaGFkIGJl
ZW4gc2V2ZXJhbAo+IHNjcmlwdHMgcHVibGlzaGVkIG9uIHRoaXMgdG8gcmVzb2x2IHRoaXMgcHJv
YmxlbS4KPiAKPiBBZnRlciB1bmlzbnRhbGxhdGlvbiBhIHJlYm9vdCBpcyByZXF1aXJlZCwgdGhl
biBib290aW5nIGludG8gc2FmZSBtb2RlCj4gYW5kIGluc3RhbGxpbmcgdGhlIG5ldyBkcml2ZXJz
IHNob3VsZCBkbyB0aGUgdHJpY2suCj4gCgpUaGFua3MgRWxpYXMuIFJlYWxseSB5b3Ugc2hvdWxk
IG5vdCBpbnN0YWxsIG5ldyBQViBkcml2ZXJzIHVudGlsIHlvdSBoYXZlIGEgVk0gdGhhdCBib290
cyBub3JtYWxseSBhZnRlciBoYXZpbmcgcmVtb3ZlZCBwcmV2aW91cyBQViBkcml2ZXJzLiBJbnN0
YWxsYXRpb24gb2YgdGhlIFhlbiBQcm9qZWN0IGRyaXZlcnMgc2hvdWxkIHRoZW4gYmUgZG9uZSBh
ZnRlciBhIG5vcm1hbCBib290ICh3aXRoIGVtdWxhdGVkIGRldmljZXMpLCBub3Qgd2hlbiBpbiBz
YWZlIG1vZGUuCgogIFBhdWwKCj4gMjAxNi0wNy0yNiAxOTo1MiBrZWx0ZXrDqXNzZWwsIEJyYW5k
b24gU2hvZW1ha2VyIMOtcnRhOgo+ID4gSGV5IFBhdWwgYW5kIGxpc3QsCj4gPgo+ID4gVGhhdCBm
aXhlZCBpdCEgIE9rYXkgc28gSSB3aWxsIHJlbWVtYmVyIHRoYXQgb25lIHVwZGF0ZSBpcyBuZWVk
ZWQgZm9yIGFueQo+IG5ldyBjbGVhbiBXaW5kb3dzIDIwMDggUjIgaW5zdGFsbCBub3QgeWV0IHVw
ZGF0ZWQuCj4gPgo+ID4gU3RpbGwgSSBhbSBub3Qgc3VyZSBhYm91dCB0aGUgcmVhc29uIHdoeSB0
aGUgRUpCIGRpZ2l0YWwgZHJpdmVyIHVuaW5zdGFsbCBhbmQKPiB1cGRhdGUgdG8gdGhlc2UgZHJp
dmVycyByZXN1bHRlZCBpbiBXaW5kb3dzIDIwMDggUjIgaGFuZ2luZyBmb3JldmVyIG9uCj4gcmVi
b290LiAgSSB0ZXN0ZWQgdGhpcyB0d2ljZSB3aXRoIHRoZSBzYW1lIHJlc3VsdHMuICBJJ2QgZXhw
ZWN0IHlvdSBtYXkgc2VlCj4gc29tZSBvdGhlcnMgY29tcGxhaW4gb2Ygc2VlaW5nIHRoaXMgcHJv
YmxlbSBpbiB0aGUgZnV0dXJlLiAgTWF5YmUgc29tZW9uZQo+IHdpdGggbW9yZSB0aW1lIGFuZCBj
YXBhYmlsaXR5IHRoYW4gbWUgY2FuIGxhdGVyIGNvbmZpcm0gYSB3b3JraW5nIHByb2NlZHVyZQo+
IGZvciB1cGdyYWRpbmcgZnJvbSB0aG9zZSBkcml2ZXJzIHRvIHRoZXNlIG5ldyBkcml2ZXJzIHRo
YXQgY2FuIHJlc3VsdCBpbgo+IHN1Y2Nlc3MuCj4gPgo+ID4gTXkgcHJvY2VkdXJlIHdhczoKPiA+
Cj4gPiAxLiBVbmluc3RhbGwgdGhlIEVKQiBkaWdpdGFsIGRyaXZlcnMgZnJvbSB0aGUgV2luZG93
cyBjb250cm9sIHBhbmVsCj4gPiAyLiBEb24ndCByZWJvb3QgeWV0Cj4gPiAzLiBJbnN0YWxsIGFs
bCB0aGUgbmV3IGRyaXZlcnMKPiA+IDQuIHJlYm9vdAo+ID4gNS4gSSBmb3VuZCBpZiB5b3UgcmVi
b290IGZpcnN0IGJlZm9yZSBpbnN0YWxsaW5nIHRoZSBuZXcgZHJpdmVycyB5b3UgZW5kIHVwCj4g
d2l0aCBhIGJsdWUgc2NyZWVuCj4gPgo+ID4gTXkgcHJvY2VkdXJlIG11c3QgYmUgaW5jb21wbGV0
ZSBvciBoYXZlIGZsYXdzLgo+ID4KPiA+IFRoYW5rcyBhZ2FpbiBmb3IgeW91ciBzdXBwb3J0IG9u
IHRoaXMgbGlzdC4KPiA+Cj4gPgo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gPj4g
RnJvbTogUGF1bCBEdXJyYW50Cj4gPj4gU2VudDogMjYgSnVseSAyMDE2IDE4OjI0Cj4gPj4gVG86
ICdCcmFuZG9uIFNob2VtYWtlcic7IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwo+
ID4+IFN1YmplY3Q6IFJFOiBbd2luLXB2LWRldmVsXSBTaWduZWQgOC4xLjAgZHJpdmVycwo+ID4+
Cj4gPj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gPj4+IEZyb206IHdpbi1wdi1kZXZl
bAo+ID4+PiBbbWFpbHRvOndpbi1wdi1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3Jn
XQo+ID4+IE9uCj4gPj4+IEJlaGFsZiBPZiBCcmFuZG9uIFNob2VtYWtlcgo+ID4+PiBTZW50OiAy
NiBKdWx5IDIwMTYgMTg6MDgKPiA+Pj4gVG86IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0
Lm9yZwo+ID4+PiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBTaWduZWQgOC4xLjAgZHJpdmVycwo+
ID4+Pgo+ID4+PiBIZWxsbywKPiA+Pj4KPiA+Pj4gSSBoYXZlIGJlZW4gd2FpdGluZyBvbiB0aGVz
ZSBuZXcgc2lnbmVkIGRyaXZlcnMuICBUaGFua3MgZm9yIGZpbmFsbHkKPiA+Pj4gbWFraW5nIHRo
ZW0gYXZhaWxhYmxlIQo+ID4+Pgo+ID4+PiBJIGhhdmUgdGVzdGVkIGFuZCBydW4gaW50byBhIHBy
b2JsZW1zIHVuZm9ydHVuYXRlbHkgc28gSSB3YW50ZWQgdG8KPiA+Pj4gcmVwb3J0IHRoaXMuCj4g
Pj4+Cj4gPj4+IEZpcnN0IEkgdHJpZWQgdW5pbnN0YWxsaW5nIHRoZSBFSkIgZGlnaXRhbCBkcml2
ZXJzCj4gPj4+IChlamJwdl9WaXN0YTIwMDh4NjRfMS4wLjExMDUubXNpKSBhbmQgaW5zdGFsbGlu
ZyB0aGVzZSBuZXcgZHJpdmVycwo+ID4+PiBvbiBXaW5kb3dzIDIwMDggUjIgeDY0IGV4aXN0aW5n
IFZQUy4gIEFmdGVyIHJlYm9vdGluZyBXaW5kb3dzIDIwMDgKPiA+Pj4gUjIKPiA+PiBoYW5ncwo+
ID4+PiBmb3JldmVyIGF0IGJvb3QuCj4gPj4+Cj4gPj4+IFNlY29uZGx5IEkgaGF2ZSBpbnN0YWxs
ZWQgYSBjbGVhbiBXaW5kb3dzIDIwMDggUjIgYW5kIHRoZW4gaW5zdGFsbGVkCj4gPj4+IGFsbCB0
aGUgZHJpdmVycyBhbmQgd2hlbiBJIHJlYm9vdCBpdCBnb2VzIGludG8gcmVjb3ZlcnkgbW9kZS4g
IEkKPiA+Pj4gaGFwcGVuIHRvIGNoZWNrIFdpbmRvd3MgZGV2aWNlIG1hbmFnZXIgYmVmb3JlIEkg
cmVib290ZWQgYW5kIEkKPiA+Pj4gbm90aWNlZCB0aGF0IHRoZSAiWGVuIFBWIEJ1cyIgZHJpdmVy
IGhhcyBhIHllbGxvdyB3YXJuaW5nIHN5bWJvbCBhcwo+IHNob3duIGluIHRoZSBzY3JlZW5zaG90
ID4KPiA+Pj4gaHR0cHM6Ly9wb3N0aW1nLm9yZy9pbWFnZS94MDhnN240d24vICAgaXQgc2F5cyBp
dCBjYW5ub3QgdmVyaWZ5IHRoZQo+IGRpZ2l0YWwKPiA+Pj4gc2lnbmF0dXJlIGZvciB0aGUgWGVu
IFBWIEJ1cyBkcml2ZXJzLiAgTm90aGluZyB3YXMgZG9uZSBidXQgdGhlCj4gPj4+IGluc3RhbGwg
b2YgV2luZG93cyBhbmQgdGhlbiBpbW1lZGlhdGUgaW5zdGFsbCBvZiB0aGUgZHJpdmVycy4KPiA+
Pgo+ID4+IEkgc3VzcGVjdCB0aGlzIGlzIGJlY2F1c2UgdGhlIGRyaXZlcnMgYXJlIHNpZ25lZCB3
aXRoIFNIQS0yNTYgYW5kIHlvdQo+ID4+IG1heSBuZWVkIGEgaG90Zml4IHRvIGVuYWJsZSB2ZXJp
ZmljYXRpb24gb2Yga2VybmVsIG1vZGUgZHJpdmVycyBzaWduZWQKPiA+PiB3aXRoIGEKPiA+PiBT
SEEtMjU2IGNlcnQuCj4gPgo+ID4gU3BlY2lmaWNhbGx5IHNlZSBodHRwczovL3RlY2huZXQubWlj
cm9zb2Z0LmNvbS9lbi0KPiB1cy9saWJyYXJ5L3NlY3VyaXR5LzMwMzM5Mjk/Zj0yNTUmTVNQUEVy
cm9yPS0yMTQ3MjE3Mzk2Cj4gPgo+ID4+Cj4gPj4gICBQYXVsCj4gPj4KPiA+Cj4gPgo+ID4KPiA+
IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPiB3aW4t
cHYtZGV2ZWwgbWFpbGluZyBsaXN0Cj4gPiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5v
cmcKPiA+IGh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3Rp
bmZvL3dpbi1wdi1kZXZlbAo+ID4KPiAKPiAtLQo+IAo+IAo+IMOJbGnDoXMgVGFtw6FzCj4gVGhv
bWFzIEVsaWFzCj4gCj4gRVRJVFtud3Byb10gS0ZULCDDnGd5dmV6ZXTFkS1Iw6Fsw7N6YXRiaXp0
b25zw6FnaSBzcGVjaWFsaXN0YQo+IEVUSVRbbndwcm9dIEx0ZCwgR2VuZXJhbCBNYW5hZ2VyLU5l
dHdvcmsgc2VjdXJpdHkgc3BlY2lhbGlzdAo+IAo+IFRlbC4gSFU6ICszNi8zMC00OTctMTYyNgo+
IFRlbC4gREU6ICs0OS8xNjAtNjUxLTg3MjMKPiBPcGVuUEdQIHB1YmtleTogaHR0cDovL2V0aXQu
aHUvZG9jL2V0LXB1Yi5hc2MKPiAKPiBPa2xldmVsZXMgbcOpcm7DtmstaW5mb3JtYXRpa3VzIChN
U0MpCj4gTWFzdGVyIG9mIFNjaWVuY2UgaW4gSW5mb3JtYXRpb24gVGVjaG5vbG9neSAoTVNDKQo+
IAo+IEthcGNzb2xhdDogaHR0cDovL2V0aXQuaHUvaW5kZXgucGhwL2h1L2thcGNzb2xhdAo+IEpv
Z2kgbnlpbGF0a296YXQ6IGh0dHA6Ly9ldGl0Lmh1L2Rpc2NsYWltZXItZW1haWwtaHUudHh0Cj4g
Q29udGFjdDogaHR0cDovL2V0aXQuaHUvaW5kZXgucGhwL2VuL2NvbnRhY3QKPiBEaXNjbGFpbWVy
OiBodHRwOi8vZXRpdC5odS9kaXNjbGFpbWVyLWVtYWlsLWVuLnR4dAoKX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlz
dAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9q
ZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVsCgo=
------=_Part_0_58995047.1469624256030
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: base64

PGRpdj5JIGNhbiBjb25maXJtIHRoYXQgV2luZG93cyAxMCBQcm8gYW5kIFNlcnZlciAyMDEyIFIy
LCB3aXRoIGFsbCBjdXJyZW50IFdpbmRvd3MgVXBkYXRlIHVwZGF0ZXMgaW5zdGFsbGVkLCB0b29r
IHRoZSBuZXcgZHJpdmVycyBmbGF3bGVzc2x5LiBUaGFua3MgYWdhaW4hPGJyLz4KPGJyLz4KPGZv
bnQgY29sb3I9IiM4ODg4ODgiPjxmb250IGNvbG9yPSIjODg4ODg4Ij5TZW50IGZyb20gbXkgYW5k
cm9pZCBkZXZpY2UuPC9mb250PjwvZm9udD48YnIvPjxici8+LS0tLS1PcmlnaW5hbCBNZXNzYWdl
LS0tLS08YnIvPkZyb206IFBhdWwgRHVycmFudCAmbHQ7UGF1bC5EdXJyYW50QGNpdHJpeC5jb20m
Z3Q7PGJyLz5UbzogJnF1b3Q7w4lsacOhcyBUYW3DoXMmcXVvdDsgJmx0O2V0QGV0aXQuaHUmZ3Q7
LCAmcXVvdDt3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcmcXVvdDsgJmx0O3dpbi1w
di1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyZndDs8YnIvPlNlbnQ6IFdlZCwgMjcgSnVsIDIw
MTYgODo0MSBBTTxici8+U3ViamVjdDogUmU6IFt3aW4tcHYtZGV2ZWxdIFNpZ25lZCA4LjEuMCBk
cml2ZXJzPGJyLz48YnIvPjwvZGl2PiZndDsgLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0mIzEz
Ozxici8+CiZndDsgRnJvbTogd2luLXB2LWRldmVsIFttYWlsdG86PGEgaHJlZj0ibWFpbHRvOndp
bi1wdi1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnIj53aW4tcHYtZGV2ZWwtYm91
bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZzwvYT5dIE9uJiMxMzs8YnIvPgomZ3Q7IEJlaGFsZiBP
ZiAmIzIwMTtsaSYjMjI1O3MgVGFtJiMyMjU7cyYjMTM7PGJyLz4KJmd0OyBTZW50OiAyNyBKdWx5
IDIwMTYgMTM6MzQmIzEzOzxici8+CiZndDsgVG86IDxhIGhyZWY9Im1haWx0bzp3aW4tcHYtZGV2
ZWxAbGlzdHMueGVucHJvamVjdC5vcmciPndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9y
ZzwvYT4mIzEzOzxici8+CiZndDsgU3ViamVjdDogUmU6IFt3aW4tcHYtZGV2ZWxdIFNpZ25lZCA4
LjEuMCBkcml2ZXJzJiMxMzs8YnIvPgomZ3Q7ICYjMTM7PGJyLz4KJmd0OyBIaS4mIzEzOzxici8+
CiZndDsgSSBwbGF5ZWQgcXVpdGUgYSBsb3Qgd2l0aCB0aG9zZSBFSkIgZHJpdmVycy4mIzEzOzxi
ci8+CiZndDsgJiMxMzs8YnIvPgomZ3Q7IHdoZW4geW91IHVuaW5zdGFsbCB0aGVtLCB5b3UgbmVl
ZCB0byBiZSBleHRyZW1lbHkgc3VyZSwgdGhhdCB5b3UmIzEzOzxici8+CiZndDsgdW5pbnN0YWxs
ZWQgYWxscHJldmlvdXMgdmVyc2lvbnMsIGFuZCB1c2VkIHRoZSA8YSBocmVmPSJodHRwOi8vdW5p
bnN0YWxsZXIuYmF0Ij51bmluc3RhbGxlci5iYXQ8L2E+IGZpbGUgdG9vLCYjMTM7PGJyLz4KJmd0
OyBhbmQgYWxzbyB5b3UgcmVtb3ZlZCBhbnkgcmVmZXJlbmNlIGZyb210IGhlIHJlZ2lzdHJ5LiBw
bHMgYnJvd3NlIHRocm91Z2gmIzEzOzxici8+CiZndDsgdGhlIGFyY2hpdmVzIG9mIHRoZSBsaXN0
LCBiZWNhb3N1c2UgdGhlcmUgYWxyZWFkeSBoYWQgYmVlbiBzZXZlcmFsJiMxMzs8YnIvPgomZ3Q7
IHNjcmlwdHMgcHVibGlzaGVkIG9uIHRoaXMgdG8gcmVzb2x2IHRoaXMgcHJvYmxlbS4mIzEzOzxi
ci8+CiZndDsgJiMxMzs8YnIvPgomZ3Q7IEFmdGVyIHVuaXNudGFsbGF0aW9uIGEgcmVib290IGlz
IHJlcXVpcmVkLCB0aGVuIGJvb3RpbmcgaW50byBzYWZlIG1vZGUmIzEzOzxici8+CiZndDsgYW5k
IGluc3RhbGxpbmcgdGhlIG5ldyBkcml2ZXJzIHNob3VsZCBkbyB0aGUgdHJpY2suJiMxMzs8YnIv
PgomZ3Q7ICYjMTM7PGJyLz4KJiMxMzs8YnIvPgpUaGFua3MgRWxpYXMuIFJlYWxseSB5b3Ugc2hv
dWxkIG5vdCBpbnN0YWxsIG5ldyBQViBkcml2ZXJzIHVudGlsIHlvdSBoYXZlIGEgVk0gdGhhdCBi
b290cyBub3JtYWxseSBhZnRlciBoYXZpbmcgcmVtb3ZlZCBwcmV2aW91cyBQViBkcml2ZXJzLiBJ
bnN0YWxsYXRpb24gb2YgdGhlIFhlbiBQcm9qZWN0IGRyaXZlcnMgc2hvdWxkIHRoZW4gYmUgZG9u
ZSBhZnRlciBhIG5vcm1hbCBib290ICh3aXRoIGVtdWxhdGVkIGRldmljZXMpLCBub3Qgd2hlbiBp
biBzYWZlIG1vZGUuJiMxMzs8YnIvPgomIzEzOzxici8+CiZuYnNwOyBQYXVsJiMxMzs8YnIvPgom
IzEzOzxici8+CiZndDsgMjAxNi0wNy0yNiAxOTo1MiBrZWx0ZXomIzIzMztzc2VsLCBCcmFuZG9u
IFNob2VtYWtlciAmIzIzNztydGE6JiMxMzs8YnIvPgomZ3Q7ICZndDsgSGV5IFBhdWwgYW5kIGxp
c3QsJiMxMzs8YnIvPgomZ3Q7ICZndDsmIzEzOzxici8+CiZndDsgJmd0OyBUaGF0IGZpeGVkIGl0
ISZuYnNwOyBPa2F5IHNvIEkgd2lsbCByZW1lbWJlciB0aGF0IG9uZSB1cGRhdGUgaXMgbmVlZGVk
IGZvciBhbnkmIzEzOzxici8+CiZndDsgbmV3IGNsZWFuIFdpbmRvd3MgMjAwOCBSMiBpbnN0YWxs
IG5vdCB5ZXQgdXBkYXRlZC4mIzEzOzxici8+CiZndDsgJmd0OyYjMTM7PGJyLz4KJmd0OyAmZ3Q7
IFN0aWxsIEkgYW0gbm90IHN1cmUgYWJvdXQgdGhlIHJlYXNvbiB3aHkgdGhlIEVKQiBkaWdpdGFs
IGRyaXZlciB1bmluc3RhbGwgYW5kJiMxMzs8YnIvPgomZ3Q7IHVwZGF0ZSB0byB0aGVzZSBkcml2
ZXJzIHJlc3VsdGVkIGluIFdpbmRvd3MgMjAwOCBSMiBoYW5naW5nIGZvcmV2ZXIgb24mIzEzOzxi
ci8+CiZndDsgcmVib290LiZuYnNwOyBJIHRlc3RlZCB0aGlzIHR3aWNlIHdpdGggdGhlIHNhbWUg
cmVzdWx0cy4mbmJzcDsgSSdkIGV4cGVjdCB5b3UgbWF5IHNlZSYjMTM7PGJyLz4KJmd0OyBzb21l
IG90aGVycyBjb21wbGFpbiBvZiBzZWVpbmcgdGhpcyBwcm9ibGVtIGluIHRoZSBmdXR1cmUuJm5i
c3A7IE1heWJlIHNvbWVvbmUmIzEzOzxici8+CiZndDsgd2l0aCBtb3JlIHRpbWUgYW5kIGNhcGFi
aWxpdHkgdGhhbiBtZSBjYW4gbGF0ZXIgY29uZmlybSBhIHdvcmtpbmcgcHJvY2VkdXJlJiMxMzs8
YnIvPgomZ3Q7IGZvciB1cGdyYWRpbmcgZnJvbSB0aG9zZSBkcml2ZXJzIHRvIHRoZXNlIG5ldyBk
cml2ZXJzIHRoYXQgY2FuIHJlc3VsdCBpbiYjMTM7PGJyLz4KJmd0OyBzdWNjZXNzLiYjMTM7PGJy
Lz4KJmd0OyAmZ3Q7JiMxMzs8YnIvPgomZ3Q7ICZndDsgTXkgcHJvY2VkdXJlIHdhczomIzEzOzxi
ci8+CiZndDsgJmd0OyYjMTM7PGJyLz4KJmd0OyAmZ3Q7IDEuIFVuaW5zdGFsbCB0aGUgRUpCIGRp
Z2l0YWwgZHJpdmVycyBmcm9tIHRoZSBXaW5kb3dzIGNvbnRyb2wgcGFuZWwmIzEzOzxici8+CiZn
dDsgJmd0OyAyLiBEb24ndCByZWJvb3QgeWV0JiMxMzs8YnIvPgomZ3Q7ICZndDsgMy4gSW5zdGFs
bCBhbGwgdGhlIG5ldyBkcml2ZXJzJiMxMzs8YnIvPgomZ3Q7ICZndDsgNC4gcmVib290JiMxMzs8
YnIvPgomZ3Q7ICZndDsgNS4gSSBmb3VuZCBpZiB5b3UgcmVib290IGZpcnN0IGJlZm9yZSBpbnN0
YWxsaW5nIHRoZSBuZXcgZHJpdmVycyB5b3UgZW5kIHVwJiMxMzs8YnIvPgomZ3Q7IHdpdGggYSBi
bHVlIHNjcmVlbiYjMTM7PGJyLz4KJmd0OyAmZ3Q7JiMxMzs8YnIvPgomZ3Q7ICZndDsgTXkgcHJv
Y2VkdXJlIG11c3QgYmUgaW5jb21wbGV0ZSBvciBoYXZlIGZsYXdzLiYjMTM7PGJyLz4KJmd0OyAm
Z3Q7JiMxMzs8YnIvPgomZ3Q7ICZndDsgVGhhbmtzIGFnYWluIGZvciB5b3VyIHN1cHBvcnQgb24g
dGhpcyBsaXN0LiYjMTM7PGJyLz4KJmd0OyAmZ3Q7JiMxMzs8YnIvPgomZ3Q7ICZndDsmIzEzOzxi
ci8+CiZndDsgJmd0OyZndDsgLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0mIzEzOzxici8+CiZn
dDsgJmd0OyZndDsgRnJvbTogUGF1bCBEdXJyYW50JiMxMzs8YnIvPgomZ3Q7ICZndDsmZ3Q7IFNl
bnQ6IDI2IEp1bHkgMjAxNiAxODoyNCYjMTM7PGJyLz4KJmd0OyAmZ3Q7Jmd0OyBUbzogJ0JyYW5k
b24gU2hvZW1ha2VyJzsgPGEgaHJlZj0ibWFpbHRvOndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9q
ZWN0Lm9yZyI+d2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnPC9hPiYjMTM7PGJyLz4K
Jmd0OyAmZ3Q7Jmd0OyBTdWJqZWN0OiBSRTogW3dpbi1wdi1kZXZlbF0gU2lnbmVkIDguMS4wIGRy
aXZlcnMmIzEzOzxici8+CiZndDsgJmd0OyZndDsmIzEzOzxici8+CiZndDsgJmd0OyZndDsmZ3Q7
IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tJiMxMzs8YnIvPgomZ3Q7ICZndDsmZ3Q7Jmd0OyBG
cm9tOiB3aW4tcHYtZGV2ZWwmIzEzOzxici8+CiZndDsgJmd0OyZndDsmZ3Q7IFttYWlsdG86PGEg
aHJlZj0ibWFpbHRvOndpbi1wdi1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnIj53
aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZzwvYT5dJiMxMzs8YnIvPgom
Z3Q7ICZndDsmZ3Q7IE9uJiMxMzs8YnIvPgomZ3Q7ICZndDsmZ3Q7Jmd0OyBCZWhhbGYgT2YgQnJh
bmRvbiBTaG9lbWFrZXImIzEzOzxici8+CiZndDsgJmd0OyZndDsmZ3Q7IFNlbnQ6IDI2IEp1bHkg
MjAxNiAxODowOCYjMTM7PGJyLz4KJmd0OyAmZ3Q7Jmd0OyZndDsgVG86IDxhIGhyZWY9Im1haWx0
bzp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmciPndpbi1wdi1kZXZlbEBsaXN0cy54
ZW5wcm9qZWN0Lm9yZzwvYT4mIzEzOzxici8+CiZndDsgJmd0OyZndDsmZ3Q7IFN1YmplY3Q6IFt3
aW4tcHYtZGV2ZWxdIFNpZ25lZCA4LjEuMCBkcml2ZXJzJiMxMzs8YnIvPgomZ3Q7ICZndDsmZ3Q7
Jmd0OyYjMTM7PGJyLz4KJmd0OyAmZ3Q7Jmd0OyZndDsgSGVsbG8sJiMxMzs8YnIvPgomZ3Q7ICZn
dDsmZ3Q7Jmd0OyYjMTM7PGJyLz4KJmd0OyAmZ3Q7Jmd0OyZndDsgSSBoYXZlIGJlZW4gd2FpdGlu
ZyBvbiB0aGVzZSBuZXcgc2lnbmVkIGRyaXZlcnMuJm5ic3A7IFRoYW5rcyBmb3IgZmluYWxseSYj
MTM7PGJyLz4KJmd0OyAmZ3Q7Jmd0OyZndDsgbWFraW5nIHRoZW0gYXZhaWxhYmxlISYjMTM7PGJy
Lz4KJmd0OyAmZ3Q7Jmd0OyZndDsmIzEzOzxici8+CiZndDsgJmd0OyZndDsmZ3Q7IEkgaGF2ZSB0
ZXN0ZWQgYW5kIHJ1biBpbnRvIGEgcHJvYmxlbXMgdW5mb3J0dW5hdGVseSBzbyBJIHdhbnRlZCB0
byYjMTM7PGJyLz4KJmd0OyAmZ3Q7Jmd0OyZndDsgcmVwb3J0IHRoaXMuJiMxMzs8YnIvPgomZ3Q7
ICZndDsmZ3Q7Jmd0OyYjMTM7PGJyLz4KJmd0OyAmZ3Q7Jmd0OyZndDsgRmlyc3QgSSB0cmllZCB1
bmluc3RhbGxpbmcgdGhlIEVKQiBkaWdpdGFsIGRyaXZlcnMmIzEzOzxici8+CiZndDsgJmd0OyZn
dDsmZ3Q7IChlamJwdl9WaXN0YTIwMDh4NjRfPGEgaHJlZj0iaHR0cDovLzEuMC4xMTA1Lm1zaSI+
MS4wLjExMDUubXNpPC9hPikgYW5kIGluc3RhbGxpbmcgdGhlc2UgbmV3IGRyaXZlcnMmIzEzOzxi
ci8+CiZndDsgJmd0OyZndDsmZ3Q7IG9uIFdpbmRvd3MgMjAwOCBSMiB4NjQgZXhpc3RpbmcgVlBT
LiZuYnNwOyBBZnRlciByZWJvb3RpbmcgV2luZG93cyAyMDA4JiMxMzs8YnIvPgomZ3Q7ICZndDsm
Z3Q7Jmd0OyBSMiYjMTM7PGJyLz4KJmd0OyAmZ3Q7Jmd0OyBoYW5ncyYjMTM7PGJyLz4KJmd0OyAm
Z3Q7Jmd0OyZndDsgZm9yZXZlciBhdCBib290LiYjMTM7PGJyLz4KJmd0OyAmZ3Q7Jmd0OyZndDsm
IzEzOzxici8+CiZndDsgJmd0OyZndDsmZ3Q7IFNlY29uZGx5IEkgaGF2ZSBpbnN0YWxsZWQgYSBj
bGVhbiBXaW5kb3dzIDIwMDggUjIgYW5kIHRoZW4gaW5zdGFsbGVkJiMxMzs8YnIvPgomZ3Q7ICZn
dDsmZ3Q7Jmd0OyBhbGwgdGhlIGRyaXZlcnMgYW5kIHdoZW4gSSByZWJvb3QgaXQgZ29lcyBpbnRv
IHJlY292ZXJ5IG1vZGUuJm5ic3A7IEkmIzEzOzxici8+CiZndDsgJmd0OyZndDsmZ3Q7IGhhcHBl
biB0byBjaGVjayBXaW5kb3dzIGRldmljZSBtYW5hZ2VyIGJlZm9yZSBJIHJlYm9vdGVkIGFuZCBJ
JiMxMzs8YnIvPgomZ3Q7ICZndDsmZ3Q7Jmd0OyBub3RpY2VkIHRoYXQgdGhlICJYZW4gUFYgQnVz
IiBkcml2ZXIgaGFzIGEgeWVsbG93IHdhcm5pbmcgc3ltYm9sIGFzJiMxMzs8YnIvPgomZ3Q7IHNo
b3duIGluIHRoZSBzY3JlZW5zaG90ICZndDsmIzEzOzxici8+CiZndDsgJmd0OyZndDsmZ3Q7IDxh
IGhyZWY9Imh0dHBzOi8vcG9zdGltZy5vcmcvaW1hZ2UveDA4ZzduNHduIj5odHRwczovL3Bvc3Rp
bWcub3JnL2ltYWdlL3gwOGc3bjR3bjwvYT4vJm5ic3A7Jm5ic3A7IGl0IHNheXMgaXQgY2Fubm90
IHZlcmlmeSB0aGUmIzEzOzxici8+CiZndDsgZGlnaXRhbCYjMTM7PGJyLz4KJmd0OyAmZ3Q7Jmd0
OyZndDsgc2lnbmF0dXJlIGZvciB0aGUgWGVuIFBWIEJ1cyBkcml2ZXJzLiZuYnNwOyBOb3RoaW5n
IHdhcyBkb25lIGJ1dCB0aGUmIzEzOzxici8+CiZndDsgJmd0OyZndDsmZ3Q7IGluc3RhbGwgb2Yg
V2luZG93cyBhbmQgdGhlbiBpbW1lZGlhdGUgaW5zdGFsbCBvZiB0aGUgZHJpdmVycy4mIzEzOzxi
ci8+CiZndDsgJmd0OyZndDsmIzEzOzxici8+CiZndDsgJmd0OyZndDsgSSBzdXNwZWN0IHRoaXMg
aXMgYmVjYXVzZSB0aGUgZHJpdmVycyBhcmUgc2lnbmVkIHdpdGggU0hBLTI1NiBhbmQgeW91JiMx
Mzs8YnIvPgomZ3Q7ICZndDsmZ3Q7IG1heSBuZWVkIGEgaG90Zml4IHRvIGVuYWJsZSB2ZXJpZmlj
YXRpb24gb2Yga2VybmVsIG1vZGUgZHJpdmVycyBzaWduZWQmIzEzOzxici8+CiZndDsgJmd0OyZn
dDsgd2l0aCBhJiMxMzs8YnIvPgomZ3Q7ICZndDsmZ3Q7IFNIQS0yNTYgY2VydC4mIzEzOzxici8+
CiZndDsgJmd0OyYjMTM7PGJyLz4KJmd0OyAmZ3Q7IFNwZWNpZmljYWxseSBzZWUgPGEgaHJlZj0i
aHR0cHM6Ly90ZWNobmV0Lm1pY3Jvc29mdC5jb20vZW4iPmh0dHBzOi8vdGVjaG5ldC5taWNyb3Nv
ZnQuY29tL2VuPC9hPi0mIzEzOzxici8+CiZndDsgdXMvbGlicmFyeS9zZWN1cml0eS88YSBocmVm
PSJ0ZWw6MzAzMzkyOSI+MzAzMzkyOTwvYT4/Zj0yNTUmYW1wO01TUFBFcnJvcj0tPGEgaHJlZj0i
dGVsOjIxNDcyMTczOTYiPjIxNDcyMTczOTY8L2E+JiMxMzs8YnIvPgomZ3Q7ICZndDsmIzEzOzxi
ci8+CiZndDsgJmd0OyZndDsmIzEzOzxici8+CiZndDsgJmd0OyZndDsmbmJzcDsmbmJzcDsgUGF1
bCYjMTM7PGJyLz4KJmd0OyAmZ3Q7Jmd0OyYjMTM7PGJyLz4KJmd0OyAmZ3Q7JiMxMzs8YnIvPgom
Z3Q7ICZndDsmIzEzOzxici8+CiZndDsgJmd0OyYjMTM7PGJyLz4KJmd0OyAmZ3Q7IF9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fJiMxMzs8YnIvPgomZ3Q7ICZn
dDsgd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdCYjMTM7PGJyLz4KJmd0OyAmZ3Q7IDxhIGhyZWY9
Im1haWx0bzp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmciPndpbi1wdi1kZXZlbEBs
aXN0cy54ZW5wcm9qZWN0Lm9yZzwvYT4mIzEzOzxici8+CiZndDsgJmd0OyA8YSBocmVmPSJodHRw
czovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYt
ZGV2ZWwiPmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3Rp
bmZvL3dpbi1wdi1kZXZlbDwvYT4mIzEzOzxici8+CiZndDsgJmd0OyYjMTM7PGJyLz4KJmd0OyAm
IzEzOzxici8+CiZndDsgLS0mIzEzOzxici8+CiZndDsgJiMxMzs8YnIvPgomZ3Q7ICYjMTM7PGJy
Lz4KJmd0OyAmIzIwMTtsaSYjMjI1O3MgVGFtJiMyMjU7cyYjMTM7PGJyLz4KJmd0OyBUaG9tYXMg
RWxpYXMmIzEzOzxici8+CiZndDsgJiMxMzs8YnIvPgomZ3Q7IEVUSVRbbndwcm9dIEtGVCwgJiMy
MjA7Z3l2ZXpldCYjMzM3Oy1IJiMyMjU7bCYjMjQzO3phdGJpenRvbnMmIzIyNTtnaSBzcGVjaWFs
aXN0YSYjMTM7PGJyLz4KJmd0OyBFVElUW253cHJvXSBMdGQsIEdlbmVyYWwgTWFuYWdlci1OZXR3
b3JrIHNlY3VyaXR5IHNwZWNpYWxpc3QmIzEzOzxici8+CiZndDsgJiMxMzs8YnIvPgomZ3Q7IFRl
bC4gSFU6IDxhIGhyZWY9InRlbDorMzYzMDQ5NzE2MjYiPiszNi8zMC00OTctMTYyNjwvYT4mIzEz
Ozxici8+CiZndDsgVGVsLiBERTogPGEgaHJlZj0idGVsOis0OTE2MDY1MTg3MjMiPis0OS8xNjAt
NjUxLTg3MjM8L2E+JiMxMzs8YnIvPgomZ3Q7IE9wZW5QR1AgcHVia2V5OiA8YSBocmVmPSJodHRw
Oi8vZXRpdC5odS9kb2MvZXQtcHViLmFzYyI+aHR0cDovL2V0aXQuaHUvZG9jL2V0LXB1Yi5hc2M8
L2E+JiMxMzs8YnIvPgomZ3Q7ICYjMTM7PGJyLz4KJmd0OyBPa2xldmVsZXMgbSYjMjMzO3JuJiMy
NDY7ay1pbmZvcm1hdGlrdXMgKE1TQykmIzEzOzxici8+CiZndDsgTWFzdGVyIG9mIFNjaWVuY2Ug
aW4gSW5mb3JtYXRpb24gVGVjaG5vbG9neSAoTVNDKSYjMTM7PGJyLz4KJmd0OyAmIzEzOzxici8+
CiZndDsgS2FwY3NvbGF0OiA8YSBocmVmPSJodHRwOi8vZXRpdC5odS9pbmRleC5waHAvaHUva2Fw
Y3NvbGF0Ij5odHRwOi8vZXRpdC5odS9pbmRleC5waHAvaHUva2FwY3NvbGF0PC9hPiYjMTM7PGJy
Lz4KJmd0OyBKb2dpIG55aWxhdGtvemF0OiA8YSBocmVmPSJodHRwOi8vZXRpdC5odS9kaXNjbGFp
bWVyLWVtYWlsLWh1LnR4dCI+aHR0cDovL2V0aXQuaHUvZGlzY2xhaW1lci1lbWFpbC1odS50eHQ8
L2E+JiMxMzs8YnIvPgomZ3Q7IENvbnRhY3Q6IDxhIGhyZWY9Imh0dHA6Ly9ldGl0Lmh1L2luZGV4
LnBocC9lbi9jb250YWN0Ij5odHRwOi8vZXRpdC5odS9pbmRleC5waHAvZW4vY29udGFjdDwvYT4m
IzEzOzxici8+CiZndDsgRGlzY2xhaW1lcjogPGEgaHJlZj0iaHR0cDovL2V0aXQuaHUvZGlzY2xh
aW1lci1lbWFpbC1lbi50eHQiPmh0dHA6Ly9ldGl0Lmh1L2Rpc2NsYWltZXItZW1haWwtZW4udHh0
PC9hPiYjMTM7PGJyLz4KJiMxMzs8YnIvPgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXyYjMTM7PGJyLz4Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdCYjMTM7
PGJyLz4KPGEgaHJlZj0ibWFpbHRvOndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyI+
d2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnPC9hPiYjMTM7PGJyLz4KPGEgaHJlZj0i
aHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2lu
LXB2LWRldmVsIj5odHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9s
aXN0aW5mby93aW4tcHYtZGV2ZWw8L2E+JiMxMzs8YnIvPgomIzEzOzxici8+Cg==
------=_Part_0_58995047.1469624256030--


--===============7567167777963704064==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============7567167777963704064==--


From win-pv-devel-bounces@lists.xenproject.org Wed Jul 27 12:58:13 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 27 Jul 2016 12:58:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bSOPb-0002GI-Sc; Wed, 27 Jul 2016 12:58:11 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <cboxall@family-enterprises.com>) id 1bSOPa-0002GC-4E
 for win-pv-devel@lists.xenproject.org; Wed, 27 Jul 2016 12:58:10 +0000
Received: from [85.158.137.68] by server-9.bemta-3.messagelabs.com id
 1F/59-27233-1EFA8975; Wed, 27 Jul 2016 12:58:09 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrIKsWRWlGSWpSXmKPExsXiIDv5ru799TP
 CDa58ELL4szjRgdHj8IcrLAGMUayZeUn5FQmsGTcn3GAp6JrFWPFgkW8D47/pjF2MnBwSAiYS
 u462sXcxcnEICSxnkvi/fA07SIJFQFXiz+X1TCA2m4CKRO+Ur4wgRSICOxglZjx7B+RwcPAKu
 EnM/VUIYnIKeEhMnywFMWcak0TPkj4WkF5hAQOJ15+usoHYvAKCEidnPgGLMwuESrzcdpgJpF
 dCQENi+xWwtaICWhJLl3xkgbiNQ6LjwVVWkJkSAhNYJfoOXGSHSCRJbJ88hw3CFpbY/uAW1DM
 iEl0fn7DCxCfsPAY1iE9iyrmtTBA2v8S9HWuZIWxxieddD1gmMIrNQnLeLCTnQdjqEn/mXWKG
 sBUlpnQ/ZJ8FdDazgJrEslYlZOEFjGyrGDWKU4vKUot0jcz0kooy0zNKchMzc3QNDYz1clOLi
 xPTU3MSk4r1kvNzNzECo66egYFxB2PDXr9DjJIcTEqivIscZ4QL8SXlp1RmJBZnxBeV5qQWH2
 KU4eBQkuDduw4oJ1iUmp5akZaZA4x/mLQEB4+SCK8qMAUI8RYXJOYWZ6ZDpE4xKkqJ874H6RM
 ASWSU5sG1wVLOJUZZKWFeRgYGBiGegtSi3MwSVPlXjOIcjErCvGtApvBk5pXATX8FtJgJaHFx
 LNjikkSElFQDY34Op07/zc2RdqvP3DHc+d31bNqfJ04Mq9j7ihxLDr5qs8hzjf8ldHObOkPfm
 USWKl/pS8LXDhmrn1Jc5LbZetnBvC/dNwxiqmedUNg1z6o/+1PehLkP1zpWnnKeFufnzdRb8e
 YYs9LrY2K7/kwuL9zpFMly4J0vywPBmK8721jF/2gL+W5foMRSnJFoqMVcVJwIADvlkVc0AwA
 A
X-Env-Sender: cboxall@family-enterprises.com
X-Msg-Ref: server-2.tower-31.messagelabs.com!1469624285!52645117!1
X-Originating-IP: [64.29.147.221]
X-SpamReason: No, hits=1.1 required=7.0 tests=BODY_RANDOM_LONG,
 HTML_40_50,HTML_MESSAGE
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 52083 invoked from network); 27 Jul 2016 12:58:06 -0000
Received: from mail151c25.carrierzone.com (HELO mail24c25.carrierzone.com)
 (64.29.147.221)
 by server-2.tower-31.messagelabs.com with DHE-RSA-AES256-GCM-SHA384 encrypted
 SMTP; 27 Jul 2016 12:58:06 -0000
X-Authenticated-User: cboxall.family-enterprises.com
Received: from [10.115.95.220] (mobile-166-171-059-138.mycingular.net
 [166.171.59.138]) (authenticated bits=0)
 by mail24c25.carrierzone.com (8.14.9/8.13.1) with ESMTP id u6RCvacM023543
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO);
 Wed, 27 Jul 2016 12:57:39 +0000
Date: Wed, 27 Jul 2016 08:57:35 -0400
From: cboxall@family-enterprises.com
To: =?UTF-8?Q?=C3=89li=C3=A1s_Tam=C3=A1s?= <et@etit.hu>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>,
 Paul Durrant <Paul.Durrant@citrix.com>
Message-ID: <ed8e668a-704b-4e14-bb8d-1c8677f7d495.maildroid@localhost>
In-Reply-To: <cbaa637eef394277ac8c0d11885a986f@AMSPEX02CL03.citrite.net>
References: <08a801d1e760$3f2549a0$bd6fdce0$@thinkhuge.net>
 <c582eb60539340008a1fbc241346ba5e@AMSPEX02CL03.citrite.net>
 <08bf01d1e766$85a68be0$90f3a3a0$@thinkhuge.net>
 <5c280b55-a48e-1fb1-7770-c664c44fbed7@etit.hu>
 <cbaa637eef394277ac8c0d11885a986f@AMSPEX02CL03.citrite.net>
MIME-Version: 1.0
X-Mailer: MailDroid/4.35 (Android 5.1.1)
User-Agent: MailDroid/4.35 (Android 5.1.1)
X-CSC: 0
X-CHA: v=2.1 cv=e48/F8Z/ c=1 sm=1 tr=0 a=+9ujVRAeGT57iJNqehmk8A==:117
 a=+9ujVRAeGT57iJNqehmk8A==:17 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10
 a=s5jvgZ67dGcA:10 a=tHz9FfFoAAAA:8 a=cWRNjhkoAAAA:8 a=c_2Yb8BRAAAA:20
 a=yMhMjlubAAAA:8 a=JOf7AlrsAAAA:8 a=ZL3cnePm8e92G6RnKVIA:9
 a=nIwSO7OT-rfOxu36:21 a=J3MVCdRoYg0aahhD:21 a=QEXdDO2ut3YA:10
 a=G2uicN79_xgA:10 a=teLQDhfPlQcA:10 a=quu1wrNWAAAA:20 a=FnTV7rK0AAAA:20
 a=62AnJiQFAAAA:20 a=DGSk7Cvj7oihp-FGbZ4A:9 a=aZe98IgOWRExeEyf:21
 a=JbrZNL4gi0vWjTJ-:21 a=7myvxPLqndVe9500:21 a=qiWi7Edwir4A:10
 a=NWVoK91CQyQA:10 a=Z52K5TbU17EcDgFyT5Ki:22 a=sVa6W5Aao32NNC1mekxh:22
 a=BKKCjISod1eDJeS0ORpz:22 a=tFtQa-HLCNgsQ2euEmZQ:22
X-CTCH-RefID: str=0001.0A010206.5798AFC6.000A, ss=1, re=0.000, recu=0.000,
 reip=0.000, cl=1, cld=1, fgs=0
X-CTCH-VOD: Unknown
X-CTCH-Spam: Unknown
X-CTCH-Score: 0.000
X-CTCH-Rules: 
X-CTCH-Flags: 0
X-CTCH-ScoreCust: 0.000
Subject: Re: [win-pv-devel] Signed 8.1.0 drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============7567167777963704064=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============7567167777963704064==
Content-Type: multipart/alternative;
	 boundary="----=_Part_0_58995047.1469624256030"

------=_Part_0_58995047.1469624256030
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: base64

SSBjYW4gY29uZmlybSB0aGF0IFdpbmRvd3MgMTAgUHJvIGFuZCBTZXJ2ZXIgMjAxMiBSMiwgd2l0
aCBhbGwgY3VycmVudCBXaW5kb3dzIFVwZGF0ZSB1cGRhdGVzIGluc3RhbGxlZCwgdG9vayB0aGUg
bmV3IGRyaXZlcnMgZmxhd2xlc3NseS4gVGhhbmtzIGFnYWluIQoKU2VudCBmcm9tIG15IGFuZHJv
aWQgZGV2aWNlLgoKLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KRnJvbTogUGF1bCBEdXJyYW50
IDxQYXVsLkR1cnJhbnRAY2l0cml4LmNvbT4KVG86ICLDiWxpw6FzIFRhbcOhcyIgPGV0QGV0aXQu
aHU+LCAid2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnIiA8d2luLXB2LWRldmVsQGxp
c3RzLnhlbnByb2plY3Qub3JnPgpTZW50OiBXZWQsIDI3IEp1bCAyMDE2IDg6NDEgQU0KU3ViamVj
dDogUmU6IFt3aW4tcHYtZGV2ZWxdIFNpZ25lZCA4LjEuMCBkcml2ZXJzCgo+IC0tLS0tT3JpZ2lu
YWwgTWVzc2FnZS0tLS0tCj4gRnJvbTogd2luLXB2LWRldmVsIFttYWlsdG86d2luLXB2LWRldmVs
LWJvdW5jZXNAbGlzdHMueGVucHJvamVjdC5vcmddIE9uCj4gQmVoYWxmIE9mIMOJbGnDoXMgVGFt
w6FzCj4gU2VudDogMjcgSnVseSAyMDE2IDEzOjM0Cj4gVG86IHdpbi1wdi1kZXZlbEBsaXN0cy54
ZW5wcm9qZWN0Lm9yZwo+IFN1YmplY3Q6IFJlOiBbd2luLXB2LWRldmVsXSBTaWduZWQgOC4xLjAg
ZHJpdmVycwo+IAo+IEhpLgo+IEkgcGxheWVkIHF1aXRlIGEgbG90IHdpdGggdGhvc2UgRUpCIGRy
aXZlcnMuCj4gCj4gd2hlbiB5b3UgdW5pbnN0YWxsIHRoZW0sIHlvdSBuZWVkIHRvIGJlIGV4dHJl
bWVseSBzdXJlLCB0aGF0IHlvdQo+IHVuaW5zdGFsbGVkIGFsbHByZXZpb3VzIHZlcnNpb25zLCBh
bmQgdXNlZCB0aGUgdW5pbnN0YWxsZXIuYmF0IGZpbGUgdG9vLAo+IGFuZCBhbHNvIHlvdSByZW1v
dmVkIGFueSByZWZlcmVuY2UgZnJvbXQgaGUgcmVnaXN0cnkuIHBscyBicm93c2UgdGhyb3VnaAo+
IHRoZSBhcmNoaXZlcyBvZiB0aGUgbGlzdCwgYmVjYW9zdXNlIHRoZXJlIGFscmVhZHkgaGFkIGJl
ZW4gc2V2ZXJhbAo+IHNjcmlwdHMgcHVibGlzaGVkIG9uIHRoaXMgdG8gcmVzb2x2IHRoaXMgcHJv
YmxlbS4KPiAKPiBBZnRlciB1bmlzbnRhbGxhdGlvbiBhIHJlYm9vdCBpcyByZXF1aXJlZCwgdGhl
biBib290aW5nIGludG8gc2FmZSBtb2RlCj4gYW5kIGluc3RhbGxpbmcgdGhlIG5ldyBkcml2ZXJz
IHNob3VsZCBkbyB0aGUgdHJpY2suCj4gCgpUaGFua3MgRWxpYXMuIFJlYWxseSB5b3Ugc2hvdWxk
IG5vdCBpbnN0YWxsIG5ldyBQViBkcml2ZXJzIHVudGlsIHlvdSBoYXZlIGEgVk0gdGhhdCBib290
cyBub3JtYWxseSBhZnRlciBoYXZpbmcgcmVtb3ZlZCBwcmV2aW91cyBQViBkcml2ZXJzLiBJbnN0
YWxsYXRpb24gb2YgdGhlIFhlbiBQcm9qZWN0IGRyaXZlcnMgc2hvdWxkIHRoZW4gYmUgZG9uZSBh
ZnRlciBhIG5vcm1hbCBib290ICh3aXRoIGVtdWxhdGVkIGRldmljZXMpLCBub3Qgd2hlbiBpbiBz
YWZlIG1vZGUuCgogIFBhdWwKCj4gMjAxNi0wNy0yNiAxOTo1MiBrZWx0ZXrDqXNzZWwsIEJyYW5k
b24gU2hvZW1ha2VyIMOtcnRhOgo+ID4gSGV5IFBhdWwgYW5kIGxpc3QsCj4gPgo+ID4gVGhhdCBm
aXhlZCBpdCEgIE9rYXkgc28gSSB3aWxsIHJlbWVtYmVyIHRoYXQgb25lIHVwZGF0ZSBpcyBuZWVk
ZWQgZm9yIGFueQo+IG5ldyBjbGVhbiBXaW5kb3dzIDIwMDggUjIgaW5zdGFsbCBub3QgeWV0IHVw
ZGF0ZWQuCj4gPgo+ID4gU3RpbGwgSSBhbSBub3Qgc3VyZSBhYm91dCB0aGUgcmVhc29uIHdoeSB0
aGUgRUpCIGRpZ2l0YWwgZHJpdmVyIHVuaW5zdGFsbCBhbmQKPiB1cGRhdGUgdG8gdGhlc2UgZHJp
dmVycyByZXN1bHRlZCBpbiBXaW5kb3dzIDIwMDggUjIgaGFuZ2luZyBmb3JldmVyIG9uCj4gcmVi
b290LiAgSSB0ZXN0ZWQgdGhpcyB0d2ljZSB3aXRoIHRoZSBzYW1lIHJlc3VsdHMuICBJJ2QgZXhw
ZWN0IHlvdSBtYXkgc2VlCj4gc29tZSBvdGhlcnMgY29tcGxhaW4gb2Ygc2VlaW5nIHRoaXMgcHJv
YmxlbSBpbiB0aGUgZnV0dXJlLiAgTWF5YmUgc29tZW9uZQo+IHdpdGggbW9yZSB0aW1lIGFuZCBj
YXBhYmlsaXR5IHRoYW4gbWUgY2FuIGxhdGVyIGNvbmZpcm0gYSB3b3JraW5nIHByb2NlZHVyZQo+
IGZvciB1cGdyYWRpbmcgZnJvbSB0aG9zZSBkcml2ZXJzIHRvIHRoZXNlIG5ldyBkcml2ZXJzIHRo
YXQgY2FuIHJlc3VsdCBpbgo+IHN1Y2Nlc3MuCj4gPgo+ID4gTXkgcHJvY2VkdXJlIHdhczoKPiA+
Cj4gPiAxLiBVbmluc3RhbGwgdGhlIEVKQiBkaWdpdGFsIGRyaXZlcnMgZnJvbSB0aGUgV2luZG93
cyBjb250cm9sIHBhbmVsCj4gPiAyLiBEb24ndCByZWJvb3QgeWV0Cj4gPiAzLiBJbnN0YWxsIGFs
bCB0aGUgbmV3IGRyaXZlcnMKPiA+IDQuIHJlYm9vdAo+ID4gNS4gSSBmb3VuZCBpZiB5b3UgcmVi
b290IGZpcnN0IGJlZm9yZSBpbnN0YWxsaW5nIHRoZSBuZXcgZHJpdmVycyB5b3UgZW5kIHVwCj4g
d2l0aCBhIGJsdWUgc2NyZWVuCj4gPgo+ID4gTXkgcHJvY2VkdXJlIG11c3QgYmUgaW5jb21wbGV0
ZSBvciBoYXZlIGZsYXdzLgo+ID4KPiA+IFRoYW5rcyBhZ2FpbiBmb3IgeW91ciBzdXBwb3J0IG9u
IHRoaXMgbGlzdC4KPiA+Cj4gPgo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gPj4g
RnJvbTogUGF1bCBEdXJyYW50Cj4gPj4gU2VudDogMjYgSnVseSAyMDE2IDE4OjI0Cj4gPj4gVG86
ICdCcmFuZG9uIFNob2VtYWtlcic7IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwo+
ID4+IFN1YmplY3Q6IFJFOiBbd2luLXB2LWRldmVsXSBTaWduZWQgOC4xLjAgZHJpdmVycwo+ID4+
Cj4gPj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gPj4+IEZyb206IHdpbi1wdi1kZXZl
bAo+ID4+PiBbbWFpbHRvOndpbi1wdi1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3Jn
XQo+ID4+IE9uCj4gPj4+IEJlaGFsZiBPZiBCcmFuZG9uIFNob2VtYWtlcgo+ID4+PiBTZW50OiAy
NiBKdWx5IDIwMTYgMTg6MDgKPiA+Pj4gVG86IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0
Lm9yZwo+ID4+PiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBTaWduZWQgOC4xLjAgZHJpdmVycwo+
ID4+Pgo+ID4+PiBIZWxsbywKPiA+Pj4KPiA+Pj4gSSBoYXZlIGJlZW4gd2FpdGluZyBvbiB0aGVz
ZSBuZXcgc2lnbmVkIGRyaXZlcnMuICBUaGFua3MgZm9yIGZpbmFsbHkKPiA+Pj4gbWFraW5nIHRo
ZW0gYXZhaWxhYmxlIQo+ID4+Pgo+ID4+PiBJIGhhdmUgdGVzdGVkIGFuZCBydW4gaW50byBhIHBy
b2JsZW1zIHVuZm9ydHVuYXRlbHkgc28gSSB3YW50ZWQgdG8KPiA+Pj4gcmVwb3J0IHRoaXMuCj4g
Pj4+Cj4gPj4+IEZpcnN0IEkgdHJpZWQgdW5pbnN0YWxsaW5nIHRoZSBFSkIgZGlnaXRhbCBkcml2
ZXJzCj4gPj4+IChlamJwdl9WaXN0YTIwMDh4NjRfMS4wLjExMDUubXNpKSBhbmQgaW5zdGFsbGlu
ZyB0aGVzZSBuZXcgZHJpdmVycwo+ID4+PiBvbiBXaW5kb3dzIDIwMDggUjIgeDY0IGV4aXN0aW5n
IFZQUy4gIEFmdGVyIHJlYm9vdGluZyBXaW5kb3dzIDIwMDgKPiA+Pj4gUjIKPiA+PiBoYW5ncwo+
ID4+PiBmb3JldmVyIGF0IGJvb3QuCj4gPj4+Cj4gPj4+IFNlY29uZGx5IEkgaGF2ZSBpbnN0YWxs
ZWQgYSBjbGVhbiBXaW5kb3dzIDIwMDggUjIgYW5kIHRoZW4gaW5zdGFsbGVkCj4gPj4+IGFsbCB0
aGUgZHJpdmVycyBhbmQgd2hlbiBJIHJlYm9vdCBpdCBnb2VzIGludG8gcmVjb3ZlcnkgbW9kZS4g
IEkKPiA+Pj4gaGFwcGVuIHRvIGNoZWNrIFdpbmRvd3MgZGV2aWNlIG1hbmFnZXIgYmVmb3JlIEkg
cmVib290ZWQgYW5kIEkKPiA+Pj4gbm90aWNlZCB0aGF0IHRoZSAiWGVuIFBWIEJ1cyIgZHJpdmVy
IGhhcyBhIHllbGxvdyB3YXJuaW5nIHN5bWJvbCBhcwo+IHNob3duIGluIHRoZSBzY3JlZW5zaG90
ID4KPiA+Pj4gaHR0cHM6Ly9wb3N0aW1nLm9yZy9pbWFnZS94MDhnN240d24vICAgaXQgc2F5cyBp
dCBjYW5ub3QgdmVyaWZ5IHRoZQo+IGRpZ2l0YWwKPiA+Pj4gc2lnbmF0dXJlIGZvciB0aGUgWGVu
IFBWIEJ1cyBkcml2ZXJzLiAgTm90aGluZyB3YXMgZG9uZSBidXQgdGhlCj4gPj4+IGluc3RhbGwg
b2YgV2luZG93cyBhbmQgdGhlbiBpbW1lZGlhdGUgaW5zdGFsbCBvZiB0aGUgZHJpdmVycy4KPiA+
Pgo+ID4+IEkgc3VzcGVjdCB0aGlzIGlzIGJlY2F1c2UgdGhlIGRyaXZlcnMgYXJlIHNpZ25lZCB3
aXRoIFNIQS0yNTYgYW5kIHlvdQo+ID4+IG1heSBuZWVkIGEgaG90Zml4IHRvIGVuYWJsZSB2ZXJp
ZmljYXRpb24gb2Yga2VybmVsIG1vZGUgZHJpdmVycyBzaWduZWQKPiA+PiB3aXRoIGEKPiA+PiBT
SEEtMjU2IGNlcnQuCj4gPgo+ID4gU3BlY2lmaWNhbGx5IHNlZSBodHRwczovL3RlY2huZXQubWlj
cm9zb2Z0LmNvbS9lbi0KPiB1cy9saWJyYXJ5L3NlY3VyaXR5LzMwMzM5Mjk/Zj0yNTUmTVNQUEVy
cm9yPS0yMTQ3MjE3Mzk2Cj4gPgo+ID4+Cj4gPj4gICBQYXVsCj4gPj4KPiA+Cj4gPgo+ID4KPiA+
IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPiB3aW4t
cHYtZGV2ZWwgbWFpbGluZyBsaXN0Cj4gPiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5v
cmcKPiA+IGh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3Rp
bmZvL3dpbi1wdi1kZXZlbAo+ID4KPiAKPiAtLQo+IAo+IAo+IMOJbGnDoXMgVGFtw6FzCj4gVGhv
bWFzIEVsaWFzCj4gCj4gRVRJVFtud3Byb10gS0ZULCDDnGd5dmV6ZXTFkS1Iw6Fsw7N6YXRiaXp0
b25zw6FnaSBzcGVjaWFsaXN0YQo+IEVUSVRbbndwcm9dIEx0ZCwgR2VuZXJhbCBNYW5hZ2VyLU5l
dHdvcmsgc2VjdXJpdHkgc3BlY2lhbGlzdAo+IAo+IFRlbC4gSFU6ICszNi8zMC00OTctMTYyNgo+
IFRlbC4gREU6ICs0OS8xNjAtNjUxLTg3MjMKPiBPcGVuUEdQIHB1YmtleTogaHR0cDovL2V0aXQu
aHUvZG9jL2V0LXB1Yi5hc2MKPiAKPiBPa2xldmVsZXMgbcOpcm7DtmstaW5mb3JtYXRpa3VzIChN
U0MpCj4gTWFzdGVyIG9mIFNjaWVuY2UgaW4gSW5mb3JtYXRpb24gVGVjaG5vbG9neSAoTVNDKQo+
IAo+IEthcGNzb2xhdDogaHR0cDovL2V0aXQuaHUvaW5kZXgucGhwL2h1L2thcGNzb2xhdAo+IEpv
Z2kgbnlpbGF0a296YXQ6IGh0dHA6Ly9ldGl0Lmh1L2Rpc2NsYWltZXItZW1haWwtaHUudHh0Cj4g
Q29udGFjdDogaHR0cDovL2V0aXQuaHUvaW5kZXgucGhwL2VuL2NvbnRhY3QKPiBEaXNjbGFpbWVy
OiBodHRwOi8vZXRpdC5odS9kaXNjbGFpbWVyLWVtYWlsLWVuLnR4dAoKX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlz
dAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9q
ZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVsCgo=
------=_Part_0_58995047.1469624256030
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: base64

PGRpdj5JIGNhbiBjb25maXJtIHRoYXQgV2luZG93cyAxMCBQcm8gYW5kIFNlcnZlciAyMDEyIFIy
LCB3aXRoIGFsbCBjdXJyZW50IFdpbmRvd3MgVXBkYXRlIHVwZGF0ZXMgaW5zdGFsbGVkLCB0b29r
IHRoZSBuZXcgZHJpdmVycyBmbGF3bGVzc2x5LiBUaGFua3MgYWdhaW4hPGJyLz4KPGJyLz4KPGZv
bnQgY29sb3I9IiM4ODg4ODgiPjxmb250IGNvbG9yPSIjODg4ODg4Ij5TZW50IGZyb20gbXkgYW5k
cm9pZCBkZXZpY2UuPC9mb250PjwvZm9udD48YnIvPjxici8+LS0tLS1PcmlnaW5hbCBNZXNzYWdl
LS0tLS08YnIvPkZyb206IFBhdWwgRHVycmFudCAmbHQ7UGF1bC5EdXJyYW50QGNpdHJpeC5jb20m
Z3Q7PGJyLz5UbzogJnF1b3Q7w4lsacOhcyBUYW3DoXMmcXVvdDsgJmx0O2V0QGV0aXQuaHUmZ3Q7
LCAmcXVvdDt3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcmcXVvdDsgJmx0O3dpbi1w
di1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyZndDs8YnIvPlNlbnQ6IFdlZCwgMjcgSnVsIDIw
MTYgODo0MSBBTTxici8+U3ViamVjdDogUmU6IFt3aW4tcHYtZGV2ZWxdIFNpZ25lZCA4LjEuMCBk
cml2ZXJzPGJyLz48YnIvPjwvZGl2PiZndDsgLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0mIzEz
Ozxici8+CiZndDsgRnJvbTogd2luLXB2LWRldmVsIFttYWlsdG86PGEgaHJlZj0ibWFpbHRvOndp
bi1wdi1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnIj53aW4tcHYtZGV2ZWwtYm91
bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZzwvYT5dIE9uJiMxMzs8YnIvPgomZ3Q7IEJlaGFsZiBP
ZiAmIzIwMTtsaSYjMjI1O3MgVGFtJiMyMjU7cyYjMTM7PGJyLz4KJmd0OyBTZW50OiAyNyBKdWx5
IDIwMTYgMTM6MzQmIzEzOzxici8+CiZndDsgVG86IDxhIGhyZWY9Im1haWx0bzp3aW4tcHYtZGV2
ZWxAbGlzdHMueGVucHJvamVjdC5vcmciPndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9y
ZzwvYT4mIzEzOzxici8+CiZndDsgU3ViamVjdDogUmU6IFt3aW4tcHYtZGV2ZWxdIFNpZ25lZCA4
LjEuMCBkcml2ZXJzJiMxMzs8YnIvPgomZ3Q7ICYjMTM7PGJyLz4KJmd0OyBIaS4mIzEzOzxici8+
CiZndDsgSSBwbGF5ZWQgcXVpdGUgYSBsb3Qgd2l0aCB0aG9zZSBFSkIgZHJpdmVycy4mIzEzOzxi
ci8+CiZndDsgJiMxMzs8YnIvPgomZ3Q7IHdoZW4geW91IHVuaW5zdGFsbCB0aGVtLCB5b3UgbmVl
ZCB0byBiZSBleHRyZW1lbHkgc3VyZSwgdGhhdCB5b3UmIzEzOzxici8+CiZndDsgdW5pbnN0YWxs
ZWQgYWxscHJldmlvdXMgdmVyc2lvbnMsIGFuZCB1c2VkIHRoZSA8YSBocmVmPSJodHRwOi8vdW5p
bnN0YWxsZXIuYmF0Ij51bmluc3RhbGxlci5iYXQ8L2E+IGZpbGUgdG9vLCYjMTM7PGJyLz4KJmd0
OyBhbmQgYWxzbyB5b3UgcmVtb3ZlZCBhbnkgcmVmZXJlbmNlIGZyb210IGhlIHJlZ2lzdHJ5LiBw
bHMgYnJvd3NlIHRocm91Z2gmIzEzOzxici8+CiZndDsgdGhlIGFyY2hpdmVzIG9mIHRoZSBsaXN0
LCBiZWNhb3N1c2UgdGhlcmUgYWxyZWFkeSBoYWQgYmVlbiBzZXZlcmFsJiMxMzs8YnIvPgomZ3Q7
IHNjcmlwdHMgcHVibGlzaGVkIG9uIHRoaXMgdG8gcmVzb2x2IHRoaXMgcHJvYmxlbS4mIzEzOzxi
ci8+CiZndDsgJiMxMzs8YnIvPgomZ3Q7IEFmdGVyIHVuaXNudGFsbGF0aW9uIGEgcmVib290IGlz
IHJlcXVpcmVkLCB0aGVuIGJvb3RpbmcgaW50byBzYWZlIG1vZGUmIzEzOzxici8+CiZndDsgYW5k
IGluc3RhbGxpbmcgdGhlIG5ldyBkcml2ZXJzIHNob3VsZCBkbyB0aGUgdHJpY2suJiMxMzs8YnIv
PgomZ3Q7ICYjMTM7PGJyLz4KJiMxMzs8YnIvPgpUaGFua3MgRWxpYXMuIFJlYWxseSB5b3Ugc2hv
dWxkIG5vdCBpbnN0YWxsIG5ldyBQViBkcml2ZXJzIHVudGlsIHlvdSBoYXZlIGEgVk0gdGhhdCBi
b290cyBub3JtYWxseSBhZnRlciBoYXZpbmcgcmVtb3ZlZCBwcmV2aW91cyBQViBkcml2ZXJzLiBJ
bnN0YWxsYXRpb24gb2YgdGhlIFhlbiBQcm9qZWN0IGRyaXZlcnMgc2hvdWxkIHRoZW4gYmUgZG9u
ZSBhZnRlciBhIG5vcm1hbCBib290ICh3aXRoIGVtdWxhdGVkIGRldmljZXMpLCBub3Qgd2hlbiBp
biBzYWZlIG1vZGUuJiMxMzs8YnIvPgomIzEzOzxici8+CiZuYnNwOyBQYXVsJiMxMzs8YnIvPgom
IzEzOzxici8+CiZndDsgMjAxNi0wNy0yNiAxOTo1MiBrZWx0ZXomIzIzMztzc2VsLCBCcmFuZG9u
IFNob2VtYWtlciAmIzIzNztydGE6JiMxMzs8YnIvPgomZ3Q7ICZndDsgSGV5IFBhdWwgYW5kIGxp
c3QsJiMxMzs8YnIvPgomZ3Q7ICZndDsmIzEzOzxici8+CiZndDsgJmd0OyBUaGF0IGZpeGVkIGl0
ISZuYnNwOyBPa2F5IHNvIEkgd2lsbCByZW1lbWJlciB0aGF0IG9uZSB1cGRhdGUgaXMgbmVlZGVk
IGZvciBhbnkmIzEzOzxici8+CiZndDsgbmV3IGNsZWFuIFdpbmRvd3MgMjAwOCBSMiBpbnN0YWxs
IG5vdCB5ZXQgdXBkYXRlZC4mIzEzOzxici8+CiZndDsgJmd0OyYjMTM7PGJyLz4KJmd0OyAmZ3Q7
IFN0aWxsIEkgYW0gbm90IHN1cmUgYWJvdXQgdGhlIHJlYXNvbiB3aHkgdGhlIEVKQiBkaWdpdGFs
IGRyaXZlciB1bmluc3RhbGwgYW5kJiMxMzs8YnIvPgomZ3Q7IHVwZGF0ZSB0byB0aGVzZSBkcml2
ZXJzIHJlc3VsdGVkIGluIFdpbmRvd3MgMjAwOCBSMiBoYW5naW5nIGZvcmV2ZXIgb24mIzEzOzxi
ci8+CiZndDsgcmVib290LiZuYnNwOyBJIHRlc3RlZCB0aGlzIHR3aWNlIHdpdGggdGhlIHNhbWUg
cmVzdWx0cy4mbmJzcDsgSSdkIGV4cGVjdCB5b3UgbWF5IHNlZSYjMTM7PGJyLz4KJmd0OyBzb21l
IG90aGVycyBjb21wbGFpbiBvZiBzZWVpbmcgdGhpcyBwcm9ibGVtIGluIHRoZSBmdXR1cmUuJm5i
c3A7IE1heWJlIHNvbWVvbmUmIzEzOzxici8+CiZndDsgd2l0aCBtb3JlIHRpbWUgYW5kIGNhcGFi
aWxpdHkgdGhhbiBtZSBjYW4gbGF0ZXIgY29uZmlybSBhIHdvcmtpbmcgcHJvY2VkdXJlJiMxMzs8
YnIvPgomZ3Q7IGZvciB1cGdyYWRpbmcgZnJvbSB0aG9zZSBkcml2ZXJzIHRvIHRoZXNlIG5ldyBk
cml2ZXJzIHRoYXQgY2FuIHJlc3VsdCBpbiYjMTM7PGJyLz4KJmd0OyBzdWNjZXNzLiYjMTM7PGJy
Lz4KJmd0OyAmZ3Q7JiMxMzs8YnIvPgomZ3Q7ICZndDsgTXkgcHJvY2VkdXJlIHdhczomIzEzOzxi
ci8+CiZndDsgJmd0OyYjMTM7PGJyLz4KJmd0OyAmZ3Q7IDEuIFVuaW5zdGFsbCB0aGUgRUpCIGRp
Z2l0YWwgZHJpdmVycyBmcm9tIHRoZSBXaW5kb3dzIGNvbnRyb2wgcGFuZWwmIzEzOzxici8+CiZn
dDsgJmd0OyAyLiBEb24ndCByZWJvb3QgeWV0JiMxMzs8YnIvPgomZ3Q7ICZndDsgMy4gSW5zdGFs
bCBhbGwgdGhlIG5ldyBkcml2ZXJzJiMxMzs8YnIvPgomZ3Q7ICZndDsgNC4gcmVib290JiMxMzs8
YnIvPgomZ3Q7ICZndDsgNS4gSSBmb3VuZCBpZiB5b3UgcmVib290IGZpcnN0IGJlZm9yZSBpbnN0
YWxsaW5nIHRoZSBuZXcgZHJpdmVycyB5b3UgZW5kIHVwJiMxMzs8YnIvPgomZ3Q7IHdpdGggYSBi
bHVlIHNjcmVlbiYjMTM7PGJyLz4KJmd0OyAmZ3Q7JiMxMzs8YnIvPgomZ3Q7ICZndDsgTXkgcHJv
Y2VkdXJlIG11c3QgYmUgaW5jb21wbGV0ZSBvciBoYXZlIGZsYXdzLiYjMTM7PGJyLz4KJmd0OyAm
Z3Q7JiMxMzs8YnIvPgomZ3Q7ICZndDsgVGhhbmtzIGFnYWluIGZvciB5b3VyIHN1cHBvcnQgb24g
dGhpcyBsaXN0LiYjMTM7PGJyLz4KJmd0OyAmZ3Q7JiMxMzs8YnIvPgomZ3Q7ICZndDsmIzEzOzxi
ci8+CiZndDsgJmd0OyZndDsgLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0mIzEzOzxici8+CiZn
dDsgJmd0OyZndDsgRnJvbTogUGF1bCBEdXJyYW50JiMxMzs8YnIvPgomZ3Q7ICZndDsmZ3Q7IFNl
bnQ6IDI2IEp1bHkgMjAxNiAxODoyNCYjMTM7PGJyLz4KJmd0OyAmZ3Q7Jmd0OyBUbzogJ0JyYW5k
b24gU2hvZW1ha2VyJzsgPGEgaHJlZj0ibWFpbHRvOndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9q
ZWN0Lm9yZyI+d2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnPC9hPiYjMTM7PGJyLz4K
Jmd0OyAmZ3Q7Jmd0OyBTdWJqZWN0OiBSRTogW3dpbi1wdi1kZXZlbF0gU2lnbmVkIDguMS4wIGRy
aXZlcnMmIzEzOzxici8+CiZndDsgJmd0OyZndDsmIzEzOzxici8+CiZndDsgJmd0OyZndDsmZ3Q7
IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tJiMxMzs8YnIvPgomZ3Q7ICZndDsmZ3Q7Jmd0OyBG
cm9tOiB3aW4tcHYtZGV2ZWwmIzEzOzxici8+CiZndDsgJmd0OyZndDsmZ3Q7IFttYWlsdG86PGEg
aHJlZj0ibWFpbHRvOndpbi1wdi1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnIj53
aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZzwvYT5dJiMxMzs8YnIvPgom
Z3Q7ICZndDsmZ3Q7IE9uJiMxMzs8YnIvPgomZ3Q7ICZndDsmZ3Q7Jmd0OyBCZWhhbGYgT2YgQnJh
bmRvbiBTaG9lbWFrZXImIzEzOzxici8+CiZndDsgJmd0OyZndDsmZ3Q7IFNlbnQ6IDI2IEp1bHkg
MjAxNiAxODowOCYjMTM7PGJyLz4KJmd0OyAmZ3Q7Jmd0OyZndDsgVG86IDxhIGhyZWY9Im1haWx0
bzp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmciPndpbi1wdi1kZXZlbEBsaXN0cy54
ZW5wcm9qZWN0Lm9yZzwvYT4mIzEzOzxici8+CiZndDsgJmd0OyZndDsmZ3Q7IFN1YmplY3Q6IFt3
aW4tcHYtZGV2ZWxdIFNpZ25lZCA4LjEuMCBkcml2ZXJzJiMxMzs8YnIvPgomZ3Q7ICZndDsmZ3Q7
Jmd0OyYjMTM7PGJyLz4KJmd0OyAmZ3Q7Jmd0OyZndDsgSGVsbG8sJiMxMzs8YnIvPgomZ3Q7ICZn
dDsmZ3Q7Jmd0OyYjMTM7PGJyLz4KJmd0OyAmZ3Q7Jmd0OyZndDsgSSBoYXZlIGJlZW4gd2FpdGlu
ZyBvbiB0aGVzZSBuZXcgc2lnbmVkIGRyaXZlcnMuJm5ic3A7IFRoYW5rcyBmb3IgZmluYWxseSYj
MTM7PGJyLz4KJmd0OyAmZ3Q7Jmd0OyZndDsgbWFraW5nIHRoZW0gYXZhaWxhYmxlISYjMTM7PGJy
Lz4KJmd0OyAmZ3Q7Jmd0OyZndDsmIzEzOzxici8+CiZndDsgJmd0OyZndDsmZ3Q7IEkgaGF2ZSB0
ZXN0ZWQgYW5kIHJ1biBpbnRvIGEgcHJvYmxlbXMgdW5mb3J0dW5hdGVseSBzbyBJIHdhbnRlZCB0
byYjMTM7PGJyLz4KJmd0OyAmZ3Q7Jmd0OyZndDsgcmVwb3J0IHRoaXMuJiMxMzs8YnIvPgomZ3Q7
ICZndDsmZ3Q7Jmd0OyYjMTM7PGJyLz4KJmd0OyAmZ3Q7Jmd0OyZndDsgRmlyc3QgSSB0cmllZCB1
bmluc3RhbGxpbmcgdGhlIEVKQiBkaWdpdGFsIGRyaXZlcnMmIzEzOzxici8+CiZndDsgJmd0OyZn
dDsmZ3Q7IChlamJwdl9WaXN0YTIwMDh4NjRfPGEgaHJlZj0iaHR0cDovLzEuMC4xMTA1Lm1zaSI+
MS4wLjExMDUubXNpPC9hPikgYW5kIGluc3RhbGxpbmcgdGhlc2UgbmV3IGRyaXZlcnMmIzEzOzxi
ci8+CiZndDsgJmd0OyZndDsmZ3Q7IG9uIFdpbmRvd3MgMjAwOCBSMiB4NjQgZXhpc3RpbmcgVlBT
LiZuYnNwOyBBZnRlciByZWJvb3RpbmcgV2luZG93cyAyMDA4JiMxMzs8YnIvPgomZ3Q7ICZndDsm
Z3Q7Jmd0OyBSMiYjMTM7PGJyLz4KJmd0OyAmZ3Q7Jmd0OyBoYW5ncyYjMTM7PGJyLz4KJmd0OyAm
Z3Q7Jmd0OyZndDsgZm9yZXZlciBhdCBib290LiYjMTM7PGJyLz4KJmd0OyAmZ3Q7Jmd0OyZndDsm
IzEzOzxici8+CiZndDsgJmd0OyZndDsmZ3Q7IFNlY29uZGx5IEkgaGF2ZSBpbnN0YWxsZWQgYSBj
bGVhbiBXaW5kb3dzIDIwMDggUjIgYW5kIHRoZW4gaW5zdGFsbGVkJiMxMzs8YnIvPgomZ3Q7ICZn
dDsmZ3Q7Jmd0OyBhbGwgdGhlIGRyaXZlcnMgYW5kIHdoZW4gSSByZWJvb3QgaXQgZ29lcyBpbnRv
IHJlY292ZXJ5IG1vZGUuJm5ic3A7IEkmIzEzOzxici8+CiZndDsgJmd0OyZndDsmZ3Q7IGhhcHBl
biB0byBjaGVjayBXaW5kb3dzIGRldmljZSBtYW5hZ2VyIGJlZm9yZSBJIHJlYm9vdGVkIGFuZCBJ
JiMxMzs8YnIvPgomZ3Q7ICZndDsmZ3Q7Jmd0OyBub3RpY2VkIHRoYXQgdGhlICJYZW4gUFYgQnVz
IiBkcml2ZXIgaGFzIGEgeWVsbG93IHdhcm5pbmcgc3ltYm9sIGFzJiMxMzs8YnIvPgomZ3Q7IHNo
b3duIGluIHRoZSBzY3JlZW5zaG90ICZndDsmIzEzOzxici8+CiZndDsgJmd0OyZndDsmZ3Q7IDxh
IGhyZWY9Imh0dHBzOi8vcG9zdGltZy5vcmcvaW1hZ2UveDA4ZzduNHduIj5odHRwczovL3Bvc3Rp
bWcub3JnL2ltYWdlL3gwOGc3bjR3bjwvYT4vJm5ic3A7Jm5ic3A7IGl0IHNheXMgaXQgY2Fubm90
IHZlcmlmeSB0aGUmIzEzOzxici8+CiZndDsgZGlnaXRhbCYjMTM7PGJyLz4KJmd0OyAmZ3Q7Jmd0
OyZndDsgc2lnbmF0dXJlIGZvciB0aGUgWGVuIFBWIEJ1cyBkcml2ZXJzLiZuYnNwOyBOb3RoaW5n
IHdhcyBkb25lIGJ1dCB0aGUmIzEzOzxici8+CiZndDsgJmd0OyZndDsmZ3Q7IGluc3RhbGwgb2Yg
V2luZG93cyBhbmQgdGhlbiBpbW1lZGlhdGUgaW5zdGFsbCBvZiB0aGUgZHJpdmVycy4mIzEzOzxi
ci8+CiZndDsgJmd0OyZndDsmIzEzOzxici8+CiZndDsgJmd0OyZndDsgSSBzdXNwZWN0IHRoaXMg
aXMgYmVjYXVzZSB0aGUgZHJpdmVycyBhcmUgc2lnbmVkIHdpdGggU0hBLTI1NiBhbmQgeW91JiMx
Mzs8YnIvPgomZ3Q7ICZndDsmZ3Q7IG1heSBuZWVkIGEgaG90Zml4IHRvIGVuYWJsZSB2ZXJpZmlj
YXRpb24gb2Yga2VybmVsIG1vZGUgZHJpdmVycyBzaWduZWQmIzEzOzxici8+CiZndDsgJmd0OyZn
dDsgd2l0aCBhJiMxMzs8YnIvPgomZ3Q7ICZndDsmZ3Q7IFNIQS0yNTYgY2VydC4mIzEzOzxici8+
CiZndDsgJmd0OyYjMTM7PGJyLz4KJmd0OyAmZ3Q7IFNwZWNpZmljYWxseSBzZWUgPGEgaHJlZj0i
aHR0cHM6Ly90ZWNobmV0Lm1pY3Jvc29mdC5jb20vZW4iPmh0dHBzOi8vdGVjaG5ldC5taWNyb3Nv
ZnQuY29tL2VuPC9hPi0mIzEzOzxici8+CiZndDsgdXMvbGlicmFyeS9zZWN1cml0eS88YSBocmVm
PSJ0ZWw6MzAzMzkyOSI+MzAzMzkyOTwvYT4/Zj0yNTUmYW1wO01TUFBFcnJvcj0tPGEgaHJlZj0i
dGVsOjIxNDcyMTczOTYiPjIxNDcyMTczOTY8L2E+JiMxMzs8YnIvPgomZ3Q7ICZndDsmIzEzOzxi
ci8+CiZndDsgJmd0OyZndDsmIzEzOzxici8+CiZndDsgJmd0OyZndDsmbmJzcDsmbmJzcDsgUGF1
bCYjMTM7PGJyLz4KJmd0OyAmZ3Q7Jmd0OyYjMTM7PGJyLz4KJmd0OyAmZ3Q7JiMxMzs8YnIvPgom
Z3Q7ICZndDsmIzEzOzxici8+CiZndDsgJmd0OyYjMTM7PGJyLz4KJmd0OyAmZ3Q7IF9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fJiMxMzs8YnIvPgomZ3Q7ICZn
dDsgd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdCYjMTM7PGJyLz4KJmd0OyAmZ3Q7IDxhIGhyZWY9
Im1haWx0bzp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmciPndpbi1wdi1kZXZlbEBs
aXN0cy54ZW5wcm9qZWN0Lm9yZzwvYT4mIzEzOzxici8+CiZndDsgJmd0OyA8YSBocmVmPSJodHRw
czovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYt
ZGV2ZWwiPmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3Rp
bmZvL3dpbi1wdi1kZXZlbDwvYT4mIzEzOzxici8+CiZndDsgJmd0OyYjMTM7PGJyLz4KJmd0OyAm
IzEzOzxici8+CiZndDsgLS0mIzEzOzxici8+CiZndDsgJiMxMzs8YnIvPgomZ3Q7ICYjMTM7PGJy
Lz4KJmd0OyAmIzIwMTtsaSYjMjI1O3MgVGFtJiMyMjU7cyYjMTM7PGJyLz4KJmd0OyBUaG9tYXMg
RWxpYXMmIzEzOzxici8+CiZndDsgJiMxMzs8YnIvPgomZ3Q7IEVUSVRbbndwcm9dIEtGVCwgJiMy
MjA7Z3l2ZXpldCYjMzM3Oy1IJiMyMjU7bCYjMjQzO3phdGJpenRvbnMmIzIyNTtnaSBzcGVjaWFs
aXN0YSYjMTM7PGJyLz4KJmd0OyBFVElUW253cHJvXSBMdGQsIEdlbmVyYWwgTWFuYWdlci1OZXR3
b3JrIHNlY3VyaXR5IHNwZWNpYWxpc3QmIzEzOzxici8+CiZndDsgJiMxMzs8YnIvPgomZ3Q7IFRl
bC4gSFU6IDxhIGhyZWY9InRlbDorMzYzMDQ5NzE2MjYiPiszNi8zMC00OTctMTYyNjwvYT4mIzEz
Ozxici8+CiZndDsgVGVsLiBERTogPGEgaHJlZj0idGVsOis0OTE2MDY1MTg3MjMiPis0OS8xNjAt
NjUxLTg3MjM8L2E+JiMxMzs8YnIvPgomZ3Q7IE9wZW5QR1AgcHVia2V5OiA8YSBocmVmPSJodHRw
Oi8vZXRpdC5odS9kb2MvZXQtcHViLmFzYyI+aHR0cDovL2V0aXQuaHUvZG9jL2V0LXB1Yi5hc2M8
L2E+JiMxMzs8YnIvPgomZ3Q7ICYjMTM7PGJyLz4KJmd0OyBPa2xldmVsZXMgbSYjMjMzO3JuJiMy
NDY7ay1pbmZvcm1hdGlrdXMgKE1TQykmIzEzOzxici8+CiZndDsgTWFzdGVyIG9mIFNjaWVuY2Ug
aW4gSW5mb3JtYXRpb24gVGVjaG5vbG9neSAoTVNDKSYjMTM7PGJyLz4KJmd0OyAmIzEzOzxici8+
CiZndDsgS2FwY3NvbGF0OiA8YSBocmVmPSJodHRwOi8vZXRpdC5odS9pbmRleC5waHAvaHUva2Fw
Y3NvbGF0Ij5odHRwOi8vZXRpdC5odS9pbmRleC5waHAvaHUva2FwY3NvbGF0PC9hPiYjMTM7PGJy
Lz4KJmd0OyBKb2dpIG55aWxhdGtvemF0OiA8YSBocmVmPSJodHRwOi8vZXRpdC5odS9kaXNjbGFp
bWVyLWVtYWlsLWh1LnR4dCI+aHR0cDovL2V0aXQuaHUvZGlzY2xhaW1lci1lbWFpbC1odS50eHQ8
L2E+JiMxMzs8YnIvPgomZ3Q7IENvbnRhY3Q6IDxhIGhyZWY9Imh0dHA6Ly9ldGl0Lmh1L2luZGV4
LnBocC9lbi9jb250YWN0Ij5odHRwOi8vZXRpdC5odS9pbmRleC5waHAvZW4vY29udGFjdDwvYT4m
IzEzOzxici8+CiZndDsgRGlzY2xhaW1lcjogPGEgaHJlZj0iaHR0cDovL2V0aXQuaHUvZGlzY2xh
aW1lci1lbWFpbC1lbi50eHQiPmh0dHA6Ly9ldGl0Lmh1L2Rpc2NsYWltZXItZW1haWwtZW4udHh0
PC9hPiYjMTM7PGJyLz4KJiMxMzs8YnIvPgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXyYjMTM7PGJyLz4Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdCYjMTM7
PGJyLz4KPGEgaHJlZj0ibWFpbHRvOndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyI+
d2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnPC9hPiYjMTM7PGJyLz4KPGEgaHJlZj0i
aHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2lu
LXB2LWRldmVsIj5odHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9s
aXN0aW5mby93aW4tcHYtZGV2ZWw8L2E+JiMxMzs8YnIvPgomIzEzOzxici8+Cg==
------=_Part_0_58995047.1469624256030--


--===============7567167777963704064==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============7567167777963704064==--


From win-pv-devel-bounces@lists.xenproject.org Thu Jul 28 09:48:10 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 28 Jul 2016 09:48:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bShvE-00032A-MO; Thu, 28 Jul 2016 09:48:08 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bShvD-00031k-FS
 for win-pv-devel@lists.xenproject.org; Thu, 28 Jul 2016 09:48:07 +0000
Received: from [85.158.137.68] by server-12.bemta-3.messagelabs.com id
 71/B8-09160-6D4D9975; Thu, 28 Jul 2016 09:48:06 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrBIsWRWlGSWpSXmKPExsXiVRvkpHvtysx
 wg4dXeSz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxtzGI6wFfwQq/l94wtbA2MXbxcjFISQwh1Hi
 4bH5zCAOi8BLFokjfQeBHE4OCYF+VolNU5O6GDmA7BiJr7MsIcJlEvu/LWIDsYUEFCWar11gh
 xi0gknix8KXYL1sAuoSt98vZodosJP4NOsmmC0ioCpxbfkxsGZmAS2JhxvmMYLYwgJuEi/XT2
 UF2cUCVPNgvRNImFfAXeLQxU1Q58hJ7J28mgWkhFPAQ+L1JkeIE9wl5h55xzyBUXABI8MqRo3
 i1KKy1CJdQ1O9pKLM9IyS3MTMHF1DA2O93NTi4sT01JzEpGK95PzcTYzAUGMAgh2Ma7Z7HmKU
 5GBSEuUNC50ZLsSXlJ9SmZFYnBFfVJqTWnyIUYaDQ0mCN/oyUE6wKDU9tSItMwcY9DBpCQ4eJ
 RHeYpA0b3FBYm5xZjpE6hSjLseWqffWMgmx5OXnpUqJ8y4GKRIAKcoozYMbAYvAS4yyUsK8jE
 BHCfEUpBblZpagyr9iFOdgVBLm3QcyhSczrwRu0yugI5hAjoidAXJESSJCSqqBMXyjb7cPX5u
 f3NboXi+3X6xe1QcKWpYFrazmkYjhqN6t93N+G0f2fO1+fu/brlsOvWfSvnzRj3+vmdHViX/T
 1cUez27gfG7X0DXl2mqucF2Xo1fNzAw1XHvTN7ip7lcwCp7SVSSfZ/P77095Eeb2y07LNY99t
 Eu4N029ceeqOJPY2Sybf3MosRRnJBpqMRcVJwIAmNmw17sCAAA=
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-5.tower-31.messagelabs.com!1469699286!49680301!1
X-Originating-IP: [74.125.82.66]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 31091 invoked from network); 28 Jul 2016 09:48:06 -0000
Received: from mail-wm0-f66.google.com (HELO mail-wm0-f66.google.com)
 (74.125.82.66)
 by server-5.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 28 Jul 2016 09:48:06 -0000
Received: by mail-wm0-f66.google.com with SMTP id q128so10305848wma.1
 for <win-pv-devel@lists.xenproject.org>; Thu, 28 Jul 2016 02:48:06 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id:in-reply-to:references;
 bh=QjmPJHEU0Fzv0RSQCqAumusEJDuzniLk5ViN2kdg1HQ=;
 b=xdBPaAje2w70BmDElEcq/QlfuEG768Js/hEi0FarR8MbvvovkKto4ICangrTlsldnK
 6vkDoOpwSpnzzap/gOwAl9bdUauF4dq/Rz3eJ1K7EmkcqNK/tctPEM0hvE8rnf2q1ZqJ
 H2l3TUQkiaF23Xdp4yKCO8zQ+3OSMzIAYOzhzgfLPWngRqkkQOGbBDnb4KebRcE2t8u6
 KS+QVznARYI3jtUWCcfxUZAuyrjDrg26RwI7Ll3JZJ5aGLUT0YKW4GtSJHyMNcNsSMdC
 uJ2XXk3zpEPAAHbuUmobGnIIVI9xL11O3j7uV0Csgk2wnOuDU5jCzAIuy4bXfaIZ1qe/
 lNjQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
 :references;
 bh=QjmPJHEU0Fzv0RSQCqAumusEJDuzniLk5ViN2kdg1HQ=;
 b=K1beTtlbuO8w7sfLW9/jn3kvuw2b3iTHdURHj/14VEInzyAnP+yLXIB+wCBmDHvmoK
 BUOkyZXmpmxaAXMmq0NEDHqbNWyLVPbBy0c2zvylNh8qxvhFGhEDPZFbtL39vok2OjNF
 WtfYLDjlvX2g3yZ+Z5/+ZIWBIFOhclezGfeGWhceVYoODvcvK1NZd/bmXq640sTnWwrT
 GrLnCaN42g2Qo3Yuri+CeNQJ1+XLc6K8qx9qF9mIneRvRaHtLIzndQKMvsgAAZwQiVei
 ZhjyVPW3PlJV34/pSsJ5CauM2CkBvttMS5gG+oboOJTgFQC1mTl5Y7OMgpn1um9cgwyt
 twzQ==
X-Gm-Message-State: ALyK8tJkJAa03bHvIunkI98MWdv8BuU3fxuhcubqMz6Z3J3rY/mftFPQ9xjNOtRWAJfjuQ==
X-Received: by 10.28.30.1 with SMTP id e1mr59577258wme.77.1469699285856;
 Thu, 28 Jul 2016 02:48:05 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id kq2sm10603133wjc.41.2016.07.28.02.48.04
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Thu, 28 Jul 2016 02:48:05 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Thu, 28 Jul 2016 10:47:51 +0100
Message-Id: <1469699272-14604-2-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1469699272-14604-1-git-send-email-paul.durrant@citrix.com>
References: <1469699272-14604-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 2/3] Make sure the NICS unplug count does not
	run away
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

SW4gYSB0aWdodCBsb29wIG9mIG5ldHdvcmsgYXR0YWNoL2RldGFjaCBpdCdzIHBvc3NpYmxlIGZv
ciBhIG1pc21hdGNoIGluCnRoZSBudW1iZXIgb2YgdW5wbHVnIHJlcXVlc3RzIGFuZCByZXZvY2F0
aW9ucyB0byBvY2N1ciwgbGVhZGluZyB0byBhCnJ1bi1hd2F5IHVucGx1ZyBjb3VudC4KClRoaXMg
cGF0Y2ggYWRqdXN0cyB0aGUgbG9jYXRpb24gb2YgdGhlIHJlcXVlc3RzIGFuZCByZXZvY2F0aW9u
cyB0byBtYWtlCnN1cmUgdGhpcyBkb2VzIG5vdCBoYXBwZW4uCgpTaWduZWQtb2ZmLWJ5OiBQYXVs
IER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgotLS0KIHNyYy94ZW52aWYvcGRvLmMg
fCAxNSArKysrKysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCA0
IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy94ZW52aWYvcGRvLmMgYi9zcmMveGVudmlm
L3Bkby5jCmluZGV4IDI4ZjllYjAuLjZjNGM5YmQgMTAwNjQ0Ci0tLSBhL3NyYy94ZW52aWYvcGRv
LmMKKysrIGIvc3JjL3hlbnZpZi9wZG8uYwpAQCAtOTEsNiArOTEsNyBAQCBzdHJ1Y3QgX1hFTlZJ
Rl9QRE8gewogICAgIFBYRU5CVVNfU1VTUEVORF9DQUxMQkFDSyAgICBTdXNwZW5kQ2FsbGJhY2tM
YXRlOwogCiAgICAgWEVOQlVTX1VOUExVR19JTlRFUkZBQ0UgICAgIFVucGx1Z0ludGVyZmFjZTsK
KyAgICBCT09MRUFOICAgICAgICAgICAgICAgICAgICAgVW5wbHVnUmVxdWVzdGVkOwogCiAgICAg
UFhFTlZJRl9GUk9OVEVORCAgICAgICAgICAgIEZyb250ZW5kOwogCkBAIC0xMTc0LDYgKzExNzUs
OSBAQCBQZG9VbnBsdWdSZXF1ZXN0KAogewogICAgIE5UU1RBVFVTICAgICAgICBzdGF0dXM7CiAK
KyAgICBBU1NFUlQzVShQZG8tPlVucGx1Z1JlcXVlc3RlZCwgIT0sIE1ha2UpOworICAgIFBkby0+
VW5wbHVnUmVxdWVzdGVkID0gTWFrZTsKKwogICAgIHN0YXR1cyA9IFhFTkJVU19VTlBMVUcoQWNx
dWlyZSwgJlBkby0+VW5wbHVnSW50ZXJmYWNlKTsKICAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVz
KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTIwNCw4ICsxMjA4LDYgQEAgUGRvU3RhcnREZXZpY2Uo
CiAgICAgaWYgKFBkby0+SGFzQWxpYXMpCiAgICAgICAgIGdvdG8gZmFpbDE7CiAKLSAgICBQZG9V
bnBsdWdSZXF1ZXN0KFBkbywgVFJVRSk7Ci0KICAgICBpZiAoRHJpdmVyU2FmZU1vZGUoKSkKICAg
ICAgICAgZ290byBmYWlsMjsKIApAQCAtMTI2OCw2ICsxMjcwLDggQEAgUGRvU3RhcnREZXZpY2Uo
CiAKICAgICAgICAgUGRvLT5IYXNBbGlhcyA9IFRSVUU7CiAKKyAgICAgICAgUGRvVW5wbHVnUmVx
dWVzdChQZG8sIFRSVUUpOworCiAgICAgICAgIHN0YXR1cyA9IFNUQVRVU19VTlNVQ0NFU1NGVUw7
CiAgICAgICAgIGdvdG8gZmFpbDk7CiAgICAgfQpAQCAtMTI3OCw2ICsxMjgyLDggQEAgUGRvU3Rh
cnREZXZpY2UoCiAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCiAgICAgICAgIGdvdG8gZmFp
bDEwOwogCisgICAgUGRvVW5wbHVnUmVxdWVzdChQZG8sIFRSVUUpOworCiAgICAgX19QZG9TZXRE
ZXZpY2VQbnBTdGF0ZShQZG8sIFN0YXJ0ZWQpOwogCiAgICAgSXJwLT5Jb1N0YXR1cy5TdGF0dXMg
PSBTVEFUVVNfU1VDQ0VTUzsKQEAgLTE0NzksMTAgKzE0ODUsMTAgQEAgUGRvUmVtb3ZlRGV2aWNl
KAogICAgIGlmIChfX1Bkb0dldERldmljZVBvd2VyU3RhdGUoUGRvKSAhPSBQb3dlckRldmljZUQw
KQogICAgICAgICBnb3RvIGRvbmU7CiAKLSAgICBQZG9EMFRvRDMoUGRvKTsKLQogICAgIFBkb1Vu
cGx1Z1JlcXVlc3QoUGRvLCBGQUxTRSk7CiAKKyAgICBQZG9EMFRvRDMoUGRvKTsKKwogZG9uZToK
ICAgICBSdGxaZXJvTWVtb3J5KCZQZG8tPkN1cnJlbnRBZGRyZXNzLCBzaXplb2YgKEVUSEVSTkVU
X0FERFJFU1MpKTsKIApAQCAtMjc3Nyw2ICsyNzgzLDcgQEAgUGRvRGVzdHJveSgKICAgICBQREVW
SUNFX09CSkVDVCAgUGh5c2ljYWxEZXZpY2VPYmplY3QgPSBEeC0+RGV2aWNlT2JqZWN0OwogICAg
IFBYRU5WSUZfRkRPICAgICBGZG8gPSBfX1Bkb0dldEZkbyhQZG8pOwogCisgICAgQVNTRVJUKCFQ
ZG8tPlVucGx1Z1JlcXVlc3RlZCk7CiAgICAgQVNTRVJUM1UoX19QZG9HZXREZXZpY2VQbnBTdGF0
ZShQZG8pLCA9PSwgRGVsZXRlZCk7CiAKICAgICBQZG8tPkhhc0FsaWFzID0gRkFMU0U7Ci0tIAoy
LjEuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndp
bi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3Jn
Cmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dp
bi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Thu Jul 28 09:48:10 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 28 Jul 2016 09:48:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bShvE-000321-LP; Thu, 28 Jul 2016 09:48:08 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bShvD-00031j-49
 for win-pv-devel@lists.xenproject.org; Thu, 28 Jul 2016 09:48:07 +0000
Received: from [193.109.254.147] by server-10.bemta-14.messagelabs.com id
 EA/5F-03469-6D4D9975; Thu, 28 Jul 2016 09:48:06 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrAIsWRWlGSWpSXmKPExsXiVRvkpHv1ysx
 wgyPN+hZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y93K6ewFE0Qrvm/4wd7AeJG3i5GLQ0hgNqPE
 kzmNTCAOi8AlFok9m1vYQRwJgXcsEtd2XANyOIGcGIlJy+dD2WUSD5o/MYHYQgKKEs3XLrBDj
 FrBJPFm7lMWkASbgLrE7feLoRrsJD7NuglmiwioSlxbfowNxGYW0JJ4uGEeI4gtLOAk8ffVPm
 YQmwWoZt6SQ2D1vALuEi+enWOCmCMnsXfyapYJjPwLGBlWMWoUpxaVpRbpGlnoJRVlpmeU5CZ
 m5ugaGpro5aYWFyemp+YkJhXrJefnbmIEhlA9AwPjDsZ1x/0OMUpyMCmJ8oaFzgwX4kvKT6nM
 SCzOiC8qzUktPsSowcEhMOPc3OlMUix5+XmpShK8ty8D1QkWpaanVqRl5gCDHKZUgoNHSYT3B
 Uiat7ggMbc4Mx0idYpRl2PL1HtrmYTAZkiJ8y4GKRIAKcoozYMbAYu4S4yyUsK8jAwMDEI8Ba
 lFuZklqPKvGMU5GJWEefeBTOHJzCuB2/QK6AgmoCOKY2eAHFGSiJCSamCMerxn2Td9k7NH7rw
 +7xud8tQzWG5mR92R5tefb9j91BDgazuWyxB48kjAi00vzhjtDf95+YHhikL//7sPtU1btuuE
 0fZtD9gbXDZfL9rjYVXq933DqlS7eHXrd9UK0rGbVbK3tgswRU5YsdyM4/UdXqsnpW7vQ45xv
 /tg1iH4duGUgin+acbzlViKMxINtZiLihMBEJhz6rMCAAA=
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-4.tower-27.messagelabs.com!1469699285!55589459!1
X-Originating-IP: [74.125.82.66]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29889 invoked from network); 28 Jul 2016 09:48:05 -0000
Received: from mail-wm0-f66.google.com (HELO mail-wm0-f66.google.com)
 (74.125.82.66)
 by server-4.tower-27.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 28 Jul 2016 09:48:05 -0000
Received: by mail-wm0-f66.google.com with SMTP id x83so10272092wma.3
 for <win-pv-devel@lists.xenproject.org>; Thu, 28 Jul 2016 02:48:05 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=FQnIa7xLhRyR3YW1ZOXvHwZYsxUP9RCwtvGpV25591E=;
 b=dshVK8jGBuqK8V4p/3Cg9tPjc9xWxGRCFqZxiPUQTvKw7A6oaMjxR4MZbGja3KUj0b
 cGqX7NZyfteH0b53XRJ3aEIA0IKPhYvcgRXGdDQf114rgtbxzFeYSsE0Nma5BxoI0uUr
 0JU1v631M+2mGNPoUHmH+dG/29Bk80dVCJF56iyr66gj2lPSSdiUYWYkN+SiEJFoDqTy
 2e6ppBkYs7+Rxj3BNqV8cs9HbEM/4kjMpuAfXU/li+rx5mMrCB6JAQy2fe7QPmylwa9o
 pqK1YumBWEgXke9LIV2cmf9WbA6IEvhd41X0C0MKVNaN7HdKLulwwy4NnQyJt1hVRfkT
 jbYg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=FQnIa7xLhRyR3YW1ZOXvHwZYsxUP9RCwtvGpV25591E=;
 b=c8a4Ik1RX0B/sRmYTag7Of9urX8J7hsVse6RDP+FkkZ23rgs0TsYUfXntNlYLE0r/S
 Tp+lKzx+ofLH/EyjQ28/eG0wP3xx5zHavRCkTrXnpPAIlYCtz0PKx88sTbxXI7e4SqVV
 N3Ybwjl9K0wkkjvZaXoQvHgy8MdraR9LYUfxIDNI5LcuZHqmUn/NMO7Bc/7asAlzqIJ7
 vF0d0FL0XH96W6hDfVDmLUIlgRdHD0srPdOjFzYUZys4zWOUXvhYVManb03vaug0tL3U
 OLFYfdG/vRrrvmMC621lNGeHvEW75rEdsS/JJdBYZyhj9i6sUrvxnUMWDSLGDu2ld5cA
 wR9Q==
X-Gm-Message-State: ALyK8tIjeXeN6PTw3N3QsFRCI0Jyzjw5Z8Ss3uEqybqg3xKKxe/QQYl0peB+iHVciqa7mw==
X-Received: by 10.28.87.3 with SMTP id l3mr59009574wmb.71.1469699284725;
 Thu, 28 Jul 2016 02:48:04 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id kq2sm10603133wjc.41.2016.07.28.02.48.03
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Thu, 28 Jul 2016 02:48:03 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Thu, 28 Jul 2016 10:47:50 +0100
Message-Id: <1469699272-14604-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 1/3] Make sure we don't end up with duplicate
	PDOs
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

SW4gYSB0aWdodCBsb29wIG9mIG5ldHdvcmsgYXR0YWNoL2RldGFjaCBpdCdzIHBvc3NpYmxlIHRv
IGVuZCB1cCB3aXRoCmR1cGxpY2F0ZSBQRE9zIGJlY2F1c2UsIGFzIHNvb24gYXMgYSBQRE8gZ2V0
cyBzZXQgdG8gJ21pc3NpbmcnIGEgbmV3IG9uZQp3aXRoIHRoZSBzYW1lIG5hbWUgY2FuIGJlIGNy
ZWF0ZWQuIFRoaXMgbGVhZHMgdG8gcmFjZXMgaW4gYWNjZXNzaW5nIHRoZQp2aWYgYXJlYXMgaW4g
eGVuc3RvcmUgYW5kIHRoaW5ncyBjYW4gZ2V0IHZlcnkgY29uZnVzZWQuCgpUaGlzIHBhdGNoIG1h
a2VzIHN1cmUgdGhhdCBhIG5ldyBQRE8gY2Fubm90IGJlIGNyZWF0ZWQgdW50aWwgYSBwcmV2aW91
cwppbmNhcm5hdGlvbiBpcyBpbiB0aGUgJ2RlbGV0ZWQnIHN0YXRlLCB3aGljaCBtZWFucyB0aGVy
ZSB3aWxsIGRlZmluaXRlbHkKYmUgbm8gY29uZmxpY3QgaW4gaW50ZXJhY3Rpb25zIHdpdGggeGVu
c3RvcmUuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXgu
Y29tPgotLS0KIHNyYy94ZW52aWYvZmRvLmMgfCAzMiArKysrKysrKysrKysrKysrKy0tLS0tLS0t
LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygt
KQoKZGlmZiAtLWdpdCBhL3NyYy94ZW52aWYvZmRvLmMgYi9zcmMveGVudmlmL2Zkby5jCmluZGV4
IGRhZTFhZDguLmQ2NjU1ODYgMTAwNjQ0Ci0tLSBhL3NyYy94ZW52aWYvZmRvLmMKKysrIGIvc3Jj
L3hlbnZpZi9mZG8uYwpAQCAtNzQ5LDcgKzc0OSw3IEBAIF9fRmRvRW51bWVyYXRlKAogICAgICAg
ICBQWEVOVklGX0RYICAgICAgRHggPSBDT05UQUlOSU5HX1JFQ09SRChMaXN0RW50cnksIFhFTlZJ
Rl9EWCwgTGlzdEVudHJ5KTsKICAgICAgICAgUFhFTlZJRl9QRE8gICAgIFBkbyA9IER4LT5QZG87
CiAKLSAgICAgICAgaWYgKCFQZG9Jc01pc3NpbmcoUGRvKSAmJiBQZG9HZXREZXZpY2VQbnBTdGF0
ZShQZG8pICE9IERlbGV0ZWQpIHsKKyAgICAgICAgaWYgKFBkb0dldERldmljZVBucFN0YXRlKFBk
bykgIT0gRGVsZXRlZCkgewogICAgICAgICAgICAgUENIQVIgICAgICAgICAgIE5hbWU7CiAgICAg
ICAgICAgICBCT09MRUFOICAgICAgICAgTWlzc2luZzsKIApAQCAtNzcxLDIwICs3NzEsMjIgQEAg
X19GZG9FbnVtZXJhdGUoCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCi0gICAg
ICAgICAgICBpZiAoUGRvSXNFamVjdFJlcXVlc3RlZChQZG8pKSB7Ci0gICAgICAgICAgICAgICAg
SW9SZXF1ZXN0RGV2aWNlRWplY3QoUGRvR2V0RGV2aWNlT2JqZWN0KFBkbykpOwotICAgICAgICAg
ICAgfSBlbHNlIGlmIChNaXNzaW5nKSB7Ci0gICAgICAgICAgICAgICAgUGRvU2V0TWlzc2luZyhQ
ZG8sICJkZXZpY2UgZGlzYXBwZWFyZWQiKTsKLQotICAgICAgICAgICAgICAgIC8vIElmIHRoZSBQ
RE8gaGFzIG5vdCB5ZXQgYmVlbiBlbnVtZXJhdGVkIHRoZW4gd2UgY2FuCi0gICAgICAgICAgICAg
ICAgLy8gZ28gYWhlYWQgYW5kIG1hcmsgaXQgYXMgZGVsZXRlZCwgb3RoZXJ3aXNlIHdlIG5lZWQK
LSAgICAgICAgICAgICAgICAvLyB0byBub3RpZnkgUG5QIG1hbmFnZXIgYW5kIHdhaXQgZm9yIHRo
ZSBSRU1PVkVfREVWSUNFCi0gICAgICAgICAgICAgICAgLy8gSVJQLgotICAgICAgICAgICAgICAg
IGlmIChQZG9HZXREZXZpY2VQbnBTdGF0ZShQZG8pID09IFByZXNlbnQpIHsKLSAgICAgICAgICAg
ICAgICAgICAgUGRvU2V0RGV2aWNlUG5wU3RhdGUoUGRvLCBEZWxldGVkKTsKLSAgICAgICAgICAg
ICAgICAgICAgUGRvRGVzdHJveShQZG8pOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgICAgIE5lZWRJbnZhbGlkYXRlID0gVFJVRTsKKyAgICAgICAgICAgIGlmICgh
UGRvSXNNaXNzaW5nKFBkbykpIHsKKyAgICAgICAgICAgICAgICBpZiAoUGRvSXNFamVjdFJlcXVl
c3RlZChQZG8pKSB7CisgICAgICAgICAgICAgICAgICAgIElvUmVxdWVzdERldmljZUVqZWN0KFBk
b0dldERldmljZU9iamVjdChQZG8pKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKE1pc3Np
bmcpIHsKKyAgICAgICAgICAgICAgICAgICAgUGRvU2V0TWlzc2luZyhQZG8sICJkZXZpY2UgZGlz
YXBwZWFyZWQiKTsKKworICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgUERPIGhhcyBub3Qg
eWV0IGJlZW4gZW51bWVyYXRlZCB0aGVuIHdlIGNhbgorICAgICAgICAgICAgICAgICAgICAvLyBn
byBhaGVhZCBhbmQgbWFyayBpdCBhcyBkZWxldGVkLCBvdGhlcndpc2Ugd2UgbmVlZAorICAgICAg
ICAgICAgICAgICAgICAvLyB0byBub3RpZnkgUG5QIG1hbmFnZXIgYW5kIHdhaXQgZm9yIHRoZSBS
RU1PVkVfREVWSUNFCisgICAgICAgICAgICAgICAgICAgIC8vIElSUC4KKyAgICAgICAgICAgICAg
ICAgICAgaWYgKFBkb0dldERldmljZVBucFN0YXRlKFBkbykgPT0gUHJlc2VudCkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgUGRvU2V0RGV2aWNlUG5wU3RhdGUoUGRvLCBEZWxldGVkKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIFBkb0Rlc3Ryb3koUGRvKTsKKyAgICAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIE5lZWRJbnZhbGlkYXRlID0gVFJV
RTsKKyAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IH0KICAgICAgICAgfQotLSAKMi4xLjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBs
aXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4v
bWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Thu Jul 28 09:48:10 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 28 Jul 2016 09:48:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bShvF-00032L-NV; Thu, 28 Jul 2016 09:48:09 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bShvE-00031v-EC
 for win-pv-devel@lists.xenproject.org; Thu, 28 Jul 2016 09:48:08 +0000
Received: from [193.109.254.147] by server-15.bemta-14.messagelabs.com id
 68/5B-01659-7D4D9975; Thu, 28 Jul 2016 09:48:07 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrLIsWRWlGSWpSXmKPExsXiVRvkpHv9ysx
 wg5efuS3+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxpKdP9gLHrBWrOrgbGC8y9LFyMkhJDCbUeLZ
 aoMuRi4OFoGXLBLbtz1nBnEkBPpZJXY1NrJ3MXIAOTESr2aagDRICNRIXNy/AKpZUaL52gV2k
 HohgRVMEk0XJ4El2ATUJW6/X8wO0WAn8WnWTTBbREBV4tryY2wgNrOAlsTDDfMYQeYLC/hIXP
 /qBhJmASr5dfs4K4jNK+AuMbf1FDPEGDmJvZNXs4CUcwp4SLze5AhxAlDJkXfMExgFFzAyrGL
 UKE4tKkst0jWy0EsqykzPKMlNzMzRNTQ00ctNLS5OTE/NSUwq1kvOz93ECAy0egYGxh2M6477
 HWKU5GBSEuUNC50ZLsSXlJ9SmZFYnBFfVJqTWnyIUYaDQ0mC9/ZloJxgUWp6akVaZg4w5GHSE
 hw8SiK8L0DSvMUFibnFmekQqVOMxhwLftxey8SxZeq9tUxCLHn5ealS4ryLQUoFQEozSvPgBs
 Fi8RKjrJQwLyMDA4MQT0FqUW5mCar8K0ZxDkYlYd59IFN4MvNK4Pa9AjqFCeiU4tgZIKeUJCK
 kpBoYFyStflLB+CRQPWHLvG4L9fdfjN2P/xFvSoq/4dV3Lfzr5e/rl7y78UY332qfgPU0f8XI
 g1nS3yLajjh+nMzZUcmW361w4Y2UXdSX6YtnWdzwO8OtZXT99r1fy4oc4h4aX9rCcnbWrJdC0
 56sYuHmVQ5ayPvj6LlkEdaY/8X1qTKyv1VebEnlVWIpzkg01GIuKk4EALFVQozAAgAA
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-15.tower-27.messagelabs.com!1469699286!1220397!1
X-Originating-IP: [74.125.82.66]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 42144 invoked from network); 28 Jul 2016 09:48:07 -0000
Received: from mail-wm0-f66.google.com (HELO mail-wm0-f66.google.com)
 (74.125.82.66)
 by server-15.tower-27.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 28 Jul 2016 09:48:07 -0000
Received: by mail-wm0-f66.google.com with SMTP id x83so10272180wma.3
 for <win-pv-devel@lists.xenproject.org>; Thu, 28 Jul 2016 02:48:07 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id:in-reply-to:references;
 bh=9wbcLyQAHDQBI7V0Lvz/j5t4pjSPMU3Ogn1bYBiHuiw=;
 b=D5KdKF63Qg3BEUntE6nIRngUGPLmtcUtAw6eRfVZ7+E0Rt3KI3zkwJ5meaxSwQ4PwI
 LO0p7ffuhl0RpaJFKd0msCZyn3AUVbnhFcmvv4O4WLFBLuGjHWsJKzeKpVWGLjNbGRYV
 mvP2ssDnYUBoxKYdMjCzNLE3swa8+/iFv3pvjUSE+/+zP9BjNt7I1oiudh3Vk98TRIjH
 7e8sjJOhwYnOZF3F1ljIH/XYr88NgURh5W2vpL7tce9acJoWCasQLOdAxL6n7GGZ1FAH
 bmGkVWtn1ZKszSD326vVJvc/QMt7719OdEXlOE0hthL4VULLwm23DLLXJ/4TSFN7qCup
 XUcg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
 :references;
 bh=9wbcLyQAHDQBI7V0Lvz/j5t4pjSPMU3Ogn1bYBiHuiw=;
 b=V9C7lVlFq7VOcSu5x0d6vd4K7hVkwadRWX3oj6uePZDaiwJBskIz4rKBxV4c6/SQg2
 uG8qZXBmZ3g+XnmCfRlxiKFUusjh9riQsSgSJ1c+u9UF5x5y/YhnQ6o2CxpIh+hR2FVQ
 yZA1sqAgIPJYhHCYX3rx1sA5NJxy8FxzROHr5Ka4xLqG17bhOWdo35h4hB2OX2jnUvw0
 M5aIfQELj/7kgb9Ign731bilM3lJp5NyIpMfDvMtMBFflNhMpEln+FRoxXnc4qjuO7Nf
 r6IfyAcEH1PGQXpYkqiUwSsTUijIbvAhs5b0t1pEFJMyNBR8hIJ9Z0I/xIgOpMR+2Rvy
 gFMA==
X-Gm-Message-State: AEkoouu1a5EaFu2QWaDw/Xvc2XOKisvhd+39L8N85r7bDBVgEvsNjeWfYZtxcQRCMe77qg==
X-Received: by 10.194.149.176 with SMTP id ub16mr32071910wjb.54.1469699286643; 
 Thu, 28 Jul 2016 02:48:06 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id kq2sm10603133wjc.41.2016.07.28.02.48.05
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Thu, 28 Jul 2016 02:48:06 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Thu, 28 Jul 2016 10:47:52 +0100
Message-Id: <1469699272-14604-3-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1469699272-14604-1-git-send-email-paul.durrant@citrix.com>
References: <1469699272-14604-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 3/3] Don't qualify the check for the backend
	being online...
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

Li4ud2l0aCB3aGV0aGVyIGFuIGVqZWN0IHJlcXVlc3QgZm9yIHRoZSBmcm9udGVuZCBoYXMgYmVl
biBpc3N1ZWQuIEl0J3MKZWl0aGVyIG9ubGluZSBvciBpdCdzIG5vdC4KClNpZ25lZC1vZmYtYnk6
IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+Ci0tLQogc3JjL3hlbnZpZi9m
cm9udGVuZC5jIHwgMyArLS0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMiBkZWxl
dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMveGVudmlmL2Zyb250ZW5kLmMgYi9zcmMveGVudmlm
L2Zyb250ZW5kLmMKaW5kZXggNmEyMDE5ZS4uN2Q2ODJhYiAxMDA2NDQKLS0tIGEvc3JjL3hlbnZp
Zi9mcm9udGVuZC5jCisrKyBiL3NyYy94ZW52aWYvZnJvbnRlbmQuYwpAQCAtMTI1Niw4ICsxMjU2
LDcgQEAgRnJvbnRlbmRTZXRYZW5idXNTdGF0ZSgKIAogICAgIEFTU0VSVChGcm9udGVuZElzT25s
aW5lKEZyb250ZW5kKSk7CiAKLSAgICBPbmxpbmUgPSAhUGRvSXNFamVjdFJlcXVlc3RlZChfX0Zy
b250ZW5kR2V0UGRvKEZyb250ZW5kKSkgJiYKLSAgICAgICAgICAgICBGcm9udGVuZElzQmFja2Vu
ZE9ubGluZShGcm9udGVuZCk7CisgICAgT25saW5lID0gRnJvbnRlbmRJc0JhY2tlbmRPbmxpbmUo
RnJvbnRlbmQpOwogCiAgICAgKFZPSUQpIFhFTkJVU19TVE9SRShQcmludGYsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAmRnJvbnRlbmQtPlN0b3JlSW50ZXJmYWNlLAotLSAKMi4xLjEKCgpfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwg
bWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xp
c3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Thu Jul 28 09:48:10 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 28 Jul 2016 09:48:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bShvE-000321-LP; Thu, 28 Jul 2016 09:48:08 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bShvD-00031j-49
 for win-pv-devel@lists.xenproject.org; Thu, 28 Jul 2016 09:48:07 +0000
Received: from [193.109.254.147] by server-10.bemta-14.messagelabs.com id
 EA/5F-03469-6D4D9975; Thu, 28 Jul 2016 09:48:06 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrAIsWRWlGSWpSXmKPExsXiVRvkpHv1ysx
 wgyPN+hZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y93K6ewFE0Qrvm/4wd7AeJG3i5GLQ0hgNqPE
 kzmNTCAOi8AlFok9m1vYQRwJgXcsEtd2XANyOIGcGIlJy+dD2WUSD5o/MYHYQgKKEs3XLrBDj
 FrBJPFm7lMWkASbgLrE7feLoRrsJD7NuglmiwioSlxbfowNxGYW0JJ4uGEeI4gtLOAk8ffVPm
 YQmwWoZt6SQ2D1vALuEi+enWOCmCMnsXfyapYJjPwLGBlWMWoUpxaVpRbpGlnoJRVlpmeU5CZ
 m5ugaGpro5aYWFyemp+YkJhXrJefnbmIEhlA9AwPjDsZ1x/0OMUpyMCmJ8oaFzgwX4kvKT6nM
 SCzOiC8qzUktPsSowcEhMOPc3OlMUix5+XmpShK8ty8D1QkWpaanVqRl5gCDHKZUgoNHSYT3B
 Uiat7ggMbc4Mx0idYpRl2PL1HtrmYTAZkiJ8y4GKRIAKcoozYMbAYu4S4yyUsK8jAwMDEI8Ba
 lFuZklqPKvGMU5GJWEefeBTOHJzCuB2/QK6AgmoCOKY2eAHFGSiJCSamCMerxn2Td9k7NH7rw
 +7xud8tQzWG5mR92R5tefb9j91BDgazuWyxB48kjAi00vzhjtDf95+YHhikL//7sPtU1btuuE
 0fZtD9gbXDZfL9rjYVXq933DqlS7eHXrd9UK0rGbVbK3tgswRU5YsdyM4/UdXqsnpW7vQ45xv
 /tg1iH4duGUgin+acbzlViKMxINtZiLihMBEJhz6rMCAAA=
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-4.tower-27.messagelabs.com!1469699285!55589459!1
X-Originating-IP: [74.125.82.66]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29889 invoked from network); 28 Jul 2016 09:48:05 -0000
Received: from mail-wm0-f66.google.com (HELO mail-wm0-f66.google.com)
 (74.125.82.66)
 by server-4.tower-27.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 28 Jul 2016 09:48:05 -0000
Received: by mail-wm0-f66.google.com with SMTP id x83so10272092wma.3
 for <win-pv-devel@lists.xenproject.org>; Thu, 28 Jul 2016 02:48:05 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=FQnIa7xLhRyR3YW1ZOXvHwZYsxUP9RCwtvGpV25591E=;
 b=dshVK8jGBuqK8V4p/3Cg9tPjc9xWxGRCFqZxiPUQTvKw7A6oaMjxR4MZbGja3KUj0b
 cGqX7NZyfteH0b53XRJ3aEIA0IKPhYvcgRXGdDQf114rgtbxzFeYSsE0Nma5BxoI0uUr
 0JU1v631M+2mGNPoUHmH+dG/29Bk80dVCJF56iyr66gj2lPSSdiUYWYkN+SiEJFoDqTy
 2e6ppBkYs7+Rxj3BNqV8cs9HbEM/4kjMpuAfXU/li+rx5mMrCB6JAQy2fe7QPmylwa9o
 pqK1YumBWEgXke9LIV2cmf9WbA6IEvhd41X0C0MKVNaN7HdKLulwwy4NnQyJt1hVRfkT
 jbYg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=FQnIa7xLhRyR3YW1ZOXvHwZYsxUP9RCwtvGpV25591E=;
 b=c8a4Ik1RX0B/sRmYTag7Of9urX8J7hsVse6RDP+FkkZ23rgs0TsYUfXntNlYLE0r/S
 Tp+lKzx+ofLH/EyjQ28/eG0wP3xx5zHavRCkTrXnpPAIlYCtz0PKx88sTbxXI7e4SqVV
 N3Ybwjl9K0wkkjvZaXoQvHgy8MdraR9LYUfxIDNI5LcuZHqmUn/NMO7Bc/7asAlzqIJ7
 vF0d0FL0XH96W6hDfVDmLUIlgRdHD0srPdOjFzYUZys4zWOUXvhYVManb03vaug0tL3U
 OLFYfdG/vRrrvmMC621lNGeHvEW75rEdsS/JJdBYZyhj9i6sUrvxnUMWDSLGDu2ld5cA
 wR9Q==
X-Gm-Message-State: ALyK8tIjeXeN6PTw3N3QsFRCI0Jyzjw5Z8Ss3uEqybqg3xKKxe/QQYl0peB+iHVciqa7mw==
X-Received: by 10.28.87.3 with SMTP id l3mr59009574wmb.71.1469699284725;
 Thu, 28 Jul 2016 02:48:04 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id kq2sm10603133wjc.41.2016.07.28.02.48.03
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Thu, 28 Jul 2016 02:48:03 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Thu, 28 Jul 2016 10:47:50 +0100
Message-Id: <1469699272-14604-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 1/3] Make sure we don't end up with duplicate
	PDOs
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

SW4gYSB0aWdodCBsb29wIG9mIG5ldHdvcmsgYXR0YWNoL2RldGFjaCBpdCdzIHBvc3NpYmxlIHRv
IGVuZCB1cCB3aXRoCmR1cGxpY2F0ZSBQRE9zIGJlY2F1c2UsIGFzIHNvb24gYXMgYSBQRE8gZ2V0
cyBzZXQgdG8gJ21pc3NpbmcnIGEgbmV3IG9uZQp3aXRoIHRoZSBzYW1lIG5hbWUgY2FuIGJlIGNy
ZWF0ZWQuIFRoaXMgbGVhZHMgdG8gcmFjZXMgaW4gYWNjZXNzaW5nIHRoZQp2aWYgYXJlYXMgaW4g
eGVuc3RvcmUgYW5kIHRoaW5ncyBjYW4gZ2V0IHZlcnkgY29uZnVzZWQuCgpUaGlzIHBhdGNoIG1h
a2VzIHN1cmUgdGhhdCBhIG5ldyBQRE8gY2Fubm90IGJlIGNyZWF0ZWQgdW50aWwgYSBwcmV2aW91
cwppbmNhcm5hdGlvbiBpcyBpbiB0aGUgJ2RlbGV0ZWQnIHN0YXRlLCB3aGljaCBtZWFucyB0aGVy
ZSB3aWxsIGRlZmluaXRlbHkKYmUgbm8gY29uZmxpY3QgaW4gaW50ZXJhY3Rpb25zIHdpdGggeGVu
c3RvcmUuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXgu
Y29tPgotLS0KIHNyYy94ZW52aWYvZmRvLmMgfCAzMiArKysrKysrKysrKysrKysrKy0tLS0tLS0t
LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygt
KQoKZGlmZiAtLWdpdCBhL3NyYy94ZW52aWYvZmRvLmMgYi9zcmMveGVudmlmL2Zkby5jCmluZGV4
IGRhZTFhZDguLmQ2NjU1ODYgMTAwNjQ0Ci0tLSBhL3NyYy94ZW52aWYvZmRvLmMKKysrIGIvc3Jj
L3hlbnZpZi9mZG8uYwpAQCAtNzQ5LDcgKzc0OSw3IEBAIF9fRmRvRW51bWVyYXRlKAogICAgICAg
ICBQWEVOVklGX0RYICAgICAgRHggPSBDT05UQUlOSU5HX1JFQ09SRChMaXN0RW50cnksIFhFTlZJ
Rl9EWCwgTGlzdEVudHJ5KTsKICAgICAgICAgUFhFTlZJRl9QRE8gICAgIFBkbyA9IER4LT5QZG87
CiAKLSAgICAgICAgaWYgKCFQZG9Jc01pc3NpbmcoUGRvKSAmJiBQZG9HZXREZXZpY2VQbnBTdGF0
ZShQZG8pICE9IERlbGV0ZWQpIHsKKyAgICAgICAgaWYgKFBkb0dldERldmljZVBucFN0YXRlKFBk
bykgIT0gRGVsZXRlZCkgewogICAgICAgICAgICAgUENIQVIgICAgICAgICAgIE5hbWU7CiAgICAg
ICAgICAgICBCT09MRUFOICAgICAgICAgTWlzc2luZzsKIApAQCAtNzcxLDIwICs3NzEsMjIgQEAg
X19GZG9FbnVtZXJhdGUoCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCi0gICAg
ICAgICAgICBpZiAoUGRvSXNFamVjdFJlcXVlc3RlZChQZG8pKSB7Ci0gICAgICAgICAgICAgICAg
SW9SZXF1ZXN0RGV2aWNlRWplY3QoUGRvR2V0RGV2aWNlT2JqZWN0KFBkbykpOwotICAgICAgICAg
ICAgfSBlbHNlIGlmIChNaXNzaW5nKSB7Ci0gICAgICAgICAgICAgICAgUGRvU2V0TWlzc2luZyhQ
ZG8sICJkZXZpY2UgZGlzYXBwZWFyZWQiKTsKLQotICAgICAgICAgICAgICAgIC8vIElmIHRoZSBQ
RE8gaGFzIG5vdCB5ZXQgYmVlbiBlbnVtZXJhdGVkIHRoZW4gd2UgY2FuCi0gICAgICAgICAgICAg
ICAgLy8gZ28gYWhlYWQgYW5kIG1hcmsgaXQgYXMgZGVsZXRlZCwgb3RoZXJ3aXNlIHdlIG5lZWQK
LSAgICAgICAgICAgICAgICAvLyB0byBub3RpZnkgUG5QIG1hbmFnZXIgYW5kIHdhaXQgZm9yIHRo
ZSBSRU1PVkVfREVWSUNFCi0gICAgICAgICAgICAgICAgLy8gSVJQLgotICAgICAgICAgICAgICAg
IGlmIChQZG9HZXREZXZpY2VQbnBTdGF0ZShQZG8pID09IFByZXNlbnQpIHsKLSAgICAgICAgICAg
ICAgICAgICAgUGRvU2V0RGV2aWNlUG5wU3RhdGUoUGRvLCBEZWxldGVkKTsKLSAgICAgICAgICAg
ICAgICAgICAgUGRvRGVzdHJveShQZG8pOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgICAgIE5lZWRJbnZhbGlkYXRlID0gVFJVRTsKKyAgICAgICAgICAgIGlmICgh
UGRvSXNNaXNzaW5nKFBkbykpIHsKKyAgICAgICAgICAgICAgICBpZiAoUGRvSXNFamVjdFJlcXVl
c3RlZChQZG8pKSB7CisgICAgICAgICAgICAgICAgICAgIElvUmVxdWVzdERldmljZUVqZWN0KFBk
b0dldERldmljZU9iamVjdChQZG8pKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKE1pc3Np
bmcpIHsKKyAgICAgICAgICAgICAgICAgICAgUGRvU2V0TWlzc2luZyhQZG8sICJkZXZpY2UgZGlz
YXBwZWFyZWQiKTsKKworICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgUERPIGhhcyBub3Qg
eWV0IGJlZW4gZW51bWVyYXRlZCB0aGVuIHdlIGNhbgorICAgICAgICAgICAgICAgICAgICAvLyBn
byBhaGVhZCBhbmQgbWFyayBpdCBhcyBkZWxldGVkLCBvdGhlcndpc2Ugd2UgbmVlZAorICAgICAg
ICAgICAgICAgICAgICAvLyB0byBub3RpZnkgUG5QIG1hbmFnZXIgYW5kIHdhaXQgZm9yIHRoZSBS
RU1PVkVfREVWSUNFCisgICAgICAgICAgICAgICAgICAgIC8vIElSUC4KKyAgICAgICAgICAgICAg
ICAgICAgaWYgKFBkb0dldERldmljZVBucFN0YXRlKFBkbykgPT0gUHJlc2VudCkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgUGRvU2V0RGV2aWNlUG5wU3RhdGUoUGRvLCBEZWxldGVkKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIFBkb0Rlc3Ryb3koUGRvKTsKKyAgICAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIE5lZWRJbnZhbGlkYXRlID0gVFJV
RTsKKyAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IH0KICAgICAgICAgfQotLSAKMi4xLjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBs
aXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4v
bWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Thu Jul 28 09:48:10 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 28 Jul 2016 09:48:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bShvE-00032A-MO; Thu, 28 Jul 2016 09:48:08 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bShvD-00031k-FS
 for win-pv-devel@lists.xenproject.org; Thu, 28 Jul 2016 09:48:07 +0000
Received: from [85.158.137.68] by server-12.bemta-3.messagelabs.com id
 71/B8-09160-6D4D9975; Thu, 28 Jul 2016 09:48:06 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrBIsWRWlGSWpSXmKPExsXiVRvkpHvtysx
 wg4dXeSz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxtzGI6wFfwQq/l94wtbA2MXbxcjFISQwh1Hi
 4bH5zCAOi8BLFokjfQeBHE4OCYF+VolNU5O6GDmA7BiJr7MsIcJlEvu/LWIDsYUEFCWar11gh
 xi0gknix8KXYL1sAuoSt98vZodosJP4NOsmmC0ioCpxbfkxsGZmAS2JhxvmMYLYwgJuEi/XT2
 UF2cUCVPNgvRNImFfAXeLQxU1Q58hJ7J28mgWkhFPAQ+L1JkeIE9wl5h55xzyBUXABI8MqRo3
 i1KKy1CJdQ1O9pKLM9IyS3MTMHF1DA2O93NTi4sT01JzEpGK95PzcTYzAUGMAgh2Ma7Z7HmKU
 5GBSEuUNC50ZLsSXlJ9SmZFYnBFfVJqTWnyIUYaDQ0mCN/oyUE6wKDU9tSItMwcY9DBpCQ4eJ
 RHeYpA0b3FBYm5xZjpE6hSjLseWqffWMgmx5OXnpUqJ8y4GKRIAKcoozYMbAYvAS4yyUsK8jE
 BHCfEUpBblZpagyr9iFOdgVBLm3QcyhSczrwRu0yugI5hAjoidAXJESSJCSqqBMXyjb7cPX5u
 f3NboXi+3X6xe1QcKWpYFrazmkYjhqN6t93N+G0f2fO1+fu/brlsOvWfSvnzRj3+vmdHViX/T
 1cUez27gfG7X0DXl2mqucF2Xo1fNzAw1XHvTN7ip7lcwCp7SVSSfZ/P77095Eeb2y07LNY99t
 Eu4N029ceeqOJPY2Sybf3MosRRnJBpqMRcVJwIAmNmw17sCAAA=
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-5.tower-31.messagelabs.com!1469699286!49680301!1
X-Originating-IP: [74.125.82.66]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 31091 invoked from network); 28 Jul 2016 09:48:06 -0000
Received: from mail-wm0-f66.google.com (HELO mail-wm0-f66.google.com)
 (74.125.82.66)
 by server-5.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 28 Jul 2016 09:48:06 -0000
Received: by mail-wm0-f66.google.com with SMTP id q128so10305848wma.1
 for <win-pv-devel@lists.xenproject.org>; Thu, 28 Jul 2016 02:48:06 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id:in-reply-to:references;
 bh=QjmPJHEU0Fzv0RSQCqAumusEJDuzniLk5ViN2kdg1HQ=;
 b=xdBPaAje2w70BmDElEcq/QlfuEG768Js/hEi0FarR8MbvvovkKto4ICangrTlsldnK
 6vkDoOpwSpnzzap/gOwAl9bdUauF4dq/Rz3eJ1K7EmkcqNK/tctPEM0hvE8rnf2q1ZqJ
 H2l3TUQkiaF23Xdp4yKCO8zQ+3OSMzIAYOzhzgfLPWngRqkkQOGbBDnb4KebRcE2t8u6
 KS+QVznARYI3jtUWCcfxUZAuyrjDrg26RwI7Ll3JZJ5aGLUT0YKW4GtSJHyMNcNsSMdC
 uJ2XXk3zpEPAAHbuUmobGnIIVI9xL11O3j7uV0Csgk2wnOuDU5jCzAIuy4bXfaIZ1qe/
 lNjQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
 :references;
 bh=QjmPJHEU0Fzv0RSQCqAumusEJDuzniLk5ViN2kdg1HQ=;
 b=K1beTtlbuO8w7sfLW9/jn3kvuw2b3iTHdURHj/14VEInzyAnP+yLXIB+wCBmDHvmoK
 BUOkyZXmpmxaAXMmq0NEDHqbNWyLVPbBy0c2zvylNh8qxvhFGhEDPZFbtL39vok2OjNF
 WtfYLDjlvX2g3yZ+Z5/+ZIWBIFOhclezGfeGWhceVYoODvcvK1NZd/bmXq640sTnWwrT
 GrLnCaN42g2Qo3Yuri+CeNQJ1+XLc6K8qx9qF9mIneRvRaHtLIzndQKMvsgAAZwQiVei
 ZhjyVPW3PlJV34/pSsJ5CauM2CkBvttMS5gG+oboOJTgFQC1mTl5Y7OMgpn1um9cgwyt
 twzQ==
X-Gm-Message-State: ALyK8tJkJAa03bHvIunkI98MWdv8BuU3fxuhcubqMz6Z3J3rY/mftFPQ9xjNOtRWAJfjuQ==
X-Received: by 10.28.30.1 with SMTP id e1mr59577258wme.77.1469699285856;
 Thu, 28 Jul 2016 02:48:05 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id kq2sm10603133wjc.41.2016.07.28.02.48.04
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Thu, 28 Jul 2016 02:48:05 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Thu, 28 Jul 2016 10:47:51 +0100
Message-Id: <1469699272-14604-2-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1469699272-14604-1-git-send-email-paul.durrant@citrix.com>
References: <1469699272-14604-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 2/3] Make sure the NICS unplug count does not
	run away
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

SW4gYSB0aWdodCBsb29wIG9mIG5ldHdvcmsgYXR0YWNoL2RldGFjaCBpdCdzIHBvc3NpYmxlIGZv
ciBhIG1pc21hdGNoIGluCnRoZSBudW1iZXIgb2YgdW5wbHVnIHJlcXVlc3RzIGFuZCByZXZvY2F0
aW9ucyB0byBvY2N1ciwgbGVhZGluZyB0byBhCnJ1bi1hd2F5IHVucGx1ZyBjb3VudC4KClRoaXMg
cGF0Y2ggYWRqdXN0cyB0aGUgbG9jYXRpb24gb2YgdGhlIHJlcXVlc3RzIGFuZCByZXZvY2F0aW9u
cyB0byBtYWtlCnN1cmUgdGhpcyBkb2VzIG5vdCBoYXBwZW4uCgpTaWduZWQtb2ZmLWJ5OiBQYXVs
IER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgotLS0KIHNyYy94ZW52aWYvcGRvLmMg
fCAxNSArKysrKysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCA0
IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy94ZW52aWYvcGRvLmMgYi9zcmMveGVudmlm
L3Bkby5jCmluZGV4IDI4ZjllYjAuLjZjNGM5YmQgMTAwNjQ0Ci0tLSBhL3NyYy94ZW52aWYvcGRv
LmMKKysrIGIvc3JjL3hlbnZpZi9wZG8uYwpAQCAtOTEsNiArOTEsNyBAQCBzdHJ1Y3QgX1hFTlZJ
Rl9QRE8gewogICAgIFBYRU5CVVNfU1VTUEVORF9DQUxMQkFDSyAgICBTdXNwZW5kQ2FsbGJhY2tM
YXRlOwogCiAgICAgWEVOQlVTX1VOUExVR19JTlRFUkZBQ0UgICAgIFVucGx1Z0ludGVyZmFjZTsK
KyAgICBCT09MRUFOICAgICAgICAgICAgICAgICAgICAgVW5wbHVnUmVxdWVzdGVkOwogCiAgICAg
UFhFTlZJRl9GUk9OVEVORCAgICAgICAgICAgIEZyb250ZW5kOwogCkBAIC0xMTc0LDYgKzExNzUs
OSBAQCBQZG9VbnBsdWdSZXF1ZXN0KAogewogICAgIE5UU1RBVFVTICAgICAgICBzdGF0dXM7CiAK
KyAgICBBU1NFUlQzVShQZG8tPlVucGx1Z1JlcXVlc3RlZCwgIT0sIE1ha2UpOworICAgIFBkby0+
VW5wbHVnUmVxdWVzdGVkID0gTWFrZTsKKwogICAgIHN0YXR1cyA9IFhFTkJVU19VTlBMVUcoQWNx
dWlyZSwgJlBkby0+VW5wbHVnSW50ZXJmYWNlKTsKICAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVz
KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTIwNCw4ICsxMjA4LDYgQEAgUGRvU3RhcnREZXZpY2Uo
CiAgICAgaWYgKFBkby0+SGFzQWxpYXMpCiAgICAgICAgIGdvdG8gZmFpbDE7CiAKLSAgICBQZG9V
bnBsdWdSZXF1ZXN0KFBkbywgVFJVRSk7Ci0KICAgICBpZiAoRHJpdmVyU2FmZU1vZGUoKSkKICAg
ICAgICAgZ290byBmYWlsMjsKIApAQCAtMTI2OCw2ICsxMjcwLDggQEAgUGRvU3RhcnREZXZpY2Uo
CiAKICAgICAgICAgUGRvLT5IYXNBbGlhcyA9IFRSVUU7CiAKKyAgICAgICAgUGRvVW5wbHVnUmVx
dWVzdChQZG8sIFRSVUUpOworCiAgICAgICAgIHN0YXR1cyA9IFNUQVRVU19VTlNVQ0NFU1NGVUw7
CiAgICAgICAgIGdvdG8gZmFpbDk7CiAgICAgfQpAQCAtMTI3OCw2ICsxMjgyLDggQEAgUGRvU3Rh
cnREZXZpY2UoCiAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCiAgICAgICAgIGdvdG8gZmFp
bDEwOwogCisgICAgUGRvVW5wbHVnUmVxdWVzdChQZG8sIFRSVUUpOworCiAgICAgX19QZG9TZXRE
ZXZpY2VQbnBTdGF0ZShQZG8sIFN0YXJ0ZWQpOwogCiAgICAgSXJwLT5Jb1N0YXR1cy5TdGF0dXMg
PSBTVEFUVVNfU1VDQ0VTUzsKQEAgLTE0NzksMTAgKzE0ODUsMTAgQEAgUGRvUmVtb3ZlRGV2aWNl
KAogICAgIGlmIChfX1Bkb0dldERldmljZVBvd2VyU3RhdGUoUGRvKSAhPSBQb3dlckRldmljZUQw
KQogICAgICAgICBnb3RvIGRvbmU7CiAKLSAgICBQZG9EMFRvRDMoUGRvKTsKLQogICAgIFBkb1Vu
cGx1Z1JlcXVlc3QoUGRvLCBGQUxTRSk7CiAKKyAgICBQZG9EMFRvRDMoUGRvKTsKKwogZG9uZToK
ICAgICBSdGxaZXJvTWVtb3J5KCZQZG8tPkN1cnJlbnRBZGRyZXNzLCBzaXplb2YgKEVUSEVSTkVU
X0FERFJFU1MpKTsKIApAQCAtMjc3Nyw2ICsyNzgzLDcgQEAgUGRvRGVzdHJveSgKICAgICBQREVW
SUNFX09CSkVDVCAgUGh5c2ljYWxEZXZpY2VPYmplY3QgPSBEeC0+RGV2aWNlT2JqZWN0OwogICAg
IFBYRU5WSUZfRkRPICAgICBGZG8gPSBfX1Bkb0dldEZkbyhQZG8pOwogCisgICAgQVNTRVJUKCFQ
ZG8tPlVucGx1Z1JlcXVlc3RlZCk7CiAgICAgQVNTRVJUM1UoX19QZG9HZXREZXZpY2VQbnBTdGF0
ZShQZG8pLCA9PSwgRGVsZXRlZCk7CiAKICAgICBQZG8tPkhhc0FsaWFzID0gRkFMU0U7Ci0tIAoy
LjEuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndp
bi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3Jn
Cmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dp
bi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Thu Jul 28 09:48:10 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 28 Jul 2016 09:48:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bShvF-00032L-NV; Thu, 28 Jul 2016 09:48:09 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bShvE-00031v-EC
 for win-pv-devel@lists.xenproject.org; Thu, 28 Jul 2016 09:48:08 +0000
Received: from [193.109.254.147] by server-15.bemta-14.messagelabs.com id
 68/5B-01659-7D4D9975; Thu, 28 Jul 2016 09:48:07 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrLIsWRWlGSWpSXmKPExsXiVRvkpHv9ysx
 wg5efuS3+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxpKdP9gLHrBWrOrgbGC8y9LFyMkhJDCbUeLZ
 aoMuRi4OFoGXLBLbtz1nBnEkBPpZJXY1NrJ3MXIAOTESr2aagDRICNRIXNy/AKpZUaL52gV2k
 HohgRVMEk0XJ4El2ATUJW6/X8wO0WAn8WnWTTBbREBV4tryY2wgNrOAlsTDDfMYQeYLC/hIXP
 /qBhJmASr5dfs4K4jNK+AuMbf1FDPEGDmJvZNXs4CUcwp4SLze5AhxAlDJkXfMExgFFzAyrGL
 UKE4tKkst0jWy0EsqykzPKMlNzMzRNTQ00ctNLS5OTE/NSUwq1kvOz93ECAy0egYGxh2M6477
 HWKU5GBSEuUNC50ZLsSXlJ9SmZFYnBFfVJqTWnyIUYaDQ0mC9/ZloJxgUWp6akVaZg4w5GHSE
 hw8SiK8L0DSvMUFibnFmekQqVOMxhwLftxey8SxZeq9tUxCLHn5ealS4ryLQUoFQEozSvPgBs
 Fi8RKjrJQwLyMDA4MQT0FqUW5mCar8K0ZxDkYlYd59IFN4MvNK4Pa9AjqFCeiU4tgZIKeUJCK
 kpBoYFyStflLB+CRQPWHLvG4L9fdfjN2P/xFvSoq/4dV3Lfzr5e/rl7y78UY332qfgPU0f8XI
 g1nS3yLajjh+nMzZUcmW361w4Y2UXdSX6YtnWdzwO8OtZXT99r1fy4oc4h4aX9rCcnbWrJdC0
 56sYuHmVQ5ayPvj6LlkEdaY/8X1qTKyv1VebEnlVWIpzkg01GIuKk4EALFVQozAAgAA
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-15.tower-27.messagelabs.com!1469699286!1220397!1
X-Originating-IP: [74.125.82.66]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 42144 invoked from network); 28 Jul 2016 09:48:07 -0000
Received: from mail-wm0-f66.google.com (HELO mail-wm0-f66.google.com)
 (74.125.82.66)
 by server-15.tower-27.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 28 Jul 2016 09:48:07 -0000
Received: by mail-wm0-f66.google.com with SMTP id x83so10272180wma.3
 for <win-pv-devel@lists.xenproject.org>; Thu, 28 Jul 2016 02:48:07 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id:in-reply-to:references;
 bh=9wbcLyQAHDQBI7V0Lvz/j5t4pjSPMU3Ogn1bYBiHuiw=;
 b=D5KdKF63Qg3BEUntE6nIRngUGPLmtcUtAw6eRfVZ7+E0Rt3KI3zkwJ5meaxSwQ4PwI
 LO0p7ffuhl0RpaJFKd0msCZyn3AUVbnhFcmvv4O4WLFBLuGjHWsJKzeKpVWGLjNbGRYV
 mvP2ssDnYUBoxKYdMjCzNLE3swa8+/iFv3pvjUSE+/+zP9BjNt7I1oiudh3Vk98TRIjH
 7e8sjJOhwYnOZF3F1ljIH/XYr88NgURh5W2vpL7tce9acJoWCasQLOdAxL6n7GGZ1FAH
 bmGkVWtn1ZKszSD326vVJvc/QMt7719OdEXlOE0hthL4VULLwm23DLLXJ/4TSFN7qCup
 XUcg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
 :references;
 bh=9wbcLyQAHDQBI7V0Lvz/j5t4pjSPMU3Ogn1bYBiHuiw=;
 b=V9C7lVlFq7VOcSu5x0d6vd4K7hVkwadRWX3oj6uePZDaiwJBskIz4rKBxV4c6/SQg2
 uG8qZXBmZ3g+XnmCfRlxiKFUusjh9riQsSgSJ1c+u9UF5x5y/YhnQ6o2CxpIh+hR2FVQ
 yZA1sqAgIPJYhHCYX3rx1sA5NJxy8FxzROHr5Ka4xLqG17bhOWdo35h4hB2OX2jnUvw0
 M5aIfQELj/7kgb9Ign731bilM3lJp5NyIpMfDvMtMBFflNhMpEln+FRoxXnc4qjuO7Nf
 r6IfyAcEH1PGQXpYkqiUwSsTUijIbvAhs5b0t1pEFJMyNBR8hIJ9Z0I/xIgOpMR+2Rvy
 gFMA==
X-Gm-Message-State: AEkoouu1a5EaFu2QWaDw/Xvc2XOKisvhd+39L8N85r7bDBVgEvsNjeWfYZtxcQRCMe77qg==
X-Received: by 10.194.149.176 with SMTP id ub16mr32071910wjb.54.1469699286643; 
 Thu, 28 Jul 2016 02:48:06 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id kq2sm10603133wjc.41.2016.07.28.02.48.05
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Thu, 28 Jul 2016 02:48:06 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Thu, 28 Jul 2016 10:47:52 +0100
Message-Id: <1469699272-14604-3-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
In-Reply-To: <1469699272-14604-1-git-send-email-paul.durrant@citrix.com>
References: <1469699272-14604-1-git-send-email-paul.durrant@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 3/3] Don't qualify the check for the backend
	being online...
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

Li4ud2l0aCB3aGV0aGVyIGFuIGVqZWN0IHJlcXVlc3QgZm9yIHRoZSBmcm9udGVuZCBoYXMgYmVl
biBpc3N1ZWQuIEl0J3MKZWl0aGVyIG9ubGluZSBvciBpdCdzIG5vdC4KClNpZ25lZC1vZmYtYnk6
IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+Ci0tLQogc3JjL3hlbnZpZi9m
cm9udGVuZC5jIHwgMyArLS0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMiBkZWxl
dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMveGVudmlmL2Zyb250ZW5kLmMgYi9zcmMveGVudmlm
L2Zyb250ZW5kLmMKaW5kZXggNmEyMDE5ZS4uN2Q2ODJhYiAxMDA2NDQKLS0tIGEvc3JjL3hlbnZp
Zi9mcm9udGVuZC5jCisrKyBiL3NyYy94ZW52aWYvZnJvbnRlbmQuYwpAQCAtMTI1Niw4ICsxMjU2
LDcgQEAgRnJvbnRlbmRTZXRYZW5idXNTdGF0ZSgKIAogICAgIEFTU0VSVChGcm9udGVuZElzT25s
aW5lKEZyb250ZW5kKSk7CiAKLSAgICBPbmxpbmUgPSAhUGRvSXNFamVjdFJlcXVlc3RlZChfX0Zy
b250ZW5kR2V0UGRvKEZyb250ZW5kKSkgJiYKLSAgICAgICAgICAgICBGcm9udGVuZElzQmFja2Vu
ZE9ubGluZShGcm9udGVuZCk7CisgICAgT25saW5lID0gRnJvbnRlbmRJc0JhY2tlbmRPbmxpbmUo
RnJvbnRlbmQpOwogCiAgICAgKFZPSUQpIFhFTkJVU19TVE9SRShQcmludGYsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAmRnJvbnRlbmQtPlN0b3JlSW50ZXJmYWNlLAotLSAKMi4xLjEKCgpfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwg
bWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xp
c3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Thu Jul 28 09:49:18 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 28 Jul 2016 09:49:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bShwL-00035y-RC; Thu, 28 Jul 2016 09:49:17 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bShwJ-00035s-Nw
 for win-pv-devel@lists.xenproject.org; Thu, 28 Jul 2016 09:49:15 +0000
Received: from [85.158.137.68] by server-5.bemta-3.messagelabs.com id
 66/86-03281-A15D9975; Thu, 28 Jul 2016 09:49:14 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprOIsWRWlGSWpSXmKPExsXiVRvkqCt1dWa
 4wexdchZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y8esPewFTWwV+0+oNTA2sXYxcnEICcxilHi/
 7h47iMMicIlFYteWqWwgjoTAOxaJFzOuMXcxcgI5MRI/Z3+Dsqsl5r//zwpiCwkoSjRfu8AOM
 Wolk8TOSzPBitgE1CVuv1/MDtFgJ/Fp1k0wW0RAVeLa8mNsIDazgJbEww3zGEFsYYEoib4bN5
 i6GDmAzlCV+HXNAiTMK+AucfLYQai9chJ7J69mmcDIv4CRYRWjenFqUVlqka65XlJRZnpGSW5
 iZo6uoYGxXm5qcXFiempOYlKxXnJ+7iZGYPAwAMEOxsbvTocYJTmYlER5w0JnhgvxJeWnVGYk
 FmfEF5XmpBYfYpTh4FCS4L19GSgnWJSanlqRlpkDDGOYtAQHj5II7wuQNG9xQWJucWY6ROoUo
 zHHgh+31zJxbJl6by2TEEtefl6qlDjvYpBSAZDSjNI8uEGw+LrEKCslzMsIdJoQT0FqUW5mCa
 r8K0ZxDkYlYd6vIFN4MvNK4Pa9AjqFCeiU4tgZIKeUJCKkpBoY998NfsDoYzbJPVxwj0H0due
 lVy6IcJ59cPp37eNnfuxau1Leal2Med9iF3i9tWH77rAnoUraF/IPdK5/u/f8SVXDDIstVz3e
 M2wKuHzY9J1s0euwuIPy3nH/gnnf5H0rZr8TU8b0Qe5vmqyl76IpDa03Yj/IdhrGJea61Rdeq
 GKbNC/YXfaLEktxRqKhFnNRcSIAcQhBgKoCAAA=
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-12.tower-31.messagelabs.com!1469699354!36135525!1
X-Originating-IP: [74.125.82.65]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 6706 invoked from network); 28 Jul 2016 09:49:14 -0000
Received: from mail-wm0-f65.google.com (HELO mail-wm0-f65.google.com)
 (74.125.82.65)
 by server-12.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 28 Jul 2016 09:49:14 -0000
Received: by mail-wm0-f65.google.com with SMTP id i5so10300562wmg.2
 for <win-pv-devel@lists.xenproject.org>; Thu, 28 Jul 2016 02:49:14 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=QIOyjFJMxiTZZGfz7R8rXiIZr8dTYZrv+IdTl4okrqY=;
 b=aPhLsw9+GivHSJwTDNdJkU2ONOt1lgWK5l/zMfF9O/hHKjF1kzZqHLRVwmh7KF9Abl
 rWnsNpvstU7NlbNcZ+iTxSZXTAtsFGHEbWeegAx0Mf69Tj41sgLCziEsnsoMpPjzKoS9
 g8cK7Z1YTSK/W204YTBT+rtqP4f6tXgALX7Y8/zZ6XXWYPyoUdXpsKwPsDfAg+lSXJWT
 n0YqqmUnGHSWUofd19aAEQYRkc+f5vOxIJtH+IYbWxNfw+02wEeogSfi/rXzOw4OkOCq
 eh4OzoQaxtBjmB7uEbQq8MoI6T+QX4T5+/IIg3DcxTPTuD8va8jfJvwCfbqoEQ/RsPx8
 j+3A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=QIOyjFJMxiTZZGfz7R8rXiIZr8dTYZrv+IdTl4okrqY=;
 b=COmJVZqUgSBlXWCRgDbU9UgOhz6Pcoh0Cwn0aLnK50HxDHnISfiPI0qCPenaY8+F7B
 UWoySog8bsy4xEVnIuvzmJEnx6oYw9xRq2etRsOSDlkt7lotiHSAnamOJIHIG97HkEeD
 ELD8qFLdNg45WDMW1NWANmYbSJa+can3CcU+/GJ+tRznZZDqmMcrcSlwhHxRV7EUDH+x
 l3ulBt9hH//oloGFhoIj9a2NNoC9Z0CPC7kjM/k4PMZ+fwWZZs8s+E5CNfi5dqN56NDj
 EDjVFzVZ6jzNZ46oxTBPEepUarCt1NdikBLmRIkb7V0NVfweHVBPhV5aO6YHTcuQD+mJ
 u6Nw==
X-Gm-Message-State: AEkoouvbjzd+k9SCCBmgfDao0YMpJG87ib3xlu9tYXgOZJn+/BAtQBd/t9WeRexil8xisA==
X-Received: by 10.28.142.135 with SMTP id q129mr37247246wmd.41.1469699354116; 
 Thu, 28 Jul 2016 02:49:14 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id b186sm11344599wmg.23.2016.07.28.02.49.13
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Thu, 28 Jul 2016 02:49:13 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Thu, 28 Jul 2016 10:49:03 +0100
Message-Id: <1469699343-11016-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] XENBUS_MONITOR: don't delete the registry
	value until a reboot is pending
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

SWYgYSByZWJvb3QgaXMgcmVxdWVzdGVkIHdoaWxzdCB0aGVyZSBpcyBubyBhY3RpdmUgc2Vzc2lv
biB0aGVuIHRoZQptb25pdG9yIHdpbGwgbm90IGJlIGFibGUgdG8gcHJvbXB0IGZvciByZWJvb3Qu
IFdlIG5lZWQgdG8gbGVhdmUgdGhlCnJlZ2lzdHJ5IHZhbHVlIGluIHBsYWNlIHVudGlsIHdlIGhh
dmUgcHJvbXB0ZWQuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBj
aXRyaXguY29tPgotLS0KIHNyYy9tb25pdG9yL21vbml0b3IuYyB8IDMgKystCiAxIGZpbGUgY2hh
bmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL21v
bml0b3IvbW9uaXRvci5jIGIvc3JjL21vbml0b3IvbW9uaXRvci5jCmluZGV4IDlhNGY0ZjkuLjcz
OWFhZmYgMTAwNjQ0Ci0tLSBhL3NyYy9tb25pdG9yL21vbml0b3IuYworKysgYi9zcmMvbW9uaXRv
ci9tb25pdG9yLmMKQEAgLTU1OCw3ICs1NTgsOCBAQCBDaGVja1JlYm9vdFZhbHVlKAogICAgIGlm
ICghQ29udGV4dC0+UmVib290UGVuZGluZykKICAgICAgICAgUHJvbXB0Rm9yUmVib290KFJlYm9v
dCk7CiAKLSAgICAoVk9JRCkgUmVnRGVsZXRlVmFsdWUoQ29udGV4dC0+UmVxdWVzdEtleSwgIlJl
Ym9vdCIpOworICAgIGlmIChDb250ZXh0LT5SZWJvb3RQZW5kaW5nKQorICAgICAgICAoVk9JRCkg
UmVnRGVsZXRlVmFsdWUoQ29udGV4dC0+UmVxdWVzdEtleSwgIlJlYm9vdCIpOwogCiBkb25lOgog
ICAgIGZyZWUoUmVib290KTsKLS0gCjIuMS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2
ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2kt
YmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Thu Jul 28 09:49:18 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 28 Jul 2016 09:49:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bShwL-00035y-RC; Thu, 28 Jul 2016 09:49:17 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bShwJ-00035s-Nw
 for win-pv-devel@lists.xenproject.org; Thu, 28 Jul 2016 09:49:15 +0000
Received: from [85.158.137.68] by server-5.bemta-3.messagelabs.com id
 66/86-03281-A15D9975; Thu, 28 Jul 2016 09:49:14 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprOIsWRWlGSWpSXmKPExsXiVRvkqCt1dWa
 4wexdchZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y8esPewFTWwV+0+oNTA2sXYxcnEICcxilHi/
 7h47iMMicIlFYteWqWwgjoTAOxaJFzOuMXcxcgI5MRI/Z3+Dsqsl5r//zwpiCwkoSjRfu8AOM
 Wolk8TOSzPBitgE1CVuv1/MDtFgJ/Fp1k0wW0RAVeLa8mNsIDazgJbEww3zGEFsYYEoib4bN5
 i6GDmAzlCV+HXNAiTMK+AucfLYQai9chJ7J69mmcDIv4CRYRWjenFqUVlqka65XlJRZnpGSW5
 iZo6uoYGxXm5qcXFiempOYlKxXnJ+7iZGYPAwAMEOxsbvTocYJTmYlER5w0JnhgvxJeWnVGYk
 FmfEF5XmpBYfYpTh4FCS4L19GSgnWJSanlqRlpkDDGOYtAQHj5II7wuQNG9xQWJucWY6ROoUo
 zHHgh+31zJxbJl6by2TEEtefl6qlDjvYpBSAZDSjNI8uEGw+LrEKCslzMsIdJoQT0FqUW5mCa
 r8K0ZxDkYlYd6vIFN4MvNK4Pa9AjqFCeiU4tgZIKeUJCKkpBoY998NfsDoYzbJPVxwj0H0due
 lVy6IcJ59cPp37eNnfuxau1Leal2Med9iF3i9tWH77rAnoUraF/IPdK5/u/f8SVXDDIstVz3e
 M2wKuHzY9J1s0euwuIPy3nH/gnnf5H0rZr8TU8b0Qe5vmqyl76IpDa03Yj/IdhrGJea61Rdeq
 GKbNC/YXfaLEktxRqKhFnNRcSIAcQhBgKoCAAA=
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-12.tower-31.messagelabs.com!1469699354!36135525!1
X-Originating-IP: [74.125.82.65]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 6706 invoked from network); 28 Jul 2016 09:49:14 -0000
Received: from mail-wm0-f65.google.com (HELO mail-wm0-f65.google.com)
 (74.125.82.65)
 by server-12.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 28 Jul 2016 09:49:14 -0000
Received: by mail-wm0-f65.google.com with SMTP id i5so10300562wmg.2
 for <win-pv-devel@lists.xenproject.org>; Thu, 28 Jul 2016 02:49:14 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=QIOyjFJMxiTZZGfz7R8rXiIZr8dTYZrv+IdTl4okrqY=;
 b=aPhLsw9+GivHSJwTDNdJkU2ONOt1lgWK5l/zMfF9O/hHKjF1kzZqHLRVwmh7KF9Abl
 rWnsNpvstU7NlbNcZ+iTxSZXTAtsFGHEbWeegAx0Mf69Tj41sgLCziEsnsoMpPjzKoS9
 g8cK7Z1YTSK/W204YTBT+rtqP4f6tXgALX7Y8/zZ6XXWYPyoUdXpsKwPsDfAg+lSXJWT
 n0YqqmUnGHSWUofd19aAEQYRkc+f5vOxIJtH+IYbWxNfw+02wEeogSfi/rXzOw4OkOCq
 eh4OzoQaxtBjmB7uEbQq8MoI6T+QX4T5+/IIg3DcxTPTuD8va8jfJvwCfbqoEQ/RsPx8
 j+3A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=QIOyjFJMxiTZZGfz7R8rXiIZr8dTYZrv+IdTl4okrqY=;
 b=COmJVZqUgSBlXWCRgDbU9UgOhz6Pcoh0Cwn0aLnK50HxDHnISfiPI0qCPenaY8+F7B
 UWoySog8bsy4xEVnIuvzmJEnx6oYw9xRq2etRsOSDlkt7lotiHSAnamOJIHIG97HkEeD
 ELD8qFLdNg45WDMW1NWANmYbSJa+can3CcU+/GJ+tRznZZDqmMcrcSlwhHxRV7EUDH+x
 l3ulBt9hH//oloGFhoIj9a2NNoC9Z0CPC7kjM/k4PMZ+fwWZZs8s+E5CNfi5dqN56NDj
 EDjVFzVZ6jzNZ46oxTBPEepUarCt1NdikBLmRIkb7V0NVfweHVBPhV5aO6YHTcuQD+mJ
 u6Nw==
X-Gm-Message-State: AEkoouvbjzd+k9SCCBmgfDao0YMpJG87ib3xlu9tYXgOZJn+/BAtQBd/t9WeRexil8xisA==
X-Received: by 10.28.142.135 with SMTP id q129mr37247246wmd.41.1469699354116; 
 Thu, 28 Jul 2016 02:49:14 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id b186sm11344599wmg.23.2016.07.28.02.49.13
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Thu, 28 Jul 2016 02:49:13 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Thu, 28 Jul 2016 10:49:03 +0100
Message-Id: <1469699343-11016-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] XENBUS_MONITOR: don't delete the registry
	value until a reboot is pending
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

SWYgYSByZWJvb3QgaXMgcmVxdWVzdGVkIHdoaWxzdCB0aGVyZSBpcyBubyBhY3RpdmUgc2Vzc2lv
biB0aGVuIHRoZQptb25pdG9yIHdpbGwgbm90IGJlIGFibGUgdG8gcHJvbXB0IGZvciByZWJvb3Qu
IFdlIG5lZWQgdG8gbGVhdmUgdGhlCnJlZ2lzdHJ5IHZhbHVlIGluIHBsYWNlIHVudGlsIHdlIGhh
dmUgcHJvbXB0ZWQuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBj
aXRyaXguY29tPgotLS0KIHNyYy9tb25pdG9yL21vbml0b3IuYyB8IDMgKystCiAxIGZpbGUgY2hh
bmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL21v
bml0b3IvbW9uaXRvci5jIGIvc3JjL21vbml0b3IvbW9uaXRvci5jCmluZGV4IDlhNGY0ZjkuLjcz
OWFhZmYgMTAwNjQ0Ci0tLSBhL3NyYy9tb25pdG9yL21vbml0b3IuYworKysgYi9zcmMvbW9uaXRv
ci9tb25pdG9yLmMKQEAgLTU1OCw3ICs1NTgsOCBAQCBDaGVja1JlYm9vdFZhbHVlKAogICAgIGlm
ICghQ29udGV4dC0+UmVib290UGVuZGluZykKICAgICAgICAgUHJvbXB0Rm9yUmVib290KFJlYm9v
dCk7CiAKLSAgICAoVk9JRCkgUmVnRGVsZXRlVmFsdWUoQ29udGV4dC0+UmVxdWVzdEtleSwgIlJl
Ym9vdCIpOworICAgIGlmIChDb250ZXh0LT5SZWJvb3RQZW5kaW5nKQorICAgICAgICAoVk9JRCkg
UmVnRGVsZXRlVmFsdWUoQ29udGV4dC0+UmVxdWVzdEtleSwgIlJlYm9vdCIpOwogCiBkb25lOgog
ICAgIGZyZWUoUmVib290KTsKLS0gCjIuMS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2
ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2kt
YmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Fri Jul 29 13:54:31 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 29 Jul 2016 13:54:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bT8FA-0007yI-TJ; Fri, 29 Jul 2016 13:54:28 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bT8F9-0007yC-Aw
 for win-pv-devel@lists.xenproject.org; Fri, 29 Jul 2016 13:54:27 +0000
Received: from [193.109.254.147] by server-3.bemta-14.messagelabs.com id
 F8/7D-29440-2106B975; Fri, 29 Jul 2016 13:54:26 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprMIsWRWlGSWpSXmKPExsXiVRvkrCuYMDv
 cYNM2dYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCaceD5YpaC96IV5/9fYmpg7BDuYuTiEBKYzSjR
 uuokC4jDInCJRWLy0ptMII6EwDsWicPrtzB2MXIAOTES3U06XYycQGaNxO/P89lBbCEBRYnma
 xfYISYtZ5KYe+YDM0iCTUBd4vb7xewQDXYSn2bdBLNFBFQlri0/xgZiMwtoSTzcMI8RxBYWcJ
 R413ETLM4CVNP24SULiM0r4CYx/ds7Nog5chJ7J69mmcDIv4CRYRWjRnFqUVlqka6xgV5SUWZ
 6RkluYmaOrqGhiV5uanFxYnpqTmJSsV5yfu4mRmAA1TMwMO5g3H/J7xCjJAeTkijvghWzwoX4
 kvJTKjMSizPii0pzUosPMcpwcChJ8ArEzw4XEixKTU+tSMvMAYYyTFqCg0dJhFceJM1bXJCYW
 5yZDpE6xajLsWXqvbVMQix5+XmpUuK8C+OAigRAijJK8+BGwOLqEqOslDAvIwMDgxBPQWpRbm
 YJqvwrRnEORiVhXj6QVTyZeSVwm14BHcEEdERx7AyQI0oSEVJSDYzTTqUd+r6zXjeZLfX9p/O
 3vZ91J2rKnXmrdej2x8qduQLTXs7fuaqU/5w1m+qSa8onP/NIKopHWrn7fxY8kJe3odF+lfqL
 X+8Uq8S3TbS9HCDPF/Q3XeTEys+ZCTpzN5/oDY6/Vyvz9ODWxQsc5Pcdun3b4BObl3r3pcOZv
 SxHxBrsVKXKM5YrsRRnJBpqMRcVJwIA4rxMj6YCAAA=
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-12.tower-27.messagelabs.com!1469800465!55769837!1
X-Originating-IP: [74.125.82.67]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 27116 invoked from network); 29 Jul 2016 13:54:25 -0000
Received: from mail-wm0-f67.google.com (HELO mail-wm0-f67.google.com)
 (74.125.82.67)
 by server-12.tower-27.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 29 Jul 2016 13:54:25 -0000
Received: by mail-wm0-f67.google.com with SMTP id x83so15826892wma.3
 for <win-pv-devel@lists.xenproject.org>; Fri, 29 Jul 2016 06:54:25 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=NY0m6QrIbEC6W0NYkqlrXUvgyMPlXwJrYPf9+QY2s+g=;
 b=tt8ihSG0nBDA+HLuFUcpgKQy8D+SMBoSOP7ao+Gcx1p8+xu9zXgnOPzgxs6lArTmjh
 OJ4cJfwgec+jnYYPstOiL3EyTOFLm8MqDNfZdAk5ZYYcCGNK1r7o+liPplSTndYNmWRG
 7Y4ekiEqUgApTw/vExK+Mhbte4GJng/rPcdceBTBTDVXsnaCmOvQJ06ofbk/HfvKJtZR
 cd5vsDwAGxhl6+dD7uhpbArxHLq+HTNYIVtZE208Nw7yyqcApk2Y4RO47/FD4cKssVcN
 n5sCFJKJejoIUyOBXGZCJiShgUfwovmYmMWPxs0t6fVg8WfK5uaK3xHDjgddccgjeusA
 4xHQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=NY0m6QrIbEC6W0NYkqlrXUvgyMPlXwJrYPf9+QY2s+g=;
 b=SdQMmV6zD1vzPwmQxI7tlH6OdyXssqJivRzTn/1ihrVvNF8H1/53fDxPclNXD1juyG
 fnqvQPbDmOGxCv/sy/EPxU/nLDlI7+R7K57gtJGaxi8RRhUAtqdPSNDlVLwZy5Ct9ORB
 rC97MwYZ+RB/kuWuZ3JEZY2gkxSLkWNPjICYLl/yzQqcvJm0s19hcQBbfpXCKaagJYPP
 NfE6EwNCg7SDVVzwrl/LSKQGW8326Djo/dQU0NteClOrrZ5QINYfCLyWpzo1obiNDW7M
 H+sMYOyejQ7CtQCy2IZgvaslGkLgSJ/BTrX203lNlcbyUVKuJ2qV2YXlnUmscl/kt7BU
 mkiw==
X-Gm-Message-State: AEkoouvD+l3ihfV/BN64dMYz8sMB7wI/r/tNFHJAbkGT3zFq3YN5WwtwirOTXfW0GD003g==
X-Received: by 10.194.149.176 with SMTP id ub16mr38604864wjb.54.1469800464915; 
 Fri, 29 Jul 2016 06:54:24 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id d64sm3158298wmc.22.2016.07.29.06.54.23
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 29 Jul 2016 06:54:24 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Fri, 29 Jul 2016 14:54:15 +0100
Message-Id: <1469800455-1248-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Make DMA interception less chatty in free
	builds
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0t
CiBzcmMveGVuYnVzL2RtYS5jIHwgMzAgKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiAx
IGZpbGUgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0t
Z2l0IGEvc3JjL3hlbmJ1cy9kbWEuYyBiL3NyYy94ZW5idXMvZG1hLmMKaW5kZXggNzUzMWY4Yi4u
YTRlNTY5NCAxMDA2NDQKLS0tIGEvc3JjL3hlbmJ1cy9kbWEuYworKysgYi9zcmMveGVuYnVzL2Rt
YS5jCkBAIC0yMTYsMjEgKzIxNiwyMSBAQCBEbWFEdW1wRGV2aWNlRGVzY3JpcHRpb24oCiAgICAg
SU4gIFBERVZJQ0VfREVTQ1JJUFRJT04gRGV2aWNlRGVzY3JpcHRpb24KICAgICApCiB7Ci0gICAg
SW5mbygiVmVyc2lvbiA9ICV1XG4iLCBEZXZpY2VEZXNjcmlwdGlvbi0+VmVyc2lvbik7Ci0gICAg
SW5mbygiTWFzdGVyID0gJXNcbiIsIChEZXZpY2VEZXNjcmlwdGlvbi0+TWFzdGVyKSA/ICJUUlVF
IiA6ICJGQUxTRSIpOwotICAgIEluZm8oIlNjYXR0ZXJHYXRoZXIgPSAlc1xuIiwgKERldmljZURl
c2NyaXB0aW9uLT5TY2F0dGVyR2F0aGVyKSA/ICJUUlVFIiA6ICJGQUxTRSIpOwotICAgIEluZm8o
IkRlbWFuZE1vZGUgPSAlc1xuIiwgKERldmljZURlc2NyaXB0aW9uLT5EZW1hbmRNb2RlKSA/ICJU
UlVFIiA6ICJGQUxTRSIpOwotICAgIEluZm8oIkF1dG9Jbml0aWFsaXplID0gJXNcbiIsIChEZXZp
Y2VEZXNjcmlwdGlvbi0+QXV0b0luaXRpYWxpemUpID8gIlRSVUUiIDogIkZBTFNFIik7Ci0gICAg
SW5mbygiRG1hMzJCaXRBZGRyZXNzZXMgPSAlc1xuIiwgKERldmljZURlc2NyaXB0aW9uLT5EbWEz
MkJpdEFkZHJlc3NlcykgPyAiVFJVRSIgOiAiRkFMU0UiKTsKLSAgICBJbmZvKCJJZ25vcmVDb3Vu
dCA9ICVzXG4iLCAoRGV2aWNlRGVzY3JpcHRpb24tPklnbm9yZUNvdW50KSA/ICJUUlVFIiA6ICJG
QUxTRSIpOwotICAgIEluZm8oIkRtYTY0Qml0QWRkcmVzc2VzID0gJXNcbiIsIChEZXZpY2VEZXNj
cmlwdGlvbi0+RG1hNjRCaXRBZGRyZXNzZXMpID8gIlRSVUUiIDogIkZBTFNFIik7Ci0gICAgSW5m
bygiQnVzTnVtYmVyID0gJTA4eFxuIiwgRGV2aWNlRGVzY3JpcHRpb24tPkJ1c051bWJlcik7Ci0g
ICAgSW5mbygiRG1hQ2hhbm5lbCA9ICUwOHhcbiIsIERldmljZURlc2NyaXB0aW9uLT5EbWFDaGFu
bmVsKTsKLSAgICBJbmZvKCJJbnRlcmZhY2VUeXBlID0gJXNcbiIsIEludGVyZmFjZVR5cGVOYW1l
KERldmljZURlc2NyaXB0aW9uLT5JbnRlcmZhY2VUeXBlKSk7Ci0gICAgSW5mbygiRG1hV2lkdGgg
PSAlc1xuIiwgRG1hV2lkdGhOYW1lKERldmljZURlc2NyaXB0aW9uLT5EbWFXaWR0aCkpOwotICAg
IEluZm8oIkRtYVNwZWVkID0gJXNcbiIsIERtYVNwZWVkTmFtZShEZXZpY2VEZXNjcmlwdGlvbi0+
RG1hU3BlZWQpKTsKLSAgICBJbmZvKCJNYXhpbXVtTGVuZ3RoID0gJTA4eFxuIiwgRGV2aWNlRGVz
Y3JpcHRpb24tPk1heGltdW1MZW5ndGgpOwotICAgIEluZm8oIkRtYVBvcnQgPSAlMDh4XG4iLCBE
ZXZpY2VEZXNjcmlwdGlvbi0+RG1hUG9ydCk7CisgICAgVHJhY2UoIlZlcnNpb24gPSAldVxuIiwg
RGV2aWNlRGVzY3JpcHRpb24tPlZlcnNpb24pOworICAgIFRyYWNlKCJNYXN0ZXIgPSAlc1xuIiwg
KERldmljZURlc2NyaXB0aW9uLT5NYXN0ZXIpID8gIlRSVUUiIDogIkZBTFNFIik7CisgICAgVHJh
Y2UoIlNjYXR0ZXJHYXRoZXIgPSAlc1xuIiwgKERldmljZURlc2NyaXB0aW9uLT5TY2F0dGVyR2F0
aGVyKSA/ICJUUlVFIiA6ICJGQUxTRSIpOworICAgIFRyYWNlKCJEZW1hbmRNb2RlID0gJXNcbiIs
IChEZXZpY2VEZXNjcmlwdGlvbi0+RGVtYW5kTW9kZSkgPyAiVFJVRSIgOiAiRkFMU0UiKTsKKyAg
ICBUcmFjZSgiQXV0b0luaXRpYWxpemUgPSAlc1xuIiwgKERldmljZURlc2NyaXB0aW9uLT5BdXRv
SW5pdGlhbGl6ZSkgPyAiVFJVRSIgOiAiRkFMU0UiKTsKKyAgICBUcmFjZSgiRG1hMzJCaXRBZGRy
ZXNzZXMgPSAlc1xuIiwgKERldmljZURlc2NyaXB0aW9uLT5EbWEzMkJpdEFkZHJlc3NlcykgPyAi
VFJVRSIgOiAiRkFMU0UiKTsKKyAgICBUcmFjZSgiSWdub3JlQ291bnQgPSAlc1xuIiwgKERldmlj
ZURlc2NyaXB0aW9uLT5JZ25vcmVDb3VudCkgPyAiVFJVRSIgOiAiRkFMU0UiKTsKKyAgICBUcmFj
ZSgiRG1hNjRCaXRBZGRyZXNzZXMgPSAlc1xuIiwgKERldmljZURlc2NyaXB0aW9uLT5EbWE2NEJp
dEFkZHJlc3NlcykgPyAiVFJVRSIgOiAiRkFMU0UiKTsKKyAgICBUcmFjZSgiQnVzTnVtYmVyID0g
JTA4eFxuIiwgRGV2aWNlRGVzY3JpcHRpb24tPkJ1c051bWJlcik7CisgICAgVHJhY2UoIkRtYUNo
YW5uZWwgPSAlMDh4XG4iLCBEZXZpY2VEZXNjcmlwdGlvbi0+RG1hQ2hhbm5lbCk7CisgICAgVHJh
Y2UoIkludGVyZmFjZVR5cGUgPSAlc1xuIiwgSW50ZXJmYWNlVHlwZU5hbWUoRGV2aWNlRGVzY3Jp
cHRpb24tPkludGVyZmFjZVR5cGUpKTsKKyAgICBUcmFjZSgiRG1hV2lkdGggPSAlc1xuIiwgRG1h
V2lkdGhOYW1lKERldmljZURlc2NyaXB0aW9uLT5EbWFXaWR0aCkpOworICAgIFRyYWNlKCJEbWFT
cGVlZCA9ICVzXG4iLCBEbWFTcGVlZE5hbWUoRGV2aWNlRGVzY3JpcHRpb24tPkRtYVNwZWVkKSk7
CisgICAgVHJhY2UoIk1heGltdW1MZW5ndGggPSAlMDh4XG4iLCBEZXZpY2VEZXNjcmlwdGlvbi0+
TWF4aW11bUxlbmd0aCk7CisgICAgVHJhY2UoIkRtYVBvcnQgPSAlMDh4XG4iLCBEZXZpY2VEZXNj
cmlwdGlvbi0+RG1hUG9ydCk7CiB9CiAKIHN0YXRpYyBQWEVOQlVTX0RNQV9DT05URVhUCi0tIAoy
LjEuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndp
bi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3Jn
Cmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dp
bi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Fri Jul 29 13:54:31 2016
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 29 Jul 2016 13:54:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1bT8FA-0007yI-TJ; Fri, 29 Jul 2016 13:54:28 +0000
Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <pdurrant@gmail.com>) id 1bT8F9-0007yC-Aw
 for win-pv-devel@lists.xenproject.org; Fri, 29 Jul 2016 13:54:27 +0000
Received: from [193.109.254.147] by server-3.bemta-14.messagelabs.com id
 F8/7D-29440-2106B975; Fri, 29 Jul 2016 13:54:26 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprMIsWRWlGSWpSXmKPExsXiVRvkrCuYMDv
 cYNM2dYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCaceD5YpaC96IV5/9fYmpg7BDuYuTiEBKYzSjR
 uuokC4jDInCJRWLy0ptMII6EwDsWicPrtzB2MXIAOTES3U06XYycQGaNxO/P89lBbCEBRYnma
 xfYISYtZ5KYe+YDM0iCTUBd4vb7xewQDXYSn2bdBLNFBFQlri0/xgZiMwtoSTzcMI8RxBYWcJ
 R413ETLM4CVNP24SULiM0r4CYx/ds7Nog5chJ7J69mmcDIv4CRYRWjRnFqUVlqka6xgV5SUWZ
 6RkluYmaOrqGhiV5uanFxYnpqTmJSsV5yfu4mRmAA1TMwMO5g3H/J7xCjJAeTkijvghWzwoX4
 kvJTKjMSizPii0pzUosPMcpwcChJ8ArEzw4XEixKTU+tSMvMAYYyTFqCg0dJhFceJM1bXJCYW
 5yZDpE6xajLsWXqvbVMQix5+XmpUuK8C+OAigRAijJK8+BGwOLqEqOslDAvIwMDgxBPQWpRbm
 YJqvwrRnEORiVhXj6QVTyZeSVwm14BHcEEdERx7AyQI0oSEVJSDYzTTqUd+r6zXjeZLfX9p/O
 3vZ91J2rKnXmrdej2x8qduQLTXs7fuaqU/5w1m+qSa8onP/NIKopHWrn7fxY8kJe3odF+lfqL
 X+8Uq8S3TbS9HCDPF/Q3XeTEys+ZCTpzN5/oDY6/Vyvz9ODWxQsc5Pcdun3b4BObl3r3pcOZv
 SxHxBrsVKXKM5YrsRRnJBpqMRcVJwIA4rxMj6YCAAA=
X-Env-Sender: pdurrant@gmail.com
X-Msg-Ref: server-12.tower-27.messagelabs.com!1469800465!55769837!1
X-Originating-IP: [74.125.82.67]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 8.77; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 27116 invoked from network); 29 Jul 2016 13:54:25 -0000
Received: from mail-wm0-f67.google.com (HELO mail-wm0-f67.google.com)
 (74.125.82.67)
 by server-12.tower-27.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 29 Jul 2016 13:54:25 -0000
Received: by mail-wm0-f67.google.com with SMTP id x83so15826892wma.3
 for <win-pv-devel@lists.xenproject.org>; Fri, 29 Jul 2016 06:54:25 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=from:to:cc:subject:date:message-id;
 bh=NY0m6QrIbEC6W0NYkqlrXUvgyMPlXwJrYPf9+QY2s+g=;
 b=tt8ihSG0nBDA+HLuFUcpgKQy8D+SMBoSOP7ao+Gcx1p8+xu9zXgnOPzgxs6lArTmjh
 OJ4cJfwgec+jnYYPstOiL3EyTOFLm8MqDNfZdAk5ZYYcCGNK1r7o+liPplSTndYNmWRG
 7Y4ekiEqUgApTw/vExK+Mhbte4GJng/rPcdceBTBTDVXsnaCmOvQJ06ofbk/HfvKJtZR
 cd5vsDwAGxhl6+dD7uhpbArxHLq+HTNYIVtZE208Nw7yyqcApk2Y4RO47/FD4cKssVcN
 n5sCFJKJejoIUyOBXGZCJiShgUfwovmYmMWPxs0t6fVg8WfK5uaK3xHDjgddccgjeusA
 4xHQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=NY0m6QrIbEC6W0NYkqlrXUvgyMPlXwJrYPf9+QY2s+g=;
 b=SdQMmV6zD1vzPwmQxI7tlH6OdyXssqJivRzTn/1ihrVvNF8H1/53fDxPclNXD1juyG
 fnqvQPbDmOGxCv/sy/EPxU/nLDlI7+R7K57gtJGaxi8RRhUAtqdPSNDlVLwZy5Ct9ORB
 rC97MwYZ+RB/kuWuZ3JEZY2gkxSLkWNPjICYLl/yzQqcvJm0s19hcQBbfpXCKaagJYPP
 NfE6EwNCg7SDVVzwrl/LSKQGW8326Djo/dQU0NteClOrrZ5QINYfCLyWpzo1obiNDW7M
 H+sMYOyejQ7CtQCy2IZgvaslGkLgSJ/BTrX203lNlcbyUVKuJ2qV2YXlnUmscl/kt7BU
 mkiw==
X-Gm-Message-State: AEkoouvD+l3ihfV/BN64dMYz8sMB7wI/r/tNFHJAbkGT3zFq3YN5WwtwirOTXfW0GD003g==
X-Received: by 10.194.149.176 with SMTP id ub16mr38604864wjb.54.1469800464915; 
 Fri, 29 Jul 2016 06:54:24 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id d64sm3158298wmc.22.2016.07.29.06.54.23
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 29 Jul 2016 06:54:24 -0700 (PDT)
From: Paul Durrant <pdurrant@gmail.com>
X-Google-Original-From: Paul Durrant <paul.durrant@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Fri, 29 Jul 2016 14:54:15 +0100
Message-Id: <1469800455-1248-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.1.1
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Make DMA interception less chatty in free
	builds
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0t
CiBzcmMveGVuYnVzL2RtYS5jIHwgMzAgKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiAx
IGZpbGUgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0t
Z2l0IGEvc3JjL3hlbmJ1cy9kbWEuYyBiL3NyYy94ZW5idXMvZG1hLmMKaW5kZXggNzUzMWY4Yi4u
YTRlNTY5NCAxMDA2NDQKLS0tIGEvc3JjL3hlbmJ1cy9kbWEuYworKysgYi9zcmMveGVuYnVzL2Rt
YS5jCkBAIC0yMTYsMjEgKzIxNiwyMSBAQCBEbWFEdW1wRGV2aWNlRGVzY3JpcHRpb24oCiAgICAg
SU4gIFBERVZJQ0VfREVTQ1JJUFRJT04gRGV2aWNlRGVzY3JpcHRpb24KICAgICApCiB7Ci0gICAg
SW5mbygiVmVyc2lvbiA9ICV1XG4iLCBEZXZpY2VEZXNjcmlwdGlvbi0+VmVyc2lvbik7Ci0gICAg
SW5mbygiTWFzdGVyID0gJXNcbiIsIChEZXZpY2VEZXNjcmlwdGlvbi0+TWFzdGVyKSA/ICJUUlVF
IiA6ICJGQUxTRSIpOwotICAgIEluZm8oIlNjYXR0ZXJHYXRoZXIgPSAlc1xuIiwgKERldmljZURl
c2NyaXB0aW9uLT5TY2F0dGVyR2F0aGVyKSA/ICJUUlVFIiA6ICJGQUxTRSIpOwotICAgIEluZm8o
IkRlbWFuZE1vZGUgPSAlc1xuIiwgKERldmljZURlc2NyaXB0aW9uLT5EZW1hbmRNb2RlKSA/ICJU
UlVFIiA6ICJGQUxTRSIpOwotICAgIEluZm8oIkF1dG9Jbml0aWFsaXplID0gJXNcbiIsIChEZXZp
Y2VEZXNjcmlwdGlvbi0+QXV0b0luaXRpYWxpemUpID8gIlRSVUUiIDogIkZBTFNFIik7Ci0gICAg
SW5mbygiRG1hMzJCaXRBZGRyZXNzZXMgPSAlc1xuIiwgKERldmljZURlc2NyaXB0aW9uLT5EbWEz
MkJpdEFkZHJlc3NlcykgPyAiVFJVRSIgOiAiRkFMU0UiKTsKLSAgICBJbmZvKCJJZ25vcmVDb3Vu
dCA9ICVzXG4iLCAoRGV2aWNlRGVzY3JpcHRpb24tPklnbm9yZUNvdW50KSA/ICJUUlVFIiA6ICJG
QUxTRSIpOwotICAgIEluZm8oIkRtYTY0Qml0QWRkcmVzc2VzID0gJXNcbiIsIChEZXZpY2VEZXNj
cmlwdGlvbi0+RG1hNjRCaXRBZGRyZXNzZXMpID8gIlRSVUUiIDogIkZBTFNFIik7Ci0gICAgSW5m
bygiQnVzTnVtYmVyID0gJTA4eFxuIiwgRGV2aWNlRGVzY3JpcHRpb24tPkJ1c051bWJlcik7Ci0g
ICAgSW5mbygiRG1hQ2hhbm5lbCA9ICUwOHhcbiIsIERldmljZURlc2NyaXB0aW9uLT5EbWFDaGFu
bmVsKTsKLSAgICBJbmZvKCJJbnRlcmZhY2VUeXBlID0gJXNcbiIsIEludGVyZmFjZVR5cGVOYW1l
KERldmljZURlc2NyaXB0aW9uLT5JbnRlcmZhY2VUeXBlKSk7Ci0gICAgSW5mbygiRG1hV2lkdGgg
PSAlc1xuIiwgRG1hV2lkdGhOYW1lKERldmljZURlc2NyaXB0aW9uLT5EbWFXaWR0aCkpOwotICAg
IEluZm8oIkRtYVNwZWVkID0gJXNcbiIsIERtYVNwZWVkTmFtZShEZXZpY2VEZXNjcmlwdGlvbi0+
RG1hU3BlZWQpKTsKLSAgICBJbmZvKCJNYXhpbXVtTGVuZ3RoID0gJTA4eFxuIiwgRGV2aWNlRGVz
Y3JpcHRpb24tPk1heGltdW1MZW5ndGgpOwotICAgIEluZm8oIkRtYVBvcnQgPSAlMDh4XG4iLCBE
ZXZpY2VEZXNjcmlwdGlvbi0+RG1hUG9ydCk7CisgICAgVHJhY2UoIlZlcnNpb24gPSAldVxuIiwg
RGV2aWNlRGVzY3JpcHRpb24tPlZlcnNpb24pOworICAgIFRyYWNlKCJNYXN0ZXIgPSAlc1xuIiwg
KERldmljZURlc2NyaXB0aW9uLT5NYXN0ZXIpID8gIlRSVUUiIDogIkZBTFNFIik7CisgICAgVHJh
Y2UoIlNjYXR0ZXJHYXRoZXIgPSAlc1xuIiwgKERldmljZURlc2NyaXB0aW9uLT5TY2F0dGVyR2F0
aGVyKSA/ICJUUlVFIiA6ICJGQUxTRSIpOworICAgIFRyYWNlKCJEZW1hbmRNb2RlID0gJXNcbiIs
IChEZXZpY2VEZXNjcmlwdGlvbi0+RGVtYW5kTW9kZSkgPyAiVFJVRSIgOiAiRkFMU0UiKTsKKyAg
ICBUcmFjZSgiQXV0b0luaXRpYWxpemUgPSAlc1xuIiwgKERldmljZURlc2NyaXB0aW9uLT5BdXRv
SW5pdGlhbGl6ZSkgPyAiVFJVRSIgOiAiRkFMU0UiKTsKKyAgICBUcmFjZSgiRG1hMzJCaXRBZGRy
ZXNzZXMgPSAlc1xuIiwgKERldmljZURlc2NyaXB0aW9uLT5EbWEzMkJpdEFkZHJlc3NlcykgPyAi
VFJVRSIgOiAiRkFMU0UiKTsKKyAgICBUcmFjZSgiSWdub3JlQ291bnQgPSAlc1xuIiwgKERldmlj
ZURlc2NyaXB0aW9uLT5JZ25vcmVDb3VudCkgPyAiVFJVRSIgOiAiRkFMU0UiKTsKKyAgICBUcmFj
ZSgiRG1hNjRCaXRBZGRyZXNzZXMgPSAlc1xuIiwgKERldmljZURlc2NyaXB0aW9uLT5EbWE2NEJp
dEFkZHJlc3NlcykgPyAiVFJVRSIgOiAiRkFMU0UiKTsKKyAgICBUcmFjZSgiQnVzTnVtYmVyID0g
JTA4eFxuIiwgRGV2aWNlRGVzY3JpcHRpb24tPkJ1c051bWJlcik7CisgICAgVHJhY2UoIkRtYUNo
YW5uZWwgPSAlMDh4XG4iLCBEZXZpY2VEZXNjcmlwdGlvbi0+RG1hQ2hhbm5lbCk7CisgICAgVHJh
Y2UoIkludGVyZmFjZVR5cGUgPSAlc1xuIiwgSW50ZXJmYWNlVHlwZU5hbWUoRGV2aWNlRGVzY3Jp
cHRpb24tPkludGVyZmFjZVR5cGUpKTsKKyAgICBUcmFjZSgiRG1hV2lkdGggPSAlc1xuIiwgRG1h
V2lkdGhOYW1lKERldmljZURlc2NyaXB0aW9uLT5EbWFXaWR0aCkpOworICAgIFRyYWNlKCJEbWFT
cGVlZCA9ICVzXG4iLCBEbWFTcGVlZE5hbWUoRGV2aWNlRGVzY3JpcHRpb24tPkRtYVNwZWVkKSk7
CisgICAgVHJhY2UoIk1heGltdW1MZW5ndGggPSAlMDh4XG4iLCBEZXZpY2VEZXNjcmlwdGlvbi0+
TWF4aW11bUxlbmd0aCk7CisgICAgVHJhY2UoIkRtYVBvcnQgPSAlMDh4XG4iLCBEZXZpY2VEZXNj
cmlwdGlvbi0+RG1hUG9ydCk7CiB9CiAKIHN0YXRpYyBQWEVOQlVTX0RNQV9DT05URVhUCi0tIAoy
LjEuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndp
bi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3Jn
Cmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dp
bi1wdi1kZXZlbA==

