<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "http://bugs.gentoo.org/bugzilla.dtd">

<bugzilla version="2.22.7"
          urlbase="http://bugs.gentoo.org/"
          maintainer="bugzilla@gentoo.org"
>

    <bug>
          <bug_id>202985</bug_id>
          
          <creation_ts>2007-12-22 06:29 0000</creation_ts>
          <short_desc>emerge app-pda/pilot-link-0.12.3 fails in src_unpack() - cannot apply patch &quot;pilot-link-0.12.3-int_types.patch&quot;</short_desc>
          <delta_ts>2007-12-22 14:58:44 0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>Gentoo Linux</product>
          <component>Ebuilds</component>
          <version>unspecified</version>
          <rep_platform>All</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>apoliak@gmail.com</reporter>
          <assigned_to>pda@gentoo.org</assigned_to>
          

      

      
          <long_desc isprivate="0">
            <who>apoliak@gmail.com</who>
            <bug_when>2007-12-22 06:29:22 0000</bug_when>
            <thetext>during my last `emerge --sync &amp;&amp; emerge --update --deep --newuse world`, app-pda/pilot-link would be updated to version 0.12.3 from version 0.12.2. emerge crapped out when applying the patch named &quot;pilot-link-0.12.3-int_types.patch&quot; [last epatch call in ebuild&apos;s src_unpack()].

will create attachments with files as suggested by error log (environment, epatch output, build log).

Error Log Message
=================
 * Call stack:
 *               ebuild.sh, line   46:  Called src_unpack
 *             environment, line 4425:  Called epatch &apos;src_unpack&apos;
 *             environment, line 1948:  Called die
 * The specific snippet of code:
 *                   diefunc &quot;$FUNCNAME&quot; &quot;$LINENO&quot; &quot;$?&quot; &quot;Failed Patch: ${patchname}!&quot;;
 *  The die message:
 *   Failed Patch: pilot-link-0.12.3-int_types.patch!


Reproducible: Always

Steps to Reproduce:
emerge =app-pda/pilot-link-0.12.3

Actual Results:  
emerge exits with error at src_unpack() phase due to being unable to apply patch

Expected Results:  
package is emerged without a problem

`emerge --info` output:
Portage 2.1.4_rc11 (default-linux/x86/2007.0/desktop, gcc-4.2.2, glibc-2.7-r1, 2.6.23-gentoo-r4 i686)
=================================================================
System uname: 2.6.23-gentoo-r4 i686 Intel(R) Pentium(R) 4 CPU 3.00GHz
Timestamp of tree: Sat, 22 Dec 2007 00:16:01 +0000
distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
app-shells/bash:     3.2_p17-r1
dev-java/java-config: 1.3.7, 2.1.3
dev-lang/python:     2.5.1-r4
dev-python/pycrypto: 2.0.1-r6
sys-apps/baselayout: 1.12.10-r5
sys-apps/sandbox:    1.2.18.1-r2
sys-devel/autoconf:  2.13, 2.61-r1
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10
sys-devel/binutils:  2.18-r1
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   1.5.24
virtual/os-headers:  2.6.23-r2
ACCEPT_KEYWORDS=&quot;x86 ~x86&quot;
CBUILD=&quot;i686-pc-linux-gnu&quot;
CFLAGS=&quot;-O2 -march=pentium4 -pipe&quot;
CHOST=&quot;i686-pc-linux-gnu&quot;
CONFIG_PROTECT=&quot;/etc /opt/openjms/config /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config&quot;
CONFIG_PROTECT_MASK=&quot;/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/splash /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d&quot;
CXXFLAGS=&quot;-O2 -march=pentium4 -pipe&quot;
DISTDIR=&quot;/usr/portage/distfiles&quot;
EMERGE_DEFAULT_OPTS=&quot;&quot;
FEATURES=&quot;distlocks metadata-transfer parallel-fetch sandbox sfperms strict unmerge-orphans userfetch userpriv usersandbox&quot;
GENTOO_MIRRORS=&quot;http://www.gtlib.gatech.edu/pub/gentoo                 ftp://mirror.iawnet.sandia.gov/pub/gentoo/                 http://open-systems.ufl.edu/mirrors/gentoo                 http://prometheus.cs.wmich.edu/gentoo                 http://mirror.usu.edu/mirrors/gentoo/                 ftp://mirror.usu.edu/mirrors/gentoo/                 ftp://lug.mtu.edu/gentoo                 http://mirror.mcs.anl.gov/pub/gentoo/                 ftp://mirror.mcs.anl.gov/pub/gentoo/                 http://gentoo.mirrors.easynews.com/linux/gentoo/                 http://gentoo.cites.uiuc.edu/pub/gentoo/                 ftp://gentoo.cites.uiuc.edu/pub/gentoo/ &quot;
LINGUAS=&quot;en_US es_AR en es&quot;
MAKEOPTS=&quot;-j3&quot;
PKGDIR=&quot;/usr/portage/packages&quot;
PORTAGE_RSYNC_OPTS=&quot;--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*&quot;
PORTAGE_TMPDIR=&quot;/var/tmp&quot;
PORTDIR=&quot;/usr/portage&quot;
PORTDIR_OVERLAY=&quot;/usr/local/portage&quot;
SYNC=&quot;rsync://rsync.namerica.gentoo.org/gentoo-portage&quot;
USE=&quot;3ds 7zip S3TC X X509 Xaw3d a52 aac aalib acct ace acl acpi addbookmarks additions administrator adns afs agg aim akode alac alias alsa amarok amazon amd amr animgif ao aotuv aqua_theme ares arts artworkextra asm aspnet2 async audacious audiofile autoipd automount autoreplace avahi background bash-completion battery bcmath beagle berkdb bigpatch binary-drivers binfilter bitmap-fonts bittorrent bl blender-game bluetooth bonjour bookmarks branding bzip2 cairo cal3d calendar caps carbone_theme cardbus ccache cdaudio cdda cddb cdf cdinstall cdio cdparanoia cdr cdrom cdsound child-protection chipcard chm cisco clamav cli clock-screen cmdsubmenu cmucl colordiff compress config_wizard connectionstatus console contactnotes cpio cpudetection cpufreq cpulimit cracklib crciprec crypt cscope css ctype cups curl curlwrappers cursors cvs daap dar32 dar64 dbus dc1394 dedicated depth32 device-mapper dga dhcp dia dict disk-partition divx djbfft djvu dmi dnd dolby-record-switch dom4j domain-aware domainkeys doomsday dpmod dri dts dv dvbplayer dvd dvdnav dvdr dvdread dvi dynamicplugin eap-tls ecc editor eds emboss emerald emf emoticon emovix enca encode enscript eolconv epiphany erandom escreen esd etwin evo excel exif extensions extra-cardsets extraicons extramodules faillog fam fame fasttrack fat fax fbcon fbcondecor fbdev fbsplash festival ffmpeg finger firefox fits fix-connected-rt flac flash flatfile flexresp2 fltk fluidsynth fmod font-server fontconfig foomaticdb force-cgi-redirect fortran fping freetts ftp fuse fusion gadu galago gcj gd gdbm gdl gdm gedit general ggi gif gimp gimpprint glade glgd glib glibc-compat20 glitz glsa glut gmail gmedia gmttria gnet gnokii gnome gnome-print gnuplot gnutella gnutls gocr gphoto2 gpm gps grace grammar graphviz gre groupwise gs gsf gsm gssapi gstreamer gtk gtkhtml gtkspell gzip gzip-el h323 hacking hal hash hbci hddtemp hesiod hfs high-ints highlight history howl howl-compat html http httpd hub hyperestraier hyperwave-api ibam ical icecast icon icons iconv icp icq id3 id3tag idea idle idn ieee1394 ifp ilbc image imagemagick imap imlib immqt-bc imq inherit-graph inifile injection inkjar inline innodb insecure-savers interpreter ipod iptv ipv6 irc irda irman irmc isdnlog iso14755 italk jabber jack jack-tmpfs jad jai java java5 javacomm javamail javascript jbig jce jfs jikes jingle jms john joystick jpeg jpeg2k jpgraph jrtplib jsapi jumpplay junit jython kcal kde kdeenablefinal kdepim kdm kerberos key-screen keyring keyscrub kipi krb4 l7filter ladspa lame lapack largeterminal lash latex lcd lcms ldap ldap-sasl libburn libcaca libdsk libsamplerate libsexy libwww lights live lm_sensors log4j login-watch logitech-mouse logrotate lua lyrics lzo lzw mad mail maildir maps markdown math matroska maya-shaderlibrary mbox mbrola mcal md5sum mdb mdnsresponder-compat memlimit menubar mew mhash midi mikmod mime mimencode ming mixer mjpeg mmap mmkeys mmx mmxext mng mod_irc mod_muc mod_pubsub modplug mono motif mounts-check mozdevelop mozembed mp2 mp3 mp4 mp4live mpd mpeg mpeg2 mpi mplayer mschap msdav msn mtp mudflap multiuser musepack music musicbrainz mysqli na_dd na_icons nas nat nautilus ncurses neXt net netboot nethack netmeeting netpbm network new-login nextaw nfs nis nls nntp nocd noepg nowlistening nptl nptlonly nsplugin ntfs ntlm ntp numarray nut nuv nvram oav obex objc++ objc-gc ocrad offensive office ogg openal opendoc openexr openft opengl openmp openntpd openssl opensslcrypt openstreetmap oscar oss overlays padlock pam pam_chroot pam_timestamp paste64 pcap pcapnav pcmcia pcntl pcre pda pdf perfprofiling perl physfs player plugin plugins pmu png pnm polling pop portaudio posix postproc postscript povray ppds pppd prediction prelude preview-latex print ps pvr pysolcards python qdbm qmax qq qsa qt3 qt3support qt4 query-browser quicktime quotes radio radius rar rc5 rdesktop react readline real realmedia recode reflection regex reiser4 reiserfs remix replytolist resolvconf restrict-javascript rfkill rle roe rotor rplay rpm rss rtc rtsp samba sametime scanner schedule screen scripting sdk sdl sdl-image sdl-sound sdlaudio seamless-hbars sensord server session sftp sguil sharedext sharedmem shorten shout sid signatures silc silvercity skey skins slang slp smime smp sms sndfile snmp snortsam sockets socks5 softfax sound sounds sourcecaps sourceview speech speedo speex spell spl sql sqlite sqlite3 srt sse sse2 ssl startup-notification staticsocket statistics stats stlport stream stroke subject-rewrite submenu subtitles subversion suidcheck svg svga svgz swat symlink sysfs syslog szip tagwriting talkfilters tcl tcpd tcpmd5 tcpwrapper tcsim tesseract tetex text texteffect textures tftp tga tgif themes theora thesaurus threads thunderbird tidy tiff timestats timidity tivo tk tlen tntc tokenizer toolbar toolkit-scroll-bars tools tordns tos totem transcode translator transmitter trayicon truetype truetype-fonts tv_check twinserial twolame type1-fonts udpfromto unicode unzip upnp usb userfiles utempter uuencode v4l v4l2 vcd vcdx vdr vhosts videos vidix vim vim-pager vim-with-x visual visualization vlm vnc vncviewer voice vorbis vorbis-psy wav wavpack web webdav webinterface webpresence wifi win32codecs winbind winpopup wireshark wma wmf wmp wordperfect wxwindows x11vnc x264 x86 xanim xattr xcb xcf xchatdccserver xcomposite xext xface xforms xfs xft xgetdefault xhtml xine xinerama xml xmlreader xmlrpc xmlwriter xorg xosd xpm xrandr xscreensaver xsettings xskatcards xsl xterm xulrunner xv xvid xvmc xvnc yaepg yahoo yp yv12 zeroconf zip zlib zvbi&quot; ALSA_CARDS=&quot;ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci&quot;
ALSA_PCM_PLUGINS=&quot;adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol&quot;
APACHE2_MODULES=&quot;actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias&quot;
ELIBC=&quot;glibc&quot;
INPUT_DEVICES=&quot;synaptics mouse keyboard logitech evdev vmmouse&quot;
KERNEL=&quot;linux&quot;
LCD_DEVICES=&quot;bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text&quot;
LINGUAS=&quot;en_US es_AR en es&quot;
USERLAND=&quot;GNU&quot;
VIDEO_CARDS=&quot;radeon&quot;
Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>apoliak@gmail.com</who>
            <bug_when>2007-12-22 06:31:06 0000</bug_when>
            <thetext>Created an attachment (id=139074)
failing patch - not a fix

this is the patch that fails</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>apoliak@gmail.com</who>
            <bug_when>2007-12-22 06:31:52 0000</bug_when>
            <thetext>Created an attachment (id=139076)
epatch output

log file generated by epatch for erroneous patch</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>apoliak@gmail.com</who>
            <bug_when>2007-12-22 06:32:20 0000</bug_when>
            <thetext>Created an attachment (id=139077)
build log

complete build log</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>apoliak@gmail.com</who>
            <bug_when>2007-12-22 06:33:46 0000</bug_when>
            <thetext>Created an attachment (id=139078)
build environment

build environment file</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>pierreyves.aillet@free.fr</who>
            <bug_when>2007-12-22 08:46:38 0000</bug_when>
            <thetext>Created an attachment (id=139079)
New patch corrected

In fact I didn&apos;t understand the point of the part that failed...</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>philantrop@gentoo.org</who>
            <bug_when>2007-12-22 14:58:44 0000</bug_when>
            <thetext>Fixed in CVS.</thetext>
          </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>139074</attachid>
            <date>2007-12-22 06:31 0000</date>
            <desc>failing patch - not a fix</desc>
            <filename>pilot-link-0.12.3-int_types.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">LS0tIHBpbG90LWxpbmstMC4xMi4zL2luY2x1ZGUvcGktbWQ1LmgJMjAwNi0xMC0xNyAxNToyNDow
Ny4wMDAwMDAwMDAgKzAyMDAKKysrIHBpbG90LWxpbmsvaW5jbHVkZS9waS1tZDUuaAkyMDA3LTEy
LTE4IDA0OjAzOjA5LjAwMDAwMDAwMCArMDEwMApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiAkSWQ6
IHBpbG90LWxpbmstMC4xMi4zLWludF90eXBlcy5wYXRjaCx2IDEuMSAyMDA3LzEyLzIwIDIzOjA4
OjU4IHBoaWxhbnRyb3AgRXhwICQKKyAqICRJZDogcGlsb3QtbGluay0wLjEyLjMtaW50X3R5cGVz
LnBhdGNoLHYgMS4xIDIwMDcvMTIvMjAgMjM6MDg6NTggcGhpbGFudHJvcCBFeHAgJAogICoKICAq
IHBpLW1kNS5oOiBIZWFkZXIgZmlsZSBmb3IgQ29saW4gUGx1bWIncyBNRDUgaW1wbGVtZW50YXRp
b24uCiAgKiAgICAgICAgICAgTW9kaWZpZWQgYnkgSWFuIEphY2tzb24gc28gYXMgbm90IHRvIHVz
ZSBDb2xpbiBQbHVtYidzCkBAIC0xMyw4ICsxMywyMCBAQAogI2lmbmRlZiBNRDVfSAogI2RlZmlu
ZSBNRDVfSAogCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYgSEFWRV9JTlRUWVBFU19ICisjaW5j
bHVkZSA8aW50dHlwZXMuaD4KKyNlbmRpZgorI2lmIEhBVkVfU1RESU5UX0gKKyNpbmNsdWRlIDxz
dGRpbnQuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfSU5UVFlQRVNfSCB8fCBIQVZFX1NURElOVF9I
CisjZGVmaW5lIFVJTlQ4IHVpbnQ4X3QKKyNkZWZpbmUgVUlOVDMyIHVpbnQzMl90CisjZWxzZQog
I2RlZmluZSBVSU5UOCB1bnNpZ25lZCBjaGFyCi0jZGVmaW5lIFVJTlQzMiB1bnNpZ25lZCBsb25n
CisjZGVmaW5lIFVJTlQzMiB1bnNpZ25lZCBpbnQKKyNlbmRpZgogCiBzdHJ1Y3QgTUQ1Q29udGV4
dCB7CiAJVUlOVDMyIGJ1Zls0XTsK
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>139076</attachid>
            <date>2007-12-22 06:31 0000</date>
            <desc>epatch output</desc>
            <filename>pilot-link-0.12.3-int_types.patch-20780.out</filename>
            <type>text/plain</type>
            <data encoding="base64">KioqKiogcGlsb3QtbGluay0wLjEyLjMtaW50X3R5cGVzLnBhdGNoICoqKioqCgo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KClBBVENIIENPTU1BTkQ6CSBwYXRj
aCAtcDAgLWcwIC1FIC0tbm8tYmFja3VwLWlmLW1pc21hdGNoIDwgL3Vzci9wb3J0YWdlL2FwcC1w
ZGEvcGlsb3QtbGluay9maWxlcy9waWxvdC1saW5rLTAuMTIuMy1pbnRfdHlwZXMucGF0Y2gKCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpjYW4ndCBmaW5kIGZp
bGUgdG8gcGF0Y2ggYXQgaW5wdXQgbGluZSAzClBlcmhhcHMgeW91IHVzZWQgdGhlIHdyb25nIC1w
IG9yIC0tc3RyaXAgb3B0aW9uPwpUaGUgdGV4dCBsZWFkaW5nIHVwIHRvIHRoaXMgd2FzOgotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp8LS0tIHBpbG90LWxpbmstMC4xMi4zL2luY2x1ZGUvcGkt
bWQ1LmgJMjAwNi0xMC0xNyAxNToyNDowNy4wMDAwMDAwMDAgKzAyMDAKfCsrKyBwaWxvdC1saW5r
L2luY2x1ZGUvcGktbWQ1LmgJMjAwNy0xMi0xOCAwNDowMzowOS4wMDAwMDAwMDAgKzAxMDAKLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KTm8gZmlsZSB0byBwYXRjaC4gIFNraXBwaW5nIHBhdGNo
LgoyIG91dCBvZiAyIGh1bmtzIGlnbm9yZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CgpQQVRDSCBDT01NQU5EOgkgcGF0Y2ggLXAxIC1nMCAtRSAtLW5vLWJh
Y2t1cC1pZi1taXNtYXRjaCA8IC91c3IvcG9ydGFnZS9hcHAtcGRhL3BpbG90LWxpbmsvZmlsZXMv
cGlsb3QtbGluay0wLjEyLjMtaW50X3R5cGVzLnBhdGNoCgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KcGF0Y2hpbmcgZmlsZSBpbmNsdWRlL3BpLW1kNS5oCkh1
bmsgIzEgRkFJTEVEIGF0IDEuCjEgb3V0IG9mIDIgaHVua3MgRkFJTEVEIC0tIHNhdmluZyByZWpl
Y3RzIHRvIGZpbGUgaW5jbHVkZS9waS1tZDUuaC5yZWoKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09CgpQQVRDSCBDT01NQU5EOgkgcGF0Y2ggLXAyIC1nMCAtRSAt
LW5vLWJhY2t1cC1pZi1taXNtYXRjaCA8IC91c3IvcG9ydGFnZS9hcHAtcGRhL3BpbG90LWxpbmsv
ZmlsZXMvcGlsb3QtbGluay0wLjEyLjMtaW50X3R5cGVzLnBhdGNoCgo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KY2FuJ3QgZmluZCBmaWxlIHRvIHBhdGNoIGF0
IGlucHV0IGxpbmUgMwpQZXJoYXBzIHlvdSB1c2VkIHRoZSB3cm9uZyAtcCBvciAtLXN0cmlwIG9w
dGlvbj8KVGhlIHRleHQgbGVhZGluZyB1cCB0byB0aGlzIHdhczoKLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KfC0tLSBwaWxvdC1saW5rLTAuMTIuMy9pbmNsdWRlL3BpLW1kNS5oCTIwMDYtMTAt
MTcgMTU6MjQ6MDcuMDAwMDAwMDAwICswMjAwCnwrKysgcGlsb3QtbGluay9pbmNsdWRlL3BpLW1k
NS5oCTIwMDctMTItMTggMDQ6MDM6MDkuMDAwMDAwMDAwICswMTAwCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCk5vIGZpbGUgdG8gcGF0Y2guICBTa2lwcGluZyBwYXRjaC4KMiBvdXQgb2YgMiBo
dW5rcyBpZ25vcmVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQoKUEFUQ0ggQ09NTUFORDoJIHBhdGNoIC1wMyAtZzAgLUUgLS1uby1iYWNrdXAtaWYtbWlzbWF0
Y2ggPCAvdXNyL3BvcnRhZ2UvYXBwLXBkYS9waWxvdC1saW5rL2ZpbGVzL3BpbG90LWxpbmstMC4x
Mi4zLWludF90eXBlcy5wYXRjaAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Cm1pc3NpbmcgaGVhZGVyIGZvciB1bmlmaWVkIGRpZmYgYXQgbGluZSAzIG9mIHBh
dGNoCmNhbid0IGZpbmQgZmlsZSB0byBwYXRjaCBhdCBpbnB1dCBsaW5lIDMKUGVyaGFwcyB5b3Ug
dXNlZCB0aGUgd3JvbmcgLXAgb3IgLS1zdHJpcCBvcHRpb24/ClRoZSB0ZXh0IGxlYWRpbmcgdXAg
dG8gdGhpcyB3YXM6Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnwtLS0gcGlsb3QtbGluay0w
LjEyLjMvaW5jbHVkZS9waS1tZDUuaAkyMDA2LTEwLTE3IDE1OjI0OjA3LjAwMDAwMDAwMCArMDIw
MAp8KysrIHBpbG90LWxpbmsvaW5jbHVkZS9waS1tZDUuaAkyMDA3LTEyLTE4IDA0OjAzOjA5LjAw
MDAwMDAwMCArMDEwMAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpObyBmaWxlIHRvIHBhdGNo
LiAgU2tpcHBpbmcgcGF0Y2guCjIgb3V0IG9mIDIgaHVua3MgaWdub3JlZAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KClBBVENIIENPTU1BTkQ6CSBwYXRjaCAt
cDQgLWcwIC1FIC0tbm8tYmFja3VwLWlmLW1pc21hdGNoIDwgL3Vzci9wb3J0YWdlL2FwcC1wZGEv
cGlsb3QtbGluay9maWxlcy9waWxvdC1saW5rLTAuMTIuMy1pbnRfdHlwZXMucGF0Y2gKCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQptaXNzaW5nIGhlYWRlciBm
b3IgdW5pZmllZCBkaWZmIGF0IGxpbmUgMyBvZiBwYXRjaApjYW4ndCBmaW5kIGZpbGUgdG8gcGF0
Y2ggYXQgaW5wdXQgbGluZSAzClBlcmhhcHMgeW91IHVzZWQgdGhlIHdyb25nIC1wIG9yIC0tc3Ry
aXAgb3B0aW9uPwpUaGUgdGV4dCBsZWFkaW5nIHVwIHRvIHRoaXMgd2FzOgotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQp8LS0tIHBpbG90LWxpbmstMC4xMi4zL2luY2x1ZGUvcGktbWQ1LmgJMjAw
Ni0xMC0xNyAxNToyNDowNy4wMDAwMDAwMDAgKzAyMDAKfCsrKyBwaWxvdC1saW5rL2luY2x1ZGUv
cGktbWQ1LmgJMjAwNy0xMi0xOCAwNDowMzowOS4wMDAwMDAwMDAgKzAxMDAKLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KTm8gZmlsZSB0byBwYXRjaC4gIFNraXBwaW5nIHBhdGNoLgoyIG91dCBv
ZiAyIGh1bmtzIGlnbm9yZWQK
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>139077</attachid>
            <date>2007-12-22 06:32 0000</date>
            <desc>build log</desc>
            <filename>build.log</filename>
            <type>text/plain</type>
            <data encoding="base64">Pj4+IBtbMW0bWzM3bWNmZy11cGRhdGUtMS44LjItcjEbWzBtG1swbTogQ3JlYXRpbmcgY2hlY2tz
dW0gaW5kZXguLi4KIBtbMzI7MDFtKhtbMG0gVXNpbmc6IHN1bi1qZGstMS42Cj4+PiBVbnBhY2tp
bmcgc291cmNlLi4uCj4+PiBVbnBhY2tpbmcgcGlsb3QtbGluay0wLjEyLjMudGFyLmJ6MiB0byAv
dmFyL3RtcC9wb3J0YWdlL2FwcC1wZGEvcGlsb3QtbGluay0wLjEyLjMvd29yawogG1szMjswMW0q
G1swbSBBcHBseWluZyBwaWxvdC1saW5rLTAuMTIuMi1yZWFkbGluZS5wYXRjaCAuLi4KG1tBG1s4
MUMgIBtbMzQ7MDFtWyAbWzMyOzAxbW9rG1szNDswMW0gXRtbMG0KIBtbMzI7MDFtKhtbMG0gQXBw
bHlpbmcgcGlsb3QtbGluay0wLjEyLjItdGhyZWFkcy5wYXRjaCAuLi4KG1tBG1s4MUMgIBtbMzQ7
MDFtWyAbWzMyOzAxbW9rG1szNDswMW0gXRtbMG0KIBtbMzI7MDFtKhtbMG0gQXBwbHlpbmcgcGls
b3QtbGluay0wLjEyLjMtcG5nLnBhdGNoIC4uLgobW0EbWzgxQyAgG1szNDswMW1bIBtbMzI7MDFt
b2sbWzM0OzAxbSBdG1swbQogG1szMjswMW0qG1swbSBBcHBseWluZyBwaWxvdC1saW5rLTAuMTIu
Mi13ZXJyb3JfMTk0OTIxLnBhdGNoIC4uLgobW0EbWzgxQyAgG1szNDswMW1bIBtbMzI7MDFtb2sb
WzM0OzAxbSBdG1swbQogG1szMjswMW0qG1swbSBBcHBseWluZyBwaWxvdC1saW5rLTAuMTIuMy1q
YXZhLWluc3RhbGwucGF0Y2ggLi4uChtbQRtbODFDICAbWzM0OzAxbVsgG1szMjswMW1vaxtbMzQ7
MDFtIF0bWzBtCiAbWzMyOzAxbSobWzBtIEFwcGx5aW5nIHBpbG90LWxpbmstMC4xMi4zLWludF90
eXBlcy5wYXRjaCAuLi4KCiAbWzMxOzAxbSobWzBtIEZhaWxlZCBQYXRjaDogcGlsb3QtbGluay0w
LjEyLjMtaW50X3R5cGVzLnBhdGNoICEKIBtbMzE7MDFtKhtbMG0gICggL3Vzci9wb3J0YWdlL2Fw
cC1wZGEvcGlsb3QtbGluay9maWxlcy9waWxvdC1saW5rLTAuMTIuMy1pbnRfdHlwZXMucGF0Y2gg
KQogG1szMTswMW0qG1swbSAKIBtbMzE7MDFtKhtbMG0gSW5jbHVkZSBpbiB5b3VyIGJ1Z3JlcG9y
dCB0aGUgY29udGVudHMgb2Y6CiAbWzMxOzAxbSobWzBtIAogG1szMTswMW0qG1swbSAgIC92YXIv
dG1wL3BvcnRhZ2UvYXBwLXBkYS9waWxvdC1saW5rLTAuMTIuMy90ZW1wL3BpbG90LWxpbmstMC4x
Mi4zLWludF90eXBlcy5wYXRjaC0yMDc4MC5vdXQKCiAbWzMxOzAxbSobWzBtIAogG1szMTswMW0q
G1swbSBFUlJPUjogYXBwLXBkYS9waWxvdC1saW5rLTAuMTIuMyBmYWlsZWQuCiAbWzMxOzAxbSob
WzBtIENhbGwgc3RhY2s6CiAbWzMxOzAxbSobWzBtICAgICAgICAgICAgICAgZWJ1aWxkLnNoLCBs
aW5lICAgNDY6ICBDYWxsZWQgc3JjX3VucGFjawogG1szMTswMW0qG1swbSAgICAgICAgICAgICBl
bnZpcm9ubWVudCwgbGluZSA0NDI1OiAgQ2FsbGVkIGVwYXRjaCAnc3JjX3VucGFjaycKIBtbMzE7
MDFtKhtbMG0gICAgICAgICAgICAgZW52aXJvbm1lbnQsIGxpbmUgMTk0ODogIENhbGxlZCBkaWUK
IBtbMzE7MDFtKhtbMG0gVGhlIHNwZWNpZmljIHNuaXBwZXQgb2YgY29kZToKIBtbMzE7MDFtKhtb
MG0gICAgICAgICAgICAgICAgICAgZGllZnVuYyAiJEZVTkNOQU1FIiAiJExJTkVOTyIgIiQ/IiAi
RmFpbGVkIFBhdGNoOiAke3BhdGNobmFtZX0hIjsKIBtbMzE7MDFtKhtbMG0gIFRoZSBkaWUgbWVz
c2FnZToKIBtbMzE7MDFtKhtbMG0gICBGYWlsZWQgUGF0Y2g6IHBpbG90LWxpbmstMC4xMi4zLWlu
dF90eXBlcy5wYXRjaCEKIBtbMzE7MDFtKhtbMG0gCiAbWzMxOzAxbSobWzBtIElmIHlvdSBuZWVk
IHN1cHBvcnQsIHBvc3QgdGhlIHRvcG1vc3QgYnVpbGQgZXJyb3IsIGFuZCB0aGUgY2FsbCBzdGFj
ayBpZiByZWxldmFudC4KIBtbMzE7MDFtKhtbMG0gQSBjb21wbGV0ZSBidWlsZCBsb2cgaXMgbG9j
YXRlZCBhdCAnL3Zhci90bXAvcG9ydGFnZS9hcHAtcGRhL3BpbG90LWxpbmstMC4xMi4zL3RlbXAv
YnVpbGQubG9nJy4KIBtbMzE7MDFtKhtbMG0gVGhlIGVidWlsZCBlbnZpcm9ubWVudCBmaWxlIGlz
IGxvY2F0ZWQgYXQgJy92YXIvdG1wL3BvcnRhZ2UvYXBwLXBkYS9waWxvdC1saW5rLTAuMTIuMy90
ZW1wL2Vudmlyb25tZW50Jy4KIBtbMzE7MDFtKhtbMG0gCiEhISBXaGVuIHlvdSBmaWxlIGEgYnVn
IHJlcG9ydCwgcGxlYXNlIGluY2x1ZGUgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbjoKR0VOVE9P
X1ZNPXN1bi1qZGstMS42ICBDTEFTU1BBVEg9IiIgSkFWQV9IT01FPSIvb3B0L3N1bi1qZGstMS42
LjAuMDMiCkpBVkFDRkxBR1M9Ii1zb3VyY2UgMS40IC10YXJnZXQgMS40IiBDT01QSUxFUj0iIgph
bmQgb2YgY291cnNlLCB0aGUgb3V0cHV0IG9mIGVtZXJnZSAtLWluZm8K
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>139078</attachid>
            <date>2007-12-22 06:33 0000</date>
            <desc>build environment</desc>
            <filename>environment</filename>
            <type>text/plain</type>
            <data encoding="base64">QUxTQV9DQVJEUz0nYWxpNTQ1MSBhbHM0MDAwIGF0aWl4cCBhdGlpeHAtbW9kZW0gYnQ4N3ggY2Ew
MTA2IGNtaXBjaSBlbXUxMGsxIGVtdTEwazF4IGVuczEzNzAgZW5zMTM3MSBlczE5MzggZXMxOTY4
IGZtODAxIGhkYS1pbnRlbCBpbnRlbDh4MCBpbnRlbDh4MG0gbWFlc3RybzMgdHJpZGVudCB1c2It
YXVkaW8gdmlhODJ4eCB2aWE4Mnh4LW1vZGVtIHltZnBjaScKQUxTQV9QQ01fUExVR0lOUz0nYWRw
Y20gYWxhdyBhc3ltIGNvcHkgZG1peCBkc2hhcmUgZHNub29wIGVtcHR5IGV4dHBsdWcgZmlsZSBo
b29rcyBpZWM5NTggaW9wbHVnIGxhZHNwYSBsZmxvYXQgbGluZWFyIG1ldGVyIG11bGF3IG11bHRp
IG51bGwgcGx1ZyByYXRlIHJvdXRlIHNoYXJlIHNobSBzb2Z0dm9sJwpBTlRfSE9NRT0vdXNyL3No
YXJlL2FudC1jb3JlCkFOVF9PUFRTPQpBTlRfVEFTS1M9CkFQQUNIRTJfTU9EVUxFUz0nYWN0aW9u
cyBhbGlhcyBhdXRoX2Jhc2ljIGF1dGhuX2FsaWFzIGF1dGhuX2Fub24gYXV0aG5fZGJtIGF1dGhu
X2RlZmF1bHQgYXV0aG5fZmlsZSBhdXRoel9kYm0gYXV0aHpfZGVmYXVsdCBhdXRoel9ncm91cGZp
bGUgYXV0aHpfaG9zdCBhdXRoel9vd25lciBhdXRoel91c2VyIGF1dG9pbmRleCBjYWNoZSBkYXYg
ZGF2X2ZzIGRhdl9sb2NrIGRlZmxhdGUgZGlyIGRpc2tfY2FjaGUgZW52IGV4cGlyZXMgZXh0X2Zp
bHRlciBmaWxlX2NhY2hlIGZpbHRlciBoZWFkZXJzIGluY2x1ZGUgaW5mbyBsb2dfY29uZmlnIGxv
Z2lvIG1lbV9jYWNoZSBtaW1lIG1pbWVfbWFnaWMgbmVnb3RpYXRpb24gcmV3cml0ZSBzZXRlbnZp
ZiBzcGVsaW5nIHN0YXR1cyB1bmlxdWVfaWQgdXNlcmRpciB1c2VydHJhY2sgdmhvc3RfYWxpYXMn
CkFSQ0g9eDg2CkFSQ0hfTElCPQpBVF9HTlVDT05GX1VQREFURT1ubwpBVF9NNERJUj0KQk9USF9E
RVBFTkQ9JCd2aXJ0dWFsL2xpYmljb252XG5cdD49c3lzLWxpYnMvbmN1cnNlcy01LjYtcjFcblx0
Pj1kZXYtbGlicy9wb3B0LTEuMTAuN1xuXHRwZXJsPyAoID49ZGV2LWxhbmcvcGVybC01LjguOC1y
MiApXG5cdHB5dGhvbj8gKCA+PWRldi1sYW5nL3B5dGhvbi0yLjQuNC1yNCApXG5cdHBuZz8gKCA+
PW1lZGlhLWxpYnMvbGlicG5nLTEuMi4xOC1yMSApXG5cdHJlYWRsaW5lPyAoID49c3lzLWxpYnMv
cmVhZGxpbmUtNS4yX3A0IClcblx0dXNiPyAoID49ZGV2LWxpYnMvbGlidXNiLTAuMS4xMiApXG5c
dGJsdWV0b290aD8gKCA+PW5ldC13aXJlbGVzcy9ibHVlei1saWJzLTMuMTAgKScKQlVJTERFUl9W
RVI9CkNCVUlMRD1pNjg2LXBjLWxpbnV4LWdudQpDREVGSU5FX2RlZmF1bHQ9X191bml4X18KQ0ZM
QUdTPSctTzIgLW1hcmNoPXBlbnRpdW00IC1waXBlJwpDRkxBR1NfZGVmYXVsdD0KQ0hPU1Q9aTY4
Ni1wYy1saW51eC1nbnUKQ0hPU1RfZGVmYXVsdD1pNjg2LXBjLWxpbnV4LWdudQpDTEFTU1BBVEg9
CkNUQVJHRVRfZGVmYXVsdD1pNjg2LXBjLWxpbnV4LWdudQpDVlNfUlNIPXNzaApDWFhGTEFHUz0n
LU8yIC1tYXJjaD1wZW50aXVtNCAtcGlwZScKREJVU19TRVNTSU9OX0JVU19BRERSRVNTPXVuaXg6
YWJzdHJhY3Q9L3RtcC9kYnVzLURLQ3hPNDd3MUIsZ3VpZD1hYjcwYmNjMjZhMWJkZWI2YWMzNTU4
MDA0NzZhYWU4YwpEQ0NDX1BBVEg9L3Vzci9saWIvZGlzdGNjL2JpbgpERUZBVUxUX0FCST1kZWZh
dWx0CkRFUEVORD0kJ3ZpcnR1YWwvbGliaWNvbnZcblx0Pj1zeXMtbGlicy9uY3Vyc2VzLTUuNi1y
MVxuXHQ+PWRldi1saWJzL3BvcHQtMS4xMC43XG5cdHBlcmw/ICggPj1kZXYtbGFuZy9wZXJsLTUu
OC44LXIyIClcblx0cHl0aG9uPyAoID49ZGV2LWxhbmcvcHl0aG9uLTIuNC40LXI0IClcblx0cG5n
PyAoID49bWVkaWEtbGlicy9saWJwbmctMS4yLjE4LXIxIClcblx0cmVhZGxpbmU/ICggPj1zeXMt
bGlicy9yZWFkbGluZS01LjJfcDQgKVxuXHR1c2I/ICggPj1kZXYtbGlicy9saWJ1c2ItMC4xLjEy
IClcblx0Ymx1ZXRvb3RoPyAoID49bmV0LXdpcmVsZXNzL2JsdWV6LWxpYnMtMy4xMCApXG5cdGph
dmE/ICggPj12aXJ0dWFsL2pkay0xLjQgKSAgamF2YT8gKCA+PWRldi1qYXZhL2phdmEtY29uZmln
LTIuMC4zMy1yMSA+PXN5cy1hcHBzL3BvcnRhZ2UtMi4xLjIuNyApID1zeXMtZGV2ZWwvYXV0b21h
a2UtMS4xMCpcblx0Pj1zeXMtZGV2ZWwvYXV0b2NvbmYtMi42MVxuXHRzeXMtZGV2ZWwvbGlidG9v
bCcKREVTQ1JJUFRJT049J3N1aXRlIG9mIHRvb2xzIGZvciBtb3ZpbmcgZGF0YSBiZXR3ZWVuIGEg
UGFsbSBkZXZpY2UgYW5kIGEgZGVza3RvcCcKREVTS1RPUF9TRVNTSU9OPWRlZmF1bHQKREVTVFRS
RUU9L3VzcgpESVJPUFRJT05TPS1tMDc1NQpETV9DT05UUk9MPS92YXIvcnVuL3hkbWN0bApFQVBJ
PQpFQlVJTERfREVBVEhfSE9PS1M9JyBqYXZhLXBrZ19kaWUnCkVMSUJDPWdsaWJjCkVMSUJUT09M
X1ZFUlNJT049Mi4wLjIKRUxUX0FQUExJRURfUEFUQ0hFUz0KRUxUX0xUTUFJTl9TSD0KRUxUX1BB
VENIX0RJUj0vdXNyL3BvcnRhZ2UvZWNsYXNzL0VMVC1wYXRjaGVzCkVQQVRDSF9FWENMVURFPQpF
UEFUQ0hfRk9SQ0U9bm8KRVBBVENIX01VTFRJX01TRz0nQXBwbHlpbmcgdmFyaW91cyBwYXRjaGVz
IChidWdmaXhlcy91cGRhdGVzKSAuLi4nCkVQQVRDSF9PUFRTPSctZzAgLUUgLS1uby1iYWNrdXAt
aWYtbWlzbWF0Y2gnCkVQQVRDSF9TSU5HTEVfTVNHPQpFUEFUQ0hfU09VUkNFPS92YXIvdG1wL3Bv
cnRhZ2UvYXBwLXBkYS9waWxvdC1saW5rLTAuMTIuMy93b3JrL3BhdGNoCkVQQVRDSF9TVUZGSVg9
cGF0Y2guYnoyCkVYRU9QVElPTlM9LW0wNzU1CkZFQVRVUkVTPSdkaXN0bG9ja3MgbWV0YWRhdGEt
dHJhbnNmZXIgcGFyYWxsZWwtZmV0Y2ggc2FuZGJveCBzZnBlcm1zIHN0cmljdCB1bm1lcmdlLW9y
cGhhbnMgdXNlcmZldGNoIHVzZXJwcml2IHVzZXJzYW5kYm94JwpGTFRLX0RPQ0RJUj0vdXNyL3No
YXJlL2RvYy9mbHRrLTEuMS43LXIzL2h0bWwKR0NDX1NQRUNTPQpHREtfVVNFX1hGVD0xCkdFTkVS
QVRJT049MgpHRU5UT09fVk09c3VuLWpkay0xLjYKR1NfTElCPS9yb290Ly5mb250cwpHVEsyX1JD
X0ZJTEVTPS9ldGMvZ3RrLTIuMC9ndGtyYzovcm9vdC8uZ3RrcmMtMi4wOi9yb290Ly5rZGUzLjUv
c2hhcmUvY29uZmlnL2d0a3JjLTIuMApHVEtfUkNfRklMRVM9L2V0Yy9ndGsvZ3RrcmM6L3Jvb3Qv
Lmd0a3JjOi9yb290Ly5rZGUzLjUvc2hhcmUvY29uZmlnL2d0a3JjCkhPTUVQQUdFPWh0dHA6Ly93
d3cucGlsb3QtbGluay5vcmcvCklOSEVSSVRFRD0ndG9vbGNoYWluLWZ1bmNzIHBvcnRhYmlsaXR5
IGphdmEtdXRpbHMtMiB2ZXJzaW9uYXRvciBtdWx0aWxpYiBqYXZhLXBrZy1vcHQtMiBiYXNlIGxp
YnRvb2wgYXV0b3Rvb2xzIGV1dGlscyBwZXJsLW1vZHVsZScKSU5QVVRfREVWSUNFUz0nc3luYXB0
aWNzIG1vdXNlIGtleWJvYXJkIGxvZ2l0ZWNoIGV2ZGV2IHZtbW91c2UnCklOU0RFU1RUUkVFPQpJ
TlNPUFRJT05TPS1tMDY0NApJVVNFPScgcGVybCBqYXZhIHB5dGhvbiBwbmcgcmVhZGxpbmUgdGhy
ZWFkcyBibHVldG9vdGggdXNiIGRlYnVnIGVsaWJjX0ZyZWVCU0QgamF2YScKSV9XQU5UX0dMT0JB
TF9KQVZBX09QVElPTlM9dHJ1ZQpKQVZBPS9vcHQvc3VuLWpkay0xLjYuMC4wMy9iaW4vamF2YQpK
QVZBQz0vb3B0L3N1bi1qZGstMS42LjAuMDMvYmluL2phdmFjCkpBVkFDRkxBR1M9Jy1zb3VyY2Ug
MS40IC10YXJnZXQgMS40JwpKQVZBX0hPTUU9L29wdC9zdW4tamRrLTEuNi4wLjAzCkpBVkFfUEtH
X0FMTE9XX1ZNX0NIQU5HRT15ZXMKSkFWQV9QS0dfQ09NUElMRVJTX0NPTkY9L2V0Yy9qYXZhLWNv
bmZpZy0yL2J1aWxkL2NvbXBpbGVycy5jb25mCkpBVkFfUEtHX0NPTVBJTEVSX0RJUj0vdXNyL3No
YXJlL2phdmEtY29uZmlnLTIvY29tcGlsZXIKSkFWQV9QS0dfREVQRU5EX0ZJTEU9L3Zhci90bXAv
cG9ydGFnZS9hcHAtcGRhL3BpbG90LWxpbmstMC4xMi4zL3RlbXAvamF2YS1wa2ctZGVwZW5kCkpB
VkFfUEtHX0VOVj0vdmFyL3RtcC9wb3J0YWdlL2FwcC1wZGEvcGlsb3QtbGluay0wLjEyLjMvaW1h
Z2UvL3Vzci9zaGFyZS9waWxvdC1saW5rL3BhY2thZ2UuZW52CkpBVkFfUEtHX0VYVFJBX0VOVj0v
dmFyL3RtcC9wb3J0YWdlL2FwcC1wZGEvcGlsb3QtbGluay0wLjEyLjMvdGVtcC9qYXZhLXBrZy1l
eHRyYS1lbnYKSkFWQV9QS0dfRVhUUkFfRU5WX1ZBUlM9CkpBVkFfUEtHX0VfREVQRU5EPSc+PWRl
di1qYXZhL2phdmEtY29uZmlnLTIuMC4zMy1yMSA+PXN5cy1hcHBzL3BvcnRhZ2UtMi4xLjIuNycK
SkFWQV9QS0dfSkFSREVTVD0vdXNyL3NoYXJlL3BpbG90LWxpbmsvbGliCkpBVkFfUEtHX0xJQkRF
U1Q9L3Vzci9saWIvcGlsb3QtbGluawpKQVZBX1BLR19OQU1FPXBpbG90LWxpbmsKSkFWQV9QS0df
T1BUSU9OQUxfREVQRU5EX0ZJTEU9L3Zhci90bXAvcG9ydGFnZS9hcHAtcGRhL3BpbG90LWxpbmst
MC4xMi4zL3RlbXAvamF2YS1wa2ctb3B0aW9uYWwtZGVwZW5kCkpBVkFfUEtHX09QVF9VU0U9amF2
YQpKQVZBX1BLR19QT1JUQUdFX0RFUD0nPj1zeXMtYXBwcy9wb3J0YWdlLTIuMS4yLjcnCkpBVkFf
UEtHX1FBX1ZJT0xBVElPTlM9MApKQVZBX1BLR19TSEFSRVBBVEg9L3Vzci9zaGFyZS9waWxvdC1s
aW5rCkpBVkFfUEtHX1NPVVJDRVNQQVRIPS91c3Ivc2hhcmUvcGlsb3QtbGluay9zb3VyY2VzLwpK
QVZBX1BLR19WSVJUVUFMU19QQVRIPS91c3Ivc2hhcmUvamF2YS1jb25maWctMi92aXJ0dWFscwpK
QVZBX1BLR19WSVJUVUFMX1BST1ZJREVSPS92YXIvdG1wL3BvcnRhZ2UvYXBwLXBkYS9waWxvdC1s
aW5rLTAuMTIuMy9pbWFnZS8vL3Vzci9zaGFyZS9qYXZhLWNvbmZpZy0yL3ZpcnR1YWxzL3BpbG90
LWxpbmsKSkFWQV9QS0dfV0FSREVTVD0vdXNyL3NoYXJlL3BpbG90LWxpbmsvd2ViYXBwcwpKREtf
SE9NRT0vb3B0L3N1bi1qZGstMS42LjAuMDMKS0RFRElSUz0vdXNyOi91c3IvbG9jYWw6L3Vzci9r
ZGUvMy41CktERVdNPS91c3IvbG9jYWwvYmluL2NvbXBpei1mdXNpb24KS0RFX0ZVTExfU0VTU0lP
Tj10cnVlCktERV9JU19QUkVMSU5LRUQ9MQpLREVfTVVMVElIRUFEPWZhbHNlCktERV9TRVNTSU9O
X1VJRD0wCktFUk5FTD1saW51eApLRVJORUxfQUJJPWRlZmF1bHQKS0VZV09SRFM9J35hbHBoYSB+
YW1kNjQgfmlhNjQgfnBwYyB+c3BhcmMgfng4NicKS09OU09MRV9EQ09QPSdEQ09QUmVmKGtvbnNv
bGUtMTI5ODksa29uc29sZSknCktPTlNPTEVfRENPUF9TRVNTSU9OPSdEQ09QUmVmKGtvbnNvbGUt
MTI5ODksc2Vzc2lvbi0xKScKS1Y9Mi42LjIzLWdlbnRvby1yNApMQURTUEFfUEFUSD0vdXNyL2xp
Yi9sYWRzcGEKTEFORz1DCkxDRF9ERVZJQ0VTPSdiYXlyYWQgY2ZvbnR6IGNmb250ejYzMyBnbGsg
aGQ0NDc4MCBsYjIxNiBsY2RtMDAxIG10eG9yYiBuY3Vyc2VzIHRleHQnCkxDX0FMTD1DCkxERkxB
R1NfZGVmYXVsdD0KTERfTElCUkFSWV9QQVRIPS9vcHQvc3VuLWpkay0xLjYuMC4wMy9qcmUvbGli
L2kzODYvOi9vcHQvc3VuLWpkay0xLjYuMC4wMy9qcmUvbGliL2kzODYvbmF0aXZlX3RocmVhZHMv
Oi9vcHQvc3VuLWpkay0xLjYuMC4wMy9qcmUvbGliL2kzODYveGF3dC86L29wdC9zdW4tamRrLTEu
Ni4wLjAzL2pyZS9saWIvaTM4Ni9zZXJ2ZXIvCkxJQkRJUl9kZWZhdWx0PWxpYgpMSUJPUFRJT05T
PS1tMDY0NApMSUJYQ0JfQUxMT1dfU0xPUFBZX0xPQ0s9MQpMSUNFTlNFPSd8fCAoIEdQTC0yIExH
UEwtMiApJwpMSU5HVUFTPSdlbl9VUyBlc19BUiBlbiBlcycKTUFLRU9QVFM9Jy1qMyAtajEnCk1V
TFRJTElCX0FCSVM9ZGVmYXVsdApPUEVOR0xfUFJPRklMRT14b3JnLXgxMQpQREVQRU5EPScgJwpQ
RVJMX1ZFUlNJT049ClBLR19DT05GSUdfUEFUSD0vdXNyL3F0LzMvbGliL3BrZ2NvbmZpZwpQT0Rf
RElSPQpQUkVGRVJfQlVJTERQTD15ZXMKUFJFTElOS19QQVRIX01BU0s9L29wdDovdXNyL2xpYi9r
bGliYwpQUk9WSURFPQpQWVRIT05QQVRIPS91c3IvbGliL3BvcnRhZ2UvcHltClFNQUtFU1BFQz1s
aW51eC1nKysKUVRESVI9L3Vzci9xdC8zClJERVBFTkQ9JCd2aXJ0dWFsL2xpYmljb252XG5cdD49
c3lzLWxpYnMvbmN1cnNlcy01LjYtcjFcblx0Pj1kZXYtbGlicy9wb3B0LTEuMTAuN1xuXHRwZXJs
PyAoID49ZGV2LWxhbmcvcGVybC01LjguOC1yMiApXG5cdHB5dGhvbj8gKCA+PWRldi1sYW5nL3B5
dGhvbi0yLjQuNC1yNCApXG5cdHBuZz8gKCA+PW1lZGlhLWxpYnMvbGlicG5nLTEuMi4xOC1yMSAp
XG5cdHJlYWRsaW5lPyAoID49c3lzLWxpYnMvcmVhZGxpbmUtNS4yX3A0IClcblx0dXNiPyAoID49
ZGV2LWxpYnMvbGlidXNiLTAuMS4xMiApXG5cdGJsdWV0b290aD8gKCA+PW5ldC13aXJlbGVzcy9i
bHVlei1saWJzLTMuMTAgKVxuXHRqYXZhPyAoID49dmlydHVhbC9qcmUtMS40ICkgIGphdmE/ICgg
Pj1kZXYtamF2YS9qYXZhLWNvbmZpZy0yLjAuMzMtcjEgPj1zeXMtYXBwcy9wb3J0YWdlLTIuMS4y
LjcgKSAnClJFU1RSSUNUPQpSVUJZT1BUPS1yYXV0b19nZW0KUz0vdmFyL3RtcC9wb3J0YWdlL2Fw
cC1wZGEvcGlsb3QtbGluay0wLjEyLjMvd29yay9waWxvdC1saW5rLTAuMTIuMwpTQU5EQk9YX0RF
Tlk9L2V0Yy9sZC5zby5wcmVsb2FkClNBTkRCT1hfUFJFRElDVD06L3Byb2Mvc2VsZi9tYXBzOi9k
ZXYvY29uc29sZTovZGV2L3JhbmRvbTovdXNyL2xpYi9wb3J0YWdlL3B5bTovdmFyL2NhY2hlL2Vk
Yi9kZXA6L2Rldi9yYW5kb20KU0FOREJPWF9SRUFEPTovZGV2L3NobTovZGV2L3N0ZGluOi92YXIv
dG1wClNBTkRCT1hfV1JJVEU9Oi9kZXYvc2htOi9kZXYvc3Rkb3V0Oi9kZXYvc3RkZXJyOi92YXIv
dG1wClNBTkVfQ09ORklHX0RJUj0vZXRjL3NhbmUuZApTRVNTSU9OX01BTkFHRVI9bG9jYWwvTmly
dmFuYS1MaW51eDovdG1wLy5JQ0UtdW5peC84ODg0ClNJVEVfQVJDSD0KU0lURV9MSUI9ClNMT1Q9
MApTUkNfUFJFUD1ubwpTUkNfVEVTVD1za2lwClNSQ19VUkk9aHR0cDovL3BpbG90LWxpbmsub3Jn
L3NvdXJjZS9waWxvdC1saW5rLTAuMTIuMy50YXIuYnoyClNUQUdFMV9VU0U9J25wdGwgbnB0bG9u
bHkgdW5pY29kZScKVVNCX0RFVkZTX1BBVEg9L2Rldi9idXMvdXNiClVTRT0nYmx1ZXRvb3RoIGVs
aWJjX2dsaWJjIGphdmEga2VybmVsX2xpbnV4IHBlcmwgcG5nIHB5dGhvbiByZWFkbGluZSB0aHJl
YWRzIHVzYiB1c2VybGFuZF9HTlUgeDg2JwpVU0VSTEFORD1HTlUKVkVORE9SX0FSQ0g9ClZFTkRP
Ul9MSUI9ClZFUlNJT05BVE9SX09MRF9FWFRHTE9CPSdzaG9wdCAtdSBleHRnbG9iJwpWRVJTSU9O
QVRPUl9SRUNVUlNJT049MApWSURFT19DQVJEUz1yYWRlb24KVk1IQU5ETEU9c3VuLWpkay0xLjQK
V0FOVF9BVVRPQ09ORj0yLjUKV0FOVF9BVVRPTUFLRT0xLjEwCldBTlRfSkFWQV9DT05GSUc9MgpX
SU5ET1dJRD01MjQyODgwNQpYQ1VSU09SX1RIRU1FPWRlZmF1bHQKWERHX0NPTkZJR19ESVJTPS91
c3Iva2RlLzMuNS9ldGMveGRnClhER19EQVRBX0RJUlM9L3Vzci9zaGFyZTovdXNyL2tkZS8zLjUv
c2hhcmU6L3Vzci9sb2NhbC9zaGFyZQpYRE1fTUFOQUdFRD0vdmFyL3J1bi94ZG1jdGwveGRtY3Rs
LTowLG1heXNkLG1heWZuLHNjaGVkLHJzdmQsbWV0aG9kPWNsYXNzaWMKWEVSQ0VTQ19OTFNfSE9N
RT0vdXNyL3NoYXJlL3hlcmNlcy1jL21zZwpfPV9SQ19HRVRfS1ZfQ0FDSEUKX0VfRE9DREVTVFRS
RUVfPQpfRV9FWEVERVNUVFJFRV89Cl9fX0VDTEFTU19SRUNVUl9NVUxUSUxJQj15ZXMKX19fRUNM
QVNTX1JFQ1VSX1RPT0xDSEFJTl9GVU5DUz15ZXMKY29uZj1waWxvdC1saW5rLTAuMTIuMy1yMApw
bV9lY2hvdmFyPQpzdHI9J2phdmEtcGtnX2FwcGVuZF86IGVudGVyaW5nIGZ1bmN0aW9uJwpFTFRf
ZmluZF9sdG1haW5fc2ggKCkgCnsgCiAgICBsb2NhbCB4PTsKICAgIGxvY2FsIGRpcmxpc3Q9Owog
ICAgZm9yIHggaW4gJChmaW5kICIke1N9IiAtbmFtZSAnbHRtYWluLnNoJyk7CiAgICBkbwogICAg
ICAgIGRpcmxpc3Q9IiR7ZGlybGlzdH0gJHt4JS8qfSI7CiAgICBkb25lOwogICAgZWNobyAiJHtk
aXJsaXN0fSIKfQpFTFRfbGlidG9vbF92ZXJzaW9uICgpIAp7IAogICAgbG9jYWwgbHRtYWluX3No
PSQxOwogICAgbG9jYWwgdmVyc2lvbj07CiAgICB2ZXJzaW9uPSQoZXZhbCAkKGdyZXAgLWUgJ15b
WzpzcGFjZTpdXSpWRVJTSU9OPScgIiR7bHRtYWluX3NofSIpOyAJICAgICAgICAgICAgICAgICBl
Y2hvICIke1ZFUlNJT059Iik7CiAgICBbWyAteiAke3ZlcnNpb259IF1dICYmIHZlcnNpb249IjAi
OwogICAgZWNobyAiJHt2ZXJzaW9ufSIKfQpFTFRfdHJ5X2FuZF9hcHBseV9wYXRjaCAoKSAKeyAK
ICAgIGxvY2FsIHJldD0wOwogICAgbG9jYWwgZmlsZT0kMTsKICAgIGxvY2FsIHBhdGNoPSQyOwog
ICAgaWYgcGF0Y2ggLXAwIC0tZHJ5LXJ1biAiJHtmaWxlfSIgIiR7cGF0Y2h9IiA+JiIke1R9L2Vs
aWJ0b29sLmxvZyI7IHRoZW4KICAgICAgICBlaW5mbyAiICBBcHBseWluZyAkKGJhc2VuYW1lICIk
KGRpcm5hbWUgIiR7cGF0Y2h9IikiKS0ke3BhdGNoIyMqL30ucGF0Y2ggLi4uIjsKICAgICAgICBw
YXRjaCAtcDAgLWcwIC0tbm8tYmFja3VwLWlmLW1pc21hdGNoICIke2ZpbGV9IiAiJHtwYXRjaH0i
ID4mIiR7VH0vZWxpYnRvb2wubG9nIjsKICAgICAgICByZXQ9JD87CiAgICAgICAgZXhwb3J0IEVM
VF9BUFBMSUVEX1BBVENIRVM9IiR7RUxUX0FQUExJRURfUEFUQ0hFU30gJHtwYXRjaCMjKi99IjsK
ICAgIGVsc2UKICAgICAgICByZXQ9MTsKICAgIGZpOwogICAgcmV0dXJuICIke3JldH0iCn0KRUxU
X3dhbGtfcGF0Y2hlcyAoKSAKeyAKICAgIGxvY2FsIHg9OwogICAgbG9jYWwgeT07CiAgICBsb2Nh
bCByZXQ9MTsKICAgIGxvY2FsIGZpbGU9JDE7CiAgICBsb2NhbCBwYXRjaF9zZXQ9JDI7CiAgICBs
b2NhbCBwYXRjaF9kaXI9OwogICAgbG9jYWwgcmVtX2ludF9kZXA9JDM7CiAgICBpZiBbWyAtbiAk
e3BhdGNoX3NldH0gXV07IHRoZW4KICAgICAgICBpZiBbWyAtZCAke0VMVF9QQVRDSF9ESVJ9LyR7
cGF0Y2hfc2V0fSBdXTsgdGhlbgogICAgICAgICAgICBwYXRjaF9kaXI9IiR7RUxUX1BBVENIX0RJ
Un0vJHtwYXRjaF9zZXR9IjsKICAgICAgICBlbHNlCiAgICAgICAgICAgIHJldHVybiAiJHtyZXR9
IjsKICAgICAgICBmaTsKICAgICAgICBmb3IgeCBpbiAkKGxzIC1kICIke3BhdGNoX2Rpcn0iLyog
Mj4gL2Rldi9udWxsIHwgZ3JlcCAtdiAnQ1ZTJyB8IHNvcnQgLXIpOwogICAgICAgIGRvCiAgICAg
ICAgICAgIGlmIFtbIC1uICR7eH0gJiYgLWYgJHt4fSBdXTsgdGhlbgogICAgICAgICAgICAgICAg
aWYgW1sgLW4gJHtyZW1faW50X2RlcH0gXV07IHRoZW4KICAgICAgICAgICAgICAgICAgICBzZWQg
LWUgInN8QFJFTV9JTlRfREVQQHwke3JlbV9pbnRfZGVwfXxnIiAke3h9ID4gIiR7VH0vJCQucmVt
X2ludF9kZXBzLnBhdGNoIjsKICAgICAgICAgICAgICAgICAgICB4PSIke1R9LyQkLnJlbV9pbnRf
ZGVwcy5wYXRjaCI7CiAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgICAgIGlmIEVMVF90
cnlfYW5kX2FwcGx5X3BhdGNoICIke2ZpbGV9IiAiJHt4fSI7IHRoZW4KICAgICAgICAgICAgICAg
ICAgICByZXQ9MDsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGZp
OwogICAgICAgICAgICBmaTsKICAgICAgICBkb25lOwogICAgZmk7CiAgICByZXR1cm4gIiR7cmV0
fSIKfQpWRVJfbWFqb3IgKCkgCnsgCiAgICBbWyAteiAkMSBdXSAmJiByZXR1cm4gMTsKICAgIGxv
Y2FsIFZFUj0kQDsKICAgIGVjaG8gIiR7VkVSJSVbXls6ZGlnaXQ6XV0qfSIKfQpWRVJfbWljcm8g
KCkgCnsgCiAgICBbWyAteiAkMSBdXSAmJiByZXR1cm4gMTsKICAgIGxvY2FsIFZFUj0kQDsKICAg
IFZFUj0ke1ZFUiMqLioufTsKICAgIGVjaG8gIiR7VkVSJSVbXls6ZGlnaXQ6XV0qfSIKfQpWRVJf
bWlub3IgKCkgCnsgCiAgICBbWyAteiAkMSBdXSAmJiByZXR1cm4gMTsKICAgIGxvY2FsIFZFUj0k
QDsKICAgIFZFUj0ke1ZFUiMqLn07CiAgICBlY2hvICIke1ZFUiUlW15bOmRpZ2l0Ol1dKn0iCn0K
VkVSX3RvX2ludCAoKSAKeyAKICAgIFtbIC16ICQxIF1dICYmIHJldHVybiAxOwogICAgbG9jYWwg
VkVSX01BSk9SPSQoVkVSX21ham9yICIkMSIpOwogICAgbG9jYWwgVkVSX01JTk9SPSQoVkVSX21p
bm9yICIkMSIpOwogICAgbG9jYWwgVkVSX01JQ1JPPSQoVkVSX21pY3JvICIkMSIpOwogICAgbG9j
YWwgVkVSX2ludD0kKCggVkVSX01BSk9SICogNjU1MzYgKyBWRVJfTUlOT1IgKiAyNTYgKyBWRVJf
TUlDUk8gKSk7CiAgICBpZiBbWyAke1ZFUl9pbnR9IC1nZSA2NTUzNiBdXTsgdGhlbgogICAgICAg
IGVjaG8gIiR7VkVSX2ludH0iOwogICAgICAgIHJldHVybiAwOwogICAgZmk7CiAgICBlY2hvIDE7
CiAgICByZXR1cm4gMQp9Cl9fdmVyc2lvbmF0b3JfX3Rlc3RfdmVyc2lvbl9jb21wYXJlICgpIAp7
IAogICAgX192ZXJzaW9uYXRvcl9zaG9wdF90b2dnbGUgb247CiAgICBsb2NhbCBsdD0xIGVxPTIg
Z3Q9MyBwIHE7CiAgICBmdW5jdGlvbiBfX3ZlcnNpb25hdG9yX190ZXN0X3ZlcnNpb25fY29tcGFy
ZV90ICgpIAogICAgeyAKICAgICAgICB2ZXJzaW9uX2NvbXBhcmUgIiR7MX0iICIkezN9IjsKICAg
ICAgICBsb2NhbCByPSQ/OwogICAgICAgIFtbICR7cn0gLWVxICR7Mn0gXV0gfHwgZWNobyAiRkFJ
TDogJHtAfSAoZ290ICR7cn0gZXhwICR7Mn0pIgogICAgfTsKICAgIGVjaG8gIgoJCTAgICAgICAg
ICAgICAgJGx0IDEKCQkxICAgICAgICAgICAgICRsdCAyCgkJMiAgICAgICAgICAgICAkZ3QgMQoJ
CTIgICAgICAgICAgICAgJGVxIDIKCQkwICAgICAgICAgICAgICRlcSAwCgkJMTAgICAgICAgICAg
ICAkbHQgMjAKCQk2OCAgICAgICAgICAgICRlcSAwNjgKCQkwNjggICAgICAgICAgICRndCA2NwoJ
CTA2OCAgICAgICAgICAgJGx0IDY5CgoJCTEuMCAgICAgICAgICAgJGx0IDIuMAoJCTIuMCAgICAg
ICAgICAgJGVxIDIuMAoJCTIuMCAgICAgICAgICAgJGd0IDEuMAoKCQkxLjAgICAgICAgICAgICRn
dCAwLjAKCQkwLjAgICAgICAgICAgICRlcSAwLjAKCQkwLjAgICAgICAgICAgICRsdCAxLjAKCgkJ
MC4xICAgICAgICAgICAkbHQgMC4yCgkJMC4yICAgICAgICAgICAkZXEgMC4yCgkJMC4zICAgICAg
ICAgICAkZ3QgMC4yCgoJCTEuMiAgICAgICAgICAgJGx0IDIuMQoJCTIuMSAgICAgICAgICAgJGd0
IDEuMgoKCQkxLjIuMyAgICAgICAgICRsdCAxLjIuNAoJCTEuMi40ICAgICAgICAgJGd0IDEuMi4z
CgoJCTEuMi4wICAgICAgICAgJGVxIDEuMgoJCTEuMi4xICAgICAgICAgJGd0IDEuMgoJCTEuMiAg
ICAgICAgICAgJGx0IDEuMi4xCgoJCTEuMmIgICAgICAgICAgJGVxIDEuMmIKCQkxLjJiICAgICAg
ICAgICRsdCAxLjJjCgkJMS4yYiAgICAgICAgICAkZ3QgMS4yYQoJCTEuMmIgICAgICAgICAgJGd0
IDEuMgoJCTEuMiAgICAgICAgICAgJGx0IDEuMmEKCgkJMS4zICAgICAgICAgICAkZ3QgMS4yYQoJ
CTEuMyAgICAgICAgICAgJGx0IDEuM2EKCgkJMS4wX2FscGhhNyAgICAkbHQgMS4wX2JldGE3CgkJ
MS4wX2JldGEgICAgICAkbHQgMS4wX3ByZQoJCTEuMF9wcmU1ICAgICAgJGx0IDEuMF9yYzIKCQkx
LjBfcmMyICAgICAgICRsdCAxLjAKCgkJMS4wX3AxICAgICAgICAkZ3QgMS4wCgkJMS4wX3AxLXIx
ICAgICAkZ3QgMS4wX3AxCgoJCTEuMF9hbHBoYTYtcjEgJGd0IDEuMF9hbHBoYTYKCQkxLjBfYmV0
YTYtcjEgICRndCAxLjBfYWxwaGE2LXIyCgoJCTEuMF9wcmUxICAgICAgJGx0IDEuMC1wMQoKCQkx
LjBwICAgICAgICAgICRndCAxLjBfcDEKCQkxLjByICAgICAgICAgICRndCAxLjAtcjEKCQkxLjYu
MTUgICAgICAgICRndCAxLjYuMTAtcjIKCQkxLjYuMTAtcjIgICAgICRsdCAxLjYuMTUKCgkiIHwg
d2hpbGUgcmVhZCBhIGIgYzsgZG8KICAgICAgICBbWyAteiAiJHthfSR7Yn0ke2N9IiBdXSAmJiBj
b250aW51ZTsKICAgICAgICBfX3ZlcnNpb25hdG9yX190ZXN0X3ZlcnNpb25fY29tcGFyZV90ICIk
e2F9IiAiJHtifSIgIiR7Y30iOwogICAgZG9uZTsKICAgIGZvciBxIGluICJhbHBoYSBiZXRhIHBy
ZSByYz0ke2x0fTske2d0fSIgInAgcj0ke2d0fTske2x0fSI7CiAgICBkbwogICAgICAgIGZvciBw
IGluICR7cSUlPSp9OwogICAgICAgIGRvCiAgICAgICAgICAgIGxvY2FsIGM9JHtxIyMqPX07CiAg
ICAgICAgICAgIGxvY2FsIGFsdD0ke2MlJTsqfSBhZ3Q9JHtjIyMqO307CiAgICAgICAgICAgIF9f
dmVyc2lvbmF0b3JfX3Rlc3RfdmVyc2lvbl9jb21wYXJlX3QgIjEuMCIgJGFndCAiMS4wXyR7cH0i
OwogICAgICAgICAgICBfX3ZlcnNpb25hdG9yX190ZXN0X3ZlcnNpb25fY29tcGFyZV90ICIxLjAi
ICRhZ3QgIjEuMF8ke3B9MSI7CiAgICAgICAgICAgIF9fdmVyc2lvbmF0b3JfX3Rlc3RfdmVyc2lv
bl9jb21wYXJlX3QgIjEuMCIgJGFndCAiMS4wXyR7cH0wNjgiOwogICAgICAgICAgICBfX3ZlcnNp
b25hdG9yX190ZXN0X3ZlcnNpb25fY29tcGFyZV90ICIyLjBfJHtwfSIgJGFsdCAiMi4wIjsKICAg
ICAgICAgICAgX192ZXJzaW9uYXRvcl9fdGVzdF92ZXJzaW9uX2NvbXBhcmVfdCAiMi4wXyR7cH0x
IiAkYWx0ICIyLjAiOwogICAgICAgICAgICBfX3ZlcnNpb25hdG9yX190ZXN0X3ZlcnNpb25fY29t
cGFyZV90ICIyLjBfJHtwfTA2OCIgJGFsdCAiMi4wIjsKICAgICAgICAgICAgX192ZXJzaW9uYXRv
cl9fdGVzdF92ZXJzaW9uX2NvbXBhcmVfdCAiMS4wXyR7cH0iICRlcSAiMS4wXyR7cH0iOwogICAg
ICAgICAgICBfX3ZlcnNpb25hdG9yX190ZXN0X3ZlcnNpb25fY29tcGFyZV90ICIwLjBfJHtwfSIg
JGx0ICIwLjBfJHtwfTEiOwogICAgICAgICAgICBfX3ZlcnNpb25hdG9yX190ZXN0X3ZlcnNpb25f
Y29tcGFyZV90ICI2NjZfJHtwfTMiICRndCAiNjY2XyR7cH0iOwogICAgICAgICAgICBfX3ZlcnNp
b25hdG9yX190ZXN0X3ZlcnNpb25fY29tcGFyZV90ICIxXyR7cH03IiAkbHQgIjFfJHtwfTgiOwog
ICAgICAgICAgICBfX3ZlcnNpb25hdG9yX190ZXN0X3ZlcnNpb25fY29tcGFyZV90ICIxXyR7cH03
IiAkZXEgIjFfJHtwfTciOwogICAgICAgICAgICBfX3ZlcnNpb25hdG9yX190ZXN0X3ZlcnNpb25f
Y29tcGFyZV90ICIxXyR7cH03IiAkZ3QgIjFfJHtwfTYiOwogICAgICAgICAgICBfX3ZlcnNpb25h
dG9yX190ZXN0X3ZlcnNpb25fY29tcGFyZV90ICIxXyR7cH0wOSIgJGVxICIxXyR7cH05IjsKICAg
ICAgICBkb25lOwogICAgZG9uZTsKICAgIGZvciBwIGluICItciIgIl9wIjsKICAgIGRvCiAgICAg
ICAgX192ZXJzaW9uYXRvcl9fdGVzdF92ZXJzaW9uX2NvbXBhcmVfdCAiNy4yJHtwfTEiICRsdCAi
Ny4yJHtwfTIiOwogICAgICAgIF9fdmVyc2lvbmF0b3JfX3Rlc3RfdmVyc2lvbl9jb21wYXJlX3Qg
IjcuMiR7cH0yIiAkZ3QgIjcuMiR7cH0xIjsKICAgICAgICBfX3ZlcnNpb25hdG9yX190ZXN0X3Zl
cnNpb25fY29tcGFyZV90ICI3LjIke3B9MyIgJGd0ICI3LjIke3B9MiI7CiAgICAgICAgX192ZXJz
aW9uYXRvcl9fdGVzdF92ZXJzaW9uX2NvbXBhcmVfdCAiNy4yJHtwfTIiICRsdCAiNy4yJHtwfTMi
OwogICAgZG9uZTsKICAgIF9fdmVyc2lvbmF0b3Jfc2hvcHRfdG9nZ2xlIG9mZgp9Cl9fdmVyc2lv
bmF0b3Jfc2hvcHRfdG9nZ2xlICgpIAp7IAogICAgVkVSU0lPTkFUT1JfUkVDVVJTSU9OPSR7VkVS
U0lPTkFUT1JfUkVDVVJTSU9OOi0wfTsKICAgIGNhc2UgIiQxIiBpbiAKICAgICAgICAib24iKQog
ICAgICAgICAgICBpZiBbWyAkVkVSU0lPTkFUT1JfUkVDVVJTSU9OIC1sdCAxIF1dOyB0aGVuCiAg
ICAgICAgICAgICAgICBWRVJTSU9OQVRPUl9PTERfRVhUR0xPQj0kKHNob3B0IC1wIGV4dGdsb2Ip
OwogICAgICAgICAgICAgICAgc2hvcHQgLXMgZXh0Z2xvYjsKICAgICAgICAgICAgZmk7CiAgICAg
ICAgICAgIFZFUlNJT05BVE9SX1JFQ1VSU0lPTj0kKCggJFZFUlNJT05BVE9SX1JFQ1VSU0lPTiAr
IDEgKSkKICAgICAgICA7OwogICAgICAgICJvZmYiKQogICAgICAgICAgICBWRVJTSU9OQVRPUl9S
RUNVUlNJT049JCgoICRWRVJTSU9OQVRPUl9SRUNVUlNJT04gLSAxICkpOwogICAgICAgICAgICBp
ZiBbWyAkVkVSU0lPTkFUT1JfUkVDVVJTSU9OIC1sdCAxIF1dOyB0aGVuCiAgICAgICAgICAgICAg
ICBldmFsICRWRVJTSU9OQVRPUl9PTERfRVhUR0xPQjsKICAgICAgICAgICAgZmkKICAgICAgICA7
OwogICAgZXNhYzsKICAgIHJldHVybiAwCn0KX2Nkcm9tX2xvY2F0ZV9maWxlX29uX2NkICgpIAp7
IAogICAgbG9jYWwgbWxpbmU9IiI7CiAgICBsb2NhbCBzaG93ZWRtc2c9MDsKICAgIHdoaWxlIFtb
IC16ICR7Q0RST01fUk9PVH0gXV07IGRvCiAgICAgICAgbG9jYWwgaT0wOwogICAgICAgIGxvY2Fs
IC1hIGNkc2V0PSgkeyovLzovIH0pOwogICAgICAgIGlmIFtbIC1uICR7Q0RST01fU0VUfSBdXTsg
dGhlbgogICAgICAgICAgICBjZHNldD0oJHtjZHNldFske0NEUk9NX1NFVH1dfSk7CiAgICAgICAg
Zmk7CiAgICAgICAgd2hpbGUgW1sgLW4gJHtjZHNldFske2l9XX0gXV07IGRvCiAgICAgICAgICAg
IGxvY2FsIGRpcj0kKGRpcm5hbWUgJHtjZHNldFske2l9XX0pOwogICAgICAgICAgICBsb2NhbCBm
aWxlPSQoYmFzZW5hbWUgJHtjZHNldFske2l9XX0pOwogICAgICAgICAgICBsb2NhbCBwb2ludD0g
bm9kZT0gZnM9IGZvbz07CiAgICAgICAgICAgIHdoaWxlIHJlYWQgcG9pbnQgbm9kZSBmcyBmb287
IGRvCiAgICAgICAgICAgICAgICBbWyAiIGNkOTY2MCBpc285NjYwIHVkZiAiICE9ICoiICR7ZnN9
ICIqIF1dICYmICEgW1sgJHtmc30gPT0gInN1YmZzIiAmJiAiLCR7b3B0c30sIiA9PSAqIixmcz1j
ZGZzcywiKiBdXSAmJiBjb250aW51ZTsKICAgICAgICAgICAgICAgIHBvaW50PSR7cG9pbnQvL1ww
NDAvIH07CiAgICAgICAgICAgICAgICBbWyAhIC1kICR7cG9pbnR9LyR7ZGlyfSBdXSAmJiBjb250
aW51ZTsKICAgICAgICAgICAgICAgIFtbIC16ICQoZmluZCAiJHtwb2ludH0vJHtkaXJ9IiAtbWF4
ZGVwdGggMSAtaW5hbWUgIiR7ZmlsZX0iKSBdXSAmJiBjb250aW51ZTsKICAgICAgICAgICAgICAg
IGV4cG9ydCBDRFJPTV9ST09UPSR7cG9pbnR9OwogICAgICAgICAgICAgICAgZXhwb3J0IENEUk9N
X1NFVD0ke2l9OwogICAgICAgICAgICAgICAgZXhwb3J0IENEUk9NX01BVENIPSR7Y2RzZXRbJHtp
fV19OwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICBkb25lIDw8PCAiJChnZXRf
bW91bnRzKSI7CiAgICAgICAgICAgICgoKytpKSk7CiAgICAgICAgZG9uZTsKICAgICAgICBlY2hv
OwogICAgICAgIGlmIFtbICR7c2hvd2VkbXNnfSAtZXEgMCBdXTsgdGhlbgogICAgICAgICAgICBp
ZiBbWyAke0NEUk9NX1RPVEFMX0NEU30gLWVxIDEgXV07IHRoZW4KICAgICAgICAgICAgICAgIGlm
IFtbIC16ICR7Q0RST01fTkFNRX0gXV07IHRoZW4KICAgICAgICAgICAgICAgICAgICBlaW5mbyAi
UGxlYXNlIGluc2VydCttb3VudCB0aGUgY2Ryb20gZm9yICR7UE59IG5vdyAhIjsKICAgICAgICAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICBlaW5mbyAiUGxlYXNlIGluc2VydCttb3Vu
dCB0aGUgJHtDRFJPTV9OQU1FfSBjZHJvbSBub3cgISI7CiAgICAgICAgICAgICAgICBmaTsKICAg
ICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgaWYgW1sgLXogJHtDRFJPTV9OQU1FXzF9IF1d
OyB0aGVuCiAgICAgICAgICAgICAgICAgICAgZWluZm8gIlBsZWFzZSBpbnNlcnQrbW91bnQgY2Qg
IyR7Q0RST01fQ1VSUkVOVF9DRH0gZm9yICR7UE59IG5vdyAhIjsKICAgICAgICAgICAgICAgIGVs
c2UKICAgICAgICAgICAgICAgICAgICBsb2NhbCB2YXI9IkNEUk9NX05BTUVfJHtDRFJPTV9DVVJS
RU5UX0NEfSI7CiAgICAgICAgICAgICAgICAgICAgZWluZm8gIlBsZWFzZSBpbnNlcnQrbW91bnQg
dGhlICR7IXZhcn0gY2Ryb20gbm93ICEiOwogICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAg
IGZpOwogICAgICAgICAgICBzaG93ZWRtc2c9MTsKICAgICAgICBmaTsKICAgICAgICBlaW5mbyAi
UHJlc3MgcmV0dXJuIHRvIHNjYW4gZm9yIHRoZSBjZCBhZ2FpbiI7CiAgICAgICAgZWluZm8gIm9y
IGhpdCBDVFJMK0MgdG8gYWJvcnQgdGhlIGVtZXJnZS4iOwogICAgICAgIGVjaG87CiAgICAgICAg
ZWluZm8gIklmIHlvdSBhcmUgaGF2aW5nIHRyb3VibGUgd2l0aCB0aGUgZGV0ZWN0aW9uIjsKICAg
ICAgICBlaW5mbyAib2YgeW91ciBDRCwgaXQgaXMgcG9zc2libGUgdGhhdCB5b3UgZG8gbm90IGhh
dmUiOwogICAgICAgIGVpbmZvICJKb2xpZXQgc3VwcG9ydCBlbmFibGVkIGluIHlvdXIga2VybmVs
LiAgUGxlYXNlIjsKICAgICAgICBlaW5mbyAiY2hlY2sgdGhhdCBDT05GSUdfSk9MSUVUIGlzIGVu
YWJsZWQgaW4geW91ciBrZXJuZWwuIjsKICAgICAgICByZWFkIHx8IGRpZWZ1bmMgIiRGVU5DTkFN
RSIgIiRMSU5FTk8iICIkPyIgInNvbWV0aGluZyBpcyBzY3Jld2VkIHdpdGggeW91ciBzeXN0ZW0i
OwogICAgZG9uZQp9Cl9lbGlidG9vbGl6ZSAoKSAKeyAKICAgIGxvY2FsIG9wdHM7CiAgICBsb2Nh
bCBsdHRlc3Q7CiAgICBsdHRlc3Q9IiQoYXV0b3Rvb2xzX2NoZWNrX21hY3JvICJBQ19QUk9HX0xJ
QlRPT0wiKSQoYXV0b3Rvb2xzX2NoZWNrX21hY3JvICJBTV9QUk9HX0xJQlRPT0wiKSI7CiAgICBb
WyAtbiAkbHR0ZXN0IF1dIHx8IHJldHVybiAwOwogICAgW1sgLWYgTWFrZWZpbGUuYW0gXV0gJiYg
b3B0cz0iLS1hdXRvbWFrZSI7CiAgICBbWyAiJHtVU0VSTEFORH0iID09ICJEYXJ3aW4iIF1dICYm
IExJQlRPT0xJWkU9ImdsaWJ0b29saXplIjsKICAgIGF1dG90b29sc19ydW5fdG9vbCAke0xJQlRP
T0xJWkU6LWxpYnRvb2xpemV9ICIkQCIgJHtvcHRzfTsKICAgIGVhY2xvY2FsCn0KX2djYy1pbnN0
YWxsLWRpciAoKSAKeyAKICAgIGVjaG8gIiQoJCh0Yy1nZXRDQykgLXByaW50LXNlYXJjaC1kaXJz
IDI+IC9kZXYvbnVsbCB8CQlhd2sgJyQxPT0iaW5zdGFsbDoiIHtwcmludCAkMn0nKSIKfQpfZ2Nj
LXNwZWNzLWRpcmVjdGl2ZV9yYXcgKCkgCnsgCiAgICBsb2NhbCBjYz0kKHRjLWdldENDKTsKICAg
IGxvY2FsIHNwZWNmaWxlcz0kKExDX0FMTD1DICR7Y2N9IC12IDI+JjEgfCBhd2sgJyQxPT0iUmVh
ZGluZyIge3ByaW50ICRORn0nKTsKICAgICR7Y2N9IC1kdW1wc3BlY3MgMj4gL2Rldi9udWxsIHwg
Y2F0IC0gJHtzcGVjZmlsZXN9IHwgYXdrIC12IGRpcmVjdGl2ZT0kMSAnQkVHSU4JeyBwc3BlYz0i
Ijsgc3BlYz0iIjsgb3V0c2lkZT0xIH0KJDE9PSIqImRpcmVjdGl2ZSI6IiAgeyBwc3BlYz1zcGVj
OyBzcGVjPSIiOyBvdXRzaWRlPTA7IG5leHQgfQoJb3V0c2lkZSB8fCBORj09MCB8fCAoIHN1YnN0
cigkMSwxLDEpPT0iKiIgJiYgc3Vic3RyKCQxLGxlbmd0aCgkMSksMSk9PSI6IiApIHsgb3V0c2lk
ZT0xOyBuZXh0IH0KCXNwZWM9PSIiICYmIHN1YnN0cigkMCwxLDEpPT0iKyIgeyBzcGVjPXBzcGVj
ICIgIiBzdWJzdHIoJDAsMik7IG5leHQgfQoJeyBzcGVjPXNwZWMgJDAgfQpFTkQJeyBwcmludCBz
cGVjIH0nOwogICAgcmV0dXJuIDAKfQpfZ2NjLXNwZWNzLWV4aXN0cyAoKSAKeyAKICAgIFtbIC1m
ICQoX2djYy1pbnN0YWxsLWRpcikvJDEgXV0KfQphdXRvdG9vbHNfY2hlY2tfbWFjcm8gKCkgCnsg
CiAgICBbWyAtZiBjb25maWd1cmUuYWMgfHwgLWYgY29uZmlndXJlLmluIF1dICYmIFdBTlRfQVVU
T0NPTkY9IjIuNSIgYXV0b2NvbmYgLS10cmFjZT0kMSAyPiAvZGV2L251bGw7CiAgICByZXR1cm4g
MAp9CmF1dG90b29sc19nZXRfYXV4ZGlyICgpIAp7IAogICAgbG9jYWwgYXV4ZGlyX3NjYW5fb3V0
OwogICAgYXV4ZGlyX3NjYW5fb3V0PSQoYXV0b3Rvb2xzX2NoZWNrX21hY3JvICJBQ19DT05GSUdf
QVVYX0RJUiIpOwogICAgW1sgLW4gJHthdXhkaXJfc2Nhbl9vdXR9IF1dIHx8IHJldHVybiAwOwog
ICAgZWNobyAke2F1eGRpcl9zY2FuX291dH0gfCBnYXdrICcoJDAgIX4gL15bWzpzcGFjZTpdXSoo
I3xkbmwpLykgewoJCWlmIChtYXRjaCgkMCwgL0FDX0NPTkZJR19BVVhfRElSOiguKikkLywgcmVz
KSkKCQkJcHJpbnQgcmVzWzFdCgl9JyB8IHVuaXE7CiAgICByZXR1cm4gMAp9CmF1dG90b29sc19n
ZXRfc3ViZGlycyAoKSAKeyAKICAgIGxvY2FsIHN1YmRpcnNfc2Nhbl9vdXQ7CiAgICBzdWJkaXJz
X3NjYW5fb3V0PSQoYXV0b3Rvb2xzX2NoZWNrX21hY3JvICJBQ19DT05GSUdfU1VCRElSUyIpOwog
ICAgW1sgLW4gJHtzdWJkaXJzX3NjYW5fb3V0fSBdXSB8fCByZXR1cm4gMDsKICAgIGVjaG8gIiR7
c3ViZGlyc19zY2FuX291dH0iIHwgZ2F3ayAnKCQwICF+IC9eW1s6c3BhY2U6XV0qKCN8ZG5sKS8p
IHsKCQlpZiAobWF0Y2goJDAsIC9BQ19DT05GSUdfU1VCRElSUzooLiopJC8sIHJlcykpCgkJCXBy
aW50IHJlc1sxXQoJfScgfCB1bmlxOwogICAgcmV0dXJuIDAKfQphdXRvdG9vbHNfcnVuX3Rvb2wg
KCkgCnsgCiAgICBsb2NhbCBTVERFUlJfVEFSR0VUPSIke1R9LyQkLm91dCI7CiAgICBsb2NhbCBy
aXM7CiAgICBlY2hvICIqKioqKiAkMSAqKioqKiIgPiAke1NUREVSUl9UQVJHRVQlLyp9LyQxLSR7
U1RERVJSX1RBUkdFVCMjKi99OwogICAgZWNobyA+PiAke1NUREVSUl9UQVJHRVQlLyp9LyQxLSR7
U1RERVJSX1RBUkdFVCMjKi99OwogICAgZWJlZ2luICJSdW5uaW5nICRAIjsKICAgICRAID4+ICR7
U1RERVJSX1RBUkdFVCUvKn0vJDEtJHtTVERFUlJfVEFSR0VUIyMqL30gMj4mMTsKICAgIHJpcz0k
PzsKICAgIGVlbmQgJHtyaXN9OwogICAgaWYgW1sgJHtyaXN9ICE9IDAgJiYgJHtOT19GQUlMfSAh
PSAxIF1dOyB0aGVuCiAgICAgICAgZWNobzsKICAgICAgICBlZXJyb3IgIkZhaWxlZCBSdW5uaW5n
ICQxICEiOwogICAgICAgIGVlcnJvcjsKICAgICAgICBlZXJyb3IgIkluY2x1ZGUgaW4geW91ciBi
dWdyZXBvcnQgdGhlIGNvbnRlbnRzIG9mOiI7CiAgICAgICAgZWVycm9yOwogICAgICAgIGVlcnJv
ciAiICAke1NUREVSUl9UQVJHRVQlLyp9LyQxLSR7U1RERVJSX1RBUkdFVCMjKi99IjsKICAgICAg
ICBlY2hvOwogICAgICAgIGRpZWZ1bmMgIiRGVU5DTkFNRSIgIiRMSU5FTk8iICIkPyIgIkZhaWxl
ZCBSdW5uaW5nICQxICEiOwogICAgZmkKfQpiYXNlX3NyY19jb21waWxlICgpIAp7IAogICAgZGVi
dWctcHJpbnQtZnVuY3Rpb24gJEZVTkNOQU1FICQqOwogICAgWyAteiAiJDEiIF0gJiYgYmFzZV9z
cmNfY29tcGlsZSBhbGw7CiAgICBjZCAke1N9OwogICAgd2hpbGUgWyAiJDEiIF07IGRvCiAgICAg
ICAgY2FzZSAkMSBpbiAKICAgICAgICAgICAgY29uZmlndXJlKQogICAgICAgICAgICAgICAgZGVi
dWctcHJpbnQtc2VjdGlvbiBjb25maWd1cmU7CiAgICAgICAgICAgICAgICBlY29uZiB8fCBkaWVm
dW5jICIkRlVOQ05BTUUiICIkTElORU5PIiAiJD8iICJkaWVkIHJ1bm5pbmcgZWNvbmYsICRGVU5D
TkFNRTpjb25maWd1cmUiCiAgICAgICAgICAgIDs7CiAgICAgICAgICAgIG1ha2UpCiAgICAgICAg
ICAgICAgICBkZWJ1Zy1wcmludC1zZWN0aW9uIG1ha2U7CiAgICAgICAgICAgICAgICBlbWFrZSB8
fCBkaWVmdW5jICIkRlVOQ05BTUUiICIkTElORU5PIiAiJD8iICJkaWVkIHJ1bm5pbmcgZW1ha2Us
ICRGVU5DTkFNRTptYWtlIgogICAgICAgICAgICA7OwogICAgICAgICAgICBhbGwpCiAgICAgICAg
ICAgICAgICBkZWJ1Zy1wcmludC1zZWN0aW9uIGFsbDsKICAgICAgICAgICAgICAgIGJhc2Vfc3Jj
X2NvbXBpbGUgY29uZmlndXJlIG1ha2UKICAgICAgICAgICAgOzsKICAgICAgICBlc2FjOwogICAg
ICAgIHNoaWZ0OwogICAgZG9uZQp9CmJhc2Vfc3JjX2luc3RhbGwgKCkgCnsgCiAgICBkZWJ1Zy1w
cmludC1mdW5jdGlvbiAkRlVOQ05BTUUgJCo7CiAgICBbIC16ICIkMSIgXSAmJiBiYXNlX3NyY19p
bnN0YWxsIGFsbDsKICAgIGNkICR7U307CiAgICB3aGlsZSBbICIkMSIgXTsgZG8KICAgICAgICBj
YXNlICQxIGluIAogICAgICAgICAgICBtYWtlKQogICAgICAgICAgICAgICAgZGVidWctcHJpbnQt
c2VjdGlvbiBtYWtlOwogICAgICAgICAgICAgICAgbWFrZSBERVNURElSPSR7RH0gaW5zdGFsbCB8
fCBkaWVmdW5jICIkRlVOQ05BTUUiICIkTElORU5PIiAiJD8iICJkaWVkIHJ1bm5pbmcgbWFrZSBp
bnN0YWxsLCAkRlVOQ05BTUU6bWFrZSIKICAgICAgICAgICAgOzsKICAgICAgICAgICAgYWxsKQog
ICAgICAgICAgICAgICAgZGVidWctcHJpbnQtc2VjdGlvbiBhbGw7CiAgICAgICAgICAgICAgICBi
YXNlX3NyY19pbnN0YWxsIG1ha2UKICAgICAgICAgICAgOzsKICAgICAgICBlc2FjOwogICAgICAg
IHNoaWZ0OwogICAgZG9uZQp9CmJhc2Vfc3JjX3VucGFjayAoKSAKeyAKICAgIGRlYnVnLXByaW50
LWZ1bmN0aW9uICRGVU5DTkFNRSAkKjsKICAgIFsgLXogIiQxIiBdICYmIGJhc2Vfc3JjX3VucGFj
ayBhbGw7CiAgICBjZCAke1dPUktESVJ9OwogICAgd2hpbGUgWyAiJDEiIF07IGRvCiAgICAgICAg
Y2FzZSAkMSBpbiAKICAgICAgICAgICAgdW5wYWNrKQogICAgICAgICAgICAgICAgZGVidWctcHJp
bnQtc2VjdGlvbiB1bnBhY2s7CiAgICAgICAgICAgICAgICB1bnBhY2sgJHtBfQogICAgICAgICAg
ICA7OwogICAgICAgICAgICBwYXRjaCkKICAgICAgICAgICAgICAgIGRlYnVnLXByaW50LXNlY3Rp
b24gcGF0Y2g7CiAgICAgICAgICAgICAgICBjZCAke1N9OwogICAgICAgICAgICAgICAgZXBhdGNo
ICR7RklMRVNESVJ9LyR7UH0tZ2VudG9vLmRpZmYKICAgICAgICAgICAgOzsKICAgICAgICAgICAg
YXV0b3BhdGNoKQogICAgICAgICAgICAgICAgZGVidWctcHJpbnQtc2VjdGlvbiBhdXRvcGF0Y2g7
CiAgICAgICAgICAgICAgICBkZWJ1Zy1wcmludCAiJEZVTkNOQU1FOiBhdXRvcGF0Y2g6IFBBVENI
RVM9JFBBVENIRVMsIFBBVENIRVMxPSRQQVRDSEVTMSI7CiAgICAgICAgICAgICAgICBjZCAke1N9
OwogICAgICAgICAgICAgICAgZm9yIHggaW4gJFBBVENIRVMgJFBBVENIRVMxOwogICAgICAgICAg
ICAgICAgZG8KICAgICAgICAgICAgICAgICAgICBkZWJ1Zy1wcmludCAiJEZVTkNOQU1FOiBhdXRv
cGF0Y2g6IHBhdGNoaW5nIGZyb20gJHt4fSI7CiAgICAgICAgICAgICAgICAgICAgZXBhdGNoICR7
eH07CiAgICAgICAgICAgICAgICBkb25lCiAgICAgICAgICAgIDs7CiAgICAgICAgICAgIGFsbCkK
ICAgICAgICAgICAgICAgIGRlYnVnLXByaW50LXNlY3Rpb24gYWxsOwogICAgICAgICAgICAgICAg
YmFzZV9zcmNfdW5wYWNrIHVucGFjayBhdXRvcGF0Y2gKICAgICAgICAgICAgOzsKICAgICAgICBl
c2FjOwogICAgICAgIHNoaWZ0OwogICAgZG9uZQp9CmJ1aWx0X3dpdGhfdXNlICgpIAp7IAogICAg
bG9jYWwgaGlkZGVuPSJubyI7CiAgICBpZiBbWyAkMSA9PSAiLS1oaWRkZW4iIF1dOyB0aGVuCiAg
ICAgICAgaGlkZGVuPSJ5ZXMiOwogICAgICAgIHNoaWZ0OwogICAgZmk7CiAgICBsb2NhbCBtaXNz
aW5nX2FjdGlvbj0iZGllIjsKICAgIGlmIFtbICQxID09ICItLW1pc3NpbmciIF1dOyB0aGVuCiAg
ICAgICAgbWlzc2luZ19hY3Rpb249JDI7CiAgICAgICAgc2hpZnQ7CiAgICAgICAgc2hpZnQ7CiAg
ICAgICAgY2FzZSAke21pc3NpbmdfYWN0aW9ufSBpbiAKICAgICAgICAgICAgdHJ1ZSB8IGZhbHNl
IHwgZGllKQoKICAgICAgICAgICAgOzsKICAgICAgICAgICAgKikKICAgICAgICAgICAgICAgIGRp
ZWZ1bmMgIiRGVU5DTkFNRSIgIiRMSU5FTk8iICIkPyIgInVua25vd24gYWN0aW9uICcke21pc3Np
bmdfYWN0aW9ufSciCiAgICAgICAgICAgIDs7CiAgICAgICAgZXNhYzsKICAgIGZpOwogICAgbG9j
YWwgb3B0PSQxOwogICAgW1sgJHtvcHQ6MDoxfSA9ICItIiBdXSAmJiBzaGlmdCB8fCBvcHQ9Ii1h
IjsKICAgIGxvY2FsIFBLRz0kKGJlc3RfdmVyc2lvbiAkMSk7CiAgICBbWyAteiAke1BLR30gXV0g
JiYgZGllZnVuYyAiJEZVTkNOQU1FIiAiJExJTkVOTyIgIiQ/IiAiVW5hYmxlIHRvIHJlc29sdmUg
JDEgdG8gYW4gaW5zdGFsbGVkIHBhY2thZ2UiOwogICAgc2hpZnQ7CiAgICBsb2NhbCBVU0VGSUxF
PSR7Uk9PVH0vdmFyL2RiL3BrZy8ke1BLR30vVVNFOwogICAgbG9jYWwgSVVTRUZJTEU9JHtST09U
fS92YXIvZGIvcGtnLyR7UEtHfS9JVVNFOwogICAgaWYgW1sgISAtZSAke1VTRUZJTEV9IF1dIHx8
IFtbICEgLWUgJHtJVVNFRklMRX0gJiYgJHtoaWRkZW59ID09ICJubyIgXV07IHRoZW4KICAgICAg
ICBjYXNlICR7bWlzc2luZ19hY3Rpb259IGluIAogICAgICAgICAgICB0cnVlKQogICAgICAgICAg
ICAgICAgcmV0dXJuIDAKICAgICAgICAgICAgOzsKICAgICAgICAgICAgZmFsc2UpCiAgICAgICAg
ICAgICAgICByZXR1cm4gMQogICAgICAgICAgICA7OwogICAgICAgICAgICBkaWUpCiAgICAgICAg
ICAgICAgICBkaWVmdW5jICIkRlVOQ05BTUUiICIkTElORU5PIiAiJD8iICJVbmFibGUgdG8gZGV0
ZXJtaW5lIHdoYXQgVVNFIGZsYWdzICRQS0cgd2FzIGJ1aWx0IHdpdGgiCiAgICAgICAgICAgIDs7
CiAgICAgICAgZXNhYzsKICAgIGZpOwogICAgaWYgW1sgJHtoaWRkZW59ID09ICJubyIgXV07IHRo
ZW4KICAgICAgICBsb2NhbCBJVVNFX0JVSUxUPSQoPCR7SVVTRUZJTEV9KTsKICAgICAgICBsb2Nh
bCBleHBhbmQ7CiAgICAgICAgZm9yIGV4cGFuZCBpbiAkKGVjaG8gJHtVU0VfRVhQQU5EfSB8IHRy
ICdbOnVwcGVyOl0nICdbOmxvd2VyOl0nKTsKICAgICAgICBkbwogICAgICAgICAgICBpZiBbWyAk
MSA9PSAke2V4cGFuZH1fKiBdXTsgdGhlbgogICAgICAgICAgICAgICAgZXhwYW5kPSIiOwogICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGZpOwogICAgICAgIGRvbmU7CiAgICAgICAg
aWYgW1sgLW4gJHtleHBhbmR9IF1dOyB0aGVuCiAgICAgICAgICAgIGlmICEgaGFzICQxICR7SVVT
RV9CVUlMVH07IHRoZW4KICAgICAgICAgICAgICAgIGNhc2UgJHttaXNzaW5nX2FjdGlvbn0gaW4g
CiAgICAgICAgICAgICAgICAgICAgdHJ1ZSkKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IDAKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIGZhbHNlKQogICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gMQogICAgICAgICAgICAgICAgICAgIDs7CiAgICAg
ICAgICAgICAgICAgICAgZGllKQogICAgICAgICAgICAgICAgICAgICAgICBkaWVmdW5jICIkRlVO
Q05BTUUiICIkTElORU5PIiAiJD8iICIkUEtHIGRvZXMgbm90IGFjdHVhbGx5IHN1cHBvcnQgdGhl
ICQxIFVTRSBmbGFnISIKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgZXNh
YzsKICAgICAgICAgICAgZmk7CiAgICAgICAgZmk7CiAgICBmaTsKICAgIGxvY2FsIFVTRV9CVUlM
VD0kKDwke1VTRUZJTEV9KTsKICAgIHdoaWxlIFtbICQjIC1ndCAwIF1dOyBkbwogICAgICAgIGlm
IFtbICR7b3B0fSA9ICItbyIgXV07IHRoZW4KICAgICAgICAgICAgaGFzICQxICR7VVNFX0JVSUxU
fSAmJiByZXR1cm4gMDsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGhhcyAkMSAke1VTRV9CVUlM
VH0gfHwgcmV0dXJuIDE7CiAgICAgICAgZmk7CiAgICAgICAgc2hpZnQ7CiAgICBkb25lOwogICAg
W1sgJHtvcHR9ID0gIi1hIiBdXQp9CmNkcm9tX2dldF9jZHMgKCkgCnsgCiAgICBsb2NhbCBjZGNu
dD0wOwogICAgbG9jYWwgZj07CiAgICBmb3IgZiBpbiAiJEAiOwogICAgZG8KICAgICAgICAoKCsr
Y2RjbnQpKTsKICAgICAgICBleHBvcnQgQ0RST01fQ0hFQ0tfJHtjZGNudH09IiRmIjsKICAgIGRv
bmU7CiAgICBleHBvcnQgQ0RST01fVE9UQUxfQ0RTPSR7Y2RjbnR9OwogICAgZXhwb3J0IENEUk9N
X0NVUlJFTlRfQ0Q9MTsKICAgIGlmIFtbIC1uICR7Q0RfUk9PVH0ke0NEX1JPT1RfMX0gXV07IHRo
ZW4KICAgICAgICBsb2NhbCB2YXI9OwogICAgICAgIGNkY250PTA7CiAgICAgICAgd2hpbGUgW1sg
JHtjZGNudH0gLWx0ICR7Q0RST01fVE9UQUxfQ0RTfSBdXTsgZG8KICAgICAgICAgICAgKCgrK2Nk
Y250KSk7CiAgICAgICAgICAgIHZhcj0iQ0RfUk9PVF8ke2NkY250fSI7CiAgICAgICAgICAgIFtb
IC16ICR7IXZhcn0gXV0gJiYgdmFyPSJDRF9ST09UIjsKICAgICAgICAgICAgaWYgW1sgLXogJHsh
dmFyfSBdXTsgdGhlbgogICAgICAgICAgICAgICAgZWVycm9yICJZb3UgbXVzdCBlaXRoZXIgdXNl
IGp1c3QgdGhlIENEX1JPT1QiOwogICAgICAgICAgICAgICAgZWVycm9yICJvciBzcGVjaWZ5IEFM
TCB0aGUgQ0RfUk9PVF9YIHZhcmlhYmxlcy4iOwogICAgICAgICAgICAgICAgZWVycm9yICJJbiB0
aGlzIGNhc2UsIHlvdSB3aWxsIG5lZWQgJHtDRFJPTV9UT1RBTF9DRFN9IENEX1JPT1RfWCB2YXJp
YWJsZXMuIjsKICAgICAgICAgICAgICAgIGRpZWZ1bmMgIiRGVU5DTkFNRSIgIiRMSU5FTk8iICIk
PyIgImNvdWxkIG5vdCBsb2NhdGUgQ0RfUk9PVF8ke2NkY250fSI7CiAgICAgICAgICAgIGZpOwog
ICAgICAgIGRvbmU7CiAgICAgICAgZXhwb3J0IENEUk9NX1JPT1Q9JHtDRF9ST09UXzE6LSR7Q0Rf
Uk9PVH19OwogICAgICAgIGVpbmZvICJGb3VuZCBDRCAjJHtDRFJPTV9DVVJSRU5UX0NEfSByb290
IGF0ICR7Q0RST01fUk9PVH0iOwogICAgICAgIGV4cG9ydCBDRFJPTV9TRVQ9LTE7CiAgICAgICAg
Zm9yIGYgaW4gJHtDRFJPTV9DSEVDS18xLy86LyB9OwogICAgICAgIGRvCiAgICAgICAgICAgICgo
KytDRFJPTV9TRVQpKTsKICAgICAgICAgICAgW1sgLWUgJHtDRF9ST09UfS8ke2Z9IF1dICYmIGJy
ZWFrOwogICAgICAgIGRvbmU7CiAgICAgICAgZXhwb3J0IENEUk9NX01BVENIPSR7Zn07CiAgICAg
ICAgcmV0dXJuOwogICAgZmk7CiAgICBpZiBbWyAke0NEUk9NX1RPVEFMX0NEU30gLWVxIDEgXV07
IHRoZW4KICAgICAgICBlaW5mbyAiVGhpcyBlYnVpbGQgd2lsbCBuZWVkIHRoZSAke0NEUk9NX05B
TUU6LWNkcm9tIGZvciAke1BOfX0iOwogICAgICAgIGVjaG87CiAgICAgICAgZWluZm8gIklmIHlv
dSBkbyBub3QgaGF2ZSB0aGUgQ0QsIGJ1dCBoYXZlIHRoZSBkYXRhIGZpbGVzIjsKICAgICAgICBl
aW5mbyAibW91bnRlZCBzb21ld2hlcmUgb24geW91ciBmaWxlc3lzdGVtLCBqdXN0IGV4cG9ydCI7
CiAgICAgICAgZWluZm8gInRoZSB2YXJpYWJsZSBDRF9ST09UIHNvIHRoYXQgaXQgcG9pbnRzIHRv
IHRoZSI7CiAgICAgICAgZWluZm8gImRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBmaWxlcy4iOwog
ICAgICAgIGVjaG87CiAgICAgICAgZWluZm8gIkZvciBleGFtcGxlOiI7CiAgICAgICAgZWluZm8g
ImV4cG9ydCBDRF9ST09UPS9tbnQvY2Ryb20iOwogICAgICAgIGVjaG87CiAgICBlbHNlCiAgICAg
ICAgaWYgW1sgLW4gJHtDRFJPTV9OQU1FX1NFVH0gXV07IHRoZW4KICAgICAgICAgICAgY2RjbnQ9
MDsKICAgICAgICAgICAgd2hpbGUgW1sgJHtjZGNudH0gLWx0ICR7Q0RST01fVE9UQUxfQ0RTfSBd
XTsgZG8KICAgICAgICAgICAgICAgICgoKytjZGNudCkpOwogICAgICAgICAgICAgICAgZXhwb3J0
IENEUk9NX05BTUVfJHtjZGNudH09IiR7Q0RST01fTkFNRV9TRVRbJCgoJHtjZGNudH0tMSkpXX0i
OwogICAgICAgICAgICBkb25lOwogICAgICAgIGZpOwogICAgICAgIGVpbmZvICJUaGlzIHBhY2th
Z2Ugd2lsbCBuZWVkIGFjY2VzcyB0byAke0NEUk9NX1RPVEFMX0NEU30gY2RzLiI7CiAgICAgICAg
Y2RjbnQ9MDsKICAgICAgICB3aGlsZSBbWyAke2NkY250fSAtbHQgJHtDRFJPTV9UT1RBTF9DRFN9
IF1dOyBkbwogICAgICAgICAgICAoKCsrY2RjbnQpKTsKICAgICAgICAgICAgdmFyPSJDRFJPTV9O
QU1FXyR7Y2RjbnR9IjsKICAgICAgICAgICAgW1sgISAteiAkeyF2YXJ9IF1dICYmIGVpbmZvICIg
Q0QgJHtjZGNudH06ICR7IXZhcn0iOwogICAgICAgIGRvbmU7CiAgICAgICAgZWNobzsKICAgICAg
ICBlaW5mbyAiSWYgeW91IGRvIG5vdCBoYXZlIHRoZSBDRHMsIGJ1dCBoYXZlIHRoZSBkYXRhIGZp
bGVzIjsKICAgICAgICBlaW5mbyAibW91bnRlZCBzb21ld2hlcmUgb24geW91ciBmaWxlc3lzdGVt
LCBqdXN0IGV4cG9ydCI7CiAgICAgICAgZWluZm8gInRoZSBmb2xsb3dpbmcgdmFyaWFibGVzIHNv
IHRoZXkgcG9pbnQgdG8gdGhlIHJpZ2h0IHBsYWNlOiI7CiAgICAgICAgZWluZm9uICIiOwogICAg
ICAgIGNkY250PTA7CiAgICAgICAgd2hpbGUgW1sgJHtjZGNudH0gLWx0ICR7Q0RST01fVE9UQUxf
Q0RTfSBdXTsgZG8KICAgICAgICAgICAgKCgrK2NkY250KSk7CiAgICAgICAgICAgIGVjaG8gLW4g
IiBDRF9ST09UXyR7Y2RjbnR9IjsKICAgICAgICBkb25lOwogICAgICAgIGVjaG87CiAgICAgICAg
ZWluZm8gIk9yLCBpZiB5b3UgaGF2ZSBhbGwgdGhlIGZpbGVzIGluIHRoZSBzYW1lIHBsYWNlLCBv
ciI7CiAgICAgICAgZWluZm8gInlvdSBvbmx5IGhhdmUgb25lIGNkcm9tLCB5b3UgY2FuIGV4cG9y
dCBDRF9ST09UIjsKICAgICAgICBlaW5mbyAiYW5kIHRoYXQgcGxhY2Ugd2lsbCBiZSB1c2VkIGFz
IHRoZSBzYW1lIGRhdGEgc291cmNlIjsKICAgICAgICBlaW5mbyAiZm9yIGFsbCB0aGUgQ0RzLiI7
CiAgICAgICAgZWNobzsKICAgICAgICBlaW5mbyAiRm9yIGV4YW1wbGU6IjsKICAgICAgICBlaW5m
byAiZXhwb3J0IENEX1JPT1RfMT0vbW50L2Nkcm9tIjsKICAgICAgICBlY2hvOwogICAgZmk7CiAg
ICBleHBvcnQgQ0RST01fU0VUPSIiOwogICAgZXhwb3J0IENEUk9NX0NVUlJFTlRfQ0Q9MDsKICAg
IGNkcm9tX2xvYWRfbmV4dF9jZAp9CmNkcm9tX2xvYWRfbmV4dF9jZCAoKSAKeyAKICAgIGxvY2Fs
IHZhcjsKICAgICgoKytDRFJPTV9DVVJSRU5UX0NEKSk7CiAgICB1bnNldCBDRFJPTV9ST09UOwog
ICAgdmFyPUNEX1JPT1RfJHtDRFJPTV9DVVJSRU5UX0NEfTsKICAgIFtbIC16ICR7IXZhcn0gXV0g
JiYgdmFyPSJDRF9ST09UIjsKICAgIGlmIFtbIC16ICR7IXZhcn0gXV07IHRoZW4KICAgICAgICB2
YXI9IkNEUk9NX0NIRUNLXyR7Q0RST01fQ1VSUkVOVF9DRH0iOwogICAgICAgIF9jZHJvbV9sb2Nh
dGVfZmlsZV9vbl9jZCAkeyF2YXJ9OwogICAgZWxzZQogICAgICAgIGV4cG9ydCBDRFJPTV9ST09U
PSR7IXZhcn07CiAgICBmaTsKICAgIGVpbmZvICJGb3VuZCBDRCAjJHtDRFJPTV9DVVJSRU5UX0NE
fSByb290IGF0ICR7Q0RST01fUk9PVH0iCn0KY2hlY2tfbGljZW5zZSAoKSAKeyAKICAgIGxvY2Fs
IGxpYz0kMTsKICAgIGlmIFsgLXogIiR7bGljfSIgXTsgdGhlbgogICAgICAgIGxpYz0iJHtQT1JU
RElSfS9saWNlbnNlcy8ke0xJQ0VOU0V9IjsKICAgIGVsc2UKICAgICAgICBpZiBbIC1lICIke1BP
UlRESVJ9L2xpY2Vuc2VzLyR7bGljfSIgXTsgdGhlbgogICAgICAgICAgICBsaWM9IiR7UE9SVERJ
Un0vbGljZW5zZXMvJHtsaWN9IjsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGlmIFsgLWUgIiR7
UFdEfS8ke2xpY30iIF07IHRoZW4KICAgICAgICAgICAgICAgIGxpYz0iJHtQV0R9LyR7bGljfSI7
CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIGlmIFsgLWUgIiR7bGljfSIgXTsgdGhl
bgogICAgICAgICAgICAgICAgICAgIGxpYz0iJHtsaWN9IjsKICAgICAgICAgICAgICAgIGZpOwog
ICAgICAgICAgICBmaTsKICAgICAgICBmaTsKICAgIGZpOwogICAgWyAhIC1mICIke2xpY30iIF0g
JiYgZGllZnVuYyAiJEZVTkNOQU1FIiAiJExJTkVOTyIgIiQ/IiAiQ291bGQgbm90IGZpbmQgcmVx
dWVzdGVkIGxpY2Vuc2UgJHtsaWN9IjsKICAgIGxvY2FsIGw9ImBiYXNlbmFtZSAke2xpY31gIjsK
ICAgIGxvY2FsIHNob3B0cz0kLTsKICAgIGxvY2FsIGFsaWM7CiAgICBzZXQgLW8gbm9nbG9iOwog
ICAgZm9yIGFsaWMgaW4gJHtBQ0NFUFRfTElDRU5TRX07CiAgICBkbwogICAgICAgIGlmIFtbICR7
YWxpY30gPT0gJHtsfSBdXTsgdGhlbgogICAgICAgICAgICBzZXQgK28gbm9nbG9iOwogICAgICAg
ICAgICBzZXQgLSR7c2hvcHRzfTsKICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgZmk7CiAg
ICBkb25lOwogICAgc2V0ICtvIG5vZ2xvYjsKICAgIHNldCAtJHNob3B0czsKICAgIGxvY2FsIGxp
Y21zZz0kKGVta3RlbXApOwogICAgY2F0ID4gJHtsaWNtc2d9ICA8PC1FT0YKKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpUaGUgZm9sbG93
aW5nIGxpY2Vuc2Ugb3V0bGluZXMgdGhlIHRlcm1zIG9mIHVzZSBvZiB0aGlzCnBhY2thZ2UuICBZ
b3UgTVVTVCBhY2NlcHQgdGhpcyBsaWNlbnNlIGZvciBpbnN0YWxsYXRpb24gdG8KY29udGludWUu
ICBXaGVuIHlvdSBhcmUgZG9uZSB2aWV3aW5nLCBoaXQgJ3EnLglJZiB5b3UKQ1RSTCtDIG91dCBv
ZiB0aGlzLCB0aGUgaW5zdGFsbCB3aWxsIG5vdCBydW4hCioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCkVPRgoKICAgIGNhdCAke2xpY30g
Pj4gJHtsaWNtc2d9OwogICAgJHtQQUdFUjotbGVzc30gJHtsaWNtc2d9IHx8IGRpZWZ1bmMgIiRG
VU5DTkFNRSIgIiRMSU5FTk8iICIkPyIgIkNvdWxkIG5vdCBleGVjdXRlIHBhZ2VyICgke1BBR0VS
fSkgdG8gYWNjZXB0ICR7bGljfSI7CiAgICBlaW5mb24gIkRvIHlvdSBhY2NlcHQgdGhlIHRlcm1z
IG9mIHRoaXMgbGljZW5zZSAoJHtsfSk/IFt5ZXMvbm9dICI7CiAgICByZWFkIGFsaWM7CiAgICBj
YXNlICR7YWxpY30gaW4gCiAgICAgICAgeWVzIHwgWWVzIHwgeSB8IFkpCiAgICAgICAgICAgIHJl
dHVybiAwCiAgICAgICAgOzsKICAgICAgICAqKQogICAgICAgICAgICBlY2hvOwogICAgICAgICAg
ICBlY2hvOwogICAgICAgICAgICBlY2hvOwogICAgICAgICAgICBlZXJyb3IgIllvdSBNVVNUIGFj
Y2VwdCB0aGUgbGljZW5zZSB0byBjb250aW51ZSEgIEV4aXRpbmchIjsKICAgICAgICAgICAgZGll
ZnVuYyAiJEZVTkNOQU1FIiAiJExJTkVOTyIgIiQ/IiAiRmFpbGVkIHRvIGFjY2VwdCBsaWNlbnNl
IgogICAgICAgIDs7CiAgICBlc2FjCn0KY3JlYXRlX21sX2luY2x1ZGVzICgpIAp7IAogICAgbG9j
YWwgZGVzdD0kMTsKICAgIHNoaWZ0OwogICAgbG9jYWwgYmFzZWRpcnM9JChjcmVhdGVfbWxfaW5j
bHVkZXMtbGlzdGRpcnMgIiRAIik7CiAgICBjcmVhdGVfbWxfaW5jbHVkZXMtbWFrZWRlc3RkaXJz
ICR7ZGVzdH0gJHtiYXNlZGlyc307CiAgICBsb2NhbCBmaWxlOwogICAgZm9yIGZpbGUgaW4gJChj
cmVhdGVfbWxfaW5jbHVkZXMtYWxsZmlsZXMgJHtiYXNlZGlyc30pOwogICAgZG8KICAgICAgICAo
IGVjaG8gIi8qIEF1dG9nZW5lcmF0ZWQgYnkgY3JlYXRlX21sX2luY2x1ZGVzKCkgaW4gbXVsdGls
aWIuZWNsYXNzICovIjsKICAgICAgICBsb2NhbCBkaXI7CiAgICAgICAgZm9yIGRpciBpbiAke2Jh
c2VkaXJzfTsKICAgICAgICBkbwogICAgICAgICAgICBpZiBbWyAtZiAke0R9LyR7ZGlyfS8ke2Zp
bGV9IF1dOyB0aGVuCiAgICAgICAgICAgICAgICBlY2hvICIiOwogICAgICAgICAgICAgICAgbG9j
YWwgc3ltPSQoY3JlYXRlX21sX2luY2x1ZGVzLXN5bV9mb3JfZGlyICR7ZGlyfSAiJEAiKTsKICAg
ICAgICAgICAgICAgIGlmIFtbICR7c3ltLz19ICE9ICIke3N5bX0iIF1dOyB0aGVuCiAgICAgICAg
ICAgICAgICAgICAgZWNobyAiI2lmICR7c3ltfSI7CiAgICAgICAgICAgICAgICBlbHNlCiAgICAg
ICAgICAgICAgICAgICAgaWYgW1sgJHtzeW06OjF9ID09ICIhIiBdXTsgdGhlbgogICAgICAgICAg
ICAgICAgICAgICAgICBlY2hvICIjaWZuZGVmICR7c3ltOjF9IjsKICAgICAgICAgICAgICAgICAg
ICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIiNpZmRlZiAke3N5bX0iOwogICAg
ICAgICAgICAgICAgICAgIGZpOwogICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAgICAgICBl
Y2hvICIjIGluY2x1ZGUgPCQoY3JlYXRlX21sX2luY2x1ZGVzLWFic29sdXRlICR7ZGlyfS8ke2Zp
bGV9KT4iOwogICAgICAgICAgICAgICAgZWNobyAiI2VuZGlmIC8qICR7c3ltfSAqLyI7CiAgICAg
ICAgICAgIGZpOwogICAgICAgIGRvbmUgKSA+ICIke0R9LyR7ZGVzdH0vJHtmaWxlfSI7CiAgICBk
b25lCn0KY3JlYXRlX21sX2luY2x1ZGVzLWFic29sdXRlICgpIAp7IAogICAgbG9jYWwgZHN0PSIk
KGNyZWF0ZV9tbF9pbmNsdWRlcy10aWR5X3BhdGggJDEpIjsKICAgIGRzdD0oJHtkc3QvL1wvLyB9
KTsKICAgIGxvY2FsIGk7CiAgICBmb3IgKChpPTA7IGk8JHsjZHN0WypdfTsgaSsrKSkKICAgIGRv
CiAgICAgICAgWyAiJHtkc3RbaV19IiA9PSAiaW5jbHVkZSIgXSAmJiBicmVhazsKICAgIGRvbmU7
CiAgICBsb2NhbCBzdHJpcF91cHRvPSRpOwogICAgZm9yICgoaT1zdHJpcF91cHRvKzE7IGk8JHsj
ZHN0WypdfS0xOyBpKyspKQogICAgZG8KICAgICAgICBlY2hvIC1uICR7ZHN0W2ldfS87CiAgICBk
b25lOwogICAgZWNobyAtbiAke2RzdFtpXX0KfQpjcmVhdGVfbWxfaW5jbHVkZXMtYWxsZmlsZXMg
KCkgCnsgCiAgICBsb2NhbCBiYXNlZGlyIGZpbGU7CiAgICBmb3IgYmFzZWRpciBpbiAiJEAiOwog
ICAgZG8KICAgICAgICBmb3IgZmlsZSBpbiAkKGZpbmQgIiR7RH0iLyR7YmFzZWRpcn0gLXR5cGUg
Zik7CiAgICAgICAgZG8KICAgICAgICAgICAgZWNobyAke2ZpbGUvJHtEfVwvJHtiYXNlZGlyfVwv
L307CiAgICAgICAgZG9uZTsKICAgIGRvbmUgfCBzb3J0IHwgdW5pcQp9CmNyZWF0ZV9tbF9pbmNs
dWRlcy1saXN0ZGlycyAoKSAKeyAKICAgIGxvY2FsIGRpcnM7CiAgICBsb2NhbCBkYXRhOwogICAg
Zm9yIGRhdGEgaW4gIiRAIjsKICAgIGRvCiAgICAgICAgZGlycz0iJHtkaXJzfSAke2RhdGEvKjov
fSI7CiAgICBkb25lOwogICAgZWNobyAke2RpcnM6MX0KfQpjcmVhdGVfbWxfaW5jbHVkZXMtbWFr
ZWRlc3RkaXJzICgpIAp7IAogICAgbG9jYWwgZGVzdD0kMTsKICAgIHNoaWZ0OwogICAgbG9jYWwg
YmFzZWRpcnM9JEA7CiAgICBkb2RpciAke2Rlc3R9OwogICAgbG9jYWwgYmFzZWRpcjsKICAgIGZv
ciBiYXNlZGlyIGluICR7YmFzZWRpcnN9OwogICAgZG8KICAgICAgICBsb2NhbCBkaXI7CiAgICAg
ICAgZm9yIGRpciBpbiAkKGZpbmQgJHtEfS8ke2Jhc2VkaXJ9IC10eXBlIGQpOwogICAgICAgIGRv
CiAgICAgICAgICAgIGRvZGlyICR7ZGVzdH0vJHtkaXIvJHtEfVwvJHtiYXNlZGlyfS99OwogICAg
ICAgIGRvbmU7CiAgICBkb25lCn0KY3JlYXRlX21sX2luY2x1ZGVzLXN5bV9mb3JfZGlyICgpIAp7
IAogICAgbG9jYWwgZGlyPSQxOwogICAgc2hpZnQ7CiAgICBsb2NhbCBkYXRhOwogICAgZm9yIGRh
dGEgaW4gIiRAIjsKICAgIGRvCiAgICAgICAgaWYgW1sgJHtkYXRhfSA9PSAqOiR7ZGlyfSBdXTsg
dGhlbgogICAgICAgICAgICBlY2hvICR7ZGF0YS86Ki99OwogICAgICAgICAgICByZXR1cm4gMDsK
ICAgICAgICBmaTsKICAgIGRvbmU7CiAgICBlY2hvICJTaG91bGRuJ3QgYmUgaGVyZSAtLSBjcmVh
dGVfbWxfaW5jbHVkZXMtc3ltX2Zvcl9kaXIgJDEgJEAiOwogICAgZXhpdCAxCn0KY3JlYXRlX21s
X2luY2x1ZGVzLXRpZHlfcGF0aCAoKSAKeyAKICAgIGxvY2FsIHJlbW92ZWQ9JDE7CiAgICBpZiBb
IC1uICIke3JlbW92ZWR9IiBdOyB0aGVuCiAgICAgICAgd2hpbGUgWyAiJHtyZW1vdmVkfSIgIT0g
IiR7cmVtb3ZlZC9cL1wvL1wvfSIgXTsgZG8KICAgICAgICAgICAgcmVtb3ZlZD0ke3JlbW92ZWQv
XC9cLy9cL307CiAgICAgICAgZG9uZTsKICAgICAgICB3aGlsZSBbICIke3JlbW92ZWR9IiAhPSAi
JHtyZW1vdmVkLy9cLy5cLy9cL30iIF07IGRvCiAgICAgICAgICAgIHJlbW92ZWQ9JHtyZW1vdmVk
Ly9cLy5cLy9cL307CiAgICAgICAgZG9uZTsKICAgICAgICBbICIke3JlbW92ZWQjIyovfSIgPSAi
LiIgXSAmJiByZW1vdmVkPSR7cmVtb3ZlZCUvKn07CiAgICAgICAgd2hpbGUgWyAiJHtyZW1vdmVk
fSIgIT0gIiR7cmVtb3ZlZC8vXC8uLlwvfSIgXTsgZG8KICAgICAgICAgICAgbG9jYWwgcDE9IiR7
cmVtb3ZlZCUlXC8uLlwvKn0iOwogICAgICAgICAgICBsb2NhbCBwMj0iJHtyZW1vdmVkIypcLy4u
XC99IjsKICAgICAgICAgICAgcmVtb3ZlZD0iJHtwMSVcLyp9LyR7cDJ9IjsKICAgICAgICBkb25l
OwogICAgICAgIFsgIiR7cmVtb3ZlZCMjKi99IiA9ICIuLiIgXSAmJiByZW1vdmVkPSR7cmVtb3Zl
ZCUvKi8qfTsKICAgICAgICBbICIke3JlbW92ZWQjIyovfSIgPSAiIiBdICYmIHJlbW92ZWQ9JHty
ZW1vdmVkJS8qfTsKICAgICAgICBlY2hvICR7cmVtb3ZlZH07CiAgICBmaQp9CmRhcndpbnRvb2xp
emUgKCkgCnsgCiAgICBld2FybiAiZGFyd2ludG9vbGl6ZSgpIGlzIGRlcHJlY2F0ZWQsIHBsZWFz
ZSBqdXN0IHVzZSBlbGlidG9vbGl6ZSgpISI7CiAgICBlbGlidG9vbGl6ZQp9CmRlbGV0ZV9hbGxf
dmVyc2lvbl9zZXBhcmF0b3JzICgpIAp7IAogICAgX192ZXJzaW9uYXRvcl9zaG9wdF90b2dnbGUg
b247CiAgICByZXBsYWNlX2FsbF92ZXJzaW9uX3NlcGFyYXRvcnMgIiIgIiR7MX0iOwogICAgX192
ZXJzaW9uYXRvcl9zaG9wdF90b2dnbGUgb2ZmCn0KZGVsZXRlX3ZlcnNpb25fc2VwYXJhdG9yICgp
IAp7IAogICAgX192ZXJzaW9uYXRvcl9zaG9wdF90b2dnbGUgb247CiAgICByZXBsYWNlX3ZlcnNp
b25fc2VwYXJhdG9yICIkezF9IiAiIiAiJHsyfSI7CiAgICBfX3ZlcnNpb25hdG9yX3Nob3B0X3Rv
Z2dsZSBvZmYKfQpkZXBlbmQtamF2YS1xdWVyeSAoKSAKeyAKICAgIFVTRT0iJHtVU0V9IiAvdXNy
L2Jpbi9kZXBlbmQtamF2YS1xdWVyeSAiJHtAfSIKfQpkbG9wZW5fbGliICgpIAp7IAogICAgaWYg
W1sgJHtFTElCQ30gIT0gKkJTRCBdXTsgdGhlbgogICAgICAgIGVjaG8gIi1sZGwiOwogICAgZmkK
fQpkb2ljb24gKCkgCnsgCiAgICAoIGxvY2FsIGkgaiByZXQ7CiAgICBpbnNpbnRvIC91c3Ivc2hh
cmUvcGl4bWFwczsKICAgIGZvciBpIGluICIkQCI7CiAgICBkbwogICAgICAgIGlmIFtbIC1mICR7
aX0gXV07IHRoZW4KICAgICAgICAgICAgZG9pbnMgIiR7aX0iOwogICAgICAgICAgICAoKHJldCs9
JD8pKTsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGlmIFtbIC1kICR7aX0gXV07IHRoZW4KICAg
ICAgICAgICAgICAgIGZvciBqIGluICIke2l9Ii8qLnBuZzsKICAgICAgICAgICAgICAgIGRvCiAg
ICAgICAgICAgICAgICAgICAgZG9pbnMgIiR7an0iOwogICAgICAgICAgICAgICAgICAgICgocmV0
Kz0kPykpOwogICAgICAgICAgICAgICAgZG9uZTsKICAgICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgICAgKCgrK3JldCkpOwogICAgICAgICAgICBmaTsKICAgICAgICBmaTsKICAgIGRvbmU7CiAg
ICBleGl0ICR7cmV0fSApCn0KZG9tZW51ICgpIAp7IAogICAgKCBsb2NhbCBpIGogcmV0PTA7CiAg
ICBpbnNpbnRvIC91c3Ivc2hhcmUvYXBwbGljYXRpb25zOwogICAgZm9yIGkgaW4gIiRAIjsKICAg
IGRvCiAgICAgICAgaWYgW1sgLWYgJHtpfSBdXTsgdGhlbgogICAgICAgICAgICBkb2lucyAiJHtp
fSI7CiAgICAgICAgICAgICgocmV0Kz0kPykpOwogICAgICAgIGVsc2UKICAgICAgICAgICAgaWYg
W1sgLWQgJHtpfSBdXTsgdGhlbgogICAgICAgICAgICAgICAgZm9yIGogaW4gIiR7aX0iLyouZGVz
a3RvcDsKICAgICAgICAgICAgICAgIGRvCiAgICAgICAgICAgICAgICAgICAgZG9pbnMgIiR7an0i
OwogICAgICAgICAgICAgICAgICAgICgocmV0Kz0kPykpOwogICAgICAgICAgICAgICAgZG9uZTsK
ICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgKCgrK3JldCkpOwogICAgICAgICAgICBm
aTsKICAgICAgICBmaTsKICAgIGRvbmU7CiAgICBleGl0ICR7cmV0fSApCn0KZWFjbG9jYWwgKCkg
CnsgCiAgICBsb2NhbCBhY2xvY2FsX29wdHM7CiAgICBpZiBbWyAtbiAke0FUX000RElSfSBdXTsg
dGhlbgogICAgICAgIGZvciB4IGluICR7QVRfTTRESVJ9OwogICAgICAgIGRvCiAgICAgICAgICAg
IGNhc2UgIiR7eH0iIGluIAogICAgICAgICAgICAgICAgIi1JIikKCiAgICAgICAgICAgICAgICA7
OwogICAgICAgICAgICAgICAgKikKICAgICAgICAgICAgICAgICAgICBbWyAhIC1kICR7eH0gXV0g
JiYgZXdhcm4gImVhY2xvY2FsOiAnJHt4fScgZG9lcyBub3QgZXhpc3QiOwogICAgICAgICAgICAg
ICAgICAgIGFjbG9jYWxfb3B0cz0iJHthY2xvY2FsX29wdHN9IC1JICR7eH0iCiAgICAgICAgICAg
ICAgICA7OwogICAgICAgICAgICBlc2FjOwogICAgICAgIGRvbmU7CiAgICBmaTsKICAgIFtbICEg
LWYgYWNsb2NhbC5tNCB8fCAtbiAkKGdyZXAgLWUgJ2dlbmVyYXRlZC4qYnkgYWNsb2NhbCcgYWNs
b2NhbC5tNCkgXV0gJiYgYXV0b3Rvb2xzX3J1bl90b29sIGFjbG9jYWwgIiRAIiAke2FjbG9jYWxf
b3B0c30KfQplYW50ICgpIAp7IAogICAgZGVidWctcHJpbnQtZnVuY3Rpb24gJHtGVU5DTkFNRX0g
JCo7CiAgICBpZiBbWyAke0VCVUlMRF9QSEFTRX0gPSBjb21waWxlIF1dOyB0aGVuCiAgICAgICAg
W1sgLW4gIiR7SkFWQV9BTlRfSUdOT1JFX1NZU1RFTV9DTEFTU0VTfSIgJiYgLW4gIiR7SkFWQV9Q
S0dfQlNGSVh9IiBdXSAmJiBqYXZhLWFudF9pZ25vcmUtc3lzdGVtLWNsYXNzZXMgIiR7U30vYnVp
bGQueG1sIjsKICAgICAgICBpZiBoYXNxIGphdmEtYW50LTIgJHtJTkhFUklURUR9OyB0aGVuCiAg
ICAgICAgICAgIGphdmEtYW50X2JzZml4OwogICAgICAgIGZpOwogICAgICAgIEpBVkFfUEtHX0JT
RklYPSJvZmYiOwogICAgICAgIGlmIFtbIC16ICR7SkFWQV9QS0dfTk9fQlVORExFRF9TRUFSQ0h9
IF1dICYmIGlzLWphdmEtc3RyaWN0OyB0aGVuCiAgICAgICAgICAgIGVjaG8gIlNlYXJjaGluZyBm
b3IgYnVuZGxlZCBqYXJzOiI7CiAgICAgICAgICAgIGphdmEtcGtnX2ZpbmQtbm9ybWFsLWphcnMg
fHwgZWNobyAiTm9uZSBmb3VuZC4iOwogICAgICAgICAgICBlY2hvICJTZWFyY2hpbmcgZm9yIGJ1
bmRsZWQgY2xhc3NlcyAobm8gb3V0cHV0IGlmIG5vbmUgZm91bmQpOiI7CiAgICAgICAgICAgIGZp
bmQgIiR7V09SS0RJUn0iIC1uYW1lICIqLmNsYXNzIjsKICAgICAgICAgICAgZWNobyAiU2VhcmNo
IGRvbmUuIjsKICAgICAgICAgICAgSkFWQV9QS0dfTk9fQlVORExFRF9TRUFSQ0g9dHJ1ZTsKICAg
ICAgICBmaTsKICAgIGZpOwogICAgaWYgISBoYXNxIGphdmEtYW50LTIgJHtJTkhFUklURUR9OyB0
aGVuCiAgICAgICAgbG9jYWwgbXNnPSJZb3Ugc2hvdWxkIGluaGVyaXQgamF2YS1hbnQtMiB3aGVu
IHVzaW5nIGVhbnQiOwogICAgICAgIGphdmEtcGtnX2Fubm91bmNlLXFhLXZpb2xhdGlvbiAiJHtt
c2d9IjsKICAgIGZpOwogICAgbG9jYWwgYW50ZmxhZ3M9Ii1Ebm9nZXQ9dHJ1ZSAtRG1hdmVuLm1v
ZGUub2ZmbGluZT10cnVlIC1EYnVpbGQuc3lzY2xhc3NwYXRoPWlnbm9yZSI7CiAgICBqYXZhLXBr
Z19pbml0LWNvbXBpbGVyXzsKICAgIGxvY2FsIGNvbXBpbGVyPSIke0dFTlRPT19DT01QSUxFUn0i
OwogICAgbG9jYWwgY29tcGlsZXJfZW52PSIke0pBVkFfUEtHX0NPTVBJTEVSX0RJUn0vJHtjb21w
aWxlcn0iOwogICAgbG9jYWwgYnVpbGRfY29tcGlsZXI9IiQoc291cmNlICR7Y29tcGlsZXJfZW52
fSAxPi9kZXYvbnVsbCAyPiYxOyBlY2hvICR7QU5UX0JVSUxEX0NPTVBJTEVSfSkiOwogICAgaWYg
W1sgIiR7Y29tcGlsZXJ9IiAhPSAiamF2YWMiICYmIC16ICIke2J1aWxkX2NvbXBpbGVyfSIgXV07
IHRoZW4KICAgICAgICBkaWVmdW5jICIkRlVOQ05BTUUiICIkTElORU5PIiAiJD8iICJBTlRfQlVJ
TERfQ09NUElMRVIgdW5kZWZpbmVkIGluICR7Y29tcGlsZXJfZW52fSI7CiAgICBmaTsKICAgIGlm
IFtbICR7Y29tcGlsZXJ9ICE9ICJqYXZhYyIgXV07IHRoZW4KICAgICAgICBhbnRmbGFncz0iJHth
bnRmbGFnc30gLURidWlsZC5jb21waWxlcj0ke2J1aWxkX2NvbXBpbGVyfSI7CiAgICAgICAgbG9j
YWwgYnVpbGRfY29tcGlsZXJfZGVwcz0iJChzb3VyY2UgJHtKQVZBX1BLR19DT01QSUxFUl9ESVJ9
LyR7Y29tcGlsZXJ9IDE+L2Rldi9udWxsIDI+JjE7IGVjaG8gJHtBTlRfQlVJTERfQ09NUElMRVJf
REVQU30pIjsKICAgICAgICBpZiBbWyAtbiAke2J1aWxkX2NvbXBpbGVyX2RlcHN9IF1dOyB0aGVu
CiAgICAgICAgICAgIGFudGZsYWdzPSIke2FudGZsYWdzfSAtbGliICQoamF2YS1jb25maWcgLXAg
JHtidWlsZF9jb21waWxlcl9kZXBzfSkiOwogICAgICAgIGZpOwogICAgZmk7CiAgICBmb3IgYXJn
IGluICIke0B9IjsKICAgIGRvCiAgICAgICAgaWYgW1sgJHthcmd9ID0gLWxpYiBdXTsgdGhlbgog
ICAgICAgICAgICBpZiBpcy1qYXZhLXN0cmljdDsgdGhlbgogICAgICAgICAgICAgICAgZWVycm9y
ICJZb3Ugc2hvdWxkIG5vdCB1c2UgdGhlIC1saWIgYXJndW1lbnQgdG8gZWFudCBiZWNhdXNlIGl0
IHdpbGwgZmFpbCI7CiAgICAgICAgICAgICAgICBlZXJyb3IgIndpdGggSkFWQV9QS0dfU1RSSUNU
LiBQbGVhc2UgdXNlIGZvciBleGFtcGxlIGphdmEtcGtnX2phci1mcm9tIjsKICAgICAgICAgICAg
ICAgIGVlcnJvciAib3IgYW50IHByb3BlcnRpZXMgdG8gbWFrZSBkZXBlbmRlbmNpZXMgYXZhaWxh
YmxlLiI7CiAgICAgICAgICAgICAgICBlZXJyb3IgIkZvciBhbnQgdGFza3MgdXNlIFdBTlRfQU5U
X1RBU0tTIG9yIEFOVF9UQVNLUyBmcm9tLiI7CiAgICAgICAgICAgICAgICBlZXJyb3IgInNwbGl0
IGFudCAoPj1kZXYtamF2YS9hbnQtY29yZS0xLjcpLiI7CiAgICAgICAgICAgICAgICBkaWVmdW5j
ICIkRlVOQ05BTUUiICIkTElORU5PIiAiJD8iICJlYW50IC1saWIgaXMgZGVwcmVjYXRlZC9mb3Ji
aWRkZW4iOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBlY2hvICJlYW50IC1saWIg
aXMgZGVwcmVjYXRlZC4gVHVybiBKQVZBX1BLR19TVFJJQ1Qgb24gZm9yIjsKICAgICAgICAgICAg
ICAgIGVjaG8gIm1vcmUgaW5mby4iOwogICAgICAgICAgICBmaTsKICAgICAgICBmaTsKICAgIGRv
bmU7CiAgICBpZiBST09UPS8gaGFzX3ZlcnNpb24gIj49ZGV2LWphdmEvYW50LWNvcmUtMS43LjAi
OyB0aGVuCiAgICAgICAgQU5UX1RBU0tTPSIke0FOVF9UQVNLUzotJHtXQU5UX0FOVF9UQVNLU319
IjsKICAgICAgICBBTlRfVEFTS1M9IiR7SkFWQV9QS0dfRk9SQ0VfQU5UX1RBU0tTOi0ke0FOVF9U
QVNLU319IjsKICAgICAgICBpZiBpcy1qYXZhLXN0cmljdDsgdGhlbgogICAgICAgICAgICBpZiBb
WyAteiAiJHtBTlRfVEFTS1N9IiBdXTsgdGhlbgogICAgICAgICAgICAgICAgQU5UX1RBU0tTPSIk
KGphdmEtcGtnX2FudC10YXNrcy1mcm9tLWRlcHMpIjsKICAgICAgICAgICAgZmk7CiAgICAgICAg
ZWxzZQogICAgICAgICAgICBBTlRfVEFTS1M9IiR7QU5UX1RBU0tTOi1hbGx9IjsKICAgICAgICBm
aTsKICAgICAgICBpZiBbWyAiJHtBTlRfVEFTS1N9IiA9PSAiYWxsIiBdXTsgdGhlbgogICAgICAg
ICAgICBlaW5mbyAiVXNpbmcgYWxsIGF2YWlsYWJsZSBBTlRfVEFTS1MiOwogICAgICAgIGVsc2UK
ICAgICAgICAgICAgaWYgW1sgIiR7QU5UX1RBU0tTfSIgPT0gIm5vbmUiIF1dOyB0aGVuCiAgICAg
ICAgICAgICAgICBlaW5mbyAiRGlzYWJsaW5nIGFsbCBvcHRpb25hbCBBTlRfVEFTS1MiOwogICAg
ICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBlaW5mbyAiVXNpbmcgZm9sbG93aW5nIEFOVF9U
QVNLUzogJHtBTlRfVEFTS1N9IjsKICAgICAgICAgICAgZmk7CiAgICAgICAgZmk7CiAgICAgICAg
ZXhwb3J0IEFOVF9UQVNLUzsKICAgIGZpOwogICAgW1sgLW4gJHtKQVZBX1BLR19ERUJVR30gXV0g
JiYgYW50ZmxhZ3M9IiR7YW50ZmxhZ3N9IC0tZXhlY2RlYnVnIC1kZWJ1ZyI7CiAgICBbWyAtbiAk
e1BPUlRBR0VfUVVJRVR9IF1dICYmIGFudGZsYWdzPSIke2FudGZsYWdzfSAtcSI7CiAgICBsb2Nh
bCBnY3A9IiR7RUFOVF9HRU5UT09fQ0xBU1NQQVRIfSI7CiAgICBsb2NhbCBnZXRqYXJzYXJnPSIi
OwogICAgaWYgW1sgJHtFQlVJTERfUEhBU0V9ID0gInRlc3QiIF1dOyB0aGVuCiAgICAgICAgYW50
ZmxhZ3M9IiR7YW50ZmxhZ3N9IC1ESnVuaXQucHJlc2VudD10cnVlIjsKICAgICAgICBbWyAtbiAk
e2djcH0gJiYgJHtBTlRfVEFTS1N9ID0gKmFudC1qdW5pdCogXV0gJiYgZ2NwPSIke2djcH0ganVu
aXQiOwogICAgICAgIGdldGphcnNhcmc9Ii0td2l0aC1kZXBlbmRlbmNpZXMiOwogICAgZmk7CiAg
ICBsb2NhbCBjcDsKICAgIGZvciBhdG9tIGluICR7Z2NwfTsKICAgIGRvCiAgICAgICAgY3A9IiR7
Y3B9OiQoamF2YS1wa2dfZ2V0amFycyAke2dldGphcnNhcmd9ICR7YXRvbX0pIjsKICAgIGRvbmU7
CiAgICBpZiBbWyAtbiAke2NwfSBdXTsgdGhlbgogICAgICAgIGFudGZsYWdzPSIke2FudGZsYWdz
fSAtRGdlbnRvby5jbGFzc3BhdGg9XCIke2NwIzp9XCIiOwogICAgZmk7CiAgICBbWyAtbiAke0pB
VkFfUEtHX0RFQlVHfSBdXSAmJiBlY2hvIGFudCAke2FudGZsYWdzfSAiJHtAfSI7CiAgICBkZWJ1
Zy1wcmludCAiQ2FsbGluZyBhbnQgKEdFTlRPT19WTTogJHtHRU5UT09fVk19KTogJHthbnRmbGFn
c30gJHtAfSI7CiAgICBhbnQgJHthbnRmbGFnc30gIiR7QH0iIHx8IGRpZWZ1bmMgIiRGVU5DTkFN
RSIgIiRMSU5FTk8iICIkPyIgImVhbnQgZmFpbGVkIgp9CmVhdXRvY29uZiAoKSAKeyAKICAgIGlm
IFtbICEgLWYgY29uZmlndXJlLmFjICYmICEgLWYgY29uZmlndXJlLmluIF1dOyB0aGVuCiAgICAg
ICAgZWNobzsKICAgICAgICBlZXJyb3IgIk5vIGNvbmZpZ3VyZS57YWMsaW59IHByZXNlbnQgaW4g
JyQocHdkIHwgc2VkIC1lICdzOi4qLzo6JyknISI7CiAgICAgICAgZWNobzsKICAgICAgICBkaWVm
dW5jICIkRlVOQ05BTUUiICIkTElORU5PIiAiJD8iICJObyBjb25maWd1cmUue2FjLGlufSBwcmVz
ZW50ISI7CiAgICBmaTsKICAgIGF1dG90b29sc19ydW5fdG9vbCBhdXRvY29uZiAiJEAiCn0KZWF1
dG9oZWFkZXIgKCkgCnsgCiAgICBbWyAtbiAkKGF1dG90b29sc19jaGVja19tYWNybyAiQUNfQ09O
RklHX0hFQURFUlMiKSBdXSB8fCByZXR1cm4gMDsKICAgIE5PX0ZBSUw9MSBhdXRvdG9vbHNfcnVu
X3Rvb2wgYXV0b2hlYWRlciAiJEAiCn0KZWF1dG9tYWtlICgpIAp7IAogICAgbG9jYWwgZXh0cmFf
b3B0czsKICAgIFtbIC1mIE1ha2VmaWxlLmFtIF1dIHx8IHJldHVybiAwOwogICAgaWYgW1sgLXog
JHtGUk9NX0VBVVRPUkVDT05GfSAmJiAtZiBNYWtlZmlsZS5pbiBdXTsgdGhlbgogICAgICAgIGxv
Y2FsIHVzZWRfYXV0b21ha2U7CiAgICAgICAgbG9jYWwgaW5zdGFsbGVkX2F1dG9tYWtlOwogICAg
ICAgIGluc3RhbGxlZF9hdXRvbWFrZT0kKGF1dG9tYWtlIC0tdmVyc2lvbiB8IGhlYWQgLW4gMSB8
IAkJCXNlZCAtZSAnczouKihHTlUgYXV0b21ha2UpIDo6Jyk7CiAgICAgICAgdXNlZF9hdXRvbWFr
ZT0kKGhlYWQgLW4gMSA8IE1ha2VmaWxlLmluIHwgCQkJc2VkIC1lICdzOi4qYnkgYXV0b21ha2Ug
XCguKlwpIGZyb20gLio6XDE6Jyk7CiAgICAgICAgaWYgW1sgJHtpbnN0YWxsZWRfYXV0b21ha2V9
ICE9ICR7dXNlZF9hdXRvbWFrZX0gXV07IHRoZW4KICAgICAgICAgICAgZWluZm8gIkF1dG9tYWtl
IHVzZWQgZm9yIHRoZSBwYWNrYWdlICgke3VzZWRfYXV0b21ha2V9KSBkaWZmZXJzIGZyb20iOwog
ICAgICAgICAgICBlaW5mbyAidGhlIGluc3RhbGxlZCB2ZXJzaW9uICgke2luc3RhbGxlZF9hdXRv
bWFrZX0pLiI7CiAgICAgICAgICAgIGVhdXRvcmVjb25mOwogICAgICAgICAgICByZXR1cm4gMDsK
ICAgICAgICBmaTsKICAgIGZpOwogICAgW1sgLWYgSU5TVEFMTCAmJiAtZiBBVVRIT1JTICYmIC1m
IENoYW5nZUxvZyAmJiAtZiBORVdTIF1dIHx8IGV4dHJhX29wdHM9IiR7ZXh0cmFfb3B0c30gLS1m
b3JlaWduIjsKICAgIGF1dG90b29sc19ydW5fdG9vbCBhdXRvbWFrZSAtLWFkZC1taXNzaW5nIC0t
Y29weSAke2V4dHJhX29wdHN9ICIkQCIKfQplYXV0b3JlY29uZiAoKSAKeyAKICAgIGxvY2FsIHB3
ZD0kKHB3ZCkgeCBhdXhkaXI7CiAgICBpZiBbWyAteiAke0FUX05PX1JFQ1VSU0lWRX0gXV07IHRo
ZW4KICAgICAgICBmb3IgeCBpbiAkKGF1dG90b29sc19nZXRfc3ViZGlycyk7CiAgICAgICAgZG8K
ICAgICAgICAgICAgaWYgW1sgLWQgJHt4fSBdXTsgdGhlbgogICAgICAgICAgICAgICAgY2QgIiR7
eH0iOwogICAgICAgICAgICAgICAgQVRfTk9FTElCVE9PTElaRT0ieWVzIiBlYXV0b3JlY29uZjsK
ICAgICAgICAgICAgICAgIGNkICIke3B3ZH0iOwogICAgICAgICAgICBmaTsKICAgICAgICBkb25l
OwogICAgZmk7CiAgICBhdXhkaXI9JChhdXRvdG9vbHNfZ2V0X2F1eGRpcik7CiAgICBlaW5mbyAi
UnVubmluZyBlYXV0b3JlY29uZiBpbiAnJChwd2QpJyAuLi4iOwogICAgW1sgLW4gJHthdXhkaXJ9
IF1dICYmIG1rZGlyIC1wICR7YXV4ZGlyfTsKICAgIGVhY2xvY2FsOwogICAgX2VsaWJ0b29saXpl
IC0tY29weSAtLWZvcmNlOwogICAgZWF1dG9jb25mOwogICAgZWF1dG9oZWFkZXI7CiAgICBGUk9N
X0VBVVRPUkVDT05GPSJ5ZXMiIGVhdXRvbWFrZSAke0FNX09QVFN9OwogICAgW1sgJHtBVF9OT0VM
SUJUT09MSVpFfSA9PSAieWVzIiBdXSAmJiByZXR1cm4gMDsKICAgIGVsaWJ0b29saXplOwogICAg
cmV0dXJuIDAKfQplYmVlcCAoKSAKeyAKICAgIGxvY2FsIG47CiAgICBpZiBbWyAteiAke0VCRUVQ
X0lHTk9SRX0gXV07IHRoZW4KICAgICAgICBmb3IgKChuPTEgOyBuIDw9ICR7MTotNX0gOyBuKysp
KQogICAgICAgIGRvCiAgICAgICAgICAgIGVjaG8gLW5lICJcYSI7CiAgICAgICAgICAgIHNsZWVw
IDAuMSA+Ji9kZXYvbnVsbDsKICAgICAgICAgICAgc2xlZXAgMCwxID4mL2Rldi9udWxsOwogICAg
ICAgICAgICBlY2hvIC1uZSAiXGEiOwogICAgICAgICAgICBzbGVlcCAxOwogICAgICAgIGRvbmU7
CiAgICBmaQp9CmVkb3MydW5peCAoKSAKeyAKICAgIGVjaG8gIiRAIiB8IHhhcmdzIHNlZCAtaSAn
cy9cciQvLycKfQplZ2V0ZW50ICgpIAp7IAogICAgY2FzZSAke0NIT1NUfSBpbiAKICAgICAgICAq
LWRhcndpbiopCiAgICAgICAgICAgIGNhc2UgIiQyIiBpbiAKICAgICAgICAgICAgICAgICpbITAt
OV0qKQogICAgICAgICAgICAgICAgICAgIG5pZHVtcCAkMSAuIHwgYXdrIC1GIjoiICJ7IGlmIChc
JDEgfiAvXiQyJC8pIHtwcmludCBcJDA7ZXhpdDt9IH0iCiAgICAgICAgICAgICAgICA7OwogICAg
ICAgICAgICAgICAgKikKICAgICAgICAgICAgICAgICAgICBuaWR1bXAgJDEgLiB8IGF3ayAtRiI6
IiAieyBpZiAoXCQzID09ICQyKSB7cHJpbnQgXCQwO2V4aXQ7fSB9IgogICAgICAgICAgICAgICAg
OzsKICAgICAgICAgICAgZXNhYwogICAgICAgIDs7CiAgICAgICAgKi1mcmVlYnNkKiB8ICotZHJh
Z29uZmx5KikKICAgICAgICAgICAgbG9jYWwgb3B0cyBhY3Rpb249InVzZXIiOwogICAgICAgICAg
ICBbWyAkMSA9PSAicGFzc3dkIiBdXSB8fCBhY3Rpb249Imdyb3VwIjsKICAgICAgICAgICAgaWYg
W1sgJDIgPT0gW1s6ZGlnaXQ6XV0qIF1dOyB0aGVuCiAgICAgICAgICAgICAgICBbWyAke2FjdGlv
bn0gPT0gInVzZXIiIF1dICYmIG9wdHM9Ii11IiB8fCBvcHRzPSItZyI7CiAgICAgICAgICAgIGZp
OwogICAgICAgICAgICBwdyBzaG93ICR7YWN0aW9ufSAke29wdHN9ICIkMiIgLXEKICAgICAgICA7
OwogICAgICAgICotbmV0YnNkKiB8ICotb3BlbmJzZCopCiAgICAgICAgICAgIGdyZXAgIiQyOlwq
OiIgL2V0Yy8kMQogICAgICAgIDs7CiAgICAgICAgKikKICAgICAgICAgICAgdHlwZSAtcCBuc2Nk
ID4mL2Rldi9udWxsICYmIG5zY2QgLWkgIiQxIjsKICAgICAgICAgICAgZ2V0ZW50ICIkMSIgIiQy
IgogICAgICAgIDs7CiAgICBlc2FjCn0KZWdldGhvbWUgKCkgCnsgCiAgICBlbnQ9JChlZ2V0ZW50
IHBhc3N3ZCAkMSk7CiAgICBjYXNlICR7Q0hPU1R9IGluIAogICAgICAgICotZGFyd2luKiB8ICot
ZnJlZWJzZCogfCAqLWRyYWdvbmZseSopCiAgICAgICAgICAgIGVjaG8gJHtlbnR9IHwgY3V0IC1k
OiAtZjkKICAgICAgICA7OwogICAgICAgICopCiAgICAgICAgICAgIGVjaG8gJHtlbnR9IHwgY3V0
IC1kOiAtZjYKICAgICAgICA7OwogICAgZXNhYwp9CmVnZXRzaGVsbCAoKSAKeyAKICAgIGVudD0k
KGVnZXRlbnQgcGFzc3dkICIkMSIpOwogICAgY2FzZSAke0NIT1NUfSBpbiAKICAgICAgICAqLWRh
cndpbiogfCAqLWZyZWVic2QqIHwgKi1kcmFnb25mbHkqKQogICAgICAgICAgICBlY2hvICR7ZW50
fSB8IGN1dCAtZDogLWYxMAogICAgICAgIDs7CiAgICAgICAgKikKICAgICAgICAgICAgZWNobyAk
e2VudH0gY3V0IC1kOiAtZjcKICAgICAgICA7OwogICAgZXNhYwp9CmVqYXZhYyAoKSAKeyAKICAg
IGRlYnVnLXByaW50LWZ1bmN0aW9uICR7RlVOQ05BTUV9ICQqOwogICAgamF2YS1wa2dfaW5pdC1j
b21waWxlcl87CiAgICBsb2NhbCBjb21waWxlcl9leGVjdXRhYmxlOwogICAgY29tcGlsZXJfZXhl
Y3V0YWJsZT0kKGphdmEtcGtnX2dldC1qYXZhYyk7CiAgICBpZiBbWyAkez99ICE9IDAgXV07IHRo
ZW4KICAgICAgICBlZXJyb3IgIlRoZXJlIHdhcyBhIHByb2JsZW0gZGV0ZXJtaW5pbmcgY29tcGls
ZXI6ICR7Y29tcGlsZXJfZXhlY3V0YWJsZX0iOwogICAgICAgIGRpZWZ1bmMgIiRGVU5DTkFNRSIg
IiRMSU5FTk8iICIkPyIgImdldC1qYXZhYyBmYWlsZWQiOwogICAgZmk7CiAgICBsb2NhbCBqYXZh
Y19hcmdzOwogICAgamF2YWNfYXJncz0iJChqYXZhLXBrZ19qYXZhYy1hcmdzKSI7CiAgICBpZiBb
WyAkez99ICE9IDAgXV07IHRoZW4KICAgICAgICBlZXJyb3IgIlRoZXJlIHdhcyBhIHByb2JsZW0g
ZGV0ZXJtaW5pbmcgSkFWQUNGTEFHUzogJHtqYXZhY19hcmdzfSI7CiAgICAgICAgZGllZnVuYyAi
JEZVTkNOQU1FIiAiJExJTkVOTyIgIiQ/IiAiamF2YS1wa2dfamF2YWMtYXJncyBmYWlsZWQiOwog
ICAgZmk7CiAgICBbWyAtbiAke0pBVkFfUEtHX0RFQlVHfSBdXSAmJiBlY2hvICR7Y29tcGlsZXJf
ZXhlY3V0YWJsZX0gJHtqYXZhY19hcmdzfSAiJHtAfSI7CiAgICAke2NvbXBpbGVyX2V4ZWN1dGFi
bGV9ICR7amF2YWNfYXJnc30gIiR7QH0iIHx8IGRpZWZ1bmMgIiRGVU5DTkFNRSIgIiRMSU5FTk8i
ICIkPyIgImVqYXZhYyBmYWlsZWQiCn0KZWp1bml0ICgpIAp7IAogICAgZGVidWctcHJpbnQtZnVu
Y3Rpb24gJHtGVU5DTkFNRX0gJCo7CiAgICBsb2NhbCBwa2dzOwogICAgZm9yIGF0b20gaW4gJChj
YXQgJHtKQVZBX1BLR19ERVBFTkRfRklMRX0gfCB0ciA6ICcgJyk7CiAgICBkbwogICAgICAgIHBr
Z3M9JHtwa2dzfSwkKGVjaG8gJHthdG9tfSB8IHNlZCAtcmUgInMvXi4qQC8vIik7CiAgICBkb25l
OwogICAgbG9jYWwgY3A9JChqYXZhLXBrZ19nZXRqYXJzIC0td2l0aC1kZXBlbmRlbmNpZXMganVu
aXQke3BrZ3N9KTsKICAgIGlmIFtbICR7MX0gPSAtY3AgfHwgJHsxfSA9IC1jbGFzc3BhdGggXV07
IHRoZW4KICAgICAgICBjcD0iJHsyfToke2NwfSI7CiAgICAgICAgc2hpZnQgMjsKICAgIGVsc2UK
ICAgICAgICBjcD0iLjoke2NwfSI7CiAgICBmaTsKICAgIGxvY2FsIHJ1bm5lcj1qdW5pdC50ZXh0
dWkuVGVzdFJ1bm5lcjsKICAgIGRlYnVnLXByaW50ICJDYWxsaW5nOiBqYXZhIC1jcCBcIiR7Y3B9
XCIgLURqYXZhLmF3dC5oZWFkbGVzcz10cnVlICR7cnVubmVyfSAke0B9IjsKICAgIGphdmEgLWNw
ICIke2NwfSIgLURqYXZhLmF3dC5oZWFkbGVzcz10cnVlICR7cnVubmVyfSAiJHtAfSIgfHwgZGll
ZnVuYyAiJEZVTkNOQU1FIiAiJExJTkVOTyIgIiQ/IiAiUnVubmluZyBqdW5pdCBmYWlsZWQiCn0K
ZWxpYnRvb2xpemUgKCkgCnsgCiAgICBsb2NhbCB4PTsKICAgIGxvY2FsIHk9OwogICAgbG9jYWwg
ZG9fcG9ydGFnZT0ibm8iOwogICAgbG9jYWwgZG9fcmV2ZXJzZWRlcHM9Im5vIjsKICAgIGxvY2Fs
IGRvX29ubHlfcGF0Y2hlcz0ibm8iOwogICAgbG9jYWwgZG9fdWNsaWJjPSJ5ZXMiOwogICAgbG9j
YWwgZGVwdG9yZW1vdmU9OwogICAgbG9jYWwgbXlfZGlybGlzdD07CiAgICBsb2NhbCBlbHRfcGF0
Y2hlcz0iaW5zdGFsbC1zaCBsdG1haW4gcG9ydGFnZSByZWxpbmsgbWF4X2NtZF9sZW4gc2VkIHRl
c3QgdG1wIjsKICAgIGxvY2FsIHN0YXJ0X2Rpcj0ke1BXRH07CiAgICBteV9kaXJsaXN0PSQoRUxU
X2ZpbmRfbHRtYWluX3NoKTsKICAgIGZvciB4IGluICIkQCI7CiAgICBkbwogICAgICAgIGNhc2Ug
IiR7eH0iIGluIAogICAgICAgICAgICAiLS1wb3J0YWdlIikKICAgICAgICAgICAgICAgIGRvX3Bv
cnRhZ2U9InllcyIKICAgICAgICAgICAgOzsKICAgICAgICAgICAgIi0tcmV2ZXJzZS1kZXBzIikK
ICAgICAgICAgICAgICAgIGRvX3JldmVyc2VkZXBzPSJ5ZXMiOwogICAgICAgICAgICAgICAgZWx0
X3BhdGNoZXM9IiR7ZWx0X3BhdGNoZXN9IGZpeC1yZWxpbmsiCiAgICAgICAgICAgIDs7CiAgICAg
ICAgICAgICItLXBhdGNoLW9ubHkiKQogICAgICAgICAgICAgICAgZG9fb25seV9wYXRjaGVzPSJ5
ZXMiCiAgICAgICAgICAgIDs7CiAgICAgICAgICAgICJeLS1yZW1vdmUtaW50ZXJuYWwtZGVwPSIq
KQogICAgICAgICAgICAgICAgZGVwdG9yZW1vdmU9JChlY2hvICIke3h9IiB8IHNlZCAtZSAnc3wt
LXJlbW92ZS1pbnRlcm5hbC1kZXA9fHwnKTsKICAgICAgICAgICAgICAgIFtbIC1uICR7ZGVwdG9y
ZW1vdmV9IF1dICYmIGVsdF9wYXRjaGVzPSIke2VsdF9wYXRjaGVzfSByZW0taW50LWRlcCIKICAg
ICAgICAgICAgOzsKICAgICAgICAgICAgIi0tc2hhbGxvdyIpCiAgICAgICAgICAgICAgICBpZiBb
WyAtZiAke1N9L2x0bWFpbi5zaCBdXTsgdGhlbgogICAgICAgICAgICAgICAgICAgIG15X2Rpcmxp
c3Q9JHtTfTsKICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICBteV9kaXJs
aXN0PTsKICAgICAgICAgICAgICAgIGZpCiAgICAgICAgICAgIDs7CiAgICAgICAgICAgICItLW5v
LXVjbGliYyIpCiAgICAgICAgICAgICAgICBkb191Y2xpYmM9Im5vIgogICAgICAgICAgICA7Owog
ICAgICAgICAgICAqKQogICAgICAgICAgICAgICAgZWVycm9yICJJbnZhbGlkIGVsaWJ0b29saXpl
IG9wdGlvbjogJHt4fSI7CiAgICAgICAgICAgICAgICBkaWVmdW5jICIkRlVOQ05BTUUiICIkTElO
RU5PIiAiJD8iICJlbGlidG9vbGl6ZSBjYWxsZWQgd2l0aCAke3h9ID8/IgogICAgICAgICAgICA7
OwogICAgICAgIGVzYWM7CiAgICBkb25lOwogICAgW1sgJHtkb191Y2xpYmN9ID09ICJ5ZXMiIF1d
ICYmIGVsdF9wYXRjaGVzPSIke2VsdF9wYXRjaGVzfSB1Y2xpYmMtY29uZiB1Y2xpYmMtbHRjb25m
IjsKICAgIFtbICR7Q0hPU1R9ID09ICoiLWZyZWVic2QiKiBdXSAmJiBlbHRfcGF0Y2hlcz0iJHtl
bHRfcGF0Y2hlc30gZmJzZC1jb25mIGZic2QtbHRjb25mIjsKICAgIFtbICR7Q0hPU1R9ID09ICoi
LWRhcndpbiIqIF1dICYmIGVsdF9wYXRjaGVzPSIke2VsdF9wYXRjaGVzfSBkYXJ3aW4tbHRjb25m
IGRhcndpbi1sdG1haW4iOwogICAgZm9yIHggaW4gJHtteV9kaXJsaXN0fTsKICAgIGRvCiAgICAg
ICAgbG9jYWwgdG1wPSQoZWNobyAiJHt4fSIgfCBzZWQgLWUgInN8JHtXT1JLRElSfXx8Iik7CiAg
ICAgICAgZXhwb3J0IEVMVF9BUFBMSUVEX1BBVENIRVM9OwogICAgICAgIGV4cG9ydCBFTFRfTFRN
QUlOX1NIPSIke3h9L2x0bWFpbi5zaCI7CiAgICAgICAgW1sgLWYgJHt4fS8uZWxpYnRvb2xpemVk
IF1dICYmIGNvbnRpbnVlOwogICAgICAgIGNkICR7eH07CiAgICAgICAgZWluZm8gIlJ1bm5pbmcg
ZWxpYnRvb2xpemUgaW46ICQoZWNobyAiLyR7dG1wfSIgfCBzZWQgLWUgJ3N8Ly98L3xnOyBzfF4v
fHwnKSI7CiAgICAgICAgZm9yIHkgaW4gJHtlbHRfcGF0Y2hlc307CiAgICAgICAgZG8KICAgICAg
ICAgICAgbG9jYWwgcmV0PTA7CiAgICAgICAgICAgIGNhc2UgIiR7eX0iIGluIAogICAgICAgICAg
ICAgICAgInBvcnRhZ2UiKQogICAgICAgICAgICAgICAgICAgIGlmIFtbIC16ICQoZ3JlcCAnV2Ug
ZG8gbm90IHdhbnQgcG9ydGFnZScgIiR7eH0vbHRtYWluLnNoIikgXV07IHRoZW4KICAgICAgICAg
ICAgICAgICAgICAgICAgRUxUX3dhbGtfcGF0Y2hlcyAiJHt4fS9sdG1haW4uc2giICIke3l9IjsK
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0PSQ/OwogICAgICAgICAgICAgICAgICAgIGZpCiAg
ICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgInJlbS1pbnQtZGVwIikKICAgICAgICAg
ICAgICAgICAgICBFTFRfd2Fsa19wYXRjaGVzICIke3h9L2x0bWFpbi5zaCIgIiR7eX0iICIke2Rl
cHRvcmVtb3ZlfSI7CiAgICAgICAgICAgICAgICAgICAgcmV0PSQ/CiAgICAgICAgICAgICAgICA7
OwogICAgICAgICAgICAgICAgImZpeC1yZWxpbmsiKQogICAgICAgICAgICAgICAgICAgIGlmIFtb
IC1uICQoZ3JlcCAnaW5zdF9wcmVmaXhfZGlyJyAiJHt4fS9sdG1haW4uc2giKSBdXTsgdGhlbgog
ICAgICAgICAgICAgICAgICAgICAgICBFTFRfd2Fsa19wYXRjaGVzICIke3h9L2x0bWFpbi5zaCIg
IiR7eX0iOwogICAgICAgICAgICAgICAgICAgICAgICByZXQ9JD87CiAgICAgICAgICAgICAgICAg
ICAgZmkKICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAibWF4X2NtZF9sZW4iKQog
ICAgICAgICAgICAgICAgICAgIGlmIFtbIC1uICQoZ3JlcCAnbWF4X2NtZF9sZW4nICIke3h9L2x0
bWFpbi5zaCIpIF1dOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAgIEVMVF93YWxrX3BhdGNo
ZXMgIiR7eH0vbHRtYWluLnNoIiAiJHt5fSI7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldD0k
PzsKICAgICAgICAgICAgICAgICAgICBmaQogICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAg
ICAgICJ1Y2xpYmMtY29uZiIpCiAgICAgICAgICAgICAgICAgICAgaWYgW1sgLWUgJHt4fS9jb25m
aWd1cmUgJiYgLW4gJChncmVwICdUcmFuc2Zvcm0gbGludXgnICIke3h9L2NvbmZpZ3VyZSIpIF1d
OyB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAgIEVMVF93YWxrX3BhdGNoZXMgIiR7eH0vY29u
ZmlndXJlIiAiJHt5fSI7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldD0kPzsKICAgICAgICAg
ICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIFtbICEgLWUgJHt4fS9j
b25maWd1cmUgJiYgLWUgJHt4fS8uLi9jb25maWd1cmUgJiYgLW4gJChncmVwICdUcmFuc2Zvcm0g
bGludXgnICIke3h9Ly4uL2NvbmZpZ3VyZSIpIF1dOyB0aGVuCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBFTFRfd2Fsa19wYXRjaGVzICIke3h9Ly4uL2NvbmZpZ3VyZSIgIiR7eX0iOwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0PSQ/OwogICAgICAgICAgICAgICAgICAgICAgICBm
aTsKICAgICAgICAgICAgICAgICAgICBmaQogICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAg
ICAgICJ1Y2xpYmMtbHRjb25mIikKICAgICAgICAgICAgICAgICAgICBpZiBbWyAtcyAke3h9L2x0
Y29uZmlnIF1dOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAgIEVMVF93YWxrX3BhdGNoZXMg
IiR7eH0vbHRjb25maWciICIke3l9IjsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0PSQ/Owog
ICAgICAgICAgICAgICAgICAgIGZpCiAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAg
ImZic2QtY29uZiIpCiAgICAgICAgICAgICAgICAgICAgaWYgW1sgLWUgJHt4fS9jb25maWd1cmUg
JiYgLW4gJChncmVwICd2ZXJzaW9uX3R5cGU9ZnJlZWJzZC0nICIke3h9L2NvbmZpZ3VyZSIpIF1d
OyB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAgIEVMVF93YWxrX3BhdGNoZXMgIiR7eH0vY29u
ZmlndXJlIiAiJHt5fSI7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldD0kPzsKICAgICAgICAg
ICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIFtbICEgLWUgJHt4fS9j
b25maWd1cmUgJiYgLWUgJHt4fS8uLi9jb25maWd1cmUgJiYgLW4gJChncmVwICd2ZXJzaW9uX3R5
cGU9ZnJlZWJzZC0nICIke3h9Ly4uL2NvbmZpZ3VyZSIpIF1dOyB0aGVuCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBFTFRfd2Fsa19wYXRjaGVzICIke3h9Ly4uL2NvbmZpZ3VyZSIgIiR7eX0i
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0PSQ/OwogICAgICAgICAgICAgICAgICAg
ICAgICBmaTsKICAgICAgICAgICAgICAgICAgICBmaQogICAgICAgICAgICAgICAgOzsKICAgICAg
ICAgICAgICAgICJmYnNkLWx0Y29uZiIpCiAgICAgICAgICAgICAgICAgICAgaWYgW1sgLXMgJHt4
fS9sdGNvbmZpZyBdXTsgdGhlbgogICAgICAgICAgICAgICAgICAgICAgICBFTFRfd2Fsa19wYXRj
aGVzICIke3h9L2x0Y29uZmlnIiAiJHt5fSI7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldD0k
PzsKICAgICAgICAgICAgICAgICAgICBmaQogICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAg
ICAgICJkYXJ3aW4tbHRjb25mIikKICAgICAgICAgICAgICAgICAgICBpZiBbWyAtcyAke3h9L2x0
Y29uZmlnIF1dOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAgIEVMVF93YWxrX3BhdGNoZXMg
IiR7eH0vbHRjb25maWciICIke3l9IjsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0PSQ/Owog
ICAgICAgICAgICAgICAgICAgIGZpCiAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAg
Imluc3RhbGwtc2giKQogICAgICAgICAgICAgICAgICAgIEVMVF93YWxrX3BhdGNoZXMgIiR7eH0v
aW5zdGFsbC1zaCIgIiR7eX0iOwogICAgICAgICAgICAgICAgICAgIHJldD0kPwogICAgICAgICAg
ICAgICAgOzsKICAgICAgICAgICAgICAgICopCiAgICAgICAgICAgICAgICAgICAgRUxUX3dhbGtf
cGF0Y2hlcyAiJHt4fS9sdG1haW4uc2giICIke3l9IjsKICAgICAgICAgICAgICAgICAgICByZXQ9
JD8KICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgIGVzYWM7CiAgICAgICAgICAgIGlmIFtb
ICR7cmV0fSAtbmUgMCBdXTsgdGhlbgogICAgICAgICAgICAgICAgY2FzZSAke3l9IGluIAogICAg
ICAgICAgICAgICAgICAgICJyZWxpbmsiKQogICAgICAgICAgICAgICAgICAgICAgICBsb2NhbCB2
ZXJzaW9uPSQoRUxUX2xpYnRvb2xfdmVyc2lvbiAiJHt4fS9sdG1haW4uc2giKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgW1sgLXogJChncmVwICdpbnN0X3ByZWZpeF9kaXInICIke3h9L2x0
bWFpbi5zaCIpICYmICQoVkVSX3RvX2ludCAiJHt2ZXJzaW9ufSIpIC1nZSAkKFZFUl90b19pbnQg
IjEuNC4wIikgXV07IHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV3YXJuICIgIENv
dWxkIG5vdCBhcHBseSByZWxpbmsucGF0Y2ghIjsKICAgICAgICAgICAgICAgICAgICAgICAgZmkK
ICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgICJwb3J0YWdlIikKICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgW1sgJHtkb19wb3J0YWdlfSA9PSAieWVzIiBdXTsgdGhl
bgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgW1sgLXogJChncmVwICdXZSBkbyBub3Qg
d2FudCBwb3J0YWdlJyAiJHt4fS9sdG1haW4uc2giKSBdXTsgdGhlbgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGVjaG87CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWVy
cm9yICJQb3J0YWdlIHBhdGNoIHJlcXVlc3RlZCwgYnV0IGZhaWxlZCB0byBhcHBseSEiOwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVlcnJvciAiUGxlYXNlIGJ1ZyBhemFyYWggb3Ig
dmFwaWVyIHRvIGFkZCBwcm9wZXIgcGF0Y2guIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkaWVmdW5jICIkRlVOQ05BTUUiICIkTElORU5PIiAiJD8iICJQb3J0YWdlIHBhdGNoIHJl
cXVlc3RlZCwgYnV0IGZhaWxlZCB0byBhcHBseSEiOwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZmk7CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIFtbIC1uICQoZ3JlcCAnV2UgZG8gbm90IHdhbnQgcG9ydGFnZScgIiR7eH0vbHRt
YWluLnNoIikgXV07IHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6OwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxvY2FsIHZlcnNpb249JCggCQkJCQkJCQkJZXZhbCAkKGdyZXAgLWUgJ15bWzpzcGFjZTpd
XSpWRVJTSU9OPScgIiR7eH0vbHRtYWluLnNoIik7IAkJCQkJCQkJCWVjaG8gIiR7VkVSU0lPTn0i
KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2hvOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGVlcnJvciAiUG9ydGFnZSBwYXRjaCBmYWlsZWQgdG8gYXBwbHkgKGx0
bWFpbi5zaCB2ZXJzaW9uICR7dmVyc2lvbn0pISI7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZWVycm9yICJQbGVhc2UgYnVnIGF6YXJhaCBvciB2YXBpZXIgdG8gYWRkIHByb3BlciBw
YXRjaC4iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZWZ1bmMgIiRGVU5DTkFN
RSIgIiRMSU5FTk8iICIkPyIgIlBvcnRhZ2UgcGF0Y2ggZmFpbGVkIHRvIGFwcGx5ISI7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVM
VF9BUFBMSUVEX1BBVENIRVM9InBvcnRhZ2UiOwogICAgICAgICAgICAgICAgICAgICAgICBmaQog
ICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgInVjbGliYy0iKikKICAg
ICAgICAgICAgICAgICAgICAgICAgW1sgJHtDSE9TVH0gPT0gKiItdWNsaWJjIiBdXSAmJiBld2Fy
biAiICB1Q2xpYmMgcGF0Y2ggc2V0ICcke3l9JyBmYWlsZWQgdG8gYXBwbHkhIgogICAgICAgICAg
ICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgImZic2QtIiopCiAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIFtbICR7Q0hPU1R9ID09ICoiLWZyZWVic2QiKiBdXTsgdGhlbgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgW1sgLXogJChncmVwICdIYW5kbGUgR2VudG9vL0ZyZWVC
U0QgYXMgaXQgd2FzIExpbnV4JyAJCQkJCQkJCSIke3h9L2NvbmZpZ3VyZSIgIiR7eH0vLi4vY29u
ZmlndXJlIiAyPi9kZXYvbnVsbCkgXV07IHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBlZXJyb3IgIiAgRnJlZUJTRCBwYXRjaCBzZXQgJyR7eX0nIGZhaWxlZCB0byBhcHBseSEi
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZWZ1bmMgIiRGVU5DTkFNRSIgIiRM
SU5FTk8iICIkPyIgIkZyZWVCU0QgcGF0Y2ggc2V0ICcke3l9JyBmYWlsZWQgdG8gYXBwbHkhIjsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpOwogICAgICAgICAgICAgICAgICAgICAgICBm
aQogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgImRhcndpbi0iKikK
ICAgICAgICAgICAgICAgICAgICAgICAgW1sgJHtDSE9TVH0gPT0gKiItZGFyd2luIiogXV0gJiYg
ZXdhcm4gIiAgRGFyd2luIHBhdGNoIHNldCAnJHt5fScgZmFpbGVkIHRvIGFwcGx5ISIKICAgICAg
ICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgZXNhYzsKICAgICAgICAgICAgZmk7CiAg
ICAgICAgZG9uZTsKICAgICAgICBpZiBbWyAteiAke0VMVF9BUFBMSUVEX1BBVENIRVN9IF1dOyB0
aGVuCiAgICAgICAgICAgIGlmIFtbICR7ZG9fcG9ydGFnZX0gPT0gIm5vIiAmJiAke2RvX3JldmVy
c2VkZXBzfSA9PSAibm8iICYmICR7ZG9fb25seV9wYXRjaGVzfSA9PSAibm8iICYmICR7ZGVwdG9y
ZW1vdmV9ID09ICIiIF1dOyB0aGVuCiAgICAgICAgICAgICAgICBld2FybiAiQ2Fubm90IGFwcGx5
IGFueSBwYXRjaGVzLCBwbGVhc2UgZmlsZSBhIGJ1ZyBhYm91dCB0aGlzIjsKICAgICAgICAgICAg
ICAgIGRpZWZ1bmMgIiRGVU5DTkFNRSIgIiRMSU5FTk8iICIkPyI7CiAgICAgICAgICAgIGZpOwog
ICAgICAgIGZpOwogICAgICAgIFtbIC1mICR7eH0vbGlidG9vbCBdXSAmJiBybSAtZiAiJHt4fS9s
aWJ0b29sIjsKICAgICAgICB0b3VjaCAiJHt4fS8uZWxpYnRvb2xpemVkIjsKICAgIGRvbmU7CiAg
ICBjZCAiJHtzdGFydF9kaXJ9Igp9CmVta3RlbXAgKCkgCnsgCiAgICBsb2NhbCBleGU9InRvdWNo
IjsKICAgIFtbICQxID09IC1kIF1dICYmIGV4ZT0ibWtkaXIiICYmIHNoaWZ0OwogICAgbG9jYWwg
dG9wZGlyPSQxOwogICAgaWYgW1sgLXogJHt0b3BkaXJ9IF1dOyB0aGVuCiAgICAgICAgW1sgLXog
JHtUfSBdXSAmJiB0b3BkaXI9Ii90bXAiIHx8IHRvcGRpcj0ke1R9OwogICAgZmk7CiAgICBpZiAh
IHR5cGUgLVAgbWt0ZW1wID4gL2Rldi9udWxsOyB0aGVuCiAgICAgICAgbG9jYWwgdG1wPS87CiAg
ICAgICAgd2hpbGUgW1sgLWUgJHt0bXB9IF1dOyBkbwogICAgICAgICAgICB0bXA9JHt0b3BkaXJ9
L3RtcC4ke1JBTkRPTX0uJHtSQU5ET019LiR7UkFORE9NfTsKICAgICAgICBkb25lOwogICAgICAg
ICR7ZXhlfSAiJHt0bXB9IiB8fCAke2V4ZX0gLXAgIiR7dG1wfSI7CiAgICAgICAgZWNobyAiJHt0
bXB9IjsKICAgIGVsc2UKICAgICAgICBpZiBbWyAke2V4ZX0gPT0gInRvdWNoIiBdXTsgdGhlbgog
ICAgICAgICAgICBUTVBESVI9IiR7dG9wZGlyfSIgbWt0ZW1wIC10IHRtcC5YWFhYWFhYWFhYOwog
ICAgICAgIGVsc2UKICAgICAgICAgICAgVE1QRElSPSIke3RvcGRpcn0iIG1rdGVtcCAtZHQgdG1w
LlhYWFhYWFhYWFg7CiAgICAgICAgZmk7CiAgICBmaQp9CmVuZXdncm91cCAoKSAKeyAKICAgIGNh
c2UgJHtFQlVJTERfUEhBU0V9IGluIAogICAgICAgIHVucGFjayB8IGNvbXBpbGUgfCB0ZXN0IHwg
aW5zdGFsbCkKICAgICAgICAgICAgZWVycm9yICInZW5ld2dyb3VwKCknIGNhbGxlZCBmcm9tICck
e0VCVUlMRF9QSEFTRX0oKScgd2hpY2ggaXMgbm90IGEgcGtnXyogZnVuY3Rpb24uIjsKICAgICAg
ICAgICAgZWVycm9yICJQYWNrYWdlIGZhaWxzIGF0IFFBIGFuZCBhdCBsaWZlLiAgUGxlYXNlIGZp
bGUgYSBidWcuIjsKICAgICAgICAgICAgZGllZnVuYyAiJEZVTkNOQU1FIiAiJExJTkVOTyIgIiQ/
IiAiQmFkIHBhY2thZ2UhICBlbmV3Z3JvdXAgaXMgb25seSBmb3IgdXNlIGluIHBrZ18qIGZ1bmN0
aW9ucyEiCiAgICAgICAgOzsKICAgIGVzYWM7CiAgICBsb2NhbCBlZ3JvdXA9IiQxIjsKICAgIHNo
aWZ0OwogICAgaWYgWyAteiAiJHtlZ3JvdXB9IiBdOyB0aGVuCiAgICAgICAgZWVycm9yICJObyBn
cm91cCBzcGVjaWZpZWQgISI7CiAgICAgICAgZGllZnVuYyAiJEZVTkNOQU1FIiAiJExJTkVOTyIg
IiQ/IiAiQ2Fubm90IGNhbGwgZW5ld2dyb3VwIHdpdGhvdXQgYSBncm91cCI7CiAgICBmaTsKICAg
IGlmIFtbIC1uICQoZWdldGVudCBncm91cCAiJHtlZ3JvdXB9IikgXV07IHRoZW4KICAgICAgICBy
ZXR1cm4gMDsKICAgIGZpOwogICAgZWluZm8gIkFkZGluZyBncm91cCAnJHtlZ3JvdXB9JyB0byB5
b3VyIHN5c3RlbSAuLi4iOwogICAgbG9jYWwgb3B0cz07CiAgICBsb2NhbCBlZ2lkPSIkMSI7CiAg
ICBzaGlmdDsKICAgIGlmIFsgISAteiAiJHtlZ2lkfSIgXTsgdGhlbgogICAgICAgIGlmIFsgIiR7
ZWdpZH0iIC1ndCAwIF07IHRoZW4KICAgICAgICAgICAgaWYgWyAteiAiYGVnZXRlbnQgZ3JvdXAg
JHtlZ2lkfWAiIF07IHRoZW4KICAgICAgICAgICAgICAgIGlmIFtbICIke0NIT1NUfSIgPT0gKi1k
YXJ3aW4qIF1dOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgb3B0cz0iJHtvcHRzfSAke2VnaWR9
IjsKICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICBvcHRzPSIke29wdHN9
IC1nICR7ZWdpZH0iOwogICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAgIGVsc2UKICAgICAg
ICAgICAgICAgIGVnaWQ9Im5leHQgYXZhaWxhYmxlOyByZXF1ZXN0ZWQgZ2lkIHRha2VuIjsKICAg
ICAgICAgICAgZmk7CiAgICAgICAgZWxzZQogICAgICAgICAgICBlZXJyb3IgIkdyb3VwaWQgZ2l2
ZW4gYnV0IGlzIG5vdCBncmVhdGVyIHRoYW4gMCAhIjsKICAgICAgICAgICAgZGllZnVuYyAiJEZV
TkNOQU1FIiAiJExJTkVOTyIgIiQ/IiAiJHtlZ2lkfSBpcyBub3QgYSB2YWxpZCBHSUQiOwogICAg
ICAgIGZpOwogICAgZWxzZQogICAgICAgIGVnaWQ9Im5leHQgYXZhaWxhYmxlIjsKICAgIGZpOwog
ICAgZWluZm8gIiAtIEdyb3VwaWQ6ICR7ZWdpZH0iOwogICAgbG9jYWwgZWV4dHJhPSIkQCI7CiAg
ICBvcHRzPSIke29wdHN9ICR7ZWV4dHJhfSI7CiAgICBsb2NhbCBvbGRzYW5kYm94PSIke1NBTkRC
T1hfT059IjsKICAgIGV4cG9ydCBTQU5EQk9YX09OPSIwIjsKICAgIGNhc2UgJHtDSE9TVH0gaW4g
CiAgICAgICAgKi1kYXJ3aW4qKQogICAgICAgICAgICBpZiBbICEgLXogIiR7ZWV4dHJhfSIgXTsg
dGhlbgogICAgICAgICAgICAgICAgZWluZm8gIkV4dHJhIG9wdGlvbnMgYXJlIG5vdCBzdXBwb3J0
ZWQgb24gRGFyd2luL09TIFggeWV0IjsKICAgICAgICAgICAgICAgIGVpbmZvICJQbGVhc2UgcmVw
b3J0IHRoZSBlYnVpbGQgYWxvbmcgd2l0aCB0aGUgaW5mbyBiZWxvdyI7CiAgICAgICAgICAgICAg
ICBlaW5mbyAiZWV4dHJhOiAke2VleHRyYX0iOwogICAgICAgICAgICAgICAgZGllZnVuYyAiJEZV
TkNOQU1FIiAiJExJTkVOTyIgIiQ/IiAiUmVxdWlyZWQgZnVuY3Rpb24gbWlzc2luZyI7CiAgICAg
ICAgICAgIGZpOwogICAgICAgICAgICBjYXNlICR7ZWdpZH0gaW4gCiAgICAgICAgICAgICAgICAq
WyEwLTldKikKICAgICAgICAgICAgICAgICAgICBmb3IgKChlZ2lkID0gMTAxOyBlZ2lkIDw9IDk5
OTsgZWdpZCsrKSkKICAgICAgICAgICAgICAgICAgICBkbwogICAgICAgICAgICAgICAgICAgICAg
ICBbWyAteiAkKGVnZXRlbnQgZ3JvdXAgJHtlZ2lkfSkgXV0gJiYgYnJlYWs7CiAgICAgICAgICAg
ICAgICAgICAgZG9uZQogICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgZXNhYzsKICAgICAg
ICAgICAgZHNjbCAuIGNyZWF0ZSAvZ3JvdXBzLyR7ZWdyb3VwfSBnaWQgJHtlZ2lkfTsKICAgICAg
ICAgICAgZHNjbCAuIGNyZWF0ZSAvZ3JvdXBzLyR7ZWdyb3VwfSBwYXNzd2QgJyonCiAgICAgICAg
OzsKICAgICAgICAqLWZyZWVic2QqIHwgKi1kcmFnb25mbHkqKQogICAgICAgICAgICBjYXNlICR7
ZWdpZH0gaW4gCiAgICAgICAgICAgICAgICAqWyEwLTldKikKICAgICAgICAgICAgICAgICAgICBm
b3IgKChlZ2lkID0gMTAxOyBlZ2lkIDw9IDk5OTsgZWdpZCsrKSkKICAgICAgICAgICAgICAgICAg
ICBkbwogICAgICAgICAgICAgICAgICAgICAgICBbWyAteiAkKGVnZXRlbnQgZ3JvdXAgJHtlZ2lk
fSkgXV0gJiYgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgZG9uZQogICAgICAgICAgICAgICAg
OzsKICAgICAgICAgICAgZXNhYzsKICAgICAgICAgICAgcHcgZ3JvdXBhZGQgJHtlZ3JvdXB9IC1n
ICR7ZWdpZH0gfHwgZGllZnVuYyAiJEZVTkNOQU1FIiAiJExJTkVOTyIgIiQ/IiAiZW5ld2dyb3Vw
IGZhaWxlZCIKICAgICAgICA7OwogICAgICAgICotbmV0YnNkKikKICAgICAgICAgICAgY2FzZSAk
e2VnaWR9IGluIAogICAgICAgICAgICAgICAgKlshMC05XSopCiAgICAgICAgICAgICAgICAgICAg
Zm9yICgoZWdpZCA9IDEwMTsgZWdpZCA8PSA5OTk7IGVnaWQrKykpCiAgICAgICAgICAgICAgICAg
ICAgZG8KICAgICAgICAgICAgICAgICAgICAgICAgW1sgLXogJChlZ2V0ZW50IGdyb3VwICR7ZWdp
ZH0pIF1dICYmIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGRvbmUKICAgICAgICAgICAgICAg
IDs7CiAgICAgICAgICAgIGVzYWM7CiAgICAgICAgICAgIGdyb3VwYWRkIC1nICR7ZWdpZH0gJHtl
Z3JvdXB9IHx8IGRpZWZ1bmMgIiRGVU5DTkFNRSIgIiRMSU5FTk8iICIkPyIgImVuZXdncm91cCBm
YWlsZWQiCiAgICAgICAgOzsKICAgICAgICAqKQogICAgICAgICAgICBncm91cGFkZCAke29wdHN9
ICR7ZWdyb3VwfSB8fCBkaWVmdW5jICIkRlVOQ05BTUUiICIkTElORU5PIiAiJD8iICJlbmV3Z3Jv
dXAgZmFpbGVkIgogICAgICAgIDs7CiAgICBlc2FjOwogICAgZXhwb3J0IFNBTkRCT1hfT049IiR7
b2xkc2FuZGJveH0iCn0KZW5ld3VzZXIgKCkgCnsgCiAgICBjYXNlICR7RUJVSUxEX1BIQVNFfSBp
biAKICAgICAgICB1bnBhY2sgfCBjb21waWxlIHwgdGVzdCB8IGluc3RhbGwpCiAgICAgICAgICAg
IGVlcnJvciAiJ2VuZXd1c2VyKCknIGNhbGxlZCBmcm9tICcke0VCVUlMRF9QSEFTRX0oKScgd2hp
Y2ggaXMgbm90IGEgcGtnXyogZnVuY3Rpb24uIjsKICAgICAgICAgICAgZWVycm9yICJQYWNrYWdl
IGZhaWxzIGF0IFFBIGFuZCBhdCBsaWZlLiAgUGxlYXNlIGZpbGUgYSBidWcuIjsKICAgICAgICAg
ICAgZGllZnVuYyAiJEZVTkNOQU1FIiAiJExJTkVOTyIgIiQ/IiAiQmFkIHBhY2thZ2UhICBlbmV3
dXNlciBpcyBvbmx5IGZvciB1c2UgaW4gcGtnXyogZnVuY3Rpb25zISIKICAgICAgICA7OwogICAg
ZXNhYzsKICAgIGxvY2FsIGV1c2VyPSQxOwogICAgc2hpZnQ7CiAgICBpZiBbWyAteiAke2V1c2Vy
fSBdXTsgdGhlbgogICAgICAgIGVlcnJvciAiTm8gdXNlcm5hbWUgc3BlY2lmaWVkICEiOwogICAg
ICAgIGRpZWZ1bmMgIiRGVU5DTkFNRSIgIiRMSU5FTk8iICIkPyIgIkNhbm5vdCBjYWxsIGVuZXd1
c2VyIHdpdGhvdXQgYSB1c2VybmFtZSI7CiAgICBmaTsKICAgIGlmIFtbIC1uICQoZWdldGVudCBw
YXNzd2QgIiR7ZXVzZXJ9IikgXV07IHRoZW4KICAgICAgICByZXR1cm4gMDsKICAgIGZpOwogICAg
ZWluZm8gIkFkZGluZyB1c2VyICcke2V1c2VyfScgdG8geW91ciBzeXN0ZW0gLi4uIjsKICAgIGxv
Y2FsIG9wdHM9OwogICAgbG9jYWwgZXVpZD0kMTsKICAgIHNoaWZ0OwogICAgaWYgW1sgLW4gJHtl
dWlkfSAmJiAke2V1aWR9ICE9IC0xIF1dOyB0aGVuCiAgICAgICAgaWYgW1sgJHtldWlkfSAtZ3Qg
MCBdXTsgdGhlbgogICAgICAgICAgICBpZiBbWyAtbiAkKGVnZXRlbnQgcGFzc3dkICR7ZXVpZH0p
IF1dOyB0aGVuCiAgICAgICAgICAgICAgICBldWlkPSJuZXh0IjsKICAgICAgICAgICAgZmk7CiAg
ICAgICAgZWxzZQogICAgICAgICAgICBlZXJyb3IgIlVzZXJpZCBnaXZlbiBidXQgaXMgbm90IGdy
ZWF0ZXIgdGhhbiAwICEiOwogICAgICAgICAgICBkaWVmdW5jICIkRlVOQ05BTUUiICIkTElORU5P
IiAiJD8iICIke2V1aWR9IGlzIG5vdCBhIHZhbGlkIFVJRCI7CiAgICAgICAgZmk7CiAgICBlbHNl
CiAgICAgICAgZXVpZD0ibmV4dCI7CiAgICBmaTsKICAgIGlmIFtbICR7ZXVpZH0gPT0gIm5leHQi
IF1dOyB0aGVuCiAgICAgICAgZm9yICgoZXVpZCA9IDEwMTsgZXVpZCA8PSA5OTk7IGV1aWQrKykp
CiAgICAgICAgZG8KICAgICAgICAgICAgW1sgLXogJChlZ2V0ZW50IHBhc3N3ZCAke2V1aWR9KSBd
XSAmJiBicmVhazsKICAgICAgICBkb25lOwogICAgZmk7CiAgICBvcHRzPSIke29wdHN9IC11ICR7
ZXVpZH0iOwogICAgZWluZm8gIiAtIFVzZXJpZDogJHtldWlkfSI7CiAgICBsb2NhbCBlc2hlbGw9
JDE7CiAgICBzaGlmdDsKICAgIGlmIFtbICEgLXogJHtlc2hlbGx9IF1dICYmIFtbICR7ZXNoZWxs
fSAhPSAiLTEiIF1dOyB0aGVuCiAgICAgICAgaWYgW1sgISAtZSAke1JPT1R9JHtlc2hlbGx9IF1d
OyB0aGVuCiAgICAgICAgICAgIGVlcnJvciAiQSBzaGVsbCB3YXMgc3BlY2lmaWVkIGJ1dCBpdCBk
b2VzIG5vdCBleGlzdCAhIjsKICAgICAgICAgICAgZGllZnVuYyAiJEZVTkNOQU1FIiAiJExJTkVO
TyIgIiQ/IiAiJHtlc2hlbGx9IGRvZXMgbm90IGV4aXN0IGluICR7Uk9PVH0iOwogICAgICAgIGZp
OwogICAgICAgIGlmIFtbICR7ZXNoZWxsfSA9PSAqL2ZhbHNlIHx8ICR7ZXNoZWxsfSA9PSAqL25v
bG9naW4gXV07IHRoZW4KICAgICAgICAgICAgZWVycm9yICJEbyBub3Qgc3BlY2lmeSAke2VzaGVs
bH0geW91cnNlbGYsIHVzZSAtMSI7CiAgICAgICAgICAgIGRpZWZ1bmMgIiRGVU5DTkFNRSIgIiRM
SU5FTk8iICIkPyIgIlBhc3MgJy0xJyBhcyB0aGUgc2hlbGwgcGFyYW1ldGVyIjsKICAgICAgICBm
aTsKICAgIGVsc2UKICAgICAgICBmb3Igc2hlbGwgaW4gL3NiaW4vbm9sb2dpbiAvdXNyL3NiaW4v
bm9sb2dpbiAvYmluL2ZhbHNlIC91c3IvYmluL2ZhbHNlIC9kZXYvbnVsbDsKICAgICAgICBkbwog
ICAgICAgICAgICBbWyAteCAke1JPT1R9JHtzaGVsbH0gXV0gJiYgYnJlYWs7CiAgICAgICAgZG9u
ZTsKICAgICAgICBpZiBbWyAke3NoZWxsfSA9PSAiL2Rldi9udWxsIiBdXTsgdGhlbgogICAgICAg
ICAgICBlZXJyb3IgIlVuYWJsZSB0byBpZGVudGlmeSB0aGUgc2hlbGwgdG8gdXNlLCBwcm9jZWVk
aW5nIHdpdGggdXNlcmxhbmQgZGVmYXVsdC4iOwogICAgICAgICAgICBjYXNlICR7VVNFUkxBTkR9
IGluIAogICAgICAgICAgICAgICAgR05VKQogICAgICAgICAgICAgICAgICAgIHNoZWxsPSIvYmlu
L2ZhbHNlIgogICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgIEJTRCkKICAgICAgICAg
ICAgICAgICAgICBzaGVsbD0iL3NiaW4vbm9sb2dpbiIKICAgICAgICAgICAgICAgIDs7CiAgICAg
ICAgICAgICAgICBEYXJ3aW4pCiAgICAgICAgICAgICAgICAgICAgc2hlbGw9Ii91c3Ivc2Jpbi9u
b2xvZ2luIgogICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICopCiAgICAgICAgICAg
ICAgICAgICAgZGllZnVuYyAiJEZVTkNOQU1FIiAiJExJTkVOTyIgIiQ/IiAiVW5hYmxlIHRvIGlk
ZW50aWZ5IHRoZSBkZWZhdWx0IHNoZWxsIGZvciB1c2VybGFuZCAke1VTRVJMQU5EfSIKICAgICAg
ICAgICAgICAgIDs7CiAgICAgICAgICAgIGVzYWM7CiAgICAgICAgZmk7CiAgICAgICAgZXNoZWxs
PSR7c2hlbGx9OwogICAgZmk7CiAgICBlaW5mbyAiIC0gU2hlbGw6ICR7ZXNoZWxsfSI7CiAgICBv
cHRzPSIke29wdHN9IC1zICR7ZXNoZWxsfSI7CiAgICBsb2NhbCBlaG9tZT0kMTsKICAgIHNoaWZ0
OwogICAgaWYgW1sgLXogJHtlaG9tZX0gXV0gfHwgW1sgJHtlaG9tZX0gPT0gIi0xIiBdXTsgdGhl
bgogICAgICAgIGVob21lPSIvZGV2L251bGwiOwogICAgZmk7CiAgICBlaW5mbyAiIC0gSG9tZTog
JHtlaG9tZX0iOwogICAgb3B0cz0iJHtvcHRzfSAtZCAke2Vob21lfSI7CiAgICBsb2NhbCBlZ3Jv
dXBzPSQxOwogICAgc2hpZnQ7CiAgICBpZiBbWyAhIC16ICR7ZWdyb3Vwc30gXV07IHRoZW4KICAg
ICAgICBsb2NhbCBvbGRpZnM9JHtJRlN9OwogICAgICAgIGxvY2FsIGRlZmdyb3VwPSIiIGV4Z3Jv
dXBzPSIiOwogICAgICAgIGV4cG9ydCBJRlM9IiwiOwogICAgICAgIGZvciBnIGluICR7ZWdyb3Vw
c307CiAgICAgICAgZG8KICAgICAgICAgICAgZXhwb3J0IElGUz0ke29sZGlmc307CiAgICAgICAg
ICAgIGlmIFtbIC16ICQoZWdldGVudCBncm91cCAiJHtnfSIpIF1dOyB0aGVuCiAgICAgICAgICAg
ICAgICBlZXJyb3IgIllvdSBtdXN0IGFkZCBncm91cCAke2d9IHRvIHRoZSBzeXN0ZW0gZmlyc3Qi
OwogICAgICAgICAgICAgICAgZGllZnVuYyAiJEZVTkNOQU1FIiAiJExJTkVOTyIgIiQ/IiAiJHtn
fSBpcyBub3QgYSB2YWxpZCBHSUQiOwogICAgICAgICAgICBmaTsKICAgICAgICAgICAgaWYgW1sg
LXogJHtkZWZncm91cH0gXV07IHRoZW4KICAgICAgICAgICAgICAgIGRlZmdyb3VwPSR7Z307CiAg
ICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIGV4Z3JvdXBzPSIke2V4Z3JvdXBzfSwke2d9
IjsKICAgICAgICAgICAgZmk7CiAgICAgICAgICAgIGV4cG9ydCBJRlM9IiwiOwogICAgICAgIGRv
bmU7CiAgICAgICAgZXhwb3J0IElGUz0ke29sZGlmc307CiAgICAgICAgb3B0cz0iJHtvcHRzfSAt
ZyAke2RlZmdyb3VwfSI7CiAgICAgICAgaWYgW1sgISAteiAke2V4Z3JvdXBzfSBdXTsgdGhlbgog
ICAgICAgICAgICBvcHRzPSIke29wdHN9IC1HICR7ZXhncm91cHM6MX0iOwogICAgICAgIGZpOwog
ICAgZWxzZQogICAgICAgIGVncm91cHM9Iihub25lKSI7CiAgICBmaTsKICAgIGVpbmZvICIgLSBH
cm91cHM6ICR7ZWdyb3Vwc30iOwogICAgbG9jYWwgb2xkc2FuZGJveD0ke1NBTkRCT1hfT059Owog
ICAgZXhwb3J0IFNBTkRCT1hfT049IjAiOwogICAgY2FzZSAke0NIT1NUfSBpbiAKICAgICAgICAq
LWRhcndpbiopCiAgICAgICAgICAgIGlmIFtbIC16ICRAIF1dOyB0aGVuCiAgICAgICAgICAgICAg
ICBkc2NsIC4gY3JlYXRlIC91c2Vycy8ke2V1c2VyfSB1aWQgJHtldWlkfTsKICAgICAgICAgICAg
ICAgIGRzY2wgLiBjcmVhdGUgL3VzZXJzLyR7ZXVzZXJ9IHNoZWxsICR7ZXNoZWxsfTsKICAgICAg
ICAgICAgICAgIGRzY2wgLiBjcmVhdGUgL3VzZXJzLyR7ZXVzZXJ9IGhvbWUgJHtlaG9tZX07CiAg
ICAgICAgICAgICAgICBkc2NsIC4gY3JlYXRlIC91c2Vycy8ke2V1c2VyfSByZWFsbmFtZSAiYWRk
ZWQgYnkgcG9ydGFnZSBmb3IgJHtQTn0iOwogICAgICAgICAgICAgICAgbG9jYWwgb2xkaWZzPSR7
SUZTfTsKICAgICAgICAgICAgICAgIGV4cG9ydCBJRlM9IiwiOwogICAgICAgICAgICAgICAgZm9y
IGcgaW4gJHtlZ3JvdXBzfTsKICAgICAgICAgICAgICAgIGRvCiAgICAgICAgICAgICAgICAgICAg
ZHNjbCAuIG1lcmdlIC9ncm91cHMvJHtnfSB1c2VycyAke2V1c2VyfTsKICAgICAgICAgICAgICAg
IGRvbmU7CiAgICAgICAgICAgICAgICBleHBvcnQgSUZTPSR7b2xkaWZzfTsKICAgICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgICAgZWluZm8gIkV4dHJhIG9wdGlvbnMgYXJlIG5vdCBzdXBwb3J0
ZWQgb24gRGFyd2luIHlldCI7CiAgICAgICAgICAgICAgICBlaW5mbyAiUGxlYXNlIHJlcG9ydCB0
aGUgZWJ1aWxkIGFsb25nIHdpdGggdGhlIGluZm8gYmVsb3ciOwogICAgICAgICAgICAgICAgZWlu
Zm8gImVleHRyYTogJEAiOwogICAgICAgICAgICAgICAgZGllZnVuYyAiJEZVTkNOQU1FIiAiJExJ
TkVOTyIgIiQ/IiAiUmVxdWlyZWQgZnVuY3Rpb24gbWlzc2luZyI7CiAgICAgICAgICAgIGZpCiAg
ICAgICAgOzsKICAgICAgICAqLWZyZWVic2QqIHwgKi1kcmFnb25mbHkqKQogICAgICAgICAgICBp
ZiBbWyAteiAkQCBdXTsgdGhlbgogICAgICAgICAgICAgICAgcHcgdXNlcmFkZCAke2V1c2VyfSAk
e29wdHN9IC1jICJhZGRlZCBieSBwb3J0YWdlIGZvciAke1BOfSIgZGllICJlbmV3dXNlciBmYWls
ZWQiOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBlaW5mbyAiIC0gRXh0cmE6ICRA
IjsKICAgICAgICAgICAgICAgIHB3IHVzZXJhZGQgJHtldXNlcn0gJHtvcHRzfSAiJEAiIHx8IGRp
ZWZ1bmMgIiRGVU5DTkFNRSIgIiRMSU5FTk8iICIkPyIgImVuZXd1c2VyIGZhaWxlZCI7CiAgICAg
ICAgICAgIGZpCiAgICAgICAgOzsKICAgICAgICAqLW5ldGJzZCopCiAgICAgICAgICAgIGlmIFtb
IC16ICRAIF1dOyB0aGVuCiAgICAgICAgICAgICAgICB1c2VyYWRkICR7b3B0c30gJHtldXNlcn0g
fHwgZGllZnVuYyAiJEZVTkNOQU1FIiAiJExJTkVOTyIgIiQ/IiAiZW5ld3VzZXIgZmFpbGVkIjsK
ICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgZWluZm8gIiAtIEV4dHJhOiAkQCI7CiAg
ICAgICAgICAgICAgICB1c2VyYWRkICR7b3B0c30gJHtldXNlcn0gIiRAIiB8fCBkaWVmdW5jICIk
RlVOQ05BTUUiICIkTElORU5PIiAiJD8iICJlbmV3dXNlciBmYWlsZWQiOwogICAgICAgICAgICBm
aQogICAgICAgIDs7CiAgICAgICAgKi1vcGVuYnNkKikKICAgICAgICAgICAgaWYgW1sgLXogJEAg
XV07IHRoZW4KICAgICAgICAgICAgICAgIHVzZXJhZGQgLXUgJHtldWlkfSAtcyAke2VzaGVsbH0g
LWQgJHtlaG9tZX0gLWMgIkFkZGVkIGJ5IHBvcnRhZ2UgZm9yICR7UE59IiAtZyAke2Vncm91cHN9
ICR7ZXVzZXJ9IHx8IGRpZWZ1bmMgIiRGVU5DTkFNRSIgIiRMSU5FTk8iICIkPyIgImVuZXd1c2Vy
IGZhaWxlZCI7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIGVpbmZvICIgLSBFeHRy
YTogJEAiOwogICAgICAgICAgICAgICAgdXNlcmFkZCAtdSAke2V1aWR9IC1zICR7ZXNoZWxsfSAt
ZCAke2Vob21lfSAtYyAiQWRkZWQgYnkgcG9ydGFnZSBmb3IgJHtQTn0iIC1nICR7ZWdyb3Vwc30g
JHtldXNlcn0gIiRAIiB8fCBkaWVmdW5jICIkRlVOQ05BTUUiICIkTElORU5PIiAiJD8iICJlbmV3
dXNlciBmYWlsZWQiOwogICAgICAgICAgICBmaQogICAgICAgIDs7CiAgICAgICAgKikKICAgICAg
ICAgICAgaWYgW1sgLXogJEAgXV07IHRoZW4KICAgICAgICAgICAgICAgIHVzZXJhZGQgJHtvcHRz
fSAke2V1c2VyfSAtYyAiYWRkZWQgYnkgcG9ydGFnZSBmb3IgJHtQTn0iIHx8IGRpZWZ1bmMgIiRG
VU5DTkFNRSIgIiRMSU5FTk8iICIkPyIgImVuZXd1c2VyIGZhaWxlZCI7CiAgICAgICAgICAgIGVs
c2UKICAgICAgICAgICAgICAgIGVpbmZvICIgLSBFeHRyYTogJEAiOwogICAgICAgICAgICAgICAg
dXNlcmFkZCAke29wdHN9ICR7ZXVzZXJ9ICIkQCIgfHwgZGllZnVuYyAiJEZVTkNOQU1FIiAiJExJ
TkVOTyIgIiQ/IiAiZW5ld3VzZXIgZmFpbGVkIjsKICAgICAgICAgICAgZmkKICAgICAgICA7Owog
ICAgZXNhYzsKICAgIGlmIFtbICEgLWUgJHtST09UfS8ke2Vob21lfSBdXTsgdGhlbgogICAgICAg
IGVpbmZvICIgLSBDcmVhdGluZyAke2Vob21lfSBpbiAke1JPT1R9IjsKICAgICAgICBta2RpciAt
cCAiJHtST09UfS8ke2Vob21lfSI7CiAgICAgICAgY2hvd24gJHtldXNlcn0gIiR7Uk9PVH0vJHtl
aG9tZX0iOwogICAgICAgIGNobW9kIDc1NSAiJHtST09UfS8ke2Vob21lfSI7CiAgICBmaTsKICAg
IGV4cG9ydCBTQU5EQk9YX09OPSR7b2xkc2FuZGJveH0KfQplcGF0Y2ggKCkgCnsgCiAgICBmdW5j
dGlvbiBfZXBhdGNoX2RyYXdfbGluZSAoKSAKICAgIHsgCiAgICAgICAgW1sgLXogJDEgXV0gJiYg
c2V0ICIkKHByaW50ZiAiJTY1cyIgJycpIjsKICAgICAgICBlY2hvICIkezEvLz8vPX0iCiAgICB9
OwogICAgZnVuY3Rpb24gX2VwYXRjaF9hc3NlcnQgKCkgCiAgICB7IAogICAgICAgIGxvY2FsIF9w
aXBlc3RhdHVzPSR7UElQRVNUQVRVU1sqXX07CiAgICAgICAgW1sgJHtfcGlwZXN0YXR1cy8vIC99
IC1lcSAwIF1dCiAgICB9OwogICAgbG9jYWwgUElQRV9DTUQ9IiI7CiAgICBsb2NhbCBTVERFUlJf
VEFSR0VUPSIke1R9LyQkLm91dCI7CiAgICBsb2NhbCBQQVRDSF9UQVJHRVQ9IiR7VH0vJCQucGF0
Y2giOwogICAgbG9jYWwgUEFUQ0hfU1VGRklYPSIiOwogICAgbG9jYWwgU0lOR0xFX1BBVENIPSJu
byI7CiAgICBsb2NhbCB4PSIiOwogICAgdW5zZXQgUDRDT05GSUcgUDRQT1JUIFA0VVNFUjsKICAg
IGlmIFsgIiQjIiAtZ3QgMSBdOyB0aGVuCiAgICAgICAgbG9jYWwgbT0iIjsKICAgICAgICBmb3Ig
bSBpbiAiJEAiOwogICAgICAgIGRvCiAgICAgICAgICAgIGVwYXRjaCAiJHttfSI7CiAgICAgICAg
ZG9uZTsKICAgICAgICByZXR1cm4gMDsKICAgIGZpOwogICAgaWYgWyAtbiAiJDEiIC1hIC1mICIk
MSIgXTsgdGhlbgogICAgICAgIFNJTkdMRV9QQVRDSD0ieWVzIjsKICAgICAgICBsb2NhbCBFUEFU
Q0hfU09VUkNFPSIkMSI7CiAgICAgICAgbG9jYWwgRVBBVENIX1NVRkZJWD0iJHsxIyMqXC59IjsK
ICAgIGVsc2UKICAgICAgICBpZiBbIC1uICIkMSIgLWEgLWQgIiQxIiBdOyB0aGVuCiAgICAgICAg
ICAgIGlmIFsgIiR7RVBBVENIX0ZPUkNFfSIgPSAieWVzIiBdICYmIFsgLXogIiR7RVBBVENIX1NV
RkZJWH0iIF07IHRoZW4KICAgICAgICAgICAgICAgIGxvY2FsIEVQQVRDSF9TT1VSQ0U9IiQxLyoi
OwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBsb2NhbCBFUEFUQ0hfU09VUkNFPSIk
MS8qLiR7RVBBVENIX1NVRkZJWH0iOwogICAgICAgICAgICBmaTsKICAgICAgICBlbHNlCiAgICAg
ICAgICAgIGlmIFsgISAtZCAke0VQQVRDSF9TT1VSQ0V9IF0gfHwgWyAtbiAiJDEiIF07IHRoZW4K
ICAgICAgICAgICAgICAgIGlmIFsgLW4gIiQxIiAtYSAiJHtFUEFUQ0hfU09VUkNFfSIgPSAiJHtX
T1JLRElSfS9wYXRjaCIgXTsgdGhlbgogICAgICAgICAgICAgICAgICAgIEVQQVRDSF9TT1VSQ0U9
IiQxIjsKICAgICAgICAgICAgICAgIGZpOwogICAgICAgICAgICAgICAgZWNobzsKICAgICAgICAg
ICAgICAgIGVlcnJvciAiQ2Fubm90IGZpbmQgXCRFUEFUQ0hfU09VUkNFISAgVmFsdWUgZm9yIFwk
RVBBVENIX1NPVVJDRSBpczoiOwogICAgICAgICAgICAgICAgZWVycm9yOwogICAgICAgICAgICAg
ICAgZWVycm9yICIgICR7RVBBVENIX1NPVVJDRX0iOwogICAgICAgICAgICAgICAgZWVycm9yICIg
ICggJHtFUEFUQ0hfU09VUkNFIyMqL30gKSI7CiAgICAgICAgICAgICAgICBlY2hvOwogICAgICAg
ICAgICAgICAgZGllZnVuYyAiJEZVTkNOQU1FIiAiJExJTkVOTyIgIiQ/IiAiQ2Fubm90IGZpbmQg
XCRFUEFUQ0hfU09VUkNFISI7CiAgICAgICAgICAgIGZpOwogICAgICAgICAgICBsb2NhbCBFUEFU
Q0hfU09VUkNFPSIke0VQQVRDSF9TT1VSQ0V9LyouJHtFUEFUQ0hfU1VGRklYfSI7CiAgICAgICAg
Zmk7CiAgICBmaTsKICAgIGNhc2UgJHtFUEFUQ0hfU1VGRklYIyMqXC59IGluIAogICAgICAgIGJ6
MikKICAgICAgICAgICAgUElQRV9DTUQ9ImJ6aXAyIC1kYyI7CiAgICAgICAgICAgIFBBVENIX1NV
RkZJWD0iYnoyIgogICAgICAgIDs7CiAgICAgICAgZ3ogfCBaIHwgeikKICAgICAgICAgICAgUElQ
RV9DTUQ9Imd6aXAgLWRjIjsKICAgICAgICAgICAgUEFUQ0hfU1VGRklYPSJneiIKICAgICAgICA7
OwogICAgICAgIFpJUCB8IHppcCkKICAgICAgICAgICAgUElQRV9DTUQ9InVuemlwIC1wIjsKICAg
ICAgICAgICAgUEFUQ0hfU1VGRklYPSJ6aXAiCiAgICAgICAgOzsKICAgICAgICAqKQogICAgICAg
ICAgICBQSVBFX0NNRD0iY2F0IjsKICAgICAgICAgICAgUEFUQ0hfU1VGRklYPSJwYXRjaCIKICAg
ICAgICA7OwogICAgZXNhYzsKICAgIGlmIFsgIiR7U0lOR0xFX1BBVENIfSIgPSAibm8iIF07IHRo
ZW4KICAgICAgICBlaW5mbyAiJHtFUEFUQ0hfTVVMVElfTVNHfSI7CiAgICBmaTsKICAgIGZvciB4
IGluICR7RVBBVENIX1NPVVJDRX07CiAgICBkbwogICAgICAgIGlmIFsgLWYgJHt4fSBdICYmICgg
WyAiJHtTSU5HTEVfUEFUQ0h9IiA9ICJ5ZXMiIC1vICIke3gvX2FsbF99IiAhPSAiJHt4fSIgLW8g
IiR7eC9fJHtBUkNIfV99IiAhPSAiJHt4fSIgXSB8fCBbICIke0VQQVRDSF9GT1JDRX0iID0gInll
cyIgXSApOyB0aGVuCiAgICAgICAgICAgIGxvY2FsIGNvdW50PTA7CiAgICAgICAgICAgIGxvY2Fs
IHBvcHRzPSIke0VQQVRDSF9PUFRTfSI7CiAgICAgICAgICAgIGxvY2FsIHBhdGNobmFtZT0ke3gj
IyovfTsKICAgICAgICAgICAgaWYgWyAtbiAiJHtFUEFUQ0hfRVhDTFVERX0iIF07IHRoZW4KICAg
ICAgICAgICAgICAgIGlmIFsgIiR7RVBBVENIX0VYQ0xVREUvJHtwYXRjaG5hbWV9fSIgIT0gIiR7
RVBBVENIX0VYQ0xVREV9IiBdOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgZmk7CiAgICAgICAgICAgIGlmIFsgIiR7U0lO
R0xFX1BBVENIfSIgPSAieWVzIiBdOyB0aGVuCiAgICAgICAgICAgICAgICBpZiBbIC1uICIke0VQ
QVRDSF9TSU5HTEVfTVNHfSIgXTsgdGhlbgogICAgICAgICAgICAgICAgICAgIGVpbmZvICIke0VQ
QVRDSF9TSU5HTEVfTVNHfSI7CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAg
ICAgZWluZm8gIkFwcGx5aW5nICR7cGF0Y2huYW1lfSAuLi4iOwogICAgICAgICAgICAgICAgZmk7
CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIGVpbmZvICIgICR7cGF0Y2huYW1lfSAu
Li4iOwogICAgICAgICAgICBmaTsKICAgICAgICAgICAgZWNobyAiKioqKiogJHtwYXRjaG5hbWV9
ICoqKioqIiA+ICR7U1RERVJSX1RBUkdFVCUvKn0vJHtwYXRjaG5hbWV9LSR7U1RERVJSX1RBUkdF
VCMjKi99OwogICAgICAgICAgICBlY2hvID4+ICR7U1RERVJSX1RBUkdFVCUvKn0vJHtwYXRjaG5h
bWV9LSR7U1RERVJSX1RBUkdFVCMjKi99OwogICAgICAgICAgICB3aGlsZSBbICIke2NvdW50fSIg
LWx0IDUgXTsgZG8KICAgICAgICAgICAgICAgIF9lcGF0Y2hfZHJhd19saW5lICIqKioqKiAke3Bh
dGNobmFtZX0gKioqKioiID4+ICR7U1RERVJSX1RBUkdFVCUvKn0vJHtwYXRjaG5hbWV9LSR7U1RE
RVJSX1RBUkdFVCMjKi99OwogICAgICAgICAgICAgICAgZWNobyA+PiAke1NUREVSUl9UQVJHRVQl
Lyp9LyR7cGF0Y2huYW1lfS0ke1NUREVSUl9UQVJHRVQjIyovfTsKICAgICAgICAgICAgICAgIGlm
IFsgIiR7UEFUQ0hfU1VGRklYfSIgIT0gInBhdGNoIiBdOyB0aGVuCiAgICAgICAgICAgICAgICAg
ICAgZWNobyAtbiAiUElQRV9DT01NQU5EOgkiID4+ICR7U1RERVJSX1RBUkdFVCUvKn0vJHtwYXRj
aG5hbWV9LSR7U1RERVJSX1RBUkdFVCMjKi99OwogICAgICAgICAgICAgICAgICAgIGVjaG8gIiR7
UElQRV9DTUR9ICR7eH0gPiAke1BBVENIX1RBUkdFVH0iID4+ICR7U1RERVJSX1RBUkdFVCUvKn0v
JHtwYXRjaG5hbWV9LSR7U1RERVJSX1RBUkdFVCMjKi99OwogICAgICAgICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgICAgICAgIFBBVENIX1RBUkdFVD0iJHt4fSI7CiAgICAgICAgICAgICAgICBm
aTsKICAgICAgICAgICAgICAgIGVjaG8gLW4gIlBBVENIIENPTU1BTkQ6CSAiID4+ICR7U1RERVJS
X1RBUkdFVCUvKn0vJHtwYXRjaG5hbWV9LSR7U1RERVJSX1RBUkdFVCMjKi99OwogICAgICAgICAg
ICAgICAgZWNobyAicGF0Y2ggLXAke2NvdW50fSAke3BvcHRzfSA8ICR7UEFUQ0hfVEFSR0VUfSIg
Pj4gJHtTVERFUlJfVEFSR0VUJS8qfS8ke3BhdGNobmFtZX0tJHtTVERFUlJfVEFSR0VUIyMqL307
CiAgICAgICAgICAgICAgICBlY2hvID4+ICR7U1RERVJSX1RBUkdFVCUvKn0vJHtwYXRjaG5hbWV9
LSR7U1RERVJSX1RBUkdFVCMjKi99OwogICAgICAgICAgICAgICAgX2VwYXRjaF9kcmF3X2xpbmUg
IioqKioqICR7cGF0Y2huYW1lfSAqKioqKiIgPj4gJHtTVERFUlJfVEFSR0VUJS8qfS8ke3BhdGNo
bmFtZX0tJHtTVERFUlJfVEFSR0VUIyMqL307CiAgICAgICAgICAgICAgICBpZiBbICIke1BBVENI
X1NVRkZJWH0iICE9ICJwYXRjaCIgXTsgdGhlbgogICAgICAgICAgICAgICAgICAgIGlmICEgKCAk
e1BJUEVfQ01EfSAke3h9ID4gJHtQQVRDSF9UQVJHRVR9ICkgPj4gJHtTVERFUlJfVEFSR0VUJS8q
fS8ke3BhdGNobmFtZX0tJHtTVERFUlJfVEFSR0VUIyMqL30gMj4mMTsgdGhlbgogICAgICAgICAg
ICAgICAgICAgICAgICBlY2hvOwogICAgICAgICAgICAgICAgICAgICAgICBlZXJyb3IgIkNvdWxk
IG5vdCBleHRyYWN0IHBhdGNoISI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50PTU7CiAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGZpOwogICAg
ICAgICAgICAgICAgZmk7CiAgICAgICAgICAgICAgICBpZiAoIGNhdCAke1BBVENIX1RBUkdFVH0g
fCBwYXRjaCAtcCR7Y291bnR9ICR7cG9wdHN9IC0tZHJ5LXJ1biAtZjsKICAgICAgICAgICAgICAg
IF9lcGF0Y2hfYXNzZXJ0ICkgPj4gJHtTVERFUlJfVEFSR0VUJS8qfS8ke3BhdGNobmFtZX0tJHtT
VERFUlJfVEFSR0VUIyMqL30gMj4mMTsgdGhlbgogICAgICAgICAgICAgICAgICAgIF9lcGF0Y2hf
ZHJhd19saW5lICIqKioqKiAke3BhdGNobmFtZX0gKioqKioiID4gJHtTVERFUlJfVEFSR0VUJS8q
fS8ke3BhdGNobmFtZX0tJHtTVERFUlJfVEFSR0VUIyMqL30ucmVhbDsKICAgICAgICAgICAgICAg
ICAgICBlY2hvID4+ICR7U1RERVJSX1RBUkdFVCUvKn0vJHtwYXRjaG5hbWV9LSR7U1RERVJSX1RB
UkdFVCMjKi99LnJlYWw7CiAgICAgICAgICAgICAgICAgICAgZWNobyAiQUNUVUFMTFkgQVBQTFlJ
TkcgJHtwYXRjaG5hbWV9IC4uLiIgPj4gJHtTVERFUlJfVEFSR0VUJS8qfS8ke3BhdGNobmFtZX0t
JHtTVERFUlJfVEFSR0VUIyMqL30ucmVhbDsKICAgICAgICAgICAgICAgICAgICBlY2hvID4+ICR7
U1RERVJSX1RBUkdFVCUvKn0vJHtwYXRjaG5hbWV9LSR7U1RERVJSX1RBUkdFVCMjKi99LnJlYWw7
CiAgICAgICAgICAgICAgICAgICAgX2VwYXRjaF9kcmF3X2xpbmUgIioqKioqICR7cGF0Y2huYW1l
fSAqKioqKiIgPj4gJHtTVERFUlJfVEFSR0VUJS8qfS8ke3BhdGNobmFtZX0tJHtTVERFUlJfVEFS
R0VUIyMqL30ucmVhbDsKICAgICAgICAgICAgICAgICAgICBjYXQgJHtQQVRDSF9UQVJHRVR9IHwg
cGF0Y2ggLXAke2NvdW50fSAke3BvcHRzfSA+PiAke1NUREVSUl9UQVJHRVQlLyp9LyR7cGF0Y2hu
YW1lfS0ke1NUREVSUl9UQVJHRVQjIyovfS5yZWFsIDI+JjE7CiAgICAgICAgICAgICAgICAgICAg
X2VwYXRjaF9hc3NlcnQ7CiAgICAgICAgICAgICAgICAgICAgaWYgWyAiJD8iIC1uZSAwIF07IHRo
ZW4KICAgICAgICAgICAgICAgICAgICAgICAgY2F0ICR7U1RERVJSX1RBUkdFVCUvKn0vJHtwYXRj
aG5hbWV9LSR7U1RERVJSX1RBUkdFVCMjKi99LnJlYWwgPj4gJHtTVERFUlJfVEFSR0VUJS8qfS8k
e3BhdGNobmFtZX0tJHtTVERFUlJfVEFSR0VUIyMqL307CiAgICAgICAgICAgICAgICAgICAgICAg
IGVjaG87CiAgICAgICAgICAgICAgICAgICAgICAgIGVlcnJvciAiQSBkcnktcnVuIG9mIHBhdGNo
IGNvbW1hbmQgc3VjY2VlZGVkLCBidXQgYWN0dWFsbHkiOwogICAgICAgICAgICAgICAgICAgICAg
ICBlZXJyb3IgImFwcGx5aW5nIHRoZSBwYXRjaCBmYWlsZWQhIjsKICAgICAgICAgICAgICAgICAg
ICAgICAgY291bnQ9NTsKICAgICAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgICAgICAg
ICBybSAtZiAke1NUREVSUl9UQVJHRVQlLyp9LyR7cGF0Y2huYW1lfS0ke1NUREVSUl9UQVJHRVQj
IyovfS5yZWFsOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgZmk7
CiAgICAgICAgICAgICAgICBjb3VudD0kKChjb3VudCArIDEpKTsKICAgICAgICAgICAgZG9uZTsK
ICAgICAgICAgICAgaWYgWyAiJHtQQVRDSF9TVUZGSVh9IiAhPSAicGF0Y2giIF07IHRoZW4KICAg
ICAgICAgICAgICAgIHJtIC1mICR7UEFUQ0hfVEFSR0VUfTsKICAgICAgICAgICAgZmk7CiAgICAg
ICAgICAgIGlmIFsgIiR7Y291bnR9IiAtZXEgNSBdOyB0aGVuCiAgICAgICAgICAgICAgICBlY2hv
OwogICAgICAgICAgICAgICAgZWVycm9yICJGYWlsZWQgUGF0Y2g6ICR7cGF0Y2huYW1lfSAhIjsK
ICAgICAgICAgICAgICAgIGVlcnJvciAiICggJHtQQVRDSF9UQVJHRVR9ICkiOwogICAgICAgICAg
ICAgICAgZWVycm9yOwogICAgICAgICAgICAgICAgZWVycm9yICJJbmNsdWRlIGluIHlvdXIgYnVn
cmVwb3J0IHRoZSBjb250ZW50cyBvZjoiOwogICAgICAgICAgICAgICAgZWVycm9yOwogICAgICAg
ICAgICAgICAgZWVycm9yICIgICR7U1RERVJSX1RBUkdFVCUvKn0vJHtwYXRjaG5hbWV9LSR7U1RE
RVJSX1RBUkdFVCMjKi99IjsKICAgICAgICAgICAgICAgIGVjaG87CiAgICAgICAgICAgICAgICBk
aWVmdW5jICIkRlVOQ05BTUUiICIkTElORU5PIiAiJD8iICJGYWlsZWQgUGF0Y2g6ICR7cGF0Y2hu
YW1lfSEiOwogICAgICAgICAgICBmaTsKICAgICAgICAgICAgcm0gLWYgJHtTVERFUlJfVEFSR0VU
JS8qfS8ke3BhdGNobmFtZX0tJHtTVERFUlJfVEFSR0VUIyMqL307CiAgICAgICAgICAgIGVlbmQg
MDsKICAgICAgICBmaTsKICAgIGRvbmU7CiAgICBpZiBbICIke1NJTkdMRV9QQVRDSH0iID0gIm5v
IiBdOyB0aGVuCiAgICAgICAgZWluZm8gIkRvbmUgd2l0aCBwYXRjaGluZyI7CiAgICBmaQp9CmVw
YXVzZSAoKSAKeyAKICAgIFtbIC16ICR7RVBBVVNFX0lHTk9SRX0gXV0gJiYgc2xlZXAgJHsxOi01
fQp9CmVwdW50X2N4eCAoKSAKeyAKICAgIGxvY2FsIGRpcj0kMTsKICAgIFtbIC16ICR7ZGlyfSBd
XSAmJiBkaXI9JHtTfTsKICAgIGViZWdpbiAiUmVtb3ZpbmcgdXNlbGVzcyBDKysgY2hlY2tzIjsK
ICAgIGxvY2FsIGY7CiAgICBmb3IgZiBpbiAkKGZpbmQgJHtkaXJ9IC1uYW1lIGNvbmZpZ3VyZSk7
CiAgICBkbwogICAgICAgIHBhdGNoIC1wMCAiJHtmfSIgIiR7UE9SVERJUn0vZWNsYXNzL0VMVC1w
YXRjaGVzL25vY3h4L25vY3h4LnBhdGNoIiA+IC9kZXYvbnVsbDsKICAgIGRvbmU7CiAgICBlZW5k
IDAKfQpmaW5kX3VucGFja2FibGVfZmlsZSAoKSAKeyAKICAgIGxvY2FsIHNyYz0kMTsKICAgIGlm
IFtbIC16ICR7c3JjfSBdXTsgdGhlbgogICAgICAgIHNyYz0ke0RJU1RESVJ9LyR7QX07CiAgICBl
bHNlCiAgICAgICAgaWYgW1sgLWUgJHtESVNURElSfS8ke3NyY30gXV07IHRoZW4KICAgICAgICAg
ICAgc3JjPSR7RElTVERJUn0vJHtzcmN9OwogICAgICAgIGVsc2UKICAgICAgICAgICAgaWYgW1sg
LWUgJHtQV0R9LyR7c3JjfSBdXTsgdGhlbgogICAgICAgICAgICAgICAgc3JjPSR7UFdEfS8ke3Ny
Y307CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIGlmIFtbIC1lICR7c3JjfSBdXTsg
dGhlbgogICAgICAgICAgICAgICAgICAgIHNyYz0ke3NyY307CiAgICAgICAgICAgICAgICBmaTsK
ICAgICAgICAgICAgZmk7CiAgICAgICAgZmk7CiAgICBmaTsKICAgIFtbICEgLWUgJHtzcmN9IF1d
ICYmIHJldHVybiAxOwogICAgZWNobyAiJHtzcmN9Igp9CmZpeGxvY2FscG9kICgpIAp7IAogICAg
cGVybGluZm87CiAgICBpZiBbIC1mICR7RH0ke0FSQ0hfTElCfS9wZXJsbG9jYWwucG9kIF07IHRo
ZW4KICAgICAgICBybSAtZiAke0R9LyR7QVJDSF9MSUJ9L3Blcmxsb2NhbC5wb2Q7CiAgICBmaTsK
ICAgIGlmIFsgLWYgJHtEfSR7U0lURV9MSUJ9L3Blcmxsb2NhbC5wb2QgXTsgdGhlbgogICAgICAg
IHJtIC1mICR7RH0vJHtTSVRFX0xJQn0vcGVybGxvY2FsLnBvZDsKICAgIGZpOwogICAgaWYgWyAt
ZiAke0R9JHtWRU5ET1JfTElCfS9wZXJsbG9jYWwucG9kIF07IHRoZW4KICAgICAgICBybSAtZiAk
e0R9LyR7VkVORE9SX0xJQn0vcGVybGxvY2FsLnBvZDsKICAgIGZpCn0KZ2NjLWZ1bGx2ZXJzaW9u
ICgpIAp7IAogICAgJCh0Yy1nZXRDQyAiJEAiKSAtZHVtcHZlcnNpb24KfQpnY2MtbWFqb3ItdmVy
c2lvbiAoKSAKeyAKICAgIGdjYy12ZXJzaW9uICIkQCIgfCBjdXQgLWYxIC1kLgp9CmdjYy1taWNy
by12ZXJzaW9uICgpIAp7IAogICAgZ2NjLWZ1bGx2ZXJzaW9uICIkQCIgfCBjdXQgLWYzIC1kLiB8
IGN1dCAtZjEgLWQtCn0KZ2NjLW1pbm9yLXZlcnNpb24gKCkgCnsgCiAgICBnY2MtdmVyc2lvbiAi
JEAiIHwgY3V0IC1mMiAtZC4KfQpnY2Mtc3BlY3MtZGlyZWN0aXZlICgpIAp7IAogICAgbG9jYWwg
ZGlyZWN0aXZlIHN1YmRuYW1lIHN1YmRpcmVjdGl2ZTsKICAgIGRpcmVjdGl2ZT0iJChfZ2NjLXNw
ZWNzLWRpcmVjdGl2ZV9yYXcgJDEpIjsKICAgIHdoaWxlIFtbICR7ZGlyZWN0aXZlfSA9PSAqJVwo
KlwpKiBdXTsgZG8KICAgICAgICBzdWJkbmFtZT0ke2RpcmVjdGl2ZS8qJVwofTsKICAgICAgICBz
dWJkbmFtZT0ke3N1YmRuYW1lL1wpKn07CiAgICAgICAgc3ViZGlyZWN0aXZlPSIkKF9nY2Mtc3Bl
Y3MtZGlyZWN0aXZlX3JhdyAke3N1YmRuYW1lfSkiOwogICAgICAgIGRpcmVjdGl2ZT0iJHtkaXJl
Y3RpdmUvL1wlKCR7c3ViZG5hbWV9KS8ke3N1YmRpcmVjdGl2ZX19IjsKICAgIGRvbmU7CiAgICBl
Y2hvICIke2RpcmVjdGl2ZX0iOwogICAgcmV0dXJuIDAKfQpnY2Mtc3BlY3Mtbm93ICgpIAp7IAog
ICAgbG9jYWwgZGlyZWN0aXZlOwogICAgZGlyZWN0aXZlPSQoZ2NjLXNwZWNzLWRpcmVjdGl2ZSBs
aW5rX2NvbW1hbmQpOwogICAgcmV0dXJuICQoW1sgJHtkaXJlY3RpdmUvXHshbm9ub3c6fSAhPSAk
e2RpcmVjdGl2ZX0gXV0pCn0KZ2NjLXNwZWNzLXBpZSAoKSAKeyAKICAgIGxvY2FsIGRpcmVjdGl2
ZTsKICAgIGRpcmVjdGl2ZT0kKGdjYy1zcGVjcy1kaXJlY3RpdmUgY2MxKTsKICAgIHJldHVybiAk
KFtbICR7ZGlyZWN0aXZlL1x7IW5vcGllOn0gIT0gJHtkaXJlY3RpdmV9IF1dKQp9CmdjYy1zcGVj
cy1yZWxybyAoKSAKeyAKICAgIGxvY2FsIGRpcmVjdGl2ZTsKICAgIGRpcmVjdGl2ZT0kKGdjYy1z
cGVjcy1kaXJlY3RpdmUgbGlua19jb21tYW5kKTsKICAgIHJldHVybiAkKFtbICR7ZGlyZWN0aXZl
L1x7IW5vcmVscm86fSAhPSAke2RpcmVjdGl2ZX0gXV0pCn0KZ2NjLXNwZWNzLXNzcCAoKSAKeyAK
ICAgIGxvY2FsIGRpcmVjdGl2ZTsKICAgIGRpcmVjdGl2ZT0kKGdjYy1zcGVjcy1kaXJlY3RpdmUg
Y2MxKTsKICAgIHJldHVybiAkKFtbICR7ZGlyZWN0aXZlL1x7IWZuby1zdGFjay1wcm90ZWN0b3I6
fSAhPSAke2RpcmVjdGl2ZX0gXV0pCn0KZ2NjLXNwZWNzLXNzcC10by1hbGwgKCkgCnsgCiAgICBs
b2NhbCBkaXJlY3RpdmU7CiAgICBkaXJlY3RpdmU9JChnY2Mtc3BlY3MtZGlyZWN0aXZlIGNjMSk7
CiAgICByZXR1cm4gJChbWyAke2RpcmVjdGl2ZS9ceyFmbm8tc3RhY2stcHJvdGVjdG9yLWFsbDp9
ICE9ICR7ZGlyZWN0aXZlfSBdXSkKfQpnY2MtdmVyc2lvbiAoKSAKeyAKICAgIGdjYy1mdWxsdmVy
c2lvbiAiJEAiIHwgY3V0IC1mMSwyIC1kLgp9Cmdlbl91c3JfbGRzY3JpcHQgKCkgCnsgCiAgICBs
b2NhbCBsaWIgbGliZGlyPSQoZ2V0X2xpYmRpcikgb3V0cHV0X2Zvcm1hdD0iIjsKICAgIGRvZGly
IC91c3IvJHtsaWJkaXJ9OwogICAgb3V0cHV0X2Zvcm1hdD0kKCQodGMtZ2V0Q0MpICR7Q0ZMQUdT
fSAke0xERkxBR1N9IC1XbCwtLXZlcmJvc2UgMj4mMSB8IHNlZCAtbiAncy9eT1VUUFVUX0ZPUk1B
VCgiXChbXiJdKlwpIiwuKi9cMS9wJyk7CiAgICBbWyAtbiAke291dHB1dF9mb3JtYXR9IF1dICYm
IG91dHB1dF9mb3JtYXQ9Ik9VVFBVVF9GT1JNQVQgKCAke291dHB1dF9mb3JtYXR9ICkiOwogICAg
Zm9yIGxpYiBpbiAiJEAiOwogICAgZG8KICAgICAgICBpZiBbWyAke1VTRVJMQU5EfSA9PSAiRGFy
d2luIiBdXTsgdGhlbgogICAgICAgICAgICBld2FybiAiTm90IGNyZWF0aW5nIGZha2UgZHluYW1p
YyBsaWJyYXJ5IGZvciAkbGliIG9uIERhcndpbjsiOwogICAgICAgICAgICBld2FybiAibWFraW5n
IGEgc3ltbGluayBpbnN0ZWFkLiI7CiAgICAgICAgICAgIGRvc3ltICIvJHtsaWJkaXJ9LyR7bGli
fSIgIi91c3IvJHtsaWJkaXJ9LyR7bGlifSI7CiAgICAgICAgZWxzZQogICAgICAgICAgICBjYXQg
PiAiJHtEfS91c3IvJHtsaWJkaXJ9LyR7bGlifSIgIDw8LUVORF9MRFNDUklQVAovKiBHTlUgbGQg
c2NyaXB0CiAgIFNpbmNlIEdlbnRvbyBoYXMgY3JpdGljYWwgZHluYW1pYyBsaWJyYXJpZXMKICAg
aW4gL2xpYiwgYW5kIHRoZSBzdGF0aWMgdmVyc2lvbnMgaW4gL3Vzci9saWIsCiAgIHdlIG5lZWQg
dG8gaGF2ZSBhICJmYWtlIiBkeW5hbWljIGxpYiBpbiAvdXNyL2xpYiwKICAgb3RoZXJ3aXNlIHdl
IHJ1biBpbnRvIGxpbmtpbmcgcHJvYmxlbXMuCgogICBTZWUgYnVnIGh0dHA6Ly9idWdzLmdlbnRv
by5vcmcvNDQxMSBmb3IgbW9yZSBpbmZvLgogKi8KJHtvdXRwdXRfZm9ybWF0fQpHUk9VUCAoIC8k
e2xpYmRpcn0vJHtsaWJ9ICkKRU5EX0xEU0NSSVBUCgogICAgICAgIGZpCiAgICAgICAgZnBlcm1z
IGEreCAiL3Vzci8ke2xpYmRpcn0vJHtsaWJ9IiB8fCBkaWVmdW5jICIkRlVOQ05BTUUiICIkTElO
RU5PIiAiJD8iICJjb3VsZCBub3QgY2hhbmdlIHBlcm1zIG9uICR7bGlifSI7CiAgICBkb25lCn0K
Z2V0X2FiaV9BU0ZMQUdTICgpIAp7IAogICAgZ2V0X2FiaV92YXIgQVNGTEFHUyAiJEAiCn0KZ2V0
X2FiaV9DREVGSU5FICgpIAp7IAogICAgZ2V0X2FiaV92YXIgQ0RFRklORSAiJEAiCn0KZ2V0X2Fi
aV9DRkxBR1MgKCkgCnsgCiAgICBnZXRfYWJpX3ZhciBDRkxBR1MgIiRAIgp9CmdldF9hYmlfQ0hP
U1QgKCkgCnsgCiAgICBnZXRfYWJpX3ZhciBDSE9TVCAiJEAiCn0KZ2V0X2FiaV9DVEFSR0VUICgp
IAp7IAogICAgZ2V0X2FiaV92YXIgQ1RBUkdFVCAiJEAiCn0KZ2V0X2FiaV9GQUtFX1RBUkdFVFMg
KCkgCnsgCiAgICBnZXRfYWJpX3ZhciBGQUtFX1RBUkdFVFMgIiRAIgp9CmdldF9hYmlfTERGTEFH
UyAoKSAKeyAKICAgIGdldF9hYmlfdmFyIExERkxBR1MgIiRAIgp9CmdldF9hYmlfTElCRElSICgp
IAp7IAogICAgZ2V0X2FiaV92YXIgTElCRElSICIkQCIKfQpnZXRfYWJpX3ZhciAoKSAKeyAKICAg
IGxvY2FsIGZsYWc9JDE7CiAgICBsb2NhbCBhYmk7CiAgICBpZiBbICQjIC1ndCAxIF07IHRoZW4K
ICAgICAgICBhYmk9JHsyfTsKICAgIGVsc2UKICAgICAgICBpZiBbIC1uICIke0FCSX0iIF07IHRo
ZW4KICAgICAgICAgICAgYWJpPSR7QUJJfTsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGlmIFsg
LW4gIiR7REVGQVVMVF9BQkl9IiBdOyB0aGVuCiAgICAgICAgICAgICAgICBhYmk9JHtERUZBVUxU
X0FCSX07CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIGFiaT0iZGVmYXVsdCI7CiAg
ICAgICAgICAgIGZpOwogICAgICAgIGZpOwogICAgZmk7CiAgICBsb2NhbCB2YXI9IiR7ZmxhZ31f
JHthYml9IjsKICAgIGVjaG8gJHshdmFyfQp9CmdldF9hZnRlcl9tYWpvcl92ZXJzaW9uICgpIAp7
IAogICAgX192ZXJzaW9uYXRvcl9zaG9wdF90b2dnbGUgb247CiAgICBlY2hvICQoZ2V0X3ZlcnNp
b25fY29tcG9uZW50X3JhbmdlIDItICIkezE6LSR7UFZ9fSIgKTsKICAgIF9fdmVyc2lvbmF0b3Jf
c2hvcHRfdG9nZ2xlIG9mZgp9CmdldF9hbGxfYWJpcyAoKSAKeyAKICAgIGxvY2FsIG9yZGVyPSIi
OwogICAgaWYgW1sgLXogJHtNVUxUSUxJQl9BQklTfSBdXTsgdGhlbgogICAgICAgIGVjaG8gImRl
ZmF1bHQiOwogICAgICAgIHJldHVybiAwOwogICAgZmk7CiAgICBmb3IgeCBpbiAke01VTFRJTElC
X0FCSVN9OwogICAgZG8KICAgICAgICBpZiBbWyAke3h9ICE9ICR7REVGQVVMVF9BQkl9IF1dOyB0
aGVuCiAgICAgICAgICAgIG9yZGVyPSIke29yZGVyOiske29yZGVyfSB9JHt4fSI7CiAgICAgICAg
Zmk7CiAgICBkb25lOwogICAgb3JkZXI9IiR7b3JkZXI6KyR7b3JkZXJ9IH0ke0RFRkFVTFRfQUJJ
fSI7CiAgICBlY2hvICR7b3JkZXJ9OwogICAgcmV0dXJuIDAKfQpnZXRfYWxsX2xpYmRpcnMgKCkg
CnsgCiAgICBsb2NhbCBsaWJkaXJzPSJsaWIiOwogICAgbG9jYWwgYWJpOwogICAgbG9jYWwgZGly
OwogICAgZm9yIGFiaSBpbiAke01VTFRJTElCX0FCSVN9OwogICAgZG8KICAgICAgICBbICIkKGdl
dF9hYmlfTElCRElSICR7YWJpfSkiICE9ICJsaWIiIF0gJiYgbGliZGlycz0iJHtsaWJkaXJzfSAk
KGdldF9hYmlfTElCRElSICR7YWJpfSkiOwogICAgZG9uZTsKICAgIGVjaG8gIiR7bGliZGlyc30i
Cn0KZ2V0X2FsbF92ZXJzaW9uX2NvbXBvbmVudHMgKCkgCnsgCiAgICBfX3ZlcnNpb25hdG9yX3No
b3B0X3RvZ2dsZSBvbjsKICAgIGxvY2FsIHZlcl9zdHI9JHsxOi0ke1BWfX0gcmVzdWx0IHJlc3Vs
dF9pZHg9MDsKICAgIHJlc3VsdD0oKTsKICAgIGlmIFtbICIke1ZFUlNJT05BVE9SX0NBQ0hFX1ZF
Ul9TVFJ9IiA9PSAiJHt2ZXJfc3RyfSIgXV07IHRoZW4KICAgICAgICBlY2hvICR7VkVSU0lPTkFU
T1JfQ0FDSEVfUkVTVUxUfTsKICAgICAgICBfX3ZlcnNpb25hdG9yX3Nob3B0X3RvZ2dsZSBvZmY7
CiAgICAgICAgcmV0dXJuOwogICAgZmk7CiAgICBleHBvcnQgVkVSU0lPTkFUT1JfQ0FDSEVfVkVS
X1NUUj0iJHt2ZXJfc3RyfSI7CiAgICB3aGlsZSBbWyAtbiAiJHZlcl9zdHIiIF1dOyBkbwogICAg
ICAgIGNhc2UgIiR7dmVyX3N0cjowOjF9IiBpbiAKICAgICAgICAgICAgW1s6ZGlnaXQ6XV0pCiAg
ICAgICAgICAgICAgICByZXN1bHRbJHJlc3VsdF9pZHhdPSIke3Zlcl9zdHIlJVteWzpkaWdpdDpd
XSp9IjsKICAgICAgICAgICAgICAgIHZlcl9zdHI9IiR7dmVyX3N0ciMjKyhbWzpkaWdpdDpdXSl9
IjsKICAgICAgICAgICAgICAgIHJlc3VsdF9pZHg9JCgoJHJlc3VsdF9pZHggKyAxKSkKICAgICAg
ICAgICAgOzsKICAgICAgICAgICAgWy1fLl0pCiAgICAgICAgICAgICAgICByZXN1bHRbJHJlc3Vs
dF9pZHhdPSIke3Zlcl9zdHI6MDoxfSI7CiAgICAgICAgICAgICAgICB2ZXJfc3RyPSIke3Zlcl9z
dHI6MX0iOwogICAgICAgICAgICAgICAgcmVzdWx0X2lkeD0kKCgkcmVzdWx0X2lkeCArIDEpKQog
ICAgICAgICAgICA7OwogICAgICAgICAgICBbWzphbHBoYTpdXSkKICAgICAgICAgICAgICAgIGxv
Y2FsIG5vdF9tYXRjaD0iJHt2ZXJfc3RyIyMrKFtbOmFscGhhOl1dKSooW1s6ZGlnaXQ6XV0pfSI7
CiAgICAgICAgICAgICAgICByZXN1bHRbJHJlc3VsdF9pZHhdPSR7dmVyX3N0cjowOiQoKCR7I3Zl
cl9zdHJ9IC0gJHsjbm90X21hdGNofSkpfTsKICAgICAgICAgICAgICAgIHZlcl9zdHI9IiR7bm90
X21hdGNofSI7CiAgICAgICAgICAgICAgICByZXN1bHRfaWR4PSQoKCRyZXN1bHRfaWR4ICsgMSkp
CiAgICAgICAgICAgIDs7CiAgICAgICAgICAgICopCiAgICAgICAgICAgICAgICByZXN1bHRbJHJl
c3VsdF9pZHhdPSIke3Zlcl9zdHI6MDoxfSI7CiAgICAgICAgICAgICAgICB2ZXJfc3RyPSIke3Zl
cl9zdHI6MX0iOwogICAgICAgICAgICAgICAgcmVzdWx0X2lkeD0kKCgkcmVzdWx0X2lkeCArIDEp
KQogICAgICAgICAgICA7OwogICAgICAgIGVzYWM7CiAgICBkb25lOwogICAgZXhwb3J0IFZFUlNJ
T05BVE9SX0NBQ0hFX1JFU1VMVD0iJHtyZXN1bHRbQF19IjsKICAgIGVjaG8gJHtyZXN1bHRbQF19
OwogICAgX192ZXJzaW9uYXRvcl9zaG9wdF90b2dnbGUgb2ZmCn0KZ2V0X2JtYWtlICgpIAp7IAog
ICAgaWYgW1sgJHtVU0VSTEFORH0gPT0gKkJTRCBdXTsgdGhlbgogICAgICAgIGVjaG8gbWFrZTsK
ICAgIGVsc2UKICAgICAgICBpZiBbWyAke1VTRVJMQU5EfSA9PSAiRGFyd2luIiBdXTsgdGhlbgog
ICAgICAgICAgICBlY2hvIGJzZG1ha2U7CiAgICAgICAgZWxzZQogICAgICAgICAgICBlY2hvIHBt
YWtlOwogICAgICAgIGZpOwogICAgZmkKfQpnZXRfaW5zdGFsbF9hYmlzICgpIAp7IAogICAgbG9j
YWwgb3JkZXI9IiI7CiAgICBpZiBbWyAteiAke01VTFRJTElCX0FCSVN9IF1dOyB0aGVuCiAgICAg
ICAgZWNobyAiZGVmYXVsdCI7CiAgICAgICAgcmV0dXJuIDA7CiAgICBmaTsKICAgIGlmIFtbICR7
RU1VTFRJTElCX1BLR30gPT0gInRydWUiIF1dOyB0aGVuCiAgICAgICAgZm9yIHggaW4gJHtNVUxU
SUxJQl9BQklTfTsKICAgICAgICBkbwogICAgICAgICAgICBpZiBbWyAke3h9ICE9ICIke0RFRkFV
TFRfQUJJfSIgXV07IHRoZW4KICAgICAgICAgICAgICAgIGhhc3EgJHt4fSAke0FCSV9ERU5ZfSB8
fCBvcmRlcmE9IiR7b3JkZXJhfSAke3h9IjsKICAgICAgICAgICAgZmk7CiAgICAgICAgZG9uZTsK
ICAgICAgICBoYXNxICR7REVGQVVMVF9BQkl9ICR7QUJJX0RFTll9IHx8IG9yZGVyPSIke29yZGVy
YX0gJHtERUZBVUxUX0FCSX0iOwogICAgICAgIGlmIFtbIC1uICR7QUJJX0FMTE9XfSBdXTsgdGhl
bgogICAgICAgICAgICBsb2NhbCBvcmRlcmE9IiI7CiAgICAgICAgICAgIGZvciB4IGluICR7b3Jk
ZXJ9OwogICAgICAgICAgICBkbwogICAgICAgICAgICAgICAgaWYgaGFzcSAke3h9ICR7QUJJX0FM
TE9XfTsgdGhlbgogICAgICAgICAgICAgICAgICAgIG9yZGVyYT0iJHtvcmRlcmF9ICR7eH0iOwog
ICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAgIGRvbmU7CiAgICAgICAgICAgIG9yZGVyPSR7
b3JkZXJhfTsKICAgICAgICBmaTsKICAgIGVsc2UKICAgICAgICBvcmRlcj0ke0RFRkFVTFRfQUJJ
fTsKICAgIGZpOwogICAgaWYgW1sgLXogJHtvcmRlcn0gXV07IHRoZW4KICAgICAgICBkaWVmdW5j
ICIkRlVOQ05BTUUiICIkTElORU5PIiAiJD8iICJUaGUgQUJJIGxpc3QgaXMgZW1wdHkuICBBcmUg
eW91IHVzaW5nIGEgcHJvcGVyIG11bHRpbGliIHByb2ZpbGU/ICBQZXJoYXBzIHlvdXIgVVNFIGZs
YWdzIG9yIE1VTFRJTElCX0FCSVMgYXJlIHRvbyByZXN0cmljdGl2ZSBmb3IgdGhpcyBwYWNrYWdl
LiI7CiAgICBmaTsKICAgIGVjaG8gJHtvcmRlcn07CiAgICByZXR1cm4gMAp9CmdldF9sYXN0X3Zl
cnNpb25fY29tcG9uZW50X2luZGV4ICgpIAp7IAogICAgX192ZXJzaW9uYXRvcl9zaG9wdF90b2dn
bGUgb247CiAgICBlY2hvICQoKCAkKGdldF92ZXJzaW9uX2NvbXBvbmVudF9jb3VudCAiJHsxOi0k
e1BWfX0iICkgLSAxICkpOwogICAgX192ZXJzaW9uYXRvcl9zaG9wdF90b2dnbGUgb2ZmCn0KZ2V0
X2xpYmRpciAoKSAKeyAKICAgIGxvY2FsIENPTkZfTElCRElSOwogICAgaWYgWyAtbiAiJHtDT05G
X0xJQkRJUl9PVkVSUklERX0iIF07IHRoZW4KICAgICAgICBlY2hvICR7Q09ORl9MSUJESVJfT1ZF
UlJJREV9OwogICAgZWxzZQogICAgICAgIGdldF9hYmlfTElCRElSOwogICAgZmkKfQpnZXRfbGli
ZGlyX292ZXJyaWRlICgpIAp7IAogICAgaWYgaGFzX211bHRpbGliX3Byb2ZpbGU7IHRoZW4KICAg
ICAgICBlZXJyb3IgImdldF9saWJkaXJfb3ZlcnJpZGUgY2FsbGVkLCBidXQgaXQgc2hvdWxkbid0
IGJlIG5lZWRlZCB3aXRoIHRoZSBuZXcgbXVsdGlsaWIgYXBwcm9hY2guICBQbGVhc2UgZmlsZSBh
IGJ1ZyBhdCBodHRwOi8vYnVncy5nZW50b28ub3JnIGFuZCBhc3NpZ24gaXQgdG8gZXJhZGljYXRv
ckBnZW50b28ub3JnIjsKICAgICAgICBleGl0IDE7CiAgICBmaTsKICAgIENPTkZfTElCRElSPSIk
MSI7CiAgICBDT05GX0xJQkRJUl9PVkVSUklERT0iJDEiOwogICAgTElCRElSX2RlZmF1bHQ9IiQx
Igp9CmdldF9saWJuYW1lICgpIAp7IAogICAgbG9jYWwgbGlibmFtZTsKICAgIGxvY2FsIHZlcj0k
MTsKICAgIGNhc2UgJHtDSE9TVH0gaW4gCiAgICAgICAgKi1kYXJ3aW4qKQogICAgICAgICAgICBs
aWJuYW1lPSJkeWxpYiIKICAgICAgICA7OwogICAgICAgICopCiAgICAgICAgICAgIGxpYm5hbWU9
InNvIgogICAgICAgIDs7CiAgICBlc2FjOwogICAgaWYgW1sgLXogJEAgXV07IHRoZW4KICAgICAg
ICBlY2hvICIuJHtsaWJuYW1lfSI7CiAgICBlbHNlCiAgICAgICAgZm9yIHZlciBpbiAiJEAiOwog
ICAgICAgIGRvCiAgICAgICAgICAgIGNhc2UgJHtDSE9TVH0gaW4gCiAgICAgICAgICAgICAgICAq
LWRhcndpbiopCiAgICAgICAgICAgICAgICAgICAgZWNobyAiLiR7dmVyfS4ke2xpYm5hbWV9Igog
ICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICopCiAgICAgICAgICAgICAgICAgICAg
ZWNobyAiLiR7bGlibmFtZX0uJHt2ZXJ9IgogICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAg
ZXNhYzsKICAgICAgICBkb25lOwogICAgZmkKfQpnZXRfbWFqb3JfdmVyc2lvbiAoKSAKeyAKICAg
IF9fdmVyc2lvbmF0b3Jfc2hvcHRfdG9nZ2xlIG9uOwogICAgbG9jYWwgYzsKICAgIGM9KCQoZ2V0
X2FsbF92ZXJzaW9uX2NvbXBvbmVudHMgIiR7MTotJHtQVn19IiApKTsKICAgIGVjaG8gJHtjWzBd
fTsKICAgIF9fdmVyc2lvbmF0b3Jfc2hvcHRfdG9nZ2xlIG9mZgp9CmdldF9tbF9pbmNkaXIgKCkg
CnsgCiAgICBsb2NhbCBkaXI9L3Vzci9pbmNsdWRlOwogICAgaWYgW1sgJCMgLWd0IDAgXV07IHRo
ZW4KICAgICAgICBpbmNkaXI9JDE7CiAgICAgICAgc2hpZnQ7CiAgICBmaTsKICAgIGlmIFtbIC16
ICIke01VTFRJTElCX0FCSVN9IiBdXTsgdGhlbgogICAgICAgIGVjaG8gJHtpbmNkaXJ9OwogICAg
ICAgIHJldHVybiAwOwogICAgZmk7CiAgICBsb2NhbCBhYmk9JHtBQkktJHtERUZBVUxUX0FCSX19
OwogICAgaWYgW1sgJCMgLWd0IDAgXV07IHRoZW4KICAgICAgICBhYmk9JDE7CiAgICAgICAgc2hp
ZnQ7CiAgICBmaTsKICAgIGlmIFtbIC1kICIke2Rpcn0vZ2VudG9vLW11bHRpbGliLyR7YWJpfSIg
XV07IHRoZW4KICAgICAgICBlY2hvICR7ZGlyfS9nZW50b28tbXVsdGlsaWIvJHthYml9OwogICAg
ZWxzZQogICAgICAgIGVjaG8gJHtkaXJ9OwogICAgZmkKfQpnZXRfbW91bnRzICgpIAp7IAogICAg
bG9jYWwgcG9pbnQ9IG5vZGU9IGZzPSBvcHRzPSBmb289OwogICAgaWYgW1sgJCh1bmFtZSAtcykg
PT0gIkxpbnV4IiBdXTsgdGhlbgogICAgICAgIHdoaWxlIHJlYWQgbm9kZSBwb2ludCBmcyBvcHRz
IGZvbzsgZG8KICAgICAgICAgICAgZWNobyAiJHtwb2ludH0gJHtub2RlfSAke2ZzfSAke29wdHN9
IjsKICAgICAgICBkb25lIDwgL3Byb2MvbW91bnRzOwogICAgICAgIHJldHVybjsKICAgIGZpOwog
ICAgbG9jYWwgSUZTPScJJzsKICAgIExDX0FMTD1DIG1vdW50IC1wIHwgd2hpbGUgcmVhZCBub2Rl
IHBvaW50IGZzIGZvbzsgZG8KICAgICAgICBvcHRzPSR7ZnMjKiB9OwogICAgICAgIGZzPSR7ZnMl
JSAqfTsKICAgICAgICBlY2hvICIke3BvaW50Ly8gL1wwNDB9ICR7bm9kZS8vIC9cMDQwfSAke2Zz
JSUgKn0gJHtvcHRzLy8gL1wwNDB9IjsKICAgIGRvbmUKfQpnZXRfbXVsdGlsaWJkaXIgKCkgCnsg
CiAgICBpZiBoYXNfbXVsdGlsaWJfcHJvZmlsZTsgdGhlbgogICAgICAgIGVlcnJvciAiZ2V0X211
bHRpbGliZGlyIGNhbGxlZCwgYnV0IGl0IHNob3VsZG4ndCBiZSBuZWVkZWQgd2l0aCB0aGUgbmV3
IG11bHRpbGliIGFwcHJvYWNoLiAgUGxlYXNlIGZpbGUgYSBidWcgYXQgaHR0cDovL2J1Z3MuZ2Vu
dG9vLm9yZyBhbmQgYXNzaWduIGl0IHRvIGVyYWRpY2F0b3JAZ2VudG9vLm9yZyI7CiAgICAgICAg
ZXhpdCAxOwogICAgZmk7CiAgICBlY2hvICR7Q09ORl9NVUxUSUxJQkRJUjo9bGliMzJ9Cn0KZ2V0
X3ZlcnNpb25fY29tcG9uZW50X2NvdW50ICgpIAp7IAogICAgX192ZXJzaW9uYXRvcl9zaG9wdF90
b2dnbGUgb247CiAgICBsb2NhbCBhOwogICAgYT0oJChnZXRfdmVyc2lvbl9jb21wb25lbnRzICIk
ezE6LSR7UFZ9fSIgKSk7CiAgICBlY2hvICR7I2FbQF19OwogICAgX192ZXJzaW9uYXRvcl9zaG9w
dF90b2dnbGUgb2ZmCn0KZ2V0X3ZlcnNpb25fY29tcG9uZW50X3JhbmdlICgpIAp7IAogICAgX192
ZXJzaW9uYXRvcl9zaG9wdF90b2dnbGUgb247CiAgICBsb2NhbCBjIHY9IiR7MjotJHtQVn19IiBy
YW5nZT0iJHsxfSIgcmFuZ2Vfc3RhcnQgcmFuZ2VfZW5kIGk9LTEgaj0wOwogICAgYz0oJChnZXRf
YWxsX3ZlcnNpb25fY29tcG9uZW50cyAke3Z9ICkpOwogICAgcmFuZ2Vfc3RhcnQ9IiR7cmFuZ2Ul
LSp9IjsKICAgIHJhbmdlX3N0YXJ0PSIke3JhbmdlX3N0YXJ0Oi0xfSI7CiAgICByYW5nZV9lbmQ9
IiR7cmFuZ2UjKi19IjsKICAgIHJhbmdlX2VuZD0iJHtyYW5nZV9lbmQ6LSR7I2NbQF19fSI7CiAg
ICB3aGlsZSAoKCBqIDwgJHtyYW5nZV9zdGFydH0gKSk7IGRvCiAgICAgICAgaT0kKCgkaSArIDEp
KTsKICAgICAgICBbWyAkaSAtZ3QgJHsjY1tAXX0gXV0gJiYgX192ZXJzaW9uYXRvcl9zaG9wdF90
b2dnbGUgb2ZmICYmIHJldHVybjsKICAgICAgICBbWyAtbiAiJHtjWyR7aX1dLy9bLS5fXX0iIF1d
ICYmIGo9JCgoJGogKyAxKSk7CiAgICBkb25lOwogICAgd2hpbGUgKCggaiA8PSAke3JhbmdlX2Vu
ZH0gKSk7IGRvCiAgICAgICAgZWNobyAtbiAke2NbJGldfTsKICAgICAgICBbWyAkaSAtZ3QgJHsj
Y1tAXX0gXV0gJiYgX192ZXJzaW9uYXRvcl9zaG9wdF90b2dnbGUgb2ZmICYmIHJldHVybjsKICAg
ICAgICBbWyAtbiAiJHtjWyR7aX1dLy9bLS5fXX0iIF1dICYmIGo9JCgoJGogKyAxKSk7CiAgICAg
ICAgaT0kKCgkaSArIDEpKTsKICAgIGRvbmU7CiAgICBfX3ZlcnNpb25hdG9yX3Nob3B0X3RvZ2ds
ZSBvZmYKfQpnZXRfdmVyc2lvbl9jb21wb25lbnRzICgpIAp7IAogICAgX192ZXJzaW9uYXRvcl9z
aG9wdF90b2dnbGUgb247CiAgICBsb2NhbCBjPSIkKGdldF9hbGxfdmVyc2lvbl9jb21wb25lbnRz
ICIkezE6LSR7UFZ9fSIpIjsKICAgIGM9KCR7Y1tAXS8vWy0uX10vIH0pOwogICAgZWNobyAke2Nb
QF19OwogICAgX192ZXJzaW9uYXRvcl9zaG9wdF90b2dnbGUgb2ZmCn0KaGFzX211bHRpbGliX3By
b2ZpbGUgKCkgCnsgCiAgICBbIC1uICIke01VTFRJTElCX0FCSVN9IiAtYSAiJHtNVUxUSUxJQl9B
QklTfSIgIT0gIiR7TVVMVElMSUJfQUJJUy8gL30iIF0KfQppbmNyZW1lbnQtcWEtdmlvbGF0aW9u
cyAoKSAKeyAKICAgIGxldCAiSkFWQV9QS0dfUUFfVklPTEFUSU9OUys9MSI7CiAgICBleHBvcnQg
SkFWQV9QS0dfUUFfVklPTEFUSU9OUwp9CmlzLWphdmEtc3RyaWN0ICgpIAp7IAogICAgW1sgLW4g
JHtKQVZBX1BLR19TVFJJQ1R9IF1dOwogICAgcmV0dXJuICQ/Cn0KaXMtbG9naW4tZGlzYWJsZWQg
KCkgCnsgCiAgICBzaGVsbD0kKGVnZXRzaGVsbCAiJDEiKTsKICAgIGNhc2UgJHtzaGVsbH0gaW4g
CiAgICAgICAgL2Jpbi9mYWxzZSB8IC91c3IvYmluL2ZhbHNlIHwgL3NiaW4vbm9sb2dpbiB8IC91
c3Ivc2Jpbi9ub2xvZ2luKQogICAgICAgICAgICByZXR1cm4gMAogICAgICAgIDs7CiAgICAgICAg
KikKICAgICAgICAgICAgcmV0dXJuIDEKICAgICAgICA7OwogICAgZXNhYwp9CmlzX2ZpbmFsX2Fi
aSAoKSAKeyAKICAgIGhhc19tdWx0aWxpYl9wcm9maWxlIHx8IHJldHVybiAwOwogICAgbG9jYWwg
QUxMX0FCSVM9JChnZXRfaW5zdGFsbF9hYmlzKTsKICAgIGxvY2FsIExBU1RfQUJJPSR7QUxMX0FC
SVMvKiAvfTsKICAgIFtbICR7TEFTVF9BQkl9ID09ICR7QUJJfSBdXQp9CmphdmEtcGtnLW9wdC0y
X3BrZ19zZXR1cCAoKSAKeyAKICAgIHVzZSAke0pBVkFfUEtHX09QVF9VU0V9ICYmIGphdmEtcGtn
X2luaXQKfQpqYXZhLXBrZ19hZGRjcCAoKSAKeyAKICAgIGphdmEtcGtnX2FwcGVuZF8gSkFWQV9Q
S0dfQ0xBU1NQQVRIICIke0B9IjsKICAgIGphdmEtcGtnX2RvX3dyaXRlXwp9CmphdmEtcGtnX2Fu
bm91bmNlLXFhLXZpb2xhdGlvbiAoKSAKeyAKICAgIGxvY2FsIG5vZGllOwogICAgaWYgW1sgJHsx
fSA9PSAiLS1ub2RpZSIgXV07IHRoZW4KICAgICAgICBub2RpZT0idHJ1ZSI7CiAgICAgICAgc2hp
ZnQ7CiAgICBmaTsKICAgIGVjaG8gIkphdmEgUUEgTm90aWNlOiAkQCIgMT4mMjsKICAgIGluY3Jl
bWVudC1xYS12aW9sYXRpb25zOwogICAgW1sgLXogIiR7bm9kaWV9IiBdXSAmJiBpcy1qYXZhLXN0
cmljdCAmJiBkaWVmdW5jICIkRlVOQ05BTUUiICIkTElORU5PIiAiJD8iICIke0B9Igp9CmphdmEt
cGtnX2FudC10YXNrcy1kZXBlbmQgKCkgCnsgCiAgICBkZWJ1Zy1wcmludC1mdW5jdGlvbiAke0ZV
TkNOQU1FfSAke1dBTlRfQU5UX1RBU0tTfTsKICAgIGlmIFtbIC1uICIke1dBTlRfQU5UX1RBU0tT
fSIgXV07IHRoZW4KICAgICAgICBsb2NhbCBERVA9IiI7CiAgICAgICAgZm9yIGkgaW4gJHtXQU5U
X0FOVF9UQVNLU307CiAgICAgICAgZG8KICAgICAgICAgICAgaWYgW1sgJHtpfSAhPSBhbnQtKiBd
XTsgdGhlbgogICAgICAgICAgICAgICAgZWNobyAiSW52YWxpZCBhdG9tIGluIFdBTlRfQU5UX1RB
U0tTOiAke2l9IjsKICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgICBmaTsKICAg
ICAgICAgICAgREVQPSIke0RFUH1kZXYtamF2YS8ke2l9ICI7CiAgICAgICAgZG9uZTsKICAgICAg
ICBlY2hvICR7REVQfTsKICAgICAgICByZXR1cm4gMDsKICAgIGVsc2UKICAgICAgICByZXR1cm4g
MDsKICAgIGZpCn0KamF2YS1wa2dfYW50LXRhc2tzLWZyb20tZGVwcyAoKSAKeyAKICAgIGxvY2Fs
IGZvdW5kX2FudCBmb3VuZF9hbnRfdGFza3M7CiAgICBmb3IgZGVwIGluICR7REVQRU5EfTsKICAg
IGRvCiAgICAgICAgbG9jYWwgYW50PSIkKGF3ayAnLyhkZXYtamF2YVwvYW50KS8geyBpZiAobWF0
Y2goJDEsICIoZGV2LWphdmEvYW50KSgoLVswLTldKSt8JCkiLCBtKSkgcHJpbnQgbVsxXSAgfScg
PDw8ICR7ZGVwfSkiOwogICAgICAgIFtbICIke2FudH0iID09ICJkZXYtamF2YS9hbnQiIF1dICYm
IGZvdW5kX2FudD10cnVlOwogICAgICAgIFtbICIke2RlcH0iID09ICoiYW50LXRhc2tzIiogXV0g
JiYgZm91bmRfYW50X3Rhc2tzPXRydWU7CiAgICBkb25lOwogICAgaWYgW1sgLW4gIiR7Zm91bmRf
YW50fSIgfHwgLW4gIiR7Zm91bmRfYW50X3Rhc2tzfSIgXV07IHRoZW4KICAgICAgICBqYXZhLXBr
Z19hbm5vdW5jZS1xYS12aW9sYXRpb24gLS1ub2RpZSAiVGhlIGVidWlsZCBERVBFTkRTIG9uIGRl
cHJlY2F0ZWQgYW50IG9yIGFudC10YXNrcyI7CiAgICAgICAgZWNobyAiYWxsIjsKICAgIGVsc2UK
ICAgICAgICBlY2hvICJub25lIjsKICAgIGZpCn0KamF2YS1wa2dfYXBwZW5kXyAoKSAKeyAKICAg
IGRlYnVnLXByaW50LWZ1bmN0aW9uICR7RlVOQ05BTUV9ICQqOwogICAgbG9jYWwgdmFyPSIkezF9
IiB2YWx1ZT0iJHsyfSI7CiAgICBpZiBbWyAteiAiJHshdmFyfSIgXV07IHRoZW4KICAgICAgICBl
eHBvcnQgJHt2YXJ9PSIke3ZhbHVlfSI7CiAgICBlbHNlCiAgICAgICAgbG9jYWwgb2xkSUZTPSR7
SUZTfSBjdXIgaGF2ZWl0OwogICAgICAgIElGUz0nOic7CiAgICAgICAgZm9yIGN1ciBpbiAkeyF2
YXJ9OwogICAgICAgIGRvCiAgICAgICAgICAgIGlmIFtbICR7Y3VyfSA9PSAke3ZhbHVlfSBdXTsg
dGhlbgogICAgICAgICAgICAgICAgaGF2ZWl0PSJ5ZXMiOwogICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgIGZpOwogICAgICAgIGRvbmU7CiAgICAgICAgW1sgLXogJHtoYXZlaXR9IF1d
ICYmIGV4cG9ydCAke3Zhcn09IiR7IXZhcn06JHt2YWx1ZX0iOwogICAgICAgIElGUz0ke29sZElG
U307CiAgICBmaQp9CmphdmEtcGtnX2NoZWNrLWppa2VzICgpIAp7IAogICAgaWYgaGFzcSBqaWtl
cyAke0lVU0V9OyB0aGVuCiAgICAgICAgamF2YS1wa2dfYW5ub3VuY2UtcWEtdmlvbGF0aW9uICJk
ZXByZWNhdGVkIFVTRSBmbGFnICdqaWtlcycgaW4gSVVTRSI7CiAgICBmaQp9CmphdmEtcGtnX2No
ZWNrLXBoYXNlICgpIAp7IAogICAgbG9jYWwgcGhhc2U9JHsxfTsKICAgIGxvY2FsIGZ1bmNuYW1l
PSR7RlVOQ05BTUVbMV19OwogICAgaWYgW1sgJHtFQlVJTERfUEhBU0V9ICE9ICR7cGhhc2V9IF1d
OyB0aGVuCiAgICAgICAgbG9jYWwgbXNnPSIke2Z1bmNuYW1lfSB1c2VkIG91dHNpZGUgb2Ygc3Jj
XyR7cGhhc2V9IjsKICAgICAgICBqYXZhLXBrZ19hbm5vdW5jZS1xYS12aW9sYXRpb24gIiR7bXNn
fSI7CiAgICBmaQp9CmphdmEtcGtnX2NoZWNrLXZlcnNpb25lZC1qYXIgKCkgCnsgCiAgICBsb2Nh
bCBqYXI9JHsxfTsKICAgIGlmIFtbICR7amFyfSA9fiAke1BWfSBdXTsgdGhlbgogICAgICAgIGph
dmEtcGtnX2Fubm91bmNlLXFhLXZpb2xhdGlvbiAiaW5zdGFsbGluZyB2ZXJzaW9uZWQgamFyICck
e2phcn0nIjsKICAgIGZpCn0KamF2YS1wa2dfY3VycmVudC12bS1tYXRjaGVzICgpIAp7IAogICAg
aGFzcSAkKGphdmEtcGtnX2dldC1jdXJyZW50LXZtKSAke0B9OwogICAgcmV0dXJuICQ/Cn0KamF2
YS1wa2dfZGllICgpIAp7IAogICAgZWNobyAiISEhIFdoZW4geW91IGZpbGUgYSBidWcgcmVwb3J0
LCBwbGVhc2UgaW5jbHVkZSB0aGUgZm9sbG93aW5nIGluZm9ybWF0aW9uOiIgMT4mMjsKICAgIGVj
aG8gIkdFTlRPT19WTT0ke0dFTlRPT19WTX0gIENMQVNTUEFUSD1cIiR7Q0xBU1NQQVRIfVwiIEpB
VkFfSE9NRT1cIiR7SkFWQV9IT01FfVwiIiAxPiYyOwogICAgZWNobyAiSkFWQUNGTEFHUz1cIiR7
SkFWQUNGTEFHU31cIiBDT01QSUxFUj1cIiR7R0VOVE9PX0NPTVBJTEVSfVwiIiAxPiYyOwogICAg
ZWNobyAiYW5kIG9mIGNvdXJzZSwgdGhlIG91dHB1dCBvZiBlbWVyZ2UgLS1pbmZvIiAxPiYyCn0K
amF2YS1wa2dfZG9fd3JpdGVfICgpIAp7IAogICAgZGVidWctcHJpbnQtZnVuY3Rpb24gJHtGVU5D
TkFNRX0gJCo7CiAgICBqYXZhLXBrZ19pbml0X3BhdGhzXzsKICAgIGRvZGlyICIke0pBVkFfUEtH
X1NIQVJFUEFUSH0iOwogICAgaWYgW1sgLW4gIiR7SkFWQV9QS0dfQ0xBU1NQQVRIfSIgfHwgLW4g
IiR7SkFWQV9QS0dfTElCUkFSWX0iIHx8IC1mICIke0pBVkFfUEtHX0RFUEVORF9GSUxFfSIgfHwg
LWYgIiR7SkFWQV9QS0dfT1BUSU9OQUxfREVQRU5EX0ZJTEV9IiBdXTsgdGhlbgogICAgICAgICgg
ZWNobyAiREVTQ1JJUFRJT049XCIke0RFU0NSSVBUSU9OfVwiIjsKICAgICAgICBlY2hvICJHRU5F
UkFUSU9OPVwiMlwiIjsKICAgICAgICBbWyAtbiAiJHtKQVZBX1BLR19DTEFTU1BBVEh9IiBdXSAm
JiBlY2hvICJDTEFTU1BBVEg9XCIke0pBVkFfUEtHX0NMQVNTUEFUSH1cIiI7CiAgICAgICAgW1sg
LW4gIiR7SkFWQV9QS0dfTElCUkFSWX0iIF1dICYmIGVjaG8gIkxJQlJBUllfUEFUSD1cIiR7SkFW
QV9QS0dfTElCUkFSWX1cIiI7CiAgICAgICAgW1sgLW4gIiR7SkFWQV9QUk9WSURFfSIgXV0gJiYg
ZWNobyAiUFJPVklERVM9XCIke0pBVkFfUFJPVklERX1cIiI7CiAgICAgICAgW1sgLWYgIiR7SkFW
QV9QS0dfREVQRU5EX0ZJTEV9IiBdXSAmJiBlY2hvICJERVBFTkQ9XCIkKGNhdCAiJHtKQVZBX1BL
R19ERVBFTkRfRklMRX0iIHwgdW5pcSB8IHRyICdcbicgJzonKVwiIjsKICAgICAgICBbWyAtZiAi
JHtKQVZBX1BLR19PUFRJT05BTF9ERVBFTkRfRklMRX0iIF1dICYmIGVjaG8gIk9QVElPTkFMX0RF
UEVORD1cIiQoY2F0ICIke0pBVkFfUEtHX09QVElPTkFMX0RFUEVORF9GSUxFfSIgfCB1bmlxIHwg
dHIgJ1xuJyAnOicpXCIiOwogICAgICAgIGVjaG8gIlZNPVwiJChlY2hvICR7UkRFUEVORH0gJHtE
RVBFTkR9IHwgc2VkIC1lICdzLyAvXG4vZycgfCBzZWQgLW4gLWUgJy92aXJ0dWFsXC9cKGpyZVx8
amRrXCkvIHsgcDtxIH0nKVwiIiApID4gIiR7SkFWQV9QS0dfRU5WfSI7CiAgICAgICAgbG9jYWwg
dGFyZ2V0PSIkKGphdmEtcGtnX2dldC10YXJnZXQpIjsKICAgICAgICBsb2NhbCBzb3VyY2U9IiQo
amF2YS1wa2dfZ2V0LXNvdXJjZSkiOwogICAgICAgIFtbIC1uICR7dGFyZ2V0fSBdXSAmJiBlY2hv
ICJUQVJHRVQ9XCIke3RhcmdldH1cIiIgPj4gIiR7SkFWQV9QS0dfRU5WfSI7CiAgICAgICAgW1sg
LW4gJHtzb3VyY2V9IF1dICYmIGVjaG8gIlNPVVJDRT1cIiR7c291cmNlfVwiIiA+PiAiJHtKQVZB
X1BLR19FTlZ9IjsKICAgICAgICBbWyAtbiAke0pBVkFET0NfUEFUSH0gXV0gJiYgZWNobyAiSkFW
QURPQ19QQVRIPVwiJHtKQVZBRE9DX1BBVEh9XCIiID4+ICR7SkFWQV9QS0dfRU5WfTsKICAgICAg
ICBbWyAtbiAke0pBVkFfU09VUkNFU30gXV0gJiYgZWNobyAiSkFWQV9TT1VSQ0VTPVwiJHtKQVZB
X1NPVVJDRVN9XCIiID4+ICR7SkFWQV9QS0dfRU5WfTsKICAgICAgICBlY2hvICJNRVJHRV9WTT1c
IiR7R0VOVE9PX1ZNfVwiIiA+PiAiJHtKQVZBX1BLR19FTlZ9IjsKICAgICAgICBbWyAtbiAke0dF
TlRPT19DT01QSUxFUn0gXV0gJiYgZWNobyAiTUVSR0VfQ09NUElMRVI9XCIke0dFTlRPT19DT01Q
SUxFUn1cIiIgPj4gIiR7SkFWQV9QS0dfRU5WfSI7CiAgICAgICAgaWYgW1sgLW4gIiR7SkFWQV9Q
S0dfRVhUUkFfRU5WX1ZBUlN9IiBdXTsgdGhlbgogICAgICAgICAgICBjYXQgIiR7SkFWQV9QS0df
RVhUUkFfRU5WfSIgPj4gIiR7SkFWQV9QS0dfRU5WfSIgfHwgZGllZnVuYyAiJEZVTkNOQU1FIiAi
JExJTkVOTyIgIiQ/IjsKICAgICAgICAgICAgZWNobyAiRU5WX1ZBUlM9XCIkKGVjaG8gJHtKQVZB
X1BLR19FWFRSQV9FTlZfVkFSU30pXCIiID4+ICIke0pBVkFfUEtHX0VOVn0iIHx8IGRpZWZ1bmMg
IiRGVU5DTkFNRSIgIiRMSU5FTk8iICIkPyI7CiAgICAgICAgZmk7CiAgICAgICAgc2VkIC1lICJz
Lz1cIjovPVwiLyIgLWUgInMvOlwiJC9cIi8iIC1pICIke0pBVkFfUEtHX0VOVn0iIHx8IGRpZWZ1
bmMgIiRGVU5DTkFNRSIgIiRMSU5FTk8iICIkPyIgIkRpZCB5b3UgZm9yZ2V0IHRvIGNhbGwgamF2
YV9pbml0ID8iOwogICAgZWxzZQogICAgICAgIGRlYnVnLXByaW50ICJKQVZBX1BLR19DTEFTU1BB
VEgsIEpBVkFfUEtHX0xJQlJBUlksIEpBVkFfUEtHX0RFUEVORF9GSUxFIjsKICAgICAgICBkZWJ1
Zy1wcmludCAib3IgSkFWQV9QS0dfT1BUSU9OQUxfREVQRU5EX0ZJTEUgbm90IGRlZmluZWQgc28g
Y2FuJ3QiOwogICAgICAgIGRlYnVnLXByaW50ICJ3cml0ZSBwYWNrYWdlLmVudi4iOwogICAgZmkK
fQpqYXZhLXBrZ19kb2V4YW1wbGVzICgpIAp7IAogICAgZGVidWctcHJpbnQtZnVuY3Rpb24gJHtG
VU5DTkFNRX0gJCo7CiAgICBbWyAkeyN9IC1sdCAxIF1dICYmIGRpZWZ1bmMgIiRGVU5DTkFNRSIg
IiRMSU5FTk8iICIkPyIgIkF0IGxlYXN0IG9uZSBhcmd1bWVudCBuZWVkZWQiOwogICAgamF2YS1w
a2dfY2hlY2stcGhhc2UgaW5zdGFsbDsKICAgIGxvY2FsIGRlc3Q9L3Vzci9zaGFyZS9kb2MvJHtQ
Rn0vZXhhbXBsZXM7CiAgICBpZiBbWyAkezF9ID09IC0tc3ViZGlyIF1dOyB0aGVuCiAgICAgICAg
bG9jYWwgZGVzdD0ke2Rlc3R9LyR7Mn07CiAgICAgICAgZG9kaXIgJHtkZXN0fTsKICAgICAgICBz
aGlmdCAyOwogICAgZmk7CiAgICBpZiBbWyAkeyN9ID0gMSAmJiAtZCAkezF9IF1dOyB0aGVuCiAg
ICAgICAgKCBpbnNpbnRvICIke2Rlc3R9IjsKICAgICAgICBkb2lucyAtciAkezF9LyogKSB8fCBk
aWVmdW5jICIkRlVOQ05BTUUiICIkTElORU5PIiAiJD8iICJJbnN0YWxsaW5nIGV4YW1wbGVzIGZh
aWxlZCI7CiAgICBlbHNlCiAgICAgICAgKCBpbnNpbnRvICIke2Rlc3R9IjsKICAgICAgICBkb2lu
cyAtciAiJEAiICkgfHwgZGllZnVuYyAiJEZVTkNOQU1FIiAiJExJTkVOTyIgIiQ/IiAiSW5zdGFs
bGluZyBleGFtcGxlcyBmYWlsZWQiOwogICAgZmkKfQpqYXZhLXBrZ19kb2h0bWwgKCkgCnsgCiAg
ICBkZWJ1Zy1wcmludC1mdW5jdGlvbiAke0ZVTkNOQU1FfSAkKjsKICAgIFtbICR7I30gLWx0IDEg
XV0gJiYgZGllZnVuYyAiJEZVTkNOQU1FIiAiJExJTkVOTyIgIiQ/IiAiQXQgbGVhc3Qgb25lIGFy
Z3VtZW50IHJlcXVpcmVkIGZvciAke0ZVTkNOQU1FfSI7CiAgICBkb2h0bWwgLWYgcGFja2FnZS1s
aXN0ICIkQCI7CiAgICBqYXZhLXBrZ19yZWNvcmRqYXZhZG9jCn0KamF2YS1wa2dfZG9qYXIgKCkg
CnsgCiAgICBkZWJ1Zy1wcmludC1mdW5jdGlvbiAke0ZVTkNOQU1FfSAkKjsKICAgIFtbICR7I30g
LWx0IDEgXV0gJiYgZGllZnVuYyAiJEZVTkNOQU1FIiAiJExJTkVOTyIgIiQ/IiAiQXQgbGVhc3Qg
b25lIGFyZ3VtZW50IG5lZWRlZCI7CiAgICBqYXZhLXBrZ19jaGVjay1waGFzZSBpbnN0YWxsOwog
ICAgamF2YS1wa2dfaW5pdF9wYXRoc187CiAgICBkb2RpciAke0pBVkFfUEtHX0pBUkRFU1R9Owog
ICAgbG9jYWwgamFyOwogICAgZm9yIGphciBpbiAiJHtAfSI7CiAgICBkbwogICAgICAgIGxvY2Fs
IGphcl9iYXNlbmFtZT0kKGJhc2VuYW1lICIke2phcn0iKTsKICAgICAgICBqYXZhLXBrZ19jaGVj
ay12ZXJzaW9uZWQtamFyICR7amFyX2Jhc2VuYW1lfTsKICAgICAgICBpZiBbWyAtZSAiJHtqYXJ9
IiBdXTsgdGhlbgogICAgICAgICAgICBsb2NhbCBkZXN0PSIke0R9JHtKQVZBX1BLR19KQVJERVNU
fS8ke2phcl9iYXNlbmFtZX0iOwogICAgICAgICAgICBpZiBbWyAtZSAiJHtkZXN0fSIgXV07IHRo
ZW4KICAgICAgICAgICAgICAgIGV3YXJuICJPdmVyd3JpdGluZyAke2Rlc3R9IjsKICAgICAgICAg
ICAgZmk7CiAgICAgICAgICAgIGlmIFtbICEgLUwgIiR7amFyfSIgXV07IHRoZW4KICAgICAgICAg
ICAgICAgIGlzLWphdmEtc3RyaWN0ICYmIGphdmEtcGtnX3ZlcmlmeS1jbGFzc2VzICIke2phcn0i
OwogICAgICAgICAgICAgICAgSU5TREVTVFRSRUU9IiR7SkFWQV9QS0dfSkFSREVTVH0iIGRvaW5z
ICIke2phcn0iIHx8IGRpZWZ1bmMgIiRGVU5DTkFNRSIgIiRMSU5FTk8iICIkPyIgImZhaWxlZCB0
byBpbnN0YWxsICR7amFyfSI7CiAgICAgICAgICAgICAgICBqYXZhLXBrZ19hcHBlbmRfIEpBVkFf
UEtHX0NMQVNTUEFUSCAiJHtKQVZBX1BLR19KQVJERVNUfS8ke2phcl9iYXNlbmFtZX0iOwogICAg
ICAgICAgICAgICAgZGVidWctcHJpbnQgImluc3RhbGxlZCAke2phcn0gdG8gJHtEfSR7SkFWQV9Q
S0dfSkFSREVTVH0iOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBsbiAtcyAiJChy
ZWFkbGluayAiJHtqYXJ9IikiICIke0R9JHtKQVZBX1BLR19KQVJERVNUfS8ke2phcl9iYXNlbmFt
ZX0iOwogICAgICAgICAgICAgICAgZGVidWctcHJpbnQgIiR7amFyfSBpcyBhIHN5bWxpbmssIGxp
bmtpbmcgYWNjb3JkaW5nbHkiOwogICAgICAgICAgICBmaTsKICAgICAgICBlbHNlCiAgICAgICAg
ICAgIGRpZWZ1bmMgIiRGVU5DTkFNRSIgIiRMSU5FTk8iICIkPyIgIiR7amFyfSBkb2VzIG5vdCBl
eGlzdCI7CiAgICAgICAgZmk7CiAgICBkb25lOwogICAgamF2YS1wa2dfZG9fd3JpdGVfCn0KamF2
YS1wa2dfZG9qYXZhZG9jICgpIAp7IAogICAgZGVidWctcHJpbnQtZnVuY3Rpb24gJHtGVU5DTkFN
RX0gJCo7CiAgICBsb2NhbCBzeW1saW5rOwogICAgaWYgW1sgJHsxfSA9IC0tc3ltbGluayBdXTsg
dGhlbgogICAgICAgIHN5bWxpbms9JHsyfTsKICAgICAgICBzaGlmdCAyOwogICAgZmk7CiAgICBs
b2NhbCBkaXI9IiQxIjsKICAgIGxvY2FsIGRlc3Q9L3Vzci9zaGFyZS9kb2MvJHtQRn0vaHRtbDsK
ICAgIGphdmEtcGtnX2NoZWNrLXBoYXNlIGluc3RhbGw7CiAgICBbWyAteiAiJHtkaXJ9IiBdXSAm
JiBkaWVmdW5jICIkRlVOQ05BTUUiICIkTElORU5PIiAiJD8iICJNdXN0IHNwZWNpZnkgYSBkaXJl
Y3RvcnkhIjsKICAgIFtbICEgLWQgIiR7ZGlyfSIgXV0gJiYgZGllZnVuYyAiJEZVTkNOQU1FIiAi
JExJTkVOTyIgIiQ/IiAiJHtkaXJ9IGRvZXMgbm90IGV4aXN0LCBvciBpc24ndCBhIGRpcmVjdG9y
eSEiOwogICAgaWYgW1sgISAtZSAiJHtkaXJ9L2luZGV4Lmh0bWwiIF1dOyB0aGVuCiAgICAgICAg
bG9jYWwgbXNnPSJObyBpbmRleC5odG1sIGluIGphdmFkb2MgZGlyZWN0b3J5IjsKICAgICAgICBl
d2FybiAiJHttc2d9IjsKICAgICAgICBpcy1qYXZhLXN0cmljdCAmJiBkaWVmdW5jICIkRlVOQ05B
TUUiICIkTElORU5PIiAiJD8iICIke21zZ30iOwogICAgZmk7CiAgICBpZiBbWyAtZSAke0R9LyR7
ZGVzdH0vYXBpIF1dOyB0aGVuCiAgICAgICAgZWVycm9yICIke2Rlc3R9IGFscmVhZHkgZXhpc3Rz
LiBXaWxsIG5vdCBvdmVyd3JpdGUuIjsKICAgICAgICBkaWVmdW5jICIkRlVOQ05BTUUiICIkTElO
RU5PIiAiJD8iICIke2Rlc3R9IjsKICAgIGZpOwogICAgbG9jYWwgZGlyX3RvX2luc3RhbGw9IiR7
ZGlyfSI7CiAgICBpZiBbWyAiJChiYXNlbmFtZSAiJHtkaXJ9IikiICE9ICJhcGkiIF1dOyB0aGVu
CiAgICAgICAgZGlyX3RvX2luc3RhbGw9IiR7VH0vYXBpIjsKICAgICAgICBjcCAtciAiJHtkaXJ9
IiAiJHtkaXJfdG9faW5zdGFsbH0iIHx8IGRpZWZ1bmMgIiRGVU5DTkFNRSIgIiRMSU5FTk8iICIk
PyIgImNwIGZhaWxlZCI7CiAgICBmaTsKICAgIGphdmEtcGtnX2RvaHRtbCAtciAiJHtkaXJfdG9f
aW5zdGFsbH0iOwogICAgZG9zeW0gJHtkZXN0fS9hcGkgIiR7SkFWQV9QS0dfU0hBUkVQQVRIfS9h
cGkiIHx8IGRpZWZ1bmMgIiRGVU5DTkFNRSIgIiRMSU5FTk8iICIkPyI7CiAgICBpZiBbWyAtbiAk
e3N5bWxpbmt9IF1dOyB0aGVuCiAgICAgICAgZG9zeW0gJHtkZXN0fS97YXBpLCR7c3ltbGlua319
IHx8IGRpZWZ1bmMgIiRGVU5DTkFNRSIgIiRMSU5FTk8iICIkPyI7CiAgICBmaQp9CmphdmEtcGtn
X2RvbGF1bmNoZXIgKCkgCnsgCiAgICBkZWJ1Zy1wcmludC1mdW5jdGlvbiAke0ZVTkNOQU1FfSAk
KjsKICAgIGphdmEtcGtnX2NoZWNrLXBoYXNlIGluc3RhbGw7CiAgICBqYXZhLXBrZ19pbml0X3Bh
dGhzXzsKICAgIGlmIFtbICR7I30gPSAwIF1dOyB0aGVuCiAgICAgICAgbG9jYWwgbmFtZT0iJHtQ
Tn0iOwogICAgZWxzZQogICAgICAgIGxvY2FsIG5hbWU9IiR7MX0iOwogICAgICAgIHNoaWZ0Owog
ICAgZmk7CiAgICBsb2NhbCB0YXJnZXQ9IiR7VH0vJHtuYW1lfSI7CiAgICBsb2NhbCB2YXJfdG1w
PSIke1R9L2xhdW5jaGVyX3ZhcmlhYmxlc190bXAiOwogICAgbG9jYWwgdGFyZ2V0X2RpciBwcmU7
CiAgICB3aGlsZSBbWyAtbiAiJHsxfSIgJiYgLW4gIiR7Mn0iIF1dOyBkbwogICAgICAgIGxvY2Fs
IHZhcj0iJHsxfSIgdmFsdWU9IiR7Mn0iOwogICAgICAgIGlmIFtbICIke3ZhcjowOjJ9IiA9PSAi
LS0iIF1dOyB0aGVuCiAgICAgICAgICAgIGxvY2FsIHZhcj0ke3ZhcjoyfTsKICAgICAgICAgICAg
ZWNobyAiZ2psXyR7dmFyfT1cIiR7dmFsdWV9XCIiID4+ICIke3Zhcl90bXB9IjsKICAgICAgICAg
ICAgbG9jYWwgZ2psXyR7dmFyfT0iJHt2YWx1ZX0iOwogICAgICAgIGVsc2UKICAgICAgICAgICAg
aWYgW1sgIiR7dmFyfSIgPT0gIi1pbnRvIiBdXTsgdGhlbgogICAgICAgICAgICAgICAgdGFyZ2V0
X2Rpcj0iJHt2YWx1ZX0iOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBpZiBbWyAi
JHt2YXJ9IiA9PSAiLXByZSIgXV07IHRoZW4KICAgICAgICAgICAgICAgICAgICBwcmU9IiR7dmFs
dWV9IjsKICAgICAgICAgICAgICAgIGZpOwogICAgICAgICAgICBmaTsKICAgICAgICBmaTsKICAg
ICAgICBzaGlmdCAyOwogICAgZG9uZTsKICAgIGlmIFtbIC16ICIke2dqbF9qYXJ9IiAmJiAteiAi
JHtnamxfbWFpbn0iIF1dOyB0aGVuCiAgICAgICAgbG9jYWwgY3A9IiR7SkFWQV9QS0dfQ0xBU1NQ
QVRIfSI7CiAgICAgICAgaWYgW1sgIiR7Y3AvOn0iID0gIiR7Y3B9IiAmJiAiJHtjcCUuamFyfSIg
IT0gIiR7Y3B9IiBdXTsgdGhlbgogICAgICAgICAgICBlY2hvICJnamxfamFyPVwiJHtKQVZBX1BL
R19DTEFTU1BBVEh9XCIiID4+ICIke3Zhcl90bXB9IjsKICAgICAgICBlbHNlCiAgICAgICAgICAg
IGxvY2FsIG1zZz0iTm90IGVub3VnaCBpbmZvcm1hdGlvbiB0byBjcmVhdGUgYSBsYXVuY2hlciBn
aXZlbi4iOwogICAgICAgICAgICBtc2c9IiR7bXNnfSBQbGVhc2UgZ2l2ZSAtLWphciBvciAtLW1h
aW4gYXJndW1lbnQgdG8gJHtGVU5DTkFNRX0uIjsKICAgICAgICAgICAgZGllZnVuYyAiJEZVTkNO
QU1FIiAiJExJTkVOTyIgIiQ/IiAiJHttc2d9IjsKICAgICAgICBmaTsKICAgIGZpOwogICAgZWNo
byAiIyEvYmluL2Jhc2giID4gIiR7dGFyZ2V0fSI7CiAgICBpZiBbWyAtbiAiJHtwcmV9IiBdXTsg
dGhlbgogICAgICAgIGlmIFtbIC1mICIke3ByZX0iIF1dOyB0aGVuCiAgICAgICAgICAgIGNhdCAi
JHtwcmV9IiA+PiAiJHt0YXJnZXR9IjsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGRpZWZ1bmMg
IiRGVU5DTkFNRSIgIiRMSU5FTk8iICIkPyIgIi1wcmUgc3BlY2lmaWVkIGZpbGUgJyR7cHJlfScg
ZG9lcyBub3QgZXhpc3QiOwogICAgICAgIGZpOwogICAgZmk7CiAgICBlY2hvICJnamxfcGFja2Fn
ZT0ke0pBVkFfUEtHX05BTUV9IiA+PiAiJHt0YXJnZXR9IjsKICAgIGNhdCAiJHt2YXJfdG1wfSIg
Pj4gIiR7dGFyZ2V0fSI7CiAgICBybSAtZiAiJHt2YXJfdG1wfSI7CiAgICBlY2hvICJzb3VyY2Ug
L3Vzci9zaGFyZS9qYXZhLWNvbmZpZy0yL2xhdW5jaGVyL2xhdW5jaGVyLmJhc2giID4+ICIke3Rh
cmdldH0iOwogICAgaWYgW1sgLW4gIiR7dGFyZ2V0X2Rpcn0iIF1dOyB0aGVuCiAgICAgICAgREVT
VFRSRUU9IiR7dGFyZ2V0X2Rpcn0iIGRvYmluICIke3RhcmdldH0iOwogICAgICAgIGxvY2FsIHJl
dD0kPzsKICAgICAgICByZXR1cm4gJHtyZXR9OwogICAgZWxzZQogICAgICAgIGRvYmluICIke3Rh
cmdldH0iOwogICAgZmkKfQpqYXZhLXBrZ19kb3NvICgpIAp7IAogICAgZGVidWctcHJpbnQtZnVu
Y3Rpb24gJHtGVU5DTkFNRX0gJCo7CiAgICBbWyAkeyN9IC1sdCAxIF1dICYmICJBdCBsZWFzdCBv
bmUgYXJndW1lbnQgcmVxdWlyZWQgZm9yICR7RlVOQ05BTUV9IjsKICAgIGphdmEtcGtnX2NoZWNr
LXBoYXNlIGluc3RhbGw7CiAgICBbWyAkeyN9IC1sdCAxIF1dICYmIGRpZWZ1bmMgIiRGVU5DTkFN
RSIgIiRMSU5FTk8iICIkPyIgIkF0IGxlYXN0IG9uZSBhcmd1bWVudCByZXF1aXJlZCBmb3IgJHtG
VU5DTkFNRX0iOwogICAgamF2YS1wa2dfaW5pdF9wYXRoc187CiAgICBsb2NhbCBsaWI7CiAgICBm
b3IgbGliIGluICIkQCI7CiAgICBkbwogICAgICAgIGlmIFtbIC1lICIke2xpYn0iIF1dOyB0aGVu
CiAgICAgICAgICAgIGlmIFtbICEgLUwgIiR7bGlifSIgXV07IHRoZW4KICAgICAgICAgICAgICAg
IElOU0RFU1RUUkVFPSIke0pBVkFfUEtHX0xJQkRFU1R9IiBJTlNPUFRJT05TPSIke0xJQk9QVElP
TlN9IiBkb2lucyAiJHtsaWJ9IiB8fCAiZmFpbGVkIHRvIGluc3RhbGwgJHtsaWJ9IjsKICAgICAg
ICAgICAgICAgIGphdmEtcGtnX2FwcGVuZF8gSkFWQV9QS0dfTElCUkFSWSAiJHtKQVZBX1BLR19M
SUJERVNUfSI7CiAgICAgICAgICAgICAgICBkZWJ1Zy1wcmludCAiSW5zdGFsbGluZyAke2xpYn0g
dG8gJHtKQVZBX1BLR19MSUJERVNUfSI7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg
IGxuIC1zICIkKHJlYWRsaW5rICIke2xpYn0iKSIgIiR7RH0ke0pBVkFfUEtHX0xJQkRFU1R9LyQo
YmFzZW5hbWUgIiR7bGlifSIpIjsKICAgICAgICAgICAgICAgIGRlYnVnLXByaW50ICIke2xpYn0g
aXMgYSBzeW1saW5rLCBsaW5raW5nIGFjY29yZGFubHkiOwogICAgICAgICAgICBmaTsKICAgICAg
ICBlbHNlCiAgICAgICAgICAgIGRpZWZ1bmMgIiRGVU5DTkFNRSIgIiRMSU5FTk8iICIkPyIgIiR7
bGlifSBkb2VzIG5vdCBleGlzdCI7CiAgICAgICAgZmk7CiAgICBkb25lOwogICAgamF2YS1wa2df
ZG9fd3JpdGVfCn0KamF2YS1wa2dfZG9zcmMgKCkgCnsgCiAgICBkZWJ1Zy1wcmludC1mdW5jdGlv
biAke0ZVTkNOQU1FfSAkKjsKICAgIFsgJHsjfSAtbHQgMSBdICYmIGRpZWZ1bmMgIiRGVU5DTkFN
RSIgIiRMSU5FTk8iICIkPyIgIkF0IGxlYXN0IG9uZSBhcmd1bWVudCBuZWVkZWQiOwogICAgamF2
YS1wa2dfY2hlY2stcGhhc2UgaW5zdGFsbDsKICAgIFtbICR7I30gLWx0IDEgXV0gJiYgZGllZnVu
YyAiJEZVTkNOQU1FIiAiJExJTkVOTyIgIiQ/IiAiQXQgbGVhc3Qgb25lIGFyZ3VtZW50IG5lZWRl
ZCI7CiAgICBpZiAhIFtbICR7REVQRU5EfSA9ICphcHAtYXJjaC96aXAqIF1dOyB0aGVuCiAgICAg
ICAgbG9jYWwgbXNnPSIke0ZVTkNOQU1FfSBjYWxsZWQgd2l0aG91dCBhcHAtYXJjaC96aXAgaW4g
REVQRU5EIjsKICAgICAgICBpZiBpcy1qYXZhLXN0cmljdDsgdGhlbgogICAgICAgICAgICBlZXJy
b3IgIiR7bXNnfSI7CiAgICAgICAgICAgIGRpZWZ1bmMgIiRGVU5DTkFNRSIgIiRMSU5FTk8iICIk
PyIgIiR7bXNnfSI7CiAgICAgICAgZWxzZQogICAgICAgICAgICBlY2hvICIke21zZ30iOwogICAg
ICAgICAgICBlY2hvICJQbGVhc2UgcmVwb3J0IHRoaXMgdG8gaHR0cDovL2J1Z3MuZ2VudG9vLm9y
Zy4iOwogICAgICAgIGZpOwogICAgZmk7CiAgICBqYXZhLXBrZ19pbml0X3BhdGhzXzsKICAgIGxv
Y2FsIHppcF9uYW1lPSIke1BOfS1zcmMuemlwIjsKICAgIGxvY2FsIHppcF9wYXRoPSIke1R9LyR7
emlwX25hbWV9IjsKICAgIGxvY2FsIGRpcjsKICAgIGZvciBkaXIgaW4gIiR7QH0iOwogICAgZG8K
ICAgICAgICBsb2NhbCBkaXJfcGFyZW50PSQoZGlybmFtZSAiJHtkaXJ9Iik7CiAgICAgICAgbG9j
YWwgZGlyX25hbWU9JChiYXNlbmFtZSAiJHtkaXJ9Iik7CiAgICAgICAgcHVzaGQgJHtkaXJfcGFy
ZW50fSA+IC9kZXYvbnVsbCB8fCBkaWVmdW5jICIkRlVOQ05BTUUiICIkTElORU5PIiAiJD8iICJw
cm9ibGVtIGVudGVyaW5nICR7ZGlyX3BhcmVudH0iOwogICAgICAgIHppcCAtcSAtciAke3ppcF9w
YXRofSAke2Rpcl9uYW1lfSAtaSAnKi5qYXZhJzsKICAgICAgICBsb2NhbCByZXN1bHQ9JD87CiAg
ICAgICAgaWYgW1sgJHtyZXN1bHR9ICE9IDEyICYmICR7cmVzdWx0fSAhPSAwIF1dOyB0aGVuCiAg
ICAgICAgICAgIGRpZWZ1bmMgIiRGVU5DTkFNRSIgIiRMSU5FTk8iICIkPyIgImZhaWxlZCB0byB6
aXAgJHtkaXJfbmFtZX0iOwogICAgICAgIGZpOwogICAgICAgIHBvcGQgPiAvZGV2L251bGw7CiAg
ICBkb25lOwogICAgSU5TREVTVFRSRUU9JHtKQVZBX1BLR19TT1VSQ0VTUEFUSH0gZG9pbnMgJHt6
aXBfcGF0aH0gfHwgZGllZnVuYyAiJEZVTkNOQU1FIiAiJExJTkVOTyIgIiQ/IiAiRmFpbGVkIHRv
IGluc3RhbGwgc291cmNlIjsKICAgIEpBVkFfU09VUkNFUz0iJHtKQVZBX1BLR19TT1VSQ0VTUEFU
SH0vJHt6aXBfbmFtZX0iOwogICAgamF2YS1wa2dfZG9fd3JpdGVfCn0KamF2YS1wa2dfZG93YXIg
KCkgCnsgCiAgICBkZWJ1Zy1wcmludC1mdW5jdGlvbiAke0ZVTkNOQU1FfSAkKjsKICAgIFtbICR7
I30gLWx0IDEgXV0gJiYgZGllZnVuYyAiJEZVTkNOQU1FIiAiJExJTkVOTyIgIiQ/IiAiQXQgbGVh
c3Qgb25lIGFyZ3VtZW50IG5lZWRlZCI7CiAgICBqYXZhLXBrZ19jaGVjay1waGFzZSBpbnN0YWxs
OwogICAgamF2YS1wa2dfaW5pdF9wYXRoc187CiAgICBsb2NhbCB3YXI7CiAgICBmb3Igd2FyIGlu
ICQqOwogICAgZG8KICAgICAgICBsb2NhbCB3YXJwYXRoOwogICAgICAgIGlmIFtbIC1MICIke3dh
cn0iIF1dOyB0aGVuCiAgICAgICAgICAgIGNwICIke3dhcn0iICIke1R9IjsKICAgICAgICAgICAg
d2FycGF0aD0iJHtUfSQoYmFzZW5hbWUgIiR7d2FyfSIpIjsKICAgICAgICBlbHNlCiAgICAgICAg
ICAgIGlmIFtbIC1kICIke3dhcn0iIF1dOyB0aGVuCiAgICAgICAgICAgICAgICBlY2hvICJkb3dh
cjogd2FybmluZywgc2tpcHBpbmcgZGlyZWN0b3J5ICR7d2FyfSI7CiAgICAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgd2FycGF0aD0iJHt3YXJ9
IjsKICAgICAgICAgICAgZmk7CiAgICAgICAgZmk7CiAgICAgICAgSU5TT1BUSU9OUz0iLW0gMDY0
NCIgSU5TREVTVFRSRUU9JHtKQVZBX1BLR19XQVJERVNUfSBkb2lucyAke3dhcnBhdGh9OwogICAg
ZG9uZQp9CmphdmEtcGtnX2Vuc3VyZS1kZXAgKCkgCnsgCiAgICBkZWJ1Zy1wcmludC1mdW5jdGlv
biAke0ZVTkNOQU1FfSAkKjsKICAgIGxvY2FsIGxpbWl0X3RvPSIkezF9IjsKICAgIGxvY2FsIHRh
cmdldF9wa2c9IiR7Mn0iOwogICAgbG9jYWwgZGV2X2Vycm9yPSIiOwogICAgbG9jYWwgc3RyaXBw
ZWRfcGtnPSQoZWNobyAiJHt0YXJnZXRfcGtnfSIgfCBzZWQgCQkncy8tWzAtOV0qXChcLlswLTld
XCkqJC8vJyk7CiAgICBkZWJ1Zy1wcmludCAiTWF0Y2hpbmcgYWdhaW5zdDogJHtzdHJpcHBlZF9w
a2d9IjsKICAgIGlmIFtbICR7bGltaXRfdG99ICE9IHJ1bnRpbWUgJiYgISAoICIke0RFUEVORH0i
ID1+ICIkc3RyaXBwZWRfcGtnIiApIF1dOyB0aGVuCiAgICAgICAgZGV2X2Vycm9yPSJUaGUgZWJ1
aWxkIGlzIGF0dGVtcHRpbmcgdG8gdXNlICR7dGFyZ2V0X3BrZ30gdGhhdCBpcyBub3QiOwogICAg
ICAgIGRldl9lcnJvcj0iJHtkZXZfZXJyb3J9IGRlY2xhcmVkIGluIERFUEVORC4iOwogICAgICAg
IGlmIGlzLWphdmEtc3RyaWN0OyB0aGVuCiAgICAgICAgICAgIGVlcnJvciAiJHtkZXZfZXJyb3J9
IjsKICAgICAgICAgICAgZGllZnVuYyAiJEZVTkNOQU1FIiAiJExJTkVOTyIgIiQ/IiAiJHtkZXZf
ZXJyb3J9IjsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGlmIFtbICR7QkFTSF9TVUJTSEVMTH0g
PSAwIF1dOyB0aGVuCiAgICAgICAgICAgICAgICBlZXJyb3IgIiR7ZGV2X2Vycm9yfSI7CiAgICAg
ICAgICAgICAgICBlbG9nICJCZWNhdXNlIHlvdSBoYXZlIHRoaXMgcGFja2FnZSBpbnN0YWxsZWQg
dGhlIHBhY2thZ2Ugd2lsbCI7CiAgICAgICAgICAgICAgICBlbG9nICJidWlsZCB3aXRob3V0IHBy
b2JsZW1zLCBidXQgcGxlYXNlIHJlcG9ydCB0aGlzIHRvIjsKICAgICAgICAgICAgICAgIGVsb2cg
Imh0dHA6Ly9idWdzLmdlbnRvby5vcmciOwogICAgICAgICAgICBmaTsKICAgICAgICBmaTsKICAg
IGZpOwogICAgaWYgW1sgJHtsaW1pdF90b30gIT0gYnVpbGQgXV07IHRoZW4KICAgICAgICBpZiBb
WyAhICggJHtSREVQRU5EfSA9fiAiJHtzdHJpcHBlZF9wa2d9IiApIF1dOyB0aGVuCiAgICAgICAg
ICAgIGlmIFtbICEgKCAke1BERVBFTkR9ID1+ICIke3N0cmlwcGVkX3BrZ30iICkgXV07IHRoZW4K
ICAgICAgICAgICAgICAgIGRldl9lcnJvcj0iVGhlIGVidWlsZCBpcyBhdHRlbXB0aW5nIHRvIHVz
ZSAke3RhcmdldF9wa2d9LCI7CiAgICAgICAgICAgICAgICBkZXZfZXJyb3I9IiR7ZGV2X2Vycm9y
fSB3aXRob3V0IHNwZWNpZnlpbmcgLS1idWlsZC1vbmx5LCB0aGF0IGlzIG5vdCBkZWNsYXJlZCBp
biBSREVQRU5EIjsKICAgICAgICAgICAgICAgIGRldl9lcnJvcj0iJHtkZXZfZXJyb3J9IG9yIFBE
RVBFTkQuIjsKICAgICAgICAgICAgICAgIGlmIGlzLWphdmEtc3RyaWN0OyB0aGVuCiAgICAgICAg
ICAgICAgICAgICAgZWVycm9yICIke2Rldl9lcnJvcn0iOwogICAgICAgICAgICAgICAgICAgIGRp
ZWZ1bmMgIiRGVU5DTkFNRSIgIiRMSU5FTk8iICIkPyIgIiR7ZGV2X2Vycm9yfSI7CiAgICAgICAg
ICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgaWYgW1sgJHtCQVNIX1NVQlNIRUxMfSA9
IDAgXV07IHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgZWVycm9yICIke2Rldl9lcnJvcn0i
OwogICAgICAgICAgICAgICAgICAgICAgICBlbG9nICJUaGUgcGFja2FnZSB3aWxsIGJ1aWxkIHdp
dGhvdXQgcHJvYmxlbXMsIGJ1dCBtYXkgZmFpbCB0byBydW4iOwogICAgICAgICAgICAgICAgICAg
ICAgICBlbG9nICJpZiB5b3UgZG9uJ3QgaGF2ZSAke3RhcmdldF9wa2d9IGluc3RhbGxlZCwgc28g
cGxlYXNlIHJlcG9ydCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGVsb2cgInRoaXMgdG8gaHR0
cDovL2J1Z3MuZ2VudG9vLm9yZyI7CiAgICAgICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAg
ICAgICBmaTsKICAgICAgICAgICAgZmk7CiAgICAgICAgZmk7CiAgICBmaQp9CmphdmEtcGtnX2Vu
c3VyZS1nY2ogKCkgCnsgCiAgICBpZiAhIGJ1aWx0X3dpdGhfdXNlIHN5cy1kZXZlbC9nY2MgZ2Nq
OyB0aGVuCiAgICAgICAgZXdhcm47CiAgICAgICAgZXdhcm4gIllvdSBtdXN0IGJ1aWxkIGdjYyB3
aXRoIHRoZSBnY2ogc3VwcG9ydCB0byBidWlsZCB3aXRoIGdjaiI7CiAgICAgICAgZXdhcm47CiAg
ICAgICAgZWJlZXAgNTsKICAgICAgICBkaWVmdW5jICIkRlVOQ05BTUUiICIkTElORU5PIiAiJD8i
ICJObyBHQ0ogc3VwcG9ydCBmb3VuZCEiOwogICAgZmkKfQpqYXZhLXBrZ19lbnN1cmUtbm8tYnVu
ZGxlZC1qYXJzICgpIAp7IAogICAgZGVidWctcHJpbnQtZnVuY3Rpb24gJHtGVU5DTkFNRX0gJCo7
CiAgICBsb2NhbCBidW5kbGVkX2phcnM9JChqYXZhLXBrZ19maW5kLW5vcm1hbC1qYXJzKTsKICAg
IGlmIFtbIC1uICR7YnVuZGxlZF9qYXJzfSBdXTsgdGhlbgogICAgICAgIGVjaG8gIkJ1bmRsZWQg
amFycyBmb3VuZDoiOwogICAgICAgIGxvY2FsIGphcjsKICAgICAgICBmb3IgamFyIGluICR7YnVu
ZGxlZF9qYXJzfTsKICAgICAgICBkbwogICAgICAgICAgICBlY2hvICQocHdkKSR7amFyLy4vfTsK
ICAgICAgICBkb25lOwogICAgICAgIGRpZWZ1bmMgIiRGVU5DTkFNRSIgIiRMSU5FTk8iICIkPyIg
IkJ1bmRsZWQgamFycyBmb3VuZCEiOwogICAgZmkKfQpqYXZhLXBrZ19lbnN1cmUtdGVzdCAoKSAK
eyAKICAgIGlmIGhhc3EgdGVzdCAke0ZFQVRVUkVTfSAmJiAhIGhhc3EgLXRlc3QgJHtGRUFUVVJF
U30gJiYgaGFzcSB0ZXN0ICR7SVVTRX0gJiYgISB1c2UgdGVzdDsgdGhlbgogICAgICAgIGVlcnJv
ciAiWW91IHNwZWNpZmllZCBGRUFUVVJFUz10ZXN0LCBidXQgVVNFPXRlc3QgaXMgbmVlZGVkIjsK
ICAgICAgICBlZXJyb3IgInRvIHB1bGwgaW4gdGhlIGFkZGl0aW9uYWwgZGVwZW5kZW5jaWVzIGZv
ciB0ZXN0aW5nIjsKICAgICAgICBkaWVmdW5jICIkRlVOQ05BTUUiICIkTElORU5PIiAiJD8iICJO
ZWVkIFVTRT10ZXN0IGVuYWJsZWQiOwogICAgZmkKfQpqYXZhLXBrZ19lbnN1cmUtdm0tdmVyc2lv
bi1lcSAoKSAKeyAKICAgIGRlYnVnLXByaW50LWZ1bmN0aW9uICR7RlVOQ05BTUV9ICQqOwogICAg
aWYgISBqYXZhLXBrZ19pcy12bS12ZXJzaW9uLWVxICRAOyB0aGVuCiAgICAgICAgZGVidWctcHJp
bnQgIlZNIGlzIG5vdCBzdWZmaWVudCI7CiAgICAgICAgZWVycm9yICJUaGlzIHBhY2thZ2UgcmVx
dWlyZXMgYSBKYXZhIFZNIHZlcnNpb24gPSAkQCI7CiAgICAgICAgZWluZm8gIlBsZWFzZSB1c2Ug
amF2YS1jb25maWcgLVMgdG8gc2V0IHRoZSBjb3JyZWN0IG9uZSI7CiAgICAgICAgZGllZnVuYyAi
JEZVTkNOQU1FIiAiJExJTkVOTyIgIiQ/IiAiQWN0aXZlIEphdmEgVk0gdG9vIG9sZCI7CiAgICBm
aQp9CmphdmEtcGtnX2Vuc3VyZS12bS12ZXJzaW9uLWdlICgpIAp7IAogICAgZGVidWctcHJpbnQt
ZnVuY3Rpb24gJHtGVU5DTkFNRX0gJCo7CiAgICBpZiAhIGphdmEtcGtnX2lzLXZtLXZlcnNpb24t
Z2UgIiRAIjsgdGhlbgogICAgICAgIGRlYnVnLXByaW50ICJ2bSBpcyBub3Qgc3VmZmllbnQiOwog
ICAgICAgIGVlcnJvciAiVGhpcyBwYWNrYWdlIHJlcXVpcmVzIGEgSmF2YSBWTSB2ZXJzaW9uID49
ICRAIjsKICAgICAgICBlaW5mbyAiUGxlYXNlIHVzZSBqYXZhLWNvbmZpZyAtUyB0byBzZXQgdGhl
IGNvcnJlY3Qgb25lIjsKICAgICAgICBkaWVmdW5jICIkRlVOQ05BTUUiICIkTElORU5PIiAiJD8i
ICJBY3RpdmUgSmF2YSBWTSB0b28gb2xkIjsKICAgIGZpCn0KamF2YS1wa2dfZW5zdXJlLXZtLXZl
cnNpb24tc3VmZmljaWVudCAoKSAKeyAKICAgIGRlYnVnLXByaW50LWZ1bmN0aW9uICR7RlVOQ05B
TUV9ICQqOwogICAgaWYgISBqYXZhLXBrZ19pcy12bS12ZXJzaW9uLXN1ZmZpY2llbnQ7IHRoZW4K
ICAgICAgICBkZWJ1Zy1wcmludCAiVk0gaXMgbm90IHN1ZmZpZW50IjsKICAgICAgICBlZXJyb3Ig
IkN1cnJlbnQgSmF2YSBWTSBjYW5ub3QgYnVpbGQgdGhpcyBwYWNrYWdlIjsKICAgICAgICBlaW5m
byAiUGxlYXNlIHVzZSBqYXZhLWNvbmZpZyAtUyB0byBzZXQgdGhlIGNvcnJlY3Qgb25lIjsKICAg
ICAgICBkaWVmdW5jICIkRlVOQ05BTUUiICIkTElORU5PIiAiJD8iICJBY3RpdmUgSmF2YSBWTSBj
YW5ub3QgYnVpbGQgdGhpcyBwYWNrYWdlIjsKICAgIGZpCn0KamF2YS1wa2dfZXhwYW5kX2Rpcl8g
KCkgCnsgCiAgICBwdXNoZCAiJChkaXJuYW1lICIkezF9IikiID4gL2Rldi9udWxsIDI+JjE7CiAg
ICBwd2Q7CiAgICBwb3BkID4gL2Rldi9udWxsIDI+JjEKfQpqYXZhLXBrZ19maWx0ZXItY29tcGls
ZXIgKCkgCnsgCiAgICBKQVZBX1BLR19GSUxURVJfQ09NUElMRVI9IiR7SkFWQV9QS0dfRklMVEVS
X0NPTVBJTEVSfSAkQCIKfQpqYXZhLXBrZ19maW5kLW5vcm1hbC1qYXJzICgpIAp7IAogICAgbG9j
YWwgZGlyPSQxOwogICAgW1sgLW4gIiR7ZGlyfSIgXV0gfHwgZGlyPSIke1dPUktESVJ9IjsKICAg
IGxvY2FsIGZvdW5kOwogICAgZm9yIGphciBpbiAkKGZpbmQgIiR7ZGlyfSIgLW5hbWUgIiouamFy
IiAtdHlwZSBmKTsKICAgIGRvCiAgICAgICAgZWNobyAiJHtqYXJ9IjsKICAgICAgICBmb3VuZD0i
dHJ1ZSI7CiAgICBkb25lOwogICAgW1sgLW4gIiR7Zm91bmR9IiBdXTsKICAgIHJldHVybiAkPwp9
CmphdmEtcGtnX2ZvcmNlLWNvbXBpbGVyICgpIAp7IAogICAgSkFWQV9QS0dfRk9SQ0VfQ09NUElM
RVI9IiRAIgp9CmphdmEtcGtnX2Z1bmMtZXhpc3RzICgpIAp7IAogICAgaWYgW1sgLW4gIiQoZGVj
bGFyZSAtZiAkezF9KSIgXV07IHRoZW4KICAgICAgICByZXR1cm4gMDsKICAgIGVsc2UKICAgICAg
ICByZXR1cm4gMTsKICAgIGZpCn0KamF2YS1wa2dfZ2V0LWN1cnJlbnQtdm0gKCkgCnsgCiAgICBq
YXZhLWNvbmZpZyAtZgp9CmphdmEtcGtnX2dldC1qYXZhYyAoKSAKeyAKICAgIGRlYnVnLXByaW50
LWZ1bmN0aW9uICR7RlVOQ05BTUV9ICQqOwogICAgbG9jYWwgY29tcGlsZXI9IiR7R0VOVE9PX0NP
TVBJTEVSfSI7CiAgICBsb2NhbCBjb21waWxlcl9leGVjdXRhYmxlOwogICAgaWYgW1sgIiR7Y29t
cGlsZXJ9IiA9ICJqYXZhYyIgXV07IHRoZW4KICAgICAgICBjb21waWxlcl9leGVjdXRhYmxlPSJq
YXZhYyI7CiAgICBlbHNlCiAgICAgICAgbG9jYWwgY29tcGlsZXJfZW52PSIvdXNyL3NoYXJlL2ph
dmEtY29uZmlnLTIvY29tcGlsZXIvJHtjb21waWxlcn0iOwogICAgICAgIGlmIFtbIC1mICR7Y29t
cGlsZXJfZW52fSBdXTsgdGhlbgogICAgICAgICAgICBsb2NhbCBvbGRfamF2YWM9JHtKQVZBQ307
CiAgICAgICAgICAgIHVuc2V0IEpBVkFDOwogICAgICAgICAgICBjb21waWxlcl9leGVjdXRhYmxl
PSIkKHNvdXJjZSAke2NvbXBpbGVyX2Vudn0gMT4vZGV2L251bGwgMj4mMTsgZWNobyAke0pBVkFD
fSkiOwogICAgICAgICAgICBleHBvcnQgSkFWQUM9JHtvbGRfamF2YWN9OwogICAgICAgICAgICBp
ZiBbWyAteiAke2NvbXBpbGVyX2V4ZWN1dGFibGV9IF1dOyB0aGVuCiAgICAgICAgICAgICAgICBl
Y2hvICJKQVZBQyBpcyBlbXB0eSBvciB1bmRlZmluZWQgaW4gJHtjb21waWxlcl9lbnZ9IjsKICAg
ICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgICBmaTsKICAgICAgICAgICAgaWYgW1sg
ISAteCAke2NvbXBpbGVyX2V4ZWN1dGFibGV9IF1dOyB0aGVuCiAgICAgICAgICAgICAgICBlY2hv
ICIke2NvbXBpbGVyX2V4ZWN1dGFibGV9IGRvZXNuJ3QgZXhpc3QsIG9yIGlzbid0IGV4ZWN1dGFi
bGUiOwogICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgIGZpOwogICAgICAgIGVs
c2UKICAgICAgICAgICAgZWNobyAiQ291bGQgbm90IGZpbmQgZW52aXJvbm1lbnQgZmlsZSBmb3Ig
JHtjb21waWxlcn0iOwogICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICBmaTsKICAgIGZpOwog
ICAgZWNobyAke2NvbXBpbGVyX2V4ZWN1dGFibGV9Cn0KamF2YS1wa2dfZ2V0LWpuaS1jZmxhZ3Mg
KCkgCnsgCiAgICBsb2NhbCBmbGFncz0iLUkke0pBVkFfSE9NRX0vaW5jbHVkZSI7CiAgICBsb2Nh
bCBwbGF0Zm9ybT0ibGludXgiOwogICAgdXNlIGVsaWJjX0ZyZWVCU0QgJiYgcGxhdGZvcm09ImZy
ZWVic2QiOwogICAgZmxhZ3M9IiR7ZmxhZ3N9IC1JJHtKQVZBX0hPTUV9L2luY2x1ZGUvJHtwbGF0
Zm9ybX0iOwogICAgZWNobyAke2ZsYWdzfQp9CmphdmEtcGtnX2dldC1zb3VyY2UgKCkgCnsgCiAg
ICBlY2hvICR7SkFWQV9QS0dfV0FOVF9TT1VSQ0U6LSQoZGVwZW5kLWphdmEtcXVlcnkgLS1nZXQt
bG93ZXN0ICIke0RFUEVORH0gJHtSREVQRU5EfSIpfQp9CmphdmEtcGtnX2dldC10YXJnZXQgKCkg
CnsgCiAgICBlY2hvICR7SkFWQV9QS0dfV0FOVF9UQVJHRVQ6LSQoZGVwZW5kLWphdmEtcXVlcnkg
LS1nZXQtbG93ZXN0ICIke0RFUEVORH0gJHtSREVQRU5EfSIpfQp9CmphdmEtcGtnX2dldC12bS12
ZW5kb3IgKCkgCnsgCiAgICBkZWJ1Zy1wcmludC1mdW5jdGlvbiAke0ZVTkNOQU1FfSAkKjsKICAg
IGxvY2FsIHZtPSIkKGphdmEtcGtnX2dldC1jdXJyZW50LXZtKSI7CiAgICB2bT0iJHt2bS8tKi99
IjsKICAgIGVjaG8gIiR7dm19Igp9CmphdmEtcGtnX2dldC12bS12ZXJzaW9uICgpIAp7IAogICAg
ZGVidWctcHJpbnQtZnVuY3Rpb24gJHtGVU5DTkFNRX0gJCo7CiAgICBqYXZhLWNvbmZpZyAtZyBQ
Uk9WSURFU19WRVJTSU9OCn0KamF2YS1wa2dfZ2V0amFyICgpIAp7IAogICAgZGVidWctcHJpbnQt
ZnVuY3Rpb24gJHtGVU5DTkFNRX0gJCo7CiAgICBsb2NhbCBidWlsZF9vbmx5PSIiOwogICAgbG9j
YWwgdmlydHVhbD0iIjsKICAgIFtbICIke0VCVUlMRF9QSEFTRX0iID09ICJ0ZXN0IiBdXSAmJiBi
dWlsZF9vbmx5PSJidWlsZCI7CiAgICB3aGlsZSBbWyAiJHsxfSIgPT0gLS0qIF1dOyBkbwogICAg
ICAgIGlmIFtbICIkezF9IiA9ICItLWJ1aWxkLW9ubHkiIF1dOyB0aGVuCiAgICAgICAgICAgIGJ1
aWxkX29ubHk9ImJ1aWxkIjsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGlmIFtbICIkezF9IiA9
PSAtLSogXV07IHRoZW4KICAgICAgICAgICAgICAgIHZpcnR1YWw9InRydWUiOwogICAgICAgICAg
ICBlbHNlCiAgICAgICAgICAgICAgICBkaWVmdW5jICIkRlVOQ05BTUUiICIkTElORU5PIiAiJD8i
ICJqYXZhLXBrZ19qYXItZnJvbSBjYWxsZWQgd2l0aCB1bmtub3duIHBhcmFtZXRlcjogJHsxfSI7
CiAgICAgICAgICAgIGZpOwogICAgICAgIGZpOwogICAgICAgIHNoaWZ0OwogICAgZG9uZTsKICAg
IFtbICR7I30gLW5lIDIgXV0gJiYgZGllZnVuYyAiJEZVTkNOQU1FIiAiJExJTkVOTyIgIiQ/IiAi
JHtGVU5DTkFNRX0gdGFrZXMgb25seSB0d28gYXJndW1lbnRzIGJlc2lkZXMgLS0qIjsKICAgIGxv
Y2FsIHBrZz0iJHsxfSIgdGFyZ2V0X2phcj0iJHsyfSIgamFyOwogICAgW1sgLXogJHtwa2d9IF1d
ICYmIGRpZWZ1bmMgIiRGVU5DTkFNRSIgIiRMSU5FTk8iICIkPyIgIk11c3Qgc3BlY2lmeSBwYWNr
YWdlIHRvIGdldCBhIGphciBmcm9tIjsKICAgIFtbIC16ICR7dGFyZ2V0X2phcn0gXV0gJiYgZGll
ZnVuYyAiJEZVTkNOQU1FIiAiJExJTkVOTyIgIiQ/IiAiTXVzdCBzcGVjaWZ5IGphciB0byBnZXQi
OwogICAgbG9jYWwgZXJyb3JfbXNnPSJDb3VsZCBub3QgZmluZCBjbGFzc3BhdGggZm9yICR7cGtn
fS4gQXJlIHlvdSBzdXJlIGl0cyBpbnN0YWxsZWQ/IjsKICAgIGxvY2FsIGNsYXNzcGF0aDsKICAg
IGNsYXNzcGF0aD0kKGphdmEtY29uZmlnIC0tY2xhc3NwYXRoPSR7cGtnfSk7CiAgICBbWyAkPyAh
PSAwIF1dICYmIGRpZWZ1bmMgIiRGVU5DTkFNRSIgIiRMSU5FTk8iICIkPyIgJHtlcnJvcl9tc2d9
OwogICAgamF2YS1wa2dfZW5zdXJlLWRlcCAiJHtidWlsZF9vbmx5fSIgIiR7cGtnfSI7CiAgICBp
ZiBbWyAtbiAiJHt2aXJ0dWFsfSIgXV07IHRoZW4KICAgICAgICBqYXZhLXBrZ19yZWNvcmQtamFy
XyAiJHtwa2d9IjsKICAgICAgICBidWlsZF9vbmx5PSJ0cnVlIjsKICAgIGZpOwogICAgZm9yIGph
ciBpbiAke2NsYXNzcGF0aC8vOi8gfTsKICAgIGRvCiAgICAgICAgaWYgW1sgISAtZiAiJHtqYXJ9
IiBdXTsgdGhlbgogICAgICAgICAgICBkaWVmdW5jICIkRlVOQ05BTUUiICIkTElORU5PIiAiJD8i
ICJJbnN0YWxsYXRpb24gcHJvYmxlbSB3aXRoIGphciAke2phcn0gaW4gJHtwa2d9IC0gaXMgaXQg
aW5zdGFsbGVkPyI7CiAgICAgICAgZmk7CiAgICAgICAgaWYgW1sgIiQoYmFzZW5hbWUgJHtqYXJ9
KSIgPT0gIiR7dGFyZ2V0X2phcn0iIF1dOyB0aGVuCiAgICAgICAgICAgIFtbIC16ICIke2J1aWxk
X29ubHl9IiBdXSAmJiBqYXZhLXBrZ19yZWNvcmQtamFyXyAiJHtwa2d9IiAiJHtqYXJ9IjsKICAg
ICAgICAgICAgZWNobyAiJHtqYXJ9IjsKICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgZmk7
CiAgICBkb25lOwogICAgZGllZnVuYyAiJEZVTkNOQU1FIiAiJExJTkVOTyIgIiQ/IiAiQ291bGQg
bm90IGZpbmQgJHt0YXJnZXRfamFyfSBpbiAke3BrZ30iOwogICAgcmV0dXJuIDEKfQpqYXZhLXBr
Z19nZXRqYXJzICgpIAp7IAogICAgZGVidWctcHJpbnQtZnVuY3Rpb24gJHtGVU5DTkFNRX0gJCo7
CiAgICBsb2NhbCBidWlsZF9vbmx5PSIiOwogICAgbG9jYWwgZGVlcD0iIjsKICAgIFtbICIke0VC
VUlMRF9QSEFTRX0iID09ICJ0ZXN0IiBdXSAmJiBidWlsZF9vbmx5PSJidWlsZCI7CiAgICB3aGls
ZSBbWyAiJHsxfSIgPT0gLS0qIF1dOyBkbwogICAgICAgIGlmIFtbICIkezF9IiA9ICItLWJ1aWxk
LW9ubHkiIF1dOyB0aGVuCiAgICAgICAgICAgIGJ1aWxkX29ubHk9ImJ1aWxkIjsKICAgICAgICBl
bHNlCiAgICAgICAgICAgIGlmIFtbICIkezF9IiA9ICItLXdpdGgtZGVwZW5kZW5jaWVzIiBdXTsg
dGhlbgogICAgICAgICAgICAgICAgZGVlcD0iLS13aXRoLWRlcGVuZGVuY2llcyI7CiAgICAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgICAgIGRpZWZ1bmMgIiRGVU5DTkFNRSIgIiRMSU5FTk8iICIk
PyIgImphdmEtcGtnX2phci1mcm9tIGNhbGxlZCB3aXRoIHVua25vd24gcGFyYW1ldGVyOiAkezF9
IjsKICAgICAgICAgICAgZmk7CiAgICAgICAgZmk7CiAgICAgICAgc2hpZnQ7CiAgICBkb25lOwog
ICAgW1sgJHsjfSAtbmUgMSBdXSAmJiBkaWVmdW5jICIkRlVOQ05BTUUiICIkTElORU5PIiAiJD8i
ICIke0ZVTkNOQU1FfSB0YWtlcyBvbmx5IG9uZSBhcmd1bWVudCBiZXNpZGVzIC0tKiI7CiAgICBs
b2NhbCBjbGFzc3BhdGggcGtncz0iJHsxfSI7CiAgICBqYXJzPSIkKGphdmEtY29uZmlnICR7ZGVl
cH0gLS1jbGFzc3BhdGg9JHtwa2dzfSkiOwogICAgW1sgJD8gIT0gMCB8fCAteiAiJHtqYXJzfSIg
XV0gJiYgZGllZnVuYyAiJEZVTkNOQU1FIiAiJExJTkVOTyIgIiQ/IiAiamF2YS1jb25maWcgLS1j
bGFzc3BhdGg9JHtwa2dzfSBmYWlsZWQiOwogICAgZGVidWctcHJpbnQgIiR7cGtnc306JHtqYXJz
fSI7CiAgICBmb3IgcGtnIGluICR7cGtncy8vLC8gfTsKICAgIGRvCiAgICAgICAgamF2YS1wa2df
ZW5zdXJlLWRlcCAiJHtidWlsZF9vbmx5fSIgIiR7cGtnfSI7CiAgICBkb25lOwogICAgaWYgW1sg
LXogIiR7Y2xhc3NwYXRofSIgXV07IHRoZW4KICAgICAgICBjbGFzc3BhdGg9IiR7amFyc30iOwog
ICAgZWxzZQogICAgICAgIGNsYXNzcGF0aD0iJHtjbGFzc3BhdGh9OiR7amFyc30iOwogICAgZmk7
CiAgICBpZiBbWyAteiAiJHtidWlsZF9vbmx5fSIgXV07IHRoZW4KICAgICAgICBmb3IgcGtnIGlu
ICR7cGtncy8vLC8gfTsKICAgICAgICBkbwogICAgICAgICAgICBqYXZhLXBrZ19yZWNvcmQtamFy
XyAiJHtwa2d9IjsKICAgICAgICBkb25lOwogICAgZmk7CiAgICBlY2hvICIke2NsYXNzcGF0aH0i
Cn0KamF2YS1wa2dfaW5pdCAoKSAKeyAKICAgIGRlYnVnLXByaW50LWZ1bmN0aW9uICR7RlVOQ05B
TUV9ICQqOwogICAgdW5zZXQgSkFWQUM7CiAgICB1bnNldCBKQVZBX0hPTUU7CiAgICBsb2NhbCBz
aWxlbmNlPSIke1NJTEVOQ0VfSkFWQV9PUFRJT05TX1dBUk5JTkd9IjsKICAgIGxvY2FsIGFjY2Vw
dD0iJHtJX1dBTlRfR0xPQkFMX0pBVkFfT1BUSU9OU30iOwogICAgaWYgW1sgLW4gJHtfSkFWQV9P
UFRJT05TfSAmJiAteiAke2FjY2VwdH0gJiYgLXogJHtzaWxlbmNlfSBdXTsgdGhlbgogICAgICAg
IGV3YXJuICJfSkFWQV9PUFRJT05TIGNoYW5nZXMgd2hhdCBqYXZhIC12ZXJzaW9uIG91dHB1dHMg
YXQgbGVhc3QgZm9yIjsKICAgICAgICBld2FybiAic3VuLWpkayB2bXMgYW5kIGFuZCBhcyBzdWNo
IGJyZWFrIGNvbmZpZ3VyZSBzY3JpcHRzIHRoYXQiOwogICAgICAgIGV3YXJuICJ1c2UgaXQgKGZv
ciBleGFtcGxlIGFwcC1vZmZpY2Uvb3Blbm9mZmljZSkgc28gd2UgZmlsdGVyIGl0IG91dC4iOwog
ICAgICAgIGV3YXJuICJVc2UgU0lMRU5DRV9KQVZBX09QVElPTlNfV0FSTklORz10cnVlIGluIHRo
ZSBlbnZpcm9ubWVudCAodXNlIjsKICAgICAgICBld2FybiAibWFrZS5jb25mIGZvciBleGFtcGxl
KSB0byBzaWxlbmNlIHRoaXMgd2FybmluZyBvciI7CiAgICAgICAgZXdhcm4gIklfV0FOVF9HTE9C
QUxfSkFWQV9PUFRJT05TIHRvIG5vdCBmaWx0ZXIgaXQuIjsKICAgIGZpOwogICAgaWYgW1sgLXog
JHthY2NlcHR9IF1dOyB0aGVuCiAgICAgICAgdW5zZXQgX0pBVkFfT1BUSU9OUzsKICAgICAgICBJ
X1dBTlRfR0xPQkFMX0pBVkFfT1BUSU9OUz0idHJ1ZSI7CiAgICBmaTsKICAgIGlmIGphdmEtcGtn
X2Z1bmMtZXhpc3RzIGFudF9zcmNfdW5wYWNrOyB0aGVuCiAgICAgICAgamF2YS1wa2dfYW5ub3Vu
Y2UtcWEtdmlvbGF0aW9uICJVc2luZyBvbGQgYW50X3NyY191bnBhY2suIFNob3VsZCBiZSBzcmNf
dW5wYWNrIjsKICAgIGZpOwogICAgamF2YS1wa2dfaW5pdF9wYXRoc187CiAgICBqYXZhLXBrZ19z
d2l0Y2gtdm07CiAgICBQQVRIPSR7SkFWQV9IT01FfS9iaW46JHtQQVRIfTsKICAgIGphdmEtcGtn
X2NoZWNrLWppa2VzOwogICAgZXhwb3J0IENMQVNTUEFUSD07CiAgICBleHBvcnQgQU5UX1RBU0tT
PTsKICAgIGV4cG9ydCBBTlRfT1BUUz0KfQpqYXZhLXBrZ19pbml0LWNvbXBpbGVyXyAoKSAKeyAK
ICAgIGRlYnVnLXByaW50LWZ1bmN0aW9uICR7RlVOQ05BTUV9ICQqOwogICAgaWYgW1sgLW4gJHtH
RU5UT09fQ09NUElMRVJ9IF1dOyB0aGVuCiAgICAgICAgZGVidWctcHJpbnQgIkdFTlRPT19DT01Q
SUxFUiBhbHJlYWR5IHNldCI7CiAgICAgICAgcmV0dXJuOwogICAgZmk7CiAgICBsb2NhbCBjb21w
aWxlcnM7CiAgICBpZiBbWyAteiAke0pBVkFfUEtHX0ZPUkNFX0NPTVBJTEVSfSBdXTsgdGhlbgog
ICAgICAgIGNvbXBpbGVycz0iJChzb3VyY2UgJHtKQVZBX1BLR19DT01QSUxFUlNfQ09ORn0gMT4v
ZGV2L251bGwgMj4mMTsgZWNobwkke0NPTVBJTEVSU30pIjsKICAgIGVsc2UKICAgICAgICBjb21w
aWxlcnM9JHtKQVZBX1BLR19GT1JDRV9DT01QSUxFUn07CiAgICBmaTsKICAgIGRlYnVnLXByaW50
ICJSZWFkIFwiJHtjb21waWxlcnN9XCIgZnJvbSAke0pBVkFfUEtHX0NPTVBJTEVSU19DT05GfSI7
CiAgICBsb2NhbCBjb21waWxlcjsKICAgIGZvciBjb21waWxlciBpbiAke2NvbXBpbGVyc307CiAg
ICBkbwogICAgICAgIGRlYnVnLXByaW50ICJDaGVja2luZyAke2NvbXBpbGVyfS4uLiI7CiAgICAg
ICAgaWYgW1sgJHtjb21waWxlcn0gPSAiamF2YWMiIF1dOyB0aGVuCiAgICAgICAgICAgIGRlYnVn
LXByaW50ICJGb3VuZCBqYXZhYy4uLiBicmVha2luZyI7CiAgICAgICAgICAgIGV4cG9ydCBHRU5U
T09fQ09NUElMRVI9ImphdmFjIjsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZmk7CiAgICAg
ICAgaWYgaGFzICR7Y29tcGlsZXJ9ICR7SkFWQV9QS0dfRklMVEVSX0NPTVBJTEVSfTsgdGhlbgog
ICAgICAgICAgICBpZiBbWyAteiAke0pBVkFfUEtHX0ZPUkNFX0NPTVBJTEVSfSBdXTsgdGhlbgog
ICAgICAgICAgICAgICAgZWluZm8gIkZpbHRlcmluZyAke2NvbXBpbGVyfSI7CiAgICAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgICAgZmk7CiAgICAgICAgZmk7CiAgICAgICAgbG9jYWwg
Y29tcGlsZXJfZW52PSIke0pBVkFfUEtHX0NPTVBJTEVSX0RJUn0vJHtjb21waWxlcn0iOwogICAg
ICAgIGlmIFtbIC1mICR7Y29tcGlsZXJfZW52fSBdXTsgdGhlbgogICAgICAgICAgICBsb2NhbCBk
ZXNpcmVkX3RhcmdldD0iJChqYXZhLXBrZ19nZXQtdGFyZ2V0KSI7CiAgICAgICAgICAgIGxvY2Fs
IGRlc2lyZWRfc291cmNlPSIkKGphdmEtcGtnX2dldC1zb3VyY2UpIjsKICAgICAgICAgICAgbG9j
YWwgc3VwcG9ydGVkX3RhcmdldD0kKHNvdXJjZSAke2NvbXBpbGVyX2Vudn0gMT4vZGV2L251bGwg
Mj4mMTsgZWNobyAke1NVUFBPUlRFRF9UQVJHRVR9KTsKICAgICAgICAgICAgaWYgISBoYXMgJHtk
ZXNpcmVkX3RhcmdldH0gJHtzdXBwb3J0ZWRfdGFyZ2V0fTsgdGhlbgogICAgICAgICAgICAgICAg
ZXdhcm4gIiR7Y29tcGlsZXJ9IGRvZXMgbm90IHN1cHBvcnQgLXRhcmdldCAke2Rlc2lyZWRfdGFy
Z2V0fSwJc2tpcHBpbmciOwogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIGZp
OwogICAgICAgICAgICBpZiB2ZXJzaW9uX2lzX2F0X2xlYXN0ICIke2Rlc2lyZWRfc291cmV9IiAi
MS4zIjsgdGhlbgogICAgICAgICAgICAgICAgbG9jYWwgc3VwcG9ydGVkX3NvdXJjZT0kKHNvdXJj
ZSAke2NvbXBpbGVyX2Vudn0gMT4vZGV2L251bGwgMj4mMTsgZWNobyAke1NVUFBPUlRFRF9TT1VS
Q0V9KTsKICAgICAgICAgICAgICAgIGlmICEgaGFzICR7ZGVzaXJlZF9zb3VyY2V9ICR7c3VwcG9y
dGVkX3NvdXJjZX07IHRoZW4KICAgICAgICAgICAgICAgICAgICBld2FybiAiJHtjb21waWxlcn0g
ZG9lcyBub3Qgc3VwcG9ydCAtc291cmNlICR7ZGVzaXJlZF9zb3VyY2V9LCBza2lwcGluZyI7CiAg
ICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICBmaTsKICAgICAgICAg
ICAgZmk7CiAgICAgICAgICAgIGV4cG9ydCBHRU5UT09fQ09NUElMRVI9IiR7Y29tcGlsZXJ9IjsK
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZWxzZQogICAgICAgICAgICBld2FybiAiQ291bGQg
bm90IGZpbmQgY29uZmlndXJhdGlvbiBmb3IgJHtjb21waWxlcn0sIHNraXBwaW5nIjsKICAgICAg
ICAgICAgZXdhcm4gIlBlcmhhcHMgaXQgaXMgbm90IGluc3RhbGxlZD8iOwogICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICBmaTsKICAgIGRvbmU7CiAgICBpZiBbWyAteiAke0dFTlRPT19DT01Q
SUxFUn0gXV07IHRoZW4KICAgICAgICBpZiBbWyAtbiAke2NvbXBpbGVyc30gXV07IHRoZW4KICAg
ICAgICAgICAgZWluZm8gIk5vIHN1aXRhYmxlIGNvbXBpbGVyIGZvdW5kOiBkZWZhdWx0aW5nIGph
dmFjIGZvciBjb21waWxhdGlvbiI7CiAgICAgICAgZWxzZQogICAgICAgICAgICA6OwogICAgICAg
IGZpOwogICAgICAgIGV4cG9ydCBHRU5UT09fQ09NUElMRVI9amF2YWM7CiAgICBlbHNlCiAgICAg
ICAgZWluZm8gIlVzaW5nICR7R0VOVE9PX0NPTVBJTEVSfSBmb3IgY29tcGlsYXRpb24iOwogICAg
ZmkKfQpqYXZhLXBrZ19pbml0X3BhdGhzXyAoKSAKeyAKICAgIGRlYnVnLXByaW50LWZ1bmN0aW9u
ICR7RlVOQ05BTUV9ICQqOwogICAgbG9jYWwgcGtnX25hbWU7CiAgICBpZiBbWyAiJFNMT1QiID09
ICIwIiBdXTsgdGhlbgogICAgICAgIEpBVkFfUEtHX05BTUU9IiR7UE59IjsKICAgIGVsc2UKICAg
ICAgICBKQVZBX1BLR19OQU1FPSIke1BOfS0ke1NMT1R9IjsKICAgIGZpOwogICAgSkFWQV9QS0df
U0hBUkVQQVRIPSIke0RFU1RUUkVFfS9zaGFyZS8ke0pBVkFfUEtHX05BTUV9IjsKICAgIEpBVkFf
UEtHX1NPVVJDRVNQQVRIPSIke0pBVkFfUEtHX1NIQVJFUEFUSH0vc291cmNlcy8iOwogICAgSkFW
QV9QS0dfRU5WPSIke0R9JHtKQVZBX1BLR19TSEFSRVBBVEh9L3BhY2thZ2UuZW52IjsKICAgIEpB
VkFfUEtHX1ZJUlRVQUxTX1BBVEg9IiR7REVTVFRSRUV9L3NoYXJlL2phdmEtY29uZmlnLTIvdmly
dHVhbHMiOwogICAgSkFWQV9QS0dfVklSVFVBTF9QUk9WSURFUj0iJHtEfS8ke0pBVkFfUEtHX1ZJ
UlRVQUxTX1BBVEh9LyR7SkFWQV9QS0dfTkFNRX0iOwogICAgW1sgLXogIiR7SkFWQV9QS0dfSkFS
REVTVH0iIF1dICYmIEpBVkFfUEtHX0pBUkRFU1Q9IiR7SkFWQV9QS0dfU0hBUkVQQVRIfS9saWIi
OwogICAgW1sgLXogIiR7SkFWQV9QS0dfTElCREVTVH0iIF1dICYmIEpBVkFfUEtHX0xJQkRFU1Q9
IiR7REVTVFRSRUV9LyQoZ2V0X2xpYmRpcikvJHtKQVZBX1BLR19OQU1FfSI7CiAgICBbWyAteiAi
JHtKQVZBX1BLR19XQVJERVNUfSIgXV0gJiYgSkFWQV9QS0dfV0FSREVTVD0iJHtKQVZBX1BLR19T
SEFSRVBBVEh9L3dlYmFwcHMiOwogICAgZGVidWctcHJpbnQgIkpBVkFfUEtHX1NIQVJFUEFUSDog
JHtKQVZBX1BLR19TSEFSRVBBVEh9IjsKICAgIGRlYnVnLXByaW50ICJKQVZBX1BLR19FTlY6ICR7
SkFWQV9QS0dfRU5WfSI7CiAgICBkZWJ1Zy1wcmludCAiSkFWQV9QS0dfSkFSREVTVDogJHtKQVZB
X1BLR19KQVJERVNUfSI7CiAgICBkZWJ1Zy1wcmludCAiSkFWQV9QS0dfTElCREVTVDogJHtKQVZB
X1BLR19MSUJERVNUfSI7CiAgICBkZWJ1Zy1wcmludCAiSkFWQV9QS0dfV0FSREVTVDogJHtKQVZB
X1BLR19XQVJERVNUfSIKfQpqYXZhLXBrZ19pcy12bS12ZXJzaW9uLWVxICgpIAp7IAogICAgZGVi
dWctcHJpbnQtZnVuY3Rpb24gJHtGVU5DTkFNRX0gJCo7CiAgICBsb2NhbCBuZWVkZWRfdmVyc2lv
bj0iJEAiOwogICAgW1sgLXogIiR7bmVlZGVkX3ZlcnNpb259IiBdXSAmJiBkaWVmdW5jICIkRlVO
Q05BTUUiICIkTElORU5PIiAiJD8iICJuZWVkIGFuIGFyZ3VtZW50IjsKICAgIGxvY2FsIHZtX3Zl
cnNpb249IiQoamF2YS1wa2dfZ2V0LXZtLXZlcnNpb24pIjsKICAgIHZtX3ZlcnNpb249IiQoZ2V0
X3ZlcnNpb25fY29tcG9uZW50X3JhbmdlIDEtMiAiJHt2bV92ZXJzaW9ufSIpIjsKICAgIG5lZWRl
ZF92ZXJzaW9uPSIkKGdldF92ZXJzaW9uX2NvbXBvbmVudF9yYW5nZSAxLTIgIiR7bmVlZGVkX3Zl
cnNpb259IikiOwogICAgaWYgW1sgLXogIiR7dm1fdmVyc2lvbn0iIF1dOyB0aGVuCiAgICAgICAg
ZGVidWctcHJpbnQgIkNvdWxkIG5vdCBnZXQgSkRLIHZlcnNpb24gZnJvbSBERVBFTkQiOwogICAg
ICAgIHJldHVybiAxOwogICAgZWxzZQogICAgICAgIGlmIFtbICIke3ZtX3ZlcnNpb259IiA9PSAi
JHtuZWVkZWRfdmVyc2lvbn0iIF1dOyB0aGVuCiAgICAgICAgICAgIGRlYnVnLXByaW50ICJEZXRl
Y3RlZCBhIEpESygke3ZtX3ZlcnNpb259KSA9ICR7bmVlZGVkX3ZlcnNpb259IjsKICAgICAgICAg
ICAgcmV0dXJuIDA7CiAgICAgICAgZWxzZQogICAgICAgICAgICBkZWJ1Zy1wcmludCAiRGV0ZWN0
ZWQgYSBKREsoJHt2bV92ZXJzaW9ufSkgIT0gJHtuZWVkZWRfdmVyc2lvbn0iOwogICAgICAgICAg
ICByZXR1cm4gMTsKICAgICAgICBmaTsKICAgIGZpCn0KamF2YS1wa2dfaXMtdm0tdmVyc2lvbi1n
ZSAoKSAKeyAKICAgIGRlYnVnLXByaW50LWZ1bmN0aW9uICR7RlVOQ05BTUV9ICQqOwogICAgbG9j
YWwgbmVlZGVkX3ZlcnNpb249JEA7CiAgICBsb2NhbCB2bV92ZXJzaW9uPSQoamF2YS1wa2dfZ2V0
LXZtLXZlcnNpb24pOwogICAgaWYgW1sgLXogIiR7dm1fdmVyc2lvbn0iIF1dOyB0aGVuCiAgICAg
ICAgZGVidWctcHJpbnQgIkNvdWxkIG5vdCBnZXQgSkRLIHZlcnNpb24gZnJvbSBERVBFTkQiOwog
ICAgICAgIHJldHVybiAxOwogICAgZWxzZQogICAgICAgIGlmIHZlcnNpb25faXNfYXRfbGVhc3Qg
IiR7bmVlZGVkX3ZlcnNpb259IiAiJHt2bV92ZXJzaW9ufSI7IHRoZW4KICAgICAgICAgICAgZGVi
dWctcHJpbnQgIkRldGVjdGVkIGEgSkRLKCR7dm1fdmVyc2lvbn0pID49ICR7bmVlZGVkX3ZlcnNp
b259IjsKICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgZWxzZQogICAgICAgICAgICBkZWJ1
Zy1wcmludCAiRGV0ZWN0ZWQgYSBKREsoJHt2bV92ZXJzaW9ufSkgPCAke25lZWRlZF92ZXJzaW9u
fSI7CiAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgIGZpOwogICAgZmkKfQpqYXZhLXBrZ19p
cy12bS12ZXJzaW9uLXN1ZmZpY2llbnQgKCkgCnsgCiAgICBkZWJ1Zy1wcmludC1mdW5jdGlvbiAk
e0ZVTkNOQU1FfSAkKjsKICAgIGRlcGVuZC1qYXZhLXF1ZXJ5IC0taXMtc3VmZmljaWVudCAiJHtE
RVBFTkR9IiA+IC9kZXYvbnVsbDsKICAgIHJldHVybiAkPwp9CmphdmEtcGtnX2phci1mcm9tICgp
IAp7IAogICAgZGVidWctcHJpbnQtZnVuY3Rpb24gJHtGVU5DTkFNRX0gJCo7CiAgICBsb2NhbCBi
dWlsZF9vbmx5PSIiOwogICAgbG9jYWwgZGVzdGRpcj0iLiI7CiAgICBsb2NhbCBkZWVwPSIiOwog
ICAgbG9jYWwgdmlydHVhbD0iIjsKICAgIFtbICIke0VCVUlMRF9QSEFTRX0iID09ICJ0ZXN0IiBd
XSAmJiBidWlsZF9vbmx5PSJidWlsZCI7CiAgICB3aGlsZSBbWyAiJHsxfSIgPT0gLS0qIF1dOyBk
bwogICAgICAgIGlmIFtbICIkezF9IiA9ICItLWJ1aWxkLW9ubHkiIF1dOyB0aGVuCiAgICAgICAg
ICAgIGJ1aWxkX29ubHk9ImJ1aWxkIjsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGlmIFtbICIk
ezF9IiA9ICItLXdpdGgtZGVwZW5kZW5jaWVzIiBdXTsgdGhlbgogICAgICAgICAgICAgICAgZGVl
cD0iLS13aXRoLWRlcGVuZGVuY2llcyI7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg
IGlmIFtbICIkezF9IiA9ICItLXZpcnR1YWwiIF1dOyB0aGVuCiAgICAgICAgICAgICAgICAgICAg
dmlydHVhbD0idHJ1ZSI7CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAg
aWYgW1sgIiR7MX0iID0gIi0taW50byIgXV07IHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAg
ZGVzdGRpcj0iJHsyfSI7CiAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0OwogICAgICAgICAg
ICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgZGllZnVuYyAiJEZVTkNOQU1F
IiAiJExJTkVOTyIgIiQ/IiAiamF2YS1wa2dfamFyLWZyb20gY2FsbGVkIHdpdGggdW5rbm93biBw
YXJhbWV0ZXI6ICR7MX0iOwogICAgICAgICAgICAgICAgICAgIGZpOwogICAgICAgICAgICAgICAg
Zmk7CiAgICAgICAgICAgIGZpOwogICAgICAgIGZpOwogICAgICAgIHNoaWZ0OwogICAgZG9uZTsK
ICAgIGxvY2FsIHRhcmdldF9wa2c9IiR7MX0iIHRhcmdldF9qYXI9IiR7Mn0iIGRlc3RqYXI9IiR7
M30iOwogICAgW1sgLXogJHt0YXJnZXRfcGtnfSBdXSAmJiBkaWVmdW5jICIkRlVOQ05BTUUiICIk
TElORU5PIiAiJD8iICJNdXN0IHNwZWNpZnkgYSBwYWNrYWdlIjsKICAgIFtbIC16ICIke2Rlc3Rq
YXJ9IiBdXSAmJiBkZXN0amFyPSIke3RhcmdldF9qYXJ9IjsKICAgIGxvY2FsIGVycm9yX21zZz0i
VGhlcmUgd2FzIGEgcHJvYmxlbSBnZXR0aW5nIHRoZSBjbGFzc3BhdGggZm9yICR7dGFyZ2V0X3Br
Z30uIjsKICAgIGxvY2FsIGNsYXNzcGF0aDsKICAgIGNsYXNzcGF0aD0iJChqYXZhLWNvbmZpZyAk
e2RlZXB9IC0tY2xhc3NwYXRoPSR7dGFyZ2V0X3BrZ30pIjsKICAgIFtbICQ/ICE9IDAgXV0gJiYg
ZGllZnVuYyAiJEZVTkNOQU1FIiAiJExJTkVOTyIgIiQ/IiAke2Vycm9yX21zZ307CiAgICBpZiBb
WyAke3RhcmdldF9wa2d9ID0gKiwqIF1dOyB0aGVuCiAgICAgICAgZm9yIHBrZyBpbiAke3Rhcmdl
dF9wa2cvLywvIH07CiAgICAgICAgZG8KICAgICAgICAgICAgamF2YS1wa2dfZW5zdXJlLWRlcCAi
JHtidWlsZF9vbmx5fSIgIiR7cGtnfSI7CiAgICAgICAgICAgIFtbIC16ICIke2J1aWxkX29ubHl9
IiBdXSAmJiBqYXZhLXBrZ19yZWNvcmQtamFyXyAiJHtwa2d9IjsKICAgICAgICBkb25lOwogICAg
ICAgIGJ1aWxkX29ubHk9ImJ1aWxkIjsKICAgIGVsc2UKICAgICAgICBqYXZhLXBrZ19lbnN1cmUt
ZGVwICIke2J1aWxkX29ubHl9IiAiJHt0YXJnZXRfcGtnfSI7CiAgICBmaTsKICAgIGlmIFtbIC16
ICIke2J1aWxkX29ubHl9IiAmJiAtbiAiJHt2aXJ0dWFsfSIgXV07IHRoZW4KICAgICAgICBqYXZh
LXBrZ19yZWNvcmQtamFyXyAiJHt0YXJnZXRfcGtnfSI7CiAgICAgICAgYnVpbGRfb25seT0iYnVp
bGQiOwogICAgZmk7CiAgICBwdXNoZCAke2Rlc3RkaXJ9ID4gL2Rldi9udWxsIHx8IGRpZWZ1bmMg
IiRGVU5DTkFNRSIgIiRMSU5FTk8iICIkPyIgImZhaWxlZCB0byBjaGFuZ2UgZGlyZWN0b3J5IHRv
ICR7ZGVzdGRpcn0iOwogICAgbG9jYWwgamFyOwogICAgZm9yIGphciBpbiAke2NsYXNzcGF0aC8v
Oi8gfTsKICAgIGRvCiAgICAgICAgbG9jYWwgamFyX25hbWU9JChiYXNlbmFtZSAiJHtqYXJ9Iik7
CiAgICAgICAgaWYgW1sgISAtZiAiJHtqYXJ9IiBdXTsgdGhlbgogICAgICAgICAgICBkZWJ1Zy1w
cmludCAiJHtqYXJ9IGZyb20gJHt0YXJnZXRfcGtnfSBkb2VzIG5vdCBleGlzdCI7CiAgICAgICAg
ICAgIGRpZWZ1bmMgIiRGVU5DTkFNRSIgIiRMSU5FTk8iICIkPyIgIkluc3RhbGxhdGlvbiBwcm9i
bGVtcyB3aXRoIGphcnMgaW4gJHt0YXJnZXRfcGtnfSAtIGlzIGl0IGluc3RhbGxlZD8iOwogICAg
ICAgIGZpOwogICAgICAgIGlmIFtbIC16ICIke3RhcmdldF9qYXJ9IiBdXTsgdGhlbgogICAgICAg
ICAgICBbWyAtZiAiJHt0YXJnZXRfamFyfSIgXV0gJiYgcm0gIiR7dGFyZ2V0X2phcn0iOwogICAg
ICAgICAgICBsbiAtc25mICIke2phcn0iIHx8IGRpZWZ1bmMgIiRGVU5DTkFNRSIgIiRMSU5FTk8i
ICIkPyIgIkZhaWxlZCB0byBtYWtlIHN5bWxpbmsgZnJvbSAke2phcn0gdG8gJHtqYXJfbmFtZX0i
OwogICAgICAgICAgICBbWyAteiAiJHtidWlsZF9vbmx5fSIgXV0gJiYgamF2YS1wa2dfcmVjb3Jk
LWphcl8gIiR7dGFyZ2V0X3BrZ30iICIke2phcn0iOwogICAgICAgIGVsc2UKICAgICAgICAgICAg
aWYgW1sgIiR7amFyX25hbWV9IiA9PSAiJHt0YXJnZXRfamFyfSIgXV07IHRoZW4KICAgICAgICAg
ICAgICAgIFtbIC1mICIke2Rlc3RqYXJ9IiBdXSAmJiBybSAiJHtkZXN0amFyfSI7CiAgICAgICAg
ICAgICAgICBsbiAtc25mICIke2phcn0iICIke2Rlc3RqYXJ9IiB8fCBkaWVmdW5jICIkRlVOQ05B
TUUiICIkTElORU5PIiAiJD8iICJGYWlsZWQgdG8gbWFrZSBzeW1saW5rIGZyb20gJHtqYXJ9IHRv
ICR7ZGVzdGphcn0iOwogICAgICAgICAgICAgICAgW1sgLXogIiR7YnVpbGRfb25seX0iIF1dICYm
IGphdmEtcGtnX3JlY29yZC1qYXJfICIke3RhcmdldF9wa2d9IiAiJHtqYXJ9IjsKICAgICAgICAg
ICAgICAgIHBvcGQgPiAvZGV2L251bGw7CiAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAg
ICAgICAgZmk7CiAgICAgICAgZmk7CiAgICBkb25lOwogICAgcG9wZCA+IC9kZXYvbnVsbDsKICAg
IGlmIFtbIC16ICIke3RhcmdldF9qYXJ9IiBdXTsgdGhlbgogICAgICAgIHJldHVybiAwOwogICAg
ZWxzZQogICAgICAgIGRpZWZ1bmMgIiRGVU5DTkFNRSIgIiRMSU5FTk8iICIkPyIgIkZhaWxlZCB0
byBmaW5kICR7dGFyZ2V0X2phcjotamFyfSBpbiAke3RhcmdldF9wa2d9IjsKICAgIGZpCn0KamF2
YS1wa2dfamFyLWxpc3QgKCkgCnsgCiAgICBpZiBbWyAtbiAiJHtKQVZBX1BLR19ERUJVR30iIF1d
OyB0aGVuCiAgICAgICAgZWluZm8gIkxpbmtlZCBKYXJzIjsKICAgICAgICBmaW5kICIke1N9IiAt
dHlwZSBsIC1uYW1lICcqLmphcicgLXByaW50MCB8IHhhcmdzIC0wIC1yIC1uIDUwMCBscyAtYWxk
IHwgc2VkIC1lICJzLCR7V09SS0RJUn0sXCR7V09SS0RJUn0sIjsKICAgICAgICBlaW5mbyAiSmFy
cyI7CiAgICAgICAgZmluZCAiJHtTfSIgLXR5cGUgZiAtbmFtZSAnKi5qYXInIC1wcmludDAgfCB4
YXJncyAtMCAtciAtbiA1MDAgbHMgLWFsZCB8IHNlZCAtZSAicywke1dPUktESVJ9LFwke1dPUktE
SVJ9LCI7CiAgICAgICAgZWluZm8gIkNsYXNzZXMiOwogICAgICAgIGZpbmQgIiR7U30iIC10eXBl
IGYgLW5hbWUgJyouY2xhc3MnIC1wcmludDAgfCB4YXJncyAtMCAtciAtbiA1MDAgbHMgLWFsZCB8
IHNlZCAtZSAicywke1dPUktESVJ9LFwke1dPUktESVJ9LCI7CiAgICBmaQp9CmphdmEtcGtnX2ph
cmZyb20gKCkgCnsgCiAgICBqYXZhLXBrZ19qYXItZnJvbSAiJEAiCn0KamF2YS1wa2dfamFyaW50
byAoKSAKeyAKICAgIGRlYnVnLXByaW50LWZ1bmN0aW9uICR7RlVOQ05BTUV9ICQqOwogICAgSkFW
QV9QS0dfSkFSREVTVD0iJHsxfSIKfQpqYXZhLXBrZ19qYXZhYy1hcmdzICgpIAp7IAogICAgZGVi
dWctcHJpbnQtZnVuY3Rpb24gJHtGVU5DTkFNRX0gJCo7CiAgICBsb2NhbCB3YW50X3NvdXJjZT0i
JChqYXZhLXBrZ19nZXQtc291cmNlKSI7CiAgICBsb2NhbCB3YW50X3RhcmdldD0iJChqYXZhLXBr
Z19nZXQtdGFyZ2V0KSI7CiAgICBsb2NhbCBzb3VyY2Vfc3RyPSItc291cmNlICR7d2FudF9zb3Vy
Y2V9IjsKICAgIGxvY2FsIHRhcmdldF9zdHI9Ii10YXJnZXQgJHt3YW50X3RhcmdldH0iOwogICAg
ZGVidWctcHJpbnQgIndhbnQgc291cmNlOiAke3dhbnRfc291cmNlfSI7CiAgICBkZWJ1Zy1wcmlu
dCAid2FudCB0YXJnZXQ6ICR7d2FudF90YXJnZXR9IjsKICAgIGlmIFtbIC16ICIke3dhbnRfc291
cmNlfSIgfHwgLXogIiR7d2FudF90YXJnZXR9IiBdXTsgdGhlbgogICAgICAgIGRlYnVnLXByaW50
ICJjb3VsZCBub3QgZmluZCB2YWxpZCAtc291cmNlLy10YXJnZXQgdmFsdWVzIGZvciBqYXZhYyI7
CiAgICAgICAgZWNobyAiQ291bGQgbm90IGZpbmQgdmFsaWQgLXNvdXJjZS8tdGFyZ2V0IHZhbHVl
cyBmb3IgamF2YWMiOwogICAgICAgIHJldHVybiAxOwogICAgZWxzZQogICAgICAgIGlmIGphdmEt
cGtnX2lzLXZtLXZlcnNpb24tZ2UgIjEuNCI7IHRoZW4KICAgICAgICAgICAgZWNobyAiJHtzb3Vy
Y2Vfc3RyfSAke3RhcmdldF9zdHJ9IjsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGVjaG8gIiR7
dGFyZ2V0X3N0cn0iOwogICAgICAgIGZpOwogICAgZmkKfQpqYXZhLXBrZ19uZWVkcy12bSAoKSAK
eyAKICAgIGRlYnVnLXByaW50LWZ1bmN0aW9uICR7RlVOQ05BTUV9ICQqOwogICAgaWYgW1sgLW4g
IiQoZWNobyAke0RFUEVORH0gfCBzZWQgLWUgJ1w6dmlydHVhbC9qZGs6IWQnKSIgXV07IHRoZW4K
ICAgICAgICByZXR1cm4gMDsKICAgIGZpOwogICAgcmV0dXJuIDEKfQpqYXZhLXBrZ19uZXdqYXIg
KCkgCnsgCiAgICBkZWJ1Zy1wcmludC1mdW5jdGlvbiAke0ZVTkNOQU1FfSAkKjsKICAgIGxvY2Fs
IG9yaWdpbmFsX2phcj0iJHsxfSI7CiAgICBsb2NhbCBuZXdfamFyPSIkezI6LSR7UE59Lmphcn0i
OwogICAgbG9jYWwgbmV3X2phcl9kZXN0PSIke1R9LyR7bmV3X2phcn0iOwogICAgW1sgLXogJHtv
cmlnaW5hbF9qYXJ9IF1dICYmIGRpZWZ1bmMgIiRGVU5DTkFNRSIgIiRMSU5FTk8iICIkPyIgIk11
c3Qgc3BlY2lmeSBhIGphciB0byBpbnN0YWxsIjsKICAgIFtbICEgLWYgJHtvcmlnaW5hbF9qYXJ9
IF1dICYmIGRpZWZ1bmMgIiRGVU5DTkFNRSIgIiRMSU5FTk8iICIkPyIgIiR7b3JpZ2luYWxfamFy
fSBkb2VzIG5vdCBleGlzdCBvciBpcyBub3QgYSBmaWxlISI7CiAgICBybSAtZiAiJHtuZXdfamFy
X2Rlc3R9IiB8fCBkaWVmdW5jICIkRlVOQ05BTUUiICIkTElORU5PIiAiJD8iICJGYWlsZWQgdG8g
cmVtb3ZlICR7bmV3X2phcl9kZXN0fSI7CiAgICBjcCAiJHtvcmlnaW5hbF9qYXJ9IiAiJHtuZXdf
amFyX2Rlc3R9IiB8fCBkaWVmdW5jICIkRlVOQ05BTUUiICIkTElORU5PIiAiJD8iICJGYWlsZWQg
dG8gY29weSAke29yaWdpbmFsX2phcn0gdG8gJHtuZXdfamFyX2Rlc3R9IjsKICAgIGphdmEtcGtn
X2RvamFyICIke25ld19qYXJfZGVzdH0iCn0KamF2YS1wa2dfcmVjb3JkLWphcl8gKCkgCnsgCiAg
ICBkZWJ1Zy1wcmludC1mdW5jdGlvbiAke0ZVTkNOQU1FfSAkKjsKICAgIGxvY2FsIGRlcGVuZF9m
aWxlPSIke0pBVkFfUEtHX0RFUEVORF9GSUxFfSI7CiAgICBpZiBbWyAiJHsxfSIgPT0gIi0tb3B0
aW9uYWwiIF1dOyB0aGVuCiAgICAgICAgZGVwZW5kX2ZpbGU9IiR7SkFWQV9QS0dfT1BUSU9OQUxf
REVQRU5EX0ZJTEV9IjsKICAgICAgICBzaGlmdDsKICAgIGZpOwogICAgbG9jYWwgcGtnPSR7MX0g
amFyPSR7Mn0gYXBwZW5kOwogICAgaWYgW1sgLXogIiR7amFyfSIgXV07IHRoZW4KICAgICAgICBh
cHBlbmQ9IiR7cGtnfSI7CiAgICBlbHNlCiAgICAgICAgYXBwZW5kPSIkKGJhc2VuYW1lICR7amFy
fSlAJHtwa2d9IjsKICAgIGZpOwogICAgZWNobyAiJHthcHBlbmR9IiA+PiAiJHtkZXBlbmRfZmls
ZX0iCn0KamF2YS1wa2dfcmVjb3JkamF2YWRvYyAoKSAKeyAKICAgIGRlYnVnLXByaW50LWZ1bmN0
aW9uICR7RlVOQ05BTUV9ICQqOwogICAgSkFWQURPQ19QQVRIPSIkKGZpbmQgJHtEfS91c3Ivc2hh
cmUvZG9jLyAtbmFtZSBhbGxjbGFzc2VzLWZyYW1lLmh0bWwgLXByaW50ZiAnJWg6JykiOwogICAg
SkFWQURPQ19QQVRIPSIke0pBVkFET0NfUEFUSC8vJHtEfX0iOwogICAgaWYgW1sgLW4gIiR7SkFW
QURPQ19QQVRIfSIgXV07IHRoZW4KICAgICAgICBkZWJ1Zy1wcmludCAiamF2YWRvY3MgZm91bmQg
aW4gJHtKQVZBRE9DX1BBVEglOn0iOwogICAgICAgIGphdmEtcGtnX2RvX3dyaXRlXzsKICAgIGVs
c2UKICAgICAgICBkZWJ1Zy1wcmludCAiTm8gamF2YWRvY3MgZm91bmQiOwogICAgZmkKfQpqYXZh
LXBrZ19yZWdpc3Rlci1hbnQtdGFzayAoKSAKeyAKICAgIGxvY2FsIFRBU0tTX0RJUj0idGFza3Mi
OwogICAgd2hpbGUgW1sgLW4gIiR7MX0iICYmIC1uICIkezJ9IiBdXTsgZG8KICAgICAgICBsb2Nh
bCB2YXI9IiR7MSMtLX0iOwogICAgICAgIGxvY2FsIHZhbD0iJHsyfSI7CiAgICAgICAgaWYgW1sg
IiR7dmFyfSIgPT0gInZlcnNpb24iIF1dOyB0aGVuCiAgICAgICAgICAgIFRBU0tTX0RJUj0idGFz
a3MtJHt2YWx9IjsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGRpZWZ1bmMgIiRGVU5DTkFNRSIg
IiRMSU5FTk8iICIkPyIgIlVua25vd24gcGFyYW1ldGVyIHBhc3NlZCB0byBqYXZhLXBrZ19yZWdp
c3Rlci1hbnQtdGFza3M6ICR7MX0gJHsyfSI7CiAgICAgICAgZmk7CiAgICAgICAgc2hpZnQgMjsK
ICAgIGRvbmU7CiAgICBsb2NhbCBUQVNLX05BTUU9IiR7MTotJHtKQVZBX1BLR19OQU1FfX0iOwog
ICAgZG9kaXIgL3Vzci9zaGFyZS9hbnQvJHtUQVNLU19ESVJ9OwogICAgdG91Y2ggIiR7RH0vdXNy
L3NoYXJlL2FudC8ke1RBU0tTX0RJUn0vJHtUQVNLX05BTUV9Igp9CmphdmEtcGtnX3JlZ2lzdGVy
LWRlcGVuZGVuY3kgKCkgCnsgCiAgICBkZWJ1Zy1wcmludC1mdW5jdGlvbiAke0ZVTkNOQU1FfSAk
KjsKICAgIGphdmEtcGtnX2NoZWNrLXBoYXNlIGluc3RhbGw7CiAgICBbWyAkeyN9IC1ndCAyIF1d
ICYmIGRpZWZ1bmMgIiRGVU5DTkFNRSIgIiRMSU5FTk8iICIkPyIgIiR7RlVOQ05BTUV9IHRha2Vz
IGF0IG1vc3QgdHdvIGFyZ3VtZW50cyI7CiAgICBsb2NhbCBwa2dzPSIkezF9IjsKICAgIGxvY2Fs
IGphcj0iJHsyfSI7CiAgICBbWyAteiAiJHtwa2dzfSIgXV0gJiYgZGllZnVuYyAiJEZVTkNOQU1F
IiAiJExJTkVOTyIgIiQ/IiAiJHtGVU5DTkFNRX0gY2FsbGVkIHdpdGggbm8gcGFja2FnZShzKSBz
cGVjaWZpZWQiOwogICAgaWYgW1sgLXogIiR7amFyfSIgXV07IHRoZW4KICAgICAgICBmb3IgcGtn
IGluICR7cGtncy8vLC8gfTsKICAgICAgICBkbwogICAgICAgICAgICBqYXZhLXBrZ19lbnN1cmUt
ZGVwIHJ1bnRpbWUgIiR7cGtnfSI7CiAgICAgICAgICAgIGphdmEtcGtnX3JlY29yZC1qYXJfICIk
e3BrZ30iOwogICAgICAgIGRvbmU7CiAgICBlbHNlCiAgICAgICAgW1sgJHtwa2dzfSA9PSAqLCog
XV0gJiYgZGllZnVuYyAiJEZVTkNOQU1FIiAiJExJTkVOTyIgIiQ/IiAiJHtGVU5DTkFNRX0gY2Fs
bGVkIHdpdGggYm90aCBwYWNrYWdlIGxpc3QgYW5kIGphciBuYW1lIjsKICAgICAgICBqYXZhLXBr
Z19lbnN1cmUtZGVwIHJ1bnRpbWUgIiR7cGtnc30iOwogICAgICAgIGphdmEtcGtnX3JlY29yZC1q
YXJfICIke3BrZ3N9IiAiJHtqYXJ9IjsKICAgIGZpOwogICAgamF2YS1wa2dfZG9fd3JpdGVfCn0K
amF2YS1wa2dfcmVnaXN0ZXItZW52aXJvbm1lbnQtdmFyaWFibGUgKCkgCnsgCiAgICBkZWJ1Zy1w
cmludC1mdW5jdGlvbiAke0ZVTkNOQU1FfSAkKjsKICAgIGphdmEtcGtnX2NoZWNrLXBoYXNlIGlu
c3RhbGw7CiAgICBbWyAkeyN9ICE9IDIgXV0gJiYgZGllZnVuYyAiJEZVTkNOQU1FIiAiJExJTkVO
TyIgIiQ/IiAiJHtGVU5DTkFNRX0gdGFrZXMgdHdvIGFyZ3VtZW50cyI7CiAgICBlY2hvICIkezF9
PVwiJHsyfVwiIiA+PiAke0pBVkFfUEtHX0VYVFJBX0VOVn07CiAgICBKQVZBX1BLR19FWFRSQV9F
TlZfVkFSUz0iJHtKQVZBX1BLR19FWFRSQV9FTlZfVkFSU30gJHsxfSI7CiAgICBqYXZhLXBrZ19k
b193cml0ZV8KfQpqYXZhLXBrZ19yZWdpc3Rlci1vcHRpb25hbC1kZXBlbmRlbmN5ICgpIAp7IAog
ICAgZGVidWctcHJpbnQtZnVuY3Rpb24gJHtGVU5DTkFNRX0gJCo7CiAgICBqYXZhLXBrZ19jaGVj
ay1waGFzZSBpbnN0YWxsOwogICAgW1sgJHsjfSAtZ3QgMiBdXSAmJiBkaWVmdW5jICIkRlVOQ05B
TUUiICIkTElORU5PIiAiJD8iICIke0ZVTkNOQU1FfSB0YWtlcyBhdCBtb3N0IHR3byBhcmd1bWVu
dHMiOwogICAgbG9jYWwgcGtncz0iJHsxfSI7CiAgICBsb2NhbCBqYXI9IiR7Mn0iOwogICAgW1sg
LXogIiR7cGtnc30iIF1dICYmIGRpZWZ1bmMgIiRGVU5DTkFNRSIgIiRMSU5FTk8iICIkPyIgIiR7
RlVOQ05BTUV9IGNhbGxlZCB3aXRoIG5vIHBhY2thZ2Uocykgc3BlY2lmaWVkIjsKICAgIGlmIFtb
IC16ICIke2phcn0iIF1dOyB0aGVuCiAgICAgICAgZm9yIHBrZyBpbiAke3BrZ3MvLywvIH07CiAg
ICAgICAgZG8KICAgICAgICAgICAgamF2YS1wa2dfcmVjb3JkLWphcl8gLS1vcHRpb25hbCAiJHtw
a2d9IjsKICAgICAgICBkb25lOwogICAgZWxzZQogICAgICAgIFtbICR7cGtnc30gPT0gKiwqIF1d
ICYmIGRpZWZ1bmMgIiRGVU5DTkFNRSIgIiRMSU5FTk8iICIkPyIgIiR7RlVOQ05BTUV9IGNhbGxl
ZCB3aXRoIGJvdGggcGFja2FnZSBsaXN0IGFuZCBqYXIgbmFtZSI7CiAgICAgICAgamF2YS1wa2df
cmVjb3JkLWphcl8gLS1vcHRpb25hbCAiJHtwa2dzfSIgIiR7amFyfSI7CiAgICBmaTsKICAgIGph
dmEtcGtnX2RvX3dyaXRlXwp9CmphdmEtcGtnX3JlZ2phciAoKSAKeyAKICAgIGRlYnVnLXByaW50
LWZ1bmN0aW9uICR7RlVOQ05BTUV9ICQqOwogICAgamF2YS1wa2dfY2hlY2stcGhhc2UgaW5zdGFs
bDsKICAgIFtbICR7I30gLWx0IDEgXV0gJiYgZGllZnVuYyAiJEZVTkNOQU1FIiAiJExJTkVOTyIg
IiQ/IiAiYXQgbGVhc3Qgb25lIGFyZ3VtZW50IG5lZWRlZCI7CiAgICBqYXZhLXBrZ19pbml0X3Bh
dGhzXzsKICAgIGxvY2FsIGphciBqYXJfZGlyIGphcl9maWxlOwogICAgZm9yIGphciBpbiAiJHtA
fSI7CiAgICBkbwogICAgICAgIGlmIFtbIC1lICIke2phcn0iIHx8IC1lICIke0R9JHtqYXJ9IiBd
XTsgdGhlbgogICAgICAgICAgICBbWyAtZCAiJHtqYXJ9IiB8fCAtZCAiJHtEfSR7amFyfSIgXV0g
JiYgZGllZnVuYyAiJEZVTkNOQU1FIiAiJExJTkVOTyIgIiQ/IiAiQ2FsbGVkICR7RlVOQ05BTUV9
IG9uIGEJZGlyZWN0b3J5ICQqIjsKICAgICAgICAgICAgaXMtamF2YS1zdHJpY3QgJiYgamF2YS1w
a2dfdmVyaWZ5LWNsYXNzZXMgIiR7amFyfSI7CiAgICAgICAgICAgIGphdmEtcGtnX2FwcGVuZF8g
SkFWQV9QS0dfQ0xBU1NQQVRIICIke2phciMke0R9fSI7CiAgICAgICAgZWxzZQogICAgICAgICAg
ICBpZiBbWyAke2phcn0gPSAqXCoqIF1dOyB0aGVuCiAgICAgICAgICAgICAgICBlZXJyb3IgIlRo
ZSBhcmd1bWVudCAke2phcn0gdG8gJHtGVU5DTkFNRX0iOwogICAgICAgICAgICAgICAgZWVycm9y
ICJoYXMgKiBpbiBpdC4gSWYgeW91IHdhbnQgaXQgdG8gZ2xvYiBpbiI7CiAgICAgICAgICAgICAg
ICBlZXJyb3IgJyR7RH0gYWRkICR7RH0gdG8gdGhlIGFyZ3VtZW50Lic7CiAgICAgICAgICAgIGZp
OwogICAgICAgICAgICBkaWVmdW5jICIkRlVOQ05BTUUiICIkTElORU5PIiAiJD8iICIke2phcn0g
ZG9lcyBub3QgZXhpc3QiOwogICAgICAgIGZpOwogICAgZG9uZTsKICAgIGphdmEtcGtnX2RvX3dy
aXRlXwp9CmphdmEtcGtnX3JlZ3NvICgpIAp7IAogICAgZGVidWctcHJpbnQtZnVuY3Rpb24gJHtG
VU5DTkFNRX0gJCo7CiAgICBqYXZhLXBrZ19jaGVjay1waGFzZSBpbnN0YWxsOwogICAgW1sgJHsj
fSAtbHQgMSBdXSAmJiAiYXQgbGVhc3Qgb25lIGFyZ3VtZW50IG5lZWRlZCI7CiAgICBqYXZhLXBr
Z19pbml0X3BhdGhzXzsKICAgIGxvY2FsIGxpYiB0YXJnZXRfZGlyOwogICAgZm9yIGxpYiBpbiAi
JEAiOwogICAgZG8KICAgICAgICBpZiBbWyAtZSAiJHtsaWJ9IiBdXTsgdGhlbgogICAgICAgICAg
ICB0YXJnZXRfZGlyPSIkKGphdmEtcGtnX2V4cGFuZF9kaXJfICR7bGlifSkiOwogICAgICAgICAg
ICBqYXZhLXBrZ19hcHBlbmRfIEpBVkFfUEtHX0xJQlJBUlkgIi8ke3RhcmdldF9kaXIjJHtEfX0i
OwogICAgICAgIGVsc2UKICAgICAgICAgICAgaWYgW1sgLWUgIiR7RH0ke2xpYn0iIF1dOyB0aGVu
CiAgICAgICAgICAgICAgICB0YXJnZXRfZGlyPSIkKGphdmEtcGtnX2V4cGFuZF9kaXJfICR7RH0k
e2xpYn0pIjsKICAgICAgICAgICAgICAgIGphdmEtcGtnX2FwcGVuZF8gSkFWQV9QS0dfTElCUkFS
WSAiJHt0YXJnZXRfZGlyfSI7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIGRpZWZ1
bmMgIiRGVU5DTkFNRSIgIiRMSU5FTk8iICIkPyIgIiR7bGlifSBkb2VzIG5vdCBleGlzdCI7CiAg
ICAgICAgICAgIGZpOwogICAgICAgIGZpOwogICAgZG9uZTsKICAgIGphdmEtcGtnX2RvX3dyaXRl
Xwp9CmphdmEtcGtnX3NldC1jdXJyZW50LXZtICgpIAp7IAogICAgZXhwb3J0IEdFTlRPT19WTT0k
ezF9Cn0KamF2YS1wa2dfc2V0dXAtdm0gKCkgCnsgCiAgICBkZWJ1Zy1wcmludC1mdW5jdGlvbiAk
e0ZVTkNOQU1FfSAkKjsKICAgIGV4cG9ydCBMQU5HPSJDIiBMQ19BTEw9IkMiOwogICAgbG9jYWwg
dmVuZG9yPSIkKGphdmEtcGtnX2dldC12bS12ZW5kb3IpIjsKICAgIGlmIFtbICIke3ZlbmRvcn0i
ID09ICJzdW4iIF1dICYmIGphdmEtcGtnX2lzLXZtLXZlcnNpb24tZ2UgIjEuNSI7IHRoZW4KICAg
ICAgICBhZGRwcmVkaWN0ICIvZGV2L3JhbmRvbSI7CiAgICBlbHNlCiAgICAgICAgaWYgW1sgIiR7
dmVuZG9yfSIgPT0gImlibSIgXV07IHRoZW4KICAgICAgICAgICAgYWRkcHJlZGljdCAiL3Byb2Mv
c2VsZi9tYXBzIjsKICAgICAgICAgICAgYWRkcHJlZGljdCAiL3Byb2MvY3B1aW5mbyI7CiAgICAg
ICAgZWxzZQogICAgICAgICAgICBpZiBbWyAiJHt2ZW5kb3J9IiA9PSAianJvY2tpdCIgXV07IHRo
ZW4KICAgICAgICAgICAgICAgIGFkZHByZWRpY3QgIi9wcm9jL2NwdWluZm8iOwogICAgICAgICAg
ICBmaTsKICAgICAgICBmaTsKICAgIGZpCn0KamF2YS1wa2dfc29pbnRvICgpIAp7IAogICAgZGVi
dWctcHJpbnQtZnVuY3Rpb24gJHtGVU5DTkFNRX0gJCo7CiAgICBKQVZBX1BLR19MSUJERVNUPSIk
ezF9Igp9CmphdmEtcGtnX3N3aXRjaC12bSAoKSAKeyAKICAgIGRlYnVnLXByaW50LWZ1bmN0aW9u
ICR7RlVOQ05BTUV9ICQqOwogICAgaWYgamF2YS1wa2dfbmVlZHMtdm07IHRoZW4KICAgICAgICBp
ZiBbWyAtbiAiJHtKQVZBX1BLR19GT1JDRV9WTX0iIF1dOyB0aGVuCiAgICAgICAgICAgIGRlYnVn
LXByaW50ICJKQVZBX1BLR19GT1JDRV9WTSB1c2VkOiAke0pBVkFfUEtHX0ZPUkNFX1ZNfSI7CiAg
ICAgICAgICAgIGV4cG9ydCBHRU5UT09fVk09IiR7SkFWQV9QS0dfRk9SQ0VfVk19IjsKICAgICAg
ICBlbHNlCiAgICAgICAgICAgIGlmIFtbICIke0pBVkFfUEtHX0FMTE9XX1ZNX0NIQU5HRX0iID09
ICJ5ZXMiIF1dOyB0aGVuCiAgICAgICAgICAgICAgICBkZWJ1Zy1wcmludCAiZGVwZW5kLWphdmEt
cXVlcnk6ICBOVl9ERVBFTkQ6CSR7SkFWQV9QS0dfTlZfREVQRU5EOi0ke0RFUEVORH19IFZORUVE
OiAke0pBVkFfUEtHX1ZORUVEfSI7CiAgICAgICAgICAgICAgICBpZiBbWyAtbiAke0pBVkFfUEtH
X1ZORUVEfSBdXTsgdGhlbgogICAgICAgICAgICAgICAgICAgIEdFTlRPT19WTT0iJChkZXBlbmQt
amF2YS1xdWVyeSAtLW5lZWQtdmlydHVhbCAiJHtKQVZBX1BLR19WTkVFRH0iIC0tZ2V0LXZtICIk
e0pBVkFfUEtHX05WX0RFUEVORDotJHtERVBFTkR9fSIpIjsKICAgICAgICAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgICAgICAgICBHRU5UT09fVk09IiQoZGVwZW5kLWphdmEtcXVlcnkgLS1nZXQt
dm0gIiR7SkFWQV9QS0dfTlZfREVQRU5EOi0ke0RFUEVORH19IikiOwogICAgICAgICAgICAgICAg
Zmk7CiAgICAgICAgICAgICAgICBpZiBbWyAteiAiJHtHRU5UT09fVk19IiB8fCAiJHtHRU5UT09f
Vk19IiA9PSAiTm9uZSIgXV07IHRoZW4KICAgICAgICAgICAgICAgICAgICBlZXJyb3IgIlVuYWJs
ZSB0byBkZXRlcm1pbmUgVk0gZm9yIGJ1aWxkaW5nIGZyb20gZGVwZW5kZW5jaWVzOiI7CiAgICAg
ICAgICAgICAgICAgICAgZWNobyAiTlZfREVQRU5EOiAke0pBVkFfUEtHX05WX0RFUEVORDotJHtE
RVBFTkR9fSI7CiAgICAgICAgICAgICAgICAgICAgZWNobyAiVk5FRUQ6ICR7SkFWQV9QS0dfVk5F
RUR9IjsKICAgICAgICAgICAgICAgICAgICBkaWVmdW5jICIkRlVOQ05BTUUiICIkTElORU5PIiAi
JD8iICJGYWlsZWQgdG8gZGV0ZXJtaW5lIFZNIGZvciBidWlsZGluZy4iOwogICAgICAgICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgICAgICAgIGV4cG9ydCBHRU5UT09fVk07CiAgICAgICAgICAg
ICAgICBmaTsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgamF2YS1wa2dfZW5zdXJl
LXZtLXZlcnNpb24tc3VmZmljaWVudDsKICAgICAgICAgICAgZmk7CiAgICAgICAgZmk7CiAgICAg
ICAgZGVidWctcHJpbnQgIlVzaW5nOiAkKGphdmEtY29uZmlnIC1mKSI7CiAgICAgICAgamF2YS1w
a2dfc2V0dXAtdm07CiAgICAgICAgZXhwb3J0IEpBVkE9JChqYXZhLWNvbmZpZyAtLWphdmEpOwog
ICAgICAgIGV4cG9ydCBKQVZBQz0kKGphdmEtY29uZmlnIC0tamF2YWMpOwogICAgICAgIEpBVkFD
RkxBR1M9IiQoamF2YS1wa2dfamF2YWMtYXJncykiOwogICAgICAgIGlmIFtbICR7P30gIT0gMCBd
XTsgdGhlbgogICAgICAgICAgICBlZXJyb3IgIlRoZXJlIHdhcyBhIHByb2JsZW0gZGV0ZXJtaW5p
bmcgSkFWQUNGTEFHUzogJHtKQVZBQ0ZMQUdTfSI7CiAgICAgICAgICAgIGRpZWZ1bmMgIiRGVU5D
TkFNRSIgIiRMSU5FTk8iICIkPyIgImphdmEtcGtnX2phdmFjLWFyZ3MgZmFpbGVkIjsKICAgICAg
ICBmaTsKICAgICAgICBbWyAtbiAke0pBVkFDRkxBR1NfRVhUUkF9IF1dICYmIEpBVkFDRkxBR1M9
IiR7SkFWQUNGTEFHU19FWFRSQX0gJHtKQVZBQ0ZMQUdTfSI7CiAgICAgICAgZXhwb3J0IEpBVkFD
RkxBR1M7CiAgICAgICAgZXhwb3J0IEpBVkFfSE9NRT0iJChqYXZhLWNvbmZpZyAtZyBKQVZBX0hP
TUUpIjsKICAgICAgICBleHBvcnQgSkRLX0hPTUU9JHtKQVZBX0hPTUV9OwogICAgICAgIGphdmEt
cGtnX2FwcGVuZF8gTERfTElCUkFSWV9QQVRIICIkKGphdmEtY29uZmlnIC1nIExEUEFUSCkiOwog
ICAgICAgIGxvY2FsIHRhbm49IiR7VH0vYW5ub3VuY2VkLXZtIjsKICAgICAgICBpZiBbWyAtbiAi
JHtKQVZBX1BLR19ERUJVR30iIF1dIHx8IFtbICEgLWYgIiR7dGFubn0iIF1dOyB0aGVuCiAgICAg
ICAgICAgIGVpbmZvICJVc2luZzogJChqYXZhLWNvbmZpZyAtZikiOwogICAgICAgICAgICBbWyAh
IC1mICIke3Rhbm59IiBdXSAmJiB0b3VjaCAiJHt0YW5ufSI7CiAgICAgICAgZmk7CiAgICBlbHNl
CiAgICAgICAgW1sgLW4gIiR7SkFWQV9QS0dfREVCVUd9IiBdXSAmJiBld2FybiAiISEhIFRoaXMg
cGFja2FnZSBpbmhlcml0cyBqYXZhLXBrZyBidXQgZG9lc24ndCBkZXBlbmQgb24gYSBKREsuIC1i
aW4gb3IgYnJva2VuIGRlcGVuZGVuY3khISEiOwogICAgZmkKfQpqYXZhLXBrZ192ZXJpZnktY2xh
c3NlcyAoKSAKeyAKICAgIGxvY2FsIHRhcmdldD0kKGphdmEtcGtnX2dldC10YXJnZXQpOwogICAg
bG9jYWwgcmVzdWx0OwogICAgbG9jYWwgbG9nPSIke1R9L2NsYXNzLXZlcnNpb24tdmVyaWZ5Lmxv
ZyI7CiAgICBpZiBbWyAtbiAiJHsxfSIgXV07IHRoZW4KICAgICAgICBjbGFzcy12ZXJzaW9uLXZl
cmlmeS5weSAtdiAtdCAke3RhcmdldH0gIiR7MX0iID4gIiR7bG9nfSI7CiAgICAgICAgcmVzdWx0
PSQ/OwogICAgZWxzZQogICAgICAgIGViZWdpbiAiVmVyaWZ5aW5nIGphdmEgY2xhc3MgdmVyc2lv
bnMgKHRhcmdldDogJHt0YXJnZXR9KSI7CiAgICAgICAgY2xhc3MtdmVyc2lvbi12ZXJpZnkucHkg
LXYgLXQgJHt0YXJnZXR9IC1yICIke0R9IiA+ICIke2xvZ30iOwogICAgICAgIHJlc3VsdD0kPzsK
ICAgICAgICBlZW5kICR7cmVzdWx0fTsKICAgIGZpOwogICAgW1sgLW4gJHtKQVZBX1BLR19ERUJV
R30gXV0gJiYgY2F0ICIke2xvZ30iOwogICAgaWYgW1sgJHtyZXN1bHR9ICE9IDAgXV07IHRoZW4K
ICAgICAgICBlZXJyb3IgIkluY29ycmVjdCBieXRlY29kZSB2ZXJzaW9uIGZvdW5kIjsKICAgICAg
ICBbWyAtbiAiJHsxfSIgXV0gJiYgZWVycm9yICJpbiBmaWxlOiAkezF9IjsKICAgICAgICBlZXJy
b3IgIlNlZSAke2xvZ30gZm9yIG1vcmUgZGV0YWlscy4iOwogICAgICAgIGRpZWZ1bmMgIiRGVU5D
TkFNRSIgIiRMSU5FTk8iICIkPyIgIkluY29ycmVjdCBieXRlY29kZSBmb3VuZCI7CiAgICBmaQp9
Cm1ha2VfZGVza3RvcF9lbnRyeSAoKSAKeyAKICAgIFtbIC16ICQxIF1dICYmIGVlcnJvciAibWFr
ZV9kZXNrdG9wX2VudHJ5OiBZb3UgbXVzdCBzcGVjaWZ5IHRoZSBleGVjdXRhYmxlIiAmJiByZXR1
cm4gMTsKICAgIGxvY2FsIGV4ZWM9JHsxfTsKICAgIGxvY2FsIG5hbWU9JHsyOi0ke1BOfX07CiAg
ICBsb2NhbCBpY29uPSR7MzotJHtQTn19OwogICAgbG9jYWwgdHlwZT0kezR9OwogICAgbG9jYWwg
cGF0aD0kezV9OwogICAgaWYgW1sgLXogJHt0eXBlfSBdXTsgdGhlbgogICAgICAgIGxvY2FsIGNh
dG1haj0ke0NBVEVHT1JZJSUtKn07CiAgICAgICAgbG9jYWwgY2F0bWluPSR7Q0FURUdPUlkjIyot
fTsKICAgICAgICBjYXNlICR7Y2F0bWFqfSBpbiAKICAgICAgICAgICAgYXBwKQogICAgICAgICAg
ICAgICAgY2FzZSAke2NhdG1pbn0gaW4gCiAgICAgICAgICAgICAgICAgICAgYWNjZXNzaWJpbGl0
eSkKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1BY2Nlc3NpYmlsaXR5CiAgICAgICAgICAg
ICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBhZG1pbikKICAgICAgICAgICAgICAgICAg
ICAgICAgdHlwZT1TeXN0ZW0KICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAg
ICAgIGFudGl2aXJ1cykKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1TeXN0ZW0KICAgICAg
ICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIGFyY2gpCiAgICAgICAgICAgICAg
ICAgICAgICAgIHR5cGU9QXJjaGl2aW5nCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAg
ICAgICAgICAgICBiYWNrdXApCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9QXJjaGl2aW5n
CiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBjZHIpCiAgICAgICAg
ICAgICAgICAgICAgICAgIHR5cGU9RGlzY0J1cm5pbmcKICAgICAgICAgICAgICAgICAgICA7Owog
ICAgICAgICAgICAgICAgICAgIGRpY3RzKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPURp
Y3Rpb25hcnkKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIGRvYykK
ICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1Eb2N1bWVudGF0aW9uCiAgICAgICAgICAgICAg
ICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBlZGl0b3JzKQogICAgICAgICAgICAgICAgICAg
ICAgICB0eXBlPVRleHRFZGl0b3IKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAg
ICAgICAgIGVtYWNzKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVRleHRFZGl0b3IKICAg
ICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIGVtdWxhdGlvbikKICAgICAg
ICAgICAgICAgICAgICAgICAgdHlwZT1FbXVsYXRvcgogICAgICAgICAgICAgICAgICAgIDs7CiAg
ICAgICAgICAgICAgICAgICAgbGFwdG9wKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPUhh
cmR3YXJlU2V0dGluZ3MKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAg
IG9mZmljZSkKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1PZmZpY2UKICAgICAgICAgICAg
ICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIHBkYSkKICAgICAgICAgICAgICAgICAgICAg
ICAgdHlwZT1QREEKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIHZp
bSkKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1UZXh0RWRpdG9yCiAgICAgICAgICAgICAg
ICAgICAgOzsKICAgICAgICAgICAgICAgICAgICB4ZW1hY3MpCiAgICAgICAgICAgICAgICAgICAg
ICAgIHR5cGU9VGV4dEVkaXRvcgogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAg
ICAgICAgKikKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0KICAgICAgICAgICAgICAgICAg
ICA7OwogICAgICAgICAgICAgICAgZXNhYwogICAgICAgICAgICA7OwogICAgICAgICAgICBkZXYp
CiAgICAgICAgICAgICAgICB0eXBlPSJEZXZlbG9wbWVudCIKICAgICAgICAgICAgOzsKICAgICAg
ICAgICAgZ2FtZXMpCiAgICAgICAgICAgICAgICBjYXNlICR7Y2F0bWlufSBpbiAKICAgICAgICAg
ICAgICAgICAgICBhY3Rpb24gfCBmcHMpCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9QWN0
aW9uR2FtZQogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgYXJjYWRl
KQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPUFyY2FkZUdhbWUKICAgICAgICAgICAgICAg
ICAgICA7OwogICAgICAgICAgICAgICAgICAgIGJvYXJkKQogICAgICAgICAgICAgICAgICAgICAg
ICB0eXBlPUJvYXJkR2FtZQogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAg
ICAgZW11bGF0aW9uKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPUVtdWxhdG9yCiAgICAg
ICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBraWRzKQogICAgICAgICAgICAg
ICAgICAgICAgICB0eXBlPUtpZHNHYW1lCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAg
ICAgICAgICAgICBwdXp6bGUpCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9TG9naWNHYW1l
CiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICByb2d1ZWxpa2UpCiAg
ICAgICAgICAgICAgICAgICAgICAgIHR5cGU9Um9sZVBsYXlpbmcKICAgICAgICAgICAgICAgICAg
ICA7OwogICAgICAgICAgICAgICAgICAgIHJwZykKICAgICAgICAgICAgICAgICAgICAgICAgdHlw
ZT1Sb2xlUGxheWluZwogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAg
c2ltdWxhdGlvbikKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1TaW11bGF0aW9uCiAgICAg
ICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBzcG9ydHMpCiAgICAgICAgICAg
ICAgICAgICAgICAgIHR5cGU9U3BvcnRzR2FtZQogICAgICAgICAgICAgICAgICAgIDs7CiAgICAg
ICAgICAgICAgICAgICAgc3RyYXRlZ3kpCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9U3Ry
YXRlZ3lHYW1lCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICAqKQog
ICAgICAgICAgICAgICAgICAgICAgICB0eXBlPQogICAgICAgICAgICAgICAgICAgIDs7CiAgICAg
ICAgICAgICAgICBlc2FjOwogICAgICAgICAgICAgICAgdHlwZT0iR2FtZTske3R5cGV9IgogICAg
ICAgICAgICA7OwogICAgICAgICAgICBnbm9tZSkKICAgICAgICAgICAgICAgIHR5cGU9Ikdub21l
O0dUSyIKICAgICAgICAgICAgOzsKICAgICAgICAgICAga2RlKQogICAgICAgICAgICAgICAgdHlw
ZT0iS0RFO1F0IgogICAgICAgICAgICA7OwogICAgICAgICAgICBtYWlsKQogICAgICAgICAgICAg
ICAgdHlwZT0iTmV0d29yaztFbWFpbCIKICAgICAgICAgICAgOzsKICAgICAgICAgICAgbWVkaWEp
CiAgICAgICAgICAgICAgICBjYXNlICR7Y2F0bWlufSBpbiAKICAgICAgICAgICAgICAgICAgICBn
ZngpCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9R3JhcGhpY3MKICAgICAgICAgICAgICAg
ICAgICA7OwogICAgICAgICAgICAgICAgICAgIHJhZGlvKQogICAgICAgICAgICAgICAgICAgICAg
ICB0eXBlPVR1bmVyCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBz
b3VuZCkKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1BdWRpbwogICAgICAgICAgICAgICAg
ICAgIDs7CiAgICAgICAgICAgICAgICAgICAgdHYpCiAgICAgICAgICAgICAgICAgICAgICAgIHR5
cGU9VFYKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIHZpZGVvKQog
ICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVZpZGVvCiAgICAgICAgICAgICAgICAgICAgOzsK
ICAgICAgICAgICAgICAgICAgICAqKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPQogICAg
ICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICBlc2FjOwogICAgICAgICAgICAgICAg
dHlwZT0iQXVkaW9WaWRlbzske3R5cGV9IgogICAgICAgICAgICA7OwogICAgICAgICAgICBuZXQp
CiAgICAgICAgICAgICAgICBjYXNlICR7Y2F0bWlufSBpbiAKICAgICAgICAgICAgICAgICAgICBk
aWFsdXApCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9RGlhbHVwCiAgICAgICAgICAgICAg
ICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBmdHApCiAgICAgICAgICAgICAgICAgICAgICAg
IHR5cGU9RmlsZVRyYW5zZmVyCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAg
ICAgICBpbSkKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1JbnN0YW50TWVzc2FnaW5nCiAg
ICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBpcmMpCiAgICAgICAgICAg
ICAgICAgICAgICAgIHR5cGU9SVJDQ2xpZW50CiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAg
ICAgICAgICAgICAgICBtYWlsKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPUVtYWlsCiAg
ICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBuZXdzKQogICAgICAgICAg
ICAgICAgICAgICAgICB0eXBlPU5ld3MKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAg
ICAgICAgICAgIG5udHApCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9TmV3cwogICAgICAg
ICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgcDJwKQogICAgICAgICAgICAgICAg
ICAgICAgICB0eXBlPUZpbGVUcmFuc2ZlcgogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAg
ICAgICAgICAgICAgKikKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0KICAgICAgICAgICAg
ICAgICAgICA7OwogICAgICAgICAgICAgICAgZXNhYzsKICAgICAgICAgICAgICAgIHR5cGU9Ik5l
dHdvcms7JHt0eXBlfSIKICAgICAgICAgICAgOzsKICAgICAgICAgICAgc2NpKQogICAgICAgICAg
ICAgICAgY2FzZSAke2NhdG1pbn0gaW4gCiAgICAgICAgICAgICAgICAgICAgYXN0cm8qKQogICAg
ICAgICAgICAgICAgICAgICAgICB0eXBlPUFzdHJvbm9teQogICAgICAgICAgICAgICAgICAgIDs7
CiAgICAgICAgICAgICAgICAgICAgYmlvKikKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1C
aW9sb2d5CiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBjYWxjKikK
ICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1DYWxjdWxhdG9yCiAgICAgICAgICAgICAgICAg
ICAgOzsKICAgICAgICAgICAgICAgICAgICBjaGVtKikKICAgICAgICAgICAgICAgICAgICAgICAg
dHlwZT1DaGVtaXN0cnkKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAg
IGVsZWMqKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPUVsZWN0cm9uaWNzCiAgICAgICAg
ICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBnZW8qKQogICAgICAgICAgICAgICAg
ICAgICAgICB0eXBlPUdlb2xvZ3kKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAg
ICAgICAgIG1hdGgqKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPU1hdGgKICAgICAgICAg
ICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIHBoeXNpY3MpCiAgICAgICAgICAgICAg
ICAgICAgICAgIHR5cGU9UGh5c2ljcwogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAg
ICAgICAgICAgdmlzdWFsKikKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1EYXRhVmlzdWFs
aXphdGlvbgogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgKikKICAg
ICAgICAgICAgICAgICAgICAgICAgdHlwZT0KICAgICAgICAgICAgICAgICAgICA7OwogICAgICAg
ICAgICAgICAgZXNhYzsKICAgICAgICAgICAgICAgIHR5cGU9IlNjaWVuY2U7JHt0eXBlfSIKICAg
ICAgICAgICAgOzsKICAgICAgICAgICAgc3lzKQogICAgICAgICAgICAgICAgdHlwZT0iU3lzdGVt
IgogICAgICAgICAgICA7OwogICAgICAgICAgICB3d3cpCiAgICAgICAgICAgICAgICBjYXNlICR7
Y2F0bWlufSBpbiAKICAgICAgICAgICAgICAgICAgICBjbGllbnQpCiAgICAgICAgICAgICAgICAg
ICAgICAgIHR5cGU9V2ViQnJvd3NlcgogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAg
ICAgICAgICAgKikKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0KICAgICAgICAgICAgICAg
ICAgICA7OwogICAgICAgICAgICAgICAgZXNhYzsKICAgICAgICAgICAgICAgIHR5cGU9Ik5ldHdv
cmsiCiAgICAgICAgICAgIDs7CiAgICAgICAgICAgICopCiAgICAgICAgICAgICAgICB0eXBlPQog
ICAgICAgICAgICA7OwogICAgICAgIGVzYWM7CiAgICBmaTsKICAgIGlmIFsgIiR7U0xPVH0iID09
ICIwIiBdOyB0aGVuCiAgICAgICAgbG9jYWwgZGVza3RvcF9uYW1lPSIke1BOfSI7CiAgICBlbHNl
CiAgICAgICAgbG9jYWwgZGVza3RvcF9uYW1lPSIke1BOfS0ke1NMT1R9IjsKICAgIGZpOwogICAg
bG9jYWwgZGVza3RvcD0iJHtUfS8kKGVjaG8gJHtleGVjfSB8IHNlZCAnczpbWzpzcGFjZTpdLzpd
Ol86ZycpLSR7ZGVza3RvcF9uYW1lfS5kZXNrdG9wIjsKICAgIGNhdCA+ICIke2Rlc2t0b3B9IiAg
PDwtRU9GCltEZXNrdG9wIEVudHJ5XQpWZXJzaW9uPTEuMApOYW1lPSR7bmFtZX0KVHlwZT1BcHBs
aWNhdGlvbgpDb21tZW50PSR7REVTQ1JJUFRJT059CkV4ZWM9JHtleGVjfQpUcnlFeGVjPSR7ZXhl
YyUlICp9Ckljb249JHtpY29ufQpDYXRlZ29yaWVzPSR7dHlwZX07CkVPRgoKICAgIFtbIC1uICR7
cGF0aH0gXV0gJiYgZWNobyAiUGF0aD0ke3BhdGh9IiA+PiAiJHtkZXNrdG9wfSI7CiAgICAoIGlu
c2ludG8gL3Vzci9zaGFyZS9hcHBsaWNhdGlvbnM7CiAgICBkb2lucyAiJHtkZXNrdG9wfSIgKQp9
Cm1ha2Vfc2Vzc2lvbl9kZXNrdG9wICgpIAp7IAogICAgW1sgLXogJDEgXV0gJiYgZWVycm9yICJt
YWtlX3Nlc3Npb25fZGVza3RvcDogWW91IG11c3Qgc3BlY2lmeSB0aGUgdGl0bGUiICYmIHJldHVy
biAxOwogICAgW1sgLXogJDIgXV0gJiYgZWVycm9yICJtYWtlX3Nlc3Npb25fZGVza3RvcDogWW91
IG11c3Qgc3BlY2lmeSB0aGUgY29tbWFuZCIgJiYgcmV0dXJuIDE7CiAgICBsb2NhbCB0aXRsZT0k
MTsKICAgIGxvY2FsIGNvbW1hbmQ9JDI7CiAgICBsb2NhbCBkZXNrdG9wPSR7VH0vJHt3bX0uZGVz
a3RvcDsKICAgIGNhdCA+ICIke2Rlc2t0b3B9IiAgPDwtRU9GCltEZXNrdG9wIEVudHJ5XQpOYW1l
PSR7dGl0bGV9CkNvbW1lbnQ9VGhpcyBzZXNzaW9uIGxvZ3MgeW91IGludG8gJHt0aXRsZX0KRXhl
Yz0ke2NvbW1hbmR9ClRyeUV4ZWM9JHtjb21tYW5kfQpUeXBlPUFwcGxpY2F0aW9uCkVPRgoKICAg
ICggaW5zaW50byAvdXNyL3NoYXJlL3hzZXNzaW9uczsKICAgIGRvaW5zICIke2Rlc2t0b3B9IiAp
Cn0KbWFrZV93cmFwcGVyICgpIAp7IAogICAgbG9jYWwgd3JhcHBlcj0kMSBiaW49JDIgY2hkaXI9
JDMgbGliZGlyPSQ0IHBhdGg9JDU7CiAgICBsb2NhbCB0bXB3cmFwcGVyPSQoZW1rdGVtcCk7CiAg
ICBjYXQgPiAiJHt0bXB3cmFwcGVyfSIgIDw8RU9GCiMhL2Jpbi9zaApjZCAiJHtjaGRpcjotLn0i
CmlmIFsgLW4gIiR7bGliZGlyfSIgXSA7IHRoZW4KCWlmIFsgIlwke0xEX0xJQlJBUllfUEFUSCtz
ZXR9IiA9ICJzZXQiIF0gOyB0aGVuCgkJZXhwb3J0IExEX0xJQlJBUllfUEFUSD0iXCR7TERfTElC
UkFSWV9QQVRIfToke2xpYmRpcn0iCgllbHNlCgkJZXhwb3J0IExEX0xJQlJBUllfUEFUSD0iJHts
aWJkaXJ9IgoJZmkKZmkKZXhlYyAke2Jpbn0gIlwkQCIKRU9GCgogICAgY2htb2QgZ28rcnggIiR7
dG1wd3JhcHBlcn0iOwogICAgaWYgW1sgLW4gJHtwYXRofSBdXTsgdGhlbgogICAgICAgICggZXhl
aW50byAiJHtwYXRofSI7CiAgICAgICAgbmV3ZXhlICIke3RtcHdyYXBwZXJ9IiAiJHt3cmFwcGVy
fSIgKSB8fCBkaWVmdW5jICIkRlVOQ05BTUUiICIkTElORU5PIiAiJD8iOwogICAgZWxzZQogICAg
ICAgIG5ld2JpbiAiJHt0bXB3cmFwcGVyfSIgIiR7d3JhcHBlcn0iIHx8IGRpZWZ1bmMgIiRGVU5D
TkFNRSIgIiRMSU5FTk8iICIkPyI7CiAgICBmaQp9Cm11bHRpbGliX2VudiAoKSAKeyAKICAgIGxv
Y2FsIENUQVJHRVQ9JHsxOi0ke0NUQVJHRVR9fTsKICAgIGNhc2UgJHtDVEFSR0VUfSBpbiAKICAg
ICAgICB4ODZfNjQqKQogICAgICAgICAgICBleHBvcnQgQ0ZMQUdTX3g4Nj0ke0NGTEFHU194ODYt
LW0zMn07CiAgICAgICAgICAgIGV4cG9ydCBDSE9TVF94ODY9JHtDVEFSR0VUL3g4Nl82NC9pNjg2
fTsKICAgICAgICAgICAgZXhwb3J0IENUQVJHRVRfeDg2PSR7Q0hPU1RfeDg2fTsKICAgICAgICAg
ICAgZXhwb3J0IENERUZJTkVfeDg2PSJfX2kzODZfXyI7CiAgICAgICAgICAgIGV4cG9ydCBMSUJE
SVJfeDg2PSJsaWIiOwogICAgICAgICAgICBleHBvcnQgQ0ZMQUdTX2FtZDY0PSR7Q0ZMQUdTX2Ft
ZDY0LS1tNjR9OwogICAgICAgICAgICBleHBvcnQgQ0hPU1RfYW1kNjQ9JHtDVEFSR0VUfTsKICAg
ICAgICAgICAgZXhwb3J0IENUQVJHRVRfYW1kNjQ9JHtDSE9TVF9hbWQ2NH07CiAgICAgICAgICAg
IGV4cG9ydCBDREVGSU5FX2FtZDY0PSJfX3g4Nl82NF9fIjsKICAgICAgICAgICAgZXhwb3J0IExJ
QkRJUl9hbWQ2ND0ibGliNjQiOwogICAgICAgICAgICBleHBvcnQgTVVMVElMSUJfQUJJUz0iYW1k
NjQgeDg2IjsKICAgICAgICAgICAgZXhwb3J0IERFRkFVTFRfQUJJPSJhbWQ2NCIKICAgICAgICA7
OwogICAgICAgIG1pcHM2NCopCiAgICAgICAgICAgIGV4cG9ydCBDRkxBR1NfbzMyPSR7Q0ZMQUdT
X28zMi0tbWFiaT0zMn07CiAgICAgICAgICAgIGV4cG9ydCBDSE9TVF9vMzI9JHtDVEFSR0VUL21p
cHM2NC9taXBzfTsKICAgICAgICAgICAgZXhwb3J0IENUQVJHRVRfbzMyPSR7Q0hPU1RfbzMyfTsK
ICAgICAgICAgICAgZXhwb3J0IENERUZJTkVfbzMyPSJfTUlQU19TSU0gPT0gX0FCSU8zMiI7CiAg
ICAgICAgICAgIGV4cG9ydCBMSUJESVJfbzMyPSJsaWIiOwogICAgICAgICAgICBleHBvcnQgQ0ZM
QUdTX24zMj0ke0NGTEFHU19uMzItLW1hYmk9bjMyfTsKICAgICAgICAgICAgZXhwb3J0IENIT1NU
X24zMj0ke0NUQVJHRVR9OwogICAgICAgICAgICBleHBvcnQgQ1RBUkdFVF9uMzI9JHtDSE9TVF9u
MzJ9OwogICAgICAgICAgICBleHBvcnQgQ0RFRklORV9uMzI9Il9NSVBTX1NJTSA9PSBfQUJJTjMy
IjsKICAgICAgICAgICAgZXhwb3J0IExJQkRJUl9uMzI9ImxpYjMyIjsKICAgICAgICAgICAgZXhw
b3J0IENGTEFHU19uNjQ9JHtDRkxBR1NfbjY0LS1tYWJpPTY0fTsKICAgICAgICAgICAgZXhwb3J0
IENIT1NUX242ND0ke0NUQVJHRVR9OwogICAgICAgICAgICBleHBvcnQgQ1RBUkdFVF9uNjQ9JHtD
SE9TVF9uNjR9OwogICAgICAgICAgICBleHBvcnQgQ0RFRklORV9uNjQ9Il9NSVBTX1NJTSA9PSBf
QUJJNjQiOwogICAgICAgICAgICBleHBvcnQgTElCRElSX242ND0ibGliNjQiOwogICAgICAgICAg
ICBleHBvcnQgTVVMVElMSUJfQUJJUz0ibjY0IG4zMiBvMzIiOwogICAgICAgICAgICBleHBvcnQg
REVGQVVMVF9BQkk9Im4zMiIKICAgICAgICA7OwogICAgICAgIHBvd2VycGM2NCopCiAgICAgICAg
ICAgIGV4cG9ydCBDRkxBR1NfcHBjPSR7Q0ZMQUdTX3BwYy0tbTMyfTsKICAgICAgICAgICAgZXhw
b3J0IENIT1NUX3BwYz0ke0NUQVJHRVQvcG93ZXJwYzY0L3Bvd2VycGN9OwogICAgICAgICAgICBl
eHBvcnQgQ1RBUkdFVF9wcGM9JHtDSE9TVF9wcGN9OwogICAgICAgICAgICBleHBvcnQgQ0RFRklO
RV9wcGM9IiFfX3Bvd2VycGM2NF9fIjsKICAgICAgICAgICAgZXhwb3J0IExJQkRJUl9wcGM9Imxp
YiI7CiAgICAgICAgICAgIGV4cG9ydCBDRkxBR1NfcHBjNjQ9JHtDRkxBR1NfcHBjNjQtLW02NH07
CiAgICAgICAgICAgIGV4cG9ydCBDSE9TVF9wcGM2ND0ke0NUQVJHRVR9OwogICAgICAgICAgICBl
eHBvcnQgQ1RBUkdFVF9wcGM2ND0ke0NIT1NUX3BwYzY0fTsKICAgICAgICAgICAgZXhwb3J0IENE
RUZJTkVfcHBjNjQ9Il9fcG93ZXJwYzY0X18iOwogICAgICAgICAgICBleHBvcnQgTElCRElSX3Bw
YzY0PSJsaWI2NCI7CiAgICAgICAgICAgIGV4cG9ydCBNVUxUSUxJQl9BQklTPSJwcGM2NCBwcGMi
OwogICAgICAgICAgICBleHBvcnQgREVGQVVMVF9BQkk9InBwYzY0IgogICAgICAgIDs7CiAgICAg
ICAgczM5MHgqKQogICAgICAgICAgICBleHBvcnQgQ0ZMQUdTX3MzOTA9JHtDRkxBR1NfczM5MC0t
bTMxfTsKICAgICAgICAgICAgZXhwb3J0IENIT1NUX3MzOTA9JHtDVEFSR0VUL3MzOTB4L3MzOTB9
OwogICAgICAgICAgICBleHBvcnQgQ1RBUkdFVF9zMzkwPSR7Q0hPU1RfczM5MH07CiAgICAgICAg
ICAgIGV4cG9ydCBDREVGSU5FX3MzOTA9IiFfX3MzOTB4X18iOwogICAgICAgICAgICBleHBvcnQg
TElCRElSX3MzOTA9ImxpYiI7CiAgICAgICAgICAgIGV4cG9ydCBDRkxBR1NfczM5MHg9JHtDRkxB
R1NfczM5MHgtLW02NH07CiAgICAgICAgICAgIGV4cG9ydCBDSE9TVF9zMzkweD0ke0NUQVJHRVR9
OwogICAgICAgICAgICBleHBvcnQgQ1RBUkdFVF9zMzkweD0ke0NIT1NUX3MzOTB4fTsKICAgICAg
ICAgICAgZXhwb3J0IENERUZJTkVfczM5MHg9Il9fczM5MHhfXyI7CiAgICAgICAgICAgIGV4cG9y
dCBMSUJESVJfczM5MHg9ImxpYjY0IjsKICAgICAgICAgICAgZXhwb3J0IE1VTFRJTElCX0FCSVM9
InMzOTB4IHMzOTAiOwogICAgICAgICAgICBleHBvcnQgREVGQVVMVF9BQkk9InMzOTB4IgogICAg
ICAgIDs7CiAgICAgICAgc3BhcmM2NCopCiAgICAgICAgICAgIGV4cG9ydCBDRkxBR1Nfc3BhcmMz
Mj0ke0NGTEFHU19zcGFyYzMyLS1tMzJ9OwogICAgICAgICAgICBleHBvcnQgQ0hPU1Rfc3BhcmMz
Mj0ke0NUQVJHRVQvc3BhcmM2NC9zcGFyY307CiAgICAgICAgICAgIGV4cG9ydCBDVEFSR0VUX3Nw
YXJjMzI9JHtDSE9TVF9zcGFyYzMyfTsKICAgICAgICAgICAgZXhwb3J0IENERUZJTkVfc3BhcmMz
Mj0iIV9fYXJjaDY0X18iOwogICAgICAgICAgICBleHBvcnQgTElCRElSX3NwYXJjMzI9ImxpYiI7
CiAgICAgICAgICAgIGV4cG9ydCBDRkxBR1Nfc3BhcmM2ND0ke0NGTEFHU19zcGFyYzY0LS1tNjR9
OwogICAgICAgICAgICBleHBvcnQgQ0hPU1Rfc3BhcmM2ND0ke0NUQVJHRVR9OwogICAgICAgICAg
ICBleHBvcnQgQ1RBUkdFVF9zcGFyYzY0PSR7Q0hPU1Rfc3BhcmM2NH07CiAgICAgICAgICAgIGV4
cG9ydCBDREVGSU5FX3NwYXJjNjQ9Il9fYXJjaDY0X18iOwogICAgICAgICAgICBleHBvcnQgTElC
RElSX3NwYXJjNjQ9ImxpYjY0IjsKICAgICAgICAgICAgZXhwb3J0IE1VTFRJTElCX0FCSVM9InNw
YXJjNjQgc3BhcmMzMiI7CiAgICAgICAgICAgIGV4cG9ydCBERUZBVUxUX0FCST0ic3BhcmM2NCIK
ICAgICAgICA7OwogICAgICAgICopCiAgICAgICAgICAgIGV4cG9ydCBNVUxUSUxJQl9BQklTPSJk
ZWZhdWx0IjsKICAgICAgICAgICAgZXhwb3J0IERFRkFVTFRfQUJJPSJkZWZhdWx0IgogICAgICAg
IDs7CiAgICBlc2FjCn0KbXVsdGlsaWJfdG9vbGNoYWluX3NldHVwICgpIAp7IAogICAgZXhwb3J0
IEFCST0kMTsKICAgIGlmIGhhc192ZXJzaW9uIGFwcC1hZG1pbi9lc2VsZWN0LWNvbXBpbGVyOyB0
aGVuCiAgICAgICAgZXhwb3J0IExEPSJsZCAkKGdldF9hYmlfTERGTEFHUyAkMSkiOwogICAgICAg
IGV4cG9ydCBBUz0iYXMgJChnZXRfYWJpX0FTRkxBR1MgJDEpIjsKICAgICAgICBleHBvcnQgQ0hP
U1Q9JChnZXRfYWJpX0NIT1NUICQxKTsKICAgICAgICBleHBvcnQgQ0JVSUxEPSQoZ2V0X2FiaV9D
SE9TVCAkMSk7CiAgICBlbHNlCiAgICAgICAgdGMtZXhwb3J0IENDOwogICAgZmkKfQpuZXdpY29u
ICgpIAp7IAogICAgKCBpbnNpbnRvIC91c3Ivc2hhcmUvcGl4bWFwczsKICAgIG5ld2lucyAiJEAi
ICkKfQpuZXdtZW51ICgpIAp7IAogICAgKCBpbnNpbnRvIC91c3Ivc2hhcmUvYXBwbGljYXRpb25z
OwogICAgbmV3aW5zICIkQCIgKQp9Cm51bWJlcl9hYmlzICgpIAp7IAogICAgZ2V0X2luc3RhbGxf
YWJpcyB8IHdjIC13Cn0KcGVybC1tb2R1bGVfcGtnX3Bvc3RpbnN0ICgpIAp7IAogICAgZWluZm8g
Ik1hbiBwYWdlcyBhcmUgbm90IGluc3RhbGxlZCBmb3IgbW9zdCBtb2R1bGVzIG5vdy4iOwogICAg
ZWluZm8gIlBsZWFzZSB1c2UgcGVybGRvYyBpbnN0ZWFkLiI7CiAgICB1cGRhdGVwb2QKfQpwZXJs
LW1vZHVsZV9wa2dfcG9zdHJtICgpIAp7IAogICAgdXBkYXRlcG9kCn0KcGVybC1tb2R1bGVfcGtn
X3ByZWluc3QgKCkgCnsgCiAgICBwZXJsaW5mbwp9CnBlcmwtbW9kdWxlX3BrZ19wcmVybSAoKSAK
eyAKICAgIHVwZGF0ZXBvZAp9CnBlcmwtbW9kdWxlX3BrZ19zZXR1cCAoKSAKeyAKICAgIHBlcmxp
bmZvCn0KcGVybC1tb2R1bGVfc3JjX2NvbXBpbGUgKCkgCnsgCiAgICBwZXJsaW5mbzsKICAgIFsg
IiR7U1JDX1BSRVB9IiAhPSAieWVzIiBdICYmIHBlcmwtbW9kdWxlX3NyY19wcmVwOwogICAgaWYg
WyAtZiBNYWtlZmlsZSBdOyB0aGVuCiAgICAgICAgbWFrZSAke215bWFrZX0gfHwgZGllZnVuYyAi
JEZVTkNOQU1FIiAiJExJTkVOTyIgIiQ/IiAiY29tcGlsYXRpb24gZmFpbGVkIjsKICAgIGVsc2UK
ICAgICAgICBpZiBbIC1mIEJ1aWxkIF07IHRoZW4KICAgICAgICAgICAgcGVybCBCdWlsZCBidWls
ZCB8fCBkaWVmdW5jICIkRlVOQ05BTUUiICIkTElORU5PIiAiJD8iICJjb21waWxhdGlvbiBmYWls
ZWQiOwogICAgICAgIGZpOwogICAgZmk7CiAgICBmaXhsb2NhbHBvZAp9CnBlcmwtbW9kdWxlX3Ny
Y19pbnN0YWxsICgpIAp7IAogICAgcGVybGluZm87CiAgICB0ZXN0IC16ICR7bXl0YXJnZXRzfSAm
JiBteXRhcmdldHM9Imluc3RhbGwiOwogICAgaWYgWyAtZiBNYWtlZmlsZSBdOyB0aGVuCiAgICAg
ICAgbWFrZSAke215aW5zdH0gJHtteXRhcmdldHN9IHx8IGRpZWZ1bmMgIiRGVU5DTkFNRSIgIiRM
SU5FTk8iICIkPyI7CiAgICBlbHNlCiAgICAgICAgaWYgWyAtZiBCdWlsZCBdOyB0aGVuCiAgICAg
ICAgICAgIHBlcmwgJHtTfS9CdWlsZCBpbnN0YWxsOwogICAgICAgIGZpOwogICAgZmk7CiAgICBl
aW5mbyAiQ2xlYW5pbmcgb3V0IHN0cmF5IG1hbiBmaWxlcyI7CiAgICBmb3IgRklMRSBpbiBgZmlu
ZCAke0R9IC10eXBlIGYgLW5hbWUgIiouM3BtKiJgOwogICAgZG8KICAgICAgICBybSAtcmYgJHtG
SUxFfTsKICAgIGRvbmU7CiAgICBmaW5kICR7RH0vdXNyL3NoYXJlL21hbiAtZGVwdGggLXR5cGUg
ZCAyPiAvZGV2L251bGwgfCB4YXJncyAtciBybWRpciAyPiAvZGV2L251bGw7CiAgICBmaXhsb2Nh
bHBvZDsKICAgIGZvciBGSUxFIGluIGBmaW5kICR7RH0gLXR5cGUgZiB8Z3JlcCAtdiAnLnNvJ2A7
CiAgICBkbwogICAgICAgIFNUQVQ9YGZpbGUgJEZJTEV8IGdyZXAgLWkgIiB0ZXh0ImA7CiAgICAg
ICAgaWYgWyAiJHtTVEFUfXgiICE9ICJ4IiBdOyB0aGVuCiAgICAgICAgICAgIHNlZCAtaSAtZSAi
czoke0R9Oi86ZyIgJHtGSUxFfTsKICAgICAgICBmaTsKICAgIGRvbmU7CiAgICBmb3IgZG9jIGlu
IENoYW5nZSogTUFOSUZFU1QqIFJFQURNRSogJHtteWRvY307CiAgICBkbwogICAgICAgIFsgLXMg
IiRkb2MiIF0gJiYgZG9kb2MgJGRvYzsKICAgIGRvbmUKfQpwZXJsLW1vZHVsZV9zcmNfcHJlcCAo
KSAKeyAKICAgIHBlcmxpbmZvOwogICAgZXhwb3J0IFBFUkxfTU1fVVNFX0RFRkFVTFQ9MTsKICAg
IGV4cG9ydCBQRVJMX0VYVFVUSUxTX0FVVE9JTlNUQUxMPSItLXNraXBkZXBzIjsKICAgIFNSQ19Q
UkVQPSJ5ZXMiOwogICAgZmluZCAke1N9IC10eXBlIGQgLW5hbWUgIlwuc3ZuIiAtZXhlYyAvYmlu
L3JtIC1yZiB7fSBcOyAyPiAvZGV2L251bGw7CiAgICBpZiBbICIke1BSRUZFUl9CVUlMRFBMfSIg
PT0gInllcyIgXSAmJiAoIFsgLWYgQnVpbGQuUEwgXSB8fCBbICR7UE59ID09ICJtb2R1bGUtYnVp
bGQiIF0gKTsgdGhlbgogICAgICAgIGVpbmZvICJVc2luZyBNb2R1bGU6OkJ1aWxkIjsKICAgICAg
ICBlY2hvICIkcG1fZWNob3ZhciIgfCBwZXJsIEJ1aWxkLlBMICR7bXljb25mfSAtLWluc3RhbGxk
aXJzPXZlbmRvciAtLWRlc3RkaXI9JHtEfSAtLWxpYmRvYz0gfHwgZGllZnVuYyAiJEZVTkNOQU1F
IiAiJExJTkVOTyIgIiQ/IiAiVW5hYmxlIHRvIGJ1aWxkISAoYXJlIHlvdSB1c2luZyBVU0U9XCJi
dWlsZFwiPykiOwogICAgZWxzZQogICAgICAgIGlmIFsgLWYgTWFrZWZpbGUuUEwgXSAmJiBbICEg
JHtQTn0gPT0gIm1vZHVsZS1idWlsZCIgXTsgdGhlbgogICAgICAgICAgICBlaW5mbyAiVXNpbmcg
RXh0VXRpbHM6Ok1ha2VNYWtlciI7CiAgICAgICAgICAgIGVjaG8gIiRwbV9lY2hvdmFyIiB8IHBl
cmwgTWFrZWZpbGUuUEwgJHtteWNvbmZ9IElOU1RBTExNQU4zRElSPSdub25lJyBQUkVGSVg9L3Vz
ciBJTlNUQUxMRElSUz12ZW5kb3IgREVTVERJUj0ke0R9IHx8IGRpZWZ1bmMgIiRGVU5DTkFNRSIg
IiRMSU5FTk8iICIkPyIgIlVuYWJsZSB0byBidWlsZCEgKGFyZSB5b3UgdXNpbmcgVVNFPVwiYnVp
bGRcIj8pIjsKICAgICAgICBmaTsKICAgIGZpOwogICAgaWYgWyAhIC1mIEJ1aWxkLlBMIF0gJiYg
WyAhIC1mIE1ha2VmaWxlLlBMIF07IHRoZW4KICAgICAgICBlaW5mbyAiTm8gTWFrZSBvciBCdWls
ZCBmaWxlIGRldGVjdGVkLi4uIjsKICAgICAgICByZXR1cm47CiAgICBmaQp9CnBlcmwtbW9kdWxl
X3NyY190ZXN0ICgpIAp7IAogICAgaWYgWyAiJHtTUkNfVEVTVH0iID09ICJkbyIgXTsgdGhlbgog
ICAgICAgIHBlcmxpbmZvOwogICAgICAgIGlmIFsgLWYgTWFrZWZpbGUgXTsgdGhlbgogICAgICAg
ICAgICBtYWtlIHRlc3QgfHwgZGllZnVuYyAiJEZVTkNOQU1FIiAiJExJTkVOTyIgIiQ/IiAidGVz
dCBmYWlsZWQiOwogICAgICAgIGVsc2UKICAgICAgICAgICAgaWYgWyAtZiBCdWlsZCBdOyB0aGVu
CiAgICAgICAgICAgICAgICBwZXJsIEJ1aWxkIHRlc3QgfHwgZGllZnVuYyAiJEZVTkNOQU1FIiAi
JExJTkVOTyIgIiQ/IiAidGVzdCBmYWlsZWQiOwogICAgICAgICAgICBmaTsKICAgICAgICBmaTsK
ICAgIGZpCn0KcGVybC1tb2R1bGVfc3JjX3VucGFjayAoKSAKeyAKICAgIGlmIFtbIC1uICR7UEFU
Q0hFU30gXV07IHRoZW4KICAgICAgICBiYXNlX3NyY191bnBhY2sgdW5wYWNrOwogICAgICAgIGJh
c2Vfc3JjX3VucGFjayBhdXRvcGF0Y2g7CiAgICBlbHNlCiAgICAgICAgYmFzZV9zcmNfdW5wYWNr
IHVucGFjazsKICAgIGZpCn0KcGVybGluZm8gKCkgCnsgCiAgICBsb2NhbCB2ZXJzaW9uOwogICAg
ZXZhbCBgcGVybCAnLVY6dmVyc2lvbidgOwogICAgUEVSTF9WRVJTSU9OPSR7dmVyc2lvbn07CiAg
ICBsb2NhbCBpbnN0YWxsc2l0ZWFyY2g7CiAgICBldmFsIGBwZXJsICctVjppbnN0YWxsc2l0ZWFy
Y2gnYDsKICAgIFNJVEVfQVJDSD0ke2luc3RhbGxzaXRlYXJjaH07CiAgICBsb2NhbCBpbnN0YWxs
c2l0ZWxpYjsKICAgIGV2YWwgYHBlcmwgJy1WOmluc3RhbGxzaXRlbGliJ2A7CiAgICBTSVRFX0xJ
Qj0ke2luc3RhbGxzaXRlbGlifTsKICAgIGxvY2FsIGluc3RhbGxhcmNobGliOwogICAgZXZhbCBg
cGVybCAnLVY6aW5zdGFsbGFyY2hsaWInYDsKICAgIEFSQ0hfTElCPSR7aW5zdGFsbGFyY2hsaWJ9
OwogICAgbG9jYWwgaW5zdGFsbHZlbmRvcmxpYjsKICAgIGV2YWwgYHBlcmwgJy1WOmluc3RhbGx2
ZW5kb3JsaWInYDsKICAgIFZFTkRPUl9MSUI9JHtpbnN0YWxsdmVuZG9ybGlifTsKICAgIGxvY2Fs
IGluc3RhbGx2ZW5kb3JhcmNoOwogICAgZXZhbCBgcGVybCAnLVY6aW5zdGFsbHZlbmRvcmFyY2gn
YDsKICAgIFZFTkRPUl9BUkNIPSR7aW5zdGFsbHZlbmRvcmFyY2h9OwogICAgaWYgWyAiJHtQUkVG
RVJfQlVJTERQTH0iID09ICJ5ZXMiIF07IHRoZW4KICAgICAgICBpZiBbICEgLWYgJHtTfS9NYWtl
ZmlsZS5QTCBdIHx8IFsgJHtQTn0gPT0gIm1vZHVsZS1idWlsZCIgXTsgdGhlbgogICAgICAgICAg
ICBpZiBbIC1mICR7U30vQnVpbGQuUEwgXTsgdGhlbgogICAgICAgICAgICAgICAgaWYgWyAke1BO
fSA9PSAibW9kdWxlLWJ1aWxkIiBdOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgQlVJTERFUl9W
RVI9IjEiOwogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgIEJVSUxERVJf
VkVSPWBwZXJsIC1NTW9kdWxlOjpCdWlsZCAtZSAncHJpbnQgIiRNb2R1bGU6OkJ1aWxkOjpWRVJT
SU9OOyInIGA7CiAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgZmk7CiAgICAgICAgZmk7
CiAgICBmaTsKICAgIGlmIFsgLWYgL3Vzci9iaW4vcGVybCBdOyB0aGVuCiAgICAgICAgUE9EX0RJ
Uj0iL3Vzci9zaGFyZS9wZXJsL2dlbnRvby1wb2RzLyR7dmVyc2lvbn0iOwogICAgZmkKfQpwa2df
bm9mZXRjaCAoKSAKeyAKICAgIFsgLXogIiR7U1JDX1VSSX0iIF0gJiYgcmV0dXJuOwogICAgZWNo
byAiISEhIFRoZSBmb2xsb3dpbmcgYXJlIGxpc3RlZCBpbiBTUkNfVVJJIGZvciAke1BOfToiOwog
ICAgbG9jYWwgeDsKICAgIGZvciB4IGluICQoZWNobyAke1NSQ19VUkl9KTsKICAgIGRvCiAgICAg
ICAgZWNobyAiISEhICAgJHt4fSI7CiAgICBkb25lCn0KcGtnX3Bvc3RpbnN0ICgpIAp7IAogICAg
cGVybC1tb2R1bGVfcGtnX3Bvc3RpbnN0ICRACn0KcGtnX3Bvc3RybSAoKSAKeyAKICAgIHBlcmwt
bW9kdWxlX3BrZ19wb3N0cm0gJEAKfQpwa2dfcHJlaW5zdCAoKSAKeyAKICAgIHBlcmwtbW9kdWxl
X3BrZ19wcmVpbnN0ICRACn0KcGtnX3ByZXJtICgpIAp7IAogICAgcGVybC1tb2R1bGVfcGtnX3By
ZXJtICRACn0KcGtnX3NldHVwICgpIAp7IAogICAgamF2YS1wa2ctb3B0LTJfcGtnX3NldHVwICRA
Cn0KcHJlcF9tbF9pbmNsdWRlcyAoKSAKeyAKICAgIGlmIFtbICQobnVtYmVyX2FiaXMpIC1ndCAx
IF1dOyB0aGVuCiAgICAgICAgbG9jYWwgZGlyOwogICAgICAgIGxvY2FsIGRpcnM7CiAgICAgICAg
bG9jYWwgYmFzZTsKICAgICAgICBpZiBbWyAkIyAtZXEgMCBdXTsgdGhlbgogICAgICAgICAgICBk
aXJzPS91c3IvaW5jbHVkZTsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGRpcnM9IiRAIjsKICAg
ICAgICBmaTsKICAgICAgICBmb3IgZGlyIGluICR7ZGlyc307CiAgICAgICAgZG8KICAgICAgICAg
ICAgYmFzZT0ke1R9L2dlbnRvby1tdWx0aWxpYi8ke2Rpcn0vZ2VudG9vLW11bHRpbGliOwogICAg
ICAgICAgICBta2RpciAtcCAiJHtiYXNlfSI7CiAgICAgICAgICAgIFtbIC1kICR7YmFzZX0vJHtB
Qkl9IF1dICYmIHJtIC1yZiAiJHtiYXNlfS8ke0FCSX0iOwogICAgICAgICAgICBtdiAiJHtEfS8k
e2Rpcn0iICIke2Jhc2V9LyR7QUJJfSI7CiAgICAgICAgZG9uZTsKICAgICAgICBpZiBpc19maW5h
bF9hYmk7IHRoZW4KICAgICAgICAgICAgYmFzZT0ke1R9L2dlbnRvby1tdWx0aWxpYjsKICAgICAg
ICAgICAgcHVzaGQgIiR7YmFzZX0iOwogICAgICAgICAgICBmaW5kIC4gfCB0YXIgLWMgLVQgLSAt
ZiAtIHwgdGFyIC14IC0tbm8tc2FtZS1vd25lciAtZiAtIC1DICR7RH07CiAgICAgICAgICAgIHBv
cGQ7CiAgICAgICAgICAgIHNldCAtLTsKICAgICAgICAgICAgZm9yIGRpciBpbiAke2RpcnN9Owog
ICAgICAgICAgICBkbwogICAgICAgICAgICAgICAgc2V0IC0tICIkQCIgIiR7ZGlyfSI7CiAgICAg
ICAgICAgICAgICBsb2NhbCBhYmk7CiAgICAgICAgICAgICAgICBmb3IgYWJpIGluICQoZ2V0X2lu
c3RhbGxfYWJpcyk7CiAgICAgICAgICAgICAgICBkbwogICAgICAgICAgICAgICAgICAgIHNldCAt
LSAiJEAiICIkKGdldF9hYmlfQ0RFRklORSAke2FiaX0pOiR7ZGlyfS9nZW50b28tbXVsdGlsaWIv
JHthYml9IjsKICAgICAgICAgICAgICAgIGRvbmU7CiAgICAgICAgICAgICAgICBjcmVhdGVfbWxf
aW5jbHVkZXMgIiRAIjsKICAgICAgICAgICAgZG9uZTsKICAgICAgICBmaTsKICAgIGZpCn0KcHJl
c2VydmVfb2xkX2xpYiAoKSAKeyAKICAgIGlmIFtbICR7RUJVSUxEX1BIQVNFfSAhPSAicHJlaW5z
dCIgXV07IHRoZW4KICAgICAgICBlZXJyb3IgInByZXNlcnZlX29sZF9saWIoKSBtdXN0IGJlIGNh
bGxlZCBmcm9tIHBrZ19wcmVpbnN0KCkgb25seSI7CiAgICAgICAgZGllZnVuYyAiJEZVTkNOQU1F
IiAiJExJTkVOTyIgIiQ/IiAiSW52YWxpZCBwcmVzZXJ2ZV9vbGRfbGliKCkgdXNhZ2UiOwogICAg
Zmk7CiAgICBbWyAteiAkMSBdXSAmJiBkaWVmdW5jICIkRlVOQ05BTUUiICIkTElORU5PIiAiJD8i
ICJVc2FnZTogcHJlc2VydmVfb2xkX2xpYiA8bGlicmFyeSB0byBwcmVzZXJ2ZT4gW21vcmUgbGli
cmFyaWVzIHRvIHByZXNlcnZlXSI7CiAgICBsb2NhbCBsaWIgZGlyOwogICAgZm9yIGxpYiBpbiAi
JEAiOwogICAgZG8KICAgICAgICBbWyAtZSAke1JPT1R9LyR7bGlifSBdXSB8fCBjb250aW51ZTsK
ICAgICAgICBkaXI9JHtsaWIlLyp9OwogICAgICAgIGRvZGlyICR7ZGlyfSB8fCBkaWVmdW5jICIk
RlVOQ05BTUUiICIkTElORU5PIiAiJD8iICJkb2RpciAke2Rpcn0gZmFpbGVkIjsKICAgICAgICBj
cCAiJHtST09UfSIvJHtsaWJ9ICIke0R9Ii8ke2xpYn0gfHwgZGllZnVuYyAiJEZVTkNOQU1FIiAi
JExJTkVOTyIgIiQ/IiAiY3AgJHtsaWJ9IGZhaWxlZCI7CiAgICAgICAgdG91Y2ggIiR7RH0iLyR7
bGlifTsKICAgIGRvbmUKfQpwcmVzZXJ2ZV9vbGRfbGliX25vdGlmeSAoKSAKeyAKICAgIGlmIFtb
ICR7RUJVSUxEX1BIQVNFfSAhPSAicG9zdGluc3QiIF1dOyB0aGVuCiAgICAgICAgZWVycm9yICJw
cmVzZXJ2ZV9vbGRfbGliX25vdGlmeSgpIG11c3QgYmUgY2FsbGVkIGZyb20gcGtnX3Bvc3RpbnN0
KCkgb25seSI7CiAgICAgICAgZGllZnVuYyAiJEZVTkNOQU1FIiAiJExJTkVOTyIgIiQ/IiAiSW52
YWxpZCBwcmVzZXJ2ZV9vbGRfbGliX25vdGlmeSgpIHVzYWdlIjsKICAgIGZpOwogICAgbG9jYWwg
bGliIG5vdGljZT0wOwogICAgZm9yIGxpYiBpbiAiJEAiOwogICAgZG8KICAgICAgICBbWyAtZSAk
e1JPT1R9LyR7bGlifSBdXSB8fCBjb250aW51ZTsKICAgICAgICBpZiBbWyAke25vdGljZX0gLWVx
IDAgXV07IHRoZW4KICAgICAgICAgICAgbm90aWNlPTE7CiAgICAgICAgICAgIGV3YXJuICJPbGQg
dmVyc2lvbnMgb2YgaW5zdGFsbGVkIGxpYnJhcmllcyB3ZXJlIGRldGVjdGVkIG9uIHlvdXIgc3lz
dGVtLiI7CiAgICAgICAgICAgIGV3YXJuICJJbiBvcmRlciB0byBhdm9pZCBicmVha2luZyBwYWNr
YWdlcyB0aGF0IGRlcGVuZCBvbiB0aGVzZSBvbGQgbGlicywiOwogICAgICAgICAgICBld2FybiAi
dGhlIGxpYnJhcmllcyBhcmUgbm90IGJlaW5nIHJlbW92ZWQuICBZb3UgbmVlZCB0byBydW4gcmV2
ZGVwLXJlYnVpbGQiOwogICAgICAgICAgICBld2FybiAiaW4gb3JkZXIgdG8gcmVtb3ZlIHRoZXNl
IG9sZCBkZXBlbmRlbmNpZXMuICBJZiB5b3UgZG8gbm90IGhhdmUgdGhpcyI7CiAgICAgICAgICAg
IGV3YXJuICJoZWxwZXIgcHJvZ3JhbSwgc2ltcGx5IGVtZXJnZSB0aGUgJ2dlbnRvb2xraXQnIHBh
Y2thZ2UuIjsKICAgICAgICAgICAgZXdhcm47CiAgICAgICAgZmk7CiAgICAgICAgZXdhcm4gIiAg
IyByZXZkZXAtcmVidWlsZCAtLWxpYnJhcnkgJHtsaWIjIyovfSI7CiAgICBkb25lOwogICAgaWYg
W1sgJHtub3RpY2V9IC1lcSAxIF1dOyB0aGVuCiAgICAgICAgZXdhcm47CiAgICAgICAgZXdhcm4g
Ik9uY2UgeW91J3ZlIGZpbmlzaGVkIHJ1bm5pbmcgcmV2ZGVwLXJlYnVpbGQsIGl0IHNob3VsZCBi
ZSBzYWZlIHRvIjsKICAgICAgICBld2FybiAiZGVsZXRlIHRoZSBvbGQgbGlicmFyaWVzLiI7CiAg
ICBmaQp9CnJlcGxhY2VfYWxsX3ZlcnNpb25fc2VwYXJhdG9ycyAoKSAKeyAKICAgIF9fdmVyc2lv
bmF0b3Jfc2hvcHRfdG9nZ2xlIG9uOwogICAgbG9jYWwgYzsKICAgIGM9KCQoZ2V0X2FsbF92ZXJz
aW9uX2NvbXBvbmVudHMgIiR7MjotJHtQVn19IiApKTsKICAgIGM9IiR7Y1tAXS8vWy0uX10vJDF9
IjsKICAgIGVjaG8gJHtjLy8gfTsKICAgIF9fdmVyc2lvbmF0b3Jfc2hvcHRfdG9nZ2xlIG9mZgp9
CnJlcGxhY2VfdmVyc2lvbl9zZXBhcmF0b3IgKCkgCnsgCiAgICBfX3ZlcnNpb25hdG9yX3Nob3B0
X3RvZ2dsZSBvbjsKICAgIGxvY2FsIHcgaSBjIGZvdW5kPTAgdj0iJHszOi0ke1BWfX0iOwogICAg
dz0kezE6LTF9OwogICAgYz0oJChnZXRfYWxsX3ZlcnNpb25fY29tcG9uZW50cyAke3Z9ICkpOwog
ICAgaWYgW1sgIiR7dy8vW1s6ZGlnaXQ6XV0vfSIgPT0gIiR7d30iIF1dOyB0aGVuCiAgICAgICAg
Zm9yICgoaSA9IDAgOyBpIDwgJHsjY1tAXX0gOyBpID0gJGkgKyAxICkpCiAgICAgICAgZG8KICAg
ICAgICAgICAgaWYgW1sgIiR7Y1ske2l9XX0iID09ICIke3d9IiBdXTsgdGhlbgogICAgICAgICAg
ICAgICAgY1ske2l9XT0iJHsyfSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
Zmk7CiAgICAgICAgZG9uZTsKICAgIGVsc2UKICAgICAgICBmb3IgKChpID0gMCA7IGkgPCAkeyNj
W0BdfSA7IGkgPSAkaSArIDEgKSkKICAgICAgICBkbwogICAgICAgICAgICBpZiBbWyAtbiAiJHtj
WyR7aX1dLy9bXi0uX119IiBdXTsgdGhlbgogICAgICAgICAgICAgICAgZm91bmQ9JCgoJGZvdW5k
ICsgMSkpOwogICAgICAgICAgICAgICAgaWYgW1sgIiRmb3VuZCIgPT0gIiR7d30iIF1dOyB0aGVu
CiAgICAgICAgICAgICAgICAgICAgY1ske2l9XT0iJHsyfSI7CiAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgZmk7CiAgICAgICAgZG9uZTsK
ICAgIGZpOwogICAgYz0ke2NbQF19OwogICAgZWNobyAke2MvLyB9OwogICAgX192ZXJzaW9uYXRv
cl9zaG9wdF90b2dnbGUgb2ZmCn0Kc2VxICgpIAp7IAogICAgbG9jYWwgcD0kKHR5cGUgLVAgc2Vx
KTsKICAgIGNhc2UgJCMgaW4gCiAgICAgICAgMSkKICAgICAgICAgICAgbWluPTEgbWF4PSQxIHN0
ZXA9MQogICAgICAgIDs7CiAgICAgICAgMikKICAgICAgICAgICAgbWluPSQxIG1heD0kMiBzdGVw
PTEKICAgICAgICA7OwogICAgICAgIDMpCiAgICAgICAgICAgIG1pbj0kMSBtYXg9JDMgc3RlcD0k
MgogICAgICAgIDs7CiAgICAgICAgKikKICAgICAgICAgICAgZGllZnVuYyAiJEZVTkNOQU1FIiAi
JExJTkVOTyIgIiQ/IiAic2VxIGNhbGxlZCB3aXRoIHdyb25nIG51bWJlciBvZiBhcmd1bWVudHMi
CiAgICAgICAgOzsKICAgIGVzYWM7CiAgICBpZiBbWyAteiAke3B9IF1dOyB0aGVuCiAgICAgICAg
bG9jYWwgcmVwczsKICAgICAgICBpZiBbWyAke3N0ZXB9ICE9IDAgXV07IHRoZW4KICAgICAgICAg
ICAgcmVwcz0kKCggKCRtYXgtJG1pbikgLyAkc3RlcCArMSApKTsKICAgICAgICBlbHNlCiAgICAg
ICAgICAgIHJlcHM9MDsKICAgICAgICBmaTsKICAgICAgICBqb3QgJHJlcHMgJG1pbiAkbWF4ICRz
dGVwOwogICAgZWxzZQogICAgICAgICIke3B9IiAkbWluICRzdGVwICRtYXg7CiAgICBmaQp9CnNy
Y19jb21waWxlICgpIAp7IAogICAgZWNvbmYgLS1pbmNsdWRlZGlyPS91c3IvaW5jbHVkZS9saWJw
aXNvY2sgLS1lbmFibGUtY29uZHVpdHMgLS13aXRoLXRjbD1ubyAtLXdpdGhvdXQtaW5jbHVkZWQt
cG9wdCAtLWRpc2FibGUtY29tcGlsZS13ZXJyb3IgJCh1c2VfZW5hYmxlIHRocmVhZHMpICQodXNl
X2VuYWJsZSB1c2IgbGlidXNiKSAkKHVzZV9lbmFibGUgZGVidWcpICQodXNlX3dpdGggcG5nIGxp
YnBuZyAkKGxpYnBuZy1jb25maWcgLS1wcmVmaXgpKSAkKHVzZV93aXRoIGJsdWV0b290aCBibHVl
eikgJCh1c2Vfd2l0aCByZWFkbGluZSkgJCh1c2Vfd2l0aCBwZXJsKSAkKHVzZV93aXRoIGphdmEp
ICQodXNlX3dpdGggcHl0aG9uKSB8fCBkaWVmdW5jICIkRlVOQ05BTUUiICIkTElORU5PIiAiJD8i
ICJlY29uZiBmYWlsZWQiOwogICAgZW1ha2UgfHwgZGllZnVuYyAiJEZVTkNOQU1FIiAiJExJTkVO
TyIgIiQ/IiAiZW1ha2UgZmFpbGVkIjsKICAgIGlmIHVzZSBwZXJsOyB0aGVuCiAgICAgICAgY2Qg
IiR7U30vYmluZGluZ3MvUGVybCI7CiAgICAgICAgcGVybC1tb2R1bGVfc3JjX3ByZXA7CiAgICAg
ICAgcGVybC1tb2R1bGVfc3JjX2NvbXBpbGU7CiAgICBmaQp9CnNyY19pbnN0YWxsICgpIAp7IAog
ICAgZW1ha2UgREVTVERJUj0iJHtEfSIgaW5zdGFsbCB8fCBkaWVmdW5jICIkRlVOQ05BTUUiICIk
TElORU5PIiAiJD8iICJlbWFrZSBpbnN0YWxsIGZhaWxlZCI7CiAgICBkb2RvYyBDaGFuZ2VMb2cg
UkVBRE1FIGRvYy9SRUFETUUqIGRvYy9UT0RPIE5FV1MgQVVUSE9SUyB8fCBkaWVmdW5jICIkRlVO
Q05BTUUiICIkTElORU5PIiAiJD8iICJpbnN0YWxsaW5nIGRvY3MgZmFpbGVkIjsKICAgIGlmIHVz
ZSBqYXZhOyB0aGVuCiAgICAgICAgY2QgIiR7U30vYmluZGluZ3MvSmF2YSI7CiAgICAgICAgamF2
YS1wa2dfbmV3amFyICR7UE59LmphcjsKICAgICAgICBqYXZhLXBrZ19kb3NvIGxpYmpwaXNvY2su
c287CiAgICBmaTsKICAgIGlmIHVzZSBwZXJsOyB0aGVuCiAgICAgICAgY2QgIiR7U30vYmluZGlu
Z3MvUGVybCI7CiAgICAgICAgcGVybC1tb2R1bGVfc3JjX2luc3RhbGw7CiAgICBmaQp9CnNyY190
ZXN0ICgpIAp7IAogICAgcGVybC1tb2R1bGVfc3JjX3Rlc3QgJEAKfQpzcmNfdW5wYWNrICgpIAp7
IAogICAgdW5wYWNrICR7QX07CiAgICBjZCAiJHtTfSI7CiAgICBlcGF0Y2ggIiR7RklMRVNESVJ9
LyR7UE59LTAuMTIuMi1yZWFkbGluZS5wYXRjaCI7CiAgICBlcGF0Y2ggIiR7RklMRVNESVJ9LyR7
UE59LTAuMTIuMi10aHJlYWRzLnBhdGNoIjsKICAgIGVwYXRjaCAiJHtGSUxFU0RJUn0vJHtQfS1w
bmcucGF0Y2giOwogICAgZXBhdGNoICIke0ZJTEVTRElSfS8ke1BOfS0wLjEyLjItd2Vycm9yXzE5
NDkyMS5wYXRjaCI7CiAgICB1c2UgamF2YSAmJiBlcGF0Y2ggIiR7RklMRVNESVJ9LyR7UH0tamF2
YS1pbnN0YWxsLnBhdGNoIjsKICAgIGVwYXRjaCAiJHtGSUxFU0RJUn0vJHtQfS1pbnRfdHlwZXMu
cGF0Y2giOwogICAgQVRfTTRESVI9Im00IiBlYXV0b3JlY29uZgp9CnN0cmlwLWxpbmd1YXMgKCkg
CnsgCiAgICBsb2NhbCBscyBuZXdscyBub2xzOwogICAgaWYgW1sgJDEgPT0gIi1pIiBdXSB8fCBb
WyAkMSA9PSAiLXUiIF1dOyB0aGVuCiAgICAgICAgbG9jYWwgb3A9JDE7CiAgICAgICAgc2hpZnQ7
CiAgICAgICAgbHM9JChmaW5kICIkMSIgLW5hbWUgJyoucG8nIC1leGVjIGJhc2VuYW1lIHt9IC5w
byBcOyk7CiAgICAgICAgc2hpZnQ7CiAgICAgICAgbG9jYWwgZCBmOwogICAgICAgIGZvciBkIGlu
ICIkQCI7CiAgICAgICAgZG8KICAgICAgICAgICAgaWYgW1sgJHtvcH0gPT0gIi11IiBdXTsgdGhl
bgogICAgICAgICAgICAgICAgbmV3bHM9JHtsc307CiAgICAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgICAgIG5ld2xzPSIiOwogICAgICAgICAgICBmaTsKICAgICAgICAgICAgZm9yIGYgaW4gJChm
aW5kICIkZCIgLW5hbWUgJyoucG8nIC1leGVjIGJhc2VuYW1lIHt9IC5wbyBcOyk7CiAgICAgICAg
ICAgIGRvCiAgICAgICAgICAgICAgICBpZiBbWyAke29wfSA9PSAiLWkiIF1dOyB0aGVuCiAgICAg
ICAgICAgICAgICAgICAgaGFzcSAke2Z9ICR7bHN9ICYmIG5ld2xzPSIke25ld2xzfSAke2Z9IjsK
ICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICBoYXNxICR7Zn0gJHtsc30g
fHwgbmV3bHM9IiR7bmV3bHN9ICR7Zn0iOwogICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAg
IGRvbmU7CiAgICAgICAgICAgIGxzPSR7bmV3bHN9OwogICAgICAgIGRvbmU7CiAgICBlbHNlCiAg
ICAgICAgbHM9IiRAIjsKICAgIGZpOwogICAgbm9scz0iIjsKICAgIG5ld2xzPSIiOwogICAgZm9y
IGYgaW4gJHtMSU5HVUFTfTsKICAgIGRvCiAgICAgICAgaWYgaGFzcSAke2Z9ICR7bHN9OyB0aGVu
CiAgICAgICAgICAgIG5ld2xzPSIke25ld2xzfSAke2Z9IjsKICAgICAgICBlbHNlCiAgICAgICAg
ICAgIG5vbHM9IiR7bm9sc30gJHtmfSI7CiAgICAgICAgZmk7CiAgICBkb25lOwogICAgW1sgLW4g
JHtub2xzfSBdXSAmJiBld2FybiAiU29ycnksIGJ1dCAke1BOfSBkb2VzIG5vdCBzdXBwb3J0IHRo
ZSBMSU5HVUFzOiIgJHtub2xzfTsKICAgIGV4cG9ydCBMSU5HVUFTPSR7bmV3bHM6MX0KfQp0Yy1h
cmNoICgpIAp7IAogICAgdGMtbmluamFfbWFnaWNfdG9fYXJjaCBwb3J0YWdlICIkQCIKfQp0Yy1h
cmNoLWtlcm5lbCAoKSAKeyAKICAgIHRjLW5pbmphX21hZ2ljX3RvX2FyY2gga2VybiAiJEAiCn0K
dGMtZW5kaWFuICgpIAp7IAogICAgbG9jYWwgaG9zdD0kMTsKICAgIFtbIC16ICR7aG9zdH0gXV0g
JiYgaG9zdD0ke0NUQVJHRVQ6LSR7Q0hPU1R9fTsKICAgIGhvc3Q9JHtob3N0JSUtKn07CiAgICBj
YXNlICR7aG9zdH0gaW4gCiAgICAgICAgYWxwaGEqKQogICAgICAgICAgICBlY2hvIGJpZwogICAg
ICAgIDs7CiAgICAgICAgYXJtKmIqKQogICAgICAgICAgICBlY2hvIGJpZwogICAgICAgIDs7CiAg
ICAgICAgYXJtKikKICAgICAgICAgICAgZWNobyBsaXR0bGUKICAgICAgICA7OwogICAgICAgIGNy
aXMqKQogICAgICAgICAgICBlY2hvIGxpdHRsZQogICAgICAgIDs7CiAgICAgICAgaHBwYSopCiAg
ICAgICAgICAgIGVjaG8gYmlnCiAgICAgICAgOzsKICAgICAgICBpPzg2KikKICAgICAgICAgICAg
ZWNobyBsaXR0bGUKICAgICAgICA7OwogICAgICAgIGlhNjQqKQogICAgICAgICAgICBlY2hvIGxp
dHRsZQogICAgICAgIDs7CiAgICAgICAgbTY4KikKICAgICAgICAgICAgZWNobyBiaWcKICAgICAg
ICA7OwogICAgICAgIG1pcHMqbCopCiAgICAgICAgICAgIGVjaG8gbGl0dGxlCiAgICAgICAgOzsK
ICAgICAgICBtaXBzKikKICAgICAgICAgICAgZWNobyBiaWcKICAgICAgICA7OwogICAgICAgIHBv
d2VycGMqKQogICAgICAgICAgICBlY2hvIGJpZwogICAgICAgIDs7CiAgICAgICAgczM5MCopCiAg
ICAgICAgICAgIGVjaG8gYmlnCiAgICAgICAgOzsKICAgICAgICBzaCpiKikKICAgICAgICAgICAg
ZWNobyBiaWcKICAgICAgICA7OwogICAgICAgIHNoKikKICAgICAgICAgICAgZWNobyBsaXR0bGUK
ICAgICAgICA7OwogICAgICAgIHNwYXJjKikKICAgICAgICAgICAgZWNobyBiaWcKICAgICAgICA7
OwogICAgICAgIHg4Nl82NCopCiAgICAgICAgICAgIGVjaG8gbGl0dGxlCiAgICAgICAgOzsKICAg
ICAgICAqKQogICAgICAgICAgICBlY2hvIHd0ZgogICAgICAgIDs7CiAgICBlc2FjCn0KdGMtZXhw
b3J0ICgpIAp7IAogICAgbG9jYWwgdmFyOwogICAgZm9yIHZhciBpbiAiJEAiOwogICAgZG8KICAg
ICAgICBldmFsIHRjLWdldCR7dmFyfSA+IC9kZXYvbnVsbDsKICAgIGRvbmUKfQp0Yy1nZXRBUiAo
KSAKeyAKICAgIHRjLWdldFBST0cgQVIgYXIgIiRAIgp9CnRjLWdldEFTICgpIAp7IAogICAgdGMt
Z2V0UFJPRyBBUyBhcyAiJEAiCn0KdGMtZ2V0QlVJTERfQ0MgKCkgCnsgCiAgICBsb2NhbCB2Owog
ICAgZm9yIHYgaW4gQ0NfRk9SX0JVSUxEIEJVSUxEX0NDIEhPU1RDQzsKICAgIGRvCiAgICAgICAg
aWYgW1sgLW4gJHshdn0gXV07IHRoZW4KICAgICAgICAgICAgZXhwb3J0IEJVSUxEX0NDPSR7IXZ9
OwogICAgICAgICAgICBlY2hvICIkeyF2fSI7CiAgICAgICAgICAgIHJldHVybiAwOwogICAgICAg
IGZpOwogICAgZG9uZTsKICAgIGxvY2FsIHNlYXJjaD07CiAgICBpZiBbWyAtbiAke0NCVUlMRH0g
XV07IHRoZW4KICAgICAgICBzZWFyY2g9JCh0eXBlIC1wICR7Q0JVSUxEfS1nY2MpOwogICAgICAg
IHNlYXJjaD0ke3NlYXJjaCMjKi99OwogICAgZmk7CiAgICBzZWFyY2g9JHtzZWFyY2g6LWdjY307
CiAgICBleHBvcnQgQlVJTERfQ0M9JHtzZWFyY2h9OwogICAgZWNobyAiJHtzZWFyY2h9Igp9CnRj
LWdldENDICgpIAp7IAogICAgdGMtZ2V0UFJPRyBDQyBnY2MgIiRAIgp9CnRjLWdldENQUCAoKSAK
eyAKICAgIHRjLWdldFBST0cgQ1BQIGNwcCAiJEAiCn0KdGMtZ2V0Q1hYICgpIAp7IAogICAgdGMt
Z2V0UFJPRyBDWFggZysrICIkQCIKfQp0Yy1nZXRGNzcgKCkgCnsgCiAgICB0Yy1nZXRQUk9HIEY3
NyBmNzcgIiRAIgp9CnRjLWdldEY5MCAoKSAKeyAKICAgIHRjLWdldFBST0cgRjkwIGdmb3J0cmFu
ICIkQCIKfQp0Yy1nZXRGT1JUUkFOICgpIAp7IAogICAgdGMtZ2V0UFJPRyBGT1JUUkFOIGdmb3J0
cmFuICIkQCIKfQp0Yy1nZXRHQ0ogKCkgCnsgCiAgICB0Yy1nZXRQUk9HIEdDSiBnY2ogIiRAIgp9
CnRjLWdldExEICgpIAp7IAogICAgdGMtZ2V0UFJPRyBMRCBsZCAiJEAiCn0KdGMtZ2V0Tk0gKCkg
CnsgCiAgICB0Yy1nZXRQUk9HIE5NIG5tICIkQCIKfQp0Yy1nZXRQUk9HICgpIAp7IAogICAgbG9j
YWwgdmFyPSQxOwogICAgbG9jYWwgcHJvZz0kMjsKICAgIGlmIFtbIC1uICR7IXZhcn0gXV07IHRo
ZW4KICAgICAgICBlY2hvICIkeyF2YXJ9IjsKICAgICAgICByZXR1cm4gMDsKICAgIGZpOwogICAg
bG9jYWwgc2VhcmNoPTsKICAgIFtbIC1uICQzIF1dICYmIHNlYXJjaD0kKHR5cGUgLXAgIiQzLSR7
cHJvZ30iKTsKICAgIFtbIC16ICR7c2VhcmNofSAmJiAtbiAke0NIT1NUfSBdXSAmJiBzZWFyY2g9
JCh0eXBlIC1wICIke0NIT1NUfS0ke3Byb2d9Iik7CiAgICBbWyAtbiAke3NlYXJjaH0gXV0gJiYg
cHJvZz0ke3NlYXJjaCMjKi99OwogICAgZXhwb3J0ICR7dmFyfT0ke3Byb2d9OwogICAgZWNobyAi
JHshdmFyfSIKfQp0Yy1nZXRSQU5MSUIgKCkgCnsgCiAgICB0Yy1nZXRQUk9HIFJBTkxJQiByYW5s
aWIgIiRAIgp9CnRjLWdldFNUUklQICgpIAp7IAogICAgdGMtZ2V0UFJPRyBTVFJJUCBzdHJpcCAi
JEAiCn0KdGMtaXMtY3Jvc3MtY29tcGlsZXIgKCkgCnsgCiAgICByZXR1cm4gJChbWyAke0NCVUlM
RDotJHtDSE9TVH19ICE9ICR7Q0hPU1R9IF1dKQp9CnRjLWlzLXNvZnRmbG9hdCAoKSAKeyAKICAg
IGNhc2UgJHtDVEFSR0VUfSBpbiAKICAgICAgICBiZmluKiB8IGg4MzAwKikKICAgICAgICAgICAg
ZWNobyAib25seSIKICAgICAgICA7OwogICAgICAgICopCiAgICAgICAgICAgIFtbICR7Q1RBUkdF
VC8vXy8tfSA9PSAqLXNvZnRmbG9hdC0qIF1dICYmIGVjaG8gInllcyIgfHwgZWNobyAibm8iCiAg
ICAgICAgOzsKICAgIGVzYWMKfQp0Yy1uaW5qYV9tYWdpY190b19hcmNoICgpIAp7IAogICAgZnVu
Y3Rpb24gbmluaiAoKSAKICAgIHsgCiAgICAgICAgW1sgJHt0eXBlfSA9PSAia2VybiIgXV0gJiYg
ZWNobyAkMSB8fCBlY2hvICQyCiAgICB9OwogICAgbG9jYWwgdHlwZT0kMTsKICAgIGxvY2FsIGhv
c3Q9JDI7CiAgICBbWyAteiAke2hvc3R9IF1dICYmIGhvc3Q9JHtDVEFSR0VUOi0ke0NIT1NUfX07
CiAgICBjYXNlICR7aG9zdH0gaW4gCiAgICAgICAgYWxwaGEqKQogICAgICAgICAgICBlY2hvIGFs
cGhhCiAgICAgICAgOzsKICAgICAgICBhcm0qKQogICAgICAgICAgICBlY2hvIGFybQogICAgICAg
IDs7CiAgICAgICAgYXZyKikKICAgICAgICAgICAgbmluaiBhdnIzMiBhdnIKICAgICAgICA7Owog
ICAgICAgIGJmaW4qKQogICAgICAgICAgICBuaW5qIGJsYWNrZmluIGJmaW4KICAgICAgICA7Owog
ICAgICAgIGNyaXMqKQogICAgICAgICAgICBlY2hvIGNyaXMKICAgICAgICA7OwogICAgICAgIGhw
cGEqKQogICAgICAgICAgICBuaW5qIHBhcmlzYyBocHBhCiAgICAgICAgOzsKICAgICAgICBpPzg2
KikKICAgICAgICAgICAgbmluaiBpMzg2IHg4NgogICAgICAgIDs7CiAgICAgICAgaWE2NCopCiAg
ICAgICAgICAgIGVjaG8gaWE2NAogICAgICAgIDs7CiAgICAgICAgbTY4KikKICAgICAgICAgICAg
ZWNobyBtNjhrCiAgICAgICAgOzsKICAgICAgICBtaXBzKikKICAgICAgICAgICAgZWNobyBtaXBz
CiAgICAgICAgOzsKICAgICAgICBuaW9zMiopCiAgICAgICAgICAgIGVjaG8gbmlvczIKICAgICAg
ICA7OwogICAgICAgIG5pb3MqKQogICAgICAgICAgICBlY2hvIG5pb3MKICAgICAgICA7OwogICAg
ICAgIHBvd2VycGMqKQogICAgICAgICAgICBpZiBbWyAkKEtWX3RvX2ludCAke0tWfSkgLWdlICQo
S1ZfdG9faW50IDIuNi4xNikgXV0gJiYgW1sgJHt0eXBlfSA9PSAia2VybiIgXV07IHRoZW4KICAg
ICAgICAgICAgICAgIGVjaG8gcG93ZXJwYzsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg
ICAgaWYgW1sgJChLVl90b19pbnQgJHtLVn0pIC1lcSAkKEtWX3RvX2ludCAyLjYuMTUpIF1dICYm
IFtbICR7dHlwZX0gPT0gImtlcm4iIF1dOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgaWYgW1sg
JHtob3N0fSA9PSBwb3dlcnBjNjQqIF1dIHx8IFtbICR7UFJPRklMRV9BUkNIfSA9PSAicHBjNjQi
IF1dOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gcG93ZXJwYzsKICAgICAgICAg
ICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gcHBjOwogICAgICAg
ICAgICAgICAgICAgIGZpOwogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAg
IGlmIFtbICR7aG9zdH0gPT0gcG93ZXJwYzY0KiBdXTsgdGhlbgogICAgICAgICAgICAgICAgICAg
ICAgICBlY2hvIHBwYzY0OwogICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgW1sgJHtQUk9GSUxFX0FSQ0h9ID09ICJwcGM2NCIgXV07IHRoZW4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG5pbmogcHBjNjQgcHBjOwogICAgICAgICAgICAgICAgICAg
ICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2hvIHBwYzsKICAgICAgICAg
ICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAgICAg
ICBmaTsKICAgICAgICAgICAgZmkKICAgICAgICA7OwogICAgICAgIHMzOTAqKQogICAgICAgICAg
ICBlY2hvIHMzOTAKICAgICAgICA7OwogICAgICAgIHNoNjQqKQogICAgICAgICAgICBuaW5qIHNo
NjQgc2gKICAgICAgICA7OwogICAgICAgIHNoKikKICAgICAgICAgICAgZWNobyBzaAogICAgICAg
IDs7CiAgICAgICAgc3BhcmM2NCopCiAgICAgICAgICAgIG5pbmogc3BhcmM2NCBzcGFyYwogICAg
ICAgIDs7CiAgICAgICAgc3BhcmMqKQogICAgICAgICAgICBbWyAke1BST0ZJTEVfQVJDSH0gPT0g
InNwYXJjNjQiIF1dICYmIG5pbmogc3BhcmM2NCBzcGFyYyB8fCBlY2hvIHNwYXJjCiAgICAgICAg
OzsKICAgICAgICB2YXgqKQogICAgICAgICAgICBlY2hvIHZheAogICAgICAgIDs7CiAgICAgICAg
eDg2XzY0KikKICAgICAgICAgICAgbmluaiB4ODZfNjQgYW1kNjQKICAgICAgICA7OwogICAgICAg
ICopCiAgICAgICAgICAgIGVjaG8gdW5rbm93bgogICAgICAgIDs7CiAgICBlc2FjCn0KdHJlZWNv
cHkgKCkgCnsgCiAgICBkZXN0PSR7ISN9OwogICAgZmlsZXNfY291bnQ9JCM7CiAgICB3aGlsZSAo
KCAkIyA+IDEgKSk7IGRvCiAgICAgICAgZGlyc3RydWN0PSQoZGlybmFtZSAiJDEiKTsKICAgICAg
ICBta2RpciAtcCAiJHtkZXN0fS8ke2RpcnN0cnVjdH0iOwogICAgICAgIGNwIC1wUFIgIiQxIiAi
JHtkZXN0fS8ke2RpcnN0cnVjdH0iOwogICAgICAgIHNoaWZ0OwogICAgZG9uZQp9CnVjbGliY3Rv
b2xpemUgKCkgCnsgCiAgICBld2FybiAidWNsaWJjdG9vbGl6ZSgpIGlzIGRlcHJlY2F0ZWQsIHBs
ZWFzZSBqdXN0IHVzZSBlbGlidG9vbGl6ZSgpISI7CiAgICBlbGlidG9vbGl6ZQp9CnVucGFja19t
YWtlc2VsZiAoKSAKeyAKICAgIGxvY2FsIHNyY19pbnB1dD0kezE6LSR7QX19OwogICAgbG9jYWwg
c3JjPSQoZmluZF91bnBhY2thYmxlX2ZpbGUgIiR7c3JjX2lucHV0fSIpOwogICAgbG9jYWwgc2tp
cD0kMjsKICAgIGxvY2FsIGV4ZT0kMzsKICAgIFtbIC16ICR7c3JjfSBdXSAmJiBkaWVmdW5jICIk
RlVOQ05BTUUiICIkTElORU5PIiAiJD8iICJDb3VsZCBub3QgbG9jYXRlIHNvdXJjZSBmb3IgJyR7
c3JjX2lucHV0fSciOwogICAgbG9jYWwgc2hydHNyYz0kKGJhc2VuYW1lICIke3NyY30iKTsKICAg
IGVjaG8gIj4+PiBVbnBhY2tpbmcgJHtzaHJ0c3JjfSB0byAke1BXRH0iOwogICAgaWYgW1sgLXog
JHtza2lwfSBdXTsgdGhlbgogICAgICAgIGxvY2FsIHZlcj0kKGdyZXAgLWEgJyMuKk1ha2VzZWxm
JyAiJHtzcmN9IiB8IGF3ayAne3ByaW50ICRORn0nKTsKICAgICAgICBsb2NhbCBza2lwPTA7CiAg
ICAgICAgZXhlPXRhaWw7CiAgICAgICAgY2FzZSAke3Zlcn0gaW4gCiAgICAgICAgICAgIDEuNS4q
IHwgMS42LjAtbnYpCiAgICAgICAgICAgICAgICBza2lwPSQoZ3JlcCAtYSBec2tpcD0gIiR7c3Jj
fSIgfCBjdXQgLWQ9IC1mMikKICAgICAgICAgICAgOzsKICAgICAgICAgICAgMi4wIHwgMi4wLjEp
CiAgICAgICAgICAgICAgICBza2lwPSQoZ3JlcCAtYSBeJwkndGFpbCAiJHtzcmN9IiB8IGF3ayAn
e3ByaW50ICQyfScgfCBjdXQgLWIyLSkKICAgICAgICAgICAgOzsKICAgICAgICAgICAgMi4xLjEp
CiAgICAgICAgICAgICAgICBza2lwPSQoZ3JlcCAtYSBeb2Zmc2V0PSAiJHtzcmN9IiB8IGF3ayAn
e3ByaW50ICQyfScgfCBjdXQgLWIyLSk7CiAgICAgICAgICAgICAgICBsZXQgc2tpcD0ic2tpcCAr
IDEiCiAgICAgICAgICAgIDs7CiAgICAgICAgICAgIDIuMS4yKQogICAgICAgICAgICAgICAgc2tp
cD0kKGdyZXAgLWEgXm9mZnNldD0gIiR7c3JjfSIgfCBhd2sgJ3twcmludCAkM30nIHwgaGVhZCAt
biAxKTsKICAgICAgICAgICAgICAgIGxldCBza2lwPSJza2lwICsgMSIKICAgICAgICAgICAgOzsK
ICAgICAgICAgICAgMi4xLjMpCiAgICAgICAgICAgICAgICBza2lwPWBncmVwIC1hIF5vZmZzZXQ9
ICIke3NyY30iIHwgYXdrICd7cHJpbnQgJDN9J2A7CiAgICAgICAgICAgICAgICBsZXQgc2tpcD0i
c2tpcCArIDEiCiAgICAgICAgICAgIDs7CiAgICAgICAgICAgIDIuMS40IHwgMi4xLjUpCiAgICAg
ICAgICAgICAgICBza2lwPSQoZ3JlcCAtYSBvZmZzZXQ9LipoZWFkLip3YyAiJHtzcmN9IiB8IGF3
ayAne3ByaW50ICQzfScgfCBoZWFkIC1uIDEpOwogICAgICAgICAgICAgICAgc2tpcD0kKGhlYWQg
LW4gJHtza2lwfSAiJHtzcmN9IiB8IHdjIC1jKTsKICAgICAgICAgICAgICAgIGV4ZT0iZGQiCiAg
ICAgICAgICAgIDs7CiAgICAgICAgICAgICopCiAgICAgICAgICAgICAgICBlZXJyb3IgIkknbSBz
b3JyeSwgYnV0IEkgd2FzIHVuYWJsZSB0byBzdXBwb3J0IHRoZSBNYWtlc2VsZiBmaWxlLiI7CiAg
ICAgICAgICAgICAgICBlZXJyb3IgIlRoZSB2ZXJzaW9uIEkgZGV0ZWN0ZWQgd2FzICcke3Zlcn0n
LiI7CiAgICAgICAgICAgICAgICBlZXJyb3IgIlBsZWFzZSBmaWxlIGEgYnVnIGFib3V0IHRoZSBm
aWxlICR7c2hydHNyY30gYXQiOwogICAgICAgICAgICAgICAgZWVycm9yICJodHRwOi8vYnVncy5n
ZW50b28ub3JnLyBzbyB0aGF0IHN1cHBvcnQgY2FuIGJlIGFkZGVkLiI7CiAgICAgICAgICAgICAg
ICBkaWVmdW5jICIkRlVOQ05BTUUiICIkTElORU5PIiAiJD8iICJtYWtlc2VsZiB2ZXJzaW9uICck
e3Zlcn0nIG5vdCBzdXBwb3J0ZWQiCiAgICAgICAgICAgIDs7CiAgICAgICAgZXNhYzsKICAgICAg
ICBkZWJ1Zy1wcmludCAiRGV0ZWN0ZWQgTWFrZXNlbGYgdmVyc2lvbiAke3Zlcn0gLi4uIHVzaW5n
ICR7c2tpcH0gYXMgb2Zmc2V0IjsKICAgIGZpOwogICAgY2FzZSAke2V4ZX0gaW4gCiAgICAgICAg
dGFpbCkKICAgICAgICAgICAgZXhlPSJ0YWlsIC1uICske3NraXB9ICcke3NyY30nIgogICAgICAg
IDs7CiAgICAgICAgZGQpCiAgICAgICAgICAgIGV4ZT0iZGQgaWJzPSR7c2tpcH0gc2tpcD0xIG9i
cz0xMDI0IGNvbnY9c3luYyBpZj0nJHtzcmN9JyIKICAgICAgICA7OwogICAgICAgICopCiAgICAg
ICAgICAgIGRpZWZ1bmMgIiRGVU5DTkFNRSIgIiRMSU5FTk8iICIkPyIgIm1ha2VzZWxmIGNhbnQg
aGFuZGxlIGV4ZSAnJHtleGV9JyIKICAgICAgICA7OwogICAgZXNhYzsKICAgIGxvY2FsIHRtcGZp
bGU9JChlbWt0ZW1wKTsKICAgIGV2YWwgJHtleGV9IDI+IC9kZXYvbnVsbCB8IGhlYWQgLWMgNTEy
ID4gIiR7dG1wZmlsZX0iOwogICAgbG9jYWwgZmlsZXR5cGU9JChmaWxlIC1iICIke3RtcGZpbGV9
Iik7CiAgICBjYXNlICR7ZmlsZXR5cGV9IGluIAogICAgICAgICp0YXJcIGFyY2hpdmUqKQogICAg
ICAgICAgICBldmFsICR7ZXhlfSB8IHRhciAtLW5vLXNhbWUtb3duZXIgLXhmIC0KICAgICAgICA7
OwogICAgICAgIGJ6aXAyKikKICAgICAgICAgICAgZXZhbCAke2V4ZX0gfCBiemlwMiAtZGMgfCB0
YXIgLS1uby1zYW1lLW93bmVyIC14ZiAtCiAgICAgICAgOzsKICAgICAgICBnemlwKikKICAgICAg
ICAgICAgZXZhbCAke2V4ZX0gfCB0YXIgLS1uby1zYW1lLW93bmVyIC14emYgLQogICAgICAgIDs7
CiAgICAgICAgY29tcHJlc3MqKQogICAgICAgICAgICBldmFsICR7ZXhlfSB8IGd1bnppcCB8IHRh
ciAtLW5vLXNhbWUtb3duZXIgLXhmIC0KICAgICAgICA7OwogICAgICAgICopCiAgICAgICAgICAg
IGVlcnJvciAiVW5rbm93biBmaWxldHlwZSBcIiR7ZmlsZXR5cGV9XCIgPyI7CiAgICAgICAgICAg
IGZhbHNlCiAgICAgICAgOzsKICAgIGVzYWM7CiAgICBfcGlwZXN0YXR1cz0iJHtQSVBFU1RBVFVT
WypdfSI7CiAgICBbWyAiJHtfcGlwZXN0YXR1cy8vIC99IiAtZXEgMCBdXSB8fCBkaWVmdW5jICIk
RlVOQ05BTUUiICIkTElORU5PIiAiJF9waXBlc3RhdHVzIiAiZmFpbHVyZSB1bnBhY2tpbmcgKCR7
ZmlsZXR5cGV9KSBtYWtlc2VsZiAke3NocnRzcmN9ICgnJHt2ZXJ9JyArJHtza2lwfSkiCn0KdW5w
YWNrX3BkdiAoKSAKeyAKICAgIGxvY2FsIHNyYz0kKGZpbmRfdW5wYWNrYWJsZV9maWxlICIkMSIp
OwogICAgbG9jYWwgc2l6ZW9mZl90PSQyOwogICAgW1sgLXogJHtzcmN9IF1dICYmIGRpZWZ1bmMg
IiRGVU5DTkFNRSIgIiRMSU5FTk8iICIkPyIgIkNvdWxkIG5vdCBsb2NhdGUgc291cmNlIGZvciAn
JDEnIjsKICAgIFtbIC16ICR7c2l6ZW9mZl90fSBdXSAmJiBkaWVmdW5jICIkRlVOQ05BTUUiICIk
TElORU5PIiAiJD8iICJObyBpZGVhIHdoYXQgb2ZmX3Qgc2l6ZSB3YXMgdXNlZCBmb3IgdGhpcyBw
ZHYgOigiOwogICAgbG9jYWwgc2hydHNyYz0kKGJhc2VuYW1lICIke3NyY30iKTsKICAgIGVjaG8g
Ij4+PiBVbnBhY2tpbmcgJHtzaHJ0c3JjfSB0byAke1BXRH0iOwogICAgbG9jYWwgbWV0YXNraXA9
JCh0YWlsIC1jICR7c2l6ZW9mZl90fSAiJHtzcmN9IiB8IGhleGR1bXAgLWUgXCIlaVwiKTsKICAg
IGxvY2FsIHRhaWxza2lwPSQodGFpbCAtYyAkKCgke3NpemVvZmZfdH0qMikpICIke3NyY30iIHwg
aGVhZCAtYyAke3NpemVvZmZfdH0gfCBoZXhkdW1wIC1lIFwiJWlcIik7CiAgICBsb2NhbCBtZXRh
ZmlsZT0kKGVta3RlbXApOwogICAgdGFpbCAtYyArJCgoJHttZXRhc2tpcH0rMSkpICIke3NyY30i
ID4gIiR7bWV0YWZpbGV9IjsKICAgIGxvY2FsIGRhdGFmaWxlPSQodGFpbCAtYyArJCgoJHttZXRh
c2tpcH0rMSkpICIke3NyY30iIHwgc3RyaW5ncyB8IGhlYWQgLW4gMSk7CiAgICBkYXRhZmlsZT0k
KGJhc2VuYW1lICIke2RhdGFmaWxlfSIpOwogICAgbG9jYWwgdG1wZmlsZT0kKGVta3RlbXApOwog
ICAgdGFpbCAtYyArJCgoJHt0YWlsc2tpcH0rMSkpICR7c3JjfSAyPiAvZGV2L251bGwgfCBoZWFk
IC1jIDUxMiA+ICR7dG1wZmlsZX07CiAgICBsb2NhbCBpc2NvbXByZXNzZWQ9JChmaWxlIC1iICIk
e3RtcGZpbGV9Iik7CiAgICBpZiBbWyAke2lzY29tcHJlc3NlZDowOjh9ID09ICJjb21wcmVzcyIg
XV07IHRoZW4KICAgICAgICBpc2NvbXByZXNzZWQ9MTsKICAgICAgICBtdiAke3RtcGZpbGV9eywu
Wn07CiAgICAgICAgZ3VuemlwICR7dG1wZmlsZX07CiAgICBlbHNlCiAgICAgICAgaXNjb21wcmVz
c2VkPTA7CiAgICBmaTsKICAgIGxvY2FsIGlzdGFyPSQoZmlsZSAtYiAiJHt0bXBmaWxlfSIpOwog
ICAgaWYgW1sgJHtpc3RhcjowOjl9ID09ICJQT1NJWCB0YXIiIF1dOyB0aGVuCiAgICAgICAgaXN0
YXI9MTsKICAgIGVsc2UKICAgICAgICBpc3Rhcj0wOwogICAgZmk7CiAgICBpZiBbICR7aXNjb21w
cmVzc2VkfSAtZXEgMSBdOyB0aGVuCiAgICAgICAgaWYgWyAke2lzdGFyfSAtZXEgMSBdOyB0aGVu
CiAgICAgICAgICAgIHRhaWwgLWMgKyQoKCR7dGFpbHNraXB9KzEpKSAke3NyY30gMj4gL2Rldi9u
dWxsIHwgaGVhZCAtYyAkKCgke21ldGFza2lwfS0ke3RhaWxza2lwfSkpIHwgdGFyIC14emYgLTsK
ICAgICAgICBlbHNlCiAgICAgICAgICAgIHRhaWwgLWMgKyQoKCR7dGFpbHNraXB9KzEpKSAke3Ny
Y30gMj4gL2Rldi9udWxsIHwgaGVhZCAtYyAkKCgke21ldGFza2lwfS0ke3RhaWxza2lwfSkpIHwg
Z3ppcCAtZGMgPiAke2RhdGFmaWxlfTsKICAgICAgICBmaTsKICAgIGVsc2UKICAgICAgICBpZiBb
ICR7aXN0YXJ9IC1lcSAxIF07IHRoZW4KICAgICAgICAgICAgdGFpbCAtYyArJCgoJHt0YWlsc2tp
cH0rMSkpICR7c3JjfSAyPiAvZGV2L251bGwgfCBoZWFkIC1jICQoKCR7bWV0YXNraXB9LSR7dGFp
bHNraXB9KSkgfCB0YXIgLS1uby1zYW1lLW93bmVyIC14ZiAtOwogICAgICAgIGVsc2UKICAgICAg
ICAgICAgdGFpbCAtYyArJCgoJHt0YWlsc2tpcH0rMSkpICR7c3JjfSAyPiAvZGV2L251bGwgfCBo
ZWFkIC1jICQoKCR7bWV0YXNraXB9LSR7dGFpbHNraXB9KSkgPiAke2RhdGFmaWxlfTsKICAgICAg
ICBmaTsKICAgIGZpOwogICAgdHJ1ZQp9CnVwZGF0ZXBvZCAoKSAKeyAKICAgIHBlcmxpbmZvOwog
ICAgaWYgWyAtZCAiJHtQT0RfRElSfSIgXTsgdGhlbgogICAgICAgIGZvciBGSUxFIGluIGBmaW5k
ICR7UE9EX0RJUn0gLXR5cGUgZiAtbmFtZSAiKi5wb2QuYXJjaCJgOwogICAgICAgIGRvCiAgICAg
ICAgICAgIGNhdCAke0ZJTEV9ID4+ICR7QVJDSF9MSUJ9L3Blcmxsb2NhbC5wb2Q7CiAgICAgICAg
ICAgIHJtIC1mICR7RklMRX07CiAgICAgICAgZG9uZTsKICAgICAgICBmb3IgRklMRSBpbiBgZmlu
ZCAke1BPRF9ESVJ9IC10eXBlIGYgLW5hbWUgIioucG9kLnNpdGUiYDsKICAgICAgICBkbwogICAg
ICAgICAgICBjYXQgJHtGSUxFfSA+PiAke1NJVEVfTElCfS9wZXJsbG9jYWwucG9kOwogICAgICAg
ICAgICBybSAtZiAke0ZJTEV9OwogICAgICAgIGRvbmU7CiAgICAgICAgZm9yIEZJTEUgaW4gYGZp
bmQgJHtQT0RfRElSfSAtdHlwZSBmIC1uYW1lICIqLnBvZC52ZW5kb3IiYDsKICAgICAgICBkbwog
ICAgICAgICAgICBjYXQgJHtGSUxFfSA+PiAke1ZFTkRPUl9MSUJ9L3Blcmxsb2NhbC5wb2Q7CiAg
ICAgICAgICAgIHJtIC1mICR7RklMRX07CiAgICAgICAgZG9uZTsKICAgIGZpCn0KdXNlX2RvYyAo
KSAKeyAKICAgIHVzZSBkb2MgJiYgZWNobyAke0A6LWphdmFkb2N9Cn0KdmFsaWRhdGVfZGVza3Rv
cF9lbnRyaWVzICgpIAp7IAogICAgaWYgW1sgLXggL3Vzci9iaW4vZGVza3RvcC1maWxlLXZhbGlk
YXRlIF1dOyB0aGVuCiAgICAgICAgZWluZm8gIkNoZWNraW5nIGRlc2t0b3AgZW50cnkgdmFsaWRp
dHkiOwogICAgICAgIGxvY2FsIGRpcmVjdG9yaWVzPSIiOwogICAgICAgIGZvciBkIGluIC91c3Iv
c2hhcmUvYXBwbGljYXRpb25zICRAOwogICAgICAgIGRvCiAgICAgICAgICAgIFtbIC1kICR7RH0k
e2R9IF1dICYmIGRpcmVjdG9yaWVzPSIke2RpcmVjdG9yaWVzfSAke0R9JHtkfSI7CiAgICAgICAg
ZG9uZTsKICAgICAgICBpZiBbWyAtbiAke2RpcmVjdG9yaWVzfSBdXTsgdGhlbgogICAgICAgICAg
ICBmb3IgRklMRSBpbiAkKGZpbmQgJHtkaXJlY3Rvcmllc30gLW5hbWUgIipcLmRlc2t0b3AiIAkJ
CQkJCQktbm90IC1wYXRoICcqLmhpZGRlbionIHwgc29ydCAtdSAyPi9kZXYvbnVsbCk7CiAgICAg
ICAgICAgIGRvCiAgICAgICAgICAgICAgICBsb2NhbCB0ZW1wPSQoZGVza3RvcC1maWxlLXZhbGlk
YXRlICR7RklMRX0gfCBncmVwIC12ICJ3YXJuaW5nOiIgfCAJCQkJCQkJCXNlZCAtZSAic3xlcnJv
cjogfHwiIC1lICJzfCR7RklMRX06fC0tfGciICk7CiAgICAgICAgICAgICAgICBbWyAtbiAkdGVt
cCBdXSAmJiBlbG9nICR7dGVtcC8tLS8ke0ZJTEUvJHtEfS99On07CiAgICAgICAgICAgIGRvbmU7
CiAgICAgICAgZmk7CiAgICAgICAgZWNobyAiIjsKICAgIGVsc2UKICAgICAgICBlaW5mbyAiUGFz
c2luZyBkZXNrdG9wIGVudHJ5IHZhbGlkaXR5IGNoZWNrLiBJbnN0YWxsIGRldi11dGlsL2Rlc2t0
b3AtZmlsZS11dGlscywgaWYgeW91IHdhbnQgdG8gaGVscCB0byBpbXByb3ZlIEdlbnRvby4iOwog
ICAgZmkKfQp2ZXJzaW9uX2NvbXBhcmUgKCkgCnsgCiAgICBfX3ZlcnNpb25hdG9yX3Nob3B0X3Rv
Z2dsZSBvbjsKICAgIGxvY2FsIHZlcl9hPSR7MX0gdmVyX2I9JHsyfSBwYXJ0c19hIHBhcnRzX2Ig
Y3VyX2lkeF9hPTAgY3VyX2lkeF9iPTA7CiAgICBwYXJ0c19hPSgkKGdldF9hbGxfdmVyc2lvbl9j
b21wb25lbnRzICIke3Zlcl9hfSIgKSk7CiAgICBwYXJ0c19iPSgkKGdldF9hbGxfdmVyc2lvbl9j
b21wb25lbnRzICIke3Zlcl9ifSIgKSk7CiAgICBsb2NhbCBpbmZfbG9vcD0wOwogICAgd2hpbGUg
dHJ1ZTsgZG8KICAgICAgICBpbmZfbG9vcD0kKCggJHtpbmZfbG9vcH0gKyAxICkpOwogICAgICAg
IFtbICR7aW5mX2xvb3B9IC1ndCAyMCBdXSAmJiBkaWVmdW5jICIkRlVOQ05BTUUiICIkTElORU5P
IiAiJD8iICJ2ZXJzaW9uYXRvciBjb21wYXJlIGJ1ZyBbbnVtYmVycywgJHt2ZXJfYX0sICR7dmVy
X2J9XSI7CiAgICAgICAgbG9jYWwgY3VyX3Rva19hPSR7cGFydHNfYVske2N1cl9pZHhfYX1dfTsK
ICAgICAgICBsb2NhbCBjdXJfdG9rX2I9JHtwYXJ0c19iWyR7Y3VyX2lkeF9ifV19OwogICAgICAg
IGlmIFtbIC1uICR7Y3VyX3Rva19hfSBdXSAmJiBbWyAteiAke2N1cl90b2tfYS8vW1s6ZGlnaXQ6
XV19IF1dOyB0aGVuCiAgICAgICAgICAgIGN1cl9pZHhfYT0kKCggJHtjdXJfaWR4X2F9ICsgMSAp
KTsKICAgICAgICAgICAgW1sgJHtwYXJ0c19hWyR7Y3VyX2lkeF9hfV19ID09ICIuIiBdXSAmJiBj
dXJfaWR4X2E9JCgoICR7Y3VyX2lkeF9hfSArIDEgKSk7CiAgICAgICAgZWxzZQogICAgICAgICAg
ICBjdXJfdG9rX2E9IiI7CiAgICAgICAgZmk7CiAgICAgICAgaWYgW1sgLW4gJHtjdXJfdG9rX2J9
IF1dICYmIFtbIC16ICR7Y3VyX3Rva19iLy9bWzpkaWdpdDpdXX0gXV07IHRoZW4KICAgICAgICAg
ICAgY3VyX2lkeF9iPSQoKCAke2N1cl9pZHhfYn0gKyAxICkpOwogICAgICAgICAgICBbWyAke3Bh
cnRzX2JbJHtjdXJfaWR4X2J9XX0gPT0gIi4iIF1dICYmIGN1cl9pZHhfYj0kKCggJHtjdXJfaWR4
X2J9ICsgMSApKTsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGN1cl90b2tfYj0iIjsKICAgICAg
ICBmaTsKICAgICAgICBbWyAteiAke2N1cl90b2tfYX0gXV0gJiYgW1sgLXogJHtjdXJfdG9rX2J9
IF1dICYmIGJyZWFrOwogICAgICAgIGN1cl90b2tfYT0ke2N1cl90b2tfYSMjKygwKX07CiAgICAg
ICAgY3VyX3Rva19iPSR7Y3VyX3Rva19iIyMrKDApfTsKICAgICAgICBbWyAteiAke2N1cl90b2tf
YX0gXV0gJiYgY3VyX3Rva19hPTA7CiAgICAgICAgW1sgLXogJHtjdXJfdG9rX2J9IF1dICYmIGN1
cl90b2tfYj0wOwogICAgICAgIFtbICR7Y3VyX3Rva19hfSAtbHQgJHtjdXJfdG9rX2J9IF1dICYm
IF9fdmVyc2lvbmF0b3Jfc2hvcHRfdG9nZ2xlIG9mZiAmJiByZXR1cm4gMTsKICAgICAgICBbWyAk
e2N1cl90b2tfYX0gLWd0ICR7Y3VyX3Rva19ifSBdXSAmJiBfX3ZlcnNpb25hdG9yX3Nob3B0X3Rv
Z2dsZSBvZmYgJiYgcmV0dXJuIDM7CiAgICBkb25lOwogICAgbG9jYWwgbGV0dGVyX2E9OwogICAg
bGV0dGVyX2E9JHtwYXJ0c19hWyR7Y3VyX2lkeF9hfV19OwogICAgaWYgW1sgJHsjbGV0dGVyX2F9
IC1lcSAxIF1dICYmIFtbIC16ICR7bGV0dGVyX2EvW2Etel19IF1dOyB0aGVuCiAgICAgICAgY3Vy
X2lkeF9hPSQoKCAke2N1cl9pZHhfYX0gKyAxICkpOwogICAgZWxzZQogICAgICAgIGxldHRlcl9h
PSJAIjsKICAgIGZpOwogICAgbG9jYWwgbGV0dGVyX2I9OwogICAgbGV0dGVyX2I9JHtwYXJ0c19i
WyR7Y3VyX2lkeF9ifV19OwogICAgaWYgW1sgJHsjbGV0dGVyX2J9IC1lcSAxIF1dICYmIFtbIC16
ICR7bGV0dGVyX2IvW2Etel19IF1dOyB0aGVuCiAgICAgICAgY3VyX2lkeF9iPSQoKCAke2N1cl9p
ZHhfYn0gKyAxICkpOwogICAgZWxzZQogICAgICAgIGxldHRlcl9iPSJAIjsKICAgIGZpOwogICAg
W1sgJHtsZXR0ZXJfYX0gPCAke2xldHRlcl9ifSBdXSAmJiBfX3ZlcnNpb25hdG9yX3Nob3B0X3Rv
Z2dsZSBvZmYgJiYgcmV0dXJuIDE7CiAgICBbWyAke2xldHRlcl9hfSA+ICR7bGV0dGVyX2J9IF1d
ICYmIF9fdmVyc2lvbmF0b3Jfc2hvcHRfdG9nZ2xlIG9mZiAmJiByZXR1cm4gMzsKICAgIGxvY2Fs
IHN1ZmZpeCBydWxlIHBhcnQgcl9sdCByX2d0OwogICAgZm9yIHJ1bGUgaW4gImFscGhhPTEiICJi
ZXRhPTEiICJwcmU9MSIgInJjPTEiICJwPTMiICJyPTMiOwogICAgZG8KICAgICAgICBzdWZmaXg9
JHtydWxlJSU9Kn07CiAgICAgICAgcl9sdD0ke3J1bGUjIyo9fTsKICAgICAgICBbWyAke3JfbHR9
IC1lcSAxIF1dICYmIHJfZ3Q9MyB8fCByX2d0PTE7CiAgICAgICAgbG9jYWwgc3VmZml4X2E9Owog
ICAgICAgIGZvciBwYXJ0IGluICR7cGFydHNfYVtAXX07CiAgICAgICAgZG8KICAgICAgICAgICAg
W1sgJHtwYXJ0IyR7c3VmZml4fX0gIT0gJHtwYXJ0fSBdXSAmJiBbWyAteiAke3BhcnQjIyR7c3Vm
Zml4fSooW1s6ZGlnaXQ6XV0pfSBdXSAmJiBzdWZmaXhfYT0ke3BhcnQjJHtzdWZmaXh9fTA7CiAg
ICAgICAgZG9uZTsKICAgICAgICBsb2NhbCBzdWZmaXhfYj07CiAgICAgICAgZm9yIHBhcnQgaW4g
JHtwYXJ0c19iW0BdfTsKICAgICAgICBkbwogICAgICAgICAgICBbWyAke3BhcnQjJHtzdWZmaXh9
fSAhPSAke3BhcnR9IF1dICYmIFtbIC16ICR7cGFydCMjJHtzdWZmaXh9KihbWzpkaWdpdDpdXSl9
IF1dICYmIHN1ZmZpeF9iPSR7cGFydCMke3N1ZmZpeH19MDsKICAgICAgICBkb25lOwogICAgICAg
IFtbIC16ICR7c3VmZml4X2F9IF1dICYmIFtbIC16ICR7c3VmZml4X2J9IF1dICYmIGNvbnRpbnVl
OwogICAgICAgIFtbIC16ICR7c3VmZml4X2F9IF1dICYmIF9fdmVyc2lvbmF0b3Jfc2hvcHRfdG9n
Z2xlIG9mZiAmJiByZXR1cm4gJHtyX2d0fTsKICAgICAgICBbWyAteiAke3N1ZmZpeF9ifSBdXSAm
JiBfX3ZlcnNpb25hdG9yX3Nob3B0X3RvZ2dsZSBvZmYgJiYgcmV0dXJuICR7cl9sdH07CiAgICAg
ICAgc3VmZml4X2E9JHtzdWZmaXhfYSMjKygwKX07CiAgICAgICAgc3VmZml4X2E9JHtzdWZmaXhf
YTotMH07CiAgICAgICAgc3VmZml4X2I9JHtzdWZmaXhfYiMjKygwKX07CiAgICAgICAgc3VmZml4
X2I9JHtzdWZmaXhfYjotMH07CiAgICAgICAgW1sgJHtzdWZmaXhfYX0gLWx0ICR7c3VmZml4X2J9
IF1dICYmIF9fdmVyc2lvbmF0b3Jfc2hvcHRfdG9nZ2xlIG9mZiAmJiByZXR1cm4gMTsKICAgICAg
ICBbWyAke3N1ZmZpeF9hfSAtZ3QgJHtzdWZmaXhfYn0gXV0gJiYgX192ZXJzaW9uYXRvcl9zaG9w
dF90b2dnbGUgb2ZmICYmIHJldHVybiAzOwogICAgZG9uZTsKICAgIF9fdmVyc2lvbmF0b3Jfc2hv
cHRfdG9nZ2xlIG9mZjsKICAgIHJldHVybiAyCn0KdmVyc2lvbl9pc19hdF9sZWFzdCAoKSAKeyAK
ICAgIF9fdmVyc2lvbmF0b3Jfc2hvcHRfdG9nZ2xlIG9uOwogICAgbG9jYWwgd2FudF9zPSIkMSIg
aGF2ZV9zPSIkezI6LSR7UFZSfX0iIHI7CiAgICB2ZXJzaW9uX2NvbXBhcmUgIiR7d2FudF9zfSIg
IiR7aGF2ZV9zfSI7CiAgICByPSQ/OwogICAgY2FzZSAkciBpbiAKICAgICAgICAxIHwgMikKICAg
ICAgICAgICAgX192ZXJzaW9uYXRvcl9zaG9wdF90b2dnbGUgb2ZmOwogICAgICAgICAgICByZXR1
cm4gMAogICAgICAgIDs7CiAgICAgICAgMykKICAgICAgICAgICAgX192ZXJzaW9uYXRvcl9zaG9w
dF90b2dnbGUgb2ZmOwogICAgICAgICAgICByZXR1cm4gMQogICAgICAgIDs7CiAgICAgICAgKikK
ICAgICAgICAgICAgX192ZXJzaW9uYXRvcl9zaG9wdF90b2dnbGUgb2ZmOwogICAgICAgICAgICBk
aWVmdW5jICIkRlVOQ05BTUUiICIkTElORU5PIiAiJD8iICJ2ZXJzaW9uYXRvciBjb21wYXJlIGJ1
ZyBbYXRsZWFzdCwgJHt3YW50X3N9LCAke2hhdmVfc30sICR7cn1dIgogICAgICAgIDs7CiAgICBl
c2FjOwogICAgX192ZXJzaW9uYXRvcl9zaG9wdF90b2dnbGUgb2ZmCn0KdmVyc2lvbl9zb3J0ICgp
IAp7IAogICAgX192ZXJzaW9uYXRvcl9zaG9wdF90b2dnbGUgb247CiAgICBsb2NhbCBpdGVtcz0g
bGVmdD0wOwogICAgaXRlbXM9KCRAKTsKICAgIHdoaWxlIFtbICR7bGVmdH0gLWx0ICR7I2l0ZW1z
W0BdfSBdXTsgZG8KICAgICAgICBsb2NhbCBsb3dlc3RfaWR4PSR7bGVmdH07CiAgICAgICAgbG9j
YWwgaWR4PSQoKCAke2xvd2VzdF9pZHh9ICsgMSApKTsKICAgICAgICB3aGlsZSBbWyAke2lkeH0g
LWx0ICR7I2l0ZW1zW0BdfSBdXTsgZG8KICAgICAgICAgICAgdmVyc2lvbl9jb21wYXJlICIke2l0
ZW1zWyR7bG93ZXN0X2lkeH1dfSIgIiR7aXRlbXNbJHtpZHh9XX0iOwogICAgICAgICAgICBbWyAk
PyAtZXEgMyBdXSAmJiBsb3dlc3RfaWR4PSR7aWR4fTsKICAgICAgICAgICAgaWR4PSQoKCAke2lk
eH0gKyAxICkpOwogICAgICAgIGRvbmU7CiAgICAgICAgbG9jYWwgdG1wPSR7aXRlbXNbJHtsb3dl
c3RfaWR4fV19OwogICAgICAgIGl0ZW1zWyR7bG93ZXN0X2lkeH1dPSR7aXRlbXNbJHtsZWZ0fV19
OwogICAgICAgIGl0ZW1zWyR7bGVmdH1dPSR7dG1wfTsKICAgICAgICBsZWZ0PSQoKCAke2xlZnR9
ICsgMSApKTsKICAgIGRvbmU7CiAgICBlY2hvICR7aXRlbXNbQF19OwogICAgX192ZXJzaW9uYXRv
cl9zaG9wdF90b2dnbGUgb2ZmCn0KZGVjbGFyZSAteCBBTFNBX0NBUkRTPSJhbGk1NDUxIGFsczQw
MDAgYXRpaXhwIGF0aWl4cC1tb2RlbSBidDg3eCBjYTAxMDYgY21pcGNpIGVtdTEwazEgZW11MTBr
MXggZW5zMTM3MCBlbnMxMzcxIGVzMTkzOCBlczE5NjggZm04MDEgaGRhLWludGVsIGludGVsOHgw
IGludGVsOHgwbSBtYWVzdHJvMyB0cmlkZW50IHVzYi1hdWRpbyB2aWE4Mnh4IHZpYTgyeHgtbW9k
ZW0geW1mcGNpIgpkZWNsYXJlIC14IEFMU0FfUENNX1BMVUdJTlM9ImFkcGNtIGFsYXcgYXN5bSBj
b3B5IGRtaXggZHNoYXJlIGRzbm9vcCBlbXB0eSBleHRwbHVnIGZpbGUgaG9va3MgaWVjOTU4IGlv
cGx1ZyBsYWRzcGEgbGZsb2F0IGxpbmVhciBtZXRlciBtdWxhdyBtdWx0aSBudWxsIHBsdWcgcmF0
ZSByb3V0ZSBzaGFyZSBzaG0gc29mdHZvbCIKZGVjbGFyZSAteCBBTlRfSE9NRT0iL3Vzci9zaGFy
ZS9hbnQtY29yZSIKZGVjbGFyZSAteCBBTlRfT1BUUz0iIgpkZWNsYXJlIC14IEFOVF9UQVNLUz0i
IgpkZWNsYXJlIC14IEFQQUNIRTJfTU9EVUxFUz0iYWN0aW9ucyBhbGlhcyBhdXRoX2Jhc2ljIGF1
dGhuX2FsaWFzIGF1dGhuX2Fub24gYXV0aG5fZGJtIGF1dGhuX2RlZmF1bHQgYXV0aG5fZmlsZSBh
dXRoel9kYm0gYXV0aHpfZGVmYXVsdCBhdXRoel9ncm91cGZpbGUgYXV0aHpfaG9zdCBhdXRoel9v
d25lciBhdXRoel91c2VyIGF1dG9pbmRleCBjYWNoZSBkYXYgZGF2X2ZzIGRhdl9sb2NrIGRlZmxh
dGUgZGlyIGRpc2tfY2FjaGUgZW52IGV4cGlyZXMgZXh0X2ZpbHRlciBmaWxlX2NhY2hlIGZpbHRl
ciBoZWFkZXJzIGluY2x1ZGUgaW5mbyBsb2dfY29uZmlnIGxvZ2lvIG1lbV9jYWNoZSBtaW1lIG1p
bWVfbWFnaWMgbmVnb3RpYXRpb24gcmV3cml0ZSBzZXRlbnZpZiBzcGVsaW5nIHN0YXR1cyB1bmlx
dWVfaWQgdXNlcmRpciB1c2VydHJhY2sgdmhvc3RfYWxpYXMiCmRlY2xhcmUgLXggQVJDSD0ieDg2
IgpkZWNsYXJlIC14IENCVUlMRD0iaTY4Ni1wYy1saW51eC1nbnUiCmRlY2xhcmUgLXggQ0RFRklO
RV9kZWZhdWx0PSJfX3VuaXhfXyIKZGVjbGFyZSAteCBDRkxBR1M9Ii1PMiAtbWFyY2g9cGVudGl1
bTQgLXBpcGUiCmRlY2xhcmUgLXggQ0ZMQUdTX2RlZmF1bHQ9IiIKZGVjbGFyZSAteCBDSE9TVD0i
aTY4Ni1wYy1saW51eC1nbnUiCmRlY2xhcmUgLXggQ0hPU1RfZGVmYXVsdD0iaTY4Ni1wYy1saW51
eC1nbnUiCmRlY2xhcmUgLXggQ0xBU1NQQVRIPSIiCmRlY2xhcmUgLXggQ1RBUkdFVF9kZWZhdWx0
PSJpNjg2LXBjLWxpbnV4LWdudSIKZGVjbGFyZSAteCBDVlNfUlNIPSJzc2giCmRlY2xhcmUgLXgg
Q1hYRkxBR1M9Ii1PMiAtbWFyY2g9cGVudGl1bTQgLXBpcGUiCmRlY2xhcmUgLXggREJVU19TRVNT
SU9OX0JVU19BRERSRVNTPSJ1bml4OmFic3RyYWN0PS90bXAvZGJ1cy1ES0N4TzQ3dzFCLGd1aWQ9
YWI3MGJjYzI2YTFiZGViNmFjMzU1ODAwNDc2YWFlOGMiCmRlY2xhcmUgLXggRENDQ19QQVRIPSIv
dXNyL2xpYi9kaXN0Y2MvYmluIgpkZWNsYXJlIC14IERFRkFVTFRfQUJJPSJkZWZhdWx0IgpkZWNs
YXJlIC14IERFU0tUT1BfU0VTU0lPTj0iZGVmYXVsdCIKZGVjbGFyZSAteCBERVNUVFJFRT0iL3Vz
ciIKZGVjbGFyZSAteCBESVJPUFRJT05TPSItbTA3NTUiCmRlY2xhcmUgLXggRE1fQ09OVFJPTD0i
L3Zhci9ydW4veGRtY3RsIgpkZWNsYXJlIC14IEVMSUJDPSJnbGliYyIKZGVjbGFyZSAteCBFWEVP
UFRJT05TPSItbTA3NTUiCmRlY2xhcmUgLXggRkVBVFVSRVM9ImRpc3Rsb2NrcyBtZXRhZGF0YS10
cmFuc2ZlciBwYXJhbGxlbC1mZXRjaCBzYW5kYm94IHNmcGVybXMgc3RyaWN0IHVubWVyZ2Utb3Jw
aGFucyB1c2VyZmV0Y2ggdXNlcnByaXYgdXNlcnNhbmRib3giCmRlY2xhcmUgLXggRkxUS19ET0NE
SVI9Ii91c3Ivc2hhcmUvZG9jL2ZsdGstMS4xLjctcjMvaHRtbCIKZGVjbGFyZSAteCBHQ0NfU1BF
Q1M9IiIKZGVjbGFyZSAteCBHREtfVVNFX1hGVD0iMSIKZGVjbGFyZSAteCBHRU5FUkFUSU9OPSIy
IgpkZWNsYXJlIC14IEdFTlRPT19WTT0ic3VuLWpkay0xLjYiCmRlY2xhcmUgLXggR1NfTElCPSIv
cm9vdC8uZm9udHMiCmRlY2xhcmUgLXggR1RLMl9SQ19GSUxFUz0iL2V0Yy9ndGstMi4wL2d0a3Jj
Oi9yb290Ly5ndGtyYy0yLjA6L3Jvb3QvLmtkZTMuNS9zaGFyZS9jb25maWcvZ3RrcmMtMi4wIgpk
ZWNsYXJlIC14IEdUS19SQ19GSUxFUz0iL2V0Yy9ndGsvZ3RrcmM6L3Jvb3QvLmd0a3JjOi9yb290
Ly5rZGUzLjUvc2hhcmUvY29uZmlnL2d0a3JjIgpkZWNsYXJlIC14IElOSEVSSVRFRD0idG9vbGNo
YWluLWZ1bmNzIHBvcnRhYmlsaXR5IGphdmEtdXRpbHMtMiB2ZXJzaW9uYXRvciBtdWx0aWxpYiBq
YXZhLXBrZy1vcHQtMiBiYXNlIGxpYnRvb2wgYXV0b3Rvb2xzIGV1dGlscyBwZXJsLW1vZHVsZSIK
ZGVjbGFyZSAteCBJTlBVVF9ERVZJQ0VTPSJzeW5hcHRpY3MgbW91c2Uga2V5Ym9hcmQgbG9naXRl
Y2ggZXZkZXYgdm1tb3VzZSIKZGVjbGFyZSAteCBJTlNERVNUVFJFRT0iIgpkZWNsYXJlIC14IElO
U09QVElPTlM9Ii1tMDY0NCIKZGVjbGFyZSAteCBJVVNFPSIgcGVybCBqYXZhIHB5dGhvbiBwbmcg
cmVhZGxpbmUgdGhyZWFkcyBibHVldG9vdGggdXNiIGRlYnVnIGVsaWJjX0ZyZWVCU0QgamF2YSIK
ZGVjbGFyZSAteCBKQVZBPSIvb3B0L3N1bi1qZGstMS42LjAuMDMvYmluL2phdmEiCmRlY2xhcmUg
LXggSkFWQUM9Ii9vcHQvc3VuLWpkay0xLjYuMC4wMy9iaW4vamF2YWMiCmRlY2xhcmUgLXggSkFW
QUNGTEFHUz0iLXNvdXJjZSAxLjQgLXRhcmdldCAxLjQiCmRlY2xhcmUgLXggSkFWQV9IT01FPSIv
b3B0L3N1bi1qZGstMS42LjAuMDMiCmRlY2xhcmUgLXggSkRLX0hPTUU9Ii9vcHQvc3VuLWpkay0x
LjYuMC4wMyIKZGVjbGFyZSAteCBLREVESVJTPSIvdXNyOi91c3IvbG9jYWw6L3Vzci9rZGUvMy41
IgpkZWNsYXJlIC14IEtERVdNPSIvdXNyL2xvY2FsL2Jpbi9jb21waXotZnVzaW9uIgpkZWNsYXJl
IC14IEtERV9GVUxMX1NFU1NJT049InRydWUiCmRlY2xhcmUgLXggS0RFX0lTX1BSRUxJTktFRD0i
MSIKZGVjbGFyZSAteCBLREVfTVVMVElIRUFEPSJmYWxzZSIKZGVjbGFyZSAteCBLREVfU0VTU0lP
Tl9VSUQ9IjAiCmRlY2xhcmUgLXggS0VSTkVMPSJsaW51eCIKZGVjbGFyZSAteCBLRVJORUxfQUJJ
PSJkZWZhdWx0IgpkZWNsYXJlIC14IEtPTlNPTEVfRENPUD0iRENPUFJlZihrb25zb2xlLTEyOTg5
LGtvbnNvbGUpIgpkZWNsYXJlIC14IEtPTlNPTEVfRENPUF9TRVNTSU9OPSJEQ09QUmVmKGtvbnNv
bGUtMTI5ODksc2Vzc2lvbi0xKSIKZGVjbGFyZSAteCBLVj0iMi42LjIzLWdlbnRvby1yNCIKZGVj
bGFyZSAteCBMQURTUEFfUEFUSD0iL3Vzci9saWIvbGFkc3BhIgpkZWNsYXJlIC14IExBTkc9IkMi
CmRlY2xhcmUgLXggTENEX0RFVklDRVM9ImJheXJhZCBjZm9udHogY2ZvbnR6NjMzIGdsayBoZDQ0
NzgwIGxiMjE2IGxjZG0wMDEgbXR4b3JiIG5jdXJzZXMgdGV4dCIKZGVjbGFyZSAteCBMQ19BTEw9
IkMiCmRlY2xhcmUgLXggTERGTEFHU19kZWZhdWx0PSIiCmRlY2xhcmUgLXggTERfTElCUkFSWV9Q
QVRIPSIvb3B0L3N1bi1qZGstMS42LjAuMDMvanJlL2xpYi9pMzg2Lzovb3B0L3N1bi1qZGstMS42
LjAuMDMvanJlL2xpYi9pMzg2L25hdGl2ZV90aHJlYWRzLzovb3B0L3N1bi1qZGstMS42LjAuMDMv
anJlL2xpYi9pMzg2L3hhd3QvOi9vcHQvc3VuLWpkay0xLjYuMC4wMy9qcmUvbGliL2kzODYvc2Vy
dmVyLyIKZGVjbGFyZSAteCBMSUJESVJfZGVmYXVsdD0ibGliIgpkZWNsYXJlIC14IExJQk9QVElP
TlM9Ii1tMDY0NCIKZGVjbGFyZSAteCBMSUJYQ0JfQUxMT1dfU0xPUFBZX0xPQ0s9IjEiCmRlY2xh
cmUgLXggTElOR1VBUz0iZW5fVVMgZXNfQVIgZW4gZXMiCmRlY2xhcmUgLXggTUFLRU9QVFM9Ii1q
MyAtajEiCmRlY2xhcmUgLXggTVVMVElMSUJfQUJJUz0iZGVmYXVsdCIKZGVjbGFyZSAteCBPUEVO
R0xfUFJPRklMRT0ieG9yZy14MTEiCmRlY2xhcmUgLXggUEtHX0NPTkZJR19QQVRIPSIvdXNyL3F0
LzMvbGliL3BrZ2NvbmZpZyIKZGVjbGFyZSAteCBQUkVMSU5LX1BBVEhfTUFTSz0iL29wdDovdXNy
L2xpYi9rbGliYyIKZGVjbGFyZSAteCBQWVRIT05QQVRIPSIvdXNyL2xpYi9wb3J0YWdlL3B5bSIK
ZGVjbGFyZSAteCBRTUFLRVNQRUM9ImxpbnV4LWcrKyIKZGVjbGFyZSAteCBRVERJUj0iL3Vzci9x
dC8zIgpkZWNsYXJlIC14IFJFU1RSSUNUPSIiCmRlY2xhcmUgLXggUlVCWU9QVD0iLXJhdXRvX2dl
bSIKZGVjbGFyZSAteCBTPSIvdmFyL3RtcC9wb3J0YWdlL2FwcC1wZGEvcGlsb3QtbGluay0wLjEy
LjMvd29yay9waWxvdC1saW5rLTAuMTIuMyIKZGVjbGFyZSAteCBTQU5EQk9YX0RFTlk9Ii9ldGMv
bGQuc28ucHJlbG9hZCIKZGVjbGFyZSAteCBTQU5EQk9YX1BSRURJQ1Q9IjovcHJvYy9zZWxmL21h
cHM6L2Rldi9jb25zb2xlOi9kZXYvcmFuZG9tOi91c3IvbGliL3BvcnRhZ2UvcHltOi92YXIvY2Fj
aGUvZWRiL2RlcDovZGV2L3JhbmRvbSIKZGVjbGFyZSAteCBTQU5EQk9YX1JFQUQ9IjovZGV2L3No
bTovZGV2L3N0ZGluOi92YXIvdG1wIgpkZWNsYXJlIC14IFNBTkRCT1hfV1JJVEU9IjovZGV2L3No
bTovZGV2L3N0ZG91dDovZGV2L3N0ZGVycjovdmFyL3RtcCIKZGVjbGFyZSAteCBTQU5FX0NPTkZJ
R19ESVI9Ii9ldGMvc2FuZS5kIgpkZWNsYXJlIC14IFNFU1NJT05fTUFOQUdFUj0ibG9jYWwvTmly
dmFuYS1MaW51eDovdG1wLy5JQ0UtdW5peC84ODg0IgpkZWNsYXJlIC14IFNMT1Q9IjAiCmRlY2xh
cmUgLXggU1RBR0UxX1VTRT0ibnB0bCBucHRsb25seSB1bmljb2RlIgpkZWNsYXJlIC14IFVTQl9E
RVZGU19QQVRIPSIvZGV2L2J1cy91c2IiCmRlY2xhcmUgLXggVVNFPSJibHVldG9vdGggZWxpYmNf
Z2xpYmMgamF2YSBrZXJuZWxfbGludXggcGVybCBwbmcgcHl0aG9uIHJlYWRsaW5lIHRocmVhZHMg
dXNiIHVzZXJsYW5kX0dOVSB4ODYiCmRlY2xhcmUgLXggVVNFUkxBTkQ9IkdOVSIKZGVjbGFyZSAt
eCBWSURFT19DQVJEUz0icmFkZW9uIgpkZWNsYXJlIC14IFZNSEFORExFPSJzdW4tamRrLTEuNCIK
ZGVjbGFyZSAteCBXQU5UX0FVVE9DT05GPSIyLjUiCmRlY2xhcmUgLXggV0FOVF9BVVRPTUFLRT0i
MS4xMCIKZGVjbGFyZSAteCBXQU5UX0pBVkFfQ09ORklHPSIyIgpkZWNsYXJlIC14IFdJTkRPV0lE
PSI1MjQyODgwNSIKZGVjbGFyZSAteCBYQ1VSU09SX1RIRU1FPSJkZWZhdWx0IgpkZWNsYXJlIC14
IFhER19DT05GSUdfRElSUz0iL3Vzci9rZGUvMy41L2V0Yy94ZGciCmRlY2xhcmUgLXggWERHX0RB
VEFfRElSUz0iL3Vzci9zaGFyZTovdXNyL2tkZS8zLjUvc2hhcmU6L3Vzci9sb2NhbC9zaGFyZSIK
ZGVjbGFyZSAteCBYRE1fTUFOQUdFRD0iL3Zhci9ydW4veGRtY3RsL3hkbWN0bC06MCxtYXlzZCxt
YXlmbixzY2hlZCxyc3ZkLG1ldGhvZD1jbGFzc2ljIgpkZWNsYXJlIC14IFhFUkNFU0NfTkxTX0hP
TUU9Ii91c3Ivc2hhcmUveGVyY2VzLWMvbXNnIgpkZWNsYXJlIC14IF9FX0RPQ0RFU1RUUkVFXz0i
IgpkZWNsYXJlIC14IF9FX0VYRURFU1RUUkVFXz0iIgo=
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139079</attachid>
            <date>2007-12-22 08:46 0000</date>
            <desc>New patch corrected</desc>
            <filename>pilot-link-0.12.3-int_types.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">LS0tIHBpbG90LWxpbmstMC4xMi4zL2luY2x1ZGUvcGktbWQ1LmgJMjAwNi0xMC0xNyAxNToyNDow
Ny4wMDAwMDAwMDAgKzAyMDAKKysrIHBpbG90LWxpbmsvaW5jbHVkZS9waS1tZDUuaAkyMDA3LTEy
LTE4IDA0OjAzOjA5LjAwMDAwMDAwMCArMDEwMApAQCAtMTMsOCArMTMsMjAgQEAKICNpZm5kZWYg
TUQ1X0gKICNkZWZpbmUgTUQ1X0gKIAorI2luY2x1ZGUgImNvbmZpZy5oIgorI2lmIEhBVkVfSU5U
VFlQRVNfSAorI2luY2x1ZGUgPGludHR5cGVzLmg+CisjZW5kaWYKKyNpZiBIQVZFX1NURElOVF9I
CisjaW5jbHVkZSA8c3RkaW50Lmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX0lOVFRZUEVTX0ggfHwg
SEFWRV9TVERJTlRfSAorI2RlZmluZSBVSU5UOCB1aW50OF90CisjZGVmaW5lIFVJTlQzMiB1aW50
MzJfdAorI2Vsc2UKICNkZWZpbmUgVUlOVDggdW5zaWduZWQgY2hhcgotI2RlZmluZSBVSU5UMzIg
dW5zaWduZWQgbG9uZworI2RlZmluZSBVSU5UMzIgdW5zaWduZWQgaW50CisjZW5kaWYKIAogc3Ry
dWN0IE1ENUNvbnRleHQgewogCVVJTlQzMiBidWZbNF07Cg==
</data>        

          </attachment>
    </bug>

</bugzilla>