|
2 | /screens/vlc-media-player.jpg | image/jpeg | vlc-media-player.jpg | 200 OK | JPG | 24.4 KB | 06/09/83 10:35:34 |
Download
|
|
SHA256
|
120ce5b51dbb961a159484f1e82d8c28bdd680fe87fce8320277388225b7ddd6
|
Referer
|
|
Magic
|
JPEG images (JPG)
|
Request
|
GET /screens/vlc-media-player.jpg HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
Host: telecharger-gratuit.com
Connection: Keep-Alive
|
Response Header
|
HTTP/1.1 200 OK
Server: Apache/2.2.16 (Debian)
Last-Modified: Wed, 05 Dec 2012 15:22:39 GMT
Cache-Control: max-age=2592000, public
Expires: Wed, 05 Mar 2014 11:43:16 GMT
Content-Type: image/jpeg
Content-Length: 24973
Accept-Ranges: bytes
Date: Sun, 23 Feb 2014 11:43:16 GMT
X-Varnish: 66588872
Age: 0
Via: 1.1 varnish
Connection: keep-alive
|
Response Peek (128 B)
|
ÿØÿà JFIF H H ÿÛ C ÿÛ C...
|
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
kKknh5P/2Q==
|
|
3 | /windows_logo_32_32.png | image/png | windows_logo_32_32.png | 200 OK | PNG | 4.5 KB | 06/17/83 00:07:08 |
Download
|
|
SHA256
|
b06111dfef672586bb2d7c7b329d9dd5fa963a7f2706ffc69570134eff07bf52
|
Referer
|
|
Magic
|
Portable Network Graphics (PNG)
|
Request
|
GET /windows_logo_32_32.png HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
Host: telecharger-gratuit.com
Connection: Keep-Alive
|
Response Header
|
HTTP/1.1 200 OK
Server: Apache/2.2.16 (Debian)
Last-Modified: Thu, 30 Jan 2014 15:43:42 GMT
Cache-Control: max-age=2592000, public
Expires: Wed, 05 Mar 2014 11:22:29 GMT
Content-Type: image/png
Content-Length: 4632
Accept-Ranges: bytes
Date: Sun, 23 Feb 2014 11:43:17 GMT
X-Varnish: 66588878 66581803
Age: 1248
Via: 1.1 varnish
Connection: keep-alive
|
Response Peek (128 B)
|
‰PNG
IHDR @ @ ªiqÞ ßIDATxœí›Ùo×}Ç?sÎÌÜ})’RDÊ–eɶlÅÈ/JU9 Å–Õ¼%Abesô!Z}ƒþUÐ MZĦӧ4›b;[K,…N/´
(^%‘Ië...
|
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
+pHwAAAAAElFTkSuQmCC
|
|
15 | /thankyou.php?nom=VLC%20Media%20Player | text/html | thankyou.php | 200 OK | HTML | 1.2 KB | 06/07/86 06:52:26 |
Download
|
|
SHA256
|
faa246514ef551e6c1c7f059cba8779b9fe889ca844c6eff3ff3825ad1e4e3e1
|
Referer
|
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /thankyou.php?nom=VLC%20Media%20Player HTTP/1.1
Accept: */*
Accept-Language: en-us
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
Accept-Encoding: gzip, deflate
Host: telecharger-gratuit.com
Connection: Keep-Alive
|
Response Header
|
HTTP/1.1 200 OK
Server: Apache/2.2.16 (Debian)
Expires: Wed, 05 Mar 2014 11:44:51 GMT
Content-Encoding: gzip
Content-Type: text/html; charset=UTF-8
Content-Length: 1270
Accept-Ranges: bytes
Date: Sun, 23 Feb 2014 11:44:51 GMT
X-Varnish: 66589331
Age: 0
Via: 1.1 varnish
Connection: keep-alive
|
Response Peek (128 B)
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html ...
|
PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFs
Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25h
bC5kdGQiPgo8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CjxoZWFk
PgogIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBj
aGFyc2V0PVVURi04IiAvPgogIDx0aXRsZT5UZWxlY2hhcmdlci1ncmF0dWl0IC0gTWVyY2kgcG91
ciBsZSB0w6lsw6ljaGFyZ2VtZW50ITwvdGl0bGU+CiA8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9Ii9pbWFnZVRoaW5rL3N0eWxlLmNzcz8xLjEiIC8+CiAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iL2pzL2pxdWVyeS0xLjQuMi5taW4uanMiPjwvc2NyaXB0Pgo8c3R5bGU+
Ci50eHcsIC50eHcgYSB7CiAgICBjb2xvcjogI0YyRjZGOSAhaW1wb3J0YW50Owp9Ci5mdHIgewog
ICAgZm9udC1zaXplOiAxMXB4OwogICAgcGFkZGluZzogOHB4IDQ1cHg7Cn0KPC9zdHlsZT4KPGJv
ZHkgc3R5bGU9ImJhY2tncm91bmQ6IG5vbmUgcmVwZWF0IHNjcm9sbCAwIDAgI0UwRTBFMDsiPgog
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciBiZ3R3Ij4KICAgIDxkaXYgY2xhc3M9ImhkciBiZ2JnIHR4
dyI+CgkJPGRpdiBzdHlsZT0iZm9udC1zaXplOjE4cHgiPjxzcGFuIGNsYXNzPSJhcG4iPlZMQyBN
ZWRpYSBQbGF5ZXI8L3NwYW4+IGVzdCB0w6lsw6ljaGFyZ8OpIGF2ZWMgc3VjY8OocyA8L2Rpdj4K
CQk8YSBpZD0iY3NzTG9nbyIgY2xhc3M9IiIgaHJlZj0iaHR0cDovL3RlbGVjaGFyZ2VyLWdyYXR1
aXQuY29tIiBzdHlsZT0iYmFja2dyb3VuZDogdXJsKCdodHRwOi8vdGVsZWNoYXJnZXItZ3JhdHVp
dC5jb20vc2tpbnMvcmVkL2ltYWdlcy90Z29wdGltc2VyNC5wbmcnKSBuby1yZXBlYXQgc2Nyb2xs
IDBweCAwcHggdHJhbnNwYXJlbnQ7IGNvbG9yOiByZ2IoMCwgMCwgMCk7IGZsb2F0OiByaWdodDsg
d2lkdGg6IDI1NnB4OyBoZWlnaHQ6IDU4cHg7IG1hcmdpbi10b3A6IC0zOXB4OyIgdGl0bGU9InRl
bGVjaGFyZ2VyLWdyYXR1aXQuY29tIj48L2E+CiAgICA8L2Rpdj4KICAgIDxici8+Cgk8cCBzdHls
ZT0idGV4dC1hbGlnbjogY2VudGVyO2ZvbnQtc2l6ZTogMTlweDtjb2xvcjogIzAwMDAwMDsiPkxl
IHTDqWzDqWNoYXJnZW1lbnQgZGUgdm90cmUgbG9naWNpZWwgZXN0IHRlcm1pbsOpIHBvdXIgdm91
cyByZW1lcmNpZXIsIHZvaWNpIHVuZSBvZmZyZSBjYWRlYXUgaW1tYW5xdWFibGUKCTxiciAvPgoJ
IDxpbWcgYWxpZ249Im1pZGRsZSIgc3JjPSJodHRwOi8vdGVsZWNoYXJnZXItZ3JhdHVpdC5jb20v
ZmxlY2hlXzA0MC5naWYiIHdpZHRoPSIyMyIgaGVpZ2h0PSI0OSIvPgogICAgPC9wPgogPGJyLz4K
CTxpZnJhbWUgc2Nyb2xsaW5nPSJubyIgZnJhbWVib3JkZXI9IjAiIGFsbG93dHJhbnNwYXJlbmN5
PSJ0cnVlIiBoZWlnaHQ9IjI1MCIgd2lkdGg9IjMwMCIgc3R5bGU9ImJvcmRlcjowO21hcmdpbi1s
ZWZ0OiAzODRweDsiIHNyYz0iaHR0cDovL2QuZGVsaXZlcnk0OS5jb20vd2lkZ2V0L3JlbmRlci9o
YXNoLzdkMTMxNmU3ZjY4ZWRjODFjZTdkY2M5ODhjYmYwMTllIj48L2lmcmFtZT4KCiAgICA8ZGl2
IGNsYXNzPSJib2R5Ij4KICAgICAgPGRpdiBjbGFzcz0iYWRpbSI+CiAgICAgICA8L2Rpdj4KICAg
ICAgPGgzIGNsYXNzPSJ0eGIyIj5BcHLDqHMgbCdpbnN0YWxsYXRpb248L2gzPgogICAgICAgIFN1
aXZleiBsZXMgw6l0YXBlcyBjaS1kZXNzb3VzIHBvdXIgZXjDqWN1dGVyIHZvdHJlIGFwcGxpY2F0
aW9uLgogICAgICA8ZGl2IGNsYXNzPSJkYngiPgogICAgICAgIDxkaXYgY2xhc3M9ImRzIGRzMSI+
CiAgICAgICAgICA8aW1nIHNyYz0iL2ltYWdlVGhpbmsvc3RlcDFfY2kucG5nIiAvPjxiciAvPgog
ICAgICAgICAgPGxhYmVsPjxzdHJvbmcgY2xhc3M9InR4YjIiPjEuPC9zdHJvbmc+IENsaXF1ZXog
c3VyIGxlIG1lbnUgRMOpbWFycmVyLjwvbGFiZWw+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRp
diBjbGFzcz0iZHMgZHMyIj4KICAgICAgICAgIDxpbWcgc3JjPSIvaW1hZ2VUaGluay9zdGVwMl9j
aS5wbmciIC8+PGJyIC8+CiAgICAgICAgICA8bGFiZWw+PHN0cm9uZyBjbGFzcz0idHhiMiI+Mi48
L3N0cm9uZz4gRW5zdWl0ZSwgY2xpcXVleiBzdXIgVG91cyBsZXMgcHJvZ3JhbW1lcy48L2xhYmVs
PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImRzIGRzMyI+CiAgICAgICAgICA8
aW1nIHNyYz0iL2ltYWdlVGhpbmsvc3RlcDNfY2kucG5nIiAvPjxiciAvPgogICAgICAgICAgPGxh
YmVsPjxzdHJvbmcgY2xhc3M9InR4YjIiPjMuPC9zdHJvbmc+IFRyb3V2ZXogPHNwYW4gY2xhc3M9
ImFwbiI+VkxDIE1lZGlhIFBsYXllcjwvc3Bhbj4gZXQgbCdleMOpY3V0ZXIhPC9sYWJlbD4KICAg
ICAgICA8L2Rpdj4gCiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8YnIgLz4KICAgIDxkaXYg
Y2xhc3M9ImZ0ciBiZ2cgdHh3IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMCAhaW1w
b3J0YW50OyI+CiAgICAgIDxhIGhyZWY9Imh0dHA6Ly90ZWxlY2hhcmdlci1ncmF0dWl0LmNvbS8i
PnRlbGVjaGFyZ2VyLWdyYXR1aXQuY29tPC9hPiB8CiAgICAgIDxhIGhyZWY9Imh0dHA6Ly90ZWxl
Y2hhcmdlci1ncmF0dWl0LmNvbS9jZ3UucGhwIj5Db25kaXRpb25zIGQnVXRpbGlzYXRpb24gZXQg
Q29uZmlkZW50aWFsaXTDqTwvYT4KICAgIDwvZGl2PgogIDwvZGl2Pgo8L2JvZHk+CjwvaHRtbD4=
|
|
16 | /imageThink/style.css?1.1 | text/css | style.css | 200 OK | TEXT | 731.0 B | 06/13/86 15:51:33 |
Download
|
|
SHA256
|
3cd43e78ed2398ce54c583b4d9a13046ddac1487d52a8a358674fe723aa95cb6
|
Referer
|
http://telecharger-gratuit.com/thankyou.php?nom=VLC%20Media%20Player
|
Magic
|
Inconclusive. Probably text (TEXT)
|
Request
|
GET /imageThink/style.css?1.1 HTTP/1.1
Accept: */*
Referer: http://telecharger-gratuit.com/thankyou.php?nom=VLC%20Media%20Player
Accept-Language: en-US
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
Accept-Encoding: gzip, deflate
Host: telecharger-gratuit.com
Connection: Keep-Alive
|
Response Header
|
HTTP/1.1 200 OK
Server: Apache/2.2.16 (Debian)
Last-Modified: Mon, 04 Nov 2013 22:58:26 GMT
Accept-Ranges: bytes
Cache-Control: max-age=0, private
Expires: Wed, 05 Mar 2014 11:44:52 GMT
Content-Encoding: gzip
Content-Type: text/css
Content-Length: 731
Accept-Ranges: bytes
Date: Sun, 23 Feb 2014 11:44:52 GMT
X-Varnish: 66589335
Age: 0
Via: 1.1 varnish
Connection: keep-alive
|
Response Peek (128 B)
|
html, body {
font: 15px/20px 'verdana';
color: rgb( 105, 105, 105 );
padding: 0px 20px;
margin: 0px;
padding-top: 5px;...
|
aHRtbCwgYm9keSB7CiAgZm9udDogMTVweC8yMHB4ICd2ZXJkYW5hJzsKICBjb2xvcjogcmdiKCAx
MDUsIDEwNSwgMTA1ICk7CiAgcGFkZGluZzogMHB4IDIwcHg7CiAgbWFyZ2luOiAwcHg7CiAgcGFk
ZGluZy10b3A6IDVweDsKfQoKLmNvbnRhaW5lciB7CiAgd2lkdGg6IDEwMCU7CiAgbWF4LXdpZHRo
OiAxMTAwcHg7CiAgbWFyZ2luOiBhdXRvOwogIGJvcmRlcjogMXB4IHNvbGlkIHJnYiggMTA1LCAx
MDUsIDEwNSApOwogIGJveC1zaGFkb3c6IDBweCAycHggMTBweCByZ2IoIDgwLCAxMDksIDE1MSAp
OwogIC13ZWJraXQtYm94LXNoYWRvdzogMHB4IDJweCAxMHB4IHJnYiggODAsIDEwOSwgMTUxICk7
CiAgLW1vei1ib3gtc2hhZG93OiAwcHggMnB4IDEwcHggcmdiKCA4MCwgMTA5LCAxNTEgKTsKICBi
b3JkZXItcmFkaXVzOiAxOHB4OwogIG92ZXJmbG93OiBoaWRkZW47Cn0KCi5oZHIgewogIHBhZGRp
bmc6IDM1cHggNDVweDsKICBmb250LXNpemU6IDIzcHg7Cn0KCi5oZHIgLmFwbiB7CiAgZm9udC13
ZWlnaHQ6IDcwMDsKfQoKLmJvZHkgewogIHBhZGRpbmc6IDEycHggNTBweDsKfQoKLmFkaW0gewog
IG1hcmdpbjogYXV0bzsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCi5mdHIgewogIHBhZGRpbmc6
IDhweCA0NXB4OwogIGZvbnQtc2l6ZTogMTFweDsKfQoKaDMgewogIHBhZGRpbmc6IDA7CiAgbWFy
Z2luOiAwOwogIHBhZGRpbmctYm90dG9tOiA0cHg7Cn0KCi5kYnggewogIG1hcmdpbjogMjBweDsK
ICBtYXJnaW4tYm90dG9tOiAwOwogIHBhZGRpbmc6IDQ1cHg7CiAgYm9yZGVyOiAxcHggc29saWQg
cmdiKCAxMDUsIDEwNSwgMTA1ICk7CiAgdGV4dC1hbGlnbjogY2VudGVyOwp9CgouZGJ4IC5kcyB7
CiAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgKmRpc3BsYXk6IGlubGluZTsKICAgICp6b29t
OiAxOwogIGZvbnQtc2l6ZTogLjllbTsKICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgd2lkdGg6IDI4
JTsKICBtYXJnaW4tcmlnaHQ6IDIwcHg7Cn0KCi5kYnggLmRzMyB7IG1hcmdpbi1yaWdodDogMDsg
fQoKLmRieCBpbWcgewogIG1hcmdpbi1ib3R0b206IDE1cHg7Cn0KLmRieCAuZHMgc3Ryb25nIHsK
ICBmb250LXNpemU6IDEuNGVtOwp9CgouYWRpbSBpbWcgeyBjdXJzb3I6IHBvaW50ZXI7IH0KCgou
dHh3LCAudHh3IGEgeyBjb2xvcjogcmdiKCAyNDIsIDI0NiwgMjQ5ICkgIWltcG9ydGFudDsgfQou
dHh0dywgLnR4dHcgYSB7IGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50OyB9Ci50eGIsIC50eGIgYSB7
IGNvbG9yOiByZ2IoIDQxLCA3MiwgMTI5ICkgIWltcG9ydGFudDsgfQoudHhiMiwgLnR4YjIgYSB7
IGNvbG9yOiByZ2IoIDEyMCwgMTMzLCAxNDkgKSAhaW1wb3J0YW50OyB9Ci50eGIzLCAudHhiMyBh
IHsgY29sb3I6IHJnYiggMTIwLCAxNDksIDE5MSApICFpbXBvcnRhbnQ7IH0KLnR4ZywgLnR4ZyBh
IHsgY29sb3I6IHJnYiggMTA1LCAxMDUsIDEwNSApICFpbXBvcnRhbnQ7IH0KCi5iZ3cgeyBiYWNr
Z3JvdW5kLWNvbG9yOiByZ2IoIDI0NiwgMjQ2LCAyNDkgKSAhaW1wb3J0YW50OyB9Ci5iZ3R3IHsg
YmFja2dyb3VuZC1jb2xvcjogd2hpdGUgIWltcG9ydGFudDsgfQouYmdiIHsgYmFja2dyb3VuZC1j
b2xvcjogcmdiKCA0MSwgNzIsIDEyOSApICFpbXBvcnRhbnQ7IH0KLmJnYjIgeyBiYWNrZ3JvdW5k
LWNvbG9yOiByZ2IoIDE0NSwgMTU3LCAxODAgKSAhaW1wb3J0YW50OyB9Ci5iZ2IzIHsgYmFja2dy
b3VuZC1jb2xvcjogcmdiKCAxMjAsIDE0OSwgMTkxICkgIWltcG9ydGFudDsgfQouYmdnIHsgYmFj
a2dyb3VuZC1jb2xvcjogIzAwMDAwMCAhaW1wb3J0YW50OyB9CgouYmdiZyB7CiAgYmFja2dyb3Vu
ZDogIzAwMDAwMDsgLyogRmFsbGJhY2sgQ29sb3IgKi8KICBmaWx0ZXI6IHByb2dpZDpEWEltYWdl
VHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggR3JhZGllbnRUeXBlPTAsU3RhcnRDb2xvclN0
cj1yZ2IoIDgxLCAxMjMsIDE3OSApLCBFbmRDb2xvclN0cj1yZ2IoIDQxLCA3MiwgMTI5ICkgKTsK
ICBib3JkZXItdG9wOiAzcHggc29saWQgI0E4MDUyMDsKfQoKCg==
|
|
17 | /fleche_040.gif | image/gif | fleche_040.gif | 200 OK | GIF | 1.6 KB | 07/05/86 18:34:32 |
Download
|
|
SHA256
|
1ce19026fcaba93aafa2486ca06e702a6f7cf866ed82e6de8232f4dafd0cf902
|
Referer
|
http://telecharger-gratuit.com/thankyou.php?nom=VLC%20Media%20Player
|
Magic
|
GIF file (GIF)
|
Request
|
GET /fleche_040.gif HTTP/1.1
Accept: */*
Referer: http://telecharger-gratuit.com/thankyou.php?nom=VLC%20Media%20Player
Accept-Language: en-US
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
Accept-Encoding: gzip, deflate
Host: telecharger-gratuit.com
Connection: Keep-Alive
|
Response Header
|
HTTP/1.1 200 OK
Server: Apache/2.2.16 (Debian)
Last-Modified: Tue, 19 Mar 2013 16:36:20 GMT
Cache-Control: max-age=2592000, public
Expires: Wed, 05 Mar 2014 11:35:35 GMT
Content-Type: image/gif
Content-Length: 1686
Accept-Ranges: bytes
Date: Sun, 23 Feb 2014 11:44:53 GMT
X-Varnish: 66589354 66586323
Age: 558
Via: 1.1 varnish
Connection: keep-alive
|
Response Peek (128 B)
|
GIF89a 1 ô ÿÿÿÿÌ™ÿÌfÿ™™ÿ™fÿ™3ÿf3ÌÌÌÌ™™Ì™fÌ™3ÌffÌf3Ìf Ì33Ì3 ™™™™™f™ff™f3™f ™33™3 ™ fÿ ffff3 f 333333333333!ÿNETSCAPE2.0 ...
|
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
|
|
18 | /js/jquery-1.4.2.min.js | application/javascript | jquery-1.4.2.min.js | 200 OK | TEXT | 27.4 KB | 06/26/86 13:32:35 |
Download
|
|
SHA256
|
2330e55dec8fe44f172010df258fc24c507119cdf4ab36171b45524b49f23328
|
Referer
|
http://telecharger-gratuit.com/thankyou.php?nom=VLC%20Media%20Player
|
Magic
|
Inconclusive. Probably text (TEXT)
|
Request
|
GET /js/jquery-1.4.2.min.js HTTP/1.1
Accept: */*
Referer: http://telecharger-gratuit.com/thankyou.php?nom=VLC%20Media%20Player
Accept-Language: en-US
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
Accept-Encoding: gzip, deflate
Host: telecharger-gratuit.com
Connection: Keep-Alive
|
Response Header
|
HTTP/1.1 200 OK
Server: Apache/2.2.16 (Debian)
Last-Modified: Mon, 28 Nov 2011 15:10:00 GMT
Cache-Control: max-age=2592000, private
Expires: Wed, 05 Mar 2014 11:35:35 GMT
Content-Encoding: gzip
Content-Type: application/javascript
Content-Length: 28042
Accept-Ranges: bytes
Date: Sun, 23 Feb 2014 11:44:52 GMT
X-Varnish: 66589345 66586316
Age: 558
Via: 1.1 varnish
Connection: keep-alive
|
Response Peek (128 B)
|
(function(window,undefined){var jQuery=function(selector,context){return new jQuery.fn.init(selector,context);},_jQuery=window.j...
|
KGZ1bmN0aW9uKHdpbmRvdyx1bmRlZmluZWQpe3ZhciBqUXVlcnk9ZnVuY3Rpb24oc2VsZWN0b3Is
Y29udGV4dCl7cmV0dXJuIG5ldyBqUXVlcnkuZm4uaW5pdChzZWxlY3Rvcixjb250ZXh0KTt9LF9q
UXVlcnk9d2luZG93LmpRdWVyeSxfJD13aW5kb3cuJCxkb2N1bWVudD13aW5kb3cuZG9jdW1lbnQs
cm9vdGpRdWVyeSxxdWlja0V4cHI9L15bXjxdKig8W1x3XFddKz4pW14+XSokfF4jKFtcdy1dKykk
Lyxpc1NpbXBsZT0vXi5bXjojXFtcLixdKiQvLHJub3R3aGl0ZT0vXFMvLHJ0cmltPS9eKFxzfFx1
MDBBMCkrfChcc3xcdTAwQTApKyQvZyxyc2luZ2xlVGFnPS9ePChcdyspXHMqXC8/Pig/OjxcL1wx
Pik/JC8sdXNlckFnZW50PW5hdmlnYXRvci51c2VyQWdlbnQsYnJvd3Nlck1hdGNoLHJlYWR5Qm91
bmQ9ZmFsc2UscmVhZHlMaXN0PVtdLERPTUNvbnRlbnRMb2FkZWQsdG9TdHJpbmc9T2JqZWN0LnBy
b3RvdHlwZS50b1N0cmluZyxoYXNPd25Qcm9wZXJ0eT1PYmplY3QucHJvdG90eXBlLmhhc093blBy
b3BlcnR5LHB1c2g9QXJyYXkucHJvdG90eXBlLnB1c2gsc2xpY2U9QXJyYXkucHJvdG90eXBlLnNs
aWNlLGluZGV4T2Y9QXJyYXkucHJvdG90eXBlLmluZGV4T2Y7alF1ZXJ5LmZuPWpRdWVyeS5wcm90
b3R5cGU9e2luaXQ6ZnVuY3Rpb24oc2VsZWN0b3IsY29udGV4dCl7dmFyIG1hdGNoLGVsZW0scmV0
LGRvYztpZighc2VsZWN0b3Ipe3JldHVybiB0aGlzO30KaWYoc2VsZWN0b3Iubm9kZVR5cGUpe3Ro
aXMuY29udGV4dD10aGlzWzBdPXNlbGVjdG9yO3RoaXMubGVuZ3RoPTE7cmV0dXJuIHRoaXM7fQpp
ZihzZWxlY3Rvcj09PSJib2R5IiYmIWNvbnRleHQpe3RoaXMuY29udGV4dD1kb2N1bWVudDt0aGlz
WzBdPWRvY3VtZW50LmJvZHk7dGhpcy5zZWxlY3Rvcj0iYm9keSI7dGhpcy5sZW5ndGg9MTtyZXR1
cm4gdGhpczt9CmlmKHR5cGVvZiBzZWxlY3Rvcj09PSJzdHJpbmciKXttYXRjaD1xdWlja0V4cHIu
ZXhlYyhzZWxlY3Rvcik7aWYobWF0Y2gmJihtYXRjaFsxXXx8IWNvbnRleHQpKXtpZihtYXRjaFsx
XSl7ZG9jPShjb250ZXh0P2NvbnRleHQub3duZXJEb2N1bWVudHx8Y29udGV4dDpkb2N1bWVudCk7
cmV0PXJzaW5nbGVUYWcuZXhlYyhzZWxlY3Rvcik7aWYocmV0KXtpZihqUXVlcnkuaXNQbGFpbk9i
amVjdChjb250ZXh0KSl7c2VsZWN0b3I9W2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQocmV0WzFdKV07
alF1ZXJ5LmZuLmF0dHIuY2FsbChzZWxlY3Rvcixjb250ZXh0LHRydWUpO31lbHNle3NlbGVjdG9y
PVtkb2MuY3JlYXRlRWxlbWVudChyZXRbMV0pXTt9fWVsc2V7cmV0PWJ1aWxkRnJhZ21lbnQoW21h
dGNoWzFdXSxbZG9jXSk7c2VsZWN0b3I9KHJldC5jYWNoZWFibGU/cmV0LmZyYWdtZW50LmNsb25l
Tm9kZSh0cnVlKTpyZXQuZnJhZ21lbnQpLmNoaWxkTm9kZXM7fQpyZXR1cm4galF1ZXJ5Lm1lcmdl
KHRoaXMsc2VsZWN0b3IpO31lbHNle2VsZW09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobWF0Y2hb
Ml0pO2lmKGVsZW0pe2lmKGVsZW0uaWQhPT1tYXRjaFsyXSl7cmV0dXJuIHJvb3RqUXVlcnkuZmlu
ZChzZWxlY3Rvcik7fQp0aGlzLmxlbmd0aD0xO3RoaXNbMF09ZWxlbTt9CnRoaXMuY29udGV4dD1k
b2N1bWVudDt0aGlzLnNlbGVjdG9yPXNlbGVjdG9yO3JldHVybiB0aGlzO319ZWxzZSBpZighY29u
dGV4dCYmL15cdyskLy50ZXN0KHNlbGVjdG9yKSl7dGhpcy5zZWxlY3Rvcj1zZWxlY3Rvcjt0aGlz
LmNvbnRleHQ9ZG9jdW1lbnQ7c2VsZWN0b3I9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
c2VsZWN0b3IpO3JldHVybiBqUXVlcnkubWVyZ2UodGhpcyxzZWxlY3Rvcik7fWVsc2UgaWYoIWNv
bnRleHR8fGNvbnRleHQuanF1ZXJ5KXtyZXR1cm4oY29udGV4dHx8cm9vdGpRdWVyeSkuZmluZChz
ZWxlY3Rvcik7fWVsc2V7cmV0dXJuIGpRdWVyeShjb250ZXh0KS5maW5kKHNlbGVjdG9yKTt9fWVs
c2UgaWYoalF1ZXJ5LmlzRnVuY3Rpb24oc2VsZWN0b3IpKXtyZXR1cm4gcm9vdGpRdWVyeS5yZWFk
eShzZWxlY3Rvcik7fQppZihzZWxlY3Rvci5zZWxlY3RvciE9PXVuZGVmaW5lZCl7dGhpcy5zZWxl
Y3Rvcj1zZWxlY3Rvci5zZWxlY3Rvcjt0aGlzLmNvbnRleHQ9c2VsZWN0b3IuY29udGV4dDt9CnJl
dHVybiBqUXVlcnkubWFrZUFycmF5KHNlbGVjdG9yLHRoaXMpO30sc2VsZWN0b3I6IiIsanF1ZXJ5
OiIxLjQuMiIsbGVuZ3RoOjAsc2l6ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxlbmd0aDt9LHRv
QXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gc2xpY2UuY2FsbCh0aGlzLDApO30sZ2V0OmZ1bmN0aW9u
KG51bSl7cmV0dXJuIG51bT09bnVsbD90aGlzLnRvQXJyYXkoKToobnVtPDA/dGhpcy5zbGljZShu
dW0pWzBdOnRoaXNbbnVtXSk7fSxwdXNoU3RhY2s6ZnVuY3Rpb24oZWxlbXMsbmFtZSxzZWxlY3Rv
cil7dmFyIHJldD1qUXVlcnkoKTtpZihqUXVlcnkuaXNBcnJheShlbGVtcykpe3B1c2guYXBwbHko
cmV0LGVsZW1zKTt9ZWxzZXtqUXVlcnkubWVyZ2UocmV0LGVsZW1zKTt9CnJldC5wcmV2T2JqZWN0
PXRoaXM7cmV0LmNvbnRleHQ9dGhpcy5jb250ZXh0O2lmKG5hbWU9PT0iZmluZCIpe3JldC5zZWxl
Y3Rvcj10aGlzLnNlbGVjdG9yKyh0aGlzLnNlbGVjdG9yPyIgIjoiIikrc2VsZWN0b3I7fWVsc2Ug
aWYobmFtZSl7cmV0LnNlbGVjdG9yPXRoaXMuc2VsZWN0b3IrIi4iK25hbWUrIigiK3NlbGVjdG9y
KyIpIjt9CnJldHVybiByZXQ7fSxlYWNoOmZ1bmN0aW9uKGNhbGxiYWNrLGFyZ3Mpe3JldHVybiBq
UXVlcnkuZWFjaCh0aGlzLGNhbGxiYWNrLGFyZ3MpO30scmVhZHk6ZnVuY3Rpb24oZm4pe2pRdWVy
eS5iaW5kUmVhZHkoKTtpZihqUXVlcnkuaXNSZWFkeSl7Zm4uY2FsbChkb2N1bWVudCxqUXVlcnkp
O31lbHNlIGlmKHJlYWR5TGlzdCl7cmVhZHlMaXN0LnB1c2goZm4pO30KcmV0dXJuIHRoaXM7fSxl
cTpmdW5jdGlvbihpKXtyZXR1cm4gaT09PS0xP3RoaXMuc2xpY2UoaSk6dGhpcy5zbGljZShpLCtp
KzEpO30sZmlyc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgwKTt9LGxhc3Q6ZnVuY3Rpb24o
KXtyZXR1cm4gdGhpcy5lcSgtMSk7fSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hT
dGFjayhzbGljZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksInNsaWNlIixzbGljZS5jYWxsKGFyZ3Vt
ZW50cykuam9pbigiLCIpKTt9LG1hcDpmdW5jdGlvbihjYWxsYmFjayl7cmV0dXJuIHRoaXMucHVz
aFN0YWNrKGpRdWVyeS5tYXAodGhpcyxmdW5jdGlvbihlbGVtLGkpe3JldHVybiBjYWxsYmFjay5j
YWxsKGVsZW0saSxlbGVtKTt9KSk7fSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcmV2T2Jq
ZWN0fHxqUXVlcnkobnVsbCk7fSxwdXNoOnB1c2gsc29ydDpbXS5zb3J0LHNwbGljZTpbXS5zcGxp
Y2V9O2pRdWVyeS5mbi5pbml0LnByb3RvdHlwZT1qUXVlcnkuZm47alF1ZXJ5LmV4dGVuZD1qUXVl
cnkuZm4uZXh0ZW5kPWZ1bmN0aW9uKCl7dmFyIHRhcmdldD1hcmd1bWVudHNbMF18fHt9LGk9MSxs
ZW5ndGg9YXJndW1lbnRzLmxlbmd0aCxkZWVwPWZhbHNlLG9wdGlvbnMsbmFtZSxzcmMsY29weTtp
Zih0eXBlb2YgdGFyZ2V0PT09ImJvb2xlYW4iKXtkZWVwPXRhcmdldDt0YXJnZXQ9YXJndW1lbnRz
WzFdfHx7fTtpPTI7fQppZih0eXBlb2YgdGFyZ2V0IT09Im9iamVjdCImJiFqUXVlcnkuaXNGdW5j
dGlvbih0YXJnZXQpKXt0YXJnZXQ9e307fQppZihsZW5ndGg9PT1pKXt0YXJnZXQ9dGhpczstLWk7
fQpmb3IoO2k8bGVuZ3RoO2krKyl7aWYoKG9wdGlvbnM9YXJndW1lbnRzW2ldKSE9bnVsbCl7Zm9y
KG5hbWUgaW4gb3B0aW9ucyl7c3JjPXRhcmdldFtuYW1lXTtjb3B5PW9wdGlvbnNbbmFtZV07aWYo
dGFyZ2V0PT09Y29weSl7Y29udGludWU7fQppZihkZWVwJiZjb3B5JiYoalF1ZXJ5LmlzUGxhaW5P
YmplY3QoY29weSl8fGpRdWVyeS5pc0FycmF5KGNvcHkpKSl7dmFyIGNsb25lPXNyYyYmKGpRdWVy
eS5pc1BsYWluT2JqZWN0KHNyYyl8fGpRdWVyeS5pc0FycmF5KHNyYykpP3NyYzpqUXVlcnkuaXNB
cnJheShjb3B5KT9bXTp7fTt0YXJnZXRbbmFtZV09alF1ZXJ5LmV4dGVuZChkZWVwLGNsb25lLGNv
cHkpO31lbHNlIGlmKGNvcHkhPT11bmRlZmluZWQpe3RhcmdldFtuYW1lXT1jb3B5O319fX0KcmV0
dXJuIHRhcmdldDt9O2pRdWVyeS5leHRlbmQoe25vQ29uZmxpY3Q6ZnVuY3Rpb24oZGVlcCl7d2lu
ZG93LiQ9XyQ7aWYoZGVlcCl7d2luZG93LmpRdWVyeT1falF1ZXJ5O30KcmV0dXJuIGpRdWVyeTt9
LGlzUmVhZHk6ZmFsc2UscmVhZHk6ZnVuY3Rpb24oKXtpZighalF1ZXJ5LmlzUmVhZHkpe2lmKCFk
b2N1bWVudC5ib2R5KXtyZXR1cm4gc2V0VGltZW91dChqUXVlcnkucmVhZHksMTMpO30KalF1ZXJ5
LmlzUmVhZHk9dHJ1ZTtpZihyZWFkeUxpc3Qpe3ZhciBmbixpPTA7d2hpbGUoKGZuPXJlYWR5TGlz
dFtpKytdKSl7Zm4uY2FsbChkb2N1bWVudCxqUXVlcnkpO30KcmVhZHlMaXN0PW51bGw7fQppZihq
UXVlcnkuZm4udHJpZ2dlckhhbmRsZXIpe2pRdWVyeShkb2N1bWVudCkudHJpZ2dlckhhbmRsZXIo
InJlYWR5Iik7fX19LGJpbmRSZWFkeTpmdW5jdGlvbigpe2lmKHJlYWR5Qm91bmQpe3JldHVybjt9
CnJlYWR5Qm91bmQ9dHJ1ZTtpZihkb2N1bWVudC5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIil7cmV0
dXJuIGpRdWVyeS5yZWFkeSgpO30KaWYoZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcil7ZG9jdW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsRE9NQ29udGVudExvYWRlZCxm
YWxzZSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGpRdWVyeS5yZWFkeSxmYWxzZSk7
fWVsc2UgaWYoZG9jdW1lbnQuYXR0YWNoRXZlbnQpe2RvY3VtZW50LmF0dGFjaEV2ZW50KCJvbnJl
YWR5c3RhdGVjaGFuZ2UiLERPTUNvbnRlbnRMb2FkZWQpO3dpbmRvdy5hdHRhY2hFdmVudCgib25s
b2FkIixqUXVlcnkucmVhZHkpO3ZhciB0b3BsZXZlbD1mYWxzZTt0cnl7dG9wbGV2ZWw9d2luZG93
LmZyYW1lRWxlbWVudD09bnVsbDt9Y2F0Y2goZSl7fQppZihkb2N1bWVudC5kb2N1bWVudEVsZW1l
bnQuZG9TY3JvbGwmJnRvcGxldmVsKXtkb1Njcm9sbENoZWNrKCk7fX19LGlzRnVuY3Rpb246ZnVu
Y3Rpb24ob2JqKXtyZXR1cm4gdG9TdHJpbmcuY2FsbChvYmopPT09IltvYmplY3QgRnVuY3Rpb25d
Ijt9LGlzQXJyYXk6ZnVuY3Rpb24ob2JqKXtyZXR1cm4gdG9TdHJpbmcuY2FsbChvYmopPT09Iltv
YmplY3QgQXJyYXldIjt9LGlzUGxhaW5PYmplY3Q6ZnVuY3Rpb24ob2JqKXtpZighb2JqfHx0b1N0
cmluZy5jYWxsKG9iaikhPT0iW29iamVjdCBPYmplY3RdInx8b2JqLm5vZGVUeXBlfHxvYmouc2V0
SW50ZXJ2YWwpe3JldHVybiBmYWxzZTt9CmlmKG9iai5jb25zdHJ1Y3RvciYmIWhhc093blByb3Bl
cnR5LmNhbGwob2JqLCJjb25zdHJ1Y3RvciIpJiYhaGFzT3duUHJvcGVydHkuY2FsbChvYmouY29u
c3RydWN0b3IucHJvdG90eXBlLCJpc1Byb3RvdHlwZU9mIikpe3JldHVybiBmYWxzZTt9CnZhciBr
ZXk7Zm9yKGtleSBpbiBvYmope30KcmV0dXJuIGtleT09PXVuZGVmaW5lZHx8aGFzT3duUHJvcGVy
dHkuY2FsbChvYmosa2V5KTt9LGlzRW1wdHlPYmplY3Q6ZnVuY3Rpb24ob2JqKXtmb3IodmFyIG5h
bWUgaW4gb2JqKXtyZXR1cm4gZmFsc2U7fQpyZXR1cm4gdHJ1ZTt9LGVycm9yOmZ1bmN0aW9uKG1z
Zyl7dGhyb3cgbXNnO30scGFyc2VKU09OOmZ1bmN0aW9uKGRhdGEpe2lmKHR5cGVvZiBkYXRhIT09
InN0cmluZyJ8fCFkYXRhKXtyZXR1cm4gbnVsbDt9CmRhdGE9alF1ZXJ5LnRyaW0oZGF0YSk7aWYo
L15bXF0sOnt9XHNdKiQvLnRlc3QoZGF0YS5yZXBsYWNlKC9cXCg/OlsiXFxcL2JmbnJ0XXx1WzAt
OWEtZkEtRl17NH0pL2csIkAiKS5yZXBsYWNlKC8iW14iXFxcblxyXSoifHRydWV8ZmFsc2V8bnVs
bHwtP1xkKyg/OlwuXGQqKT8oPzpbZUVdWytcLV0/XGQrKT8vZywiXSIpLnJlcGxhY2UoLyg/Ol58
OnwsKSg/OlxzKlxbKSsvZywiIikpKXtyZXR1cm4gd2luZG93LkpTT04mJndpbmRvdy5KU09OLnBh
cnNlP3dpbmRvdy5KU09OLnBhcnNlKGRhdGEpOihuZXcgRnVuY3Rpb24oInJldHVybiAiK2RhdGEp
KSgpO31lbHNle2pRdWVyeS5lcnJvcigiSW52YWxpZCBKU09OOiAiK2RhdGEpO319LG5vb3A6ZnVu
Y3Rpb24oKXt9LGdsb2JhbEV2YWw6ZnVuY3Rpb24oZGF0YSl7aWYoZGF0YSYmcm5vdHdoaXRlLnRl
c3QoZGF0YSkpe3ZhciBoZWFkPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilb
MF18fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxzY3JpcHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgic2NyaXB0Iik7c2NyaXB0LnR5cGU9InRleHQvamF2YXNjcmlwdCI7aWYoalF1ZXJ5LnN1cHBv
cnQuc2NyaXB0RXZhbCl7c2NyaXB0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KGRhdGEpKTt9ZWxzZXtzY3JpcHQudGV4dD1kYXRhO30KaGVhZC5pbnNlcnRCZWZvcmUoc2NyaXB0
LGhlYWQuZmlyc3RDaGlsZCk7aGVhZC5yZW1vdmVDaGlsZChzY3JpcHQpO319LG5vZGVOYW1lOmZ1
bmN0aW9uKGVsZW0sbmFtZSl7cmV0dXJuIGVsZW0ubm9kZU5hbWUmJmVsZW0ubm9kZU5hbWUudG9V
cHBlckNhc2UoKT09PW5hbWUudG9VcHBlckNhc2UoKTt9LGVhY2g6ZnVuY3Rpb24ob2JqZWN0LGNh
bGxiYWNrLGFyZ3Mpe3ZhciBuYW1lLGk9MCxsZW5ndGg9b2JqZWN0Lmxlbmd0aCxpc09iaj1sZW5n
dGg9PT11bmRlZmluZWR8fGpRdWVyeS5pc0Z1bmN0aW9uKG9iamVjdCk7aWYoYXJncyl7aWYoaXNP
Ymope2ZvcihuYW1lIGluIG9iamVjdCl7aWYoY2FsbGJhY2suYXBwbHkob2JqZWN0W25hbWVdLGFy
Z3MpPT09ZmFsc2Upe2JyZWFrO319fWVsc2V7Zm9yKDtpPGxlbmd0aDspe2lmKGNhbGxiYWNrLmFw
cGx5KG9iamVjdFtpKytdLGFyZ3MpPT09ZmFsc2Upe2JyZWFrO319fX1lbHNle2lmKGlzT2JqKXtm
b3IobmFtZSBpbiBvYmplY3Qpe2lmKGNhbGxiYWNrLmNhbGwob2JqZWN0W25hbWVdLG5hbWUsb2Jq
ZWN0W25hbWVdKT09PWZhbHNlKXticmVhazt9fX1lbHNle2Zvcih2YXIgdmFsdWU9b2JqZWN0WzBd
O2k8bGVuZ3RoJiZjYWxsYmFjay5jYWxsKHZhbHVlLGksdmFsdWUpIT09ZmFsc2U7dmFsdWU9b2Jq
ZWN0WysraV0pe319fQpyZXR1cm4gb2JqZWN0O30sdHJpbTpmdW5jdGlvbih0ZXh0KXtyZXR1cm4o
dGV4dHx8IiIpLnJlcGxhY2UocnRyaW0sIiIpO30sbWFrZUFycmF5OmZ1bmN0aW9uKGFycmF5LHJl
c3VsdHMpe3ZhciByZXQ9cmVzdWx0c3x8W107aWYoYXJyYXkhPW51bGwpe2lmKGFycmF5Lmxlbmd0
aD09bnVsbHx8dHlwZW9mIGFycmF5PT09InN0cmluZyJ8fGpRdWVyeS5pc0Z1bmN0aW9uKGFycmF5
KXx8KHR5cGVvZiBhcnJheSE9PSJmdW5jdGlvbiImJmFycmF5LnNldEludGVydmFsKSl7cHVzaC5j
YWxsKHJldCxhcnJheSk7fWVsc2V7alF1ZXJ5Lm1lcmdlKHJldCxhcnJheSk7fX0KcmV0dXJuIHJl
dDt9LGluQXJyYXk6ZnVuY3Rpb24oZWxlbSxhcnJheSl7aWYoYXJyYXkuaW5kZXhPZil7cmV0dXJu
IGFycmF5LmluZGV4T2YoZWxlbSk7fQpmb3IodmFyIGk9MCxsZW5ndGg9YXJyYXkubGVuZ3RoO2k8
bGVuZ3RoO2krKyl7aWYoYXJyYXlbaV09PT1lbGVtKXtyZXR1cm4gaTt9fQpyZXR1cm4tMTt9LG1l
cmdlOmZ1bmN0aW9uKGZpcnN0LHNlY29uZCl7dmFyIGk9Zmlyc3QubGVuZ3RoLGo9MDtpZih0eXBl
b2Ygc2Vjb25kLmxlbmd0aD09PSJudW1iZXIiKXtmb3IodmFyIGw9c2Vjb25kLmxlbmd0aDtqPGw7
aisrKXtmaXJzdFtpKytdPXNlY29uZFtqXTt9fWVsc2V7d2hpbGUoc2Vjb25kW2pdIT09dW5kZWZp
bmVkKXtmaXJzdFtpKytdPXNlY29uZFtqKytdO319CmZpcnN0Lmxlbmd0aD1pO3JldHVybiBmaXJz
dDt9LGdyZXA6ZnVuY3Rpb24oZWxlbXMsY2FsbGJhY2ssaW52KXt2YXIgcmV0PVtdO2Zvcih2YXIg
aT0wLGxlbmd0aD1lbGVtcy5sZW5ndGg7aTxsZW5ndGg7aSsrKXtpZighaW52IT09IWNhbGxiYWNr
KGVsZW1zW2ldLGkpKXtyZXQucHVzaChlbGVtc1tpXSk7fX0KcmV0dXJuIHJldDt9LG1hcDpmdW5j
dGlvbihlbGVtcyxjYWxsYmFjayxhcmcpe3ZhciByZXQ9W10sdmFsdWU7Zm9yKHZhciBpPTAsbGVu
Z3RoPWVsZW1zLmxlbmd0aDtpPGxlbmd0aDtpKyspe3ZhbHVlPWNhbGxiYWNrKGVsZW1zW2ldLGks
YXJnKTtpZih2YWx1ZSE9bnVsbCl7cmV0W3JldC5sZW5ndGhdPXZhbHVlO319CnJldHVybiByZXQu
Y29uY2F0LmFwcGx5KFtdLHJldCk7fSxndWlkOjEscHJveHk6ZnVuY3Rpb24oZm4scHJveHksdGhp
c09iamVjdCl7aWYoYXJndW1lbnRzLmxlbmd0aD09PTIpe2lmKHR5cGVvZiBwcm94eT09PSJzdHJp
bmciKXt0aGlzT2JqZWN0PWZuO2ZuPXRoaXNPYmplY3RbcHJveHldO3Byb3h5PXVuZGVmaW5lZDt9
ZWxzZSBpZihwcm94eSYmIWpRdWVyeS5pc0Z1bmN0aW9uKHByb3h5KSl7dGhpc09iamVjdD1wcm94
eTtwcm94eT11bmRlZmluZWQ7fX0KaWYoIXByb3h5JiZmbil7cHJveHk9ZnVuY3Rpb24oKXtyZXR1
cm4gZm4uYXBwbHkodGhpc09iamVjdHx8dGhpcyxhcmd1bWVudHMpO307fQppZihmbil7cHJveHku
Z3VpZD1mbi5ndWlkPWZuLmd1aWR8fHByb3h5Lmd1aWR8fGpRdWVyeS5ndWlkKys7fQpyZXR1cm4g
cHJveHk7fSx1YU1hdGNoOmZ1bmN0aW9uKHVhKXt1YT11YS50b0xvd2VyQ2FzZSgpO3ZhciBtYXRj
aD0vKHdlYmtpdClbIFwvXShbXHcuXSspLy5leGVjKHVhKXx8LyhvcGVyYSkoPzouKnZlcnNpb24p
P1sgXC9dKFtcdy5dKykvLmV4ZWModWEpfHwvKG1zaWUpIChbXHcuXSspLy5leGVjKHVhKXx8IS9j
b21wYXRpYmxlLy50ZXN0KHVhKSYmLyhtb3ppbGxhKSg/Oi4qPyBydjooW1x3Ll0rKSk/Ly5leGVj
KHVhKXx8W107cmV0dXJue2Jyb3dzZXI6bWF0Y2hbMV18fCIiLHZlcnNpb246bWF0Y2hbMl18fCIw
In07fSxicm93c2VyOnt9fSk7YnJvd3Nlck1hdGNoPWpRdWVyeS51YU1hdGNoKHVzZXJBZ2VudCk7
aWYoYnJvd3Nlck1hdGNoLmJyb3dzZXIpe2pRdWVyeS5icm93c2VyW2Jyb3dzZXJNYXRjaC5icm93
c2VyXT10cnVlO2pRdWVyeS5icm93c2VyLnZlcnNpb249YnJvd3Nlck1hdGNoLnZlcnNpb247fQpp
ZihqUXVlcnkuYnJvd3Nlci53ZWJraXQpe2pRdWVyeS5icm93c2VyLnNhZmFyaT10cnVlO30KaWYo
aW5kZXhPZil7alF1ZXJ5LmluQXJyYXk9ZnVuY3Rpb24oZWxlbSxhcnJheSl7cmV0dXJuIGluZGV4
T2YuY2FsbChhcnJheSxlbGVtKTt9O30Kcm9vdGpRdWVyeT1qUXVlcnkoZG9jdW1lbnQpO2lmKGRv
Y3VtZW50LmFkZEV2ZW50TGlzdGVuZXIpe0RPTUNvbnRlbnRMb2FkZWQ9ZnVuY3Rpb24oKXtkb2N1
bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixET01Db250ZW50TG9h
ZGVkLGZhbHNlKTtqUXVlcnkucmVhZHkoKTt9O31lbHNlIGlmKGRvY3VtZW50LmF0dGFjaEV2ZW50
KXtET01Db250ZW50TG9hZGVkPWZ1bmN0aW9uKCl7aWYoZG9jdW1lbnQucmVhZHlTdGF0ZT09PSJj
b21wbGV0ZSIpe2RvY3VtZW50LmRldGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLERPTUNv
bnRlbnRMb2FkZWQpO2pRdWVyeS5yZWFkeSgpO319O30KZnVuY3Rpb24gZG9TY3JvbGxDaGVjaygp
e2lmKGpRdWVyeS5pc1JlYWR5KXtyZXR1cm47fQp0cnl7ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50
LmRvU2Nyb2xsKCJsZWZ0Iik7fWNhdGNoKGVycm9yKXtzZXRUaW1lb3V0KGRvU2Nyb2xsQ2hlY2ss
MSk7cmV0dXJuO30KalF1ZXJ5LnJlYWR5KCk7fQpmdW5jdGlvbiBldmFsU2NyaXB0KGksZWxlbSl7
aWYoZWxlbS5zcmMpe2pRdWVyeS5hamF4KHt1cmw6ZWxlbS5zcmMsYXN5bmM6ZmFsc2UsZGF0YVR5
cGU6InNjcmlwdCJ9KTt9ZWxzZXtqUXVlcnkuZ2xvYmFsRXZhbChlbGVtLnRleHR8fGVsZW0udGV4
dENvbnRlbnR8fGVsZW0uaW5uZXJIVE1MfHwiIik7fQppZihlbGVtLnBhcmVudE5vZGUpe2VsZW0u
cGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlbGVtKTt9fQpmdW5jdGlvbiBhY2Nlc3MoZWxlbXMsa2V5
LHZhbHVlLGV4ZWMsZm4scGFzcyl7dmFyIGxlbmd0aD1lbGVtcy5sZW5ndGg7aWYodHlwZW9mIGtl
eT09PSJvYmplY3QiKXtmb3IodmFyIGsgaW4ga2V5KXthY2Nlc3MoZWxlbXMsayxrZXlba10sZXhl
Yyxmbix2YWx1ZSk7fQpyZXR1cm4gZWxlbXM7fQppZih2YWx1ZSE9PXVuZGVmaW5lZCl7ZXhlYz0h
cGFzcyYmZXhlYyYmalF1ZXJ5LmlzRnVuY3Rpb24odmFsdWUpO2Zvcih2YXIgaT0wO2k8bGVuZ3Ro
O2krKyl7Zm4oZWxlbXNbaV0sa2V5LGV4ZWM/dmFsdWUuY2FsbChlbGVtc1tpXSxpLGZuKGVsZW1z
W2ldLGtleSkpOnZhbHVlLHBhc3MpO30KcmV0dXJuIGVsZW1zO30KcmV0dXJuIGxlbmd0aD9mbihl
bGVtc1swXSxrZXkpOnVuZGVmaW5lZDt9CmZ1bmN0aW9uIG5vdygpe3JldHVybihuZXcgRGF0ZSku
Z2V0VGltZSgpO30KKGZ1bmN0aW9uKCl7alF1ZXJ5LnN1cHBvcnQ9e307dmFyIHJvb3Q9ZG9jdW1l
bnQuZG9jdW1lbnRFbGVtZW50LHNjcmlwdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQi
KSxkaXY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksaWQ9InNjcmlwdCIrbm93KCk7ZGl2
LnN0eWxlLmRpc3BsYXk9Im5vbmUiO2Rpdi5pbm5lckhUTUw9IiAgIDxsaW5rLz48dGFibGU+PC90
YWJsZT48YSBocmVmPScvYScgc3R5bGU9J2NvbG9yOnJlZDtmbG9hdDpsZWZ0O29wYWNpdHk6LjU1
Oyc+YTwvYT48aW5wdXQgdHlwZT0nY2hlY2tib3gnLz4iO3ZhciBhbGw9ZGl2LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCIqIiksYT1kaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKVswXTtpZighYWxs
fHwhYWxsLmxlbmd0aHx8IWEpe3JldHVybjt9CmpRdWVyeS5zdXBwb3J0PXtsZWFkaW5nV2hpdGVz
cGFjZTpkaXYuZmlyc3RDaGlsZC5ub2RlVHlwZT09PTMsdGJvZHk6IWRpdi5nZXRFbGVtZW50c0J5
VGFnTmFtZSgidGJvZHkiKS5sZW5ndGgsaHRtbFNlcmlhbGl6ZTohIWRpdi5nZXRFbGVtZW50c0J5
VGFnTmFtZSgibGluayIpLmxlbmd0aCxzdHlsZTovcmVkLy50ZXN0KGEuZ2V0QXR0cmlidXRlKCJz
dHlsZSIpKSxocmVmTm9ybWFsaXplZDphLmdldEF0dHJpYnV0ZSgiaHJlZiIpPT09Ii9hIixvcGFj
aXR5Oi9eMC41NSQvLnRlc3QoYS5zdHlsZS5vcGFjaXR5KSxjc3NGbG9hdDohIWEuc3R5bGUuY3Nz
RmxvYXQsY2hlY2tPbjpkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMF0udmFsdWU9
PT0ib24iLG9wdFNlbGVjdGVkOmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpLmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpKS5zZWxlY3RlZCxwYXJlbnRO
b2RlOmRpdi5yZW1vdmVDaGlsZChkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiZGl2IikpKS5wYXJlbnROb2RlPT09bnVsbCxkZWxldGVFeHBhbmRvOnRydWUsY2hlY2tDbG9u
ZTpmYWxzZSxzY3JpcHRFdmFsOmZhbHNlLG5vQ2xvbmVFdmVudDp0cnVlLGJveE1vZGVsOm51bGx9
O3NjcmlwdC50eXBlPSJ0ZXh0L2phdmFzY3JpcHQiO3RyeXtzY3JpcHQuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoIndpbmRvdy4iK2lkKyI9MTsiKSk7fWNhdGNoKGUpe30Kcm9v
dC5pbnNlcnRCZWZvcmUoc2NyaXB0LHJvb3QuZmlyc3RDaGlsZCk7aWYod2luZG93W2lkXSl7alF1
ZXJ5LnN1cHBvcnQuc2NyaXB0RXZhbD10cnVlO2RlbGV0ZSB3aW5kb3dbaWRdO30KdHJ5e2RlbGV0
ZSBzY3JpcHQudGVzdDt9Y2F0Y2goZSl7alF1ZXJ5LnN1cHBvcnQuZGVsZXRlRXhwYW5kbz1mYWxz
ZTt9CnJvb3QucmVtb3ZlQ2hpbGQoc2NyaXB0KTtpZihkaXYuYXR0YWNoRXZlbnQmJmRpdi5maXJl
RXZlbnQpe2Rpdi5hdHRhY2hFdmVudCgib25jbGljayIsZnVuY3Rpb24gY2xpY2soKXtqUXVlcnku
c3VwcG9ydC5ub0Nsb25lRXZlbnQ9ZmFsc2U7ZGl2LmRldGFjaEV2ZW50KCJvbmNsaWNrIixjbGlj
ayk7fSk7ZGl2LmNsb25lTm9kZSh0cnVlKS5maXJlRXZlbnQoIm9uY2xpY2siKTt9CmRpdj1kb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtkaXYuaW5uZXJIVE1MPSI8aW5wdXQgdHlwZT0ncmFk
aW8nIG5hbWU9J3JhZGlvdGVzdCcgY2hlY2tlZD0nY2hlY2tlZCcvPiI7dmFyIGZyYWdtZW50PWRv
Y3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtmcmFnbWVudC5hcHBlbmRDaGlsZChkaXYu
Zmlyc3RDaGlsZCk7alF1ZXJ5LnN1cHBvcnQuY2hlY2tDbG9uZT1mcmFnbWVudC5jbG9uZU5vZGUo
dHJ1ZSkuY2xvbmVOb2RlKHRydWUpLmxhc3RDaGlsZC5jaGVja2VkO2pRdWVyeShmdW5jdGlvbigp
e3ZhciBkaXY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZGl2LnN0eWxlLndpZHRoPWRp
di5zdHlsZS5wYWRkaW5nTGVmdD0iMXB4Ijtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7
alF1ZXJ5LmJveE1vZGVsPWpRdWVyeS5zdXBwb3J0LmJveE1vZGVsPWRpdi5vZmZzZXRXaWR0aD09
PTI7ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkaXYpLnN0eWxlLmRpc3BsYXk9J25vbmUnO2Rp
dj1udWxsO30pO3ZhciBldmVudFN1cHBvcnRlZD1mdW5jdGlvbihldmVudE5hbWUpe3ZhciBlbD1k
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtldmVudE5hbWU9Im9uIitldmVudE5hbWU7dmFy
IGlzU3VwcG9ydGVkPShldmVudE5hbWUgaW4gZWwpO2lmKCFpc1N1cHBvcnRlZCl7ZWwuc2V0QXR0
cmlidXRlKGV2ZW50TmFtZSwicmV0dXJuOyIpO2lzU3VwcG9ydGVkPXR5cGVvZiBlbFtldmVudE5h
bWVdPT09ImZ1bmN0aW9uIjt9CmVsPW51bGw7cmV0dXJuIGlzU3VwcG9ydGVkO307alF1ZXJ5LnN1
cHBvcnQuc3VibWl0QnViYmxlcz1ldmVudFN1cHBvcnRlZCgic3VibWl0Iik7alF1ZXJ5LnN1cHBv
cnQuY2hhbmdlQnViYmxlcz1ldmVudFN1cHBvcnRlZCgiY2hhbmdlIik7cm9vdD1zY3JpcHQ9ZGl2
PWFsbD1hPW51bGw7fSkoKTtqUXVlcnkucHJvcHM9eyJmb3IiOiJodG1sRm9yIiwiY2xhc3MiOiJj
bGFzc05hbWUiLHJlYWRvbmx5OiJyZWFkT25seSIsbWF4bGVuZ3RoOiJtYXhMZW5ndGgiLGNlbGxz
cGFjaW5nOiJjZWxsU3BhY2luZyIscm93c3Bhbjoicm93U3BhbiIsY29sc3BhbjoiY29sU3BhbiIs
dGFiaW5kZXg6InRhYkluZGV4Iix1c2VtYXA6InVzZU1hcCIsZnJhbWVib3JkZXI6ImZyYW1lQm9y
ZGVyIn07dmFyIGV4cGFuZG89ImpRdWVyeSIrbm93KCksdXVpZD0wLHdpbmRvd0RhdGE9e307alF1
ZXJ5LmV4dGVuZCh7Y2FjaGU6e30sZXhwYW5kbzpleHBhbmRvLG5vRGF0YTp7ImVtYmVkIjp0cnVl
LCJvYmplY3QiOnRydWUsImFwcGxldCI6dHJ1ZX0sZGF0YTpmdW5jdGlvbihlbGVtLG5hbWUsZGF0
YSl7aWYoZWxlbS5ub2RlTmFtZSYmalF1ZXJ5Lm5vRGF0YVtlbGVtLm5vZGVOYW1lLnRvTG93ZXJD
YXNlKCldKXtyZXR1cm47fQplbGVtPWVsZW09PXdpbmRvdz93aW5kb3dEYXRhOmVsZW07dmFyIGlk
PWVsZW1bZXhwYW5kb10sY2FjaGU9alF1ZXJ5LmNhY2hlLHRoaXNDYWNoZTtpZighaWQmJnR5cGVv
ZiBuYW1lPT09InN0cmluZyImJmRhdGE9PT11bmRlZmluZWQpe3JldHVybiBudWxsO30KaWYoIWlk
KXtpZD0rK3V1aWQ7fQppZih0eXBlb2YgbmFtZT09PSJvYmplY3QiKXtlbGVtW2V4cGFuZG9dPWlk
O3RoaXNDYWNoZT1jYWNoZVtpZF09alF1ZXJ5LmV4dGVuZCh0cnVlLHt9LG5hbWUpO31lbHNlIGlm
KCFjYWNoZVtpZF0pe2VsZW1bZXhwYW5kb109aWQ7Y2FjaGVbaWRdPXt9O30KdGhpc0NhY2hlPWNh
Y2hlW2lkXTtpZihkYXRhIT09dW5kZWZpbmVkKXt0aGlzQ2FjaGVbbmFtZV09ZGF0YTt9CnJldHVy
biB0eXBlb2YgbmFtZT09PSJzdHJpbmciP3RoaXNDYWNoZVtuYW1lXTp0aGlzQ2FjaGU7fSxyZW1v
dmVEYXRhOmZ1bmN0aW9uKGVsZW0sbmFtZSl7aWYoZWxlbS5ub2RlTmFtZSYmalF1ZXJ5Lm5vRGF0
YVtlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldKXtyZXR1cm47fQplbGVtPWVsZW09PXdpbmRv
dz93aW5kb3dEYXRhOmVsZW07dmFyIGlkPWVsZW1bZXhwYW5kb10sY2FjaGU9alF1ZXJ5LmNhY2hl
LHRoaXNDYWNoZT1jYWNoZVtpZF07aWYobmFtZSl7aWYodGhpc0NhY2hlKXtkZWxldGUgdGhpc0Nh
Y2hlW25hbWVdO2lmKGpRdWVyeS5pc0VtcHR5T2JqZWN0KHRoaXNDYWNoZSkpe2pRdWVyeS5yZW1v
dmVEYXRhKGVsZW0pO319fWVsc2V7aWYoalF1ZXJ5LnN1cHBvcnQuZGVsZXRlRXhwYW5kbyl7ZGVs
ZXRlIGVsZW1balF1ZXJ5LmV4cGFuZG9dO31lbHNlIGlmKGVsZW0ucmVtb3ZlQXR0cmlidXRlKXtl
bGVtLnJlbW92ZUF0dHJpYnV0ZShqUXVlcnkuZXhwYW5kbyk7fQpkZWxldGUgY2FjaGVbaWRdO319
fSk7alF1ZXJ5LmZuLmV4dGVuZCh7ZGF0YTpmdW5jdGlvbihrZXksdmFsdWUpe2lmKHR5cGVvZiBr
ZXk9PT0idW5kZWZpbmVkIiYmdGhpcy5sZW5ndGgpe3JldHVybiBqUXVlcnkuZGF0YSh0aGlzWzBd
KTt9ZWxzZSBpZih0eXBlb2Yga2V5PT09Im9iamVjdCIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rp
b24oKXtqUXVlcnkuZGF0YSh0aGlzLGtleSk7fSk7fQp2YXIgcGFydHM9a2V5LnNwbGl0KCIuIik7
cGFydHNbMV09cGFydHNbMV0/Ii4iK3BhcnRzWzFdOiIiO2lmKHZhbHVlPT09dW5kZWZpbmVkKXt2
YXIgZGF0YT10aGlzLnRyaWdnZXJIYW5kbGVyKCJnZXREYXRhIitwYXJ0c1sxXSsiISIsW3BhcnRz
WzBdXSk7aWYoZGF0YT09PXVuZGVmaW5lZCYmdGhpcy5sZW5ndGgpe2RhdGE9alF1ZXJ5LmRhdGEo
dGhpc1swXSxrZXkpO30KcmV0dXJuIGRhdGE9PT11bmRlZmluZWQmJnBhcnRzWzFdP3RoaXMuZGF0
YShwYXJ0c1swXSk6ZGF0YTt9ZWxzZXtyZXR1cm4gdGhpcy50cmlnZ2VyKCJzZXREYXRhIitwYXJ0
c1sxXSsiISIsW3BhcnRzWzBdLHZhbHVlXSkuZWFjaChmdW5jdGlvbigpe2pRdWVyeS5kYXRhKHRo
aXMsa2V5LHZhbHVlKTt9KTt9fSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGtleSl7cmV0dXJuIHRoaXMu
ZWFjaChmdW5jdGlvbigpe2pRdWVyeS5yZW1vdmVEYXRhKHRoaXMsa2V5KTt9KTt9fSk7alF1ZXJ5
LmV4dGVuZCh7cXVldWU6ZnVuY3Rpb24oZWxlbSx0eXBlLGRhdGEpe2lmKCFlbGVtKXtyZXR1cm47
fQp0eXBlPSh0eXBlfHwiZngiKSsicXVldWUiO3ZhciBxPWpRdWVyeS5kYXRhKGVsZW0sdHlwZSk7
aWYoIWRhdGEpe3JldHVybiBxfHxbXTt9CmlmKCFxfHxqUXVlcnkuaXNBcnJheShkYXRhKSl7cT1q
UXVlcnkuZGF0YShlbGVtLHR5cGUsalF1ZXJ5Lm1ha2VBcnJheShkYXRhKSk7fWVsc2V7cS5wdXNo
KGRhdGEpO30KcmV0dXJuIHE7fSxkZXF1ZXVlOmZ1bmN0aW9uKGVsZW0sdHlwZSl7dHlwZT10eXBl
fHwiZngiO3ZhciBxdWV1ZT1qUXVlcnkucXVldWUoZWxlbSx0eXBlKSxmbj1xdWV1ZS5zaGlmdCgp
O2lmKGZuPT09ImlucHJvZ3Jlc3MiKXtmbj1xdWV1ZS5zaGlmdCgpO30KaWYoZm4pe2lmKHR5cGU9
PT0iZngiKXtxdWV1ZS51bnNoaWZ0KCJpbnByb2dyZXNzIik7fQpmbi5jYWxsKGVsZW0sZnVuY3Rp
b24oKXtqUXVlcnkuZGVxdWV1ZShlbGVtLHR5cGUpO30pO319fSk7alF1ZXJ5LmZuLmV4dGVuZCh7
cXVldWU6ZnVuY3Rpb24odHlwZSxkYXRhKXtpZih0eXBlb2YgdHlwZSE9PSJzdHJpbmciKXtkYXRh
PXR5cGU7dHlwZT0iZngiO30KaWYoZGF0YT09PXVuZGVmaW5lZCl7cmV0dXJuIGpRdWVyeS5xdWV1
ZSh0aGlzWzBdLHR5cGUpO30KcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihpLGVsZW0pe3ZhciBx
dWV1ZT1qUXVlcnkucXVldWUodGhpcyx0eXBlLGRhdGEpO2lmKHR5cGU9PT0iZngiJiZxdWV1ZVsw
XSE9PSJpbnByb2dyZXNzIil7alF1ZXJ5LmRlcXVldWUodGhpcyx0eXBlKTt9fSk7fSxkZXF1ZXVl
OmZ1bmN0aW9uKHR5cGUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtqUXVlcnkuZGVxdWV1
ZSh0aGlzLHR5cGUpO30pO30sZGVsYXk6ZnVuY3Rpb24odGltZSx0eXBlKXt0aW1lPWpRdWVyeS5m
eD9qUXVlcnkuZnguc3BlZWRzW3RpbWVdfHx0aW1lOnRpbWU7dHlwZT10eXBlfHwiZngiO3JldHVy
biB0aGlzLnF1ZXVlKHR5cGUsZnVuY3Rpb24oKXt2YXIgZWxlbT10aGlzO3NldFRpbWVvdXQoZnVu
Y3Rpb24oKXtqUXVlcnkuZGVxdWV1ZShlbGVtLHR5cGUpO30sdGltZSk7fSk7fSxjbGVhclF1ZXVl
OmZ1bmN0aW9uKHR5cGUpe3JldHVybiB0aGlzLnF1ZXVlKHR5cGV8fCJmeCIsW10pO319KTt2YXIg
cmNsYXNzPS9bXG5cdF0vZyxyc3BhY2U9L1xzKy8scnJldHVybj0vXHIvZyxyc3BlY2lhbHVybD0v
aHJlZnxzcmN8c3R5bGUvLHJ0eXBlPS8oYnV0dG9ufGlucHV0KS9pLHJmb2N1c2FibGU9LyhidXR0
b258aW5wdXR8b2JqZWN0fHNlbGVjdHx0ZXh0YXJlYSkvaSxyY2xpY2thYmxlPS9eKGF8YXJlYSkk
L2kscnJhZGlvY2hlY2s9L3JhZGlvfGNoZWNrYm94LztqUXVlcnkuZm4uZXh0ZW5kKHthdHRyOmZ1
bmN0aW9uKG5hbWUsdmFsdWUpe3JldHVybiBhY2Nlc3ModGhpcyxuYW1lLHZhbHVlLHRydWUsalF1
ZXJ5LmF0dHIpO30scmVtb3ZlQXR0cjpmdW5jdGlvbihuYW1lLGZuKXtyZXR1cm4gdGhpcy5lYWNo
KGZ1bmN0aW9uKCl7alF1ZXJ5LmF0dHIodGhpcyxuYW1lLCIiKTtpZih0aGlzLm5vZGVUeXBlPT09
MSl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7fX0pO30sYWRkQ2xhc3M6ZnVuY3Rpb24odmFs
dWUpe2lmKGpRdWVyeS5pc0Z1bmN0aW9uKHZhbHVlKSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlv
bihpKXt2YXIgc2VsZj1qUXVlcnkodGhpcyk7c2VsZi5hZGRDbGFzcyh2YWx1ZS5jYWxsKHRoaXMs
aSxzZWxmLmF0dHIoImNsYXNzIikpKTt9KTt9CmlmKHZhbHVlJiZ0eXBlb2YgdmFsdWU9PT0ic3Ry
aW5nIil7dmFyIGNsYXNzTmFtZXM9KHZhbHVlfHwiIikuc3BsaXQocnNwYWNlKTtmb3IodmFyIGk9
MCxsPXRoaXMubGVuZ3RoO2k8bDtpKyspe3ZhciBlbGVtPXRoaXNbaV07aWYoZWxlbS5ub2RlVHlw
ZT09PTEpe2lmKCFlbGVtLmNsYXNzTmFtZSl7ZWxlbS5jbGFzc05hbWU9dmFsdWU7fWVsc2V7dmFy
IGNsYXNzTmFtZT0iICIrZWxlbS5jbGFzc05hbWUrIiAiLHNldENsYXNzPWVsZW0uY2xhc3NOYW1l
O2Zvcih2YXIgYz0wLGNsPWNsYXNzTmFtZXMubGVuZ3RoO2M8Y2w7YysrKXtpZihjbGFzc05hbWUu
aW5kZXhPZigiICIrY2xhc3NOYW1lc1tjXSsiICIpPDApe3NldENsYXNzKz0iICIrY2xhc3NOYW1l
c1tjXTt9fQplbGVtLmNsYXNzTmFtZT1qUXVlcnkudHJpbShzZXRDbGFzcyk7fX19fQpyZXR1cm4g
dGhpczt9LHJlbW92ZUNsYXNzOmZ1bmN0aW9uKHZhbHVlKXtpZihqUXVlcnkuaXNGdW5jdGlvbih2
YWx1ZSkpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oaSl7dmFyIHNlbGY9alF1ZXJ5KHRoaXMp
O3NlbGYucmVtb3ZlQ2xhc3ModmFsdWUuY2FsbCh0aGlzLGksc2VsZi5hdHRyKCJjbGFzcyIpKSk7
fSk7fQppZigodmFsdWUmJnR5cGVvZiB2YWx1ZT09PSJzdHJpbmciKXx8dmFsdWU9PT11bmRlZmlu
ZWQpe3ZhciBjbGFzc05hbWVzPSh2YWx1ZXx8IiIpLnNwbGl0KHJzcGFjZSk7Zm9yKHZhciBpPTAs
bD10aGlzLmxlbmd0aDtpPGw7aSsrKXt2YXIgZWxlbT10aGlzW2ldO2lmKGVsZW0ubm9kZVR5cGU9
PT0xJiZlbGVtLmNsYXNzTmFtZSl7aWYodmFsdWUpe3ZhciBjbGFzc05hbWU9KCIgIitlbGVtLmNs
YXNzTmFtZSsiICIpLnJlcGxhY2UocmNsYXNzLCIgIik7Zm9yKHZhciBjPTAsY2w9Y2xhc3NOYW1l
cy5sZW5ndGg7YzxjbDtjKyspe2NsYXNzTmFtZT1jbGFzc05hbWUucmVwbGFjZSgiICIrY2xhc3NO
YW1lc1tjXSsiICIsIiAiKTt9CmVsZW0uY2xhc3NOYW1lPWpRdWVyeS50cmltKGNsYXNzTmFtZSk7
fWVsc2V7ZWxlbS5jbGFzc05hbWU9IiI7fX19fQpyZXR1cm4gdGhpczt9LHRvZ2dsZUNsYXNzOmZ1
bmN0aW9uKHZhbHVlLHN0YXRlVmFsKXt2YXIgdHlwZT10eXBlb2YgdmFsdWUsaXNCb29sPXR5cGVv
ZiBzdGF0ZVZhbD09PSJib29sZWFuIjtpZihqUXVlcnkuaXNGdW5jdGlvbih2YWx1ZSkpe3JldHVy
biB0aGlzLmVhY2goZnVuY3Rpb24oaSl7dmFyIHNlbGY9alF1ZXJ5KHRoaXMpO3NlbGYudG9nZ2xl
Q2xhc3ModmFsdWUuY2FsbCh0aGlzLGksc2VsZi5hdHRyKCJjbGFzcyIpLHN0YXRlVmFsKSxzdGF0
ZVZhbCk7fSk7fQpyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7aWYodHlwZT09PSJzdHJpbmci
KXt2YXIgY2xhc3NOYW1lLGk9MCxzZWxmPWpRdWVyeSh0aGlzKSxzdGF0ZT1zdGF0ZVZhbCxjbGFz
c05hbWVzPXZhbHVlLnNwbGl0KHJzcGFjZSk7d2hpbGUoKGNsYXNzTmFtZT1jbGFzc05hbWVzW2kr
K10pKXtzdGF0ZT1pc0Jvb2w/c3RhdGU6IXNlbGYuaGFzQ2xhc3MoY2xhc3NOYW1lKTtzZWxmW3N0
YXRlPyJhZGRDbGFzcyI6InJlbW92ZUNsYXNzIl0oY2xhc3NOYW1lKTt9fWVsc2UgaWYodHlwZT09
PSJ1bmRlZmluZWQifHx0eXBlPT09ImJvb2xlYW4iKXtpZih0aGlzLmNsYXNzTmFtZSl7alF1ZXJ5
LmRhdGEodGhpcywiX19jbGFzc05hbWVfXyIsdGhpcy5jbGFzc05hbWUpO30KdGhpcy5jbGFzc05h
bWU9dGhpcy5jbGFzc05hbWV8fHZhbHVlPT09ZmFsc2U/IiI6alF1ZXJ5LmRhdGEodGhpcywiX19j
bGFzc05hbWVfXyIpfHwiIjt9fSk7fSxoYXNDbGFzczpmdW5jdGlvbihzZWxlY3Rvcil7dmFyIGNs
YXNzTmFtZT0iICIrc2VsZWN0b3IrIiAiO2Zvcih2YXIgaT0wLGw9dGhpcy5sZW5ndGg7aTxsO2kr
Kyl7aWYoKCIgIit0aGlzW2ldLmNsYXNzTmFtZSsiICIpLnJlcGxhY2UocmNsYXNzLCIgIikuaW5k
ZXhPZihjbGFzc05hbWUpPi0xKXtyZXR1cm4gdHJ1ZTt9fQpyZXR1cm4gZmFsc2U7fSx2YWw6ZnVu
Y3Rpb24odmFsdWUpe2lmKHZhbHVlPT09dW5kZWZpbmVkKXt2YXIgZWxlbT10aGlzWzBdO2lmKGVs
ZW0pe2lmKGpRdWVyeS5ub2RlTmFtZShlbGVtLCJvcHRpb24iKSl7cmV0dXJuKGVsZW0uYXR0cmli
dXRlcy52YWx1ZXx8e30pLnNwZWNpZmllZD9lbGVtLnZhbHVlOmVsZW0udGV4dDt9CmlmKGpRdWVy
eS5ub2RlTmFtZShlbGVtLCJzZWxlY3QiKSl7dmFyIGluZGV4PWVsZW0uc2VsZWN0ZWRJbmRleCx2
YWx1ZXM9W10sb3B0aW9ucz1lbGVtLm9wdGlvbnMsb25lPWVsZW0udHlwZT09PSJzZWxlY3Qtb25l
IjtpZihpbmRleDwwKXtyZXR1cm4gbnVsbDt9CmZvcih2YXIgaT1vbmU/aW5kZXg6MCxtYXg9b25l
P2luZGV4KzE6b3B0aW9ucy5sZW5ndGg7aTxtYXg7aSsrKXt2YXIgb3B0aW9uPW9wdGlvbnNbaV07
aWYob3B0aW9uLnNlbGVjdGVkKXt2YWx1ZT1qUXVlcnkob3B0aW9uKS52YWwoKTtpZihvbmUpe3Jl
dHVybiB2YWx1ZTt9CnZhbHVlcy5wdXNoKHZhbHVlKTt9fQpyZXR1cm4gdmFsdWVzO30KaWYocnJh
ZGlvY2hlY2sudGVzdChlbGVtLnR5cGUpJiYhalF1ZXJ5LnN1cHBvcnQuY2hlY2tPbil7cmV0dXJu
IGVsZW0uZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpPT09bnVsbD8ib24iOmVsZW0udmFsdWU7fQpyZXR1
cm4oZWxlbS52YWx1ZXx8IiIpLnJlcGxhY2UocnJldHVybiwiIik7fQpyZXR1cm4gdW5kZWZpbmVk
O30KdmFyIGlzRnVuY3Rpb249alF1ZXJ5LmlzRnVuY3Rpb24odmFsdWUpO3JldHVybiB0aGlzLmVh
Y2goZnVuY3Rpb24oaSl7dmFyIHNlbGY9alF1ZXJ5KHRoaXMpLHZhbD12YWx1ZTtpZih0aGlzLm5v
ZGVUeXBlIT09MSl7cmV0dXJuO30KaWYoaXNGdW5jdGlvbil7dmFsPXZhbHVlLmNhbGwodGhpcyxp
LHNlbGYudmFsKCkpO30KaWYodHlwZW9mIHZhbD09PSJudW1iZXIiKXt2YWwrPSIiO30KaWYoalF1
ZXJ5LmlzQXJyYXkodmFsKSYmcnJhZGlvY2hlY2sudGVzdCh0aGlzLnR5cGUpKXt0aGlzLmNoZWNr
ZWQ9alF1ZXJ5LmluQXJyYXkoc2VsZi52YWwoKSx2YWwpPj0wO31lbHNlIGlmKGpRdWVyeS5ub2Rl
TmFtZSh0aGlzLCJzZWxlY3QiKSl7dmFyIHZhbHVlcz1qUXVlcnkubWFrZUFycmF5KHZhbCk7alF1
ZXJ5KCJvcHRpb24iLHRoaXMpLmVhY2goZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGVkPWpRdWVyeS5p
bkFycmF5KGpRdWVyeSh0aGlzKS52YWwoKSx2YWx1ZXMpPj0wO30pO2lmKCF2YWx1ZXMubGVuZ3Ro
KXt0aGlzLnNlbGVjdGVkSW5kZXg9LTE7fX1lbHNle3RoaXMudmFsdWU9dmFsO319KTt9fSk7alF1
ZXJ5LmV4dGVuZCh7YXR0ckZuOnt2YWw6dHJ1ZSxjc3M6dHJ1ZSxodG1sOnRydWUsdGV4dDp0cnVl
LGRhdGE6dHJ1ZSx3aWR0aDp0cnVlLGhlaWdodDp0cnVlLG9mZnNldDp0cnVlfSxhdHRyOmZ1bmN0
aW9uKGVsZW0sbmFtZSx2YWx1ZSxwYXNzKXtpZighZWxlbXx8ZWxlbS5ub2RlVHlwZT09PTN8fGVs
ZW0ubm9kZVR5cGU9PT04KXtyZXR1cm4gdW5kZWZpbmVkO30KaWYocGFzcyYmbmFtZSBpbiBqUXVl
cnkuYXR0ckZuKXtyZXR1cm4galF1ZXJ5KGVsZW0pW25hbWVdKHZhbHVlKTt9CnZhciBub3R4bWw9
ZWxlbS5ub2RlVHlwZSE9PTF8fCFqUXVlcnkuaXNYTUxEb2MoZWxlbSksc2V0PXZhbHVlIT09dW5k
ZWZpbmVkO25hbWU9bm90eG1sJiZqUXVlcnkucHJvcHNbbmFtZV18fG5hbWU7aWYoZWxlbS5ub2Rl
VHlwZT09PTEpe3ZhciBzcGVjaWFsPXJzcGVjaWFsdXJsLnRlc3QobmFtZSk7aWYobmFtZT09PSJz
ZWxlY3RlZCImJiFqUXVlcnkuc3VwcG9ydC5vcHRTZWxlY3RlZCl7dmFyIHBhcmVudD1lbGVtLnBh
cmVudE5vZGU7aWYocGFyZW50KXtwYXJlbnQuc2VsZWN0ZWRJbmRleDtpZihwYXJlbnQucGFyZW50
Tm9kZSl7cGFyZW50LnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleDt9fX0KaWYobmFtZSBpbiBlbGVt
JiZub3R4bWwmJiFzcGVjaWFsKXtpZihzZXQpe2lmKG5hbWU9PT0idHlwZSImJnJ0eXBlLnRlc3Qo
ZWxlbS5ub2RlTmFtZSkmJmVsZW0ucGFyZW50Tm9kZSl7alF1ZXJ5LmVycm9yKCJ0eXBlIHByb3Bl
cnR5IGNhbid0IGJlIGNoYW5nZWQiKTt9CmVsZW1bbmFtZV09dmFsdWU7fQppZihqUXVlcnkubm9k
ZU5hbWUoZWxlbSwiZm9ybSIpJiZlbGVtLmdldEF0dHJpYnV0ZU5vZGUobmFtZSkpe3JldHVybiBl
bGVtLmdldEF0dHJpYnV0ZU5vZGUobmFtZSkubm9kZVZhbHVlO30KaWYobmFtZT09PSJ0YWJJbmRl
eCIpe3ZhciBhdHRyaWJ1dGVOb2RlPWVsZW0uZ2V0QXR0cmlidXRlTm9kZSgidGFiSW5kZXgiKTty
ZXR1cm4gYXR0cmlidXRlTm9kZSYmYXR0cmlidXRlTm9kZS5zcGVjaWZpZWQ/YXR0cmlidXRlTm9k
ZS52YWx1ZTpyZm9jdXNhYmxlLnRlc3QoZWxlbS5ub2RlTmFtZSl8fHJjbGlja2FibGUudGVzdChl
bGVtLm5vZGVOYW1lKSYmZWxlbS5ocmVmPzA6dW5kZWZpbmVkO30KcmV0dXJuIGVsZW1bbmFtZV07
fQppZighalF1ZXJ5LnN1cHBvcnQuc3R5bGUmJm5vdHhtbCYmbmFtZT09PSJzdHlsZSIpe2lmKHNl
dCl7ZWxlbS5zdHlsZS5jc3NUZXh0PSIiK3ZhbHVlO30KcmV0dXJuIGVsZW0uc3R5bGUuY3NzVGV4
dDt9CmlmKHNldCl7ZWxlbS5zZXRBdHRyaWJ1dGUobmFtZSwiIit2YWx1ZSk7fQp2YXIgYXR0cj0h
alF1ZXJ5LnN1cHBvcnQuaHJlZk5vcm1hbGl6ZWQmJm5vdHhtbCYmc3BlY2lhbD9lbGVtLmdldEF0
dHJpYnV0ZShuYW1lLDIpOmVsZW0uZ2V0QXR0cmlidXRlKG5hbWUpO3JldHVybiBhdHRyPT09bnVs
bD91bmRlZmluZWQ6YXR0cjt9CnJldHVybiBqUXVlcnkuc3R5bGUoZWxlbSxuYW1lLHZhbHVlKTt9
fSk7dmFyIHJuYW1lc3BhY2VzPS9cLiguKikkLyxmY2xlYW51cD1mdW5jdGlvbihubSl7cmV0dXJu
IG5tLnJlcGxhY2UoL1teXHdcc1wuXHxgXS9nLGZ1bmN0aW9uKGNoKXtyZXR1cm4iXFwiK2NoO30p
O307alF1ZXJ5LmV2ZW50PXthZGQ6ZnVuY3Rpb24oZWxlbSx0eXBlcyxoYW5kbGVyLGRhdGEpe2lm
KGVsZW0ubm9kZVR5cGU9PT0zfHxlbGVtLm5vZGVUeXBlPT09OCl7cmV0dXJuO30KaWYoZWxlbS5z
ZXRJbnRlcnZhbCYmKGVsZW0hPT13aW5kb3cmJiFlbGVtLmZyYW1lRWxlbWVudCkpe2VsZW09d2lu
ZG93O30KdmFyIGhhbmRsZU9iakluLGhhbmRsZU9iajtpZihoYW5kbGVyLmhhbmRsZXIpe2hhbmRs
ZU9iakluPWhhbmRsZXI7aGFuZGxlcj1oYW5kbGVPYmpJbi5oYW5kbGVyO30KaWYoIWhhbmRsZXIu
Z3VpZCl7aGFuZGxlci5ndWlkPWpRdWVyeS5ndWlkKys7fQp2YXIgZWxlbURhdGE9alF1ZXJ5LmRh
dGEoZWxlbSk7aWYoIWVsZW1EYXRhKXtyZXR1cm47fQp2YXIgZXZlbnRzPWVsZW1EYXRhLmV2ZW50
cz1lbGVtRGF0YS5ldmVudHN8fHt9LGV2ZW50SGFuZGxlPWVsZW1EYXRhLmhhbmRsZSxldmVudEhh
bmRsZTtpZighZXZlbnRIYW5kbGUpe2VsZW1EYXRhLmhhbmRsZT1ldmVudEhhbmRsZT1mdW5jdGlv
bigpe3JldHVybiB0eXBlb2YgalF1ZXJ5IT09InVuZGVmaW5lZCImJiFqUXVlcnkuZXZlbnQudHJp
Z2dlcmVkP2pRdWVyeS5ldmVudC5oYW5kbGUuYXBwbHkoZXZlbnRIYW5kbGUuZWxlbSxhcmd1bWVu
dHMpOnVuZGVmaW5lZDt9O30KZXZlbnRIYW5kbGUuZWxlbT1lbGVtO3R5cGVzPXR5cGVzLnNwbGl0
KCIgIik7dmFyIHR5cGUsaT0wLG5hbWVzcGFjZXM7d2hpbGUoKHR5cGU9dHlwZXNbaSsrXSkpe2hh
bmRsZU9iaj1oYW5kbGVPYmpJbj9qUXVlcnkuZXh0ZW5kKHt9LGhhbmRsZU9iakluKTp7aGFuZGxl
cjpoYW5kbGVyLGRhdGE6ZGF0YX07aWYodHlwZS5pbmRleE9mKCIuIik+LTEpe25hbWVzcGFjZXM9
dHlwZS5zcGxpdCgiLiIpO3R5cGU9bmFtZXNwYWNlcy5zaGlmdCgpO2hhbmRsZU9iai5uYW1lc3Bh
Y2U9bmFtZXNwYWNlcy5zbGljZSgwKS5zb3J0KCkuam9pbigiLiIpO31lbHNle25hbWVzcGFjZXM9
W107aGFuZGxlT2JqLm5hbWVzcGFjZT0iIjt9CmhhbmRsZU9iai50eXBlPXR5cGU7aGFuZGxlT2Jq
Lmd1aWQ9aGFuZGxlci5ndWlkO3ZhciBoYW5kbGVycz1ldmVudHNbdHlwZV0sc3BlY2lhbD1qUXVl
cnkuZXZlbnQuc3BlY2lhbFt0eXBlXXx8e307aWYoIWhhbmRsZXJzKXtoYW5kbGVycz1ldmVudHNb
dHlwZV09W107aWYoIXNwZWNpYWwuc2V0dXB8fHNwZWNpYWwuc2V0dXAuY2FsbChlbGVtLGRhdGEs
bmFtZXNwYWNlcyxldmVudEhhbmRsZSk9PT1mYWxzZSl7aWYoZWxlbS5hZGRFdmVudExpc3RlbmVy
KXtlbGVtLmFkZEV2ZW50TGlzdGVuZXIodHlwZSxldmVudEhhbmRsZSxmYWxzZSk7fWVsc2UgaWYo
ZWxlbS5hdHRhY2hFdmVudCl7ZWxlbS5hdHRhY2hFdmVudCgib24iK3R5cGUsZXZlbnRIYW5kbGUp
O319fQppZihzcGVjaWFsLmFkZCl7c3BlY2lhbC5hZGQuY2FsbChlbGVtLGhhbmRsZU9iaik7aWYo
IWhhbmRsZU9iai5oYW5kbGVyLmd1aWQpe2hhbmRsZU9iai5oYW5kbGVyLmd1aWQ9aGFuZGxlci5n
dWlkO319CmhhbmRsZXJzLnB1c2goaGFuZGxlT2JqKTtqUXVlcnkuZXZlbnQuZ2xvYmFsW3R5cGVd
PXRydWU7fQplbGVtPW51bGw7fSxnbG9iYWw6e30scmVtb3ZlOmZ1bmN0aW9uKGVsZW0sdHlwZXMs
aGFuZGxlcixwb3Mpe2lmKGVsZW0ubm9kZVR5cGU9PT0zfHxlbGVtLm5vZGVUeXBlPT09OCl7cmV0
dXJuO30KdmFyIHJldCx0eXBlLGZuLGk9MCxhbGwsbmFtZXNwYWNlcyxuYW1lc3BhY2Usc3BlY2lh
bCxldmVudFR5cGUsaGFuZGxlT2JqLG9yaWdUeXBlLGVsZW1EYXRhPWpRdWVyeS5kYXRhKGVsZW0p
LGV2ZW50cz1lbGVtRGF0YSYmZWxlbURhdGEuZXZlbnRzO2lmKCFlbGVtRGF0YXx8IWV2ZW50cyl7
cmV0dXJuO30KaWYodHlwZXMmJnR5cGVzLnR5cGUpe2hhbmRsZXI9dHlwZXMuaGFuZGxlcjt0eXBl
cz10eXBlcy50eXBlO30KaWYoIXR5cGVzfHx0eXBlb2YgdHlwZXM9PT0ic3RyaW5nIiYmdHlwZXMu
Y2hhckF0KDApPT09Ii4iKXt0eXBlcz10eXBlc3x8IiI7Zm9yKHR5cGUgaW4gZXZlbnRzKXtqUXVl
cnkuZXZlbnQucmVtb3ZlKGVsZW0sdHlwZSt0eXBlcyk7fQpyZXR1cm47fQp0eXBlcz10eXBlcy5z
cGxpdCgiICIpO3doaWxlKCh0eXBlPXR5cGVzW2krK10pKXtvcmlnVHlwZT10eXBlO2hhbmRsZU9i
aj1udWxsO2FsbD10eXBlLmluZGV4T2YoIi4iKTwwO25hbWVzcGFjZXM9W107aWYoIWFsbCl7bmFt
ZXNwYWNlcz10eXBlLnNwbGl0KCIuIik7dHlwZT1uYW1lc3BhY2VzLnNoaWZ0KCk7bmFtZXNwYWNl
PW5ldyBSZWdFeHAoIihefFxcLikiKwpqUXVlcnkubWFwKG5hbWVzcGFjZXMuc2xpY2UoMCkuc29y
dCgpLGZjbGVhbnVwKS5qb2luKCJcXC4oPzouKlxcLik/IikrIihcXC58JCkiKX0KZXZlbnRUeXBl
PWV2ZW50c1t0eXBlXTtpZighZXZlbnRUeXBlKXtjb250aW51ZTt9CmlmKCFoYW5kbGVyKXtmb3Io
dmFyIGo9MDtqPGV2ZW50VHlwZS5sZW5ndGg7aisrKXtoYW5kbGVPYmo9ZXZlbnRUeXBlW2pdO2lm
KGFsbHx8bmFtZXNwYWNlLnRlc3QoaGFuZGxlT2JqLm5hbWVzcGFjZSkpe2pRdWVyeS5ldmVudC5y
ZW1vdmUoZWxlbSxvcmlnVHlwZSxoYW5kbGVPYmouaGFuZGxlcixqKTtldmVudFR5cGUuc3BsaWNl
KGotLSwxKTt9fQpjb250aW51ZTt9CnNwZWNpYWw9alF1ZXJ5LmV2ZW50LnNwZWNpYWxbdHlwZV18
fHt9O2Zvcih2YXIgaj1wb3N8fDA7ajxldmVudFR5cGUubGVuZ3RoO2orKyl7aGFuZGxlT2JqPWV2
ZW50VHlwZVtqXTtpZihoYW5kbGVyLmd1aWQ9PT1oYW5kbGVPYmouZ3VpZCl7aWYoYWxsfHxuYW1l
c3BhY2UudGVzdChoYW5kbGVPYmoubmFtZXNwYWNlKSl7aWYocG9zPT1udWxsKXtldmVudFR5cGUu
c3BsaWNlKGotLSwxKTt9CmlmKHNwZWNpYWwucmVtb3ZlKXtzcGVjaWFsLnJlbW92ZS5jYWxsKGVs
ZW0saGFuZGxlT2JqKTt9fQppZihwb3MhPW51bGwpe2JyZWFrO319fQppZihldmVudFR5cGUubGVu
Z3RoPT09MHx8cG9zIT1udWxsJiZldmVudFR5cGUubGVuZ3RoPT09MSl7aWYoIXNwZWNpYWwudGVh
cmRvd258fHNwZWNpYWwudGVhcmRvd24uY2FsbChlbGVtLG5hbWVzcGFjZXMpPT09ZmFsc2Upe3Jl
bW92ZUV2ZW50KGVsZW0sdHlwZSxlbGVtRGF0YS5oYW5kbGUpO30KcmV0PW51bGw7ZGVsZXRlIGV2
ZW50c1t0eXBlXTt9fQppZihqUXVlcnkuaXNFbXB0eU9iamVjdChldmVudHMpKXt2YXIgaGFuZGxl
PWVsZW1EYXRhLmhhbmRsZTtpZihoYW5kbGUpe2hhbmRsZS5lbGVtPW51bGw7fQpkZWxldGUgZWxl
bURhdGEuZXZlbnRzO2RlbGV0ZSBlbGVtRGF0YS5oYW5kbGU7aWYoalF1ZXJ5LmlzRW1wdHlPYmpl
Y3QoZWxlbURhdGEpKXtqUXVlcnkucmVtb3ZlRGF0YShlbGVtKTt9fX0sdHJpZ2dlcjpmdW5jdGlv
bihldmVudCxkYXRhLGVsZW0pe3ZhciB0eXBlPWV2ZW50LnR5cGV8fGV2ZW50LGJ1YmJsaW5nPWFy
Z3VtZW50c1szXTtpZighYnViYmxpbmcpe2V2ZW50PXR5cGVvZiBldmVudD09PSJvYmplY3QiP2V2
ZW50W2V4cGFuZG9dP2V2ZW50OmpRdWVyeS5leHRlbmQoalF1ZXJ5LkV2ZW50KHR5cGUpLGV2ZW50
KTpqUXVlcnkuRXZlbnQodHlwZSk7aWYodHlwZS5pbmRleE9mKCIhIik+PTApe2V2ZW50LnR5cGU9
dHlwZT10eXBlLnNsaWNlKDAsLTEpO2V2ZW50LmV4Y2x1c2l2ZT10cnVlO30KaWYoIWVsZW0pe2V2
ZW50LnN0b3BQcm9wYWdhdGlvbigpO2lmKGpRdWVyeS5ldmVudC5nbG9iYWxbdHlwZV0pe2pRdWVy
eS5lYWNoKGpRdWVyeS5jYWNoZSxmdW5jdGlvbigpe2lmKHRoaXMuZXZlbnRzJiZ0aGlzLmV2ZW50
c1t0eXBlXSl7alF1ZXJ5LmV2ZW50LnRyaWdnZXIoZXZlbnQsZGF0YSx0aGlzLmhhbmRsZS5lbGVt
KTt9fSk7fX0KaWYoIWVsZW18fGVsZW0ubm9kZVR5cGU9PT0zfHxlbGVtLm5vZGVUeXBlPT09OCl7
cmV0dXJuIHVuZGVmaW5lZDt9CmV2ZW50LnJlc3VsdD11bmRlZmluZWQ7ZXZlbnQudGFyZ2V0PWVs
ZW07ZGF0YT1qUXVlcnkubWFrZUFycmF5KGRhdGEpO2RhdGEudW5zaGlmdChldmVudCk7fQpldmVu
dC5jdXJyZW50VGFyZ2V0PWVsZW07dmFyIGhhbmRsZT1qUXVlcnkuZGF0YShlbGVtLCJoYW5kbGUi
KTtpZihoYW5kbGUpe2hhbmRsZS5hcHBseShlbGVtLGRhdGEpO30KdmFyIHBhcmVudD1lbGVtLnBh
cmVudE5vZGV8fGVsZW0ub3duZXJEb2N1bWVudDt0cnl7aWYoIShlbGVtJiZlbGVtLm5vZGVOYW1l
JiZqUXVlcnkubm9EYXRhW2VsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pKXtpZihlbGVtWyJv
biIrdHlwZV0mJmVsZW1bIm9uIit0eXBlXS5hcHBseShlbGVtLGRhdGEpPT09ZmFsc2Upe2V2ZW50
LnJlc3VsdD1mYWxzZTt9fX1jYXRjaChlKXt9CmlmKCFldmVudC5pc1Byb3BhZ2F0aW9uU3RvcHBl
ZCgpJiZwYXJlbnQpe2pRdWVyeS5ldmVudC50cmlnZ2VyKGV2ZW50LGRhdGEscGFyZW50LHRydWUp
O31lbHNlIGlmKCFldmVudC5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7dmFyIHRhcmdldD1ldmVudC50
YXJnZXQsb2xkLGlzQ2xpY2s9alF1ZXJ5Lm5vZGVOYW1lKHRhcmdldCwiYSIpJiZ0eXBlPT09ImNs
aWNrIixzcGVjaWFsPWpRdWVyeS5ldmVudC5zcGVjaWFsW3R5cGVdfHx7fTtpZigoIXNwZWNpYWwu
X2RlZmF1bHR8fHNwZWNpYWwuX2RlZmF1bHQuY2FsbChlbGVtLGV2ZW50KT09PWZhbHNlKSYmIWlz
Q2xpY2smJiEodGFyZ2V0JiZ0YXJnZXQubm9kZU5hbWUmJmpRdWVyeS5ub0RhdGFbdGFyZ2V0Lm5v
ZGVOYW1lLnRvTG93ZXJDYXNlKCldKSl7dHJ5e2lmKHRhcmdldFt0eXBlXSl7b2xkPXRhcmdldFsi
b24iK3R5cGVdO2lmKG9sZCl7dGFyZ2V0WyJvbiIrdHlwZV09bnVsbDt9CmpRdWVyeS5ldmVudC50
cmlnZ2VyZWQ9dHJ1ZTt0YXJnZXRbdHlwZV0oKTt9fWNhdGNoKGUpe30KaWYob2xkKXt0YXJnZXRb
Im9uIit0eXBlXT1vbGQ7fQpqUXVlcnkuZXZlbnQudHJpZ2dlcmVkPWZhbHNlO319fSxoYW5kbGU6
ZnVuY3Rpb24oZXZlbnQpe3ZhciBhbGwsaGFuZGxlcnMsbmFtZXNwYWNlcyxuYW1lc3BhY2UsZXZl
bnRzO2V2ZW50PWFyZ3VtZW50c1swXT1qUXVlcnkuZXZlbnQuZml4KGV2ZW50fHx3aW5kb3cuZXZl
bnQpO2V2ZW50LmN1cnJlbnRUYXJnZXQ9dGhpczthbGw9ZXZlbnQudHlwZS5pbmRleE9mKCIuIik8
MCYmIWV2ZW50LmV4Y2x1c2l2ZTtpZighYWxsKXtuYW1lc3BhY2VzPWV2ZW50LnR5cGUuc3BsaXQo
Ii4iKTtldmVudC50eXBlPW5hbWVzcGFjZXMuc2hpZnQoKTtuYW1lc3BhY2U9bmV3IFJlZ0V4cCgi
KF58XFwuKSIrbmFtZXNwYWNlcy5zbGljZSgwKS5zb3J0KCkuam9pbigiXFwuKD86LipcXC4pPyIp
KyIoXFwufCQpIik7fQp2YXIgZXZlbnRzPWpRdWVyeS5kYXRhKHRoaXMsImV2ZW50cyIpLGhhbmRs
ZXJzPWV2ZW50c1tldmVudC50eXBlXTtpZihldmVudHMmJmhhbmRsZXJzKXtoYW5kbGVycz1oYW5k
bGVycy5zbGljZSgwKTtmb3IodmFyIGo9MCxsPWhhbmRsZXJzLmxlbmd0aDtqPGw7aisrKXt2YXIg
aGFuZGxlT2JqPWhhbmRsZXJzW2pdO2lmKGFsbHx8bmFtZXNwYWNlLnRlc3QoaGFuZGxlT2JqLm5h
bWVzcGFjZSkpe2V2ZW50LmhhbmRsZXI9aGFuZGxlT2JqLmhhbmRsZXI7ZXZlbnQuZGF0YT1oYW5k
bGVPYmouZGF0YTtldmVudC5oYW5kbGVPYmo9aGFuZGxlT2JqO3ZhciByZXQ9aGFuZGxlT2JqLmhh
bmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO2lmKHJldCE9PXVuZGVmaW5lZCl7ZXZlbnQucmVz
dWx0PXJldDtpZihyZXQ9PT1mYWxzZSl7ZXZlbnQucHJldmVudERlZmF1bHQoKTtldmVudC5zdG9w
UHJvcGFnYXRpb24oKTt9fQppZihldmVudC5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgp
KXticmVhazt9fX19CnJldHVybiBldmVudC5yZXN1bHQ7fSxwcm9wczoiYWx0S2V5IGF0dHJDaGFu
Z2UgYXR0ck5hbWUgYnViYmxlcyBidXR0b24gY2FuY2VsYWJsZSBjaGFyQ29kZSBjbGllbnRYIGNs
aWVudFkgY3RybEtleSBjdXJyZW50VGFyZ2V0IGRhdGEgZGV0YWlsIGV2ZW50UGhhc2UgZnJvbUVs
ZW1lbnQgaGFuZGxlciBrZXlDb2RlIGxheWVyWCBsYXllclkgbWV0YUtleSBuZXdWYWx1ZSBvZmZz
ZXRYIG9mZnNldFkgb3JpZ2luYWxUYXJnZXQgcGFnZVggcGFnZVkgcHJldlZhbHVlIHJlbGF0ZWRO
b2RlIHJlbGF0ZWRUYXJnZXQgc2NyZWVuWCBzY3JlZW5ZIHNoaWZ0S2V5IHNyY0VsZW1lbnQgdGFy
Z2V0IHRvRWxlbWVudCB2aWV3IHdoZWVsRGVsdGEgd2hpY2giLnNwbGl0KCIgIiksZml4OmZ1bmN0
aW9uKGV2ZW50KXtpZihldmVudFtleHBhbmRvXSl7cmV0dXJuIGV2ZW50O30KdmFyIG9yaWdpbmFs
RXZlbnQ9ZXZlbnQ7ZXZlbnQ9alF1ZXJ5LkV2ZW50KG9yaWdpbmFsRXZlbnQpO2Zvcih2YXIgaT10
aGlzLnByb3BzLmxlbmd0aCxwcm9wO2k7KXtwcm9wPXRoaXMucHJvcHNbLS1pXTtldmVudFtwcm9w
XT1vcmlnaW5hbEV2ZW50W3Byb3BdO30KaWYoIWV2ZW50LnRhcmdldCl7ZXZlbnQudGFyZ2V0PWV2
ZW50LnNyY0VsZW1lbnR8fGRvY3VtZW50O30KaWYoZXZlbnQudGFyZ2V0Lm5vZGVUeXBlPT09Myl7
ZXZlbnQudGFyZ2V0PWV2ZW50LnRhcmdldC5wYXJlbnROb2RlO30KaWYoIWV2ZW50LnJlbGF0ZWRU
YXJnZXQmJmV2ZW50LmZyb21FbGVtZW50KXtldmVudC5yZWxhdGVkVGFyZ2V0PWV2ZW50LmZyb21F
bGVtZW50PT09ZXZlbnQudGFyZ2V0P2V2ZW50LnRvRWxlbWVudDpldmVudC5mcm9tRWxlbWVudDt9
CmlmKGV2ZW50LnBhZ2VYPT1udWxsJiZldmVudC5jbGllbnRYIT1udWxsKXt2YXIgZG9jPWRvY3Vt
ZW50LmRvY3VtZW50RWxlbWVudCxib2R5PWRvY3VtZW50LmJvZHk7ZXZlbnQucGFnZVg9ZXZlbnQu
Y2xpZW50WCsoZG9jJiZkb2Muc2Nyb2xsTGVmdHx8Ym9keSYmYm9keS5zY3JvbGxMZWZ0fHwwKS0o
ZG9jJiZkb2MuY2xpZW50TGVmdHx8Ym9keSYmYm9keS5jbGllbnRMZWZ0fHwwKTtldmVudC5wYWdl
WT1ldmVudC5jbGllbnRZKyhkb2MmJmRvYy5zY3JvbGxUb3B8fGJvZHkmJmJvZHkuc2Nyb2xsVG9w
fHwwKS0oZG9jJiZkb2MuY2xpZW50VG9wfHxib2R5JiZib2R5LmNsaWVudFRvcHx8MCk7fQppZigh
ZXZlbnQud2hpY2gmJigoZXZlbnQuY2hhckNvZGV8fGV2ZW50LmNoYXJDb2RlPT09MCk/ZXZlbnQu
Y2hhckNvZGU6ZXZlbnQua2V5Q29kZSkpe2V2ZW50LndoaWNoPWV2ZW50LmNoYXJDb2RlfHxldmVu
dC5rZXlDb2RlO30KaWYoIWV2ZW50Lm1ldGFLZXkmJmV2ZW50LmN0cmxLZXkpe2V2ZW50Lm1ldGFL
ZXk9ZXZlbnQuY3RybEtleTt9CmlmKCFldmVudC53aGljaCYmZXZlbnQuYnV0dG9uIT09dW5kZWZp
bmVkKXtldmVudC53aGljaD0oZXZlbnQuYnV0dG9uJjE/MTooZXZlbnQuYnV0dG9uJjI/MzooZXZl
bnQuYnV0dG9uJjQ/MjowKSkpO30KcmV0dXJuIGV2ZW50O30sZ3VpZDoxRTgscHJveHk6alF1ZXJ5
LnByb3h5LHNwZWNpYWw6e3JlYWR5OntzZXR1cDpqUXVlcnkuYmluZFJlYWR5LHRlYXJkb3duOmpR
dWVyeS5ub29wfSxsaXZlOnthZGQ6ZnVuY3Rpb24oaGFuZGxlT2JqKXtqUXVlcnkuZXZlbnQuYWRk
KHRoaXMsaGFuZGxlT2JqLm9yaWdUeXBlLGpRdWVyeS5leHRlbmQoe30saGFuZGxlT2JqLHtoYW5k
bGVyOmxpdmVIYW5kbGVyfSkpO30scmVtb3ZlOmZ1bmN0aW9uKGhhbmRsZU9iail7dmFyIHJlbW92
ZT10cnVlLHR5cGU9aGFuZGxlT2JqLm9yaWdUeXBlLnJlcGxhY2Uocm5hbWVzcGFjZXMsIiIpO2pR
dWVyeS5lYWNoKGpRdWVyeS5kYXRhKHRoaXMsImV2ZW50cyIpLmxpdmV8fFtdLGZ1bmN0aW9uKCl7
aWYodHlwZT09PXRoaXMub3JpZ1R5cGUucmVwbGFjZShybmFtZXNwYWNlcywiIikpe3JlbW92ZT1m
YWxzZTtyZXR1cm4gZmFsc2U7fX0pO2lmKHJlbW92ZSl7alF1ZXJ5LmV2ZW50LnJlbW92ZSh0aGlz
LGhhbmRsZU9iai5vcmlnVHlwZSxsaXZlSGFuZGxlcik7fX19LGJlZm9yZXVubG9hZDp7c2V0dXA6
ZnVuY3Rpb24oZGF0YSxuYW1lc3BhY2VzLGV2ZW50SGFuZGxlKXtpZih0aGlzLnNldEludGVydmFs
KXt0aGlzLm9uYmVmb3JldW5sb2FkPWV2ZW50SGFuZGxlO30KcmV0dXJuIGZhbHNlO30sdGVhcmRv
d246ZnVuY3Rpb24obmFtZXNwYWNlcyxldmVudEhhbmRsZSl7aWYodGhpcy5vbmJlZm9yZXVubG9h
ZD09PWV2ZW50SGFuZGxlKXt0aGlzLm9uYmVmb3JldW5sb2FkPW51bGw7fX19fX07dmFyIHJlbW92
ZUV2ZW50PWRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXI/ZnVuY3Rpb24oZWxlbSx0eXBlLGhh
bmRsZSl7ZWxlbS5yZW1vdmVFdmVudExpc3RlbmVyKHR5cGUsaGFuZGxlLGZhbHNlKTt9OmZ1bmN0
aW9uKGVsZW0sdHlwZSxoYW5kbGUpe2VsZW0uZGV0YWNoRXZlbnQoIm9uIit0eXBlLGhhbmRsZSk7
fTtqUXVlcnkuRXZlbnQ9ZnVuY3Rpb24oc3JjKXtpZighdGhpcy5wcmV2ZW50RGVmYXVsdCl7cmV0
dXJuIG5ldyBqUXVlcnkuRXZlbnQoc3JjKTt9CmlmKHNyYyYmc3JjLnR5cGUpe3RoaXMub3JpZ2lu
YWxFdmVudD1zcmM7dGhpcy50eXBlPXNyYy50eXBlO31lbHNle3RoaXMudHlwZT1zcmM7fQp0aGlz
LnRpbWVTdGFtcD1ub3coKTt0aGlzW2V4cGFuZG9dPXRydWU7fTtmdW5jdGlvbiByZXR1cm5GYWxz
ZSgpe3JldHVybiBmYWxzZTt9CmZ1bmN0aW9uIHJldHVyblRydWUoKXtyZXR1cm4gdHJ1ZTt9CmpR
dWVyeS5FdmVudC5wcm90b3R5cGU9e3ByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dGhpcy5pc0Rl
ZmF1bHRQcmV2ZW50ZWQ9cmV0dXJuVHJ1ZTt2YXIgZT10aGlzLm9yaWdpbmFsRXZlbnQ7aWYoIWUp
e3JldHVybjt9CmlmKGUucHJldmVudERlZmF1bHQpe2UucHJldmVudERlZmF1bHQoKTt9CmUucmV0
dXJuVmFsdWU9ZmFsc2U7fSxzdG9wUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt0aGlzLmlzUHJvcGFn
YXRpb25TdG9wcGVkPXJldHVyblRydWU7dmFyIGU9dGhpcy5vcmlnaW5hbEV2ZW50O2lmKCFlKXty
ZXR1cm47fQppZihlLnN0b3BQcm9wYWdhdGlvbil7ZS5zdG9wUHJvcGFnYXRpb24oKTt9CmUuY2Fu
Y2VsQnViYmxlPXRydWU7fSxzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt0aGlz
LmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkPXJldHVyblRydWU7dGhpcy5zdG9wUHJvcGFn
YXRpb24oKTt9LGlzRGVmYXVsdFByZXZlbnRlZDpyZXR1cm5GYWxzZSxpc1Byb3BhZ2F0aW9uU3Rv
cHBlZDpyZXR1cm5GYWxzZSxpc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZDpyZXR1cm5GYWxz
ZX07dmFyIHdpdGhpbkVsZW1lbnQ9ZnVuY3Rpb24oZXZlbnQpe3ZhciBwYXJlbnQ9ZXZlbnQucmVs
YXRlZFRhcmdldDt0cnl7d2hpbGUocGFyZW50JiZwYXJlbnQhPT10aGlzKXtwYXJlbnQ9cGFyZW50
LnBhcmVudE5vZGU7fQppZihwYXJlbnQhPT10aGlzKXtldmVudC50eXBlPWV2ZW50LmRhdGE7alF1
ZXJ5LmV2ZW50LmhhbmRsZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7fX1jYXRjaChlKXt9fSxkZWxl
Z2F0ZT1mdW5jdGlvbihldmVudCl7ZXZlbnQudHlwZT1ldmVudC5kYXRhO2pRdWVyeS5ldmVudC5o
YW5kbGUuYXBwbHkodGhpcyxhcmd1bWVudHMpO307alF1ZXJ5LmVhY2goe21vdXNlZW50ZXI6Im1v
dXNlb3ZlciIsbW91c2VsZWF2ZToibW91c2VvdXQifSxmdW5jdGlvbihvcmlnLGZpeCl7alF1ZXJ5
LmV2ZW50LnNwZWNpYWxbb3JpZ109e3NldHVwOmZ1bmN0aW9uKGRhdGEpe2pRdWVyeS5ldmVudC5h
ZGQodGhpcyxmaXgsZGF0YSYmZGF0YS5zZWxlY3Rvcj9kZWxlZ2F0ZTp3aXRoaW5FbGVtZW50LG9y
aWcpO30sdGVhcmRvd246ZnVuY3Rpb24oZGF0YSl7alF1ZXJ5LmV2ZW50LnJlbW92ZSh0aGlzLGZp
eCxkYXRhJiZkYXRhLnNlbGVjdG9yP2RlbGVnYXRlOndpdGhpbkVsZW1lbnQpO319O30pO2lmKCFq
UXVlcnkuc3VwcG9ydC5zdWJtaXRCdWJibGVzKXtqUXVlcnkuZXZlbnQuc3BlY2lhbC5zdWJtaXQ9
e3NldHVwOmZ1bmN0aW9uKGRhdGEsbmFtZXNwYWNlcyl7aWYodGhpcy5ub2RlTmFtZS50b0xvd2Vy
Q2FzZSgpIT09ImZvcm0iKXtqUXVlcnkuZXZlbnQuYWRkKHRoaXMsImNsaWNrLnNwZWNpYWxTdWJt
aXQiLGZ1bmN0aW9uKGUpe3ZhciBlbGVtPWUudGFyZ2V0LHR5cGU9ZWxlbS50eXBlO2lmKCh0eXBl
PT09InN1Ym1pdCJ8fHR5cGU9PT0iaW1hZ2UiKSYmalF1ZXJ5KGVsZW0pLmNsb3Nlc3QoImZvcm0i
KS5sZW5ndGgpe3JldHVybiB0cmlnZ2VyKCJzdWJtaXQiLHRoaXMsYXJndW1lbnRzKTt9fSk7alF1
ZXJ5LmV2ZW50LmFkZCh0aGlzLCJrZXlwcmVzcy5zcGVjaWFsU3VibWl0IixmdW5jdGlvbihlKXt2
YXIgZWxlbT1lLnRhcmdldCx0eXBlPWVsZW0udHlwZTtpZigodHlwZT09PSJ0ZXh0Inx8dHlwZT09
PSJwYXNzd29yZCIpJiZqUXVlcnkoZWxlbSkuY2xvc2VzdCgiZm9ybSIpLmxlbmd0aCYmZS5rZXlD
b2RlPT09MTMpe3JldHVybiB0cmlnZ2VyKCJzdWJtaXQiLHRoaXMsYXJndW1lbnRzKTt9fSk7fWVs
c2V7cmV0dXJuIGZhbHNlO319LHRlYXJkb3duOmZ1bmN0aW9uKG5hbWVzcGFjZXMpe2pRdWVyeS5l
dmVudC5yZW1vdmUodGhpcywiLnNwZWNpYWxTdWJtaXQiKTt9fTt9CmlmKCFqUXVlcnkuc3VwcG9y
dC5jaGFuZ2VCdWJibGVzKXt2YXIgZm9ybUVsZW1zPS90ZXh0YXJlYXxpbnB1dHxzZWxlY3QvaSxj
aGFuZ2VGaWx0ZXJzLGdldFZhbD1mdW5jdGlvbihlbGVtKXt2YXIgdHlwZT1lbGVtLnR5cGUsdmFs
PWVsZW0udmFsdWU7aWYodHlwZT09PSJyYWRpbyJ8fHR5cGU9PT0iY2hlY2tib3giKXt2YWw9ZWxl
bS5jaGVja2VkO31lbHNlIGlmKHR5cGU9PT0ic2VsZWN0LW11bHRpcGxlIil7dmFsPWVsZW0uc2Vs
ZWN0ZWRJbmRleD4tMT9qUXVlcnkubWFwKGVsZW0ub3B0aW9ucyxmdW5jdGlvbihlbGVtKXtyZXR1
cm4gZWxlbS5zZWxlY3RlZDt9KS5qb2luKCItIik6IiI7fWVsc2UgaWYoZWxlbS5ub2RlTmFtZS50
b0xvd2VyQ2FzZSgpPT09InNlbGVjdCIpe3ZhbD1lbGVtLnNlbGVjdGVkSW5kZXg7fQpyZXR1cm4g
dmFsO30sdGVzdENoYW5nZT1mdW5jdGlvbiB0ZXN0Q2hhbmdlKGUpe3ZhciBlbGVtPWUudGFyZ2V0
LGRhdGEsdmFsO2lmKCFmb3JtRWxlbXMudGVzdChlbGVtLm5vZGVOYW1lKXx8ZWxlbS5yZWFkT25s
eSl7cmV0dXJuO30KZGF0YT1qUXVlcnkuZGF0YShlbGVtLCJfY2hhbmdlX2RhdGEiKTt2YWw9Z2V0
VmFsKGVsZW0pO2lmKGUudHlwZSE9PSJmb2N1c291dCJ8fGVsZW0udHlwZSE9PSJyYWRpbyIpe2pR
dWVyeS5kYXRhKGVsZW0sIl9jaGFuZ2VfZGF0YSIsdmFsKTt9CmlmKGRhdGE9PT11bmRlZmluZWR8
fHZhbD09PWRhdGEpe3JldHVybjt9CmlmKGRhdGEhPW51bGx8fHZhbCl7ZS50eXBlPSJjaGFuZ2Ui
O3JldHVybiBqUXVlcnkuZXZlbnQudHJpZ2dlcihlLGFyZ3VtZW50c1sxXSxlbGVtKTt9fTtqUXVl
cnkuZXZlbnQuc3BlY2lhbC5jaGFuZ2U9e2ZpbHRlcnM6e2ZvY3Vzb3V0OnRlc3RDaGFuZ2UsY2xp
Y2s6ZnVuY3Rpb24oZSl7dmFyIGVsZW09ZS50YXJnZXQsdHlwZT1lbGVtLnR5cGU7aWYodHlwZT09
PSJyYWRpbyJ8fHR5cGU9PT0iY2hlY2tib3gifHxlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9
PT0ic2VsZWN0Iil7cmV0dXJuIHRlc3RDaGFuZ2UuY2FsbCh0aGlzLGUpO319LGtleWRvd246ZnVu
Y3Rpb24oZSl7dmFyIGVsZW09ZS50YXJnZXQsdHlwZT1lbGVtLnR5cGU7aWYoKGUua2V5Q29kZT09
PTEzJiZlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkhPT0idGV4dGFyZWEiKXx8KGUua2V5Q29k
ZT09PTMyJiYodHlwZT09PSJjaGVja2JveCJ8fHR5cGU9PT0icmFkaW8iKSl8fHR5cGU9PT0ic2Vs
ZWN0LW11bHRpcGxlIil7cmV0dXJuIHRlc3RDaGFuZ2UuY2FsbCh0aGlzLGUpO319LGJlZm9yZWFj
dGl2YXRlOmZ1bmN0aW9uKGUpe3ZhciBlbGVtPWUudGFyZ2V0O2pRdWVyeS5kYXRhKGVsZW0sIl9j
aGFuZ2VfZGF0YSIsZ2V0VmFsKGVsZW0pKTt9fSxzZXR1cDpmdW5jdGlvbihkYXRhLG5hbWVzcGFj
ZXMpe2lmKHRoaXMudHlwZT09PSJmaWxlIil7cmV0dXJuIGZhbHNlO30KZm9yKHZhciB0eXBlIGlu
IGNoYW5nZUZpbHRlcnMpe2pRdWVyeS5ldmVudC5hZGQodGhpcyx0eXBlKyIuc3BlY2lhbENoYW5n
ZSIsY2hhbmdlRmlsdGVyc1t0eXBlXSk7fQpyZXR1cm4gZm9ybUVsZW1zLnRlc3QodGhpcy5ub2Rl
TmFtZSk7fSx0ZWFyZG93bjpmdW5jdGlvbihuYW1lc3BhY2VzKXtqUXVlcnkuZXZlbnQucmVtb3Zl
KHRoaXMsIi5zcGVjaWFsQ2hhbmdlIik7cmV0dXJuIGZvcm1FbGVtcy50ZXN0KHRoaXMubm9kZU5h
bWUpO319O2NoYW5nZUZpbHRlcnM9alF1ZXJ5LmV2ZW50LnNwZWNpYWwuY2hhbmdlLmZpbHRlcnM7
fQpmdW5jdGlvbiB0cmlnZ2VyKHR5cGUsZWxlbSxhcmdzKXthcmdzWzBdLnR5cGU9dHlwZTtyZXR1
cm4galF1ZXJ5LmV2ZW50LmhhbmRsZS5hcHBseShlbGVtLGFyZ3MpO30KaWYoZG9jdW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcil7alF1ZXJ5LmVhY2goe2ZvY3VzOiJmb2N1c2luIixibHVyOiJmb2N1c291
dCJ9LGZ1bmN0aW9uKG9yaWcsZml4KXtqUXVlcnkuZXZlbnQuc3BlY2lhbFtmaXhdPXtzZXR1cDpm
dW5jdGlvbigpe3RoaXMuYWRkRXZlbnRMaXN0ZW5lcihvcmlnLGhhbmRsZXIsdHJ1ZSk7fSx0ZWFy
ZG93bjpmdW5jdGlvbigpe3RoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihvcmlnLGhhbmRsZXIsdHJ1
ZSk7fX07ZnVuY3Rpb24gaGFuZGxlcihlKXtlPWpRdWVyeS5ldmVudC5maXgoZSk7ZS50eXBlPWZp
eDtyZXR1cm4galF1ZXJ5LmV2ZW50LmhhbmRsZS5jYWxsKHRoaXMsZSk7fX0pO30KalF1ZXJ5LmVh
Y2goWyJiaW5kIiwib25lIl0sZnVuY3Rpb24oaSxuYW1lKXtqUXVlcnkuZm5bbmFtZV09ZnVuY3Rp
b24odHlwZSxkYXRhLGZuKXtpZih0eXBlb2YgdHlwZT09PSJvYmplY3QiKXtmb3IodmFyIGtleSBp
biB0eXBlKXt0aGlzW25hbWVdKGtleSxkYXRhLHR5cGVba2V5XSxmbik7fQpyZXR1cm4gdGhpczt9
CmlmKGpRdWVyeS5pc0Z1bmN0aW9uKGRhdGEpKXtmbj1kYXRhO2RhdGE9dW5kZWZpbmVkO30KdmFy
IGhhbmRsZXI9bmFtZT09PSJvbmUiP2pRdWVyeS5wcm94eShmbixmdW5jdGlvbihldmVudCl7alF1
ZXJ5KHRoaXMpLnVuYmluZChldmVudCxoYW5kbGVyKTtyZXR1cm4gZm4uYXBwbHkodGhpcyxhcmd1
bWVudHMpO30pOmZuO2lmKHR5cGU9PT0idW5sb2FkIiYmbmFtZSE9PSJvbmUiKXt0aGlzLm9uZSh0
eXBlLGRhdGEsZm4pO31lbHNle2Zvcih2YXIgaT0wLGw9dGhpcy5sZW5ndGg7aTxsO2krKyl7alF1
ZXJ5LmV2ZW50LmFkZCh0aGlzW2ldLHR5cGUsaGFuZGxlcixkYXRhKTt9fQpyZXR1cm4gdGhpczt9
O30pO2pRdWVyeS5mbi5leHRlbmQoe3VuYmluZDpmdW5jdGlvbih0eXBlLGZuKXtpZih0eXBlb2Yg
dHlwZT09PSJvYmplY3QiJiYhdHlwZS5wcmV2ZW50RGVmYXVsdCl7Zm9yKHZhciBrZXkgaW4gdHlw
ZSl7dGhpcy51bmJpbmQoa2V5LHR5cGVba2V5XSk7fX1lbHNle2Zvcih2YXIgaT0wLGw9dGhpcy5s
ZW5ndGg7aTxsO2krKyl7alF1ZXJ5LmV2ZW50LnJlbW92ZSh0aGlzW2ldLHR5cGUsZm4pO319CnJl
dHVybiB0aGlzO30sZGVsZWdhdGU6ZnVuY3Rpb24oc2VsZWN0b3IsdHlwZXMsZGF0YSxmbil7cmV0
dXJuIHRoaXMubGl2ZSh0eXBlcyxkYXRhLGZuLHNlbGVjdG9yKTt9LHVuZGVsZWdhdGU6ZnVuY3Rp
b24oc2VsZWN0b3IsdHlwZXMsZm4pe2lmKGFyZ3VtZW50cy5sZW5ndGg9PT0wKXtyZXR1cm4gdGhp
cy51bmJpbmQoImxpdmUiKTt9ZWxzZXtyZXR1cm4gdGhpcy5kaWUodHlwZXMsbnVsbCxmbixzZWxl
Y3Rvcik7fX0sdHJpZ2dlcjpmdW5jdGlvbih0eXBlLGRhdGEpe3JldHVybiB0aGlzLmVhY2goZnVu
Y3Rpb24oKXtqUXVlcnkuZXZlbnQudHJpZ2dlcih0eXBlLGRhdGEsdGhpcyk7fSk7fSx0cmlnZ2Vy
SGFuZGxlcjpmdW5jdGlvbih0eXBlLGRhdGEpe2lmKHRoaXNbMF0pe3ZhciBldmVudD1qUXVlcnku
RXZlbnQodHlwZSk7ZXZlbnQucHJldmVudERlZmF1bHQoKTtldmVudC5zdG9wUHJvcGFnYXRpb24o
KTtqUXVlcnkuZXZlbnQudHJpZ2dlcihldmVudCxkYXRhLHRoaXNbMF0pO3JldHVybiBldmVudC5y
ZXN1bHQ7fX0sdG9nZ2xlOmZ1bmN0aW9uKGZuKXt2YXIgYXJncz1hcmd1bWVudHMsaT0xO3doaWxl
KGk8YXJncy5sZW5ndGgpe2pRdWVyeS5wcm94eShmbixhcmdzW2krK10pO30KcmV0dXJuIHRoaXMu
Y2xpY2soalF1ZXJ5LnByb3h5KGZuLGZ1bmN0aW9uKGV2ZW50KXt2YXIgbGFzdFRvZ2dsZT0oalF1
ZXJ5LmRhdGEodGhpcywibGFzdFRvZ2dsZSIrZm4uZ3VpZCl8fDApJWk7alF1ZXJ5LmRhdGEodGhp
cywibGFzdFRvZ2dsZSIrZm4uZ3VpZCxsYXN0VG9nZ2xlKzEpO2V2ZW50LnByZXZlbnREZWZhdWx0
KCk7cmV0dXJuIGFyZ3NbbGFzdFRvZ2dsZV0uYXBwbHkodGhpcyxhcmd1bWVudHMpfHxmYWxzZTt9
KSk7fSxob3ZlcjpmdW5jdGlvbihmbk92ZXIsZm5PdXQpe3JldHVybiB0aGlzLm1vdXNlZW50ZXIo
Zm5PdmVyKS5tb3VzZWxlYXZlKGZuT3V0fHxmbk92ZXIpO319KTt2YXIgbGl2ZU1hcD17Zm9jdXM6
ImZvY3VzaW4iLGJsdXI6ImZvY3Vzb3V0Iixtb3VzZWVudGVyOiJtb3VzZW92ZXIiLG1vdXNlbGVh
dmU6Im1vdXNlb3V0In07alF1ZXJ5LmVhY2goWyJsaXZlIiwiZGllIl0sZnVuY3Rpb24oaSxuYW1l
KXtqUXVlcnkuZm5bbmFtZV09ZnVuY3Rpb24odHlwZXMsZGF0YSxmbixvcmlnU2VsZWN0b3Ipe3Zh
ciB0eXBlLGk9MCxtYXRjaCxuYW1lc3BhY2VzLHByZVR5cGUsc2VsZWN0b3I9b3JpZ1NlbGVjdG9y
fHx0aGlzLnNlbGVjdG9yLGNvbnRleHQ9b3JpZ1NlbGVjdG9yP3RoaXM6alF1ZXJ5KHRoaXMuY29u
dGV4dCk7aWYoalF1ZXJ5LmlzRnVuY3Rpb24oZGF0YSkpe2ZuPWRhdGE7ZGF0YT11bmRlZmluZWQ7
fQp0eXBlcz0odHlwZXN8fCIiKS5zcGxpdCgiICIpO3doaWxlKCh0eXBlPXR5cGVzW2krK10pIT1u
dWxsKXttYXRjaD1ybmFtZXNwYWNlcy5leGVjKHR5cGUpO25hbWVzcGFjZXM9IiI7aWYobWF0Y2gp
e25hbWVzcGFjZXM9bWF0Y2hbMF07dHlwZT10eXBlLnJlcGxhY2Uocm5hbWVzcGFjZXMsIiIpO30K
aWYodHlwZT09PSJob3ZlciIpe3R5cGVzLnB1c2goIm1vdXNlZW50ZXIiK25hbWVzcGFjZXMsIm1v
dXNlbGVhdmUiK25hbWVzcGFjZXMpO2NvbnRpbnVlO30KcHJlVHlwZT10eXBlO2lmKHR5cGU9PT0i
Zm9jdXMifHx0eXBlPT09ImJsdXIiKXt0eXBlcy5wdXNoKGxpdmVNYXBbdHlwZV0rbmFtZXNwYWNl
cyk7dHlwZT10eXBlK25hbWVzcGFjZXM7fWVsc2V7dHlwZT0obGl2ZU1hcFt0eXBlXXx8dHlwZSkr
bmFtZXNwYWNlczt9CmlmKG5hbWU9PT0ibGl2ZSIpe2NvbnRleHQuZWFjaChmdW5jdGlvbigpe2pR
dWVyeS5ldmVudC5hZGQodGhpcyxsaXZlQ29udmVydCh0eXBlLHNlbGVjdG9yKSx7ZGF0YTpkYXRh
LHNlbGVjdG9yOnNlbGVjdG9yLGhhbmRsZXI6Zm4sb3JpZ1R5cGU6dHlwZSxvcmlnSGFuZGxlcjpm
bixwcmVUeXBlOnByZVR5cGV9KTt9KTt9ZWxzZXtjb250ZXh0LnVuYmluZChsaXZlQ29udmVydCh0
eXBlLHNlbGVjdG9yKSxmbik7fX0KcmV0dXJuIHRoaXM7fX0pO2Z1bmN0aW9uIGxpdmVIYW5kbGVy
KGV2ZW50KXt2YXIgc3RvcCxlbGVtcz1bXSxzZWxlY3RvcnM9W10sYXJncz1hcmd1bWVudHMscmVs
YXRlZCxtYXRjaCxoYW5kbGVPYmosZWxlbSxqLGksbCxkYXRhLGV2ZW50cz1qUXVlcnkuZGF0YSh0
aGlzLCJldmVudHMiKTtpZihldmVudC5saXZlRmlyZWQ9PT10aGlzfHwhZXZlbnRzfHwhZXZlbnRz
LmxpdmV8fGV2ZW50LmJ1dHRvbiYmZXZlbnQudHlwZT09PSJjbGljayIpe3JldHVybjt9CmV2ZW50
LmxpdmVGaXJlZD10aGlzO3ZhciBsaXZlPWV2ZW50cy5saXZlLnNsaWNlKDApO2ZvcihqPTA7ajxs
aXZlLmxlbmd0aDtqKyspe2hhbmRsZU9iaj1saXZlW2pdO2lmKGhhbmRsZU9iai5vcmlnVHlwZS5y
ZXBsYWNlKHJuYW1lc3BhY2VzLCIiKT09PWV2ZW50LnR5cGUpe3NlbGVjdG9ycy5wdXNoKGhhbmRs
ZU9iai5zZWxlY3Rvcik7fWVsc2V7bGl2ZS5zcGxpY2Uoai0tLDEpO319Cm1hdGNoPWpRdWVyeShl
dmVudC50YXJnZXQpLmNsb3Nlc3Qoc2VsZWN0b3JzLGV2ZW50LmN1cnJlbnRUYXJnZXQpO2Zvcihp
PTAsbD1tYXRjaC5sZW5ndGg7aTxsO2krKyl7Zm9yKGo9MDtqPGxpdmUubGVuZ3RoO2orKyl7aGFu
ZGxlT2JqPWxpdmVbal07aWYobWF0Y2hbaV0uc2VsZWN0b3I9PT1oYW5kbGVPYmouc2VsZWN0b3Ip
e2VsZW09bWF0Y2hbaV0uZWxlbTtyZWxhdGVkPW51bGw7aWYoaGFuZGxlT2JqLnByZVR5cGU9PT0i
bW91c2VlbnRlciJ8fGhhbmRsZU9iai5wcmVUeXBlPT09Im1vdXNlbGVhdmUiKXtyZWxhdGVkPWpR
dWVyeShldmVudC5yZWxhdGVkVGFyZ2V0KS5jbG9zZXN0KGhhbmRsZU9iai5zZWxlY3RvcilbMF07
fQppZighcmVsYXRlZHx8cmVsYXRlZCE9PWVsZW0pe2VsZW1zLnB1c2goe2VsZW06ZWxlbSxoYW5k
bGVPYmo6aGFuZGxlT2JqfSk7fX19fQpmb3IoaT0wLGw9ZWxlbXMubGVuZ3RoO2k8bDtpKyspe21h
dGNoPWVsZW1zW2ldO2V2ZW50LmN1cnJlbnRUYXJnZXQ9bWF0Y2guZWxlbTtldmVudC5kYXRhPW1h
dGNoLmhhbmRsZU9iai5kYXRhO2V2ZW50LmhhbmRsZU9iaj1tYXRjaC5oYW5kbGVPYmo7aWYobWF0
Y2guaGFuZGxlT2JqLm9yaWdIYW5kbGVyLmFwcGx5KG1hdGNoLmVsZW0sYXJncyk9PT1mYWxzZSl7
c3RvcD1mYWxzZTticmVhazt9fQpyZXR1cm4gc3RvcDt9CmZ1bmN0aW9uIGxpdmVDb252ZXJ0KHR5
cGUsc2VsZWN0b3Ipe3JldHVybiJsaXZlLiIrKHR5cGUmJnR5cGUhPT0iKiI/dHlwZSsiLiI6IiIp
K3NlbGVjdG9yLnJlcGxhY2UoL1wuL2csImAiKS5yZXBsYWNlKC8gL2csIiYiKTt9CmpRdWVyeS5l
YWNoKCgiYmx1ciBmb2N1cyBmb2N1c2luIGZvY3Vzb3V0IGxvYWQgcmVzaXplIHNjcm9sbCB1bmxv
YWQgY2xpY2sgZGJsY2xpY2sgIisibW91c2Vkb3duIG1vdXNldXAgbW91c2Vtb3ZlIG1vdXNlb3Zl
ciBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgIisiY2hhbmdlIHNlbGVjdCBzdWJtaXQg
a2V5ZG93biBrZXlwcmVzcyBrZXl1cCBlcnJvciIpLnNwbGl0KCIgIiksZnVuY3Rpb24oaSxuYW1l
KXtqUXVlcnkuZm5bbmFtZV09ZnVuY3Rpb24oZm4pe3JldHVybiBmbj90aGlzLmJpbmQobmFtZSxm
bik6dGhpcy50cmlnZ2VyKG5hbWUpO307aWYoalF1ZXJ5LmF0dHJGbil7alF1ZXJ5LmF0dHJGbltu
YW1lXT10cnVlO319KTtpZih3aW5kb3cuYXR0YWNoRXZlbnQmJiF3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcil7d2luZG93LmF0dGFjaEV2ZW50KCJvbnVubG9hZCIsZnVuY3Rpb24oKXtmb3IodmFyIGlk
IGluIGpRdWVyeS5jYWNoZSl7aWYoalF1ZXJ5LmNhY2hlW2lkXS5oYW5kbGUpe3RyeXtqUXVlcnku
ZXZlbnQucmVtb3ZlKGpRdWVyeS5jYWNoZVtpZF0uaGFuZGxlLmVsZW0pO31jYXRjaChlKXt9fX19
KTt9CihmdW5jdGlvbigpe3ZhciBjaHVua2VyPS8oKD86XCgoPzpcKFteKCldK1wpfFteKCldKykr
XCl8XFsoPzpcW1teW1xdXSpcXXxbJyJdW14nIl0qWyciXXxbXltcXSciXSspK1xdfFxcLnxbXiA+
K34sKFxbXFxdKykrfFs+K35dKShccyosXHMqKT8oKD86LnxccnxcbikqKS9nLGRvbmU9MCx0b1N0
cmluZz1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLGhhc0R1cGxpY2F0ZT1mYWxzZSxiYXNlSGFz
RHVwbGljYXRlPXRydWU7WzAsMF0uc29ydChmdW5jdGlvbigpe2Jhc2VIYXNEdXBsaWNhdGU9ZmFs
c2U7cmV0dXJuIDA7fSk7dmFyIFNpenpsZT1mdW5jdGlvbihzZWxlY3Rvcixjb250ZXh0LHJlc3Vs
dHMsc2VlZCl7cmVzdWx0cz1yZXN1bHRzfHxbXTt2YXIgb3JpZ0NvbnRleHQ9Y29udGV4dD1jb250
ZXh0fHxkb2N1bWVudDtpZihjb250ZXh0Lm5vZGVUeXBlIT09MSYmY29udGV4dC5ub2RlVHlwZSE9
PTkpe3JldHVybltdO30KaWYoIXNlbGVjdG9yfHx0eXBlb2Ygc2VsZWN0b3IhPT0ic3RyaW5nIil7
cmV0dXJuIHJlc3VsdHM7fQp2YXIgcGFydHM9W10sbSxzZXQsY2hlY2tTZXQsZXh0cmEscHJ1bmU9
dHJ1ZSxjb250ZXh0WE1MPWlzWE1MKGNvbnRleHQpLHNvRmFyPXNlbGVjdG9yO3doaWxlKChjaHVu
a2VyLmV4ZWMoIiIpLG09Y2h1bmtlci5leGVjKHNvRmFyKSkhPT1udWxsKXtzb0Zhcj1tWzNdO3Bh
cnRzLnB1c2gobVsxXSk7aWYobVsyXSl7ZXh0cmE9bVszXTticmVhazt9fQppZihwYXJ0cy5sZW5n
dGg+MSYmb3JpZ1BPUy5leGVjKHNlbGVjdG9yKSl7aWYocGFydHMubGVuZ3RoPT09MiYmRXhwci5y
ZWxhdGl2ZVtwYXJ0c1swXV0pe3NldD1wb3NQcm9jZXNzKHBhcnRzWzBdK3BhcnRzWzFdLGNvbnRl
eHQpO31lbHNle3NldD1FeHByLnJlbGF0aXZlW3BhcnRzWzBdXT9bY29udGV4dF06U2l6emxlKHBh
cnRzLnNoaWZ0KCksY29udGV4dCk7d2hpbGUocGFydHMubGVuZ3RoKXtzZWxlY3Rvcj1wYXJ0cy5z
aGlmdCgpO2lmKEV4cHIucmVsYXRpdmVbc2VsZWN0b3JdKXtzZWxlY3Rvcis9cGFydHMuc2hpZnQo
KTt9CnNldD1wb3NQcm9jZXNzKHNlbGVjdG9yLHNldCk7fX19ZWxzZXtpZighc2VlZCYmcGFydHMu
bGVuZ3RoPjEmJmNvbnRleHQubm9kZVR5cGU9PT05JiYhY29udGV4dFhNTCYmRXhwci5tYXRjaC5J
RC50ZXN0KHBhcnRzWzBdKSYmIUV4cHIubWF0Y2guSUQudGVzdChwYXJ0c1twYXJ0cy5sZW5ndGgt
MV0pKXt2YXIgcmV0PVNpenpsZS5maW5kKHBhcnRzLnNoaWZ0KCksY29udGV4dCxjb250ZXh0WE1M
KTtjb250ZXh0PXJldC5leHByP1NpenpsZS5maWx0ZXIocmV0LmV4cHIscmV0LnNldClbMF06cmV0
LnNldFswXTt9CmlmKGNvbnRleHQpe3ZhciByZXQ9c2VlZD97ZXhwcjpwYXJ0cy5wb3AoKSxzZXQ6
bWFrZUFycmF5KHNlZWQpfTpTaXp6bGUuZmluZChwYXJ0cy5wb3AoKSxwYXJ0cy5sZW5ndGg9PT0x
JiYocGFydHNbMF09PT0ifiJ8fHBhcnRzWzBdPT09IisiKSYmY29udGV4dC5wYXJlbnROb2RlP2Nv
bnRleHQucGFyZW50Tm9kZTpjb250ZXh0LGNvbnRleHRYTUwpO3NldD1yZXQuZXhwcj9TaXp6bGUu
ZmlsdGVyKHJldC5leHByLHJldC5zZXQpOnJldC5zZXQ7aWYocGFydHMubGVuZ3RoPjApe2NoZWNr
U2V0PW1ha2VBcnJheShzZXQpO31lbHNle3BydW5lPWZhbHNlO30Kd2hpbGUocGFydHMubGVuZ3Ro
KXt2YXIgY3VyPXBhcnRzLnBvcCgpLHBvcD1jdXI7aWYoIUV4cHIucmVsYXRpdmVbY3VyXSl7Y3Vy
PSIiO31lbHNle3BvcD1wYXJ0cy5wb3AoKTt9CmlmKHBvcD09bnVsbCl7cG9wPWNvbnRleHQ7fQpF
eHByLnJlbGF0aXZlW2N1cl0oY2hlY2tTZXQscG9wLGNvbnRleHRYTUwpO319ZWxzZXtjaGVja1Nl
dD1wYXJ0cz1bXTt9fQppZighY2hlY2tTZXQpe2NoZWNrU2V0PXNldDt9CmlmKCFjaGVja1NldCl7
U2l6emxlLmVycm9yKGN1cnx8c2VsZWN0b3IpO30KaWYodG9TdHJpbmcuY2FsbChjaGVja1NldCk9
PT0iW29iamVjdCBBcnJheV0iKXtpZighcHJ1bmUpe3Jlc3VsdHMucHVzaC5hcHBseShyZXN1bHRz
LGNoZWNrU2V0KTt9ZWxzZSBpZihjb250ZXh0JiZjb250ZXh0Lm5vZGVUeXBlPT09MSl7Zm9yKHZh
ciBpPTA7Y2hlY2tTZXRbaV0hPW51bGw7aSsrKXtpZihjaGVja1NldFtpXSYmKGNoZWNrU2V0W2ld
PT09dHJ1ZXx8Y2hlY2tTZXRbaV0ubm9kZVR5cGU9PT0xJiZjb250YWlucyhjb250ZXh0LGNoZWNr
U2V0W2ldKSkpe3Jlc3VsdHMucHVzaChzZXRbaV0pO319fWVsc2V7Zm9yKHZhciBpPTA7Y2hlY2tT
ZXRbaV0hPW51bGw7aSsrKXtpZihjaGVja1NldFtpXSYmY2hlY2tTZXRbaV0ubm9kZVR5cGU9PT0x
KXtyZXN1bHRzLnB1c2goc2V0W2ldKTt9fX19ZWxzZXttYWtlQXJyYXkoY2hlY2tTZXQscmVzdWx0
cyk7fQppZihleHRyYSl7U2l6emxlKGV4dHJhLG9yaWdDb250ZXh0LHJlc3VsdHMsc2VlZCk7U2l6
emxlLnVuaXF1ZVNvcnQocmVzdWx0cyk7fQpyZXR1cm4gcmVzdWx0czt9O1NpenpsZS51bmlxdWVT
b3J0PWZ1bmN0aW9uKHJlc3VsdHMpe2lmKHNvcnRPcmRlcil7aGFzRHVwbGljYXRlPWJhc2VIYXNE
dXBsaWNhdGU7cmVzdWx0cy5zb3J0KHNvcnRPcmRlcik7aWYoaGFzRHVwbGljYXRlKXtmb3IodmFy
IGk9MTtpPHJlc3VsdHMubGVuZ3RoO2krKyl7aWYocmVzdWx0c1tpXT09PXJlc3VsdHNbaS0xXSl7
cmVzdWx0cy5zcGxpY2UoaS0tLDEpO319fX0KcmV0dXJuIHJlc3VsdHM7fTtTaXp6bGUubWF0Y2hl
cz1mdW5jdGlvbihleHByLHNldCl7cmV0dXJuIFNpenpsZShleHByLG51bGwsbnVsbCxzZXQpO307
U2l6emxlLmZpbmQ9ZnVuY3Rpb24oZXhwcixjb250ZXh0LGlzWE1MKXt2YXIgc2V0LG1hdGNoO2lm
KCFleHByKXtyZXR1cm5bXTt9CmZvcih2YXIgaT0wLGw9RXhwci5vcmRlci5sZW5ndGg7aTxsO2kr
Kyl7dmFyIHR5cGU9RXhwci5vcmRlcltpXSxtYXRjaDtpZigobWF0Y2g9RXhwci5sZWZ0TWF0Y2hb
dHlwZV0uZXhlYyhleHByKSkpe3ZhciBsZWZ0PW1hdGNoWzFdO21hdGNoLnNwbGljZSgxLDEpO2lm
KGxlZnQuc3Vic3RyKGxlZnQubGVuZ3RoLTEpIT09IlxcIil7bWF0Y2hbMV09KG1hdGNoWzFdfHwi
IikucmVwbGFjZSgvXFwvZywiIik7c2V0PUV4cHIuZmluZFt0eXBlXShtYXRjaCxjb250ZXh0LGlz
WE1MKTtpZihzZXQhPW51bGwpe2V4cHI9ZXhwci5yZXBsYWNlKEV4cHIubWF0Y2hbdHlwZV0sIiIp
O2JyZWFrO319fX0KaWYoIXNldCl7c2V0PWNvbnRleHQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioi
KTt9CnJldHVybntzZXQ6c2V0LGV4cHI6ZXhwcn07fTtTaXp6bGUuZmlsdGVyPWZ1bmN0aW9uKGV4
cHIsc2V0LGlucGxhY2Usbm90KXt2YXIgb2xkPWV4cHIscmVzdWx0PVtdLGN1ckxvb3A9c2V0LG1h
dGNoLGFueUZvdW5kLGlzWE1MRmlsdGVyPXNldCYmc2V0WzBdJiZpc1hNTChzZXRbMF0pO3doaWxl
KGV4cHImJnNldC5sZW5ndGgpe2Zvcih2YXIgdHlwZSBpbiBFeHByLmZpbHRlcil7aWYoKG1hdGNo
PUV4cHIubGVmdE1hdGNoW3R5cGVdLmV4ZWMoZXhwcikpIT1udWxsJiZtYXRjaFsyXSl7dmFyIGZp
bHRlcj1FeHByLmZpbHRlclt0eXBlXSxmb3VuZCxpdGVtLGxlZnQ9bWF0Y2hbMV07YW55Rm91bmQ9
ZmFsc2U7bWF0Y2guc3BsaWNlKDEsMSk7aWYobGVmdC5zdWJzdHIobGVmdC5sZW5ndGgtMSk9PT0i
XFwiKXtjb250aW51ZTt9CmlmKGN1ckxvb3A9PT1yZXN1bHQpe3Jlc3VsdD1bXTt9CmlmKEV4cHIu
cHJlRmlsdGVyW3R5cGVdKXttYXRjaD1FeHByLnByZUZpbHRlclt0eXBlXShtYXRjaCxjdXJMb29w
LGlucGxhY2UscmVzdWx0LG5vdCxpc1hNTEZpbHRlcik7aWYoIW1hdGNoKXthbnlGb3VuZD1mb3Vu
ZD10cnVlO31lbHNlIGlmKG1hdGNoPT09dHJ1ZSl7Y29udGludWU7fX0KaWYobWF0Y2gpe2Zvcih2
YXIgaT0wOyhpdGVtPWN1ckxvb3BbaV0pIT1udWxsO2krKyl7aWYoaXRlbSl7Zm91bmQ9ZmlsdGVy
KGl0ZW0sbWF0Y2gsaSxjdXJMb29wKTt2YXIgcGFzcz1ub3ReISFmb3VuZDtpZihpbnBsYWNlJiZm
b3VuZCE9bnVsbCl7aWYocGFzcyl7YW55Rm91bmQ9dHJ1ZTt9ZWxzZXtjdXJMb29wW2ldPWZhbHNl
O319ZWxzZSBpZihwYXNzKXtyZXN1bHQucHVzaChpdGVtKTthbnlGb3VuZD10cnVlO319fX0KaWYo
Zm91bmQhPT11bmRlZmluZWQpe2lmKCFpbnBsYWNlKXtjdXJMb29wPXJlc3VsdDt9CmV4cHI9ZXhw
ci5yZXBsYWNlKEV4cHIubWF0Y2hbdHlwZV0sIiIpO2lmKCFhbnlGb3VuZCl7cmV0dXJuW107fQpi
cmVhazt9fX0KaWYoZXhwcj09PW9sZCl7aWYoYW55Rm91bmQ9PW51bGwpe1NpenpsZS5lcnJvcihl
eHByKTt9ZWxzZXticmVhazt9fQpvbGQ9ZXhwcjt9CnJldHVybiBjdXJMb29wO307U2l6emxlLmVy
cm9yPWZ1bmN0aW9uKG1zZyl7dGhyb3ciU3ludGF4IGVycm9yLCB1bnJlY29nbml6ZWQgZXhwcmVz
c2lvbjogIittc2c7fTt2YXIgRXhwcj1TaXp6bGUuc2VsZWN0b3JzPXtvcmRlcjpbIklEIiwiTkFN
RSIsIlRBRyJdLG1hdGNoOntJRDovIygoPzpbXHdcdTAwYzAtXHVGRkZGLV18XFwuKSspLyxDTEFT
UzovXC4oKD86W1x3XHUwMGMwLVx1RkZGRi1dfFxcLikrKS8sTkFNRTovXFtuYW1lPVsnIl0qKCg/
Oltcd1x1MDBjMC1cdUZGRkYtXXxcXC4pKylbJyJdKlxdLyxBVFRSOi9cW1xzKigoPzpbXHdcdTAw
YzAtXHVGRkZGLV18XFwuKSspXHMqKD86KFxTPz0pXHMqKFsnIl0qKSguKj8pXDN8KVxzKlxdLyxU
QUc6L14oKD86W1x3XHUwMGMwLVx1RkZGRlwqLV18XFwuKSspLyxDSElMRDovOihvbmx5fG50aHxs
YXN0fGZpcnN0KS1jaGlsZCg/OlwoKGV2ZW58b2RkfFtcZG4rLV0qKVwpKT8vLFBPUzovOihudGh8
ZXF8Z3R8bHR8Zmlyc3R8bGFzdHxldmVufG9kZCkoPzpcKChcZCopXCkpPyg/PVteLV18JCkvLFBT
RVVETzovOigoPzpbXHdcdTAwYzAtXHVGRkZGLV18XFwuKSspKD86XCgoWyciXT8pKCg/OlwoW15c
KV0rXCl8W15cKFwpXSopKylcMlwpKT8vfSxsZWZ0TWF0Y2g6e30sYXR0ck1hcDp7ImNsYXNzIjoi
Y2xhc3NOYW1lIiwiZm9yIjoiaHRtbEZvciJ9LGF0dHJIYW5kbGU6e2hyZWY6ZnVuY3Rpb24oZWxl
bSl7cmV0dXJuIGVsZW0uZ2V0QXR0cmlidXRlKCJocmVmIik7fX0scmVsYXRpdmU6eyIrIjpmdW5j
dGlvbihjaGVja1NldCxwYXJ0KXt2YXIgaXNQYXJ0U3RyPXR5cGVvZiBwYXJ0PT09InN0cmluZyIs
aXNUYWc9aXNQYXJ0U3RyJiYhL1xXLy50ZXN0KHBhcnQpLGlzUGFydFN0ck5vdFRhZz1pc1BhcnRT
dHImJiFpc1RhZztpZihpc1RhZyl7cGFydD1wYXJ0LnRvTG93ZXJDYXNlKCk7fQpmb3IodmFyIGk9
MCxsPWNoZWNrU2V0Lmxlbmd0aCxlbGVtO2k8bDtpKyspe2lmKChlbGVtPWNoZWNrU2V0W2ldKSl7
d2hpbGUoKGVsZW09ZWxlbS5wcmV2aW91c1NpYmxpbmcpJiZlbGVtLm5vZGVUeXBlIT09MSl7fQpj
aGVja1NldFtpXT1pc1BhcnRTdHJOb3RUYWd8fGVsZW0mJmVsZW0ubm9kZU5hbWUudG9Mb3dlckNh
c2UoKT09PXBhcnQ/ZWxlbXx8ZmFsc2U6ZWxlbT09PXBhcnQ7fX0KaWYoaXNQYXJ0U3RyTm90VGFn
KXtTaXp6bGUuZmlsdGVyKHBhcnQsY2hlY2tTZXQsdHJ1ZSk7fX0sIj4iOmZ1bmN0aW9uKGNoZWNr
U2V0LHBhcnQpe3ZhciBpc1BhcnRTdHI9dHlwZW9mIHBhcnQ9PT0ic3RyaW5nIjtpZihpc1BhcnRT
dHImJiEvXFcvLnRlc3QocGFydCkpe3BhcnQ9cGFydC50b0xvd2VyQ2FzZSgpO2Zvcih2YXIgaT0w
LGw9Y2hlY2tTZXQubGVuZ3RoO2k8bDtpKyspe3ZhciBlbGVtPWNoZWNrU2V0W2ldO2lmKGVsZW0p
e3ZhciBwYXJlbnQ9ZWxlbS5wYXJlbnROb2RlO2NoZWNrU2V0W2ldPXBhcmVudC5ub2RlTmFtZS50
b0xvd2VyQ2FzZSgpPT09cGFydD9wYXJlbnQ6ZmFsc2U7fX19ZWxzZXtmb3IodmFyIGk9MCxsPWNo
ZWNrU2V0Lmxlbmd0aDtpPGw7aSsrKXt2YXIgZWxlbT1jaGVja1NldFtpXTtpZihlbGVtKXtjaGVj
a1NldFtpXT1pc1BhcnRTdHI/ZWxlbS5wYXJlbnROb2RlOmVsZW0ucGFyZW50Tm9kZT09PXBhcnQ7
fX0KaWYoaXNQYXJ0U3RyKXtTaXp6bGUuZmlsdGVyKHBhcnQsY2hlY2tTZXQsdHJ1ZSk7fX19LCIi
OmZ1bmN0aW9uKGNoZWNrU2V0LHBhcnQsaXNYTUwpe3ZhciBkb25lTmFtZT1kb25lKyssY2hlY2tG
bj1kaXJDaGVjaztpZih0eXBlb2YgcGFydD09PSJzdHJpbmciJiYhL1xXLy50ZXN0KHBhcnQpKXt2
YXIgbm9kZUNoZWNrPXBhcnQ9cGFydC50b0xvd2VyQ2FzZSgpO2NoZWNrRm49ZGlyTm9kZUNoZWNr
O30KY2hlY2tGbigicGFyZW50Tm9kZSIscGFydCxkb25lTmFtZSxjaGVja1NldCxub2RlQ2hlY2ss
aXNYTUwpO30sIn4iOmZ1bmN0aW9uKGNoZWNrU2V0LHBhcnQsaXNYTUwpe3ZhciBkb25lTmFtZT1k
b25lKyssY2hlY2tGbj1kaXJDaGVjaztpZih0eXBlb2YgcGFydD09PSJzdHJpbmciJiYhL1xXLy50
ZXN0KHBhcnQpKXt2YXIgbm9kZUNoZWNrPXBhcnQ9cGFydC50b0xvd2VyQ2FzZSgpO2NoZWNrRm49
ZGlyTm9kZUNoZWNrO30KY2hlY2tGbigicHJldmlvdXNTaWJsaW5nIixwYXJ0LGRvbmVOYW1lLGNo
ZWNrU2V0LG5vZGVDaGVjayxpc1hNTCk7fX0sZmluZDp7SUQ6ZnVuY3Rpb24obWF0Y2gsY29udGV4
dCxpc1hNTCl7aWYodHlwZW9mIGNvbnRleHQuZ2V0RWxlbWVudEJ5SWQhPT0idW5kZWZpbmVkIiYm
IWlzWE1MKXt2YXIgbT1jb250ZXh0LmdldEVsZW1lbnRCeUlkKG1hdGNoWzFdKTtyZXR1cm4gbT9b
bV06W107fX0sTkFNRTpmdW5jdGlvbihtYXRjaCxjb250ZXh0KXtpZih0eXBlb2YgY29udGV4dC5n
ZXRFbGVtZW50c0J5TmFtZSE9PSJ1bmRlZmluZWQiKXt2YXIgcmV0PVtdLHJlc3VsdHM9Y29udGV4
dC5nZXRFbGVtZW50c0J5TmFtZShtYXRjaFsxXSk7Zm9yKHZhciBpPTAsbD1yZXN1bHRzLmxlbmd0
aDtpPGw7aSsrKXtpZihyZXN1bHRzW2ldLmdldEF0dHJpYnV0ZSgibmFtZSIpPT09bWF0Y2hbMV0p
e3JldC5wdXNoKHJlc3VsdHNbaV0pO319CnJldHVybiByZXQubGVuZ3RoPT09MD9udWxsOnJldDt9
fSxUQUc6ZnVuY3Rpb24obWF0Y2gsY29udGV4dCl7cmV0dXJuIGNvbnRleHQuZ2V0RWxlbWVudHNC
eVRhZ05hbWUobWF0Y2hbMV0pO319LHByZUZpbHRlcjp7Q0xBU1M6ZnVuY3Rpb24obWF0Y2gsY3Vy
TG9vcCxpbnBsYWNlLHJlc3VsdCxub3QsaXNYTUwpe21hdGNoPSIgIittYXRjaFsxXS5yZXBsYWNl
KC9cXC9nLCIiKSsiICI7aWYoaXNYTUwpe3JldHVybiBtYXRjaDt9CmZvcih2YXIgaT0wLGVsZW07
KGVsZW09Y3VyTG9vcFtpXSkhPW51bGw7aSsrKXtpZihlbGVtKXtpZihub3ReKGVsZW0uY2xhc3NO
YW1lJiYoIiAiK2VsZW0uY2xhc3NOYW1lKyIgIikucmVwbGFjZSgvW1x0XG5dL2csIiAiKS5pbmRl
eE9mKG1hdGNoKT49MCkpe2lmKCFpbnBsYWNlKXtyZXN1bHQucHVzaChlbGVtKTt9fWVsc2UgaWYo
aW5wbGFjZSl7Y3VyTG9vcFtpXT1mYWxzZTt9fX0KcmV0dXJuIGZhbHNlO30sSUQ6ZnVuY3Rpb24o
bWF0Y2gpe3JldHVybiBtYXRjaFsxXS5yZXBsYWNlKC9cXC9nLCIiKTt9LFRBRzpmdW5jdGlvbiht
YXRjaCxjdXJMb29wKXtyZXR1cm4gbWF0Y2hbMV0udG9Mb3dlckNhc2UoKTt9LENISUxEOmZ1bmN0
aW9uKG1hdGNoKXtpZihtYXRjaFsxXT09PSJudGgiKXt2YXIgdGVzdD0vKC0/KShcZCopbigoPzpc
K3wtKT9cZCopLy5leGVjKG1hdGNoWzJdPT09ImV2ZW4iJiYiMm4ifHxtYXRjaFsyXT09PSJvZGQi
JiYiMm4rMSJ8fCEvXEQvLnRlc3QobWF0Y2hbMl0pJiYiMG4rIittYXRjaFsyXXx8bWF0Y2hbMl0p
O21hdGNoWzJdPSh0ZXN0WzFdKyh0ZXN0WzJdfHwxKSktMDttYXRjaFszXT10ZXN0WzNdLTA7fQpt
YXRjaFswXT1kb25lKys7cmV0dXJuIG1hdGNoO30sQVRUUjpmdW5jdGlvbihtYXRjaCxjdXJMb29w
LGlucGxhY2UscmVzdWx0LG5vdCxpc1hNTCl7dmFyIG5hbWU9bWF0Y2hbMV0ucmVwbGFjZSgvXFwv
ZywiIik7aWYoIWlzWE1MJiZFeHByLmF0dHJNYXBbbmFtZV0pe21hdGNoWzFdPUV4cHIuYXR0ck1h
cFtuYW1lXTt9CmlmKG1hdGNoWzJdPT09In49Iil7bWF0Y2hbNF09IiAiK21hdGNoWzRdKyIgIjt9
CnJldHVybiBtYXRjaDt9LFBTRVVETzpmdW5jdGlvbihtYXRjaCxjdXJMb29wLGlucGxhY2UscmVz
dWx0LG5vdCl7aWYobWF0Y2hbMV09PT0ibm90Iil7aWYoKGNodW5rZXIuZXhlYyhtYXRjaFszXSl8
fCIiKS5sZW5ndGg+MXx8L15cdy8udGVzdChtYXRjaFszXSkpe21hdGNoWzNdPVNpenpsZShtYXRj
aFszXSxudWxsLG51bGwsY3VyTG9vcCk7fWVsc2V7dmFyIHJldD1TaXp6bGUuZmlsdGVyKG1hdGNo
WzNdLGN1ckxvb3AsaW5wbGFjZSx0cnVlXm5vdCk7aWYoIWlucGxhY2Upe3Jlc3VsdC5wdXNoLmFw
cGx5KHJlc3VsdCxyZXQpO30KcmV0dXJuIGZhbHNlO319ZWxzZSBpZihFeHByLm1hdGNoLlBPUy50
ZXN0KG1hdGNoWzBdKXx8RXhwci5tYXRjaC5DSElMRC50ZXN0KG1hdGNoWzBdKSl7cmV0dXJuIHRy
dWU7fQpyZXR1cm4gbWF0Y2g7fSxQT1M6ZnVuY3Rpb24obWF0Y2gpe21hdGNoLnVuc2hpZnQodHJ1
ZSk7cmV0dXJuIG1hdGNoO319LGZpbHRlcnM6e2VuYWJsZWQ6ZnVuY3Rpb24oZWxlbSl7cmV0dXJu
IGVsZW0uZGlzYWJsZWQ9PT1mYWxzZSYmZWxlbS50eXBlIT09ImhpZGRlbiI7fSxkaXNhYmxlZDpm
dW5jdGlvbihlbGVtKXtyZXR1cm4gZWxlbS5kaXNhYmxlZD09PXRydWU7fSxjaGVja2VkOmZ1bmN0
aW9uKGVsZW0pe3JldHVybiBlbGVtLmNoZWNrZWQ9PT10cnVlO30sc2VsZWN0ZWQ6ZnVuY3Rpb24o
ZWxlbSl7ZWxlbS5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXg7cmV0dXJuIGVsZW0uc2VsZWN0ZWQ9
PT10cnVlO30scGFyZW50OmZ1bmN0aW9uKGVsZW0pe3JldHVybiEhZWxlbS5maXJzdENoaWxkO30s
ZW1wdHk6ZnVuY3Rpb24oZWxlbSl7cmV0dXJuIWVsZW0uZmlyc3RDaGlsZDt9LGhhczpmdW5jdGlv
bihlbGVtLGksbWF0Y2gpe3JldHVybiEhU2l6emxlKG1hdGNoWzNdLGVsZW0pLmxlbmd0aDt9LGhl
YWRlcjpmdW5jdGlvbihlbGVtKXtyZXR1cm4vaFxkL2kudGVzdChlbGVtLm5vZGVOYW1lKTt9LHRl
eHQ6ZnVuY3Rpb24oZWxlbSl7cmV0dXJuInRleHQiPT09ZWxlbS50eXBlO30scmFkaW86ZnVuY3Rp
b24oZWxlbSl7cmV0dXJuInJhZGlvIj09PWVsZW0udHlwZTt9LGNoZWNrYm94OmZ1bmN0aW9uKGVs
ZW0pe3JldHVybiJjaGVja2JveCI9PT1lbGVtLnR5cGU7fSxmaWxlOmZ1bmN0aW9uKGVsZW0pe3Jl
dHVybiJmaWxlIj09PWVsZW0udHlwZTt9LHBhc3N3b3JkOmZ1bmN0aW9uKGVsZW0pe3JldHVybiJw
YXNzd29yZCI9PT1lbGVtLnR5cGU7fSxzdWJtaXQ6ZnVuY3Rpb24oZWxlbSl7cmV0dXJuInN1Ym1p
dCI9PT1lbGVtLnR5cGU7fSxpbWFnZTpmdW5jdGlvbihlbGVtKXtyZXR1cm4iaW1hZ2UiPT09ZWxl
bS50eXBlO30scmVzZXQ6ZnVuY3Rpb24oZWxlbSl7cmV0dXJuInJlc2V0Ij09PWVsZW0udHlwZTt9
LGJ1dHRvbjpmdW5jdGlvbihlbGVtKXtyZXR1cm4iYnV0dG9uIj09PWVsZW0udHlwZXx8ZWxlbS5u
b2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09ImJ1dHRvbiI7fSxpbnB1dDpmdW5jdGlvbihlbGVtKXty
ZXR1cm4vaW5wdXR8c2VsZWN0fHRleHRhcmVhfGJ1dHRvbi9pLnRlc3QoZWxlbS5ub2RlTmFtZSk7
fX0sc2V0RmlsdGVyczp7Zmlyc3Q6ZnVuY3Rpb24oZWxlbSxpKXtyZXR1cm4gaT09PTA7fSxsYXN0
OmZ1bmN0aW9uKGVsZW0saSxtYXRjaCxhcnJheSl7cmV0dXJuIGk9PT1hcnJheS5sZW5ndGgtMTt9
LGV2ZW46ZnVuY3Rpb24oZWxlbSxpKXtyZXR1cm4gaSUyPT09MDt9LG9kZDpmdW5jdGlvbihlbGVt
LGkpe3JldHVybiBpJTI9PT0xO30sbHQ6ZnVuY3Rpb24oZWxlbSxpLG1hdGNoKXtyZXR1cm4gaTxt
YXRjaFszXS0wO30sZ3Q6ZnVuY3Rpb24oZWxlbSxpLG1hdGNoKXtyZXR1cm4gaT5tYXRjaFszXS0w
O30sbnRoOmZ1bmN0aW9uKGVsZW0saSxtYXRjaCl7cmV0dXJuIG1hdGNoWzNdLTA9PT1pO30sZXE6
ZnVuY3Rpb24oZWxlbSxpLG1hdGNoKXtyZXR1cm4gbWF0Y2hbM10tMD09PWk7fX0sZmlsdGVyOntQ
U0VVRE86ZnVuY3Rpb24oZWxlbSxtYXRjaCxpLGFycmF5KXt2YXIgbmFtZT1tYXRjaFsxXSxmaWx0
ZXI9RXhwci5maWx0ZXJzW25hbWVdO2lmKGZpbHRlcil7cmV0dXJuIGZpbHRlcihlbGVtLGksbWF0
Y2gsYXJyYXkpO31lbHNlIGlmKG5hbWU9PT0iY29udGFpbnMiKXtyZXR1cm4oZWxlbS50ZXh0Q29u
dGVudHx8ZWxlbS5pbm5lclRleHR8fGdldFRleHQoW2VsZW1dKXx8IiIpLmluZGV4T2YobWF0Y2hb
M10pPj0wO31lbHNlIGlmKG5hbWU9PT0ibm90Iil7dmFyIG5vdD1tYXRjaFszXTtmb3IodmFyIGk9
MCxsPW5vdC5sZW5ndGg7aTxsO2krKyl7aWYobm90W2ldPT09ZWxlbSl7cmV0dXJuIGZhbHNlO319
CnJldHVybiB0cnVlO31lbHNle1NpenpsZS5lcnJvcigiU3ludGF4IGVycm9yLCB1bnJlY29nbml6
ZWQgZXhwcmVzc2lvbjogIituYW1lKTt9fSxDSElMRDpmdW5jdGlvbihlbGVtLG1hdGNoKXt2YXIg
dHlwZT1tYXRjaFsxXSxub2RlPWVsZW07c3dpdGNoKHR5cGUpe2Nhc2Unb25seSc6Y2FzZSdmaXJz
dCc6d2hpbGUoKG5vZGU9bm9kZS5wcmV2aW91c1NpYmxpbmcpKXtpZihub2RlLm5vZGVUeXBlPT09
MSl7cmV0dXJuIGZhbHNlO319CmlmKHR5cGU9PT0iZmlyc3QiKXtyZXR1cm4gdHJ1ZTt9Cm5vZGU9
ZWxlbTtjYXNlJ2xhc3QnOndoaWxlKChub2RlPW5vZGUubmV4dFNpYmxpbmcpKXtpZihub2RlLm5v
ZGVUeXBlPT09MSl7cmV0dXJuIGZhbHNlO319CnJldHVybiB0cnVlO2Nhc2UnbnRoJzp2YXIgZmly
c3Q9bWF0Y2hbMl0sbGFzdD1tYXRjaFszXTtpZihmaXJzdD09PTEmJmxhc3Q9PT0wKXtyZXR1cm4g
dHJ1ZTt9CnZhciBkb25lTmFtZT1tYXRjaFswXSxwYXJlbnQ9ZWxlbS5wYXJlbnROb2RlO2lmKHBh
cmVudCYmKHBhcmVudC5zaXpjYWNoZSE9PWRvbmVOYW1lfHwhZWxlbS5ub2RlSW5kZXgpKXt2YXIg
Y291bnQ9MDtmb3Iobm9kZT1wYXJlbnQuZmlyc3RDaGlsZDtub2RlO25vZGU9bm9kZS5uZXh0U2li
bGluZyl7aWYobm9kZS5ub2RlVHlwZT09PTEpe25vZGUubm9kZUluZGV4PSsrY291bnQ7fX0KcGFy
ZW50LnNpemNhY2hlPWRvbmVOYW1lO30KdmFyIGRpZmY9ZWxlbS5ub2RlSW5kZXgtbGFzdDtpZihm
aXJzdD09PTApe3JldHVybiBkaWZmPT09MDt9ZWxzZXtyZXR1cm4oZGlmZiVmaXJzdD09PTAmJmRp
ZmYvZmlyc3Q+PTApO319fSxJRDpmdW5jdGlvbihlbGVtLG1hdGNoKXtyZXR1cm4gZWxlbS5ub2Rl
VHlwZT09PTEmJmVsZW0uZ2V0QXR0cmlidXRlKCJpZCIpPT09bWF0Y2g7fSxUQUc6ZnVuY3Rpb24o
ZWxlbSxtYXRjaCl7cmV0dXJuKG1hdGNoPT09IioiJiZlbGVtLm5vZGVUeXBlPT09MSl8fGVsZW0u
bm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PW1hdGNoO30sQ0xBU1M6ZnVuY3Rpb24oZWxlbSxtYXRj
aCl7cmV0dXJuKCIgIisoZWxlbS5jbGFzc05hbWV8fGVsZW0uZ2V0QXR0cmlidXRlKCJjbGFzcyIp
KSsiICIpLmluZGV4T2YobWF0Y2gpPi0xO30sQVRUUjpmdW5jdGlvbihlbGVtLG1hdGNoKXt2YXIg
bmFtZT1tYXRjaFsxXSxyZXN1bHQ9RXhwci5hdHRySGFuZGxlW25hbWVdP0V4cHIuYXR0ckhhbmRs
ZVtuYW1lXShlbGVtKTplbGVtW25hbWVdIT1udWxsP2VsZW1bbmFtZV06ZWxlbS5nZXRBdHRyaWJ1
dGUobmFtZSksdmFsdWU9cmVzdWx0KyIiLHR5cGU9bWF0Y2hbMl0sY2hlY2s9bWF0Y2hbNF07cmV0
dXJuIHJlc3VsdD09bnVsbD90eXBlPT09IiE9Ijp0eXBlPT09Ij0iP3ZhbHVlPT09Y2hlY2s6dHlw
ZT09PSIqPSI/dmFsdWUuaW5kZXhPZihjaGVjayk+PTA6dHlwZT09PSJ+PSI/KCIgIit2YWx1ZSsi
ICIpLmluZGV4T2YoY2hlY2spPj0wOiFjaGVjaz92YWx1ZSYmcmVzdWx0IT09ZmFsc2U6dHlwZT09
PSIhPSI/dmFsdWUhPT1jaGVjazp0eXBlPT09Il49Ij92YWx1ZS5pbmRleE9mKGNoZWNrKT09PTA6
dHlwZT09PSIkPSI/dmFsdWUuc3Vic3RyKHZhbHVlLmxlbmd0aC1jaGVjay5sZW5ndGgpPT09Y2hl
Y2s6dHlwZT09PSJ8PSI/dmFsdWU9PT1jaGVja3x8dmFsdWUuc3Vic3RyKDAsY2hlY2subGVuZ3Ro
KzEpPT09Y2hlY2srIi0iOmZhbHNlO30sUE9TOmZ1bmN0aW9uKGVsZW0sbWF0Y2gsaSxhcnJheSl7
dmFyIG5hbWU9bWF0Y2hbMl0sZmlsdGVyPUV4cHIuc2V0RmlsdGVyc1tuYW1lXTtpZihmaWx0ZXIp
e3JldHVybiBmaWx0ZXIoZWxlbSxpLG1hdGNoLGFycmF5KTt9fX19O3ZhciBvcmlnUE9TPUV4cHIu
bWF0Y2guUE9TO2Zvcih2YXIgdHlwZSBpbiBFeHByLm1hdGNoKXtFeHByLm1hdGNoW3R5cGVdPW5l
dyBSZWdFeHAoRXhwci5tYXRjaFt0eXBlXS5zb3VyY2UrLyg/IVteXFtdKlxdKSg/IVteXChdKlwp
KS8uc291cmNlKTtFeHByLmxlZnRNYXRjaFt0eXBlXT1uZXcgUmVnRXhwKC8oXig/Oi58XHJ8XG4p
Kj8pLy5zb3VyY2UrRXhwci5tYXRjaFt0eXBlXS5zb3VyY2UucmVwbGFjZSgvXFwoXGQrKS9nLGZ1
bmN0aW9uKGFsbCxudW0pe3JldHVybiJcXCIrKG51bS0wKzEpO30pKTt9CnZhciBtYWtlQXJyYXk9
ZnVuY3Rpb24oYXJyYXkscmVzdWx0cyl7YXJyYXk9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwo
YXJyYXksMCk7aWYocmVzdWx0cyl7cmVzdWx0cy5wdXNoLmFwcGx5KHJlc3VsdHMsYXJyYXkpO3Jl
dHVybiByZXN1bHRzO30KcmV0dXJuIGFycmF5O307dHJ5e0FycmF5LnByb3RvdHlwZS5zbGljZS5j
YWxsKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jaGlsZE5vZGVzLDApWzBdLm5vZGVUeXBlO31j
YXRjaChlKXttYWtlQXJyYXk9ZnVuY3Rpb24oYXJyYXkscmVzdWx0cyl7dmFyIHJldD1yZXN1bHRz
fHxbXTtpZih0b1N0cmluZy5jYWxsKGFycmF5KT09PSJbb2JqZWN0IEFycmF5XSIpe0FycmF5LnBy
b3RvdHlwZS5wdXNoLmFwcGx5KHJldCxhcnJheSk7fWVsc2V7aWYodHlwZW9mIGFycmF5Lmxlbmd0
aD09PSJudW1iZXIiKXtmb3IodmFyIGk9MCxsPWFycmF5Lmxlbmd0aDtpPGw7aSsrKXtyZXQucHVz
aChhcnJheVtpXSk7fX1lbHNle2Zvcih2YXIgaT0wO2FycmF5W2ldO2krKyl7cmV0LnB1c2goYXJy
YXlbaV0pO319fQpyZXR1cm4gcmV0O307fQp2YXIgc29ydE9yZGVyO2lmKGRvY3VtZW50LmRvY3Vt
ZW50RWxlbWVudC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbil7c29ydE9yZGVyPWZ1bmN0aW9uKGEs
Yil7aWYoIWEuY29tcGFyZURvY3VtZW50UG9zaXRpb258fCFiLmNvbXBhcmVEb2N1bWVudFBvc2l0
aW9uKXtpZihhPT1iKXtoYXNEdXBsaWNhdGU9dHJ1ZTt9CnJldHVybiBhLmNvbXBhcmVEb2N1bWVu
dFBvc2l0aW9uPy0xOjE7fQp2YXIgcmV0PWEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYikmND8t
MTphPT09Yj8wOjE7aWYocmV0PT09MCl7aGFzRHVwbGljYXRlPXRydWU7fQpyZXR1cm4gcmV0O307
fWVsc2UgaWYoInNvdXJjZUluZGV4ImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCl7c29ydE9y
ZGVyPWZ1bmN0aW9uKGEsYil7aWYoIWEuc291cmNlSW5kZXh8fCFiLnNvdXJjZUluZGV4KXtpZihh
PT1iKXtoYXNEdXBsaWNhdGU9dHJ1ZTt9CnJldHVybiBhLnNvdXJjZUluZGV4Py0xOjE7fQp2YXIg
cmV0PWEuc291cmNlSW5kZXgtYi5zb3VyY2VJbmRleDtpZihyZXQ9PT0wKXtoYXNEdXBsaWNhdGU9
dHJ1ZTt9CnJldHVybiByZXQ7fTt9ZWxzZSBpZihkb2N1bWVudC5jcmVhdGVSYW5nZSl7c29ydE9y
ZGVyPWZ1bmN0aW9uKGEsYil7aWYoIWEub3duZXJEb2N1bWVudHx8IWIub3duZXJEb2N1bWVudCl7
aWYoYT09Yil7aGFzRHVwbGljYXRlPXRydWU7fQpyZXR1cm4gYS5vd25lckRvY3VtZW50Py0xOjE7
fQp2YXIgYVJhbmdlPWEub3duZXJEb2N1bWVudC5jcmVhdGVSYW5nZSgpLGJSYW5nZT1iLm93bmVy
RG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTthUmFuZ2Uuc2V0U3RhcnQoYSwwKTthUmFuZ2Uuc2V0RW5k
KGEsMCk7YlJhbmdlLnNldFN0YXJ0KGIsMCk7YlJhbmdlLnNldEVuZChiLDApO3ZhciByZXQ9YVJh
bmdlLmNvbXBhcmVCb3VuZGFyeVBvaW50cyhSYW5nZS5TVEFSVF9UT19FTkQsYlJhbmdlKTtpZihy
ZXQ9PT0wKXtoYXNEdXBsaWNhdGU9dHJ1ZTt9CnJldHVybiByZXQ7fTt9CmZ1bmN0aW9uIGdldFRl
eHQoZWxlbXMpe3ZhciByZXQ9IiIsZWxlbTtmb3IodmFyIGk9MDtlbGVtc1tpXTtpKyspe2VsZW09
ZWxlbXNbaV07aWYoZWxlbS5ub2RlVHlwZT09PTN8fGVsZW0ubm9kZVR5cGU9PT00KXtyZXQrPWVs
ZW0ubm9kZVZhbHVlO31lbHNlIGlmKGVsZW0ubm9kZVR5cGUhPT04KXtyZXQrPWdldFRleHQoZWxl
bS5jaGlsZE5vZGVzKTt9fQpyZXR1cm4gcmV0O30KKGZ1bmN0aW9uKCl7dmFyIGZvcm09ZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2IiksaWQ9InNjcmlwdCIrKG5ldyBEYXRlKS5nZXRUaW1lKCk7
Zm9ybS5pbm5lckhUTUw9IjxhIG5hbWU9JyIraWQrIicvPiI7dmFyIHJvb3Q9ZG9jdW1lbnQuZG9j
dW1lbnRFbGVtZW50O3Jvb3QuaW5zZXJ0QmVmb3JlKGZvcm0scm9vdC5maXJzdENoaWxkKTtpZihk
b2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkpe0V4cHIuZmluZC5JRD1mdW5jdGlvbihtYXRjaCxj
b250ZXh0LGlzWE1MKXtpZih0eXBlb2YgY29udGV4dC5nZXRFbGVtZW50QnlJZCE9PSJ1bmRlZmlu
ZWQiJiYhaXNYTUwpe3ZhciBtPWNvbnRleHQuZ2V0RWxlbWVudEJ5SWQobWF0Y2hbMV0pO3JldHVy
biBtP20uaWQ9PT1tYXRjaFsxXXx8dHlwZW9mIG0uZ2V0QXR0cmlidXRlTm9kZSE9PSJ1bmRlZmlu
ZWQiJiZtLmdldEF0dHJpYnV0ZU5vZGUoImlkIikubm9kZVZhbHVlPT09bWF0Y2hbMV0/W21dOnVu
ZGVmaW5lZDpbXTt9fTtFeHByLmZpbHRlci5JRD1mdW5jdGlvbihlbGVtLG1hdGNoKXt2YXIgbm9k
ZT10eXBlb2YgZWxlbS5nZXRBdHRyaWJ1dGVOb2RlIT09InVuZGVmaW5lZCImJmVsZW0uZ2V0QXR0
cmlidXRlTm9kZSgiaWQiKTtyZXR1cm4gZWxlbS5ub2RlVHlwZT09PTEmJm5vZGUmJm5vZGUubm9k
ZVZhbHVlPT09bWF0Y2g7fTt9CnJvb3QucmVtb3ZlQ2hpbGQoZm9ybSk7cm9vdD1mb3JtPW51bGw7
fSkoKTsoZnVuY3Rpb24oKXt2YXIgZGl2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2Rp
di5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVDb21tZW50KCIiKSk7aWYoZGl2LmdldEVsZW1l
bnRzQnlUYWdOYW1lKCIqIikubGVuZ3RoPjApe0V4cHIuZmluZC5UQUc9ZnVuY3Rpb24obWF0Y2gs
Y29udGV4dCl7dmFyIHJlc3VsdHM9Y29udGV4dC5nZXRFbGVtZW50c0J5VGFnTmFtZShtYXRjaFsx
XSk7aWYobWF0Y2hbMV09PT0iKiIpe3ZhciB0bXA9W107Zm9yKHZhciBpPTA7cmVzdWx0c1tpXTtp
Kyspe2lmKHJlc3VsdHNbaV0ubm9kZVR5cGU9PT0xKXt0bXAucHVzaChyZXN1bHRzW2ldKTt9fQpy
ZXN1bHRzPXRtcDt9CnJldHVybiByZXN1bHRzO307fQpkaXYuaW5uZXJIVE1MPSI8YSBocmVmPScj
Jz48L2E+IjtpZihkaXYuZmlyc3RDaGlsZCYmdHlwZW9mIGRpdi5maXJzdENoaWxkLmdldEF0dHJp
YnV0ZSE9PSJ1bmRlZmluZWQiJiZkaXYuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoImhyZWYiKSE9
PSIjIil7RXhwci5hdHRySGFuZGxlLmhyZWY9ZnVuY3Rpb24oZWxlbSl7cmV0dXJuIGVsZW0uZ2V0
QXR0cmlidXRlKCJocmVmIiwyKTt9O30KZGl2PW51bGw7fSkoKTtpZihkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKXsoZnVuY3Rpb24oKXt2YXIgb2xkU2l6emxlPVNpenpsZSxkaXY9ZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiZGl2Iik7ZGl2LmlubmVySFRNTD0iPHAgY2xhc3M9J1RFU1QnPjwvcD4i
O2lmKGRpdi5xdWVyeVNlbGVjdG9yQWxsJiZkaXYucXVlcnlTZWxlY3RvckFsbCgiLlRFU1QiKS5s
ZW5ndGg9PT0wKXtyZXR1cm47fQpTaXp6bGU9ZnVuY3Rpb24ocXVlcnksY29udGV4dCxleHRyYSxz
ZWVkKXtjb250ZXh0PWNvbnRleHR8fGRvY3VtZW50O2lmKCFzZWVkJiZjb250ZXh0Lm5vZGVUeXBl
PT09OSYmIWlzWE1MKGNvbnRleHQpKXt0cnl7cmV0dXJuIG1ha2VBcnJheShjb250ZXh0LnF1ZXJ5
U2VsZWN0b3JBbGwocXVlcnkpLGV4dHJhKTt9Y2F0Y2goZSl7fX0KcmV0dXJuIG9sZFNpenpsZShx
dWVyeSxjb250ZXh0LGV4dHJhLHNlZWQpO307Zm9yKHZhciBwcm9wIGluIG9sZFNpenpsZSl7U2l6
emxlW3Byb3BdPW9sZFNpenpsZVtwcm9wXTt9CmRpdj1udWxsO30pKCk7fQooZnVuY3Rpb24oKXt2
YXIgZGl2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2Rpdi5pbm5lckhUTUw9IjxkaXYg
Y2xhc3M9J3Rlc3QgZSc+PC9kaXY+PGRpdiBjbGFzcz0ndGVzdCc+PC9kaXY+IjtpZighZGl2Lmdl
dEVsZW1lbnRzQnlDbGFzc05hbWV8fGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJlIikubGVu
Z3RoPT09MCl7cmV0dXJuO30KZGl2Lmxhc3RDaGlsZC5jbGFzc05hbWU9ImUiO2lmKGRpdi5nZXRF
bGVtZW50c0J5Q2xhc3NOYW1lKCJlIikubGVuZ3RoPT09MSl7cmV0dXJuO30KRXhwci5vcmRlci5z
cGxpY2UoMSwwLCJDTEFTUyIpO0V4cHIuZmluZC5DTEFTUz1mdW5jdGlvbihtYXRjaCxjb250ZXh0
LGlzWE1MKXtpZih0eXBlb2YgY29udGV4dC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lIT09InVuZGVm
aW5lZCImJiFpc1hNTCl7cmV0dXJuIGNvbnRleHQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShtYXRj
aFsxXSk7fX07ZGl2PW51bGw7fSkoKTtmdW5jdGlvbiBkaXJOb2RlQ2hlY2soZGlyLGN1cixkb25l
TmFtZSxjaGVja1NldCxub2RlQ2hlY2ssaXNYTUwpe2Zvcih2YXIgaT0wLGw9Y2hlY2tTZXQubGVu
Z3RoO2k8bDtpKyspe3ZhciBlbGVtPWNoZWNrU2V0W2ldO2lmKGVsZW0pe2VsZW09ZWxlbVtkaXJd
O3ZhciBtYXRjaD1mYWxzZTt3aGlsZShlbGVtKXtpZihlbGVtLnNpemNhY2hlPT09ZG9uZU5hbWUp
e21hdGNoPWNoZWNrU2V0W2VsZW0uc2l6c2V0XTticmVhazt9CmlmKGVsZW0ubm9kZVR5cGU9PT0x
JiYhaXNYTUwpe2VsZW0uc2l6Y2FjaGU9ZG9uZU5hbWU7ZWxlbS5zaXpzZXQ9aTt9CmlmKGVsZW0u
bm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PWN1cil7bWF0Y2g9ZWxlbTticmVhazt9CmVsZW09ZWxl
bVtkaXJdO30KY2hlY2tTZXRbaV09bWF0Y2g7fX19CmZ1bmN0aW9uIGRpckNoZWNrKGRpcixjdXIs
ZG9uZU5hbWUsY2hlY2tTZXQsbm9kZUNoZWNrLGlzWE1MKXtmb3IodmFyIGk9MCxsPWNoZWNrU2V0
Lmxlbmd0aDtpPGw7aSsrKXt2YXIgZWxlbT1jaGVja1NldFtpXTtpZihlbGVtKXtlbGVtPWVsZW1b
ZGlyXTt2YXIgbWF0Y2g9ZmFsc2U7d2hpbGUoZWxlbSl7aWYoZWxlbS5zaXpjYWNoZT09PWRvbmVO
YW1lKXttYXRjaD1jaGVja1NldFtlbGVtLnNpenNldF07YnJlYWs7fQppZihlbGVtLm5vZGVUeXBl
PT09MSl7aWYoIWlzWE1MKXtlbGVtLnNpemNhY2hlPWRvbmVOYW1lO2VsZW0uc2l6c2V0PWk7fQpp
Zih0eXBlb2YgY3VyIT09InN0cmluZyIpe2lmKGVsZW09PT1jdXIpe21hdGNoPXRydWU7YnJlYWs7
fX1lbHNlIGlmKFNpenpsZS5maWx0ZXIoY3VyLFtlbGVtXSkubGVuZ3RoPjApe21hdGNoPWVsZW07
YnJlYWs7fX0KZWxlbT1lbGVtW2Rpcl07fQpjaGVja1NldFtpXT1tYXRjaDt9fX0KdmFyIGNvbnRh
aW5zPWRvY3VtZW50LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uP2Z1bmN0aW9uKGEsYil7cmV0dXJu
ISEoYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKSYxNik7fTpmdW5jdGlvbihhLGIpe3JldHVy
biBhIT09YiYmKGEuY29udGFpbnM/YS5jb250YWlucyhiKTp0cnVlKTt9O3ZhciBpc1hNTD1mdW5j
dGlvbihlbGVtKXt2YXIgZG9jdW1lbnRFbGVtZW50PShlbGVtP2VsZW0ub3duZXJEb2N1bWVudHx8
ZWxlbTowKS5kb2N1bWVudEVsZW1lbnQ7cmV0dXJuIGRvY3VtZW50RWxlbWVudD9kb2N1bWVudEVs
ZW1lbnQubm9kZU5hbWUhPT0iSFRNTCI6ZmFsc2U7fTt2YXIgcG9zUHJvY2Vzcz1mdW5jdGlvbihz
ZWxlY3Rvcixjb250ZXh0KXt2YXIgdG1wU2V0PVtdLGxhdGVyPSIiLG1hdGNoLHJvb3Q9Y29udGV4
dC5ub2RlVHlwZT9bY29udGV4dF06Y29udGV4dDt3aGlsZSgobWF0Y2g9RXhwci5tYXRjaC5QU0VV
RE8uZXhlYyhzZWxlY3RvcikpKXtsYXRlcis9bWF0Y2hbMF07c2VsZWN0b3I9c2VsZWN0b3IucmVw
bGFjZShFeHByLm1hdGNoLlBTRVVETywiIik7fQpzZWxlY3Rvcj1FeHByLnJlbGF0aXZlW3NlbGVj
dG9yXT9zZWxlY3RvcisiKiI6c2VsZWN0b3I7Zm9yKHZhciBpPTAsbD1yb290Lmxlbmd0aDtpPGw7
aSsrKXtTaXp6bGUoc2VsZWN0b3Iscm9vdFtpXSx0bXBTZXQpO30KcmV0dXJuIFNpenpsZS5maWx0
ZXIobGF0ZXIsdG1wU2V0KTt9O2pRdWVyeS5maW5kPVNpenpsZTtqUXVlcnkuZXhwcj1TaXp6bGUu
c2VsZWN0b3JzO2pRdWVyeS5leHByWyI6Il09alF1ZXJ5LmV4cHIuZmlsdGVycztqUXVlcnkudW5p
cXVlPVNpenpsZS51bmlxdWVTb3J0O2pRdWVyeS50ZXh0PWdldFRleHQ7alF1ZXJ5LmlzWE1MRG9j
PWlzWE1MO2pRdWVyeS5jb250YWlucz1jb250YWlucztyZXR1cm47d2luZG93LlNpenpsZT1TaXp6
bGU7fSkoKTt2YXIgcnVudGlsPS9VbnRpbCQvLHJwYXJlbnRzcHJldj0vXig/OnBhcmVudHN8cHJl
dlVudGlsfHByZXZBbGwpLyxybXVsdGlzZWxlY3Rvcj0vLC8sc2xpY2U9QXJyYXkucHJvdG90eXBl
LnNsaWNlO3ZhciB3aW5ub3c9ZnVuY3Rpb24oZWxlbWVudHMscXVhbGlmaWVyLGtlZXApe2lmKGpR
dWVyeS5pc0Z1bmN0aW9uKHF1YWxpZmllcikpe3JldHVybiBqUXVlcnkuZ3JlcChlbGVtZW50cyxm
dW5jdGlvbihlbGVtLGkpe3JldHVybiEhcXVhbGlmaWVyLmNhbGwoZWxlbSxpLGVsZW0pPT09a2Vl
cDt9KTt9ZWxzZSBpZihxdWFsaWZpZXIubm9kZVR5cGUpe3JldHVybiBqUXVlcnkuZ3JlcChlbGVt
ZW50cyxmdW5jdGlvbihlbGVtLGkpe3JldHVybihlbGVtPT09cXVhbGlmaWVyKT09PWtlZXA7fSk7
fWVsc2UgaWYodHlwZW9mIHF1YWxpZmllcj09PSJzdHJpbmciKXt2YXIgZmlsdGVyZWQ9alF1ZXJ5
LmdyZXAoZWxlbWVudHMsZnVuY3Rpb24oZWxlbSl7cmV0dXJuIGVsZW0ubm9kZVR5cGU9PT0xO30p
O2lmKGlzU2ltcGxlLnRlc3QocXVhbGlmaWVyKSl7cmV0dXJuIGpRdWVyeS5maWx0ZXIocXVhbGlm
aWVyLGZpbHRlcmVkLCFrZWVwKTt9ZWxzZXtxdWFsaWZpZXI9alF1ZXJ5LmZpbHRlcihxdWFsaWZp
ZXIsZmlsdGVyZWQpO319CnJldHVybiBqUXVlcnkuZ3JlcChlbGVtZW50cyxmdW5jdGlvbihlbGVt
LGkpe3JldHVybihqUXVlcnkuaW5BcnJheShlbGVtLHF1YWxpZmllcik+PTApPT09a2VlcDt9KTt9
O2pRdWVyeS5mbi5leHRlbmQoe2ZpbmQ6ZnVuY3Rpb24oc2VsZWN0b3Ipe3ZhciByZXQ9dGhpcy5w
dXNoU3RhY2soIiIsImZpbmQiLHNlbGVjdG9yKSxsZW5ndGg9MDtmb3IodmFyIGk9MCxsPXRoaXMu
bGVuZ3RoO2k8bDtpKyspe2xlbmd0aD1yZXQubGVuZ3RoO2pRdWVyeS5maW5kKHNlbGVjdG9yLHRo
aXNbaV0scmV0KTtpZihpPjApe2Zvcih2YXIgbj1sZW5ndGg7bjxyZXQubGVuZ3RoO24rKyl7Zm9y
KHZhciByPTA7cjxsZW5ndGg7cisrKXtpZihyZXRbcl09PT1yZXRbbl0pe3JldC5zcGxpY2Uobi0t
LDEpO2JyZWFrO319fX19CnJldHVybiByZXQ7fSxoYXM6ZnVuY3Rpb24odGFyZ2V0KXt2YXIgdGFy
Z2V0cz1qUXVlcnkodGFyZ2V0KTtyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oKXtmb3IodmFy
IGk9MCxsPXRhcmdldHMubGVuZ3RoO2k8bDtpKyspe2lmKGpRdWVyeS5jb250YWlucyh0aGlzLHRh
cmdldHNbaV0pKXtyZXR1cm4gdHJ1ZTt9fX0pO30sbm90OmZ1bmN0aW9uKHNlbGVjdG9yKXtyZXR1
cm4gdGhpcy5wdXNoU3RhY2sod2lubm93KHRoaXMsc2VsZWN0b3IsZmFsc2UpLCJub3QiLHNlbGVj
dG9yKTt9LGZpbHRlcjpmdW5jdGlvbihzZWxlY3Rvcil7cmV0dXJuIHRoaXMucHVzaFN0YWNrKHdp
bm5vdyh0aGlzLHNlbGVjdG9yLHRydWUpLCJmaWx0ZXIiLHNlbGVjdG9yKTt9LGlzOmZ1bmN0aW9u
KHNlbGVjdG9yKXtyZXR1cm4hIXNlbGVjdG9yJiZqUXVlcnkuZmlsdGVyKHNlbGVjdG9yLHRoaXMp
Lmxlbmd0aD4wO30sY2xvc2VzdDpmdW5jdGlvbihzZWxlY3RvcnMsY29udGV4dCl7aWYoalF1ZXJ5
LmlzQXJyYXkoc2VsZWN0b3JzKSl7dmFyIHJldD1bXSxjdXI9dGhpc1swXSxtYXRjaCxtYXRjaGVz
PXt9LHNlbGVjdG9yO2lmKGN1ciYmc2VsZWN0b3JzLmxlbmd0aCl7Zm9yKHZhciBpPTAsbD1zZWxl
Y3RvcnMubGVuZ3RoO2k8bDtpKyspe3NlbGVjdG9yPXNlbGVjdG9yc1tpXTtpZighbWF0Y2hlc1tz
ZWxlY3Rvcl0pe21hdGNoZXNbc2VsZWN0b3JdPWpRdWVyeS5leHByLm1hdGNoLlBPUy50ZXN0KHNl
bGVjdG9yKT9qUXVlcnkoc2VsZWN0b3IsY29udGV4dHx8dGhpcy5jb250ZXh0KTpzZWxlY3Rvcjt9
fQp3aGlsZShjdXImJmN1ci5vd25lckRvY3VtZW50JiZjdXIhPT1jb250ZXh0KXtmb3Ioc2VsZWN0
b3IgaW4gbWF0Y2hlcyl7bWF0Y2g9bWF0Y2hlc1tzZWxlY3Rvcl07aWYobWF0Y2guanF1ZXJ5P21h
dGNoLmluZGV4KGN1cik+LTE6alF1ZXJ5KGN1cikuaXMobWF0Y2gpKXtyZXQucHVzaCh7c2VsZWN0
b3I6c2VsZWN0b3IsZWxlbTpjdXJ9KTtkZWxldGUgbWF0Y2hlc1tzZWxlY3Rvcl07fX0KY3VyPWN1
ci5wYXJlbnROb2RlO319CnJldHVybiByZXQ7fQp2YXIgcG9zPWpRdWVyeS5leHByLm1hdGNoLlBP
Uy50ZXN0KHNlbGVjdG9ycyk/alF1ZXJ5KHNlbGVjdG9ycyxjb250ZXh0fHx0aGlzLmNvbnRleHQp
Om51bGw7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKGksY3VyKXt3aGlsZShjdXImJmN1ci5vd25l
ckRvY3VtZW50JiZjdXIhPT1jb250ZXh0KXtpZihwb3M/cG9zLmluZGV4KGN1cik+LTE6alF1ZXJ5
KGN1cikuaXMoc2VsZWN0b3JzKSl7cmV0dXJuIGN1cjt9CmN1cj1jdXIucGFyZW50Tm9kZTt9CnJl
dHVybiBudWxsO30pO30saW5kZXg6ZnVuY3Rpb24oZWxlbSl7aWYoIWVsZW18fHR5cGVvZiBlbGVt
PT09InN0cmluZyIpe3JldHVybiBqUXVlcnkuaW5BcnJheSh0aGlzWzBdLGVsZW0/alF1ZXJ5KGVs
ZW0pOnRoaXMucGFyZW50KCkuY2hpbGRyZW4oKSk7fQpyZXR1cm4galF1ZXJ5LmluQXJyYXkoZWxl
bS5qcXVlcnk/ZWxlbVswXTplbGVtLHRoaXMpO30sYWRkOmZ1bmN0aW9uKHNlbGVjdG9yLGNvbnRl
eHQpe3ZhciBzZXQ9dHlwZW9mIHNlbGVjdG9yPT09InN0cmluZyI/alF1ZXJ5KHNlbGVjdG9yLGNv
bnRleHR8fHRoaXMuY29udGV4dCk6alF1ZXJ5Lm1ha2VBcnJheShzZWxlY3RvciksYWxsPWpRdWVy
eS5tZXJnZSh0aGlzLmdldCgpLHNldCk7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGlzRGlzY29ubmVj
dGVkKHNldFswXSl8fGlzRGlzY29ubmVjdGVkKGFsbFswXSk/YWxsOmpRdWVyeS51bmlxdWUoYWxs
KSk7fSxhbmRTZWxmOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYWRkKHRoaXMucHJldk9iamVjdCk7
fX0pO2Z1bmN0aW9uIGlzRGlzY29ubmVjdGVkKG5vZGUpe3JldHVybiFub2RlfHwhbm9kZS5wYXJl
bnROb2RlfHxub2RlLnBhcmVudE5vZGUubm9kZVR5cGU9PT0xMTt9CmpRdWVyeS5lYWNoKHtwYXJl
bnQ6ZnVuY3Rpb24oZWxlbSl7dmFyIHBhcmVudD1lbGVtLnBhcmVudE5vZGU7cmV0dXJuIHBhcmVu
dCYmcGFyZW50Lm5vZGVUeXBlIT09MTE/cGFyZW50Om51bGw7fSxwYXJlbnRzOmZ1bmN0aW9uKGVs
ZW0pe3JldHVybiBqUXVlcnkuZGlyKGVsZW0sInBhcmVudE5vZGUiKTt9LHBhcmVudHNVbnRpbDpm
dW5jdGlvbihlbGVtLGksdW50aWwpe3JldHVybiBqUXVlcnkuZGlyKGVsZW0sInBhcmVudE5vZGUi
LHVudGlsKTt9LG5leHQ6ZnVuY3Rpb24oZWxlbSl7cmV0dXJuIGpRdWVyeS5udGgoZWxlbSwyLCJu
ZXh0U2libGluZyIpO30scHJldjpmdW5jdGlvbihlbGVtKXtyZXR1cm4galF1ZXJ5Lm50aChlbGVt
LDIsInByZXZpb3VzU2libGluZyIpO30sbmV4dEFsbDpmdW5jdGlvbihlbGVtKXtyZXR1cm4galF1
ZXJ5LmRpcihlbGVtLCJuZXh0U2libGluZyIpO30scHJldkFsbDpmdW5jdGlvbihlbGVtKXtyZXR1
cm4galF1ZXJ5LmRpcihlbGVtLCJwcmV2aW91c1NpYmxpbmciKTt9LG5leHRVbnRpbDpmdW5jdGlv
bihlbGVtLGksdW50aWwpe3JldHVybiBqUXVlcnkuZGlyKGVsZW0sIm5leHRTaWJsaW5nIix1bnRp
bCk7fSxwcmV2VW50aWw6ZnVuY3Rpb24oZWxlbSxpLHVudGlsKXtyZXR1cm4galF1ZXJ5LmRpcihl
bGVtLCJwcmV2aW91c1NpYmxpbmciLHVudGlsKTt9LHNpYmxpbmdzOmZ1bmN0aW9uKGVsZW0pe3Jl
dHVybiBqUXVlcnkuc2libGluZyhlbGVtLnBhcmVudE5vZGUuZmlyc3RDaGlsZCxlbGVtKTt9LGNo
aWxkcmVuOmZ1bmN0aW9uKGVsZW0pe3JldHVybiBqUXVlcnkuc2libGluZyhlbGVtLmZpcnN0Q2hp
bGQpO30sY29udGVudHM6ZnVuY3Rpb24oZWxlbSl7cmV0dXJuIGpRdWVyeS5ub2RlTmFtZShlbGVt
LCJpZnJhbWUiKT9lbGVtLmNvbnRlbnREb2N1bWVudHx8ZWxlbS5jb250ZW50V2luZG93LmRvY3Vt
ZW50OmpRdWVyeS5tYWtlQXJyYXkoZWxlbS5jaGlsZE5vZGVzKTt9fSxmdW5jdGlvbihuYW1lLGZu
KXtqUXVlcnkuZm5bbmFtZV09ZnVuY3Rpb24odW50aWwsc2VsZWN0b3Ipe3ZhciByZXQ9alF1ZXJ5
Lm1hcCh0aGlzLGZuLHVudGlsKTtpZighcnVudGlsLnRlc3QobmFtZSkpe3NlbGVjdG9yPXVudGls
O30KaWYoc2VsZWN0b3ImJnR5cGVvZiBzZWxlY3Rvcj09PSJzdHJpbmciKXtyZXQ9alF1ZXJ5LmZp
bHRlcihzZWxlY3RvcixyZXQpO30KcmV0PXRoaXMubGVuZ3RoPjE/alF1ZXJ5LnVuaXF1ZShyZXQp
OnJldDtpZigodGhpcy5sZW5ndGg+MXx8cm11bHRpc2VsZWN0b3IudGVzdChzZWxlY3RvcikpJiZy
cGFyZW50c3ByZXYudGVzdChuYW1lKSl7cmV0PXJldC5yZXZlcnNlKCk7fQpyZXR1cm4gdGhpcy5w
dXNoU3RhY2socmV0LG5hbWUsc2xpY2UuY2FsbChhcmd1bWVudHMpLmpvaW4oIiwiKSk7fTt9KTtq
UXVlcnkuZXh0ZW5kKHtmaWx0ZXI6ZnVuY3Rpb24oZXhwcixlbGVtcyxub3Qpe2lmKG5vdCl7ZXhw
cj0iOm5vdCgiK2V4cHIrIikiO30KcmV0dXJuIGpRdWVyeS5maW5kLm1hdGNoZXMoZXhwcixlbGVt
cyk7fSxkaXI6ZnVuY3Rpb24oZWxlbSxkaXIsdW50aWwpe3ZhciBtYXRjaGVkPVtdLGN1cj1lbGVt
W2Rpcl07d2hpbGUoY3VyJiZjdXIubm9kZVR5cGUhPT05JiYodW50aWw9PT11bmRlZmluZWR8fGN1
ci5ub2RlVHlwZSE9PTF8fCFqUXVlcnkoY3VyKS5pcyh1bnRpbCkpKXtpZihjdXIubm9kZVR5cGU9
PT0xKXttYXRjaGVkLnB1c2goY3VyKTt9CmN1cj1jdXJbZGlyXTt9CnJldHVybiBtYXRjaGVkO30s
bnRoOmZ1bmN0aW9uKGN1cixyZXN1bHQsZGlyLGVsZW0pe3Jlc3VsdD1yZXN1bHR8fDE7dmFyIG51
bT0wO2Zvcig7Y3VyO2N1cj1jdXJbZGlyXSl7aWYoY3VyLm5vZGVUeXBlPT09MSYmKytudW09PT1y
ZXN1bHQpe2JyZWFrO319CnJldHVybiBjdXI7fSxzaWJsaW5nOmZ1bmN0aW9uKG4sZWxlbSl7dmFy
IHI9W107Zm9yKDtuO249bi5uZXh0U2libGluZyl7aWYobi5ub2RlVHlwZT09PTEmJm4hPT1lbGVt
KXtyLnB1c2gobik7fX0KcmV0dXJuIHI7fX0pO3ZhciByaW5saW5lalF1ZXJ5PS8galF1ZXJ5XGQr
PSIoPzpcZCt8bnVsbCkiL2cscmxlYWRpbmdXaGl0ZXNwYWNlPS9eXHMrLyxyeGh0bWxUYWc9Lyg8
KFtcdzpdKylbXj5dKj8pXC8+L2cscnNlbGZDbG9zaW5nPS9eKD86YXJlYXxicnxjb2x8ZW1iZWR8
aHJ8aW1nfGlucHV0fGxpbmt8bWV0YXxwYXJhbSkkL2kscnRhZ05hbWU9LzwoW1x3Ol0rKS8scnRi
b2R5PS88dGJvZHkvaSxyaHRtbD0vPHwmIz9cdys7Lyxybm9jYWNoZT0vPHNjcmlwdHw8b2JqZWN0
fDxlbWJlZHw8b3B0aW9ufDxzdHlsZS9pLHJjaGVja2VkPS9jaGVja2VkXHMqKD86W149XXw9XHMq
LmNoZWNrZWQuKS9pLGZjbG9zZVRhZz1mdW5jdGlvbihhbGwsZnJvbnQsdGFnKXtyZXR1cm4gcnNl
bGZDbG9zaW5nLnRlc3QodGFnKT9hbGw6ZnJvbnQrIj48LyIrdGFnKyI+Ijt9LHdyYXBNYXA9e29w
dGlvbjpbMSwiPHNlbGVjdCBtdWx0aXBsZT0nbXVsdGlwbGUnPiIsIjwvc2VsZWN0PiJdLGxlZ2Vu
ZDpbMSwiPGZpZWxkc2V0PiIsIjwvZmllbGRzZXQ+Il0sdGhlYWQ6WzEsIjx0YWJsZT4iLCI8L3Rh
YmxlPiJdLHRyOlsyLCI8dGFibGU+PHRib2R5PiIsIjwvdGJvZHk+PC90YWJsZT4iXSx0ZDpbMywi
PHRhYmxlPjx0Ym9keT48dHI+IiwiPC90cj48L3Rib2R5PjwvdGFibGU+Il0sY29sOlsyLCI8dGFi
bGU+PHRib2R5PjwvdGJvZHk+PGNvbGdyb3VwPiIsIjwvY29sZ3JvdXA+PC90YWJsZT4iXSxhcmVh
OlsxLCI8bWFwPiIsIjwvbWFwPiJdLF9kZWZhdWx0OlswLCIiLCIiXX07d3JhcE1hcC5vcHRncm91
cD13cmFwTWFwLm9wdGlvbjt3cmFwTWFwLnRib2R5PXdyYXBNYXAudGZvb3Q9d3JhcE1hcC5jb2xn
cm91cD13cmFwTWFwLmNhcHRpb249d3JhcE1hcC50aGVhZDt3cmFwTWFwLnRoPXdyYXBNYXAudGQ7
aWYoIWpRdWVyeS5zdXBwb3J0Lmh0bWxTZXJpYWxpemUpe3dyYXBNYXAuX2RlZmF1bHQ9WzEsImRp
djxkaXY+IiwiPC9kaXY+Il07fQpqUXVlcnkuZm4uZXh0ZW5kKHt0ZXh0OmZ1bmN0aW9uKHRleHQp
e2lmKGpRdWVyeS5pc0Z1bmN0aW9uKHRleHQpKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGkp
e3ZhciBzZWxmPWpRdWVyeSh0aGlzKTtzZWxmLnRleHQodGV4dC5jYWxsKHRoaXMsaSxzZWxmLnRl
eHQoKSkpO30pO30KaWYodHlwZW9mIHRleHQhPT0ib2JqZWN0IiYmdGV4dCE9PXVuZGVmaW5lZCl7
cmV0dXJuIHRoaXMuZW1wdHkoKS5hcHBlbmQoKHRoaXNbMF0mJnRoaXNbMF0ub3duZXJEb2N1bWVu
dHx8ZG9jdW1lbnQpLmNyZWF0ZVRleHROb2RlKHRleHQpKTt9CnJldHVybiBqUXVlcnkudGV4dCh0
aGlzKTt9LHdyYXBBbGw6ZnVuY3Rpb24oaHRtbCl7aWYoalF1ZXJ5LmlzRnVuY3Rpb24oaHRtbCkp
e3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oaSl7alF1ZXJ5KHRoaXMpLndyYXBBbGwoaHRtbC5j
YWxsKHRoaXMsaSkpO30pO30KaWYodGhpc1swXSl7dmFyIHdyYXA9alF1ZXJ5KGh0bWwsdGhpc1sw
XS5vd25lckRvY3VtZW50KS5lcSgwKS5jbG9uZSh0cnVlKTtpZih0aGlzWzBdLnBhcmVudE5vZGUp
e3dyYXAuaW5zZXJ0QmVmb3JlKHRoaXNbMF0pO30Kd3JhcC5tYXAoZnVuY3Rpb24oKXt2YXIgZWxl
bT10aGlzO3doaWxlKGVsZW0uZmlyc3RDaGlsZCYmZWxlbS5maXJzdENoaWxkLm5vZGVUeXBlPT09
MSl7ZWxlbT1lbGVtLmZpcnN0Q2hpbGQ7fQpyZXR1cm4gZWxlbTt9KS5hcHBlbmQodGhpcyk7fQpy
ZXR1cm4gdGhpczt9LHdyYXBJbm5lcjpmdW5jdGlvbihodG1sKXtpZihqUXVlcnkuaXNGdW5jdGlv
bihodG1sKSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihpKXtqUXVlcnkodGhpcykud3JhcElu
bmVyKGh0bWwuY2FsbCh0aGlzLGkpKTt9KTt9CnJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2
YXIgc2VsZj1qUXVlcnkodGhpcyksY29udGVudHM9c2VsZi5jb250ZW50cygpO2lmKGNvbnRlbnRz
Lmxlbmd0aCl7Y29udGVudHMud3JhcEFsbChodG1sKTt9ZWxzZXtzZWxmLmFwcGVuZChodG1sKTt9
fSk7fSx3cmFwOmZ1bmN0aW9uKGh0bWwpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtqUXVl
cnkodGhpcykud3JhcEFsbChodG1sKTt9KTt9LHVud3JhcDpmdW5jdGlvbigpe3JldHVybiB0aGlz
LnBhcmVudCgpLmVhY2goZnVuY3Rpb24oKXtpZighalF1ZXJ5Lm5vZGVOYW1lKHRoaXMsImJvZHki
KSl7alF1ZXJ5KHRoaXMpLnJlcGxhY2VXaXRoKHRoaXMuY2hpbGROb2Rlcyk7fX0pLmVuZCgpO30s
YXBwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLHRydWUsZnVu
Y3Rpb24oZWxlbSl7aWYodGhpcy5ub2RlVHlwZT09PTEpe3RoaXMuYXBwZW5kQ2hpbGQoZWxlbSk7
fX0pO30scHJlcGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyx0
cnVlLGZ1bmN0aW9uKGVsZW0pe2lmKHRoaXMubm9kZVR5cGU9PT0xKXt0aGlzLmluc2VydEJlZm9y
ZShlbGVtLHRoaXMuZmlyc3RDaGlsZCk7fX0pO30sYmVmb3JlOmZ1bmN0aW9uKCl7aWYodGhpc1sw
XSYmdGhpc1swXS5wYXJlbnROb2RlKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZmFs
c2UsZnVuY3Rpb24oZWxlbSl7dGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlbGVtLHRoaXMp
O30pO31lbHNlIGlmKGFyZ3VtZW50cy5sZW5ndGgpe3ZhciBzZXQ9alF1ZXJ5KGFyZ3VtZW50c1sw
XSk7c2V0LnB1c2guYXBwbHkoc2V0LHRoaXMudG9BcnJheSgpKTtyZXR1cm4gdGhpcy5wdXNoU3Rh
Y2soc2V0LCJiZWZvcmUiLGFyZ3VtZW50cyk7fX0sYWZ0ZXI6ZnVuY3Rpb24oKXtpZih0aGlzWzBd
JiZ0aGlzWzBdLnBhcmVudE5vZGUpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyxmYWxz
ZSxmdW5jdGlvbihlbGVtKXt0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGVsZW0sdGhpcy5u
ZXh0U2libGluZyk7fSk7fWVsc2UgaWYoYXJndW1lbnRzLmxlbmd0aCl7dmFyIHNldD10aGlzLnB1
c2hTdGFjayh0aGlzLCJhZnRlciIsYXJndW1lbnRzKTtzZXQucHVzaC5hcHBseShzZXQsalF1ZXJ5
KGFyZ3VtZW50c1swXSkudG9BcnJheSgpKTtyZXR1cm4gc2V0O319LHJlbW92ZTpmdW5jdGlvbihz
ZWxlY3RvcixrZWVwRGF0YSl7Zm9yKHZhciBpPTAsZWxlbTsoZWxlbT10aGlzW2ldKSE9bnVsbDtp
Kyspe2lmKCFzZWxlY3Rvcnx8alF1ZXJ5LmZpbHRlcihzZWxlY3RvcixbZWxlbV0pLmxlbmd0aCl7
aWYoIWtlZXBEYXRhJiZlbGVtLm5vZGVUeXBlPT09MSl7alF1ZXJ5LmNsZWFuRGF0YShlbGVtLmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCIqIikpO2pRdWVyeS5jbGVhbkRhdGEoW2VsZW1dKTt9CmlmKGVs
ZW0ucGFyZW50Tm9kZSl7ZWxlbS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVsZW0pO319fQpyZXR1
cm4gdGhpczt9LGVtcHR5OmZ1bmN0aW9uKCl7Zm9yKHZhciBpPTAsZWxlbTsoZWxlbT10aGlzW2ld
KSE9bnVsbDtpKyspe2lmKGVsZW0ubm9kZVR5cGU9PT0xKXtqUXVlcnkuY2xlYW5EYXRhKGVsZW0u
Z2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSk7fQp3aGlsZShlbGVtLmZpcnN0Q2hpbGQpe2VsZW0u
cmVtb3ZlQ2hpbGQoZWxlbS5maXJzdENoaWxkKTt9fQpyZXR1cm4gdGhpczt9LGNsb25lOmZ1bmN0
aW9uKGV2ZW50cyl7dmFyIHJldD10aGlzLm1hcChmdW5jdGlvbigpe2lmKCFqUXVlcnkuc3VwcG9y
dC5ub0Nsb25lRXZlbnQmJiFqUXVlcnkuaXNYTUxEb2ModGhpcykpe3ZhciBodG1sPXRoaXMub3V0
ZXJIVE1MLG93bmVyRG9jdW1lbnQ9dGhpcy5vd25lckRvY3VtZW50O2lmKCFodG1sKXt2YXIgZGl2
PW93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZGl2LmFwcGVuZENoaWxkKHRoaXMu
Y2xvbmVOb2RlKHRydWUpKTtodG1sPWRpdi5pbm5lckhUTUw7fQpyZXR1cm4galF1ZXJ5LmNsZWFu
KFtodG1sLnJlcGxhY2UocmlubGluZWpRdWVyeSwiIikucmVwbGFjZSgvPShbXj0iJz5cc10rXC8p
Pi9nLCc9IiQxIj4nKS5yZXBsYWNlKHJsZWFkaW5nV2hpdGVzcGFjZSwiIildLG93bmVyRG9jdW1l
bnQpWzBdO31lbHNle3JldHVybiB0aGlzLmNsb25lTm9kZSh0cnVlKTt9fSk7aWYoZXZlbnRzPT09
dHJ1ZSl7Y2xvbmVDb3B5RXZlbnQodGhpcyxyZXQpO2Nsb25lQ29weUV2ZW50KHRoaXMuZmluZCgi
KiIpLHJldC5maW5kKCIqIikpO30KcmV0dXJuIHJldDt9LGh0bWw6ZnVuY3Rpb24odmFsdWUpe2lm
KHZhbHVlPT09dW5kZWZpbmVkKXtyZXR1cm4gdGhpc1swXSYmdGhpc1swXS5ub2RlVHlwZT09PTE/
dGhpc1swXS5pbm5lckhUTUwucmVwbGFjZShyaW5saW5lalF1ZXJ5LCIiKTpudWxsO31lbHNlIGlm
KHR5cGVvZiB2YWx1ZT09PSJzdHJpbmciJiYhcm5vY2FjaGUudGVzdCh2YWx1ZSkmJihqUXVlcnku
c3VwcG9ydC5sZWFkaW5nV2hpdGVzcGFjZXx8IXJsZWFkaW5nV2hpdGVzcGFjZS50ZXN0KHZhbHVl
KSkmJiF3cmFwTWFwWyhydGFnTmFtZS5leGVjKHZhbHVlKXx8WyIiLCIiXSlbMV0udG9Mb3dlckNh
c2UoKV0pe3ZhbHVlPXZhbHVlLnJlcGxhY2UocnhodG1sVGFnLGZjbG9zZVRhZyk7dHJ5e2Zvcih2
YXIgaT0wLGw9dGhpcy5sZW5ndGg7aTxsO2krKyl7aWYodGhpc1tpXS5ub2RlVHlwZT09PTEpe2pR
dWVyeS5jbGVhbkRhdGEodGhpc1tpXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpKTt0aGlzW2ld
LmlubmVySFRNTD12YWx1ZTt9fX1jYXRjaChlKXt0aGlzLmVtcHR5KCkuYXBwZW5kKHZhbHVlKTt9
fWVsc2UgaWYoalF1ZXJ5LmlzRnVuY3Rpb24odmFsdWUpKXt0aGlzLmVhY2goZnVuY3Rpb24oaSl7
dmFyIHNlbGY9alF1ZXJ5KHRoaXMpLG9sZD1zZWxmLmh0bWwoKTtzZWxmLmVtcHR5KCkuYXBwZW5k
KGZ1bmN0aW9uKCl7cmV0dXJuIHZhbHVlLmNhbGwodGhpcyxpLG9sZCk7fSk7fSk7fWVsc2V7dGhp
cy5lbXB0eSgpLmFwcGVuZCh2YWx1ZSk7fQpyZXR1cm4gdGhpczt9LHJlcGxhY2VXaXRoOmZ1bmN0
aW9uKHZhbHVlKXtpZih0aGlzWzBdJiZ0aGlzWzBdLnBhcmVudE5vZGUpe2lmKGpRdWVyeS5pc0Z1
bmN0aW9uKHZhbHVlKSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihpKXt2YXIgc2VsZj1qUXVl
cnkodGhpcyksb2xkPXNlbGYuaHRtbCgpO3NlbGYucmVwbGFjZVdpdGgodmFsdWUuY2FsbCh0aGlz
LGksb2xkKSk7fSk7fQppZih0eXBlb2YgdmFsdWUhPT0ic3RyaW5nIil7dmFsdWU9alF1ZXJ5KHZh
bHVlKS5kZXRhY2goKTt9CnJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgbmV4dD10aGlz
Lm5leHRTaWJsaW5nLHBhcmVudD10aGlzLnBhcmVudE5vZGU7alF1ZXJ5KHRoaXMpLnJlbW92ZSgp
O2lmKG5leHQpe2pRdWVyeShuZXh0KS5iZWZvcmUodmFsdWUpO31lbHNle2pRdWVyeShwYXJlbnQp
LmFwcGVuZCh2YWx1ZSk7fX0pO31lbHNle3JldHVybiB0aGlzLnB1c2hTdGFjayhqUXVlcnkoalF1
ZXJ5LmlzRnVuY3Rpb24odmFsdWUpP3ZhbHVlKCk6dmFsdWUpLCJyZXBsYWNlV2l0aCIsdmFsdWUp
O319LGRldGFjaDpmdW5jdGlvbihzZWxlY3Rvcil7cmV0dXJuIHRoaXMucmVtb3ZlKHNlbGVjdG9y
LHRydWUpO30sZG9tTWFuaXA6ZnVuY3Rpb24oYXJncyx0YWJsZSxjYWxsYmFjayl7dmFyIHJlc3Vs
dHMsZmlyc3QsdmFsdWU9YXJnc1swXSxzY3JpcHRzPVtdLGZyYWdtZW50LHBhcmVudDtpZighalF1
ZXJ5LnN1cHBvcnQuY2hlY2tDbG9uZSYmYXJndW1lbnRzLmxlbmd0aD09PTMmJnR5cGVvZiB2YWx1
ZT09PSJzdHJpbmciJiZyY2hlY2tlZC50ZXN0KHZhbHVlKSl7cmV0dXJuIHRoaXMuZWFjaChmdW5j
dGlvbigpe2pRdWVyeSh0aGlzKS5kb21NYW5pcChhcmdzLHRhYmxlLGNhbGxiYWNrLHRydWUpO30p
O30KaWYoalF1ZXJ5LmlzRnVuY3Rpb24odmFsdWUpKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9u
KGkpe3ZhciBzZWxmPWpRdWVyeSh0aGlzKTthcmdzWzBdPXZhbHVlLmNhbGwodGhpcyxpLHRhYmxl
P3NlbGYuaHRtbCgpOnVuZGVmaW5lZCk7c2VsZi5kb21NYW5pcChhcmdzLHRhYmxlLGNhbGxiYWNr
KTt9KTt9CmlmKHRoaXNbMF0pe3BhcmVudD12YWx1ZSYmdmFsdWUucGFyZW50Tm9kZTtpZihqUXVl
cnkuc3VwcG9ydC5wYXJlbnROb2RlJiZwYXJlbnQmJnBhcmVudC5ub2RlVHlwZT09PTExJiZwYXJl
bnQuY2hpbGROb2Rlcy5sZW5ndGg9PT10aGlzLmxlbmd0aCl7cmVzdWx0cz17ZnJhZ21lbnQ6cGFy
ZW50fTt9ZWxzZXtyZXN1bHRzPWJ1aWxkRnJhZ21lbnQoYXJncyx0aGlzLHNjcmlwdHMpO30KZnJh
Z21lbnQ9cmVzdWx0cy5mcmFnbWVudDtpZihmcmFnbWVudC5jaGlsZE5vZGVzLmxlbmd0aD09PTEp
e2ZpcnN0PWZyYWdtZW50PWZyYWdtZW50LmZpcnN0Q2hpbGQ7fWVsc2V7Zmlyc3Q9ZnJhZ21lbnQu
Zmlyc3RDaGlsZDt9CmlmKGZpcnN0KXt0YWJsZT10YWJsZSYmalF1ZXJ5Lm5vZGVOYW1lKGZpcnN0
LCJ0ciIpO2Zvcih2YXIgaT0wLGw9dGhpcy5sZW5ndGg7aTxsO2krKyl7Y2FsbGJhY2suY2FsbCh0
YWJsZT9yb290KHRoaXNbaV0sZmlyc3QpOnRoaXNbaV0saT4wfHxyZXN1bHRzLmNhY2hlYWJsZXx8
dGhpcy5sZW5ndGg+MT9mcmFnbWVudC5jbG9uZU5vZGUodHJ1ZSk6ZnJhZ21lbnQpO319CmlmKHNj
cmlwdHMubGVuZ3RoKXtqUXVlcnkuZWFjaChzY3JpcHRzLGV2YWxTY3JpcHQpO319CnJldHVybiB0
aGlzO2Z1bmN0aW9uIHJvb3QoZWxlbSxjdXIpe3JldHVybiBqUXVlcnkubm9kZU5hbWUoZWxlbSwi
dGFibGUiKT8oZWxlbS5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGJvZHkiKVswXXx8ZWxlbS5hcHBl
bmRDaGlsZChlbGVtLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGJvZHkiKSkpOmVsZW07
fX19KTtmdW5jdGlvbiBjbG9uZUNvcHlFdmVudChvcmlnLHJldCl7dmFyIGk9MDtyZXQuZWFjaChm
dW5jdGlvbigpe2lmKHRoaXMubm9kZU5hbWUhPT0ob3JpZ1tpXSYmb3JpZ1tpXS5ub2RlTmFtZSkp
e3JldHVybjt9CnZhciBvbGREYXRhPWpRdWVyeS5kYXRhKG9yaWdbaSsrXSksY3VyRGF0YT1qUXVl
cnkuZGF0YSh0aGlzLG9sZERhdGEpLGV2ZW50cz1vbGREYXRhJiZvbGREYXRhLmV2ZW50cztpZihl
dmVudHMpe2RlbGV0ZSBjdXJEYXRhLmhhbmRsZTtjdXJEYXRhLmV2ZW50cz17fTtmb3IodmFyIHR5
cGUgaW4gZXZlbnRzKXtmb3IodmFyIGhhbmRsZXIgaW4gZXZlbnRzW3R5cGVdKXtqUXVlcnkuZXZl
bnQuYWRkKHRoaXMsdHlwZSxldmVudHNbdHlwZV1baGFuZGxlcl0sZXZlbnRzW3R5cGVdW2hhbmRs
ZXJdLmRhdGEpO319fX0pO30KZnVuY3Rpb24gYnVpbGRGcmFnbWVudChhcmdzLG5vZGVzLHNjcmlw
dHMpe3ZhciBmcmFnbWVudCxjYWNoZWFibGUsY2FjaGVyZXN1bHRzLGRvYz0obm9kZXMmJm5vZGVz
WzBdP25vZGVzWzBdLm93bmVyRG9jdW1lbnR8fG5vZGVzWzBdOmRvY3VtZW50KTtpZihhcmdzLmxl
bmd0aD09PTEmJnR5cGVvZiBhcmdzWzBdPT09InN0cmluZyImJmFyZ3NbMF0ubGVuZ3RoPDUxMiYm
ZG9jPT09ZG9jdW1lbnQmJiFybm9jYWNoZS50ZXN0KGFyZ3NbMF0pJiYoalF1ZXJ5LnN1cHBvcnQu
Y2hlY2tDbG9uZXx8IXJjaGVja2VkLnRlc3QoYXJnc1swXSkpKXtjYWNoZWFibGU9dHJ1ZTtjYWNo
ZXJlc3VsdHM9alF1ZXJ5LmZyYWdtZW50c1thcmdzWzBdXTtpZihjYWNoZXJlc3VsdHMpe2lmKGNh
Y2hlcmVzdWx0cyE9PTEpe2ZyYWdtZW50PWNhY2hlcmVzdWx0czt9fX0KaWYoIWZyYWdtZW50KXtm
cmFnbWVudD1kb2MuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO2pRdWVyeS5jbGVhbihhcmdzLGRv
YyxmcmFnbWVudCxzY3JpcHRzKTt9CmlmKGNhY2hlYWJsZSl7alF1ZXJ5LmZyYWdtZW50c1thcmdz
WzBdXT1jYWNoZXJlc3VsdHM/ZnJhZ21lbnQ6MTt9CnJldHVybntmcmFnbWVudDpmcmFnbWVudCxj
YWNoZWFibGU6Y2FjaGVhYmxlfTt9CmpRdWVyeS5mcmFnbWVudHM9e307alF1ZXJ5LmVhY2goe2Fw
cGVuZFRvOiJhcHBlbmQiLHByZXBlbmRUbzoicHJlcGVuZCIsaW5zZXJ0QmVmb3JlOiJiZWZvcmUi
LGluc2VydEFmdGVyOiJhZnRlciIscmVwbGFjZUFsbDoicmVwbGFjZVdpdGgifSxmdW5jdGlvbihu
YW1lLG9yaWdpbmFsKXtqUXVlcnkuZm5bbmFtZV09ZnVuY3Rpb24oc2VsZWN0b3Ipe3ZhciByZXQ9
W10saW5zZXJ0PWpRdWVyeShzZWxlY3RvcikscGFyZW50PXRoaXMubGVuZ3RoPT09MSYmdGhpc1sw
XS5wYXJlbnROb2RlO2lmKHBhcmVudCYmcGFyZW50Lm5vZGVUeXBlPT09MTEmJnBhcmVudC5jaGls
ZE5vZGVzLmxlbmd0aD09PTEmJmluc2VydC5sZW5ndGg9PT0xKXtpbnNlcnRbb3JpZ2luYWxdKHRo
aXNbMF0pO3JldHVybiB0aGlzO31lbHNle2Zvcih2YXIgaT0wLGw9aW5zZXJ0Lmxlbmd0aDtpPGw7
aSsrKXt2YXIgZWxlbXM9KGk+MD90aGlzLmNsb25lKHRydWUpOnRoaXMpLmdldCgpO2pRdWVyeS5m
bltvcmlnaW5hbF0uYXBwbHkoalF1ZXJ5KGluc2VydFtpXSksZWxlbXMpO3JldD1yZXQuY29uY2F0
KGVsZW1zKTt9CnJldHVybiB0aGlzLnB1c2hTdGFjayhyZXQsbmFtZSxpbnNlcnQuc2VsZWN0b3Ip
O319O30pO2pRdWVyeS5leHRlbmQoe2NsZWFuOmZ1bmN0aW9uKGVsZW1zLGNvbnRleHQsZnJhZ21l
bnQsc2NyaXB0cyl7Y29udGV4dD1jb250ZXh0fHxkb2N1bWVudDtpZih0eXBlb2YgY29udGV4dC5j
cmVhdGVFbGVtZW50PT09InVuZGVmaW5lZCIpe2NvbnRleHQ9Y29udGV4dC5vd25lckRvY3VtZW50
fHxjb250ZXh0WzBdJiZjb250ZXh0WzBdLm93bmVyRG9jdW1lbnR8fGRvY3VtZW50O30KdmFyIHJl
dD1bXTtmb3IodmFyIGk9MCxlbGVtOyhlbGVtPWVsZW1zW2ldKSE9bnVsbDtpKyspe2lmKHR5cGVv
ZiBlbGVtPT09Im51bWJlciIpe2VsZW0rPSIiO30KaWYoIWVsZW0pe2NvbnRpbnVlO30KaWYodHlw
ZW9mIGVsZW09PT0ic3RyaW5nIiYmIXJodG1sLnRlc3QoZWxlbSkpe2VsZW09Y29udGV4dC5jcmVh
dGVUZXh0Tm9kZShlbGVtKTt9ZWxzZSBpZih0eXBlb2YgZWxlbT09PSJzdHJpbmciKXtlbGVtPWVs
ZW0ucmVwbGFjZShyeGh0bWxUYWcsZmNsb3NlVGFnKTt2YXIgdGFnPShydGFnTmFtZS5leGVjKGVs
ZW0pfHxbIiIsIiJdKVsxXS50b0xvd2VyQ2FzZSgpLHdyYXA9d3JhcE1hcFt0YWddfHx3cmFwTWFw
Ll9kZWZhdWx0LGRlcHRoPXdyYXBbMF0sZGl2PWNvbnRleHQuY3JlYXRlRWxlbWVudCgiZGl2Iik7
ZGl2LmlubmVySFRNTD13cmFwWzFdK2VsZW0rd3JhcFsyXTt3aGlsZShkZXB0aC0tKXtkaXY9ZGl2
Lmxhc3RDaGlsZDt9CmlmKCFqUXVlcnkuc3VwcG9ydC50Ym9keSl7dmFyIGhhc0JvZHk9cnRib2R5
LnRlc3QoZWxlbSksdGJvZHk9dGFnPT09InRhYmxlIiYmIWhhc0JvZHk/ZGl2LmZpcnN0Q2hpbGQm
JmRpdi5maXJzdENoaWxkLmNoaWxkTm9kZXM6d3JhcFsxXT09PSI8dGFibGU+IiYmIWhhc0JvZHk/
ZGl2LmNoaWxkTm9kZXM6W107Zm9yKHZhciBqPXRib2R5Lmxlbmd0aC0xO2o+PTA7LS1qKXtpZihq
UXVlcnkubm9kZU5hbWUodGJvZHlbal0sInRib2R5IikmJiF0Ym9keVtqXS5jaGlsZE5vZGVzLmxl
bmd0aCl7dGJvZHlbal0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0Ym9keVtqXSk7fX19CmlmKCFq
UXVlcnkuc3VwcG9ydC5sZWFkaW5nV2hpdGVzcGFjZSYmcmxlYWRpbmdXaGl0ZXNwYWNlLnRlc3Qo
ZWxlbSkpe2Rpdi5pbnNlcnRCZWZvcmUoY29udGV4dC5jcmVhdGVUZXh0Tm9kZShybGVhZGluZ1do
aXRlc3BhY2UuZXhlYyhlbGVtKVswXSksZGl2LmZpcnN0Q2hpbGQpO30KZWxlbT1kaXYuY2hpbGRO
b2Rlczt9CmlmKGVsZW0ubm9kZVR5cGUpe3JldC5wdXNoKGVsZW0pO31lbHNle3JldD1qUXVlcnku
bWVyZ2UocmV0LGVsZW0pO319CmlmKGZyYWdtZW50KXtmb3IodmFyIGk9MDtyZXRbaV07aSsrKXtp
ZihzY3JpcHRzJiZqUXVlcnkubm9kZU5hbWUocmV0W2ldLCJzY3JpcHQiKSYmKCFyZXRbaV0udHlw
ZXx8cmV0W2ldLnR5cGUudG9Mb3dlckNhc2UoKT09PSJ0ZXh0L2phdmFzY3JpcHQiKSl7c2NyaXB0
cy5wdXNoKHJldFtpXS5wYXJlbnROb2RlP3JldFtpXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHJl
dFtpXSk6cmV0W2ldKTt9ZWxzZXtpZihyZXRbaV0ubm9kZVR5cGU9PT0xKXtyZXQuc3BsaWNlLmFw
cGx5KHJldCxbaSsxLDBdLmNvbmNhdChqUXVlcnkubWFrZUFycmF5KHJldFtpXS5nZXRFbGVtZW50
c0J5VGFnTmFtZSgic2NyaXB0IikpKSk7fQpmcmFnbWVudC5hcHBlbmRDaGlsZChyZXRbaV0pO319
fQpyZXR1cm4gcmV0O30sY2xlYW5EYXRhOmZ1bmN0aW9uKGVsZW1zKXt2YXIgZGF0YSxpZCxjYWNo
ZT1qUXVlcnkuY2FjaGUsc3BlY2lhbD1qUXVlcnkuZXZlbnQuc3BlY2lhbCxkZWxldGVFeHBhbmRv
PWpRdWVyeS5zdXBwb3J0LmRlbGV0ZUV4cGFuZG87Zm9yKHZhciBpPTAsZWxlbTsoZWxlbT1lbGVt
c1tpXSkhPW51bGw7aSsrKXtpZD1lbGVtW2pRdWVyeS5leHBhbmRvXTtpZihpZCl7ZGF0YT1jYWNo
ZVtpZF07aWYoZGF0YS5ldmVudHMpe2Zvcih2YXIgdHlwZSBpbiBkYXRhLmV2ZW50cyl7aWYoc3Bl
Y2lhbFt0eXBlXSl7alF1ZXJ5LmV2ZW50LnJlbW92ZShlbGVtLHR5cGUpO31lbHNle3JlbW92ZUV2
ZW50KGVsZW0sdHlwZSxkYXRhLmhhbmRsZSk7fX19CmlmKGRlbGV0ZUV4cGFuZG8pe2RlbGV0ZSBl
bGVtW2pRdWVyeS5leHBhbmRvXTt9ZWxzZSBpZihlbGVtLnJlbW92ZUF0dHJpYnV0ZSl7ZWxlbS5y
ZW1vdmVBdHRyaWJ1dGUoalF1ZXJ5LmV4cGFuZG8pO30KZGVsZXRlIGNhY2hlW2lkXTt9fX19KTt2
YXIgcmV4Y2x1ZGU9L3otP2luZGV4fGZvbnQtP3dlaWdodHxvcGFjaXR5fHpvb218bGluZS0/aGVp
Z2h0L2kscmFscGhhPS9hbHBoYVwoW14pXSpcKS8scm9wYWNpdHk9L29wYWNpdHk9KFteKV0qKS8s
cmZsb2F0PS9mbG9hdC9pLHJkYXNoQWxwaGE9Ly0oW2Etel0pL2lnLHJ1cHBlcj0vKFtBLVpdKS9n
LHJudW1weD0vXi0/XGQrKD86cHgpPyQvaSxybnVtPS9eLT9cZC8sY3NzU2hvdz17cG9zaXRpb246
ImFic29sdXRlIix2aXNpYmlsaXR5OiJoaWRkZW4iLGRpc3BsYXk6ImJsb2NrIn0sY3NzV2lkdGg9
WyJMZWZ0IiwiUmlnaHQiXSxjc3NIZWlnaHQ9WyJUb3AiLCJCb3R0b20iXSxnZXRDb21wdXRlZFN0
eWxlPWRvY3VtZW50LmRlZmF1bHRWaWV3JiZkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRl
ZFN0eWxlLHN0eWxlRmxvYXQ9alF1ZXJ5LnN1cHBvcnQuY3NzRmxvYXQ/ImNzc0Zsb2F0Ijoic3R5
bGVGbG9hdCIsZmNhbWVsQ2FzZT1mdW5jdGlvbihhbGwsbGV0dGVyKXtyZXR1cm4gbGV0dGVyLnRv
VXBwZXJDYXNlKCk7fTtqUXVlcnkuZm4uY3NzPWZ1bmN0aW9uKG5hbWUsdmFsdWUpe3JldHVybiBh
Y2Nlc3ModGhpcyxuYW1lLHZhbHVlLHRydWUsZnVuY3Rpb24oZWxlbSxuYW1lLHZhbHVlKXtpZih2
YWx1ZT09PXVuZGVmaW5lZCl7cmV0dXJuIGpRdWVyeS5jdXJDU1MoZWxlbSxuYW1lKTt9CmlmKHR5
cGVvZiB2YWx1ZT09PSJudW1iZXIiJiYhcmV4Y2x1ZGUudGVzdChuYW1lKSl7dmFsdWUrPSJweCI7
fQpqUXVlcnkuc3R5bGUoZWxlbSxuYW1lLHZhbHVlKTt9KTt9O2pRdWVyeS5leHRlbmQoe3N0eWxl
OmZ1bmN0aW9uKGVsZW0sbmFtZSx2YWx1ZSl7aWYoIWVsZW18fGVsZW0ubm9kZVR5cGU9PT0zfHxl
bGVtLm5vZGVUeXBlPT09OCl7cmV0dXJuIHVuZGVmaW5lZDt9CmlmKChuYW1lPT09IndpZHRoInx8
bmFtZT09PSJoZWlnaHQiKSYmcGFyc2VGbG9hdCh2YWx1ZSk8MCl7dmFsdWU9dW5kZWZpbmVkO30K
dmFyIHN0eWxlPWVsZW0uc3R5bGV8fGVsZW0sc2V0PXZhbHVlIT09dW5kZWZpbmVkO2lmKCFqUXVl
cnkuc3VwcG9ydC5vcGFjaXR5JiZuYW1lPT09Im9wYWNpdHkiKXtpZihzZXQpe3N0eWxlLnpvb209
MTt2YXIgb3BhY2l0eT1wYXJzZUludCh2YWx1ZSwxMCkrIiI9PT0iTmFOIj8iIjoiYWxwaGEob3Bh
Y2l0eT0iK3ZhbHVlKjEwMCsiKSI7dmFyIGZpbHRlcj1zdHlsZS5maWx0ZXJ8fGpRdWVyeS5jdXJD
U1MoZWxlbSwiZmlsdGVyIil8fCIiO3N0eWxlLmZpbHRlcj1yYWxwaGEudGVzdChmaWx0ZXIpP2Zp
bHRlci5yZXBsYWNlKHJhbHBoYSxvcGFjaXR5KTpvcGFjaXR5O30KcmV0dXJuIHN0eWxlLmZpbHRl
ciYmc3R5bGUuZmlsdGVyLmluZGV4T2YoIm9wYWNpdHk9Iik+PTA/KHBhcnNlRmxvYXQocm9wYWNp
dHkuZXhlYyhzdHlsZS5maWx0ZXIpWzFdKS8xMDApKyIiOiIiO30KaWYocmZsb2F0LnRlc3QobmFt
ZSkpe25hbWU9c3R5bGVGbG9hdDt9Cm5hbWU9bmFtZS5yZXBsYWNlKHJkYXNoQWxwaGEsZmNhbWVs
Q2FzZSk7aWYoc2V0KXtzdHlsZVtuYW1lXT12YWx1ZTt9CnJldHVybiBzdHlsZVtuYW1lXTt9LGNz
czpmdW5jdGlvbihlbGVtLG5hbWUsZm9yY2UsZXh0cmEpe2lmKG5hbWU9PT0id2lkdGgifHxuYW1l
PT09ImhlaWdodCIpe3ZhciB2YWwscHJvcHM9Y3NzU2hvdyx3aGljaD1uYW1lPT09IndpZHRoIj9j
c3NXaWR0aDpjc3NIZWlnaHQ7ZnVuY3Rpb24gZ2V0V0goKXt2YWw9bmFtZT09PSJ3aWR0aCI/ZWxl
bS5vZmZzZXRXaWR0aDplbGVtLm9mZnNldEhlaWdodDtpZihleHRyYT09PSJib3JkZXIiKXtyZXR1
cm47fQpqUXVlcnkuZWFjaCh3aGljaCxmdW5jdGlvbigpe2lmKCFleHRyYSl7dmFsLT1wYXJzZUZs
b2F0KGpRdWVyeS5jdXJDU1MoZWxlbSwicGFkZGluZyIrdGhpcyx0cnVlKSl8fDA7fQppZihleHRy
YT09PSJtYXJnaW4iKXt2YWwrPXBhcnNlRmxvYXQoalF1ZXJ5LmN1ckNTUyhlbGVtLCJtYXJnaW4i
K3RoaXMsdHJ1ZSkpfHwwO31lbHNle3ZhbC09cGFyc2VGbG9hdChqUXVlcnkuY3VyQ1NTKGVsZW0s
ImJvcmRlciIrdGhpcysiV2lkdGgiLHRydWUpKXx8MDt9fSk7fQppZihlbGVtLm9mZnNldFdpZHRo
IT09MCl7Z2V0V0goKTt9ZWxzZXtqUXVlcnkuc3dhcChlbGVtLHByb3BzLGdldFdIKTt9CnJldHVy
biBNYXRoLm1heCgwLE1hdGgucm91bmQodmFsKSk7fQpyZXR1cm4galF1ZXJ5LmN1ckNTUyhlbGVt
LG5hbWUsZm9yY2UpO30sY3VyQ1NTOmZ1bmN0aW9uKGVsZW0sbmFtZSxmb3JjZSl7dmFyIHJldCxz
dHlsZT1lbGVtLnN0eWxlLGZpbHRlcjtpZighalF1ZXJ5LnN1cHBvcnQub3BhY2l0eSYmbmFtZT09
PSJvcGFjaXR5IiYmZWxlbS5jdXJyZW50U3R5bGUpe3JldD1yb3BhY2l0eS50ZXN0KGVsZW0uY3Vy
cmVudFN0eWxlLmZpbHRlcnx8IiIpPyhwYXJzZUZsb2F0KFJlZ0V4cC4kMSkvMTAwKSsiIjoiIjty
ZXR1cm4gcmV0PT09IiI/IjEiOnJldDt9CmlmKHJmbG9hdC50ZXN0KG5hbWUpKXtuYW1lPXN0eWxl
RmxvYXQ7fQppZighZm9yY2UmJnN0eWxlJiZzdHlsZVtuYW1lXSl7cmV0PXN0eWxlW25hbWVdO31l
bHNlIGlmKGdldENvbXB1dGVkU3R5bGUpe2lmKHJmbG9hdC50ZXN0KG5hbWUpKXtuYW1lPSJmbG9h
dCI7fQpuYW1lPW5hbWUucmVwbGFjZShydXBwZXIsIi0kMSIpLnRvTG93ZXJDYXNlKCk7dmFyIGRl
ZmF1bHRWaWV3PWVsZW0ub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldztpZighZGVmYXVsdFZpZXcp
e3JldHVybiBudWxsO30KdmFyIGNvbXB1dGVkU3R5bGU9ZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRT
dHlsZShlbGVtLG51bGwpO2lmKGNvbXB1dGVkU3R5bGUpe3JldD1jb21wdXRlZFN0eWxlLmdldFBy
b3BlcnR5VmFsdWUobmFtZSk7fQppZihuYW1lPT09Im9wYWNpdHkiJiZyZXQ9PT0iIil7cmV0PSIx
Ijt9fWVsc2UgaWYoZWxlbS5jdXJyZW50U3R5bGUpe3ZhciBjYW1lbENhc2U9bmFtZS5yZXBsYWNl
KHJkYXNoQWxwaGEsZmNhbWVsQ2FzZSk7cmV0PWVsZW0uY3VycmVudFN0eWxlW25hbWVdfHxlbGVt
LmN1cnJlbnRTdHlsZVtjYW1lbENhc2VdO2lmKCFybnVtcHgudGVzdChyZXQpJiZybnVtLnRlc3Qo
cmV0KSl7dmFyIGxlZnQ9c3R5bGUubGVmdCxyc0xlZnQ9ZWxlbS5ydW50aW1lU3R5bGUubGVmdDtl
bGVtLnJ1bnRpbWVTdHlsZS5sZWZ0PWVsZW0uY3VycmVudFN0eWxlLmxlZnQ7c3R5bGUubGVmdD1j
YW1lbENhc2U9PT0iZm9udFNpemUiPyIxZW0iOihyZXR8fDApO3JldD1zdHlsZS5waXhlbExlZnQr
InB4IjtzdHlsZS5sZWZ0PWxlZnQ7ZWxlbS5ydW50aW1lU3R5bGUubGVmdD1yc0xlZnQ7fX0KcmV0
dXJuIHJldDt9LHN3YXA6ZnVuY3Rpb24oZWxlbSxvcHRpb25zLGNhbGxiYWNrKXt2YXIgb2xkPXt9
O2Zvcih2YXIgbmFtZSBpbiBvcHRpb25zKXtvbGRbbmFtZV09ZWxlbS5zdHlsZVtuYW1lXTtlbGVt
LnN0eWxlW25hbWVdPW9wdGlvbnNbbmFtZV07fQpjYWxsYmFjay5jYWxsKGVsZW0pO2Zvcih2YXIg
bmFtZSBpbiBvcHRpb25zKXtlbGVtLnN0eWxlW25hbWVdPW9sZFtuYW1lXTt9fX0pO2lmKGpRdWVy
eS5leHByJiZqUXVlcnkuZXhwci5maWx0ZXJzKXtqUXVlcnkuZXhwci5maWx0ZXJzLmhpZGRlbj1m
dW5jdGlvbihlbGVtKXt2YXIgd2lkdGg9ZWxlbS5vZmZzZXRXaWR0aCxoZWlnaHQ9ZWxlbS5vZmZz
ZXRIZWlnaHQsc2tpcD1lbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT0idHIiO3JldHVybiB3
aWR0aD09PTAmJmhlaWdodD09PTAmJiFza2lwP3RydWU6d2lkdGg+MCYmaGVpZ2h0PjAmJiFza2lw
P2ZhbHNlOmpRdWVyeS5jdXJDU1MoZWxlbSwiZGlzcGxheSIpPT09Im5vbmUiO307alF1ZXJ5LmV4
cHIuZmlsdGVycy52aXNpYmxlPWZ1bmN0aW9uKGVsZW0pe3JldHVybiFqUXVlcnkuZXhwci5maWx0
ZXJzLmhpZGRlbihlbGVtKTt9O30KdmFyIGpzYz1ub3coKSxyc2NyaXB0PS88c2NyaXB0KC58XHMp
Kj9cL3NjcmlwdD4vZ2kscnNlbGVjdFRleHRhcmVhPS9zZWxlY3R8dGV4dGFyZWEvaSxyaW5wdXQ9
L2NvbG9yfGRhdGV8ZGF0ZXRpbWV8ZW1haWx8aGlkZGVufG1vbnRofG51bWJlcnxwYXNzd29yZHxy
YW5nZXxzZWFyY2h8dGVsfHRleHR8dGltZXx1cmx8d2Vlay9pLGpzcmU9Lz1cPygmfCQpLyxycXVl
cnk9L1w/LyxydHM9LyhcP3wmKV89Lio/KCZ8JCkvLHJ1cmw9L14oXHcrOik/XC9cLyhbXlwvPyNd
KykvLHIyMD0vJTIwL2csX2xvYWQ9alF1ZXJ5LmZuLmxvYWQ7alF1ZXJ5LmZuLmV4dGVuZCh7bG9h
ZDpmdW5jdGlvbih1cmwscGFyYW1zLGNhbGxiYWNrKXtpZih0eXBlb2YgdXJsIT09InN0cmluZyIp
e3JldHVybiBfbG9hZC5jYWxsKHRoaXMsdXJsKTt9ZWxzZSBpZighdGhpcy5sZW5ndGgpe3JldHVy
biB0aGlzO30KdmFyIG9mZj11cmwuaW5kZXhPZigiICIpO2lmKG9mZj49MCl7dmFyIHNlbGVjdG9y
PXVybC5zbGljZShvZmYsdXJsLmxlbmd0aCk7dXJsPXVybC5zbGljZSgwLG9mZik7fQp2YXIgdHlw
ZT0iR0VUIjtpZihwYXJhbXMpe2lmKGpRdWVyeS5pc0Z1bmN0aW9uKHBhcmFtcykpe2NhbGxiYWNr
PXBhcmFtcztwYXJhbXM9bnVsbDt9ZWxzZSBpZih0eXBlb2YgcGFyYW1zPT09Im9iamVjdCIpe3Bh
cmFtcz1qUXVlcnkucGFyYW0ocGFyYW1zLGpRdWVyeS5hamF4U2V0dGluZ3MudHJhZGl0aW9uYWwp
O3R5cGU9IlBPU1QiO319CnZhciBzZWxmPXRoaXM7alF1ZXJ5LmFqYXgoe3VybDp1cmwsdHlwZTp0
eXBlLGRhdGFUeXBlOiJodG1sIixkYXRhOnBhcmFtcyxjb21wbGV0ZTpmdW5jdGlvbihyZXMsc3Rh
dHVzKXtpZihzdGF0dXM9PT0ic3VjY2VzcyJ8fHN0YXR1cz09PSJub3Rtb2RpZmllZCIpe3NlbGYu
aHRtbChzZWxlY3Rvcj9qUXVlcnkoIjxkaXYgLz4iKS5hcHBlbmQocmVzLnJlc3BvbnNlVGV4dC5y
ZXBsYWNlKHJzY3JpcHQsIiIpKS5maW5kKHNlbGVjdG9yKTpyZXMucmVzcG9uc2VUZXh0KTt9Cmlm
KGNhbGxiYWNrKXtzZWxmLmVhY2goY2FsbGJhY2ssW3Jlcy5yZXNwb25zZVRleHQsc3RhdHVzLHJl
c10pO319fSk7cmV0dXJuIHRoaXM7fSxzZXJpYWxpemU6ZnVuY3Rpb24oKXtyZXR1cm4galF1ZXJ5
LnBhcmFtKHRoaXMuc2VyaWFsaXplQXJyYXkoKSk7fSxzZXJpYWxpemVBcnJheTpmdW5jdGlvbigp
e3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe3JldHVybiB0aGlzLmVsZW1lbnRzP2pRdWVyeS5t
YWtlQXJyYXkodGhpcy5lbGVtZW50cyk6dGhpczt9KS5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4g
dGhpcy5uYW1lJiYhdGhpcy5kaXNhYmxlZCYmKHRoaXMuY2hlY2tlZHx8cnNlbGVjdFRleHRhcmVh
LnRlc3QodGhpcy5ub2RlTmFtZSl8fHJpbnB1dC50ZXN0KHRoaXMudHlwZSkpO30pLm1hcChmdW5j
dGlvbihpLGVsZW0pe3ZhciB2YWw9alF1ZXJ5KHRoaXMpLnZhbCgpO3JldHVybiB2YWw9PW51bGw/
bnVsbDpqUXVlcnkuaXNBcnJheSh2YWwpP2pRdWVyeS5tYXAodmFsLGZ1bmN0aW9uKHZhbCxpKXty
ZXR1cm57bmFtZTplbGVtLm5hbWUsdmFsdWU6dmFsfTt9KTp7bmFtZTplbGVtLm5hbWUsdmFsdWU6
dmFsfTt9KS5nZXQoKTt9fSk7alF1ZXJ5LmVhY2goImFqYXhTdGFydCBhamF4U3RvcCBhamF4Q29t
cGxldGUgYWpheEVycm9yIGFqYXhTdWNjZXNzIGFqYXhTZW5kIi5zcGxpdCgiICIpLGZ1bmN0aW9u
KGksbyl7alF1ZXJ5LmZuW29dPWZ1bmN0aW9uKGYpe3JldHVybiB0aGlzLmJpbmQobyxmKTt9O30p
O2pRdWVyeS5leHRlbmQoe2dldDpmdW5jdGlvbih1cmwsZGF0YSxjYWxsYmFjayx0eXBlKXtpZihq
UXVlcnkuaXNGdW5jdGlvbihkYXRhKSl7dHlwZT10eXBlfHxjYWxsYmFjaztjYWxsYmFjaz1kYXRh
O2RhdGE9bnVsbDt9CnJldHVybiBqUXVlcnkuYWpheCh7dHlwZToiR0VUIix1cmw6dXJsLGRhdGE6
ZGF0YSxzdWNjZXNzOmNhbGxiYWNrLGRhdGFUeXBlOnR5cGV9KTt9LGdldFNjcmlwdDpmdW5jdGlv
bih1cmwsY2FsbGJhY2spe3JldHVybiBqUXVlcnkuZ2V0KHVybCxudWxsLGNhbGxiYWNrLCJzY3Jp
cHQiKTt9LGdldEpTT046ZnVuY3Rpb24odXJsLGRhdGEsY2FsbGJhY2spe3JldHVybiBqUXVlcnku
Z2V0KHVybCxkYXRhLGNhbGxiYWNrLCJqc29uIik7fSxwb3N0OmZ1bmN0aW9uKHVybCxkYXRhLGNh
bGxiYWNrLHR5cGUpe2lmKGpRdWVyeS5pc0Z1bmN0aW9uKGRhdGEpKXt0eXBlPXR5cGV8fGNhbGxi
YWNrO2NhbGxiYWNrPWRhdGE7ZGF0YT17fTt9CnJldHVybiBqUXVlcnkuYWpheCh7dHlwZToiUE9T
VCIsdXJsOnVybCxkYXRhOmRhdGEsc3VjY2VzczpjYWxsYmFjayxkYXRhVHlwZTp0eXBlfSk7fSxh
amF4U2V0dXA6ZnVuY3Rpb24oc2V0dGluZ3Mpe2pRdWVyeS5leHRlbmQoalF1ZXJ5LmFqYXhTZXR0
aW5ncyxzZXR0aW5ncyk7fSxhamF4U2V0dGluZ3M6e3VybDpsb2NhdGlvbi5ocmVmLGdsb2JhbDp0
cnVlLHR5cGU6IkdFVCIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5j
b2RlZCIscHJvY2Vzc0RhdGE6dHJ1ZSxhc3luYzp0cnVlLHhocjp3aW5kb3cuWE1MSHR0cFJlcXVl
c3QmJih3aW5kb3cubG9jYXRpb24ucHJvdG9jb2whPT0iZmlsZToifHwhd2luZG93LkFjdGl2ZVhP
YmplY3QpP2Z1bmN0aW9uKCl7cmV0dXJuIG5ldyB3aW5kb3cuWE1MSHR0cFJlcXVlc3QoKTt9OmZ1
bmN0aW9uKCl7dHJ5e3JldHVybiBuZXcgd2luZG93LkFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5Y
TUxIVFRQIik7fWNhdGNoKGUpe319LGFjY2VwdHM6e3htbDoiYXBwbGljYXRpb24veG1sLCB0ZXh0
L3htbCIsaHRtbDoidGV4dC9odG1sIixzY3JpcHQ6InRleHQvamF2YXNjcmlwdCwgYXBwbGljYXRp
b24vamF2YXNjcmlwdCIsanNvbjoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9qYXZhc2NyaXB0Iix0
ZXh0OiJ0ZXh0L3BsYWluIixfZGVmYXVsdDoiKi8qIn19LGxhc3RNb2RpZmllZDp7fSxldGFnOnt9
LGFqYXg6ZnVuY3Rpb24ob3JpZ1NldHRpbmdzKXt2YXIgcz1qUXVlcnkuZXh0ZW5kKHRydWUse30s
alF1ZXJ5LmFqYXhTZXR0aW5ncyxvcmlnU2V0dGluZ3MpO3ZhciBqc29ucCxzdGF0dXMsZGF0YSxj
YWxsYmFja0NvbnRleHQ9b3JpZ1NldHRpbmdzJiZvcmlnU2V0dGluZ3MuY29udGV4dHx8cyx0eXBl
PXMudHlwZS50b1VwcGVyQ2FzZSgpO2lmKHMuZGF0YSYmcy5wcm9jZXNzRGF0YSYmdHlwZW9mIHMu
ZGF0YSE9PSJzdHJpbmciKXtzLmRhdGE9alF1ZXJ5LnBhcmFtKHMuZGF0YSxzLnRyYWRpdGlvbmFs
KTt9CmlmKHMuZGF0YVR5cGU9PT0ianNvbnAiKXtpZih0eXBlPT09IkdFVCIpe2lmKCFqc3JlLnRl
c3Qocy51cmwpKXtzLnVybCs9KHJxdWVyeS50ZXN0KHMudXJsKT8iJiI6Ij8iKSsocy5qc29ucHx8
ImNhbGxiYWNrIikrIj0/Ijt9fWVsc2UgaWYoIXMuZGF0YXx8IWpzcmUudGVzdChzLmRhdGEpKXtz
LmRhdGE9KHMuZGF0YT9zLmRhdGErIiYiOiIiKSsocy5qc29ucHx8ImNhbGxiYWNrIikrIj0/Ijt9
CnMuZGF0YVR5cGU9Impzb24iO30KaWYocy5kYXRhVHlwZT09PSJqc29uIiYmKHMuZGF0YSYmanNy
ZS50ZXN0KHMuZGF0YSl8fGpzcmUudGVzdChzLnVybCkpKXtqc29ucD1zLmpzb25wQ2FsbGJhY2t8
fCgianNvbnAiK2pzYysrKTtpZihzLmRhdGEpe3MuZGF0YT0ocy5kYXRhKyIiKS5yZXBsYWNlKGpz
cmUsIj0iK2pzb25wKyIkMSIpO30Kcy51cmw9cy51cmwucmVwbGFjZShqc3JlLCI9Iitqc29ucCsi
JDEiKTtzLmRhdGFUeXBlPSJzY3JpcHQiO3dpbmRvd1tqc29ucF09d2luZG93W2pzb25wXXx8ZnVu
Y3Rpb24odG1wKXtkYXRhPXRtcDtzdWNjZXNzKCk7Y29tcGxldGUoKTt3aW5kb3dbanNvbnBdPXVu
ZGVmaW5lZDt0cnl7ZGVsZXRlIHdpbmRvd1tqc29ucF07fWNhdGNoKGUpe30KaWYoaGVhZCl7aGVh
ZC5yZW1vdmVDaGlsZChzY3JpcHQpO319O30KaWYocy5kYXRhVHlwZT09PSJzY3JpcHQiJiZzLmNh
Y2hlPT09bnVsbCl7cy5jYWNoZT1mYWxzZTt9CmlmKHMuY2FjaGU9PT1mYWxzZSYmdHlwZT09PSJH
RVQiKXt2YXIgdHM9bm93KCk7dmFyIHJldD1zLnVybC5yZXBsYWNlKHJ0cywiJDFfPSIrdHMrIiQy
Iik7cy51cmw9cmV0KygocmV0PT09cy51cmwpPyhycXVlcnkudGVzdChzLnVybCk/IiYiOiI/Iikr
Il89Iit0czoiIik7fQppZihzLmRhdGEmJnR5cGU9PT0iR0VUIil7cy51cmwrPShycXVlcnkudGVz
dChzLnVybCk/IiYiOiI/Iikrcy5kYXRhO30KaWYocy5nbG9iYWwmJiFqUXVlcnkuYWN0aXZlKysp
e2pRdWVyeS5ldmVudC50cmlnZ2VyKCJhamF4U3RhcnQiKTt9CnZhciBwYXJ0cz1ydXJsLmV4ZWMo
cy51cmwpLHJlbW90ZT1wYXJ0cyYmKHBhcnRzWzFdJiZwYXJ0c1sxXSE9PWxvY2F0aW9uLnByb3Rv
Y29sfHxwYXJ0c1syXSE9PWxvY2F0aW9uLmhvc3QpO2lmKHMuZGF0YVR5cGU9PT0ic2NyaXB0IiYm
dHlwZT09PSJHRVQiJiZyZW1vdGUpe3ZhciBoZWFkPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdO
YW1lKCJoZWFkIilbMF18fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDt2YXIgc2NyaXB0PWRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO3NjcmlwdC5zcmM9cy51cmw7aWYocy5zY3JpcHRD
aGFyc2V0KXtzY3JpcHQuY2hhcnNldD1zLnNjcmlwdENoYXJzZXQ7fQppZighanNvbnApe3ZhciBk
b25lPWZhbHNlO3NjcmlwdC5vbmxvYWQ9c2NyaXB0Lm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlv
bigpe2lmKCFkb25lJiYoIXRoaXMucmVhZHlTdGF0ZXx8dGhpcy5yZWFkeVN0YXRlPT09ImxvYWRl
ZCJ8fHRoaXMucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSIpKXtkb25lPXRydWU7c3VjY2VzcygpO2Nv
bXBsZXRlKCk7c2NyaXB0Lm9ubG9hZD1zY3JpcHQub25yZWFkeXN0YXRlY2hhbmdlPW51bGw7aWYo
aGVhZCYmc2NyaXB0LnBhcmVudE5vZGUpe2hlYWQucmVtb3ZlQ2hpbGQoc2NyaXB0KTt9fX07fQpo
ZWFkLmluc2VydEJlZm9yZShzY3JpcHQsaGVhZC5maXJzdENoaWxkKTtyZXR1cm4gdW5kZWZpbmVk
O30KdmFyIHJlcXVlc3REb25lPWZhbHNlO3ZhciB4aHI9cy54aHIoKTtpZigheGhyKXtyZXR1cm47
fQppZihzLnVzZXJuYW1lKXt4aHIub3Blbih0eXBlLHMudXJsLHMuYXN5bmMscy51c2VybmFtZSxz
LnBhc3N3b3JkKTt9ZWxzZXt4aHIub3Blbih0eXBlLHMudXJsLHMuYXN5bmMpO30KdHJ5e2lmKHMu
ZGF0YXx8b3JpZ1NldHRpbmdzJiZvcmlnU2V0dGluZ3MuY29udGVudFR5cGUpe3hoci5zZXRSZXF1
ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLHMuY29udGVudFR5cGUpO30KaWYocy5pZk1vZGlmaWVk
KXtpZihqUXVlcnkubGFzdE1vZGlmaWVkW3MudXJsXSl7eGhyLnNldFJlcXVlc3RIZWFkZXIoIklm
LU1vZGlmaWVkLVNpbmNlIixqUXVlcnkubGFzdE1vZGlmaWVkW3MudXJsXSk7fQppZihqUXVlcnku
ZXRhZ1tzLnVybF0pe3hoci5zZXRSZXF1ZXN0SGVhZGVyKCJJZi1Ob25lLU1hdGNoIixqUXVlcnku
ZXRhZ1tzLnVybF0pO319CmlmKCFyZW1vdGUpe3hoci5zZXRSZXF1ZXN0SGVhZGVyKCJYLVJlcXVl
c3RlZC1XaXRoIiwiWE1MSHR0cFJlcXVlc3QiKTt9Cnhoci5zZXRSZXF1ZXN0SGVhZGVyKCJBY2Nl
cHQiLHMuZGF0YVR5cGUmJnMuYWNjZXB0c1tzLmRhdGFUeXBlXT9zLmFjY2VwdHNbcy5kYXRhVHlw
ZV0rIiwgKi8qIjpzLmFjY2VwdHMuX2RlZmF1bHQpO31jYXRjaChlKXt9CmlmKHMuYmVmb3JlU2Vu
ZCYmcy5iZWZvcmVTZW5kLmNhbGwoY2FsbGJhY2tDb250ZXh0LHhocixzKT09PWZhbHNlKXtpZihz
Lmdsb2JhbCYmIS0talF1ZXJ5LmFjdGl2ZSl7alF1ZXJ5LmV2ZW50LnRyaWdnZXIoImFqYXhTdG9w
Iik7fQp4aHIuYWJvcnQoKTtyZXR1cm4gZmFsc2U7fQppZihzLmdsb2JhbCl7dHJpZ2dlcigiYWph
eFNlbmQiLFt4aHIsc10pO30KdmFyIG9ucmVhZHlzdGF0ZWNoYW5nZT14aHIub25yZWFkeXN0YXRl
Y2hhbmdlPWZ1bmN0aW9uKGlzVGltZW91dCl7aWYoIXhocnx8eGhyLnJlYWR5U3RhdGU9PT0wfHxp
c1RpbWVvdXQ9PT0iYWJvcnQiKXtpZighcmVxdWVzdERvbmUpe2NvbXBsZXRlKCk7fQpyZXF1ZXN0
RG9uZT10cnVlO2lmKHhocil7eGhyLm9ucmVhZHlzdGF0ZWNoYW5nZT1qUXVlcnkubm9vcDt9fWVs
c2UgaWYoIXJlcXVlc3REb25lJiZ4aHImJih4aHIucmVhZHlTdGF0ZT09PTR8fGlzVGltZW91dD09
PSJ0aW1lb3V0Iikpe3JlcXVlc3REb25lPXRydWU7eGhyLm9ucmVhZHlzdGF0ZWNoYW5nZT1qUXVl
cnkubm9vcDtzdGF0dXM9aXNUaW1lb3V0PT09InRpbWVvdXQiPyJ0aW1lb3V0IjohalF1ZXJ5Lmh0
dHBTdWNjZXNzKHhocik/ImVycm9yIjpzLmlmTW9kaWZpZWQmJmpRdWVyeS5odHRwTm90TW9kaWZp
ZWQoeGhyLHMudXJsKT8ibm90bW9kaWZpZWQiOiJzdWNjZXNzIjt2YXIgZXJyTXNnO2lmKHN0YXR1
cz09PSJzdWNjZXNzIil7dHJ5e2RhdGE9alF1ZXJ5Lmh0dHBEYXRhKHhocixzLmRhdGFUeXBlLHMp
O31jYXRjaChlcnIpe3N0YXR1cz0icGFyc2VyZXJyb3IiO2Vyck1zZz1lcnI7fX0KaWYoc3RhdHVz
PT09InN1Y2Nlc3MifHxzdGF0dXM9PT0ibm90bW9kaWZpZWQiKXtpZighanNvbnApe3N1Y2Nlc3Mo
KTt9fWVsc2V7alF1ZXJ5LmhhbmRsZUVycm9yKHMseGhyLHN0YXR1cyxlcnJNc2cpO30KY29tcGxl
dGUoKTtpZihpc1RpbWVvdXQ9PT0idGltZW91dCIpe3hoci5hYm9ydCgpO30KaWYocy5hc3luYyl7
eGhyPW51bGw7fX19O3RyeXt2YXIgb2xkQWJvcnQ9eGhyLmFib3J0O3hoci5hYm9ydD1mdW5jdGlv
bigpe2lmKHhocil7b2xkQWJvcnQuY2FsbCh4aHIpO30Kb25yZWFkeXN0YXRlY2hhbmdlKCJhYm9y
dCIpO307fWNhdGNoKGUpe30KaWYocy5hc3luYyYmcy50aW1lb3V0PjApe3NldFRpbWVvdXQoZnVu
Y3Rpb24oKXtpZih4aHImJiFyZXF1ZXN0RG9uZSl7b25yZWFkeXN0YXRlY2hhbmdlKCJ0aW1lb3V0
Iik7fX0scy50aW1lb3V0KTt9CnRyeXt4aHIuc2VuZCh0eXBlPT09IlBPU1QifHx0eXBlPT09IlBV
VCJ8fHR5cGU9PT0iREVMRVRFIj9zLmRhdGE6bnVsbCk7fWNhdGNoKGUpe2pRdWVyeS5oYW5kbGVF
cnJvcihzLHhocixudWxsLGUpO2NvbXBsZXRlKCk7fQppZighcy5hc3luYyl7b25yZWFkeXN0YXRl
Y2hhbmdlKCk7fQpmdW5jdGlvbiBzdWNjZXNzKCl7aWYocy5zdWNjZXNzKXtzLnN1Y2Nlc3MuY2Fs
bChjYWxsYmFja0NvbnRleHQsZGF0YSxzdGF0dXMseGhyKTt9CmlmKHMuZ2xvYmFsKXt0cmlnZ2Vy
KCJhamF4U3VjY2VzcyIsW3hocixzXSk7fX0KZnVuY3Rpb24gY29tcGxldGUoKXtpZihzLmNvbXBs
ZXRlKXtzLmNvbXBsZXRlLmNhbGwoY2FsbGJhY2tDb250ZXh0LHhocixzdGF0dXMpO30KaWYocy5n
bG9iYWwpe3RyaWdnZXIoImFqYXhDb21wbGV0ZSIsW3hocixzXSk7fQppZihzLmdsb2JhbCYmIS0t
alF1ZXJ5LmFjdGl2ZSl7alF1ZXJ5LmV2ZW50LnRyaWdnZXIoImFqYXhTdG9wIik7fX0KZnVuY3Rp
b24gdHJpZ2dlcih0eXBlLGFyZ3MpeyhzLmNvbnRleHQ/alF1ZXJ5KHMuY29udGV4dCk6alF1ZXJ5
LmV2ZW50KS50cmlnZ2VyKHR5cGUsYXJncyk7fQpyZXR1cm4geGhyO30saGFuZGxlRXJyb3I6ZnVu
Y3Rpb24ocyx4aHIsc3RhdHVzLGUpe2lmKHMuZXJyb3Ipe3MuZXJyb3IuY2FsbChzLmNvbnRleHR8
fHMseGhyLHN0YXR1cyxlKTt9CmlmKHMuZ2xvYmFsKXsocy5jb250ZXh0P2pRdWVyeShzLmNvbnRl
eHQpOmpRdWVyeS5ldmVudCkudHJpZ2dlcigiYWpheEVycm9yIixbeGhyLHMsZV0pO319LGFjdGl2
ZTowLGh0dHBTdWNjZXNzOmZ1bmN0aW9uKHhocil7dHJ5e3JldHVybiF4aHIuc3RhdHVzJiZsb2Nh
dGlvbi5wcm90b2NvbD09PSJmaWxlOiJ8fCh4aHIuc3RhdHVzPj0yMDAmJnhoci5zdGF0dXM8MzAw
KXx8eGhyLnN0YXR1cz09PTMwNHx8eGhyLnN0YXR1cz09PTEyMjN8fHhoci5zdGF0dXM9PT0wO31j
YXRjaChlKXt9CnJldHVybiBmYWxzZTt9LGh0dHBOb3RNb2RpZmllZDpmdW5jdGlvbih4aHIsdXJs
KXt2YXIgbGFzdE1vZGlmaWVkPXhoci5nZXRSZXNwb25zZUhlYWRlcigiTGFzdC1Nb2RpZmllZCIp
LGV0YWc9eGhyLmdldFJlc3BvbnNlSGVhZGVyKCJFdGFnIik7aWYobGFzdE1vZGlmaWVkKXtqUXVl
cnkubGFzdE1vZGlmaWVkW3VybF09bGFzdE1vZGlmaWVkO30KaWYoZXRhZyl7alF1ZXJ5LmV0YWdb
dXJsXT1ldGFnO30KcmV0dXJuIHhoci5zdGF0dXM9PT0zMDR8fHhoci5zdGF0dXM9PT0wO30saHR0
cERhdGE6ZnVuY3Rpb24oeGhyLHR5cGUscyl7dmFyIGN0PXhoci5nZXRSZXNwb25zZUhlYWRlcigi
Y29udGVudC10eXBlIil8fCIiLHhtbD10eXBlPT09InhtbCJ8fCF0eXBlJiZjdC5pbmRleE9mKCJ4
bWwiKT49MCxkYXRhPXhtbD94aHIucmVzcG9uc2VYTUw6eGhyLnJlc3BvbnNlVGV4dDtpZih4bWwm
JmRhdGEuZG9jdW1lbnRFbGVtZW50Lm5vZGVOYW1lPT09InBhcnNlcmVycm9yIil7alF1ZXJ5LmVy
cm9yKCJwYXJzZXJlcnJvciIpO30KaWYocyYmcy5kYXRhRmlsdGVyKXtkYXRhPXMuZGF0YUZpbHRl
cihkYXRhLHR5cGUpO30KaWYodHlwZW9mIGRhdGE9PT0ic3RyaW5nIil7aWYodHlwZT09PSJqc29u
Inx8IXR5cGUmJmN0LmluZGV4T2YoImpzb24iKT49MCl7ZGF0YT1qUXVlcnkucGFyc2VKU09OKGRh
dGEpO31lbHNlIGlmKHR5cGU9PT0ic2NyaXB0Inx8IXR5cGUmJmN0LmluZGV4T2YoImphdmFzY3Jp
cHQiKT49MCl7alF1ZXJ5Lmdsb2JhbEV2YWwoZGF0YSk7fX0KcmV0dXJuIGRhdGE7fSxwYXJhbTpm
dW5jdGlvbihhLHRyYWRpdGlvbmFsKXt2YXIgcz1bXTtpZih0cmFkaXRpb25hbD09PXVuZGVmaW5l
ZCl7dHJhZGl0aW9uYWw9alF1ZXJ5LmFqYXhTZXR0aW5ncy50cmFkaXRpb25hbDt9CmlmKGpRdWVy
eS5pc0FycmF5KGEpfHxhLmpxdWVyeSl7alF1ZXJ5LmVhY2goYSxmdW5jdGlvbigpe2FkZCh0aGlz
Lm5hbWUsdGhpcy52YWx1ZSk7fSk7fWVsc2V7Zm9yKHZhciBwcmVmaXggaW4gYSl7YnVpbGRQYXJh
bXMocHJlZml4LGFbcHJlZml4XSk7fX0KcmV0dXJuIHMuam9pbigiJiIpLnJlcGxhY2UocjIwLCIr
Iik7ZnVuY3Rpb24gYnVpbGRQYXJhbXMocHJlZml4LG9iail7aWYoalF1ZXJ5LmlzQXJyYXkob2Jq
KSl7alF1ZXJ5LmVhY2gob2JqLGZ1bmN0aW9uKGksdil7aWYodHJhZGl0aW9uYWx8fC9cW1xdJC8u
dGVzdChwcmVmaXgpKXthZGQocHJlZml4LHYpO31lbHNle2J1aWxkUGFyYW1zKHByZWZpeCsiWyIr
KHR5cGVvZiB2PT09Im9iamVjdCJ8fGpRdWVyeS5pc0FycmF5KHYpP2k6IiIpKyJdIix2KTt9fSk7
fWVsc2UgaWYoIXRyYWRpdGlvbmFsJiZvYmohPW51bGwmJnR5cGVvZiBvYmo9PT0ib2JqZWN0Iil7
alF1ZXJ5LmVhY2gob2JqLGZ1bmN0aW9uKGssdil7YnVpbGRQYXJhbXMocHJlZml4KyJbIitrKyJd
Iix2KTt9KTt9ZWxzZXthZGQocHJlZml4LG9iaik7fX0KZnVuY3Rpb24gYWRkKGtleSx2YWx1ZSl7
dmFsdWU9alF1ZXJ5LmlzRnVuY3Rpb24odmFsdWUpP3ZhbHVlKCk6dmFsdWU7c1tzLmxlbmd0aF09
ZW5jb2RlVVJJQ29tcG9uZW50KGtleSkrIj0iK2VuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSk7fX19
KTt2YXIgZWxlbWRpc3BsYXk9e30scmZ4dHlwZXM9L3RvZ2dsZXxzaG93fGhpZGUvLHJmeG51bT0v
XihbKy1dPSk/KFtcZCstLl0rKSguKikkLyx0aW1lcklkLGZ4QXR0cnM9W1siaGVpZ2h0IiwibWFy
Z2luVG9wIiwibWFyZ2luQm90dG9tIiwicGFkZGluZ1RvcCIsInBhZGRpbmdCb3R0b20iXSxbIndp
ZHRoIiwibWFyZ2luTGVmdCIsIm1hcmdpblJpZ2h0IiwicGFkZGluZ0xlZnQiLCJwYWRkaW5nUmln
aHQiXSxbIm9wYWNpdHkiXV07alF1ZXJ5LmZuLmV4dGVuZCh7c2hvdzpmdW5jdGlvbihzcGVlZCxj
YWxsYmFjayl7aWYoc3BlZWR8fHNwZWVkPT09MCl7cmV0dXJuIHRoaXMuYW5pbWF0ZShnZW5GeCgi
c2hvdyIsMyksc3BlZWQsY2FsbGJhY2spO31lbHNle2Zvcih2YXIgaT0wLGw9dGhpcy5sZW5ndGg7
aTxsO2krKyl7dmFyIG9sZD1qUXVlcnkuZGF0YSh0aGlzW2ldLCJvbGRkaXNwbGF5Iik7dGhpc1tp
XS5zdHlsZS5kaXNwbGF5PW9sZHx8IiI7aWYoalF1ZXJ5LmNzcyh0aGlzW2ldLCJkaXNwbGF5Iik9
PT0ibm9uZSIpe3ZhciBub2RlTmFtZT10aGlzW2ldLm5vZGVOYW1lLGRpc3BsYXk7aWYoZWxlbWRp
c3BsYXlbbm9kZU5hbWVdKXtkaXNwbGF5PWVsZW1kaXNwbGF5W25vZGVOYW1lXTt9ZWxzZXt2YXIg
ZWxlbT1qUXVlcnkoIjwiK25vZGVOYW1lKyIgLz4iKS5hcHBlbmRUbygiYm9keSIpO2Rpc3BsYXk9
ZWxlbS5jc3MoImRpc3BsYXkiKTtpZihkaXNwbGF5PT09Im5vbmUiKXtkaXNwbGF5PSJibG9jayI7
fQplbGVtLnJlbW92ZSgpO2VsZW1kaXNwbGF5W25vZGVOYW1lXT1kaXNwbGF5O30KalF1ZXJ5LmRh
dGEodGhpc1tpXSwib2xkZGlzcGxheSIsZGlzcGxheSk7fX0KZm9yKHZhciBqPTAsaz10aGlzLmxl
bmd0aDtqPGs7aisrKXt0aGlzW2pdLnN0eWxlLmRpc3BsYXk9alF1ZXJ5LmRhdGEodGhpc1tqXSwi
b2xkZGlzcGxheSIpfHwiIjt9CnJldHVybiB0aGlzO319LGhpZGU6ZnVuY3Rpb24oc3BlZWQsY2Fs
bGJhY2spe2lmKHNwZWVkfHxzcGVlZD09PTApe3JldHVybiB0aGlzLmFuaW1hdGUoZ2VuRngoImhp
ZGUiLDMpLHNwZWVkLGNhbGxiYWNrKTt9ZWxzZXtmb3IodmFyIGk9MCxsPXRoaXMubGVuZ3RoO2k8
bDtpKyspe3ZhciBvbGQ9alF1ZXJ5LmRhdGEodGhpc1tpXSwib2xkZGlzcGxheSIpO2lmKCFvbGQm
Jm9sZCE9PSJub25lIil7alF1ZXJ5LmRhdGEodGhpc1tpXSwib2xkZGlzcGxheSIsalF1ZXJ5LmNz
cyh0aGlzW2ldLCJkaXNwbGF5IikpO319CmZvcih2YXIgaj0wLGs9dGhpcy5sZW5ndGg7ajxrO2or
Kyl7dGhpc1tqXS5zdHlsZS5kaXNwbGF5PSJub25lIjt9CnJldHVybiB0aGlzO319LF90b2dnbGU6
alF1ZXJ5LmZuLnRvZ2dsZSx0b2dnbGU6ZnVuY3Rpb24oZm4sZm4yKXt2YXIgYm9vbD10eXBlb2Yg
Zm49PT0iYm9vbGVhbiI7aWYoalF1ZXJ5LmlzRnVuY3Rpb24oZm4pJiZqUXVlcnkuaXNGdW5jdGlv
bihmbjIpKXt0aGlzLl90b2dnbGUuYXBwbHkodGhpcyxhcmd1bWVudHMpO31lbHNlIGlmKGZuPT1u
dWxsfHxib29sKXt0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgc3RhdGU9Ym9vbD9mbjpqUXVlcnko
dGhpcykuaXMoIjpoaWRkZW4iKTtqUXVlcnkodGhpcylbc3RhdGU/InNob3ciOiJoaWRlIl0oKTt9
KTt9ZWxzZXt0aGlzLmFuaW1hdGUoZ2VuRngoInRvZ2dsZSIsMyksZm4sZm4yKTt9CnJldHVybiB0
aGlzO30sZmFkZVRvOmZ1bmN0aW9uKHNwZWVkLHRvLGNhbGxiYWNrKXtyZXR1cm4gdGhpcy5maWx0
ZXIoIjpoaWRkZW4iKS5jc3MoIm9wYWNpdHkiLDApLnNob3coKS5lbmQoKS5hbmltYXRlKHtvcGFj
aXR5OnRvfSxzcGVlZCxjYWxsYmFjayk7fSxhbmltYXRlOmZ1bmN0aW9uKHByb3Asc3BlZWQsZWFz
aW5nLGNhbGxiYWNrKXt2YXIgb3B0YWxsPWpRdWVyeS5zcGVlZChzcGVlZCxlYXNpbmcsY2FsbGJh
Y2spO2lmKGpRdWVyeS5pc0VtcHR5T2JqZWN0KHByb3ApKXtyZXR1cm4gdGhpcy5lYWNoKG9wdGFs
bC5jb21wbGV0ZSk7fQpyZXR1cm4gdGhpc1tvcHRhbGwucXVldWU9PT1mYWxzZT8iZWFjaCI6InF1
ZXVlIl0oZnVuY3Rpb24oKXt2YXIgb3B0PWpRdWVyeS5leHRlbmQoe30sb3B0YWxsKSxwLGhpZGRl
bj10aGlzLm5vZGVUeXBlPT09MSYmalF1ZXJ5KHRoaXMpLmlzKCI6aGlkZGVuIiksc2VsZj10aGlz
O2ZvcihwIGluIHByb3Ape3ZhciBuYW1lPXAucmVwbGFjZShyZGFzaEFscGhhLGZjYW1lbENhc2Up
O2lmKHAhPT1uYW1lKXtwcm9wW25hbWVdPXByb3BbcF07ZGVsZXRlIHByb3BbcF07cD1uYW1lO30K
aWYocHJvcFtwXT09PSJoaWRlIiYmaGlkZGVufHxwcm9wW3BdPT09InNob3ciJiYhaGlkZGVuKXty
ZXR1cm4gb3B0LmNvbXBsZXRlLmNhbGwodGhpcyk7fQppZigocD09PSJoZWlnaHQifHxwPT09Indp
ZHRoIikmJnRoaXMuc3R5bGUpe29wdC5kaXNwbGF5PWpRdWVyeS5jc3ModGhpcywiZGlzcGxheSIp
O29wdC5vdmVyZmxvdz10aGlzLnN0eWxlLm92ZXJmbG93O30KaWYoalF1ZXJ5LmlzQXJyYXkocHJv
cFtwXSkpeyhvcHQuc3BlY2lhbEVhc2luZz1vcHQuc3BlY2lhbEVhc2luZ3x8e30pW3BdPXByb3Bb
cF1bMV07cHJvcFtwXT1wcm9wW3BdWzBdO319CmlmKG9wdC5vdmVyZmxvdyE9bnVsbCl7dGhpcy5z
dHlsZS5vdmVyZmxvdz0iaGlkZGVuIjt9Cm9wdC5jdXJBbmltPWpRdWVyeS5leHRlbmQoe30scHJv
cCk7alF1ZXJ5LmVhY2gocHJvcCxmdW5jdGlvbihuYW1lLHZhbCl7dmFyIGU9bmV3IGpRdWVyeS5m
eChzZWxmLG9wdCxuYW1lKTtpZihyZnh0eXBlcy50ZXN0KHZhbCkpe2VbdmFsPT09InRvZ2dsZSI/
aGlkZGVuPyJzaG93IjoiaGlkZSI6dmFsXShwcm9wKTt9ZWxzZXt2YXIgcGFydHM9cmZ4bnVtLmV4
ZWModmFsKSxzdGFydD1lLmN1cih0cnVlKXx8MDtpZihwYXJ0cyl7dmFyIGVuZD1wYXJzZUZsb2F0
KHBhcnRzWzJdKSx1bml0PXBhcnRzWzNdfHwicHgiO2lmKHVuaXQhPT0icHgiKXtzZWxmLnN0eWxl
W25hbWVdPShlbmR8fDEpK3VuaXQ7c3RhcnQ9KChlbmR8fDEpL2UuY3VyKHRydWUpKSpzdGFydDtz
ZWxmLnN0eWxlW25hbWVdPXN0YXJ0K3VuaXQ7fQppZihwYXJ0c1sxXSl7ZW5kPSgocGFydHNbMV09
PT0iLT0iPy0xOjEpKmVuZCkrc3RhcnQ7fQplLmN1c3RvbShzdGFydCxlbmQsdW5pdCk7fWVsc2V7
ZS5jdXN0b20oc3RhcnQsdmFsLCIiKTt9fX0pO3JldHVybiB0cnVlO30pO30sc3RvcDpmdW5jdGlv
bihjbGVhclF1ZXVlLGdvdG9FbmQpe3ZhciB0aW1lcnM9alF1ZXJ5LnRpbWVycztpZihjbGVhclF1
ZXVlKXt0aGlzLnF1ZXVlKFtdKTt9CnRoaXMuZWFjaChmdW5jdGlvbigpe2Zvcih2YXIgaT10aW1l
cnMubGVuZ3RoLTE7aT49MDtpLS0pe2lmKHRpbWVyc1tpXS5lbGVtPT09dGhpcyl7aWYoZ290b0Vu
ZCl7dGltZXJzW2ldKHRydWUpO30KdGltZXJzLnNwbGljZShpLDEpO319fSk7aWYoIWdvdG9FbmQp
e3RoaXMuZGVxdWV1ZSgpO30KcmV0dXJuIHRoaXM7fX0pO2pRdWVyeS5lYWNoKHtzbGlkZURvd246
Z2VuRngoInNob3ciLDEpLHNsaWRlVXA6Z2VuRngoImhpZGUiLDEpLHNsaWRlVG9nZ2xlOmdlbkZ4
KCJ0b2dnbGUiLDEpLGZhZGVJbjp7b3BhY2l0eToic2hvdyJ9LGZhZGVPdXQ6e29wYWNpdHk6Imhp
ZGUifX0sZnVuY3Rpb24obmFtZSxwcm9wcyl7alF1ZXJ5LmZuW25hbWVdPWZ1bmN0aW9uKHNwZWVk
LGNhbGxiYWNrKXtyZXR1cm4gdGhpcy5hbmltYXRlKHByb3BzLHNwZWVkLGNhbGxiYWNrKTt9O30p
O2pRdWVyeS5leHRlbmQoe3NwZWVkOmZ1bmN0aW9uKHNwZWVkLGVhc2luZyxmbil7dmFyIG9wdD1z
cGVlZCYmdHlwZW9mIHNwZWVkPT09Im9iamVjdCI/c3BlZWQ6e2NvbXBsZXRlOmZufHwhZm4mJmVh
c2luZ3x8alF1ZXJ5LmlzRnVuY3Rpb24oc3BlZWQpJiZzcGVlZCxkdXJhdGlvbjpzcGVlZCxlYXNp
bmc6Zm4mJmVhc2luZ3x8ZWFzaW5nJiYhalF1ZXJ5LmlzRnVuY3Rpb24oZWFzaW5nKSYmZWFzaW5n
fTtvcHQuZHVyYXRpb249alF1ZXJ5LmZ4Lm9mZj8wOnR5cGVvZiBvcHQuZHVyYXRpb249PT0ibnVt
YmVyIj9vcHQuZHVyYXRpb246alF1ZXJ5LmZ4LnNwZWVkc1tvcHQuZHVyYXRpb25dfHxqUXVlcnku
Znguc3BlZWRzLl9kZWZhdWx0O29wdC5vbGQ9b3B0LmNvbXBsZXRlO29wdC5jb21wbGV0ZT1mdW5j
dGlvbigpe2lmKG9wdC5xdWV1ZSE9PWZhbHNlKXtqUXVlcnkodGhpcykuZGVxdWV1ZSgpO30KaWYo
alF1ZXJ5LmlzRnVuY3Rpb24ob3B0Lm9sZCkpe29wdC5vbGQuY2FsbCh0aGlzKTt9fTtyZXR1cm4g
b3B0O30sZWFzaW5nOntsaW5lYXI6ZnVuY3Rpb24ocCxuLGZpcnN0TnVtLGRpZmYpe3JldHVybiBm
aXJzdE51bStkaWZmKnA7fSxzd2luZzpmdW5jdGlvbihwLG4sZmlyc3ROdW0sZGlmZil7cmV0dXJu
KCgtTWF0aC5jb3MocCpNYXRoLlBJKS8yKSswLjUpKmRpZmYrZmlyc3ROdW07fX0sdGltZXJzOltd
LGZ4OmZ1bmN0aW9uKGVsZW0sb3B0aW9ucyxwcm9wKXt0aGlzLm9wdGlvbnM9b3B0aW9uczt0aGlz
LmVsZW09ZWxlbTt0aGlzLnByb3A9cHJvcDtpZighb3B0aW9ucy5vcmlnKXtvcHRpb25zLm9yaWc9
e307fX19KTtqUXVlcnkuZngucHJvdG90eXBlPXt1cGRhdGU6ZnVuY3Rpb24oKXtpZih0aGlzLm9w
dGlvbnMuc3RlcCl7dGhpcy5vcHRpb25zLnN0ZXAuY2FsbCh0aGlzLmVsZW0sdGhpcy5ub3csdGhp
cyk7fQooalF1ZXJ5LmZ4LnN0ZXBbdGhpcy5wcm9wXXx8alF1ZXJ5LmZ4LnN0ZXAuX2RlZmF1bHQp
KHRoaXMpO2lmKCh0aGlzLnByb3A9PT0iaGVpZ2h0Inx8dGhpcy5wcm9wPT09IndpZHRoIikmJnRo
aXMuZWxlbS5zdHlsZSl7dGhpcy5lbGVtLnN0eWxlLmRpc3BsYXk9ImJsb2NrIjt9fSxjdXI6ZnVu
Y3Rpb24oZm9yY2Upe2lmKHRoaXMuZWxlbVt0aGlzLnByb3BdIT1udWxsJiYoIXRoaXMuZWxlbS5z
dHlsZXx8dGhpcy5lbGVtLnN0eWxlW3RoaXMucHJvcF09PW51bGwpKXtyZXR1cm4gdGhpcy5lbGVt
W3RoaXMucHJvcF07fQp2YXIgcj1wYXJzZUZsb2F0KGpRdWVyeS5jc3ModGhpcy5lbGVtLHRoaXMu
cHJvcCxmb3JjZSkpO3JldHVybiByJiZyPi0xMDAwMD9yOnBhcnNlRmxvYXQoalF1ZXJ5LmN1ckNT
Uyh0aGlzLmVsZW0sdGhpcy5wcm9wKSl8fDA7fSxjdXN0b206ZnVuY3Rpb24oZnJvbSx0byx1bml0
KXt0aGlzLnN0YXJ0VGltZT1ub3coKTt0aGlzLnN0YXJ0PWZyb207dGhpcy5lbmQ9dG87dGhpcy51
bml0PXVuaXR8fHRoaXMudW5pdHx8InB4Ijt0aGlzLm5vdz10aGlzLnN0YXJ0O3RoaXMucG9zPXRo
aXMuc3RhdGU9MDt2YXIgc2VsZj10aGlzO2Z1bmN0aW9uIHQoZ290b0VuZCl7cmV0dXJuIHNlbGYu
c3RlcChnb3RvRW5kKTt9CnQuZWxlbT10aGlzLmVsZW07aWYodCgpJiZqUXVlcnkudGltZXJzLnB1
c2godCkmJiF0aW1lcklkKXt0aW1lcklkPXNldEludGVydmFsKGpRdWVyeS5meC50aWNrLDEzKTt9
fSxzaG93OmZ1bmN0aW9uKCl7dGhpcy5vcHRpb25zLm9yaWdbdGhpcy5wcm9wXT1qUXVlcnkuc3R5
bGUodGhpcy5lbGVtLHRoaXMucHJvcCk7dGhpcy5vcHRpb25zLnNob3c9dHJ1ZTt0aGlzLmN1c3Rv
bSh0aGlzLnByb3A9PT0id2lkdGgifHx0aGlzLnByb3A9PT0iaGVpZ2h0Ij8xOjAsdGhpcy5jdXIo
KSk7alF1ZXJ5KHRoaXMuZWxlbSkuc2hvdygpO30saGlkZTpmdW5jdGlvbigpe3RoaXMub3B0aW9u
cy5vcmlnW3RoaXMucHJvcF09alF1ZXJ5LnN0eWxlKHRoaXMuZWxlbSx0aGlzLnByb3ApO3RoaXMu
b3B0aW9ucy5oaWRlPXRydWU7dGhpcy5jdXN0b20odGhpcy5jdXIoKSwwKTt9LHN0ZXA6ZnVuY3Rp
b24oZ290b0VuZCl7dmFyIHQ9bm93KCksZG9uZT10cnVlO2lmKGdvdG9FbmR8fHQ+PXRoaXMub3B0
aW9ucy5kdXJhdGlvbit0aGlzLnN0YXJ0VGltZSl7dGhpcy5ub3c9dGhpcy5lbmQ7dGhpcy5wb3M9
dGhpcy5zdGF0ZT0xO3RoaXMudXBkYXRlKCk7dGhpcy5vcHRpb25zLmN1ckFuaW1bdGhpcy5wcm9w
XT10cnVlO2Zvcih2YXIgaSBpbiB0aGlzLm9wdGlvbnMuY3VyQW5pbSl7aWYodGhpcy5vcHRpb25z
LmN1ckFuaW1baV0hPT10cnVlKXtkb25lPWZhbHNlO319CmlmKGRvbmUpe2lmKHRoaXMub3B0aW9u
cy5kaXNwbGF5IT1udWxsKXt0aGlzLmVsZW0uc3R5bGUub3ZlcmZsb3c9dGhpcy5vcHRpb25zLm92
ZXJmbG93O3ZhciBvbGQ9alF1ZXJ5LmRhdGEodGhpcy5lbGVtLCJvbGRkaXNwbGF5Iik7dGhpcy5l
bGVtLnN0eWxlLmRpc3BsYXk9b2xkP29sZDp0aGlzLm9wdGlvbnMuZGlzcGxheTtpZihqUXVlcnku
Y3NzKHRoaXMuZWxlbSwiZGlzcGxheSIpPT09Im5vbmUiKXt0aGlzLmVsZW0uc3R5bGUuZGlzcGxh
eT0iYmxvY2siO319CmlmKHRoaXMub3B0aW9ucy5oaWRlKXtqUXVlcnkodGhpcy5lbGVtKS5oaWRl
KCk7fQppZih0aGlzLm9wdGlvbnMuaGlkZXx8dGhpcy5vcHRpb25zLnNob3cpe2Zvcih2YXIgcCBp
biB0aGlzLm9wdGlvbnMuY3VyQW5pbSl7alF1ZXJ5LnN0eWxlKHRoaXMuZWxlbSxwLHRoaXMub3B0
aW9ucy5vcmlnW3BdKTt9fQp0aGlzLm9wdGlvbnMuY29tcGxldGUuY2FsbCh0aGlzLmVsZW0pO30K
cmV0dXJuIGZhbHNlO31lbHNle3ZhciBuPXQtdGhpcy5zdGFydFRpbWU7dGhpcy5zdGF0ZT1uL3Ro
aXMub3B0aW9ucy5kdXJhdGlvbjt2YXIgc3BlY2lhbEVhc2luZz10aGlzLm9wdGlvbnMuc3BlY2lh
bEVhc2luZyYmdGhpcy5vcHRpb25zLnNwZWNpYWxFYXNpbmdbdGhpcy5wcm9wXTt2YXIgZGVmYXVs
dEVhc2luZz10aGlzLm9wdGlvbnMuZWFzaW5nfHwoalF1ZXJ5LmVhc2luZy5zd2luZz8ic3dpbmci
OiJsaW5lYXIiKTt0aGlzLnBvcz1qUXVlcnkuZWFzaW5nW3NwZWNpYWxFYXNpbmd8fGRlZmF1bHRF
YXNpbmddKHRoaXMuc3RhdGUsbiwwLDEsdGhpcy5vcHRpb25zLmR1cmF0aW9uKTt0aGlzLm5vdz10
aGlzLnN0YXJ0KygodGhpcy5lbmQtdGhpcy5zdGFydCkqdGhpcy5wb3MpO3RoaXMudXBkYXRlKCk7
fQpyZXR1cm4gdHJ1ZTt9fTtqUXVlcnkuZXh0ZW5kKGpRdWVyeS5meCx7dGljazpmdW5jdGlvbigp
e3ZhciB0aW1lcnM9alF1ZXJ5LnRpbWVycztmb3IodmFyIGk9MDtpPHRpbWVycy5sZW5ndGg7aSsr
KXtpZighdGltZXJzW2ldKCkpe3RpbWVycy5zcGxpY2UoaS0tLDEpO319CmlmKCF0aW1lcnMubGVu
Z3RoKXtqUXVlcnkuZnguc3RvcCgpO319LHN0b3A6ZnVuY3Rpb24oKXtjbGVhckludGVydmFsKHRp
bWVySWQpO3RpbWVySWQ9bnVsbDt9LHNwZWVkczp7c2xvdzo2MDAsZmFzdDoyMDAsX2RlZmF1bHQ6
NDAwfSxzdGVwOntvcGFjaXR5OmZ1bmN0aW9uKGZ4KXtqUXVlcnkuc3R5bGUoZnguZWxlbSwib3Bh
Y2l0eSIsZngubm93KTt9LF9kZWZhdWx0OmZ1bmN0aW9uKGZ4KXtpZihmeC5lbGVtLnN0eWxlJiZm
eC5lbGVtLnN0eWxlW2Z4LnByb3BdIT1udWxsKXtmeC5lbGVtLnN0eWxlW2Z4LnByb3BdPShmeC5w
cm9wPT09IndpZHRoInx8ZngucHJvcD09PSJoZWlnaHQiP01hdGgubWF4KDAsZngubm93KTpmeC5u
b3cpK2Z4LnVuaXQ7fWVsc2V7ZnguZWxlbVtmeC5wcm9wXT1meC5ub3c7fX19fSk7aWYoalF1ZXJ5
LmV4cHImJmpRdWVyeS5leHByLmZpbHRlcnMpe2pRdWVyeS5leHByLmZpbHRlcnMuYW5pbWF0ZWQ9
ZnVuY3Rpb24oZWxlbSl7cmV0dXJuIGpRdWVyeS5ncmVwKGpRdWVyeS50aW1lcnMsZnVuY3Rpb24o
Zm4pe3JldHVybiBlbGVtPT09Zm4uZWxlbTt9KS5sZW5ndGg7fTt9CmZ1bmN0aW9uIGdlbkZ4KHR5
cGUsbnVtKXt2YXIgb2JqPXt9O2pRdWVyeS5lYWNoKGZ4QXR0cnMuY29uY2F0LmFwcGx5KFtdLGZ4
QXR0cnMuc2xpY2UoMCxudW0pKSxmdW5jdGlvbigpe29ialt0aGlzXT10eXBlO30pO3JldHVybiBv
Ymo7fQppZigiZ2V0Qm91bmRpbmdDbGllbnRSZWN0ImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVu
dCl7alF1ZXJ5LmZuLm9mZnNldD1mdW5jdGlvbihvcHRpb25zKXt2YXIgZWxlbT10aGlzWzBdO2lm
KG9wdGlvbnMpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oaSl7alF1ZXJ5Lm9mZnNldC5zZXRP
ZmZzZXQodGhpcyxvcHRpb25zLGkpO30pO30KaWYoIWVsZW18fCFlbGVtLm93bmVyRG9jdW1lbnQp
e3JldHVybiBudWxsO30KaWYoZWxlbT09PWVsZW0ub3duZXJEb2N1bWVudC5ib2R5KXtyZXR1cm4g
alF1ZXJ5Lm9mZnNldC5ib2R5T2Zmc2V0KGVsZW0pO30KdmFyIGJveD1lbGVtLmdldEJvdW5kaW5n
Q2xpZW50UmVjdCgpLGRvYz1lbGVtLm93bmVyRG9jdW1lbnQsYm9keT1kb2MuYm9keSxkb2NFbGVt
PWRvYy5kb2N1bWVudEVsZW1lbnQsY2xpZW50VG9wPWRvY0VsZW0uY2xpZW50VG9wfHxib2R5LmNs
aWVudFRvcHx8MCxjbGllbnRMZWZ0PWRvY0VsZW0uY2xpZW50TGVmdHx8Ym9keS5jbGllbnRMZWZ0
fHwwLHRvcD1ib3gudG9wKyhzZWxmLnBhZ2VZT2Zmc2V0fHxqUXVlcnkuc3VwcG9ydC5ib3hNb2Rl
bCYmZG9jRWxlbS5zY3JvbGxUb3B8fGJvZHkuc2Nyb2xsVG9wKS1jbGllbnRUb3AsbGVmdD1ib3gu
bGVmdCsoc2VsZi5wYWdlWE9mZnNldHx8alF1ZXJ5LnN1cHBvcnQuYm94TW9kZWwmJmRvY0VsZW0u
c2Nyb2xsTGVmdHx8Ym9keS5zY3JvbGxMZWZ0KS1jbGllbnRMZWZ0O3JldHVybnt0b3A6dG9wLGxl
ZnQ6bGVmdH07fTt9ZWxzZXtqUXVlcnkuZm4ub2Zmc2V0PWZ1bmN0aW9uKG9wdGlvbnMpe3ZhciBl
bGVtPXRoaXNbMF07aWYob3B0aW9ucyl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihpKXtqUXVl
cnkub2Zmc2V0LnNldE9mZnNldCh0aGlzLG9wdGlvbnMsaSk7fSk7fQppZighZWxlbXx8IWVsZW0u
b3duZXJEb2N1bWVudCl7cmV0dXJuIG51bGw7fQppZihlbGVtPT09ZWxlbS5vd25lckRvY3VtZW50
LmJvZHkpe3JldHVybiBqUXVlcnkub2Zmc2V0LmJvZHlPZmZzZXQoZWxlbSk7fQpqUXVlcnkub2Zm
c2V0LmluaXRpYWxpemUoKTt2YXIgb2Zmc2V0UGFyZW50PWVsZW0ub2Zmc2V0UGFyZW50LHByZXZP
ZmZzZXRQYXJlbnQ9ZWxlbSxkb2M9ZWxlbS5vd25lckRvY3VtZW50LGNvbXB1dGVkU3R5bGUsZG9j
RWxlbT1kb2MuZG9jdW1lbnRFbGVtZW50LGJvZHk9ZG9jLmJvZHksZGVmYXVsdFZpZXc9ZG9jLmRl
ZmF1bHRWaWV3LHByZXZDb21wdXRlZFN0eWxlPWRlZmF1bHRWaWV3P2RlZmF1bHRWaWV3LmdldENv
bXB1dGVkU3R5bGUoZWxlbSxudWxsKTplbGVtLmN1cnJlbnRTdHlsZSx0b3A9ZWxlbS5vZmZzZXRU
b3AsbGVmdD1lbGVtLm9mZnNldExlZnQ7d2hpbGUoKGVsZW09ZWxlbS5wYXJlbnROb2RlKSYmZWxl
bSE9PWJvZHkmJmVsZW0hPT1kb2NFbGVtKXtpZihqUXVlcnkub2Zmc2V0LnN1cHBvcnRzRml4ZWRQ
b3NpdGlvbiYmcHJldkNvbXB1dGVkU3R5bGUucG9zaXRpb249PT0iZml4ZWQiKXticmVhazt9CmNv
bXB1dGVkU3R5bGU9ZGVmYXVsdFZpZXc/ZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShlbGVt
LG51bGwpOmVsZW0uY3VycmVudFN0eWxlO3RvcC09ZWxlbS5zY3JvbGxUb3A7bGVmdC09ZWxlbS5z
Y3JvbGxMZWZ0O2lmKGVsZW09PT1vZmZzZXRQYXJlbnQpe3RvcCs9ZWxlbS5vZmZzZXRUb3A7bGVm
dCs9ZWxlbS5vZmZzZXRMZWZ0O2lmKGpRdWVyeS5vZmZzZXQuZG9lc05vdEFkZEJvcmRlciYmIShq
UXVlcnkub2Zmc2V0LmRvZXNBZGRCb3JkZXJGb3JUYWJsZUFuZENlbGxzJiYvXnQoYWJsZXxkfGgp
JC9pLnRlc3QoZWxlbS5ub2RlTmFtZSkpKXt0b3ArPXBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5i
b3JkZXJUb3BXaWR0aCl8fDA7bGVmdCs9cGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLmJvcmRlckxl
ZnRXaWR0aCl8fDA7fQpwcmV2T2Zmc2V0UGFyZW50PW9mZnNldFBhcmVudCxvZmZzZXRQYXJlbnQ9
ZWxlbS5vZmZzZXRQYXJlbnQ7fQppZihqUXVlcnkub2Zmc2V0LnN1YnRyYWN0c0JvcmRlckZvck92
ZXJmbG93Tm90VmlzaWJsZSYmY29tcHV0ZWRTdHlsZS5vdmVyZmxvdyE9PSJ2aXNpYmxlIil7dG9w
Kz1wYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUuYm9yZGVyVG9wV2lkdGgpfHwwO2xlZnQrPXBhcnNl
RmxvYXQoY29tcHV0ZWRTdHlsZS5ib3JkZXJMZWZ0V2lkdGgpfHwwO30KcHJldkNvbXB1dGVkU3R5
bGU9Y29tcHV0ZWRTdHlsZTt9CmlmKHByZXZDb21wdXRlZFN0eWxlLnBvc2l0aW9uPT09InJlbGF0
aXZlInx8cHJldkNvbXB1dGVkU3R5bGUucG9zaXRpb249PT0ic3RhdGljIil7dG9wKz1ib2R5Lm9m
ZnNldFRvcDtsZWZ0Kz1ib2R5Lm9mZnNldExlZnQ7fQppZihqUXVlcnkub2Zmc2V0LnN1cHBvcnRz
Rml4ZWRQb3NpdGlvbiYmcHJldkNvbXB1dGVkU3R5bGUucG9zaXRpb249PT0iZml4ZWQiKXt0b3Ar
PU1hdGgubWF4KGRvY0VsZW0uc2Nyb2xsVG9wLGJvZHkuc2Nyb2xsVG9wKTtsZWZ0Kz1NYXRoLm1h
eChkb2NFbGVtLnNjcm9sbExlZnQsYm9keS5zY3JvbGxMZWZ0KTt9CnJldHVybnt0b3A6dG9wLGxl
ZnQ6bGVmdH07fTt9CmpRdWVyeS5vZmZzZXQ9e2luaXRpYWxpemU6ZnVuY3Rpb24oKXt2YXIgYm9k
eT1kb2N1bWVudC5ib2R5LGNvbnRhaW5lcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxp
bm5lckRpdixjaGVja0Rpdix0YWJsZSx0ZCxib2R5TWFyZ2luVG9wPXBhcnNlRmxvYXQoalF1ZXJ5
LmN1ckNTUyhib2R5LCJtYXJnaW5Ub3AiLHRydWUpKXx8MCxodG1sPSI8ZGl2IHN0eWxlPSdwb3Np
dGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7bWFyZ2luOjA7Ym9yZGVyOjVweCBzb2xpZCAjMDAw
O3BhZGRpbmc6MDt3aWR0aDoxcHg7aGVpZ2h0OjFweDsnPjxkaXY+PC9kaXY+PC9kaXY+PHRhYmxl
IHN0eWxlPSdwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7bWFyZ2luOjA7Ym9yZGVyOjVw
eCBzb2xpZCAjMDAwO3BhZGRpbmc6MDt3aWR0aDoxcHg7aGVpZ2h0OjFweDsnIGNlbGxwYWRkaW5n
PScwJyBjZWxsc3BhY2luZz0nMCc+PHRyPjx0ZD48L3RkPjwvdHI+PC90YWJsZT4iO2pRdWVyeS5l
eHRlbmQoY29udGFpbmVyLnN0eWxlLHtwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDowLGxlZnQ6MCxt
YXJnaW46MCxib3JkZXI6MCx3aWR0aDoiMXB4IixoZWlnaHQ6IjFweCIsdmlzaWJpbGl0eToiaGlk
ZGVuIn0pO2NvbnRhaW5lci5pbm5lckhUTUw9aHRtbDtib2R5Lmluc2VydEJlZm9yZShjb250YWlu
ZXIsYm9keS5maXJzdENoaWxkKTtpbm5lckRpdj1jb250YWluZXIuZmlyc3RDaGlsZDtjaGVja0Rp
dj1pbm5lckRpdi5maXJzdENoaWxkO3RkPWlubmVyRGl2Lm5leHRTaWJsaW5nLmZpcnN0Q2hpbGQu
Zmlyc3RDaGlsZDt0aGlzLmRvZXNOb3RBZGRCb3JkZXI9KGNoZWNrRGl2Lm9mZnNldFRvcCE9PTUp
O3RoaXMuZG9lc0FkZEJvcmRlckZvclRhYmxlQW5kQ2VsbHM9KHRkLm9mZnNldFRvcD09PTUpO2No
ZWNrRGl2LnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsY2hlY2tEaXYuc3R5bGUudG9wPSIyMHB4Ijt0
aGlzLnN1cHBvcnRzRml4ZWRQb3NpdGlvbj0oY2hlY2tEaXYub2Zmc2V0VG9wPT09MjB8fGNoZWNr
RGl2Lm9mZnNldFRvcD09PTE1KTtjaGVja0Rpdi5zdHlsZS5wb3NpdGlvbj1jaGVja0Rpdi5zdHls
ZS50b3A9IiI7aW5uZXJEaXYuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsaW5uZXJEaXYuc3R5bGUu
cG9zaXRpb249InJlbGF0aXZlIjt0aGlzLnN1YnRyYWN0c0JvcmRlckZvck92ZXJmbG93Tm90Vmlz
aWJsZT0oY2hlY2tEaXYub2Zmc2V0VG9wPT09LTUpO3RoaXMuZG9lc05vdEluY2x1ZGVNYXJnaW5J
bkJvZHlPZmZzZXQ9KGJvZHkub2Zmc2V0VG9wIT09Ym9keU1hcmdpblRvcCk7Ym9keS5yZW1vdmVD
aGlsZChjb250YWluZXIpO2JvZHk9Y29udGFpbmVyPWlubmVyRGl2PWNoZWNrRGl2PXRhYmxlPXRk
PW51bGw7alF1ZXJ5Lm9mZnNldC5pbml0aWFsaXplPWpRdWVyeS5ub29wO30sYm9keU9mZnNldDpm
dW5jdGlvbihib2R5KXt2YXIgdG9wPWJvZHkub2Zmc2V0VG9wLGxlZnQ9Ym9keS5vZmZzZXRMZWZ0
O2pRdWVyeS5vZmZzZXQuaW5pdGlhbGl6ZSgpO2lmKGpRdWVyeS5vZmZzZXQuZG9lc05vdEluY2x1
ZGVNYXJnaW5JbkJvZHlPZmZzZXQpe3RvcCs9cGFyc2VGbG9hdChqUXVlcnkuY3VyQ1NTKGJvZHks
Im1hcmdpblRvcCIsdHJ1ZSkpfHwwO2xlZnQrPXBhcnNlRmxvYXQoalF1ZXJ5LmN1ckNTUyhib2R5
LCJtYXJnaW5MZWZ0Iix0cnVlKSl8fDA7fQpyZXR1cm57dG9wOnRvcCxsZWZ0OmxlZnR9O30sc2V0
T2Zmc2V0OmZ1bmN0aW9uKGVsZW0sb3B0aW9ucyxpKXtpZigvc3RhdGljLy50ZXN0KGpRdWVyeS5j
dXJDU1MoZWxlbSwicG9zaXRpb24iKSkpe2VsZW0uc3R5bGUucG9zaXRpb249InJlbGF0aXZlIjt9
CnZhciBjdXJFbGVtPWpRdWVyeShlbGVtKSxjdXJPZmZzZXQ9Y3VyRWxlbS5vZmZzZXQoKSxjdXJU
b3A9cGFyc2VJbnQoalF1ZXJ5LmN1ckNTUyhlbGVtLCJ0b3AiLHRydWUpLDEwKXx8MCxjdXJMZWZ0
PXBhcnNlSW50KGpRdWVyeS5jdXJDU1MoZWxlbSwibGVmdCIsdHJ1ZSksMTApfHwwO2lmKGpRdWVy
eS5pc0Z1bmN0aW9uKG9wdGlvbnMpKXtvcHRpb25zPW9wdGlvbnMuY2FsbChlbGVtLGksY3VyT2Zm
c2V0KTt9CnZhciBwcm9wcz17dG9wOihvcHRpb25zLnRvcC1jdXJPZmZzZXQudG9wKStjdXJUb3As
bGVmdDoob3B0aW9ucy5sZWZ0LWN1ck9mZnNldC5sZWZ0KStjdXJMZWZ0fTtpZigidXNpbmciaW4g
b3B0aW9ucyl7b3B0aW9ucy51c2luZy5jYWxsKGVsZW0scHJvcHMpO31lbHNle2N1ckVsZW0uY3Nz
KHByb3BzKTt9fX07alF1ZXJ5LmZuLmV4dGVuZCh7cG9zaXRpb246ZnVuY3Rpb24oKXtpZighdGhp
c1swXSl7cmV0dXJuIG51bGw7fQp2YXIgZWxlbT10aGlzWzBdLG9mZnNldFBhcmVudD10aGlzLm9m
ZnNldFBhcmVudCgpLG9mZnNldD10aGlzLm9mZnNldCgpLHBhcmVudE9mZnNldD0vXmJvZHl8aHRt
bCQvaS50ZXN0KG9mZnNldFBhcmVudFswXS5ub2RlTmFtZSk/e3RvcDowLGxlZnQ6MH06b2Zmc2V0
UGFyZW50Lm9mZnNldCgpO29mZnNldC50b3AtPXBhcnNlRmxvYXQoalF1ZXJ5LmN1ckNTUyhlbGVt
LCJtYXJnaW5Ub3AiLHRydWUpKXx8MDtvZmZzZXQubGVmdC09cGFyc2VGbG9hdChqUXVlcnkuY3Vy
Q1NTKGVsZW0sIm1hcmdpbkxlZnQiLHRydWUpKXx8MDtwYXJlbnRPZmZzZXQudG9wKz1wYXJzZUZs
b2F0KGpRdWVyeS5jdXJDU1Mob2Zmc2V0UGFyZW50WzBdLCJib3JkZXJUb3BXaWR0aCIsdHJ1ZSkp
fHwwO3BhcmVudE9mZnNldC5sZWZ0Kz1wYXJzZUZsb2F0KGpRdWVyeS5jdXJDU1Mob2Zmc2V0UGFy
ZW50WzBdLCJib3JkZXJMZWZ0V2lkdGgiLHRydWUpKXx8MDtyZXR1cm57dG9wOm9mZnNldC50b3At
cGFyZW50T2Zmc2V0LnRvcCxsZWZ0Om9mZnNldC5sZWZ0LXBhcmVudE9mZnNldC5sZWZ0fTt9LG9m
ZnNldFBhcmVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe3ZhciBvZmZz
ZXRQYXJlbnQ9dGhpcy5vZmZzZXRQYXJlbnR8fGRvY3VtZW50LmJvZHk7d2hpbGUob2Zmc2V0UGFy
ZW50JiYoIS9eYm9keXxodG1sJC9pLnRlc3Qob2Zmc2V0UGFyZW50Lm5vZGVOYW1lKSYmalF1ZXJ5
LmNzcyhvZmZzZXRQYXJlbnQsInBvc2l0aW9uIik9PT0ic3RhdGljIikpe29mZnNldFBhcmVudD1v
ZmZzZXRQYXJlbnQub2Zmc2V0UGFyZW50O30KcmV0dXJuIG9mZnNldFBhcmVudDt9KTt9fSk7alF1
ZXJ5LmVhY2goWyJMZWZ0IiwiVG9wIl0sZnVuY3Rpb24oaSxuYW1lKXt2YXIgbWV0aG9kPSJzY3Jv
bGwiK25hbWU7alF1ZXJ5LmZuW21ldGhvZF09ZnVuY3Rpb24odmFsKXt2YXIgZWxlbT10aGlzWzBd
LHdpbjtpZighZWxlbSl7cmV0dXJuIG51bGw7fQppZih2YWwhPT11bmRlZmluZWQpe3JldHVybiB0
aGlzLmVhY2goZnVuY3Rpb24oKXt3aW49Z2V0V2luZG93KHRoaXMpO2lmKHdpbil7d2luLnNjcm9s
bFRvKCFpP3ZhbDpqUXVlcnkod2luKS5zY3JvbGxMZWZ0KCksaT92YWw6alF1ZXJ5KHdpbikuc2Ny
b2xsVG9wKCkpO31lbHNle3RoaXNbbWV0aG9kXT12YWw7fX0pO31lbHNle3dpbj1nZXRXaW5kb3co
ZWxlbSk7cmV0dXJuIHdpbj8oInBhZ2VYT2Zmc2V0ImluIHdpbik/d2luW2k/InBhZ2VZT2Zmc2V0
IjoicGFnZVhPZmZzZXQiXTpqUXVlcnkuc3VwcG9ydC5ib3hNb2RlbCYmd2luLmRvY3VtZW50LmRv
Y3VtZW50RWxlbWVudFttZXRob2RdfHx3aW4uZG9jdW1lbnQuYm9keVttZXRob2RdOmVsZW1bbWV0
aG9kXTt9fTt9KTtmdW5jdGlvbiBnZXRXaW5kb3coZWxlbSl7cmV0dXJuKCJzY3JvbGxUbyJpbiBl
bGVtJiZlbGVtLmRvY3VtZW50KT9lbGVtOmVsZW0ubm9kZVR5cGU9PT05P2VsZW0uZGVmYXVsdFZp
ZXd8fGVsZW0ucGFyZW50V2luZG93OmZhbHNlO30KalF1ZXJ5LmVhY2goWyJIZWlnaHQiLCJXaWR0
aCJdLGZ1bmN0aW9uKGksbmFtZSl7dmFyIHR5cGU9bmFtZS50b0xvd2VyQ2FzZSgpO2pRdWVyeS5m
blsiaW5uZXIiK25hbWVdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXNbMF0/alF1ZXJ5LmNzcyh0aGlz
WzBdLHR5cGUsZmFsc2UsInBhZGRpbmciKTpudWxsO307alF1ZXJ5LmZuWyJvdXRlciIrbmFtZV09
ZnVuY3Rpb24obWFyZ2luKXtyZXR1cm4gdGhpc1swXT9qUXVlcnkuY3NzKHRoaXNbMF0sdHlwZSxm
YWxzZSxtYXJnaW4/Im1hcmdpbiI6ImJvcmRlciIpOm51bGw7fTtqUXVlcnkuZm5bdHlwZV09ZnVu
Y3Rpb24oc2l6ZSl7dmFyIGVsZW09dGhpc1swXTtpZighZWxlbSl7cmV0dXJuIHNpemU9PW51bGw/
bnVsbDp0aGlzO30KaWYoalF1ZXJ5LmlzRnVuY3Rpb24oc2l6ZSkpe3JldHVybiB0aGlzLmVhY2go
ZnVuY3Rpb24oaSl7dmFyIHNlbGY9alF1ZXJ5KHRoaXMpO3NlbGZbdHlwZV0oc2l6ZS5jYWxsKHRo
aXMsaSxzZWxmW3R5cGVdKCkpKTt9KTt9CnJldHVybigic2Nyb2xsVG8iaW4gZWxlbSYmZWxlbS5k
b2N1bWVudCk/ZWxlbS5kb2N1bWVudC5jb21wYXRNb2RlPT09IkNTUzFDb21wYXQiJiZlbGVtLmRv
Y3VtZW50LmRvY3VtZW50RWxlbWVudFsiY2xpZW50IituYW1lXXx8ZWxlbS5kb2N1bWVudC5ib2R5
WyJjbGllbnQiK25hbWVdOihlbGVtLm5vZGVUeXBlPT09OSk/TWF0aC5tYXgoZWxlbS5kb2N1bWVu
dEVsZW1lbnRbImNsaWVudCIrbmFtZV0sZWxlbS5ib2R5WyJzY3JvbGwiK25hbWVdLGVsZW0uZG9j
dW1lbnRFbGVtZW50WyJzY3JvbGwiK25hbWVdLGVsZW0uYm9keVsib2Zmc2V0IituYW1lXSxlbGVt
LmRvY3VtZW50RWxlbWVudFsib2Zmc2V0IituYW1lXSk6c2l6ZT09PXVuZGVmaW5lZD9qUXVlcnku
Y3NzKGVsZW0sdHlwZSk6dGhpcy5jc3ModHlwZSx0eXBlb2Ygc2l6ZT09PSJzdHJpbmciP3NpemU6
c2l6ZSsicHgiKTt9O30pO3dpbmRvdy5qUXVlcnk9d2luZG93LiQ9alF1ZXJ5O30pKHdpbmRvdyk7
|
|
19 | /imageThink/step1_ci.png | image/png | step1_ci.png | 200 OK | PNG | 4.3 KB | 07/05/86 18:41:22 |
Download
|
|
SHA256
|
8e114338e9d5ce5d040fb36d60e1a6e2f8f5349e35629d16996bce00a9e18b64
|
Referer
|
http://telecharger-gratuit.com/thankyou.php?nom=VLC%20Media%20Player
|
Magic
|
Portable Network Graphics (PNG)
|
Request
|
GET /imageThink/step1_ci.png HTTP/1.1
Accept: */*
Referer: http://telecharger-gratuit.com/thankyou.php?nom=VLC%20Media%20Player
Accept-Language: en-US
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
Accept-Encoding: gzip, deflate
Host: telecharger-gratuit.com
Connection: Keep-Alive
|
Response Header
|
HTTP/1.1 200 OK
Server: Apache/2.2.16 (Debian)
Last-Modified: Mon, 04 Nov 2013 21:15:30 GMT
Cache-Control: max-age=2592000, public
Expires: Wed, 05 Mar 2014 11:35:35 GMT
Content-Type: image/png
Content-Length: 4403
Accept-Ranges: bytes
Date: Sun, 23 Feb 2014 11:44:53 GMT
X-Varnish: 66589355 66586322
Age: 558
Via: 1.1 varnish
Connection: keep-alive
|
Response Peek (128 B)
|
‰PNG
IHDR < | |