From MDiPierro@cti.depaul.edu  Mon Sep 27 10:28:20 2004
Return-Path: <MDiPierro@cti.depaul.edu>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from haydn.cti.depaul.edu (haydn.cti.depaul.edu [140.192.32.26])
	by merlin.depaul.edu (Postfix) with ESMTP id F2CF118034
	for <cti_finance@mailman.depaul.edu>;
	Mon, 27 Sep 2004 10:28:19 -0500 (CDT)
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Date: Mon, 27 Sep 2004 10:28:19 -0500
Message-ID: <6BE417C96732934A83E4BBBB3B7FF2F40248F66A@haydn.cti.depaul.edu>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: Next meeting
Thread-Index: AcSkpp4id/Dsr43pTtSYHTA1UIsn5g==
From: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
To: <cti_finance@mailman.depaul.edu>
X-Mailman-Approved-At: Mon, 27 Sep 2004 10:29:34 -0500
Subject: [Cti_finance] Next meeting
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Mon, 27 Sep 2004 15:28:20 -0000

Hi everybody,
=20
many of you cannot meet on Friday morning. I propose that we meet on Wed =
at 4:45 on a weekly basis. Who cannot make it?
=20
Massimo
From MDiPierro@cti.depaul.edu  Tue Sep 28 00:14:45 2004
Return-Path: <MDiPierro@cti.depaul.edu>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from haydn.cti.depaul.edu (haydn.cti.depaul.edu [140.192.32.26])
	by merlin.depaul.edu (Postfix) with ESMTP id ED14118010
	for <cti_finance@mailman.depaul.edu>;
	Tue, 28 Sep 2004 00:14:44 -0500 (CDT)
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Date: Tue, 28 Sep 2004 00:14:44 -0500
Message-ID: <6BE417C96732934A83E4BBBB3B7FF2F40248F696@haydn.cti.depaul.edu>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: meeting this week
Thread-Index: AcSlGhEA9DCMtpW4SoeXoi7iCHoutg==
From: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
To: <cti_finance@mailman.depaul.edu>
Subject: [Cti_finance] meeting this week
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Tue, 28 Sep 2004 05:14:45 -0000

For this week we will meet on Friday at 5pm, probably in the Millennium =
Boardroom on the 7th floor. I let you know in advance if that room is =
not available and have to meet somewhere else.

Massimo
From mgoetsch@wellsstreettower.net  Tue Sep 28 22:34:23 2004
Return-Path: <mgoetsch@wellsstreettower.net>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from mail.onshore.net (mail.onshore.net [66.146.193.4])
	by merlin.depaul.edu (Postfix) with ESMTP id E623718034
	for <cti_finance@mailman.depaul.edu>;
	Tue, 28 Sep 2004 22:34:22 -0500 (CDT)
Received: from localhost (localhost [127.0.0.1])
	by mail.onshore.net (Postfix) with ESMTP
	id 28F01406A; Tue, 28 Sep 2004 22:34:23 -0500 (CDT)
Received: from unknown by localhost (amavisd-new, unix socket)
 id client-XXCIvMRf; Tue, 28 Sep 2004 22:34:23 -0500 (CDT)
Received: from Hercules (OSH-NAT-210-150.onshore.net [66.146.210.150])
	by mail.onshore.net (Postfix) with ESMTP
	id B6ECD4068; Tue, 28 Sep 2004 22:34:22 -0500 (CDT)
From: "Mark Goetsch" <mgoetsch@wellsstreettower.net>
To: "'DiPierro, Massimo'" <MDiPierro@cti.depaul.edu>,
	<cti_finance@mailman.depaul.edu>
Subject: RE: [Cti_finance] meeting this week
Date: Tue, 28 Sep 2004 22:34:14 -0500
MIME-Version: 1.0
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Mailer: Microsoft Office Outlook, Build 11.0.5510
Thread-Index: AcSlGhEA9DCMtpW4SoeXoi7iCHoutgAt/PaA
In-Reply-To: <6BE417C96732934A83E4BBBB3B7FF2F40248F696@haydn.cti.depaul.edu>
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
Message-Id: <20040929033422.B6ECD4068@mail.onshore.net>
X-Virus-Scanned: by amavisd-new at onshore.net
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Wed, 29 Sep 2004 03:34:23 -0000

Here is a list of recommended books by University of Chicago for Financial
Mathematics. I have added some annotation to the ones that I have seen.

Mary L. Boas Mathematical Methods in the Physical Sciences?

John C. Hull Options, Futures and Other Derivatives 
> This is a standard in financial options. Rigourous on an MBA level.

Neil A. Chriss Black-Scholes and Beyond: Option Pricing Models 
> Focuses on an intuitive understanding of options pricing.  Mathematics at
the Layman level but the understanding part is priceless.  Neil Chriss is
currently part of University of Chicago's Financial Mathematics program.

Darrell Duffie Dynamic Asset Pricing Theory 
> Rigourous book on how to price an asset used by both University of Chicago
and Northwestern University Economics departments.

P. Wilmott, S. Howison, J. Dewynne The Mathematics of Financial Derivatives 
> Mathematical. This is one of the few books that takes a pure partial
derivatives approach to financial options pricing rather that the stochastic
model that is normally used. P. Wilmott also has another book "An
introduction to Quantitative Finance" which is a much more accessible
reference and contains some Excel tips.

Patrick Billingsley Probability and Measure?

Ioannis Karatzas, Steven E. Shreve Brownian Motion and Stochastic Calculus 
> Typical of the Springer-Verlag books this is a rigourous treatment of the
subject. 

Jonathan E. Ingersoll, Jr. Theory of Financial Decision Making 
Ingersoll is one of the people that is creating models for financial options
and worked with Stephen Ross from Yale (Cox-Ross-Rubenstein model).

For those that are starting to look in computational finance the Neil Chriss
is a great place to start as is Wimott's introduction.  Papers run the
gamut. From an options point of view the Black-Scholes paper from 1973 from
the Journal of Finance is the one that started the options revolution. 

Mark Goetsch

-----Original Message-----
From: cti_finance-bounces@mailman.depaul.edu
[mailto:cti_finance-bounces@mailman.depaul.edu] On Behalf Of DiPierro,
Massimo
Sent: Tuesday, September 28, 2004 12:15 AM
To: cti_finance@mailman.depaul.edu
Subject: [Cti_finance] meeting this week

For this week we will meet on Friday at 5pm, probably in the Millennium
Boardroom on the 7th floor. I let you know in advance if that room is not
available and have to meet somewhere else.

Massimo
_______________________________________________
Cti_finance mailing list
Cti_finance@mailman.depaul.edu
http://mailman.depaul.edu/mailman/listinfo/cti_finance


From MDiPierro@cti.depaul.edu  Thu Sep 30 11:53:39 2004
Return-Path: <MDiPierro@cti.depaul.edu>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from haydn.cti.depaul.edu (haydn.cti.depaul.edu [140.192.32.26])
	by merlin.depaul.edu (Postfix) with ESMTP id D648818034
	for <cti_finance@mailman.depaul.edu>;
	Thu, 30 Sep 2004 11:53:39 -0500 (CDT)
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Date: Thu, 30 Sep 2004 11:53:39 -0500
Message-ID: <6BE417C96732934A83E4BBBB3B7FF2F40248F6DC@haydn.cti.depaul.edu>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: fill survey
Thread-Index: AcSnDgj7TOxDGZfVQaKiqwqTqbsJAw==
From: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
To: <cti_finance@mailman.depaul.edu>
Subject: [Cti_finance] fill survey
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Thu, 30 Sep 2004 16:53:40 -0000

I am working with administration and college of commerce in creating an =
MS in computational finance.
I'd very much appreciate if you could fill the survey on the following =
page
=20
http://140.192.37.195/cgi-bin/spider.py?_request=3Dfinance_0 =
<http://140.192.37.195/cgi-bin/spider.py?_request=3Dfinance_0>=20
=20
This is not immediately related to our group but will have benefits for =
you in the long term because DePaul will build a reputation in this =
field. Let me know what you think.
=20
Massimo
From MDiPierro@cti.depaul.edu  Fri Oct  1 09:57:45 2004
Return-Path: <MDiPierro@cti.depaul.edu>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from haydn.cti.depaul.edu (haydn.cti.depaul.edu [140.192.32.26])
	by merlin.depaul.edu (Postfix) with ESMTP id C51B218047
	for <cti_finance@mailman.depaul.edu>;
	Fri,  1 Oct 2004 09:57:45 -0500 (CDT)
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Date: Fri, 1 Oct 2004 09:57:45 -0500
Message-ID: <6BE417C96732934A83E4BBBB3B7FF2F40248F6E3@haydn.cti.depaul.edu>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Index: AcSnxwJYHPNK6xlEQWej/ee1eAIx7A==
From: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
To: <cti_finance@mailman.depaul.edu>
Subject: [Cti_finance] 
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Fri, 01 Oct 2004 14:57:45 -0000

about tonight meeting:At 5pm we meet in the lobby on 7th floor.
=20
I will send another email when I have confirmation about room. Probably =
Millennium Boardroom on 7th.
=20
Massimo
From MDiPierro@cti.depaul.edu  Sat Oct  2 11:56:43 2004
Return-Path: <MDiPierro@cti.depaul.edu>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from haydn.cti.depaul.edu (haydn.cti.depaul.edu [140.192.32.26])
	by merlin.depaul.edu (Postfix) with ESMTP id 2692018034
	for <cti_finance@mailman.depaul.edu>;
	Sat,  2 Oct 2004 11:56:43 -0500 (CDT)
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Date: Sat, 2 Oct 2004 11:56:43 -0500
Message-ID: <6BE417C96732934A83E4BBBB3B7FF2F40248F70C@haydn.cti.depaul.edu>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: how to get data from yahoo
Thread-Index: AcSooMshOaC1v5kjR22ij5s61co1+A==
From: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
To: <cti_finance@mailman.depaul.edu>
Subject: [Cti_finance] how to get data from yahoo
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Sat, 02 Oct 2004 16:56:43 -0000

Here is an 8 line python program to get quotes from Yahoo (without =
delay). Please do not distribute outside the group.

import urlib
month1, day1, year1=3D1, 1, 1980
month2, day2, year2=3D10, 1, 2004
ticker=3D'AMD'
url =3D =
'http://table.finance.yahoo.com/table.csv?a=3D%d&b=3D%d&c=3D%d&d=3D%d&e=3D=
%d&f=3D%d&s=3D%s&y=3D0&g=3Dd&ignore=3D.csv' % (month1, day1, year1, =
month2, day2, year2, ticker)
f=3Durllib.open(url)
print f.read()

To do:

1) Write Java or C# that gets all quotes from a stock and saves them in =
database of some kind (I suggest you look into postgresql, access is =
also fine).

2) Download historic data for all stocks and store in database.

3) Try to find data on the imporant indices (S&P100, S&P500, NASDAQ, =
NYSE, interest rates, what else?)

Massimo
From Aviad@BestFrog.com  Sun Oct  3 01:48:44 2004
Return-Path: <Aviad@BestFrog.com>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from smtp804.mail.sc5.yahoo.com (smtp804.mail.sc5.yahoo.com
	[66.163.168.183])
	by merlin.depaul.edu (Postfix) with SMTP id 949A418034
	for <cti_finance@mailman.depaul.edu>;
	Sun,  3 Oct 2004 01:48:44 -0500 (CDT)
Received: from unknown (HELO e1hak) (sheinfeld@ameritech.net@68.22.201.208
	with login)
	by smtp804.mail.sc5.yahoo.com with SMTP; 3 Oct 2004 06:48:44 -0000
From: "Aviad Sheinfeld" <Aviad@BestFrog.com>
To: <cti_finance@mailman.depaul.edu>
Subject: RE: [Cti_finance] getting data
Date: Sun, 3 Oct 2004 01:48:29 -0500
MIME-Version: 1.0
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Mailer: Microsoft Office Outlook, Build 11.0.5510
Thread-Index: AcSooMshOaC1v5kjR22ij5s61co1+AAcvqkg
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441
In-Reply-To: <6BE417C96732934A83E4BBBB3B7FF2F40248F70C@haydn.cti.depaul.edu>
Message-Id: <20041003064844.949A418034@merlin.depaul.edu>
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Sun, 03 Oct 2004 06:48:44 -0000

Massimo,

Can you help me get an account on one of the servers (hawk?) to run the
program and store the data?

I have found a listing of what is supposedly all stocks listed on major
exchanges here: http://www.dtniq.com/product/mktsymbols.zip

I wrote Java code to parse these out by exchange and fetch the historical
data from Yahoo! for each. Data for each symbol is being dumped into a text
file now, but once I can get an account set up, I will be able to populate a
MySQL or PostgreSQL database.

There will still be some tweaking required for odd symbols that are
differently represented on Yahoo! (e.g., preferred shares), but that will
come later. I'm storing all failed symbols for review.

Thanks,
Aviad

-----Original Message-----
From: cti_finance-bounces@mailman.depaul.edu
[mailto:cti_finance-bounces@mailman.depaul.edu] On Behalf Of DiPierro,
Massimo
Sent: Saturday, October 02, 2004 11:57 AM
To: cti_finance@mailman.depaul.edu
Subject: [Cti_finance] how to get data from yahoo

Here is an 8 line python program to get quotes from Yahoo (without delay).
Please do not distribute outside the group.

import urlib
month1, day1, year1=1, 1, 1980
month2, day2, year2=10, 1, 2004
ticker='AMD'
url =
'http://table.finance.yahoo.com/table.csv?a=%d&b=%d&c=%d&d=%d&e=%d&f=%d&s=%s
&y=0&g=d&ignore=.csv' % (month1, day1, year1, month2, day2, year2, ticker)
f=urllib.open(url)
print f.read()

To do:

1) Write Java or C# that gets all quotes from a stock and saves them in
database of some kind (I suggest you look into postgresql, access is also
fine).

2) Download historic data for all stocks and store in database.

3) Try to find data on the imporant indices (S&P100, S&P500, NASDAQ, NYSE,
interest rates, what else?)

Massimo
_______________________________________________
Cti_finance mailing list
Cti_finance@mailman.depaul.edu
http://mailman.depaul.edu/mailman/listinfo/cti_finance



From MDiPierro@cti.depaul.edu  Tue Oct  5 13:43:42 2004
Return-Path: <MDiPierro@cti.depaul.edu>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from haydn.cti.depaul.edu (haydn.cti.depaul.edu [140.192.32.26])
	by merlin.depaul.edu (Postfix) with ESMTP id 01D3718078
	for <cti_finance@mailman.depaul.edu>;
	Tue,  5 Oct 2004 13:43:42 -0500 (CDT)
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Date: Tue, 5 Oct 2004 13:43:41 -0500
Message-ID: <6BE417C96732934A83E4BBBB3B7FF2F40248F754@haydn.cti.depaul.edu>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: meeting
Thread-Index: AcSrCzxGI6xt+7ReTTCD0nZYKqp59A==
From: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
To: <cti_finance@mailman.depaul.edu>
Subject: [Cti_finance] meeting
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Tue, 05 Oct 2004 18:43:42 -0000

=20
I have to reschedule our meeting. For the next 3 weeks Firiday is not =
going to be a good time. What about meeting on Tuesday at 5pm for the =
next 3 weeks (skipping this week - today)?
=20
Massimo
From wmlocke@ameritech.net  Tue Oct  5 14:17:30 2004
Return-Path: <wmlocke@ameritech.net>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from web81504.mail.yahoo.com (web81504.mail.yahoo.com
	[206.190.37.107])
	by merlin.depaul.edu (Postfix) with SMTP id A57AE18010
	for <cti_finance@mailman.depaul.edu>;
	Tue,  5 Oct 2004 14:17:30 -0500 (CDT)
Message-ID: <20041005191730.52629.qmail@web81504.mail.yahoo.com>
Received: from [144.160.98.29] by web81504.mail.yahoo.com via HTTP;
	Tue, 05 Oct 2004 12:17:30 PDT
Date: Tue, 5 Oct 2004 12:17:30 -0700 (PDT)
From: William Locke <wmlocke@ameritech.net>
Subject: Re: [Cti_finance] meeting
To: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>,
	cti_finance@mailman.depaul.edu
In-Reply-To: <6BE417C96732934A83E4BBBB3B7FF2F40248F754@haydn.cti.depaul.edu>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="0-2019511376-1097003850=:52603"
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Tue, 05 Oct 2004 19:17:30 -0000

--0-2019511376-1097003850=:52603
Content-Type: text/plain; charset=us-ascii

Tuesdays at 5pm are good for me.

"DiPierro, Massimo" <MDiPierro@cti.depaul.edu> wrote:
I have to reschedule our meeting. For the next 3 weeks Firiday is not going to be a good time. What about meeting on Tuesday at 5pm for the next 3 weeks (skipping this week - today)?

Massimo
_______________________________________________
Cti_finance mailing list
Cti_finance@mailman.depaul.edu
http://mailman.depaul.edu/mailman/listinfo/cti_finance


--0-2019511376-1097003850=:52603
Content-Type: text/html; charset=us-ascii

<DIV>Tuesdays at 5pm are good for me.<BR><BR><B><I>"DiPierro, Massimo" &lt;MDiPierro@cti.depaul.edu&gt;</I></B> wrote:
<BLOCKQUOTE class=replbq style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #1010ff 2px solid"><BR>I have to reschedule our meeting. For the next 3 weeks Firiday is not going to be a good time. What about meeting on Tuesday at 5pm for the next 3 weeks (skipping this week - today)?<BR><BR>Massimo<BR>_______________________________________________<BR>Cti_finance mailing list<BR>Cti_finance@mailman.depaul.edu<BR>http://mailman.depaul.edu/mailman/listinfo/cti_finance<BR></BLOCKQUOTE></DIV>
--0-2019511376-1097003850=:52603--
From MDiPierro@cti.depaul.edu  Tue Oct 12 08:52:02 2004
Return-Path: <MDiPierro@cti.depaul.edu>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from haydn.cti.depaul.edu (haydn.cti.depaul.edu [140.192.32.26])
	by merlin.depaul.edu (Postfix) with ESMTP id 809F118013
	for <cti_finance@mailman.depaul.edu>;
	Tue, 12 Oct 2004 08:52:02 -0500 (CDT)
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Date: Tue, 12 Oct 2004 08:51:07 -0500
Message-ID: <6BE417C96732934A83E4BBBB3B7FF2F40248F821@haydn.cti.depaul.edu>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: Meeting
Thread-Index: AcSwXKz0GIdk6orhTqKyTF8zWo/ZsgABdkPL
From: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
To: "William Locke" <wmlocke@ameritech.net>
cc: cti_finance@mailman.depaul.edu
Subject: [Cti_finance] RE: Meeting
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Tue, 12 Oct 2004 13:52:02 -0000

Hi everybody,
=20
we did not meet last friday but we are meeting tonight at 5pm in the =
Millennia Boardroom (unless otherwise specified).
=20
Massimo

________________________________

From: William Locke [mailto:wmlocke@ameritech.net]
Sent: Tue 10/12/2004 8:09 AM
To: DiPierro, Massimo
Subject: Meeting


Are we meeting tonight, will it be in the Millennium Room?  What did I =
miss on Friday?
=20
Thanks,
Bill
From MDiPierro@cti.depaul.edu  Tue Oct 12 19:55:49 2004
Return-Path: <MDiPierro@cti.depaul.edu>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from haydn.cti.depaul.edu (haydn.cti.depaul.edu [140.192.32.26])
	by merlin.depaul.edu (Postfix) with ESMTP id B280518089
	for <cti_finance@mailman.depaul.edu>;
	Tue, 12 Oct 2004 19:55:49 -0500 (CDT)
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: multipart/mixed;
	boundary="----_=_NextPart_001_01C4B0BF.61913776"
Date: Tue, 12 Oct 2004 19:54:09 -0500
Message-ID: <6BE417C96732934A83E4BBBB3B7FF2F40248F832@haydn.cti.depaul.edu>
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
Thread-Topic: program
Thread-Index: AcSwvyWsilyOmmCnSm6dMQibH05ctg==
From: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
To: <cti_finance@mailman.depaul.edu>
Subject: [Cti_finance] program
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Wed, 13 Oct 2004 00:55:49 -0000

This is a multi-part message in MIME format.

------_=_NextPart_001_01C4B0BF.61913776
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

This is the program we wrote in class today. Anybody volunteers to =
rewrite it in C++/C#/Java and add some documentation?=20
=20
Massimo

------_=_NextPart_001_01C4B0BF.61913776
Content-Type: text/plain;
	name="test.py"
Content-Transfer-Encoding: base64
Content-Description: test.py
Content-Disposition: attachment;
	filename="test.py"

aW1wb3J0IGNvcHkNCmltcG9ydCBtYXRoDQppbXBvcnQgcmFuZG9tDQoNCmRlZiBjb21wdXRlX3Np
Z21hKEEpOg0KICAgIHN1bT0wLjANCiAgICBzdW0yPTAuMA0KICAgIG49bGVuKEEpDQogICAgZm9y
IGkgaW4gcmFuZ2UoMCxsZW4oQSktMSk6DQogICAgICAgIHg9KEFbaSsxXS1BW2ldKS9BW2ldDQog
ICAgICAgIHN1bT1zdW0reA0KICAgICAgICBzdW0yPXN1bTIreCp4DQogICAgbWVhbj1zdW0vbg0K
ICAgIHJldHVybiBtZWFuLCBtYXRoLnNxcnQoc3VtMi9uLW1lYW4qbWVhbikNCg0KDQpkZWYgbWFr
ZV9oaXN0b3J5KFMwLHIsc2lnbWEwLFQsZHQ9MS4wKToNCiAgICBwYXN0X2hpc3Rvcnk9W10NCiAg
ICBzaWdtYT1zaWdtYTANCiAgICBTPVMwDQogICAgZm9yIHQgaW4gcmFuZ2UoVCk6DQogICAgICAg
IGVwc2lsb249cmFuZG9tLmdhdXNzKDAsMSkNCiAgICAgICAgUz1TKigxLjArcipkdCtzaWdtYSpl
cHNpbG9uKm1hdGguc3FydChkdCkpDQogICAgICAgIHBhc3RfaGlzdG9yeS5hcHBlbmQoUykNCiAg
ICByZXR1cm4gcGFzdF9oaXN0b3J5DQoNCg0KZGVmIG1ha2VfZnV0dXJlX2hpc3RvcnkocGFzdF9o
aXN0b3J5LHIsVCxkdD0xLjAsdHJpY2s9MCk6DQogICAgcGFzdF9oaXN0b3J5PWNvcHkuY29weShw
YXN0X2hpc3RvcnkpDQogICAgcjAsc2lnbWE9Y29tcHV0ZV9zaWdtYShwYXN0X2hpc3RvcnkpDQog
ICAgUz1wYXN0X2hpc3RvcnlbLTFdDQogICAgZm9yIHQgaW4gcmFuZ2UoVCk6DQogICAgICAgIGVw
c2lsb249cmFuZG9tLmdhdXNzKDAsMSkNCiAgICAgICAgUz1TKigxLjArcipkdCtzaWdtYSplcHNp
bG9uKm1hdGguc3FydChkdCkpDQogICAgICAgIGlmIHRyaWNrOg0KICAgICAgICAgICAgI2RlbCBw
YXN0X2hpc3RvcnlbMF0gICAgICAgIA0KICAgICAgICAgICAgcGFzdF9oaXN0b3J5LmFwcGVuZChT
KQ0KICAgICAgICAgICAgcjAsc2lnbWE9Y29tcHV0ZV9zaWdtYShwYXN0X2hpc3RvcnkpDQogICAg
cmV0dXJuIFMNCg0KZGVmIHByaWNlKHBhc3RfaGlzdG9yeSxyPTAuMDQvMjUwLFQ9MixGPTM1LjAs
bj0zMDAwLHRyaWNrPTApOg0KICAgIFA9MA0KICAgIGZvciBpIGluIHJhbmdlKG4pOg0KICAgICAg
ICBTPW1ha2VfZnV0dXJlX2hpc3RvcnkocGFzdF9oaXN0b3J5LHIsVCwxLjAsdHJpY2spDQogICAg
ICAgIFA9UCttYXgoUy1GLDApICANCiAgICBQPVAvbg0KICAgIHJldHVybiBQDQoNCnBhc3RfaGlz
dG9yeT1tYWtlX2hpc3RvcnkoUzA9NDAscj0wLjA0LzI1MCxzaWdtYTA9MS4wLzE2LFQ9MTApDQpT
MD1wYXN0X2hpc3RvcnlbLTFdDQpmb3IgeCBpbiByYW5nZShpbnQoUzAqMC41KSxpbnQoUzAqMiks
Mik6DQogICAgYT1wcmljZShwYXN0X2hpc3RvcnksVD0zMCxGPXgsdHJpY2s9MCkNCiAgICBiPXBy
aWNlKHBhc3RfaGlzdG9yeSxUPTMwLEY9eCx0cmljaz0xKQ0KICAgIHByaW50IHgsYi1h

------_=_NextPart_001_01C4B0BF.61913776--
From MDiPierro@cti.depaul.edu  Thu Oct 14 16:05:42 2004
Return-Path: <MDiPierro@cti.depaul.edu>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from haydn.cti.depaul.edu (haydn.cti.depaul.edu [140.192.32.26])
	by merlin.depaul.edu (Postfix) with ESMTP id 1307E18013
	for <cti_finance@mailman.depaul.edu>;
	Thu, 14 Oct 2004 16:05:42 -0500 (CDT)
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Date: Thu, 14 Oct 2004 16:05:41 -0500
Message-ID: <6BE417C96732934A83E4BBBB3B7FF2F40248F873@haydn.cti.depaul.edu>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: python book suggestion
Thread-Index: AcSyMZBjJ9k/ZixtQTKZHqyNhX571g==
From: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
To: <cti_finance@mailman.depaul.edu>
Subject: [Cti_finance] python book suggestion
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Thu, 14 Oct 2004 21:05:42 -0000

Here is a good and free python book:http://diveintopython.org/ =
<http://diveintopython.org/>   for those who asked.
=20
Massimo
From MDiPierro@cti.depaul.edu  Thu Oct 14 16:15:39 2004
Return-Path: <MDiPierro@cti.depaul.edu>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from haydn.cti.depaul.edu (haydn.cti.depaul.edu [140.192.32.26])
	by merlin.depaul.edu (Postfix) with ESMTP id 142C518013
	for <cti_finance@mailman.depaul.edu>;
	Thu, 14 Oct 2004 16:15:39 -0500 (CDT)
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Date: Thu, 14 Oct 2004 16:15:37 -0500
Message-ID: <6BE417C96732934A83E4BBBB3B7FF2F40248F877@haydn.cti.depaul.edu>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: next meeting
Thread-Index: AcSyMvN1ztbMCHAgRY+eiXbZALTA7A==
From: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
To: <cti_finance@mailman.depaul.edu>
Subject: [Cti_finance] next meeting
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Thu, 14 Oct 2004 21:15:39 -0000

Next meeting will be on Friday Oct 22 at 5pm in room 610.
=20
Massimo
From MDiPierro@cti.depaul.edu  Fri Oct 15 16:30:45 2004
Return-Path: <MDiPierro@cti.depaul.edu>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from haydn.cti.depaul.edu (haydn.cti.depaul.edu [140.192.32.26])
	by merlin.depaul.edu (Postfix) with ESMTP id 33EEF18010
	for <cti_finance@mailman.depaul.edu>;
	Fri, 15 Oct 2004 16:30:45 -0500 (CDT)
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Date: Fri, 15 Oct 2004 16:30:44 -0500
Message-ID: <6BE417C96732934A83E4BBBB3B7FF2F40248F8A0@haydn.cti.depaul.edu>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: next meeting: friday
Thread-Index: AcSy/jqh0z8uStjMSqi6GXeEzQlpdw==
From: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
To: <cti_finance@mailman.depaul.edu>
Subject: [Cti_finance] next meeting: friday
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Fri, 15 Oct 2004 21:30:45 -0000

>From now on the meeting will always be on Friday at 5pm. I know this is =
a problem for some of you but I thought it is better to try to be =
consistent. In the end Friday is the only day there are no CTI classes =
and I hope some collegues from the school of business will be able to =
attend in the near future.
=20
Next meeting Friday 22 at 5pm in room 610.
=20
Massimo
From MDiPierro@cti.depaul.edu  Fri Oct 22 18:41:46 2004
Return-Path: <MDiPierro@cti.depaul.edu>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from haydn.cti.depaul.edu (haydn.cti.depaul.edu [140.192.32.26])
	by merlin.depaul.edu (Postfix) with ESMTP id 43AAF1806B
	for <cti_finance@mailman.depaul.edu>;
	Fri, 22 Oct 2004 18:41:46 -0500 (CDT)
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: multipart/mixed;
	boundary="----_=_NextPart_001_01C4B890.B1229DBD"
Date: Fri, 22 Oct 2004 18:41:09 -0500
Message-ID: <6BE417C96732934A83E4BBBB3B7FF2F40248F93A@haydn.cti.depaul.edu>
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
Thread-Topic: C++ program
Thread-Index: AcS0tPSZNE80qYgqTduCvHagTkrHrwD26bjS
From: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
To: <cti_finance@mailman.depaul.edu>
Subject: [Cti_finance] FW: C++ program
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Fri, 22 Oct 2004 23:41:46 -0000

This is a multi-part message in MIME format.

------_=_NextPart_001_01C4B890.B1229DBD
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Thank you William,
=20
I have not checked it yet.
=20
Massimo

________________________________

From: William M. Locke [mailto:wmlocke@ameritech.net]
Sent: Sun 10/17/2004 8:51 PM
To: DiPierro, Massimo
Subject: C++ program


Massimo,
=20
Here is the implementation in C++.  I am going to start C# tomorrow, but =
I may not have it done by Friday.
=20
Also, I am going to miss the meeting this Friday. =20
=20
Bill

------_=_NextPart_001_01C4B890.B1229DBD
Content-Type: application/octet-stream;
	name="PriceAssets.cpp"
Content-Transfer-Encoding: base64
Content-Description: PriceAssets.cpp
Content-Disposition: attachment;
	filename="PriceAssets.cpp"

I2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8aW9zdHJlYW0uaD4NCiNpbmNsdWRlIDxzdGRs
aWIuaD4NCiNpbmNsdWRlIDx2ZWN0b3IuaD4NCiNpbmNsdWRlIDxtYXRoLmg+DQoNCg0KDQpjbGFz
cyBQcmljZUFzc2V0IHsNCnB1YmxpYzoNCg0KCS8qDQoJICogY29tcHV0ZV9zaWdtYSAtIHRoaXMg
bWV0aG9kIHRha2VzIGFuIGFycmF5IGFuZCBjYWxjdWxhdGVzIHRoZQ0KCSAqIAkJCQkJbWVhbiBh
bmQgc3RhbmRhcmQgZGV2aWF0aW9uIG9mIHRoZSBkaWZmZXJlbmNlIA0KCSAqIAkJCQkJYmV0d2Vl
biBhZGphY2VudCB2YWx1ZXMNCgkgKi8NCmRvdWJsZSBjb21wdXRlX3NpZ21hKHZlY3Rvcjxkb3Vi
bGU+JiBBKSB7DQogICAgICAgZG91YmxlIHN1bSA9IDAuMDsNCiAgICAgICBkb3VibGUgc3VtMiA9
IDAuMDsNCiAgICAgICBpbnQgbiA9IEEuc2l6ZSgpOw0KDQogICAgICAgZm9yIChpbnQgaSA9IDA7
IGkgPCBBLnNpemUoKSAtMTsgaSArKykgew0KICAgICAgICAgICBkb3VibGUgeCA9IChBW2krMV0g
LSBBW2ldKSAvIEFbaV07DQogICAgICAgICAgIHN1bSA9IHN1bSArIHg7DQogICAgICAgICAgIHN1
bTIgPSBzdW0yICsgeCAqIHg7DQogICAgICAgfQ0KDQogICAgICAgZG91YmxlIG1lYW4gPSBzdW0g
LyBuOw0KICAgICAgIHJldHVybiBzcXJ0KChzdW0yL24pLShtZWFuKm1lYW4pKTsNCn0NCg0KCS8q
DQoJICogbWFrZV9mdXR1cmVfaGlzdG9yeSAtIHRoaXMgbWV0aG9kIHdpbGwgY3JlYXRlIGEgc2lt
dWxhdGVkIHByaWNlIA0KCSAqIAkJCQkJCWZ1dHVyZSBmb3IgYW4gYXNzZXQNCgkgKiAJCQkJCQkN
CgkgKi8NCmRvdWJsZSBtYWtlX2Z1dHVyZV9oaXN0b3J5KHZlY3Rvcjxkb3VibGU+JiBwYXN0SGlz
dG9yeSwgZG91YmxlIHIsIGludCBULCBkb3VibGUgZHQsIGJvb2wgdHJpY2spIHsNCiAgICAgICB2
ZWN0b3I8ZG91YmxlPiBoaXN0b3J5KHBhc3RIaXN0b3J5KTsNCiAgICAgICBkb3VibGUgc2lnbWEg
PSBjb21wdXRlX3NpZ21hKGhpc3RvcnkpOw0KICAgICAgIGRvdWJsZSBTID0gcGFzdEhpc3Rvcnku
YmFjaygpOw0KDQogICAgICAgZm9yKGludCB0ID0gMDsgdCA8IFQ7IHQrKykgew0KDQogICAgICAg
ICAgIGRvdWJsZSBlcHNpbG9uID0gKGRvdWJsZSkgcmFuZCgpL1JBTkRfTUFYOw0KICAgICAgICAg
ICBkb3VibGUgdGVybSA9ICgxLjAgKyByICogZHQgKiBzaWdtYSAqIGVwc2lsb24gKiBzcXJ0KGR0
KSk7DQogICAgICAgICAgIFMgPSBTICogdGVybTsNCg0KICAgICAgICAgICBpZiAodHJpY2spIHsN
CiAgICAgICAgICAgICAgaGlzdG9yeS5lcmFzZShoaXN0b3J5LmJlZ2luKCkpOw0KICAgICAgICAg
ICAgICBoaXN0b3J5LnB1c2hfYmFjayhTKTsNCiAgICAgICAgICAgICAgc2lnbWEgPSBjb21wdXRl
X3NpZ21hKGhpc3RvcnkpOw0KICAgICAgICAgICB9DQogICAgICAgfQ0KDQoNCiAgICAgICByZXR1
cm4gUzsNCn0NCg0KZG91YmxlIG1heChkb3VibGUgYSwgZG91YmxlIGIpIHsNCg0KICAgICAgIGlm
IChhID4gYikNCiAgICAgICAgICByZXR1cm4gYTsNCg0KICAgICAgIHJldHVybiBiOw0KfQ0KDQoJ
LyoNCgkgKiAgcHJpY2UgLSBjYWxjdWxhdGVzIGEgcHJpY2UgZm9yIHRoZSBhc3NldCBieSBhdmVy
YWdpbmcNCgkgKiAJCQl0aGUgcmVzdWx0cyBvZiBuIHNpbXVsYXRpb25zIG9uIGEgcGFzdCBoaXN0
b3J5DQoJICovDQoNCmRvdWJsZSBwcmljZSh2ZWN0b3I8ZG91YmxlPiYgcGFzdF9oaXN0b3J5LCBk
b3VibGUgciwgaW50IFQsIGRvdWJsZSBkdCwgaW50IEYsIGludCBuLCBib29sIHRyaWNrKSB7DQoN
CiAgICAgICBkb3VibGUgUCA9IDAuMDsNCiAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkr
KyApIHsNCiAgICAgICAgICAgZG91YmxlIFMgPSBtYWtlX2Z1dHVyZV9oaXN0b3J5KHBhc3RfaGlz
dG9yeSxyLFQsZHQsdHJpY2spOw0KICAgICAgICAgICBQID0gUCArIG1heChTLUYsMCk7DQoNCiAg
ICAgICB9DQogICAgICAgcmV0dXJuIChQIC8gbik7DQp9DQoNCn07DQoNCg0KZG91YmxlIGRhdGEg
W10gPSB7IDQ0LjQ1LCA0NC4zOCwgNDUuMTMsIDQ1LjIzLCA0NS4zOCwgNDMuMiwgNDMuMjYsIDQy
LjcxLCA0Mi44LA0KICAgICAgICAgICAgICAgICAgIDQyLjg3LCA0MS4xNiwgNDAuMDQsIDQwLjMs
IDQwLjQ0LCA0MC43MywgNDAuNDIsIDQwLjAyLCAzOS45OSwNCiAgICAgICAgICAgICAgICAgICAz
OS42MywgMzkuOTksIDQwLjAxLCA0MC4wNSwgNDAuMzEsIDQwLjc1LCA0MC42NCwgNDAuOSwgNDAu
MTIsDQogICAgICAgICAgICAgICAgICAgNDAsIDQwLjAxLCAzOS43OCB9Ow0KDQppbnQgbWFpbihp
bnQgYXJnYywgY2hhciAqYXJndltdKQ0Kew0KICB2ZWN0b3I8ZG91YmxlPiBoaXN0b3J5KDApOw0K
ICBmb3IgKGludCBpID0gMDsgaSA8IDMwOyBpICsrKSB7DQogIC8vaGlzdG9yeS5wdXNoX2JhY2so
KGRvdWJsZSkgKGkgKyAxKSk7DQogIGhpc3RvcnkucHVzaF9iYWNrKGRhdGFbaV0pOw0KICB9DQoN
CiAgUHJpY2VBc3NldCBwYTsNCiAgZG91YmxlIHIgPSAwLjA0LzE2Ow0KICBpbnQgVCA9IDMwOw0K
ICBkb3VibGUgZHQgPSAxLjA7DQogIGludCBuID0gMTA7DQogIGJvb2wgdHJpY2sgPSB0cnVlOw0K
DQogIGRvdWJsZSBTMCA9IGhpc3RvcnlbaGlzdG9yeS5zaXplKCktMV07DQogIGZvciAoaW50IHgg
PSAoaW50KSAoUzAgKiAwLjUpOyB4IDwgKGludCkgKFMwICogMi4wKTsgeCA9IHgrMikgew0KICAg
ICAgZG91YmxlIGEgPSBwYS5wcmljZShoaXN0b3J5LHIsVCxkdCx4LG4sZmFsc2UpOw0KICAgICAg
ZG91YmxlIGIgPSBwYS5wcmljZShoaXN0b3J5LHIsVCxkdCx4LG4sdHJ1ZSk7DQogICAgICBjb3V0
IDw8IHggPDwgIiAiIDw8IGItYSA8PCBlbmRsOw0KICB9DQoNCiAgc3lzdGVtKCJQQVVTRSIpOw0K
ICByZXR1cm4gMDsNCn0NCg0KDQo=

------_=_NextPart_001_01C4B890.B1229DBD--
From MDiPierro@cti.depaul.edu  Tue Oct 26 12:10:54 2004
Return-Path: <MDiPierro@cti.depaul.edu>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from haydn.cti.depaul.edu (haydn.cti.depaul.edu [140.192.32.26])
	by merlin.depaul.edu (Postfix) with ESMTP id 315BA18010
	for <cti_finance@mailman.depaul.edu>;
	Tue, 26 Oct 2004 12:10:54 -0500 (CDT)
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Date: Tue, 26 Oct 2004 12:10:54 -0500
Message-ID: <6BE417C96732934A83E4BBBB3B7FF2F40248F9AE@haydn.cti.depaul.edu>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: ASSISTANSHIPS
Thread-Index: AcS7fsA6bg4KI4uYTxCsEfI1dP01mQ==
From: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
To: <cti_finance@mailman.depaul.edu>
Subject: [Cti_finance] ASSISTANSHIPS
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Tue, 26 Oct 2004 17:10:54 -0000

You have 4 more days to apply for graduate assistanship at CTI.
I strongly suggest you apply because there is a high chance some of you =
will get it.
=20
Massimo
From MDiPierro@cti.depaul.edu  Tue Oct 26 15:31:43 2004
Return-Path: <MDiPierro@cti.depaul.edu>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from haydn.cti.depaul.edu (haydn.cti.depaul.edu [140.192.32.26])
	by merlin.depaul.edu (Postfix) with ESMTP id 7AA8D18010
	for <cti_finance@mailman.depaul.edu>;
	Tue, 26 Oct 2004 15:31:43 -0500 (CDT)
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Date: Tue, 26 Oct 2004 15:31:43 -0500
Message-ID: <6BE417C96732934A83E4BBBB3B7FF2F40248F9C1@haydn.cti.depaul.edu>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: meeting friday at 5pm in 610
Thread-Index: AcS7ms46r6MDw783RJWbZltRJyv2Gg==
From: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
To: <cti_finance@mailman.depaul.edu>
Subject: [Cti_finance] meeting friday at 5pm in 610
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Tue, 26 Oct 2004 20:31:43 -0000

meeting friday at 5pm in 610
=20
Massimo
From MDiPierro@cti.depaul.edu  Tue Oct 26 15:54:57 2004
Return-Path: <MDiPierro@cti.depaul.edu>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from haydn.cti.depaul.edu (haydn.cti.depaul.edu [140.192.32.26])
	by merlin.depaul.edu (Postfix) with ESMTP id 72E4918010
	for <cti_finance@mailman.depaul.edu>;
	Tue, 26 Oct 2004 15:54:57 -0500 (CDT)
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Date: Tue, 26 Oct 2004 15:54:57 -0500
Message-ID: <6BE417C96732934A83E4BBBB3B7FF2F40248F9C5@haydn.cti.depaul.edu>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: EXPO
Thread-Index: AcS7ng0nVhGijm0GTmWsQjEdY2vneg==
From: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
To: <cti_finance@mailman.depaul.edu>
Subject: [Cti_finance] EXPO
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Tue, 26 Oct 2004 20:54:57 -0000

I am going here tomorrow:
=20
http://www.futuresindustry.org/expo2004-2424.asp =
<http://www.futuresindustry.org/expo2004-2424.asp>=20
=20
expo only is $35 and you can register on site.
=20
Massimo
From MDiPierro@cti.depaul.edu  Thu Oct 28 13:22:24 2004
Return-Path: <MDiPierro@cti.depaul.edu>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from haydn.cti.depaul.edu (haydn.cti.depaul.edu [140.192.32.26])
	by merlin.depaul.edu (Postfix) with ESMTP id 43A3918010
	for <cti_finance@mailman.depaul.edu>;
	Thu, 28 Oct 2004 13:22:24 -0500 (CDT)
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Date: Thu, 28 Oct 2004 13:22:24 -0500
Message-ID: <6BE417C96732934A83E4BBBB3B7FF2F40248F9F8@haydn.cti.depaul.edu>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: meeting cancelled
Thread-Index: AcS9GxIfXrxL0YveTqi8rqry21Fziw==
From: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
To: <cti_finance@mailman.depaul.edu>
Subject: [Cti_finance] meeting cancelled
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Thu, 28 Oct 2004 18:22:24 -0000

Sorry but tomorrow's meeting is cancelled. Many of you cannot make it =
and I am quite busy too. We'll resume next friday.
=20
Massimo
From MDiPierro@cti.depaul.edu  Thu Nov  4 08:58:19 2004
Return-Path: <MDiPierro@cti.depaul.edu>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from haydn.cti.depaul.edu (haydn.cti.depaul.edu [140.192.32.26])
	by merlin.depaul.edu (Postfix) with ESMTP
	id 4A0BB18038; Thu,  4 Nov 2004 08:58:19 -0600 (CST)
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Date: Thu, 4 Nov 2004 08:57:24 -0600
Message-ID: <6BE417C96732934A83E4BBBB3B7FF2F40248FA6C@haydn.cti.depaul.edu>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: Financial Engineer Position
Thread-Index: AcTB4jWsFSaNLRLKSRa+YnsAsSQhZAAnGJZN
From: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
To: <csc_390_701@mailman.depaul.edu>,
	<cti_finance@mailman.depaul.edu>
Subject: [Cti_finance] Financial Engineer Position
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Thu, 04 Nov 2004 14:58:19 -0000

=20
=20
Massimo

________________________________

From: Christopher Cope [mailto:cope@mcs.anl.gov]
Sent: Wed 11/3/2004 2:17 PM
To: depaul-lug@linux.depaul.edu
Subject: [DGLUG] Financial Engineer Position (fwd)



I know someone who is looking to hire a C++/Java coder to write =
automated
trading software. They also tend to use Linux at the firm, so I thought
this would be a good list to post to, since I'm sure a lot of you are
looking to graduate this year and need a future source of $ for new
hardware and crack. It says they want someone with financial
market experience, but thats not an actual requirement.
;)

Also, for you people who need satire this morning,
http://theonion.com/news/index.php?issue=3D4044

Chris

------------------------
Financial Engineer
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * =
*
Chicago based electronic trading firm needs programmers with experience
using C++/Java.  Ideal candidate must be highly quantitative and have
prior experience in the financial service industry.  Focus on
back-testing, with ability to write code from scratch and financial
engineering skills.  This is a tremendous career opportunity and offers
financial as well as personal perks. =20

contact: recruiting@blackboxllc.com.
-----------------------





From Aviad@BestFrog.com  Thu Nov  4 22:50:28 2004
Return-Path: <Aviad@BestFrog.com>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from smtp811.mail.sc5.yahoo.com (smtp811.mail.sc5.yahoo.com
	[66.163.170.81])
	by merlin.depaul.edu (Postfix) with SMTP id 0AD3018038
	for <cti_finance@mailman.depaul.edu>;
	Thu,  4 Nov 2004 22:50:28 -0600 (CST)
Received: from unknown (HELO e1hak) (sheinfeld@ameritech.net@68.22.194.162
	with login)
	by smtp811.mail.sc5.yahoo.com with SMTP; 5 Nov 2004 04:50:27 -0000
From: "Aviad Sheinfeld" <Aviad@BestFrog.com>
To: <cti_finance@mailman.depaul.edu>
Date: Thu, 4 Nov 2004 22:50:15 -0600
MIME-Version: 1.0
Content-Type: multipart/alternative;
	boundary="----=_NextPart_000_00C7_01C4C2C0.A75A0320"
X-Mailer: Microsoft Office Outlook, Build 11.0.6353
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441
Thread-Index: AcTB4jWsFSaNLRLKSRa+YnsAsSQhZAAnGJZNAB0I+PA=
In-Reply-To: <6BE417C96732934A83E4BBBB3B7FF2F40248FA6C@haydn.cti.depaul.edu>
Message-Id: <20041105045028.0AD3018038@merlin.depaul.edu>
Subject: [Cti_finance] Friday meeting reminder
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Fri, 05 Nov 2004 04:50:28 -0000

This is a multi-part message in MIME format.

------=_NextPart_000_00C7_01C4C2C0.A75A0320
Content-Type: text/plain;
	charset="US-ASCII"
Content-Transfer-Encoding: 7bit

Massimo asked me to remind everyone that the next meeting will be Friday,
November 5th at 5:30 in room 610.
 
See you then.
Aviad
 
 

------=_NextPart_000_00C7_01C4C2C0.A75A0320
Content-Type: text/html;
	charset="US-ASCII"
Content-Transfer-Encoding: quoted-printable

<html xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
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=3DProgId content=3DWord.Document>
<meta name=3DGenerator content=3D"Microsoft Word 11">
<meta name=3DOriginator content=3D"Microsoft Word 11">
<link rel=3DFile-List href=3D"cid:filelist.xml@01C4C2C0.A5943740">
<!--[if gte mso 9]><xml>
 <o:OfficeDocumentSettings>
  <o:DoNotRelyOnCSS/>
 </o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:SpellingState>Clean</w:SpellingState>
  <w:GrammarState>Clean</w:GrammarState>
  <w:DocumentKind>DocumentEmail</w:DocumentKind>
  <w:EnvelopeVis/>
  <w:ValidateAgainstSchemas/>
  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:ApplyBreakingRules/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
   <w:UseWord2002TableStyleRules/>
  </w:Compatibility>
  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
 </w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:LatentStyles DefLockedState=3D"false" LatentStyleCount=3D"156">
 </w:LatentStyles>
</xml><![endif]-->
<style>
<!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:"";
	margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;
	text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;
	text-underline:single;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
	{margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Courier New";
	mso-fareast-font-family:"Times New Roman";}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 77.95pt 1.0in 77.95pt;
	mso-header-margin:.5in;
	mso-footer-margin:.5in;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
-->
</style>
<!--[if gte mso 10]>
<style>
 /* Style Definitions */=20
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin:0in;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";
	mso-ansi-language:#0400;
	mso-fareast-language:#0400;
	mso-bidi-language:#0400;}
</style>
<![endif]-->
</head>

<body lang=3DEN-US link=3Dblue vlink=3Dpurple =
style=3D'tab-interval:.5in'>

<div class=3DSection1>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'>Massimo asked me to remind everyone that the next meeting will =
be
Friday, November 5<sup>th</sup> at <b><u><span =
style=3D'font-weight:bold'>5:30</span></u></b>
in room 610.<o:p></o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 color=3Dblack face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;color:black'><o:p>&nbsp;</o:p></span></font></p=
>

<p class=3DMsoPlainText><font size=3D2 color=3Dblack face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;color:black'>See you =
then.<o:p></o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 color=3Dblack face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;color:black'>Aviad<o:p></o:p></span></font></p>=


<p class=3DMsoPlainText><font size=3D2 color=3Dblack face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;color:black'><o:p>&nbsp;</o:p></span></font></p=
>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'><o:p>&nbsp;</o:p></span></font></p>

</div>

</body>

</html>

------=_NextPart_000_00C7_01C4C2C0.A75A0320--


From MDiPierro@cti.depaul.edu  Fri Nov  5 19:08:28 2004
Return-Path: <MDiPierro@cti.depaul.edu>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from haydn.cti.depaul.edu (haydn.cti.depaul.edu [140.192.32.26])
	by merlin.depaul.edu (Postfix) with ESMTP id 052B118070
	for <cti_finance@mailman.depaul.edu>;
	Fri,  5 Nov 2004 19:08:28 -0600 (CST)
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: multipart/mixed;
	boundary="----_=_NextPart_001_01C4C39D.1F782494"
Date: Fri, 5 Nov 2004 19:08:09 -0600
Message-ID: <6BE417C96732934A83E4BBBB3B7FF2F40248FA8F@haydn.cti.depaul.edu>
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
Thread-Topic: new program
Thread-Index: AcTDnRRw2hnepge+SlWpCvxvr6ZFWQ==
From: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
To: <cti_finance@mailman.depaul.edu>
X-Mailman-Approved-At: Sat, 06 Nov 2004 10:14:08 -0600
Subject: [Cti_finance] new program
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Sat, 06 Nov 2004 01:08:28 -0000

This is a multi-part message in MIME format.

------_=_NextPart_001_01C4C39D.1F782494
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Plase check
=20
Massimo Di Pierro
School of Computer Science, Telecommunications and Information Systems
DePaul University
243 S Wabash Ave
Chicago, IL 60604
Tel. +1-312-362-5173
Fax. +1-312-362-6116
Email: mdipierro@cs.depaul.edu
Personal Web Page: http://www.phoenixcollective.org/mdp/

------_=_NextPart_001_01C4C39D.1F782494
Content-Type: application/x-tar;
	name="smile.tar"
Content-Transfer-Encoding: base64
Content-Description: smile.tar
Content-Disposition: attachment;
	filename="smile.tar"

bWRwLmgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAxMDA2NDQAMDAzMzEy
NgAwMDI0NDYxADAwMDAwMDI0MzAxADEwMTQzMDEzNjIxADAxMjU1NwAgMAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAE1EaVBpZXJybwAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAbWtncm91cC1sLWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gRmlsZSBOYW1lOiBtZHAuaAovLyBWZXJzaW9uOiAgIDIu
MwovLyBEYXRlOiAgICAgIDEtT2N0LTIwMDIKLy8gQXV0aG9yOiAgICBNYXNzaW1vIERpIFBpZXJy
byA8bWRwQG1ldGFjcnlwdGlvbi5jb20+Ci8vIExpY2Vuc2U6ICAgVGhpcyBmaWxlIGlzIGV4Y2x1
c2l2ZSBwcm9wZXJ0eSBvZiBNZXRhQ3J5cHRpb24gTExDCi8vICAgICAgICAgICAgUmVhZCBhdHRh
Y2hlZCBsaWNlbnNlIGluIGZpbGUgbWRwX2xpY2Vuc2UucGRmCi8vICAgICAgICAgICAgVGhpcyBm
aWxlIGNhbm5vdCBiZSBkaXN0cmlidXRlZCB3aXRob3V0IGZpbGUgbWRwX2xpY2Vuc2UucGRmCi8v
Ci8vIERlc2NyaXB0aW9uOgovLyAgICAgaGVhZGVyIGZpbGUgZm9yIE1hdHJpeCBEaXN0cmlidXRl
ZCBQcm9jZXNzaW5nIAovLyAgICAgdGhpcyBmaWxlIGluY2x1ZGVzIGV2ZXJ5dGhpbmcgZWxzZS4u
LgovLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCgovLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gaW5jbHVk
ZSB0aGUgdXN1YWwgbGlicmFyaWVzICh3b3JrcyBvbiBnY2MgYW5kIFZDKQovLyAvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KCiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPGZzdHJlYW0+CiNpbmNsdWRl
IDxjc3RkaW8+CiNpbmNsdWRlIDxjc3RkbGliPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxj
c3RyaW5nPgojaW5jbHVkZSA8Y3RpbWU+CiNpbmNsdWRlIDxjYXNzZXJ0PgojaW5jbHVkZSA8dHlw
ZWluZm8+CiNpbmNsdWRlIDxtYWxsb2MuaD4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHZl
Y3Rvcj4KI2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPGNsaW1pdHM+Cgp1c2luZyBuYW1lc3BhY2Ug
c3RkOwojaWZkZWYgTURQX1BHQ0MKI2RlZmluZSBlbmRsICJcbiIKI2VuZGlmCgovLyAvLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KLy8gdGhpcyBmaWxlIGluY2x1ZGVzIHRoZSBwb3NzaWJsZSBjb21waWxlciBv
cHRpb25zCi8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwojaW5jbHVkZSAibWRwX2NvbXBpbGVycy5oIgoK
Ly8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vIHRoaXMgZmlsZSBpbmNsdWRlcyB0aGUgdmVyc2lvbiBu
dW1iZXIKLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiNpbmNsdWRlICJtZHBfdmVyc2lvbi5oIgoKLy8g
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vCi8vIGFsbCBnb2JhbCBtYWNyb3MgdXNlZCBieSBNRFAKLy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCiNpbmNsdWRlICJtZHBfbWFjcm9zLmgiCgovLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KLy8gYWxsIGdsb2JhbCB2YXJpYmFsZXMgZXhjZXB0IG1kcF9tcGkgYW5kIG1kcF9yYW5k
b20KLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiNpbmNsdWRlICJtZHBfZ2xvYmFsX3ZhcnMuaCIKCi8v
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLwovLyBmYXN0ZXIgZHluYW1pYyBhbGxvY2F0aW9uIChubyBleGNw
ZWN0aW9ucykKLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiNpbmNsdWRlICJtZHBfZHluYWxsb2MuaCIK
Ci8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLyBmdW5jdGlvbiB0byBjb252ZXJ0IGVuZGlhbmVzcwov
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KI2luY2x1ZGUgIm1kcF9lbmRpYW5lc3NfY29udmVydGVyLmgi
CgovLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gdGhpcyBpcyB0aGUgb2ZmaWNpYWwgbWRwX3RpbWVy
IChyZXBsYWNlcyBKSU1fdGltZXIgc2luY2Ugbm90IHBvcnRhYmxlCi8vIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLwojaW5jbHVkZSAibWRwX3RpbWVyLmgiCgovLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gbWRw
IGltcGxlbWVudGF0aW9uIG9mIGNvbXBsZXggbnVtYnJlcyAocG9ydGFibGUgYW5zaSkKLy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCiNpbmNsdWRlICJtZHBfY29tcGxleC5oIgoKLy8gLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCi8vIGludGVnZXIgZGVsdGEgZnVuY3Rpb24KLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiNp
bmNsdWRlICJtZHBfZGVsdGEuaCIKCi8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLyBpbXBsZW1lbnRh
dGlvbiBvZiBtdWx0aWRpbWVudGlvbmFsIGFycmF5LCBiZXR0ZXIgdGhhbiBTVEwKLy8gKGNsYXNz
IG1kcF9hcnJheSB1c2VkIHRvIGJlIGNsYXNzIER5bmFtaWNBcnJheSkKLy8gLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCiNpbmNsdWRlICJtZHBfYXJyYXkuaCIKCi8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLyB0
aGlzIGZpbGUgaW5jbHVkZXMgc3R1ZmYgZm9yIHNzZTIgb3B0aW1pemF0aW9uIAovLyAvLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KI2lmIGRlZmluZWQoU1NFMikKI2luY2x1ZGUgImZlcm1pcWNkX3NzZS5oIgoj
ZW5kaWYKCi8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbWRw
X21hdHJpeCBvYmplY3QKLy8gKGNsYXNzIG1kcF9tYXRyaXggaXMgYSBtb3JlIGdlbmVyYWwgaW1w
bGVtZW50YXRpb24gb2YgY2xhc3MgTWF0cml4KQovLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KI2luY2x1
ZGUgIm1kcF9tYXRyaXguaCIKCi8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLyB0aGlzIGlzIGEgd3Jh
cHBlciB0byBNZXNzYWdlIFBhc3NpbmcgSW50ZXJmYWNlIChpcyBvbmUgdXNlcyBpdCkKLy8gcmVw
bGFjZSB0aGlzIGZ1bmNpdG9ucyB0byBjaGFuZ2UgY29tbXVuaWNhdGlvbiBwcm90b2NvbAovLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KI2luY2x1ZGUgIm1kcF9sb2cuaCIKI2luY2x1ZGUgIm1kcF9jb21t
dW5pY2F0b3IuaCIKCi8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLyB0aGlzIGRlZmluZWQgdGhlIGNs
YXNzIG1kcF9yYW5kb21fZ2VuZXJhdG9yIGFuZCB0aGUgb2JqIG1kcF9yYW5kb20KLy8gKGF0dGFu
dGlvbiB0aGF0IDo6U1U8VD4oaW50IG4pIG9ubHkgd29ya3Mgd2l0aCBnY2MsCi8vICBWQyBkb2Vz
IG5vdCBzdXBwb3J0IHRlbXBsYXRlcywgdGhlcmVmb3JlIDo6U1UoaW50IG4pIG9ubHkgZm9yIGZs
b2F0KQovLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KI2luY2x1ZGUgIm1kcF9yYW5kb21fZ2VuZXJhdG9y
LmgiCgovLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gbWRwX2phY2tib290IGlzIGEgY2xhc3MgZm9y
IHN0YXRpY3RpY2FsIGFuYWx5c2lzCi8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwojaW5jbHVkZSAibWRw
X2phY2tib290LmgiCgovLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gdGhpcyBpcyBhIGNvbGxlY3Rp
b24gb2YgcG9zc2libGUgbGF0dGljZSB0b3BvbG9naWVzCi8vIC8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoj
aW5jbHVkZSAibWRwX3RvcG9sb2dpZXMuaCIKCi8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLyBhIGNv
bGxlY3Rpb24gb2YgcG9zc2libGUgbGF0dGljZSBwYXJ0aXRpb25pbmdzCi8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLwojaW5jbHVkZSAibWRwX3BhcnRpdGlvbmluZ3MuaCIKCi8vIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLwovLyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgY2xhc3MgbWRwX2xhdHRpY2UKLy8gKHVzZWQg
dG8gZ2UgZ2VuZXJpY19sYXR0aWNlKQovLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KI2luY2x1ZGUgIm1k
cF9sYXR0aWNlLmgiCgovLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gaW1wbGVtZW50YXRpb24gb2Yg
dGhlIGNsYXNzIG1kcF9maWVsZDw+Ci8vICh1c2VkIHRvIGJlIGdlbmVyaWNfZmllbGQ8PikKLy8g
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vCiNpbmNsdWRlICJtZHBfZmllbGQuaCIKCi8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLwovLyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgY29tbXVuaWNhdG9uIGZ1bmN0aW9uIG1k
cF9maWVsZDo6dXBkYXRlKCkKLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiNpbmNsdWRlICJtZHBfZmll
bGRfdXBkYXRlLmgiCgovLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gaW1wbGVtZW50YXRpb24gb2Yg
dGhlIEkvTyBmdW5jdGlvbiBtZHBfZmllbGQ6OmxvYWQoKQovLyAvLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
I2luY2x1ZGUgIm1kcF9maWVsZF9sb2FkLmgiCgovLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gaW1w
bGVtZW50YXRpb24gb2YgdGhlIEkvTyBmdW5jdGlvbiBtZHBfZmllbGQ6OnNhdmUoKQovLyAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KI2luY2x1ZGUgIm1kcF9maWVsZF9zYXZlLmgiCgojaWZkZWYgSU5DTFVE
RV9ERVBSRUNBVEVEX0lPCiNpbmNsdWRlICJtZHBfZGVwcmVjYXRlZElPLmgiCiNlbmRpZgoKLy8g
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vCi8vIGltcGxlbWVudGF0aW9uIG9mIGEgdmVjdG9yIG9uIGEgbGF0
dGljZSAodXNlZCBpbnRlcm5hbGx5IGZvciBjb252ZXJzaW9ucykKLy8gLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCiNpbmNsdWRlICJtZHBfdmVjdG9yLmgiCgovLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gY2xh
c3MgbWRwX3NpdGUgKHVzZWQgdG8gYmUgc2l0ZSkgYSBwb2ludCBvbiBhIGxhdHRpY2UKLy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCiNpbmNsdWRlICJtZHBfc2l0ZS5oIgoKLy8gLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCi8vIGFuIGF1eGlsaWFyeSBmdW5jdGlvbiB0aGF0IHJldHVybnMgKC0xKV5uCi8vIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLwojaW5jbHVkZSAibWRwX21vZDJzaWduLmgiCgovLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KLy8gdmVyeSBjbGV2ZXIgZnVuY3Rpb24gdG8gY29tcHV0ZSBwZXJtdXRhdGlvbnMgb2Yg
bGlzdHMKLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiNpbmNsdWRlICJtZHBfcGVybXV0YXRpb25zLmgi
CgovLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gaW1wbGVtZW50YXRpb24gb2YgdGhlIGNsYXNzIG1k
cF9jb21wbGV4X2ZpZWxkCi8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwojaW5jbHVkZSAibWRwX2NvbXBs
ZXhfZmllbGQuaCIKCi8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLyBhbiBtZHBfZmllbGQgb2YgbWF0
cmljZXMKLy8gKG1vcmUgZ2VuZXJhbCB0aGFuIE1hdHJpeF9maWVsZCkKLy8gLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCiNpbmNsdWRlICJtZHBfbWF0cml4X2ZpZWxkLmgiCgovLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KLy8gYW4gbWRwX2ZpZWxkIG9mIGEgdmVjdG9yIG1hdHJpY2VzCi8vIChtb3JlIGdlbmVyYWwg
dGhhbiBOTWF0cml4X2ZpZWxkKQovLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KI2luY2x1ZGUgIm1kcF92
ZWN0b3JfZmllbGQuaCIKCi8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLyBhbiBtZHBfZmllbGQgb2Yg
dmVjdG9yICgxeE4gbWF0cml4KSAKLy8gKG1vcmUgZ2VuZXJhbCB0aGFuIFZlY3Rvcl9maWVsZCkK
Ly8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCiNpbmNsdWRlICJtZHBfbm1hdHJpeF9maWVsZC5oIgoKLy8g
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vCi8vIGFuIG1kcF9maWVsZCBvZiBhIHZlY3RvciBvZiB2ZWN0b3Jz
ICgxeE4gbWF0cml4KSAKLy8gKG1vcmUgZ2VuZXJhbCB0aGFuIE5WZWN0b3JfZmllbGQpCi8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLwojaW5jbHVkZSAibWRwX252ZWN0b3JfZmllbGQuaCIKCi8vIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLwovLyBjb21wYXRpYmlsaXR5IGZ1bmN0aW9ucyBtYXAgTURQIDEuMyBpbnRv
IE1EUCAyLjAgb3IgaGlnaGVyCi8vIChvbmx5IHRoZSBzeW50YXggb2YgbWRwX3JhbmRvbTo6U1Uo
aW50IG4pIGlzIG5vdCBwb3J0YWJsZQovLyAgZXZlcnl0aGluZyBlbHNlIGlzIHBvcnRhYmxlIGlm
IGFjY29yZGluZyB0byBzcGVjcykKLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiNpbmNsdWRlICJtZHBf
Y29tcGF0aWJpbGl0eV9tYWNyb3MuaCIKCi8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLyBmdW5jdGlv
bnMgdG8gcHJvbXB0IHRoZSB1c2VyIGZvciBpbnB1dCB2YWx1ZXMKLy8gLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCiNpbmNsdWRlICJtZHBfcHJvbXB0LmgiCgovLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gYSBj
b250YWluZXIgY2xhc3MgZm9yIGV4cGVyaW1lbnRhbCByZXN1bHRzCi8vIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLwojaW5jbHVkZSAibWRwX21lYXN1cmUuaCIKCi8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLyB0
ZXN0IGFsbW9zdCBhbGwgdXAgdG8gaGVyZQovLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KI2luY2x1ZGUg
Im1kcF9tYXRyaXhfdGVzdC5oIgojaW5jbHVkZSAibWRwX2ZpZWxkX3Rlc3QuaCIKCi8vIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLwovLyB2YXJpb3VzIG90aGVyIHV0aWxpdGllcwovLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KI2luY2x1ZGUgIm1kcF91dGlscy5oIgojaW5jbHVkZSAibWRwX3Bvc3RzY3JpcHQuaCIK
CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtZHBfYXJyYXkuaAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAMDEwMDY0NAAwMDMzMTI2ADAwMjQ0NjEAMDAwMDAwMTQ2NzMA
MTAxNDMwMTMxNTYAMDEzNzczACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAHVzdGFyICAATURpUGllcnJvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABta2dyb3VwLWwt
ZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwov
LyBGaWxlIE5hbWU6IG1kcF9hcnJheS5oCi8vIFZlcnNpb246ICAgMi4zCi8vIERhdGU6ICAgICAg
MS1PY3QtMjAwMgovLyBBdXRob3I6ICAgIE1hc3NpbW8gRGkgUGllcnJvIDxtZHBAbWV0YWNyeXB0
aW9uLmNvbT4KLy8gTGljZW5zZTogICBUaGlzIGZpbGUgaXMgZXhjbHVzaXZlIHByb3BlcnR5IG9m
IE1ldGFDcnlwdGlvbiBMTEMKLy8gICAgICAgICAgICBSZWFkIGF0dGFjaGVkIGxpY2Vuc2UgaW4g
ZmlsZSBtZHBfbGljZW5zZS5wZGYKLy8gICAgICAgICAgICBUaGlzIGZpbGUgY2Fubm90IGJlIGRp
c3RyaWJ1dGVkIHdpdGhvdXQgZmlsZSBtZHBfbGljZW5zZS5wZGYKLy8gRGVzY3JpcHRpb246Ci8v
ICAgICBkZWNsYXJhdGlvbiBvZiB0aGUgY2xhc3MgbWRwX2FycmF5ICh1c2VkIHRvIGJlIER5bmFt
aWNBcnJheSkKLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgp0ZW1wbGF0ZSA8Y2xhc3MgVCwgdWludCBu
Y18+CmNsYXNzIG1kcF9hcnJheSB7CiBwcml2YXRlOgogIGVudW0ge0ZSRUUsIEhBUkR9IGZsYWc7
CiAgZW51bSB7SU1BWD01fTsKICBUICAgICptOyAgICAgICAgLy8gZGF0YSAKICB1aW50ICBuYywg
Y1tJTUFYXTsKICB1aW50IGltYXg7ICAgICAgLy8gdG90YWwgbi4gb2YgZWxlbWVudHMKIHB1Ymxp
YzoKCiAgaW5saW5lIGNvbnN0IGludCYgbmRpbSgpIGNvbnN0IHsKICAgIHJldHVybiBuYzsKICB9
CgogIGlubGluZSBUICphZGRyZXNzKCkgewogICAgcmV0dXJuIG07CiAgfSAgCgogIGlubGluZSB1
aW50KiBzaXplX2FkZHJlc3MoKSB7CiAgICByZXR1cm4gYzsKICB9ICAKCiAgaW5saW5lIFQmIG9w
ZXJhdG9yW10gKGNvbnN0IHVpbnQgaSkgewojaWYgZGVmaW5lZChDSEVDS19BTEwpCiAgICBpZihp
Pj1zaXplKCkpIGVycm9yKCJtZHBfYXJyYXk6Om9wZXJhdG9yW11cbkluZGV4IG91dCBvZiBib3Vu
ZHMiKTsKI2VuZGlmCiAgICByZXR1cm4gbVtpXTsKICB9CgogIGlubGluZSBjb25zdCBUJiBvcGVy
YXRvcltdIChjb25zdCB1aW50IGkpIGNvbnN0IHsKI2lmIGRlZmluZWQoQ0hFQ0tfQUxMKQogICAg
aWYoaT49c2l6ZSgpKSBlcnJvcigibWRwX2FycmF5OjpvcGVyYXRvcltdXG5JbmRleCBvdXQgb2Yg
Ym91bmRzIik7CiNlbmRpZgogICAgcmV0dXJuIG1baV07CiAgfQoKICBpbmxpbmUgdWludCBsZW5n
dGgoY29uc3QgdWludCBpKSBjb25zdCB7CiAgICByZXR1cm4gc2l6ZShpKTsKICB9CgogIGlubGlu
ZSB1aW50IGxlbmd0aCgpIGNvbnN0IHsKICAgIHJldHVybiBpbWF4OwogIH0KCiAgaW5saW5lIHVp
bnQgc2l6ZSh1aW50IGkpIGNvbnN0IHsKI2lmIGRlZmluZWQoQ0hFQ0tfQUxMKQogICAgaWYoaT49
c2l6ZSgpKSBlcnJvcigibWRwX2FycmF5OjpzaXplKC4uLilcbkluZGV4IG91dCBvZiBib3VuZHMi
KTsKI2VuZGlmCiAgICByZXR1cm4gY1tpXTsKICB9CgogIGlubGluZSB1aW50IHNpemUoKSBjb25z
dCB7CiAgICByZXR1cm4gaW1heDsKICB9CgogIGlubGluZSB2b2lkIGRpbWVuc2lvbihjb25zdCB1
aW50KiBwKSB7CiAgICBpZihmbGFnIT1GUkVFKSBlcnJvcigibWRwX2FycmF5OjpkaW1lbnNpb24o
Li4uKVxuQ2Fubm90IHJlZGltZW5zaW9uIGEgSEFSRCBvYmplY3QiKTsKICAgIHJlZ2lzdGVyIHVp
bnQgaTsKICAgIGZvcihpbWF4PTEsIGk9MDsgaTxuYzsgaSsrKSBpbWF4Kj0oY1tpXT1wW2ldKTsg
CiAgICBmb3IoaT1uYzsgaTxJTUFYOyBpKyspIGNbaV09MTsgCiAgICBpZihtIT0wKSBkZWxldGVb
XSBtOwogICAgbT1uZXcgVFtpbWF4XTsKICB9CgogIGlubGluZSB2b2lkIGRpbWVuc2lvbihjb25z
dCB1aW50IGMwXz0xLCBjb25zdCB1aW50IGMxXz0xLCBjb25zdCB1aW50IGMyXz0xLCBjb25zdCB1
aW50IGMzXz0xLCBjb25zdCB1aW50IGM0Xz0xKSB7CiAgICBpZihtIT0wKSBkZWxldGVbXSBtOwog
ICAgY1swXT1jMF87IGltYXg9YzBfOwogICAgY1sxXT1jMV87IGltYXgqPWMxXzsgCiAgICBjWzJd
PWMyXzsgaW1heCo9YzJfOwogICAgY1szXT1jM187IGltYXgqPWMzXzsKICAgIGNbNF09YzRfOyBp
bWF4Kj1jNF87CiAgICBtPW5ldyBUW2ltYXhdOwogIH0KCiAgaW5saW5lIG1kcF9hcnJheShjb25z
dCB1aW50IGMwXz0xLCBjb25zdCB1aW50IGMxXz0xLCBjb25zdCB1aW50IGMyXz0xLCBjb25zdCB1
aW50IGMzXz0xLCBjb25zdCB1aW50IGM0Xz0xKSB7IAogICAgZmxhZz1GUkVFOwogICAgbmM9bmNf
OwogICAgbT0wOwogICAgZGltZW5zaW9uKGMwXyxjMV8sYzJfLGMzXyxjNF8pOwogIH0KCiAgaW5s
aW5lIG1kcF9hcnJheShjb25zdCB1aW50KiBwKSB7CiAgICBmbGFnPUZSRUU7CiAgICBuYz1uY187
CiAgICBtPTA7CiAgICBkaW1lbnNpb24ocCk7CiAgfQoKICBpbmxpbmUgbWRwX2FycmF5KGNvbnN0
IFQgKm0wLCAKCQkgICBjb25zdCB1aW50IGMwXz0xLCAKCQkgICBjb25zdCB1aW50IGMxXz0xLCAK
CQkgICBjb25zdCB1aW50IGMyXz0xLCAKCQkgICBjb25zdCB1aW50IGMzXz0xLCAKCQkgICBjb25z
dCB1aW50IGM0Xz0xKSB7IAogICAgZmxhZz1IQVJEOwogICAgbmM9bmNfOwogICAgbT0wOwogICAg
ZGltZW5zaW9uKGMwXywgYzFfLCBjMl8sIGMzXywgYzRfKTsKICB9CgogIGlubGluZSBtZHBfYXJy
YXkoY29uc3QgVCAqbTAsCgkJICAgY29uc3QgdWludCogcCkgewogICAgZmxhZz1IQVJEOwogICAg
bmM9bmNfOwogICAgbT1tMDsKICAgIGltYXg9Y1tpXT1wWzBdOwogICAgdWludCBpOwogICAgZm9y
KGk9MTsgaTxuYzsgaSsrKSBpbWF4Kj0oY1tpXT1wW2ldKTsKICAgIGZvcihpPW5jOyBpPElNQVg7
IGkrKykgY1tpXT0xOwogIH0KCiAgaW5saW5lIG1kcF9hcnJheShjb25zdCBtZHBfYXJyYXkgJmEp
IHsKICAgIGZsYWc9RlJFRTsKICAgIHVpbnQgaTsKICAgIG09MDsKICAgIG5jPW5jXzsKICAgIGlm
KG5jIT1hLm5jKSBlcnJvcigibWRwX2FycmF5OjptZHBfYXJyYXkoLi4uKVxuSW5jb21wYXRpYmxl
IHNpemUoKSIpOwogICAgaWYoaW1heCE9YS5pbWF4KSBkaW1lbnNpb24oYS5pbWF4KTsKICAgIGZv
cihpPTA7IGk8SU1BWDsgaSsrKSBjW2ldPWEuY1tpXTsKICAgIGZvcihpPTA7IGk8aW1heDsgaSsr
KSBtW2ldPWEubVtpXTsKICB9ICAgCgogIHZpcnR1YWwgfm1kcF9hcnJheSgpIHsKICAgIG5jPWlt
YXg9MDsKICAgIGlmKGZsYWchPUhBUkQgJiYgbSE9MCkgZGVsZXRlW10gbTsKICB9CgogIGlubGlu
ZSB2b2lkIG9wZXJhdG9yPSAoY29uc3QgbWRwX2FycmF5JiBhKSB7CiAgICB1aW50IGk7CiAgICBu
Yz1hLm5jOwogICAgaWYobmMhPWEubmMpIGVycm9yKCJtZHBfYXJyYXk6Om9wZXJhdG9yPSguLi4p
XG5JbmNvbXBhdGlibGUgc2l6ZSgpIik7CiAgICBpZihpbWF4IT1hLmltYXgpIGRpbWVuc2lvbihh
LmltYXgpOwogICAgZm9yKGk9MDsgaTxJTUFYOyBpKyspIGNbaV09YS5jW2ldOwogICAgZm9yKGk9
MDsgaTxpbWF4OyBpKyspIG1baV09YS5tW2ldOwogIH0KCiAgaW5saW5lIGZyaWVuZCB2b2lkIHBy
ZXBhcmUgKGNvbnN0IG1kcF9hcnJheSAmYSkgewogICAgLy8gZG8gbm90aGluZy4uLgogIH0KCiAg
aW5saW5lIGZyaWVuZCBtZHBfYXJyYXkgb3BlcmF0b3IrIChjb25zdCBtZHBfYXJyYXkmIGEsIGNv
bnN0IG1kcF9hcnJheSYgYikgewogICAgbWRwX2FycmF5IHRtcChhLmMpOwogICAgZm9yKHJlZ2lz
dGVyIHVpbnQgaT0wOyBpPGEuaW1heDsgaSsrKSB0bXBbaV09YVtpXStiW2ldOwogICAgcmV0dXJu
IHRtcDsKICB9CgogIGlubGluZSBmcmllbmQgbWRwX2FycmF5IG9wZXJhdG9yLSAoY29uc3QgbWRw
X2FycmF5JiBhLCBjb25zdCBtZHBfYXJyYXkmIGIpIHsKICAgIG1kcF9hcnJheSB0bXAoYS5jKTsK
ICAgIGZvcihyZWdpc3RlciB1aW50IGk9MDsgaTxhLmltYXg7IGkrKykgdG1wW2ldPWFbaV0tYltp
XTsKICAgIHJldHVybiB0bXA7CiAgfQoKICB0ZW1wbGF0ZTxjbGFzcyBUMj4KICBpbmxpbmUgZnJp
ZW5kIG1kcF9hcnJheSBvcGVyYXRvciogKFQyIHgsIGNvbnN0IG1kcF9hcnJheSYgYSkgewogICAg
bWRwX2FycmF5IHRtcChhLmMpOwogICAgZm9yKHJlZ2lzdGVyIHVpbnQgaT0wOyBpPGEuaW1heDsg
aSsrKSB0bXBbaV09YVtpXSp4OwogICAgcmV0dXJuIHRtcDsKICB9CgogIC8vIEltcGxlbWVudGF0
aW9uIG9mIGdlbmVyaWMgdW5hcnkgb3BlcmF0b3IKICBpbmxpbmUgZnJpZW5kIG1kcF9hcnJheSBh
cHBseXRvYWxsIChjb25zdCBtZHBfYXJyYXkmIGEsIAoJCQkJICAgICAgVCAoKmZwdHIpKFQsdm9p
ZCopLCB2b2lkICp4PTApIHsKICAgIG1kcF9hcnJheSB0bXAoYS5jKTsKICAgIGZvcihyZWdpc3Rl
ciB1aW50IGk9MDsgaTxhLmltYXg7IGkrKykgCiAgICAgIHRtcFtpXT0oKmZwdHIpKGFbaV0seCk7
CiAgICByZXR1cm4gdG1wOwogIH0KCiAgLy8gaW1wbGVtZW50YXRpb24gb2YgZ2VuZXJpYyBiaW5h
cnkgb3BlcmF0b3IKICBpbmxpbmUgZnJpZW5kIG1kcF9hcnJheSBhcHBseXRvYWxsIChjb25zdCBt
ZHBfYXJyYXkmIGEsIGNvbnN0IG1kcF9hcnJheSYgYiwgCgkJCQkgICAgICAgVCAoKmZwdHIpKFQs
VCx2b2lkKiksIHZvaWQqIHg9MCkgewogICAgbWRwX2FycmF5IHRtcChhLmMpOwogICAgZm9yKHJl
Z2lzdGVyIHVpbnQgaT0wOyBpPGEuaW1heDsgaSsrKSAKICAgICAgdG1wW2ldPSgqZnB0cikoYVtp
XSwgYltpXSx4KTsKICAgIHJldHVybiB0bXA7CiAgfQoKICBpbmxpbmUgVCAmb3BlcmF0b3IoKSAo
Y29uc3QgdWludCBpMCwgCgkJCWNvbnN0IHVpbnQgaTE9MCwgCgkJCWNvbnN0IHVpbnQgaTI9MCwg
CgkJCWNvbnN0IHVpbnQgaTM9MCwgCgkJCWNvbnN0IHVpbnQgaTQ9MCkgewojaWYgZGVmaW5lZChD
SEVDS19BTEwpCiAgICBpZiAoKGkxIT0wICYmIG5jPDIpIHx8CgkoaTIhPTAgJiYgbmM8MykgfHwK
CShpMyE9MCAmJiBuYzw0KSB8fAoJKGk0IT0wICYmIG5jPElNQVgpKQogICAgICBlcnJvcigibWRw
X2FycmF5OjpvcGVyYXRvcigpKC4uLilcbkluY29tcGF0aWJsZSBzaXplKCkiKTsKICAgIGlmKGkw
Pj1jWzBdKSBlcnJvcigibWRwX2FycmF5OjpvcGVyYXRvcigpXG5JbmRleCBvdXQgb2YgYm91bmRz
Iik7CiAgICBpZihpMT49Y1sxXSkgZXJyb3IoIm1kcF9hcnJheTo6b3BlcmF0b3IoKVxuSW5kZXgg
b3V0IG9mIGJvdW5kcyIpOwogICAgaWYoaTI+PWNbMl0pIGVycm9yKCJtZHBfYXJyYXk6Om9wZXJh
dG9yKClcbkluZGV4IG91dCBvZiBib3VuZHMiKTsKICAgIGlmKGkzPj1jWzNdKSBlcnJvcigibWRw
X2FycmF5OjpvcGVyYXRvcigpXG5JbmRleCBvdXQgb2YgYm91bmRzIik7CiAgICBpZihpND49Y1s0
XSkgZXJyb3IoIm1kcF9hcnJheTo6b3BlcmF0b3IoKVxuSW5kZXggb3V0IG9mIGJvdW5kcyIpOwoj
ZW5kaWYgCiAgICByZXR1cm4gbVsoKChpMCpjWzFdK2kxKSpjWzJdK2kyKSpjWzNdK2kzKSpjWzRd
K2k0XTsKICB9CgogIGlubGluZSBjb25zdCBUICZvcGVyYXRvcigpIChjb25zdCB1aW50IGkwLCAK
CQkJICAgICAgY29uc3QgdWludCBpMT0wLCAKCQkJICAgICAgY29uc3QgdWludCBpMj0wLCAKCQkJ
ICAgICAgY29uc3QgdWludCBpMz0wLCAKCQkJICAgICAgY29uc3QgdWludCBpND0wKSBjb25zdCB7
CiNpZiBkZWZpbmVkKENIRUNLX0FMTCkKICAgIGlmICgoaTEhPTAgJiYgbmM8MikgfHwKCShpMiE9
MCAmJiBuYzwzKSB8fAoJKGkzIT0wICYmIG5jPDQpIHx8CgkoaTQhPTAgJiYgbmM8SU1BWCkpCiAg
ICAgIGVycm9yKCJtZHBfYXJyYXk6Om9wZXJhdG9yKCkoLi4uKVxuSW5jb21wYXRpYmxlIHNpemUo
KSIpOwogICAgaWYoaTA+PWNbMF0pIGVycm9yKCJtZHBfYXJyYXk6Om9wZXJhdG9yKClcbkluZGV4
IG91dCBvZiBib3VuZHMiKTsKICAgIGlmKGkxPj1jWzFdKSBlcnJvcigibWRwX2FycmF5OjpvcGVy
YXRvcigpXG5JbmRleCBvdXQgb2YgYm91bmRzIik7CiAgICBpZihpMj49Y1syXSkgZXJyb3IoIm1k
cF9hcnJheTo6b3BlcmF0b3IoKVxuSW5kZXggb3V0IG9mIGJvdW5kcyIpOwogICAgaWYoaTM+PWNb
M10pIGVycm9yKCJtZHBfYXJyYXk6Om9wZXJhdG9yKClcbkluZGV4IG91dCBvZiBib3VuZHMiKTsK
ICAgIGlmKGk0Pj1jWzRdKSBlcnJvcigibWRwX2FycmF5OjpvcGVyYXRvcigpXG5JbmRleCBvdXQg
b2YgYm91bmRzIik7CiNlbmRpZgogICAgcmV0dXJuIG1bKCgoaTAqY1sxXStpMSkqY1syXStpMikq
Y1szXStpMykqY1s0XStpNF07CiAgfQoKICBmcmllbmQgb3N0cmVhbSYgb3BlcmF0b3I8PCAob3N0
cmVhbSYgb3MsIGNvbnN0IG1kcF9hcnJheSYgYSkgewogICAgdWludCBpOwogICAgb3MgPDwgInsi
OwoKICAgIHN3aXRjaChhLm5kaW0oKSkgeyAgICAgIAogICAgY2FzZSAwOgogICAgICBicmVhazsK
ICAgIGNhc2UgMToKICAgICAgZm9yKGk9MDsgaTxhLmxlbmd0aCgpOyBpKyspIAoJaWYoaT09MCkg
b3MgPDwgIiAiIDw8IGFbaV07CgllbHNlICBvcyA8PCAiLCAiIDw8IGFbaV07CiAgICAgIGJyZWFr
OwogICAgZGVmYXVsdDoKICAgICAgb3MgPDwgIiBTb3JyeS4gT3B0aW9uIG5vdCBpbXBsZW1lbnRl
ZCI7CiAgICAgIGJyZWFrOwogICAgfQogICAgCiAgICBvcyA8PCAiIH0iOwogICAgcmV0dXJuIG9z
OwogIH0KfTsKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAbWRwX2NvbW11bmljYXRvci5oAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAADAxMDA2NDQAMDAzMzEyNgAwMDI0NDYxADAwMDAwMDMwNzAzADEwMTQzMDEzMTU2ADAx
NTM0NQAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAg
AE1EaVBpZXJybwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWtncm91cC1sLWQAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gRmlsZSBOYW1lOiBt
ZHBfY29tbXVuaWNhdG9yLmgKLy8gVmVyc2lvbjogICAyLjMKLy8gRGF0ZTogICAgICAxLU9jdC0y
MDAyCi8vIEF1dGhvcjogICAgTWFzc2ltbyBEaSBQaWVycm8gPG1kcEBtZXRhY3J5cHRpb24uY29t
PgovLyBMaWNlbnNlOiAgIFRoaXMgZmlsZSBpcyBleGNsdXNpdmUgcHJvcGVydHkgb2YgTWV0YUNy
eXB0aW9uIExMQwovLyAgICAgICAgICAgIFJlYWQgYXR0YWNoZWQgbGljZW5zZSBpbiBmaWxlIG1k
cF9saWNlbnNlLnBkZgovLyAgICAgICAgICAgIFRoaXMgZmlsZSBjYW5ub3QgYmUgZGlzdHJpYnV0
ZWQgd2l0aG91dCBmaWxlIG1kcF9saWNlbnNlLnBkZgovLwovLyBEZXNjcmlwdGlvbjoKLy8gICAg
IHRoZSBjbGFzcyBtZHBfY29tbXVuaWNhdG9yIGlzIGEgQysrIHdyYXBwZXIgYXJvdW5kIE1QSQov
LyAgICAganVzdCByZXdyaXRlIHRoaXMgY2xhc3MgdG8gdXNlIGEgZGlmZmVyZW50IGNvbW0gcHJv
dG9jb2wKLy8gICAgICNpZmRlZiBQQVJBTExFTCBpbmNsdWRlIGFuZCBsaW5rIHdpdGggbXBpLmgg
I2Vsc2UgaWdub3JlIG1waS5oCi8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKI2lmZGVmIFBBUkFMTEVM
CiNpbmNsdWRlICJtcGkuaCIKICAgICAKdHlwZWRlZiBNUElfUmVxdWVzdCBtZHBfcmVxdWVzdDsK
CmNsYXNzIG1kcF9jb21tdW5pY2F0b3IgOiBwdWJsaWMgbWRwX2xvZyB7CiBwcml2YXRlOgogIE1Q
SV9Db21tIGNvbW11bmljYXRvcjsKICBkb3VibGUgICBteXRpbWU7IC8vIHRvdGFsIHRpbWUKICBp
bnQgICAgICB3b3JtaG9sZXNfb3BlbjsKICBpbnQgICAgICBteV9pZDsKICBpbnQgICAgICBteV9u
cHJvYzsKIHB1YmxpYzoKICBkb3VibGUgICBjb21tX3RpbWU7ICAvLyB0aW1lIHNwZW50IGluIGNv
bW11bmljYXRpb25zCiAgdm9pZCBvcGVuX3dvcm1ob2xlcyhpbnQgYXJnYywgY2hhcioqIGFyZ3Ys
IAoJCSAgICAgIE1QSV9Db21tIGNvbW11bmljYXRvcl89TVBJX0NPTU1fV09STEQpIHsKICAgIAog
ICAgY29tbXVuaWNhdG9yPWNvbW11bmljYXRvcl87CiAgICBNUElfSW5pdCgmYXJnYywgJmFyZ3Yp
OwogICAgTVBJX0NvbW1fcmFuayhjb21tdW5pY2F0b3IsICYobXlfaWQpKTsKICAgIE1QSV9Db21t
X3NpemUoY29tbXVuaWNhdG9yLCAmKG15X25wcm9jKSk7CiAgICBwcmludD10cnVlOwogICAgZm9y
KGludCBpPTA7IGk8bnByb2MoKTsgaSsrKSB7CiAgICAgIGlmKG1lKCk9PWkpIAoJKCp0aGlzKSA8
PCAiUFJPQ0VTUyAiIDw8IG1lKCkgCgkJPDwgIiBvZiAiIDw8IG5wcm9jKCkgCgkJPDwgIiBTVEFS
VElORyBPTiAiIDw8IGdldG5hbWUoKSA8PCAiXG4iOwogICAgICBiYXJyaWVyKCk7CiAgICB9CiAg
ICAoKnRoaXMpIDw8ICdcbic7CiAgICBpZihtZSgpPT0wKSBwcmludD10cnVlOyBlbHNlIHByaW50
PWZhbHNlOwogICAgcmVzZXRfdGltZSgpOwogICAgd29ybWhvbGVzX29wZW49VFJVRTsgCiAgICBi
ZWdpbl9mdW5jdGlvbigiUFJPR1JBTSIpOwogICAgYmVnaW5fZnVuY3Rpb24oIm9wZW5fd29ybWhv
bGVzIik7CiAgICAoKnRoaXMpIDw8IAogICAgICAiPHA+PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PC9wPlxu
IgogICAgICAiPHA+U3RhcnRpbmcgWyBNYXRyaXggRGlzdHJpYnV0ZWQgUHJvY2Vzc2luZyBdPC9w
PlxuIgogICAgICAiPHA+Q3JlYXRlZCBieSBNYXNzaW1vIERpIFBpZXJybyAobWRwQG1ldGFjcnlw
dGlvbi5jb20pICIgPDwgbWRwX3ZlcnNpb24gPDwgIjwvcD5cbiIKICAgICAgIjxwPk93bmVkIGJ5
IE1ldGFDcnlwdGlvbiBMTEM8L3A+XG4iCiAgICAgICI8cD49PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT08L3A+
XG4iCiAgICAgICI8cD5Hb2luZyBwYXJhbGxlbCAuLi4gWUVTPC9wPlxuIjsKICAgIGRvdWJsZSBh
LGI7CiAgICBnZXRjcHV1c2FnZShhLGIpOwogICAgZW5kX2Z1bmN0aW9uKCJvcGVuX3dvcm1ob2xl
cyIpOwogIH0KICBpbnQgdGFnKGludCBpLCBpbnQgaikgewogICAgcmV0dXJuIGkqbnByb2MoKStq
OwogIH0KICBpbmxpbmUgY29uc3QgaW50IG1lKCkgewogICAgcmV0dXJuIG15X2lkOwogIH0KICBp
bmxpbmUgY29uc3QgaW50IG5wcm9jKCkgewogICAgcmV0dXJuIG15X25wcm9jOwogIH0KICB2b2lk
IGNsb3NlX3dvcm1ob2xlcygpIHsKICAgIGJlZ2luX2Z1bmN0aW9uKCJjbG9zZV93b3JtaG9sZXMi
KTsKICAgIGludCBpOwogICAgZG91YmxlICphPW5ldyBkb3VibGVbbnByb2MoKV07CiAgICBkb3Vi
bGUgKmI9bmV3IGRvdWJsZVtucHJvYygpXTsKICAgIGRvdWJsZSAqYz1uZXcgZG91YmxlW25wcm9j
KCldOwoKICAgIGZvcihpPTA7IGk8bnByb2MoKTsgaSsrKSBhW2ldPWJbaV09Y1tpXT0wOyAKICAg
IGdldGNwdXVzYWdlKGFbbWUoKV0sYlttZSgpXSk7CiAgICBjW21lKCldPTEwMC4wKmNvbW1fdGlt
ZS8odGltZSgpKTsKCiAgICBhZGQoYSxucHJvYygpKTsKICAgIGFkZChiLG5wcm9jKCkpOwogICAg
YWRkKGMsbnByb2MoKSk7CgogICAgKCp0aGlzKSA8PCAiXG5cbjxwPj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PTwvcD5cbiI7CiAgICBmb3IoaT0wOyBpPG5wcm9jKCk7IGkrKykKICAgICAgKCp0aGlzKSA8PCAi
PHA+UHJvY2VzcyAiIDw8IGkgPDwgIiBzdGF0czogIiAgCgkgICAgICA8PCBjW2ldIDw8ICJcJTsg
IiAKCSAgICAgIDw8IGFbaV0gPDwgIlwlOyAiIAoJICAgICAgPDwgYltpXSA8PCAiXCUuIDwvcD5c
biI7CiAgICAoKnRoaXMpIDw8ICI8cD5FbmRpbmcgdGhpcyBwcm9ncmFtLjwvcD5cbiI7CiAgICAo
KnRoaXMpIDw8ICI8cD49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT08L3A+XG4iOwoKICAgICgqdGhpcykgPDwg
IlBST0NFU1MgIiA8PCBtZSgpIDw8ICIgRU5ESU5HIEFGVEVSICIgPDwgdGltZSgpIDw8ICIgc2Vj
LlxuIjsKICAgIHdvcm1ob2xlc19vcGVuPUZBTFNFOwogICAgTVBJX0ZpbmFsaXplKCk7CiAgICBk
ZWxldGVbXSBhOwogICAgZGVsZXRlW10gYjsKICAgIGRlbGV0ZVtdIGM7CiAgICBlbmRfZnVuY3Rp
b24oImNsb3NlX3dvcm1ob2xlcyIpOwogICAgZW5kX2Z1bmN0aW9uKCJQUk9HUkFNIik7CiAgfQog
IHZvaWQgYWJvcnQoKSB7CiAgICBNUElfQWJvcnQoY29tbXVuaWNhdG9yLDEpOwogIH0KICBtZHBf
Y29tbXVuaWNhdG9yKCkgewogICAgd29ybWhvbGVzX29wZW49RkFMU0U7CiAgfQogIHZpcnR1YWwg
fm1kcF9jb21tdW5pY2F0b3IoKSB7CiAgICBpZih3b3JtaG9sZXNfb3Blbj09VFJVRSkgewogICAg
ICBjbG9zZV93b3JtaG9sZXMoKTsKICAgIH0KICB9CiAgdGVtcGxhdGU8Y2xhc3MgVD4KICAgIHZv
aWQgcHV0KFQgJm9iaiwgaW50IGRlc3RpbmF0aW9uKSB7CiAgICBtZHBfcmVxdWVzdCByOwogICAg
TVBJX0lzZW5kKCZvYmosIHNpemVvZihUKS9zaXplb2YoY2hhciksIE1QSV9DSEFSLCBkZXN0aW5h
dGlvbiwgCgkgICAgIHRhZyhtZSgpLGRlc3RpbmF0aW9uKSwgY29tbXVuaWNhdG9yLCAmcik7CiAg
ICB3YWl0KHIpOwogIH0KICB0ZW1wbGF0ZTxjbGFzcyBUPgogICAgdm9pZCBwdXQoVCAmb2JqLCBp
bnQgZGVzdGluYXRpb24sIG1kcF9yZXF1ZXN0ICZyKSB7CiAgICBNUElfSXNlbmQoJm9iaiwgc2l6
ZW9mKFQpL3NpemVvZihjaGFyKSwgTVBJX0NIQVIsIGRlc3RpbmF0aW9uLCAKCSAgICAgdGFnKG1l
KCksZGVzdGluYXRpb24pLCBjb21tdW5pY2F0b3IsICZyKTsKICB9CiAgdGVtcGxhdGU8Y2xhc3Mg
VD4KICAgIHZvaWQgZ2V0KFQgJm9iaiwgaW50IHNvdXJjZSkgewogICAgTVBJX1N0YXR1cyAgc3Rh
dHVzOwogICAgTVBJX1JlY3YoJm9iaiwgc2l6ZW9mKFQpL3NpemVvZihjaGFyKSwgTVBJX0NIQVIs
IHNvdXJjZSwgCgkgICAgIHRhZyhzb3VyY2UsbWUoKSksIGNvbW11bmljYXRvciwgJnN0YXR1cyk7
ICAgICAKICB9CiAgdGVtcGxhdGU8Y2xhc3MgVD4KICAgIHZvaWQgcHV0KFQqIG9ianB0ciwgbG9u
ZyBsZW5ndGgsIGludCBkZXN0aW5hdGlvbikgewogICAgbWRwX3JlcXVlc3QgcjsKICAgIE1QSV9J
c2VuZChvYmpwdHIsIGxlbmd0aCpzaXplb2YoVCkvc2l6ZW9mKGNoYXIpLCBNUElfQ0hBUiwgZGVz
dGluYXRpb24sIAoJICAgICAgdGFnKG1lKCksZGVzdGluYXRpb24pLCBjb21tdW5pY2F0b3IsICZy
KTsKICAgIHdhaXQocik7CiAgfQogIHRlbXBsYXRlPGNsYXNzIFQ+CiAgICB2b2lkIHB1dChUKiBv
YmpwdHIsIGxvbmcgbGVuZ3RoLCBpbnQgZGVzdGluYXRpb24sIG1kcF9yZXF1ZXN0ICZyKSB7CiAg
ICBpZihNUElfSXNlbmQob2JqcHRyLCBsZW5ndGgqc2l6ZW9mKFQpL3NpemVvZihjaGFyKSwgTVBJ
X0NIQVIsIGRlc3RpbmF0aW9uLCAKCQkgdGFnKG1lKCksZGVzdGluYXRpb24pLCBjb21tdW5pY2F0
b3IsICZyKSE9TVBJX1NVQ0NFU1MpCiAgICAgIGVycm9yKCJGYWlsdXJlIHRvIHNlbmQiKTsKICB9
CiAgdGVtcGxhdGU8Y2xhc3MgVD4KICAgIHZvaWQgZ2V0KFQqIG9ianB0ciwgbG9uZyBsZW5ndGgs
IGludCBzb3VyY2UpIHsKICAgIE1QSV9TdGF0dXMgIHN0YXR1czsKICAgIGlmKE1QSV9SZWN2KG9i
anB0ciwgbGVuZ3RoKnNpemVvZihUKS9zaXplb2YoY2hhciksIE1QSV9DSEFSLCBzb3VyY2UsIAoJ
ICAgICB0YWcoc291cmNlLG1lKCkpLCBjb21tdW5pY2F0b3IsICZzdGF0dXMpIT1NUElfU1VDQ0VT
UykgCiAgICAgIGVycm9yKCJGYWlsdXJlIHRvIHJlY2VpdmUiKTsKICB9CiAgdm9pZCB3YWl0KG1k
cF9yZXF1ZXN0ICZyKSB7CiAgICBNUElfU3RhdHVzIHN0YXR1czsKICAgIE1QSV9XYWl0KCZyLCAm
c3RhdHVzKTsKICB9CiAgdm9pZCB3YWl0KG1kcF9yZXF1ZXN0ICpyLCBpbnQgbGVuZ3RoKSB7CiAg
ICBNUElfU3RhdHVzIHN0YXR1czsKICAgIE1QSV9XYWl0YWxsKGxlbmd0aCwgciwgJnN0YXR1cyk7
CiAgfQogIC8vIENvbXBhdGliaWxpdHkgZnVuY3Rpb25zCiAgLy8gb2JqMSBpcyBpbnB1dCwgb2Jq
MiBpcyBvdXRwdXQKICB2b2lkIGFkZChmbG9hdCAmb2JqMSwgZmxvYXQgJm9iajIpIHsKICAgIE1Q
SV9BbGxyZWR1Y2UoJm9iajEsICZvYmoyLCAxLCBNUElfRkxPQVQsIE1QSV9TVU0sIGNvbW11bmlj
YXRvcik7CiAgfQogIHZvaWQgYWRkKGZsb2F0KiBvYmoxLCBmbG9hdCAqb2JqMiwgbG9uZyBsZW5n
dGgpIHsKICAgIE1QSV9BbGxyZWR1Y2Uob2JqMSwgb2JqMiwgbGVuZ3RoLCBNUElfRkxPQVQsIE1Q
SV9TVU0sIGNvbW11bmljYXRvcik7CiAgfQogIHZvaWQgYWRkKGRvdWJsZSAmb2JqMSwgZG91Ymxl
ICZvYmoyKSB7CiAgICBNUElfQWxscmVkdWNlKCZvYmoxLCAmb2JqMiwgMSwgTVBJX0RPVUJMRSwg
TVBJX1NVTSwgY29tbXVuaWNhdG9yKTsKICB9CiAgdm9pZCBhZGQoZG91YmxlKiBvYmoxLCBkb3Vi
bGUgKm9iajIsIGxvbmcgbGVuZ3RoKSB7CiAgICBNUElfQWxscmVkdWNlKG9iajEsIG9iajIsIGxl
bmd0aCwgTVBJX0RPVUJMRSwgTVBJX1NVTSwgY29tbXVuaWNhdG9yKTsKICB9CiAgdm9pZCBhZGQo
aW50ICZvYmoxKSB7CiAgICBpbnQgb2JqMj0wOwogICAgTVBJX0FsbHJlZHVjZSgmb2JqMSwgJm9i
ajIsIDEsIE1QSV9JTlQsIE1QSV9TVU0sIGNvbW11bmljYXRvcik7CiAgICBvYmoxPW9iajI7CiAg
fQogIHZvaWQgYWRkKGxvbmcgJm9iajEpIHsKICAgIGxvbmcgb2JqMj0wOwogICAgTVBJX0FsbHJl
ZHVjZSgmb2JqMSwgJm9iajIsIDEsIE1QSV9MT05HLCBNUElfU1VNLCBjb21tdW5pY2F0b3IpOwog
ICAgb2JqMT1vYmoyOwogIH0KICB2b2lkIGFkZChmbG9hdCAmb2JqMSkgewogICAgZmxvYXQgb2Jq
Mj0wOwogICAgTVBJX0FsbHJlZHVjZSgmb2JqMSwgJm9iajIsIDEsIE1QSV9GTE9BVCwgTVBJX1NV
TSwgY29tbXVuaWNhdG9yKTsKICAgIG9iajE9b2JqMjsKICB9CiAgdm9pZCBhZGQoZG91YmxlICZv
YmoxKSB7CiAgICBkb3VibGUgb2JqMj0wOwogICAgTVBJX0FsbHJlZHVjZSgmb2JqMSwgJm9iajIs
IDEsIE1QSV9ET1VCTEUsIE1QSV9TVU0sIGNvbW11bmljYXRvcik7CiAgICBvYmoxPW9iajI7CiAg
fQogIHZvaWQgYWRkKGludCAqb2JqMSwgbG9uZyBsZW5ndGgpIHsKICAgIGxvbmcgaTsKICAgIGlu
dCAqb2JqMj1uZXcgaW50W2xlbmd0aF07CiAgICBmb3IoaT0wOyBpPGxlbmd0aDsgaSsrKSBvYmoy
W2ldPTA7CiAgICBNUElfQWxscmVkdWNlKG9iajEsIG9iajIsIGxlbmd0aCwgTVBJX0lOVCwgTVBJ
X1NVTSwgY29tbXVuaWNhdG9yKTsKICAgIGZvcihpPTA7IGk8bGVuZ3RoOyBpKyspIG9iajFbaV09
b2JqMltpXTsKICAgIGRlbGV0ZVtdIG9iajI7CiAgfQogIHZvaWQgYWRkKGxvbmcgKm9iajEsIGxv
bmcgbGVuZ3RoKSB7CiAgICBsb25nIGk7CiAgICBsb25nICpvYmoyPW5ldyBsb25nW2xlbmd0aF07
CiAgICBmb3IoaT0wOyBpPGxlbmd0aDsgaSsrKSBvYmoyW2ldPTA7CiAgICBNUElfQWxscmVkdWNl
KG9iajEsIG9iajIsIGxlbmd0aCwgTVBJX0xPTkcsIE1QSV9TVU0sIGNvbW11bmljYXRvcik7CiAg
ICBmb3IoaT0wOyBpPGxlbmd0aDsgaSsrKSBvYmoxW2ldPW9iajJbaV07CiAgICBkZWxldGVbXSBv
YmoyOwogIH0KICB2b2lkIGFkZChmbG9hdCAqb2JqMSwgbG9uZyBsZW5ndGgpIHsKICAgIGxvbmcg
aTsKICAgIGZsb2F0ICpvYmoyPW5ldyBmbG9hdFtsZW5ndGhdOwogICAgZm9yKGk9MDsgaTxsZW5n
dGg7IGkrKykgb2JqMltpXT0wOwogICAgTVBJX0FsbHJlZHVjZShvYmoxLCBvYmoyLCBsZW5ndGgs
IE1QSV9GTE9BVCwgTVBJX1NVTSwgY29tbXVuaWNhdG9yKTsKICAgIGZvcihpPTA7IGk8bGVuZ3Ro
OyBpKyspIG9iajFbaV09b2JqMltpXTsKICAgIGRlbGV0ZVtdIG9iajI7CiAgfQogIHZvaWQgYWRk
KGRvdWJsZSAqb2JqMSwgbG9uZyBsZW5ndGgpIHsKICAgIGxvbmcgaTsKICAgIGRvdWJsZSAqb2Jq
Mj1uZXcgZG91YmxlW2xlbmd0aF07CiAgICBmb3IoaT0wOyBpPGxlbmd0aDsgaSsrKSBvYmoyW2ld
PTA7CiAgICBNUElfQWxscmVkdWNlKG9iajEsIG9iajIsIGxlbmd0aCwgTVBJX0RPVUJMRSwgTVBJ
X1NVTSwgY29tbXVuaWNhdG9yKTsKICAgIGZvcihpPTA7IGk8bGVuZ3RoOyBpKyspIG9iajFbaV09
b2JqMltpXTsKICAgIGRlbGV0ZVtdIG9iajI7CiAgfQogIHZvaWQgYWRkKG1kcF9jb21wbGV4ICZv
YmoxKSB7CiAgICBtZHBfY29tcGxleCBvYmoyPTA7CiNpZiAhZGVmaW5lZChVU0VfRE9VQkxFX1BS
RUNJU0lPTikKICAgIE1QSV9BbGxyZWR1Y2UoJm9iajEsICZvYmoyLCAyLCBNUElfRkxPQVQsIE1Q
SV9TVU0sIGNvbW11bmljYXRvcik7CiNlbHNlCiAgICBNUElfQWxscmVkdWNlKCZvYmoxLCAmb2Jq
MiwgMiwgTVBJX0RPVUJMRSwgTVBJX1NVTSwgY29tbXVuaWNhdG9yKTsKI2VuZGlmCiAgICBvYmox
PW9iajI7CiAgfQogIHZvaWQgYWRkKG1kcF9jb21wbGV4ICpvYmoxLCBsb25nIGxlbmd0aCkgewog
ICAgbG9uZyBpOwogICAgbWRwX2NvbXBsZXggKm9iajI9bmV3IG1kcF9jb21wbGV4W2xlbmd0aF07
CiAgICBmb3IoaT0wOyBpPGxlbmd0aDsgaSsrKSBvYmoyW2ldPTA7CiNpZiAhZGVmaW5lZChVU0Vf
RE9VQkxFX1BSRUNJU0lPTikKICAgIE1QSV9BbGxyZWR1Y2Uob2JqMSwgb2JqMiwgMipsZW5ndGgs
IE1QSV9GTE9BVCwgTVBJX1NVTSwgY29tbXVuaWNhdG9yKTsKI2Vsc2UKICAgIE1QSV9BbGxyZWR1
Y2Uob2JqMSwgb2JqMiwgMipsZW5ndGgsIE1QSV9ET1VCTEUsIE1QSV9TVU0sIGNvbW11bmljYXRv
cik7CiNlbmRpZgogICAgZm9yKGk9MDsgaTxsZW5ndGg7IGkrKykgb2JqMVtpXT1vYmoyW2ldOwog
ICAgZGVsZXRlW10gb2JqMjsKICB9CiAgdm9pZCBhZGQobWRwX21hdHJpeCAmYSkgewogICAgYWRk
KGEuYWRkcmVzcygpLCBhLnJvd21heCgpKmEuY29sbWF4KCkpOwogIH0KICB2b2lkIGFkZChtZHBf
bWF0cml4ICphLCBsb25nIGxlbmd0aCkgewogICAgbG9uZyBpOwogICAgZm9yKGk9MDsgaTxsZW5n
dGg7IGkrKykgYWRkKGFbaV0pOwogIH0KCiAgdm9pZCBiYXJyaWVyKCkgewogICAgTVBJX0JhcnJp
ZXIoY29tbXVuaWNhdG9yKTsKICB9CiAgdGVtcGxhdGU8Y2xhc3MgVD4KICAgIHZvaWQgYnJvYWRj
YXN0KFQgJm9iaiwgaW50IHApIHsKICAgIE1QSV9CY2FzdCgmb2JqLCBzaXplb2YoVCkvc2l6ZW9m
KGNoYXIpLCBNUElfQ0hBUiwgcCwgY29tbXVuaWNhdG9yKTsgCiAgfQogIHRlbXBsYXRlPGNsYXNz
IFQ+CiAgICB2b2lkIGJyb2FkY2FzdChUKiBvYmosIGxvbmcgbGVuZ3RoLCBpbnQgcCkgewogICAg
TVBJX0JjYXN0KG9iaiwgbGVuZ3RoKnNpemVvZihUKS9zaXplb2YoY2hhciksIE1QSV9DSEFSLCBw
LGNvbW11bmljYXRvcik7IAogIH0KICB2b2lkIHJlc2V0X3RpbWUoKSB7CiAgICBteXRpbWU9TVBJ
X1d0aW1lKCk7CiAgICBjb21tX3RpbWU9MDsKICB9CiAgZG91YmxlIHRpbWUoKSB7CiAgICByZXR1
cm4gTVBJX1d0aW1lKCktbXl0aW1lOwogIH0KfTsKCiNlbHNlCiNpbmNsdWRlICJ0aW1lLmgiCnR5
cGVkZWYgaW50IG1kcF9yZXF1ZXN0OwoKY2xhc3MgbWRwX2NvbW11bmljYXRvciA6IHB1YmxpYyBt
ZHBfbG9newogcHJpdmF0ZToKICBpbnQgICAgY29tbXVuaWNhdG9yOwogIGRvdWJsZSAgbXl0aW1l
OyAvLyB0b3RhbCB0aW1lCiAgZG91YmxlICBjb21tX3RpbWU7ICAvLyB0aW1lIHNwZW50IGluIGNv
bW11bmljYXRpb25zCiAgZG91YmxlIE1QSV9XdGltZSgpIHsKICAgIHJldHVybiB3YWxsdGltZSgp
OwogIH0KIHB1YmxpYzoKICBpbnQgICAgbXlfaWQ7CiAgaW50ICAgIG15X25wcm9jOwogIHRlbXBs
YXRlPGNsYXNzIFQ+CiAgICB2b2lkIHB1dChUICZvYmosIGludCBkZXN0aW5hdGlvbikge30KICB0
ZW1wbGF0ZTxjbGFzcyBUPgogICAgdm9pZCBwdXQoVCAmb2JqLCBpbnQgZGVzdGluYXRpb24sIG1k
cF9yZXF1ZXN0ICZyKSB7fQogIHRlbXBsYXRlPGNsYXNzIFQ+CiAgICB2b2lkIGdldChUICZvYmos
IGludCBzb3VyY2UpIHt9CiAgdGVtcGxhdGU8Y2xhc3MgVD4KICAgIHZvaWQgcHV0KFQqIG9ianB0
ciwgbG9uZyBsZW5ndGgsIGludCBkZXN0aW5hdGlvbikge30KICB0ZW1wbGF0ZTxjbGFzcyBUPgog
ICAgdm9pZCBwdXQoVCogb2JqcHRyLCBsb25nIGxlbmd0aCwgaW50IGRlc3RpbmF0aW9uLCBtZHBf
cmVxdWVzdCAmcikge30KICB0ZW1wbGF0ZTxjbGFzcyBUPgogICAgdm9pZCBnZXQoVCogb2JqcHRy
LCBsb25nIGxlbmd0aCwgaW50IHNvdXJjZSkge30KICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLwogIC8vIENvbXBhdGliaWxpdHkgZnVuY3Rpb25zCiAgLy8gb2JqMSBpcyBpbnB1
dCwgb2JqMiBpcyBvdXRwdXQKICB2b2lkIGFkZChmbG9hdCAmb2JqMSwgZmxvYXQgJm9iajIpIHsK
ICAgIG9iajI9b2JqMTsKICB9CiAgdm9pZCBhZGQoZmxvYXQqIG9iajEsIGZsb2F0ICpvYmoyLCBs
b25nIGxlbmd0aCkgewogICAgbG9uZyBpOwogICAgZm9yKGk9MDsgaTxsZW5ndGg7IGkrKykgb2Jq
MltpXT1vYmoxW2ldOwogIH0KICB2b2lkIGFkZChkb3VibGUgJm9iajEsIGRvdWJsZSAmb2JqMikg
ewogICAgb2JqMj1vYmoxOwogIH0KICB2b2lkIGFkZChkb3VibGUqIG9iajEsIGRvdWJsZSAqb2Jq
MiwgbG9uZyBsZW5ndGgpIHsKICAgIGxvbmcgaTsKICAgIGZvcihpPTA7IGk8bGVuZ3RoOyBpKysp
IG9iajJbaV09b2JqMVtpXTsKICB9CiAgLy8gZW5kIGNvbXBhdGlsaWJpbGl0eSBmdW5jdGlvbnMK
ICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICB2b2lkIGFkZChpbnQgJm9i
ajEpIHsKICB9CiAgdm9pZCBhZGQobG9uZyAmb2JqMSkgewogIH0KICB2b2lkIGFkZChmbG9hdCAm
b2JqMSkgewogIH0KICB2b2lkIGFkZChkb3VibGUgJm9iajEpIHsKICB9CiAgdm9pZCBhZGQoaW50
ICpvYmoxLCBsb25nIGxlbmd0aCkgewogIH0KICB2b2lkIGFkZChsb25nICpvYmoxLCBsb25nIGxl
bmd0aCkgewogIH0KICB2b2lkIGFkZChmbG9hdCAqb2JqMSwgbG9uZyBsZW5ndGgpIHsKICB9CiAg
dm9pZCBhZGQoZG91YmxlICpvYmoxLCBsb25nIGxlbmd0aCkgewogIH0KICB2b2lkIGFkZChtZHBf
Y29tcGxleCAmb2JqMSkgewogIH0KICB2b2lkIGFkZChtZHBfY29tcGxleCAqb2JqMSwgbG9uZyBs
ZW5ndGgpIHsKICB9CiAgdm9pZCBhZGQobWRwX21hdHJpeCAmYSkgewogIH0KICB2b2lkIGFkZCht
ZHBfbWF0cml4ICphLCBsb25nIGxlbmd0aCkgewogIH0KICB0ZW1wbGF0ZTxjbGFzcyBUPgogICAg
dm9pZCBicm9hZGNhc3QoVCAmb2JqLCBpbnQgcCkgewogICAgLyogZG8gbm90aGluZzogdGhpcyBp
cyBjb3JyZWN0ICovCiAgfQogIHRlbXBsYXRlPGNsYXNzIFQ+CiAgICB2b2lkIGJyb2FkY2FzdChU
KiBvYmosIGxvbmcgbGVuZ3RoLCBpbnQgcCkgewogICAgLyogZG8gbm90aGluZzogdGhpcyBpcyBj
b3JyZWN0ICovCiAgfQogIHZvaWQgd2FpdChtZHBfcmVxdWVzdCAmcikge30KICB2b2lkIHdhaXQo
bWRwX3JlcXVlc3QgKnIsIGludCBsZW5ndGgpIHt9CiAgaW5saW5lIGNvbnN0IGludCBtZSgpIHsK
ICAgIHJldHVybiBteV9pZDsKICB9CiAgaW5saW5lIGNvbnN0IGludCBucHJvYygpIHsKICAgIHJl
dHVybiBteV9ucHJvYzsKICB9CiAgdm9pZCBiYXJyaWVyKCkge30KICBpbnQgdGFnKGludCBpLCBp
bnQgaikgewogICAgcmV0dXJuIGkqbnByb2MoKStqOwogIH0KICB2b2lkIHJlc2V0X3RpbWUoKSB7
CiAgICBteXRpbWU9TVBJX1d0aW1lKCk7CiAgICBjb21tX3RpbWU9MDsKICB9CiAgZG91YmxlIHRp
bWUoKSB7IAogICAgcmV0dXJuIE1QSV9XdGltZSgpLW15dGltZTsKICB9CiAgdm9pZCBvcGVuX3dv
cm1ob2xlcyhpbnQgYXJnYywgY2hhcioqIGFyZ3YsIGludCBjPTApIHsKICAgIG15X2lkPTA7CiAg
ICBteV9ucHJvYz0xOwogICAgaWYobWUoKT09MCkgcHJpbnQ9dHJ1ZTsgZWxzZSBwcmludD1mYWxz
ZTsKICAgIHJlc2V0X3RpbWUoKTsKICAgIGJlZ2luX2Z1bmN0aW9uKCJQUk9HUkFNIik7CiAgICBi
ZWdpbl9mdW5jdGlvbigib3Blbl93b3JtaG9sZXMiKTsgCiAgICAoKnRoaXMpIDw8ICJQUk9DRVNT
ICIgPDwgbWUoKSA8PCAiIG9mICIgPDwgbnByb2MoKSA8PCAiIFNUQVJUSU5HIE9OICIgPDwgZ2V0
bmFtZSgpIDw8ICJcbiI7CiAgICAoKnRoaXMpIDw8IAogICAgICAiPHA+PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PC9wPlxuIgogICAgICAiPHA+U3RhcnRpbmcgWyBNYXRyaXggRGlzdHJpYnV0ZWQgUHJvY2Vz
c2luZyBdPC9wPlxuIgogICAgICAiPHA+Q3JlYXRlZCBieSBNYXNzaW1vIERpIFBpZXJybyAobWRw
QG1ldGFjcnlwdGlvbi5jb20pICIgPDwgbWRwX3ZlcnNpb24gPDwgIjwvcD5cbiIKICAgICAgIjxw
Pk93bmVkIGJ5IE1ldGFDcnlwdGlvbiBMTEM8L3A+XG4iCiAgICAgICI8cD49PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT08L3A+XG4iCiAgICAgICI8cD5Hb2luZyBwYXJhbGxlbCAuLi4gTk88L3A+XG4iOwogICAg
aWYobnByb2MoKSE9MSkgewogICAgICAoKnRoaXMpIDw8ICJJIHdpbGwgcnVuIGJ1dCBJIGFzc3Vt
ZSB0aGlzIGlzIGEgdGVzdCB3aGVyZSBucHJvYyE9MSBhbmQgbm8gUEFSQUxMRUxcbiI7IAogICAg
fQogICAgZG91YmxlIGEsYjsKICAgIGdldGNwdXVzYWdlKGEsYik7CiAgICBlbmRfZnVuY3Rpb24o
Im9wZW5fd29ybWhvbGVzIik7CiAgfQogIHZvaWQgY2xvc2Vfd29ybWhvbGVzKCkgewogICAgYmVn
aW5fZnVuY3Rpb24oImNsb3NlX3dvcm1ob2xlcyIpOwogICAgZG91YmxlIGEsYjsKICAgIGdldGNw
dXVzYWdlKGEsYik7CiAgICAoKnRoaXMpIDw8ICJcblxuPHA+PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PC9w
PlxuIjsKICAgICAgKCp0aGlzKSA8PCAiPHA+UHJvY2VzcyAiIDw8IDAgPDwgIiBzdGF0czogIiAg
CgkgICAgICA8PCAwIDw8ICJcJTsgIiAKCSAgICAgIDw8IGEgPDwgIlwlOyAiIAoJICAgICAgPDwg
YiA8PCAiXCUuIDwvcD5cbiI7CiAgICAoKnRoaXMpIDw8ICI8cD5FbmRpbmcgdGhpcyBwcm9ncmFt
LjwvcD5cbiI7CiAgICAoKnRoaXMpIDw8ICI8cD49PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT08L3A+XG4iOwoK
ICAgIGVuZF9mdW5jdGlvbigiY2xvc2Vfd29ybWhvbGVzIik7CiAgICBlbmRfZnVuY3Rpb24oIlBS
T0dSQU0iKTsgCiAgfQogIHZvaWQgYWJvcnQoKSB7CiAgICAoKnRoaXMpIDw8ICJjYWxsaW5nIGFi
b3J0Li4uIjsKICAgIGV4aXQoLTEpOwogIH0KfTsKCiNlbmRpZgoKbWRwX2NvbW11bmljYXRvciBt
ZHA7Cm1kcF9jb21tdW5pY2F0b3ImIG1waT1tZHA7IC8vIGZvciBiYWNrd2FyZCBjb21wYXRpYmls
aXR5Cgp2b2lkIF9tcGlfZXJyb3JfbWVzc2FnZShzdHJpbmcgYSwgc3RyaW5nIGIsIGludCBjKSB7
CiAgbXBpLmVycm9yX21lc3NhZ2UoYSxiLGMpOwp9CgppbmxpbmUgdm9pZCBiZWdpbl9mdW5jdGlv
bihzdHJpbmcgcykgewogIG1waS5iZWdpbl9mdW5jdGlvbihzKTsKfQoKaW5saW5lIHZvaWQgZW5k
X2Z1bmN0aW9uKHN0cmluZyBzKSB7CiAgbXBpLmVuZF9mdW5jdGlvbihzKTsKfQoKAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1kcF9j
b21wYXRpYmlsaXR5X21hY3Jvcy5oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMTAwNjQ0ADAwMzMxMjYAMDAy
NDQ2MQAwMDAwMDAwMTEwMgAxMDE0MzAxMzE1NgAwMTcwNTEAIDAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABNRGlQaWVycm8AAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAG1rZ3JvdXAtbC1kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALy8gbWFj
cm9zIHN0aWxsIGluIHVzZQoKI2RlZmluZSAgbXlyZWFsICAgICAgICAgIG1kcF9yZWFsCiNkZWZp
bmUgIHNpdGUgICAgICAgICAgICBtZHBfc2l0ZQojZGVmaW5lICBDb21wbGV4ICAgICAgICAgbWRw
X2NvbXBsZXgKI2RlZmluZSAgTWF0cml4ICAgICAgICAgIG1kcF9tYXRyaXgKI2RlZmluZSAgUmFu
ZG9tICAgICAgICAgIG1kcF9yYW5kb20KCi8vIGRlcHJlY2F0ZWQgbWFjcm9zCiNkZWZpbmUgIE1l
YXN1cmUgICAgICAgICBtZHBfbWVhc3VyZQojZGVmaW5lICBEeW5hbWljQXJyYXkgICAgbWRwX2Fy
cmF5CiNkZWZpbmUgIEphY2tCb290ICAgICAgICBtZHBfamFja2Jvb3QKI2RlZmluZSAgZ2VuZXJp
Y19sYXR0aWNlIG1kcF9sYXR0aWNlCiNkZWZpbmUgIGdlbmVyaWNfZmllbGQgICBtZHBfZmllbGQg
IAojZGVmaW5lICBNYXRyaXhfZmllbGQgICAgbWRwX21hdHJpeF9maWVsZAojZGVmaW5lICBWZWN0
b3JfZmllbGQgICAgbWRwX3ZlY3Rvcl9maWVsZAojZGVmaW5lICBOTWF0cml4X2ZpZWxkICAgbWRw
X25tYXRyaXhfZmllbGQKI2RlZmluZSAgTlZlY3Rvcl9maWVsZCAgIG1kcF9udmVjdG9yX2ZpZWxk
CgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1kcF9jb21w
aWxlcnMuaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMTAwNjQ0ADAwMzMxMjYAMDAyNDQ2
MQAwMDAwMDAwMDUxNgAxMDE0MzAxMzE1NgAwMTQ2NDEAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABNRGlQaWVycm8AAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAG1rZ3JvdXAtbC1kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALy8gLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCi8vIEZpbGUgTmFtZTogbWRwX2NvbWlsZXJzLmgKLy8gRGF0ZTogICAgICAx
LU1hci0yMDAyCi8vIEF1dGhvcjogICAgTWFzc2ltbyBEaSBQaWVycm8gPG1kcEBtZXRhY3J5cHRp
b24uY29tPgovLyBEZXNjcmlwdGlvbjoKLy8gICAgIGhlYWRlciBmaWxlIHdpdGggY29tcGlsZXIg
ZGVwZW5kZW50IG1hY29ycwovLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCgAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtZHBfY29tcGxl
eC5oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDEwMDY0NAAwMDMzMTI2ADAwMjQ0NjEA
MDAwMDAwMjA3MzYAMTAxNDMwMTMxNTYAMDE0MzIxACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAATURpUGllcnJvAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AABta2dyb3VwLWwtZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLwovLyBGaWxlIE5hbWU6IG1kcF9jb21wbGV4LmgKLy8gVmVyc2lvbjogICAyLjMK
Ly8gRGF0ZTogICAgICAxLU9jdC0yMDAyCi8vIEF1dGhvcjogICAgTWFzc2ltbyBEaSBQaWVycm8g
PG1kcEBtZXRhY3J5cHRpb24uY29tPgovLyBMaWNlbnNlOiAgIFRoaXMgZmlsZSBpcyBleGNsdXNp
dmUgcHJvcGVydHkgb2YgTWV0YUNyeXB0aW9uIExMQwovLyAgICAgICAgICAgIFJlYWQgYXR0YWNo
ZWQgbGljZW5zZSBpbiBmaWxlIG1kcF9saWNlbnNlLnBkZgovLyAgICAgICAgICAgIFRoaXMgZmls
ZSBjYW5ub3QgYmUgZGlzdHJpYnV0ZWQgd2l0aG91dCBmaWxlIG1kcF9saWNlbnNlLnBkZgovLwov
LyBEZXNjcmlwdGlvbjoKLy8gICAgIGNsYXNzIG1kcF9jb21wbGV4Ci8vIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLwoKI2lmIGRlZmluZWQoRE9fTk9UX1VTRV9NRFBfQ09NUExFWCkKI2luY2x1ZGUgImNvbXBs
ZXguaCIKdHlwZWRlZiBjb21wbGV4PG1kcF9yZWFsPiBtZHBfY29tcGxleDsKI2Vsc2UKCmNsYXNz
IG1kcF9jb21wbGV4IHsKIHB1YmxpYzoKICBtZHBfcmVhbCByZTsKICBtZHBfcmVhbCBpbTsKICAK
ICBtZHBfcmVhbCYgcmVhbCgpIHsgcmV0dXJuIHJlOyB9CiAgbWRwX3JlYWwmIGltYWcoKSB7IHJl
dHVybiBpbTsgfQogIAogIGNvbnN0IG1kcF9yZWFsJiByZWFsKCkgY29uc3QgeyByZXR1cm4gcmU7
IH0KICBjb25zdCBtZHBfcmVhbCYgaW1hZygpIGNvbnN0IHsgcmV0dXJuIGltOyB9CgogIGlubGlu
ZSBtZHBfY29tcGxleChjb25zdCBtZHBfcmVhbCBhPTAuMCwgY29uc3QgbWRwX3JlYWwgYj0wLjAp
IHsKICAgIHJlPWE7CiAgICBpbT1iOwogIH0KICAKICBpbmxpbmUgbWRwX2NvbXBsZXgoY29uc3Qg
bWRwX2NvbXBsZXgmIGMpIHsKICAgIHJlPWMucmVhbCgpOwogICAgaW09Yy5pbWFnKCk7CiAgfQoK
ICBpbmxpbmUgYm9vbCBvcGVyYXRvcj09IChjb25zdCBtZHBfY29tcGxleCYgYykgewogICAgcmV0
dXJuICgocmU9PWMucmVhbCgpKSAmJiAoaW09PWMuaW1hZygpKSk7CiAgfQoKICBpbmxpbmUgYm9v
bCBvcGVyYXRvciE9IChjb25zdCBtZHBfY29tcGxleCYgYykgewogICAgcmV0dXJuICgocmUhPWMu
cmVhbCgpKSB8fCAoaW0hPWMuaW1hZygpKSk7CiAgfSAgCgogIGlubGluZSBmcmllbmQgbWRwX3Jl
YWwgcmVhbChjb25zdCBtZHBfY29tcGxleCYgYykgewogICAgcmV0dXJuIGMucmVhbCgpOwogIH0K
CiAgaW5saW5lIGZyaWVuZCBtZHBfcmVhbCBpbWFnKGNvbnN0IG1kcF9jb21wbGV4JiBjKSB7CiAg
ICByZXR1cm4gYy5pbWFnKCk7CiAgfQoKICBpbmxpbmUgZnJpZW5kIG1kcF9yZWFsIGFicyhjb25z
dCBtZHBfY29tcGxleCYgYykgewogICAgcmV0dXJuIHNxcnQoYy5yZWFsKCkqYy5yZWFsKCkrYy5p
bWFnKCkqYy5pbWFnKCkpOwogIH0KCiAgaW5saW5lIGZyaWVuZCBtZHBfcmVhbCBhcmcoY29uc3Qg
bWRwX2NvbXBsZXgmIGMpIHsKICAgIHJldHVybiBwaGFzZShjKTsKICB9CiAgCiAgaW5saW5lIGZy
aWVuZCBtZHBfY29tcGxleCBwb3coY29uc3QgbWRwX2NvbXBsZXgmIGMsIG1kcF9yZWFsIHopIHsK
ICAgIG1kcF9yZWFsIHI9cG93KChkb3VibGUpIGFicyhjKSwoZG91YmxlKSB6KSxwPShtZHBfcmVh
bCkgeipwaGFzZShjKTsKICAgIHJldHVybiBtZHBfY29tcGxleChyKmNvcyhwKSxyKnNpbihwKSk7
CiAgfQoKICBpbmxpbmUgZnJpZW5kIG1kcF9jb21wbGV4IHNxcnQoY29uc3QgbWRwX2NvbXBsZXgm
IGMpIHsKICAgIG1kcF9yZWFsIHI9c3FydChhYnMoYykpLHA9MC41KmFyZyhjKTsKICAgIHJldHVy
biBtZHBfY29tcGxleChyKmNvcyhwKSxyKnNpbihwKSk7CiAgfQoKICBpbmxpbmUgZnJpZW5kIG1k
cF9jb21wbGV4IGV4cChjb25zdCBtZHBfY29tcGxleCYgYykgewogICAgbWRwX3JlYWwgZXhwX2Nf
cmU9ZXhwKGMucmVhbCgpKTsKICAgIHJldHVybiBtZHBfY29tcGxleChleHBfY19yZSpjb3MoYy5p
bWFnKCkpLCBleHBfY19yZSpzaW4oYy5pbWFnKCkpKTsKICB9CgogIGlubGluZSBmcmllbmQgbWRw
X2NvbXBsZXggc2luKGNvbnN0IG1kcF9jb21wbGV4JiBjKSB7CiAgICByZXR1cm4gbWRwX2NvbXBs
ZXgoY29zaChjLmltYWcoKSkqc2luKGMucmVhbCgpKSwgc2luaChjLmltYWcoKSkqY29zKGMucmVh
bCgpKSk7CiAgfQoKICBpbmxpbmUgZnJpZW5kIG1kcF9jb21wbGV4IGNvcyhjb25zdCBtZHBfY29t
cGxleCYgYykgewogICAgcmV0dXJuIG1kcF9jb21wbGV4KGNvc2goYy5pbWFnKCkpKmNvcyhjLnJl
YWwoKSksIC1zaW5oKGMuaW1hZygpKSpzaW4oYy5yZWFsKCkpKTsKICB9CgogIGlubGluZSBmcmll
bmQgbWRwX2NvbXBsZXggdGltZXNfaShjb25zdCBtZHBfY29tcGxleCYgYykgewogICAgcmV0dXJu
IG1kcF9jb21wbGV4KC1jLmltYWcoKSwgYy5yZWFsKCkpOwogIH0KCiAgaW5saW5lIGZyaWVuZCBt
ZHBfY29tcGxleCB0aW1lc19taW51c19pKGNvbnN0IG1kcF9jb21wbGV4JiBjKSB7CiAgICByZXR1
cm4gbWRwX2NvbXBsZXgoYy5pbWFnKCksIC1jLnJlYWwoKSk7CiAgfQoKICBpbmxpbmUgZnJpZW5k
IG1kcF9jb21wbGV4IG9wZXJhdG9yLSAoY29uc3QgbWRwX2NvbXBsZXgmIGMpIHsKICAgIHJldHVy
biBtZHBfY29tcGxleCgtYy5yZWFsKCksIC1jLmltYWcoKSk7CiAgfQoKICBpbmxpbmUgZnJpZW5k
IG1kcF9jb21wbGV4IG9wZXJhdG9yKyAoY29uc3QgbWRwX2NvbXBsZXgmIGMpIHsKICAgIHJldHVy
biBjOwogIH0KCiAgaW5saW5lIHZvaWQgb3BlcmF0b3IrPSAoY29uc3QgbWRwX2NvbXBsZXgmIGMp
IHsgCiAgICByZSs9Yy5yZWFsKCk7CiAgICBpbSs9Yy5pbWFnKCk7CiAgfQoKICBpbmxpbmUgdm9p
ZCBvcGVyYXRvci09IChjb25zdCBtZHBfY29tcGxleCYgYykgewogICAgcmUtPWMucmVhbCgpOwog
ICAgaW0tPWMuaW1hZygpOwogIH0KCiAgaW5saW5lIHZvaWQgb3BlcmF0b3IqPSAoY29uc3QgbWRw
X2NvbXBsZXgmIGMpOwoKICBpbmxpbmUgdm9pZCBvcGVyYXRvci89IChjb25zdCBtZHBfY29tcGxl
eCYgYyk7CgogIGlubGluZSBmcmllbmQgbWRwX3JlYWwgcGhhc2UoY29uc3QgbWRwX2NvbXBsZXgm
IGMpIHsKICAgIHJldHVybiBhdGFuMihjLmltYWcoKSwgYy5yZWFsKCkpOwogIH0KCiAgaW5saW5l
IGZyaWVuZCBtZHBfY29tcGxleCBjb25qKGNvbnN0IG1kcF9jb21wbGV4JiBhKSB7CiAgICByZXR1
cm4gbWRwX2NvbXBsZXgoYS5yZWFsKCksIC1hLmltYWcoKSk7CiAgfQogIAogIGlubGluZSB2b2lk
IG9wZXJhdG9yKz0gKGNvbnN0IG1kcF9yZWFsIGMpIHsKICAgIHJlKz1jOwogIH0KICAKICBpbmxp
bmUgdm9pZCBvcGVyYXRvci09IChjb25zdCBtZHBfcmVhbCBjKSB7CiAgICByZS09YzsKICB9CiAg
CiAgaW5saW5lIHZvaWQgb3BlcmF0b3IqPSAoY29uc3QgbWRwX3JlYWwgYykgewogICAgcmUqPWM7
CiAgICBpbSo9YzsKICB9CiAgCiAgaW5saW5lIHZvaWQgb3BlcmF0b3IvPSAoY29uc3QgbWRwX3Jl
YWwgYykgewogICAgcmUvPWM7CiAgICBpbS89YzsKICB9Cgp9OwoKCmlubGluZSBtZHBfY29tcGxl
eCBvcGVyYXRvcisoY29uc3QgbWRwX2NvbXBsZXgmIGEsIGNvbnN0IG1kcF9jb21wbGV4JiBiKSB7
CiAgcmV0dXJuIG1kcF9jb21wbGV4KGEucmVhbCgpK2IucmVhbCgpLCBhLmltYWcoKStiLmltYWco
KSk7Cn0KCmlubGluZSBtZHBfY29tcGxleCBvcGVyYXRvci0oY29uc3QgbWRwX2NvbXBsZXgmIGEs
IGNvbnN0IG1kcF9jb21wbGV4JiBiKSB7CiAgcmV0dXJuIG1kcF9jb21wbGV4KGEucmVhbCgpLWIu
cmVhbCgpLCBhLmltYWcoKS1iLmltYWcoKSk7Cn0KCmlubGluZSBtZHBfY29tcGxleCBvcGVyYXRv
ciooY29uc3QgbWRwX2NvbXBsZXgmIGEsIGNvbnN0IG1kcF9jb21wbGV4JiBiKSB7CiAgcmV0dXJu
IG1kcF9jb21wbGV4KGEucmVhbCgpKmIucmVhbCgpLWEuaW1hZygpKmIuaW1hZygpLGEucmVhbCgp
KmIuaW1hZygpK2EuaW1hZygpKmIucmVhbCgpKTsKfQoKaW5saW5lIG1kcF9jb21wbGV4IG9wZXJh
dG9yLyhjb25zdCBtZHBfY29tcGxleCYgYSwgY29uc3QgbWRwX2NvbXBsZXgmIGIpIHsKICBtZHBf
cmVhbCBkZW49Yi5yZWFsKCkqYi5yZWFsKCkrYi5pbWFnKCkqYi5pbWFnKCk7CiAgcmV0dXJuIG1k
cF9jb21wbGV4KChhLnJlYWwoKSpiLnJlYWwoKSthLmltYWcoKSpiLmltYWcoKSkvZGVuLChhLmlt
YWcoKSpiLnJlYWwoKS1hLnJlYWwoKSpiLmltYWcoKSkvZGVuKTsKfQoKaW5saW5lIHZvaWQgbWRw
X2NvbXBsZXg6Om9wZXJhdG9yKj0gKGNvbnN0IG1kcF9jb21wbGV4JiBjKSB7CiAgKCp0aGlzKT0o
KnRoaXMpKmM7Cn0KCmlubGluZSB2b2lkIG1kcF9jb21wbGV4OjpvcGVyYXRvci89IChjb25zdCBt
ZHBfY29tcGxleCYgYykgewogICgqdGhpcyk9KCp0aGlzKS9jOwp9CgoKCmlubGluZSBtZHBfY29t
cGxleCBvcGVyYXRvcisgKGNvbnN0IG1kcF9jb21wbGV4JiBhLCBjb25zdCBpbnQgYykgewogIHJl
dHVybiBtZHBfY29tcGxleChhLnJlYWwoKStjLGEuaW1hZygpKTsKfQoKaW5saW5lIG1kcF9jb21w
bGV4IG9wZXJhdG9yLSAoY29uc3QgbWRwX2NvbXBsZXgmIGEsIGNvbnN0IGludCBjKSB7CiAgcmV0
dXJuIG1kcF9jb21wbGV4KGEucmVhbCgpLWMsYS5pbWFnKCkpOwp9CgppbmxpbmUgbWRwX2NvbXBs
ZXggb3BlcmF0b3IqIChjb25zdCBtZHBfY29tcGxleCYgYSwgY29uc3QgaW50IGMpIHsKICByZXR1
cm4gbWRwX2NvbXBsZXgoYS5yZWFsKCkqYyxhLmltYWcoKSpjKTsKfQoKaW5saW5lIG1kcF9jb21w
bGV4IG9wZXJhdG9yLyAoY29uc3QgbWRwX2NvbXBsZXgmIGEsIGNvbnN0IGludCBjKSB7CiAgcmV0
dXJuIG1kcF9jb21wbGV4KGEucmVhbCgpL2MsYS5pbWFnKCkvYyk7CiAgfQoKaW5saW5lIG1kcF9j
b21wbGV4IG9wZXJhdG9yKyAoY29uc3QgaW50IGEsIGNvbnN0IG1kcF9jb21wbGV4JiBjKSB7CiAg
cmV0dXJuIG1kcF9jb21wbGV4KGMucmVhbCgpK2EsYy5pbWFnKCkpOwp9CgppbmxpbmUgbWRwX2Nv
bXBsZXggb3BlcmF0b3ItIChjb25zdCBpbnQgYSwgY29uc3QgbWRwX2NvbXBsZXgmIGMpIHsKICBy
ZXR1cm4gbWRwX2NvbXBsZXgoYy5yZWFsKCktYSxjLmltYWcoKSk7Cn0KCmlubGluZSBtZHBfY29t
cGxleCBvcGVyYXRvciogKGNvbnN0IGludCBhLCBjb25zdCBtZHBfY29tcGxleCYgYykgewogIHJl
dHVybiBtZHBfY29tcGxleChjLnJlYWwoKSphLGMuaW1hZygpKmEpOwp9CgppbmxpbmUgbWRwX2Nv
bXBsZXggb3BlcmF0b3IvIChjb25zdCBpbnQgYSwgY29uc3QgbWRwX2NvbXBsZXgmIGMpIHsKICBt
ZHBfcmVhbCBkZW49KGMucmVhbCgpKmMucmVhbCgpK2MuaW1hZygpKmMuaW1hZygpKS9hOwogIHJl
dHVybiBtZHBfY29tcGxleCgoYy5yZWFsKCkpL2RlbiwoLWMuaW1hZygpKS9kZW4pOwp9CgoKCgpp
bmxpbmUgbWRwX2NvbXBsZXggb3BlcmF0b3IrIChjb25zdCBtZHBfY29tcGxleCYgYSwgY29uc3Qg
bG9uZyBjKSB7CiAgcmV0dXJuIG1kcF9jb21wbGV4KGEucmVhbCgpK2MsYS5pbWFnKCkpOwp9Cgpp
bmxpbmUgbWRwX2NvbXBsZXggb3BlcmF0b3ItIChjb25zdCBtZHBfY29tcGxleCYgYSwgY29uc3Qg
bG9uZyBjKSB7CiAgcmV0dXJuIG1kcF9jb21wbGV4KGEucmVhbCgpLWMsYS5pbWFnKCkpOwp9Cgpp
bmxpbmUgbWRwX2NvbXBsZXggb3BlcmF0b3IqIChjb25zdCBtZHBfY29tcGxleCYgYSwgY29uc3Qg
bG9uZyBjKSB7CiAgcmV0dXJuIG1kcF9jb21wbGV4KGEucmVhbCgpKmMsYS5pbWFnKCkqYyk7Cn0K
CmlubGluZSBtZHBfY29tcGxleCBvcGVyYXRvci8gKGNvbnN0IG1kcF9jb21wbGV4JiBhLCBjb25z
dCBsb25nIGMpIHsKICByZXR1cm4gbWRwX2NvbXBsZXgoYS5yZWFsKCkvYyxhLmltYWcoKS9jKTsK
ICB9CgppbmxpbmUgbWRwX2NvbXBsZXggb3BlcmF0b3IrIChjb25zdCBsb25nIGEsIGNvbnN0IG1k
cF9jb21wbGV4JiBjKSB7CiAgcmV0dXJuIG1kcF9jb21wbGV4KGMucmVhbCgpK2EsYy5pbWFnKCkp
Owp9CgppbmxpbmUgbWRwX2NvbXBsZXggb3BlcmF0b3ItIChjb25zdCBsb25nIGEsIGNvbnN0IG1k
cF9jb21wbGV4JiBjKSB7CiAgcmV0dXJuIG1kcF9jb21wbGV4KGMucmVhbCgpLWEsYy5pbWFnKCkp
Owp9CgppbmxpbmUgbWRwX2NvbXBsZXggb3BlcmF0b3IqIChjb25zdCBsb25nIGEsIGNvbnN0IG1k
cF9jb21wbGV4JiBjKSB7CiAgcmV0dXJuIG1kcF9jb21wbGV4KGMucmVhbCgpKmEsYy5pbWFnKCkq
YSk7Cn0KCmlubGluZSBtZHBfY29tcGxleCBvcGVyYXRvci8gKGNvbnN0IGxvbmcgYSwgY29uc3Qg
bWRwX2NvbXBsZXgmIGMpIHsKICBtZHBfcmVhbCBkZW49KGMucmVhbCgpKmMucmVhbCgpK2MuaW1h
ZygpKmMuaW1hZygpKS9hOwogIHJldHVybiBtZHBfY29tcGxleCgoYy5yZWFsKCkpL2RlbiwoLWMu
aW1hZygpKS9kZW4pOwp9CgoKCmlubGluZSBtZHBfY29tcGxleCBvcGVyYXRvcisgKGNvbnN0IG1k
cF9jb21wbGV4JiBhLCBjb25zdCBmbG9hdCBjKSB7CiAgcmV0dXJuIG1kcF9jb21wbGV4KGEucmVh
bCgpK2MsYS5pbWFnKCkpOwp9CgppbmxpbmUgbWRwX2NvbXBsZXggb3BlcmF0b3ItIChjb25zdCBt
ZHBfY29tcGxleCYgYSwgY29uc3QgZmxvYXQgYykgewogIHJldHVybiBtZHBfY29tcGxleChhLnJl
YWwoKS1jLGEuaW1hZygpKTsKfQoKaW5saW5lIG1kcF9jb21wbGV4IG9wZXJhdG9yKiAoY29uc3Qg
bWRwX2NvbXBsZXgmIGEsIGNvbnN0IGZsb2F0IGMpIHsKICByZXR1cm4gbWRwX2NvbXBsZXgoYS5y
ZWFsKCkqYyxhLmltYWcoKSpjKTsKfQoKaW5saW5lIG1kcF9jb21wbGV4IG9wZXJhdG9yLyAoY29u
c3QgbWRwX2NvbXBsZXgmIGEsIGNvbnN0IGZsb2F0IGMpIHsKICByZXR1cm4gbWRwX2NvbXBsZXgo
YS5yZWFsKCkvYyxhLmltYWcoKS9jKTsKICB9CgppbmxpbmUgbWRwX2NvbXBsZXggb3BlcmF0b3Ir
IChjb25zdCBmbG9hdCBhLCBjb25zdCBtZHBfY29tcGxleCYgYykgewogIHJldHVybiBtZHBfY29t
cGxleChjLnJlYWwoKSthLGMuaW1hZygpKTsKfQoKaW5saW5lIG1kcF9jb21wbGV4IG9wZXJhdG9y
LSAoY29uc3QgZmxvYXQgYSwgY29uc3QgbWRwX2NvbXBsZXgmIGMpIHsKICByZXR1cm4gbWRwX2Nv
bXBsZXgoYy5yZWFsKCktYSxjLmltYWcoKSk7Cn0KCmlubGluZSBtZHBfY29tcGxleCBvcGVyYXRv
ciogKGNvbnN0IGZsb2F0IGEsIGNvbnN0IG1kcF9jb21wbGV4JiBjKSB7CiAgcmV0dXJuIG1kcF9j
b21wbGV4KGMucmVhbCgpKmEsYy5pbWFnKCkqYSk7Cn0KCmlubGluZSBtZHBfY29tcGxleCBvcGVy
YXRvci8gKGNvbnN0IGZsb2F0IGEsIGNvbnN0IG1kcF9jb21wbGV4JiBjKSB7CiAgbWRwX3JlYWwg
ZGVuPShjLnJlYWwoKSpjLnJlYWwoKStjLmltYWcoKSpjLmltYWcoKSkvYTsKICByZXR1cm4gbWRw
X2NvbXBsZXgoKGMucmVhbCgpKS9kZW4sKC1jLmltYWcoKSkvZGVuKTsKfQoKCmlubGluZSBtZHBf
Y29tcGxleCBvcGVyYXRvcisgKGNvbnN0IG1kcF9jb21wbGV4JiBhLCBjb25zdCBkb3VibGUgYykg
ewogIHJldHVybiBtZHBfY29tcGxleChhLnJlYWwoKStjLGEuaW1hZygpKTsKfQoKaW5saW5lIG1k
cF9jb21wbGV4IG9wZXJhdG9yLSAoY29uc3QgbWRwX2NvbXBsZXgmIGEsIGNvbnN0IGRvdWJsZSBj
KSB7CiAgcmV0dXJuIG1kcF9jb21wbGV4KGEucmVhbCgpLWMsYS5pbWFnKCkpOwp9CgppbmxpbmUg
bWRwX2NvbXBsZXggb3BlcmF0b3IqIChjb25zdCBtZHBfY29tcGxleCYgYSwgY29uc3QgZG91Ymxl
IGMpIHsKICByZXR1cm4gbWRwX2NvbXBsZXgoYS5yZWFsKCkqYyxhLmltYWcoKSpjKTsKfQoKaW5s
aW5lIG1kcF9jb21wbGV4IG9wZXJhdG9yLyAoY29uc3QgbWRwX2NvbXBsZXgmIGEsIGNvbnN0IGRv
dWJsZSBjKSB7CiAgcmV0dXJuIG1kcF9jb21wbGV4KGEucmVhbCgpL2MsYS5pbWFnKCkvYyk7CiAg
fQoKaW5saW5lIG1kcF9jb21wbGV4IG9wZXJhdG9yKyAoY29uc3QgZG91YmxlIGEsIGNvbnN0IG1k
cF9jb21wbGV4JiBjKSB7CiAgcmV0dXJuIG1kcF9jb21wbGV4KGMucmVhbCgpK2EsYy5pbWFnKCkp
Owp9CgppbmxpbmUgbWRwX2NvbXBsZXggb3BlcmF0b3ItIChjb25zdCBkb3VibGUgYSwgY29uc3Qg
bWRwX2NvbXBsZXgmIGMpIHsKICByZXR1cm4gbWRwX2NvbXBsZXgoYy5yZWFsKCktYSxjLmltYWco
KSk7Cn0KCmlubGluZSBtZHBfY29tcGxleCBvcGVyYXRvciogKGNvbnN0IGRvdWJsZSBhLCBjb25z
dCBtZHBfY29tcGxleCYgYykgewogIHJldHVybiBtZHBfY29tcGxleChjLnJlYWwoKSphLGMuaW1h
ZygpKmEpOwp9CgppbmxpbmUgbWRwX2NvbXBsZXggb3BlcmF0b3IvIChjb25zdCBkb3VibGUgYSwg
Y29uc3QgbWRwX2NvbXBsZXgmIGMpIHsKICBtZHBfcmVhbCBkZW49KGMucmVhbCgpKmMucmVhbCgp
K2MuaW1hZygpKmMuaW1hZygpKS9hOwogIHJldHVybiBtZHBfY29tcGxleCgoYy5yZWFsKCkpL2Rl
biwoLWMuaW1hZygpKS9kZW4pOwp9CgojZW5kaWYKCgpjb25zdCBtZHBfY29tcGxleCBJPW1kcF9j
b21wbGV4KDAsMSk7CgppbmxpbmUgbWRwX3JlYWwgYWJzMihjb25zdCBtZHBfY29tcGxleCAmYSkg
ewogIHJldHVybiByZWFsKGEpKnJlYWwoYSkraW1hZyhhKSppbWFnKGEpOwp9Cgpvc3RyZWFtJiBv
cGVyYXRvcjw8IChvc3RyZWFtJiBvcywgY29uc3QgbWRwX2NvbXBsZXgmIGEpIHsKICBvcyA8PCBh
LnJlYWwoKSA8PCAiKyIgPDwgYS5pbWFnKCkgPDwgIkkiOwogIHJldHVybiBvczsKfQoKCgAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtZHBfY29tcGxleF9maWVsZC5oAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAMDEwMDY0NAAwMDMzMTI2ADAwMjQ0NjEAMDAwMDAwMzAxMDUAMTAxNDMw
MTMxNTYAMDE1NDUzACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AHVzdGFyICAATURpUGllcnJvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABta2dyb3VwLWwtZAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLyBGaWxl
IE5hbWU6IG1kcF9maWVsZF9sb2FkLmgKLy8gVmVyc2lvbjogICAyLjMKLy8gRGF0ZTogICAgICAx
LU9jdC0yMDAyCi8vIEF1dGhvcjogICAgTWFzc2ltbyBEaSBQaWVycm8gPG1kcEBtZXRhY3J5cHRp
b24uY29tPgovLyBMaWNlbnNlOiAgIFRoaXMgZmlsZSBpcyBleGNsdXNpdmUgcHJvcGVydHkgb2Yg
TWV0YUNyeXB0aW9uIExMQwovLyAgICAgICAgICAgIFJlYWQgYXR0YWNoZWQgbGljZW5zZSBpbiBm
aWxlIG1kcF9saWNlbnNlLnBkZgovLyAgICAgICAgICAgIFRoaXMgZmlsZSBjYW5ub3QgYmUgZGlz
dHJpYnV0ZWQgd2l0aG91dCBmaWxlIG1kcF9saWNlbnNlLnBkZgovLwovLyBEZXNjcmlwdGlvbjoK
Ly8gICAgIG1kcF9maWVsZDo6bG9hZCgpIGxvYWQgYSBmaWVsZCBpbiBwYXJhbGxlbCBmcm9tIGEg
ZGlzawovLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCmJvb2wgbWRwX3dyaXRlX2RvdWJsZV9hc19mbG9h
dChGSUxFICpmcCwKCQkJICAgICAgIHZvaWQqIGRhdGEsCgkJCSAgICAgICBsb25nIHBzaXplLAoJ
CQkgICAgICAgbG9uZyBoZWFkZXJfc2l6ZSwKCQkJICAgICAgIGxvbmcgcG9zaXRpb24sCgkJCSAg
ICAgICBjb25zdCBtZHBfbGF0dGljZSAmbGF0dGljZSkgewogIGRvdWJsZSAqcD0oZG91YmxlKikg
ZGF0YTsKICBmbG9hdCAgKnE9KGZsb2F0KikgbWFsbG9jKHBzaXplLzIpOwogIGZvcih1aW50IGk9
MDsgaTxwc2l6ZS9zaXplb2YoZG91YmxlKTsgaSsrKSBxW2ldPXBbaV07CiAgaWYoZnNlZWsoZnAs
IHBvc2l0aW9uKnBzaXplLzIraGVhZGVyX3NpemUsIFNFRUtfU0VUKSB8fAogICAgIGZ3cml0ZShx
LCBwc2l6ZS8yLDEsIGZwKSE9MSkgcmV0dXJuIGZhbHNlOwogIGZyZWUocSk7CiAgcmV0dXJuIHRy
dWU7Cn0KCmJvb2wgbWRwX3JlYWRfZG91YmxlX2FzX2Zsb2F0KEZJTEUgKmZwLAoJCQkgICAgICAg
dm9pZCogZGF0YSwKCQkJICAgICAgIGxvbmcgcHNpemUsCgkJCSAgICAgICBsb25nIGhlYWRlcl9z
aXplLAoJCQkgICAgICAgbG9uZyBwb3NpdGlvbiwKCQkJICAgICAgIGNvbnN0IG1kcF9sYXR0aWNl
ICZsYXR0aWNlKSB7CiAgZG91YmxlICpwPShkb3VibGUqKSBkYXRhOwogIGZsb2F0ICAqcT0oZmxv
YXQqKSBtYWxsb2MocHNpemUvMik7CiAgaWYoZnNlZWsoZnAsIHBvc2l0aW9uKnBzaXplLzIraGVh
ZGVyX3NpemUsIFNFRUtfU0VUKSB8fAogICAgIGZyZWFkKHEsIHBzaXplLzIsMSwgZnApIT0xKSBy
ZXR1cm4gZmFsc2U7CiAgZm9yKHVpbnQgaT0wOyBpPHBzaXplL3NpemVvZihkb3VibGUpOyBpKysp
IHBbaV09cVtpXTsKICBmcmVlKHEpOwogIHJldHVybiB0cnVlOwp9Cgpib29sIG1kcF93cml0ZV9m
bG9hdF9hc19kb3VibGUoRklMRSAqZnAsCgkJCSAgICAgICB2b2lkKiBkYXRhLAoJCQkgICAgICAg
bG9uZyBwc2l6ZSwKCQkJICAgICAgIGxvbmcgaGVhZGVyX3NpemUsCgkJCSAgICAgICBsb25nIHBv
c2l0aW9uLAoJCQkgICAgICAgY29uc3QgbWRwX2xhdHRpY2UgJmxhdHRpY2UpIHsKICBmbG9hdCAg
KnA9KGZsb2F0KikgZGF0YTsKICBkb3VibGUgKnE9KGRvdWJsZSopIG1hbGxvYyhwc2l6ZSoyKTsK
ICBmb3IodWludCBpPTA7IGk8cHNpemUvc2l6ZW9mKGZsb2F0KTsgaSsrKSBxW2ldPXBbaV07CiAg
aWYoZnNlZWsoZnAsIHBvc2l0aW9uKnBzaXplKjIraGVhZGVyX3NpemUsIFNFRUtfU0VUKSB8fAog
ICAgIGZ3cml0ZShxLCBwc2l6ZSoyLDEsIGZwKSE9MSkgcmV0dXJuIGZhbHNlOwogIGZyZWUocSk7
CiAgcmV0dXJuIHRydWU7Cn0KCmJvb2wgbWRwX3JlYWRfZmxvYXRfYXNfZG91YmxlKEZJTEUgKmZw
LAoJCQkgICAgICB2b2lkKiBkYXRhLAoJCQkgICAgICBsb25nIHBzaXplLAoJCQkgICAgICBsb25n
IGhlYWRlcl9zaXplLAoJCQkgICAgICBsb25nIHBvc2l0aW9uLAoJCQkgICAgICBjb25zdCBtZHBf
bGF0dGljZSAmbGF0dGljZSkgewogIGZsb2F0ICAqcD0oZmxvYXQqKSBkYXRhOwogIGRvdWJsZSAq
cT0oZG91YmxlKikgbWFsbG9jKHBzaXplKjIpOwogIGlmKGZzZWVrKGZwLCBwb3NpdGlvbipwc2l6
ZSoyK2hlYWRlcl9zaXplLCBTRUVLX1NFVCkgfHwKICAgICBmcmVhZChxLCBwc2l6ZSoyLDEsIGZw
KSE9MSkgcmV0dXJuIGZhbHNlOwogIGZvcih1aW50IGk9MDsgaTxwc2l6ZS9zaXplb2YoZmxvYXQp
OyBpKyspIHBbaV09cVtpXTsKICBmcmVlKHEpOwogIHJldHVybiB0cnVlOwp9CgpjbGFzcyBtZHBf
Y29tcGxleF9maWVsZCA6IHB1YmxpYyBtZHBfZmllbGQ8bWRwX2NvbXBsZXg+IHsKIHB1YmxpYzoK
ICBtZHBfY29tcGxleF9maWVsZCgpIHt9CiAgbWRwX2NvbXBsZXhfZmllbGQobWRwX2xhdHRpY2Um
IGxhdHRpY2UsIGludCBuPTEpIHsgCiAgICBhbGxvY2F0ZV9maWVsZChsYXR0aWNlLG4pOwogIH0K
ICBpbmxpbmUgdm9pZCBvcGVyYXRvcj0gKGNvbnN0IG1kcF9jb21wbGV4X2ZpZWxkICZwc2kpIHsK
ICAgIGlmKCZsYXR0aWNlKCk9PTApIHJldHVybjsKICAgIGlmKCZsYXR0aWNlKCkgIT0gJnBzaS5s
YXR0aWNlKCkgfHwgCiAgICAgICBzaXplIT1wc2kuc2l6ZSB8fCAKICAgICAgIGZpZWxkX2NvbXBv
bmVudHMhPXBzaS5maWVsZF9jb21wb25lbnRzKSAKICAgICAgZXJyb3IoIm1kcF9maWVsZDogb3Bl
cmF0b3I9KCkgaW1wYXRpYmxlIGZpZWxkcyIpOwoKICAgIGxvbmcgaT0wOyAgICAKICAgIAojaWYg
ZGVmaW5lZChTU0UyKSAmJiBkZWZpbmVkKFVTRV9ET1VCTEVfUFJFQ0lTSU9OKSAmJiAhZGVmaW5l
ZChOT19TU0UyX0xJTkFMRykKICAgIF9zc2VfZG91YmxlKiByPShfc3NlX2RvdWJsZSopIG07CiAg
ICBfc3NlX2RvdWJsZSogcz0oX3NzZV9kb3VibGUqKSBwc2kubTsKICAgIAogICAgZm9yKDsgaTxz
aXplLTc7IGkrPTgsIHIrPTgsIHMrPTgpIHsKICAgICAgX3NzZV9kb3VibGVfcHJlZmV0Y2hfMTYo
cys4KTsKICAgICAgX3NzZV9kb3VibGVfY29weV8xNihyLHMpOwogICAgfQojZW5kaWYKICAgIAog
ICAgZm9yKDsgaTxzaXplOyBpKyspIG1baV09cHNpLm1baV07CiAgfQogIAogIGlubGluZSB2b2lk
IG9wZXJhdG9yKj0oY29uc3QgbWRwX2NvbXBsZXggYWxwaGEpIHsKICAgIGxvbmcgaV9taW49cGh5
c2ljYWxfbG9jYWxfc3RhcnQoRVZFTk9ERCk7CiAgICBsb25nIGlfbWF4PXBoeXNpY2FsX2xvY2Fs
X3N0b3AoRVZFTk9ERCk7CiAgICBsb25nIGk9aV9taW47CiAgICBmb3IoOyBpPGlfbWF4OyBpKysp
IG1baV0qPWFscGhhOwogIH0KICBpbmxpbmUgdm9pZCBvcGVyYXRvci89KGNvbnN0IG1kcF9jb21w
bGV4IGFscGhhKSB7CiAgICAoKnRoaXMpKj0oMS4wL2FscGhhKTsKICB9CgogIGlubGluZSB2b2lk
IG9wZXJhdG9yKj0oY29uc3QgbWRwX3JlYWwgYWxwaGEpIHsKICAgIGxvbmcgaV9taW49cGh5c2lj
YWxfbG9jYWxfc3RhcnQoRVZFTk9ERCk7CiAgICBsb25nIGlfbWF4PXBoeXNpY2FsX2xvY2FsX3N0
b3AoRVZFTk9ERCk7CiAgICBsb25nIGk9aV9taW47CgogICAgaWYoYWxwaGE9PTEpIHJldHVybjsK
ICAgIAojaWYgZGVmaW5lZChTU0UyKSAmJiBkZWZpbmVkKFVTRV9ET1VCTEVfUFJFQ0lTSU9OKSAm
JiAhZGVmaW5lZChOT19TU0UyX0xJTkFMRykKICAgIHN0YXRpYyBfc3NlX2RvdWJsZSBjIEFMSUdO
MTY7CiAgICBfc3NlX2RvdWJsZSogcj0oX3NzZV9kb3VibGUqKSBwaHlzaWNhbF9hZGRyZXNzKGlf
bWluKTsKCiAgICBfc3NlX2NoZWNrX2FsaWdubWVudCgmYywweGYpOwoKICAgIGMuYzE9Yy5jMj1h
bHBoYTsKICAgIGZvcig7IGk8aV9tYXgtNzsgaSs9OCwgcis9OCkgewogICAgICBfc3NlX2RvdWJs
ZV9wcmVmZXRjaF8xNihyKzgpOwogICAgICBfc3NlX2RvdWJsZV9tdWx0aXBseV8xNihyLGMscik7
IAogICAgfQojZW5kaWYKICAgIAogICAgZm9yKDsgaTxpX21heDsgaSsrKSBtW2ldKj1hbHBoYTsK
ICB9CgogIGlubGluZSB2b2lkIG9wZXJhdG9yLz0oY29uc3QgbWRwX3JlYWwgYWxwaGEpIHsKICAg
ICgqdGhpcykqPSgxLjAvYWxwaGEpOwogIH0KCiAgCiAgaW5saW5lIHZvaWQgb3BlcmF0b3IrPSht
ZHBfY29tcGxleF9maWVsZCAmcHNpKSB7CiAgICBsb25nIGlfbWluPXBzaS5waHlzaWNhbF9sb2Nh
bF9zdGFydChFVkVOT0REKTsKICAgIGxvbmcgaV9tYXg9cHNpLnBoeXNpY2FsX2xvY2FsX3N0b3Ao
RVZFTk9ERCk7CiAgICBsb25nIGk9aV9taW47CgojaWYgZGVmaW5lZChTU0UyKSAmJiBkZWZpbmVk
KFVTRV9ET1VCTEVfUFJFQ0lTSU9OKSAmJiAhZGVmaW5lZChOT19TU0UyX0xJTkFMRykKICAgIF9z
c2VfZG91YmxlKiByPShfc3NlX2RvdWJsZSopIHBoeXNpY2FsX2FkZHJlc3MoaV9taW4pOwogICAg
X3NzZV9kb3VibGUqIHM9KF9zc2VfZG91YmxlKikgcHNpLnBoeXNpY2FsX2FkZHJlc3MoaV9taW4p
OwogICAgCiAgICBmb3IoOyBpPGlfbWF4LTc7IGkrPTgsIHIrPTgsIHMrPTgpIHsKICAgICAgX3Nz
ZV9kb3VibGVfcHJlZmV0Y2hfMTYocys4KTsKICAgICAgX3NzZV9kb3VibGVfYWRkXzE2KHIscyk7
IAogICAgfQojZW5kaWYgICAKICAgIAogICAgZm9yKDsgaTxpX21heDsgaSsrKSBtW2ldKz1wc2ku
bVtpXTsKICB9CgogIGlubGluZSB2b2lkIG9wZXJhdG9yLT0obWRwX2NvbXBsZXhfZmllbGQgJnBz
aSkgewogICAgbG9uZyBpX21pbj1wc2kucGh5c2ljYWxfbG9jYWxfc3RhcnQoRVZFTk9ERCk7CiAg
ICBsb25nIGlfbWF4PXBzaS5waHlzaWNhbF9sb2NhbF9zdG9wKEVWRU5PREQpOwogICAgbG9uZyBp
PWlfbWluOwoKI2lmIGRlZmluZWQoU1NFMikgJiYgZGVmaW5lZChVU0VfRE9VQkxFX1BSRUNJU0lP
TikgJiYgIWRlZmluZWQoTk9fU1NFMl9MSU5BTEcpCiAgICBfc3NlX2RvdWJsZSogcj0oX3NzZV9k
b3VibGUqKSBwaHlzaWNhbF9hZGRyZXNzKGlfbWluKTsKICAgIF9zc2VfZG91YmxlKiBzPShfc3Nl
X2RvdWJsZSopIHBzaS5waHlzaWNhbF9hZGRyZXNzKGlfbWluKTsKICAgIAogICAgZm9yKDsgaTxp
X21heC03OyBpKz04LCByKz04LCBzKz04KSB7CiAgICAgIF9zc2VfZG91YmxlX3ByZWZldGNoXzE2
KHMrOCk7CiAgICAgIF9zc2VfZG91YmxlX3N1Yl8xNihyLHMpOyAKICAgIH0KI2VuZGlmICAgCiAg
ICAKICAgIGZvcig7IGk8aV9tYXg7IGkrKykgbVtpXS09cHNpLm1baV07CiAgfQoKCiAgaW5saW5l
IGZyaWVuZCBtZHBfcmVhbCBub3JtX3NxdWFyZShtZHBfY29tcGxleF9maWVsZCAmcHNpLCAKCQkJ
CSAgICAgaW50IHBhcml0eT1FVkVOT0REKSB7CiAgICBkb3VibGUgbjI9MDsKICAgIGxvbmcgaV9t
aW49cHNpLnBoeXNpY2FsX2xvY2FsX3N0YXJ0KHBhcml0eSk7CiAgICBsb25nIGlfbWF4PXBzaS5w
aHlzaWNhbF9sb2NhbF9zdG9wKHBhcml0eSk7CiAgICBsb25nIGk9aV9taW47CiAgIAojaWYgZGVm
aW5lZChTU0UyKSAmJiBkZWZpbmVkKFVTRV9ET1VCTEVfUFJFQ0lTSU9OKSAmJiAhZGVmaW5lZChO
T19TU0UyX0xJTkFMRykKICAgIHN0YXRpYyBfc3NlX2RvdWJsZSBjIEFMSUdOMTY7CiAgICBfc3Nl
X2RvdWJsZSogcj0oX3NzZV9kb3VibGUqKSBwc2kucGh5c2ljYWxfYWRkcmVzcyhpX21pbik7Cgog
ICAgX3NzZV9jaGVja19hbGlnbm1lbnQoJmMsMHhmKTsKCiAgICBjLmMxPWMuYzI9MDsKICAgIGZv
cig7IGk8aV9tYXgtNzsgaSs9OCwgcis9OCkgewogICAgICBfc3NlX2RvdWJsZV9wcmVmZXRjaF8x
NihyKzgpOwogICAgICBfc3NlX2RvdWJsZV9hZGRfbm9ybV9zcXVhcmVfMTYocixjKTsKICAgIH0K
ICAgIG4yKz1jLmMxK2MuYzI7CiNlbmRpZgogICAKICAgIGZvcig7IGk8aV9tYXg7IGkrKykKICAg
ICAgbjIrPWFiczIocHNpW2ldKTsKICAgIG1waS5hZGQobjIpOwogICAgcmV0dXJuIG4yOwogIH0K
CiAgaW5saW5lIGZyaWVuZCBtZHBfY29tcGxleCBzY2FsYXJfcHJvZHVjdChtZHBfY29tcGxleF9m
aWVsZCAmcHNpLCAKCQkJCQkgIG1kcF9jb21wbGV4X2ZpZWxkICZjaGksCgkJCQkJICBpbnQgcGFy
aXR5PUVWRU5PREQpIHsKICAgIG1kcF9jb21wbGV4IG4yPTA7CiAgICBsb25nIGlfbWluPXBzaS5w
aHlzaWNhbF9sb2NhbF9zdGFydChwYXJpdHkpOwogICAgbG9uZyBpX21heD1wc2kucGh5c2ljYWxf
bG9jYWxfc3RvcChwYXJpdHkpOwogICAgbG9uZyBpPWlfbWluOwogICAKI2lmIGRlZmluZWQoU1NF
MikgJiYgZGVmaW5lZChVU0VfRE9VQkxFX1BSRUNJU0lPTikgJiYgIWRlZmluZWQoTk9fU1NFMl9M
SU5BTEcpCiAgICBzdGF0aWMgX3NzZV9kb3VibGUgYyxkIEFMSUdOMTY7CiAgICBfc3NlX2RvdWJs
ZSogcj0oX3NzZV9kb3VibGUqKSBwc2kucGh5c2ljYWxfYWRkcmVzcyhpX21pbik7CiAgICBfc3Nl
X2RvdWJsZSogcz0oX3NzZV9kb3VibGUqKSBjaGkucGh5c2ljYWxfYWRkcmVzcyhpX21pbik7Cgog
ICAgX3NzZV9jaGVja19hbGlnbm1lbnQoJmMsMHhmKTsKCiAgICBjLmMxPWMuYzI9MDsKICAgIGQu
YzE9ZC5jMj0wOwogICAgZm9yKDsgaTxpX21heC03OyBpKz04LCByKz04LCBzKz04KSB7CiAgICAg
IF9zc2VfZG91YmxlX3ByZWZldGNoXzE2KHIrOCk7CiAgICAgIF9zc2VfZG91YmxlX3ByZWZldGNo
XzE2KHMrOCk7CiAgICAgIF9zc2VfZG91YmxlX2FkZF9yZWFsX3NjYWxhcl9wcm9kdWN0XzE2KHIs
cyxjKTsKICAgICAgX3NzZV9kb3VibGVfYWRkX2ltYWdfc2NhbGFyX3Byb2R1Y3RfMTYocixzLGQp
OwogICAgfQogICAgbjIrPW1kcF9jb21wbGV4KGMuYzErYy5jMixkLmMyLWQuYzEpOwojZW5kaWYK
ICAgIAogICAgZm9yKDtpPGlfbWF4OyBpKyspCiAgICAgIG4yKz1jb25qKHBzaVtpXSkqY2hpW2ld
OwogICAgbXBpLmFkZChuMik7CgogICAgcmV0dXJuIG4yOwogIH0KCiAgaW5saW5lIGZyaWVuZCBt
ZHBfcmVhbCByZWFsX3NjYWxhcl9wcm9kdWN0KG1kcF9jb21wbGV4X2ZpZWxkICZwc2ksIAoJCQkJ
CSAgICAgbWRwX2NvbXBsZXhfZmllbGQgJmNoaSwgCgkJCQkJICAgICBpbnQgcGFyaXR5PUVWRU5P
REQpIHsKCiAgICBkb3VibGUgbjI9MDsKICAgIGxvbmcgaV9taW49cHNpLnBoeXNpY2FsX2xvY2Fs
X3N0YXJ0KHBhcml0eSk7CiAgICBsb25nIGlfbWF4PXBzaS5waHlzaWNhbF9sb2NhbF9zdG9wKHBh
cml0eSk7CiAgICBsb25nIGk9aV9taW47CiAgICAKI2lmIGRlZmluZWQoU1NFMikgJiYgZGVmaW5l
ZChVU0VfRE9VQkxFX1BSRUNJU0lPTikgJiYgIWRlZmluZWQoTk9fU1NFMl9MSU5BTEcpCiAgICBz
dGF0aWMgX3NzZV9kb3VibGUgYyBBTElHTjE2OwogICAgX3NzZV9kb3VibGUqIHI9KF9zc2VfZG91
YmxlKikgcHNpLnBoeXNpY2FsX2FkZHJlc3MoaV9taW4pOwogICAgX3NzZV9kb3VibGUqIHM9KF9z
c2VfZG91YmxlKikgY2hpLnBoeXNpY2FsX2FkZHJlc3MoaV9taW4pOwoKICAgIF9zc2VfY2hlY2tf
YWxpZ25tZW50KCZjLDB4Zik7CgogICAgYy5jMT1jLmMyPTA7CiAgICBmb3IoOyBpPGlfbWF4LTc7
IGkrPTgsIHIrPTgsIHMrPTgpIHsKICAgICAgX3NzZV9kb3VibGVfcHJlZmV0Y2hfMTYocis4KTsK
ICAgICAgX3NzZV9kb3VibGVfcHJlZmV0Y2hfMTYocys4KTsKICAgICAgX3NzZV9kb3VibGVfYWRk
X3JlYWxfc2NhbGFyX3Byb2R1Y3RfMTYocixzLGMpOwogICAgfQogICAgbjIrPWMuYzErYy5jMjsK
I2VuZGlmCiAgIAogICAgZm9yKDtpPGlfbWF4OyBpKyspCiAgICAgIG4yKz0KCXJlYWwoY2hpW2ld
KSpyZWFsKHBzaVtpXSkrCglpbWFnKGNoaVtpXSkqaW1hZyhwc2lbaV0pOwogICAgCiAgICBtcGku
YWRkKG4yKTsKICAgIHJldHVybiBuMjsKICB9CgogIGlubGluZSBmcmllbmQgbWRwX3JlYWwgaW1h
Z19zY2FsYXJfcHJvZHVjdChtZHBfY29tcGxleF9maWVsZCAmcHNpLCAKCQkJCQkgICAgIG1kcF9j
b21wbGV4X2ZpZWxkICZjaGksIAoJCQkJCSAgICAgaW50IHBhcml0eT1FVkVOT0REKSB7CiAgICBk
b3VibGUgbjI9MDsKICAgIGxvbmcgaV9taW49cHNpLnBoeXNpY2FsX2xvY2FsX3N0YXJ0KHBhcml0
eSk7CiAgICBsb25nIGlfbWF4PXBzaS5waHlzaWNhbF9sb2NhbF9zdG9wKHBhcml0eSk7CiAgICBs
b25nIGk9aV9taW47CiAgICAKI2lmIGRlZmluZWQoU1NFMikgJiYgZGVmaW5lZChVU0VfRE9VQkxF
X1BSRUNJU0lPTikgJiYgIWRlZmluZWQoTk9fU1NFMl9MSU5BTEcpCiAgICBzdGF0aWMgX3NzZV9k
b3VibGUgYyBBTElHTjE2OwogICAgX3NzZV9kb3VibGUqIHI9KF9zc2VfZG91YmxlKikgcHNpLnBo
eXNpY2FsX2FkZHJlc3MoaV9taW4pOwogICAgX3NzZV9kb3VibGUqIHM9KF9zc2VfZG91YmxlKikg
Y2hpLnBoeXNpY2FsX2FkZHJlc3MoaV9taW4pOwoKICAgIF9zc2VfY2hlY2tfYWxpZ25tZW50KCZj
LDB4Zik7CgogICAgYy5jMT1jLmMyPTA7CiAgICBmb3IoOyBpPGlfbWF4LTc7IGkrPTgsIHIrPTgs
IHMrPTgpIHsKICAgICAgX3NzZV9kb3VibGVfcHJlZmV0Y2hfMTYocis4KTsKICAgICAgX3NzZV9k
b3VibGVfcHJlZmV0Y2hfMTYocys4KTsKICAgICAgX3NzZV9kb3VibGVfYWRkX2ltYWdfc2NhbGFy
X3Byb2R1Y3RfMTYocixzLGMpOwogICAgfQogICAgbjIrPWMuYzItYy5jMTsKI2VuZGlmCiAgICAK
ICAgIGZvcig7aTxpX21heDsgaSsrKQogICAgICBuMis9CglyZWFsKHBzaVtpXSkqaW1hZyhjaGlb
aV0pKwoJaW1hZyhwc2lbaV0pKnJlYWwoY2hpW2ldKTsKICAgIG1waS5hZGQobjIpOwogICAgcmV0
dXJuIG4yOwogIH0KCiAgaW5saW5lIGZyaWVuZCB2b2lkIG1kcF9hZGRfc2NhbGVkX2ZpZWxkKG1k
cF9jb21wbGV4X2ZpZWxkICZwc2ksIAoJCQkJCSAgbWRwX3JlYWwgYWxwaGEsIAoJCQkJCSAgbWRw
X2NvbXBsZXhfZmllbGQgJmNoaSwKCQkJCQkgIGludCBwYXJpdHk9RVZFTk9ERCkgewogICAgbG9u
ZyBpX21pbj1wc2kucGh5c2ljYWxfbG9jYWxfc3RhcnQocGFyaXR5KTsKICAgIGxvbmcgaV9tYXg9
cHNpLnBoeXNpY2FsX2xvY2FsX3N0b3AocGFyaXR5KTsKICAgIGxvbmcgaT1pX21pbjsKICAgIAoj
aWYgZGVmaW5lZChTU0UyKSAmJiBkZWZpbmVkKFVTRV9ET1VCTEVfUFJFQ0lTSU9OKSAmJiAhZGVm
aW5lZChOT19TU0UyX0xJTkFMRykKICAgIHN0YXRpYyBfc3NlX2RvdWJsZSBjIEFMSUdOMTY7CiAg
ICBfc3NlX2RvdWJsZSogcj0oX3NzZV9kb3VibGUqKSBwc2kucGh5c2ljYWxfYWRkcmVzcyhpX21p
bik7CiAgICBfc3NlX2RvdWJsZSogcz0oX3NzZV9kb3VibGUqKSBjaGkucGh5c2ljYWxfYWRkcmVz
cyhpX21pbik7CgogICAgX3NzZV9jaGVja19hbGlnbm1lbnQoJmMsMHhmKTsKCiAgICBjLmMxPWMu
YzI9YWxwaGE7CiAgICBmb3IoaT0wOyBpPGlfbWF4LTc7IGkrPTgsIHIrPTgsIHMrPTgpIHsKICAg
ICAgX3NzZV9kb3VibGVfcHJlZmV0Y2hfMTYocis4KTsKICAgICAgX3NzZV9kb3VibGVfcHJlZmV0
Y2hfMTYocys4KTsKICAgICAgX3NzZV9kb3VibGVfYWRkX211bHRpcGx5XzE2KHIsYyxzKTsKICAg
IH0KICAgIAojZW5kaWYKICAgIAogICAgZm9yKDtpPGlfbWF4OyBpKyspCiAgICAgIHBzaVtpXSs9
YWxwaGEqY2hpW2ldOwogIH0KCiAgaW5saW5lIGZyaWVuZCB2b2lkIG1kcF9hZGRfc2NhbGVkX2Zp
ZWxkKG1kcF9jb21wbGV4X2ZpZWxkICZwc2ksIAoJCQkJCSAgbWRwX2NvbXBsZXggYWxwaGEsIAoJ
CQkJCSAgbWRwX2NvbXBsZXhfZmllbGQgJmNoaSwKCQkJCQkgIGludCBwYXJpdHk9RVZFTk9ERCkg
ewogICAgbG9uZyBpX21pbj1wc2kucGh5c2ljYWxfbG9jYWxfc3RhcnQocGFyaXR5KTsKICAgIGxv
bmcgaV9tYXg9cHNpLnBoeXNpY2FsX2xvY2FsX3N0b3AocGFyaXR5KTsKICAgIGxvbmcgaT1pX21p
bjsKICAgIC8vICAgIHRoaXMgbmVlZHMgb3B0aW1pemF0aW9uLgogICAgZm9yKDtpPGlfbWF4OyBp
KyspCiAgICAgIHBzaVtpXSs9YWxwaGEqY2hpW2ldOwogIH0KCiAgaW5saW5lIGZyaWVuZCBtZHBf
Y29tcGxleCBvcGVyYXRvciogKG1kcF9jb21wbGV4X2ZpZWxkICZwc2ksIAoJCQkJICAgICAgIG1k
cF9jb21wbGV4X2ZpZWxkICZjaGkpIHsKICAgIHJldHVybiBzY2FsYXJfcHJvZHVjdChwc2ksIGNo
aSk7CiAgfQoKICBpbmxpbmUgZnJpZW5kIG1kcF9yZWFsIHJlbGF0aXZlX3Jlc2lkdWUobWRwX2Nv
bXBsZXhfZmllbGQmIHAsCgkJCQkJICBtZHBfY29tcGxleF9maWVsZCYgcSwKCQkJCQkgIGludCBw
YXJpdHk9RVZFTk9ERCkgewogICAgcmVnaXN0ZXIgZG91YmxlIHJlc2lkdWU9MCwgbnVtPTAsIGRl
bj0wOwogICAgbG9uZyBpX21pbj1wLnBoeXNpY2FsX2xvY2FsX3N0YXJ0KHBhcml0eSk7CiAgICBy
ZWdpc3RlciBsb25nIGlfbWF4PXEucGh5c2ljYWxfbG9jYWxfc3RvcChwYXJpdHkpOwogICAgcmVn
aXN0ZXIgbG9uZyBpPWlfbWluOwogICAgLy8gICAgdGhpcyBuZWVkcyBvcHRpbWl6YXRpb24uCiAg
ICBmb3IoO2k8aV9tYXg7KSB7CiAgICAgIG51bSs9YWJzMihwW2ldKTsKICAgICAgZGVuKz1hYnMy
KHFbaV0pOwogICAgICBpZigrK2kgJSBwLnNpemVfcGVyX3NpdGUoKT09MCkgewoJcmVzaWR1ZSs9
KGRlbj09MCk/MS4wOihudW0vZGVuKTsJICAgIAoJbnVtPWRlbj0wOwogICAgICB9CiAgICB9CiAg
ICBtcGkuYWRkKHJlc2lkdWUpOwogICAgcmV0dXJuIHNxcnQocmVzaWR1ZS9wLmxhdHRpY2UoKS5n
bG9iYWxfdm9sdW1lKCkpOwogIH0KICAKICBib29sIHNhdmVfYXNfZmxvYXQoc3RyaW5nIGZpbGVu
YW1lLCAKCQkgICAgIGludCBwcm9jZXNzSU89MCwgCgkJICAgICBsb25nIG1heF9idWZmZXJfc2l6
ZT0xMDI0LCAKCQkgICAgIGJvb2wgbG9hZF9oZWFkZXI9dHJ1ZSwKCQkgICAgIGxvbmcgc2tpcF9i
eXRlcz0wKSB7CiNpZiBkZWZpbmVkKFVTRV9ET1VCTEVfUFJFQ0lTSU9OKQogICAgaGVhZGVyLmJ5
dGVzX3Blcl9zaXRlLz0yOwogICAgc2F2ZShmaWxlbmFtZSxwcm9jZXNzSU8sIG1heF9idWZmZXJf
c2l6ZSxsb2FkX2hlYWRlcixza2lwX2J5dGVzLAoJIG1kcF93cml0ZV9kb3VibGVfYXNfZmxvYXQp
OwogICAgaGVhZGVyLmJ5dGVzX3Blcl9zaXRlKj0yOwojZWxzZQogICAgc2F2ZShmaWxlbmFtZSxw
cm9jZXNzSU8sIG1heF9idWZmZXJfc2l6ZSxsb2FkX2hlYWRlcixza2lwX2J5dGVzLDApOwojZW5k
aWYKICAgIHJldHVybiB0cnVlOwogIH0KCiAgYm9vbCBsb2FkX2FzX2Zsb2F0KHN0cmluZyBmaWxl
bmFtZSwgCgkJICAgICBpbnQgcHJvY2Vzc0lPPTAsIAoJCSAgICAgbG9uZyBtYXhfYnVmZmVyX3Np
emU9MTAyNCwgCgkJICAgICBib29sIGxvYWRfaGVhZGVyPXRydWUsCgkJICAgICBsb25nIHNraXBf
Ynl0ZXM9MCkgewoKI2lmIGRlZmluZWQoVVNFX0RPVUJMRV9QUkVDSVNJT04pCiAgICBoZWFkZXIu
Ynl0ZXNfcGVyX3NpdGUvPTI7CiAgICBsb2FkKGZpbGVuYW1lLHByb2Nlc3NJTywgbWF4X2J1ZmZl
cl9zaXplLGxvYWRfaGVhZGVyLHNraXBfYnl0ZXMsCgkgbWRwX3JlYWRfZG91YmxlX2FzX2Zsb2F0
LCB0cnVlKTsKICAgIGhlYWRlci5ieXRlc19wZXJfc2l0ZSo9MjsKI2Vsc2UKICAgIGxvYWQoZmls
ZW5hbWUscHJvY2Vzc0lPLCBtYXhfYnVmZmVyX3NpemUsbG9hZF9oZWFkZXIsc2tpcF9ieXRlcyww
LHRydWUpOwojZW5kaWYKICAgIHJldHVybiB0cnVlOwogIH0KCiAgCiAgYm9vbCBsb2FkX2FzX2Rv
dWJsZShzdHJpbmcgZmlsZW5hbWUsIAoJCSAgICAgIGludCBwcm9jZXNzSU89MCwgCgkJICAgICAg
bG9uZyBtYXhfYnVmZmVyX3NpemU9MTAyNCwgCgkJICAgICAgYm9vbCBsb2FkX2hlYWRlcj10cnVl
LAoJCSAgICAgIGxvbmcgc2tpcF9ieXRlcz0wKSB7CiNpZiAhZGVmaW5lZChVU0VfRE9VQkxFX1BS
RUNJU0lPTikKICAgIGhlYWRlci5ieXRlc19wZXJfc2l0ZSo9MjsKICAgIGxvYWQoZmlsZW5hbWUs
cHJvY2Vzc0lPLCBtYXhfYnVmZmVyX3NpemUsbG9hZF9oZWFkZXIsc2tpcF9ieXRlcywKCSBtZHBf
cmVhZF9mbG9hdF9hc19kb3VibGUsIHRydWUpOwogICAgaGVhZGVyLmJ5dGVzX3Blcl9zaXRlLz0y
OwojZWxzZQogICAgbG9hZChmaWxlbmFtZSxwcm9jZXNzSU8sIG1heF9idWZmZXJfc2l6ZSxsb2Fk
X2hlYWRlcixza2lwX2J5dGVzLDAsdHJ1ZSk7CiNlbmRpZgogICAgcmV0dXJuIHRydWU7CiAgfQog
IAogIGJvb2wgc2F2ZV9hc19kb3VibGUoc3RyaW5nIGZpbGVuYW1lLCAKCQkgICAgICBpbnQgcHJv
Y2Vzc0lPPTAsIAoJCSAgICAgIGxvbmcgbWF4X2J1ZmZlcl9zaXplPTEwMjQsIAoJCSAgICAgIGJv
b2wgbG9hZF9oZWFkZXI9dHJ1ZSwKCQkgICAgICBsb25nIHNraXBfYnl0ZXM9MCkgewojaWYgIWRl
ZmluZWQoVVNFX0RPVUJMRV9QUkVDSVNJT04pCiAgICBoZWFkZXIuYnl0ZXNfcGVyX3NpdGUqPTI7
CiAgICBzYXZlKGZpbGVuYW1lLHByb2Nlc3NJTywgbWF4X2J1ZmZlcl9zaXplLGxvYWRfaGVhZGVy
LHNraXBfYnl0ZXMsCgkgbWRwX3dyaXRlX2Zsb2F0X2FzX2RvdWJsZSk7CiAgICBoZWFkZXIuYnl0
ZXNfcGVyX3NpdGUvPTI7CiNlbHNlCiAgICBzYXZlKGZpbGVuYW1lLHByb2Nlc3NJTywgbWF4X2J1
ZmZlcl9zaXplLGxvYWRfaGVhZGVyLHNraXBfYnl0ZXMsMCk7CiNlbmRpZiAgIAogICAgcmV0dXJu
IHRydWU7CiAgfQp9OwoKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAbWRwX2RlbHRhLmgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAxMDA2NDQAMDAz
MzEyNgAwMDI0NDYxADAwMDAwMDAwMTM3ADEwMTQzMDEzMTU2ADAxMzczNAAgMAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAE1EaVBpZXJybwAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAbWtncm91cC1sLWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAB0ZW1wbGF0ZTxjbGFzcyBUPgpjb25zdCBib29sIGRlbHRhKGNvbnN0IFQmIGksIGNvbnN0IFQm
IGopIHsKICByZXR1cm4gKGk9PWopP3RydWU6ZmFsc2U7Cn0KICAgCgAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AG1kcF9kZXByZWNhdGVkSU8uaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMTAwNzU1ADAwMzMx
MjYAMDAyNDQ2MQAwMDAwMDAxNjQzNgAxMDE0MzAxMzE1NgAwMTUyMDcAIDAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABNRGlQaWVycm8AAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAG1rZ3JvdXAtbC1kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
CiAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vCiAgLy8gSU8gZnVuY3lpb25zOiBsb2FkKGZpbGVuYW1lLCBwcm9jZXNzSU8sIGJ1
ZmZlcnNpemUpCiAgLy8gICAgICAgICAgICAgICBzYXZlKGZpbGVuYW1lLCBwcm9jZXNzSU8sIGJ1
ZmZlcnNpemUpICAgCiAgLy8gZmlsZW5hbWUgc2hvdWxkIHBvc3NpYmx5IGluY2x1ZGUgdGhlIHBh
dGguCiAgLy8gcHJvY2Vzc0lPIGlzIHRoZSBwcm9jZXNzIHRoYXQgcGh5c2ljYWxseSBwZXJmb3Jt
IHRoZSBJTy4KICAvLyBidWZmZXJzaXplIGlmIHRoZSBzaXplIG9mIHRoZSBidWZmZXIgYXNzb2Np
YXRlZCB0byB0aGUKICAvLyAgIGNvbW11bmljYXRpb24gdG8gZWFjaCBwcm9jZXNzLiBidWZmZXJz
aXplKk5wcm9jIAogIC8vICAgc2hvdWxkIGZpdCBpbiB0aGUgbWVtb3J5IG9mIHByb2Nlc3NJTy4K
ICAvLyAgIEJ5IGRlZmF1bHQgYnVmZmVyc2l6ZT0xMDI0IGFuZCBpdCB3b3JrcyByZWFzb25hYmx5
IGZhc3QuCiAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KCnRlbXBsYXRlPGNsYXNzIFQ+CnZvaWQgbWRwX2ZpZWxkPFQ+Ojpsb2Fk
KGNoYXIgZmlsZW5hbWVbXSwgCgkJCWludCBwcm9jZXNzSU8sIAoJCQlsb25nIG1heF9idWZmZXJf
c2l6ZSwgCgkJCWNoYXIgKmhlYWRlciwgCgkJCWxvbmcgaGVhZGVyX3NpemUsCgkJCWxvbmcgKCpz
b3J0X3gpKG1kcF9sYXR0aWNlJixsb25nKSwKCQkJaW50IGF1dG9fc3dpdGNoX2VuZGlhbmVzcykg
ewogIGxvbmcgaWR4X2dsLCBudm9sX2dsPWxhdHRpY2UoKS5udm9sX2dsLCBrOwogIGRvdWJsZSBt
eXRpbWU9bXBpLnRpbWUoKTsKICBpbnQgdHJ5X3N3aXRjaF9lbmRpYW5lc3M9RkFMU0U7CiAgaWYo
TUU9PXByb2Nlc3NJTykgewogICAgbG9uZyAqYnVmZmVyX3NpemU9bmV3IGxvbmdbTnByb2NdOwog
ICAgICBtZHBfYXJyYXk8VCwzPiBsYXJnZV9idWZmZXIoTnByb2MsbWF4X2J1ZmZlcl9zaXplLGZp
ZWxkX2NvbXBvbmVudHMpOwogICAgICBUICpzaG9ydF9idWZmZXI9bmV3IFRbZmllbGRfY29tcG9u
ZW50c107CiAgICAgIGludCBwcm9jZXNzOwogICAgICBtZHBfcmVxdWVzdCByZXF1ZXN0OwoKICAg
ICAgZm9yKHByb2Nlc3M9MDsgcHJvY2VzczxOcHJvYzsgcHJvY2VzcysrKSBidWZmZXJfc2l6ZVtw
cm9jZXNzXT0wOwogICAgICBwcmludGYoIkxvYWRpbmcgZmlsZSAlcyBmcm9tIHByb2Nlc3MgJWkg
KGJ1ZmZlciA9ICVsaSBzaXRlcylcbiIsIAoJICAgICBmaWxlbmFtZSwgcHJvY2Vzc0lPLCBtYXhf
YnVmZmVyX3NpemUpOyAKICAgICAgZmZsdXNoKHN0ZG91dCk7CiAgICAgIEZJTEUgKmZwPWZvcGVu
KGZpbGVuYW1lLCAicmIiKTsKICAgICAgaWYoZnA9PTApIGVycm9yKCJVbmFibGUgdG8gb3BlbiBm
aWxlIik7CgogICAgICAvLyAjaWZkZWYgSU5TRVJUX0hFQURFUgogICAgICBpbnQgaTsKICAgICAg
aWYoc3RyY21wKGhlYWRlciwiTkFUSVZFIik9PTApIHsKCWVycm9yKCJOQVRJVkUgSEVBREVSIElO
IERFUFJFQ0FURUQgRlVOQ1RJT04gTk9UIFNVUFBPUlRFRCBBTlkgTU9SRSIpOwogICAgICB9IGVs
c2UgaWYoaGVhZGVyIT0wICYmIHN0cmNtcChoZWFkZXIsICJOT0hFQURFUiIpIT0wKSB7CglpZihm
cmVhZChoZWFkZXIsIHNpemVvZihjaGFyKSwgaGVhZGVyX3NpemUsIGZwKSE9CgkgICBoZWFkZXJf
c2l6ZSkgZXJyb3IoIlVuYWJsZSB0byByZWFkIGZpbGUgaGVhZGVyIik7CiAgICAgIH0KICAgICAg
Ly8gI2VuZGlmCiAgICAgIGZvcihpZHhfZ2w9MDsgaWR4X2dsPG52b2xfZ2w7IGlkeF9nbCsrKSB7
Cglwcm9jZXNzPXdoZXJlX2dsb2JhbChpZHhfZ2wpOwoJaWYocHJvY2VzcyE9Tk9XSEVSRSkgewoJ
ICBpZihzb3J0X3ghPTApCgkgICAgaWYoZnNlZWsoZnAsIHNvcnRfeChsYXR0aWNlKCksaWR4X2ds
KSoKCQkgICAgIFRzaXplKmZpZWxkX2NvbXBvbmVudHMraGVhZGVyX3NpemUsIFNFRUtfU0VUKTww
KSAKCSAgICAgIGVycm9yKCJ1bmV4cGVjdGVkIGVuZCBvZiBmaWxlIik7CgkgIGlmKChmcmVhZChz
aG9ydF9idWZmZXIsIFRzaXplLCBmaWVsZF9jb21wb25lbnRzLCBmcCktCgkgICAgICBmaWVsZF9j
b21wb25lbnRzKSE9MCkKCSAgICBlcnJvcigidW5leHBlY3RlZCBlbmQgb2YgZmlsZSIpOwoJfQoJ
aWYoKHByb2Nlc3MhPU5PV0hFUkUpICYmIChwcm9jZXNzIT1wcm9jZXNzSU8pKSB7CgkgIGZvcihr
PTA7IGs8ZmllbGRfY29tcG9uZW50czsgaysrKQoJICAgIGxhcmdlX2J1ZmZlcihwcm9jZXNzLGJ1
ZmZlcl9zaXplW3Byb2Nlc3NdLGspPXNob3J0X2J1ZmZlcltrXTsKCSAgYnVmZmVyX3NpemVbcHJv
Y2Vzc10rKzsKCSAgaWYoYnVmZmVyX3NpemVbcHJvY2Vzc109PW1heF9idWZmZXJfc2l6ZSkgewoJ
ICAgIG1waS5wdXQoJihsYXJnZV9idWZmZXIocHJvY2VzcywwLDApKSwgCgkJICAgIG1heF9idWZm
ZXJfc2l6ZSpmaWVsZF9jb21wb25lbnRzLCBwcm9jZXNzLCByZXF1ZXN0KTsgCgkgICAgbXBpLndh
aXQocmVxdWVzdCk7CgkgICAgYnVmZmVyX3NpemVbcHJvY2Vzc109MDsKCSAgfQoJICBpZihpZHhf
Z2w9PW52b2xfZ2wtMSkgCgkgICAgZm9yKHByb2Nlc3M9MDsgcHJvY2VzczxOcHJvYzsgcHJvY2Vz
cysrKQoJICAgICAgaWYoKHByb2Nlc3MhPU1FKSAmJiAKCQkgKGJ1ZmZlcl9zaXplW3Byb2Nlc3Nd
IT1tYXhfYnVmZmVyX3NpemUpICYmCgkJIChidWZmZXJfc2l6ZVtwcm9jZXNzXT4wKSkgewoJCW1w
aS5wdXQoJihsYXJnZV9idWZmZXIocHJvY2VzcywwLDApKSwgCgkJCWJ1ZmZlcl9zaXplW3Byb2Nl
c3NdKmZpZWxkX2NvbXBvbmVudHMsIAoJCQlwcm9jZXNzLCByZXF1ZXN0KTsgCgkJbXBpLndhaXQo
cmVxdWVzdCk7CgkgICAgICB9Cgl9CglpZihwcm9jZXNzPT1wcm9jZXNzSU8pIHsKCSAgZm9yKGs9
MDsgazxmaWVsZF9jb21wb25lbnRzOyBrKyspCgkgICAgKihtK2xhdHRpY2UoKS5sZ1tpZHhfZ2xd
KmZpZWxkX2NvbXBvbmVudHMrayk9c2hvcnRfYnVmZmVyW2tdOwoJfQogICAgICB9CiAgICAgIGRl
bGV0ZVtdIGJ1ZmZlcl9zaXplOwogICAgICBkZWxldGVbXSBzaG9ydF9idWZmZXI7CiAgICAgIGZj
bG9zZShmcCk7CiAgICB9IGVsc2UgewogICAgICBpbnQgIHByb2Nlc3M7CiAgICAgIGxvbmcgYnVm
ZmVyX3NpemU9MCwgaWR4OwogICAgICBsb25nICpsb2NhbF9pbmRleD1uZXcgbG9uZ1ttYXhfYnVm
ZmVyX3NpemVdOwogICAgICBtZHBfYXJyYXk8VCwyPiBsb2NhbF9idWZmZXIobWF4X2J1ZmZlcl9z
aXplLGZpZWxkX2NvbXBvbmVudHMpOwogICAgICBmb3IoaWR4X2dsPTA7IGlkeF9nbDxudm9sX2ds
OyBpZHhfZ2wrKykgewoJcHJvY2Vzcz13aGVyZV9nbG9iYWwoaWR4X2dsKTsKCWlmKHByb2Nlc3M9
PU1FKSB7CgkgIGxvY2FsX2luZGV4W2J1ZmZlcl9zaXplXT1sYXR0aWNlKCkubGdbaWR4X2dsXTsK
CSAgYnVmZmVyX3NpemUrKzsKCX0KCWlmKChidWZmZXJfc2l6ZT09bWF4X2J1ZmZlcl9zaXplKSB8
fCAKCSAgICgoaWR4X2dsPT1udm9sX2dsLTEpICYmIChidWZmZXJfc2l6ZT4wKSkpIHsKCSAgbXBp
LmdldCgmKGxvY2FsX2J1ZmZlcigwLDApKSwgYnVmZmVyX3NpemUqZmllbGRfY29tcG9uZW50cywg
cHJvY2Vzc0lPKTsKCSAgZm9yKGlkeD0wOyBpZHg8YnVmZmVyX3NpemU7IGlkeCsrKQoJICAgIGZv
cihrPTA7IGs8ZmllbGRfY29tcG9uZW50czsgaysrKQoJICAgICAgKihtK2xvY2FsX2luZGV4W2lk
eF0qZmllbGRfY29tcG9uZW50cytrKT1sb2NhbF9idWZmZXIoaWR4LGspOwoJICBidWZmZXJfc2l6
ZT0wOwoJfQogICAgICB9CiAgICAgIGRlbGV0ZVtdIGxvY2FsX2luZGV4OwogICAgfQogICAgdXBk
YXRlKCk7CiAgICBpZihNRT09MCAmJiBzaHV0dXA9PUZBTFNFKSB7CiAgICAgIHByaW50ZigiLi4u
IExvYWRpbmcgdGltZTogJWYgKHNlYylcbiIsIG1waS50aW1lKCktbXl0aW1lKTsKICAgICAgZmZs
dXNoKHN0ZG91dCk7CiAgICB9CiAgICBpZih0cnlfc3dpdGNoX2VuZGlhbmVzcz09VFJVRSAmJiBh
dXRvX3N3aXRjaF9lbmRpYW5lc3M9PVRSVUUpIHsKICAgICAgaWYoTUU9PTApIHByaW50ZigiVHJ5
aW5nIHRvIHN3aXRjaCBlbmRpYW5lc3MuIik7CiAgICAgIHN3aXRjaF9lbmRpYW5lc3NfNGJ5dGVz
KCk7CiAgICB9Cn0KCnRlbXBsYXRlPGNsYXNzIFQ+CnZvaWQgbWRwX2ZpZWxkPFQ+OjpzYXZlKGNo
YXIgZmlsZW5hbWVbXSwgCgkJCWludCBwcm9jZXNzSU8sCgkJCWxvbmcgbWF4X2J1ZmZlcl9zaXpl
LAoJCQljaGFyICpoZWFkZXIsIAoJCQlsb25nIGhlYWRlcl9zaXplLAoJCQlsb25nICgqc29ydF94
KShtZHBfbGF0dGljZSYsbG9uZyksCgkJCWNoYXIgKm1vZGUpIHsKICBsb25nIGlkeF9nbCwgbnZv
bF9nbD1sYXR0aWNlKCkubnZvbF9nbCwgazsKICBkb3VibGUgbXl0aW1lPW1waS50aW1lKCk7CiAg
ICBpZihNRT09cHJvY2Vzc0lPKSB7CiAgICAgIGxvbmcgKmJ1ZmZlcl9zaXplPW5ldyBsb25nW05w
cm9jXTsKICAgICAgbG9uZyAqYnVmZmVyX3B0ciA9bmV3IGxvbmdbTnByb2NdOwogICAgICBtZHBf
YXJyYXk8VCwzPiBsYXJnZV9idWZmZXIoTnByb2MsbWF4X2J1ZmZlcl9zaXplLGZpZWxkX2NvbXBv
bmVudHMpOwogICAgICBUICpzaG9ydF9idWZmZXI9bmV3IFRbZmllbGRfY29tcG9uZW50c107CiAg
ICAgIGludCBwcm9jZXNzOwogICAgICBmb3IocHJvY2Vzcz0wOyBwcm9jZXNzPE5wcm9jOyBwcm9j
ZXNzKyspIGJ1ZmZlcl9wdHJbcHJvY2Vzc109MDsKICAgICAgcHJpbnRmKCJTYXZpbmcgZmlsZSAl
cyBmcm9tIHByb2Nlc3MgJWkgKGJ1ZmZlciA9ICVsaSBzaXRlcylcbiIsIAoJICAgICBmaWxlbmFt
ZSwgcHJvY2Vzc0lPLCBtYXhfYnVmZmVyX3NpemUpOyAKICAgICAgZmZsdXNoKHN0ZG91dCk7CiAg
ICAgIEZJTEUgKmZwPWZvcGVuKGZpbGVuYW1lLCBtb2RlKTsKICAgICAgaWYoZnA9PTApIGVycm9y
KCJVbmFibGUgdG8gb3BlbiBmaWxlIik7ICAgICAgCgoKICAgICAgLy8gI2lmZGVmIElOU0VSVF9I
RUFERVIKICAgICAgaW50IGk7CiAgICAgIGlmKHN0cmNtcChoZWFkZXIsIk5BVElWRSIpPT0wKSB7
CgllcnJvcigiTkFUSVZFIEhFQURFUiBJTiBERVBSRUNBVEVEIEZVTkNUSU9OIE5PVCBTVVBQT1JU
RUQgQU5ZIE1PUkUiKTsKICAgICAgfSBlbHNlIGlmKGhlYWRlciE9MCAmJiBzdHJjbXAoaGVhZGVy
LCAiTk9IRUFERVIiKSE9MCkgewoJaWYoZndyaXRlKGhlYWRlciwgc2l6ZW9mKGNoYXIpLCBoZWFk
ZXJfc2l6ZSwgZnApIT0KCSAgIGhlYWRlcl9zaXplKSBlcnJvcigiVW5hYmxlIHRvIHdyaXRlIGZp
bGUgaGVhZGVyIik7CiAgICAgIH0KICAgICAgLy8gI2VuZGlmCiAgICAgIGZvcihpZHhfZ2w9MDsg
aWR4X2dsPG52b2xfZ2w7IGlkeF9nbCsrKSB7Cglwcm9jZXNzPXdoZXJlX2dsb2JhbChpZHhfZ2wp
OwoJaWYoKHByb2Nlc3MhPU5PV0hFUkUpICYmIChwcm9jZXNzIT1wcm9jZXNzSU8pKSB7CgkgIGlm
KGJ1ZmZlcl9wdHJbcHJvY2Vzc109PTApIHsKCSAgICBtcGkuZ2V0KGJ1ZmZlcl9zaXplW3Byb2Nl
c3NdLCBwcm9jZXNzKTsKCSAgICBtcGkuZ2V0KCYobGFyZ2VfYnVmZmVyKHByb2Nlc3MsMCwwKSks
IAoJCSAgICBidWZmZXJfc2l6ZVtwcm9jZXNzXSpmaWVsZF9jb21wb25lbnRzLCBwcm9jZXNzKTsK
CSAgfQoJICBmb3Ioaz0wOyBrPGZpZWxkX2NvbXBvbmVudHM7IGsrKykKCSAgICBzaG9ydF9idWZm
ZXJba109bGFyZ2VfYnVmZmVyKHByb2Nlc3MsYnVmZmVyX3B0cltwcm9jZXNzXSxrKTsKCSAgYnVm
ZmVyX3B0cltwcm9jZXNzXSsrOwoJICBpZihidWZmZXJfcHRyW3Byb2Nlc3NdPT1idWZmZXJfc2l6
ZVtwcm9jZXNzXSkgYnVmZmVyX3B0cltwcm9jZXNzXT0wOyAKCX0KCWlmKHByb2Nlc3M9PXByb2Nl
c3NJTykgewoJICBmb3Ioaz0wOyBrPGZpZWxkX2NvbXBvbmVudHM7IGsrKykKCSAgICBzaG9ydF9i
dWZmZXJba109KihtK2xhdHRpY2UoKS5sZ1tpZHhfZ2xdKmZpZWxkX2NvbXBvbmVudHMrayk7Cgl9
CglpZihwcm9jZXNzIT1OT1dIRVJFKSB7CgkgIGlmKHNvcnRfeCE9MCkKCSAgICBpZihmc2Vlayhm
cCwgc29ydF94KGxhdHRpY2UoKSxpZHhfZ2wpKgoJCSAgICAgVHNpemUqZmllbGRfY29tcG9uZW50
cytoZWFkZXJfc2l6ZSwgU0VFS19TRVQpPDApIAoJICAgICAgZXJyb3IoInVuZXhwZWN0ZWQgZW5k
IG9mIGZpbGUiKTsKCSAgaWYoKGZ3cml0ZShzaG9ydF9idWZmZXIsIFRzaXplLCBmaWVsZF9jb21w
b25lbnRzLCBmcCktCgkgICAgIGZpZWxkX2NvbXBvbmVudHMpIT0wKQoJICAgIGVycm9yKCJJIGNh
bm5vdCB3cml0ZSBvbiB0aGUgZmlsZS4gSSBhbSBjb25mdXNlZCAhPyE/Iik7Cgl9CiAgICAgIH0K
ICAgICAgaWYoc3RyY21wKGhlYWRlciwiTkFUSVZFIik9PTApIAoJZnByaW50ZihmcCwgIlxuXG4g
WyBNRFAgU3RhbmRhcmQgRmlsZSBGb3JtYXQgXVxuIik7CiAgICAgIGRlbGV0ZVtdIGJ1ZmZlcl9z
aXplOwogICAgICBkZWxldGVbXSBidWZmZXJfcHRyOwogICAgICBkZWxldGVbXSBzaG9ydF9idWZm
ZXI7CiAgICAgIGZjbG9zZShmcCk7CiAgICB9IGVsc2UgewogICAgICBpbnQgIHByb2Nlc3M7CiAg
ICAgIGxvbmcgYnVmZmVyX3NpemU9MCwgaWR4LCBpZHhfZ2w7CiAgICAgIGxvbmcgKmxvY2FsX2lu
ZGV4PW5ldyBsb25nW21heF9idWZmZXJfc2l6ZV07CiAgICAgIG1kcF9hcnJheTxULDI+IGxvY2Fs
X2J1ZmZlcihtYXhfYnVmZmVyX3NpemUsZmllbGRfY29tcG9uZW50cyk7CiAgICAgIG1kcF9yZXF1
ZXN0IHJlcXVlc3Q7CiAgICAgIGZvcihpZHhfZ2w9MDsgaWR4X2dsPG52b2xfZ2w7IGlkeF9nbCsr
KSB7Cglwcm9jZXNzPXdoZXJlX2dsb2JhbChpZHhfZ2wpOwoJaWYocHJvY2Vzcz09TUUpIHsKCSAg
bG9jYWxfaW5kZXhbYnVmZmVyX3NpemVdPWxhdHRpY2UoKS5sZ1tpZHhfZ2xdOwoJICBidWZmZXJf
c2l6ZSsrOwoJfQoJaWYoKGJ1ZmZlcl9zaXplPT1tYXhfYnVmZmVyX3NpemUpIHx8IAoJICAgKChp
ZHhfZ2w9PW52b2xfZ2wtMSkgJiYgKGJ1ZmZlcl9zaXplPjApKSkgewoJICBmb3IoaWR4PTA7IGlk
eDxidWZmZXJfc2l6ZTsgaWR4KyspCgkgICAgZm9yKGs9MDsgazxmaWVsZF9jb21wb25lbnRzOyBr
KyspCgkgICAgICBsb2NhbF9idWZmZXIoaWR4LGspPSoobStsb2NhbF9pbmRleFtpZHhdKmZpZWxk
X2NvbXBvbmVudHMrayk7CgkgIG1waS5wdXQoYnVmZmVyX3NpemUsIHByb2Nlc3NJTywgcmVxdWVz
dCk7CgkgIG1waS53YWl0KHJlcXVlc3QpOwoJICBtcGkucHV0KCYobG9jYWxfYnVmZmVyKDAsMCkp
LCBidWZmZXJfc2l6ZSpmaWVsZF9jb21wb25lbnRzLCAKCQkgIHByb2Nlc3NJTywgcmVxdWVzdCk7
CgkgIG1waS53YWl0KHJlcXVlc3QpOwoJICBidWZmZXJfc2l6ZT0wOwoJfQogICAgICB9CiAgICAg
IGRlbGV0ZVtdIGxvY2FsX2luZGV4OwogICAgfQogICAgaWYoTUU9PTAgJiYgc2h1dHVwPT1GQUxT
RSkgewogICAgICBwcmludGYoIi4uLiBTYXZpbmcgdGltZTogJWYgKHNlYylcbiIsIG1waS50aW1l
KCktbXl0aW1lKTsKICAgICAgZmZsdXNoKHN0ZG91dCk7CiAgICB9Cn0KCgoAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWRwX2R5bmFsbG9jLmgA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAxMDA2NDQAMDAzMzEyNgAwMDI0NDYxADAwMDAw
MDAxNTAzADEwMTQzMDEzMTU2ADAxNDQ0NgAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAB1c3RhciAgAE1EaVBpZXJybwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWtn
cm91cC1sLWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8NCi8vIEZJTEU6IG1kcF9keW5hbGxvYy5oDQovLyBWZXJzaW9uOiAgIDIu
MwovLyBEYXRlOiAgICAgIDEtT2N0LTIwMDIKLy8gQXV0aG9yOiAgICBNYXNzaW1vIERpIFBpZXJy
byA8bWRwQG1ldGFjcnlwdGlvbi5jb20+Ci8vIExpY2Vuc2U6ICAgVGhpcyBmaWxlIGlzIGV4Y2x1
c2l2ZSBwcm9wZXJ0eSBvZiBNZXRhQ3J5cHRpb24gTExDCi8vICAgICAgICAgICAgUmVhZCBhdHRh
Y2hlZCBsaWNlbnNlIGluIGZpbGUgbWRwX2xpY2Vuc2UucGRmCi8vICAgICAgICAgICAgVGhpcyBm
aWxlIGNhbm5vdCBiZSBkaXN0cmlidXRlZCB3aXRob3V0IGZpbGUgbWRwX2xpY2Vuc2UucGRmCi8v
Ci8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KDQojaW5jbHVkZSAibWFsbG9jLmgiDQoN
CnZvaWQqIG9wZXJhdG9yIG5ldyhzaXplX3Qgc2l6ZSkgew0KI2lmICFkZWZpbmVkKFNTRTIpDQog
IHZvaWQgKnA9bWFsbG9jKHNpemUpOw0KI2Vsc2UNCiAgdm9pZCAqcD1tZW1hbGlnbig2NCxzaXpl
KTsNCiNlbmRpZg0KICByZXR1cm4gcDsNCn0NCg0Kdm9pZCBvcGVyYXRvciBkZWxldGUgKHZvaWQq
IHBvaW50ZXIpIHsNCiAgZnJlZShwb2ludGVyKTsgDQp9DQoNCnZvaWQqIG9wZXJhdG9yIG5ld1td
IChzaXplX3Qgc2l6ZSkgew0KI2lmICFkZWZpbmVkKFNTRTIpDQogIHZvaWQgKnA9bWFsbG9jKHNp
emUpOw0KI2Vsc2UNCiAgdm9pZCAqcD1tZW1hbGlnbig2NCxzaXplKTsNCiNlbmRpZg0KICByZXR1
cm4gcDsNCn0NCg0Kdm9pZCBvcGVyYXRvciBkZWxldGVbXSAodm9pZCogcG9pbnRlcikgew0KICBm
cmVlKHBvaW50ZXIpOyANCn0NCg0KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWRwX2VuZGlhbmVzc19jb252
ZXJ0ZXIuaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAxMDA2NDQAMDAzMzEyNgAwMDI0NDYxADAwMDAwMDAx
NTIxADEwMTQzMDEzMTU2ADAxNjcwMQAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAB1c3RhciAgAE1EaVBpZXJybwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWtncm91
cC1sLWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KLy8gRmlsZSBOYW1lOiBtZHBfZW5kaWFuZXNzLmgKLy8gVmVyc2lvbjogICAyLjMKLy8gRGF0
ZTogICAgICAxLU9jdC0yMDAyCi8vIEF1dGhvcjogICAgTWFzc2ltbyBEaSBQaWVycm8gPG1kcEBt
ZXRhY3J5cHRpb24uY29tPgovLyBMaWNlbnNlOiAgIFRoaXMgZmlsZSBpcyBleGNsdXNpdmUgcHJv
cGVydHkgb2YgTWV0YUNyeXB0aW9uIExMQwovLyAgICAgICAgICAgIFJlYWQgYXR0YWNoZWQgbGlj
ZW5zZSBpbiBmaWxlIG1kcF9saWNlbnNlLnBkZgovLyAgICAgICAgICAgIFRoaXMgZmlsZSBjYW5u
b3QgYmUgZGlzdHJpYnV0ZWQgd2l0aG91dCBmaWxlIG1kcF9saWNlbnNlLnBkZgovLwovLyBEZXNj
cmlwdGlvbjoKLy8gICAgIHZhcml1cyBmdW5jdGlvbnMgdG8gY29udmVydCBlbmRpYW5lc3MKLy8g
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vCgp0ZW1wbGF0ZTxjbGFzcyBUPgp2b2lkIHN3aXRjaF9lbmRpYW5l
c3NfYnl0ZTQoVCAmYSkgewogIGNoYXIgKnA9KGNoYXIqKSAmYTsKICBzdGF0aWMgY2hhciBxWzRd
OwogIGlmKHNpemVvZihUKT09NCkgewogICAgcVswXT1wWzBdOwogICAgcVsxXT1wWzFdOwogICAg
cVsyXT1wWzJdOwogICAgcVszXT1wWzNdOwogICAgcFswXT1xWzNdOwogICAgcFsxXT1xWzJdOwog
ICAgcFsyXT1xWzFdOwogICAgcFszXT1xWzBdOyAgCiAgfSBlbHNlIGVycm9yKCJzd2l0Y2hfZW5k
aWFuZXNzX2J5dGU0OiBzaXplb2YoVCkhPTQiKTsKfQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWRwX2ZpZWxkLmgAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAADAxMDA2NDQAMDAzMzEyNgAwMDI0NDYxADAwMDAwMDIwNzA2
ADEwMTQzMDEzMTU2ADAxMzczMgAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAB1c3RhciAgAE1EaVBpZXJybwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWtncm91cC1s
LWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvLyAvLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
Ly8gRmlsZSBOYW1lOiBtZHBfZmllbGQuaAovLyBWZXJzaW9uOiAgIDIuMwovLyBEYXRlOiAgICAg
IDEtT2N0LTIwMDIKLy8gQXV0aG9yOiAgICBNYXNzaW1vIERpIFBpZXJybyA8bWRwQG1ldGFjcnlw
dGlvbi5jb20+Ci8vIExpY2Vuc2U6ICAgVGhpcyBmaWxlIGlzIGV4Y2x1c2l2ZSBwcm9wZXJ0eSBv
ZiBNZXRhQ3J5cHRpb24gTExDCi8vICAgICAgICAgICAgUmVhZCBhdHRhY2hlZCBsaWNlbnNlIGlu
IGZpbGUgbWRwX2xpY2Vuc2UucGRmCi8vICAgICAgICAgICAgVGhpcyBmaWxlIGNhbm5vdCBiZSBk
aXN0cmlidXRlZCB3aXRob3V0IGZpbGUgbWRwX2xpY2Vuc2UucGRmCi8vCi8vIERlc2NyaXB0aW9u
OgovLyAgICAgY2xhc3MgIG1kcF9maWVsZF9maWxlX2hlYWRlcgovLyAgICAgY2xhc3MgIG1kcF9m
aWVsZAovLyAgICAgbWV0aG9kczogbWRwX2ZpZWxkOjp1cGRhdGUoKSwgbG9hZCgpIGFuZCBzYXZl
KCkKLy8gICAgIGFyZSBkZWNsYXJlZCBpbiBtZHBfZmllbGRfKG1ldGhvZCkuaAovLyAvLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KCmNsYXNzIG1kcF9maWVsZF9maWxlX2hlYWRlciB7CiBwdWJsaWM6CiAgY2hh
ciAgZmlsZV9pZFs2MF07CiAgY2hhciAgcHJvZ3JhbV92ZXJzaW9uWzYwXTsKICBjaGFyICBjcmVh
dGlvbl9kYXRlWzYwXTsKICB1bnNpZ25lZCBsb25nIGVuZGlhbmVzczsKICBpbnQgICBuZGltOwog
IGludCAgIGJveFsxMF07CiAgbG9uZyAgYnl0ZXNfcGVyX3NpdGU7CiAgbG9uZyAgc2l0ZXM7CiAg
bWRwX2ZpZWxkX2ZpbGVfaGVhZGVyKCkgewogICAgcmVzZXQoKTsKICB9CiAgdm9pZCByZXNldCgp
IHsKICAgIHN0cmNweShmaWxlX2lkLCAiRmlsZSBUeXBlOiBNRFAgRklFTERcbiIpOwogICAgc3Ry
Y3B5KHByb2dyYW1fdmVyc2lvbixtZHBfcHJvZ3JhbV9uYW1lKTsKICAgIGVuZGlhbmVzcz1tZHBf
bG9jYWxfZW5kaWFuZXNzOwogIH0KICB2b2lkIHNldF90aW1lKCkgewogICAgaW50IGk7CiAgICB0
aW1lX3QgdGltZV9hbmRfZGF0ZTsKICAgIHRpbWUoJnRpbWVfYW5kX2RhdGUpOwogICAgc3RyY3B5
KGNyZWF0aW9uX2RhdGUsIGN0aW1lKCZ0aW1lX2FuZF9kYXRlKSk7CiAgICBmb3IoaSA9IHN0cmxl
bihjcmVhdGlvbl9kYXRlKSsxOyBpPHNpemVvZihjcmVhdGlvbl9kYXRlKTsgaSsrKQogICAgICBj
cmVhdGlvbl9kYXRlW2ldID0gJ1wwJzsKICB9CiAgZnJpZW5kIGJvb2wgc3dpdGNoX2hlYWRlcl9l
bmRpYW5lc3MobWRwX2ZpZWxkX2ZpbGVfaGVhZGVyICZoZWFkZXIpIHsKICAgIGlmKGhlYWRlci5l
bmRpYW5lc3M9PW1kcF9sb2NhbF9lbmRpYW5lc3MpIHJldHVybiBmYWxzZTsKICAgIHN3aXRjaF9l
bmRpYW5lc3NfYnl0ZTQoaGVhZGVyLmVuZGlhbmVzcyk7CiAgICBpZihoZWFkZXIuZW5kaWFuZXNz
PT1tZHBfbG9jYWxfZW5kaWFuZXNzKSB7CiAgICAgIHN3aXRjaF9lbmRpYW5lc3NfYnl0ZTQoaGVh
ZGVyLmVuZGlhbmVzcyk7CiAgICAgIHN3aXRjaF9lbmRpYW5lc3NfYnl0ZTQoaGVhZGVyLm5kaW0p
OwogICAgICBzd2l0Y2hfZW5kaWFuZXNzX2J5dGU0KGhlYWRlci5ib3hbMF0pOwogICAgICBzd2l0
Y2hfZW5kaWFuZXNzX2J5dGU0KGhlYWRlci5ib3hbMV0pOwogICAgICBzd2l0Y2hfZW5kaWFuZXNz
X2J5dGU0KGhlYWRlci5ib3hbMl0pOwogICAgICBzd2l0Y2hfZW5kaWFuZXNzX2J5dGU0KGhlYWRl
ci5ib3hbM10pOwogICAgICBzd2l0Y2hfZW5kaWFuZXNzX2J5dGU0KGhlYWRlci5ib3hbNF0pOwog
ICAgICBzd2l0Y2hfZW5kaWFuZXNzX2J5dGU0KGhlYWRlci5ib3hbNV0pOwogICAgICBzd2l0Y2hf
ZW5kaWFuZXNzX2J5dGU0KGhlYWRlci5ib3hbNl0pOwogICAgICBzd2l0Y2hfZW5kaWFuZXNzX2J5
dGU0KGhlYWRlci5ib3hbN10pOwogICAgICBzd2l0Y2hfZW5kaWFuZXNzX2J5dGU0KGhlYWRlci5i
b3hbOF0pOwogICAgICBzd2l0Y2hfZW5kaWFuZXNzX2J5dGU0KGhlYWRlci5ib3hbOV0pOwogICAg
ICBzd2l0Y2hfZW5kaWFuZXNzX2J5dGU0KGhlYWRlci5ieXRlc19wZXJfc2l0ZSk7CiAgICAgIHN3
aXRjaF9lbmRpYW5lc3NfYnl0ZTQoaGVhZGVyLnNpdGVzKTsKICAgICAgcmV0dXJuIHRydWU7CiAg
ICB9IGVsc2UgewogICAgICBzd2l0Y2hfZW5kaWFuZXNzX2J5dGU0KGhlYWRlci5lbmRpYW5lc3Mp
OwogICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgfQp9OwoKdGVtcGxhdGU8Y2xhc3MgVD4KY2xh
c3MgbWRwX2ZpZWxkICB7CiBwcml2YXRlOgogIG1kcF9sYXR0aWNlKiBwdHI7IC8qIHRoaXMgcG9p
bnRzIHRvIHRoZSBsYXR0aWNlIGZvciB0aGlzIGZpZWxkICAqLwogcHJvdGVjdGVkOgogIFQqIG07
ICAgICAgICAgICAgICAgICAvKiB0aGlzIGlzIHRvIHN0b3JlIHRoZSBtYWluIGZpZWxkICAgICAg
ICAgICAgKi8KICBsb25nIFRzaXplOwogIGxvbmcgc2l6ZTsgICAgICAgICAgICAvKiB0aGlzIGlz
IHRoZSBzaXplIG9mIHRoZSBmaWVsZCBpbiBzaXplb2YoVCkgKi8KICBpbnQgIGZpZWxkX2NvbXBv
bmVudHM7IC8qIHRoaXMgaXMgdGhlIHNpemUgb2YgdGhlIHN0cnVjdHVyZSBwZXIgc2l0ZSAqLwog
cHVibGljOgogIG1kcF9maWVsZF9maWxlX2hlYWRlciBoZWFkZXI7CiAgbWRwX2ZpZWxkKCkgewog
ICAgbT0wOwogICAgVHNpemU9c2l6ZW9mKFQpOwogICAgc2l6ZT1maWVsZF9jb21wb25lbnRzPTA7
CiAgfQogIG1kcF9maWVsZChtZHBfbGF0dGljZSAmYSwgaW50IG49MSkgewogICAgbT0wOwogICAg
YWxsb2NhdGVfZmllbGQoYSwgbik7CiAgfQogIG1kcF9maWVsZChtZHBfZmllbGQgJmZpZWxkKSB7
CiAgICBtPTA7CiAgICBhbGxvY2F0ZV9maWVsZChmaWVsZC5sYXR0aWNlKCksIGZpZWxkLmZpZWxk
X2NvbXBvbmVudHMpOwogIH0KICBib29sIGFsbG9jYXRlZCgpIHsKICAgIGlmKG09PTApIHJldHVy
biBGQUxTRTsKICAgIHJldHVybiBUUlVFOwogIH0KICB2b2lkIHJlc2V0X2ZpZWxkKCkgewogICAg
bT0wOwogICAgcHRyPTA7CiAgICBzaXplPWZpZWxkX2NvbXBvbmVudHM9MDsKICB9CiAgdm9pZCBh
bGxvY2F0ZV9maWVsZChtZHBfbGF0dGljZSAmYSwgaW50IG49MCkgeyAgIAogICAgcmVzZXRfZmll
bGQoKTsKICAgIGlmKG49PTApIG49ZmllbGRfY29tcG9uZW50czsKICAgIGVsc2UgICAgIGZpZWxk
X2NvbXBvbmVudHM9bjsKICAgIGlmKGZpZWxkX2NvbXBvbmVudHM9PTApIAogICAgICBlcnJvcigi
WW91IGNhbm5vdCBoYXZlIGEgZmllbGQgb2YgemVybyBzaXplISIpOwogICAgc2l6ZT1hLm52b2wq
ZmllbGRfY29tcG9uZW50czsKICAgIFRzaXplPXNpemVvZihUKTsKICAgIG09bmV3IFRbc2l6ZV07
CiAgICBpZihtPT0wKSBlcnJvcigiT1VUIE9GIE1FTU9SWSAhISEhIik7CiAgICBwdHI9JmE7CiAg
ICBmaWxsX2hlYWRlcigpOwogIH0KICB2b2lkIGFsbG9jYXRlX2ZpZWxkKFQqIG1lbW9yeV9hZGRy
ZXNzLCBtZHBfbGF0dGljZSAmYSwgaW50IG49MCkgewogICAgbT1oYW5kbGUwPWhhbmRsZTE9aGFu
ZGxlMj0wOwogICAgaWYobj09MCkgbj1maWVsZF9jb21wb25lbnRzOwogICAgZWxzZSAgICAgZmll
bGRfY29tcG9uZW50cz1uOwogICAgaWYoZmllbGRfY29tcG9uZW50cz09MCkgCiAgICAgIGVycm9y
KCJZb3UgY2Fubm90IGhhdmUgYSBmaWVsZCBvZiB6ZXJvIHNpemUhIik7CiAgICBUc2l6ZT1zaXpl
b2YoVCk7CiAgICBzaXplPWEubnZvbCpmaWVsZF9jb21wb25lbnRzOwogICAgbT1tZW1vcnlfYWRk
cmVzczsKICAgIHB0cj0mYTsKICAgIGZpbGxfaGVhZGVyKCk7CiAgfQogIHZvaWQgZmlsbF9oZWFk
ZXIoKSB7CiAgICBpbnQgaTsKICAgIGhlYWRlci5ieXRlc19wZXJfc2l0ZT1Uc2l6ZSpmaWVsZF9j
b21wb25lbnRzOwogICAgaGVhZGVyLnNpdGVzPWxhdHRpY2UoKS5zaXplKCk7CiAgICBoZWFkZXIu
bmRpbT1sYXR0aWNlKCkubmRpbTsKICAgIGZvcihpPTA7IGk8bGF0dGljZSgpLm5kaW07IGkrKykg
aGVhZGVyLmJveFtpXT1sYXR0aWNlKCkuc2l6ZShpKTsKICAgIGZvcig7IGk8MTA7IGkrKykgaGVh
ZGVyLmJveFtpXT0wOyAgICAKICB9CiAgdm9pZCBkZWFsbG9jYXRlX21lbW9yeSgpIHsKICAgIGlm
KG0hPTApIGRlbGV0ZVtdIG07CiAgICBtPTA7CiAgICBzaXplPWZpZWxkX2NvbXBvbmVudHM9MDsK
ICB9CiAgdm9pZCBkZWFsbG9jYXRlX2ZpZWxkKCkgewogICAgZGVhbGxvY2F0ZV9tZW1vcnkoKTsK
ICB9CiAgdmlydHVhbCB+bWRwX2ZpZWxkKCkgewogICAgZGVhbGxvY2F0ZV9tZW1vcnkoKTsKICB9
CiAgaW5saW5lIFQmIG9wZXJhdG9yKCkgKG1kcF9zaXRlIHgsIGludCBpPTApIHsKICAgICNpZmRl
ZiBDSEVDS19BTEwKICAgIGlmKCEoeC5pc19oZXJlKCkpKSB7CiAgICAgIGVycm9yKCJZb3UgYXJl
IGxvb2tpbmcgZm9yIGEgc2l0ZSB0aGF0IGlzIG5vdCBoZXJlIik7CiAgICB9CiAgICAjZW5kaWYK
ICAgIHJldHVybiBtW3guaWR4KmZpZWxkX2NvbXBvbmVudHMraV07CiAgfQoKICBpbmxpbmUgVCYg
b3BlcmF0b3IoKSAoaW50IGlkeCwgaW50IGk9MCkgewogICAgcmV0dXJuIG1baWR4KmZpZWxkX2Nv
bXBvbmVudHMraV07CiAgfQogIGlubGluZSBUKiBvcGVyYXRvcltdIChtZHBfc2l0ZSB4KSB7CiAg
ICByZXR1cm4gYWRkcmVzcyh4LDApOwogIH0KICBpbmxpbmUgVCYgb3BlcmF0b3JbXSAobG9uZyBp
KSB7CiAgICByZXR1cm4gbVtpXTsKICB9CgogIGlubGluZSBUKiBhZGRyZXNzKG1kcF9zaXRlIHgs
IGludCBpPTApIGNvbnN0IHsKICAgICNpZmRlZiBDSEVDS19BTEwKICAgIGlmKCEoeC5pc19oZXJl
KCkpKSB7CiAgICAgIGVycm9yKCJZb3UgYXJlIGxvb2tpbmcgZm9yIGEgc2l0ZSB0aGF0IGlzIG5v
dCBoZXJlIik7CiAgICB9CiAgICAjZW5kaWYKICAgIHJldHVybiBtK3guaWR4KmZpZWxkX2NvbXBv
bmVudHMraTsKICB9CiAgdm9pZCBvcGVyYXRvcj0gKGNvbnN0IG1kcF9maWVsZCAmYSkgewogICAg
aWYoJmxhdHRpY2UoKSE9JmEubGF0dGljZSgpIHx8IAogICAgICAgc2l6ZSE9YS5zaXplIHx8IAog
ICAgICAgZmllbGRfY29tcG9uZW50cyE9YS5maWVsZF9jb21wb25lbnRzKSAKICAgICAgZXJyb3Io
Im1kcF9maWVsZDogb3BlcmF0b3I9KCkgaW5jb21wYXRpYmxlIGZpZWxkcyIpOwogICAgbG9uZyBp
PTA7CiAgICBmb3IoOyBpPHNpemU7IGkrKykgbVtpXT1hLm1baV07CiAgfQogIHZvaWQgb3BlcmF0
b3I9IChjb25zdCBUIGEpIHsKICAgIGZvcihsb25nIGk9MDsgaTxzaXplOyBpKyspIG1baV09YTsK
ICB9CiAgdm9pZCBvcGVyYXRvcis9KGNvbnN0IG1kcF9maWVsZCAmYSkgewogICAgZm9yKGxvbmcg
aT0wOyBpPHNpemU7IGkrKykgbVtpXSs9YS5tW2ldOwogIH0KICB2b2lkIG9wZXJhdG9yLT0oY29u
c3QgbWRwX2ZpZWxkICZhKSB7CiAgICBmb3IobG9uZyBpPTA7IGk8c2l6ZTsgaSsrKSBtW2ldLT1h
Lm1baV07CiAgfQogIHRlbXBsYXRlIDxjbGFzcyBUMj4gCiAgICB2b2lkIG9wZXJhdG9yKj0oY29u
c3QgVDIgYSkgewogICAgZm9yKGxvbmcgaT0wOyBpPHNpemU7IGkrKykgbVtpXSo9YTsKICB9CiAg
dGVtcGxhdGUgPGNsYXNzIFQyPgogICAgdm9pZCBvcGVyYXRvci89KGNvbnN0IFQyIGEpIHsKICAg
IGZvcihsb25nIGk9MDsgaTxzaXplOyBpKyspIG1baV0vPWE7CiAgfQogIGlubGluZSBtZHBfbGF0
dGljZSAmbGF0dGljZSgpIGNvbnN0IHsKICAgIHJldHVybiAqcHRyOwogIH0KICBsb25nIGZpZWxk
X3NpemUoKSB7CiAgICByZXR1cm4gCiAgICAgIGxhdHRpY2UoKS5zaXplKCkqZmllbGRfY29tcG9u
ZW50cypUc2l6ZTsKICB9CiAgbG9uZyBmaWxlX3NpemUoKSB7CiAgICByZXR1cm4gCiAgICAgIHNp
emVvZihtZHBfZmllbGRfZmlsZV9oZWFkZXIpKwogICAgICBmaWVsZF9zaXplKCk7CiAgfQogIGlu
dCB3aGVyZV9nbG9iYWwobG9uZyBpKSB7CiAgICBpbnQgeFsxMF07CiAgICBsYXR0aWNlKCkuZ2xv
YmFsX2Nvb3JkaW5hdGUoaSwgeCk7CiAgICByZXR1cm4gKCoobGF0dGljZSgpLndoZXJlKSkoeCwg
bGF0dGljZSgpLm5kaW0sIGxhdHRpY2UoKS5ueCk7CiAgfQoKICB2b2lkIHN3aXRjaF9lbmRpYW5l
c3NfNGJ5dGVzKCkgewogICAgLy8gSSBhbSBub3Qgc3VyZSBpZiB0aGlzIHdvcmtkIGZvciBjb21w
bGV4PGRvdWJsZT4KICAgIHVpbnQgKnA7CiAgICB1aW50IGk7CgogICAgaWYoVHNpemUqZmllbGRf
Y29tcG9uZW50cyAlIDQgIT0wKSBlcnJvcigiRmllbGQgbm90ICUgNCIpOwogICAgbWRwX3NpdGUg
eChsYXR0aWNlKCkpOwogICAgZm9yYWxsc2l0ZXNhbmRjb3BpZXMoeCkgewogICAgICBwPSh1aW50
KikgYWRkcmVzcyh4KTsKICAgICAgZm9yKGk9MDsgaTxUc2l6ZSpmaWVsZF9jb21wb25lbnRzL3Np
emVvZihsb25nKTsgaSsrKSB7Cglzd2l0Y2hfZW5kaWFuZXNzX2J5dGU0KCoocCtpKSk7CiAgICAg
IH0KICAgIH0KICB9CgogIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwog
IC8vIGZ1bmN0aW9ucyB0byBhY2Nlc3MgbWVtYmVyIHZhcmlhYmxlcwogIC8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKICBpbmxpbmUgbG9uZyBnbG9iYWxfc2l6ZSgpIHsK
ICAgIHJldHVybiBmaWVsZF9jb21wb25lbnRzKmxhdHRpY2UoKS5nbG9iYWxfdm9sdW1lKCk7CiAg
fQogIGlubGluZSBsb25nIHBoeXNpY2FsX3NpemUoKSB7CiAgICByZXR1cm4gc2l6ZTsKICB9CiAg
aW5saW5lIGxvbmcgc2l6ZV9wZXJfc2l0ZSgpIHsKICAgIHJldHVybiBmaWVsZF9jb21wb25lbnRz
OwogIH0KICBpbmxpbmUgbG9uZyBwaHlzaWNhbF9sb2NhbF9zdGFydChpbnQgaT0yKSB7CiAgICBp
ZihpPT0yKSBpPTA7CiAgICByZXR1cm4gZmllbGRfY29tcG9uZW50cypsYXR0aWNlKCkuc3RhcnRb
TUVdW2ldOwogIH0KICBpbmxpbmUgbG9uZyBwaHlzaWNhbF9sb2NhbF9zdG9wKGludCBpPTIpIHsK
ICAgIGlmKGk9PTIpIGk9MTsKICAgIHJldHVybiBmaWVsZF9jb21wb25lbnRzKmxhdHRpY2UoKS5z
dG9wW01FXVtpXTsKICB9CiAgaW5saW5lIFQqIHBoeXNpY2FsX2FkZHJlc3MobG9uZyBpPTApIHsK
ICAgIHJldHVybiBtK2k7IAogIH0KICB2b2lkIGFzc2lnbl90b19udWxsKCkgewogICAgbT0wOwog
IH0KCgogIHZvaWQgdXBkYXRlKGludCBucD0yLCBpbnQgZD0tMSwgaW50IHNpemU9MSk7CgogIC8v
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLwogIC8vIElPIGZ1bmN5aW9uczogbG9hZChmaWxlbmFtZSwgcHJvY2Vzc0lPLCBidWZmZXJz
aXplKQogIC8vICAgICAgICAgICAgICAgc2F2ZShmaWxlbmFtZSwgcHJvY2Vzc0lPLCBidWZmZXJz
aXplKSAgIAogIC8vIGZpbGVuYW1lIHNob3VsZCBwb3NzaWJseSBpbmNsdWRlIHRoZSBwYXRoLgog
IC8vIHByb2Nlc3NJTyBpcyB0aGUgcHJvY2VzcyB0aGF0IHBoeXNpY2FsbHkgcGVyZm9ybSB0aGUg
SU8uCiAgLy8gYnVmZmVyc2l6ZSBpZiB0aGUgc2l6ZSBvZiB0aGUgYnVmZmVyIGFzc29jaWF0ZWQg
dG8gdGhlCiAgLy8gICBjb21tdW5pY2F0aW9uIHRvIGVhY2ggcHJvY2Vzcy4gYnVmZmVyc2l6ZSpO
cHJvYyAKICAvLyAgIHNob3VsZCBmaXQgaW4gdGhlIG1lbW9yeSBvZiBwcm9jZXNzSU8uCiAgLy8g
ICBCeSBkZWZhdWx0IGJ1ZmZlcnNpemU9MTAyNCBhbmQgaXQgd29ya3MgcmVhc29uYWJseSBmYXN0
LgogIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vCgogIGJvb2wgbG9hZChzdHJpbmcgZmlsZW5hbWUsIAoJICAgIGludCBwcm9jZXNz
SU89MCwgCgkgICAgbG9uZyBtYXhfYnVmZmVyX3NpemU9MTAyNCwgCgkgICAgYm9vbCBsb2FkX2hl
YWRlcj10cnVlLAoJICAgIGxvbmcgc2tpcF9ieXRlcz0wLAoJICAgIGJvb2wgKCp1c2VyX3JlYWQp
KEZJTEUqLCB2b2lkKiwgbG9uZywgbG9uZywgbG9uZywgY29uc3QgbWRwX2xhdHRpY2UmKT0wLAoJ
ICAgIGJvb2wgdHJ5X3N3aXRjaF9lbmRpYW5lc3M9ZmFsc2UpOwogIAogIAogIGJvb2wgc2F2ZShz
dHJpbmcgZmlsZW5hbWUsIAoJICAgIGludCBwcm9jZXNzSU89MCwgCgkgICAgbG9uZyBtYXhfYnVm
ZmVyX3NpemU9MTAyNCwgCgkgICAgYm9vbCBsb2FkX2hlYWRlcj10cnVlLAoJICAgIGxvbmcgc2tp
cF9ieXRlcz0wLAoJICAgIGJvb2wgKCp1c2VyX3dyaXRlKShGSUxFKiwgdm9pZCosIGxvbmcsIGxv
bmcsIGxvbmcsIGNvbnN0IG1kcF9sYXR0aWNlJik9MCk7CgojaWZkZWYgSU5DTFVERV9ERVBSRUNB
VEVEX0lPCiAgdm9pZCBsb2FkKGNoYXIgZmlsZW5hbWVbXSwgCgkgICAgaW50IHByb2Nlc3NJTywg
CgkgICAgbG9uZyBtYXhfYnVmZmVyX3NpemUsIAoJICAgIGNoYXIgKmhlYWRlciwgCgkgICAgbG9u
ZyBoZWFkZXJfc2l6ZT0wLAoJICAgIGxvbmcgKCpzb3J0X3gpKG1kcF9sYXR0aWNlJixsb25nKT0w
LAoJICAgIGludCBhdXRvX3N3aXRjaF9lbmRpYW5lc3M9VFJVRSk7CiAgCiAgdm9pZCBzYXZlKGNo
YXIgZmlsZW5hbWVbXSwgCgkgICAgaW50IHByb2Nlc3NJTywgCgkgICAgbG9uZyBtYXhfYnVmZmVy
X3NpemUsCgkgICAgY2hhciAqaGVhZGVyLAoJICAgIGxvbmcgaGVhZGVyX3NpemU9MCwKCSAgICBs
b25nICgqc29ydF94KShtZHBfbGF0dGljZSYsbG9uZyk9MCwKCSAgICBjaGFyICptb2RlPSJ3Iik7
CiNlbmRpZgogIAp9OwoKCgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAbWRwX2ZpZWxkX2xvYWQuaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAADAxMDA2NDQAMDAzMzEyNgAwMDI0NDYxADAwMDAwMDEyMzA2ADEwMTQzMDEzMTU2ADAxNDcy
NgAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAE1E
aVBpZXJybwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWtncm91cC1sLWQAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gRmlsZSBOYW1lOiBtZHBf
ZmllbGRfbG9hZC5oCi8vIFZlcnNpb246ICAgMi4zCi8vIERhdGU6ICAgICAgMS1PY3QtMjAwMgov
LyBBdXRob3I6ICAgIE1hc3NpbW8gRGkgUGllcnJvIDxtZHBAbWV0YWNyeXB0aW9uLmNvbT4KLy8g
TGljZW5zZTogICBUaGlzIGZpbGUgaXMgZXhjbHVzaXZlIHByb3BlcnR5IG9mIE1ldGFDcnlwdGlv
biBMTEMKLy8gICAgICAgICAgICBSZWFkIGF0dGFjaGVkIGxpY2Vuc2UgaW4gZmlsZSBtZHBfbGlj
ZW5zZS5wZGYKLy8gICAgICAgICAgICBUaGlzIGZpbGUgY2Fubm90IGJlIGRpc3RyaWJ1dGVkIHdp
dGhvdXQgZmlsZSBtZHBfbGljZW5zZS5wZGYKLy8KLy8gRGVzY3JpcHRpb246Ci8vICAgICBtZHBf
ZmllbGQ6OmxvYWQoKSBsb2FkIGEgZmllbGQgaW4gcGFyYWxsZWwgZnJvbSBhIGRpc2sKLy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCgpib29sIG1kcF9kZWZhdWx0X3VzZXJfcmVhZChGSUxFICpmcCwKCQkJ
ICAgdm9pZCogcCwKCQkJICAgbG9uZyBwc2l6ZSwKCQkJICAgbG9uZyBoZWFkZXJfc2l6ZSwKCQkJ
ICAgbG9uZyBwb3NpdGlvbiwKCQkJICAgY29uc3QgbWRwX2xhdHRpY2UgJmxhdHRpY2UpIHsKICBp
Zihmc2VlayhmcCwgcG9zaXRpb24qcHNpemUraGVhZGVyX3NpemUsIFNFRUtfU0VUKSB8fAogICAg
IGZyZWFkKHAsIHBzaXplLDEsIGZwKSE9MSkgcmV0dXJuIGZhbHNlOwogIHJldHVybiB0cnVlOwp9
CgoKdGVtcGxhdGU8Y2xhc3MgVD4KYm9vbCBtZHBfZmllbGQ8VD46OmxvYWQoc3RyaW5nIGZpbGVu
YW1lLCAKCQkJaW50IHByb2Nlc3NJTywgCgkJCWxvbmcgbWF4X2J1ZmZlcl9zaXplLCAKCQkJYm9v
bCBsb2FkX2hlYWRlciwKCQkJbG9uZyBza2lwX2J5dGVzLAoJCQlib29sICgqdXNlcl9yZWFkKShG
SUxFKiwgdm9pZCosIGxvbmcsIGxvbmcsIGxvbmcsIGNvbnN0IG1kcF9sYXR0aWNlJiksCgkJCWJv
b2wgdHJ5X3N3aWN0aF9lbmRpYW5lc3MpIHsKCiAgbG9uZyBoZWFkZXJfc2l6ZT0wOwogIGxvbmcg
aWR4X2dsLCBudm9sX2dsPWxhdHRpY2UoKS5udm9sX2dsLCBrOwogIGxvbmcgcHNpemU9ZmllbGRf
Y29tcG9uZW50cypUc2l6ZTsKICBkb3VibGUgbXl0aW1lPW1waS50aW1lKCk7CiAgYm9vbCByZXZl
cnNlZF9oZWFkZXJfZW5kaWFuZXNzPWZhbHNlOwogIGlmKE1FPT1wcm9jZXNzSU8pIHsKICAgIGxv
bmcgKmJ1ZmZlcl9zaXplPW5ldyBsb25nW05wcm9jXTsKICAgIG1kcF9hcnJheTxULDM+IGxhcmdl
X2J1ZmZlcihOcHJvYyxtYXhfYnVmZmVyX3NpemUsZmllbGRfY29tcG9uZW50cyk7CiAgICBUICpz
aG9ydF9idWZmZXI9bmV3IFRbZmllbGRfY29tcG9uZW50c107CiAgICBpbnQgcHJvY2VzczsKICAg
IG1kcF9yZXF1ZXN0IHJlcXVlc3Q7CgogICAgZm9yKHByb2Nlc3M9MDsgcHJvY2VzczxOcHJvYzsg
cHJvY2VzcysrKSBidWZmZXJfc2l6ZVtwcm9jZXNzXT0wOwogICAgY291dCA8PCAiTG9hZGluZyBm
aWxlICIgPDwgZmlsZW5hbWUgCgkgPDwgIiBmcm9tIHByb2Nlc3MgIiA8PCBwcm9jZXNzSU8gCgkg
PDwgIiAoYnVmZmVyID0gIiA8PCBtYXhfYnVmZmVyX3NpemUgPDwgIiBzaXRlcykiIDw8ICdcbic7
IAogICAgZmZsdXNoKHN0ZG91dCk7CiAgICBGSUxFICpmcD1mb3BlbihmaWxlbmFtZS5jX3N0cigp
LCAicmIiKTsKICAgIGlmKGZwPT0wKSBlcnJvcigiVW5hYmxlIHRvIG9wZW4gZmlsZSIpOwogICAg
CiAgICBpbnQgaTsKICAgIGlmKGxvYWRfaGVhZGVyKSB7CiAgICAgIG1kcF9maWVsZF9maWxlX2hl
YWRlciB0bXBfaGVhZGVyOwogICAgICBoZWFkZXJfc2l6ZT1zaXplb2YobWRwX2ZpZWxkX2ZpbGVf
aGVhZGVyKTsKICAgICAgaWYoZnNlZWsoZnAsIHNraXBfYnl0ZXMsIFNFRUtfU0VUKSB8fCAKCSAg
IGZyZWFkKCZ0bXBfaGVhZGVyLCBoZWFkZXJfc2l6ZSwgMSwgZnApIT0xKSB7CglmcHJpbnRmKHN0
ZGVyciwibWRwX2ZpZWxkLmxvYWQoKTogVW5hYmxlIHRvIGxvYWQgZmlsZSBoZWFkZXJcbiIpOwoJ
cmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgIAogICAgICByZXZlcnNlZF9oZWFkZXJfZW5kaWFu
ZXNzPXN3aXRjaF9oZWFkZXJfZW5kaWFuZXNzKHRtcF9oZWFkZXIpOwogICAgICBpZih0bXBfaGVh
ZGVyLmVuZGlhbmVzcyE9aGVhZGVyLmVuZGlhbmVzcykgCglmcHJpbnRmKHN0ZGVyciwgIlVucmVj
b2duaXplZCBlbmRpYW5lc3MuLi4gdHJ5aW5nIHRvIHJlYWQgYW55d2F5XG4iKTsKCiAgICAgIGlm
KHRtcF9oZWFkZXIubmRpbSE9aGVhZGVyLm5kaW0pIHsKCWZwcmludGYoc3RkZXJyLCJtZHBfZmll
bGQubG9hZCgpOiB3cm9uZyBuZGltXG4iKTsKCXJldHVybiBmYWxzZTsKICAgICAgfQogICAgICBm
b3IoaT0wOyBpPGxhdHRpY2UoKS5uZGltOyBpKyspICAKCWlmKHRtcF9oZWFkZXIuYm94W2ldIT1o
ZWFkZXIuYm94W2ldKSB7CgkgIGZwcmludGYoc3RkZXJyLCJtZHBfZmlsZS5sb2FkKCk6IHdyb25n
IGxhdHRpY2Ugc2l6ZVxuIik7CgkgIHJldHVybiBmYWxzZTsKCX0KICAgICAgaWYodG1wX2hlYWRl
ci5ieXRlc19wZXJfc2l0ZSE9aGVhZGVyLmJ5dGVzX3Blcl9zaXRlKSB7CglmcHJpbnRmKHN0ZGVy
ciwgIm1kcF9maWxlLmxvYWQoKTogd3JvbmcgdHlwZSBvZiBmaWVsZFxuIik7CglyZXR1cm4gZmFs
c2U7CiAgICAgIH0KICAgICAgaWYodG1wX2hlYWRlci5zaXRlcyE9aGVhZGVyLnNpdGVzKSB7Cglm
cHJpbnRmKHN0ZGVyciwibWRwX2ZpZWxkLmxvYWQoKTogd3JvbmcgbnVtYmVyIG9mIHNpdGVzXG4i
KTsKCXJldHVybiBmYWxzZTsKICAgICAgfQogICAgICBoZWFkZXI9dG1wX2hlYWRlcjsKICAgIH0K
ICAgIAogICAgc2tpcF9ieXRlcys9aGVhZGVyX3NpemU7CiAgICAKICAgIGZvcihpZHhfZ2w9MDsg
aWR4X2dsPG52b2xfZ2w7IGlkeF9nbCsrKSB7CiAgICAgIHByb2Nlc3M9d2hlcmVfZ2xvYmFsKGlk
eF9nbCk7CiAgICAgIGlmKHByb2Nlc3MhPU5PV0hFUkUpIHsKCSAgaWYodXNlcl9yZWFkKSB7Cgkg
ICAgaWYoIXVzZXJfcmVhZChmcCwgc2hvcnRfYnVmZmVyLCAKCQkJICBmaWVsZF9jb21wb25lbnRz
KlRzaXplLCAKCQkJICBza2lwX2J5dGVzLCAKCQkJICBpZHhfZ2wsIGxhdHRpY2UoKSkpCgkgICAg
ICBlcnJvcigidW5leHBlY3RlZCBlbmQgb2YgZmlsZSIpOwoJICB9IGVsc2UgewoJICAgIGlmKGZz
ZWVrKGZwLCBpZHhfZ2wqcHNpemUrc2tpcF9ieXRlcywgU0VFS19TRVQpIHx8CgkgICAgICAgZnJl
YWQoc2hvcnRfYnVmZmVyLCBwc2l6ZSwgMSwgZnApIT0xKSAKCSAgICAgIGVycm9yKCJ1bmV4cGVj
dGVkIGVuZCBvZiBmaWxlIik7CgkgIH0KICAgICAgfQogICAgICBpZigocHJvY2VzcyE9Tk9XSEVS
RSkgJiYgKHByb2Nlc3MhPXByb2Nlc3NJTykpIHsKCWZvcihrPTA7IGs8ZmllbGRfY29tcG9uZW50
czsgaysrKQoJICBsYXJnZV9idWZmZXIocHJvY2VzcyxidWZmZXJfc2l6ZVtwcm9jZXNzXSxrKT1z
aG9ydF9idWZmZXJba107CglidWZmZXJfc2l6ZVtwcm9jZXNzXSsrOwoJaWYoYnVmZmVyX3NpemVb
cHJvY2Vzc109PW1heF9idWZmZXJfc2l6ZSkgewoJICAgIG1waS5wdXQoJihsYXJnZV9idWZmZXIo
cHJvY2VzcywwLDApKSwgCgkJICAgIG1heF9idWZmZXJfc2l6ZSpmaWVsZF9jb21wb25lbnRzLCBw
cm9jZXNzLCByZXF1ZXN0KTsgCgkgICAgbXBpLndhaXQocmVxdWVzdCk7CgkgICAgYnVmZmVyX3Np
emVbcHJvY2Vzc109MDsKCX0KCWlmKGlkeF9nbD09bnZvbF9nbC0xKSAKCSAgZm9yKHByb2Nlc3M9
MDsgcHJvY2VzczxOcHJvYzsgcHJvY2VzcysrKQoJICAgIGlmKChwcm9jZXNzIT1NRSkgJiYgCgkJ
IChidWZmZXJfc2l6ZVtwcm9jZXNzXSE9bWF4X2J1ZmZlcl9zaXplKSAmJgoJICAgICAgIChidWZm
ZXJfc2l6ZVtwcm9jZXNzXT4wKSkgewoJCW1waS5wdXQoJihsYXJnZV9idWZmZXIocHJvY2Vzcyww
LDApKSwgCgkJCWJ1ZmZlcl9zaXplW3Byb2Nlc3NdKmZpZWxkX2NvbXBvbmVudHMsIAoJCQlwcm9j
ZXNzLCByZXF1ZXN0KTsgCgkJbXBpLndhaXQocmVxdWVzdCk7CgkgICAgfQogICAgICB9CiAgICAg
IGlmKHByb2Nlc3M9PXByb2Nlc3NJTykgewoJICBmb3Ioaz0wOyBrPGZpZWxkX2NvbXBvbmVudHM7
IGsrKykKCSAgICAqKG0rbGF0dGljZSgpLmxvY2FsKGlkeF9nbCkqZmllbGRfY29tcG9uZW50cytr
KT1zaG9ydF9idWZmZXJba107CiAgICAgIH0KICAgIH0KICAgIGRlbGV0ZVtdIGJ1ZmZlcl9zaXpl
OwogICAgZGVsZXRlW10gc2hvcnRfYnVmZmVyOwogICAgZmNsb3NlKGZwKTsKICB9IGVsc2Ugewog
ICAgaW50ICBwcm9jZXNzOwogICAgbG9uZyBidWZmZXJfc2l6ZT0wLCBpZHg7CiAgICBsb25nICps
b2NhbF9pbmRleD1uZXcgbG9uZ1ttYXhfYnVmZmVyX3NpemVdOwogICAgbWRwX2FycmF5PFQsMj4g
bG9jYWxfYnVmZmVyKG1heF9idWZmZXJfc2l6ZSxmaWVsZF9jb21wb25lbnRzKTsKICAgIGZvcihp
ZHhfZ2w9MDsgaWR4X2dsPG52b2xfZ2w7IGlkeF9nbCsrKSB7CiAgICAgIHByb2Nlc3M9d2hlcmVf
Z2xvYmFsKGlkeF9nbCk7CiAgICAgIGlmKHByb2Nlc3M9PU1FKSB7Cglsb2NhbF9pbmRleFtidWZm
ZXJfc2l6ZV09bGF0dGljZSgpLmxvY2FsKGlkeF9nbCk7CglidWZmZXJfc2l6ZSsrOwogICAgICB9
CiAgICAgIGlmKChidWZmZXJfc2l6ZT09bWF4X2J1ZmZlcl9zaXplKSB8fCAKCSAoKGlkeF9nbD09
bnZvbF9nbC0xKSAmJiAoYnVmZmVyX3NpemU+MCkpKSB7CgltcGkuZ2V0KCYobG9jYWxfYnVmZmVy
KDAsMCkpLCBidWZmZXJfc2l6ZSpmaWVsZF9jb21wb25lbnRzLCBwcm9jZXNzSU8pOwoJZm9yKGlk
eD0wOyBpZHg8YnVmZmVyX3NpemU7IGlkeCsrKQoJICBmb3Ioaz0wOyBrPGZpZWxkX2NvbXBvbmVu
dHM7IGsrKykKCSAgICAqKG0rbG9jYWxfaW5kZXhbaWR4XSpmaWVsZF9jb21wb25lbnRzK2spPWxv
Y2FsX2J1ZmZlcihpZHgsayk7CglidWZmZXJfc2l6ZT0wOwogICAgICB9CiAgICB9CiAgICBkZWxl
dGVbXSBsb2NhbF9pbmRleDsKICB9CgogIHVwZGF0ZSgpOwogIG1waS5icm9hZGNhc3QocmV2ZXJz
ZWRfaGVhZGVyX2VuZGlhbmVzcyxwcm9jZXNzSU8pOwogIGlmKHRyeV9zd2ljdGhfZW5kaWFuZXNz
ICYmIHJldmVyc2VkX2hlYWRlcl9lbmRpYW5lc3MpIAogICAgc3dpdGNoX2VuZGlhbmVzc180Ynl0
ZXMoKTsKIAogIGlmKE1FPT0wICYmIG1kcF9zaHV0dXA9PUZBTFNFKSB7CiAgICBwcmludGYoIi4u
LiBMb2FkaW5nIHRpbWU6ICVmIChzZWMpXG4iLCBtcGkudGltZSgpLW15dGltZSk7CiAgICBmZmx1
c2goc3Rkb3V0KTsKICB9CiAgcmV0dXJuIHRydWU7Cn0KCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAbWRwX2ZpZWxkX3NhdmUuaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAxMDA2NDQA
MDAzMzEyNgAwMDI0NDYxADAwMDAwMDEwMDQyADEwMTQzMDEzMTU2ADAxNDc0MAAgMAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAE1EaVBpZXJybwAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAbWtncm91cC1sLWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gRmlsZSBOYW1lOiBtZHBfZmllbGRfc2F2ZS5o
Ci8vIFZlcnNpb246ICAgMi4zCi8vIERhdGU6ICAgICAgMS1PY3QtMjAwMgovLyBBdXRob3I6ICAg
IE1hc3NpbW8gRGkgUGllcnJvIDxtZHBAbWV0YWNyeXB0aW9uLmNvbT4KLy8gTGljZW5zZTogICBU
aGlzIGZpbGUgaXMgZXhjbHVzaXZlIHByb3BlcnR5IG9mIE1ldGFDcnlwdGlvbiBMTEMKLy8gICAg
ICAgICAgICBSZWFkIGF0dGFjaGVkIGxpY2Vuc2UgaW4gZmlsZSBtZHBfbGljZW5zZS5wZGYKLy8g
ICAgICAgICAgICBUaGlzIGZpbGUgY2Fubm90IGJlIGRpc3RyaWJ1dGVkIHdpdGhvdXQgZmlsZSBt
ZHBfbGljZW5zZS5wZGYKLy8KLy8gRGVzY3JpcHRpb246Ci8vICAgICBtZHBfZmllbGQ6OnNhdmUo
KSB3cml0ZXMgYSBmaWVsZCBpbiBwYXJhbGxlbCB0byBkaXNrCi8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LwoKYm9vbCBtZHBfZGVmYXVsdF91c2VyX3dyaXRlKEZJTEUgKmZwLAoJCQkgICAgdm9pZCogcCwK
CQkJICAgIGxvbmcgcHNpemUsCgkJCSAgICBsb25nIGhlYWRlcl9zaXplLAoJCQkgICAgbG9uZyBw
b3NpdGlvbiwKCQkJICAgIGNvbnN0IG1kcF9sYXR0aWNlICZsYXR0aWNlKSB7CiAgaWYoZnNlZWso
ZnAsIHBvc2l0aW9uKnBzaXplK2hlYWRlcl9zaXplLCBTRUVLX1NFVCkgfHwKICAgICBmd3JpdGUo
cCwgcHNpemUsMSwgZnApIT0xKSByZXR1cm4gZmFsc2U7CiAgcmV0dXJuIHRydWU7Cn0KCgp0ZW1w
bGF0ZTxjbGFzcyBUPgpib29sIG1kcF9maWVsZDxUPjo6c2F2ZShzdHJpbmcgZmlsZW5hbWUsIAoJ
CQlpbnQgcHJvY2Vzc0lPLCAKCQkJbG9uZyBtYXhfYnVmZmVyX3NpemUsIAoJCQlib29sIHNhdmVf
aGVhZGVyLAoJCQlsb25nIHNraXBfYnl0ZXMsCgkJCWJvb2wgKCp1c2VyX3dyaXRlKShGSUxFKiwg
dm9pZCosIGxvbmcsIGxvbmcsIGxvbmcsIGNvbnN0IG1kcF9sYXR0aWNlJikpIHsKCiAgbG9uZyBo
ZWFkZXJfc2l6ZT0wOwogIGxvbmcgcHNpemU9ZmllbGRfY29tcG9uZW50cypUc2l6ZTsKICBsb25n
IGlkeF9nbCwgbnZvbF9nbD1sYXR0aWNlKCkubnZvbF9nbCwgazsKICBkb3VibGUgbXl0aW1lPW1w
aS50aW1lKCk7CiAgaGVhZGVyLnJlc2V0KCk7CiAgaWYoTUU9PXByb2Nlc3NJTykgewogICAgbG9u
ZyAqYnVmZmVyX3NpemU9bmV3IGxvbmdbTnByb2NdOwogICAgbG9uZyAqYnVmZmVyX3B0ciA9bmV3
IGxvbmdbTnByb2NdOwogICAgbWRwX2FycmF5PFQsMz4gbGFyZ2VfYnVmZmVyKE5wcm9jLG1heF9i
dWZmZXJfc2l6ZSxmaWVsZF9jb21wb25lbnRzKTsKICAgIFQgKnNob3J0X2J1ZmZlcj1uZXcgVFtm
aWVsZF9jb21wb25lbnRzXTsKICAgIGludCBwcm9jZXNzOwogICAgZm9yKHByb2Nlc3M9MDsgcHJv
Y2VzczxOcHJvYzsgcHJvY2VzcysrKSBidWZmZXJfcHRyW3Byb2Nlc3NdPTA7CiAgICBjb3V0IDw8
ICJTYXZpbmcgZmlsZSAiIDw8IGZpbGVuYW1lIAoJIDw8ICIgZnJvbSBwcm9jZXNzICIgPDwgcHJv
Y2Vzc0lPIAoJIDw8ICIgKGJ1ZmZlciA9ICIgPDwgbWF4X2J1ZmZlcl9zaXplIDw8ICIgc2l0ZXMp
IiA8PCAnXG4nOyAKICAgIGZmbHVzaChzdGRvdXQpOwogICAgRklMRSAqZnA9Zm9wZW4oZmlsZW5h
bWUuY19zdHIoKSwgIndiKyIpOwogICAgaWYoZnA9PTApIGVycm9yKCJVbmFibGUgdG8gb3BlbiBm
aWxlIik7ICAgICAgCgogICAgaGVhZGVyLnNldF90aW1lKCk7CiAgICAKICAgIGlmKHNhdmVfaGVh
ZGVyKSB7CiAgICAgIGhlYWRlcl9zaXplPXNpemVvZihtZHBfZmllbGRfZmlsZV9oZWFkZXIpOwog
ICAgICBpZihmc2VlayhmcCwgc2tpcF9ieXRlcywgU0VFS19TRVQpIHx8IAoJIGZ3cml0ZSgmaGVh
ZGVyLCBoZWFkZXJfc2l6ZSwgMSwgZnApIT0xKQoJZXJyb3IoIlVuYWJsZSB0byB3cml0ZSBmaWxl
IGhlYWRlciIpOwogICAgfQoKICAgIHNraXBfYnl0ZXMrPWhlYWRlcl9zaXplOwoKICAgIGZvcihp
ZHhfZ2w9MDsgaWR4X2dsPG52b2xfZ2w7IGlkeF9nbCsrKSB7CiAgICAgIHByb2Nlc3M9d2hlcmVf
Z2xvYmFsKGlkeF9nbCk7CiAgICAgIGlmKChwcm9jZXNzIT1OT1dIRVJFKSAmJiAocHJvY2VzcyE9
cHJvY2Vzc0lPKSkgewoJaWYoYnVmZmVyX3B0cltwcm9jZXNzXT09MCkgewoJICBtcGkuZ2V0KGJ1
ZmZlcl9zaXplW3Byb2Nlc3NdLCBwcm9jZXNzKTsKCSAgbXBpLmdldCgmKGxhcmdlX2J1ZmZlcihw
cm9jZXNzLDAsMCkpLCAKCQkgIGJ1ZmZlcl9zaXplW3Byb2Nlc3NdKmZpZWxkX2NvbXBvbmVudHMs
IHByb2Nlc3MpOwoJfQoJZm9yKGs9MDsgazxmaWVsZF9jb21wb25lbnRzOyBrKyspCgkgIHNob3J0
X2J1ZmZlcltrXT1sYXJnZV9idWZmZXIocHJvY2VzcyxidWZmZXJfcHRyW3Byb2Nlc3NdLGspOwoJ
YnVmZmVyX3B0cltwcm9jZXNzXSsrOwoJaWYoYnVmZmVyX3B0cltwcm9jZXNzXT09YnVmZmVyX3Np
emVbcHJvY2Vzc10pIGJ1ZmZlcl9wdHJbcHJvY2Vzc109MDsgCiAgICAgIH0KICAgICAgaWYocHJv
Y2Vzcz09cHJvY2Vzc0lPKSB7Cglmb3Ioaz0wOyBrPGZpZWxkX2NvbXBvbmVudHM7IGsrKykKCSAg
c2hvcnRfYnVmZmVyW2tdPSoobStsYXR0aWNlKCkubG9jYWwoaWR4X2dsKSpmaWVsZF9jb21wb25l
bnRzK2spOwogICAgICB9CiAgICAgIGlmKHByb2Nlc3MhPU5PV0hFUkUpIHsKCWlmKHVzZXJfd3Jp
dGUpIHsKCSAgaWYoIXVzZXJfd3JpdGUoZnAsIHNob3J0X2J1ZmZlciwgCgkJCSBmaWVsZF9jb21w
b25lbnRzKlRzaXplLCAKCQkJIHNraXBfYnl0ZXMsIAoJCQkgaWR4X2dsLCBsYXR0aWNlKCkpKQoJ
ICAgIGVycm9yKCJwcm9wYWJseSBvdXQgb2ZkaXNrIHNwYWNlIik7Cgl9IGVsc2UgewoJICBpZihm
c2VlayhmcCwgaWR4X2dsKnBzaXplK3NraXBfYnl0ZXMsIFNFRUtfU0VUKSB8fAoJICAgICBmd3Jp
dGUoc2hvcnRfYnVmZmVyLCBwc2l6ZSwxLCBmcCkhPTEpCgkgICAgZXJyb3IoInByb2JhYmx5IG91
dCBvZiBkaXNrIHNwYWNlIik7Cgl9CiAgICAgIH0KICAgIH0KICAgIGRlbGV0ZVtdIGJ1ZmZlcl9z
aXplOwogICAgZGVsZXRlW10gYnVmZmVyX3B0cjsKICAgIGRlbGV0ZVtdIHNob3J0X2J1ZmZlcjsK
ICAgIGZjbG9zZShmcCk7CiAgfSBlbHNlIHsKICAgIGludCAgcHJvY2VzczsKICAgIGxvbmcgYnVm
ZmVyX3NpemU9MCwgaWR4LCBpZHhfZ2w7CiAgICBsb25nICpsb2NhbF9pbmRleD1uZXcgbG9uZ1tt
YXhfYnVmZmVyX3NpemVdOwogICAgbWRwX2FycmF5PFQsMj4gbG9jYWxfYnVmZmVyKG1heF9idWZm
ZXJfc2l6ZSxmaWVsZF9jb21wb25lbnRzKTsKICAgIG1kcF9yZXF1ZXN0IHJlcXVlc3Q7CiAgICBm
b3IoaWR4X2dsPTA7IGlkeF9nbDxudm9sX2dsOyBpZHhfZ2wrKykgewogICAgICBwcm9jZXNzPXdo
ZXJlX2dsb2JhbChpZHhfZ2wpOwogICAgICBpZihwcm9jZXNzPT1NRSkgewoJbG9jYWxfaW5kZXhb
YnVmZmVyX3NpemVdPWxhdHRpY2UoKS5sb2NhbChpZHhfZ2wpOwoJYnVmZmVyX3NpemUrKzsKICAg
ICAgfQogICAgICBpZigoYnVmZmVyX3NpemU9PW1heF9idWZmZXJfc2l6ZSkgfHwgCgkgKChpZHhf
Z2w9PW52b2xfZ2wtMSkgJiYgKGJ1ZmZlcl9zaXplPjApKSkgewoJZm9yKGlkeD0wOyBpZHg8YnVm
ZmVyX3NpemU7IGlkeCsrKQoJICBmb3Ioaz0wOyBrPGZpZWxkX2NvbXBvbmVudHM7IGsrKykKCSAg
ICBsb2NhbF9idWZmZXIoaWR4LGspPSoobStsb2NhbF9pbmRleFtpZHhdKmZpZWxkX2NvbXBvbmVu
dHMrayk7CgltcGkucHV0KGJ1ZmZlcl9zaXplLCBwcm9jZXNzSU8sIHJlcXVlc3QpOwoJbXBpLndh
aXQocmVxdWVzdCk7CgltcGkucHV0KCYobG9jYWxfYnVmZmVyKDAsMCkpLCBidWZmZXJfc2l6ZSpm
aWVsZF9jb21wb25lbnRzLCAKCQlwcm9jZXNzSU8sIHJlcXVlc3QpOwoJbXBpLndhaXQocmVxdWVz
dCk7CglidWZmZXJfc2l6ZT0wOwogICAgICB9CiAgICB9CiAgICBkZWxldGVbXSBsb2NhbF9pbmRl
eDsKICB9CiAgaWYoTUU9PTAgJiYgbWRwX3NodXR1cD09RkFMU0UpIHsKICAgIHByaW50ZigiLi4u
IFNhdmluZyB0aW1lOiAlZiAoc2VjKVxuIiwgbXBpLnRpbWUoKS1teXRpbWUpOwogICAgZmZsdXNo
KHN0ZG91dCk7CiAgfQogIHJldHVybiB0cnVlOwp9CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtZHBf
ZmllbGRfdGVzdC5oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDEwMDY0NAAwMDMzMTI2ADAw
MjQ0NjEAMDAwMDAwMDEwMjcAMTAxNDMwMTMxNTYAMDE0NzY0ACAwAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAATURpUGllcnJvAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABta2dyb3VwLWwtZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApib29s
IG1kcF9maWVsZF90ZXN0KGludCBhcmdjLCBjaGFyKiogYXJndikgewogIG1waS5vcGVuX3dvcm1o
b2xlcyhhcmdjLCBhcmd2KTsKICAKICBpbnQgYm94W109ezQsNCw0LDR9OwogIG1kcF9sYXR0aWNl
ICAgICAgbGF0dGljZSg0LGJveCk7CiAgbWRwX21hdHJpeF9maWVsZCBNKGxhdHRpY2UsMywzKTsK
ICBtZHBfc2l0ZSAgICAgICAgIHgobGF0dGljZSk7CiAgZG91YmxlIGNvdW50ZXI9MDsKCiAgZm9y
YWxsc2l0ZXMoeCkKICAgIE0oeCk9TS5sYXR0aWNlKCkucmFuZG9tKHgpLlNVKDMpOwogIAogIGZv
cmFsbHNpdGVzKHgpCiAgICBjb3VudGVyKz1yZWFsKHRyYWNlKE0oeCkqaW52KE0oeCkpKSkvMzsK
CiAgbXBpLmFkZChjb3VudGVyKTsKICBjb3VudGVyLz1sYXR0aWNlLnNpemUoKTsKCiAgYXNzZXJ0
KChjb3VudGVyLTEpPG1kcF9wcmVjaXNpb24pOwogIHByaW50ZigibGF0dGljZSBhbmQgZmllbGQg
Li4udGVzdCBwYXNzZWQuXG4iKTsKCiAgbXBpLmNsb3NlX3dvcm1ob2xlcygpOwogIHJldHVybiAo
bG9uZykgY291bnRlcjsKfQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtZHBfZmll
bGRfdXBkYXRlLmgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDEwMDY0NAAwMDMzMTI2ADAwMjQ0
NjEAMDAwMDAwMDQ2MjUAMTAxNDMwMTMxNTYAMDE1Mjc2ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAATURpUGllcnJvAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAABta2dyb3VwLWwtZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8vIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLwovLyBGaWxlIE5hbWU6IG1kcF9maWVsZF91cGRhdGUuaAovLyBWZXJzaW9u
OiAgIDIuMwovLyBEYXRlOiAgICAgIDEtT2N0LTIwMDIKLy8gQXV0aG9yOiAgICBNYXNzaW1vIERp
IFBpZXJybyA8bWRwQG1ldGFjcnlwdGlvbi5jb20+Ci8vIExpY2Vuc2U6ICAgVGhpcyBmaWxlIGlz
IGV4Y2x1c2l2ZSBwcm9wZXJ0eSBvZiBNZXRhQ3J5cHRpb24gTExDCi8vICAgICAgICAgICAgUmVh
ZCBhdHRhY2hlZCBsaWNlbnNlIGluIGZpbGUgbWRwX2xpY2Vuc2UucGRmCi8vICAgICAgICAgICAg
VGhpcyBmaWxlIGNhbm5vdCBiZSBkaXN0cmlidXRlZCB3aXRob3V0IGZpbGUgbWRwX2xpY2Vuc2Uu
cGRmCi8vCi8vIERlc2NyaXB0aW9uOgovLyAgICAgbWRwX2ZpZWxkOjp1cGRhdGUoKSBkb2VzIGFs
bCBwYXJhbGxlbCBjb21tdW5pY2F0aW9ucyBmb3IgYSBmaWVsZAovLyAgICAgZXhjZXB0IHRob3Nl
IG9mIHRoZSBJL08KLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgp0ZW1wbGF0ZTxjbGFzcyBUPgp2b2lk
IG1kcF9maWVsZDxUPjo6dXBkYXRlKGludCBucCwgaW50IGQsIGludCBuY29tcCkgewojaWZkZWYg
UEFSQUxMRUwKICAgIFQgKmR5bmFtaWNfYnVmZmVyPTA7CiAgICBUICp3aGVyZV90bz0wOwogICAg
bXBpLmNvbW1fdGltZS09bXBpLnRpbWUoKTsKICAgIG1kcF9yZXF1ZXN0IHJlcXVlc3Q7CiAgICBs
b25nIHN0YXJ0X3RvX3NlbmQsZHAscHJvY2VzcyxsZW5ndGgsaWR4OwogICAgaW50IGssIG5pLCBu
ZjsKICAgIGlmKGQ9PS0xKSB7ZD0wOyBuY29tcD1maWVsZF9jb21wb25lbnRzO30KICAgIGlmKChu
Y29tcD09ZmllbGRfY29tcG9uZW50cykgJiYgKGQhPTApKSAKICAgICAgZXJyb3IoInVwZGF0ZSgp
OiBwYWNrZXQgaXMgdG9vIGJpZyIpOwogICAgaWYobnA8Mikgbmk9bmY9bnA7CiAgICBlbHNlICAg
ICB7bmk9MDsgbmY9MTsgfQogICAgZm9yKGRwPTE7IGRwPE5wcm9jOyBkcCsrKSB7IAogICAgICBw
cm9jZXNzPShNRStkcCkgJSBOcHJvYzsKICAgICAgaWYobnA8MikgIHsKCWxlbmd0aD1sYXR0aWNl
KCkubGVuX3RvX3NlbmRbcHJvY2Vzc11bbnBdOwogICAgICB9IGVsc2UgewoJbGVuZ3RoPWxhdHRp
Y2UoKS5sZW5fdG9fc2VuZFtwcm9jZXNzXVswXStsYXR0aWNlKCkubGVuX3RvX3NlbmRbcHJvY2Vz
c11bMV07CiAgICAgIH0KICAgICAgaWYobnA9PTEpIHN0YXJ0X3RvX3NlbmQ9bGF0dGljZSgpLmxl
bl90b19zZW5kW3Byb2Nlc3NdWzBdOwogICAgICBlbHNlICAgICAgc3RhcnRfdG9fc2VuZD0wOwog
ICAgICBpZihsZW5ndGg+MCkgewoJZHluYW1pY19idWZmZXI9bmV3IFRbbGVuZ3RoKm5jb21wXTsK
CWZvcihpZHg9MDsgaWR4PGxlbmd0aDsgaWR4KyspCgkgIGZvcihrPTA7IGs8bmNvbXA7IGsrKykK
CSAgICBkeW5hbWljX2J1ZmZlcltpZHgqbmNvbXAra109CgkgICAgICAqKG0rbGF0dGljZSgpLnRv
X3NlbmRbcHJvY2Vzc11bc3RhcnRfdG9fc2VuZCtpZHhdKgoJCWZpZWxkX2NvbXBvbmVudHMrZCpu
Y29tcCtrKTsKCW1waS5wdXQoZHluYW1pY19idWZmZXIsIGxlbmd0aCpuY29tcCwgcHJvY2Vzcywg
cmVxdWVzdCk7CiAgICAgIH0gZWxzZSB7CglkeW5hbWljX2J1ZmZlcj0wOwogICAgICB9CgogICAg
ICBwcm9jZXNzPShNRS1kcCtOcHJvYykgJSBOcHJvYzsKICAgICAgbGVuZ3RoPWxhdHRpY2UoKS5z
dG9wW3Byb2Nlc3NdW25mXS1sYXR0aWNlKCkuc3RhcnRbcHJvY2Vzc11bbmldOwogICAgICBpZihs
ZW5ndGg+MCkgewoJaWYobmNvbXA9PWZpZWxkX2NvbXBvbmVudHMpIHsKCSAgd2hlcmVfdG89bSts
YXR0aWNlKCkuc3RhcnRbcHJvY2Vzc11bbmldKmZpZWxkX2NvbXBvbmVudHM7CgkgIG1waS5nZXQo
d2hlcmVfdG8sIGxlbmd0aCpmaWVsZF9jb21wb25lbnRzLCBwcm9jZXNzKTsKCSAgd2hlcmVfdG89
MDsKCX0gZWxzZSB7CgkgIHdoZXJlX3RvPW5ldyBUW2xlbmd0aCpuY29tcF07CgkgIG1waS5nZXQo
d2hlcmVfdG8sIGxlbmd0aCpuY29tcCwgcHJvY2Vzcyk7CgkgIGZvcihpZHg9MDsgaWR4PGxlbmd0
aDsgaWR4KyspCgkgICAgZm9yKGs9MDsgazxuY29tcDsgaysrKQoJICAgICAgKihtKyhsYXR0aWNl
KCkuc3RhcnRbcHJvY2Vzc11bbmldK2lkeCkqZmllbGRfY29tcG9uZW50cysKCQlkKm5jb21wK2sp
PXdoZXJlX3RvW2lkeCpuY29tcCtrXTsgCgkgIGRlbGV0ZVtdIHdoZXJlX3RvOwoJfQogICAgICB9
CgogICAgICBwcm9jZXNzPShNRStkcCkgJSBOcHJvYzsKICAgICAgaWYoZHluYW1pY19idWZmZXIh
PTApIHsKCW1waS53YWl0KHJlcXVlc3QpOwoJZGVsZXRlW10gZHluYW1pY19idWZmZXI7CiAgICAg
IH0KICAgIH0KICAgIG1waS5jb21tX3RpbWUrPW1waS50aW1lKCk7CiNlbmRpZgogIH0KAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtZHBfZml0dGluZ19m
dW5jdGlvbnMuaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDEwMDY0NAAwMDMzMTI2ADAwMjQ0NjEAMDAw
MDAwMjAxMjIAMTAxNDMwMTMxNTYAMDE2MzczACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAHVzdGFyICAATURpUGllcnJvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABt
a2dyb3VwLWwtZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLwovLyBGaWxlIE5hbWU6IG1kcF9maXR0aW5nX2Z1bmN0aW9ucy5oCi8vIFZlcnNpb246
ICAgMi4zCi8vIERhdGU6ICAgICAgMS1PY3QtMjAwMgovLyBBdXRob3I6ICAgIE1hc3NpbW8gRGkg
UGllcnJvIDxtZHBAbWV0YWNyeXB0aW9uLmNvbT4KLy8gTGljZW5zZTogICBUaGlzIGZpbGUgaXMg
ZXhjbHVzaXZlIHByb3BlcnR5IG9mIE1ldGFDcnlwdGlvbiBMTEMKLy8gICAgICAgICAgICBSZWFk
IGF0dGFjaGVkIGxpY2Vuc2UgaW4gZmlsZSBtZHBfbGljZW5zZS5wZGYKLy8gICAgICAgICAgICBU
aGlzIGZpbGUgY2Fubm90IGJlIGRpc3RyaWJ1dGVkIHdpdGhvdXQgZmlsZSBtZHBfbGljZW5zZS5w
ZGYKLy8KLy8gRGVzY3JpcHRpb246Ci8vICAgICB2YXJpb3VzIGZpdHRpbmcgZnVuY3Rpb25zIGlt
cHJvdmVkIGZyb20gTnVtZXJpY2FsIFJlY2lwZXMKLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLyBP
ayB0aGlzIGlzIGFsb3VzeSBmaXR0aW5nIGFsZ29yaXRobSAKCi8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLyBmaXQgeVtpXSwgeFtpXSBmb3IgaTA8PWk8
aW4gd2l0aCB5PWFbMF0qeCthWzFdCi8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLwoKdm9pZCBsaW5lYXJfZml0KGZsb2F0ICp4LCBNZWFzdXJlICp5LCBsb25n
IGkwLCBsb25nIGluLCBNZWFzdXJlICphKSB7CiAgbG9uZyBpOwogIGRvdWJsZSBTPTAsU3g9MCxT
eT0wLFN4eD0wLFN4eT0wLGRldDsKICBkb3VibGUgZHkyOwogIGZvcihpPWkwOyBpPGluOyBpKysp
IHsKICAgIGR5Mj1wb3coeVtpXS5lcnJvciwyLjApOwogICAgaWYoZHkyPD0wKSBkeTI9cG93KHlb
aV0ubWVhbioxZS01LDIuMCk7CiAgICBTPVMrMS4wL2R5MjsKICAgIFN4PVN4KzEuMC9keTIqeFtp
XTsKICAgIFN5PVN5K3lbaV0ubWVhbi9keTI7CiAgICBTeHg9U3h4K3hbaV0qeFtpXS9keTI7CiAg
ICBTeHk9U3h5K3lbaV0ubWVhbi9keTIqeFtpXTsKICB9CiAgZGV0PShTKlN4eC1TeCpTeCk7CiAg
Ly8gdGhpcyBpcyBtCiAgYVswXS5tZWFuPShTKlN4eS1TeCpTeSkvZGV0OwogIGFbMF0uZXJyb3I9
c3FydChTL2RldCk7CiAgLy8gdGhpcyBpcyBxCiAgYVsxXS5tZWFuPShTeHgqU3ktU3gqU3h5KS9k
ZXQ7CiAgYVsxXS5lcnJvcj1zcXJ0KFN4eC9kZXQpOwp9CgovLyAvLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vICBmaW5kcyB4PXhtaW4gdGhhdCBtaW5pbWl6
ZXMKLy8gICgqZnApKCZ4LDEsZHVtbXkpCi8vICAgbXVzdCBiZToKLy8gICgqZnApKCZheCkgPiAo
KmZwKSgmYngpICYmICgqZnApKCZjeCkgPiAoKmZwKSgmYngpIAovLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpmbG9hdCBnb2xkZW5fcnVsZShmbG9hdCAo
KmZwKShmbG9hdCosIGxvbmcsIHZvaWQqKSwgZmxvYXQgJnhtaW4sIAoJCSAgZmxvYXQgYXgsIGZs
b2F0IGJ4LCBmbG9hdCBjeCwKCQkgIGZsb2F0IHRvbD0wLjAwMSwgbG9uZyBuaXRlcj0xMDAsIHZv
aWQgKmR1bW15PTApIHsKICBzdGF0aWMgY29uc3QgZmxvYXQgQ0dPTEQ9MC4zODE5NjYwOwogIGxv
bmcgaXRlcjsKICBmbG9hdCBhLGIsZD0wLGV0ZW1wLGZ1LGZ2LGZ3LGZ4LHAscSxyLHRvbDEsdG9s
Mix1LHYsdyx4LHhtOwogIGZsb2F0IGU9MC4wOwogIGE9KGF4PGN4ID8gYXg6Y3gpOyAgCiAgYj0o
YXg+Y3ggPyBheDpjeCk7CiAgeD13PXY9Yng7CiAgZnc9ZnY9Zng9KCpmcCkoJngsMSxkdW1teSk7
CiAgZm9yKGl0ZXI9MDsgaXRlcjxuaXRlcjsgaXRlcisrKSB7CiAgICB4bT0wLjUqKGErYik7CiAg
ICB0b2wyPTIuMCoodG9sMT10b2wqZmFicyh4KStQUkVDSVNJT04pOwogICAgaWYoZmFicyh4LXht
KTw9KHRvbDItMC41KihiLWEpKSkgewogICAgICB4bWluPXg7CiAgICAgIHJldHVybiBmeDsKICAg
IH0KICAgIGlmKGZhYnMoZSk+dG9sMSkgewogICAgICByPSh4LXcpKihmeC1mdik7CiAgICAgIHE9
KHgtdikqKGZ4LWZ3KTsKICAgICAgcD0oeC12KSpxLSh4LXcpKnI7CiAgICAgIHE9Mi4wKihxLXIp
OwogICAgICBpZihxPjAuMCkgcD0tcDsKICAgICAgcT1mYWJzKHEpOwogICAgICBldGVtcD1lOwog
ICAgICBlPWQ7CiAgICAgIGlmKGZhYnMocCk+PWZhYnMoMC41KnEqZXRlbXApIHx8IHA8PXEqKGEt
eCkgfHwgcD49cSooYi14KSkKCWQ9Q0dPTEQqKGU9KCh4Pj14bSkgPyAoYS14KSA6IChiLXgpKSk7
CiAgICAgIGVsc2UgewoJZD1wL3E7Cgl1PXgrZDsKCWlmKHUtYSA8IHRvbDIgfHwgKGItdSkgPCB0
b2wyKSB7CgkgIGQ9ZmFicyh0b2wxKTsKCSAgaWYoeG0gLSB4IDwgMC4wKSBkPS1kOwoJfQogICAg
ICB9CiAgICB9IGVsc2UgewogICAgICBkPUNHT0xEKihlPSh4Pj14bSA/IChhLXgpIDogKGIteCkp
KTsKICAgIH0KICAgIGlmKGZhYnMoZCk+PXRvbDEpIHU9eCtkOyBlbHNlIHU9eCsoZD4wID8gZmFi
cyh0b2wxKTogLWZhYnModG9sMSkpOwogICAgZnU9KCpmcCkoJnUsMSxkdW1teSk7CiAgICBpZihm
dSA8PSBmeCkgewogICAgICBpZih1PngpIGE9eDsgZWxzZSBiPXg7CiAgICAgIHY9dzsgdz14OyB4
PXU7CiAgICAgIGZ2PWZ3OyBmdz1meDsgZng9ZnU7CiAgICB9IGVsc2UgewogICAgICBpZih1PHgp
IGE9dTsgZWxzZSBiPXU7CiAgICAgIGlmKGZ1PGZ3IHx8IHc9PXgpIHsKCXY9dzsgdz11OwoJZnY9
Znc7IGZ3PWZ1OwogICAgICB9IGVsc2UgaWYoZnUgPD0gZnYgfHwgdj09eCB8fCB2PT13KSB7Cgl2
PXU7Cglmdj1mdTsKICAgICAgfQogICAgfQogIH0KICBwcmludGYoIlRvbyBtYW55IGl0ZXJhdGlv
bnMgaW4gZ29sZGVuX3J1bmVcbiIpOwogIHhtaW49eDsKICByZXR1cm4gZng7Cn0KCnR5cGVkZWYg
ZmxvYXQgKCpCTE1fZnVuY3Rpb24pKGZsb2F0LCBmbG9hdCosIGxvbmcsIHZvaWQqKTsKCi8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLwovLyB0aGlzIGZ1bmN0aW9uIGlzIHVzZWQgYnkgdGhlIEJheWVzaWFuTGV2ZW5iZXJn
TWFycXVhcmR0Ci8vIGl0IGNvbXB1dGVzIHRoZSBjaGlfc3F1YXJlIChpbmNsdWRpbmcgdGhlIEJh
ZXN5YW4gdGVybSkKLy8gYW5kIGZpbGxzIGFscGhhIGFuZCBiZXRhCi8vCi8vIGFscGhhKGosayk9
XHN1bV9pIChEeSh4W2ldLGEpL0RhW2pdKSooRHkoeFtpXSxhKS9EYVtrXSkvZHlbaV1eMgovLyBi
ZXRhKGopPXN1bV9pICAgICAoeVtpXS15KHhbaV0sYSkpKihkeSh4W2ldLGEpL2RhW2pdKS9keVtp
XV4yCi8vCi8vIGNoaV9zcXVhcmU9XHN1bV9pICh5W2ldLXkoeFtpXSxhKSkqKHlbaV0teSh4W2ld
LGEpKS9keVtpXV4yCi8vICAgICAgICAgICArXHN1bV97aixrfSAoYVtqXS1hMFtqXSkqKGFba10t
YTBba10pKnNpZ21hKGosaykKLy8KLy8gVGhpcyBmdW5jdGlvbiB0YWtlIGludG8gYWNjb3VudCBt
dWx0aXBsaXRpY3R5IGZhY3RvcnMKLy8geVtpXS5udW0sIGkuZS4gdGhlIG51bWJlcnMgb2YgbWVh
c3VyZXMgdXNlZCB0byBkZXRlcm1pbmUgeVtpXS5tZWFuCi8vIHRoaXMgaXMgdXNlZCBhcyBhIHdl
aWdodCBmYWN0b3IhCi8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKZmxvYXQgQkxNYXV4KGZsb2F0ICp4LCBNZWFzdXJl
ICp5LCAKbG9uZyBpX21pbiwgbG9uZyBpX21heCwgCmZsb2F0ICphLCBmbG9hdCAqYTAsIE1hdHJp
eCAmc2lnbWEsIGludCBtYSwKCSAgICAgTWF0cml4ICZhbHBoYSwKCSAgICAgTWF0cml4ICZiZXRh
LAoJICAgICBCTE1fZnVuY3Rpb24gZnVuYywKCSAgICAgZmxvYXQgaCwKCSAgICAgdm9pZCAqanVu
aykgewogIGxvbmcgaSxqLGs7CiAgZG91YmxlIHNpZzJpLCBjaGlfc3F1YXJlLCBkeSwgeW1vZCwg
d3Q7CiAgZG91YmxlICpkeWRhPW5ldyBkb3VibGVbbWFdOwoKICBmb3IoaT0wOyBpPG1hOyBpKysp
IHsKICAgIGZvcihqPTA7IGo8bWE7IGorKykgCiAgICAgIGFscGhhKGksaik9MC4wOwogICAgYmV0
YShpLDApPTAuMDsKICB9CiAgY2hpX3NxdWFyZT0wLjA7CiAgZm9yKGk9aV9taW47IGk8aV9tYXg7
IGkrKykgewogICAgeW1vZD0oKmZ1bmMpKHhbaV0sYSxtYSxqdW5rKTsKICAgIGZvcihqPTA7IGo8
bWE7IGorKykgeyAKICAgICAgYVtqXSs9aDsKICAgICAgZHlkYVtqXT0oKmZ1bmMpKHhbaV0sYSxt
YSxqdW5rKTsKICAgICAgYVtqXS09MipoOwogICAgICBkeWRhW2pdLT0oKmZ1bmMpKHhbaV0sYSxt
YSxqdW5rKTsKICAgICAgYVtqXSs9aDsKICAgICAgZHlkYVtqXS89KDIuMCpoKTsKICAgIH0KICAg
IHNpZzJpPTEuMC9wb3coeVtpXS5lcnJvciwyLjApOwogICAgZHk9eVtpXS5tZWFuLXltb2Q7CiAg
ICBmb3Ioaj0wOyBqPG1hOyBqKyspIHsKICAgICAgd3Q9ZHlkYVtqXSpzaWcyaTsKICAgICAgZm9y
KGs9MDsgazxtYTsgaysrKQoJYWxwaGEoaixrKSs9ZHlkYVtrXSp3dCp5W2ldLm51bTsKICAgICAg
YmV0YShqLDApKz1keSp3dCp5W2ldLm51bTsKICAgIH0KICAgIGNoaV9zcXVhcmUrPWR5KmR5KnNp
ZzJpOwogIH0KICAKICBmb3IoaT0wOyBpPG1hOyBpKyspIAogICAgZm9yKGo9MDsgajxtYTsgaisr
KQogICAgICBjaGlfc3F1YXJlKz0oYTBbaV0tYVtpXSkqc2lnbWEoaSxqKS5yZSooYTBbal0tYVtq
XSk7CiAgCiAgZGVsZXRlW10gZHlkYTsKICByZXR1cm4gY2hpX3NxdWFyZTsKfQoKLy8gLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCi8vIFRoaXMgaW1wbGVtZW50cyB0aGUgQmFlc3lhbkxldmVuYmVyZ01hcnF1YXJkdAovLyBJ
dCB1c2VzIE1hdHJpeC4KLy8gQXJndW1lbnRzIGFyZToKLy8KLy8geFtpXSAgICAgICAgICA6IGFu
IGFycmF5IG9mIGZsb2F0Ci8vIHlbaV0gICAgICAgICAgOiBhbiBhcnJheSBvZiBNZWFzdXJlcwov
LyBpX21pbiwgaV9tYXggIDogcmFuZ2UgdG8gYmUgdXNlZCBpbiB0aGUgZml0Ci8vICAgICAgICAg
ICAgICAgICBwb2ludHMgd2l0aGluIHRoZSByYW5nZSB0aGF0IGhhdmUgeVtpXS5udW09MAovLyAg
ICAgICAgICAgICAgICAgYXJlIGlnbm9yZWQKLy8gYVtpXSwgbWEgICAgICA6IHZlY3RvciBvZiBw
YXJhbXRlcnMgZm9yIHRoZSBmaXQgYW5kIG51bWJlciBvZiBwYXJhbWV0ZXJzCi8vICAgICAgICAg
ICAgICAgICB0aGV5IGFyZSBhbGwgdXNlZCBpbiB0aGUgZml0Ci8vICAgICAgICAgICAgICAgICB0
aGUgaW5pdGlhbCB2YWx1ZXMgYXJlIHVzZWQgYXMgcHJlb25zCi8vIGNvdmFyKGksaikgICAgOiBj
b3ZhcmlhbmNlIG1hdHJpeCBmb3IgdGhlIHByZW9ucwovLyBmdW5jKHgsYSxtYSxqdW5rKSA6IHRo
ZSBmdW5jdGlvbiB0byBiZSB1c2VkIGluIHRoZSBmaXQKLy8gaCAgICAgICAgICAgICA6IGEgZmxv
YXQgdXNlZCB0byBldmFsdWF0ZSBkZXJpdmF0aXZlcyAKLy8gbm1heCAgICAgICAgICA6IG1heCBu
dW1iZXIgb2YgaXRlcmF0aW9ucwovLyBqdW5rICAgICAgICAgIDoganVuayB0byBiZSBwYXNzZWQg
dG8gZnVuYwovLwovLyByZXR1cm4gdGhlIEJhZXN5YW4gQ2hpU3F1YXJlLiBUbyBvYnRhaW4gdGhl
IGNvcnJlY3QgY2hpX3NxdWFyZQovLyAgcmVydW4gaXQgd2l0aCBzYW1lIGZ0dGluZyB2YWx1ZXMg
YW5kIG5tYXg9MTsKLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpmbG9hdCBCYWVzeWFuTGV2ZW5iZXJnTWFycXVhcmR0
KGZsb2F0ICp4LCBNZWFzdXJlICp5LCAKCQkJCWxvbmcgaV9taW4sIGxvbmcgaV9tYXgsIAoJCQkJ
ZmxvYXQgKmEsIGludCBtYSwKCQkJCU1hdHJpeCAmY292YXIsIAoJCQkJQkxNX2Z1bmN0aW9uIGZ1
bmMsCgkJCQlmbG9hdCBoPTAuMDAxLCAKCQkJCWxvbmcgbm1heD0xMDAwLAoJCQkJdm9pZCAqanVu
az0wKSB7CiAgCiAgZG91YmxlIGxhbWJkYT0wLjE7CiAgZG91YmxlIHNjYWxlPTI7CiAgZG91Ymxl
IGNoaV9zcXVhcmU9MDsKICBkb3VibGUgb2xkX2NoaV9zcXVhcmU9MDsKICBNYXRyaXggYWxwaGEo
bWEsbWEpOwogIGZsb2F0ICphdHJ5PW5ldyBmbG9hdFttYV07CiAgZmxvYXQgKmEwPW5ldyBmbG9h
dFttYV07CiAgTWF0cml4IHNpZ21hKG1hLG1hKTsKICBNYXRyaXggYmV0YShtYSwxKTsKICBNYXRy
aXggb25lZGEobWEsMSk7CiAgbG9uZyBpLGosayxuOwoKICBpZihtYXgoY292YXIpPD0xZS02KSAK
ICAgIGZvcihpPTA7IGk8bWE7IGkrKykKICAgICAgc2lnbWEoaSxpKT0wOwogIGVsc2UgCiAgICBz
aWdtYT1pbnYoY292YXIpOwoKICBmb3IoaT0wOyBpPG1hOyBpKyspIHsKICAgIGF0cnlbaV09YVtp
XTsKICAgIGEwW2ldPWFbaV07CiAgfQogIGNoaV9zcXVhcmU9QkxNYXV4KHgseSxpX21pbixpX21h
eCxhLGEwLHNpZ21hLAoJCSAgICBtYSxhbHBoYSxiZXRhLGZ1bmMsaCxqdW5rKTsKICBvbGRfY2hp
X3NxdWFyZT1jaGlfc3F1YXJlOwogIAogIGZvcihuPTA7IG48bm1heDsgbisrKSB7CiAgICBmb3Io
aT0wOyBpPG1hOyBpKyspIHsKICAgICAgZm9yKGo9MDsgajxtYTsgaisrKSBjb3ZhcihpLGopPWFs
cGhhKGksaik7CiAgICAgIGNvdmFyKGksaSkqPSgxLjArbGFtYmRhKTsKICAgICAgb25lZGEoaSww
KT1iZXRhKGksMCk7CiAgICB9CiAgICAKICAgIC8vIHRoaXMgaXMgZ2F1c3NqIAogICAgY292YXI9
aW52KGNvdmFyKTsKICAgIG9uZWRhPWNvdmFyKm9uZWRhOwoKICAgIGZvcihpPTA7IGk8bWE7IGkr
KykgYXRyeVtpXT1hW2ldK3JlYWwob25lZGEoaSwwKSk7CiAgICBjaGlfc3F1YXJlPUJMTWF1eCh4
LHksaV9taW4saV9tYXgsYXRyeSxhMCxzaWdtYSwKCQkgICAgICBtYSxjb3ZhcixvbmVkYSxmdW5j
LGgsanVuayk7CgoKICAgIGlmKGZhYnMoY2hpX3NxdWFyZSAtIG9sZF9jaGlfc3F1YXJlKTwxZS00
IHx8IGxhbWJkYT09MCkgewogICAgICBjb3Zhcj1pbnYoY292YXIpOwogICAgICAKICAgICAgZGVs
ZXRlW10gYXRyeTsKICAgICAgZGVsZXRlW10gYTA7CiAgICAgIHJldHVybiBjaGlfc3F1YXJlOwog
ICAgfSBlbHNlIGlmKGNoaV9zcXVhcmUgPD0gb2xkX2NoaV9zcXVhcmUpIHsKICAgICAgbGFtYmRh
Lz1zY2FsZTsKICAgICAgb2xkX2NoaV9zcXVhcmU9Y2hpX3NxdWFyZTsKICAgICAgZm9yKGk9MDsg
aTxtYTsgaSsrKSB7Cglmb3Ioaj0wOyBqPG1hOyBqKyspCgkgIGFscGhhKGksaik9Y292YXIoaSxq
KTsKCWJldGEoaSwwKT1vbmVkYShpLDApOwogICAgICB9CiAgICAgIGZvcihqPTA7IGo8bWE7IGor
KykgYVtqXT1hdHJ5W2pdOwogICAgfSBlbHNlIHsKICAgICAgbGFtYmRhKj1zY2FsZTsKICAgICAg
Y2hpX3NxdWFyZT1vbGRfY2hpX3NxdWFyZTsKICAgIH0gCiAgICAvLyAgICBwcmludGYoIiVmICVm
ICVmXG4iLCBhWzBdLCBhWzFdLCBsYW1iZGEpOwogIH0KfQoKLyogCiAgIEV4YW1wbGUgb2YgYSBw
cm9ncmFtIHRoYXQgdXNlcyB0aGUgQmFlc3lhbkxldmVuYmVyZ01hcnF1YWR0CgojaW5jbHVkZSAi
L2hvbWUvbWRwL21kcHFjZDIvTURQX0xpYjIuaCIKI2luY2x1ZGUgIi9ob21lL21kcC9tZHBxY2Qy
L01EUF9NZWFzdXJlLmgiCiNpbmNsdWRlICIvaG9tZS9tZHAvbWRwcWNkMi9NRFBfRml0LmgiCgog
IApmbG9hdCBmKGZsb2F0IHgsIGZsb2F0ICphLCBsb25nIG1hLCB2b2lkICpqdW5rKSB7CiAgLy8g
aWYobWEhPTMpIGV4aXQoMSk7CiAgcmV0dXJuIGFbMF0qKGV4cCgtYVsxXSp4KStleHAoLWFbMV0q
KDEwLjAteCkpKSpzaW4oYVsyXSp4KTsKfQoKaW50IG1haW4oKSB7CiAgZmxvYXQgICB4WzEwXT17
MCwxLDIsMyw0LDUsNiw3LDgsOX07CiAgTWVhc3VyZSAgeVsxMF07CiAgaW50IGksbWE9MzsKICBm
bG9hdCBhWzNdPXsxMDAwLjAsIDAuMSwgMC4xfTsKCiAgTWF0cml4IGNvdmFyKG1hLG1hKTsKICBm
b3IoaT0wOyBpPDEwOyBpKyspIHsKICAgIHhbaV09aTsKICAgIHlbaV0uc2V0KGYoeFtpXSxhLG1h
LDApLDAuMSk7CiAgfQoKICBhWzBdPTE7IGFbMV09MS4wLCBhWzJdPTAuMjsKCiAgQmFlc3lhbkxl
dmVuYmVyZ01hcnF1YXJkdCh4LHksIDAsMTAsIGEsIG1hLCBjb3ZhciwgZik7CgogIGZvcihpPTA7
IGk8MTA7IGkrKykgCiAgICBwcmludGYoIiVmICVmICglZikgJWZcbiIsIAoJICAgeFtpXSwgeVtp
XS5tZWFuLCB5W2ldLmVycm9yLCBmKHhbaV0sIGEsIG1hLDApKTsKCgogIAogIHByaW50ZigiJWYg
JWYgJWZcbiIsIGFbMF0sIGFbMV0sIGFbMl0pOwogIHByaW50KGNvdmFyKTsKCn0KCiovCgAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtZHBfZ2xvYmFsX3ZhcnMuaAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAMDEwMDY0NAAwMDMzMTI2ADAwMjQ0NjEAMDAwMDAwMDI1NTcAMTAxNDMwMTMx
NTYAMDE1MTQ2ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVz
dGFyICAATURpUGllcnJvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABta2dyb3VwLWwtZAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLyBGaWxlIE5h
bWU6IG1kcF9nbG9iYWxfdmFyaWFibGVzLmgKLy8gVmVyc2lvbjogICAyLjMKLy8gRGF0ZTogICAg
ICAxLU9jdC0yMDAyCi8vIEF1dGhvcjogICAgTWFzc2ltbyBEaSBQaWVycm8gPG1kcEBtZXRhY3J5
cHRpb24uY29tPgovLyBMaWNlbnNlOiAgIFRoaXMgZmlsZSBpcyBleGNsdXNpdmUgcHJvcGVydHkg
b2YgTWV0YUNyeXB0aW9uIExMQwovLyAgICAgICAgICAgIFJlYWQgYXR0YWNoZWQgbGljZW5zZSBp
biBmaWxlIG1kcF9saWNlbnNlLnBkZgovLyAgICAgICAgICAgIFRoaXMgZmlsZSBjYW5ub3QgYmUg
ZGlzdHJpYnV0ZWQgd2l0aG91dCBmaWxlIG1kcF9saWNlbnNlLnBkZgovLwovLyBEZXNjcmlwdGlv
bjoKLy8gICAgIGFsbCBnbG9iYWwgdmFyaWFibGVzIHVzZWQgYnkgTWF0cml4IERpc3RyaWJ1dGVk
IFByb2Nlc3NpbmcKLy8gICAgIHdpdGggdGhlIGV4Y2x1c2lvbiBvZiBtZHBfbXBpICAgIChkZWZp
bmVkIGluIG1kcF9tcGlfd3JhcHBlci5oKQovLyAgICAgICAgICAgICAgICAgICAgICAgYW5kIG1k
cF9yYW5kb20gKGRlZmluZWQgaW4gbWRwX3JhbmRvbV9nZW5lcmF0b3IuaCkKLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vCgp0eXBlZGVmIHVuc2lnbmVkIGludCB1aW50OwoKY29uc3QgYm9vbCBUUlVFPXRy
dWU7CmNvbnN0IGJvb2wgRkFMU0U9ZmFsc2U7CmNvbnN0IGludCBFVkVOPTA7CmNvbnN0IGludCBP
REQ9MTsKY29uc3QgaW50IEVWRU5PREQ9MjsKY29uc3QgaW50IF9OcHJvY01heF89MjU2Owpkb3Vi
bGUgUFJFQ0lTSU9OPTMuMGUtNjsKCmNoYXIgICAgICAgICAgICAgICAgICptZHBfcHJvZ3JhbV9u
YW1lID0gIkEgZ2VuZXJpYyB0ZXN0IHByb2dyYW0iOwpjaGFyICAgICAgICAgICAgICAgICAqbWRw
X3JhbmRvbV9zZWVkX2ZpbGVuYW1lPTA7CmNvbnN0IHVuc2lnbmVkIGxvbmcgIG1kcF9sb2NhbF9l
bmRpYW5lc3M9MHg4NzY1NDMyMTsKY29uc3QgZG91YmxlICAgICAgICAgUGkgPSAzLjE0MTU5MjY1
MzU4OTc5MzIzODQ2MjY0MzM4MzI3OTUwMjg4NDE5NzE7CmJvb2wgICAgICAgICAgICAgICAgIG1k
cF9zaHV0dXAgID0gRkFMU0U7CmRvdWJsZSAgICAgICAgICAgICAgIG1kcF9wcmVjaXNpb249MWUt
NTsKCgojaWYgZGVmaW5lZChVU0VfRE9VQkxFX1BSRUNJU0lPTikgCnR5cGVkZWYgZG91YmxlICAg
ICAgIG1kcF9yZWFsOwojZWxzZQp0eXBlZGVmIGZsb2F0ICAgICAgICBtZHBfcmVhbDsKI2VuZGlm
Cgp2b2lkIF9tcGlfZXJyb3JfbWVzc2FnZShzdHJpbmcsIHN0cmluZywgaW50KTsKAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1kcF9oZWFkZXIuaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAwMTAwNjQ0ADAwMzMxMjYAMDAyNDQ2MQAwMDAwMDAwMDc0MwAxMDE0MzAxMzE1NgAw
MTQwNzYAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIg
IABNRGlQaWVycm8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1rZ3JvdXAtbC1kAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAALy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gRmlsZTogICAgICAKLy8g
VmVyc2lvbjogICAyLjMKLy8gRGF0ZTogICAgICAxLU9jdC0yMDAyCi8vIEF1dGhvcjogICAgTWFz
c2ltbyBEaSBQaWVycm8gPG1kcEBtZXRhY3J5cHRpb24uY29tPgovLyBMaWNlbnNlOiAgIFRoaXMg
ZmlsZSBpcyBleGNsdXNpdmUgcHJvcGVydHkgb2YgTWV0YUNyeXB0aW9uIExMQwovLyAgICAgICAg
ICAgIFJlYWQgYXR0YWNoZWQgbGljZW5zZSBpbiBmaWxlIG1kcF9saWNlbnNlLnBkZgovLyAgICAg
ICAgICAgIFRoaXMgZmlsZSBjYW5ub3QgYmUgZGlzdHJpYnV0ZWQgd2l0aG91dCBmaWxlIG1kcF9s
aWNlbnNlLnBkZgovLwovLyBEZXNjcmlwdGlvbjoKLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAABtZHBfamFja2Jvb3QuaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAMDEwMDY0NAAwMDMzMTI2ADAwMjQ0NjEAMDAwMDAwMTAwNDQAMTAxNDMwMTMxNTYAMDE0
NDM1ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAA
TURpUGllcnJvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABta2dyb3VwLWwtZAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vIFZlcnNpb246ICAgMi4zCi8vIERh
dGU6ICAgICAgMS1PY3QtMjAwMgovLyBBdXRob3I6ICAgIE1hc3NpbW8gRGkgUGllcnJvIDxtZHBA
bWV0YWNyeXB0aW9uLmNvbT4KLy8gTGljZW5zZTogICBUaGlzIGZpbGUgaXMgZXhjbHVzaXZlIHBy
b3BlcnR5IG9mIE1ldGFDcnlwdGlvbiBMTEMKLy8gICAgICAgICAgICBSZWFkIGF0dGFjaGVkIGxp
Y2Vuc2UgaW4gZmlsZSBtZHBfbGljZW5zZS5wZGYKLy8gICAgICAgICAgICBUaGlzIGZpbGUgY2Fu
bm90IGJlIGRpc3RyaWJ1dGVkIHdpdGhvdXQgZmlsZSBtZHBfbGljZW5zZS5wZGYKLy8KLy8gIENs
YXNzOiAgIG1kcF9qYWNrYm9vdDxULCBOYWcsIE5lbGVtPiAoZm9yIEphY2tuaWZlIGFuZCBCb290
c3RyYXApICAgIC8vCi8vICBNZW1iZXJzOiBUICgqVCkgKFQqKSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8vCi8vICAgICAgICAgICBlbGVtZW50cyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vCi8vICAgICAgICAgICBl
bGVtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
Ci8vICAgICAgICAgICBvcGVyYXRvcihhcmcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vCi8vICAgICAgICAgICBUIG1lYW4oKSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vCi8vICAgICAgICAgICBUIGpfZXJyKCkgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vCi8vICAgICAgICAg
ICBUIGJfZXJyKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vCgpjbGFzcyBtZHBfamFja2Jvb3QgewogcHJpdmF0ZToKICBmcmll
bmQgZmxvYXQgbWRwX2phY2tib290X3BsYWluKGZsb2F0ICp4LCB2b2lkICphKSB7CiAgICBpbnQg
KmlfcHRyPShpbnQqKSBhOwogICAgcmV0dXJuIHhbKmlfcHRyXTsKICB9CiAgaW50IG1kcF9qYWNr
Ym9vdF9wbGFpbl9pbnQ7CiBwdWJsaWM6CiAgZmxvYXQgKCpmKShmbG9hdCosIHZvaWQgKik7CiAg
aW50IG5jb25mLG5hcmcsY29uZjsKICBmbG9hdCAqbTsKICB2b2lkKiBoYW5kbGU7CiAgbWRwX2ph
Y2tib290KCkgewogICAgbT0wOwogICAgZGltZW5zaW9uKDAsMCk7CiAgfQogIG1kcF9qYWNrYm9v
dChpbnQgbmNvbmZfLCBpbnQgbmFyZ189MSkgewogICAgbT0wOwogICAgZGltZW5zaW9uKG5jb25m
XywgbmFyZ18pOwogIH0KICB2b2lkIGRpbWVuc2lvbihpbnQgbmNvbmZfLCBpbnQgbmFyZ189MSkg
ewogICAgbmNvbmY9bmNvbmZfOwogICAgbmFyZz1uYXJnXzsKICAgIGNvbmY9MDsKICAgIGhhbmRs
ZT0wOwogICAgaWYobSE9MCkgewogICAgICBkZWxldGVbXSBtOwogICAgICBtPTA7CiAgICB9CiAg
ICBpZihtPT0wKSBtPW5ldyBmbG9hdFtuY29uZipuYXJnXTsKICAgIGludCBpLGo7CiAgICBmb3Io
aT0wOyBpPG5jb25mOyBpKyspCiAgICAgIGZvcihqPTA7IGo8bmFyZzsgaisrKQoJbVtpKm5hcmcr
al09MDsKICB9CiAgdmlydHVhbCB+bWRwX2phY2tib290KCkgewogICAgZGVsZXRlW10gbTsKICB9
CiAgZmxvYXQqIGFkZHJlc3MoaW50IGNvbmYpIHsKICAgIHJldHVybiBtK2NvbmYqbmFyZzsKICB9
CiAgZmxvYXQgJm9wZXJhdG9yKCkgKGludCBwcmVzZW50X2NvbmYsIGludCBhcmcpIHsKICAgIGNv
bmY9cHJlc2VudF9jb25mOwogICAgcmV0dXJuIG1bY29uZipuYXJnK2FyZ107CiAgfQogIGZsb2F0
ICZvcGVyYXRvcigpIChpbnQgYXJnKSB7CiAgICByZXR1cm4gbVtjb25mKm5hcmcrYXJnXTsKICB9
CiAgdm9pZCBwbGFpbihpbnQgaSkgewogICAgaWYoKGk8MCkgfHwgKGk+PW5hcmcpKSBlcnJvcigi
aW5jb3JyZWN0IG1kcF9qYWNrYm9vdC5wbGFpbigpIGFyZ3VtZW50Iik7CiAgICBtZHBfamFja2Jv
b3RfcGxhaW5faW50PWk7CiAgICBoYW5kbGU9KHZvaWQqKSAmbWRwX2phY2tib290X3BsYWluX2lu
dDsKICAgIGY9bWRwX2phY2tib290X3BsYWluOwogIH0KICB2b2lkIG1ha2VzYW1wbGUoaW50ICpw
LCBpbnQgbmJvb3QpIHsKICAgIGludCBib290LCBqOwogICAgZm9yKGJvb3Q9MDsgYm9vdDxuYm9v
dDsgYm9vdCsrKQogICAgICBmb3Ioaj0wOyBqPD1jb25mOyBqKyspCglwW2orKGNvbmYrMSkqYm9v
dF09KGludCkgKChjb25mKzEpKm1kcF9yYW5kb20ucGxhaW4oKSk7CiAgfQoKICBmbG9hdCBtZWFu
KCkgewogICAgaW50IGksajsKICAgIGZsb2F0IHRtcDsKICAgIGZsb2F0ICphdmVyYWdlPSBuZXcg
ZmxvYXRbbmFyZ107CiAgICBpZihjb25mPT0wKSByZXR1cm4gKCpmKSgmbVswXSxoYW5kbGUpOwog
ICAgZm9yKGk9MDsgaTxuYXJnOyBpKyspIHsKICAgICAgYXZlcmFnZVtpXT0wOwogICAgICBmb3Io
aj0wOyBqPD1jb25mOyBqKyspCglhdmVyYWdlW2ldKz1tW2oqbmFyZytpXS8oY29uZisxKTsKICAg
IH0KICAgIHRtcD0oKmYpKGF2ZXJhZ2UsaGFuZGxlKTsKICAgIGRlbGV0ZVtdIGF2ZXJhZ2U7CiAg
ICByZXR1cm4gdG1wOwogIH0KICBmbG9hdCBqX2VycigpIHsKICAgIGludCBpLGosazsKICAgIGZs
b2F0IG1lYW4wPXRoaXMtPm1lYW4oKTsKICAgIGZsb2F0ICphdmVyYWdlPSBuZXcgZmxvYXRbKGNv
bmYrMSkqbmFyZ107CiAgICBmbG9hdCBzdGRkZXY9MDsKICAgIGlmKGNvbmY9PTApIHJldHVybiAw
OwogICAgZm9yKGk9MDsgaTxuYXJnOyBpKyspCiAgICAgIGZvcihqPTA7IGo8PWNvbmY7IGorKykg
ewoJYXZlcmFnZVtqKm5hcmcraV09MDsKCWZvcihrPTA7IGs8PWNvbmY7IGsrKykKCSAgaWYoaiE9
aykgYXZlcmFnZVtqKm5hcmcraV0rPShtW2sqbmFyZytpXS9uY29uZik7CiAgICAgIH0KICAgIHN0
ZGRldj0wOwogICAgZm9yKGo9MDsgajw9Y29uZjsgaisrKSAKICAgICAgc3RkZGV2Kz0oZmxvYXQp
IHBvdygoZG91YmxlKSAoKmYpKCYoYXZlcmFnZVtqKm5hcmddKSxoYW5kbGUpLW1lYW4wLDIuMCk7
CiAgICBkZWxldGVbXSBhdmVyYWdlOwogICAgcmV0dXJuIChmbG9hdCkgc3FydChzdGRkZXYqY29u
Zi8oY29uZisxKSk7CiAgfSAgCiAgZmxvYXQgYl9lcnIoaW50IG5ib290PTEwMCkgewogICAgaW50
IGksaixib290LHgseTsKICAgIGZsb2F0IHZ4LCB2eSwgdG1wOwogICAgZmxvYXQgKmF2ZXJhZ2U9
bmV3IGZsb2F0W25ib290Km5hcmddOwogICAgaW50ICpwPW5ldyBpbnRbKGNvbmYrMSkqbmJvb3Rd
OwogICAgbWFrZXNhbXBsZShwLG5ib290KTsKICAgIGlmKGNvbmY9PTApIHJldHVybiAwOwogICAg
Zm9yKGk9MDsgaTxuYXJnOyBpKyspIAogICAgICBmb3IoYm9vdD0wOyBib290PG5ib290OyBib290
KyspIHsKCWF2ZXJhZ2VbYm9vdCpuYXJnK2ldPTA7Cglmb3Ioaj0wOyBqPD1jb25mOyBqKyspIAoJ
ICBhdmVyYWdlW2Jvb3QqbmFyZytpXSs9bVtwW2orKGNvbmYrMSkqYm9vdF0qbmFyZytpXTsKCWF2
ZXJhZ2VbYm9vdCpuYXJnK2ldLz1jb25mKzE7CiAgICAgIH0KICAgIGZvcih4PTE7IHg8bmJvb3Q7
IHgrKykgewogICAgICB2eD0oKmYpKCYoYXZlcmFnZVt4Km5hcmddKSxoYW5kbGUpOwogICAgICBm
b3IoeT14LTE7IHk+PTA7IHktLSkgewoJdnk9KCpmKSgmKGF2ZXJhZ2VbeSpuYXJnXSksaGFuZGxl
KTsKCWlmKHZ5PnZ4KSAKCSAgZm9yKGk9MDsgaTxuYXJnOyBpKyspIHsKCSAgICB0bXA9YXZlcmFn
ZVsoeSsxKSpuYXJnK2ldOwoJICAgIGF2ZXJhZ2VbKHkrMSkqbmFyZytpXT1hdmVyYWdlW3kqbmFy
ZytpXTsKCSAgICBhdmVyYWdlW3kqbmFyZytpXT10bXA7CgkgIH0gZWxzZSB5PS0xOwogICAgICB9
CiAgICB9CiAgICB2eD0oKmYpKCYoYXZlcmFnZVsoKGludCkoKGZsb2F0KSBuYm9vdCowLjE2KSkq
bmFyZ10pLGhhbmRsZSk7CiAgICB2eT0oKmYpKCYoYXZlcmFnZVsoKGludCkoKGZsb2F0KSBuYm9v
dCowLjg0KSkqbmFyZ10pLGhhbmRsZSk7CiAgICBkZWxldGVbXSBhdmVyYWdlOwogICAgZGVsZXRl
W10gcDsKICAgIHJldHVybiAoZmxvYXQpICh2eS12eCkvMi4wOyAKICB9CiB9OwoAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAG1kcF9sYXR0aWNlLmgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMTAw
NjQ0ADAwMzMxMjYAMDAyNDQ2MQAwMDAwMDA0MjM1NwAxMDE0MzAxMzE1NgAwMTQzMDIAIDAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABNRGlQaWVycm8A
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1rZ3JvdXAtbC1kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAALy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vIEZpbGUgTmFtZTogbWRwX2xhdHRpY2Uu
aAovLyBWZXJzaW9uOiAgIDIuMwovLyBEYXRlOiAgICAgIDEtT2N0LTIwMDIKLy8gQXV0aG9yOiAg
ICBNYXNzaW1vIERpIFBpZXJybyA8bWRwQG1ldGFjcnlwdGlvbi5jb20+Ci8vIExpY2Vuc2U6ICAg
VGhpcyBmaWxlIGlzIGV4Y2x1c2l2ZSBwcm9wZXJ0eSBvZiBNZXRhQ3J5cHRpb24gTExDCi8vICAg
ICAgICAgICAgUmVhZCBhdHRhY2hlZCBsaWNlbnNlIGluIGZpbGUgbWRwX2xpY2Vuc2UucGRmCi8v
ICAgICAgICAgICAgVGhpcyBmaWxlIGNhbm5vdCBiZSBkaXN0cmlidXRlZCB3aXRob3V0IGZpbGUg
bWRwX2xpY2Vuc2UucGRmCi8vCi8vIERlc2NyaXB0aW9uOgovLyAgICAgY2xhc3MgbWRwX2xhdHRp
Y2UgKG9uZSBvZiB0aGUgbW9zdCBpbXBvcnRhbnQpCi8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKI2Rl
ZmluZSBNRFBfTEFUVElDRQoKY29uc3QgbG9uZyBOT1dIRVJFPUlOVF9NQVg7CiAgICAgICAgICAg
ICAgICAgICAKY2xhc3MgbWRwX3NpdGU7CgovLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLyBjbGFzczogICAgICAgbWRwX2xhdHRpY2UKLy8g
Z2xvYmFsIG9iajogIAovLyBjcmVhdGVkIGJ5OiAgTWFzc2ltbyBEaSBQaWVycm8gQCBGTkFMIDEy
LzEwLzE5OTkKLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KCmNsYXNzIG1kcF9sYXR0aWNlIHsKIHB1YmxpYzoKICBpbnQgbmRpbTsgICAgICAg
IC8qIG51bWJlciBvZiBkaW1lbnNpb25zICAgICAgICovCiAgaW50IG5kaXI7ICAgICAgICAvKiBu
dW1iZXIgb2YgZGlyZWN0aW9ucyAgICAgICAqLwogIGludCBuZXh0X25leHQ7ICAgLyogMSBvciAy
IGlzIHRoZSB0aGlrbmVzcyBvZiB0aGUgYm91ZGFyeSAqLwogIGludCAqbng7ICAgICAgICAgLyog
Ym94IGNvbnRhaW5pbmcgdGhlIGxhdHRpY2UgKi8KICBsb25nIG52b2w7ICAgICAgIC8qIGxvY2Fs
IHZvbHVtZSAgICAgICAgICAgICAgICovCiAgbG9uZyBudm9sX2dsOyAgICAvKiBnbG9iYWwgdm9s
dW1lICAgICAgICAgICAgICAqLwogIGxvbmcgbnZvbF9pbjsgICAgLyogaW50ZXJuYWwgdm9sdW1l
ICAgICAgICAgICAgKi8KICBsb25nICpnbDsgICAgICAgIC8qIG1hcCBsb2NhbCB0byBnbG9iYWwg
ICAgICAgICovCiAgbG9uZyAqbGc7ICAgICAgICAvKiBtYXAgZ2xvYmFsIHRvIGxvY2FsICAgICAg
ICAqLwogIEZJTEUgKmxnX2ZpbGU7ICAgLyogdGVtcG9yYXJ5IGZpbGUgdG8gc3RvcmUgbGcgaWYg
bm90IGVub3VnaCBtZW1vcnkgKi8KICBsb25nICoqdXA7ICAgICAgIC8qIG1vdmUgdXAgaW4gbG9j
YWwgaW5kZXggICAgICovCiAgbG9uZyAqKmR3OyAgICAgICAvKiBtb3ZlIGR3IGluIGxvY2FsIGlu
ZGV4ICAgICAqLwogIGludCAgKipjbzsgICAgICAgLyogY29vcmRpbmF0ZSB4IGluIGxvY2FsIGlk
eCAgKi8KICBpbnQgICp3aDsgICAgICAgIC8qIGluIHdoaWNoIHByb2Nlc3M/IGlzIGlkeCAgICov
CiAgaW50ICAqcGFyaXR5OyAgICAvKiBwYXJpdHkgb2YgbG9jYWwgbWRwX3NpdGUgaWR4ICAgKi8K
ICBsb25nIHN0YXJ0W19OcHJvY01heF9dWzJdOyAKICBsb25nIHN0b3BbX05wcm9jTWF4X11bMl07
CiAgbG9uZyBsZW5fdG9fc2VuZFtfTnByb2NNYXhfXVsyXTsKICBsb25nICp0b19zZW5kW19OcHJv
Y01heF9dOwogIGJvb2wgbG9jYWxfcmFuZG9tX2dlbmVyYXRvcjsKIHByaXZhdGU6CiAgbWRwX3Jh
bmRvbV9nZW5lcmF0b3IgKnJhbmRvbV9vYmo7CiAgbG9uZyByYW5kb21fc2VlZDsKIHB1YmxpYzoK
ICBpbnQgKCp3aGVyZSkoaW50KiwgaW50LCBpbnQqKTsKICB2b2lkICgqbmVpZ2hib3VyKShpbnQs
IGludCosIGludCosIGludCosIGludCwgaW50Kik7CiAgaW5saW5lIGxvbmcgZ2xvYmFsX2Nvb3Jk
aW5hdGUoaW50ICp4KSB7CiAgICBsb25nICBnbG9iYWxfaWR4PTA7CiAgICBpbnQgICBtdTsKICAg
IGZvcihtdT0wOyBtdTxuZGltLTE7IG11KyspIGdsb2JhbF9pZHg9KGdsb2JhbF9pZHgreFttdV0p
Km54W211KzFdOwogICAgcmV0dXJuIGdsb2JhbF9pZHgreFtuZGltLTFdOwogIH0KICBpbmxpbmUg
dm9pZCBnbG9iYWxfY29vcmRpbmF0ZShsb25nIGdsb2JhbF9pZHgsIGludCAqeCkgewogICAgaW50
IG11OwogICAgZm9yKG11PW5kaW0tMTsgbXU+MDsgbXUtLSkgewogICAgICB4W211XT1nbG9iYWxf
aWR4ICUgbnhbbXVdOwogICAgICBnbG9iYWxfaWR4PShnbG9iYWxfaWR4LXhbbXVdKS9ueFttdV07
CiAgICB9CiAgICB4WzBdPWdsb2JhbF9pZHg7CiAgfQogIGlubGluZSBpbnQgY29tcHV0ZV9wYXJp
dHkoaW50ICp4KSB7CiAgICBpbnQgbXU9MDsKICAgIGludCBwPTA7CiAgICBmb3IobXU9MDsgbXU8
bmRpbTsgbXUrKykgcD1wK3hbbXVdOwogICAgcmV0dXJuIChwICUgMik7CiAgfQogIG1kcF9sYXR0
aWNlKCkgewogICAgbnZvbD0wOwogICAgcmFuZG9tX29iaj0wOwogIH0KICBtZHBfbGF0dGljZShp
bnQgbmRpbV8sIAoJICAgICAgaW50IG54X1tdLAoJICAgICAgaW50ICgqd2hlcmVfKShpbnQqLCBp
bnQsIGludCopPWRlZmF1bHRfcGFydGl0aW9uaW5nMCwgCgkgICAgICB2b2lkICgqbmVpZ2hib3Vy
XykoaW50LGludCosaW50KixpbnQqLGludCxpbnQqKSAKCSAgICAgID10b3J1c190b3BvbG9neSwK
CSAgICAgIGxvbmcgcmFuZG9tX3NlZWRfPTAsCgkgICAgICBpbnQgbmV4dF9uZXh0Xz0xLAoJICAg
ICAgYm9vbCBsb2NhbF9yYW5kb21fPXRydWUpIHsKICAgIG52b2w9MDsKICAgIHJhbmRvbV9vYmo9
MDsKICAgIGFsbG9jYXRlX2xhdHRpY2UobmRpbV8sbmRpbV8sbnhfLHdoZXJlXyxuZWlnaGJvdXJf
LAoJCSAgICAgcmFuZG9tX3NlZWRfLCBuZXh0X25leHRfLCBsb2NhbF9yYW5kb21fKTsKICB9ICAg
IAogIG1kcF9sYXR0aWNlKGludCBuZGltXywgCgkgICAgICBpbnQgbmRpcl8sCgkgICAgICBpbnQg
bnhfW10sCgkgICAgICBpbnQgKCp3aGVyZV8pKGludCosIGludCwgaW50Kik9ZGVmYXVsdF9wYXJ0
aXRpb25pbmcwLAoJICAgICAgdm9pZCAoKm5laWdoYm91cl8pKGludCxpbnQqLGludCosaW50Kixp
bnQsaW50KikgCgkgICAgICA9dG9ydXNfdG9wb2xvZ3ksCgkgICAgICBsb25nIHJhbmRvbV9zZWVk
Xz0wLAoJICAgICAgaW50IG5leHRfbmV4dF89MSwKCSAgICAgIGJvb2wgbG9jYWxfcmFuZG9tXz10
cnVlKSB7CiAgICBudm9sPTA7CiAgICByYW5kb21fb2JqPTA7CiAgICBhbGxvY2F0ZV9sYXR0aWNl
KG5kaW1fLG5kaXJfLG54Xyx3aGVyZV8sbmVpZ2hib3VyXywKCQkgICAgIHJhbmRvbV9zZWVkXywg
bmV4dF9uZXh0XywgbG9jYWxfcmFuZG9tXyk7CiAgfSAgIAogIHZvaWQgYWxsb2NhdGVfbGF0dGlj
ZShpbnQgbmRpbV8sIAoJCQlpbnQgbnhfW10sCgkJCWludCAoKndoZXJlXykoaW50KiwgaW50LCBp
bnQqKT1kZWZhdWx0X3BhcnRpdGlvbmluZzAsCgkJCXZvaWQgKCpuZWlnaGJvdXJfKShpbnQsaW50
KixpbnQqLGludCosaW50LGludCopIAoJCQk9dG9ydXNfdG9wb2xvZ3ksCgkJCWxvbmcgcmFuZG9t
X3NlZWRfPTAsCgkJCWludCBuZXh0X25leHRfPTEsCgkJCWJvb2wgbG9jYWxfcmFuZG9tXz10cnVl
KSB7CiAgICBhbGxvY2F0ZV9sYXR0aWNlKG5kaW1fLG5kaW1fLG54Xyx3aGVyZV8sbmVpZ2hib3Vy
XywKCQkgICAgIHJhbmRvbV9zZWVkXywgbmV4dF9uZXh0XywgbG9jYWxfcmFuZG9tXyk7ICAgIAog
IH0KICB2b2lkIGFsbG9jYXRlX2xhdHRpY2UoaW50IG5kaW1fLCAKCQkJaW50IG5kaXJfLAoJCQlp
bnQgbnhfW10sCgkJCWludCAoKndoZXJlXykoaW50KiwgaW50LCBpbnQqKT1kZWZhdWx0X3BhcnRp
dGlvbmluZzAsCgkJCXZvaWQgKCpuZWlnaGJvdXJfKShpbnQsaW50KixpbnQqLGludCosaW50LGlu
dCopIAoJCQk9dG9ydXNfdG9wb2xvZ3ksCgkJCWxvbmcgcmFuZG9tX3NlZWRfPTAsCgkJCWludCBu
ZXh0X25leHRfPTEsCgkJCWJvb2wgbG9jYWxfcmFuZG9tXz10cnVlKSB7CiAgICBtcGkuYmVnaW5f
ZnVuY3Rpb24oImFsbG9jYXRlX2xhdHRpY2UiKTsKICAgIGxvY2FsX3JhbmRvbV9nZW5lcmF0b3I9
bG9jYWxfcmFuZG9tXzsKICAgIGlmKG5kaW1fIT1uZGlyXykKICAgICAgbXBpIDw8ICJJdCBpcyBn
ZXR0aW5nIGNvbXBsaWNhdGVkOiB5b3UgaGF2ZSBuZGltIT1uZGlyXG4iOyAKICAgIGRlYWxsb2Nh
dGVfbWVtb3J5KCk7CiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICAgIC8vICgqd2hlcmUpKHgsbmMpIG11c3Qg
cmV0dXJuIHRoZSBwcm9jZXNzb3IgcmFuayBvZiB3aGVyZSB4IGlzIHN0b3JlZAogICAgLy8gKCpu
ZWdoYm91cikobXUseF9kdyx4LHhfdXAsbmRpbSwgbngpIG11c3QgZmlsbCB4X2R3IGFuZCB4X3Vw
IAogICAgLy8gICAgICAgICAgICBhY2NvcmRpbmcgd2l0aCBjdXJyZW50IHBvc2l0aW9uIHggYW5k
IGRpcmVjdGlvbiBtdQogICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAgICBtcGkgPDwgIkluaXRpYWxpemluZyBh
IG1kcF9sYXR0aWNlLi4uXG4iOwoKICAgIGludCAgIG11LCBudSwgcmhvLCBwcm9jZXNzLCBucDsK
ICAgIGJvb2wgIGlzX2JvdW5kYXJ5OwogICAgbG9uZyAgZ2xvYmFsX2lkeCwgb2xkX2lkeCwgbmV3
X2lkeDsKICAgIG5kaW09bmRpbV87CiAgICBuZGlyPW5kaXJfOwogICAgd2hlcmU9d2hlcmVfOwog
ICAgbmVpZ2hib3VyPW5laWdoYm91cl87CiAgICBuZXh0X25leHQ9bmV4dF9uZXh0XzsKICAgIG52
b2w9MDsKICAgIG52b2xfZ2w9MTsKCiAgICBtcGkgPDwgIkxhdHRpY2UgZGltZW5zaW9uOiAiIDw8
IG54X1swXTsKICAgIGZvcihtdT0xOyBtdTxuZGltOyBtdSsrKSBtcGkgPDwgIiB4ICIgPDwgbnhf
W211XTsKICAgIG1waSA8PCAnXG4nOwoKICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICAgIC8vIER5bmFtaWNhbGx5
IGFsbG9jYXRlIHNvbWUgYXJyYXlzCiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAgICBueD1uZXcgaW50W25kaW1d
OwoKICAgIGZvcihtdT0wOyBtdTxuZGltOyBtdSsrKSBudm9sX2dsKj0obnhbbXVdPW54X1ttdV0p
OwogICAgaW50ICAgeFsxMF07CiAgICBpbnQgICB4X3VwWzEwXSx4X3VwX2R3WzEwXSx4X3VwX3Vw
WzEwXSx4X3VwX3VwX2R3WzEwXSx4X3VwX3VwX3VwWzEwXTsgCiAgICBpbnQgICB4X2R3WzEwXSx4
X2R3X3VwWzEwXSx4X2R3X2R3WzEwXSx4X2R3X2R3X2R3WzEwXSx4X2R3X2R3X3VwWzEwXTsKI2lm
ICFkZWZpbmVkKE1EUF9OT19MRykKICAgIGxvbmcqIGxvY2FsX21kcF9zaXRlcz1uZXcgbG9uZ1tu
dm9sX2dsXTsKI2Vsc2UKICAgIGxvbmcgbG1zX3RtcD0wOwogICAgRklMRSogbG1zX2ZpbGU9dG1w
ZmlsZSgpOwogICAgaWYobG1zX2ZpbGU9PTApIGVycm9yKCJtZHBfbGF0dGljZTo6Z2VuZXJpY19s
YXR0aWNlKClcbiIKCQkJICAiVW5hYmxlIHRvIGNyZWF0ZSB0ZW1wb3JhcnkgbG1zIGZpbGUiKTsK
I2VuZGlmCiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAgICAvLyBGaWxsIHRhYmxlIGxvY2FsX21kcF9zaXRl
cyB3aXRoIHRoZSBnbG9iYWwgY29vcmRpbmF0ZSBvZiBtZHBfc2l0ZXMgaW4gTUUgCiAgICAvLyBu
dm9sIGNvdW50cyB0aGUgbWRwX3NpdGVzIHN0b3JlZCBpbiBsb2NhbF9tZHBfc2l0ZXMKICAgIC8v
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KICAgIC8vCiAgICAvLyBjYXNlcyBvZiBpbnRlcmVzZXQuLi46CiAgICAvLwog
ICAgLy8gbmV4dF9uZXh0IDwgMCA9PiBvbmx5IGxvY2FsIG1kcF9zaXRlcyBORVchCiAgICAvLyBu
ZXh0X25leHQgPSAwID0+IG9ubHkgeCttdSBhbmQgeC1tdSAod2lsc29uKSBORVchCiAgICAvLyBu
ZXh0X25leHQgPSAxID0+IG9ubHkgeCstbXUsIHgrLW11Ky1udSBtdSE9bnUgKGNsb3ZlcikKICAg
IC8vIG5leHRfbmV4dCA9IDIgPT4gb25seSB4Ky1tdSwgeCstbXUrLW51CiAgICAvLyBuZXh0X25l
eHQgPSAzID0+IG9ubHkgeCstbXUsIHgrLW11Ky1udSwgeCstbXUrLW51Ky1yaG8gKGFzcXRhZCkK
ICAgIC8vIAogICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKICAgIGZvcihtdT0wOyBtdTxuZGltOyBtdSsrKSB4
W211XT0wOwogICAgZG8gewogICAgICBnbG9iYWxfaWR4PWdsb2JhbF9jb29yZGluYXRlKHgpOwog
ICAgICBpZigoKndoZXJlKSh4LG5kaW0sbngpPT1NRSkgewojaWYgIWRlZmluZWQoTURQX05PX0xH
KQoJbG9jYWxfbWRwX3NpdGVzW252b2xdPWdsb2JhbF9pZHg7CiNlbHNlCglpZihmc2VlayhsbXNf
ZmlsZSwgbnZvbCpzaXplb2YobG9uZyksIFNFRUtfU0VUKSE9MCB8fAoJICAgZndyaXRlKCZnbG9i
YWxfaWR4LCBzaXplb2YobG9uZyksIDEsIGxtc19maWxlKSE9MSkKCSAgZXJyb3IoImdlbmVyaWNf
bGF0dGljZTo6YWxsb2NhdGVfbGF0dGljZSgpXG4iCgkJIlVuYWJsZSB0byB3cml0ZSB0byB0ZW1w
b3JhcnkgZmlsZSIpOwojZW5kaWYKCW52b2wrKzsKICAgICAgfSBlbHNlIGlmKG5leHRfbmV4dD49
MCkgewoJaXNfYm91bmRhcnk9RkFMU0U7Cglmb3IobXU9MDsgbXU8bmRpcjsgbXUrKykgewoJICAo
Km5laWdoYm91cikobXUsIHhfZHcsIHgsIHhfdXAsIG5kaW0sIG54KTsKCSAgaWYoKCgqd2hlcmUp
KHhfdXAsbmRpbSxueCk+PU5wcm9jKSB8fAoJICAgICAoKCp3aGVyZSkoeF9kdyxuZGltLG54KT49
TnByb2MpKQoJICAgIGVycm9yKCJJbmNvcnJlY3QgcGF0aXRpb25pbmciKTsKCSAgaWYoKCgqd2hl
cmUpKHhfdXAsbmRpbSxueCk9PU1FKSB8fAoJICAgICAoKCp3aGVyZSkoeF9kdyxuZGltLG54KT09
TUUpKSBpc19ib3VuZGFyeT1UUlVFOwoJICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgkgIC8vIGNhc2VzOgoJICAvLyAxKSBtdStudQoJICAv
LyAyKSBtdStudSBhbmQgbXUrbXUKCSAgLy8gMykgbXUrbnUrcmhvIGFuZCBtdSttdStyaG8gYW5k
IG11K211K211CgkgIC8vIE9uZSBtYXkgd2FudCB0byBvcHRpbWl6ZSBjYXNlIDMuIElzIHdhcyB0
aG91Z2h0IGZvciAKCSAgLy8gaW1wcm92ZWQgc3RhZ2dlcmVkIGZlcm1pb25zLiAKCSAgLy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoJICBmb3Io
bnU9MDsgbnU8bmRpcjsgbnUrKykKCSAgICBpZigobnUhPW11KSB8fCAobmV4dF9uZXh0PjEpKSB7
CgkgICAgICAoKm5laWdoYm91cikobnUsIHhfZHdfZHcsIHhfZHcsIHhfZHdfdXAsIG5kaW0sIG54
KTsgICAgICAKCSAgICAgICgqbmVpZ2hib3VyKShudSwgeF91cF9kdywgeF91cCwgeF91cF91cCwg
bmRpbSwgbngpOyAgICAgIAoJICAgICAgaWYoKCgqd2hlcmUpKHhfdXBfZHcsbmRpbSxueCk+PU5w
cm9jKSB8fAoJCSAoKCp3aGVyZSkoeF91cF91cCxuZGltLG54KT49TnByb2MpIHx8CgkJICgoKndo
ZXJlKSh4X2R3X2R3LG5kaW0sbngpPj1OcHJvYykgfHwKCQkgKCgqd2hlcmUpKHhfZHdfdXAsbmRp
bSxueCk+PU5wcm9jKSkgCgkJZXJyb3IoIkluY29ycmVjdCBwYXRpdGlvbmluZyIpOwoJICAgICAg
aWYoKCgqd2hlcmUpKHhfdXBfZHcsbmRpbSxueCk9PU1FKSB8fAoJCSAoKCp3aGVyZSkoeF91cF91
cCxuZGltLG54KT09TUUpIHx8CgkJICgoKndoZXJlKSh4X2R3X2R3LG5kaW0sbngpPT1NRSkgfHwK
CQkgKCgqd2hlcmUpKHhfZHdfdXAsbmRpbSxueCk9PU1FKSkgaXNfYm91bmRhcnk9VFJVRTsKCSAg
ICAgIGlmKG5leHRfbmV4dD09MykgCSAgICAgIAoJCWZvcihyaG89MDsgcmhvPG5kaXI7IHJobysr
KSB7CgkJICAoKm5laWdoYm91cikocmhvLCB4X2R3X2R3X2R3LCB4X2R3X2R3LCB4X2R3X2R3X3Vw
LCBuZGltLCBueCk7ICAgICAgCgkJICAoKm5laWdoYm91cikocmhvLCB4X3VwX3VwX2R3LCB4X3Vw
X3VwLCB4X3VwX3VwX3VwLCBuZGltLCBueCk7ICAgICAgCgkJICBpZigoKCp3aGVyZSkoeF91cF91
cF91cCxuZGltLG54KT49TnByb2MpIHx8CgkJICAgICAoKCp3aGVyZSkoeF91cF91cF9kdyxuZGlt
LG54KT49TnByb2MpIHx8CgkJICAgICAoKCp3aGVyZSkoeF9kd19kd191cCxuZGltLG54KT49TnBy
b2MpIHx8CgkJICAgICAoKCp3aGVyZSkoeF9kd19kd19kdyxuZGltLG54KT49TnByb2MpKSAKCQkg
ICAgZXJyb3IoIkluY29ycmVjdCBwYXRpdGlvbmluZyIpOwoJCSAgaWYoKCgqd2hlcmUpKHhfdXBf
dXBfdXAsbmRpbSxueCk9PU1FKSB8fAoJCSAgICAgKCgqd2hlcmUpKHhfdXBfdXBfZHcsbmRpbSxu
eCk9PU1FKSB8fAoJCSAgICAgKCgqd2hlcmUpKHhfZHdfZHdfdXAsbmRpbSxueCk9PU1FKSB8fAoJ
CSAgICAgKCgqd2hlcmUpKHhfZHdfZHdfZHcsbmRpbSxueCk9PU1FKSkgaXNfYm91bmRhcnk9VFJV
RTsKCQl9CgkgICAgfQoJfQoJaWYoaXNfYm91bmRhcnk9PVRSVUUpIHsKI2lmICFkZWZpbmVkKE1E
UF9OT19MRykKCSAgbG9jYWxfbWRwX3NpdGVzW252b2xdPWdsb2JhbF9pZHg7CiNlbHNlCglpZihm
c2VlayhsbXNfZmlsZSwgbnZvbCpzaXplb2YobG9uZyksIFNFRUtfU0VUKSE9MCB8fAoJICAgZndy
aXRlKCZnbG9iYWxfaWR4LCBzaXplb2YobG9uZyksIDEsIGxtc19maWxlKSE9MSkKCSAgZXJyb3Io
ImdlbmVyaWNfbGF0dGljZTo6YWxsb2NhdGVfbGF0dGljZSgpXG4iCgkJIlVuYWJsZSB0byB3cml0
ZSB0byB0ZW1wb3JhcnkgZmlsZSIpOwojZW5kaWYKCW52b2wrKzsKCX0KICAgICAgfQogICAgICB4
WzBdKys7CiAgICAgIGZvcihtdT0wOyBtdTxuZGltLTE7IG11KyspIGlmKHhbbXVdPj1ueFttdV0p
IHsgeFttdV09MDsgeFttdSsxXSsrOyB9CiAgICB9IHdoaWxlKHhbbmRpbS0xXTxueFtuZGltLTFd
KTsKICAgIAogICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICAgIC8vIER5bmFtaWNhbGx5IGFsbG9jYXRlIHNvbWUg
b3RoZXIgYXJyYXlzCiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogICAgCiAgICBkdz1uZXcgbG9uZypbbnZvbF07
CiAgICB1cD1uZXcgbG9uZypbbnZvbF07CiAgICBjbz1uZXcgaW50Kltudm9sXTsKICAgIGZvcihu
ZXdfaWR4PTA7IG5ld19pZHg8bnZvbDsgbmV3X2lkeCsrKSB7CiAgICAgIGR3W25ld19pZHhdPW5l
dyBsb25nW25kaXJdOwogICAgICB1cFtuZXdfaWR4XT1uZXcgbG9uZ1tuZGlyXTsKICAgICAgY29b
bmV3X2lkeF09bmV3IGludFtuZGlyXTsKICAgIH0KICAgIGdsPW5ldyBsb25nW252b2xdOwojaWYg
IWRlZmluZWQoTURQX05PX0xHKQogICAgbGc9bmV3IGxvbmdbbnZvbF9nbF07CiNlbHNlCiAgICBs
Z19maWxlPXRtcGZpbGUoKTsKICAgIGlmKGxnX2ZpbGU9PTApIGVycm9yKCJtZHBfbGF0dGljZTo6
Z2VuZXJpY19sYXR0aWNlKClcbiIKCQkJICJVbmFibGUgdG8gY3JlYXRlIHRlbXBvcmFyeSBsZyBm
aWxlIik7CiNlbmRpZgogICAgd2g9bmV3IGludFtudm9sXTsKICAgIGZvcihnbG9iYWxfaWR4PTA7
IGdsb2JhbF9pZHg8bnZvbF9nbDsgZ2xvYmFsX2lkeCsrKSAKI2lmICFkZWZpbmVkKE1EUF9OT19M
RykKICAgICAgbGdbZ2xvYmFsX2lkeF09Tk9XSEVSRTsgCiNlbHNlCiAgICBpZihmc2VlayhsZ19m
aWxlLCBnbG9iYWxfaWR4KnNpemVvZihsb25nKSwgU0VFS19TRVQpIT0wIHx8CiAgICAgICBmd3Jp
dGUoJk5PV0hFUkUsIHNpemVvZihsb25nKSwgMSwgbGdfZmlsZSkhPTEpCiAgICAgIGVycm9yKCJn
ZW5lcmljX2xhdHRpY2U6OmFsbG9jYXRlX2xhdHRpY2UoKVxuIgoJICAgICJVbmFibGUgdG8gd3Jp
dGUgdG8gdGVtcG9yYXJ5IGZpbGUiKTsKI2VuZGlmCiAgICBwYXJpdHk9bmV3IGludFtudm9sXTsK
ICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCiAgICBzdGFydFswXVswXT1zdG9wWzBdWzBdPTA7CiAgICBmb3IocHJv
Y2Vzcz0wOyBwcm9jZXNzPE5wcm9jOyBwcm9jZXNzKyspIHsKICAgICAgaWYocHJvY2Vzcz4wKSBz
dGFydFtwcm9jZXNzXVswXT1zdG9wW3Byb2Nlc3NdWzBdPXN0b3BbcHJvY2Vzcy0xXVsxXTsKICAg
ICAgZm9yKG5wPTA7IG5wPDI7IG5wKyspIHsKCWlmKG5wPjApIHN0YXJ0W3Byb2Nlc3NdWzFdPXN0
b3BbcHJvY2Vzc11bMV09c3RvcFtwcm9jZXNzXVswXTsKCWZvcihvbGRfaWR4PTA7IG9sZF9pZHg8
bnZvbDsgb2xkX2lkeCsrKSB7CiNpZiAhZGVmaW5lZChNRFBfTk9fTEcpCgkgIGdsb2JhbF9jb29y
ZGluYXRlKGxvY2FsX21kcF9zaXRlc1tvbGRfaWR4XSwgeCk7CiNlbHNlCgkgIGlmKGZzZWVrKGxt
c19maWxlLCBvbGRfaWR4KnNpemVvZihsb25nKSwgU0VFS19TRVQpIT0wIHx8CgkgICAgIGZyZWFk
KCZsbXNfdG1wLCBzaXplb2YobG9uZyksIDEsIGxtc19maWxlKSE9MSkKCSAgICBlcnJvcigiZ2Vu
ZXJpY19sYXR0aWNlOjphbGxvY2F0ZV9sYXR0aWNlKClcbiIKCQkgICJVbmFibGUgdG8gcmVhZCB0
byB0ZW1wb3JhcnkgZmlsZSIpOwkgCgkgIGdsb2JhbF9jb29yZGluYXRlKGxtc190bXAsIHgpOwoj
ZW5kaWYKCSAgaWYoKCgqd2hlcmUpKHgsbmRpbSxueCk9PXByb2Nlc3MpICYmIChjb21wdXRlX3Bh
cml0eSh4KT09bnApKSB7CgkgICAgbmV3X2lkeD1zdG9wW3Byb2Nlc3NdW25wXTsKI2lmICFkZWZp
bmVkKE1EUF9OT19MRykKCSAgICBsZ1tsb2NhbF9tZHBfc2l0ZXNbb2xkX2lkeF1dPW5ld19pZHg7
CgkgICAgZ2xbbmV3X2lkeF09bG9jYWxfbWRwX3NpdGVzW29sZF9pZHhdOwojZWxzZQoJICAgIAoJ
ICAgIGlmKGZzZWVrKGxtc19maWxlLCBvbGRfaWR4KnNpemVvZihsb25nKSwgU0VFS19TRVQpIT0w
IHx8CgkgICAgICAgZnJlYWQoJmxtc190bXAsIHNpemVvZihsb25nKSwgMSwgbG1zX2ZpbGUpIT0x
KQoJICAgIGVycm9yKCJnZW5lcmljX2xhdHRpY2U6OmFsbG9jYXRlX2xhdHRpY2UoKVxuIgoJCSAg
IlVuYWJsZSB0byByZWFkIHRvIHRlbXBvcmFyeSBmaWxlIik7CSAKCSAgICBpZihmc2VlayhsZ19m
aWxlLCBsbXNfdG1wKnNpemVvZihsb25nKSwgU0VFS19TRVQpIT0wIHx8CgkgICAgIGZ3cml0ZSgm
bmV3X2lkeCwgc2l6ZW9mKGxvbmcpLCAxLCBsZ19maWxlKSE9MSkKCSAgICAgIGVycm9yKCJnZW5l
cmljX2xhdHRpY2U6OmFsbG9jYXRlX2xhdHRpY2UoKVxuIgoJCSAgICAiVW5hYmxlIHRvIHdyaXRl
IHRvIHRlbXBvcmFyeSBmaWxlIik7CSAKCSAgICBnbFtuZXdfaWR4XT1sbXNfdG1wOwojZW5kaWYK
CSAgICB3aFtuZXdfaWR4XT1wcm9jZXNzOwoJICAgIHBhcml0eVtuZXdfaWR4XT1jb21wdXRlX3Bh
cml0eSh4KTsKCSAgICBzdG9wW3Byb2Nlc3NdW25wXSsrOwoJICB9Cgl9CiAgICAgIH0KICAgIH0K
ICAgIC8vIGRlYWxsY2F0ZSB0ZW1wb3JhcnkgYXJyYXkKI2lmICFkZWZpbmVkKE1EUF9OT19MRykK
ICAgIGRlbGV0ZVtdIGxvY2FsX21kcF9zaXRlczsKI2Vsc2UKICAgIGZjbG9zZShsbXNfZmlsZSk7
CiNlbmRpZgogICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogICAgZm9yKG5ld19pZHg9
MDsgbmV3X2lkeDxudm9sOyBuZXdfaWR4KyspIHsKICAgICAgZ2xvYmFsX2Nvb3JkaW5hdGUoZ2xb
bmV3X2lkeF0seCk7CiAgICAgIGZvcihtdT0wOyBtdTxuZGltOyBtdSsrKSBjb1tuZXdfaWR4XVtt
dV09eFttdV07CiAgICAgIGZvcihtdT0wOyBtdTxuZGlyOyBtdSsrKSB7CgkoKm5laWdoYm91ciko
bXUseF9kdyx4LHhfdXAsbmRpbSxueCk7CglpZih3aFtuZXdfaWR4XT09TUUpIHsKCSAgZHdbbmV3
X2lkeF1bbXVdPWxvY2FsKGdsb2JhbF9jb29yZGluYXRlKHhfZHcpKTsKCSAgdXBbbmV3X2lkeF1b
bXVdPWxvY2FsKGdsb2JhbF9jb29yZGluYXRlKHhfdXApKTsKCX0gZWxzZSB7CgkgIGlmKGxvY2Fs
KGdsb2JhbF9jb29yZGluYXRlKHhfZHcpKSE9Tk9XSEVSRSkgCgkgICAgZHdbbmV3X2lkeF1bbXVd
PWxvY2FsKGdsb2JhbF9jb29yZGluYXRlKHhfZHcpKTsKCSAgZWxzZSBkd1tuZXdfaWR4XVttdV09
Tk9XSEVSRTsKCSAgaWYobG9jYWwoZ2xvYmFsX2Nvb3JkaW5hdGUoeF91cCkpIT1OT1dIRVJFKQoJ
ICAgIHVwW25ld19pZHhdW211XT1sb2NhbChnbG9iYWxfY29vcmRpbmF0ZSh4X3VwKSk7CgkgIGVs
c2UgdXBbbmV3X2lkeF1bbXVdPU5PV0hFUkU7Cgl9CiAgICAgIH0KICAgIH0KICAgIG52b2xfaW49
c3RvcFtNRV1bMV0tc3RhcnRbTUVdWzBdOwogICAgbXBpIDw8ICJDb21tdW5pY2F0aW5nLi4uXG4i
OwogICAgY29tbXVuaWNhdGVfcmVzdWx0c190b19hbGxfcHJvY2Vzc2VzKCk7CiAgICBtcGkgPDwg
IkluaXRpYWxpemluZyByYW5kb20gcGVyIG1kcF9zaXRlLi4uXG4iOwogICAgaWYobWRwX3JhbmRv
bV9zZWVkX2ZpbGVuYW1lICYmIHJhbmRvbV9zZWVkXz09MCkgewogICAgICBpZihNRT09MCkgewoJ
RklMRSAqZnA9Zm9wZW4obWRwX3JhbmRvbV9zZWVkX2ZpbGVuYW1lLCAiciIpOwoJaWYoZnAhPTAp
IHsKCSAgaWYoZnJlYWQoJnJhbmRvbV9zZWVkXywgc2l6ZW9mKHJhbmRvbV9zZWVkXyksMSxmcCkh
PTEpIHJhbmRvbV9zZWVkXz0wOwoJICBmY2xvc2UoZnApOwoJfTsKCWZwPWZvcGVuKG1kcF9yYW5k
b21fc2VlZF9maWxlbmFtZSwgInciKTsKCWlmKGZwIT0wKSB7CgkgIHJhbmRvbV9zZWVkXys9MTsK
CSAgZndyaXRlKCZyYW5kb21fc2VlZF8sIHNpemVvZihyYW5kb21fc2VlZF8pLDEsZnApOwoJICBy
YW5kb21fc2VlZF8tPTE7CgkgIGZjbG9zZShmcCk7Cgl9CgltcGkgPDwgIlJlYWRpbmcgZnJvbSBm
aWxlICIgPDwgbWRwX3JhbmRvbV9zZWVkX2ZpbGVuYW1lIDw8ICIgbGF0dGljZSgpLnJhbmRvbV9z
ZWVkPSIgPDwgcmFuZG9tX3NlZWRfIDw8ICdcbic7CgltcGkgPDwgIldyaXRpbmcgdG8gICBmaWxl
ICIgPDwgbWRwX3JhbmRvbV9zZWVkX2ZpbGVuYW1lIDw8ICIgbGF0dGljZSgpLnJhbmRvbV9zZWVk
PSIgPDwgcmFuZG9tX3NlZWRfKzEgPDwgJ1xuJzsKICAgICAgfQogICAgICBtcGkuYnJvYWRjYXN0
KHJhbmRvbV9zZWVkXywwKTsKICAgIH0gZWxzZSB7CiAgICAgIG1waSA8PCAiQWRvcHRpbmcgcmFu
ZG9tX3NlZWQ9IiA8PCByYW5kb21fc2VlZF8gPDwgJ1xuJzsKICAgIH0KICAgIGluaXRpYWxpemVf
cmFuZG9tKHJhbmRvbV9zZWVkXyk7CiAgICBtcGkgPDwgIkxhdHRpY2UgY3JlYXRlZC5cbiI7CiAg
ICBtcGkuZW5kX2Z1bmN0aW9uKCJhbGxvY2F0ZV9sYXR0aWNlIik7CiAgfQogIC8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICAvLyBkZWFsbG9j
YXRlIGFsbCB0aGUgZHluYW1pY2FsbHkgYWxvY2F0ZWQgYXJyYXlzCiAgLy8gLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogIHZpcnR1YWwgfm1kcF9s
YXR0aWNlKCkgewogICAgZGVhbGxvY2F0ZV9tZW1vcnkoKTsKICB9CiAgdm9pZCBkZWFsbG9jYXRl
X21lbW9yeSgpIHsKICAgIGlmKG52b2w9PTApIHJldHVybjsKICAgIGludCBwcm9jZXNzLCBuZXdf
aWR4OwogICAgZGVsZXRlW10gbng7CiAgICBmb3IocHJvY2Vzcz0wOyBwcm9jZXNzPE5wcm9jOyBw
cm9jZXNzKyspIGlmKHByb2Nlc3MhPU1FKSB7CiAgICAgIGlmKGxlbl90b19zZW5kW3Byb2Nlc3Nd
IT0wKSBkZWxldGVbXSB0b19zZW5kW3Byb2Nlc3NdOwogICAgfQogICAgZm9yKG5ld19pZHg9MDsg
bmV3X2lkeDxudm9sOyBuZXdfaWR4KyspIHsKICAgICAgZGVsZXRlW10gZHdbbmV3X2lkeF07CiAg
ICAgIGRlbGV0ZVtdIHVwW25ld19pZHhdOwogICAgICBkZWxldGVbXSBjb1tuZXdfaWR4XTsKICAg
IH0KICAgIGRlbGV0ZVtdIGR3OwogICAgZGVsZXRlW10gdXA7CiAgICBkZWxldGVbXSBjbzsKICAg
IGRlbGV0ZVtdIHdoOwogICAgZGVsZXRlW10gZ2w7CiNpZiAhZGVmaW5lZChNRFBfTk9fTEcpCiAg
ICBkZWxldGVbXSBsZzsKI2Vsc2UKICAgIGZjbG9zZShsZ19maWxlKTsKI2VuZGlmCiAgICBkZWxl
dGVbXSBwYXJpdHk7CiAgICBkZWxldGVbXSByYW5kb21fb2JqOwogIH0KICAvLyAvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAgLy8gc2hhcmUgaW5m
b3JtYXRpb24gd2l0aCBvdGhlciBwcm9jZXNzb3JzCiAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogIHZvaWQgY29tbXVuaWNhdGVfcmVzdWx0
c190b19hbGxfcHJvY2Vzc2VzKCkgewogICAgbG9uZyBidWZmZXJbMl07CiAgICBsb25nICpkeW5h
bWljX2J1ZmZlcjsKICAgIGxvbmcgbGVuZ3RoOwogICAgaW50IGRwLCBwcm9jZXNzLCBucCwgaWR4
OwogICAgbWRwX3JlcXVlc3QgcmVxdWVzdDsKCiAgICAvLyBzZW5kaW5nIGxlbmd0aCAvLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KICAgIGZvcihkcD0xOyBkcDxOcHJvYzsgZHArKykgewogICAg
ICBwcm9jZXNzPShNRStkcCkgJSBOcHJvYzsKICAgICAgZm9yKG5wPTA7IG5wPDI7IG5wKyspCgli
dWZmZXJbbnBdPXN0b3BbcHJvY2Vzc11bbnBdLXN0YXJ0W3Byb2Nlc3NdW25wXTsKICAgICAgbXBp
LnB1dChidWZmZXIsIDIsIHByb2Nlc3MsIHJlcXVlc3QpOwogICAgICBwcm9jZXNzPShNRS1kcCtO
cHJvYykgJSBOcHJvYzsKICAgICAgbXBpLmdldChsZW5fdG9fc2VuZFtwcm9jZXNzXSwgMiwgcHJv
Y2Vzcyk7CiAgICAgIG1waS53YWl0KHJlcXVlc3QpOwogICAgICBwcm9jZXNzPShNRStkcCkgJSBO
cHJvYzsKICAgICAgbGVuZ3RoPXN0b3BbcHJvY2Vzc11bMV0tc3RhcnRbcHJvY2Vzc11bMF07CiAg
ICAgIGR5bmFtaWNfYnVmZmVyPSBuZXcgbG9uZ1tsZW5ndGhdOwogICAgICBmb3IoaWR4PTA7IGlk
eDxsZW5ndGg7IGlkeCsrKQoJZHluYW1pY19idWZmZXJbaWR4XT1nbFtzdGFydFtwcm9jZXNzXVsw
XStpZHhdOwogICAgICBtcGkucHV0KGR5bmFtaWNfYnVmZmVyLCBsZW5ndGgsIHByb2Nlc3MsIHJl
cXVlc3QpOwogICAgICBwcm9jZXNzPShNRS1kcCtOcHJvYykgJSBOcHJvYzsKICAgICAgbGVuZ3Ro
PWxlbl90b19zZW5kW3Byb2Nlc3NdWzBdK2xlbl90b19zZW5kW3Byb2Nlc3NdWzFdOwogICAgICB0
b19zZW5kW3Byb2Nlc3NdPW5ldyBsb25nW2xlbmd0aF07CiAgICAgIG1waS5nZXQodG9fc2VuZFtw
cm9jZXNzXSwgbGVuZ3RoLCBwcm9jZXNzKTsKICAgICAgZm9yKGlkeD0wOyBpZHg8bGVuZ3RoOyBp
ZHgrKykgCgl0b19zZW5kW3Byb2Nlc3NdW2lkeF09bG9jYWwodG9fc2VuZFtwcm9jZXNzXVtpZHhd
KTsKICAgICAgbXBpLndhaXQocmVxdWVzdCk7CiAgICAgIGRlbGV0ZVtdIGR5bmFtaWNfYnVmZmVy
OwogICAgfQogIH0KICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCiAgLy8gaW5pdGlhbGl6ZSByYW5kb20gbnVtYmVyIGdlbmVyYXRvciBmb3Ig
ZWFjaCBsb2NhbCBtZHBfc2l0ZQogIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KICB2b2lkIGluaXRpYWxpemVfcmFuZG9tKGxvbmcgcmFuZG9t
X3NlZWRfPTApIHsKICAgIHJhbmRvbV9zZWVkPXJhbmRvbV9zZWVkXzsKICAgIGlmKGxvY2FsX3Jh
bmRvbV9nZW5lcmF0b3IpIHsKICAgICAgbWRwIDw8ICJVc2luZyBhIGxvY2FsIHJhbmRvbSBnZW5l
cmF0b3JcbiI7CiAgICAgIGlmKHJhbmRvbV9vYmohPTApIGRlbGV0ZVtdIHJhbmRvbV9vYmo7CiAg
ICAgIHJhbmRvbV9vYmo9bmV3IG1kcF9yYW5kb21fZ2VuZXJhdG9yW252b2xfaW5dOwogICAgICBm
b3IobG9uZyBpZHg9MDsgaWR4PG52b2xfaW47IGlkeCsrKQoJcmFuZG9tX29ialtpZHhdLmluaXRp
YWxpemUoZ2xbaWR4K3N0YXJ0W01FXVswXV0rcmFuZG9tX3NlZWQpOwogICAgfQogIH0KICBpbmxp
bmUgbWRwX3JhbmRvbV9nZW5lcmF0b3IgJnJhbmRvbShtZHBfc2l0ZSk7CiAgLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogIC8vIGZ1bmN0aW9ucyBmb3IgZXh0ZXJuYWwgYWNj
ZXNzIC4uLiAKICAvLyB0byBiZSB1c2VkIHRvIGFjY2VzcyBtZW1iZXIgdmFyaWFibGVzCiAgLy8g
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgogIGlubGluZSBpbnQgbl9kaW1lbnNp
b25zKCkgY29uc3QgewogICAgcmV0dXJuIG5kaW07CiAgfQogIGlubGluZSBpbnQgbl9kaXJlY3Rp
b25zKCkgY29uc3QgewogICAgcmV0dXJuIG5kaXI7CiAgfQogIGlubGluZSBsb25nIHNpemUoKSBj
b25zdCB7CiAgICByZXR1cm4gbnZvbF9nbDsKICB9CiAgaW5saW5lIGxvbmcgc2l6ZShjb25zdCBp
bnQgbXUpIGNvbnN0IHsKICAgIHJldHVybiBueFttdV07CiAgfQogIGlubGluZSBsb25nIGxvY2Fs
X3ZvbHVtZSgpIGNvbnN0IHsKICAgIHJldHVybiBudm9sX2luOwogIH0KICBpbmxpbmUgbG9uZyBn
bG9iYWxfdm9sdW1lKCkgY29uc3QgewogICAgcmV0dXJuIG52b2xfZ2w7CiAgfQogIGlubGluZSBs
b25nIG1vdmVfdXAoY29uc3QgbG9uZyBpZHgsIGNvbnN0IGludCBtdSkgY29uc3QgewogICAgcmV0
dXJuIHVwW2lkeF1bbXVdOwogIH0KICBpbmxpbmUgbG9uZyBtb3ZlX2Rvd24oY29uc3QgbG9uZyBp
ZHgsIGNvbnN0IGludCBtdSkgY29uc3QgewogICAgcmV0dXJuIHVwW2lkeF1bbXVdOwp9CiAgaW5s
aW5lIGxvbmcgbG9jYWwobG9uZyBpZHgpIGNvbnN0IHsKI2lmICFkZWZpbmVkKE1EUF9OT19MRykK
ICAgIHJldHVybiBsZ1tpZHhdOwojZWxzZQogICAgbG9uZyBsZ190bXA7CiAgICBpZihmc2Vlayhs
Z19maWxlLCBpZHgqc2l6ZW9mKGxvbmcpLCBTRUVLX1NFVCkhPTAgfHwKICAgICAgIGZyZWFkKCZs
Z190bXAsIHNpemVvZihsb25nKSwgMSwgbGdfZmlsZSkhPTEpCiAgICAgIGVycm9yKCJnZW5lcmlj
X2xhdHRpY2U6OmFsbG9jYXRlX2xhdHRpY2UoKVxuIgoJICAgICJVbmFibGUgdG8gcmVhZCB0byB0
ZW1wb3JhcnkgZmlsZSIpOwkgCiAgICByZXR1cm4gbGdfdG1wOwojZW5kaWYKICB9CiAgaW5saW5l
IGxvbmcgZ2xvYmFsKGxvbmcgaWR4KSBjb25zdCB7CiAgICByZXR1cm4gZ2xbaWR4XTsKICB9CiAg
aW5saW5lIGludCBzaXRlX3Bhcml0eShjb25zdCBsb25nIGlkeCkgY29uc3QgewogICAgcmV0dXJu
IHBhcml0eVtpZHhdOwogIH0KICBpbmxpbmUgbG9uZyBzdGFydF9pbmRleChjb25zdCBpbnQgcHJv
Y2VzcywgaW50IHA9RVZFTk9ERCkgY29uc3QgewogICAgaWYocD09RVZFTk9ERCkgcD0wOwogICAg
cmV0dXJuIHN0YXJ0W3Byb2Nlc3NdW3BdOwogIH0KICBpbmxpbmUgbG9uZyBzdG9wX2luZGV4KGNv
bnN0IGludCBwcm9jZXNzLCBpbnQgcD1FVkVOT0REKSBjb25zdCB7CiAgICBpZihwPT1FVkVOT0RE
KSBwPTE7CiAgICByZXR1cm4gc3RvcFtwcm9jZXNzXVtwXTsKICB9Cn07CgAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1kcF9sb2cuaAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAwMTAwNjQ0ADAwMzMxMjYAMDAyNDQ2MQAwMDAwMDAwMzM3MQAxMDE0
MzAxMzE1NgAwMTM0MjcAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAdXN0YXIgIABNRGlQaWVycm8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1rZ3JvdXAtbC1kAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gRmlsZTog
ICAgICBtZHBfbG9nLmgKLy8gVmVyc2lvbjogICAyLjMKLy8gRGF0ZTogICAgICAxLU9jdC0yMDAy
Ci8vIEF1dGhvcjogICAgTWFzc2ltbyBEaSBQaWVycm8gPG1kcEBtZXRhY3J5cHRpb24uY29tPgov
LyBMaWNlbnNlOiAgIFRoaXMgZmlsZSBpcyBleGNsdXNpdmUgcHJvcGVydHkgb2YgTWV0YUNyeXB0
aW9uIExMQwovLyAgICAgICAgICAgIFJlYWQgYXR0YWNoZWQgbGljZW5zZSBpbiBmaWxlIG1kcF9s
aWNlbnNlLnBkZgovLyAgICAgICAgICAgIFRoaXMgZmlsZSBjYW5ub3QgYmUgZGlzdHJpYnV0ZWQg
d2l0aG91dCBmaWxlIG1kcF9saWNlbnNlLnBkZgovLwovLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKY2xhc3Mg
bWRwX2xvZyB7CnByaXZhdGU6CiAgaW50IGxldmVsOwogIGludCBtYXhfbGV2ZWw7CiAgdmVjdG9y
PHN0cmluZz4gbGV2ZWxfdGFnOwogIG9zdHJlYW0qIG9zOwpwdWJsaWM6CiAgYm9vbCBwcmludDsK
ICB2b2lkIGFib3J0KCkgewogICAgZXhpdCgtMSk7CiAgfQogIHZvaWQgc2V0X2xldmVsKGludCBp
KSB7CiAgICBtYXhfbGV2ZWw9aTsKICB9CiAgbWRwX2xvZygpIHsgICAKICAgIGxldmVsPTA7CiAg
ICBtYXhfbGV2ZWw9MTAwMDAwOwogICAgcHJpbnQ9dHJ1ZTsKICAgIGNvbm5lY3QoY291dCk7CiAg
fQogIHZvaWQgY29ubmVjdChvc3RyZWFtICZvczEpIHsKICAgIG9zPSZvczE7CiAgfQogIHZvaWQg
Y29ubmVjdChvZnN0cmVhbSAmb3MyKSB7CiAgICBvcz0mb3MyOyAvLyBpcyB0aGlzIGNvcnJlY3Q/
IEkgdGhpbmsgc28hCiAgfQogIHZvaWQgZXJyb3JfbWVzc2FnZShzdHJpbmcgcywgc3RyaW5nIGZp
bGUsIGludCBsaW5lKSB7CiAgICBpZihwcmludCkgewogICAgICBiZWdpbl9mdW5jdGlvbigiZXJy
b3IiKTsKICAgICAgKm9zIDw8ICJJbiBmaWxlIFwiIiA8PCBmaWxlOwogICAgICAqb3MgPDwgIlwi
LCBiZWZvcmUgbGluZSAiIDw8IGxpbmU7CiAgICAgICpvcyA8PCAiLCB0aGlzIGVycm9yIG9jY3Vy
cmVkOiAiIDw8IHMgPDwgJ1xuJzsKICAgICAgZm9yKDtsZXZlbDsgbGV2ZWwtLSkgCglpZihsZXZl
bDxtYXhfbGV2ZWwpIAoJICAqb3MgPDwgIjwvIiA8PCBsZXZlbF90YWdbbGV2ZWwtMV0gPDwgIj4i
IDw8ICdcbic7CiAgICB9CiAgICB0aHJvdyBzOwogIH0KICB2b2lkIGJlZ2luX2Z1bmN0aW9uKHN0
cmluZyBzKSB7CiAgICBsZXZlbF90YWcucmVzaXplKCsrbGV2ZWwpOwogICAgbGV2ZWxfdGFnW2xl
dmVsLTFdPXM7ICAKICAgIGlmKHByaW50ICYmIGxldmVsPG1heF9sZXZlbCkgCiAgICAgICpvcyA8
PCAiPCIgPDwgcyA8PCAiPiIgPDwgJ1xuJzsKICB9CiAgdm9pZCBlbmRfZnVuY3Rpb24oc3RyaW5n
IHMpIHsKICAgIGlmKGxldmVsX3RhZ1tsZXZlbC0xXT09cykgewogICAgICBpZihwcmludCAmJiBs
ZXZlbDxtYXhfbGV2ZWwpIAoJKm9zIDw8ICI8LyIgPDwgbGV2ZWxfdGFnW2xldmVsLTFdIDw8ICI+
IiA8PCAnXG4nOwogICAgICBsZXZlbC0tOwogICAgfSBlbHNlIGVycm9yX21lc3NhZ2UoIm1pc3Np
bmcgZW5kX2Z1bmN0aW9uKCkiLCAidW5rb3duIiwgMCk7CiAgfQogIHRlbXBsYXRlPGNsYXNzIFQ+
CiAgICBtZHBfbG9nICZvcGVyYXRvcjw8IChUIHgpIHsKICAgIGlmIChwcmludCAmJiBsZXZlbDxt
YXhfbGV2ZWwpICpvcyA8PCB4OwogICAgcmV0dXJuICgqdGhpcyk7CiAgfQp9OwoKAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtZHBfbWFjcm9zLmgAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAMDEwMDY0NAAwMDMzMTI2ADAwMjQ0NjEAMDAwMDAwMDM0NDQAMTAxNDMwMTMx
NTYAMDE0MTMzACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVz
dGFyICAATURpUGllcnJvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABta2dyb3VwLWwtZAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLyBGaWxlIE5h
bWU6IG1kcF9tYWNyb3MuaAovLyBWZXJzaW9uOiAgIDIuMwovLyBEYXRlOiAgICAgIDEtT2N0LTIw
MDIKLy8gQXV0aG9yOiAgICBNYXNzaW1vIERpIFBpZXJybyA8bWRwQG1ldGFjcnlwdGlvbi5jb20+
Ci8vIExpY2Vuc2U6ICAgVGhpcyBmaWxlIGlzIGV4Y2x1c2l2ZSBwcm9wZXJ0eSBvZiBNZXRhQ3J5
cHRpb24gTExDCi8vICAgICAgICAgICAgUmVhZCBhdHRhY2hlZCBsaWNlbnNlIGluIGZpbGUgbWRw
X2xpY2Vuc2UucGRmCi8vICAgICAgICAgICAgVGhpcyBmaWxlIGNhbm5vdCBiZSBkaXN0cmlidXRl
ZCB3aXRob3V0IGZpbGUgbWRwX2xpY2Vuc2UucGRmCi8vCi8vIERlc2NyaXB0aW9uOgovLyAgICAg
YSBjb2xsZWN0aW9uIG9mIG1hY3JvcyB1c2VkIGJ5IE1hdHJpeCBEaXN0cmlidXRlZCBQcm9jZXNz
aW5nCi8vICAgICB1c2Ugc2hvdWxkIG5vdCBlZGl0IHRoaXMuLi4KLy8gLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCgojZGVmaW5lIENIRUNLX0FMTAojZGVmaW5lIE1EUF9NUEkKI2RlZmluZSBJTkNMVURFX0RF
UFJFQ0FURURfSU8gCgovLyBsb29wIG9uIGFsbCBsb2NhbCBzaWx0ZXMgb2YgcHJvY2VzcyBNRQoj
ZGVmaW5lIGZvcmFsbHNpdGVzKHgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKICAgICAgICBmb3IoeC5zdGFydCgpOyB4LmlzX2luKCk7IHgubmV4dCgpKQoKLy8gbG9vcCBv
biBhbGwgbG9jYWwgc2l0ZXMgb2YgcHJvY2VzcyBNRSB3aXRoIGdpdmVuIHBhcml0eQovLyBpZiBw
b2Z4IGlzIEVWRU5PREQ9MiB0aGVuIGxvb3BzIG9uIGV2ZW4gYW5kIG9kZCBzaXRlcwojZGVmaW5l
IGZvcmFsbHNpdGVzb2ZwYXJpdHkoeCxwb2Z4KSAgICAgICAgICAgICAgICAgICAgICAgIFwKICBm
b3IoeC5zdGFydCgpLCB4LmlkeD14LmxhdHRpY2UoKS5zdGFydFtNRV1bcG9meCAlIDJdOyAgICAg
ICAgICAgICAgIFwKICAgICAgeC5pZHg8eC5sYXR0aWNlKCkuc3RvcFtNRV1bKHBvZngrKHBvZngg
JSAyKSkvMl07ICAgICBcCiAgICAgIHguaWR4KyspCgovLyBsb29wIG9uIGFsbCBzaXRlcyBzdG9y
ZWQgYnkgTUUKI2RlZmluZSBmb3JhbGxzaXRlc2FuZGNvcGllcyh4KSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCiAgICAgZm9yKHguc3RhcnQoKSwgeC5pZHg9MDsgeC5pZHg8eC5sYXR0aWNl
KCkubnZvbDsgeC5pZHgrKykKCi8vIGxvb3Agb24gYWxsIHNpdGVzIHN0b3JlZCBieSBNRSB3aXRo
IGdpdmVuIHBhcml0eQoKLy8gaWYgcG9meCBpcyBFVkVOT0REPTIgdGhlbiBsb29wcyBvbiBldmVu
IGFuZCBvZGQgc2l0ZXMKI2RlZmluZSBmb3JhbGxzaXRlc2FuZGNvcGllc29mcGFyaXR5KHgscG9m
eCkgICAgICAgICAgICAgICAgICAgICBcCiAgICAgZm9yKGludCBfX3Byb2Nlc3M9MDsgX19wcm9j
ZXNzPE5wcm9jOyBfX3Byb2Nlc3MrKykgICAgICAgICAgXAogICAgIGZvcih4LnN0YXJ0KCksIHgu
aWR4PXgubGF0dGljZSgpLnN0YXJ0W19fcHJvY2Vzc11bcG9meCAlIDJdOyAgICAgICAgICAgXAog
ICAgICAgICB4LmlkeDx4LmxhdHRpY2UoKS5zdG9wW19fcHJvY2Vzc11bKHBvZngrKHBvZnggJSAy
KSkvMl07IFwKICAgICAgICAgeC5pZHgrKykKCiNkZWZpbmUgTUUgICAgIG1waS5tZSgpCiNkZWZp
bmUgTnByb2MgIG1waS5ucHJvYygpCgojZGVmaW5lIGVycm9yKGEpIF9tcGlfZXJyb3JfbWVzc2Fn
ZShhLF9fRklMRV9fLCBfX0xJTkVfXyk7CgoKCgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAbWRwX21hdHJpeC5oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAADAxMDA2NDQAMDAzMzEyNgAwMDI0NDYxADAwMDAwMDUxMjQyADEwMTQzMDEzMTU2ADAx
NDE1MgAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAg
AE1EaVBpZXJybwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWtncm91cC1sLWQAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gRmlsZSBOYW1lOiBt
ZHBfbWF0cml4LmgKLy8gVmVyc2lvbjogICAyLjMKLy8gRGF0ZTogICAgICAxLU9jdC0yMDAyCi8v
IEF1dGhvcjogICAgTWFzc2ltbyBEaSBQaWVycm8gPG1kcEBtZXRhY3J5cHRpb24uY29tPgovLyBM
aWNlbnNlOiAgIFRoaXMgZmlsZSBpcyBleGNsdXNpdmUgcHJvcGVydHkgb2YgTWV0YUNyeXB0aW9u
IExMQwovLyAgICAgICAgICAgIFJlYWQgYXR0YWNoZWQgbGljZW5zZSBpbiBmaWxlIG1kcF9saWNl
bnNlLnBkZgovLyAgICAgICAgICAgIFRoaXMgZmlsZSBjYW5ub3QgYmUgZGlzdHJpYnV0ZWQgd2l0
aG91dCBmaWxlIG1kcF9saWNlbnNlLnBkZgovLwovLyBEZXNjcmlwdGlvbjoKLy8gICAgIGNsYXNz
IG1kcF9jb21wbGV4Ci8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKY2xhc3MgbWRwX21hdHJpeCB7CnBy
aXZhdGU6CgogIGVudW0ge0ZSRUUsIEhBUkR9IGZsYWc7CiAgdWludCBpcm93cyxpY29scyxpbWF4
OwogIG1kcF9jb21wbGV4ICptOwoKICB1aW50JiByb3dzKCk7IAogIHVpbnQmIGNvbHMoKTsKCnB1
YmxpYzoKICB2b2lkIGFsbG9jYXRlKCk7CiAgdm9pZCByZWFsbG9jYXRlKCk7CiAgdm9pZCBkZWFs
bG9jYXRlKCk7CiAgdm9pZCBkaW1lbnNpb24oY29uc3QgdWludCwgY29uc3QgdWludCk7CiAgbWRw
X21hdHJpeCgpOwogIG1kcF9tYXRyaXgoY29uc3QgbWRwX21hdHJpeCYgYSk7CiAgbWRwX21hdHJp
eChjb25zdCB1aW50IHIsIGNvbnN0IHVpbnQgYyk7CiAgbWRwX21hdHJpeChtZHBfY29tcGxleCog
eiwgY29uc3QgdWludCByLCBjb25zdCB1aW50IGMpOwogIHZpcnR1YWwgfm1kcF9tYXRyaXgoKTsK
CiAgY29uc3QgbWRwX21hdHJpeCYgb3BlcmF0b3I9KGNvbnN0IG1kcF9tYXRyaXgmIGEpOwogIG1k
cF9jb21wbGV4JiBvcGVyYXRvcltdIChjb25zdCB1aW50IGkpOwogIGNvbnN0IG1kcF9jb21wbGV4
JiBvcGVyYXRvcltdIChjb25zdCB1aW50IGkpIGNvbnN0OwoKICBtZHBfY29tcGxleCYgb3BlcmF0
b3IoKSAoY29uc3QgdWludCBpLCBjb25zdCB1aW50IGopOwogIGNvbnN0IG1kcF9jb21wbGV4JiBv
cGVyYXRvcigpIChjb25zdCB1aW50IGksIGNvbnN0IHVpbnQgaikgY29uc3Q7CiAgbWRwX21hdHJp
eCBvcGVyYXRvcigpIChjb25zdCB1aW50IGkpOwoKICBmcmllbmQgdm9pZCBwcmVwYXJlKG1kcF9t
YXRyaXgmKTsgLy8gZG9lcyBub3RoaW5nLCBoZXJlIGZvciBjb21wYXRpYmlsaXR5CgogIG1kcF9j
b21wbGV4KiBhZGRyZXNzKCk7CiAgY29uc3QgdWludCByb3dzKCkgY29uc3Q7IAogIGNvbnN0IHVp
bnQgY29scygpIGNvbnN0OwogIGNvbnN0IHVpbnQgc2l6ZSgpIGNvbnN0OwogIHVpbnQgcm93bWF4
KCkgY29uc3Q7IC8vIGNvbXBhdGliaWxpdHkgZnVuY3Rpb24gCiAgdWludCBjb2xtYXgoKSBjb25z
dDsgLy8gY29tcGF0aWJpbGl0eSBmdW5jdGlvbgoKICBmcmllbmQgbWRwX21hdHJpeCBvcGVyYXRv
cisgKGNvbnN0IG1kcF9tYXRyaXgmIGEpOwogIGZyaWVuZCBtZHBfbWF0cml4IG9wZXJhdG9yLSAo
Y29uc3QgbWRwX21hdHJpeCYgYSk7CiAgCiAgZnJpZW5kIG1kcF9tYXRyaXggb3BlcmF0b3IrIChj
b25zdCBtZHBfbWF0cml4JiBhLCBjb25zdCBtZHBfbWF0cml4JiBiKTsKICBmcmllbmQgbWRwX21h
dHJpeCBvcGVyYXRvci0gKGNvbnN0IG1kcF9tYXRyaXgmIGEsIGNvbnN0IG1kcF9tYXRyaXgmIGIp
OyAvLyBzc2UyCiAgZnJpZW5kIG1kcF9tYXRyaXggb3BlcmF0b3IqIChjb25zdCBtZHBfbWF0cml4
JiBhLCBjb25zdCBtZHBfbWF0cml4JiBiKTsgLy8gc3NlMgogIGZyaWVuZCBtZHBfbWF0cml4IG9w
ZXJhdG9yLyAoY29uc3QgbWRwX21hdHJpeCYgYSwgY29uc3QgbWRwX21hdHJpeCYgYik7CgogIGZy
aWVuZCBtZHBfbWF0cml4IG9wZXJhdG9yKyAoY29uc3QgbWRwX21hdHJpeCYgYSwgbWRwX2NvbXBs
ZXggYik7CiAgZnJpZW5kIG1kcF9tYXRyaXggb3BlcmF0b3ItIChjb25zdCBtZHBfbWF0cml4JiBh
LCBtZHBfY29tcGxleCBiKTsKICBmcmllbmQgbWRwX21hdHJpeCBvcGVyYXRvciogKGNvbnN0IG1k
cF9tYXRyaXgmIGEsIG1kcF9jb21wbGV4IGIpOwogIGZyaWVuZCBtZHBfbWF0cml4IG9wZXJhdG9y
LyAoY29uc3QgbWRwX21hdHJpeCYgYSwgbWRwX2NvbXBsZXggYik7CgogIGZyaWVuZCBtZHBfbWF0
cml4IG9wZXJhdG9yKyAobWRwX2NvbXBsZXggYSwgY29uc3QgbWRwX21hdHJpeCYgYik7CiAgZnJp
ZW5kIG1kcF9tYXRyaXggb3BlcmF0b3ItIChtZHBfY29tcGxleCBhLCBjb25zdCBtZHBfbWF0cml4
JiBiKTsKICBmcmllbmQgbWRwX21hdHJpeCBvcGVyYXRvciogKG1kcF9jb21wbGV4IGEsIGNvbnN0
IG1kcF9tYXRyaXgmIGIpOwogIGZyaWVuZCBtZHBfbWF0cml4IG9wZXJhdG9yLyAobWRwX2NvbXBs
ZXggYSwgY29uc3QgbWRwX21hdHJpeCYgYik7CgogIGZyaWVuZCBtZHBfbWF0cml4IG9wZXJhdG9y
KyAoY29uc3QgbWRwX21hdHJpeCYgYSwgbWRwX3JlYWwgYik7CiAgZnJpZW5kIG1kcF9tYXRyaXgg
b3BlcmF0b3ItIChjb25zdCBtZHBfbWF0cml4JiBhLCBtZHBfcmVhbCBiKTsKICBmcmllbmQgbWRw
X21hdHJpeCBvcGVyYXRvciogKGNvbnN0IG1kcF9tYXRyaXgmIGEsIG1kcF9yZWFsIGIpOwogIGZy
aWVuZCBtZHBfbWF0cml4IG9wZXJhdG9yLyAoY29uc3QgbWRwX21hdHJpeCYgYSwgbWRwX3JlYWwg
Yik7CgogIGZyaWVuZCBtZHBfbWF0cml4IG9wZXJhdG9yKyAobWRwX3JlYWwgYSwgY29uc3QgbWRw
X21hdHJpeCYgYik7CiAgZnJpZW5kIG1kcF9tYXRyaXggb3BlcmF0b3ItIChtZHBfcmVhbCBhLCBj
b25zdCBtZHBfbWF0cml4JiBiKTsKICBmcmllbmQgbWRwX21hdHJpeCBvcGVyYXRvciogKG1kcF9y
ZWFsIGEsIGNvbnN0IG1kcF9tYXRyaXgmIGIpOwogIGZyaWVuZCBtZHBfbWF0cml4IG9wZXJhdG9y
LyAobWRwX3JlYWwgYSwgY29uc3QgbWRwX21hdHJpeCYgYik7CgogIG1kcF9tYXRyaXggb3BlcmF0
b3IrPShjb25zdCBtZHBfbWF0cml4JiBhKTsgIAogIG1kcF9tYXRyaXggb3BlcmF0b3ItPShjb25z
dCBtZHBfbWF0cml4JiBhKTsKICBtZHBfbWF0cml4IG9wZXJhdG9yKj0oY29uc3QgbWRwX21hdHJp
eCYgYSk7CiAgbWRwX21hdHJpeCBvcGVyYXRvci89KGNvbnN0IG1kcF9tYXRyaXgmIGEpOwoKICBt
ZHBfbWF0cml4IG9wZXJhdG9yKz0obWRwX2NvbXBsZXggYSk7CiAgbWRwX21hdHJpeCBvcGVyYXRv
ci09KG1kcF9jb21wbGV4IGEpOwogIG1kcF9tYXRyaXggb3BlcmF0b3IqPShtZHBfY29tcGxleCBh
KTsKICBtZHBfbWF0cml4IG9wZXJhdG9yLz0obWRwX2NvbXBsZXggYSk7CgogIG1kcF9tYXRyaXgg
b3BlcmF0b3IrPShtZHBfcmVhbCBhKTsKICBtZHBfbWF0cml4IG9wZXJhdG9yLT0obWRwX3JlYWwg
YSk7CiAgbWRwX21hdHJpeCBvcGVyYXRvcio9KG1kcF9yZWFsIGEpOwogIG1kcF9tYXRyaXggb3Bl
cmF0b3IvPShtZHBfcmVhbCBhKTsKCiAgdm9pZCBvcGVyYXRvcj0obWRwX2NvbXBsZXggYSk7CiAg
dm9pZCBvcGVyYXRvcj0obWRwX3JlYWwgYSk7CgogIGZyaWVuZCBtZHBfbWF0cml4IGludihjb25z
dCBtZHBfbWF0cml4JiBhKTsKICBmcmllbmQgbWRwX21hdHJpeCBwb3coY29uc3QgbWRwX21hdHJp
eCYgYSwgdWludCBiKTsKICBmcmllbmQgbWRwX21hdHJpeCBleHAoY29uc3QgbWRwX21hdHJpeCYg
YSk7CiAgZnJpZW5kIG1kcF9tYXRyaXggbG9nKGNvbnN0IG1kcF9tYXRyaXgmIGEpOwogIGZyaWVu
ZCBtZHBfbWF0cml4IHNpbihjb25zdCBtZHBfbWF0cml4JiBhKTsKICBmcmllbmQgbWRwX21hdHJp
eCBjb3MoY29uc3QgbWRwX21hdHJpeCYgYSk7CgogIGZyaWVuZCBtZHBfbWF0cml4IG1kcF9pZGVu
dGl0eSgpOwogIGZyaWVuZCBtZHBfbWF0cml4IG1kcF96ZXJvKCk7CgogIGZyaWVuZCBtZHBfcmVh
bCBtYXgoY29uc3QgbWRwX21hdHJpeCYgYSk7CiAgZnJpZW5kIG1kcF9tYXRyaXggc3VibWF0cml4
KGNvbnN0IG1kcF9tYXRyaXgmIGEsIHVpbnQgaSwgdWludCBqKTsKICBmcmllbmQgbWRwX2NvbXBs
ZXggZGV0KGNvbnN0IG1kcF9tYXRyaXgmIGEpOwogIGZyaWVuZCBtZHBfY29tcGxleCB0cmFjZShj
b25zdCBtZHBfbWF0cml4JiBhKTsKICBmcmllbmQgbWRwX21hdHJpeCBoZXJtaXRpYW4oY29uc3Qg
bWRwX21hdHJpeCYgYSk7CiAgZnJpZW5kIG1kcF9tYXRyaXggdHJhbnNwb3NlKGNvbnN0IG1kcF9t
YXRyaXgmIGEpOwogIGZyaWVuZCBtZHBfbWF0cml4IGNvbmooY29uc3QgbWRwX21hdHJpeCYgYSk7
Cgp9OwoKb3N0cmVhbSYgb3BlcmF0b3I8PCAob3N0cmVhbSYgb3MsIGNvbnN0IG1kcF9tYXRyaXgm
IGEpIHsKICB1aW50IGksajsgLy8gQVcgLSB1bnNpZ25lZCBhZGRlZAogIGZvcihpPTA7IGk8YS5y
b3dzKCk7IGkrKykgewogICAgaWYoaT09MCkgb3MgPDwgIltbIjsKICAgIGVsc2UgICAgIG9zIDw8
ICIgWyI7CiAgICBmb3Ioaj0wOyBqPGEuY29scygpOyBqKyspIAogICAgICBpZihqPT0wKSBvcyA8
PCAiICIgPDwgYShpLGopOwogICAgICBlbHNlIG9zIDw8ICIsICIgPDwgYShpLGopIDw8ICIgIjsK
ICAgIGlmKGk9PShhLnJvd3MoKS0xKSkgb3MgPDwgIl1dXG4iOwogICAgZWxzZSAgICAgICAgICAg
ICAgb3MgPDwgIl0sIFxuIjsKICB9CiAgcmV0dXJuIG9zOwp9CgovLyB0aGlzIGlzIGEgY29tcGF0
aWJpbGl0eSBmdW5jdGlvbgp2b2lkIHByaW50KGNvbnN0IG1kcF9tYXRyaXgmIGEpIHsKICBjb3V0
IDw8IGE7Cn0KCnZvaWQgbWRwX21hdHJpeDo6ZGltZW5zaW9uKGNvbnN0IHVpbnQgYSwgY29uc3Qg
dWludCBiKSB7CiAgZmxhZz1GUkVFOwogIHJvd3MoKT1hOyAKICBjb2xzKCk9YjsgCiAgaW1heD1h
KmI7CiAgcmVhbGxvY2F0ZSgpOwp9CgptZHBfbWF0cml4OjptZHBfbWF0cml4KCkgewogIGZsYWc9
RlJFRTsKICByb3dzKCk9MDsgIAogIGNvbHMoKT0wOyAgCiAgaW1heD0wOyAgIAogIGFsbG9jYXRl
KCk7Cn0KCm1kcF9tYXRyaXg6Om1kcF9tYXRyaXgoY29uc3QgbWRwX21hdHJpeCYgYSkgewogIGZs
YWc9RlJFRTsKICByb3dzKCk9YS5yb3dzKCk7IAogIGNvbHMoKT1hLmNvbHMoKTsgCiAgaW1heD1h
LmltYXg7CiAgYWxsb2NhdGUoKTsKICBmb3IodWludCBpPTA7IGk8aW1heDsgaSsrKSBtW2ldPWFb
aV07Cn0KCm1kcF9tYXRyaXg6Om1kcF9tYXRyaXgoY29uc3QgdWludCBhLCBjb25zdCB1aW50IGIp
IHsKICBmbGFnPUZSRUU7CiAgcm93cygpPWE7IAogIGNvbHMoKT1iOyAKICBpbWF4PWEqYjsgCiAg
YWxsb2NhdGUoKTsKfQoKbWRwX21hdHJpeDo6bWRwX21hdHJpeChtZHBfY29tcGxleCogeiwgY29u
c3QgdWludCBhLCBjb25zdCB1aW50IGIpIHsKICBmbGFnPUhBUkQ7CiAgcm93cygpPWE7IAogIGNv
bHMoKT1iOyAKICBpbWF4PWEqYjsKICBtPXo7CiNpZiBkZWZpbmVkKFVTRV9ET1VCTEVfUFJFQ0lT
SU9OKSAmJiBkZWZpbmVkKE1BVFJJWF9TU0UyKQogIF9zc2VfY2hlY2tfYWxpZ25tZW50KCh2b2lk
KikgbSwgMHhmKTsKI2VuZGlmCn0KCm1kcF9tYXRyaXg6On5tZHBfbWF0cml4KCkgewogIGlmKGZs
YWchPUhBUkQpIGRlYWxsb2NhdGUoKTsKfQoKaW5saW5lIHZvaWQgbWRwX21hdHJpeDo6YWxsb2Nh
dGUoKSB7CiAgaWYoZmxhZz09SEFSRCkgZXJyb3IoIm1kcF9tYXRyaXg6OmFsbG9jYXRlKClcbkNh
bm5vdCBhbGxvY2F0ZSBhIEhBUkQgb2JqZWN0Iik7CiAgbT1uZXcgbWRwX2NvbXBsZXhbaW1heF07
CiAgaWYoaW1heCE9MCAmJiBtPT0wKSBlcnJvcigibWRwX21hdHJpeDo6YWxsb2NhdGUoKVxuT3V0
IG9mIG1lbW9yeSIpOwogIG1lbXNldChtLDAsaW1heCpzaXplb2YobWRwX2NvbXBsZXgpKTsKfQoK
aW5saW5lIHZvaWQgbWRwX21hdHJpeDo6cmVhbGxvY2F0ZSgpIHsKICBpZihmbGFnPT1IQVJEKSBl
cnJvcigibWRwX21hdHJpeDo6cmVhbGxvY2F0ZSgpXG5DYW5ub3QgYWxsb2NhdGUgYSBIQVJEIG9i
amVjdCIpOwogIGRlYWxsb2NhdGUoKTsKICBhbGxvY2F0ZSgpOwp9CgppbmxpbmUgdm9pZCBtZHBf
bWF0cml4OjpkZWFsbG9jYXRlKCkgewogIGlmKGZsYWc9PUhBUkQpIGVycm9yKCJtZHBfbWF0cml4
OjpkZWFsbG9jYXRlKClcbkNhbm5vdCBhbGxvY2F0ZSBhIEhBUkQgb2JqZWN0Iik7CiAgZGVsZXRl
W10gbTsKICBtPTA7IAp9CiAKaW5saW5lIGNvbnN0IG1kcF9tYXRyaXgmIG1kcF9tYXRyaXg6Om9w
ZXJhdG9yPShjb25zdCBtZHBfbWF0cml4JiB4KSB7CiAgdWludCBpPTA7CiAgaWYocm93cygpIT14
LnJvd3MoKSB8fCBjb2xzKCkhPXguY29scygpKSB7CiAgICByb3dzKCk9eC5yb3dzKCk7IGNvbHMo
KT14LmNvbHMoKTsgaW1heD14LmltYXg7CiAgICByZWFsbG9jYXRlKCk7CiAgfQogIGZvcig7IGk8
aW1heDsgaSsrKSBtW2ldPXhbaV07CiAgcmV0dXJuICp0aGlzOwp9CgppbmxpbmUgbWRwX2NvbXBs
ZXgmIG1kcF9tYXRyaXg6Om9wZXJhdG9yW10gKHVpbnQgaSkgewogIHJldHVybiBtW2ldOwp9Cgpp
bmxpbmUgY29uc3QgbWRwX2NvbXBsZXgmIG1kcF9tYXRyaXg6Om9wZXJhdG9yW10gKHVpbnQgaSkg
Y29uc3QgewogIHJldHVybiBtW2ldOwp9CgoKaW5saW5lIG1kcF9jb21wbGV4JiBtZHBfbWF0cml4
OjpvcGVyYXRvcigpICh1aW50IGksIHVpbnQgaikgewogIHJldHVybiBtW2kqY29scygpK2pdOwp9
CgppbmxpbmUgY29uc3QgbWRwX2NvbXBsZXgmIG1kcF9tYXRyaXg6Om9wZXJhdG9yKCkgKHVpbnQg
aSwgdWludCBqKSBjb25zdCB7CiAgcmV0dXJuIG1baSpjb2xzKCkral07Cn0KCmlubGluZSBtZHBf
bWF0cml4IG1kcF9tYXRyaXg6Om9wZXJhdG9yKCkgKGNvbnN0IHVpbnQgaSkgewogIHJldHVybiBt
ZHBfbWF0cml4KG0raSpjb2xzKCksIGNvbHMoKSwxKTsKfQoKaW5saW5lIHZvaWQgcHJlcGFyZSht
ZHBfbWF0cml4JiBhKSB7Cn0KCmlubGluZSBtZHBfY29tcGxleCogbWRwX21hdHJpeDo6YWRkcmVz
cygpIHsKICByZXR1cm4gbTsKfQoKaW5saW5lIHVpbnQmIG1kcF9tYXRyaXg6OnJvd3MoKSB7CiAg
cmV0dXJuIGlyb3dzOwp9CgppbmxpbmUgdWludCYgbWRwX21hdHJpeDo6Y29scygpIHsKICByZXR1
cm4gaWNvbHM7Cn0KCmlubGluZSBjb25zdCB1aW50IG1kcF9tYXRyaXg6OnJvd3MoKSBjb25zdCB7
CiAgcmV0dXJuIGlyb3dzOwp9CgppbmxpbmUgY29uc3QgdWludCBtZHBfbWF0cml4Ojpjb2xzKCkg
Y29uc3QgewogIHJldHVybiBpY29sczsKfQoKaW5saW5lIGNvbnN0IHVpbnQgbWRwX21hdHJpeDo6
c2l6ZSgpIGNvbnN0IHsKICByZXR1cm4gaW1heDsKfQoKaW5saW5lIHVpbnQgbWRwX21hdHJpeDo6
cm93bWF4KCkgY29uc3QgewogIHJldHVybiBpcm93czsKfQoKaW5saW5lIHVpbnQgbWRwX21hdHJp
eDo6Y29sbWF4KCkgY29uc3QgewogIHJldHVybiBpY29sczsKfQoKaW5saW5lIG1kcF9tYXRyaXgg
b3BlcmF0b3IrIChjb25zdCBtZHBfbWF0cml4JiBhKSB7CiAgcmV0dXJuIGE7Cn0KCgppbmxpbmUg
bWRwX21hdHJpeCBvcGVyYXRvci0gKGNvbnN0IG1kcF9tYXRyaXgmIGEpIHsKICBtZHBfbWF0cml4
IHRtcChhLnJvd3MoKSwgYS5jb2xzKCkpOwogIHVpbnQgaSxqOwogIGZvcihpPTA7IGk8YS5yb3dz
KCk7IGkrKykKICAgIGZvcihqPTA7IGo8YS5jb2xzKCk7IGorKykKICAgICAgdG1wKGksaik9LWEo
aSxqKTsKICByZXR1cm4gdG1wOwp9CgoKCmlubGluZSBtZHBfbWF0cml4IG9wZXJhdG9yKyAoY29u
c3QgbWRwX21hdHJpeCYgeCwgCgkJCSAgICAgY29uc3QgbWRwX21hdHJpeCYgeSkgewogIG1kcF9t
YXRyaXggeih4LnJvd3MoKSx4LmNvbHMoKSk7CiNpZiBkZWZpbmVkKENIRUNLX0FMTCkKICBpZih4
LnJvd3MoKSE9eS5yb3dzKCkgfHwgeC5jb2xzKCkhPXkuY29scygpKSAKICAgIGVycm9yKCJtZHBf
bWF0cml4OjpvcGVyYXRvcisoKVxuV3JvbmcgYXJndW1lbnQgc2l6ZSIpOwojZW5kaWYKICBmb3Io
cmVnaXN0ZXIgdWludCBpPTA7IGk8ei5pbWF4OyBpKyspIHpbaV09eFtpXSt5W2ldOwogIHJldHVy
biB6Owp9CgppbmxpbmUgbWRwX21hdHJpeCBvcGVyYXRvci0gKGNvbnN0IG1kcF9tYXRyaXgmIHgs
IGNvbnN0IG1kcF9tYXRyaXgmIHkpIHsKICBpZih4LnJvd3MoKSE9eS5yb3dzKCkgfHwgeC5jb2xz
KCkhPXkuY29scygpKSAKICAgIGVycm9yKCJtZHBfbWF0cml4OjpvcGVyYXRvci0oKVxud3Jvbmcg
YXJndW1lbnQgc2l6ZSIpOwogIG1kcF9tYXRyaXggeih4LnJvd3MoKSx4LmNvbHMoKSk7CiAgZm9y
KHJlZ2lzdGVyIHVpbnQgaT0wOyBpPHouaW1heDsgaSsrKSB6W2ldPXhbaV0teVtpXTsKICByZXR1
cm4gejsKfQoKaW5saW5lIG1kcF9tYXRyaXggb3BlcmF0b3IqIChjb25zdCBtZHBfbWF0cml4JiB4
LCBjb25zdCBtZHBfbWF0cml4JiB5KSB7CiAgcmVnaXN0ZXIgdWludCBpLCBqLCBrOwogIGlmKHgu
Y29scygpIT15LnJvd3MoKSkgCiAgICBlcnJvcigibWRwX21hdHJpeDo6b3BlcmF0b3IqKClcbndy
b25nIGFyZ3VtZW50IHNpemUiKTsKICBtZHBfbWF0cml4IHooeC5yb3dzKCkseS5jb2xzKCkpOwoj
aWYgZGVmaW5lZChNQVRSSVhfU1NFMikgJiYgZGVmaW5lZChVU0VfRE9VQkxFX1BSRUNJU0lPTikK
ICBpZih4LnJvd3MoKT09eC5jb2xzKCkgJiYgeS5yb3dzKCk9PTMpIHsKICAgIHJlZ2lzdGVyIGlu
dCBpLCBjb2xzKCk9eS5jb2xzKCksIGNvbHMoKTI9Mipjb2xzKCk7CiAgICBfc3NlX3N1MyAgICAq
dSAgPShfc3NlX3N1MyopIHgubTsgICAKICAgIF9zc2VfZG91YmxlICppbiA9KF9zc2VfZG91Ymxl
KikgeS5tOyAKICAgIF9zc2VfZG91YmxlICpvdXQ9KF9zc2VfZG91YmxlKikgei5tOwogICAgZm9y
KGk9MDsgaTxjb2xzKCk7IGkrKywgaW4rKywgb3V0KyspIHsKICAgICAgX3NzZV9kb3VibGVfbG9h
ZF8xMjMoKmluLCAqKGluK2NvbHMoKSksICooaW4rY29scygpMikpOwogICAgICBfc3NlX2RvdWJs
ZV9zdTNfbXVsdGlwbHkoKnUpOwogICAgICBfc3NlX2RvdWJsZV9zdG9yZV91cF8xMjMoKm91dCwg
KihvdXQrY29scygpKSwgKihvdXQrY29scygpMikpOwogICAgfQogICAgcmV0dXJuIHo7CiAgfQoj
ZW5kaWYKI2lmIGRlZmluZWQoTUFUUklYX1NTRTIpICYmICFkZWZpbmVkKFVTRV9ET1VCTEVfUFJF
Q0lTSU9OKQogIGlmKHgucm93cygpPT14LmNvbHMoKSAmJiB5LmltYXg9PTMpIHsKICAgIF9zc2Vf
c3UzICAgICAgICAqdSAgPShfc3NlX3N1MyopIHgubTsgICAKICAgIF9zc2Vfc3UzX3ZlY3RvciAq
aW4gPShfc3NlX3N1M192ZWN0b3IqKSB5Lm07IAogICAgX3NzZV9zdTNfdmVjdG9yICpvdXQ9KF9z
c2Vfc3UzX3ZlY3RvciopIHoubTsgICAgCiAgICBfc3NlX2Zsb2F0X3BhaXJfbG9hZCgqaW4sICpp
bik7CiAgICBfc3NlX2Zsb2F0X3N1M19tdWx0aXBseSgqdSk7CiAgICBfc3NlX2Zsb2F0X3BhaXJf
c3RvcmVfdXAoKm91dCwgKm91dCk7CiAgICByZXR1cm4gejsKICB9CiNlbmRpZgogIGZvcihpPTA7
IGk8eC5yb3dzKCk7IGkrKykKICAgIGZvcihqPTA7IGo8eS5jb2xzKCk7IGorKykgewogICAgICB6
KGksaik9eChpLDApKnkoMCxqKTsKICAgICAgZm9yKGs9MTsgazx4LmNvbHMoKTsgaysrKSB6KGks
aikrPXgoaSxrKSp5KGssaik7CQogICAgfQogIHJldHVybiB6Owp9CgppbmxpbmUgbWRwX21hdHJp
eCBvcGVyYXRvci8gKGNvbnN0IG1kcF9tYXRyaXgmIGEsIAoJCQkgICAgIGNvbnN0IG1kcF9tYXRy
aXgmIGIpIHsKICByZXR1cm4gYSppbnYoYik7Cn0KICAgIAppbmxpbmUgbWRwX21hdHJpeCBvcGVy
YXRvcisgKGNvbnN0IG1kcF9tYXRyaXgmIGEsICBtZHBfY29tcGxleCBiKSB7CiAgaWYoYS5jb2xz
KCkhPWEucm93cygpKSBlcnJvcigibWRwX21hdHJpeDo6b3BlcmF0b3IrKC4uLilcbk1hdHJpeCBp
cyBub3Qgc3F1YXJlZCIpOwogIG1kcF9tYXRyaXggdG1wOwogIHJlZ2lzdGVyIHVpbnQgaTsKICB0
bXA9YTsKICBmb3IoaT0wOyBpPGEuY29scygpOyBpKyspIHRtcChpLGkpKz1iOwogIHJldHVybiB0
bXA7Cn0KCmlubGluZSBtZHBfbWF0cml4IG9wZXJhdG9yLSAoY29uc3QgbWRwX21hdHJpeCYgYSwg
bWRwX2NvbXBsZXggYikgewogIGlmKGEuY29scygpIT1hLnJvd3MoKSkgZXJyb3IoIm1kcF9tYXRy
aXg6Om9wZXJhdG9yLSguLi4pXG5NYXRyaXggaXMgbm90IHNxdWFyZWQiKTsKICBtZHBfbWF0cml4
IHRtcDsKICByZWdpc3RlciB1aW50IGk7CiAgdG1wPWE7CiAgZm9yKGk9MDsgaTxhLmNvbHMoKTsg
aSsrKSB0bXAoaSxpKS09YjsKICByZXR1cm4gdG1wOwp9CgppbmxpbmUgbWRwX21hdHJpeCBvcGVy
YXRvciogKGNvbnN0IG1kcF9tYXRyaXgmIHksIG1kcF9jb21wbGV4IHgpIHsKICByZWdpc3RlciB1
aW50IGk7CiAgbWRwX21hdHJpeCB6KHkucm93cygpLHkuY29scygpKTsKI2lmIGRlZmluZWQoTUFU
UklYX1NTRTIpCiAgaWYoeS5yb3dzKCk9PTMpIHsKICAgIHN0YXRpYyBfc3NlX2Zsb2F0ICBmYWN0
b3IxIEFMSUdOMTY7ICAgCiAgICBzdGF0aWMgX3NzZV9mbG9hdCAgZmFjdG9yMiBBTElHTjE2OyAg
IAogICAgc3RhdGljIF9zc2VfZG91YmxlIGZhY3RvcjMgQUxJR04xNjsgICAKICAgIHN0YXRpYyBf
c3NlX2RvdWJsZSBmYWN0b3I0IEFMSUdOMTY7ICAgCiAgICBfc3NlX3N1M192ZWN0b3IgKmluID0o
X3NzZV9zdTNfdmVjdG9yKikgeS5tOyAKICAgIF9zc2Vfc3UzX3ZlY3RvciAqb3V0PShfc3NlX3N1
M192ZWN0b3IqKSB6Lm07ICAgIAojaWYgZGVmaW5lZChVU0VfRE9VQkxFX1BSRUNJU0lPTikKICAg
IGZhY3RvcjMuYzE9ZmFjdG9yMy5jMj14LmltYWcoKTsKICAgIGZhY3RvcjQuYzE9ZmFjdG9yNC5j
Mj14LnJlYWwoKS94LmltYWcoKTsKICAgIGZvcihpPTA7IGk8eS5jb2xzKCk7IGkrKywgaW4rKywg
b3V0KyspIHsKICAgICAgX3NzZV9kb3VibGVfbG9hZCgqaW4pOwogICAgICBfc3NlX2RvdWJsZV92
ZWN0b3JfbXVsYyhmYWN0b3IzLGZhY3RvcjQpOwogICAgICBfc3NlX2RvdWJsZV9zdG9yZSgqb3V0
KTsKICAgIH0KI2Vsc2UgCiAgICBmYWN0b3IxLmMxPWZhY3RvcjEuYzI9ZmFjdG9yMS5jMz1mYWN0
b3IxLmM0PXguaW1hZygpOwogICAgZmFjdG9yMi5jMT1mYWN0b3IyLmMyPWZhY3RvcjIuYzM9ZmFj
dG9yMi5jND14LnJlYWwoKS94LmltYWcoKTsKICAgIGZvcihpPTA7IGk8eS5jb2xzKCktMTsgaSs9
MiwgaW4rPTIsIG91dCs9MikgewogICAgICBfc3NlX2Zsb2F0X3BhaXJfbG9hZCgqaW4sICooaW4r
MSkpOwogICAgICBfc3NlX2Zsb2F0X3ZlY3Rvcl9tdWxjKGZhY3RvcjEsZmFjdG9yMik7CiAgICAg
IF9zc2VfZmxvYXRfcGFpcl9zdG9yZSgqb3V0LCAqKG91dCsxKSk7CiAgICAgIAogICAgfQogICAg
aWYoaT09eS5jb2xzKCktMSkgewogICAgICBfc3NlX2Zsb2F0X3BhaXJfbG9hZCgqaW4sICppbik7
CiAgICAgIF9zc2VfZmxvYXRfdmVjdG9yX211bGMoZmFjdG9yMSxmYWN0b3IyKTsKICAgICAgX3Nz
ZV9mbG9hdF9wYWlyX3N0b3JlKCpvdXQsICpvdXQpOwogICAgfQojZW5kaWYKICAgIHJldHVybiB6
OwkJICAgIAogIH0KI2VuZGlmCiAgZm9yKGk9MDsgaTx5LmltYXg7IGkrKykgeltpXT14KnlbaV07
CiAgcmV0dXJuIHo7Cn0KCmlubGluZSBtZHBfbWF0cml4IG9wZXJhdG9yLyAoY29uc3QgbWRwX21h
dHJpeCYgYSwgbWRwX2NvbXBsZXggYikgewogIHJldHVybiBhKigxLjAvYik7Cn0KOwppbmxpbmUg
bWRwX21hdHJpeCBvcGVyYXRvcisgKG1kcF9jb21wbGV4IGIsIGNvbnN0IG1kcF9tYXRyaXgmIGEp
IHsKICByZXR1cm4gYStiOwp9CgppbmxpbmUgbWRwX21hdHJpeCBvcGVyYXRvci0gKG1kcF9jb21w
bGV4IGIsIGNvbnN0IG1kcF9tYXRyaXgmIGEpIHsKICBpZihhLmNvbHMoKSE9YS5yb3dzKCkpIGVy
cm9yKCJtZHBfbWF0cml4OjpvcGVyYXRvci0oLi4uKVxuTWF0cml4IGlzIG5vdCBzcXVhcmVkIik7
CiAgbWRwX21hdHJpeCB0bXAoYS5yb3dzKCksIGEuY29scygpKTsKICB1aW50IGksajsgCiAgZm9y
KGk9MDsgaTxhLnJvd3MoKTsgaSsrKSB7CiAgICBmb3Ioaj0wOyBqPGEuY29scygpOyBqKyspIHRt
cChpLGopPS1hKGksaik7CiAgICB0bXAoaSxpKSs9YjsKICB9CiAgcmV0dXJuIHRtcDsKfQoKaW5s
aW5lIG1kcF9tYXRyaXggb3BlcmF0b3IqIChtZHBfY29tcGxleCB4LCBjb25zdCBtZHBfbWF0cml4
JiB5KSB7CiAgcmV0dXJuIHkqeDsKfQoKaW5saW5lIG1kcF9tYXRyaXggb3BlcmF0b3IvIChtZHBf
Y29tcGxleCBiLCBjb25zdCBtZHBfbWF0cml4JiBhKSB7CiAgcmV0dXJuIGIqaW52KGEpOwp9Cgpp
bmxpbmUgbWRwX21hdHJpeCBvcGVyYXRvcisgKGNvbnN0IG1kcF9tYXRyaXgmIGEsIG1kcF9yZWFs
IGIpIHsKICBpZihhLmNvbHMoKSE9YS5yb3dzKCkpIGVycm9yKCJtZHBfbWF0cml4OjpvcGVyYXRv
cisoLi4uKVxuTWF0cml4IGlzIG5vdCBzcXVhcmVkIik7CiAgbWRwX21hdHJpeCB0bXA7CiAgdWlu
dCBpOwogIHRtcD1hOwogIGZvcihpPTA7IGk8YS5jb2xzKCk7IGkrKykgdG1wKGksaSkucmVhbCgp
Kz1iOwogIHJldHVybiB0bXA7ICAKfQoKaW5saW5lIG1kcF9tYXRyaXggb3BlcmF0b3ItIChjb25z
dCBtZHBfbWF0cml4JiBhLCBtZHBfcmVhbCBiKSB7CiAgaWYoYS5jb2xzKCkhPWEucm93cygpKSBl
cnJvcigibWRwX21hdHJpeDo6b3BlcmF0b3ItKC4uLilcbk1hdHJpeCBpcyBub3Qgc3F1YXJlZCIp
OwogIG1kcF9tYXRyaXggdG1wOwogIHVpbnQgaTsKICB0bXA9YTsKICBmb3IoaT0wOyBpPGEuY29s
cygpOyBpKyspIHRtcChpLGkpLnJlYWwoKS09YjsKICByZXR1cm4gdG1wOyAgCn0KCmlubGluZSBt
ZHBfbWF0cml4IG9wZXJhdG9yKiAoY29uc3QgbWRwX21hdHJpeCYgeSwgbWRwX3JlYWwgeCkgewog
IHJlZ2lzdGVyIHVpbnQgaTsKICBtZHBfbWF0cml4IHooeS5yb3dzKCkseS5jb2xzKCkpOwojaWYg
ZGVmaW5lZChNQVRSSVhfU1NFMikKICBpZih5LnJvd3MoKT09MykgewogICAgc3RhdGljIF9zc2Vf
ZmxvYXQgIGZhY3RvcjEgQUxJR04xNjsgICAKICAgIHN0YXRpYyBfc3NlX2RvdWJsZSBmYWN0b3Iy
IEFMSUdOMTY7ICAgCgogICAgX3NzZV9zdTNfdmVjdG9yICppbiA9KF9zc2Vfc3UzX3ZlY3Rvciop
IHkubTsgCiAgICBfc3NlX3N1M192ZWN0b3IgKm91dD0oX3NzZV9zdTNfdmVjdG9yKikgei5tOyAg
ICAKI2lmIGRlZmluZWQoVVNFX0RPVUJMRV9QUkVDSVNJT04pCiAgICBmYWN0b3IyLmMxPWZhY3Rv
cjIuYzI9eDsKICAgIGZvcihpPTA7IGk8eS5jb2xzKCk7IGkrKywgaW4rKywgb3V0KyspIHsKICAg
ICAgX3NzZV9kb3VibGVfbG9hZCgqaW4pOwogICAgICBfc3NlX2RvdWJsZV92ZWN0b3JfbXVsKGZh
Y3RvcjIpOwogICAgICBfc3NlX2RvdWJsZV9zdG9yZSgqb3V0KTsKICAgIH0KI2Vsc2UgICAgIAog
ICAgZmFjdG9yMS5jMT1mYWN0b3IxLmMyPWZhY3RvcjEuYzM9ZmFjdG9yMS5jND14OwogICAgZm9y
KGk9MDsgaTx5LmNvbHMoKS0xOyBpKz0yLCBpbis9Miwgb3V0Kz0yKSB7CiAgICAgIF9zc2VfZmxv
YXRfcGFpcl9sb2FkKCppbiwgKihpbisxKSk7CiAgICAgIF9zc2VfZmxvYXRfdmVjdG9yX211bChm
YWN0b3IxKTsKICAgICAgX3NzZV9mbG9hdF9wYWlyX3N0b3JlKCpvdXQsICoob3V0KzEpKTsKICAg
IH0KICAgIGlmKGk9PXkuY29scygpLTEpIHsKICAgICAgX3NzZV9mbG9hdF9wYWlyX2xvYWQoKmlu
LCAqaW4pOwogICAgICBfc3NlX2Zsb2F0X3ZlY3Rvcl9tdWwoZmFjdG9yMSk7CiAgICAgIF9zc2Vf
ZmxvYXRfcGFpcl9zdG9yZSgqb3V0LCAqb3V0KTsKICAgIH0KI2VuZGlmCiAgICByZXR1cm4gejsJ
CSAgICAKICB9CiNlbmRpZgogIGZvcihpPTA7IGk8eS5pbWF4OyBpKyspIHpbaV09eCp5W2ldOwog
IHJldHVybiB6Owp9CgppbmxpbmUgbWRwX21hdHJpeCBvcGVyYXRvci8gKGNvbnN0IG1kcF9tYXRy
aXgmIGEsIG1kcF9yZWFsIGIpIHsKICByZXR1cm4gYSooMS4wL2IpOwp9CgppbmxpbmUgbWRwX21h
dHJpeCBvcGVyYXRvcisgKG1kcF9yZWFsIGIsIGNvbnN0IG1kcF9tYXRyaXgmIGEpIHsKICByZXR1
cm4gYStiOwp9CgppbmxpbmUgbWRwX21hdHJpeCBvcGVyYXRvci0gKG1kcF9yZWFsIGIsIGNvbnN0
IG1kcF9tYXRyaXgmIGEpIHsKICBpZihhLmNvbHMoKSE9YS5yb3dzKCkpIGVycm9yKCJtZHBfbWF0
cml4OjpvcGVyYXRvci0oLi4uKVxuTWF0cml4IGlzIG5vdCBzcXVhcmVkIik7CiAgbWRwX21hdHJp
eCB0bXAoYS5yb3dzKCksIGEuY29scygpKTsKICB1aW50IGksajsgCiAgZm9yKGk9MDsgaTxhLnJv
d3MoKTsgaSsrKSB7CiAgICBmb3Ioaj0wOyBqPGEuY29scygpOyBqKyspIHRtcChpLGopPS1hKGks
aik7CiAgICB0bXAoaSxpKSs9YjsKICB9CiAgcmV0dXJuIHRtcDsKfQoKaW5saW5lIG1kcF9tYXRy
aXggb3BlcmF0b3IqIChtZHBfcmVhbCBhLCBjb25zdCBtZHBfbWF0cml4JiBiKSB7CiAgcmV0dXJu
IGIqYTsKfQoKaW5saW5lIG1kcF9tYXRyaXggbWRwX2lkZW50aXR5KHVpbnQgaSkgewogIG1kcF9t
YXRyaXggdG1wKGksaSk7CiAgcmVnaXN0ZXIgdWludCByLGM7CiAgZm9yKHI9MDsgcjxpOyByKysp
CiAgICBmb3IoYz0wOyBjPGk7IGMrKykKICAgICAgdG1wKHIsYyk9KHI9PWMpP21kcF9jb21wbGV4
KDEsMCk6bWRwX2NvbXBsZXgoMCwwKTsKICByZXR1cm4gdG1wOwp9CgppbmxpbmUgbWRwX21hdHJp
eCBtZHBfemVybyh1aW50IGkpIHsKICBtZHBfbWF0cml4IHRtcChpLGkpOwogIHJlZ2lzdGVyIHVp
bnQgcixjOwogIGZvcihyPTA7IHI8aTsgcisrKQogICAgZm9yKGM9MDsgYzxpOyBjKyspCiAgICAg
IHRtcChyLGMpPShtZHBfY29tcGxleCkgMDsKICByZXR1cm4gdG1wOwp9CgppbmxpbmUgbWRwX3Jl
YWwgbWF4KGNvbnN0IG1kcF9tYXRyaXgmIGEpIHsKICByZWdpc3RlciB1aW50IGk7CiAgcmVnaXN0
ZXIgZG91YmxlIHg9MCx5PTA7CiAgZm9yKGk9MDsgaTxhLmltYXg7IGkrKykgaWYgKCh5PWFicyhh
W2ldKSk+eCkgeD15OwogIHJldHVybiB4Owp9CgppbmxpbmUgbWRwX21hdHJpeCBzdWJtYXRyaXgg
KGNvbnN0IG1kcF9tYXRyaXgmIGEsIHVpbnQgaSwgdWludCBqKSB7CiNpZmRlZiBDSEVDS19BTEwK
ICBpZiAoKChhLnJvd3MoKTwyKSB8fCAoYS5jb2xzKCk8MikpIHx8IAogICAgICAoKGEucm93cygp
LTE8aSkgfHwgKGEuY29scygpLTE8aikpKSBlcnJvcigic3VibWF0cml4KC4uLilcbldyb25nIGRp
bWVuc2lvbnMgaW4gc3VibWF0cml4Iik7CiNlbmRpZgogIG1kcF9tYXRyaXggdG1wKGEucm93cygp
LTEsYS5jb2xzKCktMSk7CiAgcmVnaXN0ZXIgdWludCByLGM7CiAgZm9yKHI9MDsgcjxpOyByKysp
ICAgICAgICAKICAgIGZvcihjPTA7IGM8ajsgYysrKSAgICAgICAgdG1wKHIsYykgID1hKHIsYyk7
CiAgZm9yKHI9aSsxOyByPGEucm93cygpOyByKyspIAogICAgZm9yKGM9MDsgYzxqOyBjKyspICAg
ICAgICB0bXAoci0xLGMpPWEocixjKTsKICBmb3Iocj0wOyByPGk7IHIrKykgICAgICAgIAogICAg
Zm9yKGM9aisxOyBjPGEuY29scygpOyBjKyspIHRtcChyLGMtMSk9YShyLGMpOwogIGZvcihyPWkr
MTsgcjxhLnJvd3MoKTsgcisrKSAKICAgIGZvcihjPWorMTsgYzxhLmNvbHMoKTsgYysrKSB0bXAo
ci0xLGMtMSk9YShyLGMpOyAgCiAgcmV0dXJuIHRtcDsKfQoKaW5saW5lIG1kcF9jb21wbGV4IGRl
dChjb25zdCBtZHBfbWF0cml4JiBhKSB7CiNpZmRlZiBDSEVDS19BTEwKICBpZiAoYS5yb3dzKCkh
PWEuY29scygpKSBlcnJvcigiZGV0KC4uLilcbk1hdHJpeCBpcyBub3Qgc3F1YXJlZCIpOwojZW5k
aWYKICBpZiAoYS5yb3dzKCk9PTApIHJldHVybiAwOwogIGlmIChhLnJvd3MoKT09MSkgcmV0dXJu
IGEoMCwwKTsKICByZWdpc3RlciB1aW50IGksaixrLGw7CiAgbWRwX21hdHJpeCBBOwogIEE9YTsK
ICBtZHBfY29tcGxleCB0bXAsIHBpdm90LCB4PW1kcF9jb21wbGV4KDEsMCk7CiAgZm9yKGk9MDsg
aTxBLmNvbHMoKTsgaSsrKSB7CiAgICBmb3Ioaj1pOyAoQShpLGopPT1tZHBfY29tcGxleCgwLDAp
KSAmJiAoajxBLmNvbHMoKSk7IGorKyk7CiAgICBpZiAoaj09QS5jb2xzKCkpIHJldHVybiAwOwog
ICAgaWYgKGkhPWopIHsKICAgICAgZm9yKGs9MDsgazxBLnJvd3MoKTsgaysrKSB7Cgl0bXA9QShr
LGopOwoJQShrLGopPUEoayxpKTsKCUEoayxpKT10bXA7CiAgICAgIH0KICAgICAgeCo9LUEoaSxp
KTsKICAgIH0gZWxzZSB4Kj1BKGksaSk7CiAgICBmb3Ioaz1pKzE7IGs8QS5yb3dzKCk7IGsrKykg
ewogICAgICBwaXZvdD1BKGssaSkvQShpLGkpOwogICAgICBmb3IobD1pOyBsPEEuY29scygpOyBs
KyspIEEoayxsKS09cGl2b3QqQShpLGwpOwogICAgfQogIH0KICByZXR1cm4geDsKfQoKaW5saW5l
IG1kcF9tYXRyaXggaW52KGNvbnN0IG1kcF9tYXRyaXgmIGEpIHsKI2lmZGVmIENIRUNLX0FMTAog
IGlmICgoYS5yb3dzKCkhPWEuY29scygpKSB8fCAoYS5yb3dzKCk9PTApKSBlcnJvcigiaW52KC4u
Lilcbk1hdHJpeCBpcyBub3Qgc3F1YXJlZCIpOwojZW5kaWYKICBtZHBfbWF0cml4IHRtYSwgdG1w
OwogIG1kcF9jb21wbGV4IHgscGl2b3Q7CiAgcmVnaXN0ZXIgdWludCByLGMsaSxybWF4OwogIHRt
YT1hOwogIHRtcD1tZHBfaWRlbnRpdHkoYS5yb3dzKCkpOwogIGZvcihjPTA7IGM8YS5jb2xzKCk7
IGMrKykgewogICAgcm1heD1jOwogICAgcGl2b3Q9dG1hKGMsYyk7CiAgICBmb3Iocj1jKzE7IHI8
YS5yb3dzKCk7IHIrKykgCiAgICAgIGlmKGFicyh0bWEocixjKSk+YWJzKHBpdm90KSkgewoJcm1h
eD1yOwoJcGl2b3Q9dG1hKHIsYyk7CiAgICAgIH0KICAgIGZvcihpPTA7IGk8YS5jb2xzKCk7IGkr
KykgewogICAgICB4PXRtYShybWF4LGkpOwogICAgICB0bWEocm1heCxpKT10bWEoYyxpKTsKICAg
ICAgdG1hKGMsaSk9eC9waXZvdDsKICAgICAgeD10bXAocm1heCxpKTsKICAgICAgdG1wKHJtYXgs
aSk9dG1wKGMsaSk7CiAgICAgIHRtcChjLGkpPXgvcGl2b3Q7CiAgICB9CiAgICBmb3Iocj0wOyBy
PGEucm93cygpOyByKyspIAogICAgICBpZihyIT1jKSB7CglwaXZvdD10bWEocixjKTsKCWZvcihp
PTA7IGk8YS5jb2xzKCk7IGkrKykgewoJICB0bWEocixpKS09cGl2b3QqdG1hKGMsaSk7CgkgIHRt
cChyLGkpLT1waXZvdCp0bXAoYyxpKTsKCX0KICAgICAgfQogIH0KICByZXR1cm4gdG1wOwp9Cgpp
bmxpbmUgbWRwX21hdHJpeCBwb3coY29uc3QgbWRwX21hdHJpeCYgYSwgaW50IGkpIHsKI2lmZGVm
IENIRUNLX0FMTAogIGlmIChhLnJvd3MoKSE9YS5jb2xzKCkpIGVycm9yKCJwb3coLi4uKVxuTWF0
cml4IGlzIG5vdCBzcXVhcmVkIik7CiNlbmRpZgogIG1kcF9tYXRyaXggdG1wOwogIHRtcD1tZHBf
aWRlbnRpdHkoYS5jb2xzKCkpOwogIHVpbnQgaj0oaTwwKT8taTppOwogIGZvcig7aj4wOyBqLS0p
IHRtcD10bXAqYTsKICBpZiAoaTwwKSB0bXA9aW52KHRtcCk7CiAgcmV0dXJuIHRtcDsKfQoKaW5s
aW5lIG1kcF9tYXRyaXggZXhwKGNvbnN0IG1kcF9tYXRyaXgmIGEpIHsKI2lmZGVmIENIRUNLX0FM
TAogIGlmIChhLnJvd3MoKSE9YS5jb2xzKCkpIGVycm9yKCJleHAoLi4uKVxuTWF0cml4IGlzIG5v
dCBzcXVhcmVkIik7CiNlbmRpZgogIG1kcF9tYXRyaXggdG1wOwogIG1kcF9tYXRyaXggdGVybTsK
ICByZWdpc3RlciB1aW50IGk9MTsKICB0ZXJtPWE7CiAgdG1wPW1kcF9pZGVudGl0eShhLnJvd3Mo
KSk7CiAgdG1wKz1hOwogIGRvIHsKICAgIHRlcm09KDEuLysraSkqdGVybSphOwogICAgdG1wKz10
ZXJtOwogIH0gd2hpbGUgKG1heCh0ZXJtKT5tZHBfcHJlY2lzaW9uKTsKICByZXR1cm4gdG1wOwp9
CgoKaW5saW5lIG1kcF9tYXRyaXggbWRwX21hdHJpeDo6b3BlcmF0b3IrPShjb25zdCBtZHBfbWF0
cml4JiBhKSB7CiAgKCp0aGlzKT0oKnRoaXMpK2E7CiAgcmV0dXJuICp0aGlzOwp9CgppbmxpbmUg
bWRwX21hdHJpeCBtZHBfbWF0cml4OjpvcGVyYXRvci09KGNvbnN0IG1kcF9tYXRyaXgmIGEpIHsK
ICAoKnRoaXMpPSgqdGhpcyktYTsKICByZXR1cm4gKnRoaXM7Cn0KCmlubGluZSBtZHBfbWF0cml4
IG1kcF9tYXRyaXg6Om9wZXJhdG9yKj0oY29uc3QgbWRwX21hdHJpeCYgYSkgewogICgqdGhpcyk9
KCp0aGlzKSphOwogIHJldHVybiAqdGhpczsKfQoKaW5saW5lIG1kcF9tYXRyaXggbWRwX21hdHJp
eDo6b3BlcmF0b3IvPShjb25zdCBtZHBfbWF0cml4JiBhKSB7CiAgKCp0aGlzKT0oKnRoaXMpL2E7
CiAgcmV0dXJuICp0aGlzOwp9CgoKaW5saW5lIG1kcF9tYXRyaXggbWRwX21hdHJpeDo6b3BlcmF0
b3IrPShtZHBfY29tcGxleCBhKSB7CiAgKCp0aGlzKT0oKnRoaXMpK2E7CiAgcmV0dXJuICp0aGlz
Owp9CgppbmxpbmUgbWRwX21hdHJpeCBtZHBfbWF0cml4OjpvcGVyYXRvci09KG1kcF9jb21wbGV4
IGEpIHsKICAoKnRoaXMpPSgqdGhpcyktYTsKICByZXR1cm4gKnRoaXM7Cn0KCmlubGluZSBtZHBf
bWF0cml4IG1kcF9tYXRyaXg6Om9wZXJhdG9yKj0obWRwX2NvbXBsZXggYSkgewogICgqdGhpcyk9
KCp0aGlzKSphOwogIHJldHVybiAqdGhpczsKfQoKaW5saW5lIG1kcF9tYXRyaXggbWRwX21hdHJp
eDo6b3BlcmF0b3IvPShtZHBfY29tcGxleCBhKSB7CiAgKCp0aGlzKT0oKnRoaXMpL2E7CiAgcmV0
dXJuICp0aGlzOwp9CgppbmxpbmUgbWRwX21hdHJpeCBtZHBfbWF0cml4OjpvcGVyYXRvcis9KG1k
cF9yZWFsIGEpIHsKICAoKnRoaXMpPSgqdGhpcykrYTsKICByZXR1cm4gKnRoaXM7Cn0KCmlubGlu
ZSBtZHBfbWF0cml4IG1kcF9tYXRyaXg6Om9wZXJhdG9yLT0obWRwX3JlYWwgYSkgewogICgqdGhp
cyk9KCp0aGlzKS1hOwogIHJldHVybiAqdGhpczsKfQoKaW5saW5lIG1kcF9tYXRyaXggbWRwX21h
dHJpeDo6b3BlcmF0b3IqPShtZHBfcmVhbCBhKSB7CiAgKCp0aGlzKT0oKnRoaXMpKmE7CiAgcmV0
dXJuICp0aGlzOwp9CgppbmxpbmUgbWRwX21hdHJpeCBtZHBfbWF0cml4OjpvcGVyYXRvci89KG1k
cF9yZWFsIGEpIHsKICAoKnRoaXMpPSgqdGhpcykvYTsKICByZXR1cm4gKnRoaXM7Cn0KCmlubGlu
ZSB2b2lkIG1kcF9tYXRyaXg6Om9wZXJhdG9yPShtZHBfY29tcGxleCBhKSB7CiAgdWludCBpLGo7
CiAgZm9yKGk9MDsgaTxyb3dzKCk7IGkrKykKICAgIGZvcihqPTA7IGo8Y29scygpOyBqKyspCiAg
ICAgICgqdGhpcykoaSxqKT0oaT09aik/YTowOwp9CgppbmxpbmUgdm9pZCBtZHBfbWF0cml4Ojpv
cGVyYXRvcj0obWRwX3JlYWwgYSkgewogIHVpbnQgaSxqOwogIGZvcihpPTA7IGk8cm93cygpOyBp
KyspCiAgICBmb3Ioaj0wOyBqPGNvbHMoKTsgaisrKQogICAgICAoKnRoaXMpKGksaik9KGk9PWop
P21kcF9jb21wbGV4KGEsMCk6MDsKfQoKCm1kcF9tYXRyaXggbG9nKGNvbnN0IG1kcF9tYXRyaXgm
IGEpIHsKI2lmZGVmIENIRUNLX0FMTAogIGlmIChhLnJvd3MoKSE9YS5jb2xzKCkpIGVycm9yKCJs
b2coLi4uKVxuTWF0cml4IGlzIG5vdCBzcXVhcmVkIik7CiNlbmRpZgogIG1kcF9tYXRyaXggdG1w
LGIsYyx0MTsKICByZWdpc3RlciB1aW50IGk9MSwgaj0xOwogIGI9bWRwX2lkZW50aXR5KGEuY29s
cygpKTsgICAKICBiPWEtYjsKICBjPWI7CiAgdG1wPWI7CiAgZG8geyAKICAgIGM9YypiOwogICAg
dDE9KChtZHBfcmVhbCkoaT0taSkvKGorPTEpKSpjOwogICAgdG1wKz10MTsKICB9IHdoaWxlICht
YXgodDEpPm1kcF9wcmVjaXNpb24pOwogIHJldHVybiB0bXA7Cn0KCm1kcF9tYXRyaXggc2luKGNv
bnN0IG1kcF9tYXRyaXgmIGEpIHsKI2lmZGVmIENIRUNLX0FMTAogIGlmIChhLnJvd3MoKSE9YS5j
b2xzKCkpIGVycm9yKCJzaW4oLi4uKVxuTWF0cml4IGlzIG5vdCBzcXVhcmVkIik7CiNlbmRpZgog
IG1kcF9tYXRyaXggdG1wLCB0MTsKICByZWdpc3RlciB1aW50IGk9MTsKICB0MT1hOwogIHRtcD10
MTsKICAvLyBwcnVpbnRmKCJcbiIpOwogIGRvIHsgCiAgICB0MT0oKG1kcF9yZWFsKSAtMS4wLygr
K2kpLygrK2kpKSp0MSphKmE7CiAgICB0bXArPXQxOwogIH0gd2hpbGUgKG1heCh0MSk+bWRwX3By
ZWNpc2lvbik7CiAgcmV0dXJuIHRtcDsKfQoKbWRwX21hdHJpeCBjb3MoY29uc3QgbWRwX21hdHJp
eCYgYSkgewojaWZkZWYgQ0hFQ0tfQUxMCiAgaWYgKGEucm93cygpIT1hLmNvbHMoKSkgZXJyb3Io
ImNvcyguLi4pXG5NYXRyaXggaXMgbm90IHNxdWFyZWQiKTsKI2VuZGlmCiAgbWRwX21hdHJpeCB0
bXAsdDE7CiAgcmVnaXN0ZXIgdWludCBpPTA7CiAgdDE9bWRwX2lkZW50aXR5KGEucm93cygpKTsK
ICB0bXA9dDE7CiAgZG8geyAKICAgIHQxPSgobWRwX3JlYWwpIC0xLjAvKCsraSkvKCsraSkpKnQx
KmEqYTsKICAgICAgdG1wKz10MTsKICB9IHdoaWxlIChtYXgodDEpPm1kcF9wcmVjaXNpb24pOwog
IHJldHVybiB0bXA7Cn0KCmlubGluZSBtZHBfY29tcGxleCB0cmFjZShjb25zdCBtZHBfbWF0cml4
JiBhKSB7CiNpZmRlZiBDSEVDS19BTEwKICBpZiAoYS5yb3dzKCkhPWEuY29scygpKSBlcnJvcigi
dHJhY2UoLi4uKVxuTWF0cml4IGlzIG5vdCBzcXVhcmVkIik7CiNlbmRpZgogIHJlZ2lzdGVyIHVp
bnQgYzsKICBtZHBfY29tcGxleCB4OwogIGZvcihjPTA7IGM8YS5jb2xzKCk7IGMrKykgeCs9YShj
LGMpOwogIHJldHVybiB4Owp9CgppbmxpbmUgbWRwX21hdHJpeCB0cmFuc3Bvc2UoY29uc3QgbWRw
X21hdHJpeCYgYSkgewogIG1kcF9tYXRyaXggdG1wKGEuY29scygpLCBhLnJvd3MoKSk7CiAgcmVn
aXN0ZXIgdWludCByLGM7CiAgZm9yKHI9MDsgcjxhLnJvd3MoKTsgcisrKSAKICAgIGZvcihjPTA7
IGM8YS5jb2xzKCk7IGMrKykgCiAgICAgIHRtcChjLHIpPWEocixjKTsKICByZXR1cm4gdG1wOwp9
CgppbmxpbmUgbWRwX21hdHJpeCBoZXJtaXRpYW4oY29uc3QgbWRwX21hdHJpeCYgYSkgewogIG1k
cF9tYXRyaXggdG1wKGEuY29scygpLCBhLnJvd3MoKSk7CiAgCiNpZiBkZWZpbmVkKE1BVFJJWF9T
U0UyKSAmJiBkZWZpbmVkKFVTRV9ET1VCTEVfUFJFQ0lTSU9OKQogIGlmKGEuY29scygpPT0zICYm
IGEucm93cygpPT0zKSB7CiAgICBfc3NlX2RvdWJsZV9oZXJtaXRpYW5fc3UzKChfc3NlX2RvdWJs
ZSopIHRtcC5hZGRyZXNzKCksCgkJCSAgICAgIChfc3NlX2RvdWJsZSopIGEuYWRkcmVzcygpKTsK
ICAgIHJldHVybiB0bXA7CiAgfQojZW5kaWYgIAogIHJlZ2lzdGVyIHVpbnQgcixjOwogIGZvcihy
PTA7IHI8YS5yb3dzKCk7IHIrKykgCiAgICBmb3IoYz0wOyBjPGEuY29scygpOyBjKyspIAogICAg
ICB0bXAoYyxyKT1jb25qKGEocixjKSk7CiAgcmV0dXJuIHRtcDsKfQoKCmlubGluZSBtZHBfbWF0
cml4IGNvbmooY29uc3QgbWRwX21hdHJpeCYgYSkgewogIG1kcF9tYXRyaXggdG1wKGEucm93cygp
LCBhLmNvbHMoKSk7CiAgcmVnaXN0ZXIgdWludCByLGM7CiAgZm9yKHI9MDsgcjxhLnJvd3MoKTsg
cisrKSAKICAgIGZvcihjPTA7IGM8YS5jb2xzKCk7IGMrKykgCiAgICAgIHRtcChyLGMpPWNvbmoo
YShyLGMpKTsKICByZXR1cm4gdG1wOwp9CgoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtZHBfbWF0cml4X2ZpZWxkLmgAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAMDEwMDY0NAAwMDMzMTI2ADAwMjQ0NjEAMDAwMDAwMDI3NDMA
MTAxNDMwMTMxNTYAMDE1MzE3ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAHVzdGFyICAATURpUGllcnJvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABta2dyb3VwLWwt
ZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vIEZp
bGU6ICAgICAgbWRwX21hdHJpeF9maWVsZC5oCi8vIFZlcnNpb246ICAgMi4zCi8vIERhdGU6ICAg
ICAgMS1PY3QtMjAwMgovLyBBdXRob3I6ICAgIE1hc3NpbW8gRGkgUGllcnJvIDxtZHBAbWV0YWNy
eXB0aW9uLmNvbT4KLy8gTGljZW5zZTogICBUaGlzIGZpbGUgaXMgZXhjbHVzaXZlIHByb3BlcnR5
IG9mIE1ldGFDcnlwdGlvbiBMTEMKLy8gICAgICAgICAgICBSZWFkIGF0dGFjaGVkIGxpY2Vuc2Ug
aW4gZmlsZSBtZHBfbGljZW5zZS5wZGYKLy8gICAgICAgICAgICBUaGlzIGZpbGUgY2Fubm90IGJl
IGRpc3RyaWJ1dGVkIHdpdGhvdXQgZmlsZSBtZHBfbGljZW5zZS5wZGYKLy8KLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KCmNsYXNzIG1kcF9tYXRyaXhfZmllbGQ6IHB1YmxpYyBtZHBfZmllbGQ8bWRwX2NvbXBs
ZXg+IHsKcHVibGljOgogIGludCByb3dzLCBjb2x1bW5zLCBpbWF4OwogIG1kcF9tYXRyaXhfZmll
bGQoKSB7CiAgICByb3dzPWNvbHVtbnM9aW1heD0wOwogICAgbWRwX2ZpZWxkPG1kcF9jb21wbGV4
Pjo6cmVzZXRfZmllbGQoKTsKICB9CiAgbWRwX21hdHJpeF9maWVsZChtZHBfbWF0cml4X2ZpZWxk
ICZmaWVsZCkgewogICAgbWRwX2ZpZWxkPG1kcF9jb21wbGV4Pjo6cmVzZXRfZmllbGQoKTsKICAg
IHJvd3M9ZmllbGQucm93czsKICAgIGNvbHVtbnM9ZmllbGQuY29sdW1uczsKICAgIGltYXg9Zmll
bGQuaW1heDsKICAgIGFsbG9jYXRlX2ZpZWxkKGZpZWxkLmxhdHRpY2UoKSxmaWVsZC5pbWF4KTsK
ICB9CiAgbWRwX21hdHJpeF9maWVsZChtZHBfbGF0dGljZSAmYSwgaW50IGksIGludCBqKSB7CiAg
ICBtZHBfZmllbGQ8bWRwX2NvbXBsZXg+OjpyZXNldF9maWVsZCgpOwogICAgcm93cz1pOwogICAg
Y29sdW1ucz1qOwogICAgaW1heD1pKmo7CiAgICBhbGxvY2F0ZV9maWVsZChhLGltYXgpOwogIH0K
ICB2b2lkIGFsbG9jYXRlX21kcF9tYXRyaXhfZmllbGQobWRwX2xhdHRpY2UgJmEsIGludCBpLCBp
bnQgaikgewogICAgZGVhbGxvY2F0ZV9maWVsZCgpOwogICAgcm93cz1pOwogICAgY29sdW1ucz1q
OwogICAgaW1heD1pKmo7CiAgICBhbGxvY2F0ZV9maWVsZChhLGltYXgpOwogIH0KICBtZHBfbWF0
cml4IG9wZXJhdG9yKCkgKG1kcF9zaXRlIHgpIHsKICAgIHJldHVybiBtZHBfbWF0cml4KGFkZHJl
c3MoeCkscm93cyxjb2x1bW5zKTsKICB9CiAgbWRwX2NvbXBsZXgmIG9wZXJhdG9yKCkgKG1kcF9z
aXRlIHgsIGludCBpLCBpbnQgaikgewogICAgcmV0dXJuIGFkZHJlc3MoeClbaSpjb2x1bW5zK2pd
OwogIH0KICBjb25zdCBtZHBfY29tcGxleCYgb3BlcmF0b3IoKSAobWRwX3NpdGUgeCwgaW50IGks
IGludCBqKSBjb25zdCB7CiAgICByZXR1cm4gYWRkcmVzcyh4KVtpKmNvbHVtbnMral07CiAgfQp9
OwoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1kcF9tYXRyaXhfb2xkLmgAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAwMTAwNjQ0ADAwMzMxMjYAMDAyNDQ2MQAwMDAwMDAzNjQ2NQAxMDE0
MzAxMzE1NgAwMTUwMjIAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAdXN0YXIgIABNRGlQaWVycm8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1rZ3JvdXAtbC1kAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gY2xhc3M6IG1k
cF9tYXRyaXggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCgp0ZW1wbGF0ZTxjbGFzcyBUPgpjbGFzcyBtZHBfbWF0cml4
IHsKcHJpdmF0ZToKICBlbnVtIHZhbHVlIHtGLFIsQyxIfSBGTEFHOwogIHVpbnQgcm93cywgY29s
cywgaW1heDsKICBUICptOwoKICBpbmxpbmUgaW50IHNnbih1aW50IGkpIHsgLy8gZWdjcyBkb2Vz
bid0IGxpa2Ugc3RhdGljLCByZW1vdmVkCiAgICBpZigoaSUyKT09MCkgcmV0dXJuIDE7CiAgICBl
bHNlICAgICAgICAgcmV0dXJuIC0xOwogIH0KCnB1YmxpYzogIAogIFQgKmFkZHJlc3MoKSB7CiAg
ICByZXR1cm4gbTsKICB9CiAgaW5saW5lIGZyaWVuZCBkb3VibGUgYWJzMihUIHgpIHsKICAgIHJl
dHVybiByZWFsKHgpKnJlYWwoeCktaW1hZyh4KSppbWFnKHgpOwogIH0KICAKcHVibGljOgogIGlu
bGluZSBtZHBfbWF0cml4KHVpbnQgcj0wLCB1aW50IGM9MCkgewogICAgRkxBRz1GOwogICAgbT0w
OwogICAgZGltZW5zaW9uKHIsYyk7CiAgfQogIGlubGluZSBtZHBfbWF0cml4KFQgKm0wLCB1aW50
IHIsIHVpbnQgYykgewogICAgRkxBRz1IOwogICAgbT1tMDsKICAgIGNvbHM9YzsKICAgIHJvd3M9
cjsKICAgIGltYXg9cipjOwogIH0KICBpbmxpbmUgbWRwX21hdHJpeChjb25zdCBtZHBfbWF0cml4
ICZhKSB7CiAgICAvL3JlZ2lzdGVyIHVpbnQgaTsgIEFXIC0gd2FzIHVudXNlZCB2YXJpYWJsZQog
ICAgY29scz1hLmNvbHM7CiAgICByb3dzPWEucm93czsKICAgIGltYXg9YS5pbWF4OwogICAgbT1h
Lm07ICAgIAogICAgc3dpdGNoKGEuRkxBRykgewogICAgY2FzZSBGOiBGTEFHPUM7IGJyZWFrOwog
ICAgY2FzZSBSOiBGTEFHPUY7IGJyZWFrOwogICAgY2FzZSBDOiBGTEFHPUM7IGJyZWFrOwogICAg
Y2FzZSBIOiBGTEFHPUg7IGJyZWFrOwogICAgfQogIH0gCgogIGlubGluZSB+bWRwX21hdHJpeCgp
IHsKICAgIGlmKChGTEFHPT1GKSAmJiAobSE9MCkpIHsKICAgICAgZGVsZXRlW10gbTsKICAgICAg
bT0wOwogICAgfQogIH0KICAKICBpbmxpbmUgdm9pZCBvcGVyYXRvcj0gKG1kcF9tYXRyaXggYSkg
ewogICAgcmVnaXN0ZXIgdW5zaWduZWQgbG9uZyBpOwogICAgc3dpdGNoKEZMQUcpIHsKICAgIGNh
c2UgSDoKICAgICAgZm9yKGk9MDsgaTxpbWF4OyBpKyspIG1baV09YS5tW2ldOwogICAgICBicmVh
azsKICAgIGNhc2UgRjoKICAgIGlmIChhLkZMQUc9PUYpIHsKCXJvd3M9YS5yb3dzOwoJY29scz1h
LmNvbHM7CglpbWF4PWEuaW1heDsKCWlmICgobSE9MCkgJiYgKG0hPWEubSkpIGRlbGV0ZVtdIG07
CgltPWEubTsKCWEubT0wOwogICAgICB9IGVsc2UgewoJaWYgKChyb3dzIT1hLnJvd3MpIHx8IChj
b2xzIT1hLmNvbHMpKSBkaW1lbnNpb24oYS5yb3dzLGEuY29scyk7Cglmb3IoaT0wOyBpPGltYXg7
IGkrKykgbVtpXT1hLm1baV07CiAgICAgIH0KICAgICAgYnJlYWs7CiAgICBjYXNlIEM6ICAgICAg
IAogICAgICByb3dzPWEucm93czsKICAgICAgY29scz1hLmNvbHM7CiAgICAgIGltYXg9YS5pbWF4
OwogICAgICBpZiAoYS5GTEFHPT1GKSB7CgltPWEubTsKCWEubT0wOwogICAgICB9IGVsc2UgewoJ
bT1uZXcgVFtpbWF4XTsKCWZvcihpPTA7IGk8aW1heDsgaSsrKSBtW2ldPWEubVtpXTsKICAgICAg
fQogICAgICBGTEFHPUY7CiAgICAgIGJyZWFrOwogICAgY2FzZSBSOiAKICAgICAgZXJyb3IoIldo
YXQgdGhlIEhlbGwgYXJlIHlvdSBkb2luZz8iKTsgCiAgICAgIGJyZWFrOwogICAgfQogIH0KICBp
bmxpbmUgdm9pZCBkaW1lbnNpb24odWludCByLCB1aW50IGMpIHsKICAgIHJlZ2lzdGVyIHVpbnQg
aTsKICAgIHJvd3M9cjsKICAgIGNvbHM9YzsKICAgIGltYXg9cipjOwogICAgaWYgKEZMQUc9PUgp
IGVycm9yKCJJIENhbm5vdCByZWRpbWVuc2lvbiBhbiBILXR5cGUgb2JqZWN0ISIpOwogICAgaWYg
KG0hPTApICAgIGRlbGV0ZVtdIG07CiAgICBpZiAoaW1heCE9MCkgbT1uZXcgVFtpbWF4XTsKICAg
IGVsc2UgICAgICAgICBtPTA7CiNpZm5kZWYgRE9fTk9UX1NFVF9UT19aRVJPICAgIAogICAgZm9y
KGk9MDsgaTxpbWF4OyBpKyspIG1baV09MDsKI2VuZGlmCiAgfSAgCgogIGlubGluZSBmcmllbmQg
dm9pZCBwcmVwYXJlIChtZHBfbWF0cml4ICZhKSB7CiAgICBUKiBtOwogICAgcmVnaXN0ZXIgdW5z
aWduZWQgbG9uZyBpOwogICAgc3dpdGNoKGEuRkxBRykgewogICAgY2FzZSBGOiBhLkZMQUc9Ujsg
YnJlYWs7CiAgICBjYXNlIFI6IAogICAgICBwcmludGYoIllvdSBzaG91ZCBub3QgY2FsbCBwcmVw
YXJlKCk7IHR3aWNlXG4iKTsgCiAgICAgIGJyZWFrOwogICAgZGVmYXVsdDogCiAgICAgIG09bmV3
IFRbYS5pbWF4XTsKICAgICAgZm9yKGk9MDsgaTxhLmltYXg7IGkrKykgbVtpXT1hLm1baV07CiAg
ICAgIGEubT1tOwogICAgICBhLkZMQUc9UjsKICAgICAgYnJlYWs7CiAgICB9CiAgfQoKICBpbmxp
bmUgdm9pZCBjb3B5X3RvX2FkZHJlc3MgKFQgKm0wKSB7CiAgICByZWdpc3RlciB1aW50IGk7CiAg
ICBmb3IoaT0wOyBpPGltYXg7IGkrKykKICAgICAgbTBbaV09bVtpXTsKICB9CgogIGlubGluZSB2
b2lkIGFzc2lnX3RvKG1kcF9tYXRyaXggYSkgewogICAgdWludCBpOwogICAgZm9yKGk9MDsgaTxp
bWF4OyBpKyspCiAgICAgIGEubVtpXT1tW2ldOwogIH0KICAKICBpbmxpbmUgVCAmb3BlcmF0b3Io
KSAodWludCByLCB1aW50IGMpIHsKICAgIHJldHVybiBtW2MrY29scypyXTsKICB9CiAgaW5saW5l
IG1kcF9tYXRyaXggb3BlcmF0b3IoKSAodWludCByKSB7CiAgICByZXR1cm4gbWRwX21hdHJpeCht
K3IqY29scyxjb2xzLDEpOwogIH0KICBpbmxpbmUgdWludCByb3dtYXgoKSB7CiAgICByZXR1cm4g
cm93czsKICB9CiAgaW5saW5lIHVpbnQgY29sbWF4KCkgewogICAgcmV0dXJuIGNvbHM7CiAgfQog
IGlubGluZSB1aW50IHNpemUoKSB7CiAgICByZXR1cm4gaW1heDsKICB9CiAgdGVtcGxhdGU8Y2xh
c3MgVDE+CiAgaW5saW5lIHZvaWQgb3BlcmF0b3I9IChUMSBpKSB7CiAgICByZWdpc3RlciB1aW50
IHIsYzsKICAgIGZvcihjPTA7IGM8Y29sczsgYysrKQogICAgICBmb3Iocj0wOyByPHJvd3M7IHIr
KykgewoJaWYoYz09cikgbVtjK2NvbHMqcl09KFQpIGk7CiAgICAgICAgZWxzZSAgICAgbVtjK2Nv
bHMqcl09MDsKICAgICAgfQogIH0KICB0ZW1wbGF0ZTxjbGFzcyBUMT4KICBpbmxpbmUgdm9pZCBv
cGVyYXRvcis9IChUMSBpKSB7CiAgICByZWdpc3RlciB1aW50IGM7CiAgICBmb3IoYz0wOyBjPGNv
bHM7IGMrKykKICAgICAgbVtjK2NvbHMqY10rPShUKSBpOwogIH0gICAgCgogIHRlbXBsYXRlPGNs
YXNzIFQxPiAgIAogIGlubGluZSB2b2lkIG9wZXJhdG9yLT0gKFQxIGkpIHsKICAgIHJlZ2lzdGVy
IHVpbnQgYzsKICAgIGZvcihjPTA7IGM8Y29sczsgYysrKQogICAgICBtW2MrY29scypjXS09KFQp
IGk7CiAgfSAgICAKCiAgLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKICAvLyBFeGFtcGxlIG9mIGEgRnVuY3Rpb24hCiAgLy8gKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAvLyAgZnJpZW5k
IG1kcF9tYXRyaXggZnVuY3Rpb25fbmFtZSAobWRwX21hdHJpeCBhLCBtZHBfbWF0cml4IGIsIC4u
LiApCiAgLy8gICB7CiAgLy8gIGlmIFt3cm9uZyBkaW1lbnNpb25zXSBlcnJvcigiV3JvbmcgZGlt
ZW5zaW9ucyBpbiBvcGVyYXRvcmZ1bmN0aW9uX25hbWUiKTsKICAvLyAgIG1kcF9tYXRyaXggdG1w
LCB0MSwgdDIsIHQzLCAuLi4gOyAgICAgICAgICAvLyBsb2NhbCB2YXJpYWJsZXMKICAvLwogIC8v
ICAgW2JvZHkgZnVuY3Rpb25dICAgICAgICAgCiAgLy8KICAvLyAgIHByZXBhcmUodG1wKTsgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIEltcG9ydGFudAogIC8vICAgcmV0dXJuIHRtcDsKICAv
LyAgIH0KICAvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKCiAgdGVtcGxhdGU8Y2xhc3MgVDE+CiAgIGlubGluZSBmcmllbmQgbWRw
X21hdHJpeCBvcGVyYXRvciArKFQxIGksIG1kcF9tYXRyaXggYSkgewogICAgcmVnaXN0ZXIgdWlu
dCBjLHI7CiNpZmRlZiBDSEVDS19BTEwKICAgIGlmIChhLnJvd3MhPWEucm93cykgZXJyb3IoIldy
b25nIGRpbWVuc2lvbnMgaW4gb3BlcmF0b3IrIik7CiNlbmRpZgogICAgbWRwX21hdHJpeCB0bXAo
YS5yb3dzLGEuY29scyk7CiAgICBmb3IoYz0wOyBjPGEuY29sczsgYysrKSB7CiAgICAgIGZvcihy
PTA7IHI8YS5yb3dzOyByKyspCgl0bXAocixjKT1hKHIsYyk7CiAgICAgIHRtcChjLGMpKz1pOwog
ICAgfQogICAgcHJlcGFyZSh0bXApOwogICAgcmV0dXJuIHRtcDsKICB9CgogIHRlbXBsYXRlPGNs
YXNzIFQxPgogICBpbmxpbmUgZnJpZW5kIG1kcF9tYXRyaXggb3BlcmF0b3IgLShUMSBpLCBtZHBf
bWF0cml4IGEpIHsKICAgIHJlZ2lzdGVyIHVpbnQgYyxyOwojaWZkZWYgQ0hFQ0tfQUxMCiAgICBp
ZiAoYS5yb3dzIT1hLnJvd3MpIGVycm9yKCJXcm9uZyBkaW1lbnNpb25zIGluIG9wZXJhdG9yLSIp
OwojZW5kaWYgCiAgICBtZHBfbWF0cml4IHRtcChhLnJvd3MsYS5jb2xzKTsKICAgIGZvcihjPTA7
IGM8YS5jb2xzOyBjKyspIHsKICAgICAgZm9yKHI9MDsgcjxhLnJvd3M7IHIrKykKCXRtcChyLGMp
PS1hKHIsYyk7CiAgICAgIHRtcChjLGMpKz1pOwogICAgfQogICAgcHJlcGFyZSh0bXApOwogICAg
cmV0dXJuIHRtcDsKICB9CiAgCiAgdGVtcGxhdGU8Y2xhc3MgVDE+CiAgIGlubGluZSBmcmllbmQg
bWRwX21hdHJpeCBvcGVyYXRvciArKG1kcF9tYXRyaXggYSwgVDEgaSkgewogICAgcmVnaXN0ZXIg
dWludCBjLHI7CiNpZmRlZiBDSEVDS19BTEwKICAgIGlmIChhLnJvd3MhPWEucm93cykgZXJyb3Io
Ildyb25nIGRpbWVuc2lvbnMgaW4gb3BlcmF0b3IrIik7CiNlbmRpZiAKICAgIG1kcF9tYXRyaXgg
dG1wKGEucm93cyxhLmNvbHMpOwogICAgZm9yKGM9MDsgYzxhLmNvbHM7IGMrKykgewogICAgICBm
b3Iocj0wOyByPGEucm93czsgcisrKQoJdG1wKHIsYyk9YShyLGMpOwogICAgICB0bXAoYyxjKSs9
aTsKICAgIH0KICAgIHByZXBhcmUodG1wKTsKICAgIHJldHVybiB0bXA7CiAgfQoKICB0ZW1wbGF0
ZTxjbGFzcyBUMT4KICAgaW5saW5lIGZyaWVuZCBtZHBfbWF0cml4IG9wZXJhdG9yIC0obWRwX21h
dHJpeCBhLCBUMSBpKSB7CiAgICByZWdpc3RlciB1aW50IGMscjsKI2lmZGVmIENIRUNLX0FMTAog
ICAgaWYgKGEucm93cyE9YS5yb3dzKSBlcnJvcigiV3JvbmcgZGltZW5zaW9ucyBpbiBvcGVyYXRv
ci0iKTsKI2VuZGlmIAogICAgbWRwX21hdHJpeCB0bXAoYS5yb3dzLGEuY29scyk7CiAgICBmb3Io
Yz0wOyBjPGEuY29sczsgYysrKSB7CiAgICAgIGZvcihyPTA7IHI8YS5yb3dzOyByKyspCgl0bXAo
cixjKT1hKHIsYyk7CiAgICAgIHRtcChjLGMpLT1pOwogICAgfQogICAgcHJlcGFyZSh0bXApOwog
ICAgcmV0dXJuIHRtcDsKICB9CiAgCiAgIGlubGluZSBmcmllbmQgbWRwX21hdHJpeCBvcGVyYXRv
ciArKG1kcF9tYXRyaXggYSwgbWRwX21hdHJpeCBiKSB7CiNpZmRlZiBDSEVDS19BTEwKICAgIGlm
ICgoYS5yb3dzIT1iLnJvd3MpIHx8IChhLmNvbHMhPWIuY29scykpIAogICAgICBlcnJvcigiV3Jv
bmcgZGltZW5zaW9ucyBpbiBvcGVyYXRvcisiKTsKI2VuZGlmCiAgICBtZHBfbWF0cml4IHRtcChh
LnJvd3MsYS5jb2xzKTsKICAgIHJlZ2lzdGVyIHVpbnQgaTsKICAgIGZvcihpPTA7IGk8YS5pbWF4
OyBpKyspIHRtcC5tW2ldPWEubVtpXStiLm1baV07CiAgICBwcmVwYXJlKHRtcCk7CiAgICByZXR1
cm4gdG1wOwogIH0KICAKICBpbmxpbmUgdm9pZCBvcGVyYXRvcis9KG1kcF9tYXRyaXggYikgewoj
aWZkZWYgQ0hFQ0tfQUxMCiAgICBpZiAoKHJvd3MhPWIucm93cykgfHwgKGNvbHMhPWIuY29scykp
IAogICAgICBlcnJvcigiV3JvbmcgZGltZW5zaW9ucyBpbiBvcGVyYXRvcis9Iik7CiNlbmRpZgog
ICAgcmVnaXN0ZXIgdWludCBpOwogICAgZm9yKGk9MDsgaTxpbWF4OyBpKyspIG1baV0rPWIubVtp
XTsKICB9CgogICBpbmxpbmUgZnJpZW5kIG1kcF9tYXRyaXggb3BlcmF0b3IgLShtZHBfbWF0cml4
IGEsIG1kcF9tYXRyaXggYikgewojaWZkZWYgQ0hFQ0tfQUxMCiAgICAgaWYgKChhLnJvd3MhPWIu
cm93cykgfHwgKGEuY29scyE9Yi5jb2xzKSkgCiAgICAgICBlcnJvcigiV3JvbmcgZGltZW5zaW9u
cyBpbiBvcGVyYXRvci0iKTsKI2VuZGlmCiAgICAgbWRwX21hdHJpeCB0bXAoYS5yb3dzLGEuY29s
cyk7CiAgICAgcmVnaXN0ZXIgdWludCBpOwogICAgIGZvcihpPTA7IGk8YS5pbWF4OyBpKyspIHRt
cC5tW2ldPWEubVtpXS1iLm1baV07CiAgICAgcHJlcGFyZSh0bXApOwogICAgIHJldHVybiB0bXA7
CiAgIH0KCiAgaW5saW5lIHZvaWQgb3BlcmF0b3ItPShtZHBfbWF0cml4IGIpIHsKI2lmZGVmIENI
RUNLX0FMTAogICAgaWYgKChyb3dzIT1iLnJvd3MpIHx8IChjb2xzIT1iLmNvbHMpKSAKICAgICAg
ZXJyb3IoIldyb25nIGRpbWVuc2lvbnMgaW4gb3BlcmF0b3ItPSIpOwojZW5kaWYKICAgIHJlZ2lz
dGVyIHVpbnQgaTsKICAgIGZvcihpPTA7IGk8aW1heDsgaSsrKSBtW2ldLT1iLm1baV07CiAgfQog
IAogICBpbmxpbmUgZnJpZW5kIG1kcF9tYXRyaXggb3BlcmF0b3IgKihtZHBfbWF0cml4IGEsIG1k
cF9tYXRyaXggYikgewojaWZkZWYgQ0hFQ0tfQUxMCiAgICAgIGlmIChhLmNvbHMhPWIucm93cykg
ZXJyb3IgKCIqIik7CiNlbmRpZgogICAgICBtZHBfbWF0cml4IHRtcChhLnJvd3MsYi5jb2xzKTsK
ICAgICAgcmVnaXN0ZXIgdWludCByLGMsazsKICAgICAgZm9yKHI9MDsgcjxhLnJvd3M7IHIrKykK
CWZvcihjPTA7IGM8Yi5jb2xzOyBjKyspIHsKCSAgdG1wKHIsYyk9MDsKCSAgZm9yKGs9MDsgazxh
LmNvbHM7IGsrKykgdG1wKHIsYykrPShUKSBhKHIsaykqYihrLGMpOwoJICB9CiAgICAgIHByZXBh
cmUodG1wKTsKICAgICAgcmV0dXJuIHRtcDsKICAgICAgfQoKICAgaW5saW5lIGZyaWVuZCBtZHBf
bWF0cml4IG11bF9sZWZ0KG1kcF9tYXRyaXggYSwgbWRwX21hdHJpeCBiKSB7CiNpZmRlZiBDSEVD
S19BTEwKICAgICAgaWYgKGEuY29scyE9Yi5jb2xzKSBlcnJvciAoIioiKTsKI2VuZGlmCiAgICAg
IG1kcF9tYXRyaXggdG1wKGIucm93cyxhLnJvd3MpOwogICAgICByZWdpc3RlciB1aW50IHIsYyxr
OwogICAgICBmb3Iocj0wOyByPGIucm93czsgcisrKQoJZm9yKGM9MDsgYzxhLnJvd3M7IGMrKykg
ewoJICB0bXAocixjKT0wOwoJICBmb3Ioaz0wOyBrPGEuY29sczsgaysrKSB0bXAocixjKSs9YShj
LGspKmIocixrKTsKCSAgfQogICAgICBwcmVwYXJlKHRtcCk7CiAgICAgIHJldHVybiB0bXA7CiAg
ICAgIH0KCiAgIHRlbXBsYXRlPGNsYXNzIFQxPgogICBpbmxpbmUgZnJpZW5kIG1kcF9tYXRyaXgg
b3BlcmF0b3IqIChUMSB4LCBtZHBfbWF0cml4IGEpIHsKICAgICAgbWRwX21hdHJpeCB0bXAoYS5y
b3dzLGEuY29scyk7CiAgICAgIHJlZ2lzdGVyIHVpbnQgaTsKICAgICAgZm9yKGk9MDsgaTxhLmlt
YXg7IGkrKykgdG1wLm1baV09eCphLm1baV07CiAgICAgIHByZXBhcmUodG1wKTsKICAgICAgcmV0
dXJuIHRtcDsKICAgICAgfQogICB0ZW1wbGF0ZTxjbGFzcyBUMT4KICAgaW5saW5lIGZyaWVuZCBt
ZHBfbWF0cml4IG9wZXJhdG9yKiAobWRwX21hdHJpeCBhLCBUMSB4KSB7CiAgICAgIG1kcF9tYXRy
aXggdG1wKGEucm93cyxhLmNvbHMpOwogICAgICByZWdpc3RlciB1aW50IGk7CiAgICAgIGZvcihp
PTA7IGk8YS5pbWF4OyBpKyspIHRtcC5tW2ldPXgqKChUKSBhLm1baV0pOwogICAgICBwcmVwYXJl
KHRtcCk7CiAgICAgIHJldHVybiB0bXA7CiAgICAgIH0KCiAgIHRlbXBsYXRlPGNsYXNzIFQxPgog
ICBpbmxpbmUgdm9pZCBvcGVyYXRvcio9IChUMSB4KSB7CiAgICAgIHJlZ2lzdGVyIHVpbnQgaTsK
ICAgICAgZm9yKGk9MDsgaTxpbWF4OyBpKyspIG1baV0qPXg7CiAgICAgIH0KICAgdGVtcGxhdGU8
Y2xhc3MgVDE+CiAgIGlubGluZSB2b2lkIG9wZXJhdG9yLz0gKFQxIHgpIHsKICAgICAgcmVnaXN0
ZXIgdWludCBpOwogICAgICBmb3IoaT0wOyBpPGltYXg7IGkrKykgbVtpXS89eDsKICAgICAgfQoK
ICAgdGVtcGxhdGU8Y2xhc3MgVDE+CiAgIGlubGluZSBmcmllbmQgbWRwX21hdHJpeCBvcGVyYXRv
ciAvKG1kcF9tYXRyaXggYSwgVDEgeCkgewogICAgICBtZHBfbWF0cml4IHRtcChhLnJvd3MsIGEu
Y29scyk7CiAgICAgIHJlZ2lzdGVyIHVpbnQgaTsKICAgICAgZm9yKGk9MDsgaTxhLmltYXg7IGkr
KykgdG1wLm1baV09YS5tW2ldL3g7CiAgICAgIHByZXBhcmUodG1wKTsKICAgICAgcmV0dXJuIHRt
cDsKICAgICAgfQogICAgICAKICAgdGVtcGxhdGU8Y2xhc3MgVDE+CiAgIGlubGluZSBmcmllbmQg
bWRwX21hdHJpeCBvcGVyYXRvciAvKFQxIHgsIG1kcF9tYXRyaXggYSkgewogICAgIG1kcF9tYXRy
aXggdG1wOwogICAgIHRtcD14KmludihhKTsKICAgICBwcmVwYXJlKHRtcCk7CiAgICAgcmV0dXJu
IHRtcDsKICAgfQogICAKICAgaW5saW5lIGZyaWVuZCBtZHBfbWF0cml4IHN1Ym1hdHJpeCAobWRw
X21hdHJpeCBhLCB1aW50IGksIHVpbnQgaikgewojaWZkZWYgQ0hFQ0tfQUxMCiAgICAgaWYgKCgo
YS5yb3dzPDIpIHx8IChhLmNvbHM8MikpIHx8IAoJICgoYS5yb3dzLTE8aSkgfHwgKGEuY29scy0x
PGopKSkgZXJyb3IoIldyb25nIGRpbWVuc2lvbnMgaW4gc3VibWF0cml4Iik7CiNlbmRpZgogICAg
ICBtZHBfbWF0cml4IHRtcChhLnJvd3MtMSxhLmNvbHMtMSk7CiAgICAgIHJlZ2lzdGVyIHVpbnQg
cixjOwogICAgICBmb3Iocj0wOyByPGk7IHIrKykgICAgICAgIAoJZm9yKGM9MDsgYzxqOyBjKysp
ICAgICAgICB0bXAocixjKSAgPWEocixjKTsKICAgICAgZm9yKHI9aSsxOyByPGEucm93czsgcisr
KSAKCWZvcihjPTA7IGM8ajsgYysrKSAgICAgICAgdG1wKHItMSxjKT1hKHIsYyk7CiAgICAgIGZv
cihyPTA7IHI8aTsgcisrKSAgICAgICAgCglmb3IoYz1qKzE7IGM8YS5jb2xzOyBjKyspIHRtcChy
LGMtMSk9YShyLGMpOwogICAgICBmb3Iocj1pKzE7IHI8YS5yb3dzOyByKyspIAoJZm9yKGM9aisx
OyBjPGEuY29sczsgYysrKSB0bXAoci0xLGMtMSk9YShyLGMpOyAgCiAgICAgIHByZXBhcmUodG1w
KTsKICAgICAgcmV0dXJuIHRtcDsKICAgICAgfQoKICBmcmllbmQgVCBkZXQobWRwX21hdHJpeCBh
KSB7CiNpZmRlZiBDSEVDS19BTEwKICAgIGlmIChhLnJvd3MhPWEuY29scykgZXJyb3IoIldyb25n
IGRpbWVuc2lvbnMgaW4gZGV0KCkiKTsKI2VuZGlmCiAgICBpZiAoYS5yb3dzPT0wKSByZXR1cm4g
MDsKICAgIGlmIChhLnJvd3M9PTEpIHJldHVybiBhKDAsMCk7CiAgICByZWdpc3RlciB1aW50IGks
aixrLGw7CiAgICBtZHBfbWF0cml4IEE7CiAgICBBPWE7CiAgICBUIHRtcCwgcGl2b3QsIHg9VCgx
LDApOwogICAgZm9yKGk9MDsgaTxBLmNvbHM7IGkrKykgewogICAgICBmb3Ioaj1pOyAoQShpLGop
PT1UKDAsMCkpICYmIChqPEEuY29scyk7IGorKyk7CiAgICAgIGlmIChqPT1BLmNvbHMpIHJldHVy
biAwOwogICAgICBpZiAoaSE9aikgewoJZm9yKGs9MDsgazxBLnJvd3M7IGsrKykgewoJICB0bXA9
QShrLGopOwoJICBBKGssaik9QShrLGkpOwoJICBBKGssaSk9dG1wOwoJfQoJeCo9LUEoaSxpKTsK
ICAgICAgfSBlbHNlIHgqPUEoaSxpKTsKICAgICAgZm9yKGs9aSsxOyBrPEEucm93czsgaysrKSB7
CglwaXZvdD1BKGssaSkvQShpLGkpOwoJZm9yKGw9aTsgbDxBLmNvbHM7IGwrKykgQShrLGwpLT1w
aXZvdCpBKGksbCk7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiB4OwogICB9CgogICBmcmllbmQg
bWRwX21hdHJpeCBpbnYobWRwX21hdHJpeCBhKSB7CiNpZmRlZiBDSEVDS19BTEwKICAgICAgaWYg
KChhLnJvd3MhPWEuY29scykgfHwgKGEucm93cz09MCkpIGVycm9yKCJXcm9uZyBkaW1lbnNpb25z
IGluIGludigpIik7CiNlbmRpZgogICAgICBtZHBfbWF0cml4IHRtYSwgdG1wOwogICAgICBUIHgs
cGl2b3Q7CiAgICAgIHJlZ2lzdGVyIHVpbnQgcixjLGkscm1heDsKICAgICAgdG1hPWE7CiAgICAg
IHRtcC5zZXRfaWRlbnRpdHkoYS5yb3dzKTsKICAgICAgZm9yKGM9MDsgYzxhLmNvbHM7IGMrKykg
ewoJcm1heD1jOwoJcGl2b3Q9dG1hKGMsYyk7Cglmb3Iocj1jKzE7IHI8YS5yb3dzOyByKyspIAoJ
ICBpZihhYnModG1hKHIsYykpPmFicyhwaXZvdCkpIHsKCSAgICBybWF4PXI7CgkgICAgcGl2b3Q9
dG1hKHIsYyk7CgkgIH0KCWZvcihpPTA7IGk8YS5jb2xzOyBpKyspIHsKCSAgeD10bWEocm1heCxp
KTsKCSAgdG1hKHJtYXgsaSk9dG1hKGMsaSk7CgkgIHRtYShjLGkpPXgvcGl2b3Q7CgkgIHg9dG1w
KHJtYXgsaSk7CgkgIHRtcChybWF4LGkpPXRtcChjLGkpOwoJICB0bXAoYyxpKT14L3Bpdm90OwoJ
fQoJZm9yKHI9MDsgcjxhLnJvd3M7IHIrKykgCgkgIGlmKHIhPWMpIHsKCSAgICBwaXZvdD10bWEo
cixjKTsKCSAgICBmb3IoaT0wOyBpPGEuY29sczsgaSsrKSB7CgkgICAgICB0bWEocixpKS09cGl2
b3QqdG1hKGMsaSk7CgkgICAgICB0bXAocixpKS09cGl2b3QqdG1wKGMsaSk7CgkgICAgfQoJICB9
CiAgICAgIH0KICAgICAgcHJlcGFyZSh0bXApOwogICAgICByZXR1cm4gdG1wOwogIH0KCiAgIGZy
aWVuZCBtZHBfbWF0cml4IG9wZXJhdG9yIC8obWRwX21hdHJpeCBhLCBtZHBfbWF0cml4IGIpIHsK
ICAgIG1kcF9tYXRyaXggdG1wOwogICAgdG1wPWEqaW52KGIpOwogICAgcHJlcGFyZSh0bXApOwog
ICAgcmV0dXJuIHRtcDsKICAgIH0KICAgIAogICBmcmllbmQgbWRwX21hdHJpeCBwb3cobWRwX21h
dHJpeCBhLCBpbnQgaSkgewojaWZkZWYgQ0hFQ0tfQUxMCiAgICBpZiAoYS5yb3dzIT1hLmNvbHMp
IGVycm9yKCJXcm9uZyBkaW1lbnNpb25zIGluIHBvdygpIik7CiNlbmRpZgogICAgbWRwX21hdHJp
eCB0bXA7CiAgICB0bXAuc2V0X2lkZW50aXR5KGEuY29scyk7CiAgICBpbnQgaj0oaTwwKT8taTpp
OwogICAgZm9yKDtqPjA7IGotLSkgdG1wPXRtcCphOwogICAgaWYgKGk8MCkgdG1wPWludih0bXAp
OwogICAgcHJlcGFyZSh0bXApOwogICAgcmV0dXJuIHRtcDsKICAgIH0KCQogICBmcmllbmQgbWRw
X21hdHJpeCBleHAobWRwX21hdHJpeCBhKSB7CiNpZmRlZiBDSEVDS19BTEwKICAgIGlmIChhLnJv
d3MhPWEuY29scykgZXJyb3IoIldyb25nIGRpbWVuc2lvbnMgaW4gZXhwKCkiKTsKI2VuZGlmCiAg
ICBtZHBfbWF0cml4IHRtcDsKICAgIG1kcF9tYXRyaXggdGVybTsKICAgIHJlZ2lzdGVyIGludCBp
PTE7CiAgICB0ZXJtPWE7CiAgICB0bXAuc2V0X2lkZW50aXR5KGEucm93cyk7CiAgICB0bXArPWE7
CiAgICBkbyB7CiAgICAgIHRlcm09dGVybSphKigoVCkgMS4vKytpKTsKICAgICAgdG1wKz10ZXJt
OwogICAgfSB3aGlsZSAobWF4KHRlcm0pPlBSRUNJU0lPTik7CiAgICBwcmVwYXJlKHRtcCk7CiAg
ICByZXR1cm4gdG1wOwogICAgfQoKICAgZnJpZW5kIG1kcF9tYXRyaXggZXhwKG1kcF9tYXRyaXgg
YSwgaW50IE5rKSB7CiNpZmRlZiBDSEVDS19BTEwKICAgIGlmIChhLnJvd3MhPWEuY29scykgZXJy
b3IoIldyb25nIGRpbWVuc2lvbnMgaW4gZXhwKCkiKTsKI2VuZGlmCiAgICBtZHBfbWF0cml4IHRt
cDsKICAgIHJlZ2lzdGVyIGludCBpPTEsazsKICAgIG1kcF9tYXRyaXggdGVybTsKICAgIHRlcm09
YTsKICAgIHRtcC5zZXRfaWRlbnRpdHkoYS5yb3dzKTsKICAgIHRtcCs9YTsKICAgIGZvcihrPTA7
IGs8Tms7IGsrKykgewogICAgICB0ZXJtPXRlcm0qYSooKFQpMS4vKytpKTsKICAgICAgdG1wKz10
ZXJtOwogICAgfQogICAgcHJlcGFyZSh0bXApOwogICAgcmV0dXJuIHRtcDsKICAgIH0KCiAgIGZy
aWVuZCBtZHBfbWF0cml4IGxvZyhtZHBfbWF0cml4IGEpIHsKI2lmZGVmIENIRUNLX0FMTAogICAg
aWYgKGEucm93cyE9YS5jb2xzKSBlcnJvcigiV3JvbmcgZGltZW5zaW9ucyBpbiBsb2coKSIpOwoj
ZW5kaWYKICAgIG1kcF9tYXRyaXggdG1wLGIsYyx0MTsKICAgIHJlZ2lzdGVyIGludCBpPTEsIGo9
MTsKICAgIGIuc2V0X2lkZW50aXR5KGEuY29scyk7ICAgCiAgICBiPWEtYjsKICAgIGM9YjsKICAg
IHRtcD1iOwogICAgZG8geyAKICAgICAgYz1jKmI7CiAgICAgIHQxPSgoVCkoaT0taSkvKGorPTEp
KSpjOwogICAgICB0bXArPXQxOwogICAgICB9IHdoaWxlIChtYXgodDEpPlBSRUNJU0lPTik7CiAg
ICBwcmVwYXJlKHRtcCk7CiAgICByZXR1cm4gdG1wOwogICAgfQoKICAgZnJpZW5kIG1kcF9tYXRy
aXggc2luKG1kcF9tYXRyaXggYSkgewojaWZkZWYgQ0hFQ0tfQUxMCiAgICBpZiAoYS5yb3dzIT1h
LmNvbHMpIGVycm9yKCJXcm9uZyBkaW1lbnNpb25zIGluIHNpbigpIik7CiNlbmRpZgogICAgbWRw
X21hdHJpeCB0bXAsIHQxOwogICAgcmVnaXN0ZXIgaW50IGk9MTsKICAgIHQxPWE7CiAgICB0bXA9
dDE7CiAgICAvL3ByaW50ZigiXG4iKTsKICAgIGRvIHsgCiAgICAgIHQxPXQxKmEqYSooKFQpIC0x
LjAvKCsraSkvKCsraSkpOwogICAgICB0bXArPXQxOwogICAgICB9IHdoaWxlIChtYXgodDEpPlBS
RUNJU0lPTik7CiAgICBwcmVwYXJlKHRtcCk7CiAgICByZXR1cm4gdG1wOwogICAgfQoKICAgZnJp
ZW5kIG1kcF9tYXRyaXggY29zKG1kcF9tYXRyaXggYSkgewojaWZkZWYgQ0hFQ0tfQUxMCiAgICBp
ZiAoYS5yb3dzIT1hLmNvbHMpIGVycm9yKCJXcm9uZyBkaW1lbnNpb25zIGluIGNvcygpIik7CiNl
bmRpZgogICAgbWRwX21hdHJpeCB0bXAsdDE7CiAgICByZWdpc3RlciBpbnQgaT0wOwogICAgdDEu
c2V0X2lkZW50aXR5KGEucm93cyk7CiAgICB0bXA9dDE7CiAgICAvL3ByaW50ZigiXG4iKTsKICAg
IGRvIHsgCiAgICAgIHQxPXQxKmEqYSooKFQpIC0xLjAvKCsraSkvKCsraSkpOwogICAgICB0bXAr
PXQxOwogICAgICB9IHdoaWxlIChtYXgodDEpPlBSRUNJU0lPTik7CiAgICBwcmVwYXJlKHRtcCk7
CiAgICByZXR1cm4gdG1wOwogICAgfQogICAKICAgZnJpZW5kIGRvdWJsZSBtYXgobWRwX21hdHJp
eCBhKSB7CiAgICByZWdpc3RlciB1aW50IGk7CiAgICByZWdpc3RlciBkb3VibGUgeD0wLHk9MDsK
ICAgIGZvcihpPTA7IGk8YS5pbWF4OyBpKyspIGlmICgoeT1hYnMoYS5tW2ldKSk+eCkgeD15Owog
ICAgcmV0dXJuIHg7CiAgICB9CiAKICAgaW5saW5lIGZyaWVuZCBUIHRyYWNlKG1kcF9tYXRyaXgg
YSkgewojaWZkZWYgQ0hFQ0tfQUxMCiAgICBpZiAoYS5yb3dzIT1hLmNvbHMpIGVycm9yICgidHJh
Y2UoKSIpOwojZW5kaWYKICAgIHJlZ2lzdGVyIHVpbnQgYzsKICAgIFQgeDsKICAgIGZvcihjPTA7
IGM8YS5jb2xzOyBjKyspIHgrPWEoYyxjKTsKICAgIHJldHVybiB4OwogICAgfQogCiAgIGZyaWVu
ZCB2b2lkIHByaW50KG1kcF9tYXRyaXggYSkgewogICAgdWludCBpLGo7IC8vIEFXIC0gdW5zaWdu
ZWQgYWRkZWQKICAgIGZvcihpPTA7IGk8YS5yb3dzOyBpKyspIHsKICAgICAgaWYoaT09MCkgcHJp
bnRmKCJbWyIpOwogICAgICBlbHNlICAgICBwcmludGYoIiBbIik7CiAgICAgIGZvcihqPTA7IGo8
YS5jb2xzOyBqKyspIAoJcHJpbnRmKCIgJWUgKyAlZWkgIixyZWFsKGEoaSxqKSksaW1hZyhhKGks
aikpKTsKICAgICAgaWYoaT09KGEucm93cy0xKSkgcHJpbnRmKCJdXVxuIik7CiAgICAgIGVsc2Ug
ICAgICAgICAgICAgIHByaW50ZigiXSBcbiIpOwogICAgfQogICB9CgogICB2b2lkIHNldF9pZGVu
dGl0eSh1aW50IGkpIHsKICAgICBpZihyb3dzIT1pIHx8IGNvbHMhPWkpCiAgICAgICAoKnRoaXMp
LmRpbWVuc2lvbihpLGkpOwogICAgIHJlZ2lzdGVyIHVpbnQgcixjOwogICAgIGZvcihyPTA7IHI8
aTsgcisrKQogICAgICAgZm9yKGM9MDsgYzxpOyBjKyspCgkgKCp0aGlzKShyLGMpPShyPT1jKT8o
KFQpIDEpOigoVCkgMCk7CiAgIH0KCiAgIHZvaWQgc2V0X3plcm8odWludCBpKSB7CiAgICAgaWYo
cm93cyE9aSB8fCBjb2xzIT1pKQogICAgICAgKCp0aGlzKS5kaW1lbnNpb24oaSxpKTsKICAgICBy
ZWdpc3RlciB1aW50IHIsYzsKICAgICBmb3Iocj0wOyByPGk7IHIrKykKICAgICAgIGZvcihjPTA7
IGM8aTsgYysrKQoJICgqdGhpcykocixjKT0wOwogICB9Cgp9OwoKCnRlbXBsYXRlPGNsYXNzIFQ+
CmlubGluZSBtZHBfbWF0cml4PFQ+IHRyYW5zcG9zZShtZHBfbWF0cml4PFQ+IGEpIHsKICBtZHBf
bWF0cml4PFQ+IHRtcChhLmNvbG1heCgpLCBhLnJvd21heCgpKTsKICByZWdpc3RlciB1aW50IHIs
YzsKICBmb3Iocj0wOyByPGEucm93bWF4KCk7IHIrKykgCiAgICBmb3IoYz0wOyBjPGEuY29sbWF4
KCk7IGMrKykgCiAgICAgIHRtcChjLHIpPWEocixjKTsKICBwcmVwYXJlKHRtcCk7CiAgcmV0dXJu
IHRtcDsKfQoKdGVtcGxhdGU8Y2xhc3MgVD4KaW5saW5lIG1kcF9tYXRyaXg8bWRwX2NvbXBsZXg8
VD4gPiBoZXJtaXRpYW4obWRwX21hdHJpeDxtZHBfY29tcGxleDxUPiA+IGEpIHsKICBtZHBfbWF0
cml4PG1kcF9jb21wbGV4PFQ+ID4gdG1wKGEuY29sbWF4KCksIGEucm93bWF4KCkpOwogIHJlZ2lz
dGVyIHVpbnQgcixjOwogIGZvcihyPTA7IHI8YS5yb3dtYXgoKTsgcisrKSAKICAgIGZvcihjPTA7
IGM8YS5jb2xtYXgoKTsgYysrKSAKICAgICAgdG1wKGMscik9Y29uaihhKHIsYykpOwogIHByZXBh
cmUodG1wKTsKICByZXR1cm4gdG1wOwp9Cgp0ZW1wbGF0ZTxjbGFzcyBUPgppbmxpbmUgbWRwX21h
dHJpeDxtZHBfY29tcGxleDxUPiA+IGNvbmoobWRwX21hdHJpeDxtZHBfY29tcGxleDxUPiA+IGEp
IHsKICBtZHBfbWF0cml4PG1kcF9jb21wbGV4PFQ+ID4gdG1wKGEucm93bWF4KCksIGEuY29sbWF4
KCkpOwogIHJlZ2lzdGVyIHVpbnQgcixjOwogIGZvcihyPTA7IHI8YS5yb3dtYXgoKTsgcisrKSAK
ICAgIGZvcihjPTA7IGM8YS5jb2xtYXgoKTsgYysrKSAKICAgICAgdG1wKHIsYyk9Y29uaihhKHIs
YykpOwogIHByZXBhcmUodG1wKTsKICByZXR1cm4gdG1wOwp9Cgp0ZW1wbGF0ZTxjbGFzcyBULCBj
bGFzcyBUMT4KICB2b2lkIHJlcGxpY2F0ZShtZHBfbWF0cml4PFQ+ICZhLCBtZHBfbWF0cml4PFQx
PiBiKSB7CiAgYS5kaW1lbnNpb24oYi5yb3dtYXgoKSwgYi5jb2xtYXgoKSk7CiAgcmVnaXN0ZXIg
dWludCByLGM7CiAgZm9yKHI9MDsgcjxhLnJvd21heCgpOyByKyspCiAgICBmb3IoYz0wOyBjPGEu
Y29sbWF4KCk7IGMrKykKICAgICAgYShyLGMpPShUKSBiKHIsYyk7IAp9CgojaWZuZGVmIFZDX0NP
TVBJTEVSCnRlbXBsYXRlPGNsYXNzIFQ+ICAKbWRwX21hdHJpeDxUPiBpZGVudGl0eSh1aW50IGkp
IHsKICBtZHBfbWF0cml4PFQ+IHRtcChpLGkpOwogIHJlZ2lzdGVyIHVpbnQgcixjOwogIGZvcihy
PTA7IHI8aTsgcisrKQogICAgZm9yKGM9MDsgYzxpOyBjKyspCiAgICAgIHRtcChyLGMpPShyPT1j
KT8oKFQpIDEpOigoVCkgMCk7CiAgcHJlcGFyZSh0bXApOwogIHJldHVybiB0bXA7Cn0KCnRlbXBs
YXRlPGNsYXNzIFQ+Cm1kcF9tYXRyaXg8VD4gemVybyh1aW50IGkpIHsKICBtZHBfbWF0cml4PFQ+
IHRtcChpLGkpOwogIHJlZ2lzdGVyIHVpbnQgcixjOwogIGZvcihyPTA7IHI8aTsgcisrKQogICAg
Zm9yKGM9MDsgYzxpOyBjKyspCiAgICAgIHRtcChyLGMpPShUKSAwOwogIHByZXBhcmUodG1wKTsK
ICByZXR1cm4gdG1wOwp9CiNlbmRpZgoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABt
ZHBfbWF0cml4X3Rlc3QuaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDEwMDY0NAAwMDMzMTI2
ADAwMjQ0NjEAMDAwMDAwMDI3NDcAMTAxNDMwMTMxNTYAMDE1MjE3ACAwAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAATURpUGllcnJvAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAABta2dyb3VwLWwtZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8v
IFZlcnNpb246ICAgMi4zCi8vIERhdGU6ICAgICAgMS1PY3QtMjAwMgovLyBBdXRob3I6ICAgIE1h
c3NpbW8gRGkgUGllcnJvIDxtZHBAbWV0YWNyeXB0aW9uLmNvbT4KLy8gTGljZW5zZTogICBUaGlz
IGZpbGUgaXMgZXhjbHVzaXZlIHByb3BlcnR5IG9mIE1ldGFDcnlwdGlvbiBMTEMKLy8gICAgICAg
ICAgICBSZWFkIGF0dGFjaGVkIGxpY2Vuc2UgaW4gZmlsZSBtZHBfbGljZW5zZS5wZGYKLy8gICAg
ICAgICAgICBUaGlzIGZpbGUgY2Fubm90IGJlIGRpc3RyaWJ1dGVkIHdpdGhvdXQgZmlsZSBtZHBf
bGljZW5zZS5wZGYKLy8KYm9vbCBtZHBfbWF0cml4X3Rlc3QoKSB7CiAgbWRwX21hdHJpeCBhKDMs
MyksIGIsIGM7CgogIGI9YTsKICBhPWErYjsgLy9SYW5kb20uU1UoMyk7CgogIGFzc2VydChtYXgo
YSppbnYoYSktMSk8bWRwX3ByZWNpc2lvbik7CiAgcHJpbnRmKCJpbnZlcnNpb24gICAgICAgICAg
ICAgICAgICAgLi4udGVzdCBwYXNzZWRcbiIpOwogIAogIGFzc2VydChtYXgoMiphLW1kcF9jb21w
bGV4KDAsLTEpKm1kcF9jb21wbGV4KDAsMikqYSk8bWRwX3ByZWNpc2lvbik7CiAgcHJpbnRmKCJv
cGVyYXRvciogICAgICAgICAgICAgICAgICAgLi4udGVzdCBwYXNzZWRcbiIpOwoKICBhc3NlcnQo
bWF4KGErMyphLTQqYSk8bWRwX3ByZWNpc2lvbik7CiAgYXNzZXJ0KG1heChhK21kcF9jb21wbGV4
KDMsMikqYS1tZHBfY29tcGxleCg0LDIpKmEpPG1kcF9wcmVjaXNpb24pOwogIHByaW50Zigib3Bl
cmF0b3IrIGFuZCBvcGVyYXRvci0gICAgIC4uLnRlc3QgcGFzc2VkXG4iKTsKCiAgYXNzZXJ0KG1h
eChleHAobWRwX2NvbXBsZXgoMCwxKSphKS1jb3MoYSktbWRwX2NvbXBsZXgoMCwxKSpzaW4oYSkp
PG1kcF9wcmVjaXNpb24pOwogIHByaW50ZigiZXhwLCBzaW4gYW5kIGNvcyAgICAgICAgICAgIC4u
LnRlc3QgcGFzc2VkXG4iKTsKCiAgYXNzZXJ0KG1heChhLWxvZyhleHAoYSkpKTxtZHBfcHJlY2lz
aW9uKTsKICBwcmludGYoImV4cCwgbG9nICAgICAgICAgICAgICAgICAgICAuLi50ZXN0IHBhc3Nl
ZFxuIik7CgogIGI9YTsKICBiKj1tZHBfY29tcGxleCgwLDIpOwogIGIvPW1kcF9jb21wbGV4KDAs
Mik7CiAgYis9bWRwX2NvbXBsZXgoMiw0KTsKICBiLT1tZHBfY29tcGxleCgyLDQpOwogIGFzc2Vy
dChtYXgoYS1iKTxtZHBfcHJlY2lzaW9uKTsKICBwcmludGYoIio9LCAvPSwgKz0sIC09IChDb21w
bGV4KSAgICAuLi50ZXN0IHBhc3NlZFxuIik7CgogIGI9YTsKICBiKj0yOwogIGIvPTI7CiAgYis9
MzsKICBiLT0zOwogIGFzc2VydChtYXgoYS1iKTxtZHBfcHJlY2lzaW9uKTsKICBwcmludGYoIio9
LCAvPSwgKz0sIC09IChSZWFsKSAgICAgICAuLi50ZXN0IHBhc3NlZFxuIik7CgogIGI9YTsKICBi
Kj1hOwogIGIvPWE7CiAgYis9YTsKICBiLT1hOwogIGFzc2VydChtYXgoYS1iKTwxMC4wKm1kcF9w
cmVjaXNpb24pOwogIHByaW50ZigiKj0sIC89LCArPSwgLT0gKE1hdHJpeCkgICAgIC4uLnRlc3Qg
cGFzc2VkXG4iKTsKCiAgcmV0dXJuIDE7Cn0KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1kcF9t
ZWFzdXJlLmgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMTAwNjQ0ADAwMzMxMjYAMDAy
NDQ2MQAwMDAwMDAxMDA2MgAxMDE0MzAxMzE1NgAwMTQzMDIAIDAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABNRGlQaWVycm8AAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAG1rZ3JvdXAtbC1kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCi8vIEZpbGUgTmFtZTogbWRwX21lYXN1cmUuaAovLyBWZXJzaW9uOiAg
IDIuMwovLyBEYXRlOiAgICAgIDEtT2N0LTIwMDIKLy8gQXV0aG9yOiAgICBNYXNzaW1vIERpIFBp
ZXJybyA8bWRwQG1ldGFjcnlwdGlvbi5jb20+Ci8vIExpY2Vuc2U6ICAgVGhpcyBmaWxlIGlzIGV4
Y2x1c2l2ZSBwcm9wZXJ0eSBvZiBNZXRhQ3J5cHRpb24gTExDCi8vICAgICAgICAgICAgUmVhZCBh
dHRhY2hlZCBsaWNlbnNlIGluIGZpbGUgbWRwX2xpY2Vuc2UucGRmCi8vICAgICAgICAgICAgVGhp
cyBmaWxlIGNhbm5vdCBiZSBkaXN0cmlidXRlZCB3aXRob3V0IGZpbGUgbWRwX2xpY2Vuc2UucGRm
Ci8vCi8vIERlc2NyaXB0aW9uOgovLyAgICAgY2xhc3MgbWRwX21lYXN1cmUgaXMgYSBjbGFzcyB0
byBjb250YWluIGV4cGVyaW1lbnRhbCByZXN1bHRzCi8vICAgICAodXNlZCB0byBiZSBjYWxsZWQg
Y2xhc3MgTWVhc3VyZSkKLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpjbGFzcyBtZHBfbWVhc3VyZSB7
CnB1YmxpYzoKCWludCAgICBudW07CglmbG9hdCBtZWFuOwoJZmxvYXQgZXJyb3I7CgoJbWRwX21l
YXN1cmUoKSB7CgkJbnVtPTA7CgkJbWVhbj0wOwoJCWVycm9yPTA7CgkJfQoJdm9pZCByZXNldCgp
IHsKCSAgICAgICAgbnVtPTA7CgkJbWVhbj0wOwoJCWVycm9yPTA7CgkgICAgICAgIH0KCXZvaWQg
c2V0KGZsb2F0IHgsIGZsb2F0IGR4LCBpbnQgaT0xKSB7CgkgICAgICAgIG51bT1pOwoJICAgICAg
ICBtZWFuPXg7CgkJZXJyb3I9ZHg7CgkgICAgICAgIH0KCXZvaWQgb3BlcmF0b3IgPDwgKGZsb2F0
IHgpIHsKCSAgICAgICAgZmxvYXQgZXJyMjsKCSAgICAgICAgZXJyMj1udW0qKHBvdygoZG91Ymxl
KWVycm9yLChkb3VibGUpMi4wKSttZWFuKm1lYW4pK3BvdygoZG91YmxlKXgsKGRvdWJsZSkyLjAp
OwoJCW51bSsrOwoJCW1lYW49KG1lYW4qKG51bS0xKSt4KS9udW07CgkJZXJyb3I9c3FydChlcnIy
L251bS1tZWFuKm1lYW4pOwoJCX0KCXZvaWQgb3BlcmF0b3IgPj4gKGZsb2F0ICZ4KSB7CgkgICAg
ICAgIHg9bWVhbitlcnJvcipSYW5kb20uZ2F1c3NpYW4oKTsKCSAgICAgICAgfQoJZnJpZW5kIG1k
cF9tZWFzdXJlIG9wZXJhdG9yICsobWRwX21lYXN1cmUgYSwgbWRwX21lYXN1cmUgYikgeyAKCQlt
ZHBfbWVhc3VyZSB0bXA7CgkJdG1wLm1lYW4gPWEubWVhbiArYi5tZWFuOwoJCXRtcC5lcnJvcj1h
LmVycm9yK2IuZXJyb3I7CgkJdG1wLm51bT0xOwoJCXJldHVybiB0bXA7CgkJfQoJZnJpZW5kIG1k
cF9tZWFzdXJlIG9wZXJhdG9yIC0obWRwX21lYXN1cmUgYSwgbWRwX21lYXN1cmUgYikgewoJCW1k
cF9tZWFzdXJlIHRtcDsKCQl0bXAubWVhbiA9YS5tZWFuIC1iLm1lYW47CgkJdG1wLmVycm9yPWEu
ZXJyb3IrYi5lcnJvcjsKCQl0bXAubnVtPTE7CgkJcmV0dXJuIHRtcDsKCQl9CglmcmllbmQgbWRw
X21lYXN1cmUgb3BlcmF0b3IgKihtZHBfbWVhc3VyZSBhLCBtZHBfbWVhc3VyZSBiKSB7CgkJbWRw
X21lYXN1cmUgdG1wOwoJCXRtcC5tZWFuID1hLm1lYW4gKmIubWVhbjsKCQl0bXAuZXJyb3I9ZmFi
cyhhLm1lYW4pKmIuZXJyb3IrYS5lcnJvcipmYWJzKGIubWVhbik7CgkJdG1wLm51bT0xOwoJCXJl
dHVybiB0bXA7CgkJfQoJZnJpZW5kIG1kcF9tZWFzdXJlIG9wZXJhdG9yIC8obWRwX21lYXN1cmUg
YSwgbWRwX21lYXN1cmUgYikgewoJCW1kcF9tZWFzdXJlIHRtcDsKCQl0bXAubWVhbiA9YS5tZWFu
L2IubWVhbjsKCQl0bXAuZXJyb3I9YS5lcnJvci9mYWJzKGIubWVhbikrCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgZmFicyhhLm1lYW4pL3BvdygoZG91YmxlKWIubWVhbiwoZG91YmxlKTIuMCkq
Yi5lcnJvcjsKCQl0bXAubnVtPTE7CgkJcmV0dXJuIHRtcDsKCQl9CQkKCWZyaWVuZCBtZHBfbWVh
c3VyZSBvcGVyYXRvciArKGZsb2F0IGEsIG1kcF9tZWFzdXJlIGIpIHsKCQltZHBfbWVhc3VyZSB0
bXA7CgkJdG1wLm1lYW4gPWEgK2IubWVhbjsKCQl0bXAuZXJyb3I9Yi5lcnJvcjsKCQl0bXAubnVt
PTE7CgkJcmV0dXJuIHRtcDsKCQl9CglmcmllbmQgbWRwX21lYXN1cmUgb3BlcmF0b3IgLShmbG9h
dCBhLCBtZHBfbWVhc3VyZSBiKSB7CgkJbWRwX21lYXN1cmUgdG1wOwoJCXRtcC5tZWFuID1hLWIu
bWVhbjsKCQl0bXAuZXJyb3I9Yi5lcnJvcjsKCQl0bXAubnVtPTE7CgkJcmV0dXJuIHRtcDsKCQl9
CglmcmllbmQgbWRwX21lYXN1cmUgb3BlcmF0b3IgKihmbG9hdCBhLCBtZHBfbWVhc3VyZSBiKSB7
CgkJbWRwX21lYXN1cmUgdG1wOwoJCXRtcC5tZWFuID1hKmIubWVhbjsKCQl0bXAuZXJyb3I9ZmFi
cyhhKSpiLmVycm9yOwoJCXRtcC5udW09MTsKCQlyZXR1cm4gdG1wOwoJCX0KCWZyaWVuZCBtZHBf
bWVhc3VyZSBvcGVyYXRvciAvKGZsb2F0IGEsIG1kcF9tZWFzdXJlIGIpIHsKCQltZHBfbWVhc3Vy
ZSB0bXA7CgkJdG1wLm1lYW4gPWEvYi5tZWFuOwoJCXRtcC5lcnJvcj1mYWJzKGEpL3BvdygoZG91
YmxlKWIubWVhbiwoZG91YmxlKTIuMCkqYi5lcnJvcjsKCQl0bXAubnVtPTE7CgkJcmV0dXJuIHRt
cDsKCQl9CQoJZnJpZW5kIG1kcF9tZWFzdXJlIG9wZXJhdG9yICsobWRwX21lYXN1cmUgYSwgZmxv
YXQgYikgewoJCW1kcF9tZWFzdXJlIHRtcDsKCQl0bXAubWVhbiA9YS5tZWFuICtiOwoJCXRtcC5l
cnJvcj1hLmVycm9yOwoJCXRtcC5udW09MTsKCQlyZXR1cm4gdG1wOwoJCX0KCWZyaWVuZCBtZHBf
bWVhc3VyZSBvcGVyYXRvciAtKG1kcF9tZWFzdXJlIGEsIGZsb2F0IGIpIHsKCQltZHBfbWVhc3Vy
ZSB0bXA7CgkJdG1wLm1lYW4gPWEubWVhbiAtYjsKCQl0bXAuZXJyb3I9YS5lcnJvcjsKCQl0bXAu
bnVtPTE7CgkJcmV0dXJuIHRtcDsKCQl9CglmcmllbmQgbWRwX21lYXN1cmUgb3BlcmF0b3IgKiht
ZHBfbWVhc3VyZSBhLCBmbG9hdCBiKSB7CgkJbWRwX21lYXN1cmUgdG1wOwoJCXRtcC5tZWFuID1h
Lm1lYW4gKmI7CgkJdG1wLmVycm9yPWEuZXJyb3IqZmFicyhiKTsKCQl0bXAubnVtPTE7CgkJcmV0
dXJuIHRtcDsKCQl9CglmcmllbmQgbWRwX21lYXN1cmUgb3BlcmF0b3IgLyhtZHBfbWVhc3VyZSBh
LCBmbG9hdCBiKSB7CgkJbWRwX21lYXN1cmUgdG1wOwoJCXRtcC5tZWFuID1hLm1lYW4vYjsKCQl0
bXAuZXJyb3I9YS5lcnJvci9mYWJzKGIpOwoJCXRtcC5udW09MTsKCQlyZXR1cm4gdG1wOwoJCX0g
CglmcmllbmQgbWRwX21lYXN1cmUgZXhwKG1kcF9tZWFzdXJlIGEpIHsKCQltZHBfbWVhc3VyZSB0
bXA7CgkJdG1wLm1lYW49ZXhwKGEubWVhbik7CgkJdG1wLmVycm9yPWV4cChhLm1lYW4pKmEuZXJy
b3I7CgkJdG1wLm51bT0xOwoJCXJldHVybiB0bXA7CgkJfQoJZnJpZW5kIG1kcF9tZWFzdXJlIGxv
ZyhtZHBfbWVhc3VyZSBhKSB7CgkJbWRwX21lYXN1cmUgdG1wOwoJCXRtcC5tZWFuPWxvZyhhLm1l
YW4pOwoJCXRtcC5lcnJvcj1hLmVycm9yL2ZhYnMoYS5tZWFuKTsKCQl0bXAubnVtPTE7CgkJcmV0
dXJuIHRtcDsKCQl9CglmcmllbmQgbWRwX21lYXN1cmUgcG93KG1kcF9tZWFzdXJlIGEsIGZsb2F0
IGIpIHsKCQltZHBfbWVhc3VyZSB0bXA7CgkJdG1wLm1lYW49cG93KChkb3VibGUpIGEubWVhbiwo
ZG91YmxlKSBiKTsKCQl0bXAuZXJyb3I9YS5lcnJvcipiKnBvdygoZG91YmxlKSBhLm1lYW4sKGRv
dWJsZSkgYi0xKTsKCQl0bXAubnVtPTE7CgkJcmV0dXJuIHRtcDsKCQl9CglmcmllbmQgbWRwX21l
YXN1cmUgc2luKG1kcF9tZWFzdXJlIGEpIHsKCQltZHBfbWVhc3VyZSB0bXA7CgkJdG1wLm1lYW49
c2luKGEubWVhbik7CgkJdG1wLmVycm9yPWZhYnMoY29zKGEubWVhbikpKmEuZXJyb3I7CgkJdG1w
Lm51bT0xOwoJCXJldHVybiB0bXA7CgkJfQoJZnJpZW5kIG1kcF9tZWFzdXJlIGNvcyhtZHBfbWVh
c3VyZSBhKSB7CgkJbWRwX21lYXN1cmUgdG1wOwoJCXRtcC5tZWFuPWNvcyhhLm1lYW4pOwoJCXRt
cC5lcnJvcj1mYWJzKHNpbihhLm1lYW4pKSphLmVycm9yOwoJCXRtcC5udW09MTsKCQlyZXR1cm4g
dG1wOwoJCX0KCQlmcmllbmQgdm9pZCBwcmludChtZHBfbWVhc3VyZSBhKSB7CgkJcHJpbnRmKCIl
ZiAoJWYpXG4iLCBhLm1lYW4sIGEuZXJyb3IpOwoJCX0KfTsKAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWRwX21vZDJzaWduLmgA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAxMDA2NDQAMDAzMzEyNgAwMDI0NDYxADAwMDAw
MDAwNjI1ADEwMTQzMDEzMTU2ADAxNDM2NwAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAB1c3RhciAgAE1EaVBpZXJybwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWtn
cm91cC1sLWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KLy8gRmlsZSBOYW1lOiBtZHBfbW9kMnNpZ24uaAovLyBEYXRlOiAgICAgIDEtTWFyLTIw
MDIKLy8gQXV0aG9yOiAgICBNYXNzaW1vIERpIFBpZXJybyA8bWRwQG1ldGFjcnlwdGlvbi5jb20+
Ci8vIERlc2NyaXB0aW9uOgovLyAgICAgYSBmdW5jdGlvbiB0byBjb21wdXRlICgtMSlebgovLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KCmludCBtZHBfbW9kMnNpZ24oaW50IHgpIHsKICBpZigoeCAlIDIp
PT0wKSAKICAgIHJldHVybiArMTsgCiAgZWxzZSAKICAgIHJldHVybiAtMTsKfQoAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1kcF9ubWF0cml4X2ZpZWxk
LmgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMTAwNjQ0ADAwMzMxMjYAMDAyNDQ2MQAwMDAwMDAw
MzAwNgAxMDE0MzAxMzE1NgAwMTU0NjYAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAdXN0YXIgIABNRGlQaWVycm8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1rZ3Jv
dXAtbC1kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALy8gVmVyc2lvbjogICAyLjMK
Ly8gRGF0ZTogICAgICAxLU9jdC0yMDAyCi8vIEF1dGhvcjogICAgTWFzc2ltbyBEaSBQaWVycm8g
PG1kcEBtZXRhY3J5cHRpb24uY29tPgovLyBMaWNlbnNlOiAgIFRoaXMgZmlsZSBpcyBleGNsdXNp
dmUgcHJvcGVydHkgb2YgTWV0YUNyeXB0aW9uIExMQwovLyAgICAgICAgICAgIFJlYWQgYXR0YWNo
ZWQgbGljZW5zZSBpbiBmaWxlIG1kcF9saWNlbnNlLnBkZgovLyAgICAgICAgICAgIFRoaXMgZmls
ZSBjYW5ub3QgYmUgZGlzdHJpYnV0ZWQgd2l0aG91dCBmaWxlIG1kcF9saWNlbnNlLnBkZgovLwoK
Y2xhc3MgbWRwX25tYXRyaXhfZmllbGQ6IHB1YmxpYyBtZHBfZmllbGQ8bWRwX2NvbXBsZXg+IHsK
cHVibGljOgogIHVpbnQgcm93cywgY29sdW1ucywgbWF0cmljZXMsIGltYXgsIGltYXgyOwogIG1k
cF9ubWF0cml4X2ZpZWxkKCkgewogICAgcm93cz1jb2x1bW5zPW1hdHJpY2VzPWltYXg9aW1heDI9
MDsKICAgIG1kcF9maWVsZDxtZHBfY29tcGxleD46OnJlc2V0X2ZpZWxkKCk7CiAgfQogIG1kcF9u
bWF0cml4X2ZpZWxkKG1kcF9ubWF0cml4X2ZpZWxkICZmaWVsZCkgewogICAgbWRwX2ZpZWxkPG1k
cF9jb21wbGV4Pjo6cmVzZXRfZmllbGQoKTsKICAgIHJvd3M9ZmllbGQucm93czsKICAgIGNvbHVt
bnM9ZmllbGQuY29sdW1uczsKICAgIG1hdHJpY2VzPWZpZWxkLm1hdHJpY2VzOwogICAgaW1heD1m
aWVsZC5pbWF4OwogICAgaW1heDI9ZmllbGQuaW1heDI7CiAgICBhbGxvY2F0ZV9maWVsZChmaWVs
ZC5sYXR0aWNlKCksZmllbGQuaW1heCk7CiAgfQogIG1kcF9ubWF0cml4X2ZpZWxkKG1kcF9sYXR0
aWNlICZhLCBpbnQgbiwgaW50IGksIGludCBqKSB7CiAgICBtZHBfZmllbGQ8bWRwX2NvbXBsZXg+
OjpyZXNldF9maWVsZCgpOwogICAgcm93cz1pOwogICAgY29sdW1ucz1qOwogICAgbWF0cmljZXM9
bjsKICAgIGltYXg9aSpqKm47CiAgICBpbWF4Mj1pKmo7CiAgICBhbGxvY2F0ZV9maWVsZChhLGlt
YXgpOwogIH0KICB2b2lkIGFsbG9jYXRlX21kcF9ubWF0cml4X2ZpZWxkKG1kcF9sYXR0aWNlICZh
LCBpbnQgbiwgaW50IGksIGludCBqKSB7CiAgICBkZWFsbG9jYXRlX2ZpZWxkKCk7CiAgICByb3dz
PWk7CiAgICBjb2x1bW5zPWo7CiAgICBtYXRyaWNlcz1uOwogICAgaW1heD1pKmoqbjsKICAgIGlt
YXgyPWkqajsKICAgIGFsbG9jYXRlX2ZpZWxkKGEsaW1heCk7CiAgfSAgCiAgbWRwX21hdHJpeCBv
cGVyYXRvcigpIChtZHBfc2l0ZSB4LCBpbnQgbikgewogICAgcmV0dXJuIG1kcF9tYXRyaXgoYWRk
cmVzcyh4LG4qaW1heDIpLHJvd3MsY29sdW1ucyk7CiAgfQogIG1kcF9jb21wbGV4JiBvcGVyYXRv
cigpIChtZHBfc2l0ZSB4LCBpbnQgbiwgaW50IGksIGludCBqKSB7CiAgICByZXR1cm4gYWRkcmVz
cyh4LG4qaW1heDIpW2kqY29sdW1ucytqXTsKICB9CiAgY29uc3QgbWRwX2NvbXBsZXgmIG9wZXJh
dG9yKCkgKG1kcF9zaXRlIHgsIGludCBuLCBpbnQgaSwgaW50IGopIGNvbnN0IHsKICAgIHJldHVy
biBhZGRyZXNzKHgsbippbWF4MilbaSpjb2x1bW5zK2pdOwogIH0KfTsKAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtZHBfbnZlY3Rvcl9maWVsZC5oAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAMDEwMDY0NAAwMDMzMTI2ADAwMjQ0NjEAMDAwMDAwMDI0NTEA
MTAxNDMwMTMxNTYAMDE1NDY3ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAHVzdGFyICAATURpUGllcnJvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABta2dyb3VwLWwt
ZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8vIFZlcnNpb246ICAgMi4zCi8vIERh
dGU6ICAgICAgMS1PY3QtMjAwMgovLyBBdXRob3I6ICAgIE1hc3NpbW8gRGkgUGllcnJvIDxtZHBA
bWV0YWNyeXB0aW9uLmNvbT4KLy8gTGljZW5zZTogICBUaGlzIGZpbGUgaXMgZXhjbHVzaXZlIHBy
b3BlcnR5IG9mIE1ldGFDcnlwdGlvbiBMTEMKLy8gICAgICAgICAgICBSZWFkIGF0dGFjaGVkIGxp
Y2Vuc2UgaW4gZmlsZSBtZHBfbGljZW5zZS5wZGYKLy8gICAgICAgICAgICBUaGlzIGZpbGUgY2Fu
bm90IGJlIGRpc3RyaWJ1dGVkIHdpdGhvdXQgZmlsZSBtZHBfbGljZW5zZS5wZGYKLy8KCmNsYXNz
IG1kcF9udmVjdG9yX2ZpZWxkOiBwdWJsaWMgbWRwX2ZpZWxkPG1kcF9jb21wbGV4PiB7CnB1Ymxp
YzoKICB1aW50IHJvd3MsIGNvbHVtbnMsIGltYXgsIGltYXgyOwogIG1kcF9udmVjdG9yX2ZpZWxk
KCkgewogICAgcm93cz1jb2x1bW5zPWltYXg9aW1heDI9MDsKICAgIG1kcF9maWVsZDxtZHBfY29t
cGxleD46OnJlc2V0X2ZpZWxkKCk7CiAgfQogIG1kcF9udmVjdG9yX2ZpZWxkKG1kcF9udmVjdG9y
X2ZpZWxkICZmaWVsZCkgewogICAgcm93cz1maWVsZC5yb3dzOwogICAgY29sdW1ucz1maWVsZC5j
b2x1bW5zOwogICAgaW1heD1maWVsZC5pbWF4OwogICAgaW1heDI9ZmllbGQuaW1heDI7CiAgICBh
bGxvY2F0ZV9maWVsZChmaWVsZC5sYXR0aWNlKCksZmllbGQuaW1heCk7CiAgfQogIG1kcF9udmVj
dG9yX2ZpZWxkKG1kcF9sYXR0aWNlICZhLCBpbnQgbiwgaW50IGkpIHsKICAgIHJvd3M9aTsKICAg
IGNvbHVtbnM9MTsKICAgIGltYXg9aSpuOwogICAgaW1heDI9aTsKICAgIGFsbG9jYXRlX2ZpZWxk
KGEsaW1heCk7CiAgfQogIHZvaWQgYWxsb2NhdGVfbWRwX252ZWN0b3JfZmllbGQobWRwX2xhdHRp
Y2UgJmEsIGludCBuLCBpbnQgaSkgewogICAgZGVhbGxvY2F0ZV9maWVsZCgpOwogICAgcm93cz1p
OwogICAgY29sdW1ucz0xOwogICAgaW1heD1pKm47CiAgICBpbWF4Mj1pOwogICAgYWxsb2NhdGVf
ZmllbGQoYSxpbWF4KTsKICB9CiAgbWRwX21hdHJpeCBvcGVyYXRvcigpIChtZHBfc2l0ZSB4LGlu
dCBuKSB7CiAgICByZXR1cm4gbWRwX21hdHJpeChhZGRyZXNzKHgsbippbWF4Mikscm93cyxjb2x1
bW5zKTsKICB9CiAgbWRwX2NvbXBsZXggJiBvcGVyYXRvcigpIChtZHBfc2l0ZSB4LCBpbnQgbiwg
aW50IGkpIHsKICAgIHJldHVybiBhZGRyZXNzKHgsbippbWF4MilbaV07CiAgfQogIGNvbnN0IG1k
cF9jb21wbGV4ICYgb3BlcmF0b3IoKSAobWRwX3NpdGUgeCwgaW50IG4sIGludCBpKSBjb25zdCB7
CiAgICByZXR1cm4gYWRkcmVzcyh4LG4qaW1heDIpW2ldOwogIH0KfTsKCgoAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1kcF9wYXJ0aXRpb25pbmdzLmgAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAwMTAwNjQ0ADAwMzMxMjYAMDAyNDQ2MQAwMDAwMDAwMTMyMQAxMDE0
MzAxMzE1NgAwMTU1MzEAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAdXN0YXIgIABNRGlQaWVycm8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1rZ3JvdXAtbC1kAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vIEZp
bGUgTmFtZTogbWRwX3BhcnRpdGlvbmluZ3MuaAovLyBEYXRlOiAgICAgIDEtTWFyLTIwMDIKLy8g
QXV0aG9yOiAgICBNYXNzaW1vIERpIFBpZXJybyA8bWRwQG1ldGFjcnlwdGlvbi5jb20+Ci8vIERl
c2NyaXB0aW9uOgovLyAgICAgcGFydGl0aW9uaW5nIGZ1bmN0aW9ucyB0byBiZSBwYXNzZWQgdG8g
bWRwX2xhdHRpY2UKLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgppbnQgZGVmYXVsdF9wYXJ0aXRpb25p
bmcwKGludCAqeCwgCgkJCSAgaW50IG5kaW0sIAoJCQkgIGludCAqbngpIHsKICBmbG9hdCB0cHAx
PShmbG9hdCkgbnhbMF0vTnByb2M7CiAgaW50ICAgdHBwMj0oaW50KSAgIHRwcDE7CiAgaWYodHBw
MS10cHAyPjApIHRwcDIrPTE7CiAgcmV0dXJuIHhbMF0vdHBwMjsKfQoKdGVtcGxhdGU8aW50IGRp
bT4KaW50IGRlZmF1bHRfcGFydGl0aW9uaW5nKGludCAqeCwgCgkJCSBpbnQgbmRpbSwgCgkJCSBp
bnQgKm54KSB7CiAgZmxvYXQgdHBwMT0oZmxvYXQpIG54W2RpbV0vTnByb2M7CiAgaW50ICAgdHBw
Mj0oaW50KSAgIHRwcDE7CiAgaWYodHBwMS10cHAyPjApIHRwcDIrPTE7CiAgcmV0dXJuIHhbZGlt
XS90cHAyOwp9CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1kcF9wZXJtdXRhdGlvbnMuaAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAwMTAwNjQ0ADAwMzMxMjYAMDAyNDQ2MQAwMDAwMDAwMzA3NAAxMDE0MzAx
MzE1NgAwMTU0MDAAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
dXN0YXIgIABNRGlQaWVycm8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1rZ3JvdXAtbC1kAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vIEZpbGUg
TmFtZTogbWRwX3Blcm11dGF0aW9ucy5oCi8vIFZlcnNpb246ICAgMi4zCi8vIERhdGU6ICAgICAg
MS1PY3QtMjAwMgovLyBBdXRob3I6ICAgIE1hc3NpbW8gRGkgUGllcnJvIDxtZHBAbWV0YWNyeXB0
aW9uLmNvbT4KLy8gTGljZW5zZTogICBUaGlzIGZpbGUgaXMgZXhjbHVzaXZlIHByb3BlcnR5IG9m
IE1ldGFDcnlwdGlvbiBMTEMKLy8gICAgICAgICAgICBSZWFkIGF0dGFjaGVkIGxpY2Vuc2UgaW4g
ZmlsZSBtZHBfbGljZW5zZS5wZGYKLy8gICAgICAgICAgICBUaGlzIGZpbGUgY2Fubm90IGJlIGRp
c3RyaWJ1dGVkIHdpdGhvdXQgZmlsZSBtZHBfbGljZW5zZS5wZGYKLy8KLy8gRGVzY3JpcHRpb246
Ci8vICAgICB1c2VmdWwgZnVuY3Rpb25zIHRvIGNvbXB1dGUgcGVybXV0YXRpb25zCi8vIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLwoKLy8gdGhpcyBpcyBteSBmYXZvdXJpdGUgcGllY2Ugb2YgY29kZS4uLgoK
Ci8vIHRoaXMgaXMganVzdCBuIQpsb25nIG1kcF9wZXJtdXRhdGlvbnMoaW50IG4pIHsKICBsb25n
IGE9MTsKICBmb3IoO247bi0tKSBhKj1uOwogIHJldHVybiBhOwp9CgovLyB0aGlzIHNvcnRzIHRo
ZSBmaXJzdCBrIGVsZW1lbnRzIG9mIG1hcFtdIGFzc3VtaW5nIAovLyB0aGUgZmlzcnQgay0xIGFy
ZSBhbHJlYWR5IHNvcnRlZAp2b2lkIG1kcF9wZXJtdXRhdGlvbl9zb3J0KGludCBtYXBbXSwgaW50
IGspIHsKICBpbnQgaSwgdG1wOwogIGZvcihpPWstMTsgaT49MDsgaS0tKQogICAgaWYobWFwW2ld
Pm1hcFtpKzFdKSB7CiAgICAgIHRtcD1tYXBbaV07CiAgICAgIG1hcFtpXT1tYXBbaSsxXTsKICAg
ICAgbWFwW2krMV09dG1wOwogICAgfQp9CgovLyB0aGlzIHJldHVybnMgai10aCBlbGVtZW50IG9m
IHRoZSBrLXRoIHBlcm11dGF0aW9ucyBvZiBuIG51bWJlcnMKLy8gZm9yIGV4YW1wbGUgaWYgbj00
Ci8vIFswMTIzXSBrPTAgCi8vIFswMTMyXSBrPTEKLy8gLi4uCi8vIFszMjEwXSBrPTIzCi8vIHJl
dHVybnMgLTEgb24gZXJyb3Igd2hlbiAoaT5uIHx8IGs+bl9wZXJtdXRhdGlvbnMobikpCi8vCmlu
dCBtZHBfcGVybXV0YXRpb24oaW50IG4sIGludCBrLCBpbnQgaSkgewogIGludCogbWFwPW5ldyBp
bnRbaSsxXTsKICBpbnQgaixsLG07CgogIGlmKGk+biB8fCBrPm1kcF9wZXJtdXRhdGlvbnMobikp
IHJldHVybiAtMTsKCiAgZm9yKGo9MDsgajw9aTsgaisrKSB7CiAgICBtYXBbal0gPSAoayAlIG1k
cF9wZXJtdXRhdGlvbnMobi1qKSkgLyBtZHBfcGVybXV0YXRpb25zKG4tMS1qKTsKICAgIG1kcF9w
ZXJtdXRhdGlvbl9zb3J0KG1hcCwgai0xKTsKICAgIGZvcihsPTA7IGw8ajsgbCsrKQogICAgICBp
ZihtYXBbbF08PW1hcFtqXSkgbWFwW2pdKys7ICAgIAogICAgaWYoaT09aikgewogICAgICBtPW1h
cFtqXTsKICAgICAgZGVsZXRlW10gbWFwOwogICAgICByZXR1cm4gbTsgCiAgICB9CiAgfQogIGRl
bGV0ZVtdIG1hcDsKICByZXR1cm4gLTE7Cn0KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtZHBfcG9zdHNjcmlwdC5oAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAMDEwMDY0NAAwMDMzMTI2ADAwMjQ0NjEAMDAwMDAwMDY1NjAAMTAxNDMwMTMxNTYA
MDE1MDYzACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFy
ICAATURpUGllcnJvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABta2dyb3VwLWwtZAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8vIFZlcnNpb246ICAgMi4zCi8vIERhdGU6ICAgICAgMS1P
Y3QtMjAwMgovLyBBdXRob3I6ICAgIE1hc3NpbW8gRGkgUGllcnJvIDxtZHBAbWV0YWNyeXB0aW9u
LmNvbT4KLy8gTGljZW5zZTogICBUaGlzIGZpbGUgaXMgZXhjbHVzaXZlIHByb3BlcnR5IG9mIE1l
dGFDcnlwdGlvbiBMTEMKLy8gICAgICAgICAgICBSZWFkIGF0dGFjaGVkIGxpY2Vuc2UgaW4gZmls
ZSBtZHBfbGljZW5zZS5wZGYKLy8gICAgICAgICAgICBUaGlzIGZpbGUgY2Fubm90IGJlIGRpc3Ry
aWJ1dGVkIHdpdGhvdXQgZmlsZSBtZHBfbGljZW5zZS5wZGYKLy8KCmNsYXNzIG1kcF9wb3N0c2Ny
aXB0IHsKcHVibGljOgogIGVudW0ge0JPTEQ9MTB9OwogIEZJTEUgKmZwOwogIGZsb2F0IFgwLCBZ
MCwgWjA7CiAgZmxvYXQgWDEsIFkxLCBaMTsKICBmbG9hdCBjMCwgYzEsIGMyOwogIGZsb2F0IHNj
YWxlOwogIGZsb2F0IGFscGhhOwogIG1kcF9wb3N0c2NyaXB0KCkgewogICAgZnA9MDsKICAgIHNj
YWxlPTE7CiAgfTsKICBtZHBfcG9zdHNjcmlwdChjaGFyIGZpbGVuYW1lW10pIHsKICAgIG9wZW4o
ZmlsZW5hbWUpOwogIH07CiAgdmlydHVhbCB+bWRwX3Bvc3RzY3JpcHQoKSB7CiAgICBpZiAoZnAh
PTApIGNsb3NlKCk7CiAgfTsKICBGSUxFKiBvcGVuKGNoYXIgZmlsZW5hbWVbXSkgewogICAgcHJp
bnRmKCJNYWtpbmcgZnJhbWU6ICVzXG4iLCBmaWxlbmFtZSk7CiAgICBmcD1mb3BlbihmaWxlbmFt
ZSwgInciKTsKICAgIGlmKGZwIT0wKSBmcHJpbnRmKGZwLCIlJSFQUy1BZG9iZS0zLjAgRVBTRi0z
LjBcbiIpOwogICAgZmZsdXNoKGZwKTsKICAgIHJldHVybiBmcDsKICB9OwogIHZvaWQgY2xvc2Uo
KSB7CiAgICBmcHJpbnRmKGZwLCJzaG93cGFnZVxuIik7CiAgICBmcHJpbnRmKGZwLCIlJSUlVHJh
aWxlclxuIik7CiAgICBmcHJpbnRmKGZwLCIlJSUlRU9GXG4iKTsKICAgIGZmbHVzaChmcCk7CiAg
ICBmY2xvc2UoZnApOwogICAgZnA9MDsKICB9OwogIHZvaWQgc2l6ZShmbG9hdCB4MCwgZmxvYXQg
eTAsIGZsb2F0IHgxLCBmbG9hdCB5MSkgewogICAgWDA9eDA7IFkwPXkwOwogICAgWDE9eDE7IFkx
PXkxOwogICAgZnByaW50ZihmcCwiJSUlJUJvdW5kaW5nQm94OiAlLjBmICUuMGYgJS4wZiAlLjBm
XG4iLCBzY2FsZSp4MCwgc2NhbGUqeTAsIHNjYWxlKngxLCBzY2FsZSp5MSk7CiAgICBmcHJpbnRm
KGZwLCIlJSUlRW5kQ29tbWVudHNcbiIpOwogICAgZmZsdXNoKGZwKTsKICB9OwogIHZvaWQgbGlu
ZShmbG9hdCB4MCwgIGZsb2F0IHkwLCBmbG9hdCB4MSwgZmxvYXQgeTEpIHsKICAgIGZwcmludGYo
ZnAsIiUuMmYgJS4yZiAlLjJmIHNldHJnYmNvbG9yXG4iLCBjMCxjMSxjMik7CiAgICBmcHJpbnRm
KGZwLCIlLjJmICUuMmYgbW92ZXRvXG4iLCBzY2FsZSp4MCwgc2NhbGUqeTApOwogICAgZnByaW50
ZihmcCwiJS4yZiAlLjJmIGxpbmV0b1xuIiwgc2NhbGUqeDEsIHNjYWxlKnkxKTsKICAgIGZwcmlu
dGYoZnAsInN0cm9rZVxuIik7CiAgICBmZmx1c2goZnApOwogIH07CiAgdm9pZCBib3goZmxvYXQg
eDAsICBmbG9hdCB5MCwgZmxvYXQgeDEsIGZsb2F0IHkxLCBpbnQgZmlsbD0wKSB7CiAgICBpZiAo
ZmlsbD09MSkgZnByaW50ZihmcCwic3Ryb2tlXG4iKTsKICAgIGZwcmludGYoZnAsIiUuMmYgJS4y
ZiBtb3ZldG9cbiIsIHNjYWxlKngwLCBzY2FsZSp5MCk7CiAgICBmcHJpbnRmKGZwLCIlLjJmICUu
MmYgbGluZXRvXG4iLCBzY2FsZSp4MCwgc2NhbGUqeTEpOwogICAgZnByaW50ZihmcCwiJS4yZiAl
LjJmIGxpbmV0b1xuIiwgc2NhbGUqeDEsIHNjYWxlKnkxKTsKICAgIGZwcmludGYoZnAsIiUuMmYg
JS4yZiBsaW5ldG9cbiIsIHNjYWxlKngxLCBzY2FsZSp5MCk7CiAgICBmcHJpbnRmKGZwLCIlLjJm
ICUuMmYgbGluZXRvXG4iLCBzY2FsZSp4MCwgc2NhbGUqeTApOwogICAgaWYgKGZpbGw9PTEpIGZw
cmludGYoZnAsImZpbGxcbiIpOwogICAgZnByaW50ZihmcCwic3Ryb2tlXG4iKTsKICAgIGZmbHVz
aChmcCk7CiAgfTsKICB2b2lkIGFyYyhmbG9hdCB4MCwgIGZsb2F0IHkwLCBmbG9hdCByLCBmbG9h
dCBhbHBoYSwgZmxvYXQgYmV0YSkgewogICAgZnByaW50ZihmcCwiJS4yZiAlLjJmICUuMmYgJS4y
ZiAlLjJmIGFyY1xuIiwgc2NhbGUqeDAsIHNjYWxlKnkwLCBzY2FsZSpyLCBhbHBoYSwgYmV0YSk7
CiAgICBmcHJpbnRmKGZwLCJzdHJva2VcbiIpOwogICAgZmZsdXNoKGZwKTsKICB9OwogIHZvaWQg
Y2lyY2xlKGZsb2F0IHgwLCAgZmxvYXQgeTAsIGZsb2F0IHIsIGludCBmaWxsPTApIHsKICAgIGlm
IChmaWxsIT1CT0xEKSBmcHJpbnRmKGZwLCIlLjJmICUuMmYgJS4yZiAwIDM2MCBhcmNcbiIsIHNj
YWxlKngwLCBzY2FsZSp5MCwgcik7CiAgICBpZiAoZmlsbD09MSkgZnByaW50ZihmcCwiZmlsbFxu
Iik7CiAgICBpZiAoZmlsbD09Qk9MRCkgewogICAgICBmcHJpbnRmKGZwLCIxIC0wLjEgMC4xIHtc
biIpOwogICAgICBmcHJpbnRmKGZwLCIvciBleGNoIGRlZlxuIik7CiAgICAgIGZwcmludGYoZnAs
IiUuMmYgMSByIDAuNSBtdWwgc3ViIG11bCAiLCBjMCk7CiAgICAgIGZwcmludGYoZnAsIiUuMmYg
MSByIDAuNSBtdWwgc3ViIG11bCAiLCBjMSk7CiAgICAgIGZwcmludGYoZnAsIiUuMmYgMSByIDAu
NSBtdWwgc3ViIG11bCAiLCBjMik7CiAgICAgIGZwcmludGYoZnAsInNldHJnYmNvbG9yXG4iKTsK
ICAgICAgZnByaW50ZihmcCwic3Ryb2tlXG4iKTsKICAgICAgZnByaW50ZihmcCwiJS4yZiAlLjJm
ICUuMmYgciBtdWwgMCAzNjAgYXJjIGZpbGxcbiIsIHNjYWxlKngwLCBzY2FsZSp5MCwgc2NhbGUq
cik7CiAgICAgIGZwcmludGYoZnAsIn0gZm9yXG4iKTsKICAgIH07CiAgICBmZmx1c2goZnApOwog
IH07CiAgdm9pZCBwZW4oZmxvYXQgc2l6ZSkgewogICAgIGZwcmludGYoZnAsIiUuMmYgc2V0bGlu
ZXdpZHRoXG4iLCBzaXplKTsKICB9OwogIC8vIGNvbG9ycyBhcmUgbnVtYmVycyBpbiBbMCwxXSBi
bGFjaz0oMCwwLDApIHdoaXRlPSgxLDEsMSkKICB2b2lkIGNvbG9yKGZsb2F0IHIsIGZsb2F0IGcs
IGZsb2F0IGIpIHsKICAgICBmcHJpbnRmKGZwLCIlLjJmICUuMmYgJS4yZiBzZXRyZ2Jjb2xvclxu
IiwgcixnLGIpOwogICAgIGMwPXI7IGMxPWc7IGMyPWI7CiAgICAgZmZsdXNoKGZwKTsKICB9Owog
IHZvaWQgZm9udChjb25zdCBjaGFyICp0ZXh0LCBpbnQgc2l6ZSkgewogICAgZnByaW50ZihmcCwi
LyVzIGZpbmRmb250XG4laSBzY2FsZWZvbnRcbnNldGZvbnRcbiIsIHRleHQsIHNpemUpOwogICAg
ZmZsdXNoKGZwKTsKICB9OwogIHZvaWQgcHJpbnQoZmxvYXQgeDAsIGZsb2F0IHkwLCBjaGFyIHRl
eHRbXSkgewogICAgZnByaW50ZihmcCwiJS4yZiAlLjJmIG1vdmV0b1xuIiwgc2NhbGUqeDAsIHNj
YWxlKnkwKTsKICAgIGZwcmludGYoZnAsIiglcykgc2hvd1xuIiwgdGV4dCk7CiAgICBmcHJpbnRm
KGZwLCJzdHJva2VcbiIpOwogICAgZmZsdXNoKGZwKTsKICB9Owp9OwoKAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAbWRwX3Byb21wdC5oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
ADAxMDA2NDQAMDAzMzEyNgAwMDI0NDYxADAwMDAwMDA1MDMxADEwMTQzMDEzMTU2ADAxNDE2MgAg
MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAE1EaVBp
ZXJybwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWtncm91cC1sLWQAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gRmlsZSBOYW1lOiBtZHBfcHJv
bXB0LmgKLy8gVmVyc2lvbjogICAyLjMKLy8gRGF0ZTogICAgICAxLU9jdC0yMDAyCi8vIEF1dGhv
cjogICAgTWFzc2ltbyBEaSBQaWVycm8gPG1kcEBtZXRhY3J5cHRpb24uY29tPgovLyBMaWNlbnNl
OiAgIFRoaXMgZmlsZSBpcyBleGNsdXNpdmUgcHJvcGVydHkgb2YgTWV0YUNyeXB0aW9uIExMQwov
LyAgICAgICAgICAgIFJlYWQgYXR0YWNoZWQgbGljZW5zZSBpbiBmaWxlIG1kcF9saWNlbnNlLnBk
ZgovLyAgICAgICAgICAgIFRoaXMgZmlsZSBjYW5ub3QgYmUgZGlzdHJpYnV0ZWQgd2l0aG91dCBm
aWxlIG1kcF9saWNlbnNlLnBkZgovLwovLyBEZXNjcmlwdGlvbjoKLy8gICAgIHR3byBmdW5jdGlv
bnMgaGVyZTogdmFsKCkgYW5kIHByb21wdCgpCi8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKY29uc3Qg
Y2hhciBTVERfSU5QVVRbXSA9ICIiOwpjb25zdCBjaGFyIFNURF9JTlBVVF9GSUxFW10gPSAiPHN0
ZGluPiI7Cgpkb3VibGUgdmFsKHN0cmluZyBzKSB7CiAgcmV0dXJuIGF0b2Yocy5jX3N0cigpKTsK
fQoKc3RyaW5nIHByb21wdChzdHJpbmcgZmlsZW5hbWUsIAoJICAgICAgc3RyaW5nIHZhcmlhYmxl
LCAKCSAgICAgIHN0cmluZyBkZWZfdmFsPSIwLjAiLCAKCSAgICAgIGludCBwPTApIHsKICBGSUxF
ICpmcD0wOwogIHN0YXRpYyBjaGFyIHRtcFsxMDI0XTsKICBpbnQgYWN0aXZlLCBsZW5ndGg7CiAg
Y2hhciBjLGQ7CiAgY2hhciByZXNwb25zZVsxMDI0XTsKCiNpZmRlZiBQQVJBTExFTAogIG1waS5i
YXJyaWVyKCk7CiNlbmRpZgoKICBpZihNRT09cCkgewogICAgaWYoZmlsZW5hbWU9PVNURF9JTlBV
VCkgewogICAgICBwcmludGYoIklucHV0IHZhbHVlIG9mICVzIChkZWZhdWx0IGlzIGAlcycpOiAi
LCAKCSAgICAgdmFyaWFibGUuY19zdHIoKSwgZGVmX3ZhbC5jX3N0cigpKTsKICAgICAgY2luID4+
IHJlc3BvbnNlOwogICAgfSBlbHNlIHsKICAgICAgaWYoZmlsZW5hbWU9PVNURF9JTlBVVF9GSUxF
KSB7IAoJZnA9c3RkaW47CglwcmludGYoIklucHV0IHZhcmlhYmxlIChkZWZhdWx0IGlzIGAlcyAl
cycpLi4uXG4iLCAKCSAgICAgICB2YXJpYWJsZS5jX3N0cigpLCBkZWZfdmFsLmNfc3RyKCkpOwog
ICAgICB9IGVsc2UgewoJZnA9Zm9wZW4oZmlsZW5hbWUuY19zdHIoKSwiciIpOwogICAgICB9CiAg
ICAgIGZzZWVrKGZwLCAwLCAwKTsKICAgICAgYWN0aXZlPTE7CiAgICAgIGxlbmd0aD0wOwogICAg
ICBkPTA7CiAgICAgIHRtcFswXT0nXDAnOwogICAgICByZXNwb25zZVswXT0nXDAnOwogICAgICBk
byB7CgljPWZnZXRjKGZwKTsJCglzd2l0Y2goYWN0aXZlKSB7CgljYXNlIDA6IGlmKGM9PSdcbicp
IHthY3RpdmU9MTsgbGVuZ3RoPTA7fSBicmVhazsKCWNhc2UgMTogaWYoYz09JyMnKSB7IAoJICBh
Y3RpdmU9MDsKCX0gZWxzZSBpZigobGVuZ3RoPjApICYmICgoYz09JyAnKSB8fCAoYz09J1x0Jykp
KSB7CgkgIGFjdGl2ZT0yOyBsZW5ndGg9MDsKCX0gZWxzZSBpZigobGVuZ3RoPjApICYmIChjPT0n
XG4nKSkgewoJICBhY3RpdmU9MTsgbGVuZ3RoPTA7CgkgIGlmKHZhcmlhYmxlPT10bXApIGM9RU9G
OwoJfSBlbHNlIGlmKChjIT0nICcpICYmIChjIT0nXHQnKSAmJiAoYyE9J1xuJykpIHsKCSAgdG1w
W2xlbmd0aF09YzsgdG1wW2xlbmd0aCsxXT0nXDAnOyBsZW5ndGgrKzsgCgl9IGJyZWFrOwkKCWNh
c2UgMjogaWYoYz09JyMnKSB7IAoJICBhY3RpdmU9MDsKCX0gZWxzZSBpZigoYz09J1xuJykgfHwg
KGM9PUVPRikpIHsKCSAgYWN0aXZlPTE7CgkgIGxlbmd0aD0wOwoJICBpZih2YXJpYWJsZT09dG1w
KSBkPTE7Cgl9IGVsc2UgaWYoKGxlbmd0aD09MCkgJiYgKChjPT0nICcpIHx8IChjPT0nXHQnKSB8
fCAoYz09Jz0nKSkpIHsKCSAgLy8gZG8gbm90aGluZwoJfSBlbHNlIGlmKChjPT0nICcpIHx8IChj
PT0nXHQnKSkgewoJICBhY3RpdmU9MDsKCSAgaWYodmFyaWFibGU9PXRtcCkgZD0xOwoJfSBlbHNl
IHsgCgkgIHJlc3BvbnNlW2xlbmd0aF09YzsgcmVzcG9uc2VbbGVuZ3RoKzFdPSdcMCc7IGxlbmd0
aCsrOyAKCX0gYnJlYWs7Cgl9CgkvLyBwcmludGYoIiVpICVjICVzICVzXG4iLCBhY3RpdmUsIGMs
IHRtcCwgcmVzcG9uc2UpOwogICAgICB9IHdoaWxlICgoYyE9RU9GKSAmJiAoZCE9MSkpOwoKICAg
ICAgaWYoKGQ9PTApIHx8IChzdHJjbXAocmVzcG9uc2UsIiIpPT0wKSkgCglzdHJjcHkocmVzcG9u
c2UsIGRlZl92YWwuY19zdHIoKSk7CiAgICAgIAogICAgICBpZihmcCE9c3RkaW4gJiYgZnAhPTAp
IAoJZmNsb3NlKGZwKTsKICAgIH0KICAgIHByaW50ZigiLi4uIEFkb3B0aW5nICVzIGVxdWFsIHRv
IFwiJXNcIlxuXG4iLCB2YXJpYWJsZS5jX3N0cigpLCByZXNwb25zZSk7CiAgfQoKI2lmZGVmIFBB
UkFMTEVMCiAgbXBpLmJyb2FkY2FzdChyZXNwb25zZSwgMTAyNCwgcCk7CiNlbmRpZgogIHN0cmlu
ZyBzKHJlc3BvbnNlKTsKICByZXR1cm4gczsKfQoKCgoKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABtZHBfcmFuZG9tX2dlbmVyYXRvci5oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDEwMDY0
NAAwMDMzMTI2ADAwMjQ0NjEAMDAwMDAwMTIyMzAAMTAxNDMwMTMxNTYAMDE2MTY2ACAwAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAATURpUGllcnJvAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAABta2dyb3VwLWwtZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vIENsYXNzOiAgICAgICAgIG1kcF9yYW5kb21fZ2VuZXJh
dG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLwovLyBWZXJzaW9uOiAgIDIu
MwovLyBEYXRlOiAgICAgIDEtT2N0LTIwMDIKLy8gQXV0aG9yOiAgICBNYXNzaW1vIERpIFBpZXJy
byA8bWRwQG1ldGFjcnlwdGlvbi5jb20+Ci8vIExpY2Vuc2U6ICAgVGhpcyBmaWxlIGlzIGV4Y2x1
c2l2ZSBwcm9wZXJ0eSBvZiBNZXRhQ3J5cHRpb24gTExDCi8vICAgICAgICAgICAgUmVhZCBhdHRh
Y2hlZCBsaWNlbnNlIGluIGZpbGUgbWRwX2xpY2Vuc2UucGRmCi8vICAgICAgICAgICAgVGhpcyBm
aWxlIGNhbm5vdCBiZSBkaXN0cmlidXRlZCB3aXRob3V0IGZpbGUgbWRwX2xpY2Vuc2UucGRmCi8v
Ci8vIE1ldGhvZHM6ICAgICAgIHJlYWRfc2VlZCgpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vCi8vICAgICAgICAgICAgICAgIHdyaXRlX3NlZWQoKSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vCi8vICAgICAgICAgICAgICAgIGZsb2F0ICBw
bGFpbigpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8KLy8gICAgICAgICAg
ICAgICAgZG91YmxlIGRpc3RyaWJ1dGlvbihmbG9hdCAoKmYpKGZsb2F0LHZvaWQqKSx2b2lkKikv
LwovLyAgICAgICAgICAgICAgICBmbG9hdCAgZ2F1c3NpYW4obWVhbj0wLCBzaWdtYT0xKSAgICAg
ICAgICAgICAgICAgIC8vCi8vICAgICAgICAgICAgICAgIE1hdHJpeCBTVShOKSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpjbGFzcyBtZHBf
cmFuZG9tX2dlbmVyYXRvciB7CiBwcml2YXRlOgogIGZsb2F0IHVbOThdOwogIGZsb2F0IGM7CiAg
ZmxvYXQgY2Q7CiAgZmxvYXQgY207CiAgaW50IHVpOwogIGludCB1ajsKcHVibGljOgogIGlubGlu
ZSBmbG9hdCBwbGFpbigpIHsKICAgIGZsb2F0IGx1bmk7CQkJLyogbG9jYWwgdmFyaWFibGUgZm9y
IEZsb2F0ICovICAgICAgCiAgICBsdW5pID0gdVt1aV0gLSB1W3VqXTsKICAgIGlmIChsdW5pIDwg
MC4wKQogICAgICBsdW5pICs9IDEuMDsKICAgIHVbdWldID0gbHVuaTsKICAgIGlmICgtLXVpID09
IDApCiAgICAgIHVpID0gOTc7CiAgICBpZiAoLS11aiA9PSAwKQogICAgICB1aiA9IDk3OwogICAg
aWYgKChjIC09IGNkKSA8IDAuMCkKICAgICAgYyArPSBjbTsKICAgIGlmICgobHVuaSAtPSBjKSA8
IDAuMCkKICAgICAgbHVuaSArPSAxLjA7CiAgICByZXR1cm4gKChmbG9hdCkgbHVuaSk7CiAgfQoK
ICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLwogIC8vICAgICAgaW5pdGlhbGl6ZWk6IHRoaXMgdGFrZXMgYSBzaW5n
bGUgaW50ZWdlciBpbiB0aGUgcmFuZ2UKICAvLwkJMCA8PSBpamtsIDw9IDkwMCAwMDAgMDAwCiAg
Ly8JYW5kIHByb2R1Y2VzIHRoZSBmb3VyIHNtYWxsZXIgaW50ZWdlcnMgbmVlZGVkIGZvciBzdGFy
dC4gSXQgaXMKICAvLwliYXNlZCBvbiB0aGUgaWRlYXMgY29udGFpbmVkIGluIHRoZSBSTUFSSU4g
c3Vicm91dGluZSBpbgogIC8vCQlGLiBKYW1lcywgIkEgUmV2aWV3IG9mIFBzZXVkb3JhbmRvbSBO
dW1iZXIgR2VuZXJhdG9ycyIsCiAgLy8JCQlDb21wLiBQaHlzLiBDb21tdW4uIE9jdCAxOTkwLCBw
LjM0MAogIC8vCVRvIHJlZHVjZSB0aGUgbW9kaWZpY2F0aW9ucyB0byB0aGUgZXhpc3RpbmcgY29k
ZSwgc2VlZF91bmkgbm93CiAgLy8JdGFrZXMgdGhlIHJvbGUgb2YgYSBwcmVwcm9jZXNzb3IgZm9y
IHJzdGFydC4KICAvLwogIC8vCVRoaXMgaXMgdXNlZnVsIGZvciB0aGUgcGFyYWxsZWwgdmVyc2lv
biBvZiB0aGUgY29kZSBhcyBKYW1lcwogIC8vCXN0YXRlcyB0aGF0IGFueSBpbnRlZ2VyIGlqa2wg
d2lsbCBwcm9kdWNlIGEgc3RhdGlzdGljYWxseQogIC8vCWluZGVwZW5kZW50IHNlcXVlbmNlIG9m
IHJhbmRvbSBudW1iZXJzLgogIC8vCiAgLy8gICAgIFZlcnkgZnVubnkuIAogIC8vICAgICBJZiB0
aGF0IHN0YXRlbWVudCB3YXMgd29ydGggYW55dGhpbmcgaGUgd291bGQgaGF2ZSBwcm92aWRlZAog
IC8vICAgICBhIHByb29mIHRvIGdvIHdpdGggaXQuIHNwYiAxMi8xMi85MCAKICAvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLwoKICB2b2lkIGluaXRpYWxpemUobG9uZyBpamtsKSB7CiAgICBpbnQgaSwgaiwgaywgbCwg
aWosIGtsOwogICAgaWYoIChpamtsIDwgMCkgfHwgKGlqa2wgPiA5MDAwMDAwMDApICkKICAgICAg
ZXJyb3IoIldyb25nIGluaXRpYWxpemF0aW9uIGZvciByYW5kb20gbnVtYmVyIGdlbmVyYXRvciIp
OwogICAgaWogPSBpamtsLzMwMDgyOwogICAga2wgPSBpamtsIC0gKDMwMDgyICogaWopOwogICAg
aSA9ICgoaWovMTc3KSAlIDE3NykgKyAyOwogICAgaiA9IChpaiAlIDE3NykgKyAyOwogICAgayA9
ICgoa2wvMTY5KSAlIDE3OCkgKyAxOwogICAgbCA9IGtsICUgMTY5OwogICAgaWYoIChpIDw9IDAp
IHx8IChpID4gMTc4KSApCiAgICAgIGVycm9yKCJXcm9uZyBpbml0aWFsaXphdGlvbiBmb3IgcmFu
ZG9tIG51bWJlciBnZW5lcmF0b3IiKTsJCiAgICBpZiggKGogPD0gMCkgfHwgKGogPiAxNzgpICkK
ICAgICAgZXJyb3IoIldyb25nIGluaXRpYWxpemF0aW9uIGZvciByYW5kb20gbnVtYmVyIGdlbmVy
YXRvciIpOwkKICAgIGlmKCAoayA8PSAwKSB8fCAoayA+IDE3OCkgKQogICAgICBlcnJvcigiV3Jv
bmcgaW5pdGlhbGl6YXRpb24gZm9yIHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yIik7CQogICAgaWYo
IChsIDwgMCkgfHwgKGwgPiAxNjgpICkKICAgICAgZXJyb3IoIldyb25nIGluaXRpYWxpemF0aW9u
IGZvciByYW5kb20gbnVtYmVyIGdlbmVyYXRvciIpOwkKICAgIGlmIChpID09IDEgJiYgaiA9PSAx
ICYmIGsgPT0gMSkKICAgICAgZXJyb3IoIldyb25nIGluaXRpYWxpemF0aW9uIGZvciByYW5kb20g
bnVtYmVyIGdlbmVyYXRvciIpOwkKICAgIGludCBpaSwgamosIG07CiAgICBmbG9hdCBzLCB0Owog
ICAgZm9yIChpaSA9IDE7IGlpIDw9IDk3OyBpaSsrKSB7CiAgICAgIHMgPSAwLjA7CiAgICAgIHQg
PSAwLjU7CiAgICAgIGZvciAoamogPSAxOyBqaiA8PSAyNDsgamorKykgewoJbSA9ICgoaSpqICUg
MTc5KSAqIGspICUgMTc5OwoJaSA9IGo7CglqID0gazsKCWsgPSBtOwoJbCA9ICg1MypsKzEpICUg
MTY5OwoJaWYgKGwqbSAlIDY0ID49IDMyKSBzICs9IHQ7Cgl0ICo9IDAuNTsKICAgICAgfQogICAg
ICB1W2lpXSA9IHM7CiAgICB9CiAgICBjICA9IDM2MjQzNi4wICAgLyAxNjc3NzIxNi4wOwogICAg
Y2QgPSA3NjU0MzIxLjAgIC8gMTY3NzcyMTYuMDsKICAgIGNtID0gMTY3NzcyMTMuMCAvIDE2Nzc3
MjE2LjA7CiAgICB1aSA9IDk3OyAvKiAgVGhlcmUgaXMgYSBidWcgaW4gdGhlIG9yaWdpbmFsIEZv
cnRyYW4gdmVyc2lvbiAqLwogICAgdWogPSAzMzsgLyogIG9mIFVOSSAtLSBpIGFuZCBqIHNob3Vs
ZCBiZSBTQVZFZCBpbiBVTkkoKSAgICAgKi8KICB9CiAgbWRwX3JhbmRvbV9nZW5lcmF0b3IobG9u
ZyBrPTApIHsKICAgIGlmKGs9PTApIGluaXRpYWxpemUoTUUpOwogIH0KICBmbG9hdCBnYXVzc2lh
bihmbG9hdCBzaWdtYT0xKSB7CiNpZmRlZiBBSVgKICAgIHN0YXRpYyBpbnQgaTsgLy8gYXNzdW1l
cyBpIGlzIHNldCB0byB6ZXJvIGJ5IGRlZmF1bHQKI2Vsc2UKICAgIHN0YXRpYyBpbnQgaT0wOwoj
ZW5kaWYKICAgIHN0YXRpYyBmbG9hdCByOwogICAgZmxvYXQgeCx5OwogICAgaWYoaT09MCkgewog
ICAgICB4PShmbG9hdCkgc3FydCgtMi4wKmxvZyhwbGFpbigpKSk7CiAgICAgIHk9KGZsb2F0KSAy
LjAqUGkqcGxhaW4oKTsKICAgICAgaT0xOwogICAgICByPXNpZ21hKngqKChmbG9hdCkgY29zKHkp
KTsKICAgICAgcmV0dXJuIHNpZ21hKngqKChmbG9hdCkgc2luKHkpKTsKICAgIH0gZWxzZSB7CiAg
ICAgIGk9MDsKICAgICAgcmV0dXJuIHI7CiAgICB9CiAgfQogIAogIGRvdWJsZSBkaXN0cmlidXRp
b24oZmxvYXQgKCpmcCkoZmxvYXQsIHZvaWQgKiksIHZvaWQgKmE9MCkgewogICAgZmxvYXQgeCx5
OwogICAgZG8gewogICAgICB4PXBsYWluKCk7CiAgICAgIHk9cGxhaW4oKTsKICAgIH0gd2hpbGUg
KCgqZnApKHgsIGEpPj15KTsKICAgIHJldHVybiB4OwogIH0KCiAgbWRwX21hdHJpeCBTVShpbnQg
bikgewogICAgbWRwX21hdHJpeCB0bXAsIHNtYWxsOwogICAgcmVnaXN0ZXIgaW50IGksajsKICAg
IHJlZ2lzdGVyIGZsb2F0IGFscGhhLCBzaW5fYWxwaGE7CiAgICByZWdpc3RlciBmbG9hdCBhMCwg
YTEsIGEyLCBhMzsKICAgIHJlZ2lzdGVyIGZsb2F0IHBoaSwgY29zX3RoZXRhLCBzaW5fdGhldGE7
CiAgICBpZihuPT0xKSB7IAogICAgICB0bXAuZGltZW5zaW9uKDEsMSk7CiAgICAgIGFscGhhPTIu
MCpQaSp0aGlzLT5wbGFpbigpOwoJdG1wKDAsMCk9bWRwX2NvbXBsZXgoY29zKGFscGhhKSxzaW4o
YWxwaGEpKTsKICAgICAgcmV0dXJuIHRtcDsKICAgIH0KICAgIHRtcD1tZHBfaWRlbnRpdHkobik7
CiAgICBmb3IoaT0wOyBpPChuLTEpOyBpKyspCiAgICAgIGZvcihqPWkrMTsgajxuOyBqKyspIHsK
ICAgICAgICBhbHBoYT1QaSp0aGlzLT5wbGFpbigpOyAKCXBoaT0yLjAqUGkqdGhpcy0+cGxhaW4o
KTsKCWNvc190aGV0YT0yLjAqdGhpcy0+cGxhaW4oKS0xLjA7CglzaW5fdGhldGE9c3FydCgxLjAt
Y29zX3RoZXRhKmNvc190aGV0YSk7CglzaW5fYWxwaGE9c2luKGFscGhhKTsKCWEwPWNvcyhhbHBo
YSk7CglhMT1zaW5fYWxwaGEqc2luX3RoZXRhKmNvcyhwaGkpOwoJYTI9c2luX2FscGhhKnNpbl90
aGV0YSpzaW4ocGhpKTsKCWEzPXNpbl9hbHBoYSpjb3NfdGhldGE7CglzbWFsbD1tZHBfaWRlbnRp
dHkobik7CglzbWFsbChpLGkpPW1kcF9jb21wbGV4KGEwLGEzKTsKCXNtYWxsKGksaik9bWRwX2Nv
bXBsZXgoYTIsYTEpOwoJc21hbGwoaixpKT1tZHBfY29tcGxleCgtYTIsYTEpOwoJc21hbGwoaixq
KT1tZHBfY29tcGxleChhMCwtYTMpOwoJdG1wPXNtYWxsKnRtcDsKICAgICAgfQogICAgcmV0dXJu
IHRtcDsKICB9CgogIHZvaWQgc2tpcChpbnQgbikgewogICAgZm9yKGludCBpPTA7IGk8bjsgaSsr
KSB0aGlzLT5wbGFpbigpOwogIH0KfSBtZHBfcmFuZG9tOwoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtZHBf
c2l0ZS5oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDEwMDY0NAAwMDMzMTI2ADAw
MjQ0NjEAMDAwMDAwMTc3NTUAMTAxNDMwMTMxNTYAMDEzNjI1ACAwAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAATURpUGllcnJvAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABta2dyb3VwLWwtZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCi8vIEZpbGU6ICAgICAgbWRwX3NpdGUuaAovLyBWZXJzaW9uOiAgIDIuMwov
LyBEYXRlOiAgICAgIDEtT2N0LTIwMDIKLy8gQXV0aG9yOiAgICBNYXNzaW1vIERpIFBpZXJybyA8
bWRwQG1ldGFjcnlwdGlvbi5jb20+Ci8vIExpY2Vuc2U6ICAgVGhpcyBmaWxlIGlzIGV4Y2x1c2l2
ZSBwcm9wZXJ0eSBvZiBNZXRhQ3J5cHRpb24gTExDCi8vICAgICAgICAgICAgUmVhZCBhdHRhY2hl
ZCBsaWNlbnNlIGluIGZpbGUgbWRwX2xpY2Vuc2UucGRmCi8vICAgICAgICAgICAgVGhpcyBmaWxl
IGNhbm5vdCBiZSBkaXN0cmlidXRlZCB3aXRob3V0IGZpbGUgbWRwX2xpY2Vuc2UucGRmCi8vCi8v
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCgpjbGFzcyBtZHBfc2l0ZSB7CiBwcml2YXRlOgogIG1kcF9sYXR0aWNl
ICpwdHI7ICAvKiB0aGlzIHBvaW50cyB0byB0aGUgbGF0dGljZSBmb3IgdGhpcyBmaWVsZCAgKi8K
IHB1YmxpYzoKICBsb25nIGlkeDsgICAgICAgICAgICAgIC8qIHZhbHVlIG9mIHRoZSBtZHBfc2l0
ZSBpbiBsb2NhbCBjb29yZGluYXRlICAgICAgKi8KI2lmZGVmIEJMT0NLU0lURQogIGludCBibG9j
a1tCTE9DS1NJVEVdOwojZW5kaWYKICBtZHBfc2l0ZSgpIHsKICAgIC8vIG9uZSB3aG91bGQgbm90
IHVzZSB0aGlzIQogICAgcHRyPTA7CiAgICBpZHg9MDsKICB9CiAgbWRwX3NpdGUoY29uc3QgbWRw
X2xhdHRpY2UgJmEpIHsKICAgIG9uKGEpOwogIH0KICB2b2lkIG9uKGNvbnN0IG1kcF9sYXR0aWNl
ICZhKSB7CiAgICBwdHI9KG1kcF9sYXR0aWNlKikgJmE7CiAgICBpZHg9KCpwdHIpLnN0YXJ0W01F
XVswXTsKI2lmZGVmIEJMT0NLU0lURQogICAgZm9yKGludCBrPTA7IGs8QkxPQ0tTSVRFOyBrKysp
IGJsb2NrW2tdPTA7CiNlbmRpZgogIH0KICBpbmxpbmUgbWRwX2xhdHRpY2UgJmxhdHRpY2UoKSB7
CiAgICByZXR1cm4gKnB0cjsKICB9CiAgaW5saW5lIG1kcF9zaXRlKGxvbmcgaSwgbWRwX2xhdHRp
Y2UqIHB0cjIpIHsKICAgIGlkeD1pOwogICAgcHRyPXB0cjI7CiNpZmRlZiBCTE9DS1NJVEUKICAg
IGZvcihpbnQgaz0wOyBrPEJMT0NLU0lURTsgaysrKSBibG9ja1trXT0wOwojZW5kaWYKICB9CiNp
ZmRlZiBCTE9DS1NJVEUKICBpbmxpbmUgbWRwX3NpdGUobG9uZyBpLCBtZHBfbGF0dGljZSogcHRy
MiwgaW50IGJbXSwgaW50IHNpZ249MCwgaW50IG11PTApIHsKICAgIGlkeD1pOwogICAgcHRyPXB0
cjI7CiAgICBmb3IoaW50IGs9MDsgazxCTE9DS1NJVEU7IGsrKykgYmxvY2tba109YltrXTsKICAg
IGJsb2NrW211XSs9c2lnbjsKICB9CiNlbmRpZgogIG1kcF9zaXRlKGNvbnN0IG1kcF9zaXRlICZ4
KSB7CiAgICBpZHg9eC5pZHg7CiAgICBwdHI9eC5wdHI7CiNpZmRlZiBCTE9DS1NJVEUKICAgIGZv
cihpbnQgaz0wOyBrPEJMT0NLU0lURTsgaysrKSBibG9ja1trXT14LmJsb2NrW2tdOwojZW5kaWYK
ICB9CiAgaW5saW5lIG1kcF9zaXRlIG9wZXJhdG9yPShsb25nIGkpIHsKICAgIGlkeD1sYXR0aWNl
KCkuc3RhcnRbTUVdWzBdK2k7CiAgICByZXR1cm4gbWRwX3NpdGUoaWR4LCBwdHIpOwogIH0KICBp
bmxpbmUgbWRwX3NpdGUgb3BlcmF0b3I9KG1kcF9zaXRlIHgpIHsKICAgIGlmKHB0cj09eC5wdHIp
IGlkeD14LmlkeDsKICAgIGVsc2UgICAgICAgICAgIHNldF9nbG9iYWwoeC5nbG9iYWxfaW5kZXgo
KSk7CiNpZmRlZiBCTE9DS1NJVEUKICAgIGZvcihpbnQgaz0wOyBrPEJMT0NLU0lURTsgaysrKSBi
bG9ja1trXT14LmJsb2NrW2tdOwogICAgcmV0dXJuIG1kcF9zaXRlKGlkeCwgcHRyLCBibG9jayk7
CiNlbmRpZgogICAgcmV0dXJuIG1kcF9zaXRlKGlkeCwgcHRyKTsKICB9CiAgaW5saW5lIGludCBv
cGVyYXRvcj09KG1kcF9zaXRlIHgpIHsKICAgIGlmKChpZHg9PU5PV0hFUkUpIHx8ICh4LmlkeD09
Tk9XSEVSRSkpIHJldHVybiBGQUxTRTsKICAgIHJldHVybiAoZ2xvYmFsX2luZGV4KCk9PXguZ2xv
YmFsX2luZGV4KCkpOwogIH0KICBpbmxpbmUgaW50IG9wZXJhdG9yIT0obWRwX3NpdGUgeCkgewog
ICAgaWYoKGlkeD09Tk9XSEVSRSkgfHwgKHguaWR4PT1OT1dIRVJFKSkgcmV0dXJuIFRSVUU7CiAg
ICByZXR1cm4gKGdsb2JhbF9pbmRleCgpIT14Lmdsb2JhbF9pbmRleCgpKTsKICB9CiAgaW5saW5l
IHZvaWQgc3RhcnQoaW50IG5wPTApIHsKI2lmZGVmIEJMT0NLU0lURQogIGZvcihpbnQgaz0wOyBr
PEJMT0NLU0lURTsgaysrKSBibG9ja1trXT0wOwojZW5kaWYKICAgIGlkeD1sYXR0aWNlKCkuc3Rh
cnRbTUVdW25wXTsKICB9CiAgaW5saW5lIHZvaWQgbmV4dCgpIHsKICAgIGlkeCsrOwogIH0KICBp
bmxpbmUgaW50IGlzX2luKCkgewogICAgaWYoKGlkeD49bGF0dGljZSgpLnN0YXJ0W01FXVswXSkg
JiYgCiAgICAgICAoaWR4PGxhdHRpY2UoKS5zdG9wW01FXVsxXSkpIHJldHVybiAxOwogICAgZWxz
ZSByZXR1cm4gMDsKICB9CiAgaW5saW5lIGludCBpc19oZXJlKCkgewogICAgaWYoKGlkeD49MCkg
JiYgKGlkeDxsYXR0aWNlKCkubnZvbCkpIHJldHVybiAxOwogICAgZWxzZSByZXR1cm4gMDsKICB9
CiAgaW5saW5lIGludCBwYXJpdHkoKSB7CiAgICByZXR1cm4gbGF0dGljZSgpLnBhcml0eVtpZHhd
OwogIH0KICBpbmxpbmUgaW50IGlzX2luX2JvdW5kYXJ5KCkgewogICAgcmV0dXJuIChsYXR0aWNl
KCkud2hbaWR4XSE9TUUpOwogIH0KICBpbmxpbmUgbG9uZyBsb2NhbF9pbmRleCgpIHsKICAgIHJl
dHVybiBpZHg7CiAgfQogIGlubGluZSBsb25nIGdsb2JhbF9pbmRleCgpIHsKICAgIHJldHVybiBs
YXR0aWNlKCkuZ2xbaWR4XTsKICB9CgogIGlubGluZSB2b2lkIHNldF9sb2NhbChsb25nIGlkeDIp
IHsKICAgIGlkeD1pZHgyOwogIH0KICBpbmxpbmUgdm9pZCBzZXRfZ2xvYmFsKGxvbmcgaWR4X2ds
KSB7CiAgICBsb25nIGlkeDI9bGF0dGljZSgpLmxvY2FsKGlkeF9nbCk7CiAgICBpZihpZHgyPT1O
T1dIRVJFKSAKICAgICAgZXJyb3IoInNldF9nbG9iYWwoKSB0cnlpbmcgdG8gYWNjZXNzIGEgc2l0
ZSB0aGF0IGlzIG5vdCBoZXJlIik7CiAgICBpZHg9aWR4MjsKICB9CiAgaW5saW5lIG1kcF9zaXRl
IG9wZXJhdG9yKyAoaW50IG11KSB7CiAgICBsb25nIGlkeDI9bGF0dGljZSgpLnVwW2lkeF1bbXVd
OwogICAgaWYoaWR4Mj09Tk9XSEVSRSkKICAgICAgZXJyb3IoIllvdSBjYW5ub3QgZXhpdCBmcm9t
IHlvdXIgcG9ydGlvbiBvZiB0aGUgbGF0dGljZSIpOwojaWZkZWYgQkxPQ0tTSVRFCiAgICBpZigo
bXU8QkxPQ0tTSVRFKSAmJiAobGF0dGljZSgpLmNvW2lkeF1bbXVdPT1sYXR0aWNlKCkubnhbbXVd
LTEpKQogICAgICByZXR1cm4gbWRwX3NpdGUoaWR4MiwgcHRyLCBibG9jaywxLG11KTsKICAgIHJl
dHVybiBtZHBfc2l0ZShpZHgyLCBwdHIsIGJsb2NrKTsKI2VuZGlmCiAgICByZXR1cm4gbWRwX3Np
dGUoaWR4MiwgcHRyKTsKICB9CiAgaW5saW5lIG1kcF9zaXRlIG9wZXJhdG9yLSAoaW50IG11KSB7
CiAgICBsb25nIGlkeDI9bGF0dGljZSgpLmR3W2lkeF1bbXVdOwogICAgaWYoaWR4Mj09Tk9XSEVS
RSkKICAgICAgZXJyb3IoIllvdSBjYW5ub3QgZXhpdCBmcm9tIHlvdXIgcG9ydGlvbiBvZiB0aGUg
bGF0dGljZSIpOwojaWZkZWYgQkxPQ0tTSVRFCiAgICBpZigobXU8QkxPQ0tTSVRFKSAmJiAobGF0
dGljZSgpLmNvW2lkeF1bbXVdPT0wKSkKICAgICAgcmV0dXJuIG1kcF9zaXRlKGlkeDIsIHB0ciwg
YmxvY2ssIC0xLG11KTsKICAgIHJldHVybiBtZHBfc2l0ZShpZHgyLCBwdHIsIGJsb2NrKTsKI2Vu
ZGlmCiAgICByZXR1cm4gbWRwX3NpdGUoaWR4MiwgcHRyKTsKICB9CgogIGlubGluZSBtZHBfc2l0
ZSBob3AoaW50IGksIGludCBtdSkgewogICAgaWYoaTwwKSByZXR1cm4gKCp0aGlzKS1tdTsKICAg
IGlmKGk+MCkgIHJldHVybiAoKnRoaXMpK211OwogICAgcmV0dXJuICgqdGhpcyk7CiAgfQogIAog
IGlubGluZSBtZHBfc2l0ZSBvcGVyYXRvcj0gKG1kcF92ZWN0b3IgdikgewogICAgc2V0KHYueFsw
XSx2LnhbMV0sdi54WzJdLHYueFszXSx2LnhbNF0sCgl2LnhbNV0sdi54WzZdLHYueFs3XSx2Lnhb
OF0sdi54WzldKTsKICAgIHJldHVybiAqdGhpczsKICB9CiAgaW5saW5lIG1kcF9zaXRlIG9wZXJh
dG9yKyAobWRwX3ZlY3RvciB2KSB7CiAgICBpbnQgbXUsc3RlcDsKICAgIG1kcF9zaXRlIHk9KnRo
aXM7CiAgICBmb3IobXU9MDsgbXU8bGF0dGljZSgpLm5kaW07IG11KyspIHsKICAgICAgaWYodi54
W211XT4wKSBmb3Ioc3RlcD0wOyBzdGVwPHYueFttdV07IHN0ZXArKykgeT15K211OwogICAgICBl
bHNlICAgICAgICAgIGZvcihzdGVwPTA7IHN0ZXA8LXYueFttdV07IHN0ZXArKykgeT15LW11Owog
ICAgfQogICAgcmV0dXJuIHk7CiAgfQoKICBpbmxpbmUgbWRwX3NpdGUgb3BlcmF0b3ItIChtZHBf
dmVjdG9yIHYpIHsKICAgIGludCBtdSxzdGVwOwogICAgbWRwX3NpdGUgeT0qdGhpczsKICAgIGZv
cihtdT0wOyBtdTxsYXR0aWNlKCkubmRpbTsgbXUrKykgewogICAgICBpZih2LnhbbXVdPjApIGZv
cihzdGVwPTA7IHN0ZXA8di54W211XTsgc3RlcCsrKSB5PXktbXU7CiAgICAgIGVsc2UgICAgICAg
ICAgZm9yKHN0ZXA9MDsgc3RlcDwtdi54W211XTsgc3RlcCsrKSB5PXkrbXU7CiAgICB9CiAgICBy
ZXR1cm4geTsKICB9CgogIGlubGluZSBpbnQgb3BlcmF0b3IoKSAoaW50IG11KSB7CiAgICByZXR1
cm4gbGF0dGljZSgpLmNvW2lkeF1bbXVdOwogIH0KICB2b2lkIG9wZXJhdG9yPSAoaW50ICp4KSB7
CiAgICBpbnQgbmRpbT1sYXR0aWNlKCkubmRpbTsKICAgIGlkeD14WzBdOwogICAgZm9yKGludCBt
dT0xOyBtdTxuZGltOyBtdSsrKSBpZHg9aWR4KmxhdHRpY2UoKS5ueFttdV0reFttdV07CiAgICBp
ZHg9bGF0dGljZSgpLmxvY2FsKGlkeCk7CiAgICBpZihpZHg9PU5PV0hFUkUpIHsKICAgICAgYm9v
bCBwcmludD1tZHAucHJpbnQ7CiAgICAgIG1kcC5wcmludD10cnVlOwogICAgICBtZHAgPDwgIldh
cm5pbmcgbWVzc2FnZSBmcm9tIE1FPSIgPDwgTUUgPDwgIjpcbiI7CiAgICAgIG1kcCA8PCAiWW91
IGFzc2lnbmVkIGEgc2l0ZSB0aGF0IGlzIG5vdCBoZXJlIVxuIjsKICAgICAgbWRwLnByaW50PXBy
aW50OwogICAgfQogIH0KICB2b2lkIHNldChpbnQgeDAsIGludCB4MT0wLCBpbnQgeDI9MCwgaW50
IHgzPTAsIGludCB4ND0wLCAKCSAgIGludCB4NT0wLCBpbnQgeDY9MCwgaW50IHg3PTAsIGludCB4
OD0wLCBpbnQgeDk9MCkgewogICAgaW50IG5kaW09bGF0dGljZSgpLm5kaW07CiAgICBpZHg9eDA7
CiAgICBpZihuZGltPjEpIGlkeD1pZHgqbGF0dGljZSgpLm54WzFdK3gxOwogICAgaWYobmRpbT4y
KSBpZHg9aWR4KmxhdHRpY2UoKS5ueFsyXSt4MjsKICAgIGlmKG5kaW0+MykgaWR4PWlkeCpsYXR0
aWNlKCkubnhbM10reDM7CiAgICBpZihuZGltPjQpIGlkeD1pZHgqbGF0dGljZSgpLm54WzRdK3g0
OwogICAgaWYobmRpbT41KSBpZHg9aWR4KmxhdHRpY2UoKS5ueFs1XSt4NTsKICAgIGlmKG5kaW0+
NikgaWR4PWlkeCpsYXR0aWNlKCkubnhbNl0reDY7CiAgICBpZihuZGltPjcpIGlkeD1pZHgqbGF0
dGljZSgpLm54WzddK3g3OwogICAgaWYobmRpbT44KSBpZHg9aWR4KmxhdHRpY2UoKS5ueFs4XSt4
ODsKICAgIGlmKG5kaW0+OSkgaWR4PWlkeCpsYXR0aWNlKCkubnhbOV0reDk7CiAgICBpZHg9bGF0
dGljZSgpLmxvY2FsKGlkeCk7CiAgICBpZihpZHg9PU5PV0hFUkUpIHsKICAgICAgYm9vbCBwcmlu
dD1tZHAucHJpbnQ7CiAgICAgIG1kcC5wcmludD10cnVlOwogICAgICBtZHAgPDwgIldhcm5pbmcg
bWVzc2FnZSBmcm9tIE1FPSIgPDwgTUUgPDwgIjpcbiI7CiAgICAgIG1kcCA8PCAiWW91IGFzc2ln
bmVkIGEgc2l0ZSB0aGF0IGlzIG5vdCBoZXJlIVxuIjsKICAgICAgbWRwLnByaW50PXByaW50Owog
ICAgfQogIH0KICBpbnQgb3BlcmF0b3I9PShpbnQgKngpIHsKICAgIGludCBuZGltPWxhdHRpY2Uo
KS5uZGltOwogICAgaW50IGlzX2l0PTE7CiAgICBmb3IoaW50IG11PTA7IG11PG5kaW07IG11Kysp
IAogICAgICBpZih4W211XSE9bGF0dGljZSgpLmNvW2lkeF1bbXVdKSBpc19pdD0wOwogICAgcmV0
dXJuIGlzX2l0OwogIH0KICBpbnQgb3BlcmF0b3IhPShpbnQgKngpIHsKICAgIHJldHVybiAhKCp0
aGlzID09IHgpOwogIH0KICAKICBpbnQgaXNfZXF1YWwoaW50IHgwLCBpbnQgeDE9MCwgaW50IHgy
PTAsIGludCB4Mz0wLCBpbnQgeDQ9MCwgCgkgICAgICAgaW50IHg1PTAsIGludCB4Nj0wLCBpbnQg
eDc9MCwgaW50IHg4PTAsIGludCB4OT0wKSB7CiAgICBpbnQgbmRpbT1sYXR0aWNlKCkubmRpbTsK
ICAgIGludCBpc19pdD0xOwogICAgaWYoKG5kaW0+MCkgJiYgKHgwIT1sYXR0aWNlKCkuY29baWR4
XVswXSkpIGlzX2l0PTA7CiAgICBpZigobmRpbT4xKSAmJiAoeDEhPWxhdHRpY2UoKS5jb1tpZHhd
WzFdKSkgaXNfaXQ9MDsKICAgIGlmKChuZGltPjIpICYmICh4MiE9bGF0dGljZSgpLmNvW2lkeF1b
Ml0pKSBpc19pdD0wOwogICAgaWYoKG5kaW0+MykgJiYgKHgzIT1sYXR0aWNlKCkuY29baWR4XVsz
XSkpIGlzX2l0PTA7CiAgICBpZigobmRpbT40KSAmJiAoeDQhPWxhdHRpY2UoKS5jb1tpZHhdWzRd
KSkgaXNfaXQ9MDsKICAgIGlmKChuZGltPjUpICYmICh4NSE9bGF0dGljZSgpLmNvW2lkeF1bNV0p
KSBpc19pdD0wOwogICAgaWYoKG5kaW0+NikgJiYgKHg2IT1sYXR0aWNlKCkuY29baWR4XVs2XSkp
IGlzX2l0PTA7CiAgICBpZigobmRpbT43KSAmJiAoeDchPWxhdHRpY2UoKS5jb1tpZHhdWzddKSkg
aXNfaXQ9MDsKICAgIGlmKChuZGltPjgpICYmICh4OCE9bGF0dGljZSgpLmNvW2lkeF1bOF0pKSBp
c19pdD0wOwogICAgaWYoKG5kaW0+OSkgJiYgKHg5IT1sYXR0aWNlKCkuY29baWR4XVs5XSkpIGlz
X2l0PTA7CiAgICByZXR1cm4gaXNfaXQ7CiAgfQogIGlubGluZSBmcmllbmQgbG9uZyBzaXRlMmJp
bmFyeShtZHBfc2l0ZSB4KSB7CiAgICBpbnQgbXUsIGE9MDsKICAgIGZvcihtdT0wOyBtdTx4Lmxh
dHRpY2UoKS5uZGltOyBtdSsrKSB7CiNpZmRlZiBDSEVDS19BTEwKICAgICAgaWYoZmFicygwLjUt
eChtdSkpPjEpIGVycm9yKCJzaXRlMmJpbmFyeSIpOwojZW5kaWYKICAgICAgYSs9KDB4MSA8PCBt
dSkqeChtdSk7CiAgICB9CiAgICByZXR1cm4gYTsKICB9CiAgZnJpZW5kIGludCBvbl93aGljaF9w
cm9jZXNzKG1kcF9sYXR0aWNlICZhLCAKCQkJICAgICAgaW50IHgwPTAsIAoJCQkgICAgICBpbnQg
eDE9MCwgCgkJCSAgICAgIGludCB4Mj0wLCAKCQkJICAgICAgaW50IHgzPTAsIAoJCQkgICAgICBp
bnQgeDQ9MCwgCgkJCSAgICAgIGludCB4NT0wLCAKCQkJICAgICAgaW50IHg2PTAsIAoJCQkgICAg
ICBpbnQgeDc9MCwgCgkJCSAgICAgIGludCB4OD0wLCAKCQkJICAgICAgaW50IHg5PTApIHsKICAg
IGludCB4WzEwXTsKICAgIHhbMF09eDA7CiAgICBpZihhLm5kaW0+MSkgeFsxXT14MTsKICAgIGlm
KGEubmRpbT4yKSB4WzJdPXgyOwogICAgaWYoYS5uZGltPjMpIHhbM109eDM7CiAgICBpZihhLm5k
aW0+NCkgeFs0XT14NDsKICAgIGlmKGEubmRpbT41KSB4WzVdPXg1OwogICAgaWYoYS5uZGltPjYp
IHhbNl09eDY7CiAgICBpZihhLm5kaW0+NykgeFs3XT14NzsKICAgIGlmKGEubmRpbT44KSB4Wzhd
PXg4OwogICAgaWYoYS5uZGltPjkpIHhbOV09eDk7CiAgICByZXR1cm4gKCooYS53aGVyZSkpKHgs
IGEubmRpbSwgYS5ueCk7CiAgfQp9OwoKI2lmZGVmIE1EUF9MQVRUSUNFCgppbmxpbmUgbWRwX3Jh
bmRvbV9nZW5lcmF0b3IgJm1kcF9sYXR0aWNlOjpyYW5kb20obWRwX3NpdGUgeCkgewogIGlmKGxv
Y2FsX3JhbmRvbV9nZW5lcmF0b3IpIHsKICAgIGlmKCF4LmlzX2luKCkpIGVycm9yKCJyZXF1ZXN0
IHRoZSByYW5kb20gZ2VuZXJhdG9yIG9mIGEgbm9uIGxvY2FsIHNpdGUiKTsKICAgIHJldHVybiBy
YW5kb21fb2JqW3guaWR4LXN0YXJ0W01FXVswXV07CiAgfQogIHJldHVybiBtZHBfcmFuZG9tOwp9
CgojZW5kaWYKCgppbmxpbmUgaW50IGluX2Jsb2NrKG1kcF9zaXRlIHgpIHsKI2lmZGVmIFRXSVNU
RURfQk9VTkRBUlkKICBzdGF0aWMgaW50IG11OwogIGZvcihtdT0wOyBtdTx4LmxhdHRpY2UoKS5u
ZGltOyBtdSsrKQogICAgaWYoeC5ibG9ja1ttdV0hPTApIHJldHVybiBGQUxTRTsKI2VuZGlmCiAg
cmV0dXJuIFRSVUU7Cn07CgoAAAAAAAAAAAAAAAAAAAAAAAAAbWRwX3N3YXAuaAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAADAxMDA2NDQAMDAzMzEyNgAwMDI0NDYxADAwMDAwMDAxMDI2
ADEwMTQzMDEzMTU2ADAxMzYxMwAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAB1c3RhciAgAE1EaVBpZXJybwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWtncm91cC1s
LWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvLyBGaWxlOiAgICAgIG1kcF9zd2Fw
LmgKLy8gVmVyc2lvbjogICAyLjMKLy8gRGF0ZTogICAgICAxLU9jdC0yMDAyCi8vIEF1dGhvcjog
ICAgTWFzc2ltbyBEaSBQaWVycm8gPG1kcEBtZXRhY3J5cHRpb24uY29tPgovLyBMaWNlbnNlOiAg
IFRoaXMgZmlsZSBpcyBleGNsdXNpdmUgcHJvcGVydHkgb2YgTWV0YUNyeXB0aW9uIExMQwovLyAg
ICAgICAgICAgIFJlYWQgYXR0YWNoZWQgbGljZW5zZSBpbiBmaWxlIG1kcF9saWNlbnNlLnBkZgov
LyAgICAgICAgICAgIFRoaXMgZmlsZSBjYW5ub3QgYmUgZGlzdHJpYnV0ZWQgd2l0aG91dCBmaWxl
IG1kcF9saWNlbnNlLnBkZgovLwoKdGVtcGxhdGU8Y2xhc3MgVD4Kdm9pZCBzd2FwKFQgJmEsIFQg
JmIpIHsKICBUIGM7CiAgYz1hOwogIGE9YjsKICBiPWM7Cn0KCnRlbXBsYXRlPGNsYXNzIFQ+CnZv
aWQgc3dhcChUKiBhLCBUKiBiLCBpbnQgbikgewogIGludCBpOwogIFQgYzsKICBmb3IoaT0wOyBp
PG47IGkrKykgewogICAgYz1hW2ldOwogICAgYVtpXT1iW2ldOwogICAgYltpXT1jOwogIH0KfQoA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWRwX3RpbWVyLmgAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAADAxMDA2NDQAMDAzMzEyNgAwMDI0NDYxADAwMDAwMDAzNDY1ADEw
MTQzMDEzMTU2ADAxMzc3MgAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAB1c3RhciAgAE1EaVBpZXJybwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWtncm91cC1sLWQA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvLyBGaWxlOiAgICAgIG1kcF90aW1lci5o
Ci8vIFZlcnNpb246ICAgMi4zCi8vIERhdGU6ICAgICAgMS1PY3QtMjAwMgovLyBBdXRob3I6ICAg
IE1hc3NpbW8gRGkgUGllcnJvIDxtZHBAbWV0YWNyeXB0aW9uLmNvbT4KLy8gTGljZW5zZTogICBU
aGlzIGZpbGUgaXMgZXhjbHVzaXZlIHByb3BlcnR5IG9mIE1ldGFDcnlwdGlvbiBMTEMKLy8gICAg
ICAgICAgICBSZWFkIGF0dGFjaGVkIGxpY2Vuc2UgaW4gZmlsZSBtZHBfbGljZW5zZS5wZGYKLy8g
ICAgICAgICAgICBUaGlzIGZpbGUgY2Fubm90IGJlIGRpc3RyaWJ1dGVkIHdpdGhvdXQgZmlsZSBt
ZHBfbGljZW5zZS5wZGYKLy8KCiNpZmRlZiBMSU5VWCAKCiNpbmNsdWRlICJzeXMvdGltZS5oIgoj
aW5jbHVkZSAidW5pc3RkLmgiCgpkb3VibGUgd2FsbHRpbWUoKSB7CiAgZG91YmxlIG1pYywgdGlt
ZTsKICBkb3VibGUgbWVnYSA9IDAuMDAwMDAxOwogIHN0cnVjdCB0aW1ldmFsIHRwOwojaWYgZGVm
aW5lZChIQVZFX05PX1RJTUVaT05FKSAKICBzdHJ1Y3QgdGltZXpvbmUgewogICAgaW50ICB0el9t
aW51dGVzd2VzdDsgLy8gbWludXRlcyBvZiBHcmVlbndpY2ggCiAgICBpbnQgIHR6X2RzdHRpbWU7
ICAgICAvLyB0eXBlIG9mIGRzdCBjb3JyZWN0aW9uIAogIH0gdHpwID0gezAsMH07CiNlbHNlCiAg
c3RydWN0IHRpbWV6b25lIHR6cCA9ezAsMH07CiNlbmRpZgogIHN0YXRpYyBsb25nIGJhc2Vfc2Vj
ID0gMDsKICBzdGF0aWMgbG9uZyBiYXNlX3VzZWMgPSAwOwogIAogIGdldHRpbWVvZmRheSgmdHAs
JnR6cCk7CiAgaWYgKGJhc2Vfc2VjID09IDApIHsKICAgIGJhc2Vfc2VjID0gdHAudHZfc2VjOwog
ICAgYmFzZV91c2VjID0gdHAudHZfdXNlYzsKICB9CiAgCiAgdGltZSA9IChkb3VibGUpICh0cC50
dl9zZWMgLSBiYXNlX3NlYyk7CiAgbWljID0gKGRvdWJsZSkgKHRwLnR2X3VzZWMgLSBiYXNlX3Vz
ZWMpOwogIHRpbWUgPSAodGltZSArIG1pYyAqIG1lZ2EpOwogIHJldHVybih0aW1lKTsKfQoKc3Ry
aW5nIGdldG5hbWUoKSB7CiAgc3RhdGljIGNoYXIgdG1wWzEwMjRdOwogIGdldGhvc3RuYW1lKHRt
cCwxMDI0KTsKICByZXR1cm4gc3RyaW5nKHRtcCk7Cn0KCnZvaWQgZ2V0Y3B1dXNhZ2UoZG91Ymxl
ICZ1c2VyLCBkb3VibGUgJnRvdGFsKSB7CiAgc3RhdGljIGxvbmcgdFs0XSwgc1s0XTsKICBkb3Vi
bGUgc3VtLCB1c2FnZVs0XTsKICBGSUxFICpmcDsKICBzWzBdPXRbMF07CiAgc1sxXT10WzFdOwog
IHNbMl09dFsyXTsKICBzWzNdPXRbM107CiAgZnA9Zm9wZW4oIi9wcm9jL3N0YXQiLCAiciIpOwog
IGZzY2FuZihmcCwgImNwdSAgJWxpJWxpJWxpJWxpIiwmdFswXSwmdFsxXSwmdFsyXSwmdFszXSk7
CiAgZmNsb3NlKGZwKTsKICB1c2FnZVswXT0odFswXS1zWzBdKTsKICB1c2FnZVsxXT0odFsxXS1z
WzFdKTsKICB1c2FnZVsyXT0odFsyXS1zWzJdKTsKICB1c2FnZVszXT0odFszXS1zWzNdKTsKICBz
dW09dXNhZ2VbMF0rdXNhZ2VbMV0rdXNhZ2VbMl0rdXNhZ2VbM107CiAgdXNhZ2VbMF0vPXN1bTsK
ICB1c2FnZVsxXS89c3VtOwogIHVzYWdlWzJdLz1zdW07CiAgdXNhZ2VbM10vPXN1bTsKICB1c2Vy
PTEwMC4wKih1c2FnZVswXSk7IC8vIHVzZXIgdXNhZ2UKICB0b3RhbD0xMDAuMCoodXNhZ2VbMF0r
dXNhZ2VbMV0rdXNhZ2VbMl0pOyAvLyBjcHUgdXNhZ2UKfQojZWxzZQoKZG91YmxlIHdhbGx0aW1l
KCkgewogIHJldHVybiAoZG91YmxlKSBjbG9jaygpL0NMT0NLU19QRVJfU0VDOwp9CgpzdHJpbmcg
Z2V0bmFtZSgpIHsKICByZXR1cm4gc3RyaW5nKCIiKTsKfQoKdm9pZCBnZXRjcHV1c2FnZShkb3Vi
bGUgJnVzZXIsIGRvdWJsZSAmdG90YWwpIHsKICB1c2VyPXRvdGFsPTA7Cn0KCiNlbmRpZgoAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1kcF90b3BvbG9naWVzLmgAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAwMTAwNjQ0ADAwMzMxMjYAMDAyNDQ2MQAwMDAwMDAwMjY3MwAxMDE0MzAx
MzE1NgAwMTUwMzYAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
dXN0YXIgIABNRGlQaWVycm8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1rZ3JvdXAtbC1kAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vIEZpbGUg
TmFtZTogbWRwX3RvcG9sb2dpZXMuaAovLyBWZXJzaW9uOiAgIDIuMwovLyBEYXRlOiAgICAgIDEt
T2N0LTIwMDIKLy8gQXV0aG9yOiAgICBNYXNzaW1vIERpIFBpZXJybyA8bWRwQG1ldGFjcnlwdGlv
bi5jb20+Ci8vIExpY2Vuc2U6ICAgVGhpcyBmaWxlIGlzIGV4Y2x1c2l2ZSBwcm9wZXJ0eSBvZiBN
ZXRhQ3J5cHRpb24gTExDCi8vICAgICAgICAgICAgUmVhZCBhdHRhY2hlZCBsaWNlbnNlIGluIGZp
bGUgbWRwX2xpY2Vuc2UucGRmCi8vICAgICAgICAgICAgVGhpcyBmaWxlIGNhbm5vdCBiZSBkaXN0
cmlidXRlZCB3aXRob3V0IGZpbGUgbWRwX2xpY2Vuc2UucGRmCi8vCi8vIERlc2NyaXB0aW9uOgov
LyAgICAgdG9wb2xvZ3kgZnVuY3Rpb25zIHRvIGJlIHBhc3NlZCB0byBtZHBfZmllbGQKLy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCgovLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KLy8gQmFzaWMgdG9wb2xvZ2llczoKLy8gLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgp2b2lkIHRvcnVzX3RvcG9s
b2d5KGludCBtdSwgCgkJICAgIGludCAqeF9kdywgCgkJICAgIGludCAqeCwgCgkJICAgIGludCAq
eF91cCwgCgkJICAgIGludCBuZGltLCAKCQkgICAgaW50ICpueCkgewogIGZvcihpbnQgbnU9MDsg
bnU8bmRpbTsgbnUrKykgaWYobnU9PW11KSB7CiAgICB4X2R3W211XT0oeFttdV0tMStueFttdV0p
ICUgbnhbbXVdOwogICAgeF91cFttdV09KHhbbXVdKzEpICUgbnhbbXVdOwogIH0gZWxzZSB4X3Vw
W251XT14X2R3W251XT14W251XTsKfQoKdm9pZCBib3hfdG9wb2xvZ3koaW50IG11LCAKCQkgIGlu
dCAqeF9kdywgCgkJICBpbnQgKngsIAoJCSAgaW50ICp4X3VwLCAKCQkgIGludCBuZGltLCAKCQkg
IGludCAqbngpIHsgCiAgdG9ydXNfdG9wb2xvZ3kobXUseF9kdyx4LHhfdXAsbmRpbSxueCk7CiAg
aWYoeFttdV09PTApICAgICAgICB4X2R3W211XT14W211XTsKICBpZih4W211XT09bnhbbXVdLTEp
IHhfdXBbbXVdPXhbbXVdOwp9IAoKdm9pZCBtb2ViaW91c190b3BvbGd5KGludCBtdSwgCgkJICAg
ICAgaW50ICp4X2R3LCAKCQkgICAgICBpbnQgKngsIAoJCSAgICAgIGludCAqeF91cCwgCgkJICAg
ICAgaW50IG5kaW0sIAoJCSAgICAgIGludCAqbngpIHsKICB0b3J1c190b3BvbG9neShtdSx4X2R3
LHgseF91cCxuZGltLG54KTsKICBpZihtdT09MCkgewogICAgaWYoeFswXT09MCkgICAgICAgeF9k
d1sxXT1ueFsxXS14WzFdLTE7CiAgICBpZih4WzBdPT1ueFswXS0xKSB4X3VwWzFdPW54WzFdLXhb
MV0tMTsKICB9Cn0KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWRwX3V0aWxzLmgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAADAxMDA2NDQAMDAzMzEyNgAwMDI0NDYxADAwMDAwMDAzMDcxADEwMTQzMDEzMTU2
ADAxNDAwMwAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3Rh
ciAgAE1EaVBpZXJybwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWtncm91cC1sLWQAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gRmlsZSBOYW1l
OiBtZHBfdXRpbHMuaCAob25seSBmb3IgdW5peCkKLy8gVmVyc2lvbjogICAyLjMKLy8gRGF0ZTog
ICAgICAxLU9jdC0yMDAyCi8vIEF1dGhvcjogICAgTWFzc2ltbyBEaSBQaWVycm8gPG1kcEBtZXRh
Y3J5cHRpb24uY29tPgovLyBMaWNlbnNlOiAgIFRoaXMgZmlsZSBpcyBleGNsdXNpdmUgcHJvcGVy
dHkgb2YgTWV0YUNyeXB0aW9uIExMQwovLyAgICAgICAgICAgIFJlYWQgYXR0YWNoZWQgbGljZW5z
ZSBpbiBmaWxlIG1kcF9saWNlbnNlLnBkZgovLyAgICAgICAgICAgIFRoaXMgZmlsZSBjYW5ub3Qg
YmUgZGlzdHJpYnV0ZWQgd2l0aG91dCBmaWxlIG1kcF9saWNlbnNlLnBkZgovLwovLyBEZXNjcmlw
dGlvbjoKLy8gICAgIHZhcmlvdXMgdXRpbGl0aWVzIHRvIHF1ZXJ5IGFuIG1kcF9maWVsZCBmaWxl
Ci8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKI2luY2x1ZGUgInN0ZGxpYi5oIgoKaW50IGlzX2ZpbGUo
c3RyaW5nIGZpbGVuYW1lLCBjaGFyIHBlcm1pc3Npb25bXT0iciIpIHsKICBGSUxFICpmcD1mb3Bl
bihmaWxlbmFtZS5jX3N0cigpLCBwZXJtaXNzaW9uKTsKICBpZihmcD4wKSB7CiAgICBmY2xvc2Uo
ZnApOwogICAgcmV0dXJuIFRSVUU7CiAgfQogIHJldHVybiBGQUxTRTsKfQoKbWRwX2ZpZWxkX2Zp
bGVfaGVhZGVyIGdldF9pbmZvKHN0cmluZyBmaWxlbmFtZSwgaW50IHByb2M9MCkgewogIG1kcF9m
aWVsZF9maWxlX2hlYWRlciBteWhlYWRlcjsKICBpZihNRT09cHJvYykgewogICAgRklMRSAqZnA9
Zm9wZW4oZmlsZW5hbWUuY19zdHIoKSwgInIiKTsKICAgIGlmKGZwPT0wKSBlcnJvcigiVW5hYmxl
IHRvIG9wZW4gZmlsZSIpOwogICAgZnJlYWQoJm15aGVhZGVyLCBzaXplb2YoY2hhciksCgkgIHNp
emVvZihtZHBfZmllbGRfZmlsZV9oZWFkZXIpL3NpemVvZihjaGFyKSwgZnApOwogICAgc3dpdGNo
X2hlYWRlcl9lbmRpYW5lc3MobXloZWFkZXIpOwogIH0KICBtcGkuYnJvYWRjYXN0KG15aGVhZGVy
LHByb2MpOwogIHJldHVybiBteWhlYWRlcjsKfQoKaW50IG1haWwoc3RyaW5nIGVtYWlsLCBzdHJp
bmcgbWVzc2FnZSkgewogIHN0cmluZyBzOwogIHN0YXRpYyBpbnQgcmV0OwogIGlmKE1FPT0wKSB7
CiAgICBzID0gImVjaG8gJyIrbWVzc2FnZSsiJyB8IG1haWwgLXMgJ01EUCBNRVNTQUdFJyAiICtl
bWFpbDsKICAgIHJldD1zeXN0ZW0ocy5jX3N0cigpKTsKICB9CiAgbXBpLmJyb2FkY2FzdChyZXQs
MCk7CiAgcmV0dXJuIHJldDsKfQoKaW50IG1haWxfZmlsZShzdHJpbmcgZW1haWwsIHN0cmluZyBm
aWxlbmFtZSkgewogIHN0cmluZyBzOwogIHN0YXRpYyBpbnQgcmV0OwogIGlmKE1FPT0wKSB7CiAg
ICBzID0gIm1vcmUgIitmaWxlbmFtZSsiIHwgbWFpbCAtcyAnTURQIE1FU1NBR0UnICIrZW1haWw7
CiAgICByZXQ9c3lzdGVtKHMuY19zdHIoKSk7CiAgfQogIG1waS5icm9hZGNhc3QocmV0LDApOwog
IHJldHVybiByZXQ7Cn0KCgoKCgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAG1kcF92ZWN0b3IuaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAwMTAwNjQ0ADAwMzMxMjYAMDAyNDQ2MQAwMDAwMDAwMzYyMQAxMDE0MzAxMzE1NgAwMTQx
NDYAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABN
RGlQaWVycm8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1rZ3JvdXAtbC1kAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAALy8gRmlsZTogICAgICBtZHBfdmVjdG9yLmgKLy8gVmVyc2lvbjog
ICAyLjMKLy8gRGF0ZTogICAgICAxLU9jdC0yMDAyCi8vIEF1dGhvcjogICAgTWFzc2ltbyBEaSBQ
aWVycm8gPG1kcEBtZXRhY3J5cHRpb24uY29tPgovLyBMaWNlbnNlOiAgIFRoaXMgZmlsZSBpcyBl
eGNsdXNpdmUgcHJvcGVydHkgb2YgTWV0YUNyeXB0aW9uIExMQwovLyAgICAgICAgICAgIFJlYWQg
YXR0YWNoZWQgbGljZW5zZSBpbiBmaWxlIG1kcF9saWNlbnNlLnBkZgovLyAgICAgICAgICAgIFRo
aXMgZmlsZSBjYW5ub3QgYmUgZGlzdHJpYnV0ZWQgd2l0aG91dCBmaWxlIG1kcF9saWNlbnNlLnBk
ZgovLwoKY2xhc3MgbWRwX3ZlY3RvciB7CnB1YmxpYzoKICBpbnQgeFsxMF07CiAgbWRwX3ZlY3Rv
cigpIHsKICAgIHhbMF09eFsxXT14WzJdPXhbM109eFs0XT0wOwogICAgeFs1XT14WzZdPXhbN109
eFs4XT14WzldPTA7CiAgfQogIG1kcF92ZWN0b3IoaW50IHgwLCAgIGludCB4MT0wLCBpbnQgeDI9
MCwgaW50IHgzPTAsIGludCB4ND0wLAoJIGludCB4NT0wLCBpbnQgeDY9MCwgaW50IHg3PTAsIGlu
dCB4OD0wLCBpbnQgeDk9MCkgewogICAgeFswXT14MDsgeFsxXT14MTsgeFsyXT14MjsgeFszXT14
MzsgeFs0XT14NDsKICAgIHhbNV09eDU7IHhbNl09eDY7IHhbN109eDc7IHhbOF09eDg7IHhbOV09
eDk7CiAgfQp9OwoKaW5saW5lIG1kcF92ZWN0b3IgYmluYXJ5MnZlcnNvcihsb25nIGEpIHsKICBt
ZHBfdmVjdG9yIHYoKGEpICAgICAgJiAweDEsIAoJICAgKGEgPj4gMSkgJiAweDEsIAoJICAgKGEg
Pj4gMikgJiAweDEsIAoJICAgKGEgPj4gMykgJiAweDEsIAoJICAgKGEgPj4gNCkgJiAweDEsIAoJ
ICAgKGEgPj4gNSkgJiAweDEsIAoJICAgKGEgPj4gNikgJiAweDEsIAoJICAgKGEgPj4gNykgJiAw
eDEsIAoJICAgKGEgPj4gOCkgJiAweDEsIAoJICAgKGEgPj4gOSkgJiAweDEpOwogIHJldHVybiB2
Owp9CgppbmxpbmUgaW50IHZlcnNvcjJiaW5hcnkoaW50IHgwLCAgIGludCB4MT0wLCBpbnQgeDI9
MCwgaW50IHgzPTAsIGludCB4ND0wLAoJCQkgaW50IHg1PTAsIGludCB4Nj0wLCBpbnQgeDc9MCwg
aW50IHg4PTAsIGludCB4OT0wKSB7CiNpZmRlZiBDSEVDS19BTEwKICBpZigoZmFicygwLjUteDAp
PjEpIHx8IChmYWJzKDAuNS14MSk+MSkgfHwgCiAgICAgKGZhYnMoMC41LXgyKT4xKSB8fCAoZmFi
cygwLjUteDMpPjEpIHx8CiAgICAgKGZhYnMoMC41LXg0KT4xKSB8fCAoZmFicygwLjUteDUpPjEp
IHx8IAogICAgIChmYWJzKDAuNS14Nik+MSkgfHwgKGZhYnMoMC41LXg3KT4xKSB8fAogICAgIChm
YWJzKDAuNS14OCk+MSkgfHwgKGZhYnMoMC41LXg5KT4xKSkgZXJyb3IoInZlcnNvcjJiaW5hcnki
KTsgCQkJCSAgIAojZW5kaWYKICByZXR1cm4geDArMip4MSs0KngyKzgqeDMrMTYqeDQrMzIqeDUr
NjQqeDYrMTI4Kng3KzI1Nip4OCs1MTIqeDk7Cn0KCmlubGluZSBsb25nIHZlY3RvcjJiaW5hcnko
bWRwX3ZlY3RvciB2KSB7CiNpZmRlZiBDSEVDS19BTEwKICBpZigoZmFicygwLjUtdi54WzBdKT4x
KSB8fCAoZmFicygwLjUtdi54WzFdKT4xKSB8fCAKICAgICAoZmFicygwLjUtdi54WzJdKT4xKSB8
fCAoZmFicygwLjUtdi54WzNdKT4xKSB8fAogICAgIChmYWJzKDAuNS12LnhbNF0pPjEpIHx8IChm
YWJzKDAuNS12LnhbNV0pPjEpIHx8IAogICAgIChmYWJzKDAuNS12LnhbNl0pPjEpIHx8IChmYWJz
KDAuNS12LnhbN10pPjEpIHx8CiAgICAgKGZhYnMoMC41LXYueFs4XSk+MSkgfHwgKGZhYnMoMC41
LXYueFs5XSk+MSkgfHwgCiAgICAgKGZhYnMoMC41LXYueFsyXSk+MSkpIGVycm9yKCJ2ZWN0b3Iy
YmluYXJ5Iik7CiNlbmRpZgogIHJldHVybiB2LnhbMF0rMip2LnhbMV0rNCp2LnhbMl0rOCp2Lnhb
M10rMTYqdi54WzRdKwogICAgMzIqdi54WzVdKzY0KnYueFs2XSsxMjgqdi54WzddKzI1Nip2Lnhb
OF0rNTEyKnYueFs5XTsKfQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAABtZHBfdmVjdG9yX2ZpZWxkLmgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
MDEwMDY0NAAwMDMzMTI2ADAwMjQ0NjEAMDAwMDAwMDIzMDQAMTAxNDMwMTMxNTYAMDE1MzA2ACAw
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAATURpUGll
cnJvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABta2dyb3VwLWwtZAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAC8vIEZpbGU6ICAgICAgbWRwX3ZlY3Rvcl9maWVsZC5oCi8vIFZlcnNpb246
ICAgMi4zCi8vIERhdGU6ICAgICAgMS1PY3QtMjAwMgovLyBBdXRob3I6ICAgIE1hc3NpbW8gRGkg
UGllcnJvIDxtZHBAbWV0YWNyeXB0aW9uLmNvbT4KLy8gTGljZW5zZTogICBUaGlzIGZpbGUgaXMg
ZXhjbHVzaXZlIHByb3BlcnR5IG9mIE1ldGFDcnlwdGlvbiBMTEMKLy8gICAgICAgICAgICBSZWFk
IGF0dGFjaGVkIGxpY2Vuc2UgaW4gZmlsZSBtZHBfbGljZW5zZS5wZGYKLy8gICAgICAgICAgICBU
aGlzIGZpbGUgY2Fubm90IGJlIGRpc3RyaWJ1dGVkIHdpdGhvdXQgZmlsZSBtZHBfbGljZW5zZS5w
ZGYKLy8KCmNsYXNzIG1kcF92ZWN0b3JfZmllbGQ6IHB1YmxpYyBtZHBfZmllbGQ8bWRwX2NvbXBs
ZXg+IHsKcHVibGljOgogIGludCByb3dzLCBjb2x1bW5zLCBpbWF4OwogIG1kcF92ZWN0b3JfZmll
bGQoKSB7CiAgICByb3dzPWNvbHVtbnM9aW1heD0wOwogICAgbWRwX2ZpZWxkPG1kcF9jb21wbGV4
Pjo6cmVzZXRfZmllbGQoKTsKICB9CiAgbWRwX3ZlY3Rvcl9maWVsZChtZHBfdmVjdG9yX2ZpZWxk
ICZmaWVsZCkgewogICAgcm93cz1maWVsZC5yb3dzOwogICAgY29sdW1ucz1maWVsZC5jb2x1bW5z
OwogICAgaW1heD1maWVsZC5pbWF4OwogICAgYWxsb2NhdGVfZmllbGQoZmllbGQubGF0dGljZSgp
LGZpZWxkLmltYXgpOwogIH0KICBtZHBfdmVjdG9yX2ZpZWxkKG1kcF9sYXR0aWNlICZhLCBpbnQg
aSkgewogICAgcm93cz1pOwogICAgY29sdW1ucz0xOwogICAgaW1heD1pOwogICAgYWxsb2NhdGVf
ZmllbGQoYSxpbWF4KTsKICB9CiAgdm9pZCBhbGxvY2F0ZV9tZHBfdmVjdG9yX2ZpZWxkKG1kcF9s
YXR0aWNlICZhLCBpbnQgaSkgewogICAgZGVhbGxvY2F0ZV9maWVsZCgpOwogICAgcm93cz1pOwog
ICAgY29sdW1ucz0xOwogICAgaW1heD1pOwogICAgYWxsb2NhdGVfZmllbGQoYSxpbWF4KTsKICB9
CiAgbWRwX21hdHJpeCBvcGVyYXRvcigpIChtZHBfc2l0ZSB4KSB7CiAgICByZXR1cm4gbWRwX21h
dHJpeChhZGRyZXNzKHgpLHJvd3MsY29sdW1ucyk7CiAgfQogIG1kcF9jb21wbGV4JiBvcGVyYXRv
cigpIChtZHBfc2l0ZSB4LCBpbnQgaSkgewogICAgcmV0dXJuIGFkZHJlc3MoeClbaV07CiAgfQog
IGNvbnN0IG1kcF9jb21wbGV4JiBvcGVyYXRvcigpIChtZHBfc2l0ZSB4LCBpbnQgaSkgY29uc3Qg
ewogICAgcmV0dXJuIGFkZHJlc3MoeClbaV07CiAgfQp9OwoKAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAG1kcF92ZXJzaW9uLmgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMTAw
NjQ0ADAwMzMxMjYAMDAyNDQ2MQAwMDAwMDAwMDA1NQAxMDE0MzAxMzE1NgAwMTQzMjcAIDAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABNRGlQaWVycm8A
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1rZ3JvdXAtbC1kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAY29uc3QgY2hhciBtZHBfdmVyc2lvbltdPSJNRFAgdmVyc2lvbiAyLjMwIjsKAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABQcmljZUFzc2V0cy5jcHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDEwMDc1
NQAwMDMzMTI2ADAwMjQ0NjEAMDAwMDAwMDcyMjQAMTAxNDMwMjE0MzAAMDE0NTY0ACAwAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAATURpUGllcnJvAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAABta2dyb3VwLWwtZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAACNpbmNsdWRlIDxzdGRpby5oPg0KI2luY2x1ZGUgPGlvc3RyZWFtLmg+DQojaW5jbHVk
ZSA8c3RkbGliLmg+DQojaW5jbHVkZSA8dmVjdG9yLmg+DQojaW5jbHVkZSA8bWF0aC5oPg0KI2lu
Y2x1ZGUgIm1kcC5oIg0KDQoNCmNsYXNzIExvbmdPcHRpb24gew0KcHVibGljOg0KICBkb3VibGUg
c3RyaWtlX3ByaWNlOw0KICBkb3VibGUgdGFyZ2V0X3JlbGF0aXZlX3ByZWNpc2lvbjsNCiAgZG91
YmxlIHRhcmdldF9hYnNvbHV0ZV9wcmVjaXNpb247DQogIG1kcF9yYW5kb21fZ2VuZXJhdG9yKiBw
ZzsNCg0KICB2aXJ0dWFsIGRvdWJsZSBvcHRpb24oZG91YmxlIFMpIHsNCiAgICByZXR1cm4gbWF4
KFMtc3RyaWtlX3ByaWNlLDApOw0KICB9DQoNCiAgTG9uZ09wdGlvbihtZHBfcmFuZG9tX2dlbmVy
YXRvciAmZykgew0KICAgIHRoaXMtPnBnPSZnOw0KICAgIHRhcmdldF9yZWxhdGl2ZV9wcmVjaXNp
b249MC4wMDAwNTsgLy8gMSUgPSAwLjAxDQogICAgdGFyZ2V0X2Fic29sdXRlX3ByZWNpc2lvbj0w
LjAwMDM7IC8vIDEgY2VudCA9IDAuMDEgZG9sbGFyDQogIH0NCg0KICAvKg0KICAgKiBjb21wdXRl
X3NpZ21hIC0gdGhpcyBtZXRob2QgdGFrZXMgYW4gYXJyYXkgYW5kIGNhbGN1bGF0ZXMgdGhlDQog
ICAqIAkJCQkJbWVhbiBhbmQgc3RhbmRhcmQgZGV2aWF0aW9uIG9mIHRoZSBkaWZmZXJlbmNlIA0K
ICAgKiAJCQkJCWJldHdlZW4gYWRqYWNlbnQgdmFsdWVzDQogICAqLw0KICBkb3VibGUgY29tcHV0
ZV9zaWdtYSh2ZWN0b3I8ZG91YmxlPiYgQSwgaW50IHBhc3Rfbj01KSB7DQogICAgZG91YmxlIHN1
bSA9IDAuMDsNCiAgICBkb3VibGUgc3VtMiA9IDAuMDsNCiAgICBpbnQgbiA9IEEuc2l6ZSgpLTE7
DQoNCiAgICBpZihwYXN0X248MCkgcGFzdF9uPW47DQogICAgDQogICAgZm9yIChpbnQgaSA9IG4t
cGFzdF9uOyBpPG47IGkgKyspIHsNCiAgICAgIGRvdWJsZSB4ID0gKEFbaSsxXSAtIEFbaV0pIC8g
QVtpXTsNCiAgICAgIHN1bSA9IHN1bSArIHg7DQogICAgICBzdW0yID0gc3VtMiArIHggKiB4Ow0K
ICAgIH0NCiAgICANCiAgICBkb3VibGUgbWVhbiA9IHN1bSAvIG47DQogICAgcmV0dXJuIHNxcnQo
KHN1bTIvbiktKG1lYW4qbWVhbikpOw0KICB9DQogIA0KICAvKg0KICAgKiBtYWtlX2Z1dHVyZV9o
aXN0b3J5IC0gdGhpcyBtZXRob2Qgd2lsbCBjcmVhdGUgYSBzaW11bGF0ZWQgcHJpY2UgDQogICAq
IAkJCQkJCWZ1dHVyZSBmb3IgYW4gYXNzZXQNCiAgICogCQkJCQkJDQogICAqLw0KICBkb3VibGUg
bWFrZV9mdXR1cmVfaGlzdG9yeSh2ZWN0b3I8ZG91YmxlPiYgcGFzdEhpc3RvcnksIGRvdWJsZSBy
LCBpbnQgVCwgZG91YmxlIGR0LCBib29sIHRyaWNrKSB7DQogICAgdmVjdG9yPGRvdWJsZT4gaGlz
dG9yeShwYXN0SGlzdG9yeSk7DQogICAgZG91YmxlIHNpZ21hID0gY29tcHV0ZV9zaWdtYShoaXN0
b3J5KTsNCiAgICBkb3VibGUgUyA9IHBhc3RIaXN0b3J5LmJhY2soKTsNCiAgICANCiAgICBmb3Io
aW50IHQgPSAwOyB0IDwgVDsgdCsrKSB7DQoNCiAgICAgIC8vIGNvdXQgPDwgInNpZ21hID0iIDw8
IHNpZ21hIDw8IGVuZGw7DQogICAgICANCiAgICAgIGRvdWJsZSBlcHNpbG9uID0gcGctPmdhdXNz
aWFuKCk7DQogICAgICBkb3VibGUgdGVybSA9ICgxLjAgKyByICogZHQgKyBzaWdtYSAqIGVwc2ls
b24gKiBzcXJ0KGR0KSk7DQogICAgICBTID0gUyAqIHRlcm07DQogICAgICANCiAgICAgIGlmICh0
cmljaykgew0KCWhpc3RvcnkuZXJhc2UoaGlzdG9yeS5iZWdpbigpKTsNCgloaXN0b3J5LnB1c2hf
YmFjayhTKTsNCglzaWdtYSA9IGNvbXB1dGVfc2lnbWEoaGlzdG9yeSk7DQogICAgICB9DQogICAg
fQ0KICAgIHJldHVybiBTOw0KfQ0KICANCiAgZG91YmxlIG1heChkb3VibGUgYSwgZG91YmxlIGIp
IHsNCiAgICBpZiAoYSA+IGIpDQogICAgICByZXR1cm4gYTsNCiAgICByZXR1cm4gYjsNCiAgfQ0K
ICANCiAgLyoNCiAgICogIHByaWNlIC0gY2FsY3VsYXRlcyBhIHByaWNlIGZvciB0aGUgYXNzZXQg
YnkgYXZlcmFnaW5nDQogICAqIAkJCXRoZSByZXN1bHRzIG9mIG4gc2ltdWxhdGlvbnMgb24gYSBw
YXN0IGhpc3RvcnkNCiAgICovDQogIA0KICBkb3VibGUgcHJpY2UodmVjdG9yPGRvdWJsZT4mIHBh
c3RfaGlzdG9yeSwgZG91YmxlIHIsIGludCBULCBkb3VibGUgZHQsIGJvb2wgdHJpY2ssIGludCBt
YXhfbj0xMDAwMDApIHsNCiAgICANCiAgICBkb3VibGUgUCA9IDAuMDsNCiAgICBkb3VibGUgc3Vt
MT0wLjA7DQogICAgZG91YmxlIHN1bTI9MC4wOw0KICAgIGRvdWJsZSBtZWFuPTAuMDsNCiAgICBk
b3VibGUgZXJyb3I9MC4wOw0KDQogICAgaW50IG47DQogICAgZm9yKG49MDtuPG1heF9uO24rKykg
ew0KICAgICAgZG91YmxlIFMgPSBtYWtlX2Z1dHVyZV9oaXN0b3J5KHBhc3RfaGlzdG9yeSxyLFQs
ZHQsdHJpY2spOw0KICAgICAgUD1vcHRpb24oUyk7DQogICAgICBzdW0xPXN1bTErUDsNCiAgICAg
IHN1bTI9c3VtMitQKlA7DQogICAgICBtZWFuPXN1bTEvbjsNCiAgICAgIGVycm9yPXNxcnQoKChz
dW0yL24pLW1lYW4qbWVhbikvbik7DQogICAgICBpZiAobj4xMDApIHsNCglpZiAoZXJyb3I8dGFy
Z2V0X2Fic29sdXRlX3ByZWNpc2lvbikgYnJlYWs7DQoJaWYgKFAhPTApIGlmKGVycm9yL1A8dGFy
Z2V0X3JlbGF0aXZlX3ByZWNpc2lvbikgYnJlYWs7DQogICAgICB9DQogICAgfQ0KICAgIGNvdXQg
PDwgbiA8PCBlbmRsOw0KICAgIHJldHVybiBtZWFuOw0KICB9DQoNCn07DQoNCg0KZG91YmxlIGRh
dGEgW10gPSB7IDQ0LjQ1LCA0NC4zOCwgNDUuMTMsIDQ1LjIzLCA0NS4zOCwgNDMuMiwgNDMuMjYs
IDQyLjcxLCA0Mi44LA0KICAgICAgICAgICAgICAgICAgIDQyLjg3LCA0MS4xNiwgNDAuMDQsIDQw
LjMsIDQwLjQ0LCA0MC43MywgNDAuNDIsIDQwLjAyLCAzOS45OSwNCiAgICAgICAgICAgICAgICAg
ICAzOS42MywgMzkuOTksIDQwLjAxLCA0MC4wNSwgNDAuMzEsIDQwLjc1LCA0MC42NCwgNDAuOSwg
NDAuMTIsDQogICAgICAgICAgICAgICAgICAgNDAsIDQwLjAxLCAzOS43OCB9Ow0KDQpkb3VibGUg
aW1wbChkb3VibGUgcHJpY2UpIHsNCiAgcmV0dXJuIHByaWNlOw0KfQ0KDQppbnQgbWFpbihpbnQg
YXJnYywgY2hhciAqYXJndltdKSB7DQoNCiAgdmVjdG9yPGRvdWJsZT4gaGlzdG9yeSgwKTsNCiAg
Zm9yIChpbnQgaSA9IDA7IGkgPCAzMDsgaSArKykgew0KICAgIGhpc3RvcnkucHVzaF9iYWNrKGRh
dGFbaV0pOw0KICB9DQoNCiAgTG9uZ09wdGlvbiBwYShtZHBfcmFuZG9tKTsNCiAgLy9tZHBfcmFu
ZG9tLmluaXRpYWxpemUodGltZSgpKTsNCiAgZG91YmxlIHIgPSAwLjA0LzI1MjsNCiAgaW50IFQg
PSAzMDsNCiAgZG91YmxlIGR0ID0gMS4wOw0KICANCiAgZG91YmxlIFMwID0gaGlzdG9yeVtoaXN0
b3J5LnNpemUoKS0xXTsNCiAgZm9yIChpbnQgeCA9IChpbnQpIChTMCAqIDAuNSk7IHggPCAoaW50
KSAoUzAgKiAyLjApOyB4ID0geCsyKSB7DQogICAgcGEuc3RyaWtlX3ByaWNlPXg7DQogICAgZG91
YmxlIGltcGxfdm9sX2EgPSBpbXBsKHBhLnByaWNlKGhpc3RvcnkscixULGR0LGZhbHNlKSk7DQog
ICAgZG91YmxlIGltcGxfdm9sX2IgPSBpbXBsKHBhLnByaWNlKGhpc3RvcnkscixULGR0LHRydWUp
KTsNCiAgICAvLyBjb3V0IDw8IHggPDwgIlx0IiA8PCBiIDw8ICJcdCIgPDwgYSA8PCAiXHQiIA0K
ICAgIGNvdXQgPDwgaW1wbF92b2xfYi1pbXBsX3ZvbF9hIDw8IGVuZGw7DQogIH0NCg0KICBzeXN0
ZW0oIlBBVVNFIik7DQogIHJldHVybiAwOw0KfQ0KDQoNCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=

------_=_NextPart_001_01C4C39D.1F782494--
From MDiPierro@cti.depaul.edu  Fri Nov 12 00:34:04 2004
Return-Path: <MDiPierro@cti.depaul.edu>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from haydn.cti.depaul.edu (haydn.cti.depaul.edu [140.192.32.26])
	by merlin.depaul.edu (Postfix) with ESMTP id 6944B18016
	for <cti_finance@mailman.depaul.edu>;
	Fri, 12 Nov 2004 00:34:04 -0600 (CST)
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Date: Fri, 12 Nov 2004 00:33:04 -0600
Message-ID: <6BE417C96732934A83E4BBBB3B7FF2F40248FB4B@haydn.cti.depaul.edu>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: CWJobs
Thread-Index: AcTIfiP6dYJheePpS0icFx+s8K36EQAA1M/R
From: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
To: <cti_finance@mailman.depaul.edu>
Subject: [Cti_finance] CWJobs
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Fri, 12 Nov 2004 06:34:04 -0000

You may want to register with this mailing list!

________________________________

Welcome to the CWJobs jobs by email service.	 CWJobs the IT jobs =
specialist <http://www.cwjobs.co.uk> =09
There are 8 new jobs that match your search criteria today:=20
Job Type: Permanent; Keywords: QUANTITATIVE AND C++ AND front AND =
office; Location: London; =09
Change criteria for jobs by email =
<http://www.cwjobs.co.uk/ASP/CWJobsv2/Personalised/MyCWJobs.asp> =20
Receive plain text emails in future =
<http://www.cwjobs.co.uk/ASP/CWJobsv2/Registration/HtmlEmailOnOff.asp?GUI=
D=3D7ada1ba73b134da6a53a7d32ba988dca&HTMLEmail=3Doff>  	Unsubscribe from =
all jobs by email =
<http://www.cwjobs.co.uk/ASP/CWJobsv2/Registration/JBEStop.asp?UserGUID=3D=
7ada1ba73b134da6a53a7d32ba988dca> =20
Register your CV with CWJobs =
<http://www.cwjobs.co.uk/ASP/CWJobsv2/Personalised/userprofile.asp?PageTo=
tal=3D4>  =09
 =09
Business Objects is the world's leading business intelligence (BI) =
software company. In December 2003, Business Objects completed the =
acquisition of Crystal Decisions, the leader in enterprise reporting. At =
Business Objects, we believe that leaders attract leaders. We have =
tremendous career opportunities for talented, ambitious, and passionate =
people. And we believe that our company is only as good as the people =
who work here. For further information please click here. =
<http://www.cwjobs.co.uk/WH/corp_profile.asp?companyid=3D129760>  =09
 =09
 Job title=09
Equity Derivatives Quantitative Developer =
<http://www.cwjobs.co.uk/joblink.asp?JobID=3D13293251&GUID=3D7ada1ba73b13=
4da6a53a7d32ba988dca>  =09
Our client, a top-tier global Investment Bank, currently requires an =
Equity Derivatives Quantitative Developer. You will be responsible for =
the design, implementation and support of the environment in which the =
modelling of financial derivatives takes place. This is a very business =
focussed role...=09
Company: Nicoll Curtin Ltd  =B7  Job type: Permanent  =B7 Salary: Market =
Rates  =B7  Location: Central/West End  =B7   Date posted: 11 Nov 2004 =
9:38=09
View full job details and apply =
<http://www.cwjobs.co.uk/joblink.asp?JobID=3D13293251&GUID=3D7ada1ba73b13=
4da6a53a7d32ba988dca>  =09
Cross Training in JAVA and C# for Derivative C++ Developer - London =
<http://www.cwjobs.co.uk/joblink.asp?JobID=3D13293170&GUID=3D7ada1ba73b13=
4da6a53a7d32ba988dca>  =09
Owing to their rapid growth a Leading Derivative IT group requires =
exceptional C++ developer, with experience in or looking to cross train =
in Java and C#. This permanent, front office role based in London, will =
involve the development, enhancement and support of a convertible bonds =
real-time...=09
Company: Huxley Associates - London  =B7  Job type: Permanent  =B7 =
Salary: Above Market Rate  =B7  Location: London  =B7   Date posted: 11 =
Nov 2004 9:36=09
View full job details and apply =
<http://www.cwjobs.co.uk/joblink.asp?JobID=3D13293170&GUID=3D7ada1ba73b13=
4da6a53a7d32ba988dca>  =09
Derivative Visual Basic (VB) Developer - Cross Training in JAVA and C# =
<http://www.cwjobs.co.uk/joblink.asp?JobID=3D13293164&GUID=3D7ada1ba73b13=
4da6a53a7d32ba988dca>  =09
Leading Derivative IT group requires exceptional VB developer, with =
experience in or looking to cross train in Java and C#. This permanent, =
front office role based in London, will involve the development, =
enhancement and support of a convertible bonds real-time trading system =
in addition to a...=09
Company: Huxley Associates - London  =B7  Job type: Permanent  =B7 =
Salary: Above Market Rate  =B7  Location: London  =B7   Date posted: 11 =
Nov 2004 9:36=09
View full job details and apply =
<http://www.cwjobs.co.uk/joblink.asp?JobID=3D13293164&GUID=3D7ada1ba73b13=
4da6a53a7d32ba988dca>  =09
Junior Quantitative Developer/Quantitative Analyst PhD,C++ Quant Dev =
<http://www.cwjobs.co.uk/joblink.asp?JobID=3D13308902&GUID=3D7ada1ba73b13=
4da6a53a7d32ba988dca>  =09
Madison Black is seeking a junior Quantitative Analyst / Quantitative =
Developer with C++ development exp to join a leading European Investment =
Bank. The client is a tier one Investment Bank with an innovative and =
award winning Quantitative Research team. You will be working in a =
research team of 25...=09
Company: Madison Black Limited  =B7  Job type: Permanent  =B7 Salary: Up =
to =A370'000  =B7  Location: London  =B7   Date posted: 11 Nov 2004 =
18:16=09
View full job details and apply =
<http://www.cwjobs.co.uk/joblink.asp?JobID=3D13308902&GUID=3D7ada1ba73b13=
4da6a53a7d32ba988dca>  =09
Commodities Excel VBA/C# Developer =
<http://www.cwjobs.co.uk/joblink.asp?JobID=3D13308063&GUID=3D7ada1ba73b13=
4da6a53a7d32ba988dca>  =09
An exciting opportunity has arisen at a blue chip investment bank. The =
role involves developing and supporting systems for the commodities =
trading desk. Development includes enhancing the desks risk management =
and pricing capabilities, improving the efficiency of post-trade =
processes and...=09
Company: Curtis Reed Associates  =B7  Job type: Permanent  =B7 Salary: =
=A3Excellent Basic  =B7  Location: City  =B7   Date posted: 11 Nov 2004 =
17:36=09
View full job details and apply =
<http://www.cwjobs.co.uk/joblink.asp?JobID=3D13308063&GUID=3D7ada1ba73b13=
4da6a53a7d32ba988dca>  =09
Quantitative Developer =
<http://www.cwjobs.co.uk/joblink.asp?JobID=3D13301092&GUID=3D7ada1ba73b13=
4da6a53a7d32ba988dca>  =09
An exciting opportunity has arisen to join a top three Europeon =
Hedgefund. This role will be in the Quantitative development group which =
is a new initiative that bridges the gap between research, technology =
and trading. The position is front office sitting on the trading floor. =
The team works...=09
Company: Aston Carter  =B7  Job type: Permanent  =B7 Salary: =A335000 - =
=A360000 per annum + Excellent Benefits Package  =B7  Location: =
Central/West End  =B7   Date posted: 11 Nov 2004 12:29=09
View full job details and apply =
<http://www.cwjobs.co.uk/joblink.asp?JobID=3D13301092&GUID=3D7ada1ba73b13=
4da6a53a7d32ba988dca>  =09
Multi Asset Class - Quantitive Developer =
<http://www.cwjobs.co.uk/joblink.asp?JobID=3D13293111&GUID=3D7ada1ba73b13=
4da6a53a7d32ba988dca>  =09
City based investment bank seeks an experienced Quantitative Developer, =
to join their expanding Analysis team You will work directly with some =
of the worlds leading Quant Analysts and Traders in a lively =
front-office environment. This group is responsible for trading =
simultaneously in many...=09
Company: Huxley Associates - London  =B7  Job type: Permanent  =B7 =
Salary: Exceptional  =B7  Location: London  =B7   Date posted: 11 Nov =
2004 9:34=09
View full job details and apply =
<http://www.cwjobs.co.uk/joblink.asp?JobID=3D13293111&GUID=3D7ada1ba73b13=
4da6a53a7d32ba988dca>  =09
Senior Quant Developer - Exotic Interest Rate Deivatives =
<http://www.cwjobs.co.uk/joblink.asp?JobID=3D13293107&GUID=3D7ada1ba73b13=
4da6a53a7d32ba988dca>  =09
A premier investment bank, based in the city, is seeking a senior =
Quantitative Developer, following the excellent performance of the =
Exotic Interest Rate Derivatives team. The role will involve all stages =
of the development life cycle from taking requirements to designing and =
developing...=09
Company: Huxley Associates - London  =B7  Job type: Permanent  =B7 =
Salary: Above Market Rate + Bcellent Bonus  =B7  Location: London  =B7   =
Date posted: 11 Nov 2004 9:34=09
View full job details and apply =
<http://www.cwjobs.co.uk/joblink.asp?JobID=3D13293107&GUID=3D7ada1ba73b13=
4da6a53a7d32ba988dca>  =09
This has been a message from CWJobs. CWJobs respects your online time =
and internet privacy. If you would like to alter any of your settings, =
or stop receiving jobs by email, please use the links below:=09
Change criteria for jobs by email =
<http://www.cwjobs.co.uk/ASP/CWJobsv2/Personalised/MyCWJobs.asp?Mode=3DEx=
ists>=20
Receive plain text emails in future =
<http://www.cwjobs.co.uk/ASP/CWJobsv2/Registration/HtmlEmailOnOff.asp?GUI=
D=3D7ada1ba73b134da6a53a7d32ba988dca&HTMLEmail=3Doff>=20
Unsubscribe from this particular jobs by email =
<http://www.cwjobs.co.uk/ASP/CWJobsv2/Registration/JBEStop.asp?UserGUID=3D=
7ada1ba73b134da6a53a7d32ba988dca&Number=3D2>=20
Register your CV with CWJobs =
<http://www.cwjobs.co.uk/ASP/CWJobsv2/Personalised/userprofile.asp?PageTo=
tal=3D4>=20
Unsubscribe from all jobs by email =
<http://www.cwjobs.co.uk/ASP/CWJobsv2/Registration/JBEStop.asp?UserGUID=3D=
7ada1ba73b134da6a53a7d32ba988dca>=20
	=09
=20
From MDiPierro@cti.depaul.edu  Fri Nov 12 08:16:42 2004
Return-Path: <MDiPierro@cti.depaul.edu>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from haydn.cti.depaul.edu (haydn.cti.depaul.edu [140.192.32.26])
	by merlin.depaul.edu (Postfix) with ESMTP id CAB1218016
	for <cti_finance@mailman.depaul.edu>;
	Fri, 12 Nov 2004 08:16:42 -0600 (CST)
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Date: Fri, 12 Nov 2004 08:16:42 -0600
Message-ID: <6BE417C96732934A83E4BBBB3B7FF2F40248FB4C@haydn.cti.depaul.edu>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: reminder meeting
Thread-Index: AcTIwjuiYxUQa8aKS7OS6LdBI2b8ag==
From: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
To: <cti_finance@mailman.depaul.edu>
Subject: [Cti_finance] reminder meeting
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Fri, 12 Nov 2004 14:16:43 -0000

I remind you the meeting today in room 610 at 5:30-7:00pm
=20
Massimo Di Pierro
School of Computer Science, Telecommunications and Information Systems
DePaul University
243 S Wabash Ave
Chicago, IL 60604
Tel. +1-312-362-5173
Fax. +1-312-362-6116
Email: mdipierro@cs.depaul.edu
Personal Web Page: http://www.phoenixcollective.org/mdp/
From MDiPierro@cti.depaul.edu  Fri Nov 19 14:35:34 2004
Return-Path: <MDiPierro@cti.depaul.edu>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from haydn.cti.depaul.edu (haydn.cti.depaul.edu [140.192.32.26])
	by merlin.depaul.edu (Postfix) with ESMTP id 977F51807F
	for <cti_finance@mailman.depaul.edu>;
	Fri, 19 Nov 2004 14:35:34 -0600 (CST)
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Date: Fri, 19 Nov 2004 14:35:20 -0600
Message-ID: <6BE417C96732934A83E4BBBB3B7FF2F40248FC14@haydn.cti.depaul.edu>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: Friday Meeting
Thread-Index: AcTOaBCLqvsyFkfdTzumKhg2iki8BAADzlUO
From: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
To: "John Novak" <john.novak@gmail.com>,
	<cti_finance@mailman.depaul.edu>
Subject: [Cti_finance] RE: Friday Meeting
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Fri, 19 Nov 2004 20:35:34 -0000

5:30pm
=20
Massimo Di Pierro
School of Computer Science, Telecommunications and Information Systems
DePaul University
243 S Wabash Ave
Chicago, IL 60604
Tel. +1-312-362-5173
Fax. +1-312-362-6116
Email: mdipierro@cs.depaul.edu
Personal Web Page: http://www.phoenixcollective.org/mdp/

________________________________

From: John Novak [mailto:john.novak@gmail.com]
Sent: Fri 11/19/2004 12:46 PM
To: DiPierro, Massimo
Subject: Friday Meeting



Massimo,

We are meeting today, I assume.
Is that at 5:00 or 5:30 PM?

--
John S. Novak, III
John.Novak@gmail.com


From MDiPierro@cti.depaul.edu  Fri Nov 19 17:00:18 2004
Return-Path: <MDiPierro@cti.depaul.edu>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from haydn.cti.depaul.edu (haydn.cti.depaul.edu [140.192.32.26])
	by merlin.depaul.edu (Postfix) with ESMTP id 615541807F
	for <cti_finance@mailman.depaul.edu>;
	Fri, 19 Nov 2004 17:00:18 -0600 (CST)
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Date: Fri, 19 Nov 2004 16:59:54 -0600
Message-ID: <6BE417C96732934A83E4BBBB3B7FF2F40248FC19@haydn.cti.depaul.edu>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: papers to read
Thread-Index: AcTOi3Hf1AZelrVFTqO4LdllkqseXgAAAmYl
From: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
To: <cti_finance@mailman.depaul.edu>
Subject: [Cti_finance] papers to read
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Fri, 19 Nov 2004 23:00:18 -0000

=20
This is very much what we are trying to do about volatility smile.
=20
http://www.econ-pol.unisi.it/wfq/PaperSiena/BaroneAdesi-Rasmussen-Ravanel=
li.pdf
=20
http://www.math.ntu.edu.tw/~hchen/jointseminar/garchopt.pdf
=20
http://econwpa.wustl.edu:8089/eps/fin/papers/0405/0405032.pdf =
<http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=3DPTO1&Sect2=3DHITOFF&d=
=3DPG01&p=3D1&u=3D%2Fnetahtml%2FPTO%2Fsrchnum.html&r=3D1&f=3DG&l=3D50&s1=3D=
%2220040230959%22.PGNR.&OS=3DDN/20040230959&RS=3DDN/20040230959>=20
=20
Massimo Di Pierro
School of Computer Science, Telecommunications and Information Systems
DePaul University
243 S Wabash Ave
Chicago, IL 60604
Tel. +1-312-362-5173
Fax. +1-312-362-6116
Email: mdipierro@cs.depaul.edu
Personal Web Page: http://www.phoenixcollective.org/mdp/
From MDiPierro@cti.depaul.edu  Mon Nov 22 11:33:49 2004
Return-Path: <MDiPierro@cti.depaul.edu>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from haydn.cti.depaul.edu (haydn.cti.depaul.edu [140.192.32.26])
	by merlin.depaul.edu (Postfix) with ESMTP id CE07B18082
	for <cti_finance@mailman.depaul.edu>;
	Mon, 22 Nov 2004 11:33:49 -0600 (CST)
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Date: Mon, 22 Nov 2004 11:33:35 -0600
Message-ID: <6BE417C96732934A83E4BBBB3B7FF2F40248FC2C@haydn.cti.depaul.edu>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: conference
Thread-Index: AcTQuTodUgyD7VhxSE2rym/a5HoRFwAACqhB
From: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
To: <cti_finance@mailman.depaul.edu>
Subject: [Cti_finance] FW: conference
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Mon, 22 Nov 2004 17:33:49 -0000


=20

http://economics.uchicago.edu/research_news.shtml

Massimo


From wmlocke@ameritech.net  Mon Nov 22 17:50:51 2004
Return-Path: <wmlocke@ameritech.net>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from smtp811.mail.sc5.yahoo.com (smtp811.mail.sc5.yahoo.com
	[66.163.170.81])
	by merlin.depaul.edu (Postfix) with SMTP id BE9841807D
	for <cti_finance@mailman.depaul.edu>;
	Mon, 22 Nov 2004 17:50:50 -0600 (CST)
Received: from unknown (HELO Numeraire) (wmlocke@ameritech.net@68.74.145.231
	with login)
	by smtp811.mail.sc5.yahoo.com with SMTP; 22 Nov 2004 23:50:50 -0000
Message-ID: <004001c4d0ee$1ad7a330$6501a8c0@Numeraire>
From: "William M. Locke" <wmlocke@ameritech.net>
To: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>,
	<cti_finance@mailman.depaul.edu>
References: <6BE417C96732934A83E4BBBB3B7FF2F40248FC2C@haydn.cti.depaul.edu>
Date: Mon, 22 Nov 2004 17:50:53 -0600
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2800.1437
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441
Subject: [Cti_finance] Google Scholar
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Mon, 22 Nov 2004 23:50:51 -0000

I just came across this....

http://scholar.google.com/
From Aviad@BestFrog.com  Thu Nov 25 23:39:05 2004
Return-Path: <Aviad@BestFrog.com>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from smtp810.mail.sc5.yahoo.com (smtp810.mail.sc5.yahoo.com
	[66.163.170.80])
	by merlin.depaul.edu (Postfix) with SMTP id 6C75918080
	for <cti_finance@mailman.depaul.edu>;
	Thu, 25 Nov 2004 23:39:05 -0600 (CST)
Received: from unknown (HELO e1hak) (sheinfeld@ameritech.net@68.21.167.158
	with login)
	by smtp810.mail.sc5.yahoo.com with SMTP; 26 Nov 2004 05:39:04 -0000
From: "Aviad Sheinfeld" <Aviad@BestFrog.com>
To: <cti_finance@mailman.depaul.edu>
Date: Thu, 25 Nov 2004 23:38:53 -0600
MIME-Version: 1.0
Content-Type: multipart/alternative;
	boundary="----=_NextPart_000_01A2_01C4D347.ECF0A870"
X-Mailer: Microsoft Office Outlook, Build 11.0.6353
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441
Thread-Index: AcTTejbBqkhzc8I6RIutU0Mi5ADyFg==
Message-Id: <20041126053905.6C75918080@merlin.depaul.edu>
Subject: [Cti_finance] Degree Courses
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Fri, 26 Nov 2004 05:39:05 -0000

This is a multi-part message in MIME format.

------=_NextPart_000_01A2_01C4D347.ECF0A870
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: 7bit

If someone has a list of the courses that will constitute the degree, can
you please share them with me?
 
Thanks.
Aviad
 

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

<html xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
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=3DProgId content=3DWord.Document>
<meta name=3DGenerator content=3D"Microsoft Word 11">
<meta name=3DOriginator content=3D"Microsoft Word 11">
<link rel=3DFile-List href=3D"cid:filelist.xml@01C4D347.EC1DC810">
<!--[if gte mso 9]><xml>
 <o:OfficeDocumentSettings>
  <o:DoNotRelyOnCSS/>
 </o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:SpellingState>Clean</w:SpellingState>
  <w:GrammarState>Clean</w:GrammarState>
  <w:DocumentKind>DocumentEmail</w:DocumentKind>
  <w:EnvelopeVis/>
  <w:ValidateAgainstSchemas/>
  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:ApplyBreakingRules/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
   <w:UseWord2002TableStyleRules/>
  </w:Compatibility>
  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
 </w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:LatentStyles DefLockedState=3D"false" LatentStyleCount=3D"156">
 </w:LatentStyles>
</xml><![endif]-->
<style>
<!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:"";
	margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;
	text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;
	text-underline:single;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	mso-style-noshow:yes;
	mso-ansi-font-size:10.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:Arial;
	mso-ascii-font-family:Arial;
	mso-hansi-font-family:Arial;
	mso-bidi-font-family:Arial;
	color:windowtext;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;
	mso-header-margin:.5in;
	mso-footer-margin:.5in;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
-->
</style>
<!--[if gte mso 10]>
<style>
 /* Style Definitions */=20
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin:0in;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";
	mso-ansi-language:#0400;
	mso-fareast-language:#0400;
	mso-bidi-language:#0400;}
</style>
<![endif]-->
</head>

<body lang=3DEN-US link=3Dblue vlink=3Dpurple =
style=3D'tab-interval:.5in'>

<div class=3DSection1>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>If someone has a list of the courses that will =
constitute
the degree, can you please share them with =
me?<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Thanks.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Aviad<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

</div>

</body>

</html>

------=_NextPart_000_01A2_01C4D347.ECF0A870--


From mgoetsch@wellsstreettower.net  Fri Nov 26 00:00:26 2004
Return-Path: <mgoetsch@wellsstreettower.net>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from mail.onshore.net (mail.onshore.net [66.146.193.4])
	by merlin.depaul.edu (Postfix) with ESMTP id DB4F518038
	for <cti_finance@mailman.depaul.edu>;
	Fri, 26 Nov 2004 00:00:26 -0600 (CST)
Received: from localhost (localhost [127.0.0.1])
	by mail.onshore.net (Postfix) with ESMTP
	id 1EA034068; Fri, 26 Nov 2004 00:00:27 -0600 (CST)
Received: from unknown by localhost (amavisd-new, unix socket)
 id client-XX1Nxkpa; Fri, 26 Nov 2004 00:00:27 -0600 (CST)
Received: from MAG (OSH-NAT-212-76.onshore.net [66.146.212.76])
	by mail.onshore.net (Postfix) with SMTP
	id B3C664065; Fri, 26 Nov 2004 00:00:26 -0600 (CST)
Message-ID: <001401c4d37d$381e7770$6519a8c0@MAG>
From: "mgoetsch" <mgoetsch@wellsstreettower.net>
To: "Aviad Sheinfeld" <Aviad@BestFrog.com>,
	<cti_finance@mailman.depaul.edu>
References: <20041126053905.6C75918080@merlin.depaul.edu>
Subject: Re: [Cti_finance] Degree Courses
Date: Fri, 26 Nov 2004 00:00:23 -0600
MIME-Version: 1.0
Content-Type: multipart/alternative;
	boundary="----=_NextPart_000_0011_01C4D34A.ED5F6870"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2800.1106
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106
X-Virus-Scanned: by amavisd-new at onshore.net
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Fri, 26 Nov 2004 06:00:27 -0000

This is a multi-part message in MIME format.

------=_NextPart_000_0011_01C4D34A.ED5F6870
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Or put them on the yahoo newsgroup.

Mark
  ----- Original Message -----=20
  From: Aviad Sheinfeld=20
  To: cti_finance@mailman.depaul.edu=20
  Sent: Thursday, November 25, 2004 11:38 PM
  Subject: [Cti_finance] Degree Courses


  If someone has a list of the courses that will constitute the degree, =
can you please share them with me?

  =20

  Thanks.

  Aviad

  =20

  !DSPAM:41a6c18531072079087676!=20


-------------------------------------------------------------------------=
-----


  _______________________________________________
  Cti_finance mailing list
  Cti_finance@mailman.depaul.edu
  http://mailman.depaul.edu/mailman/listinfo/cti_finance


  !DSPAM:41a6c18531072079087676!

------=_NextPart_000_0011_01C4D34A.ED5F6870
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML xmlns=3D"http://www.w3.org/TR/REC-html40" xmlns:o =3D=20
"urn:schemas-microsoft-com:office:office" xmlns:w =3D=20
"urn:schemas-microsoft-com:office:word"><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3DWord.Document name=3DProgId>
<META content=3D"MSHTML 6.00.2800.1170" name=3DGENERATOR>
<META content=3D"Microsoft Word 11" name=3DOriginator><LINK=20
href=3D"cid:filelist.xml@01C4D347.EC1DC810" rel=3DFile-List><!--[if gte =
mso 9]><xml>
 <o:OfficeDocumentSettings>
  <o:DoNotRelyOnCSS/>
 </o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:SpellingState>Clean</w:SpellingState>
  <w:GrammarState>Clean</w:GrammarState>
  <w:DocumentKind>DocumentEmail</w:DocumentKind>
  <w:EnvelopeVis/>
  <w:ValidateAgainstSchemas/>
  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:ApplyBreakingRules/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
   <w:UseWord2002TableStyleRules/>
  </w:Compatibility>
  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
 </w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:LatentStyles DefLockedState=3D"false" LatentStyleCount=3D"156">
 </w:LatentStyles>
</xml><![endif]-->
<STYLE>@page Section1 {size: 8.5in 11.0in; margin: 1.0in 1.25in 1.0in =
1.25in; mso-header-margin: .5in; mso-footer-margin: .5in; =
mso-paper-source: 0; }
P.MsoNormal {
	FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"; =
mso-style-parent: ""; mso-pagination: widow-orphan; =
mso-fareast-font-family: "Times New Roman"
}
LI.MsoNormal {
	FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"; =
mso-style-parent: ""; mso-pagination: widow-orphan; =
mso-fareast-font-family: "Times New Roman"
}
DIV.MsoNormal {
	FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"; =
mso-style-parent: ""; mso-pagination: widow-orphan; =
mso-fareast-font-family: "Times New Roman"
}
A:link {
	COLOR: blue; TEXT-DECORATION: underline; text-underline: single
}
SPAN.MsoHyperlink {
	COLOR: blue; TEXT-DECORATION: underline; text-underline: single
}
A:visited {
	COLOR: purple; TEXT-DECORATION: underline; text-underline: single
}
SPAN.MsoHyperlinkFollowed {
	COLOR: purple; TEXT-DECORATION: underline; text-underline: single
}
SPAN.EmailStyle17 {
	COLOR: windowtext; FONT-FAMILY: Arial; mso-style-type: =
personal-compose; mso-style-noshow: yes; mso-ansi-font-size: 10.0pt; =
mso-bidi-font-size: 10.0pt; mso-ascii-font-family: Arial; =
mso-hansi-font-family: Arial; mso-bidi-font-family: Arial
}
DIV.Section1 {
	page: Section1
}
</STYLE>
<!--[if gte mso 10]>
<style>
 /* Style Definitions */=20
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin:0in;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";
	mso-ansi-language:#0400;
	mso-fareast-language:#0400;
	mso-bidi-language:#0400;}
</style>
<![endif]--></HEAD>
<BODY lang=3DEN-US style=3D"tab-interval: .5in" vLink=3Dpurple =
link=3Dblue=20
bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>Or put them on the yahoo =
newsgroup.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Mark</FONT></DIV>
<BLOCKQUOTE=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
  <DIV style=3D"FONT: 10pt arial">----- Original Message ----- </DIV>
  <DIV=20
  style=3D"BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: =
black"><B>From:</B>=20
  <A title=3DAviad@BestFrog.com href=3D"mailto:Aviad@BestFrog.com">Aviad =

  Sheinfeld</A> </DIV>
  <DIV style=3D"FONT: 10pt arial"><B>To:</B> <A=20
  title=3Dcti_finance@mailman.depaul.edu=20
  =
href=3D"mailto:cti_finance@mailman.depaul.edu">cti_finance@mailman.depaul=
.edu</A>=20
  </DIV>
  <DIV style=3D"FONT: 10pt arial"><B>Sent:</B> Thursday, November 25, =
2004 11:38=20
  PM</DIV>
  <DIV style=3D"FONT: 10pt arial"><B>Subject:</B> [Cti_finance] Degree=20
  Courses</DIV>
  <DIV><BR></DIV>
  <DIV class=3DSection1>
  <P class=3DMsoNormal><FONT face=3DArial size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; FONT-FAMILY: Arial">If someone has a list of =
the=20
  courses that will constitute the degree, can you please share them =
with=20
  me?<o:p></o:p></SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DArial size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; FONT-FAMILY: =
Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DArial size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; FONT-FAMILY: =
Arial">Thanks.<o:p></o:p></SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DArial size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; FONT-FAMILY: =
Arial">Aviad<o:p></o:p></SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DArial size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; FONT-FAMILY: =
Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P></DIV>!DSPAM:41a6c1853107207908=
7676!=20

  <P>
  <HR>

  <P></P>_______________________________________________<BR>Cti_finance =
mailing=20
  list<BR><A=20
  =
href=3D"mailto:Cti_finance@mailman.depaul.edu">Cti_finance@mailman.depaul=
.edu</A><BR><A=20
  =
href=3D"http://mailman.depaul.edu/mailman/listinfo/cti_finance">http://ma=
ilman.depaul.edu/mailman/listinfo/cti_finance</A><BR><BR><BR>!DSPAM:41a6c=
18531072079087676!<BR></BLOCKQUOTE></BODY></HTML>

------=_NextPart_000_0011_01C4D34A.ED5F6870--

From MDiPierro@cti.depaul.edu  Thu Dec  2 21:35:35 2004
Return-Path: <MDiPierro@cti.depaul.edu>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from haydn.cti.depaul.edu (haydn.cti.depaul.edu [140.192.32.26])
	by merlin.depaul.edu (Postfix) with ESMTP id 36AC118010
	for <cti_finance@mailman.depaul.edu>;
	Thu,  2 Dec 2004 21:35:35 -0600 (CST)
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Date: Thu, 2 Dec 2004 21:35:35 -0600
Message-ID: <6BE417C96732934A83E4BBBB3B7FF2F40248FCD6@haydn.cti.depaul.edu>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: tomorrow
Thread-Index: AcTY6SYB/l//DHLvRrqCGyzZ+KU+OA==
From: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
To: <cti_finance@mailman.depaul.edu>
Subject: [Cti_finance] tomorrow
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Fri, 03 Dec 2004 03:35:35 -0000

Reminder: Meeting tomorrow at 5:30 in cs&t610.
=20
Anybody up for dinner after the meeting?
=20
Massimo=20
From wmlocke@ameritech.net  Thu Dec  2 21:36:59 2004
Return-Path: <wmlocke@ameritech.net>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from smtp811.mail.sc5.yahoo.com (smtp811.mail.sc5.yahoo.com
	[66.163.170.81])
	by merlin.depaul.edu (Postfix) with SMTP id 0414418010
	for <cti_finance@mailman.depaul.edu>;
	Thu,  2 Dec 2004 21:36:59 -0600 (CST)
Received: from unknown (HELO Numeraire) (wmlocke@ameritech.net@68.74.119.196
	with login)
	by smtp811.mail.sc5.yahoo.com with SMTP; 3 Dec 2004 03:36:58 -0000
Message-ID: <000a01c4d8e9$5ae84e90$6401a8c0@Numeraire>
From: "William M. Locke" <wmlocke@ameritech.net>
To: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>,
	<cti_finance@mailman.depaul.edu>
References: <6BE417C96732934A83E4BBBB3B7FF2F40248FCD6@haydn.cti.depaul.edu>
Subject: Re: [Cti_finance] tomorrow
Date: Thu, 2 Dec 2004 21:37:02 -0600
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2800.1437
X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2800.1441
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Fri, 03 Dec 2004 03:36:59 -0000

Definitely.

----- Original Message ----- 
From: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
To: <cti_finance@mailman.depaul.edu>
Sent: Thursday, December 02, 2004 9:35 PM
Subject: [Cti_finance] tomorrow


Reminder: Meeting tomorrow at 5:30 in cs&t610.
 
Anybody up for dinner after the meeting?
 
Massimo 
_______________________________________________
Cti_finance mailing list
Cti_finance@mailman.depaul.edu
http://mailman.depaul.edu/mailman/listinfo/cti_finance
From MDiPierro@cti.depaul.edu  Fri Dec  3 17:23:34 2004
Return-Path: <MDiPierro@cti.depaul.edu>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from haydn.cti.depaul.edu (haydn.cti.depaul.edu [140.192.32.26])
	by merlin.depaul.edu (Postfix) with ESMTP id C718018010
	for <cti_finance@mailman.depaul.edu>;
	Fri,  3 Dec 2004 17:23:34 -0600 (CST)
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Date: Fri, 3 Dec 2004 17:23:34 -0600
Message-ID: <6BE417C96732934A83E4BBBB3B7FF2F40248FCF9@haydn.cti.depaul.edu>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: comp fin preliminary
Thread-Index: AcTZjxv7BjYOyt9WSriqhvjbSiPwKA==
From: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
To: <cti_finance@mailman.depaul.edu>
Subject: [Cti_finance] comp fin preliminary
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Fri, 03 Dec 2004 23:23:34 -0000

Prereq.

A three course Calculus sequence such as:  MAT150,151,152 or =
MAT160,161,162 or MAT170,171,172.

CSC309:          Object Oriented Programming in C++ (or CSC261 and =
CSC262)

CSC393:          Data structures in C++ (prerequisites: CSC309 or =
CSC263)

=20

ACC500:         Financial Accounting=20

ECO555:         Economics for Decision Making

FIN555:           Financial Management (prerequisites: ACC500 and =
ECO555)

FIN523:           Investment Analysis (prerequisites: FIN555)

FIN527:           Options (prerequisites: FIN523)

FIN525:           Portfolio Management (prerequisites: FIN523 and =
FIN555)

FIN528            Interest Rate Instruments & Valuation (prerequisite =
FIN527)

CSC423:          Data Analysis and Regression

=20

CSC4xx:          Analysis of time series

CSC485:          Numerical Analysis (prerequisite: CSC393) or CSC5xx=20

CSC521:          Monte Carlo Simulations (prerequisites: CSC309)

One open elective

One internship or project course

=20

Massimo
From MDiPierro@cti.depaul.edu  Mon Dec  6 09:41:07 2004
Return-Path: <MDiPierro@cti.depaul.edu>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from haydn.cti.depaul.edu (haydn.cti.depaul.edu [140.192.32.26])
	by merlin.depaul.edu (Postfix) with ESMTP id 0345D18015
	for <cti_finance@mailman.depaul.edu>;
	Mon,  6 Dec 2004 09:41:07 -0600 (CST)
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Date: Mon, 6 Dec 2004 09:40:46 -0600
Message-ID: <6BE417C96732934A83E4BBBB3B7FF2F40248FD0B@haydn.cti.depaul.edu>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: techalert : Chicago Board Options Exchange : Engineer, Screen
	Based Trading Development
Thread-Index: AcTbb2/YYXNEJq9oSXu8sDI2T7SAWAAOoQbk
From: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
To: <cti_finance@mailman.depaul.edu>
Subject: [Cti_finance] 
 RE: techalert : Chicago Board Options Exchange : Engineer, Screen
 Based Trading Development
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Mon, 06 Dec 2004 15:41:07 -0000

=20
=20
Massimo=20

________________________________

From: techbroker@techies.com [mailto:techbroker@techies.com]
Sent: Mon 12/6/2004 1:41 AM
To: mdp@fnal.gov
Subject: techalert : Chicago Board Options Exchange : Engineer, Screen =
Based Trading Development



Dear Massimo,

This following opportunity matches your techbroker(SM) Personal =
Opportunity Tracker settings:

Company: Chicago Board Options Exchange
Position: Engineer, Screen Based Trading Development
Job Location/Area: Chicago Proper
Profession/Job Family: Software Development & Programming
Employment Type: Full Time
Minimum Required Years of Experience: Experienced (6-9 years)
Skills: ClearCase (Rational), C++, Java, Real Time Multi-Tasking System, =
Rational Rose

Job Summary:
The Chicago Board Options Exchange (CBOE) has created the most advanced =
options trading floor in the world.  The CBOE trading Floor represents =
all the advantages of the open-outcry trading system supp...

To view job and company information, click the link below:
http://chicago.techies.com/Common/Jobs/Main/JobDisplay_m.jsp?CompanyKey=3D=
1505515&JobKey=3D2165312&howapplied=3Djobnote

To change your techbroker settings (or temporarily deactivate your =
techbroker), click the link below:
http://chicago.techies.com/Common/Profile/Main/TechbrokerConfigure_m.jsp

GO PUBLIC WITH YOUR RESUME with techies.com:
http://chicago.techies.com/Common/Profile/Registration/Main/RegistrationU=
pdate_m.jsp

Want to learn new skills that can prepare you for your dream job? Check =
out the training opportunities at the link below:
http://chicago.techies.com/Common/Training/Main/Index_m.jsp

Make someone smile, forward this techalert to a friend.

----------------------------------------------------------
* Hyperlinks throughout the newsletter may be too long to fit
in your window without wrapping. Be sure to copy and paste
both lines of longer links into your browser's address bar.
----------------------------------------------------------




From MDiPierro@cti.depaul.edu  Sun Dec 12 11:27:05 2004
Return-Path: <MDiPierro@cti.depaul.edu>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from haydn.cti.depaul.edu (haydn.cti.depaul.edu [140.192.32.26])
	by merlin.depaul.edu (Postfix) with ESMTP id 62AAC18016
	for <cti_finance@mailman.depaul.edu>;
	Sun, 12 Dec 2004 11:27:05 -0600 (CST)
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Date: Sun, 12 Dec 2004 11:27:05 -0600
Message-ID: <6BE417C96732934A83E4BBBB3B7FF2F40248FD62@haydn.cti.depaul.edu>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Index: AcTgb8yDsgsTc6rpT5yqiuaaI03tEw==
From: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
To: <cti_finance@mailman.depaul.edu>
cc: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
Subject: [Cti_finance] 
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Sun, 12 Dec 2004 17:27:05 -0000

Free C# book
http://www.icsharpcode.net/OpenSource/SD/InsideSharpDevelop.aspx


Massimo=20
From MDiPierro@cti.depaul.edu  Wed Dec 15 15:34:49 2004
Return-Path: <MDiPierro@cti.depaul.edu>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from haydn.cti.depaul.edu (haydn.cti.depaul.edu [140.192.32.26])
	by merlin.depaul.edu (Postfix) with ESMTP id 93F731806F
	for <cti_finance@mailman.depaul.edu>;
	Wed, 15 Dec 2004 15:34:49 -0600 (CST)
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Date: Wed, 15 Dec 2004 15:34:49 -0600
Message-ID: <6BE417C96732934A83E4BBBB3B7FF2F40248FD86@haydn.cti.depaul.edu>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: next year
Thread-Index: AcTi7eeb5PniE8i8Q2SSiDSvvQwvvA==
From: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
To: <cti_finance@mailman.depaul.edu>
Subject: [Cti_finance] next year
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Wed, 15 Dec 2004 21:34:49 -0000

Hi Everybody,

I know this may cause to some of you but next quarter the weekly =
meetings will have to be on Wedensday at 5:00 or 5:30pm. I do not have =
much choice. Please let me know your schedule.

I will soon send you an email with suggested readings.

Massimo

P.S. John, I know still have to answer some of your questions and send =
you the program. I will do it by friday.
From MDiPierro@cti.depaul.edu  Fri Dec 17 14:05:33 2004
Return-Path: <MDiPierro@cti.depaul.edu>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from haydn.cti.depaul.edu (haydn.cti.depaul.edu [140.192.32.26])
	by merlin.depaul.edu (Postfix) with ESMTP id 525D618010
	for <cti_finance@mailman.depaul.edu>;
	Fri, 17 Dec 2004 14:05:33 -0600 (CST)
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Date: Fri, 17 Dec 2004 14:05:33 -0600
Message-ID: <6BE417C96732934A83E4BBBB3B7FF2F40248FD9E@haydn.cti.depaul.edu>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: Financial Engineering Book
Thread-Index: AcTkX4q+B6rP5bh7TV2LfxhDdLz7IgAERDiX
From: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
To: "Smyth, Patrick" <PSmyth@allstate.com>,
	<cti_finance@mailman.depaul.edu>
Subject: [Cti_finance] RE: Financial Engineering Book
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Fri, 17 Dec 2004 20:05:33 -0000

Hello everybody,

=20

For this holidays I suggest you buy and start reading the following =
books:

=20

Yuh-Dauh Lyuu, "Financial Engineering and Computation", Cambridge =
University Press

=20

I had not time to make the copies of the papers on the hurst exponents. =
I will try to make the copies by tomorrow and mail them to William and =
Charles. In any case I found a good reading on the web you can use as a =
starting point: http://www.bearcave.com/misl/misl_tech/wavelets/hurst/

=20

More specifically here are some tasks for each of you:

=20

Chas Dowling

Download quantlib and write a sample program (using quantlib) to price a =
european call option and a european put option. Prepare a talk on the =
hurst exponent.

=20

William Locke

Implement in C++ the exact formula for pricing a European call option =
(the formula is in the book above)Implement the Newton-Raphson algorithm =
for minimization and use it to compute the implied volatility given the =
real option price. Plug it in you program and make a plot of implied =
volatility vs strike price for an option that expires in 10 days. Let =
the program run for hours and make sure it converges. We are not =
interested in speed but only checking if it works.

=20

John Novak

Install gnumeric and write a C++ program to compute the integral of =
sin(x[0])*sin(2*x[1])*cos(x[2]*x[3]) where 0<x[i] <1 for i=3D0,1,2,3. =
Time the different multidimensional algorithms present in gnumeric and =
time the algorithm I sent you. Compare times and results. Use our =
algorithm to compute the integral of multiple intersecting spheres.

=20

Aviad  Sheifeld

Task: Implement in C++ the Liner Programming Symplex Algorithm and =
prepare a short presentation on this algorithm. Do some testing. The =
algorithm is described in the Cormen book, Introduction to Algorithm, =
Chapter 29.

=20

Mark Goetsch

Task: Prepare a presentation on

http://e-collection.ethbib.ethz.ch/ecol-pool/dipl/dipl_127.pdf

Find the solving algorithms in the cases on can buy short and in the =
case cannot buy short (the typical case). Find references to pathologies =
of this algorithm and their meaning.

=20

Patrick Smyth

John Hull, "Options Futures and Other Derivatives"=20

=20

Happi holidays to all of you.
=20
=20
Massimo
From MDiPierro@cti.depaul.edu  Tue Dec 28 07:24:43 2004
Return-Path: <MDiPierro@cti.depaul.edu>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from haydn.cti.depaul.edu (haydn.cti.depaul.edu [140.192.32.26])
	by merlin.depaul.edu (Postfix) with ESMTP id 5664C18010
	for <cti_finance@mailman.depaul.edu>;
	Tue, 28 Dec 2004 07:24:43 -0600 (CST)
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Date: Tue, 28 Dec 2004 07:24:43 -0600
Message-ID: <6BE417C96732934A83E4BBBB3B7FF2F40248FDF4@haydn.cti.depaul.edu>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: talk
Thread-Index: AcTs4JdhPNKvwOauQ3KiIomACG9JpQ==
From: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
To: <cti_finance@mailman.depaul.edu>
Subject: [Cti_finance] talk
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Tue, 28 Dec 2004 13:24:43 -0000

http://mathclub.depaul.edu/meetings/index.asp?id=3D22

Massimo
From MDiPierro@cti.depaul.edu  Mon Jan  3 22:57:52 2005
Return-Path: <MDiPierro@cti.depaul.edu>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from haydn.cti.depaul.edu (haydn.cti.depaul.edu [140.192.32.26])
	by merlin.depaul.edu (Postfix) with ESMTP id 0AE2C18061
	for <cti_finance@mailman.depaul.edu>;
	Mon,  3 Jan 2005 22:57:52 -0600 (CST)
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Date: Mon, 3 Jan 2005 22:57:51 -0600
Message-ID: <6BE417C96732934A83E4BBBB3B7FF2F40248FE09@haydn.cti.depaul.edu>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Index: AcTyGfHFPXHbFcQAT4GOU1gvuJcR9A==
From: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
To: <cti_finance@mailman.depaul.edu>
Subject: [Cti_finance] 
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Tue, 04 Jan 2005 04:57:52 -0000

Hi Everybody,
=20
happy new year.
=20
Meetings will resume next week on Wednesday at 5:30pm in the usual place =
(610).
=20
Massimo Di Pierro
School of Computer Science, Telecommunications and Information Systems
DePaul University
243 S Wabash Ave
Chicago, IL 60604
Tel. +1-312-362-5173
Fax. +1-312-362-6116
Email: mdipierro@cs.depaul.edu
Personal Web Page: http://www.phoenixcollective.org/mdp/
From MDiPierro@cti.depaul.edu  Thu Jan  6 17:40:55 2005
Return-Path: <MDiPierro@cti.depaul.edu>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from haydn.cti.depaul.edu (haydn.cti.depaul.edu [140.192.32.26])
	by merlin.depaul.edu (Postfix) with ESMTP
	id 0895418084; Thu,  6 Jan 2005 17:40:55 -0600 (CST)
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Date: Thu, 6 Jan 2005 17:37:45 -0600
Message-ID: <6BE417C96732934A83E4BBBB3B7FF2F40248FE40@haydn.cti.depaul.edu>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: linux cluster
Thread-Index: AcT0SLlB5c5NVCHlRCuANPfPWdslXA==
From: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
To: <csc_521_801@mailman.depaul.edu>,
	<csc_561_801@mailman.depaul.edu>, <cti_finance@mailman.depaul.edu>
Subject: [Cti_finance] linux cluster
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Thu, 06 Jan 2005 23:40:55 -0000

I am looking for a volunteer to take care of the DePaul Linux Cluster =
for the next 2-4 quarters. It consists of 20 thightly coupled P4 (3GHz) =
for a total of 40GB Ram and 4TB HD. It is used for scientific =
computations. I will provide some training. This work is unpaid but most =
of it can be done remotely and will help you with references.=20
=20
If you are intereted and have some Linux/Sysadmin experience please let =
me know.
=20
Massimo Di Pierro
School of Computer Science, Telecommunications and Information Systems
DePaul University
243 S Wabash Ave
Chicago, IL 60604
Tel. +1-312-362-5173
Fax. +1-312-362-6116
Email: mdipierro@cs.depaul.edu
Personal Web Page: http://www.phoenixcollective.org/mdp/
From MDiPierro@cti.depaul.edu  Tue Jan 11 15:28:03 2005
Return-Path: <MDiPierro@cti.depaul.edu>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from haydn.cti.depaul.edu (haydn.cti.depaul.edu [140.192.32.26])
	by merlin.depaul.edu (Postfix) with ESMTP id 4E12E18077
	for <cti_finance@mailman.depaul.edu>;
	Tue, 11 Jan 2005 15:28:03 -0600 (CST)
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Date: Tue, 11 Jan 2005 15:28:03 -0600
Message-ID: <6BE417C96732934A83E4BBBB3B7FF2F40248FE87@haydn.cti.depaul.edu>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: meeting tomorrow
Thread-Index: AcT4JG6ZgJI+YiNUTiyAIqcrljsVPw==
From: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
To: <cti_finance@mailman.depaul.edu>
Subject: [Cti_finance] meeting tomorrow
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Tue, 11 Jan 2005 21:28:03 -0000

We resume our meetings tomorrow in room 610 (I have not reserved it yet. =
If booked we will move somewhere else).
Please let me know if you are coming and send me a one paragraph report =
about what you have been doing.
=20
Massimo
From MDiPierro@cti.depaul.edu  Wed Jan 19 09:44:21 2005
Return-Path: <MDiPierro@cti.depaul.edu>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from haydn.cti.depaul.edu (haydn.cti.depaul.edu [140.192.32.26])
	by merlin.depaul.edu (Postfix) with ESMTP id 316CF18010
	for <cti_finance@mailman.depaul.edu>;
	Wed, 19 Jan 2005 09:44:21 -0600 (CST)
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Date: Wed, 19 Jan 2005 09:43:26 -0600
Message-ID: <6BE417C96732934A83E4BBBB3B7FF2F40248FF05@haydn.cti.depaul.edu>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: Group meeting at DePaul today.
Thread-Index: AcT+PQG4/pYfnejoSauXXGY5dX2TWwAAJwBf
From: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
To: <MMcGee@ttcmarketingsolutions.com>,
	<cti_finance@mailman.depaul.edu>
Subject: [Cti_finance] RE: Group meeting at DePaul today.
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Wed, 19 Jan 2005 15:44:21 -0000

Reminder: meeting tonight at 5:30 in room CS&T610

Massimo

From MDiPierro@cti.depaul.edu  Thu Jan 20 10:59:21 2005
Return-Path: <MDiPierro@cti.depaul.edu>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from haydn.cti.depaul.edu (haydn.cti.depaul.edu [140.192.32.26])
	by merlin.depaul.edu (Postfix) with ESMTP id 1333D18062
	for <cti_finance@mailman.depaul.edu>;
	Thu, 20 Jan 2005 10:59:21 -0600 (CST)
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Date: Thu, 20 Jan 2005 10:59:20 -0600
Message-ID: <6BE417C96732934A83E4BBBB3B7FF2F40248FF1C@haydn.cti.depaul.edu>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: no meeting
Thread-Index: AcT/EWKtWxTe5W2yS2+Bxrf3zF/B1w==
From: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>
To: <cti_finance@mailman.depaul.edu>
Subject: [Cti_finance] no meeting
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Thu, 20 Jan 2005 16:59:21 -0000

Sorry about this but I will not be able to make the meeting next week.
We will resume on Februrary 2, usual time usual place.

Next week on Thuesday  there is a talk organized by the DePaul Math Club =
that may interest you:
https://www.cs.depaul.edu/news/news.asp?id=3D1947&section=3D
I will probably attend.

Massimo



Massimo Di Pierro
School of Computer Science, Telecommunications and Information Systems
DePaul University
243 S Wabash Ave
Chicago, IL 60604
Tel. +1-312-362-5173
Fax. +1-312-362-6116
Email: mdipierro@cs.depaul.edu
Personal Web Page: http://www.phoenixcollective.org/mdp/

From limpsangsric@yahoo.com  Tue Jan 25 11:29:42 2005
Return-Path: <limpsangsric@yahoo.com>
Delivered-To: cti_finance@mailman.depaul.edu
Received: from web52407.mail.yahoo.com (web52407.mail.yahoo.com
	[206.190.39.115])
	by merlin.depaul.edu (Postfix) with SMTP id 4085918010
	for <cti_finance@mailman.depaul.edu>;
	Tue, 25 Jan 2005 11:29:42 -0600 (CST)
Received: (qmail 42931 invoked by uid 60001); 25 Jan 2005 17:29:41 -0000
Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws;
	s=s1024; d=yahoo.com;
	b=Y/FCbC0PhA61NzY1YaK8wbCRXf8OU5aDL/lOMsW1x4AO9nK73m6gp5FIKlJFH9LsqcyOsxGi11+6r6ajYLIdM+6mHJwdAvuaxqJDCJsCmO5vcg4q/VxZ4HdqZ5a4qjRnz8VD3o/uqKP3xwOPasy9YPyy63g223vkCXAV0DXQ/i8=
	;
Message-ID: <20050125172941.42929.qmail@web52407.mail.yahoo.com>
Received: from [140.192.38.74] by web52407.mail.yahoo.com via HTTP;
	Tue, 25 Jan 2005 09:29:41 PST
Date: Tue, 25 Jan 2005 09:29:41 -0800 (PST)
From: chan limp <limpsangsric@yahoo.com>
To: "DiPierro, Massimo" <MDiPierro@cti.depaul.edu>,
	cti_finance@mailman.depaul.edu
In-Reply-To: <6BE417C96732934A83E4BBBB3B7FF2F40248FF1C@haydn.cti.depaul.edu>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="0-998847351-1106674181=:39726"
X-Mailman-Approved-At: Wed, 26 Jan 2005 08:16:57 -0600
Subject: [Cti_finance] good sites on MC
X-BeenThere: cti_finance@mailman.depaul.edu
X-Mailman-Version: 2.1
Precedence: list
List-Id: <cti_finance.mailman.depaul.edu>
List-Unsubscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=unsubscribe>
List-Archive: <http://mailman.depaul.edu/pipermail/cti_finance>
List-Post: <mailto:cti_finance@mailman.depaul.edu>
List-Help: <mailto:cti_finance-request@mailman.depaul.edu?subject=help>
List-Subscribe: <http://mailman.depaul.edu/mailman/listinfo/cti_finance>,
	<mailto:cti_finance-request@mailman.depaul.edu?subject=subscribe>
X-List-Received-Date: Tue, 25 Jan 2005 17:29:43 -0000

--0-998847351-1106674181=:39726
Content-Type: text/plain; charset=us-ascii
Content-Id: 
Content-Disposition: inline


http://www-2.cs.cmu.edu/~thrun/papers/thrun.mchmm.html



		
__________________________________ 
Do you Yahoo!? 
The all-new My Yahoo! - What will yours do?
http://my.yahoo.com 
--0-998847351-1106674181=:39726
Content-Type: application/postscript; name="monteintro.ps"
Content-Transfer-Encoding: base64
Content-Description: monteintro.ps
Content-Disposition: attachment; filename="monteintro.ps"

JSFQUy1BZG9iZS0yLjAKJSVDcmVhdG9yOiBkdmlwcyA1LjUxOSBDb3B5cmln
aHQgMTk4NiwgMTk5MyBSYWRpY2FsIEV5ZSBTb2Z0d2FyZQolJVRpdGxlOiBl
cmljZS5kdmkKJSVDcmVhdGlvbkRhdGU6IFR1ZSBPY3QgIDcgMTc6NTk6NDEg
MTk5NwolJVBhZ2VzOiAzMAolJVBhZ2VPcmRlcjogQXNjZW5kCiUlQm91bmRp
bmdCb3g6IDAgMCA1OTYgODQyCiUlRW5kQ29tbWVudHMKJURWSVBTQ29tbWFu
ZExpbmU6IGR2aXBzIGVyaWNlLmR2aQolRFZJUFNTb3VyY2U6ICBUZVggb3V0
cHV0IDE5OTcuMTAuMDc6MTc1OQolJUJlZ2luUHJvY1NldDogdGV4LnBybwov
VGVYRGljdCAyNTAgZGljdCBkZWYgVGVYRGljdCBiZWdpbiAvTntkZWZ9ZGVm
IC9Ce2JpbmQgZGVmfU4gL1N7ZXhjaH1OCi9Ye1MgTn1CIC9UUnt0cmFuc2xh
dGV9TiAvaXNscyBmYWxzZSBOIC92c2l6ZSAxMSA3MiBtdWwgTiAvaHNpemUg
OC41IDcyCm11bCBOIC9sYW5kcGx1czkwe2ZhbHNlfWRlZiAvQHJpZ2lue2lz
bHN7WzAgbGFuZHBsdXM5MHsxIC0xfXstMSAxfQppZmVsc2UgMCAwIDBdY29u
Y2F0fWlmIDcyIFJlc29sdXRpb24gZGl2IDcyIFZSZXNvbHV0aW9uIGRpdiBu
ZWcgc2NhbGUKaXNsc3tsYW5kcGx1czkwe1ZSZXNvbHV0aW9uIDcyIGRpdiB2
c2l6ZSBtdWwgMCBleGNofXtSZXNvbHV0aW9uIC03MiBkaXYKaHNpemUgbXVs
IDB9aWZlbHNlIFRSfWlmIFJlc29sdXRpb24gVlJlc29sdXRpb24gdnNpemUg
LTcyIGRpdiAxIGFkZCBtdWwKVFIgbWF0cml4IGN1cnJlbnRtYXRyaXggZHVw
IGR1cCA0IGdldCByb3VuZCA0IGV4Y2ggcHV0IGR1cCBkdXAgNSBnZXQKcm91
bmQgNSBleGNoIHB1dCBzZXRtYXRyaXh9TiAvQGxhbmRzY2FwZXsvaXNscyB0
cnVlIE59QiAvQG1hbnVhbGZlZWR7CnN0YXR1c2RpY3QgL21hbnVhbGZlZWQg
dHJ1ZSBwdXR9QiAvQGNvcGllc3svI2NvcGllcyBYfUIgL0ZNYXRbMSAwIDAg
LTEgMAowXU4gL0ZCQlswIDAgMCAwXU4gL25uIDAgTiAvSUUgMCBOIC9jdHIg
MCBOIC9kZi10YWlsey9ubiA4IGRpY3QgTiBubgpiZWdpbiAvRm9udFR5cGUg
MyBOIC9Gb250TWF0cml4IGZudHJ4IE4gL0ZvbnRCQm94IEZCQiBOIHN0cmlu
ZyAvYmFzZSBYCmFycmF5IC9CaXRNYXBzIFggL0J1aWxkQ2hhcntDaGFyQnVp
bGRlcn1OIC9FbmNvZGluZyBJRSBOIGVuZCBkdXB7L2ZvbwpzZXRmb250fTIg
YXJyYXkgY29weSBjdnggTiBsb2FkIDAgbm4gcHV0IC9jdHIgMCBOW31CIC9k
Znsvc2YgMSBOIC9mbnRyeApGTWF0IE4gZGYtdGFpbH1CIC9kZnN7ZGl2IC9z
ZiBYIC9mbnRyeFtzZiAwIDAgc2YgbmVnIDAgMF1OIGRmLXRhaWx9QiAvRXsK
cG9wIG5uIGR1cCBkZWZpbmVmb250IHNldGZvbnR9QiAvY2gtd2lkdGh7Y2gt
ZGF0YSBkdXAgbGVuZ3RoIDUgc3ViIGdldH0KQiAvY2gtaGVpZ2h0e2NoLWRh
dGEgZHVwIGxlbmd0aCA0IHN1YiBnZXR9QiAvY2gteG9mZnsxMjggY2gtZGF0
YSBkdXAKbGVuZ3RoIDMgc3ViIGdldCBzdWJ9QiAvY2gteW9mZntjaC1kYXRh
IGR1cCBsZW5ndGggMiBzdWIgZ2V0IDEyNyBzdWJ9QgovY2gtZHh7Y2gtZGF0
YSBkdXAgbGVuZ3RoIDEgc3ViIGdldH1CIC9jaC1pbWFnZXtjaC1kYXRhIGR1
cCB0eXBlCi9zdHJpbmd0eXBlIG5le2N0ciBnZXQgL2N0ciBjdHIgMSBhZGQg
Tn1pZn1CIC9pZCAwIE4gL3J3IDAgTiAvcmMgMCBOIC9ncAowIE4gL2NwIDAg
TiAvRyAwIE4gL3NmIDAgTiAvQ2hhckJ1aWxkZXJ7c2F2ZSAzIDEgcm9sbCBT
IGR1cCAvYmFzZSBnZXQgMgppbmRleCBnZXQgUyAvQml0TWFwcyBnZXQgUyBn
ZXQgL2NoLWRhdGEgWCBwb3AgL2N0ciAwIE4gY2gtZHggMCBjaC14b2ZmCmNo
LXlvZmYgY2gtaGVpZ2h0IHN1YiBjaC14b2ZmIGNoLXdpZHRoIGFkZCBjaC15
b2ZmIHNldGNhY2hlZGV2aWNlCmNoLXdpZHRoIGNoLWhlaWdodCB0cnVlWzEg
MCAwIC0xIC0uMSBjaC14b2ZmIHN1YiBjaC15b2ZmIC4xIGFkZF17CmNoLWlt
YWdlfWltYWdlbWFzayByZXN0b3JlfUIgL0R7L2NjIFggZHVwIHR5cGUgL3N0
cmluZ3R5cGUgbmV7XX1pZiBubgovYmFzZSBnZXQgY2MgY3RyIHB1dCBubiAv
Qml0TWFwcyBnZXQgUyBjdHIgUyBzZiAxIG5le2R1cCBkdXAgbGVuZ3RoIDEK
c3ViIGR1cCAyIGluZGV4IFMgZ2V0IHNmIGRpdiBwdXR9aWYgcHV0IC9jdHIg
Y3RyIDEgYWRkIE59QiAvSXtjYyAxIGFkZCBECn1CIC9ib3B7dXNlcmRpY3Qg
L2JvcC1ob29rIGtub3due2JvcC1ob29rfWlmIC9TSSBzYXZlIE4gQHJpZ2lu
IDAgMAptb3ZldG8gL1YgbWF0cml4IGN1cnJlbnRtYXRyaXggZHVwIDEgZ2V0
IGR1cCBtdWwgZXhjaCAwIGdldCBkdXAgbXVsIGFkZAouOTkgbHR7L1FWfXsv
UlZ9aWZlbHNlIGxvYWQgZGVmIHBvcCBwb3B9TiAvZW9we1NJIHJlc3RvcmUg
c2hvd3BhZ2UKdXNlcmRpY3QgL2VvcC1ob29rIGtub3due2VvcC1ob29rfWlm
fU4gL0BzdGFydHt1c2VyZGljdCAvc3RhcnQtaG9vawprbm93bntzdGFydC1o
b29rfWlmIHBvcCAvVlJlc29sdXRpb24gWCAvUmVzb2x1dGlvbiBYIDEwMDAg
ZGl2IC9EVkltYWcgWAovSUUgMjU2IGFycmF5IE4gMCAxIDI1NXtJRSBTIDEg
c3RyaW5nIGR1cCAwIDMgaW5kZXggcHV0IGN2biBwdXR9Zm9yCjY1NzgxLjc2
IGRpdiAvdnNpemUgWCA2NTc4MS43NiBkaXYgL2hzaXplIFh9TiAvcHtzaG93
fU4gL1JNYXRbMSAwIDAgLTEgMAowXU4gL0JEb3QgMjYwIHN0cmluZyBOIC9y
dWxleCAwIE4gL3J1bGV5IDAgTiAvdnsvcnVsZXkgWCAvcnVsZXggWCBWfUIg
L1YKe31CIC9SViBzdGF0dXNkaWN0IGJlZ2luIC9wcm9kdWN0IHdoZXJle3Bv
cCBwcm9kdWN0IGR1cCBsZW5ndGggNyBnZXswIDcKZ2V0aW50ZXJ2YWwgZHVw
KERpc3BsYXkpZXEgZXhjaCAwIDQgZ2V0aW50ZXJ2YWwoTmVYVCllcSBvcn17
cG9wIGZhbHNlfQppZmVsc2V9e2ZhbHNlfWlmZWxzZSBlbmR7e2dzYXZlIFRS
IC0uMSAtLjEgVFIgMSAxIHNjYWxlIHJ1bGV4IHJ1bGV5CmZhbHNlIFJNYXR7
QkRvdH1pbWFnZW1hc2sgZ3Jlc3RvcmV9fXt7Z3NhdmUgVFIgLS4xIC0uMSBU
UiBydWxleCBydWxleQpzY2FsZSAxIDEgZmFsc2UgUk1hdHtCRG90fWltYWdl
bWFzayBncmVzdG9yZX19aWZlbHNlIEIgL1FWe2dzYXZlCnRyYW5zZm9ybSBy
b3VuZCBleGNoIHJvdW5kIGV4Y2ggaXRyYW5zZm9ybSBtb3ZldG8gcnVsZXgg
MCBybGluZXRvIDAKcnVsZXkgbmVnIHJsaW5ldG8gcnVsZXggbmVnIDAgcmxp
bmV0byBmaWxsIGdyZXN0b3JlfUIgL2F7bW92ZXRvfUIgL2RlbHRhCjAgTiAv
dGFpbHtkdXAgL2RlbHRhIFggMCBybW92ZXRvfUIgL017UyBwIGRlbHRhIGFk
ZCB0YWlsfUIgL2J7UyBwIHRhaWx9CkIgL2N7LTQgTX1CIC9key0zIE19QiAv
ZXstMiBNfUIgL2Z7LTEgTX1CIC9nezAgTX1CIC9oezEgTX1CIC9pezIgTX1C
IC9qewozIE19QiAva3s0IE19QiAvd3swIHJtb3ZldG99QiAvbHtwIC00IHd9
QiAvbXtwIC0zIHd9QiAvbntwIC0yIHd9QiAvb3twCi0xIHd9QiAvcXtwIDEg
d31CIC9ye3AgMiB3fUIgL3N7cCAzIHd9QiAvdHtwIDQgd31CIC94ezAgUyBy
bW92ZXRvfUIgL3l7CjMgMiByb2xsIHAgYX1CIC9ib3N7L1NTIHNhdmUgTn1C
IC9lb3N7U1MgcmVzdG9yZX1CIGVuZAolJUVuZFByb2NTZXQKJSVCZWdpblBy
b2NTZXQ6IHNwZWNpYWwucHJvClRlWERpY3QgYmVnaW4gL1NEaWN0IDIwMCBk
aWN0IE4gU0RpY3QgYmVnaW4gL0BTcGVjaWFsRGVmYXVsdHN7L2hzIDYxMiBO
Ci92cyA3OTIgTiAvaG8gMCBOIC92byAwIE4gL2hzYyAxIE4gL3ZzYyAxIE4g
L2FuZyAwIE4gL0NMSVAgMCBOIC9yd2lTZWVuCmZhbHNlIE4gL3JoaVNlZW4g
ZmFsc2UgTiAvbGV0dGVye31OIC9ub3Rle31OIC9hNHt9TiAvbGVnYWx7fU59
QgovQHNjYWxldW5pdCAxMDAgTiAvQGhzY2FsZXtAc2NhbGV1bml0IGRpdiAv
aHNjIFh9QiAvQHZzY2FsZXtAc2NhbGV1bml0CmRpdiAvdnNjIFh9QiAvQGhz
aXpley9ocyBYIC9DTElQIDEgTn1CIC9AdnNpemV7L3ZzIFggL0NMSVAgMSBO
fUIgL0BjbGlwewovQ0xJUCAyIE59QiAvQGhvZmZzZXR7L2hvIFh9QiAvQHZv
ZmZzZXR7L3ZvIFh9QiAvQGFuZ2xley9hbmcgWH1CIC9AcndpewoxMCBkaXYg
L3J3aSBYIC9yd2lTZWVuIHRydWUgTn1CIC9AcmhpezEwIGRpdiAvcmhpIFgg
L3JoaVNlZW4gdHJ1ZSBOfUIKL0BsbHh7L2xseCBYfUIgL0BsbHl7L2xseSBY
fUIgL0B1cnh7L3VyeCBYfUIgL0B1cnl7L3VyeSBYfUIgL21hZ3NjYWxlCnRy
dWUgZGVmIGVuZCAvQE1hY1NldFVwe3VzZXJkaWN0IC9tZCBrbm93bnt1c2Vy
ZGljdCAvbWQgZ2V0IHR5cGUKL2RpY3R0eXBlIGVxe3VzZXJkaWN0IGJlZ2lu
IG1kIGxlbmd0aCAxMCBhZGQgbWQgbWF4bGVuZ3RoIGdley9tZCBtZCBkdXAK
bGVuZ3RoIDIwIGFkZCBkaWN0IGNvcHkgZGVmfWlmIGVuZCBtZCBiZWdpbiAv
bGV0dGVye31OIC9ub3Rle31OIC9sZWdhbHt9Ck4gL29ke3R4cG9zZSAxIDAg
bXR4IGRlZmF1bHRtYXRyaXggZHRyYW5zZm9ybSBTIGF0YW4vcGEgWCBuZXdw
YXRoCmNsaXBwYXRoIG1hcmt7dHJhbnNmb3Jte2l0cmFuc2Zvcm0gbW92ZXRv
fX17dHJhbnNmb3Jte2l0cmFuc2Zvcm0gbGluZXRvfQp9ezYgLTIgcm9sbCB0
cmFuc2Zvcm0gNiAtMiByb2xsIHRyYW5zZm9ybSA2IC0yIHJvbGwgdHJhbnNm
b3JtewppdHJhbnNmb3JtIDYgMiByb2xsIGl0cmFuc2Zvcm0gNiAyIHJvbGwg
aXRyYW5zZm9ybSA2IDIgcm9sbCBjdXJ2ZXRvfX17ewpjbG9zZXBhdGh9fXBh
dGhmb3JhbGwgbmV3cGF0aCBjb3VudHRvbWFyayBhcnJheSBhc3RvcmUgL2dj
IHhkZiBwb3AgY3QgMzkKMCBwdXQgMTAgZnogMCBmcyAyIEYvfF9fX19fX0Nv
dXJpZXIgZm50IGludmVydGZsYWd7UGFpbnRCbGFja31pZn1OCi90eHBvc2V7
cHhzIHB5cyBzY2FsZSBwcHIgYWxvYWQgcG9wIHBvcntub2ZsaXBze3BvcCBT
IG5lZyBTIFRSIHBvcCAxIC0xCnNjYWxlfWlmIHhmbGlwIHlmbGlwIGFuZHtw
b3AgUyBuZWcgUyBUUiAxODAgcm90YXRlIDEgLTEgc2NhbGUgcHByIDMgZ2V0
CnBwciAxIGdldCBuZWcgc3ViIG5lZyBwcHIgMiBnZXQgcHByIDAgZ2V0IG5l
ZyBzdWIgbmVnIFRSfWlmIHhmbGlwIHlmbGlwCm5vdCBhbmR7cG9wIFMgbmVn
IFMgVFIgcG9wIDE4MCByb3RhdGUgcHByIDMgZ2V0IHBwciAxIGdldCBuZWcg
c3ViIG5lZyAwClRSfWlmIHlmbGlwIHhmbGlwIG5vdCBhbmR7cHByIDEgZ2V0
IG5lZyBwcHIgMCBnZXQgbmVnIFRSfWlmfXtub2ZsaXBze1RSCnBvcCBwb3Ag
MjcwIHJvdGF0ZSAxIC0xIHNjYWxlfWlmIHhmbGlwIHlmbGlwIGFuZHtUUiBw
b3AgcG9wIDkwIHJvdGF0ZSAxCi0xIHNjYWxlIHBwciAzIGdldCBwcHIgMSBn
ZXQgbmVnIHN1YiBuZWcgcHByIDIgZ2V0IHBwciAwIGdldCBuZWcgc3ViIG5l
ZwpUUn1pZiB4ZmxpcCB5ZmxpcCBub3QgYW5ke1RSIHBvcCBwb3AgOTAgcm90
YXRlIHBwciAzIGdldCBwcHIgMSBnZXQgbmVnCnN1YiBuZWcgMCBUUn1pZiB5
ZmxpcCB4ZmxpcCBub3QgYW5ke1RSIHBvcCBwb3AgMjcwIHJvdGF0ZSBwcHIg
MiBnZXQgcHByCjAgZ2V0IG5lZyBzdWIgbmVnIDAgUyBUUn1pZn1pZmVsc2Ug
c2NhbGVieTk2e3BwciBhbG9hZCBwb3AgNCAtMSByb2xsIGFkZAoyIGRpdiAz
IDEgcm9sbCBhZGQgMiBkaXYgMiBjb3B5IFRSIC45NiBkdXAgc2NhbGUgbmVn
IFMgbmVnIFMgVFJ9aWZ9TiAvY3AKe3BvcCBwb3Agc2hvd3BhZ2UgcG0gcmVz
dG9yZX1OIGVuZH1pZn1pZn1OIC9ub3JtYWxzY2FsZXtSZXNvbHV0aW9uIDcy
CmRpdiBWUmVzb2x1dGlvbiA3MiBkaXYgbmVnIHNjYWxlIG1hZ3NjYWxle0RW
SW1hZyBkdXAgc2NhbGV9aWYgMCBzZXRncmF5fQpOIC9wc2Z0c3tTIDY1Nzgx
Ljc2IGRpdiBOfU4gL3N0YXJ0VGV4Rmlney9wc2YkU2F2ZWRTdGF0ZSBzYXZl
IE4gdXNlcmRpY3QKbWF4bGVuZ3RoIGRpY3QgYmVnaW4gL21hZ3NjYWxlIHRy
dWUgZGVmIG5vcm1hbHNjYWxlIGN1cnJlbnRwb2ludCBUUgovcHNmJHVyeSBw
c2Z0cyAvcHNmJHVyeCBwc2Z0cyAvcHNmJGxseSBwc2Z0cyAvcHNmJGxseCBw
c2Z0cyAvcHNmJHkgcHNmdHMKL3BzZiR4IHBzZnRzIGN1cnJlbnRwb2ludCAv
cHNmJGN5IFggL3BzZiRjeCBYIC9wc2Ykc3ggcHNmJHggcHNmJHVyeApwc2Yk
bGx4IHN1YiBkaXYgTiAvcHNmJHN5IHBzZiR5IHBzZiR1cnkgcHNmJGxseSBz
dWIgZGl2IE4gcHNmJHN4IHBzZiRzeQpzY2FsZSBwc2YkY3ggcHNmJHN4IGRp
diBwc2YkbGx4IHN1YiBwc2YkY3kgcHNmJHN5IGRpdiBwc2YkdXJ5IHN1YiBU
Ugovc2hvd3BhZ2V7fU4gL2VyYXNlcGFnZXt9TiAvY29weXBhZ2V7fU4gL3Ag
MyBkZWYgQE1hY1NldFVwfU4gL2RvY2xpcHsKcHNmJGxseCBwc2YkbGx5IHBz
ZiR1cnggcHNmJHVyeSBjdXJyZW50cG9pbnQgNiAyIHJvbGwgbmV3cGF0aCA0
IGNvcHkgNCAyCnJvbGwgbW92ZXRvIDYgLTEgcm9sbCBTIGxpbmV0byBTIGxp
bmV0byBTIGxpbmV0byBjbG9zZXBhdGggY2xpcCBuZXdwYXRoCm1vdmV0b31O
IC9lbmRUZXhGaWd7ZW5kIHBzZiRTYXZlZFN0YXRlIHJlc3RvcmV9TiAvQGJl
Z2luc3BlY2lhbHtTRGljdApiZWdpbiAvU3BlY2lhbFNhdmUgc2F2ZSBOIGdz
YXZlIG5vcm1hbHNjYWxlIGN1cnJlbnRwb2ludCBUUgpAU3BlY2lhbERlZmF1
bHRzIGNvdW50IC9vY291bnQgWCAvZGNvdW50IGNvdW50ZGljdHN0YWNrIE59
TiAvQHNldHNwZWNpYWwKe0NMSVAgMSBlcXtuZXdwYXRoIDAgMCBtb3ZldG8g
aHMgMCBybGluZXRvIDAgdnMgcmxpbmV0byBocyBuZWcgMCBybGluZXRvCmNs
b3NlcGF0aCBjbGlwfWlmIGhvIHZvIFRSIGhzYyB2c2Mgc2NhbGUgYW5nIHJv
dGF0ZSByd2lTZWVue3J3aSB1cnggbGx4CnN1YiBkaXYgcmhpU2VlbntyaGkg
dXJ5IGxseSBzdWIgZGl2fXtkdXB9aWZlbHNlIHNjYWxlIGxseCBuZWcgbGx5
IG5lZyBUUgp9e3JoaVNlZW57cmhpIHVyeSBsbHkgc3ViIGRpdiBkdXAgc2Nh
bGUgbGx4IG5lZyBsbHkgbmVnIFRSfWlmfWlmZWxzZQpDTElQIDIgZXF7bmV3
cGF0aCBsbHggbGx5IG1vdmV0byB1cnggbGx5IGxpbmV0byB1cnggdXJ5IGxp
bmV0byBsbHggdXJ5CmxpbmV0byBjbG9zZXBhdGggY2xpcH1pZiAvc2hvd3Bh
Z2V7fU4gL2VyYXNlcGFnZXt9TiAvY29weXBhZ2V7fU4gbmV3cGF0aAp9TiAv
QGVuZHNwZWNpYWx7Y291bnQgb2NvdW50IHN1Yntwb3B9cmVwZWF0IGNvdW50
ZGljdHN0YWNrIGRjb3VudCBzdWJ7CmVuZH1yZXBlYXQgZ3Jlc3RvcmUgU3Bl
Y2lhbFNhdmUgcmVzdG9yZSBlbmR9TiAvQGRlZnNwZWNpYWx7U0RpY3QgYmVn
aW59Ck4gL0BmZWRzcGVjaWFse2VuZH1CIC9saXtsaW5ldG99QiAvcmx7cmxp
bmV0b31CIC9yY3tyY3VydmV0b31CIC9ucHsKL1NhdmVYIGN1cnJlbnRwb2lu
dCAvU2F2ZVkgWCBOIDEgc2V0bGluZWNhcCBuZXdwYXRofU4gL3N0e3N0cm9r
ZSBTYXZlWApTYXZlWSBtb3ZldG99TiAvZmlse2ZpbGwgU2F2ZVggU2F2ZVkg
bW92ZXRvfU4gL2VsbGlwc2V7L2VuZGFuZ2xlIFgKL3N0YXJ0YW5nbGUgWCAv
eXJhZCBYIC94cmFkIFggL3NhdmVtYXRyaXggbWF0cml4IGN1cnJlbnRtYXRy
aXggTiBUUiB4cmFkCnlyYWQgc2NhbGUgMCAwIDEgc3RhcnRhbmdsZSBlbmRh
bmdsZSBhcmMgc2F2ZW1hdHJpeCBzZXRtYXRyaXh9TiBlbmQKJSVFbmRQcm9j
U2V0ClRlWERpY3QgYmVnaW4gMzkxNTgyODAgNTUzODA5OTYgMTAwMCAzMDAg
MzAwCigvdXNyL2V4cG9ydC9ob21lL21hY2theS9fY291cnNlcy9pdHBybm4v
ZXJpY2UuZHZpKSBAc3RhcnQKL0ZhIDE0IDExOSBkZjwxRkYwN0ZGQzc4M0M3
MDFDRTAwRUUwMEVFMDBFRTAwRUUwMEVFMDBFRTAwRUUwMEVFMDBFRTAwRUUw
CjBFRTAwRUUwMEVFMDBFRTAwRTcwMUM3ODNDN0ZGQzFGRjAwRjE3N0U5NjE0
Pjc5IEQ8N0ZGRjgwRkZGRjgwRTFDMzgwRTFDMwo4MEUxQzM4MEUxQzM4MDAx
QzAwMDAxQzAwMDAxQzAwMDAxQzAwMDAxQzAwMDAxQzAwMDAxQzAwMDAxQzAw
MDAxQzAwMDAxQzAKMDAwMUMwMDAwMUMwMDAwMUMwMDAwMUMwMDAwMUMwMDAw
RkY4MDAwRkY4MDAxMTE3N0Y5NjE0Pjg0CkQ8MUZDMDAwN0ZGMDAwNzA3ODAw
MjAxODAwMDAxQzAwMDAxQzAwMDdGQzAwMUZGQzAwM0MxQzAwNzAxQzAwRTAx
QzAwRTAxQwowMEUwMUMwMDcwN0MwMDNGRkY4MDBGOEY4MDExMTA3RThGMTQ+
OTcgRDwwM0Y4MEZGRTFDMEUzODA0NzAwMDYwMDBFMDAwRTAKMDBFMDAwRTAw
MDYwMDA3MDAwMzgwRTFDMUUwRkZDMDNGMDBGMTA3RThGMTQ+OTkgRDwwN0Uw
MEZGMDFDMzgzMDFDNzAwQ0UwCjBFRTAwRUZGRkVGRkZFRTAwMDYwMDA3MDAw
MzgwRTFDMUUwRkZDMDNGMDBGMTA3RThGMTQ+MTAxCkQ8MDYwMDBGMDAwRjAw
MDYwMDAwMDAwMDAwMDAwMDAwMDBGRjAwRkYwMDA3MDAwNzAwMDcwMDA3MDAw
NzAwMDcwMDA3MDAwNwowMDA3MDAwNzAwMDcwMDA3MDBGRkY4RkZGODBEMTg3
Qzk3MTQ+MTA1IEQ8RkY4MEZGODAwMzgwMDM4MDAzODAwMzgwMDM4MAowMzgw
MDM4MDAzODAwMzgwMDM4MDAzODAwMzgwMDM4MDAzODAwMzgwMDM4MDAzODAw
MzgwMDM4MEZGRkVGRkZFMEYxNzdFOTYKMTQ+MTA4IEQ8RkM3ODAwRkRGRTAw
MUY4NjAwMUUwNzAwMUMwNzAwMUMwNzAwMUMwNzAwMUMwNzAwMUMwNzAwMUMw
NzAwMUMKMDcwMDFDMDcwMDFDMDcwMDFDMDcwMEZGOEZFMEZGOEZFMDEzMTA4
MDhGMTQ+MTEwIEQ8MDdDMDFGRjAzQzc4NzAxQzcwMUMKRTAwRUUwMEVFMDBF
RTAwRUUwMEVFMDBFNzAxQzc4M0MzQzc4MUZGMDA3QzAwRjEwN0U4RjE0Pkk8
RkNGODAwRkRGRTAwMUYKMDcwMDFFMDMwMDFDMDM4MDFDMDFDMDFDMDFDMDFD
MDFDMDFDMDFDMDFDMDFDMDFDMDFDMDFDMDM4MDFFMDMwMDFGMEUwMDFECkZD
MDAxQ0Y4MDAxQzAwMDAxQzAwMDAxQzAwMDAxQzAwMDAxQzAwMDAxQzAwMDBG
RjgwMDBGRjgwMDAxMjE4ODA4RjE0Pkk8CjBGRDgzRkY4NjAzOEMwMzhDMDM4
RjAwMDdGODAzRkYwMDdGODAwMUM2MDA2RTAwNkYwMDZGODFDRkZGOENGRTAw
RjEwN0U4RgoxND4xMTUgRDwwNjAwMEUwMDBFMDAwRTAwMEUwMDdGRkNGRkZD
MEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRQowRTBFMEUwRTBF
MEUxQzA3RjgwMUYwMEYxNTdGOTQxND5JPEZDM0YwMEZDM0YwMDFDMDcwMDFD
MDcwMDFDMDcwMDFDMDcwMAoxQzA3MDAxQzA3MDAxQzA3MDAxQzA3MDAxQzA3
MDAxQzA3MDAxQzA3MDAxQzFGMDAwRkZGRTAwM0U3RTAxMzEwODA4RjE0PgpJ
PEZFM0Y4MEZFM0Y4MDNDMUUwMDFDMUMwMDFDMUMwMDFDMUMwMDBFMzgwMDBF
MzgwMDBFMzgwMDA2MzAwMDA3NzAwMDA3NzAKMDAwNzcwMDAwM0UwMDAwM0Uw
MDAwM0UwMDAxMTEwN0Y4RjE0PkkgRSAvRmIgNTEgMTIzIGRmPDAzMDYwMDA3
OEYwMDA3OEYKMDAwNzhGMDAwNzhGMDAwNzhGMDAwNzhGMDA3RkZGQzBGRkZG
RTBGRkZGRTA3RkZGQzAwRjFFMDAwRjFFMDAwRjFFMDAwRjFFCjAwMEYxRTAw
MEYxRTAwN0ZGRkMwRkZGRkUwRkZGRkUwN0ZGRkMwMUUzQzAwMUUzQzAwMUUz
QzAwMUUzQzAwMUUzQzAwMUUzQwowMDBDMTgwMDEzMUM3RTlCMTg+MzUgRDwz
ODdDN0M3RTNFMEUwRTBFMUMxQzM4RjhGMEMwMDcwRTc4OUIxOD4zOQpEPDAw
NzAwMEYwMDFFMDAzQzAwNzgwMEYwMDFFMDAxQzAwMzgwMDM4MDA3MDAwNzAw
MDcwMDA3MDAwRTAwMEUwMDBFMDAwRTAKMDBFMDAwRTAwMEUwMDBFMDAwNzAw
MDcwMDA3MDAwNzAwMDM4MDAzODAwMUMwMDFFMDAwRjAwMDc4MDAzQzAwMUYw
MDBGMDAwCjcwMEMyNDc5OUYxOD5JPDYwMDBGMDAwNzgwMDNDMDAxRTAwMEYw
MDA3ODAwMzgwMDFDMDAxQzAwMEUwMDBFMDAwRTAwMEUwCjAwNzAwMDcwMDA3
MDAwNzAwMDcwMDA3MDAwNzAwMDcwMDBFMDAwRTAwMEUwMDBFMDAxQzAwMUMw
MDM4MDA3ODAwRjAwMUUwMAozQzAwNzgwMEYwMDA2MDAwMEMyNDdDOUYxOD5J
PDAxQzAwMDAxQzAwMDAxQzAwMDAxQzAwMDQxQzEwMEYxQzc4MEZEREY4MAo3
RkZGMDAxRkZDMDAwN0YwMDAwN0YwMDAxRkZDMDA3RkZGMDBGRERGODBGMUM3
ODA0MUMxMDAwMUMwMDAwMUMwMDAwMUMwMDAKMDFDMDAwMTExNDdEOTcxOD5J
PDAwNjAwMDAwRjAwMDAwRjAwMDAwRjAwMDAwRjAwMDAwRjAwMDAwRjAwMDAw
RjAwMDdGRkYKQzBGRkZGRTBGRkZGRTA3RkZGQzAwMEYwMDAwMEYwMDAwMEYw
MDAwMEYwMDAwMEYwMDAwMEYwMDAwMEYwMDAwMDYwMDAxMzE0CjdFOTcxOD5J
PDFDM0U3RTdGM0YxRjA3MEUxRTdDRjg2MDA4MEM3ODg1MTg+STw3RkZGQzBG
RkZGRTBGRkZGRTA3RkZGQzAxMwowNDdFOEYxOD5JPDAwMDMwMDAwMDc4MDAw
MDc4MDAwMEY4MDAwMEYwMDAwMUYwMDAwMUUwMDAwMUUwMDAwM0UwMDAwM0Mw
MAowMDdDMDAwMDc4MDAwMDc4MDAwMEY4MDAwMEYwMDAwMUYwMDAwMUUwMDAw
M0UwMDAwM0MwMDAwM0MwMDAwN0MwMDAwNzgwMDAKMEY4MDAwMEYwMDAwMEYw
MDAwMUYwMDAwMUUwMDAwM0UwMDAwM0MwMDAwM0MwMDAwN0MwMDAwNzgwMDAw
RjgwMDAwRjAwMDAwCkYwMDAwMDYwMDAwMDExMjQ3RDlGMTg+NDcgRDwwMUYw
MDAwN0ZDMDAwRkZFMDAxRjFGMDAxQzA3MDAzODAzODA3ODAzQzA3MAowMUMw
NzAwMUMwRTAwMEUwRTAwMEUwRTAwMEUwRTAwMEUwRTAwMEUwRTAwMEUwRTAw
MEUwRTAwMEUwRTAwMEUwRjAwMUUwNzAKMDFDMDcwMDFDMDc4MDNDMDM4MDM4
MDFDMDcwMDFGMUYwMDBGRkUwMDA3RkMwMDAxRjAwMDEzMUM3RTlCMTg+STww
MTgwMDMKODAwMzgwMDc4MDBGODAzRjgwRkY4MEZCODA0MzgwMDM4MDAzODAw
MzgwMDM4MDAzODAwMzgwMDM4MDAzODAwMzgwMDM4MDAzCjgwMDM4MDAzODAw
MzgwMDM4MDAzODA3RkZDRkZGRTdGRkMwRjFDN0I5QjE4Pkk8MDNGMDAwMEZG
RTAwM0ZGRjAwN0MwRjgwCjcwMDNDMEUwMDFDMEYwMDBFMEYwMDBFMDYwMDBF
MDAwMDBFMDAwMDBFMDAwMDFDMDAwMDFDMDAwMDNDMDAwMDc4MDAwMEYwMAow
MDFFMDAwMDNDMDAwMDc4MDAwMEYwMDAwMUUwMDAwN0MwMDAwRjgwMDAxRTAw
RTAzQzAwRTA3RkZGRTBGRkZGRTA3RkZGRTAKMTMxQzdFOUIxOD5JPDMwNzhG
Q0ZDNzgzMDAwMDAwMDAwMDAwMDAwMDAzMDc4RkNGQzc4MzAwNjE0Nzc5MzE4
PjU4CkQ8MTgzQzdFN0UzQzE4MDAwMDAwMDAwMDAwMDAwMDE4M0M3RTdFM0Ux
RTBFMUMzQzc4RjA2MDA3MUE3ODkzMTg+STwwMDAwCkMwMDAwM0UwMDAwN0Uw
MDAxRkMwMDAzRjgwMDBGRTAwMDFGQzAwMDdGMDAwMEZFMDAwM0Y4MDAwN0Yw
MDAwRkMwMDAwRkMwMAowMDdGMDAwMDNGODAwMDBGRTAwMDA3RjAwMDAxRkMw
MDAwRkUwMDAwM0Y4MDAwMUZDMDAwMDdFMDAwMDNFMDAwMDBDMDEzMTgKN0U5
OTE4Pkk8N0ZGRkMwRkZGRkUwRkZGRkUwRkZGRkUwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwRkZGRkUwRkZGRkUwRkYKRkZFMDdGRkZDMDEzMEM3RTkzMTg+
STw3RkZDMDBGRkZGMDA3RkZGODAxQzAzQzAxQzAxQzAxQzAwRTAxQzAwRTAx
QzAwRTAKMUMwMEUwMUMwMUUwMUMwMUMwMUMwN0MwMUZGRjgwMUZGRjAwMUZG
RkMwMUMwM0MwMUMwMEUwMUMwMEYwMUMwMDcwMUMwMDcwCjFDMDA3MDFDMDA3
MDFDMDBGMDFDMDBFMDFDMDNFMDdGRkZDMEZGRkY4MDdGRkUwMDE0MUM3RjlC
MTg+NjYKRDw3RkY4MDBGRkZFMDA3RkZGMDAxQzBGODAxQzAzQzAxQzAzQzAx
QzAxRTAxQzAwRTAxQzAwRTAxQzAwRjAxQzAwNzAxQzAwCjcwMUMwMDcwMUMw
MDcwMUMwMDcwMUMwMDcwMUMwMDcwMUMwMDcwMUMwMEYwMUMwMEUwMUMwMEUw
MUMwMUUwMUMwMUMwMUMwMwpDMDFDMEY4MDdGRkYwMEZGRkUwMDdGRjgwMDE0
MUM3RjlCMTg+NjggRDxGRkZGRjBGRkZGRjBGRkZGRjAxQzAwNzAxQzAwNzAK
MUMwMDcwMUMwMDcwMUMwMDAwMUMwMDAwMUMwRTAwMUMwRTAwMUMwRTAwMUZG
RTAwMUZGRTAwMUZGRTAwMUMwRTAwMUMwRTAwCjFDMEUwMDFDMDAwMDFDMDAw
MDFDMDAzODFDMDAzODFDMDAzODFDMDAzODFDMDAzOEZGRkZGOEZGRkZGOEZG
RkZGODE1MUM3Rgo5QjE4Pkk8MDFGMUMwMDNGREMwMEZGRkMwMUYwRkMwMUMw
M0MwMzgwM0MwMzgwMUMwNzAwMUMwNzAwMUMwNzAwMDAwRTAwMAowMEUwMDAw
MEUwMDAwMEUwMDAwMEUwMDAwMEUwMEZGMEUwMUZGMEUwMEZGMDcwMDFDMDcw
MDFDMDcwMDNDMDM4MDNDMDM4MDMKQzAxQzA3QzAxRjBGQzAwRkZGQzAwM0ZE
QzAwMUYxQzAxNDFDN0U5QjE4PjcxIEQ8N0YwN0YwRkY4RkY4N0YwN0YwMUMw
MUMwCjFDMDFDMDFDMDFDMDFDMDFDMDFDMDFDMDFDMDFDMDFDMDFDMDFDMDFD
MDFDMDFDMDFGRkZDMDFGRkZDMDFGRkZDMDFDMDFDMAoxQzAxQzAxQzAxQzAx
QzAxQzAxQzAxQzAxQzAxQzAxQzAxQzAxQzAxQzAxQzAxQzAxQzAxQzA3RjA3
RjBGRjhGRjg3RjA3RjAKMTUxQzdGOUIxOD5JPEZGQzAwMEZGQzAwMEZGQzAw
MDFDMDAwMDFDMDAwMDFDMDAwMDFDMDAwMDFDMDAwMDFDMDAwMDFDMDAKMDAx
QzAwMDAxQzAwMDAxQzAwMDAxQzAwMDAxQzAwMDAxQzAwMDAxQzAwMDAxQzAw
MDAxQzAwMDAxQzAwMDAxQzAwRTAxQzAwCkUwMUMwMEUwMUMwMEUwMUMwMEUw
RkZGRkUwRkZGRkUwRkZGRkUwMTMxQzdFOUIxOD43NiBEPDdFMDdGMEZGMEZG
ODdGMDdGMAoxRDgxQzAxRDgxQzAxRDgxQzAxREMxQzAxQ0MxQzAxQ0MxQzAx
Q0UxQzAxQ0UxQzAxQ0UxQzAxQzYxQzAxQzcxQzAxQzcxQzAKMUMzMUMwMUMz
OUMwMUMzOUMwMUMzOUMwMUMxOUMwMUMxOUMwMUMxREMwMUMwREMwMUMwREMw
MUMwREMwN0YwN0MwRkY4N0MwCjdGMDNDMDE1MUM3RjlCMTg+NzggRDwwM0Yx
QzAxRkZGQzAzRkZGQzA3QzBGQzA3MDAzQzBFMDAxQzBFMDAxQzBFMDAxQzBF
MAowMDAwNzAwMDAwNzgwMDAwM0YwMDAwMUZGMDAwMDdGRTAwMDBGRjAwMDAw
RjgwMDAwM0MwMDAwMUMwMDAwMEUwMDAwMEUwNjAKMDBFMEUwMDBFMEUwMDFF
MEYwMDFDMEY4MDc4MEZGRkY4MEZGRkUwMEU3RjgwMDEzMUM3RTlCMTg+ODMK
RDw3RkZGRjhGRkZGRjhGRkZGRjhFMDcwMzhFMDcwMzhFMDcwMzhFMDcwMzgw
MDcwMDAwMDcwMDAwMDcwMDAwMDcwMDAwMDcwCjAwMDA3MDAwMDA3MDAwMDA3
MDAwMDA3MDAwMDA3MDAwMDA3MDAwMDA3MDAwMDA3MDAwMDA3MDAwMDA3MDAw
MDA3MDAwMDA3MAowMDAwNzAwMDA3RkYwMDA3RkYwMDA3RkYwMDE1MUM3RjlC
MTg+STxGRjgzRkVGRjgzRkVGRjgzRkUxQzAwNzAxQzAwNzAxQwowMDcwMUMw
MDcwMUMwMDcwMUMwMDcwMUMwMDcwMUMwMDcwMUMwMDcwMUMwMDcwMUMwMDcw
MUMwMDcwMUMwMDcwMUMwMDcwMUMKMDA3MDFDMDA3MDFDMDA3MDFDMDA3MDFD
MDA3MDBFMDBFMDBGMDFFMDA3ODNDMDAzRkY4MDAxRkYwMDAwN0MwMDE3MUM4
MDlCCjE4Pkk8MDYxRTNFMzg3MDcwRTBFMEUwRjhGQzdDN0MzODA3MEU3ODlF
MTg+OTYgRDwwRkYwMDAxRkZDMDAzRkZFMDAzQzBGCjAwMTgwNzAwMDAwMzgw
MDAwMzgwMDBGRjgwMDdGRjgwMUZGRjgwN0YwMzgwNzgwMzgwRTAwMzgwRTAw
MzgwRTAwMzgwRjAwNwo4MDc4MEY4MDNGRkZGODFGRkRGODA3RjBGODE1MTQ3
RTkzMTg+STw3RTAwMDBGRTAwMDA3RTAwMDAwRTAwMDAwRTAwMDAwRQowMDAw
MEUwMDAwMEUwMDAwMEUzRTAwMEVGRjgwMEZGRkMwMEZDMUUwMEY4MEUwMEYw
MDcwMEUwMDcwMEUwMDM4MEUwMDM4MEUKMDAzODBFMDAzODBFMDAzODBFMDAz
ODBGMDA3MDBGMDA3MDBGODBFMDBGQzFFMDBGRkZDMDBFRkY4MDA2M0UwMDE1
MUM4MDlCCjE4Pkk8MDFGRTAwMDdGRjAwMUZGRjgwM0UwNzgwMzgwMzAwNzAw
MDAwNzAwMDAwRTAwMDAwRTAwMDAwRTAwMDAwRTAwMDAwCkUwMDAwMEUwMDAw
MDcwMDAwMDcwMDFDMDM4MDFDMDNFMDNDMDFGRkY4MDA3RkYwMDAxRkMwMDEy
MTQ3RDkzMTg+STwwMDFGCjgwMDAzRjgwMDAxRjgwMDAwMzgwMDAwMzgwMDAw
MzgwMDAwMzgwMDAwMzgwMDNFMzgwMEZGQjgwMUZGRjgwM0MxRjgwMzgwRgo4
MDcwMDc4MDcwMDM4MEUwMDM4MEUwMDM4MEUwMDM4MEUwMDM4MEUwMDM4MEUw
MDM4MDcwMDc4MDcwMDc4MDM4MEY4MDNDMUYKODAxRkZGRjAwRkZCRjgwM0Uz
RjAxNTFDN0U5QjE4Pkk8MDFGMDAwMDdGQzAwMUZGRTAwM0UwRjAwMzgwNzgw
NzAwMzgwNzAKMDM4MEUwMDFDMEUwMDFDMEZGRkZDMEZGRkZDMEZGRkZDMEUw
MDAwMDcwMDAwMDcwMDFDMDM4MDFDMDNFMDdDMDFGRkY4MDA3CkZGMDAwMUY4
MDAxMjE0N0Q5MzE4Pkk8MDAxRjgwMDA3RkMwMDBGRkUwMDBFMUUwMDFDMEMw
MDFDMDAwMDFDMDAwMDFDMDAwCjdGRkZDMEZGRkZDMEZGRkZDMDAxQzAwMDAx
QzAwMDAxQzAwMDAxQzAwMDAxQzAwMDAxQzAwMDAxQzAwMDAxQzAwMDAxQzAw
MAowMUMwMDAwMUMwMDAwMUMwMDAwMUMwMDAwMUMwMDA3RkZGMDA3RkZGMDA3
RkZGMDAxMzFDN0Y5QjE4Pkk8MDFFMUYwMDdGRgpGODBGRkZGODFFMUUzMDFD
MEUwMDM4MDcwMDM4MDcwMDM4MDcwMDM4MDcwMDM4MDcwMDFDMEUwMDFFMUUw
MDFGRkMwMDFGRjgKMDAzOUUwMDAzODAwMDAxQzAwMDAxRkZFMDAxRkZGQzAz
RkZGRTA3ODAxRjA3MDAwNzBFMDAwMzhFMDAwMzhFMDAwMzhFMDAwCjM4Nzgw
MEYwN0UwM0YwMUZGRkMwMEZGRjgwMDFGQzAwMTUxRjdGOTMxOD5JPDdFMDAw
MEZFMDAwMDdFMDAwMDBFMDAwMDBFCjAwMDAwRTAwMDAwRTAwMDAwRTAwMDAw
RTNFMDAwRUZGODAwRkZGQzAwRkMxQzAwRjgwRTAwRjAwRTAwRTAwRTAwRTAw
RTAwRQowMEUwMEUwMEUwMEUwMEUwMEUwMEUwMEUwMEUwMEUwMEUwMEUwMEUw
MEUwMEUwMEUwMEUwN0ZDN0ZDRkZFN0ZFN0ZDN0ZDMTcKMUM4MDlCMTg+STww
MzgwMDdDMDA3QzAwN0MwMDM4MDAwMDAwMDAwMDAwMDAwMDA3RkMwRkZDMDdG
QzAwMUMwMDFDMDAxQzAKMDFDMDAxQzAwMUMwMDFDMDAxQzAwMUMwMDFDMDAx
QzAwMUMwMDFDMDAxQzBGRkZGRkZGRkZGRkYxMDFEN0M5QzE4Pkk8MDAKMzgw
MDdDMDA3QzAwN0MwMDM4MDAwMDAwMDAwMDAwMDAwMDBGRkMwRkZDMEZGQzAw
MUMwMDFDMDAxQzAwMUMwMDFDMDAxQzAwCjFDMDAxQzAwMUMwMDFDMDAxQzAw
MUMwMDFDMDAxQzAwMUMwMDFDMDAxQzAwMUMwMDFDMDAxQzAwMUMwMDFDNjAz
OEYwNzhGRgpGMDdGRTAzRjgwMEUyNzdFOUMxOD5JPDdFMDAwMEZFMDAwMDdF
MDAwMDBFMDAwMDBFMDAwMDBFMDAwMDBFMDAwMDBFMDAwMAowRTNGRjAwRTNG
RjAwRTNGRjAwRTA3ODAwRTBGMDAwRTFFMDAwRTNDMDAwRTc4MDAwRUYwMDAw
RkY4MDAwRkZDMDAwRjlDMDAKMEYwRTAwMEUwRjAwMEUwNzAwMEUwMzgwMEUw
M0MwN0ZDN0Y4RkZDN0Y4N0ZDN0Y4MTUxQzdGOUIxOD5JPEZGQzAwMEZGQzAK
MDBGRkMwMDAwMUMwMDAwMUMwMDAwMUMwMDAwMUMwMDAwMUMwMDAwMUMwMDAw
MUMwMDAwMUMwMDAwMUMwMDAwMUMwMDAwMUMwCjAwMDFDMDAwMDFDMDAwMDFD
MDAwMDFDMDAwMDFDMDAwMDFDMDAwMDFDMDAwMDFDMDAwMDFDMDAwMDFDMDAw
MDFDMDAwRkZGRgo4MEZGRkY4MEZGRkY4MDExMUM3RDlCMTg+STxGOUMxQzBG
RkY3RjBGRkZGRjAzRTNFMzgzQzNDMzgzQzNDMzgzODM4MzgzOAozODM4Mzgz
ODM4MzgzODM4MzgzODM4MzgzODM4MzgzODM4MzgzODM4MzgzODM4MzgzODM4
MzgzODM4RkUzRTNFRkU3RTdFRkUKM0UzRTE3MTQ4MDkzMTg+STw3RTNFMDBG
RUZGODA3RkZGQzAwRkMxQzAwRjgwRTAwRjAwRTAwRTAwRTAwRTAwRTAwRTAw
RTAKMEUwMEUwMEUwMEUwMEUwMEUwMEUwMEUwMEUwMEUwMEUwMEUwMEUwMEUw
MEUwMEUwN0ZDN0ZDRkZFN0ZFN0ZDN0ZDMTcxNDgwCjkzMTg+STwwMUYwMDAw
RkZFMDAxRkZGMDAzRTBGODAzODAzODA3MDAxQzA3MDAxQzBFMDAwRTBFMDAw
RTBFMDAwRTBFMDAwCkUwRTAwMEUwRjAwMUUwNzAwMUMwNzgwM0MwM0MwNzgw
M0UwRjgwMUZGRjAwMEZGRTAwMDFGMDAwMTMxNDdFOTMxOD5JPDdFCjNFMDBG
RUZGODA3RkZGQzAwRkMxRTAwRjgwRTAwRjAwNzAwRTAwNzAwRTAwMzgwRTAw
MzgwRTAwMzgwRTAwMzgwRTAwMzgwRQowMDM4MEYwMDcwMEYwMDcwMEY4MEUw
MEZDMUUwMEZGRkMwMEVGRjgwMEUzRTAwMEUwMDAwMEUwMDAwMEUwMDAwMEUw
MDAwMEUKMDAwMDBFMDAwMDBFMDAwMDdGQzAwMEZGRTAwMDdGQzAwMDE1MUU4
MDkzMTg+STxGRjBGQzBGRjNGRTBGRjdGRjAwN0YwRjAKMDdFMDYwMDdDMDAw
MDc4MDAwMDc4MDAwMDcwMDAwMDcwMDAwMDcwMDAwMDcwMDAwMDcwMDAwMDcw
MDAwMDcwMDAwMDcwMDAwCjA3MDAwMEZGRkMwMEZGRkUwMEZGRkMwMDE0MTQ3
RTkzMTg+MTE0IEQ8MDdGNzAwM0ZGRjAwN0ZGRjAwNzgwRjAwRTAwNzAwCkUw
MDcwMEUwMDcwMDdDMDAwMDdGRTAwMDFGRkMwMDAzRkUwMDAwMUYwMDYwMDc4
MEUwMDM4MEUwMDM4MEYwMDM4MEY4MEYwMApGRkZGMDBGRkZDMDBFN0YwMDAx
MTE0N0Q5MzE4Pkk8MDE4MDAwMDM4MDAwMDM4MDAwMDM4MDAwMDM4MDAwN0ZG
RkMwRkZGRgpDMEZGRkZDMDAzODAwMDAzODAwMDAzODAwMDAzODAwMDAzODAw
MDAzODAwMDAzODAwMDAzODAwMDAzODAwMDAzODA0MDAzODAKRTAwMzgwRTAw
MzgwRTAwMUMxQzAwMUZGQzAwMEZGODAwMDNFMDAxMzE5N0Y5ODE4Pkk8N0Uw
N0UwRkUwRkUwN0UwN0UwMEUKMDBFMDBFMDBFMDBFMDBFMDBFMDBFMDBFMDBF
MDBFMDBFMDBFMDBFMDBFMDBFMDBFMDBFMDBFMDBFMDBFMDBFMDBFMDBFMDBF
CjAxRTAwRjAzRTAwN0ZGRkMwM0ZGRkUwMUZDRkMxNzE0ODA5MzE4Pkk8N0Y4
RkYwRkY4RkY4N0Y4RkYwMUMwMUMwMEUwMzgwCjBFMDM4MDBFMDM4MDA3MDcw
MDA3MDcwMDA3MDcwMDA3OEYwMDAzOEUwMDAzOEUwMDAzOEUwMDAxREMwMDAx
REMwMDAxREMwMAowMEY4MDAwMEY4MDAwMDcwMDAxNTE0N0Y5MzE4Pkk8RkYw
N0Y4RkY4RkY4RkYwN0Y4MzgwMEUwMzgwMEUwMzgwMEUwMzgwMApFMDFDMDFD
MDFDNzFDMDFDRjlDMDFDRjlDMDFDRDlDMDFERERDMDBEREQ4MDBEREQ4MDBE
REQ4MDBEOEQ4MDBGOEY4MDBGOEYKODAwNzA3MDAxNTE0N0Y5MzE4Pkk8N0Y4
RkYwN0Y5RkYwN0Y4RkYwMEYwNzAwMDc4RTAwMDM5RTAwMDFEQzAwMDFGODAw
MDAKRjgwMDAwNzAwMDAwRjAwMDAwRjgwMDAxREMwMDAzOUUwMDAzOEUwMDA3
MDcwMDBFMDc4MDdGOEZGMEZGOEZGODdGOEZGMDE1CjE0N0Y5MzE4Pkk8M0ZG
RkYwN0ZGRkYwN0ZGRkYwNzAwMUUwNzAwM0MwNzAwNzgwMDAwRjAwMDAxRTAw
MDAzQzAwMDBGODAwCjAxRjAwMDAzQzAwMDA3ODAwMDBGMDA3MDFFMDA3MDND
MDA3MDc4MDA3MEZGRkZGMEZGRkZGMEZGRkZGMDE0MTQ3RjkzMTg+CjEyMiBE
IEUgL0ZjIDQgMTE3IGRmPDBGRkYwMDAzMDE4MDAzMDBDMDA2MDBDMDA2MDBD
MDA2MDBDMDA2MDE4MDBDMDMwMDBGCkZDMDAwQzAwMDAwQzAwMDAxODAwMDAx
ODAwMDAxODAwMDAxODAwMDAzMDAwMDBGRTAwMDAxMjExN0Q5MDEzPjgwCkQ8
MDBGQzAwMDMwMzAwMEMwMTgwMTgwMEMwMzAwMEMwNjAwMEMwNjAwMEMwQzAw
MEMwQzAwMEMwQzAwMEMwQzAwMTgwQzAwMQo4MEMwMDMwMDQxODYwMDYyNEMw
MDNDNzgwMDBGQzEwMDAwNDEwMDAwNDIwMDAwNjYwMDAwN0MwMDAwMzgwMDEy
MTY3RDkwMTgKPkk8MDQwQzAwMDAwMDAwMDAzMDU4OTg5ODMwMzA2MDY0NjQ2
ODMwMDYxMjdFOTEwQj4xMDUKRDwwODE4MTgxOEZGMzAzMDMwMzA2MDYwNjI2
NDY0MzgwODBGN0U4RTBDPjExNiBEIEUgL0ZkCjMgNDkgZGY8RkZGRkMwRkZG
RkMwMTIwMjdEODYxOD4wIEQ8MEMwMDBDMDBDQ0MwRURDMDdGODAwQzAwN0Y4
MEVEQzBDQ0MwCjBDMDAwQzAwMEEwQjdEOEIxMD4zIEQ8MDgxQzFDMzgzODM4
MzA3MDcwNjA2MEMwQzAwNjBEN0U4RDA5PjQ4CkQgRSAvRmUgNTMgMTI0IGRm
PEZGODBGRjgwRkYwMDA5MDM3RDg4MEU+NDUgRDwzMDc4RjA2MDA1MDQ3Qzgz
MEM+STwwMDdDCjAwMDE4NjAwMDMwMzAwMDYwMzAwMEMwMzgwMUMwMzgwMUMw
MzgwMzgwMzgwMzgwMzgwMzgwMzgwNzAwNzAwNzAwNzAwNzAwNwowMDcwMDcw
MEUwMEUwMEUwMEUwMEUwMEUwMEUwMUMwMEUwMUMwMEUwMTgwMEUwMzAwMDYw
NjAwMDMwQzAwMDFGMDAwMDExMTgKN0M5NzE0PjQ4IEQ8MDAwODAwMTgwMDMw
MDA3MDAxRjAwRTcwMDBFMDAwRTAwMEUwMDBFMDAxQzAwMUMwMDFDMDAxQzAw
MzgwCjAzODAwMzgwMDM4MDA3MDAwNzAwMDcwMDA3MDAwRjAwRkZFMDBEMTg3
Qzk3MTQ+STwwMDdDMDAwMTg2MDAwMjAzMDAwNDAzCjgwMDQ4MzgwMDg4Mzgw
MTA4MzgwMTA4MzgwMTA4MzgwMTEwNzAwMTIwNzAwMEMwRTAwMDAxQzAwMDAz
MDAwMDA2MDAwMDE4MAowMDAyMDAwMDBDMDAwMDEwMDEwMDIwMDEwMDNDMDYw
MDY3RkUwMEMxRkMwMDgwRjAwMDExMTg3RDk3MTQ+STwwMDNFMDAwMApDMzAw
MDEwMTgwMDIwMTgwMDQ4MUMwMDQ0MUMwMDg4MzgwMDQ4MzgwMDcwMzAwMDAw
NjAwMDAwQzAwMDFGMDAwMDAxODAwMDAKMEMwMDAwMEMwMDAwMEUwMDAwMEUw
MDYwMEUwMEUwMUMwMEUwMUMwMDgwMzgwMDQwMzAwMDIwRTAwMDFGODAwMDEy
MTg3RDk3CjE0Pkk8MDAwMzAwMDAwMzgwMDAwNzAwMDAwNzAwMDAwNzAwMDAw
RTAwMDAwRTAwMDAwRTAwMDAxQzAwMDAxQzAwMDAxODAwCjAwMzAwMDAwMzAw
MDAwNjAwMDAwQzAwMDAwQzYwMDAxOEUwMDAzMEUwMDAyMUMwMDA0MUMwMDA4
MUMwMDEwMUMwMDdGQjgwMAo4MDdGODAwMDM4MDAwMDM4MDAwMDcwMDAwMDcw
MDAwMDcwMDAwMDcwMDAwMDYwMDAxMTFGN0Y5NzE0Pkk8MDMwMTgwMDNGRgow
MDAzRkMwMDAyMjAwMDA0MDAwMDA0MDAwMDA0MDAwMDA0MDAwMDA4MDAwMDBC
RTAwMDBDMTgwMDA4MTgwMDAwMUMwMDAwMUMKMDAwMDFDMDAwMDFDMDAyMDFD
MDA3MDFDMDBFMDM4MDA4MDMwMDA0MDcwMDA0MEUwMDAyMTgwMDAxRTAwMDAx
MTE4N0M5NzE0Cj5JPDAwMUUwMDAwNjE4MDAxODA4MDAzMDM4MDA2MDM4MDBF
MDAwMDFDMDAwMDE4MDAwMDM4MDAwMDM5RjAwMDcyMTgwMDc0CjBDMDA3ODBF
MDA3MDBFMDBGMDBFMDBFMDBFMDBFMDBFMDBFMDBFMDBFMDFDMDBFMDFDMDA2
MDM4MDA2MDcwMDAzMEMwMDAxRgo4MDAwMTExODdDOTcxND5JPDA5QzA0MDE3
RTA4MDFGRjE4MDNDMUYwMDMwMDIwMDYwMDYwMDQwMDQwMDgwMEMwMDAwMDgw
MAowMDE4MDAwMDMwMDAwMDMwMDAwMDcwMDAwMDYwMDAwMEUwMDAwMEMwMDAw
MUMwMDAwMUMwMDAwMTgwMDAwMzgwMDAwMzgwMDAKMDM4MDAwMDcwMDAwMDMw
MDAwMTIxODdCOTcxND5JPDAwM0UwMDAwQzE4MDAxMDA4MDAyMDBDMDA2MDBD
MDA2MDBDMDBFMDEKODAwNzAzMDAwNzg2MDAwM0NDMDAwMUYwMDAwMUY4MDAw
NjdDMDAwQzNFMDAxODFFMDAzMDA3MDA2MDA3MDA2MDA3MDBDMDA2CjAwQzAw
NjAwNDAwQzAwNjAxODAwMzA3MDAwMEZDMDAwMTIxODdEOTcxND5JPDAwN0Mw
MDAxODYwMDA3MDMwMDBFMDMwMDBDCjAzODAxQzAzODAzODAzODAzODAzODAz
ODAzODAzODA3ODAzODA3MDAzODBGMDAxODE3MDAwQzI3MDAwN0NFMDAwMDBF
MDAwMAowQzAwMDAxQzAwMDAxODAwRTAzMDAwRTA2MDAwODBDMDAwQzM4MDAw
M0UwMDAwMTExODdDOTcxND5JPDA2MEYxRTBDMDAwMAowMDAwMDAwMDAwMDAz
MDc4RjA2MDA4MTA3QzhGMEM+STwwMDAwMjAwMDAwNjAwMDAwRTAwMDAwRTAw
MDAxRTAwMDAxRjAwMAowMjcwMDAwMjcwMDAwNDcwMDAwODcwMDAwODcwMDAx
MDcwMDAxMDcwMDAyMDcwMDA0MDcwMDA0MDcwMDA4MDM4MDBGRkY4MDEKMDAz
ODAyMDAzODAyMDAzODA0MDAzODA0MDAzODA4MDAzODE4MDAzOEZFMDFGRjE4
MUE3RTk5MUQ+NjUKRDwwM0ZGRjgwMDcwMEUwMDcwMDYwMDcwMDcwMEUwMDcw
MEUwMDcwMEUwMDcwMEUwMDcwMUMwMEUwMUMwMUMwMUMwMzgwMUMwCjcwMDNG
RkUwMDM4MDc4MDM4MDM4MDM4MDFDMDcwMDFDMDcwMDFDMDcwMDFDMDcwMDFD
MEUwMDM4MEUwMDM4MEUwMDcwMEUwMApFMDFDMDNDMEZGRkYwMDE4MUE3RDk5
MUI+STwwMDBGODIwMDcwNjIwMEMwMTYwMzgwMUUwNzAwMEMwRTAwMEMxQzAw
MEMxOAowMDBDMzgwMDA4MzAwMDA4NzAwMDAwNzAwMDAwRTAwMDAwRTAwMDAw
RTAwMDAwRTAwMDAwRTAwMDIwRTAwMDIwRTAwMDIwRTAKMDA0MDYwMDA0MDYw
MDA4MDMwMDEwMDEwMDYwMDBDMTgwMDAzRTAwMDE3MUE3QTk5MUI+STwwM0ZG
RjgwMDAwNzAwRTAwMDAKNzAwNzAwMDA3MDAzMDAwMEUwMDE4MDAwRTAwMTgw
MDBFMDAxODAwMEUwMDFDMDAxQzAwMUMwMDFDMDAxQzAwMUMwMDFDMDAxCkMw
MDFDMDAzODAwMzgwMDM4MDAzODAwMzgwMDM4MDAzODAwMzAwMDcwMDA3MDAw
NzAwMDcwMDA3MDAwRTAwMDcwMDBDMDAwRQowMDFDMDAwRTAwMzgwMDBFMDA3
MDAwMEUwMEUwMDAxQzAzODAwMEZGRkUwMDAwMUExQTdEOTkxRD5JPDAzRkZG
RjAwNzAwNwowMDcwMDMwMDcwMDEwMEUwMDEwMEUwMDEwMEUwMDEwMEUwMDEw
MUMwODAwMUMwODAwMUMwODAwMUMxODAwM0ZGMDAwMzgxMDAKMDM4MTAwMDM4
MTAwMDcwMjAwMDcwMDA0MDcwMDA0MDcwMDA4MEUwMDA4MEUwMDE4MEUwMDEw
MEUwMDMwMUMwMEUwRkZGRkUwCjE4MUE3RDk5MUE+STwwM0ZGRkYwMDcwMDcw
MDcwMDMwMDcwMDEwMEUwMDEwMEUwMDEwMEUwMDEwMEUwMDEwMUMwODAwMUMw
CjgwMDFDMDgwMDFDMTgwMDNGRjAwMDM4MTAwMDM4MTAwMDM4MTAwMDcwMjAw
MDcwMDAwMDcwMDAwMDcwMDAwMEUwMDAwMEUwMAowMDBFMDAwMDBFMDAwMDFF
MDAwMEZGQzAwMDE4MUE3RDk5MTk+STwwMDBGQzEwMDMwMjEwMEMwMTMwMTgw
MEYwNzAwMDYwRQowMDA2MEMwMDA2MTgwMDA2MzgwMDA0MzAwMDA0NzAwMDAw
NzAwMDAwRTAwMDAwRTAwMDAwRTAwMDAwRTAwN0ZFRTAwMDcwRTAKMDA3MEUw
MDA3MEUwMDA3MDYwMDBFMDYwMDBFMDMwMDBFMDE4MDFFMDBDMDY0MDAzRjg0
MDE4MUE3QTk5MUU+STwwM0ZGMDAKNzAwMDcwMDA3MDAwRTAwMEUwMDBFMDAw
RTAwMUMwMDFDMDAxQzAwMUMwMDM4MDAzODAwMzgwMDM4MDA3MDAwNzAwMDcw
MDA3CjAwMEUwMDBFMDAwRTAwMEUwMDFDMDBGRjgwMTAxQTdEOTkwRj43MyBE
PDAwRkZDMDAwMEUwMDAwMEUwMDAwMEUwMDAwMUMwMAowMDFDMDAwMDFDMDAw
MDFDMDAwMDM4MDAwMDM4MDAwMDM4MDAwMDM4MDAwMDcwMDAwMDcwMDAwMDcw
MDAwMDcwMDAwMEUwMDAKMDBFMDAwMDBFMDAwMDBFMDAwNjFDMDAwRTFDMDAw
RTE4MDAwODM4MDAwNDcwMDAwM0MwMDAwMTIxQTdDOTkxND5JPDAzRkYKMDAw
MDcwMDAwMDcwMDAwMDcwMDAwMEUwMDAwMEUwMDAwMEUwMDAwMEUwMDAwMUMw
MDAwMUMwMDAwMUMwMDAwMUMwMDAwMzgwCjAwMDM4MDAwMDM4MDAwMDM4MDAw
MDcwMDAwMDcwMDEwMDcwMDEwMDcwMDIwMEUwMDIwMEUwMDYwMEUwMDQwMEUw
MEMwMUMwMwo4MEZGRkY4MDE0MUE3RDk5MTg+NzYgRDwwM0Y4MDAxRkMwMDA3
ODAwM0MwMDAwNzgwMDNDMDAwMDc4MDA1QzAwMDBCODAwQjgKMDAwMEI4MDBC
ODAwMDA5QzAxMzgwMDAwOUMwMTM4MDAwMTFDMDI3MDAwMDExQzAyNzAwMDAx
MUMwNDcwMDAwMTFDMDg3MDAwCjAyMUMwOEUwMDAwMjFDMTBFMDAwMDIxQzEw
RTAwMDAyMUMyMEUwMDAwNDFDNDFDMDAwMDQxQzQxQzAwMDA0MUM4MUMwMDAw
NAoxQzgxQzAwMDA4MEYwMzgwMDAwODBGMDM4MDAwMDgwRTAzODAwMDE4MEMw
MzgwMDAxODBDMDcwMDAwRkUwODNGRTAwMDIyMUEKN0Q5OTIyPkk8MDNGMDA3
RjgwMDc4MDBDMDAwNzgwMDgwMDA3ODAwODAwMDlDMDEwMDAwOUMwMTAwMDA5
QzAxMDAwMDhFMDEKMDAwMTBFMDIwMDAxMDYwMjAwMDEwNzAyMDAwMTA3MDIw
MDAyMDM4NDAwMDIwMzg0MDAwMjAzODQwMDAyMDFDNDAwMDQwMUM4CjAwMDQw
MUM4MDAwNDAwRTgwMDA0MDBFODAwMDgwMEYwMDAwODAwNzAwMDA4MDA3MDAw
MTgwMDcwMDAxODAwMjAwMEZFMDAyMAowMDFEMUE3RDk5MUQ+STwwM0ZGRjgw
MDcwMUMwMDcwMDYwMDcwMDcwMEUwMDcwMEUwMDcwMEUwMDcwMEUwMDcwMUMw
MEUwMQpDMDBFMDFDMDFDMDFDMDM4MDM4MDYwMDNGRjgwMDM4MDAwMDM4MDAw
MDcwMDAwMDcwMDAwMDcwMDAwMDcwMDAwMEUwMDAwMEUKMDAwMDBFMDAwMDBF
MDAwMDFDMDAwMEZGODAwMDE4MUE3RDk5MUE+ODAgRDwwM0ZGRjAwMDcwMUMw
MDcwMEUwMDcwMDcwMEUwCjA3MDBFMDA3MDBFMDA3MDBFMDA3MDFDMDBFMDFD
MDFDMDFDMDM4MDFDMEUwMDNGRjgwMDM4MEMwMDM4MDYwMDM4MDcwMDcwMAo3
MDA3MDA3MDA3MDA3MDA3MDA3MDBFMDBFMDBFMDBFMDBFMDBFMTBFMDBFMjFD
MDA2MkZGODAzQzE4MUE3RDk5MUM+ODIKRDwwMDNGMTAwMDYwOTAwMTgwNzAw
MTAwNzAwMzAwMjAwNjAwMjAwNjAwMjAwNjAwMjAwNjAwMDAwNzAwMDAwN0Mw
MDAwM0Y4CjAwMDFGRTAwMDA3RjAwMDAwRjgwMDAwMzgwMDAwMTgwMDAwMTgw
MjAwMTgwMjAwMTgwNjAwMzAwNjAwMzAwNjAwNjAwNzAwQwowMEM4MTgwMDg3
RTAwMDE0MUE3RDk5MTY+STwzRkZGRkMzODFDMEMyMDFDMDQ0MDFDMDQ0MDM4
MDQ4MDM4MDQ4MDM4MDQ4MAozODA0MDA3MDAwMDA3MDAwMDA3MDAwMDA3MDAw
MDBFMDAwMDBFMDAwMDBFMDAwMDBFMDAwMDFDMDAwMDFDMDAwMDFDMDAwMDEK
QzAwMDAzODAwMDAzODAwMDAzODAwMDAzODAwMDA3ODAwMEZGRjgwMDE2MUE3
OTk5MUI+STwwM0NDMEUyRTE4MUMzODFDMzAKMUM3MDFDRTAzOEUwMzhFMDM4
RTAzOEMwNzJDMDcyQzA3MjYwRjI2MTM0MUUxODBGMTA3QzhGMTQ+OTcKRDw3
RTAwMEUwMDBFMDAwRTAwMUMwMDFDMDAxQzAwMUMwMDM4MDAzODAwM0JDMDND
MzA3ODMwNzAxODcwMTg3MDE4RTAzOEUwCjM4RTAzOEUwMzhDMDcwQzA2MEMw
RTA2MEMwNjM4MDFFMDAwRDFBN0M5OTEyPkk8MDFFMDA2MTgwQzE4MTgzODMw
MTA3MDAwCjYwMDBFMDAwRTAwMEUwMDBFMDAwRTAwOEUwMTA2MDIwMzBDMDFG
MDAwRDEwN0M4RjEyPkk8MDAxRjgwMDAwMzgwMDAwMzgwCjAwMDM4MDAwMDcw
MDAwMDcwMDAwMDcwMDAwMDcwMDAwMEUwMDAwMEUwMDAzQ0UwMDBFMkUwMDE4
MUMwMDM4MUMwMDMwMUMwMAo3MDFDMDBFMDM4MDBFMDM4MDBFMDM4MDBFMDM4
MDBDMDcyMDBDMDcyMDBDMDcyMDA2MEYyMDA2MTM0MDAxRTE4MDAxMTFBN0MK
OTkxND5JPDAxRTAwRTE4MUMwODM4MDg3MDA4NzAxMEZGRTBFMDAwRTAwMEUw
MDBFMDAwRTAwODYwMTA2MDIwMzBDMDFGMDAKMEQxMDdDOEYxMj5JPDAwMDcw
MDAwMDk4MDAwMUI4MDAwM0IwMDAwMzgwMDAwMzAwMDAwNzAwMDAwNzAwMDAw
NzAwMDAwNzAKMDAwN0ZGMDAwMEUwMDAwMEUwMDAwMEUwMDAwMEUwMDAwMEUw
MDAwMUMwMDAwMUMwMDAwMUMwMDAwMUMwMDAwMUMwMDAwMzgwCjAwMDM4MDAw
MDM4MDAwMDM4MDAwMDMwMDAwMDcwMDAwMDcwMDAwMDYwMDAwNjYwMDAwRTQw
MDAwQ0MwMDAwNzAwMDAwMTEyMQo4MTk5MEM+STwwMEYzMDAwMzhCODAwNjA3
MDAwRTA3MDAwQzA3MDAxQzA3MDAzODBFMDAzODBFMDAzODBFMDAzODBFMDAz
MAoxQzAwMzAxQzAwMzAxQzAwMTgzQzAwMTg3ODAwMDdCODAwMDAzODAwMDAz
ODAwMDA3MDAwNjA3MDAwRTBFMDAwQzFDMDAwN0YKMDAwMDExMTc3RThGMTI+
STwxRjgwMDAwMzgwMDAwMzgwMDAwMzgwMDAwNzAwMDAwNzAwMDAwNzAwMDAw
NzAwMDAwRTAwMDAKMEUwMDAwMEU3QzAwMEY4NjAwMUUwNzAwMUUwNzAwMUMw
NzAwMUMwNzAwMzgwRTAwMzgwRTAwMzgwRTAwMzgxQzAwNzAxQzgwCjcwMUM4
MDcwMzg4MDcwMzkwMEUwMTkwMDYwMEUwMDExMUE3RTk5MTQ+STwwMzA3MDYw
MDAwMDAwMDAwMDAzODRDNEU4RTlDCjlDMUMzODM4NzA3MjcyRTJFNDY0Mzgw
ODE5N0M5ODBDPkk8MUY4MDAzODAwMzgwMDM4MDA3MDAwNzAwMDcwMDA3MDAw
RTAwCjBFMDAwRTBFMEUxMzFDMjcxQzQzMUM4MDFGMDAzQzAwM0Y4MDM5QzAz
OEUwNzBFMjcwRTI3MEUyNzBFNEUwNjQ2MDM4MTAxQQo3RTk5MTI+MTA3IEQ8
MUYwNzA3MDcwRTBFMEUwRTFDMUMxQzFDMzgzODM4Mzg3MDcwNzA3MEU0RTRF
NEU0RTgzMDA4MUE3RAo5OTBBPkk8MzA3QzFFMDA1OTg2NjMwMDlFMDc4Mzgw
OUUwNzAzODA5QzA3MDM4MDlDMDcwMzgwMzgwRTA3MDAzODBFMDcwMAozODBF
MDcwMDM4MEUwRTAwNzAxQzBFNDA3MDFDMEU0MDcwMUMxQzQwNzAxQzFDODBF
MDM4MEM4MDYwMTgwNzAwMUExMDdDOEYKMUY+STwzMDdDMDA1OTg2MDA5RTA3
MDA5RTA3MDA5QzA3MDA5QzA3MDAzODBFMDAzODBFMDAzODBFMDAzODFDMDA3
MDFDODAKNzAxQzgwNzAzODgwNzAzOTAwRTAxOTAwNjAwRTAwMTExMDdDOEYx
Nj5JPDAxRjAwNjE4MEMwQzE4MEUzMDBFNzAwRTYwMEUKRTAwRUUwMEVFMDBD
RTAxQ0UwMThFMDMwNjA2MDMwQzAxRjAwMEYxMDdDOEYxND5JPDAzMEYwMDA1
OTBDMDA5RTBDMDA5QzAKNjAwOUMwNjAwOUMwNjAwMzgwRTAwMzgwRTAwMzgw
RTAwMzgwRTAwNzAxQzAwNzAxODAwNzAzODAwNzAzMDAwRThFMDAwRTc4CjAw
MEUwMDAwMEUwMDAwMUMwMDAwMUMwMDAwMUMwMDAwMUMwMDAwRkYwMDAwMTMx
NzgwOEYxND5JPDMwRjA1RDE4OUUzODlDCjE4OUMwMDlDMDAzODAwMzgwMDM4
MDAzODAwNzAwMDcwMDA3MDAwNzAwMEUwMDA2MDAwMEQxMDdDOEYxMD4xMTQK
RDwwM0UwMDQzMDA4MzAxODcwMTg2MDFDMDAxRjgwMUZDMDBGRTAwMEUwMDA2
MEUwNjBFMDYwODBDMDQxODAzRTAwMEMxMDdECjhGMTA+STwwNjAwMEUwMDBF
MDAwRTAwMEUwMDFDMDAxQzAwRkZDMDFDMDAzODAwMzgwMDM4MDAzODAwNzAw
MDcwMDA3MDAwCjcwMDBFMTAwRTEwMEUxMDBFMjAwRTQwMDM4MDAwQTE3N0M5
NjBEPkk8MzgwNjRDMDc0RTBFOEUwRTlDMEU5QzBFMUMxQzM4CjFDMzgxQzM4
MUM3MDM5NzAzOTcwMzkzMDc5Mzg5QTBGMEMxMDEwN0M4RjE1Pkk8MzgxODRD
MUM0RTFDOEUwQzlDMEM5QzBDCjFDMDgzODA4MzgwODM4MTA3MDEwNzAxMDcw
MjAzMDQwMThDMDBGMDAwRTEwN0M4RjEyPkk8MzgwQzEwNEMwRTM4NEUxQzM4
CjhFMUMxODlDMUMxODlDMUMxODFDMzgxMDM4MzgxMDM4MzgxMDM4MzgxMDcw
NzAyMDcwNzAyMDcwNzA0MDMwNzA0MDE4Qjg4MAowRjBGMDAxNTEwN0M4RjE5
Pkk8MDc4RjAwMDhEMTgwMTBGMzgwMjBFMTgwMjBFMDAwMjBFMDAwMDFDMDAw
MDFDMDAwMDFDMAowMDAxQzAwMDAzODIwMDAzODIwMEMzODIwMEU3ODQwMEM1
ODgwMDc4RjAwMDExMTA3RThGMTI+STwzODA2NEMwNzRFMEU4RQowRTlDMEU5
QzBFMUMxQzM4MUMzODFDMzgxQzcwMzg3MDM4NzAzODMwNzgzOEYwMEY3MDAw
NzAwMDYwNjBFMEUxQzBDMTgwNDcKMDAzQzAwMTAxNzdDOEYxMz5JPEZGRkY4
MDExMDE3RDg5MTQ+MTIzIEQgRSAvRmYgNCA1NQpkZjxGRkZGRjBGRkZGRjAx
NDAyN0Q4ODFCPjAgRDwwMjAwMDIwMDAyMDBDMjE4RjI3ODNBRTAwRjgwMEY4
MDNBRTBGMjc4QzIKMTgwMjAwMDIwMDAyMDAwRDBFN0U4RTEyPjMgRDwwNjBG
MEYwRTFFMUUxQzNDMzgzODMwNzA3MDYwRTBDMDQwMDgxMTdGOTEKMEE+NDgg
RDwwMDAzMDAwMzAwMDYwMDA2MDAwQzAwMEMwMDE4MDAxODAwMzAwMDMwMDA2
MDAwNjAwMEMwMDBDMDAxODAwMTgwCjAzMDAwMzAwMDYwMDA2MDAwQzAwMEMw
MDE4MDAxODAwMzAwMDMwMDA2MDAwNjAwMEMwMDA0MDAwMTAxRTdCOTYwMD41
NApEIEUgL0ZnIDEgMTIxIGRmPEZGQzdGQ0ZGQzdGQzFGODFDMDBGODM4MDA3
QzcwMDAzRUUwMDAxRkMwMDAxRjgwMDAwRjgwMAowMDdDMDAwMEZFMDAwMURG
MDAwMzlGODAwNzBGODAwNjA3QzAwQzAzRTBGRjA3RkNGRjA3RkMxNjEyN0Y5
MTE5PjEyMApEIEUgL0ZoIDEgODEgZGY8MDFGRkZGMDAwMDNDMDNDMDAwMzgw
MEUwMDAzODAwRjAwMDM4MDA3MDAwMzgwMDcwMDA3MDAwRjAKMDA3MDAwRjAw
MDcwMDBGMDAwNzAwMEUwMDBFMDAxRTAwMEUwMDNDMDAwRTAwNzAwMDBFMDFF
MDAwMUZGRjAwMDAxQzAwMDAwCjAxQzAwMDAwMDFDMDAwMDAwMzgwMDAwMDAz
ODAwMDAwMDM4MDAwMDAwMzgwMDAwMDA3MDAwMDAwMDcwMDAwMDAwNzAwMDAw
MAowNzAwMDAwMDBGMDAwMDAwRkZFMDAwMDAxQzFDN0U5QjFCPjgwIEQgRSAv
RmkgNiAxMDcgZGY8RkZGRkZFRkZGRkZFMTcwMgo3RDg5MUU+MCBEPEMwMDAw
MEYwMDAwMDNDMDAwMDBGMDAwMDAzQzAwMDAwRjAwMDAwM0MwMDAwMEYwMDAw
MDNDMDAwMDBGMAowMDAwM0MwMDAwMEUwMDAwM0MwMDAwRjAwMDAzQzAwMDBG
MDAwMDNDMDAwMEYwMDAwM0MwMDAwRjAwMDAzQzAwMDA3MDAwMDAKQzAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0ZGRkZDRkZG
RkZFMTcxRjdEOTcxRT4yMQpEPDBGODAwNzgwMUZFMDFDMDAzMDc4MzAwMDQw
M0M2MDAwNDAxQ0MwMDA4MDBGODAwMDgwMEY4MDAwODAwNzAwMDA4MDAzODAK
MDA4MDA3QzAwMDgwMDdDMDAwNDAwQ0UwMDA0MDE4RjAwMDIwMzA3ODAwMThF
MDFGODAwRjgwMDc4MDE5MTA3RThGMUU+NDcKRDwwMDNDMDBFMDAxQzAwMzgw
MDM4MDAzODAwMzgwMDM4MDAzODAwMzgwMDM4MDAzODAwMzgwMDM4MDAzODAw
MzgwMDcwMDFFCjAwRjgwMDFFMDAwNzAwMDM4MDAzODAwMzgwMDM4MDAzODAw
MzgwMDM4MDAzODAwMzgwMDM4MDAzODAwMzgwMDM4MDAxQzAwMApFMDAwM0Mw
RTI1N0U5QjEzPjEwMiBEPEY4MDAxRTAwMDcwMDAzODAwMzgwMDM4MDAzODAw
MzgwMDM4MDAzODAwMzgwMDM4MAowMzgwMDM4MDAzODAwMzgwMDFDMDAwRTAw
MDNDMDBFMDAxQzAwMzgwMDM4MDAzODAwMzgwMDM4MDAzODAwMzgwMDM4MDAz
ODAKMDM4MDAzODAwMzgwMDM4MDA3MDAxRTAwRjgwMDBFMjU3RTlCMTM+STxD
MEMwQzBDMEMwQzBDMEMwQzBDMEMwQzBDMEMwQzAKQzBDMEMwQzBDMEMwQzBD
MEMwQzBDMEMwQzBDMEMwQzBDMEMwQzBDMEMwQzAwMjI1N0M5QjBCPjEwNgpE
IEUgL0ZqIDkgMTIxIGRmPDAxODAwNzgwRkY4MEZGODAwNzgwMDc4MDA3ODAw
NzgwMDc4MDA3ODAwNzgwMDc4MDA3ODAwNwo4MDA3ODAwNzgwMDc4MDA3ODAw
NzgwMDc4MDA3ODAwNzgwRkZGQ0ZGRkMwRTE4N0M5NzE2PjQ5CkQ8MEZGMDAw
M0ZGQzAwNzg3RTAwRkMxRjAwRkMxRjgwRkMwRjgwRkMwRjgwNzgwRjgwMDAx
RjgwMDAxRjAwMDAxRTAwMDAzQwowMDAwNzgwMDAwNzAwMDAwRTAwMDAxODAw
MDAzMDE4MDA2MDE4MDBDMDE4MDEwMDM4MDNGRkYwMDdGRkYwMEZGRkYwMEZG
RkYKMDAxMTE4N0U5NzE2Pkk8MDdGMDAwMUZGQzAwMzgzRTAwN0MzRTAwN0Mx
RjAwN0MxRjAwN0MxRjAwMzgzRjAwMDAzRTAwMDAKM0MwMDAwNzgwMDA3RjAw
MDAwM0MwMDAwM0UwMDAwMUYwMDAwMUY4MDc4MUY4MEZDMUY4MEZDMUY4MEZD
MUYwMEY4MUYwMDcwCjNFMDAzRkZDMDAwRkYwMDAxMTE4N0U5NzE2Pkk8MDAw
NjAwMDAwRTAwMDAxRTAwMDAzRTAwMDA3RTAwMDBERTAwMDE5RTAwCjAxMUUw
MDAzMUUwMDA2MUUwMDBDMUUwMDE4MUUwMDMwMUUwMDYwMUUwMEMwMUUwMEZG
RkZFMEZGRkZFMDAwMUUwMDAwMUUwMAowMDFFMDAwMDFFMDAwMDFFMDAwMUZG
RTAwMUZGRTAxMzE4N0Y5NzE2Pkk8MDdGMDAwMUZGQzAwMzgxRTAwMzAwNzAw
NzAwNwowMDcwMDcwMDc4MDcwMDdFMDYwMDNGOEMwMDNGRjgwMDFGRjAwMDBG
RkMwMDFGRkUwMDM4RkYwMDcwM0YwMEUwMUY4MEUwMDcKODBFMDAzODBFMDAz
ODBFMDAzMDA3MDA3MDAzQzBFMDAxRkZDMDAwN0YwMDAxMTE4N0U5NzE2PjU2
CkQ8MDdFMDAwMUZGODAwM0MxQzAwNzgxRTAwNzgwRjAwRjgwRjAwRjgwRjAw
RjgwRjgwRjgwRjgwRjgwRjgwRjgwRjgwNzgxRgo4MDM4MUY4MDFDMkY4MDA3
Q0Y4MDAwMEY4MDAwMEYwMDM4MEYwMDdDMUYwMDdDMUUwMDc4M0MwMDMwNzgw
MDFGRjAwMDBGQzAKMDAxMTE4N0U5NzE2Pkk8N0ZGODNGRjA3RkY4M0ZGMDA3
QzAwNjAwMDNFMDBFMDAwM0YwMUMwMDAxRjgxODAwMDBGODMwMDAKMDBGQzcw
MDAwMDdFRTAwMDAwM0ZDMDAwMDAxRjgwMDAwMDFGODAwMDAwMEZDMDAwMDAw
N0MwMDAwMDBGRTAwMDAwMUJGMDAwCjAwMzlGODAwMDA3MEY4MDAwMDYwRkMw
MDAwQzA3RTAwMDFDMDNGMDAwMzgwMUYwMDAzMDAxRjgwMDYwMDBGQzBGRkMw
M0ZGQwpGRkMwM0ZGQzFFMUE3Rjk5MjE+ODggRDxGQ0ZFMDBGRjg3ODAzRTAz
QzAzQzAxRTAzQzAxRjAzQzAwRjAzQzAwRjgzQzAwRjgKM0MwMEY4M0MwMEY4
M0MwMEY4M0MwMEYwM0MwMUYwM0MwMUUwM0UwM0MwM0YwNzgwM0NGRTAwM0Mw
MDAwM0MwMDAwM0MwMDAwCjNDMDAwMDNDMDAwMEZGMDAwMEZGMDAwMDE1MTg3
RTkwMTk+MTEyIEQ8RkYwN0YwRkYwN0YwMUUwNzAwMEYwNjAwMDc4QzAwCjAz
REMwMDAzRjgwMDAxRjAwMDAwRjAwMDAxRjgwMDAxQkMwMDAzMUUwMDA3MUUw
MDBFMEYwMDFDMDc4MEZFMEZGMEZFMEZGMAoxNDExN0Y5MDE3PjEyMCBEIEUg
L0ZrIDE3IDEyMSBkZjwwMUYwMDAwNzBDMDgwQzBFMTAxODA3MTAzMDA3MTA3
MDA3MjA2MAowNzIwRTAwNzQwRTAwNzQwRTAwNzgwRTAwNzAwRTAwNzAwRTAw
NzAwNjAxQjAwMzA2M0EwMEY4MUMwMTUxMDdGOEYxOT4xMQpEPDAxRjAwNjAw
MUMwMDM4MDA3MDAwNzAwMEZGQzBFMDAwRTAwMEUwMDBFMDAwRTAwMDYwMDAz
MDA4MTgzMDBGQzAwRDEwN0YKOEYxMD4xNSBEPDFGRkZFMDNGRkZFMDdGRkZD
MDQxMDgwMDgyMTgwMDAyMTAwMDA2MTAwMDA2MTAwMDA0MTAwMDBDMzgwMDBD
CjM4MDAxQzM4MDAxODM4MDAzODNDMDAzODFDMDAzMDE4MDAxMzEwN0U4RjE2
PjI1IEQ8MDA3ODAxQzYwMzA2MDcwMzA2MDMwRQowMzFDMDcxQzA3MUMwNzFD
MDczODBFMzgwQzM4MUMzODE4NzQ3MDczQzA3MDAwNzAwMEUwMDBFMDAwRTAw
MEUwMDBDMDAwMTAKMTc3RThGMTQ+STwwMDAyMDAwMDAyMDAwMDA0MDAwMDA0
MDAwMDA0MDAwMDA0MDAwMDA4MDAwMDA4MDAwMDA4MDAwMDA4MDAKMDBGRTAw
MDM5MTgwMEUxMEMwMTgxMDYwMzgyMDcwNzAyMDcwNjAyMDcwRTAyMDcwRTA0
MDcwRTA0MDYwRTA0MEUwRTA0MUMwCjYwODE4MDMwODcwMDE4OUMwMDA3RjAw
MDAxMDAwMDAxMDAwMDAxMDAwMDAxMDAwMDAyMDAwMDAyMDAwMDAyMDAwMDE0
MjE3Rgo5OTE3PjMwIEQ8NjBGMEYwNjAwNDA0N0Q4MzBCPjU4IEQ8NjBGMEYw
NzAxMDEwMTAyMDIwNDA0MDA0MEI3RDgzMEI+STwwMAowNDAwMEMwMDE4MDAx
ODAwMTgwMDMwMDAzMDAwMzAwMDYwMDA2MDAwNjAwMEMwMDBDMDAwQzAwMTgw
MDE4MDAxODAwMzAwMDMKMDAwMzAwMDYwMDA2MDAwNjAwMEMwMDBDMDAwQzAw
MTgwMDE4MDAxODAwMzAwMDMwMDAzMDAwNjAwMDYwMDA2MDAwQzAwMEMwCjAw
MEUyNTdFOUIxMz42MSBEPEUwMDAwMDc4MDAwMDFFMDAwMDA3ODAwMDAxRTAw
MDAwNzgwMDAwMUUwMDAwMDc4MDAwMDFFMAowMDAwNzgwMDAwMUUwMDAwMUUw
MDAwNzgwMDAxRTAwMDA3ODAwMDFFMDAwMDc4MDAwMUUwMDAwNzgwMDAxRTAw
MDA3ODAwMDAKRTAwMDAwMTcxNjdEOTMxRT5JPDAzRkZGRkMwMDA3MDAxQzAw
MDcwMDBDMDAwNzAwMDQwMDBFMDAwNDAwMEUwMDA0MDAwRTAKMDA0MDAwRTAw
MDQwMDFDMDIwMDAwMUMwMjAwMDAxQzAyMDAwMDFDMDYwMDAwM0ZGQzAwMDAz
ODBDMDAwMDM4MDQwMDAwMzgwCjQwMDAwNzAwODAwMDA3MDAwMTAwMDcwMDAx
MDAwNzAwMDIwMDBFMDAwMjAwMEUwMDA2MDAwRTAwMDQwMDBFMDAwQzAwMUMw
MAozODAwRkZGRkY4MDAxQTFBN0U5OTFDPjY5IEQ8MDNGRjAwRkYwMDcwMDAz
ODAwNzAwMDYwMDA3MDAwQzAwMEUwMDEwMDAwRTAKMDIwMDAwRTAwODAwMDBF
MDEwMDAwMUMwMjAwMDAxQzBDMDAwMDFDMTgwMDAwMUMzODAwMDAzODVDMDAw
MDM5MUMwMDAwM0ExCkMwMDAwM0MwRTAwMDA3MDBFMDAwMDcwMDcwMDAwNzAw
NzAwMDA3MDAzODAwMEUwMDM4MDAwRTAwMzgwMDBFMDAxQzAwMEUwMAoxQzAw
MUMwMDFFMDBGRkMwN0Y4MDIwMUE3RTk5MjE+NzUgRDwwM0ZGRkMwMDAwNzAw
RjAwMDA3MDAzODAwMDcwMDM4MDAwRTAKMDNDMDAwRTAwM0MwMDBFMDAzQzAw
MEUwMDNDMDAxQzAwNzgwMDFDMDA3ODAwMUMwMEYwMDAxQzAxRTAwMDM4MDM4
MDAwM0ZGCkUwMDAwMzgwMDAwMDAzODAwMDAwMDcwMDAwMDAwNzAwMDAwMDA3
MDAwMDAwMDcwMDAwMDAwRTAwMDAwMDBFMDAwMDAwMEUwMAowMDAwMEUwMDAw
MDAxQzAwMDAwMEZGQzAwMDAwMUExQTdFOTkxOT44MCBEPDAwMEZFMDAwMDAz
ODM4MDAwMEUwMEUwMDAxQzAKMDcwMDA3ODAwNzAwMEYwMDA3ODAwRTAwMDM4
MDFDMDAwMzgwM0MwMDAzQzAzODAwMDNDMDc4MDAwM0MwNzgwMDAzQzBGMDAw
CjA3ODBGMDAwMDc4MEYwMDAwNzgwRjAwMDA3MDBGMDAwMEYwMEYwMDAwRTAw
RjAwMDFFMDBGMDAwMUMwMDcwNzAzODAwNzA4MAo3MDAwMzkwNEUwMDAxRDA3
QzAwMDBGMEYwMDAwMDNGQzA0MDAwMDA2MDQwMDAwMDYwQzAwMDAwNjE4MDAw
MDA3RjgwMDAwMDcKRjAwMDAwMDdFMDAwMDAwM0MwMDAxQTIxN0U5OTFFPkk8
MDFGMDA3MEMwQzBDMTgxQzMwMDg3MDAwNjAwMEUwMDBFMDAwRTAKMDBFMDAw
RTAwNEUwMDg2MDEwMzA2MDBGODAwRTEwN0Y4RjExPjk5IEQ8MDYwMDBFMDAw
RTAwMEUwMDBFMDAxQzAwMUMwMEZGCkUwMUMwMDM4MDAzODAwMzgwMDM4MDA3
MDAwNzAwMDcwMDA3MDAwRTA4MEUwODBFMTAwRTEwMDY2MDAzODAwMEIxNzdF
OTYwRQo+MTE2IEQ8MzgwMzAwNEMwMzgwNEUwNzAwOEUwNzAwOUMwNzAwOUMw
NzAwMUMwRTAwMzgwRTAwMzgwRTAwMzgwRTAwNzAxQwo4MDcwMUM4MDcwMUM4
MDMwM0M4MDE4NEQwMDBGODcwMDExMTA3RThGMTY+STwwNzg3ODAwOEM4QzAx
MEYxQzAyMEUwQzAyMApFMDAwMjBFMDAwMDFDMDAwMDFDMDAwMDFDMDAwMDFD
MDAwMDM4MTAwMDM4MTAwQzM4MTAwRTU4MjAwQzU4NDAwNzg3ODAwMTIKMTA3
RjhGMTY+MTIwIEQgRSAvRmwgODIgMTI1IGRmPEZGRkZGQzcwMDAzQzc4MDAw
QzM4MDAwNDFDMDAwNjFFMDAwMjBFMDAKMDIwNzAwMDIwNzgwMDAwMzgwMDAw
MUMwMDAwMUUwMDAwMEUwMDAwMDYwMDAwMDQwMDAwMDQwMDAwMDgwMDAwMTAw
MDIwMjAwCjAyMDQwMDAyMDgwMDA2MTAwMDA0MTAwMDBDMjAwMDNDN0ZGRkZD
RkZGRkZDMTcxQTdFOTkxQz42CkQ8MDdGRkMwMDAzODAwMDAzODAwMDAzODAw
MDAzODAwMDFGRjAwMDczOUMwMUMzODcwMzgzODM4NzgzODNDNzAzODFDRjAz
OAoxRUYwMzgxRUYwMzgxRUYwMzgxRTcwMzgxQzc4MzgzQzM4MzgzODFDMzg3
MDA3MzlDMDAxRkYwMDAwMzgwMDAwMzgwMDAwMzgKMDAwMDM4MDAwN0ZGQzAx
NzFBN0U5OTFDPjggRDwwMEZFN0MwMzgxQzYwNjAzQ0UwRTAzODQxQzAzODAx
QzAzODAxQzAzODAKMUMwMzgwMUMwMzgwMUMwMzgwRkZGRkYwMUMwMzgwMUMw
MzgwMUMwMzgwMUMwMzgwMUMwMzgwMUMwMzgwMUMwMzgwMUMwMzgwCjFDMDM4
MDFDMDM4MDFDMDM4MDFDMDM4MDFDMDM4MDFDMDM4MEZGOEZGMDE3MUE4MDk5
MTY+MTEKRDwwMEZFMDAwMzgxMDAwNjAxODAwRTAzODAxQzAxMDAxQzAwMDAx
QzAwMDAxQzAwMDAxQzAwMDAxQzAwMDBGRkZGODAxQzAzCjgwMUMwMzgwMUMw
MzgwMUMwMzgwMUMwMzgwMUMwMzgwMUMwMzgwMUMwMzgwMUMwMzgwMUMwMzgw
MUMwMzgwMUMwMzgwMUMwMwo4MDFDMDM4MEZGOEZGMDE0MUE4MDk5MTU+STww
MDdFMUY4MDAxQzE3MDQwMDcwM0MwNjAwNjAzODBFMDBFMDM4MDQwMEUwMwo4
MDAwMEUwMzgwMDAwRTAzODAwMDBFMDM4MDAwMEUwMzgwMDBGRkZGRkZFMDBF
MDM4MEUwMEUwMzgwRTAwRTAzODBFMDBFMDMKODBFMDBFMDM4MEUwMEUwMzgw
RTAwRTAzODBFMDBFMDM4MEUwMEUwMzgwRTAwRTAzODBFMDBFMDM4MEUwMEUw
MzgwRTAwRTAzCjgwRTAwRTAzODBFMDdGOEZFM0ZDMUUxQTgwOTkyMD4xNCBE
PDYwQzBGMUUwRjlGMDY4RDAwODEwMDgxMDA4MTAxMDIwMTAyMAoyMDQwNDA4
MDBDMEI3Rjk5MTM+MzQgRDwwRTAwMDMwMDMxMDAwNzAwMzA4MDBFMDA2MEUw
MUMwMEUwNUZFQzAwRTA0MDE4MDAKRTA0MDMwMDBFMDQwMzAwMEUwNDA2MDAw
RTA0MEMwMDBFMDQwQzAwMDYwODE4MDAwMzA4MzAwMDAzMTAzMDAwMDBFMDYw
MDAwCjAwMEMwNzAwMDAxODE4ODAwMDE4MTg0MDAwMzAzMDQwMDA2MDcwMjAw
MDYwNzAyMDAwQzA3MDIwMDE4MDcwMjAwMTgwNzAyMAowMzAwNzAyMDA2MDA3
MDIwMDYwMDMwNDAwQzAwMTg0MDE4MDAxODgwMDgwMDA3MDAxQjFFN0U5QjIw
PjM3CkQ8NjBGMEY4NjgwODA4MDgxMDEwMjA0MDA1MEI3RDk5MEI+MzkgRDww
MDgwMDEwMDAyMDAwNDAwMEMwMDA4MDAxODAwMzAwMAozMDAwMzAwMDYwMDA2
MDAwNjAwMDYwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUw
MDBFMDAwNjAwMDYwMDAKNjAwMDYwMDAzMDAwMzAwMDMwMDAxODAwMDgwMDBD
MDAwNDAwMDIwMDAxMDAwMDgwMDkyNjdEOUIwRj5JPDgwMDA0MDAwMjAKMDAx
MDAwMTgwMDA4MDAwQzAwMDYwMDA2MDAwNjAwMDMwMDAzMDAwMzAwMDMwMDAz
ODAwMzgwMDM4MDAzODAwMzgwMDM4MDAzCjgwMDM4MDAzODAwMzgwMDMwMDAz
MDAwMzAwMDMwMDA2MDAwNjAwMDYwMDBDMDAwODAwMTgwMDEwMDAyMDAwNDAw
MDgwMDAwOQoyNjdFOUIwRj5JPDAwMEMwMDAwMDAwQzAwMDAwMDBDMDAwMDAw
MEMwMDAwMDAwQzAwMDAwMDBDMDAwMDAwMEMwMDAwMDAwQwowMDAwMDAwQzAw
MDAwMDBDMDAwMDAwMEMwMDAwMDAwQzAwMDBGRkZGRkY4MEZGRkZGRjgwMDAw
QzAwMDAwMDBDMDAwMDAwMEMKMDAwMDAwMEMwMDAwMDAwQzAwMDAwMDBDMDAw
MDAwMEMwMDAwMDAwQzAwMDAwMDBDMDAwMDAwMEMwMDAwMDAwQzAwMDAwMDBD
CjAwMDAxOTFBN0U5NTFFPjQzIEQ8NjBGMEYwNzAxMDEwMTAyMDIwNDA0MDA0
MEI3RDgzMEI+STxGRkMwRkZDMDBBMDI4MDg4CjBEPkk8NjBGMEYwNjAwNDA0
N0Q4MzBCPkk8MDdFMDFDMzgzODFDMzAwQzcwMEU2MDA2NjAwNkUwMDdFMDA3
RTAwN0UwMDdFMAowN0UwMDdFMDA3RTAwN0UwMDdFMDA3NjAwNjYwMDY3MDBF
MzAwQzM4MUMxQzM4MDdFMDEwMTg3Rjk3MTM+NDgKRDwwMzAwMDcwMEZGMDAw
NzAwMDcwMDA3MDAwNzAwMDcwMDA3MDAwNzAwMDcwMDA3MDAwNzAwMDcwMDA3
MDAwNzAwMDcwMDA3CjAwMDcwMDA3MDAwNzAwMDcwMDA3MDA3RkY4MEQxODdE
OTcxMz5JPDBGODAxMDYwMjAzMDQwMzg4MDNDQzAxQ0UwMUM0MDFDCjAwM0Mw
MDM4MDAzODAwNzAwMDYwMDBDMDAxODAwMTAwMDIwMDA0MDQwODA0MTAwNDMw
MDgzRkY4N0ZGOEZGRjgwRTE4N0U5NwoxMz5JPDA3RTAxODM4MjAxQzYwMUU3
MDBFMjAxRTAwMUUwMDFDMDAxQzAwMzgwMDcwMDdFMDAwMzgwMDFDMDAwRTAw
MEYwMAowRkUwMEZFMDBGQzAwRjQwMEU2MDFDMTgzODA3RTAxMDE4N0Y5NzEz
Pkk8MDAxODAwMTgwMDM4MDA3ODAwRjgwMEI4MDEzOAowMjM4MDIzODA0Mzgw
ODM4MTgzODEwMzgyMDM4NDAzOEMwMzhGRkZGMDAzODAwMzgwMDM4MDAzODAw
MzgwMDM4MDNGRjEwMTgKN0Y5NzEzPkk8MzAxODNGRjAzRkUwM0Y4MDIwMDAy
MDAwMjAwMDIwMDAyMDAwMkZDMDMwNjAyMDMwMDAzODAwMTgwMDFDMDAKMUM0
MDFDRTAxQ0UwMUM4MDE4NDAzODQwMzAzMEUwMEY4MDBFMTg3RTk3MTM+STww
MUY4MDcwNDBDMDYxODBFMzAwRTMwMDAKNzAwMDYwMDBFMDAwRTNFMEU0MThF
ODBDRjAwRUUwMDZFMDA3RTAwN0UwMDc2MDA3NjAwNzcwMDYzMDBFMTgwQzBD
MzgwN0UwCjEwMTg3Rjk3MTM+STw0MDAwN0ZGRjdGRkU3RkZFNDAwNDgwMDg4
MDEwODAxMDAwMjAwMDQwMDA0MDAwODAwMTgwMDEwMDAzCjAwMDMwMDA3MDAw
NjAwMDYwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMDQwMDEwMTk3RTk4MTM+STww
N0UwMTgxODMwMEMyMDA2CjYwMDY2MDA2NzAwNjc4MEMzRTE4MUYzMDA3QzAw
M0UwMENGODMwN0M2MDFFNjAwRkMwMDdDMDAzQzAwM0MwMDM2MDAyMjAwNAox
ODE4MDdFMDEwMTg3Rjk3MTM+STwwN0UwMUMzMDMwMTg3MDBDNjAwRUUwMDZF
MDA2RTAwN0UwMDdFMDA3NjAwNzcwMEYzMAoxNzE4MjcwN0M3MDAwNzAwMDYw
MDBFMDAwQzcwMEM3MDE4NjAzMDMwNjAwRjgwMTAxODdGOTcxMz5JPDYwRjBG
MDYwMDAwMAowMDAwMDAwMDAwMDA2MEYwRjA2MDA0MTA3RDhGMEI+STw2MEYw
RjA2MDAwMDAwMDAwMDAwMDAwMDA2MEYwRjA3MDEwMTAxMAoyMDIwNDA0MDA0
MTc3RDhGMEI+STxGRkZGRkY4MEZGRkZGRjgwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAowMDAwMDAwMDAwMDAwMEZGRkZGRjgwRkZGRkZG
ODAxOTBBN0U4RDFFPjYxIEQ8MUZDMDIwNjA0MDMwQzAzOEUwMzhFMDM4MDAK
MzgwMDcwMDBFMDAxODAwMTAwMDMwMDAyMDAwMjAwMDIwMDAyMDAwMjAwMDIw
MDAwMDAwMDAwMDAwMDAwMDAwNjAwMEYwMDBGCjAwMDYwMDBEMUE3RTk5MTI+
NjMgRDwwMDBDMDAwMDAwMEMwMDAwMDAwQzAwMDAwMDFFMDAwMDAwMUUwMDAw
MDAyRjAwMDAwMAoyNzAwMDAwMDI3MDAwMDAwNDM4MDAwMDA0MzgwMDAwMDQz
ODAwMDAwODFDMDAwMDA4MUMwMDAwMTgxRTAwMDAxMDBFMDAwMDEKMDBFMDAw
MDNGRkYwMDAwMjAwNzAwMDAyMDA3MDAwMDQwMDM4MDAwNDAwMzgwMDA0MDAz
ODAwMDgwMDFDMDAwODAwMUMwMDNDCjAwMUUwMEZGMDBGRkMwMUExQTdGOTkx
RD42NSBEPEZGRkY4MDBFMDBFMDBFMDA3MDBFMDAzODBFMDAzQzBFMDAzQzBF
MDAzQwowRTAwM0MwRTAwM0MwRTAwNzgwRTAwNzAwRTAxRTAwRkZGQzAwRTAw
RjAwRTAwNzgwRTAwM0MwRTAwMUMwRTAwMUUwRTAwMUUKMEUwMDFFMEUwMDFF
MEUwMDFDMEUwMDNDMEUwMDc4MEUwMEYwRkZGRkMwMTcxQTdGOTkxQj5JPDAw
M0YwMjAxQzBDNjAzMDAKMkUwRTAwMUUxQzAwMEUxQzAwMDYzODAwMDY3ODAw
MDI3MDAwMDI3MDAwMDJGMDAwMDBGMDAwMDBGMDAwMDBGMDAwMDBGMDAwCjAw
RjAwMDAwNzAwMDAyNzAwMDAyNzgwMDAyMzgwMDA0MUMwMDA0MUMwMDA4MEUw
MDA4MDMwMDMwMDFDMEMwMDAzRjAwMTcxQQo3RTk5MUM+STxGRkZGODAwMDBF
MDBFMDAwMEUwMDcwMDAwRTAwMzgwMDBFMDAxQzAwMEUwMDBFMDAwRTAwMEUw
MDBFMDAwNwowMDBFMDAwNzAwMEUwMDA3ODAwRTAwMDc4MDBFMDAwNzgwMEUw
MDA3ODAwRTAwMDc4MDBFMDAwNzgwMEUwMDA3ODAwRTAwMDcKODAwRTAwMDcw
MDBFMDAwNzAwMEUwMDBGMDAwRTAwMEUwMDBFMDAxQzAwMEUwMDFDMDAwRTAw
NzgwMDBFMDBFMDAwRkZGRjgwCjAwMTkxQTdGOTkxRD5JPEZGRkZGODBFMDAz
ODBFMDAxODBFMDAwODBFMDAwQzBFMDAwNDBFMDAwNDBFMDAwNDBFMDEwMDBF
CjAxMDAwRTAxMDAwRTAzMDAwRkZGMDAwRTAzMDAwRTAxMDAwRTAxMDAwRTAx
MDAwRTAwMDIwRTAwMDIwRTAwMDIwRTAwMDYwRQowMDA0MEUwMDA0MEUwMDBD
MEUwMDNDRkZGRkZDMTcxQTdGOTkxQT5JPEZGRkZGODBFMDAzODBFMDAxODBF
MDAwODBFMDAwQwowRTAwMDQwRTAwMDQwRTAwMDQwRTAxMDAwRTAxMDAwRTAx
MDAwRTAzMDAwRkZGMDAwRTAzMDAwRTAxMDAwRTAxMDAwRTAxMDAKMEUwMDAw
MEUwMDAwMEUwMDAwMEUwMDAwMEUwMDAwMEUwMDAwMEUwMDAwMEUwMDAwRkZF
MDAwMTYxQTdGOTkxOT5JPDAwM0YKMDIwMDAxQzBDNjAwMDMwMDJFMDAwRTAw
MUUwMDFDMDAwRTAwMUMwMDA2MDAzODAwMDYwMDc4MDAwMjAwNzAwMDAyMDA3
MDAwCjAyMDBGMDAwMDAwMEYwMDAwMDAwRjAwMDAwMDBGMDAwMDAwMEYwMDAw
MDAwRjAwMUZGQzA3MDAwMEUwMDcwMDAwRTAwNzgwMAowRTAwMzgwMDBFMDAx
QzAwMEUwMDFDMDAwRTAwMEUwMDBFMDAwMzAwMTYwMDAxQzA2NjAwMDAzRjgy
MDAxQTFBN0U5OTFFPgpJPEZGRTFGRkMwMEUwMDFDMDAwRTAwMUMwMDBFMDAx
QzAwMEUwMDFDMDAwRTAwMUMwMDBFMDAxQzAwMEUwMDFDMDAwRTAwMUMKMDAw
RTAwMUMwMDBFMDAxQzAwMEUwMDFDMDAwRkZGRkMwMDBFMDAxQzAwMEUwMDFD
MDAwRTAwMUMwMDBFMDAxQzAwMEUwMDFDCjAwMEUwMDFDMDAwRTAwMUMwMDBF
MDAxQzAwMEUwMDFDMDAwRTAwMUMwMDBFMDAxQzAwMEUwMDFDMDBGRkUxRkZD
MDFBMUE3Rgo5OTFEPkk8RkY4MDFDMDAxQzAwMUMwMDFDMDAxQzAwMUMwMDFD
MDAxQzAwMUMwMDFDMDAxQzAwMUMwMDFDMDAxQzAwMUMwMAoxQzAwMUMwMDFD
MDAxQzAwMUMwMDFDMDAxQzAwMUMwMDFDMDBGRjgwMDkxQTdFOTkwRT5JPDBG
RkUwMDcwMDA3MDAwNzAwMAo3MDAwNzAwMDcwMDA3MDAwNzAwMDcwMDA3MDAw
NzAwMDcwMDA3MDAwNzAwMDcwMDA3MDAwNzAwMDcwMDA3MDQwNzBFMDcwRTAK
NzA0MEUwNjFDMDFGMDAwRjFBN0U5OTE0Pkk8RkZFMDFGQzAwRTAwMEYwMDBF
MDAwQzAwMEUwMDA4MDAwRTAwMTAwMDBFMDAKMjAwMDBFMDA0MDAwMEUwMTgw
MDAwRTAyMDAwMDBFMDQwMDAwMEUwQzAwMDAwRTFDMDAwMDBFMkUwMDAwMEU0
NzAwMDAwRTgzCjgwMDAwRjAzODAwMDBFMDFDMDAwMEUwMEUwMDAwRTAwRTAw
MDBFMDA3MDAwMEUwMDM4MDAwRTAwMzgwMDBFMDAxQzAwMEUwMAoxRTAwMEUw
MDFGMDBGRkUwN0ZDMDFBMUE3Rjk5MUU+STxGRkUwMDAwRTAwMDAwRTAwMDAw
RTAwMDAwRTAwMDAwRTAwMDAwRQowMDAwMEUwMDAwMEUwMDAwMEUwMDAwMEUw
MDAwMEUwMDAwMEUwMDAwMEUwMDAwMEUwMDAwMEUwMDAwMEUwMDAwMEUwMDA4
MEUKMDAwODBFMDAwODBFMDAxODBFMDAxMDBFMDAzMDBFMDA3MDBFMDBGMEZG
RkZGMDE1MUE3Rjk5MTg+STxGRjAwMDBGRjBGMDAKMDBGMDBGMDAwMEYwMEI4
MDAxNzAwQjgwMDE3MDA5QzAwMjcwMDlDMDAyNzAwOUMwMDI3MDA4RTAwNDcw
MDhFMDA0NzAwODcwCjA4NzAwODcwMDg3MDA4NzAwODcwMDgzODEwNzAwODM4
MTA3MDA4MzgxMDcwMDgxQzIwNzAwODFDMjA3MDA4MEU0MDcwMDgwRQo0MDcw
MDgwRTQwNzAwODA3ODA3MDA4MDc4MDcwMDgwMzAwNzAxQzAzMDA3MEZGODMw
N0ZGMjAxQTdGOTkyMz5JPEZFMDA3RgpDMDBGMDAwRTAwMEYwMDA0MDAwQjgw
MDQwMDA5QzAwNDAwMDlDMDA0MDAwOEUwMDQwMDA4NzAwNDAwMDg3MDA0MDAw
ODM4MDQKMDAwODFDMDQwMDA4MUMwNDAwMDgwRTA0MDAwODA3MDQwMDA4MDM4
NDAwMDgwMzg0MDAwODAxQzQwMDA4MDBFNDAwMDgwMEU0CjAwMDgwMDc0MDAw
ODAwM0MwMDA4MDAzQzAwMDgwMDFDMDAwODAwMEMwMDFDMDAwQzAwRkY4MDA0
MDAxQTFBN0Y5OTFEPkk8CjAwN0YwMDAwMDFDMUMwMDAwNzAwNzAwMDBFMDAz
ODAwMUMwMDFDMDAzQzAwMUUwMDM4MDAwRTAwNzgwMDBGMDA3MDAwMDcwMApG
MDAwMDc4MEYwMDAwNzgwRjAwMDA3ODBGMDAwMDc4MEYwMDAwNzgwRjAwMDA3
ODBGMDAwMDc4MEYwMDAwNzgwNzgwMDBGMDAKNzgwMDBGMDAzODAwMEUwMDND
MDAxRTAwMUMwMDFDMDAwRTAwMzgwMDA3MDA3MDAwMDFDMUMwMDAwMDdGMDAw
MDE5MUE3RTk5CjFFPkk8RkZGRjgwMEUwMUUwMEUwMDcwMEUwMDc4MEUwMDM4
MEUwMDNDMEUwMDNDMEUwMDNDMEUwMDNDMEUwMDM4MEUwMDc4CjBFMDA3MDBF
MDFFMDBGRkY4MDBFMDAwMDBFMDAwMDBFMDAwMDBFMDAwMDBFMDAwMDBFMDAw
MDBFMDAwMDBFMDAwMDBFMDAwMAowRTAwMDAwRTAwMDBGRkUwMDAxNjFBN0Y5
OTFBPkk8RkZGRjAwMDAwRTAxQzAwMDBFMDA3MDAwMEUwMDc4MDAwRTAwM0Mw
MAowRTAwM0MwMDBFMDAzQzAwMEUwMDNDMDAwRTAwM0MwMDBFMDA3ODAwMEUw
MDcwMDAwRTAxQzAwMDBGRkYwMDAwMEUwMzgwMDAKMEUwMEMwMDAwRTAwRTAw
MDBFMDA3MDAwMEUwMDcwMDAwRTAwNzAwMDBFMDA3ODAwMEUwMDc4MDAwRTAw
NzgwMDBFMDA3ODQwCjBFMDAzQzQwMEUwMDFDODBGRkUwMEYwMDFBMUE3Rjk5
MUM+ODIgRDwwRkMyMTgzNjIwMEU2MDA2QzAwNkMwMDJDMDAyQzAwMgpFMDAw
NzAwMDdFMDAzRkUwMUZGODAzRkMwMDdFMDAwRTAwMDcwMDAzODAwMzgwMDM4
MDAzQzAwMkMwMDZFMDA0RDgxODg3RTAKMTAxQTdFOTkxNT5JPDdGRkZGRjAw
NzAxQzA3MDA0MDFDMDEwMDQwMUMwMTAwQzAxQzAxODA4MDFDMDA4MDgwMUMw
MDgwODAKMUMwMDgwMDAxQzAwMDAwMDFDMDAwMDAwMUMwMDAwMDAxQzAwMDAw
MDFDMDAwMDAwMUMwMDAwMDAxQzAwMDAwMDFDMDAwMDAwCjFDMDAwMDAwMUMw
MDAwMDAxQzAwMDAwMDFDMDAwMDAwMUMwMDAwMDAxQzAwMDAwMDFDMDAwMDAw
MUMwMDAwMDAxQzAwMDAwMwpGRkUwMDAxOTFBN0Y5OTFDPkk8RkZFMDdGQzAw
RTAwMEUwMDBFMDAwNDAwMEUwMDA0MDAwRTAwMDQwMDBFMDAwNDAwMEUwMAow
NDAwMEUwMDA0MDAwRTAwMDQwMDBFMDAwNDAwMEUwMDA0MDAwRTAwMDQwMDBF
MDAwNDAwMEUwMDA0MDAwRTAwMDQwMDBFMDAKMDQwMDBFMDAwNDAwMEUwMDA0
MDAwRTAwMDQwMDBFMDAwNDAwMDYwMDA4MDAwNzAwMDgwMDAzMDAxMDAwMDE4
MDIwMDAwMEUwCkMwMDAwMDNGMDAwMDFBMUE3Rjk5MUQ+STxGRjgwMUZDMDFD
MDAwNzAwMUMwMDA2MDAwRTAwMDQwMDBFMDAwNDAwMEUwMDA0CjAwMDcwMDA4
MDAwNzAwMDgwMDAzODAxMDAwMDM4MDEwMDAwMzgwMTAwMDAxQzAyMDAwMDFD
MDIwMDAwMEUwNDAwMDAwRTA0MAowMDAwRTA0MDAwMDA3MDgwMDAwMDcwODAw
MDAwNzk4MDAwMDAzOTAwMDAwMDM5MDAwMDAwMUUwMDAwMDAxRTAwMDAwMDFF
MDAKMDAwMDBDMDAwMDAwMEMwMDAwMUExQTdGOTkxRD5JPEZGODFGRjA3RjAz
QzAwNzgwMUMwMUMwMDc4MDA4MDFDMDA3ODAwODAKMUMwMDc4MDA4MDBFMDA5
QzAxMDAwRTAwOUMwMTAwMEUwMDlDMDEwMDA3MDEwRTAyMDAwNzAxMEUwMjAw
MDcwMTBFMDIwMDAzCjgzMEYwNDAwMDM4MjA3MDQwMDAzODIwNzA0MDAwMzgy
MDcwQzAwMDFDNDAzODgwMDAxQzQwMzg4MDAwMUM0MDM4ODAwMDBFOAowMUQw
MDAwMEU4MDFEMDAwMDBFODAxRDAwMDAwNzAwMEUwMDAwMDcwMDBFMDAwMDA3
MDAwRTAwMDAwMzAwMEMwMDAwMDIwMDAKNDAwMDI0MUE3Rjk5Mjc+STxGRjgw
MUZFMDFFMDAwNzAwMUUwMDA2MDAwRjAwMDQwMDA3MDAwQzAwMDc4MDA4MDAw
MzgwMTAKMDAwMUMwMTAwMDAxRTAyMDAwMDBFMDYwMDAwMDcwNDAwMDAwNzg4
MDAwMDAzODgwMDAwMDFEMDAwMDAwMUYwMDAwMDAwRTAwCjAwMDAwRTAwMDAw
MDBFMDAwMDAwMEUwMDAwMDAwRTAwMDAwMDBFMDAwMDAwMEUwMDAwMDAwRTAw
MDAwMDBFMDAwMDAwMEUwMAowMDAwRkZDMDAwMUIxQTdGOTkxRD44OSBEPDIw
NDAyMDQwNDA4MDQwODA4MTAwODEwMDgxMDBFMUMwRjFFMEYxRTA2MEMwMEIK
MEI3QTk5MTM+OTIgRDwwQzAwMUUwMDMzMDA2MTgwQzBDMDgwNDAwQTA2N0M5
OTEzPjk0IEQ8MjAyMDQwNDA4MDgwODBFMEYwCkYwNjAwNDBCN0Q5OTBCPjk2
IEQ8MUZDMDAwMzg3MDAwMzgzODAwMTAxQzAwMDAxQzAwMDAxQzAwMDNGQzAw
MUUxQzAwMzgxQwowMDcwMUMwMEUwMUMwMEUwMUM4MEUwMUM4MEUwM0M4MDcw
NUY4MDFGOEYwMDExMTA3RjhGMTM+STxGQzAwMDAxQzAwMDAxQwowMDAwMUMw
MDAwMUMwMDAwMUMwMDAwMUMwMDAwMUMwMDAwMUMwMDAwMUMwMDAwMUNGQzAw
MUQwNzAwMUUwMzgwMUMwMUMwMUMKMDBDMDFDMDBFMDFDMDBFMDFDMDBFMDFD
MDBFMDFDMDBFMDFDMDBFMDFDMDFDMDFDMDE4MDFFMDMwMDE5MDYwMDEwRjgw
MDEzCjFBODA5OTE1Pkk8MDdGODFDMUMzODFDNzAwODcwMDBFMDAwRTAwMEUw
MDBFMDAwRTAwMEUwMDA3MDAwNzAwNDM4MDgxQzE4CjA3RTAwRTEwN0Y4RjEx
Pkk8MDAzRjAwMDAwNzAwMDAwNzAwMDAwNzAwMDAwNzAwMDAwNzAwMDAwNzAw
MDAwNzAwMDAwNzAwCjAwMDcwMDAzRTcwMDBDMTcwMDE4MEYwMDMwMDcwMDcw
MDcwMEUwMDcwMEUwMDcwMEUwMDcwMEUwMDcwMEUwMDcwMEUwMDcwMAo2MDA3
MDA3MDA3MDAzODBGMDAxQzM3MDAwN0M3RTAxMzFBN0Y5OTE1Pkk8MDdDMDFD
MzAzMDE4NzAxODYwMENFMDBDRkZGQwpFMDAwRTAwMEUwMDBFMDAwNjAwMDcw
MDQzODA4MUMxODA3RTAwRTEwN0Y4RjExPkk8MDFGMDA3MTgwRTM4MUMxMDFD
MDAxQwowMDFDMDAxQzAwMUMwMDFDMDBGRkMwMUMwMDFDMDAxQzAwMUMwMDFD
MDAxQzAwMUMwMDFDMDAxQzAwMUMwMDFDMDAxQzAwMUMKMDAxQzAwRkY4MDBE
MUE4MDk5MEM+STwwRkNGMDAxODcxODAzMDMwMDA3MDM4MDA3MDM4MDA3MDM4
MDA3MDM4MDAzMDMwMDAKMTg2MDAwMkZDMDAwNjAwMDAwNjAwMDAwNzAwMDAw
M0ZGMDAwM0ZGQzAwMUZGRTAwNjAwRjAwQzAwMzAwQzAwMzAwQzAwMzAwCkMw
MDMwMDYwMDYwMDM4MUMwMDA3RTAwMDExMTg3RjhGMTM+STxGQzAwMDAxQzAw
MDAxQzAwMDAxQzAwMDAxQzAwMDAxQzAwCjAwMUMwMDAwMUMwMDAwMUMwMDAw
MUMwMDAwMUM3QzAwMUQ4NzAwMUUwMzgwMUUwMzgwMUMwMzgwMUMwMzgwMUMw
MzgwMUMwMwo4MDFDMDM4MDFDMDM4MDFDMDM4MDFDMDM4MDFDMDM4MDFDMDM4
MDFDMDM4MEZGOUZGMDE0MUE4MDk5MTU+STwxODNDM0MxOAowMDAwMDAwMDAw
MDBGQzFDMUMxQzFDMUMxQzFDMUMxQzFDMUMxQzFDMUNGRjA4MUE4MDk5MEE+
STwwMTgwMDNDMDAzQzAwMQo4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBG
QzAwMUMwMDFDMDAxQzAwMUMwMDFDMDAxQzAwMUMwMDFDMDAxQzAwMUMwMDEK
QzAwMUMwMDFDMDAxQzAwMUMwMDFDMDAxQzAwMUMwNDFDMEUxODBFMzAwN0Uw
MDBBMjE4Mjk5MEM+STxGQzAwMDAxQzAwMDAKMUMwMDAwMUMwMDAwMUMwMDAw
MUMwMDAwMUMwMDAwMUMwMDAwMUMwMDAwMUMwMDAwMUMxRkMwMUMwRjAwMUMw
QzAwMUMxODAwCjFDMjAwMDFDNDAwMDFDRTAwMDFERTAwMDFFNzAwMDFDNzgw
MDFDMzgwMDFDMUMwMDFDMUUwMDFDMEYwMDFDMEY4MEZGOUZFMAoxMzFBODA5
OTE0Pkk8RkMwMDFDMDAxQzAwMUMwMDFDMDAxQzAwMUMwMDFDMDAxQzAwMUMw
MDFDMDAxQzAwMUMwMDFDMDAxQwowMDFDMDAxQzAwMUMwMDFDMDAxQzAwMUMw
MDFDMDAxQzAwMUMwMDFDMDBGRjgwMDkxQTgwOTkwQT5JPEZDN0MxRjAwMUQ4
RQo2MzgwMUUwNzgxQzAxRTA3ODFDMDFDMDcwMUMwMUMwNzAxQzAxQzA3MDFD
MDFDMDcwMUMwMUMwNzAxQzAxQzA3MDFDMDFDMDcKMDFDMDFDMDcwMUMwMUMw
NzAxQzAxQzA3MDFDMDFDMDcwMUMwRkY5RkU3RjgxRDEwN0Y4RjIwPkk8RkM3
QzAwMUQ4NzAwMUUKMDM4MDFFMDM4MDFDMDM4MDFDMDM4MDFDMDM4MDFDMDM4
MDFDMDM4MDFDMDM4MDFDMDM4MDFDMDM4MDFDMDM4MDFDMDM4MDFDCjAzODBG
RjlGRjAxNDEwODA4RjE1Pkk8MDdFMDFDMzgzMDBDNzAwRTYwMDZFMDA3RTAw
N0UwMDdFMDA3RTAwN0UwMDc2MDA2CjcwMEUzODFDMUMzODA3RTAxMDEwN0Y4
RjEzPkk8RkNGQzAwMUQwNzAwMUUwMzgwMUMwMUMwMUMwMUMwMUMwMEUwMUMw
MEUwCjFDMDBFMDFDMDBFMDFDMDBFMDFDMDBFMDFDMDFDMDFDMDE4MDFFMDMw
MDFEMDYwMDFDRjgwMDFDMDAwMDFDMDAwMDFDMDAwMAoxQzAwMDAxQzAwMDAx
QzAwMDBGRjgwMDAxMzE3ODA4RjE1Pkk8MDNFMTAwMEMxMzAwMTgwQjAwMzAw
RjAwNzAwNzAwRTAwNwowMEUwMDcwMEUwMDcwMEUwMDcwMEUwMDcwMEUwMDcw
MDcwMDcwMDcwMDcwMDM4MEYwMDFDMzcwMDA3QzcwMDAwMDcwMDAwMDcKMDAw
MDA3MDAwMDA3MDAwMDA3MDAwMDA3MDAwMDNGRTAxMzE3N0Y4RjE0Pkk8RkM3
ODFEOUMxRTFDMUUwODFDMDAxQzAwMUMKMDAxQzAwMUMwMDFDMDAxQzAwMUMw
MDFDMDAxQzAwMUMwMEZGODAwRTEwODA4RjBGPkk8MUYyMDYwRTA0MDIwQzAy
MEMwMjAKRjAwMDdGMDAzRkMwMUZFMDAwRjA4MDcwODAzMEMwMzBDMDIwRjA0
MDhGODAwQzEwN0Y4RjBGPkk8MDgwMDA4MDAwODAwMDgKMDAxODAwMTgwMDM4
MDBGRkMwMzgwMDM4MDAzODAwMzgwMDM4MDAzODAwMzgwMDM4MDAzODIwMzgy
MDM4MjAzODIwMTgyMDFDCjQwMDc4MDBCMTc3Rjk2MEY+STxGQzFGODAxQzAz
ODAxQzAzODAxQzAzODAxQzAzODAxQzAzODAxQzAzODAxQzAzODAxQzAzCjgw
MUMwMzgwMUMwMzgwMUMwMzgwMUMwNzgwMEMwNzgwMEUwQjgwMDNGM0YwMTQx
MDgwOEYxNT5JPEZGMEY4MDNDMDcwMDFDCjA2MDAxQzA0MDAxQzA0MDAwRTA4
MDAwRTA4MDAwNzEwMDAwNzEwMDAwNzEwMDAwM0EwMDAwM0EwMDAwMUMwMDAw
MUMwMDAwMQpDMDAwMDA4MDAwMTExMDdGOEYxND5JPEZFN0YxRjgwMzgxQzA3
MDAzQzFDMDYwMDFDMEMwNDAwMUMwRTA0MDAwRTE2MDgwMAowRTE3MDgwMDBF
MTcwODAwMDcyMzEwMDAwNzIzOTAwMDA3QTM5MDAwMDNDMUEwMDAwM0MxRTAw
MDAxODBDMDAwMDE4MEMwMDAKMDE4MEMwMDAxOTEwN0Y4RjFDPkk8RkUzRjgw
M0MxRTAwMUMwODAwMEUxMDAwMEYzMDAwMDc2MDAwMDNDMDAwMDFDMDAwMDEK
RTAwMDAzRTAwMDAyNzAwMDA0MzgwMDA4MzgwMDE4MUMwMDM4MUUwMEZDM0ZD
MDEyMTA3RjhGMTQ+STxGRjBGODAzQzA3MDAKMUMwNjAwMUMwNDAwMUMwNDAw
MEUwODAwMEUwODAwMDcxMDAwMDcxMDAwMDcxMDAwMDNBMDAwMDNBMDAwMDFD
MDAwMDFDMDAwCjAxQzAwMDAwODAwMDAwODAwMDAxMDAwMDAxMDAwMEUxMDAw
MEUyMDAwMEU0MDAwMDc4MDAwMDExMTc3RjhGMTQ+STxGRkY4CkUwNzBDMDcw
ODBFMDgxQzA4MUMwMDM4MDA3MDAwNzAwMEUwNDFDMDQxQzA0MzgwODcwMDg3
MDM4RkZGODBFMTA3RjhGMTE+Ckk8RkZGRkMwMTIwMTgwODkxMz5JPEZGRkZG
RkZGRjgyNTAxODA4OTI2PkkgRSAvRm0gNyA4NQpkZjwwNDA4MTAzMDIwNjA2
MDQwQzBDMEMwQzBDMEMwQzBDMEMwQzA0MDYwNjAyMDMwMTAwODA0MDYxQTdE
OTIwQz40MApEPDgwNDAyMDMwMTAxODE4MDgwQzBDMEMwQzBDMEMwQzBDMEMw
QzA4MTgxODEwMzAyMDQwODAwNjFBN0Y5MjBDPkk8MUYwMAozMTgwNjBDMDQw
NDBDMDYwQzA2MEMwNjBDMDYwQzA2MEMwNjBDMDYwQzA2MDQwNDA2MEMwMzE4
MDFGMDAwQjEwN0Y4RjBGPgo0OCBEPDE4Nzg5ODE4MTgxODE4MTgxODE4MTgx
ODE4MTgxOEZGMDgxMDdEOEYwRj5JPDFGMDA2MTgwNDBDMDgwNjBDMDYwMDAK
NjAwMDYwMDBDMDAxODAwMzAwMDYwMDBDMDAxMDIwMjAyMDdGQzBGRkMwMEIx
MDdGOEYwRj5JPDAxODAwMTgwMDM4MDA1ODAKMEQ4MDE5ODAxMTgwMjE4MDQx
ODBDMTgwRkZFMDAxODAwMTgwMDE4MDAxODAwRkUwMEIxMDdGOEYwRj41MgpE
PDdGRkY4MDYwQzE4MDQwQzA4MEMwQzBDMDgwQzA0MDgwQzA0MDAwQzAwMDAw
QzAwMDAwQzAwMDAwQzAwMDAwQzAwMDAwQzAKMDAwMEMwMDAwMEMwMDAwMEMw
MDAwMEMwMDAwRkZDMDAxMjExN0Y5MDE2Pjg0IEQgRSAvRm4KMjEgMTEzIGRm
PEZGRkZDMEMwQzBDMEMwQzBDMEMwQzBDMEMwQzBDMEMwQzBDMEMwQzBDMEMw
QzBDMEMwQzBDMEMwQzBDMEMwCkMwQzBDMEMwQzBDMEMwQzBDMEMwQzBDMEMw
QzBDMEMwRkZGRjA4MzE3OTgxMTE+MiBEPEZGRkYwMzAzMDMwMzAzMDMwMzAz
CjAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAz
MDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMwowM0ZGRkYwODMxN0Y4MTEx
Pkk8MDAwNjAwMEMwMDE4MDAzMDAwNzAwMDYwMDBDMDAxQzAwMTgwMDM4MDAz
MDAwNzAwMDYwMAowRTAwMEMwMDFDMDAxQzAwMTgwMDM4MDAzODAwMzgwMDMw
MDA3MDAwNzAwMDcwMDA3MDAwNzAwMDcwMDBFMDAwRTAwMEUwMDAKRTAwMEUw
MDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAw
MEUwMDBFMDAwNzAwMDcwMDA3MDAwCjcwMDA3MDAwNzAwMDMwMDAzODAwMzgw
MDM4MDAxODAwMUMwMDFDMDAwQzAwMEUwMDA2MDAwNzAwMDMwMDAzODAwMTgw
MDFDMAowMEMwMDA2MDAwNzAwMDMwMDAxODAwMEMwMDA2MEY0QTc4ODExOT4x
NiBEPEMwMDA2MDAwMzAwMDE4MDAxQzAwMEMwMDA2MDAKMDcwMDAzMDAwMzgw
MDE4MDAxQzAwMEMwMDBFMDAwNjAwMDcwMDA3MDAwMzAwMDM4MDAzODAwMzgw
MDE4MDAxQzAwMUMwMDFDCjAwMUMwMDFDMDAxQzAwMEUwMDBFMDAwRTAwMEUw
MDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRQow
MDBFMDAwRTAwMEUwMDFDMDAxQzAwMUMwMDFDMDAxQzAwMUMwMDE4MDAzODAw
MzgwMDM4MDAzMDAwNzAwMDcwMDA2MDAwRTAKMDBDMDAxQzAwMTgwMDM4MDAz
MDAwNzAwMDYwMDBDMDAxQzAwMTgwMDMwMDA2MDAwQzAwMDBGNEE3RjgxMTk+
STwwMDAwMzAKMDAwMDYwMDAwMEMwMDAwMTgwMDAwMzAwMDAwNzAwMDAwRTAw
MDAwQzAwMDAxODAwMDAzODAwMDAzMDAwMDA3MDAwMDBFMDAwCjAwQzAwMDAx
QzAwMDAxODAwMDAzODAwMDAzODAwMDAzMDAwMDA3MDAwMDA2MDAwMDBFMDAw
MDBFMDAwMDBDMDAwMDFDMDAwMAoxQzAwMDAxQzAwMDAxODAwMDAzODAwMDAz
ODAwMDAzODAwMDAzODAwMDA3MDAwMDA3MDAwMDA3MDAwMDA3MDAwMDA3MDAw
MDAKNzAwMDAwNzAwMDAwRTAwMDAwRTAwMDAwRTAwMDAwRTAwMDAwRTAwMDAw
RTAwMDAwRTAwMDAwRTAwMDAwRTAwMDAwRTAwMDAwCkUwMDAwMEUwMDAwMEUw
MDAwMEUwMDAwMEUwMDAwMEUwMDAwMEUwMDAwMEUwMDAwMEUwMDAwMEUwMDAw
MEUwMDAwMDcwMDAwMAo3MDAwMDA3MDAwMDA3MDAwMDA3MDAwMDA3MDAwMDA3
MDAwMDAzODAwMDAzODAwMDAzODAwMDAzODAwMDAxODAwMDAxQzAwMDAKMUMw
MDAwMUMwMDAwMEMwMDAwMEUwMDAwMEUwMDAwMDYwMDAwMDcwMDAwMDMwMDAw
MDM4MDAwMDM4MDAwMDE4MDAwMDFDMDAwCjAwQzAwMDAwRTAwMDAwNzAwMDAw
MzAwMDAwMzgwMDAwMTgwMDAwMEMwMDAwMEUwMDAwMDcwMDAwMDMwMDAwMDE4
MDAwMDBDMAowMDAwNjAwMDAwMzAxNDYzNzc4MTFGPkk8QzAwMDAwNjAwMDAw
MzAwMDAwMTgwMDAwMEMwMDAwMEUwMDAwMDcwMDAwMDMwMAowMDAxODAwMDAx
QzAwMDAwQzAwMDAwRTAwMDAwNzAwMDAwMzAwMDAwMzgwMDAwMTgwMDAwMUMw
MDAwMUMwMDAwMEMwMDAwMEUKMDAwMDA2MDAwMDA3MDAwMDA3MDAwMDAzMDAw
MDAzODAwMDAzODAwMDAzODAwMDAxODAwMDAxQzAwMDAxQzAwMDAxQzAwMDAx
CkMwMDAwMEUwMDAwMEUwMDAwMEUwMDAwMEUwMDAwMEUwMDAwMEUwMDAwMEUw
MDAwMDcwMDAwMDcwMDAwMDcwMDAwMDcwMDAwMAo3MDAwMDA3MDAwMDA3MDAw
MDA3MDAwMDA3MDAwMDA3MDAwMDA3MDAwMDA3MDAwMDA3MDAwMDA3MDAwMDA3
MDAwMDA3MDAwMDAKNzAwMDAwNzAwMDAwNzAwMDAwNzAwMDAwNzAwMDAwRTAw
MDAwRTAwMDAwRTAwMDAwRTAwMDAwRTAwMDAwRTAwMDAwRTAwMDAxCkMwMDAw
MUMwMDAwMUMwMDAwMUMwMDAwMTgwMDAwMzgwMDAwMzgwMDAwMzgwMDAwMzAw
MDAwNzAwMDAwNzAwMDAwNjAwMDAwRQowMDAwMEMwMDAwMUMwMDAwMUMwMDAw
MTgwMDAwMzgwMDAwMzAwMDAwNzAwMDAwRTAwMDAwQzAwMDAxQzAwMDAxODAw
MDAzMDAKMDAwNzAwMDAwRTAwMDAwQzAwMDAxODAwMDAzMDAwMDA2MDAwMDBD
MDAwMDAxNDYzN0Y4MTFGPkk8RkZFMEZGRTBGRkUwRTAKMDBFMDAwRTAwMEUw
MDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAw
MEUwMDBFMDAwRTAwMEUwCjAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAw
MEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMAow
MEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAw
RTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAKMDBFMDAwRTAwMEUwMDBFMDAw
RTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBF
MDAwRTAwMEUwCjAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBF
MDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMAowMEUwMDBF
MDAwRkZFMEZGRTBGRkUwMEI2Mzc2ODExNj5JPEZGRTBGRkUwRkZFMDAwRTAw
MEUwMDBFMDAwRTAwMEUwMDBFMAowMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAw
MEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAw
RTAKMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAw
RTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwCjAwRTAwMEUwMDBFMDAw
RTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBF
MDAwRTAwMEUwMDBFMAowMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBF
MDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAKMDBF
MDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUw
MDBFMDAwRTAwMEUwRkZFMEZGRTBGRkUwCjBCNjM4MDgxMTY+STwwMDAwNzAw
MDAxRjAwMDAzQzAwMDA3ODAwMDBFMDAwMDFDMDAwMDM4MDAwMDcwMDAwMDcw
MDAwMEYwCjAwMDBFMDAwMDBFMDAwMDBFMDAwMDBFMDAwMDBFMDAwMDBFMDAw
MDBFMDAwMDBFMDAwMDBFMDAwMDBFMDAwMDBFMDAwMDBFMAowMDAwRTAwMDAw
RTAwMDAwRTAwMDAwRTAwMDAwRTAwMDAwRTAwMDAwRTAwMDAwRTAwMDAwRTAw
MDAwRTAwMDAwRTAwMDAwRTAKMDAwMEUwMDAwMEUwMDAwMEUwMDAwMEUwMDAw
MEUwMDAwMEUwMDAwMUMwMDAwMUMwMDAwMUMwMDAwMzgwMDAwNzAwMDAwNjAw
CjAwMEUwMDAwMzgwMDAwNzAwMDAwQzAwMDAwNzAwMDAwMzgwMDAwMEUwMDAw
MDYwMDAwMDcwMDAwMDM4MDAwMDFDMDAwMDFDMAowMDAxQzAwMDAwRTAwMDAw
RTAwMDAwRTAwMDAwRTAwMDAwRTAwMDAwRTAwMDAwRTAwMDAwRTAwMDAwRTAw
MDAwRTAwMDAwRTAKMDAwMEUwMDAwMEUwMDAwMEUwMDAwMEUwMDAwMEUwMDAw
MEUwMDAwMEUwMDAwMEUwMDAwMEUwMDAwMEUwMDAwMEUwMDAwMEUwCjAwMDBF
MDAwMDBFMDAwMDBFMDAwMDBFMDAwMDBFMDAwMDBFMDAwMDBFMDAwMDBGMDAw
MDA3MDAwMDA3MDAwMDAzODAwMDAxQwowMDAwMEUwMDAwMDc4MDAwMDNDMDAw
MDFGMDAwMDA3MDE0NjM3QjgxMUY+MjYgRDwwMDAwMTgwMDAwMzAwMDAwNjAw
MDAwRTAKMDAwMEMwMDAwMTgwMDAwMzgwMDAwNzAwMDAwNjAwMDAwRTAwMDAw
QzAwMDAxQzAwMDAzODAwMDAzODAwMDA3MDAwMDA3MDAwCjAwRTAwMDAwRTAw
MDAxRTAwMDAxQzAwMDAxQzAwMDAzODAwMDAzODAwMDAzODAwMDA3ODAwMDA3
MDAwMDA3MDAwMDBGMDAwMAowRTAwMDAwRTAwMDAxRTAwMDAxRTAwMDAxRTAw
MDAxQzAwMDAxQzAwMDAzQzAwMDAzQzAwMDAzQzAwMDAzQzAwMDAzODAwMDAK
NzgwMDAwNzgwMDAwNzgwMDAwNzgwMDAwNzgwMDAwNzgwMDAwNzgwMDAwNzgw
MDAwNzAwMDAwRjAwMDAwRjAwMDAwRjAwMDAwCkYwMDAwMEYwMDAwMEYwMDAw
MEYwMDAwMEYwMDAwMEYwMDAwMEYwMDAwMEYwMDAwMEYwMDAwMEYwMDAwMEYw
MDAwMEYwMDAwMApGMDAwMDBGMDAwMDBGMDAwMDBGMDAwMDBGMDAwMDBGMDAw
MDBGMDAwMDBGMDAwMDBGMDAwMDBGMDAwMDBGMDAwMDA3MDAwMDAKNzgwMDAw
NzgwMDAwNzgwMDAwNzgwMDAwNzgwMDAwNzgwMDAwNzgwMDAwNzgwMDAwMzgw
MDAwM0MwMDAwM0MwMDAwM0MwMDAwCjNDMDAwMDFDMDAwMDFDMDAwMDFFMDAw
MDFFMDAwMDFFMDAwMDBFMDAwMDBFMDAwMDBGMDAwMDA3MDAwMDA3MDAwMDA3
ODAwMAowMzgwMDAwMzgwMDAwMzgwMDAwMUMwMDAwMUMwMDAwMUUwMDAwMEUw
MDAwMEUwMDAwMDcwMDAwMDcwMDAwMDM4MDAwMDM4MDAKMDAxQzAwMDAwQzAw
MDAwRTAwMDAwNjAwMDAwNzAwMDAwMzgwMDAwMTgwMDAwMEMwMDAwMEUwMDAw
MDYwMDAwMDMwMDAwMDE4CjE1N0M3NjgxMjE+MzIgRDxDMDAwMDA2MDAwMDAz
MDAwMDAzODAwMDAxODAwMDAwQzAwMDAwRTAwMDAwNzAwMDAwMzAwMDAwMwo4
MDAwMDE4MDAwMDFDMDAwMDBFMDAwMDBFMDAwMDA3MDAwMDA3MDAwMDAzODAw
MDAzODAwMDAzQzAwMDAxQzAwMDAxQzAwMDAKMEUwMDAwMEUwMDAwMEUwMDAw
MEYwMDAwMDcwMDAwMDcwMDAwMDc4MDAwMDM4MDAwMDM4MDAwMDNDMDAwMDND
MDAwMDNDMDAwCjAxQzAwMDAxQzAwMDAxRTAwMDAxRTAwMDAxRTAwMDAxRTAw
MDAwRTAwMDAwRjAwMDAwRjAwMDAwRjAwMDAwRjAwMDAwRjAwMAowMEYwMDAw
MEYwMDAwMEYwMDAwMDcwMDAwMDc4MDAwMDc4MDAwMDc4MDAwMDc4MDAwMDc4
MDAwMDc4MDAwMDc4MDAwMDc4MDAKMDA3ODAwMDA3ODAwMDA3ODAwMDA3ODAw
MDA3ODAwMDA3ODAwMDA3ODAwMDA3ODAwMDA3ODAwMDA3ODAwMDA3ODAwMDA3
ODAwCjAwNzgwMDAwNzgwMDAwNzgwMDAwNzgwMDAwNzgwMDAwNzgwMDAwNzAw
MDAwRjAwMDAwRjAwMDAwRjAwMDAwRjAwMDAwRjAwMAowMEYwMDAwMEYwMDAw
MEYwMDAwMEUwMDAwMUUwMDAwMUUwMDAwMUUwMDAwMUUwMDAwMUMwMDAwMUMw
MDAwM0MwMDAwM0MwMDAKMDNDMDAwMDM4MDAwMDM4MDAwMDc4MDAwMDcwMDAw
MDcwMDAwMEYwMDAwMEUwMDAwMEUwMDAwMEUwMDAwMUMwMDAwMUMwMDAwCjND
MDAwMDM4MDAwMDM4MDAwMDcwMDAwMDcwMDAwMEUwMDAwMEUwMDAwMUMwMDAw
MTgwMDAwMzgwMDAwMzAwMDAwNzAwMDAwRQowMDAwMEMwMDAwMTgwMDAwMzgw
MDAwMzAwMDAwNjAwMDAwQzAwMDAwMTU3QzdGODEyMT5JPEZGRjBGRkYwRkZG
MEUwMDBFMAowMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAw
MEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAKMDBFMDAwRTAw
MEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAw
RTAwMEUwMDBFMDAwRTAwMEUwCjAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAw
RTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBF
MAowMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBF
MDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAKMDBFMDAwRTAwMEUwMDBF
MDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUw
MDBFMDAwRTAwMEUwCjAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUw
MDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMAowMEUw
MDBFMDAwRTAwMEUwMDBFMDAwRTAwMEUwMDBFMDAwRkZGMEZGRjBGRkYwMEM3
Qzc1ODExOD5JPEZGRjBGRkYwRkZGMAowMDcwMDA3MDAwNzAwMDcwMDA3MDAw
NzAwMDcwMDA3MDAwNzAwMDcwMDA3MDAwNzAwMDcwMDA3MDAwNzAwMDcwMDA3
MDAwNzAKMDA3MDAwNzAwMDcwMDA3MDAwNzAwMDcwMDA3MDAwNzAwMDcwMDA3
MDAwNzAwMDcwMDA3MDAwNzAwMDcwMDA3MDAwNzAwMDcwCjAwNzAwMDcwMDA3
MDAwNzAwMDcwMDA3MDAwNzAwMDcwMDA3MDAwNzAwMDcwMDA3MDAwNzAwMDcw
MDA3MDAwNzAwMDcwMDA3MAowMDcwMDA3MDAwNzAwMDcwMDA3MDAwNzAwMDcw
MDA3MDAwNzAwMDcwMDA3MDAwNzAwMDcwMDA3MDAwNzAwMDcwMDA3MDAwNzAK
MDA3MDAwNzAwMDcwMDA3MDAwNzAwMDcwMDA3MDAwNzAwMDcwMDA3MDAwNzAw
MDcwMDA3MDAwNzAwMDcwMDA3MDAwNzAwMDcwCjAwNzAwMDcwMDA3MDAwNzAw
MDcwMDA3MDAwNzAwMDcwMDA3MDAwNzAwMDcwMDA3MDAwNzAwMDcwMDA3MDAw
NzAwMDcwMDA3MAowMDcwMDA3MDAwNzAwMDcwMDA3MDAwNzAwMDcwMDA3MDAw
NzAwMDcwRkZGMEZGRjBGRkYwMEM3QzgwODExOD5JPEZGRkZGRgpGRkYwRkZG
RkZGRkZGMDcwMDAwMDBGRjg3ODAwMDAwMEY4M0MwMDAwMDAzODFDMDAwMDAw
MUMwRTAwMDAwMDBDMEYwMDAwMDAKMDQwNzAwMDAwMDA2MDM4MDAwMDAwMjAz
QzAwMDAwMDAwMUUwMDAwMDAwMDBFMDAwMDAwMDAwNzAwMDAwMDAwMDc4MDAw
MDAwCjAwM0MwMDAwMDAwMDFDMDAwMDAwMDAxRTAwMDAwMDAwMEYwMDAwMDAw
MDA3MDAwMDAwMDAwMzgwMDAwMDAwMDM4MDAwMDAwMAowMzAwMDAwMDAwMDcw
MDAwMDAwMDA2MDAwMDAwMDAwQzAwMDAwMDAwMTgwMDAwMDAwMDM4MDAwMDAw
MDAzMDAwMDAwMDAwNjAKMDAwMDAwMDBDMDAwMDAwMDAxQzAwMDAwMDAwMTgw
MDAwMDAyMDMwMDAwMDAwNjA2MDAwMDAwMDQwRTAwMDAwMDBDMEMwMDAwCjAw
MUMxODAwMDAwMDM4MzAwMDAwMDBGODcwMDAwMDBGRjg3RkZGRkZGRkYwRkZG
RkZGRkZGMDI3MkE3RTdGMkM+ODAKRDwwMDAwRjgwMDAxODQwMDAzMDYwMDA2
MEUwMDA2MDQwMDBFMDAwMDBFMDAwMDBFMDAwMDFDMDAwMDFDMDAwMDFDMDAw
MDFDCjAwMDAxQzAwMDAxQzAwMDAxQzAwMDAxQzAwMDAxQzAwMDAxQzAwMDAz
ODAwMDAzODAwMDAzODAwMDAzODAwMDAzODAwMDAzOAowMDAwMzgwMDAwMzgw
MDAwMzgwMDAwMzgwMDAwNzAwMDAwNzAwMDAwNzAwMDAwNzAwMDAwNzAwMDAw
NzAwMDAwNzAwMDAwNzAKMDAwMDcwMDAwMDcwMDAwMEUwMDAwMEUwMDAwMEUw
MDA0MEMwMDBFMEMwMDBDMTgwMDA0MzAwMDAzRTAwMDAxNzJFN0U3RjE0Cj44
MiBEPEZGRkZGRkZGRkZGRkMwRkZGRkZGRkZGRkZGRTA3RjAwMDAwMDAxRkZF
MDdGMDAwMDAwMDAxRkUwM0Y4MDAwMDAwMAowM0YwMUZDMDAwMDAwMDAwRjAw
RkMwMDAwMDAwMDAzODBGRTAwMDAwMDAwMDE4MDdGMDAwMDAwMDAwMEMwM0Y4
MDAwMDAwMDAKMDQwM0Y4MDAwMDAwMDAwNDAxRkMwMDAwMDAwMDAyMDBGRTAw
MDAwMDAwMDAwMDdGMDAwMDAwMDAwMDAwN0YwMDAwMDAwMDAwCjAwM0Y4MDAw
MDAwMDAwMDAxRkMwMDAwMDAwMDAwMDBGQzAwMDAwMDAwMDAwMEZFMDAwMDAw
MDAwMDAwN0YwMDAwMDAwMDAwMAowM0Y4MDAwMDAwMDAwMDAzRjgwMDAwMDAw
MDAwMDFGQzAwMDAwMDAwMDAwMEZFMDAwMDAwMDAwMDAwN0UwMDAwMDAwMDAw
MDAKN0YwMDAwMDAwMDAwMDAzRjgwMDAwMDAwMDAwMDFGQzAwMDAwMDAwMDAw
MUZDMDAwMDAwMDAwMDAwRkMwMDAwMDAwMDAwMDA3CjgwMDAwMDAwMDAwMDAz
ODAwMDAwMDAwMDAwMDcwMDAwMDAwMDAwMDAwRTAwMDAwMDAwMDAwMDFDMDAw
MDAwMDAwMDAwMzgwMAowMDAwMDAwMDAwNzAwMDAwMDAwMDAwMDA3MDAwMDAw
MDAwMDAwMEUwMDAwMDAwMDAwMDAxQzAwMDAwMDAwMDAwMDM4MDAwMDAKMDAw
MDAwMDcwMDAwMDAwMDAwMDAwRTAwMDAwMDAwMDAwMDBFMDAwMDAwMDAwMDAw
MUMwMDAwMDAwMDAyMDAzODAwMDAwMDAwCjA0MDA3MDAwMDAwMDAwMDQwMEUw
MDAwMDAwMDAwQzAxRTAwMDAwMDAwMDE4MDFDMDAwMDAwMDAwMzgwMzgwMDAw
MDAwMDBGOAowNzAwMDAwMDAwMDFGMDBFMDAwMDAwMDAwRkYwMUMwMDAwMDAw
MUZGRjAzRkZGRkZGRkZGRkZFMDNGRkZGRkZGRkZGRkUwN0YKRkZGRkZGRkZG
RkUwRkZGRkZGRkZGRkZGQzAzNzNBN0U3RjNDPjg4IEQ8RkZGRkZGRkZGRkZG
RkZGRkZGRkZGRkZGRkZGRkZGCkZGRkZGRjBGRjgwMDAwMUZGMDAzRjgwMDAw
MUZDMDAxRjgwMDAwMUY4MDAxRjgwMDAwMUY4MDAxRjgwMDAwMUY4MDAxRjgw
MAowMDFGODAwMUY4MDAwMDFGODAwMUY4MDAwMDFGODAwMUY4MDAwMDFGODAw
MUY4MDAwMDFGODAwMUY4MDAwMDFGODAwMUY4MDAKMDAxRjgwMDFGODAwMDAx
RjgwMDFGODAwMDAxRjgwMDFGODAwMDAxRjgwMDFGODAwMDAxRjgwMDFGODAw
MDAxRjgwMDFGODAwCjAwMUY4MDAxRjgwMDAwMUY4MDAxRjgwMDAwMUY4MDAx
RjgwMDAwMUY4MDAxRjgwMDAwMUY4MDAxRjgwMDAwMUY4MDAxRjgwMAowMDFG
ODAwMUY4MDAwMDFGODAwMUY4MDAwMDFGODAwMUY4MDAwMDFGODAwMUY4MDAw
MDFGODAwMUY4MDAwMDFGODAwMUY4MDAKMDAxRjgwMDFGODAwMDAxRjgwMDFG
ODAwMDAxRjgwMDFGODAwMDAxRjgwMDFGODAwMDAxRjgwMDFGODAwMDAxRjgw
MDFGODAwCjAwMUY4MDAxRjgwMDAwMUY4MDAxRjgwMDAwMUY4MDAxRjgwMDAw
MUY4MDAxRjgwMDAwMUY4MDAxRjgwMDAwMUY4MDAxRjgwMAowMDFGODAwMUY4
MDAwMDFGODAwMUY4MDAwMDFGODAwMUY4MDAwMDFGODAwMUY4MDAwMDFGODAw
MUY4MDAwMDFGODAwMUY4MDAKMDAxRjgwMDFGODAwMDAxRjgwMDFGODAwMDAx
RjgwMDNGQzAwMDAzRkMwMEZGRjAwMDBGRkYwRkZGRkYwMEZGRkZGRkZGRkYw
CjBGRkZGRkZGRkZGMDBGRkZGRjMwM0E3RTdGMzU+STwwMDAwMDAwMzgwMDAw
MDAwMDY2MDAwMDAwMDBDNzAwMDAwMDAwQ0YwCjAwMDAwMDFDRjAwMDAwMDAx
ODYwMDAwMDAwMTgwMDAwMDAwMDM4MDAwMDAwMDAzODAwMDAwMDAwMzAwMDAw
MDAwMDcwMDAwMAowMDAwNzAwMDAwMDAwMDcwMDAwMDAwMDBGMDAwMDAwMDAw
RTAwMDAwMDAwMEUwMDAwMDAwMDBFMDAwMDAwMDAxRTAwMDAwMDAKMDFFMDAw
MDAwMDAxQzAwMDAwMDAwMUMwMDAwMDAwMDNDMDAwMDAwMDAzQzAwMDAwMDAw
M0MwMDAwMDAwMDNDMDAwMDAwMDA3CjgwMDAwMDAwMDc4MDAwMDAwMDA3ODAw
MDAwMDAwNzgwMDAwMDAwMDc4MDAwMDAwMDBGODAwMDAwMDAwRjAwMDAwMDAw
MEYwMAowMDAwMDAwRjAwMDAwMDAwMUYwMDAwMDAwMDFGMDAwMDAwMDAxRjAw
MDAwMDAwMUYwMDAwMDAwMDFFMDAwMDAwMDAzRTAwMDAKMDAwMDNFMDAwMDAw
MDAzRTAwMDAwMDAwM0UwMDAwMDAwMDdDMDAwMDAwMDA3QzAwMDAwMDAwN0Mw
MDAwMDAwMDdDMDAwMDAwCjAwN0MwMDAwMDAwMDdDMDAwMDAwMDBGODAwMDAw
MDAwRjgwMDAwMDAwMEY4MDAwMDAwMDBGODAwMDAwMDAwRjAwMDAwMDAwMQpG
MDAwMDAwMDAxRjAwMDAwMDAwMUYwMDAwMDAwMDFGMDAwMDAwMDAxRTAwMDAw
MDAwMUUwMDAwMDAwMDFFMDAwMDAwMDAzRTAKMDAwMDAwMDNDMDAwMDAwMDAz
QzAwMDAwMDAwM0MwMDAwMDAwMDNDMDAwMDAwMDAzQzAwMDAwMDAwNzgwMDAw
MDAwMDc4MDAwCjAwMDAwNzgwMDAwMDAwMDc4MDAwMDAwMDA3MDAwMDAwMDAw
NzAwMDAwMDAwMEYwMDAwMDAwMDBGMDAwMDAwMDAwRTAwMDAwMAowMDBFMDAw
MDAwMDAwRTAwMDAwMDAwMUUwMDAwMDAwMDFDMDAwMDAwMDAxQzAwMDAwMDAw
MUMwMDAwMDAwMDM4MDAwMDAwMDAKMzgwMDAwMDAwMDM4MDAwMDAwMDAzMDAw
MDAwMDYwNzAwMDAwMDBGMDYwMDAwMDAwRjBDMDAwMDAwMEUwQzAwMDAwMDA2
MzAwCjAwMDAwMDFFMDAwMDAwMDAyNDVDN0U3RjE3Pkk8RkY4MEZGODBDMDAw
QzAwMEMwMDBDMDAwQzAwMEMwMDBDMDAwQzAwMEMwCjAwQzAwMEMwMDBDMDAw
QzAwMEMwMDBDMDAwQzAwMEMwMDBDMDAwQzAwMEMwMDBDMDAwQzAwMEMwMDBD
MDAwQzAwMEMwMDBDMAowMEMwMDBDMDAwQzAwMEMwMDBDMDAwQzAwMEMwMDBD
MDAwQzAwMEMwMDBDMDAwQzAwMEMwMDBDMDAwQzAwMEMwMDBDMDAwQzAKMDBD
MDAwQzAwMEMwMDBDMDAwQzAwMEMwMDBDMDAwQzAwMEMwMDBDMDAwQzAwMEMw
MDBDMDAwQzAwMEMwMDBDMDAwQzAwMEMwCjAwQzAwMEMwMDBDMDAwQzAwMEMw
MDBDMDAwQzAwMEZGODBGRjgwMDk0QTc3ODExND4xMDQKRDxGRjgwRkY4MDAx
ODAwMTgwMDE4MDAxODAwMTgwMDE4MDAxODAwMTgwMDE4MDAxODAwMTgwMDE4
MDAxODAwMTgwMDE4MDAxCjgwMDE4MDAxODAwMTgwMDE4MDAxODAwMTgwMDE4
MDAxODAwMTgwMDE4MDAxODAwMTgwMDE4MDAxODAwMTgwMDE4MDAxODAwMQo4
MDAxODAwMTgwMDE4MDAxODAwMTgwMDE4MDAxODAwMTgwMDE4MDAxODAwMTgw
MDE4MDAxODAwMTgwMDE4MDAxODAwMTgwMDEKODAwMTgwMDE4MDAxODAwMTgw
MDE4MDAxODAwMTgwMDE4MDAxODAwMTgwMDE4MDAxODAwMTgwMDE4MDAxODAw
MTgwMDE4MDAxCjgwRkY4MEZGODAwOTRBN0Y4MTE0Pkk8MDAwMDAwMDAwMjAw
MDAwMDAwMDYwMDAwMDAwMDBDMDAwMDAwMDAwQzAwMDAwMDAwCjE4MDAwMDAw
MDAxODAwMDAwMDAwMzAwMDAwMDAwMDMwMDAwMDAwMDA2MDAwMDAwMDAwNjAw
MDAwMDAwMEMwMDAwMDAwMDBDMAowMDAwMDAwMTgwMDAwMDAwMDE4MDAwMDAw
MDAzMDAwMDAwMDAwMzAwMDAwMDAwMDYwMDAwMDAwMDA2MDAwMDAwMDAwQzAw
MDAKMDAwMDBDMDAwMDAwMDAxODAwMDAwMDAwMTgwMDAwMDAwMDMwMDAwMDAw
MDAzMDAwMDAwMDAwNjAwMDA4MDAwMDYwMDAxQzAwCjAwQzAwMDNDMDAwMEMw
MDBDRTAwMDE4MDAwMEUwMDAxODAwMDBFMDAwMzAwMDAwNzAwMDMwMDAwMDcw
MDA2MDAwMDAzODAwNgowMDAwMDM4MDBDMDAwMDAxQzAwQzAwMDAwMUMwMTgw
MDAwMDFFMDE4MDAwMDAwRTAzMDAwMDAwMEUwMzAwMDAwMDA3MDYwMDAKMDAw
MDcwNjAwMDAwMDAzOEMwMDAwMDAwMzhDMDAwMDAwMDFEODAwMDAwMDAxRDgw
MDAwMDAwMUYwMDAwMDAwMDBGMDAwMDAwCjAwMEUwMDAwMDAwMDA2MDAwMDAw
MjczMjdDODEyQT4xMTIgRCBFIC9GbyAzOSAxMjIgZGY8MDA3RTAwMDAwMUMz
MDAwMDAzCjAxODA4MDBFMDBDMDgwMUUwMEUwODAxQzAwRTEwMDNDMDBFMTAw
NzgwMEUxMDA3ODAwRTIwMDc4MDBFNDAwRjAwMEU0MDBGMAowMEU4MDBGMDAw
RjAwMEYwMDBGMDAwRjAwMEUwMDA3MDAwRTAwMDcwMDE2MDAwMzAwNjcxMDAx
ODE4MzIwMDA3RTAxQzAwMTkKMTQ3RTkzMUQ+MTEgRDwwMDAwRjgwMDAzMDYw
MDA0MDYwMDA4MDMwMDEwMDMwMDIwMDMwMDQwMDcwMDQwMDcwMDgwMDcwMDgw
CjA2MDEwMDBFMDEwMDBDMDEwN0Y4MDEwNDcwMDIwN0Q4MDIwMDFDMDIwMDFD
MDIwMDFFMDQwMDFFMDQwMDFFMDQwMDFFMDQwMAoxRTA4MDAzQzA4MDAzQzA4
MDAzQzA4MDA3ODE4MDA3MDE0MDBGMDE0MDBFMDEyMDFDMDIxODcwMDIwN0Mw
MDIwMDAwMDIwMDAKMDA0MDAwMDA0MDAwMDA0MDAwMDA0MDAwMDA4MDAwMDA4
MDAwMDA4MDAwMDAxODI5N0Y5RjFBPkk8MDA3QzAxODAwNzAwMEUKMDAxQzAw
M0MwMDM4MDA3ODAwNzgwMDdGRjBGMDAwRjAwMEYwMDA3MDAwNzAwMDcwMDAz
MDAwMzgwMDBDMTgwN0UwMEUxNDdFCjkzMTI+MTUgRDwwMTgwMTgwMUMwMUMw
MzgwMzgwMzgwMzgwMzgwMzgwMzgwMzgwNzAwNzAwNzAwNzAwNzAwNzAwNzAw
NzAwRQowMEUwMEUwMEUwMEUwMEUwMEUwMEUxMUUwMUMyMUUwMUMyMUUwM0My
MUUwNUM0M0YwOEM0MzlGMDc4MzgwMDAwMzgwMDAwNzAKMDAwMDcwMDAwMDcw
MDAwMDcwMDAwMEUwMDAwMEUwMDAwMEUwMDAwMEMwMDAwMDE4MUU3RjkzMUI+
MjIKRDwwRjAwMzA3RjAwMzgwRTAwNzAwRTAwNzAwRTAwNzAwRTAwRTAxQzAw
RTAxQzAxQzAxQzAxQzAxQzAzODAzODAzMDAzODA2CjAwMzgwQzAwMzgxODAw
NzAzMDAwNzA2MDAwNzFDMDAwNzMwMDAwRkMwMDAwRTAwMDAwMTUxNDdFOTMx
Nj5JPDBGRkZGQzFGCkZGRkUzRkZGRkM2MDgyMDBDMDgyMDA4MTgyMDAwMTA2
MDAwMTA0MDAwMzA0MDAwMzA0MDAwMjA0MDAwNjBDMDAwNjBFMDAwQwowRTAw
MEMwRTAwMUMwRTAwMUMwRTAwMTgwRjAwMzgwNzAwMzAwNjAwMTcxNDdFOTMx
QT4yNQpEPDAwMEY4MDAwMzhDMDAwNjA2MDAwQzA3MDAxQzA3MDAzODA3ODAz
ODA3ODA3MDA3ODA3MDA3ODA3MDA3ODBFMDBGMDBFMDAKRjAwRTAwRjAwRTAx
RTAxQzAxQzAxQzAxQzAxRTAzODAxRTA3MDAzOTBDMDAzOEYwMDAzODAwMDAz
ODAwMDA3MDAwMDA3MDAwCjAwNzAwMDAwNzAwMDAwRTAwMDAwRTAwMDAwRTAw
MDAwQzAwMDAwMTUxRTdGOTMxOD5JPDAwN0ZGRTAxRkZGRTA3RkZGRTBGCjA3
ODAxRTAzODAxQzAxQzAzODAxQzA3MDAxQzA3MDAxQzA3MDAxQzBFMDAzODBF
MDAzODBFMDAzODBFMDA3MDBFMDA3MDBFMAowRTAwNjAwQzAwMzAxODAwMTg2
MDAwMEY4MDAwMTcxNDdFOTMxQT5JPDAwMDA0MDAwMDA0MDAwMDA4MDAwMDA4
MDAwMDA4MAowMDAwODAwMDAxMDAwMDAxMDAwMDAxMDAwMDAxMDAwMDAyMDAw
MDAyMDAwMDFGQzAwMEUyNzAwMzg0MTgwNjA0MEMwQzA0MEUKMUMwNDA2Mzgw
ODA3MzAwODA3NzAwODA3NzAwODA3RTAxMDBFRTAxMDBFRTAxMDBDRTAxMDFD
NjAyMDM4NzAyMDMwMzAyMDYwCjE4MjFDMDBFNDcwMDAzRjgwMDAwNDAwMDAw
NDAwMDAwODAwMDAwODAwMDAwODAwMDAwODAwMDAxMDAwMDAxMDAwMDAxMDAw
MAoxODI5N0U5RjFCPjMwIEQ8NzBGOEY4Rjg3MDA1MDU3Qzg0MEQ+NTggRDw3
MEYwRjhGODc4MDgwODA4MTAxMDEwMjAyMDQwMDUKMEU3Qzg0MEQ+STwwMDAw
NDAwMDAwQzAwMDAxODAwMDAxODAwMDAxODAwMDAzMDAwMDAzMDAwMDAzMDAw
MDA2MDAwMDA2MDAKMDAwQzAwMDAwQzAwMDAwQzAwMDAxODAwMDAxODAwMDAx
ODAwMDAzMDAwMDAzMDAwMDA2MDAwMDA2MDAwMDA2MDAwMDBDMDAwCjAwQzAw
MDAwQzAwMDAxODAwMDAxODAwMDAxODAwMDAzMDAwMDAzMDAwMDA2MDAwMDA2
MDAwMDA2MDAwMDBDMDAwMDBDMDAwMAowQzAwMDAxODAwMDAxODAwMDAzMDAw
MDAzMDAwMDAzMDAwMDA2MDAwMDA2MDAwMDA2MDAwMDBDMDAwMDBDMDAwMDAx
MjJEN0UKQTExNz42MSBEPEUwMDAwMDAwNzgwMDAwMDAxRTAwMDAwMDA3ODAw
MDAwMDFFMDAwMDAwMDc4MDAwMDAwMUMwMDAwMDAwNzAwCjAwMDAwM0MwMDAw
MDAwRjAwMDAwMDAzQzAwMDAwMDBGMDAwMDAwMDNDMDAwMDAwM0MwMDAwMDBG
MDAwMDAwM0MwMDAwMDBGMAowMDAwMDNDMDAwMDAwNzAwMDAwMDFDMDAwMDAw
NzgwMDAwMDFFMDAwMDAwNzgwMDAwMDFFMDAwMDAwNzgwMDAwMDBFMDAwMDAK
MDAxQTFBN0M5NzIzPkk8MDAxRjAwMDA2MEMwMDA4MDYwMDEwMDMwMDIwMDE4
MDM4MDFDMDNDMDFDMDc4MDFDMDMwMDFDMDAKMDAxRTAwMDAxRTAwMDAxRTAw
M0UxRTAwQzExRTAzODA5QzA3MDA3QzBFMDA3QzFDMDA3QzNDMDA3QzM4MDA3
ODc4MDA3ODc4CjAwNzg3ODAwRjBGMDAwRjBGMDAwRTBGMDAwRTBGMDAxQzBG
MDAxQzBGMDAzODA3MDAzMDA3MDA2MDAzODBDMDAxQzM4MDAwNwpFMDAwMTcy
MjdFQTAxOD42NCBEPDAxRkZGRkUwMDAxRTAwNzgwMDFFMDAzQzAwMUUwMDFD
MDAxRTAwMUUwMDNDMDAxRTAwM0MKMDAxRTAwM0MwMDFFMDAzQzAwMUUwMDc4
MDAzQzAwNzgwMDNDMDA3ODAwNzgwMDc4MDBGMDAwRjAwM0MwMDBGRkZGMDAw
MEYwCjA3QzAwMEYwMDBFMDAxRTAwMEYwMDFFMDAwNzgwMUUwMDA3ODAxRTAw
MDc4MDNDMDAwNzgwM0MwMDA3ODAzQzAwMDc4MDNDMAowMDcwMDc4MDAwRjAw
NzgwMDFFMDA3ODAwM0MwMDc4MDA3ODAwRjAwMUUwMEZGRkZGMDAwMUYxRjdF
OUUyMj42NgpEPDAxRkZGRkZGODAwMDFFMDAwRjAwMDAxRTAwMDMwMDAwMUUw
MDAzMDAwMDFFMDAwMTAwMDAzQzAwMDEwMDAwM0MwMDAxMDAKMDAzQzAwMDEw
MDAwM0MwMDAxMDAwMDc4MDIwMjAwMDA3ODAyMDAwMDAwNzgwMjAwMDAwMDc4
MDYwMDAwMDBGMDBDMDAwMDAwCkZGRkMwMDAwMDBGMDBDMDAwMDAwRjAwQzAw
MDAwMUUwMDgwMDAwMDFFMDA4MDAwMDAxRTAwODAwMDAwMUUwMDAwNDAwMDND
MAowMDA4MDAwM0MwMDAwODAwMDNDMDAwMTAwMDAzQzAwMDEwMDAwNzgwMDAy
MDAwMDc4MDAwNjAwMDA3ODAwMDQwMDAwNzgwMDEKQzAwMDBGMDAwN0MwMDBG
RkZGRkY4MDAwMjExRjdFOUUyMj42OSBEPDAxRkZGMEZGRjgwMDFGMDAwRjgw
MDAxRTAwMEYwMDAwCjFFMDAwRjAwMDAxRTAwMEYwMDAwM0MwMDFFMDAwMDND
MDAxRTAwMDAzQzAwMUUwMDAwM0MwMDFFMDAwMDc4MDAzQzAwMDA3OAowMDND
MDAwMDc4MDAzQzAwMDA3ODAwM0MwMDAwRjAwMDc4MDAwMEZGRkZGODAwMDBG
MDAwNzgwMDAwRjAwMDc4MDAwMUUwMDAKRjAwMDAxRTAwMEYwMDAwMUUwMDBG
MDAwMDFFMDAwRjAwMDAzQzAwMUUwMDAwM0MwMDFFMDAwMDNDMDAxRTAwMDAz
QzAwMUUwCjAwMDc4MDAzQzAwMDA3ODAwM0MwMDAwNzgwMDNDMDAwMDc4MDAz
QzAwMDBGODAwN0MwMDBGRkY4N0ZGQzAwMjUxRjdFOUUyNgo+NzIgRDwwMDBG
RkY4MDAwMDA3QzAwMDAwMDc4MDAwMDAwNzgwMDAwMDA3ODAwMDAwMEYwMDAw
MDAwRjAwMDAwMDBGMDAwMDAKMDBGMDAwMDAwMUUwMDAwMDAxRTAwMDAwMDFF
MDAwMDAwMUUwMDAwMDAzQzAwMDAwMDNDMDAwMDAwM0MwMDAwMDAzQzAwMDAw
CjA3ODAwMDAwMDc4MDAwMDAwNzgwMDAwMDA3ODAwMDAwMEYwMDAwMDAwRjAw
MDAzMDBGMDAwMDc4MEYwMDAwRjgxRTAwMDBGOAoxRTAwMDBGMDNDMDAwMDgw
MzgwMDAwNDA3MDAwMDAyMEUwMDAwMDFGODAwMDAwMTkyMDdFOUUxOT43NApE
PDAxRkZGMDBGRjgwMDFGMDAwM0UwMDAxRTAwMDM4MDAwMUUwMDAyMDAwMDFF
MDAwNDAwMDAzQzAwMTAwMDAwM0MwMDIwMDAKMDAzQzAwNDAwMDAwM0MwMTgw
MDAwMDc4MDIwMDAwMDA3ODA0MDAwMDAwNzgwODAwMDAwMDc4MzgwMDAwMDBG
MDc4MDAwMDAwCkYwRjgwMDAwMDBGMTNDMDAwMDAwRjQzQzAwMDAwMUU4MUUw
MDAwMDFGMDFFMDAwMDAxRTAxRjAwMDAwMUUwMEYwMDAwMDNDMAowRjAwMDAw
M0MwMDc4MDAwMDNDMDA3ODAwMDAzQzAwN0MwMDAwNzgwMDNDMDAwMDc4MDAz
QzAwMDA3ODAwMUUwMDAwNzgwMDEKRTAwMDBGODAwMUYwMDBGRkY4MEZGRTAw
MjUxRjdFOUUyNz5JPDAxRkZGODAwMDAxRjAwMDAwMDFFMDAwMDAwMUUwMDAw
MDAKMUUwMDAwMDAzQzAwMDAwMDNDMDAwMDAwM0MwMDAwMDAzQzAwMDAwMDc4
MDAwMDAwNzgwMDAwMDA3ODAwMDAwMDc4MDAwMDAwCkYwMDAwMDAwRjAwMDAw
MDBGMDAwMDAwMEYwMDAwMDAxRTAwMDAwMDFFMDAwMDAwMUUwMDAwMDAxRTAw
MDQwMDNDMDAwODAwMwpDMDAwODAwM0MwMDE4MDAzQzAwMTAwMDc4MDAzMDAw
NzgwMDMwMDA3ODAwNjAwMDc4MDBFMDAwRjAwN0MwMEZGRkZGQzAwMUEKMUY3
RTlFMUY+STwwMUZGMDAxRkY4MDAxRjAwMDNDMDAwMUY4MDAxMDAwMDE3ODAw
MTAwMDAxNzgwMDEwMDAwMjNDMDAyMDAKMDAyM0MwMDIwMDAwMjFFMDAyMDAw
MDIxRTAwMjAwMDA0MUYwMDQwMDAwNDBGMDA0MDAwMDQwRjAwNDAwMDA0MDc4
MDQwMDAwCjgwNzgwODAwMDA4MDdDMDgwMDAwODAzQzA4MDAwMDgwM0MwODAw
MDEwMDFFMTAwMDAxMDAxRTEwMDAwMTAwMEYxMDAwMDEwMAowRjEwMDAwMjAw
MEZBMDAwMDIwMDA3QTAwMDAyMDAwN0EwMDAwMjAwMDNFMDAwMDQwMDAzQzAw
MDA0MDAwM0MwMDAwNDAwMDEKQzAwMDBDMDAwMUMwMDAxRTAwMDA4MDAwRkZD
MDAwODAwMDI1MUY3RTlFMjU+NzggRDwwMUZGRkZFMDAwMUUwMDc4MDAxRTAw
CjFDMDAxRTAwMEUwMDFFMDAwRjAwM0MwMDBGMDAzQzAwMEYwMDNDMDAwRjAw
M0MwMDBGMDA3ODAwMUUwMDc4MDAxRTAwNzgwMAozQzAwNzgwMDc4MDBGMDAw
RTAwMEYwMDNDMDAwRkZGRTAwMDBGMDAwMDAwMUUwMDAwMDAxRTAwMDAwMDFF
MDAwMDAwMUUwMDAKMDAwM0MwMDAwMDAzQzAwMDAwMDNDMDAwMDAwM0MwMDAw
MDA3ODAwMDAwMDc4MDAwMDAwNzgwMDAwMDA3ODAwMDAwMEY4MDAwCjAwRkZG
ODAwMDAyMDFGN0U5RTFEPjgwIEQ8MDAwMEZGMDAwMDA3ODFDMDAwMUMwMEUw
MDAzODAwNzAwMDcwMDAzODAxRTAwMAoxQzAzQzAwMDFDMDM4MDAwMUUwNzAw
MDAxRTBGMDAwMDBFMUUwMDAwMEUxRTAwMDAwRTNDMDAwMDBFM0MwMDAwMUU3
ODAwMDAKMUU3ODAwMDAxRTc4MDAwMDFFNzgwMDAwMUVGMDAwMDAzQ0YwMDAw
MDNDRjAwMDAwMzhGMDAwMDA3OEYwMDAwMDcwNzAwMDAwCkYwNzAwMDAwRTA3
MDBFMDFDMDc4MzAwMzgwMzg0MDg3MDAxQzQwOEUwMDFDNDA5QzAwMEU0MEYw
MDAwM0MxQzAyMDAwRkZDMAoyMDAwMDBDMDYwMDAwMEMwNDAwMDAwQzBDMDAw
MDBFMTgwMDAwMEZGODAwMDAwRkYwMDAwMDA3RTAwMDAwMDNDMDAxRjI5N0YK
OUYyND5JPDAxRkZGRjgwMDAxRTAwRjAwMDFFMDAzODAwMUUwMDFDMDAxRTAw
MUMwMDNDMDAxRTAwM0MwMDFFMDAzQzAwMUUKMDAzQzAwMUUwMDc4MDAzQzAw
NzgwMDNDMDA3ODAwNzgwMDc4MDBGMDAwRjAwMUMwMDBGMDA3MDAwMEZGRjgw
MDAwRjAwRTAwCjAxRTAwNzAwMDFFMDA3ODAwMUUwMDM4MDAxRTAwM0MwMDND
MDA3ODAwM0MwMDc4MDAzQzAwNzgwMDNDMDA3ODAwNzgwMEYwMAowNzgwMEYw
MjA3ODAwRjAyMDc4MDBGMDQwRjgwMDcwNEZGRjgwMzA4MDAwMDAxRjAxRjIw
N0U5RTIzPkk8MEZGRkZGRkMxRQowM0MwMzgxODAzQzAxODEwMDNDMDA4MjAw
M0MwMDgyMDA3ODAwODYwMDc4MDA4NDAwNzgwMDg0MDA3ODAwODgwMEYwMDEw
MDAKMEYwMDAwMDAwRjAwMDAwMDBGMDAwMDAwMUUwMDAwMDAxRTAwMDAwMDFF
MDAwMDAwMUUwMDAwMDAzQzAwMDAwMDNDMDAwMDAwCjNDMDAwMDAwM0MwMDAw
MDA3ODAwMDAwMDc4MDAwMDAwNzgwMDAwMDA3ODAwMDAwMEYwMDAwMDAwRjAw
MDAwMDBGMDAwMDAwMApGMDAwMDAwMUYwMDAwMDdGRkZDMDAwMUUxRjdGOUUx
Qj44NCBEPDAwN0ZGRkZFMDBGQzAwM0MwMEYwMDA3ODAwQzAwMEYwMDAKODAw
MUUwMDE4MDAzQzAwMTAwMDc4MDAxMDAwRjgwMDEwMDFGMDAwMjAwMUUwMDAw
MDAzQzAwMDAwMDc4MDAwMDAwRjAwMDAwCjAxRTAwMDAwMDNDMDAwMDAwNzgw
MDAwMDBGODAwMDAwMEYwMDAwMDAxRTAwMDAwMDNDMDA0MDAwNzgwMDQwMDBG
MDAwODAwMQpFMDAwODAwM0MwMDE4MDA3QzAwMTAwMEY4MDAzMDAwRjAwMDIw
MDFFMDAwNjAwM0MwMDFFMDA3ODAwN0MwMEZGRkZGQzAwMUYKMUY3RTlFMUY+
OTAgRDwwMEYxODAwMzg5QzAwNzA3ODAwRTAzODAxQzAzODAzQzAzODAzODA3
MDA3ODA3MDA3ODA3MDA3ODA3CjAwRjAwRTAwRjAwRTAwRjAwRTAwRjAwRTEw
RjAxQzIwRjAxQzIwNzAzQzIwNzA1QzQwMzA4QzQwMEYwNzgwMTQxNDdFOTMx
OAo+OTcgRDwwMDdDMDAwMUMzMDAwNzAwODAwRTA3ODAxRTA3ODAxQzA3MDAz
QzAyMDA3ODAwMDA3ODAwMDA3ODAwMDBGMDAwMDAKRjAwMDAwRjAwMDAwRjAw
MDAwRjAwMDAwNzAwMTAwNzAwMjAwMzAwNDAwMTgzODAwMEZDMDAwMTExNDdF
OTMxND45OQpEPDAwMDA3ODAwMDNGODAwMDA3MDAwMDA3MDAwMDA3MDAwMDA3
MDAwMDBFMDAwMDBFMDAwMDBFMDAwMDBFMDAwMDFDMDAwMDEKQzAwMEYxQzAw
Mzg5QzAwNzA3ODAwRTAzODAxQzAzODAzQzAzODAzODA3MDA3ODA3MDA3ODA3
MDA3ODA3MDBGMDBFMDBGMDBFCjAwRjAwRTAwRjAwRTEwRjAxQzIwRjAxQzIw
NzAzQzIwNzA1QzQwMzA4QzQwMEYwNzgwMTUyMDdFOUYxOD5JPDAwN0MwMTgy
CjA3MDEwRTAxMUMwMTNDMDEzODAyNzgwQzdCRjA3QzAwRjAwMEYwMDBGMDAw
RjAwMDcwMDA3MDAxNzAwMjMwMDQxODM4MEZDMAoxMDE0N0U5MzE1Pkk8MDAw
MDdDMDAwMENFMDAwMTlFMDAwMzlFMDAwMzBDMDAwNzAwMDAwNzAwMDAwNzAw
MDAwNzAwMDAwRQowMDAwMEUwMDAwMEUwMDAwRkZGMDAwMEUwMDAwMEUwMDAw
MUMwMDAwMUMwMDAwMUMwMDAwMUMwMDAwMUMwMDAwMzgwMDAwMzgKMDAwMDM4
MDAwMDM4MDAwMDM4MDAwMDcwMDAwMDcwMDAwMDcwMDAwMDcwMDAwMDcwMDAw
MEUwMDAwMEUwMDAwMEUwMDAwMEUwCjAwMDBDMDAwMDFDMDAwMzE4MDAwNzk4
MDAwRjMwMDAwNjIwMDAwM0MwMDAwMTcyOTdFOUYxNj5JPDFFMDc4MDIzMThD
MDIzCkEwNjA0M0MwNzA0MzgwNzA0MzgwNzA4NzAwRTAwNzAwRTAwNzAwRTAw
NzAwRTAwRTAxQzAwRTAxQzAwRTAxQzAwRTAzODIxQwowMzg0MUMwNzA0MUMw
NzA4MUMwMzA4MzgwMzEwMTgwMUUwMTcxNDdFOTMxQj4xMTAgRDwwM0MxRTAw
NDYyMTgwNDc0MUMwOAo3ODFDMDg3MDFFMDg3MDFFMTBFMDFFMDBFMDFFMDBF
MDFFMDBFMDFFMDFDMDNDMDFDMDNDMDFDMDNDMDFDMDM4MDM4MDc4MDMKODA3
MDAzODBFMDAzQzFDMDA3MjM4MDA3MUUwMDA3MDAwMDA3MDAwMDBFMDAwMDBF
MDAwMDBFMDAwMDBFMDAwMDFDMDAwMDFDCjAwMDBGRkMwMDAxNzFEODE5MzE3
PjExMiBEPDFDMUUwMDI2MjEwMDQ3NDM4MDQ3ODc4MDQ3MDc4MDQ3MDMwMDhF
MDAwMDBFCjAwMDAwRTAwMDAwRTAwMDAxQzAwMDAxQzAwMDAxQzAwMDAxQzAw
MDAzODAwMDAzODAwMDAzODAwMDAzODAwMDA3MDAwMDAzMAowMDAwMTExNDdF
OTMxNT4xMTQgRDwwMTgwMDFDMDAzODAwMzgwMDM4MDAzODAwNzAwMDcwMEZG
RjgwNzAwMEUwMDBFMDAwRQowMDBFMDAxQzAwMUMwMDFDMDAxQzAwMzgwMDM4
MDAzODAwMzgxMDcwMjA3MDIwNzA0MDcwODAzMTAwMUUwMDBEMUM3RjlCMTAK
PjExNiBEPDBGMDA2MDExODA3MDIxODBFMDIxQzBFMDQxQzBFMDQzODBFMDgz
ODFDMDA3MDFDMDA3MDFDMDA3MDFDMDBFMDMKODAwRTAzODAwRTAzODAwRTAz
O