delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2006/08/02/11:44:13

Message-ID: <20060802154317.28035.qmail@web33815.mail.mud.yahoo.com>
Date: Wed, 2 Aug 2006 08:43:17 -0700 (PDT)
From: "Frank C." <francisspeech AT yahoo DOT com>
Subject: Re: Help: gcc problem in Cygwin!
To: cygwin AT cygwin DOT com
In-Reply-To: <44D0B58D.60301@cygwin.com>
MIME-Version: 1.0
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Note-from-DJ: This may be spam

--0-1611111697-1154533397=:26067
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Content-Id: 
Content-Disposition: inline

Hi, Larry,

Thanks again for your suggestions!

Since I run './configure' first, and which generates
the makefile for 'make', I digged into the configure
file and found this:

--------------------------------------------------
  cygwin* | mingw* | pw32*)
    # When not using gcc, we currently assume that we
are using
    # Microsoft Visual C++.
    # hardcode_libdir_flag_spec is actually
meaningless, as there is
    # no search path for DLLs.
    hardcode_libdir_flag_spec=' '
    allow_undefined_flag=unsupported
    # Tell ltmain to make .lib files, not .a files.
    libext=lib
    # FIXME: Setting linknames here is a bad hack.
    archive_cmds='$CC -o $lib $libobjs $compiler_flags
`echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link
-dll~linknames='
    # The linker will automatically build a .lib file
if we build a DLL.
    old_archive_from_new_cmds='true'
    # FIXME: Should let the user specify the lib
program.
    old_archive_cmds='lib
/OUT:$oldlib$oldobjs$old_deplibs'
    fix_srcfile_path='`cygpath -w "$srcfile"`'
    ;;
-----------------------------------------------------

As you can see, the second to bottom line calls for
'cygpath', and the variable 'fix_srcfile_path' is
called later like this:

-----------------------------------------------------
# Fix the shell variable \$srcfile for the compiler.
fix_srcfile_path="$fix_srcfile_path"
-----------------------------------------------------

I couldn't find the definition of the shell variable
'$srcfile' through the whole file. Is it using a
default value or something like that? Do you think
this is the reason that 'cygpath' been invoked with an
empty path? If so, how to fix it? If not, what else? 

Really appreciate your time and help!
(BTW, I attach the configure file just in case you
want to take a look.)

Best,
Frank


--- "Larry Hall (Cygwin)"
<reply-to-list-only-lh AT cygwin DOT com> wrote:

> <http://cygwin.com/acronyms/#TOFU>.  Reformatted.
> 
> Frank C. wrote:
> > --- "Larry Hall (Cygwin)"
> > <reply-to-list-only-lh at cygwin dot com> wrote:
>     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> <http://cygwin.com/acronyms/#PCYMTNQREAIYR>. 
> Thanks.
> 
> > 
> >> Frank C. wrote:
> >>> Dear all,
> >>>
> >>> I've been trying to install a software on Cygwin
> >> under
> >>> Windows XP, but without any success. The steps
> are
> >> (1)
> >>> './configure', and (2) 'make'.
> >>>
> >>> I had following error message after running
> >> 'make'.
> >>> cygpath: can't convert empty path
> >>>
> >
>
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../libcygwin.a(libcmain.o)
> >>> :: undefined reference to '_WinMain AT 16'
> >>> collect2: ld returned 1 exit status
> >>> make: *** [libquicknet3.a] Error 1
> >>>
> >>>
> >>> Can anyone let me know what's wrong here? It
> seems
> >>> that there is a confusion on which linker to use
> >> for
> >>> gcc, and GNU ld is not on the path. I attach the
> >>> output from './configure' at the end. Do you
> think
> >> it
> >>> is related to those outputs? If so, how to fix
> it?
> >> If
> >>> not, what's the cause?
> >>> checking for ld used by GCC... ${CXX}
> >>> checking if the linker (${CXX}) is GNU ld... no
> >>>
> >>
> >>
> >> Make sure you've installed the 'binutils' package
> >> and that
> >> 'ld' from this package is in your path.  If this
> >> doesn't
> >> resolve the problem, then please read and follow
> the
> >> problem
> >> reporting guidelines found here:
> >>
> >>> Problem reports:      
> >> http://cygwin.com/problems.html
> >>
> >>
> >>
> >> -- 
> >> Larry Hall                             
> >> http://www.rfk.com
> >> RFK Partners, Inc.                      (508)
> >> 893-9779 - RFK Office
> >> 216 Dalton Rd.                          (508)
> >> 893-9889 - FAX
> >> Holliston, MA 01746
> >>
> >> --
> >> Unsubscribe info:     
> >> http://cygwin.com/ml/#unsubscribe-simple
> >> Problem reports:      
> >> http://cygwin.com/problems.html
> >> Documentation:        
> http://cygwin.com/docs.html
> >> FAQ:                   http://cygwin.com/faq/
> >>
> > Larry,
> > 
> > Thanks for your quick reply!
> > 
> > I installed the latest version of Cygwin, and
> almost
> > all packages which includes 'binutils' package. I
> > checked and found 'ld' in the path: (1)
> > cygwin\bin\ld.exe (678 kb), and (2)
> > cygwin\usr\i686-pc-cygwin\bin\ld.exe (1 kb). Is
> this
> > normal?
> 
> 
> Yes, that's normal.  The latter is a symbolic link
> to the former.
> 
> 
> > I did a quick search on the list and couldn't find
> > exact answer to my question.
> > 
> > Do you have any more thoughts? Thanks!
> 
> 
> OK, this looks like it must be a configure problem
> then.  'cygpath'
> is apparently being invoked by the script with an
> empty path.  If
> you can narrow down where in this script that this
> is happening,
> you should have more luck determining why this is
> the case and how
> to resolve it.  My WAG is that it's resolving some
> environment variable
> or path that doesn't actually exist.  But I can't
> say more without
> further details.
> 
> HTH,
> 
> 
> -- 
> Larry Hall                             
> http://www.rfk.com
> RFK Partners, Inc.                      (508)
> 893-9779 - RFK Office
> 216 Dalton Rd.                          (508)
> 893-9889 - FAX
> Holliston, MA 01746
> 
> --
> Unsubscribe info:     
> http://cygwin.com/ml/#unsubscribe-simple
> Problem reports:      
> http://cygwin.com/problems.html
> Documentation:         http://cygwin.com/docs.html
> FAQ:                   http://cygwin.com/faq/
> 
> 

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 
--0-1611111697-1154533397=:26067
Content-Type: application/octet-stream; name=configure
Content-Transfer-Encoding: base64
Content-Description: 2170792853-configure
Content-Disposition: attachment; filename=configure

IyEgL2Jpbi9zaAojIEd1ZXNzIHZhbHVlcyBmb3Igc3lzdGVtLWRlcGVuZGVu
dCB2YXJpYWJsZXMgYW5kIGNyZWF0ZSBNYWtlZmlsZXMuCiMgR2VuZXJhdGVk
IGJ5IEdOVSBBdXRvY29uZiAyLjU3IGZvciBRdWlja05ldCB2M18xMS4KIwoj
IFJlcG9ydCBidWdzIHRvIDxxdWlja25ldC1idWdzQElDU0kuQmVya2VsZXku
RURVPi4KIwojIENvcHlyaWdodCAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAx
OTk2LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyCiMgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiMgVGhpcyBjb25maWd1cmUgc2NyaXB0
IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24KIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0
cmlidXRlIGFuZCBtb2RpZnkgaXQuCiMjIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAjIwojIyBNNHNoIEluaXRpYWxpemF0aW9uLiAgIyMKIyMgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tICMjCgojIEJlIEJvdXJuZSBjb21wYXRpYmxlCmlmIHRl
c3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgJiYgKGVtdWxhdGUgc2gpID4v
ZGV2L251bGwgMj4mMTsgdGhlbgogIGVtdWxhdGUgc2gKICBOVUxMQ01EPToK
ICAjIFpzaCAzLnggYW5kIDQueCBwZXJmb3JtcyB3b3JkIHNwbGl0dGluZyBv
biAkezErIiRAIn0sIHdoaWNoCiAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNh
Z2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KICBhbGlhcyAtZyAnJHsxKyIk
QCJ9Jz0nIiRAIicKZWxpZiB0ZXN0IC1uICIke0JBU0hfVkVSU0lPTitzZXR9
IiAmJiAoc2V0IC1vIHBvc2l4KSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KICBz
ZXQgLW8gcG9zaXgKZmkKCiMgU3VwcG9ydCB1bnNldCB3aGVuIHBvc3NpYmxl
LgppZiAoRk9PPUZPTzsgdW5zZXQgRk9PKSA+L2Rldi9udWxsIDI+JjE7IHRo
ZW4KICBhc191bnNldD11bnNldAplbHNlCiAgYXNfdW5zZXQ9ZmFsc2UKZmkK
CgojIFdvcmsgYXJvdW5kIGJ1Z3MgaW4gcHJlLTMuMCBVV0lOIGtzaC4KJGFz
X3Vuc2V0IEVOViBNQUlMIE1BSUxQQVRIClBTMT0nJCAnClBTMj0nPiAnClBT
ND0nKyAnCgojIE5MUyBudWlzYW5jZXMuCmZvciBhc192YXIgaW4gXAogIExB
TkcgTEFOR1VBR0UgTENfQUREUkVTUyBMQ19BTEwgTENfQ09MTEFURSBMQ19D
VFlQRSBMQ19JREVOVElGSUNBVElPTiBcCiAgTENfTUVBU1VSRU1FTlQgTENf
TUVTU0FHRVMgTENfTU9ORVRBUlkgTENfTkFNRSBMQ19OVU1FUklDIExDX1BB
UEVSIFwKICBMQ19URUxFUEhPTkUgTENfVElNRQpkbwogIGlmIChzZXQgK3g7
IHRlc3QgLW4gImAoZXZhbCAkYXNfdmFyPUM7IGV4cG9ydCAkYXNfdmFyKSAy
PiYxYCIpOyB0aGVuCiAgICBldmFsICRhc192YXI9QzsgZXhwb3J0ICRhc192
YXIKICBlbHNlCiAgICAkYXNfdW5zZXQgJGFzX3ZhcgogIGZpCmRvbmUKCiMg
UmVxdWlyZWQgdG8gdXNlIGJhc2VuYW1lLgppZiBleHByIGEgOiAnXChhXCkn
ID4vZGV2L251bGwgMj4mMTsgdGhlbgogIGFzX2V4cHI9ZXhwcgplbHNlCiAg
YXNfZXhwcj1mYWxzZQpmaQoKaWYgKGJhc2VuYW1lIC8pID4vZGV2L251bGwg
Mj4mMSAmJiB0ZXN0ICJYYGJhc2VuYW1lIC8gMj4mMWAiID0gIlgvIjsgdGhl
bgogIGFzX2Jhc2VuYW1lPWJhc2VuYW1lCmVsc2UKICBhc19iYXNlbmFtZT1m
YWxzZQpmaQoKCiMgTmFtZSBvZiB0aGUgZXhlY3V0YWJsZS4KYXNfbWU9YCRh
c19iYXNlbmFtZSAiJDAiIHx8CiRhc19leHByIFgvIiQwIiA6ICcuKi9cKFte
L11bXi9dKlwpLyokJyBcfCBcCgkgWCIkMCIgOiAnWFwoLy9cKSQnIFx8IFwK
CSBYIiQwIiA6ICdYXCgvXCkkJyBcfCBcCgkgLiAgICAgOiAnXCguXCknIDI+
L2Rldi9udWxsIHx8CmVjaG8gWC8iJDAiIHwKICAgIHNlZCAnL14uKlwvXChb
Xi9dW14vXSpcKVwvKiQveyBzLy9cMS87IHE7IH0KICAJICAvXlhcL1woXC9c
L1wpJC97IHMvL1wxLzsgcTsgfQogIAkgIC9eWFwvXChcL1wpLioveyBzLy9c
MS87IHE7IH0KICAJICBzLy4qLy4vOyBxJ2AKCgojIFBBVEggbmVlZHMgQ1Is
IGFuZCBMSU5FTk8gbmVlZHMgQ1IgYW5kIFBBVEguCiMgQXZvaWQgZGVwZW5k
aW5nIHVwb24gQ2hhcmFjdGVyIFJhbmdlcy4KYXNfY3JfbGV0dGVycz0nYWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonCmFzX2NyX0xFVFRFUlM9J0FCQ0RF
RkdISUpLTE1OT1BRUlNUVVZXWFlaJwphc19jcl9MZXR0ZXJzPSRhc19jcl9s
ZXR0ZXJzJGFzX2NyX0xFVFRFUlMKYXNfY3JfZGlnaXRzPScwMTIzNDU2Nzg5
Jwphc19jcl9hbG51bT0kYXNfY3JfTGV0dGVycyRhc19jcl9kaWdpdHMKCiMg
VGhlIHVzZXIgaXMgYWx3YXlzIHJpZ2h0LgppZiB0ZXN0ICIke1BBVEhfU0VQ
QVJBVE9SK3NldH0iICE9IHNldDsgdGhlbgogIGVjaG8gIiMhIC9iaW4vc2gi
ID5jb25mJCQuc2gKICBlY2hvICAiZXhpdCAwIiAgID4+Y29uZiQkLnNoCiAg
Y2htb2QgK3ggY29uZiQkLnNoCiAgaWYgKFBBVEg9Ii9ub25leGlzdGVudDsu
IjsgY29uZiQkLnNoKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KICAgIFBBVEhf
U0VQQVJBVE9SPSc7JwogIGVsc2UKICAgIFBBVEhfU0VQQVJBVE9SPToKICBm
aQogIHJtIC1mIGNvbmYkJC5zaApmaQoKCiAgYXNfbGluZW5vXzE9JExJTkVO
TwogIGFzX2xpbmVub18yPSRMSU5FTk8KICBhc19saW5lbm9fMz1gKGV4cHIg
JGFzX2xpbmVub18xICsgMSkgMj4vZGV2L251bGxgCiAgdGVzdCAieCRhc19s
aW5lbm9fMSIgIT0gIngkYXNfbGluZW5vXzIiICYmCiAgdGVzdCAieCRhc19s
aW5lbm9fMyIgID0gIngkYXNfbGluZW5vXzIiICB8fCB7CiAgIyBGaW5kIHdo
byB3ZSBhcmUuICBMb29rIGluIHRoZSBwYXRoIGlmIHdlIGNvbnRhaW4gbm8g
cGF0aCBhdCBhbGwKICAjIHJlbGF0aXZlIG9yIG5vdC4KICBjYXNlICQwIGlu
CiAgICAqW1xcL10qICkgYXNfbXlzZWxmPSQwIDs7CiAgICAqKSBhc19zYXZl
X0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCmZvciBhc19kaXIgaW4g
JFBBVEgKZG8KICBJRlM9JGFzX3NhdmVfSUZTCiAgdGVzdCAteiAiJGFzX2Rp
ciIgJiYgYXNfZGlyPS4KICB0ZXN0IC1yICIkYXNfZGlyLyQwIiAmJiBhc19t
eXNlbGY9JGFzX2Rpci8kMCAmJiBicmVhawpkb25lCgogICAgICAgOzsKICBl
c2FjCiAgIyBXZSBkaWQgbm90IGZpbmQgb3Vyc2VsdmVzLCBtb3N0IHByb2Jh
Ymx5IHdlIHdlcmUgcnVuIGFzIGBzaCBDT01NQU5EJwogICMgaW4gd2hpY2gg
Y2FzZSB3ZSBhcmUgbm90IHRvIGJlIGZvdW5kIGluIHRoZSBwYXRoLgogIGlm
IHRlc3QgIngkYXNfbXlzZWxmIiA9IHg7IHRoZW4KICAgIGFzX215c2VsZj0k
MAogIGZpCiAgaWYgdGVzdCAhIC1mICIkYXNfbXlzZWxmIjsgdGhlbgogICAg
eyBlY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBteXNlbGY7IHJl
cnVuIHdpdGggYW4gYWJzb2x1dGUgcGF0aCIgPiYyCiAgIHsgKGV4aXQgMSk7
IGV4aXQgMTsgfTsgfQogIGZpCiAgY2FzZSAkQ09ORklHX1NIRUxMIGluCiAg
JycpCiAgICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9S
CmZvciBhc19kaXIgaW4gL2JpbiRQQVRIX1NFUEFSQVRPUi91c3IvYmluJFBB
VEhfU0VQQVJBVE9SJFBBVEgKZG8KICBJRlM9JGFzX3NhdmVfSUZTCiAgdGVz
dCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KICBmb3IgYXNfYmFzZSBpbiBz
aCBiYXNoIGtzaCBzaDU7IGRvCgkgY2FzZSAkYXNfZGlyIGluCgkgLyopCgkg
ICBpZiAoIiRhc19kaXIvJGFzX2Jhc2UiIC1jICcKICBhc19saW5lbm9fMT0k
TElORU5PCiAgYXNfbGluZW5vXzI9JExJTkVOTwogIGFzX2xpbmVub18zPWAo
ZXhwciAkYXNfbGluZW5vXzEgKyAxKSAyPi9kZXYvbnVsbGAKICB0ZXN0ICJ4
JGFzX2xpbmVub18xIiAhPSAieCRhc19saW5lbm9fMiIgJiYKICB0ZXN0ICJ4
JGFzX2xpbmVub18zIiAgPSAieCRhc19saW5lbm9fMiIgJykgMj4vZGV2L251
bGw7IHRoZW4KCSAgICAgJGFzX3Vuc2V0IEJBU0hfRU5WIHx8IHRlc3QgIiR7
QkFTSF9FTlYrc2V0fSIgIT0gc2V0IHx8IHsgQkFTSF9FTlY9OyBleHBvcnQg
QkFTSF9FTlY7IH0KCSAgICAgJGFzX3Vuc2V0IEVOViB8fCB0ZXN0ICIke0VO
VitzZXR9IiAhPSBzZXQgfHwgeyBFTlY9OyBleHBvcnQgRU5WOyB9CgkgICAg
IENPTkZJR19TSEVMTD0kYXNfZGlyLyRhc19iYXNlCgkgICAgIGV4cG9ydCBD
T05GSUdfU0hFTEwKCSAgICAgZXhlYyAiJENPTkZJR19TSEVMTCIgIiQwIiAk
ezErIiRAIn0KCSAgIGZpOzsKCSBlc2FjCiAgICAgICBkb25lCmRvbmUKOzsK
ICBlc2FjCgogICMgQ3JlYXRlICRhc19tZS5saW5lbm8gYXMgYSBjb3B5IG9m
ICRhc19teXNlbGYsIGJ1dCB3aXRoICRMSU5FTk8KICAjIHVuaWZvcm1seSBy
ZXBsYWNlZCBieSB0aGUgbGluZSBudW1iZXIuICBUaGUgZmlyc3QgJ3NlZCcg
aW5zZXJ0cyBhCiAgIyBsaW5lLW51bWJlciBsaW5lIGJlZm9yZSBlYWNoIGxp
bmU7IHRoZSBzZWNvbmQgJ3NlZCcgZG9lcyB0aGUgcmVhbAogICMgd29yay4g
IFRoZSBzZWNvbmQgc2NyaXB0IHVzZXMgJ04nIHRvIHBhaXIgZWFjaCBsaW5l
LW51bWJlciBsaW5lCiAgIyB3aXRoIHRoZSBudW1iZXJlZCBsaW5lLCBhbmQg
YXBwZW5kcyB0cmFpbGluZyAnLScgZHVyaW5nCiAgIyBzdWJzdGl0dXRpb24g
c28gdGhhdCAkTElORU5PIGlzIG5vdCBhIHNwZWNpYWwgY2FzZSBhdCBsaW5l
IGVuZC4KICAjIChSYWphIFIgSGFyaW5hdGggc3VnZ2VzdGVkIHNlZCAnPScs
IGFuZCBQYXVsIEVnZ2VydCB3cm90ZSB0aGUKICAjIHNlY29uZCAnc2VkJyBz
Y3JpcHQuICBCbGFtZSBMZWUgRS4gTWNNYWhvbiBmb3Igc2VkJ3Mgc3ludGF4
LiAgOi0pCiAgc2VkICc9JyA8JGFzX215c2VsZiB8CiAgICBzZWQgJwogICAg
ICBOCiAgICAgIHMsJCwtLAogICAgICA6IGxvb3AKICAgICAgcyxeXChbJyRh
c19jcl9kaWdpdHMnXSpcKVwoLipcKVskXUxJTkVOT1woW14nJGFzX2NyX2Fs
bnVtJ19dXCksXDFcMlwxXDMsCiAgICAgIHQgbG9vcAogICAgICBzLC0kLCwK
ICAgICAgcyxeWyckYXNfY3JfZGlnaXRzJ10qXG4sLAogICAgJyA+JGFzX21l
LmxpbmVubyAmJgogIGNobW9kICt4ICRhc19tZS5saW5lbm8gfHwKICAgIHsg
ZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSAkYXNfbWUubGlu
ZW5vOyByZXJ1biB3aXRoIGEgUE9TSVggc2hlbGwiID4mMgogICB7IChleGl0
IDEpOyBleGl0IDE7IH07IH0KCiAgIyBEb24ndCB0cnkgdG8gZXhlYyBhcyBp
dCBjaGFuZ2VzICRbMF0sIGNhdXNpbmcgYWxsIHNvcnQgb2YgcHJvYmxlbXMK
ICAjICh0aGUgZGlybmFtZSBvZiAkWzBdIGlzIG5vdCB0aGUgcGxhY2Ugd2hl
cmUgd2UgbWlnaHQgZmluZCB0aGUKICAjIG9yaWdpbmFsIGFuZCBzbyBvbi4g
IEF1dG9jb25mIGlzIGVzcGVjaWFsbHkgc2Vuc2libGUgdG8gdGhpcykuCiAg
LiAuLyRhc19tZS5saW5lbm8KICAjIEV4aXQgc3RhdHVzIGlzIHRoYXQgb2Yg
dGhlIGxhc3QgY29tbWFuZC4KICBleGl0Cn0KCgpjYXNlIGBlY2hvICJ0ZXN0
aW5nXGMiOyBlY2hvIDEsMiwzYCxgZWNobyAtbiB0ZXN0aW5nOyBlY2hvIDEs
MiwzYCBpbgogICpjKiwtbiopIEVDSE9fTj0gRUNIT19DPScKJyBFQ0hPX1Q9
JwknIDs7CiAgKmMqLCogICkgRUNIT19OPS1uIEVDSE9fQz0gRUNIT19UPSA7
OwogICopICAgICAgIEVDSE9fTj0gRUNIT19DPSdcYycgRUNIT19UPSA7Owpl
c2FjCgppZiBleHByIGEgOiAnXChhXCknID4vZGV2L251bGwgMj4mMTsgdGhl
bgogIGFzX2V4cHI9ZXhwcgplbHNlCiAgYXNfZXhwcj1mYWxzZQpmaQoKcm0g
LWYgY29uZiQkIGNvbmYkJC5leGUgY29uZiQkLmZpbGUKZWNobyA+Y29uZiQk
LmZpbGUKaWYgbG4gLXMgY29uZiQkLmZpbGUgY29uZiQkIDI+L2Rldi9udWxs
OyB0aGVuCiAgIyBXZSBjb3VsZCBqdXN0IGNoZWNrIGZvciBESkdQUDsgYnV0
IHRoaXMgdGVzdCBhKSB3b3JrcyBiKSBpcyBtb3JlIGdlbmVyaWMKICAjIGFu
ZCBjKSB3aWxsIHJlbWFpbiB2YWxpZCBvbmNlIERKR1BQIHN1cHBvcnRzIHN5
bWxpbmtzIChESkdQUCAyLjA0KS4KICBpZiB0ZXN0IC1mIGNvbmYkJC5leGU7
IHRoZW4KICAgICMgRG9uJ3QgdXNlIGxuIGF0IGFsbDsgd2UgZG9uJ3QgaGF2
ZSBhbnkgbGlua3MKICAgIGFzX2xuX3M9J2NwIC1wJwogIGVsc2UKICAgIGFz
X2xuX3M9J2xuIC1zJwogIGZpCmVsaWYgbG4gY29uZiQkLmZpbGUgY29uZiQk
IDI+L2Rldi9udWxsOyB0aGVuCiAgYXNfbG5fcz1sbgplbHNlCiAgYXNfbG5f
cz0nY3AgLXAnCmZpCnJtIC1mIGNvbmYkJCBjb25mJCQuZXhlIGNvbmYkJC5m
aWxlCgppZiBta2RpciAtcCAuIDI+L2Rldi9udWxsOyB0aGVuCiAgYXNfbWtk
aXJfcD06CmVsc2UKICBhc19ta2Rpcl9wPWZhbHNlCmZpCgphc19leGVjdXRh
YmxlX3A9InRlc3QgLWYiCgojIFNlZCBleHByZXNzaW9uIHRvIG1hcCBhIHN0
cmluZyBvbnRvIGEgdmFsaWQgQ1BQIG5hbWUuCmFzX3RyX2NwcD0ic2VkIHkl
KiRhc19jcl9sZXR0ZXJzJVAkYXNfY3JfTEVUVEVSUyU7cyVbXl8kYXNfY3Jf
YWxudW1dJV8lZyIKCiMgU2VkIGV4cHJlc3Npb24gdG8gbWFwIGEgc3RyaW5n
IG9udG8gYSB2YWxpZCB2YXJpYWJsZSBuYW1lLgphc190cl9zaD0ic2VkIHkl
KislcHAlO3MlW15fJGFzX2NyX2FsbnVtXSVfJWciCgoKIyBJRlMKIyBXZSBu
ZWVkIHNwYWNlLCB0YWIgYW5kIG5ldyBsaW5lLCBpbiBwcmVjaXNlbHkgdGhh
dCBvcmRlci4KYXNfbmw9JwonCklGUz0iIAkkYXNfbmwiCgojIENEUEFUSC4K
JGFzX3Vuc2V0IENEUEFUSAoKCiMgRmluZCB0aGUgY29ycmVjdCBQQVRIIHNl
cGFyYXRvci4gIFVzdWFsbHkgdGhpcyBpcyBgOicsIGJ1dAojIERKR1BQIHVz
ZXMgYDsnIGxpa2UgRE9TLgppZiB0ZXN0ICJYJHtQQVRIX1NFUEFSQVRPUitz
ZXR9IiAhPSBYc2V0OyB0aGVuCiAgVU5BTUU9JHtVTkFNRS1gdW5hbWUgMj4v
ZGV2L251bGxgfQogIGNhc2UgWCRVTkFNRSBpbgogICAgKi1ET1MpIGx0X2N2
X3N5c19wYXRoX3NlcGFyYXRvcj0nOycgOzsKICAgICopICAgICBsdF9jdl9z
eXNfcGF0aF9zZXBhcmF0b3I9JzonIDs7CiAgZXNhYwogIFBBVEhfU0VQQVJB
VE9SPSRsdF9jdl9zeXNfcGF0aF9zZXBhcmF0b3IKZmkKCgojIENoZWNrIHRo
YXQgd2UgYXJlIHJ1bm5pbmcgdW5kZXIgdGhlIGNvcnJlY3Qgc2hlbGwuClNI
RUxMPSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9CgpjYXNlIFgkRUNITyBpbgpY
Ki0tZmFsbGJhY2stZWNobykKICAjIFJlbW92ZSBvbmUgbGV2ZWwgb2YgcXVv
dGF0aW9uICh3aGljaCB3YXMgcmVxdWlyZWQgZm9yIE1ha2UpLgogIEVDSE89
YGVjaG8gIiRFQ0hPIiB8IHNlZCAncyxcXFxcXCRcXCQwLCckMCcsJ2AKICA7
Owplc2FjCgplY2hvPSR7RUNITy1lY2hvfQppZiB0ZXN0ICJYJDEiID0gWC0t
bm8tcmVleGVjOyB0aGVuCiAgIyBEaXNjYXJkIHRoZSAtLW5vLXJlZXhlYyBm
bGFnLCBhbmQgY29udGludWUuCiAgc2hpZnQKZWxpZiB0ZXN0ICJYJDEiID0g
WC0tZmFsbGJhY2stZWNobzsgdGhlbgogICMgQXZvaWQgaW5saW5lIGRvY3Vt
ZW50IGhlcmUsIGl0IG1heSBiZSBsZWZ0IG92ZXIKICA6CmVsaWYgdGVzdCAi
WGAoJGVjaG8gJ1x0JykgMj4vZGV2L251bGxgIiA9ICdYXHQnOyB0aGVuCiAg
IyBZaXBwZWUsICRlY2hvIHdvcmtzIQogIDoKZWxzZQogICMgUmVzdGFydCB1
bmRlciB0aGUgY29ycmVjdCBzaGVsbC4KICBleGVjICRTSEVMTCAiJDAiIC0t
bm8tcmVleGVjICR7MSsiJEAifQpmaQoKaWYgdGVzdCAiWCQxIiA9IFgtLWZh
bGxiYWNrLWVjaG87IHRoZW4KICAjIHVzZWQgYXMgZmFsbGJhY2sgZWNobwog
IHNoaWZ0CiAgY2F0IDw8RU9GCgpFT0YKICBleGl0IDAKZmkKCiMgVGhlIEhQ
LVVYIGtzaCBhbmQgUE9TSVggc2hlbGwgcHJpbnQgdGhlIHRhcmdldCBkaXJl
Y3RvcnkgdG8gc3Rkb3V0CiMgaWYgQ0RQQVRIIGlzIHNldC4KaWYgdGVzdCAi
WCR7Q0RQQVRIK3NldH0iID0gWHNldDsgdGhlbiBDRFBBVEg9OjsgZXhwb3J0
IENEUEFUSDsgZmkKCmlmIHRlc3QgLXogIiRFQ0hPIjsgdGhlbgppZiB0ZXN0
ICJYJHtlY2hvX3Rlc3Rfc3RyaW5nK3NldH0iICE9IFhzZXQ7IHRoZW4KIyBm
aW5kIGEgc3RyaW5nIGFzIGxhcmdlIGFzIHBvc3NpYmxlLCBhcyBsb25nIGFz
IHRoZSBzaGVsbCBjYW4gY29wZSB3aXRoIGl0CiAgZm9yIGNtZCBpbiAnc2Vk
IDUwcSAiJDAiJyAnc2VkIDIwcSAiJDAiJyAnc2VkIDEwcSAiJDAiJyAnc2Vk
IDJxICIkMCInICdlY2hvIHRlc3QnOyBkbwogICAgIyBleHBlY3RlZCBzaXpl
czogbGVzcyB0aGFuIDJLYiwgMUtiLCA1MTIgYnl0ZXMsIDE2IGJ5dGVzLCAu
Li4KICAgIGlmIChlY2hvX3Rlc3Rfc3RyaW5nPSJgZXZhbCAkY21kYCIpIDI+
L2Rldi9udWxsICYmCiAgICAgICBlY2hvX3Rlc3Rfc3RyaW5nPSJgZXZhbCAk
Y21kYCIgJiYKICAgICAgICh0ZXN0ICJYJGVjaG9fdGVzdF9zdHJpbmciID0g
IlgkZWNob190ZXN0X3N0cmluZyIpIDI+L2Rldi9udWxsCiAgICB0aGVuCiAg
ICAgIGJyZWFrCiAgICBmaQogIGRvbmUKZmkKCmlmIHRlc3QgIlhgKCRlY2hv
ICdcdCcpIDI+L2Rldi9udWxsYCIgPSAnWFx0JyAmJgogICBlY2hvX3Rlc3Rp
bmdfc3RyaW5nPWAoJGVjaG8gIiRlY2hvX3Rlc3Rfc3RyaW5nIikgMj4vZGV2
L251bGxgICYmCiAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAi
WCRlY2hvX3Rlc3Rfc3RyaW5nIjsgdGhlbgogIDoKZWxzZQogICMgVGhlIFNv
bGFyaXMsIEFJWCwgYW5kIERpZ2l0YWwgVW5peCBkZWZhdWx0IGVjaG8gcHJv
Z3JhbXMgdW5xdW90ZQogICMgYmFja3NsYXNoZXMuICBUaGlzIG1ha2VzIGl0
IGltcG9zc2libGUgdG8gcXVvdGUgYmFja3NsYXNoZXMgdXNpbmcKICAjICAg
ZWNobyAiJHNvbWV0aGluZyIgfCBzZWQgJ3MvXFwvXFxcXC9nJwogICMKICAj
IFNvLCBmaXJzdCB3ZSBsb29rIGZvciBhIHdvcmtpbmcgZWNobyBpbiB0aGUg
dXNlcidzIFBBVEguCgogIElGUz0iJHtJRlM9IAl9Ijsgc2F2ZV9pZnM9IiRJ
RlMiOyBJRlM9JFBBVEhfU0VQQVJBVE9SCiAgZm9yIGRpciBpbiAkUEFUSCAv
dXNyL3VjYjsgZG8KICAgIGlmICh0ZXN0IC1mICRkaXIvZWNobyB8fCB0ZXN0
IC1mICRkaXIvZWNobyRhY19leGVleHQpICYmCiAgICAgICB0ZXN0ICJYYCgk
ZGlyL2VjaG8gJ1x0JykgMj4vZGV2L251bGxgIiA9ICdYXHQnICYmCiAgICAg
ICBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJGRpci9lY2hvICIkZWNob190ZXN0
X3N0cmluZyIpIDI+L2Rldi9udWxsYCAmJgogICAgICAgdGVzdCAiWCRlY2hv
X3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVu
CiAgICAgIGVjaG89IiRkaXIvZWNobyIKICAgICAgYnJlYWsKICAgIGZpCiAg
ZG9uZQogIElGUz0iJHNhdmVfaWZzIgoKICBpZiB0ZXN0ICJYJGVjaG8iID0g
WGVjaG87IHRoZW4KICAgICMgV2UgZGlkbid0IGZpbmQgYSBiZXR0ZXIgZWNo
bywgc28gbG9vayBmb3IgYWx0ZXJuYXRpdmVzLgogICAgaWYgdGVzdCAiWGAo
cHJpbnQgLXIgJ1x0JykgMj4vZGV2L251bGxgIiA9ICdYXHQnICYmCiAgICAg
ICBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAocHJpbnQgLXIgIiRlY2hvX3Rlc3Rf
c3RyaW5nIikgMj4vZGV2L251bGxgICYmCiAgICAgICB0ZXN0ICJYJGVjaG9f
dGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4K
ICAgICAgIyBUaGlzIHNoZWxsIGhhcyBhIGJ1aWx0aW4gcHJpbnQgLXIgdGhh
dCBkb2VzIHRoZSB0cmljay4KICAgICAgZWNobz0ncHJpbnQgLXInCiAgICBl
bGlmICh0ZXN0IC1mIC9iaW4va3NoIHx8IHRlc3QgLWYgL2Jpbi9rc2gkYWNf
ZXhlZXh0KSAmJgoJIHRlc3QgIlgkQ09ORklHX1NIRUxMIiAhPSBYL2Jpbi9r
c2g7IHRoZW4KICAgICAgIyBJZiB3ZSBoYXZlIGtzaCwgdHJ5IHJ1bm5pbmcg
Y29uZmlndXJlIGFnYWluIHdpdGggaXQuCiAgICAgIE9SSUdJTkFMX0NPTkZJ
R19TSEVMTD0ke0NPTkZJR19TSEVMTC0vYmluL3NofQogICAgICBleHBvcnQg
T1JJR0lOQUxfQ09ORklHX1NIRUxMCiAgICAgIENPTkZJR19TSEVMTD0vYmlu
L2tzaAogICAgICBleHBvcnQgQ09ORklHX1NIRUxMCiAgICAgIGV4ZWMgJENP
TkZJR19TSEVMTCAiJDAiIC0tbm8tcmVleGVjICR7MSsiJEAifQogICAgZWxz
ZQogICAgICAjIFRyeSB1c2luZyBwcmludGYuCiAgICAgIGVjaG89J3ByaW50
ZiAlc1xuJwogICAgICBpZiB0ZXN0ICJYYCgkZWNobyAnXHQnKSAyPi9kZXYv
bnVsbGAiID0gJ1hcdCcgJiYKCSBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJGVj
aG8gIiRlY2hvX3Rlc3Rfc3RyaW5nIikgMj4vZGV2L251bGxgICYmCgkgdGVz
dCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJp
bmciOyB0aGVuCgkjIENvb2wsIHByaW50ZiB3b3JrcwoJOgogICAgICBlbGlm
IGVjaG9fdGVzdGluZ19zdHJpbmc9YCgkT1JJR0lOQUxfQ09ORklHX1NIRUxM
ICIkMCIgLS1mYWxsYmFjay1lY2hvICdcdCcpIDI+L2Rldi9udWxsYCAmJgoJ
ICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICdYXHQnICYmCgkg
ICBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJE9SSUdJTkFMX0NPTkZJR19TSEVM
TCAiJDAiIC0tZmFsbGJhY2stZWNobyAiJGVjaG9fdGVzdF9zdHJpbmciKSAy
Pi9kZXYvbnVsbGAgJiYKCSAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmlu
ZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgdGhlbgoJQ09ORklHX1NIRUxM
PSRPUklHSU5BTF9DT05GSUdfU0hFTEwKCWV4cG9ydCBDT05GSUdfU0hFTEwK
CVNIRUxMPSIkQ09ORklHX1NIRUxMIgoJZXhwb3J0IFNIRUxMCgllY2hvPSIk
Q09ORklHX1NIRUxMICQwIC0tZmFsbGJhY2stZWNobyIKICAgICAgZWxpZiBl
Y2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJENPTkZJR19TSEVMTCAiJDAiIC0tZmFs
bGJhY2stZWNobyAnXHQnKSAyPi9kZXYvbnVsbGAgJiYKCSAgIHRlc3QgIlgk
ZWNob190ZXN0aW5nX3N0cmluZyIgPSAnWFx0JyAmJgoJICAgZWNob190ZXN0
aW5nX3N0cmluZz1gKCRDT05GSUdfU0hFTEwgIiQwIiAtLWZhbGxiYWNrLWVj
aG8gIiRlY2hvX3Rlc3Rfc3RyaW5nIikgMj4vZGV2L251bGxgICYmCgkgICB0
ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0
cmluZyI7IHRoZW4KCWVjaG89IiRDT05GSUdfU0hFTEwgJDAgLS1mYWxsYmFj
ay1lY2hvIgogICAgICBlbHNlCgkjIG1heWJlIHdpdGggYSBzbWFsbGVyIHN0
cmluZy4uLgoJcHJldj06CgoJZm9yIGNtZCBpbiAnZWNobyB0ZXN0JyAnc2Vk
IDJxICIkMCInICdzZWQgMTBxICIkMCInICdzZWQgMjBxICIkMCInICdzZWQg
NTBxICIkMCInOyBkbwoJICBpZiAodGVzdCAiWCRlY2hvX3Rlc3Rfc3RyaW5n
IiA9ICJYYGV2YWwgJGNtZGAiKSAyPi9kZXYvbnVsbAoJICB0aGVuCgkgICAg
YnJlYWsKCSAgZmkKCSAgcHJldj0iJGNtZCIKCWRvbmUKCglpZiB0ZXN0ICIk
cHJldiIgIT0gJ3NlZCA1MHEgIiQwIic7IHRoZW4KCSAgZWNob190ZXN0X3N0
cmluZz1gZXZhbCAkcHJldmAKCSAgZXhwb3J0IGVjaG9fdGVzdF9zdHJpbmcK
CSAgZXhlYyAke09SSUdJTkFMX0NPTkZJR19TSEVMTC0ke0NPTkZJR19TSEVM
TC0vYmluL3NofX0gIiQwIiAkezErIiRAIn0KCWVsc2UKCSAgIyBPb3BzLiAg
V2UgbG9zdCBjb21wbGV0ZWx5LCBzbyBqdXN0IHN0aWNrIHdpdGggZWNoby4K
CSAgZWNobz1lY2hvCglmaQogICAgICBmaQogICAgZmkKICBmaQpmaQpmaQoK
IyBDb3B5IGVjaG8gYW5kIHF1b3RlIHRoZSBjb3B5IHN1aXRhYmx5IGZvciBw
YXNzaW5nIHRvIGxpYnRvb2wgZnJvbQojIHRoZSBNYWtlZmlsZSwgaW5zdGVh
ZCBvZiBxdW90aW5nIHRoZSBvcmlnaW5hbCwgd2hpY2ggaXMgdXNlZCBsYXRl
ci4KRUNITz0kZWNobwppZiB0ZXN0ICJYJEVDSE8iID0gIlgkQ09ORklHX1NI
RUxMICQwIC0tZmFsbGJhY2stZWNobyI7IHRoZW4KICAgRUNITz0iJENPTkZJ
R19TSEVMTCBcXFwkXCQwIC0tZmFsbGJhY2stZWNobyIKZmkKCgoKIyBOYW1l
IG9mIHRoZSBob3N0LgojIGhvc3RuYW1lIG9uIHNvbWUgc3lzdGVtcyAoU1ZS
My4yLCBMaW51eCkgcmV0dXJucyBhIGJvZ3VzIGV4aXQgc3RhdHVzLAojIHNv
IHVuYW1lIGdldHMgcnVuIHRvby4KYWNfaG9zdG5hbWU9YChob3N0bmFtZSB8
fCB1bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQgMXFgCgpleGVjIDY+JjEK
CiMKIyBJbml0aWFsaXphdGlvbnMuCiMKYWNfZGVmYXVsdF9wcmVmaXg9L3Vz
ci9sb2NhbAphY19jb25maWdfbGlib2JqX2Rpcj0uCmNyb3NzX2NvbXBpbGlu
Zz1ubwpzdWJkaXJzPQpNRkxBR1M9Ck1BS0VGTEFHUz0KU0hFTEw9JHtDT05G
SUdfU0hFTEwtL2Jpbi9zaH0KCiMgTWF4aW11bSBudW1iZXIgb2YgbGluZXMg
dG8gcHV0IGluIGEgc2hlbGwgaGVyZSBkb2N1bWVudC4KIyBUaGlzIHZhcmlh
YmxlIHNlZW1zIG9ic29sZXRlLiAgSXQgc2hvdWxkIHByb2JhYmx5IGJlIHJl
bW92ZWQsIGFuZAojIG9ubHkgYWNfbWF4X3NlZF9saW5lcyBzaG91bGQgYmUg
dXNlZC4KOiAke2FjX21heF9oZXJlX2xpbmVzPTM4fQoKIyBJZGVudGl0eSBv
ZiB0aGlzIHBhY2thZ2UuClBBQ0tBR0VfTkFNRT0nUXVpY2tOZXQnClBBQ0tB
R0VfVEFSTkFNRT0ncXVpY2tuZXQnClBBQ0tBR0VfVkVSU0lPTj0ndjNfMTEn
ClBBQ0tBR0VfU1RSSU5HPSdRdWlja05ldCB2M18xMScKUEFDS0FHRV9CVUdS
RVBPUlQ9J3F1aWNrbmV0LWJ1Z3NASUNTSS5CZXJrZWxleS5FRFUnCgphY191
bmlxdWVfZmlsZT0iUXVpY2tOZXQuaCIKYWNfZGVmYXVsdF9wcmVmaXg9L3Vz
ci9sb2NhbAojIEZhY3RvcmluZyBkZWZhdWx0IGhlYWRlcnMgZm9yIG1vc3Qg
dGVzdHMuCmFjX2luY2x1ZGVzX2RlZmF1bHQ9IlwKI2luY2x1ZGUgPHN0ZGlv
Lmg+CiNpZiBIQVZFX1NZU19UWVBFU19ICiMgaW5jbHVkZSA8c3lzL3R5cGVz
Lmg+CiNlbmRpZgojaWYgSEFWRV9TWVNfU1RBVF9ICiMgaW5jbHVkZSA8c3lz
L3N0YXQuaD4KI2VuZGlmCiNpZiBTVERDX0hFQURFUlMKIyBpbmNsdWRlIDxz
dGRsaWIuaD4KIyBpbmNsdWRlIDxzdGRkZWYuaD4KI2Vsc2UKIyBpZiBIQVZF
X1NURExJQl9ICiMgIGluY2x1ZGUgPHN0ZGxpYi5oPgojIGVuZGlmCiNlbmRp
ZgojaWYgSEFWRV9TVFJJTkdfSAojIGlmICFTVERDX0hFQURFUlMgJiYgSEFW
RV9NRU1PUllfSAojICBpbmNsdWRlIDxtZW1vcnkuaD4KIyBlbmRpZgojIGlu
Y2x1ZGUgPHN0cmluZy5oPgojZW5kaWYKI2lmIEhBVkVfU1RSSU5HU19ICiMg
aW5jbHVkZSA8c3RyaW5ncy5oPgojZW5kaWYKI2lmIEhBVkVfSU5UVFlQRVNf
SAojIGluY2x1ZGUgPGludHR5cGVzLmg+CiNlbHNlCiMgaWYgSEFWRV9TVERJ
TlRfSAojICBpbmNsdWRlIDxzdGRpbnQuaD4KIyBlbmRpZgojZW5kaWYKI2lm
IEhBVkVfVU5JU1REX0gKIyBpbmNsdWRlIDx1bmlzdGQuaD4KI2VuZGlmIgoK
YWNfc3Vic3RfdmFycz0nU0hFTEwgUEFUSF9TRVBBUkFUT1IgUEFDS0FHRV9O
QU1FIFBBQ0tBR0VfVEFSTkFNRSBQQUNLQUdFX1ZFUlNJT04gUEFDS0FHRV9T
VFJJTkcgUEFDS0FHRV9CVUdSRVBPUlQgZXhlY19wcmVmaXggcHJlZml4IHBy
b2dyYW1fdHJhbnNmb3JtX25hbWUgYmluZGlyIHNiaW5kaXIgbGliZXhlY2Rp
ciBkYXRhZGlyIHN5c2NvbmZkaXIgc2hhcmVkc3RhdGVkaXIgbG9jYWxzdGF0
ZWRpciBsaWJkaXIgaW5jbHVkZWRpciBvbGRpbmNsdWRlZGlyIGluZm9kaXIg
bWFuZGlyIGJ1aWxkX2FsaWFzIGhvc3RfYWxpYXMgdGFyZ2V0X2FsaWFzIERF
RlMgRUNIT19DIEVDSE9fTiBFQ0hPX1QgTElCUyBidWlsZCBidWlsZF9jcHUg
YnVpbGRfdmVuZG9yIGJ1aWxkX29zIGhvc3QgaG9zdF9jcHUgaG9zdF92ZW5k
b3IgaG9zdF9vcyB0YXJnZXQgdGFyZ2V0X2NwdSB0YXJnZXRfdmVuZG9yIHRh
cmdldF9vcyBMRCBDQyBDRkxBR1MgTERGTEFHUyBDUFBGTEFHUyBhY19jdF9D
QyBFWEVFWFQgT0JKRVhUIENYWCBDWFhGTEFHUyBhY19jdF9DWFggSU5TVEFM
TF9QUk9HUkFNIElOU1RBTExfU0NSSVBUIElOU1RBTExfREFUQSBSQU5MSUIg
YWNfY3RfUkFOTElCIExOX1MgRUNITyBTVFJJUCBhY19jdF9TVFJJUCBDUFAg
RUdSRVAgTElCVE9PTCBQS0dfQ09ORklHIFJUU1RfQ0ZMQUdTIFJUU1RfTElC
UyBoYXZlX2xpYnJ0c3QgZGVmYXVsdF9tbHAzX2JsYXMgSU5DUyB0ZXN0ZGF0
YV9kaXIgYWxsX2xpYnMgUU5fQlVJTERfTElCX1NQRUMgUU5fSU5TVEFMTF9M
SUJfU1BFQyBRTl9CVUlMRF9JTkNfU1BFQyBRTl9JTlNUQUxMX0lOQ19TUEVD
IFFOX1NSQ0RJUiBMSUJPQkpTIExUTElCT0JKUycKYWNfc3Vic3RfZmlsZXM9
JycKCiMgSW5pdGlhbGl6ZSBzb21lIHZhcmlhYmxlcyBzZXQgYnkgb3B0aW9u
cy4KYWNfaW5pdF9oZWxwPQphY19pbml0X3ZlcnNpb249ZmFsc2UKIyBUaGUg
dmFyaWFibGVzIGhhdmUgdGhlIHNhbWUgbmFtZXMgYXMgdGhlIG9wdGlvbnMs
IHdpdGgKIyBkYXNoZXMgY2hhbmdlZCB0byB1bmRlcmxpbmVzLgpjYWNoZV9m
aWxlPS9kZXYvbnVsbApleGVjX3ByZWZpeD1OT05FCm5vX2NyZWF0ZT0Kbm9f
cmVjdXJzaW9uPQpwcmVmaXg9Tk9ORQpwcm9ncmFtX3ByZWZpeD1OT05FCnBy
b2dyYW1fc3VmZml4PU5PTkUKcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT1zLHgs
eCwKc2lsZW50PQpzaXRlPQpzcmNkaXI9CnZlcmJvc2U9CnhfaW5jbHVkZXM9
Tk9ORQp4X2xpYnJhcmllcz1OT05FCgojIEluc3RhbGxhdGlvbiBkaXJlY3Rv
cnkgb3B0aW9ucy4KIyBUaGVzZSBhcmUgbGVmdCB1bmV4cGFuZGVkIHNvIHVz
ZXJzIGNhbiAibWFrZSBpbnN0YWxsIGV4ZWNfcHJlZml4PS9mb28iCiMgYW5k
IGFsbCB0aGUgdmFyaWFibGVzIHRoYXQgYXJlIHN1cHBvc2VkIHRvIGJlIGJh
c2VkIG9uIGV4ZWNfcHJlZml4CiMgYnkgZGVmYXVsdCB3aWxsIGFjdHVhbGx5
IGNoYW5nZS4KIyBVc2UgYnJhY2VzIGluc3RlYWQgb2YgcGFyZW5zIGJlY2F1
c2Ugc2gsIHBlcmwsIGV0Yy4gYWxzbyBhY2NlcHQgdGhlbS4KYmluZGlyPSck
e2V4ZWNfcHJlZml4fS9iaW4nCnNiaW5kaXI9JyR7ZXhlY19wcmVmaXh9L3Ni
aW4nCmxpYmV4ZWNkaXI9JyR7ZXhlY19wcmVmaXh9L2xpYmV4ZWMnCmRhdGFk
aXI9JyR7cHJlZml4fS9zaGFyZScKc3lzY29uZmRpcj0nJHtwcmVmaXh9L2V0
YycKc2hhcmVkc3RhdGVkaXI9JyR7cHJlZml4fS9jb20nCmxvY2Fsc3RhdGVk
aXI9JyR7cHJlZml4fS92YXInCmxpYmRpcj0nJHtleGVjX3ByZWZpeH0vbGli
JwppbmNsdWRlZGlyPScke3ByZWZpeH0vaW5jbHVkZScKb2xkaW5jbHVkZWRp
cj0nL3Vzci9pbmNsdWRlJwppbmZvZGlyPScke3ByZWZpeH0vaW5mbycKbWFu
ZGlyPScke3ByZWZpeH0vbWFuJwoKYWNfcHJldj0KZm9yIGFjX29wdGlvbgpk
bwogICMgSWYgdGhlIHByZXZpb3VzIG9wdGlvbiBuZWVkcyBhbiBhcmd1bWVu
dCwgYXNzaWduIGl0LgogIGlmIHRlc3QgLW4gIiRhY19wcmV2IjsgdGhlbgog
ICAgZXZhbCAiJGFjX3ByZXY9XCRhY19vcHRpb24iCiAgICBhY19wcmV2PQog
ICAgY29udGludWUKICBmaQoKICBhY19vcHRhcmc9YGV4cHIgIngkYWNfb3B0
aW9uIiA6ICd4W149XSo9XCguKlwpJ2AKCiAgIyBBY2NlcHQgdGhlIGltcG9y
dGFudCBDeWdudXMgY29uZmlndXJlIG9wdGlvbnMsIHNvIHdlIGNhbiBkaWFn
bm9zZSB0eXBvcy4KCiAgY2FzZSAkYWNfb3B0aW9uIGluCgogIC1iaW5kaXIg
fCAtLWJpbmRpciB8IC0tYmluZGkgfCAtLWJpbmQgfCAtLWJpbiB8IC0tYmkp
CiAgICBhY19wcmV2PWJpbmRpciA7OwogIC1iaW5kaXI9KiB8IC0tYmluZGly
PSogfCAtLWJpbmRpPSogfCAtLWJpbmQ9KiB8IC0tYmluPSogfCAtLWJpPSop
CiAgICBiaW5kaXI9JGFjX29wdGFyZyA7OwoKICAtYnVpbGQgfCAtLWJ1aWxk
IHwgLS1idWlsIHwgLS1idWkgfCAtLWJ1KQogICAgYWNfcHJldj1idWlsZF9h
bGlhcyA7OwogIC1idWlsZD0qIHwgLS1idWlsZD0qIHwgLS1idWlsPSogfCAt
LWJ1aT0qIHwgLS1idT0qKQogICAgYnVpbGRfYWxpYXM9JGFjX29wdGFyZyA7
OwoKICAtY2FjaGUtZmlsZSB8IC0tY2FjaGUtZmlsZSB8IC0tY2FjaGUtZmls
IHwgLS1jYWNoZS1maSBcCiAgfCAtLWNhY2hlLWYgfCAtLWNhY2hlLSB8IC0t
Y2FjaGUgfCAtLWNhY2ggfCAtLWNhYyB8IC0tY2EgfCAtLWMpCiAgICBhY19w
cmV2PWNhY2hlX2ZpbGUgOzsKICAtY2FjaGUtZmlsZT0qIHwgLS1jYWNoZS1m
aWxlPSogfCAtLWNhY2hlLWZpbD0qIHwgLS1jYWNoZS1maT0qIFwKICB8IC0t
Y2FjaGUtZj0qIHwgLS1jYWNoZS09KiB8IC0tY2FjaGU9KiB8IC0tY2FjaD0q
IHwgLS1jYWM9KiB8IC0tY2E9KiB8IC0tYz0qKQogICAgY2FjaGVfZmlsZT0k
YWNfb3B0YXJnIDs7CgogIC0tY29uZmlnLWNhY2hlIHwgLUMpCiAgICBjYWNo
ZV9maWxlPWNvbmZpZy5jYWNoZSA7OwoKICAtZGF0YWRpciB8IC0tZGF0YWRp
ciB8IC0tZGF0YWRpIHwgLS1kYXRhZCB8IC0tZGF0YSB8IC0tZGF0IHwgLS1k
YSkKICAgIGFjX3ByZXY9ZGF0YWRpciA7OwogIC1kYXRhZGlyPSogfCAtLWRh
dGFkaXI9KiB8IC0tZGF0YWRpPSogfCAtLWRhdGFkPSogfCAtLWRhdGE9KiB8
IC0tZGF0PSogXAogIHwgLS1kYT0qKQogICAgZGF0YWRpcj0kYWNfb3B0YXJn
IDs7CgogIC1kaXNhYmxlLSogfCAtLWRpc2FibGUtKikKICAgIGFjX2ZlYXR1
cmU9YGV4cHIgIngkYWNfb3B0aW9uIiA6ICd4LSpkaXNhYmxlLVwoLipcKSdg
CiAgICAjIFJlamVjdCBuYW1lcyB0aGF0IGFyZSBub3QgdmFsaWQgc2hlbGwg
dmFyaWFibGUgbmFtZXMuCiAgICBleHByICJ4JGFjX2ZlYXR1cmUiIDogIi4q
W14tXyRhc19jcl9hbG51bV0iID4vZGV2L251bGwgJiYKICAgICAgeyBlY2hv
ICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIGZlYXR1cmUgbmFtZTogJGFjX2Zl
YXR1cmUiID4mMgogICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KICAgIGFj
X2ZlYXR1cmU9YGVjaG8gJGFjX2ZlYXR1cmUgfCBzZWQgJ3MvLS9fL2cnYAog
ICAgZXZhbCAiZW5hYmxlXyRhY19mZWF0dXJlPW5vIiA7OwoKICAtZW5hYmxl
LSogfCAtLWVuYWJsZS0qKQogICAgYWNfZmVhdHVyZT1gZXhwciAieCRhY19v
cHRpb24iIDogJ3gtKmVuYWJsZS1cKFtePV0qXCknYAogICAgIyBSZWplY3Qg
bmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVz
LgogICAgZXhwciAieCRhY19mZWF0dXJlIiA6ICIuKlteLV8kYXNfY3JfYWxu
dW1dIiA+L2Rldi9udWxsICYmCiAgICAgIHsgZWNobyAiJGFzX21lOiBlcnJv
cjogaW52YWxpZCBmZWF0dXJlIG5hbWU6ICRhY19mZWF0dXJlIiA+JjIKICAg
eyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CiAgICBhY19mZWF0dXJlPWBlY2hv
ICRhY19mZWF0dXJlIHwgc2VkICdzLy0vXy9nJ2AKICAgIGNhc2UgJGFjX29w
dGlvbiBpbgogICAgICAqPSopIGFjX29wdGFyZz1gZWNobyAiJGFjX29wdGFy
ZyIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImA7OwogICAgICAqKSBhY19v
cHRhcmc9eWVzIDs7CiAgICBlc2FjCiAgICBldmFsICJlbmFibGVfJGFjX2Zl
YXR1cmU9JyRhY19vcHRhcmcnIiA7OwoKICAtZXhlYy1wcmVmaXggfCAtLWV4
ZWNfcHJlZml4IHwgLS1leGVjLXByZWZpeCB8IC0tZXhlYy1wcmVmaSBcCiAg
fCAtLWV4ZWMtcHJlZiB8IC0tZXhlYy1wcmUgfCAtLWV4ZWMtcHIgfCAtLWV4
ZWMtcCB8IC0tZXhlYy0gXAogIHwgLS1leGVjIHwgLS1leGUgfCAtLWV4KQog
ICAgYWNfcHJldj1leGVjX3ByZWZpeCA7OwogIC1leGVjLXByZWZpeD0qIHwg
LS1leGVjX3ByZWZpeD0qIHwgLS1leGVjLXByZWZpeD0qIHwgLS1leGVjLXBy
ZWZpPSogXAogIHwgLS1leGVjLXByZWY9KiB8IC0tZXhlYy1wcmU9KiB8IC0t
ZXhlYy1wcj0qIHwgLS1leGVjLXA9KiB8IC0tZXhlYy09KiBcCiAgfCAtLWV4
ZWM9KiB8IC0tZXhlPSogfCAtLWV4PSopCiAgICBleGVjX3ByZWZpeD0kYWNf
b3B0YXJnIDs7CgogIC1nYXMgfCAtLWdhcyB8IC0tZ2EgfCAtLWcpCiAgICAj
IE9ic29sZXRlOyB1c2UgLS13aXRoLWdhcy4KICAgIHdpdGhfZ2FzPXllcyA7
OwoKICAtaGVscCB8IC0taGVscCB8IC0taGVsIHwgLS1oZSB8IC1oKQogICAg
YWNfaW5pdF9oZWxwPWxvbmcgOzsKICAtaGVscD1yKiB8IC0taGVscD1yKiB8
IC0taGVsPXIqIHwgLS1oZT1yKiB8IC1ociopCiAgICBhY19pbml0X2hlbHA9
cmVjdXJzaXZlIDs7CiAgLWhlbHA9cyogfCAtLWhlbHA9cyogfCAtLWhlbD1z
KiB8IC0taGU9cyogfCAtaHMqKQogICAgYWNfaW5pdF9oZWxwPXNob3J0IDs7
CgogIC1ob3N0IHwgLS1ob3N0IHwgLS1ob3MgfCAtLWhvKQogICAgYWNfcHJl
dj1ob3N0X2FsaWFzIDs7CiAgLWhvc3Q9KiB8IC0taG9zdD0qIHwgLS1ob3M9
KiB8IC0taG89KikKICAgIGhvc3RfYWxpYXM9JGFjX29wdGFyZyA7OwoKICAt
aW5jbHVkZWRpciB8IC0taW5jbHVkZWRpciB8IC0taW5jbHVkZWRpIHwgLS1p
bmNsdWRlZCB8IC0taW5jbHVkZSBcCiAgfCAtLWluY2x1ZCB8IC0taW5jbHUg
fCAtLWluY2wgfCAtLWluYykKICAgIGFjX3ByZXY9aW5jbHVkZWRpciA7Owog
IC1pbmNsdWRlZGlyPSogfCAtLWluY2x1ZGVkaXI9KiB8IC0taW5jbHVkZWRp
PSogfCAtLWluY2x1ZGVkPSogfCAtLWluY2x1ZGU9KiBcCiAgfCAtLWluY2x1
ZD0qIHwgLS1pbmNsdT0qIHwgLS1pbmNsPSogfCAtLWluYz0qKQogICAgaW5j
bHVkZWRpcj0kYWNfb3B0YXJnIDs7CgogIC1pbmZvZGlyIHwgLS1pbmZvZGly
IHwgLS1pbmZvZGkgfCAtLWluZm9kIHwgLS1pbmZvIHwgLS1pbmYpCiAgICBh
Y19wcmV2PWluZm9kaXIgOzsKICAtaW5mb2Rpcj0qIHwgLS1pbmZvZGlyPSog
fCAtLWluZm9kaT0qIHwgLS1pbmZvZD0qIHwgLS1pbmZvPSogfCAtLWluZj0q
KQogICAgaW5mb2Rpcj0kYWNfb3B0YXJnIDs7CgogIC1saWJkaXIgfCAtLWxp
YmRpciB8IC0tbGliZGkgfCAtLWxpYmQpCiAgICBhY19wcmV2PWxpYmRpciA7
OwogIC1saWJkaXI9KiB8IC0tbGliZGlyPSogfCAtLWxpYmRpPSogfCAtLWxp
YmQ9KikKICAgIGxpYmRpcj0kYWNfb3B0YXJnIDs7CgogIC1saWJleGVjZGly
IHwgLS1saWJleGVjZGlyIHwgLS1saWJleGVjZGkgfCAtLWxpYmV4ZWNkIHwg
LS1saWJleGVjIFwKICB8IC0tbGliZXhlIHwgLS1saWJleCB8IC0tbGliZSkK
ICAgIGFjX3ByZXY9bGliZXhlY2RpciA7OwogIC1saWJleGVjZGlyPSogfCAt
LWxpYmV4ZWNkaXI9KiB8IC0tbGliZXhlY2RpPSogfCAtLWxpYmV4ZWNkPSog
fCAtLWxpYmV4ZWM9KiBcCiAgfCAtLWxpYmV4ZT0qIHwgLS1saWJleD0qIHwg
LS1saWJlPSopCiAgICBsaWJleGVjZGlyPSRhY19vcHRhcmcgOzsKCiAgLWxv
Y2Fsc3RhdGVkaXIgfCAtLWxvY2Fsc3RhdGVkaXIgfCAtLWxvY2Fsc3RhdGVk
aSB8IC0tbG9jYWxzdGF0ZWQgXAogIHwgLS1sb2NhbHN0YXRlIHwgLS1sb2Nh
bHN0YXQgfCAtLWxvY2Fsc3RhIHwgLS1sb2NhbHN0IFwKICB8IC0tbG9jYWxz
IHwgLS1sb2NhbCB8IC0tbG9jYSB8IC0tbG9jIHwgLS1sbykKICAgIGFjX3By
ZXY9bG9jYWxzdGF0ZWRpciA7OwogIC1sb2NhbHN0YXRlZGlyPSogfCAtLWxv
Y2Fsc3RhdGVkaXI9KiB8IC0tbG9jYWxzdGF0ZWRpPSogfCAtLWxvY2Fsc3Rh
dGVkPSogXAogIHwgLS1sb2NhbHN0YXRlPSogfCAtLWxvY2Fsc3RhdD0qIHwg
LS1sb2NhbHN0YT0qIHwgLS1sb2NhbHN0PSogXAogIHwgLS1sb2NhbHM9KiB8
IC0tbG9jYWw9KiB8IC0tbG9jYT0qIHwgLS1sb2M9KiB8IC0tbG89KikKICAg
IGxvY2Fsc3RhdGVkaXI9JGFjX29wdGFyZyA7OwoKICAtbWFuZGlyIHwgLS1t
YW5kaXIgfCAtLW1hbmRpIHwgLS1tYW5kIHwgLS1tYW4gfCAtLW1hIHwgLS1t
KQogICAgYWNfcHJldj1tYW5kaXIgOzsKICAtbWFuZGlyPSogfCAtLW1hbmRp
cj0qIHwgLS1tYW5kaT0qIHwgLS1tYW5kPSogfCAtLW1hbj0qIHwgLS1tYT0q
IHwgLS1tPSopCiAgICBtYW5kaXI9JGFjX29wdGFyZyA7OwoKICAtbmZwIHwg
LS1uZnAgfCAtLW5mKQogICAgIyBPYnNvbGV0ZTsgdXNlIC0td2l0aG91dC1m
cC4KICAgIHdpdGhfZnA9bm8gOzsKCiAgLW5vLWNyZWF0ZSB8IC0tbm8tY3Jl
YXRlIHwgLS1uby1jcmVhdCB8IC0tbm8tY3JlYSB8IC0tbm8tY3JlIFwKICB8
IC0tbm8tY3IgfCAtLW5vLWMgfCAtbikKICAgIG5vX2NyZWF0ZT15ZXMgOzsK
CiAgLW5vLXJlY3Vyc2lvbiB8IC0tbm8tcmVjdXJzaW9uIHwgLS1uby1yZWN1
cnNpbyB8IC0tbm8tcmVjdXJzaSBcCiAgfCAtLW5vLXJlY3VycyB8IC0tbm8t
cmVjdXIgfCAtLW5vLXJlY3UgfCAtLW5vLXJlYyB8IC0tbm8tcmUgfCAtLW5v
LXIpCiAgICBub19yZWN1cnNpb249eWVzIDs7CgogIC1vbGRpbmNsdWRlZGly
IHwgLS1vbGRpbmNsdWRlZGlyIHwgLS1vbGRpbmNsdWRlZGkgfCAtLW9sZGlu
Y2x1ZGVkIFwKICB8IC0tb2xkaW5jbHVkZSB8IC0tb2xkaW5jbHVkIHwgLS1v
bGRpbmNsdSB8IC0tb2xkaW5jbCB8IC0tb2xkaW5jIFwKICB8IC0tb2xkaW4g
fCAtLW9sZGkgfCAtLW9sZCB8IC0tb2wgfCAtLW8pCiAgICBhY19wcmV2PW9s
ZGluY2x1ZGVkaXIgOzsKICAtb2xkaW5jbHVkZWRpcj0qIHwgLS1vbGRpbmNs
dWRlZGlyPSogfCAtLW9sZGluY2x1ZGVkaT0qIHwgLS1vbGRpbmNsdWRlZD0q
IFwKICB8IC0tb2xkaW5jbHVkZT0qIHwgLS1vbGRpbmNsdWQ9KiB8IC0tb2xk
aW5jbHU9KiB8IC0tb2xkaW5jbD0qIHwgLS1vbGRpbmM9KiBcCiAgfCAtLW9s
ZGluPSogfCAtLW9sZGk9KiB8IC0tb2xkPSogfCAtLW9sPSogfCAtLW89KikK
ICAgIG9sZGluY2x1ZGVkaXI9JGFjX29wdGFyZyA7OwoKICAtcHJlZml4IHwg
LS1wcmVmaXggfCAtLXByZWZpIHwgLS1wcmVmIHwgLS1wcmUgfCAtLXByIHwg
LS1wKQogICAgYWNfcHJldj1wcmVmaXggOzsKICAtcHJlZml4PSogfCAtLXBy
ZWZpeD0qIHwgLS1wcmVmaT0qIHwgLS1wcmVmPSogfCAtLXByZT0qIHwgLS1w
cj0qIHwgLS1wPSopCiAgICBwcmVmaXg9JGFjX29wdGFyZyA7OwoKICAtcHJv
Z3JhbS1wcmVmaXggfCAtLXByb2dyYW0tcHJlZml4IHwgLS1wcm9ncmFtLXBy
ZWZpIHwgLS1wcm9ncmFtLXByZWYgXAogIHwgLS1wcm9ncmFtLXByZSB8IC0t
cHJvZ3JhbS1wciB8IC0tcHJvZ3JhbS1wKQogICAgYWNfcHJldj1wcm9ncmFt
X3ByZWZpeCA7OwogIC1wcm9ncmFtLXByZWZpeD0qIHwgLS1wcm9ncmFtLXBy
ZWZpeD0qIHwgLS1wcm9ncmFtLXByZWZpPSogXAogIHwgLS1wcm9ncmFtLXBy
ZWY9KiB8IC0tcHJvZ3JhbS1wcmU9KiB8IC0tcHJvZ3JhbS1wcj0qIHwgLS1w
cm9ncmFtLXA9KikKICAgIHByb2dyYW1fcHJlZml4PSRhY19vcHRhcmcgOzsK
CiAgLXByb2dyYW0tc3VmZml4IHwgLS1wcm9ncmFtLXN1ZmZpeCB8IC0tcHJv
Z3JhbS1zdWZmaSB8IC0tcHJvZ3JhbS1zdWZmIFwKICB8IC0tcHJvZ3JhbS1z
dWYgfCAtLXByb2dyYW0tc3UgfCAtLXByb2dyYW0tcykKICAgIGFjX3ByZXY9
cHJvZ3JhbV9zdWZmaXggOzsKICAtcHJvZ3JhbS1zdWZmaXg9KiB8IC0tcHJv
Z3JhbS1zdWZmaXg9KiB8IC0tcHJvZ3JhbS1zdWZmaT0qIFwKICB8IC0tcHJv
Z3JhbS1zdWZmPSogfCAtLXByb2dyYW0tc3VmPSogfCAtLXByb2dyYW0tc3U9
KiB8IC0tcHJvZ3JhbS1zPSopCiAgICBwcm9ncmFtX3N1ZmZpeD0kYWNfb3B0
YXJnIDs7CgogIC1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lIHwgLS1wcm9ncmFt
LXRyYW5zZm9ybS1uYW1lIFwKICB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbmFt
IHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYSBcCiAgfCAtLXByb2dyYW0tdHJh
bnNmb3JtLW4gfCAtLXByb2dyYW0tdHJhbnNmb3JtLSBcCiAgfCAtLXByb2dy
YW0tdHJhbnNmb3JtIHwgLS1wcm9ncmFtLXRyYW5zZm9yIFwKICB8IC0tcHJv
Z3JhbS10cmFuc2ZvIHwgLS1wcm9ncmFtLXRyYW5zZiBcCiAgfCAtLXByb2dy
YW0tdHJhbnMgfCAtLXByb2dyYW0tdHJhbiBcCiAgfCAtLXByb2dyLXRyYSB8
IC0tcHJvZ3JhbS10ciB8IC0tcHJvZ3JhbS10KQogICAgYWNfcHJldj1wcm9n
cmFtX3RyYW5zZm9ybV9uYW1lIDs7CiAgLXByb2dyYW0tdHJhbnNmb3JtLW5h
bWU9KiB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbmFtZT0qIFwKICB8IC0tcHJv
Z3JhbS10cmFuc2Zvcm0tbmFtPSogfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5h
PSogXAogIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uPSogfCAtLXByb2dyYW0t
dHJhbnNmb3JtLT0qIFwKICB8IC0tcHJvZ3JhbS10cmFuc2Zvcm09KiB8IC0t
cHJvZ3JhbS10cmFuc2Zvcj0qIFwKICB8IC0tcHJvZ3JhbS10cmFuc2ZvPSog
fCAtLXByb2dyYW0tdHJhbnNmPSogXAogIHwgLS1wcm9ncmFtLXRyYW5zPSog
fCAtLXByb2dyYW0tdHJhbj0qIFwKICB8IC0tcHJvZ3ItdHJhPSogfCAtLXBy
b2dyYW0tdHI9KiB8IC0tcHJvZ3JhbS10PSopCiAgICBwcm9ncmFtX3RyYW5z
Zm9ybV9uYW1lPSRhY19vcHRhcmcgOzsKCiAgLXEgfCAtcXVpZXQgfCAtLXF1
aWV0IHwgLS1xdWllIHwgLS1xdWkgfCAtLXF1IHwgLS1xIFwKICB8IC1zaWxl
bnQgfCAtLXNpbGVudCB8IC0tc2lsZW4gfCAtLXNpbGUgfCAtLXNpbCkKICAg
IHNpbGVudD15ZXMgOzsKCiAgLXNiaW5kaXIgfCAtLXNiaW5kaXIgfCAtLXNi
aW5kaSB8IC0tc2JpbmQgfCAtLXNiaW4gfCAtLXNiaSB8IC0tc2IpCiAgICBh
Y19wcmV2PXNiaW5kaXIgOzsKICAtc2JpbmRpcj0qIHwgLS1zYmluZGlyPSog
fCAtLXNiaW5kaT0qIHwgLS1zYmluZD0qIHwgLS1zYmluPSogXAogIHwgLS1z
Ymk9KiB8IC0tc2I9KikKICAgIHNiaW5kaXI9JGFjX29wdGFyZyA7OwoKICAt
c2hhcmVkc3RhdGVkaXIgfCAtLXNoYXJlZHN0YXRlZGlyIHwgLS1zaGFyZWRz
dGF0ZWRpIFwKICB8IC0tc2hhcmVkc3RhdGVkIHwgLS1zaGFyZWRzdGF0ZSB8
IC0tc2hhcmVkc3RhdCB8IC0tc2hhcmVkc3RhIFwKICB8IC0tc2hhcmVkc3Qg
fCAtLXNoYXJlZHMgfCAtLXNoYXJlZCB8IC0tc2hhcmUgfCAtLXNoYXIgXAog
IHwgLS1zaGEgfCAtLXNoKQogICAgYWNfcHJldj1zaGFyZWRzdGF0ZWRpciA7
OwogIC1zaGFyZWRzdGF0ZWRpcj0qIHwgLS1zaGFyZWRzdGF0ZWRpcj0qIHwg
LS1zaGFyZWRzdGF0ZWRpPSogXAogIHwgLS1zaGFyZWRzdGF0ZWQ9KiB8IC0t
c2hhcmVkc3RhdGU9KiB8IC0tc2hhcmVkc3RhdD0qIHwgLS1zaGFyZWRzdGE9
KiBcCiAgfCAtLXNoYXJlZHN0PSogfCAtLXNoYXJlZHM9KiB8IC0tc2hhcmVk
PSogfCAtLXNoYXJlPSogfCAtLXNoYXI9KiBcCiAgfCAtLXNoYT0qIHwgLS1z
aD0qKQogICAgc2hhcmVkc3RhdGVkaXI9JGFjX29wdGFyZyA7OwoKICAtc2l0
ZSB8IC0tc2l0ZSB8IC0tc2l0KQogICAgYWNfcHJldj1zaXRlIDs7CiAgLXNp
dGU9KiB8IC0tc2l0ZT0qIHwgLS1zaXQ9KikKICAgIHNpdGU9JGFjX29wdGFy
ZyA7OwoKICAtc3JjZGlyIHwgLS1zcmNkaXIgfCAtLXNyY2RpIHwgLS1zcmNk
IHwgLS1zcmMgfCAtLXNyKQogICAgYWNfcHJldj1zcmNkaXIgOzsKICAtc3Jj
ZGlyPSogfCAtLXNyY2Rpcj0qIHwgLS1zcmNkaT0qIHwgLS1zcmNkPSogfCAt
LXNyYz0qIHwgLS1zcj0qKQogICAgc3JjZGlyPSRhY19vcHRhcmcgOzsKCiAg
LXN5c2NvbmZkaXIgfCAtLXN5c2NvbmZkaXIgfCAtLXN5c2NvbmZkaSB8IC0t
c3lzY29uZmQgfCAtLXN5c2NvbmYgXAogIHwgLS1zeXNjb24gfCAtLXN5c2Nv
IHwgLS1zeXNjIHwgLS1zeXMgfCAtLXN5KQogICAgYWNfcHJldj1zeXNjb25m
ZGlyIDs7CiAgLXN5c2NvbmZkaXI9KiB8IC0tc3lzY29uZmRpcj0qIHwgLS1z
eXNjb25mZGk9KiB8IC0tc3lzY29uZmQ9KiB8IC0tc3lzY29uZj0qIFwKICB8
IC0tc3lzY29uPSogfCAtLXN5c2NvPSogfCAtLXN5c2M9KiB8IC0tc3lzPSog
fCAtLXN5PSopCiAgICBzeXNjb25mZGlyPSRhY19vcHRhcmcgOzsKCiAgLXRh
cmdldCB8IC0tdGFyZ2V0IHwgLS10YXJnZSB8IC0tdGFyZyB8IC0tdGFyIHwg
LS10YSB8IC0tdCkKICAgIGFjX3ByZXY9dGFyZ2V0X2FsaWFzIDs7CiAgLXRh
cmdldD0qIHwgLS10YXJnZXQ9KiB8IC0tdGFyZ2U9KiB8IC0tdGFyZz0qIHwg
LS10YXI9KiB8IC0tdGE9KiB8IC0tdD0qKQogICAgdGFyZ2V0X2FsaWFzPSRh
Y19vcHRhcmcgOzsKCiAgLXYgfCAtdmVyYm9zZSB8IC0tdmVyYm9zZSB8IC0t
dmVyYm9zIHwgLS12ZXJibyB8IC0tdmVyYikKICAgIHZlcmJvc2U9eWVzIDs7
CgogIC12ZXJzaW9uIHwgLS12ZXJzaW9uIHwgLS12ZXJzaW8gfCAtLXZlcnNp
IHwgLS12ZXJzIHwgLVYpCiAgICBhY19pbml0X3ZlcnNpb249OiA7OwoKICAt
d2l0aC0qIHwgLS13aXRoLSopCiAgICBhY19wYWNrYWdlPWBleHByICJ4JGFj
X29wdGlvbiIgOiAneC0qd2l0aC1cKFtePV0qXCknYAogICAgIyBSZWplY3Qg
bmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVz
LgogICAgZXhwciAieCRhY19wYWNrYWdlIiA6ICIuKlteLV8kYXNfY3JfYWxu
dW1dIiA+L2Rldi9udWxsICYmCiAgICAgIHsgZWNobyAiJGFzX21lOiBlcnJv
cjogaW52YWxpZCBwYWNrYWdlIG5hbWU6ICRhY19wYWNrYWdlIiA+JjIKICAg
eyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CiAgICBhY19wYWNrYWdlPWBlY2hv
ICRhY19wYWNrYWdlfCBzZWQgJ3MvLS9fL2cnYAogICAgY2FzZSAkYWNfb3B0
aW9uIGluCiAgICAgICo9KikgYWNfb3B0YXJnPWBlY2hvICIkYWNfb3B0YXJn
IiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYDs7CiAgICAgICopIGFjX29w
dGFyZz15ZXMgOzsKICAgIGVzYWMKICAgIGV2YWwgIndpdGhfJGFjX3BhY2th
Z2U9JyRhY19vcHRhcmcnIiA7OwoKICAtd2l0aG91dC0qIHwgLS13aXRob3V0
LSopCiAgICBhY19wYWNrYWdlPWBleHByICJ4JGFjX29wdGlvbiIgOiAneC0q
d2l0aG91dC1cKC4qXCknYAogICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUg
bm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgogICAgZXhwciAieCRh
Y19wYWNrYWdlIiA6ICIuKlteLV8kYXNfY3JfYWxudW1dIiA+L2Rldi9udWxs
ICYmCiAgICAgIHsgZWNobyAiJGFzX21lOiBlcnJvcjogaW52YWxpZCBwYWNr
YWdlIG5hbWU6ICRhY19wYWNrYWdlIiA+JjIKICAgeyAoZXhpdCAxKTsgZXhp
dCAxOyB9OyB9CiAgICBhY19wYWNrYWdlPWBlY2hvICRhY19wYWNrYWdlIHwg
c2VkICdzLy0vXy9nJ2AKICAgIGV2YWwgIndpdGhfJGFjX3BhY2thZ2U9bm8i
IDs7CgogIC0teCkKICAgICMgT2Jzb2xldGU7IHVzZSAtLXdpdGgteC4KICAg
IHdpdGhfeD15ZXMgOzsKCiAgLXgtaW5jbHVkZXMgfCAtLXgtaW5jbHVkZXMg
fCAtLXgtaW5jbHVkZSB8IC0teC1pbmNsdWQgfCAtLXgtaW5jbHUgXAogIHwg
LS14LWluY2wgfCAtLXgtaW5jIHwgLS14LWluIHwgLS14LWkpCiAgICBhY19w
cmV2PXhfaW5jbHVkZXMgOzsKICAteC1pbmNsdWRlcz0qIHwgLS14LWluY2x1
ZGVzPSogfCAtLXgtaW5jbHVkZT0qIHwgLS14LWluY2x1ZD0qIHwgLS14LWlu
Y2x1PSogXAogIHwgLS14LWluY2w9KiB8IC0teC1pbmM9KiB8IC0teC1pbj0q
IHwgLS14LWk9KikKICAgIHhfaW5jbHVkZXM9JGFjX29wdGFyZyA7OwoKICAt
eC1saWJyYXJpZXMgfCAtLXgtbGlicmFyaWVzIHwgLS14LWxpYnJhcmllIHwg
LS14LWxpYnJhcmkgXAogIHwgLS14LWxpYnJhciB8IC0teC1saWJyYSB8IC0t
eC1saWJyIHwgLS14LWxpYiB8IC0teC1saSB8IC0teC1sKQogICAgYWNfcHJl
dj14X2xpYnJhcmllcyA7OwogIC14LWxpYnJhcmllcz0qIHwgLS14LWxpYnJh
cmllcz0qIHwgLS14LWxpYnJhcmllPSogfCAtLXgtbGlicmFyaT0qIFwKICB8
IC0teC1saWJyYXI9KiB8IC0teC1saWJyYT0qIHwgLS14LWxpYnI9KiB8IC0t
eC1saWI9KiB8IC0teC1saT0qIHwgLS14LWw9KikKICAgIHhfbGlicmFyaWVz
PSRhY19vcHRhcmcgOzsKCiAgLSopIHsgZWNobyAiJGFzX21lOiBlcnJvcjog
dW5yZWNvZ25pemVkIG9wdGlvbjogJGFjX29wdGlvbgpUcnkgXGAkMCAtLWhl
bHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIgPiYyCiAgIHsgKGV4aXQgMSk7
IGV4aXQgMTsgfTsgfQogICAgOzsKCiAgKj0qKQogICAgYWNfZW52dmFyPWBl
eHByICJ4JGFjX29wdGlvbiIgOiAneFwoW149XSpcKT0nYAogICAgIyBSZWpl
Y3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5h
bWVzLgogICAgZXhwciAieCRhY19lbnZ2YXIiIDogIi4qW15fJGFzX2NyX2Fs
bnVtXSIgPi9kZXYvbnVsbCAmJgogICAgICB7IGVjaG8gIiRhc19tZTogZXJy
b3I6IGludmFsaWQgdmFyaWFibGUgbmFtZTogJGFjX2VudnZhciIgPiYyCiAg
IHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQogICAgYWNfb3B0YXJnPWBlY2hv
ICIkYWNfb3B0YXJnIiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYAogICAg
ZXZhbCAiJGFjX2VudnZhcj0nJGFjX29wdGFyZyciCiAgICBleHBvcnQgJGFj
X2VudnZhciA7OwoKICAqKQogICAgIyBGSVhNRTogc2hvdWxkIGJlIHJlbW92
ZWQgaW4gYXV0b2NvbmYgMy4wLgogICAgZWNobyAiJGFzX21lOiBXQVJOSU5H
OiB5b3Ugc2hvdWxkIHVzZSAtLWJ1aWxkLCAtLWhvc3QsIC0tdGFyZ2V0IiA+
JjIKICAgIGV4cHIgIngkYWNfb3B0aW9uIiA6ICIuKlteLS5fJGFzX2NyX2Fs
bnVtXSIgPi9kZXYvbnVsbCAmJgogICAgICBlY2hvICIkYXNfbWU6IFdBUk5J
Tkc6IGludmFsaWQgaG9zdCB0eXBlOiAkYWNfb3B0aW9uIiA+JjIKICAgIDog
JHtidWlsZF9hbGlhcz0kYWNfb3B0aW9ufSAke2hvc3RfYWxpYXM9JGFjX29w
dGlvbn0gJHt0YXJnZXRfYWxpYXM9JGFjX29wdGlvbn0KICAgIDs7CgogIGVz
YWMKZG9uZQoKaWYgdGVzdCAtbiAiJGFjX3ByZXYiOyB0aGVuCiAgYWNfb3B0
aW9uPS0tYGVjaG8gJGFjX3ByZXYgfCBzZWQgJ3MvXy8tL2cnYAogIHsgZWNo
byAiJGFzX21lOiBlcnJvcjogbWlzc2luZyBhcmd1bWVudCB0byAkYWNfb3B0
aW9uIiA+JjIKICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CmZpCgojIEJl
IHN1cmUgdG8gaGF2ZSBhYnNvbHV0ZSBwYXRocy4KZm9yIGFjX3ZhciBpbiBl
eGVjX3ByZWZpeCBwcmVmaXgKZG8KICBldmFsIGFjX3ZhbD0kYGVjaG8gJGFj
X3ZhcmAKICBjYXNlICRhY192YWwgaW4KICAgIFtcXC8kXSogfCA/OltcXC9d
KiB8IE5PTkUgfCAnJyApIDs7CiAgICAqKSAgeyBlY2hvICIkYXNfbWU6IGVy
cm9yOiBleHBlY3RlZCBhbiBhYnNvbHV0ZSBkaXJlY3RvcnkgbmFtZSBmb3Ig
LS0kYWNfdmFyOiAkYWNfdmFsIiA+JjIKICAgeyAoZXhpdCAxKTsgZXhpdCAx
OyB9OyB9OzsKICBlc2FjCmRvbmUKCiMgQmUgc3VyZSB0byBoYXZlIGFic29s
dXRlIHBhdGhzLgpmb3IgYWNfdmFyIGluIGJpbmRpciBzYmluZGlyIGxpYmV4
ZWNkaXIgZGF0YWRpciBzeXNjb25mZGlyIHNoYXJlZHN0YXRlZGlyIFwKICAg
ICAgICAgICAgICBsb2NhbHN0YXRlZGlyIGxpYmRpciBpbmNsdWRlZGlyIG9s
ZGluY2x1ZGVkaXIgaW5mb2RpciBtYW5kaXIKZG8KICBldmFsIGFjX3ZhbD0k
YGVjaG8gJGFjX3ZhcmAKICBjYXNlICRhY192YWwgaW4KICAgIFtcXC8kXSog
fCA/OltcXC9dKiApIDs7CiAgICAqKSAgeyBlY2hvICIkYXNfbWU6IGVycm9y
OiBleHBlY3RlZCBhbiBhYnNvbHV0ZSBkaXJlY3RvcnkgbmFtZSBmb3IgLS0k
YWNfdmFyOiAkYWNfdmFsIiA+JjIKICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9
OyB9OzsKICBlc2FjCmRvbmUKCiMgVGhlcmUgbWlnaHQgYmUgcGVvcGxlIHdo
byBkZXBlbmQgb24gdGhlIG9sZCBicm9rZW4gYmVoYXZpb3I6IGAkaG9zdCcK
IyB1c2VkIHRvIGhvbGQgdGhlIGFyZ3VtZW50IG9mIC0taG9zdCBldGMuCiMg
RklYTUU6IFRvIHJlbW92ZSBzb21lIGRheS4KYnVpbGQ9JGJ1aWxkX2FsaWFz
Cmhvc3Q9JGhvc3RfYWxpYXMKdGFyZ2V0PSR0YXJnZXRfYWxpYXMKCiMgRklY
TUU6IFRvIHJlbW92ZSBzb21lIGRheS4KaWYgdGVzdCAieCRob3N0X2FsaWFz
IiAhPSB4OyB0aGVuCiAgaWYgdGVzdCAieCRidWlsZF9hbGlhcyIgPSB4OyB0
aGVuCiAgICBjcm9zc19jb21waWxpbmc9bWF5YmUKICAgIGVjaG8gIiRhc19t
ZTogV0FSTklORzogSWYgeW91IHdhbnRlZCB0byBzZXQgdGhlIC0tYnVpbGQg
dHlwZSwgZG9uJ3QgdXNlIC0taG9zdC4KICAgIElmIGEgY3Jvc3MgY29tcGls
ZXIgaXMgZGV0ZWN0ZWQgdGhlbiBjcm9zcyBjb21waWxlIG1vZGUgd2lsbCBi
ZSB1c2VkLiIgPiYyCiAgZWxpZiB0ZXN0ICJ4JGJ1aWxkX2FsaWFzIiAhPSAi
eCRob3N0X2FsaWFzIjsgdGhlbgogICAgY3Jvc3NfY29tcGlsaW5nPXllcwog
IGZpCmZpCgphY190b29sX3ByZWZpeD0KdGVzdCAtbiAiJGhvc3RfYWxpYXMi
ICYmIGFjX3Rvb2xfcHJlZml4PSRob3N0X2FsaWFzLQoKdGVzdCAiJHNpbGVu
dCIgPSB5ZXMgJiYgZXhlYyA2Pi9kZXYvbnVsbAoKCiMgRmluZCB0aGUgc291
cmNlIGZpbGVzLCBpZiBsb2NhdGlvbiB3YXMgbm90IHNwZWNpZmllZC4KaWYg
dGVzdCAteiAiJHNyY2RpciI7IHRoZW4KICBhY19zcmNkaXJfZGVmYXVsdGVk
PXllcwogICMgVHJ5IHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGlzIHNj
cmlwdCwgdGhlbiBpdHMgcGFyZW50LgogIGFjX2NvbmZkaXI9YChkaXJuYW1l
ICIkMCIpIDI+L2Rldi9udWxsIHx8CiRhc19leHByIFgiJDAiIDogJ1hcKC4q
W14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCiAgICAgICAgIFgiJDAiIDog
J1hcKC8vXClbXi9dJyBcfCBcCiAgICAgICAgIFgiJDAiIDogJ1hcKC8vXCkk
JyBcfCBcCiAgICAgICAgIFgiJDAiIDogJ1hcKC9cKScgXHwgXAogICAgICAg
ICAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKZWNobyBYIiQwIiB8
CiAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveyBz
Ly9cMS87IHE7IH0KICAJICAvXlhcKFwvXC9cKVteL10uKi97IHMvL1wxLzsg
cTsgfQogIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsgcTsgfQogIAkgIC9e
WFwoXC9cKS4qL3sgcy8vXDEvOyBxOyB9CiAgCSAgcy8uKi8uLzsgcSdgCiAg
c3JjZGlyPSRhY19jb25mZGlyCiAgaWYgdGVzdCAhIC1yICRzcmNkaXIvJGFj
X3VuaXF1ZV9maWxlOyB0aGVuCiAgICBzcmNkaXI9Li4KICBmaQplbHNlCiAg
YWNfc3JjZGlyX2RlZmF1bHRlZD1ubwpmaQppZiB0ZXN0ICEgLXIgJHNyY2Rp
ci8kYWNfdW5pcXVlX2ZpbGU7IHRoZW4KICBpZiB0ZXN0ICIkYWNfc3JjZGly
X2RlZmF1bHRlZCIgPSB5ZXM7IHRoZW4KICAgIHsgZWNobyAiJGFzX21lOiBl
cnJvcjogY2Fubm90IGZpbmQgc291cmNlcyAoJGFjX3VuaXF1ZV9maWxlKSBp
biAkYWNfY29uZmRpciBvciAuLiIgPiYyCiAgIHsgKGV4aXQgMSk7IGV4aXQg
MTsgfTsgfQogIGVsc2UKICAgIHsgZWNobyAiJGFzX21lOiBlcnJvcjogY2Fu
bm90IGZpbmQgc291cmNlcyAoJGFjX3VuaXF1ZV9maWxlKSBpbiAkc3JjZGly
IiA+JjIKICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CiAgZmkKZmkKKGNk
ICRzcmNkaXIgJiYgdGVzdCAtciAuLyRhY191bmlxdWVfZmlsZSkgMj4vZGV2
L251bGwgfHwKICB7IGVjaG8gIiRhc19tZTogZXJyb3I6IHNvdXJjZXMgYXJl
IGluICRzcmNkaXIsIGJ1dCBcYGNkICRzcmNkaXInIGRvZXMgbm90IHdvcmsi
ID4mMgogICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0Kc3JjZGlyPWBlY2hv
ICIkc3JjZGlyIiB8IHNlZCAncyVcKFteXFwvXVwpW1xcL10qJCVcMSUnYAph
Y19lbnZfYnVpbGRfYWxpYXNfc2V0PSR7YnVpbGRfYWxpYXMrc2V0fQphY19l
bnZfYnVpbGRfYWxpYXNfdmFsdWU9JGJ1aWxkX2FsaWFzCmFjX2N2X2Vudl9i
dWlsZF9hbGlhc19zZXQ9JHtidWlsZF9hbGlhcytzZXR9CmFjX2N2X2Vudl9i
dWlsZF9hbGlhc192YWx1ZT0kYnVpbGRfYWxpYXMKYWNfZW52X2hvc3RfYWxp
YXNfc2V0PSR7aG9zdF9hbGlhcytzZXR9CmFjX2Vudl9ob3N0X2FsaWFzX3Zh
bHVlPSRob3N0X2FsaWFzCmFjX2N2X2Vudl9ob3N0X2FsaWFzX3NldD0ke2hv
c3RfYWxpYXMrc2V0fQphY19jdl9lbnZfaG9zdF9hbGlhc192YWx1ZT0kaG9z
dF9hbGlhcwphY19lbnZfdGFyZ2V0X2FsaWFzX3NldD0ke3RhcmdldF9hbGlh
cytzZXR9CmFjX2Vudl90YXJnZXRfYWxpYXNfdmFsdWU9JHRhcmdldF9hbGlh
cwphY19jdl9lbnZfdGFyZ2V0X2FsaWFzX3NldD0ke3RhcmdldF9hbGlhcytz
ZXR9CmFjX2N2X2Vudl90YXJnZXRfYWxpYXNfdmFsdWU9JHRhcmdldF9hbGlh
cwphY19lbnZfTERfc2V0PSR7TEQrc2V0fQphY19lbnZfTERfdmFsdWU9JExE
CmFjX2N2X2Vudl9MRF9zZXQ9JHtMRCtzZXR9CmFjX2N2X2Vudl9MRF92YWx1
ZT0kTEQKYWNfZW52X0NDX3NldD0ke0NDK3NldH0KYWNfZW52X0NDX3ZhbHVl
PSRDQwphY19jdl9lbnZfQ0Nfc2V0PSR7Q0Mrc2V0fQphY19jdl9lbnZfQ0Nf
dmFsdWU9JENDCmFjX2Vudl9DRkxBR1Nfc2V0PSR7Q0ZMQUdTK3NldH0KYWNf
ZW52X0NGTEFHU192YWx1ZT0kQ0ZMQUdTCmFjX2N2X2Vudl9DRkxBR1Nfc2V0
PSR7Q0ZMQUdTK3NldH0KYWNfY3ZfZW52X0NGTEFHU192YWx1ZT0kQ0ZMQUdT
CmFjX2Vudl9MREZMQUdTX3NldD0ke0xERkxBR1Mrc2V0fQphY19lbnZfTERG
TEFHU192YWx1ZT0kTERGTEFHUwphY19jdl9lbnZfTERGTEFHU19zZXQ9JHtM
REZMQUdTK3NldH0KYWNfY3ZfZW52X0xERkxBR1NfdmFsdWU9JExERkxBR1MK
YWNfZW52X0NQUEZMQUdTX3NldD0ke0NQUEZMQUdTK3NldH0KYWNfZW52X0NQ
UEZMQUdTX3ZhbHVlPSRDUFBGTEFHUwphY19jdl9lbnZfQ1BQRkxBR1Nfc2V0
PSR7Q1BQRkxBR1Mrc2V0fQphY19jdl9lbnZfQ1BQRkxBR1NfdmFsdWU9JENQ
UEZMQUdTCmFjX2Vudl9DWFhfc2V0PSR7Q1hYK3NldH0KYWNfZW52X0NYWF92
YWx1ZT0kQ1hYCmFjX2N2X2Vudl9DWFhfc2V0PSR7Q1hYK3NldH0KYWNfY3Zf
ZW52X0NYWF92YWx1ZT0kQ1hYCmFjX2Vudl9DWFhGTEFHU19zZXQ9JHtDWFhG
TEFHUytzZXR9CmFjX2Vudl9DWFhGTEFHU192YWx1ZT0kQ1hYRkxBR1MKYWNf
Y3ZfZW52X0NYWEZMQUdTX3NldD0ke0NYWEZMQUdTK3NldH0KYWNfY3ZfZW52
X0NYWEZMQUdTX3ZhbHVlPSRDWFhGTEFHUwphY19lbnZfQ1BQX3NldD0ke0NQ
UCtzZXR9CmFjX2Vudl9DUFBfdmFsdWU9JENQUAphY19jdl9lbnZfQ1BQX3Nl
dD0ke0NQUCtzZXR9CmFjX2N2X2Vudl9DUFBfdmFsdWU9JENQUAoKIwojIFJl
cG9ydCB0aGUgLS1oZWxwIG1lc3NhZ2UuCiMKaWYgdGVzdCAiJGFjX2luaXRf
aGVscCIgPSAibG9uZyI7IHRoZW4KICAjIE9taXQgc29tZSBpbnRlcm5hbCBv
ciBvYnNvbGV0ZSBvcHRpb25zIHRvIG1ha2UgdGhlIGxpc3QgbGVzcyBpbXBv
c2luZy4KICAjIFRoaXMgbWVzc2FnZSBpcyB0b28gbG9uZyB0byBiZSBhIHN0
cmluZyBpbiB0aGUgQS9VWCAzLjEgc2guCiAgY2F0IDw8X0FDRU9GClxgY29u
ZmlndXJlJyBjb25maWd1cmVzIFF1aWNrTmV0IHYzXzExIHRvIGFkYXB0IHRv
IG1hbnkga2luZHMgb2Ygc3lzdGVtcy4KClVzYWdlOiAkMCBbT1BUSU9OXS4u
LiBbVkFSPVZBTFVFXS4uLgoKVG8gYXNzaWduIGVudmlyb25tZW50IHZhcmlh
YmxlcyAoZS5nLiwgQ0MsIENGTEFHUy4uLiksIHNwZWNpZnkgdGhlbSBhcwpW
QVI9VkFMVUUuICBTZWUgYmVsb3cgZm9yIGRlc2NyaXB0aW9ucyBvZiBzb21l
IG9mIHRoZSB1c2VmdWwgdmFyaWFibGVzLgoKRGVmYXVsdHMgZm9yIHRoZSBv
cHRpb25zIGFyZSBzcGVjaWZpZWQgaW4gYnJhY2tldHMuCgpDb25maWd1cmF0
aW9uOgogIC1oLCAtLWhlbHAgICAgICAgICAgICAgIGRpc3BsYXkgdGhpcyBo
ZWxwIGFuZCBleGl0CiAgICAgIC0taGVscD1zaG9ydCAgICAgICAgZGlzcGxh
eSBvcHRpb25zIHNwZWNpZmljIHRvIHRoaXMgcGFja2FnZQogICAgICAtLWhl
bHA9cmVjdXJzaXZlICAgIGRpc3BsYXkgdGhlIHNob3J0IGhlbHAgb2YgYWxs
IHRoZSBpbmNsdWRlZCBwYWNrYWdlcwogIC1WLCAtLXZlcnNpb24gICAgICAg
ICAgIGRpc3BsYXkgdmVyc2lvbiBpbmZvcm1hdGlvbiBhbmQgZXhpdAogIC1x
LCAtLXF1aWV0LCAtLXNpbGVudCAgIGRvIG5vdCBwcmludCBcYGNoZWNraW5n
Li4uJyBtZXNzYWdlcwogICAgICAtLWNhY2hlLWZpbGU9RklMRSAgIGNhY2hl
IHRlc3QgcmVzdWx0cyBpbiBGSUxFIFtkaXNhYmxlZF0KICAtQywgLS1jb25m
aWctY2FjaGUgICAgICBhbGlhcyBmb3IgXGAtLWNhY2hlLWZpbGU9Y29uZmln
LmNhY2hlJwogIC1uLCAtLW5vLWNyZWF0ZSAgICAgICAgIGRvIG5vdCBjcmVh
dGUgb3V0cHV0IGZpbGVzCiAgICAgIC0tc3JjZGlyPURJUiAgICAgICAgZmlu
ZCB0aGUgc291cmNlcyBpbiBESVIgW2NvbmZpZ3VyZSBkaXIgb3IgXGAuLidd
CgpfQUNFT0YKCiAgY2F0IDw8X0FDRU9GCkluc3RhbGxhdGlvbiBkaXJlY3Rv
cmllczoKICAtLXByZWZpeD1QUkVGSVggICAgICAgICBpbnN0YWxsIGFyY2hp
dGVjdHVyZS1pbmRlcGVuZGVudCBmaWxlcyBpbiBQUkVGSVgKICAgICAgICAg
ICAgICAgICAgICAgICAgICBbJGFjX2RlZmF1bHRfcHJlZml4XQogIC0tZXhl
Yy1wcmVmaXg9RVBSRUZJWCAgIGluc3RhbGwgYXJjaGl0ZWN0dXJlLWRlcGVu
ZGVudCBmaWxlcyBpbiBFUFJFRklYCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgW1BSRUZJWF0KCkJ5IGRlZmF1bHQsIFxgbWFrZSBpbnN0YWxsJyB3aWxs
IGluc3RhbGwgYWxsIHRoZSBmaWxlcyBpbgpcYCRhY19kZWZhdWx0X3ByZWZp
eC9iaW4nLCBcYCRhY19kZWZhdWx0X3ByZWZpeC9saWInIGV0Yy4gIFlvdSBj
YW4gc3BlY2lmeQphbiBpbnN0YWxsYXRpb24gcHJlZml4IG90aGVyIHRoYW4g
XGAkYWNfZGVmYXVsdF9wcmVmaXgnIHVzaW5nIFxgLS1wcmVmaXgnLApmb3Ig
aW5zdGFuY2UgXGAtLXByZWZpeD1cJEhPTUUnLgoKRm9yIGJldHRlciBjb250
cm9sLCB1c2UgdGhlIG9wdGlvbnMgYmVsb3cuCgpGaW5lIHR1bmluZyBvZiB0
aGUgaW5zdGFsbGF0aW9uIGRpcmVjdG9yaWVzOgogIC0tYmluZGlyPURJUiAg
ICAgICAgICAgdXNlciBleGVjdXRhYmxlcyBbRVBSRUZJWC9iaW5dCiAgLS1z
YmluZGlyPURJUiAgICAgICAgICBzeXN0ZW0gYWRtaW4gZXhlY3V0YWJsZXMg
W0VQUkVGSVgvc2Jpbl0KICAtLWxpYmV4ZWNkaXI9RElSICAgICAgIHByb2dy
YW0gZXhlY3V0YWJsZXMgW0VQUkVGSVgvbGliZXhlY10KICAtLWRhdGFkaXI9
RElSICAgICAgICAgIHJlYWQtb25seSBhcmNoaXRlY3R1cmUtaW5kZXBlbmRl
bnQgZGF0YSBbUFJFRklYL3NoYXJlXQogIC0tc3lzY29uZmRpcj1ESVIgICAg
ICAgcmVhZC1vbmx5IHNpbmdsZS1tYWNoaW5lIGRhdGEgW1BSRUZJWC9ldGNd
CiAgLS1zaGFyZWRzdGF0ZWRpcj1ESVIgICBtb2RpZmlhYmxlIGFyY2hpdGVj
dHVyZS1pbmRlcGVuZGVudCBkYXRhIFtQUkVGSVgvY29tXQogIC0tbG9jYWxz
dGF0ZWRpcj1ESVIgICAgbW9kaWZpYWJsZSBzaW5nbGUtbWFjaGluZSBkYXRh
IFtQUkVGSVgvdmFyXQogIC0tbGliZGlyPURJUiAgICAgICAgICAgb2JqZWN0
IGNvZGUgbGlicmFyaWVzIFtFUFJFRklYL2xpYl0KICAtLWluY2x1ZGVkaXI9
RElSICAgICAgIEMgaGVhZGVyIGZpbGVzIFtQUkVGSVgvaW5jbHVkZV0KICAt
LW9sZGluY2x1ZGVkaXI9RElSICAgIEMgaGVhZGVyIGZpbGVzIGZvciBub24t
Z2NjIFsvdXNyL2luY2x1ZGVdCiAgLS1pbmZvZGlyPURJUiAgICAgICAgICBp
bmZvIGRvY3VtZW50YXRpb24gW1BSRUZJWC9pbmZvXQogIC0tbWFuZGlyPURJ
UiAgICAgICAgICAgbWFuIGRvY3VtZW50YXRpb24gW1BSRUZJWC9tYW5dCl9B
Q0VPRgoKICBjYXQgPDxcX0FDRU9GCgpQcm9ncmFtIG5hbWVzOgogIC0tcHJv
Z3JhbS1wcmVmaXg9UFJFRklYICAgICAgICAgICAgcHJlcGVuZCBQUkVGSVgg
dG8gaW5zdGFsbGVkIHByb2dyYW0gbmFtZXMKICAtLXByb2dyYW0tc3VmZml4
PVNVRkZJWCAgICAgICAgICAgIGFwcGVuZCBTVUZGSVggdG8gaW5zdGFsbGVk
IHByb2dyYW0gbmFtZXMKICAtLXByb2dyYW0tdHJhbnNmb3JtLW5hbWU9UFJP
R1JBTSAgIHJ1biBzZWQgUFJPR1JBTSBvbiBpbnN0YWxsZWQgcHJvZ3JhbSBu
YW1lcwoKU3lzdGVtIHR5cGVzOgogIC0tYnVpbGQ9QlVJTEQgICAgIGNvbmZp
Z3VyZSBmb3IgYnVpbGRpbmcgb24gQlVJTEQgW2d1ZXNzZWRdCiAgLS1ob3N0
PUhPU1QgICAgICAgY3Jvc3MtY29tcGlsZSB0byBidWlsZCBwcm9ncmFtcyB0
byBydW4gb24gSE9TVCBbQlVJTERdCiAgLS10YXJnZXQ9VEFSR0VUICAgY29u
ZmlndXJlIGZvciBidWlsZGluZyBjb21waWxlcnMgZm9yIFRBUkdFVCBbSE9T
VF0KX0FDRU9GCmZpCgppZiB0ZXN0IC1uICIkYWNfaW5pdF9oZWxwIjsgdGhl
bgogIGNhc2UgJGFjX2luaXRfaGVscCBpbgogICAgIHNob3J0IHwgcmVjdXJz
aXZlICkgZWNobyAiQ29uZmlndXJhdGlvbiBvZiBRdWlja05ldCB2M18xMToi
OzsKICAgZXNhYwogIGNhdCA8PFxfQUNFT0YKCk9wdGlvbmFsIEZlYXR1cmVz
OgogIC0tZGlzYWJsZS1GRUFUVVJFICAgICAgIGRvIG5vdCBpbmNsdWRlIEZF
QVRVUkUgKHNhbWUgYXMgLS1lbmFibGUtRkVBVFVSRT1ubykKICAtLWVuYWJs
ZS1GRUFUVVJFWz1BUkddICBpbmNsdWRlIEZFQVRVUkUgW0FSRz15ZXNdCiAg
LS1lbmFibGUtc2hhcmVkPVBLR1MgIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMg
ZGVmYXVsdD1ubwogIC0tZW5hYmxlLXN0YXRpYz1QS0dTICBidWlsZCBzdGF0
aWMgbGlicmFyaWVzIGRlZmF1bHQ9eWVzCiAgLS1lbmFibGUtZmFzdC1pbnN0
YWxsPVBLR1MgIG9wdGltaXplIGZvciBmYXN0IGluc3RhbGxhdGlvbiBkZWZh
dWx0PXllcwogIC0tZGlzYWJsZS1saWJ0b29sLWxvY2sgIGF2b2lkIGxvY2tp
bmcgKG1pZ2h0IGJyZWFrIHBhcmFsbGVsIGJ1aWxkcykKICAtLWRpc2FibGUt
bGFyZ2VmaWxlICAgICBvbWl0IHN1cHBvcnQgZm9yIGxhcmdlIGZpbGVzCgpP
cHRpb25hbCBQYWNrYWdlczoKICAtLXdpdGgtUEFDS0FHRVs9QVJHXSAgICB1
c2UgUEFDS0FHRSBbQVJHPXllc10KICAtLXdpdGhvdXQtUEFDS0FHRSAgICAg
ICBkbyBub3QgdXNlIFBBQ0tBR0UgKHNhbWUgYXMgLS13aXRoLVBBQ0tBR0U9
bm8pCiAgLS13aXRoLWJsYXM9QVJHICAgICAgICAgdXNlIGJsYXMgbGlicmFy
eSAtCiAgICAgICAgICAgICAgICAgICAgICAgICAgbm8oZGVmYXVsdCksYmxh
cyxjYmxhcyxhdGxhcyxwdGF0bGFzLGVzc2wsZXNzbHNtcCxzdW5wZXJmLGFj
bWwsbWFjb3MKICAtLXdpdGgtdmVjbGliPUFSRyAgICAgICB1c2UgdmVjdG9y
IGxpYnJhcnkgLSBubyhkZWZhdWx0KSxtYXNzCiAgLS13aXRoLXRlc3RkYXRh
PUFSRyAgICAgZmluZCBRdWlja05ldCB0ZXN0IGRhdGEgaW4gc3BlY2lmaWVk
IGRpcmVjdG9yeQogIC0td2l0aC1ydHN0PUFSRyAgICAgICAgIGZpbmQgcnRz
dCB0ZXN0IGxpYnJhcnkgaW4gc3BlY2lmaWVkIGRpcmVjdG9yeQogIC0td2l0
aC1wdGhyZWFkPUFSRyAgICAgIHVzZSBQb3NpeCBUaHJlYWRzIGRlZmF1bHQ9
eWVzCiAgLS13aXRoLWdudS1sZCAgICAgICAgICAgYXNzdW1lIHRoZSBDIGNv
bXBpbGVyIHVzZXMgR05VIGxkIGRlZmF1bHQ9bm8KICAtLXdpdGgtcGljICAg
ICAgICAgICAgICB0cnkgdG8gdXNlIG9ubHkgUElDL25vbi1QSUMgb2JqZWN0
cyBkZWZhdWx0PXVzZSBib3RoCgpTb21lIGluZmx1ZW50aWFsIGVudmlyb25t
ZW50IHZhcmlhYmxlczoKICBMRCAgICAgICAgICBMaW5rZXIgY29tbWFuZAog
IENDICAgICAgICAgIEMgY29tcGlsZXIgY29tbWFuZAogIENGTEFHUyAgICAg
IEMgY29tcGlsZXIgZmxhZ3MKICBMREZMQUdTICAgICBsaW5rZXIgZmxhZ3Ms
IGUuZy4gLUw8bGliIGRpcj4gaWYgeW91IGhhdmUgbGlicmFyaWVzIGluIGEK
ICAgICAgICAgICAgICBub25zdGFuZGFyZCBkaXJlY3RvcnkgPGxpYiBkaXI+
CiAgQ1BQRkxBR1MgICAgQy9DKysgcHJlcHJvY2Vzc29yIGZsYWdzLCBlLmcu
IC1JPGluY2x1ZGUgZGlyPiBpZiB5b3UgaGF2ZQogICAgICAgICAgICAgIGhl
YWRlcnMgaW4gYSBub25zdGFuZGFyZCBkaXJlY3RvcnkgPGluY2x1ZGUgZGly
PgogIENYWCAgICAgICAgIEMrKyBjb21waWxlciBjb21tYW5kCiAgQ1hYRkxB
R1MgICAgQysrIGNvbXBpbGVyIGZsYWdzCiAgQ1BQICAgICAgICAgQyBwcmVw
cm9jZXNzb3IKClVzZSB0aGVzZSB2YXJpYWJsZXMgdG8gb3ZlcnJpZGUgdGhl
IGNob2ljZXMgbWFkZSBieSBgY29uZmlndXJlJyBvciB0byBoZWxwCml0IHRv
IGZpbmQgbGlicmFyaWVzIGFuZCBwcm9ncmFtcyB3aXRoIG5vbnN0YW5kYXJk
IG5hbWVzL2xvY2F0aW9ucy4KClJlcG9ydCBidWdzIHRvIDxxdWlja25ldC1i
dWdzQElDU0kuQmVya2VsZXkuRURVPi4KX0FDRU9GCmZpCgppZiB0ZXN0ICIk
YWNfaW5pdF9oZWxwIiA9ICJyZWN1cnNpdmUiOyB0aGVuCiAgIyBJZiB0aGVy
ZSBhcmUgc3ViZGlycywgcmVwb3J0IHRoZWlyIHNwZWNpZmljIC0taGVscC4K
ICBhY19wb3BkaXI9YHB3ZGAKICBmb3IgYWNfZGlyIGluIDogJGFjX3N1YmRp
cnNfYWxsOyBkbyB0ZXN0ICJ4JGFjX2RpciIgPSB4OiAmJiBjb250aW51ZQog
ICAgdGVzdCAtZCAkYWNfZGlyIHx8IGNvbnRpbnVlCiAgICBhY19idWlsZGRp
cj0uCgppZiB0ZXN0ICIkYWNfZGlyIiAhPSAuOyB0aGVuCiAgYWNfZGlyX3N1
ZmZpeD0vYGVjaG8gIiRhY19kaXIiIHwgc2VkICdzLF5cLltcXC9dLCwnYAog
ICMgQSAiLi4vIiBmb3IgZWFjaCBkaXJlY3RvcnkgaW4gJGFjX2Rpcl9zdWZm
aXguCiAgYWNfdG9wX2J1aWxkZGlyPWBlY2hvICIkYWNfZGlyX3N1ZmZpeCIg
fCBzZWQgJ3MsL1teXFwvXSosLi4vLGcnYAplbHNlCiAgYWNfZGlyX3N1ZmZp
eD0gYWNfdG9wX2J1aWxkZGlyPQpmaQoKY2FzZSAkc3JjZGlyIGluCiAgLikg
ICMgTm8gLS1zcmNkaXIgb3B0aW9uLiAgV2UgYXJlIGJ1aWxkaW5nIGluIHBs
YWNlLgogICAgYWNfc3JjZGlyPS4KICAgIGlmIHRlc3QgLXogIiRhY190b3Bf
YnVpbGRkaXIiOyB0aGVuCiAgICAgICBhY190b3Bfc3JjZGlyPS4KICAgIGVs
c2UKICAgICAgIGFjX3RvcF9zcmNkaXI9YGVjaG8gJGFjX3RvcF9idWlsZGRp
ciB8IHNlZCAncywvJCwsJ2AKICAgIGZpIDs7CiAgW1xcL10qIHwgPzpbXFwv
XSogKSAgIyBBYnNvbHV0ZSBwYXRoLgogICAgYWNfc3JjZGlyPSRzcmNkaXIk
YWNfZGlyX3N1ZmZpeDsKICAgIGFjX3RvcF9zcmNkaXI9JHNyY2RpciA7Owog
ICopICMgUmVsYXRpdmUgcGF0aC4KICAgIGFjX3NyY2Rpcj0kYWNfdG9wX2J1
aWxkZGlyJHNyY2RpciRhY19kaXJfc3VmZml4CiAgICBhY190b3Bfc3JjZGly
PSRhY190b3BfYnVpbGRkaXIkc3JjZGlyIDs7CmVzYWMKIyBEb24ndCBibGlu
ZGx5IHBlcmZvcm0gYSBgY2QgIiRhY19kaXIiLyRhY19mb28gJiYgcHdkYCBz
aW5jZSAkYWNfZm9vIGNhbiBiZQojIGFic29sdXRlLgphY19hYnNfYnVpbGRk
aXI9YGNkICIkYWNfZGlyIiAmJiBjZCAkYWNfYnVpbGRkaXIgJiYgcHdkYAph
Y19hYnNfdG9wX2J1aWxkZGlyPWBjZCAiJGFjX2RpciIgJiYgY2QgJHthY190
b3BfYnVpbGRkaXJ9LiAmJiBwd2RgCmFjX2Fic19zcmNkaXI9YGNkICIkYWNf
ZGlyIiAmJiBjZCAkYWNfc3JjZGlyICYmIHB3ZGAKYWNfYWJzX3RvcF9zcmNk
aXI9YGNkICIkYWNfZGlyIiAmJiBjZCAkYWNfdG9wX3NyY2RpciAmJiBwd2Rg
CgogICAgY2QgJGFjX2RpcgogICAgIyBDaGVjayBmb3IgZ3Vlc3RlZCBjb25m
aWd1cmU7IG90aGVyd2lzZSBnZXQgQ3lnbnVzIHN0eWxlIGNvbmZpZ3VyZS4K
ICAgIGlmIHRlc3QgLWYgJGFjX3NyY2Rpci9jb25maWd1cmUuZ251OyB0aGVu
CiAgICAgIGVjaG8KICAgICAgJFNIRUxMICRhY19zcmNkaXIvY29uZmlndXJl
LmdudSAgLS1oZWxwPXJlY3Vyc2l2ZQogICAgZWxpZiB0ZXN0IC1mICRhY19z
cmNkaXIvY29uZmlndXJlOyB0aGVuCiAgICAgIGVjaG8KICAgICAgJFNIRUxM
ICRhY19zcmNkaXIvY29uZmlndXJlICAtLWhlbHA9cmVjdXJzaXZlCiAgICBl
bGlmIHRlc3QgLWYgJGFjX3NyY2Rpci9jb25maWd1cmUuYWMgfHwKICAgICAg
ICAgICB0ZXN0IC1mICRhY19zcmNkaXIvY29uZmlndXJlLmluOyB0aGVuCiAg
ICAgIGVjaG8KICAgICAgJGFjX2NvbmZpZ3VyZSAtLWhlbHAKICAgIGVsc2UK
ICAgICAgZWNobyAiJGFzX21lOiBXQVJOSU5HOiBubyBjb25maWd1cmF0aW9u
IGluZm9ybWF0aW9uIGlzIGluICRhY19kaXIiID4mMgogICAgZmkKICAgIGNk
ICRhY19wb3BkaXIKICBkb25lCmZpCgp0ZXN0IC1uICIkYWNfaW5pdF9oZWxw
IiAmJiBleGl0IDAKaWYgJGFjX2luaXRfdmVyc2lvbjsgdGhlbgogIGNhdCA8
PFxfQUNFT0YKUXVpY2tOZXQgY29uZmlndXJlIHYzXzExCmdlbmVyYXRlZCBi
eSBHTlUgQXV0b2NvbmYgMi41NwoKQ29weXJpZ2h0IDE5OTIsIDE5OTMsIDE5
OTQsIDE5OTUsIDE5OTYsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIK
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuClRoaXMgY29uZmlndXJl
IHNjcmlwdCBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uCmdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHks
IGRpc3RyaWJ1dGUgYW5kIG1vZGlmeSBpdC4KX0FDRU9GCiAgZXhpdCAwCmZp
CmV4ZWMgNT5jb25maWcubG9nCmNhdCA+JjUgPDxfQUNFT0YKVGhpcyBmaWxl
IGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMg
d2hpbGUKcnVubmluZyBjb25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYg
Y29uZmlndXJlIG1ha2VzIGEgbWlzdGFrZS4KCkl0IHdhcyBjcmVhdGVkIGJ5
IFF1aWNrTmV0ICRhc19tZSB2M18xMSwgd2hpY2ggd2FzCmdlbmVyYXRlZCBi
eSBHTlUgQXV0b2NvbmYgMi41Ny4gIEludm9jYXRpb24gY29tbWFuZCBsaW5l
IHdhcwoKICAkICQwICRACgpfQUNFT0YKewpjYXQgPDxfQVNVTkFNRQojIyAt
LS0tLS0tLS0gIyMKIyMgUGxhdGZvcm0uICMjCiMjIC0tLS0tLS0tLSAjIwoK
aG9zdG5hbWUgPSBgKGhvc3RuYW1lIHx8IHVuYW1lIC1uKSAyPi9kZXYvbnVs
bCB8IHNlZCAxcWAKdW5hbWUgLW0gPSBgKHVuYW1lIC1tKSAyPi9kZXYvbnVs
bCB8fCBlY2hvIHVua25vd25gCnVuYW1lIC1yID0gYCh1bmFtZSAtcikgMj4v
ZGV2L251bGwgfHwgZWNobyB1bmtub3duYAp1bmFtZSAtcyA9IGAodW5hbWUg
LXMpIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKdW5hbWUgLXYgPSBg
KHVuYW1lIC12KSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCgovdXNy
L2Jpbi91bmFtZSAtcCA9IGAoL3Vzci9iaW4vdW5hbWUgLXApIDI+L2Rldi9u
dWxsIHx8IGVjaG8gdW5rbm93bmAKL2Jpbi91bmFtZSAtWCAgICAgPSBgKC9i
aW4vdW5hbWUgLVgpIDI+L2Rldi9udWxsICAgICB8fCBlY2hvIHVua25vd25g
CgovYmluL2FyY2ggICAgICAgICAgICAgID0gYCgvYmluL2FyY2gpIDI+L2Rl
di9udWxsICAgICAgICAgICAgICB8fCBlY2hvIHVua25vd25gCi91c3IvYmlu
L2FyY2ggLWsgICAgICAgPSBgKC91c3IvYmluL2FyY2ggLWspIDI+L2Rldi9u
dWxsICAgICAgIHx8IGVjaG8gdW5rbm93bmAKL3Vzci9jb252ZXgvZ2V0c3lz
aW5mbyA9IGAoL3Vzci9jb252ZXgvZ2V0c3lzaW5mbykgMj4vZGV2L251bGwg
fHwgZWNobyB1bmtub3duYApob3N0aW5mbyAgICAgICAgICAgICAgID0gYCho
b3N0aW5mbykgMj4vZGV2L251bGwgICAgICAgICAgICAgICB8fCBlY2hvIHVu
a25vd25gCi9iaW4vbWFjaGluZSAgICAgICAgICAgPSBgKC9iaW4vbWFjaGlu
ZSkgMj4vZGV2L251bGwgICAgICAgICAgIHx8IGVjaG8gdW5rbm93bmAKL3Vz
ci9iaW4vb3NsZXZlbCAgICAgICA9IGAoL3Vzci9iaW4vb3NsZXZlbCkgMj4v
ZGV2L251bGwgICAgICAgfHwgZWNobyB1bmtub3duYAovYmluL3VuaXZlcnNl
ICAgICAgICAgID0gYCgvYmluL3VuaXZlcnNlKSAyPi9kZXYvbnVsbCAgICAg
ICAgICB8fCBlY2hvIHVua25vd25gCgpfQVNVTkFNRQoKYXNfc2F2ZV9JRlM9
JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgpmb3IgYXNfZGlyIGluICRQQVRI
CmRvCiAgSUZTPSRhc19zYXZlX0lGUwogIHRlc3QgLXogIiRhc19kaXIiICYm
IGFzX2Rpcj0uCiAgZWNobyAiUEFUSDogJGFzX2RpciIKZG9uZQoKfSA+JjUK
CmNhdCA+JjUgPDxfQUNFT0YKCgojIyAtLS0tLS0tLS0tLSAjIwojIyBDb3Jl
IHRlc3RzLiAjIwojIyAtLS0tLS0tLS0tLSAjIwoKX0FDRU9GCgoKIyBLZWVw
IGEgdHJhY2Ugb2YgdGhlIGNvbW1hbmQgbGluZS4KIyBTdHJpcCBvdXQgLS1u
by1jcmVhdGUgYW5kIC0tbm8tcmVjdXJzaW9uIHNvIHRoZXkgZG8gbm90IHBp
bGUgdXAuCiMgU3RyaXAgb3V0IC0tc2lsZW50IGJlY2F1c2Ugd2UgZG9uJ3Qg
d2FudCB0byByZWNvcmQgaXQgZm9yIGZ1dHVyZSBydW5zLgojIEFsc28gcXVv
dGUgYW55IGFyZ3MgY29udGFpbmluZyBzaGVsbCBtZXRhLWNoYXJhY3RlcnMu
CiMgTWFrZSB0d28gcGFzc2VzIHRvIGFsbG93IGZvciBwcm9wZXIgZHVwbGlj
YXRlLWFyZ3VtZW50IHN1cHByZXNzaW9uLgphY19jb25maWd1cmVfYXJncz0K
YWNfY29uZmlndXJlX2FyZ3MwPQphY19jb25maWd1cmVfYXJnczE9CmFjX3Nl
cD0KYWNfbXVzdF9rZWVwX25leHQ9ZmFsc2UKZm9yIGFjX3Bhc3MgaW4gMSAy
CmRvCiAgZm9yIGFjX2FyZwogIGRvCiAgICBjYXNlICRhY19hcmcgaW4KICAg
IC1uby1jcmVhdGUgfCAtLW5vLWMqIHwgLW4gfCAtbm8tcmVjdXJzaW9uIHwg
LS1uby1yKikgY29udGludWUgOzsKICAgIC1xIHwgLXF1aWV0IHwgLS1xdWll
dCB8IC0tcXVpZSB8IC0tcXVpIHwgLS1xdSB8IC0tcSBcCiAgICB8IC1zaWxl
bnQgfCAtLXNpbGVudCB8IC0tc2lsZW4gfCAtLXNpbGUgfCAtLXNpbCkKICAg
ICAgY29udGludWUgOzsKICAgICoiICIqfCoiCSIqfCpbXFtcXVx+XCNcJFxe
XCZcKlwoXClce1x9XFxcfFw7XDxcPlw/XCJcJ10qKQogICAgICBhY19hcmc9
YGVjaG8gIiRhY19hcmciIHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgIDs7
CiAgICBlc2FjCiAgICBjYXNlICRhY19wYXNzIGluCiAgICAxKSBhY19jb25m
aWd1cmVfYXJnczA9IiRhY19jb25maWd1cmVfYXJnczAgJyRhY19hcmcnIiA7
OwogICAgMikKICAgICAgYWNfY29uZmlndXJlX2FyZ3MxPSIkYWNfY29uZmln
dXJlX2FyZ3MxICckYWNfYXJnJyIKICAgICAgaWYgdGVzdCAkYWNfbXVzdF9r
ZWVwX25leHQgPSB0cnVlOyB0aGVuCiAgICAgICAgYWNfbXVzdF9rZWVwX25l
eHQ9ZmFsc2UgIyBHb3QgdmFsdWUsIGJhY2sgdG8gbm9ybWFsLgogICAgICBl
bHNlCiAgICAgICAgY2FzZSAkYWNfYXJnIGluCiAgICAgICAgICAqPSogfCAt
LWNvbmZpZy1jYWNoZSB8IC1DIHwgLWRpc2FibGUtKiB8IC0tZGlzYWJsZS0q
IFwKICAgICAgICAgIHwgLWVuYWJsZS0qIHwgLS1lbmFibGUtKiB8IC1nYXMg
fCAtLWcqIHwgLW5mcCB8IC0tbmYqIFwKICAgICAgICAgIHwgLXEgfCAtcXVp
ZXQgfCAtLXEqIHwgLXNpbGVudCB8IC0tc2lsKiB8IC12IHwgLXZlcmIqIFwK
ICAgICAgICAgIHwgLXdpdGgtKiB8IC0td2l0aC0qIHwgLXdpdGhvdXQtKiB8
IC0td2l0aG91dC0qIHwgLS14KQogICAgICAgICAgICBjYXNlICIkYWNfY29u
ZmlndXJlX2FyZ3MwICIgaW4KICAgICAgICAgICAgICAiJGFjX2NvbmZpZ3Vy
ZV9hcmdzMSIqIiAnJGFjX2FyZycgIiogKSBjb250aW51ZSA7OwogICAgICAg
ICAgICBlc2FjCiAgICAgICAgICAgIDs7CiAgICAgICAgICAtKiApIGFjX211
c3Rfa2VlcF9uZXh0PXRydWUgOzsKICAgICAgICBlc2FjCiAgICAgIGZpCiAg
ICAgIGFjX2NvbmZpZ3VyZV9hcmdzPSIkYWNfY29uZmlndXJlX2FyZ3MkYWNf
c2VwJyRhY19hcmcnIgogICAgICAjIEdldCByaWQgb2YgdGhlIGxlYWRpbmcg
c3BhY2UuCiAgICAgIGFjX3NlcD0iICIKICAgICAgOzsKICAgIGVzYWMKICBk
b25lCmRvbmUKJGFzX3Vuc2V0IGFjX2NvbmZpZ3VyZV9hcmdzMCB8fCB0ZXN0
ICIke2FjX2NvbmZpZ3VyZV9hcmdzMCtzZXR9IiAhPSBzZXQgfHwgeyBhY19j
b25maWd1cmVfYXJnczA9OyBleHBvcnQgYWNfY29uZmlndXJlX2FyZ3MwOyB9
CiRhc191bnNldCBhY19jb25maWd1cmVfYXJnczEgfHwgdGVzdCAiJHthY19j
b25maWd1cmVfYXJnczErc2V0fSIgIT0gc2V0IHx8IHsgYWNfY29uZmlndXJl
X2FyZ3MxPTsgZXhwb3J0IGFjX2NvbmZpZ3VyZV9hcmdzMTsgfQoKIyBXaGVu
IGludGVycnVwdGVkIG9yIGV4aXQnZCwgY2xlYW51cCB0ZW1wb3JhcnkgZmls
ZXMsIGFuZCBjb21wbGV0ZQojIGNvbmZpZy5sb2cuICBXZSByZW1vdmUgY29t
bWVudHMgYmVjYXVzZSBhbnl3YXkgdGhlIHF1b3RlcyBpbiB0aGVyZQojIHdv
dWxkIGNhdXNlIHByb2JsZW1zIG9yIGxvb2sgdWdseS4KIyBXQVJOSU5HOiBC
ZSBzdXJlIG5vdCB0byB1c2Ugc2luZ2xlIHF1b3RlcyBpbiB0aGVyZSwgYXMg
c29tZSBzaGVsbHMsCiMgc3VjaCBhcyBvdXIgRFUgNS4wIGZyaWVuZCwgd2ls
bCB0aGVuIGBjbG9zZScgdGhlIHRyYXAuCnRyYXAgJ2V4aXRfc3RhdHVzPSQ/
CiAgIyBTYXZlIGludG8gY29uZmlnLmxvZyBzb21lIGluZm9ybWF0aW9uIHRo
YXQgbWlnaHQgaGVscCBpbiBkZWJ1Z2dpbmcuCiAgewogICAgZWNobwoKICAg
IGNhdCA8PFxfQVNCT1gKIyMgLS0tLS0tLS0tLS0tLS0tLSAjIwojIyBDYWNo
ZSB2YXJpYWJsZXMuICMjCiMjIC0tLS0tLS0tLS0tLS0tLS0gIyMKX0FTQk9Y
CiAgICBlY2hvCiAgICAjIFRoZSBmb2xsb3dpbmcgd2F5IG9mIHdyaXRpbmcg
dGhlIGNhY2hlIG1pc2hhbmRsZXMgbmV3bGluZXMgaW4gdmFsdWVzLAp7CiAg
KHNldCkgMj4mMSB8CiAgICBjYXNlIGAoYWNfc3BhY2U9JyInIicgJyInIic7
IHNldCB8IGdyZXAgYWNfc3BhY2UpIDI+JjFgIGluCiAgICAqYWNfc3BhY2U9
XCAqKQogICAgICBzZWQgLW4gXAogICAgICAgICJzLyciJyInLyciJyInXFxc
XCciJyInJyInIicvZzsKICAgIAkgIHMvXlxcKFtfJGFzX2NyX2FsbnVtXSpf
Y3ZfW18kYXNfY3JfYWxudW1dKlxcKT1cXCguKlxcKS9cXDE9JyInIidcXDIn
IiciJy9wIgogICAgICA7OwogICAgKikKICAgICAgc2VkIC1uIFwKICAgICAg
ICAicy9eXFwoW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0q
XFwpPVxcKC4qXFwpL1xcMT1cXDIvcCIKICAgICAgOzsKICAgIGVzYWM7Cn0K
ICAgIGVjaG8KCiAgICBjYXQgPDxcX0FTQk9YCiMjIC0tLS0tLS0tLS0tLS0t
LS0tICMjCiMjIE91dHB1dCB2YXJpYWJsZXMuICMjCiMjIC0tLS0tLS0tLS0t
LS0tLS0tICMjCl9BU0JPWAogICAgZWNobwogICAgZm9yIGFjX3ZhciBpbiAk
YWNfc3Vic3RfdmFycwogICAgZG8KICAgICAgZXZhbCBhY192YWw9JGBlY2hv
ICRhY192YXJgCiAgICAgIGVjaG8gIiRhY192YXI9JyInIickYWNfdmFsJyIn
IiciCiAgICBkb25lIHwgc29ydAogICAgZWNobwoKICAgIGlmIHRlc3QgLW4g
IiRhY19zdWJzdF9maWxlcyI7IHRoZW4KICAgICAgY2F0IDw8XF9BU0JPWAoj
IyAtLS0tLS0tLS0tLS0tICMjCiMjIE91dHB1dCBmaWxlcy4gIyMKIyMgLS0t
LS0tLS0tLS0tLSAjIwpfQVNCT1gKICAgICAgZWNobwogICAgICBmb3IgYWNf
dmFyIGluICRhY19zdWJzdF9maWxlcwogICAgICBkbwoJZXZhbCBhY192YWw9
JGBlY2hvICRhY192YXJgCiAgICAgICAgZWNobyAiJGFjX3Zhcj0nIiciJyRh
Y192YWwnIiciJyIKICAgICAgZG9uZSB8IHNvcnQKICAgICAgZWNobwogICAg
ZmkKCiAgICBpZiB0ZXN0IC1zIGNvbmZkZWZzLmg7IHRoZW4KICAgICAgY2F0
IDw8XF9BU0JPWAojIyAtLS0tLS0tLS0tLSAjIwojIyBjb25mZGVmcy5oLiAj
IwojIyAtLS0tLS0tLS0tLSAjIwpfQVNCT1gKICAgICAgZWNobwogICAgICBz
ZWQgIi9eJC9kIiBjb25mZGVmcy5oIHwgc29ydAogICAgICBlY2hvCiAgICBm
aQogICAgdGVzdCAiJGFjX3NpZ25hbCIgIT0gMCAmJgogICAgICBlY2hvICIk
YXNfbWU6IGNhdWdodCBzaWduYWwgJGFjX3NpZ25hbCIKICAgIGVjaG8gIiRh
c19tZTogZXhpdCAkZXhpdF9zdGF0dXMiCiAgfSA+JjUKICBybSAtZiBjb3Jl
IGNvcmUuKiAqLmNvcmUgJiYKICBybSAtcmYgY29uZnRlc3QqIGNvbmZkZWZz
KiBjb25mJCQqICRhY19jbGVhbl9maWxlcyAmJgogICAgZXhpdCAkZXhpdF9z
dGF0dXMKICAgICAnIDAKZm9yIGFjX3NpZ25hbCBpbiAxIDIgMTMgMTU7IGRv
CiAgdHJhcCAnYWNfc2lnbmFsPSckYWNfc2lnbmFsJzsgeyAoZXhpdCAxKTsg
ZXhpdCAxOyB9JyAkYWNfc2lnbmFsCmRvbmUKYWNfc2lnbmFsPTAKCiMgY29u
ZmRlZnMuaCBhdm9pZHMgT1MgY29tbWFuZCBsaW5lIGxlbmd0aCBsaW1pdHMg
dGhhdCBERUZTIGNhbiBleGNlZWQuCnJtIC1yZiBjb25mdGVzdCogY29uZmRl
ZnMuaAojIEFJWCBjcHAgbG9zZXMgb24gYW4gZW1wdHkgZmlsZSwgc28gbWFr
ZSBzdXJlIGl0IGNvbnRhaW5zIGF0IGxlYXN0IGEgbmV3bGluZS4KZWNobyA+
Y29uZmRlZnMuaAoKIyBQcmVkZWZpbmVkIHByZXByb2Nlc3NvciB2YXJpYWJs
ZXMuCgpjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCiNkZWZpbmUgUEFDS0FH
RV9OQU1FICIkUEFDS0FHRV9OQU1FIgpfQUNFT0YKCgpjYXQgPj5jb25mZGVm
cy5oIDw8X0FDRU9GCiNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICIkUEFDS0FH
RV9UQVJOQU1FIgpfQUNFT0YKCgpjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9G
CiNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIkUEFDS0FHRV9WRVJTSU9OIgpf
QUNFT0YKCgpjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCiNkZWZpbmUgUEFD
S0FHRV9TVFJJTkcgIiRQQUNLQUdFX1NUUklORyIKX0FDRU9GCgoKY2F0ID4+
Y29uZmRlZnMuaCA8PF9BQ0VPRgojZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JU
ICIkUEFDS0FHRV9CVUdSRVBPUlQiCl9BQ0VPRgoKCiMgTGV0IHRoZSBzaXRl
IGZpbGUgc2VsZWN0IGFuIGFsdGVybmF0ZSBjYWNoZSBmaWxlIGlmIGl0IHdh
bnRzIHRvLgojIFByZWZlciBleHBsaWNpdGx5IHNlbGVjdGVkIGZpbGUgdG8g
YXV0b21hdGljYWxseSBzZWxlY3RlZCBvbmVzLgppZiB0ZXN0IC16ICIkQ09O
RklHX1NJVEUiOyB0aGVuCiAgaWYgdGVzdCAieCRwcmVmaXgiICE9IHhOT05F
OyB0aGVuCiAgICBDT05GSUdfU0lURT0iJHByZWZpeC9zaGFyZS9jb25maWcu
c2l0ZSAkcHJlZml4L2V0Yy9jb25maWcuc2l0ZSIKICBlbHNlCiAgICBDT05G
SUdfU0lURT0iJGFjX2RlZmF1bHRfcHJlZml4L3NoYXJlL2NvbmZpZy5zaXRl
ICRhY19kZWZhdWx0X3ByZWZpeC9ldGMvY29uZmlnLnNpdGUiCiAgZmkKZmkK
Zm9yIGFjX3NpdGVfZmlsZSBpbiAkQ09ORklHX1NJVEU7IGRvCiAgaWYgdGVz
dCAtciAiJGFjX3NpdGVfZmlsZSI7IHRoZW4KICAgIHsgZWNobyAiJGFzX21l
OiRMSU5FTk86IGxvYWRpbmcgc2l0ZSBzY3JpcHQgJGFjX3NpdGVfZmlsZSIg
PiY1CmVjaG8gIiRhc19tZTogbG9hZGluZyBzaXRlIHNjcmlwdCAkYWNfc2l0
ZV9maWxlIiA+JjY7fQogICAgc2VkICdzL14vfCAvJyAiJGFjX3NpdGVfZmls
ZSIgPiY1CiAgICAuICIkYWNfc2l0ZV9maWxlIgogIGZpCmRvbmUKCmlmIHRl
c3QgLXIgIiRjYWNoZV9maWxlIjsgdGhlbgogICMgU29tZSB2ZXJzaW9ucyBv
ZiBiYXNoIHdpbGwgZmFpbCB0byBzb3VyY2UgL2Rldi9udWxsIChzcGVjaWFs
CiAgIyBmaWxlcyBhY3R1YWxseSksIHNvIHdlIGF2b2lkIGRvaW5nIHRoYXQu
CiAgaWYgdGVzdCAtZiAiJGNhY2hlX2ZpbGUiOyB0aGVuCiAgICB7IGVjaG8g
IiRhc19tZTokTElORU5POiBsb2FkaW5nIGNhY2hlICRjYWNoZV9maWxlIiA+
JjUKZWNobyAiJGFzX21lOiBsb2FkaW5nIGNhY2hlICRjYWNoZV9maWxlIiA+
JjY7fQogICAgY2FzZSAkY2FjaGVfZmlsZSBpbgogICAgICBbXFwvXSogfCA/
OltcXC9dKiApIC4gJGNhY2hlX2ZpbGU7OwogICAgICAqKSAgICAgICAgICAg
ICAgICAgICAgICAuIC4vJGNhY2hlX2ZpbGU7OwogICAgZXNhYwogIGZpCmVs
c2UKICB7IGVjaG8gIiRhc19tZTokTElORU5POiBjcmVhdGluZyBjYWNoZSAk
Y2FjaGVfZmlsZSIgPiY1CmVjaG8gIiRhc19tZTogY3JlYXRpbmcgY2FjaGUg
JGNhY2hlX2ZpbGUiID4mNjt9CiAgPiRjYWNoZV9maWxlCmZpCgojIENoZWNr
IHRoYXQgdGhlIHByZWNpb3VzIHZhcmlhYmxlcyBzYXZlZCBpbiB0aGUgY2Fj
aGUgaGF2ZSBrZXB0IHRoZSBzYW1lCiMgdmFsdWUuCmFjX2NhY2hlX2NvcnJ1
cHRlZD1mYWxzZQpmb3IgYWNfdmFyIGluIGAoc2V0KSAyPiYxIHwKICAgICAg
ICAgICAgICAgc2VkIC1uICdzL15hY19lbnZfXChbYS16QS1aXzAtOV0qXClf
c2V0PS4qL1wxL3AnYDsgZG8KICBldmFsIGFjX29sZF9zZXQ9XCRhY19jdl9l
bnZfJHthY192YXJ9X3NldAogIGV2YWwgYWNfbmV3X3NldD1cJGFjX2Vudl8k
e2FjX3Zhcn1fc2V0CiAgZXZhbCBhY19vbGRfdmFsPSJcJGFjX2N2X2Vudl8k
e2FjX3Zhcn1fdmFsdWUiCiAgZXZhbCBhY19uZXdfdmFsPSJcJGFjX2Vudl8k
e2FjX3Zhcn1fdmFsdWUiCiAgY2FzZSAkYWNfb2xkX3NldCwkYWNfbmV3X3Nl
dCBpbgogICAgc2V0LCkKICAgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzog
ZXJyb3I6IFxgJGFjX3Zhcicgd2FzIHNldCB0byBcYCRhY19vbGRfdmFsJyBp
biB0aGUgcHJldmlvdXMgcnVuIiA+JjUKZWNobyAiJGFzX21lOiBlcnJvcjog
XGAkYWNfdmFyJyB3YXMgc2V0IHRvIFxgJGFjX29sZF92YWwnIGluIHRoZSBw
cmV2aW91cyBydW4iID4mMjt9CiAgICAgIGFjX2NhY2hlX2NvcnJ1cHRlZD06
IDs7CiAgICAsc2V0KQogICAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBl
cnJvcjogXGAkYWNfdmFyJyB3YXMgbm90IHNldCBpbiB0aGUgcHJldmlvdXMg
cnVuIiA+JjUKZWNobyAiJGFzX21lOiBlcnJvcjogXGAkYWNfdmFyJyB3YXMg
bm90IHNldCBpbiB0aGUgcHJldmlvdXMgcnVuIiA+JjI7fQogICAgICBhY19j
YWNoZV9jb3JydXB0ZWQ9OiA7OwogICAgLCk7OwogICAgKikKICAgICAgaWYg
dGVzdCAieCRhY19vbGRfdmFsIiAhPSAieCRhY19uZXdfdmFsIjsgdGhlbgog
ICAgICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBcYCRhY192
YXInIGhhcyBjaGFuZ2VkIHNpbmNlIHRoZSBwcmV2aW91cyBydW46IiA+JjUK
ZWNobyAiJGFzX21lOiBlcnJvcjogXGAkYWNfdmFyJyBoYXMgY2hhbmdlZCBz
aW5jZSB0aGUgcHJldmlvdXMgcnVuOiIgPiYyO30KICAgICAgICB7IGVjaG8g
IiRhc19tZTokTElORU5POiAgIGZvcm1lciB2YWx1ZTogICRhY19vbGRfdmFs
IiA+JjUKZWNobyAiJGFzX21lOiAgIGZvcm1lciB2YWx1ZTogICRhY19vbGRf
dmFsIiA+JjI7fQogICAgICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86ICAg
Y3VycmVudCB2YWx1ZTogJGFjX25ld192YWwiID4mNQplY2hvICIkYXNfbWU6
ICAgY3VycmVudCB2YWx1ZTogJGFjX25ld192YWwiID4mMjt9CiAgICAgICAg
YWNfY2FjaGVfY29ycnVwdGVkPToKICAgICAgZmk7OwogIGVzYWMKICAjIFBh
c3MgcHJlY2lvdXMgdmFyaWFibGVzIHRvIGNvbmZpZy5zdGF0dXMuCiAgaWYg
dGVzdCAiJGFjX25ld19zZXQiID0gc2V0OyB0aGVuCiAgICBjYXNlICRhY19u
ZXdfdmFsIGluCiAgICAqIiAiKnwqIgkiKnwqW1xbXF1cflwjXCRcXlwmXCpc
KFwpXHtcfVxcXHxcO1w8XD5cP1wiXCddKikKICAgICAgYWNfYXJnPSRhY192
YXI9YGVjaG8gIiRhY19uZXdfdmFsIiB8IHNlZCAicy8nLydcXFxcXFxcXCcn
L2ciYCA7OwogICAgKikgYWNfYXJnPSRhY192YXI9JGFjX25ld192YWwgOzsK
ICAgIGVzYWMKICAgIGNhc2UgIiAkYWNfY29uZmlndXJlX2FyZ3MgIiBpbgog
ICAgICAqIiAnJGFjX2FyZycgIiopIDs7ICMgQXZvaWQgZHVwcy4gIFVzZSBv
ZiBxdW90ZXMgZW5zdXJlcyBhY2N1cmFjeS4KICAgICAgKikgYWNfY29uZmln
dXJlX2FyZ3M9IiRhY19jb25maWd1cmVfYXJncyAnJGFjX2FyZyciIDs7CiAg
ICBlc2FjCiAgZmkKZG9uZQppZiAkYWNfY2FjaGVfY29ycnVwdGVkOyB0aGVu
CiAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNoYW5nZXMgaW4g
dGhlIGVudmlyb25tZW50IGNhbiBjb21wcm9taXNlIHRoZSBidWlsZCIgPiY1
CmVjaG8gIiRhc19tZTogZXJyb3I6IGNoYW5nZXMgaW4gdGhlIGVudmlyb25t
ZW50IGNhbiBjb21wcm9taXNlIHRoZSBidWlsZCIgPiYyO30KICB7IHsgZWNo
byAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBydW4gXGBtYWtlIGRpc3RjbGVh
bicgYW5kL29yIFxgcm0gJGNhY2hlX2ZpbGUnIGFuZCBzdGFydCBvdmVyIiA+
JjUKZWNobyAiJGFzX21lOiBlcnJvcjogcnVuIFxgbWFrZSBkaXN0Y2xlYW4n
IGFuZC9vciBcYHJtICRjYWNoZV9maWxlJyBhbmQgc3RhcnQgb3ZlciIgPiYy
O30KICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CmZpCgphY19leHQ9Ywph
Y19jcHA9JyRDUFAgJENQUEZMQUdTJwphY19jb21waWxlPSckQ0MgLWMgJENG
TEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCmFjX2xpbms9
JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1Mg
JExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCmFjX2NvbXBp
bGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKCgoKCgoKCgoKCgoKCgoK
CgoKCgoKCgoKCgoKCgpxbl9leGVjX3ByZWZpeD0ke2V4ZWNfcHJlZml4fQp0
ZXN0ICJ4JHFuX2V4ZWNfcHJlZml4IiA9IHhOT05FICYmIHFuX2V4ZWNfcHJl
Zml4PSR7cHJlZml4fQphY19hdXhfZGlyPQpmb3IgYWNfZGlyIGluICRzcmNk
aXIgJHNyY2Rpci8uLiAkc3JjZGlyLy4uLy4uOyBkbwogIGlmIHRlc3QgLWYg
JGFjX2Rpci9pbnN0YWxsLXNoOyB0aGVuCiAgICBhY19hdXhfZGlyPSRhY19k
aXIKICAgIGFjX2luc3RhbGxfc2g9IiRhY19hdXhfZGlyL2luc3RhbGwtc2gg
LWMiCiAgICBicmVhawogIGVsaWYgdGVzdCAtZiAkYWNfZGlyL2luc3RhbGwu
c2g7IHRoZW4KICAgIGFjX2F1eF9kaXI9JGFjX2RpcgogICAgYWNfaW5zdGFs
bF9zaD0iJGFjX2F1eF9kaXIvaW5zdGFsbC5zaCAtYyIKICAgIGJyZWFrCiAg
ZWxpZiB0ZXN0IC1mICRhY19kaXIvc2h0b29sOyB0aGVuCiAgICBhY19hdXhf
ZGlyPSRhY19kaXIKICAgIGFjX2luc3RhbGxfc2g9IiRhY19hdXhfZGlyL3No
dG9vbCBpbnN0YWxsIC1jIgogICAgYnJlYWsKICBmaQpkb25lCmlmIHRlc3Qg
LXogIiRhY19hdXhfZGlyIjsgdGhlbgogIHsgeyBlY2hvICIkYXNfbWU6JExJ
TkVOTzogZXJyb3I6IGNhbm5vdCBmaW5kIGluc3RhbGwtc2ggb3IgaW5zdGFs
bC5zaCBpbiAkc3JjZGlyICRzcmNkaXIvLi4gJHNyY2Rpci8uLi8uLiIgPiY1
CmVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBmaW5kIGluc3RhbGwtc2gg
b3IgaW5zdGFsbC5zaCBpbiAkc3JjZGlyICRzcmNkaXIvLi4gJHNyY2Rpci8u
Li8uLiIgPiYyO30KICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CmZpCmFj
X2NvbmZpZ19ndWVzcz0iJFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZy5ndWVz
cyIKYWNfY29uZmlnX3N1Yj0iJFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZy5z
dWIiCmFjX2NvbmZpZ3VyZT0iJFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZ3Vy
ZSIgIyBUaGlzIHNob3VsZCBiZSBDeWdudXMgY29uZmlndXJlLgoKIyBNYWtl
IHN1cmUgd2UgY2FuIHJ1biBjb25maWcuc3ViLgokYWNfY29uZmlnX3N1YiBz
dW40ID4vZGV2L251bGwgMj4mMSB8fAogIHsgeyBlY2hvICIkYXNfbWU6JExJ
TkVOTzogZXJyb3I6IGNhbm5vdCBydW4gJGFjX2NvbmZpZ19zdWIiID4mNQpl
Y2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgcnVuICRhY19jb25maWdfc3Vi
IiA+JjI7fQogICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KCmVjaG8gIiRh
c19tZTokTElORU5POiBjaGVja2luZyBidWlsZCBzeXN0ZW0gdHlwZSIgPiY1
CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgYnVpbGQgc3lzdGVtIHR5cGUuLi4g
JEVDSE9fQyIgPiY2CmlmIHRlc3QgIiR7YWNfY3ZfYnVpbGQrc2V0fSIgPSBz
ZXQ7IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4m
NgplbHNlCiAgYWNfY3ZfYnVpbGRfYWxpYXM9JGJ1aWxkX2FsaWFzCnRlc3Qg
LXogIiRhY19jdl9idWlsZF9hbGlhcyIgJiYKICBhY19jdl9idWlsZF9hbGlh
cz1gJGFjX2NvbmZpZ19ndWVzc2AKdGVzdCAteiAiJGFjX2N2X2J1aWxkX2Fs
aWFzIiAmJgogIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNh
bm5vdCBndWVzcyBidWlsZCB0eXBlOyB5b3UgbXVzdCBzcGVjaWZ5IG9uZSIg
PiY1CmVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBndWVzcyBidWlsZCB0
eXBlOyB5b3UgbXVzdCBzcGVjaWZ5IG9uZSIgPiYyO30KICAgeyAoZXhpdCAx
KTsgZXhpdCAxOyB9OyB9CmFjX2N2X2J1aWxkPWAkYWNfY29uZmlnX3N1YiAk
YWNfY3ZfYnVpbGRfYWxpYXNgIHx8CiAgeyB7IGVjaG8gIiRhc19tZTokTElO
RU5POiBlcnJvcjogJGFjX2NvbmZpZ19zdWIgJGFjX2N2X2J1aWxkX2FsaWFz
IGZhaWxlZCIgPiY1CmVjaG8gIiRhc19tZTogZXJyb3I6ICRhY19jb25maWdf
c3ViICRhY19jdl9idWlsZF9hbGlhcyBmYWlsZWQiID4mMjt9CiAgIHsgKGV4
aXQgMSk7IGV4aXQgMTsgfTsgfQoKZmkKZWNobyAiJGFzX21lOiRMSU5FTk86
IHJlc3VsdDogJGFjX2N2X2J1aWxkIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFj
X2N2X2J1aWxkIiA+JjYKYnVpbGQ9JGFjX2N2X2J1aWxkCmJ1aWxkX2NwdT1g
ZWNobyAkYWNfY3ZfYnVpbGQgfCBzZWQgJ3MvXlwoW14tXSpcKS1cKFteLV0q
XCktXCguKlwpJC9cMS8nYApidWlsZF92ZW5kb3I9YGVjaG8gJGFjX2N2X2J1
aWxkIHwgc2VkICdzL15cKFteLV0qXCktXChbXi1dKlwpLVwoLipcKSQvXDIv
J2AKYnVpbGRfb3M9YGVjaG8gJGFjX2N2X2J1aWxkIHwgc2VkICdzL15cKFte
LV0qXCktXChbXi1dKlwpLVwoLipcKSQvXDMvJ2AKCgplY2hvICIkYXNfbWU6
JExJTkVOTzogY2hlY2tpbmcgaG9zdCBzeXN0ZW0gdHlwZSIgPiY1CmVjaG8g
JEVDSE9fTiAiY2hlY2tpbmcgaG9zdCBzeXN0ZW0gdHlwZS4uLiAkRUNIT19D
IiA+JjYKaWYgdGVzdCAiJHthY19jdl9ob3N0K3NldH0iID0gc2V0OyB0aGVu
CiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZWxzZQog
IGFjX2N2X2hvc3RfYWxpYXM9JGhvc3RfYWxpYXMKdGVzdCAteiAiJGFjX2N2
X2hvc3RfYWxpYXMiICYmCiAgYWNfY3ZfaG9zdF9hbGlhcz0kYWNfY3ZfYnVp
bGRfYWxpYXMKYWNfY3ZfaG9zdD1gJGFjX2NvbmZpZ19zdWIgJGFjX2N2X2hv
c3RfYWxpYXNgIHx8CiAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJv
cjogJGFjX2NvbmZpZ19zdWIgJGFjX2N2X2hvc3RfYWxpYXMgZmFpbGVkIiA+
JjUKZWNobyAiJGFzX21lOiBlcnJvcjogJGFjX2NvbmZpZ19zdWIgJGFjX2N2
X2hvc3RfYWxpYXMgZmFpbGVkIiA+JjI7fQogICB7IChleGl0IDEpOyBleGl0
IDE7IH07IH0KCmZpCmVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRh
Y19jdl9ob3N0IiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hvc3QiID4m
Ngpob3N0PSRhY19jdl9ob3N0Cmhvc3RfY3B1PWBlY2hvICRhY19jdl9ob3N0
IHwgc2VkICdzL15cKFteLV0qXCktXChbXi1dKlwpLVwoLipcKSQvXDEvJ2AK
aG9zdF92ZW5kb3I9YGVjaG8gJGFjX2N2X2hvc3QgfCBzZWQgJ3MvXlwoW14t
XSpcKS1cKFteLV0qXCktXCguKlwpJC9cMi8nYApob3N0X29zPWBlY2hvICRh
Y19jdl9ob3N0IHwgc2VkICdzL15cKFteLV0qXCktXChbXi1dKlwpLVwoLipc
KSQvXDMvJ2AKCgplY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgdGFy
Z2V0IHN5c3RlbSB0eXBlIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyB0
YXJnZXQgc3lzdGVtIHR5cGUuLi4gJEVDSE9fQyIgPiY2CmlmIHRlc3QgIiR7
YWNfY3ZfdGFyZ2V0K3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19O
ICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZWxzZQogIGFjX2N2X3RhcmdldF9h
bGlhcz0kdGFyZ2V0X2FsaWFzCnRlc3QgIngkYWNfY3ZfdGFyZ2V0X2FsaWFz
IiA9ICJ4IiAmJgogIGFjX2N2X3RhcmdldF9hbGlhcz0kYWNfY3ZfaG9zdF9h
bGlhcwphY19jdl90YXJnZXQ9YCRhY19jb25maWdfc3ViICRhY19jdl90YXJn
ZXRfYWxpYXNgIHx8CiAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJv
cjogJGFjX2NvbmZpZ19zdWIgJGFjX2N2X3RhcmdldF9hbGlhcyBmYWlsZWQi
ID4mNQplY2hvICIkYXNfbWU6IGVycm9yOiAkYWNfY29uZmlnX3N1YiAkYWNf
Y3ZfdGFyZ2V0X2FsaWFzIGZhaWxlZCIgPiYyO30KICAgeyAoZXhpdCAxKTsg
ZXhpdCAxOyB9OyB9CgpmaQplY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0
OiAkYWNfY3ZfdGFyZ2V0IiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2N2X3Rh
cmdldCIgPiY2CnRhcmdldD0kYWNfY3ZfdGFyZ2V0CnRhcmdldF9jcHU9YGVj
aG8gJGFjX2N2X3RhcmdldCB8IHNlZCAncy9eXChbXi1dKlwpLVwoW14tXSpc
KS1cKC4qXCkkL1wxLydgCnRhcmdldF92ZW5kb3I9YGVjaG8gJGFjX2N2X3Rh
cmdldCB8IHNlZCAncy9eXChbXi1dKlwpLVwoW14tXSpcKS1cKC4qXCkkL1wy
LydgCnRhcmdldF9vcz1gZWNobyAkYWNfY3ZfdGFyZ2V0IHwgc2VkICdzL15c
KFteLV0qXCktXChbXi1dKlwpLVwoLipcKSQvXDMvJ2AKCgojIFRoZSBhbGlh
c2VzIHNhdmUgdGhlIG5hbWVzIHRoZSB1c2VyIHN1cHBsaWVkLCB3aGlsZSAk
aG9zdCBldGMuCiMgd2lsbCBnZXQgY2Fub25pY2FsaXplZC4KdGVzdCAtbiAi
JHRhcmdldF9hbGlhcyIgJiYKICB0ZXN0ICIkcHJvZ3JhbV9wcmVmaXgkcHJv
Z3JhbV9zdWZmaXgkcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSIgPSBcCiAgICBO
T05FTk9ORXMseCx4LCAmJgogIHByb2dyYW1fcHJlZml4PSR7dGFyZ2V0X2Fs
aWFzfS0KdGVzdCAiJHByb2dyYW1fcHJlZml4IiAhPSBOT05FICYmCiAgcHJv
Z3JhbV90cmFuc2Zvcm1fbmFtZT0icyxeLCRwcm9ncmFtX3ByZWZpeCw7JHBy
b2dyYW1fdHJhbnNmb3JtX25hbWUiCiMgVXNlIGEgZG91YmxlICQgc28gbWFr
ZSBpZ25vcmVzIGl0Lgp0ZXN0ICIkcHJvZ3JhbV9zdWZmaXgiICE9IE5PTkUg
JiYKICBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lPSJzLFwkLCRwcm9ncmFtX3N1
ZmZpeCw7JHByb2dyYW1fdHJhbnNmb3JtX25hbWUiCiMgRG91YmxlIGFueSBc
IG9yICQuICBlY2hvIG1pZ2h0IGludGVycHJldCBiYWNrc2xhc2hlcy4KIyBC
eSBkZWZhdWx0IHdhcyBgcyx4LHgnLCByZW1vdmUgaXQgaWYgdXNlbGVzcy4K
Y2F0IDw8XF9BQ0VPRiA+Y29uZnRlc3Quc2VkCnMvW1xcJF0vJiYvZztzLztz
LHgseCwkLy8KX0FDRU9GCnByb2dyYW1fdHJhbnNmb3JtX25hbWU9YGVjaG8g
JHByb2dyYW1fdHJhbnNmb3JtX25hbWUgfCBzZWQgLWYgY29uZnRlc3Quc2Vk
YApybSBjb25mdGVzdC5zZWQKCgoKCmFjX2N2X3VzZV9ibGFzPW5vCgojIENo
ZWNrIHdoZXRoZXIgLS13aXRoLWJsYXMgb3IgLS13aXRob3V0LWJsYXMgd2Fz
IGdpdmVuLgppZiB0ZXN0ICIke3dpdGhfYmxhcytzZXR9IiA9IHNldDsgdGhl
bgogIHdpdGh2YWw9IiR3aXRoX2JsYXMiCiAgYWNfY3ZfdXNlX2JsYXM9JHdp
dGh2YWwKZWxzZQogIGFjX2N2X3VzZV9ibGFzPW5vCmZpOwpjYXNlICRhY19j
dl91c2VfYmxhcyBpbgogIG5vfGJsYXN8Y2JsYXN8YXRsYXN8cHRhdGxhc3xl
c3NsfGVzc2xzbXB8c3VucGVyZnxhY21sfG1hY29zKQogICAgOzsKICAqKQog
ICAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogaW52YWxpZCB2
YWx1ZSBmb3IgLS13aXRoLWJsYXMiID4mNQplY2hvICIkYXNfbWU6IGVycm9y
OiBpbnZhbGlkIHZhbHVlIGZvciAtLXdpdGgtYmxhcyIgPiYyO30KICAgeyAo
ZXhpdCAxKTsgZXhpdCAxOyB9OyB9CiAgICA7Owplc2FjCgoKIyBDaGVjayB3
aGV0aGVyIC0td2l0aC12ZWNsaWIgb3IgLS13aXRob3V0LXZlY2xpYiB3YXMg
Z2l2ZW4uCmlmIHRlc3QgIiR7d2l0aF92ZWNsaWIrc2V0fSIgPSBzZXQ7IHRo
ZW4KICB3aXRodmFsPSIkd2l0aF92ZWNsaWIiCiAgYWNfY3ZfdXNlX3ZlY2xp
Yj0kd2l0aHZhbAplbHNlCiAgYWNfY3ZfdXNlX3ZlY2xpYj1ubwpmaTsKY2Fz
ZSAkYWNfY3ZfdXNlX3ZlY2xpYiBpbgogIG5vfG1hc3MpCiAgICA7OwogICop
CiAgICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbnZhbGlk
IHZhbHVlIGZvciAtLXdpdGgtdmVjbGliIiA+JjUKZWNobyAiJGFzX21lOiBl
cnJvcjogaW52YWxpZCB2YWx1ZSBmb3IgLS13aXRoLXZlY2xpYiIgPiYyO30K
ICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CiAgICA7Owplc2FjCgoKIyBD
aGVjayB3aGV0aGVyIC0td2l0aC10ZXN0ZGF0YSBvciAtLXdpdGhvdXQtdGVz
dGRhdGEgd2FzIGdpdmVuLgppZiB0ZXN0ICIke3dpdGhfdGVzdGRhdGErc2V0
fSIgPSBzZXQ7IHRoZW4KICB3aXRodmFsPSIkd2l0aF90ZXN0ZGF0YSIKICBh
Y19jdl90ZXN0ZGF0YT0kd2l0aHZhbAplbHNlCiAgYWNfY3ZfdGVzdGRhdGE9
JHtwcmVmaXh9L3NoYXJlL3F1aWNrbmV0X3Rlc3RkYXRhCmZpOwoKCiMgQ2hl
Y2sgd2hldGhlciAtLXdpdGgtcnRzdCBvciAtLXdpdGhvdXQtcnRzdCB3YXMg
Z2l2ZW4uCmlmIHRlc3QgIiR7d2l0aF9ydHN0K3NldH0iID0gc2V0OyB0aGVu
CiAgd2l0aHZhbD0iJHdpdGhfcnRzdCIKICBhY19jdl9ydHN0PSR3aXRodmFs
CmVsc2UKICBhY19jdl9ydHN0PSR7cW5fZXhlY19wcmVmaXh9L2xpYgpmaTsK
CgojIENoZWNrIHdoZXRoZXIgLS13aXRoLXJ0c3Qgb3IgLS13aXRob3V0LXJ0
c3Qgd2FzIGdpdmVuLgppZiB0ZXN0ICIke3dpdGhfcnRzdCtzZXR9IiA9IHNl
dDsgdGhlbgogIHdpdGh2YWw9IiR3aXRoX3J0c3QiCiAgYWNfY3ZfcnRzdD0k
d2l0aHZhbAplbHNlCiAgYWNfY3ZfcnRzdD0ke3FuX2V4ZWNfcHJlZml4fS9s
aWIKZmk7CgoKIyBDaGVjayB3aGV0aGVyIC0td2l0aC1wdGhyZWFkIG9yIC0t
d2l0aG91dC1wdGhyZWFkIHdhcyBnaXZlbi4KaWYgdGVzdCAiJHt3aXRoX3B0
aHJlYWQrc2V0fSIgPSBzZXQ7IHRoZW4KICB3aXRodmFsPSIkd2l0aF9wdGhy
ZWFkIgogIHdpdGhfcHRocmVhZD0kd2l0aHZhbAplbHNlCiAgd2l0aF9wdGhy
ZWFkPSJ5ZXMiCmZpOwoKICAgICAgICAgIGFjX2NvbmZpZ19oZWFkZXJzPSIk
YWNfY29uZmlnX2hlYWRlcnMgY29uZmlnLmgiCgoKCmFjX2V4dD1jCmFjX2Nw
cD0nJENQUCAkQ1BQRkxBR1MnCmFjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdT
ICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKYWNfbGluaz0nJEND
IC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERG
TEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKYWNfY29tcGlsZXJf
Z251PSRhY19jdl9jX2NvbXBpbGVyX2dudQppZiB0ZXN0IC1uICIkYWNfdG9v
bF9wcmVmaXgiOyB0aGVuCiAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9m
ICIke2FjX3Rvb2xfcHJlZml4fWdjYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dy
YW0gbmFtZSB3aXRoIGFyZ3MuCnNldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4
fWdjYzsgYWNfd29yZD0kMgplY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp
bmcgZm9yICRhY193b3JkIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBm
b3IgJGFjX3dvcmQuLi4gJEVDSE9fQyIgPiY2CmlmIHRlc3QgIiR7YWNfY3Zf
cHJvZ19DQytzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNh
Y2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBpZiB0ZXN0IC1uICIkQ0MiOyB0
aGVuCiAgYWNfY3ZfcHJvZ19DQz0iJENDIiAjIExldCB0aGUgdXNlciBvdmVy
cmlkZSB0aGUgdGVzdC4KZWxzZQphc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBB
VEhfU0VQQVJBVE9SCmZvciBhc19kaXIgaW4gJFBBVEgKZG8KICBJRlM9JGFz
X3NhdmVfSUZTCiAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KICBm
b3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9u
czsgZG8KICBpZiAkYXNfZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY193b3Jk
JGFjX2V4ZWNfZXh0IjsgdGhlbgogICAgYWNfY3ZfcHJvZ19DQz0iJHthY190
b29sX3ByZWZpeH1nY2MiCiAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogZm91
bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CiAgICBicmVh
ayAyCiAgZmkKZG9uZQpkb25lCgpmaQpmaQpDQz0kYWNfY3ZfcHJvZ19DQwpp
ZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCiAgZWNobyAiJGFzX21lOiRMSU5FTk86
IHJlc3VsdDogJENDIiA+JjUKZWNobyAiJHtFQ0hPX1R9JENDIiA+JjYKZWxz
ZQogIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKZWNo
byAiJHtFQ0hPX1R9bm8iID4mNgpmaQoKZmkKaWYgdGVzdCAteiAiJGFjX2N2
X3Byb2dfQ0MiOyB0aGVuCiAgYWNfY3RfQ0M9JENDCiAgIyBFeHRyYWN0IHRo
ZSBmaXJzdCB3b3JkIG9mICJnY2MiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFt
IG5hbWUgd2l0aCBhcmdzLgpzZXQgZHVtbXkgZ2NjOyBhY193b3JkPSQyCmVj
aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4m
NQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAkRUNI
T19DIiA+JjYKaWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X0NDK3NldH0i
ID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19D
IiA+JjYKZWxzZQogIGlmIHRlc3QgLW4gIiRhY19jdF9DQyI7IHRoZW4KICBh
Y19jdl9wcm9nX2FjX2N0X0NDPSIkYWNfY3RfQ0MiICMgTGV0IHRoZSB1c2Vy
IG92ZXJyaWRlIHRoZSB0ZXN0LgplbHNlCmFzX3NhdmVfSUZTPSRJRlM7IElG
Uz0kUEFUSF9TRVBBUkFUT1IKZm9yIGFzX2RpciBpbiAkUEFUSApkbwogIElG
Uz0kYXNfc2F2ZV9JRlMKICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9
LgogIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRl
bnNpb25zOyBkbwogIGlmICRhc19leGVjdXRhYmxlX3AgIiRhc19kaXIvJGFj
X3dvcmQkYWNfZXhlY19leHQiOyB0aGVuCiAgICBhY19jdl9wcm9nX2FjX2N0
X0NDPSJnY2MiCiAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFz
X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CiAgICBicmVhayAyCiAg
ZmkKZG9uZQpkb25lCgpmaQpmaQphY19jdF9DQz0kYWNfY3ZfcHJvZ19hY19j
dF9DQwppZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCiAgZWNobyAiJGFz
X21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X0NDIiA+JjUKZWNobyAiJHtF
Q0hPX1R9JGFjX2N0X0NDIiA+JjYKZWxzZQogIGVjaG8gIiRhc19tZTokTElO
RU5POiByZXN1bHQ6IG5vIiA+JjUKZWNobyAiJHtFQ0hPX1R9bm8iID4mNgpm
aQoKICBDQz0kYWNfY3RfQ0MKZWxzZQogIENDPSIkYWNfY3ZfcHJvZ19DQyIK
ZmkKCmlmIHRlc3QgLXogIiRDQyI7IHRoZW4KICBpZiB0ZXN0IC1uICIkYWNf
dG9vbF9wcmVmaXgiOyB0aGVuCiAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3Jk
IG9mICIke2FjX3Rvb2xfcHJlZml4fWNjIiwgc28gaXQgY2FuIGJlIGEgcHJv
Z3JhbSBuYW1lIHdpdGggYXJncy4Kc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVm
aXh9Y2M7IGFjX3dvcmQ9JDIKZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr
aW5nIGZvciAkYWNfd29yZCIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcg
Zm9yICRhY193b3JkLi4uICRFQ0hPX0MiID4mNgppZiB0ZXN0ICIke2FjX2N2
X3Byb2dfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hPX04gIihj
YWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCiAgaWYgdGVzdCAtbiAiJENDIjsg
dGhlbgogIGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhlIHVzZXIgb3Zl
cnJpZGUgdGhlIHRlc3QuCmVsc2UKYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQ
QVRIX1NFUEFSQVRPUgpmb3IgYXNfZGlyIGluICRQQVRICmRvCiAgSUZTPSRh
c19zYXZlX0lGUwogIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCiAg
Zm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lv
bnM7IGRvCiAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29y
ZCRhY19leGVjX2V4dCI7IHRoZW4KICAgIGFjX2N2X3Byb2dfQ0M9IiR7YWNf
dG9vbF9wcmVmaXh9Y2MiCiAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogZm91
bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CiAgICBicmVh
ayAyCiAgZmkKZG9uZQpkb25lCgpmaQpmaQpDQz0kYWNfY3ZfcHJvZ19DQwpp
ZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCiAgZWNobyAiJGFzX21lOiRMSU5FTk86
IHJlc3VsdDogJENDIiA+JjUKZWNobyAiJHtFQ0hPX1R9JENDIiA+JjYKZWxz
ZQogIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKZWNo
byAiJHtFQ0hPX1R9bm8iID4mNgpmaQoKZmkKaWYgdGVzdCAteiAiJGFjX2N2
X3Byb2dfQ0MiOyB0aGVuCiAgYWNfY3RfQ0M9JENDCiAgIyBFeHRyYWN0IHRo
ZSBmaXJzdCB3b3JkIG9mICJjYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0g
bmFtZSB3aXRoIGFyZ3MuCnNldCBkdW1teSBjYzsgYWNfd29yZD0kMgplY2hv
ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUK
ZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gJEVDSE9f
QyIgPiY2CmlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9DQytzZXR9IiA9
IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIg
PiY2CmVsc2UKICBpZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCiAgYWNf
Y3ZfcHJvZ19hY19jdF9DQz0iJGFjX2N0X0NDIiAjIExldCB0aGUgdXNlciBv
dmVycmlkZSB0aGUgdGVzdC4KZWxzZQphc19zYXZlX0lGUz0kSUZTOyBJRlM9
JFBBVEhfU0VQQVJBVE9SCmZvciBhc19kaXIgaW4gJFBBVEgKZG8KICBJRlM9
JGFzX3NhdmVfSUZTCiAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4K
ICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5z
aW9uczsgZG8KICBpZiAkYXNfZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY193
b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgogICAgYWNfY3ZfcHJvZ19hY19jdF9D
Qz0iY2MiCiAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rp
ci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CiAgICBicmVhayAyCiAgZmkK
ZG9uZQpkb25lCgpmaQpmaQphY19jdF9DQz0kYWNfY3ZfcHJvZ19hY19jdF9D
QwppZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCiAgZWNobyAiJGFzX21l
OiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X0NDIiA+JjUKZWNobyAiJHtFQ0hP
X1R9JGFjX2N0X0NDIiA+JjYKZWxzZQogIGVjaG8gIiRhc19tZTokTElORU5P
OiByZXN1bHQ6IG5vIiA+JjUKZWNobyAiJHtFQ0hPX1R9bm8iID4mNgpmaQoK
ICBDQz0kYWNfY3RfQ0MKZWxzZQogIENDPSIkYWNfY3ZfcHJvZ19DQyIKZmkK
CmZpCmlmIHRlc3QgLXogIiRDQyI7IHRoZW4KICAjIEV4dHJhY3QgdGhlIGZp
cnN0IHdvcmQgb2YgImNjIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1l
IHdpdGggYXJncy4Kc2V0IGR1bW15IGNjOyBhY193b3JkPSQyCmVjaG8gIiRh
c19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQplY2hv
ICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAkRUNIT19DIiA+
JjYKaWYgdGVzdCAiJHthY19jdl9wcm9nX0NDK3NldH0iID0gc2V0OyB0aGVu
CiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZWxzZQog
IGlmIHRlc3QgLW4gIiRDQyI7IHRoZW4KICBhY19jdl9wcm9nX0NDPSIkQ0Mi
ICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgplbHNlCiAgYWNf
cHJvZ19yZWplY3RlZD1ubwphc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhf
U0VQQVJBVE9SCmZvciBhc19kaXIgaW4gJFBBVEgKZG8KICBJRlM9JGFzX3Nh
dmVfSUZTCiAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KICBmb3Ig
YWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsg
ZG8KICBpZiAkYXNfZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY193b3JkJGFj
X2V4ZWNfZXh0IjsgdGhlbgogICAgaWYgdGVzdCAiJGFzX2Rpci8kYWNfd29y
ZCRhY19leGVjX2V4dCIgPSAiL3Vzci91Y2IvY2MiOyB0aGVuCiAgICAgICBh
Y19wcm9nX3JlamVjdGVkPXllcwogICAgICAgY29udGludWUKICAgICBmaQog
ICAgYWNfY3ZfcHJvZ19DQz0iY2MiCiAgICBlY2hvICIkYXNfbWU6JExJTkVO
TzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CiAg
ICBicmVhayAyCiAgZmkKZG9uZQpkb25lCgppZiB0ZXN0ICRhY19wcm9nX3Jl
amVjdGVkID0geWVzOyB0aGVuCiAgIyBXZSBmb3VuZCBhIGJvZ29uIGluIHRo
ZSBwYXRoLCBzbyBtYWtlIHN1cmUgd2UgbmV2ZXIgdXNlIGl0LgogIHNldCBk
dW1teSAkYWNfY3ZfcHJvZ19DQwogIHNoaWZ0CiAgaWYgdGVzdCAkIyAhPSAw
OyB0aGVuCiAgICAjIFdlIGNob3NlIGEgZGlmZmVyZW50IGNvbXBpbGVyIGZy
b20gdGhlIGJvZ3VzIG9uZS4KICAgICMgSG93ZXZlciwgaXQgaGFzIHRoZSBz
YW1lIGJhc2VuYW1lLCBzbyB0aGUgYm9nb24gd2lsbCBiZSBjaG9zZW4KICAg
ICMgZmlyc3QgaWYgd2Ugc2V0IENDIHRvIGp1c3QgdGhlIGJhc2VuYW1lOyB1
c2UgdGhlIGZ1bGwgZmlsZSBuYW1lLgogICAgc2hpZnQKICAgIGFjX2N2X3By
b2dfQ0M9IiRhc19kaXIvJGFjX3dvcmQkezErJyAnfSRAIgogIGZpCmZpCmZp
CmZpCkNDPSRhY19jdl9wcm9nX0NDCmlmIHRlc3QgLW4gIiRDQyI7IHRoZW4K
ICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ0MiID4mNQplY2hv
ICIke0VDSE9fVH0kQ0MiID4mNgplbHNlCiAgZWNobyAiJGFzX21lOiRMSU5F
Tk86IHJlc3VsdDogbm8iID4mNQplY2hvICIke0VDSE9fVH1ubyIgPiY2CmZp
CgpmaQppZiB0ZXN0IC16ICIkQ0MiOyB0aGVuCiAgaWYgdGVzdCAtbiAiJGFj
X3Rvb2xfcHJlZml4IjsgdGhlbgogIGZvciBhY19wcm9nIGluIGNsCiAgZG8K
ICAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Rvb2xfcHJl
Zml4JGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0
aCBhcmdzLgpzZXQgZHVtbXkgJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2c7IGFj
X3dvcmQ9JDIKZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAk
YWNfd29yZCIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY193
b3JkLi4uICRFQ0hPX0MiID4mNgppZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ0Mr
c2V0fSIgPSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRF
Q0hPX0MiID4mNgplbHNlCiAgaWYgdGVzdCAtbiAiJENDIjsgdGhlbgogIGFj
X2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhl
IHRlc3QuCmVsc2UKYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFS
QVRPUgpmb3IgYXNfZGlyIGluICRQQVRICmRvCiAgSUZTPSRhc19zYXZlX0lG
UwogIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCiAgZm9yIGFjX2V4
ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCiAg
aWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVj
X2V4dCI7IHRoZW4KICAgIGFjX2N2X3Byb2dfQ0M9IiRhY190b29sX3ByZWZp
eCRhY19wcm9nIgogICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRh
c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQogICAgYnJlYWsgMgog
IGZpCmRvbmUKZG9uZQoKZmkKZmkKQ0M9JGFjX2N2X3Byb2dfQ0MKaWYgdGVz
dCAtbiAiJENDIjsgdGhlbgogIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1
bHQ6ICRDQyIgPiY1CmVjaG8gIiR7RUNIT19UfSRDQyIgPiY2CmVsc2UKICBl
Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CmVjaG8gIiR7
RUNIT19UfW5vIiA+JjYKZmkKCiAgICB0ZXN0IC1uICIkQ0MiICYmIGJyZWFr
CiAgZG9uZQpmaQppZiB0ZXN0IC16ICIkQ0MiOyB0aGVuCiAgYWNfY3RfQ0M9
JENDCiAgZm9yIGFjX3Byb2cgaW4gY2wKZG8KICAjIEV4dHJhY3QgdGhlIGZp
cnN0IHdvcmQgb2YgIiRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3Jh
bSBuYW1lIHdpdGggYXJncy4Kc2V0IGR1bW15ICRhY19wcm9nOyBhY193b3Jk
PSQyCmVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dv
cmQiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4u
LiAkRUNIT19DIiA+JjYKaWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X0ND
K3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAk
RUNIT19DIiA+JjYKZWxzZQogIGlmIHRlc3QgLW4gIiRhY19jdF9DQyI7IHRo
ZW4KICBhY19jdl9wcm9nX2FjX2N0X0NDPSIkYWNfY3RfQ0MiICMgTGV0IHRo
ZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgplbHNlCmFzX3NhdmVfSUZTPSRJ
RlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKZm9yIGFzX2RpciBpbiAkUEFUSApk
bwogIElGUz0kYXNfc2F2ZV9JRlMKICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBh
c19kaXI9LgogIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJs
ZV9leHRlbnNpb25zOyBkbwogIGlmICRhc19leGVjdXRhYmxlX3AgIiRhc19k
aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB0aGVuCiAgICBhY19jdl9wcm9n
X2FjX2N0X0NDPSIkYWNfcHJvZyIKICAgIGVjaG8gIiRhc19tZTokTElORU5P
OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKICAg
IGJyZWFrIDIKICBmaQpkb25lCmRvbmUKCmZpCmZpCmFjX2N0X0NDPSRhY19j
dl9wcm9nX2FjX2N0X0NDCmlmIHRlc3QgLW4gIiRhY19jdF9DQyI7IHRoZW4K
ICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3RfQ0MiID4m
NQplY2hvICIke0VDSE9fVH0kYWNfY3RfQ0MiID4mNgplbHNlCiAgZWNobyAi
JGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQplY2hvICIke0VDSE9f
VH1ubyIgPiY2CmZpCgogIHRlc3QgLW4gIiRhY19jdF9DQyIgJiYgYnJlYWsK
ZG9uZQoKICBDQz0kYWNfY3RfQ0MKZmkKCmZpCgoKdGVzdCAteiAiJENDIiAm
JiB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBubyBhY2NlcHRh
YmxlIEMgY29tcGlsZXIgZm91bmQgaW4gXCRQQVRIClNlZSBcYGNvbmZpZy5s
b2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKZWNobyAiJGFzX21lOiBlcnJv
cjogbm8gYWNjZXB0YWJsZSBDIGNvbXBpbGVyIGZvdW5kIGluIFwkUEFUSApT
ZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KICAg
eyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CgojIFByb3ZpZGUgc29tZSBpbmZv
cm1hdGlvbiBhYm91dCB0aGUgY29tcGlsZXIuCmVjaG8gIiRhc19tZTokTElO
RU5POiIgXAogICAgICJjaGVja2luZyBmb3IgQyBjb21waWxlciB2ZXJzaW9u
IiA+JjUKYWNfY29tcGlsZXI9YHNldCBYICRhY19jb21waWxlOyBlY2hvICQy
YAp7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxl
ciAtLXZlcnNpb24gPC9kZXYvbnVsbCA+JjVcIiIpID4mNQogIChldmFsICRh
Y19jb21waWxlciAtLXZlcnNpb24gPC9kZXYvbnVsbCA+JjUpIDI+JjUKICBh
Y19zdGF0dXM9JD8KICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFj
X3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0KeyAoZXZhbCBl
Y2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZXIgLXYgPC9kZXYv
bnVsbCA+JjVcIiIpID4mNQogIChldmFsICRhY19jb21waWxlciAtdiA8L2Rl
di9udWxsID4mNSkgMj4mNQogIGFjX3N0YXR1cz0kPwogIGVjaG8gIiRhc19t
ZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNf
c3RhdHVzKTsgfQp7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRh
Y19jb21waWxlciAtViA8L2Rldi9udWxsID4mNVwiIikgPiY1CiAgKGV2YWwg
JGFjX2NvbXBpbGVyIC1WIDwvZGV2L251bGwgPiY1KSAyPiY1CiAgYWNfc3Rh
dHVzPSQ/CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0
dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9CgpjYXQgPmNvbmZ0ZXN0
LiRhY19leHQgPDxfQUNFT0YKI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgov
KiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29u
ZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G
Ci8qIGVuZCBjb25mZGVmcy5oLiAgKi8KCmludAptYWluICgpCnsKCiAgOwog
IHJldHVybiAwOwp9Cl9BQ0VPRgphY19jbGVhbl9maWxlc19zYXZlPSRhY19j
bGVhbl9maWxlcwphY19jbGVhbl9maWxlcz0iJGFjX2NsZWFuX2ZpbGVzIGEu
b3V0IGEuZXhlIGIub3V0IgojIFRyeSB0byBjcmVhdGUgYW4gZXhlY3V0YWJs
ZSB3aXRob3V0IC1vIGZpcnN0LCBkaXNyZWdhcmQgYS5vdXQuCiMgSXQgd2ls
bCBoZWxwIHVzIGRpYWdub3NlIGJyb2tlbiBjb21waWxlcnMsIGFuZCBmaW5k
aW5nIG91dCBhbiBpbnR1aXRpb24KIyBvZiBleGVleHQuCmVjaG8gIiRhc19t
ZTokTElORU5POiBjaGVja2luZyBmb3IgQyBjb21waWxlciBkZWZhdWx0IG91
dHB1dCIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIEMgY29tcGls
ZXIgZGVmYXVsdCBvdXRwdXQuLi4gJEVDSE9fQyIgPiY2CmFjX2xpbmtfZGVm
YXVsdD1gZWNobyAiJGFjX2xpbmsiIHwgc2VkICdzLyAtbyAqY29uZnRlc3Rb
XiBdKi8vJ2AKaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIk
YWNfbGlua19kZWZhdWx0XCIiKSA+JjUKICAoZXZhbCAkYWNfbGlua19kZWZh
dWx0KSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRMSU5F
Tk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMp
OyB9OyB0aGVuCiAgIyBGaW5kIHRoZSBvdXRwdXQsIHN0YXJ0aW5nIGZyb20g
dGhlIG1vc3QgbGlrZWx5LiAgVGhpcyBzY2hlbWUgaXMKIyBub3Qgcm9idXN0
IHRvIGp1bmsgaW4gYC4nLCBoZW5jZSBnbyB0byB3aWxkY2FyZHMgKGEuKikg
b25seSBhcyBhIGxhc3QKIyByZXNvcnQuCgojIEJlIGNhcmVmdWwgdG8gaW5p
dGlhbGl6ZSB0aGlzIHZhcmlhYmxlLCBzaW5jZSBpdCB1c2VkIHRvIGJlIGNh
Y2hlZC4KIyBPdGhlcndpc2UgYW4gb2xkIGNhY2hlIHZhbHVlIG9mIGBubycg
bGVkIHRvIGBFWEVFWFQgPSBubycgaW4gYSBNYWtlZmlsZS4KYWNfY3ZfZXhl
ZXh0PQojIGIub3V0IGlzIGNyZWF0ZWQgYnkgaTk2MCBjb21waWxlcnMuCmZv
ciBhY19maWxlIGluIGFfb3V0LmV4ZSBhLmV4ZSBjb25mdGVzdC5leGUgYS5v
dXQgY29uZnRlc3QgYS4qIGNvbmZ0ZXN0LiogYi5vdXQKZG8KICB0ZXN0IC1m
ICIkYWNfZmlsZSIgfHwgY29udGludWUKICBjYXNlICRhY19maWxlIGluCiAg
ICAqLiRhY19leHQgfCAqLnhjb2ZmIHwgKi50ZHMgfCAqLmQgfCAqLnBkYiB8
ICoueFNZTSB8ICouYmIgfCAqLmJiZyB8ICoubyB8ICoub2JqICkKICAgICAg
ICA7OwogICAgY29uZnRlc3QuJGFjX2V4dCApCiAgICAgICAgIyBUaGlzIGlz
IHRoZSBzb3VyY2UgZmlsZS4KICAgICAgICA7OwogICAgW2FiXS5vdXQgKQog
ICAgICAgICMgV2UgZm91bmQgdGhlIGRlZmF1bHQgZXhlY3V0YWJsZSwgYnV0
IGV4ZWV4dD0nJyBpcyBtb3N0CiAgICAgICAgIyBjZXJ0YWlubHkgcmlnaHQu
CiAgICAgICAgYnJlYWs7OwogICAgKi4qICkKICAgICAgICBhY19jdl9leGVl
eHQ9YGV4cHIgIiRhY19maWxlIiA6ICdbXi5dKlwoXC4uKlwpJ2AKICAgICAg
ICAjIEZJWE1FOiBJIGJlbGlldmUgd2UgZXhwb3J0IGFjX2N2X2V4ZWV4dCBm
b3IgTGlidG9vbCwKICAgICAgICAjIGJ1dCBpdCB3b3VsZCBiZSBjb29sIHRv
IGZpbmQgb3V0IGlmIGl0J3MgdHJ1ZS4gIERvZXMgYW55Ym9keQogICAgICAg
ICMgbWFpbnRhaW4gTGlidG9vbD8gLS1ha2ltLgogICAgICAgIGV4cG9ydCBh
Y19jdl9leGVleHQKICAgICAgICBicmVhazs7CiAgICAqICkKICAgICAgICBi
cmVhazs7CiAgZXNhYwpkb25lCmVsc2UKICBlY2hvICIkYXNfbWU6IGZhaWxl
ZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRh
Y19leHQgPiY1Cgp7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBD
IGNvbXBpbGVyIGNhbm5vdCBjcmVhdGUgZXhlY3V0YWJsZXMKU2VlIFxgY29u
ZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQplY2hvICIkYXNfbWU6
IGVycm9yOiBDIGNvbXBpbGVyIGNhbm5vdCBjcmVhdGUgZXhlY3V0YWJsZXMK
U2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mMjt9CiAg
IHsgKGV4aXQgNzcpOyBleGl0IDc3OyB9OyB9CmZpCgphY19leGVleHQ9JGFj
X2N2X2V4ZWV4dAplY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNf
ZmlsZSIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY19maWxlIiA+JjYKCiMgQ2hl
Y2sgdGhlIGNvbXBpbGVyIHByb2R1Y2VzIGV4ZWN1dGFibGVzIHdlIGNhbiBy
dW4uICBJZiBub3QsIGVpdGhlcgojIHRoZSBjb21waWxlciBpcyBicm9rZW4s
IG9yIHdlIGNyb3NzIGNvbXBpbGUuCmVjaG8gIiRhc19tZTokTElORU5POiBj
aGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIHdvcmtzIiA+JjUKZWNo
byAkRUNIT19OICJjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIHdv
cmtzLi4uICRFQ0hPX0MiID4mNgojIEZJWE1FOiBUaGVzZSBjcm9zcyBjb21w
aWxlciBoYWNrcyBzaG91bGQgYmUgcmVtb3ZlZCBmb3IgQXV0b2NvbmYgMy4w
CiMgSWYgbm90IGNyb3NzIGNvbXBpbGluZywgY2hlY2sgdGhhdCB3ZSBjYW4g
cnVuIGEgc2ltcGxlIHByb2dyYW0uCmlmIHRlc3QgIiRjcm9zc19jb21waWxp
bmciICE9IHllczsgdGhlbgogIGlmIHsgYWNfdHJ5PScuLyRhY19maWxlJwog
IHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikg
PiY1CiAgKGV2YWwgJGFjX3RyeSkgMj4mNQogIGFjX3N0YXR1cz0kPwogIGVj
aG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAo
ZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgogICAgY3Jvc3NfY29tcGls
aW5nPW5vCiAgZWxzZQogICAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIg
PSBtYXliZTsgdGhlbgoJY3Jvc3NfY29tcGlsaW5nPXllcwogICAgZWxzZQoJ
eyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IHJ1biBD
IGNvbXBpbGVkIHByb2dyYW1zLgpJZiB5b3UgbWVhbnQgdG8gY3Jvc3MgY29t
cGlsZSwgdXNlIFxgLS1ob3N0Jy4KU2VlIFxgY29uZmlnLmxvZycgZm9yIG1v
cmUgZGV0YWlscy4iID4mNQplY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3Qg
cnVuIEMgY29tcGlsZWQgcHJvZ3JhbXMuCklmIHlvdSBtZWFudCB0byBjcm9z
cyBjb21waWxlLCB1c2UgXGAtLWhvc3QnLgpTZWUgXGBjb25maWcubG9nJyBm
b3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KICAgeyAoZXhpdCAxKTsgZXhpdCAx
OyB9OyB9CiAgICBmaQogIGZpCmZpCmVjaG8gIiRhc19tZTokTElORU5POiBy
ZXN1bHQ6IHllcyIgPiY1CmVjaG8gIiR7RUNIT19UfXllcyIgPiY2CgpybSAt
ZiBhLm91dCBhLmV4ZSBjb25mdGVzdCRhY19jdl9leGVleHQgYi5vdXQKYWNf
Y2xlYW5fZmlsZXM9JGFjX2NsZWFuX2ZpbGVzX3NhdmUKIyBDaGVjayB0aGUg
Y29tcGlsZXIgcHJvZHVjZXMgZXhlY3V0YWJsZXMgd2UgY2FuIHJ1bi4gIElm
IG5vdCwgZWl0aGVyCiMgdGhlIGNvbXBpbGVyIGlzIGJyb2tlbiwgb3Igd2Ug
Y3Jvc3MgY29tcGlsZS4KZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n
IHdoZXRoZXIgd2UgYXJlIGNyb3NzIGNvbXBpbGluZyIgPiY1CmVjaG8gJEVD
SE9fTiAiY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5n
Li4uICRFQ0hPX0MiID4mNgplY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0
OiAkY3Jvc3NfY29tcGlsaW5nIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGNyb3Nz
X2NvbXBpbGluZyIgPiY2CgplY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp
bmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcyIgPiY1CmVjaG8gJEVDSE9f
TiAiY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcy4uLiAkRUNI
T19DIiA+JjYKaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIk
YWNfbGlua1wiIikgPiY1CiAgKGV2YWwgJGFjX2xpbmspIDI+JjUKICBhY19z
dGF0dXM9JD8KICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0
YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IHRoZW4KICAjIElm
IGJvdGggYGNvbmZ0ZXN0LmV4ZScgYW5kIGBjb25mdGVzdCcgYXJlIGBwcmVz
ZW50JyAod2VsbCwgb2JzZXJ2YWJsZSkKIyBjYXRjaCBgY29uZnRlc3QuZXhl
Jy4gIEZvciBpbnN0YW5jZSB3aXRoIEN5Z3dpbiwgYGxzIGNvbmZ0ZXN0JyB3
aWxsCiMgd29yayBwcm9wZXJseSAoaS5lLiwgcmVmZXIgdG8gYGNvbmZ0ZXN0
LmV4ZScpLCB3aGlsZSBpdCB3b24ndCB3aXRoCiMgYHJtJy4KZm9yIGFjX2Zp
bGUgaW4gY29uZnRlc3QuZXhlIGNvbmZ0ZXN0IGNvbmZ0ZXN0Lio7IGRvCiAg
dGVzdCAtZiAiJGFjX2ZpbGUiIHx8IGNvbnRpbnVlCiAgY2FzZSAkYWNfZmls
ZSBpbgogICAgKi4kYWNfZXh0IHwgKi54Y29mZiB8ICoudGRzIHwgKi5kIHwg
Ki5wZGIgfCAqLnhTWU0gfCAqLmJiIHwgKi5iYmcgfCAqLm8gfCAqLm9iaiAp
IDs7CiAgICAqLiogKSBhY19jdl9leGVleHQ9YGV4cHIgIiRhY19maWxlIiA6
ICdbXi5dKlwoXC4uKlwpJ2AKICAgICAgICAgIGV4cG9ydCBhY19jdl9leGVl
eHQKICAgICAgICAgIGJyZWFrOzsKICAgICogKSBicmVhazs7CiAgZXNhYwpk
b25lCmVsc2UKICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBj
YW5ub3QgY29tcHV0ZSBzdWZmaXggb2YgZXhlY3V0YWJsZXM6IGNhbm5vdCBj
b21waWxlIGFuZCBsaW5rClNlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRl
dGFpbHMuIiA+JjUKZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNvbXB1
dGUgc3VmZml4IG9mIGV4ZWN1dGFibGVzOiBjYW5ub3QgY29tcGlsZSBhbmQg
bGluawpTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYy
O30KICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CmZpCgpybSAtZiBjb25m
dGVzdCRhY19jdl9leGVleHQKZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs
dDogJGFjX2N2X2V4ZWV4dCIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY19jdl9l
eGVleHQiID4mNgoKcm0gLWYgY29uZnRlc3QuJGFjX2V4dApFWEVFWFQ9JGFj
X2N2X2V4ZWV4dAphY19leGVleHQ9JEVYRUVYVAplY2hvICIkYXNfbWU6JExJ
TkVOTzogY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXMiID4m
NQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzdWZmaXggb2Ygb2JqZWN0
IGZpbGVzLi4uICRFQ0hPX0MiID4mNgppZiB0ZXN0ICIke2FjX2N2X29iamV4
dCtzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkg
JEVDSE9fQyIgPiY2CmVsc2UKICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxf
QUNFT0YKI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgovKiBjb25mZGVmcy5o
LiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4
dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25m
ZGVmcy5oLiAgKi8KCmludAptYWluICgpCnsKCiAgOwogIHJldHVybiAwOwp9
Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC5vIGNvbmZ0ZXN0Lm9iagppZiB7IChl
dmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+
JjUKICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQogIGFjX3N0YXR1cz0kPwog
IGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK
ICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgdGhlbgogIGZvciBhY19maWxlIGlu
IGAobHMgY29uZnRlc3QubyBjb25mdGVzdC5vYmo7IGxzIGNvbmZ0ZXN0Liop
IDI+L2Rldi9udWxsYDsgZG8KICBjYXNlICRhY19maWxlIGluCiAgICAqLiRh
Y19leHQgfCAqLnhjb2ZmIHwgKi50ZHMgfCAqLmQgfCAqLnBkYiB8ICoueFNZ
TSB8ICouYmIgfCAqLmJiZyApIDs7CiAgICAqKSBhY19jdl9vYmpleHQ9YGV4
cHIgIiRhY19maWxlIiA6ICcuKlwuXCguKlwpJ2AKICAgICAgIGJyZWFrOzsK
ICBlc2FjCmRvbmUKZWxzZQogIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dy
YW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+
JjUKCnsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBj
b21wdXRlIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXM6IGNhbm5vdCBjb21waWxl
ClNlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKZWNo
byAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNvbXB1dGUgc3VmZml4IG9mIG9i
amVjdCBmaWxlczogY2Fubm90IGNvbXBpbGUKU2VlIFxgY29uZmlnLmxvZycg
Zm9yIG1vcmUgZGV0YWlscy4iID4mMjt9CiAgIHsgKGV4aXQgMSk7IGV4aXQg
MTsgfTsgfQpmaQoKcm0gLWYgY29uZnRlc3QuJGFjX2N2X29iamV4dCBjb25m
dGVzdC4kYWNfZXh0CmZpCmVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6
ICRhY19jdl9vYmpleHQiID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3Zfb2Jq
ZXh0IiA+JjYKT0JKRVhUPSRhY19jdl9vYmpleHQKYWNfb2JqZXh0PSRPQkpF
WFQKZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgd2Ug
YXJlIHVzaW5nIHRoZSBHTlUgQyBjb21waWxlciIgPiY1CmVjaG8gJEVDSE9f
TiAiY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDIGNv
bXBpbGVyLi4uICRFQ0hPX0MiID4mNgppZiB0ZXN0ICIke2FjX2N2X2NfY29t
cGlsZXJfZ251K3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIo
Y2FjaGVkKSAkRUNIT19DIiA+JjYKZWxzZQogIGNhdCA+Y29uZnRlc3QuJGFj
X2V4dCA8PF9BQ0VPRgojbGluZSAkTElORU5PICJjb25maWd1cmUiCi8qIGNv
bmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVz
dC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyog
ZW5kIGNvbmZkZWZzLmguICAqLwoKaW50Cm1haW4gKCkKewojaWZuZGVmIF9f
R05VQ19fCiAgICAgICBjaG9rZSBtZQojZW5kaWYKCiAgOwogIHJldHVybiAw
Owp9Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CmlmIHsgKGV2
YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4m
NQogIChldmFsICRhY19jb21waWxlKSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAg
ZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQog
IChleGl0ICRhY19zdGF0dXMpOyB9ICYmCiAgICAgICAgIHsgYWNfdHJ5PSd0
ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCiAgeyAoZXZhbCBlY2hvICIk
YXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKICAoZXZhbCAkYWNf
dHJ5KSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRMSU5F
Tk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMp
OyB9OyB9OyB0aGVuCiAgYWNfY29tcGlsZXJfZ251PXllcwplbHNlCiAgZWNo
byAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14v
fCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKYWNfY29tcGlsZXJfZ251PW5v
CmZpCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4
dAphY19jdl9jX2NvbXBpbGVyX2dudT0kYWNfY29tcGlsZXJfZ251CgpmaQpl
Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfY19jb21waWxl
cl9nbnUiID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3ZfY19jb21waWxlcl9n
bnUiID4mNgpHQ0M9YHRlc3QgJGFjX2NvbXBpbGVyX2dudSA9IHllcyAmJiBl
Y2hvIHllc2AKYWNfdGVzdF9DRkxBR1M9JHtDRkxBR1Mrc2V0fQphY19zYXZl
X0NGTEFHUz0kQ0ZMQUdTCkNGTEFHUz0iLWciCmVjaG8gIiRhc19tZTokTElO
RU5POiBjaGVja2luZyB3aGV0aGVyICRDQyBhY2NlcHRzIC1nIiA+JjUKZWNo
byAkRUNIT19OICJjaGVja2luZyB3aGV0aGVyICRDQyBhY2NlcHRzIC1nLi4u
ICRFQ0hPX0MiID4mNgppZiB0ZXN0ICIke2FjX2N2X3Byb2dfY2NfZytzZXR9
IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9f
QyIgPiY2CmVsc2UKICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK
I2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgovKiBjb25mZGVmcy5oLiAgKi8K
X0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQg
Pj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5o
LiAgKi8KCmludAptYWluICgpCnsKCiAgOwogIHJldHVybiAwOwp9Cl9BQ0VP
RgpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CmlmIHsgKGV2YWwgZWNobyAi
JGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQogIChldmFs
ICRhY19jb21waWxlKSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFz
X21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRh
Y19zdGF0dXMpOyB9ICYmCiAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNv
bmZ0ZXN0LiRhY19vYmpleHQnCiAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJ
TkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKICAoZXZhbCAkYWNfdHJ5KSAyPiY1
CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9
ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0
aGVuCiAgYWNfY3ZfcHJvZ19jY19nPXllcwplbHNlCiAgZWNobyAiJGFzX21l
OiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25m
dGVzdC4kYWNfZXh0ID4mNQoKYWNfY3ZfcHJvZ19jY19nPW5vCmZpCnJtIC1m
IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dApmaQplY2hv
ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfcHJvZ19jY19nIiA+
JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2N2X3Byb2dfY2NfZyIgPiY2CmlmIHRl
c3QgIiRhY190ZXN0X0NGTEFHUyIgPSBzZXQ7IHRoZW4KICBDRkxBR1M9JGFj
X3NhdmVfQ0ZMQUdTCmVsaWYgdGVzdCAkYWNfY3ZfcHJvZ19jY19nID0geWVz
OyB0aGVuCiAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KICAgIENGTEFH
Uz0iLWcgLU8yIgogIGVsc2UKICAgIENGTEFHUz0iLWciCiAgZmkKZWxzZQog
IGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCiAgICBDRkxBR1M9Ii1PMiIK
ICBlbHNlCiAgICBDRkxBR1M9CiAgZmkKZmkKZWNobyAiJGFzX21lOiRMSU5F
Tk86IGNoZWNraW5nIGZvciAkQ0Mgb3B0aW9uIHRvIGFjY2VwdCBBTlNJIEMi
ID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkQ0Mgb3B0aW9uIHRv
IGFjY2VwdCBBTlNJIEMuLi4gJEVDSE9fQyIgPiY2CmlmIHRlc3QgIiR7YWNf
Y3ZfcHJvZ19jY19zdGRjK3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNI
T19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZWxzZQogIGFjX2N2X3Byb2df
Y2Nfc3RkYz1ubwphY19zYXZlX0NDPSRDQwpjYXQgPmNvbmZ0ZXN0LiRhY19l
eHQgPDxfQUNFT0YKI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgovKiBjb25m
ZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3Qu
JGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVu
ZCBjb25mZGVmcy5oLiAgKi8KI2luY2x1ZGUgPHN0ZGFyZy5oPgojaW5jbHVk
ZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN5cy90eXBlcy5oPgojaW5jbHVkZSA8
c3lzL3N0YXQuaD4KLyogTW9zdCBvZiB0aGUgZm9sbG93aW5nIHRlc3RzIGFy
ZSBzdG9sZW4gZnJvbSBSQ1MgNS43J3Mgc3JjL2NvbmYuc2guICAqLwpzdHJ1
Y3QgYnVmIHsgaW50IHg7IH07CkZJTEUgKiAoKnJjc29wZW4pIChzdHJ1Y3Qg
YnVmICosIHN0cnVjdCBzdGF0ICosIGludCk7CnN0YXRpYyBjaGFyICplIChw
LCBpKQogICAgIGNoYXIgKipwOwogICAgIGludCBpOwp7CiAgcmV0dXJuIHBb
aV07Cn0Kc3RhdGljIGNoYXIgKmYgKGNoYXIgKiAoKmcpIChjaGFyICoqLCBp
bnQpLCBjaGFyICoqcCwgLi4uKQp7CiAgY2hhciAqczsKICB2YV9saXN0IHY7
CiAgdmFfc3RhcnQgKHYscCk7CiAgcyA9IGcgKHAsIHZhX2FyZyAodixpbnQp
KTsKICB2YV9lbmQgKHYpOwogIHJldHVybiBzOwp9CmludCB0ZXN0IChpbnQg
aSwgZG91YmxlIHgpOwpzdHJ1Y3QgczEge2ludCAoKmYpIChpbnQgYSk7fTsK
c3RydWN0IHMyIHtpbnQgKCpmKSAoZG91YmxlIGEpO307CmludCBwYWlybmFt
ZXMgKGludCwgY2hhciAqKiwgRklMRSAqKCopKHN0cnVjdCBidWYgKiwgc3Ry
dWN0IHN0YXQgKiwgaW50KSwgaW50LCBpbnQpOwppbnQgYXJnYzsKY2hhciAq
KmFyZ3Y7CmludAptYWluICgpCnsKcmV0dXJuIGYgKGUsIGFyZ3YsIDApICE9
IGFyZ3ZbMF0gIHx8ICBmIChlLCBhcmd2LCAxKSAhPSBhcmd2WzFdOwogIDsK
ICByZXR1cm4gMDsKfQpfQUNFT0YKIyBEb24ndCB0cnkgZ2NjIC1hbnNpOyB0
aGF0IHR1cm5zIG9mZiB1c2VmdWwgZXh0ZW5zaW9ucyBhbmQKIyBicmVha3Mg
c29tZSBzeXN0ZW1zJyBoZWFkZXIgZmlsZXMuCiMgQUlYCQkJLXFsYW5nbHZs
PWFuc2kKIyBVbHRyaXggYW5kIE9TRi8xCS1zdGQxCiMgSFAtVVggMTAuMjAg
YW5kIGxhdGVyCS1BZQojIEhQLVVYIG9sZGVyIHZlcnNpb25zCS1BYSAtRF9I
UFVYX1NPVVJDRQojIFNWUjQJCQktWGMgLURfX0VYVEVOU0lPTlNfXwpmb3Ig
YWNfYXJnIGluICIiIC1xbGFuZ2x2bD1hbnNpIC1zdGQxIC1BZSAiLUFhIC1E
X0hQVVhfU09VUkNFIiAiLVhjIC1EX19FWFRFTlNJT05TX18iCmRvCiAgQ0M9
IiRhY19zYXZlX0NDICRhY19hcmciCiAgcm0gLWYgY29uZnRlc3QuJGFjX29i
amV4dAppZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19j
b21waWxlXCIiKSA+JjUKICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQogIGFj
X3N0YXR1cz0kPwogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNf
c3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgogICAgICAg
ICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwogIHsg
KGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1
CiAgKGV2YWwgJGFjX3RyeSkgMj4mNQogIGFjX3N0YXR1cz0kPwogIGVjaG8g
IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhp
dCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgogIGFjX2N2X3Byb2dfY2Nfc3Rk
Yz0kYWNfYXJnCmJyZWFrCmVsc2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBw
cm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19l
eHQgPiY1CgpmaQpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CmRvbmUKcm0g
LWYgY29uZnRlc3QuJGFjX2V4dCBjb25mdGVzdC4kYWNfb2JqZXh0CkNDPSRh
Y19zYXZlX0NDCgpmaQoKY2FzZSAieCRhY19jdl9wcm9nX2NjX3N0ZGMiIGlu
CiAgeHx4bm8pCiAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBu
b25lIG5lZWRlZCIgPiY1CmVjaG8gIiR7RUNIT19UfW5vbmUgbmVlZGVkIiA+
JjYgOzsKICAqKQogICAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog
JGFjX2N2X3Byb2dfY2Nfc3RkYyIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY19j
dl9wcm9nX2NjX3N0ZGMiID4mNgogICAgQ0M9IiRDQyAkYWNfY3ZfcHJvZ19j
Y19zdGRjIiA7Owplc2FjCgojIFNvbWUgcGVvcGxlIHVzZSBhIEMrKyBjb21w
aWxlciB0byBjb21waWxlIEMuICBTaW5jZSB3ZSB1c2UgYGV4aXQnLAojIGlu
IEMrKyB3ZSBuZWVkIHRvIGRlY2xhcmUgaXQuICBJbiBjYXNlIHNvbWVvbmUg
dXNlcyB0aGUgc2FtZSBjb21waWxlcgojIGZvciBib3RoIGNvbXBpbGluZyBD
IGFuZCBDKysgd2UgbmVlZCB0byBoYXZlIHRoZSBDKysgY29tcGlsZXIgZGVj
aWRlCiMgdGhlIGRlY2xhcmF0aW9uIG9mIGV4aXQsIHNpbmNlIGl0J3MgdGhl
IG1vc3QgZGVtYW5kaW5nIGVudmlyb25tZW50LgpjYXQgPmNvbmZ0ZXN0LiRh
Y19leHQgPDxfQUNFT0YKI2lmbmRlZiBfX2NwbHVzcGx1cwogIGNob2tlIG1l
CiNlbmRpZgpfQUNFT0YKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAppZiB7
IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIi
KSA+JjUKICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQogIGFjX3N0YXR1cz0k
PwogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+
JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgogICAgICAgICB7IGFjX3Ry
eT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwogIHsgKGV2YWwgZWNo
byAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CiAgKGV2YWwg
JGFjX3RyeSkgMj4mNQogIGFjX3N0YXR1cz0kPwogIGVjaG8gIiRhc19tZTok
TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3Rh
dHVzKTsgfTsgfTsgdGhlbgogIGZvciBhY19kZWNsYXJhdGlvbiBpbiBcCiAg
ICcnXAogICAnI2luY2x1ZGUgPHN0ZGxpYi5oPicgXAogICAnZXh0ZXJuICJD
IiB2b2lkIHN0ZDo6ZXhpdCAoaW50KSB0aHJvdyAoKTsgdXNpbmcgc3RkOjpl
eGl0OycgXAogICAnZXh0ZXJuICJDIiB2b2lkIHN0ZDo6ZXhpdCAoaW50KTsg
dXNpbmcgc3RkOjpleGl0OycgXAogICAnZXh0ZXJuICJDIiB2b2lkIGV4aXQg
KGludCkgdGhyb3cgKCk7JyBcCiAgICdleHRlcm4gIkMiIHZvaWQgZXhpdCAo
aW50KTsnIFwKICAgJ3ZvaWQgZXhpdCAoaW50KTsnCmRvCiAgY2F0ID5jb25m
dGVzdC4kYWNfZXh0IDw8X0FDRU9GCiNsaW5lICRMSU5FTk8gImNvbmZpZ3Vy
ZSIKLyogY29uZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+
PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9B
Q0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCiNpbmNsdWRlIDxzdGRsaWIu
aD4KJGFjX2RlY2xhcmF0aW9uCmludAptYWluICgpCnsKZXhpdCAoNDIpOwog
IDsKICByZXR1cm4gMDsKfQpfQUNFT0YKcm0gLWYgY29uZnRlc3QuJGFjX29i
amV4dAppZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19j
b21waWxlXCIiKSA+JjUKICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQogIGFj
X3N0YXR1cz0kPwogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNf
c3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgogICAgICAg
ICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwogIHsg
KGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1
CiAgKGV2YWwgJGFjX3RyeSkgMj4mNQogIGFjX3N0YXR1cz0kPwogIGVjaG8g
IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhp
dCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgogIDoKZWxzZQogIGVjaG8gIiRh
c19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycg
Y29uZnRlc3QuJGFjX2V4dCA+JjUKCmNvbnRpbnVlCmZpCnJtIC1mIGNvbmZ0
ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAogIGNhdCA+Y29uZnRl
c3QuJGFjX2V4dCA8PF9BQ0VPRgojbGluZSAkTElORU5PICJjb25maWd1cmUi
Ci8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5j
b25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF
T0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwokYWNfZGVjbGFyYXRpb24KaW50
Cm1haW4gKCkKewpleGl0ICg0Mik7CiAgOwogIHJldHVybiAwOwp9Cl9BQ0VP
RgpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CmlmIHsgKGV2YWwgZWNobyAi
JGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQogIChldmFs
ICRhY19jb21waWxlKSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFz
X21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRh
Y19zdGF0dXMpOyB9ICYmCiAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNv
bmZ0ZXN0LiRhY19vYmpleHQnCiAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJ
TkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKICAoZXZhbCAkYWNfdHJ5KSAyPiY1
CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9
ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0
aGVuCiAgYnJlYWsKZWxzZQogIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dy
YW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+
JjUKCmZpCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFj
X2V4dApkb25lCnJtIC1mIGNvbmZ0ZXN0KgppZiB0ZXN0IC1uICIkYWNfZGVj
bGFyYXRpb24iOyB0aGVuCiAgZWNobyAnI2lmZGVmIF9fY3BsdXNwbHVzJyA+
PmNvbmZkZWZzLmgKICBlY2hvICRhY19kZWNsYXJhdGlvbiAgICAgID4+Y29u
ZmRlZnMuaAogIGVjaG8gJyNlbmRpZicgICAgICAgICAgICAgPj5jb25mZGVm
cy5oCmZpCgplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3
YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoK
ZmkKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0
CmFjX2V4dD1jCmFjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCmFjX2NvbXBpbGU9
JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4m
NScKYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdT
ICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4m
NScKYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQoKYWNf
ZXh0PWNjCmFjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCmFjX2NvbXBpbGU9
JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0
ID4mNScKYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENY
WEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRM
SUJTID4mNScKYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJf
Z251CmlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KICBmb3Ig
YWNfcHJvZyBpbiAkQ0NDIGcrKyBjKysgZ3BwIGFDQyBDQyBjeHggY2MrKyBj
bCBGQ0MgS0NDIFJDQyB4bENfciB4bEMKICBkbwogICAgIyBFeHRyYWN0IHRo
ZSBmaXJzdCB3b3JkIG9mICIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIsIHNv
IGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCnNldCBkdW1t
eSAkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZzsgYWNfd29yZD0kMgplY2hvICIk
YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKZWNo
byAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gJEVDSE9fQyIg
PiY2CmlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DWFgrc2V0fSIgPSBzZXQ7IHRo
ZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgplbHNl
CiAgaWYgdGVzdCAtbiAiJENYWCI7IHRoZW4KICBhY19jdl9wcm9nX0NYWD0i
JENYWCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCmVsc2UK
YXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgpmb3IgYXNf
ZGlyIGluICRQQVRICmRvCiAgSUZTPSRhc19zYXZlX0lGUwogIHRlc3QgLXog
IiRhc19kaXIiICYmIGFzX2Rpcj0uCiAgZm9yIGFjX2V4ZWNfZXh0IGluICcn
ICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCiAgaWYgJGFzX2V4ZWN1
dGFibGVfcCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4K
ICAgIGFjX2N2X3Byb2dfQ1hYPSIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIK
ICAgIGVjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193
b3JkJGFjX2V4ZWNfZXh0IiA+JjUKICAgIGJyZWFrIDIKICBmaQpkb25lCmRv
bmUKCmZpCmZpCkNYWD0kYWNfY3ZfcHJvZ19DWFgKaWYgdGVzdCAtbiAiJENY
WCI7IHRoZW4KICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ1hY
IiA+JjUKZWNobyAiJHtFQ0hPX1R9JENYWCIgPiY2CmVsc2UKICBlY2hvICIk
YXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CmVjaG8gIiR7RUNIT19U
fW5vIiA+JjYKZmkKCiAgICB0ZXN0IC1uICIkQ1hYIiAmJiBicmVhawogIGRv
bmUKZmkKaWYgdGVzdCAteiAiJENYWCI7IHRoZW4KICBhY19jdF9DWFg9JENY
WAogIGZvciBhY19wcm9nIGluICRDQ0MgZysrIGMrKyBncHAgYUNDIENDIGN4
eCBjYysrIGNsIEZDQyBLQ0MgUkNDIHhsQ19yIHhsQwpkbwogICMgRXh0cmFj
dCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUg
YSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgpzZXQgZHVtbXkgJGFjX3Byb2c7
IGFjX3dvcmQ9JDIKZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZv
ciAkYWNfd29yZCIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRh
Y193b3JkLi4uICRFQ0hPX0MiID4mNgppZiB0ZXN0ICIke2FjX2N2X3Byb2df
YWNfY3RfQ1hYK3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIo
Y2FjaGVkKSAkRUNIT19DIiA+JjYKZWxzZQogIGlmIHRlc3QgLW4gIiRhY19j
dF9DWFgiOyB0aGVuCiAgYWNfY3ZfcHJvZ19hY19jdF9DWFg9IiRhY19jdF9D
WFgiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgplbHNlCmFz
X3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKZm9yIGFzX2Rp
ciBpbiAkUEFUSApkbwogIElGUz0kYXNfc2F2ZV9JRlMKICB0ZXN0IC16ICIk
YXNfZGlyIiAmJiBhc19kaXI9LgogIGZvciBhY19leGVjX2V4dCBpbiAnJyAk
YWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwogIGlmICRhc19leGVjdXRh
YmxlX3AgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB0aGVuCiAg
ICBhY19jdl9wcm9nX2FjX2N0X0NYWD0iJGFjX3Byb2ciCiAgICBlY2hvICIk
YXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVj
X2V4dCIgPiY1CiAgICBicmVhayAyCiAgZmkKZG9uZQpkb25lCgpmaQpmaQph
Y19jdF9DWFg9JGFjX2N2X3Byb2dfYWNfY3RfQ1hYCmlmIHRlc3QgLW4gIiRh
Y19jdF9DWFgiOyB0aGVuCiAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs
dDogJGFjX2N0X0NYWCIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY19jdF9DWFgi
ID4mNgplbHNlCiAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8i
ID4mNQplY2hvICIke0VDSE9fVH1ubyIgPiY2CmZpCgogIHRlc3QgLW4gIiRh
Y19jdF9DWFgiICYmIGJyZWFrCmRvbmUKdGVzdCAtbiAiJGFjX2N0X0NYWCIg
fHwgYWNfY3RfQ1hYPSJnKysiCgogIENYWD0kYWNfY3RfQ1hYCmZpCgoKIyBQ
cm92aWRlIHNvbWUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvbXBpbGVyLgpl
Y2hvICIkYXNfbWU6JExJTkVOTzoiIFwKICAgICAiY2hlY2tpbmcgZm9yIEMr
KyBjb21waWxlciB2ZXJzaW9uIiA+JjUKYWNfY29tcGlsZXI9YHNldCBYICRh
Y19jb21waWxlOyBlY2hvICQyYAp7IChldmFsIGVjaG8gIiRhc19tZTokTElO
RU5POiBcIiRhY19jb21waWxlciAtLXZlcnNpb24gPC9kZXYvbnVsbCA+JjVc
IiIpID4mNQogIChldmFsICRhY19jb21waWxlciAtLXZlcnNpb24gPC9kZXYv
bnVsbCA+JjUpIDI+JjUKICBhY19zdGF0dXM9JD8KICBlY2hvICIkYXNfbWU6
JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0
YXR1cyk7IH0KeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNf
Y29tcGlsZXIgLXYgPC9kZXYvbnVsbCA+JjVcIiIpID4mNQogIChldmFsICRh
Y19jb21waWxlciAtdiA8L2Rldi9udWxsID4mNSkgMj4mNQogIGFjX3N0YXR1
cz0kPwogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVz
IiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfQp7IChldmFsIGVjaG8gIiRh
c19tZTokTElORU5POiBcIiRhY19jb21waWxlciAtViA8L2Rldi9udWxsID4m
NVwiIikgPiY1CiAgKGV2YWwgJGFjX2NvbXBpbGVyIC1WIDwvZGV2L251bGwg
PiY1KSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRMSU5F
Tk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMp
OyB9CgplY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB3
ZSBhcmUgdXNpbmcgdGhlIEdOVSBDKysgY29tcGlsZXIiID4mNQplY2hvICRF
Q0hPX04gImNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUg
QysrIGNvbXBpbGVyLi4uICRFQ0hPX0MiID4mNgppZiB0ZXN0ICIke2FjX2N2
X2N4eF9jb21waWxlcl9nbnUrc2V0fSIgPSBzZXQ7IHRoZW4KICBlY2hvICRF
Q0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCiAgY2F0ID5jb25m
dGVzdC4kYWNfZXh0IDw8X0FDRU9GCiNsaW5lICRMSU5FTk8gImNvbmZpZ3Vy
ZSIKLyogY29uZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+
PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9B
Q0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCgppbnQKbWFpbiAoKQp7CiNp
Zm5kZWYgX19HTlVDX18KICAgICAgIGNob2tlIG1lCiNlbmRpZgoKICA7CiAg
cmV0dXJuIDA7Cn0KX0FDRU9GCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQK
aWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGls
ZVwiIikgPiY1CiAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKICBhY19zdGF0
dXM9JD8KICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1
cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKICAgICAgICAgeyBh
Y190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKICB7IChldmFs
IGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQogIChl
dmFsICRhY190cnkpIDI+JjUKICBhY19zdGF0dXM9JD8KICBlY2hvICIkYXNf
bWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFj
X3N0YXR1cyk7IH07IH07IHRoZW4KICBhY19jb21waWxlcl9nbnU9eWVzCmVs
c2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpz
ZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgphY19jb21waWxl
cl9nbnU9bm8KZmkKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz
dC4kYWNfZXh0CmFjX2N2X2N4eF9jb21waWxlcl9nbnU9JGFjX2NvbXBpbGVy
X2dudQoKZmkKZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2
X2N4eF9jb21waWxlcl9nbnUiID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3Zf
Y3h4X2NvbXBpbGVyX2dudSIgPiY2CkdYWD1gdGVzdCAkYWNfY29tcGlsZXJf
Z251ID0geWVzICYmIGVjaG8geWVzYAphY190ZXN0X0NYWEZMQUdTPSR7Q1hY
RkxBR1Mrc2V0fQphY19zYXZlX0NYWEZMQUdTPSRDWFhGTEFHUwpDWFhGTEFH
Uz0iLWciCmVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVy
ICRDWFggYWNjZXB0cyAtZyIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcg
d2hldGhlciAkQ1hYIGFjY2VwdHMgLWcuLi4gJEVDSE9fQyIgPiY2CmlmIHRl
c3QgIiR7YWNfY3ZfcHJvZ19jeHhfZytzZXR9IiA9IHNldDsgdGhlbgogIGVj
aG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBjYXQg
PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKI2xpbmUgJExJTkVOTyAiY29u
ZmlndXJlIgovKiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBjb25mZGVm
cy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0
IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5oLiAgKi8KCmludAptYWluICgp
CnsKCiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC4k
YWNfb2JqZXh0CmlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwi
JGFjX2NvbXBpbGVcIiIpID4mNQogIChldmFsICRhY19jb21waWxlKSAyPiY1
CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9
ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCiAg
ICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQn
CiAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIi
KSA+JjUKICAoZXZhbCAkYWNfdHJ5KSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAg
ZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQog
IChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCiAgYWNfY3ZfcHJvZ19j
eHhfZz15ZXMKZWxzZQogIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0g
d2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUK
CmFjX2N2X3Byb2dfY3h4X2c9bm8KZmkKcm0gLWYgY29uZnRlc3QuJGFjX29i
amV4dCBjb25mdGVzdC4kYWNfZXh0CmZpCmVjaG8gIiRhc19tZTokTElORU5P
OiByZXN1bHQ6ICRhY19jdl9wcm9nX2N4eF9nIiA+JjUKZWNobyAiJHtFQ0hP
X1R9JGFjX2N2X3Byb2dfY3h4X2ciID4mNgppZiB0ZXN0ICIkYWNfdGVzdF9D
WFhGTEFHUyIgPSBzZXQ7IHRoZW4KICBDWFhGTEFHUz0kYWNfc2F2ZV9DWFhG
TEFHUwplbGlmIHRlc3QgJGFjX2N2X3Byb2dfY3h4X2cgPSB5ZXM7IHRoZW4K
ICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgogICAgQ1hYRkxBR1M9Ii1n
IC1PMiIKICBlbHNlCiAgICBDWFhGTEFHUz0iLWciCiAgZmkKZWxzZQogIGlm
IHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCiAgICBDWFhGTEFHUz0iLU8yIgog
IGVsc2UKICAgIENYWEZMQUdTPQogIGZpCmZpCmZvciBhY19kZWNsYXJhdGlv
biBpbiBcCiAgICcnXAogICAnI2luY2x1ZGUgPHN0ZGxpYi5oPicgXAogICAn
ZXh0ZXJuICJDIiB2b2lkIHN0ZDo6ZXhpdCAoaW50KSB0aHJvdyAoKTsgdXNp
bmcgc3RkOjpleGl0OycgXAogICAnZXh0ZXJuICJDIiB2b2lkIHN0ZDo6ZXhp
dCAoaW50KTsgdXNpbmcgc3RkOjpleGl0OycgXAogICAnZXh0ZXJuICJDIiB2
b2lkIGV4aXQgKGludCkgdGhyb3cgKCk7JyBcCiAgICdleHRlcm4gIkMiIHZv
aWQgZXhpdCAoaW50KTsnIFwKICAgJ3ZvaWQgZXhpdCAoaW50KTsnCmRvCiAg
Y2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCiNsaW5lICRMSU5FTk8g
ImNvbmZpZ3VyZSIKLyogY29uZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29u
ZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRlc3QuJGFj
X2V4dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCiNpbmNsdWRl
IDxzdGRsaWIuaD4KJGFjX2RlY2xhcmF0aW9uCmludAptYWluICgpCnsKZXhp
dCAoNDIpOwogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKcm0gLWYgY29uZnRl
c3QuJGFjX29iamV4dAppZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5P
OiBcIiRhY19jb21waWxlXCIiKSA+JjUKICAoZXZhbCAkYWNfY29tcGlsZSkg
Mj4mNQogIGFjX3N0YXR1cz0kPwogIGVjaG8gIiRhc19tZTokTElORU5POiBc
JD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAm
JgogICAgICAgICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2Jq
ZXh0JwogIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3Ry
eVwiIikgPiY1CiAgKGV2YWwgJGFjX3RyeSkgMj4mNQogIGFjX3N0YXR1cz0k
PwogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+
JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgogIDoKZWxzZQog
IGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAn
cy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCmNvbnRpbnVlCmZpCnJt
IC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAogIGNh
dCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgojbGluZSAkTElORU5PICJj
b25maWd1cmUiCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZk
ZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19l
eHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwokYWNfZGVjbGFy
YXRpb24KaW50Cm1haW4gKCkKewpleGl0ICg0Mik7CiAgOwogIHJldHVybiAw
Owp9Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CmlmIHsgKGV2
YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4m
NQogIChldmFsICRhY19jb21waWxlKSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAg
ZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQog
IChleGl0ICRhY19zdGF0dXMpOyB9ICYmCiAgICAgICAgIHsgYWNfdHJ5PSd0
ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCiAgeyAoZXZhbCBlY2hvICIk
YXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKICAoZXZhbCAkYWNf
dHJ5KSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRMSU5F
Tk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMp
OyB9OyB9OyB0aGVuCiAgYnJlYWsKZWxzZQogIGVjaG8gIiRhc19tZTogZmFp
bGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3Qu
JGFjX2V4dCA+JjUKCmZpCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29u
ZnRlc3QuJGFjX2V4dApkb25lCnJtIC1mIGNvbmZ0ZXN0KgppZiB0ZXN0IC1u
ICIkYWNfZGVjbGFyYXRpb24iOyB0aGVuCiAgZWNobyAnI2lmZGVmIF9fY3Bs
dXNwbHVzJyA+PmNvbmZkZWZzLmgKICBlY2hvICRhY19kZWNsYXJhdGlvbiAg
ICAgID4+Y29uZmRlZnMuaAogIGVjaG8gJyNlbmRpZicgICAgICAgICAgICAg
Pj5jb25mZGVmcy5oCmZpCgphY19leHQ9YwphY19jcHA9JyRDUFAgJENQUEZM
QUdTJwphY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29u
ZnRlc3QuJGFjX2V4dCA+JjUnCmFjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRh
Y19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3Qu
JGFjX2V4dCAkTElCUyA+JjUnCmFjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19j
b21waWxlcl9nbnUKCnRlc3QgLXogIiRMRCIgJiYgTEQ9JyR7Q1hYfScKIyBG
aW5kIGEgZ29vZCBpbnN0YWxsIHByb2dyYW0uICBXZSBwcmVmZXIgYSBDIHBy
b2dyYW0gKGZhc3RlciksCiMgc28gb25lIHNjcmlwdCBpcyBhcyBnb29kIGFz
IGFub3RoZXIuICBCdXQgYXZvaWQgdGhlIGJyb2tlbiBvcgojIGluY29tcGF0
aWJsZSB2ZXJzaW9uczoKIyBTeXNWIC9ldGMvaW5zdGFsbCwgL3Vzci9zYmlu
L2luc3RhbGwKIyBTdW5PUyAvdXNyL2V0Yy9pbnN0YWxsCiMgSVJJWCAvc2Jp
bi9pbnN0YWxsCiMgQUlYIC9iaW4vaW5zdGFsbAojIEFtaWdhT1MgL0MvaW5z
dGFsbCwgd2hpY2ggaW5zdGFsbHMgYm9vdGJsb2NrcyBvbiBmbG9wcHkgZGlz
Y3MKIyBBSVggNCAvdXNyL2Jpbi9pbnN0YWxsYnNkLCB3aGljaCBkb2Vzbid0
IHdvcmsgd2l0aG91dCBhIC1nIGZsYWcKIyBBRlMgL3Vzci9hZnN3cy9iaW4v
aW5zdGFsbCwgd2hpY2ggbWlzaGFuZGxlcyBub25leGlzdGVudCBhcmdzCiMg
U1ZSNCAvdXNyL3VjYi9pbnN0YWxsLCB3aGljaCB0cmllcyB0byB1c2UgdGhl
IG5vbmV4aXN0ZW50IGdyb3VwICJzdGFmZiIKIyAuL2luc3RhbGwsIHdoaWNo
IGNhbiBiZSBlcnJvbmVvdXNseSBjcmVhdGVkIGJ5IG1ha2UgZnJvbSAuL2lu
c3RhbGwuc2guCmVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Ig
YSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsIiA+JjUKZWNobyAkRUNIT19OICJj
aGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsLi4uICRFQ0hP
X0MiID4mNgppZiB0ZXN0IC16ICIkSU5TVEFMTCI7IHRoZW4KaWYgdGVzdCAi
JHthY19jdl9wYXRoX2luc3RhbGwrc2V0fSIgPSBzZXQ7IHRoZW4KICBlY2hv
ICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCiAgYXNfc2F2
ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgpmb3IgYXNfZGlyIGlu
ICRQQVRICmRvCiAgSUZTPSRhc19zYXZlX0lGUwogIHRlc3QgLXogIiRhc19k
aXIiICYmIGFzX2Rpcj0uCiAgIyBBY2NvdW50IGZvciBwZW9wbGUgd2hvIHB1
dCB0cmFpbGluZyBzbGFzaGVzIGluIFBBVEggZWxlbWVudHMuCmNhc2UgJGFz
X2Rpci8gaW4KICAuLyB8IC4vLyB8IC9jQy8qIHwgXAogIC9ldGMvKiB8IC91
c3Ivc2Jpbi8qIHwgL3Vzci9ldGMvKiB8IC9zYmluLyogfCAvdXNyL2Fmc3dz
L2Jpbi8qIHwgXAogIC91c3IvdWNiLyogKSA7OwogICopCiAgICAjIE9TRjEg
YW5kIFNDTyBPRFQgMy4wIGhhdmUgdGhlaXIgb3duIG5hbWVzIGZvciBpbnN0
YWxsLgogICAgIyBEb24ndCB1c2UgaW5zdGFsbGJzZCBmcm9tIE9TRiBzaW5j
ZSBpdCBpbnN0YWxscyBzdHVmZiBhcyByb290CiAgICAjIGJ5IGRlZmF1bHQu
CiAgICBmb3IgYWNfcHJvZyBpbiBnaW5zdGFsbCBzY29pbnN0IGluc3RhbGw7
IGRvCiAgICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJs
ZV9leHRlbnNpb25zOyBkbwogICAgICAgIGlmICRhc19leGVjdXRhYmxlX3Ag
IiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiOyB0aGVuCiAgICAgICAg
ICBpZiB0ZXN0ICRhY19wcm9nID0gaW5zdGFsbCAmJgogICAgICAgICAgICBn
cmVwIGRzcG1zZyAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgPi9k
ZXYvbnVsbCAyPiYxOyB0aGVuCiAgICAgICAgICAgICMgQUlYIGluc3RhbGwu
ICBJdCBoYXMgYW4gaW5jb21wYXRpYmxlIGNhbGxpbmcgY29udmVudGlvbi4K
ICAgICAgICAgICAgOgogICAgICAgICAgZWxpZiB0ZXN0ICRhY19wcm9nID0g
aW5zdGFsbCAmJgogICAgICAgICAgICBncmVwIHB3cGx1cyAiJGFzX2Rpci8k
YWNfcHJvZyRhY19leGVjX2V4dCIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCiAg
ICAgICAgICAgICMgcHJvZ3JhbS1zcGVjaWZpYyBpbnN0YWxsIHNjcmlwdCB1
c2VkIGJ5IEhQIHB3cGx1cy0tZG9uJ3QgdXNlLgogICAgICAgICAgICA6CiAg
ICAgICAgICBlbHNlCiAgICAgICAgICAgIGFjX2N2X3BhdGhfaW5zdGFsbD0i
JGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCAtYyIKICAgICAgICAgICAg
YnJlYWsgMwogICAgICAgICAgZmkKICAgICAgICBmaQogICAgICBkb25lCiAg
ICBkb25lCiAgICA7Owplc2FjCmRvbmUKCgpmaQogIGlmIHRlc3QgIiR7YWNf
Y3ZfcGF0aF9pbnN0YWxsK3NldH0iID0gc2V0OyB0aGVuCiAgICBJTlNUQUxM
PSRhY19jdl9wYXRoX2luc3RhbGwKICBlbHNlCiAgICAjIEFzIGEgbGFzdCBy
ZXNvcnQsIHVzZSB0aGUgc2xvdyBzaGVsbCBzY3JpcHQuICBXZSBkb24ndCBj
YWNoZSBhCiAgICAjIHBhdGggZm9yIElOU1RBTEwgd2l0aGluIGEgc291cmNl
IGRpcmVjdG9yeSwgYmVjYXVzZSB0aGF0IHdpbGwKICAgICMgYnJlYWsgb3Ro
ZXIgcGFja2FnZXMgdXNpbmcgdGhlIGNhY2hlIGlmIHRoYXQgZGlyZWN0b3J5
IGlzCiAgICAjIHJlbW92ZWQsIG9yIGlmIHRoZSBwYXRoIGlzIHJlbGF0aXZl
LgogICAgSU5TVEFMTD0kYWNfaW5zdGFsbF9zaAogIGZpCmZpCmVjaG8gIiRh
c19tZTokTElORU5POiByZXN1bHQ6ICRJTlNUQUxMIiA+JjUKZWNobyAiJHtF
Q0hPX1R9JElOU1RBTEwiID4mNgoKIyBVc2UgdGVzdCAteiBiZWNhdXNlIFN1
bk9TNCBzaCBtaXNoYW5kbGVzIGJyYWNlcyBpbiAke3Zhci12YWx9LgojIEl0
IHRoaW5rcyB0aGUgZmlyc3QgY2xvc2UgYnJhY2UgZW5kcyB0aGUgdmFyaWFi
bGUgc3Vic3RpdHV0aW9uLgp0ZXN0IC16ICIkSU5TVEFMTF9QUk9HUkFNIiAm
JiBJTlNUQUxMX1BST0dSQU09JyR7SU5TVEFMTH0nCgp0ZXN0IC16ICIkSU5T
VEFMTF9TQ1JJUFQiICYmIElOU1RBTExfU0NSSVBUPScke0lOU1RBTEx9JwoK
dGVzdCAteiAiJElOU1RBTExfREFUQSIgJiYgSU5TVEFMTF9EQVRBPScke0lO
U1RBTEx9IC1tIDY0NCcKCmlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7
IHRoZW4KICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9v
bF9wcmVmaXh9cmFubGliIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1l
IHdpdGggYXJncy4Kc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9cmFubGli
OyBhY193b3JkPSQyCmVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBm
b3IgJGFjX3dvcmQiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAk
YWNfd29yZC4uLiAkRUNIT19DIiA+JjYKaWYgdGVzdCAiJHthY19jdl9wcm9n
X1JBTkxJQitzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNh
Y2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBpZiB0ZXN0IC1uICIkUkFOTElC
IjsgdGhlbgogIGFjX2N2X3Byb2dfUkFOTElCPSIkUkFOTElCIiAjIExldCB0
aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KZWxzZQphc19zYXZlX0lGUz0k
SUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCmZvciBhc19kaXIgaW4gJFBBVEgK
ZG8KICBJRlM9JGFzX3NhdmVfSUZTCiAgdGVzdCAteiAiJGFzX2RpciIgJiYg
YXNfZGlyPS4KICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFi
bGVfZXh0ZW5zaW9uczsgZG8KICBpZiAkYXNfZXhlY3V0YWJsZV9wICIkYXNf
ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgogICAgYWNfY3ZfcHJv
Z19SQU5MSUI9IiR7YWNfdG9vbF9wcmVmaXh9cmFubGliIgogICAgZWNobyAi
JGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhl
Y19leHQiID4mNQogICAgYnJlYWsgMgogIGZpCmRvbmUKZG9uZQoKZmkKZmkK
UkFOTElCPSRhY19jdl9wcm9nX1JBTkxJQgppZiB0ZXN0IC1uICIkUkFOTElC
IjsgdGhlbgogIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRSQU5M
SUIiID4mNQplY2hvICIke0VDSE9fVH0kUkFOTElCIiA+JjYKZWxzZQogIGVj
aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKZWNobyAiJHtF
Q0hPX1R9bm8iID4mNgpmaQoKZmkKaWYgdGVzdCAteiAiJGFjX2N2X3Byb2df
UkFOTElCIjsgdGhlbgogIGFjX2N0X1JBTkxJQj0kUkFOTElCCiAgIyBFeHRy
YWN0IHRoZSBmaXJzdCB3b3JkIG9mICJyYW5saWIiLCBzbyBpdCBjYW4gYmUg
YSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgpzZXQgZHVtbXkgcmFubGliOyBh
Y193b3JkPSQyCmVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Ig
JGFjX3dvcmQiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNf
d29yZC4uLiAkRUNIT19DIiA+JjYKaWYgdGVzdCAiJHthY19jdl9wcm9nX2Fj
X2N0X1JBTkxJQitzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAi
KGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBpZiB0ZXN0IC1uICIkYWNf
Y3RfUkFOTElCIjsgdGhlbgogIGFjX2N2X3Byb2dfYWNfY3RfUkFOTElCPSIk
YWNfY3RfUkFOTElCIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVz
dC4KZWxzZQphc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9S
CmZvciBhc19kaXIgaW4gJFBBVEgKZG8KICBJRlM9JGFzX3NhdmVfSUZTCiAg
dGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KICBmb3IgYWNfZXhlY19l
eHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KICBpZiAk
YXNfZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0
IjsgdGhlbgogICAgYWNfY3ZfcHJvZ19hY19jdF9SQU5MSUI9InJhbmxpYiIK
ICAgIGVjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193
b3JkJGFjX2V4ZWNfZXh0IiA+JjUKICAgIGJyZWFrIDIKICBmaQpkb25lCmRv
bmUKCiAgdGVzdCAteiAiJGFjX2N2X3Byb2dfYWNfY3RfUkFOTElCIiAmJiBh
Y19jdl9wcm9nX2FjX2N0X1JBTkxJQj0iOiIKZmkKZmkKYWNfY3RfUkFOTElC
PSRhY19jdl9wcm9nX2FjX2N0X1JBTkxJQgppZiB0ZXN0IC1uICIkYWNfY3Rf
UkFOTElCIjsgdGhlbgogIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6
ICRhY19jdF9SQU5MSUIiID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3RfUkFO
TElCIiA+JjYKZWxzZQogIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6
IG5vIiA+JjUKZWNobyAiJHtFQ0hPX1R9bm8iID4mNgpmaQoKICBSQU5MSUI9
JGFjX2N0X1JBTkxJQgplbHNlCiAgUkFOTElCPSIkYWNfY3ZfcHJvZ19SQU5M
SUIiCmZpCgojIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtc2hhcmVkIG9yIC0t
ZGlzYWJsZS1zaGFyZWQgd2FzIGdpdmVuLgppZiB0ZXN0ICIke2VuYWJsZV9z
aGFyZWQrc2V0fSIgPSBzZXQ7IHRoZW4KICBlbmFibGV2YWw9IiRlbmFibGVf
c2hhcmVkIgogIHA9JHtQQUNLQUdFLWRlZmF1bHR9CmNhc2UgJGVuYWJsZXZh
bCBpbgp5ZXMpIGVuYWJsZV9zaGFyZWQ9eWVzIDs7Cm5vKSBlbmFibGVfc2hh
cmVkPW5vIDs7CiopCiAgZW5hYmxlX3NoYXJlZD1ubwogICMgTG9vayBhdCB0
aGUgYXJndW1lbnQgd2UgZ290LiAgV2UgdXNlIGFsbCB0aGUgY29tbW9uIGxp
c3Qgc2VwYXJhdG9ycy4KICBJRlM9IiR7SUZTPSAJfSI7IGFjX3NhdmVfaWZz
PSIkSUZTIjsgSUZTPSIke0lGU306LCIKICBmb3IgcGtnIGluICRlbmFibGV2
YWw7IGRvCiAgICBpZiB0ZXN0ICJYJHBrZyIgPSAiWCRwIjsgdGhlbgogICAg
ICBlbmFibGVfc2hhcmVkPXllcwogICAgZmkKICBkb25lCiAgSUZTPSIkYWNf
c2F2ZV9pZnMiCiAgOzsKZXNhYwplbHNlCiAgZW5hYmxlX3NoYXJlZD1ubwpm
aTsKIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLXN0YXRpYyBvciAtLWRpc2Fi
bGUtc3RhdGljIHdhcyBnaXZlbi4KaWYgdGVzdCAiJHtlbmFibGVfc3RhdGlj
K3NldH0iID0gc2V0OyB0aGVuCiAgZW5hYmxldmFsPSIkZW5hYmxlX3N0YXRp
YyIKICBwPSR7UEFDS0FHRS1kZWZhdWx0fQpjYXNlICRlbmFibGV2YWwgaW4K
eWVzKSBlbmFibGVfc3RhdGljPXllcyA7OwpubykgZW5hYmxlX3N0YXRpYz1u
byA7OwoqKQogIGVuYWJsZV9zdGF0aWM9bm8KICAjIExvb2sgYXQgdGhlIGFy
Z3VtZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1vbiBsaXN0IHNl
cGFyYXRvcnMuCiAgSUZTPSIke0lGUz0gCX0iOyBhY19zYXZlX2lmcz0iJElG
UyI7IElGUz0iJHtJRlN9OiwiCiAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBk
bwogICAgaWYgdGVzdCAiWCRwa2ciID0gIlgkcCI7IHRoZW4KICAgICAgZW5h
YmxlX3N0YXRpYz15ZXMKICAgIGZpCiAgZG9uZQogIElGUz0iJGFjX3NhdmVf
aWZzIgogIDs7CmVzYWMKZWxzZQogIGVuYWJsZV9zdGF0aWM9eWVzCmZpOwoj
IENoZWNrIHdoZXRoZXIgLS1lbmFibGUtZmFzdC1pbnN0YWxsIG9yIC0tZGlz
YWJsZS1mYXN0LWluc3RhbGwgd2FzIGdpdmVuLgppZiB0ZXN0ICIke2VuYWJs
ZV9mYXN0X2luc3RhbGwrc2V0fSIgPSBzZXQ7IHRoZW4KICBlbmFibGV2YWw9
IiRlbmFibGVfZmFzdF9pbnN0YWxsIgogIHA9JHtQQUNLQUdFLWRlZmF1bHR9
CmNhc2UgJGVuYWJsZXZhbCBpbgp5ZXMpIGVuYWJsZV9mYXN0X2luc3RhbGw9
eWVzIDs7Cm5vKSBlbmFibGVfZmFzdF9pbnN0YWxsPW5vIDs7CiopCiAgZW5h
YmxlX2Zhc3RfaW5zdGFsbD1ubwogICMgTG9vayBhdCB0aGUgYXJndW1lbnQg
d2UgZ290LiAgV2UgdXNlIGFsbCB0aGUgY29tbW9uIGxpc3Qgc2VwYXJhdG9y
cy4KICBJRlM9IiR7SUZTPSAJfSI7IGFjX3NhdmVfaWZzPSIkSUZTIjsgSUZT
PSIke0lGU306LCIKICBmb3IgcGtnIGluICRlbmFibGV2YWw7IGRvCiAgICBp
ZiB0ZXN0ICJYJHBrZyIgPSAiWCRwIjsgdGhlbgogICAgICBlbmFibGVfZmFz
dF9pbnN0YWxsPXllcwogICAgZmkKICBkb25lCiAgSUZTPSIkYWNfc2F2ZV9p
ZnMiCiAgOzsKZXNhYwplbHNlCiAgZW5hYmxlX2Zhc3RfaW5zdGFsbD15ZXMK
Zmk7CiMgRmluZCB0aGUgY29ycmVjdCBQQVRIIHNlcGFyYXRvci4gIFVzdWFs
bHkgdGhpcyBpcyBgOicsIGJ1dAojIERKR1BQIHVzZXMgYDsnIGxpa2UgRE9T
LgppZiB0ZXN0ICJYJHtQQVRIX1NFUEFSQVRPUitzZXR9IiAhPSBYc2V0OyB0
aGVuCiAgVU5BTUU9JHtVTkFNRS1gdW5hbWUgMj4vZGV2L251bGxgfQogIGNh
c2UgWCRVTkFNRSBpbgogICAgKi1ET1MpIGx0X2N2X3N5c19wYXRoX3NlcGFy
YXRvcj0nOycgOzsKICAgICopICAgICBsdF9jdl9zeXNfcGF0aF9zZXBhcmF0
b3I9JzonIDs7CiAgZXNhYwogIFBBVEhfU0VQQVJBVE9SPSRsdF9jdl9zeXNf
cGF0aF9zZXBhcmF0b3IKZmkKCgojIENoZWNrIHdoZXRoZXIgLS13aXRoLWdu
dS1sZCBvciAtLXdpdGhvdXQtZ251LWxkIHdhcyBnaXZlbi4KaWYgdGVzdCAi
JHt3aXRoX2dudV9sZCtzZXR9IiA9IHNldDsgdGhlbgogIHdpdGh2YWw9IiR3
aXRoX2dudV9sZCIKICB0ZXN0ICIkd2l0aHZhbCIgPSBubyB8fCB3aXRoX2du
dV9sZD15ZXMKZWxzZQogIHdpdGhfZ251X2xkPW5vCmZpOwphY19wcm9nPWxk
CmlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCiAgIyBDaGVjayBpZiBnY2Mg
LXByaW50LXByb2ctbmFtZT1sZCBnaXZlcyBhIHBhdGguCiAgZWNobyAiJGFz
X21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBsZCB1c2VkIGJ5IEdDQyIgPiY1
CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIGxkIHVzZWQgYnkgR0NDLi4u
ICRFQ0hPX0MiID4mNgogIGNhc2UgJGhvc3QgaW4KICAqLSotbWluZ3cqKQog
ICAgIyBnY2MgbGVhdmVzIGEgdHJhaWxpbmcgY2FycmlhZ2UgcmV0dXJuIHdo
aWNoIHVwc2V0cyBtaW5ndwogICAgYWNfcHJvZz1gKCRDQyAtcHJpbnQtcHJv
Zy1uYW1lPWxkKSAyPiY1IHwgdHIgLWQgJ1wwMTUnYCA7OwogICopCiAgICBh
Y19wcm9nPWAoJENDIC1wcmludC1wcm9nLW5hbWU9bGQpIDI+JjVgIDs7CiAg
ZXNhYwogIGNhc2UgJGFjX3Byb2cgaW4KICAgICMgQWNjZXB0IGFic29sdXRl
IHBhdGhzLgogICAgW1xcL10qIHwgW0EtWmEtel06W1xcL10qKQogICAgICBy
ZV9kaXJlbHQ9Jy9bXi9dW14vXSovXC5cLi8nCiAgICAgICMgQ2Fub25pY2Fs
aXplIHRoZSBwYXRoIG9mIGxkCiAgICAgIGFjX3Byb2c9YGVjaG8gJGFjX3By
b2d8IHNlZCAncyVcXFxcJS8lZydgCiAgICAgIHdoaWxlIGVjaG8gJGFjX3By
b2cgfCBncmVwICIkcmVfZGlyZWx0IiA+IC9kZXYvbnVsbCAyPiYxOyBkbwoJ
YWNfcHJvZz1gZWNobyAkYWNfcHJvZ3wgc2VkICJzJSRyZV9kaXJlbHQlLyUi
YAogICAgICBkb25lCiAgICAgIHRlc3QgLXogIiRMRCIgJiYgTEQ9IiRhY19w
cm9nIgogICAgICA7OwogICIiKQogICAgIyBJZiBpdCBmYWlscywgdGhlbiBw
cmV0ZW5kIHdlIGFyZW4ndCB1c2luZyBHQ0MuCiAgICBhY19wcm9nPWxkCiAg
ICA7OwogICopCiAgICAjIElmIGl0IGlzIHJlbGF0aXZlLCB0aGVuIHNlYXJj
aCBmb3IgdGhlIGZpcnN0IGxkIGluIFBBVEguCiAgICB3aXRoX2dudV9sZD11
bmtub3duCiAgICA7OwogIGVzYWMKZWxpZiB0ZXN0ICIkd2l0aF9nbnVfbGQi
ID0geWVzOyB0aGVuCiAgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n
IGZvciBHTlUgbGQiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBH
TlUgbGQuLi4gJEVDSE9fQyIgPiY2CmVsc2UKICBlY2hvICIkYXNfbWU6JExJ
TkVOTzogY2hlY2tpbmcgZm9yIG5vbi1HTlUgbGQiID4mNQplY2hvICRFQ0hP
X04gImNoZWNraW5nIGZvciBub24tR05VIGxkLi4uICRFQ0hPX0MiID4mNgpm
aQppZiB0ZXN0ICIke2x0X2N2X3BhdGhfTEQrc2V0fSIgPSBzZXQ7IHRoZW4K
ICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCiAg
aWYgdGVzdCAteiAiJExEIjsgdGhlbgogIElGUz0iJHtJRlM9IAl9IjsgYWNf
c2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJBVE9SCiAgZm9yIGFj
X2RpciBpbiAkUEFUSDsgZG8KICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFj
X2Rpcj0uCiAgICBpZiB0ZXN0IC1mICIkYWNfZGlyLyRhY19wcm9nIiB8fCB0
ZXN0IC1mICIkYWNfZGlyLyRhY19wcm9nJGFjX2V4ZWV4dCI7IHRoZW4KICAg
ICAgbHRfY3ZfcGF0aF9MRD0iJGFjX2Rpci8kYWNfcHJvZyIKICAgICAgIyBD
aGVjayB0byBzZWUgaWYgdGhlIHByb2dyYW0gaXMgR05VIGxkLiAgSSdkIHJh
dGhlciB1c2UgLS12ZXJzaW9uLAogICAgICAjIGJ1dCBhcHBhcmVudGx5IHNv
bWUgR05VIGxkJ3Mgb25seSBhY2NlcHQgLXYuCiAgICAgICMgQnJlYWsgb25s
eSBpZiBpdCB3YXMgdGhlIEdOVS9ub24tR05VIGxkIHRoYXQgd2UgcHJlZmVy
LgogICAgICBpZiAiJGx0X2N2X3BhdGhfTEQiIC12IDI+JjEgPCAvZGV2L251
bGwgfCBlZ3JlcCAnKEdOVXx3aXRoIEJGRCknID4gL2Rldi9udWxsOyB0aGVu
Cgl0ZXN0ICIkd2l0aF9nbnVfbGQiICE9IG5vICYmIGJyZWFrCiAgICAgIGVs
c2UKCXRlc3QgIiR3aXRoX2dudV9sZCIgIT0geWVzICYmIGJyZWFrCiAgICAg
IGZpCiAgICBmaQogIGRvbmUKICBJRlM9IiRhY19zYXZlX2lmcyIKZWxzZQog
IGx0X2N2X3BhdGhfTEQ9IiRMRCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUg
dGhlIHRlc3Qgd2l0aCBhIHBhdGguCmZpCmZpCgpMRD0iJGx0X2N2X3BhdGhf
TEQiCmlmIHRlc3QgLW4gIiRMRCI7IHRoZW4KICBlY2hvICIkYXNfbWU6JExJ
TkVOTzogcmVzdWx0OiAkTEQiID4mNQplY2hvICIke0VDSE9fVH0kTEQiID4m
NgplbHNlCiAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4m
NQplY2hvICIke0VDSE9fVH1ubyIgPiY2CmZpCnRlc3QgLXogIiRMRCIgJiYg
eyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogbm8gYWNjZXB0YWJs
ZSBsZCBmb3VuZCBpbiBcJFBBVEgiID4mNQplY2hvICIkYXNfbWU6IGVycm9y
OiBubyBhY2NlcHRhYmxlIGxkIGZvdW5kIGluIFwkUEFUSCIgPiYyO30KICAg
eyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CmVjaG8gIiRhc19tZTokTElORU5P
OiBjaGVja2luZyBpZiB0aGUgbGlua2VyICgkTEQpIGlzIEdOVSBsZCIgPiY1
CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgaWYgdGhlIGxpbmtlciAoJExEKSBp
cyBHTlUgbGQuLi4gJEVDSE9fQyIgPiY2CmlmIHRlc3QgIiR7bHRfY3ZfcHJv
Z19nbnVfbGQrc2V0fSIgPSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hPX04gIihj
YWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCiAgIyBJJ2QgcmF0aGVyIHVzZSAt
LXZlcnNpb24gaGVyZSwgYnV0IGFwcGFyZW50bHkgc29tZSBHTlUgbGQncyBv
bmx5IGFjY2VwdCAtdi4KaWYgJExEIC12IDI+JjEgPC9kZXYvbnVsbCB8IGVn
cmVwICcoR05VfHdpdGggQkZEKScgMT4mNTsgdGhlbgogIGx0X2N2X3Byb2df
Z251X2xkPXllcwplbHNlCiAgbHRfY3ZfcHJvZ19nbnVfbGQ9bm8KZmkKZmkK
ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3Byb2dfZ251
X2xkIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGx0X2N2X3Byb2dfZ251X2xkIiA+
JjYKd2l0aF9nbnVfbGQ9JGx0X2N2X3Byb2dfZ251X2xkCgoKZWNobyAiJGFz
X21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkTEQgb3B0aW9uIHRvIHJlbG9h
ZCBvYmplY3QgZmlsZXMiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZv
ciAkTEQgb3B0aW9uIHRvIHJlbG9hZCBvYmplY3QgZmlsZXMuLi4gJEVDSE9f
QyIgPiY2CmlmIHRlc3QgIiR7bHRfY3ZfbGRfcmVsb2FkX2ZsYWcrc2V0fSIg
PSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0Mi
ID4mNgplbHNlCiAgbHRfY3ZfbGRfcmVsb2FkX2ZsYWc9Jy1yJwpmaQplY2hv
ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfbGRfcmVsb2FkX2Zs
YWciID4mNQplY2hvICIke0VDSE9fVH0kbHRfY3ZfbGRfcmVsb2FkX2ZsYWci
ID4mNgpyZWxvYWRfZmxhZz0kbHRfY3ZfbGRfcmVsb2FkX2ZsYWcKdGVzdCAt
biAiJHJlbG9hZF9mbGFnIiAmJiByZWxvYWRfZmxhZz0iICRyZWxvYWRfZmxh
ZyIKCmVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgQlNELWNv
bXBhdGlibGUgbm0iID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBC
U0QtY29tcGF0aWJsZSBubS4uLiAkRUNIT19DIiA+JjYKaWYgdGVzdCAiJHts
dF9jdl9wYXRoX05NK3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19O
ICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZWxzZQogIGlmIHRlc3QgLW4gIiRO
TSI7IHRoZW4KICAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4K
ICBsdF9jdl9wYXRoX05NPSIkTk0iCmVsc2UKICBJRlM9IiR7SUZTPSAJfSI7
IGFjX3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgogIGZv
ciBhY19kaXIgaW4gJFBBVEggL3Vzci9jY3MvYmluIC91c3IvdWNiIC9iaW47
IGRvCiAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgogICAgdG1w
X25tPSRhY19kaXIvJHthY190b29sX3ByZWZpeH1ubQogICAgaWYgdGVzdCAt
ZiAkdG1wX25tIHx8IHRlc3QgLWYgJHRtcF9ubSRhY19leGVleHQgOyB0aGVu
CiAgICAgICMgQ2hlY2sgdG8gc2VlIGlmIHRoZSBubSBhY2NlcHRzIGEgQlNE
LWNvbXBhdCBmbGFnLgogICAgICAjIEFkZGluZyB0aGUgYHNlZCAxcScgcHJl
dmVudHMgZmFsc2UgcG9zaXRpdmVzIG9uIEhQLVVYLCB3aGljaCBzYXlzOgog
ICAgICAjICAgbm06IHVua25vd24gb3B0aW9uICJCIiBpZ25vcmVkCiAgICAg
ICMgVHJ1NjQncyBubSBjb21wbGFpbnMgdGhhdCAvZGV2L251bGwgaXMgYW4g
aW52YWxpZCBvYmplY3QgZmlsZQogICAgICBpZiAoJHRtcF9ubSAtQiAvZGV2
L251bGwgMj4mMSB8IHNlZCAnMXEnOyBleGl0IDApIHwgZWdyZXAgJygvZGV2
L251bGx8SW52YWxpZCBmaWxlIG9yIG9iamVjdCB0eXBlKScgPi9kZXYvbnVs
bDsgdGhlbgoJbHRfY3ZfcGF0aF9OTT0iJHRtcF9ubSAtQiIKCWJyZWFrCiAg
ICAgIGVsaWYgKCR0bXBfbm0gLXAgL2Rldi9udWxsIDI+JjEgfCBzZWQgJzFx
JzsgZXhpdCAwKSB8IGVncmVwIC9kZXYvbnVsbCA+L2Rldi9udWxsOyB0aGVu
CglsdF9jdl9wYXRoX05NPSIkdG1wX25tIC1wIgoJYnJlYWsKICAgICAgZWxz
ZQoJbHRfY3ZfcGF0aF9OTT0ke2x0X2N2X3BhdGhfTk09IiR0bXBfbm0ifSAj
IGtlZXAgdGhlIGZpcnN0IG1hdGNoLCBidXQKCWNvbnRpbnVlICMgc28gdGhh
dCB3ZSBjYW4gdHJ5IHRvIGZpbmQgb25lIHRoYXQgc3VwcG9ydHMgQlNEIGZs
YWdzCiAgICAgIGZpCiAgICBmaQogIGRvbmUKICBJRlM9IiRhY19zYXZlX2lm
cyIKICB0ZXN0IC16ICIkbHRfY3ZfcGF0aF9OTSIgJiYgbHRfY3ZfcGF0aF9O
TT1ubQpmaQpmaQoKTk09IiRsdF9jdl9wYXRoX05NIgplY2hvICIkYXNfbWU6
JExJTkVOTzogcmVzdWx0OiAkTk0iID4mNQplY2hvICIke0VDSE9fVH0kTk0i
ID4mNgoKZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBhIHNl
ZCB0aGF0IGRvZXMgbm90IHRydW5jYXRlIG91dHB1dCIgPiY1CmVjaG8gJEVD
SE9fTiAiY2hlY2tpbmcgZm9yIGEgc2VkIHRoYXQgZG9lcyBub3QgdHJ1bmNh
dGUgb3V0cHV0Li4uICRFQ0hPX0MiID4mNgppZiB0ZXN0ICIke2x0X2N2X3Bh
dGhfU0VEK3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2Fj
aGVkKSAkRUNIT19DIiA+JjYKZWxzZQogICMgTG9vcCB0aHJvdWdoIHRoZSB1
c2VyJ3MgcGF0aCBhbmQgdGVzdCBmb3Igc2VkIGFuZCBnc2VkLgojIFRoZW4g
dXNlIHRoYXQgbGlzdCBvZiBzZWQncyBhcyBvbmVzIHRvIHRlc3QgZm9yIHRy
dW5jYXRpb24uCmFzX2V4ZWN1dGFibGVfcD0idGVzdCAtZiIKYXNfc2F2ZV9J
RlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgpmb3IgYXNfZGlyIGluICRQ
QVRICmRvCiAgSUZTPSRhc19zYXZlX0lGUwogIHRlc3QgLXogIiRhc19kaXIi
ICYmIGFzX2Rpcj0uCiAgZm9yIGFjX3Byb2cgaW4gc2VkIGdzZWQ7IGRvCiAg
ICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5z
aW9uczsgZG8KICAgICAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8k
YWNfcHJvZyRhY19leGVjX2V4dCI7IHRoZW4KICAgICAgICBfc2VkX2xpc3Q9
IiRfc2VkX2xpc3QgJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIKICAg
ICAgZmkKICAgIGRvbmUKICBkb25lCmRvbmUKCiAgIyBDcmVhdGUgYSB0ZW1w
b3JhcnkgZGlyZWN0b3J5LCBhbmQgaG9vayBmb3IgaXRzIHJlbW92YWwgdW5s
ZXNzIGRlYnVnZ2luZy4KJGRlYnVnIHx8CnsKICB0cmFwICdleGl0X3N0YXR1
cz0kPzsgcm0gLXJmICR0bXAgJiYgZXhpdCAkZXhpdF9zdGF0dXMnIDAKICB0
cmFwICd7IChleGl0IDEpOyBleGl0IDE7IH0nIDEgMiAxMyAxNQp9CgojIENy
ZWF0ZSBhIChzZWN1cmUpIHRtcCBkaXJlY3RvcnkgZm9yIHRtcCBmaWxlcy4K
OiAke1RNUERJUj0vdG1wfQp7CiAgdG1wPWAodW1hc2sgMDc3ICYmIG1rdGVt
cCAtZCAtcSAiJFRNUERJUi9zZWRYWFhYWFgiKSAyPi9kZXYvbnVsbGAgJiYK
ICB0ZXN0IC1uICIkdG1wIiAmJiB0ZXN0IC1kICIkdG1wIgp9ICB8fAp7CiAg
dG1wPSRUTVBESVIvc2VkJCQtJFJBTkRPTQogICh1bWFzayAwNzcgJiYgbWtk
aXIgJHRtcCkKfSB8fAp7CiAgIGVjaG8gIiRtZTogY2Fubm90IGNyZWF0ZSBh
IHRlbXBvcmFyeSBkaXJlY3RvcnkgaW4gJFRNUERJUiIgPiYyCiAgIHsgKGV4
aXQgMSk7IGV4aXQgMTsgfQp9CiAgX21heD0wCiAgX2NvdW50PTAKICAjIEFk
ZCAvdXNyL3hwZzQvYmluL3NlZCBhcyBpdCBpcyB0eXBpY2FsbHkgZm91bmQg
b24gU29sYXJpcwogICMgYWxvbmcgd2l0aCAvYmluL3NlZCB0aGF0IHRydW5j
YXRlcyBvdXRwdXQuCiAgZm9yIF9zZWQgaW4gJF9zZWRfbGlzdCAvdXNyL3hw
ZzQvYmluL3NlZDsgZG8KICAgIHRlc3QgISAtZiAke19zZWR9ICYmIGJyZWFr
CiAgICBjYXQgL2Rldi9udWxsID4gIiR0bXAvc2VkLmluIgogICAgX2NvdW50
PTAKICAgIGVjaG8gJHtFQ0hPX04tJGFjX259ICIwMTIzNDU2Nzg5JHtFQ0hP
X0MtJGFjX2N9IiA+IiR0bXAvc2VkLmluIgogICAgIyBDaGVjayBmb3IgR05V
IHNlZCBhbmQgc2VsZWN0IGl0IGlmIGl0IGlzIGZvdW5kLgogICAgaWYgIiR7
X3NlZH0iIC0tdmVyc2lvbiAyPiYxIDwgL2Rldi9udWxsIHwgZWdyZXAgJyhH
TlUpJyA+IC9kZXYvbnVsbDsgdGhlbgogICAgICBsdF9jdl9wYXRoX1NFRD0k
e19zZWR9CiAgICAgIGJyZWFrCiAgICBmaQogICAgd2hpbGUgdHJ1ZTsgZG8K
ICAgICAgY2F0ICIkdG1wL3NlZC5pbiIgIiR0bXAvc2VkLmluIiA+IiR0bXAv
c2VkLnRtcCIKICAgICAgbXYgIiR0bXAvc2VkLnRtcCIgIiR0bXAvc2VkLmlu
IgogICAgICBjcCAiJHRtcC9zZWQuaW4iICIkdG1wL3NlZC5ubCIKICAgICAg
ZWNobyA+PiIkdG1wL3NlZC5ubCIKICAgICAgJHtfc2VkfSAtZSAncy9hJC8v
JyA8ICIkdG1wL3NlZC5ubCIgPiIkdG1wL3NlZC5vdXQiIHx8IGJyZWFrCiAg
ICAgIGNtcCAtcyAiJHRtcC9zZWQub3V0IiAiJHRtcC9zZWQubmwiIHx8IGJy
ZWFrCiAgICAgICMgNDAwMDAgY2hhcnMgYXMgaW5wdXQgc2VlbXMgbW9yZSB0
aGFuIGVub3VnaAogICAgICB0ZXN0ICRfY291bnQgLWd0IDEwICYmIGJyZWFr
CiAgICAgIF9jb3VudD1gZXhwciAkX2NvdW50ICsgMWAKICAgICAgaWYgdGVz
dCAkX2NvdW50IC1ndCAkX21heDsgdGhlbgogICAgICAgIF9tYXg9JF9jb3Vu
dAogICAgICAgIGx0X2N2X3BhdGhfU0VEPSRfc2VkCiAgICAgIGZpCiAgICBk
b25lCiAgZG9uZQogIHJtIC1yZiAiJHRtcCIKCmZpCgppZiB0ZXN0ICJYJFNF
RCIgIT0gIlgiOyB0aGVuCiAgbHRfY3ZfcGF0aF9TRUQ9JFNFRAplbHNlCiAg
U0VEPSRsdF9jdl9wYXRoX1NFRApmaQplY2hvICIkYXNfbWU6JExJTkVOTzog
cmVzdWx0OiAkU0VEIiA+JjUKZWNobyAiJHtFQ0hPX1R9JFNFRCIgPiY2Cgpl
Y2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciBsbiAtcyB3
b3JrcyIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgd2hldGhlciBsbiAt
cyB3b3Jrcy4uLiAkRUNIT19DIiA+JjYKTE5fUz0kYXNfbG5fcwppZiB0ZXN0
ICIkTE5fUyIgPSAibG4gLXMiOyB0aGVuCiAgZWNobyAiJGFzX21lOiRMSU5F
Tk86IHJlc3VsdDogeWVzIiA+JjUKZWNobyAiJHtFQ0hPX1R9eWVzIiA+JjYK
ZWxzZQogIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vLCB1c2lu
ZyAkTE5fUyIgPiY1CmVjaG8gIiR7RUNIT19UfW5vLCB1c2luZyAkTE5fUyIg
PiY2CmZpCgplY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaG93IHRv
IHJlY29nbmlzZSBkZXBlbmRlbnQgbGlicmFyaWVzIiA+JjUKZWNobyAkRUNI
T19OICJjaGVja2luZyBob3cgdG8gcmVjb2duaXNlIGRlcGVuZGVudCBsaWJy
YXJpZXMuLi4gJEVDSE9fQyIgPiY2CmlmIHRlc3QgIiR7bHRfY3ZfZGVwbGli
c19jaGVja19tZXRob2Qrc2V0fSIgPSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hP
X04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCiAgbHRfY3ZfZmlsZV9t
YWdpY19jbWQ9JyRNQUdJQ19DTUQnCmx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9m
aWxlPQpsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0ndW5rbm93bicKIyBO
ZWVkIHRvIHNldCB0aGUgcHJlY2VkaW5nIHZhcmlhYmxlIG9uIGFsbCBwbGF0
Zm9ybXMgdGhhdCBzdXBwb3J0CiMgaW50ZXJsaWJyYXJ5IGRlcGVuZGVuY2ll
cy4KIyAnbm9uZScgLS0gZGVwZW5kZW5jaWVzIG5vdCBzdXBwb3J0ZWQuCiMg
YHVua25vd24nIC0tIHNhbWUgYXMgbm9uZSwgYnV0IGRvY3VtZW50cyB0aGF0
IHdlIHJlYWxseSBkb24ndCBrbm93LgojICdwYXNzX2FsbCcgLS0gYWxsIGRl
cGVuZGVuY2llcyBwYXNzZWQgd2l0aCBubyBjaGVja3MuCiMgJ3Rlc3RfY29t
cGlsZScgLS0gY2hlY2sgYnkgbWFraW5nIHRlc3QgcHJvZ3JhbS4KIyAnZmls
ZV9tYWdpYyBbW3JlZ2V4XV0nIC0tIGNoZWNrIGJ5IGxvb2tpbmcgZm9yIGZp
bGVzIGluIGxpYnJhcnkgcGF0aAojIHdoaWNoIHJlc3BvbmRzIHRvIHRoZSAk
ZmlsZV9tYWdpY19jbWQgd2l0aCBhIGdpdmVuIGVncmVwIHJlZ2V4LgojIElm
IHlvdSBoYXZlIGBmaWxlJyBvciBlcXVpdmFsZW50IG9uIHlvdXIgc3lzdGVt
IGFuZCB5b3UncmUgbm90IHN1cmUKIyB3aGV0aGVyIGBwYXNzX2FsbCcgd2ls
bCAqYWx3YXlzKiB3b3JrLCB5b3UgcHJvYmFibHkgd2FudCB0aGlzIG9uZS4K
CmNhc2UgJGhvc3Rfb3MgaW4KYWl4NCogfCBhaXg1KikKICBsdF9jdl9kZXBs
aWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAogIDs7CgpiZW9zKikKICBsdF9j
dl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAogIDs7Cgpic2RpNCop
CiAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgRUxG
IFswLTldWzAtOV0qLWJpdCBbTUxdU0IgKHNoYXJlZCBvYmplY3R8ZHluYW1p
YyBsaWIpJwogIGx0X2N2X2ZpbGVfbWFnaWNfY21kPScvdXNyL2Jpbi9maWxl
IC1MJwogIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPS9zaGxpYi9saWJj
LnNvCiAgOzsKCmN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKikKICBsdF9jdl9k
ZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBmaWxlIGZvcm1hdCBw
ZWkqLWkzODYoLiphcmNoaXRlY3R1cmU6IGkzODYpPycKICBsdF9jdl9maWxl
X21hZ2ljX2NtZD0nJE9CSkRVTVAgLWYnCiAgOzsKCmRhcndpbiogfCByaGFw
c29keSopCiAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFn
aWMgTWFjaC1PIGR5bmFtaWNhbGx5IGxpbmtlZCBzaGFyZWQgbGlicmFyeScK
ICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nL3Vzci9iaW4vZmlsZSAtTCcKICBj
YXNlICIkaG9zdF9vcyIgaW4KICByaGFwc29keSogfCBkYXJ3aW4xLlswMTJd
KQogICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9YGVjaG8gL1N5c3Rl
bS9MaWJyYXJ5L0ZyYW1ld29ya3MvU3lzdGVtLmZyYW1ld29yay9WZXJzaW9u
cy8qL1N5c3RlbSB8IGhlYWQgLTFgCiAgICA7OwogICopICMgRGFyd2luIDEu
MyBvbgogICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9Jy91c3IvbGli
L2xpYlN5c3RlbS5keWxpYicKICAgIDs7CiAgZXNhYwogIDs7CgpmcmVlYnNk
KikKICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8IGdyZXAgX19FTEZf
XyA+IC9kZXYvbnVsbDsgdGhlbgogICAgY2FzZSAkaG9zdF9jcHUgaW4KICAg
IGkqODYgKQogICAgICAjIE5vdCBzdXJlIHdoZXRoZXIgdGhlIHByZXNlbmNl
IG9mIE9wZW5CU0QgaGVyZSB3YXMgYSBtaXN0YWtlLgogICAgICAjIExldCdz
IGFjY2VwdCBib3RoIG9mIHRoZW0gdW50aWwgdGhpcyBpcyBjbGVhcmVkIHVw
LgogICAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdp
YyAoRnJlZUJTRHxPcGVuQlNEKS9pWzMtOV04NiAoY29tcGFjdCApP2RlbWFu
ZCBwYWdlZCBzaGFyZWQgbGlicmFyeScKICAgICAgbHRfY3ZfZmlsZV9tYWdp
Y19jbWQ9L3Vzci9iaW4vZmlsZQogICAgICBsdF9jdl9maWxlX21hZ2ljX3Rl
c3RfZmlsZT1gZWNobyAvdXNyL2xpYi9saWJjLnNvLipgCiAgICAgIDs7CiAg
ICBlc2FjCiAgZWxzZQogICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9
cGFzc19hbGwKICBmaQogIDs7CgpnbnUqKQogIGx0X2N2X2RlcGxpYnNfY2hl
Y2tfbWV0aG9kPXBhc3NfYWxsCiAgOzsKCmhwdXgxMC4yMCp8aHB1eDExKikK
ICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoc1sw
LTldWzAtOV1bMC05XXxQQS1SSVNDWzAtOV0uWzAtOV0pIHNoYXJlZCBsaWJy
YXJ5JwogIGx0X2N2X2ZpbGVfbWFnaWNfY21kPS91c3IvYmluL2ZpbGUKICBs
dF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vdXNyL2xpYi9saWJjLnNsCiAg
OzsKCmlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCiAgY2FzZSAkaG9z
dF9vcyBpbgogIGlyaXg1KiB8IG5vbnN0b3B1eCopCiAgICAjIHRoaXMgd2ls
bCBiZSBvdmVycmlkZGVuIHdpdGggcGFzc19hbGwsIGJ1dCBsZXQgdXMga2Vl
cCBpdCBqdXN0IGluIGNhc2UKICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0
aG9kPSJmaWxlX21hZ2ljIEVMRiAzMi1iaXQgTVNCIGR5bmFtaWMgbGliIE1J
UFMgLSB2ZXJzaW9uIDEiCiAgICA7OwogICopCiAgICBjYXNlICRMRCBpbgog
ICAgKi0zMnwqIi0zMiAiKSBsaWJtYWdpYz0zMi1iaXQ7OwogICAgKi1uMzJ8
KiItbjMyICIpIGxpYm1hZ2ljPU4zMjs7CiAgICAqLTY0fCoiLTY0ICIpIGxp
Ym1hZ2ljPTY0LWJpdDs7CiAgICAqKSBsaWJtYWdpYz1uZXZlci1tYXRjaDs7
CiAgICBlc2FjCiAgICAjIHRoaXMgd2lsbCBiZSBvdmVycmlkZGVuIHdpdGgg
cGFzc19hbGwsIGJ1dCBsZXQgdXMga2VlcCBpdCBqdXN0IGluIGNhc2UKICAg
IGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSJmaWxlX21hZ2ljIEVMRiAk
e2xpYm1hZ2ljfSBNU0IgbWlwcy1bMTIzNF0gZHluYW1pYyBsaWIgTUlQUyAt
IHZlcnNpb24gMSIKICAgIDs7CiAgZXNhYwogIGx0X2N2X2ZpbGVfbWFnaWNf
dGVzdF9maWxlPWBlY2hvIC9saWIke2xpYnN1ZmZ9L2xpYmMuc28qYAogIGx0
X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCiAgOzsKCiMgVGhp
cyBtdXN0IGJlIExpbnV4IEVMRi4KbGludXgtZ251KikKICBjYXNlICRob3N0
X2NwdSBpbgogIGFscGhhKiB8IGhwcGEqIHwgaSo4NiB8IG1pcHMgfCBtaXBz
ZWwgfCBwb3dlcnBjKiB8IHNwYXJjKiB8IGlhNjQqIHwgczM5MCogfCB4ODZf
NjQqKQogICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwg
OzsKICAqKQogICAgIyBnbGliYyB1cCB0byAyLjEuMSBkb2VzIG5vdCBwZXJm
b3JtIHNvbWUgcmVsb2NhdGlvbnMgb24gQVJNCiAgICBsdF9jdl9kZXBsaWJz
X2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBFTEYgWzAtOV1bMC05XSotYml0
IFtMTV1TQiAoc2hhcmVkIG9iamVjdHxkeW5hbWljIGxpYiApJyA7OwogIGVz
YWMKICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT1gZWNobyAvbGliL2xp
YmMuc28qIC9saWIvbGliYy0qLnNvYAogIDs7CgpuZXRic2QqKQogIGlmIGVj
aG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgZ3JlcCBfX0VMRl9fID4gL2Rldi9u
dWxsOyB0aGVuCiAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0
Y2hfcGF0dGVybiAvbGliW14vXC5dK1wuc29cLlswLTldK1wuWzAtOV0rJCcK
ICBlbHNlCiAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hf
cGF0dGVybiAvbGliW14vXC5dK1wuc28kJwogIGZpCiAgOzsKCm5ld29zNiop
CiAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgRUxG
IFswLTldWzAtOV0qLWJpdCBbTUxdU0IgKGV4ZWN1dGFibGV8ZHluYW1pYyBs
aWIpJwogIGx0X2N2X2ZpbGVfbWFnaWNfY21kPS91c3IvYmluL2ZpbGUKICBs
dF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vdXNyL2xpYi9saWJubHMuc28K
ICA7OwoKb3BlbmJzZCopCiAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9L3Vzci9i
aW4vZmlsZQogIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPWBlY2hvIC91
c3IvbGliL2xpYmMuc28uKmAKICBpZiB0ZXN0IC16ICJgZWNobyBfX0VMRl9f
IHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9v
cy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KICAg
IGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIEVMRiBb
MC05XVswLTldKi1iaXQgW0xNXVNCIHNoYXJlZCBvYmplY3QnCiAgZWxzZQog
ICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgT3Bl
bkJTRC4qIHNoYXJlZCBsaWJyYXJ5JwogIGZpCiAgOzsKCm9zZjMqIHwgb3Nm
NCogfCBvc2Y1KikKICAjIHRoaXMgd2lsbCBiZSBvdmVycmlkZGVuIHdpdGgg
cGFzc19hbGwsIGJ1dCBsZXQgdXMga2VlcCBpdCBqdXN0IGluIGNhc2UKICBs
dF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBDT0ZGIGZv
cm1hdCBhbHBoYSBzaGFyZWQgbGlicmFyeScKICBsdF9jdl9maWxlX21hZ2lj
X3Rlc3RfZmlsZT0vc2hsaWIvbGliYy5zbwogIGx0X2N2X2RlcGxpYnNfY2hl
Y2tfbWV0aG9kPXBhc3NfYWxsCiAgOzsKCnNjbzMuMnY1KikKICBsdF9jdl9k
ZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAogIDs7Cgpzb2xhcmlzKikK
ICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAogIGx0X2N2
X2ZpbGVfbWFnaWNfdGVzdF9maWxlPS9saWIvbGliYy5zbwogIDs7CgpzeXN2
NXV3Wzc4XSogfCBzeXN2NCp1dzIqKQogIGx0X2N2X2RlcGxpYnNfY2hlY2tf
bWV0aG9kPXBhc3NfYWxsCiAgOzsKCnN5c3Y0IHwgc3lzdjQuMnV3MiogfCBz
eXN2NC4zKiB8IHN5c3Y1KikKICBjYXNlICRob3N0X3ZlbmRvciBpbgogIG1v
dG9yb2xhKQogICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVf
bWFnaWMgRUxGIFswLTldWzAtOV0qLWJpdCBbTUxdU0IgKHNoYXJlZCBvYmpl
Y3R8ZHluYW1pYyBsaWIpIE1bMC05XVswLTldKiBWZXJzaW9uIFswLTldJwog
ICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9YGVjaG8gL3Vzci9saWIv
bGliYy5zbypgCiAgICA7OwogIG5jcikKICAgIGx0X2N2X2RlcGxpYnNfY2hl
Y2tfbWV0aG9kPXBhc3NfYWxsCiAgICA7OwogIHNlcXVlbnQpCiAgICBsdF9j
dl9maWxlX21hZ2ljX2NtZD0nL2Jpbi9maWxlJwogICAgbHRfY3ZfZGVwbGli
c19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgRUxGIFswLTldWzAtOV0qLWJp
dCBbTE1dU0IgKHNoYXJlZCBvYmplY3R8ZHluYW1pYyBsaWIgKScKICAgIDs7
CiAgc25pKQogICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9Jy9iaW4vZmlsZScK
ICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSJmaWxlX21hZ2ljIEVM
RiBbMC05XVswLTldKi1iaXQgW0xNXVNCIGR5bmFtaWMgbGliIgogICAgbHRf
Y3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L2xpYi9saWJjLnNvCiAgICA7Owog
IHNpZW1lbnMpCiAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNz
X2FsbAogICAgOzsKICBlc2FjCiAgOzsKZXNhYwoKZmkKZWNobyAiJGFzX21l
OiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9k
IiA+JjUKZWNobyAiJHtFQ0hPX1R9JGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0
aG9kIiA+JjYKZmlsZV9tYWdpY19jbWQ9JGx0X2N2X2ZpbGVfbWFnaWNfY21k
CmRlcGxpYnNfY2hlY2tfbWV0aG9kPSRsdF9jdl9kZXBsaWJzX2NoZWNrX21l
dGhvZAoKCgoKCgoKCiMgQ2hlY2sgZm9yIGNvbW1hbmQgdG8gZ3JhYiB0aGUg
cmF3IHN5bWJvbCBuYW1lIGZvbGxvd2VkIGJ5IEMgc3ltYm9sIGZyb20gbm0u
CmVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBjb21tYW5kIHRvIHBh
cnNlICROTSBvdXRwdXQiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGNv
bW1hbmQgdG8gcGFyc2UgJE5NIG91dHB1dC4uLiAkRUNIT19DIiA+JjYKaWYg
dGVzdCAiJHtsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlK3NldH0iID0g
c2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+
JjYKZWxzZQoKIyBUaGVzZSBhcmUgc2FuZSBkZWZhdWx0cyB0aGF0IHdvcmsg
b24gYXQgbGVhc3QgYSBmZXcgb2xkIHN5c3RlbXMuCiMgW1RoZXkgY29tZSBm
cm9tIFVsdHJpeC4gIFdoYXQgY291bGQgYmUgb2xkZXIgdGhhbiBVbHRyaXg/
ISEgOyldCgojIENoYXJhY3RlciBjbGFzcyBkZXNjcmliaW5nIE5NIGdsb2Jh
bCBzeW1ib2wgY29kZXMuCnN5bWNvZGU9J1tCQ0RFR1JTVF0nCgojIFJlZ2V4
cCB0byBtYXRjaCBzeW1ib2xzIHRoYXQgY2FuIGJlIGFjY2Vzc2VkIGRpcmVj
dGx5IGZyb20gQy4Kc3ltcGF0PSdcKFtfQS1aYS16XVtfQS1aYS16MC05XSpc
KScKCiMgVHJhbnNmb3JtIHRoZSBhYm92ZSBpbnRvIGEgcmF3IHN5bWJvbCBh
bmQgYSBDIHN5bWJvbC4Kc3lteGZybT0nXDEgXDJcMyBcMycKCiMgVHJhbnNm
b3JtIGFuIGV4dHJhY3RlZCBzeW1ib2wgbGluZSBpbnRvIGEgcHJvcGVyIEMg
ZGVjbGFyYXRpb24KbHRfY3ZfZ2xvYmFsX3N5bWJvbF90b19jZGVjbD0ic2Vk
IC1uIC1lICdzL14uIC4qIFwoLipcKSQvZXh0ZXJuIGNoYXIgXDE7L3AnIgoK
IyBUcmFuc2Zvcm0gYW4gZXh0cmFjdGVkIHN5bWJvbCBsaW5lIGludG8gc3lt
Ym9sIG5hbWUgYW5kIHN5bWJvbCBhZGRyZXNzCmx0X2N2X2dsb2JhbF9zeW1i
b2xfdG9fY19uYW1lX2FkZHJlc3M9InNlZCAtbiAtZSAncy9eOiBcKFteIF0q
XCkgJC8gIHtcXFwiXDFcXFwiLCAobHRfcHRyKSAwfSwvcCcgLWUgJ3MvXiRz
eW1jb2RlIFwoW14gXSpcKSBcKFteIF0qXCkkLyAge1wiXDJcIiwgKGx0X3B0
cikgXCZcMn0sL3AnIgoKIyBEZWZpbmUgc3lzdGVtLXNwZWNpZmljIHZhcmlh
Ymxlcy4KY2FzZSAkaG9zdF9vcyBpbgphaXgqKQogIHN5bWNvZGU9J1tCQ0RU
XScKICA7OwpjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiopCiAgc3ltY29kZT0n
W0FCQ0RHSVNUV10nCiAgOzsKaHB1eCopICMgSXRzIGxpbmtlciBkaXN0aW5n
dWlzaGVzIGRhdGEgZnJvbSBjb2RlIHN5bWJvbHMKICBsdF9jdl9nbG9iYWxf
c3ltYm9sX3RvX2NkZWNsPSJzZWQgLW4gLWUgJ3MvXlQgLiogXCguKlwpJC9l
eHRlcm4gY2hhciBcMSgpOy9wJyAtZSAncy9eJHN5bWNvZGUqIC4qIFwoLipc
KSQvZXh0ZXJuIGNoYXIgXDE7L3AnIgogIGx0X2N2X2dsb2JhbF9zeW1ib2xf
dG9fY19uYW1lX2FkZHJlc3M9InNlZCAtbiAtZSAncy9eOiBcKFteIF0qXCkg
JC8gIHtcXFwiXDFcXFwiLCAobHRfcHRyKSAwfSwvcCcgLWUgJ3MvXiRzeW1j
b2RlKiBcKFteIF0qXCkgXChbXiBdKlwpJC8gIHtcIlwyXCIsIChsdF9wdHIp
IFwmXDJ9LC9wJyIKICA7Owppcml4KiB8IG5vbnN0b3B1eCopCiAgc3ltY29k
ZT0nW0JDREVHUlNUXScKICA7Owpvc2YqKQogIHN5bWNvZGU9J1tCQ0RFR1FS
U1RdJwogIDs7CnNvbGFyaXMqIHwgc3lzdjUqKQogIHN5bWNvZGU9J1tCRFRd
JwogIDs7CnN5c3Y0KQogIHN5bWNvZGU9J1tERk5TVFVdJwogIDs7CmVzYWMK
CiMgSGFuZGxlIENSTEYgaW4gbWluZ3cgdG9vbCBjaGFpbgpvcHRfY3I9CmNh
c2UgJGhvc3Rfb3MgaW4KbWluZ3cqKQogIG9wdF9jcj1gZWNobyAneFx7MCwx
XH0nIHwgdHIgeCAnXDAxNSdgICMgb3B0aW9uIGNyIGluIHJlZ2V4cAogIDs7
CmVzYWMKCiMgSWYgd2UncmUgdXNpbmcgR05VIG5tLCB0aGVuIHVzZSBpdHMg
c3RhbmRhcmQgc3ltYm9sIGNvZGVzLgppZiAkTk0gLVYgMj4mMSB8IGVncmVw
ICcoR05VfHdpdGggQkZEKScgPiAvZGV2L251bGw7IHRoZW4KICBzeW1jb2Rl
PSdbQUJDREdJU1RXXScKZmkKCiMgVHJ5IHdpdGhvdXQgYSBwcmVmaXggdW5k
ZXJjb3JlLCB0aGVuIHdpdGggaXQuCmZvciBhY19zeW1wcmZ4IGluICIiICJf
IjsgZG8KCiAgIyBXcml0ZSB0aGUgcmF3IGFuZCBDIGlkZW50aWZpZXJzLgps
dF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlPSJzZWQgLW4gLWUgJ3MvXi4q
WyAJXVwoJHN5bWNvZGUkc3ltY29kZSpcKVsgCV1bIAldKlwoJGFjX3N5bXBy
ZnhcKSRzeW1wYXQkb3B0X2NyJC8kc3lteGZybS9wJyIKCiAgIyBDaGVjayB0
byBzZWUgdGhhdCB0aGUgcGlwZSB3b3JrcyBjb3JyZWN0bHkuCiAgcGlwZV93
b3Jrcz1ubwogIHJtIC1mIGNvbmZ0ZXN0KgogIGNhdCA+IGNvbmZ0ZXN0LiRh
Y19leHQgPDxFT0YKI2lmZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAiQyIgewoj
ZW5kaWYKY2hhciBubV90ZXN0X3ZhcjsKdm9pZCBubV90ZXN0X2Z1bmMoKXt9
CiNpZmRlZiBfX2NwbHVzcGx1cwp9CiNlbmRpZgppbnQgbWFpbigpe25tX3Rl
c3RfdmFyPSdhJztubV90ZXN0X2Z1bmMoKTtyZXR1cm4oMCk7fQpFT0YKCiAg
aWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGls
ZVwiIikgPiY1CiAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKICBhY19zdGF0
dXM9JD8KICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1
cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IHRoZW4KICAgICMgTm93
IHRyeSB0byBncmFiIHRoZSBzeW1ib2xzLgogICAgbmxpc3Q9Y29uZnRlc3Qu
bm0KICAgIGlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJE5N
IGNvbmZ0ZXN0LiRhY19vYmpleHQgXHwgJGx0X2N2X3N5c19nbG9iYWxfc3lt
Ym9sX3BpcGUgXD4gJG5saXN0XCIiKSA+JjUKICAoZXZhbCAkTk0gY29uZnRl
c3QuJGFjX29iamV4dCBcfCAkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlw
ZSBcPiAkbmxpc3QpIDI+JjUKICBhY19zdGF0dXM9JD8KICBlY2hvICIkYXNf
bWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFj
X3N0YXR1cyk7IH0gJiYgdGVzdCAtcyAiJG5saXN0IjsgdGhlbgogICAgICAj
IFRyeSBzb3J0aW5nIGFuZCB1bmlxdWlmeWluZyB0aGUgb3V0cHV0LgogICAg
ICBpZiBzb3J0ICIkbmxpc3QiIHwgdW5pcSA+ICIkbmxpc3QiVDsgdGhlbgoJ
bXYgLWYgIiRubGlzdCJUICIkbmxpc3QiCiAgICAgIGVsc2UKCXJtIC1mICIk
bmxpc3QiVAogICAgICBmaQoKICAgICAgIyBNYWtlIHN1cmUgdGhhdCB3ZSBz
bmFnZ2VkIGFsbCB0aGUgc3ltYm9scyB3ZSBuZWVkLgogICAgICBpZiBlZ3Jl
cCAnIG5tX3Rlc3RfdmFyJCcgIiRubGlzdCIgPi9kZXYvbnVsbDsgdGhlbgoJ
aWYgZWdyZXAgJyBubV90ZXN0X2Z1bmMkJyAiJG5saXN0IiA+L2Rldi9udWxs
OyB0aGVuCgkgIGNhdCA8PEVPRiA+IGNvbmZ0ZXN0LiRhY19leHQKI2lmZGVm
IF9fY3BsdXNwbHVzCmV4dGVybiAiQyIgewojZW5kaWYKCkVPRgoJICAjIE5v
dyBnZW5lcmF0ZSB0aGUgc3ltYm9sIGZpbGUuCgkgIGV2YWwgIiRsdF9jdl9n
bG9iYWxfc3ltYm9sX3RvX2NkZWNsIicgPCAiJG5saXN0IiA+PiBjb25mdGVz
dC4kYWNfZXh0JwoKCSAgY2F0IDw8RU9GID4+IGNvbmZ0ZXN0LiRhY19leHQK
I2lmIGRlZmluZWQgKF9fU1REQ19fKSAmJiBfX1NURENfXwojIGRlZmluZSBs
dF9wdHIgdm9pZCAqCiNlbHNlCiMgZGVmaW5lIGx0X3B0ciBjaGFyICoKIyBk
ZWZpbmUgY29uc3QKI2VuZGlmCgovKiBUaGUgbWFwcGluZyBiZXR3ZWVuIHN5
bWJvbCBuYW1lcyBhbmQgc3ltYm9scy4gKi8KY29uc3Qgc3RydWN0IHsKICBj
b25zdCBjaGFyICpuYW1lOwogIGx0X3B0ciBhZGRyZXNzOwp9Cmx0X3ByZWxv
YWRlZF9zeW1ib2xzW10gPQp7CkVPRgoJICBzZWQgInMvXiRzeW1jb2RlJHN5
bWNvZGUqIFwoLipcKSBcKC4qXCkkLyAge1wiXDJcIiwgKGx0X3B0cikgXCZc
Mn0sLyIgPCAiJG5saXN0IiA+PiBjb25mdGVzdC4kYWNfZXh0CgkgIGNhdCA8
PFxFT0YgPj4gY29uZnRlc3QuJGFjX2V4dAogIHswLCAobHRfcHRyKSAwfQp9
OwoKI2lmZGVmIF9fY3BsdXNwbHVzCn0KI2VuZGlmCkVPRgoJICAjIE5vdyB0
cnkgbGlua2luZyB0aGUgdHdvIGZpbGVzLgoJICBtdiBjb25mdGVzdC4kYWNf
b2JqZXh0IGNvbmZ0c3RtLiRhY19vYmpleHQKCSAgc2F2ZV9MSUJTPSIkTElC
UyIKCSAgc2F2ZV9DRkxBR1M9IiRDRkxBR1MiCgkgIExJQlM9ImNvbmZ0c3Rt
LiRhY19vYmpleHQiCgkgIENGTEFHUz0iJENGTEFHUyRub19idWlsdGluX2Zs
YWciCgkgIGlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFj
X2xpbmtcIiIpID4mNQogIChldmFsICRhY19saW5rKSAyPiY1CiAgYWNfc3Rh
dHVzPSQ/CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0
dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHRlc3QgLXMgY29u
ZnRlc3QkYWNfZXhlZXh0OyB0aGVuCgkgICAgcGlwZV93b3Jrcz15ZXMKCSAg
ZmkKCSAgTElCUz0iJHNhdmVfTElCUyIKCSAgQ0ZMQUdTPSIkc2F2ZV9DRkxB
R1MiCgllbHNlCgkgIGVjaG8gImNhbm5vdCBmaW5kIG5tX3Rlc3RfZnVuYyBp
biAkbmxpc3QiID4mNQoJZmkKICAgICAgZWxzZQoJZWNobyAiY2Fubm90IGZp
bmQgbm1fdGVzdF92YXIgaW4gJG5saXN0IiA+JjUKICAgICAgZmkKICAgIGVs
c2UKICAgICAgZWNobyAiY2Fubm90IHJ1biAkbHRfY3Zfc3lzX2dsb2JhbF9z
eW1ib2xfcGlwZSIgPiY1CiAgICBmaQogIGVsc2UKICAgIGVjaG8gIiRwcm9n
bmFtZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CiAgICBjYXQgY29uZnRl
c3QuJGFjX2V4dCA+JjUKICBmaQogIHJtIC1mIGNvbmZ0ZXN0KiBjb25mdHN0
KgoKICAjIERvIG5vdCB1c2UgdGhlIGdsb2JhbF9zeW1ib2xfcGlwZSB1bmxl
c3MgaXQgd29ya3MuCiAgaWYgdGVzdCAiJHBpcGVfd29ya3MiID0geWVzOyB0
aGVuCiAgICBicmVhawogIGVsc2UKICAgIGx0X2N2X3N5c19nbG9iYWxfc3lt
Ym9sX3BpcGU9CiAgZmkKZG9uZQoKZmkKCmdsb2JhbF9zeW1ib2xfcGlwZT0i
JGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUiCmlmIHRlc3QgLXogIiRs
dF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIjsgdGhlbgogIGdsb2JhbF9z
eW1ib2xfdG9fY2RlY2w9CiAgZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRk
cmVzcz0KZWxzZQogIGdsb2JhbF9zeW1ib2xfdG9fY2RlY2w9IiRsdF9jdl9n
bG9iYWxfc3ltYm9sX3RvX2NkZWNsIgogIGdsb2JhbF9zeW1ib2xfdG9fY19u
YW1lX2FkZHJlc3M9IiRsdF9jdl9nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9h
ZGRyZXNzIgpmaQppZiB0ZXN0IC16ICIkZ2xvYmFsX3N5bWJvbF9waXBlJGds
b2JhbF9zeW1ib2xfdG9fY2RlYyRnbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9h
ZGRyZXNzIjsKdGhlbgogIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6
IGZhaWxlZCIgPiY1CmVjaG8gIiR7RUNIT19UfWZhaWxlZCIgPiY2CmVsc2UK
ICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBvayIgPiY1CmVjaG8g
IiR7RUNIT19UfW9rIiA+JjYKZmkKCmFjX2V4dD1jCmFjX2NwcD0nJENQUCAk
Q1BQRkxBR1MnCmFjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFH
UyBjb25mdGVzdC4kYWNfZXh0ID4mNScKYWNfbGluaz0nJENDIC1vIGNvbmZ0
ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25m
dGVzdC4kYWNfZXh0ICRMSUJTID4mNScKYWNfY29tcGlsZXJfZ251PSRhY19j
dl9jX2NvbXBpbGVyX2dudQplY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp
bmcgaG93IHRvIHJ1biB0aGUgQyBwcmVwcm9jZXNzb3IiID4mNQplY2hvICRF
Q0hPX04gImNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMgcHJlcHJvY2Vzc29y
Li4uICRFQ0hPX0MiID4mNgojIE9uIFN1bnMsIHNvbWV0aW1lcyAkQ1BQIG5h
bWVzIGEgZGlyZWN0b3J5LgppZiB0ZXN0IC1uICIkQ1BQIiAmJiB0ZXN0IC1k
ICIkQ1BQIjsgdGhlbgogIENQUD0KZmkKaWYgdGVzdCAteiAiJENQUCI7IHRo
ZW4KICBpZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ1BQK3NldH0iID0gc2V0OyB0
aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZWxz
ZQogICAgICAjIERvdWJsZSBxdW90ZXMgYmVjYXVzZSBDUFAgbmVlZHMgdG8g
YmUgZXhwYW5kZWQKICAgIGZvciBDUFAgaW4gIiRDQyAtRSIgIiRDQyAtRSAt
dHJhZGl0aW9uYWwtY3BwIiAiL2xpYi9jcHAiCiAgICBkbwogICAgICBhY19w
cmVwcm9jX29rPWZhbHNlCmZvciBhY19jX3ByZXByb2Nfd2Fybl9mbGFnIGlu
ICcnIHllcwpkbwogICMgVXNlIGEgaGVhZGVyIGZpbGUgdGhhdCBjb21lcyB3
aXRoIGdjYywgc28gY29uZmlndXJpbmcgZ2xpYmMKICAjIHdpdGggYSBmcmVz
aCBjcm9zcy1jb21waWxlciB3b3Jrcy4KICAjIFByZWZlciA8bGltaXRzLmg+
IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UK
ICAjIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNv
bXBpbGVycy4KICAjIE9uIHRoZSBOZVhULCBjYyAtRSBydW5zIHRoZSBjb2Rl
IHRocm91Z2ggdGhlIGNvbXBpbGVyJ3MgcGFyc2VyLAogICMgbm90IGp1c3Qg
dGhyb3VnaCBjcHAuICJTeW50YXggZXJyb3IiIGlzIGhlcmUgdG8gY2F0Y2gg
dGhpcyBjYXNlLgogIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgoj
bGluZSAkTElORU5PICJjb25maWd1cmUiCi8qIGNvbmZkZWZzLmguICAqLwpf
QUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+
PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmgu
ICAqLwojaWZkZWYgX19TVERDX18KIyBpbmNsdWRlIDxsaW1pdHMuaD4KI2Vs
c2UKIyBpbmNsdWRlIDxhc3NlcnQuaD4KI2VuZGlmCiAgICAgICAgICAgICAg
ICAgICAgIFN5bnRheCBlcnJvcgpfQUNFT0YKaWYgeyAoZXZhbCBlY2hvICIk
YXNfbWU6JExJTkVOTzogXCIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHRcIiIp
ID4mNQogIChldmFsICRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCkgMj5jb25m
dGVzdC5lcjEKICBhY19zdGF0dXM9JD8KICBncmVwIC12ICdeICorJyBjb25m
dGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgogIHJtIC1mIGNvbmZ0ZXN0LmVyMQog
IGNhdCBjb25mdGVzdC5lcnIgPiY1CiAgZWNobyAiJGFzX21lOiRMSU5FTk86
IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9
ID4vZGV2L251bGw7IHRoZW4KICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsg
dGhlbgogICAgYWNfY3BwX2Vycj0kYWNfY19wcmVwcm9jX3dhcm5fZmxhZwog
IGVsc2UKICAgIGFjX2NwcF9lcnI9CiAgZmkKZWxzZQogIGFjX2NwcF9lcnI9
eWVzCmZpCmlmIHRlc3QgLXogIiRhY19jcHBfZXJyIjsgdGhlbgogIDoKZWxz
ZQogIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNl
ZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCiAgIyBCcm9rZW46
IGZhaWxzIG9uIHZhbGlkIGlucHV0Lgpjb250aW51ZQpmaQpybSAtZiBjb25m
dGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAoKICAjIE9LLCB3b3JrcyBvbiBz
YW5lIGNhc2VzLiAgTm93IGNoZWNrIHdoZXRoZXIgbm9uLWV4aXN0ZW50IGhl
YWRlcnMKICAjIGNhbiBiZSBkZXRlY3RlZCBhbmQgaG93LgogIGNhdCA+Y29u
ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgojbGluZSAkTElORU5PICJjb25maWd1
cmUiCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmgg
Pj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxf
QUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwojaW5jbHVkZSA8YWNfbm9u
ZXhpc3RlbnQuaD4KX0FDRU9GCmlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRM
SU5FTk86IFwiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0XCIiKSA+JjUKICAo
ZXZhbCAkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQpIDI+Y29uZnRlc3QuZXIx
CiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIx
ID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25mdGVzdC5lcjEKICBjYXQgY29u
ZnRlc3QuZXJyID4mNQogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAk
YWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9u
dWxsOyB0aGVuCiAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KICAg
IGFjX2NwcF9lcnI9JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcKICBlbHNlCiAg
ICBhY19jcHBfZXJyPQogIGZpCmVsc2UKICBhY19jcHBfZXJyPXllcwpmaQpp
ZiB0ZXN0IC16ICIkYWNfY3BwX2VyciI7IHRoZW4KICAjIEJyb2tlbjogc3Vj
Y2VzcyBvbiBpbnZhbGlkIGlucHV0Lgpjb250aW51ZQplbHNlCiAgZWNobyAi
JGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAv
JyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKICAjIFBhc3NlcyBib3RoIHRlc3Rz
LgphY19wcmVwcm9jX29rPToKYnJlYWsKZmkKcm0gLWYgY29uZnRlc3QuZXJy
IGNvbmZ0ZXN0LiRhY19leHQKCmRvbmUKIyBCZWNhdXNlIG9mIGBicmVhaycs
IF9BQ19QUkVQUk9DX0lGRUxTRSdzIGNsZWFuaW5nIGNvZGUgd2FzIHNraXBw
ZWQuCnJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CmlmICRh
Y19wcmVwcm9jX29rOyB0aGVuCiAgYnJlYWsKZmkKCiAgICBkb25lCiAgICBh
Y19jdl9wcm9nX0NQUD0kQ1BQCgpmaQogIENQUD0kYWNfY3ZfcHJvZ19DUFAK
ZWxzZQogIGFjX2N2X3Byb2dfQ1BQPSRDUFAKZmkKZWNobyAiJGFzX21lOiRM
SU5FTk86IHJlc3VsdDogJENQUCIgPiY1CmVjaG8gIiR7RUNIT19UfSRDUFAi
ID4mNgphY19wcmVwcm9jX29rPWZhbHNlCmZvciBhY19jX3ByZXByb2Nfd2Fy
bl9mbGFnIGluICcnIHllcwpkbwogICMgVXNlIGEgaGVhZGVyIGZpbGUgdGhh
dCBjb21lcyB3aXRoIGdjYywgc28gY29uZmlndXJpbmcgZ2xpYmMKICAjIHdp
dGggYSBmcmVzaCBjcm9zcy1jb21waWxlciB3b3Jrcy4KICAjIFByZWZlciA8
bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5l
ZCwgc2luY2UKICAjIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0
YW5kaW5nIGNvbXBpbGVycy4KICAjIE9uIHRoZSBOZVhULCBjYyAtRSBydW5z
IHRoZSBjb2RlIHRocm91Z2ggdGhlIGNvbXBpbGVyJ3MgcGFyc2VyLAogICMg
bm90IGp1c3QgdGhyb3VnaCBjcHAuICJTeW50YXggZXJyb3IiIGlzIGhlcmUg
dG8gY2F0Y2ggdGhpcyBjYXNlLgogIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8
PF9BQ0VPRgojbGluZSAkTElORU5PICJjb25maWd1cmUiCi8qIGNvbmZkZWZz
LmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNf
ZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNv
bmZkZWZzLmguICAqLwojaWZkZWYgX19TVERDX18KIyBpbmNsdWRlIDxsaW1p
dHMuaD4KI2Vsc2UKIyBpbmNsdWRlIDxhc3NlcnQuaD4KI2VuZGlmCiAgICAg
ICAgICAgICAgICAgICAgIFN5bnRheCBlcnJvcgpfQUNFT0YKaWYgeyAoZXZh
bCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY3BwIGNvbmZ0ZXN0LiRh
Y19leHRcIiIpID4mNQogIChldmFsICRhY19jcHAgY29uZnRlc3QuJGFjX2V4
dCkgMj5jb25mdGVzdC5lcjEKICBhY19zdGF0dXM9JD8KICBncmVwIC12ICde
ICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgogIHJtIC1mIGNvbmZ0
ZXN0LmVyMQogIGNhdCBjb25mdGVzdC5lcnIgPiY1CiAgZWNobyAiJGFzX21l
OiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19z
dGF0dXMpOyB9ID4vZGV2L251bGw7IHRoZW4KICBpZiB0ZXN0IC1zIGNvbmZ0
ZXN0LmVycjsgdGhlbgogICAgYWNfY3BwX2Vycj0kYWNfY19wcmVwcm9jX3dh
cm5fZmxhZwogIGVsc2UKICAgIGFjX2NwcF9lcnI9CiAgZmkKZWxzZQogIGFj
X2NwcF9lcnI9eWVzCmZpCmlmIHRlc3QgLXogIiRhY19jcHBfZXJyIjsgdGhl
bgogIDoKZWxzZQogIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2Fz
OiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCiAg
IyBCcm9rZW46IGZhaWxzIG9uIHZhbGlkIGlucHV0Lgpjb250aW51ZQpmaQpy
bSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAoKICAjIE9LLCB3
b3JrcyBvbiBzYW5lIGNhc2VzLiAgTm93IGNoZWNrIHdoZXRoZXIgbm9uLWV4
aXN0ZW50IGhlYWRlcnMKICAjIGNhbiBiZSBkZXRlY3RlZCBhbmQgaG93Lgog
IGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgojbGluZSAkTElORU5P
ICJjb25maWd1cmUiCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNv
bmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRh
Y19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwojaW5jbHVk
ZSA8YWNfbm9uZXhpc3RlbnQuaD4KX0FDRU9GCmlmIHsgKGV2YWwgZWNobyAi
JGFzX21lOiRMSU5FTk86IFwiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0XCIi
KSA+JjUKICAoZXZhbCAkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQpIDI+Y29u
ZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAnXiAqKycgY29u
ZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25mdGVzdC5lcjEK
ICBjYXQgY29uZnRlc3QuZXJyID4mNQogIGVjaG8gIiRhc19tZTokTElORU5P
OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsg
fSA+L2Rldi9udWxsOyB0aGVuCiAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7
IHRoZW4KICAgIGFjX2NwcF9lcnI9JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcK
ICBlbHNlCiAgICBhY19jcHBfZXJyPQogIGZpCmVsc2UKICBhY19jcHBfZXJy
PXllcwpmaQppZiB0ZXN0IC16ICIkYWNfY3BwX2VyciI7IHRoZW4KICAjIEJy
b2tlbjogc3VjY2VzcyBvbiBpbnZhbGlkIGlucHV0Lgpjb250aW51ZQplbHNl
CiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2Vk
ICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKICAjIFBhc3NlcyBi
b3RoIHRlc3RzLgphY19wcmVwcm9jX29rPToKYnJlYWsKZmkKcm0gLWYgY29u
ZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKCmRvbmUKIyBCZWNhdXNlIG9m
IGBicmVhaycsIF9BQ19QUkVQUk9DX0lGRUxTRSdzIGNsZWFuaW5nIGNvZGUg
d2FzIHNraXBwZWQuCnJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf
ZXh0CmlmICRhY19wcmVwcm9jX29rOyB0aGVuCiAgOgplbHNlCiAgeyB7IGVj
aG8gIiRhc19tZTokTElORU5POiBlcnJvcjogQyBwcmVwcm9jZXNzb3IgXCIk
Q1BQXCIgZmFpbHMgc2FuaXR5IGNoZWNrClNlZSBcYGNvbmZpZy5sb2cnIGZv
ciBtb3JlIGRldGFpbHMuIiA+JjUKZWNobyAiJGFzX21lOiBlcnJvcjogQyBw
cmVwcm9jZXNzb3IgXCIkQ1BQXCIgZmFpbHMgc2FuaXR5IGNoZWNrClNlZSBc
YGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQogICB7IChl
eGl0IDEpOyBleGl0IDE7IH07IH0KZmkKCmFjX2V4dD1jCmFjX2NwcD0nJENQ
UCAkQ1BQRkxBR1MnCmFjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBG
TEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKYWNfbGluaz0nJENDIC1vIGNv
bmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBj
b25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKYWNfY29tcGlsZXJfZ251PSRh
Y19jdl9jX2NvbXBpbGVyX2dudQoKCmVjaG8gIiRhc19tZTokTElORU5POiBj
aGVja2luZyBmb3IgZWdyZXAiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5n
IGZvciBlZ3JlcC4uLiAkRUNIT19DIiA+JjYKaWYgdGVzdCAiJHthY19jdl9w
cm9nX2VncmVwK3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIo
Y2FjaGVkKSAkRUNIT19DIiA+JjYKZWxzZQogIGlmIGVjaG8gYSB8IChncmVw
IC1FICcoYXxiKScpID4vZGV2L251bGwgMj4mMQogICAgdGhlbiBhY19jdl9w
cm9nX2VncmVwPSdncmVwIC1FJwogICAgZWxzZSBhY19jdl9wcm9nX2VncmVw
PSdlZ3JlcCcKICAgIGZpCmZpCmVjaG8gIiRhc19tZTokTElORU5POiByZXN1
bHQ6ICRhY19jdl9wcm9nX2VncmVwIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFj
X2N2X3Byb2dfZWdyZXAiID4mNgogRUdSRVA9JGFjX2N2X3Byb2dfZWdyZXAK
CgplY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIEFOU0kgQyBo
ZWFkZXIgZmlsZXMiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBB
TlNJIEMgaGVhZGVyIGZpbGVzLi4uICRFQ0hPX0MiID4mNgppZiB0ZXN0ICIk
e2FjX2N2X2hlYWRlcl9zdGRjK3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAk
RUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZWxzZQogIGNhdCA+Y29u
ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgojbGluZSAkTElORU5PICJjb25maWd1
cmUiCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmgg
Pj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxf
QUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwojaW5jbHVkZSA8c3RkbGli
Lmg+CiNpbmNsdWRlIDxzdGRhcmcuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgoj
aW5jbHVkZSA8ZmxvYXQuaD4KCmludAptYWluICgpCnsKCiAgOwogIHJldHVy
biAwOwp9Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CmlmIHsg
KGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIp
ID4mNQogIChldmFsICRhY19jb21waWxlKSAyPiY1CiAgYWNfc3RhdHVzPSQ/
CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4m
NQogIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCiAgICAgICAgIHsgYWNfdHJ5
PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCiAgeyAoZXZhbCBlY2hv
ICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKICAoZXZhbCAk
YWNfdHJ5KSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRM
SU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0
dXMpOyB9OyB9OyB0aGVuCiAgYWNfY3ZfaGVhZGVyX3N0ZGM9eWVzCmVsc2UK
ICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQg
J3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgphY19jdl9oZWFkZXJf
c3RkYz1ubwpmaQpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0
LiRhY19leHQKCmlmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0
aGVuCiAgIyBTdW5PUyA0Lnggc3RyaW5nLmggZG9lcyBub3QgZGVjbGFyZSBt
ZW0qLCBjb250cmFyeSB0byBBTlNJLgogIGNhdCA+Y29uZnRlc3QuJGFjX2V4
dCA8PF9BQ0VPRgojbGluZSAkTElORU5PICJjb25maWd1cmUiCi8qIGNvbmZk
ZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4k
YWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5k
IGNvbmZkZWZzLmguICAqLwojaW5jbHVkZSA8c3RyaW5nLmg+CgpfQUNFT0YK
aWYgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+JjUgfAog
ICRFR1JFUCAibWVtY2hyIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KICA6CmVs
c2UKICBhY19jdl9oZWFkZXJfc3RkYz1ubwpmaQpybSAtZiBjb25mdGVzdCoK
CmZpCgppZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgog
ICMgSVNDIDIuMC4yIHN0ZGxpYi5oIGRvZXMgbm90IGRlY2xhcmUgZnJlZSwg
Y29udHJhcnkgdG8gQU5TSS4KICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxf
QUNFT0YKI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgovKiBjb25mZGVmcy5o
LiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4
dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25m
ZGVmcy5oLiAgKi8KI2luY2x1ZGUgPHN0ZGxpYi5oPgoKX0FDRU9GCmlmIChl
dmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPiY1IHwKICAkRUdS
RVAgImZyZWUiID4vZGV2L251bGwgMj4mMTsgdGhlbgogIDoKZWxzZQogIGFj
X2N2X2hlYWRlcl9zdGRjPW5vCmZpCnJtIC1mIGNvbmZ0ZXN0KgoKZmkKCmlm
IHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCiAgIyAvYmlu
L2NjIGluIElyaXgtNC4wLjUgZ2V0cyBub24tQU5TSSBjdHlwZSBtYWNyb3Mg
dW5sZXNzIHVzaW5nIC1hbnNpLgogIGlmIHRlc3QgIiRjcm9zc19jb21waWxp
bmciID0geWVzOyB0aGVuCiAgOgplbHNlCiAgY2F0ID5jb25mdGVzdC4kYWNf
ZXh0IDw8X0FDRU9GCiNsaW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKLyogY29u
ZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0
LiRhY19leHQKY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBl
bmQgY29uZmRlZnMuaC4gICovCiNpbmNsdWRlIDxjdHlwZS5oPgojaWYgKCgn
ICcgJiAweDBGRikgPT0gMHgwMjApCiMgZGVmaW5lIElTTE9XRVIoYykgKCdh
JyA8PSAoYykgJiYgKGMpIDw9ICd6JykKIyBkZWZpbmUgVE9VUFBFUihjKSAo
SVNMT1dFUihjKSA/ICdBJyArICgoYykgLSAnYScpIDogKGMpKQojZWxzZQoj
IGRlZmluZSBJU0xPV0VSKGMpIFwKICAgICAgICAgICAgICAgICAgICgoJ2En
IDw9IChjKSAmJiAoYykgPD0gJ2knKSBcCiAgICAgICAgICAgICAgICAgICAg
IHx8ICgnaicgPD0gKGMpICYmIChjKSA8PSAncicpIFwKICAgICAgICAgICAg
ICAgICAgICAgfHwgKCdzJyA8PSAoYykgJiYgKGMpIDw9ICd6JykpCiMgZGVm
aW5lIFRPVVBQRVIoYykgKElTTE9XRVIoYykgPyAoKGMpIHwgMHg0MCkgOiAo
YykpCiNlbmRpZgoKI2RlZmluZSBYT1IoZSwgZikgKCgoZSkgJiYgIShmKSkg
fHwgKCEoZSkgJiYgKGYpKSkKaW50Cm1haW4gKCkKewogIGludCBpOwogIGZv
ciAoaSA9IDA7IGkgPCAyNTY7IGkrKykKICAgIGlmIChYT1IgKGlzbG93ZXIg
KGkpLCBJU0xPV0VSIChpKSkKICAgICAgICB8fCB0b3VwcGVyIChpKSAhPSBU
T1VQUEVSIChpKSkKICAgICAgZXhpdCgyKTsKICBleGl0ICgwKTsKfQpfQUNF
T0YKcm0gLWYgY29uZnRlc3QkYWNfZXhlZXh0CmlmIHsgKGV2YWwgZWNobyAi
JGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQogIChldmFsICRh
Y19saW5rKSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRM
SU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0
dXMpOyB9ICYmIHsgYWNfdHJ5PScuL2NvbmZ0ZXN0JGFjX2V4ZWV4dCcKICB7
IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4m
NQogIChldmFsICRhY190cnkpIDI+JjUKICBhY19zdGF0dXM9JD8KICBlY2hv
ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4
aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KICA6CmVsc2UKICBlY2hvICIk
YXNfbWU6IHByb2dyYW0gZXhpdGVkIHdpdGggc3RhdHVzICRhY19zdGF0dXMi
ID4mNQplY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpz
ZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgooIGV4aXQgJGFj
X3N0YXR1cyApCmFjX2N2X2hlYWRlcl9zdGRjPW5vCmZpCnJtIC1mIGNvcmUg
Y29yZS4qICouY29yZSBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhl
ZXh0IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dApmaQpm
aQpmaQplY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGVh
ZGVyX3N0ZGMiID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3ZfaGVhZGVyX3N0
ZGMiID4mNgppZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhl
bgoKY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKI2RlZmluZSBTVERDX0hF
QURFUlMgMQpfQUNFT0YKCmZpCgojIE9uIElSSVggNS4zLCBzeXMvdHlwZXMg
YW5kIGludHR5cGVzLmggYXJlIGNvbmZsaWN0aW5nLgoKCgoKCgoKCgpmb3Ig
YWNfaGVhZGVyIGluIHN5cy90eXBlcy5oIHN5cy9zdGF0Lmggc3RkbGliLmgg
c3RyaW5nLmggbWVtb3J5Lmggc3RyaW5ncy5oIFwKICAgICAgICAgICAgICAg
ICAgaW50dHlwZXMuaCBzdGRpbnQuaCB1bmlzdGQuaApkbwphc19hY19IZWFk
ZXI9YGVjaG8gImFjX2N2X2hlYWRlcl8kYWNfaGVhZGVyIiB8ICRhc190cl9z
aGAKZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfaGVh
ZGVyIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX2hlYWRl
ci4uLiAkRUNIT19DIiA+JjYKaWYgZXZhbCAidGVzdCBcIlwkeyRhc19hY19I
ZWFkZXIrc2V0fVwiID0gc2V0IjsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNh
Y2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBjYXQgPmNvbmZ0ZXN0LiRhY19l
eHQgPDxfQUNFT0YKI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgovKiBjb25m
ZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3Qu
JGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVu
ZCBjb25mZGVmcy5oLiAgKi8KJGFjX2luY2x1ZGVzX2RlZmF1bHQKCiNpbmNs
dWRlIDwkYWNfaGVhZGVyPgpfQUNFT0YKcm0gLWYgY29uZnRlc3QuJGFjX29i
amV4dAppZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19j
b21waWxlXCIiKSA+JjUKICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQogIGFj
X3N0YXR1cz0kPwogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNf
c3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgogICAgICAg
ICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwogIHsg
KGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1
CiAgKGV2YWwgJGFjX3RyeSkgMj4mNQogIGFjX3N0YXR1cz0kPwogIGVjaG8g
IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhp
dCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgogIGV2YWwgIiRhc19hY19IZWFk
ZXI9eWVzIgplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3
YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoK
ZXZhbCAiJGFzX2FjX0hlYWRlcj1ubyIKZmkKcm0gLWYgY29uZnRlc3QuJGFj
X29iamV4dCBjb25mdGVzdC4kYWNfZXh0CmZpCmVjaG8gIiRhc19tZTokTElO
RU5POiByZXN1bHQ6IGBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdg
IiA+JjUKZWNobyAiJHtFQ0hPX1R9YGV2YWwgZWNobyAnJHsnJGFzX2FjX0hl
YWRlcid9J2AiID4mNgppZiB0ZXN0IGBldmFsIGVjaG8gJyR7JyRhc19hY19I
ZWFkZXInfSdgID0geWVzOyB0aGVuCiAgY2F0ID4+Y29uZmRlZnMuaCA8PF9B
Q0VPRgojZGVmaW5lIGBlY2hvICJIQVZFXyRhY19oZWFkZXIiIHwgJGFzX3Ry
X2NwcGAgMQpfQUNFT0YKCmZpCgpkb25lCgoKCmZvciBhY19oZWFkZXIgaW4g
ZGxmY24uaApkbwphc19hY19IZWFkZXI9YGVjaG8gImFjX2N2X2hlYWRlcl8k
YWNfaGVhZGVyIiB8ICRhc190cl9zaGAKaWYgZXZhbCAidGVzdCBcIlwkeyRh
c19hY19IZWFkZXIrc2V0fVwiID0gc2V0IjsgdGhlbgogIGVjaG8gIiRhc19t
ZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX2hlYWRlciIgPiY1CmVjaG8g
JEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY19oZWFkZXIuLi4gJEVDSE9fQyIg
PiY2CmlmIGV2YWwgInRlc3QgXCJcJHskYXNfYWNfSGVhZGVyK3NldH1cIiA9
IHNldCI7IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0Mi
ID4mNgpmaQplY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBgZXZhbCBl
Y2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCIgPiY1CmVjaG8gIiR7RUNIT19U
fWBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgIiA+JjYKZWxzZQog
ICMgSXMgdGhlIGhlYWRlciBjb21waWxhYmxlPwplY2hvICIkYXNfbWU6JExJ
TkVOTzogY2hlY2tpbmcgJGFjX2hlYWRlciB1c2FiaWxpdHkiID4mNQplY2hv
ICRFQ0hPX04gImNoZWNraW5nICRhY19oZWFkZXIgdXNhYmlsaXR5Li4uICRF
Q0hPX0MiID4mNgpjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKI2xp
bmUgJExJTkVOTyAiY29uZmlndXJlIgovKiBjb25mZGVmcy5oLiAgKi8KX0FD
RU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5j
b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5oLiAg
Ki8KJGFjX2luY2x1ZGVzX2RlZmF1bHQKI2luY2x1ZGUgPCRhY19oZWFkZXI+
Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CmlmIHsgKGV2YWwg
ZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQog
IChldmFsICRhY19jb21waWxlKSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNo
byAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChl
eGl0ICRhY19zdGF0dXMpOyB9ICYmCiAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0
IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCiAgeyAoZXZhbCBlY2hvICIkYXNf
bWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKICAoZXZhbCAkYWNfdHJ5
KSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRMSU5FTk86
IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9
OyB9OyB0aGVuCiAgYWNfaGVhZGVyX2NvbXBpbGVyPXllcwplbHNlCiAgZWNo
byAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14v
fCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKYWNfaGVhZGVyX2NvbXBpbGVy
PW5vCmZpCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFj
X2V4dAplY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVy
X2NvbXBpbGVyIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9jb21w
aWxlciIgPiY2CgojIElzIHRoZSBoZWFkZXIgcHJlc2VudD8KZWNobyAiJGFz
X21lOiRMSU5FTk86IGNoZWNraW5nICRhY19oZWFkZXIgcHJlc2VuY2UiID4m
NQplY2hvICRFQ0hPX04gImNoZWNraW5nICRhY19oZWFkZXIgcHJlc2VuY2Uu
Li4gJEVDSE9fQyIgPiY2CmNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP
RgojbGluZSAkTElORU5PICJjb25maWd1cmUiCi8qIGNvbmZkZWZzLmguICAq
LwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNh
dCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZz
LmguICAqLwojaW5jbHVkZSA8JGFjX2hlYWRlcj4KX0FDRU9GCmlmIHsgKGV2
YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NwcCBjb25mdGVzdC4k
YWNfZXh0XCIiKSA+JjUKICAoZXZhbCAkYWNfY3BwIGNvbmZ0ZXN0LiRhY19l
eHQpIDI+Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAn
XiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25m
dGVzdC5lcjEKICBjYXQgY29uZnRlc3QuZXJyID4mNQogIGVjaG8gIiRhc19t
ZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNf
c3RhdHVzKTsgfSA+L2Rldi9udWxsOyB0aGVuCiAgaWYgdGVzdCAtcyBjb25m
dGVzdC5lcnI7IHRoZW4KICAgIGFjX2NwcF9lcnI9JGFjX2NfcHJlcHJvY193
YXJuX2ZsYWcKICBlbHNlCiAgICBhY19jcHBfZXJyPQogIGZpCmVsc2UKICBh
Y19jcHBfZXJyPXllcwpmaQppZiB0ZXN0IC16ICIkYWNfY3BwX2VyciI7IHRo
ZW4KICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKZWxzZQogIGVjaG8gIiRhc19t
ZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29u
ZnRlc3QuJGFjX2V4dCA+JjUKCiAgYWNfaGVhZGVyX3ByZXByb2M9bm8KZmkK
cm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKZWNobyAiJGFz
X21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2hlYWRlcl9wcmVwcm9jIiA+JjUK
ZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9wcmVwcm9jIiA+JjYKCiMgU28/
ICBXaGF0IGFib3V0IHRoaXMgaGVhZGVyPwpjYXNlICRhY19oZWFkZXJfY29t
cGlsZXI6JGFjX2hlYWRlcl9wcmVwcm9jIGluCiAgeWVzOm5vICkKICAgIHsg
ZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IGFj
Y2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXBy
b2Nlc3NvciEiID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFk
ZXI6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhl
IHByZXByb2Nlc3NvciEiID4mMjt9CiAgICB7IGVjaG8gIiRhc19tZTokTElO
RU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhl
IHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiY1CmVjaG8gIiRhc19tZTogV0FS
TklORzogJGFjX2hlYWRlcjogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9j
ZXNzb3IncyByZXN1bHQiID4mMjt9CiAgICAoCiAgICAgIGNhdCA8PFxfQVNC
T1gKIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMj
CiMjIFJlcG9ydCB0aGlzIHRvIGJ1Zy1hdXRvY29uZkBnbnUub3JnLiAjIwoj
IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKX0FT
Qk9YCiAgICApIHwKICAgICAgc2VkICJzL14vJGFzX21lOiBXQVJOSU5HOiAg
ICAgLyIgPiYyCiAgICA7OwogIG5vOnllcyApCiAgICB7IGVjaG8gIiRhc19t
ZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcmVzZW50IGJ1dCBj
YW5ub3QgYmUgY29tcGlsZWQiID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6
ICRhY19oZWFkZXI6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIg
PiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRh
Y19oZWFkZXI6IGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFk
ZXJzPyIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjog
Y2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/IiA+JjI7
fQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hl
YWRlcjogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1
bHQiID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IHBy
b2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjI7
fQogICAgKAogICAgICBjYXQgPDxcX0FTQk9YCiMjIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwojIyBSZXBvcnQgdGhpcyB0byBi
dWctYXV0b2NvbmZAZ251Lm9yZy4gIyMKIyMgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tICMjCl9BU0JPWAogICAgKSB8CiAgICAgIHNl
ZCAicy9eLyRhc19tZTogV0FSTklORzogICAgIC8iID4mMgogICAgOzsKZXNh
YwplY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19oZWFk
ZXIiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfaGVhZGVy
Li4uICRFQ0hPX0MiID4mNgppZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2FjX0hl
YWRlcitzZXR9XCIgPSBzZXQiOyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2Fj
aGVkKSAkRUNIT19DIiA+JjYKZWxzZQogIGV2YWwgIiRhc19hY19IZWFkZXI9
JGFjX2hlYWRlcl9wcmVwcm9jIgpmaQplY2hvICIkYXNfbWU6JExJTkVOTzog
cmVzdWx0OiBgZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCIgPiY1
CmVjaG8gIiR7RUNIT19UfWBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXIn
fSdgIiA+JjYKCmZpCmlmIHRlc3QgYGV2YWwgZWNobyAnJHsnJGFzX2FjX0hl
YWRlcid9J2AgPSB5ZXM7IHRoZW4KICBjYXQgPj5jb25mZGVmcy5oIDw8X0FD
RU9GCiNkZWZpbmUgYGVjaG8gIkhBVkVfJGFjX2hlYWRlciIgfCAkYXNfdHJf
Y3BwYCAxCl9BQ0VPRgoKZmkKCmRvbmUKCgoKCgoKIyBPbmx5IHBlcmZvcm0g
dGhlIGNoZWNrIGZvciBmaWxlLCBpZiB0aGUgY2hlY2sgbWV0aG9kIHJlcXVp
cmVzIGl0CmNhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCmZpbGVfbWFn
aWMqKQogIGlmIHRlc3QgIiRmaWxlX21hZ2ljX2NtZCIgPSAnJE1BR0lDX0NN
RCc7IHRoZW4KICAgIGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBm
b3IgJHthY190b29sX3ByZWZpeH1maWxlIiA+JjUKZWNobyAkRUNIT19OICJj
aGVja2luZyBmb3IgJHthY190b29sX3ByZWZpeH1maWxlLi4uICRFQ0hPX0Mi
ID4mNgppZiB0ZXN0ICIke2x0X2N2X3BhdGhfTUFHSUNfQ01EK3NldH0iID0g
c2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+
JjYKZWxzZQogIGNhc2UgJE1BR0lDX0NNRCBpbgogIC8qKQogIGx0X2N2X3Bh
dGhfTUFHSUNfQ01EPSIkTUFHSUNfQ01EIiAjIExldCB0aGUgdXNlciBvdmVy
cmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4KICA7OwogID86LyopCiAgbHRf
Y3ZfcGF0aF9NQUdJQ19DTUQ9IiRNQUdJQ19DTUQiICMgTGV0IHRoZSB1c2Vy
IG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBkb3MgcGF0aC4KICA7OwogICop
CiAgYWNfc2F2ZV9NQUdJQ19DTUQ9IiRNQUdJQ19DTUQiCiAgSUZTPSIke0lG
Uz0gICB9IjsgYWNfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IjoiCiAgYWNfZHVt
bXk9Ii91c3IvYmluOiRQQVRIIgogIGZvciBhY19kaXIgaW4gJGFjX2R1bW15
OyBkbwogICAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNfZGlyPS4KICAgIGlm
IHRlc3QgLWYgJGFjX2Rpci8ke2FjX3Rvb2xfcHJlZml4fWZpbGU7IHRoZW4K
ICAgICAgbHRfY3ZfcGF0aF9NQUdJQ19DTUQ9IiRhY19kaXIvJHthY190b29s
X3ByZWZpeH1maWxlIgogICAgICBpZiB0ZXN0IC1uICIkZmlsZV9tYWdpY190
ZXN0X2ZpbGUiOyB0aGVuCgljYXNlICRkZXBsaWJzX2NoZWNrX21ldGhvZCBp
bgoJImZpbGVfbWFnaWMgIiopCgkgIGZpbGVfbWFnaWNfcmVnZXg9ImBleHBy
IFwiJGRlcGxpYnNfY2hlY2tfbWV0aG9kXCIgOiBcImZpbGVfbWFnaWMgXCgu
KlwpXCJgIgoJICBNQUdJQ19DTUQ9IiRsdF9jdl9wYXRoX01BR0lDX0NNRCIK
CSAgaWYgZXZhbCAkZmlsZV9tYWdpY19jbWQgXCRmaWxlX21hZ2ljX3Rlc3Rf
ZmlsZSAyPiAvZGV2L251bGwgfAoJICAgIGVncmVwICIkZmlsZV9tYWdpY19y
ZWdleCIgPiAvZGV2L251bGw7IHRoZW4KCSAgICA6CgkgIGVsc2UKCSAgICBj
YXQgPDxFT0YgMT4mMgoKKioqIFdhcm5pbmc6IHRoZSBjb21tYW5kIGxpYnRv
b2wgdXNlcyB0byBkZXRlY3Qgc2hhcmVkIGxpYnJhcmllcywKKioqICRmaWxl
X21hZ2ljX2NtZCwgcHJvZHVjZXMgb3V0cHV0IHRoYXQgbGlidG9vbCBjYW5u
b3QgcmVjb2duaXplLgoqKiogVGhlIHJlc3VsdCBpcyB0aGF0IGxpYnRvb2wg
bWF5IGZhaWwgdG8gcmVjb2duaXplIHNoYXJlZCBsaWJyYXJpZXMKKioqIGFz
IHN1Y2guICBUaGlzIHdpbGwgYWZmZWN0IHRoZSBjcmVhdGlvbiBvZiBsaWJ0
b29sIGxpYnJhcmllcyB0aGF0CioqKiBkZXBlbmQgb24gc2hhcmVkIGxpYnJh
cmllcywgYnV0IHByb2dyYW1zIGxpbmtlZCB3aXRoIHN1Y2ggbGlidG9vbAoq
KiogbGlicmFyaWVzIHdpbGwgd29yayByZWdhcmRsZXNzIG9mIHRoaXMgcHJv
YmxlbS4gIE5ldmVydGhlbGVzcywgeW91CioqKiBtYXkgd2FudCB0byByZXBv
cnQgdGhlIHByb2JsZW0gdG8geW91ciBzeXN0ZW0gbWFuYWdlciBhbmQvb3Ig
dG8KKioqIGJ1Zy1saWJ0b29sQGdudS5vcmcKCkVPRgoJICBmaSA7OwoJZXNh
YwogICAgICBmaQogICAgICBicmVhawogICAgZmkKICBkb25lCiAgSUZTPSIk
YWNfc2F2ZV9pZnMiCiAgTUFHSUNfQ01EPSIkYWNfc2F2ZV9NQUdJQ19DTUQi
CiAgOzsKZXNhYwpmaQoKTUFHSUNfQ01EPSIkbHRfY3ZfcGF0aF9NQUdJQ19D
TUQiCmlmIHRlc3QgLW4gIiRNQUdJQ19DTUQiOyB0aGVuCiAgZWNobyAiJGFz
X21lOiRMSU5FTk86IHJlc3VsdDogJE1BR0lDX0NNRCIgPiY1CmVjaG8gIiR7
RUNIT19UfSRNQUdJQ19DTUQiID4mNgplbHNlCiAgZWNobyAiJGFzX21lOiRM
SU5FTk86IHJlc3VsdDogbm8iID4mNQplY2hvICIke0VDSE9fVH1ubyIgPiY2
CmZpCgppZiB0ZXN0IC16ICIkbHRfY3ZfcGF0aF9NQUdJQ19DTUQiOyB0aGVu
CiAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgogICAgZWNo
byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBmaWxlIiA+JjUKZWNo
byAkRUNIT19OICJjaGVja2luZyBmb3IgZmlsZS4uLiAkRUNIT19DIiA+JjYK
aWYgdGVzdCAiJHtsdF9jdl9wYXRoX01BR0lDX0NNRCtzZXR9IiA9IHNldDsg
dGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVs
c2UKICBjYXNlICRNQUdJQ19DTUQgaW4KICAvKikKICBsdF9jdl9wYXRoX01B
R0lDX0NNRD0iJE1BR0lDX0NNRCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUg
dGhlIHRlc3Qgd2l0aCBhIHBhdGguCiAgOzsKICA/Oi8qKQogIGx0X2N2X3Bh
dGhfTUFHSUNfQ01EPSIkTUFHSUNfQ01EIiAjIExldCB0aGUgdXNlciBvdmVy
cmlkZSB0aGUgdGVzdCB3aXRoIGEgZG9zIHBhdGguCiAgOzsKICAqKQogIGFj
X3NhdmVfTUFHSUNfQ01EPSIkTUFHSUNfQ01EIgogIElGUz0iJHtJRlM9ICAg
fSI7IGFjX3NhdmVfaWZzPSIkSUZTIjsgSUZTPSI6IgogIGFjX2R1bW15PSIv
dXNyL2JpbjokUEFUSCIKICBmb3IgYWNfZGlyIGluICRhY19kdW1teTsgZG8K
ICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCiAgICBpZiB0ZXN0
IC1mICRhY19kaXIvZmlsZTsgdGhlbgogICAgICBsdF9jdl9wYXRoX01BR0lD
X0NNRD0iJGFjX2Rpci9maWxlIgogICAgICBpZiB0ZXN0IC1uICIkZmlsZV9t
YWdpY190ZXN0X2ZpbGUiOyB0aGVuCgljYXNlICRkZXBsaWJzX2NoZWNrX21l
dGhvZCBpbgoJImZpbGVfbWFnaWMgIiopCgkgIGZpbGVfbWFnaWNfcmVnZXg9
ImBleHByIFwiJGRlcGxpYnNfY2hlY2tfbWV0aG9kXCIgOiBcImZpbGVfbWFn
aWMgXCguKlwpXCJgIgoJICBNQUdJQ19DTUQ9IiRsdF9jdl9wYXRoX01BR0lD
X0NNRCIKCSAgaWYgZXZhbCAkZmlsZV9tYWdpY19jbWQgXCRmaWxlX21hZ2lj
X3Rlc3RfZmlsZSAyPiAvZGV2L251bGwgfAoJICAgIGVncmVwICIkZmlsZV9t
YWdpY19yZWdleCIgPiAvZGV2L251bGw7IHRoZW4KCSAgICA6CgkgIGVsc2UK
CSAgICBjYXQgPDxFT0YgMT4mMgoKKioqIFdhcm5pbmc6IHRoZSBjb21tYW5k
IGxpYnRvb2wgdXNlcyB0byBkZXRlY3Qgc2hhcmVkIGxpYnJhcmllcywKKioq
ICRmaWxlX21hZ2ljX2NtZCwgcHJvZHVjZXMgb3V0cHV0IHRoYXQgbGlidG9v
bCBjYW5ub3QgcmVjb2duaXplLgoqKiogVGhlIHJlc3VsdCBpcyB0aGF0IGxp
YnRvb2wgbWF5IGZhaWwgdG8gcmVjb2duaXplIHNoYXJlZCBsaWJyYXJpZXMK
KioqIGFzIHN1Y2guICBUaGlzIHdpbGwgYWZmZWN0IHRoZSBjcmVhdGlvbiBv
ZiBsaWJ0b29sIGxpYnJhcmllcyB0aGF0CioqKiBkZXBlbmQgb24gc2hhcmVk
IGxpYnJhcmllcywgYnV0IHByb2dyYW1zIGxpbmtlZCB3aXRoIHN1Y2ggbGli
dG9vbAoqKiogbGlicmFyaWVzIHdpbGwgd29yayByZWdhcmRsZXNzIG9mIHRo
aXMgcHJvYmxlbS4gIE5ldmVydGhlbGVzcywgeW91CioqKiBtYXkgd2FudCB0
byByZXBvcnQgdGhlIHByb2JsZW0gdG8geW91ciBzeXN0ZW0gbWFuYWdlciBh
bmQvb3IgdG8KKioqIGJ1Zy1saWJ0b29sQGdudS5vcmcKCkVPRgoJICBmaSA7
OwoJZXNhYwogICAgICBmaQogICAgICBicmVhawogICAgZmkKICBkb25lCiAg
SUZTPSIkYWNfc2F2ZV9pZnMiCiAgTUFHSUNfQ01EPSIkYWNfc2F2ZV9NQUdJ
Q19DTUQiCiAgOzsKZXNhYwpmaQoKTUFHSUNfQ01EPSIkbHRfY3ZfcGF0aF9N
QUdJQ19DTUQiCmlmIHRlc3QgLW4gIiRNQUdJQ19DTUQiOyB0aGVuCiAgZWNo
byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJE1BR0lDX0NNRCIgPiY1CmVj
aG8gIiR7RUNIT19UfSRNQUdJQ19DTUQiID4mNgplbHNlCiAgZWNobyAiJGFz
X21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQplY2hvICIke0VDSE9fVH1u
byIgPiY2CmZpCgogIGVsc2UKICAgIE1BR0lDX0NNRD06CiAgZmkKZmkKCiAg
ZmkKICA7Owplc2FjCgppZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0
aGVuCiAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xf
cHJlZml4fXJhbmxpYiIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3
aXRoIGFyZ3MuCnNldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fXJhbmxpYjsg
YWNfd29yZD0kMgplY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9y
ICRhY193b3JkIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFj
X3dvcmQuLi4gJEVDSE9fQyIgPiY2CmlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19S
QU5MSUIrc2V0fSIgPSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNo
ZWQpICRFQ0hPX0MiID4mNgplbHNlCiAgaWYgdGVzdCAtbiAiJFJBTkxJQiI7
IHRoZW4KICBhY19jdl9wcm9nX1JBTkxJQj0iJFJBTkxJQiIgIyBMZXQgdGhl
IHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCmVsc2UKYXNfc2F2ZV9JRlM9JElG
UzsgSUZTPSRQQVRIX1NFUEFSQVRPUgpmb3IgYXNfZGlyIGluICRQQVRICmRv
CiAgSUZTPSRhc19zYXZlX0lGUwogIHRlc3QgLXogIiRhc19kaXIiICYmIGFz
X2Rpcj0uCiAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxl
X2V4dGVuc2lvbnM7IGRvCiAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rp
ci8kYWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4KICAgIGFjX2N2X3Byb2df
UkFOTElCPSIke2FjX3Rvb2xfcHJlZml4fXJhbmxpYiIKICAgIGVjaG8gIiRh
c19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNf
ZXh0IiA+JjUKICAgIGJyZWFrIDIKICBmaQpkb25lCmRvbmUKCmZpCmZpClJB
TkxJQj0kYWNfY3ZfcHJvZ19SQU5MSUIKaWYgdGVzdCAtbiAiJFJBTkxJQiI7
IHRoZW4KICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkUkFOTElC
IiA+JjUKZWNobyAiJHtFQ0hPX1R9JFJBTkxJQiIgPiY2CmVsc2UKICBlY2hv
ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CmVjaG8gIiR7RUNI
T19UfW5vIiA+JjYKZmkKCmZpCmlmIHRlc3QgLXogIiRhY19jdl9wcm9nX1JB
TkxJQiI7IHRoZW4KICBhY19jdF9SQU5MSUI9JFJBTkxJQgogICMgRXh0cmFj
dCB0aGUgZmlyc3Qgd29yZCBvZiAicmFubGliIiwgc28gaXQgY2FuIGJlIGEg
cHJvZ3JhbSBuYW1lIHdpdGggYXJncy4Kc2V0IGR1bW15IHJhbmxpYjsgYWNf
d29yZD0kMgplY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRh
Y193b3JkIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX3dv
cmQuLi4gJEVDSE9fQyIgPiY2CmlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19j
dF9SQU5MSUIrc2V0fSIgPSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hPX04gIihj
YWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCiAgaWYgdGVzdCAtbiAiJGFjX2N0
X1JBTkxJQiI7IHRoZW4KICBhY19jdl9wcm9nX2FjX2N0X1JBTkxJQj0iJGFj
X2N0X1JBTkxJQiIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qu
CmVsc2UKYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgpm
b3IgYXNfZGlyIGluICRQQVRICmRvCiAgSUZTPSRhc19zYXZlX0lGUwogIHRl
c3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCiAgZm9yIGFjX2V4ZWNfZXh0
IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCiAgaWYgJGFz
X2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7
IHRoZW4KICAgIGFjX2N2X3Byb2dfYWNfY3RfUkFOTElCPSJyYW5saWIiCiAg
ICBlY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29y
ZCRhY19leGVjX2V4dCIgPiY1CiAgICBicmVhayAyCiAgZmkKZG9uZQpkb25l
CgogIHRlc3QgLXogIiRhY19jdl9wcm9nX2FjX2N0X1JBTkxJQiIgJiYgYWNf
Y3ZfcHJvZ19hY19jdF9SQU5MSUI9IjoiCmZpCmZpCmFjX2N0X1JBTkxJQj0k
YWNfY3ZfcHJvZ19hY19jdF9SQU5MSUIKaWYgdGVzdCAtbiAiJGFjX2N0X1JB
TkxJQiI7IHRoZW4KICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk
YWNfY3RfUkFOTElCIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2N0X1JBTkxJ
QiIgPiY2CmVsc2UKICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBu
byIgPiY1CmVjaG8gIiR7RUNIT19UfW5vIiA+JjYKZmkKCiAgUkFOTElCPSRh
Y19jdF9SQU5MSUIKZWxzZQogIFJBTkxJQj0iJGFjX2N2X3Byb2dfUkFOTElC
IgpmaQoKaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgogICMg
RXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1z
dHJpcCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3Mu
CnNldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fXN0cmlwOyBhY193b3JkPSQy
CmVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQi
ID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAk
RUNIT19DIiA+JjYKaWYgdGVzdCAiJHthY19jdl9wcm9nX1NUUklQK3NldH0i
ID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19D
IiA+JjYKZWxzZQogIGlmIHRlc3QgLW4gIiRTVFJJUCI7IHRoZW4KICBhY19j
dl9wcm9nX1NUUklQPSIkU1RSSVAiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRl
IHRoZSB0ZXN0LgplbHNlCmFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9T
RVBBUkFUT1IKZm9yIGFzX2RpciBpbiAkUEFUSApkbwogIElGUz0kYXNfc2F2
ZV9JRlMKICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgogIGZvciBh
Y19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBk
bwogIGlmICRhc19leGVjdXRhYmxlX3AgIiRhc19kaXIvJGFjX3dvcmQkYWNf
ZXhlY19leHQiOyB0aGVuCiAgICBhY19jdl9wcm9nX1NUUklQPSIke2FjX3Rv
b2xfcHJlZml4fXN0cmlwIgogICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGZv
dW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQogICAgYnJl
YWsgMgogIGZpCmRvbmUKZG9uZQoKZmkKZmkKU1RSSVA9JGFjX2N2X3Byb2df
U1RSSVAKaWYgdGVzdCAtbiAiJFNUUklQIjsgdGhlbgogIGVjaG8gIiRhc19t
ZTokTElORU5POiByZXN1bHQ6ICRTVFJJUCIgPiY1CmVjaG8gIiR7RUNIT19U
fSRTVFJJUCIgPiY2CmVsc2UKICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVz
dWx0OiBubyIgPiY1CmVjaG8gIiR7RUNIT19UfW5vIiA+JjYKZmkKCmZpCmlm
IHRlc3QgLXogIiRhY19jdl9wcm9nX1NUUklQIjsgdGhlbgogIGFjX2N0X1NU
UklQPSRTVFJJUAogICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAic3Ry
aXAiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgpz
ZXQgZHVtbXkgc3RyaXA7IGFjX3dvcmQ9JDIKZWNobyAiJGFzX21lOiRMSU5F
Tk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CmVjaG8gJEVDSE9fTiAi
Y2hlY2tpbmcgZm9yICRhY193b3JkLi4uICRFQ0hPX0MiID4mNgppZiB0ZXN0
ICIke2FjX2N2X3Byb2dfYWNfY3RfU1RSSVArc2V0fSIgPSBzZXQ7IHRoZW4K
ICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCiAg
aWYgdGVzdCAtbiAiJGFjX2N0X1NUUklQIjsgdGhlbgogIGFjX2N2X3Byb2df
YWNfY3RfU1RSSVA9IiRhY19jdF9TVFJJUCIgIyBMZXQgdGhlIHVzZXIgb3Zl
cnJpZGUgdGhlIHRlc3QuCmVsc2UKYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQ
QVRIX1NFUEFSQVRPUgpmb3IgYXNfZGlyIGluICRQQVRICmRvCiAgSUZTPSRh
c19zYXZlX0lGUwogIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCiAg
Zm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lv
bnM7IGRvCiAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29y
ZCRhY19leGVjX2V4dCI7IHRoZW4KICAgIGFjX2N2X3Byb2dfYWNfY3RfU1RS
SVA9InN0cmlwIgogICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRh
c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQogICAgYnJlYWsgMgog
IGZpCmRvbmUKZG9uZQoKICB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19hY19jdF9T
VFJJUCIgJiYgYWNfY3ZfcHJvZ19hY19jdF9TVFJJUD0iOiIKZmkKZmkKYWNf
Y3RfU1RSSVA9JGFjX2N2X3Byb2dfYWNfY3RfU1RSSVAKaWYgdGVzdCAtbiAi
JGFjX2N0X1NUUklQIjsgdGhlbgogIGVjaG8gIiRhc19tZTokTElORU5POiBy
ZXN1bHQ6ICRhY19jdF9TVFJJUCIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY19j
dF9TVFJJUCIgPiY2CmVsc2UKICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVz
dWx0OiBubyIgPiY1CmVjaG8gIiR7RUNIT19UfW5vIiA+JjYKZmkKCiAgU1RS
SVA9JGFjX2N0X1NUUklQCmVsc2UKICBTVFJJUD0iJGFjX2N2X3Byb2dfU1RS
SVAiCmZpCgoKZW5hYmxlX2Rsb3Blbj1ubwplbmFibGVfd2luMzJfZGxsPW5v
CgojIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtbGlidG9vbC1sb2NrIG9yIC0t
ZGlzYWJsZS1saWJ0b29sLWxvY2sgd2FzIGdpdmVuLgppZiB0ZXN0ICIke2Vu
YWJsZV9saWJ0b29sX2xvY2src2V0fSIgPSBzZXQ7IHRoZW4KICBlbmFibGV2
YWw9IiRlbmFibGVfbGlidG9vbF9sb2NrIgoKZmk7CnRlc3QgIngkZW5hYmxl
X2xpYnRvb2xfbG9jayIgIT0geG5vICYmIGVuYWJsZV9saWJ0b29sX2xvY2s9
eWVzCgojIFNvbWUgZmxhZ3MgbmVlZCB0byBiZSBwcm9wYWdhdGVkIHRvIHRo
ZSBjb21waWxlciBvciBsaW5rZXIgZm9yIGdvb2QKIyBsaWJ0b29sIHN1cHBv
cnQuCmNhc2UgJGhvc3QgaW4KKi0qLWlyaXg2KikKICAjIEZpbmQgb3V0IHdo
aWNoIEFCSSB3ZSBhcmUgdXNpbmcuCiAgZWNobyAnI2xpbmUgNDY3NSAiY29u
ZmlndXJlIicgPiBjb25mdGVzdC4kYWNfZXh0CiAgaWYgeyAoZXZhbCBlY2hv
ICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CiAgKGV2
YWwgJGFjX2NvbXBpbGUpIDI+JjUKICBhY19zdGF0dXM9JD8KICBlY2hvICIk
YXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQg
JGFjX3N0YXR1cyk7IH07IHRoZW4KICAgIGNhc2UgYC91c3IvYmluL2ZpbGUg
Y29uZnRlc3QuJGFjX29iamV4dGAgaW4KICAgICozMi1iaXQqKQogICAgICBM
RD0iJHtMRC1sZH0gLTMyIgogICAgICA7OwogICAgKk4zMiopCiAgICAgIExE
PSIke0xELWxkfSAtbjMyIgogICAgICA7OwogICAgKjY0LWJpdCopCiAgICAg
IExEPSIke0xELWxkfSAtNjQiCiAgICAgIDs7CiAgICBlc2FjCiAgZmkKICBy
bSAtcmYgY29uZnRlc3QqCiAgOzsKCiotKi1zY28zLjJ2NSopCiAgIyBPbiBT
Q08gT3BlblNlcnZlciA1LCB3ZSBuZWVkIC1iZWxmIHRvIGdldCBmdWxsLWZl
YXR1cmVkIGJpbmFyaWVzLgogIFNBVkVfQ0ZMQUdTPSIkQ0ZMQUdTIgogIENG
TEFHUz0iJENGTEFHUyAtYmVsZiIKICBlY2hvICIkYXNfbWU6JExJTkVOTzog
Y2hlY2tpbmcgd2hldGhlciB0aGUgQyBjb21waWxlciBuZWVkcyAtYmVsZiIg
PiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQyBjb21w
aWxlciBuZWVkcyAtYmVsZi4uLiAkRUNIT19DIiA+JjYKaWYgdGVzdCAiJHts
dF9jdl9jY19uZWVkc19iZWxmK3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAk
RUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZWxzZQoKCiAgICAgYWNf
ZXh0PWMKYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKYWNfY29tcGlsZT0nJEND
IC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1Jwph
Y19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQ
UEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1Jwph
Y19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CgogICAgIGNh
dCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgojbGluZSAkTElORU5PICJj
b25maWd1cmUiCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZk
ZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19l
eHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwoKaW50Cm1haW4g
KCkKewoKICA7CiAgcmV0dXJuIDA7Cn0KX0FDRU9GCnJtIC1mIGNvbmZ0ZXN0
LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CmlmIHsgKGV2YWwgZWNo
byAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQogIChldmFs
ICRhY19saW5rKSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21l
OiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19z
dGF0dXMpOyB9ICYmCiAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0
ZXN0JGFjX2V4ZWV4dCcKICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5P
OiBcIiRhY190cnlcIiIpID4mNQogIChldmFsICRhY190cnkpIDI+JjUKICBh
Y19zdGF0dXM9JD8KICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFj
X3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4K
ICBsdF9jdl9jY19uZWVkc19iZWxmPXllcwplbHNlCiAgZWNobyAiJGFzX21l
OiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25m
dGVzdC4kYWNfZXh0ID4mNQoKbHRfY3ZfY2NfbmVlZHNfYmVsZj1ubwpmaQpy
bSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBj
b25mdGVzdC4kYWNfZXh0CiAgICAgYWNfZXh0PWMKYWNfY3BwPSckQ1BQICRD
UFBGTEFHUycKYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdT
IGNvbmZ0ZXN0LiRhY19leHQgPiY1JwphY19saW5rPSckQ0MgLW8gY29uZnRl
c3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0
ZXN0LiRhY19leHQgJExJQlMgPiY1JwphY19jb21waWxlcl9nbnU9JGFjX2N2
X2NfY29tcGlsZXJfZ251CgpmaQplY2hvICIkYXNfbWU6JExJTkVOTzogcmVz
dWx0OiAkbHRfY3ZfY2NfbmVlZHNfYmVsZiIgPiY1CmVjaG8gIiR7RUNIT19U
fSRsdF9jdl9jY19uZWVkc19iZWxmIiA+JjYKICBpZiB0ZXN0IHgiJGx0X2N2
X2NjX25lZWRzX2JlbGYiICE9IHgieWVzIjsgdGhlbgogICAgIyB0aGlzIGlz
IHByb2JhYmx5IGdjYyAyLjguMCwgZWdjcyAxLjAgb3IgbmV3ZXI7IG5vIG5l
ZWQgZm9yIC1iZWxmCiAgICBDRkxBR1M9IiRTQVZFX0NGTEFHUyIKICBmaQog
IDs7CgoKZXNhYwoKIyBTZWQgc3Vic3RpdHV0aW9uIHRoYXQgaGVscHMgdXMg
ZG8gcm9idXN0IHF1b3RpbmcuICBJdCBiYWNrc2xhc2hpZmllcwojIG1ldGFj
aGFyYWN0ZXJzIHRoYXQgYXJlIHN0aWxsIGFjdGl2ZSB3aXRoaW4gZG91Ymxl
LXF1b3RlZCBzdHJpbmdzLgpYc2VkPSdzZWQgLWUgcy9eWC8vJwpzZWRfcXVv
dGVfc3Vic3Q9J3MvXChbXFwiXFxgJFxcXFxdXCkvXFxcMS9nJwoKIyBTYW1l
IGFzIGFib3ZlLCBidXQgZG8gbm90IHF1b3RlIHZhcmlhYmxlIHJlZmVyZW5j
ZXMuCmRvdWJsZV9xdW90ZV9zdWJzdD0ncy9cKFtcXCJcXGBcXFxcXVwpL1xc
XDEvZycKCiMgU2VkIHN1YnN0aXR1dGlvbiB0byBkZWxheSBleHBhbnNpb24g
b2YgYW4gZXNjYXBlZCBzaGVsbCB2YXJpYWJsZSBpbiBhCiMgZG91YmxlX3F1
b3RlX3N1YnN0J2VkIHN0cmluZy4KZGVsYXlfdmFyaWFibGVfc3Vic3Q9J3Mv
XFxcXFxcXFxcXFwkL1xcXFxcXCQvZycKCiMgQ29uc3RhbnRzOgpybT0icm0g
LWYiCgojIEdsb2JhbCB2YXJpYWJsZXM6CmRlZmF1bHRfb2ZpbGU9bGlidG9v
bApjYW5fYnVpbGRfc2hhcmVkPXllcwoKIyBBbGwga25vd24gbGlua2VycyBy
ZXF1aXJlIGEgYC5hJyBhcmNoaXZlIGZvciBzdGF0aWMgbGlua2luZyAoZXhj
ZXB0IE0kVkMsCiMgd2hpY2ggbmVlZHMgJy5saWInKS4KbGliZXh0PWEKbHRt
YWluPSIkYWNfYXV4X2Rpci9sdG1haW4uc2giCm9maWxlPSIkZGVmYXVsdF9v
ZmlsZSIKd2l0aF9nbnVfbGQ9IiRsdF9jdl9wcm9nX2dudV9sZCIKbmVlZF9s
b2Nrcz0iJGVuYWJsZV9saWJ0b29sX2xvY2siCgpvbGRfQ0M9IiRDQyIKb2xk
X0NGTEFHUz0iJENGTEFHUyIKCiMgU2V0IHNhbmUgZGVmYXVsdHMgZm9yIHZh
cmlvdXMgdmFyaWFibGVzCnRlc3QgLXogIiRBUiIgJiYgQVI9YXIKdGVzdCAt
eiAiJEFSX0ZMQUdTIiAmJiBBUl9GTEFHUz1jcnUKdGVzdCAteiAiJEFTIiAm
JiBBUz1hcwp0ZXN0IC16ICIkQ0MiICYmIENDPWNjCnRlc3QgLXogIiRETExU
T09MIiAmJiBETExUT09MPWRsbHRvb2wKdGVzdCAteiAiJExEIiAmJiBMRD1s
ZAp0ZXN0IC16ICIkTE5fUyIgJiYgTE5fUz0ibG4gLXMiCnRlc3QgLXogIiRN
QUdJQ19DTUQiICYmIE1BR0lDX0NNRD1maWxlCnRlc3QgLXogIiROTSIgJiYg
Tk09bm0KdGVzdCAteiAiJE9CSkRVTVAiICYmIE9CSkRVTVA9b2JqZHVtcAp0
ZXN0IC16ICIkUkFOTElCIiAmJiBSQU5MSUI9Ogp0ZXN0IC16ICIkU1RSSVAi
ICYmIFNUUklQPToKdGVzdCAteiAiJGFjX29iamV4dCIgJiYgYWNfb2JqZXh0
PW8KCmlmIHRlc3QgeCIkaG9zdCIgIT0geCIkYnVpbGQiOyB0aGVuCiAgYWNf
dG9vbF9wcmVmaXg9JHtob3N0X2FsaWFzfS0KZWxzZQogIGFjX3Rvb2xfcHJl
Zml4PQpmaQoKIyBUcmFuc2Zvcm0gbGludXgqIHRvICotKi1saW51eC1nbnUq
LCB0byBzdXBwb3J0IG9sZCBjb25maWd1cmUgc2NyaXB0cy4KY2FzZSAkaG9z
dF9vcyBpbgpsaW51eC1nbnUqKSA7OwpsaW51eCopIGhvc3Q9YGVjaG8gJGhv
c3QgfCBzZWQgJ3MvXlwoLiotLiotbGludXhcKVwoLipcKSQvXDEtZ251XDIv
J2AKZXNhYwoKY2FzZSAkaG9zdF9vcyBpbgphaXgzKikKICAjIEFJWCBzb21l
dGltZXMgaGFzIHByb2JsZW1zIHdpdGggdGhlIEdDQyBjb2xsZWN0MiBwcm9n
cmFtLiAgRm9yIHNvbWUKICAjIHJlYXNvbiwgaWYgd2Ugc2V0IHRoZSBDT0xM
RUNUX05BTUVTIGVudmlyb25tZW50IHZhcmlhYmxlLCB0aGUgcHJvYmxlbXMK
ICAjIHZhbmlzaCBpbiBhIHB1ZmYgb2Ygc21va2UuCiAgaWYgdGVzdCAiWCR7
Q09MTEVDVF9OQU1FUytzZXR9IiAhPSBYc2V0OyB0aGVuCiAgICBDT0xMRUNU
X05BTUVTPQogICAgZXhwb3J0IENPTExFQ1RfTkFNRVMKICBmaQogIDs7CmVz
YWMKCiMgRGV0ZXJtaW5lIGNvbW1hbmRzIHRvIGNyZWF0ZSBvbGQtc3R5bGUg
c3RhdGljIGFyY2hpdmVzLgpvbGRfYXJjaGl2ZV9jbWRzPSckQVIgJEFSX0ZM
QUdTICRvbGRsaWIkb2xkb2JqcyRvbGRfZGVwbGlicycKb2xkX3Bvc3RpbnN0
YWxsX2NtZHM9J2NobW9kIDY0NCAkb2xkbGliJwpvbGRfcG9zdHVuaW5zdGFs
bF9jbWRzPQoKaWYgdGVzdCAtbiAiJFJBTkxJQiI7IHRoZW4KICBjYXNlICRo
b3N0X29zIGluCiAgb3BlbmJzZCopCiAgICBvbGRfcG9zdGluc3RhbGxfY21k
cz0iXCRSQU5MSUIgLXQgXCRvbGRsaWJ+JG9sZF9wb3N0aW5zdGFsbF9jbWRz
IgogICAgOzsKICAqKQogICAgb2xkX3Bvc3RpbnN0YWxsX2NtZHM9IlwkUkFO
TElCIFwkb2xkbGlifiRvbGRfcG9zdGluc3RhbGxfY21kcyIKICAgIDs7CiAg
ZXNhYwogIG9sZF9hcmNoaXZlX2NtZHM9IiRvbGRfYXJjaGl2ZV9jbWRzflwk
UkFOTElCIFwkb2xkbGliIgpmaQoKIyBBbGxvdyBDQyB0byBiZSBhIHByb2dy
YW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4Kc2V0IGR1bW15ICRDQwpjb21waWxl
cj0iJDIiCgojIyBGSVhNRTogdGhpcyBzaG91bGQgYmUgYSBzZXBhcmF0ZSBt
YWNybwojIwplY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG9i
amRpciIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIG9iamRpci4u
LiAkRUNIT19DIiA+JjYKcm0gLWYgLmxpYnMgMj4vZGV2L251bGwKbWtkaXIg
LmxpYnMgMj4vZGV2L251bGwKaWYgdGVzdCAtZCAubGliczsgdGhlbgogIG9i
amRpcj0ubGlicwplbHNlCiAgIyBNUy1ET1MgZG9lcyBub3QgYWxsb3cgZmls
ZW5hbWVzIHRoYXQgYmVnaW4gd2l0aCBhIGRvdC4KICBvYmpkaXI9X2xpYnMK
ZmkKcm1kaXIgLmxpYnMgMj4vZGV2L251bGwKZWNobyAiJGFzX21lOiRMSU5F
Tk86IHJlc3VsdDogJG9iamRpciIgPiY1CmVjaG8gIiR7RUNIT19UfSRvYmpk
aXIiID4mNgojIwojIyBFTkQgRklYTUUKCgojIyBGSVhNRTogdGhpcyBzaG91
bGQgYmUgYSBzZXBhcmF0ZSBtYWNybwojIwoKIyBDaGVjayB3aGV0aGVyIC0t
d2l0aC1waWMgb3IgLS13aXRob3V0LXBpYyB3YXMgZ2l2ZW4uCmlmIHRlc3Qg
IiR7d2l0aF9waWMrc2V0fSIgPSBzZXQ7IHRoZW4KICB3aXRodmFsPSIkd2l0
aF9waWMiCiAgcGljX21vZGU9IiR3aXRodmFsIgplbHNlCiAgcGljX21vZGU9
ZGVmYXVsdApmaTsKdGVzdCAteiAiJHBpY19tb2RlIiAmJiBwaWNfbW9kZT1k
ZWZhdWx0CgojIFdlIGFzc3VtZSBoZXJlIHRoYXQgdGhlIHZhbHVlIGZvciBs
dF9jdl9wcm9nX2NjX3BpYyB3aWxsIG5vdCBiZSBjYWNoZWQKIyBpbiBpc29s
YXRpb24sIGFuZCB0aGF0IHNlZWluZyBpdCBzZXQgKGZyb20gdGhlIGNhY2hl
KSBpbmRpY2F0ZXMgdGhhdAojIHRoZSBhc3NvY2lhdGVkIHZhbHVlcyBhcmUg
c2V0IChpbiB0aGUgY2FjaGUpIGNvcnJlY3RseSB0b28uCmVjaG8gIiRhc19t
ZTokTElORU5POiBjaGVja2luZyBmb3IgJGNvbXBpbGVyIG9wdGlvbiB0byBw
cm9kdWNlIFBJQyIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRj
b21waWxlciBvcHRpb24gdG8gcHJvZHVjZSBQSUMuLi4gJEVDSE9fQyIgPiY2
CmlmIHRlc3QgIiR7bHRfY3ZfcHJvZ19jY19waWMrc2V0fSIgPSBzZXQ7IHRo
ZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgplbHNl
CiAgIGx0X2N2X3Byb2dfY2NfcGljPQogIGx0X2N2X3Byb2dfY2Nfc2hsaWI9
CiAgbHRfY3ZfcHJvZ19jY193bD0KICBsdF9jdl9wcm9nX2NjX3N0YXRpYz0K
ICBsdF9jdl9wcm9nX2NjX25vX2J1aWx0aW49CiAgbHRfY3ZfcHJvZ19jY19j
YW5fYnVpbGRfc2hhcmVkPSRjYW5fYnVpbGRfc2hhcmVkCgogIGlmIHRlc3Qg
IiRHQ0MiID0geWVzOyB0aGVuCiAgICBsdF9jdl9wcm9nX2NjX3dsPSctV2ws
JwogICAgbHRfY3ZfcHJvZ19jY19zdGF0aWM9Jy1zdGF0aWMnCgogICAgY2Fz
ZSAkaG9zdF9vcyBpbgogICAgYWl4KikKICAgICAgIyBCZWxvdyB0aGVyZSBp
cyBhIGRpcnR5IGhhY2sgdG8gZm9yY2Ugbm9ybWFsIHN0YXRpYyBsaW5raW5n
IHdpdGggLWxkbAogICAgICAjIFRoZSBwcm9ibGVtIGlzIGJlY2F1c2UgbGli
ZGwgZHluYW1pY2FsbHkgbGlua2VkIHdpdGggYm90aCBsaWJjIGFuZAogICAg
ICAjIGxpYkMgKEFJWCBDKysgbGlicmFyeSksIHdoaWNoIG9idmlvdXNseSBk
b2Vzbid0IGluY2x1ZGVkIGluIGxpYnJhcmllcwogICAgICAjIGxpc3QgYnkg
Z2NjLiBUaGlzIGNhdXNlIHVuZGVmaW5lZCBzeW1ib2xzIHdpdGggLXN0YXRp
YyBmbGFncy4KICAgICAgIyBUaGlzIGhhY2sgYWxsb3dzIEMgcHJvZ3JhbXMg
dG8gYmUgbGlua2VkIHdpdGggIi1zdGF0aWMgLWxkbCIsIGJ1dAogICAgICAj
IG5vdCBzdXJlIGFib3V0IEMrKyBwcm9ncmFtcy4KICAgICAgbHRfY3ZfcHJv
Z19jY19zdGF0aWM9IiRsdF9jdl9wcm9nX2NjX3N0YXRpYyAke2x0X2N2X3By
b2dfY2Nfd2x9LWxDIgogICAgICA7OwogICAgYW1pZ2FvcyopCiAgICAgICMg
RklYTUU6IHdlIG5lZWQgYXQgbGVhc3QgNjgwMjAgY29kZSB0byBidWlsZCBz
aGFyZWQgbGlicmFyaWVzLCBidXQKICAgICAgIyBhZGRpbmcgdGhlIGAtbTY4
MDIwJyBmbGFnIHRvIEdDQyBwcmV2ZW50cyBidWlsZGluZyBhbnl0aGluZyBi
ZXR0ZXIsCiAgICAgICMgbGlrZSBgLW02ODA0MCcuCiAgICAgIGx0X2N2X3By
b2dfY2NfcGljPSctbTY4MDIwIC1yZXNpZGVudDMyIC1tYWx3YXlzLXJlc3Rv
cmUtYTQnCiAgICAgIDs7CiAgICBiZW9zKiB8IGlyaXg1KiB8IGlyaXg2KiB8
IG5vbnN0b3B1eCogfCBvc2YzKiB8IG9zZjQqIHwgb3NmNSopCiAgICAgICMg
UElDIGlzIHRoZSBkZWZhdWx0IGZvciB0aGVzZSBPU2VzLgogICAgICA7Owog
ICAgZGFyd2luKiB8IHJoYXBzb2R5KikKICAgICAgIyBQSUMgaXMgdGhlIGRl
ZmF1bHQgb24gdGhpcyBwbGF0Zm9ybQogICAgICAjIENvbW1vbiBzeW1ib2xz
IG5vdCBhbGxvd2VkIGluIE1IX0RZTElCIGZpbGVzCiAgICAgIGx0X2N2X3By
b2dfY2NfcGljPSctZm5vLWNvbW1vbicKICAgICAgOzsKICAgIGN5Z3dpbiog
fCBtaW5ndyogfCBwdzMyKiB8IG9zMiopCiAgICAgICMgVGhpcyBoYWNrIGlz
IHNvIHRoYXQgdGhlIHNvdXJjZSBmaWxlIGNhbiB0ZWxsIHdoZXRoZXIgaXQg
aXMgYmVpbmcKICAgICAgIyBidWlsdCBmb3IgaW5jbHVzaW9uIGluIGEgZGxs
IChhbmQgc2hvdWxkIGV4cG9ydCBzeW1ib2xzIGZvciBleGFtcGxlKS4KICAg
ICAgbHRfY3ZfcHJvZ19jY19waWM9Jy1ERExMX0VYUE9SVCcKICAgICAgOzsK
ICAgIHN5c3Y0Kk1QKikKICAgICAgaWYgdGVzdCAtZCAvdXNyL25lYzsgdGhl
bgoJIGx0X2N2X3Byb2dfY2NfcGljPS1LY29uZm9ybV9waWMKICAgICAgZmkK
ICAgICAgOzsKICAgICopCiAgICAgIGx0X2N2X3Byb2dfY2NfcGljPSctZlBJ
QycKICAgICAgOzsKICAgIGVzYWMKICBlbHNlCiAgICAjIFBPUlRNRSBDaGVj
ayBmb3IgUElDIGZsYWdzIGZvciB0aGUgc3lzdGVtIGNvbXBpbGVyLgogICAg
Y2FzZSAkaG9zdF9vcyBpbgogICAgYWl4MyogfCBhaXg0KiB8IGFpeDUqKQog
ICAgICBsdF9jdl9wcm9nX2NjX3dsPSctV2wsJwogICAgICAjIEFsbCBBSVgg
Y29kZSBpcyBQSUMuCiAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0
OyB0aGVuCgkjIEFJWCA1IG5vdyBzdXBwb3J0cyBJQTY0IHByb2Nlc3NvcgoJ
bHRfY3ZfcHJvZ19jY19zdGF0aWM9Jy1Cc3RhdGljJwogICAgICBlbHNlCgls
dF9jdl9wcm9nX2NjX3N0YXRpYz0nLWJuc28gLWJJOi9saWIvc3lzY2FsbHMu
ZXhwJwogICAgICBmaQogICAgICA7OwoKICAgIGhwdXg5KiB8IGhwdXgxMCog
fCBocHV4MTEqKQogICAgICAjIElzIHRoZXJlIGEgYmV0dGVyIGx0X2N2X3By
b2dfY2Nfc3RhdGljIHRoYXQgd29ya3Mgd2l0aCB0aGUgYnVuZGxlZCBDQz8K
ICAgICAgbHRfY3ZfcHJvZ19jY193bD0nLVdsLCcKICAgICAgbHRfY3ZfcHJv
Z19jY19zdGF0aWM9IiR7bHRfY3ZfcHJvZ19jY193bH0tYSAke2x0X2N2X3By
b2dfY2Nfd2x9YXJjaGl2ZSIKICAgICAgbHRfY3ZfcHJvZ19jY19waWM9Jyta
JwogICAgICA7OwoKICAgIGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCop
CiAgICAgIGx0X2N2X3Byb2dfY2Nfd2w9Jy1XbCwnCiAgICAgIGx0X2N2X3By
b2dfY2Nfc3RhdGljPSctbm9uX3NoYXJlZCcKICAgICAgIyBQSUMgKHdpdGgg
LUtQSUMpIGlzIHRoZSBkZWZhdWx0LgogICAgICA7OwoKICAgIGN5Z3dpbiog
fCBtaW5ndyogfCBwdzMyKiB8IG9zMiopCiAgICAgICMgVGhpcyBoYWNrIGlz
IHNvIHRoYXQgdGhlIHNvdXJjZSBmaWxlIGNhbiB0ZWxsIHdoZXRoZXIgaXQg
aXMgYmVpbmcKICAgICAgIyBidWlsdCBmb3IgaW5jbHVzaW9uIGluIGEgZGxs
IChhbmQgc2hvdWxkIGV4cG9ydCBzeW1ib2xzIGZvciBleGFtcGxlKS4KICAg
ICAgbHRfY3ZfcHJvZ19jY19waWM9Jy1ERExMX0VYUE9SVCcKICAgICAgOzsK
CiAgICBuZXdzb3M2KQogICAgICBsdF9jdl9wcm9nX2NjX3BpYz0nLUtQSUMn
CiAgICAgIGx0X2N2X3Byb2dfY2Nfc3RhdGljPSctQnN0YXRpYycKICAgICAg
OzsKCiAgICBvc2YzKiB8IG9zZjQqIHwgb3NmNSopCiAgICAgICMgQWxsIE9T
Ri8xIGNvZGUgaXMgUElDLgogICAgICBsdF9jdl9wcm9nX2NjX3dsPSctV2ws
JwogICAgICBsdF9jdl9wcm9nX2NjX3N0YXRpYz0nLW5vbl9zaGFyZWQnCiAg
ICAgIDs7CgogICAgc2NvMy4ydjUqKQogICAgICBsdF9jdl9wcm9nX2NjX3Bp
Yz0nLUtwaWMnCiAgICAgIGx0X2N2X3Byb2dfY2Nfc3RhdGljPSctZG4nCiAg
ICAgIGx0X2N2X3Byb2dfY2Nfc2hsaWI9Jy1iZWxmJwogICAgICA7OwoKICAg
IHNvbGFyaXMqKQogICAgICBsdF9jdl9wcm9nX2NjX3BpYz0nLUtQSUMnCiAg
ICAgIGx0X2N2X3Byb2dfY2Nfc3RhdGljPSctQnN0YXRpYycKICAgICAgbHRf
Y3ZfcHJvZ19jY193bD0nLVdsLCcKICAgICAgOzsKCiAgICBzdW5vczQqKQog
ICAgICBsdF9jdl9wcm9nX2NjX3BpYz0nLVBJQycKICAgICAgbHRfY3ZfcHJv
Z19jY19zdGF0aWM9Jy1Cc3RhdGljJwogICAgICBsdF9jdl9wcm9nX2NjX3ds
PSctUW9wdGlvbiBsZCAnCiAgICAgIDs7CgogICAgc3lzdjQgfCBzeXN2NC4y
dXcyKiB8IHN5c3Y0LjMqIHwgc3lzdjUqKQogICAgICBsdF9jdl9wcm9nX2Nj
X3BpYz0nLUtQSUMnCiAgICAgIGx0X2N2X3Byb2dfY2Nfc3RhdGljPSctQnN0
YXRpYycKICAgICAgbHRfY3ZfcHJvZ19jY193bD0nLVdsLCcKICAgICAgOzsK
CiAgICB1dHM0KikKICAgICAgbHRfY3ZfcHJvZ19jY19waWM9Jy1waWMnCiAg
ICAgIGx0X2N2X3Byb2dfY2Nfc3RhdGljPSctQnN0YXRpYycKICAgICAgOzsK
CiAgICBzeXN2NCpNUCopCiAgICAgIGlmIHRlc3QgLWQgL3Vzci9uZWMgO3Ro
ZW4KCWx0X2N2X3Byb2dfY2NfcGljPSctS2NvbmZvcm1fcGljJwoJbHRfY3Zf
cHJvZ19jY19zdGF0aWM9Jy1Cc3RhdGljJwogICAgICBmaQogICAgICA7OwoK
ICAgICopCiAgICAgIGx0X2N2X3Byb2dfY2NfY2FuX2J1aWxkX3NoYXJlZD1u
bwogICAgICA7OwogICAgZXNhYwogIGZpCgpmaQoKaWYgdGVzdCAteiAiJGx0
X2N2X3Byb2dfY2NfcGljIjsgdGhlbgogIGVjaG8gIiRhc19tZTokTElORU5P
OiByZXN1bHQ6IG5vbmUiID4mNQplY2hvICIke0VDSE9fVH1ub25lIiA+JjYK
ZWxzZQogIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9w
cm9nX2NjX3BpYyIgPiY1CmVjaG8gIiR7RUNIT19UfSRsdF9jdl9wcm9nX2Nj
X3BpYyIgPiY2CgogICMgQ2hlY2sgdG8gbWFrZSBzdXJlIHRoZSBwaWNfZmxh
ZyBhY3R1YWxseSB3b3Jrcy4KICBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hl
Y2tpbmcgaWYgJGNvbXBpbGVyIFBJQyBmbGFnICRsdF9jdl9wcm9nX2NjX3Bp
YyB3b3JrcyIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgaWYgJGNvbXBp
bGVyIFBJQyBmbGFnICRsdF9jdl9wcm9nX2NjX3BpYyB3b3Jrcy4uLiAkRUNI
T19DIiA+JjYKICBpZiB0ZXN0ICIke2x0X2N2X3Byb2dfY2NfcGljX3dvcmtz
K3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAk
RUNIT19DIiA+JjYKZWxzZQogICAgICBzYXZlX0NGTEFHUz0iJENGTEFHUyIK
ICAgIENGTEFHUz0iJENGTEFHUyAkbHRfY3ZfcHJvZ19jY19waWMgLURQSUMi
CiAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKI2xpbmUgJExJ
TkVOTyAiY29uZmlndXJlIgovKiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNh
dCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVz
dC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5oLiAgKi8KCmlu
dAptYWluICgpCnsKCiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgpybSAtZiBj
b25mdGVzdC4kYWNfb2JqZXh0CmlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRM
SU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQogIChldmFsICRhY19jb21w
aWxlKSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRMSU5F
Tk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMp
OyB9ICYmCiAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRh
Y19vYmpleHQnCiAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIk
YWNfdHJ5XCIiKSA+JjUKICAoZXZhbCAkYWNfdHJ5KSAyPiY1CiAgYWNfc3Rh
dHVzPSQ/CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0
dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCiAgICAg
ICAgY2FzZSAkaG9zdF9vcyBpbgogICAgICBocHV4OSogfCBocHV4MTAqIHwg
aHB1eDExKikKCSMgT24gSFAtVVgsIGJvdGggQ0MgYW5kIEdDQyBvbmx5IHdh
cm4gdGhhdCBQSUMgaXMgc3VwcG9ydGVkLi4uIHRoZW4KCSMgdGhleSBjcmVh
dGUgbm9uLVBJQyBvYmplY3RzLiAgU28sIGlmIHRoZXJlIHdlcmUgYW55IHdh
cm5pbmdzLCB3ZQoJIyBhc3N1bWUgdGhhdCBQSUMgaXMgbm90IHN1cHBvcnRl
ZC4KCWlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVuCgkgIGx0X2N2X3By
b2dfY2NfcGljX3dvcmtzPW5vCgllbHNlCgkgIGx0X2N2X3Byb2dfY2NfcGlj
X3dvcmtzPXllcwoJZmkKCTs7CiAgICAgICopCglsdF9jdl9wcm9nX2NjX3Bp
Y193b3Jrcz15ZXMKCTs7CiAgICAgIGVzYWMKCmVsc2UKICBlY2hvICIkYXNf
bWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNv
bmZ0ZXN0LiRhY19leHQgPiY1CgogICAgICBsdF9jdl9wcm9nX2NjX3BpY193
b3Jrcz1ubwoKZmkKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz
dC4kYWNfZXh0CiAgICBDRkxBR1M9IiRzYXZlX0NGTEFHUyIKCmZpCgoKICBp
ZiB0ZXN0ICJYJGx0X2N2X3Byb2dfY2NfcGljX3dvcmtzIiA9IFhubzsgdGhl
bgogICAgbHRfY3ZfcHJvZ19jY19waWM9CiAgICBsdF9jdl9wcm9nX2NjX2Nh
bl9idWlsZF9zaGFyZWQ9bm8KICBlbHNlCiAgICBsdF9jdl9wcm9nX2NjX3Bp
Yz0iICRsdF9jdl9wcm9nX2NjX3BpYyIKICBmaQoKICBlY2hvICIkYXNfbWU6
JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfcHJvZ19jY19waWNfd29ya3MiID4m
NQplY2hvICIke0VDSE9fVH0kbHRfY3ZfcHJvZ19jY19waWNfd29ya3MiID4m
NgpmaQojIwojIyBFTkQgRklYTUUKCiMgQ2hlY2sgZm9yIGFueSBzcGVjaWFs
IHNoYXJlZCBsaWJyYXJ5IGNvbXBpbGF0aW9uIGZsYWdzLgppZiB0ZXN0IC1u
ICIkbHRfY3ZfcHJvZ19jY19zaGxpYiI7IHRoZW4KICB7IGVjaG8gIiRhc19t
ZTokTElORU5POiBXQVJOSU5HOiBcYCRDQycgcmVxdWlyZXMgXGAkbHRfY3Zf
cHJvZ19jY19zaGxpYicgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllcyIgPiY1
CmVjaG8gIiRhc19tZTogV0FSTklORzogXGAkQ0MnIHJlcXVpcmVzIFxgJGx0
X2N2X3Byb2dfY2Nfc2hsaWInIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMi
ID4mMjt9CiAgaWYgZWNobyAiJG9sZF9DQyAkb2xkX0NGTEFHUyAiIHwgZWdy
ZXAgLWUgIlsgCV0kbHRfY3ZfcHJvZ19jY19zaGxpYlsgCV0iID4vZGV2L251
bGw7IHRoZW4gOgogIGVsc2UKICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzog
V0FSTklORzogYWRkIFxgJGx0X2N2X3Byb2dfY2Nfc2hsaWInIHRvIHRoZSBD
QyBvciBDRkxBR1MgZW52IHZhcmlhYmxlIGFuZCByZWNvbmZpZ3VyZSIgPiY1
CmVjaG8gIiRhc19tZTogV0FSTklORzogYWRkIFxgJGx0X2N2X3Byb2dfY2Nf
c2hsaWInIHRvIHRoZSBDQyBvciBDRkxBR1MgZW52IHZhcmlhYmxlIGFuZCBy
ZWNvbmZpZ3VyZSIgPiYyO30KICAgIGx0X2N2X3Byb2dfY2NfY2FuX2J1aWxk
X3NoYXJlZD1ubwogIGZpCmZpCgojIyBGSVhNRTogdGhpcyBzaG91bGQgYmUg
YSBzZXBhcmF0ZSBtYWNybwojIwplY2hvICIkYXNfbWU6JExJTkVOTzogY2hl
Y2tpbmcgaWYgJGNvbXBpbGVyIHN0YXRpYyBmbGFnICRsdF9jdl9wcm9nX2Nj
X3N0YXRpYyB3b3JrcyIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgaWYg
JGNvbXBpbGVyIHN0YXRpYyBmbGFnICRsdF9jdl9wcm9nX2NjX3N0YXRpYyB3
b3Jrcy4uLiAkRUNIT19DIiA+JjYKaWYgdGVzdCAiJHtsdF9jdl9wcm9nX2Nj
X3N0YXRpY193b3JrcytzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9f
TiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICAgIGx0X2N2X3Byb2df
Y2Nfc3RhdGljX3dvcmtzPW5vCiAgc2F2ZV9MREZMQUdTPSIkTERGTEFHUyIK
ICBMREZMQUdTPSIkTERGTEFHUyAkbHRfY3ZfcHJvZ19jY19zdGF0aWMiCiAg
Y2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCiNsaW5lICRMSU5FTk8g
ImNvbmZpZ3VyZSIKLyogY29uZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29u
ZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRlc3QuJGFj
X2V4dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCgppbnQKbWFp
biAoKQp7CgogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKcm0gLWYgY29uZnRl
c3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKaWYgeyAoZXZhbCBl
Y2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1CiAgKGV2
YWwgJGFjX2xpbmspIDI+JjUKICBhY19zdGF0dXM9JD8KICBlY2hvICIkYXNf
bWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFj
X3N0YXR1cyk7IH0gJiYKICAgICAgICAgeyBhY190cnk9J3Rlc3QgLXMgY29u
ZnRlc3QkYWNfZXhlZXh0JwogIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5F
Tk86IFwiJGFjX3RyeVwiIikgPiY1CiAgKGV2YWwgJGFjX3RyeSkgMj4mNQog
IGFjX3N0YXR1cz0kPwogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAk
YWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhl
bgogIGx0X2N2X3Byb2dfY2Nfc3RhdGljX3dvcmtzPXllcwplbHNlCiAgZWNo
byAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14v
fCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKZmkKcm0gLWYgY29uZnRlc3Qu
JGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4
dAogIExERkxBR1M9IiRzYXZlX0xERkxBR1MiCgpmaQoKCiMgQmVsdCAqYW5k
KiBicmFjZXMgdG8gc3RvcCBteSB0cm91c2VycyBmYWxsaW5nIGRvd246CnRl
c3QgIlgkbHRfY3ZfcHJvZ19jY19zdGF0aWNfd29ya3MiID0gWG5vICYmIGx0
X2N2X3Byb2dfY2Nfc3RhdGljPQplY2hvICIkYXNfbWU6JExJTkVOTzogcmVz
dWx0OiAkbHRfY3ZfcHJvZ19jY19zdGF0aWNfd29ya3MiID4mNQplY2hvICIk
e0VDSE9fVH0kbHRfY3ZfcHJvZ19jY19zdGF0aWNfd29ya3MiID4mNgoKcGlj
X2ZsYWc9IiRsdF9jdl9wcm9nX2NjX3BpYyIKc3BlY2lhbF9zaGxpYl9jb21w
aWxlX2ZsYWdzPSIkbHRfY3ZfcHJvZ19jY19zaGxpYiIKd2w9IiRsdF9jdl9w
cm9nX2NjX3dsIgpsaW5rX3N0YXRpY19mbGFnPSIkbHRfY3ZfcHJvZ19jY19z
dGF0aWMiCm5vX2J1aWx0aW5fZmxhZz0iJGx0X2N2X3Byb2dfY2Nfbm9fYnVp
bHRpbiIKY2FuX2J1aWxkX3NoYXJlZD0iJGx0X2N2X3Byb2dfY2NfY2FuX2J1
aWxkX3NoYXJlZCIKIyMKIyMgRU5EIEZJWE1FCgoKIyMgRklYTUU6IHRoaXMg
c2hvdWxkIGJlIGEgc2VwYXJhdGUgbWFjcm8KIyMKIyBDaGVjayB0byBzZWUg
aWYgb3B0aW9ucyAtbyBhbmQgLWMgYXJlIHNpbXVsdGFuZW91c2x5IHN1cHBv
cnRlZCBieSBjb21waWxlcgplY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp
bmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1jIC1vIGZpbGUuJGFjX29iamV4
dCIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN1
cHBvcnRzIC1jIC1vIGZpbGUuJGFjX29iamV4dC4uLiAkRUNIT19DIiA+JjYK
aWYgdGVzdCAiJHtsdF9jdl9jb21waWxlcl9jX28rc2V0fSIgPSBzZXQ7IHRo
ZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgplbHNl
Cgokcm0gLXIgY29uZnRlc3QgMj4vZGV2L251bGwKbWtkaXIgY29uZnRlc3QK
Y2QgY29uZnRlc3QKZWNobyAiaW50IHNvbWVfdmFyaWFibGUgPSAwOyIgPiBj
b25mdGVzdC4kYWNfZXh0Cm1rZGlyIG91dAojIEFjY29yZGluZyB0byBUb20g
VHJvbWV5LCBJYW4gTGFuY2UgVGF5bG9yIHJlcG9ydGVkIHRoZXJlIGFyZSBD
IGNvbXBpbGVycwojIHRoYXQgd2lsbCBjcmVhdGUgdGVtcG9yYXJ5IGZpbGVz
IGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeSByZWdhcmRsZXNzIG9mCiMgdGhl
IG91dHB1dCBkaXJlY3RvcnkuICBUaHVzLCBtYWtpbmcgQ1dEIHJlYWQtb25s
eSB3aWxsIGNhdXNlIHRoaXMgdGVzdAojIHRvIGZhaWwsIGVuYWJsaW5nIGxv
Y2tpbmcgb3IgYXQgbGVhc3Qgd2FybmluZyB0aGUgdXNlciBub3QgdG8gZG8g
cGFyYWxsZWwKIyBidWlsZHMuCmNobW9kIC13IC4Kc2F2ZV9DRkxBR1M9IiRD
RkxBR1MiCkNGTEFHUz0iJENGTEFHUyAtbyBvdXQvY29uZnRlc3QyLiRhY19v
YmpleHQiCmNvbXBpbGVyX2Nfbz1ubwppZiB7IChldmFsIGVjaG8gY29uZmln
dXJlOjUyMTg6IFwiJGFjX2NvbXBpbGVcIikgMT4mNTsgKGV2YWwgJGFjX2Nv
bXBpbGUpIDI+b3V0L2NvbmZ0ZXN0LmVycjsgfSAmJiB0ZXN0IC1zIG91dC9j
b25mdGVzdDIuJGFjX29iamV4dDsgdGhlbgogICMgVGhlIGNvbXBpbGVyIGNh
biBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNv
Z25pemVkCiAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzCiAg
aWYgdGVzdCAtcyBvdXQvY29uZnRlc3QuZXJyOyB0aGVuCiAgICBsdF9jdl9j
b21waWxlcl9jX289bm8KICBlbHNlCiAgICBsdF9jdl9jb21waWxlcl9jX289
eWVzCiAgZmkKZWxzZQogICMgQXBwZW5kIGFueSBlcnJvcnMgdG8gdGhlIGNv
bmZpZy5sb2cuCiAgY2F0IG91dC9jb25mdGVzdC5lcnIgMT4mNQogIGx0X2N2
X2NvbXBpbGVyX2Nfbz1ubwpmaQpDRkxBR1M9IiRzYXZlX0NGTEFHUyIKY2ht
b2QgdSt3IC4KJHJtIGNvbmZ0ZXN0KiBvdXQvKgpybWRpciBvdXQKY2QgLi4K
cm1kaXIgY29uZnRlc3QKJHJtIC1yIGNvbmZ0ZXN0IDI+L2Rldi9udWxsCgpm
aQoKY29tcGlsZXJfY19vPSRsdF9jdl9jb21waWxlcl9jX28KZWNobyAiJGFz
X21lOiRMSU5FTk86IHJlc3VsdDogJGNvbXBpbGVyX2NfbyIgPiY1CmVjaG8g
IiR7RUNIT19UfSRjb21waWxlcl9jX28iID4mNgoKaWYgdGVzdCB4IiRjb21w
aWxlcl9jX28iID0geCJ5ZXMiOyB0aGVuCiAgIyBDaGVjayB0byBzZWUgaWYg
d2UgY2FuIHdyaXRlIHRvIGEgLmxvCiAgZWNobyAiJGFzX21lOiRMSU5FTk86
IGNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLmxv
IiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBpZiAkY29tcGlsZXIgc3Vw
cG9ydHMgLWMgLW8gZmlsZS5sby4uLiAkRUNIT19DIiA+JjYKICBpZiB0ZXN0
ICIke2x0X2N2X2NvbXBpbGVyX29fbG8rc2V0fSIgPSBzZXQ7IHRoZW4KICBl
Y2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCgogIGx0
X2N2X2NvbXBpbGVyX29fbG89bm8KICBzYXZlX0NGTEFHUz0iJENGTEFHUyIK
ICBDRkxBR1M9IiRDRkxBR1MgLWMgLW8gY29uZnRlc3QubG8iCiAgc2F2ZV9v
YmpleHQ9IiRhY19vYmpleHQiCiAgYWNfb2JqZXh0PWxvCiAgY2F0ID5jb25m
dGVzdC4kYWNfZXh0IDw8X0FDRU9GCiNsaW5lICRMSU5FTk8gImNvbmZpZ3Vy
ZSIKLyogY29uZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+
PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9B
Q0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCgppbnQKbWFpbiAoKQp7Cmlu
dCBzb21lX3ZhcmlhYmxlID0gMDsKICA7CiAgcmV0dXJuIDA7Cn0KX0FDRU9G
CnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKaWYgeyAoZXZhbCBlY2hvICIk
YXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CiAgKGV2YWwg
JGFjX2NvbXBpbGUpIDI+JjUKICBhY19zdGF0dXM9JD8KICBlY2hvICIkYXNf
bWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFj
X3N0YXR1cyk7IH0gJiYKICAgICAgICAgeyBhY190cnk9J3Rlc3QgLXMgY29u
ZnRlc3QuJGFjX29iamV4dCcKICB7IChldmFsIGVjaG8gIiRhc19tZTokTElO
RU5POiBcIiRhY190cnlcIiIpID4mNQogIChldmFsICRhY190cnkpIDI+JjUK
ICBhY19zdGF0dXM9JD8KICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0g
JGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRo
ZW4KICAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdu
b3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKICAgICMgU28gc2F5
IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncwogICAgaWYgdGVzdCAtcyBjb25m
dGVzdC5lcnI7IHRoZW4KICAgICAgbHRfY3ZfY29tcGlsZXJfb19sbz1ubwog
ICAgZWxzZQogICAgICBsdF9jdl9jb21waWxlcl9vX2xvPXllcwogICAgZmkK
CmVsc2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4m
NQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgpmaQpybSAt
ZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKICBhY19v
YmpleHQ9IiRzYXZlX29iamV4dCIKICBDRkxBR1M9IiRzYXZlX0NGTEFHUyIK
CmZpCgogIGNvbXBpbGVyX29fbG89JGx0X2N2X2NvbXBpbGVyX29fbG8KICBl
Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkY29tcGlsZXJfb19sbyIg
PiY1CmVjaG8gIiR7RUNIT19UfSRjb21waWxlcl9vX2xvIiA+JjYKZWxzZQog
IGNvbXBpbGVyX29fbG89bm8KZmkKIyMKIyMgRU5EIEZJWE1FCgojIyBGSVhN
RTogdGhpcyBzaG91bGQgYmUgYSBzZXBhcmF0ZSBtYWNybwojIwojIENoZWNr
IHRvIHNlZSBpZiB3ZSBjYW4gZG8gaGFyZCBsaW5rcyB0byBsb2NrIHNvbWUg
ZmlsZXMgaWYgbmVlZGVkCmhhcmRfbGlua3M9Im5vdHRlc3RlZCIKaWYgdGVz
dCAiJGNvbXBpbGVyX2NfbyIgPSBubyAmJiB0ZXN0ICIkbmVlZF9sb2NrcyIg
IT0gbm87IHRoZW4KICAjIGRvIG5vdCBvdmVyd3JpdGUgdGhlIHZhbHVlIG9m
IG5lZWRfbG9ja3MgcHJvdmlkZWQgYnkgdGhlIHVzZXIKICBlY2hvICIkYXNf
bWU6JExJTkVOTzogY2hlY2tpbmcgaWYgd2UgY2FuIGxvY2sgd2l0aCBoYXJk
IGxpbmtzIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBpZiB3ZSBjYW4g
bG9jayB3aXRoIGhhcmQgbGlua3MuLi4gJEVDSE9fQyIgPiY2CiAgaGFyZF9s
aW5rcz15ZXMKICAkcm0gY29uZnRlc3QqCiAgbG4gY29uZnRlc3QuYSBjb25m
dGVzdC5iIDI+L2Rldi9udWxsICYmIGhhcmRfbGlua3M9bm8KICB0b3VjaCBj
b25mdGVzdC5hCiAgbG4gY29uZnRlc3QuYSBjb25mdGVzdC5iIDI+JjUgfHwg
aGFyZF9saW5rcz1ubwogIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPi9k
ZXYvbnVsbCAmJiBoYXJkX2xpbmtzPW5vCiAgZWNobyAiJGFzX21lOiRMSU5F
Tk86IHJlc3VsdDogJGhhcmRfbGlua3MiID4mNQplY2hvICIke0VDSE9fVH0k
aGFyZF9saW5rcyIgPiY2CiAgaWYgdGVzdCAiJGhhcmRfbGlua3MiID0gbm87
IHRoZW4KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IFxg
JENDJyBkb2VzIG5vdCBzdXBwb3J0IFxgLWMgLW8nLCBzbyBcYG1ha2UgLWon
IG1heSBiZSB1bnNhZmUiID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6IFxg
JENDJyBkb2VzIG5vdCBzdXBwb3J0IFxgLWMgLW8nLCBzbyBcYG1ha2UgLWon
IG1heSBiZSB1bnNhZmUiID4mMjt9CiAgICBuZWVkX2xvY2tzPXdhcm4KICBm
aQplbHNlCiAgbmVlZF9sb2Nrcz1ubwpmaQojIwojIyBFTkQgRklYTUUKCiMj
IEZJWE1FOiB0aGlzIHNob3VsZCBiZSBhIHNlcGFyYXRlIG1hY3JvCiMjCmlm
IHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCiAgIyBDaGVjayB0byBzZWUgaWYg
b3B0aW9ucyAtZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zIGFyZSBzdXBwb3J0
ZWQgYnkgY29tcGlsZXIKICBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp
bmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1mbm8tcnR0aSAtZm5vLWV4Y2Vw
dGlvbnMiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGlmICRjb21waWxl
ciBzdXBwb3J0cyAtZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zLi4uICRFQ0hP
X0MiID4mNgogIGVjaG8gImludCBzb21lX3ZhcmlhYmxlID0gMDsiID4gY29u
ZnRlc3QuJGFjX2V4dAogIHNhdmVfQ0ZMQUdTPSIkQ0ZMQUdTIgogIENGTEFH
Uz0iJENGTEFHUyAtZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zIC1jIGNvbmZ0
ZXN0LiRhY19leHQiCiAgY29tcGlsZXJfcnR0aV9leGNlcHRpb25zPW5vCiAg
Y2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCiNsaW5lICRMSU5FTk8g
ImNvbmZpZ3VyZSIKLyogY29uZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29u
ZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRlc3QuJGFj
X2V4dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCgppbnQKbWFp
biAoKQp7CmludCBzb21lX3ZhcmlhYmxlID0gMDsKICA7CiAgcmV0dXJuIDA7
Cn0KX0FDRU9GCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKaWYgeyAoZXZh
bCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1
CiAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKICBhY19zdGF0dXM9JD8KICBl
Y2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAg
KGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKICAgICAgICAgeyBhY190cnk9J3Rl
c3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKICB7IChldmFsIGVjaG8gIiRh
c19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQogIChldmFsICRhY190
cnkpIDI+JjUKICBhY19zdGF0dXM9JD8KICBlY2hvICIkYXNfbWU6JExJTkVO
TzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7
IH07IH07IHRoZW4KICAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2Fy
biBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKICAg
ICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncwogICAgaWYgdGVz
dCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KICAgICAgY29tcGlsZXJfcnR0aV9l
eGNlcHRpb25zPW5vCiAgICBlbHNlCiAgICAgIGNvbXBpbGVyX3J0dGlfZXhj
ZXB0aW9ucz15ZXMKICAgIGZpCgplbHNlCiAgZWNobyAiJGFzX21lOiBmYWls
ZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4k
YWNfZXh0ID4mNQoKZmkKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25m
dGVzdC4kYWNfZXh0CiAgQ0ZMQUdTPSIkc2F2ZV9DRkxBR1MiCiAgZWNobyAi
JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGNvbXBpbGVyX3J0dGlfZXhjZXB0
aW9ucyIgPiY1CmVjaG8gIiR7RUNIT19UfSRjb21waWxlcl9ydHRpX2V4Y2Vw
dGlvbnMiID4mNgoKICBpZiB0ZXN0ICIkY29tcGlsZXJfcnR0aV9leGNlcHRp
b25zIiA9ICJ5ZXMiOyB0aGVuCiAgICBub19idWlsdGluX2ZsYWc9JyAtZm5v
LWJ1aWx0aW4gLWZuby1ydHRpIC1mbm8tZXhjZXB0aW9ucycKICBlbHNlCiAg
ICBub19idWlsdGluX2ZsYWc9JyAtZm5vLWJ1aWx0aW4nCiAgZmkKZmkKIyMK
IyMgRU5EIEZJWE1FCgojIyBGSVhNRTogdGhpcyBzaG91bGQgYmUgYSBzZXBh
cmF0ZSBtYWNybwojIwojIFNlZSBpZiB0aGUgbGlua2VyIHN1cHBvcnRzIGJ1
aWxkaW5nIHNoYXJlZCBsaWJyYXJpZXMuCmVjaG8gIiRhc19tZTokTElORU5P
OiBjaGVja2luZyB3aGV0aGVyIHRoZSBsaW5rZXIgKCRMRCkgc3VwcG9ydHMg
c2hhcmVkIGxpYnJhcmllcyIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcg
d2hldGhlciB0aGUgbGlua2VyICgkTEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJy
YXJpZXMuLi4gJEVDSE9fQyIgPiY2CgphbGxvd191bmRlZmluZWRfZmxhZz0K
bm9fdW5kZWZpbmVkX2ZsYWc9Cm5lZWRfbGliX3ByZWZpeD11bmtub3duCm5l
ZWRfdmVyc2lvbj11bmtub3duCiMgd2hlbiB5b3Ugc2V0IG5lZWRfdmVyc2lv
biB0byBubywgbWFrZSBzdXJlIGl0IGRvZXMgbm90IGNhdXNlIC1zZXRfdmVy
c2lvbgojIGZsYWdzIHRvIGJlIGxlZnQgd2l0aG91dCBhcmd1bWVudHMKYXJj
aGl2ZV9jbWRzPQphcmNoaXZlX2V4cHN5bV9jbWRzPQpvbGRfYXJjaGl2ZV9m
cm9tX25ld19jbWRzPQpvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcz0K
ZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPQp3aG9sZV9hcmNoaXZlX2ZsYWdf
c3BlYz0KdGhyZWFkX3NhZmVfZmxhZ19zcGVjPQpoYXJkY29kZV9pbnRvX2xp
YnM9bm8KaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0KaGFyZGNvZGVfbGli
ZGlyX3NlcGFyYXRvcj0KaGFyZGNvZGVfZGlyZWN0PW5vCmhhcmRjb2RlX21p
bnVzX0w9bm8KaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj11bnN1cHBvcnRlZApy
dW5wYXRoX3Zhcj0KbGlua19hbGxfZGVwbGlicz11bmtub3duCmFsd2F5c19l
eHBvcnRfc3ltYm9scz1ubwpleHBvcnRfc3ltYm9sc19jbWRzPSckTk0gJGxp
Ym9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8IHNl
ZCAnXCcncy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3lt
Ym9scycKIyBpbmNsdWRlX2V4cHN5bXMgc2hvdWxkIGJlIGEgbGlzdCBvZiBz
cGFjZS1zZXBhcmF0ZWQgc3ltYm9scyB0byBiZSAqYWx3YXlzKgojIGluY2x1
ZGVkIGluIHRoZSBzeW1ib2wgbGlzdAppbmNsdWRlX2V4cHN5bXM9CiMgZXhj
bHVkZV9leHBzeW1zIGNhbiBiZSBhbiBlZ3JlcCByZWd1bGFyIGV4cHJlc3Np
b24gb2Ygc3ltYm9scyB0byBleGNsdWRlCiMgaXQgd2lsbCBiZSB3cmFwcGVk
IGJ5IGAgKCcgYW5kIGApJCcsIHNvIG9uZSBtdXN0IG5vdCBtYXRjaCBiZWdp
bm5pbmcgb3IKIyBlbmQgb2YgbGluZS4gIEV4YW1wbGU6IGBhfGJjfC4qZC4q
JyB3aWxsIGV4Y2x1ZGUgdGhlIHN5bWJvbHMgYGEnIGFuZCBgYmMnLAojIGFz
IHdlbGwgYXMgYW55IHN5bWJvbCB0aGF0IGNvbnRhaW5zIGBkJy4KZXhjbHVk
ZV9leHBzeW1zPSJfR0xPQkFMX09GRlNFVF9UQUJMRV8iCiMgQWx0aG91Z2gg
X0dMT0JBTF9PRkZTRVRfVEFCTEVfIGlzIGEgdmFsaWQgc3ltYm9sIEMgbmFt
ZSwgbW9zdCBhLm91dAojIHBsYXRmb3JtcyAoYWIpdXNlIGl0IGluIFBJQyBj
b2RlLCBidXQgdGhlaXIgbGlua2VycyBnZXQgY29uZnVzZWQgaWYKIyB0aGUg
c3ltYm9sIGlzIGV4cGxpY2l0bHkgcmVmZXJlbmNlZC4gIFNpbmNlIHBvcnRh
YmxlIGNvZGUgY2Fubm90CiMgcmVseSBvbiB0aGlzIHN5bWJvbCBuYW1lLCBp
dCdzIHByb2JhYmx5IGZpbmUgdG8gbmV2ZXIgaW5jbHVkZSBpdCBpbgojIHBy
ZWxvYWRlZCBzeW1ib2wgdGFibGVzLgpleHRyYWN0X2V4cHN5bXNfY21kcz0K
CmNhc2UgJGhvc3Rfb3MgaW4KY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqKQog
ICMgRklYTUU6IHRoZSBNU1ZDKysgcG9ydCBoYXNuJ3QgYmVlbiB0ZXN0ZWQg
aW4gYSBsb29vb25nIHRpbWUKICAjIFdoZW4gbm90IHVzaW5nIGdjYywgd2Ug
Y3VycmVudGx5IGFzc3VtZSB0aGF0IHdlIGFyZSB1c2luZwogICMgTWljcm9z
b2Z0IFZpc3VhbCBDKysuCiAgaWYgdGVzdCAiJEdDQyIgIT0geWVzOyB0aGVu
CiAgICB3aXRoX2dudV9sZD1ubwogIGZpCiAgOzsKb3BlbmJzZCopCiAgd2l0
aF9nbnVfbGQ9bm8KICA7Owplc2FjCgpsZF9zaGxpYnM9eWVzCmlmIHRlc3Qg
IiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KICAjIElmIGFyY2hpdmVfY21k
cyBydW5zIExELCBub3QgQ0MsIHdsYXJjIHNob3VsZCBiZSBlbXB0eQogIHds
YXJjPScke3dsfScKCiAgIyBTZWUgaWYgR05VIGxkIHN1cHBvcnRzIHNoYXJl
ZCBsaWJyYXJpZXMuCiAgY2FzZSAkaG9zdF9vcyBpbgogIGFpeDMqIHwgYWl4
NCogfCBhaXg1KikKICAgICMgT24gQUlYLCB0aGUgR05VIGxpbmtlciBpcyB2
ZXJ5IGJyb2tlbgogICAgIyBOb3RlOkNoZWNrIEdOVSBsaW5rZXIgb24gQUlY
IDUtSUE2NCB3aGVuL2lmIGl0IGJlY29tZXMgYXZhaWxhYmxlLgogICAgbGRf
c2hsaWJzPW5vCiAgICBjYXQgPDxFT0YgMT4mMgoKKioqIFdhcm5pbmc6IHRo
ZSBHTlUgbGlua2VyLCBhdCBsZWFzdCB1cCB0byByZWxlYXNlIDIuOS4xLCBp
cyByZXBvcnRlZAoqKiogdG8gYmUgdW5hYmxlIHRvIHJlbGlhYmx5IGNyZWF0
ZSBzaGFyZWQgbGlicmFyaWVzIG9uIEFJWC4KKioqIFRoZXJlZm9yZSwgbGli
dG9vbCBpcyBkaXNhYmxpbmcgc2hhcmVkIGxpYnJhcmllcyBzdXBwb3J0LiAg
SWYgeW91CioqKiByZWFsbHkgY2FyZSBmb3Igc2hhcmVkIGxpYnJhcmllcywg
eW91IG1heSB3YW50IHRvIG1vZGlmeSB5b3VyIFBBVEgKKioqIHNvIHRoYXQg
YSBub24tR05VIGxpbmtlciBpcyBmb3VuZCwgYW5kIHRoZW4gcmVzdGFydC4K
CkVPRgogICAgOzsKCiAgYW1pZ2FvcyopCiAgICBhcmNoaXZlX2NtZHM9JyRy
bSAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRlY2hvICIjZGVm
aW5lIE5BTUUgJGxpYm5hbWUiID4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJh
cnkuZGF0YX4kZWNobyAiI2RlZmluZSBMSUJSQVJZX0lEIDEiID4+ICRvdXRw
dXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JGVjaG8gIiNkZWZpbmUgVkVS
U0lPTiAkbWFqb3IiID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRh
dGF+JGVjaG8gIiNkZWZpbmUgUkVWSVNJT04gJHJldmlzaW9uIiA+PiAkb3V0
cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRBUiAkQVJfRkxBR1MgJGxp
YiAkbGlib2Jqc34kUkFOTElCICRsaWJ+KGNkICRvdXRwdXRfb2JqZGlyICYm
IGEyaXhsaWJyYXJ5IC0zMiknCiAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19z
cGVjPSctTCRsaWJkaXInCiAgICBoYXJkY29kZV9taW51c19MPXllcwoKICAg
ICMgU2FtdWVsIEEuIEZhbHZvIElJIDxrYzV0amFAZG9scGhpbi5vcGVucHJv
amVjdHMubmV0PiByZXBvcnRzCiAgICAjIHRoYXQgdGhlIHNlbWFudGljcyBv
ZiBkeW5hbWljIGxpYnJhcmllcyBvbiBBbWlnYU9TLCBhdCBsZWFzdCB1cAog
ICAgIyB0byB2ZXJzaW9uIDQsIGlzIHRvIHNoYXJlIGRhdGEgYW1vbmcgbXVs
dGlwbGUgcHJvZ3JhbXMgbGlua2VkCiAgICAjIHdpdGggdGhlIHNhbWUgZHlu
YW1pYyBsaWJyYXJ5LiAgU2luY2UgdGhpcyBkb2Vzbid0IG1hdGNoIHRoZQog
ICAgIyBiZWhhdmlvciBvZiBzaGFyZWQgbGlicmFyaWVzIG9uIG90aGVyIHBs
YXRmb3Jtcywgd2UgY2FuIHVzZQogICAgIyB0aGVtLgogICAgbGRfc2hsaWJz
PW5vCiAgICA7OwoKICBiZW9zKikKICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8
IGVncmVwICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251
bGw7IHRoZW4KICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9dW5zdXBwb3J0
ZWQKICAgICAgIyBKb3NlcGggQmVja2VuYmFjaCA8anJiM0BiZXN0LmNvbT4g
c2F5cyBzb21lIHJlbGVhc2VzIG9mIGdjYwogICAgICAjIHN1cHBvcnQgLS11
bmRlZmluZWQuICBUaGlzIGRlc2VydmVzIHNvbWUgaW52ZXN0aWdhdGlvbi4g
IEZJWE1FCiAgICAgIGFyY2hpdmVfY21kcz0nJENDIC1ub3N0YXJ0ICRsaWJv
YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHds
JHNvbmFtZSAtbyAkbGliJwogICAgZWxzZQogICAgICBsZF9zaGxpYnM9bm8K
ICAgIGZpCiAgICA7OwoKICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiopCiAg
ICAjIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMgaXMgYWN0dWFsbHkgbWVh
bmluZ2xlc3MsIGFzIHRoZXJlIGlzCiAgICAjIG5vIHNlYXJjaCBwYXRoIGZv
ciBETExzLgogICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwkbGli
ZGlyJwogICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9dW5zdXBwb3J0ZWQKICAg
IGFsd2F5c19leHBvcnRfc3ltYm9scz15ZXMKCiAgICBleHRyYWN0X2V4cHN5
bXNfY21kcz0ndGVzdCAtZiAkb3V0cHV0X29iamRpci9pbXBnZW4uYyB8fCBc
CiAgICAgIHNlZCAtZSAiL14jIFwvXCogaW1wZ2VuXC5jIHN0YXJ0cyBoZXJl
IFwqXC8vLC9eIyBcL1wqIGltcGdlbi5jIGVuZHMgaGVyZSBcKlwvLyB7IHMv
XiMgLy87cy9eIyAqJC8vOyBwOyB9IiAtZSBkIDwgJCcnMCA+ICRvdXRwdXRf
b2JqZGlyL2ltcGdlbi5jfgogICAgICB0ZXN0IC1mICRvdXRwdXRfb2JqZGly
L2ltcGdlbi5leGUgfHwgKGNkICRvdXRwdXRfb2JqZGlyICYmIFwKICAgICAg
aWYgdGVzdCAieCRIT1NUX0NDIiAhPSAieCIgOyB0aGVuICRIT1NUX0NDIC1v
IGltcGdlbiBpbXBnZW4uYyA7IFwKICAgICAgZWxzZSAkQ0MgLW8gaW1wZ2Vu
IGltcGdlbi5jIDsgZmkpfgogICAgICAkb3V0cHV0X29iamRpci9pbXBnZW4g
JGRpci8kc29yb290ID4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS1kZWYnCgog
ICAgb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHM9JyRETExUT09MIC0t
YXM9JEFTIC0tZGxsbmFtZSAkc29uYW1lIC0tZGVmICRvdXRwdXRfb2JqZGly
LyRzb25hbWUtZGVmIC0tb3V0cHV0LWxpYiAkb3V0cHV0X29iamRpci8kbmV3
bGliJwoKICAgICMgY3lnd2luIGFuZCBtaW5ndyBkbGxzIGhhdmUgZGlmZmVy
ZW50IGVudHJ5IHBvaW50cyBhbmQgc2V0cyBvZiBzeW1ib2xzCiAgICAjIHRv
IGV4Y2x1ZGUuCiAgICAjIEZJWE1FOiB3aGF0IGFib3V0IHZhbHVlcyBmb3Ig
TVNWQz8KICAgIGRsbF9lbnRyeT1fX2N5Z3dpbl9kbGxfZW50cnlAMTIKICAg
IGRsbF9leGNsdWRlX3N5bWJvbHM9RGxsTWFpbkAxMixfY3lnd2luX2RsbF9l
bnRyeUAxMixfY3lnd2luX25vbmN5Z3dpbl9kbGxfZW50cnlAMTJ+CiAgICBj
YXNlICRob3N0X29zIGluCiAgICBtaW5ndyopCiAgICAgICMgbWluZ3cgdmFs
dWVzCiAgICAgIGRsbF9lbnRyeT1fRGxsTWFpbkNSVFN0YXJ0dXBAMTIKICAg
ICAgZGxsX2V4Y2x1ZGVfc3ltYm9scz1EbGxNYWluQDEyLERsbE1haW5DUlRT
dGFydHVwQDEyLERsbEVudHJ5UG9pbnRAMTJ+CiAgICAgIDs7CiAgICBlc2Fj
CgogICAgIyBtaW5ndyBhbmQgY3lnd2luIGRpZmZlciwgYW5kIGl0J3Mgc2lt
cGxlc3QgdG8ganVzdCBleGNsdWRlIHRoZSB1bmlvbgogICAgIyBvZiB0aGUg
dHdvIHN5bWJvbCBzZXRzLgogICAgZGxsX2V4Y2x1ZGVfc3ltYm9scz1EbGxN
YWluQDEyLF9jeWd3aW5fZGxsX2VudHJ5QDEyLF9jeWd3aW5fbm9uY3lnd2lu
X2RsbF9lbnRyeUAxMixEbGxNYWluQ1JUU3RhcnR1cEAxMixEbGxFbnRyeVBv
aW50QDEyCgogICAgIyByZWNlbnQgY3lnd2luIGFuZCBtaW5ndyBzeXN0ZW1z
IHN1cHBseSBhIHN0dWIgRGxsTWFpbiB3aGljaCB0aGUgdXNlcgogICAgIyBj
YW4gb3ZlcnJpZGUsIGJ1dCBvbiBvbGRlciBzeXN0ZW1zIHdlIGhhdmUgdG8g
c3VwcGx5IG9uZSAoaW4gbHRkbGwuYykKICAgIGlmIHRlc3QgIngkbHRfY3Zf
bmVlZF9kbGxtYWluIiA9ICJ4eWVzIjsgdGhlbgogICAgICBsdGRsbF9vYmo9
JyRvdXRwdXRfb2JqZGlyLyRzb25hbWUtbHRkbGwuJyIkYWNfb2JqZXh0ICIK
ICAgICAgbHRkbGxfY21kcz0ndGVzdCAtZiAkb3V0cHV0X29iamRpci8kc29u
YW1lLWx0ZGxsLmMgfHwgc2VkIC1lICIvXiMgXC9cKiBsdGRsbFwuYyBzdGFy
dHMgaGVyZSBcKlwvLywvXiMgXC9cKiBsdGRsbC5jIGVuZHMgaGVyZSBcKlwv
LyB7IHMvXiMgLy87IHA7IH0iIC1lIGQgPCAkJycwID4gJG91dHB1dF9vYmpk
aXIvJHNvbmFtZS1sdGRsbC5jfgoJdGVzdCAtZiAkb3V0cHV0X29iamRpci8k
c29uYW1lLWx0ZGxsLiRhY19vYmpleHQgfHwgKGNkICRvdXRwdXRfb2JqZGly
ICYmICRDQyAtYyAkc29uYW1lLWx0ZGxsLmMpficKICAgIGVsc2UKICAgICAg
bHRkbGxfb2JqPQogICAgICBsdGRsbF9jbWRzPQogICAgZmkKCiAgICAjIEV4
dHJhY3QgdGhlIHN5bWJvbCBleHBvcnQgbGlzdCBmcm9tIGFuIGAtLWV4cG9y
dC1hbGwnIGRlZiBmaWxlLAogICAgIyB0aGVuIHJlZ2VuZXJhdGUgdGhlIGRl
ZiBmaWxlIGZyb20gdGhlIHN5bWJvbCBleHBvcnQgbGlzdCwgc28gdGhhdAog
ICAgIyB0aGUgY29tcGlsZWQgZGxsIG9ubHkgZXhwb3J0cyB0aGUgc3ltYm9s
IGV4cG9ydCBsaXN0LgogICAgIyBCZSBjYXJlZnVsIG5vdCB0byBzdHJpcCB0
aGUgREFUQSB0YWcgbGVmdCBiZSBuZXdlciBkbGx0b29scy4KICAgIGV4cG9y
dF9zeW1ib2xzX2NtZHM9IiRsdGRsbF9jbWRzIicKICAgICAgJERMTFRPT0wg
LS1leHBvcnQtYWxsIC0tZXhjbHVkZS1zeW1ib2xzICckZGxsX2V4Y2x1ZGVf
c3ltYm9scycgLS1vdXRwdXQtZGVmICRvdXRwdXRfb2JqZGlyLyRzb25hbWUt
ZGVmICckbHRkbGxfb2JqJyRsaWJvYmpzICRjb252ZW5pZW5jZX4KICAgICAg
c2VkIC1lICIxLC9FWFBPUlRTL2QiIC1lICJzLyBAIFswLTldKi8vIiAtZSAi
cy8gKjsuKiQvLyIgPCAkb3V0cHV0X29iamRpci8kc29uYW1lLWRlZiA+ICRl
eHBvcnRfc3ltYm9scycKCiAgICAjIElmIHRoZSBleHBvcnQtc3ltYm9scyBm
aWxlIGFscmVhZHkgaXMgYSAuZGVmIGZpbGUgKDFzdCBsaW5lCiAgICAjIGlz
IEVYUE9SVFMpLCB1c2UgaXQgYXMgaXMuCiAgICAjIElmIERBVEEgdGFncyBm
cm9tIGEgcmVjZW50IGRsbHRvb2wgYXJlIHByZXNlbnQsIGhvbm91ciB0aGVt
IQogICAgYXJjaGl2ZV9leHBzeW1fY21kcz0naWYgdGVzdCAieGBzZWQgMXEg
JGV4cG9ydF9zeW1ib2xzYCIgPSB4RVhQT1JUUzsgdGhlbgoJY3AgJGV4cG9y
dF9zeW1ib2xzICRvdXRwdXRfb2JqZGlyLyRzb25hbWUtZGVmOwogICAgICBl
bHNlCgllY2hvIEVYUE9SVFMgPiAkb3V0cHV0X29iamRpci8kc29uYW1lLWRl
ZjsKCV9sdF9oaW50PTE7CgljYXQgJGV4cG9ydF9zeW1ib2xzIHwgd2hpbGUg
cmVhZCBzeW1ib2w7IGRvCgkgc2V0IGR1bW15IFwkc3ltYm9sOwoJIGNhc2Ug
XCQjIGluCgkgICAyKSBlY2hvICIgICBcJDIgQCBcJF9sdF9oaW50IDsgIiA+
PiAkb3V0cHV0X29iamRpci8kc29uYW1lLWRlZjs7CgkgICA0KSBlY2hvICIg
ICBcJDIgXCQzIFwkNCA7ICIgPj4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS1k
ZWY7IF9sdF9oaW50PWBleHByIFwkX2x0X2hpbnQgLSAxYDs7CgkgICAqKSBl
Y2hvICIgICAgIFwkMiBAIFwkX2x0X2hpbnQgXCQzIDsgIiA+PiAkb3V0cHV0
X29iamRpci8kc29uYW1lLWRlZjs7CgkgZXNhYzsKCSBfbHRfaGludD1gZXhw
ciAxICsgXCRfbHRfaGludGA7Cglkb25lOwogICAgICBmaX4KICAgICAgJyIk
bHRkbGxfY21kcyInCiAgICAgICRDQyAtV2wsLS1iYXNlLWZpbGUsJG91dHB1
dF9vYmpkaXIvJHNvbmFtZS1iYXNlICckbHRfY3ZfY2NfZGxsX3N3aXRjaCcg
LVdsLC1lLCckZGxsX2VudHJ5JyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1l
ICckbHRkbGxfb2JqJyRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn
c34KICAgICAgJERMTFRPT0wgLS1hcz0kQVMgLS1kbGxuYW1lICRzb25hbWUg
LS1leGNsdWRlLXN5bWJvbHMgJyRkbGxfZXhjbHVkZV9zeW1ib2xzJyAtLWRl
ZiAkb3V0cHV0X29iamRpci8kc29uYW1lLWRlZiAtLWJhc2UtZmlsZSAkb3V0
cHV0X29iamRpci8kc29uYW1lLWJhc2UgLS1vdXRwdXQtZXhwICRvdXRwdXRf
b2JqZGlyLyRzb25hbWUtZXhwfgogICAgICAkQ0MgLVdsLC0tYmFzZS1maWxl
LCRvdXRwdXRfb2JqZGlyLyRzb25hbWUtYmFzZSAkb3V0cHV0X29iamRpci8k
c29uYW1lLWV4cCAnJGx0X2N2X2NjX2RsbF9zd2l0Y2gnIC1XbCwtZSwnJGRs
bF9lbnRyeScgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAnJGx0ZGxsX29i
aickbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3N+CiAgICAgICRE
TExUT09MIC0tYXM9JEFTIC0tZGxsbmFtZSAkc29uYW1lIC0tZXhjbHVkZS1z
eW1ib2xzICckZGxsX2V4Y2x1ZGVfc3ltYm9scycgLS1kZWYgJG91dHB1dF9v
YmpkaXIvJHNvbmFtZS1kZWYgLS1iYXNlLWZpbGUgJG91dHB1dF9vYmpkaXIv
JHNvbmFtZS1iYXNlIC0tb3V0cHV0LWV4cCAkb3V0cHV0X29iamRpci8kc29u
YW1lLWV4cCAtLW91dHB1dC1saWIgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUu
ZGxsLmF+CiAgICAgICRDQyAkb3V0cHV0X29iamRpci8kc29uYW1lLWV4cCAn
JGx0X2N2X2NjX2RsbF9zd2l0Y2gnIC1XbCwtZSwnJGRsbF9lbnRyeScgLW8g
JG91dHB1dF9vYmpkaXIvJHNvbmFtZSAnJGx0ZGxsX29iaickbGlib2JqcyAk
ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCiAgICA7OwoKICBuZXRic2QqKQog
ICAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX18g
Pi9kZXYvbnVsbDsgdGhlbgogICAgICBhcmNoaXZlX2NtZHM9JyRMRCAtQnNo
YXJlYWJsZSAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC1vICRs
aWInCiAgICAgIHdsYXJjPQogICAgZWxzZQogICAgICBhcmNoaXZlX2NtZHM9
JyRDQyAtc2hhcmVkIC1ub2RlZmF1bHRsaWJzICRsaWJvYmpzICRkZXBsaWJz
ICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAk
bGliJwogICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0MgLXNoYXJlZCAt
bm9kZWZhdWx0bGlicyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh
Z3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJv
bHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKICAgIGZpCiAg
ICA7OwoKICBzb2xhcmlzKiB8IHN5c3Y1KikKICAgIGlmICRMRCAtdiAyPiYx
IHwgZWdyZXAgJ0JGRCAyXC44JyA+IC9kZXYvbnVsbDsgdGhlbgogICAgICBs
ZF9zaGxpYnM9bm8KICAgICAgY2F0IDw8RU9GIDE+JjIKCioqKiBXYXJuaW5n
OiBUaGUgcmVsZWFzZXMgMi44Liogb2YgdGhlIEdOVSBsaW5rZXIgY2Fubm90
IHJlbGlhYmx5CioqKiBjcmVhdGUgc2hhcmVkIGxpYnJhcmllcyBvbiBTb2xh
cmlzIHN5c3RlbXMuICBUaGVyZWZvcmUsIGxpYnRvb2wKKioqIGlzIGRpc2Fi
bGluZyBzaGFyZWQgbGlicmFyaWVzIHN1cHBvcnQuICBXZSB1cmdlIHlvdSB0
byB1cGdyYWRlIEdOVQoqKiogYmludXRpbHMgdG8gcmVsZWFzZSAyLjkuMSBv
ciBuZXdlci4gIEFub3RoZXIgb3B0aW9uIGlzIHRvIG1vZGlmeQoqKiogeW91
ciBQQVRIIG9yIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gc28gdGhhdCB0aGUg
bmF0aXZlIGxpbmtlciBpcwoqKiogdXNlZCwgYW5kIHRoZW4gcmVzdGFydC4K
CkVPRgogICAgZWxpZiAkTEQgLS1oZWxwIDI+JjEgfCBlZ3JlcCAnOiBzdXBw
b3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCiAgICAg
IGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMg
JGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRs
aWInCiAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtc2hhcmVkICRs
aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUg
JHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBv
cnRfc3ltYm9scyAtbyAkbGliJwogICAgZWxzZQogICAgICBsZF9zaGxpYnM9
bm8KICAgIGZpCiAgICA7OwoKICBzdW5vczQqKQogICAgYXJjaGl2ZV9jbWRz
PSckTEQgLWFzc2VydCBwdXJlLXRleHQgLUJzaGFyZWFibGUgLW8gJGxpYiAk
bGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwogICAgd2xhcmM9CiAg
ICBoYXJkY29kZV9kaXJlY3Q9eWVzCiAgICBoYXJkY29kZV9zaGxpYnBhdGhf
dmFyPW5vCiAgICA7OwoKICAqKQogICAgaWYgJExEIC0taGVscCAyPiYxIHwg
ZWdyZXAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVs
bDsgdGhlbgogICAgICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJv
YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHds
JHNvbmFtZSAtbyAkbGliJwogICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzPSck
Q0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mg
JHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMt
ZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKICAgIGVsc2UKICAg
ICAgbGRfc2hsaWJzPW5vCiAgICBmaQogICAgOzsKICBlc2FjCgogIGlmIHRl
c3QgIiRsZF9zaGxpYnMiID0geWVzOyB0aGVuCiAgICBydW5wYXRoX3Zhcj1M
RF9SVU5fUEFUSAogICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3
bH0tLXJwYXRoICR7d2x9JGxpYmRpcicKICAgIGV4cG9ydF9keW5hbWljX2Zs
YWdfc3BlYz0nJHt3bH0tLWV4cG9ydC1keW5hbWljJwogICAgY2FzZSAkaG9z
dF9vcyBpbgogICAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqKQogICAgICAj
IGRsbHRvb2wgZG9lc24ndCB1bmRlcnN0YW5kIC0td2hvbGUtYXJjaGl2ZSBl
dC4gYWwuCiAgICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPQogICAgICA7
OwogICAgKikKICAgICAgIyBhbmNpZW50IEdOVSBsZCBkaWRuJ3Qgc3VwcG9y
dCAtLXdob2xlLWFyY2hpdmUgZXQuIGFsLgogICAgICBpZiAkTEQgLS1oZWxw
IDI+JjEgfCBlZ3JlcCAnbm8td2hvbGUtYXJjaGl2ZScgPiAvZGV2L251bGw7
IHRoZW4KCXdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSIkd2xhcmMiJy0td2hv
bGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAnIiR3bGFyYyInLS1uby13aG9sZS1h
cmNoaXZlJwogICAgICBlbHNlCgl3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0K
ICAgICAgZmkKICAgICAgOzsKICAgIGVzYWMKICBmaQplbHNlCiAgIyBQT1JU
TUUgZmlsbCBpbiBhIGRlc2NyaXB0aW9uIG9mIHlvdXIgc3lzdGVtJ3MgbGlu
a2VyIChub3QgR05VIGxkKQogIGNhc2UgJGhvc3Rfb3MgaW4KICBhaXgzKikK
ICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnPXVuc3VwcG9ydGVkCiAgICBhbHdh
eXNfZXhwb3J0X3N5bWJvbHM9eWVzCiAgICBhcmNoaXZlX2V4cHN5bV9jbWRz
PSckTEQgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVw
bGlicyAkbGlua2VyX2ZsYWdzIC1iRTokZXhwb3J0X3N5bWJvbHMgLVQ1MTIg
LUg1MTIgLWJNOlNSRX4kQVIgJEFSX0ZMQUdTICRsaWIgJG91dHB1dF9vYmpk
aXIvJHNvbmFtZScKICAgICMgTm90ZTogdGhpcyBsaW5rZXIgaGFyZGNvZGVz
IHRoZSBkaXJlY3RvcmllcyBpbiBMSUJQQVRIIGlmIHRoZXJlCiAgICAjIGFy
ZSBubyBkaXJlY3RvcmllcyBzcGVjaWZpZWQgYnkgLUwuCiAgICBoYXJkY29k
ZV9taW51c19MPXllcwogICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMgJiYgdGVz
dCAteiAiJGxpbmtfc3RhdGljX2ZsYWciOyB0aGVuCiAgICAgICMgTmVpdGhl
ciBkaXJlY3QgaGFyZGNvZGluZyBub3Igc3RhdGljIGxpbmtpbmcgaXMgc3Vw
cG9ydGVkIHdpdGggYQogICAgICAjIGJyb2tlbiBjb2xsZWN0Mi4KICAgICAg
aGFyZGNvZGVfZGlyZWN0PXVuc3VwcG9ydGVkCiAgICBmaQogICAgOzsKCiAg
YWl4NCogfCBhaXg1KikKICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0
OyB0aGVuCiAgICAgICMgT24gSUE2NCwgdGhlIGxpbmtlciBkb2VzIHJ1biB0
aW1lIGxpbmtpbmcgYnkgZGVmYXVsdCwgc28gd2UgZG9uJ3QKICAgICAgIyBo
YXZlIHRvIGRvIGFueXRoaW5nIHNwZWNpYWwuCiAgICAgIGFpeF91c2VfcnVu
dGltZWxpbmtpbmc9bm8KICAgICAgZXhwX3N5bV9mbGFnPSctQmV4cG9ydCcK
ICAgICAgbm9fZW50cnlfZmxhZz0iIgogICAgZWxzZQogICAgICBhaXhfdXNl
X3J1bnRpbWVsaW5raW5nPW5vCgogICAgICAjIFRlc3QgaWYgd2UgYXJlIHRy
eWluZyB0byB1c2UgcnVuIHRpbWUgbGlua2luZyBvciBub3JtYWwKICAgICAg
IyBBSVggc3R5bGUgbGlua2luZy4gSWYgLWJydGwgaXMgc29tZXdoZXJlIGlu
IExERkxBR1MsIHdlCiAgICAgICMgbmVlZCB0byBkbyBydW50aW1lIGxpbmtp
bmcuCiAgICAgIGNhc2UgJGhvc3Rfb3MgaW4gYWl4NC5bMjNdfGFpeDQuWzIz
XS4qfGFpeDUqKQoJZm9yIGxkX2ZsYWcgaW4gJExERkxBR1M7IGRvCgkgIGNh
c2UgJGxkX2ZsYWcgaW4KCSAgKi1icnRsKikKCSAgICBhaXhfdXNlX3J1bnRp
bWVsaW5raW5nPXllcwoJICAgIGJyZWFrCgkgIDs7CgkgIGVzYWMKCWRvbmUK
ICAgICAgZXNhYwoKICAgICAgZXhwX3N5bV9mbGFnPSctYmV4cG9ydCcKICAg
ICAgbm9fZW50cnlfZmxhZz0nLWJub2VudHJ5JwogICAgZmkKCiAgICAjIFdo
ZW4gbGFyZ2UgZXhlY3V0YWJsZXMgb3Igc2hhcmVkIG9iamVjdHMgYXJlIGJ1
aWx0LCBBSVggbGQgY2FuCiAgICAjIGhhdmUgcHJvYmxlbXMgY3JlYXRpbmcg
dGhlIHRhYmxlIG9mIGNvbnRlbnRzLiAgSWYgbGlua2luZyBhIGxpYnJhcnkK
ICAgICMgb3IgcHJvZ3JhbSByZXN1bHRzIGluICJlcnJvciBUT0Mgb3ZlcmZs
b3ciIGFkZCAtbW1pbmltYWwtdG9jIHRvCiAgICAjIENYWEZMQUdTL0NGTEFH
UyBmb3IgZysrL2djYy4gIEluIHRoZSBjYXNlcyB3aGVyZSB0aGF0IGlzIG5v
dAogICAgIyBlbm91Z2ggdG8gZml4IHRoZSBwcm9ibGVtLCBhZGQgLVdsLC1i
YmlndG9jIHRvIExERkxBR1MuCgogICAgaGFyZGNvZGVfZGlyZWN0PXllcwog
ICAgYXJjaGl2ZV9jbWRzPScnCiAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJh
dG9yPSc6JwogICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KICAgICAg
Y2FzZSAkaG9zdF9vcyBpbiBhaXg0LlswMTJdfGFpeDQuWzAxMl0uKikKCWNv
bGxlY3QybmFtZT1gJHtDQ30gLXByaW50LXByb2ctbmFtZT1jb2xsZWN0MmAK
CWlmIHRlc3QgLWYgIiRjb2xsZWN0Mm5hbWUiICYmIFwKCSAgc3RyaW5ncyAi
JGNvbGxlY3QybmFtZSIgfCBncmVwIHJlc29sdmVfbGliX25hbWUgPi9kZXYv
bnVsbAoJdGhlbgoJICAjIFdlIGhhdmUgcmV3b3JrZWQgY29sbGVjdDIKCSAg
aGFyZGNvZGVfZGlyZWN0PXllcwoJZWxzZQoJICAjIFdlIGhhdmUgb2xkIGNv
bGxlY3QyCgkgIGhhcmRjb2RlX2RpcmVjdD11bnN1cHBvcnRlZAoJICAjIEl0
IGZhaWxzIHRvIGZpbmQgdW5pbnN0YWxsZWQgbGlicmFyaWVzIHdoZW4gdGhl
IHVuaW5zdGFsbGVkCgkgICMgcGF0aCBpcyBub3QgbGlzdGVkIGluIHRoZSBs
aWJwYXRoLiAgU2V0dGluZyBoYXJkY29kZV9taW51c19MCgkgICMgdG8gdW5z
dXBwb3J0ZWQgZm9yY2VzIHJlbGlua2luZwoJICBoYXJkY29kZV9taW51c19M
PXllcwoJICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXIn
CgkgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9CglmaQogICAgICBlc2Fj
CgogICAgICBzaGFyZWRfZmxhZz0nLXNoYXJlZCcKICAgIGVsc2UKICAgICAg
IyBub3QgdXNpbmcgZ2NjCiAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBp
YTY0OyB0aGVuCglzaGFyZWRfZmxhZz0nJHt3bH0tRycKICAgICAgZWxzZQoJ
aWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVu
CgkgIHNoYXJlZF9mbGFnPScke3dsfS1HJwoJZWxzZQoJICBzaGFyZWRfZmxh
Zz0nJHt3bH0tYk06U1JFJwoJZmkKICAgICAgZmkKICAgIGZpCgogICAgIyBJ
dCBzZWVtcyB0aGF0IC1iZXhwYWxsIGNhbiBkbyBzdHJhbmdlIHRoaW5ncywg
c28gaXQgaXMgYmV0dGVyIHRvCiAgICAjIGdlbmVyYXRlIGEgbGlzdCBvZiBz
eW1ib2xzIHRvIGV4cG9ydC4KICAgIGFsd2F5c19leHBvcnRfc3ltYm9scz15
ZXMKICAgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHll
czsgdGhlbgogICAgICAjIFdhcm5pbmcgLSB3aXRob3V0IHVzaW5nIHRoZSBv
dGhlciBydW50aW1lIGxvYWRpbmcgZmxhZ3MgKC1icnRsKSwKICAgICAgIyAt
YmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVj
ZSBhIGJyb2tlbiBsaWJyYXJ5LgogICAgICBhbGxvd191bmRlZmluZWRfZmxh
Zz0nLWJlcm9rJwogICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSck
e3dsfS1ibGlicGF0aDokbGliZGlyOi91c3IvbGliOi9saWInCiAgICAgIGFy
Y2hpdmVfZXhwc3ltX2NtZHM9IlwkQ0MiJyAtbyAkb3V0cHV0X29iamRpci8k
c29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyBgaWYg
dGVzdCAieCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IiAhPSAieCI7IHRoZW4g
ZWNobyAiJHt3bH0ke2FsbG93X3VuZGVmaW5lZF9mbGFnfSI7IGVsc2UgOjsg
ZmlgICciXCR7d2x9JG5vX2VudHJ5X2ZsYWcgXCR7d2x9JGV4cF9zeW1fZmxh
ZzpcJGV4cG9ydF9zeW1ib2xzICRzaGFyZWRfZmxhZyIKICAgIGVsc2UKICAg
ICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KCWhhcmRjb2Rl
X2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LVIgJGxpYmRpcjovdXNyL2xpYjov
bGliJwoJYWxsb3dfdW5kZWZpbmVkX2ZsYWc9Ii16IG5vZGVmcyIKCWFyY2hp
dmVfZXhwc3ltX2NtZHM9IlwkQ0MgJHNoYXJlZF9mbGFnIicgLW8gJG91dHB1
dF9vYmpkaXIvJHNvbmFtZSAke3dsfS1oJHNvbmFtZSAkbGlib2JqcyAkZGVw
bGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0ke2FsbG93X3VuZGVmaW5lZF9m
bGFnfSAnIlwke3dsfSRub19lbnRyeV9mbGFnIFwke3dsfSRleHBfc3ltX2Zs
YWc6XCRleHBvcnRfc3ltYm9scyIKICAgICAgZWxzZQoJaGFyZGNvZGVfbGli
ZGlyX2ZsYWdfc3BlYz0nJHt3bH0tYm5vbGlicGF0aCAke3dsfS1ibGlicGF0
aDokbGliZGlyOi91c3IvbGliOi9saWInCgkjIFdhcm5pbmcgLSB3aXRob3V0
IHVzaW5nIHRoZSBvdGhlciBydW4gdGltZSBsb2FkaW5nIGZsYWdzLAoJIyAt
YmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVj
ZSBhIGJyb2tlbiBsaWJyYXJ5LgoJYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JyR7
d2x9LWJlcm9rJwoJIyBUaGlzIGlzIGEgYml0IHN0cmFuZ2UsIGJ1dCBpcyBz
aW1pbGFyIHRvIGhvdyBBSVggdHJhZGl0aW9uYWxseSBidWlsZHMKCSMgaXQn
cyBzaGFyZWQgbGlicmFyaWVzLgoJYXJjaGl2ZV9leHBzeW1fY21kcz0iXCRD
QyAkc2hhcmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRs
aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke2FsbG93X3VuZGVm
aW5lZF9mbGFnfSAnIlwke3dsfSRub19lbnRyeV9mbGFnIFwke3dsfSRleHBf
c3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9scyInIH4kQVIgLWNybG8gJG9iamRp
ci8kbGlibmFtZSRyZWxlYXNlLmEgJG9iamRpci8kc29uYW1lJwogICAgICBm
aQogICAgZmkKICAgIDs7CgogIGFtaWdhb3MqKQogICAgYXJjaGl2ZV9jbWRz
PSckcm0gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kZWNobyAi
I2RlZmluZSBOQU1FICRsaWJuYW1lIiA+ICRvdXRwdXRfb2JqZGlyL2EyaXhs
aWJyYXJ5LmRhdGF+JGVjaG8gIiNkZWZpbmUgTElCUkFSWV9JRCAxIiA+PiAk
b3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRlY2hvICIjZGVmaW5l
IFZFUlNJT04gJG1ham9yIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFy
eS5kYXRhfiRlY2hvICIjZGVmaW5lIFJFVklTSU9OICRyZXZpc2lvbiIgPj4g
JG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kQVIgJEFSX0ZMQUdT
ICRsaWIgJGxpYm9ianN+JFJBTkxJQiAkbGlifihjZCAkb3V0cHV0X29iamRp
ciAmJiBhMml4bGlicmFyeSAtMzIpJwogICAgaGFyZGNvZGVfbGliZGlyX2Zs
YWdfc3BlYz0nLUwkbGliZGlyJwogICAgaGFyZGNvZGVfbWludXNfTD15ZXMK
ICAgICMgc2VlIGNvbW1lbnQgYWJvdXQgZGlmZmVyZW50IHNlbWFudGljcyBv
biB0aGUgR05VIGxkIHNlY3Rpb24KICAgIGxkX3NobGlicz1ubwogICAgOzsK
CiAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqKQogICAgIyBXaGVuIG5vdCB1
c2luZyBnY2MsIHdlIGN1cnJlbnRseSBhc3N1bWUgdGhhdCB3ZSBhcmUgdXNp
bmcKICAgICMgTWljcm9zb2Z0IFZpc3VhbCBDKysuCiAgICAjIGhhcmRjb2Rl
X2xpYmRpcl9mbGFnX3NwZWMgaXMgYWN0dWFsbHkgbWVhbmluZ2xlc3MsIGFz
IHRoZXJlIGlzCiAgICAjIG5vIHNlYXJjaCBwYXRoIGZvciBETExzLgogICAg
aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nICcKICAgIGFsbG93X3VuZGVm
aW5lZF9mbGFnPXVuc3VwcG9ydGVkCiAgICAjIFRlbGwgbHRtYWluIHRvIG1h
a2UgLmxpYiBmaWxlcywgbm90IC5hIGZpbGVzLgogICAgbGliZXh0PWxpYgog
ICAgIyBGSVhNRTogU2V0dGluZyBsaW5rbmFtZXMgaGVyZSBpcyBhIGJhZCBo
YWNrLgogICAgYXJjaGl2ZV9jbWRzPSckQ0MgLW8gJGxpYiAkbGlib2JqcyAk
Y29tcGlsZXJfZmxhZ3MgYGVjaG8gIiRkZXBsaWJzIiB8IHNlZCAtZSAnXCcn
cy8gLWxjJC8vJ1wnJ2AgLWxpbmsgLWRsbH5saW5rbmFtZXM9JwogICAgIyBU
aGUgbGlua2VyIHdpbGwgYXV0b21hdGljYWxseSBidWlsZCBhIC5saWIgZmls
ZSBpZiB3ZSBidWlsZCBhIERMTC4KICAgIG9sZF9hcmNoaXZlX2Zyb21fbmV3
X2NtZHM9J3RydWUnCiAgICAjIEZJWE1FOiBTaG91bGQgbGV0IHRoZSB1c2Vy
IHNwZWNpZnkgdGhlIGxpYiBwcm9ncmFtLgogICAgb2xkX2FyY2hpdmVfY21k
cz0nbGliIC9PVVQ6JG9sZGxpYiRvbGRvYmpzJG9sZF9kZXBsaWJzJwogICAg
Zml4X3NyY2ZpbGVfcGF0aD0nYGN5Z3BhdGggLXcgIiRzcmNmaWxlImAnCiAg
ICA7OwoKICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQogICAgY2FzZSAiJGhvc3Rf
b3MiIGluCiAgICByaGFwc29keSogfCBkYXJ3aW4xLlswMTJdKQogICAgICBh
bGxvd191bmRlZmluZWRfZmxhZz0nLXVuZGVmaW5lZCBzdXBwcmVzcycKICAg
ICAgOzsKICAgICopICMgRGFyd2luIDEuMyBvbgogICAgICBhbGxvd191bmRl
ZmluZWRfZmxhZz0nLWZsYXRfbmFtZXNwYWNlIC11bmRlZmluZWQgc3VwcHJl
c3MnCiAgICAgIDs7CiAgICBlc2FjCiAgICAjIEZJWE1FOiBSZWx5aW5nIG9u
IHBvc2l4eSAkKCkgd2lsbCBjYXVzZSBwcm9ibGVtcyBmb3IKICAgICMgICAg
ICAgIGNyb3NzLWNvbXBpbGF0aW9uLCBidXQgdW5mb3J0dW5hdGVseSB0aGUg
ZWNobyB0ZXN0cyBkbyBub3QKICAgICMgICAgICAgIHlldCBkZXRlY3QgenNo
IGVjaG8ncyByZW1vdmFsIG9mIFwgZXNjYXBlcy4gIEFsc28genNoIG1hbmds
ZXMKICAgICMJICAgICBgIicgcXVvdGVzIGlmIHdlIHB1dCB0aGVtIGluIGhl
cmUuLi4gc28gZG9uJ3QhCiAgICBhcmNoaXZlX2NtZHM9JyRDQyAtciAta2Vl
cF9wcml2YXRlX2V4dGVybnMgLW5vc3RkbGliIC1vICR7bGlifS1tYXN0ZXIu
byAkbGlib2JqcyAmJiAkQ0MgJCh0ZXN0IC4kbW9kdWxlID0gLnllcyAmJiBl
Y2hvIC1idW5kbGUgfHwgZWNobyAtZHluYW1pY2xpYikgJGFsbG93X3VuZGVm
aW5lZF9mbGFnIC1vICRsaWIgJHtsaWJ9LW1hc3Rlci5vICRkZXBsaWJzJGxp
bmtlcl9mbGFncyAkKHRlc3QgLiRtb2R1bGUgIT0gLnllcyAmJiBlY2hvIC1p
bnN0YWxsX25hbWUgJHJwYXRoLyRzb25hbWUgJHZlcnN0cmluZyknCiAgICAj
IFdlIG5lZWQgdG8gYWRkICdfJyB0byB0aGUgc3ltYm9scyBpbiAkZXhwb3J0
X3N5bWJvbHMgZmlyc3QKICAgICNhcmNoaXZlX2V4cHN5bV9jbWRzPSIkYXJj
aGl2ZV9jbWRzIicgJiYgc3RyaXAgLXMgJGV4cG9ydF9zeW1ib2xzJwogICAg
aGFyZGNvZGVfZGlyZWN0PXllcwogICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zh
cj1ubwogICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9Jy1hbGxfbG9hZCAk
Y29udmVuaWVuY2UnCiAgICA7OwoKICBmcmVlYnNkMSopCiAgICBsZF9zaGxp
YnM9bm8KICAgIDs7CgogICMgRnJlZUJTRCAyLjIuWzAxMl0gYWxsb3dzIHVz
IHRvIGluY2x1ZGUgYysrcnQwLm8gdG8gZ2V0IEMrKyBjb25zdHJ1Y3Rvcgog
ICMgc3VwcG9ydC4gIEZ1dHVyZSB2ZXJzaW9ucyBkbyB0aGlzIGF1dG9tYXRp
Y2FsbHksIGJ1dCBhbiBleHBsaWNpdCBjKytydDAubwogICMgZG9lcyBub3Qg
YnJlYWsgYW55dGhpbmcsIGFuZCBoZWxwcyBzaWduaWZpY2FudGx5IChhdCB0
aGUgY29zdCBvZiBhIGxpdHRsZQogICMgZXh0cmEgc3BhY2UpLgogIGZyZWVi
c2QyLjIqKQogICAgYXJjaGl2ZV9jbWRzPSckTEQgLUJzaGFyZWFibGUgLW8g
JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC91c3IvbGli
L2MrK3J0MC5vJwogICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLVIk
bGliZGlyJwogICAgaGFyZGNvZGVfZGlyZWN0PXllcwogICAgaGFyZGNvZGVf
c2hsaWJwYXRoX3Zhcj1ubwogICAgOzsKCiAgIyBVbmZvcnR1bmF0ZWx5LCBv
bGRlciB2ZXJzaW9ucyBvZiBGcmVlQlNEIDIgZG8gbm90IGhhdmUgdGhpcyBm
ZWF0dXJlLgogIGZyZWVic2QyKikKICAgIGFyY2hpdmVfY21kcz0nJExEIC1C
c2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9m
bGFncycKICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKICAgIGhhcmRjb2RlX21p
bnVzX0w9eWVzCiAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCiAgICA7
OwoKICAjIEZyZWVCU0QgMyBhbmQgZ3JlYXRlciB1c2VzIGdjYyAtc2hhcmVk
IHRvIGRvIHNoYXJlZCBsaWJyYXJpZXMuCiAgZnJlZWJzZCopCiAgICBhcmNo
aXZlX2NtZHM9JyRDQyAtc2hhcmVkIC1vICRsaWIgJGxpYm9ianMgJGRlcGxp
YnMgJGNvbXBpbGVyX2ZsYWdzJwogICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdf
c3BlYz0nLVIkbGliZGlyJwogICAgaGFyZGNvZGVfZGlyZWN0PXllcwogICAg
aGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubwogICAgOzsKCiAgaHB1eDkqIHwg
aHB1eDEwKiB8IGhwdXgxMSopCiAgICBjYXNlICRob3N0X29zIGluCiAgICBo
cHV4OSopIGFyY2hpdmVfY21kcz0nJHJtICRvdXRwdXRfb2JqZGlyLyRzb25h
bWV+JExEIC1iICtiICRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0X29iamRp
ci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3N+dGVz
dCAkb3V0cHV0X29iamRpci8kc29uYW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0
X29iamRpci8kc29uYW1lICRsaWInIDs7CiAgICAqKSBhcmNoaXZlX2NtZHM9
JyRMRCAtYiAraCAkc29uYW1lICtiICRpbnN0YWxsX2xpYmRpciAtbyAkbGli
ICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnIDs7CiAgICBlc2Fj
CiAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfStiICR7d2x9
JGxpYmRpcicKICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9OgogICAg
aGFyZGNvZGVfZGlyZWN0PXllcwogICAgaGFyZGNvZGVfbWludXNfTD15ZXMg
IyBOb3QgaW4gdGhlIHNlYXJjaCBQQVRILCBidXQgYXMgdGhlIGRlZmF1bHQK
CQkJICMgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCiAgICBleHBvcnRfZHlu
YW1pY19mbGFnX3NwZWM9JyR7d2x9LUUnCiAgICA7OwoKICBpcml4NSogfCBp
cml4NiogfCBub25zdG9wdXgqKQogICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7
IHRoZW4KICAgICAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2Jq
cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9
JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAke3dsfS1z
ZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmdgICR7d2x9LXVwZGF0ZV9yZWdp
c3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRs
aWInCiAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJw
YXRoICR7d2x9JGxpYmRpcicKICAgIGVsc2UKICAgICAgYXJjaGl2ZV9jbWRz
PSckTEQgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdz
IC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNo
byAtc2V0X3ZlcnNpb24gJHZlcnN0cmluZ2AgLXVwZGF0ZV9yZWdpc3RyeSAk
e291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwogICAgICBo
YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctcnBhdGggJGxpYmRpcicKICAg
IGZpCiAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPToKICAgIGxpbmtf
YWxsX2RlcGxpYnM9eWVzCiAgICA7OwoKICBuZXRic2QqKQogICAgaWYgZWNo
byBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX18gPi9kZXYvbnVs
bDsgdGhlbgogICAgICBhcmNoaXZlX2NtZHM9JyRMRCAtQnNoYXJlYWJsZSAt
byAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnICAjIGEu
b3V0CiAgICBlbHNlCiAgICAgIGFyY2hpdmVfY21kcz0nJExEIC1zaGFyZWQg
LW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJyAgICAg
ICMgRUxGCiAgICBmaQogICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0n
LVIkbGliZGlyJwogICAgaGFyZGNvZGVfZGlyZWN0PXllcwogICAgaGFyZGNv
ZGVfc2hsaWJwYXRoX3Zhcj1ubwogICAgOzsKCiAgbmV3c29zNikKICAgIGFy
Y2hpdmVfY21kcz0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2Jq
cyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwogICAgaGFyZGNvZGVfZGlyZWN0
PXllcwogICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBh
dGggJHt3bH0kbGliZGlyJwogICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRv
cj06CiAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCiAgICA7OwoKICBv
cGVuYnNkKikKICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKICAgIGhhcmRjb2Rl
X3NobGlicGF0aF92YXI9bm8KICAgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxG
X18gfCAkQ0MgLUUgLSB8IGdyZXAgX19FTEZfX2AiIHx8IHRlc3QgIiRob3N0
X29zLSRob3N0X2NwdSIgPSAib3BlbmJzZDIuOC1wb3dlcnBjIjsgdGhlbgog
ICAgICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAtbyAk
bGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKICAgICAg
aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGgsJGxpYmRp
cicKICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPScke3dsfS1FJwog
ICAgZWxzZQogICAgICBjYXNlICIkaG9zdF9vcyIgaW4KICAgICAgb3BlbmJz
ZFswMV0uKiB8IG9wZW5ic2QyLlswLTddIHwgb3BlbmJzZDIuWzAtN10uKikK
CWFyY2hpdmVfY21kcz0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9i
anMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKCWhhcmRjb2RlX2xpYmRpcl9m
bGFnX3NwZWM9Jy1SJGxpYmRpcicKICAgICAgICA7OwogICAgICAqKQogICAg
ICAgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJHBpY19mbGFnIC1vICRs
aWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwogICAgICAg
IGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoLCRsaWJk
aXInCiAgICAgICAgOzsKICAgICAgZXNhYwogICAgZmkKICAgIDs7CgogIG9z
MiopCiAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXIn
CiAgICBoYXJkY29kZV9taW51c19MPXllcwogICAgYWxsb3dfdW5kZWZpbmVk
X2ZsYWc9dW5zdXBwb3J0ZWQKICAgIGFyY2hpdmVfY21kcz0nJGVjaG8gIkxJ
QlJBUlkgJGxpYm5hbWUgSU5JVElOU1RBTkNFIiA+ICRvdXRwdXRfb2JqZGly
LyRsaWJuYW1lLmRlZn4kZWNobyAiREVTQ1JJUFRJT04gXCIkbGlibmFtZVwi
IiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JGVjaG8gREFUQSA+
PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JGVjaG8gIiBTSU5HTEUg
Tk9OU0hBUkVEIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JGVj
aG8gRVhQT1JUUyA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+ZW14
ZXhwICRsaWJvYmpzID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4k
Q0MgLVpkbGwgLVpjcnRkbGwgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAk
Y29tcGlsZXJfZmxhZ3MgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmJwog
ICAgb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcz0nZW14aW1wIC1vICRvdXRw
dXRfb2JqZGlyLyRsaWJuYW1lLmEgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUu
ZGVmJwogICAgOzsKCiAgb3NmMyopCiAgICBpZiB0ZXN0ICIkR0NDIiA9IHll
czsgdGhlbgogICAgICBhbGxvd191bmRlZmluZWRfZmxhZz0nICR7d2x9LWV4
cGVjdF91bnJlc29sdmVkICR7d2x9XConCiAgICAgIGFyY2hpdmVfY21kcz0n
JENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAk
ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNv
bmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAke3dsfS1zZXRf
dmVyc2lvbiAke3dsfSR2ZXJzdHJpbmdgICR7d2x9LXVwZGF0ZV9yZWdpc3Ry
eSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWIn
CiAgICBlbHNlCiAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnPScgLWV4cGVj
dF91bnJlc29sdmVkIFwqJwogICAgICBhcmNoaXZlX2NtZHM9JyRMRCAtc2hh
cmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMg
JGxpbmtlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJz
dHJpbmciICYmIGVjaG8gLXNldF92ZXJzaW9uICR2ZXJzdHJpbmdgIC11cGRh
dGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8g
JGxpYicKICAgIGZpCiAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSck
e3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCiAgICBoYXJkY29kZV9saWJkaXJf
c2VwYXJhdG9yPToKICAgIDs7CgogIG9zZjQqIHwgb3NmNSopCSMgYXMgb3Nm
Myogd2l0aCB0aGUgYWRkaXRpb24gb2YgLW1zeW0gZmxhZwogICAgaWYgdGVz
dCAiJEdDQyIgPSB5ZXM7IHRoZW4KICAgICAgYWxsb3dfdW5kZWZpbmVkX2Zs
YWc9JyAke3dsfS1leHBlY3RfdW5yZXNvbHZlZCAke3dsfVwqJwogICAgICBh
cmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxh
Z30gJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LW1z
eW0gJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0
cmluZyIgJiYgZWNobyAke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJp
bmdgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRp
cn0vc29fbG9jYXRpb25zIC1vICRsaWInCiAgICAgIGhhcmRjb2RlX2xpYmRp
cl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKICAgIGVs
c2UKICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JyAtZXhwZWN0X3VucmVz
b2x2ZWQgXConCiAgICAgIGFyY2hpdmVfY21kcz0nJExEIC1zaGFyZWQke2Fs
bG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkbGlua2Vy
X2ZsYWdzIC1tc3ltIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0
cmluZyIgJiYgZWNobyAtc2V0X3ZlcnNpb24gJHZlcnN0cmluZ2AgLXVwZGF0
ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAk
bGliJwogICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzPSdmb3IgaSBpbiBgY2F0
ICRleHBvcnRfc3ltYm9sc2A7IGRvIHByaW50ZiAiLWV4cG9ydGVkX3N5bWJv
bCAiID4+ICRsaWIuZXhwOyBlY2hvICJcJGkiID4+ICRsaWIuZXhwOyBkb25l
OyBlY2hvICItaGlkZGVuIj4+ICRsaWIuZXhwfgogICAgICAkTEQgLXNoYXJl
ZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1pbnB1dCAkbGliLmV4cCAkbGlu
a2VyX2ZsYWdzICRsaWJvYmpzICRkZXBsaWJzIC1zb25hbWUgJHNvbmFtZSBg
dGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAtc2V0X3ZlcnNpb24gJHZl
cnN0cmluZ2AgLXVwZGF0ZV9yZWdpc3RyeSAke29iamRpcn0vc29fbG9jYXRp
b25zIC1vICRsaWJ+JHJtICRsaWIuZXhwJwoKICAgICAgI0JvdGggYyBhbmQg
Y3h4IGNvbXBpbGVyIHN1cHBvcnQgLXJwYXRoIGRpcmVjdGx5CiAgICAgIGhh
cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1ycGF0aCAkbGliZGlyJwogICAg
ZmkKICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9OgogICAgOzsKCiAg
c2NvMy4ydjUqKQogICAgYXJjaGl2ZV9jbWRzPSckTEQgLUcgLWggJHNvbmFt
ZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCiAg
ICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCiAgICBydW5wYXRoX3Zhcj1M
RF9SVU5fUEFUSAogICAgaGFyZGNvZGVfcnVucGF0aF92YXI9eWVzCiAgICBl
eHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JyR7d2x9LUJleHBvcnQnCiAgICA7
OwoKICBzb2xhcmlzKikKICAgICMgZ2NjIC0tdmVyc2lvbiA8IDMuMCB3aXRo
b3V0IGJpbnV0aWxzIGNhbm5vdCBjcmVhdGUgc2VsZiBjb250YWluZWQKICAg
ICMgc2hhcmVkIGxpYnJhcmllcyByZWxpYWJseSwgcmVxdWlyaW5nIGxpYmdj
Yy5hIHRvIHJlc29sdmUgc29tZSBvZgogICAgIyB0aGUgb2JqZWN0IHN5bWJv
bHMgZ2VuZXJhdGVkIGluIHNvbWUgY2FzZXMuICBMaWJyYXJpZXMgdGhhdCB1
c2UKICAgICMgYXNzZXJ0IG5lZWQgbGliZ2NjLmEgdG8gcmVzb2x2ZSBfX2Vw
cmludGYsIGZvciBleGFtcGxlLiAgTGlua2luZwogICAgIyBhIGNvcHkgb2Yg
bGliZ2NjLmEgaW50byBldmVyeSBzaGFyZWQgbGlicmFyeSB0byBndWFyYW50
ZWUgcmVzb2x2aW5nCiAgICAjIHN1Y2ggc3ltYm9scyBjYXVzZXMgb3RoZXIg
cHJvYmxlbXM6ICBBY2NvcmRpbmcgdG8gVGltIFZhbiBIb2xkZXIKICAgICMg
PHRpbS52YW4uaG9sZGVyQHBhbmRvcmEuYmU+LCBDKysgbGlicmFyaWVzIGVu
ZCB1cCB3aXRoIGEgc2VwYXJhdGUKICAgICMgKHRvIHRoZSBhcHBsaWNhdGlv
bikgZXhjZXB0aW9uIHN0YWNrIGZvciBvbmUgdGhpbmcuCiAgICBub191bmRl
ZmluZWRfZmxhZz0nIC16IGRlZnMnCiAgICBpZiB0ZXN0ICIkR0NDIiA9IHll
czsgdGhlbgogICAgICBjYXNlIGAkQ0MgLS12ZXJzaW9uIDI+L2Rldi9udWxs
YCBpbgogICAgICBbMTJdLiopCgljYXQgPDxFT0YgMT4mMgoKKioqIFdhcm5p
bmc6IFJlbGVhc2VzIG9mIEdDQyBlYXJsaWVyIHRoYW4gdmVyc2lvbiAzLjAg
Y2Fubm90IHJlbGlhYmx5CioqKiBjcmVhdGUgc2VsZiBjb250YWluZWQgc2hh
cmVkIGxpYnJhcmllcyBvbiBTb2xhcmlzIHN5c3RlbXMsIHdpdGhvdXQKKioq
IGludHJvZHVjaW5nIGEgZGVwZW5kZW5jeSBvbiBsaWJnY2MuYS4gIFRoZXJl
Zm9yZSwgbGlidG9vbCBpcyBkaXNhYmxpbmcKKioqIC1uby11bmRlZmluZWQg
c3VwcG9ydCwgd2hpY2ggd2lsbCBhdCBsZWFzdCBhbGxvdyB5b3UgdG8gYnVp
bGQgc2hhcmVkCioqKiBsaWJyYXJpZXMuICBIb3dldmVyLCB5b3UgbWF5IGZp
bmQgdGhhdCB3aGVuIHlvdSBsaW5rIHN1Y2ggbGlicmFyaWVzCioqKiBpbnRv
IGFuIGFwcGxpY2F0aW9uIHdpdGhvdXQgdXNpbmcgR0NDLCB5b3UgaGF2ZSB0
byBtYW51YWxseSBhZGQKKioqIFxgZ2NjIC0tcHJpbnQtbGliZ2NjLWZpbGUt
bmFtZVxgIHRvIHRoZSBsaW5rIGNvbW1hbmQuICBXZSB1cmdlIHlvdSB0bwoq
KiogdXBncmFkZSB0byBhIG5ld2VyIHZlcnNpb24gb2YgR0NDLiAgQW5vdGhl
ciBvcHRpb24gaXMgdG8gcmVidWlsZCB5b3VyCioqKiBjdXJyZW50IEdDQyB0
byB1c2UgdGhlIEdOVSBsaW5rZXIgZnJvbSBHTlUgYmludXRpbHMgMi45LjEg
b3IgbmV3ZXIuCgpFT0YKICAgICAgICBub191bmRlZmluZWRfZmxhZz0KCTs7
CiAgICAgIGVzYWMKICAgIGZpCiAgICAjICRDQyAtc2hhcmVkIHdpdGhvdXQg
R05VIGxkIHdpbGwgbm90IGNyZWF0ZSBhIGxpYnJhcnkgZnJvbSBDKysKICAg
ICMgb2JqZWN0IGZpbGVzIGFuZCBhIHN0YXRpYyBsaWJzdGRjKyssIGJldHRl
ciBhdm9pZCBpdCBieSBub3cKICAgIGFyY2hpdmVfY21kcz0nJExEIC1HJHth
bGxvd191bmRlZmluZWRfZmxhZ30gLWggJHNvbmFtZSAtbyAkbGliICRsaWJv
YmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCiAgICBhcmNoaXZlX2V4cHN5
bV9jbWRzPSckZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhw
b3J0X3N5bWJvbHMgfCBzZWQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIu
ZXhwfiRlY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgoJCSRMRCAt
RyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1NICRsaWIuZXhwIC1oICRzb25h
bWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzfiRy
bSAkbGliLmV4cCcKICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1S
JGxpYmRpcicKICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KICAgIGNh
c2UgJGhvc3Rfb3MgaW4KICAgIHNvbGFyaXMyLlswLTVdIHwgc29sYXJpczIu
WzAtNV0uKikgOzsKICAgICopICMgU3VwcG9ydGVkIHNpbmNlIFNvbGFyaXMg
Mi42IChtYXliZSAyLjUuMT8pCiAgICAgIHdob2xlX2FyY2hpdmVfZmxhZ19z
cGVjPScteiBhbGxleHRyYWN0JGNvbnZlbmllbmNlIC16IGRlZmF1bHRleHRy
YWN0JyA7OwogICAgZXNhYwogICAgbGlua19hbGxfZGVwbGlicz15ZXMKICAg
IDs7CgogIHN1bm9zNCopCiAgICBpZiB0ZXN0ICJ4JGhvc3RfdmVuZG9yIiA9
IHhzZXF1ZW50OyB0aGVuCiAgICAgICMgVXNlICRDQyB0byBsaW5rIHVuZGVy
IHNlcXVlbnQsIGJlY2F1c2UgaXQgdGhyb3dzIGluIHNvbWUgZXh0cmEgLm8K
ICAgICAgIyBmaWxlcyB0aGF0IG1ha2UgLmluaXQgYW5kIC5maW5pIHNlY3Rp
b25zIHdvcmsuCiAgICAgIGFyY2hpdmVfY21kcz0nJENDIC1HICR7d2x9LWgg
JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m
bGFncycKICAgIGVsc2UKICAgICAgYXJjaGl2ZV9jbWRzPSckTEQgLWFzc2Vy
dCBwdXJlLXRleHQgLUJzdGF0aWMgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli
cyAkbGlua2VyX2ZsYWdzJwogICAgZmkKICAgIGhhcmRjb2RlX2xpYmRpcl9m
bGFnX3NwZWM9Jy1MJGxpYmRpcicKICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMK
ICAgIGhhcmRjb2RlX21pbnVzX0w9eWVzCiAgICBoYXJkY29kZV9zaGxpYnBh
dGhfdmFyPW5vCiAgICA7OwoKICBzeXN2NCkKICAgIGNhc2UgJGhvc3RfdmVu
ZG9yIGluCiAgICAgIHNuaSkKICAgICAgICBhcmNoaXZlX2NtZHM9JyRMRCAt
RyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtl
cl9mbGFncycKICAgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzICMgaXMgdGhp
cyByZWFsbHkgdHJ1ZT8/PwogICAgICAgIDs7CiAgICAgIHNpZW1lbnMpCiAg
ICAgICAgIyMgTEQgaXMgbGQgaXQgbWFrZXMgYSBQTEFNTElCCiAgICAgICAg
IyMgQ0MganVzdCBtYWtlcyBhIEdyb3NzTW9kdWxlLgogICAgICAgIGFyY2hp
dmVfY21kcz0nJExEIC1HIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxp
bmtlcl9mbGFncycKICAgICAgICByZWxvYWRfY21kcz0nJENDIC1yIC1vICRv
dXRwdXQkcmVsb2FkX29ianMnCiAgICAgICAgaGFyZGNvZGVfZGlyZWN0PW5v
CiAgICAgICAgOzsKICAgICAgbW90b3JvbGEpCiAgICAgICAgYXJjaGl2ZV9j
bWRzPSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBs
aWJzICRsaW5rZXJfZmxhZ3MnCiAgICAgICAgaGFyZGNvZGVfZGlyZWN0PW5v
ICNNb3Rvcm9sYSBtYW51YWwgc2F5cyB5ZXMsIGJ1dCBteSB0ZXN0cyBzYXkg
dGhleSBsaWUKICAgICAgICA7OwogICAgZXNhYwogICAgcnVucGF0aF92YXI9
J0xEX1JVTl9QQVRIJwogICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubwog
ICAgOzsKCiAgc3lzdjQuMyopCiAgICBhcmNoaXZlX2NtZHM9JyRMRCAtRyAt
aCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9m
bGFncycKICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KICAgIGV4cG9y
dF9keW5hbWljX2ZsYWdfc3BlYz0nLUJleHBvcnQnCiAgICA7OwoKICBzeXN2
NSopCiAgICBub191bmRlZmluZWRfZmxhZz0nIC16IHRleHQnCiAgICAjICRD
QyAtc2hhcmVkIHdpdGhvdXQgR05VIGxkIHdpbGwgbm90IGNyZWF0ZSBhIGxp
YnJhcnkgZnJvbSBDKysKICAgICMgb2JqZWN0IGZpbGVzIGFuZCBhIHN0YXRp
YyBsaWJzdGRjKyssIGJldHRlciBhdm9pZCBpdCBieSBub3cKICAgIGFyY2hp
dmVfY21kcz0nJExEIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLWggJHNv
bmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3Mn
CiAgICBhcmNoaXZlX2V4cHN5bV9jbWRzPSckZWNobyAieyBnbG9iYWw6IiA+
ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCBzZWQgLWUgInMvXCgu
KlwpL1wxOy8iID4+ICRsaWIuZXhwfiRlY2hvICJsb2NhbDogKjsgfTsiID4+
ICRsaWIuZXhwfgoJCSRMRCAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1N
ICRsaWIuZXhwIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli
cyAkbGlua2VyX2ZsYWdzfiRybSAkbGliLmV4cCcKICAgIGhhcmRjb2RlX2xp
YmRpcl9mbGFnX3NwZWM9CiAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5v
CiAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCiAgICA7OwoKICB1dHM0
KikKICAgIGFyY2hpdmVfY21kcz0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxp
YiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwogICAgaGFyZGNv
ZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGlyJwogICAgaGFyZGNvZGVf
c2hsaWJwYXRoX3Zhcj1ubwogICAgOzsKCiAgZGd1eCopCiAgICBhcmNoaXZl
X2NtZHM9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRl
cGxpYnMgJGxpbmtlcl9mbGFncycKICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFn
X3NwZWM9Jy1MJGxpYmRpcicKICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9
bm8KICAgIDs7CgogIHN5c3Y0Kk1QKikKICAgIGlmIHRlc3QgLWQgL3Vzci9u
ZWM7IHRoZW4KICAgICAgYXJjaGl2ZV9jbWRzPSckTEQgLUcgLWggJHNvbmFt
ZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCiAg
ICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KICAgICAgcnVucGF0aF92
YXI9TERfUlVOX1BBVEgKICAgICAgaGFyZGNvZGVfcnVucGF0aF92YXI9eWVz
CiAgICAgIGxkX3NobGlicz15ZXMKICAgIGZpCiAgICA7OwoKICBzeXN2NC4y
dXcyKikKICAgIGFyY2hpdmVfY21kcz0nJExEIC1HIC1vICRsaWIgJGxpYm9i
anMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKICAgIGhhcmRjb2RlX2RpcmVj
dD15ZXMKICAgIGhhcmRjb2RlX21pbnVzX0w9bm8KICAgIGhhcmRjb2RlX3No
bGlicGF0aF92YXI9bm8KICAgIGhhcmRjb2RlX3J1bnBhdGhfdmFyPXllcwog
ICAgcnVucGF0aF92YXI9TERfUlVOX1BBVEgKICAgIDs7CgogIHN5c3Y1dXc3
KiB8IHVuaXh3YXJlNyopCiAgICBub191bmRlZmluZWRfZmxhZz0nJHt3bH0t
eiAke3dsfXRleHQnCiAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgog
ICAgICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICR7d2x9LWggJHt3bH0k
c29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs
YWdzJwogICAgZWxzZQogICAgICBhcmNoaXZlX2NtZHM9JyRDQyAtRyAke3ds
fS1oICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRj
b21waWxlcl9mbGFncycKICAgIGZpCiAgICBydW5wYXRoX3Zhcj0nTERfUlVO
X1BBVEgnCiAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCiAgICA7OwoK
ICAqKQogICAgbGRfc2hsaWJzPW5vCiAgICA7OwogIGVzYWMKZmkKZWNobyAi
JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGxkX3NobGlicyIgPiY1CmVjaG8g
IiR7RUNIT19UfSRsZF9zaGxpYnMiID4mNgp0ZXN0ICIkbGRfc2hsaWJzIiA9
IG5vICYmIGNhbl9idWlsZF9zaGFyZWQ9bm8KIyMKIyMgRU5EIEZJWE1FCgoj
IyBGSVhNRTogdGhpcyBzaG91bGQgYmUgYSBzZXBhcmF0ZSBtYWNybwojIwoj
IENoZWNrIGhhcmRjb2RpbmcgYXR0cmlidXRlcy4KZWNobyAiJGFzX21lOiRM
SU5FTk86IGNoZWNraW5nIGhvdyB0byBoYXJkY29kZSBsaWJyYXJ5IHBhdGhz
IGludG8gcHJvZ3JhbXMiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGhv
dyB0byBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gcHJvZ3JhbXMuLi4g
JEVDSE9fQyIgPiY2CmhhcmRjb2RlX2FjdGlvbj0KaWYgdGVzdCAtbiAiJGhh
cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMiIHx8IFwKICAgdGVzdCAtbiAiJHJ1
bnBhdGhfdmFyIjsgdGhlbgoKICAjIFdlIGNhbiBoYXJkY29kZSBub24tZXhp
c3RhbnQgZGlyZWN0b3JpZXMuCiAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVj
dCIgIT0gbm8gJiYKICAgICAjIElmIHRoZSBvbmx5IG1lY2hhbmlzbSB0byBh
dm9pZCBoYXJkY29kaW5nIGlzIHNobGlicGF0aF92YXIsIHdlCiAgICAgIyBo
YXZlIHRvIHJlbGluaywgb3RoZXJ3aXNlIHdlIG1pZ2h0IGxpbmsgd2l0aCBh
biBpbnN0YWxsZWQgbGlicmFyeQogICAgICMgd2hlbiB3ZSBzaG91bGQgYmUg
bGlua2luZyB3aXRoIGEgeWV0LXRvLWJlLWluc3RhbGxlZCBvbmUKICAgICAj
IyB0ZXN0ICIkaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciIgIT0gbm8gJiYKICAg
ICB0ZXN0ICIkaGFyZGNvZGVfbWludXNfTCIgIT0gbm87IHRoZW4KICAgICMg
TGlua2luZyBhbHdheXMgaGFyZGNvZGVzIHRoZSB0ZW1wb3JhcnkgbGlicmFy
eSBkaXJlY3RvcnkuCiAgICBoYXJkY29kZV9hY3Rpb249cmVsaW5rCiAgZWxz
ZQogICAgIyBXZSBjYW4gbGluayB3aXRob3V0IGhhcmRjb2RpbmcsIGFuZCB3
ZSBjYW4gaGFyZGNvZGUgbm9uZXhpc3RpbmcgZGlycy4KICAgIGhhcmRjb2Rl
X2FjdGlvbj1pbW1lZGlhdGUKICBmaQplbHNlCiAgIyBXZSBjYW5ub3QgaGFy
ZGNvZGUgYW55dGhpbmcsIG9yIGVsc2Ugd2UgY2FuIG9ubHkgaGFyZGNvZGUg
ZXhpc3RpbmcKICAjIGRpcmVjdG9yaWVzLgogIGhhcmRjb2RlX2FjdGlvbj11
bnN1cHBvcnRlZApmaQplY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk
aGFyZGNvZGVfYWN0aW9uIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGhhcmRjb2Rl
X2FjdGlvbiIgPiY2CiMjCiMjIEVORCBGSVhNRQoKIyMgRklYTUU6IHRoaXMg
c2hvdWxkIGJlIGEgc2VwYXJhdGUgbWFjcm8KIyMKc3RyaXBsaWI9Cm9sZF9z
dHJpcGxpYj0KZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRo
ZXIgc3RyaXBwaW5nIGxpYnJhcmllcyBpcyBwb3NzaWJsZSIgPiY1CmVjaG8g
JEVDSE9fTiAiY2hlY2tpbmcgd2hldGhlciBzdHJpcHBpbmcgbGlicmFyaWVz
IGlzIHBvc3NpYmxlLi4uICRFQ0hPX0MiID4mNgppZiB0ZXN0IC1uICIkU1RS
SVAiICYmICRTVFJJUCAtViAyPiYxIHwgZ3JlcCAiR05VIHN0cmlwIiA+L2Rl
di9udWxsOyB0aGVuCiAgdGVzdCAteiAiJG9sZF9zdHJpcGxpYiIgJiYgb2xk
X3N0cmlwbGliPSIkU1RSSVAgLS1zdHJpcC1kZWJ1ZyIKICB0ZXN0IC16ICIk
c3RyaXBsaWIiICYmIHN0cmlwbGliPSIkU1RSSVAgLS1zdHJpcC11bm5lZWRl
ZCIKICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQpl
Y2hvICIke0VDSE9fVH15ZXMiID4mNgplbHNlCiAgZWNobyAiJGFzX21lOiRM
SU5FTk86IHJlc3VsdDogbm8iID4mNQplY2hvICIke0VDSE9fVH1ubyIgPiY2
CmZpCiMjCiMjIEVORCBGSVhNRQoKcmVsb2FkX2NtZHM9JyRMRCRyZWxvYWRf
ZmxhZyAtbyAkb3V0cHV0JHJlbG9hZF9vYmpzJwp0ZXN0IC16ICIkZGVwbGli
c19jaGVja19tZXRob2QiICYmIGRlcGxpYnNfY2hlY2tfbWV0aG9kPXVua25v
d24KCiMjIEZJWE1FOiB0aGlzIHNob3VsZCBiZSBhIHNlcGFyYXRlIG1hY3Jv
CiMjCiMgUE9SVE1FIEZpbGwgaW4geW91ciBsZC5zbyBjaGFyYWN0ZXJpc3Rp
Y3MKZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGR5bmFtaWMgbGlu
a2VyIGNoYXJhY3RlcmlzdGljcyIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tp
bmcgZHluYW1pYyBsaW5rZXIgY2hhcmFjdGVyaXN0aWNzLi4uICRFQ0hPX0Mi
ID4mNgpsaWJyYXJ5X25hbWVzX3NwZWM9CmxpYm5hbWVfc3BlYz0nbGliJG5h
bWUnCnNvbmFtZV9zcGVjPQpwb3N0aW5zdGFsbF9jbWRzPQpwb3N0dW5pbnN0
YWxsX2NtZHM9CmZpbmlzaF9jbWRzPQpmaW5pc2hfZXZhbD0Kc2hsaWJwYXRo
X3Zhcj0Kc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXVua25vd24KdmVy
c2lvbl90eXBlPW5vbmUKZHluYW1pY19saW5rZXI9IiRob3N0X29zIGxkLnNv
IgpzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL2xpYiAvdXNyL2xpYiIK
c3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvbGliIC91c3IvbGliIC91c3Iv
bG9jYWwvbGliIgoKY2FzZSAkaG9zdF9vcyBpbgphaXgzKikKICB2ZXJzaW9u
X3R5cGU9bGludXgKICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0k
e3JlbGVhc2V9LnNvJHZlcnN1ZmZpeCAkbGlibmFtZS5hJwogIHNobGlicGF0
aF92YXI9TElCUEFUSAoKICAjIEFJWCBoYXMgbm8gdmVyc2lvbmluZyBzdXBw
b3J0LCBzbyB3ZSBhcHBlbmQgYSBtYWpvciB2ZXJzaW9uIHRvIHRoZSBuYW1l
LgogIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfS5zbyRtYWpv
cicKICA7OwoKYWl4NCogfCBhaXg1KikKICB2ZXJzaW9uX3R5cGU9bGludXgK
ICBuZWVkX2xpYl9wcmVmaXg9bm8KICBuZWVkX3ZlcnNpb249bm8KICBoYXJk
Y29kZV9pbnRvX2xpYnM9eWVzCiAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlh
NjQ7IHRoZW4KICAgICMgQUlYIDUgc3VwcG9ydHMgSUE2NAogICAgbGlicmFy
eV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfS5zbyRtYWpvciAk
e2xpYm5hbWV9JHtyZWxlYXNlfS5zbyR2ZXJzdWZmaXggJGxpYm5hbWUuc28n
CiAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAogIGVsc2UKICAg
ICMgV2l0aCBHQ0MgdXAgdG8gMi45NS54LCBjb2xsZWN0MiB3b3VsZCBjcmVh
dGUgYW4gaW1wb3J0IGZpbGUKICAgICMgZm9yIGRlcGVuZGVuY2UgbGlicmFy
aWVzLiAgVGhlIGltcG9ydCBmaWxlIHdvdWxkIHN0YXJ0IHdpdGgKICAgICMg
dGhlIGxpbmUgYCMhIC4nLiAgVGhpcyB3b3VsZCBjYXVzZSB0aGUgZ2VuZXJh
dGVkIGxpYnJhcnkgdG8KICAgICMgZGVwZW5kIG9uIGAuJywgYWx3YXlzIGFu
IGludmFsaWQgbGlicmFyeS4gIFRoaXMgd2FzIGZpeGVkIGluCiAgICAjIGRl
dmVsb3BtZW50IHNuYXBzaG90cyBvZiBHQ0MgcHJpb3IgdG8gMy4wLgogICAg
Y2FzZSAkaG9zdF9vcyBpbgogICAgICBhaXg0IHwgYWl4NC5bMDFdIHwgYWl4
NC5bMDFdLiopCglpZiB7IGVjaG8gJyNpZiBfX0dOVUNfXyA+IDIgfHwgKF9f
R05VQ19fID09IDIgJiYgX19HTlVDX01JTk9SX18gPj0gOTcpJwoJICAgICBl
Y2hvICcgeWVzICcKCSAgICAgZWNobyAnI2VuZGlmJzsgfSB8ICR7Q0N9IC1F
IC0gfCBncmVwIHllcyA+IC9kZXYvbnVsbDsgdGhlbgoJICA6CgllbHNlCgkg
IGNhbl9idWlsZF9zaGFyZWQ9bm8KCWZpCgk7OwogICAgZXNhYwogICAgIyBB
SVggKG9uIFBvd2VyKikgaGFzIG5vIHZlcnNpb25pbmcgc3VwcG9ydCwgc28g
Y3VycmVudGx5IHdlIGNhbgogICAgIyBub3QgaGFyZGNvZGUgY29ycmVjdCBz
b25hbWUgaW50byBleGVjdXRhYmxlLiBQcm9iYWJseSB3ZSBjYW4KICAgICMg
YWRkIHZlcnNpb25pbmcgc3VwcG9ydCB0byBjb2xsZWN0Miwgc28gYWRkaXRp
b25hbCBsaW5rcyBjYW4KICAgICMgYmUgdXNlZnVsIGluIGZ1dHVyZS4KICAg
IGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhl
bgogICAgICAjIElmIHVzaW5nIHJ1biB0aW1lIGxpbmtpbmcgKG9uIEFJWCA0
LjIgb3IgbGF0ZXIpIHVzZSBsaWI8bmFtZT4uc28KICAgICAgIyBpbnN0ZWFk
IG9mIGxpYjxuYW1lPi5hIHRvIGxldCBwZW9wbGUga25vdyB0aGF0IHRoZXNl
IGFyZSBub3QKICAgICAgIyB0eXBpY2FsIEFJWCBzaGFyZWQgbGlicmFyaWVz
LgogICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh
c2V9LnNvJHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfS5zbyRtYWpv
ciAkbGlibmFtZS5zbycKICAgIGVsc2UKICAgICAgIyBXZSBwcmVzZXJ2ZSAu
YSBhcyBleHRlbnNpb24gZm9yIHNoYXJlZCBsaWJyYXJpZXMgdGhyb3VnaCBB
SVg0LjIKICAgICAgIyBhbmQgbGF0ZXIgd2hlbiB3ZSBhcmUgbm90IGRvaW5n
IHJ1biB0aW1lIGxpbmtpbmcuCiAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0n
JHtsaWJuYW1lfSR7cmVsZWFzZX0uYSAkbGlibmFtZS5hJwogICAgICBzb25h
bWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0uc28kbWFqb3InCiAgICBm
aQogICAgc2hsaWJwYXRoX3Zhcj1MSUJQQVRICiAgZmkKICBoYXJkY29kZV9p
bnRvX2xpYnM9eWVzCiAgOzsKCmFtaWdhb3MqKQogIGxpYnJhcnlfbmFtZXNf
c3BlYz0nJGxpYm5hbWUuaXhsaWJyYXJ5ICRsaWJuYW1lLmEnCiAgIyBDcmVh
dGUgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSBlbnRyaWVzIGluIC9zeXMvbGli
cy4KICBmaW5pc2hfZXZhbD0nZm9yIGxpYiBpbiBgbHMgJGxpYmRpci8qLml4
bGlicmFyeSAyPi9kZXYvbnVsbGA7IGRvIGxpYm5hbWU9YCRlY2hvICJYJGxp
YiIgfCAkWHNlZCAtZSAnXCcncyVeLiovXChbXi9dKlwpXC5peGxpYnJhcnkk
JVwxJSdcJydgOyB0ZXN0ICRybSAvc3lzL2xpYnMvJHtsaWJuYW1lfV9peGxp
YnJhcnkuYTsgJHNob3cgIihjZCAvc3lzL2xpYnMgJiYgJExOX1MgJGxpYiAk
e2xpYm5hbWV9X2l4bGlicmFyeS5hKSI7IChjZCAvc3lzL2xpYnMgJiYgJExO
X1MgJGxpYiAke2xpYm5hbWV9X2l4bGlicmFyeS5hKSB8fCBleGl0IDE7IGRv
bmUnCiAgOzsKCmJlb3MqKQogIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJu
YW1lfS5zbycKICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgbGQuc28iCiAg
c2hsaWJwYXRoX3Zhcj1MSUJSQVJZX1BBVEgKICA7OwoKYnNkaTQqKQogIHZl
cnNpb25fdHlwZT1saW51eAogIG5lZWRfdmVyc2lvbj1ubwogIGxpYnJhcnlf
bmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0uc28kdmVyc3VmZml4
ICR7bGlibmFtZX0ke3JlbGVhc2V9LnNvJG1ham9yICRsaWJuYW1lLnNvJwog
IHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfS5zbyRtYWpvcicK
ICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAk
bGliZGlyJwogIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICiAgc3lz
X2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvc2hsaWIgL3Vzci9saWIgL3Vzci9Y
MTEvbGliIC91c3IvY29udHJpYi9saWIgL2xpYiAvdXNyL2xvY2FsL2xpYiIK
ICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3NobGliIC91c3IvbGli
IC91c3IvbG9jYWwvbGliIgogIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0t
cmR5bmFtaWMKICAjIHRoZSBkZWZhdWx0IGxkLnNvLmNvbmYgYWxzbyBjb250
YWlucyAvdXNyL2NvbnRyaWIvbGliIGFuZAogICMgL3Vzci9YMTFSNi9saWIg
KC91c3IvWDExIGlzIGEgbGluayB0byAvdXNyL1gxMVI2KSwgYnV0IGxldCB1
cyBhbGxvdwogICMgbGlidG9vbCB0byBoYXJkLWNvZGUgdGhlc2UgaW50byBw
cm9ncmFtcwogIDs7CgpjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiopCiAgdmVy
c2lvbl90eXBlPXdpbmRvd3MKICBuZWVkX3ZlcnNpb249bm8KICBuZWVkX2xp
Yl9wcmVmaXg9bm8KICBjYXNlICRHQ0MsJGhvc3Rfb3MgaW4KICB5ZXMsY3ln
d2luKikKICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUuZGxsLmEn
CiAgICBzb25hbWVfc3BlYz0nYGVjaG8gJHtsaWJuYW1lfSB8IHNlZCAtZSAn
cy9ebGliL2N5Zy8nYGBlY2hvICR7cmVsZWFzZX0gfCBzZWQgLWUgJ3MvWy5d
Ly0vZydgJHt2ZXJzdWZmaXh9LmRsbCcKICAgIHBvc3RpbnN0YWxsX2NtZHM9
J2RscGF0aD1gYmFzaCAyPiYxIC1jICdcJycuICRkaXIvJHtmaWxlfWk7ZWNo
byBcJGRsbmFtZSdcJydgfgogICAgICBkbGRpcj0kZGVzdGRpci9gZGlybmFt
ZSBcJGRscGF0aGB+CiAgICAgIHRlc3QgLWQgXCRkbGRpciB8fCBta2RpciAt
cCBcJGRsZGlyfgogICAgICAkaW5zdGFsbF9wcm9nIC5saWJzLyRkbG5hbWUg
XCRkbGRpci8kZGxuYW1lJwogICAgcG9zdHVuaW5zdGFsbF9jbWRzPSdkbGRs
bD1gYmFzaCAyPiYxIC1jICdcJycuICRmaWxlOyBlY2hvIFwkZGxuYW1lJ1wn
J2B+CiAgICAgIGRscGF0aD0kZGlyL1wkZGxkbGx+CiAgICAgICAkcm0gXCRk
bHBhdGgnCiAgICA7OwogIHllcyxtaW5ndyopCiAgICBsaWJyYXJ5X25hbWVz
X3NwZWM9JyR7bGlibmFtZX1gZWNobyAke3JlbGVhc2V9IHwgc2VkIC1lICdz
L1suXS8tL2cnYCR7dmVyc3VmZml4fS5kbGwnCiAgICBzeXNfbGliX3NlYXJj
aF9wYXRoX3NwZWM9YCRDQyAtcHJpbnQtc2VhcmNoLWRpcnMgfCBncmVwICJe
bGlicmFyaWVzOiIgfCBzZWQgLWUgInMvXmxpYnJhcmllczovLyIgLWUgInMv
Oy8gL2ciIC1lICJzLD0vLC8sZyJgCiAgICA7OwogIHllcyxwdzMyKikKICAg
IGxpYnJhcnlfbmFtZXNfc3BlYz0nYGVjaG8gJHtsaWJuYW1lfSB8IHNlZCAt
ZSAncy9ebGliL3B3LydgYGVjaG8gJHtyZWxlYXNlfSB8IHNlZCAtZSAncy8u
Ly0vZydgJHt2ZXJzdWZmaXh9LmRsbCcKICAgIDs7CiAgKikKICAgIGxpYnJh
cnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfWBlY2hvICR7cmVsZWFzZX0gfCBz
ZWQgLWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9LmRsbCAkbGlibmFtZS5s
aWInCiAgICA7OwogIGVzYWMKICBkeW5hbWljX2xpbmtlcj0nV2luMzIgbGQu
ZXhlJwogICMgRklYTUU6IGZpcnN0IHdlIHNob3VsZCBzZWFyY2ggLiBhbmQg
dGhlIGRpcmVjdG9yeSB0aGUgZXhlY3V0YWJsZSBpcyBpbgogIHNobGlicGF0
aF92YXI9UEFUSAogIDs7CgpkYXJ3aW4qIHwgcmhhcHNvZHkqKQogIGR5bmFt
aWNfbGlua2VyPSIkaG9zdF9vcyBkeWxkIgogIHZlcnNpb25fdHlwZT1kYXJ3
aW4KICBuZWVkX2xpYl9wcmVmaXg9bm8KICBuZWVkX3ZlcnNpb249bm8KICAj
IEZJWE1FOiBSZWx5aW5nIG9uIHBvc2l4eSAkKCkgd2lsbCBjYXVzZSBwcm9i
bGVtcyBmb3IKICAjICAgICAgICBjcm9zcy1jb21waWxhdGlvbiwgYnV0IHVu
Zm9ydHVuYXRlbHkgdGhlIGVjaG8gdGVzdHMgZG8gbm90CiAgIyAgICAgICAg
eWV0IGRldGVjdCB6c2ggZWNobydzIHJlbW92YWwgb2YgXCBlc2NhcGVzLgog
IGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3Zl
cnN1ZmZpeH0uJCh0ZXN0IC4kbW9kdWxlID0gLnllcyAmJiBlY2hvIHNvIHx8
IGVjaG8gZHlsaWIpICR7bGlibmFtZX0ke3JlbGVhc2V9JHttYWpvcn0uJCh0
ZXN0IC4kbW9kdWxlID0gLnllcyAmJiBlY2hvIHNvIHx8IGVjaG8gZHlsaWIp
ICR7bGlibmFtZX0uJCh0ZXN0IC4kbW9kdWxlID0gLnllcyAmJiBlY2hvIHNv
IHx8IGVjaG8gZHlsaWIpJwogIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHty
ZWxlYXNlfSR7bWFqb3J9LiQodGVzdCAuJG1vZHVsZSA9IC55ZXMgJiYgZWNo
byBzbyB8fCBlY2hvIGR5bGliKScKICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1
bnBhdGg9eWVzCiAgc2hsaWJwYXRoX3Zhcj1EWUxEX0xJQlJBUllfUEFUSAog
IDs7CgpmcmVlYnNkMSopCiAgZHluYW1pY19saW5rZXI9bm8KICA7OwoKZnJl
ZWJzZCopCiAgb2JqZm9ybWF0PWB0ZXN0IC14IC91c3IvYmluL29iamZvcm1h
dCAmJiAvdXNyL2Jpbi9vYmpmb3JtYXQgfHwgZWNobyBhb3V0YAogIHZlcnNp
b25fdHlwZT1mcmVlYnNkLSRvYmpmb3JtYXQKICBjYXNlICR2ZXJzaW9uX3R5
cGUgaW4KICAgIGZyZWVic2QtZWxmKikKICAgICAgbGlicmFyeV9uYW1lc19z
cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfS5zbyR2ZXJzdWZmaXggJHtsaWJu
YW1lfSR7cmVsZWFzZX0uc28gJGxpYm5hbWUuc28nCiAgICAgIG5lZWRfdmVy
c2lvbj1ubwogICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KICAgICAgOzsKICAg
IGZyZWVic2QtKikKICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5h
bWV9JHtyZWxlYXNlfS5zbyR2ZXJzdWZmaXggJGxpYm5hbWUuc28kdmVyc3Vm
Zml4JwogICAgICBuZWVkX3ZlcnNpb249eWVzCiAgICAgIDs7CiAgZXNhYwog
IHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICiAgY2FzZSAkaG9zdF9v
cyBpbgogIGZyZWVic2QyKikKICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVu
cGF0aD15ZXMKICAgIDs7CiAgKikKICAgIHNobGlicGF0aF9vdmVycmlkZXNf
cnVucGF0aD1ubwogICAgaGFyZGNvZGVfaW50b19saWJzPXllcwogICAgOzsK
ICBlc2FjCiAgOzsKCmdudSopCiAgdmVyc2lvbl90eXBlPWxpbnV4CiAgbmVl
ZF9saWJfcHJlZml4PW5vCiAgbmVlZF92ZXJzaW9uPW5vCiAgbGlicmFyeV9u
YW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfS5zbyR2ZXJzdWZmaXgg
JHtsaWJuYW1lfSR7cmVsZWFzZX0uc28ke21ham9yfSAke2xpYm5hbWV9LnNv
JwogIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfS5zbyRtYWpv
cicKICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAogIGhhcmRjb2Rl
X2ludG9fbGlicz15ZXMKICA7OwoKaHB1eDkqIHwgaHB1eDEwKiB8IGhwdXgx
MSopCiAgIyBHaXZlIGEgc29uYW1lIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG1h
am9yIHZlcnNpb24gc28gdGhhdCBkbGQuc2wgcmVmdXNlcyB0bwogICMgbGlu
ayBhZ2FpbnN0IG90aGVyIHZlcnNpb25zLgogIGR5bmFtaWNfbGlua2VyPSIk
aG9zdF9vcyBkbGQuc2wiCiAgdmVyc2lvbl90eXBlPXN1bm9zCiAgbmVlZF9s
aWJfcHJlZml4PW5vCiAgbmVlZF92ZXJzaW9uPW5vCiAgc2hsaWJwYXRoX3Zh
cj1TSExJQl9QQVRICiAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5v
ICMgK3MgaXMgcmVxdWlyZWQgdG8gZW5hYmxlIFNITElCX1BBVEgKICBsaWJy
YXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9LnNsJHZlcnN1
ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfS5zbCRtYWpvciAkbGlibmFtZS5z
bCcKICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0uc2wkbWFq
b3InCiAgIyBIUC1VWCBydW5zICpyZWFsbHkqIHNsb3dseSB1bmxlc3Mgc2hh
cmVkIGxpYnJhcmllcyBhcmUgbW9kZSA1NTUuCiAgcG9zdGluc3RhbGxfY21k
cz0nY2htb2QgNTU1ICRsaWInCiAgOzsKCmlyaXg1KiB8IGlyaXg2KiB8IG5v
bnN0b3B1eCopCiAgY2FzZSAkaG9zdF9vcyBpbgogICAgbm9uc3RvcHV4Kikg
dmVyc2lvbl90eXBlPW5vbnN0b3B1eCA7OwogICAgKikgICAgICAgICAgdmVy
c2lvbl90eXBlPWlyaXggOzsKICBlc2FjCiAgbmVlZF9saWJfcHJlZml4PW5v
CiAgbmVlZF92ZXJzaW9uPW5vCiAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0k
e3JlbGVhc2V9LnNvJG1ham9yJwogIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHts
aWJuYW1lfSR7cmVsZWFzZX0uc28kdmVyc3VmZml4ICR7bGlibmFtZX0ke3Jl
bGVhc2V9LnNvJG1ham9yICR7bGlibmFtZX0ke3JlbGVhc2V9LnNvICRsaWJu
YW1lLnNvJwogIGNhc2UgJGhvc3Rfb3MgaW4KICBpcml4NSogfCBub25zdG9w
dXgqKQogICAgbGlic3VmZj0gc2hsaWJzdWZmPQogICAgOzsKICAqKQogICAg
Y2FzZSAkTEQgaW4gIyBsaWJ0b29sLm00IHdpbGwgYWRkIG9uZSBvZiB0aGVz
ZSBzd2l0Y2hlcyB0byBMRAogICAgKi0zMnwqIi0zMiAiKSBsaWJzdWZmPSBz
aGxpYnN1ZmY9IGxpYm1hZ2ljPTMyLWJpdDs7CiAgICAqLW4zMnwqIi1uMzIg
IikgbGlic3VmZj0zMiBzaGxpYnN1ZmY9TjMyIGxpYm1hZ2ljPU4zMjs7CiAg
ICAqLTY0fCoiLTY0ICIpIGxpYnN1ZmY9NjQgc2hsaWJzdWZmPTY0IGxpYm1h
Z2ljPTY0LWJpdDs7CiAgICAqKSBsaWJzdWZmPSBzaGxpYnN1ZmY9IGxpYm1h
Z2ljPW5ldmVyLW1hdGNoOzsKICAgIGVzYWMKICAgIDs7CiAgZXNhYwogIHNo
bGlicGF0aF92YXI9TERfTElCUkFSWSR7c2hsaWJzdWZmfV9QQVRICiAgc2hs
aWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCiAgc3lzX2xpYl9zZWFyY2hf
cGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0gL2xpYiR7bGlic3VmZn0g
L3Vzci9sb2NhbC9saWIke2xpYnN1ZmZ9IgogIHN5c19saWJfZGxzZWFyY2hf
cGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0gL2xpYiR7bGlic3VmZn0i
CiAgOzsKCiMgTm8gc2hhcmVkIGxpYiBzdXBwb3J0IGZvciBMaW51eCBvbGRs
ZCwgYW91dCwgb3IgY29mZi4KbGludXgtZ251b2xkbGQqIHwgbGludXgtZ251
YW91dCogfCBsaW51eC1nbnVjb2ZmKikKICBkeW5hbWljX2xpbmtlcj1ubwog
IDs7CgojIFRoaXMgbXVzdCBiZSBMaW51eCBFTEYuCmxpbnV4LWdudSopCiAg
dmVyc2lvbl90eXBlPWxpbnV4CiAgbmVlZF9saWJfcHJlZml4PW5vCiAgbmVl
ZF92ZXJzaW9uPW5vCiAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9
JHtyZWxlYXNlfS5zbyR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0u
c28kbWFqb3IgJGxpYm5hbWUuc28nCiAgc29uYW1lX3NwZWM9JyR7bGlibmFt
ZX0ke3JlbGVhc2V9LnNvJG1ham9yJwogIGZpbmlzaF9jbWRzPSdQQVRIPSJc
JFBBVEg6L3NiaW4iIGxkY29uZmlnIC1uICRsaWJkaXInCiAgc2hsaWJwYXRo
X3Zhcj1MRF9MSUJSQVJZX1BBVEgKICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1
bnBhdGg9bm8KICAjIFRoaXMgaW1wbGllcyBubyBmYXN0X2luc3RhbGwsIHdo
aWNoIGlzIHVuYWNjZXB0YWJsZS4KICAjIFNvbWUgcmV3b3JrIHdpbGwgYmUg
bmVlZGVkIHRvIGFsbG93IGZvciBmYXN0X2luc3RhbGwKICAjIGJlZm9yZSB0
aGlzIGNhbiBiZSBlbmFibGVkLgogIGhhcmRjb2RlX2ludG9fbGlicz15ZXMK
CiAgIyBXZSB1c2VkIHRvIHRlc3QgZm9yIC9saWIvbGQuc28uMSBhbmQgZGlz
YWJsZSBzaGFyZWQgbGlicmFyaWVzIG9uCiAgIyBwb3dlcnBjLCBiZWNhdXNl
IE1rTGludXggb25seSBzdXBwb3J0ZWQgc2hhcmVkIGxpYnJhcmllcyB3aXRo
IHRoZQogICMgR05VIGR5bmFtaWMgbGlua2VyLiAgU2luY2UgdGhpcyB3YXMg
YnJva2VuIHdpdGggY3Jvc3MgY29tcGlsZXJzLAogICMgbW9zdCBwb3dlcnBj
LWxpbnV4IGJveGVzIHN1cHBvcnQgZHluYW1pYyBsaW5raW5nIHRoZXNlIGRh
eXMgYW5kCiAgIyBwZW9wbGUgY2FuIGFsd2F5cyAtLWRpc2FibGUtc2hhcmVk
LCB0aGUgdGVzdCB3YXMgcmVtb3ZlZCwgYW5kIHdlCiAgIyBhc3N1bWUgdGhl
IEdOVS9MaW51eCBkeW5hbWljIGxpbmtlciBpcyBpbiB1c2UuCiAgZHluYW1p
Y19saW5rZXI9J0dOVS9MaW51eCBsZC5zbycKCiAgIyBGaW5kIG91dCB3aGlj
aCBBQkkgd2UgYXJlIHVzaW5nIChtdWx0aWxpYiBMaW51eCB4ODZfNjQgaGFj
aykuCiAgbGlic3VmZj0KICBjYXNlICIkaG9zdF9jcHUiIGluCiAgeDg2XzY0
KnxzMzkweCopCiAgICBlY2hvICcjbGluZSA2NDI2ICJjb25maWd1cmUiJyA+
IGNvbmZ0ZXN0LiRhY19leHQKICAgIGlmIHsgKGV2YWwgZWNobyAiJGFzX21l
OiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQogIChldmFsICRhY19j
b21waWxlKSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRM
SU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0
dXMpOyB9OyB0aGVuCiAgICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRl
c3QuJGFjX29iamV4dGAgaW4KICAgICAgKjY0LWJpdCopCiAgICAgICAgbGli
c3VmZj02NAogICAgICAgIDs7CiAgICAgIGVzYWMKICAgIGZpCiAgICBybSAt
cmYgY29uZnRlc3QqCiAgICA7OwogICopCiAgICA7OwogIGVzYWMKICBzeXNf
bGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL2xpYiR7bGlic3VmZn0gL3Vzci9s
aWIke2xpYnN1ZmZ9IgogIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL2xp
YiR7bGlic3VmZn0gL3Vzci9saWIke2xpYnN1ZmZ9IC91c3IvbG9jYWwvbGli
JHtsaWJzdWZmfSIKICA7OwoKbmV0YnNkKikKICB2ZXJzaW9uX3R5cGU9c3Vu
b3MKICBuZWVkX2xpYl9wcmVmaXg9bm8KICBuZWVkX3ZlcnNpb249bm8KICBp
ZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8IGdyZXAgX19FTEZfXyA+L2Rl
di9udWxsOyB0aGVuCiAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFt
ZX0ke3JlbGVhc2V9LnNvJHZlcnN1ZmZpeCAke2xpYm5hbWV9LnNvJHZlcnN1
ZmZpeCcKICAgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxk
Y29uZmlnIC1tICRsaWJkaXInCiAgICBkeW5hbWljX2xpbmtlcj0nTmV0QlNE
IChhLm91dCkgbGQuc28nCiAgZWxzZQogICAgbGlicmFyeV9uYW1lc19zcGVj
PScke2xpYm5hbWV9JHtyZWxlYXNlfS5zbyR2ZXJzdWZmaXggJHtsaWJuYW1l
fSR7cmVsZWFzZX0uc28kbWFqb3IgJHtsaWJuYW1lfSR7cmVsZWFzZX0uc28g
JHtsaWJuYW1lfS5zbycKICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHty
ZWxlYXNlfS5zbyRtYWpvcicKICAgIGR5bmFtaWNfbGlua2VyPSdOZXRCU0Qg
bGQuZWxmX3NvJwogIGZpCiAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BB
VEgKICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCiAgaGFyZGNv
ZGVfaW50b19saWJzPXllcwogIDs7CgpuZXdzb3M2KQogIHZlcnNpb25fdHlw
ZT1saW51eAogIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs
ZWFzZX0uc28kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9LnNvJG1h
am9yICRsaWJuYW1lLnNvJwogIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9Q
QVRICiAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwogIDs7Cgpv
cGVuYnNkKikKICB2ZXJzaW9uX3R5cGU9c3Vub3MKICBuZWVkX2xpYl9wcmVm
aXg9bm8KICBuZWVkX3ZlcnNpb249bm8KICBpZiB0ZXN0IC16ICJgZWNobyBf
X0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX19gIiB8fCB0ZXN0ICIk
aG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRo
ZW4KICAgIGNhc2UgIiRob3N0X29zIiBpbgogICAgb3BlbmJzZDIuWzg5XSB8
IG9wZW5ic2QyLls4OV0uKikKICAgICAgc2hsaWJwYXRoX292ZXJyaWRlc19y
dW5wYXRoPW5vCiAgICAgIDs7CiAgICAqKQogICAgICBzaGxpYnBhdGhfb3Zl
cnJpZGVzX3J1bnBhdGg9eWVzCiAgICAgIDs7CiAgICBlc2FjCiAgZWxzZQog
ICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwogIGZpCiAgbGli
cmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfS5zbyR2ZXJz
dWZmaXggJHtsaWJuYW1lfS5zbyR2ZXJzdWZmaXgnCiAgZmluaXNoX2NtZHM9
J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW0gJGxpYmRpcicKICBz
aGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAogIDs7CgpvczIqKQogIGxp
Ym5hbWVfc3BlYz0nJG5hbWUnCiAgbmVlZF9saWJfcHJlZml4PW5vCiAgbGli
cmFyeV9uYW1lc19zcGVjPSckbGlibmFtZS5kbGwgJGxpYm5hbWUuYScKICBk
eW5hbWljX2xpbmtlcj0nT1MvMiBsZC5leGUnCiAgc2hsaWJwYXRoX3Zhcj1M
SUJQQVRICiAgOzsKCm9zZjMqIHwgb3NmNCogfCBvc2Y1KikKICB2ZXJzaW9u
X3R5cGU9b3NmCiAgbmVlZF92ZXJzaW9uPW5vCiAgc29uYW1lX3NwZWM9JyR7
bGlibmFtZX0ke3JlbGVhc2V9LnNvJG1ham9yJwogIGxpYnJhcnlfbmFtZXNf
c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0uc28kdmVyc3VmZml4ICR7bGli
bmFtZX0ke3JlbGVhc2V9LnNvJG1ham9yICRsaWJuYW1lLnNvJwogIHNobGli
cGF0aF92YXI9TERfTElCUkFSWV9QQVRICiAgc3lzX2xpYl9zZWFyY2hfcGF0
aF9zcGVjPSIvdXNyL3NobGliIC91c3IvY2NzL2xpYiAvdXNyL2xpYi9jbXBs
cnMvY2MgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIgL3Zhci9zaGxpYiIKICBz
eXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2VhcmNoX3Bh
dGhfc3BlYyIKICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCiAgOzsKCnNjbzMu
MnY1KikKICB2ZXJzaW9uX3R5cGU9b3NmCiAgc29uYW1lX3NwZWM9JyR7bGli
bmFtZX0ke3JlbGVhc2V9LnNvJG1ham9yJwogIGxpYnJhcnlfbmFtZXNfc3Bl
Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0uc28kdmVyc3VmZml4ICR7bGlibmFt
ZX0ke3JlbGVhc2V9LnNvJG1ham9yICRsaWJuYW1lLnNvJwogIHNobGlicGF0
aF92YXI9TERfTElCUkFSWV9QQVRICiAgOzsKCnNvbGFyaXMqKQogIHZlcnNp
b25fdHlwZT1saW51eAogIG5lZWRfbGliX3ByZWZpeD1ubwogIG5lZWRfdmVy
c2lvbj1ubwogIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs
ZWFzZX0uc28kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9LnNvJG1h
am9yICRsaWJuYW1lLnNvJwogIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHty
ZWxlYXNlfS5zbyRtYWpvcicKICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllf
UEFUSAogIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKICBoYXJk
Y29kZV9pbnRvX2xpYnM9eWVzCiAgIyBsZGQgY29tcGxhaW5zIHVubGVzcyBs
aWJyYXJpZXMgYXJlIGV4ZWN1dGFibGUKICBwb3N0aW5zdGFsbF9jbWRzPSdj
aG1vZCAreCAkbGliJwogIDs7CgpzdW5vczQqKQogIHZlcnNpb25fdHlwZT1z
dW5vcwogIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz
ZX0uc28kdmVyc3VmZml4ICR7bGlibmFtZX0uc28kdmVyc3VmZml4JwogIGZp
bmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3Vzci9ldGMiIGxkY29uZmlnICRs
aWJkaXInCiAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKICBzaGxp
YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCiAgaWYgdGVzdCAiJHdpdGhf
Z251X2xkIiA9IHllczsgdGhlbgogICAgbmVlZF9saWJfcHJlZml4PW5vCiAg
ZmkKICBuZWVkX3ZlcnNpb249eWVzCiAgOzsKCnN5c3Y0IHwgc3lzdjQuMnV3
MiogfCBzeXN2NC4zKiB8IHN5c3Y1KikKICB2ZXJzaW9uX3R5cGU9bGludXgK
ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9LnNv
JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfS5zbyRtYWpvciAkbGli
bmFtZS5zbycKICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0u
c28kbWFqb3InCiAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKICBj
YXNlICRob3N0X3ZlbmRvciBpbgogICAgc25pKQogICAgICBzaGxpYnBhdGhf
b3ZlcnJpZGVzX3J1bnBhdGg9bm8KICAgICAgbmVlZF9saWJfcHJlZml4PW5v
CiAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0tQmxhcmdl
ZHluc3ltJwogICAgICBydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAogICAgICA7
OwogICAgc2llbWVucykKICAgICAgbmVlZF9saWJfcHJlZml4PW5vCiAgICAg
IDs7CiAgICBtb3Rvcm9sYSkKICAgICAgbmVlZF9saWJfcHJlZml4PW5vCiAg
ICAgIG5lZWRfdmVyc2lvbj1ubwogICAgICBzaGxpYnBhdGhfb3ZlcnJpZGVz
X3J1bnBhdGg9bm8KICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScv
bGliIC91c3IvbGliIC91c3IvY2NzL2xpYicKICAgICAgOzsKICBlc2FjCiAg
OzsKCnV0czQqKQogIHZlcnNpb25fdHlwZT1saW51eAogIGxpYnJhcnlfbmFt
ZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0uc28kdmVyc3VmZml4ICR7
bGlibmFtZX0ke3JlbGVhc2V9LnNvJG1ham9yICRsaWJuYW1lLnNvJwogIHNv
bmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfS5zbyRtYWpvcicKICBz
aGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAogIDs7CgpkZ3V4KikKICB2
ZXJzaW9uX3R5cGU9bGludXgKICBuZWVkX2xpYl9wcmVmaXg9bm8KICBuZWVk
X3ZlcnNpb249bm8KICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0k
e3JlbGVhc2V9LnNvJHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfS5z
byRtYWpvciAkbGlibmFtZS5zbycKICBzb25hbWVfc3BlYz0nJHtsaWJuYW1l
fSR7cmVsZWFzZX0uc28kbWFqb3InCiAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJS
QVJZX1BBVEgKICA7OwoKc3lzdjQqTVAqKQogIGlmIHRlc3QgLWQgL3Vzci9u
ZWMgO3RoZW4KICAgIHZlcnNpb25fdHlwZT1saW51eAogICAgbGlicmFyeV9u
YW1lc19zcGVjPSckbGlibmFtZS5zby4kdmVyc3VmZml4ICRsaWJuYW1lLnNv
LiRtYWpvciAkbGlibmFtZS5zbycKICAgIHNvbmFtZV9zcGVjPSckbGlibmFt
ZS5zby4kbWFqb3InCiAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFU
SAogIGZpCiAgOzsKCiopCiAgZHluYW1pY19saW5rZXI9bm8KICA7Owplc2Fj
CmVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRkeW5hbWljX2xpbmtl
ciIgPiY1CmVjaG8gIiR7RUNIT19UfSRkeW5hbWljX2xpbmtlciIgPiY2CnRl
c3QgIiRkeW5hbWljX2xpbmtlciIgPSBubyAmJiBjYW5fYnVpbGRfc2hhcmVk
PW5vCiMjCiMjIEVORCBGSVhNRQoKIyMgRklYTUU6IHRoaXMgc2hvdWxkIGJl
IGEgc2VwYXJhdGUgbWFjcm8KIyMKIyBSZXBvcnQgdGhlIGZpbmFsIGNvbnNl
cXVlbmNlcy4KZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmIGxp
YnRvb2wgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcyIgPiY1CmVjaG8gJEVD
SE9fTiAiY2hlY2tpbmcgaWYgbGlidG9vbCBzdXBwb3J0cyBzaGFyZWQgbGli
cmFyaWVzLi4uICRFQ0hPX0MiID4mNgplY2hvICIkYXNfbWU6JExJTkVOTzog
cmVzdWx0OiAkY2FuX2J1aWxkX3NoYXJlZCIgPiY1CmVjaG8gIiR7RUNIT19U
fSRjYW5fYnVpbGRfc2hhcmVkIiA+JjYKIyMKIyMgRU5EIEZJWE1FCgojIyBG
SVhNRTogdGhpcyBzaG91bGQgYmUgYSBzZXBhcmF0ZSBtYWNybwojIwplY2hv
ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0byBidWlsZCBz
aGFyZWQgbGlicmFyaWVzIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyB3
aGV0aGVyIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMuLi4gJEVDSE9fQyIg
PiY2CnRlc3QgIiRjYW5fYnVpbGRfc2hhcmVkIiA9ICJubyIgJiYgZW5hYmxl
X3NoYXJlZD1ubwoKIyBPbiBBSVgsIHNoYXJlZCBsaWJyYXJpZXMgYW5kIHN0
YXRpYyBsaWJyYXJpZXMgdXNlIHRoZSBzYW1lIG5hbWVzcGFjZSwgYW5kCiMg
YXJlIGFsbCBidWlsdCBmcm9tIFBJQy4KY2FzZSAiJGhvc3Rfb3MiIGluCmFp
eDMqKQogIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVf
c3RhdGljPW5vCiAgaWYgdGVzdCAtbiAiJFJBTkxJQiI7IHRoZW4KICAgIGFy
Y2hpdmVfY21kcz0iJGFyY2hpdmVfY21kc35cJFJBTkxJQiBcJGxpYiIKICAg
IHBvc3RpbnN0YWxsX2NtZHM9JyRSQU5MSUIgJGxpYicKICBmaQogIDs7Cgph
aXg0KikKICBpZiB0ZXN0ICIkaG9zdF9jcHUiICE9IGlhNjQgJiYgdGVzdCAi
JGFpeF91c2VfcnVudGltZWxpbmtpbmciID0gbm8gOyB0aGVuCiAgICB0ZXN0
ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgZW5hYmxlX3N0YXRpYz1ubwog
IGZpCiAgOzsKZXNhYwplY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk
ZW5hYmxlX3NoYXJlZCIgPiY1CmVjaG8gIiR7RUNIT19UfSRlbmFibGVfc2hh
cmVkIiA+JjYKIyMKIyMgRU5EIEZJWE1FCgojIyBGSVhNRTogdGhpcyBzaG91
bGQgYmUgYSBzZXBhcmF0ZSBtYWNybwojIwplY2hvICIkYXNfbWU6JExJTkVO
TzogY2hlY2tpbmcgd2hldGhlciB0byBidWlsZCBzdGF0aWMgbGlicmFyaWVz
IiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyB3aGV0aGVyIHRvIGJ1aWxk
IHN0YXRpYyBsaWJyYXJpZXMuLi4gJEVDSE9fQyIgPiY2CiMgTWFrZSBzdXJl
IGVpdGhlciBlbmFibGVfc2hhcmVkIG9yIGVuYWJsZV9zdGF0aWMgaXMgeWVz
Lgp0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgfHwgZW5hYmxlX3N0YXRp
Yz15ZXMKZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGVuYWJsZV9z
dGF0aWMiID4mNQplY2hvICIke0VDSE9fVH0kZW5hYmxlX3N0YXRpYyIgPiY2
CiMjCiMjIEVORCBGSVhNRQoKaWYgdGVzdCAiJGhhcmRjb2RlX2FjdGlvbiIg
PSByZWxpbms7IHRoZW4KICAjIEZhc3QgaW5zdGFsbGF0aW9uIGlzIG5vdCBz
dXBwb3J0ZWQKICBlbmFibGVfZmFzdF9pbnN0YWxsPW5vCmVsaWYgdGVzdCAi
JHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aCIgPSB5ZXMgfHwKICAgICB0
ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSBubzsgdGhlbgogICMgRmFzdCBpbnN0
YWxsYXRpb24gaXMgbm90IG5lY2Vzc2FyeQogIGVuYWJsZV9mYXN0X2luc3Rh
bGw9bmVlZGxlc3MKZmkKCnZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSJQ
QVRIICRzaGxpYnBhdGhfdmFyICRydW5wYXRoX3ZhciIKaWYgdGVzdCAiJEdD
QyIgPSB5ZXM7IHRoZW4KICB2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluaz0i
JHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rIEdDQ19FWEVDX1BSRUZJWCBD
T01QSUxFUl9QQVRIIExJQlJBUllfUEFUSCIKZmkKCmlmIHRlc3QgIngkZW5h
YmxlX2Rsb3BlbiIgIT0geHllczsgdGhlbgogIGVuYWJsZV9kbG9wZW49dW5r
bm93bgogIGVuYWJsZV9kbG9wZW5fc2VsZj11bmtub3duCiAgZW5hYmxlX2Rs
b3Blbl9zZWxmX3N0YXRpYz11bmtub3duCmVsc2UKICBsdF9jdl9kbG9wZW49
bm8KICBsdF9jdl9kbG9wZW5fbGlicz0KCiAgY2FzZSAkaG9zdF9vcyBpbgog
IGJlb3MqKQogICAgbHRfY3ZfZGxvcGVuPSJsb2FkX2FkZF9vbiIKICAgIGx0
X2N2X2Rsb3Blbl9saWJzPQogICAgbHRfY3ZfZGxvcGVuX3NlbGY9eWVzCiAg
ICA7OwoKICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiopCiAgICBsdF9jdl9k
bG9wZW49IkxvYWRMaWJyYXJ5IgogICAgbHRfY3ZfZGxvcGVuX2xpYnM9CiAg
IDs7CgogICopCiAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcg
Zm9yIHNobF9sb2FkIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Ig
c2hsX2xvYWQuLi4gJEVDSE9fQyIgPiY2CmlmIHRlc3QgIiR7YWNfY3ZfZnVu
Y19zaGxfbG9hZCtzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAi
KGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBjYXQgPmNvbmZ0ZXN0LiRh
Y19leHQgPDxfQUNFT0YKI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgovKiBj
b25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRl
c3QuJGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8q
IGVuZCBjb25mZGVmcy5oLiAgKi8KLyogU3lzdGVtIGhlYWRlciB0byBkZWZp
bmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVz
LAogICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBzaGxfbG9hZCAo
KTsgYmVsb3cuCiAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+
IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCiAgICA8bGltaXRzLmg+
IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwoj
aWZkZWYgX19TVERDX18KIyBpbmNsdWRlIDxsaW1pdHMuaD4KI2Vsc2UKIyBp
bmNsdWRlIDxhc3NlcnQuaD4KI2VuZGlmCi8qIE92ZXJyaWRlIGFueSBnY2My
IGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCiNp
ZmRlZiBfX2NwbHVzcGx1cwpleHRlcm4gIkMiCnsKI2VuZGlmCi8qIFdlIHVz
ZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlw
ZSBvZiBhIGdjYzIKICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQg
cHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KY2hhciBzaGxfbG9h
ZCAoKTsKLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBm
dW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwogICAgdG8gYWx3YXlzIGZh
aWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkg
bmFtZWQKICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUg
bm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwojaWYgZGVmaW5lZCAoX19z
dHViX3NobF9sb2FkKSB8fCBkZWZpbmVkIChfX3N0dWJfX19zaGxfbG9hZCkK
Y2hva2UgbWUKI2Vsc2UKY2hhciAoKmYpICgpID0gc2hsX2xvYWQ7CiNlbmRp
ZgojaWZkZWYgX19jcGx1c3BsdXMKfQojZW5kaWYKCmludAptYWluICgpCnsK
cmV0dXJuIGYgIT0gc2hsX2xvYWQ7CiAgOwogIHJldHVybiAwOwp9Cl9BQ0VP
RgpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4
dAppZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5r
XCIiKSA+JjUKICAoZXZhbCAkYWNfbGluaykgMj4mNQogIGFjX3N0YXR1cz0k
PwogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+
JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgogICAgICAgICB7IGFjX3Ry
eT0ndGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQnCiAgeyAoZXZhbCBlY2hv
ICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKICAoZXZhbCAk
YWNfdHJ5KSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRM
SU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0
dXMpOyB9OyB9OyB0aGVuCiAgYWNfY3ZfZnVuY19zaGxfbG9hZD15ZXMKZWxz
ZQogIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNl
ZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCmFjX2N2X2Z1bmNf
c2hsX2xvYWQ9bm8KZmkKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25m
dGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dApmaQplY2hvICIkYXNf
bWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfZnVuY19zaGxfbG9hZCIgPiY1
CmVjaG8gIiR7RUNIT19UfSRhY19jdl9mdW5jX3NobF9sb2FkIiA+JjYKaWYg
dGVzdCAkYWNfY3ZfZnVuY19zaGxfbG9hZCA9IHllczsgdGhlbgogIGx0X2N2
X2Rsb3Blbj0ic2hsX2xvYWQiCmVsc2UKICBlY2hvICIkYXNfbWU6JExJTkVO
TzogY2hlY2tpbmcgZm9yIHNobF9sb2FkIGluIC1sZGxkIiA+JjUKZWNobyAk
RUNIT19OICJjaGVja2luZyBmb3Igc2hsX2xvYWQgaW4gLWxkbGQuLi4gJEVD
SE9fQyIgPiY2CmlmIHRlc3QgIiR7YWNfY3ZfbGliX2RsZF9zaGxfbG9hZCtz
ZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVD
SE9fQyIgPiY2CmVsc2UKICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJT
CkxJQlM9Ii1sZGxkICAkTElCUyIKY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8
X0FDRU9GCiNsaW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKLyogY29uZmRlZnMu
aC4gICovCl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19l
eHQKY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQgY29u
ZmRlZnMuaC4gICovCgovKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBw
cm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwojaWZkZWYgX19jcGx1
c3BsdXMKZXh0ZXJuICJDIgojZW5kaWYKLyogV2UgdXNlIGNoYXIgYmVjYXVz
ZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMgog
ICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291
bGQgc3RpbGwgYXBwbHkuICAqLwpjaGFyIHNobF9sb2FkICgpOwppbnQKbWFp
biAoKQp7CnNobF9sb2FkICgpOwogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YK
cm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQK
aWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wi
IikgPiY1CiAgKGV2YWwgJGFjX2xpbmspIDI+JjUKICBhY19zdGF0dXM9JD8K
ICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1
CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKICAgICAgICAgeyBhY190cnk9
J3Rlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0JwogIHsgKGV2YWwgZWNobyAi
JGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CiAgKGV2YWwgJGFj
X3RyeSkgMj4mNQogIGFjX3N0YXR1cz0kPwogIGVjaG8gIiRhc19tZTokTElO
RU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVz
KTsgfTsgfTsgdGhlbgogIGFjX2N2X2xpYl9kbGRfc2hsX2xvYWQ9eWVzCmVs
c2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpz
ZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgphY19jdl9saWJf
ZGxkX3NobF9sb2FkPW5vCmZpCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQg
Y29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKTElCUz0kYWNf
Y2hlY2tfbGliX3NhdmVfTElCUwpmaQplY2hvICIkYXNfbWU6JExJTkVOTzog
cmVzdWx0OiAkYWNfY3ZfbGliX2RsZF9zaGxfbG9hZCIgPiY1CmVjaG8gIiR7
RUNIT19UfSRhY19jdl9saWJfZGxkX3NobF9sb2FkIiA+JjYKaWYgdGVzdCAk
YWNfY3ZfbGliX2RsZF9zaGxfbG9hZCA9IHllczsgdGhlbgogIGx0X2N2X2Rs
b3Blbj0ic2hsX2xvYWQiIGx0X2N2X2Rsb3Blbl9saWJzPSItZGxkIgplbHNl
CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBkbG9wZW4i
ID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBkbG9wZW4uLi4gJEVD
SE9fQyIgPiY2CmlmIHRlc3QgIiR7YWNfY3ZfZnVuY19kbG9wZW4rc2V0fSIg
PSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0Mi
ID4mNgplbHNlCiAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCiNs
aW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKLyogY29uZmRlZnMuaC4gICovCl9B
Q0VPRgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+
Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4g
ICovCi8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3Mg
YW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKICAgIHdoaWNoIGNhbiBj
b25mbGljdCB3aXRoIGNoYXIgZGxvcGVuICgpOyBiZWxvdy4KICAgIFByZWZl
ciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVm
aW5lZCwgc2luY2UKICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJl
ZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCiNpZmRlZiBfX1NURENfXwojIGlu
Y2x1ZGUgPGxpbWl0cy5oPgojZWxzZQojIGluY2x1ZGUgPGFzc2VydC5oPgoj
ZW5kaWYKLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJvdG90eXBl
IHRvIGF2b2lkIGFuIGVycm9yLiAgKi8KI2lmZGVmIF9fY3BsdXNwbHVzCmV4
dGVybiAiQyIKewojZW5kaWYKLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQg
bWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMgogICBidWls
dGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3Rp
bGwgYXBwbHkuICAqLwpjaGFyIGRsb3BlbiAoKTsKLyogVGhlIEdOVSBDIGxp
YnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1w
bGVtZW50cwogICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21l
IGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKICAgIHNvbWV0aGluZyBz
dGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxp
YXMuICAqLwojaWYgZGVmaW5lZCAoX19zdHViX2Rsb3BlbikgfHwgZGVmaW5l
ZCAoX19zdHViX19fZGxvcGVuKQpjaG9rZSBtZQojZWxzZQpjaGFyICgqZikg
KCkgPSBkbG9wZW47CiNlbmRpZgojaWZkZWYgX19jcGx1c3BsdXMKfQojZW5k
aWYKCmludAptYWluICgpCnsKcmV0dXJuIGYgIT0gZGxvcGVuOwogIDsKICBy
ZXR1cm4gMDsKfQpfQUNFT0YKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBj
b25mdGVzdCRhY19leGVleHQKaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJ
TkVOTzogXCIkYWNfbGlua1wiIikgPiY1CiAgKGV2YWwgJGFjX2xpbmspIDI+
JjUKICBhY19zdGF0dXM9JD8KICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/
ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYK
ICAgICAgICAgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0
JwogIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwi
IikgPiY1CiAgKGV2YWwgJGFjX3RyeSkgMj4mNQogIGFjX3N0YXR1cz0kPwog
IGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK
ICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgogIGFjX2N2X2Z1bmNf
ZGxvcGVuPXllcwplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3Jh
bSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4m
NQoKYWNfY3ZfZnVuY19kbG9wZW49bm8KZmkKcm0gLWYgY29uZnRlc3QuJGFj
X29iamV4dCBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dApm
aQplY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfZnVuY19k
bG9wZW4iID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3ZfZnVuY19kbG9wZW4i
ID4mNgppZiB0ZXN0ICRhY19jdl9mdW5jX2Rsb3BlbiA9IHllczsgdGhlbgog
IGx0X2N2X2Rsb3Blbj0iZGxvcGVuIgplbHNlCiAgZWNobyAiJGFzX21lOiRM
SU5FTk86IGNoZWNraW5nIGZvciBkbG9wZW4gaW4gLWxkbCIgPiY1CmVjaG8g
JEVDSE9fTiAiY2hlY2tpbmcgZm9yIGRsb3BlbiBpbiAtbGRsLi4uICRFQ0hP
X0MiID4mNgppZiB0ZXN0ICIke2FjX2N2X2xpYl9kbF9kbG9wZW4rc2V0fSIg
PSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0Mi
ID4mNgplbHNlCiAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUwpMSUJT
PSItbGRsICAkTElCUyIKY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G
CiNsaW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKLyogY29uZmRlZnMuaC4gICov
Cl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0
ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMu
aC4gICovCgovKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5
cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwojaWZkZWYgX19jcGx1c3BsdXMK
ZXh0ZXJuICJDIgojZW5kaWYKLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQg
bWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMgogICBidWls
dGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3Rp
bGwgYXBwbHkuICAqLwpjaGFyIGRsb3BlbiAoKTsKaW50Cm1haW4gKCkKewpk
bG9wZW4gKCk7CiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgpybSAtZiBjb25m
dGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAppZiB7IChldmFs
IGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKICAo
ZXZhbCAkYWNfbGluaykgMj4mNQogIGFjX3N0YXR1cz0kPwogIGVjaG8gIiRh
c19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAk
YWNfc3RhdHVzKTsgfSAmJgogICAgICAgICB7IGFjX3RyeT0ndGVzdCAtcyBj
b25mdGVzdCRhY19leGVleHQnCiAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJ
TkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKICAoZXZhbCAkYWNfdHJ5KSAyPiY1
CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9
ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0
aGVuCiAgYWNfY3ZfbGliX2RsX2Rsb3Blbj15ZXMKZWxzZQogIGVjaG8gIiRh
c19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycg
Y29uZnRlc3QuJGFjX2V4dCA+JjUKCmFjX2N2X2xpYl9kbF9kbG9wZW49bm8K
ZmkKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVl
eHQgY29uZnRlc3QuJGFjX2V4dApMSUJTPSRhY19jaGVja19saWJfc2F2ZV9M
SUJTCmZpCmVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9s
aWJfZGxfZGxvcGVuIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2xpYl9k
bF9kbG9wZW4iID4mNgppZiB0ZXN0ICRhY19jdl9saWJfZGxfZGxvcGVuID0g
eWVzOyB0aGVuCiAgbHRfY3ZfZGxvcGVuPSJkbG9wZW4iIGx0X2N2X2Rsb3Bl
bl9saWJzPSItbGRsIgplbHNlCiAgZWNobyAiJGFzX21lOiRMSU5FTk86IGNo
ZWNraW5nIGZvciBkbG9wZW4gaW4gLWxzdmxkIiA+JjUKZWNobyAkRUNIT19O
ICJjaGVja2luZyBmb3IgZGxvcGVuIGluIC1sc3ZsZC4uLiAkRUNIT19DIiA+
JjYKaWYgdGVzdCAiJHthY19jdl9saWJfc3ZsZF9kbG9wZW4rc2V0fSIgPSBz
ZXQ7IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4m
NgplbHNlCiAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUwpMSUJTPSIt
bHN2bGQgICRMSUJTIgpjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK
I2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgovKiBjb25mZGVmcy5oLiAgKi8K
X0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQg
Pj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5o
LiAgKi8KCi8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlw
ZSB0byBhdm9pZCBhbiBlcnJvci4gICovCiNpZmRlZiBfX2NwbHVzcGx1cwpl
eHRlcm4gIkMiCiNlbmRpZgovKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBt
aWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCiAgIGJ1aWx0
aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGls
bCBhcHBseS4gICovCmNoYXIgZGxvcGVuICgpOwppbnQKbWFpbiAoKQp7CmRs
b3BlbiAoKTsKICA7CiAgcmV0dXJuIDA7Cn0KX0FDRU9GCnJtIC1mIGNvbmZ0
ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CmlmIHsgKGV2YWwg
ZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQogIChl
dmFsICRhY19saW5rKSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFz
X21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRh
Y19zdGF0dXMpOyB9ICYmCiAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNv
bmZ0ZXN0JGFjX2V4ZWV4dCcKICB7IChldmFsIGVjaG8gIiRhc19tZTokTElO
RU5POiBcIiRhY190cnlcIiIpID4mNQogIChldmFsICRhY190cnkpIDI+JjUK
ICBhY19zdGF0dXM9JD8KICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0g
JGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRo
ZW4KICBhY19jdl9saWJfc3ZsZF9kbG9wZW49eWVzCmVsc2UKICBlY2hvICIk
YXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8n
IGNvbmZ0ZXN0LiRhY19leHQgPiY1CgphY19jdl9saWJfc3ZsZF9kbG9wZW49
bm8KZmkKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19l
eGVleHQgY29uZnRlc3QuJGFjX2V4dApMSUJTPSRhY19jaGVja19saWJfc2F2
ZV9MSUJTCmZpCmVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19j
dl9saWJfc3ZsZF9kbG9wZW4iID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3Zf
bGliX3N2bGRfZGxvcGVuIiA+JjYKaWYgdGVzdCAkYWNfY3ZfbGliX3N2bGRf
ZGxvcGVuID0geWVzOyB0aGVuCiAgbHRfY3ZfZGxvcGVuPSJkbG9wZW4iIGx0
X2N2X2Rsb3Blbl9saWJzPSItbHN2bGQiCmVsc2UKICBlY2hvICIkYXNfbWU6
JExJTkVOTzogY2hlY2tpbmcgZm9yIGRsZF9saW5rIGluIC1sZGxkIiA+JjUK
ZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgZGxkX2xpbmsgaW4gLWxkbGQu
Li4gJEVDSE9fQyIgPiY2CmlmIHRlc3QgIiR7YWNfY3ZfbGliX2RsZF9kbGRf
bGluaytzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hl
ZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBhY19jaGVja19saWJfc2F2ZV9MSUJT
PSRMSUJTCkxJQlM9Ii1sZGxkICAkTElCUyIKY2F0ID5jb25mdGVzdC4kYWNf
ZXh0IDw8X0FDRU9GCiNsaW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKLyogY29u
ZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0
LiRhY19leHQKY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBl
bmQgY29uZmRlZnMuaC4gICovCgovKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRl
cm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwojaWZkZWYg
X19jcGx1c3BsdXMKZXh0ZXJuICJDIgojZW5kaWYKLyogV2UgdXNlIGNoYXIg
YmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEg
Z2NjMgogICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5
cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwpjaGFyIGRsZF9saW5rICgpOwpp
bnQKbWFpbiAoKQp7CmRsZF9saW5rICgpOwogIDsKICByZXR1cm4gMDsKfQpf
QUNFT0YKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19l
eGVleHQKaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNf
bGlua1wiIikgPiY1CiAgKGV2YWwgJGFjX2xpbmspIDI+JjUKICBhY19zdGF0
dXM9JD8KICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1
cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKICAgICAgICAgeyBh
Y190cnk9J3Rlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0JwogIHsgKGV2YWwg
ZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CiAgKGV2
YWwgJGFjX3RyeSkgMj4mNQogIGFjX3N0YXR1cz0kPwogIGVjaG8gIiRhc19t
ZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNf
c3RhdHVzKTsgfTsgfTsgdGhlbgogIGFjX2N2X2xpYl9kbGRfZGxkX2xpbms9
eWVzCmVsc2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoi
ID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgphY19j
dl9saWJfZGxkX2RsZF9saW5rPW5vCmZpCnJtIC1mIGNvbmZ0ZXN0LiRhY19v
YmpleHQgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKTElC
Uz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwpmaQplY2hvICIkYXNfbWU6JExJ
TkVOTzogcmVzdWx0OiAkYWNfY3ZfbGliX2RsZF9kbGRfbGluayIgPiY1CmVj
aG8gIiR7RUNIT19UfSRhY19jdl9saWJfZGxkX2RsZF9saW5rIiA+JjYKaWYg
dGVzdCAkYWNfY3ZfbGliX2RsZF9kbGRfbGluayA9IHllczsgdGhlbgogIGx0
X2N2X2Rsb3Blbj0iZGxkX2xpbmsiIGx0X2N2X2Rsb3Blbl9saWJzPSItZGxk
IgpmaQoKCmZpCgoKZmkKCgpmaQoKCmZpCgoKZmkKCiAgICA7OwogIGVzYWMK
CiAgaWYgdGVzdCAieCRsdF9jdl9kbG9wZW4iICE9IHhubzsgdGhlbgogICAg
ZW5hYmxlX2Rsb3Blbj15ZXMKICBlbHNlCiAgICBlbmFibGVfZGxvcGVuPW5v
CiAgZmkKCiAgY2FzZSAkbHRfY3ZfZGxvcGVuIGluCiAgZGxvcGVuKQogICAg
c2F2ZV9DUFBGTEFHUz0iJENQUEZMQUdTIgogICAgICAgIHRlc3QgIngkYWNf
Y3ZfaGVhZGVyX2RsZmNuX2giID0geHllcyAmJiBDUFBGTEFHUz0iJENQUEZM
QUdTIC1ESEFWRV9ETEZDTl9IIgoKICAgIHNhdmVfTERGTEFHUz0iJExERkxB
R1MiCiAgICBldmFsIExERkxBR1M9XCJcJExERkxBR1MgJGV4cG9ydF9keW5h
bWljX2ZsYWdfc3BlY1wiCgogICAgc2F2ZV9MSUJTPSIkTElCUyIKICAgIExJ
QlM9IiRsdF9jdl9kbG9wZW5fbGlicyAkTElCUyIKCiAgICBlY2hvICIkYXNf
bWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciBhIHByb2dyYW0gY2FuIGRs
b3BlbiBpdHNlbGYiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIHdoZXRo
ZXIgYSBwcm9ncmFtIGNhbiBkbG9wZW4gaXRzZWxmLi4uICRFQ0hPX0MiID4m
NgppZiB0ZXN0ICIke2x0X2N2X2Rsb3Blbl9zZWxmK3NldH0iID0gc2V0OyB0
aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZWxz
ZQogIAkgIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVu
IDoKICBsdF9jdl9kbG9wZW5fc2VsZj1jcm9zcwplbHNlCiAgICBsdF9kbHVu
a25vd249MDsgbHRfZGxub191c2NvcmU9MTsgbHRfZGxuZWVkX3VzY29yZT0y
CiAgbHRfc3RhdHVzPSRsdF9kbHVua25vd24KICBjYXQgPiBjb25mdGVzdC4k
YWNfZXh0IDw8RU9GCiNsaW5lIDcxMTIgImNvbmZpZ3VyZSIKI2luY2x1ZGUg
ImNvbmZkZWZzLmgiCgojaWYgSEFWRV9ETEZDTl9ICiNpbmNsdWRlIDxkbGZj
bi5oPgojZW5kaWYKCiNpbmNsdWRlIDxzdGRpby5oPgoKI2lmZGVmIFJUTERf
R0xPQkFMCiMgIGRlZmluZSBMVF9ETEdMT0JBTAkJUlRMRF9HTE9CQUwKI2Vs
c2UKIyAgaWZkZWYgRExfR0xPQkFMCiMgICAgZGVmaW5lIExUX0RMR0xPQkFM
CQlETF9HTE9CQUwKIyAgZWxzZQojICAgIGRlZmluZSBMVF9ETEdMT0JBTAkJ
MAojICBlbmRpZgojZW5kaWYKCi8qIFdlIG1heSBoYXZlIHRvIGRlZmluZSBM
VF9ETExBWllfT1JfTk9XIGluIHRoZSBjb21tYW5kIGxpbmUgaWYgd2UKICAg
ZmluZCBvdXQgaXQgZG9lcyBub3Qgd29yayBpbiBzb21lIHBsYXRmb3JtLiAq
LwojaWZuZGVmIExUX0RMTEFaWV9PUl9OT1cKIyAgaWZkZWYgUlRMRF9MQVpZ
CiMgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJCVJUTERfTEFaWQojICBl
bHNlCiMgICAgaWZkZWYgRExfTEFaWQojICAgICAgZGVmaW5lIExUX0RMTEFa
WV9PUl9OT1cJCURMX0xBWlkKIyAgICBlbHNlCiMgICAgICBpZmRlZiBSVExE
X05PVwojICAgICAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwlSVExEX05P
VwojICAgICAgZWxzZQojICAgICAgICBpZmRlZiBETF9OT1cKIyAgICAgICAg
ICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwlETF9OT1cKIyAgICAgICAgZWxz
ZQojICAgICAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCTAKIyAgICAg
ICAgZW5kaWYKIyAgICAgIGVuZGlmCiMgICAgZW5kaWYKIyAgZW5kaWYKI2Vu
ZGlmCgojaWZkZWYgX19jcGx1c3BsdXMKZXh0ZXJuICJDIiB2b2lkIGV4aXQg
KGludCk7CiNlbmRpZgoKdm9pZCBmbm9yZCgpIHsgaW50IGk9NDI7fQppbnQg
bWFpbiAoKQp7CiAgdm9pZCAqc2VsZiA9IGRsb3BlbiAoMCwgTFRfRExHTE9C
QUx8TFRfRExMQVpZX09SX05PVyk7CiAgaW50IHN0YXR1cyA9ICRsdF9kbHVu
a25vd247CgogIGlmIChzZWxmKQogICAgewogICAgICBpZiAoZGxzeW0gKHNl
bGYsImZub3JkIikpICAgICAgIHN0YXR1cyA9ICRsdF9kbG5vX3VzY29yZTsK
ICAgICAgZWxzZSBpZiAoZGxzeW0oIHNlbGYsIl9mbm9yZCIpKSBzdGF0dXMg
PSAkbHRfZGxuZWVkX3VzY29yZTsKICAgICAgLyogZGxjbG9zZSAoc2VsZik7
ICovCiAgICB9CgogICAgZXhpdCAoc3RhdHVzKTsKfQpFT0YKICBpZiB7IChl
dmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUK
ICAoZXZhbCAkYWNfbGluaykgMj4mNQogIGFjX3N0YXR1cz0kPwogIGVjaG8g
IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhp
dCAkYWNfc3RhdHVzKTsgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVl
eHR9IDI+L2Rldi9udWxsOyB0aGVuCiAgICAoLi9jb25mdGVzdDsgZXhpdDsg
KSAyPi9kZXYvbnVsbAogICAgbHRfc3RhdHVzPSQ/CiAgICBjYXNlIHgkbHRf
c3RhdHVzIGluCiAgICAgIHgkbHRfZGxub191c2NvcmUpIGx0X2N2X2Rsb3Bl
bl9zZWxmPXllcyA7OwogICAgICB4JGx0X2RsbmVlZF91c2NvcmUpIGx0X2N2
X2Rsb3Blbl9zZWxmPXllcyA7OwogICAgICB4JGx0X3Vua25vd258eCopIGx0
X2N2X2Rsb3Blbl9zZWxmPW5vIDs7CiAgICBlc2FjCiAgZWxzZSA6CiAgICAj
IGNvbXBpbGF0aW9uIGZhaWxlZAogICAgbHRfY3ZfZGxvcGVuX3NlbGY9bm8K
ICBmaQpmaQpybSAtZnIgY29uZnRlc3QqCgoKZmkKZWNobyAiJGFzX21lOiRM
SU5FTk86IHJlc3VsdDogJGx0X2N2X2Rsb3Blbl9zZWxmIiA+JjUKZWNobyAi
JHtFQ0hPX1R9JGx0X2N2X2Rsb3Blbl9zZWxmIiA+JjYKCiAgICBpZiB0ZXN0
ICJ4JGx0X2N2X2Rsb3Blbl9zZWxmIiA9IHh5ZXM7IHRoZW4KICAgICAgTERG
TEFHUz0iJExERkxBR1MgJGxpbmtfc3RhdGljX2ZsYWciCiAgICAgIGVjaG8g
IiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIGEgc3RhdGljYWxs
eSBsaW5rZWQgcHJvZ3JhbSBjYW4gZGxvcGVuIGl0c2VsZiIgPiY1CmVjaG8g
JEVDSE9fTiAiY2hlY2tpbmcgd2hldGhlciBhIHN0YXRpY2FsbHkgbGlua2Vk
IHByb2dyYW0gY2FuIGRsb3BlbiBpdHNlbGYuLi4gJEVDSE9fQyIgPiY2Cmlm
IHRlc3QgIiR7bHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljK3NldH0iID0gc2V0
OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYK
ZWxzZQogIAkgIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0
aGVuIDoKICBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWM9Y3Jvc3MKZWxzZQog
ICAgbHRfZGx1bmtub3duPTA7IGx0X2Rsbm9fdXNjb3JlPTE7IGx0X2RsbmVl
ZF91c2NvcmU9MgogIGx0X3N0YXR1cz0kbHRfZGx1bmtub3duCiAgY2F0ID4g
Y29uZnRlc3QuJGFjX2V4dCA8PEVPRgojbGluZSA3MjEwICJjb25maWd1cmUi
CiNpbmNsdWRlICJjb25mZGVmcy5oIgoKI2lmIEhBVkVfRExGQ05fSAojaW5j
bHVkZSA8ZGxmY24uaD4KI2VuZGlmCgojaW5jbHVkZSA8c3RkaW8uaD4KCiNp
ZmRlZiBSVExEX0dMT0JBTAojICBkZWZpbmUgTFRfRExHTE9CQUwJCVJUTERf
R0xPQkFMCiNlbHNlCiMgIGlmZGVmIERMX0dMT0JBTAojICAgIGRlZmluZSBM
VF9ETEdMT0JBTAkJRExfR0xPQkFMCiMgIGVsc2UKIyAgICBkZWZpbmUgTFRf
RExHTE9CQUwJCTAKIyAgZW5kaWYKI2VuZGlmCgovKiBXZSBtYXkgaGF2ZSB0
byBkZWZpbmUgTFRfRExMQVpZX09SX05PVyBpbiB0aGUgY29tbWFuZCBsaW5l
IGlmIHdlCiAgIGZpbmQgb3V0IGl0IGRvZXMgbm90IHdvcmsgaW4gc29tZSBw
bGF0Zm9ybS4gKi8KI2lmbmRlZiBMVF9ETExBWllfT1JfTk9XCiMgIGlmZGVm
IFJUTERfTEFaWQojICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCQlSVExE
X0xBWlkKIyAgZWxzZQojICAgIGlmZGVmIERMX0xBWlkKIyAgICAgIGRlZmlu
ZSBMVF9ETExBWllfT1JfTk9XCQlETF9MQVpZCiMgICAgZWxzZQojICAgICAg
aWZkZWYgUlRMRF9OT1cKIyAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9O
T1cJUlRMRF9OT1cKIyAgICAgIGVsc2UKIyAgICAgICAgaWZkZWYgRExfTk9X
CiMgICAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJRExfTk9XCiMg
ICAgICAgIGVsc2UKIyAgICAgICAgICBkZWZpbmUgTFRfRExMQVpZX09SX05P
VwkwCiMgICAgICAgIGVuZGlmCiMgICAgICBlbmRpZgojICAgIGVuZGlmCiMg
IGVuZGlmCiNlbmRpZgoKI2lmZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAiQyIg
dm9pZCBleGl0IChpbnQpOwojZW5kaWYKCnZvaWQgZm5vcmQoKSB7IGludCBp
PTQyO30KaW50IG1haW4gKCkKewogIHZvaWQgKnNlbGYgPSBkbG9wZW4gKDAs
IExUX0RMR0xPQkFMfExUX0RMTEFaWV9PUl9OT1cpOwogIGludCBzdGF0dXMg
PSAkbHRfZGx1bmtub3duOwoKICBpZiAoc2VsZikKICAgIHsKICAgICAgaWYg
KGRsc3ltIChzZWxmLCJmbm9yZCIpKSAgICAgICBzdGF0dXMgPSAkbHRfZGxu
b191c2NvcmU7CiAgICAgIGVsc2UgaWYgKGRsc3ltKCBzZWxmLCJfZm5vcmQi
KSkgc3RhdHVzID0gJGx0X2RsbmVlZF91c2NvcmU7CiAgICAgIC8qIGRsY2xv
c2UgKHNlbGYpOyAqLwogICAgfQoKICAgIGV4aXQgKHN0YXR1cyk7Cn0KRU9G
CiAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlu
a1wiIikgPiY1CiAgKGV2YWwgJGFjX2xpbmspIDI+JjUKICBhY19zdGF0dXM9
JD8KICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIg
PiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgdGVzdCAtcyBjb25mdGVz
dCR7YWNfZXhlZXh0fSAyPi9kZXYvbnVsbDsgdGhlbgogICAgKC4vY29uZnRl
c3Q7IGV4aXQ7ICkgMj4vZGV2L251bGwKICAgIGx0X3N0YXR1cz0kPwogICAg
Y2FzZSB4JGx0X3N0YXR1cyBpbgogICAgICB4JGx0X2Rsbm9fdXNjb3JlKSBs
dF9jdl9kbG9wZW5fc2VsZl9zdGF0aWM9eWVzIDs7CiAgICAgIHgkbHRfZGxu
ZWVkX3VzY29yZSkgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljPXllcyA7Owog
ICAgICB4JGx0X3Vua25vd258eCopIGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRp
Yz1ubyA7OwogICAgZXNhYwogIGVsc2UgOgogICAgIyBjb21waWxhdGlvbiBm
YWlsZWQKICAgIGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYz1ubwogIGZpCmZp
CnJtIC1mciBjb25mdGVzdCoKCgpmaQplY2hvICIkYXNfbWU6JExJTkVOTzog
cmVzdWx0OiAkbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljIiA+JjUKZWNobyAi
JHtFQ0hPX1R9JGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYyIgPiY2CiAgICBm
aQoKICAgIENQUEZMQUdTPSIkc2F2ZV9DUFBGTEFHUyIKICAgIExERkxBR1M9
IiRzYXZlX0xERkxBR1MiCiAgICBMSUJTPSIkc2F2ZV9MSUJTIgogICAgOzsK
ICBlc2FjCgogIGNhc2UgJGx0X2N2X2Rsb3Blbl9zZWxmIGluCiAgeWVzfG5v
KSBlbmFibGVfZGxvcGVuX3NlbGY9JGx0X2N2X2Rsb3Blbl9zZWxmIDs7CiAg
KikgZW5hYmxlX2Rsb3Blbl9zZWxmPXVua25vd24gOzsKICBlc2FjCgogIGNh
c2UgJGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYyBpbgogIHllc3xubykgZW5h
YmxlX2Rsb3Blbl9zZWxmX3N0YXRpYz0kbHRfY3ZfZGxvcGVuX3NlbGZfc3Rh
dGljIDs7CiAgKikgZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRpYz11bmtub3du
IDs7CiAgZXNhYwpmaQoKCiMjIEZJWE1FOiB0aGlzIHNob3VsZCBiZSBhIHNl
cGFyYXRlIG1hY3JvCiMjCmlmIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHll
cyAmJiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgogIGNhc2UgJGFyY2hpdmVf
Y21kcyBpbgogIConficqKQogICAgIyBGSVhNRTogd2UgbWF5IGhhdmUgdG8g
ZGVhbCB3aXRoIG11bHRpLWNvbW1hbmQgc2VxdWVuY2VzLgogICAgOzsKICAn
JENDICcqKQogICAgIyBUZXN0IHdoZXRoZXIgdGhlIGNvbXBpbGVyIGltcGxp
Y2l0bHkgbGlua3Mgd2l0aCAtbGMgc2luY2Ugb24gc29tZQogICAgIyBzeXN0
ZW1zLCAtbGdjYyBoYXMgdG8gY29tZSBiZWZvcmUgLWxjLiBJZiBnY2MgYWxy
ZWFkeSBwYXNzZXMgLWxjCiAgICAjIHRvIGxkLCBkb24ndCBhZGQgLWxjIGJl
Zm9yZSAtbGdjYy4KICAgIGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu
ZyB3aGV0aGVyIC1sYyBzaG91bGQgYmUgZXhwbGljaXRseSBsaW5rZWQgaW4i
ID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIHdoZXRoZXIgLWxjIHNob3Vs
ZCBiZSBleHBsaWNpdGx5IGxpbmtlZCBpbi4uLiAkRUNIT19DIiA+JjYKICAg
IGlmIHRlc3QgIiR7bHRfY3ZfYXJjaGl2ZV9jbWRzX25lZWRfbGMrc2V0fSIg
PSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0Mi
ID4mNgplbHNlCiAgJHJtIGNvbmZ0ZXN0KgogICAgZWNobyAnc3RhdGljIGlu
dCBkdW1teTsnID4gY29uZnRlc3QuJGFjX2V4dAoKICAgIGlmIHsgKGV2YWwg
ZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQog
IChldmFsICRhY19jb21waWxlKSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNo
byAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChl
eGl0ICRhY19zdGF0dXMpOyB9OyB0aGVuCiAgICAgIHNvbmFtZT1jb25mdGVz
dAogICAgICBsaWI9Y29uZnRlc3QKICAgICAgbGlib2Jqcz1jb25mdGVzdC4k
YWNfb2JqZXh0CiAgICAgIGRlcGxpYnM9CiAgICAgIHdsPSRsdF9jdl9wcm9n
X2NjX3dsCiAgICAgIGNvbXBpbGVyX2ZsYWdzPS12CiAgICAgIGxpbmtlcl9m
bGFncz0tdgogICAgICB2ZXJzdHJpbmc9CiAgICAgIG91dHB1dF9vYmpkaXI9
LgogICAgICBsaWJuYW1lPWNvbmZ0ZXN0CiAgICAgIHNhdmVfYWxsb3dfdW5k
ZWZpbmVkX2ZsYWc9JGFsbG93X3VuZGVmaW5lZF9mbGFnCiAgICAgIGFsbG93
X3VuZGVmaW5lZF9mbGFnPQogICAgICBpZiB7IChldmFsIGVjaG8gIiRhc19t
ZTokTElORU5POiBcIiRhcmNoaXZlX2NtZHMgMlw+XCYxIFx8IGdyZXAgXCIg
LWxjIFwiIFw+L2Rldi9udWxsIDJcPlwmMVwiIikgPiY1CiAgKGV2YWwgJGFy
Y2hpdmVfY21kcyAyXD5cJjEgXHwgZ3JlcCBcIiAtbGMgXCIgXD4vZGV2L251
bGwgMlw+XCYxKSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21l
OiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19z
dGF0dXMpOyB9CiAgICAgIHRoZW4KCWx0X2N2X2FyY2hpdmVfY21kc19uZWVk
X2xjPW5vCiAgICAgIGVsc2UKCWx0X2N2X2FyY2hpdmVfY21kc19uZWVkX2xj
PXllcwogICAgICBmaQogICAgICBhbGxvd191bmRlZmluZWRfZmxhZz0kc2F2
ZV9hbGxvd191bmRlZmluZWRfZmxhZwogICAgZWxzZQogICAgICBjYXQgY29u
ZnRlc3QuZXJyIDE+JjUKICAgIGZpCmZpCgogICAgZWNobyAiJGFzX21lOiRM
SU5FTk86IHJlc3VsdDogJGx0X2N2X2FyY2hpdmVfY21kc19uZWVkX2xjIiA+
JjUKZWNobyAiJHtFQ0hPX1R9JGx0X2N2X2FyY2hpdmVfY21kc19uZWVkX2xj
IiA+JjYKICAgIDs7CiAgZXNhYwpmaQpuZWVkX2xjPSR7bHRfY3ZfYXJjaGl2
ZV9jbWRzX25lZWRfbGMteWVzfQojIwojIyBFTkQgRklYTUUKCiMjIEZJWE1F
OiB0aGlzIHNob3VsZCBiZSBhIHNlcGFyYXRlIG1hY3JvCiMjCiMgVGhlIHNl
Y29uZCBjbGF1c2Ugc2hvdWxkIG9ubHkgZmlyZSB3aGVuIGJvb3RzdHJhcHBp
bmcgdGhlCiMgbGlidG9vbCBkaXN0cmlidXRpb24sIG90aGVyd2lzZSB5b3Ug
Zm9yZ290IHRvIHNoaXAgbHRtYWluLnNoCiMgd2l0aCB5b3VyIHBhY2thZ2Us
IGFuZCB5b3Ugd2lsbCBnZXQgY29tcGxhaW50cyB0aGF0IHRoZXJlIGFyZQoj
IG5vIHJ1bGVzIHRvIGdlbmVyYXRlIGx0bWFpbi5zaC4KaWYgdGVzdCAtZiAi
JGx0bWFpbiI7IHRoZW4KICA6CmVsc2UKICAjIElmIHRoZXJlIGlzIG5vIE1h
a2VmaWxlIHlldCwgd2UgcmVseSBvbiBhIG1ha2UgcnVsZSB0byBleGVjdXRl
CiAgIyBgY29uZmlnLnN0YXR1cyAtLXJlY2hlY2snIHRvIHJlcnVuIHRoZXNl
IHRlc3RzIGFuZCBjcmVhdGUgdGhlCiAgIyBsaWJ0b29sIHNjcmlwdCB0aGVu
LgogIHRlc3QgLWYgTWFrZWZpbGUgJiYgbWFrZSAiJGx0bWFpbiIKZmkKCmlm
IHRlc3QgLWYgIiRsdG1haW4iOyB0aGVuCiAgdHJhcCAiJHJtIFwiJHtvZmls
ZX1UXCI7IGV4aXQgMSIgMSAyIDE1CiAgJHJtIC1mICIke29maWxlfVQiCgog
IGVjaG8gY3JlYXRpbmcgJG9maWxlCgogICMgTm93IHF1b3RlIGFsbCB0aGUg
dGhpbmdzIHRoYXQgbWF5IGNvbnRhaW4gbWV0YWNoYXJhY3RlcnMgd2hpbGUg
YmVpbmcKICAjIGNhcmVmdWwgbm90IHRvIG92ZXJxdW90ZSB0aGUgQUNfU1VC
U1RlZCB2YWx1ZXMuICBXZSB0YWtlIGNvcGllcyBvZiB0aGUKICAjIHZhcmlh
YmxlcyBhbmQgcXVvdGUgdGhlIGNvcGllcyBmb3IgZ2VuZXJhdGlvbiBvZiB0
aGUgbGlidG9vbCBzY3JpcHQuCiAgZm9yIHZhciBpbiBlY2hvIG9sZF9DQyBv
bGRfQ0ZMQUdTIFNFRCBcCiAgICBBUiBBUl9GTEFHUyBDQyBMRCBMTl9TIE5N
IFNIRUxMIFwKICAgIHJlbG9hZF9mbGFnIHJlbG9hZF9jbWRzIHdsIFwKICAg
IHBpY19mbGFnIGxpbmtfc3RhdGljX2ZsYWcgbm9fYnVpbHRpbl9mbGFnIGV4
cG9ydF9keW5hbWljX2ZsYWdfc3BlYyBcCiAgICB0aHJlYWRfc2FmZV9mbGFn
X3NwZWMgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMgbGlibmFtZV9zcGVjIFwK
ICAgIGxpYnJhcnlfbmFtZXNfc3BlYyBzb25hbWVfc3BlYyBcCiAgICBSQU5M
SUIgb2xkX2FyY2hpdmVfY21kcyBvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRz
IG9sZF9wb3N0aW5zdGFsbF9jbWRzIFwKICAgIG9sZF9wb3N0dW5pbnN0YWxs
X2NtZHMgYXJjaGl2ZV9jbWRzIGFyY2hpdmVfZXhwc3ltX2NtZHMgcG9zdGlu
c3RhbGxfY21kcyBcCiAgICBwb3N0dW5pbnN0YWxsX2NtZHMgZXh0cmFjdF9l
eHBzeW1zX2NtZHMgb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHMgXAog
ICAgb2xkX3N0cmlwbGliIHN0cmlwbGliIGZpbGVfbWFnaWNfY21kIGV4cG9y
dF9zeW1ib2xzX2NtZHMgXAogICAgZGVwbGlic19jaGVja19tZXRob2QgYWxs
b3dfdW5kZWZpbmVkX2ZsYWcgbm9fdW5kZWZpbmVkX2ZsYWcgXAogICAgZmlu
aXNoX2NtZHMgZmluaXNoX2V2YWwgZ2xvYmFsX3N5bWJvbF9waXBlIGdsb2Jh
bF9zeW1ib2xfdG9fY2RlY2wgXAogICAgZ2xvYmFsX3N5bWJvbF90b19jX25h
bWVfYWRkcmVzcyBcCiAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIGhh
cmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IgIFwKICAgIHN5c19saWJfc2VhcmNo
X3BhdGhfc3BlYyBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyBcCiAgICBj
b21waWxlcl9jX28gY29tcGlsZXJfb19sbyBuZWVkX2xvY2tzIGV4Y2x1ZGVf
ZXhwc3ltcyBpbmNsdWRlX2V4cHN5bXM7IGRvCgogICAgY2FzZSAkdmFyIGlu
CiAgICByZWxvYWRfY21kcyB8IG9sZF9hcmNoaXZlX2NtZHMgfCBvbGRfYXJj
aGl2ZV9mcm9tX25ld19jbWRzIHwgXAogICAgb2xkX3Bvc3RpbnN0YWxsX2Nt
ZHMgfCBvbGRfcG9zdHVuaW5zdGFsbF9jbWRzIHwgXAogICAgZXhwb3J0X3N5
bWJvbHNfY21kcyB8IGFyY2hpdmVfY21kcyB8IGFyY2hpdmVfZXhwc3ltX2Nt
ZHMgfCBcCiAgICBleHRyYWN0X2V4cHN5bXNfY21kcyB8IG9sZF9hcmNoaXZl
X2Zyb21fZXhwc3ltc19jbWRzIHwgXAogICAgcG9zdGluc3RhbGxfY21kcyB8
IHBvc3R1bmluc3RhbGxfY21kcyB8IFwKICAgIGZpbmlzaF9jbWRzIHwgc3lz
X2xpYl9zZWFyY2hfcGF0aF9zcGVjIHwgc3lzX2xpYl9kbHNlYXJjaF9wYXRo
X3NwZWMpCiAgICAgICMgRG91YmxlLXF1b3RlIGRvdWJsZS1ldmFsZWQgc3Ry
aW5ncy4KICAgICAgZXZhbCAibHRfJHZhcj1cXFwiXGBcJGVjaG8gXCJYXCQk
dmFyXCIgfCBcJFhzZWQgLWUgXCJcJGRvdWJsZV9xdW90ZV9zdWJzdFwiIC1l
IFwiXCRzZWRfcXVvdGVfc3Vic3RcIiAtZSBcIlwkZGVsYXlfdmFyaWFibGVf
c3Vic3RcIlxgXFxcIiIKICAgICAgOzsKICAgICopCiAgICAgIGV2YWwgImx0
XyR2YXI9XFxcIlxgXCRlY2hvIFwiWFwkJHZhclwiIHwgXCRYc2VkIC1lIFwi
XCRzZWRfcXVvdGVfc3Vic3RcIlxgXFxcIiIKICAgICAgOzsKICAgIGVzYWMK
ICBkb25lCgogIGNhdCA8PF9fRU9GX18gPiAiJHtvZmlsZX1UIgojISAkU0hF
TEwKCiMgYCRlY2hvICIkb2ZpbGUiIHwgc2VkICdzJV4uKi8lJSdgIC0gUHJv
dmlkZSBnZW5lcmFsaXplZCBsaWJyYXJ5LWJ1aWxkaW5nIHN1cHBvcnQgc2Vy
dmljZXMuCiMgR2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgYnkgJFBST0dSQU0g
KEdOVSAkUEFDS0FHRSAkVkVSU0lPTiRUSU1FU1RBTVApCiMgTk9URTogQ2hh
bmdlcyBtYWRlIHRvIHRoaXMgZmlsZSB3aWxsIGJlIGxvc3Q6IGxvb2sgYXQg
bHRtYWluLnNoLgojCiMgQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiMgT3JpZ2luYWxseSBieSBHb3Jk
b24gTWF0emlna2VpdCA8Z29yZEBnbnUuYWkubWl0LmVkdT4sIDE5OTYKIwoj
IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIg
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwg
YnV0CiMgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiMg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojCiMg
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh
bTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5k
YXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9z
dG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCiMKIyBBcyBhIHNwZWNpYWwgZXhj
ZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYg
eW91CiMgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIHByb2dy
YW0gdGhhdCBjb250YWlucyBhCiMgY29uZmlndXJhdGlvbiBzY3JpcHQgZ2Vu
ZXJhdGVkIGJ5IEF1dG9jb25mLCB5b3UgbWF5IGluY2x1ZGUgaXQgdW5kZXIK
IyB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZv
ciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCgojIEEgc2VkIHRoYXQgZG9l
cyBub3QgdHJ1bmNhdGUgb3V0cHV0LgpTRUQ9JGx0X1NFRAoKIyBTZWQgdGhh
dCBoZWxwcyB1cyBhdm9pZCBhY2NpZGVudGFsbHkgdHJpZ2dlcmluZyBlY2hv
KDEpIG9wdGlvbnMgbGlrZSAtbi4KWHNlZD0iJHtTRUR9IC1lIHMvXlgvLyIK
CiMgVGhlIEhQLVVYIGtzaCBhbmQgUE9TSVggc2hlbGwgcHJpbnQgdGhlIHRh
cmdldCBkaXJlY3RvcnkgdG8gc3Rkb3V0CiMgaWYgQ0RQQVRIIGlzIHNldC4K
aWYgdGVzdCAiWFwke0NEUEFUSCtzZXR9IiA9IFhzZXQ7IHRoZW4gQ0RQQVRI
PTo7IGV4cG9ydCBDRFBBVEg7IGZpCgojICMjIyBCRUdJTiBMSUJUT09MIENP
TkZJRwoKIyBMaWJ0b29sIHdhcyBjb25maWd1cmVkIG9uIGhvc3QgYChob3N0
bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQgMXFgOgoKIyBT
aGVsbCB0byB1c2Ugd2hlbiBpbnZva2luZyBzaGVsbCBzY3JpcHRzLgpTSEVM
TD0kbHRfU0hFTEwKCiMgV2hldGhlciBvciBub3QgdG8gYnVpbGQgc2hhcmVk
IGxpYnJhcmllcy4KYnVpbGRfbGlidG9vbF9saWJzPSRlbmFibGVfc2hhcmVk
CgojIFdoZXRoZXIgb3Igbm90IHRvIGJ1aWxkIHN0YXRpYyBsaWJyYXJpZXMu
CmJ1aWxkX29sZF9saWJzPSRlbmFibGVfc3RhdGljCgojIFdoZXRoZXIgb3Ig
bm90IHRvIGFkZCAtbGMgZm9yIGJ1aWxkaW5nIHNoYXJlZCBsaWJyYXJpZXMu
CmJ1aWxkX2xpYnRvb2xfbmVlZF9sYz0kbmVlZF9sYwoKIyBXaGV0aGVyIG9y
IG5vdCB0byBvcHRpbWl6ZSBmb3IgZmFzdCBpbnN0YWxsYXRpb24uCmZhc3Rf
aW5zdGFsbD0kZW5hYmxlX2Zhc3RfaW5zdGFsbAoKIyBUaGUgaG9zdCBzeXN0
ZW0uCmhvc3RfYWxpYXM9JGhvc3RfYWxpYXMKaG9zdD0kaG9zdAoKIyBBbiBl
Y2hvIHByb2dyYW0gdGhhdCBkb2VzIG5vdCBpbnRlcnByZXQgYmFja3NsYXNo
ZXMuCmVjaG89JGx0X2VjaG8KCiMgVGhlIGFyY2hpdmVyLgpBUj0kbHRfQVIK
QVJfRkxBR1M9JGx0X0FSX0ZMQUdTCgojIFRoZSBkZWZhdWx0IEMgY29tcGls
ZXIuCkNDPSRsdF9DQwoKIyBJcyB0aGUgY29tcGlsZXIgdGhlIEdOVSBDIGNv
bXBpbGVyPwp3aXRoX2djYz0kR0NDCgojIFRoZSBsaW5rZXIgdXNlZCB0byBi
dWlsZCBsaWJyYXJpZXMuCkxEPSRsdF9MRAoKIyBXaGV0aGVyIHdlIG5lZWQg
aGFyZCBvciBzb2Z0IGxpbmtzLgpMTl9TPSRsdF9MTl9TCgojIEEgQlNELWNv
bXBhdGlibGUgbm0gcHJvZ3JhbS4KTk09JGx0X05NCgojIEEgc3ltYm9sIHN0
cmlwcGluZyBwcm9ncmFtClNUUklQPSRTVFJJUAoKIyBVc2VkIHRvIGV4YW1p
bmUgbGlicmFyaWVzIHdoZW4gZmlsZV9tYWdpY19jbWQgYmVnaW5zICJmaWxl
IgpNQUdJQ19DTUQ9JE1BR0lDX0NNRAoKIyBVc2VkIG9uIGN5Z3dpbjogRExM
IGNyZWF0aW9uIHByb2dyYW0uCkRMTFRPT0w9IiRETExUT09MIgoKIyBVc2Vk
IG9uIGN5Z3dpbjogb2JqZWN0IGR1bXBlci4KT0JKRFVNUD0iJE9CSkRVTVAi
CgojIFVzZWQgb24gY3lnd2luOiBhc3NlbWJsZXIuCkFTPSIkQVMiCgojIFRo
ZSBuYW1lIG9mIHRoZSBkaXJlY3RvcnkgdGhhdCBjb250YWlucyB0ZW1wb3Jh
cnkgbGlidG9vbCBmaWxlcy4Kb2JqZGlyPSRvYmpkaXIKCiMgSG93IHRvIGNy
ZWF0ZSByZWxvYWRhYmxlIG9iamVjdCBmaWxlcy4KcmVsb2FkX2ZsYWc9JGx0
X3JlbG9hZF9mbGFnCnJlbG9hZF9jbWRzPSRsdF9yZWxvYWRfY21kcwoKIyBI
b3cgdG8gcGFzcyBhIGxpbmtlciBmbGFnIHRocm91Z2ggdGhlIGNvbXBpbGVy
Lgp3bD0kbHRfd2wKCiMgT2JqZWN0IGZpbGUgc3VmZml4IChub3JtYWxseSAi
byIpLgpvYmpleHQ9IiRhY19vYmpleHQiCgojIE9sZCBhcmNoaXZlIHN1ZmZp
eCAobm9ybWFsbHkgImEiKS4KbGliZXh0PSIkbGliZXh0IgoKIyBFeGVjdXRh
YmxlIGZpbGUgc3VmZml4IChub3JtYWxseSAiIikuCmV4ZWV4dD0iJGV4ZWV4
dCIKCiMgQWRkaXRpb25hbCBjb21waWxlciBmbGFncyBmb3IgYnVpbGRpbmcg
bGlicmFyeSBvYmplY3RzLgpwaWNfZmxhZz0kbHRfcGljX2ZsYWcKcGljX21v
ZGU9JHBpY19tb2RlCgojIERvZXMgY29tcGlsZXIgc2ltdWx0YW5lb3VzbHkg
c3VwcG9ydCAtYyBhbmQgLW8gb3B0aW9ucz8KY29tcGlsZXJfY19vPSRsdF9j
b21waWxlcl9jX28KCiMgQ2FuIHdlIHdyaXRlIGRpcmVjdGx5IHRvIGEgLmxv
ID8KY29tcGlsZXJfb19sbz0kbHRfY29tcGlsZXJfb19sbwoKIyBNdXN0IHdl
IGxvY2sgZmlsZXMgd2hlbiBkb2luZyBjb21waWxhdGlvbiA/Cm5lZWRfbG9j
a3M9JGx0X25lZWRfbG9ja3MKCiMgRG8gd2UgbmVlZCB0aGUgbGliIHByZWZp
eCBmb3IgbW9kdWxlcz8KbmVlZF9saWJfcHJlZml4PSRuZWVkX2xpYl9wcmVm
aXgKCiMgRG8gd2UgbmVlZCBhIHZlcnNpb24gZm9yIGxpYnJhcmllcz8KbmVl
ZF92ZXJzaW9uPSRuZWVkX3ZlcnNpb24KCiMgV2hldGhlciBkbG9wZW4gaXMg
c3VwcG9ydGVkLgpkbG9wZW5fc3VwcG9ydD0kZW5hYmxlX2Rsb3BlbgoKIyBX
aGV0aGVyIGRsb3BlbiBvZiBwcm9ncmFtcyBpcyBzdXBwb3J0ZWQuCmRsb3Bl
bl9zZWxmPSRlbmFibGVfZGxvcGVuX3NlbGYKCiMgV2hldGhlciBkbG9wZW4g
b2Ygc3RhdGljYWxseSBsaW5rZWQgcHJvZ3JhbXMgaXMgc3VwcG9ydGVkLgpk
bG9wZW5fc2VsZl9zdGF0aWM9JGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWMK
CiMgQ29tcGlsZXIgZmxhZyB0byBwcmV2ZW50IGR5bmFtaWMgbGlua2luZy4K
bGlua19zdGF0aWNfZmxhZz0kbHRfbGlua19zdGF0aWNfZmxhZwoKIyBDb21w
aWxlciBmbGFnIHRvIHR1cm4gb2ZmIGJ1aWx0aW4gZnVuY3Rpb25zLgpub19i
dWlsdGluX2ZsYWc9JGx0X25vX2J1aWx0aW5fZmxhZwoKIyBDb21waWxlciBm
bGFnIHRvIGFsbG93IHJlZmxleGl2ZSBkbG9wZW5zLgpleHBvcnRfZHluYW1p
Y19mbGFnX3NwZWM9JGx0X2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlYwoKIyBD
b21waWxlciBmbGFnIHRvIGdlbmVyYXRlIHNoYXJlZCBvYmplY3RzIGRpcmVj
dGx5IGZyb20gYXJjaGl2ZXMuCndob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSRs
dF93aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYwoKIyBDb21waWxlciBmbGFnIHRv
IGdlbmVyYXRlIHRocmVhZC1zYWZlIG9iamVjdHMuCnRocmVhZF9zYWZlX2Zs
YWdfc3BlYz0kbHRfdGhyZWFkX3NhZmVfZmxhZ19zcGVjCgojIExpYnJhcnkg
dmVyc2lvbmluZyB0eXBlLgp2ZXJzaW9uX3R5cGU9JHZlcnNpb25fdHlwZQoK
IyBGb3JtYXQgb2YgbGlicmFyeSBuYW1lIHByZWZpeC4KbGlibmFtZV9zcGVj
PSRsdF9saWJuYW1lX3NwZWMKCiMgTGlzdCBvZiBhcmNoaXZlIG5hbWVzLiAg
Rmlyc3QgbmFtZSBpcyB0aGUgcmVhbCBvbmUsIHRoZSByZXN0IGFyZSBsaW5r
cy4KIyBUaGUgbGFzdCBuYW1lIGlzIHRoZSBvbmUgdGhhdCB0aGUgbGlua2Vy
IGZpbmRzIHdpdGggLWxOQU1FLgpsaWJyYXJ5X25hbWVzX3NwZWM9JGx0X2xp
YnJhcnlfbmFtZXNfc3BlYwoKIyBUaGUgY29kZWQgbmFtZSBvZiB0aGUgbGli
cmFyeSwgaWYgZGlmZmVyZW50IGZyb20gdGhlIHJlYWwgbmFtZS4Kc29uYW1l
X3NwZWM9JGx0X3NvbmFtZV9zcGVjCgojIENvbW1hbmRzIHVzZWQgdG8gYnVp
bGQgYW5kIGluc3RhbGwgYW4gb2xkLXN0eWxlIGFyY2hpdmUuClJBTkxJQj0k
bHRfUkFOTElCCm9sZF9hcmNoaXZlX2NtZHM9JGx0X29sZF9hcmNoaXZlX2Nt
ZHMKb2xkX3Bvc3RpbnN0YWxsX2NtZHM9JGx0X29sZF9wb3N0aW5zdGFsbF9j
bWRzCm9sZF9wb3N0dW5pbnN0YWxsX2NtZHM9JGx0X29sZF9wb3N0dW5pbnN0
YWxsX2NtZHMKCiMgQ3JlYXRlIGFuIG9sZC1zdHlsZSBhcmNoaXZlIGZyb20g
YSBzaGFyZWQgYXJjaGl2ZS4Kb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcz0k
bHRfb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcwoKIyBDcmVhdGUgYSB0ZW1w
b3Jhcnkgb2xkLXN0eWxlIGFyY2hpdmUgdG8gbGluayBpbnN0ZWFkIG9mIGEg
c2hhcmVkIGFyY2hpdmUuCm9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRz
PSRsdF9vbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcwoKIyBDb21tYW5k
cyB1c2VkIHRvIGJ1aWxkIGFuZCBpbnN0YWxsIGEgc2hhcmVkIGFyY2hpdmUu
CmFyY2hpdmVfY21kcz0kbHRfYXJjaGl2ZV9jbWRzCmFyY2hpdmVfZXhwc3lt
X2NtZHM9JGx0X2FyY2hpdmVfZXhwc3ltX2NtZHMKcG9zdGluc3RhbGxfY21k
cz0kbHRfcG9zdGluc3RhbGxfY21kcwpwb3N0dW5pbnN0YWxsX2NtZHM9JGx0
X3Bvc3R1bmluc3RhbGxfY21kcwoKIyBDb21tYW5kcyB0byBzdHJpcCBsaWJy
YXJpZXMuCm9sZF9zdHJpcGxpYj0kbHRfb2xkX3N0cmlwbGliCnN0cmlwbGli
PSRsdF9zdHJpcGxpYgoKIyBNZXRob2QgdG8gY2hlY2sgd2hldGhlciBkZXBl
bmRlbnQgbGlicmFyaWVzIGFyZSBzaGFyZWQgb2JqZWN0cy4KZGVwbGlic19j
aGVja19tZXRob2Q9JGx0X2RlcGxpYnNfY2hlY2tfbWV0aG9kCgojIENvbW1h
bmQgdG8gdXNlIHdoZW4gZGVwbGlic19jaGVja19tZXRob2QgPT0gZmlsZV9t
YWdpYy4KZmlsZV9tYWdpY19jbWQ9JGx0X2ZpbGVfbWFnaWNfY21kCgojIEZs
YWcgdGhhdCBhbGxvd3Mgc2hhcmVkIGxpYnJhcmllcyB3aXRoIHVuZGVmaW5l
ZCBzeW1ib2xzIHRvIGJlIGJ1aWx0LgphbGxvd191bmRlZmluZWRfZmxhZz0k
bHRfYWxsb3dfdW5kZWZpbmVkX2ZsYWcKCiMgRmxhZyB0aGF0IGZvcmNlcyBu
byB1bmRlZmluZWQgc3ltYm9scy4Kbm9fdW5kZWZpbmVkX2ZsYWc9JGx0X25v
X3VuZGVmaW5lZF9mbGFnCgojIENvbW1hbmRzIHVzZWQgdG8gZmluaXNoIGEg
bGlidG9vbCBsaWJyYXJ5IGluc3RhbGxhdGlvbiBpbiBhIGRpcmVjdG9yeS4K
ZmluaXNoX2NtZHM9JGx0X2ZpbmlzaF9jbWRzCgojIFNhbWUgYXMgYWJvdmUs
IGJ1dCBhIHNpbmdsZSBzY3JpcHQgZnJhZ21lbnQgdG8gYmUgZXZhbGVkIGJ1
dCBub3Qgc2hvd24uCmZpbmlzaF9ldmFsPSRsdF9maW5pc2hfZXZhbAoKIyBU
YWtlIHRoZSBvdXRwdXQgb2Ygbm0gYW5kIHByb2R1Y2UgYSBsaXN0aW5nIG9m
IHJhdyBzeW1ib2xzIGFuZCBDIG5hbWVzLgpnbG9iYWxfc3ltYm9sX3BpcGU9
JGx0X2dsb2JhbF9zeW1ib2xfcGlwZQoKIyBUcmFuc2Zvcm0gdGhlIG91dHB1
dCBvZiBubSBpbiBhIHByb3BlciBDIGRlY2xhcmF0aW9uCmdsb2JhbF9zeW1i
b2xfdG9fY2RlY2w9JGx0X2dsb2JhbF9zeW1ib2xfdG9fY2RlY2wKCiMgVHJh
bnNmb3JtIHRoZSBvdXRwdXQgb2Ygbm0gaW4gYSBDIG5hbWUgYWRkcmVzcyBw
YWlyCmdsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3M9JGx0X2dsb2Jh
bF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3MKCiMgVGhpcyBpcyB0aGUgc2hh
cmVkIGxpYnJhcnkgcnVudGltZSBwYXRoIHZhcmlhYmxlLgpydW5wYXRoX3Zh
cj0kcnVucGF0aF92YXIKCiMgVGhpcyBpcyB0aGUgc2hhcmVkIGxpYnJhcnkg
cGF0aCB2YXJpYWJsZS4Kc2hsaWJwYXRoX3Zhcj0kc2hsaWJwYXRoX3ZhcgoK
IyBJcyBzaGxpYnBhdGggc2VhcmNoZWQgYmVmb3JlIHRoZSBoYXJkLWNvZGVk
IGxpYnJhcnkgc2VhcmNoIHBhdGg/CnNobGlicGF0aF9vdmVycmlkZXNfcnVu
cGF0aD0kc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoCgojIEhvdyB0byBo
YXJkY29kZSBhIHNoYXJlZCBsaWJyYXJ5IHBhdGggaW50byBhbiBleGVjdXRh
YmxlLgpoYXJkY29kZV9hY3Rpb249JGhhcmRjb2RlX2FjdGlvbgoKIyBXaGV0
aGVyIHdlIHNob3VsZCBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gbGli
cmFyaWVzLgpoYXJkY29kZV9pbnRvX2xpYnM9JGhhcmRjb2RlX2ludG9fbGli
cwoKIyBGbGFnIHRvIGhhcmRjb2RlIFwkbGliZGlyIGludG8gYSBiaW5hcnkg
ZHVyaW5nIGxpbmtpbmcuCiMgVGhpcyBtdXN0IHdvcmsgZXZlbiBpZiBcJGxp
YmRpciBkb2VzIG5vdCBleGlzdC4KaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl
Yz0kbHRfaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYwoKIyBXaGV0aGVyIHdl
IG5lZWQgYSBzaW5nbGUgLXJwYXRoIGZsYWcgd2l0aCBhIHNlcGFyYXRlZCBh
cmd1bWVudC4KaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0kbHRfaGFyZGNv
ZGVfbGliZGlyX3NlcGFyYXRvcgoKIyBTZXQgdG8geWVzIGlmIHVzaW5nIERJ
Ui9saWJOQU1FLnNvIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIgaW50
byB0aGUKIyByZXN1bHRpbmcgYmluYXJ5LgpoYXJkY29kZV9kaXJlY3Q9JGhh
cmRjb2RlX2RpcmVjdAoKIyBTZXQgdG8geWVzIGlmIHVzaW5nIHRoZSAtTERJ
UiBmbGFnIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIgaW50byB0aGUK
IyByZXN1bHRpbmcgYmluYXJ5LgpoYXJkY29kZV9taW51c19MPSRoYXJkY29k
ZV9taW51c19MCgojIFNldCB0byB5ZXMgaWYgdXNpbmcgU0hMSUJQQVRIX1ZB
Uj1ESVIgZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzIERJUiBpbnRvCiMgdGhl
IHJlc3VsdGluZyBiaW5hcnkuCmhhcmRjb2RlX3NobGlicGF0aF92YXI9JGhh
cmRjb2RlX3NobGlicGF0aF92YXIKCiMgVmFyaWFibGVzIHdob3NlIHZhbHVl
cyBzaG91bGQgYmUgc2F2ZWQgaW4gbGlidG9vbCB3cmFwcGVyIHNjcmlwdHMg
YW5kCiMgcmVzdG9yZWQgYXQgcmVsaW5rIHRpbWUuCnZhcmlhYmxlc19zYXZl
ZF9mb3JfcmVsaW5rPSIkdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbmsiCgoj
IFdoZXRoZXIgbGlidG9vbCBtdXN0IGxpbmsgYSBwcm9ncmFtIGFnYWluc3Qg
YWxsIGl0cyBkZXBlbmRlbmN5IGxpYnJhcmllcy4KbGlua19hbGxfZGVwbGli
cz0kbGlua19hbGxfZGVwbGlicwoKIyBDb21waWxlLXRpbWUgc3lzdGVtIHNl
YXJjaCBwYXRoIGZvciBsaWJyYXJpZXMKc3lzX2xpYl9zZWFyY2hfcGF0aF9z
cGVjPSRsdF9zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMKCiMgUnVuLXRpbWUg
c3lzdGVtIHNlYXJjaCBwYXRoIGZvciBsaWJyYXJpZXMKc3lzX2xpYl9kbHNl
YXJjaF9wYXRoX3NwZWM9JGx0X3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVj
CgojIEZpeCB0aGUgc2hlbGwgdmFyaWFibGUgXCRzcmNmaWxlIGZvciB0aGUg
Y29tcGlsZXIuCmZpeF9zcmNmaWxlX3BhdGg9IiRmaXhfc3JjZmlsZV9wYXRo
IgoKIyBTZXQgdG8geWVzIGlmIGV4cG9ydGVkIHN5bWJvbHMgYXJlIHJlcXVp
cmVkLgphbHdheXNfZXhwb3J0X3N5bWJvbHM9JGFsd2F5c19leHBvcnRfc3lt
Ym9scwoKIyBUaGUgY29tbWFuZHMgdG8gbGlzdCBleHBvcnRlZCBzeW1ib2xz
LgpleHBvcnRfc3ltYm9sc19jbWRzPSRsdF9leHBvcnRfc3ltYm9sc19jbWRz
CgojIFRoZSBjb21tYW5kcyB0byBleHRyYWN0IHRoZSBleHBvcnRlZCBzeW1i
b2wgbGlzdCBmcm9tIGEgc2hhcmVkIGFyY2hpdmUuCmV4dHJhY3RfZXhwc3lt
c19jbWRzPSRsdF9leHRyYWN0X2V4cHN5bXNfY21kcwoKIyBTeW1ib2xzIHRo
YXQgc2hvdWxkIG5vdCBiZSBsaXN0ZWQgaW4gdGhlIHByZWxvYWRlZCBzeW1i
b2xzLgpleGNsdWRlX2V4cHN5bXM9JGx0X2V4Y2x1ZGVfZXhwc3ltcwoKIyBT
eW1ib2xzIHRoYXQgbXVzdCBhbHdheXMgYmUgZXhwb3J0ZWQuCmluY2x1ZGVf
ZXhwc3ltcz0kbHRfaW5jbHVkZV9leHBzeW1zCgojICMjIyBFTkQgTElCVE9P
TCBDT05GSUcKCl9fRU9GX18KCiAgY2FzZSAkaG9zdF9vcyBpbgogIGFpeDMq
KQogICAgY2F0IDw8XEVPRiA+PiAiJHtvZmlsZX1UIgoKIyBBSVggc29tZXRp
bWVzIGhhcyBwcm9ibGVtcyB3aXRoIHRoZSBHQ0MgY29sbGVjdDIgcHJvZ3Jh
bS4gIEZvciBzb21lCiMgcmVhc29uLCBpZiB3ZSBzZXQgdGhlIENPTExFQ1Rf
TkFNRVMgZW52aXJvbm1lbnQgdmFyaWFibGUsIHRoZSBwcm9ibGVtcwojIHZh
bmlzaCBpbiBhIHB1ZmYgb2Ygc21va2UuCmlmIHRlc3QgIlgke0NPTExFQ1Rf
TkFNRVMrc2V0fSIgIT0gWHNldDsgdGhlbgogIENPTExFQ1RfTkFNRVM9CiAg
ZXhwb3J0IENPTExFQ1RfTkFNRVMKZmkKRU9GCiAgICA7OwogIGVzYWMKCiAg
Y2FzZSAkaG9zdF9vcyBpbgogIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8
IG9zMiopCiAgICBjYXQgPDwnRU9GJyA+PiAiJHtvZmlsZX1UIgogICAgICAj
IFRoaXMgaXMgYSBzb3VyY2UgcHJvZ3JhbSB0aGF0IGlzIHVzZWQgdG8gY3Jl
YXRlIGRsbHMgb24gV2luZG93cwogICAgICAjIERvbid0IHJlbW92ZSBub3Ig
bW9kaWZ5IHRoZSBzdGFydGluZyBhbmQgY2xvc2luZyBjb21tZW50cwojIC8q
IGx0ZGxsLmMgc3RhcnRzIGhlcmUgKi8KIyAjZGVmaW5lIFdJTjMyX0xFQU5f
QU5EX01FQU4KIyAjaW5jbHVkZSA8d2luZG93cy5oPgojICN1bmRlZiBXSU4z
Ml9MRUFOX0FORF9NRUFOCiMgI2luY2x1ZGUgPHN0ZGlvLmg+CiMKIyAjaWZu
ZGVmIF9fQ1lHV0lOX18KIyAjICBpZmRlZiBfX0NZR1dJTjMyX18KIyAjICAg
IGRlZmluZSBfX0NZR1dJTl9fIF9fQ1lHV0lOMzJfXwojICMgIGVuZGlmCiMg
I2VuZGlmCiMKIyAjaWZkZWYgX19jcGx1c3BsdXMKIyBleHRlcm4gIkMiIHsK
IyAjZW5kaWYKIyBCT09MIEFQSUVOVFJZIERsbE1haW4gKEhJTlNUQU5DRSBo
SW5zdCwgRFdPUkQgcmVhc29uLCBMUFZPSUQgcmVzZXJ2ZWQpOwojICNpZmRl
ZiBfX2NwbHVzcGx1cwojIH0KIyAjZW5kaWYKIwojICNpZmRlZiBfX0NZR1dJ
Tl9fCiMgI2luY2x1ZGUgPGN5Z3dpbi9jeWd3aW5fZGxsLmg+CiMgREVDTEFS
RV9DWUdXSU5fRExMKCBEbGxNYWluICk7CiMgI2VuZGlmCiMgSElOU1RBTkNF
IF9faERsbEluc3RhbmNlX2Jhc2U7CiMKIyBCT09MIEFQSUVOVFJZCiMgRGxs
TWFpbiAoSElOU1RBTkNFIGhJbnN0LCBEV09SRCByZWFzb24sIExQVk9JRCBy
ZXNlcnZlZCkKIyB7CiMgICBfX2hEbGxJbnN0YW5jZV9iYXNlID0gaEluc3Q7
CiMgICByZXR1cm4gVFJVRTsKIyB9CiMgLyogbHRkbGwuYyBlbmRzIGhlcmUg
Ki8KCSMgVGhpcyBpcyBhIHNvdXJjZSBwcm9ncmFtIHRoYXQgaXMgdXNlZCB0
byBjcmVhdGUgaW1wb3J0IGxpYnJhcmllcwoJIyBvbiBXaW5kb3dzIGZvciBk
bGxzIHdoaWNoIGxhY2sgdGhlbS4gRG9uJ3QgcmVtb3ZlIG5vciBtb2RpZnkg
dGhlCgkjIHN0YXJ0aW5nIGFuZCBjbG9zaW5nIGNvbW1lbnRzCiMgLyogaW1w
Z2VuLmMgc3RhcnRzIGhlcmUgKi8KIyAvKiAgIENvcHlyaWdodCAoQykgMTk5
OS0yMDAwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgojCiMgIFRo
aXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBsaWJ0b29sLgojCiMgIFRoaXMgcHJv
Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IgbW9kaWZ5CiMgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMg
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCiMKIyAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCiMgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyAgR05VIEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIwojICBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQojICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh
bTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojICBGb3Vu
ZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJv
c3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgojICAqLwojCiMgI2luY2x1ZGUg
PHN0ZGlvLmg+CQkvKiBmb3IgcHJpbnRmKCkgKi8KIyAjaW5jbHVkZSA8dW5p
c3RkLmg+CQkvKiBmb3Igb3BlbigpLCBsc2VlaygpLCByZWFkKCkgKi8KIyAj
aW5jbHVkZSA8ZmNudGwuaD4JCS8qIGZvciBPX1JET05MWSwgT19CSU5BUlkg
Ki8KIyAjaW5jbHVkZSA8c3RyaW5nLmg+CQkvKiBmb3Igc3RyZHVwKCkgKi8K
IwojIC8qIE9fQklOQVJZIGlzbid0IHJlcXVpcmVkIChvciBldmVuIGRlZmlu
ZWQgc29tZXRpbWVzKSB1bmRlciBVbml4ICovCiMgI2lmbmRlZiBPX0JJTkFS
WQojICNkZWZpbmUgT19CSU5BUlkgMAojICNlbmRpZgojCiMgc3RhdGljIHVu
c2lnbmVkIGludAojIHBlX2dldDE2IChmZCwgb2Zmc2V0KQojICAgICAgaW50
IGZkOwojICAgICAgaW50IG9mZnNldDsKIyB7CiMgICB1bnNpZ25lZCBjaGFy
IGJbMl07CiMgICBsc2VlayAoZmQsIG9mZnNldCwgU0VFS19TRVQpOwojICAg
cmVhZCAoZmQsIGIsIDIpOwojICAgcmV0dXJuIGJbMF0gKyAoYlsxXTw8OCk7
CiMgfQojCiMgc3RhdGljIHVuc2lnbmVkIGludAojIHBlX2dldDMyIChmZCwg
b2Zmc2V0KQojICAgICBpbnQgZmQ7CiMgICAgIGludCBvZmZzZXQ7CiMgewoj
ICAgdW5zaWduZWQgY2hhciBiWzRdOwojICAgbHNlZWsgKGZkLCBvZmZzZXQs
IFNFRUtfU0VUKTsKIyAgIHJlYWQgKGZkLCBiLCA0KTsKIyAgIHJldHVybiBi
WzBdICsgKGJbMV08PDgpICsgKGJbMl08PDE2KSArIChiWzNdPDwyNCk7CiMg
fQojCiMgc3RhdGljIHVuc2lnbmVkIGludAojIHBlX2FzMzIgKHB0cikKIyAg
ICAgIHZvaWQgKnB0cjsKIyB7CiMgICB1bnNpZ25lZCBjaGFyICpiID0gcHRy
OwojICAgcmV0dXJuIGJbMF0gKyAoYlsxXTw8OCkgKyAoYlsyXTw8MTYpICsg
KGJbM108PDI0KTsKIyB9CiMKIyBpbnQKIyBtYWluIChhcmdjLCBhcmd2KQoj
ICAgICBpbnQgYXJnYzsKIyAgICAgY2hhciAqYXJndltdOwojIHsKIyAgICAg
aW50IGRsbDsKIyAgICAgdW5zaWduZWQgbG9uZyBwZV9oZWFkZXJfb2Zmc2V0
LCBvcHRoZHJfb2ZzLCBudW1fZW50cmllcywgaTsKIyAgICAgdW5zaWduZWQg
bG9uZyBleHBvcnRfcnZhLCBleHBvcnRfc2l6ZSwgbnNlY3Rpb25zLCBzZWNw
dHIsIGV4cHB0cjsKIyAgICAgdW5zaWduZWQgbG9uZyBuYW1lX3J2YXMsIG5l
eHA7CiMgICAgIHVuc2lnbmVkIGNoYXIgKmV4cGRhdGEsICplcnZhOwojICAg
ICBjaGFyICpmaWxlbmFtZSwgKmRsbF9uYW1lOwojCiMgICAgIGZpbGVuYW1l
ID0gYXJndlsxXTsKIwojICAgICBkbGwgPSBvcGVuKGZpbGVuYW1lLCBPX1JE
T05MWXxPX0JJTkFSWSk7CiMgICAgIGlmIChkbGwgPCAxKQojIAlyZXR1cm4g
MTsKIwojICAgICBkbGxfbmFtZSA9IGZpbGVuYW1lOwojCiMgICAgIGZvciAo
aT0wOyBmaWxlbmFtZVtpXTsgaSsrKQojIAlpZiAoZmlsZW5hbWVbaV0gPT0g
Jy8nIHx8IGZpbGVuYW1lW2ldID09ICdcXCcgIHx8IGZpbGVuYW1lW2ldID09
ICc6JykKIyAJICAgIGRsbF9uYW1lID0gZmlsZW5hbWUgKyBpICsxOwojCiMg
ICAgIHBlX2hlYWRlcl9vZmZzZXQgPSBwZV9nZXQzMiAoZGxsLCAweDNjKTsK
IyAgICAgb3B0aGRyX29mcyA9IHBlX2hlYWRlcl9vZmZzZXQgKyA0ICsgMjA7
CiMgICAgIG51bV9lbnRyaWVzID0gcGVfZ2V0MzIgKGRsbCwgb3B0aGRyX29m
cyArIDkyKTsKIwojICAgICBpZiAobnVtX2VudHJpZXMgPCAxKSAvKiBubyBl
eHBvcnRzICovCiMgCXJldHVybiAxOwojCiMgICAgIGV4cG9ydF9ydmEgPSBw
ZV9nZXQzMiAoZGxsLCBvcHRoZHJfb2ZzICsgOTYpOwojICAgICBleHBvcnRf
c2l6ZSA9IHBlX2dldDMyIChkbGwsIG9wdGhkcl9vZnMgKyAxMDApOwojICAg
ICBuc2VjdGlvbnMgPSBwZV9nZXQxNiAoZGxsLCBwZV9oZWFkZXJfb2Zmc2V0
ICsgNCArMik7CiMgICAgIHNlY3B0ciA9IChwZV9oZWFkZXJfb2Zmc2V0ICsg
NCArIDIwICsKIyAJICAgICAgcGVfZ2V0MTYgKGRsbCwgcGVfaGVhZGVyX29m
ZnNldCArIDQgKyAxNikpOwojCiMgICAgIGV4cHB0ciA9IDA7CiMgICAgIGZv
ciAoaSA9IDA7IGkgPCBuc2VjdGlvbnM7IGkrKykKIyAgICAgewojIAljaGFy
IHNuYW1lWzhdOwojIAl1bnNpZ25lZCBsb25nIHNlY3B0cjEgPSBzZWNwdHIg
KyA0MCAqIGk7CiMgCXVuc2lnbmVkIGxvbmcgdmFkZHIgPSBwZV9nZXQzMiAo
ZGxsLCBzZWNwdHIxICsgMTIpOwojIAl1bnNpZ25lZCBsb25nIHZzaXplID0g
cGVfZ2V0MzIgKGRsbCwgc2VjcHRyMSArIDE2KTsKIyAJdW5zaWduZWQgbG9u
ZyBmcHRyID0gcGVfZ2V0MzIgKGRsbCwgc2VjcHRyMSArIDIwKTsKIyAJbHNl
ZWsoZGxsLCBzZWNwdHIxLCBTRUVLX1NFVCk7CiMgCXJlYWQoZGxsLCBzbmFt
ZSwgOCk7CiMgCWlmICh2YWRkciA8PSBleHBvcnRfcnZhICYmIHZhZGRyK3Zz
aXplID4gZXhwb3J0X3J2YSkKIyAJewojIAkgICAgZXhwcHRyID0gZnB0ciAr
IChleHBvcnRfcnZhIC0gdmFkZHIpOwojIAkgICAgaWYgKGV4cG9ydF9ydmEg
KyBleHBvcnRfc2l6ZSA+IHZhZGRyICsgdnNpemUpCiMgCQlleHBvcnRfc2l6
ZSA9IHZzaXplIC0gKGV4cG9ydF9ydmEgLSB2YWRkcik7CiMgCSAgICBicmVh
azsKIyAJfQojICAgICB9CiMKIyAgICAgZXhwZGF0YSA9ICh1bnNpZ25lZCBj
aGFyKiltYWxsb2MoZXhwb3J0X3NpemUpOwojICAgICBsc2VlayAoZGxsLCBl
eHBwdHIsIFNFRUtfU0VUKTsKIyAgICAgcmVhZCAoZGxsLCBleHBkYXRhLCBl
eHBvcnRfc2l6ZSk7CiMgICAgIGVydmEgPSBleHBkYXRhIC0gZXhwb3J0X3J2
YTsKIwojICAgICBuZXhwID0gcGVfYXMzMiAoZXhwZGF0YSsyNCk7CiMgICAg
IG5hbWVfcnZhcyA9IHBlX2FzMzIgKGV4cGRhdGErMzIpOwojCiMgICAgIHBy
aW50ZiAoIkVYUE9SVFNcbiIpOwojICAgICBmb3IgKGkgPSAwOyBpPG5leHA7
IGkrKykKIyAgICAgewojIAl1bnNpZ25lZCBsb25nIG5hbWVfcnZhID0gcGVf
YXMzMiAoZXJ2YStuYW1lX3J2YXMraSo0KTsKIyAJcHJpbnRmICgiXHQlcyBA
ICVsZCA7XG4iLCBlcnZhK25hbWVfcnZhLCAxKyBpKTsKIyAgICAgfQojCiMg
ICAgIHJldHVybiAwOwojIH0KIyAvKiBpbXBnZW4uYyBlbmRzIGhlcmUgKi8K
CkVPRgogICAgOzsKICBlc2FjCgogICMgV2UgdXNlIHNlZCBpbnN0ZWFkIG9m
IGNhdCBiZWNhdXNlIGJhc2ggb24gREpHUFAgZ2V0cyBjb25mdXNlZCBpZgog
ICMgaWYgZmluZHMgbWl4ZWQgQ1IvTEYgYW5kIExGLW9ubHkgbGluZXMuICBT
aW5jZSBzZWQgb3BlcmF0ZXMgaW4KICAjIHRleHQgbW9kZSwgaXQgcHJvcGVy
bHkgY29udmVydHMgbGluZXMgdG8gQ1IvTEYuICBUaGlzIGJhc2ggcHJvYmxl
bQogICMgaXMgcmVwb3J0ZWRseSBmaXhlZCwgYnV0IHdoeSBub3QgcnVuIG9u
IG9sZCB2ZXJzaW9ucyB0b28/CiAgc2VkICckcScgIiRsdG1haW4iID4+ICIk
e29maWxlfVQiIHx8IChybSAtZiAiJHtvZmlsZX1UIjsgZXhpdCAxKQoKICBt
diAtZiAiJHtvZmlsZX1UIiAiJG9maWxlIiB8fCBcCiAgICAocm0gLWYgIiRv
ZmlsZSIgJiYgY3AgIiR7b2ZpbGV9VCIgIiRvZmlsZSIgJiYgcm0gLWYgIiR7
b2ZpbGV9VCIpCiAgY2htb2QgK3ggIiRvZmlsZSIKZmkKIyMKIyMgRU5EIEZJ
WE1FCgoKCgoKIyBUaGlzIGNhbiBiZSB1c2VkIHRvIHJlYnVpbGQgbGlidG9v
bCB3aGVuIG5lZWRlZApMSUJUT09MX0RFUFM9IiRhY19hdXhfZGlyL2x0bWFp
bi5zaCIKCiMgQWx3YXlzIHVzZSBvdXIgb3duIGxpYnRvb2wuCkxJQlRPT0w9
JyQoU0hFTEwpICQodG9wX2J1aWxkZGlyKS9saWJ0b29sJwoKIyBQcmV2ZW50
IG11bHRpcGxlIGV4cGFuc2lvbgoKCgojPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoj
CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCW1hdGgKIy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCgplY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcg
Zm9yIHNxcnQgaW4gLWxtIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBm
b3Igc3FydCBpbiAtbG0uLi4gJEVDSE9fQyIgPiY2CmlmIHRlc3QgIiR7YWNf
Y3ZfbGliX21fc3FydCtzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9f
TiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBhY19jaGVja19saWJf
c2F2ZV9MSUJTPSRMSUJTCkxJQlM9Ii1sbSAgJExJQlMiCmNhdCA+Y29uZnRl
c3QuJGFjX2V4dCA8PF9BQ0VPRgojbGluZSAkTElORU5PICJjb25maWd1cmUi
Ci8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5j
b25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF
T0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwoKLyogT3ZlcnJpZGUgYW55IGdj
YzIgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8K
I2lmZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAiQyIKI2VuZGlmCi8qIFdlIHVz
ZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlw
ZSBvZiBhIGdjYzIKICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQg
cHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KY2hhciBzcXJ0ICgp
OwppbnQKbWFpbiAoKQp7CnNxcnQgKCk7CiAgOwogIHJldHVybiAwOwp9Cl9B
Q0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4
ZWV4dAppZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19s
aW5rXCIiKSA+JjUKICAoZXZhbCAkYWNfbGluaykgMj4mNQogIGFjX3N0YXR1
cz0kPwogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVz
IiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgogICAgICAgICB7IGFj
X3RyeT0ndGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQnCiAgeyAoZXZhbCBl
Y2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKICAoZXZh
bCAkYWNfdHJ5KSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21l
OiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19z
dGF0dXMpOyB9OyB9OyB0aGVuCiAgYWNfY3ZfbGliX21fc3FydD15ZXMKZWxz
ZQogIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNl
ZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCmFjX2N2X2xpYl9t
X3NxcnQ9bm8KZmkKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz
dCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dApMSUJTPSRhY19jaGVja19s
aWJfc2F2ZV9MSUJTCmZpCmVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6
ICRhY19jdl9saWJfbV9zcXJ0IiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2N2
X2xpYl9tX3NxcnQiID4mNgppZiB0ZXN0ICRhY19jdl9saWJfbV9zcXJ0ID0g
eWVzOyB0aGVuCiAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgojZGVmaW5l
IEhBVkVfTElCTSAxCl9BQ0VPRgoKICBMSUJTPSItbG0gJExJQlMiCgpmaQoK
Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMJU3VuIG1hdGgKIy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCgplY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp
bmcgZm9yIHN0YW5kYXJkX2FyaXRobWV0aWMgaW4gLWxzdW5tYXRoIiA+JjUK
ZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3RhbmRhcmRfYXJpdGhtZXRp
YyBpbiAtbHN1bm1hdGguLi4gJEVDSE9fQyIgPiY2CmlmIHRlc3QgIiR7YWNf
Y3ZfbGliX3N1bm1hdGhfc3RhbmRhcmRfYXJpdGhtZXRpYytzZXR9IiA9IHNl
dDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2
CmVsc2UKICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCkxJQlM9Ii1s
c3VubWF0aCAgJExJQlMiCmNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP
RgojbGluZSAkTElORU5PICJjb25maWd1cmUiCi8qIGNvbmZkZWZzLmguICAq
LwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNh
dCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZz
LmguICAqLwoKLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJvdG90
eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8KI2lmZGVmIF9fY3BsdXNwbHVz
CmV4dGVybiAiQyIKI2VuZGlmCi8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50
IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKICAgYnVp
bHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0
aWxsIGFwcGx5LiAgKi8KY2hhciBzdGFuZGFyZF9hcml0aG1ldGljICgpOwpp
bnQKbWFpbiAoKQp7CnN0YW5kYXJkX2FyaXRobWV0aWMgKCk7CiAgOwogIHJl
dHVybiAwOwp9Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNv
bmZ0ZXN0JGFjX2V4ZWV4dAppZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElO
RU5POiBcIiRhY19saW5rXCIiKSA+JjUKICAoZXZhbCAkYWNfbGluaykgMj4m
NQogIGFjX3N0YXR1cz0kPwogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8g
PSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgog
ICAgICAgICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQn
CiAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIi
KSA+JjUKICAoZXZhbCAkYWNfdHJ5KSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAg
ZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQog
IChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCiAgYWNfY3ZfbGliX3N1
bm1hdGhfc3RhbmRhcmRfYXJpdGhtZXRpYz15ZXMKZWxzZQogIGVjaG8gIiRh
c19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycg
Y29uZnRlc3QuJGFjX2V4dCA+JjUKCmFjX2N2X2xpYl9zdW5tYXRoX3N0YW5k
YXJkX2FyaXRobWV0aWM9bm8KZmkKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4
dCBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dApMSUJTPSRh
Y19jaGVja19saWJfc2F2ZV9MSUJTCmZpCmVjaG8gIiRhc19tZTokTElORU5P
OiByZXN1bHQ6ICRhY19jdl9saWJfc3VubWF0aF9zdGFuZGFyZF9hcml0aG1l
dGljIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2xpYl9zdW5tYXRoX3N0
YW5kYXJkX2FyaXRobWV0aWMiID4mNgppZiB0ZXN0ICRhY19jdl9saWJfc3Vu
bWF0aF9zdGFuZGFyZF9hcml0aG1ldGljID0geWVzOyB0aGVuCiAgY2F0ID4+
Y29uZmRlZnMuaCA8PF9BQ0VPRgojZGVmaW5lIEhBVkVfTElCU1VOTUFUSCAx
Cl9BQ0VPRgoKICBMSUJTPSItbHN1bm1hdGggJExJQlMiCgpmaQoKIy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiMgICAgICAgUG9zaXggVGhyZWFkcwppZiB0
ZXN0ICIkd2l0aF9wdGhyZWFkIiA9ICJ5ZXMiOyB0aGVuCgplY2hvICIkYXNf
bWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHB0aHJlYWRfY3JlYXRlIGluIC1s
cHRocmVhZCIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHB0aHJl
YWRfY3JlYXRlIGluIC1scHRocmVhZC4uLiAkRUNIT19DIiA+JjYKaWYgdGVz
dCAiJHthY19jdl9saWJfcHRocmVhZF9wdGhyZWFkX2NyZWF0ZStzZXR9IiA9
IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIg
PiY2CmVsc2UKICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCkxJQlM9
Ii1scHRocmVhZCAgJExJQlMiCmNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9B
Q0VPRgojbGluZSAkTElORU5PICJjb25maWd1cmUiCi8qIGNvbmZkZWZzLmgu
ICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0
CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZk
ZWZzLmguICAqLwoKLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJv
dG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8KI2lmZGVmIF9fY3BsdXNw
bHVzCmV4dGVybiAiQyIKI2VuZGlmCi8qIFdlIHVzZSBjaGFyIGJlY2F1c2Ug
aW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKICAg
YnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxk
IHN0aWxsIGFwcGx5LiAgKi8KY2hhciBwdGhyZWFkX2NyZWF0ZSAoKTsKaW50
Cm1haW4gKCkKewpwdGhyZWFkX2NyZWF0ZSAoKTsKICA7CiAgcmV0dXJuIDA7
Cn0KX0FDRU9GCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3Qk
YWNfZXhlZXh0CmlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwi
JGFjX2xpbmtcIiIpID4mNQogIChldmFsICRhY19saW5rKSAyPiY1CiAgYWNf
c3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19z
dGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCiAgICAgICAg
IHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCcKICB7IChl
dmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQog
IChldmFsICRhY190cnkpIDI+JjUKICBhY19zdGF0dXM9JD8KICBlY2hvICIk
YXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQg
JGFjX3N0YXR1cyk7IH07IH07IHRoZW4KICBhY19jdl9saWJfcHRocmVhZF9w
dGhyZWFkX2NyZWF0ZT15ZXMKZWxzZQogIGVjaG8gIiRhc19tZTogZmFpbGVk
IHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFj
X2V4dCA+JjUKCmFjX2N2X2xpYl9wdGhyZWFkX3B0aHJlYWRfY3JlYXRlPW5v
CmZpCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhl
ZXh0IGNvbmZ0ZXN0LiRhY19leHQKTElCUz0kYWNfY2hlY2tfbGliX3NhdmVf
TElCUwpmaQplY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3Zf
bGliX3B0aHJlYWRfcHRocmVhZF9jcmVhdGUiID4mNQplY2hvICIke0VDSE9f
VH0kYWNfY3ZfbGliX3B0aHJlYWRfcHRocmVhZF9jcmVhdGUiID4mNgppZiB0
ZXN0ICRhY19jdl9saWJfcHRocmVhZF9wdGhyZWFkX2NyZWF0ZSA9IHllczsg
dGhlbgogIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKI2RlZmluZSBIQVZF
X0xJQlBUSFJFQUQgMQpfQUNFT0YKCiAgTElCUz0iLWxwdGhyZWFkICRMSUJT
IgoKZmkKCmZpCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KIwlydHN0CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQppZiB0ZXN0IC1mICR7YWNfY3ZfcnRzdH0vcGtnY29uZmlnL3J0c3QucGM7
IHRoZW4KICAgIFJUU1RfREZMVF9QQz0ke2FjX2N2X3J0c3R9L3BrZ2NvbmZp
ZwplbGlmIHRlc3QgLWYgJHthY19jdl9ydHN0fS9ydHN0LnBjOyB0aGVuCiAg
ICBSVFNUX0RGTFRfUEM9JHthY19jdl9ydHN0fQplbHNlCiAgICBSVFNUX0RG
TFRfUEM9JHtxbl9leGVjX3ByZWZpeH0vbGliL3BrZ2NvbmZpZwpmaQpvbGRf
UEtHX0NPTkZJR19QQVRIPSR7UEtHX0NPTkZJR19QQVRIfQpQS0dfQ09ORklH
X1BBVEg9IiR7UlRTVF9ERkxUX1BDfToke1BLR19DT05GSUdfUEFUSH0iCmV4
cG9ydCBQS0dfQ09ORklHX1BBVEgKCiAgc3VjY2VlZGVkPW5vCgogIGlmIHRl
c3QgLXogIiRQS0dfQ09ORklHIjsgdGhlbgogICAgIyBFeHRyYWN0IHRoZSBm
aXJzdCB3b3JkIG9mICJwa2ctY29uZmlnIiwgc28gaXQgY2FuIGJlIGEgcHJv
Z3JhbSBuYW1lIHdpdGggYXJncy4Kc2V0IGR1bW15IHBrZy1jb25maWc7IGFj
X3dvcmQ9JDIKZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAk
YWNfd29yZCIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY193
b3JkLi4uICRFQ0hPX0MiID4mNgppZiB0ZXN0ICIke2FjX2N2X3BhdGhfUEtH
X0NPTkZJRytzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNh
Y2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBjYXNlICRQS0dfQ09ORklHIGlu
CiAgW1xcL10qIHwgPzpbXFwvXSopCiAgYWNfY3ZfcGF0aF9QS0dfQ09ORklH
PSIkUEtHX0NPTkZJRyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRl
c3Qgd2l0aCBhIHBhdGguCiAgOzsKICAqKQogIGFzX3NhdmVfSUZTPSRJRlM7
IElGUz0kUEFUSF9TRVBBUkFUT1IKZm9yIGFzX2RpciBpbiAkUEFUSApkbwog
IElGUz0kYXNfc2F2ZV9JRlMKICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19k
aXI9LgogIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9l
eHRlbnNpb25zOyBkbwogIGlmICRhc19leGVjdXRhYmxlX3AgIiRhc19kaXIv
JGFjX3dvcmQkYWNfZXhlY19leHQiOyB0aGVuCiAgICBhY19jdl9wYXRoX1BL
R19DT05GSUc9IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiCiAgICBl
Y2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRh
Y19leGVjX2V4dCIgPiY1CiAgICBicmVhayAyCiAgZmkKZG9uZQpkb25lCgog
IHRlc3QgLXogIiRhY19jdl9wYXRoX1BLR19DT05GSUciICYmIGFjX2N2X3Bh
dGhfUEtHX0NPTkZJRz0ibm8iCiAgOzsKZXNhYwpmaQpQS0dfQ09ORklHPSRh
Y19jdl9wYXRoX1BLR19DT05GSUcKCmlmIHRlc3QgLW4gIiRQS0dfQ09ORklH
IjsgdGhlbgogIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRQS0df
Q09ORklHIiA+JjUKZWNobyAiJHtFQ0hPX1R9JFBLR19DT05GSUciID4mNgpl
bHNlCiAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQpl
Y2hvICIke0VDSE9fVH1ubyIgPiY2CmZpCgogIGZpCgogIGlmIHRlc3QgIiRQ
S0dfQ09ORklHIiA9ICJubyIgOyB0aGVuCiAgICAgZWNobyAiKioqIFRoZSBw
a2ctY29uZmlnIHNjcmlwdCBjb3VsZCBub3QgYmUgZm91bmQuIE1ha2Ugc3Vy
ZSBpdCBpcyIKICAgICBlY2hvICIqKiogaW4geW91ciBwYXRoLCBvciBzZXQg
dGhlIFBLR19DT05GSUcgZW52aXJvbm1lbnQgdmFyaWFibGUiCiAgICAgZWNo
byAiKioqIHRvIHRoZSBmdWxsIHBhdGggdG8gcGtnLWNvbmZpZy4iCiAgICAg
ZWNobyAiKioqIE9yIHNlZSBodHRwOi8vd3d3LmZyZWVkZXNrdG9wLm9yZy9z
b2Z0d2FyZS9wa2djb25maWcgdG8gZ2V0IHBrZy1jb25maWcuIgogIGVsc2UK
ICAgICBQS0dfQ09ORklHX01JTl9WRVJTSU9OPTAuOS4wCiAgICAgaWYgJFBL
R19DT05GSUcgLS1hdGxlYXN0LXBrZ2NvbmZpZy12ZXJzaW9uICRQS0dfQ09O
RklHX01JTl9WRVJTSU9OOyB0aGVuCiAgICAgICAgZWNobyAiJGFzX21lOiRM
SU5FTk86IGNoZWNraW5nIGZvciBydHN0IiA+JjUKZWNobyAkRUNIT19OICJj
aGVja2luZyBmb3IgcnRzdC4uLiAkRUNIT19DIiA+JjYKCiAgICAgICAgaWYg
JFBLR19DT05GSUcgLS1leGlzdHMgInJ0c3QiIDsgdGhlbgogICAgICAgICAg
ICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQplY2hv
ICIke0VDSE9fVH15ZXMiID4mNgogICAgICAgICAgICBzdWNjZWVkZWQ9eWVz
CgogICAgICAgICAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcg
UlRTVF9DRkxBR1MiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIFJUU1Rf
Q0ZMQUdTLi4uICRFQ0hPX0MiID4mNgogICAgICAgICAgICBSVFNUX0NGTEFH
Uz1gJFBLR19DT05GSUcgLS1jZmxhZ3MgInJ0c3QiYAogICAgICAgICAgICBl
Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkUlRTVF9DRkxBR1MiID4m
NQplY2hvICIke0VDSE9fVH0kUlRTVF9DRkxBR1MiID4mNgoKICAgICAgICAg
ICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIFJUU1RfTElCUyIg
PiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgUlRTVF9MSUJTLi4uICRFQ0hP
X0MiID4mNgogICAgICAgICAgICBSVFNUX0xJQlM9YCRQS0dfQ09ORklHIC0t
bGlicyAicnRzdCJgCiAgICAgICAgICAgIGVjaG8gIiRhc19tZTokTElORU5P
OiByZXN1bHQ6ICRSVFNUX0xJQlMiID4mNQplY2hvICIke0VDSE9fVH0kUlRT
VF9MSUJTIiA+JjYKICAgICAgICBlbHNlCiAgICAgICAgICAgIFJUU1RfQ0ZM
QUdTPSIiCiAgICAgICAgICAgIFJUU1RfTElCUz0iIgogICAgICAgICAgICAj
IyBJZiB3ZSBoYXZlIGEgY3VzdG9tIGFjdGlvbiBvbiBmYWlsdXJlLCBkb24n
dCBwcmludCBlcnJvcnMsIGJ1dAogICAgICAgICAgICAjIyBkbyBzZXQgYSB2
YXJpYWJsZSBzbyBwZW9wbGUgY2FuIGRvIHNvLgogICAgICAgICAgICBSVFNU
X1BLR19FUlJPUlM9YCRQS0dfQ09ORklHIC0tZXJyb3JzLXRvLXN0ZG91dCAt
LXByaW50LWVycm9ycyAicnRzdCJgCgogICAgICAgIGZpCgoKCiAgICAgZWxz
ZQogICAgICAgIGVjaG8gIioqKiBZb3VyIHZlcnNpb24gb2YgcGtnLWNvbmZp
ZyBpcyB0b28gb2xkLiBZb3UgbmVlZCB2ZXJzaW9uICRQS0dfQ09ORklHX01J
Tl9WRVJTSU9OIG9yIG5ld2VyLiIKICAgICAgICBlY2hvICIqKiogU2VlIGh0
dHA6Ly93d3cuZnJlZWRlc2t0b3Aub3JnL3NvZnR3YXJlL3BrZ2NvbmZpZyIK
ICAgICBmaQogIGZpCgogIGlmIHRlc3QgJHN1Y2NlZWRlZCA9IHllczsgdGhl
bgogICAgIDoKICBlbHNlCiAgICAgOgogIGZpCgpQS0dfQ09ORklHX1BBVEg9
JHtvbGRfUEtHX0NPTkZJR19QQVRIfQoKb2xkX0NGTEFHUz0ke0NGTEFHU30K
b2xkX0xJQlM9JHtMSUJTfQpDRkxBR1M9IiR7Q0ZMQUdTfSAke1JUU1RfQ0ZM
QUdTfSIKTElCUz0iJHtMSUJTfSAke1JUU1RfTElCU30iCmVjaG8gIiRhc19t
ZTokTElORU5POiBjaGVja2luZyBmb3IgcnRzdF9leGl0IGluIC1scnRzdCIg
PiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHJ0c3RfZXhpdCBpbiAt
bHJ0c3QuLi4gJEVDSE9fQyIgPiY2CmlmIHRlc3QgIiR7YWNfY3ZfbGliX3J0
c3RfcnRzdF9leGl0K3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19O
ICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZWxzZQogIGFjX2NoZWNrX2xpYl9z
YXZlX0xJQlM9JExJQlMKTElCUz0iLWxydHN0ICAkTElCUyIKY2F0ID5jb25m
dGVzdC4kYWNfZXh0IDw8X0FDRU9GCiNsaW5lICRMSU5FTk8gImNvbmZpZ3Vy
ZSIKLyogY29uZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+
PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9B
Q0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCgovKiBPdmVycmlkZSBhbnkg
Z2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAq
LwojaWZkZWYgX19jcGx1c3BsdXMKZXh0ZXJuICJDIgojZW5kaWYKLyogV2Ug
dXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0
eXBlIG9mIGEgZ2NjMgogICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVu
dCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwpjaGFyIHJ0c3Rf
ZXhpdCAoKTsKaW50Cm1haW4gKCkKewpydHN0X2V4aXQgKCk7CiAgOwogIHJl
dHVybiAwOwp9Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNv
bmZ0ZXN0JGFjX2V4ZWV4dAppZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElO
RU5POiBcIiRhY19saW5rXCIiKSA+JjUKICAoZXZhbCAkYWNfbGluaykgMj4m
NQogIGFjX3N0YXR1cz0kPwogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8g
PSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgog
ICAgICAgICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQn
CiAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIi
KSA+JjUKICAoZXZhbCAkYWNfdHJ5KSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAg
ZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQog
IChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCiAgYWNfY3ZfbGliX3J0
c3RfcnRzdF9leGl0PXllcwplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQg
cHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNf
ZXh0ID4mNQoKYWNfY3ZfbGliX3J0c3RfcnRzdF9leGl0PW5vCmZpCnJtIC1m
IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0
ZXN0LiRhY19leHQKTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwpmaQpl
Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfbGliX3J0c3Rf
cnRzdF9leGl0IiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2xpYl9ydHN0
X3J0c3RfZXhpdCIgPiY2CmlmIHRlc3QgJGFjX2N2X2xpYl9ydHN0X3J0c3Rf
ZXhpdCA9IHllczsgdGhlbgogIGhhdmVfbGlicnRzdD15ZXMKZWxzZQogIGhh
dmVfbGlicnRzdD1ubwpmaQoKQ0ZMQUdTPSR7b2xkX0NGTEFHU30KTElCUz0k
e29sZF9MSUJTfQoKCgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkZWZhdWx0X21s
cDNfYmxhcz1mYWxzZQoKY2FzZSAkYWNfY3ZfdXNlX2JsYXMgaW4KICBibGFz
KQoKZm9yIGFjX2hlYWRlciBpbiBibGFzLmgKZG8KYXNfYWNfSGVhZGVyPWBl
Y2hvICJhY19jdl9oZWFkZXJfJGFjX2hlYWRlciIgfCAkYXNfdHJfc2hgCmlm
IGV2YWwgInRlc3QgXCJcJHskYXNfYWNfSGVhZGVyK3NldH1cIiA9IHNldCI7
IHRoZW4KICBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRh
Y19oZWFkZXIiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNf
aGVhZGVyLi4uICRFQ0hPX0MiID4mNgppZiBldmFsICJ0ZXN0IFwiXCR7JGFz
X2FjX0hlYWRlcitzZXR9XCIgPSBzZXQiOyB0aGVuCiAgZWNobyAkRUNIT19O
ICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZmkKZWNobyAiJGFzX21lOiRMSU5F
Tk86IHJlc3VsdDogYGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2Ai
ID4mNQplY2hvICIke0VDSE9fVH1gZXZhbCBlY2hvICckeyckYXNfYWNfSGVh
ZGVyJ30nYCIgPiY2CmVsc2UKICAjIElzIHRoZSBoZWFkZXIgY29tcGlsYWJs
ZT8KZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nICRhY19oZWFkZXIg
dXNhYmlsaXR5IiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyAkYWNfaGVh
ZGVyIHVzYWJpbGl0eS4uLiAkRUNIT19DIiA+JjYKY2F0ID5jb25mdGVzdC4k
YWNfZXh0IDw8X0FDRU9GCiNsaW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKLyog
Y29uZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0
ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgov
KiBlbmQgY29uZmRlZnMuaC4gICovCiRhY19pbmNsdWRlc19kZWZhdWx0CiNp
bmNsdWRlIDwkYWNfaGVhZGVyPgpfQUNFT0YKcm0gLWYgY29uZnRlc3QuJGFj
X29iamV4dAppZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRh
Y19jb21waWxlXCIiKSA+JjUKICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQog
IGFjX3N0YXR1cz0kPwogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAk
YWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgogICAg
ICAgICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0Jwog
IHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikg
PiY1CiAgKGV2YWwgJGFjX3RyeSkgMj4mNQogIGFjX3N0YXR1cz0kPwogIGVj
aG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAo
ZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgogIGFjX2hlYWRlcl9jb21w
aWxlcj15ZXMKZWxzZQogIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0g
d2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUK
CmFjX2hlYWRlcl9jb21waWxlcj1ubwpmaQpybSAtZiBjb25mdGVzdC4kYWNf
b2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKZWNobyAiJGFzX21lOiRMSU5FTk86
IHJlc3VsdDogJGFjX2hlYWRlcl9jb21waWxlciIgPiY1CmVjaG8gIiR7RUNI
T19UfSRhY19oZWFkZXJfY29tcGlsZXIiID4mNgoKIyBJcyB0aGUgaGVhZGVy
IHByZXNlbnQ/CmVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyAkYWNf
aGVhZGVyIHByZXNlbmNlIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyAk
YWNfaGVhZGVyIHByZXNlbmNlLi4uICRFQ0hPX0MiID4mNgpjYXQgPmNvbmZ0
ZXN0LiRhY19leHQgPDxfQUNFT0YKI2xpbmUgJExJTkVOTyAiY29uZmlndXJl
IgovKiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+
Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FD
RU9GCi8qIGVuZCBjb25mZGVmcy5oLiAgKi8KI2luY2x1ZGUgPCRhY19oZWFk
ZXI+Cl9BQ0VPRgppZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBc
IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dFwiIikgPiY1CiAgKGV2YWwgJGFj
X2NwcCBjb25mdGVzdC4kYWNfZXh0KSAyPmNvbmZ0ZXN0LmVyMQogIGFjX3N0
YXR1cz0kPwogIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRl
c3QuZXJyCiAgcm0gLWYgY29uZnRlc3QuZXIxCiAgY2F0IGNvbmZ0ZXN0LmVy
ciA+JjUKICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1
cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbDsgdGhl
bgogIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVuCiAgICBhY19jcHBf
ZXJyPSRhY19jX3ByZXByb2Nfd2Fybl9mbGFnCiAgZWxzZQogICAgYWNfY3Bw
X2Vycj0KICBmaQplbHNlCiAgYWNfY3BwX2Vycj15ZXMKZmkKaWYgdGVzdCAt
eiAiJGFjX2NwcF9lcnIiOyB0aGVuCiAgYWNfaGVhZGVyX3ByZXByb2M9eWVz
CmVsc2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4m
NQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgogIGFjX2hl
YWRlcl9wcmVwcm9jPW5vCmZpCnJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVz
dC4kYWNfZXh0CmVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19o
ZWFkZXJfcHJlcHJvYyIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY19oZWFkZXJf
cHJlcHJvYyIgPiY2CgojIFNvPyAgV2hhdCBhYm91dCB0aGlzIGhlYWRlcj8K
Y2FzZSAkYWNfaGVhZGVyX2NvbXBpbGVyOiRhY19oZWFkZXJfcHJlcHJvYyBp
bgogIHllczpubyApCiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJO
SU5HOiAkYWNfaGVhZGVyOiBhY2NlcHRlZCBieSB0aGUgY29tcGlsZXIsIHJl
amVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjUKZWNobyAiJGFzX21l
OiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBhY2NlcHRlZCBieSB0aGUgY29tcGls
ZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjI7fQogICAg
eyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjog
cHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1bHQiID4m
NQplY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByb2NlZWRp
bmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjI7fQogICAg
KAogICAgICBjYXQgPDxcX0FTQk9YCiMjIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSAjIwojIyBSZXBvcnQgdGhpcyB0byBidWctYXV0
b2NvbmZAZ251Lm9yZy4gIyMKIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tICMjCl9BU0JPWAogICAgKSB8CiAgICAgIHNlZCAicy9e
LyRhc19tZTogV0FSTklORzogICAgIC8iID4mMgogICAgOzsKICBubzp5ZXMg
KQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hl
YWRlcjogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjUKZWNo
byAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcmVzZW50IGJ1dCBj
YW5ub3QgYmUgY29tcGlsZWQiID4mMjt9CiAgICB7IGVjaG8gIiRhc19tZTok
TElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBjaGVjayBmb3IgbWlzc2lu
ZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mNQplY2hvICIkYXNfbWU6IFdB
Uk5JTkc6ICRhY19oZWFkZXI6IGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVp
c2l0ZSBoZWFkZXJzPyIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5F
Tk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByb2NlZWRpbmcgd2l0aCB0aGUg
cHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjUKZWNobyAiJGFzX21lOiBXQVJO
SU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nl
c3NvcidzIHJlc3VsdCIgPiYyO30KICAgICgKICAgICAgY2F0IDw8XF9BU0JP
WAojIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMK
IyMgUmVwb3J0IHRoaXMgdG8gYnVnLWF1dG9jb25mQGdudS5vcmcuICMjCiMj
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwpfQVNC
T1gKICAgICkgfAogICAgICBzZWQgInMvXi8kYXNfbWU6IFdBUk5JTkc6ICAg
ICAvIiA+JjIKICAgIDs7CmVzYWMKZWNobyAiJGFzX21lOiRMSU5FTk86IGNo
ZWNraW5nIGZvciAkYWNfaGVhZGVyIiA+JjUKZWNobyAkRUNIT19OICJjaGVj
a2luZyBmb3IgJGFjX2hlYWRlci4uLiAkRUNIT19DIiA+JjYKaWYgZXZhbCAi
dGVzdCBcIlwkeyRhc19hY19IZWFkZXIrc2V0fVwiID0gc2V0IjsgdGhlbgog
IGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBl
dmFsICIkYXNfYWNfSGVhZGVyPSRhY19oZWFkZXJfcHJlcHJvYyIKZmkKZWNo
byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogYGV2YWwgZWNobyAnJHsnJGFz
X2FjX0hlYWRlcid9J2AiID4mNQplY2hvICIke0VDSE9fVH1gZXZhbCBlY2hv
ICckeyckYXNfYWNfSGVhZGVyJ30nYCIgPiY2CgpmaQppZiB0ZXN0IGBldmFs
IGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgID0geWVzOyB0aGVuCiAgY2F0
ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgojZGVmaW5lIGBlY2hvICJIQVZFXyRh
Y19oZWFkZXIiIHwgJGFzX3RyX2NwcGAgMQpfQUNFT0YKCmZpCgpkb25lCgog
ICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzZ2VtbSBp
biAtbGJsYXMiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzZ2Vt
bSBpbiAtbGJsYXMuLi4gJEVDSE9fQyIgPiY2CmlmIHRlc3QgIiR7YWNfY3Zf
bGliX2JsYXNfc2dlbW0rc2V0fSIgPSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hP
X04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCiAgYWNfY2hlY2tfbGli
X3NhdmVfTElCUz0kTElCUwpMSUJTPSItbGJsYXMgICRMSUJTIgpjYXQgPmNv
bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKI2xpbmUgJExJTkVOTyAiY29uZmln
dXJlIgovKiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5o
ID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8
X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5oLiAgKi8KCi8qIE92ZXJyaWRlIGFu
eSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4g
ICovCiNpZmRlZiBfX2NwbHVzcGx1cwpleHRlcm4gIkMiCiNlbmRpZgovKiBX
ZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJu
IHR5cGUgb2YgYSBnY2MyCiAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3Vt
ZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCmNoYXIgc2dl
bW0gKCk7CmludAptYWluICgpCnsKc2dlbW0gKCk7CiAgOwogIHJldHVybiAw
Owp9Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0
JGFjX2V4ZWV4dAppZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBc
IiRhY19saW5rXCIiKSA+JjUKICAoZXZhbCAkYWNfbGluaykgMj4mNQogIGFj
X3N0YXR1cz0kPwogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNf
c3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgogICAgICAg
ICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQnCiAgeyAo
ZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUK
ICAoZXZhbCAkYWNfdHJ5KSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAi
JGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0
ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCiAgYWNfY3ZfbGliX2JsYXNfc2dl
bW09eWVzCmVsc2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdh
czoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Cgph
Y19jdl9saWJfYmxhc19zZ2VtbT1ubwpmaQpybSAtZiBjb25mdGVzdC4kYWNf
b2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CkxJ
QlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKZmkKZWNobyAiJGFzX21lOiRM
SU5FTk86IHJlc3VsdDogJGFjX2N2X2xpYl9ibGFzX3NnZW1tIiA+JjUKZWNo
byAiJHtFQ0hPX1R9JGFjX2N2X2xpYl9ibGFzX3NnZW1tIiA+JjYKaWYgdGVz
dCAkYWNfY3ZfbGliX2JsYXNfc2dlbW0gPSB5ZXM7IHRoZW4KCmNhdCA+PmNv
bmZkZWZzLmggPDxcX0FDRU9GCiNkZWZpbmUgSEFWRV9MSUJCTEFTCl9BQ0VP
RgoKCQkgICBMSUJTPSItbGJsYXMgJExJQlMiCgkJICAgZGVmYXVsdF9tbHAz
X2JsYXM9dHJ1ZQplbHNlCiAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBl
cnJvcjogY291bGQgbm90IGZpbmQgdGhlIGJsYXMgbGlicmFyeQpTZWUgXGBj
b25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1CmVjaG8gIiRhc19t
ZTogZXJyb3I6IGNvdWxkIG5vdCBmaW5kIHRoZSBibGFzIGxpYnJhcnkKU2Vl
IFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mMjt9CiAgIHsg
KGV4aXQgMSk7IGV4aXQgMTsgfTsgfQpmaQoKICAgIDs7CiAgY2JsYXMpCgpm
b3IgYWNfaGVhZGVyIGluIGNibGFzLmgKZG8KYXNfYWNfSGVhZGVyPWBlY2hv
ICJhY19jdl9oZWFkZXJfJGFjX2hlYWRlciIgfCAkYXNfdHJfc2hgCmlmIGV2
YWwgInRlc3QgXCJcJHskYXNfYWNfSGVhZGVyK3NldH1cIiA9IHNldCI7IHRo
ZW4KICBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19o
ZWFkZXIiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfaGVh
ZGVyLi4uICRFQ0hPX0MiID4mNgppZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2Fj
X0hlYWRlcitzZXR9XCIgPSBzZXQiOyB0aGVuCiAgZWNobyAkRUNIT19OICIo
Y2FjaGVkKSAkRUNIT19DIiA+JjYKZmkKZWNobyAiJGFzX21lOiRMSU5FTk86
IHJlc3VsdDogYGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4m
NQplY2hvICIke0VDSE9fVH1gZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVy
J30nYCIgPiY2CmVsc2UKICAjIElzIHRoZSBoZWFkZXIgY29tcGlsYWJsZT8K
ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nICRhY19oZWFkZXIgdXNh
YmlsaXR5IiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyAkYWNfaGVhZGVy
IHVzYWJpbGl0eS4uLiAkRUNIT19DIiA+JjYKY2F0ID5jb25mdGVzdC4kYWNf
ZXh0IDw8X0FDRU9GCiNsaW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKLyogY29u
ZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0
LiRhY19leHQKY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBl
bmQgY29uZmRlZnMuaC4gICovCiRhY19pbmNsdWRlc19kZWZhdWx0CiNpbmNs
dWRlIDwkYWNfaGVhZGVyPgpfQUNFT0YKcm0gLWYgY29uZnRlc3QuJGFjX29i
amV4dAppZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19j
b21waWxlXCIiKSA+JjUKICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQogIGFj
X3N0YXR1cz0kPwogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNf
c3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgogICAgICAg
ICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwogIHsg
KGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1
CiAgKGV2YWwgJGFjX3RyeSkgMj4mNQogIGFjX3N0YXR1cz0kPwogIGVjaG8g
IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhp
dCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgogIGFjX2hlYWRlcl9jb21waWxl
cj15ZXMKZWxzZQogIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2Fz
OiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCmFj
X2hlYWRlcl9jb21waWxlcj1ubwpmaQpybSAtZiBjb25mdGVzdC4kYWNfb2Jq
ZXh0IGNvbmZ0ZXN0LiRhY19leHQKZWNobyAiJGFzX21lOiRMSU5FTk86IHJl
c3VsdDogJGFjX2hlYWRlcl9jb21waWxlciIgPiY1CmVjaG8gIiR7RUNIT19U
fSRhY19oZWFkZXJfY29tcGlsZXIiID4mNgoKIyBJcyB0aGUgaGVhZGVyIHBy
ZXNlbnQ/CmVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyAkYWNfaGVh
ZGVyIHByZXNlbmNlIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyAkYWNf
aGVhZGVyIHByZXNlbmNlLi4uICRFQ0hPX0MiID4mNgpjYXQgPmNvbmZ0ZXN0
LiRhY19leHQgPDxfQUNFT0YKI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgov
KiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29u
ZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G
Ci8qIGVuZCBjb25mZGVmcy5oLiAgKi8KI2luY2x1ZGUgPCRhY19oZWFkZXI+
Cl9BQ0VPRgppZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRh
Y19jcHAgY29uZnRlc3QuJGFjX2V4dFwiIikgPiY1CiAgKGV2YWwgJGFjX2Nw
cCBjb25mdGVzdC4kYWNfZXh0KSAyPmNvbmZ0ZXN0LmVyMQogIGFjX3N0YXR1
cz0kPwogIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3Qu
ZXJyCiAgcm0gLWYgY29uZnRlc3QuZXIxCiAgY2F0IGNvbmZ0ZXN0LmVyciA+
JjUKICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIg
PiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbDsgdGhlbgog
IGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVuCiAgICBhY19jcHBfZXJy
PSRhY19jX3ByZXByb2Nfd2Fybl9mbGFnCiAgZWxzZQogICAgYWNfY3BwX2Vy
cj0KICBmaQplbHNlCiAgYWNfY3BwX2Vycj15ZXMKZmkKaWYgdGVzdCAteiAi
JGFjX2NwcF9lcnIiOyB0aGVuCiAgYWNfaGVhZGVyX3ByZXByb2M9eWVzCmVs
c2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpz
ZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgogIGFjX2hlYWRl
cl9wcmVwcm9jPW5vCmZpCnJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4k
YWNfZXh0CmVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19oZWFk
ZXJfcHJlcHJvYyIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY19oZWFkZXJfcHJl
cHJvYyIgPiY2CgojIFNvPyAgV2hhdCBhYm91dCB0aGlzIGhlYWRlcj8KY2Fz
ZSAkYWNfaGVhZGVyX2NvbXBpbGVyOiRhY19oZWFkZXJfcHJlcHJvYyBpbgog
IHllczpubyApCiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5H
OiAkYWNfaGVhZGVyOiBhY2NlcHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVj
dGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjUKZWNobyAiJGFzX21lOiBX
QVJOSU5HOiAkYWNfaGVhZGVyOiBhY2NlcHRlZCBieSB0aGUgY29tcGlsZXIs
IHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjI7fQogICAgeyBl
Y2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogcHJv
Y2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1bHQiID4mNQpl
Y2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByb2NlZWRpbmcg
d2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjI7fQogICAgKAog
ICAgICBjYXQgPDxcX0FTQk9YCiMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSAjIwojIyBSZXBvcnQgdGhpcyB0byBidWctYXV0b2Nv
bmZAZ251Lm9yZy4gIyMKIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tICMjCl9BU0JPWAogICAgKSB8CiAgICAgIHNlZCAicy9eLyRh
c19tZTogV0FSTklORzogICAgIC8iID4mMgogICAgOzsKICBubzp5ZXMgKQog
ICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRl
cjogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjUKZWNobyAi
JGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcmVzZW50IGJ1dCBjYW5u
b3QgYmUgY29tcGlsZWQiID4mMjt9CiAgICB7IGVjaG8gIiRhc19tZTokTElO
RU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBjaGVjayBmb3IgbWlzc2luZyBw
cmVyZXF1aXNpdGUgaGVhZGVycz8iID4mNQplY2hvICIkYXNfbWU6IFdBUk5J
Tkc6ICRhY19oZWFkZXI6IGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0
ZSBoZWFkZXJzPyIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86
IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJl
cHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5H
OiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3Nv
cidzIHJlc3VsdCIgPiYyO30KICAgICgKICAgICAgY2F0IDw8XF9BU0JPWAoj
IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKIyMg
UmVwb3J0IHRoaXMgdG8gYnVnLWF1dG9jb25mQGdudS5vcmcuICMjCiMjIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwpfQVNCT1gK
ICAgICkgfAogICAgICBzZWQgInMvXi8kYXNfbWU6IFdBUk5JTkc6ICAgICAv
IiA+JjIKICAgIDs7CmVzYWMKZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr
aW5nIGZvciAkYWNfaGVhZGVyIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2lu
ZyBmb3IgJGFjX2hlYWRlci4uLiAkRUNIT19DIiA+JjYKaWYgZXZhbCAidGVz
dCBcIlwkeyRhc19hY19IZWFkZXIrc2V0fVwiID0gc2V0IjsgdGhlbgogIGVj
aG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBldmFs
ICIkYXNfYWNfSGVhZGVyPSRhY19oZWFkZXJfcHJlcHJvYyIKZmkKZWNobyAi
JGFzX21lOiRMSU5FTk86IHJlc3VsdDogYGV2YWwgZWNobyAnJHsnJGFzX2Fj
X0hlYWRlcid9J2AiID4mNQplY2hvICIke0VDSE9fVH1gZXZhbCBlY2hvICck
eyckYXNfYWNfSGVhZGVyJ30nYCIgPiY2CgpmaQppZiB0ZXN0IGBldmFsIGVj
aG8gJyR7JyRhc19hY19IZWFkZXInfSdgID0geWVzOyB0aGVuCiAgY2F0ID4+
Y29uZmRlZnMuaCA8PF9BQ0VPRgojZGVmaW5lIGBlY2hvICJIQVZFXyRhY19o
ZWFkZXIiIHwgJGFzX3RyX2NwcGAgMQpfQUNFT0YKCmZpCgpkb25lCgogICAg
ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBjYmxhc19zZ2Vt
bSBpbiAtbGNibGFzIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Ig
Y2JsYXNfc2dlbW0gaW4gLWxjYmxhcy4uLiAkRUNIT19DIiA+JjYKaWYgdGVz
dCAiJHthY19jdl9saWJfY2JsYXNfY2JsYXNfc2dlbW0rc2V0fSIgPSBzZXQ7
IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgpl
bHNlCiAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUwpMSUJTPSItbGNi
bGFzICAkTElCUyIKY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCiNs
aW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKLyogY29uZmRlZnMuaC4gICovCl9B
Q0VPRgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+
Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4g
ICovCgovKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUg
dG8gYXZvaWQgYW4gZXJyb3IuICAqLwojaWZkZWYgX19jcGx1c3BsdXMKZXh0
ZXJuICJDIgojZW5kaWYKLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWln
aHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMgogICBidWlsdGlu
IGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwg
YXBwbHkuICAqLwpjaGFyIGNibGFzX3NnZW1tICgpOwppbnQKbWFpbiAoKQp7
CmNibGFzX3NnZW1tICgpOwogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKcm0g
LWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKaWYg
eyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikg
PiY1CiAgKGV2YWwgJGFjX2xpbmspIDI+JjUKICBhY19zdGF0dXM9JD8KICBl
Y2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAg
KGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKICAgICAgICAgeyBhY190cnk9J3Rl
c3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0JwogIHsgKGV2YWwgZWNobyAiJGFz
X21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CiAgKGV2YWwgJGFjX3Ry
eSkgMj4mNQogIGFjX3N0YXR1cz0kPwogIGVjaG8gIiRhc19tZTokTElORU5P
OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsg
fTsgfTsgdGhlbgogIGFjX2N2X2xpYl9jYmxhc19jYmxhc19zZ2VtbT15ZXMK
ZWxzZQogIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1
CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCmFjX2N2X2xp
Yl9jYmxhc19jYmxhc19zZ2VtbT1ubwpmaQpybSAtZiBjb25mdGVzdC4kYWNf
b2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CkxJ
QlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKZmkKZWNobyAiJGFzX21lOiRM
SU5FTk86IHJlc3VsdDogJGFjX2N2X2xpYl9jYmxhc19jYmxhc19zZ2VtbSIg
PiY1CmVjaG8gIiR7RUNIT19UfSRhY19jdl9saWJfY2JsYXNfY2JsYXNfc2dl
bW0iID4mNgppZiB0ZXN0ICRhY19jdl9saWJfY2JsYXNfY2JsYXNfc2dlbW0g
PSB5ZXM7IHRoZW4KCmNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCiNkZWZp
bmUgSEFWRV9MSUJDQkxBUwpfQUNFT0YKCgpjYXQgPj5jb25mZGVmcy5oIDw8
XF9BQ0VPRgojZGVmaW5lIEhBVkVfTElCQkxBUwpfQUNFT0YKCgkJICBMSUJT
PSItbGNibGFzICRMSUJTIgoJCSAgZGVmYXVsdF9tbHAzX2JsYXM9dHJ1ZQpl
bHNlCiAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY291bGQg
bm90IGZpbmQgdGhlIGNibGFzIGxpYnJhcnkKU2VlIFxgY29uZmlnLmxvZycg
Zm9yIG1vcmUgZGV0YWlscy4iID4mNQplY2hvICIkYXNfbWU6IGVycm9yOiBj
b3VsZCBub3QgZmluZCB0aGUgY2JsYXMgbGlicmFyeQpTZWUgXGBjb25maWcu
bG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KICAgeyAoZXhpdCAxKTsg
ZXhpdCAxOyB9OyB9CmZpCgogICAgOzsKICBhdGxhcykKCmZvciBhY19oZWFk
ZXIgaW4gY2JsYXMuaApkbwphc19hY19IZWFkZXI9YGVjaG8gImFjX2N2X2hl
YWRlcl8kYWNfaGVhZGVyIiB8ICRhc190cl9zaGAKaWYgZXZhbCAidGVzdCBc
IlwkeyRhc19hY19IZWFkZXIrc2V0fVwiID0gc2V0IjsgdGhlbgogIGVjaG8g
IiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX2hlYWRlciIgPiY1
CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY19oZWFkZXIuLi4gJEVD
SE9fQyIgPiY2CmlmIGV2YWwgInRlc3QgXCJcJHskYXNfYWNfSGVhZGVyK3Nl
dH1cIiA9IHNldCI7IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRF
Q0hPX0MiID4mNgpmaQplY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBg
ZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCIgPiY1CmVjaG8gIiR7
RUNIT19UfWBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgIiA+JjYK
ZWxzZQogICMgSXMgdGhlIGhlYWRlciBjb21waWxhYmxlPwplY2hvICIkYXNf
bWU6JExJTkVOTzogY2hlY2tpbmcgJGFjX2hlYWRlciB1c2FiaWxpdHkiID4m
NQplY2hvICRFQ0hPX04gImNoZWNraW5nICRhY19oZWFkZXIgdXNhYmlsaXR5
Li4uICRFQ0hPX0MiID4mNgpjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF
T0YKI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgovKiBjb25mZGVmcy5oLiAg
Ki8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApj
YXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVm
cy5oLiAgKi8KJGFjX2luY2x1ZGVzX2RlZmF1bHQKI2luY2x1ZGUgPCRhY19o
ZWFkZXI+Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CmlmIHsg
KGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIp
ID4mNQogIChldmFsICRhY19jb21waWxlKSAyPiY1CiAgYWNfc3RhdHVzPSQ/
CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4m
NQogIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCiAgICAgICAgIHsgYWNfdHJ5
PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCiAgeyAoZXZhbCBlY2hv
ICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKICAoZXZhbCAk
YWNfdHJ5KSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRM
SU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0
dXMpOyB9OyB9OyB0aGVuCiAgYWNfaGVhZGVyX2NvbXBpbGVyPXllcwplbHNl
CiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2Vk
ICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKYWNfaGVhZGVyX2Nv
bXBpbGVyPW5vCmZpCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl
c3QuJGFjX2V4dAplY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNf
aGVhZGVyX2NvbXBpbGVyIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRl
cl9jb21waWxlciIgPiY2CgojIElzIHRoZSBoZWFkZXIgcHJlc2VudD8KZWNo
byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nICRhY19oZWFkZXIgcHJlc2Vu
Y2UiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nICRhY19oZWFkZXIgcHJl
c2VuY2UuLi4gJEVDSE9fQyIgPiY2CmNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8
PF9BQ0VPRgojbGluZSAkTElORU5PICJjb25maWd1cmUiCi8qIGNvbmZkZWZz
LmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNf
ZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNv
bmZkZWZzLmguICAqLwojaW5jbHVkZSA8JGFjX2hlYWRlcj4KX0FDRU9GCmlm
IHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NwcCBjb25m
dGVzdC4kYWNfZXh0XCIiKSA+JjUKICAoZXZhbCAkYWNfY3BwIGNvbmZ0ZXN0
LiRhY19leHQpIDI+Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3Jl
cCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKICBybSAt
ZiBjb25mdGVzdC5lcjEKICBjYXQgY29uZnRlc3QuZXJyID4mNQogIGVjaG8g
IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhp
dCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsOyB0aGVuCiAgaWYgdGVzdCAt
cyBjb25mdGVzdC5lcnI7IHRoZW4KICAgIGFjX2NwcF9lcnI9JGFjX2NfcHJl
cHJvY193YXJuX2ZsYWcKICBlbHNlCiAgICBhY19jcHBfZXJyPQogIGZpCmVs
c2UKICBhY19jcHBfZXJyPXllcwpmaQppZiB0ZXN0IC16ICIkYWNfY3BwX2Vy
ciI7IHRoZW4KICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKZWxzZQogIGVjaG8g
IiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wg
LycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCiAgYWNfaGVhZGVyX3ByZXByb2M9
bm8KZmkKcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKZWNo
byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2hlYWRlcl9wcmVwcm9j
IiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9wcmVwcm9jIiA+JjYK
CiMgU28/ICBXaGF0IGFib3V0IHRoaXMgaGVhZGVyPwpjYXNlICRhY19oZWFk
ZXJfY29tcGlsZXI6JGFjX2hlYWRlcl9wcmVwcm9jIGluCiAgeWVzOm5vICkK
ICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFk
ZXI6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhl
IHByZXByb2Nlc3NvciEiID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRh
Y19oZWFkZXI6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQg
YnkgdGhlIHByZXByb2Nlc3NvciEiID4mMjt9CiAgICB7IGVjaG8gIiRhc19t
ZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdp
dGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiY1CmVjaG8gIiRhc19t
ZTogV0FSTklORzogJGFjX2hlYWRlcjogcHJvY2VlZGluZyB3aXRoIHRoZSBw
cmVwcm9jZXNzb3IncyByZXN1bHQiID4mMjt9CiAgICAoCiAgICAgIGNhdCA8
PFxfQVNCT1gKIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICMjCiMjIFJlcG9ydCB0aGlzIHRvIGJ1Zy1hdXRvY29uZkBnbnUub3Jn
LiAjIwojIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
IyMKX0FTQk9YCiAgICApIHwKICAgICAgc2VkICJzL14vJGFzX21lOiBXQVJO
SU5HOiAgICAgLyIgPiYyCiAgICA7OwogIG5vOnllcyApCiAgICB7IGVjaG8g
IiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcmVzZW50
IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiID4mNQplY2hvICIkYXNfbWU6IFdB
Uk5JTkc6ICRhY19oZWFkZXI6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21w
aWxlZCIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5J
Tkc6ICRhY19oZWFkZXI6IGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0
ZSBoZWFkZXJzPyIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hl
YWRlcjogY2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/
IiA+JjI7fQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzog
JGFjX2hlYWRlcjogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3In
cyByZXN1bHQiID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFk
ZXI6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0
IiA+JjI7fQogICAgKAogICAgICBjYXQgPDxcX0FTQk9YCiMjIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwojIyBSZXBvcnQgdGhp
cyB0byBidWctYXV0b2NvbmZAZ251Lm9yZy4gIyMKIyMgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCl9BU0JPWAogICAgKSB8CiAg
ICAgIHNlZCAicy9eLyRhc19tZTogV0FSTklORzogICAgIC8iID4mMgogICAg
OzsKZXNhYwplY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRh
Y19oZWFkZXIiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNf
aGVhZGVyLi4uICRFQ0hPX0MiID4mNgppZiBldmFsICJ0ZXN0IFwiXCR7JGFz
X2FjX0hlYWRlcitzZXR9XCIgPSBzZXQiOyB0aGVuCiAgZWNobyAkRUNIT19O
ICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZWxzZQogIGV2YWwgIiRhc19hY19I
ZWFkZXI9JGFjX2hlYWRlcl9wcmVwcm9jIgpmaQplY2hvICIkYXNfbWU6JExJ
TkVOTzogcmVzdWx0OiBgZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30n
YCIgPiY1CmVjaG8gIiR7RUNIT19UfWBldmFsIGVjaG8gJyR7JyRhc19hY19I
ZWFkZXInfSdgIiA+JjYKCmZpCmlmIHRlc3QgYGV2YWwgZWNobyAnJHsnJGFz
X2FjX0hlYWRlcid9J2AgPSB5ZXM7IHRoZW4KICBjYXQgPj5jb25mZGVmcy5o
IDw8X0FDRU9GCiNkZWZpbmUgYGVjaG8gIkhBVkVfJGFjX2hlYWRlciIgfCAk
YXNfdHJfY3BwYCAxCl9BQ0VPRgoKZmkKCmRvbmUKCgplY2hvICIkYXNfbWU6
JExJTkVOTzogY2hlY2tpbmcgZm9yIEFUTF9idWlsZGluZm8gaW4gLWxhdGxh
cyIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIEFUTF9idWlsZGlu
Zm8gaW4gLWxhdGxhcy4uLiAkRUNIT19DIiA+JjYKaWYgdGVzdCAiJHthY19j
dl9saWJfYXRsYXNfQVRMX2J1aWxkaW5mbytzZXR9IiA9IHNldDsgdGhlbgog
IGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBh
Y19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCkxJQlM9Ii1sYXRsYXMgICRM
SUJTIgpjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKI2xpbmUgJExJ
TkVOTyAiY29uZmlndXJlIgovKiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNh
dCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVz
dC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5oLiAgKi8KCi8q
IE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9p
ZCBhbiBlcnJvci4gICovCiNpZmRlZiBfX2NwbHVzcGx1cwpleHRlcm4gIkMi
CiNlbmRpZgovKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRj
aCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCiAgIGJ1aWx0aW4gYW5kIHRo
ZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4g
ICovCmNoYXIgQVRMX2J1aWxkaW5mbyAoKTsKaW50Cm1haW4gKCkKewpBVExf
YnVpbGRpbmZvICgpOwogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKcm0gLWYg
Y29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKaWYgeyAo
ZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1
CiAgKGV2YWwgJGFjX2xpbmspIDI+JjUKICBhY19zdGF0dXM9JD8KICBlY2hv
ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4
aXQgJGFjX3N0YXR1cyk7IH0gJiYKICAgICAgICAgeyBhY190cnk9J3Rlc3Qg
LXMgY29uZnRlc3QkYWNfZXhlZXh0JwogIHsgKGV2YWwgZWNobyAiJGFzX21l
OiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CiAgKGV2YWwgJGFjX3RyeSkg
Mj4mNQogIGFjX3N0YXR1cz0kPwogIGVjaG8gIiRhc19tZTokTElORU5POiBc
JD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsg
fTsgdGhlbgogIGFjX2N2X2xpYl9hdGxhc19BVExfYnVpbGRpbmZvPXllcwpl
bHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUK
c2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKYWNfY3ZfbGli
X2F0bGFzX0FUTF9idWlsZGluZm89bm8KZmkKcm0gLWYgY29uZnRlc3QuJGFj
X29iamV4dCBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dApM
SUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCmZpCmVjaG8gIiRhc19tZTok
TElORU5POiByZXN1bHQ6ICRhY19jdl9saWJfYXRsYXNfQVRMX2J1aWxkaW5m
byIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY19jdl9saWJfYXRsYXNfQVRMX2J1
aWxkaW5mbyIgPiY2CmlmIHRlc3QgJGFjX2N2X2xpYl9hdGxhc19BVExfYnVp
bGRpbmZvID0geWVzOyB0aGVuCiAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VP
RgojZGVmaW5lIEhBVkVfTElCQVRMQVMgMQpfQUNFT0YKCiAgTElCUz0iLWxh
dGxhcyAkTElCUyIKCmVsc2UKICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86
IGVycm9yOiBjb3VsZCBub3QgZmluZCB0aGUgYXRsYXMgbGlicmFyeQpTZWUg
XGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1CmVjaG8gIiRh
c19tZTogZXJyb3I6IGNvdWxkIG5vdCBmaW5kIHRoZSBhdGxhcyBsaWJyYXJ5
ClNlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQog
ICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KZmkKCiAgICBlY2hvICIkYXNf
bWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGNibGFzX3NnZW1tIGluIC1sY2Js
YXMiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBjYmxhc19zZ2Vt
bSBpbiAtbGNibGFzLi4uICRFQ0hPX0MiID4mNgppZiB0ZXN0ICIke2FjX2N2
X2xpYl9jYmxhc19jYmxhc19zZ2VtbStzZXR9IiA9IHNldDsgdGhlbgogIGVj
aG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBhY19j
aGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCkxJQlM9Ii1sY2JsYXMgICRMSUJT
IgpjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKI2xpbmUgJExJTkVO
TyAiY29uZmlndXJlIgovKiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBj
b25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVzdC4k
YWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5oLiAgKi8KCi8qIE92
ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBh
biBlcnJvci4gICovCiNpZmRlZiBfX2NwbHVzcGx1cwpleHRlcm4gIkMiCiNl
bmRpZgovKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0
aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCiAgIGJ1aWx0aW4gYW5kIHRoZW4g
aXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICov
CmNoYXIgY2JsYXNfc2dlbW0gKCk7CmludAptYWluICgpCnsKY2JsYXNfc2dl
bW0gKCk7CiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgpybSAtZiBjb25mdGVz
dC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAppZiB7IChldmFsIGVj
aG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKICAoZXZh
bCAkYWNfbGluaykgMj4mNQogIGFjX3N0YXR1cz0kPwogIGVjaG8gIiRhc19t
ZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNf
c3RhdHVzKTsgfSAmJgogICAgICAgICB7IGFjX3RyeT0ndGVzdCAtcyBjb25m
dGVzdCRhY19leGVleHQnCiAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVO
TzogXCIkYWNfdHJ5XCIiKSA+JjUKICAoZXZhbCAkYWNfdHJ5KSAyPiY1CiAg
YWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRh
Y19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVu
CiAgYWNfY3ZfbGliX2NibGFzX2NibGFzX3NnZW1tPXllcwplbHNlCiAgZWNo
byAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14v
fCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKYWNfY3ZfbGliX2NibGFzX2Ni
bGFzX3NnZW1tPW5vCmZpCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29u
ZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKTElCUz0kYWNfY2hl
Y2tfbGliX3NhdmVfTElCUwpmaQplY2hvICIkYXNfbWU6JExJTkVOTzogcmVz
dWx0OiAkYWNfY3ZfbGliX2NibGFzX2NibGFzX3NnZW1tIiA+JjUKZWNobyAi
JHtFQ0hPX1R9JGFjX2N2X2xpYl9jYmxhc19jYmxhc19zZ2VtbSIgPiY2Cmlm
IHRlc3QgJGFjX2N2X2xpYl9jYmxhc19jYmxhc19zZ2VtbSA9IHllczsgdGhl
bgoKY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKI2RlZmluZSBIQVZFX0xJ
QkNCTEFTCl9BQ0VPRgoKCmNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCiNk
ZWZpbmUgSEFWRV9MSUJCTEFTCl9BQ0VPRgoKCQkgICBMSUJTPSItbGNibGFz
ICRMSUJTIgoJCSAgIGRlZmF1bHRfbWxwM19ibGFzPXRydWUKZWxzZQogIHsg
eyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvdWxkIG5vdCBmaW5k
IHRoZSBjYmxhcyBsaWJyYXJ5ClNlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3Jl
IGRldGFpbHMuIiA+JjUKZWNobyAiJGFzX21lOiBlcnJvcjogY291bGQgbm90
IGZpbmQgdGhlIGNibGFzIGxpYnJhcnkKU2VlIFxgY29uZmlnLmxvZycgZm9y
IG1vcmUgZGV0YWlscy4iID4mMjt9CiAgIHsgKGV4aXQgMSk7IGV4aXQgMTsg
fTsgfQpmaQoKICAgIDs7CiAgcHRhdGxhcykKCmZvciBhY19oZWFkZXIgaW4g
Y2JsYXMuaApkbwphc19hY19IZWFkZXI9YGVjaG8gImFjX2N2X2hlYWRlcl8k
YWNfaGVhZGVyIiB8ICRhc190cl9zaGAKaWYgZXZhbCAidGVzdCBcIlwkeyRh
c19hY19IZWFkZXIrc2V0fVwiID0gc2V0IjsgdGhlbgogIGVjaG8gIiRhc19t
ZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX2hlYWRlciIgPiY1CmVjaG8g
JEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY19oZWFkZXIuLi4gJEVDSE9fQyIg
PiY2CmlmIGV2YWwgInRlc3QgXCJcJHskYXNfYWNfSGVhZGVyK3NldH1cIiA9
IHNldCI7IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0Mi
ID4mNgpmaQplY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBgZXZhbCBl
Y2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCIgPiY1CmVjaG8gIiR7RUNIT19U
fWBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgIiA+JjYKZWxzZQog
ICMgSXMgdGhlIGhlYWRlciBjb21waWxhYmxlPwplY2hvICIkYXNfbWU6JExJ
TkVOTzogY2hlY2tpbmcgJGFjX2hlYWRlciB1c2FiaWxpdHkiID4mNQplY2hv
ICRFQ0hPX04gImNoZWNraW5nICRhY19oZWFkZXIgdXNhYmlsaXR5Li4uICRF
Q0hPX0MiID4mNgpjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKI2xp
bmUgJExJTkVOTyAiY29uZmlndXJlIgovKiBjb25mZGVmcy5oLiAgKi8KX0FD
RU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5j
b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5oLiAg
Ki8KJGFjX2luY2x1ZGVzX2RlZmF1bHQKI2luY2x1ZGUgPCRhY19oZWFkZXI+
Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CmlmIHsgKGV2YWwg
ZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQog
IChldmFsICRhY19jb21waWxlKSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNo
byAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChl
eGl0ICRhY19zdGF0dXMpOyB9ICYmCiAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0
IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCiAgeyAoZXZhbCBlY2hvICIkYXNf
bWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKICAoZXZhbCAkYWNfdHJ5
KSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRMSU5FTk86
IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9
OyB9OyB0aGVuCiAgYWNfaGVhZGVyX2NvbXBpbGVyPXllcwplbHNlCiAgZWNo
byAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14v
fCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKYWNfaGVhZGVyX2NvbXBpbGVy
PW5vCmZpCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFj
X2V4dAplY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVy
X2NvbXBpbGVyIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9jb21w
aWxlciIgPiY2CgojIElzIHRoZSBoZWFkZXIgcHJlc2VudD8KZWNobyAiJGFz
X21lOiRMSU5FTk86IGNoZWNraW5nICRhY19oZWFkZXIgcHJlc2VuY2UiID4m
NQplY2hvICRFQ0hPX04gImNoZWNraW5nICRhY19oZWFkZXIgcHJlc2VuY2Uu
Li4gJEVDSE9fQyIgPiY2CmNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP
RgojbGluZSAkTElORU5PICJjb25maWd1cmUiCi8qIGNvbmZkZWZzLmguICAq
LwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNh
dCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZz
LmguICAqLwojaW5jbHVkZSA8JGFjX2hlYWRlcj4KX0FDRU9GCmlmIHsgKGV2
YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NwcCBjb25mdGVzdC4k
YWNfZXh0XCIiKSA+JjUKICAoZXZhbCAkYWNfY3BwIGNvbmZ0ZXN0LiRhY19l
eHQpIDI+Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAn
XiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25m
dGVzdC5lcjEKICBjYXQgY29uZnRlc3QuZXJyID4mNQogIGVjaG8gIiRhc19t
ZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNf
c3RhdHVzKTsgfSA+L2Rldi9udWxsOyB0aGVuCiAgaWYgdGVzdCAtcyBjb25m
dGVzdC5lcnI7IHRoZW4KICAgIGFjX2NwcF9lcnI9JGFjX2NfcHJlcHJvY193
YXJuX2ZsYWcKICBlbHNlCiAgICBhY19jcHBfZXJyPQogIGZpCmVsc2UKICBh
Y19jcHBfZXJyPXllcwpmaQppZiB0ZXN0IC16ICIkYWNfY3BwX2VyciI7IHRo
ZW4KICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKZWxzZQogIGVjaG8gIiRhc19t
ZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29u
ZnRlc3QuJGFjX2V4dCA+JjUKCiAgYWNfaGVhZGVyX3ByZXByb2M9bm8KZmkK
cm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKZWNobyAiJGFz
X21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2hlYWRlcl9wcmVwcm9jIiA+JjUK
ZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9wcmVwcm9jIiA+JjYKCiMgU28/
ICBXaGF0IGFib3V0IHRoaXMgaGVhZGVyPwpjYXNlICRhY19oZWFkZXJfY29t
cGlsZXI6JGFjX2hlYWRlcl9wcmVwcm9jIGluCiAgeWVzOm5vICkKICAgIHsg
ZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IGFj
Y2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXBy
b2Nlc3NvciEiID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFk
ZXI6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhl
IHByZXByb2Nlc3NvciEiID4mMjt9CiAgICB7IGVjaG8gIiRhc19tZTokTElO
RU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhl
IHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiY1CmVjaG8gIiRhc19tZTogV0FS
TklORzogJGFjX2hlYWRlcjogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9j
ZXNzb3IncyByZXN1bHQiID4mMjt9CiAgICAoCiAgICAgIGNhdCA8PFxfQVNC
T1gKIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMj
CiMjIFJlcG9ydCB0aGlzIHRvIGJ1Zy1hdXRvY29uZkBnbnUub3JnLiAjIwoj
IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKX0FT
Qk9YCiAgICApIHwKICAgICAgc2VkICJzL14vJGFzX21lOiBXQVJOSU5HOiAg
ICAgLyIgPiYyCiAgICA7OwogIG5vOnllcyApCiAgICB7IGVjaG8gIiRhc19t
ZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcmVzZW50IGJ1dCBj
YW5ub3QgYmUgY29tcGlsZWQiID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6
ICRhY19oZWFkZXI6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIg
PiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRh
Y19oZWFkZXI6IGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFk
ZXJzPyIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjog
Y2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/IiA+JjI7
fQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hl
YWRlcjogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1
bHQiID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IHBy
b2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjI7
fQogICAgKAogICAgICBjYXQgPDxcX0FTQk9YCiMjIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwojIyBSZXBvcnQgdGhpcyB0byBi
dWctYXV0b2NvbmZAZ251Lm9yZy4gIyMKIyMgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tICMjCl9BU0JPWAogICAgKSB8CiAgICAgIHNl
ZCAicy9eLyRhc19tZTogV0FSTklORzogICAgIC8iID4mMgogICAgOzsKZXNh
YwplY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19oZWFk
ZXIiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfaGVhZGVy
Li4uICRFQ0hPX0MiID4mNgppZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2FjX0hl
YWRlcitzZXR9XCIgPSBzZXQiOyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2Fj
aGVkKSAkRUNIT19DIiA+JjYKZWxzZQogIGV2YWwgIiRhc19hY19IZWFkZXI9
JGFjX2hlYWRlcl9wcmVwcm9jIgpmaQplY2hvICIkYXNfbWU6JExJTkVOTzog
cmVzdWx0OiBgZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCIgPiY1
CmVjaG8gIiR7RUNIT19UfWBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXIn
fSdgIiA+JjYKCmZpCmlmIHRlc3QgYGV2YWwgZWNobyAnJHsnJGFzX2FjX0hl
YWRlcid9J2AgPSB5ZXM7IHRoZW4KICBjYXQgPj5jb25mZGVmcy5oIDw8X0FD
RU9GCiNkZWZpbmUgYGVjaG8gIkhBVkVfJGFjX2hlYWRlciIgfCAkYXNfdHJf
Y3BwYCAxCl9BQ0VPRgoKZmkKCmRvbmUKCgplY2hvICIkYXNfbWU6JExJTkVO
TzogY2hlY2tpbmcgZm9yIEFUTF9idWlsZGluZm8gaW4gLWxhdGxhcyIgPiY1
CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIEFUTF9idWlsZGluZm8gaW4g
LWxhdGxhcy4uLiAkRUNIT19DIiA+JjYKaWYgdGVzdCAiJHthY19jdl9saWJf
YXRsYXNfQVRMX2J1aWxkaW5mbytzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8g
JEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBhY19jaGVj
a19saWJfc2F2ZV9MSUJTPSRMSUJTCkxJQlM9Ii1sYXRsYXMgICRMSUJTIgpj
YXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKI2xpbmUgJExJTkVOTyAi
Y29uZmlndXJlIgovKiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBjb25m
ZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNf
ZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5oLiAgKi8KCi8qIE92ZXJy
aWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBl
cnJvci4gICovCiNpZmRlZiBfX2NwbHVzcGx1cwpleHRlcm4gIkMiCiNlbmRp
ZgovKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUg
cmV0dXJuIHR5cGUgb2YgYSBnY2MyCiAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRz
IGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCmNo
YXIgQVRMX2J1aWxkaW5mbyAoKTsKaW50Cm1haW4gKCkKewpBVExfYnVpbGRp
bmZvICgpOwogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKcm0gLWYgY29uZnRl
c3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKaWYgeyAoZXZhbCBl
Y2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1CiAgKGV2
YWwgJGFjX2xpbmspIDI+JjUKICBhY19zdGF0dXM9JD8KICBlY2hvICIkYXNf
bWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFj
X3N0YXR1cyk7IH0gJiYKICAgICAgICAgeyBhY190cnk9J3Rlc3QgLXMgY29u
ZnRlc3QkYWNfZXhlZXh0JwogIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5F
Tk86IFwiJGFjX3RyeVwiIikgPiY1CiAgKGV2YWwgJGFjX3RyeSkgMj4mNQog
IGFjX3N0YXR1cz0kPwogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAk
YWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhl
bgogIGFjX2N2X2xpYl9hdGxhc19BVExfYnVpbGRpbmZvPXllcwplbHNlCiAg
ZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdz
L14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKYWNfY3ZfbGliX2F0bGFz
X0FUTF9idWlsZGluZm89bm8KZmkKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4
dCBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dApMSUJTPSRh
Y19jaGVja19saWJfc2F2ZV9MSUJTCmZpCmVjaG8gIiRhc19tZTokTElORU5P
OiByZXN1bHQ6ICRhY19jdl9saWJfYXRsYXNfQVRMX2J1aWxkaW5mbyIgPiY1
CmVjaG8gIiR7RUNIT19UfSRhY19jdl9saWJfYXRsYXNfQVRMX2J1aWxkaW5m
byIgPiY2CmlmIHRlc3QgJGFjX2N2X2xpYl9hdGxhc19BVExfYnVpbGRpbmZv
ID0geWVzOyB0aGVuCiAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgojZGVm
aW5lIEhBVkVfTElCQVRMQVMgMQpfQUNFT0YKCiAgTElCUz0iLWxhdGxhcyAk
TElCUyIKCmVsc2UKICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9y
OiBjb3VsZCBub3QgZmluZCB0aGUgYXRsYXMgbGlicmFyeQpTZWUgXGBjb25m
aWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1CmVjaG8gIiRhc19tZTog
ZXJyb3I6IGNvdWxkIG5vdCBmaW5kIHRoZSBhdGxhcyBsaWJyYXJ5ClNlZSBc
YGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQogICB7IChl
eGl0IDEpOyBleGl0IDE7IH07IH0KZmkKCgplY2hvICIkYXNfbWU6JExJTkVO
TzogY2hlY2tpbmcgZm9yIHB0aHJlYWRfY3JlYXRlIGluIC1scHRocmVhZCIg
PiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHB0aHJlYWRfY3JlYXRl
IGluIC1scHRocmVhZC4uLiAkRUNIT19DIiA+JjYKaWYgdGVzdCAiJHthY19j
dl9saWJfcHRocmVhZF9wdGhyZWFkX2NyZWF0ZStzZXR9IiA9IHNldDsgdGhl
bgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UK
ICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCkxJQlM9Ii1scHRocmVh
ZCAgJExJQlMiCmNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgojbGlu
ZSAkTElORU5PICJjb25maWd1cmUiCi8qIGNvbmZkZWZzLmguICAqLwpfQUNF
T0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNv
bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAq
LwoKLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJvdG90eXBlIHRv
IGF2b2lkIGFuIGVycm9yLiAgKi8KI2lmZGVmIF9fY3BsdXNwbHVzCmV4dGVy
biAiQyIKI2VuZGlmCi8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0
IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKICAgYnVpbHRpbiBh
bmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFw
cGx5LiAgKi8KY2hhciBwdGhyZWFkX2NyZWF0ZSAoKTsKaW50Cm1haW4gKCkK
ewpwdGhyZWFkX2NyZWF0ZSAoKTsKICA7CiAgcmV0dXJuIDA7Cn0KX0FDRU9G
CnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0
CmlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtc
IiIpID4mNQogIChldmFsICRhY19saW5rKSAyPiY1CiAgYWNfc3RhdHVzPSQ/
CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4m
NQogIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCiAgICAgICAgIHsgYWNfdHJ5
PSd0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCcKICB7IChldmFsIGVjaG8g
IiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQogIChldmFsICRh
Y190cnkpIDI+JjUKICBhY19zdGF0dXM9JD8KICBlY2hvICIkYXNfbWU6JExJ
TkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1
cyk7IH07IH07IHRoZW4KICBhY19jdl9saWJfcHRocmVhZF9wdGhyZWFkX2Ny
ZWF0ZT15ZXMKZWxzZQogIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0g
d2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUK
CmFjX2N2X2xpYl9wdGhyZWFkX3B0aHJlYWRfY3JlYXRlPW5vCmZpCnJtIC1m
IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0
ZXN0LiRhY19leHQKTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwpmaQpl
Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfbGliX3B0aHJl
YWRfcHRocmVhZF9jcmVhdGUiID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3Zf
bGliX3B0aHJlYWRfcHRocmVhZF9jcmVhdGUiID4mNgppZiB0ZXN0ICRhY19j
dl9saWJfcHRocmVhZF9wdGhyZWFkX2NyZWF0ZSA9IHllczsgdGhlbgogIGNh
dCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKI2RlZmluZSBIQVZFX0xJQlBUSFJF
QUQgMQpfQUNFT0YKCiAgTElCUz0iLWxwdGhyZWFkICRMSUJTIgoKZWxzZQog
IHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvdWxkIG5vdCBm
aW5kIHRoZSBwdGhyZWFkIGxpYnJhcnkKU2VlIFxgY29uZmlnLmxvZycgZm9y
IG1vcmUgZGV0YWlscy4iID4mNQplY2hvICIkYXNfbWU6IGVycm9yOiBjb3Vs
ZCBub3QgZmluZCB0aGUgcHRocmVhZCBsaWJyYXJ5ClNlZSBcYGNvbmZpZy5s
b2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQogICB7IChleGl0IDEpOyBl
eGl0IDE7IH07IH0KZmkKCiAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hl
Y2tpbmcgZm9yIGNibGFzX3NnZW1tIGluIC1scHRjYmxhcyIgPiY1CmVjaG8g
JEVDSE9fTiAiY2hlY2tpbmcgZm9yIGNibGFzX3NnZW1tIGluIC1scHRjYmxh
cy4uLiAkRUNIT19DIiA+JjYKaWYgdGVzdCAiJHthY19jdl9saWJfcHRjYmxh
c19jYmxhc19zZ2VtbStzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9f
TiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBhY19jaGVja19saWJf
c2F2ZV9MSUJTPSRMSUJTCkxJQlM9Ii1scHRjYmxhcyAgJExJQlMiCmNhdCA+
Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgojbGluZSAkTElORU5PICJjb25m
aWd1cmUiCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZz
LmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQg
PDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwoKLyogT3ZlcnJpZGUg
YW55IGdjYzIgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9y
LiAgKi8KI2lmZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAiQyIKI2VuZGlmCi8q
IFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1
cm4gdHlwZSBvZiBhIGdjYzIKICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJn
dW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KY2hhciBj
Ymxhc19zZ2VtbSAoKTsKaW50Cm1haW4gKCkKewpjYmxhc19zZ2VtbSAoKTsK
ICA7CiAgcmV0dXJuIDA7Cn0KX0FDRU9GCnJtIC1mIGNvbmZ0ZXN0LiRhY19v
YmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CmlmIHsgKGV2YWwgZWNobyAiJGFz
X21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQogIChldmFsICRhY19s
aW5rKSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRMSU5F
Tk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMp
OyB9ICYmCiAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0JGFj
X2V4ZWV4dCcKICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRh
Y190cnlcIiIpID4mNQogIChldmFsICRhY190cnkpIDI+JjUKICBhY19zdGF0
dXM9JD8KICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1
cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KICBhY19j
dl9saWJfcHRjYmxhc19jYmxhc19zZ2VtbT15ZXMKZWxzZQogIGVjaG8gIiRh
c19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycg
Y29uZnRlc3QuJGFjX2V4dCA+JjUKCmFjX2N2X2xpYl9wdGNibGFzX2NibGFz
X3NnZW1tPW5vCmZpCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl
c3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKTElCUz0kYWNfY2hlY2tf
bGliX3NhdmVfTElCUwpmaQplY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0
OiAkYWNfY3ZfbGliX3B0Y2JsYXNfY2JsYXNfc2dlbW0iID4mNQplY2hvICIk
e0VDSE9fVH0kYWNfY3ZfbGliX3B0Y2JsYXNfY2JsYXNfc2dlbW0iID4mNgpp
ZiB0ZXN0ICRhY19jdl9saWJfcHRjYmxhc19jYmxhc19zZ2VtbSA9IHllczsg
dGhlbgoKY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKI2RlZmluZSBIQVZF
X0xJQkNCTEFTCl9BQ0VPRgoKCmNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9G
CiNkZWZpbmUgSEFWRV9MSUJCTEFTCl9BQ0VPRgoKCQkgIExJQlM9Ii1scHRj
YmxhcyAkTElCUyIKCQkgIGRlZmF1bHRfbWxwM19ibGFzPXRydWUKZWxzZQog
IHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvdWxkIG5vdCBm
aW5kIHRoZSBwdGNibGFzIGxpYnJhcnkKU2VlIFxgY29uZmlnLmxvZycgZm9y
IG1vcmUgZGV0YWlscy4iID4mNQplY2hvICIkYXNfbWU6IGVycm9yOiBjb3Vs
ZCBub3QgZmluZCB0aGUgcHRjYmxhcyBsaWJyYXJ5ClNlZSBcYGNvbmZpZy5s
b2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQogICB7IChleGl0IDEpOyBl
eGl0IDE7IH07IH0KZmkKCiAgICA7OwogIGVzc2wpCgpmb3IgYWNfaGVhZGVy
IGluIGVzc2wuaApkbwphc19hY19IZWFkZXI9YGVjaG8gImFjX2N2X2hlYWRl
cl8kYWNfaGVhZGVyIiB8ICRhc190cl9zaGAKaWYgZXZhbCAidGVzdCBcIlwk
eyRhc19hY19IZWFkZXIrc2V0fVwiID0gc2V0IjsgdGhlbgogIGVjaG8gIiRh
c19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX2hlYWRlciIgPiY1CmVj
aG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY19oZWFkZXIuLi4gJEVDSE9f
QyIgPiY2CmlmIGV2YWwgInRlc3QgXCJcJHskYXNfYWNfSGVhZGVyK3NldH1c
IiA9IHNldCI7IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hP
X0MiID4mNgpmaQplY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBgZXZh
bCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCIgPiY1CmVjaG8gIiR7RUNI
T19UfWBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgIiA+JjYKZWxz
ZQogICMgSXMgdGhlIGhlYWRlciBjb21waWxhYmxlPwplY2hvICIkYXNfbWU6
JExJTkVOTzogY2hlY2tpbmcgJGFjX2hlYWRlciB1c2FiaWxpdHkiID4mNQpl
Y2hvICRFQ0hPX04gImNoZWNraW5nICRhY19oZWFkZXIgdXNhYmlsaXR5Li4u
ICRFQ0hPX0MiID4mNgpjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK
I2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgovKiBjb25mZGVmcy5oLiAgKi8K
X0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQg
Pj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5o
LiAgKi8KJGFjX2luY2x1ZGVzX2RlZmF1bHQKI2luY2x1ZGUgPCRhY19oZWFk
ZXI+Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CmlmIHsgKGV2
YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4m
NQogIChldmFsICRhY19jb21waWxlKSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAg
ZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQog
IChleGl0ICRhY19zdGF0dXMpOyB9ICYmCiAgICAgICAgIHsgYWNfdHJ5PSd0
ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCiAgeyAoZXZhbCBlY2hvICIk
YXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKICAoZXZhbCAkYWNf
dHJ5KSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRMSU5F
Tk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMp
OyB9OyB9OyB0aGVuCiAgYWNfaGVhZGVyX2NvbXBpbGVyPXllcwplbHNlCiAg
ZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdz
L14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKYWNfaGVhZGVyX2NvbXBp
bGVyPW5vCmZpCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3Qu
JGFjX2V4dAplY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVh
ZGVyX2NvbXBpbGVyIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9j
b21waWxlciIgPiY2CgojIElzIHRoZSBoZWFkZXIgcHJlc2VudD8KZWNobyAi
JGFzX21lOiRMSU5FTk86IGNoZWNraW5nICRhY19oZWFkZXIgcHJlc2VuY2Ui
ID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nICRhY19oZWFkZXIgcHJlc2Vu
Y2UuLi4gJEVDSE9fQyIgPiY2CmNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9B
Q0VPRgojbGluZSAkTElORU5PICJjb25maWd1cmUiCi8qIGNvbmZkZWZzLmgu
ICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0
CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZk
ZWZzLmguICAqLwojaW5jbHVkZSA8JGFjX2hlYWRlcj4KX0FDRU9GCmlmIHsg
KGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NwcCBjb25mdGVz
dC4kYWNfZXh0XCIiKSA+JjUKICAoZXZhbCAkYWNfY3BwIGNvbmZ0ZXN0LiRh
Y19leHQpIDI+Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAt
diAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKICBybSAtZiBj
b25mdGVzdC5lcjEKICBjYXQgY29uZnRlc3QuZXJyID4mNQogIGVjaG8gIiRh
c19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAk
YWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsOyB0aGVuCiAgaWYgdGVzdCAtcyBj
b25mdGVzdC5lcnI7IHRoZW4KICAgIGFjX2NwcF9lcnI9JGFjX2NfcHJlcHJv
Y193YXJuX2ZsYWcKICBlbHNlCiAgICBhY19jcHBfZXJyPQogIGZpCmVsc2UK
ICBhY19jcHBfZXJyPXllcwpmaQppZiB0ZXN0IC16ICIkYWNfY3BwX2VyciI7
IHRoZW4KICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKZWxzZQogIGVjaG8gIiRh
c19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycg
Y29uZnRlc3QuJGFjX2V4dCA+JjUKCiAgYWNfaGVhZGVyX3ByZXByb2M9bm8K
ZmkKcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKZWNobyAi
JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2hlYWRlcl9wcmVwcm9jIiA+
JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9wcmVwcm9jIiA+JjYKCiMg
U28/ICBXaGF0IGFib3V0IHRoaXMgaGVhZGVyPwpjYXNlICRhY19oZWFkZXJf
Y29tcGlsZXI6JGFjX2hlYWRlcl9wcmVwcm9jIGluCiAgeWVzOm5vICkKICAg
IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6
IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHBy
ZXByb2Nlc3NvciEiID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19o
ZWFkZXI6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkg
dGhlIHByZXByb2Nlc3NvciEiID4mMjt9CiAgICB7IGVjaG8gIiRhc19tZTok
TElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGgg
dGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiY1CmVjaG8gIiRhc19tZTog
V0FSTklORzogJGFjX2hlYWRlcjogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVw
cm9jZXNzb3IncyByZXN1bHQiID4mMjt9CiAgICAoCiAgICAgIGNhdCA8PFxf
QVNCT1gKIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
ICMjCiMjIFJlcG9ydCB0aGlzIHRvIGJ1Zy1hdXRvY29uZkBnbnUub3JnLiAj
IwojIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMK
X0FTQk9YCiAgICApIHwKICAgICAgc2VkICJzL14vJGFzX21lOiBXQVJOSU5H
OiAgICAgLyIgPiYyCiAgICA7OwogIG5vOnllcyApCiAgICB7IGVjaG8gIiRh
c19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcmVzZW50IGJ1
dCBjYW5ub3QgYmUgY29tcGlsZWQiID4mNQplY2hvICIkYXNfbWU6IFdBUk5J
Tkc6ICRhY19oZWFkZXI6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxl
ZCIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6
ICRhY19oZWFkZXI6IGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBo
ZWFkZXJzPyIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRl
cjogY2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/IiA+
JjI7fQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFj
X2hlYWRlcjogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyBy
ZXN1bHQiID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6
IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+
JjI7fQogICAgKAogICAgICBjYXQgPDxcX0FTQk9YCiMjIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwojIyBSZXBvcnQgdGhpcyB0
byBidWctYXV0b2NvbmZAZ251Lm9yZy4gIyMKIyMgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCl9BU0JPWAogICAgKSB8CiAgICAg
IHNlZCAicy9eLyRhc19tZTogV0FSTklORzogICAgIC8iID4mMgogICAgOzsK
ZXNhYwplY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19o
ZWFkZXIiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfaGVh
ZGVyLi4uICRFQ0hPX0MiID4mNgppZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2Fj
X0hlYWRlcitzZXR9XCIgPSBzZXQiOyB0aGVuCiAgZWNobyAkRUNIT19OICIo
Y2FjaGVkKSAkRUNIT19DIiA+JjYKZWxzZQogIGV2YWwgIiRhc19hY19IZWFk
ZXI9JGFjX2hlYWRlcl9wcmVwcm9jIgpmaQplY2hvICIkYXNfbWU6JExJTkVO
TzogcmVzdWx0OiBgZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCIg
PiY1CmVjaG8gIiR7RUNIT19UfWBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFk
ZXInfSdgIiA+JjYKCmZpCmlmIHRlc3QgYGV2YWwgZWNobyAnJHsnJGFzX2Fj
X0hlYWRlcid9J2AgPSB5ZXM7IHRoZW4KICBjYXQgPj5jb25mZGVmcy5oIDw8
X0FDRU9GCiNkZWZpbmUgYGVjaG8gIkhBVkVfJGFjX2hlYWRlciIgfCAkYXNf
dHJfY3BwYCAxCl9BQ0VPRgoKZWxzZQogIHsgeyBlY2hvICIkYXNfbWU6JExJ
TkVOTzogZXJyb3I6IGNvdWxkIG5vdCBmaW5kIGVzc2wuaApTZWUgXGBjb25m
aWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1CmVjaG8gIiRhc19tZTog
ZXJyb3I6IGNvdWxkIG5vdCBmaW5kIGVzc2wuaApTZWUgXGBjb25maWcubG9n
JyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KICAgeyAoZXhpdCAxKTsgZXhp
dCAxOyB9OyB9CmZpCgpkb25lCgogICAgTElCUz0iLWxlc3NsIC1seGxmOTBf
ciAtbHhsb21wX3NlciAtbHhsZm1hdGggJExJQlMiCiAgICBlY2hvICIkYXNf
bWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHNnZW1tIGluIC1sZXNzbCIgPiY1
CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHNnZW1tIGluIC1sZXNzbC4u
LiAkRUNIT19DIiA+JjYKaWYgdGVzdCAiJHthY19jdl9saWJfZXNzbF9zZ2Vt
bStzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkg
JEVDSE9fQyIgPiY2CmVsc2UKICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRM
SUJTCkxJQlM9Ii1sZXNzbCAgJExJQlMiCmNhdCA+Y29uZnRlc3QuJGFjX2V4
dCA8PF9BQ0VPRgojbGluZSAkTElORU5PICJjb25maWd1cmUiCi8qIGNvbmZk
ZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4k
YWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5k
IGNvbmZkZWZzLmguICAqLwoKLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJu
YWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8KI2lmZGVmIF9f
Y3BsdXNwbHVzCmV4dGVybiAiQyIKI2VuZGlmCi8qIFdlIHVzZSBjaGFyIGJl
Y2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdj
YzIKICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBl
IHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KY2hhciBzZ2VtbSAoKTsKaW50Cm1h
aW4gKCkKewpzZ2VtbSAoKTsKICA7CiAgcmV0dXJuIDA7Cn0KX0FDRU9GCnJt
IC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Cmlm
IHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIp
ID4mNQogIChldmFsICRhY19saW5rKSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAg
ZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQog
IChleGl0ICRhY19zdGF0dXMpOyB9ICYmCiAgICAgICAgIHsgYWNfdHJ5PSd0
ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCcKICB7IChldmFsIGVjaG8gIiRh
c19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQogIChldmFsICRhY190
cnkpIDI+JjUKICBhY19zdGF0dXM9JD8KICBlY2hvICIkYXNfbWU6JExJTkVO
TzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7
IH07IH07IHRoZW4KICBhY19jdl9saWJfZXNzbF9zZ2VtbT15ZXMKZWxzZQog
IGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAn
cy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCmFjX2N2X2xpYl9lc3Ns
X3NnZW1tPW5vCmZpCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl
c3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKTElCUz0kYWNfY2hlY2tf
bGliX3NhdmVfTElCUwpmaQplY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0
OiAkYWNfY3ZfbGliX2Vzc2xfc2dlbW0iID4mNQplY2hvICIke0VDSE9fVH0k
YWNfY3ZfbGliX2Vzc2xfc2dlbW0iID4mNgppZiB0ZXN0ICRhY19jdl9saWJf
ZXNzbF9zZ2VtbSA9IHllczsgdGhlbgoKY2F0ID4+Y29uZmRlZnMuaCA8PFxf
QUNFT0YKI2RlZmluZSBIQVZFX0xJQkJMQVMKX0FDRU9GCgoKY2F0ID4+Y29u
ZmRlZnMuaCA8PFxfQUNFT0YKI2RlZmluZSBIQVZFX0xJQkVTU0wKX0FDRU9G
CgoJCSAgZGVmYXVsdF9tbHAzX2JsYXM9dHJ1ZQplbHNlCiAgeyB7IGVjaG8g
IiRhc19tZTokTElORU5POiBlcnJvcjogY291bGQgbm90IGZpbmQgdGhlIGVz
c2wgbGlicmFyeQpTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxz
LiIgPiY1CmVjaG8gIiRhc19tZTogZXJyb3I6IGNvdWxkIG5vdCBmaW5kIHRo
ZSBlc3NsIGxpYnJhcnkKU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0
YWlscy4iID4mMjt9CiAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQpmaQoK
ICAgIDs7CiAgZXNzbHNtcCkKCmZvciBhY19oZWFkZXIgaW4gZXNzbC5oCmRv
CmFzX2FjX0hlYWRlcj1gZWNobyAiYWNfY3ZfaGVhZGVyXyRhY19oZWFkZXIi
IHwgJGFzX3RyX3NoYAppZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2FjX0hlYWRl
citzZXR9XCIgPSBzZXQiOyB0aGVuCiAgZWNobyAiJGFzX21lOiRMSU5FTk86
IGNoZWNraW5nIGZvciAkYWNfaGVhZGVyIiA+JjUKZWNobyAkRUNIT19OICJj
aGVja2luZyBmb3IgJGFjX2hlYWRlci4uLiAkRUNIT19DIiA+JjYKaWYgZXZh
bCAidGVzdCBcIlwkeyRhc19hY19IZWFkZXIrc2V0fVwiID0gc2V0IjsgdGhl
bgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmZpCmVj
aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IGBldmFsIGVjaG8gJyR7JyRh
c19hY19IZWFkZXInfSdgIiA+JjUKZWNobyAiJHtFQ0hPX1R9YGV2YWwgZWNo
byAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNgplbHNlCiAgIyBJcyB0aGUg
aGVhZGVyIGNvbXBpbGFibGU/CmVjaG8gIiRhc19tZTokTElORU5POiBjaGVj
a2luZyAkYWNfaGVhZGVyIHVzYWJpbGl0eSIgPiY1CmVjaG8gJEVDSE9fTiAi
Y2hlY2tpbmcgJGFjX2hlYWRlciB1c2FiaWxpdHkuLi4gJEVDSE9fQyIgPiY2
CmNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgojbGluZSAkTElORU5P
ICJjb25maWd1cmUiCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNv
bmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRh
Y19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwokYWNfaW5j
bHVkZXNfZGVmYXVsdAojaW5jbHVkZSA8JGFjX2hlYWRlcj4KX0FDRU9GCnJt
IC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKaWYgeyAoZXZhbCBlY2hvICIkYXNf
bWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CiAgKGV2YWwgJGFj
X2NvbXBpbGUpIDI+JjUKICBhY19zdGF0dXM9JD8KICBlY2hvICIkYXNfbWU6
JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0
YXR1cyk7IH0gJiYKICAgICAgICAgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRl
c3QuJGFjX29iamV4dCcKICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5P
OiBcIiRhY190cnlcIiIpID4mNQogIChldmFsICRhY190cnkpIDI+JjUKICBh
Y19zdGF0dXM9JD8KICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFj
X3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4K
ICBhY19oZWFkZXJfY29tcGlsZXI9eWVzCmVsc2UKICBlY2hvICIkYXNfbWU6
IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0
ZXN0LiRhY19leHQgPiY1CgphY19oZWFkZXJfY29tcGlsZXI9bm8KZmkKcm0g
LWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CmVjaG8g
IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19oZWFkZXJfY29tcGlsZXIi
ID4mNQplY2hvICIke0VDSE9fVH0kYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjYK
CiMgSXMgdGhlIGhlYWRlciBwcmVzZW50PwplY2hvICIkYXNfbWU6JExJTkVO
TzogY2hlY2tpbmcgJGFjX2hlYWRlciBwcmVzZW5jZSIgPiY1CmVjaG8gJEVD
SE9fTiAiY2hlY2tpbmcgJGFjX2hlYWRlciBwcmVzZW5jZS4uLiAkRUNIT19D
IiA+JjYKY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCiNsaW5lICRM
SU5FTk8gImNvbmZpZ3VyZSIKLyogY29uZmRlZnMuaC4gICovCl9BQ0VPRgpj
YXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRl
c3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCiNp
bmNsdWRlIDwkYWNfaGVhZGVyPgpfQUNFT0YKaWYgeyAoZXZhbCBlY2hvICIk
YXNfbWU6JExJTkVOTzogXCIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHRcIiIp
ID4mNQogIChldmFsICRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCkgMj5jb25m
dGVzdC5lcjEKICBhY19zdGF0dXM9JD8KICBncmVwIC12ICdeICorJyBjb25m
dGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgogIHJtIC1mIGNvbmZ0ZXN0LmVyMQog
IGNhdCBjb25mdGVzdC5lcnIgPiY1CiAgZWNobyAiJGFzX21lOiRMSU5FTk86
IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9
ID4vZGV2L251bGw7IHRoZW4KICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsg
dGhlbgogICAgYWNfY3BwX2Vycj0kYWNfY19wcmVwcm9jX3dhcm5fZmxhZwog
IGVsc2UKICAgIGFjX2NwcF9lcnI9CiAgZmkKZWxzZQogIGFjX2NwcF9lcnI9
eWVzCmZpCmlmIHRlc3QgLXogIiRhY19jcHBfZXJyIjsgdGhlbgogIGFjX2hl
YWRlcl9wcmVwcm9jPXllcwplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQg
cHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNf
ZXh0ID4mNQoKICBhY19oZWFkZXJfcHJlcHJvYz1ubwpmaQpybSAtZiBjb25m
dGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAplY2hvICIkYXNfbWU6JExJTkVO
TzogcmVzdWx0OiAkYWNfaGVhZGVyX3ByZXByb2MiID4mNQplY2hvICIke0VD
SE9fVH0kYWNfaGVhZGVyX3ByZXByb2MiID4mNgoKIyBTbz8gIFdoYXQgYWJv
dXQgdGhpcyBoZWFkZXI/CmNhc2UgJGFjX2hlYWRlcl9jb21waWxlcjokYWNf
aGVhZGVyX3ByZXByb2MgaW4KICB5ZXM6bm8gKQogICAgeyBlY2hvICIkYXNf
bWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogYWNjZXB0ZWQgYnkg
dGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vzc29yISIg
PiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogYWNjZXB0
ZWQgYnkgdGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vz
c29yISIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5J
Tkc6ICRhY19oZWFkZXI6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vz
c29yJ3MgcmVzdWx0IiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNf
aGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJl
c3VsdCIgPiYyO30KICAgICgKICAgICAgY2F0IDw8XF9BU0JPWAojIyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKIyMgUmVwb3J0
IHRoaXMgdG8gYnVnLWF1dG9jb25mQGdudS5vcmcuICMjCiMjIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwpfQVNCT1gKICAgICkg
fAogICAgICBzZWQgInMvXi8kYXNfbWU6IFdBUk5JTkc6ICAgICAvIiA+JjIK
ICAgIDs7CiAgbm86eWVzICkKICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86
IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBj
b21waWxlZCIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRl
cjogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjI7fQogICAg
eyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjog
Y2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/IiA+JjUK
ZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBjaGVjayBmb3Ig
bWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mMjt9CiAgICB7IGVj
aG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9j
ZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiY1CmVj
aG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogcHJvY2VlZGluZyB3
aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1bHQiID4mMjt9CiAgICAoCiAg
ICAgIGNhdCA8PFxfQVNCT1gKIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tICMjCiMjIFJlcG9ydCB0aGlzIHRvIGJ1Zy1hdXRvY29u
ZkBnbnUub3JnLiAjIwojIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gIyMKX0FTQk9YCiAgICApIHwKICAgICAgc2VkICJzL14vJGFz
X21lOiBXQVJOSU5HOiAgICAgLyIgPiYyCiAgICA7Owplc2FjCmVjaG8gIiRh
c19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX2hlYWRlciIgPiY1CmVj
aG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY19oZWFkZXIuLi4gJEVDSE9f
QyIgPiY2CmlmIGV2YWwgInRlc3QgXCJcJHskYXNfYWNfSGVhZGVyK3NldH1c
IiA9IHNldCI7IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hP
X0MiID4mNgplbHNlCiAgZXZhbCAiJGFzX2FjX0hlYWRlcj0kYWNfaGVhZGVy
X3ByZXByb2MiCmZpCmVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IGBl
dmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgIiA+JjUKZWNobyAiJHtF
Q0hPX1R9YGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNgoK
ZmkKaWYgdGVzdCBgZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCA9
IHllczsgdGhlbgogIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKI2RlZmlu
ZSBgZWNobyAiSEFWRV8kYWNfaGVhZGVyIiB8ICRhc190cl9jcHBgIDEKX0FD
RU9GCgplbHNlCiAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjog
Y291bGQgbm90IGZpbmQgZXNzbC5oClNlZSBcYGNvbmZpZy5sb2cnIGZvciBt
b3JlIGRldGFpbHMuIiA+JjUKZWNobyAiJGFzX21lOiBlcnJvcjogY291bGQg
bm90IGZpbmQgZXNzbC5oClNlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRl
dGFpbHMuIiA+JjI7fQogICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KZmkK
CmRvbmUKCiAgICBMSUJTPSItbGVzc2xzbXAgLWx4bGY5MF9yIC1seGxzbXAg
LWx4bGZtYXRoICRMSUJTIgogICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGNo
ZWNraW5nIGZvciBzZ2VtbSBpbiAtbGVzc2xzbXAiID4mNQplY2hvICRFQ0hP
X04gImNoZWNraW5nIGZvciBzZ2VtbSBpbiAtbGVzc2xzbXAuLi4gJEVDSE9f
QyIgPiY2CmlmIHRlc3QgIiR7YWNfY3ZfbGliX2Vzc2xzbXBfc2dlbW0rc2V0
fSIgPSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hP
X0MiID4mNgplbHNlCiAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUwpM
SUJTPSItbGVzc2xzbXAgICRMSUJTIgpjYXQgPmNvbmZ0ZXN0LiRhY19leHQg
PDxfQUNFT0YKI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgovKiBjb25mZGVm
cy5oLiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFj
X2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBj
b25mZGVmcy5oLiAgKi8KCi8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFs
IHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCiNpZmRlZiBfX2Nw
bHVzcGx1cwpleHRlcm4gIkMiCiNlbmRpZgovKiBXZSB1c2UgY2hhciBiZWNh
dXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2My
CiAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3
b3VsZCBzdGlsbCBhcHBseS4gICovCmNoYXIgc2dlbW0gKCk7CmludAptYWlu
ICgpCnsKc2dlbW0gKCk7CiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgpybSAt
ZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAppZiB7
IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+
JjUKICAoZXZhbCAkYWNfbGluaykgMj4mNQogIGFjX3N0YXR1cz0kPwogIGVj
aG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAo
ZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgogICAgICAgICB7IGFjX3RyeT0ndGVz
dCAtcyBjb25mdGVzdCRhY19leGVleHQnCiAgeyAoZXZhbCBlY2hvICIkYXNf
bWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKICAoZXZhbCAkYWNfdHJ5
KSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRMSU5FTk86
IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9
OyB9OyB0aGVuCiAgYWNfY3ZfbGliX2Vzc2xzbXBfc2dlbW09eWVzCmVsc2UK
ICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQg
J3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgphY19jdl9saWJfZXNz
bHNtcF9zZ2VtbT1ubwpmaQpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNv
bmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CkxJQlM9JGFjX2No
ZWNrX2xpYl9zYXZlX0xJQlMKZmkKZWNobyAiJGFzX21lOiRMSU5FTk86IHJl
c3VsdDogJGFjX2N2X2xpYl9lc3Nsc21wX3NnZW1tIiA+JjUKZWNobyAiJHtF
Q0hPX1R9JGFjX2N2X2xpYl9lc3Nsc21wX3NnZW1tIiA+JjYKaWYgdGVzdCAk
YWNfY3ZfbGliX2Vzc2xzbXBfc2dlbW0gPSB5ZXM7IHRoZW4KCmNhdCA+PmNv
bmZkZWZzLmggPDxcX0FDRU9GCiNkZWZpbmUgSEFWRV9MSUJCTEFTCl9BQ0VP
RgoKCmNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCiNkZWZpbmUgSEFWRV9M
SUJFU1NMCl9BQ0VPRgoKCmNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCiNk
ZWZpbmUgSEFWRV9MSUJFU1NMU01QCl9BQ0VPRgoKCmZvciBhY19oZWFkZXIg
aW4gb21wLmgKZG8KYXNfYWNfSGVhZGVyPWBlY2hvICJhY19jdl9oZWFkZXJf
JGFjX2hlYWRlciIgfCAkYXNfdHJfc2hgCmlmIGV2YWwgInRlc3QgXCJcJHsk
YXNfYWNfSGVhZGVyK3NldH1cIiA9IHNldCI7IHRoZW4KICBlY2hvICIkYXNf
bWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19oZWFkZXIiID4mNQplY2hv
ICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfaGVhZGVyLi4uICRFQ0hPX0Mi
ID4mNgppZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2FjX0hlYWRlcitzZXR9XCIg
PSBzZXQiOyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19D
IiA+JjYKZmkKZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogYGV2YWwg
ZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNQplY2hvICIke0VDSE9f
VH1gZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCIgPiY2CmVsc2UK
ICAjIElzIHRoZSBoZWFkZXIgY29tcGlsYWJsZT8KZWNobyAiJGFzX21lOiRM
SU5FTk86IGNoZWNraW5nICRhY19oZWFkZXIgdXNhYmlsaXR5IiA+JjUKZWNo
byAkRUNIT19OICJjaGVja2luZyAkYWNfaGVhZGVyIHVzYWJpbGl0eS4uLiAk
RUNIT19DIiA+JjYKY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCiNs
aW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKLyogY29uZmRlZnMuaC4gICovCl9B
Q0VPRgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+
Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4g
ICovCiRhY19pbmNsdWRlc19kZWZhdWx0CiNpbmNsdWRlIDwkYWNfaGVhZGVy
PgpfQUNFT0YKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAppZiB7IChldmFs
IGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUK
ICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQogIGFjX3N0YXR1cz0kPwogIGVj
aG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAo
ZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgogICAgICAgICB7IGFjX3RyeT0ndGVz
dCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwogIHsgKGV2YWwgZWNobyAiJGFz
X21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CiAgKGV2YWwgJGFjX3Ry
eSkgMj4mNQogIGFjX3N0YXR1cz0kPwogIGVjaG8gIiRhc19tZTokTElORU5P
OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsg
fTsgfTsgdGhlbgogIGFjX2hlYWRlcl9jb21waWxlcj15ZXMKZWxzZQogIGVj
aG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9e
L3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCmFjX2hlYWRlcl9jb21waWxl
cj1ubwpmaQpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRh
Y19leHQKZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2hlYWRl
cl9jb21waWxlciIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY19oZWFkZXJfY29t
cGlsZXIiID4mNgoKIyBJcyB0aGUgaGVhZGVyIHByZXNlbnQ/CmVjaG8gIiRh
c19tZTokTElORU5POiBjaGVja2luZyAkYWNfaGVhZGVyIHByZXNlbmNlIiA+
JjUKZWNobyAkRUNIT19OICJjaGVja2luZyAkYWNfaGVhZGVyIHByZXNlbmNl
Li4uICRFQ0hPX0MiID4mNgpjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF
T0YKI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgovKiBjb25mZGVmcy5oLiAg
Ki8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApj
YXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVm
cy5oLiAgKi8KI2luY2x1ZGUgPCRhY19oZWFkZXI+Cl9BQ0VPRgppZiB7IChl
dmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jcHAgY29uZnRlc3Qu
JGFjX2V4dFwiIikgPiY1CiAgKGV2YWwgJGFjX2NwcCBjb25mdGVzdC4kYWNf
ZXh0KSAyPmNvbmZ0ZXN0LmVyMQogIGFjX3N0YXR1cz0kPwogIGdyZXAgLXYg
J14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCiAgcm0gLWYgY29u
ZnRlc3QuZXIxCiAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKICBlY2hvICIkYXNf
bWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFj
X3N0YXR1cyk7IH0gPi9kZXYvbnVsbDsgdGhlbgogIGlmIHRlc3QgLXMgY29u
ZnRlc3QuZXJyOyB0aGVuCiAgICBhY19jcHBfZXJyPSRhY19jX3ByZXByb2Nf
d2Fybl9mbGFnCiAgZWxzZQogICAgYWNfY3BwX2Vycj0KICBmaQplbHNlCiAg
YWNfY3BwX2Vycj15ZXMKZmkKaWYgdGVzdCAteiAiJGFjX2NwcF9lcnIiOyB0
aGVuCiAgYWNfaGVhZGVyX3ByZXByb2M9eWVzCmVsc2UKICBlY2hvICIkYXNf
bWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNv
bmZ0ZXN0LiRhY19leHQgPiY1CgogIGFjX2hlYWRlcl9wcmVwcm9jPW5vCmZp
CnJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CmVjaG8gIiRh
c19tZTokTElORU5POiByZXN1bHQ6ICRhY19oZWFkZXJfcHJlcHJvYyIgPiY1
CmVjaG8gIiR7RUNIT19UfSRhY19oZWFkZXJfcHJlcHJvYyIgPiY2CgojIFNv
PyAgV2hhdCBhYm91dCB0aGlzIGhlYWRlcj8KY2FzZSAkYWNfaGVhZGVyX2Nv
bXBpbGVyOiRhY19oZWFkZXJfcHJlcHJvYyBpbgogIHllczpubyApCiAgICB7
IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBh
Y2NlcHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVw
cm9jZXNzb3IhIiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVh
ZGVyOiBhY2NlcHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRo
ZSBwcmVwcm9jZXNzb3IhIiA+JjI7fQogICAgeyBlY2hvICIkYXNfbWU6JExJ
TkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogcHJvY2VlZGluZyB3aXRoIHRo
ZSBwcmVwcm9jZXNzb3IncyByZXN1bHQiID4mNQplY2hvICIkYXNfbWU6IFdB
Uk5JTkc6ICRhY19oZWFkZXI6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJv
Y2Vzc29yJ3MgcmVzdWx0IiA+JjI7fQogICAgKAogICAgICBjYXQgPDxcX0FT
Qk9YCiMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAj
IwojIyBSZXBvcnQgdGhpcyB0byBidWctYXV0b2NvbmZAZ251Lm9yZy4gIyMK
IyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCl9B
U0JPWAogICAgKSB8CiAgICAgIHNlZCAicy9eLyRhc19tZTogV0FSTklORzog
ICAgIC8iID4mMgogICAgOzsKICBubzp5ZXMgKQogICAgeyBlY2hvICIkYXNf
bWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogcHJlc2VudCBidXQg
Y2Fubm90IGJlIGNvbXBpbGVkIiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5H
OiAkYWNfaGVhZGVyOiBwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQi
ID4mMjt9CiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAk
YWNfaGVhZGVyOiBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVh
ZGVycz8iID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6
IGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiYy
O30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19o
ZWFkZXI6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVz
dWx0IiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBw
cm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiYy
O30KICAgICgKICAgICAgY2F0IDw8XF9BU0JPWAojIyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKIyMgUmVwb3J0IHRoaXMgdG8g
YnVnLWF1dG9jb25mQGdudS5vcmcuICMjCiMjIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSAjIwpfQVNCT1gKICAgICkgfAogICAgICBz
ZWQgInMvXi8kYXNfbWU6IFdBUk5JTkc6ICAgICAvIiA+JjIKICAgIDs7CmVz
YWMKZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfaGVh
ZGVyIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX2hlYWRl
ci4uLiAkRUNIT19DIiA+JjYKaWYgZXZhbCAidGVzdCBcIlwkeyRhc19hY19I
ZWFkZXIrc2V0fVwiID0gc2V0IjsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNh
Y2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBldmFsICIkYXNfYWNfSGVhZGVy
PSRhY19oZWFkZXJfcHJlcHJvYyIKZmkKZWNobyAiJGFzX21lOiRMSU5FTk86
IHJlc3VsdDogYGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4m
NQplY2hvICIke0VDSE9fVH1gZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVy
J30nYCIgPiY2CgpmaQppZiB0ZXN0IGBldmFsIGVjaG8gJyR7JyRhc19hY19I
ZWFkZXInfSdgID0geWVzOyB0aGVuCiAgY2F0ID4+Y29uZmRlZnMuaCA8PF9B
Q0VPRgojZGVmaW5lIGBlY2hvICJIQVZFXyRhY19oZWFkZXIiIHwgJGFzX3Ry
X2NwcGAgMQpfQUNFT0YKCmZpCgpkb25lCgoKCgpmb3IgYWNfZnVuYyBpbiBv
bXBfZ2V0X21heF90aHJlYWRzIG9tcF9zZXRfbnVtX3RocmVhZHMgb21wX2dl
dF9udW1fdGhyZWFkcwpkbwphc19hY192YXI9YGVjaG8gImFjX2N2X2Z1bmNf
JGFjX2Z1bmMiIHwgJGFzX3RyX3NoYAplY2hvICIkYXNfbWU6JExJTkVOTzog
Y2hlY2tpbmcgZm9yICRhY19mdW5jIiA+JjUKZWNobyAkRUNIT19OICJjaGVj
a2luZyBmb3IgJGFjX2Z1bmMuLi4gJEVDSE9fQyIgPiY2CmlmIGV2YWwgInRl
c3QgXCJcJHskYXNfYWNfdmFyK3NldH1cIiA9IHNldCI7IHRoZW4KICBlY2hv
ICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCiAgY2F0ID5j
b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCiNsaW5lICRMSU5FTk8gImNvbmZp
Z3VyZSIKLyogY29uZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29uZmRlZnMu
aCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8
PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCi8qIFN5c3RlbSBoZWFk
ZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcg
cHJvdG90eXBlcywKICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIg
JGFjX2Z1bmMgKCk7IGJlbG93LgogICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8g
PGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQogICAg
PGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGls
ZXJzLiAgKi8KI2lmZGVmIF9fU1REQ19fCiMgaW5jbHVkZSA8bGltaXRzLmg+
CiNlbHNlCiMgaW5jbHVkZSA8YXNzZXJ0Lmg+CiNlbmRpZgovKiBPdmVycmlk
ZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJy
b3IuICAqLwojaWZkZWYgX19jcGx1c3BsdXMKZXh0ZXJuICJDIgp7CiNlbmRp
ZgovKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUg
cmV0dXJuIHR5cGUgb2YgYSBnY2MyCiAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRz
IGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCmNo
YXIgJGFjX2Z1bmMgKCk7Ci8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMg
dGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKICAgIHRv
IGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJl
IGFjdHVhbGx5IG5hbWVkCiAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBf
XyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KI2lmIGRl
ZmluZWQgKF9fc3R1Yl8kYWNfZnVuYykgfHwgZGVmaW5lZCAoX19zdHViX19f
JGFjX2Z1bmMpCmNob2tlIG1lCiNlbHNlCmNoYXIgKCpmKSAoKSA9ICRhY19m
dW5jOwojZW5kaWYKI2lmZGVmIF9fY3BsdXNwbHVzCn0KI2VuZGlmCgppbnQK
bWFpbiAoKQp7CnJldHVybiBmICE9ICRhY19mdW5jOwogIDsKICByZXR1cm4g
MDsKfQpfQUNFT0YKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz
dCRhY19leGVleHQKaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzog
XCIkYWNfbGlua1wiIikgPiY1CiAgKGV2YWwgJGFjX2xpbmspIDI+JjUKICBh
Y19zdGF0dXM9JD8KICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFj
X3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKICAgICAg
ICAgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0JwogIHsg
KGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1
CiAgKGV2YWwgJGFjX3RyeSkgMj4mNQogIGFjX3N0YXR1cz0kPwogIGVjaG8g
IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhp
dCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgogIGV2YWwgIiRhc19hY192YXI9
eWVzIgplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6
IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKZXZh
bCAiJGFzX2FjX3Zhcj1ubyIKZmkKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4
dCBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dApmaQplY2hv
ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBgZXZhbCBlY2hvICckeyckYXNf
YWNfdmFyJ30nYCIgPiY1CmVjaG8gIiR7RUNIT19UfWBldmFsIGVjaG8gJyR7
JyRhc19hY192YXInfSdgIiA+JjYKaWYgdGVzdCBgZXZhbCBlY2hvICckeyck
YXNfYWNfdmFyJ30nYCA9IHllczsgdGhlbgogIGNhdCA+PmNvbmZkZWZzLmgg
PDxfQUNFT0YKI2RlZmluZSBgZWNobyAiSEFWRV8kYWNfZnVuYyIgfCAkYXNf
dHJfY3BwYCAxCl9BQ0VPRgoKZmkKZG9uZQoKCQkgIGRlZmF1bHRfbWxwM19i
bGFzPXRydWUKZWxzZQogIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJy
b3I6IGNvdWxkIG5vdCBmaW5kIHRoZSBlc3Nsc21wIGxpYnJhcnkKU2VlIFxg
Y29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQplY2hvICIkYXNf
bWU6IGVycm9yOiBjb3VsZCBub3QgZmluZCB0aGUgZXNzbHNtcCBsaWJyYXJ5
ClNlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQog
ICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KZmkKCiAgICA7OwogIHN1bnBl
cmYpCiAgICAjIFNob3VsZCBjaGVjayB0aGF0IHdlIGFyZSBub3QgdXNpbmcg
Z2NjIGhlcmUKCmZvciBhY19oZWFkZXIgaW4gc3VucGVyZi5oCmRvCmFzX2Fj
X0hlYWRlcj1gZWNobyAiYWNfY3ZfaGVhZGVyXyRhY19oZWFkZXIiIHwgJGFz
X3RyX3NoYAppZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2FjX0hlYWRlcitzZXR9
XCIgPSBzZXQiOyB0aGVuCiAgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr
aW5nIGZvciAkYWNfaGVhZGVyIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2lu
ZyBmb3IgJGFjX2hlYWRlci4uLiAkRUNIT19DIiA+JjYKaWYgZXZhbCAidGVz
dCBcIlwkeyRhc19hY19IZWFkZXIrc2V0fVwiID0gc2V0IjsgdGhlbgogIGVj
aG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmZpCmVjaG8gIiRh
c19tZTokTElORU5POiByZXN1bHQ6IGBldmFsIGVjaG8gJyR7JyRhc19hY19I
ZWFkZXInfSdgIiA+JjUKZWNobyAiJHtFQ0hPX1R9YGV2YWwgZWNobyAnJHsn
JGFzX2FjX0hlYWRlcid9J2AiID4mNgplbHNlCiAgIyBJcyB0aGUgaGVhZGVy
IGNvbXBpbGFibGU/CmVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyAk
YWNfaGVhZGVyIHVzYWJpbGl0eSIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tp
bmcgJGFjX2hlYWRlciB1c2FiaWxpdHkuLi4gJEVDSE9fQyIgPiY2CmNhdCA+
Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgojbGluZSAkTElORU5PICJjb25m
aWd1cmUiCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZz
LmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQg
PDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwokYWNfaW5jbHVkZXNf
ZGVmYXVsdAojaW5jbHVkZSA8JGFjX2hlYWRlcj4KX0FDRU9GCnJtIC1mIGNv
bmZ0ZXN0LiRhY19vYmpleHQKaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJ
TkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CiAgKGV2YWwgJGFjX2NvbXBp
bGUpIDI+JjUKICBhY19zdGF0dXM9JD8KICBlY2hvICIkYXNfbWU6JExJTkVO
TzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7
IH0gJiYKICAgICAgICAgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFj
X29iamV4dCcKICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRh
Y190cnlcIiIpID4mNQogIChldmFsICRhY190cnkpIDI+JjUKICBhY19zdGF0
dXM9JD8KICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1
cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KICBhY19o
ZWFkZXJfY29tcGlsZXI9eWVzCmVsc2UKICBlY2hvICIkYXNfbWU6IGZhaWxl
ZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRh
Y19leHQgPiY1CgphY19oZWFkZXJfY29tcGlsZXI9bm8KZmkKcm0gLWYgY29u
ZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CmVjaG8gIiRhc19t
ZTokTElORU5POiByZXN1bHQ6ICRhY19oZWFkZXJfY29tcGlsZXIiID4mNQpl
Y2hvICIke0VDSE9fVH0kYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjYKCiMgSXMg
dGhlIGhlYWRlciBwcmVzZW50PwplY2hvICIkYXNfbWU6JExJTkVOTzogY2hl
Y2tpbmcgJGFjX2hlYWRlciBwcmVzZW5jZSIgPiY1CmVjaG8gJEVDSE9fTiAi
Y2hlY2tpbmcgJGFjX2hlYWRlciBwcmVzZW5jZS4uLiAkRUNIT19DIiA+JjYK
Y2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCiNsaW5lICRMSU5FTk8g
ImNvbmZpZ3VyZSIKLyogY29uZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29u
ZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRlc3QuJGFj
X2V4dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCiNpbmNsdWRl
IDwkYWNfaGVhZGVyPgpfQUNFT0YKaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6
JExJTkVOTzogXCIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHRcIiIpID4mNQog
IChldmFsICRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCkgMj5jb25mdGVzdC5l
cjEKICBhY19zdGF0dXM9JD8KICBncmVwIC12ICdeICorJyBjb25mdGVzdC5l
cjEgPmNvbmZ0ZXN0LmVycgogIHJtIC1mIGNvbmZ0ZXN0LmVyMQogIGNhdCBj
b25mdGVzdC5lcnIgPiY1CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9
ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2
L251bGw7IHRoZW4KICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgog
ICAgYWNfY3BwX2Vycj0kYWNfY19wcmVwcm9jX3dhcm5fZmxhZwogIGVsc2UK
ICAgIGFjX2NwcF9lcnI9CiAgZmkKZWxzZQogIGFjX2NwcF9lcnI9eWVzCmZp
CmlmIHRlc3QgLXogIiRhY19jcHBfZXJyIjsgdGhlbgogIGFjX2hlYWRlcl9w
cmVwcm9jPXllcwplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3Jh
bSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4m
NQoKICBhY19oZWFkZXJfcHJlcHJvYz1ubwpmaQpybSAtZiBjb25mdGVzdC5l
cnIgY29uZnRlc3QuJGFjX2V4dAplY2hvICIkYXNfbWU6JExJTkVOTzogcmVz
dWx0OiAkYWNfaGVhZGVyX3ByZXByb2MiID4mNQplY2hvICIke0VDSE9fVH0k
YWNfaGVhZGVyX3ByZXByb2MiID4mNgoKIyBTbz8gIFdoYXQgYWJvdXQgdGhp
cyBoZWFkZXI/CmNhc2UgJGFjX2hlYWRlcl9jb21waWxlcjokYWNfaGVhZGVy
X3ByZXByb2MgaW4KICB5ZXM6bm8gKQogICAgeyBlY2hvICIkYXNfbWU6JExJ
TkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogYWNjZXB0ZWQgYnkgdGhlIGNv
bXBpbGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vzc29yISIgPiY1CmVj
aG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogYWNjZXB0ZWQgYnkg
dGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vzc29yISIg
PiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRh
Y19oZWFkZXI6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3Mg
cmVzdWx0IiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVy
OiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIg
PiYyO30KICAgICgKICAgICAgY2F0IDw8XF9BU0JPWAojIyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKIyMgUmVwb3J0IHRoaXMg
dG8gYnVnLWF1dG9jb25mQGdudS5vcmcuICMjCiMjIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwpfQVNCT1gKICAgICkgfAogICAg
ICBzZWQgInMvXi8kYXNfbWU6IFdBUk5JTkc6ICAgICAvIiA+JjIKICAgIDs7
CiAgbm86eWVzICkKICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5J
Tkc6ICRhY19oZWFkZXI6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxl
ZCIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogcHJl
c2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjI7fQogICAgeyBlY2hv
ICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogY2hlY2sg
Zm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/IiA+JjUKZWNobyAi
JGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBjaGVjayBmb3IgbWlzc2lu
ZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mMjt9CiAgICB7IGVjaG8gIiRh
c19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5n
IHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiY1CmVjaG8gIiRh
c19tZTogV0FSTklORzogJGFjX2hlYWRlcjogcHJvY2VlZGluZyB3aXRoIHRo
ZSBwcmVwcm9jZXNzb3IncyByZXN1bHQiID4mMjt9CiAgICAoCiAgICAgIGNh
dCA8PFxfQVNCT1gKIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tICMjCiMjIFJlcG9ydCB0aGlzIHRvIGJ1Zy1hdXRvY29uZkBnbnUu
b3JnLiAjIwojIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gIyMKX0FTQk9YCiAgICApIHwKICAgICAgc2VkICJzL14vJGFzX21lOiBX
QVJOSU5HOiAgICAgLyIgPiYyCiAgICA7Owplc2FjCmVjaG8gIiRhc19tZTok
TElORU5POiBjaGVja2luZyBmb3IgJGFjX2hlYWRlciIgPiY1CmVjaG8gJEVD
SE9fTiAiY2hlY2tpbmcgZm9yICRhY19oZWFkZXIuLi4gJEVDSE9fQyIgPiY2
CmlmIGV2YWwgInRlc3QgXCJcJHskYXNfYWNfSGVhZGVyK3NldH1cIiA9IHNl
dCI7IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4m
NgplbHNlCiAgZXZhbCAiJGFzX2FjX0hlYWRlcj0kYWNfaGVhZGVyX3ByZXBy
b2MiCmZpCmVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IGBldmFsIGVj
aG8gJyR7JyRhc19hY19IZWFkZXInfSdgIiA+JjUKZWNobyAiJHtFQ0hPX1R9
YGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNgoKZmkKaWYg
dGVzdCBgZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCA9IHllczsg
dGhlbgogIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKI2RlZmluZSBgZWNo
byAiSEFWRV8kYWNfaGVhZGVyIiB8ICRhc190cl9jcHBgIDEKX0FDRU9GCgpl
bHNlCiAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY291bGQg
bm90IGZpbmQgc3VucGVyZi5oClNlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3Jl
IGRldGFpbHMuIiA+JjUKZWNobyAiJGFzX21lOiBlcnJvcjogY291bGQgbm90
IGZpbmQgc3VucGVyZi5oClNlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRl
dGFpbHMuIiA+JjI7fQogICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KZmkK
CmRvbmUKCiAgICAjIEhlcmUgd2UgZ2V0IHJpZCBvZiBvdGhlciAtbCBzdHVm
ZiBhcyBpdCBzZWVtcyB0byBicmVhayB3aXRoIC14bGljX2xpYgogICAgTElC
Uz1gZWNobyAkTElCUyB8IHNlZCAtZSAncy8tbHB0aHJlYWQvLycgLWUgJ3Mv
LWxzdW5tYXRoLy8nIC1lICdzLy1sbS8vJ2AKICAgIExJQlM9IiRMSUJTIC14
bGljX2xpYj1zdW5wZXJmIgogICAgQ1BQRkxBR1M9Ii1kYWxpZ24gJENQUEZM
QUdTIgogICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBz
Z2VtbSBpbiAtbHN1bnBlcmYiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5n
IGZvciBzZ2VtbSBpbiAtbHN1bnBlcmYuLi4gJEVDSE9fQyIgPiY2CmlmIHRl
c3QgIiR7YWNfY3ZfbGliX3N1bnBlcmZfc2dlbW0rc2V0fSIgPSBzZXQ7IHRo
ZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgplbHNl
CiAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUwpMSUJTPSItbHN1bnBl
cmYgICRMSUJTIgpjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKI2xp
bmUgJExJTkVOTyAiY29uZmlndXJlIgovKiBjb25mZGVmcy5oLiAgKi8KX0FD
RU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5j
b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5oLiAg
Ki8KCi8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0
byBhdm9pZCBhbiBlcnJvci4gICovCiNpZmRlZiBfX2NwbHVzcGx1cwpleHRl
cm4gIkMiCiNlbmRpZgovKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdo
dCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCiAgIGJ1aWx0aW4g
YW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBh
cHBseS4gICovCmNoYXIgc2dlbW0gKCk7CmludAptYWluICgpCnsKc2dlbW0g
KCk7CiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC4k
YWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAppZiB7IChldmFsIGVjaG8g
IiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKICAoZXZhbCAk
YWNfbGluaykgMj4mNQogIGFjX3N0YXR1cz0kPwogIGVjaG8gIiRhc19tZTok
TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3Rh
dHVzKTsgfSAmJgogICAgICAgICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVz
dCRhY19leGVleHQnCiAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzog
XCIkYWNfdHJ5XCIiKSA+JjUKICAoZXZhbCAkYWNfdHJ5KSAyPiY1CiAgYWNf
c3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19z
dGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCiAg
YWNfY3ZfbGliX3N1bnBlcmZfc2dlbW09eWVzCmVsc2UKICBlY2hvICIkYXNf
bWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNv
bmZ0ZXN0LiRhY19leHQgPiY1CgphY19jdl9saWJfc3VucGVyZl9zZ2VtbT1u
bwpmaQpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4
ZWV4dCBjb25mdGVzdC4kYWNfZXh0CkxJQlM9JGFjX2NoZWNrX2xpYl9zYXZl
X0xJQlMKZmkKZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2
X2xpYl9zdW5wZXJmX3NnZW1tIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2N2
X2xpYl9zdW5wZXJmX3NnZW1tIiA+JjYKaWYgdGVzdCAkYWNfY3ZfbGliX3N1
bnBlcmZfc2dlbW0gPSB5ZXM7IHRoZW4KCmNhdCA+PmNvbmZkZWZzLmggPDxc
X0FDRU9GCiNkZWZpbmUgSEFWRV9MSUJCTEFTCl9BQ0VPRgoKCQkgIGRlZmF1
bHRfbWxwM19ibGFzPXRydWUKZWxzZQogIHsgeyBlY2hvICIkYXNfbWU6JExJ
TkVOTzogZXJyb3I6IGNvdWxkIG5vdCBmaW5kIHRoZSBzdW5wZXJmIGxpYnJh
cnkKU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQpl
Y2hvICIkYXNfbWU6IGVycm9yOiBjb3VsZCBub3QgZmluZCB0aGUgc3VucGVy
ZiBsaWJyYXJ5ClNlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMu
IiA+JjI7fQogICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KZmkKCiAgICA7
OwoKICBhY21sKSAgICAgIyBTaG91bGQgY2hlY2sgdGhhdCB3ZSBhcmUgbm90
IHVzaW5nIGdjYyBoZXJlCgpmb3IgYWNfaGVhZGVyIGluIGFjbWwuaApkbwph
c19hY19IZWFkZXI9YGVjaG8gImFjX2N2X2hlYWRlcl8kYWNfaGVhZGVyIiB8
ICRhc190cl9zaGAKaWYgZXZhbCAidGVzdCBcIlwkeyRhc19hY19IZWFkZXIr
c2V0fVwiID0gc2V0IjsgdGhlbgogIGVjaG8gIiRhc19tZTokTElORU5POiBj
aGVja2luZyBmb3IgJGFjX2hlYWRlciIgPiY1CmVjaG8gJEVDSE9fTiAiY2hl
Y2tpbmcgZm9yICRhY19oZWFkZXIuLi4gJEVDSE9fQyIgPiY2CmlmIGV2YWwg
InRlc3QgXCJcJHskYXNfYWNfSGVhZGVyK3NldH1cIiA9IHNldCI7IHRoZW4K
ICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgpmaQplY2hv
ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBgZXZhbCBlY2hvICckeyckYXNf
YWNfSGVhZGVyJ30nYCIgPiY1CmVjaG8gIiR7RUNIT19UfWBldmFsIGVjaG8g
JyR7JyRhc19hY19IZWFkZXInfSdgIiA+JjYKZWxzZQogICMgSXMgdGhlIGhl
YWRlciBjb21waWxhYmxlPwplY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp
bmcgJGFjX2hlYWRlciB1c2FiaWxpdHkiID4mNQplY2hvICRFQ0hPX04gImNo
ZWNraW5nICRhY19oZWFkZXIgdXNhYmlsaXR5Li4uICRFQ0hPX0MiID4mNgpj
YXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKI2xpbmUgJExJTkVOTyAi
Y29uZmlndXJlIgovKiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBjb25m
ZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNf
ZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5oLiAgKi8KJGFjX2luY2x1
ZGVzX2RlZmF1bHQKI2luY2x1ZGUgPCRhY19oZWFkZXI+Cl9BQ0VPRgpybSAt
ZiBjb25mdGVzdC4kYWNfb2JqZXh0CmlmIHsgKGV2YWwgZWNobyAiJGFzX21l
OiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQogIChldmFsICRhY19j
b21waWxlKSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRM
SU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0
dXMpOyB9ICYmCiAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0
LiRhY19vYmpleHQnCiAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzog
XCIkYWNfdHJ5XCIiKSA+JjUKICAoZXZhbCAkYWNfdHJ5KSAyPiY1CiAgYWNf
c3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19z
dGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCiAg
YWNfaGVhZGVyX2NvbXBpbGVyPXllcwplbHNlCiAgZWNobyAiJGFzX21lOiBm
YWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVz
dC4kYWNfZXh0ID4mNQoKYWNfaGVhZGVyX2NvbXBpbGVyPW5vCmZpCnJtIC1m
IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAplY2hvICIk
YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX2NvbXBpbGVyIiA+
JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9jb21waWxlciIgPiY2Cgoj
IElzIHRoZSBoZWFkZXIgcHJlc2VudD8KZWNobyAiJGFzX21lOiRMSU5FTk86
IGNoZWNraW5nICRhY19oZWFkZXIgcHJlc2VuY2UiID4mNQplY2hvICRFQ0hP
X04gImNoZWNraW5nICRhY19oZWFkZXIgcHJlc2VuY2UuLi4gJEVDSE9fQyIg
PiY2CmNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgojbGluZSAkTElO
RU5PICJjb25maWd1cmUiCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0
IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0
LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwojaW5j
bHVkZSA8JGFjX2hlYWRlcj4KX0FDRU9GCmlmIHsgKGV2YWwgZWNobyAiJGFz
X21lOiRMSU5FTk86IFwiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0XCIiKSA+
JjUKICAoZXZhbCAkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQpIDI+Y29uZnRl
c3QuZXIxCiAgYWNfc3RhdHVzPSQ/CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRl
c3QuZXIxID5jb25mdGVzdC5lcnIKICBybSAtZiBjb25mdGVzdC5lcjEKICBj
YXQgY29uZnRlc3QuZXJyID4mNQogIGVjaG8gIiRhc19tZTokTElORU5POiBc
JD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+
L2Rldi9udWxsOyB0aGVuCiAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRo
ZW4KICAgIGFjX2NwcF9lcnI9JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcKICBl
bHNlCiAgICBhY19jcHBfZXJyPQogIGZpCmVsc2UKICBhY19jcHBfZXJyPXll
cwpmaQppZiB0ZXN0IC16ICIkYWNfY3BwX2VyciI7IHRoZW4KICBhY19oZWFk
ZXJfcHJlcHJvYz15ZXMKZWxzZQogIGVjaG8gIiRhc19tZTogZmFpbGVkIHBy
b2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4
dCA+JjUKCiAgYWNfaGVhZGVyX3ByZXByb2M9bm8KZmkKcm0gLWYgY29uZnRl
c3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKZWNobyAiJGFzX21lOiRMSU5FTk86
IHJlc3VsdDogJGFjX2hlYWRlcl9wcmVwcm9jIiA+JjUKZWNobyAiJHtFQ0hP
X1R9JGFjX2hlYWRlcl9wcmVwcm9jIiA+JjYKCiMgU28/ICBXaGF0IGFib3V0
IHRoaXMgaGVhZGVyPwpjYXNlICRhY19oZWFkZXJfY29tcGlsZXI6JGFjX2hl
YWRlcl9wcmVwcm9jIGluCiAgeWVzOm5vICkKICAgIHsgZWNobyAiJGFzX21l
OiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IGFjY2VwdGVkIGJ5IHRo
ZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4m
NQplY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IGFjY2VwdGVk
IGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3Nv
ciEiID4mMjt9CiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5H
OiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3Nv
cidzIHJlc3VsdCIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hl
YWRlcjogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1
bHQiID4mMjt9CiAgICAoCiAgICAgIGNhdCA8PFxfQVNCT1gKIyMgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCiMjIFJlcG9ydCB0
aGlzIHRvIGJ1Zy1hdXRvY29uZkBnbnUub3JnLiAjIwojIyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKX0FTQk9YCiAgICApIHwK
ICAgICAgc2VkICJzL14vJGFzX21lOiBXQVJOSU5HOiAgICAgLyIgPiYyCiAg
ICA7OwogIG5vOnllcyApCiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBX
QVJOSU5HOiAkYWNfaGVhZGVyOiBwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29t
cGlsZWQiID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6
IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiYyO30KICAgIHsg
ZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IGNo
ZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiY1CmVj
aG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogY2hlY2sgZm9yIG1p
c3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/IiA+JjI7fQogICAgeyBlY2hv
ICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogcHJvY2Vl
ZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1bHQiID4mNQplY2hv
ICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByb2NlZWRpbmcgd2l0
aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjI7fQogICAgKAogICAg
ICBjYXQgPDxcX0FTQk9YCiMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSAjIwojIyBSZXBvcnQgdGhpcyB0byBidWctYXV0b2NvbmZA
Z251Lm9yZy4gIyMKIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tICMjCl9BU0JPWAogICAgKSB8CiAgICAgIHNlZCAicy9eLyRhc19t
ZTogV0FSTklORzogICAgIC8iID4mMgogICAgOzsKZXNhYwplY2hvICIkYXNf
bWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19oZWFkZXIiID4mNQplY2hv
ICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfaGVhZGVyLi4uICRFQ0hPX0Mi
ID4mNgppZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2FjX0hlYWRlcitzZXR9XCIg
PSBzZXQiOyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19D
IiA+JjYKZWxzZQogIGV2YWwgIiRhc19hY19IZWFkZXI9JGFjX2hlYWRlcl9w
cmVwcm9jIgpmaQplY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBgZXZh
bCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCIgPiY1CmVjaG8gIiR7RUNI
T19UfWBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgIiA+JjYKCmZp
CmlmIHRlc3QgYGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AgPSB5
ZXM7IHRoZW4KICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCiNkZWZpbmUg
YGVjaG8gIkhBVkVfJGFjX2hlYWRlciIgfCAkYXNfdHJfY3BwYCAxCl9BQ0VP
RgoKZWxzZQogIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNv
dWxkIG5vdCBmaW5kIGFjbWwuaApTZWUgXGBjb25maWcubG9nJyBmb3IgbW9y
ZSBkZXRhaWxzLiIgPiY1CmVjaG8gIiRhc19tZTogZXJyb3I6IGNvdWxkIG5v
dCBmaW5kIGFjbWwuaApTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRh
aWxzLiIgPiYyO30KICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CmZpCgpk
b25lCgogICAgTElCUz0iJExJQlMgLWxnMmMiCiAgICBlY2hvICIkYXNfbWU6
JExJTkVOTzogY2hlY2tpbmcgZm9yIGFjbWxpbmZvIGluIC1sYWNtbCIgPiY1
CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIGFjbWxpbmZvIGluIC1sYWNt
bC4uLiAkRUNIT19DIiA+JjYKaWYgdGVzdCAiJHthY19jdl9saWJfYWNtbF9h
Y21saW5mbytzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNh
Y2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBhY19jaGVja19saWJfc2F2ZV9M
SUJTPSRMSUJTCkxJQlM9Ii1sYWNtbCAgJExJQlMiCmNhdCA+Y29uZnRlc3Qu
JGFjX2V4dCA8PF9BQ0VPRgojbGluZSAkTElORU5PICJjb25maWd1cmUiCi8q
IGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25m
dGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK
LyogZW5kIGNvbmZkZWZzLmguICAqLwoKLyogT3ZlcnJpZGUgYW55IGdjYzIg
aW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8KI2lm
ZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAiQyIKI2VuZGlmCi8qIFdlIHVzZSBj
aGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBv
ZiBhIGdjYzIKICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJv
dG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KY2hhciBhY21saW5mbyAo
KTsKaW50Cm1haW4gKCkKewphY21saW5mbyAoKTsKICA7CiAgcmV0dXJuIDA7
Cn0KX0FDRU9GCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3Qk
YWNfZXhlZXh0CmlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwi
JGFjX2xpbmtcIiIpID4mNQogIChldmFsICRhY19saW5rKSAyPiY1CiAgYWNf
c3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19z
dGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCiAgICAgICAg
IHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCcKICB7IChl
dmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQog
IChldmFsICRhY190cnkpIDI+JjUKICBhY19zdGF0dXM9JD8KICBlY2hvICIk
YXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQg
JGFjX3N0YXR1cyk7IH07IH07IHRoZW4KICBhY19jdl9saWJfYWNtbF9hY21s
aW5mbz15ZXMKZWxzZQogIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0g
d2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUK
CmFjX2N2X2xpYl9hY21sX2FjbWxpbmZvPW5vCmZpCnJtIC1mIGNvbmZ0ZXN0
LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19l
eHQKTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwpmaQplY2hvICIkYXNf
bWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfbGliX2FjbWxfYWNtbGluZm8i
ID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3ZfbGliX2FjbWxfYWNtbGluZm8i
ID4mNgppZiB0ZXN0ICRhY19jdl9saWJfYWNtbF9hY21saW5mbyA9IHllczsg
dGhlbgoKY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKI2RlZmluZSBIQVZF
X0xJQkJMQVMKX0FDRU9GCgoJCSAgTElCUz0iLWxhY21sICRMSUJTIgoJCSAg
ZGVmYXVsdF9tbHAzX2JsYXM9dHJ1ZQplbHNlCiAgeyB7IGVjaG8gIiRhc19t
ZTokTElORU5POiBlcnJvcjogY291bGQgbm90IGZpbmQgdGhlIEFNRCBhY21s
IGxpYnJhcnkKU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4i
ID4mNQplY2hvICIkYXNfbWU6IGVycm9yOiBjb3VsZCBub3QgZmluZCB0aGUg
QU1EIGFjbWwgbGlicmFyeQpTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBk
ZXRhaWxzLiIgPiYyO30KICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Cgpm
aQoKICAgIDs7CiAgbWFjb3MpCgoKZm9yIGFjX2hlYWRlciBpbiB2ZWNMaWIv
Y2JsYXMuaCBjYmxhcy5oCmRvCmFzX2FjX0hlYWRlcj1gZWNobyAiYWNfY3Zf
aGVhZGVyXyRhY19oZWFkZXIiIHwgJGFzX3RyX3NoYAppZiBldmFsICJ0ZXN0
IFwiXCR7JGFzX2FjX0hlYWRlcitzZXR9XCIgPSBzZXQiOyB0aGVuCiAgZWNo
byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfaGVhZGVyIiA+
JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX2hlYWRlci4uLiAk
RUNIT19DIiA+JjYKaWYgZXZhbCAidGVzdCBcIlwkeyRhc19hY19IZWFkZXIr
c2V0fVwiID0gc2V0IjsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkg
JEVDSE9fQyIgPiY2CmZpCmVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6
IGBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgIiA+JjUKZWNobyAi
JHtFQ0hPX1R9YGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4m
NgplbHNlCiAgIyBJcyB0aGUgaGVhZGVyIGNvbXBpbGFibGU/CmVjaG8gIiRh
c19tZTokTElORU5POiBjaGVja2luZyAkYWNfaGVhZGVyIHVzYWJpbGl0eSIg
PiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgJGFjX2hlYWRlciB1c2FiaWxp
dHkuLi4gJEVDSE9fQyIgPiY2CmNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9B
Q0VPRgojbGluZSAkTElORU5PICJjb25maWd1cmUiCi8qIGNvbmZkZWZzLmgu
ICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0
CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZk
ZWZzLmguICAqLwokYWNfaW5jbHVkZXNfZGVmYXVsdAojaW5jbHVkZSA8JGFj
X2hlYWRlcj4KX0FDRU9GCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKaWYg
eyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwi
IikgPiY1CiAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKICBhY19zdGF0dXM9
JD8KICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIg
PiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKICAgICAgICAgeyBhY190
cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKICB7IChldmFsIGVj
aG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQogIChldmFs
ICRhY190cnkpIDI+JjUKICBhY19zdGF0dXM9JD8KICBlY2hvICIkYXNfbWU6
JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0
YXR1cyk7IH07IH07IHRoZW4KICBhY19oZWFkZXJfY29tcGlsZXI9eWVzCmVs
c2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpz
ZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgphY19oZWFkZXJf
Y29tcGlsZXI9bm8KZmkKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25m
dGVzdC4kYWNfZXh0CmVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRh
Y19oZWFkZXJfY29tcGlsZXIiID4mNQplY2hvICIke0VDSE9fVH0kYWNfaGVh
ZGVyX2NvbXBpbGVyIiA+JjYKCiMgSXMgdGhlIGhlYWRlciBwcmVzZW50Pwpl
Y2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgJGFjX2hlYWRlciBwcmVz
ZW5jZSIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgJGFjX2hlYWRlciBw
cmVzZW5jZS4uLiAkRUNIT19DIiA+JjYKY2F0ID5jb25mdGVzdC4kYWNfZXh0
IDw8X0FDRU9GCiNsaW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKLyogY29uZmRl
ZnMuaC4gICovCl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRh
Y19leHQKY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQg
Y29uZmRlZnMuaC4gICovCiNpbmNsdWRlIDwkYWNfaGVhZGVyPgpfQUNFT0YK
aWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY3BwIGNv
bmZ0ZXN0LiRhY19leHRcIiIpID4mNQogIChldmFsICRhY19jcHAgY29uZnRl
c3QuJGFjX2V4dCkgMj5jb25mdGVzdC5lcjEKICBhY19zdGF0dXM9JD8KICBn
cmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgogIHJt
IC1mIGNvbmZ0ZXN0LmVyMQogIGNhdCBjb25mdGVzdC5lcnIgPiY1CiAgZWNo
byAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChl
eGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGw7IHRoZW4KICBpZiB0ZXN0
IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgogICAgYWNfY3BwX2Vycj0kYWNfY19w
cmVwcm9jX3dhcm5fZmxhZwogIGVsc2UKICAgIGFjX2NwcF9lcnI9CiAgZmkK
ZWxzZQogIGFjX2NwcF9lcnI9eWVzCmZpCmlmIHRlc3QgLXogIiRhY19jcHBf
ZXJyIjsgdGhlbgogIGFjX2hlYWRlcl9wcmVwcm9jPXllcwplbHNlCiAgZWNo
byAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14v
fCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKICBhY19oZWFkZXJfcHJlcHJv
Yz1ubwpmaQpybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dApl
Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX3ByZXBy
b2MiID4mNQplY2hvICIke0VDSE9fVH0kYWNfaGVhZGVyX3ByZXByb2MiID4m
NgoKIyBTbz8gIFdoYXQgYWJvdXQgdGhpcyBoZWFkZXI/CmNhc2UgJGFjX2hl
YWRlcl9jb21waWxlcjokYWNfaGVhZGVyX3ByZXByb2MgaW4KICB5ZXM6bm8g
KQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hl
YWRlcjogYWNjZXB0ZWQgYnkgdGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0
aGUgcHJlcHJvY2Vzc29yISIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzog
JGFjX2hlYWRlcjogYWNjZXB0ZWQgYnkgdGhlIGNvbXBpbGVyLCByZWplY3Rl
ZCBieSB0aGUgcHJlcHJvY2Vzc29yISIgPiYyO30KICAgIHsgZWNobyAiJGFz
X21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByb2NlZWRpbmcg
d2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjUKZWNobyAiJGFz
X21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhl
IHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiYyO30KICAgICgKICAgICAgY2F0
IDw8XF9BU0JPWAojIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gIyMKIyMgUmVwb3J0IHRoaXMgdG8gYnVnLWF1dG9jb25mQGdudS5v
cmcuICMjCiMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAjIwpfQVNCT1gKICAgICkgfAogICAgICBzZWQgInMvXi8kYXNfbWU6IFdB
Uk5JTkc6ICAgICAvIiA+JjIKICAgIDs7CiAgbm86eWVzICkKICAgIHsgZWNo
byAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByZXNl
bnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiY1CmVjaG8gIiRhc19tZTog
V0FSTklORzogJGFjX2hlYWRlcjogcHJlc2VudCBidXQgY2Fubm90IGJlIGNv
bXBpbGVkIiA+JjI7fQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FS
TklORzogJGFjX2hlYWRlcjogY2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlz
aXRlIGhlYWRlcnM/IiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNf
aGVhZGVyOiBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVy
cz8iID4mMjt9CiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5H
OiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3Nv
cidzIHJlc3VsdCIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hl
YWRlcjogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1
bHQiID4mMjt9CiAgICAoCiAgICAgIGNhdCA8PFxfQVNCT1gKIyMgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCiMjIFJlcG9ydCB0
aGlzIHRvIGJ1Zy1hdXRvY29uZkBnbnUub3JnLiAjIwojIyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKX0FTQk9YCiAgICApIHwK
ICAgICAgc2VkICJzL14vJGFzX21lOiBXQVJOSU5HOiAgICAgLyIgPiYyCiAg
ICA7Owplc2FjCmVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Ig
JGFjX2hlYWRlciIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRh
Y19oZWFkZXIuLi4gJEVDSE9fQyIgPiY2CmlmIGV2YWwgInRlc3QgXCJcJHsk
YXNfYWNfSGVhZGVyK3NldH1cIiA9IHNldCI7IHRoZW4KICBlY2hvICRFQ0hP
X04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCiAgZXZhbCAiJGFzX2Fj
X0hlYWRlcj0kYWNfaGVhZGVyX3ByZXByb2MiCmZpCmVjaG8gIiRhc19tZTok
TElORU5POiByZXN1bHQ6IGBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXIn
fSdgIiA+JjUKZWNobyAiJHtFQ0hPX1R9YGV2YWwgZWNobyAnJHsnJGFzX2Fj
X0hlYWRlcid9J2AiID4mNgoKZmkKaWYgdGVzdCBgZXZhbCBlY2hvICckeyck
YXNfYWNfSGVhZGVyJ30nYCA9IHllczsgdGhlbgogIGNhdCA+PmNvbmZkZWZz
LmggPDxfQUNFT0YKI2RlZmluZSBgZWNobyAiSEFWRV8kYWNfaGVhZGVyIiB8
ICRhc190cl9jcHBgIDEKX0FDRU9GCgpmaQoKZG9uZQoKICAgIExJQlM9IiRM
SUJTIC1mcmFtZXdvcmsgdmVjTGliIgogICAgZWNobyAiJGFzX21lOiRMSU5F
Tk86IGNoZWNraW5nIGZvciBjYmxhc19zZ2VtbSIgPiY1CmVjaG8gJEVDSE9f
TiAiY2hlY2tpbmcgZm9yIGNibGFzX3NnZW1tLi4uICRFQ0hPX0MiID4mNgpp
ZiB0ZXN0ICIke2FjX2N2X2Z1bmNfY2JsYXNfc2dlbW0rc2V0fSIgPSBzZXQ7
IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgpl
bHNlCiAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCiNsaW5lICRM
SU5FTk8gImNvbmZpZ3VyZSIKLyogY29uZmRlZnMuaC4gICovCl9BQ0VPRgpj
YXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRl
c3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCi8q
IFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhv
cGVmdWxseSBmZXcgcHJvdG90eXBlcywKICAgIHdoaWNoIGNhbiBjb25mbGlj
dCB3aXRoIGNoYXIgY2JsYXNfc2dlbW0gKCk7IGJlbG93LgogICAgUHJlZmVy
IDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZp
bmVkLCBzaW5jZQogICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVl
c3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KI2lmZGVmIF9fU1REQ19fCiMgaW5j
bHVkZSA8bGltaXRzLmg+CiNlbHNlCiMgaW5jbHVkZSA8YXNzZXJ0Lmg+CiNl
bmRpZgovKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUg
dG8gYXZvaWQgYW4gZXJyb3IuICAqLwojaWZkZWYgX19jcGx1c3BsdXMKZXh0
ZXJuICJDIgp7CiNlbmRpZgovKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBt
aWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCiAgIGJ1aWx0
aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGls
bCBhcHBseS4gICovCmNoYXIgY2JsYXNfc2dlbW0gKCk7Ci8qIFRoZSBHTlUg
QyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0
IGltcGxlbWVudHMKICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAg
U29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCiAgICBzb21ldGhp
bmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFu
IGFsaWFzLiAgKi8KI2lmIGRlZmluZWQgKF9fc3R1Yl9jYmxhc19zZ2VtbSkg
fHwgZGVmaW5lZCAoX19zdHViX19fY2JsYXNfc2dlbW0pCmNob2tlIG1lCiNl
bHNlCmNoYXIgKCpmKSAoKSA9IGNibGFzX3NnZW1tOwojZW5kaWYKI2lmZGVm
IF9fY3BsdXNwbHVzCn0KI2VuZGlmCgppbnQKbWFpbiAoKQp7CnJldHVybiBm
ICE9IGNibGFzX3NnZW1tOwogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKcm0g
LWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKaWYg
eyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikg
PiY1CiAgKGV2YWwgJGFjX2xpbmspIDI+JjUKICBhY19zdGF0dXM9JD8KICBl
Y2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAg
KGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKICAgICAgICAgeyBhY190cnk9J3Rl
c3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0JwogIHsgKGV2YWwgZWNobyAiJGFz
X21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CiAgKGV2YWwgJGFjX3Ry
eSkgMj4mNQogIGFjX3N0YXR1cz0kPwogIGVjaG8gIiRhc19tZTokTElORU5P
OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsg
fTsgfTsgdGhlbgogIGFjX2N2X2Z1bmNfY2JsYXNfc2dlbW09eWVzCmVsc2UK
ICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQg
J3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgphY19jdl9mdW5jX2Ni
bGFzX3NnZW1tPW5vCmZpCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29u
ZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKZmkKZWNobyAiJGFz
X21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2Z1bmNfY2JsYXNfc2dlbW0i
ID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3ZfZnVuY19jYmxhc19zZ2VtbSIg
PiY2CmlmIHRlc3QgJGFjX2N2X2Z1bmNfY2JsYXNfc2dlbW0gPSB5ZXM7IHRo
ZW4KCmNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCiNkZWZpbmUgSEFWRV9M
SUJDQkxBUwpfQUNFT0YKCiAgICAgICAgIGRlZmF1bHRfbWxwM19ibGFzPXRy
dWUKZWxzZQogIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNv
dWxkIG5vdCBmaW5kIHRoZSB2ZWNMaWIgZnJhbWV3b3JrClNlZSBcYGNvbmZp
Zy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKZWNobyAiJGFzX21lOiBl
cnJvcjogY291bGQgbm90IGZpbmQgdGhlIHZlY0xpYiBmcmFtZXdvcmsKU2Vl
IFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mMjt9CiAgIHsg
KGV4aXQgMSk7IGV4aXQgMTsgfTsgfQpmaQoKICAgIDs7CmVzYWMKCgpjYXNl
ICRhY19jdl91c2VfdmVjbGliIGluCiAgIG1hc3MpCgpjYXQgPj5jb25mZGVm
cy5oIDw8XF9BQ0VPRgojZGVmaW5lIEhBVkVfTElCTUFTUwpfQUNFT0YKCgpm
b3IgYWNfaGVhZGVyIGluIG1hc3N2LmgKZG8KYXNfYWNfSGVhZGVyPWBlY2hv
ICJhY19jdl9oZWFkZXJfJGFjX2hlYWRlciIgfCAkYXNfdHJfc2hgCmlmIGV2
YWwgInRlc3QgXCJcJHskYXNfYWNfSGVhZGVyK3NldH1cIiA9IHNldCI7IHRo
ZW4KICBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19o
ZWFkZXIiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfaGVh
ZGVyLi4uICRFQ0hPX0MiID4mNgppZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2Fj
X0hlYWRlcitzZXR9XCIgPSBzZXQiOyB0aGVuCiAgZWNobyAkRUNIT19OICIo
Y2FjaGVkKSAkRUNIT19DIiA+JjYKZmkKZWNobyAiJGFzX21lOiRMSU5FTk86
IHJlc3VsdDogYGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4m
NQplY2hvICIke0VDSE9fVH1gZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVy
J30nYCIgPiY2CmVsc2UKICAjIElzIHRoZSBoZWFkZXIgY29tcGlsYWJsZT8K
ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nICRhY19oZWFkZXIgdXNh
YmlsaXR5IiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyAkYWNfaGVhZGVy
IHVzYWJpbGl0eS4uLiAkRUNIT19DIiA+JjYKY2F0ID5jb25mdGVzdC4kYWNf
ZXh0IDw8X0FDRU9GCiNsaW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKLyogY29u
ZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0
LiRhY19leHQKY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBl
bmQgY29uZmRlZnMuaC4gICovCiRhY19pbmNsdWRlc19kZWZhdWx0CiNpbmNs
dWRlIDwkYWNfaGVhZGVyPgpfQUNFT0YKcm0gLWYgY29uZnRlc3QuJGFjX29i
amV4dAppZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19j
b21waWxlXCIiKSA+JjUKICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQogIGFj
X3N0YXR1cz0kPwogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNf
c3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgogICAgICAg
ICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwogIHsg
KGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1
CiAgKGV2YWwgJGFjX3RyeSkgMj4mNQogIGFjX3N0YXR1cz0kPwogIGVjaG8g
IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhp
dCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgogIGFjX2hlYWRlcl9jb21waWxl
cj15ZXMKZWxzZQogIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2Fz
OiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCmFj
X2hlYWRlcl9jb21waWxlcj1ubwpmaQpybSAtZiBjb25mdGVzdC4kYWNfb2Jq
ZXh0IGNvbmZ0ZXN0LiRhY19leHQKZWNobyAiJGFzX21lOiRMSU5FTk86IHJl
c3VsdDogJGFjX2hlYWRlcl9jb21waWxlciIgPiY1CmVjaG8gIiR7RUNIT19U
fSRhY19oZWFkZXJfY29tcGlsZXIiID4mNgoKIyBJcyB0aGUgaGVhZGVyIHBy
ZXNlbnQ/CmVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyAkYWNfaGVh
ZGVyIHByZXNlbmNlIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyAkYWNf
aGVhZGVyIHByZXNlbmNlLi4uICRFQ0hPX0MiID4mNgpjYXQgPmNvbmZ0ZXN0
LiRhY19leHQgPDxfQUNFT0YKI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgov
KiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29u
ZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G
Ci8qIGVuZCBjb25mZGVmcy5oLiAgKi8KI2luY2x1ZGUgPCRhY19oZWFkZXI+
Cl9BQ0VPRgppZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRh
Y19jcHAgY29uZnRlc3QuJGFjX2V4dFwiIikgPiY1CiAgKGV2YWwgJGFjX2Nw
cCBjb25mdGVzdC4kYWNfZXh0KSAyPmNvbmZ0ZXN0LmVyMQogIGFjX3N0YXR1
cz0kPwogIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3Qu
ZXJyCiAgcm0gLWYgY29uZnRlc3QuZXIxCiAgY2F0IGNvbmZ0ZXN0LmVyciA+
JjUKICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIg
PiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbDsgdGhlbgog
IGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVuCiAgICBhY19jcHBfZXJy
PSRhY19jX3ByZXByb2Nfd2Fybl9mbGFnCiAgZWxzZQogICAgYWNfY3BwX2Vy
cj0KICBmaQplbHNlCiAgYWNfY3BwX2Vycj15ZXMKZmkKaWYgdGVzdCAteiAi
JGFjX2NwcF9lcnIiOyB0aGVuCiAgYWNfaGVhZGVyX3ByZXByb2M9eWVzCmVs
c2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpz
ZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgogIGFjX2hlYWRl
cl9wcmVwcm9jPW5vCmZpCnJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4k
YWNfZXh0CmVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19oZWFk
ZXJfcHJlcHJvYyIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY19oZWFkZXJfcHJl
cHJvYyIgPiY2CgojIFNvPyAgV2hhdCBhYm91dCB0aGlzIGhlYWRlcj8KY2Fz
ZSAkYWNfaGVhZGVyX2NvbXBpbGVyOiRhY19oZWFkZXJfcHJlcHJvYyBpbgog
IHllczpubyApCiAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5H
OiAkYWNfaGVhZGVyOiBhY2NlcHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVj
dGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjUKZWNobyAiJGFzX21lOiBX
QVJOSU5HOiAkYWNfaGVhZGVyOiBhY2NlcHRlZCBieSB0aGUgY29tcGlsZXIs
IHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjI7fQogICAgeyBl
Y2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogcHJv
Y2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1bHQiID4mNQpl
Y2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByb2NlZWRpbmcg
d2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjI7fQogICAgKAog
ICAgICBjYXQgPDxcX0FTQk9YCiMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSAjIwojIyBSZXBvcnQgdGhpcyB0byBidWctYXV0b2Nv
bmZAZ251Lm9yZy4gIyMKIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tICMjCl9BU0JPWAogICAgKSB8CiAgICAgIHNlZCAicy9eLyRh
c19tZTogV0FSTklORzogICAgIC8iID4mMgogICAgOzsKICBubzp5ZXMgKQog
ICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRl
cjogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjUKZWNobyAi
JGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcmVzZW50IGJ1dCBjYW5u
b3QgYmUgY29tcGlsZWQiID4mMjt9CiAgICB7IGVjaG8gIiRhc19tZTokTElO
RU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBjaGVjayBmb3IgbWlzc2luZyBw
cmVyZXF1aXNpdGUgaGVhZGVycz8iID4mNQplY2hvICIkYXNfbWU6IFdBUk5J
Tkc6ICRhY19oZWFkZXI6IGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0
ZSBoZWFkZXJzPyIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86
IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJl
cHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjUKZWNobyAiJGFzX21lOiBXQVJOSU5H
OiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3Nv
cidzIHJlc3VsdCIgPiYyO30KICAgICgKICAgICAgY2F0IDw8XF9BU0JPWAoj
IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKIyMg
UmVwb3J0IHRoaXMgdG8gYnVnLWF1dG9jb25mQGdudS5vcmcuICMjCiMjIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwpfQVNCT1gK
ICAgICkgfAogICAgICBzZWQgInMvXi8kYXNfbWU6IFdBUk5JTkc6ICAgICAv
IiA+JjIKICAgIDs7CmVzYWMKZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr
aW5nIGZvciAkYWNfaGVhZGVyIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2lu
ZyBmb3IgJGFjX2hlYWRlci4uLiAkRUNIT19DIiA+JjYKaWYgZXZhbCAidGVz
dCBcIlwkeyRhc19hY19IZWFkZXIrc2V0fVwiID0gc2V0IjsgdGhlbgogIGVj
aG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBldmFs
ICIkYXNfYWNfSGVhZGVyPSRhY19oZWFkZXJfcHJlcHJvYyIKZmkKZWNobyAi
JGFzX21lOiRMSU5FTk86IHJlc3VsdDogYGV2YWwgZWNobyAnJHsnJGFzX2Fj
X0hlYWRlcid9J2AiID4mNQplY2hvICIke0VDSE9fVH1gZXZhbCBlY2hvICck
eyckYXNfYWNfSGVhZGVyJ30nYCIgPiY2CgpmaQppZiB0ZXN0IGBldmFsIGVj
aG8gJyR7JyRhc19hY19IZWFkZXInfSdgID0geWVzOyB0aGVuCiAgY2F0ID4+
Y29uZmRlZnMuaCA8PF9BQ0VPRgojZGVmaW5lIGBlY2hvICJIQVZFXyRhY19o
ZWFkZXIiIHwgJGFzX3RyX2NwcGAgMQpfQUNFT0YKCmZpCgpkb25lCgogICAg
IExJQlM9Ii1sbWFzc3ZwNF82NCAke0xJQlN9IgogICAgIDs7CmVzYWMKCmVj
aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgcXVpY2tuZXRfdGVz
dGRhdGEgZGlyIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgcXVp
Y2tuZXRfdGVzdGRhdGEgZGlyLi4uICRFQ0hPX0MiID4mNgppZiB0ZXN0IC1m
ICRhY19jdl90ZXN0ZGF0YS9zbWFsbC5wZmlsZTsgdGhlbgogICAgZWNobyAi
JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3Rlc3RkYXRhIiA+JjUK
ZWNobyAiJHtFQ0hPX1R9JGFjX2N2X3Rlc3RkYXRhIiA+JjYKZWxzZQogICAg
ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm90IGZvdW5kIiA+JjUK
ZWNobyAiJHtFQ0hPX1R9bm90IGZvdW5kIiA+JjYKZmkKCgplY2hvICIkYXNf
bWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFkZXIgZmlsZXMi
ID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVy
IGZpbGVzLi4uICRFQ0hPX0MiID4mNgppZiB0ZXN0ICIke2FjX2N2X2hlYWRl
cl9zdGRjK3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2Fj
aGVkKSAkRUNIT19DIiA+JjYKZWxzZQogIGNhdCA+Y29uZnRlc3QuJGFjX2V4
dCA8PF9BQ0VPRgojbGluZSAkTElORU5PICJjb25maWd1cmUiCi8qIGNvbmZk
ZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4k
YWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5k
IGNvbmZkZWZzLmguICAqLwojaW5jbHVkZSA8c3RkbGliLmg+CiNpbmNsdWRl
IDxzdGRhcmcuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgojaW5jbHVkZSA8Zmxv
YXQuaD4KCmludAptYWluICgpCnsKCiAgOwogIHJldHVybiAwOwp9Cl9BQ0VP
RgpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CmlmIHsgKGV2YWwgZWNobyAi
JGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQogIChldmFs
ICRhY19jb21waWxlKSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFz
X21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRh
Y19zdGF0dXMpOyB9ICYmCiAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNv
bmZ0ZXN0LiRhY19vYmpleHQnCiAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJ
TkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKICAoZXZhbCAkYWNfdHJ5KSAyPiY1
CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9
ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0
aGVuCiAgYWNfY3ZfaGVhZGVyX3N0ZGM9eWVzCmVsc2UKICBlY2hvICIkYXNf
bWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNv
bmZ0ZXN0LiRhY19leHQgPiY1CgphY19jdl9oZWFkZXJfc3RkYz1ubwpmaQpy
bSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKCmlm
IHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCiAgIyBTdW5P
UyA0Lnggc3RyaW5nLmggZG9lcyBub3QgZGVjbGFyZSBtZW0qLCBjb250cmFy
eSB0byBBTlNJLgogIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgoj
bGluZSAkTElORU5PICJjb25maWd1cmUiCi8qIGNvbmZkZWZzLmguICAqLwpf
QUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+
PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmgu
ICAqLwojaW5jbHVkZSA8c3RyaW5nLmg+CgpfQUNFT0YKaWYgKGV2YWwgIiRh
Y19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+JjUgfAogICRFR1JFUCAibWVt
Y2hyIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KICA6CmVsc2UKICBhY19jdl9o
ZWFkZXJfc3RkYz1ubwpmaQpybSAtZiBjb25mdGVzdCoKCmZpCgppZiB0ZXN0
ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgogICMgSVNDIDIuMC4y
IHN0ZGxpYi5oIGRvZXMgbm90IGRlY2xhcmUgZnJlZSwgY29udHJhcnkgdG8g
QU5TSS4KICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKI2xpbmUg
JExJTkVOTyAiY29uZmlndXJlIgovKiBjb25mZGVmcy5oLiAgKi8KX0FDRU9G
CmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25m
dGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5oLiAgKi8K
I2luY2x1ZGUgPHN0ZGxpYi5oPgoKX0FDRU9GCmlmIChldmFsICIkYWNfY3Bw
IGNvbmZ0ZXN0LiRhY19leHQiKSAyPiY1IHwKICAkRUdSRVAgImZyZWUiID4v
ZGV2L251bGwgMj4mMTsgdGhlbgogIDoKZWxzZQogIGFjX2N2X2hlYWRlcl9z
dGRjPW5vCmZpCnJtIC1mIGNvbmZ0ZXN0KgoKZmkKCmlmIHRlc3QgJGFjX2N2
X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCiAgIyAvYmluL2NjIGluIElyaXgt
NC4wLjUgZ2V0cyBub24tQU5TSSBjdHlwZSBtYWNyb3MgdW5sZXNzIHVzaW5n
IC1hbnNpLgogIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0
aGVuCiAgOgplbHNlCiAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G
CiNsaW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKLyogY29uZmRlZnMuaC4gICov
Cl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0
ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMu
aC4gICovCiNpbmNsdWRlIDxjdHlwZS5oPgojaWYgKCgnICcgJiAweDBGRikg
PT0gMHgwMjApCiMgZGVmaW5lIElTTE9XRVIoYykgKCdhJyA8PSAoYykgJiYg
KGMpIDw9ICd6JykKIyBkZWZpbmUgVE9VUFBFUihjKSAoSVNMT1dFUihjKSA/
ICdBJyArICgoYykgLSAnYScpIDogKGMpKQojZWxzZQojIGRlZmluZSBJU0xP
V0VSKGMpIFwKICAgICAgICAgICAgICAgICAgICgoJ2EnIDw9IChjKSAmJiAo
YykgPD0gJ2knKSBcCiAgICAgICAgICAgICAgICAgICAgIHx8ICgnaicgPD0g
KGMpICYmIChjKSA8PSAncicpIFwKICAgICAgICAgICAgICAgICAgICAgfHwg
KCdzJyA8PSAoYykgJiYgKGMpIDw9ICd6JykpCiMgZGVmaW5lIFRPVVBQRVIo
YykgKElTTE9XRVIoYykgPyAoKGMpIHwgMHg0MCkgOiAoYykpCiNlbmRpZgoK
I2RlZmluZSBYT1IoZSwgZikgKCgoZSkgJiYgIShmKSkgfHwgKCEoZSkgJiYg
KGYpKSkKaW50Cm1haW4gKCkKewogIGludCBpOwogIGZvciAoaSA9IDA7IGkg
PCAyNTY7IGkrKykKICAgIGlmIChYT1IgKGlzbG93ZXIgKGkpLCBJU0xPV0VS
IChpKSkKICAgICAgICB8fCB0b3VwcGVyIChpKSAhPSBUT1VQUEVSIChpKSkK
ICAgICAgZXhpdCgyKTsKICBleGl0ICgwKTsKfQpfQUNFT0YKcm0gLWYgY29u
ZnRlc3QkYWNfZXhlZXh0CmlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5F
Tk86IFwiJGFjX2xpbmtcIiIpID4mNQogIChldmFsICRhY19saW5rKSAyPiY1
CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9
ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsg
YWNfdHJ5PScuL2NvbmZ0ZXN0JGFjX2V4ZWV4dCcKICB7IChldmFsIGVjaG8g
IiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQogIChldmFsICRh
Y190cnkpIDI+JjUKICBhY19zdGF0dXM9JD8KICBlY2hvICIkYXNfbWU6JExJ
TkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1
cyk7IH07IH07IHRoZW4KICA6CmVsc2UKICBlY2hvICIkYXNfbWU6IHByb2dy
YW0gZXhpdGVkIHdpdGggc3RhdHVzICRhY19zdGF0dXMiID4mNQplY2hvICIk
YXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8n
IGNvbmZ0ZXN0LiRhY19leHQgPiY1CgooIGV4aXQgJGFjX3N0YXR1cyApCmFj
X2N2X2hlYWRlcl9zdGRjPW5vCmZpCnJtIC1mIGNvcmUgY29yZS4qICouY29y
ZSBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0
LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dApmaQpmaQpmaQplY2hvICIk
YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGVhZGVyX3N0ZGMiID4m
NQplY2hvICIke0VDSE9fVH0kYWNfY3ZfaGVhZGVyX3N0ZGMiID4mNgppZiB0
ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgoKY2F0ID4+Y29u
ZmRlZnMuaCA8PFxfQUNFT0YKI2RlZmluZSBTVERDX0hFQURFUlMgMQpfQUNF
T0YKCmZpCgoKCgoKCgoKCmZvciBhY19oZWFkZXIgaW4gZmNudGwuaCBsaW1p
dHMuaCBmbG9hdC5oIGVycm5vLmggc3lzL3RpbWUuaCBzeXMvcGFyYW0uaCBz
eXMvc3RhdC5oIHN1bm1hdGguaApkbwphc19hY19IZWFkZXI9YGVjaG8gImFj
X2N2X2hlYWRlcl8kYWNfaGVhZGVyIiB8ICRhc190cl9zaGAKaWYgZXZhbCAi
dGVzdCBcIlwkeyRhc19hY19IZWFkZXIrc2V0fVwiID0gc2V0IjsgdGhlbgog
IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX2hlYWRl
ciIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY19oZWFkZXIu
Li4gJEVDSE9fQyIgPiY2CmlmIGV2YWwgInRlc3QgXCJcJHskYXNfYWNfSGVh
ZGVyK3NldH1cIiA9IHNldCI7IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNo
ZWQpICRFQ0hPX0MiID4mNgpmaQplY2hvICIkYXNfbWU6JExJTkVOTzogcmVz
dWx0OiBgZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCIgPiY1CmVj
aG8gIiR7RUNIT19UfWBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdg
IiA+JjYKZWxzZQogICMgSXMgdGhlIGhlYWRlciBjb21waWxhYmxlPwplY2hv
ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgJGFjX2hlYWRlciB1c2FiaWxp
dHkiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nICRhY19oZWFkZXIgdXNh
YmlsaXR5Li4uICRFQ0hPX0MiID4mNgpjYXQgPmNvbmZ0ZXN0LiRhY19leHQg
PDxfQUNFT0YKI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgovKiBjb25mZGVm
cy5oLiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFj
X2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBj
b25mZGVmcy5oLiAgKi8KJGFjX2luY2x1ZGVzX2RlZmF1bHQKI2luY2x1ZGUg
PCRhY19oZWFkZXI+Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0
CmlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBp
bGVcIiIpID4mNQogIChldmFsICRhY19jb21waWxlKSAyPiY1CiAgYWNfc3Rh
dHVzPSQ/CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0
dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCiAgICAgICAgIHsg
YWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCiAgeyAoZXZh
bCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKICAo
ZXZhbCAkYWNfdHJ5KSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFz
X21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRh
Y19zdGF0dXMpOyB9OyB9OyB0aGVuCiAgYWNfaGVhZGVyX2NvbXBpbGVyPXll
cwplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+
JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKYWNfaGVh
ZGVyX2NvbXBpbGVyPW5vCmZpCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQg
Y29uZnRlc3QuJGFjX2V4dAplY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0
OiAkYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFj
X2hlYWRlcl9jb21waWxlciIgPiY2CgojIElzIHRoZSBoZWFkZXIgcHJlc2Vu
dD8KZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nICRhY19oZWFkZXIg
cHJlc2VuY2UiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nICRhY19oZWFk
ZXIgcHJlc2VuY2UuLi4gJEVDSE9fQyIgPiY2CmNhdCA+Y29uZnRlc3QuJGFj
X2V4dCA8PF9BQ0VPRgojbGluZSAkTElORU5PICJjb25maWd1cmUiCi8qIGNv
bmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVz
dC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyog
ZW5kIGNvbmZkZWZzLmguICAqLwojaW5jbHVkZSA8JGFjX2hlYWRlcj4KX0FD
RU9GCmlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2Nw
cCBjb25mdGVzdC4kYWNfZXh0XCIiKSA+JjUKICAoZXZhbCAkYWNfY3BwIGNv
bmZ0ZXN0LiRhY19leHQpIDI+Y29uZnRlc3QuZXIxCiAgYWNfc3RhdHVzPSQ/
CiAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIK
ICBybSAtZiBjb25mdGVzdC5lcjEKICBjYXQgY29uZnRlc3QuZXJyID4mNQog
IGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK
ICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsOyB0aGVuCiAgaWYg
dGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KICAgIGFjX2NwcF9lcnI9JGFj
X2NfcHJlcHJvY193YXJuX2ZsYWcKICBlbHNlCiAgICBhY19jcHBfZXJyPQog
IGZpCmVsc2UKICBhY19jcHBfZXJyPXllcwpmaQppZiB0ZXN0IC16ICIkYWNf
Y3BwX2VyciI7IHRoZW4KICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKZWxzZQog
IGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAn
cy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCiAgYWNfaGVhZGVyX3By
ZXByb2M9bm8KZmkKcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19l
eHQKZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2hlYWRlcl9w
cmVwcm9jIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9wcmVwcm9j
IiA+JjYKCiMgU28/ICBXaGF0IGFib3V0IHRoaXMgaGVhZGVyPwpjYXNlICRh
Y19oZWFkZXJfY29tcGlsZXI6JGFjX2hlYWRlcl9wcmVwcm9jIGluCiAgeWVz
Om5vICkKICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRh
Y19oZWFkZXI6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQg
YnkgdGhlIHByZXByb2Nlc3NvciEiID4mNQplY2hvICIkYXNfbWU6IFdBUk5J
Tkc6ICRhY19oZWFkZXI6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVq
ZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4mMjt9CiAgICB7IGVjaG8g
IiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVk
aW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiY1CmVjaG8g
IiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogcHJvY2VlZGluZyB3aXRo
IHRoZSBwcmVwcm9jZXNzb3IncyByZXN1bHQiID4mMjt9CiAgICAoCiAgICAg
IGNhdCA8PFxfQVNCT1gKIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tICMjCiMjIFJlcG9ydCB0aGlzIHRvIGJ1Zy1hdXRvY29uZkBn
bnUub3JnLiAjIwojIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gIyMKX0FTQk9YCiAgICApIHwKICAgICAgc2VkICJzL14vJGFzX21l
OiBXQVJOSU5HOiAgICAgLyIgPiYyCiAgICA7OwogIG5vOnllcyApCiAgICB7
IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBw
cmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiID4mNQplY2hvICIkYXNf
bWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByZXNlbnQgYnV0IGNhbm5vdCBi
ZSBjb21waWxlZCIgPiYyO30KICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86
IFdBUk5JTkc6ICRhY19oZWFkZXI6IGNoZWNrIGZvciBtaXNzaW5nIHByZXJl
cXVpc2l0ZSBoZWFkZXJzPyIgPiY1CmVjaG8gIiRhc19tZTogV0FSTklORzog
JGFjX2hlYWRlcjogY2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhl
YWRlcnM/IiA+JjI7fQogICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FS
TklORzogJGFjX2hlYWRlcjogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9j
ZXNzb3IncyByZXN1bHQiID4mNQplY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRh
Y19oZWFkZXI6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3Mg
cmVzdWx0IiA+JjI7fQogICAgKAogICAgICBjYXQgPDxcX0FTQk9YCiMjIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwojIyBSZXBv
cnQgdGhpcyB0byBidWctYXV0b2NvbmZAZ251Lm9yZy4gIyMKIyMgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCl9BU0JPWAogICAg
KSB8CiAgICAgIHNlZCAicy9eLyRhc19tZTogV0FSTklORzogICAgIC8iID4m
MgogICAgOzsKZXNhYwplY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcg
Zm9yICRhY19oZWFkZXIiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZv
ciAkYWNfaGVhZGVyLi4uICRFQ0hPX0MiID4mNgppZiBldmFsICJ0ZXN0IFwi
XCR7JGFzX2FjX0hlYWRlcitzZXR9XCIgPSBzZXQiOyB0aGVuCiAgZWNobyAk
RUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZWxzZQogIGV2YWwgIiRh
c19hY19IZWFkZXI9JGFjX2hlYWRlcl9wcmVwcm9jIgpmaQplY2hvICIkYXNf
bWU6JExJTkVOTzogcmVzdWx0OiBgZXZhbCBlY2hvICckeyckYXNfYWNfSGVh
ZGVyJ30nYCIgPiY1CmVjaG8gIiR7RUNIT19UfWBldmFsIGVjaG8gJyR7JyRh
c19hY19IZWFkZXInfSdgIiA+JjYKCmZpCmlmIHRlc3QgYGV2YWwgZWNobyAn
JHsnJGFzX2FjX0hlYWRlcid9J2AgPSB5ZXM7IHRoZW4KICBjYXQgPj5jb25m
ZGVmcy5oIDw8X0FDRU9GCiNkZWZpbmUgYGVjaG8gIkhBVkVfJGFjX2hlYWRl
ciIgfCAkYXNfdHJfY3BwYCAxCl9BQ0VPRgoKZmkKCmRvbmUKCgojIENoZWNr
cyBmb3IgdHlwZWRlZnMsIHN0cnVjdHVyZXMsIGFuZCBjb21waWxlciBjaGFy
YWN0ZXJpc3RpY3MuCmVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBm
b3IgYW4gQU5TSSBDLWNvbmZvcm1pbmcgY29uc3QiID4mNQplY2hvICRFQ0hP
X04gImNoZWNraW5nIGZvciBhbiBBTlNJIEMtY29uZm9ybWluZyBjb25zdC4u
LiAkRUNIT19DIiA+JjYKaWYgdGVzdCAiJHthY19jdl9jX2NvbnN0K3NldH0i
ID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19D
IiA+JjYKZWxzZQogIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgoj
bGluZSAkTElORU5PICJjb25maWd1cmUiCi8qIGNvbmZkZWZzLmguICAqLwpf
QUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+
PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmgu
ICAqLwoKaW50Cm1haW4gKCkKewovKiBGSVhNRTogSW5jbHVkZSB0aGUgY29t
bWVudHMgc3VnZ2VzdGVkIGJ5IFBhdWwuICovCiNpZm5kZWYgX19jcGx1c3Bs
dXMKICAvKiBVbHRyaXggbWlwcyBjYyByZWplY3RzIHRoaXMuICAqLwogIHR5
cGVkZWYgaW50IGNoYXJzZXRbMl07CiAgY29uc3QgY2hhcnNldCB4OwogIC8q
IFN1bk9TIDQuMS4xIGNjIHJlamVjdHMgdGhpcy4gICovCiAgY2hhciBjb25z
dCAqY29uc3QgKmNjcDsKICBjaGFyICoqcDsKICAvKiBORUMgU1ZSNC4wLjIg
bWlwcyBjYyByZWplY3RzIHRoaXMuICAqLwogIHN0cnVjdCBwb2ludCB7aW50
IHgsIHk7fTsKICBzdGF0aWMgc3RydWN0IHBvaW50IGNvbnN0IHplcm8gPSB7
MCwwfTsKICAvKiBBSVggWEwgQyAxLjAyLjAuMCByZWplY3RzIHRoaXMuCiAg
ICAgSXQgZG9lcyBub3QgbGV0IHlvdSBzdWJ0cmFjdCBvbmUgY29uc3QgWCog
cG9pbnRlciBmcm9tIGFub3RoZXIgaW4KICAgICBhbiBhcm0gb2YgYW4gaWYt
ZXhwcmVzc2lvbiB3aG9zZSBpZi1wYXJ0IGlzIG5vdCBhIGNvbnN0YW50CiAg
ICAgZXhwcmVzc2lvbiAqLwogIGNvbnN0IGNoYXIgKmcgPSAic3RyaW5nIjsK
ICBjY3AgPSAmZyArIChnID8gZy1nIDogMCk7CiAgLyogSFBVWCA3LjAgY2Mg
cmVqZWN0cyB0aGVzZS4gKi8KICArK2NjcDsKICBwID0gKGNoYXIqKikgY2Nw
OwogIGNjcCA9IChjaGFyIGNvbnN0ICpjb25zdCAqKSBwOwogIHsgLyogU0NP
IDMuMnY0IGNjIHJlamVjdHMgdGhpcy4gICovCiAgICBjaGFyICp0OwogICAg
Y2hhciBjb25zdCAqcyA9IDAgPyAoY2hhciAqKSAwIDogKGNoYXIgY29uc3Qg
KikgMDsKCiAgICAqdCsrID0gMDsKICB9CiAgeyAvKiBTb21lb25lIHRoaW5r
cyB0aGUgU3VuIHN1cHBvc2VkbHktQU5TSSBjb21waWxlciB3aWxsIHJlamVj
dCB0aGlzLiAgKi8KICAgIGludCB4W10gPSB7MjUsIDE3fTsKICAgIGNvbnN0
IGludCAqZm9vID0gJnhbMF07CiAgICArK2ZvbzsKICB9CiAgeyAvKiBTdW4g
U0MxLjAgQU5TSSBjb21waWxlciByZWplY3RzIHRoaXMgLS0gYnV0IG5vdCB0
aGUgYWJvdmUuICovCiAgICB0eXBlZGVmIGNvbnN0IGludCAqaXB0cjsKICAg
IGlwdHIgcCA9IDA7CiAgICArK3A7CiAgfQogIHsgLyogQUlYIFhMIEMgMS4w
Mi4wLjAgcmVqZWN0cyB0aGlzIHNheWluZwogICAgICAgImsuYyIsIGxpbmUg
Mi4yNzogMTUwNi0wMjUgKFMpIE9wZXJhbmQgbXVzdCBiZSBhIG1vZGlmaWFi
bGUgbHZhbHVlLiAqLwogICAgc3RydWN0IHMgeyBpbnQgajsgY29uc3QgaW50
ICphcFszXTsgfTsKICAgIHN0cnVjdCBzICpiOyBiLT5qID0gNTsKICB9CiAg
eyAvKiBVTFRSSVgtMzIgVjMuMSAoUmV2IDkpIHZjYyByZWplY3RzIHRoaXMg
Ki8KICAgIGNvbnN0IGludCBmb28gPSAxMDsKICB9CiNlbmRpZgoKICA7CiAg
cmV0dXJuIDA7Cn0KX0FDRU9GCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQK
aWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGls
ZVwiIikgPiY1CiAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKICBhY19zdGF0
dXM9JD8KICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1
cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKICAgICAgICAgeyBh
Y190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKICB7IChldmFs
IGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQogIChl
dmFsICRhY190cnkpIDI+JjUKICBhY19zdGF0dXM9JD8KICBlY2hvICIkYXNf
bWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFj
X3N0YXR1cyk7IH07IH07IHRoZW4KICBhY19jdl9jX2NvbnN0PXllcwplbHNl
CiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2Vk
ICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKYWNfY3ZfY19jb25z
dD1ubwpmaQpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRh
Y19leHQKZmkKZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2
X2NfY29uc3QiID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3ZfY19jb25zdCIg
PiY2CmlmIHRlc3QgJGFjX2N2X2NfY29uc3QgPSBubzsgdGhlbgoKY2F0ID4+
Y29uZmRlZnMuaCA8PFxfQUNFT0YKI2RlZmluZSBjb25zdApfQUNFT0YKCmZp
CgplY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGlubGluZSIg
PiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIGlubGluZS4uLiAkRUNI
T19DIiA+JjYKaWYgdGVzdCAiJHthY19jdl9jX2lubGluZStzZXR9IiA9IHNl
dDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2
CmVsc2UKICBhY19jdl9jX2lubGluZT1ubwpmb3IgYWNfa3cgaW4gaW5saW5l
IF9faW5saW5lX18gX19pbmxpbmU7IGRvCiAgY2F0ID5jb25mdGVzdC4kYWNf
ZXh0IDw8X0FDRU9GCiNsaW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKLyogY29u
ZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0
LiRhY19leHQKY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBl
bmQgY29uZmRlZnMuaC4gICovCiNpZm5kZWYgX19jcGx1c3BsdXMKdHlwZWRl
ZiBpbnQgZm9vX3Q7CnN0YXRpYyAkYWNfa3cgZm9vX3Qgc3RhdGljX2ZvbyAo
KSB7cmV0dXJuIDA7IH0KJGFjX2t3IGZvb190IGZvbyAoKSB7cmV0dXJuIDA7
IH0KI2VuZGlmCgpfQUNFT0YKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dApp
ZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxl
XCIiKSA+JjUKICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQogIGFjX3N0YXR1
cz0kPwogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVz
IiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgogICAgICAgICB7IGFj
X3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwogIHsgKGV2YWwg
ZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CiAgKGV2
YWwgJGFjX3RyeSkgMj4mNQogIGFjX3N0YXR1cz0kPwogIGVjaG8gIiRhc19t
ZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNf
c3RhdHVzKTsgfTsgfTsgdGhlbgogIGFjX2N2X2NfaW5saW5lPSRhY19rdzsg
YnJlYWsKZWxzZQogIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2Fz
OiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCmZp
CnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dApk
b25lCgpmaQplY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3Zf
Y19pbmxpbmUiID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3ZfY19pbmxpbmUi
ID4mNgpjYXNlICRhY19jdl9jX2lubGluZSBpbgogIGlubGluZSB8IHllcykg
OzsKICBubykKY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKI2RlZmluZSBp
bmxpbmUKX0FDRU9GCiA7OwogICopICBjYXQgPj5jb25mZGVmcy5oIDw8X0FD
RU9GCiNkZWZpbmUgaW5saW5lICRhY19jdl9jX2lubGluZQpfQUNFT0YKIDs7
CmVzYWMKCmVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVy
IGJ5dGUgb3JkZXJpbmcgaXMgYmlnZW5kaWFuIiA+JjUKZWNobyAkRUNIT19O
ICJjaGVja2luZyB3aGV0aGVyIGJ5dGUgb3JkZXJpbmcgaXMgYmlnZW5kaWFu
Li4uICRFQ0hPX0MiID4mNgppZiB0ZXN0ICIke2FjX2N2X2NfYmlnZW5kaWFu
K3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAk
RUNIT19DIiA+JjYKZWxzZQogICMgU2VlIGlmIHN5cy9wYXJhbS5oIGRlZmlu
ZXMgdGhlIEJZVEVfT1JERVIgbWFjcm8uCmNhdCA+Y29uZnRlc3QuJGFjX2V4
dCA8PF9BQ0VPRgojbGluZSAkTElORU5PICJjb25maWd1cmUiCi8qIGNvbmZk
ZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4k
YWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5k
IGNvbmZkZWZzLmguICAqLwojaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiNpbmNs
dWRlIDxzeXMvcGFyYW0uaD4KCmludAptYWluICgpCnsKI2lmICFCWVRFX09S
REVSIHx8ICFCSUdfRU5ESUFOIHx8ICFMSVRUTEVfRU5ESUFOCiBib2d1cyBl
bmRpYW4gbWFjcm9zCiNlbmRpZgoKICA7CiAgcmV0dXJuIDA7Cn0KX0FDRU9G
CnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKaWYgeyAoZXZhbCBlY2hvICIk
YXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CiAgKGV2YWwg
JGFjX2NvbXBpbGUpIDI+JjUKICBhY19zdGF0dXM9JD8KICBlY2hvICIkYXNf
bWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFj
X3N0YXR1cyk7IH0gJiYKICAgICAgICAgeyBhY190cnk9J3Rlc3QgLXMgY29u
ZnRlc3QuJGFjX29iamV4dCcKICB7IChldmFsIGVjaG8gIiRhc19tZTokTElO
RU5POiBcIiRhY190cnlcIiIpID4mNQogIChldmFsICRhY190cnkpIDI+JjUK
ICBhY19zdGF0dXM9JD8KICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0g
JGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRo
ZW4KICAjIEl0IGRvZXM7IG5vdyBzZWUgd2hldGhlciBpdCBkZWZpbmVkIHRv
IEJJR19FTkRJQU4gb3Igbm90LgpjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxf
QUNFT0YKI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgovKiBjb25mZGVmcy5o
LiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4
dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25m
ZGVmcy5oLiAgKi8KI2luY2x1ZGUgPHN5cy90eXBlcy5oPgojaW5jbHVkZSA8
c3lzL3BhcmFtLmg+CgppbnQKbWFpbiAoKQp7CiNpZiBCWVRFX09SREVSICE9
IEJJR19FTkRJQU4KIG5vdCBiaWcgZW5kaWFuCiNlbmRpZgoKICA7CiAgcmV0
dXJuIDA7Cn0KX0FDRU9GCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKaWYg
eyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwi
IikgPiY1CiAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKICBhY19zdGF0dXM9
JD8KICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIg
PiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKICAgICAgICAgeyBhY190
cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKICB7IChldmFsIGVj
aG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQogIChldmFs
ICRhY190cnkpIDI+JjUKICBhY19zdGF0dXM9JD8KICBlY2hvICIkYXNfbWU6
JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0
YXR1cyk7IH07IH07IHRoZW4KICBhY19jdl9jX2JpZ2VuZGlhbj15ZXMKZWxz
ZQogIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNl
ZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCmFjX2N2X2NfYmln
ZW5kaWFuPW5vCmZpCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl
c3QuJGFjX2V4dAplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3Jh
bSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4m
NQoKIyBJdCBkb2VzIG5vdDsgY29tcGlsZSBhIHRlc3QgcHJvZ3JhbS4KaWYg
dGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4KICAjIHRyeSB0
byBndWVzcyB0aGUgZW5kaWFubmVzcyBieSBncmVwcGluZyB2YWx1ZXMgaW50
byBhbiBvYmplY3QgZmlsZQogIGFjX2N2X2NfYmlnZW5kaWFuPXVua25vd24K
ICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKI2xpbmUgJExJTkVO
TyAiY29uZmlndXJlIgovKiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBj
b25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVzdC4k
YWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5oLiAgKi8Kc2hvcnQg
YXNjaWlfbW1bXSA9IHsgMHg0MjQ5LCAweDQ3NjUsIDB4NkU0NCwgMHg2OTYx
LCAweDZFNTMsIDB4Nzk1MywgMCB9OwpzaG9ydCBhc2NpaV9paVtdID0geyAw
eDY5NEMsIDB4NTQ1NCwgMHg2NTZDLCAweDZFNDUsIDB4Njk0NCwgMHg2RTYx
LCAwIH07CnZvaWQgX2FzY2lpICgpIHsgY2hhciAqcyA9IChjaGFyICopIGFz
Y2lpX21tOyBzID0gKGNoYXIgKikgYXNjaWlfaWk7IH0Kc2hvcnQgZWJjZGlj
X2lpW10gPSB7IDB4ODlEMywgMHhFM0UzLCAweDg1OTMsIDB4OTVDNSwgMHg4
OUM0LCAweDk1ODEsIDAgfTsKc2hvcnQgZWJjZGljX21tW10gPSB7IDB4QzJD
OSwgMHhDNzg1LCAweDk1QzQsIDB4ODk4MSwgMHg5NUUyLCAweEE4RTIsIDAg
fTsKdm9pZCBfZWJjZGljICgpIHsgY2hhciAqcyA9IChjaGFyICopIGViY2Rp
Y19tbTsgcyA9IChjaGFyICopIGViY2RpY19paTsgfQppbnQKbWFpbiAoKQp7
CiBfYXNjaWkgKCk7IF9lYmNkaWMgKCk7CiAgOwogIHJldHVybiAwOwp9Cl9B
Q0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CmlmIHsgKGV2YWwgZWNo
byAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQogIChl
dmFsICRhY19jb21waWxlKSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAi
JGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0
ICRhY19zdGF0dXMpOyB9ICYmCiAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1z
IGNvbmZ0ZXN0LiRhY19vYmpleHQnCiAgeyAoZXZhbCBlY2hvICIkYXNfbWU6
JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKICAoZXZhbCAkYWNfdHJ5KSAy
PiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwk
PyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9OyB9
OyB0aGVuCiAgaWYgZ3JlcCBCSUdlbkRpYW5TeVMgY29uZnRlc3QuJGFjX29i
amV4dCA+L2Rldi9udWxsIDsgdGhlbgogIGFjX2N2X2NfYmlnZW5kaWFuPXll
cwpmaQppZiBncmVwIExpVFRsZUVuRGlhbiBjb25mdGVzdC4kYWNfb2JqZXh0
ID4vZGV2L251bGwgOyB0aGVuCiAgaWYgdGVzdCAiJGFjX2N2X2NfYmlnZW5k
aWFuIiA9IHVua25vd247IHRoZW4KICAgIGFjX2N2X2NfYmlnZW5kaWFuPW5v
CiAgZWxzZQogICAgIyBmaW5kaW5nIGJvdGggc3RyaW5ncyBpcyB1bmxpa2Vs
eSB0byBoYXBwZW4sIGJ1dCB3aG8ga25vd3M/CiAgICBhY19jdl9jX2JpZ2Vu
ZGlhbj11bmtub3duCiAgZmkKZmkKZWxzZQogIGVjaG8gIiRhc19tZTogZmFp
bGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3Qu
JGFjX2V4dCA+JjUKCmZpCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29u
ZnRlc3QuJGFjX2V4dAplbHNlCiAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8
X0FDRU9GCiNsaW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKLyogY29uZmRlZnMu
aC4gICovCl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19l
eHQKY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQgY29u
ZmRlZnMuaC4gICovCmludAptYWluICgpCnsKICAvKiBBcmUgd2UgbGl0dGxl
IG9yIGJpZyBlbmRpYW4/ICBGcm9tIEhhcmJpc29uJlN0ZWVsZS4gICovCiAg
dW5pb24KICB7CiAgICBsb25nIGw7CiAgICBjaGFyIGNbc2l6ZW9mIChsb25n
KV07CiAgfSB1OwogIHUubCA9IDE7CiAgZXhpdCAodS5jW3NpemVvZiAobG9u
ZykgLSAxXSA9PSAxKTsKfQpfQUNFT0YKcm0gLWYgY29uZnRlc3QkYWNfZXhl
ZXh0CmlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xp
bmtcIiIpID4mNQogIChldmFsICRhY19saW5rKSAyPiY1CiAgYWNfc3RhdHVz
PSQ/CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMi
ID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsgYWNfdHJ5PScuL2Nv
bmZ0ZXN0JGFjX2V4ZWV4dCcKICB7IChldmFsIGVjaG8gIiRhc19tZTokTElO
RU5POiBcIiRhY190cnlcIiIpID4mNQogIChldmFsICRhY190cnkpIDI+JjUK
ICBhY19zdGF0dXM9JD8KICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0g
JGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRo
ZW4KICBhY19jdl9jX2JpZ2VuZGlhbj1ubwplbHNlCiAgZWNobyAiJGFzX21l
OiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAkYWNfc3RhdHVzIiA+JjUK
ZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdz
L14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKKCBleGl0ICRhY19zdGF0
dXMgKQphY19jdl9jX2JpZ2VuZGlhbj15ZXMKZmkKcm0gLWYgY29yZSBjb3Jl
LiogKi5jb3JlIGdtb24ub3V0IGJiLm91dCBjb25mdGVzdCRhY19leGVleHQg
Y29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CmZpCmZpCnJt
IC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dApmaQpl
Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfY19iaWdlbmRp
YW4iID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3ZfY19iaWdlbmRpYW4iID4m
NgpjYXNlICRhY19jdl9jX2JpZ2VuZGlhbiBpbgogIHllcykKCmNhdCA+PmNv
bmZkZWZzLmggPDxcX0FDRU9GCiNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEK
X0FDRU9GCiA7OwogIG5vKQogICAgIDs7CiAgKikKICAgIHsgeyBlY2hvICIk
YXNfbWU6JExJTkVOTzogZXJyb3I6IHVua25vd24gZW5kaWFubmVzcwpwcmVz
ZXR0aW5nIGFjX2N2X2NfYmlnZW5kaWFuPW5vIChvciB5ZXMpIHdpbGwgaGVs
cCIgPiY1CmVjaG8gIiRhc19tZTogZXJyb3I6IHVua25vd24gZW5kaWFubmVz
cwpwcmVzZXR0aW5nIGFjX2N2X2NfYmlnZW5kaWFuPW5vIChvciB5ZXMpIHdp
bGwgaGVscCIgPiYyO30KICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9IDs7
CmVzYWMKCmVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbG9u
ZyBsb25nIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgbG9uZyBs
b25nLi4uICRFQ0hPX0MiID4mNgppZiB0ZXN0ICIke2FjX2N2X3R5cGVfbG9u
Z19sb25nK3NldH0iID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2Fj
aGVkKSAkRUNIT19DIiA+JjYKZWxzZQogIGNhdCA+Y29uZnRlc3QuJGFjX2V4
dCA8PF9BQ0VPRgojbGluZSAkTElORU5PICJjb25maWd1cmUiCi8qIGNvbmZk
ZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4k
YWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5k
IGNvbmZkZWZzLmguICAqLwokYWNfaW5jbHVkZXNfZGVmYXVsdAppbnQKbWFp
biAoKQp7CmlmICgobG9uZyBsb25nICopIDApCiAgcmV0dXJuIDA7CmlmIChz
aXplb2YgKGxvbmcgbG9uZykpCiAgcmV0dXJuIDA7CiAgOwogIHJldHVybiAw
Owp9Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CmlmIHsgKGV2
YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4m
NQogIChldmFsICRhY19jb21waWxlKSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAg
ZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQog
IChleGl0ICRhY19zdGF0dXMpOyB9ICYmCiAgICAgICAgIHsgYWNfdHJ5PSd0
ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCiAgeyAoZXZhbCBlY2hvICIk
YXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKICAoZXZhbCAkYWNf
dHJ5KSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRMSU5F
Tk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMp
OyB9OyB9OyB0aGVuCiAgYWNfY3ZfdHlwZV9sb25nX2xvbmc9eWVzCmVsc2UK
ICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQg
J3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgphY19jdl90eXBlX2xv
bmdfbG9uZz1ubwpmaQpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0
ZXN0LiRhY19leHQKZmkKZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog
JGFjX2N2X3R5cGVfbG9uZ19sb25nIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFj
X2N2X3R5cGVfbG9uZ19sb25nIiA+JjYKaWYgdGVzdCAkYWNfY3ZfdHlwZV9s
b25nX2xvbmcgPSB5ZXM7IHRoZW4KCmNhdCA+PmNvbmZkZWZzLmggPDxfQUNF
T0YKI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCl9BQ0VPRgoKCmZpCmVjaG8g
IiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgdW5zaWduZWQgbG9uZyBs
b25nIiA+JjUKZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgdW5zaWduZWQg
bG9uZyBsb25nLi4uICRFQ0hPX0MiID4mNgppZiB0ZXN0ICIke2FjX2N2X3R5
cGVfdW5zaWduZWRfbG9uZ19sb25nK3NldH0iID0gc2V0OyB0aGVuCiAgZWNo
byAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZWxzZQogIGNhdCA+
Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgojbGluZSAkTElORU5PICJjb25m
aWd1cmUiCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZz
LmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQg
PDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwokYWNfaW5jbHVkZXNf
ZGVmYXVsdAppbnQKbWFpbiAoKQp7CmlmICgodW5zaWduZWQgbG9uZyBsb25n
ICopIDApCiAgcmV0dXJuIDA7CmlmIChzaXplb2YgKHVuc2lnbmVkIGxvbmcg
bG9uZykpCiAgcmV0dXJuIDA7CiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgpy
bSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CmlmIHsgKGV2YWwgZWNobyAiJGFz
X21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQogIChldmFsICRh
Y19jb21waWxlKSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21l
OiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19z
dGF0dXMpOyB9ICYmCiAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0
ZXN0LiRhY19vYmpleHQnCiAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVO
TzogXCIkYWNfdHJ5XCIiKSA+JjUKICAoZXZhbCAkYWNfdHJ5KSAyPiY1CiAg
YWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRh
Y19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVu
CiAgYWNfY3ZfdHlwZV91bnNpZ25lZF9sb25nX2xvbmc9eWVzCmVsc2UKICBl
Y2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3Mv
Xi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CgphY19jdl90eXBlX3Vuc2ln
bmVkX2xvbmdfbG9uZz1ubwpmaQpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0
IGNvbmZ0ZXN0LiRhY19leHQKZmkKZWNobyAiJGFzX21lOiRMSU5FTk86IHJl
c3VsdDogJGFjX2N2X3R5cGVfdW5zaWduZWRfbG9uZ19sb25nIiA+JjUKZWNo
byAiJHtFQ0hPX1R9JGFjX2N2X3R5cGVfdW5zaWduZWRfbG9uZ19sb25nIiA+
JjYKaWYgdGVzdCAkYWNfY3ZfdHlwZV91bnNpZ25lZF9sb25nX2xvbmcgPSB5
ZXM7IHRoZW4KCmNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKI2RlZmluZSBI
QVZFX1VOU0lHTkVEX0xPTkdfTE9ORyAxCl9BQ0VPRgoKCmZpCgojIENoZWNr
IHdoZXRoZXIgLS1lbmFibGUtbGFyZ2VmaWxlIG9yIC0tZGlzYWJsZS1sYXJn
ZWZpbGUgd2FzIGdpdmVuLgppZiB0ZXN0ICIke2VuYWJsZV9sYXJnZWZpbGUr
c2V0fSIgPSBzZXQ7IHRoZW4KICBlbmFibGV2YWw9IiRlbmFibGVfbGFyZ2Vm
aWxlIgoKZmk7CmlmIHRlc3QgIiRlbmFibGVfbGFyZ2VmaWxlIiAhPSBubzsg
dGhlbgoKICBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHNw
ZWNpYWwgQyBjb21waWxlciBvcHRpb25zIG5lZWRlZCBmb3IgbGFyZ2UgZmls
ZXMiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzcGVjaWFsIEMg
Y29tcGlsZXIgb3B0aW9ucyBuZWVkZWQgZm9yIGxhcmdlIGZpbGVzLi4uICRF
Q0hPX0MiID4mNgppZiB0ZXN0ICIke2FjX2N2X3N5c19sYXJnZWZpbGVfQ0Mr
c2V0fSIgPSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRF
Q0hPX0MiID4mNgplbHNlCiAgYWNfY3Zfc3lzX2xhcmdlZmlsZV9DQz1ubwog
ICAgIGlmIHRlc3QgIiRHQ0MiICE9IHllczsgdGhlbgogICAgICAgYWNfc2F2
ZV9DQz0kQ0MKICAgICAgIHdoaWxlIDo7IGRvCiAgICAgCSAjIElSSVggNi4y
IGFuZCBsYXRlciBkbyBub3Qgc3VwcG9ydCBsYXJnZSBmaWxlcyBieSBkZWZh
dWx0LAogICAgIAkgIyBzbyB1c2UgdGhlIEMgY29tcGlsZXIncyAtbjMyIG9w
dGlvbiBpZiB0aGF0IGhlbHBzLgogICAgICAgICBjYXQgPmNvbmZ0ZXN0LiRh
Y19leHQgPDxfQUNFT0YKI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgovKiBj
b25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRl
c3QuJGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8q
IGVuZCBjb25mZGVmcy5oLiAgKi8KI2luY2x1ZGUgPHN5cy90eXBlcy5oPgog
LyogQ2hlY2sgdGhhdCBvZmZfdCBjYW4gcmVwcmVzZW50IDIqKjYzIC0gMSBj
b3JyZWN0bHkuCiAgICBXZSBjYW4ndCBzaW1wbHkgZGVmaW5lIExBUkdFX09G
Rl9UIHRvIGJlIDkyMjMzNzIwMzY4NTQ3NzU4MDcsCiAgICBzaW5jZSBzb21l
IEMrKyBjb21waWxlcnMgbWFzcXVlcmFkaW5nIGFzIEMgY29tcGlsZXJzCiAg
ICBpbmNvcnJlY3RseSByZWplY3QgOTIyMzM3MjAzNjg1NDc3NTgwNy4gICov
CiNkZWZpbmUgTEFSR0VfT0ZGX1QgKCgob2ZmX3QpIDEgPDwgNjIpIC0gMSAr
ICgob2ZmX3QpIDEgPDwgNjIpKQogIGludCBvZmZfdF9pc19sYXJnZVsoTEFS
R0VfT0ZGX1QgJSAyMTQ3NDgzNjI5ID09IDcyMQoJCSAgICAgICAmJiBMQVJH
RV9PRkZfVCAlIDIxNDc0ODM2NDcgPT0gMSkKCQkgICAgICA/IDEgOiAtMV07
CmludAptYWluICgpCnsKCiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgogICAg
IAkgcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAppZiB7IChldmFsIGVjaG8g
IiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKICAoZXZh
bCAkYWNfY29tcGlsZSkgMj4mNQogIGFjX3N0YXR1cz0kPwogIGVjaG8gIiRh
c19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAk
YWNfc3RhdHVzKTsgfSAmJgogICAgICAgICB7IGFjX3RyeT0ndGVzdCAtcyBj
b25mdGVzdC4kYWNfb2JqZXh0JwogIHsgKGV2YWwgZWNobyAiJGFzX21lOiRM
SU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CiAgKGV2YWwgJGFjX3RyeSkgMj4m
NQogIGFjX3N0YXR1cz0kPwogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8g
PSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsg
dGhlbgogIGJyZWFrCmVsc2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9n
cmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQg
PiY1CgpmaQpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CiAgICAgCSBDQz0i
JENDIC1uMzIiCiAgICAgCSBybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Cmlm
IHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVc
IiIpID4mNQogIChldmFsICRhY19jb21waWxlKSAyPiY1CiAgYWNfc3RhdHVz
PSQ/CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMi
ID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCiAgICAgICAgIHsgYWNf
dHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCiAgeyAoZXZhbCBl
Y2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKICAoZXZh
bCAkYWNfdHJ5KSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21l
OiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19z
dGF0dXMpOyB9OyB9OyB0aGVuCiAgYWNfY3Zfc3lzX2xhcmdlZmlsZV9DQz0n
IC1uMzInOyBicmVhawplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJv
Z3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0
ID4mNQoKZmkKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAogICAgICAgICBi
cmVhawogICAgICAgZG9uZQogICAgICAgQ0M9JGFjX3NhdmVfQ0MKICAgICAg
IHJtIC1mIGNvbmZ0ZXN0LiRhY19leHQKICAgIGZpCmZpCmVjaG8gIiRhc19t
ZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9zeXNfbGFyZ2VmaWxlX0NDIiA+
JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2N2X3N5c19sYXJnZWZpbGVfQ0MiID4m
NgogIGlmIHRlc3QgIiRhY19jdl9zeXNfbGFyZ2VmaWxlX0NDIiAhPSBubzsg
dGhlbgogICAgQ0M9JENDJGFjX2N2X3N5c19sYXJnZWZpbGVfQ0MKICBmaQoK
ICBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIF9GSUxFX09G
RlNFVF9CSVRTIHZhbHVlIG5lZWRlZCBmb3IgbGFyZ2UgZmlsZXMiID4mNQpl
Y2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBfRklMRV9PRkZTRVRfQklUUyB2
YWx1ZSBuZWVkZWQgZm9yIGxhcmdlIGZpbGVzLi4uICRFQ0hPX0MiID4mNgpp
ZiB0ZXN0ICIke2FjX2N2X3N5c19maWxlX29mZnNldF9iaXRzK3NldH0iID0g
c2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+
JjYKZWxzZQogIHdoaWxlIDo7IGRvCiAgYWNfY3Zfc3lzX2ZpbGVfb2Zmc2V0
X2JpdHM9bm8KICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKI2xp
bmUgJExJTkVOTyAiY29uZmlndXJlIgovKiBjb25mZGVmcy5oLiAgKi8KX0FD
RU9GCmNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5j
b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5oLiAg
Ki8KI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogLyogQ2hlY2sgdGhhdCBvZmZf
dCBjYW4gcmVwcmVzZW50IDIqKjYzIC0gMSBjb3JyZWN0bHkuCiAgICBXZSBj
YW4ndCBzaW1wbHkgZGVmaW5lIExBUkdFX09GRl9UIHRvIGJlIDkyMjMzNzIw
MzY4NTQ3NzU4MDcsCiAgICBzaW5jZSBzb21lIEMrKyBjb21waWxlcnMgbWFz
cXVlcmFkaW5nIGFzIEMgY29tcGlsZXJzCiAgICBpbmNvcnJlY3RseSByZWpl
Y3QgOTIyMzM3MjAzNjg1NDc3NTgwNy4gICovCiNkZWZpbmUgTEFSR0VfT0ZG
X1QgKCgob2ZmX3QpIDEgPDwgNjIpIC0gMSArICgob2ZmX3QpIDEgPDwgNjIp
KQogIGludCBvZmZfdF9pc19sYXJnZVsoTEFSR0VfT0ZGX1QgJSAyMTQ3NDgz
NjI5ID09IDcyMQoJCSAgICAgICAmJiBMQVJHRV9PRkZfVCAlIDIxNDc0ODM2
NDcgPT0gMSkKCQkgICAgICA/IDEgOiAtMV07CmludAptYWluICgpCnsKCiAg
OwogIHJldHVybiAwOwp9Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2Jq
ZXh0CmlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2Nv
bXBpbGVcIiIpID4mNQogIChldmFsICRhY19jb21waWxlKSAyPiY1CiAgYWNf
c3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19z
dGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCiAgICAgICAg
IHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCiAgeyAo
ZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUK
ICAoZXZhbCAkYWNfdHJ5KSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAi
JGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0
ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCiAgYnJlYWsKZWxzZQogIGVjaG8g
IiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wg
LycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCmZpCnJtIC1mIGNvbmZ0ZXN0LiRh
Y19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAogIGNhdCA+Y29uZnRlc3QuJGFj
X2V4dCA8PF9BQ0VPRgojbGluZSAkTElORU5PICJjb25maWd1cmUiCi8qIGNv
bmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVz
dC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyog
ZW5kIGNvbmZkZWZzLmguICAqLwojZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRT
IDY0CiNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KIC8qIENoZWNrIHRoYXQgb2Zm
X3QgY2FuIHJlcHJlc2VudCAyKio2MyAtIDEgY29ycmVjdGx5LgogICAgV2Ug
Y2FuJ3Qgc2ltcGx5IGRlZmluZSBMQVJHRV9PRkZfVCB0byBiZSA5MjIzMzcy
MDM2ODU0Nzc1ODA3LAogICAgc2luY2Ugc29tZSBDKysgY29tcGlsZXJzIG1h
c3F1ZXJhZGluZyBhcyBDIGNvbXBpbGVycwogICAgaW5jb3JyZWN0bHkgcmVq
ZWN0IDkyMjMzNzIwMzY4NTQ3NzU4MDcuICAqLwojZGVmaW5lIExBUkdFX09G
Rl9UICgoKG9mZl90KSAxIDw8IDYyKSAtIDEgKyAoKG9mZl90KSAxIDw8IDYy
KSkKICBpbnQgb2ZmX3RfaXNfbGFyZ2VbKExBUkdFX09GRl9UICUgMjE0NzQ4
MzYyOSA9PSA3MjEKCQkgICAgICAgJiYgTEFSR0VfT0ZGX1QgJSAyMTQ3NDgz
NjQ3ID09IDEpCgkJICAgICAgPyAxIDogLTFdOwppbnQKbWFpbiAoKQp7Cgog
IDsKICByZXR1cm4gMDsKfQpfQUNFT0YKcm0gLWYgY29uZnRlc3QuJGFjX29i
amV4dAppZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19j
b21waWxlXCIiKSA+JjUKICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQogIGFj
X3N0YXR1cz0kPwogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNf
c3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgogICAgICAg
ICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwogIHsg
KGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1
CiAgKGV2YWwgJGFjX3RyeSkgMj4mNQogIGFjX3N0YXR1cz0kPwogIGVjaG8g
IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhp
dCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgogIGFjX2N2X3N5c19maWxlX29m
ZnNldF9iaXRzPTY0OyBicmVhawplbHNlCiAgZWNobyAiJGFzX21lOiBmYWls
ZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4k
YWNfZXh0ID4mNQoKZmkKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25m
dGVzdC4kYWNfZXh0CiAgYnJlYWsKZG9uZQpmaQplY2hvICIkYXNfbWU6JExJ
TkVOTzogcmVzdWx0OiAkYWNfY3Zfc3lzX2ZpbGVfb2Zmc2V0X2JpdHMiID4m
NQplY2hvICIke0VDSE9fVH0kYWNfY3Zfc3lzX2ZpbGVfb2Zmc2V0X2JpdHMi
ID4mNgppZiB0ZXN0ICIkYWNfY3Zfc3lzX2ZpbGVfb2Zmc2V0X2JpdHMiICE9
IG5vOyB0aGVuCgpjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCiNkZWZpbmUg
X0ZJTEVfT0ZGU0VUX0JJVFMgJGFjX2N2X3N5c19maWxlX29mZnNldF9iaXRz
Cl9BQ0VPRgoKZmkKcm0gLWYgY29uZnRlc3QqCiAgZWNobyAiJGFzX21lOiRM
SU5FTk86IGNoZWNraW5nIGZvciBfTEFSR0VfRklMRVMgdmFsdWUgbmVlZGVk
IGZvciBsYXJnZSBmaWxlcyIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcg
Zm9yIF9MQVJHRV9GSUxFUyB2YWx1ZSBuZWVkZWQgZm9yIGxhcmdlIGZpbGVz
Li4uICRFQ0hPX0MiID4mNgppZiB0ZXN0ICIke2FjX2N2X3N5c19sYXJnZV9m
aWxlcytzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hl
ZCkgJEVDSE9fQyIgPiY2CmVsc2UKICB3aGlsZSA6OyBkbwogIGFjX2N2X3N5
c19sYXJnZV9maWxlcz1ubwogIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9B
Q0VPRgojbGluZSAkTElORU5PICJjb25maWd1cmUiCi8qIGNvbmZkZWZzLmgu
ICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0
CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZk
ZWZzLmguICAqLwojaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAvKiBDaGVjayB0
aGF0IG9mZl90IGNhbiByZXByZXNlbnQgMioqNjMgLSAxIGNvcnJlY3RseS4K
ICAgIFdlIGNhbid0IHNpbXBseSBkZWZpbmUgTEFSR0VfT0ZGX1QgdG8gYmUg
OTIyMzM3MjAzNjg1NDc3NTgwNywKICAgIHNpbmNlIHNvbWUgQysrIGNvbXBp
bGVycyBtYXNxdWVyYWRpbmcgYXMgQyBjb21waWxlcnMKICAgIGluY29ycmVj
dGx5IHJlamVjdCA5MjIzMzcyMDM2ODU0Nzc1ODA3LiAgKi8KI2RlZmluZSBM
QVJHRV9PRkZfVCAoKChvZmZfdCkgMSA8PCA2MikgLSAxICsgKChvZmZfdCkg
MSA8PCA2MikpCiAgaW50IG9mZl90X2lzX2xhcmdlWyhMQVJHRV9PRkZfVCAl
IDIxNDc0ODM2MjkgPT0gNzIxCgkJICAgICAgICYmIExBUkdFX09GRl9UICUg
MjE0NzQ4MzY0NyA9PSAxKQoJCSAgICAgID8gMSA6IC0xXTsKaW50Cm1haW4g
KCkKewoKICA7CiAgcmV0dXJuIDA7Cn0KX0FDRU9GCnJtIC1mIGNvbmZ0ZXN0
LiRhY19vYmpleHQKaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzog
XCIkYWNfY29tcGlsZVwiIikgPiY1CiAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+
JjUKICBhY19zdGF0dXM9JD8KICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/
ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYK
ICAgICAgICAgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4
dCcKICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlc
IiIpID4mNQogIChldmFsICRhY190cnkpIDI+JjUKICBhY19zdGF0dXM9JD8K
ICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1
CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KICBicmVhawplbHNl
CiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2Vk
ICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKZmkKcm0gLWYgY29u
ZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CiAgY2F0ID5jb25m
dGVzdC4kYWNfZXh0IDw8X0FDRU9GCiNsaW5lICRMSU5FTk8gImNvbmZpZ3Vy
ZSIKLyogY29uZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+
PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9B
Q0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCiNkZWZpbmUgX0xBUkdFX0ZJ
TEVTIDEKI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogLyogQ2hlY2sgdGhhdCBv
ZmZfdCBjYW4gcmVwcmVzZW50IDIqKjYzIC0gMSBjb3JyZWN0bHkuCiAgICBX
ZSBjYW4ndCBzaW1wbHkgZGVmaW5lIExBUkdFX09GRl9UIHRvIGJlIDkyMjMz
NzIwMzY4NTQ3NzU4MDcsCiAgICBzaW5jZSBzb21lIEMrKyBjb21waWxlcnMg
bWFzcXVlcmFkaW5nIGFzIEMgY29tcGlsZXJzCiAgICBpbmNvcnJlY3RseSBy
ZWplY3QgOTIyMzM3MjAzNjg1NDc3NTgwNy4gICovCiNkZWZpbmUgTEFSR0Vf
T0ZGX1QgKCgob2ZmX3QpIDEgPDwgNjIpIC0gMSArICgob2ZmX3QpIDEgPDwg
NjIpKQogIGludCBvZmZfdF9pc19sYXJnZVsoTEFSR0VfT0ZGX1QgJSAyMTQ3
NDgzNjI5ID09IDcyMQoJCSAgICAgICAmJiBMQVJHRV9PRkZfVCAlIDIxNDc0
ODM2NDcgPT0gMSkKCQkgICAgICA/IDEgOiAtMV07CmludAptYWluICgpCnsK
CiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC4kYWNf
b2JqZXh0CmlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFj
X2NvbXBpbGVcIiIpID4mNQogIChldmFsICRhY19jb21waWxlKSAyPiY1CiAg
YWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRh
Y19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCiAgICAg
ICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCiAg
eyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+
JjUKICAoZXZhbCAkYWNfdHJ5KSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNo
byAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChl
eGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCiAgYWNfY3Zfc3lzX2xhcmdl
X2ZpbGVzPTE7IGJyZWFrCmVsc2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBw
cm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19l
eHQgPiY1CgpmaQpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0
LiRhY19leHQKICBicmVhawpkb25lCmZpCmVjaG8gIiRhc19tZTokTElORU5P
OiByZXN1bHQ6ICRhY19jdl9zeXNfbGFyZ2VfZmlsZXMiID4mNQplY2hvICIk
e0VDSE9fVH0kYWNfY3Zfc3lzX2xhcmdlX2ZpbGVzIiA+JjYKaWYgdGVzdCAi
JGFjX2N2X3N5c19sYXJnZV9maWxlcyIgIT0gbm87IHRoZW4KCmNhdCA+PmNv
bmZkZWZzLmggPDxfQUNFT0YKI2RlZmluZSBfTEFSR0VfRklMRVMgJGFjX2N2
X3N5c19sYXJnZV9maWxlcwpfQUNFT0YKCmZpCnJtIC1mIGNvbmZ0ZXN0Kgpm
aQoKCgoKZm9yIGFjX2Z1bmMgaW4gdnByaW50Zgpkbwphc19hY192YXI9YGVj
aG8gImFjX2N2X2Z1bmNfJGFjX2Z1bmMiIHwgJGFzX3RyX3NoYAplY2hvICIk
YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19mdW5jIiA+JjUKZWNo
byAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX2Z1bmMuLi4gJEVDSE9fQyIg
PiY2CmlmIGV2YWwgInRlc3QgXCJcJHskYXNfYWNfdmFyK3NldH1cIiA9IHNl
dCI7IHRoZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4m
NgplbHNlCiAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCiNsaW5l
ICRMSU5FTk8gImNvbmZpZ3VyZSIKLyogY29uZmRlZnMuaC4gICovCl9BQ0VP
RgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29u
ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICov
Ci8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5k
IGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKICAgIHdoaWNoIGNhbiBjb25m
bGljdCB3aXRoIGNoYXIgJGFjX2Z1bmMgKCk7IGJlbG93LgogICAgUHJlZmVy
IDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZp
bmVkLCBzaW5jZQogICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVl
c3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KI2lmZGVmIF9fU1REQ19fCiMgaW5j
bHVkZSA8bGltaXRzLmg+CiNlbHNlCiMgaW5jbHVkZSA8YXNzZXJ0Lmg+CiNl
bmRpZgovKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUg
dG8gYXZvaWQgYW4gZXJyb3IuICAqLwojaWZkZWYgX19jcGx1c3BsdXMKZXh0
ZXJuICJDIgp7CiNlbmRpZgovKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBt
aWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCiAgIGJ1aWx0
aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGls
bCBhcHBseS4gICovCmNoYXIgJGFjX2Z1bmMgKCk7Ci8qIFRoZSBHTlUgQyBs
aWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGlt
cGxlbWVudHMKICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29t
ZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCiAgICBzb21ldGhpbmcg
c3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFs
aWFzLiAgKi8KI2lmIGRlZmluZWQgKF9fc3R1Yl8kYWNfZnVuYykgfHwgZGVm
aW5lZCAoX19zdHViX19fJGFjX2Z1bmMpCmNob2tlIG1lCiNlbHNlCmNoYXIg
KCpmKSAoKSA9ICRhY19mdW5jOwojZW5kaWYKI2lmZGVmIF9fY3BsdXNwbHVz
Cn0KI2VuZGlmCgppbnQKbWFpbiAoKQp7CnJldHVybiBmICE9ICRhY19mdW5j
OwogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKcm0gLWYgY29uZnRlc3QuJGFj
X29iamV4dCBjb25mdGVzdCRhY19leGVleHQKaWYgeyAoZXZhbCBlY2hvICIk
YXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1CiAgKGV2YWwgJGFj
X2xpbmspIDI+JjUKICBhY19zdGF0dXM9JD8KICBlY2hvICIkYXNfbWU6JExJ
TkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1
cyk7IH0gJiYKICAgICAgICAgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3Qk
YWNfZXhlZXh0JwogIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwi
JGFjX3RyeVwiIikgPiY1CiAgKGV2YWwgJGFjX3RyeSkgMj4mNQogIGFjX3N0
YXR1cz0kPwogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3Rh
dHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgogIGV2
YWwgIiRhc19hY192YXI9eWVzIgplbHNlCiAgZWNobyAiJGFzX21lOiBmYWls
ZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4k
YWNfZXh0ID4mNQoKZXZhbCAiJGFzX2FjX3Zhcj1ubyIKZmkKcm0gLWYgY29u
ZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3Qu
JGFjX2V4dApmaQplY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBgZXZh
bCBlY2hvICckeyckYXNfYWNfdmFyJ30nYCIgPiY1CmVjaG8gIiR7RUNIT19U
fWBldmFsIGVjaG8gJyR7JyRhc19hY192YXInfSdgIiA+JjYKaWYgdGVzdCBg
ZXZhbCBlY2hvICckeyckYXNfYWNfdmFyJ30nYCA9IHllczsgdGhlbgogIGNh
dCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKI2RlZmluZSBgZWNobyAiSEFWRV8k
YWNfZnVuYyIgfCAkYXNfdHJfY3BwYCAxCl9BQ0VPRgoKZWNobyAiJGFzX21l
OiRMSU5FTk86IGNoZWNraW5nIGZvciBfZG9wcm50IiA+JjUKZWNobyAkRUNI
T19OICJjaGVja2luZyBmb3IgX2RvcHJudC4uLiAkRUNIT19DIiA+JjYKaWYg
dGVzdCAiJHthY19jdl9mdW5jX19kb3BybnQrc2V0fSIgPSBzZXQ7IHRoZW4K
ICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCiAg
Y2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCiNsaW5lICRMSU5FTk8g
ImNvbmZpZ3VyZSIKLyogY29uZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQgY29u
ZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRlc3QuJGFj
X2V4dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCi8qIFN5c3Rl
bSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxs
eSBmZXcgcHJvdG90eXBlcywKICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRo
IGNoYXIgX2RvcHJudCAoKTsgYmVsb3cuCiAgICBQcmVmZXIgPGxpbWl0cy5o
PiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNl
CiAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBj
b21waWxlcnMuICAqLwojaWZkZWYgX19TVERDX18KIyBpbmNsdWRlIDxsaW1p
dHMuaD4KI2Vsc2UKIyBpbmNsdWRlIDxhc3NlcnQuaD4KI2VuZGlmCi8qIE92
ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBh
biBlcnJvci4gICovCiNpZmRlZiBfX2NwbHVzcGx1cwpleHRlcm4gIkMiCnsK
I2VuZGlmCi8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNo
IHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKICAgYnVpbHRpbiBhbmQgdGhl
biBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAg
Ki8KY2hhciBfZG9wcm50ICgpOwovKiBUaGUgR05VIEMgbGlicmFyeSBkZWZp
bmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCiAg
ICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25z
IGFyZSBhY3R1YWxseSBuYW1lZAogICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdp
dGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCiNp
ZiBkZWZpbmVkIChfX3N0dWJfX2RvcHJudCkgfHwgZGVmaW5lZCAoX19zdHVi
X19fX2RvcHJudCkKY2hva2UgbWUKI2Vsc2UKY2hhciAoKmYpICgpID0gX2Rv
cHJudDsKI2VuZGlmCiNpZmRlZiBfX2NwbHVzcGx1cwp9CiNlbmRpZgoKaW50
Cm1haW4gKCkKewpyZXR1cm4gZiAhPSBfZG9wcm50OwogIDsKICByZXR1cm4g
MDsKfQpfQUNFT0YKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz
dCRhY19leGVleHQKaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzog
XCIkYWNfbGlua1wiIikgPiY1CiAgKGV2YWwgJGFjX2xpbmspIDI+JjUKICBh
Y19zdGF0dXM9JD8KICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFj
X3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKICAgICAg
ICAgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0JwogIHsg
KGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1
CiAgKGV2YWwgJGFjX3RyeSkgMj4mNQogIGFjX3N0YXR1cz0kPwogIGVjaG8g
IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhp
dCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgogIGFjX2N2X2Z1bmNfX2RvcHJu
dD15ZXMKZWxzZQogIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2Fz
OiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCmFj
X2N2X2Z1bmNfX2RvcHJudD1ubwpmaQpybSAtZiBjb25mdGVzdC4kYWNfb2Jq
ZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CmZpCmVj
aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9mdW5jX19kb3By
bnQiID4mNQplY2hvICIke0VDSE9fVH0kYWNfY3ZfZnVuY19fZG9wcm50IiA+
JjYKaWYgdGVzdCAkYWNfY3ZfZnVuY19fZG9wcm50ID0geWVzOyB0aGVuCgpj
YXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgojZGVmaW5lIEhBVkVfRE9QUk5U
IDEKX0FDRU9GCgpmaQoKZmkKZG9uZQoKCmVjaG8gIiRhc19tZTokTElORU5P
OiBjaGVja2luZyBmb3IgX0xBUkdFRklMRV9TT1VSQ0UgdmFsdWUgbmVlZGVk
IGZvciBsYXJnZSBmaWxlcyIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcg
Zm9yIF9MQVJHRUZJTEVfU09VUkNFIHZhbHVlIG5lZWRlZCBmb3IgbGFyZ2Ug
ZmlsZXMuLi4gJEVDSE9fQyIgPiY2CmlmIHRlc3QgIiR7YWNfY3Zfc3lzX2xh
cmdlZmlsZV9zb3VyY2Urc2V0fSIgPSBzZXQ7IHRoZW4KICBlY2hvICRFQ0hP
X04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCiAgd2hpbGUgOjsgZG8K
ICBhY19jdl9zeXNfbGFyZ2VmaWxlX3NvdXJjZT1ubwogIGNhdCA+Y29uZnRl
c3QuJGFjX2V4dCA8PF9BQ0VPRgojbGluZSAkTElORU5PICJjb25maWd1cmUi
Ci8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0IGNvbmZkZWZzLmggPj5j
b25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF
T0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwojaW5jbHVkZSA8c3RkaW8uaD4K
aW50Cm1haW4gKCkKewpyZXR1cm4gIWZzZWVrbzsKICA7CiAgcmV0dXJuIDA7
Cn0KX0FDRU9GCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKaWYgeyAoZXZh
bCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1
CiAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKICBhY19zdGF0dXM9JD8KICBl
Y2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAg
KGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKICAgICAgICAgeyBhY190cnk9J3Rl
c3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKICB7IChldmFsIGVjaG8gIiRh
c19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQogIChldmFsICRhY190
cnkpIDI+JjUKICBhY19zdGF0dXM9JD8KICBlY2hvICIkYXNfbWU6JExJTkVO
TzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7
IH07IH07IHRoZW4KICBicmVhawplbHNlCiAgZWNobyAiJGFzX21lOiBmYWls
ZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4k
YWNfZXh0ID4mNQoKZmkKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25m
dGVzdC4kYWNfZXh0CiAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G
CiNsaW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKLyogY29uZmRlZnMuaC4gICov
Cl9BQ0VPRgpjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0
ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMu
aC4gICovCiNkZWZpbmUgX0xBUkdFRklMRV9TT1VSQ0UgMQojaW5jbHVkZSA8
c3RkaW8uaD4KaW50Cm1haW4gKCkKewpyZXR1cm4gIWZzZWVrbzsKICA7CiAg
cmV0dXJuIDA7Cn0KX0FDRU9GCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQK
aWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGls
ZVwiIikgPiY1CiAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKICBhY19zdGF0
dXM9JD8KICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1
cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKICAgICAgICAgeyBh
Y190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKICB7IChldmFs
IGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQogIChl
dmFsICRhY190cnkpIDI+JjUKICBhY19zdGF0dXM9JD8KICBlY2hvICIkYXNf
bWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFj
X3N0YXR1cyk7IH07IH07IHRoZW4KICBhY19jdl9zeXNfbGFyZ2VmaWxlX3Nv
dXJjZT0xOyBicmVhawplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJv
Z3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0
ID4mNQoKZmkKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4k
YWNfZXh0CiAgYnJlYWsKZG9uZQpmaQplY2hvICIkYXNfbWU6JExJTkVOTzog
cmVzdWx0OiAkYWNfY3Zfc3lzX2xhcmdlZmlsZV9zb3VyY2UiID4mNQplY2hv
ICIke0VDSE9fVH0kYWNfY3Zfc3lzX2xhcmdlZmlsZV9zb3VyY2UiID4mNgpp
ZiB0ZXN0ICIkYWNfY3Zfc3lzX2xhcmdlZmlsZV9zb3VyY2UiICE9IG5vOyB0
aGVuCgpjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCiNkZWZpbmUgX0xBUkdF
RklMRV9TT1VSQ0UgJGFjX2N2X3N5c19sYXJnZWZpbGVfc291cmNlCl9BQ0VP
RgoKZmkKcm0gLWYgY29uZnRlc3QqCgojIFdlIHVzZWQgdG8gdHJ5IGRlZmlu
aW5nIF9YT1BFTl9TT1VSQ0U9NTAwIHRvbywgdG8gd29yayBhcm91bmQgYSBi
dWcKIyBpbiBnbGliYyAyLjEuMywgYnV0IHRoYXQgYnJlYWtzIHRvbyBtYW55
IG90aGVyIHRoaW5ncy4KIyBJZiB5b3Ugd2FudCBmc2Vla28gYW5kIGZ0ZWxs
byB3aXRoIGdsaWJjLCB1cGdyYWRlIHRvIGEgZml4ZWQgZ2xpYmMuCmVjaG8g
IiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgZnNlZWtvIiA+JjUKZWNo
byAkRUNIT19OICJjaGVja2luZyBmb3IgZnNlZWtvLi4uICRFQ0hPX0MiID4m
NgppZiB0ZXN0ICIke2FjX2N2X2Z1bmNfZnNlZWtvK3NldH0iID0gc2V0OyB0
aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKZWxz
ZQogIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgojbGluZSAkTElO
RU5PICJjb25maWd1cmUiCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YKY2F0
IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0ZXN0
LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwojaW5j
bHVkZSA8c3RkaW8uaD4KaW50Cm1haW4gKCkKewpyZXR1cm4gZnNlZWtvICYm
IGZzZWVrbyAoc3RkaW4sIDAsIDApOwogIDsKICByZXR1cm4gMDsKfQpfQUNF
T0YKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVl
eHQKaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlu
a1wiIikgPiY1CiAgKGV2YWwgJGFjX2xpbmspIDI+JjUKICBhY19zdGF0dXM9
JD8KICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIg
PiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKICAgICAgICAgeyBhY190
cnk9J3Rlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0JwogIHsgKGV2YWwgZWNo
byAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CiAgKGV2YWwg
JGFjX3RyeSkgMj4mNQogIGFjX3N0YXR1cz0kPwogIGVjaG8gIiRhc19tZTok
TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3Rh
dHVzKTsgfTsgfTsgdGhlbgogIGFjX2N2X2Z1bmNfZnNlZWtvPXllcwplbHNl
CiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2Vk
ICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKYWNfY3ZfZnVuY19m
c2Vla289bm8KZmkKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz
dCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dApmaQplY2hvICIkYXNfbWU6
JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfZnVuY19mc2Vla28iID4mNQplY2hv
ICIke0VDSE9fVH0kYWNfY3ZfZnVuY19mc2Vla28iID4mNgppZiB0ZXN0ICRh
Y19jdl9mdW5jX2ZzZWVrbyA9IHllczsgdGhlbgoKY2F0ID4+Y29uZmRlZnMu
aCA8PFxfQUNFT0YKI2RlZmluZSBIQVZFX0ZTRUVLTyAxCl9BQ0VPRgoKZmkK
CgoKCgoKCgoKCgoKZm9yIGFjX2Z1bmMgaW4gc3RyZXJyb3Igc3Ryc3RyIGZz
ZXRwb3MgZ2V0aG9zdG5hbWUgZ2V0dGltZW9mZGF5IGZpbGVubyBpc2F0dHkg
c2V0X25ld19oYW5kbGVyIHBvcGVuIHNxcnRmIGV4cGYKZG8KYXNfYWNfdmFy
PWBlY2hvICJhY19jdl9mdW5jXyRhY19mdW5jIiB8ICRhc190cl9zaGAKZWNo
byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfZnVuYyIgPiY1
CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY19mdW5jLi4uICRFQ0hP
X0MiID4mNgppZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2FjX3ZhcitzZXR9XCIg
PSBzZXQiOyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19D
IiA+JjYKZWxzZQogIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgoj
bGluZSAkTElORU5PICJjb25maWd1cmUiCi8qIGNvbmZkZWZzLmguICAqLwpf
QUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+
PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmgu
ICAqLwovKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9z
IGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCiAgICB3aGljaCBjYW4g
Y29uZmxpY3Qgd2l0aCBjaGFyICRhY19mdW5jICgpOyBiZWxvdy4KICAgIFBy
ZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMg
ZGVmaW5lZCwgc2luY2UKICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24g
ZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCiNpZmRlZiBfX1NURENfXwoj
IGluY2x1ZGUgPGxpbWl0cy5oPgojZWxzZQojIGluY2x1ZGUgPGFzc2VydC5o
PgojZW5kaWYKLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJvdG90
eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8KI2lmZGVmIF9fY3BsdXNwbHVz
CmV4dGVybiAiQyIKewojZW5kaWYKLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBp
bnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMgogICBi
dWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQg
c3RpbGwgYXBwbHkuICAqLwpjaGFyICRhY19mdW5jICgpOwovKiBUaGUgR05V
IEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBp
dCBpbXBsZW1lbnRzCiAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4g
IFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAogICAgc29tZXRo
aW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBh
biBhbGlhcy4gICovCiNpZiBkZWZpbmVkIChfX3N0dWJfJGFjX2Z1bmMpIHx8
IGRlZmluZWQgKF9fc3R1Yl9fXyRhY19mdW5jKQpjaG9rZSBtZQojZWxzZQpj
aGFyICgqZikgKCkgPSAkYWNfZnVuYzsKI2VuZGlmCiNpZmRlZiBfX2NwbHVz
cGx1cwp9CiNlbmRpZgoKaW50Cm1haW4gKCkKewpyZXR1cm4gZiAhPSAkYWNf
ZnVuYzsKICA7CiAgcmV0dXJuIDA7Cn0KX0FDRU9GCnJtIC1mIGNvbmZ0ZXN0
LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CmlmIHsgKGV2YWwgZWNo
byAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQogIChldmFs
ICRhY19saW5rKSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21l
OiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19z
dGF0dXMpOyB9ICYmCiAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0
ZXN0JGFjX2V4ZWV4dCcKICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5P
OiBcIiRhY190cnlcIiIpID4mNQogIChldmFsICRhY190cnkpIDI+JjUKICBh
Y19zdGF0dXM9JD8KICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFj
X3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4K
ICBldmFsICIkYXNfYWNfdmFyPXllcyIKZWxzZQogIGVjaG8gIiRhc19tZTog
ZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRl
c3QuJGFjX2V4dCA+JjUKCmV2YWwgIiRhc19hY192YXI9bm8iCmZpCnJtIC1m
IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0
ZXN0LiRhY19leHQKZmkKZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog
YGV2YWwgZWNobyAnJHsnJGFzX2FjX3Zhcid9J2AiID4mNQplY2hvICIke0VD
SE9fVH1gZXZhbCBlY2hvICckeyckYXNfYWNfdmFyJ30nYCIgPiY2CmlmIHRl
c3QgYGV2YWwgZWNobyAnJHsnJGFzX2FjX3Zhcid9J2AgPSB5ZXM7IHRoZW4K
ICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCiNkZWZpbmUgYGVjaG8gIkhB
VkVfJGFjX2Z1bmMiIHwgJGFzX3RyX2NwcGAgMQpfQUNFT0YKCmZpCmRvbmUK
CmVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIGRyYW5k
NDggaXMgZGVjbGFyZWQiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIHdo
ZXRoZXIgZHJhbmQ0OCBpcyBkZWNsYXJlZC4uLiAkRUNIT19DIiA+JjYKaWYg
dGVzdCAiJHthY19jdl9oYXZlX2RlY2xfZHJhbmQ0OCtzZXR9IiA9IHNldDsg
dGhlbgogIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVs
c2UKICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKI2xpbmUgJExJ
TkVOTyAiY29uZmlndXJlIgovKiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNh
dCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVz
dC4kYWNfZXh0IDw8X0FDRU9GCi8qIGVuZCBjb25mZGVmcy5oLiAgKi8KJGFj
X2luY2x1ZGVzX2RlZmF1bHQKaW50Cm1haW4gKCkKewojaWZuZGVmIGRyYW5k
NDgKICBjaGFyICpwID0gKGNoYXIgKikgZHJhbmQ0ODsKI2VuZGlmCgogIDsK
ICByZXR1cm4gMDsKfQpfQUNFT0YKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4
dAppZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21w
aWxlXCIiKSA+JjUKICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQogIGFjX3N0
YXR1cz0kPwogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3Rh
dHVzIiA+JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgogICAgICAgICB7
IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwogIHsgKGV2
YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CiAg
KGV2YWwgJGFjX3RyeSkgMj4mNQogIGFjX3N0YXR1cz0kPwogIGVjaG8gIiRh
c19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAk
YWNfc3RhdHVzKTsgfTsgfTsgdGhlbgogIGFjX2N2X2hhdmVfZGVjbF9kcmFu
ZDQ4PXllcwplbHNlCiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3
YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoK
YWNfY3ZfaGF2ZV9kZWNsX2RyYW5kNDg9bm8KZmkKcm0gLWYgY29uZnRlc3Qu
JGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CmZpCmVjaG8gIiRhc19tZTok
TElORU5POiByZXN1bHQ6ICRhY19jdl9oYXZlX2RlY2xfZHJhbmQ0OCIgPiY1
CmVjaG8gIiR7RUNIT19UfSRhY19jdl9oYXZlX2RlY2xfZHJhbmQ0OCIgPiY2
CmlmIHRlc3QgJGFjX2N2X2hhdmVfZGVjbF9kcmFuZDQ4ID0geWVzOyB0aGVu
CgpjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCiNkZWZpbmUgSEFWRV9ERUNM
X0RSQU5ENDggMQpfQUNFT0YKCgplbHNlCiAgY2F0ID4+Y29uZmRlZnMuaCA8
PF9BQ0VPRgojZGVmaW5lIEhBVkVfREVDTF9EUkFORDQ4IDAKX0FDRU9GCgoK
ZmkKZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgc3Jh
bmQ0OCBpcyBkZWNsYXJlZCIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcg
d2hldGhlciBzcmFuZDQ4IGlzIGRlY2xhcmVkLi4uICRFQ0hPX0MiID4mNgpp
ZiB0ZXN0ICIke2FjX2N2X2hhdmVfZGVjbF9zcmFuZDQ4K3NldH0iID0gc2V0
OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYK
ZWxzZQogIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgojbGluZSAk
TElORU5PICJjb25maWd1cmUiCi8qIGNvbmZkZWZzLmguICAqLwpfQUNFT0YK
Y2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+PmNvbmZ0
ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmguICAqLwok
YWNfaW5jbHVkZXNfZGVmYXVsdAppbnQKbWFpbiAoKQp7CiNpZm5kZWYgc3Jh
bmQ0OAogIGNoYXIgKnAgPSAoY2hhciAqKSBzcmFuZDQ4OwojZW5kaWYKCiAg
OwogIHJldHVybiAwOwp9Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2Jq
ZXh0CmlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2Nv
bXBpbGVcIiIpID4mNQogIChldmFsICRhY19jb21waWxlKSAyPiY1CiAgYWNf
c3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19z
dGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCiAgICAgICAg
IHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCiAgeyAo
ZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUK
ICAoZXZhbCAkYWNfdHJ5KSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAi
JGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0
ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCiAgYWNfY3ZfaGF2ZV9kZWNsX3Ny
YW5kNDg9eWVzCmVsc2UKICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFt
IHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1
CgphY19jdl9oYXZlX2RlY2xfc3JhbmQ0OD1ubwpmaQpybSAtZiBjb25mdGVz
dC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKZmkKZWNobyAiJGFzX21l
OiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2hhdmVfZGVjbF9zcmFuZDQ4IiA+
JjUKZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hhdmVfZGVjbF9zcmFuZDQ4IiA+
JjYKaWYgdGVzdCAkYWNfY3ZfaGF2ZV9kZWNsX3NyYW5kNDggPSB5ZXM7IHRo
ZW4KCmNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKI2RlZmluZSBIQVZFX0RF
Q0xfU1JBTkQ0OCAxCl9BQ0VPRgoKCmVsc2UKICBjYXQgPj5jb25mZGVmcy5o
IDw8X0FDRU9GCiNkZWZpbmUgSEFWRV9ERUNMX1NSQU5ENDggMApfQUNFT0YK
CgpmaQplY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciBm
c2VlayBpcyBkZWNsYXJlZCIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcg
d2hldGhlciBmc2VlayBpcyBkZWNsYXJlZC4uLiAkRUNIT19DIiA+JjYKaWYg
dGVzdCAiJHthY19jdl9oYXZlX2RlY2xfZnNlZWsrc2V0fSIgPSBzZXQ7IHRo
ZW4KICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgplbHNl
CiAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCiNsaW5lICRMSU5F
Tk8gImNvbmZpZ3VyZSIKLyogY29uZmRlZnMuaC4gICovCl9BQ0VPRgpjYXQg
Y29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKY2F0ID4+Y29uZnRlc3Qu
JGFjX2V4dCA8PF9BQ0VPRgovKiBlbmQgY29uZmRlZnMuaC4gICovCiRhY19p
bmNsdWRlc19kZWZhdWx0CmludAptYWluICgpCnsKI2lmbmRlZiBmc2Vlawog
IGNoYXIgKnAgPSAoY2hhciAqKSBmc2VlazsKI2VuZGlmCgogIDsKICByZXR1
cm4gMDsKfQpfQUNFT0YKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAppZiB7
IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIi
KSA+JjUKICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQogIGFjX3N0YXR1cz0k
PwogIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+
JjUKICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgogICAgICAgICB7IGFjX3Ry
eT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwogIHsgKGV2YWwgZWNo
byAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CiAgKGV2YWwg
JGFjX3RyeSkgMj4mNQogIGFjX3N0YXR1cz0kPwogIGVjaG8gIiRhc19tZTok
TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAoZXhpdCAkYWNfc3Rh
dHVzKTsgfTsgfTsgdGhlbgogIGFjX2N2X2hhdmVfZGVjbF9mc2Vlaz15ZXMK
ZWxzZQogIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1
CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKCmFjX2N2X2hh
dmVfZGVjbF9mc2Vlaz1ubwpmaQpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0
IGNvbmZ0ZXN0LiRhY19leHQKZmkKZWNobyAiJGFzX21lOiRMSU5FTk86IHJl
c3VsdDogJGFjX2N2X2hhdmVfZGVjbF9mc2VlayIgPiY1CmVjaG8gIiR7RUNI
T19UfSRhY19jdl9oYXZlX2RlY2xfZnNlZWsiID4mNgppZiB0ZXN0ICRhY19j
dl9oYXZlX2RlY2xfZnNlZWsgPSB5ZXM7IHRoZW4KCmNhdCA+PmNvbmZkZWZz
LmggPDxfQUNFT0YKI2RlZmluZSBIQVZFX0RFQ0xfRlNFRUsgMQpfQUNFT0YK
CgplbHNlCiAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgojZGVmaW5lIEhB
VkVfREVDTF9GU0VFSyAwCl9BQ0VPRgoKCmZpCmVjaG8gIiRhc19tZTokTElO
RU5POiBjaGVja2luZyB3aGV0aGVyIHN5c19uZXJyIGlzIGRlY2xhcmVkIiA+
JjUKZWNobyAkRUNIT19OICJjaGVja2luZyB3aGV0aGVyIHN5c19uZXJyIGlz
IGRlY2xhcmVkLi4uICRFQ0hPX0MiID4mNgppZiB0ZXN0ICIke2FjX2N2X2hh
dmVfZGVjbF9zeXNfbmVycitzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVD
SE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBjYXQgPmNvbmZ0
ZXN0LiRhY19leHQgPDxfQUNFT0YKI2xpbmUgJExJTkVOTyAiY29uZmlndXJl
IgovKiBjb25mZGVmcy5oLiAgKi8KX0FDRU9GCmNhdCBjb25mZGVmcy5oID4+
Y29uZnRlc3QuJGFjX2V4dApjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FD
RU9GCi8qIGVuZCBjb25mZGVmcy5oLiAgKi8KJGFjX2luY2x1ZGVzX2RlZmF1
bHQKaW50Cm1haW4gKCkKewojaWZuZGVmIHN5c19uZXJyCiAgY2hhciAqcCA9
IChjaGFyICopIHN5c19uZXJyOwojZW5kaWYKCiAgOwogIHJldHVybiAwOwp9
Cl9BQ0VPRgpybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CmlmIHsgKGV2YWwg
ZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQog
IChldmFsICRhY19jb21waWxlKSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNo
byAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChl
eGl0ICRhY19zdGF0dXMpOyB9ICYmCiAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0
IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCiAgeyAoZXZhbCBlY2hvICIkYXNf
bWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKICAoZXZhbCAkYWNfdHJ5
KSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgZWNobyAiJGFzX21lOiRMSU5FTk86
IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIChleGl0ICRhY19zdGF0dXMpOyB9
OyB9OyB0aGVuCiAgYWNfY3ZfaGF2ZV9kZWNsX3N5c19uZXJyPXllcwplbHNl
CiAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2Vk
ICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKYWNfY3ZfaGF2ZV9k
ZWNsX3N5c19uZXJyPW5vCmZpCnJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQg
Y29uZnRlc3QuJGFjX2V4dApmaQplY2hvICIkYXNfbWU6JExJTkVOTzogcmVz
dWx0OiAkYWNfY3ZfaGF2ZV9kZWNsX3N5c19uZXJyIiA+JjUKZWNobyAiJHtF
Q0hPX1R9JGFjX2N2X2hhdmVfZGVjbF9zeXNfbmVyciIgPiY2CmlmIHRlc3Qg
JGFjX2N2X2hhdmVfZGVjbF9zeXNfbmVyciA9IHllczsgdGhlbgoKY2F0ID4+
Y29uZmRlZnMuaCA8PF9BQ0VPRgojZGVmaW5lIEhBVkVfREVDTF9TWVNfTkVS
UiAxCl9BQ0VPRgoKCmVsc2UKICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9G
CiNkZWZpbmUgSEFWRV9ERUNMX1NZU19ORVJSIDAKX0FDRU9GCgoKZmkKZWNo
byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgc3lzX2Vycmxp
c3QgaXMgZGVjbGFyZWQiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5nIHdo
ZXRoZXIgc3lzX2Vycmxpc3QgaXMgZGVjbGFyZWQuLi4gJEVDSE9fQyIgPiY2
CmlmIHRlc3QgIiR7YWNfY3ZfaGF2ZV9kZWNsX3N5c19lcnJsaXN0K3NldH0i
ID0gc2V0OyB0aGVuCiAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19D
IiA+JjYKZWxzZQogIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgoj
bGluZSAkTElORU5PICJjb25maWd1cmUiCi8qIGNvbmZkZWZzLmguICAqLwpf
QUNFT0YKY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CmNhdCA+
PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLyogZW5kIGNvbmZkZWZzLmgu
ICAqLwokYWNfaW5jbHVkZXNfZGVmYXVsdAppbnQKbWFpbiAoKQp7CiNpZm5k
ZWYgc3lzX2Vycmxpc3QKICBjaGFyICpwID0gKGNoYXIgKikgc3lzX2Vycmxp
c3Q7CiNlbmRpZgoKICA7CiAgcmV0dXJuIDA7Cn0KX0FDRU9GCnJtIC1mIGNv
bmZ0ZXN0LiRhY19vYmpleHQKaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJ
TkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CiAgKGV2YWwgJGFjX2NvbXBp
bGUpIDI+JjUKICBhY19zdGF0dXM9JD8KICBlY2hvICIkYXNfbWU6JExJTkVO
TzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7
IH0gJiYKICAgICAgICAgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFj
X29iamV4dCcKICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRh
Y190cnlcIiIpID4mNQogIChldmFsICRhY190cnkpIDI+JjUKICBhY19zdGF0
dXM9JD8KICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1
cyIgPiY1CiAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KICBhY19j
dl9oYXZlX2RlY2xfc3lzX2Vycmxpc3Q9eWVzCmVsc2UKICBlY2hvICIkYXNf
bWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNv
bmZ0ZXN0LiRhY19leHQgPiY1CgphY19jdl9oYXZlX2RlY2xfc3lzX2Vycmxp
c3Q9bm8KZmkKcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4k
YWNfZXh0CmZpCmVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19j
dl9oYXZlX2RlY2xfc3lzX2Vycmxpc3QiID4mNQplY2hvICIke0VDSE9fVH0k
YWNfY3ZfaGF2ZV9kZWNsX3N5c19lcnJsaXN0IiA+JjYKaWYgdGVzdCAkYWNf
Y3ZfaGF2ZV9kZWNsX3N5c19lcnJsaXN0ID0geWVzOyB0aGVuCgpjYXQgPj5j
b25mZGVmcy5oIDw8X0FDRU9GCiNkZWZpbmUgSEFWRV9ERUNMX1NZU19FUlJM
SVNUIDEKX0FDRU9GCgoKZWxzZQogIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNF
T0YKI2RlZmluZSBIQVZFX0RFQ0xfU1lTX0VSUkxJU1QgMApfQUNFT0YKCgpm
aQoKCgoKCgoKCnRlc3RkYXRhX2Rpcj0ke2FjX2N2X3Rlc3RkYXRhfQoKCmFs
bF9saWJzPQppZiB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSAieWVzIjsgdGhl
bgogICAgYWxsX2xpYnM9IiR7YWxsX2xpYnN9IFwkKGFsbF9zaGxpYnMpIgpm
aQppZiB0ZXN0ICIkZW5hYmxlX3N0YXRpYyIgPSAieWVzIjsgdGhlbgogICAg
YWxsX2xpYnM9IiR7YWxsX2xpYnN9IFwkKGFsbF9zdGxpYnMpIgpmaQoKCmZ1
bGxTcmNEaXI9YGNkICRzcmNkaXI7IHB3ZGAKZnVsbEJ1aWxkRGlyPWBwd2Rg
ClFOX0JVSUxEX0xJQl9TUEVDPSItTCR7ZnVsbEJ1aWxkRGlyfSAtbHF1aWNr
bmV0MyAke0xJQlN9IgpRTl9JTlNUQUxMX0xJQl9TUEVDPSItTCR7bGliZGly
fSAtbHF1aWNrbmV0MyAke0xJQlN9IgpRTl9CVUlMRF9JTkNfU1BFQz0iLUkk
e2Z1bGxCdWlsZERpcn0gLUkke2Z1bGxTcmNEaXJ9IgpRTl9JTlNUQUxMX0lO
Q19TUEVDPSItSSR7aW5jbHVkZWRpcn0vcXVpY2tuZXQzIgoKIyBSZWNvcmQg
aW4gdGhlIGNhY2hlIHdoZXJlIG90aGVyIHBlZXIgcGFja2FnZXMgY2FuIGZp
bmQgdXMKZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHFuIHBhdGgg
aXMgc2F2ZWQgaW4gY2FjaGUiID4mNQplY2hvICRFQ0hPX04gImNoZWNraW5n
IHFuIHBhdGggaXMgc2F2ZWQgaW4gY2FjaGUuLi4gJEVDSE9fQyIgPiY2Cmlm
IHRlc3QgIiR7YWNkcHdlX2N2X3BhdGhfcW4rc2V0fSIgPSBzZXQ7IHRoZW4K
ICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCiAg
YWNkcHdlX2N2X3BhdGhfcW49JGZ1bGxCdWlsZERpcgpmaQoKIyBEbyBpdCBh
Z2FpbiBpbiBjYXNlIGl0IGRpZG4ndCBkbyBpdCBiZWZvcmUgYmVjYXVzZSBp
dCB3YXMgYWxyZWFkeSBpbiBjYWNoZQphY2Rwd2VfY3ZfcGF0aF9xbj0kZnVs
bEJ1aWxkRGlyCmVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY2Rw
d2VfY3ZfcGF0aF9xbiIgPiY1CmVjaG8gIiR7RUNIT19UfSRhY2Rwd2VfY3Zf
cGF0aF9xbiIgPiY2CgojIFJlY29yZCB0aGUgYnVpbGQgZGlyZWN0b3J5IGZv
ciB0aGUgYmluYXJpZXMKCiMgQXBwZW5kIG91ciBidWlsZCBkaXIgdG8gdGhl
IGdyb3dpbmcgbGlzdCBvZiBidWlsZCBsaWIgcGF0aCBkaXJzCmVjaG8gIiRh
c19tZTokTElORU5POiBjaGVja2luZyBkcnNwZWVjaCBidWlsZCBsaWIgcGF0
aCIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZHJzcGVlY2ggYnVpbGQg
bGliIHBhdGguLi4gJEVDSE9fQyIgPiY2CmlmIHRlc3QgIiR7YWNkcHdlX2N2
X2Vudl9saWJfcGF0aCtzZXR9IiA9IHNldDsgdGhlbgogIGVjaG8gJEVDSE9f
TiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CmVsc2UKICBhY2Rwd2VfY3ZfZW52
X2xpYl9wYXRoPQpmaQplY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk
YWNkcHdlX2N2X2Vudl9saWJfcGF0aCIgPiY1CmVjaG8gIiR7RUNIT19UfSRh
Y2Rwd2VfY3ZfZW52X2xpYl9wYXRoIiA+JjYKaWYgZWNobyAkYWNkcHdlX2N2
X2Vudl9saWJfcGF0aCB8IGZncmVwIC12ICRmdWxsQnVpbGREaXIgPiAvZGV2
L251bGwgOyB0aGVuCiAgICBhY2Rwd2VfY3ZfZW52X2xpYl9wYXRoPSIkZnVs
bEJ1aWxkRGlyICRhY2Rwd2VfY3ZfZW52X2xpYl9wYXRoIgpmaQoKIyBBcHBl
bmQgb3VyIGJ1aWxkIGRpciB0byB0aGUgZ3Jvd2luZyBsaXN0IG9mIGJ1aWxk
IHBhdGggZGlycwplY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZHJz
cGVlY2ggYnVpbGQgcGF0aCIgPiY1CmVjaG8gJEVDSE9fTiAiY2hlY2tpbmcg
ZHJzcGVlY2ggYnVpbGQgcGF0aC4uLiAkRUNIT19DIiA+JjYKaWYgdGVzdCAi
JHthY2Rwd2VfY3ZfZW52X3BhdGgrc2V0fSIgPSBzZXQ7IHRoZW4KICBlY2hv
ICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgplbHNlCiAgYWNkcHdl
X2N2X2Vudl9wYXRoPQpmaQplY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0
OiAkYWNkcHdlX2N2X2Vudl9wYXRoIiA+JjUKZWNobyAiJHtFQ0hPX1R9JGFj
ZHB3ZV9jdl9lbnZfcGF0aCIgPiY2CmlmIGVjaG8gJGFjZHB3ZV9jdl9lbnZf
cGF0aCB8IGZncmVwIC12ICRmdWxsQnVpbGREaXIgPiAvZGV2L251bGwgOyB0
aGVuCiAgICBhY2Rwd2VfY3ZfZW52X3BhdGg9IiRmdWxsQnVpbGREaXIgJGFj
ZHB3ZV9jdl9lbnZfcGF0aCIKZmkKCgoKCgoKCiMgVGhlIGV4cGFuZGVkIHNv
dXJjZSBkaXIgZm9yIHRoZSBwYWNrYWdlIGNvbmZpZyBmaWxlClFOX1NSQ0RJ
Uj1gY2QgJHNyY2RpcjsgcHdkYAoKCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGFjX2NvbmZpZ19maWxlcz0iJGFjX2NvbmZpZ19maWxlcyBRTjND
b25maWcuc2ggTWFrZWZpbGUgdGVzdHN1aXRlL01ha2VmaWxlIHBlcmZzdWl0
ZS9NYWtlZmlsZSBxdWlja25ldDMucGMgcXVpY2tuZXQzLWluc3RhbGwucGMg
cW5kby5zaCB0ZXN0ZGF0YV9xbm5vcm0uc2ggdGVzdGRhdGFfcW5zdHJuLnNo
IHRlc3RkYXRhX3Fuc2Z3ZC5zaCB0ZXN0ZGF0YV9xbnN0cm5fcHMuc2ggdGVz
dGRhdGFfcW5zZndkX3BzLnNoIgogICAgICAgICAgYWNfY29uZmlnX2NvbW1h
bmRzPSIkYWNfY29uZmlnX2NvbW1hbmRzIGRlZmF1bHQiCmNhdCA+Y29uZmNh
Y2hlIDw8XF9BQ0VPRgojIFRoaXMgZmlsZSBpcyBhIHNoZWxsIHNjcmlwdCB0
aGF0IGNhY2hlcyB0aGUgcmVzdWx0cyBvZiBjb25maWd1cmUKIyB0ZXN0cyBy
dW4gb24gdGhpcyBzeXN0ZW0gc28gdGhleSBjYW4gYmUgc2hhcmVkIGJldHdl
ZW4gY29uZmlndXJlCiMgc2NyaXB0cyBhbmQgY29uZmlndXJlIHJ1bnMsIHNl
ZSBjb25maWd1cmUncyBvcHRpb24gLS1jb25maWctY2FjaGUuCiMgSXQgaXMg
bm90IHVzZWZ1bCBvbiBvdGhlciBzeXN0ZW1zLiAgSWYgaXQgY29udGFpbnMg
cmVzdWx0cyB5b3UgZG9uJ3QKIyB3YW50IHRvIGtlZXAsIHlvdSBtYXkgcmVt
b3ZlIG9yIGVkaXQgaXQuCiMKIyBjb25maWcuc3RhdHVzIG9ubHkgcGF5cyBh
dHRlbnRpb24gdG8gdGhlIGNhY2hlIGZpbGUgaWYgeW91IGdpdmUgaXQKIyB0
aGUgLS1yZWNoZWNrIG9wdGlvbiB0byByZXJ1biBjb25maWd1cmUuCiMKIyBg
YWNfY3ZfZW52X2ZvbycgdmFyaWFibGVzIChzZXQgb3IgdW5zZXQpIHdpbGwg
YmUgb3ZlcnJpZGRlbiB3aGVuCiMgbG9hZGluZyB0aGlzIGZpbGUsIG90aGVy
ICp1bnNldCogYGFjX2N2X2Zvbycgd2lsbCBiZSBhc3NpZ25lZCB0aGUKIyBm
b2xsb3dpbmcgdmFsdWVzLgoKX0FDRU9GCgojIFRoZSBmb2xsb3dpbmcgd2F5
IG9mIHdyaXRpbmcgdGhlIGNhY2hlIG1pc2hhbmRsZXMgbmV3bGluZXMgaW4g
dmFsdWVzLAojIGJ1dCB3ZSBrbm93IG9mIG5vIHdvcmthcm91bmQgdGhhdCBp
cyBzaW1wbGUsIHBvcnRhYmxlLCBhbmQgZWZmaWNpZW50LgojIFNvLCBkb24n
dCBwdXQgbmV3bGluZXMgaW4gY2FjaGUgdmFyaWFibGVzJyB2YWx1ZXMuCiMg
VWx0cml4IHNoIHNldCB3cml0ZXMgdG8gc3RkZXJyIGFuZCBjYW4ndCBiZSBy
ZWRpcmVjdGVkIGRpcmVjdGx5LAojIGFuZCBzZXRzIHRoZSBoaWdoIGJpdCBp
biB0aGUgY2FjaGUgZmlsZSB1bmxlc3Mgd2UgYXNzaWduIHRvIHRoZSB2YXJz
Lgp7CiAgKHNldCkgMj4mMSB8CiAgICBjYXNlIGAoYWNfc3BhY2U9JyAnOyBz
ZXQgfCBncmVwIGFjX3NwYWNlKSAyPiYxYCBpbgogICAgKmFjX3NwYWNlPVwg
KikKICAgICAgIyBgc2V0JyBkb2VzIG5vdCBxdW90ZSBjb3JyZWN0bHksIHNv
IGFkZCBxdW90ZXMgKGRvdWJsZS1xdW90ZQogICAgICAjIHN1YnN0aXR1dGlv
biB0dXJucyBcXFxcIGludG8gXFwsIGFuZCBzZWQgdHVybnMgXFwgaW50byBc
KS4KICAgICAgc2VkIC1uIFwKICAgICAgICAicy8nLydcXFxcJycvZzsKICAg
IAkgIHMvXlxcKFtfJGFzX2NyX2FsbnVtXSpfY3ZfW18kYXNfY3JfYWxudW1d
KlxcKT1cXCguKlxcKS9cXDE9J1xcMicvcCIKICAgICAgOzsKICAgICopCiAg
ICAgICMgYHNldCcgcXVvdGVzIGNvcnJlY3RseSBhcyByZXF1aXJlZCBieSBQ
T1NJWCwgc28gZG8gbm90IGFkZCBxdW90ZXMuCiAgICAgIHNlZCAtbiBcCiAg
ICAgICAgInMvXlxcKFtfJGFzX2NyX2FsbnVtXSpfY3ZfW18kYXNfY3JfYWxu
dW1dKlxcKT1cXCguKlxcKS9cXDE9XFwyL3AiCiAgICAgIDs7CiAgICBlc2Fj
Owp9IHwKICBzZWQgJwogICAgIHQgY2xlYXIKICAgICA6IGNsZWFyCiAgICAg
cy9eXChbXj1dKlwpPVwoLipbe31dLipcKSQvdGVzdCAiJHtcMStzZXR9IiA9
IHNldCB8fCAmLwogICAgIHQgZW5kCiAgICAgL15hY19jdl9lbnYvIXMvXlwo
W149XSpcKT1cKC4qXCkkL1wxPSR7XDE9XDJ9LwogICAgIDogZW5kJyA+PmNv
bmZjYWNoZQppZiBkaWZmICRjYWNoZV9maWxlIGNvbmZjYWNoZSA+L2Rldi9u
dWxsIDI+JjE7IHRoZW4gOjsgZWxzZQogIGlmIHRlc3QgLXcgJGNhY2hlX2Zp
bGU7IHRoZW4KICAgIHRlc3QgIngkY2FjaGVfZmlsZSIgIT0gIngvZGV2L251
bGwiICYmIGVjaG8gInVwZGF0aW5nIGNhY2hlICRjYWNoZV9maWxlIgogICAg
Y2F0IGNvbmZjYWNoZSA+JGNhY2hlX2ZpbGUKICBlbHNlCiAgICBlY2hvICJu
b3QgdXBkYXRpbmcgdW53cml0YWJsZSBjYWNoZSAkY2FjaGVfZmlsZSIKICBm
aQpmaQpybSAtZiBjb25mY2FjaGUKCnRlc3QgIngkcHJlZml4IiA9IHhOT05F
ICYmIHByZWZpeD0kYWNfZGVmYXVsdF9wcmVmaXgKIyBMZXQgbWFrZSBleHBh
bmQgZXhlY19wcmVmaXguCnRlc3QgIngkZXhlY19wcmVmaXgiID0geE5PTkUg
JiYgZXhlY19wcmVmaXg9JyR7cHJlZml4fScKCiMgVlBBVEggbWF5IGNhdXNl
IHRyb3VibGUgd2l0aCBzb21lIG1ha2VzLCBzbyB3ZSByZW1vdmUgJChzcmNk
aXIpLAojICR7c3JjZGlyfSBhbmQgQHNyY2RpckAgZnJvbSBWUEFUSCBpZiBz
cmNkaXIgaXMgIi4iLCBzdHJpcCBsZWFkaW5nIGFuZAojIHRyYWlsaW5nIGNv
bG9ucyBhbmQgdGhlbiByZW1vdmUgdGhlIHdob2xlIGxpbmUgaWYgVlBBVEgg
YmVjb21lcyBlbXB0eQojIChhY3R1YWxseSB3ZSBsZWF2ZSBhbiBlbXB0eSBs
aW5lIHRvIHByZXNlcnZlIGxpbmUgbnVtYmVycykuCmlmIHRlc3QgIngkc3Jj
ZGlyIiA9IHguOyB0aGVuCiAgYWNfdnBzdWI9Jy9eWyAJXSpWUEFUSFsgCV0q
PS97CnMvOipcJChzcmNkaXIpOiovOi87CnMvOipcJHtzcmNkaXJ9OiovOi87
CnMvOipAc3JjZGlyQDoqLzovOwpzL15cKFtePV0qPVsgCV0qXCk6Ki9cMS87
CnMvOiokLy87CnMvXltePV0qPVsgCV0qJC8vOwp9JwpmaQoKREVGUz0tREhB
VkVfQ09ORklHX0gKCmFjX2xpYm9ianM9CmFjX2x0bGlib2Jqcz0KZm9yIGFj
X2kgaW4gOiAkTElCT0JKUzsgZG8gdGVzdCAieCRhY19pIiA9IHg6ICYmIGNv
bnRpbnVlCiAgIyAxLiBSZW1vdmUgdGhlIGV4dGVuc2lvbiwgYW5kICRVIGlm
IGFscmVhZHkgaW5zdGFsbGVkLgogIGFjX2k9YGVjaG8gIiRhY19pIiB8CiAg
ICAgICAgIHNlZCAncy9cJFVcLi8uLztzL1wubyQvLztzL1wub2JqJC8vJ2AK
ICAjIDIuIEFkZCB0aGVtLgogIGFjX2xpYm9ianM9IiRhY19saWJvYmpzICRh
Y19pXCRVLiRhY19vYmpleHQiCiAgYWNfbHRsaWJvYmpzPSIkYWNfbHRsaWJv
YmpzICRhY19pIickVS5sbycKZG9uZQpMSUJPQkpTPSRhY19saWJvYmpzCgpM
VExJQk9CSlM9JGFjX2x0bGlib2JqcwoKCgo6ICR7Q09ORklHX1NUQVRVUz0u
L2NvbmZpZy5zdGF0dXN9CmFjX2NsZWFuX2ZpbGVzX3NhdmU9JGFjX2NsZWFu
X2ZpbGVzCmFjX2NsZWFuX2ZpbGVzPSIkYWNfY2xlYW5fZmlsZXMgJENPTkZJ
R19TVEFUVVMiCnsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNyZWF0aW5nICRD
T05GSUdfU1RBVFVTIiA+JjUKZWNobyAiJGFzX21lOiBjcmVhdGluZyAkQ09O
RklHX1NUQVRVUyIgPiY2O30KY2F0ID4kQ09ORklHX1NUQVRVUyA8PF9BQ0VP
RgojISAkU0hFTEwKIyBHZW5lcmF0ZWQgYnkgJGFzX21lLgojIFJ1biB0aGlz
IGZpbGUgdG8gcmVjcmVhdGUgdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbi4K
IyBDb21waWxlciBvdXRwdXQgcHJvZHVjZWQgYnkgY29uZmlndXJlLCB1c2Vm
dWwgZm9yIGRlYnVnZ2luZwojIGNvbmZpZ3VyZSwgaXMgaW4gY29uZmlnLmxv
ZyBpZiBpdCBleGlzdHMuCgpkZWJ1Zz1mYWxzZQphY19jc19yZWNoZWNrPWZh
bHNlCmFjX2NzX3NpbGVudD1mYWxzZQpTSEVMTD1cJHtDT05GSUdfU0hFTEwt
JFNIRUxMfQpfQUNFT0YKCmNhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VP
RgojIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKIyMgTTRzaCBJbml0aWFs
aXphdGlvbi4gICMjCiMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwoKIyBC
ZSBCb3VybmUgY29tcGF0aWJsZQppZiB0ZXN0IC1uICIke1pTSF9WRVJTSU9O
K3NldH0iICYmIChlbXVsYXRlIHNoKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4K
ICBlbXVsYXRlIHNoCiAgTlVMTENNRD06CiAgIyBac2ggMy54IGFuZCA0Lngg
cGVyZm9ybXMgd29yZCBzcGxpdHRpbmcgb24gJHsxKyIkQCJ9LCB3aGljaAog
ICMgaXMgY29udHJhcnkgdG8gb3VyIHVzYWdlLiAgRGlzYWJsZSB0aGlzIGZl
YXR1cmUuCiAgYWxpYXMgLWcgJyR7MSsiJEAifSc9JyIkQCInCmVsaWYgdGVz
dCAtbiAiJHtCQVNIX1ZFUlNJT04rc2V0fSIgJiYgKHNldCAtbyBwb3NpeCkg
Pi9kZXYvbnVsbCAyPiYxOyB0aGVuCiAgc2V0IC1vIHBvc2l4CmZpCgojIFN1
cHBvcnQgdW5zZXQgd2hlbiBwb3NzaWJsZS4KaWYgKEZPTz1GT087IHVuc2V0
IEZPTykgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCiAgYXNfdW5zZXQ9dW5zZXQK
ZWxzZQogIGFzX3Vuc2V0PWZhbHNlCmZpCgoKIyBXb3JrIGFyb3VuZCBidWdz
IGluIHByZS0zLjAgVVdJTiBrc2guCiRhc191bnNldCBFTlYgTUFJTCBNQUlM
UEFUSApQUzE9JyQgJwpQUzI9Jz4gJwpQUzQ9JysgJwoKIyBOTFMgbnVpc2Fu
Y2VzLgpmb3IgYXNfdmFyIGluIFwKICBMQU5HIExBTkdVQUdFIExDX0FERFJF
U1MgTENfQUxMIExDX0NPTExBVEUgTENfQ1RZUEUgTENfSURFTlRJRklDQVRJ
T04gXAogIExDX01FQVNVUkVNRU5UIExDX01FU1NBR0VTIExDX01PTkVUQVJZ
IExDX05BTUUgTENfTlVNRVJJQyBMQ19QQVBFUiBcCiAgTENfVEVMRVBIT05F
IExDX1RJTUUKZG8KICBpZiAoc2V0ICt4OyB0ZXN0IC1uICJgKGV2YWwgJGFz
X3Zhcj1DOyBleHBvcnQgJGFzX3ZhcikgMj4mMWAiKTsgdGhlbgogICAgZXZh
bCAkYXNfdmFyPUM7IGV4cG9ydCAkYXNfdmFyCiAgZWxzZQogICAgJGFzX3Vu
c2V0ICRhc192YXIKICBmaQpkb25lCgojIFJlcXVpcmVkIHRvIHVzZSBiYXNl
bmFtZS4KaWYgZXhwciBhIDogJ1woYVwpJyA+L2Rldi9udWxsIDI+JjE7IHRo
ZW4KICBhc19leHByPWV4cHIKZWxzZQogIGFzX2V4cHI9ZmFsc2UKZmkKCmlm
IChiYXNlbmFtZSAvKSA+L2Rldi9udWxsIDI+JjEgJiYgdGVzdCAiWGBiYXNl
bmFtZSAvIDI+JjFgIiA9ICJYLyI7IHRoZW4KICBhc19iYXNlbmFtZT1iYXNl
bmFtZQplbHNlCiAgYXNfYmFzZW5hbWU9ZmFsc2UKZmkKCgojIE5hbWUgb2Yg
dGhlIGV4ZWN1dGFibGUuCmFzX21lPWAkYXNfYmFzZW5hbWUgIiQwIiB8fAok
YXNfZXhwciBYLyIkMCIgOiAnLiovXChbXi9dW14vXSpcKS8qJCcgXHwgXAoJ
IFgiJDAiIDogJ1hcKC8vXCkkJyBcfCBcCgkgWCIkMCIgOiAnWFwoL1wpJCcg
XHwgXAoJIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAplY2hvIFgv
IiQwIiB8CiAgICBzZWQgJy9eLipcL1woW14vXVteL10qXClcLyokL3sgcy8v
XDEvOyBxOyB9CiAgCSAgL15YXC9cKFwvXC9cKSQveyBzLy9cMS87IHE7IH0K
ICAJICAvXlhcL1woXC9cKS4qL3sgcy8vXDEvOyBxOyB9CiAgCSAgcy8uKi8u
LzsgcSdgCgoKIyBQQVRIIG5lZWRzIENSLCBhbmQgTElORU5PIG5lZWRzIENS
IGFuZCBQQVRILgojIEF2b2lkIGRlcGVuZGluZyB1cG9uIENoYXJhY3RlciBS
YW5nZXMuCmFzX2NyX2xldHRlcnM9J2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3
eHl6Jwphc19jcl9MRVRURVJTPSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZ
WicKYXNfY3JfTGV0dGVycz0kYXNfY3JfbGV0dGVycyRhc19jcl9MRVRURVJT
CmFzX2NyX2RpZ2l0cz0nMDEyMzQ1Njc4OScKYXNfY3JfYWxudW09JGFzX2Ny
X0xldHRlcnMkYXNfY3JfZGlnaXRzCgojIFRoZSB1c2VyIGlzIGFsd2F5cyBy
aWdodC4KaWYgdGVzdCAiJHtQQVRIX1NFUEFSQVRPUitzZXR9IiAhPSBzZXQ7
IHRoZW4KICBlY2hvICIjISAvYmluL3NoIiA+Y29uZiQkLnNoCiAgZWNobyAg
ImV4aXQgMCIgICA+PmNvbmYkJC5zaAogIGNobW9kICt4IGNvbmYkJC5zaAog
IGlmIChQQVRIPSIvbm9uZXhpc3RlbnQ7LiI7IGNvbmYkJC5zaCkgPi9kZXYv
bnVsbCAyPiYxOyB0aGVuCiAgICBQQVRIX1NFUEFSQVRPUj0nOycKICBlbHNl
CiAgICBQQVRIX1NFUEFSQVRPUj06CiAgZmkKICBybSAtZiBjb25mJCQuc2gK
ZmkKCgogIGFzX2xpbmVub18xPSRMSU5FTk8KICBhc19saW5lbm9fMj0kTElO
RU5PCiAgYXNfbGluZW5vXzM9YChleHByICRhc19saW5lbm9fMSArIDEpIDI+
L2Rldi9udWxsYAogIHRlc3QgIngkYXNfbGluZW5vXzEiICE9ICJ4JGFzX2xp
bmVub18yIiAmJgogIHRlc3QgIngkYXNfbGluZW5vXzMiICA9ICJ4JGFzX2xp
bmVub18yIiAgfHwgewogICMgRmluZCB3aG8gd2UgYXJlLiAgTG9vayBpbiB0
aGUgcGF0aCBpZiB3ZSBjb250YWluIG5vIHBhdGggYXQgYWxsCiAgIyByZWxh
dGl2ZSBvciBub3QuCiAgY2FzZSAkMCBpbgogICAgKltcXC9dKiApIGFzX215
c2VsZj0kMCA7OwogICAgKikgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRI
X1NFUEFSQVRPUgpmb3IgYXNfZGlyIGluICRQQVRICmRvCiAgSUZTPSRhc19z
YXZlX0lGUwogIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCiAgdGVz
dCAtciAiJGFzX2Rpci8kMCIgJiYgYXNfbXlzZWxmPSRhc19kaXIvJDAgJiYg
YnJlYWsKZG9uZQoKICAgICAgIDs7CiAgZXNhYwogICMgV2UgZGlkIG5vdCBm
aW5kIG91cnNlbHZlcywgbW9zdCBwcm9iYWJseSB3ZSB3ZXJlIHJ1biBhcyBg
c2ggQ09NTUFORCcKICAjIGluIHdoaWNoIGNhc2Ugd2UgYXJlIG5vdCB0byBi
ZSBmb3VuZCBpbiB0aGUgcGF0aC4KICBpZiB0ZXN0ICJ4JGFzX215c2VsZiIg
PSB4OyB0aGVuCiAgICBhc19teXNlbGY9JDAKICBmaQogIGlmIHRlc3QgISAt
ZiAiJGFzX215c2VsZiI7IHRoZW4KICAgIHsgeyBlY2hvICIkYXNfbWU6JExJ
TkVOTzogZXJyb3I6IGNhbm5vdCBmaW5kIG15c2VsZjsgcmVydW4gd2l0aCBh
biBhYnNvbHV0ZSBwYXRoIiA+JjUKZWNobyAiJGFzX21lOiBlcnJvcjogY2Fu
bm90IGZpbmQgbXlzZWxmOyByZXJ1biB3aXRoIGFuIGFic29sdXRlIHBhdGgi
ID4mMjt9CiAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQogIGZpCiAgY2Fz
ZSAkQ09ORklHX1NIRUxMIGluCiAgJycpCiAgICBhc19zYXZlX0lGUz0kSUZT
OyBJRlM9JFBBVEhfU0VQQVJBVE9SCmZvciBhc19kaXIgaW4gL2JpbiRQQVRI
X1NFUEFSQVRPUi91c3IvYmluJFBBVEhfU0VQQVJBVE9SJFBBVEgKZG8KICBJ
RlM9JGFzX3NhdmVfSUZTCiAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGly
PS4KICBmb3IgYXNfYmFzZSBpbiBzaCBiYXNoIGtzaCBzaDU7IGRvCgkgY2Fz
ZSAkYXNfZGlyIGluCgkgLyopCgkgICBpZiAoIiRhc19kaXIvJGFzX2Jhc2Ui
IC1jICcKICBhc19saW5lbm9fMT0kTElORU5PCiAgYXNfbGluZW5vXzI9JExJ
TkVOTwogIGFzX2xpbmVub18zPWAoZXhwciAkYXNfbGluZW5vXzEgKyAxKSAy
Pi9kZXYvbnVsbGAKICB0ZXN0ICJ4JGFzX2xpbmVub18xIiAhPSAieCRhc19s
aW5lbm9fMiIgJiYKICB0ZXN0ICJ4JGFzX2xpbmVub18zIiAgPSAieCRhc19s
aW5lbm9fMiIgJykgMj4vZGV2L251bGw7IHRoZW4KCSAgICAgJGFzX3Vuc2V0
IEJBU0hfRU5WIHx8IHRlc3QgIiR7QkFTSF9FTlYrc2V0fSIgIT0gc2V0IHx8
IHsgQkFTSF9FTlY9OyBleHBvcnQgQkFTSF9FTlY7IH0KCSAgICAgJGFzX3Vu
c2V0IEVOViB8fCB0ZXN0ICIke0VOVitzZXR9IiAhPSBzZXQgfHwgeyBFTlY9
OyBleHBvcnQgRU5WOyB9CgkgICAgIENPTkZJR19TSEVMTD0kYXNfZGlyLyRh
c19iYXNlCgkgICAgIGV4cG9ydCBDT05GSUdfU0hFTEwKCSAgICAgZXhlYyAi
JENPTkZJR19TSEVMTCIgIiQwIiAkezErIiRAIn0KCSAgIGZpOzsKCSBlc2Fj
CiAgICAgICBkb25lCmRvbmUKOzsKICBlc2FjCgogICMgQ3JlYXRlICRhc19t
ZS5saW5lbm8gYXMgYSBjb3B5IG9mICRhc19teXNlbGYsIGJ1dCB3aXRoICRM
SU5FTk8KICAjIHVuaWZvcm1seSByZXBsYWNlZCBieSB0aGUgbGluZSBudW1i
ZXIuICBUaGUgZmlyc3QgJ3NlZCcgaW5zZXJ0cyBhCiAgIyBsaW5lLW51bWJl
ciBsaW5lIGJlZm9yZSBlYWNoIGxpbmU7IHRoZSBzZWNvbmQgJ3NlZCcgZG9l
cyB0aGUgcmVhbAogICMgd29yay4gIFRoZSBzZWNvbmQgc2NyaXB0IHVzZXMg
J04nIHRvIHBhaXIgZWFjaCBsaW5lLW51bWJlciBsaW5lCiAgIyB3aXRoIHRo
ZSBudW1iZXJlZCBsaW5lLCBhbmQgYXBwZW5kcyB0cmFpbGluZyAnLScgZHVy
aW5nCiAgIyBzdWJzdGl0dXRpb24gc28gdGhhdCAkTElORU5PIGlzIG5vdCBh
IHNwZWNpYWwgY2FzZSBhdCBsaW5lIGVuZC4KICAjIChSYWphIFIgSGFyaW5h
dGggc3VnZ2VzdGVkIHNlZCAnPScsIGFuZCBQYXVsIEVnZ2VydCB3cm90ZSB0
aGUKICAjIHNlY29uZCAnc2VkJyBzY3JpcHQuICBCbGFtZSBMZWUgRS4gTWNN
YWhvbiBmb3Igc2VkJ3Mgc3ludGF4LiAgOi0pCiAgc2VkICc9JyA8JGFzX215
c2VsZiB8CiAgICBzZWQgJwogICAgICBOCiAgICAgIHMsJCwtLAogICAgICA6
IGxvb3AKICAgICAgcyxeXChbJyRhc19jcl9kaWdpdHMnXSpcKVwoLipcKVsk
XUxJTkVOT1woW14nJGFzX2NyX2FsbnVtJ19dXCksXDFcMlwxXDMsCiAgICAg
IHQgbG9vcAogICAgICBzLC0kLCwKICAgICAgcyxeWyckYXNfY3JfZGlnaXRz
J10qXG4sLAogICAgJyA+JGFzX21lLmxpbmVubyAmJgogIGNobW9kICt4ICRh
c19tZS5saW5lbm8gfHwKICAgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzog
ZXJyb3I6IGNhbm5vdCBjcmVhdGUgJGFzX21lLmxpbmVubzsgcmVydW4gd2l0
aCBhIFBPU0lYIHNoZWxsIiA+JjUKZWNobyAiJGFzX21lOiBlcnJvcjogY2Fu
bm90IGNyZWF0ZSAkYXNfbWUubGluZW5vOyByZXJ1biB3aXRoIGEgUE9TSVgg
c2hlbGwiID4mMjt9CiAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQoKICAj
IERvbid0IHRyeSB0byBleGVjIGFzIGl0IGNoYW5nZXMgJFswXSwgY2F1c2lu
ZyBhbGwgc29ydCBvZiBwcm9ibGVtcwogICMgKHRoZSBkaXJuYW1lIG9mICRb
MF0gaXMgbm90IHRoZSBwbGFjZSB3aGVyZSB3ZSBtaWdodCBmaW5kIHRoZQog
ICMgb3JpZ2luYWwgYW5kIHNvIG9uLiAgQXV0b2NvbmYgaXMgZXNwZWNpYWxs
eSBzZW5zaWJsZSB0byB0aGlzKS4KICAuIC4vJGFzX21lLmxpbmVubwogICMg
RXhpdCBzdGF0dXMgaXMgdGhhdCBvZiB0aGUgbGFzdCBjb21tYW5kLgogIGV4
aXQKfQoKCmNhc2UgYGVjaG8gInRlc3RpbmdcYyI7IGVjaG8gMSwyLDNgLGBl
Y2hvIC1uIHRlc3Rpbmc7IGVjaG8gMSwyLDNgIGluCiAgKmMqLC1uKikgRUNI
T19OPSBFQ0hPX0M9JwonIEVDSE9fVD0nCScgOzsKICAqYyosKiAgKSBFQ0hP
X049LW4gRUNIT19DPSBFQ0hPX1Q9IDs7CiAgKikgICAgICAgRUNIT19OPSBF
Q0hPX0M9J1xjJyBFQ0hPX1Q9IDs7CmVzYWMKCmlmIGV4cHIgYSA6ICdcKGFc
KScgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCiAgYXNfZXhwcj1leHByCmVsc2UK
ICBhc19leHByPWZhbHNlCmZpCgpybSAtZiBjb25mJCQgY29uZiQkLmV4ZSBj
b25mJCQuZmlsZQplY2hvID5jb25mJCQuZmlsZQppZiBsbiAtcyBjb25mJCQu
ZmlsZSBjb25mJCQgMj4vZGV2L251bGw7IHRoZW4KICAjIFdlIGNvdWxkIGp1
c3QgY2hlY2sgZm9yIERKR1BQOyBidXQgdGhpcyB0ZXN0IGEpIHdvcmtzIGIp
IGlzIG1vcmUgZ2VuZXJpYwogICMgYW5kIGMpIHdpbGwgcmVtYWluIHZhbGlk
IG9uY2UgREpHUFAgc3VwcG9ydHMgc3ltbGlua3MgKERKR1BQIDIuMDQpLgog
IGlmIHRlc3QgLWYgY29uZiQkLmV4ZTsgdGhlbgogICAgIyBEb24ndCB1c2Ug
bG4gYXQgYWxsOyB3ZSBkb24ndCBoYXZlIGFueSBsaW5rcwogICAgYXNfbG5f
cz0nY3AgLXAnCiAgZWxzZQogICAgYXNfbG5fcz0nbG4gLXMnCiAgZmkKZWxp
ZiBsbiBjb25mJCQuZmlsZSBjb25mJCQgMj4vZGV2L251bGw7IHRoZW4KICBh
c19sbl9zPWxuCmVsc2UKICBhc19sbl9zPSdjcCAtcCcKZmkKcm0gLWYgY29u
ZiQkIGNvbmYkJC5leGUgY29uZiQkLmZpbGUKCmlmIG1rZGlyIC1wIC4gMj4v
ZGV2L251bGw7IHRoZW4KICBhc19ta2Rpcl9wPToKZWxzZQogIGFzX21rZGly
X3A9ZmFsc2UKZmkKCmFzX2V4ZWN1dGFibGVfcD0idGVzdCAtZiIKCiMgU2Vk
IGV4cHJlc3Npb24gdG8gbWFwIGEgc3RyaW5nIG9udG8gYSB2YWxpZCBDUFAg
bmFtZS4KYXNfdHJfY3BwPSJzZWQgeSUqJGFzX2NyX2xldHRlcnMlUCRhc19j
cl9MRVRURVJTJTtzJVteXyRhc19jcl9hbG51bV0lXyVnIgoKIyBTZWQgZXhw
cmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIHZhcmlhYmxl
IG5hbWUuCmFzX3RyX3NoPSJzZWQgeSUqKyVwcCU7cyVbXl8kYXNfY3JfYWxu
dW1dJV8lZyIKCgojIElGUwojIFdlIG5lZWQgc3BhY2UsIHRhYiBhbmQgbmV3
IGxpbmUsIGluIHByZWNpc2VseSB0aGF0IG9yZGVyLgphc19ubD0nCicKSUZT
PSIgCSRhc19ubCIKCiMgQ0RQQVRILgokYXNfdW5zZXQgQ0RQQVRICgpleGVj
IDY+JjEKCiMgT3BlbiB0aGUgbG9nIHJlYWwgc29vbiwgdG8ga2VlcCBcJFsw
XSBhbmQgc28gb24gbWVhbmluZ2Z1bCwgYW5kIHRvCiMgcmVwb3J0IGFjdHVh
bCBpbnB1dCB2YWx1ZXMgb2YgQ09ORklHX0ZJTEVTIGV0Yy4gaW5zdGVhZCBv
ZiB0aGVpcgojIHZhbHVlcyBhZnRlciBvcHRpb25zIGhhbmRsaW5nLiAgTG9n
Z2luZyAtLXZlcnNpb24gZXRjLiBpcyBPSy4KZXhlYyA1Pj5jb25maWcubG9n
CnsKICBlY2hvCiAgc2VkICdoO3MvLi8tL2c7cy9eLi4uLyMjIC87cy8uLi4k
LyAjIy87cDt4O3A7eCcgPDxfQVNCT1gKIyMgUnVubmluZyAkYXNfbWUuICMj
Cl9BU0JPWAp9ID4mNQpjYXQgPiY1IDw8X0NTRU9GCgpUaGlzIGZpbGUgd2Fz
IGV4dGVuZGVkIGJ5IFF1aWNrTmV0ICRhc19tZSB2M18xMSwgd2hpY2ggd2Fz
CmdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi41Ny4gIEludm9jYXRpb24g
Y29tbWFuZCBsaW5lIHdhcwoKICBDT05GSUdfRklMRVMgICAgPSAkQ09ORklH
X0ZJTEVTCiAgQ09ORklHX0hFQURFUlMgID0gJENPTkZJR19IRUFERVJTCiAg
Q09ORklHX0xJTktTICAgID0gJENPTkZJR19MSU5LUwogIENPTkZJR19DT01N
QU5EUyA9ICRDT05GSUdfQ09NTUFORFMKICAkICQwICRACgpfQ1NFT0YKZWNo
byAib24gYChob3N0bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2L251bGwgfCBz
ZWQgMXFgIiA+JjUKZWNobyA+JjUKX0FDRU9GCgojIEZpbGVzIHRoYXQgY29u
ZmlnLnN0YXR1cyB3YXMgbWFkZSBmb3IuCmlmIHRlc3QgLW4gIiRhY19jb25m
aWdfZmlsZXMiOyB0aGVuCiAgZWNobyAiY29uZmlnX2ZpbGVzPVwiJGFjX2Nv
bmZpZ19maWxlc1wiIiA+PiRDT05GSUdfU1RBVFVTCmZpCgppZiB0ZXN0IC1u
ICIkYWNfY29uZmlnX2hlYWRlcnMiOyB0aGVuCiAgZWNobyAiY29uZmlnX2hl
YWRlcnM9XCIkYWNfY29uZmlnX2hlYWRlcnNcIiIgPj4kQ09ORklHX1NUQVRV
UwpmaQoKaWYgdGVzdCAtbiAiJGFjX2NvbmZpZ19saW5rcyI7IHRoZW4KICBl
Y2hvICJjb25maWdfbGlua3M9XCIkYWNfY29uZmlnX2xpbmtzXCIiID4+JENP
TkZJR19TVEFUVVMKZmkKCmlmIHRlc3QgLW4gIiRhY19jb25maWdfY29tbWFu
ZHMiOyB0aGVuCiAgZWNobyAiY29uZmlnX2NvbW1hbmRzPVwiJGFjX2NvbmZp
Z19jb21tYW5kc1wiIiA+PiRDT05GSUdfU1RBVFVTCmZpCgpjYXQgPj4kQ09O
RklHX1NUQVRVUyA8PFxfQUNFT0YKCmFjX2NzX3VzYWdlPSJcClxgJGFzX21l
JyBpbnN0YW50aWF0ZXMgZmlsZXMgZnJvbSB0ZW1wbGF0ZXMgYWNjb3JkaW5n
IHRvIHRoZQpjdXJyZW50IGNvbmZpZ3VyYXRpb24uCgpVc2FnZTogJDAgW09Q
VElPTlNdIFtGSUxFXS4uLgoKICAtaCwgLS1oZWxwICAgICAgIHByaW50IHRo
aXMgaGVscCwgdGhlbiBleGl0CiAgLVYsIC0tdmVyc2lvbiAgICBwcmludCB2
ZXJzaW9uIG51bWJlciwgdGhlbiBleGl0CiAgLXEsIC0tcXVpZXQgICAgICBk
byBub3QgcHJpbnQgcHJvZ3Jlc3MgbWVzc2FnZXMKICAtZCwgLS1kZWJ1ZyAg
ICAgIGRvbid0IHJlbW92ZSB0ZW1wb3JhcnkgZmlsZXMKICAgICAgLS1yZWNo
ZWNrICAgIHVwZGF0ZSAkYXNfbWUgYnkgcmVjb25maWd1cmluZyBpbiB0aGUg
c2FtZSBjb25kaXRpb25zCiAgLS1maWxlPUZJTEVbOlRFTVBMQVRFXQogICAg
ICAgICAgICAgICAgICAgaW5zdGFudGlhdGUgdGhlIGNvbmZpZ3VyYXRpb24g
ZmlsZSBGSUxFCiAgLS1oZWFkZXI9RklMRVs6VEVNUExBVEVdCiAgICAgICAg
ICAgICAgICAgICBpbnN0YW50aWF0ZSB0aGUgY29uZmlndXJhdGlvbiBoZWFk
ZXIgRklMRQoKQ29uZmlndXJhdGlvbiBmaWxlczoKJGNvbmZpZ19maWxlcwoK
Q29uZmlndXJhdGlvbiBoZWFkZXJzOgokY29uZmlnX2hlYWRlcnMKCkNvbmZp
Z3VyYXRpb24gY29tbWFuZHM6CiRjb25maWdfY29tbWFuZHMKClJlcG9ydCBi
dWdzIHRvIDxidWctYXV0b2NvbmZAZ251Lm9yZz4uIgpfQUNFT0YKCmNhdCA+
PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GCmFjX2NzX3ZlcnNpb249IlxcClF1
aWNrTmV0IGNvbmZpZy5zdGF0dXMgdjNfMTEKY29uZmlndXJlZCBieSAkMCwg
Z2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU3LAogIHdpdGggb3B0aW9u
cyBcXCJgZWNobyAiJGFjX2NvbmZpZ3VyZV9hcmdzIiB8IHNlZCAncy9bXFwi
IlxgXCRdL1xcXFwmL2cnYFxcIgoKQ29weXJpZ2h0IDE5OTIsIDE5OTMsIDE5
OTQsIDE5OTUsIDE5OTYsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEKRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuClRoaXMgY29uZmlnLnN0YXR1cyBz
Y3JpcHQgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbgpnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5LCBk
aXN0cmlidXRlIGFuZCBtb2RpZnkgaXQuIgpzcmNkaXI9JHNyY2RpcgpJTlNU
QUxMPSIkSU5TVEFMTCIKX0FDRU9GCgpjYXQgPj4kQ09ORklHX1NUQVRVUyA8
PFxfQUNFT0YKIyBJZiBubyBmaWxlIGFyZSBzcGVjaWZpZWQgYnkgdGhlIHVz
ZXIsIHRoZW4gd2UgbmVlZCB0byBwcm92aWRlIGRlZmF1bHQKIyB2YWx1ZS4g
IEJ5IHdlIG5lZWQgdG8ga25vdyBpZiBmaWxlcyB3ZXJlIHNwZWNpZmllZCBi
eSB0aGUgdXNlci4KYWNfbmVlZF9kZWZhdWx0cz06CndoaWxlIHRlc3QgJCMg
IT0gMApkbwogIGNhc2UgJDEgaW4KICAtLSo9KikKICAgIGFjX29wdGlvbj1g
ZXhwciAieCQxIiA6ICd4XChbXj1dKlwpPSdgCiAgICBhY19vcHRhcmc9YGV4
cHIgIngkMSIgOiAneFtePV0qPVwoLipcKSdgCiAgICBhY19zaGlmdD06CiAg
ICA7OwogIC0qKQogICAgYWNfb3B0aW9uPSQxCiAgICBhY19vcHRhcmc9JDIK
ICAgIGFjX3NoaWZ0PXNoaWZ0CiAgICA7OwogICopICMgVGhpcyBpcyBub3Qg
YW4gb3B0aW9uLCBzbyB0aGUgdXNlciBoYXMgcHJvYmFibHkgZ2l2ZW4gZXhw
bGljaXQKICAgICAjIGFyZ3VtZW50cy4KICAgICBhY19vcHRpb249JDEKICAg
ICBhY19uZWVkX2RlZmF1bHRzPWZhbHNlOzsKICBlc2FjCgogIGNhc2UgJGFj
X29wdGlvbiBpbgogICMgSGFuZGxpbmcgb2YgdGhlIG9wdGlvbnMuCl9BQ0VP
RgpjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YKICAtcmVjaGVjayB8
IC0tcmVjaGVjayB8IC0tcmVjaGVjIHwgLS1yZWNoZSB8IC0tcmVjaCB8IC0t
cmVjIHwgLS1yZSB8IC0tcikKICAgIGFjX2NzX3JlY2hlY2s9OiA7OwogIC0t
dmVyc2lvbiB8IC0tdmVycyogfCAtViApCiAgICBlY2hvICIkYWNfY3NfdmVy
c2lvbiI7IGV4aXQgMCA7OwogIC0taGUgfCAtLWgpCiAgICAjIENvbmZsaWN0
IGJldHdlZW4gLS1oZWxwIGFuZCAtLWhlYWRlcgogICAgeyB7IGVjaG8gIiRh
c19tZTokTElORU5POiBlcnJvcjogYW1iaWd1b3VzIG9wdGlvbjogJDEKVHJ5
IFxgJDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iID4mNQplY2hv
ICIkYXNfbWU6IGVycm9yOiBhbWJpZ3VvdXMgb3B0aW9uOiAkMQpUcnkgXGAk
MCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIgPiYyO30KICAgeyAo
ZXhpdCAxKTsgZXhpdCAxOyB9OyB9OzsKICAtLWhlbHAgfCAtLWhlbCB8IC1o
ICkKICAgIGVjaG8gIiRhY19jc191c2FnZSI7IGV4aXQgMCA7OwogIC0tZGVi
dWcgfCAtLWQqIHwgLWQgKQogICAgZGVidWc9OiA7OwogIC0tZmlsZSB8IC0t
ZmlsIHwgLS1maSB8IC0tZiApCiAgICAkYWNfc2hpZnQKICAgIENPTkZJR19G
SUxFUz0iJENPTkZJR19GSUxFUyAkYWNfb3B0YXJnIgogICAgYWNfbmVlZF9k
ZWZhdWx0cz1mYWxzZTs7CiAgLS1oZWFkZXIgfCAtLWhlYWRlIHwgLS1oZWFk
IHwgLS1oZWEgKQogICAgJGFjX3NoaWZ0CiAgICBDT05GSUdfSEVBREVSUz0i
JENPTkZJR19IRUFERVJTICRhY19vcHRhcmciCiAgICBhY19uZWVkX2RlZmF1
bHRzPWZhbHNlOzsKICAtcSB8IC1xdWlldCB8IC0tcXVpZXQgfCAtLXF1aWUg
fCAtLXF1aSB8IC0tcXUgfCAtLXEgXAogIHwgLXNpbGVudCB8IC0tc2lsZW50
IHwgLS1zaWxlbiB8IC0tc2lsZSB8IC0tc2lsIHwgLS1zaSB8IC0tcykKICAg
IGFjX2NzX3NpbGVudD06IDs7CgogICMgVGhpcyBpcyBhbiBlcnJvci4KICAt
KikgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogdW5yZWNvZ25p
emVkIG9wdGlvbjogJDEKVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZv
cm1hdGlvbi4iID4mNQplY2hvICIkYXNfbWU6IGVycm9yOiB1bnJlY29nbml6
ZWQgb3B0aW9uOiAkMQpUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9y
bWF0aW9uLiIgPiYyO30KICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9IDs7
CgogICopIGFjX2NvbmZpZ190YXJnZXRzPSIkYWNfY29uZmlnX3RhcmdldHMg
JDEiIDs7CgogIGVzYWMKICBzaGlmdApkb25lCgphY19jb25maWd1cmVfZXh0
cmFfYXJncz0KCmlmICRhY19jc19zaWxlbnQ7IHRoZW4KICBleGVjIDY+L2Rl
di9udWxsCiAgYWNfY29uZmlndXJlX2V4dHJhX2FyZ3M9IiRhY19jb25maWd1
cmVfZXh0cmFfYXJncyAtLXNpbGVudCIKZmkKCl9BQ0VPRgpjYXQgPj4kQ09O
RklHX1NUQVRVUyA8PF9BQ0VPRgppZiBcJGFjX2NzX3JlY2hlY2s7IHRoZW4K
ICBlY2hvICJydW5uaW5nICRTSEVMTCAkMCAiICRhY19jb25maWd1cmVfYXJn
cyBcJGFjX2NvbmZpZ3VyZV9leHRyYV9hcmdzICIgLS1uby1jcmVhdGUgLS1u
by1yZWN1cnNpb24iID4mNgogIGV4ZWMgJFNIRUxMICQwICRhY19jb25maWd1
cmVfYXJncyBcJGFjX2NvbmZpZ3VyZV9leHRyYV9hcmdzIC0tbm8tY3JlYXRl
IC0tbm8tcmVjdXJzaW9uCmZpCgpfQUNFT0YKCgoKCgpjYXQgPj4kQ09ORklH
X1NUQVRVUyA8PFxfQUNFT0YKZm9yIGFjX2NvbmZpZ190YXJnZXQgaW4gJGFj
X2NvbmZpZ190YXJnZXRzCmRvCiAgY2FzZSAiJGFjX2NvbmZpZ190YXJnZXQi
IGluCiAgIyBIYW5kbGluZyBvZiBhcmd1bWVudHMuCiAgIlFOM0NvbmZpZy5z
aCIgKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgUU4zQ29uZmlnLnNo
IiA7OwogICJNYWtlZmlsZSIgKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklM
RVMgTWFrZWZpbGUiIDs7CiAgInRlc3RzdWl0ZS9NYWtlZmlsZSIgKSBDT05G
SUdfRklMRVM9IiRDT05GSUdfRklMRVMgdGVzdHN1aXRlL01ha2VmaWxlIiA7
OwogICJwZXJmc3VpdGUvTWFrZWZpbGUiICkgQ09ORklHX0ZJTEVTPSIkQ09O
RklHX0ZJTEVTIHBlcmZzdWl0ZS9NYWtlZmlsZSIgOzsKICAicXVpY2tuZXQz
LnBjIiApIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBxdWlja25ldDMu
cGMiIDs7CiAgInF1aWNrbmV0My1pbnN0YWxsLnBjIiApIENPTkZJR19GSUxF
Uz0iJENPTkZJR19GSUxFUyBxdWlja25ldDMtaW5zdGFsbC5wYyIgOzsKICAi
cW5kby5zaCIgKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgcW5kby5z
aCIgOzsKICAidGVzdGRhdGFfcW5ub3JtLnNoIiApIENPTkZJR19GSUxFUz0i
JENPTkZJR19GSUxFUyB0ZXN0ZGF0YV9xbm5vcm0uc2giIDs7CiAgInRlc3Rk
YXRhX3Fuc3Rybi5zaCIgKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMg
dGVzdGRhdGFfcW5zdHJuLnNoIiA7OwogICJ0ZXN0ZGF0YV9xbnNmd2Quc2gi
ICkgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHRlc3RkYXRhX3Fuc2Z3
ZC5zaCIgOzsKICAidGVzdGRhdGFfcW5zdHJuX3BzLnNoIiApIENPTkZJR19G
SUxFUz0iJENPTkZJR19GSUxFUyB0ZXN0ZGF0YV9xbnN0cm5fcHMuc2giIDs7
CiAgInRlc3RkYXRhX3Fuc2Z3ZF9wcy5zaCIgKSBDT05GSUdfRklMRVM9IiRD
T05GSUdfRklMRVMgdGVzdGRhdGFfcW5zZndkX3BzLnNoIiA7OwogICJkZWZh
dWx0IiApIENPTkZJR19DT01NQU5EUz0iJENPTkZJR19DT01NQU5EUyBkZWZh
dWx0IiA7OwogICJjb25maWcuaCIgKSBDT05GSUdfSEVBREVSUz0iJENPTkZJ
R19IRUFERVJTIGNvbmZpZy5oIiA7OwogICopIHsgeyBlY2hvICIkYXNfbWU6
JExJTkVOTzogZXJyb3I6IGludmFsaWQgYXJndW1lbnQ6ICRhY19jb25maWdf
dGFyZ2V0IiA+JjUKZWNobyAiJGFzX21lOiBlcnJvcjogaW52YWxpZCBhcmd1
bWVudDogJGFjX2NvbmZpZ190YXJnZXQiID4mMjt9CiAgIHsgKGV4aXQgMSk7
IGV4aXQgMTsgfTsgfTs7CiAgZXNhYwpkb25lCgojIElmIHRoZSB1c2VyIGRp
ZCBub3QgdXNlIHRoZSBhcmd1bWVudHMgdG8gc3BlY2lmeSB0aGUgaXRlbXMg
dG8gaW5zdGFudGlhdGUsCiMgdGhlbiB0aGUgZW52dmFyIGludGVyZmFjZSBp
cyB1c2VkLiAgU2V0IG9ubHkgdGhvc2UgdGhhdCBhcmUgbm90LgojIFdlIHVz
ZSB0aGUgbG9uZyBmb3JtIGZvciB0aGUgZGVmYXVsdCBhc3NpZ25tZW50IGJl
Y2F1c2Ugb2YgYW4gZXh0cmVtZWx5CiMgYml6YXJyZSBidWcgb24gU3VuT1Mg
NC4xLjMuCmlmICRhY19uZWVkX2RlZmF1bHRzOyB0aGVuCiAgdGVzdCAiJHtD
T05GSUdfRklMRVMrc2V0fSIgPSBzZXQgfHwgQ09ORklHX0ZJTEVTPSRjb25m
aWdfZmlsZXMKICB0ZXN0ICIke0NPTkZJR19IRUFERVJTK3NldH0iID0gc2V0
IHx8IENPTkZJR19IRUFERVJTPSRjb25maWdfaGVhZGVycwogIHRlc3QgIiR7
Q09ORklHX0NPTU1BTkRTK3NldH0iID0gc2V0IHx8IENPTkZJR19DT01NQU5E
Uz0kY29uZmlnX2NvbW1hbmRzCmZpCgojIEhhdmUgYSB0ZW1wb3JhcnkgZGly
ZWN0b3J5IGZvciBjb252ZW5pZW5jZS4gIE1ha2UgaXQgaW4gdGhlIGJ1aWxk
IHRyZWUKIyBzaW1wbHkgYmVjYXVzZSB0aGVyZSBpcyBubyByZWFzb24gdG8g
cHV0IGl0IGhlcmUsIGFuZCBpbiBhZGRpdGlvbiwKIyBjcmVhdGluZyBhbmQg
bW92aW5nIGZpbGVzIGZyb20gL3RtcCBjYW4gc29tZXRpbWVzIGNhdXNlIHBy
b2JsZW1zLgojIENyZWF0ZSBhIHRlbXBvcmFyeSBkaXJlY3RvcnksIGFuZCBo
b29rIGZvciBpdHMgcmVtb3ZhbCB1bmxlc3MgZGVidWdnaW5nLgokZGVidWcg
fHwKewogIHRyYXAgJ2V4aXRfc3RhdHVzPSQ/OyBybSAtcmYgJHRtcCAmJiBl
eGl0ICRleGl0X3N0YXR1cycgMAogIHRyYXAgJ3sgKGV4aXQgMSk7IGV4aXQg
MTsgfScgMSAyIDEzIDE1Cn0KCiMgQ3JlYXRlIGEgKHNlY3VyZSkgdG1wIGRp
cmVjdG9yeSBmb3IgdG1wIGZpbGVzLgoKewogIHRtcD1gKHVtYXNrIDA3NyAm
JiBta3RlbXAgLWQgLXEgIi4vY29uZnN0YXRYWFhYWFgiKSAyPi9kZXYvbnVs
bGAgJiYKICB0ZXN0IC1uICIkdG1wIiAmJiB0ZXN0IC1kICIkdG1wIgp9ICB8
fAp7CiAgdG1wPS4vY29uZnN0YXQkJC0kUkFORE9NCiAgKHVtYXNrIDA3NyAm
JiBta2RpciAkdG1wKQp9IHx8CnsKICAgZWNobyAiJG1lOiBjYW5ub3QgY3Jl
YXRlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBpbiAuIiA+JjIKICAgeyAoZXhp
dCAxKTsgZXhpdCAxOyB9Cn0KCl9BQ0VPRgoKY2F0ID4+JENPTkZJR19TVEFU
VVMgPDxfQUNFT0YKCiMKIyBDT05GSUdfRklMRVMgc2VjdGlvbi4KIwoKIyBO
byBuZWVkIHRvIGdlbmVyYXRlIHRoZSBzY3JpcHRzIGlmIHRoZXJlIGFyZSBu
byBDT05GSUdfRklMRVMuCiMgVGhpcyBoYXBwZW5zIGZvciBpbnN0YW5jZSB3
aGVuIC4vY29uZmlnLnN0YXR1cyBjb25maWcuaAppZiB0ZXN0IC1uICJcJENP
TkZJR19GSUxFUyI7IHRoZW4KICAjIFByb3RlY3QgYWdhaW5zdCBiZWluZyBv
biB0aGUgcmlnaHQgc2lkZSBvZiBhIHNlZCBzdWJzdCBpbiBjb25maWcuc3Rh
dHVzLgogIHNlZCAncy8sQC9AQC87IHMvQCwvQEAvOyBzLyw7dCB0XCQvQDt0
IHQvOyAvQDt0IHRcJC9zL1tcXFxcJixdL1xcXFwmL2c7CiAgIHMvQEAvLEAv
OyBzL0BAL0AsLzsgcy9AO3QgdFwkLyw7dCB0LycgPlwkdG1wL3N1YnMuc2Vk
IDw8XFxDRU9GCnMsQFNIRUxMQCwkU0hFTEwsO3QgdApzLEBQQVRIX1NFUEFS
QVRPUkAsJFBBVEhfU0VQQVJBVE9SLDt0IHQKcyxAUEFDS0FHRV9OQU1FQCwk
UEFDS0FHRV9OQU1FLDt0IHQKcyxAUEFDS0FHRV9UQVJOQU1FQCwkUEFDS0FH
RV9UQVJOQU1FLDt0IHQKcyxAUEFDS0FHRV9WRVJTSU9OQCwkUEFDS0FHRV9W
RVJTSU9OLDt0IHQKcyxAUEFDS0FHRV9TVFJJTkdALCRQQUNLQUdFX1NUUklO
Ryw7dCB0CnMsQFBBQ0tBR0VfQlVHUkVQT1JUQCwkUEFDS0FHRV9CVUdSRVBP
UlQsO3QgdApzLEBleGVjX3ByZWZpeEAsJGV4ZWNfcHJlZml4LDt0IHQKcyxA
cHJlZml4QCwkcHJlZml4LDt0IHQKcyxAcHJvZ3JhbV90cmFuc2Zvcm1fbmFt
ZUAsJHByb2dyYW1fdHJhbnNmb3JtX25hbWUsO3QgdApzLEBiaW5kaXJALCRi
aW5kaXIsO3QgdApzLEBzYmluZGlyQCwkc2JpbmRpciw7dCB0CnMsQGxpYmV4
ZWNkaXJALCRsaWJleGVjZGlyLDt0IHQKcyxAZGF0YWRpckAsJGRhdGFkaXIs
O3QgdApzLEBzeXNjb25mZGlyQCwkc3lzY29uZmRpciw7dCB0CnMsQHNoYXJl
ZHN0YXRlZGlyQCwkc2hhcmVkc3RhdGVkaXIsO3QgdApzLEBsb2NhbHN0YXRl
ZGlyQCwkbG9jYWxzdGF0ZWRpciw7dCB0CnMsQGxpYmRpckAsJGxpYmRpciw7
dCB0CnMsQGluY2x1ZGVkaXJALCRpbmNsdWRlZGlyLDt0IHQKcyxAb2xkaW5j
bHVkZWRpckAsJG9sZGluY2x1ZGVkaXIsO3QgdApzLEBpbmZvZGlyQCwkaW5m
b2Rpciw7dCB0CnMsQG1hbmRpckAsJG1hbmRpciw7dCB0CnMsQGJ1aWxkX2Fs
aWFzQCwkYnVpbGRfYWxpYXMsO3QgdApzLEBob3N0X2FsaWFzQCwkaG9zdF9h
bGlhcyw7dCB0CnMsQHRhcmdldF9hbGlhc0AsJHRhcmdldF9hbGlhcyw7dCB0
CnMsQERFRlNALCRERUZTLDt0IHQKcyxARUNIT19DQCwkRUNIT19DLDt0IHQK
cyxARUNIT19OQCwkRUNIT19OLDt0IHQKcyxARUNIT19UQCwkRUNIT19ULDt0
IHQKcyxATElCU0AsJExJQlMsO3QgdApzLEBidWlsZEAsJGJ1aWxkLDt0IHQK
cyxAYnVpbGRfY3B1QCwkYnVpbGRfY3B1LDt0IHQKcyxAYnVpbGRfdmVuZG9y
QCwkYnVpbGRfdmVuZG9yLDt0IHQKcyxAYnVpbGRfb3NALCRidWlsZF9vcyw7
dCB0CnMsQGhvc3RALCRob3N0LDt0IHQKcyxAaG9zdF9jcHVALCRob3N0X2Nw
dSw7dCB0CnMsQGhvc3RfdmVuZG9yQCwkaG9zdF92ZW5kb3IsO3QgdApzLEBo
b3N0X29zQCwkaG9zdF9vcyw7dCB0CnMsQHRhcmdldEAsJHRhcmdldCw7dCB0
CnMsQHRhcmdldF9jcHVALCR0YXJnZXRfY3B1LDt0IHQKcyxAdGFyZ2V0X3Zl
bmRvckAsJHRhcmdldF92ZW5kb3IsO3QgdApzLEB0YXJnZXRfb3NALCR0YXJn
ZXRfb3MsO3QgdApzLEBMREAsJExELDt0IHQKcyxAQ0NALCRDQyw7dCB0CnMs
QENGTEFHU0AsJENGTEFHUyw7dCB0CnMsQExERkxBR1NALCRMREZMQUdTLDt0
IHQKcyxAQ1BQRkxBR1NALCRDUFBGTEFHUyw7dCB0CnMsQGFjX2N0X0NDQCwk
YWNfY3RfQ0MsO3QgdApzLEBFWEVFWFRALCRFWEVFWFQsO3QgdApzLEBPQkpF
WFRALCRPQkpFWFQsO3QgdApzLEBDWFhALCRDWFgsO3QgdApzLEBDWFhGTEFH
U0AsJENYWEZMQUdTLDt0IHQKcyxAYWNfY3RfQ1hYQCwkYWNfY3RfQ1hYLDt0
IHQKcyxASU5TVEFMTF9QUk9HUkFNQCwkSU5TVEFMTF9QUk9HUkFNLDt0IHQK
cyxASU5TVEFMTF9TQ1JJUFRALCRJTlNUQUxMX1NDUklQVCw7dCB0CnMsQElO
U1RBTExfREFUQUAsJElOU1RBTExfREFUQSw7dCB0CnMsQFJBTkxJQkAsJFJB
TkxJQiw7dCB0CnMsQGFjX2N0X1JBTkxJQkAsJGFjX2N0X1JBTkxJQiw7dCB0
CnMsQExOX1NALCRMTl9TLDt0IHQKcyxARUNIT0AsJEVDSE8sO3QgdApzLEBT
VFJJUEAsJFNUUklQLDt0IHQKcyxAYWNfY3RfU1RSSVBALCRhY19jdF9TVFJJ
UCw7dCB0CnMsQENQUEAsJENQUCw7dCB0CnMsQEVHUkVQQCwkRUdSRVAsO3Qg
dApzLEBMSUJUT09MQCwkTElCVE9PTCw7dCB0CnMsQFBLR19DT05GSUdALCRQ
S0dfQ09ORklHLDt0IHQKcyxAUlRTVF9DRkxBR1NALCRSVFNUX0NGTEFHUyw7
dCB0CnMsQFJUU1RfTElCU0AsJFJUU1RfTElCUyw7dCB0CnMsQGhhdmVfbGli
cnRzdEAsJGhhdmVfbGlicnRzdCw7dCB0CnMsQGRlZmF1bHRfbWxwM19ibGFz
QCwkZGVmYXVsdF9tbHAzX2JsYXMsO3QgdApzLEBJTkNTQCwkSU5DUyw7dCB0
CnMsQHRlc3RkYXRhX2RpckAsJHRlc3RkYXRhX2Rpciw7dCB0CnMsQGFsbF9s
aWJzQCwkYWxsX2xpYnMsO3QgdApzLEBRTl9CVUlMRF9MSUJfU1BFQ0AsJFFO
X0JVSUxEX0xJQl9TUEVDLDt0IHQKcyxAUU5fSU5TVEFMTF9MSUJfU1BFQ0As
JFFOX0lOU1RBTExfTElCX1NQRUMsO3QgdApzLEBRTl9CVUlMRF9JTkNfU1BF
Q0AsJFFOX0JVSUxEX0lOQ19TUEVDLDt0IHQKcyxAUU5fSU5TVEFMTF9JTkNf
U1BFQ0AsJFFOX0lOU1RBTExfSU5DX1NQRUMsO3QgdApzLEBRTl9TUkNESVJA
LCRRTl9TUkNESVIsO3QgdApzLEBMSUJPQkpTQCwkTElCT0JKUyw7dCB0CnMs
QExUTElCT0JKU0AsJExUTElCT0JKUyw7dCB0CkNFT0YKCl9BQ0VPRgoKICBj
YXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YKICAjIFNwbGl0IHRoZSBz
dWJzdGl0dXRpb25zIGludG8gYml0ZS1zaXplZCBwaWVjZXMgZm9yIHNlZHMg
d2l0aAogICMgc21hbGwgY29tbWFuZCBudW1iZXIgbGltaXRzLCBsaWtlIG9u
IERpZ2l0YWwgT1NGLzEgYW5kIEhQLVVYLgogIGFjX21heF9zZWRfbGluZXM9
NDgKICBhY19zZWRfZnJhZz0xICMgTnVtYmVyIG9mIGN1cnJlbnQgZmlsZS4K
ICBhY19iZWc9MSAjIEZpcnN0IGxpbmUgZm9yIGN1cnJlbnQgZmlsZS4KICBh
Y19lbmQ9JGFjX21heF9zZWRfbGluZXMgIyBMaW5lIGFmdGVyIGxhc3QgbGlu
ZSBmb3IgY3VycmVudCBmaWxlLgogIGFjX21vcmVfbGluZXM9OgogIGFjX3Nl
ZF9jbWRzPQogIHdoaWxlICRhY19tb3JlX2xpbmVzOyBkbwogICAgaWYgdGVz
dCAkYWNfYmVnIC1ndCAxOyB0aGVuCiAgICAgIHNlZCAiMSwke2FjX2JlZ31k
OyAke2FjX2VuZH1xIiAkdG1wL3N1YnMuc2VkID4kdG1wL3N1YnMuZnJhZwog
ICAgZWxzZQogICAgICBzZWQgIiR7YWNfZW5kfXEiICR0bXAvc3Vicy5zZWQg
PiR0bXAvc3Vicy5mcmFnCiAgICBmaQogICAgaWYgdGVzdCAhIC1zICR0bXAv
c3Vicy5mcmFnOyB0aGVuCiAgICAgIGFjX21vcmVfbGluZXM9ZmFsc2UKICAg
IGVsc2UKICAgICAgIyBUaGUgcHVycG9zZSBvZiB0aGUgbGFiZWwgYW5kIG9m
IHRoZSBicmFuY2hpbmcgY29uZGl0aW9uIGlzIHRvCiAgICAgICMgc3BlZWQg
dXAgdGhlIHNlZCBwcm9jZXNzaW5nIChpZiB0aGVyZSBhcmUgbm8gYEAnIGF0
IGFsbCwgdGhlcmUKICAgICAgIyBpcyBubyBuZWVkIHRvIGJyb3dzZSBhbnkg
b2YgdGhlIHN1YnN0aXR1dGlvbnMpLgogICAgICAjIFRoZXNlIGFyZSB0aGUg
dHdvIGV4dHJhIHNlZCBjb21tYW5kcyBtZW50aW9uZWQgYWJvdmUuCiAgICAg
IChlY2hvICc6dAogIC9AW2EtekEtWl9dW2EtekEtWl8wLTldKkAvIWInICYm
IGNhdCAkdG1wL3N1YnMuZnJhZykgPiR0bXAvc3Vicy0kYWNfc2VkX2ZyYWcu
c2VkCiAgICAgIGlmIHRlc3QgLXogIiRhY19zZWRfY21kcyI7IHRoZW4KICAJ
YWNfc2VkX2NtZHM9InNlZCAtZiAkdG1wL3N1YnMtJGFjX3NlZF9mcmFnLnNl
ZCIKICAgICAgZWxzZQogIAlhY19zZWRfY21kcz0iJGFjX3NlZF9jbWRzIHwg
c2VkIC1mICR0bXAvc3Vicy0kYWNfc2VkX2ZyYWcuc2VkIgogICAgICBmaQog
ICAgICBhY19zZWRfZnJhZz1gZXhwciAkYWNfc2VkX2ZyYWcgKyAxYAogICAg
ICBhY19iZWc9JGFjX2VuZAogICAgICBhY19lbmQ9YGV4cHIgJGFjX2VuZCAr
ICRhY19tYXhfc2VkX2xpbmVzYAogICAgZmkKICBkb25lCiAgaWYgdGVzdCAt
eiAiJGFjX3NlZF9jbWRzIjsgdGhlbgogICAgYWNfc2VkX2NtZHM9Y2F0CiAg
ZmkKZmkgIyB0ZXN0IC1uICIkQ09ORklHX0ZJTEVTIgoKX0FDRU9GCmNhdCA+
PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRgpmb3IgYWNfZmlsZSBpbiA6ICRD
T05GSUdfRklMRVM7IGRvIHRlc3QgIngkYWNfZmlsZSIgPSB4OiAmJiBjb250
aW51ZQogICMgU3VwcG9ydCAib3V0ZmlsZVs6aW5maWxlWzppbmZpbGUuLi5d
XSIsIGRlZmF1bHRpbmcgaW5maWxlPSJvdXRmaWxlLmluIi4KICBjYXNlICRh
Y19maWxlIGluCiAgLSB8ICo6LSB8ICo6LToqICkgIyBpbnB1dCBmcm9tIHN0
ZGluCiAgICAgICAgY2F0ID4kdG1wL3N0ZGluCiAgICAgICAgYWNfZmlsZV9p
bj1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLFteOl0qOiwsJ2AKICAgICAg
ICBhY19maWxlPWBlY2hvICIkYWNfZmlsZSIgfCBzZWQgJ3MsOi4qLCwnYCA7
OwogICo6KiApIGFjX2ZpbGVfaW49YGVjaG8gIiRhY19maWxlIiB8IHNlZCAn
cyxbXjpdKjosLCdgCiAgICAgICAgYWNfZmlsZT1gZWNobyAiJGFjX2ZpbGUi
IHwgc2VkICdzLDouKiwsJ2AgOzsKICAqICkgICBhY19maWxlX2luPSRhY19m
aWxlLmluIDs7CiAgZXNhYwoKICAjIENvbXB1dGUgQHNyY2RpckAsIEB0b3Bf
c3JjZGlyQCwgYW5kIEBJTlNUQUxMQCBmb3Igc3ViZGlyZWN0b3JpZXMuCiAg
YWNfZGlyPWAoZGlybmFtZSAiJGFjX2ZpbGUiKSAyPi9kZXYvbnVsbCB8fAok
YXNfZXhwciBYIiRhY19maWxlIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9d
Ki8qJCcgXHwgXAogICAgICAgICBYIiRhY19maWxlIiA6ICdYXCgvL1wpW14v
XScgXHwgXAogICAgICAgICBYIiRhY19maWxlIiA6ICdYXCgvL1wpJCcgXHwg
XAogICAgICAgICBYIiRhY19maWxlIiA6ICdYXCgvXCknIFx8IFwKICAgICAg
ICAgLiAgICAgOiAnXCguXCknIDI+L2Rldi9udWxsIHx8CmVjaG8gWCIkYWNf
ZmlsZSIgfAogICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpc
LyokL3sgcy8vXDEvOyBxOyB9CiAgCSAgL15YXChcL1wvXClbXi9dLioveyBz
Ly9cMS87IHE7IH0KICAJICAvXlhcKFwvXC9cKSQveyBzLy9cMS87IHE7IH0K
ICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQogIAkgIHMvLiovLi87
IHEnYAogIHsgaWYgJGFzX21rZGlyX3A7IHRoZW4KICAgIG1rZGlyIC1wICIk
YWNfZGlyIgogIGVsc2UKICAgIGFzX2Rpcj0iJGFjX2RpciIKICAgIGFzX2Rp
cnM9CiAgICB3aGlsZSB0ZXN0ICEgLWQgIiRhc19kaXIiOyBkbwogICAgICBh
c19kaXJzPSIkYXNfZGlyICRhc19kaXJzIgogICAgICBhc19kaXI9YChkaXJu
YW1lICIkYXNfZGlyIikgMj4vZGV2L251bGwgfHwKJGFzX2V4cHIgWCIkYXNf
ZGlyIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAogICAg
ICAgICBYIiRhc19kaXIiIDogJ1hcKC8vXClbXi9dJyBcfCBcCiAgICAgICAg
IFgiJGFzX2RpciIgOiAnWFwoLy9cKSQnIFx8IFwKICAgICAgICAgWCIkYXNf
ZGlyIiA6ICdYXCgvXCknIFx8IFwKICAgICAgICAgLiAgICAgOiAnXCguXCkn
IDI+L2Rldi9udWxsIHx8CmVjaG8gWCIkYXNfZGlyIiB8CiAgICBzZWQgJy9e
WFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveyBzLy9cMS87IHE7IH0K
ICAJICAvXlhcKFwvXC9cKVteL10uKi97IHMvL1wxLzsgcTsgfQogIAkgIC9e
WFwoXC9cL1wpJC97IHMvL1wxLzsgcTsgfQogIAkgIC9eWFwoXC9cKS4qL3sg
cy8vXDEvOyBxOyB9CiAgCSAgcy8uKi8uLzsgcSdgCiAgICBkb25lCiAgICB0
ZXN0ICEgLW4gIiRhc19kaXJzIiB8fCBta2RpciAkYXNfZGlycwogIGZpIHx8
IHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBjcmVh
dGUgZGlyZWN0b3J5IFwiJGFjX2RpclwiIiA+JjUKZWNobyAiJGFzX21lOiBl
cnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgXCIkYWNfZGlyXCIiID4m
Mjt9CiAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTsgfQoKICBhY19idWls
ZGRpcj0uCgppZiB0ZXN0ICIkYWNfZGlyIiAhPSAuOyB0aGVuCiAgYWNfZGly
X3N1ZmZpeD0vYGVjaG8gIiRhY19kaXIiIHwgc2VkICdzLF5cLltcXC9dLCwn
YAogICMgQSAiLi4vIiBmb3IgZWFjaCBkaXJlY3RvcnkgaW4gJGFjX2Rpcl9z
dWZmaXguCiAgYWNfdG9wX2J1aWxkZGlyPWBlY2hvICIkYWNfZGlyX3N1ZmZp
eCIgfCBzZWQgJ3MsL1teXFwvXSosLi4vLGcnYAplbHNlCiAgYWNfZGlyX3N1
ZmZpeD0gYWNfdG9wX2J1aWxkZGlyPQpmaQoKY2FzZSAkc3JjZGlyIGluCiAg
LikgICMgTm8gLS1zcmNkaXIgb3B0aW9uLiAgV2UgYXJlIGJ1aWxkaW5nIGlu
IHBsYWNlLgogICAgYWNfc3JjZGlyPS4KICAgIGlmIHRlc3QgLXogIiRhY190
b3BfYnVpbGRkaXIiOyB0aGVuCiAgICAgICBhY190b3Bfc3JjZGlyPS4KICAg
IGVsc2UKICAgICAgIGFjX3RvcF9zcmNkaXI9YGVjaG8gJGFjX3RvcF9idWls
ZGRpciB8IHNlZCAncywvJCwsJ2AKICAgIGZpIDs7CiAgW1xcL10qIHwgPzpb
XFwvXSogKSAgIyBBYnNvbHV0ZSBwYXRoLgogICAgYWNfc3JjZGlyPSRzcmNk
aXIkYWNfZGlyX3N1ZmZpeDsKICAgIGFjX3RvcF9zcmNkaXI9JHNyY2RpciA7
OwogICopICMgUmVsYXRpdmUgcGF0aC4KICAgIGFjX3NyY2Rpcj0kYWNfdG9w
X2J1aWxkZGlyJHNyY2RpciRhY19kaXJfc3VmZml4CiAgICBhY190b3Bfc3Jj
ZGlyPSRhY190b3BfYnVpbGRkaXIkc3JjZGlyIDs7CmVzYWMKIyBEb24ndCBi
bGluZGx5IHBlcmZvcm0gYSBgY2QgIiRhY19kaXIiLyRhY19mb28gJiYgcHdk
YCBzaW5jZSAkYWNfZm9vIGNhbiBiZQojIGFic29sdXRlLgphY19hYnNfYnVp
bGRkaXI9YGNkICIkYWNfZGlyIiAmJiBjZCAkYWNfYnVpbGRkaXIgJiYgcHdk
YAphY19hYnNfdG9wX2J1aWxkZGlyPWBjZCAiJGFjX2RpciIgJiYgY2QgJHth
Y190b3BfYnVpbGRkaXJ9LiAmJiBwd2RgCmFjX2Fic19zcmNkaXI9YGNkICIk
YWNfZGlyIiAmJiBjZCAkYWNfc3JjZGlyICYmIHB3ZGAKYWNfYWJzX3RvcF9z
cmNkaXI9YGNkICIkYWNfZGlyIiAmJiBjZCAkYWNfdG9wX3NyY2RpciAmJiBw
d2RgCgoKICBjYXNlICRJTlNUQUxMIGluCiAgW1xcLyRdKiB8ID86W1xcL10q
ICkgYWNfSU5TVEFMTD0kSU5TVEFMTCA7OwogICopIGFjX0lOU1RBTEw9JGFj
X3RvcF9idWlsZGRpciRJTlNUQUxMIDs7CiAgZXNhYwoKICBpZiB0ZXN0IHgi
JGFjX2ZpbGUiICE9IHgtOyB0aGVuCiAgICB7IGVjaG8gIiRhc19tZTokTElO
RU5POiBjcmVhdGluZyAkYWNfZmlsZSIgPiY1CmVjaG8gIiRhc19tZTogY3Jl
YXRpbmcgJGFjX2ZpbGUiID4mNjt9CiAgICBybSAtZiAiJGFjX2ZpbGUiCiAg
ZmkKICAjIExldCdzIHN0aWxsIHByZXRlbmQgaXQgaXMgYGNvbmZpZ3VyZScg
d2hpY2ggaW5zdGFudGlhdGVzIChpLmUuLCBkb24ndAogICMgdXNlICRhc19t
ZSksIHBlb3BsZSB3b3VsZCBiZSBzdXJwcmlzZWQgdG8gcmVhZDoKICAjICAg
IC8qIGNvbmZpZy5oLiAgR2VuZXJhdGVkIGJ5IGNvbmZpZy5zdGF0dXMuICAq
LwogIGlmIHRlc3QgeCIkYWNfZmlsZSIgPSB4LTsgdGhlbgogICAgY29uZmln
dXJlX2lucHV0PQogIGVsc2UKICAgIGNvbmZpZ3VyZV9pbnB1dD0iJGFjX2Zp
bGUuICAiCiAgZmkKICBjb25maWd1cmVfaW5wdXQ9JGNvbmZpZ3VyZV9pbnB1
dCJHZW5lcmF0ZWQgZnJvbSBgZWNobyAkYWNfZmlsZV9pbiB8CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWQgJ3MsLiovLCwnYCBi
eSBjb25maWd1cmUuIgoKICAjIEZpcnN0IGxvb2sgZm9yIHRoZSBpbnB1dCBm
aWxlcyBpbiB0aGUgYnVpbGQgdHJlZSwgb3RoZXJ3aXNlIGluIHRoZQogICMg
c3JjIHRyZWUuCiAgYWNfZmlsZV9pbnB1dHM9YElGUz06CiAgICBmb3IgZiBp
biAkYWNfZmlsZV9pbjsgZG8KICAgICAgY2FzZSAkZiBpbgogICAgICAtKSBl
Y2hvICR0bXAvc3RkaW4gOzsKICAgICAgW1xcLyRdKikKICAgICAgICAgIyBB
YnNvbHV0ZSAoY2FuJ3QgYmUgRE9TLXN0eWxlLCBhcyBJRlM9OikKICAgICAg
ICAgdGVzdCAtZiAiJGYiIHx8IHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzog
ZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRmIiA+JjUKZWNobyAi
JGFzX21lOiBlcnJvcjogY2Fubm90IGZpbmQgaW5wdXQgZmlsZTogJGYiID4m
Mjt9CiAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQogICAgICAgICBlY2hv
ICRmOzsKICAgICAgKikgIyBSZWxhdGl2ZQogICAgICAgICBpZiB0ZXN0IC1m
ICIkZiI7IHRoZW4KICAgICAgICAgICAjIEJ1aWxkIHRyZWUKICAgICAgICAg
ICBlY2hvICRmCiAgICAgICAgIGVsaWYgdGVzdCAtZiAiJHNyY2Rpci8kZiI7
IHRoZW4KICAgICAgICAgICAjIFNvdXJjZSB0cmVlCiAgICAgICAgICAgZWNo
byAkc3JjZGlyLyRmCiAgICAgICAgIGVsc2UKICAgICAgICAgICAjIC9kZXYv
bnVsbCB0cmVlCiAgICAgICAgICAgeyB7IGVjaG8gIiRhc19tZTokTElORU5P
OiBlcnJvcjogY2Fubm90IGZpbmQgaW5wdXQgZmlsZTogJGYiID4mNQplY2hv
ICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkZiIg
PiYyO30KICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CiAgICAgICAgIGZp
OzsKICAgICAgZXNhYwogICAgZG9uZWAgfHwgeyAoZXhpdCAxKTsgZXhpdCAx
OyB9Cl9BQ0VPRgpjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRgogIHNl
ZCAiJGFjX3Zwc3ViCiRleHRyYXN1YgpfQUNFT0YKY2F0ID4+JENPTkZJR19T
VEFUVVMgPDxcX0FDRU9GCjp0Ci9AW2EtekEtWl9dW2EtekEtWl8wLTldKkAv
IWIKcyxAY29uZmlndXJlX2lucHV0QCwkY29uZmlndXJlX2lucHV0LDt0IHQK
cyxAc3JjZGlyQCwkYWNfc3JjZGlyLDt0IHQKcyxAYWJzX3NyY2RpckAsJGFj
X2Fic19zcmNkaXIsO3QgdApzLEB0b3Bfc3JjZGlyQCwkYWNfdG9wX3NyY2Rp
ciw7dCB0CnMsQGFic190b3Bfc3JjZGlyQCwkYWNfYWJzX3RvcF9zcmNkaXIs
O3QgdApzLEBidWlsZGRpckAsJGFjX2J1aWxkZGlyLDt0IHQKcyxAYWJzX2J1
aWxkZGlyQCwkYWNfYWJzX2J1aWxkZGlyLDt0IHQKcyxAdG9wX2J1aWxkZGly
QCwkYWNfdG9wX2J1aWxkZGlyLDt0IHQKcyxAYWJzX3RvcF9idWlsZGRpckAs
JGFjX2Fic190b3BfYnVpbGRkaXIsO3QgdApzLEBJTlNUQUxMQCwkYWNfSU5T
VEFMTCw7dCB0CiIgJGFjX2ZpbGVfaW5wdXRzIHwgKGV2YWwgIiRhY19zZWRf
Y21kcyIpID4kdG1wL291dAogIHJtIC1mICR0bXAvc3RkaW4KICBpZiB0ZXN0
IHgiJGFjX2ZpbGUiICE9IHgtOyB0aGVuCiAgICBtdiAkdG1wL291dCAkYWNf
ZmlsZQogIGVsc2UKICAgIGNhdCAkdG1wL291dAogICAgcm0gLWYgJHRtcC9v
dXQKICBmaQoKZG9uZQpfQUNFT0YKY2F0ID4+JENPTkZJR19TVEFUVVMgPDxc
X0FDRU9GCgojCiMgQ09ORklHX0hFQURFUiBzZWN0aW9uLgojCgojIFRoZXNl
IHNlZCBjb21tYW5kcyBhcmUgcGFzc2VkIHRvIHNlZCBhcyAiQSBOQU1FIEIg
TkFNRSBDIFZBTFVFIEQiLCB3aGVyZQojIE5BTUUgaXMgdGhlIGNwcCBtYWNy
byBiZWluZyBkZWZpbmVkIGFuZCBWQUxVRSBpcyB0aGUgdmFsdWUgaXQgaXMg
YmVpbmcgZ2l2ZW4uCiMKIyBhY19kIHNldHMgdGhlIHZhbHVlIGluICIjZGVm
aW5lIE5BTUUgVkFMVUUiIGxpbmVzLgphY19kQT0ncyxeXChbIAldKlwpI1wo
WyAJXSpkZWZpbmVbIAldWyAJXSpcKScKYWNfZEI9J1sgCV0uKiQsXDEjXDIn
CmFjX2RDPScgJwphY19kRD0nLDt0JwojIGFjX3UgdHVybnMgIiN1bmRlZiBO
QU1FIiB3aXRob3V0IHRyYWlsaW5nIGJsYW5rcyBpbnRvICIjZGVmaW5lIE5B
TUUgVkFMVUUiLgphY191QT0ncyxeXChbIAldKlwpI1woWyAJXSpcKXVuZGVm
XChbIAldWyAJXSpcKScKYWNfdUI9JyQsXDEjXDJkZWZpbmVcMycKYWNfdUM9
JyAnCmFjX3VEPScsO3QnCgpmb3IgYWNfZmlsZSBpbiA6ICRDT05GSUdfSEVB
REVSUzsgZG8gdGVzdCAieCRhY19maWxlIiA9IHg6ICYmIGNvbnRpbnVlCiAg
IyBTdXBwb3J0ICJvdXRmaWxlWzppbmZpbGVbOmluZmlsZS4uLl1dIiwgZGVm
YXVsdGluZyBpbmZpbGU9Im91dGZpbGUuaW4iLgogIGNhc2UgJGFjX2ZpbGUg
aW4KICAtIHwgKjotIHwgKjotOiogKSAjIGlucHV0IGZyb20gc3RkaW4KICAg
ICAgICBjYXQgPiR0bXAvc3RkaW4KICAgICAgICBhY19maWxlX2luPWBlY2hv
ICIkYWNfZmlsZSIgfCBzZWQgJ3MsW146XSo6LCwnYAogICAgICAgIGFjX2Zp
bGU9YGVjaG8gIiRhY19maWxlIiB8IHNlZCAncyw6LiosLCdgIDs7CiAgKjoq
ICkgYWNfZmlsZV9pbj1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLFteOl0q
OiwsJ2AKICAgICAgICBhY19maWxlPWBlY2hvICIkYWNfZmlsZSIgfCBzZWQg
J3MsOi4qLCwnYCA7OwogICogKSAgIGFjX2ZpbGVfaW49JGFjX2ZpbGUuaW4g
OzsKICBlc2FjCgogIHRlc3QgeCIkYWNfZmlsZSIgIT0geC0gJiYgeyBlY2hv
ICIkYXNfbWU6JExJTkVOTzogY3JlYXRpbmcgJGFjX2ZpbGUiID4mNQplY2hv
ICIkYXNfbWU6IGNyZWF0aW5nICRhY19maWxlIiA+JjY7fQoKICAjIEZpcnN0
IGxvb2sgZm9yIHRoZSBpbnB1dCBmaWxlcyBpbiB0aGUgYnVpbGQgdHJlZSwg
b3RoZXJ3aXNlIGluIHRoZQogICMgc3JjIHRyZWUuCiAgYWNfZmlsZV9pbnB1
dHM9YElGUz06CiAgICBmb3IgZiBpbiAkYWNfZmlsZV9pbjsgZG8KICAgICAg
Y2FzZSAkZiBpbgogICAgICAtKSBlY2hvICR0bXAvc3RkaW4gOzsKICAgICAg
W1xcLyRdKikKICAgICAgICAgIyBBYnNvbHV0ZSAoY2FuJ3QgYmUgRE9TLXN0
eWxlLCBhcyBJRlM9OikKICAgICAgICAgdGVzdCAtZiAiJGYiIHx8IHsgeyBl
Y2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0
IGZpbGU6ICRmIiA+JjUKZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGZp
bmQgaW5wdXQgZmlsZTogJGYiID4mMjt9CiAgIHsgKGV4aXQgMSk7IGV4aXQg
MTsgfTsgfQogICAgICAgICBlY2hvICRmOzsKICAgICAgKikgIyBSZWxhdGl2
ZQogICAgICAgICBpZiB0ZXN0IC1mICIkZiI7IHRoZW4KICAgICAgICAgICAj
IEJ1aWxkIHRyZWUKICAgICAgICAgICBlY2hvICRmCiAgICAgICAgIGVsaWYg
dGVzdCAtZiAiJHNyY2Rpci8kZiI7IHRoZW4KICAgICAgICAgICAjIFNvdXJj
ZSB0cmVlCiAgICAgICAgICAgZWNobyAkc3JjZGlyLyRmCiAgICAgICAgIGVs
c2UKICAgICAgICAgICAjIC9kZXYvbnVsbCB0cmVlCiAgICAgICAgICAgeyB7
IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGZpbmQgaW5w
dXQgZmlsZTogJGYiID4mNQplY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3Qg
ZmluZCBpbnB1dCBmaWxlOiAkZiIgPiYyO30KICAgeyAoZXhpdCAxKTsgZXhp
dCAxOyB9OyB9CiAgICAgICAgIGZpOzsKICAgICAgZXNhYwogICAgZG9uZWAg
fHwgeyAoZXhpdCAxKTsgZXhpdCAxOyB9CiAgIyBSZW1vdmUgdGhlIHRyYWls
aW5nIHNwYWNlcy4KICBzZWQgJ3MvWyAJXSokLy8nICRhY19maWxlX2lucHV0
cyA+JHRtcC9pbgoKX0FDRU9GCgojIFRyYW5zZm9ybSBjb25mZGVmcy5oIGlu
dG8gdHdvIHNlZCBzY3JpcHRzLCBgY29uZnRlc3QuZGVmaW5lcycgYW5kCiMg
YGNvbmZ0ZXN0LnVuZGVmcycsIHRoYXQgc3Vic3RpdHV0ZXMgdGhlIHByb3Bl
ciB2YWx1ZXMgaW50bwojIGNvbmZpZy5oLmluIHRvIHByb2R1Y2UgY29uZmln
LmguICBUaGUgZmlyc3QgaGFuZGxlcyBgI2RlZmluZScKIyB0ZW1wbGF0ZXMs
IGFuZCB0aGUgc2Vjb25kIGAjdW5kZWYnIHRlbXBsYXRlcy4KIyBBbmQgZmly
c3Q6IFByb3RlY3QgYWdhaW5zdCBiZWluZyBvbiB0aGUgcmlnaHQgc2lkZSBv
ZiBhIHNlZCBzdWJzdCBpbgojIGNvbmZpZy5zdGF0dXMuICBQcm90ZWN0IGFn
YWluc3QgYmVpbmcgaW4gYW4gdW5xdW90ZWQgaGVyZSBkb2N1bWVudAojIGlu
IGNvbmZpZy5zdGF0dXMuCnJtIC1mIGNvbmZ0ZXN0LmRlZmluZXMgY29uZnRl
c3QudW5kZWZzCiMgVXNpbmcgYSBoZXJlIGRvY3VtZW50IGluc3RlYWQgb2Yg
YSBzdHJpbmcgcmVkdWNlcyB0aGUgcXVvdGluZyBuaWdodG1hcmUuCiMgUHV0
dGluZyBjb21tZW50cyBpbiBzZWQgc2NyaXB0cyBpcyBub3QgcG9ydGFibGUu
CiMKIyBgZW5kJyBpcyB1c2VkIHRvIGF2b2lkIHRoYXQgdGhlIHNlY29uZCBt
YWluIHNlZCBjb21tYW5kIChtZWFudCBmb3IKIyAwLWFyeSBDUFAgbWFjcm9z
KSBhcHBsaWVzIHRvIG4tYXJ5IG1hY3JvIGRlZmluaXRpb25zLgojIFNlZSB0
aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlvbiBmb3IgYGNsZWFyJy4KY2F0ID5j
b25mZGVmMnNlZC5zZWQgPDxcX0FDRU9GCnMvW1xcJixdL1xcJi9nCnMsW1xc
JGBdLFxcJixnCnQgY2xlYXIKOiBjbGVhcgpzLF5bIAldKiNbIAldKmRlZmlu
ZVsgCV1bIAldKlwoW14gCShdW14gCShdKlwpXCgoW14pXSopXClbIAldKlwo
LipcKSQsJHthY19kQX1cMSR7YWNfZEJ9XDFcMiR7YWNfZEN9XDMke2FjX2RE
fSxncAp0IGVuZApzLF5bIAldKiNbIAldKmRlZmluZVsgCV1bIAldKlwoW14g
CV1bXiAJXSpcKVsgCV0qXCguKlwpJCwke2FjX2RBfVwxJHthY19kQn1cMSR7
YWNfZEN9XDIke2FjX2REfSxncAo6IGVuZApfQUNFT0YKIyBJZiBzb21lIG1h
Y3JvcyB3ZXJlIGNhbGxlZCBzZXZlcmFsIHRpbWVzIHRoZXJlIG1pZ2h0IGJl
IHNldmVyYWwgdGltZXMKIyB0aGUgc2FtZSAjZGVmaW5lcywgd2hpY2ggaXMg
dXNlbGVzcy4gIE5ldmVydGhlbGVzcywgd2UgbWF5IG5vdCB3YW50IHRvCiMg
c29ydCB0aGVtLCBzaW5jZSB3ZSB3YW50IHRoZSAqbGFzdCogQUMtREVGSU5F
IHRvIGJlIGhvbm9yZWQuCnVuaXEgY29uZmRlZnMuaCB8IHNlZCAtbiAtZiBj
b25mZGVmMnNlZC5zZWQgPmNvbmZ0ZXN0LmRlZmluZXMKc2VkICdzL2FjX2Qv
YWNfdS9nJyBjb25mdGVzdC5kZWZpbmVzID5jb25mdGVzdC51bmRlZnMKcm0g
LWYgY29uZmRlZjJzZWQuc2VkCgojIFRoaXMgc2VkIGNvbW1hbmQgcmVwbGFj
ZXMgI3VuZGVmIHdpdGggY29tbWVudHMuICBUaGlzIGlzIG5lY2Vzc2FyeSwg
Zm9yCiMgZXhhbXBsZSwgaW4gdGhlIGNhc2Ugb2YgX1BPU0lYX1NPVVJDRSwg
d2hpY2ggaXMgcHJlZGVmaW5lZCBhbmQgcmVxdWlyZWQKIyBvbiBzb21lIHN5
c3RlbXMgd2hlcmUgY29uZmlndXJlIHdpbGwgbm90IGRlY2lkZSB0byBkZWZp
bmUgaXQuCmNhdCA+PmNvbmZ0ZXN0LnVuZGVmcyA8PFxfQUNFT0YKcyxeWyAJ
XSojWyAJXSp1bmRlZlsgCV1bIAldKlthLXpBLVpfXVthLXpBLVpfMC05XSos
LyogJiAqLywKX0FDRU9GCgojIEJyZWFrIHVwIGNvbmZ0ZXN0LmRlZmluZXMg
YmVjYXVzZSBzb21lIHNoZWxscyBoYXZlIGEgbGltaXQgb24gdGhlIHNpemUK
IyBvZiBoZXJlIGRvY3VtZW50cywgYW5kIG9sZCBzZWRzIGhhdmUgc21hbGwg
bGltaXRzIHRvbyAoMTAwIGNtZHMpLgplY2hvICcgICMgSGFuZGxlIGFsbCB0
aGUgI2RlZmluZSB0ZW1wbGF0ZXMgb25seSBpZiBuZWNlc3NhcnkuJyA+PiRD
T05GSUdfU1RBVFVTCmVjaG8gJyAgaWYgZ3JlcCAiXlsgCV0qI1sgCV0qZGVm
aW5lIiAkdG1wL2luID4vZGV2L251bGw7IHRoZW4nID4+JENPTkZJR19TVEFU
VVMKZWNobyAnICAjIElmIHRoZXJlIGFyZSBubyBkZWZpbmVzLCB3ZSBtYXkg
aGF2ZSBhbiBlbXB0eSBpZi9maScgPj4kQ09ORklHX1NUQVRVUwplY2hvICcg
IDonID4+JENPTkZJR19TVEFUVVMKcm0gLWYgY29uZnRlc3QudGFpbAp3aGls
ZSBncmVwIC4gY29uZnRlc3QuZGVmaW5lcyA+L2Rldi9udWxsCmRvCiAgIyBX
cml0ZSBhIGxpbWl0ZWQtc2l6ZSBoZXJlIGRvY3VtZW50IHRvICR0bXAvZGVm
aW5lcy5zZWQuCiAgZWNobyAnICBjYXQgPiR0bXAvZGVmaW5lcy5zZWQgPDxD
RU9GJyA+PiRDT05GSUdfU1RBVFVTCiAgIyBTcGVlZCB1cDogZG9uJ3QgY29u
c2lkZXIgdGhlIG5vbiBgI2RlZmluZScgbGluZXMuCiAgZWNobyAnL15bIAld
KiNbIAldKmRlZmluZS8hYicgPj4kQ09ORklHX1NUQVRVUwogICMgV29yayBh
cm91bmQgdGhlIGZvcmdldC10by1yZXNldC10aGUtZmxhZyBidWcuCiAgZWNo
byAndCBjbHInID4+JENPTkZJR19TVEFUVVMKICBlY2hvICc6IGNscicgPj4k
Q09ORklHX1NUQVRVUwogIHNlZCAke2FjX21heF9oZXJlX2xpbmVzfXEgY29u
ZnRlc3QuZGVmaW5lcyA+PiRDT05GSUdfU1RBVFVTCiAgZWNobyAnQ0VPRgog
IHNlZCAtZiAkdG1wL2RlZmluZXMuc2VkICR0bXAvaW4gPiR0bXAvb3V0CiAg
cm0gLWYgJHRtcC9pbgogIG12ICR0bXAvb3V0ICR0bXAvaW4KJyA+PiRDT05G
SUdfU1RBVFVTCiAgc2VkIDEsJHthY19tYXhfaGVyZV9saW5lc31kIGNvbmZ0
ZXN0LmRlZmluZXMgPmNvbmZ0ZXN0LnRhaWwKICBybSAtZiBjb25mdGVzdC5k
ZWZpbmVzCiAgbXYgY29uZnRlc3QudGFpbCBjb25mdGVzdC5kZWZpbmVzCmRv
bmUKcm0gLWYgY29uZnRlc3QuZGVmaW5lcwplY2hvICcgIGZpICMgZ3JlcCcg
Pj4kQ09ORklHX1NUQVRVUwplY2hvID4+JENPTkZJR19TVEFUVVMKCiMgQnJl
YWsgdXAgY29uZnRlc3QudW5kZWZzIGJlY2F1c2Ugc29tZSBzaGVsbHMgaGF2
ZSBhIGxpbWl0IG9uIHRoZSBzaXplCiMgb2YgaGVyZSBkb2N1bWVudHMsIGFu
ZCBvbGQgc2VkcyBoYXZlIHNtYWxsIGxpbWl0cyB0b28gKDEwMCBjbWRzKS4K
ZWNobyAnICAjIEhhbmRsZSBhbGwgdGhlICN1bmRlZiB0ZW1wbGF0ZXMnID4+
JENPTkZJR19TVEFUVVMKcm0gLWYgY29uZnRlc3QudGFpbAp3aGlsZSBncmVw
IC4gY29uZnRlc3QudW5kZWZzID4vZGV2L251bGwKZG8KICAjIFdyaXRlIGEg
bGltaXRlZC1zaXplIGhlcmUgZG9jdW1lbnQgdG8gJHRtcC91bmRlZnMuc2Vk
LgogIGVjaG8gJyAgY2F0ID4kdG1wL3VuZGVmcy5zZWQgPDxDRU9GJyA+PiRD
T05GSUdfU1RBVFVTCiAgIyBTcGVlZCB1cDogZG9uJ3QgY29uc2lkZXIgdGhl
IG5vbiBgI3VuZGVmJwogIGVjaG8gJy9eWyAJXSojWyAJXSp1bmRlZi8hYicg
Pj4kQ09ORklHX1NUQVRVUwogICMgV29yayBhcm91bmQgdGhlIGZvcmdldC10
by1yZXNldC10aGUtZmxhZyBidWcuCiAgZWNobyAndCBjbHInID4+JENPTkZJ
R19TVEFUVVMKICBlY2hvICc6IGNscicgPj4kQ09ORklHX1NUQVRVUwogIHNl
ZCAke2FjX21heF9oZXJlX2xpbmVzfXEgY29uZnRlc3QudW5kZWZzID4+JENP
TkZJR19TVEFUVVMKICBlY2hvICdDRU9GCiAgc2VkIC1mICR0bXAvdW5kZWZz
LnNlZCAkdG1wL2luID4kdG1wL291dAogIHJtIC1mICR0bXAvaW4KICBtdiAk
dG1wL291dCAkdG1wL2luCicgPj4kQ09ORklHX1NUQVRVUwogIHNlZCAxLCR7
YWNfbWF4X2hlcmVfbGluZXN9ZCBjb25mdGVzdC51bmRlZnMgPmNvbmZ0ZXN0
LnRhaWwKICBybSAtZiBjb25mdGVzdC51bmRlZnMKICBtdiBjb25mdGVzdC50
YWlsIGNvbmZ0ZXN0LnVuZGVmcwpkb25lCnJtIC1mIGNvbmZ0ZXN0LnVuZGVm
cwoKY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GCiAgIyBMZXQncyBz
dGlsbCBwcmV0ZW5kIGl0IGlzIGBjb25maWd1cmUnIHdoaWNoIGluc3RhbnRp
YXRlcyAoaS5lLiwgZG9uJ3QKICAjIHVzZSAkYXNfbWUpLCBwZW9wbGUgd291
bGQgYmUgc3VycHJpc2VkIHRvIHJlYWQ6CiAgIyAgICAvKiBjb25maWcuaC4g
IEdlbmVyYXRlZCBieSBjb25maWcuc3RhdHVzLiAgKi8KICBpZiB0ZXN0IHgi
JGFjX2ZpbGUiID0geC07IHRoZW4KICAgIGVjaG8gIi8qIEdlbmVyYXRlZCBi
eSBjb25maWd1cmUuICAqLyIgPiR0bXAvY29uZmlnLmgKICBlbHNlCiAgICBl
Y2hvICIvKiAkYWNfZmlsZS4gIEdlbmVyYXRlZCBieSBjb25maWd1cmUuICAq
LyIgPiR0bXAvY29uZmlnLmgKICBmaQogIGNhdCAkdG1wL2luID4+JHRtcC9j
b25maWcuaAogIHJtIC1mICR0bXAvaW4KICBpZiB0ZXN0IHgiJGFjX2ZpbGUi
ICE9IHgtOyB0aGVuCiAgICBpZiBkaWZmICRhY19maWxlICR0bXAvY29uZmln
LmggPi9kZXYvbnVsbCAyPiYxOyB0aGVuCiAgICAgIHsgZWNobyAiJGFzX21l
OiRMSU5FTk86ICRhY19maWxlIGlzIHVuY2hhbmdlZCIgPiY1CmVjaG8gIiRh
c19tZTogJGFjX2ZpbGUgaXMgdW5jaGFuZ2VkIiA+JjY7fQogICAgZWxzZQog
ICAgICBhY19kaXI9YChkaXJuYW1lICIkYWNfZmlsZSIpIDI+L2Rldi9udWxs
IHx8CiRhc19leHByIFgiJGFjX2ZpbGUiIDogJ1hcKC4qW14vXVwpLy8qW14v
XVteL10qLyokJyBcfCBcCiAgICAgICAgIFgiJGFjX2ZpbGUiIDogJ1hcKC8v
XClbXi9dJyBcfCBcCiAgICAgICAgIFgiJGFjX2ZpbGUiIDogJ1hcKC8vXCkk
JyBcfCBcCiAgICAgICAgIFgiJGFjX2ZpbGUiIDogJ1hcKC9cKScgXHwgXAog
ICAgICAgICAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKZWNobyBY
IiRhY19maWxlIiB8CiAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11b
Xi9dKlwvKiQveyBzLy9cMS87IHE7IH0KICAJICAvXlhcKFwvXC9cKVteL10u
Ki97IHMvL1wxLzsgcTsgfQogIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsg
cTsgfQogIAkgIC9eWFwoXC9cKS4qL3sgcy8vXDEvOyBxOyB9CiAgCSAgcy8u
Ki8uLzsgcSdgCiAgICAgIHsgaWYgJGFzX21rZGlyX3A7IHRoZW4KICAgIG1r
ZGlyIC1wICIkYWNfZGlyIgogIGVsc2UKICAgIGFzX2Rpcj0iJGFjX2RpciIK
ICAgIGFzX2RpcnM9CiAgICB3aGlsZSB0ZXN0ICEgLWQgIiRhc19kaXIiOyBk
bwogICAgICBhc19kaXJzPSIkYXNfZGlyICRhc19kaXJzIgogICAgICBhc19k
aXI9YChkaXJuYW1lICIkYXNfZGlyIikgMj4vZGV2L251bGwgfHwKJGFzX2V4
cHIgWCIkYXNfZGlyIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcg
XHwgXAogICAgICAgICBYIiRhc19kaXIiIDogJ1hcKC8vXClbXi9dJyBcfCBc
CiAgICAgICAgIFgiJGFzX2RpciIgOiAnWFwoLy9cKSQnIFx8IFwKICAgICAg
ICAgWCIkYXNfZGlyIiA6ICdYXCgvXCknIFx8IFwKICAgICAgICAgLiAgICAg
OiAnXCguXCknIDI+L2Rldi9udWxsIHx8CmVjaG8gWCIkYXNfZGlyIiB8CiAg
ICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveyBzLy9c
MS87IHE7IH0KICAJICAvXlhcKFwvXC9cKVteL10uKi97IHMvL1wxLzsgcTsg
fQogIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsgcTsgfQogIAkgIC9eWFwo
XC9cKS4qL3sgcy8vXDEvOyBxOyB9CiAgCSAgcy8uKi8uLzsgcSdgCiAgICBk
b25lCiAgICB0ZXN0ICEgLW4gIiRhc19kaXJzIiB8fCBta2RpciAkYXNfZGly
cwogIGZpIHx8IHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNh
bm5vdCBjcmVhdGUgZGlyZWN0b3J5IFwiJGFjX2RpclwiIiA+JjUKZWNobyAi
JGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgXCIkYWNf
ZGlyXCIiID4mMjt9CiAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTsgfQoK
ICAgICAgcm0gLWYgJGFjX2ZpbGUKICAgICAgbXYgJHRtcC9jb25maWcuaCAk
YWNfZmlsZQogICAgZmkKICBlbHNlCiAgICBjYXQgJHRtcC9jb25maWcuaAog
ICAgcm0gLWYgJHRtcC9jb25maWcuaAogIGZpCmRvbmUKX0FDRU9GCmNhdCA+
PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRgoKIwojIENPTkZJR19DT01NQU5E
UyBzZWN0aW9uLgojCmZvciBhY19maWxlIGluIDogJENPTkZJR19DT01NQU5E
UzsgZG8gdGVzdCAieCRhY19maWxlIiA9IHg6ICYmIGNvbnRpbnVlCiAgYWNf
ZGVzdD1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLDouKiwsJ2AKICBhY19z
b3VyY2U9YGVjaG8gIiRhY19maWxlIiB8IHNlZCAncyxbXjpdKjosLCdgCiAg
YWNfZGlyPWAoZGlybmFtZSAiJGFjX2Rlc3QiKSAyPi9kZXYvbnVsbCB8fAok
YXNfZXhwciBYIiRhY19kZXN0IiA6ICdYXCguKlteL11cKS8vKlteL11bXi9d
Ki8qJCcgXHwgXAogICAgICAgICBYIiRhY19kZXN0IiA6ICdYXCgvL1wpW14v
XScgXHwgXAogICAgICAgICBYIiRhY19kZXN0IiA6ICdYXCgvL1wpJCcgXHwg
XAogICAgICAgICBYIiRhY19kZXN0IiA6ICdYXCgvXCknIFx8IFwKICAgICAg
ICAgLiAgICAgOiAnXCguXCknIDI+L2Rldi9udWxsIHx8CmVjaG8gWCIkYWNf
ZGVzdCIgfAogICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpc
LyokL3sgcy8vXDEvOyBxOyB9CiAgCSAgL15YXChcL1wvXClbXi9dLioveyBz
Ly9cMS87IHE7IH0KICAJICAvXlhcKFwvXC9cKSQveyBzLy9cMS87IHE7IH0K
ICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQogIAkgIHMvLiovLi87
IHEnYAogIGFjX2J1aWxkZGlyPS4KCmlmIHRlc3QgIiRhY19kaXIiICE9IC47
IHRoZW4KICBhY19kaXJfc3VmZml4PS9gZWNobyAiJGFjX2RpciIgfCBzZWQg
J3MsXlwuW1xcL10sLCdgCiAgIyBBICIuLi8iIGZvciBlYWNoIGRpcmVjdG9y
eSBpbiAkYWNfZGlyX3N1ZmZpeC4KICBhY190b3BfYnVpbGRkaXI9YGVjaG8g
IiRhY19kaXJfc3VmZml4IiB8IHNlZCAncywvW15cXC9dKiwuLi8sZydgCmVs
c2UKICBhY19kaXJfc3VmZml4PSBhY190b3BfYnVpbGRkaXI9CmZpCgpjYXNl
ICRzcmNkaXIgaW4KICAuKSAgIyBObyAtLXNyY2RpciBvcHRpb24uICBXZSBh
cmUgYnVpbGRpbmcgaW4gcGxhY2UuCiAgICBhY19zcmNkaXI9LgogICAgaWYg
dGVzdCAteiAiJGFjX3RvcF9idWlsZGRpciI7IHRoZW4KICAgICAgIGFjX3Rv
cF9zcmNkaXI9LgogICAgZWxzZQogICAgICAgYWNfdG9wX3NyY2Rpcj1gZWNo
byAkYWNfdG9wX2J1aWxkZGlyIHwgc2VkICdzLC8kLCwnYAogICAgZmkgOzsK
ICBbXFwvXSogfCA/OltcXC9dKiApICAjIEFic29sdXRlIHBhdGguCiAgICBh
Y19zcmNkaXI9JHNyY2RpciRhY19kaXJfc3VmZml4OwogICAgYWNfdG9wX3Ny
Y2Rpcj0kc3JjZGlyIDs7CiAgKikgIyBSZWxhdGl2ZSBwYXRoLgogICAgYWNf
c3JjZGlyPSRhY190b3BfYnVpbGRkaXIkc3JjZGlyJGFjX2Rpcl9zdWZmaXgK
ICAgIGFjX3RvcF9zcmNkaXI9JGFjX3RvcF9idWlsZGRpciRzcmNkaXIgOzsK
ZXNhYwojIERvbid0IGJsaW5kbHkgcGVyZm9ybSBhIGBjZCAiJGFjX2RpciIv
JGFjX2ZvbyAmJiBwd2RgIHNpbmNlICRhY19mb28gY2FuIGJlCiMgYWJzb2x1
dGUuCmFjX2Fic19idWlsZGRpcj1gY2QgIiRhY19kaXIiICYmIGNkICRhY19i
dWlsZGRpciAmJiBwd2RgCmFjX2Fic190b3BfYnVpbGRkaXI9YGNkICIkYWNf
ZGlyIiAmJiBjZCAke2FjX3RvcF9idWlsZGRpcn0uICYmIHB3ZGAKYWNfYWJz
X3NyY2Rpcj1gY2QgIiRhY19kaXIiICYmIGNkICRhY19zcmNkaXIgJiYgcHdk
YAphY19hYnNfdG9wX3NyY2Rpcj1gY2QgIiRhY19kaXIiICYmIGNkICRhY190
b3Bfc3JjZGlyICYmIHB3ZGAKCgogIHsgZWNobyAiJGFzX21lOiRMSU5FTk86
IGV4ZWN1dGluZyAkYWNfZGVzdCBjb21tYW5kcyIgPiY1CmVjaG8gIiRhc19t
ZTogZXhlY3V0aW5nICRhY19kZXN0IGNvbW1hbmRzIiA+JjY7fQogIGNhc2Ug
JGFjX2Rlc3QgaW4KICAgIGRlZmF1bHQgKSBlY2hvIHRpbWVzdGFtcCA+IHN0
YW1wLWg7IGNobW9kICt4ICouc2ggOzsKICBlc2FjCmRvbmUKX0FDRU9GCgpj
YXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YKCnsgKGV4aXQgMCk7IGV4
aXQgMDsgfQpfQUNFT0YKY2htb2QgK3ggJENPTkZJR19TVEFUVVMKYWNfY2xl
YW5fZmlsZXM9JGFjX2NsZWFuX2ZpbGVzX3NhdmUKCgojIGNvbmZpZ3VyZSBp
cyB3cml0aW5nIHRvIGNvbmZpZy5sb2csIGFuZCB0aGVuIGNhbGxzIGNvbmZp
Zy5zdGF0dXMuCiMgY29uZmlnLnN0YXR1cyBkb2VzIGl0cyBvd24gcmVkaXJl
Y3Rpb24sIGFwcGVuZGluZyB0byBjb25maWcubG9nLgojIFVuZm9ydHVuYXRl
bHksIG9uIERPUyB0aGlzIGZhaWxzLCBhcyBjb25maWcubG9nIGlzIHN0aWxs
IGtlcHQgb3BlbgojIGJ5IGNvbmZpZ3VyZSwgc28gY29uZmlnLnN0YXR1cyB3
b24ndCBiZSBhYmxlIHRvIHdyaXRlIHRvIGl0OyBpdHMKIyBvdXRwdXQgaXMg
c2ltcGx5IGRpc2NhcmRlZC4gIFNvIHdlIGV4ZWMgdGhlIEZEIHRvIC9kZXYv
bnVsbCwKIyBlZmZlY3RpdmVseSBjbG9zaW5nIGNvbmZpZy5sb2csIHNvIGl0
IGNhbiBiZSBwcm9wZXJseSAocmUpb3BlbmVkIGFuZAojIGFwcGVuZGVkIHRv
IGJ5IGNvbmZpZy5zdGF0dXMuICBXaGVuIGNvbWluZyBiYWNrIHRvIGNvbmZp
Z3VyZSwgd2UKIyBuZWVkIHRvIG1ha2UgdGhlIEZEIGF2YWlsYWJsZSBhZ2Fp
bi4KaWYgdGVzdCAiJG5vX2NyZWF0ZSIgIT0geWVzOyB0aGVuCiAgYWNfY3Nf
c3VjY2Vzcz06CiAgYWNfY29uZmlnX3N0YXR1c19hcmdzPQogIHRlc3QgIiRz
aWxlbnQiID0geWVzICYmCiAgICBhY19jb25maWdfc3RhdHVzX2FyZ3M9IiRh
Y19jb25maWdfc3RhdHVzX2FyZ3MgLS1xdWlldCIKICBleGVjIDU+L2Rldi9u
dWxsCiAgJFNIRUxMICRDT05GSUdfU1RBVFVTICRhY19jb25maWdfc3RhdHVz
X2FyZ3MgfHwgYWNfY3Nfc3VjY2Vzcz1mYWxzZQogIGV4ZWMgNT4+Y29uZmln
LmxvZwogICMgVXNlIHx8LCBub3QgJiYsIHRvIGF2b2lkIGV4aXRpbmcgZnJv
bSB0aGUgaWYgd2l0aCAkPyA9IDEsIHdoaWNoCiAgIyB3b3VsZCBtYWtlIGNv
bmZpZ3VyZSBmYWlsIGlmIHRoaXMgaXMgdGhlIGxhc3QgaW5zdHJ1Y3Rpb24u
CiAgJGFjX2NzX3N1Y2Nlc3MgfHwgeyAoZXhpdCAxKTsgZXhpdCAxOyB9CmZp
CgoK


--0-1611111697-1154533397=:26067
Content-Type: text/plain; charset=us-ascii

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/
--0-1611111697-1154533397=:26067--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019