|
16 | /network/start.html?langs=en | text/html | start.html | 200 OK | HTML | 1019.0 B | 05/19/78 09:59:42 |
Download
|
|
SHA256
|
b8b9334a5e4b2cc8383a21a5da6ae85ed5f9cf5b8bfa41292eec3fcd2e77bc9c
|
Referer
|
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /network/start.html?langs=en 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: cdn.bitmedianetwork.com
Connection: Keep-Alive
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: PSjYVYQgt2k45EE1i0fvSkPVioitH25O/sn6ARkwPYHLVYSuPMkgXfE76Csl291uponez3dbDUs=
x-amz-request-id: 2201729192D360BC
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 43869
Date: Tue, 13 Dec 2016 16:00:33 GMT
Last-Modified: Fri, 11 Nov 2016 20:47:23 GMT
Expires: Wed, 14 Dec 2016 03:49:24 GMT
Content-Length: 1019
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<script type="text/javascript" src="htt...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICA8bWV0YSBodHRwLWVxdWl2PSJ4LXVhLWNv
bXBhdGlibGUiIGNvbnRlbnQ9IklFPUVkZ2UiLz4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJodHRwOi8vc3RhdGljLmFwLmJpdHRvcnJlbnQuY29tL2Fkb3MuanMiPjwvc2Ny
aXB0PgogIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii9hc3NldHMvanMvanF1
ZXJ5LTEuMTEuMi5qcyAiPjwvc2NyaXB0Pgo8L2hlYWQ+Cjxib2R5PgogIDxkaXYgaWQ9ImJ0X2Fw
X2RpdiI+PC9kaXY+CjxzY3JpcHQ+CiAgJChmdW5jdGlvbigpIHsKICAgIGFkb3Nfc2V0UGFzc2Jh
Y2tUaW1lb3V0KDEwMDApOwoKICAgIC8vIGxvYWQgcGxhY2VtZW50IGZvciBhY2NvdW50OiBCaXRU
b3JyZW50LCBzaXRlOiBCaXRUb3JyZW50ICYgdVRvcnJlbnQgQ2xpZW50cywgc2l6ZTogMzAweDI1
MAogICAgdmFyIGVsID0gYWRvc19hZGRfcGxhY2VtZW50KDU2ODIsICc1NDE2NicsICJidF9hcF9k
aXYiLCA1KTsKCiAgICAvLyBhZHplcmsgYWQgdGFyZ2V0aW5nIGJvaWxlcnBsYXRlCiAgICBlbC5z
ZXRQcm9wZXJ0aWVzKHt0YWc6ICJzdGFydC1jb29raWUifSk7CiAgICBhZG9zX3NldEtleXdvcmRz
KCJ0YWc9c3RhcnQtY29va2llIik7CiAgICBhZG9zX3NldERvbWFpbigiZW5naW5lLmJpdG1lZGlh
bmV0d29yay5jb20iKTsKCiAgICAvLyBpbml0IGFkIHJlcXVlc3Q7IHRoaXMgaXMgd2hlcmUgdGhl
IG1hZ2ljIGhhcHBlbnMKICAgIGFkb3NfbG9hZCgpOwoKICAgIC8vIEFkemVyaydzIGltcHJlc3Np
b24gY2FsbGJhY2s7IG5pY2UgdG8gaGF2ZSBqdXN0IGluIGNhc2UgZGVidWdnaW5nCiAgICBhZG9z
Lm9uKCJJbXByZXNzaW9uQ291bnRlZCIsIGZ1bmN0aW9uKGFyZ3MpIHsKICAgICAgd2luZG93LmV4
dGVybmFsLnNldF9hZF9wcm9wcygneyJhZHpDb29raWUiOiAiJyArIGFyZ3MuZGF0YS5zaGltLnVr
ICsgJyJ9Jyk7CiAgICB9KTsKICB9KTsKPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPgo=
|
|
17 | /network/index.html?adt=4&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=us&ie=8&page=torrent&site=33049&w=498073862&langs=en | text/html | index.html | 200 OK | HTML | 424.0 B | 05/21/78 16:05:43 |
Download
|
|
SHA256
|
45b4e3a119e175e7b69ca00fe041447e27d4cd6d470a3fb5913e7971b6d67ff7
|
Referer
|
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /network/index.html?adt=4&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=us&ie=8&page=torrent&site=33049&w=498073862&langs=en 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: cdn.bitmedianetwork.com
Connection: Keep-Alive
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: qPsw1V0sCq0G8eFFEFLmDOHbwtV0ysymp1F0HtYGkRZeKlQFAdGHyprWg0ZE+s/+FdqJDrJI+LM=
x-amz-request-id: 27298AC940B05F93
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 145978
Date: Tue, 13 Dec 2016 16:00:33 GMT
Last-Modified: Fri, 11 Nov 2016 20:47:19 GMT
Expires: Mon, 12 Dec 2016 23:27:35 GMT
Content-Length: 424
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html>
<head>
<link href="assets/css/index.css" rel="stylesheet" type="text/css">
<script type="t...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgCiAgICA8bGluayBocmVmPSJhc3Nl
dHMvY3NzL2luZGV4LmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+CiAgICA8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwOi8vc3RhdGljLmFwLmJpdHRv
cnJlbnQuY29tL2Fkb3MuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9ImFzc2V0cy9qcy9p
bmRleC1vcHQtaGVhZC5qcyI+PC9zY3JpcHQ+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPGRpdiBp
ZD0iYnRfYXBfZGl2Ij48L2Rpdj4KICAgIDxzY3JpcHQgc3JjPSJhc3NldHMvanMvaW5kZXgtb3B0
LWJvZHkuanMiPjwvc2NyaXB0PgogIDwvYm9keT4KPC9odG1sPgo8IS0tIGYwZWE4NmMgLS0+Cgog
CjwhLS0gSW5kZXgtb3B0aW1pemVkIC0tPg==
|
|
18 | /network/assets/css/index.css | text/css | index.css | 200 OK | TEXT | 354.0 B | 05/25/78 00:05:57 |
Download
|
|
SHA256
|
60e4ef80c6683ad1e8e295ead07cfafc7d355098619dbcc4d0b5539b7c9a38f9
|
Referer
|
http://cdn.bitmedianetwork.com/network/index.html?adt=4&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=us&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
Inconclusive. Probably text (TEXT)
|
Request
|
GET /network/assets/css/index.css HTTP/1.1
Accept: */*
Referer: http://cdn.bitmedianetwork.com/network/index.html?adt=4&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=us&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: 6dk1AAyTxC64gjchL86fwQ+GL+C4M3WIMEAwKNrrQ99hxiH/dnmU0mi6osgwUOuJ+MOUd9pZEOI=
x-amz-request-id: 188E96FBA642F818
x-amz-meta-cache-control: max-age=86400
Content-Type: text/css
Server: AmazonS3
Age: 44391
Date: Tue, 13 Dec 2016 16:00:33 GMT
Last-Modified: Fri, 11 Nov 2016 20:46:50 GMT
Expires: Wed, 14 Dec 2016 03:40:42 GMT
Content-Length: 354
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
html, body, #frame-wrapper {
position: relative;
top: 0;
left: 0;
padding: 0;
margin: 0;
width: 100%;
height: 100%...
|
aHRtbCwgYm9keSwgI2ZyYW1lLXdyYXBwZXIgewogIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB0b3A6
IDA7CiAgbGVmdDogMDsKICBwYWRkaW5nOiAwOwogIG1hcmdpbjogMDsKICB3aWR0aDogMTAwJTsK
ICBoZWlnaHQ6IDEwMCU7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKICBiYWNrZ3JvdW5kLWNvbG9yOiAj
RjRGNEY0OwogIGJvcmRlcjogMDsKfQoKYSBpbWcgewogIGJvcmRlcjogMDsKfQoKI2FudC1mcmFt
ZSB7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKfQoKI2ZyYW1lLWNvbnRhaW5lciB7CiAgcG9zaXRpb246
IGFic29sdXRlOwogIG92ZXJmbG93OiBoaWRkZW47Cn0KCiNidF9hcF9kaXYgewogIG92ZXJmbG93
OiBoaWRkZW47Cn0K
|
|
20 | /network/assets/js/index-opt-body.js | application/javascript | index-opt-body.js | 200 OK | TEXT | 389.0 B | 05/27/78 16:08:06 |
Download
|
|
SHA256
|
4f983f131f6dfda34ae4653be2d93a0b806ae2151c87ca9135d41f8849ebcde1
|
Referer
|
http://cdn.bitmedianetwork.com/network/index.html?adt=4&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=us&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
Inconclusive. Probably text (TEXT)
|
Request
|
GET /network/assets/js/index-opt-body.js HTTP/1.1
Accept: */*
Referer: http://cdn.bitmedianetwork.com/network/index.html?adt=4&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=us&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: evAHTgS/N5OG2Dt4aIQ+euv5KhY+Ja0275w1mrNx6Qne8h9/Au+gpm8E4rFxz2nWliWeyG01Hdo=
x-amz-request-id: CE726D218907BF68
x-amz-meta-cache-control: max-age=86400
Content-Type: application/javascript
Server: AmazonS3
Age: 146696
Date: Tue, 13 Dec 2016 16:00:34 GMT
Last-Modified: Fri, 11 Nov 2016 20:47:06 GMT
Expires: Mon, 12 Dec 2016 23:15:38 GMT
Content-Length: 389
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
void 0!==window.ados&&window.btap.loader.setup();var _qevents=_qevents||[];!function(){var a=document.createElement("script");a....
|
dm9pZCAwIT09d2luZG93LmFkb3MmJndpbmRvdy5idGFwLmxvYWRlci5zZXR1cCgpO3ZhciBfcWV2
ZW50cz1fcWV2ZW50c3x8W107IWZ1bmN0aW9uKCl7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgic2NyaXB0Iik7YS5zcmM9KCJodHRwczoiPT1kb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbD8i
aHR0cHM6Ly9zZWN1cmUiOiJodHRwOi8vZWRnZSIpKyIucXVhbnRzZXJ2ZS5jb20vcXVhbnQuanMi
LGEuYXN5bmM9ITAsYS50eXBlPSJ0ZXh0L2phdmFzY3JpcHQiO3ZhciBiPWRvY3VtZW50LmdldEVs
ZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKVswXTtiLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEs
Yil9KCksX3FldmVudHMucHVzaCh7cWFjY3Q6InAtemRkTllOdFVrVWhkUSJ9KTs=
|
|
32 | /network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en | text/html | index-edge.html | 200 OK | HTML | 483.0 B | 08/29/78 15:46:47 |
Download
|
|
SHA256
|
9a8730318c996dff2167edfc05b8fed3d3ec6fe4772f2a8902692ff2de8dbc20
|
Referer
|
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: YxJxa6ZPlI4VJOCUUeunzwtfq2/KbmWIUfIr8X4/pMfUMkDDWC0DJAv+qrIEKezg21UWx39Ylko=
x-amz-request-id: E43227E0565F5FCF
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 146736
Date: Tue, 13 Dec 2016 16:00:42 GMT
Last-Modified: Fri, 11 Nov 2016 20:47:15 GMT
Expires: Mon, 12 Dec 2016 23:15:06 GMT
Content-Length: 483
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<link href="assets/css/index.css"...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPG1ldGEgaHR0cC1lcXVpdj0ieC11
YS1jb21wYXRpYmxlIiBjb250ZW50PSJJRT1FZGdlIi8+CiAgICA8bGluayBocmVmPSJhc3NldHMv
Y3NzL2luZGV4LmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+CiAgICA8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwOi8vc3RhdGljLmFwLmJpdHRvcnJl
bnQuY29tL2Fkb3MuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9ImFzc2V0cy9qcy9pbmRl
eC1vcHQtaGVhZC5qcyI+PC9zY3JpcHQ+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPGRpdiBpZD0i
YnRfYXBfZGl2Ij48L2Rpdj4KICAgIDxzY3JpcHQgc3JjPSJhc3NldHMvanMvaW5kZXgtb3B0LWJv
ZHkuanMiPjwvc2NyaXB0PgogIDwvYm9keT4KPC9odG1sPgo8IS0tIGYwZWE4NmMgLS0+CgogCjwh
LS0gSW5kZXgtZWRnZS1vcHRpbWl6ZWQgLS0+
|
|
33 | /network/assets/js/index-opt-head.js | application/javascript | index-opt-head.js | 200 OK | TEXT | 100.1 KB | 05/25/78 01:21:27 |
Download
|
|
SHA256
|
1607073eab1d08da1b4c54db6f931d4b112e360d5abc2a7b62bc0168aaab9525
|
Referer
|
http://cdn.bitmedianetwork.com/network/index.html?adt=4&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=us&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
Inconclusive. Probably text (TEXT)
|
Request
|
GET /network/assets/js/index-opt-head.js HTTP/1.1
Accept: */*
Referer: http://cdn.bitmedianetwork.com/network/index.html?adt=4&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=us&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: YhIBKlxlMOZ/PTn2dJzfqRjNL49gFFlkXF6CTw+JK4ZU3JHvVbTOXFk32wnwMNa3
x-amz-request-id: 85FD531698C2A36E
x-amz-meta-cache-control: max-age=86400
Content-Type: application/javascript
Server: AmazonS3
Age: 44407
Date: Tue, 13 Dec 2016 16:00:34 GMT
Last-Modified: Fri, 11 Nov 2016 20:47:08 GMT
Expires: Wed, 14 Dec 2016 03:40:27 GMT
Content-Length: 102496
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(a){var b,c,d,e,f,g,h,i="...
|
dmFyIEJhc2U2ND17X2tleVN0cjoiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iLGVuY29kZTpmdW5jdGlvbihhKXt2YXIgYixj
LGQsZSxmLGcsaCxpPSIiLGo9MDtmb3IoYT1CYXNlNjQuX3V0ZjhfZW5jb2RlKGEpO2o8YS5sZW5n
dGg7KWI9YS5jaGFyQ29kZUF0KGorKyksYz1hLmNoYXJDb2RlQXQoaisrKSxkPWEuY2hhckNvZGVB
dChqKyspLGU9Yj4+MixmPSgzJmIpPDw0fGM+PjQsZz0oMTUmYyk8PDJ8ZD4+NixoPTYzJmQsaXNO
YU4oYyk/Zz1oPTY0OmlzTmFOKGQpJiYoaD02NCksaT1pK3RoaXMuX2tleVN0ci5jaGFyQXQoZSkr
dGhpcy5fa2V5U3RyLmNoYXJBdChmKSt0aGlzLl9rZXlTdHIuY2hhckF0KGcpK3RoaXMuX2tleVN0
ci5jaGFyQXQoaCk7cmV0dXJuIGl9LGRlY29kZTpmdW5jdGlvbihhKXt2YXIgYixjLGQsZSxmLGcs
aCxpPSIiLGo9MDtmb3IoYT1hLnJlcGxhY2UoL1teQS1aYS16MC05XCtcL1w9XS9nLCIiKTtqPGEu
bGVuZ3RoOyllPXRoaXMuX2tleVN0ci5pbmRleE9mKGEuY2hhckF0KGorKykpLGY9dGhpcy5fa2V5
U3RyLmluZGV4T2YoYS5jaGFyQXQoaisrKSksZz10aGlzLl9rZXlTdHIuaW5kZXhPZihhLmNoYXJB
dChqKyspKSxoPXRoaXMuX2tleVN0ci5pbmRleE9mKGEuY2hhckF0KGorKykpLGI9ZTw8MnxmPj40
LGM9KDE1JmYpPDw0fGc+PjIsZD0oMyZnKTw8NnxoLGkrPVN0cmluZy5mcm9tQ2hhckNvZGUoYiks
NjQhPWcmJihpKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGMpKSw2NCE9aCYmKGkrPVN0cmluZy5mcm9t
Q2hhckNvZGUoZCkpO3JldHVybiBpPUJhc2U2NC5fdXRmOF9kZWNvZGUoaSl9LF91dGY4X2VuY29k
ZTpmdW5jdGlvbihhKXthPWEucmVwbGFjZSgvXHJcbi9nLCJcbiIpO2Zvcih2YXIgYj0iIixjPTA7
YzxhLmxlbmd0aDtjKyspe3ZhciBkPWEuY2hhckNvZGVBdChjKTsxMjg+ZD9iKz1TdHJpbmcuZnJv
bUNoYXJDb2RlKGQpOmQ+MTI3JiYyMDQ4PmQ/KGIrPVN0cmluZy5mcm9tQ2hhckNvZGUoZD4+Nnwx
OTIpLGIrPVN0cmluZy5mcm9tQ2hhckNvZGUoNjMmZHwxMjgpKTooYis9U3RyaW5nLmZyb21DaGFy
Q29kZShkPj4xMnwyMjQpLGIrPVN0cmluZy5mcm9tQ2hhckNvZGUoZD4+NiY2M3wxMjgpLGIrPVN0
cmluZy5mcm9tQ2hhckNvZGUoNjMmZHwxMjgpKX1yZXR1cm4gYn0sX3V0ZjhfZGVjb2RlOmZ1bmN0
aW9uKGEpe2Zvcih2YXIgYj0iIixjPTAsZD1jMT1jMj0wO2M8YS5sZW5ndGg7KWQ9YS5jaGFyQ29k
ZUF0KGMpLDEyOD5kPyhiKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGQpLGMrKyk6ZD4xOTEmJjIyND5k
PyhjMj1hLmNoYXJDb2RlQXQoYysxKSxiKz1TdHJpbmcuZnJvbUNoYXJDb2RlKCgzMSZkKTw8Nnw2
MyZjMiksYys9Mik6KGMyPWEuY2hhckNvZGVBdChjKzEpLGMzPWEuY2hhckNvZGVBdChjKzIpLGIr
PVN0cmluZy5mcm9tQ2hhckNvZGUoKDE1JmQpPDwxMnwoNjMmYzIpPDw2fDYzJmMzKSxjKz0zKTty
ZXR1cm4gYn19OyFmdW5jdGlvbihhLGIpeyJvYmplY3QiPT10eXBlb2YgbW9kdWxlJiYib2JqZWN0
Ij09dHlwZW9mIG1vZHVsZS5leHBvcnRzP21vZHVsZS5leHBvcnRzPWEuZG9jdW1lbnQ/YihhLCEw
KTpmdW5jdGlvbihhKXtpZighYS5kb2N1bWVudCl0aHJvdyBuZXcgRXJyb3IoImpRdWVyeSByZXF1
aXJlcyBhIHdpbmRvdyB3aXRoIGEgZG9jdW1lbnQiKTtyZXR1cm4gYihhKX06YihhKX0oInVuZGVm
aW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93OnRoaXMsZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBj
KGEpe3ZhciBiPWEubGVuZ3RoLGM9ZWEudHlwZShhKTtyZXR1cm4iZnVuY3Rpb24iPT09Y3x8ZWEu
aXNXaW5kb3coYSk/ITE6MT09PWEubm9kZVR5cGUmJmI/ITA6ImFycmF5Ij09PWN8fDA9PT1ifHwi
bnVtYmVyIj09dHlwZW9mIGImJmI+MCYmYi0xIGluIGF9ZnVuY3Rpb24gZChhLGIsYyl7aWYoZWEu
aXNGdW5jdGlvbihiKSlyZXR1cm4gZWEuZ3JlcChhLGZ1bmN0aW9uKGEsZCl7cmV0dXJuISFiLmNh
bGwoYSxkLGEpIT09Y30pO2lmKGIubm9kZVR5cGUpcmV0dXJuIGVhLmdyZXAoYSxmdW5jdGlvbihh
KXtyZXR1cm4gYT09PWIhPT1jfSk7aWYoInN0cmluZyI9PXR5cGVvZiBiKXtpZihtYS50ZXN0KGIp
KXJldHVybiBlYS5maWx0ZXIoYixhLGMpO2I9ZWEuZmlsdGVyKGIsYSl9cmV0dXJuIGVhLmdyZXAo
YSxmdW5jdGlvbihhKXtyZXR1cm4gZWEuaW5BcnJheShhLGIpPj0wIT09Y30pfWZ1bmN0aW9uIGUo
YSxiKXtkbyBhPWFbYl07d2hpbGUoYSYmMSE9PWEubm9kZVR5cGUpO3JldHVybiBhfWZ1bmN0aW9u
IGYoYSl7dmFyIGI9dWFbYV09e307cmV0dXJuIGVhLmVhY2goYS5tYXRjaCh0YSl8fFtdLGZ1bmN0
aW9uKGEsYyl7YltjXT0hMH0pLGJ9ZnVuY3Rpb24gZygpe29hLmFkZEV2ZW50TGlzdGVuZXI/KG9h
LnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLGgsITEpLGEucmVtb3ZlRXZl
bnRMaXN0ZW5lcigibG9hZCIsaCwhMSkpOihvYS5kZXRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hh
bmdlIixoKSxhLmRldGFjaEV2ZW50KCJvbmxvYWQiLGgpKX1mdW5jdGlvbiBoKCl7KG9hLmFkZEV2
ZW50TGlzdGVuZXJ8fCJsb2FkIj09PWV2ZW50LnR5cGV8fCJjb21wbGV0ZSI9PT1vYS5yZWFkeVN0
YXRlKSYmKGcoKSxlYS5yZWFkeSgpKX1mdW5jdGlvbiBpKGEsYixjKXtpZih2b2lkIDA9PT1jJiYx
PT09YS5ub2RlVHlwZSl7dmFyIGQ9ImRhdGEtIitiLnJlcGxhY2UoemEsIi0kMSIpLnRvTG93ZXJD
YXNlKCk7aWYoYz1hLmdldEF0dHJpYnV0ZShkKSwic3RyaW5nIj09dHlwZW9mIGMpe3RyeXtjPSJ0
cnVlIj09PWM/ITA6ImZhbHNlIj09PWM/ITE6Im51bGwiPT09Yz9udWxsOitjKyIiPT09Yz8rYzp5
YS50ZXN0KGMpP2VhLnBhcnNlSlNPTihjKTpjfWNhdGNoKGUpe31lYS5kYXRhKGEsYixjKX1lbHNl
IGM9dm9pZCAwfXJldHVybiBjfWZ1bmN0aW9uIGooYSl7dmFyIGI7Zm9yKGIgaW4gYSlpZigoImRh
dGEiIT09Ynx8IWVhLmlzRW1wdHlPYmplY3QoYVtiXSkpJiYidG9KU09OIiE9PWIpcmV0dXJuITE7
cmV0dXJuITB9ZnVuY3Rpb24gayhhLGIsYyxkKXtpZihlYS5hY2NlcHREYXRhKGEpKXt2YXIgZSxm
LGc9ZWEuZXhwYW5kbyxoPWEubm9kZVR5cGUsaT1oP2VhLmNhY2hlOmEsaj1oP2FbZ106YVtnXSYm
ZztpZihqJiZpW2pdJiYoZHx8aVtqXS5kYXRhKXx8dm9pZCAwIT09Y3x8InN0cmluZyIhPXR5cGVv
ZiBiKXJldHVybiBqfHwoaj1oP2FbZ109Vy5wb3AoKXx8ZWEuZ3VpZCsrOmcpLGlbal18fChpW2pd
PWg/e306e3RvSlNPTjplYS5ub29wfSksIm9iamVjdCIhPXR5cGVvZiBiJiYiZnVuY3Rpb24iIT10
eXBlb2YgYnx8KGQ/aVtqXT1lYS5leHRlbmQoaVtqXSxiKTppW2pdLmRhdGE9ZWEuZXh0ZW5kKGlb
al0uZGF0YSxiKSksZj1pW2pdLGR8fChmLmRhdGF8fChmLmRhdGE9e30pLGY9Zi5kYXRhKSx2b2lk
IDAhPT1jJiYoZltlYS5jYW1lbENhc2UoYildPWMpLCJzdHJpbmciPT10eXBlb2YgYj8oZT1mW2Jd
LG51bGw9PWUmJihlPWZbZWEuY2FtZWxDYXNlKGIpXSkpOmU9ZixlfX1mdW5jdGlvbiBsKGEsYixj
KXtpZihlYS5hY2NlcHREYXRhKGEpKXt2YXIgZCxlLGY9YS5ub2RlVHlwZSxnPWY/ZWEuY2FjaGU6
YSxoPWY/YVtlYS5leHBhbmRvXTplYS5leHBhbmRvO2lmKGdbaF0pe2lmKGImJihkPWM/Z1toXTpn
W2hdLmRhdGEpKXtlYS5pc0FycmF5KGIpP2I9Yi5jb25jYXQoZWEubWFwKGIsZWEuY2FtZWxDYXNl
KSk6YiBpbiBkP2I9W2JdOihiPWVhLmNhbWVsQ2FzZShiKSxiPWIgaW4gZD9bYl06Yi5zcGxpdCgi
ICIpKSxlPWIubGVuZ3RoO2Zvcig7ZS0tOylkZWxldGUgZFtiW2VdXTtpZihjPyFqKGQpOiFlYS5p
c0VtcHR5T2JqZWN0KGQpKXJldHVybn0oY3x8KGRlbGV0ZSBnW2hdLmRhdGEsaihnW2hdKSkpJiYo
Zj9lYS5jbGVhbkRhdGEoW2FdLCEwKTpjYS5kZWxldGVFeHBhbmRvfHxnIT1nLndpbmRvdz9kZWxl
dGUgZ1toXTpnW2hdPW51bGwpfX19ZnVuY3Rpb24gbSgpe3JldHVybiEwfWZ1bmN0aW9uIG4oKXty
ZXR1cm4hMX1mdW5jdGlvbiBvKCl7dHJ5e3JldHVybiBvYS5hY3RpdmVFbGVtZW50fWNhdGNoKGEp
e319ZnVuY3Rpb24gcChhKXt2YXIgYj1LYS5zcGxpdCgifCIpLGM9YS5jcmVhdGVEb2N1bWVudEZy
YWdtZW50KCk7aWYoYy5jcmVhdGVFbGVtZW50KWZvcig7Yi5sZW5ndGg7KWMuY3JlYXRlRWxlbWVu
dChiLnBvcCgpKTtyZXR1cm4gY31mdW5jdGlvbiBxKGEsYil7dmFyIGMsZCxlPTAsZj10eXBlb2Yg
YS5nZXRFbGVtZW50c0J5VGFnTmFtZSE9PXhhP2EuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYnx8Iioi
KTp0eXBlb2YgYS5xdWVyeVNlbGVjdG9yQWxsIT09eGE/YS5xdWVyeVNlbGVjdG9yQWxsKGJ8fCIq
Iik6dm9pZCAwO2lmKCFmKWZvcihmPVtdLGM9YS5jaGlsZE5vZGVzfHxhO251bGwhPShkPWNbZV0p
O2UrKykhYnx8ZWEubm9kZU5hbWUoZCxiKT9mLnB1c2goZCk6ZWEubWVyZ2UoZixxKGQsYikpO3Jl
dHVybiB2b2lkIDA9PT1ifHxiJiZlYS5ub2RlTmFtZShhLGIpP2VhLm1lcmdlKFthXSxmKTpmfWZ1
bmN0aW9uIHIoYSl7RWEudGVzdChhLnR5cGUpJiYoYS5kZWZhdWx0Q2hlY2tlZD1hLmNoZWNrZWQp
fWZ1bmN0aW9uIHMoYSxiKXtyZXR1cm4gZWEubm9kZU5hbWUoYSwidGFibGUiKSYmZWEubm9kZU5h
bWUoMTEhPT1iLm5vZGVUeXBlP2I6Yi5maXJzdENoaWxkLCJ0ciIpP2EuZ2V0RWxlbWVudHNCeVRh
Z05hbWUoInRib2R5IilbMF18fGEuYXBwZW5kQ2hpbGQoYS5vd25lckRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoInRib2R5IikpOmF9ZnVuY3Rpb24gdChhKXtyZXR1cm4gYS50eXBlPShudWxsIT09ZWEu
ZmluZC5hdHRyKGEsInR5cGUiKSkrIi8iK2EudHlwZSxhfWZ1bmN0aW9uIHUoYSl7dmFyIGI9VmEu
ZXhlYyhhLnR5cGUpO3JldHVybiBiP2EudHlwZT1iWzFdOmEucmVtb3ZlQXR0cmlidXRlKCJ0eXBl
IiksYX1mdW5jdGlvbiB2KGEsYil7Zm9yKHZhciBjLGQ9MDtudWxsIT0oYz1hW2RdKTtkKyspZWEu
X2RhdGEoYywiZ2xvYmFsRXZhbCIsIWJ8fGVhLl9kYXRhKGJbZF0sImdsb2JhbEV2YWwiKSl9ZnVu
Y3Rpb24gdyhhLGIpe2lmKDE9PT1iLm5vZGVUeXBlJiZlYS5oYXNEYXRhKGEpKXt2YXIgYyxkLGUs
Zj1lYS5fZGF0YShhKSxnPWVhLl9kYXRhKGIsZiksaD1mLmV2ZW50cztpZihoKXtkZWxldGUgZy5o
YW5kbGUsZy5ldmVudHM9e307Zm9yKGMgaW4gaClmb3IoZD0wLGU9aFtjXS5sZW5ndGg7ZT5kO2Qr
KyllYS5ldmVudC5hZGQoYixjLGhbY11bZF0pfWcuZGF0YSYmKGcuZGF0YT1lYS5leHRlbmQoe30s
Zy5kYXRhKSl9fWZ1bmN0aW9uIHgoYSxiKXt2YXIgYyxkLGU7aWYoMT09PWIubm9kZVR5cGUpe2lm
KGM9Yi5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLCFjYS5ub0Nsb25lRXZlbnQmJmJbZWEuZXhwYW5k
b10pe2U9ZWEuX2RhdGEoYik7Zm9yKGQgaW4gZS5ldmVudHMpZWEucmVtb3ZlRXZlbnQoYixkLGUu
aGFuZGxlKTtiLnJlbW92ZUF0dHJpYnV0ZShlYS5leHBhbmRvKX0ic2NyaXB0Ij09PWMmJmIudGV4
dCE9PWEudGV4dD8odChiKS50ZXh0PWEudGV4dCx1KGIpKToib2JqZWN0Ij09PWM/KGIucGFyZW50
Tm9kZSYmKGIub3V0ZXJIVE1MPWEub3V0ZXJIVE1MKSxjYS5odG1sNUNsb25lJiZhLmlubmVySFRN
TCYmIWVhLnRyaW0oYi5pbm5lckhUTUwpJiYoYi5pbm5lckhUTUw9YS5pbm5lckhUTUwpKToiaW5w
dXQiPT09YyYmRWEudGVzdChhLnR5cGUpPyhiLmRlZmF1bHRDaGVja2VkPWIuY2hlY2tlZD1hLmNo
ZWNrZWQsYi52YWx1ZSE9PWEudmFsdWUmJihiLnZhbHVlPWEudmFsdWUpKToib3B0aW9uIj09PWM/
Yi5kZWZhdWx0U2VsZWN0ZWQ9Yi5zZWxlY3RlZD1hLmRlZmF1bHRTZWxlY3RlZDoiaW5wdXQiIT09
YyYmInRleHRhcmVhIiE9PWN8fChiLmRlZmF1bHRWYWx1ZT1hLmRlZmF1bHRWYWx1ZSl9fWZ1bmN0
aW9uIHkoYixjKXt2YXIgZCxlPWVhKGMuY3JlYXRlRWxlbWVudChiKSkuYXBwZW5kVG8oYy5ib2R5
KSxmPWEuZ2V0RGVmYXVsdENvbXB1dGVkU3R5bGUmJihkPWEuZ2V0RGVmYXVsdENvbXB1dGVkU3R5
bGUoZVswXSkpP2QuZGlzcGxheTplYS5jc3MoZVswXSwiZGlzcGxheSIpO3JldHVybiBlLmRldGFj
aCgpLGZ9ZnVuY3Rpb24geihhKXt2YXIgYj1vYSxjPV9hW2FdO3JldHVybiBjfHwoYz15KGEsYiks
Im5vbmUiIT09YyYmY3x8KCRhPSgkYXx8ZWEoIjxpZnJhbWUgZnJhbWVib3JkZXI9JzAnIHdpZHRo
PScwJyBoZWlnaHQ9JzAnLz4iKSkuYXBwZW5kVG8oYi5kb2N1bWVudEVsZW1lbnQpLGI9KCRhWzBd
LmNvbnRlbnRXaW5kb3d8fCRhWzBdLmNvbnRlbnREb2N1bWVudCkuZG9jdW1lbnQsYi53cml0ZSgp
LGIuY2xvc2UoKSxjPXkoYSxiKSwkYS5kZXRhY2goKSksX2FbYV09YyksY31mdW5jdGlvbiBBKGEs
Yil7cmV0dXJue2dldDpmdW5jdGlvbigpe3ZhciBjPWEoKTtpZihudWxsIT1jKXJldHVybiBjP3Zv
aWQgZGVsZXRlIHRoaXMuZ2V0Oih0aGlzLmdldD1iKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fX1m
dW5jdGlvbiBCKGEsYil7aWYoYiBpbiBhKXJldHVybiBiO2Zvcih2YXIgYz1iLmNoYXJBdCgwKS50
b1VwcGVyQ2FzZSgpK2Iuc2xpY2UoMSksZD1iLGU9bWIubGVuZ3RoO2UtLTspaWYoYj1tYltlXStj
LGIgaW4gYSlyZXR1cm4gYjtyZXR1cm4gZH1mdW5jdGlvbiBDKGEsYil7Zm9yKHZhciBjLGQsZSxm
PVtdLGc9MCxoPWEubGVuZ3RoO2g+ZztnKyspZD1hW2ddLGQuc3R5bGUmJihmW2ddPWVhLl9kYXRh
KGQsIm9sZGRpc3BsYXkiKSxjPWQuc3R5bGUuZGlzcGxheSxiPyhmW2ddfHwibm9uZSIhPT1jfHwo
ZC5zdHlsZS5kaXNwbGF5PSIiKSwiIj09PWQuc3R5bGUuZGlzcGxheSYmQ2EoZCkmJihmW2ddPWVh
Ll9kYXRhKGQsIm9sZGRpc3BsYXkiLHooZC5ub2RlTmFtZSkpKSk6KGU9Q2EoZCksKGMmJiJub25l
IiE9PWN8fCFlKSYmZWEuX2RhdGEoZCwib2xkZGlzcGxheSIsZT9jOmVhLmNzcyhkLCJkaXNwbGF5
IikpKSk7Zm9yKGc9MDtoPmc7ZysrKWQ9YVtnXSxkLnN0eWxlJiYoYiYmIm5vbmUiIT09ZC5zdHls
ZS5kaXNwbGF5JiYiIiE9PWQuc3R5bGUuZGlzcGxheXx8KGQuc3R5bGUuZGlzcGxheT1iP2ZbZ118
fCIiOiJub25lIikpO3JldHVybiBhfWZ1bmN0aW9uIEQoYSxiLGMpe3ZhciBkPWliLmV4ZWMoYik7
cmV0dXJuIGQ/TWF0aC5tYXgoMCxkWzFdLShjfHwwKSkrKGRbMl18fCJweCIpOmJ9ZnVuY3Rpb24g
RShhLGIsYyxkLGUpe2Zvcih2YXIgZj1jPT09KGQ/ImJvcmRlciI6ImNvbnRlbnQiKT80OiJ3aWR0
aCI9PT1iPzE6MCxnPTA7ND5mO2YrPTIpIm1hcmdpbiI9PT1jJiYoZys9ZWEuY3NzKGEsYytCYVtm
XSwhMCxlKSksZD8oImNvbnRlbnQiPT09YyYmKGctPWVhLmNzcyhhLCJwYWRkaW5nIitCYVtmXSwh
MCxlKSksIm1hcmdpbiIhPT1jJiYoZy09ZWEuY3NzKGEsImJvcmRlciIrQmFbZl0rIldpZHRoIiwh
MCxlKSkpOihnKz1lYS5jc3MoYSwicGFkZGluZyIrQmFbZl0sITAsZSksInBhZGRpbmciIT09YyYm
KGcrPWVhLmNzcyhhLCJib3JkZXIiK0JhW2ZdKyJXaWR0aCIsITAsZSkpKTtyZXR1cm4gZ31mdW5j
dGlvbiBGKGEsYixjKXt2YXIgZD0hMCxlPSJ3aWR0aCI9PT1iP2Eub2Zmc2V0V2lkdGg6YS5vZmZz
ZXRIZWlnaHQsZj1hYihhKSxnPWNhLmJveFNpemluZyYmImJvcmRlci1ib3giPT09ZWEuY3NzKGEs
ImJveFNpemluZyIsITEsZik7aWYoMD49ZXx8bnVsbD09ZSl7aWYoZT1iYihhLGIsZiksKDA+ZXx8
bnVsbD09ZSkmJihlPWEuc3R5bGVbYl0pLGRiLnRlc3QoZSkpcmV0dXJuIGU7ZD1nJiYoY2EuYm94
U2l6aW5nUmVsaWFibGUoKXx8ZT09PWEuc3R5bGVbYl0pLGU9cGFyc2VGbG9hdChlKXx8MH1yZXR1
cm4gZStFKGEsYixjfHwoZz8iYm9yZGVyIjoiY29udGVudCIpLGQsZikrInB4In1mdW5jdGlvbiBH
KGEsYixjLGQsZSl7cmV0dXJuIG5ldyBHLnByb3RvdHlwZS5pbml0KGEsYixjLGQsZSl9ZnVuY3Rp
b24gSCgpe3JldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bmI9dm9pZCAwfSksbmI9ZWEubm93
KCl9ZnVuY3Rpb24gSShhLGIpe3ZhciBjLGQ9e2hlaWdodDphfSxlPTA7Zm9yKGI9Yj8xOjA7ND5l
O2UrPTItYiljPUJhW2VdLGRbIm1hcmdpbiIrY109ZFsicGFkZGluZyIrY109YTtyZXR1cm4gYiYm
KGQub3BhY2l0eT1kLndpZHRoPWEpLGR9ZnVuY3Rpb24gSihhLGIsYyl7Zm9yKHZhciBkLGU9KHRi
W2JdfHxbXSkuY29uY2F0KHRiWyIqIl0pLGY9MCxnPWUubGVuZ3RoO2c+ZjtmKyspaWYoZD1lW2Zd
LmNhbGwoYyxiLGEpKXJldHVybiBkfWZ1bmN0aW9uIEsoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxq
LGssbD10aGlzLG09e30sbj1hLnN0eWxlLG89YS5ub2RlVHlwZSYmQ2EoYSkscD1lYS5fZGF0YShh
LCJmeHNob3ciKTtjLnF1ZXVlfHwoaD1lYS5fcXVldWVIb29rcyhhLCJmeCIpLG51bGw9PWgudW5x
dWV1ZWQmJihoLnVucXVldWVkPTAsaT1oLmVtcHR5LmZpcmUsaC5lbXB0eS5maXJlPWZ1bmN0aW9u
KCl7aC51bnF1ZXVlZHx8aSgpfSksaC51bnF1ZXVlZCsrLGwuYWx3YXlzKGZ1bmN0aW9uKCl7bC5h
bHdheXMoZnVuY3Rpb24oKXtoLnVucXVldWVkLS0sZWEucXVldWUoYSwiZngiKS5sZW5ndGh8fGgu
ZW1wdHkuZmlyZSgpfSl9KSksMT09PWEubm9kZVR5cGUmJigiaGVpZ2h0ImluIGJ8fCJ3aWR0aCJp
biBiKSYmKGMub3ZlcmZsb3c9W24ub3ZlcmZsb3csbi5vdmVyZmxvd1gsbi5vdmVyZmxvd1ldLGo9
ZWEuY3NzKGEsImRpc3BsYXkiKSxrPSJub25lIj09PWo/ZWEuX2RhdGEoYSwib2xkZGlzcGxheSIp
fHx6KGEubm9kZU5hbWUpOmosImlubGluZSI9PT1rJiYibm9uZSI9PT1lYS5jc3MoYSwiZmxvYXQi
KSYmKGNhLmlubGluZUJsb2NrTmVlZHNMYXlvdXQmJiJpbmxpbmUiIT09eihhLm5vZGVOYW1lKT9u
Lnpvb209MTpuLmRpc3BsYXk9ImlubGluZS1ibG9jayIpKSxjLm92ZXJmbG93JiYobi5vdmVyZmxv
dz0iaGlkZGVuIixjYS5zaHJpbmtXcmFwQmxvY2tzKCl8fGwuYWx3YXlzKGZ1bmN0aW9uKCl7bi5v
dmVyZmxvdz1jLm92ZXJmbG93WzBdLG4ub3ZlcmZsb3dYPWMub3ZlcmZsb3dbMV0sbi5vdmVyZmxv
d1k9Yy5vdmVyZmxvd1syXX0pKTtmb3IoZCBpbiBiKWlmKGU9YltkXSxwYi5leGVjKGUpKXtpZihk
ZWxldGUgYltkXSxmPWZ8fCJ0b2dnbGUiPT09ZSxlPT09KG8/ImhpZGUiOiJzaG93Iikpe2lmKCJz
aG93IiE9PWV8fCFwfHx2b2lkIDA9PT1wW2RdKWNvbnRpbnVlO289ITB9bVtkXT1wJiZwW2RdfHxl
YS5zdHlsZShhLGQpfWVsc2Ugaj12b2lkIDA7aWYoZWEuaXNFbXB0eU9iamVjdChtKSkiaW5saW5l
Ij09PSgibm9uZSI9PT1qP3ooYS5ub2RlTmFtZSk6aikmJihuLmRpc3BsYXk9aik7ZWxzZXtwPyJo
aWRkZW4iaW4gcCYmKG89cC5oaWRkZW4pOnA9ZWEuX2RhdGEoYSwiZnhzaG93Iix7fSksZiYmKHAu
aGlkZGVuPSFvKSxvP2VhKGEpLnNob3coKTpsLmRvbmUoZnVuY3Rpb24oKXtlYShhKS5oaWRlKCl9
KSxsLmRvbmUoZnVuY3Rpb24oKXt2YXIgYjtlYS5fcmVtb3ZlRGF0YShhLCJmeHNob3ciKTtmb3Io
YiBpbiBtKWVhLnN0eWxlKGEsYixtW2JdKX0pO2ZvcihkIGluIG0pZz1KKG8/cFtkXTowLGQsbCks
ZCBpbiBwfHwocFtkXT1nLnN0YXJ0LG8mJihnLmVuZD1nLnN0YXJ0LGcuc3RhcnQ9IndpZHRoIj09
PWR8fCJoZWlnaHQiPT09ZD8xOjApKX19ZnVuY3Rpb24gTChhLGIpe3ZhciBjLGQsZSxmLGc7Zm9y
KGMgaW4gYSlpZihkPWVhLmNhbWVsQ2FzZShjKSxlPWJbZF0sZj1hW2NdLGVhLmlzQXJyYXkoZikm
JihlPWZbMV0sZj1hW2NdPWZbMF0pLGMhPT1kJiYoYVtkXT1mLGRlbGV0ZSBhW2NdKSxnPWVhLmNz
c0hvb2tzW2RdLGcmJiJleHBhbmQiaW4gZyl7Zj1nLmV4cGFuZChmKSxkZWxldGUgYVtkXTtmb3Io
YyBpbiBmKWMgaW4gYXx8KGFbY109ZltjXSxiW2NdPWUpfWVsc2UgYltkXT1lfWZ1bmN0aW9uIE0o
YSxiLGMpe3ZhciBkLGUsZj0wLGc9c2IubGVuZ3RoLGg9ZWEuRGVmZXJyZWQoKS5hbHdheXMoZnVu
Y3Rpb24oKXtkZWxldGUgaS5lbGVtfSksaT1mdW5jdGlvbigpe2lmKGUpcmV0dXJuITE7Zm9yKHZh
ciBiPW5ifHxIKCksYz1NYXRoLm1heCgwLGouc3RhcnRUaW1lK2ouZHVyYXRpb24tYiksZD1jL2ou
ZHVyYXRpb258fDAsZj0xLWQsZz0wLGk9ai50d2VlbnMubGVuZ3RoO2k+ZztnKyspai50d2VlbnNb
Z10ucnVuKGYpO3JldHVybiBoLm5vdGlmeVdpdGgoYSxbaixmLGNdKSwxPmYmJmk/YzooaC5yZXNv
bHZlV2l0aChhLFtqXSksITEpfSxqPWgucHJvbWlzZSh7ZWxlbTphLHByb3BzOmVhLmV4dGVuZCh7
fSxiKSxvcHRzOmVhLmV4dGVuZCghMCx7c3BlY2lhbEVhc2luZzp7fX0sYyksb3JpZ2luYWxQcm9w
ZXJ0aWVzOmIsb3JpZ2luYWxPcHRpb25zOmMsc3RhcnRUaW1lOm5ifHxIKCksZHVyYXRpb246Yy5k
dXJhdGlvbix0d2VlbnM6W10sY3JlYXRlVHdlZW46ZnVuY3Rpb24oYixjKXt2YXIgZD1lYS5Ud2Vl
bihhLGoub3B0cyxiLGMsai5vcHRzLnNwZWNpYWxFYXNpbmdbYl18fGoub3B0cy5lYXNpbmcpO3Jl
dHVybiBqLnR3ZWVucy5wdXNoKGQpLGR9LHN0b3A6ZnVuY3Rpb24oYil7dmFyIGM9MCxkPWI/ai50
d2VlbnMubGVuZ3RoOjA7aWYoZSlyZXR1cm4gdGhpcztmb3IoZT0hMDtkPmM7YysrKWoudHdlZW5z
W2NdLnJ1bigxKTtyZXR1cm4gYj9oLnJlc29sdmVXaXRoKGEsW2osYl0pOmgucmVqZWN0V2l0aChh
LFtqLGJdKSx0aGlzfX0pLGs9ai5wcm9wcztmb3IoTChrLGoub3B0cy5zcGVjaWFsRWFzaW5nKTtn
PmY7ZisrKWlmKGQ9c2JbZl0uY2FsbChqLGEsayxqLm9wdHMpKXJldHVybiBkO3JldHVybiBlYS5t
YXAoayxKLGopLGVhLmlzRnVuY3Rpb24oai5vcHRzLnN0YXJ0KSYmai5vcHRzLnN0YXJ0LmNhbGwo
YSxqKSxlYS5meC50aW1lcihlYS5leHRlbmQoaSx7ZWxlbTphLGFuaW06aixxdWV1ZTpqLm9wdHMu
cXVldWV9KSksai5wcm9ncmVzcyhqLm9wdHMucHJvZ3Jlc3MpLmRvbmUoai5vcHRzLmRvbmUsai5v
cHRzLmNvbXBsZXRlKS5mYWlsKGoub3B0cy5mYWlsKS5hbHdheXMoai5vcHRzLmFsd2F5cyl9ZnVu
Y3Rpb24gTihhKXtyZXR1cm4gZnVuY3Rpb24oYixjKXsic3RyaW5nIiE9dHlwZW9mIGImJihjPWIs
Yj0iKiIpO3ZhciBkLGU9MCxmPWIudG9Mb3dlckNhc2UoKS5tYXRjaCh0YSl8fFtdO2lmKGVhLmlz
RnVuY3Rpb24oYykpZm9yKDtkPWZbZSsrXTspIisiPT09ZC5jaGFyQXQoMCk/KGQ9ZC5zbGljZSgx
KXx8IioiLChhW2RdPWFbZF18fFtdKS51bnNoaWZ0KGMpKTooYVtkXT1hW2RdfHxbXSkucHVzaChj
KX19ZnVuY3Rpb24gTyhhLGIsYyxkKXtmdW5jdGlvbiBlKGgpe3ZhciBpO3JldHVybiBmW2hdPSEw
LGVhLmVhY2goYVtoXXx8W10sZnVuY3Rpb24oYSxoKXt2YXIgaj1oKGIsYyxkKTtyZXR1cm4ic3Ry
aW5nIiE9dHlwZW9mIGp8fGd8fGZbal0/Zz8hKGk9aik6dm9pZCAwOihiLmRhdGFUeXBlcy51bnNo
aWZ0KGopLGUoaiksITEpfSksaX12YXIgZj17fSxnPWE9PT1SYjtyZXR1cm4gZShiLmRhdGFUeXBl
c1swXSl8fCFmWyIqIl0mJmUoIioiKX1mdW5jdGlvbiBQKGEsYil7dmFyIGMsZCxlPWVhLmFqYXhT
ZXR0aW5ncy5mbGF0T3B0aW9uc3x8e307Zm9yKGQgaW4gYil2b2lkIDAhPT1iW2RdJiYoKGVbZF0/
YTpjfHwoYz17fSkpW2RdPWJbZF0pO3JldHVybiBjJiZlYS5leHRlbmQoITAsYSxjKSxhfWZ1bmN0
aW9uIFEoYSxiLGMpe2Zvcih2YXIgZCxlLGYsZyxoPWEuY29udGVudHMsaT1hLmRhdGFUeXBlczsi
KiI9PT1pWzBdOylpLnNoaWZ0KCksdm9pZCAwPT09ZSYmKGU9YS5taW1lVHlwZXx8Yi5nZXRSZXNw
b25zZUhlYWRlcigiQ29udGVudC1UeXBlIikpO2lmKGUpZm9yKGcgaW4gaClpZihoW2ddJiZoW2dd
LnRlc3QoZSkpe2kudW5zaGlmdChnKTticmVha31pZihpWzBdaW4gYylmPWlbMF07ZWxzZXtmb3Io
ZyBpbiBjKXtpZighaVswXXx8YS5jb252ZXJ0ZXJzW2crIiAiK2lbMF1dKXtmPWc7YnJlYWt9ZHx8
KGQ9Zyl9Zj1mfHxkfXJldHVybiBmPyhmIT09aVswXSYmaS51bnNoaWZ0KGYpLGNbZl0pOnZvaWQg
MH1mdW5jdGlvbiBSKGEsYixjLGQpe3ZhciBlLGYsZyxoLGksaj17fSxrPWEuZGF0YVR5cGVzLnNs
aWNlKCk7aWYoa1sxXSlmb3IoZyBpbiBhLmNvbnZlcnRlcnMpaltnLnRvTG93ZXJDYXNlKCldPWEu
Y29udmVydGVyc1tnXTtmb3IoZj1rLnNoaWZ0KCk7ZjspaWYoYS5yZXNwb25zZUZpZWxkc1tmXSYm
KGNbYS5yZXNwb25zZUZpZWxkc1tmXV09YiksIWkmJmQmJmEuZGF0YUZpbHRlciYmKGI9YS5kYXRh
RmlsdGVyKGIsYS5kYXRhVHlwZSkpLGk9ZixmPWsuc2hpZnQoKSlpZigiKiI9PT1mKWY9aTtlbHNl
IGlmKCIqIiE9PWkmJmkhPT1mKXtpZihnPWpbaSsiICIrZl18fGpbIiogIitmXSwhZylmb3IoZSBp
biBqKWlmKGg9ZS5zcGxpdCgiICIpLGhbMV09PT1mJiYoZz1qW2krIiAiK2hbMF1dfHxqWyIqICIr
aFswXV0pKXtnPT09ITA/Zz1qW2VdOmpbZV0hPT0hMCYmKGY9aFswXSxrLnVuc2hpZnQoaFsxXSkp
O2JyZWFrfWlmKGchPT0hMClpZihnJiZhWyJ0aHJvd3MiXSliPWcoYik7ZWxzZSB0cnl7Yj1nKGIp
fWNhdGNoKGwpe3JldHVybntzdGF0ZToicGFyc2VyZXJyb3IiLGVycm9yOmc/bDoiTm8gY29udmVy
c2lvbiBmcm9tICIraSsiIHRvICIrZn19fXJldHVybntzdGF0ZToic3VjY2VzcyIsZGF0YTpifX1m
dW5jdGlvbiBTKGEsYixjLGQpe3ZhciBlO2lmKGVhLmlzQXJyYXkoYikpZWEuZWFjaChiLGZ1bmN0
aW9uKGIsZSl7Y3x8VmIudGVzdChhKT9kKGEsZSk6UyhhKyJbIisoIm9iamVjdCI9PXR5cGVvZiBl
P2I6IiIpKyJdIixlLGMsZCl9KTtlbHNlIGlmKGN8fCJvYmplY3QiIT09ZWEudHlwZShiKSlkKGEs
Yik7ZWxzZSBmb3IoZSBpbiBiKVMoYSsiWyIrZSsiXSIsYltlXSxjLGQpfWZ1bmN0aW9uIFQoKXt0
cnl7cmV0dXJuIG5ldyBhLlhNTEh0dHBSZXF1ZXN0fWNhdGNoKGIpe319ZnVuY3Rpb24gVSgpe3Ry
eXtyZXR1cm4gbmV3IGEuQWN0aXZlWE9iamVjdCgiTWljcm9zb2Z0LlhNTEhUVFAiKX1jYXRjaChi
KXt9fWZ1bmN0aW9uIFYoYSl7cmV0dXJuIGVhLmlzV2luZG93KGEpP2E6OT09PWEubm9kZVR5cGU/
YS5kZWZhdWx0Vmlld3x8YS5wYXJlbnRXaW5kb3c6ITF9dmFyIFc9W10sWD1XLnNsaWNlLFk9Vy5j
b25jYXQsWj1XLnB1c2gsJD1XLmluZGV4T2YsXz17fSxhYT1fLnRvU3RyaW5nLGJhPV8uaGFzT3du
UHJvcGVydHksY2E9e30sZGE9IjEuMTEuMiIsZWE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbmV3IGVh
LmZuLmluaXQoYSxiKX0sZmE9L15bXHNcdUZFRkZceEEwXSt8W1xzXHVGRUZGXHhBMF0rJC9nLGdh
PS9eLW1zLS8saGE9Ly0oW1xkYS16XSkvZ2ksaWE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYi50b1Vw
cGVyQ2FzZSgpfTtlYS5mbj1lYS5wcm90b3R5cGU9e2pxdWVyeTpkYSxjb25zdHJ1Y3RvcjplYSxz
ZWxlY3RvcjoiIixsZW5ndGg6MCx0b0FycmF5OmZ1bmN0aW9uKCl7cmV0dXJuIFguY2FsbCh0aGlz
KX0sZ2V0OmZ1bmN0aW9uKGEpe3JldHVybiBudWxsIT1hPzA+YT90aGlzW2ErdGhpcy5sZW5ndGhd
OnRoaXNbYV06WC5jYWxsKHRoaXMpfSxwdXNoU3RhY2s6ZnVuY3Rpb24oYSl7dmFyIGI9ZWEubWVy
Z2UodGhpcy5jb25zdHJ1Y3RvcigpLGEpO3JldHVybiBiLnByZXZPYmplY3Q9dGhpcyxiLmNvbnRl
eHQ9dGhpcy5jb250ZXh0LGJ9LGVhY2g6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZWEuZWFjaCh0aGlz
LGEsYil9LG1hcDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soZWEubWFwKHRoaXMs
ZnVuY3Rpb24oYixjKXtyZXR1cm4gYS5jYWxsKGIsYyxiKX0pKX0sc2xpY2U6ZnVuY3Rpb24oKXty
ZXR1cm4gdGhpcy5wdXNoU3RhY2soWC5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSxmaXJzdDpmdW5j
dGlvbigpe3JldHVybiB0aGlzLmVxKDApfSxsYXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEo
LTEpfSxlcTpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmxlbmd0aCxjPSthKygwPmE/YjowKTtyZXR1
cm4gdGhpcy5wdXNoU3RhY2soYz49MCYmYj5jP1t0aGlzW2NdXTpbXSl9LGVuZDpmdW5jdGlvbigp
e3JldHVybiB0aGlzLnByZXZPYmplY3R8fHRoaXMuY29uc3RydWN0b3IobnVsbCl9LHB1c2g6Wixz
b3J0Olcuc29ydCxzcGxpY2U6Vy5zcGxpY2V9LGVhLmV4dGVuZD1lYS5mbi5leHRlbmQ9ZnVuY3Rp
b24oKXt2YXIgYSxiLGMsZCxlLGYsZz1hcmd1bWVudHNbMF18fHt9LGg9MSxpPWFyZ3VtZW50cy5s
ZW5ndGgsaj0hMTtmb3IoImJvb2xlYW4iPT10eXBlb2YgZyYmKGo9ZyxnPWFyZ3VtZW50c1toXXx8
e30saCsrKSwib2JqZWN0Ij09dHlwZW9mIGd8fGVhLmlzRnVuY3Rpb24oZyl8fChnPXt9KSxoPT09
aSYmKGc9dGhpcyxoLS0pO2k+aDtoKyspaWYobnVsbCE9KGU9YXJndW1lbnRzW2hdKSlmb3IoZCBp
biBlKWE9Z1tkXSxjPWVbZF0sZyE9PWMmJihqJiZjJiYoZWEuaXNQbGFpbk9iamVjdChjKXx8KGI9
ZWEuaXNBcnJheShjKSkpPyhiPyhiPSExLGY9YSYmZWEuaXNBcnJheShhKT9hOltdKTpmPWEmJmVh
LmlzUGxhaW5PYmplY3QoYSk/YTp7fSxnW2RdPWVhLmV4dGVuZChqLGYsYykpOnZvaWQgMCE9PWMm
JihnW2RdPWMpKTtyZXR1cm4gZ30sZWEuZXh0ZW5kKHtleHBhbmRvOiJqUXVlcnkiKyhkYStNYXRo
LnJhbmRvbSgpKS5yZXBsYWNlKC9cRC9nLCIiKSxpc1JlYWR5OiEwLGVycm9yOmZ1bmN0aW9uKGEp
e3Rocm93IG5ldyBFcnJvcihhKX0sbm9vcDpmdW5jdGlvbigpe30saXNGdW5jdGlvbjpmdW5jdGlv
bihhKXtyZXR1cm4iZnVuY3Rpb24iPT09ZWEudHlwZShhKX0saXNBcnJheTpBcnJheS5pc0FycmF5
fHxmdW5jdGlvbihhKXtyZXR1cm4iYXJyYXkiPT09ZWEudHlwZShhKX0saXNXaW5kb3c6ZnVuY3Rp
b24oYSl7cmV0dXJuIG51bGwhPWEmJmE9PWEud2luZG93fSxpc051bWVyaWM6ZnVuY3Rpb24oYSl7
cmV0dXJuIWVhLmlzQXJyYXkoYSkmJmEtcGFyc2VGbG9hdChhKSsxPj0wfSxpc0VtcHR5T2JqZWN0
OmZ1bmN0aW9uKGEpe3ZhciBiO2ZvcihiIGluIGEpcmV0dXJuITE7cmV0dXJuITB9LGlzUGxhaW5P
YmplY3Q6ZnVuY3Rpb24oYSl7dmFyIGI7aWYoIWF8fCJvYmplY3QiIT09ZWEudHlwZShhKXx8YS5u
b2RlVHlwZXx8ZWEuaXNXaW5kb3coYSkpcmV0dXJuITE7dHJ5e2lmKGEuY29uc3RydWN0b3ImJiFi
YS5jYWxsKGEsImNvbnN0cnVjdG9yIikmJiFiYS5jYWxsKGEuY29uc3RydWN0b3IucHJvdG90eXBl
LCJpc1Byb3RvdHlwZU9mIikpcmV0dXJuITF9Y2F0Y2goYyl7cmV0dXJuITF9aWYoY2Eub3duTGFz
dClmb3IoYiBpbiBhKXJldHVybiBiYS5jYWxsKGEsYik7Zm9yKGIgaW4gYSk7cmV0dXJuIHZvaWQg
MD09PWJ8fGJhLmNhbGwoYSxiKX0sdHlwZTpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09YT9hKyIi
OiJvYmplY3QiPT10eXBlb2YgYXx8ImZ1bmN0aW9uIj09dHlwZW9mIGE/X1thYS5jYWxsKGEpXXx8
Im9iamVjdCI6dHlwZW9mIGF9LGdsb2JhbEV2YWw6ZnVuY3Rpb24oYil7YiYmZWEudHJpbShiKSYm
KGEuZXhlY1NjcmlwdHx8ZnVuY3Rpb24oYil7YS5ldmFsLmNhbGwoYSxiKX0pKGIpfSxjYW1lbENh
c2U6ZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVwbGFjZShnYSwibXMtIikucmVwbGFjZShoYSxpYSl9
LG5vZGVOYW1lOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGEubm9kZU5hbWUmJmEubm9kZU5hbWUudG9M
b3dlckNhc2UoKT09PWIudG9Mb3dlckNhc2UoKX0sZWFjaDpmdW5jdGlvbihhLGIsZCl7dmFyIGUs
Zj0wLGc9YS5sZW5ndGgsaD1jKGEpO2lmKGQpe2lmKGgpZm9yKDtnPmYmJihlPWIuYXBwbHkoYVtm
XSxkKSxlIT09ITEpO2YrKyk7ZWxzZSBmb3IoZiBpbiBhKWlmKGU9Yi5hcHBseShhW2ZdLGQpLGU9
PT0hMSlicmVha31lbHNlIGlmKGgpZm9yKDtnPmYmJihlPWIuY2FsbChhW2ZdLGYsYVtmXSksZSE9
PSExKTtmKyspO2Vsc2UgZm9yKGYgaW4gYSlpZihlPWIuY2FsbChhW2ZdLGYsYVtmXSksZT09PSEx
KWJyZWFrO3JldHVybiBhfSx0cmltOmZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT1hPyIiOihhKyIi
KS5yZXBsYWNlKGZhLCIiKX0sbWFrZUFycmF5OmZ1bmN0aW9uKGEsYil7dmFyIGQ9Ynx8W107cmV0
dXJuIG51bGwhPWEmJihjKE9iamVjdChhKSk/ZWEubWVyZ2UoZCwic3RyaW5nIj09dHlwZW9mIGE/
W2FdOmEpOlouY2FsbChkLGEpKSxkfSxpbkFycmF5OmZ1bmN0aW9uKGEsYixjKXt2YXIgZDtpZihi
KXtpZigkKXJldHVybiAkLmNhbGwoYixhLGMpO2ZvcihkPWIubGVuZ3RoLGM9Yz8wPmM/TWF0aC5t
YXgoMCxkK2MpOmM6MDtkPmM7YysrKWlmKGMgaW4gYiYmYltjXT09PWEpcmV0dXJuIGN9cmV0dXJu
LTF9LG1lcmdlOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPStiLmxlbmd0aCxkPTAsZT1hLmxlbmd0
aDtjPmQ7KWFbZSsrXT1iW2QrK107aWYoYyE9PWMpZm9yKDt2b2lkIDAhPT1iW2RdOylhW2UrK109
YltkKytdO3JldHVybiBhLmxlbmd0aD1lLGF9LGdyZXA6ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIg
ZCxlPVtdLGY9MCxnPWEubGVuZ3RoLGg9IWM7Zz5mO2YrKylkPSFiKGFbZl0sZiksZCE9PWgmJmUu
cHVzaChhW2ZdKTtyZXR1cm4gZX0sbWFwOmZ1bmN0aW9uKGEsYixkKXt2YXIgZSxmPTAsZz1hLmxl
bmd0aCxoPWMoYSksaT1bXTtpZihoKWZvcig7Zz5mO2YrKyllPWIoYVtmXSxmLGQpLG51bGwhPWUm
JmkucHVzaChlKTtlbHNlIGZvcihmIGluIGEpZT1iKGFbZl0sZixkKSxudWxsIT1lJiZpLnB1c2go
ZSk7cmV0dXJuIFkuYXBwbHkoW10saSl9LGd1aWQ6MSxwcm94eTpmdW5jdGlvbihhLGIpe3ZhciBj
LGQsZTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGImJihlPWFbYl0sYj1hLGE9ZSksZWEuaXNGdW5j
dGlvbihhKT8oYz1YLmNhbGwoYXJndW1lbnRzLDIpLGQ9ZnVuY3Rpb24oKXtyZXR1cm4gYS5hcHBs
eShifHx0aGlzLGMuY29uY2F0KFguY2FsbChhcmd1bWVudHMpKSl9LGQuZ3VpZD1hLmd1aWQ9YS5n
dWlkfHxlYS5ndWlkKyssZCk6dm9pZCAwfSxub3c6ZnVuY3Rpb24oKXtyZXR1cm4rbmV3IERhdGV9
LHN1cHBvcnQ6Y2F9KSxlYS5lYWNoKCJCb29sZWFuIE51bWJlciBTdHJpbmcgRnVuY3Rpb24gQXJy
YXkgRGF0ZSBSZWdFeHAgT2JqZWN0IEVycm9yIi5zcGxpdCgiICIpLGZ1bmN0aW9uKGEsYil7X1si
W29iamVjdCAiK2IrIl0iXT1iLnRvTG93ZXJDYXNlKCl9KTt2YXIgamE9ZnVuY3Rpb24oYSl7ZnVu
Y3Rpb24gYihhLGIsYyxkKXt2YXIgZSxmLGcsaCxpLGosbCxuLG8scDtpZigoYj9iLm93bmVyRG9j
dW1lbnR8fGI6TykhPT1HJiZGKGIpLGI9Ynx8RyxjPWN8fFtdLGg9Yi5ub2RlVHlwZSwic3RyaW5n
IiE9dHlwZW9mIGF8fCFhfHwxIT09aCYmOSE9PWgmJjExIT09aClyZXR1cm4gYztpZighZCYmSSl7
aWYoMTEhPT1oJiYoZT1zYS5leGVjKGEpKSlpZihnPWVbMV0pe2lmKDk9PT1oKXtpZihmPWIuZ2V0
RWxlbWVudEJ5SWQoZyksIWZ8fCFmLnBhcmVudE5vZGUpcmV0dXJuIGM7aWYoZi5pZD09PWcpcmV0
dXJuIGMucHVzaChmKSxjfWVsc2UgaWYoYi5vd25lckRvY3VtZW50JiYoZj1iLm93bmVyRG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoZykpJiZNKGIsZikmJmYuaWQ9PT1nKXJldHVybiBjLnB1c2goZiks
Y31lbHNle2lmKGVbMl0pcmV0dXJuICQuYXBwbHkoYyxiLmdldEVsZW1lbnRzQnlUYWdOYW1lKGEp
KSxjO2lmKChnPWVbM10pJiZ2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUpcmV0dXJuICQuYXBwbHko
YyxiLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoZykpLGN9aWYodi5xc2EmJighSnx8IUoudGVzdChh
KSkpe2lmKG49bD1OLG89YixwPTEhPT1oJiZhLDE9PT1oJiYib2JqZWN0IiE9PWIubm9kZU5hbWUu
dG9Mb3dlckNhc2UoKSl7Zm9yKGo9eihhKSwobD1iLmdldEF0dHJpYnV0ZSgiaWQiKSk/bj1sLnJl
cGxhY2UodWEsIlxcJCYiKTpiLnNldEF0dHJpYnV0ZSgiaWQiLG4pLG49IltpZD0nIituKyInXSAi
LGk9ai5sZW5ndGg7aS0tOylqW2ldPW4rbShqW2ldKTtvPXRhLnRlc3QoYSkmJmsoYi5wYXJlbnRO
b2RlKXx8YixwPWouam9pbigiLCIpfWlmKHApdHJ5e3JldHVybiAkLmFwcGx5KGMsby5xdWVyeVNl
bGVjdG9yQWxsKHApKSxjfWNhdGNoKHEpe31maW5hbGx5e2x8fGIucmVtb3ZlQXR0cmlidXRlKCJp
ZCIpfX19cmV0dXJuIEIoYS5yZXBsYWNlKGlhLCIkMSIpLGIsYyxkKX1mdW5jdGlvbiBjKCl7ZnVu
Y3Rpb24gYShjLGQpe3JldHVybiBiLnB1c2goYysiICIpPncuY2FjaGVMZW5ndGgmJmRlbGV0ZSBh
W2Iuc2hpZnQoKV0sYVtjKyIgIl09ZH12YXIgYj1bXTtyZXR1cm4gYX1mdW5jdGlvbiBkKGEpe3Jl
dHVybiBhW05dPSEwLGF9ZnVuY3Rpb24gZShhKXt2YXIgYj1HLmNyZWF0ZUVsZW1lbnQoImRpdiIp
O3RyeXtyZXR1cm4hIWEoYil9Y2F0Y2goYyl7cmV0dXJuITF9ZmluYWxseXtiLnBhcmVudE5vZGUm
JmIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChiKSxiPW51bGx9fWZ1bmN0aW9uIGYoYSxiKXtmb3Io
dmFyIGM9YS5zcGxpdCgifCIpLGQ9YS5sZW5ndGg7ZC0tOyl3LmF0dHJIYW5kbGVbY1tkXV09Yn1m
dW5jdGlvbiBnKGEsYil7dmFyIGM9YiYmYSxkPWMmJjE9PT1hLm5vZGVUeXBlJiYxPT09Yi5ub2Rl
VHlwZSYmKH5iLnNvdXJjZUluZGV4fHxWKS0ofmEuc291cmNlSW5kZXh8fFYpO2lmKGQpcmV0dXJu
IGQ7aWYoYylmb3IoO2M9Yy5uZXh0U2libGluZzspaWYoYz09PWIpcmV0dXJuLTE7cmV0dXJuIGE/
MTotMX1mdW5jdGlvbiBoKGEpe3JldHVybiBmdW5jdGlvbihiKXt2YXIgYz1iLm5vZGVOYW1lLnRv
TG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PWMmJmIudHlwZT09PWF9fWZ1bmN0aW9uIGkoYSl7
cmV0dXJuIGZ1bmN0aW9uKGIpe3ZhciBjPWIubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4o
ImlucHV0Ij09PWN8fCJidXR0b24iPT09YykmJmIudHlwZT09PWF9fWZ1bmN0aW9uIGooYSl7cmV0
dXJuIGQoZnVuY3Rpb24oYil7cmV0dXJuIGI9K2IsZChmdW5jdGlvbihjLGQpe2Zvcih2YXIgZSxm
PWEoW10sYy5sZW5ndGgsYiksZz1mLmxlbmd0aDtnLS07KWNbZT1mW2ddXSYmKGNbZV09IShkW2Vd
PWNbZV0pKX0pfSl9ZnVuY3Rpb24gayhhKXtyZXR1cm4gYSYmInVuZGVmaW5lZCIhPXR5cGVvZiBh
LmdldEVsZW1lbnRzQnlUYWdOYW1lJiZhfWZ1bmN0aW9uIGwoKXt9ZnVuY3Rpb24gbShhKXtmb3Io
dmFyIGI9MCxjPWEubGVuZ3RoLGQ9IiI7Yz5iO2IrKylkKz1hW2JdLnZhbHVlO3JldHVybiBkfWZ1
bmN0aW9uIG4oYSxiLGMpe3ZhciBkPWIuZGlyLGU9YyYmInBhcmVudE5vZGUiPT09ZCxmPVErKzty
ZXR1cm4gYi5maXJzdD9mdW5jdGlvbihiLGMsZil7Zm9yKDtiPWJbZF07KWlmKDE9PT1iLm5vZGVU
eXBlfHxlKXJldHVybiBhKGIsYyxmKX06ZnVuY3Rpb24oYixjLGcpe3ZhciBoLGksaj1bUCxmXTtp
ZihnKXtmb3IoO2I9YltkXTspaWYoKDE9PT1iLm5vZGVUeXBlfHxlKSYmYShiLGMsZykpcmV0dXJu
ITB9ZWxzZSBmb3IoO2I9YltkXTspaWYoMT09PWIubm9kZVR5cGV8fGUpe2lmKGk9YltOXXx8KGJb
Tl09e30pLChoPWlbZF0pJiZoWzBdPT09UCYmaFsxXT09PWYpcmV0dXJuIGpbMl09aFsyXTtpZihp
W2RdPWosalsyXT1hKGIsYyxnKSlyZXR1cm4hMH19fWZ1bmN0aW9uIG8oYSl7cmV0dXJuIGEubGVu
Z3RoPjE/ZnVuY3Rpb24oYixjLGQpe2Zvcih2YXIgZT1hLmxlbmd0aDtlLS07KWlmKCFhW2VdKGIs
YyxkKSlyZXR1cm4hMTtyZXR1cm4hMH06YVswXX1mdW5jdGlvbiBwKGEsYyxkKXtmb3IodmFyIGU9
MCxmPWMubGVuZ3RoO2Y+ZTtlKyspYihhLGNbZV0sZCk7cmV0dXJuIGR9ZnVuY3Rpb24gcShhLGIs
YyxkLGUpe2Zvcih2YXIgZixnPVtdLGg9MCxpPWEubGVuZ3RoLGo9bnVsbCE9YjtpPmg7aCsrKShm
PWFbaF0pJiYoYyYmIWMoZixkLGUpfHwoZy5wdXNoKGYpLGomJmIucHVzaChoKSkpO3JldHVybiBn
fWZ1bmN0aW9uIHIoYSxiLGMsZSxmLGcpe3JldHVybiBlJiYhZVtOXSYmKGU9cihlKSksZiYmIWZb
Tl0mJihmPXIoZixnKSksZChmdW5jdGlvbihkLGcsaCxpKXt2YXIgaixrLGwsbT1bXSxuPVtdLG89
Zy5sZW5ndGgscj1kfHxwKGJ8fCIqIixoLm5vZGVUeXBlP1toXTpoLFtdKSxzPSFhfHwhZCYmYj9y
OnEocixtLGEsaCxpKSx0PWM/Znx8KGQ/YTpvfHxlKT9bXTpnOnM7aWYoYyYmYyhzLHQsaCxpKSxl
KWZvcihqPXEodCxuKSxlKGosW10saCxpKSxrPWoubGVuZ3RoO2stLTspKGw9altrXSkmJih0W25b
a11dPSEoc1tuW2tdXT1sKSk7aWYoZCl7aWYoZnx8YSl7aWYoZil7Zm9yKGo9W10saz10Lmxlbmd0
aDtrLS07KShsPXRba10pJiZqLnB1c2goc1trXT1sKTtmKG51bGwsdD1bXSxqLGkpfWZvcihrPXQu
bGVuZ3RoO2stLTspKGw9dFtrXSkmJihqPWY/YWEoZCxsKTptW2tdKT4tMSYmKGRbal09IShnW2pd
PWwpKX19ZWxzZSB0PXEodD09PWc/dC5zcGxpY2Uobyx0Lmxlbmd0aCk6dCksZj9mKG51bGwsZyx0
LGkpOiQuYXBwbHkoZyx0KX0pfWZ1bmN0aW9uIHMoYSl7Zm9yKHZhciBiLGMsZCxlPWEubGVuZ3Ro
LGY9dy5yZWxhdGl2ZVthWzBdLnR5cGVdLGc9Znx8dy5yZWxhdGl2ZVsiICJdLGg9Zj8xOjAsaT1u
KGZ1bmN0aW9uKGEpe3JldHVybiBhPT09Yn0sZywhMCksaj1uKGZ1bmN0aW9uKGEpe3JldHVybiBh
YShiLGEpPi0xfSxnLCEwKSxrPVtmdW5jdGlvbihhLGMsZCl7dmFyIGU9IWYmJihkfHxjIT09Qyl8
fCgoYj1jKS5ub2RlVHlwZT9pKGEsYyxkKTpqKGEsYyxkKSk7cmV0dXJuIGI9bnVsbCxlfV07ZT5o
O2grKylpZihjPXcucmVsYXRpdmVbYVtoXS50eXBlXSlrPVtuKG8oayksYyldO2Vsc2V7aWYoYz13
LmZpbHRlclthW2hdLnR5cGVdLmFwcGx5KG51bGwsYVtoXS5tYXRjaGVzKSxjW05dKXtmb3IoZD0r
K2g7ZT5kJiYhdy5yZWxhdGl2ZVthW2RdLnR5cGVdO2QrKyk7cmV0dXJuIHIoaD4xJiZvKGspLGg+
MSYmbShhLnNsaWNlKDAsaC0xKS5jb25jYXQoe3ZhbHVlOiIgIj09PWFbaC0yXS50eXBlPyIqIjoi
In0pKS5yZXBsYWNlKGlhLCIkMSIpLGMsZD5oJiZzKGEuc2xpY2UoaCxkKSksZT5kJiZzKGE9YS5z
bGljZShkKSksZT5kJiZtKGEpKX1rLnB1c2goYyl9cmV0dXJuIG8oayl9ZnVuY3Rpb24gdChhLGMp
e3ZhciBlPWMubGVuZ3RoPjAsZj1hLmxlbmd0aD4wLGc9ZnVuY3Rpb24oZCxnLGgsaSxqKXt2YXIg
ayxsLG0sbj0wLG89IjAiLHA9ZCYmW10scj1bXSxzPUMsdD1kfHxmJiZ3LmZpbmQuVEFHKCIqIixq
KSx1PVArPW51bGw9PXM/MTpNYXRoLnJhbmRvbSgpfHwuMSx2PXQubGVuZ3RoO2ZvcihqJiYoQz1n
IT09RyYmZyk7byE9PXYmJm51bGwhPShrPXRbb10pO28rKyl7aWYoZiYmayl7Zm9yKGw9MDttPWFb
bCsrXTspaWYobShrLGcsaCkpe2kucHVzaChrKTticmVha31qJiYoUD11KX1lJiYoKGs9IW0mJmsp
JiZuLS0sZCYmcC5wdXNoKGspKX1pZihuKz1vLGUmJm8hPT1uKXtmb3IobD0wO209Y1tsKytdOylt
KHAscixnLGgpO2lmKGQpe2lmKG4+MClmb3IoO28tLTspcFtvXXx8cltvXXx8KHJbb109WS5jYWxs
KGkpKTtyPXEocil9JC5hcHBseShpLHIpLGomJiFkJiZyLmxlbmd0aD4wJiZuK2MubGVuZ3RoPjEm
JmIudW5pcXVlU29ydChpKX1yZXR1cm4gaiYmKFA9dSxDPXMpLHB9O3JldHVybiBlP2QoZyk6Z312
YXIgdSx2LHcseCx5LHosQSxCLEMsRCxFLEYsRyxILEksSixLLEwsTSxOPSJzaXp6bGUiKzEqbmV3
IERhdGUsTz1hLmRvY3VtZW50LFA9MCxRPTAsUj1jKCksUz1jKCksVD1jKCksVT1mdW5jdGlvbihh
LGIpe3JldHVybiBhPT09YiYmKEU9ITApLDB9LFY9MTw8MzEsVz17fS5oYXNPd25Qcm9wZXJ0eSxY
PVtdLFk9WC5wb3AsWj1YLnB1c2gsJD1YLnB1c2gsXz1YLnNsaWNlLGFhPWZ1bmN0aW9uKGEsYil7
Zm9yKHZhciBjPTAsZD1hLmxlbmd0aDtkPmM7YysrKWlmKGFbY109PT1iKXJldHVybiBjO3JldHVy
bi0xfSxiYT0iY2hlY2tlZHxzZWxlY3RlZHxhc3luY3xhdXRvZm9jdXN8YXV0b3BsYXl8Y29udHJv
bHN8ZGVmZXJ8ZGlzYWJsZWR8aGlkZGVufGlzbWFwfGxvb3B8bXVsdGlwbGV8b3BlbnxyZWFkb25s
eXxyZXF1aXJlZHxzY29wZWQiLGNhPSJbXFx4MjBcXHRcXHJcXG5cXGZdIixkYT0iKD86XFxcXC58
W1xcdy1dfFteXFx4MDAtXFx4YTBdKSsiLGVhPWRhLnJlcGxhY2UoInciLCJ3IyIpLGZhPSJcXFsi
K2NhKyIqKCIrZGErIikoPzoiK2NhKyIqKFsqXiR8IX5dPz0pIitjYSsiKig/OicoKD86XFxcXC58
W15cXFxcJ10pKiknfFwiKCg/OlxcXFwufFteXFxcXFwiXSkqKVwifCgiK2VhKyIpKXwpIitjYSsi
KlxcXSIsZ2E9IjooIitkYSsiKSg/OlxcKCgoJygoPzpcXFxcLnxbXlxcXFwnXSkqKSd8XCIoKD86
XFxcXC58W15cXFxcXCJdKSopXCIpfCgoPzpcXFxcLnxbXlxcXFwoKVtcXF1dfCIrZmErIikqKXwu
KilcXCl8KSIsaGE9bmV3IFJlZ0V4cChjYSsiKyIsImciKSxpYT1uZXcgUmVnRXhwKCJeIitjYSsi
K3woKD86XnxbXlxcXFxdKSg/OlxcXFwuKSopIitjYSsiKyQiLCJnIiksamE9bmV3IFJlZ0V4cCgi
XiIrY2ErIiosIitjYSsiKiIpLGthPW5ldyBSZWdFeHAoIl4iK2NhKyIqKFs+K35dfCIrY2ErIiki
K2NhKyIqIiksbGE9bmV3IFJlZ0V4cCgiPSIrY2ErIiooW15cXF0nXCJdKj8pIitjYSsiKlxcXSIs
ImciKSxtYT1uZXcgUmVnRXhwKGdhKSxuYT1uZXcgUmVnRXhwKCJeIitlYSsiJCIpLG9hPXtJRDpu
ZXcgUmVnRXhwKCJeIygiK2RhKyIpIiksQ0xBU1M6bmV3IFJlZ0V4cCgiXlxcLigiK2RhKyIpIiks
VEFHOm5ldyBSZWdFeHAoIl4oIitkYS5yZXBsYWNlKCJ3IiwidyoiKSsiKSIpLEFUVFI6bmV3IFJl
Z0V4cCgiXiIrZmEpLFBTRVVETzpuZXcgUmVnRXhwKCJeIitnYSksQ0hJTEQ6bmV3IFJlZ0V4cCgi
Xjoob25seXxmaXJzdHxsYXN0fG50aHxudGgtbGFzdCktKGNoaWxkfG9mLXR5cGUpKD86XFwoIitj
YSsiKihldmVufG9kZHwoKFsrLV18KShcXGQqKW58KSIrY2ErIiooPzooWystXXwpIitjYSsiKihc
XGQrKXwpKSIrY2ErIipcXCl8KSIsImkiKSxib29sOm5ldyBSZWdFeHAoIl4oPzoiK2JhKyIpJCIs
ImkiKSxuZWVkc0NvbnRleHQ6bmV3IFJlZ0V4cCgiXiIrY2ErIipbPit+XXw6KGV2ZW58b2RkfGVx
fGd0fGx0fG50aHxmaXJzdHxsYXN0KSg/OlxcKCIrY2ErIiooKD86LVxcZCk/XFxkKikiK2NhKyIq
XFwpfCkoPz1bXi1dfCQpIiwiaSIpfSxwYT0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0
b24pJC9pLHFhPS9eaFxkJC9pLHJhPS9eW157XStce1xzKlxbbmF0aXZlIFx3LyxzYT0vXig/OiMo
W1x3LV0rKXwoXHcrKXxcLihbXHctXSspKSQvLHRhPS9bK35dLyx1YT0vJ3xcXC9nLHZhPW5ldyBS
ZWdFeHAoIlxcXFwoW1xcZGEtZl17MSw2fSIrY2ErIj98KCIrY2ErIil8LikiLCJpZyIpLHdhPWZ1
bmN0aW9uKGEsYixjKXt2YXIgZD0iMHgiK2ItNjU1MzY7cmV0dXJuIGQhPT1kfHxjP2I6MD5kP1N0
cmluZy5mcm9tQ2hhckNvZGUoZCs2NTUzNik6U3RyaW5nLmZyb21DaGFyQ29kZShkPj4xMHw1NTI5
NiwxMDIzJmR8NTYzMjApfSx4YT1mdW5jdGlvbigpe0YoKX07dHJ5eyQuYXBwbHkoWD1fLmNhbGwo
Ty5jaGlsZE5vZGVzKSxPLmNoaWxkTm9kZXMpLFhbTy5jaGlsZE5vZGVzLmxlbmd0aF0ubm9kZVR5
cGV9Y2F0Y2goeWEpeyQ9e2FwcGx5OlgubGVuZ3RoP2Z1bmN0aW9uKGEsYil7Wi5hcHBseShhLF8u
Y2FsbChiKSl9OmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPWEubGVuZ3RoLGQ9MDthW2MrK109Yltk
KytdOyk7YS5sZW5ndGg9Yy0xfX19dj1iLnN1cHBvcnQ9e30seT1iLmlzWE1MPWZ1bmN0aW9uKGEp
e3ZhciBiPWEmJihhLm93bmVyRG9jdW1lbnR8fGEpLmRvY3VtZW50RWxlbWVudDtyZXR1cm4gYj8i
SFRNTCIhPT1iLm5vZGVOYW1lOiExfSxGPWIuc2V0RG9jdW1lbnQ9ZnVuY3Rpb24oYSl7dmFyIGIs
YyxkPWE/YS5vd25lckRvY3VtZW50fHxhOk87cmV0dXJuIGQhPT1HJiY5PT09ZC5ub2RlVHlwZSYm
ZC5kb2N1bWVudEVsZW1lbnQ/KEc9ZCxIPWQuZG9jdW1lbnRFbGVtZW50LGM9ZC5kZWZhdWx0Vmll
dyxjJiZjIT09Yy50b3AmJihjLmFkZEV2ZW50TGlzdGVuZXI/Yy5hZGRFdmVudExpc3RlbmVyKCJ1
bmxvYWQiLHhhLCExKTpjLmF0dGFjaEV2ZW50JiZjLmF0dGFjaEV2ZW50KCJvbnVubG9hZCIseGEp
KSxJPSF5KGQpLHYuYXR0cmlidXRlcz1lKGZ1bmN0aW9uKGEpe3JldHVybiBhLmNsYXNzTmFtZT0i
aSIsIWEuZ2V0QXR0cmlidXRlKCJjbGFzc05hbWUiKX0pLHYuZ2V0RWxlbWVudHNCeVRhZ05hbWU9
ZShmdW5jdGlvbihhKXtyZXR1cm4gYS5hcHBlbmRDaGlsZChkLmNyZWF0ZUNvbW1lbnQoIiIpKSwh
YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLmxlbmd0aH0pLHYuZ2V0RWxlbWVudHNCeUNsYXNz
TmFtZT1yYS50ZXN0KGQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSksdi5nZXRCeUlkPWUoZnVuY3Rp
b24oYSl7cmV0dXJuIEguYXBwZW5kQ2hpbGQoYSkuaWQ9TiwhZC5nZXRFbGVtZW50c0J5TmFtZXx8
IWQuZ2V0RWxlbWVudHNCeU5hbWUoTikubGVuZ3RofSksdi5nZXRCeUlkPyh3LmZpbmQuSUQ9ZnVu
Y3Rpb24oYSxiKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGIuZ2V0RWxlbWVudEJ5SWQmJkkpe3Zh
ciBjPWIuZ2V0RWxlbWVudEJ5SWQoYSk7cmV0dXJuIGMmJmMucGFyZW50Tm9kZT9bY106W119fSx3
LmZpbHRlci5JRD1mdW5jdGlvbihhKXt2YXIgYj1hLnJlcGxhY2UodmEsd2EpO3JldHVybiBmdW5j
dGlvbihhKXtyZXR1cm4gYS5nZXRBdHRyaWJ1dGUoImlkIik9PT1ifX0pOihkZWxldGUgdy5maW5k
LklELHcuZmlsdGVyLklEPWZ1bmN0aW9uKGEpe3ZhciBiPWEucmVwbGFjZSh2YSx3YSk7cmV0dXJu
IGZ1bmN0aW9uKGEpe3ZhciBjPSJ1bmRlZmluZWQiIT10eXBlb2YgYS5nZXRBdHRyaWJ1dGVOb2Rl
JiZhLmdldEF0dHJpYnV0ZU5vZGUoImlkIik7cmV0dXJuIGMmJmMudmFsdWU9PT1ifX0pLHcuZmlu
ZC5UQUc9di5nZXRFbGVtZW50c0J5VGFnTmFtZT9mdW5jdGlvbihhLGIpe3JldHVybiJ1bmRlZmlu
ZWQiIT10eXBlb2YgYi5nZXRFbGVtZW50c0J5VGFnTmFtZT9iLmdldEVsZW1lbnRzQnlUYWdOYW1l
KGEpOnYucXNhP2IucXVlcnlTZWxlY3RvckFsbChhKTp2b2lkIDB9OmZ1bmN0aW9uKGEsYil7dmFy
IGMsZD1bXSxlPTAsZj1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKGEpO2lmKCIqIj09PWEpe2Zvcig7
Yz1mW2UrK107KTE9PT1jLm5vZGVUeXBlJiZkLnB1c2goYyk7cmV0dXJuIGR9cmV0dXJuIGZ9LHcu
ZmluZC5DTEFTUz12LmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJmZ1bmN0aW9uKGEsYil7cmV0dXJu
IEk/Yi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGEpOnZvaWQgMH0sSz1bXSxKPVtdLCh2LnFzYT1y
YS50ZXN0KGQucXVlcnlTZWxlY3RvckFsbCkpJiYoZShmdW5jdGlvbihhKXtILmFwcGVuZENoaWxk
KGEpLmlubmVySFRNTD0iPGEgaWQ9JyIrTisiJz48L2E+PHNlbGVjdCBpZD0nIitOKyItXGZdJyBt
c2FsbG93Y2FwdHVyZT0nJz48b3B0aW9uIHNlbGVjdGVkPScnPjwvb3B0aW9uPjwvc2VsZWN0PiIs
YS5xdWVyeVNlbGVjdG9yQWxsKCJbbXNhbGxvd2NhcHR1cmVePScnXSIpLmxlbmd0aCYmSi5wdXNo
KCJbKl4kXT0iK2NhKyIqKD86Jyd8XCJcIikiKSxhLnF1ZXJ5U2VsZWN0b3JBbGwoIltzZWxlY3Rl
ZF0iKS5sZW5ndGh8fEoucHVzaCgiXFxbIitjYSsiKig/OnZhbHVlfCIrYmErIikiKSxhLnF1ZXJ5
U2VsZWN0b3JBbGwoIltpZH49IitOKyItXSIpLmxlbmd0aHx8Si5wdXNoKCJ+PSIpLGEucXVlcnlT
ZWxlY3RvckFsbCgiOmNoZWNrZWQiKS5sZW5ndGh8fEoucHVzaCgiOmNoZWNrZWQiKSxhLnF1ZXJ5
U2VsZWN0b3JBbGwoImEjIitOKyIrKiIpLmxlbmd0aHx8Si5wdXNoKCIuIy4rWyt+XSIpfSksZShm
dW5jdGlvbihhKXt2YXIgYj1kLmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7Yi5zZXRBdHRyaWJ1dGUo
InR5cGUiLCJoaWRkZW4iKSxhLmFwcGVuZENoaWxkKGIpLnNldEF0dHJpYnV0ZSgibmFtZSIsIkQi
KSxhLnF1ZXJ5U2VsZWN0b3JBbGwoIltuYW1lPWRdIikubGVuZ3RoJiZKLnB1c2goIm5hbWUiK2Nh
KyIqWypeJHwhfl0/PSIpLGEucXVlcnlTZWxlY3RvckFsbCgiOmVuYWJsZWQiKS5sZW5ndGh8fEou
cHVzaCgiOmVuYWJsZWQiLCI6ZGlzYWJsZWQiKSxhLnF1ZXJ5U2VsZWN0b3JBbGwoIiosOngiKSxK
LnB1c2goIiwuKjoiKX0pKSwodi5tYXRjaGVzU2VsZWN0b3I9cmEudGVzdChMPUgubWF0Y2hlc3x8
SC53ZWJraXRNYXRjaGVzU2VsZWN0b3J8fEgubW96TWF0Y2hlc1NlbGVjdG9yfHxILm9NYXRjaGVz
U2VsZWN0b3J8fEgubXNNYXRjaGVzU2VsZWN0b3IpKSYmZShmdW5jdGlvbihhKXt2LmRpc2Nvbm5l
Y3RlZE1hdGNoPUwuY2FsbChhLCJkaXYiKSxMLmNhbGwoYSwiW3MhPScnXTp4IiksSy5wdXNoKCIh
PSIsZ2EpfSksSj1KLmxlbmd0aCYmbmV3IFJlZ0V4cChKLmpvaW4oInwiKSksSz1LLmxlbmd0aCYm
bmV3IFJlZ0V4cChLLmpvaW4oInwiKSksYj1yYS50ZXN0KEguY29tcGFyZURvY3VtZW50UG9zaXRp
b24pLE09Ynx8cmEudGVzdChILmNvbnRhaW5zKT9mdW5jdGlvbihhLGIpe3ZhciBjPTk9PT1hLm5v
ZGVUeXBlP2EuZG9jdW1lbnRFbGVtZW50OmEsZD1iJiZiLnBhcmVudE5vZGU7cmV0dXJuIGE9PT1k
fHwhKCFkfHwxIT09ZC5ub2RlVHlwZXx8IShjLmNvbnRhaW5zP2MuY29udGFpbnMoZCk6YS5jb21w
YXJlRG9jdW1lbnRQb3NpdGlvbiYmMTYmYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihkKSkpfTpm
dW5jdGlvbihhLGIpe2lmKGIpZm9yKDtiPWIucGFyZW50Tm9kZTspaWYoYj09PWEpcmV0dXJuITA7
cmV0dXJuITF9LFU9Yj9mdW5jdGlvbihhLGIpe2lmKGE9PT1iKXJldHVybiBFPSEwLDA7dmFyIGM9
IWEuY29tcGFyZURvY3VtZW50UG9zaXRpb24tIWIuY29tcGFyZURvY3VtZW50UG9zaXRpb247cmV0
dXJuIGM/YzooYz0oYS5vd25lckRvY3VtZW50fHxhKT09PShiLm93bmVyRG9jdW1lbnR8fGIpP2Eu
Y29tcGFyZURvY3VtZW50UG9zaXRpb24oYik6MSwxJmN8fCF2LnNvcnREZXRhY2hlZCYmYi5jb21w
YXJlRG9jdW1lbnRQb3NpdGlvbihhKT09PWM/YT09PWR8fGEub3duZXJEb2N1bWVudD09PU8mJk0o
TyxhKT8tMTpiPT09ZHx8Yi5vd25lckRvY3VtZW50PT09TyYmTShPLGIpPzE6RD9hYShELGEpLWFh
KEQsYik6MDo0JmM/LTE6MSl9OmZ1bmN0aW9uKGEsYil7aWYoYT09PWIpcmV0dXJuIEU9ITAsMDt2
YXIgYyxlPTAsZj1hLnBhcmVudE5vZGUsaD1iLnBhcmVudE5vZGUsaT1bYV0saj1bYl07aWYoIWZ8
fCFoKXJldHVybiBhPT09ZD8tMTpiPT09ZD8xOmY/LTE6aD8xOkQ/YWEoRCxhKS1hYShELGIpOjA7
aWYoZj09PWgpcmV0dXJuIGcoYSxiKTtmb3IoYz1hO2M9Yy5wYXJlbnROb2RlOylpLnVuc2hpZnQo
Yyk7Zm9yKGM9YjtjPWMucGFyZW50Tm9kZTspai51bnNoaWZ0KGMpO2Zvcig7aVtlXT09PWpbZV07
KWUrKztyZXR1cm4gZT9nKGlbZV0saltlXSk6aVtlXT09PU8/LTE6altlXT09PU8/MTowfSxkKTpH
fSxiLm1hdGNoZXM9ZnVuY3Rpb24oYSxjKXtyZXR1cm4gYihhLG51bGwsbnVsbCxjKX0sYi5tYXRj
aGVzU2VsZWN0b3I9ZnVuY3Rpb24oYSxjKXtpZigoYS5vd25lckRvY3VtZW50fHxhKSE9PUcmJkYo
YSksYz1jLnJlcGxhY2UobGEsIj0nJDEnXSIpLHYubWF0Y2hlc1NlbGVjdG9yJiZJJiYoIUt8fCFL
LnRlc3QoYykpJiYoIUp8fCFKLnRlc3QoYykpKXRyeXt2YXIgZD1MLmNhbGwoYSxjKTtpZihkfHx2
LmRpc2Nvbm5lY3RlZE1hdGNofHxhLmRvY3VtZW50JiYxMSE9PWEuZG9jdW1lbnQubm9kZVR5cGUp
cmV0dXJuIGR9Y2F0Y2goZSl7fXJldHVybiBiKGMsRyxudWxsLFthXSkubGVuZ3RoPjB9LGIuY29u
dGFpbnM9ZnVuY3Rpb24oYSxiKXtyZXR1cm4oYS5vd25lckRvY3VtZW50fHxhKSE9PUcmJkYoYSks
TShhLGIpfSxiLmF0dHI9ZnVuY3Rpb24oYSxiKXsoYS5vd25lckRvY3VtZW50fHxhKSE9PUcmJkYo
YSk7dmFyIGM9dy5hdHRySGFuZGxlW2IudG9Mb3dlckNhc2UoKV0sZD1jJiZXLmNhbGwody5hdHRy
SGFuZGxlLGIudG9Mb3dlckNhc2UoKSk/YyhhLGIsIUkpOnZvaWQgMDtyZXR1cm4gdm9pZCAwIT09
ZD9kOnYuYXR0cmlidXRlc3x8IUk/YS5nZXRBdHRyaWJ1dGUoYik6KGQ9YS5nZXRBdHRyaWJ1dGVO
b2RlKGIpKSYmZC5zcGVjaWZpZWQ/ZC52YWx1ZTpudWxsfSxiLmVycm9yPWZ1bmN0aW9uKGEpe3Ro
cm93IG5ldyBFcnJvcigiU3ludGF4IGVycm9yLCB1bnJlY29nbml6ZWQgZXhwcmVzc2lvbjogIith
KX0sYi51bmlxdWVTb3J0PWZ1bmN0aW9uKGEpe3ZhciBiLGM9W10sZD0wLGU9MDtpZihFPSF2LmRl
dGVjdER1cGxpY2F0ZXMsRD0hdi5zb3J0U3RhYmxlJiZhLnNsaWNlKDApLGEuc29ydChVKSxFKXtm
b3IoO2I9YVtlKytdOyliPT09YVtlXSYmKGQ9Yy5wdXNoKGUpKTtmb3IoO2QtLTspYS5zcGxpY2Uo
Y1tkXSwxKX1yZXR1cm4gRD1udWxsLGF9LHg9Yi5nZXRUZXh0PWZ1bmN0aW9uKGEpe3ZhciBiLGM9
IiIsZD0wLGU9YS5ub2RlVHlwZTtpZihlKXtpZigxPT09ZXx8OT09PWV8fDExPT09ZSl7aWYoInN0
cmluZyI9PXR5cGVvZiBhLnRleHRDb250ZW50KXJldHVybiBhLnRleHRDb250ZW50O2ZvcihhPWEu
Zmlyc3RDaGlsZDthO2E9YS5uZXh0U2libGluZyljKz14KGEpfWVsc2UgaWYoMz09PWV8fDQ9PT1l
KXJldHVybiBhLm5vZGVWYWx1ZX1lbHNlIGZvcig7Yj1hW2QrK107KWMrPXgoYik7cmV0dXJuIGN9
LHc9Yi5zZWxlY3RvcnM9e2NhY2hlTGVuZ3RoOjUwLGNyZWF0ZVBzZXVkbzpkLG1hdGNoOm9hLGF0
dHJIYW5kbGU6e30sZmluZDp7fSxyZWxhdGl2ZTp7Ij4iOntkaXI6InBhcmVudE5vZGUiLGZpcnN0
OiEwfSwiICI6e2RpcjoicGFyZW50Tm9kZSJ9LCIrIjp7ZGlyOiJwcmV2aW91c1NpYmxpbmciLGZp
cnN0OiEwfSwifiI6e2RpcjoicHJldmlvdXNTaWJsaW5nIn19LHByZUZpbHRlcjp7QVRUUjpmdW5j
dGlvbihhKXtyZXR1cm4gYVsxXT1hWzFdLnJlcGxhY2UodmEsd2EpLGFbM109KGFbM118fGFbNF18
fGFbNV18fCIiKS5yZXBsYWNlKHZhLHdhKSwifj0iPT09YVsyXSYmKGFbM109IiAiK2FbM10rIiAi
KSxhLnNsaWNlKDAsNCl9LENISUxEOmZ1bmN0aW9uKGEpe3JldHVybiBhWzFdPWFbMV0udG9Mb3dl
ckNhc2UoKSwibnRoIj09PWFbMV0uc2xpY2UoMCwzKT8oYVszXXx8Yi5lcnJvcihhWzBdKSxhWzRd
PSsoYVs0XT9hWzVdKyhhWzZdfHwxKToyKigiZXZlbiI9PT1hWzNdfHwib2RkIj09PWFbM10pKSxh
WzVdPSsoYVs3XSthWzhdfHwib2RkIj09PWFbM10pKTphWzNdJiZiLmVycm9yKGFbMF0pLGF9LFBT
RVVETzpmdW5jdGlvbihhKXt2YXIgYixjPSFhWzZdJiZhWzJdO3JldHVybiBvYS5DSElMRC50ZXN0
KGFbMF0pP251bGw6KGFbM10/YVsyXT1hWzRdfHxhWzVdfHwiIjpjJiZtYS50ZXN0KGMpJiYoYj16
KGMsITApKSYmKGI9Yy5pbmRleE9mKCIpIixjLmxlbmd0aC1iKS1jLmxlbmd0aCkmJihhWzBdPWFb
MF0uc2xpY2UoMCxiKSxhWzJdPWMuc2xpY2UoMCxiKSksYS5zbGljZSgwLDMpKX19LGZpbHRlcjp7
VEFHOmZ1bmN0aW9uKGEpe3ZhciBiPWEucmVwbGFjZSh2YSx3YSkudG9Mb3dlckNhc2UoKTtyZXR1
cm4iKiI9PT1hP2Z1bmN0aW9uKCl7cmV0dXJuITB9OmZ1bmN0aW9uKGEpe3JldHVybiBhLm5vZGVO
YW1lJiZhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1ifX0sQ0xBU1M6ZnVuY3Rpb24oYSl7dmFy
IGI9UlthKyIgIl07cmV0dXJuIGJ8fChiPW5ldyBSZWdFeHAoIihefCIrY2ErIikiK2ErIigiK2Nh
KyJ8JCkiKSkmJlIoYSxmdW5jdGlvbihhKXtyZXR1cm4gYi50ZXN0KCJzdHJpbmciPT10eXBlb2Yg
YS5jbGFzc05hbWUmJmEuY2xhc3NOYW1lfHwidW5kZWZpbmVkIiE9dHlwZW9mIGEuZ2V0QXR0cmli
dXRlJiZhLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIpfSl9LEFUVFI6ZnVuY3Rpb24oYSxjLGQp
e3JldHVybiBmdW5jdGlvbihlKXt2YXIgZj1iLmF0dHIoZSxhKTtyZXR1cm4gbnVsbD09Zj8iIT0i
PT09YzpjPyhmKz0iIiwiPSI9PT1jP2Y9PT1kOiIhPSI9PT1jP2YhPT1kOiJePSI9PT1jP2QmJjA9
PT1mLmluZGV4T2YoZCk6Iio9Ij09PWM/ZCYmZi5pbmRleE9mKGQpPi0xOiIkPSI9PT1jP2QmJmYu
c2xpY2UoLWQubGVuZ3RoKT09PWQ6In49Ij09PWM/KCIgIitmLnJlcGxhY2UoaGEsIiAiKSsiICIp
LmluZGV4T2YoZCk+LTE6Inw9Ij09PWM/Zj09PWR8fGYuc2xpY2UoMCxkLmxlbmd0aCsxKT09PWQr
Ii0iOiExKTohMH19LENISUxEOmZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9Im50aCIhPT1hLnNs
aWNlKDAsMyksZz0ibGFzdCIhPT1hLnNsaWNlKC00KSxoPSJvZi10eXBlIj09PWI7cmV0dXJuIDE9
PT1kJiYwPT09ZT9mdW5jdGlvbihhKXtyZXR1cm4hIWEucGFyZW50Tm9kZX06ZnVuY3Rpb24oYixj
LGkpe3ZhciBqLGssbCxtLG4sbyxwPWYhPT1nPyJuZXh0U2libGluZyI6InByZXZpb3VzU2libGlu
ZyIscT1iLnBhcmVudE5vZGUscj1oJiZiLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkscz0haSYmIWg7
aWYocSl7aWYoZil7Zm9yKDtwOyl7Zm9yKGw9YjtsPWxbcF07KWlmKGg/bC5ub2RlTmFtZS50b0xv
d2VyQ2FzZSgpPT09cjoxPT09bC5ub2RlVHlwZSlyZXR1cm4hMTtvPXA9Im9ubHkiPT09YSYmIW8m
JiJuZXh0U2libGluZyJ9cmV0dXJuITB9aWYobz1bZz9xLmZpcnN0Q2hpbGQ6cS5sYXN0Q2hpbGRd
LGcmJnMpe2ZvcihrPXFbTl18fChxW05dPXt9KSxqPWtbYV18fFtdLG49alswXT09PVAmJmpbMV0s
bT1qWzBdPT09UCYmalsyXSxsPW4mJnEuY2hpbGROb2Rlc1tuXTtsPSsrbiYmbCYmbFtwXXx8KG09
bj0wKXx8by5wb3AoKTspaWYoMT09PWwubm9kZVR5cGUmJisrbSYmbD09PWIpe2tbYV09W1Asbixt
XTticmVha319ZWxzZSBpZihzJiYoaj0oYltOXXx8KGJbTl09e30pKVthXSkmJmpbMF09PT1QKW09
alsxXTtlbHNlIGZvcig7KGw9KytuJiZsJiZsW3BdfHwobT1uPTApfHxvLnBvcCgpKSYmKChoP2wu
bm9kZU5hbWUudG9Mb3dlckNhc2UoKSE9PXI6MSE9PWwubm9kZVR5cGUpfHwhKyttfHwocyYmKChs
W05dfHwobFtOXT17fSkpW2FdPVtQLG1dKSxsIT09YikpOyk7cmV0dXJuIG0tPWUsbT09PWR8fG0l
ZD09PTAmJm0vZD49MH19fSxQU0VVRE86ZnVuY3Rpb24oYSxjKXt2YXIgZSxmPXcucHNldWRvc1th
XXx8dy5zZXRGaWx0ZXJzW2EudG9Mb3dlckNhc2UoKV18fGIuZXJyb3IoInVuc3VwcG9ydGVkIHBz
ZXVkbzogIithKTtyZXR1cm4gZltOXT9mKGMpOmYubGVuZ3RoPjE/KGU9W2EsYSwiIixjXSx3LnNl
dEZpbHRlcnMuaGFzT3duUHJvcGVydHkoYS50b0xvd2VyQ2FzZSgpKT9kKGZ1bmN0aW9uKGEsYil7
Zm9yKHZhciBkLGU9ZihhLGMpLGc9ZS5sZW5ndGg7Zy0tOylkPWFhKGEsZVtnXSksYVtkXT0hKGJb
ZF09ZVtnXSl9KTpmdW5jdGlvbihhKXtyZXR1cm4gZihhLDAsZSl9KTpmfX0scHNldWRvczp7bm90
OmQoZnVuY3Rpb24oYSl7dmFyIGI9W10sYz1bXSxlPUEoYS5yZXBsYWNlKGlhLCIkMSIpKTtyZXR1
cm4gZVtOXT9kKGZ1bmN0aW9uKGEsYixjLGQpe2Zvcih2YXIgZixnPWUoYSxudWxsLGQsW10pLGg9
YS5sZW5ndGg7aC0tOykoZj1nW2hdKSYmKGFbaF09IShiW2hdPWYpKX0pOmZ1bmN0aW9uKGEsZCxm
KXtyZXR1cm4gYlswXT1hLGUoYixudWxsLGYsYyksYlswXT1udWxsLCFjLnBvcCgpfX0pLGhhczpk
KGZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbihjKXtyZXR1cm4gYihhLGMpLmxlbmd0aD4wfX0p
LGNvbnRhaW5zOmQoZnVuY3Rpb24oYSl7cmV0dXJuIGE9YS5yZXBsYWNlKHZhLHdhKSxmdW5jdGlv
bihiKXtyZXR1cm4oYi50ZXh0Q29udGVudHx8Yi5pbm5lclRleHR8fHgoYikpLmluZGV4T2YoYSk+
LTF9fSksbGFuZzpkKGZ1bmN0aW9uKGEpe3JldHVybiBuYS50ZXN0KGF8fCIiKXx8Yi5lcnJvcigi
dW5zdXBwb3J0ZWQgbGFuZzogIithKSxhPWEucmVwbGFjZSh2YSx3YSkudG9Mb3dlckNhc2UoKSxm
dW5jdGlvbihiKXt2YXIgYztkbyBpZihjPUk/Yi5sYW5nOmIuZ2V0QXR0cmlidXRlKCJ4bWw6bGFu
ZyIpfHxiLmdldEF0dHJpYnV0ZSgibGFuZyIpKXJldHVybiBjPWMudG9Mb3dlckNhc2UoKSxjPT09
YXx8MD09PWMuaW5kZXhPZihhKyItIik7d2hpbGUoKGI9Yi5wYXJlbnROb2RlKSYmMT09PWIubm9k
ZVR5cGUpO3JldHVybiExfX0pLHRhcmdldDpmdW5jdGlvbihiKXt2YXIgYz1hLmxvY2F0aW9uJiZh
LmxvY2F0aW9uLmhhc2g7cmV0dXJuIGMmJmMuc2xpY2UoMSk9PT1iLmlkfSxyb290OmZ1bmN0aW9u
KGEpe3JldHVybiBhPT09SH0sZm9jdXM6ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1HLmFjdGl2ZUVs
ZW1lbnQmJighRy5oYXNGb2N1c3x8Ry5oYXNGb2N1cygpKSYmISEoYS50eXBlfHxhLmhyZWZ8fH5h
LnRhYkluZGV4KX0sZW5hYmxlZDpmdW5jdGlvbihhKXtyZXR1cm4gYS5kaXNhYmxlZD09PSExfSxk
aXNhYmxlZDpmdW5jdGlvbihhKXtyZXR1cm4gYS5kaXNhYmxlZD09PSEwfSxjaGVja2VkOmZ1bmN0
aW9uKGEpe3ZhciBiPWEubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4iaW5wdXQiPT09YiYm
ISFhLmNoZWNrZWR8fCJvcHRpb24iPT09YiYmISFhLnNlbGVjdGVkOwp9LHNlbGVjdGVkOmZ1bmN0
aW9uKGEpe3JldHVybiBhLnBhcmVudE5vZGUmJmEucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4LGEu
c2VsZWN0ZWQ9PT0hMH0sZW1wdHk6ZnVuY3Rpb24oYSl7Zm9yKGE9YS5maXJzdENoaWxkO2E7YT1h
Lm5leHRTaWJsaW5nKWlmKGEubm9kZVR5cGU8NilyZXR1cm4hMTtyZXR1cm4hMH0scGFyZW50OmZ1
bmN0aW9uKGEpe3JldHVybiF3LnBzZXVkb3MuZW1wdHkoYSl9LGhlYWRlcjpmdW5jdGlvbihhKXty
ZXR1cm4gcWEudGVzdChhLm5vZGVOYW1lKX0saW5wdXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIHBhLnRl
c3QoYS5ub2RlTmFtZSl9LGJ1dHRvbjpmdW5jdGlvbihhKXt2YXIgYj1hLm5vZGVOYW1lLnRvTG93
ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PWImJiJidXR0b24iPT09YS50eXBlfHwiYnV0dG9uIj09
PWJ9LHRleHQ6ZnVuY3Rpb24oYSl7dmFyIGI7cmV0dXJuImlucHV0Ij09PWEubm9kZU5hbWUudG9M
b3dlckNhc2UoKSYmInRleHQiPT09YS50eXBlJiYobnVsbD09KGI9YS5nZXRBdHRyaWJ1dGUoInR5
cGUiKSl8fCJ0ZXh0Ij09PWIudG9Mb3dlckNhc2UoKSl9LGZpcnN0OmooZnVuY3Rpb24oKXtyZXR1
cm5bMF19KSxsYXN0OmooZnVuY3Rpb24oYSxiKXtyZXR1cm5bYi0xXX0pLGVxOmooZnVuY3Rpb24o
YSxiLGMpe3JldHVyblswPmM/YytiOmNdfSksZXZlbjpqKGZ1bmN0aW9uKGEsYil7Zm9yKHZhciBj
PTA7Yj5jO2MrPTIpYS5wdXNoKGMpO3JldHVybiBhfSksb2RkOmooZnVuY3Rpb24oYSxiKXtmb3Io
dmFyIGM9MTtiPmM7Yys9MilhLnB1c2goYyk7cmV0dXJuIGF9KSxsdDpqKGZ1bmN0aW9uKGEsYixj
KXtmb3IodmFyIGQ9MD5jP2MrYjpjOy0tZD49MDspYS5wdXNoKGQpO3JldHVybiBhfSksZ3Q6aihm
dW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkPTA+Yz9jK2I6YzsrK2Q8YjspYS5wdXNoKGQpO3JldHVy
biBhfSl9fSx3LnBzZXVkb3MubnRoPXcucHNldWRvcy5lcTtmb3IodSBpbntyYWRpbzohMCxjaGVj
a2JveDohMCxmaWxlOiEwLHBhc3N3b3JkOiEwLGltYWdlOiEwfSl3LnBzZXVkb3NbdV09aCh1KTtm
b3IodSBpbntzdWJtaXQ6ITAscmVzZXQ6ITB9KXcucHNldWRvc1t1XT1pKHUpO3JldHVybiBsLnBy
b3RvdHlwZT13LmZpbHRlcnM9dy5wc2V1ZG9zLHcuc2V0RmlsdGVycz1uZXcgbCx6PWIudG9rZW5p
emU9ZnVuY3Rpb24oYSxjKXt2YXIgZCxlLGYsZyxoLGksaixrPVNbYSsiICJdO2lmKGspcmV0dXJu
IGM/MDprLnNsaWNlKDApO2ZvcihoPWEsaT1bXSxqPXcucHJlRmlsdGVyO2g7KXtkJiYhKGU9amEu
ZXhlYyhoKSl8fChlJiYoaD1oLnNsaWNlKGVbMF0ubGVuZ3RoKXx8aCksaS5wdXNoKGY9W10pKSxk
PSExLChlPWthLmV4ZWMoaCkpJiYoZD1lLnNoaWZ0KCksZi5wdXNoKHt2YWx1ZTpkLHR5cGU6ZVsw
XS5yZXBsYWNlKGlhLCIgIil9KSxoPWguc2xpY2UoZC5sZW5ndGgpKTtmb3IoZyBpbiB3LmZpbHRl
cikhKGU9b2FbZ10uZXhlYyhoKSl8fGpbZ10mJiEoZT1qW2ddKGUpKXx8KGQ9ZS5zaGlmdCgpLGYu
cHVzaCh7dmFsdWU6ZCx0eXBlOmcsbWF0Y2hlczplfSksaD1oLnNsaWNlKGQubGVuZ3RoKSk7aWYo
IWQpYnJlYWt9cmV0dXJuIGM/aC5sZW5ndGg6aD9iLmVycm9yKGEpOlMoYSxpKS5zbGljZSgwKX0s
QT1iLmNvbXBpbGU9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPVtdLGU9W10sZj1UW2ErIiAiXTtpZigh
Zil7Zm9yKGJ8fChiPXooYSkpLGM9Yi5sZW5ndGg7Yy0tOylmPXMoYltjXSksZltOXT9kLnB1c2go
Zik6ZS5wdXNoKGYpO2Y9VChhLHQoZSxkKSksZi5zZWxlY3Rvcj1hfXJldHVybiBmfSxCPWIuc2Vs
ZWN0PWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlLGYsZyxoLGksaj0iZnVuY3Rpb24iPT10eXBlb2Yg
YSYmYSxsPSFkJiZ6KGE9ai5zZWxlY3Rvcnx8YSk7aWYoYz1jfHxbXSwxPT09bC5sZW5ndGgpe2lm
KGY9bFswXT1sWzBdLnNsaWNlKDApLGYubGVuZ3RoPjImJiJJRCI9PT0oZz1mWzBdKS50eXBlJiZ2
LmdldEJ5SWQmJjk9PT1iLm5vZGVUeXBlJiZJJiZ3LnJlbGF0aXZlW2ZbMV0udHlwZV0pe2lmKGI9
KHcuZmluZC5JRChnLm1hdGNoZXNbMF0ucmVwbGFjZSh2YSx3YSksYil8fFtdKVswXSwhYilyZXR1
cm4gYztqJiYoYj1iLnBhcmVudE5vZGUpLGE9YS5zbGljZShmLnNoaWZ0KCkudmFsdWUubGVuZ3Ro
KX1mb3IoZT1vYS5uZWVkc0NvbnRleHQudGVzdChhKT8wOmYubGVuZ3RoO2UtLSYmKGc9ZltlXSwh
dy5yZWxhdGl2ZVtoPWcudHlwZV0pOylpZigoaT13LmZpbmRbaF0pJiYoZD1pKGcubWF0Y2hlc1sw
XS5yZXBsYWNlKHZhLHdhKSx0YS50ZXN0KGZbMF0udHlwZSkmJmsoYi5wYXJlbnROb2RlKXx8Yikp
KXtpZihmLnNwbGljZShlLDEpLGE9ZC5sZW5ndGgmJm0oZiksIWEpcmV0dXJuICQuYXBwbHkoYyxk
KSxjO2JyZWFrfX1yZXR1cm4oanx8QShhLGwpKShkLGIsIUksYyx0YS50ZXN0KGEpJiZrKGIucGFy
ZW50Tm9kZSl8fGIpLGN9LHYuc29ydFN0YWJsZT1OLnNwbGl0KCIiKS5zb3J0KFUpLmpvaW4oIiIp
PT09Tix2LmRldGVjdER1cGxpY2F0ZXM9ISFFLEYoKSx2LnNvcnREZXRhY2hlZD1lKGZ1bmN0aW9u
KGEpe3JldHVybiAxJmEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oRy5jcmVhdGVFbGVtZW50KCJk
aXYiKSl9KSxlKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlubmVySFRNTD0iPGEgaHJlZj0nIyc+PC9h
PiIsIiMiPT09YS5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSgiaHJlZiIpfSl8fGYoInR5cGV8aHJl
ZnxoZWlnaHR8d2lkdGgiLGZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gYz92b2lkIDA6YS5nZXRBdHRy
aWJ1dGUoYiwidHlwZSI9PT1iLnRvTG93ZXJDYXNlKCk/MToyKX0pLHYuYXR0cmlidXRlcyYmZShm
dW5jdGlvbihhKXtyZXR1cm4gYS5pbm5lckhUTUw9IjxpbnB1dC8+IixhLmZpcnN0Q2hpbGQuc2V0
QXR0cmlidXRlKCJ2YWx1ZSIsIiIpLCIiPT09YS5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSgidmFs
dWUiKX0pfHxmKCJ2YWx1ZSIsZnVuY3Rpb24oYSxiLGMpe3JldHVybiBjfHwiaW5wdXQiIT09YS5u
b2RlTmFtZS50b0xvd2VyQ2FzZSgpP3ZvaWQgMDphLmRlZmF1bHRWYWx1ZX0pLGUoZnVuY3Rpb24o
YSl7cmV0dXJuIG51bGw9PWEuZ2V0QXR0cmlidXRlKCJkaXNhYmxlZCIpfSl8fGYoYmEsZnVuY3Rp
b24oYSxiLGMpe3ZhciBkO3JldHVybiBjP3ZvaWQgMDphW2JdPT09ITA/Yi50b0xvd2VyQ2FzZSgp
OihkPWEuZ2V0QXR0cmlidXRlTm9kZShiKSkmJmQuc3BlY2lmaWVkP2QudmFsdWU6bnVsbH0pLGJ9
KGEpO2VhLmZpbmQ9amEsZWEuZXhwcj1qYS5zZWxlY3RvcnMsZWEuZXhwclsiOiJdPWVhLmV4cHIu
cHNldWRvcyxlYS51bmlxdWU9amEudW5pcXVlU29ydCxlYS50ZXh0PWphLmdldFRleHQsZWEuaXNY
TUxEb2M9amEuaXNYTUwsZWEuY29udGFpbnM9amEuY29udGFpbnM7dmFyIGthPWVhLmV4cHIubWF0
Y2gubmVlZHNDb250ZXh0LGxhPS9ePChcdyspXHMqXC8/Pig/OjxcL1wxPnwpJC8sbWE9L14uW146
I1xbXC4sXSokLztlYS5maWx0ZXI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWJbMF07cmV0dXJuIGMm
JihhPSI6bm90KCIrYSsiKSIpLDE9PT1iLmxlbmd0aCYmMT09PWQubm9kZVR5cGU/ZWEuZmluZC5t
YXRjaGVzU2VsZWN0b3IoZCxhKT9bZF06W106ZWEuZmluZC5tYXRjaGVzKGEsZWEuZ3JlcChiLGZ1
bmN0aW9uKGEpe3JldHVybiAxPT09YS5ub2RlVHlwZX0pKX0sZWEuZm4uZXh0ZW5kKHtmaW5kOmZ1
bmN0aW9uKGEpe3ZhciBiLGM9W10sZD10aGlzLGU9ZC5sZW5ndGg7aWYoInN0cmluZyIhPXR5cGVv
ZiBhKXJldHVybiB0aGlzLnB1c2hTdGFjayhlYShhKS5maWx0ZXIoZnVuY3Rpb24oKXtmb3IoYj0w
O2U+YjtiKyspaWYoZWEuY29udGFpbnMoZFtiXSx0aGlzKSlyZXR1cm4hMH0pKTtmb3IoYj0wO2U+
YjtiKyspZWEuZmluZChhLGRbYl0sYyk7cmV0dXJuIGM9dGhpcy5wdXNoU3RhY2soZT4xP2VhLnVu
aXF1ZShjKTpjKSxjLnNlbGVjdG9yPXRoaXMuc2VsZWN0b3I/dGhpcy5zZWxlY3RvcisiICIrYTph
LGN9LGZpbHRlcjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soZCh0aGlzLGF8fFtd
LCExKSl9LG5vdDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soZCh0aGlzLGF8fFtd
LCEwKSl9LGlzOmZ1bmN0aW9uKGEpe3JldHVybiEhZCh0aGlzLCJzdHJpbmciPT10eXBlb2YgYSYm
a2EudGVzdChhKT9lYShhKTphfHxbXSwhMSkubGVuZ3RofX0pO3ZhciBuYSxvYT1hLmRvY3VtZW50
LHBhPS9eKD86XHMqKDxbXHdcV10rPilbXj5dKnwjKFtcdy1dKikpJC8scWE9ZWEuZm4uaW5pdD1m
dW5jdGlvbihhLGIpe3ZhciBjLGQ7aWYoIWEpcmV0dXJuIHRoaXM7aWYoInN0cmluZyI9PXR5cGVv
ZiBhKXtpZihjPSI8Ij09PWEuY2hhckF0KDApJiYiPiI9PT1hLmNoYXJBdChhLmxlbmd0aC0xKSYm
YS5sZW5ndGg+PTM/W251bGwsYSxudWxsXTpwYS5leGVjKGEpLCFjfHwhY1sxXSYmYilyZXR1cm4h
Ynx8Yi5qcXVlcnk/KGJ8fG5hKS5maW5kKGEpOnRoaXMuY29uc3RydWN0b3IoYikuZmluZChhKTtp
ZihjWzFdKXtpZihiPWIgaW5zdGFuY2VvZiBlYT9iWzBdOmIsZWEubWVyZ2UodGhpcyxlYS5wYXJz
ZUhUTUwoY1sxXSxiJiZiLm5vZGVUeXBlP2Iub3duZXJEb2N1bWVudHx8YjpvYSwhMCkpLGxhLnRl
c3QoY1sxXSkmJmVhLmlzUGxhaW5PYmplY3QoYikpZm9yKGMgaW4gYillYS5pc0Z1bmN0aW9uKHRo
aXNbY10pP3RoaXNbY10oYltjXSk6dGhpcy5hdHRyKGMsYltjXSk7cmV0dXJuIHRoaXN9aWYoZD1v
YS5nZXRFbGVtZW50QnlJZChjWzJdKSxkJiZkLnBhcmVudE5vZGUpe2lmKGQuaWQhPT1jWzJdKXJl
dHVybiBuYS5maW5kKGEpO3RoaXMubGVuZ3RoPTEsdGhpc1swXT1kfXJldHVybiB0aGlzLmNvbnRl
eHQ9b2EsdGhpcy5zZWxlY3Rvcj1hLHRoaXN9cmV0dXJuIGEubm9kZVR5cGU/KHRoaXMuY29udGV4
dD10aGlzWzBdPWEsdGhpcy5sZW5ndGg9MSx0aGlzKTplYS5pc0Z1bmN0aW9uKGEpPyJ1bmRlZmlu
ZWQiIT10eXBlb2YgbmEucmVhZHk/bmEucmVhZHkoYSk6YShlYSk6KHZvaWQgMCE9PWEuc2VsZWN0
b3ImJih0aGlzLnNlbGVjdG9yPWEuc2VsZWN0b3IsdGhpcy5jb250ZXh0PWEuY29udGV4dCksZWEu
bWFrZUFycmF5KGEsdGhpcykpfTtxYS5wcm90b3R5cGU9ZWEuZm4sbmE9ZWEob2EpO3ZhciByYT0v
Xig/OnBhcmVudHN8cHJldig/OlVudGlsfEFsbCkpLyxzYT17Y2hpbGRyZW46ITAsY29udGVudHM6
ITAsbmV4dDohMCxwcmV2OiEwfTtlYS5leHRlbmQoe2RpcjpmdW5jdGlvbihhLGIsYyl7Zm9yKHZh
ciBkPVtdLGU9YVtiXTtlJiY5IT09ZS5ub2RlVHlwZSYmKHZvaWQgMD09PWN8fDEhPT1lLm5vZGVU
eXBlfHwhZWEoZSkuaXMoYykpOykxPT09ZS5ub2RlVHlwZSYmZC5wdXNoKGUpLGU9ZVtiXTtyZXR1
cm4gZH0sc2libGluZzpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1bXTthO2E9YS5uZXh0U2libGlu
ZykxPT09YS5ub2RlVHlwZSYmYSE9PWImJmMucHVzaChhKTtyZXR1cm4gY319KSxlYS5mbi5leHRl
bmQoe2hhczpmdW5jdGlvbihhKXt2YXIgYixjPWVhKGEsdGhpcyksZD1jLmxlbmd0aDtyZXR1cm4g
dGhpcy5maWx0ZXIoZnVuY3Rpb24oKXtmb3IoYj0wO2Q+YjtiKyspaWYoZWEuY29udGFpbnModGhp
cyxjW2JdKSlyZXR1cm4hMH0pfSxjbG9zZXN0OmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjLGQ9MCxl
PXRoaXMubGVuZ3RoLGY9W10sZz1rYS50ZXN0KGEpfHwic3RyaW5nIiE9dHlwZW9mIGE/ZWEoYSxi
fHx0aGlzLmNvbnRleHQpOjA7ZT5kO2QrKylmb3IoYz10aGlzW2RdO2MmJmMhPT1iO2M9Yy5wYXJl
bnROb2RlKWlmKGMubm9kZVR5cGU8MTEmJihnP2cuaW5kZXgoYyk+LTE6MT09PWMubm9kZVR5cGUm
JmVhLmZpbmQubWF0Y2hlc1NlbGVjdG9yKGMsYSkpKXtmLnB1c2goYyk7YnJlYWt9cmV0dXJuIHRo
aXMucHVzaFN0YWNrKGYubGVuZ3RoPjE/ZWEudW5pcXVlKGYpOmYpfSxpbmRleDpmdW5jdGlvbihh
KXtyZXR1cm4gYT8ic3RyaW5nIj09dHlwZW9mIGE/ZWEuaW5BcnJheSh0aGlzWzBdLGVhKGEpKTpl
YS5pbkFycmF5KGEuanF1ZXJ5P2FbMF06YSx0aGlzKTp0aGlzWzBdJiZ0aGlzWzBdLnBhcmVudE5v
ZGU/dGhpcy5maXJzdCgpLnByZXZBbGwoKS5sZW5ndGg6LTF9LGFkZDpmdW5jdGlvbihhLGIpe3Jl
dHVybiB0aGlzLnB1c2hTdGFjayhlYS51bmlxdWUoZWEubWVyZ2UodGhpcy5nZXQoKSxlYShhLGIp
KSkpfSxhZGRCYWNrOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmFkZChudWxsPT1hP3RoaXMucHJl
dk9iamVjdDp0aGlzLnByZXZPYmplY3QuZmlsdGVyKGEpKX19KSxlYS5lYWNoKHtwYXJlbnQ6ZnVu
Y3Rpb24oYSl7dmFyIGI9YS5wYXJlbnROb2RlO3JldHVybiBiJiYxMSE9PWIubm9kZVR5cGU/Yjpu
dWxsfSxwYXJlbnRzOmZ1bmN0aW9uKGEpe3JldHVybiBlYS5kaXIoYSwicGFyZW50Tm9kZSIpfSxw
YXJlbnRzVW50aWw6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBlYS5kaXIoYSwicGFyZW50Tm9kZSIs
Yyl9LG5leHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGUoYSwibmV4dFNpYmxpbmciKX0scHJldjpmdW5j
dGlvbihhKXtyZXR1cm4gZShhLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dEFsbDpmdW5jdGlvbihh
KXtyZXR1cm4gZWEuZGlyKGEsIm5leHRTaWJsaW5nIil9LHByZXZBbGw6ZnVuY3Rpb24oYSl7cmV0
dXJuIGVhLmRpcihhLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dFVudGlsOmZ1bmN0aW9uKGEsYixj
KXtyZXR1cm4gZWEuZGlyKGEsIm5leHRTaWJsaW5nIixjKX0scHJldlVudGlsOmZ1bmN0aW9uKGEs
YixjKXtyZXR1cm4gZWEuZGlyKGEsInByZXZpb3VzU2libGluZyIsYyl9LHNpYmxpbmdzOmZ1bmN0
aW9uKGEpe3JldHVybiBlYS5zaWJsaW5nKChhLnBhcmVudE5vZGV8fHt9KS5maXJzdENoaWxkLGEp
fSxjaGlsZHJlbjpmdW5jdGlvbihhKXtyZXR1cm4gZWEuc2libGluZyhhLmZpcnN0Q2hpbGQpfSxj
b250ZW50czpmdW5jdGlvbihhKXtyZXR1cm4gZWEubm9kZU5hbWUoYSwiaWZyYW1lIik/YS5jb250
ZW50RG9jdW1lbnR8fGEuY29udGVudFdpbmRvdy5kb2N1bWVudDplYS5tZXJnZShbXSxhLmNoaWxk
Tm9kZXMpfX0sZnVuY3Rpb24oYSxiKXtlYS5mblthXT1mdW5jdGlvbihjLGQpe3ZhciBlPWVhLm1h
cCh0aGlzLGIsYyk7cmV0dXJuIlVudGlsIiE9PWEuc2xpY2UoLTUpJiYoZD1jKSxkJiYic3RyaW5n
Ij09dHlwZW9mIGQmJihlPWVhLmZpbHRlcihkLGUpKSx0aGlzLmxlbmd0aD4xJiYoc2FbYV18fChl
PWVhLnVuaXF1ZShlKSkscmEudGVzdChhKSYmKGU9ZS5yZXZlcnNlKCkpKSx0aGlzLnB1c2hTdGFj
ayhlKX19KTt2YXIgdGE9L1xTKy9nLHVhPXt9O2VhLkNhbGxiYWNrcz1mdW5jdGlvbihhKXthPSJz
dHJpbmciPT10eXBlb2YgYT91YVthXXx8ZihhKTplYS5leHRlbmQoe30sYSk7dmFyIGIsYyxkLGUs
ZyxoLGk9W10saj0hYS5vbmNlJiZbXSxrPWZ1bmN0aW9uKGYpe2ZvcihjPWEubWVtb3J5JiZmLGQ9
ITAsZz1ofHwwLGg9MCxlPWkubGVuZ3RoLGI9ITA7aSYmZT5nO2crKylpZihpW2ddLmFwcGx5KGZb
MF0sZlsxXSk9PT0hMSYmYS5zdG9wT25GYWxzZSl7Yz0hMTticmVha31iPSExLGkmJihqP2oubGVu
Z3RoJiZrKGouc2hpZnQoKSk6Yz9pPVtdOmwuZGlzYWJsZSgpKX0sbD17YWRkOmZ1bmN0aW9uKCl7
aWYoaSl7dmFyIGQ9aS5sZW5ndGg7IWZ1bmN0aW9uIGYoYil7ZWEuZWFjaChiLGZ1bmN0aW9uKGIs
Yyl7dmFyIGQ9ZWEudHlwZShjKTsiZnVuY3Rpb24iPT09ZD9hLnVuaXF1ZSYmbC5oYXMoYyl8fGku
cHVzaChjKTpjJiZjLmxlbmd0aCYmInN0cmluZyIhPT1kJiZmKGMpfSl9KGFyZ3VtZW50cyksYj9l
PWkubGVuZ3RoOmMmJihoPWQsayhjKSl9cmV0dXJuIHRoaXN9LHJlbW92ZTpmdW5jdGlvbigpe3Jl
dHVybiBpJiZlYS5lYWNoKGFyZ3VtZW50cyxmdW5jdGlvbihhLGMpe2Zvcih2YXIgZDsoZD1lYS5p
bkFycmF5KGMsaSxkKSk+LTE7KWkuc3BsaWNlKGQsMSksYiYmKGU+PWQmJmUtLSxnPj1kJiZnLS0p
fSksdGhpc30saGFzOmZ1bmN0aW9uKGEpe3JldHVybiBhP2VhLmluQXJyYXkoYSxpKT4tMTohKCFp
fHwhaS5sZW5ndGgpfSxlbXB0eTpmdW5jdGlvbigpe3JldHVybiBpPVtdLGU9MCx0aGlzfSxkaXNh
YmxlOmZ1bmN0aW9uKCl7cmV0dXJuIGk9aj1jPXZvaWQgMCx0aGlzfSxkaXNhYmxlZDpmdW5jdGlv
bigpe3JldHVybiFpfSxsb2NrOmZ1bmN0aW9uKCl7cmV0dXJuIGo9dm9pZCAwLGN8fGwuZGlzYWJs
ZSgpLHRoaXN9LGxvY2tlZDpmdW5jdGlvbigpe3JldHVybiFqfSxmaXJlV2l0aDpmdW5jdGlvbihh
LGMpe3JldHVybiFpfHxkJiYhanx8KGM9Y3x8W10sYz1bYSxjLnNsaWNlP2Muc2xpY2UoKTpjXSxi
P2oucHVzaChjKTprKGMpKSx0aGlzfSxmaXJlOmZ1bmN0aW9uKCl7cmV0dXJuIGwuZmlyZVdpdGgo
dGhpcyxhcmd1bWVudHMpLHRoaXN9LGZpcmVkOmZ1bmN0aW9uKCl7cmV0dXJuISFkfX07cmV0dXJu
IGx9LGVhLmV4dGVuZCh7RGVmZXJyZWQ6ZnVuY3Rpb24oYSl7dmFyIGI9W1sicmVzb2x2ZSIsImRv
bmUiLGVhLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSwicmVzb2x2ZWQiXSxbInJlamVjdCIsImZh
aWwiLGVhLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSwicmVqZWN0ZWQiXSxbIm5vdGlmeSIsInBy
b2dyZXNzIixlYS5DYWxsYmFja3MoIm1lbW9yeSIpXV0sYz0icGVuZGluZyIsZD17c3RhdGU6ZnVu
Y3Rpb24oKXtyZXR1cm4gY30sYWx3YXlzOmZ1bmN0aW9uKCl7cmV0dXJuIGUuZG9uZShhcmd1bWVu
dHMpLmZhaWwoYXJndW1lbnRzKSx0aGlzfSx0aGVuOmZ1bmN0aW9uKCl7dmFyIGE9YXJndW1lbnRz
O3JldHVybiBlYS5EZWZlcnJlZChmdW5jdGlvbihjKXtlYS5lYWNoKGIsZnVuY3Rpb24oYixmKXt2
YXIgZz1lYS5pc0Z1bmN0aW9uKGFbYl0pJiZhW2JdO2VbZlsxXV0oZnVuY3Rpb24oKXt2YXIgYT1n
JiZnLmFwcGx5KHRoaXMsYXJndW1lbnRzKTthJiZlYS5pc0Z1bmN0aW9uKGEucHJvbWlzZSk/YS5w
cm9taXNlKCkuZG9uZShjLnJlc29sdmUpLmZhaWwoYy5yZWplY3QpLnByb2dyZXNzKGMubm90aWZ5
KTpjW2ZbMF0rIldpdGgiXSh0aGlzPT09ZD9jLnByb21pc2UoKTp0aGlzLGc/W2FdOmFyZ3VtZW50
cyl9KX0pLGE9bnVsbH0pLnByb21pc2UoKX0scHJvbWlzZTpmdW5jdGlvbihhKXtyZXR1cm4gbnVs
bCE9YT9lYS5leHRlbmQoYSxkKTpkfX0sZT17fTtyZXR1cm4gZC5waXBlPWQudGhlbixlYS5lYWNo
KGIsZnVuY3Rpb24oYSxmKXt2YXIgZz1mWzJdLGg9ZlszXTtkW2ZbMV1dPWcuYWRkLGgmJmcuYWRk
KGZ1bmN0aW9uKCl7Yz1ofSxiWzFeYV1bMl0uZGlzYWJsZSxiWzJdWzJdLmxvY2spLGVbZlswXV09
ZnVuY3Rpb24oKXtyZXR1cm4gZVtmWzBdKyJXaXRoIl0odGhpcz09PWU/ZDp0aGlzLGFyZ3VtZW50
cyksdGhpc30sZVtmWzBdKyJXaXRoIl09Zy5maXJlV2l0aH0pLGQucHJvbWlzZShlKSxhJiZhLmNh
bGwoZSxlKSxlfSx3aGVuOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlPTAsZj1YLmNhbGwoYXJndW1l
bnRzKSxnPWYubGVuZ3RoLGg9MSE9PWd8fGEmJmVhLmlzRnVuY3Rpb24oYS5wcm9taXNlKT9nOjAs
aT0xPT09aD9hOmVhLkRlZmVycmVkKCksaj1mdW5jdGlvbihhLGMsZCl7cmV0dXJuIGZ1bmN0aW9u
KGUpe2NbYV09dGhpcyxkW2FdPWFyZ3VtZW50cy5sZW5ndGg+MT9YLmNhbGwoYXJndW1lbnRzKTpl
LGQ9PT1iP2kubm90aWZ5V2l0aChjLGQpOi0taHx8aS5yZXNvbHZlV2l0aChjLGQpfX07aWYoZz4x
KWZvcihiPW5ldyBBcnJheShnKSxjPW5ldyBBcnJheShnKSxkPW5ldyBBcnJheShnKTtnPmU7ZSsr
KWZbZV0mJmVhLmlzRnVuY3Rpb24oZltlXS5wcm9taXNlKT9mW2VdLnByb21pc2UoKS5kb25lKGoo
ZSxkLGYpKS5mYWlsKGkucmVqZWN0KS5wcm9ncmVzcyhqKGUsYyxiKSk6LS1oO3JldHVybiBofHxp
LnJlc29sdmVXaXRoKGQsZiksaS5wcm9taXNlKCl9fSk7dmFyIHZhO2VhLmZuLnJlYWR5PWZ1bmN0
aW9uKGEpe3JldHVybiBlYS5yZWFkeS5wcm9taXNlKCkuZG9uZShhKSx0aGlzfSxlYS5leHRlbmQo
e2lzUmVhZHk6ITEscmVhZHlXYWl0OjEsaG9sZFJlYWR5OmZ1bmN0aW9uKGEpe2E/ZWEucmVhZHlX
YWl0Kys6ZWEucmVhZHkoITApfSxyZWFkeTpmdW5jdGlvbihhKXtpZihhPT09ITA/IS0tZWEucmVh
ZHlXYWl0OiFlYS5pc1JlYWR5KXtpZighb2EuYm9keSlyZXR1cm4gc2V0VGltZW91dChlYS5yZWFk
eSk7ZWEuaXNSZWFkeT0hMCxhIT09ITAmJi0tZWEucmVhZHlXYWl0PjB8fCh2YS5yZXNvbHZlV2l0
aChvYSxbZWFdKSxlYS5mbi50cmlnZ2VySGFuZGxlciYmKGVhKG9hKS50cmlnZ2VySGFuZGxlcigi
cmVhZHkiKSxlYShvYSkub2ZmKCJyZWFkeSIpKSl9fX0pLGVhLnJlYWR5LnByb21pc2U9ZnVuY3Rp
b24oYil7aWYoIXZhKWlmKHZhPWVhLkRlZmVycmVkKCksImNvbXBsZXRlIj09PW9hLnJlYWR5U3Rh
dGUpc2V0VGltZW91dChlYS5yZWFkeSk7ZWxzZSBpZihvYS5hZGRFdmVudExpc3RlbmVyKW9hLmFk
ZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLGgsITEpLGEuYWRkRXZlbnRMaXN0ZW5l
cigibG9hZCIsaCwhMSk7ZWxzZXtvYS5hdHRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIixo
KSxhLmF0dGFjaEV2ZW50KCJvbmxvYWQiLGgpO3ZhciBjPSExO3RyeXtjPW51bGw9PWEuZnJhbWVF
bGVtZW50JiZvYS5kb2N1bWVudEVsZW1lbnR9Y2F0Y2goZCl7fWMmJmMuZG9TY3JvbGwmJiFmdW5j
dGlvbiBlKCl7aWYoIWVhLmlzUmVhZHkpe3RyeXtjLmRvU2Nyb2xsKCJsZWZ0Iil9Y2F0Y2goYSl7
cmV0dXJuIHNldFRpbWVvdXQoZSw1MCl9ZygpLGVhLnJlYWR5KCl9fSgpfXJldHVybiB2YS5wcm9t
aXNlKGIpfTt2YXIgd2EseGE9InVuZGVmaW5lZCI7Zm9yKHdhIGluIGVhKGNhKSlicmVhaztjYS5v
d25MYXN0PSIwIiE9PXdhLGNhLmlubGluZUJsb2NrTmVlZHNMYXlvdXQ9ITEsZWEoZnVuY3Rpb24o
KXt2YXIgYSxiLGMsZDtjPW9hLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF0sYyYmYy5z
dHlsZSYmKGI9b2EuY3JlYXRlRWxlbWVudCgiZGl2IiksZD1vYS5jcmVhdGVFbGVtZW50KCJkaXYi
KSxkLnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOmFic29sdXRlO2JvcmRlcjowO3dpZHRoOjA7aGVp
Z2h0OjA7dG9wOjA7bGVmdDotOTk5OXB4IixjLmFwcGVuZENoaWxkKGQpLmFwcGVuZENoaWxkKGIp
LHR5cGVvZiBiLnN0eWxlLnpvb20hPT14YSYmKGIuc3R5bGUuY3NzVGV4dD0iZGlzcGxheTppbmxp
bmU7bWFyZ2luOjA7Ym9yZGVyOjA7cGFkZGluZzoxcHg7d2lkdGg6MXB4O3pvb206MSIsY2EuaW5s
aW5lQmxvY2tOZWVkc0xheW91dD1hPTM9PT1iLm9mZnNldFdpZHRoLGEmJihjLnN0eWxlLnpvb209
MSkpLGMucmVtb3ZlQ2hpbGQoZCkpfSksZnVuY3Rpb24oKXt2YXIgYT1vYS5jcmVhdGVFbGVtZW50
KCJkaXYiKTtpZihudWxsPT1jYS5kZWxldGVFeHBhbmRvKXtjYS5kZWxldGVFeHBhbmRvPSEwO3Ry
eXtkZWxldGUgYS50ZXN0fWNhdGNoKGIpe2NhLmRlbGV0ZUV4cGFuZG89ITF9fWE9bnVsbH0oKSxl
YS5hY2NlcHREYXRhPWZ1bmN0aW9uKGEpe3ZhciBiPWVhLm5vRGF0YVsoYS5ub2RlTmFtZSsiICIp
LnRvTG93ZXJDYXNlKCldLGM9K2Eubm9kZVR5cGV8fDE7cmV0dXJuIDEhPT1jJiY5IT09Yz8hMToh
Ynx8YiE9PSEwJiZhLmdldEF0dHJpYnV0ZSgiY2xhc3NpZCIpPT09Yn07dmFyIHlhPS9eKD86XHtb
XHdcV10qXH18XFtbXHdcV10qXF0pJC8semE9LyhbQS1aXSkvZztlYS5leHRlbmQoe2NhY2hlOnt9
LG5vRGF0YTp7ImFwcGxldCAiOiEwLCJlbWJlZCAiOiEwLCJvYmplY3QgIjoiY2xzaWQ6RDI3Q0RC
NkUtQUU2RC0xMWNmLTk2QjgtNDQ0NTUzNTQwMDAwIn0saGFzRGF0YTpmdW5jdGlvbihhKXtyZXR1
cm4gYT1hLm5vZGVUeXBlP2VhLmNhY2hlW2FbZWEuZXhwYW5kb11dOmFbZWEuZXhwYW5kb10sISFh
JiYhaihhKX0sZGF0YTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGsoYSxiLGMpfSxyZW1vdmVEYXRh
OmZ1bmN0aW9uKGEsYil7cmV0dXJuIGwoYSxiKX0sX2RhdGE6ZnVuY3Rpb24oYSxiLGMpe3JldHVy
biBrKGEsYixjLCEwKX0sX3JlbW92ZURhdGE6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbChhLGIsITAp
fX0pLGVhLmZuLmV4dGVuZCh7ZGF0YTpmdW5jdGlvbihhLGIpe3ZhciBjLGQsZSxmPXRoaXNbMF0s
Zz1mJiZmLmF0dHJpYnV0ZXM7aWYodm9pZCAwPT09YSl7aWYodGhpcy5sZW5ndGgmJihlPWVhLmRh
dGEoZiksMT09PWYubm9kZVR5cGUmJiFlYS5fZGF0YShmLCJwYXJzZWRBdHRycyIpKSl7Zm9yKGM9
Zy5sZW5ndGg7Yy0tOylnW2NdJiYoZD1nW2NdLm5hbWUsMD09PWQuaW5kZXhPZigiZGF0YS0iKSYm
KGQ9ZWEuY2FtZWxDYXNlKGQuc2xpY2UoNSkpLGkoZixkLGVbZF0pKSk7ZWEuX2RhdGEoZiwicGFy
c2VkQXR0cnMiLCEwKX1yZXR1cm4gZX1yZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGE/dGhpcy5lYWNo
KGZ1bmN0aW9uKCl7ZWEuZGF0YSh0aGlzLGEpfSk6YXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFj
aChmdW5jdGlvbigpe2VhLmRhdGEodGhpcyxhLGIpfSk6Zj9pKGYsYSxlYS5kYXRhKGYsYSkpOnZv
aWQgMH0scmVtb3ZlRGF0YTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7
ZWEucmVtb3ZlRGF0YSh0aGlzLGEpfSl9fSksZWEuZXh0ZW5kKHtxdWV1ZTpmdW5jdGlvbihhLGIs
Yyl7dmFyIGQ7cmV0dXJuIGE/KGI9KGJ8fCJmeCIpKyJxdWV1ZSIsZD1lYS5fZGF0YShhLGIpLGMm
JighZHx8ZWEuaXNBcnJheShjKT9kPWVhLl9kYXRhKGEsYixlYS5tYWtlQXJyYXkoYykpOmQucHVz
aChjKSksZHx8W10pOnZvaWQgMH0sZGVxdWV1ZTpmdW5jdGlvbihhLGIpe2I9Ynx8ImZ4Ijt2YXIg
Yz1lYS5xdWV1ZShhLGIpLGQ9Yy5sZW5ndGgsZT1jLnNoaWZ0KCksZj1lYS5fcXVldWVIb29rcyhh
LGIpLGc9ZnVuY3Rpb24oKXtlYS5kZXF1ZXVlKGEsYil9OyJpbnByb2dyZXNzIj09PWUmJihlPWMu
c2hpZnQoKSxkLS0pLGUmJigiZngiPT09YiYmYy51bnNoaWZ0KCJpbnByb2dyZXNzIiksZGVsZXRl
IGYuc3RvcCxlLmNhbGwoYSxnLGYpKSwhZCYmZiYmZi5lbXB0eS5maXJlKCl9LF9xdWV1ZUhvb2tz
OmZ1bmN0aW9uKGEsYil7dmFyIGM9YisicXVldWVIb29rcyI7cmV0dXJuIGVhLl9kYXRhKGEsYyl8
fGVhLl9kYXRhKGEsYyx7ZW1wdHk6ZWEuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLmFkZChmdW5j
dGlvbigpe2VhLl9yZW1vdmVEYXRhKGEsYisicXVldWUiKSxlYS5fcmVtb3ZlRGF0YShhLGMpfSl9
KX19KSxlYS5mbi5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKGEsYil7dmFyIGM9MjtyZXR1cm4ic3Ry
aW5nIiE9dHlwZW9mIGEmJihiPWEsYT0iZngiLGMtLSksYXJndW1lbnRzLmxlbmd0aDxjP2VhLnF1
ZXVlKHRoaXNbMF0sYSk6dm9pZCAwPT09Yj90aGlzOnRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBj
PWVhLnF1ZXVlKHRoaXMsYSxiKTtlYS5fcXVldWVIb29rcyh0aGlzLGEpLCJmeCI9PT1hJiYiaW5w
cm9ncmVzcyIhPT1jWzBdJiZlYS5kZXF1ZXVlKHRoaXMsYSl9KX0sZGVxdWV1ZTpmdW5jdGlvbihh
KXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZWEuZGVxdWV1ZSh0aGlzLGEpfSl9LGNsZWFy
UXVldWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucXVldWUoYXx8ImZ4IixbXSl9LHByb21pc2U6
ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPTEsZT1lYS5EZWZlcnJlZCgpLGY9dGhpcyxnPXRoaXMubGVu
Z3RoLGg9ZnVuY3Rpb24oKXstLWR8fGUucmVzb2x2ZVdpdGgoZixbZl0pfTtmb3IoInN0cmluZyIh
PXR5cGVvZiBhJiYoYj1hLGE9dm9pZCAwKSxhPWF8fCJmeCI7Zy0tOyljPWVhLl9kYXRhKGZbZ10s
YSsicXVldWVIb29rcyIpLGMmJmMuZW1wdHkmJihkKyssYy5lbXB0eS5hZGQoaCkpO3JldHVybiBo
KCksZS5wcm9taXNlKGIpfX0pO3ZhciBBYT0vWystXT8oPzpcZCpcLnwpXGQrKD86W2VFXVsrLV0/
XGQrfCkvLnNvdXJjZSxCYT1bIlRvcCIsIlJpZ2h0IiwiQm90dG9tIiwiTGVmdCJdLENhPWZ1bmN0
aW9uKGEsYil7cmV0dXJuIGE9Ynx8YSwibm9uZSI9PT1lYS5jc3MoYSwiZGlzcGxheSIpfHwhZWEu
Y29udGFpbnMoYS5vd25lckRvY3VtZW50LGEpfSxEYT1lYS5hY2Nlc3M9ZnVuY3Rpb24oYSxiLGMs
ZCxlLGYsZyl7dmFyIGg9MCxpPWEubGVuZ3RoLGo9bnVsbD09YztpZigib2JqZWN0Ij09PWVhLnR5
cGUoYykpe2U9ITA7Zm9yKGggaW4gYyllYS5hY2Nlc3MoYSxiLGgsY1toXSwhMCxmLGcpfWVsc2Ug
aWYodm9pZCAwIT09ZCYmKGU9ITAsZWEuaXNGdW5jdGlvbihkKXx8KGc9ITApLGomJihnPyhiLmNh
bGwoYSxkKSxiPW51bGwpOihqPWIsYj1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGouY2FsbChlYShh
KSxjKX0pKSxiKSlmb3IoO2k+aDtoKyspYihhW2hdLGMsZz9kOmQuY2FsbChhW2hdLGgsYihhW2hd
LGMpKSk7cmV0dXJuIGU/YTpqP2IuY2FsbChhKTppP2IoYVswXSxjKTpmfSxFYT0vXig/OmNoZWNr
Ym94fHJhZGlvKSQvaTshZnVuY3Rpb24oKXt2YXIgYT1vYS5jcmVhdGVFbGVtZW50KCJpbnB1dCIp
LGI9b2EuY3JlYXRlRWxlbWVudCgiZGl2IiksYz1vYS5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7
aWYoYi5pbm5lckhUTUw9IiAgPGxpbmsvPjx0YWJsZT48L3RhYmxlPjxhIGhyZWY9Jy9hJz5hPC9h
PjxpbnB1dCB0eXBlPSdjaGVja2JveCcvPiIsY2EubGVhZGluZ1doaXRlc3BhY2U9Mz09PWIuZmly
c3RDaGlsZC5ub2RlVHlwZSxjYS50Ym9keT0hYi5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGJvZHki
KS5sZW5ndGgsY2EuaHRtbFNlcmlhbGl6ZT0hIWIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImxpbmsi
KS5sZW5ndGgsY2EuaHRtbDVDbG9uZT0iPDpuYXY+PC86bmF2PiIhPT1vYS5jcmVhdGVFbGVtZW50
KCJuYXYiKS5jbG9uZU5vZGUoITApLm91dGVySFRNTCxhLnR5cGU9ImNoZWNrYm94IixhLmNoZWNr
ZWQ9ITAsYy5hcHBlbmRDaGlsZChhKSxjYS5hcHBlbmRDaGVja2VkPWEuY2hlY2tlZCxiLmlubmVy
SFRNTD0iPHRleHRhcmVhPng8L3RleHRhcmVhPiIsY2Eubm9DbG9uZUNoZWNrZWQ9ISFiLmNsb25l
Tm9kZSghMCkubGFzdENoaWxkLmRlZmF1bHRWYWx1ZSxjLmFwcGVuZENoaWxkKGIpLGIuaW5uZXJI
VE1MPSI8aW5wdXQgdHlwZT0ncmFkaW8nIGNoZWNrZWQ9J2NoZWNrZWQnIG5hbWU9J3QnLz4iLGNh
LmNoZWNrQ2xvbmU9Yi5jbG9uZU5vZGUoITApLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmNoZWNr
ZWQsY2Eubm9DbG9uZUV2ZW50PSEwLGIuYXR0YWNoRXZlbnQmJihiLmF0dGFjaEV2ZW50KCJvbmNs
aWNrIixmdW5jdGlvbigpe2NhLm5vQ2xvbmVFdmVudD0hMX0pLGIuY2xvbmVOb2RlKCEwKS5jbGlj
aygpKSxudWxsPT1jYS5kZWxldGVFeHBhbmRvKXtjYS5kZWxldGVFeHBhbmRvPSEwO3RyeXtkZWxl
dGUgYi50ZXN0fWNhdGNoKGQpe2NhLmRlbGV0ZUV4cGFuZG89ITF9fX0oKSxmdW5jdGlvbigpe3Zh
ciBiLGMsZD1vYS5jcmVhdGVFbGVtZW50KCJkaXYiKTtmb3IoYiBpbntzdWJtaXQ6ITAsY2hhbmdl
OiEwLGZvY3VzaW46ITB9KWM9Im9uIitiLChjYVtiKyJCdWJibGVzIl09YyBpbiBhKXx8KGQuc2V0
QXR0cmlidXRlKGMsInQiKSxjYVtiKyJCdWJibGVzIl09ZC5hdHRyaWJ1dGVzW2NdLmV4cGFuZG89
PT0hMSk7ZD1udWxsfSgpO3ZhciBGYT0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYSkkL2ksR2E9
L15rZXkvLEhhPS9eKD86bW91c2V8cG9pbnRlcnxjb250ZXh0bWVudSl8Y2xpY2svLElhPS9eKD86
Zm9jdXNpbmZvY3VzfGZvY3Vzb3V0Ymx1cikkLyxKYT0vXihbXi5dKikoPzpcLiguKyl8KSQvO2Vh
LmV2ZW50PXtnbG9iYWw6e30sYWRkOmZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGYsZyxoLGksaixr
LGwsbSxuLG8scCxxPWVhLl9kYXRhKGEpO2lmKHEpe2ZvcihjLmhhbmRsZXImJihpPWMsYz1pLmhh
bmRsZXIsZT1pLnNlbGVjdG9yKSxjLmd1aWR8fChjLmd1aWQ9ZWEuZ3VpZCsrKSwoZz1xLmV2ZW50
cyl8fChnPXEuZXZlbnRzPXt9KSwoaz1xLmhhbmRsZSl8fChrPXEuaGFuZGxlPWZ1bmN0aW9uKGEp
e3JldHVybiB0eXBlb2YgZWE9PT14YXx8YSYmZWEuZXZlbnQudHJpZ2dlcmVkPT09YS50eXBlP3Zv
aWQgMDplYS5ldmVudC5kaXNwYXRjaC5hcHBseShrLmVsZW0sYXJndW1lbnRzKX0say5lbGVtPWEp
LGI9KGJ8fCIiKS5tYXRjaCh0YSl8fFsiIl0saD1iLmxlbmd0aDtoLS07KWY9SmEuZXhlYyhiW2hd
KXx8W10sbj1wPWZbMV0sbz0oZlsyXXx8IiIpLnNwbGl0KCIuIikuc29ydCgpLG4mJihqPWVhLmV2
ZW50LnNwZWNpYWxbbl18fHt9LG49KGU/ai5kZWxlZ2F0ZVR5cGU6ai5iaW5kVHlwZSl8fG4saj1l
YS5ldmVudC5zcGVjaWFsW25dfHx7fSxsPWVhLmV4dGVuZCh7dHlwZTpuLG9yaWdUeXBlOnAsZGF0
YTpkLGhhbmRsZXI6YyxndWlkOmMuZ3VpZCxzZWxlY3RvcjplLG5lZWRzQ29udGV4dDplJiZlYS5l
eHByLm1hdGNoLm5lZWRzQ29udGV4dC50ZXN0KGUpLG5hbWVzcGFjZTpvLmpvaW4oIi4iKX0saSks
KG09Z1tuXSl8fChtPWdbbl09W10sbS5kZWxlZ2F0ZUNvdW50PTAsai5zZXR1cCYmai5zZXR1cC5j
YWxsKGEsZCxvLGspIT09ITF8fChhLmFkZEV2ZW50TGlzdGVuZXI/YS5hZGRFdmVudExpc3RlbmVy
KG4saywhMSk6YS5hdHRhY2hFdmVudCYmYS5hdHRhY2hFdmVudCgib24iK24saykpKSxqLmFkZCYm
KGouYWRkLmNhbGwoYSxsKSxsLmhhbmRsZXIuZ3VpZHx8KGwuaGFuZGxlci5ndWlkPWMuZ3VpZCkp
LGU/bS5zcGxpY2UobS5kZWxlZ2F0ZUNvdW50KyssMCxsKTptLnB1c2gobCksZWEuZXZlbnQuZ2xv
YmFsW25dPSEwKTthPW51bGx9fSxyZW1vdmU6ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZixnLGgs
aSxqLGssbCxtLG4sbyxwLHE9ZWEuaGFzRGF0YShhKSYmZWEuX2RhdGEoYSk7aWYocSYmKGs9cS5l
dmVudHMpKXtmb3IoYj0oYnx8IiIpLm1hdGNoKHRhKXx8WyIiXSxqPWIubGVuZ3RoO2otLTspaWYo
aD1KYS5leGVjKGJbal0pfHxbXSxuPXA9aFsxXSxvPShoWzJdfHwiIikuc3BsaXQoIi4iKS5zb3J0
KCksbil7Zm9yKGw9ZWEuZXZlbnQuc3BlY2lhbFtuXXx8e30sbj0oZD9sLmRlbGVnYXRlVHlwZTps
LmJpbmRUeXBlKXx8bixtPWtbbl18fFtdLGg9aFsyXSYmbmV3IFJlZ0V4cCgiKF58XFwuKSIrby5q
b2luKCJcXC4oPzouKlxcLnwpIikrIihcXC58JCkiKSxpPWY9bS5sZW5ndGg7Zi0tOylnPW1bZl0s
IWUmJnAhPT1nLm9yaWdUeXBlfHxjJiZjLmd1aWQhPT1nLmd1aWR8fGgmJiFoLnRlc3QoZy5uYW1l
c3BhY2UpfHxkJiZkIT09Zy5zZWxlY3RvciYmKCIqKiIhPT1kfHwhZy5zZWxlY3Rvcil8fChtLnNw
bGljZShmLDEpLGcuc2VsZWN0b3ImJm0uZGVsZWdhdGVDb3VudC0tLGwucmVtb3ZlJiZsLnJlbW92
ZS5jYWxsKGEsZykpO2kmJiFtLmxlbmd0aCYmKGwudGVhcmRvd24mJmwudGVhcmRvd24uY2FsbChh
LG8scS5oYW5kbGUpIT09ITF8fGVhLnJlbW92ZUV2ZW50KGEsbixxLmhhbmRsZSksZGVsZXRlIGtb
bl0pfWVsc2UgZm9yKG4gaW4gayllYS5ldmVudC5yZW1vdmUoYSxuK2Jbal0sYyxkLCEwKTtlYS5p
c0VtcHR5T2JqZWN0KGspJiYoZGVsZXRlIHEuaGFuZGxlLGVhLl9yZW1vdmVEYXRhKGEsImV2ZW50
cyIpKX19LHRyaWdnZXI6ZnVuY3Rpb24oYixjLGQsZSl7dmFyIGYsZyxoLGksaixrLGwsbT1bZHx8
b2FdLG49YmEuY2FsbChiLCJ0eXBlIik/Yi50eXBlOmIsbz1iYS5jYWxsKGIsIm5hbWVzcGFjZSIp
P2IubmFtZXNwYWNlLnNwbGl0KCIuIik6W107aWYoaD1rPWQ9ZHx8b2EsMyE9PWQubm9kZVR5cGUm
JjghPT1kLm5vZGVUeXBlJiYhSWEudGVzdChuK2VhLmV2ZW50LnRyaWdnZXJlZCkmJihuLmluZGV4
T2YoIi4iKT49MCYmKG89bi5zcGxpdCgiLiIpLG49by5zaGlmdCgpLG8uc29ydCgpKSxnPW4uaW5k
ZXhPZigiOiIpPDAmJiJvbiIrbixiPWJbZWEuZXhwYW5kb10/YjpuZXcgZWEuRXZlbnQobiwib2Jq
ZWN0Ij09dHlwZW9mIGImJmIpLGIuaXNUcmlnZ2VyPWU/MjozLGIubmFtZXNwYWNlPW8uam9pbigi
LiIpLGIubmFtZXNwYWNlX3JlPWIubmFtZXNwYWNlP25ldyBSZWdFeHAoIihefFxcLikiK28uam9p
bigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIik6bnVsbCxiLnJlc3VsdD12b2lkIDAsYi50YXJn
ZXR8fChiLnRhcmdldD1kKSxjPW51bGw9PWM/W2JdOmVhLm1ha2VBcnJheShjLFtiXSksaj1lYS5l
dmVudC5zcGVjaWFsW25dfHx7fSxlfHwhai50cmlnZ2VyfHxqLnRyaWdnZXIuYXBwbHkoZCxjKSE9
PSExKSl7aWYoIWUmJiFqLm5vQnViYmxlJiYhZWEuaXNXaW5kb3coZCkpe2ZvcihpPWouZGVsZWdh
dGVUeXBlfHxuLElhLnRlc3QoaStuKXx8KGg9aC5wYXJlbnROb2RlKTtoO2g9aC5wYXJlbnROb2Rl
KW0ucHVzaChoKSxrPWg7az09PShkLm93bmVyRG9jdW1lbnR8fG9hKSYmbS5wdXNoKGsuZGVmYXVs
dFZpZXd8fGsucGFyZW50V2luZG93fHxhKX1mb3IobD0wOyhoPW1bbCsrXSkmJiFiLmlzUHJvcGFn
YXRpb25TdG9wcGVkKCk7KWIudHlwZT1sPjE/aTpqLmJpbmRUeXBlfHxuLGY9KGVhLl9kYXRhKGgs
ImV2ZW50cyIpfHx7fSlbYi50eXBlXSYmZWEuX2RhdGEoaCwiaGFuZGxlIiksZiYmZi5hcHBseSho
LGMpLGY9ZyYmaFtnXSxmJiZmLmFwcGx5JiZlYS5hY2NlcHREYXRhKGgpJiYoYi5yZXN1bHQ9Zi5h
cHBseShoLGMpLGIucmVzdWx0PT09ITEmJmIucHJldmVudERlZmF1bHQoKSk7aWYoYi50eXBlPW4s
IWUmJiFiLmlzRGVmYXVsdFByZXZlbnRlZCgpJiYoIWouX2RlZmF1bHR8fGouX2RlZmF1bHQuYXBw
bHkobS5wb3AoKSxjKT09PSExKSYmZWEuYWNjZXB0RGF0YShkKSYmZyYmZFtuXSYmIWVhLmlzV2lu
ZG93KGQpKXtrPWRbZ10sayYmKGRbZ109bnVsbCksZWEuZXZlbnQudHJpZ2dlcmVkPW47dHJ5e2Rb
bl0oKX1jYXRjaChwKXt9ZWEuZXZlbnQudHJpZ2dlcmVkPXZvaWQgMCxrJiYoZFtnXT1rKX1yZXR1
cm4gYi5yZXN1bHR9fSxkaXNwYXRjaDpmdW5jdGlvbihhKXthPWVhLmV2ZW50LmZpeChhKTt2YXIg
YixjLGQsZSxmLGc9W10saD1YLmNhbGwoYXJndW1lbnRzKSxpPShlYS5fZGF0YSh0aGlzLCJldmVu
dHMiKXx8e30pW2EudHlwZV18fFtdLGo9ZWEuZXZlbnQuc3BlY2lhbFthLnR5cGVdfHx7fTtpZiho
WzBdPWEsYS5kZWxlZ2F0ZVRhcmdldD10aGlzLCFqLnByZURpc3BhdGNofHxqLnByZURpc3BhdGNo
LmNhbGwodGhpcyxhKSE9PSExKXtmb3IoZz1lYS5ldmVudC5oYW5kbGVycy5jYWxsKHRoaXMsYSxp
KSxiPTA7KGU9Z1tiKytdKSYmIWEuaXNQcm9wYWdhdGlvblN0b3BwZWQoKTspZm9yKGEuY3VycmVu
dFRhcmdldD1lLmVsZW0sZj0wOyhkPWUuaGFuZGxlcnNbZisrXSkmJiFhLmlzSW1tZWRpYXRlUHJv
cGFnYXRpb25TdG9wcGVkKCk7KWEubmFtZXNwYWNlX3JlJiYhYS5uYW1lc3BhY2VfcmUudGVzdChk
Lm5hbWVzcGFjZSl8fChhLmhhbmRsZU9iaj1kLGEuZGF0YT1kLmRhdGEsYz0oKGVhLmV2ZW50LnNw
ZWNpYWxbZC5vcmlnVHlwZV18fHt9KS5oYW5kbGV8fGQuaGFuZGxlcikuYXBwbHkoZS5lbGVtLGgp
LHZvaWQgMCE9PWMmJihhLnJlc3VsdD1jKT09PSExJiYoYS5wcmV2ZW50RGVmYXVsdCgpLGEuc3Rv
cFByb3BhZ2F0aW9uKCkpKTtyZXR1cm4gai5wb3N0RGlzcGF0Y2gmJmoucG9zdERpc3BhdGNoLmNh
bGwodGhpcyxhKSxhLnJlc3VsdH19LGhhbmRsZXJzOmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlLGYs
Zz1bXSxoPWIuZGVsZWdhdGVDb3VudCxpPWEudGFyZ2V0O2lmKGgmJmkubm9kZVR5cGUmJighYS5i
dXR0b258fCJjbGljayIhPT1hLnR5cGUpKWZvcig7aSE9dGhpcztpPWkucGFyZW50Tm9kZXx8dGhp
cylpZigxPT09aS5ub2RlVHlwZSYmKGkuZGlzYWJsZWQhPT0hMHx8ImNsaWNrIiE9PWEudHlwZSkp
e2ZvcihlPVtdLGY9MDtoPmY7ZisrKWQ9YltmXSxjPWQuc2VsZWN0b3IrIiAiLHZvaWQgMD09PWVb
Y10mJihlW2NdPWQubmVlZHNDb250ZXh0P2VhKGMsdGhpcykuaW5kZXgoaSk+PTA6ZWEuZmluZChj
LHRoaXMsbnVsbCxbaV0pLmxlbmd0aCksZVtjXSYmZS5wdXNoKGQpO2UubGVuZ3RoJiZnLnB1c2go
e2VsZW06aSxoYW5kbGVyczplfSl9cmV0dXJuIGg8Yi5sZW5ndGgmJmcucHVzaCh7ZWxlbTp0aGlz
LGhhbmRsZXJzOmIuc2xpY2UoaCl9KSxnfSxmaXg6ZnVuY3Rpb24oYSl7aWYoYVtlYS5leHBhbmRv
XSlyZXR1cm4gYTt2YXIgYixjLGQsZT1hLnR5cGUsZj1hLGc9dGhpcy5maXhIb29rc1tlXTtmb3Io
Z3x8KHRoaXMuZml4SG9va3NbZV09Zz1IYS50ZXN0KGUpP3RoaXMubW91c2VIb29rczpHYS50ZXN0
KGUpP3RoaXMua2V5SG9va3M6e30pLGQ9Zy5wcm9wcz90aGlzLnByb3BzLmNvbmNhdChnLnByb3Bz
KTp0aGlzLnByb3BzLGE9bmV3IGVhLkV2ZW50KGYpLGI9ZC5sZW5ndGg7Yi0tOyljPWRbYl0sYVtj
XT1mW2NdO3JldHVybiBhLnRhcmdldHx8KGEudGFyZ2V0PWYuc3JjRWxlbWVudHx8b2EpLDM9PT1h
LnRhcmdldC5ub2RlVHlwZSYmKGEudGFyZ2V0PWEudGFyZ2V0LnBhcmVudE5vZGUpLGEubWV0YUtl
eT0hIWEubWV0YUtleSxnLmZpbHRlcj9nLmZpbHRlcihhLGYpOmF9LHByb3BzOiJhbHRLZXkgYnVi
YmxlcyBjYW5jZWxhYmxlIGN0cmxLZXkgY3VycmVudFRhcmdldCBldmVudFBoYXNlIG1ldGFLZXkg
cmVsYXRlZFRhcmdldCBzaGlmdEtleSB0YXJnZXQgdGltZVN0YW1wIHZpZXcgd2hpY2giLnNwbGl0
KCIgIiksZml4SG9va3M6e30sa2V5SG9va3M6e3Byb3BzOiJjaGFyIGNoYXJDb2RlIGtleSBrZXlD
b2RlIi5zcGxpdCgiICIpLGZpbHRlcjpmdW5jdGlvbihhLGIpe3JldHVybiBudWxsPT1hLndoaWNo
JiYoYS53aGljaD1udWxsIT1iLmNoYXJDb2RlP2IuY2hhckNvZGU6Yi5rZXlDb2RlKSxhfX0sbW91
c2VIb29rczp7cHJvcHM6ImJ1dHRvbiBidXR0b25zIGNsaWVudFggY2xpZW50WSBmcm9tRWxlbWVu
dCBvZmZzZXRYIG9mZnNldFkgcGFnZVggcGFnZVkgc2NyZWVuWCBzY3JlZW5ZIHRvRWxlbWVudCIu
c3BsaXQoIiAiKSxmaWx0ZXI6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGUsZj1iLmJ1dHRvbixnPWIu
ZnJvbUVsZW1lbnQ7cmV0dXJuIG51bGw9PWEucGFnZVgmJm51bGwhPWIuY2xpZW50WCYmKGQ9YS50
YXJnZXQub3duZXJEb2N1bWVudHx8b2EsZT1kLmRvY3VtZW50RWxlbWVudCxjPWQuYm9keSxhLnBh
Z2VYPWIuY2xpZW50WCsoZSYmZS5zY3JvbGxMZWZ0fHxjJiZjLnNjcm9sbExlZnR8fDApLShlJiZl
LmNsaWVudExlZnR8fGMmJmMuY2xpZW50TGVmdHx8MCksYS5wYWdlWT1iLmNsaWVudFkrKGUmJmUu
c2Nyb2xsVG9wfHxjJiZjLnNjcm9sbFRvcHx8MCktKGUmJmUuY2xpZW50VG9wfHxjJiZjLmNsaWVu
dFRvcHx8MCkpLCFhLnJlbGF0ZWRUYXJnZXQmJmcmJihhLnJlbGF0ZWRUYXJnZXQ9Zz09PWEudGFy
Z2V0P2IudG9FbGVtZW50OmcpLGEud2hpY2h8fHZvaWQgMD09PWZ8fChhLndoaWNoPTEmZj8xOjIm
Zj8zOjQmZj8yOjApLGF9fSxzcGVjaWFsOntsb2FkOntub0J1YmJsZTohMH0sZm9jdXM6e3RyaWdn
ZXI6ZnVuY3Rpb24oKXtpZih0aGlzIT09bygpJiZ0aGlzLmZvY3VzKXRyeXtyZXR1cm4gdGhpcy5m
b2N1cygpLCExfWNhdGNoKGEpe319LGRlbGVnYXRlVHlwZToiZm9jdXNpbiJ9LGJsdXI6e3RyaWdn
ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcz09PW8oKSYmdGhpcy5ibHVyPyh0aGlzLmJsdXIoKSwh
MSk6dm9pZCAwfSxkZWxlZ2F0ZVR5cGU6ImZvY3Vzb3V0In0sY2xpY2s6e3RyaWdnZXI6ZnVuY3Rp
b24oKXtyZXR1cm4gZWEubm9kZU5hbWUodGhpcywiaW5wdXQiKSYmImNoZWNrYm94Ij09PXRoaXMu
dHlwZSYmdGhpcy5jbGljaz8odGhpcy5jbGljaygpLCExKTp2b2lkIDB9LF9kZWZhdWx0OmZ1bmN0
aW9uKGEpe3JldHVybiBlYS5ub2RlTmFtZShhLnRhcmdldCwiYSIpfX0sYmVmb3JldW5sb2FkOntw
b3N0RGlzcGF0Y2g6ZnVuY3Rpb24oYSl7dm9pZCAwIT09YS5yZXN1bHQmJmEub3JpZ2luYWxFdmVu
dCYmKGEub3JpZ2luYWxFdmVudC5yZXR1cm5WYWx1ZT1hLnJlc3VsdCl9fX0sc2ltdWxhdGU6ZnVu
Y3Rpb24oYSxiLGMsZCl7dmFyIGU9ZWEuZXh0ZW5kKG5ldyBlYS5FdmVudCxjLHt0eXBlOmEsaXNT
aW11bGF0ZWQ6ITAsb3JpZ2luYWxFdmVudDp7fX0pO2Q/ZWEuZXZlbnQudHJpZ2dlcihlLG51bGws
Yik6ZWEuZXZlbnQuZGlzcGF0Y2guY2FsbChiLGUpLGUuaXNEZWZhdWx0UHJldmVudGVkKCkmJmMu
cHJldmVudERlZmF1bHQoKX19LGVhLnJlbW92ZUV2ZW50PW9hLnJlbW92ZUV2ZW50TGlzdGVuZXI/
ZnVuY3Rpb24oYSxiLGMpe2EucmVtb3ZlRXZlbnRMaXN0ZW5lciYmYS5yZW1vdmVFdmVudExpc3Rl
bmVyKGIsYywhMSl9OmZ1bmN0aW9uKGEsYixjKXt2YXIgZD0ib24iK2I7YS5kZXRhY2hFdmVudCYm
KHR5cGVvZiBhW2RdPT09eGEmJihhW2RdPW51bGwpLGEuZGV0YWNoRXZlbnQoZCxjKSl9LGVhLkV2
ZW50PWZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBlYS5FdmVudD8oYSYmYS50
eXBlPyh0aGlzLm9yaWdpbmFsRXZlbnQ9YSx0aGlzLnR5cGU9YS50eXBlLHRoaXMuaXNEZWZhdWx0
UHJldmVudGVkPWEuZGVmYXVsdFByZXZlbnRlZHx8dm9pZCAwPT09YS5kZWZhdWx0UHJldmVudGVk
JiZhLnJldHVyblZhbHVlPT09ITE/bTpuKTp0aGlzLnR5cGU9YSxiJiZlYS5leHRlbmQodGhpcyxi
KSx0aGlzLnRpbWVTdGFtcD1hJiZhLnRpbWVTdGFtcHx8ZWEubm93KCksdm9pZCh0aGlzW2VhLmV4
cGFuZG9dPSEwKSk6bmV3IGVhLkV2ZW50KGEsYil9LGVhLkV2ZW50LnByb3RvdHlwZT17aXNEZWZh
dWx0UHJldmVudGVkOm4saXNQcm9wYWdhdGlvblN0b3BwZWQ6bixpc0ltbWVkaWF0ZVByb3BhZ2F0
aW9uU3RvcHBlZDpuLHByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5h
bEV2ZW50O3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPW0sYSYmKGEucHJldmVudERlZmF1bHQ/YS5w
cmV2ZW50RGVmYXVsdCgpOmEucmV0dXJuVmFsdWU9ITEpfSxzdG9wUHJvcGFnYXRpb246ZnVuY3Rp
b24oKXt2YXIgYT10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1t
LGEmJihhLnN0b3BQcm9wYWdhdGlvbiYmYS5zdG9wUHJvcGFnYXRpb24oKSxhLmNhbmNlbEJ1YmJs
ZT0hMCl9LHN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciBhPXRoaXMub3Jp
Z2luYWxFdmVudDt0aGlzLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkPW0sYSYmYS5zdG9w
SW1tZWRpYXRlUHJvcGFnYXRpb24mJmEuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksdGhpcy5z
dG9wUHJvcGFnYXRpb24oKX19LGVhLmVhY2goe21vdXNlZW50ZXI6Im1vdXNlb3ZlciIsbW91c2Vs
ZWF2ZToibW91c2VvdXQiLHBvaW50ZXJlbnRlcjoicG9pbnRlcm92ZXIiLHBvaW50ZXJsZWF2ZToi
cG9pbnRlcm91dCJ9LGZ1bmN0aW9uKGEsYil7ZWEuZXZlbnQuc3BlY2lhbFthXT17ZGVsZWdhdGVU
eXBlOmIsYmluZFR5cGU6YixoYW5kbGU6ZnVuY3Rpb24oYSl7dmFyIGMsZD10aGlzLGU9YS5yZWxh
dGVkVGFyZ2V0LGY9YS5oYW5kbGVPYmo7cmV0dXJuIGUmJihlPT09ZHx8ZWEuY29udGFpbnMoZCxl
KSl8fChhLnR5cGU9Zi5vcmlnVHlwZSxjPWYuaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyks
YS50eXBlPWIpLGN9fX0pLGNhLnN1Ym1pdEJ1YmJsZXN8fChlYS5ldmVudC5zcGVjaWFsLnN1Ym1p
dD17c2V0dXA6ZnVuY3Rpb24oKXtyZXR1cm4gZWEubm9kZU5hbWUodGhpcywiZm9ybSIpPyExOnZv
aWQgZWEuZXZlbnQuYWRkKHRoaXMsImNsaWNrLl9zdWJtaXQga2V5cHJlc3MuX3N1Ym1pdCIsZnVu
Y3Rpb24oYSl7dmFyIGI9YS50YXJnZXQsYz1lYS5ub2RlTmFtZShiLCJpbnB1dCIpfHxlYS5ub2Rl
TmFtZShiLCJidXR0b24iKT9iLmZvcm06dm9pZCAwO2MmJiFlYS5fZGF0YShjLCJzdWJtaXRCdWJi
bGVzIikmJihlYS5ldmVudC5hZGQoYywic3VibWl0Ll9zdWJtaXQiLGZ1bmN0aW9uKGEpe2EuX3N1
Ym1pdF9idWJibGU9ITB9KSxlYS5fZGF0YShjLCJzdWJtaXRCdWJibGVzIiwhMCkpfSl9LHBvc3RE
aXNwYXRjaDpmdW5jdGlvbihhKXthLl9zdWJtaXRfYnViYmxlJiYoZGVsZXRlIGEuX3N1Ym1pdF9i
dWJibGUsdGhpcy5wYXJlbnROb2RlJiYhYS5pc1RyaWdnZXImJmVhLmV2ZW50LnNpbXVsYXRlKCJz
dWJtaXQiLHRoaXMucGFyZW50Tm9kZSxhLCEwKSl9LHRlYXJkb3duOmZ1bmN0aW9uKCl7cmV0dXJu
IGVhLm5vZGVOYW1lKHRoaXMsImZvcm0iKT8hMTp2b2lkIGVhLmV2ZW50LnJlbW92ZSh0aGlzLCIu
X3N1Ym1pdCIpfX0pLGNhLmNoYW5nZUJ1YmJsZXN8fChlYS5ldmVudC5zcGVjaWFsLmNoYW5nZT17
c2V0dXA6ZnVuY3Rpb24oKXtyZXR1cm4gRmEudGVzdCh0aGlzLm5vZGVOYW1lKT8oImNoZWNrYm94
IiE9PXRoaXMudHlwZSYmInJhZGlvIiE9PXRoaXMudHlwZXx8KGVhLmV2ZW50LmFkZCh0aGlzLCJw
cm9wZXJ0eWNoYW5nZS5fY2hhbmdlIixmdW5jdGlvbihhKXsiY2hlY2tlZCI9PT1hLm9yaWdpbmFs
RXZlbnQucHJvcGVydHlOYW1lJiYodGhpcy5fanVzdF9jaGFuZ2VkPSEwKX0pLGVhLmV2ZW50LmFk
ZCh0aGlzLCJjbGljay5fY2hhbmdlIixmdW5jdGlvbihhKXt0aGlzLl9qdXN0X2NoYW5nZWQmJiFh
LmlzVHJpZ2dlciYmKHRoaXMuX2p1c3RfY2hhbmdlZD0hMSksZWEuZXZlbnQuc2ltdWxhdGUoImNo
YW5nZSIsdGhpcyxhLCEwKX0pKSwhMSk6dm9pZCBlYS5ldmVudC5hZGQodGhpcywiYmVmb3JlYWN0
aXZhdGUuX2NoYW5nZSIsZnVuY3Rpb24oYSl7dmFyIGI9YS50YXJnZXQ7RmEudGVzdChiLm5vZGVO
YW1lKSYmIWVhLl9kYXRhKGIsImNoYW5nZUJ1YmJsZXMiKSYmKGVhLmV2ZW50LmFkZChiLCJjaGFu
Z2UuX2NoYW5nZSIsZnVuY3Rpb24oYSl7IXRoaXMucGFyZW50Tm9kZXx8YS5pc1NpbXVsYXRlZHx8
YS5pc1RyaWdnZXJ8fGVhLmV2ZW50LnNpbXVsYXRlKCJjaGFuZ2UiLHRoaXMucGFyZW50Tm9kZSxh
LCEwKX0pLGVhLl9kYXRhKGIsImNoYW5nZUJ1YmJsZXMiLCEwKSl9KX0saGFuZGxlOmZ1bmN0aW9u
KGEpe3ZhciBiPWEudGFyZ2V0O3JldHVybiB0aGlzIT09Ynx8YS5pc1NpbXVsYXRlZHx8YS5pc1Ry
aWdnZXJ8fCJyYWRpbyIhPT1iLnR5cGUmJiJjaGVja2JveCIhPT1iLnR5cGU/YS5oYW5kbGVPYmou
aGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk6dm9pZCAwfSx0ZWFyZG93bjpmdW5jdGlvbigp
e3JldHVybiBlYS5ldmVudC5yZW1vdmUodGhpcywiLl9jaGFuZ2UiKSwhRmEudGVzdCh0aGlzLm5v
ZGVOYW1lKX19KSxjYS5mb2N1c2luQnViYmxlc3x8ZWEuZWFjaCh7Zm9jdXM6ImZvY3VzaW4iLGJs
dXI6ImZvY3Vzb3V0In0sZnVuY3Rpb24oYSxiKXt2YXIgYz1mdW5jdGlvbihhKXtlYS5ldmVudC5z
aW11bGF0ZShiLGEudGFyZ2V0LGVhLmV2ZW50LmZpeChhKSwhMCl9O2VhLmV2ZW50LnNwZWNpYWxb
Yl09e3NldHVwOmZ1bmN0aW9uKCl7dmFyIGQ9dGhpcy5vd25lckRvY3VtZW50fHx0aGlzLGU9ZWEu
X2RhdGEoZCxiKTtlfHxkLmFkZEV2ZW50TGlzdGVuZXIoYSxjLCEwKSxlYS5fZGF0YShkLGIsKGV8
fDApKzEpfSx0ZWFyZG93bjpmdW5jdGlvbigpe3ZhciBkPXRoaXMub3duZXJEb2N1bWVudHx8dGhp
cyxlPWVhLl9kYXRhKGQsYiktMTtlP2VhLl9kYXRhKGQsYixlKTooZC5yZW1vdmVFdmVudExpc3Rl
bmVyKGEsYywhMCksZWEuX3JlbW92ZURhdGEoZCxiKSl9fX0pLGVhLmZuLmV4dGVuZCh7b246ZnVu
Y3Rpb24oYSxiLGMsZCxlKXt2YXIgZixnO2lmKCJvYmplY3QiPT10eXBlb2YgYSl7InN0cmluZyIh
PXR5cGVvZiBiJiYoYz1jfHxiLGI9dm9pZCAwKTtmb3IoZiBpbiBhKXRoaXMub24oZixiLGMsYVtm
XSxlKTtyZXR1cm4gdGhpc31pZihudWxsPT1jJiZudWxsPT1kPyhkPWIsYz1iPXZvaWQgMCk6bnVs
bD09ZCYmKCJzdHJpbmciPT10eXBlb2YgYj8oZD1jLGM9dm9pZCAwKTooZD1jLGM9YixiPXZvaWQg
MCkpLGQ9PT0hMSlkPW47ZWxzZSBpZighZClyZXR1cm4gdGhpcztyZXR1cm4gMT09PWUmJihnPWQs
ZD1mdW5jdGlvbihhKXtyZXR1cm4gZWEoKS5vZmYoYSksZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9
LGQuZ3VpZD1nLmd1aWR8fChnLmd1aWQ9ZWEuZ3VpZCsrKSksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7
ZWEuZXZlbnQuYWRkKHRoaXMsYSxkLGMsYil9KX0sb25lOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVy
biB0aGlzLm9uKGEsYixjLGQsMSl9LG9mZjpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZTtpZihhJiZh
LnByZXZlbnREZWZhdWx0JiZhLmhhbmRsZU9iailyZXR1cm4gZD1hLmhhbmRsZU9iaixlYShhLmRl
bGVnYXRlVGFyZ2V0KS5vZmYoZC5uYW1lc3BhY2U/ZC5vcmlnVHlwZSsiLiIrZC5uYW1lc3BhY2U6
ZC5vcmlnVHlwZSxkLnNlbGVjdG9yLGQuaGFuZGxlciksdGhpcztpZigib2JqZWN0Ij09dHlwZW9m
IGEpe2ZvcihlIGluIGEpdGhpcy5vZmYoZSxiLGFbZV0pO3JldHVybiB0aGlzfXJldHVybiBiIT09
ITEmJiJmdW5jdGlvbiIhPXR5cGVvZiBifHwoYz1iLGI9dm9pZCAwKSxjPT09ITEmJihjPW4pLHRo
aXMuZWFjaChmdW5jdGlvbigpe2VhLmV2ZW50LnJlbW92ZSh0aGlzLGEsYyxiKX0pfSx0cmlnZ2Vy
OmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2VhLmV2ZW50LnRyaWdn
ZXIoYSxiLHRoaXMpfSl9LHRyaWdnZXJIYW5kbGVyOmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpc1sw
XTtyZXR1cm4gYz9lYS5ldmVudC50cmlnZ2VyKGEsYixjLCEwKTp2b2lkIDB9fSk7dmFyIEthPSJh
YmJyfGFydGljbGV8YXNpZGV8YXVkaW98YmRpfGNhbnZhc3xkYXRhfGRhdGFsaXN0fGRldGFpbHN8
ZmlnY2FwdGlvbnxmaWd1cmV8Zm9vdGVyfGhlYWRlcnxoZ3JvdXB8bWFya3xtZXRlcnxuYXZ8b3V0
cHV0fHByb2dyZXNzfHNlY3Rpb258c3VtbWFyeXx0aW1lfHZpZGVvIixMYT0vIGpRdWVyeVxkKz0i
KD86bnVsbHxcZCspIi9nLE1hPW5ldyBSZWdFeHAoIjwoPzoiK0thKyIpW1xccy8+XSIsImkiKSxO
YT0vXlxzKy8sT2E9LzwoPyFhcmVhfGJyfGNvbHxlbWJlZHxocnxpbWd8aW5wdXR8bGlua3xtZXRh
fHBhcmFtKSgoW1x3Ol0rKVtePl0qKVwvPi9naSxQYT0vPChbXHc6XSspLyxRYT0vPHRib2R5L2ks
UmE9Lzx8JiM/XHcrOy8sU2E9LzwoPzpzY3JpcHR8c3R5bGV8bGluaykvaSxUYT0vY2hlY2tlZFxz
Kig/OltePV18PVxzKi5jaGVja2VkLikvaSxVYT0vXiR8XC8oPzpqYXZhfGVjbWEpc2NyaXB0L2ks
VmE9L150cnVlXC8oLiopLyxXYT0vXlxzKjwhKD86XFtDREFUQVxbfC0tKXwoPzpcXVxdfC0tKT5c
cyokL2csWGE9e29wdGlvbjpbMSwiPHNlbGVjdCBtdWx0aXBsZT0nbXVsdGlwbGUnPiIsIjwvc2Vs
ZWN0PiJdLGxlZ2VuZDpbMSwiPGZpZWxkc2V0PiIsIjwvZmllbGRzZXQ+Il0sYXJlYTpbMSwiPG1h
cD4iLCI8L21hcD4iXSxwYXJhbTpbMSwiPG9iamVjdD4iLCI8L29iamVjdD4iXSx0aGVhZDpbMSwi
PHRhYmxlPiIsIjwvdGFibGU+Il0sdHI6WzIsIjx0YWJsZT48dGJvZHk+IiwiPC90Ym9keT48L3Rh
YmxlPiJdLGNvbDpbMiwiPHRhYmxlPjx0Ym9keT48L3Rib2R5Pjxjb2xncm91cD4iLCI8L2NvbGdy
b3VwPjwvdGFibGU+Il0sdGQ6WzMsIjx0YWJsZT48dGJvZHk+PHRyPiIsIjwvdHI+PC90Ym9keT48
L3RhYmxlPiJdLF9kZWZhdWx0OmNhLmh0bWxTZXJpYWxpemU/WzAsIiIsIiJdOlsxLCJYPGRpdj4i
LCI8L2Rpdj4iXX0sWWE9cChvYSksWmE9WWEuYXBwZW5kQ2hpbGQob2EuY3JlYXRlRWxlbWVudCgi
ZGl2IikpO1hhLm9wdGdyb3VwPVhhLm9wdGlvbixYYS50Ym9keT1YYS50Zm9vdD1YYS5jb2xncm91
cD1YYS5jYXB0aW9uPVhhLnRoZWFkLFhhLnRoPVhhLnRkLGVhLmV4dGVuZCh7Y2xvbmU6ZnVuY3Rp
b24oYSxiLGMpe3ZhciBkLGUsZixnLGgsaT1lYS5jb250YWlucyhhLm93bmVyRG9jdW1lbnQsYSk7
aWYoY2EuaHRtbDVDbG9uZXx8ZWEuaXNYTUxEb2MoYSl8fCFNYS50ZXN0KCI8IithLm5vZGVOYW1l
KyI+Iik/Zj1hLmNsb25lTm9kZSghMCk6KFphLmlubmVySFRNTD1hLm91dGVySFRNTCxaYS5yZW1v
dmVDaGlsZChmPVphLmZpcnN0Q2hpbGQpKSwhKGNhLm5vQ2xvbmVFdmVudCYmY2Eubm9DbG9uZUNo
ZWNrZWR8fDEhPT1hLm5vZGVUeXBlJiYxMSE9PWEubm9kZVR5cGV8fGVhLmlzWE1MRG9jKGEpKSlm
b3IoZD1xKGYpLGg9cShhKSxnPTA7bnVsbCE9KGU9aFtnXSk7KytnKWRbZ10mJngoZSxkW2ddKTtp
ZihiKWlmKGMpZm9yKGg9aHx8cShhKSxkPWR8fHEoZiksZz0wO251bGwhPShlPWhbZ10pO2crKyl3
KGUsZFtnXSk7ZWxzZSB3KGEsZik7cmV0dXJuIGQ9cShmLCJzY3JpcHQiKSxkLmxlbmd0aD4wJiZ2
KGQsIWkmJnEoYSwic2NyaXB0IikpLGQ9aD1lPW51bGwsZn0sYnVpbGRGcmFnbWVudDpmdW5jdGlv
bihhLGIsYyxkKXtmb3IodmFyIGUsZixnLGgsaSxqLGssbD1hLmxlbmd0aCxtPXAoYiksbj1bXSxv
PTA7bD5vO28rKylpZihmPWFbb10sZnx8MD09PWYpaWYoIm9iamVjdCI9PT1lYS50eXBlKGYpKWVh
Lm1lcmdlKG4sZi5ub2RlVHlwZT9bZl06Zik7ZWxzZSBpZihSYS50ZXN0KGYpKXtmb3IoaD1ofHxt
LmFwcGVuZENoaWxkKGIuY3JlYXRlRWxlbWVudCgiZGl2IikpLGk9KFBhLmV4ZWMoZil8fFsiIiwi
Il0pWzFdLnRvTG93ZXJDYXNlKCksaz1YYVtpXXx8WGEuX2RlZmF1bHQsaC5pbm5lckhUTUw9a1sx
XStmLnJlcGxhY2UoT2EsIjwkMT48LyQyPiIpK2tbMl0sZT1rWzBdO2UtLTspaD1oLmxhc3RDaGls
ZDtpZighY2EubGVhZGluZ1doaXRlc3BhY2UmJk5hLnRlc3QoZikmJm4ucHVzaChiLmNyZWF0ZVRl
eHROb2RlKE5hLmV4ZWMoZilbMF0pKSwhY2EudGJvZHkpZm9yKGY9InRhYmxlIiE9PWl8fFFhLnRl
c3QoZik/Ijx0YWJsZT4iIT09a1sxXXx8UWEudGVzdChmKT8wOmg6aC5maXJzdENoaWxkLGU9ZiYm
Zi5jaGlsZE5vZGVzLmxlbmd0aDtlLS07KWVhLm5vZGVOYW1lKGo9Zi5jaGlsZE5vZGVzW2VdLCJ0
Ym9keSIpJiYhai5jaGlsZE5vZGVzLmxlbmd0aCYmZi5yZW1vdmVDaGlsZChqKTtmb3IoZWEubWVy
Z2UobixoLmNoaWxkTm9kZXMpLGgudGV4dENvbnRlbnQ9IiI7aC5maXJzdENoaWxkOyloLnJlbW92
ZUNoaWxkKGguZmlyc3RDaGlsZCk7aD1tLmxhc3RDaGlsZH1lbHNlIG4ucHVzaChiLmNyZWF0ZVRl
eHROb2RlKGYpKTtmb3IoaCYmbS5yZW1vdmVDaGlsZChoKSxjYS5hcHBlbmRDaGVja2VkfHxlYS5n
cmVwKHEobiwiaW5wdXQiKSxyKSxvPTA7Zj1uW28rK107KWlmKCghZHx8LTE9PT1lYS5pbkFycmF5
KGYsZCkpJiYoZz1lYS5jb250YWlucyhmLm93bmVyRG9jdW1lbnQsZiksaD1xKG0uYXBwZW5kQ2hp
bGQoZiksInNjcmlwdCIpLGcmJnYoaCksYykpZm9yKGU9MDtmPWhbZSsrXTspVWEudGVzdChmLnR5
cGV8fCIiKSYmYy5wdXNoKGYpO3JldHVybiBoPW51bGwsbX0sY2xlYW5EYXRhOmZ1bmN0aW9uKGEs
Yil7Zm9yKHZhciBjLGQsZSxmLGc9MCxoPWVhLmV4cGFuZG8saT1lYS5jYWNoZSxqPWNhLmRlbGV0
ZUV4cGFuZG8saz1lYS5ldmVudC5zcGVjaWFsO251bGwhPShjPWFbZ10pO2crKylpZigoYnx8ZWEu
YWNjZXB0RGF0YShjKSkmJihlPWNbaF0sZj1lJiZpW2VdKSl7aWYoZi5ldmVudHMpZm9yKGQgaW4g
Zi5ldmVudHMpa1tkXT9lYS5ldmVudC5yZW1vdmUoYyxkKTplYS5yZW1vdmVFdmVudChjLGQsZi5o
YW5kbGUpO2lbZV0mJihkZWxldGUgaVtlXSxqP2RlbGV0ZSBjW2hdOnR5cGVvZiBjLnJlbW92ZUF0
dHJpYnV0ZSE9PXhhP2MucmVtb3ZlQXR0cmlidXRlKGgpOmNbaF09bnVsbCxXLnB1c2goZSkpfX19
KSxlYS5mbi5leHRlbmQoe3RleHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIERhKHRoaXMsZnVuY3Rpb24o
YSl7cmV0dXJuIHZvaWQgMD09PWE/ZWEudGV4dCh0aGlzKTp0aGlzLmVtcHR5KCkuYXBwZW5kKCh0
aGlzWzBdJiZ0aGlzWzBdLm93bmVyRG9jdW1lbnR8fG9hKS5jcmVhdGVUZXh0Tm9kZShhKSl9LG51
bGwsYSxhcmd1bWVudHMubGVuZ3RoKX0sYXBwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9t
TWFuaXAoYXJndW1lbnRzLGZ1bmN0aW9uKGEpe2lmKDE9PT10aGlzLm5vZGVUeXBlfHwxMT09PXRo
aXMubm9kZVR5cGV8fDk9PT10aGlzLm5vZGVUeXBlKXt2YXIgYj1zKHRoaXMsYSk7Yi5hcHBlbmRD
aGlsZChhKX19KX0scHJlcGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3Vt
ZW50cyxmdW5jdGlvbihhKXtpZigxPT09dGhpcy5ub2RlVHlwZXx8MTE9PT10aGlzLm5vZGVUeXBl
fHw5PT09dGhpcy5ub2RlVHlwZSl7dmFyIGI9cyh0aGlzLGEpO2IuaW5zZXJ0QmVmb3JlKGEsYi5m
aXJzdENoaWxkKX19KX0sYmVmb3JlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJn
dW1lbnRzLGZ1bmN0aW9uKGEpe3RoaXMucGFyZW50Tm9kZSYmdGhpcy5wYXJlbnROb2RlLmluc2Vy
dEJlZm9yZShhLHRoaXMpfSl9LGFmdGVyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tTWFuaXAo
YXJndW1lbnRzLGZ1bmN0aW9uKGEpe3RoaXMucGFyZW50Tm9kZSYmdGhpcy5wYXJlbnROb2RlLmlu
c2VydEJlZm9yZShhLHRoaXMubmV4dFNpYmxpbmcpfSl9LHJlbW92ZTpmdW5jdGlvbihhLGIpe2Zv
cih2YXIgYyxkPWE/ZWEuZmlsdGVyKGEsdGhpcyk6dGhpcyxlPTA7bnVsbCE9KGM9ZFtlXSk7ZSsr
KWJ8fDEhPT1jLm5vZGVUeXBlfHxlYS5jbGVhbkRhdGEocShjKSksYy5wYXJlbnROb2RlJiYoYiYm
ZWEuY29udGFpbnMoYy5vd25lckRvY3VtZW50LGMpJiZ2KHEoYywic2NyaXB0IikpLGMucGFyZW50
Tm9kZS5yZW1vdmVDaGlsZChjKSk7cmV0dXJuIHRoaXN9LGVtcHR5OmZ1bmN0aW9uKCl7Zm9yKHZh
ciBhLGI9MDtudWxsIT0oYT10aGlzW2JdKTtiKyspe2ZvcigxPT09YS5ub2RlVHlwZSYmZWEuY2xl
YW5EYXRhKHEoYSwhMSkpO2EuZmlyc3RDaGlsZDspYS5yZW1vdmVDaGlsZChhLmZpcnN0Q2hpbGQp
O2Eub3B0aW9ucyYmZWEubm9kZU5hbWUoYSwic2VsZWN0IikmJihhLm9wdGlvbnMubGVuZ3RoPTAp
fXJldHVybiB0aGlzfSxjbG9uZTpmdW5jdGlvbihhLGIpe3JldHVybiBhPW51bGw9PWE/ITE6YSxi
PW51bGw9PWI/YTpiLHRoaXMubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIGVhLmNsb25lKHRoaXMsYSxi
KX0pfSxodG1sOmZ1bmN0aW9uKGEpe3JldHVybiBEYSh0aGlzLGZ1bmN0aW9uKGEpe3ZhciBiPXRo
aXNbMF18fHt9LGM9MCxkPXRoaXMubGVuZ3RoO2lmKHZvaWQgMD09PWEpcmV0dXJuIDE9PT1iLm5v
ZGVUeXBlP2IuaW5uZXJIVE1MLnJlcGxhY2UoTGEsIiIpOnZvaWQgMDtpZigic3RyaW5nIj09dHlw
ZW9mIGEmJiFTYS50ZXN0KGEpJiYoY2EuaHRtbFNlcmlhbGl6ZXx8IU1hLnRlc3QoYSkpJiYoY2Eu
bGVhZGluZ1doaXRlc3BhY2V8fCFOYS50ZXN0KGEpKSYmIVhhWyhQYS5leGVjKGEpfHxbIiIsIiJd
KVsxXS50b0xvd2VyQ2FzZSgpXSl7YT1hLnJlcGxhY2UoT2EsIjwkMT48LyQyPiIpO3RyeXtmb3Io
O2Q+YztjKyspYj10aGlzW2NdfHx7fSwxPT09Yi5ub2RlVHlwZSYmKGVhLmNsZWFuRGF0YShxKGIs
ITEpKSxiLmlubmVySFRNTD1hKTtiPTB9Y2F0Y2goZSl7fX1iJiZ0aGlzLmVtcHR5KCkuYXBwZW5k
KGEpfSxudWxsLGEsYXJndW1lbnRzLmxlbmd0aCl9LHJlcGxhY2VXaXRoOmZ1bmN0aW9uKCl7dmFy
IGE9YXJndW1lbnRzWzBdO3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyxmdW5jdGlvbihi
KXthPXRoaXMucGFyZW50Tm9kZSxlYS5jbGVhbkRhdGEocSh0aGlzKSksYSYmYS5yZXBsYWNlQ2hp
bGQoYix0aGlzKX0pLGEmJihhLmxlbmd0aHx8YS5ub2RlVHlwZSk/dGhpczp0aGlzLnJlbW92ZSgp
fSxkZXRhY2g6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucmVtb3ZlKGEsITApfSxkb21NYW5pcDpm
dW5jdGlvbihhLGIpe2E9WS5hcHBseShbXSxhKTt2YXIgYyxkLGUsZixnLGgsaT0wLGo9dGhpcy5s
ZW5ndGgsaz10aGlzLGw9ai0xLG09YVswXSxuPWVhLmlzRnVuY3Rpb24obSk7aWYobnx8aj4xJiYi
c3RyaW5nIj09dHlwZW9mIG0mJiFjYS5jaGVja0Nsb25lJiZUYS50ZXN0KG0pKXJldHVybiB0aGlz
LmVhY2goZnVuY3Rpb24oYyl7dmFyIGQ9ay5lcShjKTtuJiYoYVswXT1tLmNhbGwodGhpcyxjLGQu
aHRtbCgpKSksZC5kb21NYW5pcChhLGIpfSk7aWYoaiYmKGg9ZWEuYnVpbGRGcmFnbWVudChhLHRo
aXNbMF0ub3duZXJEb2N1bWVudCwhMSx0aGlzKSxjPWguZmlyc3RDaGlsZCwxPT09aC5jaGlsZE5v
ZGVzLmxlbmd0aCYmKGg9YyksYykpe2ZvcihmPWVhLm1hcChxKGgsInNjcmlwdCIpLHQpLGU9Zi5s
ZW5ndGg7aj5pO2krKylkPWgsaSE9PWwmJihkPWVhLmNsb25lKGQsITAsITApLGUmJmVhLm1lcmdl
KGYscShkLCJzY3JpcHQiKSkpLGIuY2FsbCh0aGlzW2ldLGQsaSk7aWYoZSlmb3IoZz1mW2YubGVu
Z3RoLTFdLm93bmVyRG9jdW1lbnQsZWEubWFwKGYsdSksaT0wO2U+aTtpKyspZD1mW2ldLFVhLnRl
c3QoZC50eXBlfHwiIikmJiFlYS5fZGF0YShkLCJnbG9iYWxFdmFsIikmJmVhLmNvbnRhaW5zKGcs
ZCkmJihkLnNyYz9lYS5fZXZhbFVybCYmZWEuX2V2YWxVcmwoZC5zcmMpOmVhLmdsb2JhbEV2YWwo
KGQudGV4dHx8ZC50ZXh0Q29udGVudHx8ZC5pbm5lckhUTUx8fCIiKS5yZXBsYWNlKFdhLCIiKSkp
OwpoPWM9bnVsbH1yZXR1cm4gdGhpc319KSxlYS5lYWNoKHthcHBlbmRUbzoiYXBwZW5kIixwcmVw
ZW5kVG86InByZXBlbmQiLGluc2VydEJlZm9yZToiYmVmb3JlIixpbnNlcnRBZnRlcjoiYWZ0ZXIi
LHJlcGxhY2VBbGw6InJlcGxhY2VXaXRoIn0sZnVuY3Rpb24oYSxiKXtlYS5mblthXT1mdW5jdGlv
bihhKXtmb3IodmFyIGMsZD0wLGU9W10sZj1lYShhKSxnPWYubGVuZ3RoLTE7Zz49ZDtkKyspYz1k
PT09Zz90aGlzOnRoaXMuY2xvbmUoITApLGVhKGZbZF0pW2JdKGMpLFouYXBwbHkoZSxjLmdldCgp
KTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soZSl9fSk7dmFyICRhLF9hPXt9OyFmdW5jdGlvbigpe3Zh
ciBhO2NhLnNocmlua1dyYXBCbG9ja3M9ZnVuY3Rpb24oKXtpZihudWxsIT1hKXJldHVybiBhO2E9
ITE7dmFyIGIsYyxkO3JldHVybiBjPW9hLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF0s
YyYmYy5zdHlsZT8oYj1vYS5jcmVhdGVFbGVtZW50KCJkaXYiKSxkPW9hLmNyZWF0ZUVsZW1lbnQo
ImRpdiIpLGQuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyOjA7d2lkdGg6
MDtoZWlnaHQ6MDt0b3A6MDtsZWZ0Oi05OTk5cHgiLGMuYXBwZW5kQ2hpbGQoZCkuYXBwZW5kQ2hp
bGQoYiksdHlwZW9mIGIuc3R5bGUuem9vbSE9PXhhJiYoYi5zdHlsZS5jc3NUZXh0PSItd2Via2l0
LWJveC1zaXppbmc6Y29udGVudC1ib3g7LW1vei1ib3gtc2l6aW5nOmNvbnRlbnQtYm94O2JveC1z
aXppbmc6Y29udGVudC1ib3g7ZGlzcGxheTpibG9jazttYXJnaW46MDtib3JkZXI6MDtwYWRkaW5n
OjFweDt3aWR0aDoxcHg7em9vbToxIixiLmFwcGVuZENoaWxkKG9hLmNyZWF0ZUVsZW1lbnQoImRp
diIpKS5zdHlsZS53aWR0aD0iNXB4IixhPTMhPT1iLm9mZnNldFdpZHRoKSxjLnJlbW92ZUNoaWxk
KGQpLGEpOnZvaWQgMH19KCk7dmFyIGFiLGJiLGNiPS9ebWFyZ2luLyxkYj1uZXcgUmVnRXhwKCJe
KCIrQWErIikoPyFweClbYS16JV0rJCIsImkiKSxlYj0vXih0b3B8cmlnaHR8Ym90dG9tfGxlZnQp
JC87YS5nZXRDb21wdXRlZFN0eWxlPyhhYj1mdW5jdGlvbihiKXtyZXR1cm4gYi5vd25lckRvY3Vt
ZW50LmRlZmF1bHRWaWV3Lm9wZW5lcj9iLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29t
cHV0ZWRTdHlsZShiLG51bGwpOmEuZ2V0Q29tcHV0ZWRTdHlsZShiLG51bGwpfSxiYj1mdW5jdGlv
bihhLGIsYyl7dmFyIGQsZSxmLGcsaD1hLnN0eWxlO3JldHVybiBjPWN8fGFiKGEpLGc9Yz9jLmdl
dFByb3BlcnR5VmFsdWUoYil8fGNbYl06dm9pZCAwLGMmJigiIiE9PWd8fGVhLmNvbnRhaW5zKGEu
b3duZXJEb2N1bWVudCxhKXx8KGc9ZWEuc3R5bGUoYSxiKSksZGIudGVzdChnKSYmY2IudGVzdChi
KSYmKGQ9aC53aWR0aCxlPWgubWluV2lkdGgsZj1oLm1heFdpZHRoLGgubWluV2lkdGg9aC5tYXhX
aWR0aD1oLndpZHRoPWcsZz1jLndpZHRoLGgud2lkdGg9ZCxoLm1pbldpZHRoPWUsaC5tYXhXaWR0
aD1mKSksdm9pZCAwPT09Zz9nOmcrIiJ9KTpvYS5kb2N1bWVudEVsZW1lbnQuY3VycmVudFN0eWxl
JiYoYWI9ZnVuY3Rpb24oYSl7cmV0dXJuIGEuY3VycmVudFN0eWxlfSxiYj1mdW5jdGlvbihhLGIs
Yyl7dmFyIGQsZSxmLGcsaD1hLnN0eWxlO3JldHVybiBjPWN8fGFiKGEpLGc9Yz9jW2JdOnZvaWQg
MCxudWxsPT1nJiZoJiZoW2JdJiYoZz1oW2JdKSxkYi50ZXN0KGcpJiYhZWIudGVzdChiKSYmKGQ9
aC5sZWZ0LGU9YS5ydW50aW1lU3R5bGUsZj1lJiZlLmxlZnQsZiYmKGUubGVmdD1hLmN1cnJlbnRT
dHlsZS5sZWZ0KSxoLmxlZnQ9ImZvbnRTaXplIj09PWI/IjFlbSI6ZyxnPWgucGl4ZWxMZWZ0KyJw
eCIsaC5sZWZ0PWQsZiYmKGUubGVmdD1mKSksdm9pZCAwPT09Zz9nOmcrIiJ8fCJhdXRvIn0pLGZ1
bmN0aW9uKCl7ZnVuY3Rpb24gYigpe3ZhciBiLGMsZCxlO2M9b2EuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoImJvZHkiKVswXSxjJiZjLnN0eWxlJiYoYj1vYS5jcmVhdGVFbGVtZW50KCJkaXYiKSxkPW9h
LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGQuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7
Ym9yZGVyOjA7d2lkdGg6MDtoZWlnaHQ6MDt0b3A6MDtsZWZ0Oi05OTk5cHgiLGMuYXBwZW5kQ2hp
bGQoZCkuYXBwZW5kQ2hpbGQoYiksYi5zdHlsZS5jc3NUZXh0PSItd2Via2l0LWJveC1zaXppbmc6
Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1i
b3g7ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOjElO3RvcDoxJTtib3JkZXI6MXB4O3BhZGRpbmc6
MXB4O3dpZHRoOjRweDtwb3NpdGlvbjphYnNvbHV0ZSIsZj1nPSExLGk9ITAsYS5nZXRDb21wdXRl
ZFN0eWxlJiYoZj0iMSUiIT09KGEuZ2V0Q29tcHV0ZWRTdHlsZShiLG51bGwpfHx7fSkudG9wLGc9
IjRweCI9PT0oYS5nZXRDb21wdXRlZFN0eWxlKGIsbnVsbCl8fHt3aWR0aDoiNHB4In0pLndpZHRo
LGU9Yi5hcHBlbmRDaGlsZChvYS5jcmVhdGVFbGVtZW50KCJkaXYiKSksZS5zdHlsZS5jc3NUZXh0
PWIuc3R5bGUuY3NzVGV4dD0iLXdlYmtpdC1ib3gtc2l6aW5nOmNvbnRlbnQtYm94Oy1tb3otYm94
LXNpemluZzpjb250ZW50LWJveDtib3gtc2l6aW5nOmNvbnRlbnQtYm94O2Rpc3BsYXk6YmxvY2s7
bWFyZ2luOjA7Ym9yZGVyOjA7cGFkZGluZzowIixlLnN0eWxlLm1hcmdpblJpZ2h0PWUuc3R5bGUu
d2lkdGg9IjAiLGIuc3R5bGUud2lkdGg9IjFweCIsaT0hcGFyc2VGbG9hdCgoYS5nZXRDb21wdXRl
ZFN0eWxlKGUsbnVsbCl8fHt9KS5tYXJnaW5SaWdodCksYi5yZW1vdmVDaGlsZChlKSksYi5pbm5l
ckhUTUw9Ijx0YWJsZT48dHI+PHRkPjwvdGQ+PHRkPnQ8L3RkPjwvdHI+PC90YWJsZT4iLGU9Yi5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgidGQiKSxlWzBdLnN0eWxlLmNzc1RleHQ9Im1hcmdpbjowO2Jv
cmRlcjowO3BhZGRpbmc6MDtkaXNwbGF5Om5vbmUiLGg9MD09PWVbMF0ub2Zmc2V0SGVpZ2h0LGgm
JihlWzBdLnN0eWxlLmRpc3BsYXk9IiIsZVsxXS5zdHlsZS5kaXNwbGF5PSJub25lIixoPTA9PT1l
WzBdLm9mZnNldEhlaWdodCksYy5yZW1vdmVDaGlsZChkKSl9dmFyIGMsZCxlLGYsZyxoLGk7Yz1v
YS5jcmVhdGVFbGVtZW50KCJkaXYiKSxjLmlubmVySFRNTD0iICA8bGluay8+PHRhYmxlPjwvdGFi
bGU+PGEgaHJlZj0nL2EnPmE8L2E+PGlucHV0IHR5cGU9J2NoZWNrYm94Jy8+IixlPWMuZ2V0RWxl
bWVudHNCeVRhZ05hbWUoImEiKVswXSxkPWUmJmUuc3R5bGUsZCYmKGQuY3NzVGV4dD0iZmxvYXQ6
bGVmdDtvcGFjaXR5Oi41IixjYS5vcGFjaXR5PSIwLjUiPT09ZC5vcGFjaXR5LGNhLmNzc0Zsb2F0
PSEhZC5jc3NGbG9hdCxjLnN0eWxlLmJhY2tncm91bmRDbGlwPSJjb250ZW50LWJveCIsYy5jbG9u
ZU5vZGUoITApLnN0eWxlLmJhY2tncm91bmRDbGlwPSIiLGNhLmNsZWFyQ2xvbmVTdHlsZT0iY29u
dGVudC1ib3giPT09Yy5zdHlsZS5iYWNrZ3JvdW5kQ2xpcCxjYS5ib3hTaXppbmc9IiI9PT1kLmJv
eFNpemluZ3x8IiI9PT1kLk1vekJveFNpemluZ3x8IiI9PT1kLldlYmtpdEJveFNpemluZyxlYS5l
eHRlbmQoY2Ese3JlbGlhYmxlSGlkZGVuT2Zmc2V0czpmdW5jdGlvbigpe3JldHVybiBudWxsPT1o
JiZiKCksaH0sYm94U2l6aW5nUmVsaWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbD09ZyYmYigp
LGd9LHBpeGVsUG9zaXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbD09ZiYmYigpLGZ9LHJlbGlh
YmxlTWFyZ2luUmlnaHQ6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbD09aSYmYigpLGl9fSkpfSgpLGVh
LnN3YXA9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGUsZixnPXt9O2ZvcihmIGluIGIpZ1tmXT1hLnN0
eWxlW2ZdLGEuc3R5bGVbZl09YltmXTtlPWMuYXBwbHkoYSxkfHxbXSk7Zm9yKGYgaW4gYilhLnN0
eWxlW2ZdPWdbZl07cmV0dXJuIGV9O3ZhciBmYj0vYWxwaGFcKFteKV0qXCkvaSxnYj0vb3BhY2l0
eVxzKj1ccyooW14pXSopLyxoYj0vXihub25lfHRhYmxlKD8hLWNbZWFdKS4rKS8saWI9bmV3IFJl
Z0V4cCgiXigiK0FhKyIpKC4qKSQiLCJpIiksamI9bmV3IFJlZ0V4cCgiXihbKy1dKT0oIitBYSsi
KSIsImkiKSxrYj17cG9zaXRpb246ImFic29sdXRlIix2aXNpYmlsaXR5OiJoaWRkZW4iLGRpc3Bs
YXk6ImJsb2NrIn0sbGI9e2xldHRlclNwYWNpbmc6IjAiLGZvbnRXZWlnaHQ6IjQwMCJ9LG1iPVsi
V2Via2l0IiwiTyIsIk1veiIsIm1zIl07ZWEuZXh0ZW5kKHtjc3NIb29rczp7b3BhY2l0eTp7Z2V0
OmZ1bmN0aW9uKGEsYil7aWYoYil7dmFyIGM9YmIoYSwib3BhY2l0eSIpO3JldHVybiIiPT09Yz8i
MSI6Y319fX0sY3NzTnVtYmVyOntjb2x1bW5Db3VudDohMCxmaWxsT3BhY2l0eTohMCxmbGV4R3Jv
dzohMCxmbGV4U2hyaW5rOiEwLGZvbnRXZWlnaHQ6ITAsbGluZUhlaWdodDohMCxvcGFjaXR5OiEw
LG9yZGVyOiEwLG9ycGhhbnM6ITAsd2lkb3dzOiEwLHpJbmRleDohMCx6b29tOiEwfSxjc3NQcm9w
czp7ImZsb2F0IjpjYS5jc3NGbG9hdD8iY3NzRmxvYXQiOiJzdHlsZUZsb2F0In0sc3R5bGU6ZnVu
Y3Rpb24oYSxiLGMsZCl7aWYoYSYmMyE9PWEubm9kZVR5cGUmJjghPT1hLm5vZGVUeXBlJiZhLnN0
eWxlKXt2YXIgZSxmLGcsaD1lYS5jYW1lbENhc2UoYiksaT1hLnN0eWxlO2lmKGI9ZWEuY3NzUHJv
cHNbaF18fChlYS5jc3NQcm9wc1toXT1CKGksaCkpLGc9ZWEuY3NzSG9va3NbYl18fGVhLmNzc0hv
b2tzW2hdLHZvaWQgMD09PWMpcmV0dXJuIGcmJiJnZXQiaW4gZyYmdm9pZCAwIT09KGU9Zy5nZXQo
YSwhMSxkKSk/ZTppW2JdO2lmKGY9dHlwZW9mIGMsInN0cmluZyI9PT1mJiYoZT1qYi5leGVjKGMp
KSYmKGM9KGVbMV0rMSkqZVsyXStwYXJzZUZsb2F0KGVhLmNzcyhhLGIpKSxmPSJudW1iZXIiKSxu
dWxsIT1jJiZjPT09YyYmKCJudW1iZXIiIT09Znx8ZWEuY3NzTnVtYmVyW2hdfHwoYys9InB4Iiks
Y2EuY2xlYXJDbG9uZVN0eWxlfHwiIiE9PWN8fDAhPT1iLmluZGV4T2YoImJhY2tncm91bmQiKXx8
KGlbYl09ImluaGVyaXQiKSwhKGcmJiJzZXQiaW4gZyYmdm9pZCAwPT09KGM9Zy5zZXQoYSxjLGQp
KSkpKXRyeXtpW2JdPWN9Y2F0Y2goail7fX19LGNzczpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZSxm
LGcsaD1lYS5jYW1lbENhc2UoYik7cmV0dXJuIGI9ZWEuY3NzUHJvcHNbaF18fChlYS5jc3NQcm9w
c1toXT1CKGEuc3R5bGUsaCkpLGc9ZWEuY3NzSG9va3NbYl18fGVhLmNzc0hvb2tzW2hdLGcmJiJn
ZXQiaW4gZyYmKGY9Zy5nZXQoYSwhMCxjKSksdm9pZCAwPT09ZiYmKGY9YmIoYSxiLGQpKSwibm9y
bWFsIj09PWYmJmIgaW4gbGImJihmPWxiW2JdKSwiIj09PWN8fGM/KGU9cGFyc2VGbG9hdChmKSxj
PT09ITB8fGVhLmlzTnVtZXJpYyhlKT9lfHwwOmYpOmZ9fSksZWEuZWFjaChbImhlaWdodCIsIndp
ZHRoIl0sZnVuY3Rpb24oYSxiKXtlYS5jc3NIb29rc1tiXT17Z2V0OmZ1bmN0aW9uKGEsYyxkKXty
ZXR1cm4gYz9oYi50ZXN0KGVhLmNzcyhhLCJkaXNwbGF5IikpJiYwPT09YS5vZmZzZXRXaWR0aD9l
YS5zd2FwKGEsa2IsZnVuY3Rpb24oKXtyZXR1cm4gRihhLGIsZCl9KTpGKGEsYixkKTp2b2lkIDB9
LHNldDpmdW5jdGlvbihhLGMsZCl7dmFyIGU9ZCYmYWIoYSk7cmV0dXJuIEQoYSxjLGQ/RShhLGIs
ZCxjYS5ib3hTaXppbmcmJiJib3JkZXItYm94Ij09PWVhLmNzcyhhLCJib3hTaXppbmciLCExLGUp
LGUpOjApfX19KSxjYS5vcGFjaXR5fHwoZWEuY3NzSG9va3Mub3BhY2l0eT17Z2V0OmZ1bmN0aW9u
KGEsYil7cmV0dXJuIGdiLnRlc3QoKGImJmEuY3VycmVudFN0eWxlP2EuY3VycmVudFN0eWxlLmZp
bHRlcjphLnN0eWxlLmZpbHRlcil8fCIiKT8uMDEqcGFyc2VGbG9hdChSZWdFeHAuJDEpKyIiOmI/
IjEiOiIifSxzZXQ6ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLnN0eWxlLGQ9YS5jdXJyZW50U3R5bGUs
ZT1lYS5pc051bWVyaWMoYik/ImFscGhhKG9wYWNpdHk9IisxMDAqYisiKSI6IiIsZj1kJiZkLmZp
bHRlcnx8Yy5maWx0ZXJ8fCIiO2Muem9vbT0xLChiPj0xfHwiIj09PWIpJiYiIj09PWVhLnRyaW0o
Zi5yZXBsYWNlKGZiLCIiKSkmJmMucmVtb3ZlQXR0cmlidXRlJiYoYy5yZW1vdmVBdHRyaWJ1dGUo
ImZpbHRlciIpLCIiPT09Ynx8ZCYmIWQuZmlsdGVyKXx8KGMuZmlsdGVyPWZiLnRlc3QoZik/Zi5y
ZXBsYWNlKGZiLGUpOmYrIiAiK2UpfX0pLGVhLmNzc0hvb2tzLm1hcmdpblJpZ2h0PUEoY2EucmVs
aWFibGVNYXJnaW5SaWdodCxmdW5jdGlvbihhLGIpe3JldHVybiBiP2VhLnN3YXAoYSx7ZGlzcGxh
eToiaW5saW5lLWJsb2NrIn0sYmIsW2EsIm1hcmdpblJpZ2h0Il0pOnZvaWQgMH0pLGVhLmVhY2go
e21hcmdpbjoiIixwYWRkaW5nOiIiLGJvcmRlcjoiV2lkdGgifSxmdW5jdGlvbihhLGIpe2VhLmNz
c0hvb2tzW2ErYl09e2V4cGFuZDpmdW5jdGlvbihjKXtmb3IodmFyIGQ9MCxlPXt9LGY9InN0cmlu
ZyI9PXR5cGVvZiBjP2Muc3BsaXQoIiAiKTpbY107ND5kO2QrKyllW2ErQmFbZF0rYl09ZltkXXx8
ZltkLTJdfHxmWzBdO3JldHVybiBlfX0sY2IudGVzdChhKXx8KGVhLmNzc0hvb2tzW2ErYl0uc2V0
PUQpfSksZWEuZm4uZXh0ZW5kKHtjc3M6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gRGEodGhpcyxmdW5j
dGlvbihhLGIsYyl7dmFyIGQsZSxmPXt9LGc9MDtpZihlYS5pc0FycmF5KGIpKXtmb3IoZD1hYihh
KSxlPWIubGVuZ3RoO2U+ZztnKyspZltiW2ddXT1lYS5jc3MoYSxiW2ddLCExLGQpO3JldHVybiBm
fXJldHVybiB2b2lkIDAhPT1jP2VhLnN0eWxlKGEsYixjKTplYS5jc3MoYSxiKX0sYSxiLGFyZ3Vt
ZW50cy5sZW5ndGg+MSl9LHNob3c6ZnVuY3Rpb24oKXtyZXR1cm4gQyh0aGlzLCEwKX0saGlkZTpm
dW5jdGlvbigpe3JldHVybiBDKHRoaXMpfSx0b2dnbGU6ZnVuY3Rpb24oYSl7cmV0dXJuImJvb2xl
YW4iPT10eXBlb2YgYT9hP3RoaXMuc2hvdygpOnRoaXMuaGlkZSgpOnRoaXMuZWFjaChmdW5jdGlv
bigpe0NhKHRoaXMpP2VhKHRoaXMpLnNob3coKTplYSh0aGlzKS5oaWRlKCl9KX19KSxlYS5Ud2Vl
bj1HLEcucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpHLGluaXQ6ZnVuY3Rpb24oYSxiLGMsZCxlLGYp
e3RoaXMuZWxlbT1hLHRoaXMucHJvcD1jLHRoaXMuZWFzaW5nPWV8fCJzd2luZyIsdGhpcy5vcHRp
b25zPWIsdGhpcy5zdGFydD10aGlzLm5vdz10aGlzLmN1cigpLHRoaXMuZW5kPWQsdGhpcy51bml0
PWZ8fChlYS5jc3NOdW1iZXJbY10/IiI6InB4Iil9LGN1cjpmdW5jdGlvbigpe3ZhciBhPUcucHJv
cEhvb2tzW3RoaXMucHJvcF07cmV0dXJuIGEmJmEuZ2V0P2EuZ2V0KHRoaXMpOkcucHJvcEhvb2tz
Ll9kZWZhdWx0LmdldCh0aGlzKX0scnVuOmZ1bmN0aW9uKGEpe3ZhciBiLGM9Ry5wcm9wSG9va3Nb
dGhpcy5wcm9wXTtyZXR1cm4gdGhpcy5vcHRpb25zLmR1cmF0aW9uP3RoaXMucG9zPWI9ZWEuZWFz
aW5nW3RoaXMuZWFzaW5nXShhLHRoaXMub3B0aW9ucy5kdXJhdGlvbiphLDAsMSx0aGlzLm9wdGlv
bnMuZHVyYXRpb24pOnRoaXMucG9zPWI9YSx0aGlzLm5vdz0odGhpcy5lbmQtdGhpcy5zdGFydCkq
Yit0aGlzLnN0YXJ0LHRoaXMub3B0aW9ucy5zdGVwJiZ0aGlzLm9wdGlvbnMuc3RlcC5jYWxsKHRo
aXMuZWxlbSx0aGlzLm5vdyx0aGlzKSxjJiZjLnNldD9jLnNldCh0aGlzKTpHLnByb3BIb29rcy5f
ZGVmYXVsdC5zZXQodGhpcyksdGhpc319LEcucHJvdG90eXBlLmluaXQucHJvdG90eXBlPUcucHJv
dG90eXBlLEcucHJvcEhvb2tzPXtfZGVmYXVsdDp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiO3JldHVy
biBudWxsPT1hLmVsZW1bYS5wcm9wXXx8YS5lbGVtLnN0eWxlJiZudWxsIT1hLmVsZW0uc3R5bGVb
YS5wcm9wXT8oYj1lYS5jc3MoYS5lbGVtLGEucHJvcCwiIiksYiYmImF1dG8iIT09Yj9iOjApOmEu
ZWxlbVthLnByb3BdfSxzZXQ6ZnVuY3Rpb24oYSl7ZWEuZnguc3RlcFthLnByb3BdP2VhLmZ4LnN0
ZXBbYS5wcm9wXShhKTphLmVsZW0uc3R5bGUmJihudWxsIT1hLmVsZW0uc3R5bGVbZWEuY3NzUHJv
cHNbYS5wcm9wXV18fGVhLmNzc0hvb2tzW2EucHJvcF0pP2VhLnN0eWxlKGEuZWxlbSxhLnByb3As
YS5ub3crYS51bml0KTphLmVsZW1bYS5wcm9wXT1hLm5vd319fSxHLnByb3BIb29rcy5zY3JvbGxU
b3A9Ry5wcm9wSG9va3Muc2Nyb2xsTGVmdD17c2V0OmZ1bmN0aW9uKGEpe2EuZWxlbS5ub2RlVHlw
ZSYmYS5lbGVtLnBhcmVudE5vZGUmJihhLmVsZW1bYS5wcm9wXT1hLm5vdyl9fSxlYS5lYXNpbmc9
e2xpbmVhcjpmdW5jdGlvbihhKXtyZXR1cm4gYX0sc3dpbmc6ZnVuY3Rpb24oYSl7cmV0dXJuLjUt
TWF0aC5jb3MoYSpNYXRoLlBJKS8yfX0sZWEuZng9Ry5wcm90b3R5cGUuaW5pdCxlYS5meC5zdGVw
PXt9O3ZhciBuYixvYixwYj0vXig/OnRvZ2dsZXxzaG93fGhpZGUpJC8scWI9bmV3IFJlZ0V4cCgi
Xig/OihbKy1dKT18KSgiK0FhKyIpKFthLXolXSopJCIsImkiKSxyYj0vcXVldWVIb29rcyQvLHNi
PVtLXSx0Yj17IioiOltmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuY3JlYXRlVHdlZW4oYSxiKSxk
PWMuY3VyKCksZT1xYi5leGVjKGIpLGY9ZSYmZVszXXx8KGVhLmNzc051bWJlclthXT8iIjoicHgi
KSxnPShlYS5jc3NOdW1iZXJbYV18fCJweCIhPT1mJiYrZCkmJnFiLmV4ZWMoZWEuY3NzKGMuZWxl
bSxhKSksaD0xLGk9MjA7aWYoZyYmZ1szXSE9PWYpe2Y9Znx8Z1szXSxlPWV8fFtdLGc9K2R8fDE7
ZG8gaD1ofHwiLjUiLGcvPWgsZWEuc3R5bGUoYy5lbGVtLGEsZytmKTt3aGlsZShoIT09KGg9Yy5j
dXIoKS9kKSYmMSE9PWgmJi0taSl9cmV0dXJuIGUmJihnPWMuc3RhcnQ9K2d8fCtkfHwwLGMudW5p
dD1mLGMuZW5kPWVbMV0/ZysoZVsxXSsxKSplWzJdOitlWzJdKSxjfV19O2VhLkFuaW1hdGlvbj1l
YS5leHRlbmQoTSx7dHdlZW5lcjpmdW5jdGlvbihhLGIpe2VhLmlzRnVuY3Rpb24oYSk/KGI9YSxh
PVsiKiJdKTphPWEuc3BsaXQoIiAiKTtmb3IodmFyIGMsZD0wLGU9YS5sZW5ndGg7ZT5kO2QrKylj
PWFbZF0sdGJbY109dGJbY118fFtdLHRiW2NdLnVuc2hpZnQoYil9LHByZWZpbHRlcjpmdW5jdGlv
bihhLGIpe2I/c2IudW5zaGlmdChhKTpzYi5wdXNoKGEpfX0pLGVhLnNwZWVkPWZ1bmN0aW9uKGEs
YixjKXt2YXIgZD1hJiYib2JqZWN0Ij09dHlwZW9mIGE/ZWEuZXh0ZW5kKHt9LGEpOntjb21wbGV0
ZTpjfHwhYyYmYnx8ZWEuaXNGdW5jdGlvbihhKSYmYSxkdXJhdGlvbjphLGVhc2luZzpjJiZifHxi
JiYhZWEuaXNGdW5jdGlvbihiKSYmYn07cmV0dXJuIGQuZHVyYXRpb249ZWEuZngub2ZmPzA6Im51
bWJlciI9PXR5cGVvZiBkLmR1cmF0aW9uP2QuZHVyYXRpb246ZC5kdXJhdGlvbiBpbiBlYS5meC5z
cGVlZHM/ZWEuZnguc3BlZWRzW2QuZHVyYXRpb25dOmVhLmZ4LnNwZWVkcy5fZGVmYXVsdCxudWxs
IT1kLnF1ZXVlJiZkLnF1ZXVlIT09ITB8fChkLnF1ZXVlPSJmeCIpLGQub2xkPWQuY29tcGxldGUs
ZC5jb21wbGV0ZT1mdW5jdGlvbigpe2VhLmlzRnVuY3Rpb24oZC5vbGQpJiZkLm9sZC5jYWxsKHRo
aXMpLGQucXVldWUmJmVhLmRlcXVldWUodGhpcyxkLnF1ZXVlKX0sZH0sZWEuZm4uZXh0ZW5kKHtm
YWRlVG86ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIHRoaXMuZmlsdGVyKENhKS5jc3MoIm9wYWNp
dHkiLDApLnNob3coKS5lbmQoKS5hbmltYXRlKHtvcGFjaXR5OmJ9LGEsYyxkKX0sYW5pbWF0ZTpm
dW5jdGlvbihhLGIsYyxkKXt2YXIgZT1lYS5pc0VtcHR5T2JqZWN0KGEpLGY9ZWEuc3BlZWQoYixj
LGQpLGc9ZnVuY3Rpb24oKXt2YXIgYj1NKHRoaXMsZWEuZXh0ZW5kKHt9LGEpLGYpOyhlfHxlYS5f
ZGF0YSh0aGlzLCJmaW5pc2giKSkmJmIuc3RvcCghMCl9O3JldHVybiBnLmZpbmlzaD1nLGV8fGYu
cXVldWU9PT0hMT90aGlzLmVhY2goZyk6dGhpcy5xdWV1ZShmLnF1ZXVlLGcpfSxzdG9wOmZ1bmN0
aW9uKGEsYixjKXt2YXIgZD1mdW5jdGlvbihhKXt2YXIgYj1hLnN0b3A7ZGVsZXRlIGEuc3RvcCxi
KGMpfTtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGEmJihjPWIsYj1hLGE9dm9pZCAwKSxiJiZhIT09
ITEmJnRoaXMucXVldWUoYXx8ImZ4IixbXSksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9ITAs
ZT1udWxsIT1hJiZhKyJxdWV1ZUhvb2tzIixmPWVhLnRpbWVycyxnPWVhLl9kYXRhKHRoaXMpO2lm
KGUpZ1tlXSYmZ1tlXS5zdG9wJiZkKGdbZV0pO2Vsc2UgZm9yKGUgaW4gZylnW2VdJiZnW2VdLnN0
b3AmJnJiLnRlc3QoZSkmJmQoZ1tlXSk7Zm9yKGU9Zi5sZW5ndGg7ZS0tOylmW2VdLmVsZW0hPT10
aGlzfHxudWxsIT1hJiZmW2VdLnF1ZXVlIT09YXx8KGZbZV0uYW5pbS5zdG9wKGMpLGI9ITEsZi5z
cGxpY2UoZSwxKSk7IWImJmN8fGVhLmRlcXVldWUodGhpcyxhKX0pfSxmaW5pc2g6ZnVuY3Rpb24o
YSl7cmV0dXJuIGEhPT0hMSYmKGE9YXx8ImZ4IiksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGIs
Yz1lYS5fZGF0YSh0aGlzKSxkPWNbYSsicXVldWUiXSxlPWNbYSsicXVldWVIb29rcyJdLGY9ZWEu
dGltZXJzLGc9ZD9kLmxlbmd0aDowO2ZvcihjLmZpbmlzaD0hMCxlYS5xdWV1ZSh0aGlzLGEsW10p
LGUmJmUuc3RvcCYmZS5zdG9wLmNhbGwodGhpcywhMCksYj1mLmxlbmd0aDtiLS07KWZbYl0uZWxl
bT09PXRoaXMmJmZbYl0ucXVldWU9PT1hJiYoZltiXS5hbmltLnN0b3AoITApLGYuc3BsaWNlKGIs
MSkpO2ZvcihiPTA7Zz5iO2IrKylkW2JdJiZkW2JdLmZpbmlzaCYmZFtiXS5maW5pc2guY2FsbCh0
aGlzKTtkZWxldGUgYy5maW5pc2h9KX19KSxlYS5lYWNoKFsidG9nZ2xlIiwic2hvdyIsImhpZGUi
XSxmdW5jdGlvbihhLGIpe3ZhciBjPWVhLmZuW2JdO2VhLmZuW2JdPWZ1bmN0aW9uKGEsZCxlKXty
ZXR1cm4gbnVsbD09YXx8ImJvb2xlYW4iPT10eXBlb2YgYT9jLmFwcGx5KHRoaXMsYXJndW1lbnRz
KTp0aGlzLmFuaW1hdGUoSShiLCEwKSxhLGQsZSl9fSksZWEuZWFjaCh7c2xpZGVEb3duOkkoInNo
b3ciKSxzbGlkZVVwOkkoImhpZGUiKSxzbGlkZVRvZ2dsZTpJKCJ0b2dnbGUiKSxmYWRlSW46e29w
YWNpdHk6InNob3cifSxmYWRlT3V0OntvcGFjaXR5OiJoaWRlIn0sZmFkZVRvZ2dsZTp7b3BhY2l0
eToidG9nZ2xlIn19LGZ1bmN0aW9uKGEsYil7ZWEuZm5bYV09ZnVuY3Rpb24oYSxjLGQpe3JldHVy
biB0aGlzLmFuaW1hdGUoYixhLGMsZCl9fSksZWEudGltZXJzPVtdLGVhLmZ4LnRpY2s9ZnVuY3Rp
b24oKXt2YXIgYSxiPWVhLnRpbWVycyxjPTA7Zm9yKG5iPWVhLm5vdygpO2M8Yi5sZW5ndGg7Yysr
KWE9YltjXSxhKCl8fGJbY10hPT1hfHxiLnNwbGljZShjLS0sMSk7Yi5sZW5ndGh8fGVhLmZ4LnN0
b3AoKSxuYj12b2lkIDB9LGVhLmZ4LnRpbWVyPWZ1bmN0aW9uKGEpe2VhLnRpbWVycy5wdXNoKGEp
LGEoKT9lYS5meC5zdGFydCgpOmVhLnRpbWVycy5wb3AoKX0sZWEuZnguaW50ZXJ2YWw9MTMsZWEu
Znguc3RhcnQ9ZnVuY3Rpb24oKXtvYnx8KG9iPXNldEludGVydmFsKGVhLmZ4LnRpY2ssZWEuZngu
aW50ZXJ2YWwpKX0sZWEuZnguc3RvcD1mdW5jdGlvbigpe2NsZWFySW50ZXJ2YWwob2IpLG9iPW51
bGx9LGVhLmZ4LnNwZWVkcz17c2xvdzo2MDAsZmFzdDoyMDAsX2RlZmF1bHQ6NDAwfSxlYS5mbi5k
ZWxheT1mdW5jdGlvbihhLGIpe3JldHVybiBhPWVhLmZ4P2VhLmZ4LnNwZWVkc1thXXx8YTphLGI9
Ynx8ImZ4Iix0aGlzLnF1ZXVlKGIsZnVuY3Rpb24oYixjKXt2YXIgZD1zZXRUaW1lb3V0KGIsYSk7
Yy5zdG9wPWZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KGQpfX0pfSxmdW5jdGlvbigpe3ZhciBhLGIs
YyxkLGU7Yj1vYS5jcmVhdGVFbGVtZW50KCJkaXYiKSxiLnNldEF0dHJpYnV0ZSgiY2xhc3NOYW1l
IiwidCIpLGIuaW5uZXJIVE1MPSIgIDxsaW5rLz48dGFibGU+PC90YWJsZT48YSBocmVmPScvYSc+
YTwvYT48aW5wdXQgdHlwZT0nY2hlY2tib3gnLz4iLGQ9Yi5nZXRFbGVtZW50c0J5VGFnTmFtZSgi
YSIpWzBdLGM9b2EuY3JlYXRlRWxlbWVudCgic2VsZWN0IiksZT1jLmFwcGVuZENoaWxkKG9hLmNy
ZWF0ZUVsZW1lbnQoIm9wdGlvbiIpKSxhPWIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0Iilb
MF0sZC5zdHlsZS5jc3NUZXh0PSJ0b3A6MXB4IixjYS5nZXRTZXRBdHRyaWJ1dGU9InQiIT09Yi5j
bGFzc05hbWUsY2Euc3R5bGU9L3RvcC8udGVzdChkLmdldEF0dHJpYnV0ZSgic3R5bGUiKSksY2Eu
aHJlZk5vcm1hbGl6ZWQ9Ii9hIj09PWQuZ2V0QXR0cmlidXRlKCJocmVmIiksY2EuY2hlY2tPbj0h
IWEudmFsdWUsY2Eub3B0U2VsZWN0ZWQ9ZS5zZWxlY3RlZCxjYS5lbmN0eXBlPSEhb2EuY3JlYXRl
RWxlbWVudCgiZm9ybSIpLmVuY3R5cGUsYy5kaXNhYmxlZD0hMCxjYS5vcHREaXNhYmxlZD0hZS5k
aXNhYmxlZCxhPW9hLmNyZWF0ZUVsZW1lbnQoImlucHV0IiksYS5zZXRBdHRyaWJ1dGUoInZhbHVl
IiwiIiksY2EuaW5wdXQ9IiI9PT1hLmdldEF0dHJpYnV0ZSgidmFsdWUiKSxhLnZhbHVlPSJ0Iixh
LnNldEF0dHJpYnV0ZSgidHlwZSIsInJhZGlvIiksY2EucmFkaW9WYWx1ZT0idCI9PT1hLnZhbHVl
fSgpO3ZhciB1Yj0vXHIvZztlYS5mbi5leHRlbmQoe3ZhbDpmdW5jdGlvbihhKXt2YXIgYixjLGQs
ZT10aGlzWzBdO3tpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiBkPWVhLmlzRnVuY3Rpb24oYSks
dGhpcy5lYWNoKGZ1bmN0aW9uKGMpe3ZhciBlOzE9PT10aGlzLm5vZGVUeXBlJiYoZT1kP2EuY2Fs
bCh0aGlzLGMsZWEodGhpcykudmFsKCkpOmEsbnVsbD09ZT9lPSIiOiJudW1iZXIiPT10eXBlb2Yg
ZT9lKz0iIjplYS5pc0FycmF5KGUpJiYoZT1lYS5tYXAoZSxmdW5jdGlvbihhKXtyZXR1cm4gbnVs
bD09YT8iIjphKyIifSkpLGI9ZWEudmFsSG9va3NbdGhpcy50eXBlXXx8ZWEudmFsSG9va3NbdGhp
cy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSxiJiYic2V0ImluIGImJnZvaWQgMCE9PWIuc2V0KHRo
aXMsZSwidmFsdWUiKXx8KHRoaXMudmFsdWU9ZSkpfSk7aWYoZSlyZXR1cm4gYj1lYS52YWxIb29r
c1tlLnR5cGVdfHxlYS52YWxIb29rc1tlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldLGImJiJnZXQi
aW4gYiYmdm9pZCAwIT09KGM9Yi5nZXQoZSwidmFsdWUiKSk/YzooYz1lLnZhbHVlLCJzdHJpbmci
PT10eXBlb2YgYz9jLnJlcGxhY2UodWIsIiIpOm51bGw9PWM/IiI6Yyl9fX0pLGVhLmV4dGVuZCh7
dmFsSG9va3M6e29wdGlvbjp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiPWVhLmZpbmQuYXR0cihhLCJ2
YWx1ZSIpO3JldHVybiBudWxsIT1iP2I6ZWEudHJpbShlYS50ZXh0KGEpKX19LHNlbGVjdDp7Z2V0
OmZ1bmN0aW9uKGEpe2Zvcih2YXIgYixjLGQ9YS5vcHRpb25zLGU9YS5zZWxlY3RlZEluZGV4LGY9
InNlbGVjdC1vbmUiPT09YS50eXBlfHwwPmUsZz1mP251bGw6W10saD1mP2UrMTpkLmxlbmd0aCxp
PTA+ZT9oOmY/ZTowO2g+aTtpKyspaWYoYz1kW2ldLChjLnNlbGVjdGVkfHxpPT09ZSkmJihjYS5v
cHREaXNhYmxlZD8hYy5kaXNhYmxlZDpudWxsPT09Yy5nZXRBdHRyaWJ1dGUoImRpc2FibGVkIikp
JiYoIWMucGFyZW50Tm9kZS5kaXNhYmxlZHx8IWVhLm5vZGVOYW1lKGMucGFyZW50Tm9kZSwib3B0
Z3JvdXAiKSkpe2lmKGI9ZWEoYykudmFsKCksZilyZXR1cm4gYjtnLnB1c2goYil9cmV0dXJuIGd9
LHNldDpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYyxkLGU9YS5vcHRpb25zLGY9ZWEubWFrZUFycmF5
KGIpLGc9ZS5sZW5ndGg7Zy0tOylpZihkPWVbZ10sZWEuaW5BcnJheShlYS52YWxIb29rcy5vcHRp
b24uZ2V0KGQpLGYpPj0wKXRyeXtkLnNlbGVjdGVkPWM9ITB9Y2F0Y2goaCl7ZC5zY3JvbGxIZWln
aHR9ZWxzZSBkLnNlbGVjdGVkPSExO3JldHVybiBjfHwoYS5zZWxlY3RlZEluZGV4PS0xKSxlfX19
fSksZWEuZWFjaChbInJhZGlvIiwiY2hlY2tib3giXSxmdW5jdGlvbigpe2VhLnZhbEhvb2tzW3Ro
aXNdPXtzZXQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZWEuaXNBcnJheShiKT9hLmNoZWNrZWQ9ZWEu
aW5BcnJheShlYShhKS52YWwoKSxiKT49MDp2b2lkIDB9fSxjYS5jaGVja09ufHwoZWEudmFsSG9v
a3NbdGhpc10uZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT09YS5nZXRBdHRyaWJ1dGUoInZh
bHVlIik/Im9uIjphLnZhbHVlfSl9KTt2YXIgdmIsd2IseGI9ZWEuZXhwci5hdHRySGFuZGxlLHli
PS9eKD86Y2hlY2tlZHxzZWxlY3RlZCkkL2ksemI9Y2EuZ2V0U2V0QXR0cmlidXRlLEFiPWNhLmlu
cHV0O2VhLmZuLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihhLGIpe3JldHVybiBEYSh0aGlzLGVhLmF0
dHIsYSxiLGFyZ3VtZW50cy5sZW5ndGg+MSl9LHJlbW92ZUF0dHI6ZnVuY3Rpb24oYSl7cmV0dXJu
IHRoaXMuZWFjaChmdW5jdGlvbigpe2VhLnJlbW92ZUF0dHIodGhpcyxhKX0pfX0pLGVhLmV4dGVu
ZCh7YXR0cjpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZSxmPWEubm9kZVR5cGU7aWYoYSYmMyE9PWYm
JjghPT1mJiYyIT09ZilyZXR1cm4gdHlwZW9mIGEuZ2V0QXR0cmlidXRlPT09eGE/ZWEucHJvcChh
LGIsYyk6KDE9PT1mJiZlYS5pc1hNTERvYyhhKXx8KGI9Yi50b0xvd2VyQ2FzZSgpLGQ9ZWEuYXR0
ckhvb2tzW2JdfHwoZWEuZXhwci5tYXRjaC5ib29sLnRlc3QoYik/d2I6dmIpKSx2b2lkIDA9PT1j
P2QmJiJnZXQiaW4gZCYmbnVsbCE9PShlPWQuZ2V0KGEsYikpP2U6KGU9ZWEuZmluZC5hdHRyKGEs
YiksbnVsbD09ZT92b2lkIDA6ZSk6bnVsbCE9PWM/ZCYmInNldCJpbiBkJiZ2b2lkIDAhPT0oZT1k
LnNldChhLGMsYikpP2U6KGEuc2V0QXR0cmlidXRlKGIsYysiIiksYyk6dm9pZCBlYS5yZW1vdmVB
dHRyKGEsYikpfSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlPTAsZj1iJiZiLm1h
dGNoKHRhKTtpZihmJiYxPT09YS5ub2RlVHlwZSlmb3IoO2M9ZltlKytdOylkPWVhLnByb3BGaXhb
Y118fGMsZWEuZXhwci5tYXRjaC5ib29sLnRlc3QoYyk/QWImJnpifHwheWIudGVzdChjKT9hW2Rd
PSExOmFbZWEuY2FtZWxDYXNlKCJkZWZhdWx0LSIrYyldPWFbZF09ITE6ZWEuYXR0cihhLGMsIiIp
LGEucmVtb3ZlQXR0cmlidXRlKHpiP2M6ZCl9LGF0dHJIb29rczp7dHlwZTp7c2V0OmZ1bmN0aW9u
KGEsYil7aWYoIWNhLnJhZGlvVmFsdWUmJiJyYWRpbyI9PT1iJiZlYS5ub2RlTmFtZShhLCJpbnB1
dCIpKXt2YXIgYz1hLnZhbHVlO3JldHVybiBhLnNldEF0dHJpYnV0ZSgidHlwZSIsYiksYyYmKGEu
dmFsdWU9YyksYn19fX19KSx3Yj17c2V0OmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gYj09PSExP2Vh
LnJlbW92ZUF0dHIoYSxjKTpBYiYmemJ8fCF5Yi50ZXN0KGMpP2Euc2V0QXR0cmlidXRlKCF6YiYm
ZWEucHJvcEZpeFtjXXx8YyxjKTphW2VhLmNhbWVsQ2FzZSgiZGVmYXVsdC0iK2MpXT1hW2NdPSEw
LGN9fSxlYS5lYWNoKGVhLmV4cHIubWF0Y2guYm9vbC5zb3VyY2UubWF0Y2goL1x3Ky9nKSxmdW5j
dGlvbihhLGIpe3ZhciBjPXhiW2JdfHxlYS5maW5kLmF0dHI7eGJbYl09QWImJnpifHwheWIudGVz
dChiKT9mdW5jdGlvbihhLGIsZCl7dmFyIGUsZjtyZXR1cm4gZHx8KGY9eGJbYl0seGJbYl09ZSxl
PW51bGwhPWMoYSxiLGQpP2IudG9Mb3dlckNhc2UoKTpudWxsLHhiW2JdPWYpLGV9OmZ1bmN0aW9u
KGEsYixjKXtyZXR1cm4gYz92b2lkIDA6YVtlYS5jYW1lbENhc2UoImRlZmF1bHQtIitiKV0/Yi50
b0xvd2VyQ2FzZSgpOm51bGx9fSksQWImJnpifHwoZWEuYXR0ckhvb2tzLnZhbHVlPXtzZXQ6ZnVu
Y3Rpb24oYSxiLGMpe3JldHVybiBlYS5ub2RlTmFtZShhLCJpbnB1dCIpP3ZvaWQoYS5kZWZhdWx0
VmFsdWU9Yik6dmImJnZiLnNldChhLGIsYyl9fSksemJ8fCh2Yj17c2V0OmZ1bmN0aW9uKGEsYixj
KXt2YXIgZD1hLmdldEF0dHJpYnV0ZU5vZGUoYyk7cmV0dXJuIGR8fGEuc2V0QXR0cmlidXRlTm9k
ZShkPWEub3duZXJEb2N1bWVudC5jcmVhdGVBdHRyaWJ1dGUoYykpLGQudmFsdWU9Yis9IiIsInZh
bHVlIj09PWN8fGI9PT1hLmdldEF0dHJpYnV0ZShjKT9iOnZvaWQgMH19LHhiLmlkPXhiLm5hbWU9
eGIuY29vcmRzPWZ1bmN0aW9uKGEsYixjKXt2YXIgZDtyZXR1cm4gYz92b2lkIDA6KGQ9YS5nZXRB
dHRyaWJ1dGVOb2RlKGIpKSYmIiIhPT1kLnZhbHVlP2QudmFsdWU6bnVsbH0sZWEudmFsSG9va3Mu
YnV0dG9uPXtnZXQ6ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmdldEF0dHJpYnV0ZU5vZGUoYik7cmV0
dXJuIGMmJmMuc3BlY2lmaWVkP2MudmFsdWU6dm9pZCAwfSxzZXQ6dmIuc2V0fSxlYS5hdHRySG9v
a3MuY29udGVudGVkaXRhYmxlPXtzZXQ6ZnVuY3Rpb24oYSxiLGMpe3ZiLnNldChhLCIiPT09Yj8h
MTpiLGMpfX0sZWEuZWFjaChbIndpZHRoIiwiaGVpZ2h0Il0sZnVuY3Rpb24oYSxiKXtlYS5hdHRy
SG9va3NbYl09e3NldDpmdW5jdGlvbihhLGMpe3JldHVybiIiPT09Yz8oYS5zZXRBdHRyaWJ1dGUo
YiwiYXV0byIpLGMpOnZvaWQgMH19fSkpLGNhLnN0eWxlfHwoZWEuYXR0ckhvb2tzLnN0eWxlPXtn
ZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuc3R5bGUuY3NzVGV4dHx8dm9pZCAwfSxzZXQ6ZnVuY3Rp
b24oYSxiKXtyZXR1cm4gYS5zdHlsZS5jc3NUZXh0PWIrIiJ9fSk7dmFyIEJiPS9eKD86aW5wdXR8
c2VsZWN0fHRleHRhcmVhfGJ1dHRvbnxvYmplY3QpJC9pLENiPS9eKD86YXxhcmVhKSQvaTtlYS5m
bi5leHRlbmQoe3Byb3A6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gRGEodGhpcyxlYS5wcm9wLGEsYixh
cmd1bWVudHMubGVuZ3RoPjEpfSxyZW1vdmVQcm9wOmZ1bmN0aW9uKGEpe3JldHVybiBhPWVhLnBy
b3BGaXhbYV18fGEsdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dHJ5e3RoaXNbYV09dm9pZCAwLGRlbGV0
ZSB0aGlzW2FdfWNhdGNoKGIpe319KX19KSxlYS5leHRlbmQoe3Byb3BGaXg6eyJmb3IiOiJodG1s
Rm9yIiwiY2xhc3MiOiJjbGFzc05hbWUifSxwcm9wOmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGYs
Zz1hLm5vZGVUeXBlO2lmKGEmJjMhPT1nJiY4IT09ZyYmMiE9PWcpcmV0dXJuIGY9MSE9PWd8fCFl
YS5pc1hNTERvYyhhKSxmJiYoYj1lYS5wcm9wRml4W2JdfHxiLGU9ZWEucHJvcEhvb2tzW2JdKSx2
b2lkIDAhPT1jP2UmJiJzZXQiaW4gZSYmdm9pZCAwIT09KGQ9ZS5zZXQoYSxjLGIpKT9kOmFbYl09
YzplJiYiZ2V0ImluIGUmJm51bGwhPT0oZD1lLmdldChhLGIpKT9kOmFbYl19LHByb3BIb29rczp7
dGFiSW5kZXg6e2dldDpmdW5jdGlvbihhKXt2YXIgYj1lYS5maW5kLmF0dHIoYSwidGFiaW5kZXgi
KTtyZXR1cm4gYj9wYXJzZUludChiLDEwKTpCYi50ZXN0KGEubm9kZU5hbWUpfHxDYi50ZXN0KGEu
bm9kZU5hbWUpJiZhLmhyZWY/MDotMX19fX0pLGNhLmhyZWZOb3JtYWxpemVkfHxlYS5lYWNoKFsi
aHJlZiIsInNyYyJdLGZ1bmN0aW9uKGEsYil7ZWEucHJvcEhvb2tzW2JdPXtnZXQ6ZnVuY3Rpb24o
YSl7cmV0dXJuIGEuZ2V0QXR0cmlidXRlKGIsNCl9fX0pLGNhLm9wdFNlbGVjdGVkfHwoZWEucHJv
cEhvb2tzLnNlbGVjdGVkPXtnZXQ6ZnVuY3Rpb24oYSl7dmFyIGI9YS5wYXJlbnROb2RlO3JldHVy
biBiJiYoYi5zZWxlY3RlZEluZGV4LGIucGFyZW50Tm9kZSYmYi5wYXJlbnROb2RlLnNlbGVjdGVk
SW5kZXgpLG51bGx9fSksZWEuZWFjaChbInRhYkluZGV4IiwicmVhZE9ubHkiLCJtYXhMZW5ndGgi
LCJjZWxsU3BhY2luZyIsImNlbGxQYWRkaW5nIiwicm93U3BhbiIsImNvbFNwYW4iLCJ1c2VNYXAi
LCJmcmFtZUJvcmRlciIsImNvbnRlbnRFZGl0YWJsZSJdLGZ1bmN0aW9uKCl7ZWEucHJvcEZpeFt0
aGlzLnRvTG93ZXJDYXNlKCldPXRoaXN9KSxjYS5lbmN0eXBlfHwoZWEucHJvcEZpeC5lbmN0eXBl
PSJlbmNvZGluZyIpO3ZhciBEYj0vW1x0XHJcblxmXS9nO2VhLmZuLmV4dGVuZCh7YWRkQ2xhc3M6
ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGUsZixnLGg9MCxpPXRoaXMubGVuZ3RoLGo9InN0cmluZyI9
PXR5cGVvZiBhJiZhO2lmKGVhLmlzRnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlv
bihiKXtlYSh0aGlzKS5hZGRDbGFzcyhhLmNhbGwodGhpcyxiLHRoaXMuY2xhc3NOYW1lKSl9KTtp
ZihqKWZvcihiPShhfHwiIikubWF0Y2godGEpfHxbXTtpPmg7aCsrKWlmKGM9dGhpc1toXSxkPTE9
PT1jLm5vZGVUeXBlJiYoYy5jbGFzc05hbWU/KCIgIitjLmNsYXNzTmFtZSsiICIpLnJlcGxhY2Uo
RGIsIiAiKToiICIpKXtmb3IoZj0wO2U9YltmKytdOylkLmluZGV4T2YoIiAiK2UrIiAiKTwwJiYo
ZCs9ZSsiICIpO2c9ZWEudHJpbShkKSxjLmNsYXNzTmFtZSE9PWcmJihjLmNsYXNzTmFtZT1nKX1y
ZXR1cm4gdGhpc30scmVtb3ZlQ2xhc3M6ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGUsZixnLGg9MCxp
PXRoaXMubGVuZ3RoLGo9MD09PWFyZ3VtZW50cy5sZW5ndGh8fCJzdHJpbmciPT10eXBlb2YgYSYm
YTtpZihlYS5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYil7ZWEodGhp
cykucmVtb3ZlQ2xhc3MoYS5jYWxsKHRoaXMsYix0aGlzLmNsYXNzTmFtZSkpfSk7aWYoailmb3Io
Yj0oYXx8IiIpLm1hdGNoKHRhKXx8W107aT5oO2grKylpZihjPXRoaXNbaF0sZD0xPT09Yy5ub2Rl
VHlwZSYmKGMuY2xhc3NOYW1lPygiICIrYy5jbGFzc05hbWUrIiAiKS5yZXBsYWNlKERiLCIgIik6
IiIpKXtmb3IoZj0wO2U9YltmKytdOylmb3IoO2QuaW5kZXhPZigiICIrZSsiICIpPj0wOylkPWQu
cmVwbGFjZSgiICIrZSsiICIsIiAiKTtnPWE/ZWEudHJpbShkKToiIixjLmNsYXNzTmFtZSE9PWcm
JihjLmNsYXNzTmFtZT1nKX1yZXR1cm4gdGhpc30sdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24oYSxiKXt2
YXIgYz10eXBlb2YgYTtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiBiJiYic3RyaW5nIj09PWM/Yj90
aGlzLmFkZENsYXNzKGEpOnRoaXMucmVtb3ZlQ2xhc3MoYSk6ZWEuaXNGdW5jdGlvbihhKT90aGlz
LmVhY2goZnVuY3Rpb24oYyl7ZWEodGhpcykudG9nZ2xlQ2xhc3MoYS5jYWxsKHRoaXMsYyx0aGlz
LmNsYXNzTmFtZSxiKSxiKX0pOnRoaXMuZWFjaChmdW5jdGlvbigpe2lmKCJzdHJpbmciPT09Yylm
b3IodmFyIGIsZD0wLGU9ZWEodGhpcyksZj1hLm1hdGNoKHRhKXx8W107Yj1mW2QrK107KWUuaGFz
Q2xhc3MoYik/ZS5yZW1vdmVDbGFzcyhiKTplLmFkZENsYXNzKGIpO2Vsc2UgYyE9PXhhJiYiYm9v
bGVhbiIhPT1jfHwodGhpcy5jbGFzc05hbWUmJmVhLl9kYXRhKHRoaXMsIl9fY2xhc3NOYW1lX18i
LHRoaXMuY2xhc3NOYW1lKSx0aGlzLmNsYXNzTmFtZT10aGlzLmNsYXNzTmFtZXx8YT09PSExPyIi
OmVhLl9kYXRhKHRoaXMsIl9fY2xhc3NOYW1lX18iKXx8IiIpfSl9LGhhc0NsYXNzOmZ1bmN0aW9u
KGEpe2Zvcih2YXIgYj0iICIrYSsiICIsYz0wLGQ9dGhpcy5sZW5ndGg7ZD5jO2MrKylpZigxPT09
dGhpc1tjXS5ub2RlVHlwZSYmKCIgIit0aGlzW2NdLmNsYXNzTmFtZSsiICIpLnJlcGxhY2UoRGIs
IiAiKS5pbmRleE9mKGIpPj0wKXJldHVybiEwO3JldHVybiExfX0pLGVhLmVhY2goImJsdXIgZm9j
dXMgZm9jdXNpbiBmb2N1c291dCBsb2FkIHJlc2l6ZSBzY3JvbGwgdW5sb2FkIGNsaWNrIGRibGNs
aWNrIG1vdXNlZG93biBtb3VzZXVwIG1vdXNlbW92ZSBtb3VzZW92ZXIgbW91c2VvdXQgbW91c2Vl
bnRlciBtb3VzZWxlYXZlIGNoYW5nZSBzZWxlY3Qgc3VibWl0IGtleWRvd24ga2V5cHJlc3Mga2V5
dXAgZXJyb3IgY29udGV4dG1lbnUiLnNwbGl0KCIgIiksZnVuY3Rpb24oYSxiKXtlYS5mbltiXT1m
dW5jdGlvbihhLGMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjA/dGhpcy5vbihiLG51bGwsYSxj
KTp0aGlzLnRyaWdnZXIoYil9fSksZWEuZm4uZXh0ZW5kKHtob3ZlcjpmdW5jdGlvbihhLGIpe3Jl
dHVybiB0aGlzLm1vdXNlZW50ZXIoYSkubW91c2VsZWF2ZShifHxhKX0sYmluZDpmdW5jdGlvbihh
LGIsYyl7cmV0dXJuIHRoaXMub24oYSxudWxsLGIsYyl9LHVuYmluZDpmdW5jdGlvbihhLGIpe3Jl
dHVybiB0aGlzLm9mZihhLG51bGwsYil9LGRlbGVnYXRlOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVy
biB0aGlzLm9uKGIsYSxjLGQpfSx1bmRlbGVnYXRlOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gMT09
PWFyZ3VtZW50cy5sZW5ndGg/dGhpcy5vZmYoYSwiKioiKTp0aGlzLm9mZihiLGF8fCIqKiIsYyl9
fSk7dmFyIEViPWVhLm5vdygpLEZiPS9cPy8sR2I9LygsKXwoXFt8eyl8KH18XSl8Iig/OlteIlxc
XHJcbl18XFxbIlxcXC9iZm5ydF18XFx1W1xkYS1mQS1GXXs0fSkqIlxzKjo/fHRydWV8ZmFsc2V8
bnVsbHwtPyg/ITBcZClcZCsoPzpcLlxkK3wpKD86W2VFXVsrLV0/XGQrfCkvZztlYS5wYXJzZUpT
T049ZnVuY3Rpb24oYil7aWYoYS5KU09OJiZhLkpTT04ucGFyc2UpcmV0dXJuIGEuSlNPTi5wYXJz
ZShiKyIiKTt2YXIgYyxkPW51bGwsZT1lYS50cmltKGIrIiIpO3JldHVybiBlJiYhZWEudHJpbShl
LnJlcGxhY2UoR2IsZnVuY3Rpb24oYSxiLGUsZil7cmV0dXJuIGMmJmImJihkPTApLDA9PT1kP2E6
KGM9ZXx8YixkKz0hZi0hZSwiIil9KSk/RnVuY3Rpb24oInJldHVybiAiK2UpKCk6ZWEuZXJyb3Io
IkludmFsaWQgSlNPTjogIitiKX0sZWEucGFyc2VYTUw9ZnVuY3Rpb24oYil7dmFyIGMsZDtpZigh
Ynx8InN0cmluZyIhPXR5cGVvZiBiKXJldHVybiBudWxsO3RyeXthLkRPTVBhcnNlcj8oZD1uZXcg
RE9NUGFyc2VyLGM9ZC5wYXJzZUZyb21TdHJpbmcoYiwidGV4dC94bWwiKSk6KGM9bmV3IEFjdGl2
ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxET00iKSxjLmFzeW5jPSJmYWxzZSIsYy5sb2FkWE1MKGIp
KX1jYXRjaChlKXtjPXZvaWQgMH1yZXR1cm4gYyYmYy5kb2N1bWVudEVsZW1lbnQmJiFjLmdldEVs
ZW1lbnRzQnlUYWdOYW1lKCJwYXJzZXJlcnJvciIpLmxlbmd0aHx8ZWEuZXJyb3IoIkludmFsaWQg
WE1MOiAiK2IpLGN9O3ZhciBIYixJYixKYj0vIy4qJC8sS2I9LyhbPyZdKV89W14mXSovLExiPS9e
KC4qPyk6WyBcdF0qKFteXHJcbl0qKVxyPyQvZ20sTWI9L14oPzphYm91dHxhcHB8YXBwLXN0b3Jh
Z2V8ListZXh0ZW5zaW9ufGZpbGV8cmVzfHdpZGdldCk6JC8sTmI9L14oPzpHRVR8SEVBRCkkLyxP
Yj0vXlwvXC8vLFBiPS9eKFtcdy4rLV0rOikoPzpcL1wvKD86W15cLz8jXSpAfCkoW15cLz8jOl0q
KSg/OjooXGQrKXwpfCkvLFFiPXt9LFJiPXt9LFNiPSIqLyIuY29uY2F0KCIqIik7dHJ5e0liPWxv
Y2F0aW9uLmhyZWZ9Y2F0Y2goVGIpe0liPW9hLmNyZWF0ZUVsZW1lbnQoImEiKSxJYi5ocmVmPSIi
LEliPUliLmhyZWZ9SGI9UGIuZXhlYyhJYi50b0xvd2VyQ2FzZSgpKXx8W10sZWEuZXh0ZW5kKHth
Y3RpdmU6MCxsYXN0TW9kaWZpZWQ6e30sZXRhZzp7fSxhamF4U2V0dGluZ3M6e3VybDpJYix0eXBl
OiJHRVQiLGlzTG9jYWw6TWIudGVzdChIYlsxXSksZ2xvYmFsOiEwLHByb2Nlc3NEYXRhOiEwLGFz
eW5jOiEwLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNo
YXJzZXQ9VVRGLTgiLGFjY2VwdHM6eyIqIjpTYix0ZXh0OiJ0ZXh0L3BsYWluIixodG1sOiJ0ZXh0
L2h0bWwiLHhtbDoiYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbCIsanNvbjoiYXBwbGljYXRpb24v
anNvbiwgdGV4dC9qYXZhc2NyaXB0In0sY29udGVudHM6e3htbDoveG1sLyxodG1sOi9odG1sLyxq
c29uOi9qc29uL30scmVzcG9uc2VGaWVsZHM6e3htbDoicmVzcG9uc2VYTUwiLHRleHQ6InJlc3Bv
bnNlVGV4dCIsanNvbjoicmVzcG9uc2VKU09OIn0sY29udmVydGVyczp7IiogdGV4dCI6U3RyaW5n
LCJ0ZXh0IGh0bWwiOiEwLCJ0ZXh0IGpzb24iOmVhLnBhcnNlSlNPTiwidGV4dCB4bWwiOmVhLnBh
cnNlWE1MfSxmbGF0T3B0aW9uczp7dXJsOiEwLGNvbnRleHQ6ITB9fSxhamF4U2V0dXA6ZnVuY3Rp
b24oYSxiKXtyZXR1cm4gYj9QKFAoYSxlYS5hamF4U2V0dGluZ3MpLGIpOlAoZWEuYWpheFNldHRp
bmdzLGEpfSxhamF4UHJlZmlsdGVyOk4oUWIpLGFqYXhUcmFuc3BvcnQ6TihSYiksYWpheDpmdW5j
dGlvbihhLGIpe2Z1bmN0aW9uIGMoYSxiLGMsZCl7dmFyIGUsayxyLHMsdSx3PWI7MiE9PXQmJih0
PTIsaCYmY2xlYXJUaW1lb3V0KGgpLGo9dm9pZCAwLGc9ZHx8IiIsdi5yZWFkeVN0YXRlPWE+MD80
OjAsZT1hPj0yMDAmJjMwMD5hfHwzMDQ9PT1hLGMmJihzPVEobCx2LGMpKSxzPVIobCxzLHYsZSks
ZT8obC5pZk1vZGlmaWVkJiYodT12LmdldFJlc3BvbnNlSGVhZGVyKCJMYXN0LU1vZGlmaWVkIiks
dSYmKGVhLmxhc3RNb2RpZmllZFtmXT11KSx1PXYuZ2V0UmVzcG9uc2VIZWFkZXIoImV0YWciKSx1
JiYoZWEuZXRhZ1tmXT11KSksMjA0PT09YXx8IkhFQUQiPT09bC50eXBlP3c9Im5vY29udGVudCI6
MzA0PT09YT93PSJub3Rtb2RpZmllZCI6KHc9cy5zdGF0ZSxrPXMuZGF0YSxyPXMuZXJyb3IsZT0h
cikpOihyPXcsIWEmJnd8fCh3PSJlcnJvciIsMD5hJiYoYT0wKSkpLHYuc3RhdHVzPWEsdi5zdGF0
dXNUZXh0PShifHx3KSsiIixlP28ucmVzb2x2ZVdpdGgobSxbayx3LHZdKTpvLnJlamVjdFdpdGgo
bSxbdix3LHJdKSx2LnN0YXR1c0NvZGUocSkscT12b2lkIDAsaSYmbi50cmlnZ2VyKGU/ImFqYXhT
dWNjZXNzIjoiYWpheEVycm9yIixbdixsLGU/azpyXSkscC5maXJlV2l0aChtLFt2LHddKSxpJiYo
bi50cmlnZ2VyKCJhamF4Q29tcGxldGUiLFt2LGxdKSwtLWVhLmFjdGl2ZXx8ZWEuZXZlbnQudHJp
Z2dlcigiYWpheFN0b3AiKSkpfSJvYmplY3QiPT10eXBlb2YgYSYmKGI9YSxhPXZvaWQgMCksYj1i
fHx7fTt2YXIgZCxlLGYsZyxoLGksaixrLGw9ZWEuYWpheFNldHVwKHt9LGIpLG09bC5jb250ZXh0
fHxsLG49bC5jb250ZXh0JiYobS5ub2RlVHlwZXx8bS5qcXVlcnkpP2VhKG0pOmVhLmV2ZW50LG89
ZWEuRGVmZXJyZWQoKSxwPWVhLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSxxPWwuc3RhdHVzQ29k
ZXx8e30scj17fSxzPXt9LHQ9MCx1PSJjYW5jZWxlZCIsdj17cmVhZHlTdGF0ZTowLGdldFJlc3Bv
bnNlSGVhZGVyOmZ1bmN0aW9uKGEpe3ZhciBiO2lmKDI9PT10KXtpZighaylmb3Ioaz17fTtiPUxi
LmV4ZWMoZyk7KWtbYlsxXS50b0xvd2VyQ2FzZSgpXT1iWzJdO2I9a1thLnRvTG93ZXJDYXNlKCld
fXJldHVybiBudWxsPT1iP251bGw6Yn0sZ2V0QWxsUmVzcG9uc2VIZWFkZXJzOmZ1bmN0aW9uKCl7
cmV0dXJuIDI9PT10P2c6bnVsbH0sc2V0UmVxdWVzdEhlYWRlcjpmdW5jdGlvbihhLGIpe3ZhciBj
PWEudG9Mb3dlckNhc2UoKTtyZXR1cm4gdHx8KGE9c1tjXT1zW2NdfHxhLHJbYV09YiksdGhpc30s
b3ZlcnJpZGVNaW1lVHlwZTpmdW5jdGlvbihhKXtyZXR1cm4gdHx8KGwubWltZVR5cGU9YSksdGhp
c30sc3RhdHVzQ29kZTpmdW5jdGlvbihhKXt2YXIgYjtpZihhKWlmKDI+dClmb3IoYiBpbiBhKXFb
Yl09W3FbYl0sYVtiXV07ZWxzZSB2LmFsd2F5cyhhW3Yuc3RhdHVzXSk7cmV0dXJuIHRoaXN9LGFi
b3J0OmZ1bmN0aW9uKGEpe3ZhciBiPWF8fHU7cmV0dXJuIGomJmouYWJvcnQoYiksYygwLGIpLHRo
aXN9fTtpZihvLnByb21pc2UodikuY29tcGxldGU9cC5hZGQsdi5zdWNjZXNzPXYuZG9uZSx2LmVy
cm9yPXYuZmFpbCxsLnVybD0oKGF8fGwudXJsfHxJYikrIiIpLnJlcGxhY2UoSmIsIiIpLnJlcGxh
Y2UoT2IsSGJbMV0rIi8vIiksbC50eXBlPWIubWV0aG9kfHxiLnR5cGV8fGwubWV0aG9kfHxsLnR5
cGUsbC5kYXRhVHlwZXM9ZWEudHJpbShsLmRhdGFUeXBlfHwiKiIpLnRvTG93ZXJDYXNlKCkubWF0
Y2godGEpfHxbIiJdLG51bGw9PWwuY3Jvc3NEb21haW4mJihkPVBiLmV4ZWMobC51cmwudG9Mb3dl
ckNhc2UoKSksbC5jcm9zc0RvbWFpbj0hKCFkfHxkWzFdPT09SGJbMV0mJmRbMl09PT1IYlsyXSYm
KGRbM118fCgiaHR0cDoiPT09ZFsxXT8iODAiOiI0NDMiKSk9PT0oSGJbM118fCgiaHR0cDoiPT09
SGJbMV0/IjgwIjoiNDQzIikpKSksbC5kYXRhJiZsLnByb2Nlc3NEYXRhJiYic3RyaW5nIiE9dHlw
ZW9mIGwuZGF0YSYmKGwuZGF0YT1lYS5wYXJhbShsLmRhdGEsbC50cmFkaXRpb25hbCkpLE8oUWIs
bCxiLHYpLDI9PT10KXJldHVybiB2O2k9ZWEuZXZlbnQmJmwuZ2xvYmFsLGkmJjA9PT1lYS5hY3Rp
dmUrKyYmZWEuZXZlbnQudHJpZ2dlcigiYWpheFN0YXJ0IiksbC50eXBlPWwudHlwZS50b1VwcGVy
Q2FzZSgpLGwuaGFzQ29udGVudD0hTmIudGVzdChsLnR5cGUpLGY9bC51cmwsbC5oYXNDb250ZW50
fHwobC5kYXRhJiYoZj1sLnVybCs9KEZiLnRlc3QoZik/IiYiOiI/IikrbC5kYXRhLGRlbGV0ZSBs
LmRhdGEpLGwuY2FjaGU9PT0hMSYmKGwudXJsPUtiLnRlc3QoZik/Zi5yZXBsYWNlKEtiLCIkMV89
IitFYisrKTpmKyhGYi50ZXN0KGYpPyImIjoiPyIpKyJfPSIrRWIrKykpLGwuaWZNb2RpZmllZCYm
KGVhLmxhc3RNb2RpZmllZFtmXSYmdi5zZXRSZXF1ZXN0SGVhZGVyKCJJZi1Nb2RpZmllZC1TaW5j
ZSIsZWEubGFzdE1vZGlmaWVkW2ZdKSxlYS5ldGFnW2ZdJiZ2LnNldFJlcXVlc3RIZWFkZXIoIklm
LU5vbmUtTWF0Y2giLGVhLmV0YWdbZl0pKSwobC5kYXRhJiZsLmhhc0NvbnRlbnQmJmwuY29udGVu
dFR5cGUhPT0hMXx8Yi5jb250ZW50VHlwZSkmJnYuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1U
eXBlIixsLmNvbnRlbnRUeXBlKSx2LnNldFJlcXVlc3RIZWFkZXIoIkFjY2VwdCIsbC5kYXRhVHlw
ZXNbMF0mJmwuYWNjZXB0c1tsLmRhdGFUeXBlc1swXV0/bC5hY2NlcHRzW2wuZGF0YVR5cGVzWzBd
XSsoIioiIT09bC5kYXRhVHlwZXNbMF0/IiwgIitTYisiOyBxPTAuMDEiOiIiKTpsLmFjY2VwdHNb
IioiXSk7Zm9yKGUgaW4gbC5oZWFkZXJzKXYuc2V0UmVxdWVzdEhlYWRlcihlLGwuaGVhZGVyc1tl
XSk7aWYobC5iZWZvcmVTZW5kJiYobC5iZWZvcmVTZW5kLmNhbGwobSx2LGwpPT09ITF8fDI9PT10
KSlyZXR1cm4gdi5hYm9ydCgpO3U9ImFib3J0Ijtmb3IoZSBpbntzdWNjZXNzOjEsZXJyb3I6MSxj
b21wbGV0ZToxfSl2W2VdKGxbZV0pO2lmKGo9TyhSYixsLGIsdikpe3YucmVhZHlTdGF0ZT0xLGkm
Jm4udHJpZ2dlcigiYWpheFNlbmQiLFt2LGxdKSxsLmFzeW5jJiZsLnRpbWVvdXQ+MCYmKGg9c2V0
VGltZW91dChmdW5jdGlvbigpe3YuYWJvcnQoInRpbWVvdXQiKX0sbC50aW1lb3V0KSk7dHJ5e3Q9
MSxqLnNlbmQocixjKX1jYXRjaCh3KXtpZighKDI+dCkpdGhyb3cgdztjKC0xLHcpfX1lbHNlIGMo
LTEsIk5vIFRyYW5zcG9ydCIpO3JldHVybiB2fSxnZXRKU09OOmZ1bmN0aW9uKGEsYixjKXtyZXR1
cm4gZWEuZ2V0KGEsYixjLCJqc29uIil9LGdldFNjcmlwdDpmdW5jdGlvbihhLGIpe3JldHVybiBl
YS5nZXQoYSx2b2lkIDAsYiwic2NyaXB0Iil9fSksZWEuZWFjaChbImdldCIsInBvc3QiXSxmdW5j
dGlvbihhLGIpe2VhW2JdPWZ1bmN0aW9uKGEsYyxkLGUpe3JldHVybiBlYS5pc0Z1bmN0aW9uKGMp
JiYoZT1lfHxkLGQ9YyxjPXZvaWQgMCksZWEuYWpheCh7dXJsOmEsdHlwZTpiLGRhdGFUeXBlOmUs
ZGF0YTpjLHN1Y2Nlc3M6ZH0pfX0pLGVhLl9ldmFsVXJsPWZ1bmN0aW9uKGEpe3JldHVybiBlYS5h
amF4KHt1cmw6YSx0eXBlOiJHRVQiLGRhdGFUeXBlOiJzY3JpcHQiLGFzeW5jOiExLGdsb2JhbDoh
MSwidGhyb3dzIjohMH0pfSxlYS5mbi5leHRlbmQoe3dyYXBBbGw6ZnVuY3Rpb24oYSl7aWYoZWEu
aXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGIpe2VhKHRoaXMpLndyYXBB
bGwoYS5jYWxsKHRoaXMsYikpfSk7aWYodGhpc1swXSl7dmFyIGI9ZWEoYSx0aGlzWzBdLm93bmVy
RG9jdW1lbnQpLmVxKDApLmNsb25lKCEwKTt0aGlzWzBdLnBhcmVudE5vZGUmJmIuaW5zZXJ0QmVm
b3JlKHRoaXNbMF0pLGIubWFwKGZ1bmN0aW9uKCl7Zm9yKHZhciBhPXRoaXM7YS5maXJzdENoaWxk
JiYxPT09YS5maXJzdENoaWxkLm5vZGVUeXBlOylhPWEuZmlyc3RDaGlsZDtyZXR1cm4gYX0pLmFw
cGVuZCh0aGlzKX1yZXR1cm4gdGhpc30sd3JhcElubmVyOmZ1bmN0aW9uKGEpe3JldHVybiBlYS5p
c0Z1bmN0aW9uKGEpP3RoaXMuZWFjaChmdW5jdGlvbihiKXtlYSh0aGlzKS53cmFwSW5uZXIoYS5j
YWxsKHRoaXMsYikpfSk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9ZWEodGhpcyksYz1iLmNv
bnRlbnRzKCk7Yy5sZW5ndGg/Yy53cmFwQWxsKGEpOmIuYXBwZW5kKGEpfSl9LHdyYXA6ZnVuY3Rp
b24oYSl7dmFyIGI9ZWEuaXNGdW5jdGlvbihhKTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGMp
e2VhKHRoaXMpLndyYXBBbGwoYj9hLmNhbGwodGhpcyxjKTphKX0pfSx1bndyYXA6ZnVuY3Rpb24o
KXtyZXR1cm4gdGhpcy5wYXJlbnQoKS5lYWNoKGZ1bmN0aW9uKCl7ZWEubm9kZU5hbWUodGhpcywi
Ym9keSIpfHxlYSh0aGlzKS5yZXBsYWNlV2l0aCh0aGlzLmNoaWxkTm9kZXMpfSkuZW5kKCl9fSks
ZWEuZXhwci5maWx0ZXJzLmhpZGRlbj1mdW5jdGlvbihhKXtyZXR1cm4gYS5vZmZzZXRXaWR0aDw9
MCYmYS5vZmZzZXRIZWlnaHQ8PTB8fCFjYS5yZWxpYWJsZUhpZGRlbk9mZnNldHMoKSYmIm5vbmUi
PT09KGEuc3R5bGUmJmEuc3R5bGUuZGlzcGxheXx8ZWEuY3NzKGEsImRpc3BsYXkiKSl9LGVhLmV4
cHIuZmlsdGVycy52aXNpYmxlPWZ1bmN0aW9uKGEpe3JldHVybiFlYS5leHByLmZpbHRlcnMuaGlk
ZGVuKGEpfTt2YXIgVWI9LyUyMC9nLFZiPS9cW1xdJC8sV2I9L1xyP1xuL2csWGI9L14oPzpzdWJt
aXR8YnV0dG9ufGltYWdlfHJlc2V0fGZpbGUpJC9pLFliPS9eKD86aW5wdXR8c2VsZWN0fHRleHRh
cmVhfGtleWdlbikvaTtlYS5wYXJhbT1mdW5jdGlvbihhLGIpe3ZhciBjLGQ9W10sZT1mdW5jdGlv
bihhLGIpe2I9ZWEuaXNGdW5jdGlvbihiKT9iKCk6bnVsbD09Yj8iIjpiLGRbZC5sZW5ndGhdPWVu
Y29kZVVSSUNvbXBvbmVudChhKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGIpfTtpZih2b2lkIDA9
PT1iJiYoYj1lYS5hamF4U2V0dGluZ3MmJmVhLmFqYXhTZXR0aW5ncy50cmFkaXRpb25hbCksZWEu
aXNBcnJheShhKXx8YS5qcXVlcnkmJiFlYS5pc1BsYWluT2JqZWN0KGEpKWVhLmVhY2goYSxmdW5j
dGlvbigpe2UodGhpcy5uYW1lLHRoaXMudmFsdWUpfSk7ZWxzZSBmb3IoYyBpbiBhKVMoYyxhW2Nd
LGIsZSk7cmV0dXJuIGQuam9pbigiJiIpLnJlcGxhY2UoVWIsIisiKX0sZWEuZm4uZXh0ZW5kKHtz
ZXJpYWxpemU6ZnVuY3Rpb24oKXtyZXR1cm4gZWEucGFyYW0odGhpcy5zZXJpYWxpemVBcnJheSgp
KX0sc2VyaWFsaXplQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2
YXIgYT1lYS5wcm9wKHRoaXMsImVsZW1lbnRzIik7cmV0dXJuIGE/ZWEubWFrZUFycmF5KGEpOnRo
aXN9KS5maWx0ZXIoZnVuY3Rpb24oKXt2YXIgYT10aGlzLnR5cGU7cmV0dXJuIHRoaXMubmFtZSYm
IWVhKHRoaXMpLmlzKCI6ZGlzYWJsZWQiKSYmWWIudGVzdCh0aGlzLm5vZGVOYW1lKSYmIVhiLnRl
c3QoYSkmJih0aGlzLmNoZWNrZWR8fCFFYS50ZXN0KGEpKX0pLm1hcChmdW5jdGlvbihhLGIpe3Zh
ciBjPWVhKHRoaXMpLnZhbCgpO3JldHVybiBudWxsPT1jP251bGw6ZWEuaXNBcnJheShjKT9lYS5t
YXAoYyxmdW5jdGlvbihhKXtyZXR1cm57bmFtZTpiLm5hbWUsdmFsdWU6YS5yZXBsYWNlKFdiLCJc
clxuIil9fSk6e25hbWU6Yi5uYW1lLHZhbHVlOmMucmVwbGFjZShXYiwiXHJcbiIpfX0pLmdldCgp
fX0pLGVhLmFqYXhTZXR0aW5ncy54aHI9dm9pZCAwIT09YS5BY3RpdmVYT2JqZWN0P2Z1bmN0aW9u
KCl7cmV0dXJuIXRoaXMuaXNMb2NhbCYmL14oZ2V0fHBvc3R8aGVhZHxwdXR8ZGVsZXRlfG9wdGlv
bnMpJC9pLnRlc3QodGhpcy50eXBlKSYmVCgpfHxVKCl9OlQ7dmFyIFpiPTAsJGI9e30sX2I9ZWEu
YWpheFNldHRpbmdzLnhocigpO2EuYXR0YWNoRXZlbnQmJmEuYXR0YWNoRXZlbnQoIm9udW5sb2Fk
IixmdW5jdGlvbigpe2Zvcih2YXIgYSBpbiAkYikkYlthXSh2b2lkIDAsITApfSksY2EuY29ycz0h
IV9iJiYid2l0aENyZWRlbnRpYWxzImluIF9iLF9iPWNhLmFqYXg9ISFfYixfYiYmZWEuYWpheFRy
YW5zcG9ydChmdW5jdGlvbihhKXtpZighYS5jcm9zc0RvbWFpbnx8Y2EuY29ycyl7dmFyIGI7cmV0
dXJue3NlbmQ6ZnVuY3Rpb24oYyxkKXt2YXIgZSxmPWEueGhyKCksZz0rK1piO2lmKGYub3Blbihh
LnR5cGUsYS51cmwsYS5hc3luYyxhLnVzZXJuYW1lLGEucGFzc3dvcmQpLGEueGhyRmllbGRzKWZv
cihlIGluIGEueGhyRmllbGRzKWZbZV09YS54aHJGaWVsZHNbZV07YS5taW1lVHlwZSYmZi5vdmVy
cmlkZU1pbWVUeXBlJiZmLm92ZXJyaWRlTWltZVR5cGUoYS5taW1lVHlwZSksYS5jcm9zc0RvbWFp
bnx8Y1siWC1SZXF1ZXN0ZWQtV2l0aCJdfHwoY1siWC1SZXF1ZXN0ZWQtV2l0aCJdPSJYTUxIdHRw
UmVxdWVzdCIpO2ZvcihlIGluIGMpdm9pZCAwIT09Y1tlXSYmZi5zZXRSZXF1ZXN0SGVhZGVyKGUs
Y1tlXSsiIik7Zi5zZW5kKGEuaGFzQ29udGVudCYmYS5kYXRhfHxudWxsKSxiPWZ1bmN0aW9uKGMs
ZSl7dmFyIGgsaSxqO2lmKGImJihlfHw0PT09Zi5yZWFkeVN0YXRlKSlpZihkZWxldGUgJGJbZ10s
Yj12b2lkIDAsZi5vbnJlYWR5c3RhdGVjaGFuZ2U9ZWEubm9vcCxlKTQhPT1mLnJlYWR5U3RhdGUm
JmYuYWJvcnQoKTtlbHNle2o9e30saD1mLnN0YXR1cywic3RyaW5nIj09dHlwZW9mIGYucmVzcG9u
c2VUZXh0JiYoai50ZXh0PWYucmVzcG9uc2VUZXh0KTt0cnl7aT1mLnN0YXR1c1RleHR9Y2F0Y2go
ayl7aT0iIn1ofHwhYS5pc0xvY2FsfHxhLmNyb3NzRG9tYWluPzEyMjM9PT1oJiYoaD0yMDQpOmg9
ai50ZXh0PzIwMDo0MDR9aiYmZChoLGksaixmLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKX0sYS5h
c3luYz80PT09Zi5yZWFkeVN0YXRlP3NldFRpbWVvdXQoYik6Zi5vbnJlYWR5c3RhdGVjaGFuZ2U9
JGJbZ109YjpiKCl9LGFib3J0OmZ1bmN0aW9uKCl7YiYmYih2b2lkIDAsITApfX19fSksZWEuYWph
eFNldHVwKHthY2NlcHRzOntzY3JpcHQ6InRleHQvamF2YXNjcmlwdCwgYXBwbGljYXRpb24vamF2
YXNjcmlwdCwgYXBwbGljYXRpb24vZWNtYXNjcmlwdCwgYXBwbGljYXRpb24veC1lY21hc2NyaXB0
In0sY29udGVudHM6e3NjcmlwdDovKD86amF2YXxlY21hKXNjcmlwdC99LGNvbnZlcnRlcnM6eyJ0
ZXh0IHNjcmlwdCI6ZnVuY3Rpb24oYSl7cmV0dXJuIGVhLmdsb2JhbEV2YWwoYSksYX19fSksZWEu
YWpheFByZWZpbHRlcigic2NyaXB0IixmdW5jdGlvbihhKXt2b2lkIDA9PT1hLmNhY2hlJiYoYS5j
YWNoZT0hMSksYS5jcm9zc0RvbWFpbiYmKGEudHlwZT0iR0VUIixhLmdsb2JhbD0hMSl9KSxlYS5h
amF4VHJhbnNwb3J0KCJzY3JpcHQiLGZ1bmN0aW9uKGEpe2lmKGEuY3Jvc3NEb21haW4pe3ZhciBi
LGM9b2EuaGVhZHx8ZWEoImhlYWQiKVswXXx8b2EuZG9jdW1lbnRFbGVtZW50O3JldHVybntzZW5k
OmZ1bmN0aW9uKGQsZSl7Yj1vYS5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSxiLmFzeW5jPSEwLGEu
c2NyaXB0Q2hhcnNldCYmKGIuY2hhcnNldD1hLnNjcmlwdENoYXJzZXQpLGIuc3JjPWEudXJsLGIu
b25sb2FkPWIub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKGEsYyl7KGN8fCFiLnJlYWR5U3Rh
dGV8fC9sb2FkZWR8Y29tcGxldGUvLnRlc3QoYi5yZWFkeVN0YXRlKSkmJihiLm9ubG9hZD1iLm9u
cmVhZHlzdGF0ZWNoYW5nZT1udWxsLGIucGFyZW50Tm9kZSYmYi5wYXJlbnROb2RlLnJlbW92ZUNo
aWxkKGIpLGI9bnVsbCxjfHxlKDIwMCwic3VjY2VzcyIpKX0sYy5pbnNlcnRCZWZvcmUoYixjLmZp
cnN0Q2hpbGQpfSxhYm9ydDpmdW5jdGlvbigpe2ImJmIub25sb2FkKHZvaWQgMCwhMCl9fX19KTt2
YXIgYWM9W10sYmM9Lyg9KVw/KD89JnwkKXxcP1w/LztlYS5hamF4U2V0dXAoe2pzb25wOiJjYWxs
YmFjayIsanNvbnBDYWxsYmFjazpmdW5jdGlvbigpe3ZhciBhPWFjLnBvcCgpfHxlYS5leHBhbmRv
KyJfIitFYisrO3JldHVybiB0aGlzW2FdPSEwLGF9fSksZWEuYWpheFByZWZpbHRlcigianNvbiBq
c29ucCIsZnVuY3Rpb24oYixjLGQpe3ZhciBlLGYsZyxoPWIuanNvbnAhPT0hMSYmKGJjLnRlc3Qo
Yi51cmwpPyJ1cmwiOiJzdHJpbmciPT10eXBlb2YgYi5kYXRhJiYhKGIuY29udGVudFR5cGV8fCIi
KS5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKSYmYmMudGVzdChi
LmRhdGEpJiYiZGF0YSIpO3JldHVybiBofHwianNvbnAiPT09Yi5kYXRhVHlwZXNbMF0/KGU9Yi5q
c29ucENhbGxiYWNrPWVhLmlzRnVuY3Rpb24oYi5qc29ucENhbGxiYWNrKT9iLmpzb25wQ2FsbGJh
Y2soKTpiLmpzb25wQ2FsbGJhY2ssaD9iW2hdPWJbaF0ucmVwbGFjZShiYywiJDEiK2UpOmIuanNv
bnAhPT0hMSYmKGIudXJsKz0oRmIudGVzdChiLnVybCk/IiYiOiI/IikrYi5qc29ucCsiPSIrZSks
Yi5jb252ZXJ0ZXJzWyJzY3JpcHQganNvbiJdPWZ1bmN0aW9uKCl7cmV0dXJuIGd8fGVhLmVycm9y
KGUrIiB3YXMgbm90IGNhbGxlZCIpLGdbMF19LGIuZGF0YVR5cGVzWzBdPSJqc29uIixmPWFbZV0s
YVtlXT1mdW5jdGlvbigpe2c9YXJndW1lbnRzfSxkLmFsd2F5cyhmdW5jdGlvbigpe2FbZV09Zixi
W2VdJiYoYi5qc29ucENhbGxiYWNrPWMuanNvbnBDYWxsYmFjayxhYy5wdXNoKGUpKSxnJiZlYS5p
c0Z1bmN0aW9uKGYpJiZmKGdbMF0pLGc9Zj12b2lkIDB9KSwic2NyaXB0Iik6dm9pZCAwfSksZWEu
cGFyc2VIVE1MPWZ1bmN0aW9uKGEsYixjKXtpZighYXx8InN0cmluZyIhPXR5cGVvZiBhKXJldHVy
biBudWxsOyJib29sZWFuIj09dHlwZW9mIGImJihjPWIsYj0hMSksYj1ifHxvYTt2YXIgZD1sYS5l
eGVjKGEpLGU9IWMmJltdO3JldHVybiBkP1tiLmNyZWF0ZUVsZW1lbnQoZFsxXSldOihkPWVhLmJ1
aWxkRnJhZ21lbnQoW2FdLGIsZSksZSYmZS5sZW5ndGgmJmVhKGUpLnJlbW92ZSgpLGVhLm1lcmdl
KFtdLGQuY2hpbGROb2RlcykpfTt2YXIgY2M9ZWEuZm4ubG9hZDtlYS5mbi5sb2FkPWZ1bmN0aW9u
KGEsYixjKXtpZigic3RyaW5nIiE9dHlwZW9mIGEmJmNjKXJldHVybiBjYy5hcHBseSh0aGlzLGFy
Z3VtZW50cyk7dmFyIGQsZSxmLGc9dGhpcyxoPWEuaW5kZXhPZigiICIpO3JldHVybiBoPj0wJiYo
ZD1lYS50cmltKGEuc2xpY2UoaCxhLmxlbmd0aCkpLGE9YS5zbGljZSgwLGgpKSxlYS5pc0Z1bmN0
aW9uKGIpPyhjPWIsYj12b2lkIDApOmImJiJvYmplY3QiPT10eXBlb2YgYiYmKGY9IlBPU1QiKSxn
Lmxlbmd0aD4wJiZlYS5hamF4KHt1cmw6YSx0eXBlOmYsZGF0YVR5cGU6Imh0bWwiLGRhdGE6Yn0p
LmRvbmUoZnVuY3Rpb24oYSl7ZT1hcmd1bWVudHMsZy5odG1sKGQ/ZWEoIjxkaXY+IikuYXBwZW5k
KGVhLnBhcnNlSFRNTChhKSkuZmluZChkKTphKX0pLmNvbXBsZXRlKGMmJmZ1bmN0aW9uKGEsYil7
Zy5lYWNoKGMsZXx8W2EucmVzcG9uc2VUZXh0LGIsYV0pfSksdGhpc30sZWEuZWFjaChbImFqYXhT
dGFydCIsImFqYXhTdG9wIiwiYWpheENvbXBsZXRlIiwiYWpheEVycm9yIiwiYWpheFN1Y2Nlc3Mi
LCJhamF4U2VuZCJdLGZ1bmN0aW9uKGEsYil7ZWEuZm5bYl09ZnVuY3Rpb24oYSl7cmV0dXJuIHRo
aXMub24oYixhKX19KSxlYS5leHByLmZpbHRlcnMuYW5pbWF0ZWQ9ZnVuY3Rpb24oYSl7cmV0dXJu
IGVhLmdyZXAoZWEudGltZXJzLGZ1bmN0aW9uKGIpe3JldHVybiBhPT09Yi5lbGVtfSkubGVuZ3Ro
fTt2YXIgZGM9YS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7ZWEub2Zmc2V0PXtzZXRPZmZzZXQ6
ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGs9ZWEuY3NzKGEsInBvc2l0aW9uIiks
bD1lYShhKSxtPXt9OyJzdGF0aWMiPT09ayYmKGEuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIiks
aD1sLm9mZnNldCgpLGY9ZWEuY3NzKGEsInRvcCIpLGk9ZWEuY3NzKGEsImxlZnQiKSxqPSgiYWJz
b2x1dGUiPT09a3x8ImZpeGVkIj09PWspJiZlYS5pbkFycmF5KCJhdXRvIixbZixpXSk+LTEsaj8o
ZD1sLnBvc2l0aW9uKCksZz1kLnRvcCxlPWQubGVmdCk6KGc9cGFyc2VGbG9hdChmKXx8MCxlPXBh
cnNlRmxvYXQoaSl8fDApLGVhLmlzRnVuY3Rpb24oYikmJihiPWIuY2FsbChhLGMsaCkpLG51bGwh
PWIudG9wJiYobS50b3A9Yi50b3AtaC50b3ArZyksbnVsbCE9Yi5sZWZ0JiYobS5sZWZ0PWIubGVm
dC1oLmxlZnQrZSksInVzaW5nImluIGI/Yi51c2luZy5jYWxsKGEsbSk6bC5jc3MobSl9fSxlYS5m
bi5leHRlbmQoe29mZnNldDpmdW5jdGlvbihhKXtpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiB2
b2lkIDA9PT1hP3RoaXM6dGhpcy5lYWNoKGZ1bmN0aW9uKGIpe2VhLm9mZnNldC5zZXRPZmZzZXQo
dGhpcyxhLGIpfSk7dmFyIGIsYyxkPXt0b3A6MCxsZWZ0OjB9LGU9dGhpc1swXSxmPWUmJmUub3du
ZXJEb2N1bWVudDtpZihmKXJldHVybiBiPWYuZG9jdW1lbnRFbGVtZW50LGVhLmNvbnRhaW5zKGIs
ZSk/KHR5cGVvZiBlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCE9PXhhJiYoZD1lLmdldEJvdW5kaW5n
Q2xpZW50UmVjdCgpKSxjPVYoZikse3RvcDpkLnRvcCsoYy5wYWdlWU9mZnNldHx8Yi5zY3JvbGxU
b3ApLShiLmNsaWVudFRvcHx8MCksCmxlZnQ6ZC5sZWZ0KyhjLnBhZ2VYT2Zmc2V0fHxiLnNjcm9s
bExlZnQpLShiLmNsaWVudExlZnR8fDApfSk6ZH0scG9zaXRpb246ZnVuY3Rpb24oKXtpZih0aGlz
WzBdKXt2YXIgYSxiLGM9e3RvcDowLGxlZnQ6MH0sZD10aGlzWzBdO3JldHVybiJmaXhlZCI9PT1l
YS5jc3MoZCwicG9zaXRpb24iKT9iPWQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk6KGE9dGhpcy5v
ZmZzZXRQYXJlbnQoKSxiPXRoaXMub2Zmc2V0KCksZWEubm9kZU5hbWUoYVswXSwiaHRtbCIpfHwo
Yz1hLm9mZnNldCgpKSxjLnRvcCs9ZWEuY3NzKGFbMF0sImJvcmRlclRvcFdpZHRoIiwhMCksYy5s
ZWZ0Kz1lYS5jc3MoYVswXSwiYm9yZGVyTGVmdFdpZHRoIiwhMCkpLHt0b3A6Yi50b3AtYy50b3At
ZWEuY3NzKGQsIm1hcmdpblRvcCIsITApLGxlZnQ6Yi5sZWZ0LWMubGVmdC1lYS5jc3MoZCwibWFy
Z2luTGVmdCIsITApfX19LG9mZnNldFBhcmVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChm
dW5jdGlvbigpe2Zvcih2YXIgYT10aGlzLm9mZnNldFBhcmVudHx8ZGM7YSYmIWVhLm5vZGVOYW1l
KGEsImh0bWwiKSYmInN0YXRpYyI9PT1lYS5jc3MoYSwicG9zaXRpb24iKTspYT1hLm9mZnNldFBh
cmVudDtyZXR1cm4gYXx8ZGN9KX19KSxlYS5lYWNoKHtzY3JvbGxMZWZ0OiJwYWdlWE9mZnNldCIs
c2Nyb2xsVG9wOiJwYWdlWU9mZnNldCJ9LGZ1bmN0aW9uKGEsYil7dmFyIGM9L1kvLnRlc3QoYik7
ZWEuZm5bYV09ZnVuY3Rpb24oZCl7cmV0dXJuIERhKHRoaXMsZnVuY3Rpb24oYSxkLGUpe3ZhciBm
PVYoYSk7cmV0dXJuIHZvaWQgMD09PWU/Zj9iIGluIGY/ZltiXTpmLmRvY3VtZW50LmRvY3VtZW50
RWxlbWVudFtkXTphW2RdOnZvaWQoZj9mLnNjcm9sbFRvKGM/ZWEoZikuc2Nyb2xsTGVmdCgpOmUs
Yz9lOmVhKGYpLnNjcm9sbFRvcCgpKTphW2RdPWUpfSxhLGQsYXJndW1lbnRzLmxlbmd0aCxudWxs
KX19KSxlYS5lYWNoKFsidG9wIiwibGVmdCJdLGZ1bmN0aW9uKGEsYil7ZWEuY3NzSG9va3NbYl09
QShjYS5waXhlbFBvc2l0aW9uLGZ1bmN0aW9uKGEsYyl7cmV0dXJuIGM/KGM9YmIoYSxiKSxkYi50
ZXN0KGMpP2VhKGEpLnBvc2l0aW9uKClbYl0rInB4IjpjKTp2b2lkIDB9KX0pLGVhLmVhY2goe0hl
aWdodDoiaGVpZ2h0IixXaWR0aDoid2lkdGgifSxmdW5jdGlvbihhLGIpe2VhLmVhY2goe3BhZGRp
bmc6ImlubmVyIithLGNvbnRlbnQ6YiwiIjoib3V0ZXIiK2F9LGZ1bmN0aW9uKGMsZCl7ZWEuZm5b
ZF09ZnVuY3Rpb24oZCxlKXt2YXIgZj1hcmd1bWVudHMubGVuZ3RoJiYoY3x8ImJvb2xlYW4iIT10
eXBlb2YgZCksZz1jfHwoZD09PSEwfHxlPT09ITA/Im1hcmdpbiI6ImJvcmRlciIpO3JldHVybiBE
YSh0aGlzLGZ1bmN0aW9uKGIsYyxkKXt2YXIgZTtyZXR1cm4gZWEuaXNXaW5kb3coYik/Yi5kb2N1
bWVudC5kb2N1bWVudEVsZW1lbnRbImNsaWVudCIrYV06OT09PWIubm9kZVR5cGU/KGU9Yi5kb2N1
bWVudEVsZW1lbnQsTWF0aC5tYXgoYi5ib2R5WyJzY3JvbGwiK2FdLGVbInNjcm9sbCIrYV0sYi5i
b2R5WyJvZmZzZXQiK2FdLGVbIm9mZnNldCIrYV0sZVsiY2xpZW50IithXSkpOnZvaWQgMD09PWQ/
ZWEuY3NzKGIsYyxnKTplYS5zdHlsZShiLGMsZCxnKX0sYixmP2Q6dm9pZCAwLGYsbnVsbCl9fSl9
KSxlYS5mbi5zaXplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGVuZ3RofSxlYS5mbi5hbmRTZWxm
PWVhLmZuLmFkZEJhY2ssImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZCYmZGVm
aW5lKCJqcXVlcnkiLFtdLGZ1bmN0aW9uKCl7cmV0dXJuIGVhfSk7dmFyIGVjPWEualF1ZXJ5LGZj
PWEuJDtyZXR1cm4gZWEubm9Db25mbGljdD1mdW5jdGlvbihiKXtyZXR1cm4gYS4kPT09ZWEmJihh
LiQ9ZmMpLGImJmEualF1ZXJ5PT09ZWEmJihhLmpRdWVyeT1lYyksZWF9LHR5cGVvZiBiPT09eGEm
JihhLmpRdWVyeT1hLiQ9ZWEpLGVhfSksZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO3ZhciBiPSIw
LjAuMiIsYz0iY2RuLmJpdG1lZGlhbmV0d29yay5jb20iPT09bG9jYXRpb24uaG9zdCxkPWZ1bmN0
aW9uKGEsYixkLGUpe3ZhciBmPSJodHRwOi8vaS0iK2QrIi5iLTAuYWQuYmVuY2gudXRvcnJlbnQu
Y29tLyIsZz17ZXZlbnROYW1lOmErIi4iK2J9O2Zvcih2YXIgaCBpbiBlKWdbaF09ZVtoXTt2YXIg
aT13aW5kb3cubG9jYXRpb24uc2VhcmNoLnNsaWNlKDEpLnNwbGl0KCImIik7Zm9yKHZhciBqIGlu
IGkpe3ZhciBrPWRlY29kZVVSSUNvbXBvbmVudChpW2pdKS5zcGxpdCgiPSIpO2dba1swXV09a1sx
XSwiZ2VvIj09PWtbMF0mJihnLmFjdGlvbj1rWzFdKX1nLmFjdGlvbnx8KGcuYWN0aW9uPSJub25l
Iik7dmFyIGw9InVuZGVmaW5lZCIhPXR5cGVvZiBKU09OP0pTT04uc3RyaW5naWZ5KGcpOiIiLG09
QmFzZTY0LmVuY29kZShsKTtyZXR1cm4gZis9ImU/aT0iK2QrIiZlPSIrbSxmKz1jPyIiOiImZGVi
dWc9MSJ9LGU9ZnVuY3Rpb24oYixjLGUsZixnKXtpZihmPWZ8fGEuQmVuY2guaSwhZil0aHJvdyJN
dXN0IHNldCBhbiBpLXZhbCB0byBzZW5kIGEgQmVuY2ggcGluZyI7dmFyIGg9ZChiLGMsZixlKSxp
PSQuZ2V0SlNPTihoKyImY2FsbGJhY2s9PyIpOyJmdW5jdGlvbiI9PXR5cGVvZiBnJiZpLnN1Y2Nl
c3MoZyl9O2EuQmVuY2g9e1ZFUlNJT046YixzZW5kUGluZzplfX0odGhpcyksQmVuY2guaT0xMDA1
LHZvaWQgMD09PXdpbmRvdy5hZG9zP0JlbmNoLnNlbmRQaW5nKCJhcC5hZHRhZyIsImFkYmxvY2tl
ZCIpOndpbmRvdy5kaXZOYW1lPSJidF9hcF9kaXYiLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe2Z1
bmN0aW9uIGEoYSl7d2luZG93LmNvbnNvbGUmJmNvbnNvbGUubG9nKGEpfWZ1bmN0aW9uIGIoYSl7
dmFyIGI9MDtmb3IodmFyIGMgaW4gYSliKz0xO3JldHVybiAwPT09Yn1mdW5jdGlvbiBjKCl7dmFy
IGEsYj1uYXZpZ2F0b3IudXNlckFnZW50LGM9Yi5tYXRjaCgvKG9wZXJhfGNocm9tZXxzYWZhcml8
ZmlyZWZveHxtc2llfHRyaWRlbnQoPz1cLykpXC8/XHMqKFxkKykvaSl8fFtdO3JldHVybi90cmlk
ZW50L2kudGVzdChjWzFdKT8oYT0vXGJydlsgOl0rKFxkKykvZy5leGVjKGIpfHxbXSwiSUUiKyhh
WzFdfHwiIikpOiJDaHJvbWUiPT09Y1sxXSYmKGE9Yi5tYXRjaCgvXGIoT1BSfEVkZ2UpXC8oXGQr
KS8pLG51bGwhPWEpP2FbMV0ucmVwbGFjZSgiT1BSIiwiT3BlcmEiKSthWzJdOihjPWNbMl0/W2Nb
MV0sY1syXV06W25hdmlnYXRvci5hcHBOYW1lLG5hdmlnYXRvci5hcHBWZXJzaW9uLCItPyJdLG51
bGwhPShhPWIubWF0Y2goL3ZlcnNpb25cLyhcZCspL2kpKSYmYy5zcGxpY2UoMSwxLGFbMV0pLGNb
MF0rY1sxXSl9ZnVuY3Rpb24gZCgpe3ZhciBhPW51bGw7dHJ5e2lmKGE9bmV3IEFjdGl2ZVhPYmpl
Y3QoIlNob2Nrd2F2ZUZsYXNoLlNob2Nrd2F2ZUZsYXNoIiksbnVsbCE9YSl0cnl7dmFyIGI9YS5H
ZXRWYXJpYWJsZSgiJHZlcnNpb24iKS5zcGxpdCgiICIsMilbMV0uc3BsaXQoIiwiKVswXTtyZXR1
cm4gYj49MTE/YjpudWxsfWNhdGNoKGMpe319Y2F0Y2goYyl7aWYoYT1uYXZpZ2F0b3IucGx1Z2lu
c1siU2hvY2t3YXZlIEZsYXNoIl0sbnVsbCE9YSl7dmFyIGI9YS52ZXJzaW9uO3JldHVybiBifHwo
Yj1hLmRlc2NyaXB0aW9uLnNwbGl0KCIgIilbMl0pLGI9cGFyc2VJbnQoYiksYiYmYj49MTE/Yjpu
dWxsfX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBlKCl7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgic2NyaXB0Iik7YS50eXBlPSJ0ZXh0L2phdmFzY3JpcHQiLGEuc3JjPSJodHRwczovL2dldGZp
cmVidWcuY29tL2ZpcmVidWctbGl0ZS5qcyNzdGFydEluTmV3V2luZG93LHN0YXJ0T3BlbmVkIixk
b2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENoaWxkKGEpfWZ1
bmN0aW9uIGYoKXt2YXIgYj13aW5kb3cubG9jYXRpb24uc2VhcmNoLnN1YnN0cmluZygxKS5zcGxp
dCgiJiIpO2Zvcih2YXIgZiBpbiBiKXt2YXIgZz1kZWNvZGVVUklDb21wb25lbnQoYltmXSksaD1n
LnNwbGl0KCI9Iik7aWYoaFswXWluIGwpb1toWzBdXT1oWzFdO2Vsc2V7aWYoImRlYnVnIj09PWhb
MF0pe2UoKTtjb250aW51ZX0iY2xpZW50ZGF0YSI9PT1oWzBdJiYiXyI9PT1oWzBdWzBdfHwoby5h
el9wcm9wc1toWzBdXT1oWzFdKSxvLmF6X2tleXdvcmRzLnB1c2goZyl9fW8uYWR0PW8uYWR0P3Bh
cnNlSW50KG8uYWR0KTpsLmFkdCxvLndyPW8ud3I/cGFyc2VJbnQoby53cik6bC53cixvLnNpdGU9
by5zaXRlP3BhcnNlSW50KG8uc2l0ZSk6bC5zaXRlLG8ud3IqPTFlMyxhKCJVc2luZyBwYXJhbXM6
ICIrbyk7dmFyIGk9ZCgpO28uYXpfcHJvcHMuZmxhc2g9bnVsbCE9aT9pOiJub25lIjt2YXIgaj1j
KCk7cmV0dXJuIG8uYXpfcHJvcHMuYnJvd3Nlcj1udWxsIT1qP2o6InVua25vd24iLG8uYXpfa2V5
d29yZHMucHVzaCgiZmxhc2g9IitpKSxvLmF6X2tleXdvcmRzLnB1c2goImJyb3dzZXI9IitqKSxv
fWZ1bmN0aW9uIGcoKXt2YXIgYT0hMSxiPSExO2Fkb3Mub24oIkltcHJlc3Npb25Db3VudGVkIixm
dW5jdGlvbihjKXthPSEwO3ZhciBkPXthZHQ6by5hZHQsbnc6Yy5kYXRhLnNoaW0ubnd8fDAsYXY6
Yy5kYXRhLnNoaW0uYXZ8fDAsY206Yy5kYXRhLnNoaW0uY218fDAsZmw6Yy5kYXRhLnNoaW0uZmx8
fDAsY3I6Yy5kYXRhLnNoaW0uY3J8fDAsZmM6Yy5kYXRhLnNoaW0uZmN8fDB9O3RyeXt3aW5kb3cu
ZXh0ZXJuYWwucmVwb3J0QWREYXRhKEpTT04uc3RyaW5naWZ5KGQpKX1jYXRjaChlKXt9Ynx8KEJl
bmNoLnNlbmRQaW5nKCJhcC5hZHRhZyIsImFkcmVjZWl2ZWQiLGQpLGI9ITApfSksYWRvcy5vbigi
cmVxdWVzdFN0YXJ0IixmdW5jdGlvbihhKXtCZW5jaC5zZW5kUGluZygiYXAuYWR0YWciLCJhZHJl
cXVlc3QiKX0pfWZ1bmN0aW9uIGgoKXthKCJSZWxvYWRpbmcgYWQiKSxhZG9zX3NldFBhc3NiYWNr
VGltZW91dCgzZTQpO3ZhciBjPWFkb3NfYWRkX3BsYWNlbWVudCg1NjgyLG8uc2l0ZSxuLG8uYWR0
KTtiKG8uYXpfcHJvcHMpfHxjLnNldFByb3BlcnRpZXMoby5hel9wcm9wcyksYihvLmF6X2tleXdv
cmRzKXx8YWRvc19zZXRLZXl3b3JkcyhvLmF6X2tleXdvcmRzLmpvaW4oIiwgIikpLGFkb3Nfc2V0
RG9tYWluKCJlbmdpbmUuYml0bWVkaWFuZXR3b3JrLmNvbSIpLGFkb3NfbG9hZCgpfWZ1bmN0aW9u
IGkoKXtvLndyPjAmJnNldFRpbWVvdXQoIndpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKSIsby53cil9
ZnVuY3Rpb24gaigpe3ZhciBhPW1bby5hZHRdLGI9ZG9jdW1lbnQuYm9keTtiLnN0eWxlLndpZHRo
PWFbMF0rInB4IixiLnN0eWxlLmhlaWdodD1hWzFdKyJweCIsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQobikub25jbGljaz1mdW5jdGlvbihhKXtyZXR1cm4gQmVuY2guc2VuZFBpbmcoImFwLmFkdGFn
IiwiYWRjbGljayIse2FkdDpvLmFkdH0pLCEwfSxhZG9zX2xvYWREaXYobil9ZnVuY3Rpb24gaygp
e2YoKSxnKCksaCgpLGkoKX12YXIgbD17d3I6MCxhZHQ6NSxzaXRlOjMzMDQ5fSxtPXs0Ols3Mjgs
OTBdLDU6WzMwMCwyNTBdLDY6WzE2MCw2MDBdLDk6WzE4MCwxNTBdLDExOlsyNDAsNDAwXSwxMzpb
ODgsMzFdLDE0OlsxMjAsNjBdLDE2OlsxMjUsMTI1XSwyMzpbMzIwLDUwXSwyNDpbMzIwLDQ4MF0s
NDM6WzMwMCw2MDBdLDc3Ols5NzAsOTBdLDM4MDpbNDAwLDMwMF0sOTI1Ols2NDAsNDgwXSwxMTU0
Ols0ODAsMzIwXSwxMjI0Ols5MDgsMzRdLDE1MTc6WzUwMCwzNzVdLDE4NzA6WzcyOCwyNDVdLDE4
ODI6WzE3MCwyNDBdLDE4ODY6WzE4OCwxMThdLDE5OTg6WzQ1MywxODJdLDIwNjE6WzE3MCwxNDBd
LDIwNzE6WzE5MCwxOTBdLDIwODU6Wzk2MCwxNzBdLDI5MTg6WzMwMSwyNTBdLDI5Mjg6Wzg0OCw0
NzddfSxuPSJidF9hcF9kaXYiLG89e2F6X3Byb3BzOnt9LGF6X2tleXdvcmRzOltdfTtyZXR1cm4g
YSgiWW91IGFyZSB1c2luZyAiK2MoKSksaygpLEJlbmNoLnNlbmRQaW5nKCJhcC5hZHRhZyIsInBh
Z2Vsb2FkZWQiLHthZHQ6by5hZHR9KSx7c2V0dXA6an19dm9pZCAwIT09d2luZG93LmFkb3MmJih3
aW5kb3cuYnRhcD17fSx3aW5kb3cuYnRhcC5sb2FkZXI9YSgpKX0oKTt2YXIgX2NvbXNjb3JlPV9j
b21zY29yZXx8W107X2NvbXNjb3JlLnB1c2goe2MxOiIyIixjMjoiMTczMzA5NTIifSksZnVuY3Rp
b24oKXt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSxiPWRvY3VtZW50Lmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKVswXTthLmFzeW5jPSEwLGEuc3JjPSgiaHR0cHM6
Ij09ZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2w/Imh0dHBzOi8vc2IiOiJodHRwOi8vYiIpKyIu
c2NvcmVjYXJkcmVzZWFyY2guY29tL2JlYWNvbi5qcyIsYi5wYXJlbnROb2RlLmluc2VydEJlZm9y
ZShhLGIpfSgpOw==
|
|
48 | /video/adplayer.html?timestamp=1481644853337&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 01/06/79 23:38:08 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481644853337&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: UvIXtasOuWWBogCfqpwjI3BU9gAY80kScdpGDYXq1/Lw2MTtyfv6MpGgkLJky3Ga6PRNmS+bMhg=
x-amz-request-id: FE8F000B7FBDFB12
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 59077
Date: Tue, 13 Dec 2016 16:00:53 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Tue, 13 Dec 2016 23:36:16 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
49 | /video/css/video.ads.css | text/css | video.ads.css | 200 OK | TEXT | 256.0 B | 01/12/79 14:32:59 |
Download
|
|
SHA256
|
14744abafb425401244e96fb149d5f2c01b8a6d11458cd0438f88fe2aef6e200
|
Referer
|
http://cdn.bitmedianetwork.com/video/adplayer.html?timestamp=1481644853337&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t
|
Magic
|
Inconclusive. Probably text (TEXT)
|
Request
|
GET /video/css/video.ads.css HTTP/1.1
Accept: */*
Referer: http://cdn.bitmedianetwork.com/video/adplayer.html?timestamp=1481644853337&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: yFfSIgo7uG8EPkwv66l2HPgRknJxJkRz9SWZq6Eh5aD1eXRAGcvfJtzRZ9MTSNW1rqUwezQlOnE=
x-amz-request-id: BEBDE0F2E0F015B7
x-amz-meta-cache-control: max-age=86400
Content-Type: text/css
Server: AmazonS3
Age: 147129
Date: Tue, 13 Dec 2016 16:00:54 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:36 GMT
Expires: Mon, 12 Dec 2016 23:08:45 GMT
Content-Length: 256
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
/**
* videojs.ads.css
*/
/* Ad playback */
.vjs-ad-playing .vjs-progress-control {
pointer-events: none;
}
.vjs-ad-playing ...
|
LyoqCiAqIHZpZGVvanMuYWRzLmNzcwogKi8KCi8qIEFkIHBsYXliYWNrICovCi52anMtYWQtcGxh
eWluZyAudmpzLXByb2dyZXNzLWNvbnRyb2wgewogIHBvaW50ZXItZXZlbnRzOiBub25lOwp9Ci52
anMtYWQtcGxheWluZyAudmpzLXBsYXktcHJvZ3Jlc3MgewogIGJhY2tncm91bmQtY29sb3I6ICNm
ZmU0MDA7Cn0KCi8qIEFkIGxvYWRpbmcgKi8KLnZqcy1hZC1sb2FkaW5nIC52anMtbG9hZGluZy1z
cGlubmVyIHsKICBkaXNwbGF5OiBibG9jazsKfQ==
|
|
50 | /video/css/videojs.vast.css | text/css | videojs.vast.css | 200 OK | TEXT | 591.0 B | 01/18/79 00:51:57 |
Download
|
|
SHA256
|
b3d9d8574cedcc5e32248989adfde7c13f8b22bf183aa499a42e9b4039df9f2e
|
Referer
|
http://cdn.bitmedianetwork.com/video/adplayer.html?timestamp=1481644853337&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t
|
Magic
|
Inconclusive. Probably text (TEXT)
|
Request
|
GET /video/css/videojs.vast.css HTTP/1.1
Accept: */*
Referer: http://cdn.bitmedianetwork.com/video/adplayer.html?timestamp=1481644853337&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: IO6E/hOzt1UFPh1s5eM00UEAEQh8/+1SoGFLNQKKr0ewDVjb+1WWjof0lvv9cjeF
x-amz-request-id: 0077C9B844A34C90
x-amz-meta-cache-control: max-age=86400
Content-Type: text/css
Server: AmazonS3
Age: 146968
Date: Tue, 13 Dec 2016 16:00:54 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:38 GMT
Expires: Mon, 12 Dec 2016 23:11:26 GMT
Content-Length: 591
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
.vast-skip-button {
display: block;
position: absolute;
top: 5px;
right: 0;
width: auto;
background-colo...
|
LnZhc3Qtc2tpcC1idXR0b24gewogICAgZGlzcGxheTogYmxvY2s7CiAgICBwb3NpdGlvbjogYWJz
b2x1dGU7CiAgICB0b3A6IDVweDsKICAgIHJpZ2h0OiAwOwogICAgd2lkdGg6IGF1dG87CiAgICBi
YWNrZ3JvdW5kLWNvbG9yOiAjMDAwOwogICAgY29sb3I6ICNBQUE7CiAgICBmb250LXNpemU6IDEy
cHg7CiAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICBsaW5lLWhlaWdodDogMTJweDsKICAgIHBh
ZGRpbmc6IDEwcHg7CiAgICB6LWluZGV4OiAyOwp9CgoudmFzdC1za2lwLWJ1dHRvbi5lbmFibGVk
IHsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGNvbG9yOiAjZmZmOwp9CgoudmFzdC1za2lwLWJ1
dHRvbi5lbmFibGVkOmhvdmVyIHsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGJhY2tncm91bmQ6
ICMzMzM7Cn0KCi52YXN0LWJsb2NrZXIgewogICAgZGlzcGxheTogYmxvY2s7CiAgICBwb3NpdGlv
bjogYWJzb2x1dGU7CiAgICBtYXJnaW46IDA7CiAgICBwYWRkaW5nOiAwOwogICAgaGVpZ2h0OiAx
MDAlOwogICAgd2lkdGg6IDEwMCU7CiAgICB0b3A6IDA7CiAgICBsZWZ0OiAwOwogICAgcmlnaHQ6
IDA7CiAgICBib3R0b206IDA7Cn0K
|
|
51 | /video/css/video-js.css | text/css | video-js.css | 200 OK | TEXT | 40.8 KB | 01/07/79 16:12:00 |
Download
|
|
SHA256
|
aa2e85a342e639d293012071c3db2c46f6677678838f9ce592dc71fd2fe6c890
|
Referer
|
http://cdn.bitmedianetwork.com/video/adplayer.html?timestamp=1481644853337&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t
|
Magic
|
Inconclusive. Probably text (TEXT)
|
Request
|
GET /video/css/video-js.css HTTP/1.1
Accept: */*
Referer: http://cdn.bitmedianetwork.com/video/adplayer.html?timestamp=1481644853337&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: 8/t5/WKJO9Kc/kAVtg7tiP9XrGjh3da/gFdywLNPjyXIlZv9Yi7g82JUZCCUo+nPP6kVNlnKbcw=
x-amz-request-id: 6F52D8CA45189B3F
x-amz-meta-cache-control: max-age=86400
Content-Type: text/css
Server: AmazonS3
Age: 63993
Date: Tue, 13 Dec 2016 16:00:53 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:33 GMT
Expires: Tue, 13 Dec 2016 22:14:20 GMT
Content-Length: 41746
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
/*!
Video.js Default Styles (http://videojs.com)
Version 4.8.1
Create your own skin at http://designer.videojs.com
*/
/* SKIN
==...
|
LyohClZpZGVvLmpzIERlZmF1bHQgU3R5bGVzIChodHRwOi8vdmlkZW9qcy5jb20pClZlcnNpb24g
NC44LjEKQ3JlYXRlIHlvdXIgb3duIHNraW4gYXQgaHR0cDovL2Rlc2lnbmVyLnZpZGVvanMuY29t
CiovCi8qIFNLSU4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KVGhlIG1haW4gY2xhc3MgbmFtZSBm
b3IgYWxsIHNraW4tc3BlY2lmaWMgc3R5bGVzLiBUbyBtYWtlIHlvdXIgb3duIHNraW4sCnJlcGxh
Y2UgYWxsIG9jY3VyYW5jZXMgb2YgJ3Zqcy1kZWZhdWx0LXNraW4nIHdpdGggYSBuZXcgbmFtZS4g
VGhlbiBhZGQgeW91ciBuZXcKc2tpbiBuYW1lIHRvIHlvdXIgdmlkZW8gdGFnIGluc3RlYWQgb2Yg
dGhlIGRlZmF1bHQgc2tpbi4KZS5nLiA8dmlkZW8gY2xhc3M9InZpZGVvLWpzIG15LXNraW4tbmFt
ZSI+CiovCi52anMtZGVmYXVsdC1za2luIHsKICBjb2xvcjogI2NjY2NjYzsKfQovKiBDdXN0b20g
SWNvbiBGb250Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRoZSBjb250cm9sIGljb25zIGFyZSBm
cm9tIGEgY3VzdG9tIGZvbnQuIEVhY2ggaWNvbiBjb3JyZXNwb25kcyB0byBhIGNoYXJhY3Rlcgoo
ZS5nLiAiXGUwMDEiKS4gRm9udCBpY29ucyBhbGxvdyBmb3IgZWFzeSBzY2FsaW5nIGFuZCBjb2xv
cmluZyBvZiBpY29ucy4KKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdWaWRlb0pTJzsK
ICBzcmM6IHVybCgnZGF0YTphcHBsaWNhdGlvbi92bmQubXMtZm9udG9iamVjdDtiYXNlNjQseEJJ
QUFDQVNBQUFCQUFJQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUpBQkFBQUFBRXhRQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUVBQUFBQUFBQUErVnE0aXdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE0QWFRQmpB
RzhBYlFCdkFHOEFiZ0FBQUE0QVVnQmxBR2NBZFFCc0FHRUFjZ0FBQUJZQVZnQmxBSElBY3dCcEFH
OEFiZ0FnQURFQUxnQXdBQUFBRGdCcEFHTUFid0J0QUc4QWJ3QnVBQUFBQUFBQUFRQUFBQXNBZ0FB
REFEQlBVeTh5RHBJREtnQUFBTHdBQUFCZ1kyMWhjUHF0ckc0QUFBRWNBQUFBWEdkaGMzQUFBQUFR
QUFBQmVBQUFBQWhuYkhsbTcrMXpyUUFBQVlBQUFBNUFhR1ZoWkFPdmxBRUFBQS9BQUFBQU5taG9a
V0VKSUFVMUFBQVArQUFBQUNSb2JYUjRTNTRDMkFBQUVCd0FBQUJZYkc5allSNEVHd0FBQUJCMEFB
QUFMbTFoZUhBQUh3RG1BQUFRcEFBQUFDQnVZVzFsUkJpMDFnQUFFTVFBQUFFNWNHOXpkQUFEQUFB
QUFCSUFBQUFBSUFBREJBQUJrQUFGQUFBQ21RTE1BQUFBandLWkFzd0FBQUhyQURNQkNRQUFBQUFB
QUFBQUFBQUFBQUFBQUFFUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFPWUFBOEQvd1AvQUE4QUFR
QUFBQUFFQUFBQUFBQUFBQUFBQUFDQUFBQUFBQUFJQUFBQURBQUFBRkFBREFBRUFBQUFVQUFRQVNB
QUFBQTRBQ0FBQ0FBWUFBUUFnNEE3Z0grWUEvLzMvL3dBQUFBQUFJT0FBNEI3bUFQLzkvLzhBQWYv
aklBUWY5Um9WQUFNQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFmLy9BQThBQVFBQUFBQUFBQUFB
QUFJQUFEYzVBUUFBQUFBQkFBQUFBQUFBQUFBQUFnQUFOemtCQUFBQUFBRUFBQUFBQUFBQUFBQUNB
QUEzT1FFQUFBQUFBZ0FBLzhBRUFBUEFBQVlBRFFBQUFSRW5CeWMzSndNSEZ5RVJGemNFQUtEQVlN
Q2dvTUNnL21DZ3dBUEEvbUNnd0dEQW9QMWd3S0FCb0tEQUFBQUFBQUVBd0FCQUEwQURRQUFDQUFB
VENRSEFBb0Q5Z0FOQS9vRCtnQUFDQUlBQVFBT0FBMEFBQXdBSEFBQVRJUkVoQVNFUklZQUJRUDdB
QWNBQlFQN0FBMEQ5QUFNQS9RQUFBQUVBQUFBUEFjQURjUUFRQUFBQlBnRWVBUlVSRkE0QkppOEJJ
eEV6TndHUkNoRU5Cd2NORVFyeG9LRHhBM0VLQndZUUR2ekVEaEFHQndyeEFZRHhBQUFDQUFBQUR3
SkhBM0VBSXdBMEFBQWxJaTRDSnk0Qk5EWTNQZ0UwSmljdUFUUTJOejRCTWhZWEhnRVVCZ2NPQXlN
RFBnRWVBUlVSRkE0QkppOEJJeEV6TndJbEJRa0lDQVFIQndjSEhoOGZIZ2NIQndjSEVoSVNCeXd0
TFN3RUNBZ0pCWlFLRVEwSEJ3MFJDdkdnb1BIYkFnTUdBd2NTRWhJSEhrMVFUUjRIRWhJU0J3Y0hC
d2NzY1hSeExBTUdBd0lDbGdvSEJoQU8vTVFPRUFZSEN2RUJnUEVBQUFNQUFBQVBBM0FEY1FBb0FF
d0FYUUFBSlNJdUFpY3VBVFEyTno0Qk5DWW5MZ0UwTmpjK0FUSVdGeDRERlJRT0FnY09BeU1uSWk0
Q0p5NEJORFkzUGdFMEppY3VBVFEyTno0Qk1oWVhIZ0VVQmdjT0F5TURQZ0VlQVJVUkZBNEJKaThC
SXhFek53TFFCUWtKQ0FNSEJ3Y0hNVEV4TVFjSEJ3Y0hFUk1SQng4dklCRVJJQzhmQXdnSkNRU3JC
UWtJQ0FRSEJ3Y0hIaDhmSGdjSEJ3Y0hFaElTQnl3dExTd0VDQWdKQlpRS0VRMEhCdzBSQ3ZHZ29Q
R0FBZ1FGQkFjUkV4RUhNbnVDZXpJSEVSTVJCd2NJQ0FjZVIwMVVLeXRVVFVjZUJBVUVBbHNDQXdZ
REJ4SVNFZ2NlVFZCTkhnY1NFaElIQndjSEJ5eHhkSEVzQXdZREFnS1dDZ2NHRUE3OHhBNFFCZ2NL
OFFHQThRQUFBQVFBQUFBUEJFQURjUUF0QUZZQWVnQ0xBQUFsSWk0Q0p5NEJORFkzUGdNMU5DNENK
eTRCTkRZM1BnRXlGaGNlQXhVVURnSUhEZ01qSnlJdUFpY3VBVFEyTno0Qk5DWW5MZ0UwTmpjK0FU
SVdGeDRERlJRT0FnY09BeU1uSWk0Q0p5NEJORFkzUGdFMEppY3VBVFEyTno0Qk1oWVhIZ0VVQmdj
T0F5TURQZ0VlQVJVUkZBNEJKaThCSXhFek53TjZCUWtJQ0FRSEJ3Y0hJVE1pRWhJaU15RUhCd2NI
QnhJU0VnY29QU2tXRmlrOUtBUUlDQWtGcWdVSkNRZ0RCd2NIQnpFeE1URUhCd2NIQnhFVEVRY2ZM
eUFSRVNBdkh3TUlDUWtFcXdVSkNBZ0VCd2NIQng0Zkh4NEhCd2NIQnhJU0VnY3NMUzBzQkFnSUNR
V1VDaEVOQndjTkVRcnhvS0R4SmdJREJnTUhFaElTQnlGTVUxb3VMbHBUVENFSEVoSVNCd2NIQndj
b1cyVnNPRGhzWlZzb0F3WURBbG9DQkFVRUJ4RVRFUWN5ZTRKN01nY1JFeEVIQndnSUJ4NUhUVlFy
SzFSTlJ4NEVCUVFDV3dJREJnTUhFaElTQng1TlVFMGVCeElTRWdjSEJ3Y0hMSEYwY1N3REJnTUNB
cFlLQndZUUR2ekVEaEFHQndyeEFZRHhBQUVBd1AvQUEwQUR3QUFEQUFBSkF3SUEvc0FCUUFGQUE4
RCtBUDRBQWdBQUJBQUEvN29GWGdQQUFBUUFRUUJzQUpjQUFCTWhFU0VSQVRRdUFpY3VBeWN1QXlN
aURnSUhEZ01IRGdNSEhnTVhIZ01YSGdNWFBnTTNQZ00zUGdNMUpTNERJeUlPQWhVVUhnSXpNajRD
TnlNT0F5TWlMZ0kxTkQ0Q016SWVBaGN6SVM0REl5SU9BaFVVSGdJek1qNENOeU1PQXlNaUxnSTFO
RDRDTXpJZUFoY3pBQVZlK3FJRTNRUUxGQkFEQ0FrSkJSQlZmWnhXVlorQVdCQUVDZ29JQkE4VEN3
UUJBUVFMRXc4RUNBb0tCQkJZZ0o5VlZweDlWUkFGQ1FrSUF4QVVDd1Q5dVFRZ09FNHlMbEE3SWlB
OFZqY3JTVFlqQklvQ0NoSWFFaHNpRXdZTEZSNFRFUnNVREFLSUFkNEVJVGRPTXkxUU95SWdQRlky
TEVrMklnV0tBZ3NTR2hFYkloTUdDeFVlRXhBY0ZBd0NpQVBBKy9vRUJ2NEJSR05LTlJRRkJ3WUdC
QXNRQ2dRRUNoQUxCQVlHQndVVU5VcGpSRU5rU1RVVkJRY0dCZ01NRUFvRkFRRUZDaEFNQXdZR0J3
VVZOVWxrUXk4MVV6a2ZLRXRyUWtOclN5Z2ZPbFExRXlJWkRoa3BOaDBvT3lrVURCY2lGVFZUT1I4
b1MydENRMnRMS0I4NlZEVVRJaGtPR1NrMkhTZzdLUlFNRnlJVkFBQUFBUUNBQUVBRGdBTkFBQU1B
QUJNaEVTR0FBd0Q5QUFOQS9RQUFBQWdBT0FBQUE4QUR3QUFVQUNrQVBnQlRBSHdBcFFET0FPTUFB
QUVVSGdJek1qNENOVFF1QWlNaURnSVZCUlFlQWpNeVBnSTFOQzRDSXlJT0FoVVRGQjRDTXpJK0Fq
VTBMZ0lqSWc0Q0ZRTVVIZ0l6TWo0Q05UUXVBaU1pRGdJVkJUZ0RNUlFlQWpNeVBnSTFPQU14T0FN
eE5DNENJeUlPQWhVNEF6RWxPQU14RkI0Q016SStBalU0QXpFNEF6RTBMZ0lqSWc0Q0ZUZ0RNUU00
QXpFVUhnSXpNajRDTlRnRE1UZ0RNVFF1QWlNaURnSVZPQU14QXhRZUFqTXlQZ0kxTkM0Q0l5SU9B
aFVCZ0JRakxoc2JMaU1VRkNNdUd4c3VJeFFCRUJRaUx4c2FMeUlWRlNJdkdoc3ZJaFN3Q2hFWURR
MFlFUW9LRVJnTkRSZ1JDbkFLRVJjT0RSY1JDd3NSRncwT0Z4RUsvdkFLRVJnTkRSZ1JDZ29SR0Ew
TkdCRUsvdkFMRVJjTkRoY1JDZ29SRnc0TkZ4RUxJQkFhSXhNVUl4b1BEeG9qRkJNakdoQllDeFFh
RHc4YUZBc0xGQm9QRHhvVUN3TkFHeTRqRkJRakxoc2JMaU1VRkNNdUczQWJMeUlVRkNJdkd4b3ZJ
aFVWSWk4YS92QU5HQkVLQ2hFWURRMFlFUW9LRVJnTi92QU5GeEVMQ3hFWERRNFhFUW9LRVJjT2NB
MFlFUW9LRVJnTkRSZ1JDZ29SR0Exd0RSY1JDd3NSRncwT0Z4RUtDaEVYRGdJZ0ZDTWFEdzhhSXhR
VEl4b1FFQm9qRS83d0R4b1VDd3NVR2c4UEdoUUxDeFFhRHdBQUFBQUNBQUQvd0FRQUE4QUFCZ0FO
QUFBQkVTY0hKemNuQVFjWElSRVhOd0hBb01CZ3dLQUQ0TUNnL21DZ3dBR0EvbUNnd0dEQW9BSGd3
S0FCb0tEQUFBQUFBUUFBLzhBRUFBT0FBQ2tBQUFFeUhnSVZGQTRDSXlJdUFpY09Bd2MxUGdNMVBB
RXVBVFV1QXpVMFBnSXpBZ0JxdTR0UVVJdTdhZ29VRkJRS0tWcGRZREFhTGlNVkFRRXNSakViVUl1
N2FnT0FRWEdZVmxhWWNVRUJBUUlCS1RNZENnSWJEU01xTVJvRUJ3Y0hCQnhJVWx3eFZwaHhRUUFB
QXdBQS84QUVBQVBBQUJRQUtRQmpBQUFCSWc0Q0ZSUWVBak15UGdJMU5DNENJeEV5SGdJVkZBNENJ
eUl1QWpVMFBnSXpBUTRESXlJdUFpY3VBelUwUGdJM0Z6Z0RNUTRCRkJZWEhnTXpNajRDTno0Qk5D
WW5OeDRERlJRT0FnY0NBR3E3aTFCUWk3dHFhcnVMVUZDTHUybzFYVVlvS0VaZE5UVmRSaWdvUmww
MUFURWVSMDFVS3l0VVRVY2VIeThnRVJFZ0x4OURNVEV4TVJnM1BVQWlJa0E5TnhneE1URXhReDh2
SUJFUklDOGZBOEJRaTd0cWFydUxVRkNMdTJwcXU0dFEvd0FvUmwwMU5WMUdLQ2hHWFRVMVhVWW8v
YzhmTHlBUkVTQXZIeDVIVFZRcksxUk5SeDVETW51Q2V6SVhKUmtORFJrbEZ6SjdnbnN5UXg1SFRW
UXJLMVJOUng0QUFRQUEvOEFFQUFQQUFGUUFBQUVpRGdJSEpUUStBVFExUEFFdUFUVWxIZ016TWo0
Q05UUXVBaU1pRGdJVkhBRWVBUlVGTGdNaklnNENGUlFlQWpNeVBnSTNCUlFPQVJRVkZCNENNekkr
QWpVMExnSWpBMkFSSUIwYUMvNVJBUUVCQVFHdkN4b2RJQkVoT2l3WkdTdzZJU0U2TEJrQkFmNVJD
eG9kSUJFaE9pd1pHU3c2SVJFZ0hSb0xBYThCQVJrc09pRWhPaXdaR1N3NklRRUFCd3dUQzlnREJn
WUhBd01IQmdZRDJBc1REQWNaTERvaElUb3NHUmtzT2lFREJ3WUdBOWdMRXd3SEdTdzZJU0U2TEJr
SERCTUwyQU1HQmdjRElUb3NHUmtzT2lFaE9pd1pBQUFBQUFJQUlQL3dCQUFEc0FCZ0FMd0FBQUUw
TGdJbkxnTW5MZ01uTGdNSElnNENCdzREQnc0REJ3NERGeFFlQWhjZUF4Y2VBeGNlQXpjeVBnSTNQ
Z00zUGdNM1BnTTNPZ014TWo0Q05UQThBalV4Qnc0REJ3NERCdzRESnlJdUFpY3VBeWN1QXljdUF6
YzBQZ0kzUGdNM1BnTTNQZ01YTWg0Q0Z4NERGeDRERng0REJ6TUdGZ1lXSXg0REZ3NERCd1FBQmdz
UUNnb1lIQ0VTRVNjcUxCY1dNREF4R0JneEx5NFdGaXNuSkJFUkhSb1dDQWtOQ0FRQkJnb1BDUW9Y
R2g4UUVTUW5LUllWTFMwdEZ4Y3RMQ3NWRlNjbElnOFFIQmdVQ0FVSUJnVUNBUUVCQVEwWUVRcG1D
QllaSEJBUEl5UW1GQlFwS2lzVkZTb3FLQk1USlNJZkR3NGFGaE1IQ0FzSEF3RUZDUTBJQ0JRWUdn
NFBIeUlqRXhJbkppZ1RGU1luSkJNUUl4OGVEQTRYRmhBSUJRc0dCQUlCQVFFQkFRRUJDQkFVRFFN
RkNRZ0hBY0FaTWpFd0ZoY3NLU1VSRWg0YkZna0pEUWtFQVFZTER3a0tHQnNnRVJFbUtDc1dGaTR1
THhnWUxpNHRGUllvSmlRUUVCd1pGUWdKREFnRUFRWUtEZ2tKRmhvZEVSQWpKaWNWRFJrYUd3MEtF
UmNPQWdFQkFhb1VKaU1oRHc4YkZ4TUlDQXNIQkFFR0NRMElDUlVZR3c4UElTTWxFeE1vS1NrVUZD
a29KaE1TSXlFZkRnMFpGUklIQ0FvSEF3RUZDUXdJQ0JNWEdRNE9IaUVpRWhFbEpTWVRBUUVCQWcw
V0VRc0JEUm9aR1F3QUFBQUFBZ0FBLzhBRUFBUEFBQjRBUFFBQUFTSU9BZ2MrQXpNeUhnSVZGQjRD
TXpJK0FqVTBMZ0lqRVRJK0FqY09BeU1pTGdJMU5DNENJeUlPQWhVVUhnSXpBZ0JwdUlwU0F3SkRj
WlZWVnBoeFFROGFJeFFVSXhvUFVJdTdhbW00aWxJREFrTnhsVlZXbUhGQkR4b2pGQlFqR2c5UWk3
dHFBOEJPaUxab1c1OTJSRVo2bzEwVUl4b1BEeG9qRkdxN2kxRDhBRTZJdG1oYm4zWkVSbnFqWFJR
akdnOFBHaU1VYXJ1TFVBQUFBQUlBQVAvQUJBQUR3QUJBQUZVQUFBRTFKeTRESnpjbkJ5NERMd0Vq
Qnc0REJ5Y0hGdzRERHdFVkZ4NERGd2NYTng0REh3RXpOejRETnhjM0p6NERQd0VGSWk0Q05UUStB
ak15SGdJVkZBNENJd1FBa3dJRkJRWURWb2g1QmcwTkRnY1l3QmdIRGcwTkJubUlWZ01HQlFVQ2s1
TUNCUVlHQTFlSWVnWU1EUTRHR2NBWkJnNE5EQVo2aUZjREJnWUZBcFArQUJzdUl4UVVJeTRiR3k0
akZCUWpMaHNCWU1BWkJnNE5EUVo1aUZZREJnVUZBNUtTQXdVRkJnTldpSGtHRFEwT0JobkFHUVlP
RFF3SGVZaFhBd1lGQlFPVGt3TUZCUVlEVjRoNUJ3d05EZ1laSUJRakxoc2JMaU1VRkNNdUd4c3VJ
eFFBQUFBQUFRQUFBQUFBQU5hQ2o1QmZEenoxQUFzRUFBQUFBQURQbWFmRkFBQUFBTStacDhVQUFQ
KzZCVjREd0FBQUFBZ0FBZ0FBQUFBQUFBQUJBQUFEd1AvQUFBQUZYZ0FBQUFBRlhnQUJBQUFBQUFB
QUFBQUFBQUFBQUFBQUZnQUFBQUFBQUFBQUFBQUFBQUlBQUFBRUFBQUFCQUFBd0FRQUFJQUVBQUFB
QkFBQUFBUUFBQUFFUUFBQUJBQUF3QVZlQUFBRUFBQ0FCQUFBT0FRQUFBQUVBQUFBQkFBQUFBUUFB
QUFFQUFBZ0JBQUFBQVFBQUFBQUFBQUFBQW9BRkFBZUFENEFUQUJpQUlJQTFBRmVBaVFDTkFNQUF3
NEVBQVFnQkZ3RTRBVlVCazRHcEFjZ0FBQUFBUUFBQUJZQTVBQUlBQUFBQUFBQ0FBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBNEFyZ0FCQUFBQUFBQUJBQTRBQUFBQkFBQUFBQUFDQUE0QVJ3QUJBQUFB
QUFBREFBNEFKQUFCQUFBQUFBQUVBQTRBVlFBQkFBQUFBQUFGQUJZQURnQUJBQUFBQUFBR0FBY0FN
Z0FCQUFBQUFBQUtBQ2dBWXdBREFBRUVDUUFCQUE0QUFBQURBQUVFQ1FBQ0FBNEFSd0FEQUFFRUNR
QURBQTRBSkFBREFBRUVDUUFFQUE0QVZRQURBQUVFQ1FBRkFCWUFEZ0FEQUFFRUNRQUdBQTRBT1FB
REFBRUVDUUFLQUNnQVl3QnBBR01BYndCdEFHOEFid0J1QUZZQVpRQnlBSE1BYVFCdkFHNEFJQUF4
QUM0QU1BQnBBR01BYndCdEFHOEFid0J1YVdOdmJXOXZiZ0JwQUdNQWJ3QnRBRzhBYndCdUFGSUFa
UUJuQUhVQWJBQmhBSElBYVFCakFHOEFiUUJ2QUc4QWJnQkhBR1VBYmdCbEFISUFZUUIwQUdVQVpB
QWdBR0lBZVFBZ0FFa0FZd0J2QUUwQWJ3QnZBRzRBQUFBQUF3QUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQT09Jyk7CiAgc3JjOiB1cmwoJ2RhdGE6YXBwbGljYXRpb24vZm9u
dC13b2ZmO2Jhc2U2NCxkMDlHUms5VVZFOEFBQW5NQUFzQUFBQUFEV2dBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQkRSa1lnQUFBQkNBQUFCb2tBQUFnc1hHa2ZWVVpHVkUwQUFBZVVBQUFB
SEFBQUFCeHhiOElyUjBSRlJnQUFCN0FBQUFBaUFBQUFKZ0FuQUR4UFV5OHlBQUFIMUFBQUFFTUFB
QUJnVkRkVHEyTnRZWEFBQUFnWUFBQUFWZ0FBQVdyNnJySHJhR1ZoWkFBQUNIQUFBQUFzQUFBQU5n
YUV5cTlvYUdWaEFBQUluQUFBQUJ3QUFBQWtDU0FGTFdodGRIZ0FBQWk0QUFBQUp3QUFBRWdyMWdL
ZmJXRjRjQUFBQ09BQUFBQUdBQUFBQmdBV1VBQnVZVzFsQUFBSTZBQUFBTlVBQUFHazhTTmpKWEJ2
YzNRQUFBbkFBQUFBREFBQUFDQUFBd0FBZUp4bFZYOU1XOWNWdmhmODhLMEJ0MnR4U1RmTHhOc1Nx
a1phSVRqZGdyWjJLYVppV1lhSTQ3bGtDWVRncGhCK21GQit4RmdaSkRhbXFhK1RBSDRFa29EVk5L
UkEzZUYyVUVxYUpxSEVOS2lWVUFKSTJ6clNMa1daTk8yUC9kUHFQbnlnMnIyQTAwelR1ZTg3NzM3
bmZlZTk0M3Z1TlVZcUZjSVlrOFAybXVxYUdnZkNjUWlqWENVREtabFkyUnFuWk1VckcxUTBLWjRt
cVF3YTlFaWo3VmxLSDl3a3FXbXVYaXFPV2lVOVRuaFVqOUJqZXB6NUF6MUswcXYzUG82ZUVxbmlr
WVFJU2thUG8xU2tSMGEwR1cxQkdXZ2J5a1l2SURQNkRjcEhlMUFoS2tLbDZCQzNLbFRYa05HUTJi
QTFveUUzSTJNVk1nVnNGWkFsd0NSZ200RG5CUHhjd0M4RWJCZXdROENMQW5JRW1BWGtjc2hjaFpj
YWNwL2pDWCtXc1Y1c3JHYUU4T3Y0Skg0RCt6REZmbndLbjhabmNEdnV3SjA0Z0dYY2hjL2lidHlE
eitIeitBSjZNbGFWR21uUVUraHB0SU5YVVlpcTBTMzBCYjZKYjhkMXhMMFo5Ni80c3lxTjZqK1NW
VktvVnBnaWE2TnkxS3JicUFIVGlrbG4xR2laZFdsZXQ1U3luTExDTDBuTFV2aVV6YS9JTUorZ1dK
ZmsyTDFXMlJTVmREL1dhSlVyckViM0V3MDh2ZlNNbUM2OXdsSjBQOVhBQy85OGlJek9SN1h2NjFw
b2M3dGJkZ2JwVURDNHVIaVZFY29lNDJNZkkxbUxhMnd3T0VTRFR2S3RjUW8yVW5pR2o5MncwV2gw
dTV2YldpaUI1Ky8vWDJaRmZEek1MOHRzOVZKa1NidTY4Q3FPMzUzWFI5OUswS3Z1S2hkMFBwYlgr
a1hKWkd2M3NjNFcrZUFRN0QwTFRSU2NGT3pIUzZ0YjNNZGEzUzJsVnU4dlQwSWVPUTE1SGI4YTNT
TTNuL2QyZTBZcm1mMEVjNzdCbWs2eHZWMGZoTG9ENXpzNmU4WnVkdjdOei9MSTh0OC8waDFueGw5
L0NUL2tuL2ZvRm9pSFhIaHBFZUxacGpSZTNzSS91cG1SZ0NHaDdlVUcrMzVLWG15ZSsrdTNRNTlj
VHh1bmd4Vm5MRVNKUHRuQ2pEdStoQjl4dFhaZC9mWDM2cDQxdFplcmkvNUhQVkRSYmlGclM3TWty
M0RqeXlFbTVvaGxkallTbVoyMVJNeG1pOFZzWVAyZ1dtWHZURVZtNyt5ZXlqVmJkdWNhbUJuNmRl
V0RqdUhod2NIaFljZGdlYm5EVVc0QWxXQUhIR0hCaGgwRDVXVTFOV1VHRUJtb092YTBnVkwxOTRw
K0ZvdUZCOVppNFpxQnNuSUgxMVVxb3p4a0d5dVptQmdibXhDaGlaSXhtNjJreEdiSTR1K3hoeXBI
UmtLaGtaSEtrTjFlV1drM2FCV3Jrc0xiTUZxdjFJczI1QXVib21OaDFnVDU0T0ltZkRqdENEMXlx
dlkweEhGTFBRcFBuQ1J2cTIvLzZkTnBlb2QyK1dSZkY1Qy83QkJ0bFVxWWl6V3hmQlkyckhkSW1D
ZG80aWdTTnZHMDNMTlZ6MmVjVHdOWnhZeE1EV293Y252Z21acXpuQmMralUwdFQrbXl0d011QmpV
VkE0OW4zOTIrVU13d1pXbyt4aG0rdTBCbThpaVZJQlZTS1ZRdzdqN2Y5Vlg1ZlhxZmZqWDgrV2Nz
bGFWU1ZnSGNrWmtaNlc3Mk9PRFZUT3Bpd051emlYYnBHeWJyaW1tcDAxRk5sbk5ZbGVRUCtBTlVw
ckl2NEFzUVJUQ0QxYVBPY1VvVzUrWVdGM1Btc3JKeWNyTFNxTnZ2OFh1NEFxb2t4MUJwc0pnU3dX
Zk41U3p5YmhrTkRnNXhMWS81UEQ0UGRSUEJ4L1FHdnY4VnE4NDNjMnpteUszYTZWZHU3aHZmZjhV
U3pyK1VmMm5uMloyK25iN2YvckdndHFEMjk0Y09GSkVEUmVYVytvTDZndU83L056Ty9hN2YwbTk1
NytVUFM4WkxKaW9pRFpINjZSUFRmakx0djNWdTh0TGtwV3ZEb3g5K01CYTZmbkd5NTExNStFeVlu
RWtZSGh3SXA3V3JOOEh6dW5yYjRYMEg3UWZ0ZjZpeU5kb2FMVzZMMytMZjAxTjRzZkN0L2U4ZUdq
azBVbjMxNkhWeTlJYjdFLytrZjdKNzR1SzFpeCtIeHYvODN2dmhLNE1mQjY4RkorUWJ2Z25mOVph
cmplU2p4ckdxNFZmRHI3NTlJTGl2YjMrZzBMZVhVRXJiSkZyUlh4TTY2UzAvY2ZoWUpWbnZnaENG
UnFocmhhRU8xc1oyTVJ0cnBLSlQ4cUVJYUt4Vkg3VEVkN3dsUXBRMXNycE9OdVNGTnRnRk51QUMz
b3o1cklqUldEL0hlaXFOLzVMc0d4MWxWa2p2bDd4OXJiMmVYbktQSllPZTZTRjVtK1FLdUFMT0Rs
TEhOb09WMXNGbXllbDFlVndlQXNuM1FBLzZlNUFzZVZ5dExtOFRnZlRYS0ZoWittdFNSMU9uUzNZ
UkV5VHpISHFtL1ZxNjRPbjE5SGxKUDZReksrMW42VkpmUjIvZ1FvQXdyWW54RjVsWXNpVDNkdloy
OUpGbDNLb3pXeUpyQjBMRXNub2dpRzlNb1RxYXBPRi9oazhnQ2VNTkdRV2VHM1RaQkNabUFpdFl0
L3liV1hrRmZDWWxpamxuVGNzbVNoVVJONG1ZbEhqNThwdHVXa1pXYnF0cFdhTzc5aklCTC9PQ2VD
aUZtYWlVK1BCQnY3QkEyWWJzaFlmUGQ2YUJSRjRmY0VmV2ovYkVadHJTN3U1eTl0RjNnbjBQN1pJ
MW9pLzREdTF6eG5ZTGlXMFg5NG1XVmUxL0FWRTgyWE1BQUFBQUFBQUJBQUFBQU5EUjEzOEFBQUFB
ejVtbnhRQUFBQURSQkVMbWVKeGpZR1JnWU9BQllqRUdPUVltQmtZZ0ZBVmlGcUFJRXhBelFqQUFD
ZGtBWkFBQWVKeGpZR2IreFRpQmdaV0JnV2ttMHhrR0JvWitDTTM0bXNHWWtaTUJGVEFLSUhFQzBs
eFRHQndZR0o4eE1CLzRmNEFCU0FKNVFEVndCUXBBeUFnQW9iWU1md0I0bkdOZ1lHQm1nR0FaQmtZ
R0VFZ0I4aGpCZkJZR0R5RE54OERCd01UQUJoUlRlTUQzUVA0WncvKy8vLytEVlNvOFlIZ2dCK1V6
L24rc3dDTC9WVW9VcWhzRk1MSUJNUk82S0NwZ3hpODk1QUVBZXRvU09RQUFlSnhqWUdRQWcyTWla
Z254L0RaZkdiaFp3UHlMTE00eUNQci9MdFk0NWdOQUxnY0RFMGdVQU9rZUNIRjRuR05nWkdCZ1B2
RC9BQU1EYXh3REE1aGtaRUFGZkFCY3RnTlplSnhqWUVBQUppQm1nZUFEUU56QWd1QXpzRGhBeEZu
andIUURnd1ZjbXp5SUFBQnhYUU9oQUFBQVVBQUFGZ0FBZUp4MXpUMEt3akFjQmZEWEw4VUtJaWd1
TGgwRm9WZzhnb01VNmVMZzR0VFdJQVZ0SU9wUVBJQkhjUFEyZ3JmeTFmNGRHMGo2eTB0ZkFtQ0lO
eXo4aHkyMjBNVkliTk56c1VPdnhDNjlGM3ZvNHk3dU1IK0tmWXp4WWN0eWUvSkNZd3NEcXJGTlQ4
VU92UlM3OUVic1lZSmMzR0grRVB1WTRWVmZXL0JZNDh5cFVYS2I2N1BXeEJZS1I5eHdRZ3JEclRy
ZVRxbHAvNzh0My9FZWd3dlA2enhBaEJBTHhzcGNDbDBHVWJobzc2N1pMWC85RkZkK0QreG5xTGpH
djBieWI2eFZxVXg2VlljZ3E0STQxMGxkL3dKMm96cHpBQUFBZUp4allHYkFDd0FBZlFBRScpIGZv
cm1hdCgnd29mZicpLAogICAgICAgdXJsKCdkYXRhOmFwcGxpY2F0aW9uL3gtZm9udC10dGY7YmFz
ZTY0LEFBRUFBQUFMQUlBQUF3QXdUMU12TWc2U0F5b0FBQUM4QUFBQVlHTnRZWEQ2cmF4dUFBQUJI
QUFBQUZ4bllYTndBQUFBRUFBQUFYZ0FBQUFJWjJ4NVp1L3RjNjBBQUFHQUFBQU9RR2hsWVdRRHI1
UUJBQUFQd0FBQUFEWm9hR1ZoQ1NBRk5RQUFEL2dBQUFBa2FHMTBlRXVlQXRnQUFCQWNBQUFBV0d4
dlkyRWVCQnNBQUFBUWRBQUFBQzV0WVhod0FCOEE1Z0FBRUtRQUFBQWdibUZ0WlVRWXROWUFBQkRF
QUFBQk9YQnZjM1FBQXdBQUFBQVNBQUFBQUNBQUF3UUFBWkFBQlFBQUFwa0N6QUFBQUk4Q21RTE1B
QUFCNndBekFRa0FBQUFBQUFBQUFBQUFBQUFBQUFBQkVBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUFB
RG1BQVBBLzhEL3dBUEFBRUFBQUFBQkFBQUFBQUFBQUFBQUFBQWdBQUFBQUFBQ0FBQUFBd0FBQUJR
QUF3QUJBQUFBRkFBRUFFZ0FBQUFPQUFnQUFnQUdBQUVBSU9BTzRCL21BUC85Ly84QUFBQUFBQ0Rn
QU9BZTVnRC8vZi8vQUFILzR5QUVIL1VhRlFBREFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBSC8v
d0FQQUFFQUFBQUFBQUFBQUFBQ0FBQTNPUUVBQUFBQUFRQUFBQUFBQUFBQUFBSUFBRGM1QVFBQUFB
QUJBQUFBQUFBQUFBQUFBZ0FBTnprQkFBQUFBQUlBQVAvQUJBQUR3QUFHQUEwQUFBRVJKd2NuTnlj
REJ4Y2hFUmMzQkFDZ3dHREFvS0RBb1A1Z29NQUR3UDVnb01CZ3dLRDlZTUNnQWFDZ3dBQUFBQUFC
QU1BQVFBTkFBMEFBQWdBQUV3a0J3QUtBL1lBRFFQNkEvb0FBQWdDQUFFQURnQU5BQUFNQUJ3QUFF
eUVSSVFFaEVTR0FBVUQrd0FIQUFVRCt3QU5BL1FBREFQMEFBQUFCQUFBQUR3SEFBM0VBRUFBQUFU
NEJIZ0VWRVJRT0FTWXZBU01STXpjQmtRb1JEUWNIRFJFSzhhQ2c4UU54Q2djR0VBNzh4QTRRQmdj
SzhRR0E4UUFBQWdBQUFBOENSd054QUNNQU5BQUFKU0l1QWljdUFUUTJOejRCTkNZbkxnRTBOamMr
QVRJV0Z4NEJGQVlIRGdNakF6NEJIZ0VWRVJRT0FTWXZBU01STXpjQ0pRVUpDQWdFQndjSEJ4NGZI
eDRIQndjSEJ4SVNFZ2NzTFMwc0JBZ0lDUVdVQ2hFTkJ3Y05FUXJ4b0tEeDJ3SURCZ01IRWhJU0J4
NU5VRTBlQnhJU0VnY0hCd2NITEhGMGNTd0RCZ01DQXBZS0J3WVFEdnpFRGhBR0J3cnhBWUR4QUFB
REFBQUFEd053QTNFQUtBQk1BRjBBQUNVaUxnSW5MZ0UwTmpjK0FUUW1KeTRCTkRZM1BnRXlGaGNl
QXhVVURnSUhEZ01qSnlJdUFpY3VBVFEyTno0Qk5DWW5MZ0UwTmpjK0FUSVdGeDRCRkFZSERnTWpB
ejRCSGdFVkVSUU9BU1l2QVNNUk16Y0MwQVVKQ1FnREJ3Y0hCekV4TVRFSEJ3Y0hCeEVURVFjZkx5
QVJFU0F2SHdNSUNRa0Vxd1VKQ0FnRUJ3Y0hCeDRmSHg0SEJ3Y0hCeElTRWdjc0xTMHNCQWdJQ1FX
VUNoRU5Cd2NORVFyeG9LRHhnQUlFQlFRSEVSTVJCeko3Z25zeUJ4RVRFUWNIQ0FnSEhrZE5WQ3Ny
VkUxSEhnUUZCQUpiQWdNR0F3Y1NFaElISGsxUVRSNEhFaElTQndjSEJ3Y3NjWFJ4TEFNR0F3SUNs
Z29IQmhBTy9NUU9FQVlIQ3ZFQmdQRUFBQUFFQUFBQUR3UkFBM0VBTFFCV0FIb0Fpd0FBSlNJdUFp
Y3VBVFEyTno0RE5UUXVBaWN1QVRRMk56NEJNaFlYSGdNVkZBNENCdzRESXljaUxnSW5MZ0UwTmpj
K0FUUW1KeTRCTkRZM1BnRXlGaGNlQXhVVURnSUhEZ01qSnlJdUFpY3VBVFEyTno0Qk5DWW5MZ0Uw
TmpjK0FUSVdGeDRCRkFZSERnTWpBejRCSGdFVkVSUU9BU1l2QVNNUk16Y0RlZ1VKQ0FnRUJ3Y0hC
eUV6SWhJU0lqTWhCd2NIQndjU0VoSUhLRDBwRmhZcFBTZ0VDQWdKQmFvRkNRa0lBd2NIQndjeE1U
RXhCd2NIQndjUkV4RUhIeThnRVJFZ0x4OERDQWtKQktzRkNRZ0lCQWNIQndjZUh4OGVCd2NIQndj
U0VoSUhMQzB0TEFRSUNBa0ZsQW9SRFFjSERSRUs4YUNnOFNZQ0F3WURCeElTRWdjaFRGTmFMaTVh
VTB3aEJ4SVNFZ2NIQndjSEtGdGxiRGc0YkdWYktBTUdBd0phQWdRRkJBY1JFeEVITW51Q2V6SUhF
Uk1SQndjSUNBY2VSMDFVS3l0VVRVY2VCQVVFQWxzQ0F3WURCeElTRWdjZVRWQk5IZ2NTRWhJSEJ3
Y0hCeXh4ZEhFc0F3WURBZ0tXQ2djR0VBNzh4QTRRQmdjSzhRR0E4UUFCQU1EL3dBTkFBOEFBQXdB
QUNRTUNBUDdBQVVBQlFBUEEvZ0QrQUFJQUFBUUFBUCs2QlY0RHdBQUVBRUVBYkFDWEFBQVRJUkVo
RVFFMExnSW5MZ01uTGdNaklnNENCdzREQnc0REJ4NERGeDRERng0REZ6NEROejRETno0RE5TVXVB
eU1pRGdJVkZCNENNekkrQWpjakRnTWpJaTRDTlRRK0FqTXlIZ0lYTXlFdUF5TWlEZ0lWRkI0Q016
SStBamNqRGdNaklpNENOVFErQWpNeUhnSVhNd0FGWHZxaUJOMEVDeFFRQXdnSkNRVVFWWDJjVmxX
ZmdGZ1FCQW9LQ0FRUEV3c0VBUUVFQ3hNUEJBZ0tDZ1FRV0lDZlZWYWNmVlVRQlFrSkNBTVFGQXNF
L2JrRUlEaE9NaTVRT3lJZ1BGWTNLMGsySXdTS0Fnb1NHaEliSWhNR0N4VWVFeEViRkF3Q2lBSGVC
Q0UzVGpNdFVEc2lJRHhXTml4Sk5pSUZpZ0lMRWhvUkd5SVRCZ3NWSGhNUUhCUU1Bb2dEd1B2NkJB
YitBVVJqU2pVVUJRY0dCZ1FMRUFvRUJBb1FDd1FHQmdjRkZEVktZMFJEWkVrMUZRVUhCZ1lEREJB
S0JRRUJCUW9RREFNR0JnY0ZGVFZKWkVNdk5WTTVIeWhMYTBKRGEwc29IenBVTlJNaUdRNFpLVFlk
S0RzcEZBd1hJaFUxVXprZktFdHJRa05yU3lnZk9sUTFFeUlaRGhrcE5oMG9PeWtVREJjaUZRQUFB
QUVBZ0FCQUE0QURRQUFEQUFBVElSRWhnQU1BL1FBRFFQMEFBQUFJQURnQUFBUEFBOEFBRkFBcEFE
NEFVd0I4QUtVQXpnRGpBQUFCRkI0Q016SStBalUwTGdJaklnNENGUVVVSGdJek1qNENOVFF1QWlN
aURnSVZFeFFlQWpNeVBnSTFOQzRDSXlJT0FoVURGQjRDTXpJK0FqVTBMZ0lqSWc0Q0ZRVTRBekVV
SGdJek1qNENOVGdETVRnRE1UUXVBaU1pRGdJVk9BTXhKVGdETVJRZUFqTXlQZ0kxT0FNeE9BTXhO
QzRDSXlJT0FoVTRBekVET0FNeEZCNENNekkrQWpVNEF6RTRBekUwTGdJaklnNENGVGdETVFNVUhn
SXpNajRDTlRRdUFpTWlEZ0lWQVlBVUl5NGJHeTRqRkJRakxoc2JMaU1VQVJBVUlpOGJHaThpRlJV
aUx4b2JMeUlVc0FvUkdBME5HQkVLQ2hFWURRMFlFUXB3Q2hFWERnMFhFUXNMRVJjTkRoY1JDdjd3
Q2hFWURRMFlFUW9LRVJnTkRSZ1JDdjd3Q3hFWERRNFhFUW9LRVJjT0RSY1JDeUFRR2lNVEZDTWFE
dzhhSXhRVEl4b1FXQXNVR2c4UEdoUUxDeFFhRHc4YUZBc0RRQnN1SXhRVUl5NGJHeTRqRkJRakxo
dHdHeThpRkJRaUx4c2FMeUlWRlNJdkd2N3dEUmdSQ2dvUkdBME5HQkVLQ2hFWURmN3dEUmNSQ3dz
UkZ3ME9GeEVLQ2hFWERuQU5HQkVLQ2hFWURRMFlFUW9LRVJnTmNBMFhFUXNMRVJjTkRoY1JDZ29S
Rnc0Q0lCUWpHZzhQR2lNVUV5TWFFQkFhSXhQKzhBOGFGQXNMRkJvUER4b1VDd3NVR2c4QUFBQUFB
Z0FBLzhBRUFBUEFBQVlBRFFBQUFSRW5CeWMzSndFSEZ5RVJGemNCd0tEQVlNQ2dBK0RBb1A1Z29N
QUJnUDVnb01CZ3dLQUI0TUNnQWFDZ3dBQUFBQUVBQVAvQUJBQURnQUFwQUFBQk1oNENGUlFPQWlN
aUxnSW5EZ01ITlQ0RE5Ud0JMZ0UxTGdNMU5ENENNd0lBYXJ1TFVGQ0x1Mm9LRkJRVUNpbGFYV0F3
R2k0akZRRUJMRVl4RzFDTHUyb0RnRUZ4bUZaV21IRkJBUUVDQVNrekhRb0NHdzBqS2pFYUJBY0hC
d1FjU0ZKY01WYVljVUVBQUFNQUFQL0FCQUFEd0FBVUFDa0FZd0FBQVNJT0FoVVVIZ0l6TWo0Q05U
UXVBaU1STWg0Q0ZSUU9BaU1pTGdJMU5ENENNd0VPQXlNaUxnSW5MZ00xTkQ0Q054YzRBekVPQVJR
V0Z4NERNekkrQWpjK0FUUW1KemNlQXhVVURnSUhBZ0JxdTR0UVVJdTdhbXE3aTFCUWk3dHFOVjFH
S0NoR1hUVTFYVVlvS0VaZE5RRXhIa2ROVkNzclZFMUhIaDh2SUJFUklDOGZRekV4TVRFWU56MUFJ
aUpBUFRjWU1URXhNVU1mTHlBUkVTQXZId1BBVUl1N2FtcTdpMUJRaTd0cWFydUxVUDhBS0VaZE5U
VmRSaWdvUmwwMU5WMUdLUDNQSHk4Z0VSRWdMeDhlUjAxVUt5dFVUVWNlUXpKN2duc3lGeVVaRFEw
WkpSY3llNEo3TWtNZVIwMVVLeXRVVFVjZUFBRUFBUC9BQkFBRHdBQlVBQUFCSWc0Q0J5VTBQZ0Uw
TlR3QkxnRTFKUjRETXpJK0FqVTBMZ0lqSWc0Q0ZSd0JIZ0VWQlM0REl5SU9BaFVVSGdJek1qNENO
d1VVRGdFVUZSUWVBak15UGdJMU5DNENJd05nRVNBZEdnditVUUVCQVFFQnJ3c2FIU0FSSVRvc0dS
a3NPaUVoT2l3WkFRSCtVUXNhSFNBUklUb3NHUmtzT2lFUklCMGFDd0d2QVFFWkxEb2hJVG9zR1Jr
c09pRUJBQWNNRXd2WUF3WUdCd01EQndZR0E5Z0xFd3dIR1N3NklTRTZMQmtaTERvaEF3Y0dCZ1BZ
Q3hNTUJ4a3NPaUVoT2l3WkJ3d1RDOWdEQmdZSEF5RTZMQmtaTERvaElUb3NHUUFBQUFBQ0FDRC84
QVFBQTdBQVlBQzhBQUFCTkM0Q0p5NERKeTRESnk0REJ5SU9BZ2NPQXdjT0F3Y09BeGNVSGdJWEhn
TVhIZ01YSGdNM01qNENOejRETno0RE56NEROem9ETVRJK0FqVXdQQUkxTVFjT0F3Y09Bd2NPQXlj
aUxnSW5MZ01uTGdNbkxnTTNORDRDTno0RE56NEROejRERnpJZUFoY2VBeGNlQXhjZUF3Y3pCaFlH
RmlNZUF4Y09Bd2NFQUFZTEVBb0tHQndoRWhFbktpd1hGakF3TVJnWU1TOHVGaFlySnlRUkVSMGFG
Z2dKRFFnRUFRWUtEd2tLRnhvZkVCRWtKeWtXRlMwdExSY1hMU3dyRlJVbkpTSVBFQndZRkFnRkNB
WUZBZ0VCQVFFTkdCRUtaZ2dXR1J3UUR5TWtKaFFVS1NvckZSVXFLaWdURXlVaUh3OE9HaFlUQndn
TEJ3TUJCUWtOQ0FnVUdCb09EeDhpSXhNU0p5WW9FeFVtSnlRVEVDTWZIZ3dPRnhZUUNBVUxCZ1FD
QVFFQkFRRUJBUWdRRkEwREJRa0lCd0hBR1RJeE1CWVhMQ2tsRVJJZUd4WUpDUTBKQkFFR0N3OEpD
aGdiSUJFUkppZ3JGaFl1TGk4WUdDNHVMUlVXS0NZa0VCQWNHUlVJQ1F3SUJBRUdDZzRKQ1JZYUhS
RVFJeVluRlEwWkdoc05DaEVYRGdJQkFRR3FGQ1lqSVE4UEd4Y1RDQWdMQndRQkJna05DQWtWR0Jz
UER5RWpKUk1US0NrcEZCUXBLQ1lURWlNaEh3NE5HUlVTQndnS0J3TUJCUWtNQ0FnVEZ4a09EaDRo
SWhJUkpTVW1Fd0VCQVFJTkZoRUxBUTBhR1JrTUFBQUFBQUlBQVAvQUJBQUR3QUFlQUQwQUFBRWlE
Z0lIUGdNek1oNENGUlFlQWpNeVBnSTFOQzRDSXhFeVBnSTNEZ01qSWk0Q05UUXVBaU1pRGdJVkZC
NENNd0lBYWJpS1VnTUNRM0dWVlZhWWNVRVBHaU1VRkNNYUQxQ0x1MnBwdUlwU0F3SkRjWlZWVnBo
eFFROGFJeFFVSXhvUFVJdTdhZ1BBVG9pMmFGdWZka1JHZXFOZEZDTWFEdzhhSXhScXU0dFEvQUJP
aUxab1c1OTJSRVo2bzEwVUl4b1BEeG9qRkdxN2kxQUFBQUFDQUFEL3dBUUFBOEFBUUFCVkFBQUJO
U2N1QXljM0p3Y3VBeThCSXdjT0F3Y25CeGNPQXc4QkZSY2VBeGNIRnpjZUF4OEJNemMrQXpjWE55
YytBejhCQlNJdUFqVTBQZ0l6TWg0Q0ZSUU9BaU1FQUpNQ0JRVUdBMWFJZVFZTkRRNEhHTUFZQnc0
TkRRWjVpRllEQmdVRkFwT1RBZ1VHQmdOWGlIb0dEQTBPQmhuQUdRWU9EUXdHZW9oWEF3WUdCUUtU
L2dBYkxpTVVGQ011R3hzdUl4UVVJeTRiQVdEQUdRWU9EUTBHZVloV0F3WUZCUU9Ta2dNRkJRWURW
b2g1QmcwTkRnWVp3QmtHRGcwTUIzbUlWd01HQlFVRGs1TURCUVVHQTFlSWVRY01EUTRHR1NBVUl5
NGJHeTRqRkJRakxoc2JMaU1VQUFBQUFBRUFBQUFBQUFEV2dvK1FYdzg4OVFBTEJBQUFBQUFBejVt
bnhRQUFBQURQbWFmRkFBRC91Z1ZlQThBQUFBQUlBQUlBQUFBQUFBQUFBUUFBQThEL3dBQUFCVjRB
QUFBQUJWNEFBUUFBQUFBQUFBQUFBQUFBQUFBQUFCWUFBQUFBQUFBQUFBQUFBQUFDQUFBQUJBQUFB
QVFBQU1BRUFBQ0FCQUFBQUFRQUFBQUVBQUFBQkVBQUFBUUFBTUFGWGdBQUJBQUFnQVFBQURnRUFB
QUFCQUFBQUFRQUFBQUVBQUFBQkFBQUlBUUFBQUFFQUFBQUFBQUFBQUFLQUJRQUhnQStBRXdBWWdD
Q0FOUUJYZ0lrQWpRREFBTU9CQUFFSUFSY0JPQUZWQVpPQnFRSElBQUFBQUVBQUFBV0FPUUFDQUFB
QUFBQUFnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU9BSzRBQVFBQUFBQUFBUUFPQUFBQUFRQUFB
QUFBQWdBT0FFY0FBUUFBQUFBQUF3QU9BQ1FBQVFBQUFBQUFCQUFPQUZVQUFRQUFBQUFBQlFBV0FB
NEFBUUFBQUFBQUJnQUhBRElBQVFBQUFBQUFDZ0FvQUdNQUF3QUJCQWtBQVFBT0FBQUFBd0FCQkFr
QUFnQU9BRWNBQXdBQkJBa0FBd0FPQUNRQUF3QUJCQWtBQkFBT0FGVUFBd0FCQkFrQUJRQVdBQTRB
QXdBQkJBa0FCZ0FPQURrQUF3QUJCQWtBQ2dBb0FHTUFhUUJqQUc4QWJRQnZBRzhBYmdCV0FHVUFj
Z0J6QUdrQWJ3QnVBQ0FBTVFBdUFEQUFhUUJqQUc4QWJRQnZBRzhBYm1samIyMXZiMjRBYVFCakFH
OEFiUUJ2QUc4QWJnQlNBR1VBWndCMUFHd0FZUUJ5QUdrQVl3QnZBRzBBYndCdkFHNEFSd0JsQUc0
QVpRQnlBR0VBZEFCbEFHUUFJQUJpQUhrQUlBQkpBR01BYndCTkFHOEFid0J1QUFBQUFBTUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE9JykgZm9ybWF0KCd0cnVldHlwZScp
OwogIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgZm9udC1zdHlsZTogbm9ybWFsOwp9Ci8qIEJhc2Ug
VUkgQ29tcG9uZW50IENsYXNzZXMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKi8KLyogU2xpZGVy
IC0gdXNlZCBmb3IgVm9sdW1lIGJhciBhbmQgU2VlayBiYXIgKi8KLnZqcy1kZWZhdWx0LXNraW4g
LnZqcy1zbGlkZXIgewogIC8qIFJlcGxhY2UgYnJvd3NlciBmb2N1cyBoaWdodGxpZ2h0IHdpdGgg
aGFuZGxlIGhpZ2hsaWdodCAqLwogIG91dGxpbmU6IDA7CiAgcG9zaXRpb246IHJlbGF0aXZlOwog
IGN1cnNvcjogcG9pbnRlcjsKICBwYWRkaW5nOiAwOwogIC8qIGJhY2tncm91bmQtY29sb3Itd2l0
aC1hbHBoYSAqLwogIGJhY2tncm91bmQtY29sb3I6ICMzMzMzMzM7CiAgYmFja2dyb3VuZC1jb2xv
cjogcmdiYSg1MSwgNTEsIDUxLCAwLjkpOwp9Ci52anMtZGVmYXVsdC1za2luIC52anMtc2xpZGVy
OmZvY3VzIHsKICAvKiBib3gtc2hhZG93ICovCiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMmVt
ICNmZmZmZmY7CiAgLW1vei1ib3gtc2hhZG93OiAwIDAgMmVtICNmZmZmZmY7CiAgYm94LXNoYWRv
dzogMCAwIDJlbSAjZmZmZmZmOwp9Ci52anMtZGVmYXVsdC1za2luIC52anMtc2xpZGVyLWhhbmRs
ZSB7CiAgcG9zaXRpb246IGFic29sdXRlOwogIC8qIE5lZWRlZCBmb3IgSUU2ICovCiAgbGVmdDog
MDsKICB0b3A6IDA7Cn0KLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1zbGlkZXItaGFuZGxlOmJlZm9y
ZSB7CiAgY29udGVudDogIlxlMDA5IjsKICBmb250LWZhbWlseTogVmlkZW9KUzsKICBmb250LXNp
emU6IDFlbTsKICBsaW5lLWhlaWdodDogMTsKICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgdGV4dC1z
aGFkb3c6IDBlbSAwZW0gMWVtICNmZmY7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHRvcDogMDsK
ICBsZWZ0OiAwOwogIC8qIFJvdGF0ZSB0aGUgc3F1YXJlIGljb24gdG8gbWFrZSBhIGRpYW1vbmQg
Ki8KICAvKiB0cmFuc2Zvcm0gKi8KICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7
CiAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpOwogIC1tcy10cmFuc2Zvcm06IHJvdGF0
ZSgtNDVkZWcpOwogIC1vLXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7CiAgdHJhbnNmb3JtOiBy
b3RhdGUoLTQ1ZGVnKTsKfQovKiBDb250cm9sIEJhcgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpU
aGUgZGVmYXVsdCBjb250cm9sIGJhciB0aGF0IGlzIGEgY29udGFpbmVyIGZvciBtb3N0IG9mIHRo
ZSBjb250cm9scy4KKi8KLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1jb250cm9sLWJhciB7CiAgLyog
U3RhcnQgaGlkZGVuICovCiAgZGlzcGxheTogbm9uZTsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAg
LyogUGxhY2UgY29udHJvbCBiYXIgYXQgdGhlIGJvdHRvbSBvZiB0aGUgcGxheWVyIGJveC92aWRl
by4KICAgICBJZiB5b3Ugd2FudCBtb3JlIG1hcmdpbiBiZWxvdyB0aGUgY29udHJvbCBiYXIsIGFk
ZCBtb3JlIGhlaWdodC4gKi8KICBib3R0b206IDA7CiAgLyogVXNlIGxlZnQvcmlnaHQgdG8gc3Ry
ZXRjaCB0byAxMDAlIHdpZHRoIG9mIHBsYXllciBkaXYgKi8KICBsZWZ0OiAwOwogIHJpZ2h0OiAw
OwogIC8qIEhlaWdodCBpbmNsdWRlcyBhbnkgbWFyZ2luIHlvdSB3YW50IGFib3ZlIG9yIGJlbG93
IGNvbnRyb2wgaXRlbXMgKi8KICBoZWlnaHQ6IDMuMGVtOwogIC8qIGJhY2tncm91bmQtY29sb3It
d2l0aC1hbHBoYSAqLwogIGJhY2tncm91bmQtY29sb3I6ICMwNzE0MWU7CiAgYmFja2dyb3VuZC1j
b2xvcjogcmdiYSg3LCAyMCwgMzAsIDAuNyk7Cn0KLyogU2hvdyB0aGUgY29udHJvbCBiYXIgb25s
eSBvbmNlIHRoZSB2aWRlbyBoYXMgc3RhcnRlZCBwbGF5aW5nICovCi52anMtZGVmYXVsdC1za2lu
LnZqcy1oYXMtc3RhcnRlZCAudmpzLWNvbnRyb2wtYmFyIHsKICBkaXNwbGF5OiBibG9jazsKICAv
KiBWaXNpYmlsaXR5IG5lZWRlZCB0byBtYWtlIHN1cmUgdGhpbmdzIGhpZGUgaW4gb2xkZXIgYnJv
d3NlcnMgdG9vLiAqLwoKICB2aXNpYmlsaXR5OiB2aXNpYmxlOwogIG9wYWNpdHk6IDE7CiAgLyog
dHJhbnNpdGlvbiAqLwogIC13ZWJraXQtdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAwLjFzLCBvcGFj
aXR5IDAuMXM7CiAgLW1vei10cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDAuMXMsIG9wYWNpdHkgMC4x
czsKICAtby10cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDAuMXMsIG9wYWNpdHkgMC4xczsKICB0cmFu
c2l0aW9uOiB2aXNpYmlsaXR5IDAuMXMsIG9wYWNpdHkgMC4xczsKfQovKiBIaWRlIHRoZSBjb250
cm9sIGJhciB3aGVuIHRoZSB2aWRlbyBpcyBwbGF5aW5nIGFuZCB0aGUgdXNlciBpcyBpbmFjdGl2
ZSAgKi8KLnZqcy1kZWZhdWx0LXNraW4udmpzLWhhcy1zdGFydGVkLnZqcy11c2VyLWluYWN0aXZl
LnZqcy1wbGF5aW5nIC52anMtY29udHJvbC1iYXIgewogIGRpc3BsYXk6IGJsb2NrOwogIHZpc2li
aWxpdHk6IGhpZGRlbjsKICBvcGFjaXR5OiAwOwogIC8qIHRyYW5zaXRpb24gKi8KICAtd2Via2l0
LXRyYW5zaXRpb246IHZpc2liaWxpdHkgMXMsIG9wYWNpdHkgMXM7CiAgLW1vei10cmFuc2l0aW9u
OiB2aXNpYmlsaXR5IDFzLCBvcGFjaXR5IDFzOwogIC1vLXRyYW5zaXRpb246IHZpc2liaWxpdHkg
MXMsIG9wYWNpdHkgMXM7CiAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAxcywgb3BhY2l0eSAxczsK
fQoudmpzLWRlZmF1bHQtc2tpbi52anMtY29udHJvbHMtZGlzYWJsZWQgLnZqcy1jb250cm9sLWJh
ciB7CiAgZGlzcGxheTogbm9uZTsKfQoudmpzLWRlZmF1bHQtc2tpbi52anMtdXNpbmctbmF0aXZl
LWNvbnRyb2xzIC52anMtY29udHJvbC1iYXIgewogIGRpc3BsYXk6IG5vbmU7Cn0KLyogVGhlIGNv
bnRyb2wgYmFyIHNob3VsZG4ndCBzaG93IGFmdGVyIGFuIGVycm9yICovCi52anMtZGVmYXVsdC1z
a2luLnZqcy1lcnJvciAudmpzLWNvbnRyb2wtYmFyIHsKICBkaXNwbGF5OiBub25lOwp9Ci8qIElF
OCBpcyBmbGFrZXkgd2l0aCBmb250cywgYW5kIHlvdSBoYXZlIHRvIGNoYW5nZSB0aGUgYWN0dWFs
IGNvbnRlbnQgdG8gZm9yY2UKZm9udHMgdG8gc2hvdy9oaWRlIHByb3Blcmx5LgogIC0gIlw5IiBJ
RTggaGFjayBkaWRuJ3Qgd29yayBmb3IgdGhpcwogIC0gRm91bmQgaW4gWFAgSUU4IGZyb20gaHR0
cDovL21vZGVybi5pZS4gRG9lcyBub3Qgc2hvdyB1cCBpbiAiSUU4IG1vZGUiIGluIElFOQoqLwpA
bWVkaWEgXDBzY3JlZW4gewogIC52anMtZGVmYXVsdC1za2luLnZqcy11c2VyLWluYWN0aXZlLnZq
cy1wbGF5aW5nIC52anMtY29udHJvbC1iYXIgOmJlZm9yZSB7CiAgICBjb250ZW50OiAiIjsKICB9
Cn0KLyogR2VuZXJhbCBzdHlsZXMgZm9yIGluZGl2aWR1YWwgY29udHJvbHMuICovCi52anMtZGVm
YXVsdC1za2luIC52anMtY29udHJvbCB7CiAgb3V0bGluZTogbm9uZTsKICBwb3NpdGlvbjogcmVs
YXRpdmU7CiAgZmxvYXQ6IGxlZnQ7CiAgdGV4dC1hbGlnbjogY2VudGVyOwogIG1hcmdpbjogMDsK
ICBwYWRkaW5nOiAwOwogIGhlaWdodDogMy4wZW07CiAgd2lkdGg6IDRlbTsKfQovKiBGb250QXdz
b21lIGJ1dHRvbiBpY29ucyAqLwoudmpzLWRlZmF1bHQtc2tpbiAudmpzLWNvbnRyb2w6YmVmb3Jl
IHsKICBmb250LWZhbWlseTogVmlkZW9KUzsKICBmb250LXNpemU6IDEuNWVtOwogIGxpbmUtaGVp
Z2h0OiAyOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB0b3A6IDA7CiAgbGVmdDogMDsKICB3aWR0
aDogMTAwJTsKICBoZWlnaHQ6IDEwMCU7CiAgdGV4dC1hbGlnbjogY2VudGVyOwogIHRleHQtc2hh
ZG93OiAxcHggMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuNSk7Cn0KLyogUmVwbGFjZW1lbnQgZm9y
IGZvY3VzIG91dGxpbmUgKi8KLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1jb250cm9sOmZvY3VzOmJl
Zm9yZSwKLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1jb250cm9sOmhvdmVyOmJlZm9yZSB7CiAgdGV4
dC1zaGFkb3c6IDBlbSAwZW0gMWVtICNmZmZmZmY7Cn0KLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1j
b250cm9sOmZvY3VzIHsKICAvKiAgb3V0bGluZTogMDsgKi8KICAvKiBrZXlib2FyZC1vbmx5IHVz
ZXJzIGNhbm5vdCBzZWUgdGhlIGZvY3VzIG9uIHNldmVyYWwgb2YgdGhlIFVJIGVsZW1lbnRzIHdo
ZW4KICB0aGlzIGlzIHNldCB0byAwICovCgp9Ci8qIEhpZGUgY29udHJvbCB0ZXh0IHZpc3VhbGx5
LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbnJlYWRlcnMgKi8KLnZqcy1kZWZhdWx0
LXNraW4gLnZqcy1jb250cm9sLXRleHQgewogIC8qIGhpZGUtdmlzdWFsbHkgKi8KICBib3JkZXI6
IDA7CiAgY2xpcDogcmVjdCgwIDAgMCAwKTsKICBoZWlnaHQ6IDFweDsKICBtYXJnaW46IC0xcHg7
CiAgb3ZlcmZsb3c6IGhpZGRlbjsKICBwYWRkaW5nOiAwOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsK
ICB3aWR0aDogMXB4Owp9Ci8qIFBsYXkvUGF1c2UKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKi8K
LnZqcy1kZWZhdWx0LXNraW4gLnZqcy1wbGF5LWNvbnRyb2wgewogIHdpZHRoOiA1ZW07CiAgY3Vy
c29yOiBwb2ludGVyOwp9Ci52anMtZGVmYXVsdC1za2luIC52anMtcGxheS1jb250cm9sOmJlZm9y
ZSB7CiAgY29udGVudDogIlxlMDAxIjsKfQoudmpzLWRlZmF1bHQtc2tpbi52anMtcGxheWluZyAu
dmpzLXBsYXktY29udHJvbDpiZWZvcmUgewogIGNvbnRlbnQ6ICJcZTAwMiI7Cn0KLyogUGxheWJh
Y2sgdG9nZ2xlCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiovCi52anMtZGVmYXVsdC1za2luIC52
anMtcGxheWJhY2stcmF0ZSAudmpzLXBsYXliYWNrLXJhdGUtdmFsdWUgewogIGZvbnQtc2l6ZTog
MS41ZW07CiAgbGluZS1oZWlnaHQ6IDI7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHRvcDogMDsK
ICBsZWZ0OiAwOwogIHdpZHRoOiAxMDAlOwogIGhlaWdodDogMTAwJTsKICB0ZXh0LWFsaWduOiBj
ZW50ZXI7CiAgdGV4dC1zaGFkb3c6IDFweCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC41KTsKfQou
dmpzLWRlZmF1bHQtc2tpbiAudmpzLXBsYXliYWNrLXJhdGUudmpzLW1lbnUtYnV0dG9uIC52anMt
bWVudSAudmpzLW1lbnUtY29udGVudCB7CiAgd2lkdGg6IDRlbTsKICBsZWZ0OiAtMmVtOwogIGxp
c3Qtc3R5bGU6IG5vbmU7Cn0KLyogVm9sdW1lL011dGUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
Ki8KLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1tdXRlLWNvbnRyb2wsCi52anMtZGVmYXVsdC1za2lu
IC52anMtdm9sdW1lLW1lbnUtYnV0dG9uIHsKICBjdXJzb3I6IHBvaW50ZXI7CiAgZmxvYXQ6IHJp
Z2h0Owp9Ci52anMtZGVmYXVsdC1za2luIC52anMtbXV0ZS1jb250cm9sOmJlZm9yZSwKLnZqcy1k
ZWZhdWx0LXNraW4gLnZqcy12b2x1bWUtbWVudS1idXR0b246YmVmb3JlIHsKICBjb250ZW50OiAi
XGUwMDYiOwp9Ci52anMtZGVmYXVsdC1za2luIC52anMtbXV0ZS1jb250cm9sLnZqcy12b2wtMDpi
ZWZvcmUsCi52anMtZGVmYXVsdC1za2luIC52anMtdm9sdW1lLW1lbnUtYnV0dG9uLnZqcy12b2wt
MDpiZWZvcmUgewogIGNvbnRlbnQ6ICJcZTAwMyI7Cn0KLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1t
dXRlLWNvbnRyb2wudmpzLXZvbC0xOmJlZm9yZSwKLnZqcy1kZWZhdWx0LXNraW4gLnZqcy12b2x1
bWUtbWVudS1idXR0b24udmpzLXZvbC0xOmJlZm9yZSB7CiAgY29udGVudDogIlxlMDA0IjsKfQou
dmpzLWRlZmF1bHQtc2tpbiAudmpzLW11dGUtY29udHJvbC52anMtdm9sLTI6YmVmb3JlLAoudmpz
LWRlZmF1bHQtc2tpbiAudmpzLXZvbHVtZS1tZW51LWJ1dHRvbi52anMtdm9sLTI6YmVmb3JlIHsK
ICBjb250ZW50OiAiXGUwMDUiOwp9Ci52anMtZGVmYXVsdC1za2luIC52anMtdm9sdW1lLWNvbnRy
b2wgewogIHdpZHRoOiA1ZW07CiAgZmxvYXQ6IHJpZ2h0Owp9Ci52anMtZGVmYXVsdC1za2luIC52
anMtdm9sdW1lLWJhciB7CiAgd2lkdGg6IDVlbTsKICBoZWlnaHQ6IDAuNmVtOwogIG1hcmdpbjog
MS4xZW0gYXV0byAwOwp9Ci52anMtZGVmYXVsdC1za2luIC52anMtdm9sdW1lLW1lbnUtYnV0dG9u
IC52anMtbWVudS1jb250ZW50IHsKICBoZWlnaHQ6IDIuOWVtOwp9Ci52anMtZGVmYXVsdC1za2lu
IC52anMtdm9sdW1lLWxldmVsIHsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgdG9wOiAwOwogIGxl
ZnQ6IDA7CiAgaGVpZ2h0OiAwLjVlbTsKICAvKiBhc3N1bWluZyB2b2x1bWUgc3RhcnRzIGF0IDEu
MCAqLwoKICB3aWR0aDogMTAwJTsKICBiYWNrZ3JvdW5kOiAjNjZhOGNjIHVybChkYXRhOmltYWdl
L3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFZQUFBQUdDQVlBQUFEZ3pPOUlB
QUFBUDBsRVFWUUlIV1dNQVFvQUlBZ0RSL1FKL1ViLy8wNCt3N1pJQ0J3Y09nNUZaaTVpQkI4MkFH
eml4RWdsSnJkNFRWSzVYVUpwc2tTVEV2cGRGelg5QUIycEd6aVNRY3ZBQUFBQUFFbEZUa1N1UW1D
QykgLTUwJSAwIHJlcGVhdDsKfQoudmpzLWRlZmF1bHQtc2tpbiAudmpzLXZvbHVtZS1iYXIgLnZq
cy12b2x1bWUtaGFuZGxlIHsKICB3aWR0aDogMC41ZW07CiAgaGVpZ2h0OiAwLjVlbTsKICAvKiBB
c3N1bWVzIHZvbHVtZSBzdGFydHMgYXQgMS4wLiBJZiB5b3UgY2hhbmdlIHRoZSBzaXplIG9mIHRo
ZQogICAgIGhhbmRsZSByZWxhdGl2ZSB0byB0aGUgdm9sdW1lIGJhciwgeW91J2xsIG5lZWQgdG8g
dXBkYXRlIHRoaXMgdmFsdWUKICAgICB0b28uICovCgogIGxlZnQ6IDQuNWVtOwp9Ci52anMtZGVm
YXVsdC1za2luIC52anMtdm9sdW1lLWhhbmRsZTpiZWZvcmUgewogIGZvbnQtc2l6ZTogMC45ZW07
CiAgdG9wOiAtMC4yZW07CiAgbGVmdDogLTAuMmVtOwogIHdpZHRoOiAxZW07CiAgaGVpZ2h0OiAx
ZW07Cn0KLnZqcy1kZWZhdWx0LXNraW4gLnZqcy12b2x1bWUtbWVudS1idXR0b24gLnZqcy1tZW51
IC52anMtbWVudS1jb250ZW50IHsKICB3aWR0aDogNmVtOwogIGxlZnQ6IC00ZW07Cn0KLyogUHJv
Z3Jlc3MKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKi8KLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1w
cm9ncmVzcy1jb250cm9sIHsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgbGVmdDogMDsKICByaWdo
dDogMDsKICB3aWR0aDogYXV0bzsKICBmb250LXNpemU6IDAuM2VtOwogIGhlaWdodDogMWVtOwog
IC8qIFNldCBhYm92ZSB0aGUgcmVzdCBvZiB0aGUgY29udHJvbHMuICovCiAgdG9wOiAtMWVtOwog
IC8qIFNocmluayB0aGUgYmFyIHNsb3dlciB0aGFuIGl0IGdyb3dzLiAqLwogIC8qIHRyYW5zaXRp
b24gKi8KICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjRzOwogIC1tb3otdHJhbnNpdGlvbjog
YWxsIDAuNHM7CiAgLW8tdHJhbnNpdGlvbjogYWxsIDAuNHM7CiAgdHJhbnNpdGlvbjogYWxsIDAu
NHM7Cn0KLyogT24gaG92ZXIsIG1ha2UgdGhlIHByb2dyZXNzIGJhciBncm93IHRvIHNvbWV0aGlu
ZyB0aGF0J3MgbW9yZSBjbGlja2FibGUuCiAgICBUaGlzIHNpbXBseSBjaGFuZ2VzIHRoZSBvdmVy
YWxsIGZvbnQgZm9yIHRoZSBwcm9ncmVzcyBiYXIsIGFuZCB0aGlzCiAgICB1cGRhdGVzIGJvdGgg
dGhlIGVtLWJhc2VkIHdpZHRocyBhbmQgaGVpZ2h0cywgYXMgd2VsbHMgYXMgdGhlIGljb24gZm9u
dCAqLwoudmpzLWRlZmF1bHQtc2tpbjpob3ZlciAudmpzLXByb2dyZXNzLWNvbnRyb2wgewogIGZv
bnQtc2l6ZTogLjllbTsKICAvKiBFdmVuIHRob3VnaCB3ZSdyZSBub3QgY2hhbmdpbmcgdGhlIHRv
cC9oZWlnaHQsIHdlIG5lZWQgdG8gaW5jbHVkZSB0aGVtIGluCiAgICAgIHRoZSB0cmFuc2l0aW9u
IHNvIHRoZXkncmUgaGFuZGxlZCBjb3JyZWN0bHkuICovCgogIC8qIHRyYW5zaXRpb24gKi8KICAt
d2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjJzOwogIC1tb3otdHJhbnNpdGlvbjogYWxsIDAuMnM7
CiAgLW8tdHJhbnNpdGlvbjogYWxsIDAuMnM7CiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7Cn0KLyog
Qm94IGNvbnRhaW5pbmcgcGxheSBhbmQgbG9hZCBwcm9ncmVzc2VzLiBBbHNvIGFjdHMgYXMgc2Vl
ayBzY3J1YmJlci4gKi8KLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1wcm9ncmVzcy1ob2xkZXIgewog
IGhlaWdodDogMTAwJTsKfQovKiBQcm9ncmVzcyBCYXJzICovCi52anMtZGVmYXVsdC1za2luIC52
anMtcHJvZ3Jlc3MtaG9sZGVyIC52anMtcGxheS1wcm9ncmVzcywKLnZqcy1kZWZhdWx0LXNraW4g
LnZqcy1wcm9ncmVzcy1ob2xkZXIgLnZqcy1sb2FkLXByb2dyZXNzLAoudmpzLWRlZmF1bHQtc2tp
biAudmpzLXByb2dyZXNzLWhvbGRlciAudmpzLWxvYWQtcHJvZ3Jlc3MgZGl2IHsKICBwb3NpdGlv
bjogYWJzb2x1dGU7CiAgZGlzcGxheTogYmxvY2s7CiAgaGVpZ2h0OiAxMDAlOwogIG1hcmdpbjog
MDsKICBwYWRkaW5nOiAwOwogIC8qIHVwZGF0ZWQgYnkgamF2YXNjcmlwdCBkdXJpbmcgcGxheWJh
Y2sgKi8KCiAgd2lkdGg6IDA7CiAgLyogTmVlZGVkIGZvciBJRTYgKi8KICBsZWZ0OiAwOwogIHRv
cDogMDsKfQoudmpzLWRlZmF1bHQtc2tpbiAudmpzLXBsYXktcHJvZ3Jlc3MgewogIC8qCiAgICBV
c2luZyBhIGRhdGEgVVJJIHRvIGNyZWF0ZSB0aGUgd2hpdGUgZGlhZ29uYWwgbGluZXMgd2l0aCBh
IHRyYW5zcGFyZW50CiAgICAgIGJhY2tncm91bmQuIFN1cnByaXNpbmdseSB3b3JrcyBpbiBJRTgu
CiAgICAgIENyZWF0ZWQgdXNpbmcgaHR0cDovL3d3dy5wYXR0ZXJuaWZ5LmNvbQogICAgQ2hhbmdp
bmcgdGhlIGZpcnN0IGNvbG9yIHZhbHVlIHdpbGwgY2hhbmdlIHRoZSBiYXIgY29sb3IuCiAgICBB
bHNvIHVzaW5nIGEgcGFyYWxheCBlZmZlY3QgdG8gbWFrZSB0aGUgbGluZXMgbW92ZSBiYWNrd2Fy
ZHMuCiAgICAgIFRoZSAtNTAlIGxlZnQgcG9zaXRpb24gbWFrZXMgdGhhdCBoYXBwZW4uCiAgKi8K
CiAgYmFja2dyb3VuZDogIzY2YThjYyB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBL
R2dvQUFBQU5TVWhFVWdBQUFBWUFBQUFHQ0FZQUFBRGd6TzlJQUFBQVAwbEVRVlFJSFdXTUFRb0FJ
QWdEUi9RSi9VYi8vMDQrdzdaSUNCd2NPZzVGWmk1aUJCODJBR3ppeEVnbEpyZDRUVks1WFVKcHNr
U1RFdnBkRnpYOUFCMnBHemlTUWN2QUFBQUFBRWxGVGtTdVFtQ0MpIC01MCUgMCByZXBlYXQ7Cn0K
LnZqcy1kZWZhdWx0LXNraW4gLnZqcy1sb2FkLXByb2dyZXNzIHsKICBiYWNrZ3JvdW5kOiAjNjQ2
NDY0IC8qIElFOC0gRmFsbGJhY2sgKi87CiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1
LCAwLjIpOwp9Ci8qIHRoZXJlIGFyZSBjaGlsZCBlbGVtZW50cyBvZiB0aGUgbG9hZCBwcm9ncmVz
cyBiYXIgdGhhdCByZXByZXNlbnQgdGhlCiAgIHNwZWNpZmljIHRpbWUgcmFuZ2VzIHRoYXQgaGF2
ZSBiZWVuIGJ1ZmZlcmVkICovCi52anMtZGVmYXVsdC1za2luIC52anMtbG9hZC1wcm9ncmVzcyBk
aXYgewogIGJhY2tncm91bmQ6ICM3ODc4NzggLyogSUU4LSBGYWxsYmFjayAqLzsKICBiYWNrZ3Jv
dW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7Cn0KLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1z
ZWVrLWhhbmRsZSB7CiAgd2lkdGg6IDEuNWVtOwogIGhlaWdodDogMTAwJTsKfQoudmpzLWRlZmF1
bHQtc2tpbiAudmpzLXNlZWstaGFuZGxlOmJlZm9yZSB7CiAgcGFkZGluZy10b3A6IDAuMWVtIC8q
IE1pbm9yIGFkanVzdG1lbnQgKi87Cn0KLyogTGl2ZSBNb2RlCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiovCi52anMtZGVmYXVsdC1za2luLnZqcy1saXZlIC52anMtdGltZS1jb250cm9scywKLnZq
cy1kZWZhdWx0LXNraW4udmpzLWxpdmUgLnZqcy10aW1lLWRpdmlkZXIsCi52anMtZGVmYXVsdC1z
a2luLnZqcy1saXZlIC52anMtcHJvZ3Jlc3MtY29udHJvbCB7CiAgZGlzcGxheTogbm9uZTsKfQou
dmpzLWRlZmF1bHQtc2tpbi52anMtbGl2ZSAudmpzLWxpdmUtZGlzcGxheSB7CiAgZGlzcGxheTog
YmxvY2s7Cn0KLyogTGl2ZSBEaXNwbGF5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiovCi52anMt
ZGVmYXVsdC1za2luIC52anMtbGl2ZS1kaXNwbGF5IHsKICBkaXNwbGF5OiBub25lOwogIGZvbnQt
c2l6ZTogMWVtOwogIGxpbmUtaGVpZ2h0OiAzZW07Cn0KLyogVGltZSBEaXNwbGF5Ci0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCiovCi52anMtZGVmYXVsdC1za2luIC52anMtdGltZS1jb250cm9scyB7
CiAgZm9udC1zaXplOiAxZW07CiAgLyogQWxpZ24gdmVydGljYWxseSBieSBtYWtpbmcgdGhlIGxp
bmUgaGVpZ2h0IHRoZSBzYW1lIGFzIHRoZSBjb250cm9sIGJhciAqLwogIGxpbmUtaGVpZ2h0OiAz
ZW07Cn0KLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1jdXJyZW50LXRpbWUgewogIGZsb2F0OiBsZWZ0
Owp9Ci52anMtZGVmYXVsdC1za2luIC52anMtZHVyYXRpb24gewogIGZsb2F0OiBsZWZ0Owp9Ci8q
IFJlbWFpbmluZyB0aW1lIGlzIGluIHRoZSBIVE1MLCBidXQgbm90IGluY2x1ZGVkIGluIGRlZmF1
bHQgZGVzaWduICovCi52anMtZGVmYXVsdC1za2luIC52anMtcmVtYWluaW5nLXRpbWUgewogIGRp
c3BsYXk6IG5vbmU7CiAgZmxvYXQ6IGxlZnQ7Cn0KLnZqcy10aW1lLWRpdmlkZXIgewogIGZsb2F0
OiBsZWZ0OwogIGxpbmUtaGVpZ2h0OiAzZW07Cn0KLyogRnVsbHNjcmVlbgotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQoqLwoudmpzLWRlZmF1bHQtc2tpbiAudmpzLWZ1bGxzY3JlZW4tY29udHJvbCB7
CiAgd2lkdGg6IDMuOGVtOwogIGN1cnNvcjogcG9pbnRlcjsKICBmbG9hdDogcmlnaHQ7Cn0KLnZq
cy1kZWZhdWx0LXNraW4gLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2w6YmVmb3JlIHsKICBjb250ZW50
OiAiXGUwMDAiOwp9Ci8qIFN3aXRjaCB0byB0aGUgZXhpdCBpY29uIHdoZW4gdGhlIHBsYXllciBp
cyBpbiBmdWxsc2NyZWVuICovCi52anMtZGVmYXVsdC1za2luLnZqcy1mdWxsc2NyZWVuIC52anMt
ZnVsbHNjcmVlbi1jb250cm9sOmJlZm9yZSB7CiAgY29udGVudDogIlxlMDBiIjsKfQovKiBCaWcg
UGxheSBCdXR0b24gKHBsYXkgYnV0dG9uIGF0IHN0YXJ0KQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQpQb3NpdGlvbmluZyBvZiB0aGUgcGxheSBidXR0b24gaW4gdGhlIGNlbnRlciBvciBvdGhlciBj
b3JuZXJzIGNhbiBiZSBkb25lIG1vcmUKZWFzaWx5IGluIHRoZSBza2luIGRlc2lnbmVyLiBodHRw
Oi8vZGVzaWduZXIudmlkZW9qcy5jb20vCiovCi52anMtZGVmYXVsdC1za2luIC52anMtYmlnLXBs
YXktYnV0dG9uIHsKICBsZWZ0OiAwLjVlbTsKICB0b3A6IDAuNWVtOwogIGZvbnQtc2l6ZTogM2Vt
OwogIGRpc3BsYXk6IGJsb2NrOwogIHotaW5kZXg6IDI7CiAgcG9zaXRpb246IGFic29sdXRlOwog
IHdpZHRoOiA0ZW07CiAgaGVpZ2h0OiAyLjZlbTsKICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgdmVy
dGljYWwtYWxpZ246IG1pZGRsZTsKICBjdXJzb3I6IHBvaW50ZXI7CiAgb3BhY2l0eTogMTsKICAv
KiBOZWVkIGEgc2xpZ2h0bHkgZ3JheSBiZyBzbyBpdCBjYW4gYmUgc2VlbiBvbiBibGFjayBiYWNr
Z3JvdW5kcyAqLwogIC8qIGJhY2tncm91bmQtY29sb3Itd2l0aC1hbHBoYSAqLwogIGJhY2tncm91
bmQtY29sb3I6ICMwNzE0MWU7CiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg3LCAyMCwgMzAsIDAu
Nyk7CiAgYm9yZGVyOiAwLjFlbSBzb2xpZCAjM2I0MjQ5OwogIC8qIGJvcmRlci1yYWRpdXMgKi8K
ICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDAuOGVtOwogIC1tb3otYm9yZGVyLXJhZGl1czogMC44
ZW07CiAgYm9yZGVyLXJhZGl1czogMC44ZW07CiAgLyogYm94LXNoYWRvdyAqLwogIC13ZWJraXQt
Ym94LXNoYWRvdzogMHB4IDBweCAxZW0gcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTsKICAtbW96
LWJveC1zaGFkb3c6IDBweCAwcHggMWVtIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7CiAgYm94
LXNoYWRvdzogMHB4IDBweCAxZW0gcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTsKICAvKiB0cmFu
c2l0aW9uICovCiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC40czsKICAtbW96LXRyYW5zaXRp
b246IGFsbCAwLjRzOwogIC1vLXRyYW5zaXRpb246IGFsbCAwLjRzOwogIHRyYW5zaXRpb246IGFs
bCAwLjRzOwp9Ci8qIE9wdGlvbmFsbHkgY2VudGVyICovCi52anMtZGVmYXVsdC1za2luLnZqcy1i
aWctcGxheS1jZW50ZXJlZCAudmpzLWJpZy1wbGF5LWJ1dHRvbiB7CiAgLyogQ2VudGVyIGl0IGhv
cml6b250YWxseSAqLwogIGxlZnQ6IDUwJTsKICBtYXJnaW4tbGVmdDogLTIuMWVtOwogIC8qIENl
bnRlciBpdCB2ZXJ0aWNhbGx5ICovCiAgdG9wOiA1MCU7CiAgbWFyZ2luLXRvcDogLTEuNDAwMDAw
MDAwMDAwMDAwMWVtOwp9Ci8qIEhpZGUgaWYgY29udHJvbHMgYXJlIGRpc2FibGVkICovCi52anMt
ZGVmYXVsdC1za2luLnZqcy1jb250cm9scy1kaXNhYmxlZCAudmpzLWJpZy1wbGF5LWJ1dHRvbiB7
CiAgZGlzcGxheTogbm9uZTsKfQovKiBIaWRlIHdoZW4gdmlkZW8gc3RhcnRzIHBsYXlpbmcgKi8K
LnZqcy1kZWZhdWx0LXNraW4udmpzLWhhcy1zdGFydGVkIC52anMtYmlnLXBsYXktYnV0dG9uIHsK
ICBkaXNwbGF5OiBub25lOwp9Ci8qIEhpZGUgb24gbW9iaWxlIGRldmljZXMuIFJlbW92ZSB3aGVu
IHdlIHN0b3AgdXNpbmcgbmF0aXZlIGNvbnRyb2xzCiAgICBieSBkZWZhdWx0IG9uIG1vYmlsZSAg
Ki8KLnZqcy1kZWZhdWx0LXNraW4udmpzLXVzaW5nLW5hdGl2ZS1jb250cm9scyAudmpzLWJpZy1w
bGF5LWJ1dHRvbiB7CiAgZGlzcGxheTogbm9uZTsKfQoudmpzLWRlZmF1bHQtc2tpbjpob3ZlciAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1iaWctcGxheS1idXR0
b246Zm9jdXMgewogIG91dGxpbmU6IDA7CiAgYm9yZGVyLWNvbG9yOiAjZmZmOwogIC8qIElFOCBu
ZWVkcyBhIG5vbi1nbG93IGhvdmVyIHN0YXRlICovCiAgYmFja2dyb3VuZC1jb2xvcjogIzUwNTA1
MDsKICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDUwLCA1MCwgNTAsIDAuNzUpOwogIC8qIGJveC1z
aGFkb3cgKi8KICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAzZW0gI2ZmZmZmZjsKICAtbW96LWJv
eC1zaGFkb3c6IDAgMCAzZW0gI2ZmZmZmZjsKICBib3gtc2hhZG93OiAwIDAgM2VtICNmZmZmZmY7
CiAgLyogdHJhbnNpdGlvbiAqLwogIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDBzOwogIC1tb3ot
dHJhbnNpdGlvbjogYWxsIDBzOwogIC1vLXRyYW5zaXRpb246IGFsbCAwczsKICB0cmFuc2l0aW9u
OiBhbGwgMHM7Cn0KLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1iaWctcGxheS1idXR0b246YmVmb3Jl
IHsKICBjb250ZW50OiAiXGUwMDEiOwogIGZvbnQtZmFtaWx5OiBWaWRlb0pTOwogIC8qIEluIG9y
ZGVyIHRvIGNlbnRlciB0aGUgcGxheSBpY29uIHZlcnRpY2FsbHkgd2UgbmVlZCB0byBzZXQgdGhl
IGxpbmUgaGVpZ2h0CiAgICAgdG8gdGhlIHNhbWUgYXMgdGhlIGJ1dHRvbiBoZWlnaHQgKi8KCiAg
bGluZS1oZWlnaHQ6IDIuNmVtOwogIHRleHQtc2hhZG93OiAwLjA1ZW0gMC4wNWVtIDAuMWVtICMw
MDA7CiAgdGV4dC1hbGlnbjogY2VudGVyIC8qIE5lZWRlZCBmb3IgSUU4ICovOwogIHBvc2l0aW9u
OiBhYnNvbHV0ZTsKICBsZWZ0OiAwOwogIHdpZHRoOiAxMDAlOwogIGhlaWdodDogMTAwJTsKfQou
dmpzLWVycm9yIC52anMtYmlnLXBsYXktYnV0dG9uIHsKICBkaXNwbGF5OiBub25lOwp9Ci8qIEVy
cm9yIERpc3BsYXkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKi8KLnZqcy1lcnJvci1kaXNwbGF5
IHsKICBkaXNwbGF5OiBub25lOwp9Ci52anMtZXJyb3IgLnZqcy1lcnJvci1kaXNwbGF5IHsKICBk
aXNwbGF5OiBibG9jazsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgbGVmdDogMDsKICB0b3A6IDA7
CiAgd2lkdGg6IDEwMCU7CiAgaGVpZ2h0OiAxMDAlOwp9Ci52anMtZXJyb3IgLnZqcy1lcnJvci1k
aXNwbGF5OmJlZm9yZSB7CiAgY29udGVudDogJ1gnOwogIGZvbnQtZmFtaWx5OiBBcmlhbDsKICBm
b250LXNpemU6IDRlbTsKICBjb2xvcjogIzY2NjY2NjsKICAvKiBJbiBvcmRlciB0byBjZW50ZXIg
dGhlIHBsYXkgaWNvbiB2ZXJ0aWNhbGx5IHdlIG5lZWQgdG8gc2V0IHRoZSBsaW5lIGhlaWdodAog
ICAgIHRvIHRoZSBzYW1lIGFzIHRoZSBidXR0b24gaGVpZ2h0ICovCgogIGxpbmUtaGVpZ2h0OiAx
OwogIHRleHQtc2hhZG93OiAwLjA1ZW0gMC4wNWVtIDAuMWVtICMwMDA7CiAgdGV4dC1hbGlnbjog
Y2VudGVyIC8qIE5lZWRlZCBmb3IgSUU4ICovOwogIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAg
cG9zaXRpb246IGFic29sdXRlOwogIGxlZnQ6IDA7CiAgdG9wOiA1MCU7CiAgbWFyZ2luLXRvcDog
LTAuNWVtOwogIHdpZHRoOiAxMDAlOwp9Ci52anMtZXJyb3ItZGlzcGxheSBkaXYgewogIHBvc2l0
aW9uOiBhYnNvbHV0ZTsKICBib3R0b206IDFlbTsKICByaWdodDogMDsKICBsZWZ0OiAwOwogIGZv
bnQtc2l6ZTogMS40ZW07CiAgdGV4dC1hbGlnbjogY2VudGVyOwogIHBhZGRpbmc6IDNweDsKICBi
YWNrZ3JvdW5kOiAjMDAwMDAwOwogIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC41KTsKfQou
dmpzLWVycm9yLWRpc3BsYXkgYSwKLnZqcy1lcnJvci1kaXNwbGF5IGE6dmlzaXRlZCB7CiAgY29s
b3I6ICNGNEE0NjA7Cn0KLyogTG9hZGluZyBTcGlubmVyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiovCi52anMtbG9hZGluZy1zcGlubmVyIHsKICAvKiBTaG91bGQgYmUgaGlkZGVuIGJ5IGRlZmF1
bHQgKi8KICBkaXNwbGF5OiBub25lOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB0b3A6IDUwJTsK
ICBsZWZ0OiA1MCU7CiAgZm9udC1zaXplOiA0ZW07CiAgbGluZS1oZWlnaHQ6IDE7CiAgd2lkdGg6
IDFlbTsKICBoZWlnaHQ6IDFlbTsKICBtYXJnaW4tbGVmdDogLTAuNWVtOwogIG1hcmdpbi10b3A6
IC0wLjVlbTsKICBvcGFjaXR5OiAwLjc1Owp9Ci8qIFNob3cgdGhlIHNwaW5uZXIgd2hlbiB3YWl0
aW5nIGZvciBkYXRhIGFuZCBzZWVraW5nIHRvIGEgbmV3IHRpbWUgKi8KLnZqcy13YWl0aW5nIC52
anMtbG9hZGluZy1zcGlubmVyLAoudmpzLXNlZWtpbmcgLnZqcy1sb2FkaW5nLXNwaW5uZXIgewog
IGRpc3BsYXk6IGJsb2NrOwogIC8qIG9ubHkgYW5pbWF0ZSB3aGVuIHNob3dpbmcgYmVjYXVzZSBp
dCBjYW4gYmUgcHJvY2Vzc29yIGhlYXZ5ICovCiAgLyogYW5pbWF0aW9uICovCiAgLXdlYmtpdC1h
bmltYXRpb246IHNwaW4gMS41cyBpbmZpbml0ZSBsaW5lYXI7CiAgLW1vei1hbmltYXRpb246IHNw
aW4gMS41cyBpbmZpbml0ZSBsaW5lYXI7CiAgLW8tYW5pbWF0aW9uOiBzcGluIDEuNXMgaW5maW5p
dGUgbGluZWFyOwogIGFuaW1hdGlvbjogc3BpbiAxLjVzIGluZmluaXRlIGxpbmVhcjsKfQovKiBF
cnJvcnMgYXJlIHVucmVjb3ZlcmFibGUgd2l0aG91dCB1c2VyIGludGVyYWN0aW9uIHNvIGhpZGUg
dGhlIHNwaW5uZXIgKi8KLnZqcy1lcnJvciAudmpzLWxvYWRpbmctc3Bpbm5lciB7CiAgZGlzcGxh
eTogbm9uZTsKICAvKiBlbnN1cmUgYW5pbWF0aW9uIGRvZXNuJ3QgY29udGludWUgd2hpbGUgaGlk
ZGVuICovCiAgLyogYW5pbWF0aW9uICovCiAgLXdlYmtpdC1hbmltYXRpb246IG5vbmU7CiAgLW1v
ei1hbmltYXRpb246IG5vbmU7CiAgLW8tYW5pbWF0aW9uOiBub25lOwogIGFuaW1hdGlvbjogbm9u
ZTsKfQoudmpzLWRlZmF1bHQtc2tpbiAudmpzLWxvYWRpbmctc3Bpbm5lcjpiZWZvcmUgewogIGNv
bnRlbnQ6ICJcZTAxZSI7CiAgZm9udC1mYW1pbHk6IFZpZGVvSlM7CiAgcG9zaXRpb246IGFic29s
dXRlOwogIHRvcDogMDsKICBsZWZ0OiAwOwogIHdpZHRoOiAxZW07CiAgaGVpZ2h0OiAxZW07CiAg
dGV4dC1hbGlnbjogY2VudGVyOwogIHRleHQtc2hhZG93OiAwZW0gMGVtIDAuMWVtICMwMDA7Cn0K
QC1tb3ota2V5ZnJhbWVzIHNwaW4gewogIDAlIHsKICAgIC1tb3otdHJhbnNmb3JtOiByb3RhdGUo
MGRlZyk7CiAgfQogIDEwMCUgewogICAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpOwog
IH0KfQpALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7CiAgMCUgewogICAgLXdlYmtpdC10cmFuc2Zv
cm06IHJvdGF0ZSgwZGVnKTsKICB9CiAgMTAwJSB7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90
YXRlKDM1OWRlZyk7CiAgfQp9CkAtby1rZXlmcmFtZXMgc3BpbiB7CiAgMCUgewogICAgLW8tdHJh
bnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgfQogIDEwMCUgewogICAgLW8tdHJhbnNmb3JtOiByb3Rh
dGUoMzU5ZGVnKTsKICB9Cn0KQGtleWZyYW1lcyBzcGluIHsKICAwJSB7CiAgICB0cmFuc2Zvcm06
IHJvdGF0ZSgwZGVnKTsKICB9CiAgMTAwJSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcp
OwogIH0KfQovKiBNZW51IEJ1dHRvbnMgKENhcHRpb25zL1N1YnRpdGxlcy9ldGMuKQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQoqLwoudmpzLWRlZmF1bHQtc2tpbiAudmpzLW1lbnUtYnV0dG9uIHsK
ICBmbG9hdDogcmlnaHQ7CiAgY3Vyc29yOiBwb2ludGVyOwp9Ci52anMtZGVmYXVsdC1za2luIC52
anMtbWVudSB7CiAgZGlzcGxheTogbm9uZTsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgYm90dG9t
OiAwOwogIGxlZnQ6IDBlbTsKICAvKiAoV2lkdGggb2YgdmpzLW1lbnUgLSB3aWR0aCBvZiBidXR0
b24pIC8gMiAqLwoKICB3aWR0aDogMGVtOwogIGhlaWdodDogMGVtOwogIG1hcmdpbi1ib3R0b206
IDNlbTsKICBib3JkZXItbGVmdDogMmVtIHNvbGlkIHRyYW5zcGFyZW50OwogIGJvcmRlci1yaWdo
dDogMmVtIHNvbGlkIHRyYW5zcGFyZW50OwogIGJvcmRlci10b3A6IDEuNTVlbSBzb2xpZCAjMDAw
MDAwOwogIC8qIFNhbWUgd2lkdGggdG9wIGFzIHVsIGJvdHRvbSAqLwoKICBib3JkZXItdG9wLWNv
bG9yOiByZ2JhKDcsIDQwLCA1MCwgMC41KTsKICAvKiBTYW1lIGFzIHVsIGJhY2tncm91bmQgKi8K
Cn0KLyogQnV0dG9uIFBvcC11cCBNZW51ICovCi52anMtZGVmYXVsdC1za2luIC52anMtbWVudS1i
dXR0b24gLnZqcy1tZW51IC52anMtbWVudS1jb250ZW50IHsKICBkaXNwbGF5OiBibG9jazsKICBw
YWRkaW5nOiAwOwogIG1hcmdpbjogMDsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgd2lkdGg6IDEw
ZW07CiAgYm90dG9tOiAxLjVlbTsKICAvKiBTYW1lIGJvdHRvbSBhcyB2anMtbWVudSBib3JkZXIt
dG9wICovCgogIG1heC1oZWlnaHQ6IDE1ZW07CiAgb3ZlcmZsb3c6IGF1dG87CiAgbGVmdDogLTVl
bTsKICAvKiBXaWR0aCBvZiBtZW51IC0gd2lkdGggb2YgYnV0dG9uIC8gMiAqLwoKICAvKiBiYWNr
Z3JvdW5kLWNvbG9yLXdpdGgtYWxwaGEgKi8KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDcxNDFlOwog
IGJhY2tncm91bmQtY29sb3I6IHJnYmEoNywgMjAsIDMwLCAwLjcpOwogIC8qIGJveC1zaGFkb3cg
Ki8KICAtd2Via2l0LWJveC1zaGFkb3c6IC0wLjJlbSAtMC4yZW0gMC4zZW0gcmdiYSgyNTUsIDI1
NSwgMjU1LCAwLjIpOwogIC1tb3otYm94LXNoYWRvdzogLTAuMmVtIC0wLjJlbSAwLjNlbSByZ2Jh
KDI1NSwgMjU1LCAyNTUsIDAuMik7CiAgYm94LXNoYWRvdzogLTAuMmVtIC0wLjJlbSAwLjNlbSBy
Z2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7Cn0KLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1tZW51LWJ1
dHRvbjpob3ZlciAudmpzLW1lbnUgewogIGRpc3BsYXk6IGJsb2NrOwp9Ci52anMtZGVmYXVsdC1z
a2luIC52anMtbWVudS1idXR0b24gdWwgbGkgewogIGxpc3Qtc3R5bGU6IG5vbmU7CiAgbWFyZ2lu
OiAwOwogIHBhZGRpbmc6IDAuM2VtIDAgMC4zZW0gMDsKICBsaW5lLWhlaWdodDogMS40ZW07CiAg
Zm9udC1zaXplOiAxLjJlbTsKICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgdGV4dC10cmFuc2Zvcm06
IGxvd2VyY2FzZTsKfQoudmpzLWRlZmF1bHQtc2tpbiAudmpzLW1lbnUtYnV0dG9uIHVsIGxpLnZq
cy1zZWxlY3RlZCB7CiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsKfQoudmpzLWRlZmF1bHQtc2tp
biAudmpzLW1lbnUtYnV0dG9uIHVsIGxpOmZvY3VzLAoudmpzLWRlZmF1bHQtc2tpbiAudmpzLW1l
bnUtYnV0dG9uIHVsIGxpOmhvdmVyLAoudmpzLWRlZmF1bHQtc2tpbiAudmpzLW1lbnUtYnV0dG9u
IHVsIGxpLnZqcy1zZWxlY3RlZDpmb2N1cywKLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1tZW51LWJ1
dHRvbiB1bCBsaS52anMtc2VsZWN0ZWQ6aG92ZXIgewogIG91dGxpbmU6IDA7CiAgY29sb3I6ICMx
MTE7CiAgLyogYmFja2dyb3VuZC1jb2xvci13aXRoLWFscGhhICovCiAgYmFja2dyb3VuZC1jb2xv
cjogI2ZmZmZmZjsKICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzUp
OwogIC8qIGJveC1zaGFkb3cgKi8KICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAxZW0gI2ZmZmZm
ZjsKICAtbW96LWJveC1zaGFkb3c6IDAgMCAxZW0gI2ZmZmZmZjsKICBib3gtc2hhZG93OiAwIDAg
MWVtICNmZmZmZmY7Cn0KLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1tZW51LWJ1dHRvbiB1bCBsaS52
anMtbWVudS10aXRsZSB7CiAgdGV4dC1hbGlnbjogY2VudGVyOwogIHRleHQtdHJhbnNmb3JtOiB1
cHBlcmNhc2U7CiAgZm9udC1zaXplOiAxZW07CiAgbGluZS1oZWlnaHQ6IDJlbTsKICBwYWRkaW5n
OiAwOwogIG1hcmdpbjogMCAwIDAuM2VtIDA7CiAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgY3Vyc29y
OiBkZWZhdWx0Owp9Ci8qIFN1YnRpdGxlcyBCdXR0b24gKi8KLnZqcy1kZWZhdWx0LXNraW4gLnZq
cy1zdWJ0aXRsZXMtYnV0dG9uOmJlZm9yZSB7CiAgY29udGVudDogIlxlMDBjIjsKfQovKiBDYXB0
aW9ucyBCdXR0b24gKi8KLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1jYXB0aW9ucy1idXR0b246YmVm
b3JlIHsKICBjb250ZW50OiAiXGUwMDgiOwp9Ci8qIENoYXB0ZXJzIEJ1dHRvbiAqLwoudmpzLWRl
ZmF1bHQtc2tpbiAudmpzLWNoYXB0ZXJzLWJ1dHRvbjpiZWZvcmUgewogIGNvbnRlbnQ6ICJcZTAw
YyI7Cn0KLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1jaGFwdGVycy1idXR0b24udmpzLW1lbnUtYnV0
dG9uIC52anMtbWVudSAudmpzLW1lbnUtY29udGVudCB7CiAgd2lkdGg6IDI0ZW07CiAgbGVmdDog
LTEyZW07Cn0KLyogUmVwbGFjZW1lbnQgZm9yIGZvY3VzIG91dGxpbmUgKi8KLnZqcy1kZWZhdWx0
LXNraW4gLnZqcy1jYXB0aW9ucy1idXR0b246Zm9jdXMgLnZqcy1jb250cm9sLWNvbnRlbnQ6YmVm
b3JlLAoudmpzLWRlZmF1bHQtc2tpbiAudmpzLWNhcHRpb25zLWJ1dHRvbjpob3ZlciAudmpzLWNv
bnRyb2wtY29udGVudDpiZWZvcmUgewogIC8qIGJveC1zaGFkb3cgKi8KICAtd2Via2l0LWJveC1z
aGFkb3c6IDAgMCAxZW0gI2ZmZmZmZjsKICAtbW96LWJveC1zaGFkb3c6IDAgMCAxZW0gI2ZmZmZm
ZjsKICBib3gtc2hhZG93OiAwIDAgMWVtICNmZmZmZmY7Cn0KLyoKUkVRVUlSRUQgU1RZTEVTIChi
ZSBjYXJlZnVsIG92ZXJyaWRpbmcpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CldoZW4gbG9hZGlu
ZyB0aGUgcGxheWVyLCB0aGUgdmlkZW8gdGFnIGlzIHJlcGxhY2VkIHdpdGggYSBESVYsCnRoYXQg
d2lsbCBob2xkIHRoZSB2aWRlbyB0YWcgb3Igb2JqZWN0IHRhZyBmb3Igb3RoZXIgcGxheWJhY2sg
bWV0aG9kcy4KVGhlIGRpdiBjb250YWlucyB0aGUgdmlkZW8gcGxheWJhY2sgZWxlbWVudCAoRmxh
c2ggb3IgSFRNTDUpIGFuZCBjb250cm9scywKYW5kIHNldHMgdGhlIHdpZHRoIGFuZCBoZWlnaHQg
b2YgdGhlIHZpZGVvLgoKKiogSWYgeW91IHdhbnQgdG8gYWRkIHNvbWUga2luZCBvZiBib3JkZXIv
cGFkZGluZyAoZS5nLiBhIGZyYW1lKSwgb3Igc3BlY2lhbApwb3NpdGlvbmluZywgdXNlIGFub3Ro
ZXIgY29udGFpbmluZyBlbGVtZW50LiBPdGhlcndpc2UgeW91IHJpc2sgbWVzc2luZyB1cApjb250
cm9sIHBvc2l0aW9uaW5nIGFuZCBmdWxsIHdpbmRvdyBtb2RlLiAqKgoqLwoudmlkZW8tanMgewog
IGJhY2tncm91bmQtY29sb3I6ICMwMDA7CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIHBhZGRpbmc6
IDA7CiAgLyogU3RhcnQgd2l0aCAxMHB4IGZvciBiYXNlIGZvbnQgc2l6ZSBzbyBvdGhlciBkaW1l
bnNpb25zIGNhbiBiZSBlbSBiYXNlZCBhbmQKICAgICBlYXNpbHkgY2FsY3VsYWJsZS4gKi8KCiAg
Zm9udC1zaXplOiAxMHB4OwogIC8qIEFsbG93IHBvc3RlciB0byBiZSB2ZXJ0aWFsbHkgYWxpZ25l
ZC4gKi8KCiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAvKiAgZGlzcGxheTogdGFibGUtY2Vs
bDsgKi8KICAvKlRoaXMgd29ya3MgaW4gU2FmYXJpIGJ1dCBub3QgRmlyZWZveC4qLwoKICAvKiBQ
cm92aWRlIHNvbWUgYmFzaWMgZGVmYXVsdHMgZm9yIGZvbnRzICovCgogIGZvbnQtd2VpZ2h0OiBu
b3JtYWw7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIC8qIEF2b2lkaW5nIGhlbHZldGljYTogaXNz
dWUgIzM3NiAqLwoKICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7CiAgLyogVHVybiBv
ZmYgdXNlciBzZWxlY3Rpb24gKHRleHQgaGlnaGxpZ2h0aW5nKSBieSBkZWZhdWx0LgogICAgIFRo
ZSBtYWpvcml0eSBvZiBwbGF5ZXIgY29tcG9uZW50cyB3aWxsIG5vdCBiZSB0ZXh0IGJsb2Nrcy4K
ICAgICBUZXh0IGFyZWFzIHdpbGwgbmVlZCB0byB0dXJuIHVzZXIgc2VsZWN0aW9uIGJhY2sgb24u
ICovCgogIC8qIHVzZXItc2VsZWN0ICovCiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKICAt
bW96LXVzZXItc2VsZWN0OiBub25lOwogIC1tcy11c2VyLXNlbGVjdDogbm9uZTsKICB1c2VyLXNl
bGVjdDogbm9uZTsKfQovKiBQbGF5YmFjayB0ZWNobm9sb2d5IGVsZW1lbnRzIGV4cGFuZCB0byB0
aGUgd2lkdGgvaGVpZ2h0IG9mIHRoZSBjb250YWluaW5nIGRpdgogICAgPHZpZGVvPiBvciA8b2Jq
ZWN0PiAqLwoudmlkZW8tanMgLnZqcy10ZWNoIHsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgdG9w
OiAwOwogIGxlZnQ6IDA7CiAgd2lkdGg6IDEwMCU7CiAgaGVpZ2h0OiAxMDAlOwp9Ci8qIEZpeCBm
b3IgRmlyZWZveCA5IGZ1bGxzY3JlZW4gKG9ubHkgaWYgaXQgaXMgZW5hYmxlZCkuIE5vdCBuZWVk
ZWQgd2hlbgogICBjaGVja2luZyBmdWxsU2NyZWVuRW5hYmxlZC4gKi8KLnZpZGVvLWpzOi1tb3ot
ZnVsbC1zY3JlZW4gewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKfQovKiBGdWxsc2NyZWVuIFN0eWxl
cyAqLwpib2R5LnZqcy1mdWxsLXdpbmRvdyB7CiAgcGFkZGluZzogMDsKICBtYXJnaW46IDA7CiAg
aGVpZ2h0OiAxMDAlOwogIC8qIEZpeCBmb3IgSUU2IGZ1bGwtd2luZG93LiBodHRwOi8vd3d3LmNz
c3BsYXkuY28udWsvbGF5b3V0cy9maXhlZC5odG1sICovCiAgb3ZlcmZsb3cteTogYXV0bzsKfQou
dmlkZW8tanMudmpzLWZ1bGxzY3JlZW4gewogIHBvc2l0aW9uOiBmaXhlZDsKICBvdmVyZmxvdzog
aGlkZGVuOwogIHotaW5kZXg6IDEwMDA7CiAgbGVmdDogMDsKICB0b3A6IDA7CiAgYm90dG9tOiAw
OwogIHJpZ2h0OiAwOwogIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CiAgaGVpZ2h0OiAxMDAlICFp
bXBvcnRhbnQ7CiAgLyogSUU2IGZ1bGwtd2luZG93ICh1bmRlcnNjb3JlIGhhY2spICovCiAgX3Bv
c2l0aW9uOiBhYnNvbHV0ZTsKfQoudmlkZW8tanM6LXdlYmtpdC1mdWxsLXNjcmVlbiB7CiAgd2lk
dGg6IDEwMCUgIWltcG9ydGFudDsKICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDsKfQoudmlkZW8t
anMudmpzLWZ1bGxzY3JlZW4udmpzLXVzZXItaW5hY3RpdmUgewogIGN1cnNvcjogbm9uZTsKfQov
KiBQb3N0ZXIgU3R5bGVzICovCi52anMtcG9zdGVyIHsKICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8t
cmVwZWF0OwogIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7CiAgYmFja2dyb3VuZC1zaXpl
OiBjb250YWluOwogIGN1cnNvcjogcG9pbnRlcjsKICBtYXJnaW46IDA7CiAgcGFkZGluZzogMDsK
ICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgdG9wOiAwOwogIHJpZ2h0OiAwOwogIGJvdHRvbTogMDsK
ICBsZWZ0OiAwOwp9Ci52anMtcG9zdGVyIGltZyB7CiAgZGlzcGxheTogYmxvY2s7CiAgbWFyZ2lu
OiAwIGF1dG87CiAgbWF4LWhlaWdodDogMTAwJTsKICBwYWRkaW5nOiAwOwogIHdpZHRoOiAxMDAl
Owp9Ci8qIEhpZGUgdGhlIHBvc3RlciB3aGVuIG5hdGl2ZSBjb250cm9scyBhcmUgdXNlZCBvdGhl
cndpc2UgaXQgY292ZXJzIHRoZW0gKi8KLnZpZGVvLWpzLnZqcy11c2luZy1uYXRpdmUtY29udHJv
bHMgLnZqcy1wb3N0ZXIgewogIGRpc3BsYXk6IG5vbmU7Cn0KLyogVGV4dCBUcmFjayBTdHlsZXMg
Ki8KLyogT3ZlcmFsbCB0cmFjayBob2xkZXIgZm9yIGJvdGggY2FwdGlvbnMgYW5kIHN1YnRpdGxl
cyAqLwoudmlkZW8tanMgLnZqcy10ZXh0LXRyYWNrLWRpc3BsYXkgewogIGRpc3BsYXk6IG5vbmU7
ICAgIC8qIFhYWDogdGhpcyBkaXYgZ2V0cyBpbiB0aGUgd2F5IHdoZW4gaW5qZWN0ZWQgaW50byB0
aGUgcGFnZS4gaGlkZSBpdDsgd2UgZG9uJ3QgdXNlIHRoZSBmZWF0dXJlIGFueXdheSAqLwogIHRl
eHQtYWxpZ246IGNlbnRlcjsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgYm90dG9tOiA0ZW07CiAg
LyogTGVhdmUgcGFkZGluZyBvbiBsZWZ0IGFuZCByaWdodCAqLwogIGxlZnQ6IDFlbTsKICByaWdo
dDogMWVtOwp9Ci8qIE1vdmUgY2FwdGlvbnMgZG93biB3aGVuIGNvbnRyb2xzIGFyZW4ndCBiZWlu
ZyBzaG93biAqLwoudmlkZW8tanMudmpzLXVzZXItaW5hY3RpdmUudmpzLXBsYXlpbmcgLnZqcy10
ZXh0LXRyYWNrLWRpc3BsYXkgewogIGRpc3BsYXk6IG5vbmU7ICAgIC8qIFhYWDogdGhpcyBkaXYg
Z2V0cyBpbiB0aGUgd2F5IHdoZW4gaW5qZWN0ZWQgaW50byB0aGUgcGFnZS4gaGlkZSBpdDsgd2Ug
ZG9uJ3QgdXNlIHRoZSBmZWF0dXJlIGFueXdheSAqLwogIGJvdHRvbTogMWVtOwp9Ci8qIEluZGl2
aWR1YWwgdHJhY2tzICovCi52aWRlby1qcyAudmpzLXRleHQtdHJhY2sgewogIGRpc3BsYXk6IG5v
bmU7CiAgZm9udC1zaXplOiAxLjRlbTsKICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgbWFyZ2luLWJv
dHRvbTogMC4xZW07CiAgLyogVHJhbnNwYXJlbnQgYmxhY2sgYmFja2dyb3VuZCwgb3IgZmFsbGJh
Y2sgdG8gYWxsIGJsYWNrIChvbGRJRSkgKi8KICAvKiBiYWNrZ3JvdW5kLWNvbG9yLXdpdGgtYWxw
aGEgKi8KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwOwogIGJhY2tncm91bmQtY29sb3I6IHJn
YmEoMCwgMCwgMCwgMC41KTsKfQoudmlkZW8tanMgLnZqcy1zdWJ0aXRsZXMgewogIGNvbG9yOiAj
ZmZmZmZmIC8qIFN1YnRpdGxlcyBhcmUgd2hpdGUgKi87Cn0KLnZpZGVvLWpzIC52anMtY2FwdGlv
bnMgewogIGNvbG9yOiAjZmZjYzY2IC8qIENhcHRpb25zIGFyZSB5ZWxsb3cgKi87Cn0KLnZqcy10
dC1jdWUgewogIGRpc3BsYXk6IGJsb2NrOwp9Ci8qIEhpZGUgZGlzYWJsZWQgb3IgdW5zdXBwb3J0
ZWQgY29udHJvbHMgKi8KLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1oaWRkZW4gewogIGRpc3BsYXk6
IG5vbmU7Cn0KLnZqcy1sb2NrLXNob3dpbmcgewogIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7
CiAgb3BhY2l0eTogMTsKICB2aXNpYmlsaXR5OiB2aXNpYmxlOwp9Ci8qICBJbiBJRTggdy8gbm8g
SmF2YVNjcmlwdCAobm8gSFRNTDUgc2hpbSksIHRoZSB2aWRlbyB0YWcgZG9lc24ndCByZWdpc3Rl
ci4KICAgIFRoZSAudmlkZW8tanMgY2xhc3NuYW1lIG9uIHRoZSB2aWRlbyB0YWcgYWxzbyBpc24n
dCBjb25zaWRlcmVkLgogICAgVGhpcyBvcHRpb25hbCBwYXJhZ3JhcGggaW5zaWRlIHRoZSB2aWRl
byB0YWcgY2FuIHByb3ZpZGUgYSBtZXNzYWdlIHRvIHVzZXJzCiAgICBhYm91dCB3aGF0J3MgcmVx
dWlyZWQgdG8gcGxheSB2aWRlby4gKi8KLnZqcy1uby1qcyB7CiAgcGFkZGluZzogMjBweDsKICBj
b2xvcjogI2NjYzsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzOwogIGZvbnQtc2l6ZTogMThweDsK
ICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7CiAgdGV4dC1hbGlnbjogY2VudGVyOwog
IHdpZHRoOiAzMDBweDsKICBoZWlnaHQ6IDE1MHB4OwogIG1hcmdpbjogMHB4IGF1dG87Cn0KLnZq
cy1uby1qcyBhLAoudmpzLW5vLWpzIGE6dmlzaXRlZCB7CiAgY29sb3I6ICNGNEE0NjA7Cn0KLyog
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KVGhlIG9yaWdpbmFsIHNvdXJjZSBvZiB0aGlzIGZpbGUgbGl2
ZXMgYXQKaHR0cHM6Ly9naXRodWIuY29tL3ZpZGVvanMvdmlkZW8uanMvYmxvYi9tYXN0ZXIvc3Jj
L2Nzcy92aWRlby1qcy5sZXNzICovCg==
|
|
52 | /video/js/es5.js | application/javascript | es5.js | 200 OK | TEXT | 16.2 KB | 02/23/79 23:52:35 |
Download
|
|
SHA256
|
2d517e4feedbf740f5efb208defcd08955df514b7cbc7a58255e49aa7ca88ce9
|
Referer
|
http://cdn.bitmedianetwork.com/video/adplayer.html?timestamp=1481644853337&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t
|
Magic
|
Inconclusive. Probably text (TEXT)
|
Request
|
GET /video/js/es5.js HTTP/1.1
Accept: */*
Referer: http://cdn.bitmedianetwork.com/video/adplayer.html?timestamp=1481644853337&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: 739BhvdmFcUssqDCHMJ3hyNZxFUgNvGRWiadjk8hO+8U61k058CV4BFSQ+RRUK1F3FPilqct0r8=
x-amz-request-id: 85E8E93B6F248306
x-amz-meta-cache-control: max-age=86400
Content-Type: application/javascript
Server: AmazonS3
Age: 60002
Date: Tue, 13 Dec 2016 16:00:57 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:44 GMT
Expires: Tue, 13 Dec 2016 23:20:55 GMT
Content-Length: 16606
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
//----------------------------------------------------------------------
//
// ECMAScript 5 Polyfills
//
//---------------------...
|
Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi8vCi8vIEVDTUFTY3JpcHQgNSBQb2x5ZmlsbHMKLy8KLy8tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCgovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gRVM1IDE1LjIgT2JqZWN0IE9iamVjdHMKLy8tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCgovLwovLyBFUzUgMTUuMi4zIFByb3BlcnRpZXMgb2YgdGhlIE9iamVjdCBDb25z
dHJ1Y3RvcgovLwoKLy8gRVM1IDE1LjIuMy4yIE9iamVjdC5nZXRQcm90b3R5cGVPZiAoIE8gKQov
LyBGcm9tIGh0dHA6Ly9lam9obi5vcmcvYmxvZy9vYmplY3RnZXRwcm90b3R5cGVvZi8KLy8gTk9U
RTogd29uJ3Qgd29yayBmb3IgdHlwaWNhbCBmdW5jdGlvbiBUKCkge307IFQucHJvdG90eXBlID0g
e307IG5ldyBUOyBjYXNlCi8vIHNpbmNlIHRoZSBjb25zdHJ1Y3RvciBwcm9wZXJ0eSBpcyBkZXN0
cm95ZWQuCmlmICghT2JqZWN0LmdldFByb3RvdHlwZU9mKSB7CiAgICBPYmplY3QuZ2V0UHJvdG90
eXBlT2YgPSBmdW5jdGlvbihvKSB7CiAgICAgICAgaWYgKG8gIT09IE9iamVjdChvKSkgewogICAg
ICAgICAgICB0aHJvdyBUeXBlRXJyb3IoIk9iamVjdC5nZXRQcm90b3R5cGVPZiBjYWxsZWQgb24g
bm9uLW9iamVjdCIpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gby5fX3Byb3RvX18gfHwgby5j
b25zdHJ1Y3Rvci5wcm90b3R5cGUgfHwgT2JqZWN0LnByb3RvdHlwZTsKICAgIH07Cn0KCi8vICAg
IC8vIEVTNSAxNS4yLjMuMyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yICggTywgUCAp
Ci8vICAgIGlmICh0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvciAhPT0gImZ1
bmN0aW9uIikgewovLyAgICAgICAgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IGZ1
bmN0aW9uIChvLCBuYW1lKSB7Ci8vICAgICAgICAgICAgaWYgKG8gIT09IE9iamVjdChvKSkgeyB0
aHJvdyBUeXBlRXJyb3IoKTsgfQovLyAgICAgICAgICAgIGlmIChvLmhhc093blByb3BlcnR5KG5h
bWUpKSB7Ci8vICAgICAgICAgICAgICAgIHJldHVybiB7Ci8vICAgICAgICAgICAgICAgICAgICB2
YWx1ZTogb1tuYW1lXSwKLy8gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsCi8v
ICAgICAgICAgICAgICAgICAgICB3cml0YWJsZTogdHJ1ZSwKLy8gICAgICAgICAgICAgICAgICAg
IGNvbmZpZ3VyYWJsZTogdHJ1ZQovLyAgICAgICAgICAgICAgICB9OwovLyAgICAgICAgICAgIH0K
Ly8gICAgICAgIH07Ci8vICAgIH0KCi8vIEVTNSAxNS4yLjMuNCBPYmplY3QuZ2V0T3duUHJvcGVy
dHlOYW1lcyAoIE8gKQppZiAodHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzICE9PSAi
ZnVuY3Rpb24iKSB7CiAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyA9IGZ1bmN0aW9uKG8p
IHsKICAgICAgICBpZiAobyAhPT0gT2JqZWN0KG8pKSB7CiAgICAgICAgICAgIHRocm93IFR5cGVF
cnJvcigiT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMgY2FsbGVkIG9uIG5vbi1vYmplY3QiKTsK
ICAgICAgICB9CiAgICAgICAgdmFyIHByb3BzID0gW10sCiAgICAgICAgICAgIHA7CiAgICAgICAg
Zm9yIChwIGluIG8pIHsKICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJv
cGVydHkuY2FsbChvLCBwKSkgewogICAgICAgICAgICAgICAgcHJvcHMucHVzaChwKTsKICAgICAg
ICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gcHJvcHM7CiAgICB9Owp9CgovLyBFUzUg
MTUuMi4zLjUgT2JqZWN0LmNyZWF0ZSAoIE8gWywgUHJvcGVydGllc10gKQppZiAodHlwZW9mIE9i
amVjdC5jcmVhdGUgIT09ICJmdW5jdGlvbiIpIHsKICAgIE9iamVjdC5jcmVhdGUgPSBmdW5jdGlv
bihwcm90b3R5cGUsIHByb3BlcnRpZXMpIHsKICAgICAgICBpZiAodHlwZW9mIHByb3RvdHlwZSAh
PT0gIm9iamVjdCIpIHsKICAgICAgICAgICAgdGhyb3cgVHlwZUVycm9yKCk7CiAgICAgICAgfQog
ICAgICAgIC8qKiBAY29uc3RydWN0b3IgKi8KCiAgICAgICAgZnVuY3Rpb24gQ3RvcigpIHt9CiAg
ICAgICAgQ3Rvci5wcm90b3R5cGUgPSBwcm90b3R5cGU7CiAgICAgICAgdmFyIG8gPSBuZXcgQ3Rv
cigpOwogICAgICAgIGlmIChwcm90b3R5cGUpIHsKICAgICAgICAgICAgby5jb25zdHJ1Y3RvciA9
IEN0b3I7CiAgICAgICAgfQogICAgICAgIGlmIChwcm9wZXJ0aWVzICE9PSB1bmRlZmluZWQpIHsK
ICAgICAgICAgICAgaWYgKHByb3BlcnRpZXMgIT09IE9iamVjdChwcm9wZXJ0aWVzKSkgewogICAg
ICAgICAgICAgICAgdGhyb3cgVHlwZUVycm9yKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAg
T2JqZWN0LmRlZmluZVByb3BlcnRpZXMobywgcHJvcGVydGllcyk7CiAgICAgICAgfQogICAgICAg
IHJldHVybiBvOwogICAgfTsKfQoKLy8gRVMgMTUuMi4zLjYgT2JqZWN0LmRlZmluZVByb3BlcnR5
ICggTywgUCwgQXR0cmlidXRlcyApCi8vIFBhcnRpYWwgc3VwcG9ydCBmb3IgbW9zdCBjb21tb24g
Y2FzZSAtIGdldHRlcnMsIHNldHRlcnMsIGFuZCB2YWx1ZXMKKGZ1bmN0aW9uKCkgewogICAgaWYg
KCFPYmplY3QuZGVmaW5lUHJvcGVydHkgfHwgIShmdW5jdGlvbigpIHsKICAgICAgICB0cnkgewog
ICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICd4Jywge30pOwogICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICB9CiAgICB9KCkpKSB7CiAgICAgICAgdmFyIG9yaWcgPSBPYmplY3QuZGVm
aW5lUHJvcGVydHk7CiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5ID0gZnVuY3Rpb24obywg
cHJvcCwgZGVzYykgewogICAgICAgICAgICAvLyBJbiBJRTggdHJ5IGJ1aWx0LWluIGltcGxlbWVu
dGF0aW9uIGZvciBkZWZpbmluZyBwcm9wZXJ0aWVzIG9uIERPTSBwcm90b3R5cGVzLgogICAgICAg
ICAgICBpZiAob3JpZykgewogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gb3JpZyhvLCBwcm9wLCBkZXNjKTsKICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUp
IHt9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChvICE9PSBPYmplY3QobykpIHsKICAg
ICAgICAgICAgICAgIHRocm93IFR5cGVFcnJvcigiT2JqZWN0LmRlZmluZVByb3BlcnR5IGNhbGxl
ZCBvbiBub24tb2JqZWN0Iik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKE9iamVjdC5w
cm90b3R5cGUuX19kZWZpbmVHZXR0ZXJfXyAmJiAoJ2dldCcgaW4gZGVzYykpIHsKICAgICAgICAg
ICAgICAgIE9iamVjdC5wcm90b3R5cGUuX19kZWZpbmVHZXR0ZXJfXy5jYWxsKG8sIHByb3AsIGRl
c2MuZ2V0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5f
X2RlZmluZVNldHRlcl9fICYmICgnc2V0JyBpbiBkZXNjKSkgewogICAgICAgICAgICAgICAgT2Jq
ZWN0LnByb3RvdHlwZS5fX2RlZmluZVNldHRlcl9fLmNhbGwobywgcHJvcCwgZGVzYy5zZXQpOwog
ICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgndmFsdWUnIGluIGRlc2MpIHsKICAgICAgICAg
ICAgICAgIG9bcHJvcF0gPSBkZXNjLnZhbHVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJl
dHVybiBvOwogICAgICAgIH07CiAgICB9Cn0oKSk7CgovLyBFUyAxNS4yLjMuNyBPYmplY3QuZGVm
aW5lUHJvcGVydGllcyAoIE8sIFByb3BlcnRpZXMgKQppZiAodHlwZW9mIE9iamVjdC5kZWZpbmVQ
cm9wZXJ0aWVzICE9PSAiZnVuY3Rpb24iKSB7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyA9
IGZ1bmN0aW9uKG8sIHByb3BlcnRpZXMpIHsKICAgICAgICBpZiAobyAhPT0gT2JqZWN0KG8pKSB7
CiAgICAgICAgICAgIHRocm93IFR5cGVFcnJvcigiT2JqZWN0LmRlZmluZVByb3BlcnRpZXMgY2Fs
bGVkIG9uIG5vbi1vYmplY3QiKTsKICAgICAgICB9CiAgICAgICAgdmFyIG5hbWU7CiAgICAgICAg
Zm9yIChuYW1lIGluIHByb3BlcnRpZXMpIHsKICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5
cGUuaGFzT3duUHJvcGVydHkuY2FsbChwcm9wZXJ0aWVzLCBuYW1lKSkgewogICAgICAgICAgICAg
ICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIG5hbWUsIHByb3BlcnRpZXNbbmFtZV0pOwogICAg
ICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBvOwogICAgfTsKfQoKCi8vIEVTNSAx
NS4yLjMuMTQgT2JqZWN0LmtleXMgKCBPICkKLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5v
cmcvZW4vSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvT2JqZWN0L2tleXMKaWYg
KCFPYmplY3Qua2V5cykgewogICAgT2JqZWN0LmtleXMgPSBmdW5jdGlvbihvKSB7CiAgICAgICAg
aWYgKG8gIT09IE9iamVjdChvKSkgewogICAgICAgICAgICB0aHJvdyBUeXBlRXJyb3IoJ09iamVj
dC5rZXlzIGNhbGxlZCBvbiBub24tb2JqZWN0Jyk7CiAgICAgICAgfQogICAgICAgIHZhciByZXQg
PSBbXSwKICAgICAgICAgICAgcDsKICAgICAgICBmb3IgKHAgaW4gbykgewogICAgICAgICAgICBp
ZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG8sIHApKSB7CiAgICAgICAg
ICAgICAgICByZXQucHVzaChwKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1
cm4gcmV0OwogICAgfTsKfQoKLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIEVTNSAxNS4zIEZ1bmN0aW9uIE9i
amVjdHMKLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCgovLwovLyBFUzUgMTUuMy40IFByb3BlcnRpZXMgb2YgdGhl
IEZ1bmN0aW9uIFByb3RvdHlwZSBPYmplY3QKLy8KCi8vIEVTNSAxNS4zLjQuNSBGdW5jdGlvbi5w
cm90b3R5cGUuYmluZCAoIHRoaXNBcmcgWywgYXJnMSBbLCBhcmcyLCAuLi4gXV0gKQovLyBodHRw
czovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxf
T2JqZWN0cy9GdW5jdGlvbi9iaW5kCmlmICghRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQpIHsKICAg
IEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kID0gZnVuY3Rpb24obykgewogICAgICAgIGlmICh0eXBl
b2YgdGhpcyAhPT0gJ2Z1bmN0aW9uJykgewogICAgICAgICAgICB0aHJvdyBUeXBlRXJyb3IoIkJp
bmQgbXVzdCBiZSBjYWxsZWQgb24gYSBmdW5jdGlvbiIpOwogICAgICAgIH0KICAgICAgICB2YXIg
c2xpY2UgPSBbXS5zbGljZSwKICAgICAgICAgICAgYXJncyA9IHNsaWNlLmNhbGwoYXJndW1lbnRz
LCAxKSwKICAgICAgICAgICAgc2VsZiA9IHRoaXMsCiAgICAgICAgICAgIGJvdW5kID0gZnVuY3Rp
b24oKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5hcHBseSh0aGlzIGluc3RhbmNlb2Yg
bm9wID8gdGhpcyA6IChvIHx8IHt9KSwKICAgICAgICAgICAgICAgICAgICBhcmdzLmNvbmNhdChz
bGljZS5jYWxsKGFyZ3VtZW50cykpKTsKICAgICAgICAgICAgfTsKCiAgICAgICAgLyoqIEBjb25z
dHJ1Y3RvciAqLwoKICAgICAgICBmdW5jdGlvbiBub3AoKSB7fQogICAgICAgIG5vcC5wcm90b3R5
cGUgPSBzZWxmLnByb3RvdHlwZTsKCiAgICAgICAgYm91bmQucHJvdG90eXBlID0gbmV3IG5vcCgp
OwoKICAgICAgICByZXR1cm4gYm91bmQ7CiAgICB9Owp9CgoKLy8tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIEVT
NSAxNS40IEFycmF5IE9iamVjdHMKLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgovLwovLyBFUzUgMTUuNC4zIFBy
b3BlcnRpZXMgb2YgdGhlIEFycmF5IENvbnN0cnVjdG9yCi8vCgoKLy8gRVM1IDE1LjQuMy4yIEFy
cmF5LmlzQXJyYXkgKCBhcmcgKQovLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi9K
YXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9BcnJheS9pc0FycmF5CkFycmF5Lmlz
QXJyYXkgPSBBcnJheS5pc0FycmF5IHx8IGZ1bmN0aW9uKG8pIHsKICAgIHJldHVybiBCb29sZWFu
KG8gJiYgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKE9iamVjdChvKSkgPT09ICdbb2Jq
ZWN0IEFycmF5XScpOwp9OwoKCi8vCi8vIEVTNSAxNS40LjQgUHJvcGVydGllcyBvZiB0aGUgQXJy
YXkgUHJvdG90eXBlIE9iamVjdAovLwoKLy8gRVM1IDE1LjQuNC4xNCBBcnJheS5wcm90b3R5cGUu
aW5kZXhPZiAoIHNlYXJjaEVsZW1lbnQgWyAsIGZyb21JbmRleCBdICkKLy8gRnJvbSBodHRwczov
L2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2Jq
ZWN0cy9BcnJheS9pbmRleE9mCmlmICghQXJyYXkucHJvdG90eXBlLmluZGV4T2YpIHsKICAgIEFy
cmF5LnByb3RvdHlwZS5pbmRleE9mID0gZnVuY3Rpb24oc2VhcmNoRWxlbWVudCAvKiwgZnJvbUlu
ZGV4ICovICkgewogICAgICAgIGlmICh0aGlzID09PSB2b2lkIDAgfHwgdGhpcyA9PT0gbnVsbCkg
ewogICAgICAgICAgICB0aHJvdyBUeXBlRXJyb3IoKTsKICAgICAgICB9CgogICAgICAgIHZhciB0
ID0gT2JqZWN0KHRoaXMpOwogICAgICAgIHZhciBsZW4gPSB0Lmxlbmd0aCA+Pj4gMDsKICAgICAg
ICBpZiAobGVuID09PSAwKSB7CiAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICB9CgogICAg
ICAgIHZhciBuID0gMDsKICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDApIHsKICAgICAg
ICAgICAgbiA9IE51bWJlcihhcmd1bWVudHNbMV0pOwogICAgICAgICAgICBpZiAoaXNOYU4obikp
IHsKICAgICAgICAgICAgICAgIG4gPSAwOwogICAgICAgICAgICB9IGVsc2UgaWYgKG4gIT09IDAg
JiYgbiAhPT0gKDEgLyAwKSAmJiBuICE9PSAtKDEgLyAwKSkgewogICAgICAgICAgICAgICAgbiA9
IChuID4gMCB8fCAtMSkgKiBNYXRoLmZsb29yKE1hdGguYWJzKG4pKTsKICAgICAgICAgICAgfQog
ICAgICAgIH0KCiAgICAgICAgaWYgKG4gPj0gbGVuKSB7CiAgICAgICAgICAgIHJldHVybiAtMTsK
ICAgICAgICB9CgogICAgICAgIHZhciBrID0gbiA+PSAwID8gbiA6IE1hdGgubWF4KGxlbiAtIE1h
dGguYWJzKG4pLCAwKTsKCiAgICAgICAgZm9yICg7IGsgPCBsZW47IGsrKykgewogICAgICAgICAg
ICBpZiAoayBpbiB0ICYmIHRba10gPT09IHNlYXJjaEVsZW1lbnQpIHsKICAgICAgICAgICAgICAg
IHJldHVybiBrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAtMTsKICAg
IH07Cn0KCi8vIEVTNSAxNS40LjQuMTUgQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mICggc2Vh
cmNoRWxlbWVudCBbICwgZnJvbUluZGV4IF0gKQovLyBGcm9tIGh0dHBzOi8vZGV2ZWxvcGVyLm1v
emlsbGEub3JnL2VuL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0FycmF5L2xh
c3RJbmRleE9mCmlmICghQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mKSB7CiAgICBBcnJheS5w
cm90b3R5cGUubGFzdEluZGV4T2YgPSBmdW5jdGlvbihzZWFyY2hFbGVtZW50IC8qLCBmcm9tSW5k
ZXgqLyApIHsKICAgICAgICBpZiAodGhpcyA9PT0gdm9pZCAwIHx8IHRoaXMgPT09IG51bGwpIHsK
ICAgICAgICAgICAgdGhyb3cgVHlwZUVycm9yKCk7CiAgICAgICAgfQoKICAgICAgICB2YXIgdCA9
IE9iamVjdCh0aGlzKTsKICAgICAgICB2YXIgbGVuID0gdC5sZW5ndGggPj4+IDA7CiAgICAgICAg
aWYgKGxlbiA9PT0gMCkgewogICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgfQoKICAgICAg
ICB2YXIgbiA9IGxlbjsKICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEpIHsKICAgICAg
ICAgICAgbiA9IE51bWJlcihhcmd1bWVudHNbMV0pOwogICAgICAgICAgICBpZiAobiAhPT0gbikg
ewogICAgICAgICAgICAgICAgbiA9IDA7CiAgICAgICAgICAgIH0gZWxzZSBpZiAobiAhPT0gMCAm
JiBuICE9PSAoMSAvIDApICYmIG4gIT09IC0oMSAvIDApKSB7CiAgICAgICAgICAgICAgICBuID0g
KG4gPiAwIHx8IC0xKSAqIE1hdGguZmxvb3IoTWF0aC5hYnMobikpOwogICAgICAgICAgICB9CiAg
ICAgICAgfQoKICAgICAgICB2YXIgayA9IG4gPj0gMCA/IE1hdGgubWluKG4sIGxlbiAtIDEpIDog
bGVuIC0gTWF0aC5hYnMobik7CgogICAgICAgIGZvciAoOyBrID49IDA7IGstLSkgewogICAgICAg
ICAgICBpZiAoayBpbiB0ICYmIHRba10gPT09IHNlYXJjaEVsZW1lbnQpIHsKICAgICAgICAgICAg
ICAgIHJldHVybiBrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAtMTsK
ICAgIH07Cn0KCi8vIEVTNSAxNS40LjQuMTYgQXJyYXkucHJvdG90eXBlLmV2ZXJ5ICggY2FsbGJh
Y2tmbiBbICwgdGhpc0FyZyBdICkKLy8gRnJvbSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9y
Zy9lbi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9BcnJheS9ldmVyeQppZiAo
IUFycmF5LnByb3RvdHlwZS5ldmVyeSkgewogICAgQXJyYXkucHJvdG90eXBlLmV2ZXJ5ID0gZnVu
Y3Rpb24oZnVuIC8qLCB0aGlzcCAqLyApIHsKICAgICAgICBpZiAodGhpcyA9PT0gdm9pZCAwIHx8
IHRoaXMgPT09IG51bGwpIHsKICAgICAgICAgICAgdGhyb3cgVHlwZUVycm9yKCk7CiAgICAgICAg
fQoKICAgICAgICB2YXIgdCA9IE9iamVjdCh0aGlzKTsKICAgICAgICB2YXIgbGVuID0gdC5sZW5n
dGggPj4+IDA7CiAgICAgICAgaWYgKHR5cGVvZiBmdW4gIT09ICJmdW5jdGlvbiIpIHsKICAgICAg
ICAgICAgdGhyb3cgVHlwZUVycm9yKCk7CiAgICAgICAgfQoKICAgICAgICB2YXIgdGhpc3AgPSBh
cmd1bWVudHNbMV0sCiAgICAgICAgICAgIGk7CiAgICAgICAgZm9yIChpID0gMDsgaSA8IGxlbjsg
aSsrKSB7CiAgICAgICAgICAgIGlmIChpIGluIHQgJiYgIWZ1bi5jYWxsKHRoaXNwLCB0W2ldLCBp
LCB0KSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CiAgICAg
ICAgfQoKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH07Cn0KCi8vIEVTNSAxNS40LjQuMTcgQXJy
YXkucHJvdG90eXBlLnNvbWUgKCBjYWxsYmFja2ZuIFsgLCB0aGlzQXJnIF0gKQovLyBGcm9tIGh0
dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2Jh
bF9PYmplY3RzL0FycmF5L3NvbWUKaWYgKCFBcnJheS5wcm90b3R5cGUuc29tZSkgewogICAgQXJy
YXkucHJvdG90eXBlLnNvbWUgPSBmdW5jdGlvbihmdW4gLyosIHRoaXNwICovICkgewogICAgICAg
IGlmICh0aGlzID09PSB2b2lkIDAgfHwgdGhpcyA9PT0gbnVsbCkgewogICAgICAgICAgICB0aHJv
dyBUeXBlRXJyb3IoKTsKICAgICAgICB9CgogICAgICAgIHZhciB0ID0gT2JqZWN0KHRoaXMpOwog
ICAgICAgIHZhciBsZW4gPSB0Lmxlbmd0aCA+Pj4gMDsKICAgICAgICBpZiAodHlwZW9mIGZ1biAh
PT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICB0aHJvdyBUeXBlRXJyb3IoKTsKICAgICAgICB9
CgogICAgICAgIHZhciB0aGlzcCA9IGFyZ3VtZW50c1sxXSwKICAgICAgICAgICAgaTsKICAgICAg
ICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKICAgICAgICAgICAgaWYgKGkgaW4gdCAmJiBm
dW4uY2FsbCh0aGlzcCwgdFtpXSwgaSwgdCkpIHsKICAgICAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9Owp9
CgovLyBFUzUgMTUuNC40LjE4IEFycmF5LnByb3RvdHlwZS5mb3JFYWNoICggY2FsbGJhY2tmbiBb
ICwgdGhpc0FyZyBdICkKLy8gRnJvbSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi9K
YXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9BcnJheS9mb3JFYWNoCmlmICghQXJy
YXkucHJvdG90eXBlLmZvckVhY2gpIHsKICAgIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoID0gZnVu
Y3Rpb24oZnVuIC8qLCB0aGlzcCAqLyApIHsKICAgICAgICBpZiAodGhpcyA9PT0gdm9pZCAwIHx8
IHRoaXMgPT09IG51bGwpIHsKICAgICAgICAgICAgdGhyb3cgVHlwZUVycm9yKCk7CiAgICAgICAg
fQoKICAgICAgICB2YXIgdCA9IE9iamVjdCh0aGlzKTsKICAgICAgICB2YXIgbGVuID0gdC5sZW5n
dGggPj4+IDA7CiAgICAgICAgaWYgKHR5cGVvZiBmdW4gIT09ICJmdW5jdGlvbiIpIHsKICAgICAg
ICAgICAgdGhyb3cgVHlwZUVycm9yKCk7CiAgICAgICAgfQoKICAgICAgICB2YXIgdGhpc3AgPSBh
cmd1bWVudHNbMV0sCiAgICAgICAgICAgIGk7CiAgICAgICAgZm9yIChpID0gMDsgaSA8IGxlbjsg
aSsrKSB7CiAgICAgICAgICAgIGlmIChpIGluIHQpIHsKICAgICAgICAgICAgICAgIGZ1bi5jYWxs
KHRoaXNwLCB0W2ldLCBpLCB0KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH07Cn0KCgov
LyBFUzUgMTUuNC40LjE5IEFycmF5LnByb3RvdHlwZS5tYXAgKCBjYWxsYmFja2ZuIFsgLCB0aGlz
QXJnIF0gKQovLyBGcm9tIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuL0phdmFTY3Jp
cHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0FycmF5L01hcAppZiAoIUFycmF5LnByb3RvdHlw
ZS5tYXApIHsKICAgIEFycmF5LnByb3RvdHlwZS5tYXAgPSBmdW5jdGlvbihmdW4gLyosIHRoaXNw
ICovICkgewogICAgICAgIGlmICh0aGlzID09PSB2b2lkIDAgfHwgdGhpcyA9PT0gbnVsbCkgewog
ICAgICAgICAgICB0aHJvdyBUeXBlRXJyb3IoKTsKICAgICAgICB9CgogICAgICAgIHZhciB0ID0g
T2JqZWN0KHRoaXMpOwogICAgICAgIHZhciBsZW4gPSB0Lmxlbmd0aCA+Pj4gMDsKICAgICAgICBp
ZiAodHlwZW9mIGZ1biAhPT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICB0aHJvdyBUeXBlRXJy
b3IoKTsKICAgICAgICB9CgogICAgICAgIHZhciByZXMgPSBbXTsKICAgICAgICByZXMubGVuZ3Ro
ID0gbGVuOwogICAgICAgIHZhciB0aGlzcCA9IGFyZ3VtZW50c1sxXSwKICAgICAgICAgICAgaTsK
ICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKICAgICAgICAgICAgaWYgKGkgaW4g
dCkgewogICAgICAgICAgICAgICAgcmVzW2ldID0gZnVuLmNhbGwodGhpc3AsIHRbaV0sIGksIHQp
OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gcmVzOwogICAgfTsKfQoK
Ly8gRVM1IDE1LjQuNC4yMCBBcnJheS5wcm90b3R5cGUuZmlsdGVyICggY2FsbGJhY2tmbiBbICwg
dGhpc0FyZyBdICkKLy8gRnJvbSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi9KYXZh
U2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9BcnJheS9GaWx0ZXIKaWYgKCFBcnJheS5w
cm90b3R5cGUuZmlsdGVyKSB7CiAgICBBcnJheS5wcm90b3R5cGUuZmlsdGVyID0gZnVuY3Rpb24o
ZnVuIC8qLCB0aGlzcCAqLyApIHsKICAgICAgICBpZiAodGhpcyA9PT0gdm9pZCAwIHx8IHRoaXMg
PT09IG51bGwpIHsKICAgICAgICAgICAgdGhyb3cgVHlwZUVycm9yKCk7CiAgICAgICAgfQoKICAg
ICAgICB2YXIgdCA9IE9iamVjdCh0aGlzKTsKICAgICAgICB2YXIgbGVuID0gdC5sZW5ndGggPj4+
IDA7CiAgICAgICAgaWYgKHR5cGVvZiBmdW4gIT09ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAg
dGhyb3cgVHlwZUVycm9yKCk7CiAgICAgICAgfQoKICAgICAgICB2YXIgcmVzID0gW107CiAgICAg
ICAgdmFyIHRoaXNwID0gYXJndW1lbnRzWzFdLAogICAgICAgICAgICBpOwogICAgICAgIGZvciAo
aSA9IDA7IGkgPCBsZW47IGkrKykgewogICAgICAgICAgICBpZiAoaSBpbiB0KSB7CiAgICAgICAg
ICAgICAgICB2YXIgdmFsID0gdFtpXTsgLy8gaW4gY2FzZSBmdW4gbXV0YXRlcyB0aGlzCiAgICAg
ICAgICAgICAgICBpZiAoZnVuLmNhbGwodGhpc3AsIHZhbCwgaSwgdCkpIHsKICAgICAgICAgICAg
ICAgICAgICByZXMucHVzaCh2YWwpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAg
ICAgICAgfQoKICAgICAgICByZXR1cm4gcmVzOwogICAgfTsKfQoKCi8vIEVTNSAxNS40LjQuMjEg
QXJyYXkucHJvdG90eXBlLnJlZHVjZSAoIGNhbGxiYWNrZm4gWyAsIGluaXRpYWxWYWx1ZSBdICkK
Ly8gRnJvbSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi9KYXZhU2NyaXB0L1JlZmVy
ZW5jZS9HbG9iYWxfT2JqZWN0cy9BcnJheS9SZWR1Y2UKaWYgKCFBcnJheS5wcm90b3R5cGUucmVk
dWNlKSB7CiAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlID0gZnVuY3Rpb24oZnVuIC8qLCBpbml0
aWFsVmFsdWUgKi8gKSB7CiAgICAgICAgaWYgKHRoaXMgPT09IHZvaWQgMCB8fCB0aGlzID09PSBu
dWxsKSB7CiAgICAgICAgICAgIHRocm93IFR5cGVFcnJvcigpOwogICAgICAgIH0KCiAgICAgICAg
dmFyIHQgPSBPYmplY3QodGhpcyk7CiAgICAgICAgdmFyIGxlbiA9IHQubGVuZ3RoID4+PiAwOwog
ICAgICAgIGlmICh0eXBlb2YgZnVuICE9PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICAgIHRocm93
IFR5cGVFcnJvcigpOwogICAgICAgIH0KCiAgICAgICAgLy8gbm8gdmFsdWUgdG8gcmV0dXJuIGlm
IG5vIGluaXRpYWwgdmFsdWUgYW5kIGFuIGVtcHR5IGFycmF5CiAgICAgICAgaWYgKGxlbiA9PT0g
MCAmJiBhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7CiAgICAgICAgICAgIHRocm93IFR5cGVFcnJv
cigpOwogICAgICAgIH0KCiAgICAgICAgdmFyIGsgPSAwOwogICAgICAgIHZhciBhY2N1bXVsYXRv
cjsKICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+PSAyKSB7CiAgICAgICAgICAgIGFjY3Vt
dWxhdG9yID0gYXJndW1lbnRzWzFdOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGRvIHsK
ICAgICAgICAgICAgICAgIGlmIChrIGluIHQpIHsKICAgICAgICAgICAgICAgICAgICBhY2N1bXVs
YXRvciA9IHRbaysrXTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICAvLyBpZiBhcnJheSBjb250YWlucyBubyB2YWx1ZXMsIG5vIGlu
aXRpYWwgdmFsdWUgdG8gcmV0dXJuCiAgICAgICAgICAgICAgICBpZiAoKytrID49IGxlbikgewog
ICAgICAgICAgICAgICAgICAgIHRocm93IFR5cGVFcnJvcigpOwogICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICB9CiAgICAgICAgICAgIHdoaWxlICh0cnVlKTsKICAgICAgICB9CgogICAgICAg
IHdoaWxlIChrIDwgbGVuKSB7CiAgICAgICAgICAgIGlmIChrIGluIHQpIHsKICAgICAgICAgICAg
ICAgIGFjY3VtdWxhdG9yID0gZnVuLmNhbGwodW5kZWZpbmVkLCBhY2N1bXVsYXRvciwgdFtrXSwg
aywgdCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaysrOwogICAgICAgIH0KCiAgICAgICAg
cmV0dXJuIGFjY3VtdWxhdG9yOwogICAgfTsKfQoKCi8vIEVTNSAxNS40LjQuMjIgQXJyYXkucHJv
dG90eXBlLnJlZHVjZVJpZ2h0ICggY2FsbGJhY2tmbiBbLCBpbml0aWFsVmFsdWUgXSApCi8vIEZy
b20gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4vSmF2YVNjcmlwdC9SZWZlcmVuY2Uv
R2xvYmFsX09iamVjdHMvQXJyYXkvUmVkdWNlUmlnaHQKaWYgKCFBcnJheS5wcm90b3R5cGUucmVk
dWNlUmlnaHQpIHsKICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCA9IGZ1bmN0aW9uKGNh
bGxiYWNrZm4gLyosIGluaXRpYWxWYWx1ZSAqLyApIHsKICAgICAgICBpZiAodGhpcyA9PT0gdm9p
ZCAwIHx8IHRoaXMgPT09IG51bGwpIHsKICAgICAgICAgICAgdGhyb3cgVHlwZUVycm9yKCk7CiAg
ICAgICAgfQoKICAgICAgICB2YXIgdCA9IE9iamVjdCh0aGlzKTsKICAgICAgICB2YXIgbGVuID0g
dC5sZW5ndGggPj4+IDA7CiAgICAgICAgaWYgKHR5cGVvZiBjYWxsYmFja2ZuICE9PSAiZnVuY3Rp
b24iKSB7CiAgICAgICAgICAgIHRocm93IFR5cGVFcnJvcigpOwogICAgICAgIH0KCiAgICAgICAg
Ly8gbm8gdmFsdWUgdG8gcmV0dXJuIGlmIG5vIGluaXRpYWwgdmFsdWUsIGVtcHR5IGFycmF5CiAg
ICAgICAgaWYgKGxlbiA9PT0gMCAmJiBhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7CiAgICAgICAg
ICAgIHRocm93IFR5cGVFcnJvcigpOwogICAgICAgIH0KCiAgICAgICAgdmFyIGsgPSBsZW4gLSAx
OwogICAgICAgIHZhciBhY2N1bXVsYXRvcjsKICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+
PSAyKSB7CiAgICAgICAgICAgIGFjY3VtdWxhdG9yID0gYXJndW1lbnRzWzFdOwogICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgIGRvIHsKICAgICAgICAgICAgICAgIGlmIChrIGluIHRoaXMpIHsK
ICAgICAgICAgICAgICAgICAgICBhY2N1bXVsYXRvciA9IHRoaXNbay0tXTsKICAgICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvLyBpZiBh
cnJheSBjb250YWlucyBubyB2YWx1ZXMsIG5vIGluaXRpYWwgdmFsdWUgdG8gcmV0dXJuCiAgICAg
ICAgICAgICAgICBpZiAoLS1rIDwgMCkgewogICAgICAgICAgICAgICAgICAgIHRocm93IFR5cGVF
cnJvcigpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHdoaWxl
ICh0cnVlKTsKICAgICAgICB9CgogICAgICAgIHdoaWxlIChrID49IDApIHsKICAgICAgICAgICAg
aWYgKGsgaW4gdCkgewogICAgICAgICAgICAgICAgYWNjdW11bGF0b3IgPSBjYWxsYmFja2ZuLmNh
bGwodW5kZWZpbmVkLCBhY2N1bXVsYXRvciwgdFtrXSwgaywgdCk7CiAgICAgICAgICAgIH0KICAg
ICAgICAgICAgay0tOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIGFjY3VtdWxhdG9yOwogICAg
fTsKfQoKCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBFUzUgMTUuNSBTdHJpbmcgT2JqZWN0cwovLy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KCi8vCi8vIEVTNSAxNS41LjQgUHJvcGVydGllcyBvZiB0aGUgU3RyaW5nIFByb3Rv
dHlwZSBPYmplY3QKLy8KCgovLyBFUzUgMTUuNS40LjIwIFN0cmluZy5wcm90b3R5cGUudHJpbSgp
CmlmICghU3RyaW5nLnByb3RvdHlwZS50cmltKSB7CiAgICBTdHJpbmcucHJvdG90eXBlLnRyaW0g
PSBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gU3RyaW5nKHRoaXMpLnJlcGxhY2UoL15ccysv
LCAnJykucmVwbGFjZSgvXHMrJC8sICcnKTsKICAgIH07Cn0KCgoKLy8tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8v
IEVTNSAxNS45IERhdGUgT2JqZWN0cwovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgovLwovLyBFUyAxNS45LjQg
UHJvcGVydGllcyBvZiB0aGUgRGF0ZSBDb25zdHJ1Y3RvcgovLwoKLy8gRVM1IDE1LjkuNC40IERh
dGUubm93ICggKQovLyBGcm9tIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuL0NvcmVf
SmF2YVNjcmlwdF8xLjVfUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0RhdGUvbm93CmlmICghRGF0
ZS5ub3cpIHsKICAgIERhdGUubm93ID0gZnVuY3Rpb24gbm93KCkgewogICAgICAgIHJldHVybiBO
dW1iZXIobmV3IERhdGUoKSk7CiAgICB9Owp9CgoKLy8KLy8gRVM1IDE1LjkuNSBQcm9wZXJ0aWVz
IG9mIHRoZSBEYXRlIFByb3RvdHlwZSBPYmplY3QKLy8KCi8vIEVTNSAxNS45LjQuNDMgRGF0ZS5w
cm90b3R5cGUudG9JU09TdHJpbmcgKCApCi8vIEluc3BpcmVkIGJ5IGh0dHA6Ly93d3cuanNvbi5v
cmcvanNvbjIuanMKaWYgKCFEYXRlLnByb3RvdHlwZS50b0lTT1N0cmluZykgewogICAgRGF0ZS5w
cm90b3R5cGUudG9JU09TdHJpbmcgPSBmdW5jdGlvbigpIHsKICAgICAgICBmdW5jdGlvbiBwYWQy
KG4pIHsKICAgICAgICAgICAgcmV0dXJuICgnMDAnICsgbikuc2xpY2UoLTIpOwogICAgICAgIH0K
CiAgICAgICAgZnVuY3Rpb24gcGFkMyhuKSB7CiAgICAgICAgICAgIHJldHVybiAoJzAwMCcgKyBu
KS5zbGljZSgtMyk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gdGhpcy5nZXRVVENGdWxsWWVh
cigpICsgJy0nICsKICAgICAgICAgICAgcGFkMih0aGlzLmdldFVUQ01vbnRoKCkgKyAxKSArICct
JyArCiAgICAgICAgICAgIHBhZDIodGhpcy5nZXRVVENEYXRlKCkpICsgJ1QnICsKICAgICAgICAg
ICAgcGFkMih0aGlzLmdldFVUQ0hvdXJzKCkpICsgJzonICsKICAgICAgICAgICAgcGFkMih0aGlz
LmdldFVUQ01pbnV0ZXMoKSkgKyAnOicgKwogICAgICAgICAgICBwYWQyKHRoaXMuZ2V0VVRDU2Vj
b25kcygpKSArICcuJyArCiAgICAgICAgICAgIHBhZDModGhpcy5nZXRVVENNaWxsaXNlY29uZHMo
KSkgKyAnWic7CiAgICB9Owp9Cg==
|
|
53 | /assets/js/base64.js | application/javascript | base64.js | 200 OK | TEXT | 3.6 KB | 03/11/79 18:54:10 |
Download
|
|
SHA256
|
0150e813a89955b503cb0b7fa2fe1a3b6e1087a10e4beaaa212980ec8d834d71
|
Referer
|
http://cdn.bitmedianetwork.com/video/adplayer.html?timestamp=1481644853337&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t
|
Magic
|
Inconclusive. Probably text (TEXT)
|
Request
|
GET /assets/js/base64.js HTTP/1.1
Accept: */*
Referer: http://cdn.bitmedianetwork.com/video/adplayer.html?timestamp=1481644853337&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: YfK+QRtd91MKc/WQS3Bhs1yGzzX6zPnJ69UmSFlJ30+sTAnWoDbCbCsIG5qo0crJ
x-amz-request-id: B283D57DB9DC82E3
x-amz-meta-cache-control: max-age=86400
Content-Type: application/javascript
Server: AmazonS3
Age: 145979
Date: Tue, 13 Dec 2016 16:00:59 GMT
Last-Modified: Fri, 11 Nov 2016 20:42:16 GMT
Expires: Mon, 12 Dec 2016 23:28:00 GMT
Content-Length: 3714
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
/**
*
* Base64 encode / decode
* http://www.webtoolkit.info/
*
**/
var Base64 = {
// private property
_keyStr: "...
|
LyoqCiAqCiAqICBCYXNlNjQgZW5jb2RlIC8gZGVjb2RlCiAqICBodHRwOi8vd3d3LndlYnRvb2xr
aXQuaW5mby8KICoKICoqLwp2YXIgQmFzZTY0ID0gewoKICAgIC8vIHByaXZhdGUgcHJvcGVydHkK
ICAgIF9rZXlTdHI6ICJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3Bx
cnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSIsCgogICAgLy8gcHVibGljIG1ldGhvZCBmb3IgZW5jb2Rp
bmcKICAgIGVuY29kZTogZnVuY3Rpb24oaW5wdXQpIHsKICAgICAgICB2YXIgb3V0cHV0ID0gIiI7
CiAgICAgICAgdmFyIGNocjEsIGNocjIsIGNocjMsIGVuYzEsIGVuYzIsIGVuYzMsIGVuYzQ7CiAg
ICAgICAgdmFyIGkgPSAwOwoKICAgICAgICBpbnB1dCA9IEJhc2U2NC5fdXRmOF9lbmNvZGUoaW5w
dXQpOwoKICAgICAgICB3aGlsZSAoaSA8IGlucHV0Lmxlbmd0aCkgewoKICAgICAgICAgICAgY2hy
MSA9IGlucHV0LmNoYXJDb2RlQXQoaSsrKTsKICAgICAgICAgICAgY2hyMiA9IGlucHV0LmNoYXJD
b2RlQXQoaSsrKTsKICAgICAgICAgICAgY2hyMyA9IGlucHV0LmNoYXJDb2RlQXQoaSsrKTsKCiAg
ICAgICAgICAgIGVuYzEgPSBjaHIxID4+IDI7CiAgICAgICAgICAgIGVuYzIgPSAoKGNocjEgJiAz
KSA8PCA0KSB8IChjaHIyID4+IDQpOwogICAgICAgICAgICBlbmMzID0gKChjaHIyICYgMTUpIDw8
IDIpIHwgKGNocjMgPj4gNik7CiAgICAgICAgICAgIGVuYzQgPSBjaHIzICYgNjM7CgogICAgICAg
ICAgICBpZiAoaXNOYU4oY2hyMikpIHsKICAgICAgICAgICAgICAgIGVuYzMgPSBlbmM0ID0gNjQ7
CiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNOYU4oY2hyMykpIHsKICAgICAgICAgICAgICAgIGVu
YzQgPSA2NDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgb3V0cHV0ID0gb3V0cHV0ICsKICAg
ICAgICAgICAgICAgIHRoaXMuX2tleVN0ci5jaGFyQXQoZW5jMSkgKyB0aGlzLl9rZXlTdHIuY2hh
ckF0KGVuYzIpICsKICAgICAgICAgICAgICAgIHRoaXMuX2tleVN0ci5jaGFyQXQoZW5jMykgKyB0
aGlzLl9rZXlTdHIuY2hhckF0KGVuYzQpOwoKICAgICAgICB9CgogICAgICAgIHJldHVybiBvdXRw
dXQ7CiAgICB9LAoKICAgIC8vIHB1YmxpYyBtZXRob2QgZm9yIGRlY29kaW5nCiAgICBkZWNvZGU6
IGZ1bmN0aW9uKGlucHV0KSB7CiAgICAgICAgdmFyIG91dHB1dCA9ICIiOwogICAgICAgIHZhciBj
aHIxLCBjaHIyLCBjaHIzOwogICAgICAgIHZhciBlbmMxLCBlbmMyLCBlbmMzLCBlbmM0OwogICAg
ICAgIHZhciBpID0gMDsKCiAgICAgICAgaW5wdXQgPSBpbnB1dC5yZXBsYWNlKC9bXkEtWmEtejAt
OVwrXC9cPV0vZywgIiIpOwoKICAgICAgICB3aGlsZSAoaSA8IGlucHV0Lmxlbmd0aCkgewoKICAg
ICAgICAgICAgZW5jMSA9IHRoaXMuX2tleVN0ci5pbmRleE9mKGlucHV0LmNoYXJBdChpKyspKTsK
ICAgICAgICAgICAgZW5jMiA9IHRoaXMuX2tleVN0ci5pbmRleE9mKGlucHV0LmNoYXJBdChpKysp
KTsKICAgICAgICAgICAgZW5jMyA9IHRoaXMuX2tleVN0ci5pbmRleE9mKGlucHV0LmNoYXJBdChp
KyspKTsKICAgICAgICAgICAgZW5jNCA9IHRoaXMuX2tleVN0ci5pbmRleE9mKGlucHV0LmNoYXJB
dChpKyspKTsKCiAgICAgICAgICAgIGNocjEgPSAoZW5jMSA8PCAyKSB8IChlbmMyID4+IDQpOwog
ICAgICAgICAgICBjaHIyID0gKChlbmMyICYgMTUpIDw8IDQpIHwgKGVuYzMgPj4gMik7CiAgICAg
ICAgICAgIGNocjMgPSAoKGVuYzMgJiAzKSA8PCA2KSB8IGVuYzQ7CgogICAgICAgICAgICBvdXRw
dXQgPSBvdXRwdXQgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGNocjEpOwoKICAgICAgICAgICAgaWYg
KGVuYzMgIT0gNjQpIHsKICAgICAgICAgICAgICAgIG91dHB1dCA9IG91dHB1dCArIFN0cmluZy5m
cm9tQ2hhckNvZGUoY2hyMik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGVuYzQgIT0g
NjQpIHsKICAgICAgICAgICAgICAgIG91dHB1dCA9IG91dHB1dCArIFN0cmluZy5mcm9tQ2hhckNv
ZGUoY2hyMyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgfQoKICAgICAgICBvdXRwdXQgPSBCYXNl
NjQuX3V0ZjhfZGVjb2RlKG91dHB1dCk7CgogICAgICAgIHJldHVybiBvdXRwdXQ7CgogICAgfSwK
CiAgICAvLyBwcml2YXRlIG1ldGhvZCBmb3IgVVRGLTggZW5jb2RpbmcKICAgIF91dGY4X2VuY29k
ZTogZnVuY3Rpb24oc3RyaW5nKSB7CiAgICAgICAgc3RyaW5nID0gc3RyaW5nLnJlcGxhY2UoL1xy
XG4vZywgIlxuIik7CiAgICAgICAgdmFyIHV0ZnRleHQgPSAiIjsKCiAgICAgICAgZm9yICh2YXIg
biA9IDA7IG4gPCBzdHJpbmcubGVuZ3RoOyBuKyspIHsKCiAgICAgICAgICAgIHZhciBjID0gc3Ry
aW5nLmNoYXJDb2RlQXQobik7CgogICAgICAgICAgICBpZiAoYyA8IDEyOCkgewogICAgICAgICAg
ICAgICAgdXRmdGV4dCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGMpOwogICAgICAgICAgICB9IGVs
c2UgaWYgKChjID4gMTI3KSAmJiAoYyA8IDIwNDgpKSB7CiAgICAgICAgICAgICAgICB1dGZ0ZXh0
ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoKGMgPj4gNikgfCAxOTIpOwogICAgICAgICAgICAgICAg
dXRmdGV4dCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKChjICYgNjMpIHwgMTI4KTsKICAgICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHV0ZnRleHQgKz0gU3RyaW5nLmZyb21DaGFyQ29k
ZSgoYyA+PiAxMikgfCAyMjQpOwogICAgICAgICAgICAgICAgdXRmdGV4dCArPSBTdHJpbmcuZnJv
bUNoYXJDb2RlKCgoYyA+PiA2KSAmIDYzKSB8IDEyOCk7CiAgICAgICAgICAgICAgICB1dGZ0ZXh0
ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoKGMgJiA2MykgfCAxMjgpOwogICAgICAgICAgICB9Cgog
ICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHV0ZnRleHQ7CiAgICB9LAoKICAgIC8vIHByaXZhdGUg
bWV0aG9kIGZvciBVVEYtOCBkZWNvZGluZwogICAgX3V0ZjhfZGVjb2RlOiBmdW5jdGlvbih1dGZ0
ZXh0KSB7CiAgICAgICAgdmFyIHN0cmluZyA9ICIiOwogICAgICAgIHZhciBpID0gMDsKICAgICAg
ICB2YXIgYyA9IGMxID0gYzIgPSAwOwoKICAgICAgICB3aGlsZSAoaSA8IHV0ZnRleHQubGVuZ3Ro
KSB7CgogICAgICAgICAgICBjID0gdXRmdGV4dC5jaGFyQ29kZUF0KGkpOwoKICAgICAgICAgICAg
aWYgKGMgPCAxMjgpIHsKICAgICAgICAgICAgICAgIHN0cmluZyArPSBTdHJpbmcuZnJvbUNoYXJD
b2RlKGMpOwogICAgICAgICAgICAgICAgaSsrOwogICAgICAgICAgICB9IGVsc2UgaWYgKChjID4g
MTkxKSAmJiAoYyA8IDIyNCkpIHsKICAgICAgICAgICAgICAgIGMyID0gdXRmdGV4dC5jaGFyQ29k
ZUF0KGkgKyAxKTsKICAgICAgICAgICAgICAgIHN0cmluZyArPSBTdHJpbmcuZnJvbUNoYXJDb2Rl
KCgoYyAmIDMxKSA8PCA2KSB8IChjMiAmIDYzKSk7CiAgICAgICAgICAgICAgICBpICs9IDI7CiAg
ICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBjMiA9IHV0ZnRleHQuY2hhckNvZGVB
dChpICsgMSk7CiAgICAgICAgICAgICAgICBjMyA9IHV0ZnRleHQuY2hhckNvZGVBdChpICsgMik7
CiAgICAgICAgICAgICAgICBzdHJpbmcgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgoKGMgJiAxNSkg
PDwgMTIpIHwgKChjMiAmIDYzKSA8PCA2KSB8IChjMyAmIDYzKSk7CiAgICAgICAgICAgICAgICBp
ICs9IDM7CiAgICAgICAgICAgIH0KCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc3RyaW5nOwog
ICAgfQoKfTsK
|
|
54 | /assets/js/bench.js | application/javascript | bench.js | 200 OK | TEXT | 1.8 KB | 03/14/79 10:31:29 |
Download
|
|
SHA256
|
02e5e8fd26b30ddb58aaeb4671526ab12abbd36fc0e2a3649e1890fdcf8f1431
|
Referer
|
http://cdn.bitmedianetwork.com/video/adplayer.html?timestamp=1481644853337&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t
|
Magic
|
Inconclusive. Probably text (TEXT)
|
Request
|
GET /assets/js/bench.js HTTP/1.1
Accept: */*
Referer: http://cdn.bitmedianetwork.com/video/adplayer.html?timestamp=1481644853337&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: jePalFz5Quh80oVGxCcCqktOKYMwCRp/ai8xHUqgU5Cb17lp/CpkQYvjyu7sq1Nc00wNlX1yBUQ=
x-amz-request-id: E083191029285FCB
x-amz-meta-cache-control: max-age=86400
Content-Type: application/javascript
Server: AmazonS3
Age: 79056
Date: Tue, 13 Dec 2016 16:00:59 GMT
Last-Modified: Fri, 11 Nov 2016 20:42:17 GMT
Expires: Tue, 13 Dec 2016 18:03:23 GMT
Content-Length: 1805
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
/*globals Base64*/
(function(global) {
'use strict';
var version = '0.0.2';
//only use production bench if hostname is pr...
|
LypnbG9iYWxzIEJhc2U2NCovCgooZnVuY3Rpb24oZ2xvYmFsKSB7CiAgJ3VzZSBzdHJpY3QnOwog
IHZhciB2ZXJzaW9uID0gJzAuMC4yJzsKICAvL29ubHkgdXNlIHByb2R1Y3Rpb24gYmVuY2ggaWYg
aG9zdG5hbWUgaXMgcHJvZHVjdGlvbgogIHZhciBpc1Byb2QgPSAobG9jYXRpb24uaG9zdCA9PT0g
J2Nkbi5iaXRtZWRpYW5ldHdvcmsuY29tJyk7CgogIHZhciBjcmVhdGVQaW5nID0gZnVuY3Rpb24o
ZXZlbnRfbmFtZSwgYWN0aW9uLCBpLCBkYXRhKSB7CiAgICB2YXIgcGluZ1VybCA9ICJodHRwOi8v
aS0iICsgaSArICIuYi0wLmFkLmJlbmNoLnV0b3JyZW50LmNvbS8iOwogICAgdmFyIHBhcmFtcyA9
IHsKICAgICAgZXZlbnROYW1lOiBldmVudF9uYW1lICsgJy4nICsgYWN0aW9uCiAgICB9OwogICAg
CiAgICAvLyBhZGQgYWRkaXRpb25hbCBwYXJhbXMKICAgIGZvciAodmFyIGF0dHIgaW4gZGF0YSkg
ewogICAgICBwYXJhbXNbYXR0cl0gPSBkYXRhW2F0dHJdOwogICAgfQoKICAgIC8vIGFkZCBhbGwg
cGFyYW1zIGZyb20gdGhpcyBwYWdlIHRvbwogICAgdmFyIGN1cnJlbnRfcGFyYW1zID0gd2luZG93
LmxvY2F0aW9uLnNlYXJjaC5zbGljZSgxKS5zcGxpdCgnJicpOwogICAgZm9yICh2YXIgeCBpbiBj
dXJyZW50X3BhcmFtcykgewogICAgICB2YXIga3YgPSBkZWNvZGVVUklDb21wb25lbnQoY3VycmVu
dF9wYXJhbXNbeF0pLnNwbGl0KCI9Iik7CiAgICAgIHBhcmFtc1trdlswXV0gPSBrdlsxXTsKICAg
ICAgaWYoa3ZbMF0gPT09ICdnZW8nKSB7CiAgICAgICAgcGFyYW1zLmFjdGlvbiA9IGt2WzFdOwog
ICAgICB9CiAgICB9CiAgICBpZighcGFyYW1zLmFjdGlvbikgewogICAgICBwYXJhbXMuYWN0aW9u
ID0gJ25vbmUnOwogICAgfQoKICAgIC8vIEFkZCBpbiBkZWJ1ZyBwYXJhbWV0ZXIKICAgIC8vIEZp
eCBiYXNlNjQgZGVwZW5kZW5jeT8KICAgIHZhciBwYXJhbXNKc29uID0gdHlwZW9mIEpTT04gIT09
ICJ1bmRlZmluZWQiID8gSlNPTi5zdHJpbmdpZnkocGFyYW1zKSA6ICIiOwogICAgdmFyIGJhc2U2
NF9wYXJhbXMgPSBCYXNlNjQuZW5jb2RlKHBhcmFtc0pzb24pOwoKICAgIC8vYWRkIGRlYnVnIGZs
YWcgdG8gcGluZ1VybCBpZiBub3QgaW4gcHJvZAogICAgcGluZ1VybCArPSAnZT9pPScgKyBpICsn
JmU9JyArIGJhc2U2NF9wYXJhbXM7CiAgICBwaW5nVXJsICs9IGlzUHJvZCA/ICcnIDogJyZkZWJ1
Zz0xJzsKICAgIHJldHVybiBwaW5nVXJsOwogIH07CgoKICB2YXIgc2VuZFBpbmcgPSBmdW5jdGlv
bihldmVudF9uYW1lLCBhY3Rpb24sIG90aGVyX2RhdGEsIGksIGNiKSB7CiAgICAvL3NvIHRoYXQg
d2UgY2FuIHNldCBpIHZhbCBvbiBCZW5jaCBvbmNlLCBpbnN0ZWFkIG9mIHBhc3NpbmcgaXQgZXZl
cnkgdGltZQogICAgaSA9IGkgfHwgZ2xvYmFsLkJlbmNoLmk7CgogICAgaWYoIWkpIHsKICAgICAg
dGhyb3cgJ011c3Qgc2V0IGFuIGktdmFsIHRvIHNlbmQgYSBCZW5jaCBwaW5nJzsKICAgIH0KCiAg
ICAvL01ha2UgYW5kIHJldHVybiB0aGUgcGluZyB1cmwuCiAgICB2YXIgcGluZyA9IGNyZWF0ZVBp
bmcoZXZlbnRfbmFtZSwgYWN0aW9uLCBpLCBvdGhlcl9kYXRhKTsKCiAgICB2YXIgcGluZ194aHIg
PSAkLmdldEpTT04ocGluZyArICcmY2FsbGJhY2s9PycpOwogICAgaWYgKHR5cGVvZiBjYiA9PT0g
J2Z1bmN0aW9uJykgewogICAgICBwaW5nX3hoci5zdWNjZXNzKGNiKTsKICAgIH0KICB9OwoKICAv
LyBleHBvcnQgQmVuY2gKICBnbG9iYWwuQmVuY2ggPSB7CiAgICBWRVJTSU9OOiB2ZXJzaW9uLAog
ICAgc2VuZFBpbmc6IHNlbmRQaW5nCiAgfTsKCn0pKHRoaXMpOwo=
|
|
55 | /assets/js/swfobject.js | application/javascript | swfobject.js | 200 OK | TEXT | 10.0 KB | 03/17/79 05:17:59 |
Download
|
|
SHA256
|
8677971b119ccdb82af697ff0e08f218490d15116f221d44301f1cc8797e67d4
|
Referer
|
http://cdn.bitmedianetwork.com/video/adplayer.html?timestamp=1481644853337&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t
|
Magic
|
Inconclusive. Probably text (TEXT)
|
Request
|
GET /assets/js/swfobject.js HTTP/1.1
Accept: */*
Referer: http://cdn.bitmedianetwork.com/video/adplayer.html?timestamp=1481644853337&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: FGlzk6m3ufH7zWNOh/57azcSndizgkA06Hj9VfgsNZo7R5sn95DXLlrYxKl8dbSd6q4tKZmF+x0=
x-amz-request-id: 52B1DA2A5123162B
x-amz-meta-cache-control: max-age=86400
Content-Type: application/javascript
Server: AmazonS3
Age: 79043
Date: Tue, 13 Dec 2016 16:00:59 GMT
Last-Modified: Fri, 11 Nov 2016 20:42:26 GMT
Expires: Tue, 13 Dec 2016 18:03:36 GMT
Content-Length: 10220
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
/* SWFObject v2.2 <http://code.google.com/p/swfobject/>
is released under the MIT License <http://www.opensource.org/licenses/...
|
LyoJU1dGT2JqZWN0IHYyLjIgPGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9zd2ZvYmplY3QvPiAK
CWlzIHJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZSA8aHR0cDovL3d3dy5vcGVuc291cmNl
Lm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHA+IAoqLwp2YXIgc3dmb2JqZWN0PWZ1bmN0aW9u
KCl7dmFyIEQ9InVuZGVmaW5lZCIscj0ib2JqZWN0IixTPSJTaG9ja3dhdmUgRmxhc2giLFc9IlNo
b2Nrd2F2ZUZsYXNoLlNob2Nrd2F2ZUZsYXNoIixxPSJhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1m
bGFzaCIsUj0iU1dGT2JqZWN0RXhwckluc3QiLHg9Im9ucmVhZHlzdGF0ZWNoYW5nZSIsTz13aW5k
b3csaj1kb2N1bWVudCx0PW5hdmlnYXRvcixUPWZhbHNlLFU9W2hdLG89W10sTj1bXSxJPVtdLGws
USxFLEIsSj1mYWxzZSxhPWZhbHNlLG4sRyxtPXRydWUsTT1mdW5jdGlvbigpe3ZhciBhYT10eXBl
b2Ygai5nZXRFbGVtZW50QnlJZCE9RCYmdHlwZW9mIGouZ2V0RWxlbWVudHNCeVRhZ05hbWUhPUQm
JnR5cGVvZiBqLmNyZWF0ZUVsZW1lbnQhPUQsYWg9dC51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSxZ
PXQucGxhdGZvcm0udG9Mb3dlckNhc2UoKSxhZT1ZPy93aW4vLnRlc3QoWSk6L3dpbi8udGVzdChh
aCksYWM9WT8vbWFjLy50ZXN0KFkpOi9tYWMvLnRlc3QoYWgpLGFmPS93ZWJraXQvLnRlc3QoYWgp
P3BhcnNlRmxvYXQoYWgucmVwbGFjZSgvXi4qd2Via2l0XC8oXGQrKFwuXGQrKT8pLiokLywiJDEi
KSk6ZmFsc2UsWD0hKyJcdjEiLGFnPVswLDAsMF0sYWI9bnVsbDtpZih0eXBlb2YgdC5wbHVnaW5z
IT1EJiZ0eXBlb2YgdC5wbHVnaW5zW1NdPT1yKXthYj10LnBsdWdpbnNbU10uZGVzY3JpcHRpb247
aWYoYWImJiEodHlwZW9mIHQubWltZVR5cGVzIT1EJiZ0Lm1pbWVUeXBlc1txXSYmIXQubWltZVR5
cGVzW3FdLmVuYWJsZWRQbHVnaW4pKXtUPXRydWU7WD1mYWxzZTthYj1hYi5yZXBsYWNlKC9eLipc
cysoXFMrXHMrXFMrJCkvLCIkMSIpO2FnWzBdPXBhcnNlSW50KGFiLnJlcGxhY2UoL14oLiopXC4u
KiQvLCIkMSIpLDEwKTthZ1sxXT1wYXJzZUludChhYi5yZXBsYWNlKC9eLipcLiguKilccy4qJC8s
IiQxIiksMTApO2FnWzJdPS9bYS16QS1aXS8udGVzdChhYik/cGFyc2VJbnQoYWIucmVwbGFjZSgv
Xi4qW2EtekEtWl0rKC4qKSQvLCIkMSIpLDEwKTowfX1lbHNle2lmKHR5cGVvZiBPLkFjdGl2ZVhP
YmplY3QhPUQpe3RyeXt2YXIgYWQ9bmV3IEFjdGl2ZVhPYmplY3QoVyk7aWYoYWQpe2FiPWFkLkdl
dFZhcmlhYmxlKCIkdmVyc2lvbiIpO2lmKGFiKXtYPXRydWU7YWI9YWIuc3BsaXQoIiAiKVsxXS5z
cGxpdCgiLCIpO2FnPVtwYXJzZUludChhYlswXSwxMCkscGFyc2VJbnQoYWJbMV0sMTApLHBhcnNl
SW50KGFiWzJdLDEwKV19fX1jYXRjaChaKXt9fX1yZXR1cm57dzM6YWEscHY6YWcsd2s6YWYsaWU6
WCx3aW46YWUsbWFjOmFjfX0oKSxrPWZ1bmN0aW9uKCl7aWYoIU0udzMpe3JldHVybn1pZigodHlw
ZW9mIGoucmVhZHlTdGF0ZSE9RCYmai5yZWFkeVN0YXRlPT0iY29tcGxldGUiKXx8KHR5cGVvZiBq
LnJlYWR5U3RhdGU9PUQmJihqLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF18fGouYm9k
eSkpKXtmKCl9aWYoIUope2lmKHR5cGVvZiBqLmFkZEV2ZW50TGlzdGVuZXIhPUQpe2ouYWRkRXZl
bnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsZixmYWxzZSl9aWYoTS5pZSYmTS53aW4pe2ou
YXR0YWNoRXZlbnQoeCxmdW5jdGlvbigpe2lmKGoucmVhZHlTdGF0ZT09ImNvbXBsZXRlIil7ai5k
ZXRhY2hFdmVudCh4LGFyZ3VtZW50cy5jYWxsZWUpO2YoKX19KTtpZihPPT10b3ApeyhmdW5jdGlv
bigpe2lmKEope3JldHVybn10cnl7ai5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGwoImxlZnQiKX1j
YXRjaChYKXtzZXRUaW1lb3V0KGFyZ3VtZW50cy5jYWxsZWUsMCk7cmV0dXJufWYoKX0pKCl9fWlm
KE0ud2speyhmdW5jdGlvbigpe2lmKEope3JldHVybn1pZighL2xvYWRlZHxjb21wbGV0ZS8udGVz
dChqLnJlYWR5U3RhdGUpKXtzZXRUaW1lb3V0KGFyZ3VtZW50cy5jYWxsZWUsMCk7cmV0dXJufWYo
KX0pKCl9cyhmKX19KCk7ZnVuY3Rpb24gZigpe2lmKEope3JldHVybn10cnl7dmFyIFo9ai5nZXRF
bGVtZW50c0J5VGFnTmFtZSgiYm9keSIpWzBdLmFwcGVuZENoaWxkKEMoInNwYW4iKSk7Wi5wYXJl
bnROb2RlLnJlbW92ZUNoaWxkKFopfWNhdGNoKGFhKXtyZXR1cm59Sj10cnVlO3ZhciBYPVUubGVu
Z3RoO2Zvcih2YXIgWT0wO1k8WDtZKyspe1VbWV0oKX19ZnVuY3Rpb24gSyhYKXtpZihKKXtYKCl9
ZWxzZXtVW1UubGVuZ3RoXT1YfX1mdW5jdGlvbiBzKFkpe2lmKHR5cGVvZiBPLmFkZEV2ZW50TGlz
dGVuZXIhPUQpe08uYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsWSxmYWxzZSl9ZWxzZXtpZih0eXBl
b2Ygai5hZGRFdmVudExpc3RlbmVyIT1EKXtqLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLFksZmFs
c2UpfWVsc2V7aWYodHlwZW9mIE8uYXR0YWNoRXZlbnQhPUQpe2koTywib25sb2FkIixZKX1lbHNl
e2lmKHR5cGVvZiBPLm9ubG9hZD09ImZ1bmN0aW9uIil7dmFyIFg9Ty5vbmxvYWQ7Ty5vbmxvYWQ9
ZnVuY3Rpb24oKXtYKCk7WSgpfX1lbHNle08ub25sb2FkPVl9fX19fWZ1bmN0aW9uIGgoKXtpZihU
KXtWKCl9ZWxzZXtIKCl9fWZ1bmN0aW9uIFYoKXt2YXIgWD1qLmdldEVsZW1lbnRzQnlUYWdOYW1l
KCJib2R5IilbMF07dmFyIGFhPUMocik7YWEuc2V0QXR0cmlidXRlKCJ0eXBlIixxKTt2YXIgWj1Y
LmFwcGVuZENoaWxkKGFhKTtpZihaKXt2YXIgWT0wOyhmdW5jdGlvbigpe2lmKHR5cGVvZiBaLkdl
dFZhcmlhYmxlIT1EKXt2YXIgYWI9Wi5HZXRWYXJpYWJsZSgiJHZlcnNpb24iKTtpZihhYil7YWI9
YWIuc3BsaXQoIiAiKVsxXS5zcGxpdCgiLCIpO00ucHY9W3BhcnNlSW50KGFiWzBdLDEwKSxwYXJz
ZUludChhYlsxXSwxMCkscGFyc2VJbnQoYWJbMl0sMTApXX19ZWxzZXtpZihZPDEwKXtZKys7c2V0
VGltZW91dChhcmd1bWVudHMuY2FsbGVlLDEwKTtyZXR1cm59fVgucmVtb3ZlQ2hpbGQoYWEpO1o9
bnVsbDtIKCl9KSgpfWVsc2V7SCgpfX1mdW5jdGlvbiBIKCl7dmFyIGFnPW8ubGVuZ3RoO2lmKGFn
PjApe2Zvcih2YXIgYWY9MDthZjxhZzthZisrKXt2YXIgWT1vW2FmXS5pZDt2YXIgYWI9b1thZl0u
Y2FsbGJhY2tGbjt2YXIgYWE9e3N1Y2Nlc3M6ZmFsc2UsaWQ6WX07aWYoTS5wdlswXT4wKXt2YXIg
YWU9YyhZKTtpZihhZSl7aWYoRihvW2FmXS5zd2ZWZXJzaW9uKSYmIShNLndrJiZNLndrPDMxMikp
e3coWSx0cnVlKTtpZihhYil7YWEuc3VjY2Vzcz10cnVlO2FhLnJlZj16KFkpO2FiKGFhKX19ZWxz
ZXtpZihvW2FmXS5leHByZXNzSW5zdGFsbCYmQSgpKXt2YXIgYWk9e307YWkuZGF0YT1vW2FmXS5l
eHByZXNzSW5zdGFsbDthaS53aWR0aD1hZS5nZXRBdHRyaWJ1dGUoIndpZHRoIil8fCIwIjthaS5o
ZWlnaHQ9YWUuZ2V0QXR0cmlidXRlKCJoZWlnaHQiKXx8IjAiO2lmKGFlLmdldEF0dHJpYnV0ZSgi
Y2xhc3MiKSl7YWkuc3R5bGVjbGFzcz1hZS5nZXRBdHRyaWJ1dGUoImNsYXNzIil9aWYoYWUuZ2V0
QXR0cmlidXRlKCJhbGlnbiIpKXthaS5hbGlnbj1hZS5nZXRBdHRyaWJ1dGUoImFsaWduIil9dmFy
IGFoPXt9O3ZhciBYPWFlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwYXJhbSIpO3ZhciBhYz1YLmxl
bmd0aDtmb3IodmFyIGFkPTA7YWQ8YWM7YWQrKyl7aWYoWFthZF0uZ2V0QXR0cmlidXRlKCJuYW1l
IikudG9Mb3dlckNhc2UoKSE9Im1vdmllIil7YWhbWFthZF0uZ2V0QXR0cmlidXRlKCJuYW1lIild
PVhbYWRdLmdldEF0dHJpYnV0ZSgidmFsdWUiKX19UChhaSxhaCxZLGFiKX1lbHNle3AoYWUpO2lm
KGFiKXthYihhYSl9fX19fWVsc2V7dyhZLHRydWUpO2lmKGFiKXt2YXIgWj16KFkpO2lmKFomJnR5
cGVvZiBaLlNldFZhcmlhYmxlIT1EKXthYS5zdWNjZXNzPXRydWU7YWEucmVmPVp9YWIoYWEpfX19
fX1mdW5jdGlvbiB6KGFhKXt2YXIgWD1udWxsO3ZhciBZPWMoYWEpO2lmKFkmJlkubm9kZU5hbWU9
PSJPQkpFQ1QiKXtpZih0eXBlb2YgWS5TZXRWYXJpYWJsZSE9RCl7WD1ZfWVsc2V7dmFyIFo9WS5n
ZXRFbGVtZW50c0J5VGFnTmFtZShyKVswXTtpZihaKXtYPVp9fX1yZXR1cm4gWH1mdW5jdGlvbiBB
KCl7cmV0dXJuICFhJiZGKCI2LjAuNjUiKSYmKE0ud2lufHxNLm1hYykmJiEoTS53ayYmTS53azwz
MTIpfWZ1bmN0aW9uIFAoYWEsYWIsWCxaKXthPXRydWU7RT1afHxudWxsO0I9e3N1Y2Nlc3M6ZmFs
c2UsaWQ6WH07dmFyIGFlPWMoWCk7aWYoYWUpe2lmKGFlLm5vZGVOYW1lPT0iT0JKRUNUIil7bD1n
KGFlKTtRPW51bGx9ZWxzZXtsPWFlO1E9WH1hYS5pZD1SO2lmKHR5cGVvZiBhYS53aWR0aD09RHx8
KCEvJSQvLnRlc3QoYWEud2lkdGgpJiZwYXJzZUludChhYS53aWR0aCwxMCk8MzEwKSl7YWEud2lk
dGg9IjMxMCJ9aWYodHlwZW9mIGFhLmhlaWdodD09RHx8KCEvJSQvLnRlc3QoYWEuaGVpZ2h0KSYm
cGFyc2VJbnQoYWEuaGVpZ2h0LDEwKTwxMzcpKXthYS5oZWlnaHQ9IjEzNyJ9ai50aXRsZT1qLnRp
dGxlLnNsaWNlKDAsNDcpKyIgLSBGbGFzaCBQbGF5ZXIgSW5zdGFsbGF0aW9uIjt2YXIgYWQ9TS5p
ZSYmTS53aW4/IkFjdGl2ZVgiOiJQbHVnSW4iLGFjPSJNTXJlZGlyZWN0VVJMPSIrTy5sb2NhdGlv
bi50b1N0cmluZygpLnJlcGxhY2UoLyYvZywiJTI2IikrIiZNTXBsYXllclR5cGU9IithZCsiJk1N
ZG9jdGl0bGU9IitqLnRpdGxlO2lmKHR5cGVvZiBhYi5mbGFzaHZhcnMhPUQpe2FiLmZsYXNodmFy
cys9IiYiK2FjfWVsc2V7YWIuZmxhc2h2YXJzPWFjfWlmKE0uaWUmJk0ud2luJiZhZS5yZWFkeVN0
YXRlIT00KXt2YXIgWT1DKCJkaXYiKTtYKz0iU1dGT2JqZWN0TmV3IjtZLnNldEF0dHJpYnV0ZSgi
aWQiLFgpO2FlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKFksYWUpO2FlLnN0eWxlLmRpc3BsYXk9
Im5vbmUiOyhmdW5jdGlvbigpe2lmKGFlLnJlYWR5U3RhdGU9PTQpe2FlLnBhcmVudE5vZGUucmVt
b3ZlQ2hpbGQoYWUpfWVsc2V7c2V0VGltZW91dChhcmd1bWVudHMuY2FsbGVlLDEwKX19KSgpfXUo
YWEsYWIsWCl9fWZ1bmN0aW9uIHAoWSl7aWYoTS5pZSYmTS53aW4mJlkucmVhZHlTdGF0ZSE9NCl7
dmFyIFg9QygiZGl2Iik7WS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShYLFkpO1gucGFyZW50Tm9k
ZS5yZXBsYWNlQ2hpbGQoZyhZKSxYKTtZLnN0eWxlLmRpc3BsYXk9Im5vbmUiOyhmdW5jdGlvbigp
e2lmKFkucmVhZHlTdGF0ZT09NCl7WS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKFkpfWVsc2V7c2V0
VGltZW91dChhcmd1bWVudHMuY2FsbGVlLDEwKX19KSgpfWVsc2V7WS5wYXJlbnROb2RlLnJlcGxh
Y2VDaGlsZChnKFkpLFkpfX1mdW5jdGlvbiBnKGFiKXt2YXIgYWE9QygiZGl2Iik7aWYoTS53aW4m
Jk0uaWUpe2FhLmlubmVySFRNTD1hYi5pbm5lckhUTUx9ZWxzZXt2YXIgWT1hYi5nZXRFbGVtZW50
c0J5VGFnTmFtZShyKVswXTtpZihZKXt2YXIgYWQ9WS5jaGlsZE5vZGVzO2lmKGFkKXt2YXIgWD1h
ZC5sZW5ndGg7Zm9yKHZhciBaPTA7WjxYO1orKyl7aWYoIShhZFtaXS5ub2RlVHlwZT09MSYmYWRb
Wl0ubm9kZU5hbWU9PSJQQVJBTSIpJiYhKGFkW1pdLm5vZGVUeXBlPT04KSl7YWEuYXBwZW5kQ2hp
bGQoYWRbWl0uY2xvbmVOb2RlKHRydWUpKX19fX19cmV0dXJuIGFhfWZ1bmN0aW9uIHUoYWksYWcs
WSl7dmFyIFgsYWE9YyhZKTtpZihNLndrJiZNLndrPDMxMil7cmV0dXJuIFh9aWYoYWEpe2lmKHR5
cGVvZiBhaS5pZD09RCl7YWkuaWQ9WX1pZihNLmllJiZNLndpbil7dmFyIGFoPSIiO2Zvcih2YXIg
YWUgaW4gYWkpe2lmKGFpW2FlXSE9T2JqZWN0LnByb3RvdHlwZVthZV0pe2lmKGFlLnRvTG93ZXJD
YXNlKCk9PSJkYXRhIil7YWcubW92aWU9YWlbYWVdfWVsc2V7aWYoYWUudG9Mb3dlckNhc2UoKT09
InN0eWxlY2xhc3MiKXthaCs9JyBjbGFzcz0iJythaVthZV0rJyInfWVsc2V7aWYoYWUudG9Mb3dl
ckNhc2UoKSE9ImNsYXNzaWQiKXthaCs9IiAiK2FlKyc9IicrYWlbYWVdKyciJ319fX19dmFyIGFm
PSIiO2Zvcih2YXIgYWQgaW4gYWcpe2lmKGFnW2FkXSE9T2JqZWN0LnByb3RvdHlwZVthZF0pe2Fm
Kz0nPHBhcmFtIG5hbWU9IicrYWQrJyIgdmFsdWU9IicrYWdbYWRdKyciIC8+J319YWEub3V0ZXJI
VE1MPSc8b2JqZWN0IGNsYXNzaWQ9ImNsc2lkOkQyN0NEQjZFLUFFNkQtMTFjZi05NkI4LTQ0NDU1
MzU0MDAwMCInK2FoKyI+IithZisiPC9vYmplY3Q+IjtOW04ubGVuZ3RoXT1haS5pZDtYPWMoYWku
aWQpfWVsc2V7dmFyIFo9QyhyKTtaLnNldEF0dHJpYnV0ZSgidHlwZSIscSk7Zm9yKHZhciBhYyBp
biBhaSl7aWYoYWlbYWNdIT1PYmplY3QucHJvdG90eXBlW2FjXSl7aWYoYWMudG9Mb3dlckNhc2Uo
KT09InN0eWxlY2xhc3MiKXtaLnNldEF0dHJpYnV0ZSgiY2xhc3MiLGFpW2FjXSl9ZWxzZXtpZihh
Yy50b0xvd2VyQ2FzZSgpIT0iY2xhc3NpZCIpe1ouc2V0QXR0cmlidXRlKGFjLGFpW2FjXSl9fX19
Zm9yKHZhciBhYiBpbiBhZyl7aWYoYWdbYWJdIT1PYmplY3QucHJvdG90eXBlW2FiXSYmYWIudG9M
b3dlckNhc2UoKSE9Im1vdmllIil7ZShaLGFiLGFnW2FiXSl9fWFhLnBhcmVudE5vZGUucmVwbGFj
ZUNoaWxkKFosYWEpO1g9Wn19cmV0dXJuIFh9ZnVuY3Rpb24gZShaLFgsWSl7dmFyIGFhPUMoInBh
cmFtIik7YWEuc2V0QXR0cmlidXRlKCJuYW1lIixYKTthYS5zZXRBdHRyaWJ1dGUoInZhbHVlIixZ
KTtaLmFwcGVuZENoaWxkKGFhKX1mdW5jdGlvbiB5KFkpe3ZhciBYPWMoWSk7aWYoWCYmWC5ub2Rl
TmFtZT09Ik9CSkVDVCIpe2lmKE0uaWUmJk0ud2luKXtYLnN0eWxlLmRpc3BsYXk9Im5vbmUiOyhm
dW5jdGlvbigpe2lmKFgucmVhZHlTdGF0ZT09NCl7YihZKX1lbHNle3NldFRpbWVvdXQoYXJndW1l
bnRzLmNhbGxlZSwxMCl9fSkoKX1lbHNle1gucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChYKX19fWZ1
bmN0aW9uIGIoWil7dmFyIFk9YyhaKTtpZihZKXtmb3IodmFyIFggaW4gWSl7aWYodHlwZW9mIFlb
WF09PSJmdW5jdGlvbiIpe1lbWF09bnVsbH19WS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKFkpfX1m
dW5jdGlvbiBjKFope3ZhciBYPW51bGw7dHJ5e1g9ai5nZXRFbGVtZW50QnlJZChaKX1jYXRjaChZ
KXt9cmV0dXJuIFh9ZnVuY3Rpb24gQyhYKXtyZXR1cm4gai5jcmVhdGVFbGVtZW50KFgpfWZ1bmN0
aW9uIGkoWixYLFkpe1ouYXR0YWNoRXZlbnQoWCxZKTtJW0kubGVuZ3RoXT1bWixYLFldfWZ1bmN0
aW9uIEYoWil7dmFyIFk9TS5wdixYPVouc3BsaXQoIi4iKTtYWzBdPXBhcnNlSW50KFhbMF0sMTAp
O1hbMV09cGFyc2VJbnQoWFsxXSwxMCl8fDA7WFsyXT1wYXJzZUludChYWzJdLDEwKXx8MDtyZXR1
cm4oWVswXT5YWzBdfHwoWVswXT09WFswXSYmWVsxXT5YWzFdKXx8KFlbMF09PVhbMF0mJllbMV09
PVhbMV0mJllbMl0+PVhbMl0pKT90cnVlOmZhbHNlfWZ1bmN0aW9uIHYoYWMsWSxhZCxhYil7aWYo
TS5pZSYmTS5tYWMpe3JldHVybn12YXIgYWE9ai5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIp
WzBdO2lmKCFhYSl7cmV0dXJufXZhciBYPShhZCYmdHlwZW9mIGFkPT0ic3RyaW5nIik/YWQ6InNj
cmVlbiI7aWYoYWIpe249bnVsbDtHPW51bGx9aWYoIW58fEchPVgpe3ZhciBaPUMoInN0eWxlIik7
Wi5zZXRBdHRyaWJ1dGUoInR5cGUiLCJ0ZXh0L2NzcyIpO1ouc2V0QXR0cmlidXRlKCJtZWRpYSIs
WCk7bj1hYS5hcHBlbmRDaGlsZChaKTtpZihNLmllJiZNLndpbiYmdHlwZW9mIGouc3R5bGVTaGVl
dHMhPUQmJmouc3R5bGVTaGVldHMubGVuZ3RoPjApe249ai5zdHlsZVNoZWV0c1tqLnN0eWxlU2hl
ZXRzLmxlbmd0aC0xXX1HPVh9aWYoTS5pZSYmTS53aW4pe2lmKG4mJnR5cGVvZiBuLmFkZFJ1bGU9
PXIpe24uYWRkUnVsZShhYyxZKX19ZWxzZXtpZihuJiZ0eXBlb2Ygai5jcmVhdGVUZXh0Tm9kZSE9
RCl7bi5hcHBlbmRDaGlsZChqLmNyZWF0ZVRleHROb2RlKGFjKyIgeyIrWSsifSIpKX19fWZ1bmN0
aW9uIHcoWixYKXtpZighbSl7cmV0dXJufXZhciBZPVg/InZpc2libGUiOiJoaWRkZW4iO2lmKEom
JmMoWikpe2MoWikuc3R5bGUudmlzaWJpbGl0eT1ZfWVsc2V7digiIyIrWiwidmlzaWJpbGl0eToi
K1kpfX1mdW5jdGlvbiBMKFkpe3ZhciBaPS9bXFxcIjw+XC47XS87dmFyIFg9Wi5leGVjKFkpIT1u
dWxsO3JldHVybiBYJiZ0eXBlb2YgZW5jb2RlVVJJQ29tcG9uZW50IT1EP2VuY29kZVVSSUNvbXBv
bmVudChZKTpZfXZhciBkPWZ1bmN0aW9uKCl7aWYoTS5pZSYmTS53aW4pe3dpbmRvdy5hdHRhY2hF
dmVudCgib251bmxvYWQiLGZ1bmN0aW9uKCl7dmFyIGFjPUkubGVuZ3RoO2Zvcih2YXIgYWI9MDth
YjxhYzthYisrKXtJW2FiXVswXS5kZXRhY2hFdmVudChJW2FiXVsxXSxJW2FiXVsyXSl9dmFyIFo9
Ti5sZW5ndGg7Zm9yKHZhciBhYT0wO2FhPFo7YWErKyl7eShOW2FhXSl9Zm9yKHZhciBZIGluIE0p
e01bWV09bnVsbH1NPW51bGw7Zm9yKHZhciBYIGluIHN3Zm9iamVjdCl7c3dmb2JqZWN0W1hdPW51
bGx9c3dmb2JqZWN0PW51bGx9KX19KCk7cmV0dXJue3JlZ2lzdGVyT2JqZWN0OmZ1bmN0aW9uKGFi
LFgsYWEsWil7aWYoTS53MyYmYWImJlgpe3ZhciBZPXt9O1kuaWQ9YWI7WS5zd2ZWZXJzaW9uPVg7
WS5leHByZXNzSW5zdGFsbD1hYTtZLmNhbGxiYWNrRm49WjtvW28ubGVuZ3RoXT1ZO3coYWIsZmFs
c2UpfWVsc2V7aWYoWil7Wih7c3VjY2VzczpmYWxzZSxpZDphYn0pfX19LGdldE9iamVjdEJ5SWQ6
ZnVuY3Rpb24oWCl7aWYoTS53Myl7cmV0dXJuIHooWCl9fSxlbWJlZFNXRjpmdW5jdGlvbihhYixh
aCxhZSxhZyxZLGFhLFosYWQsYWYsYWMpe3ZhciBYPXtzdWNjZXNzOmZhbHNlLGlkOmFofTtpZihN
LnczJiYhKE0ud2smJk0ud2s8MzEyKSYmYWImJmFoJiZhZSYmYWcmJlkpe3coYWgsZmFsc2UpO0so
ZnVuY3Rpb24oKXthZSs9IiI7YWcrPSIiO3ZhciBhaj17fTtpZihhZiYmdHlwZW9mIGFmPT09cil7
Zm9yKHZhciBhbCBpbiBhZil7YWpbYWxdPWFmW2FsXX19YWouZGF0YT1hYjthai53aWR0aD1hZTth
ai5oZWlnaHQ9YWc7dmFyIGFtPXt9O2lmKGFkJiZ0eXBlb2YgYWQ9PT1yKXtmb3IodmFyIGFrIGlu
IGFkKXthbVtha109YWRbYWtdfX1pZihaJiZ0eXBlb2YgWj09PXIpe2Zvcih2YXIgYWkgaW4gWil7
aWYodHlwZW9mIGFtLmZsYXNodmFycyE9RCl7YW0uZmxhc2h2YXJzKz0iJiIrYWkrIj0iK1pbYWld
fWVsc2V7YW0uZmxhc2h2YXJzPWFpKyI9IitaW2FpXX19fWlmKEYoWSkpe3ZhciBhbj11KGFqLGFt
LGFoKTtpZihhai5pZD09YWgpe3coYWgsdHJ1ZSl9WC5zdWNjZXNzPXRydWU7WC5yZWY9YW59ZWxz
ZXtpZihhYSYmQSgpKXthai5kYXRhPWFhO1AoYWosYW0sYWgsYWMpO3JldHVybn1lbHNle3coYWgs
dHJ1ZSl9fWlmKGFjKXthYyhYKX19KX1lbHNle2lmKGFjKXthYyhYKX19fSxzd2l0Y2hPZmZBdXRv
SGlkZVNob3c6ZnVuY3Rpb24oKXttPWZhbHNlfSx1YTpNLGdldEZsYXNoUGxheWVyVmVyc2lvbjpm
dW5jdGlvbigpe3JldHVybnttYWpvcjpNLnB2WzBdLG1pbm9yOk0ucHZbMV0scmVsZWFzZTpNLnB2
WzJdfX0saGFzRmxhc2hQbGF5ZXJWZXJzaW9uOkYsY3JlYXRlU1dGOmZ1bmN0aW9uKFosWSxYKXtp
ZihNLnczKXtyZXR1cm4gdShaLFksWCl9ZWxzZXtyZXR1cm4gdW5kZWZpbmVkfX0sc2hvd0V4cHJl
c3NJbnN0YWxsOmZ1bmN0aW9uKFosYWEsWCxZKXtpZihNLnczJiZBKCkpe1AoWixhYSxYLFkpfX0s
cmVtb3ZlU1dGOmZ1bmN0aW9uKFgpe2lmKE0udzMpe3koWCl9fSxjcmVhdGVDU1M6ZnVuY3Rpb24o
YWEsWixZLFgpe2lmKE0udzMpe3YoYWEsWixZLFgpfX0sYWRkRG9tTG9hZEV2ZW50OkssYWRkTG9h
ZEV2ZW50OnMsZ2V0UXVlcnlQYXJhbVZhbHVlOmZ1bmN0aW9uKGFhKXt2YXIgWj1qLmxvY2F0aW9u
LnNlYXJjaHx8ai5sb2NhdGlvbi5oYXNoO2lmKFope2lmKC9cPy8udGVzdChaKSl7Wj1aLnNwbGl0
KCI/IilbMV19aWYoYWE9PW51bGwpe3JldHVybiBMKFopfXZhciBZPVouc3BsaXQoIiYiKTtmb3Io
dmFyIFg9MDtYPFkubGVuZ3RoO1grKyl7aWYoWVtYXS5zdWJzdHJpbmcoMCxZW1hdLmluZGV4T2Yo
Ij0iKSk9PWFhKXtyZXR1cm4gTChZW1hdLnN1YnN0cmluZygoWVtYXS5pbmRleE9mKCI9IikrMSkp
KX19fXJldHVybiIifSxleHByZXNzSW5zdGFsbENhbGxiYWNrOmZ1bmN0aW9uKCl7aWYoYSl7dmFy
IFg9YyhSKTtpZihYJiZsKXtYLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKGwsWCk7aWYoUSl7dyhR
LHRydWUpO2lmKE0uaWUmJk0ud2luKXtsLnN0eWxlLmRpc3BsYXk9ImJsb2NrIn19aWYoRSl7RShC
KX19YT1mYWxzZX19fX0oKTs=
|
|
56 | /assets/js/vpaid.js | application/javascript | vpaid.js | 200 OK | TEXT | 3.6 KB | 03/26/79 00:35:48 |
Download
|
|
SHA256
|
d8e5a35201febab0c2cbef9b1b9519f57b45e4154df3f13c7629a32267a9a6a9
|
Referer
|
http://cdn.bitmedianetwork.com/video/adplayer.html?timestamp=1481644853337&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t
|
Magic
|
Inconclusive. Probably text (TEXT)
|
Request
|
GET /assets/js/vpaid.js HTTP/1.1
Accept: */*
Referer: http://cdn.bitmedianetwork.com/video/adplayer.html?timestamp=1481644853337&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: iXmv7ZVAKGovijqm2m2FSfPbOWWdjYIDYpgCVyEs2stkx65fFBb7NGT9GflfQIyiaC2a2SUjiZ8=
x-amz-request-id: 3A732E6DAE0B04C2
x-amz-meta-cache-control: max-age=86400
Content-Type: application/javascript
Server: AmazonS3
Age: 44234
Date: Tue, 13 Dec 2016 16:01:00 GMT
Last-Modified: Fri, 11 Nov 2016 20:42:30 GMT
Expires: Wed, 14 Dec 2016 03:43:46 GMT
Content-Length: 3695
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
// version 0.1.1a
var vpaidjs = vpaidjs || {};
// defaults
vpaidjs.options = {
volume: 0.8,
swfPath: "vpaidjs.swf",
debu...
|
Ly8gdmVyc2lvbiAwLjEuMWEKCnZhciB2cGFpZGpzID0gdnBhaWRqcyB8fCB7fTsKCi8vIGRlZmF1
bHRzCnZwYWlkanMub3B0aW9ucyA9IHsKICB2b2x1bWU6IDAuOCwKICBzd2ZQYXRoOiAidnBhaWRq
cy5zd2YiLAogIGRlYnVnOiBmYWxzZQp9OwoKdmFyIFZQQUlEID0gZnVuY3Rpb24ocGxheWVySWQs
IG9wdGlvbnMpIHsKICB2YXIgcGxheWVyID0gdGhpczsKICB0aGlzLmFkID0gbmV3IE9iamVjdCgp
OwoKICB0aGlzLnBsYXllcklkID0gcGxheWVySWQ7CiAgdGhpcy5vcHRpb25zID0gdnBhaWRqcy5v
cHRpb25zOwoKICBmb3IgKHZhciBvcHRpb24gaW4gb3B0aW9ucykgewogICAgcGxheWVyLm9wdGlv
bnNbb3B0aW9uXSA9IG9wdGlvbnNbb3B0aW9uXTsKICB9CgogIHRoaXMuY3JlYXRlID0gZnVuY3Rp
b24oKSB7CiAgICB2YXIgZmxhc2h2YXJzID0ge307CiAgICB2YXIgcGFyYW1zID0gewogICAgICB3
bW9kZTogInRyYW5zcGFyZW50IiwKICAgICAgYWxsb3dTY3JpcHRBY2Nlc3M6ICJhbHdheXMiLAog
ICAgICBiZ2NvbG9yOiAiIzAwMDAwMCIKICAgIH07CgogICAgLy8gVE9ETzogZG8gaSBuZWVkIHRo
ZXNlPwogICAgdmFyIGF0dHJpYnV0ZXMgPSB7CiAgICAgIGlkOiBwbGF5ZXIucGxheWVySWQsCiAg
ICAgIG5hbWU6IHBsYXllci5wbGF5ZXJJZAogICAgfTsKCiAgICBzd2ZvYmplY3QuZW1iZWRTV0Yo
cGxheWVyLm9wdGlvbnMuc3dmUGF0aCwgcGxheWVyLnBsYXllcklkLCAiMTAwJSIsICIxMDAlIiwg
IjEwLjUiLCAiIiwgZmxhc2h2YXJzLCBwYXJhbXMsIGF0dHJpYnV0ZXMsIG9uQ3JlYXRlKTsKICB9
OwoKICB0aGlzLmluaXRBZCA9IGZ1bmN0aW9uIChhZFRhZykgewogICAgcGxheWVyLmFkLmluaXRB
ZChhZFRhZywgcGxheWVyLm9wdGlvbnMuZGVidWcpOwogIH07CgogIHRoaXMucmVzaXplQWQgPSBm
dW5jdGlvbiAoeCwgeSkgewogICAgcGxheWVyLmFkLnJlc2l6ZUFkKHgsIHkpOwogIH07CgogIHRo
aXMuc3RhcnRBZCA9IGZ1bmN0aW9uICgpIHsKICAgIHBsYXllci5hZC5zdGFydEFkKCk7CiAgfTsK
CiAgdGhpcy5zdG9wQWQgPSBwbGF5ZXIuYWQuc3RvcEFkOwogIHRoaXMuc2tpcEFkID0gcGxheWVy
LmFkLnNraXBBZDsKICB0aGlzLnBhdXNlQWQgPSBwbGF5ZXIuYWQucGF1c2VBZDsKICB0aGlzLnJl
c3VtZUFkID0gcGxheWVyLmFkLnJlc3VtZUFkOwogIHRoaXMuZXhwYW5kQWQgPSBwbGF5ZXIuYWQu
ZXhwYW5kQWQ7CiAgdGhpcy5jb2xsYXBzZUFkID0gcGxheWVyLmFkLmNvbGxhcHNlQWQ7CgogIHRo
aXMudm9sdW1lID0gZnVuY3Rpb24gKGxldmVsKSB7CiAgICBwbGF5ZXIuYWQudm9sdW1lKGxldmVs
KTsKICB9OwoKICB0aGlzLmRlc3Ryb3kgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodHlwZW9mIHBs
YXllci5hZCAhPSAidW5kZWZpbmVkIikgewogICAgICBwbGF5ZXIuYWQuc3RvcEFkKCk7CiAgICB9
CiAgICBzd2ZvYmplY3QucmVtb3ZlU1dGKHBsYXllci5wbGF5ZXJJZCk7CiAgfTsKCiAgdGhpcy5v
biA9IGZ1bmN0aW9uIChldmVudE5hbWUsIGNiKSB7CiAgICAkKGRvY3VtZW50KS5vbihldmVudE5h
bWUsICIjIiArIHBsYXllcklkLCBjYik7CiAgfTsKCiAgLy8gbm93IHN0YXJ0IGl0IHVwCiAgdGhp
cy5jcmVhdGUoKTsKCiAgLy8gdGFrZSBleHRyYSBjYXJlIHZlcmlmeWluZyBTV0YgYW5kIGFkIGZ1
bGx5IHJlYWR5CiAgZnVuY3Rpb24gb25DcmVhdGUoZSkgewogICAgaWYgKCFlLnN1Y2Nlc3MgfHwg
IWUucmVmKSB7CiAgICAgIHZwYWlkanMubG9nKCJGYWlsZWQgdG8gZW1iZWQgU1dGLiIpOwogICAg
ICByZXR1cm4gZmFsc2U7CiAgICB9CiAgICB3YWl0Rm9yU3dmT2JqZWN0KGUpOwogIH0KCiAgZnVu
Y3Rpb24gd2FpdEZvclN3Zk9iamVjdChlKSB7CiAgICB2YXIgc3dmV2FpdCA9IHNldEludGVydmFs
KGZ1bmN0aW9uICgpIHsKICAgICAgaWYgKHR5cGVvZiBlLnJlZi5QZXJjZW50TG9hZGVkICE9PSAi
dW5kZWZpbmVkIiAmJiBlLnJlZi5QZXJjZW50TG9hZGVkKCkpIHsKICAgICAgICBjbGVhckludGVy
dmFsKHN3ZldhaXQpOwogICAgICAgIHdhaXRGb3JBZEludGVyZmFjZShlKTsKICAgICAgfQogICAg
fSwgMTAwKTsKICB9CgogIGZ1bmN0aW9uIHdhaXRGb3JBZEludGVyZmFjZShlKSB7CiAgICAvLyB0
aW1lciB0byB3YWl0IGZvciBzd2Ygb2JqZWN0IHRvIGZ1bGx5IGxvYWQKICAgIHZhciBhZFdhaXQg
PSBzZXRJbnRlcnZhbChmdW5jdGlvbigpIHsKICAgICAgdnBhaWRqcy5sb2cocGxheWVyLm9wdGlv
bnMuc3dmUGF0aCArICIgIiArIGUucmVmLlBlcmNlbnRMb2FkZWQoKSArICIlIGxvYWRlZC4iKTsK
ICAgICAgaWYgKGUucmVmLlBlcmNlbnRMb2FkZWQoKSA9PT0gMTAwKSB7CiAgICAgICAgcGxheWVy
LmFkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocGxheWVyLnBsYXllcklkKTsKICAgICAgICBj
bGVhckludGVydmFsKGFkV2FpdCk7CgogICAgICAgIGlmICh0eXBlb2YgcGxheWVyLmFkLmluaXRB
ZCA9PSAiZnVuY3Rpb24iKSB7CgogICAgICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIub3B0aW9ucy5z
dWNjZXNzID09ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgcGxheWVyLm9wdGlvbnMuc3VjY2Vz
cygpOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgfQogICAgICB9CiAgICB9
LCAxMDApOwogIH0KfTsKCnZwYWlkanMubG9nID0gZnVuY3Rpb24obWVzc2FnZSkgewogIGlmICh2
cGFpZGpzLm9wdGlvbnMuZGVidWcpIHsKICAgIHRyeSB7CiAgICAgIHdpbmRvdy50b3AuY29uc29s
ZS5sb2coInZwYWlkanM6ICIgKyBtZXNzYWdlKTsKICAgIH0gY2F0Y2goZSkge30KICB9Cn07Cgov
LyBpbiBvcmRlciB0byBicmlkZ2UgZXZlbnRzLCBhY3Rpb25zY3JpcHQgb2JqZWN0cyBhcnJpdmUg
aGVyZSBhcyBqc29uIHN0cmluZ3MsCi8vICAgdGhlc2UgYXJlIGNvbnZlcnRlZCB0byBqYXZhc2Ny
aXB0IG9iamVjdHMgYW5kIHNlbnQgb24gdGhlaXIgd2F5CnZwYWlkanMudHJpZ2dlckV2ZW50ID0g
ZnVuY3Rpb24ob2JqZWN0SWQsIGV2ZW50VHlwZSwgZGF0YU9iaikgewogIHZhciBldmVudERhdGEg
PSB0eXBlb2YgSlNPTiAhPT0gInVuZGVmaW5lZCIgPyBKU09OLnBhcnNlKGRhdGFPYmopIDoge307
CiAgJCgiIyIgKyBvYmplY3RJZCkudHJpZ2dlcihldmVudFR5cGUsIGV2ZW50RGF0YSk7CiAgdnBh
aWRqcy5sb2coIlt2cGFpZC5qc10gZXZlbnQ6ICIgKyBldmVudFR5cGUpOwp9OwoKdmFyIFZQQUlE
RXZlbnRzID0gWyJBZFJlYWR5IiwgIkFkTG9hZGluZyIsICJBZExvYWRlZCIsICJBZFN0YXJ0ZWQi
LCAiQWRQYXVzZWQiLCAiQWRTdG9wcGVkIiwgIkFkTGluZWFyQ2hhbmdlIiwgIkFkRXhwYW5kZWRD
aGFuZ2UiLCAiQWRWb2x1bWVDaGFuZ2UiLCAiQWRJbXByZXNzaW9uIiwgIkFkVmlkZW9TdGFydCIs
ICJBZFZpZGVvRmlyc3RRdWFydGlsZSIsICJBZFZpZGVvTWlkcG9pbnQiLCAiQWRWaWRlb1RoaXJk
UXVhcnRpbGUiLCAiQWRWaWRlb0NvbXBsZXRlIiwgIkFkQ2xpY2tUaHJ1IiwgIkFkVXNlckFjY2Vw
dEludml0YXRpb24iLCAiQWRVc2VyTWluaW1pemUiLCAiQWRVc2VyQ2xvc2UiLCAiQWRQbGF5aW5n
IiwgIkFkTG9nIiwgIkFkRXJyb3IiLCAiQWRTa2lwcGVkIiwgIkFkU2tpcHBhYmxlU3RhdGVDaGFu
Z2UiLCAiQWRTaXplQ2hhbmdlIiwgIkFkRHVyYXRpb25DaGFuZ2UiLCAiQWRJbnRlcmFjdGlvbiJd
OwoKdmFyIF9fdnBhaWRqc19fID0gd2luZG93LnZwYWlkanMgPSB2cGFpZGpzOwo=
|
|
57 | /video/js/video.js | application/javascript | video.js | 200 OK | TEXT | 65.1 KB | 03/28/79 16:40:50 |
Download
|
|
SHA256
|
5c96a32ba5f1f6df3294ba24d401c8689c3568a1b5913462ebf6392678b648ab
|
Referer
|
http://cdn.bitmedianetwork.com/video/adplayer.html?timestamp=1481644853337&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t
|
Magic
|
Inconclusive. Probably text (TEXT)
|
Request
|
GET /video/js/video.js HTTP/1.1
Accept: */*
Referer: http://cdn.bitmedianetwork.com/video/adplayer.html?timestamp=1481644853337&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: TkZy4iEChSejZcjgRj12dT9Ze575QNywZDpqAKFY0rBJ4kdSk5utLtxAF5nw6Q3kG7OTdiwQ/Ic=
x-amz-request-id: 1E50A05F9F666AC8
x-amz-meta-cache-control: max-age=86400
Content-Type: application/javascript
Server: AmazonS3
Age: 44371
Date: Tue, 13 Dec 2016 16:01:00 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:48 GMT
Expires: Wed, 14 Dec 2016 03:41:29 GMT
Content-Length: 66671
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
/*! Video.js v4.8.1 Copyright 2014 Brightcove, Inc. https://github.com/videojs/video.js/blob/master/LICENSE */
(function() {var...
|
LyohIFZpZGVvLmpzIHY0LjguMSBDb3B5cmlnaHQgMjAxNCBCcmlnaHRjb3ZlLCBJbmMuIGh0dHBz
Oi8vZ2l0aHViLmNvbS92aWRlb2pzL3ZpZGVvLmpzL2Jsb2IvbWFzdGVyL0xJQ0VOU0UgKi8gCihm
dW5jdGlvbigpIHt2YXIgYj12b2lkIDAsZj0hMCxrPW51bGwsbD0hMTtmdW5jdGlvbiBtKCl7cmV0
dXJuIGZ1bmN0aW9uKCl7fX1mdW5jdGlvbiBwKGEpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0
aGlzW2FdfX1mdW5jdGlvbiByKGEpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBhfX12YXIgcztk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJ2aWRlbyIpO2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImF1
ZGlvIik7ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidHJhY2siKTtmdW5jdGlvbiB0KGEsYyxkKXtp
Zigic3RyaW5nIj09PXR5cGVvZiBhKXswPT09YS5pbmRleE9mKCIjIikmJihhPWEuc2xpY2UoMSkp
O2lmKHQuQmFbYV0pcmV0dXJuIHQuQmFbYV07YT10LnYoYSl9aWYoIWF8fCFhLm5vZGVOYW1lKXRo
cm93IG5ldyBUeXBlRXJyb3IoIlRoZSBlbGVtZW50IG9yIElEIHN1cHBsaWVkIGlzIG5vdCB2YWxp
ZC4gKHZpZGVvanMpIik7cmV0dXJuIGEucGxheWVyfHxuZXcgdC5QbGF5ZXIoYSxjLGQpfQp2YXIg
dmlkZW9qcz13aW5kb3cudmlkZW9qcz10O3QuVWI9IjQuOCI7dC5TYz0iaHR0cHM6Ij09ZG9jdW1l
bnQubG9jYXRpb24ucHJvdG9jb2w/Imh0dHBzOi8vIjoiaHR0cDovLyI7CnQub3B0aW9ucz17dGVj
aE9yZGVyOlsiaHRtbDUiLCJmbGFzaCJdLGh0bWw1Ont9LGZsYXNoOnt9LHdpZHRoOjMwMCxoZWln
aHQ6MTUwLGRlZmF1bHRWb2x1bWU6MCxwbGF5YmFja1JhdGVzOltdLGluYWN0aXZpdHlUaW1lb3V0
OjJFMyxjaGlsZHJlbjp7bWVkaWFMb2FkZXI6e30scG9zdGVySW1hZ2U6e30sdGV4dFRyYWNrRGlz
cGxheTp7fSxsb2FkaW5nU3Bpbm5lcjp7fSxiaWdQbGF5QnV0dG9uOnt9LGNvbnRyb2xCYXI6e30s
ZXJyb3JEaXNwbGF5Ont9fSxsYW5ndWFnZTpkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgi
aHRtbCIpWzBdLmdldEF0dHJpYnV0ZSgibGFuZyIpfHxuYXZpZ2F0b3IubGFuZ3VhZ2VzJiZuYXZp
Z2F0b3IubGFuZ3VhZ2VzWzBdfHxuYXZpZ2F0b3IudmV8fG5hdmlnYXRvci5sYW5ndWFnZXx8ImVu
IixsYW5ndWFnZXM6e30sbm90U3VwcG9ydGVkTWVzc2FnZToiTm8gY29tcGF0aWJsZSBzb3VyY2Ug
d2FzIGZvdW5kIGZvciB0aGlzIHZpZGVvLiJ9OwoiR0VORVJBVEVEX0NETl9WU04iIT09dC5VYiYm
KHZpZGVvanMub3B0aW9ucy5mbGFzaC5zd2Y9dC5TYysidmpzLnplbmNkbi5uZXQvIit0LlViKyIv
dmlkZW8tanMuc3dmIik7dC5kZD1mdW5jdGlvbihhLGMpe3Qub3B0aW9ucy5sYW5ndWFnZXNbYV09
dC5vcHRpb25zLmxhbmd1YWdlc1thXSE9PWI/dC5nYS5WYSh0Lm9wdGlvbnMubGFuZ3VhZ2VzW2Fd
LGMpOmM7cmV0dXJuIHQub3B0aW9ucy5sYW5ndWFnZXN9O3QuQmE9e307ImZ1bmN0aW9uIj09PXR5
cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFtdLGZ1bmN0aW9uKCl7cmV0dXJuIHZpZGVv
anN9KToib2JqZWN0Ij09PXR5cGVvZiBleHBvcnRzJiYib2JqZWN0Ij09PXR5cGVvZiBtb2R1bGUm
Jihtb2R1bGUuZXhwb3J0cz12aWRlb2pzKTt0LnFhPXQuQ29yZU9iamVjdD1tKCk7CnQucWEuZXh0
ZW5kPWZ1bmN0aW9uKGEpe3ZhciBjLGQ7YT1hfHx7fTtjPWEuaW5pdHx8YS5pfHx0aGlzLnByb3Rv
dHlwZS5pbml0fHx0aGlzLnByb3RvdHlwZS5pfHxtKCk7ZD1mdW5jdGlvbigpe2MuYXBwbHkodGhp
cyxhcmd1bWVudHMpfTtkLnByb3RvdHlwZT10LmguY3JlYXRlKHRoaXMucHJvdG90eXBlKTtkLnBy
b3RvdHlwZS5jb25zdHJ1Y3Rvcj1kO2QuZXh0ZW5kPXQucWEuZXh0ZW5kO2QuY3JlYXRlPXQucWEu
Y3JlYXRlO2Zvcih2YXIgZSBpbiBhKWEuaGFzT3duUHJvcGVydHkoZSkmJihkLnByb3RvdHlwZVtl
XT1hW2VdKTtyZXR1cm4gZH07dC5xYS5jcmVhdGU9ZnVuY3Rpb24oKXt2YXIgYT10LmguY3JlYXRl
KHRoaXMucHJvdG90eXBlKTt0aGlzLmFwcGx5KGEsYXJndW1lbnRzKTtyZXR1cm4gYX07CnQuZD1m
dW5jdGlvbihhLGMsZCl7aWYodC5oLmlzQXJyYXkoYykpcmV0dXJuIHUodC5kLGEsYyxkKTt2YXIg
ZT10LmdldERhdGEoYSk7ZS5DfHwoZS5DPXt9KTtlLkNbY118fChlLkNbY109W10pO2Qud3x8KGQu
dz10LncrKyk7ZS5DW2NdLnB1c2goZCk7ZS5YfHwoZS5kaXNhYmxlZD1sLGUuWD1mdW5jdGlvbihj
KXtpZighZS5kaXNhYmxlZCl7Yz10LnBjKGMpO3ZhciBkPWUuQ1tjLnR5cGVdO2lmKGQpZm9yKHZh
ciBkPWQuc2xpY2UoMCksaj0wLG49ZC5sZW5ndGg7ajxuJiYhYy53YygpO2orKylkW2pdLmNhbGwo
YSxjKX19KTsxPT1lLkNbY10ubGVuZ3RoJiYoYS5hZGRFdmVudExpc3RlbmVyP2EuYWRkRXZlbnRM
aXN0ZW5lcihjLGUuWCxsKTphLmF0dGFjaEV2ZW50JiZhLmF0dGFjaEV2ZW50KCJvbiIrYyxlLlgp
KX07CnQubz1mdW5jdGlvbihhLGMsZCl7aWYodC5zYyhhKSl7dmFyIGU9dC5nZXREYXRhKGEpO2lm
KGUuQyl7aWYodC5oLmlzQXJyYXkoYykpcmV0dXJuIHUodC5vLGEsYyxkKTtpZihjKXt2YXIgZz1l
LkNbY107aWYoZyl7aWYoZCl7aWYoZC53KWZvcihlPTA7ZTxnLmxlbmd0aDtlKyspZ1tlXS53PT09
ZC53JiZnLnNwbGljZShlLS0sMSl9ZWxzZSBlLkNbY109W107dC5qYyhhLGMpfX1lbHNlIGZvcihn
IGluIGUuQyljPWcsZS5DW2NdPVtdLHQuamMoYSxjKX19fTt0LmpjPWZ1bmN0aW9uKGEsYyl7dmFy
IGQ9dC5nZXREYXRhKGEpOzA9PT1kLkNbY10ubGVuZ3RoJiYoZGVsZXRlIGQuQ1tjXSxhLnJlbW92
ZUV2ZW50TGlzdGVuZXI/YS5yZW1vdmVFdmVudExpc3RlbmVyKGMsZC5YLGwpOmEuZGV0YWNoRXZl
bnQmJmEuZGV0YWNoRXZlbnQoIm9uIitjLGQuWCkpO3QuSGIoZC5DKSYmKGRlbGV0ZSBkLkMsZGVs
ZXRlIGQuWCxkZWxldGUgZC5kaXNhYmxlZCk7dC5IYihkKSYmdC5GYyhhKX07CnQucGM9ZnVuY3Rp
b24oYSl7ZnVuY3Rpb24gYygpe3JldHVybiBmfWZ1bmN0aW9uIGQoKXtyZXR1cm4gbH1pZighYXx8
IWEuSWIpe3ZhciBlPWF8fHdpbmRvdy5ldmVudDthPXt9O2Zvcih2YXIgZyBpbiBlKSJsYXllclgi
IT09ZyYmKCJsYXllclkiIT09ZyYmImtleWJvYXJkRXZlbnQua2V5TG9jYXRpb24iIT09ZykmJigi
cmV0dXJuVmFsdWUiPT1nJiZlLnByZXZlbnREZWZhdWx0fHwoYVtnXT1lW2ddKSk7YS50YXJnZXR8
fChhLnRhcmdldD1hLnNyY0VsZW1lbnR8fGRvY3VtZW50KTthLnJlbGF0ZWRUYXJnZXQ9YS5mcm9t
RWxlbWVudD09PWEudGFyZ2V0P2EudG9FbGVtZW50OmEuZnJvbUVsZW1lbnQ7YS5wcmV2ZW50RGVm
YXVsdD1mdW5jdGlvbigpe2UucHJldmVudERlZmF1bHQmJmUucHJldmVudERlZmF1bHQoKTthLnJl
dHVyblZhbHVlPWw7YS55ZD1jO2EuZGVmYXVsdFByZXZlbnRlZD1mfTthLnlkPWQ7YS5kZWZhdWx0
UHJldmVudGVkPWw7YS5zdG9wUHJvcGFnYXRpb249ZnVuY3Rpb24oKXtlLnN0b3BQcm9wYWdhdGlv
biYmCmUuc3RvcFByb3BhZ2F0aW9uKCk7YS5jYW5jZWxCdWJibGU9ZjthLkliPWN9O2EuSWI9ZDth
LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbj1mdW5jdGlvbigpe2Uuc3RvcEltbWVkaWF0ZVByb3Bh
Z2F0aW9uJiZlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO2Eud2M9YzthLnN0b3BQcm9wYWdh
dGlvbigpfTthLndjPWQ7aWYoYS5jbGllbnRYIT1rKXtnPWRvY3VtZW50LmRvY3VtZW50RWxlbWVu
dDt2YXIgaD1kb2N1bWVudC5ib2R5O2EucGFnZVg9YS5jbGllbnRYKyhnJiZnLnNjcm9sbExlZnR8
fGgmJmguc2Nyb2xsTGVmdHx8MCktKGcmJmcuY2xpZW50TGVmdHx8aCYmaC5jbGllbnRMZWZ0fHww
KTthLnBhZ2VZPWEuY2xpZW50WSsoZyYmZy5zY3JvbGxUb3B8fGgmJmguc2Nyb2xsVG9wfHwwKS0o
ZyYmZy5jbGllbnRUb3B8fGgmJmguY2xpZW50VG9wfHwwKX1hLndoaWNoPWEuY2hhckNvZGV8fGEu
a2V5Q29kZTthLmJ1dHRvbiE9ayYmKGEuYnV0dG9uPWEuYnV0dG9uJjE/MDphLmJ1dHRvbiYKND8x
OmEuYnV0dG9uJjI/MjowKX1yZXR1cm4gYX07dC5sPWZ1bmN0aW9uKGEsYyl7dmFyIGQ9dC5zYyhh
KT90LmdldERhdGEoYSk6e30sZT1hLnBhcmVudE5vZGV8fGEub3duZXJEb2N1bWVudDsic3RyaW5n
Ij09PXR5cGVvZiBjJiYoYz17dHlwZTpjLHRhcmdldDphfSk7Yz10LnBjKGMpO2QuWCYmZC5YLmNh
bGwoYSxjKTtpZihlJiYhYy5JYigpJiZjLmJ1YmJsZXMhPT1sKXQubChlLGMpO2Vsc2UgaWYoIWUm
JiFjLmRlZmF1bHRQcmV2ZW50ZWQmJihkPXQuZ2V0RGF0YShjLnRhcmdldCksYy50YXJnZXRbYy50
eXBlXSkpe2QuZGlzYWJsZWQ9ZjtpZigiZnVuY3Rpb24iPT09dHlwZW9mIGMudGFyZ2V0W2MudHlw
ZV0pYy50YXJnZXRbYy50eXBlXSgpO2QuZGlzYWJsZWQ9bH1yZXR1cm4hYy5kZWZhdWx0UHJldmVu
dGVkfTsKdC5XPWZ1bmN0aW9uKGEsYyxkKXtmdW5jdGlvbiBlKCl7dC5vKGEsYyxlKTtkLmFwcGx5
KHRoaXMsYXJndW1lbnRzKX1pZih0LmguaXNBcnJheShjKSlyZXR1cm4gdSh0LlcsYSxjLGQpO2Uu
dz1kLnc9ZC53fHx0LncrKzt0LmQoYSxjLGUpfTtmdW5jdGlvbiB1KGEsYyxkLGUpe3QuaGMuZm9y
RWFjaChkLGZ1bmN0aW9uKGQpe2EoYyxkLGUpfSl9dmFyIHY9T2JqZWN0LnByb3RvdHlwZS5oYXNP
d25Qcm9wZXJ0eTt0LmU9ZnVuY3Rpb24oYSxjKXt2YXIgZDtjPWN8fHt9O2Q9ZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudChhfHwiZGl2Iik7dC5oLlkoYyxmdW5jdGlvbihhLGMpey0xIT09YS5pbmRleE9m
KCJhcmlhLSIpfHwicm9sZSI9PWE/ZC5zZXRBdHRyaWJ1dGUoYSxjKTpkW2FdPWN9KTtyZXR1cm4g
ZH07dC5hYT1mdW5jdGlvbihhKXtyZXR1cm4gYS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSthLnNs
aWNlKDEpfTt0Lmg9e307CnQuaC5jcmVhdGU9T2JqZWN0LmNyZWF0ZXx8ZnVuY3Rpb24oYSl7ZnVu
Y3Rpb24gYygpe31jLnByb3RvdHlwZT1hO3JldHVybiBuZXcgY307dC5oLlk9ZnVuY3Rpb24oYSxj
LGQpe2Zvcih2YXIgZSBpbiBhKXYuY2FsbChhLGUpJiZjLmNhbGwoZHx8dGhpcyxlLGFbZV0pfTt0
Lmguej1mdW5jdGlvbihhLGMpe2lmKCFjKXJldHVybiBhO2Zvcih2YXIgZCBpbiBjKXYuY2FsbChj
LGQpJiYoYVtkXT1jW2RdKTtyZXR1cm4gYX07dC5oLm1kPWZ1bmN0aW9uKGEsYyl7dmFyIGQsZSxn
O2E9dC5oLmNvcHkoYSk7Zm9yKGQgaW4gYyl2LmNhbGwoYyxkKSYmKGU9YVtkXSxnPWNbZF0sYVtk
XT10LmguVGEoZSkmJnQuaC5UYShnKT90LmgubWQoZSxnKTpjW2RdKTtyZXR1cm4gYX07dC5oLmNv
cHk9ZnVuY3Rpb24oYSl7cmV0dXJuIHQuaC56KHt9LGEpfTsKdC5oLlRhPWZ1bmN0aW9uKGEpe3Jl
dHVybiEhYSYmIm9iamVjdCI9PT10eXBlb2YgYSYmIltvYmplY3QgT2JqZWN0XSI9PT1hLnRvU3Ry
aW5nKCkmJmEuY29uc3RydWN0b3I9PT1PYmplY3R9O3QuaC5pc0FycmF5PUFycmF5LmlzQXJyYXl8
fGZ1bmN0aW9uKGEpe3JldHVybiJbb2JqZWN0IEFycmF5XSI9PT1PYmplY3QucHJvdG90eXBlLnRv
U3RyaW5nLmNhbGwoYSl9O3QuQWQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGEhPT1hfTt0LmJpbmQ9ZnVu
Y3Rpb24oYSxjLGQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gYy5hcHBseShhLGFyZ3VtZW50cyl9Yy53
fHwoYy53PXQudysrKTtlLnc9ZD9kKyJfIitjLnc6Yy53O3JldHVybiBlfTt0LnVhPXt9O3Qudz0x
O3QuZXhwYW5kbz0idmRhdGEiKyhuZXcgRGF0ZSkuZ2V0VGltZSgpO3QuZ2V0RGF0YT1mdW5jdGlv
bihhKXt2YXIgYz1hW3QuZXhwYW5kb107Y3x8KGM9YVt0LmV4cGFuZG9dPXQudysrLHQudWFbY109
e30pO3JldHVybiB0LnVhW2NdfTsKdC5zYz1mdW5jdGlvbihhKXthPWFbdC5leHBhbmRvXTtyZXR1
cm4hKCFhfHx0LkhiKHQudWFbYV0pKX07dC5GYz1mdW5jdGlvbihhKXt2YXIgYz1hW3QuZXhwYW5k
b107aWYoYyl7ZGVsZXRlIHQudWFbY107dHJ5e2RlbGV0ZSBhW3QuZXhwYW5kb119Y2F0Y2goZCl7
YS5yZW1vdmVBdHRyaWJ1dGU/YS5yZW1vdmVBdHRyaWJ1dGUodC5leHBhbmRvKTphW3QuZXhwYW5k
b109a319fTt0LkhiPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYyBpbiBhKWlmKGFbY10hPT1rKXJldHVy
biBsO3JldHVybiBmfTt0Lm49ZnVuY3Rpb24oYSxjKXstMT09KCIgIithLmNsYXNzTmFtZSsiICIp
LmluZGV4T2YoIiAiK2MrIiAiKSYmKGEuY2xhc3NOYW1lPSIiPT09YS5jbGFzc05hbWU/YzphLmNs
YXNzTmFtZSsiICIrYyl9Owp0LnA9ZnVuY3Rpb24oYSxjKXt2YXIgZCxlO2lmKC0xIT1hLmNsYXNz
TmFtZS5pbmRleE9mKGMpKXtkPWEuY2xhc3NOYW1lLnNwbGl0KCIgIik7Zm9yKGU9ZC5sZW5ndGgt
MTswPD1lO2UtLSlkW2VdPT09YyYmZC5zcGxpY2UoZSwxKTthLmNsYXNzTmFtZT1kLmpvaW4oIiAi
KX19O3QuQT10LmUoInZpZGVvIik7dC5MPW5hdmlnYXRvci51c2VyQWdlbnQ7dC5ZYz0vaVBob25l
L2kudGVzdCh0LkwpO3QuWGM9L2lQYWQvaS50ZXN0KHQuTCk7dC5aYz0vaVBvZC9pLnRlc3QodC5M
KTt0LldjPXQuWWN8fHQuWGN8fHQuWmM7dmFyIGFhPXQseDt2YXIgeT10LkwubWF0Y2goL09TIChc
ZCspXy9pKTt4PXkmJnlbMV0/eVsxXTpiO2FhLmtlPXg7dC5VYz0vQW5kcm9pZC9pLnRlc3QodC5M
KTt2YXIgYmE9dCx6O3ZhciBBPXQuTC5tYXRjaCgvQW5kcm9pZCAoXGQrKSg/OlwuKFxkKykpPyg/
OlwuKFxkKykpKi9pKSxCLEM7CkE/KEI9QVsxXSYmcGFyc2VGbG9hdChBWzFdKSxDPUFbMl0mJnBh
cnNlRmxvYXQoQVsyXSksej1CJiZDP3BhcnNlRmxvYXQoQVsxXSsiLiIrQVsyXSk6Qj9COmspOno9
aztiYS5UYj16O3QuJGM9dC5VYyYmL3dlYmtpdC9pLnRlc3QodC5MKSYmMi4zPnQuVGI7dC5WYz0v
RmlyZWZveC9pLnRlc3QodC5MKTt0LmxlPS9DaHJvbWUvaS50ZXN0KHQuTCk7dC5kYz0hISgib250
b3VjaHN0YXJ0ImluIHdpbmRvd3x8d2luZG93LlRjJiZkb2N1bWVudCBpbnN0YW5jZW9mIHdpbmRv
dy5UYyk7dC5IYz1mdW5jdGlvbihhLGMpe3QuaC5ZKGMsZnVuY3Rpb24oYyxlKXtlPT09a3x8InVu
ZGVmaW5lZCI9PT10eXBlb2YgZXx8ZT09PWw/YS5yZW1vdmVBdHRyaWJ1dGUoYyk6YS5zZXRBdHRy
aWJ1dGUoYyxlPT09Zj8iIjplKX0pfTsKdC56YT1mdW5jdGlvbihhKXt2YXIgYyxkLGUsZztjPXt9
O2lmKGEmJmEuYXR0cmlidXRlcyYmMDxhLmF0dHJpYnV0ZXMubGVuZ3RoKXtkPWEuYXR0cmlidXRl
cztmb3IodmFyIGg9ZC5sZW5ndGgtMTswPD1oO2gtLSl7ZT1kW2hdLm5hbWU7Zz1kW2hdLnZhbHVl
O2lmKCJib29sZWFuIj09PXR5cGVvZiBhW2VdfHwtMSE9PSIsYXV0b3BsYXksY29udHJvbHMsbG9v
cCxtdXRlZCxkZWZhdWx0LCIuaW5kZXhPZigiLCIrZSsiLCIpKWc9ZyE9PWs/ZjpsO2NbZV09Z319
cmV0dXJuIGN9Owp0LnJlPWZ1bmN0aW9uKGEsYyl7dmFyIGQ9IiI7ZG9jdW1lbnQuZGVmYXVsdFZp
ZXcmJmRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGU/ZD1kb2N1bWVudC5kZWZh
dWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGEsIiIpLmdldFByb3BlcnR5VmFsdWUoYyk6YS5jdXJy
ZW50U3R5bGUmJihkPWFbImNsaWVudCIrYy5zdWJzdHIoMCwxKS50b1VwcGVyQ2FzZSgpK2Muc3Vi
c3RyKDEpXSsicHgiKTtyZXR1cm4gZH07dC5HYj1mdW5jdGlvbihhLGMpe2MuZmlyc3RDaGlsZD9j
Lmluc2VydEJlZm9yZShhLGMuZmlyc3RDaGlsZCk6Yy5hcHBlbmRDaGlsZChhKX07dC5PYT17fTt0
LnY9ZnVuY3Rpb24oYSl7MD09PWEuaW5kZXhPZigiIyIpJiYoYT1hLnNsaWNlKDEpKTtyZXR1cm4g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYSl9Owp0LnlhPWZ1bmN0aW9uKGEsYyl7Yz1jfHxhO3Zh
ciBkPU1hdGguZmxvb3IoYSU2MCksZT1NYXRoLmZsb29yKGEvNjAlNjApLGc9TWF0aC5mbG9vcihh
LzM2MDApLGg9TWF0aC5mbG9vcihjLzYwJTYwKSxqPU1hdGguZmxvb3IoYy8zNjAwKTtpZihpc05h
TihhKXx8SW5maW5pdHk9PT1hKWc9ZT1kPSItIjtnPTA8Z3x8MDxqP2crIjoiOiIiO3JldHVybiBn
KygoKGd8fDEwPD1oKSYmMTA+ZT8iMCIrZTplKSsiOiIpKygxMD5kPyIwIitkOmQpfTt0LmdkPWZ1
bmN0aW9uKCl7ZG9jdW1lbnQuYm9keS5mb2N1cygpO2RvY3VtZW50Lm9uc2VsZWN0c3RhcnQ9cihs
KX07dC5nZT1mdW5jdGlvbigpe2RvY3VtZW50Lm9uc2VsZWN0c3RhcnQ9cihmKX07dC50cmltPWZ1
bmN0aW9uKGEpe3JldHVybihhKyIiKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywiIil9O3Qucm91bmQ9
ZnVuY3Rpb24oYSxjKXtjfHwoYz0wKTtyZXR1cm4gTWF0aC5yb3VuZChhKk1hdGgucG93KDEwLGMp
KS9NYXRoLnBvdygxMCxjKX07CnQuemI9ZnVuY3Rpb24oYSxjKXtyZXR1cm57bGVuZ3RoOjEsc3Rh
cnQ6ZnVuY3Rpb24oKXtyZXR1cm4gYX0sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fX07CnQuZ2V0
PWZ1bmN0aW9uKGEsYyxkLGUpe3ZhciBnLGgsaixuO2Q9ZHx8bSgpOyJ1bmRlZmluZWQiPT09dHlw
ZW9mIFhNTEh0dHBSZXF1ZXN0JiYod2luZG93LlhNTEh0dHBSZXF1ZXN0PWZ1bmN0aW9uKCl7dHJ5
e3JldHVybiBuZXcgd2luZG93LkFjdGl2ZVhPYmplY3QoIk1zeG1sMi5YTUxIVFRQLjYuMCIpfWNh
dGNoKGEpe310cnl7cmV0dXJuIG5ldyB3aW5kb3cuQWN0aXZlWE9iamVjdCgiTXN4bWwyLlhNTEhU
VFAuMy4wIil9Y2F0Y2goYyl7fXRyeXtyZXR1cm4gbmV3IHdpbmRvdy5BY3RpdmVYT2JqZWN0KCJN
c3htbDIuWE1MSFRUUCIpfWNhdGNoKGQpe310aHJvdyBFcnJvcigiVGhpcyBicm93c2VyIGRvZXMg
bm90IHN1cHBvcnQgWE1MSHR0cFJlcXVlc3QuIik7fSk7aD1uZXcgWE1MSHR0cFJlcXVlc3Q7aj10
LlRkKGEpO249d2luZG93LmxvY2F0aW9uO2oucHJvdG9jb2wrai5ob3N0IT09bi5wcm90b2NvbCtu
Lmhvc3QmJndpbmRvdy5YRG9tYWluUmVxdWVzdCYmISgid2l0aENyZWRlbnRpYWxzImluCmgpPyho
PW5ldyB3aW5kb3cuWERvbWFpblJlcXVlc3QsaC5vbmxvYWQ9ZnVuY3Rpb24oKXtjKGgucmVzcG9u
c2VUZXh0KX0saC5vbmVycm9yPWQsaC5vbnByb2dyZXNzPW0oKSxoLm9udGltZW91dD1kKTooZz0i
ZmlsZToiPT1qLnByb3RvY29sfHwiZmlsZToiPT1uLnByb3RvY29sLGgub25yZWFkeXN0YXRlY2hh
bmdlPWZ1bmN0aW9uKCl7ND09PWgucmVhZHlTdGF0ZSYmKDIwMD09PWguc3RhdHVzfHxnJiYwPT09
aC5zdGF0dXM/YyhoLnJlc3BvbnNlVGV4dCk6ZChoLnJlc3BvbnNlVGV4dCkpfSk7dHJ5e2gub3Bl
bigiR0VUIixhLGYpLGUmJihoLndpdGhDcmVkZW50aWFscz1mKX1jYXRjaChxKXtkKHEpO3JldHVy
bn10cnl7aC5zZW5kKCl9Y2F0Y2godyl7ZCh3KX19Owp0LlhkPWZ1bmN0aW9uKGEpe3RyeXt2YXIg
Yz13aW5kb3cubG9jYWxTdG9yYWdlfHxsO2MmJihjLnZvbHVtZT1hKX1jYXRjaChkKXsyMj09ZC5j
b2RlfHwxMDE0PT1kLmNvZGU/dC5sb2coIkxvY2FsU3RvcmFnZSBGdWxsIChWaWRlb0pTKSIsZCk6
MTg9PWQuY29kZT90LmxvZygiTG9jYWxTdG9yYWdlIG5vdCBhbGxvd2VkIChWaWRlb0pTKSIsZCk6
dC5sb2coIkxvY2FsU3RvcmFnZSBFcnJvciAoVmlkZW9KUykiLGQpfX07dC5yYz1mdW5jdGlvbihh
KXthLm1hdGNoKC9eaHR0cHM/OlwvXC8vKXx8KGE9dC5lKCJkaXYiLHtpbm5lckhUTUw6JzxhIGhy
ZWY9IicrYSsnIj54PC9hPid9KS5maXJzdENoaWxkLmhyZWYpO3JldHVybiBhfTsKdC5UZD1mdW5j
dGlvbihhKXt2YXIgYyxkLGUsZztnPSJwcm90b2NvbCBob3N0bmFtZSBwb3J0IHBhdGhuYW1lIHNl
YXJjaCBoYXNoIGhvc3QiLnNwbGl0KCIgIik7ZD10LmUoImEiLHtocmVmOmF9KTtpZihlPSIiPT09
ZC5ob3N0JiYiZmlsZToiIT09ZC5wcm90b2NvbCljPXQuZSgiZGl2IiksYy5pbm5lckhUTUw9Jzxh
IGhyZWY9IicrYSsnIj48L2E+JyxkPWMuZmlyc3RDaGlsZCxjLnNldEF0dHJpYnV0ZSgic3R5bGUi
LCJkaXNwbGF5Om5vbmU7IHBvc2l0aW9uOmFic29sdXRlOyIpLGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoYyk7YT17fTtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKylhW2dbaF1dPWRbZ1toXV07
ZSYmZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChjKTtyZXR1cm4gYX07CmZ1bmN0aW9uIEQoYSxj
KXt2YXIgZCxlO2Q9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYyk7ZT1tKCk7ZT13aW5kb3cu
Y29uc29sZXx8e2xvZzplLHdhcm46ZSxlcnJvcjplfTthP2QudW5zaGlmdChhLnRvVXBwZXJDYXNl
KCkrIjoiKTphPSJsb2ciO3QubG9nLmhpc3RvcnkucHVzaChkKTtkLnVuc2hpZnQoIlZJREVPSlM6
Iik7aWYoZVthXS5hcHBseSllW2FdLmFwcGx5KGUsZCk7ZWxzZSBlW2FdKGQuam9pbigiICIpKX10
LmxvZz1mdW5jdGlvbigpe0Qoayxhcmd1bWVudHMpfTt0LmxvZy5oaXN0b3J5PVtdO3QubG9nLmVy
cm9yPWZ1bmN0aW9uKCl7RCgiZXJyb3IiLGFyZ3VtZW50cyl9O3QubG9nLndhcm49ZnVuY3Rpb24o
KXtEKCJ3YXJuIixhcmd1bWVudHMpfTsKdC51ZD1mdW5jdGlvbihhKXt2YXIgYyxkO2EuZ2V0Qm91
bmRpbmdDbGllbnRSZWN0JiZhLnBhcmVudE5vZGUmJihjPWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCkpO2lmKCFjKXJldHVybntsZWZ0OjAsdG9wOjB9O2E9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50
O2Q9ZG9jdW1lbnQuYm9keTtyZXR1cm57bGVmdDp0LnJvdW5kKGMubGVmdCsod2luZG93LnBhZ2VY
T2Zmc2V0fHxkLnNjcm9sbExlZnQpLShhLmNsaWVudExlZnR8fGQuY2xpZW50TGVmdHx8MCkpLHRv
cDp0LnJvdW5kKGMudG9wKyh3aW5kb3cucGFnZVlPZmZzZXR8fGQuc2Nyb2xsVG9wKS0oYS5jbGll
bnRUb3B8fGQuY2xpZW50VG9wfHwwKSl9fTt0LmhjPXt9O3QuaGMuZm9yRWFjaD1mdW5jdGlvbihh
LGMsZCl7aWYodC5oLmlzQXJyYXkoYSkmJmMgaW5zdGFuY2VvZiBGdW5jdGlvbilmb3IodmFyIGU9
MCxnPWEubGVuZ3RoO2U8ZzsrK2UpYy5jYWxsKGR8fHQsYVtlXSxlLGEpO3JldHVybiBhfTt0Lmdh
PXt9Owp0LmdhLlZhPWZ1bmN0aW9uKGEsYyl7dmFyIGQsZSxnO2E9dC5oLmNvcHkoYSk7Zm9yKGQg
aW4gYyljLmhhc093blByb3BlcnR5KGQpJiYoZT1hW2RdLGc9Y1tkXSxhW2RdPXQuaC5UYShlKSYm
dC5oLlRhKGcpP3QuZ2EuVmEoZSxnKTpjW2RdKTtyZXR1cm4gYX07CnQuYT10LnFhLmV4dGVuZCh7
aTpmdW5jdGlvbihhLGMsZCl7dGhpcy5jPWE7dGhpcy5rPXQuaC5jb3B5KHRoaXMuayk7Yz10aGlz
Lm9wdGlvbnMoYyk7dGhpcy5UPWMuaWR8fChjLmVsJiZjLmVsLmlkP2MuZWwuaWQ6YS5pZCgpKyJf
Y29tcG9uZW50XyIrdC53KyspO3RoaXMuR2Q9Yy5uYW1lfHxrO3RoaXMuYj1jLmVsfHx0aGlzLmUo
KTt0aGlzLk09W107dGhpcy5QYT17fTt0aGlzLlFhPXt9O3RoaXMudWMoKTt0aGlzLkkoZCk7aWYo
Yy5HYyE9PWwpe3ZhciBlLGc7ZT10LmJpbmQodGhpcy5qKCksdGhpcy5qKCkucmVwb3J0VXNlckFj
dGl2aXR5KTt0aGlzLmQoInRvdWNoc3RhcnQiLGZ1bmN0aW9uKCl7ZSgpO2NsZWFySW50ZXJ2YWwo
Zyk7Zz1zZXRJbnRlcnZhbChlLDI1MCl9KTthPWZ1bmN0aW9uKCl7ZSgpO2NsZWFySW50ZXJ2YWwo
Zyl9O3RoaXMuZCgidG91Y2htb3ZlIixlKTt0aGlzLmQoInRvdWNoZW5kIixhKTt0aGlzLmQoInRv
dWNoY2FuY2VsIixhKX19fSk7cz10LmEucHJvdG90eXBlOwpzLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0
aGlzLmwoe3R5cGU6ImRpc3Bvc2UiLGJ1YmJsZXM6bH0pO2lmKHRoaXMuTSlmb3IodmFyIGE9dGhp
cy5NLmxlbmd0aC0xOzA8PWE7YS0tKXRoaXMuTVthXS5kaXNwb3NlJiZ0aGlzLk1bYV0uZGlzcG9z
ZSgpO3RoaXMuUWE9dGhpcy5QYT10aGlzLk09azt0aGlzLm8oKTt0aGlzLmIucGFyZW50Tm9kZSYm
dGhpcy5iLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5iKTt0LkZjKHRoaXMuYik7dGhpcy5i
PWt9O3MuYz1mO3Muaj1wKCJjIik7cy5vcHRpb25zPWZ1bmN0aW9uKGEpe3JldHVybiBhPT09Yj90
aGlzLms6dGhpcy5rPXQuZ2EuVmEodGhpcy5rLGEpfTtzLmU9ZnVuY3Rpb24oYSxjKXtyZXR1cm4g
dC5lKGEsYyl9O3Mucz1mdW5jdGlvbihhKXt2YXIgYz10aGlzLmMubGFuZ3VhZ2UoKSxkPXRoaXMu
Yy5sYW5ndWFnZXMoKTtyZXR1cm4gZCYmZFtjXSYmZFtjXVthXT9kW2NdW2FdOmF9O3Mudj1wKCJi
Iik7CnMuamE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy51fHx0aGlzLmJ9O3MuaWQ9cCgiVCIpO3Mu
bmFtZT1wKCJHZCIpO3MuY2hpbGRyZW49cCgiTSIpO3Mud2Q9ZnVuY3Rpb24oYSl7cmV0dXJuIHRo
aXMuUGFbYV19O3Mua2E9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuUWFbYV19O3MuUT1mdW5jdGlv
bihhLGMpe3ZhciBkLGU7InN0cmluZyI9PT10eXBlb2YgYT8oZT1hLGM9Y3x8e30sZD1jLmNvbXBv
bmVudENsYXNzfHx0LmFhKGUpLGMubmFtZT1lLGQ9bmV3IHdpbmRvdy52aWRlb2pzW2RdKHRoaXMu
Y3x8dGhpcyxjKSk6ZD1hO3RoaXMuTS5wdXNoKGQpOyJmdW5jdGlvbiI9PT10eXBlb2YgZC5pZCYm
KHRoaXMuUGFbZC5pZCgpXT1kKTsoZT1lfHxkLm5hbWUmJmQubmFtZSgpKSYmKHRoaXMuUWFbZV09
ZCk7ImZ1bmN0aW9uIj09PXR5cGVvZiBkLmVsJiZkLmVsKCkmJnRoaXMuamEoKS5hcHBlbmRDaGls
ZChkLmVsKCkpO3JldHVybiBkfTsKcy5yZW1vdmVDaGlsZD1mdW5jdGlvbihhKXsic3RyaW5nIj09
PXR5cGVvZiBhJiYoYT10aGlzLmthKGEpKTtpZihhJiZ0aGlzLk0pe2Zvcih2YXIgYz1sLGQ9dGhp
cy5NLmxlbmd0aC0xOzA8PWQ7ZC0tKWlmKHRoaXMuTVtkXT09PWEpe2M9Zjt0aGlzLk0uc3BsaWNl
KGQsMSk7YnJlYWt9YyYmKHRoaXMuUGFbYS5pZF09ayx0aGlzLlFhW2EubmFtZV09aywoYz1hLnYo
KSkmJmMucGFyZW50Tm9kZT09PXRoaXMuamEoKSYmdGhpcy5qYSgpLnJlbW92ZUNoaWxkKGEudigp
KSl9fTtzLnVjPWZ1bmN0aW9uKCl7dmFyIGEsYyxkLGU7YT10aGlzO2lmKGM9dGhpcy5vcHRpb25z
KCkuY2hpbGRyZW4paWYodC5oLmlzQXJyYXkoYykpZm9yKHZhciBnPTA7ZzxjLmxlbmd0aDtnKysp
ZD1jW2ddLCJzdHJpbmciPT10eXBlb2YgZD8oZT1kLGQ9e30pOmU9ZC5uYW1lLGFbZV09YS5RKGUs
ZCk7ZWxzZSB0LmguWShjLGZ1bmN0aW9uKGMsZCl7ZCE9PWwmJihhW2NdPWEuUShjLGQpKX0pfTtz
LlM9cigiIik7CnMuZD1mdW5jdGlvbihhLGMpe3QuZCh0aGlzLmIsYSx0LmJpbmQodGhpcyxjKSk7
cmV0dXJuIHRoaXN9O3Mubz1mdW5jdGlvbihhLGMpe3Qubyh0aGlzLmIsYSxjKTtyZXR1cm4gdGhp
c307cy5XPWZ1bmN0aW9uKGEsYyl7dC5XKHRoaXMuYixhLHQuYmluZCh0aGlzLGMpKTtyZXR1cm4g
dGhpc307cy5sPWZ1bmN0aW9uKGEpe3QubCh0aGlzLmIsYSk7cmV0dXJuIHRoaXN9O3MuST1mdW5j
dGlvbihhKXthJiYodGhpcy5sYT9hLmNhbGwodGhpcyk6KHRoaXMuYWI9PT1iJiYodGhpcy5hYj1b
XSksdGhpcy5hYi5wdXNoKGEpKSk7cmV0dXJuIHRoaXN9O3MuRmE9ZnVuY3Rpb24oKXt0aGlzLmxh
PWY7dmFyIGE9dGhpcy5hYjtpZihhJiYwPGEubGVuZ3RoKXtmb3IodmFyIGM9MCxkPWEubGVuZ3Ro
O2M8ZDtjKyspYVtjXS5jYWxsKHRoaXMpO3RoaXMuYWI9W107dGhpcy5sKCJyZWFkeSIpfX07cy5u
PWZ1bmN0aW9uKGEpe3Qubih0aGlzLmIsYSk7cmV0dXJuIHRoaXN9OwpzLnA9ZnVuY3Rpb24oYSl7
dC5wKHRoaXMuYixhKTtyZXR1cm4gdGhpc307cy5zaG93PWZ1bmN0aW9uKCl7dGhpcy5iLnN0eWxl
LmRpc3BsYXk9ImJsb2NrIjtyZXR1cm4gdGhpc307cy5WPWZ1bmN0aW9uKCl7dGhpcy5iLnN0eWxl
LmRpc3BsYXk9Im5vbmUiO3JldHVybiB0aGlzfTtmdW5jdGlvbiBFKGEpe2EucCgidmpzLWxvY2st
c2hvd2luZyIpfXMuZGlzYWJsZT1mdW5jdGlvbigpe3RoaXMuVigpO3RoaXMuc2hvdz1tKCl9O3Mu
d2lkdGg9ZnVuY3Rpb24oYSxjKXtyZXR1cm4gRih0aGlzLCJ3aWR0aCIsYSxjKX07cy5oZWlnaHQ9
ZnVuY3Rpb24oYSxjKXtyZXR1cm4gRih0aGlzLCJoZWlnaHQiLGEsYyl9O3MucGQ9ZnVuY3Rpb24o
YSxjKXtyZXR1cm4gdGhpcy53aWR0aChhLGYpLmhlaWdodChjKX07CmZ1bmN0aW9uIEYoYSxjLGQs
ZSl7aWYoZCE9PWIpe2lmKGQ9PT1rfHx0LkFkKGQpKWQ9MDthLmIuc3R5bGVbY109LTEhPT0oIiIr
ZCkuaW5kZXhPZigiJSIpfHwtMSE9PSgiIitkKS5pbmRleE9mKCJweCIpP2Q6ImF1dG8iPT09ZD8i
IjpkKyJweCI7ZXx8YS5sKCJyZXNpemUiKTtyZXR1cm4gYX1pZighYS5iKXJldHVybiAwO2Q9YS5i
LnN0eWxlW2NdO2U9ZC5pbmRleE9mKCJweCIpO3JldHVybi0xIT09ZT9wYXJzZUludChkLnNsaWNl
KDAsZSksMTApOnBhcnNlSW50KGEuYlsib2Zmc2V0Iit0LmFhKGMpXSwxMCl9CmZ1bmN0aW9uIEco
YSl7dmFyIGMsZCxlLGcsaCxqLG4scTtjPTA7ZD1rO2EuZCgidG91Y2hzdGFydCIsZnVuY3Rpb24o
YSl7MT09PWEudG91Y2hlcy5sZW5ndGgmJihkPWEudG91Y2hlc1swXSxjPShuZXcgRGF0ZSkuZ2V0
VGltZSgpLGc9Zil9KTthLmQoInRvdWNobW92ZSIsZnVuY3Rpb24oYSl7MTxhLnRvdWNoZXMubGVu
Z3RoP2c9bDpkJiYoaj1hLnRvdWNoZXNbMF0ucGFnZVgtZC5wYWdlWCxuPWEudG91Y2hlc1swXS5w
YWdlWS1kLnBhZ2VZLHE9TWF0aC5zcXJ0KGoqaituKm4pLDIyPHEmJihnPWwpKX0pO2g9ZnVuY3Rp
b24oKXtnPWx9O2EuZCgidG91Y2hsZWF2ZSIsaCk7YS5kKCJ0b3VjaGNhbmNlbCIsaCk7YS5kKCJ0
b3VjaGVuZCIsZnVuY3Rpb24oYSl7ZD1rO2c9PT1mJiYoZT0obmV3IERhdGUpLmdldFRpbWUoKS1j
LDI1MD5lJiYoYS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMubCgidGFwIikpKX0pfQp0LnQ9dC5hLmV4
dGVuZCh7aTpmdW5jdGlvbihhLGMpe3QuYS5jYWxsKHRoaXMsYSxjKTtHKHRoaXMpO3RoaXMuZCgi
dGFwIix0aGlzLnIpO3RoaXMuZCgiY2xpY2siLHRoaXMucik7dGhpcy5kKCJmb2N1cyIsdGhpcy5Z
YSk7dGhpcy5kKCJibHVyIix0aGlzLlhhKX19KTtzPXQudC5wcm90b3R5cGU7CnMuZT1mdW5jdGlv
bihhLGMpe3ZhciBkO2M9dC5oLnooe2NsYXNzTmFtZTp0aGlzLlMoKSxyb2xlOiJidXR0b24iLCJh
cmlhLWxpdmUiOiJwb2xpdGUiLHRhYkluZGV4OjB9LGMpO2Q9dC5hLnByb3RvdHlwZS5lLmNhbGwo
dGhpcyxhLGMpO2MuaW5uZXJIVE1MfHwodGhpcy51PXQuZSgiZGl2Iix7Y2xhc3NOYW1lOiJ2anMt
Y29udHJvbC1jb250ZW50In0pLHRoaXMueGI9dC5lKCJzcGFuIix7Y2xhc3NOYW1lOiJ2anMtY29u
dHJvbC10ZXh0Iixpbm5lckhUTUw6dGhpcy5zKHRoaXMudGEpfHwiTmVlZCBUZXh0In0pLHRoaXMu
dS5hcHBlbmRDaGlsZCh0aGlzLnhiKSxkLmFwcGVuZENoaWxkKHRoaXMudSkpO3JldHVybiBkfTtz
LlM9ZnVuY3Rpb24oKXtyZXR1cm4idmpzLWNvbnRyb2wgIit0LmEucHJvdG90eXBlLlMuY2FsbCh0
aGlzKX07cy5yPW0oKTtzLllhPWZ1bmN0aW9uKCl7dC5kKGRvY3VtZW50LCJrZXlkb3duIix0LmJp
bmQodGhpcyx0aGlzLmRhKSl9OwpzLmRhPWZ1bmN0aW9uKGEpe2lmKDMyPT1hLndoaWNofHwxMz09
YS53aGljaClhLnByZXZlbnREZWZhdWx0KCksdGhpcy5yKCl9O3MuWGE9ZnVuY3Rpb24oKXt0Lm8o
ZG9jdW1lbnQsImtleWRvd24iLHQuYmluZCh0aGlzLHRoaXMuZGEpKX07CnQuUD10LmEuZXh0ZW5k
KHtpOmZ1bmN0aW9uKGEsYyl7dC5hLmNhbGwodGhpcyxhLGMpO3RoaXMuZmQ9dGhpcy5rYSh0aGlz
LmsuYmFyTmFtZSk7dGhpcy5oYW5kbGU9dGhpcy5rYSh0aGlzLmsuaGFuZGxlTmFtZSk7dGhpcy5k
KCJtb3VzZWRvd24iLHRoaXMuWmEpO3RoaXMuZCgidG91Y2hzdGFydCIsdGhpcy5aYSk7dGhpcy5k
KCJmb2N1cyIsdGhpcy5ZYSk7dGhpcy5kKCJibHVyIix0aGlzLlhhKTt0aGlzLmQoImNsaWNrIix0
aGlzLnIpO3RoaXMuYy5kKCJjb250cm9sc3Zpc2libGUiLHQuYmluZCh0aGlzLHRoaXMudXBkYXRl
KSk7YS5kKHRoaXMuQmMsdC5iaW5kKHRoaXMsdGhpcy51cGRhdGUpKTt0aGlzLlI9e307dGhpcy5S
Lm1vdmU9dC5iaW5kKHRoaXMsdGhpcy4kYSk7dGhpcy5SLmVuZD10LmJpbmQodGhpcyx0aGlzLkxi
KX19KTtzPXQuUC5wcm90b3R5cGU7CnMuZT1mdW5jdGlvbihhLGMpe2M9Y3x8e307Yy5jbGFzc05h
bWUrPSIgdmpzLXNsaWRlciI7Yz10Lmgueih7cm9sZToic2xpZGVyIiwiYXJpYS12YWx1ZW5vdyI6
MCwiYXJpYS12YWx1ZW1pbiI6MCwiYXJpYS12YWx1ZW1heCI6MTAwLHRhYkluZGV4OjB9LGMpO3Jl
dHVybiB0LmEucHJvdG90eXBlLmUuY2FsbCh0aGlzLGEsYyl9O3MuWmE9ZnVuY3Rpb24oYSl7YS5w
cmV2ZW50RGVmYXVsdCgpO3QuZ2QoKTt0aGlzLm4oInZqcy1zbGlkaW5nIik7dC5kKGRvY3VtZW50
LCJtb3VzZW1vdmUiLHRoaXMuUi5tb3ZlKTt0LmQoZG9jdW1lbnQsIm1vdXNldXAiLHRoaXMuUi5l
bmQpO3QuZChkb2N1bWVudCwidG91Y2htb3ZlIix0aGlzLlIubW92ZSk7dC5kKGRvY3VtZW50LCJ0
b3VjaGVuZCIsdGhpcy5SLmVuZCk7dGhpcy4kYShhKX07cy4kYT1tKCk7CnMuTGI9ZnVuY3Rpb24o
KXt0LmdlKCk7dGhpcy5wKCJ2anMtc2xpZGluZyIpO3Qubyhkb2N1bWVudCwibW91c2Vtb3ZlIix0
aGlzLlIubW92ZSxsKTt0Lm8oZG9jdW1lbnQsIm1vdXNldXAiLHRoaXMuUi5lbmQsbCk7dC5vKGRv
Y3VtZW50LCJ0b3VjaG1vdmUiLHRoaXMuUi5tb3ZlLGwpO3Qubyhkb2N1bWVudCwidG91Y2hlbmQi
LHRoaXMuUi5lbmQsbCk7dGhpcy51cGRhdGUoKX07cy51cGRhdGU9ZnVuY3Rpb24oKXtpZih0aGlz
LmIpe3ZhciBhLGM9dGhpcy5GYigpLGQ9dGhpcy5oYW5kbGUsZT10aGlzLmZkO2lzTmFOKGMpJiYo
Yz0wKTthPWM7aWYoZCl7YT10aGlzLmIub2Zmc2V0V2lkdGg7dmFyIGc9ZC52KCkub2Zmc2V0V2lk
dGg7YT1nP2cvYTowO2MqPTEtYTthPWMrYS8yO2QudigpLnN0eWxlLmxlZnQ9dC5yb3VuZCgxMDAq
YywyKSsiJSJ9ZSYmKGUudigpLnN0eWxlLndpZHRoPXQucm91bmQoMTAwKmEsMikrIiUiKX19Owpm
dW5jdGlvbiBIKGEsYyl7dmFyIGQsZSxnLGg7ZD1hLmI7ZT10LnVkKGQpO2g9Zz1kLm9mZnNldFdp
ZHRoO2Q9YS5oYW5kbGU7aWYoYS5vcHRpb25zKCkudmVydGljYWwpcmV0dXJuIGg9ZS50b3AsZT1j
LmNoYW5nZWRUb3VjaGVzP2MuY2hhbmdlZFRvdWNoZXNbMF0ucGFnZVk6Yy5wYWdlWSxkJiYoZD1k
LnYoKS5vZmZzZXRIZWlnaHQsaCs9ZC8yLGctPWQpLE1hdGgubWF4KDAsTWF0aC5taW4oMSwoaC1l
K2cpL2cpKTtnPWUubGVmdDtlPWMuY2hhbmdlZFRvdWNoZXM/Yy5jaGFuZ2VkVG91Y2hlc1swXS5w
YWdlWDpjLnBhZ2VYO2QmJihkPWQudigpLm9mZnNldFdpZHRoLGcrPWQvMixoLT1kKTtyZXR1cm4g
TWF0aC5tYXgoMCxNYXRoLm1pbigxLChlLWcpL2gpKX1zLllhPWZ1bmN0aW9uKCl7dC5kKGRvY3Vt
ZW50LCJrZXl1cCIsdC5iaW5kKHRoaXMsdGhpcy5kYSkpfTsKcy5kYT1mdW5jdGlvbihhKXtpZigz
Nz09YS53aGljaHx8NDA9PWEud2hpY2gpYS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuS2MoKTtlbHNl
IGlmKDM4PT1hLndoaWNofHwzOT09YS53aGljaClhLnByZXZlbnREZWZhdWx0KCksdGhpcy5MYygp
fTtzLlhhPWZ1bmN0aW9uKCl7dC5vKGRvY3VtZW50LCJrZXl1cCIsdC5iaW5kKHRoaXMsdGhpcy5k
YSkpfTtzLnI9ZnVuY3Rpb24oYSl7YS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTthLnByZXZl
bnREZWZhdWx0KCl9O3QuWj10LmEuZXh0ZW5kKCk7dC5aLnByb3RvdHlwZS5kZWZhdWx0VmFsdWU9
MDsKdC5aLnByb3RvdHlwZS5lPWZ1bmN0aW9uKGEsYyl7Yz1jfHx7fTtjLmNsYXNzTmFtZSs9IiB2
anMtc2xpZGVyLWhhbmRsZSI7Yz10Lmgueih7aW5uZXJIVE1MOic8c3BhbiBjbGFzcz0idmpzLWNv
bnRyb2wtdGV4dCI+Jyt0aGlzLmRlZmF1bHRWYWx1ZSsiPC9zcGFuPiJ9LGMpO3JldHVybiB0LmEu
cHJvdG90eXBlLmUuY2FsbCh0aGlzLCJkaXYiLGMpfTt0LmhhPXQuYS5leHRlbmQoKTtmdW5jdGlv
biBjYShhLGMpe2EuUShjKTtjLmQoImNsaWNrIix0LmJpbmQoYSxmdW5jdGlvbigpe0UodGhpcyl9
KSl9CnQuaGEucHJvdG90eXBlLmU9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9wdGlvbnMoKS5rY3x8
InVsIjt0aGlzLnU9dC5lKGEse2NsYXNzTmFtZToidmpzLW1lbnUtY29udGVudCJ9KTthPXQuYS5w
cm90b3R5cGUuZS5jYWxsKHRoaXMsImRpdiIse2FwcGVuZDp0aGlzLnUsY2xhc3NOYW1lOiJ2anMt
bWVudSJ9KTthLmFwcGVuZENoaWxkKHRoaXMudSk7dC5kKGEsImNsaWNrIixmdW5jdGlvbihhKXth
LnByZXZlbnREZWZhdWx0KCk7YS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX0pO3JldHVybiBh
fTt0Lkg9dC50LmV4dGVuZCh7aTpmdW5jdGlvbihhLGMpe3QudC5jYWxsKHRoaXMsYSxjKTt0aGlz
LnNlbGVjdGVkKGMuc2VsZWN0ZWQpfX0pO3QuSC5wcm90b3R5cGUuZT1mdW5jdGlvbihhLGMpe3Jl
dHVybiB0LnQucHJvdG90eXBlLmUuY2FsbCh0aGlzLCJsaSIsdC5oLnooe2NsYXNzTmFtZToidmpz
LW1lbnUtaXRlbSIsaW5uZXJIVE1MOnRoaXMuay5sYWJlbH0sYykpfTsKdC5ILnByb3RvdHlwZS5y
PWZ1bmN0aW9uKCl7dGhpcy5zZWxlY3RlZChmKX07dC5ILnByb3RvdHlwZS5zZWxlY3RlZD1mdW5j
dGlvbihhKXthPyh0aGlzLm4oInZqcy1zZWxlY3RlZCIpLHRoaXMuYi5zZXRBdHRyaWJ1dGUoImFy
aWEtc2VsZWN0ZWQiLGYpKToodGhpcy5wKCJ2anMtc2VsZWN0ZWQiKSx0aGlzLmIuc2V0QXR0cmli
dXRlKCJhcmlhLXNlbGVjdGVkIixsKSl9O3QuSz10LnQuZXh0ZW5kKHtpOmZ1bmN0aW9uKGEsYyl7
dC50LmNhbGwodGhpcyxhLGMpO3RoaXMuQWE9dGhpcy53YSgpO3RoaXMuUSh0aGlzLkFhKTt0aGlz
Lk4mJjA9PT10aGlzLk4ubGVuZ3RoJiZ0aGlzLlYoKTt0aGlzLmQoImtleXVwIix0aGlzLmRhKTt0
aGlzLmIuc2V0QXR0cmlidXRlKCJhcmlhLWhhc3BvcHVwIixmKTt0aGlzLmIuc2V0QXR0cmlidXRl
KCJyb2xlIiwiYnV0dG9uIil9fSk7cz10LksucHJvdG90eXBlO3Muc2E9bDsKcy53YT1mdW5jdGlv
bigpe3ZhciBhPW5ldyB0LmhhKHRoaXMuYyk7dGhpcy5vcHRpb25zKCkudGl0bGUmJmEuamEoKS5h
cHBlbmRDaGlsZCh0LmUoImxpIix7Y2xhc3NOYW1lOiJ2anMtbWVudS10aXRsZSIsaW5uZXJIVE1M
OnQuYWEodGhpcy5vcHRpb25zKCkudGl0bGUpLGRlOi0xfSkpO2lmKHRoaXMuTj10aGlzLmNyZWF0
ZUl0ZW1zKCkpZm9yKHZhciBjPTA7Yzx0aGlzLk4ubGVuZ3RoO2MrKyljYShhLHRoaXMuTltjXSk7
cmV0dXJuIGF9O3MudmE9bSgpO3MuUz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsYXNzTmFtZSsi
IHZqcy1tZW51LWJ1dHRvbiAiK3QudC5wcm90b3R5cGUuUy5jYWxsKHRoaXMpfTtzLllhPW0oKTtz
LlhhPW0oKTtzLnI9ZnVuY3Rpb24oKXt0aGlzLlcoIm1vdXNlb3V0Iix0LmJpbmQodGhpcyxmdW5j
dGlvbigpe0UodGhpcy5BYSk7dGhpcy5iLmJsdXIoKX0pKTt0aGlzLnNhP0kodGhpcyk6Sih0aGlz
KX07CnMuZGE9ZnVuY3Rpb24oYSl7YS5wcmV2ZW50RGVmYXVsdCgpOzMyPT1hLndoaWNofHwxMz09
YS53aGljaD90aGlzLnNhP0kodGhpcyk6Sih0aGlzKToyNz09YS53aGljaCYmdGhpcy5zYSYmSSh0
aGlzKX07ZnVuY3Rpb24gSihhKXthLnNhPWY7YS5BYS5uKCJ2anMtbG9jay1zaG93aW5nIik7YS5i
LnNldEF0dHJpYnV0ZSgiYXJpYS1wcmVzc2VkIixmKTthLk4mJjA8YS5OLmxlbmd0aCYmYS5OWzBd
LnYoKS5mb2N1cygpfWZ1bmN0aW9uIEkoYSl7YS5zYT1sO0UoYS5BYSk7YS5iLnNldEF0dHJpYnV0
ZSgiYXJpYS1wcmVzc2VkIixsKX10LkQ9ZnVuY3Rpb24oYSl7Im51bWJlciI9PT10eXBlb2YgYT90
aGlzLmNvZGU9YToic3RyaW5nIj09PXR5cGVvZiBhP3RoaXMubWVzc2FnZT1hOiJvYmplY3QiPT09
dHlwZW9mIGEmJnQuaC56KHRoaXMsYSk7dGhpcy5tZXNzYWdlfHwodGhpcy5tZXNzYWdlPXQuRC5u
ZFt0aGlzLmNvZGVdfHwiIil9O3QuRC5wcm90b3R5cGUuY29kZT0wOwp0LkQucHJvdG90eXBlLm1l
c3NhZ2U9IiI7dC5ELnByb3RvdHlwZS5zdGF0dXM9azt0LkQuU2E9Ik1FRElBX0VSUl9DVVNUT00g
TUVESUFfRVJSX0FCT1JURUQgTUVESUFfRVJSX05FVFdPUksgTUVESUFfRVJSX0RFQ09ERSBNRURJ
QV9FUlJfU1JDX05PVF9TVVBQT1JURUQgTUVESUFfRVJSX0VOQ1JZUFRFRCIuc3BsaXQoIiAiKTsK
dC5ELm5kPXsxOiJZb3UgYWJvcnRlZCB0aGUgdmlkZW8gcGxheWJhY2siLDI6IkEgbmV0d29yayBl
cnJvciBjYXVzZWQgdGhlIHZpZGVvIGRvd25sb2FkIHRvIGZhaWwgcGFydC13YXkuIiwzOiJUaGUg
dmlkZW8gcGxheWJhY2sgd2FzIGFib3J0ZWQgZHVlIHRvIGEgY29ycnVwdGlvbiBwcm9ibGVtIG9y
IGJlY2F1c2UgdGhlIHZpZGVvIHVzZWQgZmVhdHVyZXMgeW91ciBicm93c2VyIGRpZCBub3Qgc3Vw
cG9ydC4iLDQ6IlRoZSB2aWRlbyBjb3VsZCBub3QgYmUgbG9hZGVkLCBlaXRoZXIgYmVjYXVzZSB0
aGUgc2VydmVyIG9yIG5ldHdvcmsgZmFpbGVkIG9yIGJlY2F1c2UgdGhlIGZvcm1hdCBpcyBub3Qg
c3VwcG9ydGVkLiIsNToiVGhlIHZpZGVvIGlzIGVuY3J5cHRlZCBhbmQgd2UgZG8gbm90IGhhdmUg
dGhlIGtleXMgdG8gZGVjcnlwdCBpdC4ifTtmb3IodmFyIEs9MDtLPHQuRC5TYS5sZW5ndGg7Sysr
KXQuRFt0LkQuU2FbS11dPUssdC5ELnByb3RvdHlwZVt0LkQuU2FbS11dPUs7CnZhciBMLE0sTixP
OwpMPVsicmVxdWVzdEZ1bGxzY3JlZW4gZXhpdEZ1bGxzY3JlZW4gZnVsbHNjcmVlbkVsZW1lbnQg
ZnVsbHNjcmVlbkVuYWJsZWQgZnVsbHNjcmVlbmNoYW5nZSBmdWxsc2NyZWVuZXJyb3IiLnNwbGl0
KCIgIiksIndlYmtpdFJlcXVlc3RGdWxsc2NyZWVuIHdlYmtpdEV4aXRGdWxsc2NyZWVuIHdlYmtp
dEZ1bGxzY3JlZW5FbGVtZW50IHdlYmtpdEZ1bGxzY3JlZW5FbmFibGVkIHdlYmtpdGZ1bGxzY3Jl
ZW5jaGFuZ2Ugd2Via2l0ZnVsbHNjcmVlbmVycm9yIi5zcGxpdCgiICIpLCJ3ZWJraXRSZXF1ZXN0
RnVsbFNjcmVlbiB3ZWJraXRDYW5jZWxGdWxsU2NyZWVuIHdlYmtpdEN1cnJlbnRGdWxsU2NyZWVu
RWxlbWVudCB3ZWJraXRDYW5jZWxGdWxsU2NyZWVuIHdlYmtpdGZ1bGxzY3JlZW5jaGFuZ2Ugd2Vi
a2l0ZnVsbHNjcmVlbmVycm9yIi5zcGxpdCgiICIpLCJtb3pSZXF1ZXN0RnVsbFNjcmVlbiBtb3pD
YW5jZWxGdWxsU2NyZWVuIG1vekZ1bGxTY3JlZW5FbGVtZW50IG1vekZ1bGxTY3JlZW5FbmFibGVk
IG1vemZ1bGxzY3JlZW5jaGFuZ2UgbW96ZnVsbHNjcmVlbmVycm9yIi5zcGxpdCgiICIpLCJtc1Jl
cXVlc3RGdWxsc2NyZWVuIG1zRXhpdEZ1bGxzY3JlZW4gbXNGdWxsc2NyZWVuRWxlbWVudCBtc0Z1
bGxzY3JlZW5FbmFibGVkIE1TRnVsbHNjcmVlbkNoYW5nZSBNU0Z1bGxzY3JlZW5FcnJvciIuc3Bs
aXQoIiAiKV07Ck09TFswXTtmb3IoTz0wO088TC5sZW5ndGg7TysrKWlmKExbT11bMV1pbiBkb2N1
bWVudCl7Tj1MW09dO2JyZWFrfWlmKE4pe3QuT2EuRWI9e307Zm9yKE89MDtPPE4ubGVuZ3RoO08r
Kyl0Lk9hLkViW01bT11dPU5bT119CnQuUGxheWVyPXQuYS5leHRlbmQoe2k6ZnVuY3Rpb24oYSxj
LGQpe3RoaXMuTz1hO2EuaWQ9YS5pZHx8InZqc192aWRlb18iK3QudysrO3RoaXMuZWU9YSYmdC56
YShhKTtjPXQuaC56KGRhKGEpLGMpO3RoaXMuVWE9Yy5sYW5ndWFnZXx8dC5vcHRpb25zLmxhbmd1
YWdlO3RoaXMuRWQ9Yy5sYW5ndWFnZXN8fHQub3B0aW9ucy5sYW5ndWFnZXM7dGhpcy5GPXt9O3Ro
aXMuQ2M9Yy5wb3N0ZXI7dGhpcy55Yj1jLmNvbnRyb2xzO2EuY29udHJvbHM9bDtjLkdjPWw7dC5h
LmNhbGwodGhpcyx0aGlzLGMsZCk7dGhpcy5jb250cm9scygpP3RoaXMubigidmpzLWNvbnRyb2xz
LWVuYWJsZWQiKTp0aGlzLm4oInZqcy1jb250cm9scy1kaXNhYmxlZCIpO3QuQmFbdGhpcy5UXT10
aGlzO2MucGx1Z2lucyYmdC5oLlkoYy5wbHVnaW5zLGZ1bmN0aW9uKGEsYyl7dGhpc1thXShjKX0s
dGhpcyk7dmFyIGUsZyxoLGosbixxO2U9dC5iaW5kKHRoaXMsdGhpcy5yZXBvcnRVc2VyQWN0aXZp
dHkpO3RoaXMuZCgibW91c2Vkb3duIiwKZnVuY3Rpb24oKXtlKCk7Y2xlYXJJbnRlcnZhbChnKTtn
PXNldEludGVydmFsKGUsMjUwKX0pO3RoaXMuZCgibW91c2Vtb3ZlIixmdW5jdGlvbihhKXtpZihh
LnNjcmVlblghPW58fGEuc2NyZWVuWSE9cSluPWEuc2NyZWVuWCxxPWEuc2NyZWVuWSxlKCl9KTt0
aGlzLmQoIm1vdXNldXAiLGZ1bmN0aW9uKCl7ZSgpO2NsZWFySW50ZXJ2YWwoZyl9KTt0aGlzLmQo
ImtleWRvd24iLGUpO3RoaXMuZCgia2V5dXAiLGUpO2g9c2V0SW50ZXJ2YWwodC5iaW5kKHRoaXMs
ZnVuY3Rpb24oKXtpZih0aGlzLnBhKXt0aGlzLnBhPWw7dGhpcy51c2VyQWN0aXZlKGYpO2NsZWFy
VGltZW91dChqKTt2YXIgYT10aGlzLm9wdGlvbnMoKS5pbmFjdGl2aXR5VGltZW91dDswPGEmJihq
PXNldFRpbWVvdXQodC5iaW5kKHRoaXMsZnVuY3Rpb24oKXt0aGlzLnBhfHx0aGlzLnVzZXJBY3Rp
dmUobCl9KSxhKSl9fSksMjUwKTt0aGlzLmQoImRpc3Bvc2UiLGZ1bmN0aW9uKCl7Y2xlYXJJbnRl
cnZhbChoKTtjbGVhclRpbWVvdXQoail9KX19KTsKcz10LlBsYXllci5wcm90b3R5cGU7cy5sYW5n
dWFnZT1mdW5jdGlvbihhKXtpZihhPT09YilyZXR1cm4gdGhpcy5VYTt0aGlzLlVhPWE7cmV0dXJu
IHRoaXN9O3MubGFuZ3VhZ2VzPXAoIkVkIik7cy5rPXQub3B0aW9ucztzLmRpc3Bvc2U9ZnVuY3Rp
b24oKXt0aGlzLmwoImRpc3Bvc2UiKTt0aGlzLm8oImRpc3Bvc2UiKTt0LkJhW3RoaXMuVF09azt0
aGlzLk8mJnRoaXMuTy5wbGF5ZXImJih0aGlzLk8ucGxheWVyPWspO3RoaXMuYiYmdGhpcy5iLnBs
YXllciYmKHRoaXMuYi5wbGF5ZXI9ayk7dGhpcy5tJiZ0aGlzLm0uZGlzcG9zZSgpO3QuYS5wcm90
b3R5cGUuZGlzcG9zZS5jYWxsKHRoaXMpfTsKZnVuY3Rpb24gZGEoYSl7dmFyIGM9e3NvdXJjZXM6
W10sdHJhY2tzOltdfTt0LmgueihjLHQuemEoYSkpO2lmKGEuaGFzQ2hpbGROb2RlcygpKXt2YXIg
ZCxlLGcsaDthPWEuY2hpbGROb2RlcztnPTA7Zm9yKGg9YS5sZW5ndGg7ZzxoO2crKylkPWFbZ10s
ZT1kLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksInNvdXJjZSI9PT1lP2Muc291cmNlcy5wdXNoKHQu
emEoZCkpOiJ0cmFjayI9PT1lJiZjLnRyYWNrcy5wdXNoKHQuemEoZCkpfXJldHVybiBjfQpzLmU9
ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmI9dC5hLnByb3RvdHlwZS5lLmNhbGwodGhpcywiZGl2Iiks
Yz10aGlzLk8sZDtjLnJlbW92ZUF0dHJpYnV0ZSgid2lkdGgiKTtjLnJlbW92ZUF0dHJpYnV0ZSgi
aGVpZ2h0Iik7aWYoYy5oYXNDaGlsZE5vZGVzKCkpe3ZhciBlLGcsaCxqLG47ZT1jLmNoaWxkTm9k
ZXM7Zz1lLmxlbmd0aDtmb3Iobj1bXTtnLS07KWg9ZVtnXSxqPWgubm9kZU5hbWUudG9Mb3dlckNh
c2UoKSwidHJhY2siPT09aiYmbi5wdXNoKGgpO2ZvcihlPTA7ZTxuLmxlbmd0aDtlKyspYy5yZW1v
dmVDaGlsZChuW2VdKX1kPXQuemEoYyk7dC5oLlkoZCxmdW5jdGlvbihjKXthLnNldEF0dHJpYnV0
ZShjLGRbY10pfSk7Yy5pZCs9Il9odG1sNV9hcGkiO2MuY2xhc3NOYW1lPSJ2anMtdGVjaCI7Yy5w
bGF5ZXI9YS5wbGF5ZXI9dGhpczt0aGlzLm4oInZqcy1wYXVzZWQiKTt0aGlzLndpZHRoKHRoaXMu
ay53aWR0aCxmKTt0aGlzLmhlaWdodCh0aGlzLmsuaGVpZ2h0LGYpO2MucGFyZW50Tm9kZSYmCmMu
cGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSxjKTt0LkdiKGMsYSk7dGhpcy5iPWE7dGhpcy5kKCJs
b2Fkc3RhcnQiLHRoaXMuTGQpO3RoaXMuZCgid2FpdGluZyIsdGhpcy5SZCk7dGhpcy5kKFsiY2Fu
cGxheSIsImNhbnBsYXl0aHJvdWdoIiwicGxheWluZyIsImVuZGVkIl0sdGhpcy5RZCk7dGhpcy5k
KCJzZWVraW5nIix0aGlzLk9kKTt0aGlzLmQoInNlZWtlZCIsdGhpcy5OZCk7dGhpcy5kKCJlbmRl
ZCIsdGhpcy5IZCk7dGhpcy5kKCJwbGF5Iix0aGlzLk5iKTt0aGlzLmQoImZpcnN0cGxheSIsdGhp
cy5KZCk7dGhpcy5kKCJwYXVzZSIsdGhpcy5NYik7dGhpcy5kKCJwcm9ncmVzcyIsdGhpcy5NZCk7
dGhpcy5kKCJkdXJhdGlvbmNoYW5nZSIsdGhpcy56Yyk7dGhpcy5kKCJmdWxsc2NyZWVuY2hhbmdl
Iix0aGlzLktkKTtyZXR1cm4gYX07CmZ1bmN0aW9uIFAoYSxjLGQpe2EubSYmKGEubGE9bCxhLm0u
ZGlzcG9zZSgpLGEubT1sKTsiSHRtbDUiIT09YyYmYS5PJiYodC5nLkJiKGEuTyksYS5PPWspO2Eu
ZWI9YzthLmxhPWw7dmFyIGU9dC5oLnooe3NvdXJjZTpkLHBhcmVudEVsOmEuYn0sYS5rW2MudG9M
b3dlckNhc2UoKV0pO2QmJihhLm1jPWQudHlwZSxkLnNyYz09YS5GLnNyYyYmMDxhLkYuY3VycmVu
dFRpbWUmJihlLnN0YXJ0VGltZT1hLkYuY3VycmVudFRpbWUpLGEuRi5zcmM9ZC5zcmMpO2EubT1u
ZXcgd2luZG93LnZpZGVvanNbY10oYSxlKTthLm0uSShmdW5jdGlvbigpe3RoaXMuYy5GYSgpfSl9
cy5MZD1mdW5jdGlvbigpe3RoaXMuZXJyb3Ioayk7dGhpcy5wYXVzZWQoKT8oUSh0aGlzLGwpLHRo
aXMuVygicGxheSIsZnVuY3Rpb24oKXtRKHRoaXMsZil9KSk6dGhpcy5sKCJmaXJzdHBsYXkiKX07
cy50Yz1sOwpmdW5jdGlvbiBRKGEsYyl7YyE9PWImJmEudGMhPT1jJiYoKGEudGM9Yyk/KGEubigi
dmpzLWhhcy1zdGFydGVkIiksYS5sKCJmaXJzdHBsYXkiKSk6YS5wKCJ2anMtaGFzLXN0YXJ0ZWQi
KSl9cy5OYj1mdW5jdGlvbigpe3RoaXMucCgidmpzLXBhdXNlZCIpO3RoaXMubigidmpzLXBsYXlp
bmciKX07cy5SZD1mdW5jdGlvbigpe3RoaXMubigidmpzLXdhaXRpbmciKX07cy5RZD1mdW5jdGlv
bigpe3RoaXMucCgidmpzLXdhaXRpbmciKX07cy5PZD1mdW5jdGlvbigpe3RoaXMubigidmpzLXNl
ZWtpbmciKX07cy5OZD1mdW5jdGlvbigpe3RoaXMucCgidmpzLXNlZWtpbmciKX07cy5KZD1mdW5j
dGlvbigpe3RoaXMuay5zdGFydHRpbWUmJnRoaXMuY3VycmVudFRpbWUodGhpcy5rLnN0YXJ0dGlt
ZSk7dGhpcy5uKCJ2anMtaGFzLXN0YXJ0ZWQiKX07cy5NYj1mdW5jdGlvbigpe3RoaXMucCgidmpz
LXBsYXlpbmciKTt0aGlzLm4oInZqcy1wYXVzZWQiKX07CnMuTWQ9ZnVuY3Rpb24oKXsxPT10aGlz
LmJ1ZmZlcmVkUGVyY2VudCgpJiZ0aGlzLmwoImxvYWRlZGFsbGRhdGEiKX07cy5IZD1mdW5jdGlv
bigpe3RoaXMuay5sb29wJiYodGhpcy5jdXJyZW50VGltZSgwKSx0aGlzLnBsYXkoKSl9O3MuemM9
ZnVuY3Rpb24oKXt2YXIgYT1SKHRoaXMsImR1cmF0aW9uIik7YSYmKDA+YSYmKGE9SW5maW5pdHkp
LHRoaXMuZHVyYXRpb24oYSksSW5maW5pdHk9PT1hP3RoaXMubigidmpzLWxpdmUiKTp0aGlzLnAo
InZqcy1saXZlIikpfTtzLktkPWZ1bmN0aW9uKCl7dGhpcy5pc0Z1bGxzY3JlZW4oKT90aGlzLm4o
InZqcy1mdWxsc2NyZWVuIik6dGhpcy5wKCJ2anMtZnVsbHNjcmVlbiIpfTtmdW5jdGlvbiBTKGEs
YyxkKXtpZihhLm0mJiFhLm0ubGEpYS5tLkkoZnVuY3Rpb24oKXt0aGlzW2NdKGQpfSk7ZWxzZSB0
cnl7YS5tW2NdKGQpfWNhdGNoKGUpe3Rocm93IHQubG9nKGUpLGU7fX0KZnVuY3Rpb24gUihhLGMp
e2lmKGEubSYmYS5tLmxhKXRyeXtyZXR1cm4gYS5tW2NdKCl9Y2F0Y2goZCl7dGhyb3cgYS5tW2Nd
PT09Yj90LmxvZygiVmlkZW8uanM6ICIrYysiIG1ldGhvZCBub3QgZGVmaW5lZCBmb3IgIithLmVi
KyIgcGxheWJhY2sgdGVjaG5vbG9neS4iLGQpOiJUeXBlRXJyb3IiPT1kLm5hbWU/KHQubG9nKCJW
aWRlby5qczogIitjKyIgdW5hdmFpbGFibGUgb24gIithLmViKyIgcGxheWJhY2sgdGVjaG5vbG9n
eSBlbGVtZW50LiIsZCksYS5tLmxhPWwpOnQubG9nKGQpLGQ7fX1zLnBsYXk9ZnVuY3Rpb24oKXtT
KHRoaXMsInBsYXkiKTtyZXR1cm4gdGhpc307cy5wYXVzZT1mdW5jdGlvbigpe1ModGhpcywicGF1
c2UiKTtyZXR1cm4gdGhpc307cy5wYXVzZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gUih0aGlzLCJwYXVz
ZWQiKT09PWw/bDpmfTsKcy5jdXJyZW50VGltZT1mdW5jdGlvbihhKXtyZXR1cm4gYSE9PWI/KFMo
dGhpcywic2V0Q3VycmVudFRpbWUiLGEpLHRoaXMpOnRoaXMuRi5jdXJyZW50VGltZT1SKHRoaXMs
ImN1cnJlbnRUaW1lIil8fDB9O3MuZHVyYXRpb249ZnVuY3Rpb24oYSl7aWYoYSE9PWIpcmV0dXJu
IHRoaXMuRi5kdXJhdGlvbj1wYXJzZUZsb2F0KGEpLHRoaXM7dGhpcy5GLmR1cmF0aW9uPT09YiYm
dGhpcy56YygpO3JldHVybiB0aGlzLkYuZHVyYXRpb258fDB9O3MucmVtYWluaW5nVGltZT1mdW5j
dGlvbigpe3JldHVybiB0aGlzLmR1cmF0aW9uKCktdGhpcy5jdXJyZW50VGltZSgpfTtzLmJ1ZmZl
cmVkPWZ1bmN0aW9uKCl7dmFyIGE9Uih0aGlzLCJidWZmZXJlZCIpO2lmKCFhfHwhYS5sZW5ndGgp
YT10LnpiKDAsMCk7cmV0dXJuIGF9OwpzLmJ1ZmZlcmVkUGVyY2VudD1mdW5jdGlvbigpe3ZhciBh
PXRoaXMuZHVyYXRpb24oKSxjPXRoaXMuYnVmZmVyZWQoKSxkPTAsZSxnO2lmKCFhKXJldHVybiAw
O2Zvcih2YXIgaD0wO2g8Yy5sZW5ndGg7aCsrKWU9Yy5zdGFydChoKSxnPWMuZW5kKGgpLGc+YSYm
KGc9YSksZCs9Zy1lO3JldHVybiBkL2F9O3Mudm9sdW1lPWZ1bmN0aW9uKGEpe2lmKGEhPT1iKXJl
dHVybiBhPU1hdGgubWF4KDAsTWF0aC5taW4oMSxwYXJzZUZsb2F0KGEpKSksdGhpcy5GLnZvbHVt
ZT1hLFModGhpcywic2V0Vm9sdW1lIixhKSx0LlhkKGEpLHRoaXM7YT1wYXJzZUZsb2F0KFIodGhp
cywidm9sdW1lIikpO3JldHVybiBpc05hTihhKT8xOmF9O3MubXV0ZWQ9ZnVuY3Rpb24oYSl7cmV0
dXJuIGEhPT1iPyhTKHRoaXMsInNldE11dGVkIixhKSx0aGlzKTpSKHRoaXMsIm11dGVkIil8fGx9
O3MuRGE9ZnVuY3Rpb24oKXtyZXR1cm4gUih0aGlzLCJzdXBwb3J0c0Z1bGxTY3JlZW4iKXx8bH07
cy52Yz1sOwpzLmlzRnVsbHNjcmVlbj1mdW5jdGlvbihhKXtyZXR1cm4gYSE9PWI/KHRoaXMudmM9
ISFhLHRoaXMpOnRoaXMudmN9O3MucmVxdWVzdEZ1bGxzY3JlZW49ZnVuY3Rpb24oKXt2YXIgYT10
Lk9hLkViO3RoaXMuaXNGdWxsc2NyZWVuKGYpO2E/KHQuZChkb2N1bWVudCxhLmZ1bGxzY3JlZW5j
aGFuZ2UsdC5iaW5kKHRoaXMsZnVuY3Rpb24oYyl7dGhpcy5pc0Z1bGxzY3JlZW4oZG9jdW1lbnRb
YS5mdWxsc2NyZWVuRWxlbWVudF0pO3RoaXMuaXNGdWxsc2NyZWVuKCk9PT1sJiZ0Lm8oZG9jdW1l
bnQsYS5mdWxsc2NyZWVuY2hhbmdlLGFyZ3VtZW50cy5jYWxsZWUpO3RoaXMubCgiZnVsbHNjcmVl
bmNoYW5nZSIpfSkpLHRoaXMuYlthLnJlcXVlc3RGdWxsc2NyZWVuXSgpKTp0aGlzLm0uRGEoKT9T
KHRoaXMsImVudGVyRnVsbFNjcmVlbiIpOih0aGlzLm9jKCksdGhpcy5sKCJmdWxsc2NyZWVuY2hh
bmdlIikpO3JldHVybiB0aGlzfTsKcy5leGl0RnVsbHNjcmVlbj1mdW5jdGlvbigpe3ZhciBhPXQu
T2EuRWI7dGhpcy5pc0Z1bGxzY3JlZW4obCk7aWYoYSlkb2N1bWVudFthLmV4aXRGdWxsc2NyZWVu
XSgpO2Vsc2UgdGhpcy5tLkRhKCk/Uyh0aGlzLCJleGl0RnVsbFNjcmVlbiIpOih0aGlzLkNiKCks
dGhpcy5sKCJmdWxsc2NyZWVuY2hhbmdlIikpO3JldHVybiB0aGlzfTtzLm9jPWZ1bmN0aW9uKCl7
dGhpcy56ZD1mO3RoaXMucWQ9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93
O3QuZChkb2N1bWVudCwia2V5ZG93biIsdC5iaW5kKHRoaXMsdGhpcy5xYykpO2RvY3VtZW50LmRv
Y3VtZW50RWxlbWVudC5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIjt0Lm4oZG9jdW1lbnQuYm9keSwi
dmpzLWZ1bGwtd2luZG93Iik7dGhpcy5sKCJlbnRlckZ1bGxXaW5kb3ciKX07CnMucWM9ZnVuY3Rp
b24oYSl7Mjc9PT1hLmtleUNvZGUmJih0aGlzLmlzRnVsbHNjcmVlbigpPT09Zj90aGlzLmV4aXRG
dWxsc2NyZWVuKCk6dGhpcy5DYigpKX07cy5DYj1mdW5jdGlvbigpe3RoaXMuemQ9bDt0Lm8oZG9j
dW1lbnQsImtleWRvd24iLHRoaXMucWMpO2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5v
dmVyZmxvdz10aGlzLnFkO3QucChkb2N1bWVudC5ib2R5LCJ2anMtZnVsbC13aW5kb3ciKTt0aGlz
LmwoImV4aXRGdWxsV2luZG93Iil9OwpzLnNlbGVjdFNvdXJjZT1mdW5jdGlvbihhKXtmb3IodmFy
IGM9MCxkPXRoaXMuay50ZWNoT3JkZXI7YzxkLmxlbmd0aDtjKyspe3ZhciBlPXQuYWEoZFtjXSks
Zz13aW5kb3cudmlkZW9qc1tlXTtpZihnKXtpZihnLmlzU3VwcG9ydGVkKCkpZm9yKHZhciBoPTAs
aj1hO2g8ai5sZW5ndGg7aCsrKXt2YXIgbj1qW2hdO2lmKGcuY2FuUGxheVNvdXJjZShuKSlyZXR1
cm57c291cmNlOm4sbTplfX19ZWxzZSB0LmxvZy5lcnJvcignVGhlICInK2UrJyIgdGVjaCBpcyB1
bmRlZmluZWQuIFNraXBwZWQgYnJvd3NlciBzdXBwb3J0IGNoZWNrIGZvciB0aGF0IHRlY2guJyl9
cmV0dXJuIGx9OwpzLnNyYz1mdW5jdGlvbihhKXtpZihhPT09YilyZXR1cm4gUih0aGlzLCJzcmMi
KTt0LmguaXNBcnJheShhKT9UKHRoaXMsYSk6InN0cmluZyI9PT10eXBlb2YgYT90aGlzLnNyYyh7
c3JjOmF9KTphIGluc3RhbmNlb2YgT2JqZWN0JiYoYS50eXBlJiYhd2luZG93LnZpZGVvanNbdGhp
cy5lYl0uY2FuUGxheVNvdXJjZShhKT9UKHRoaXMsW2FdKToodGhpcy5GLnNyYz1hLnNyYyx0aGlz
Lm1jPWEudHlwZXx8IiIsdGhpcy5JKGZ1bmN0aW9uKCl7Uyh0aGlzLCJzcmMiLGEuc3JjKTsiYXV0
byI9PXRoaXMuay5wcmVsb2FkJiZ0aGlzLmxvYWQoKTt0aGlzLmsuYXV0b3BsYXkmJnRoaXMucGxh
eSgpfSkpKTtyZXR1cm4gdGhpc307CmZ1bmN0aW9uIFQoYSxjKXt2YXIgZD1hLnNlbGVjdFNvdXJj
ZShjKSxlO2Q/ZC5tPT09YS5lYj9hLnNyYyhkLnNvdXJjZSk6UChhLGQubSxkLnNvdXJjZSk6KGU9
c2V0VGltZW91dCh0LmJpbmQoYSxmdW5jdGlvbigpe3RoaXMuZXJyb3Ioe2NvZGU6NCxtZXNzYWdl
OnRoaXMucyh0aGlzLm9wdGlvbnMoKS5ub3RTdXBwb3J0ZWRNZXNzYWdlKX0pfSksMCksYS5GYSgp
LGEuZCgiZGlzcG9zZSIsZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoZSl9KSl9cy5sb2FkPWZ1bmN0
aW9uKCl7Uyh0aGlzLCJsb2FkIik7cmV0dXJuIHRoaXN9O3MuY3VycmVudFNyYz1mdW5jdGlvbigp
e3JldHVybiBSKHRoaXMsImN1cnJlbnRTcmMiKXx8dGhpcy5GLnNyY3x8IiJ9O3MuUmE9ZnVuY3Rp
b24oKXtyZXR1cm4gdGhpcy5tY3x8IiJ9O3MuQ2E9ZnVuY3Rpb24oYSl7cmV0dXJuIGEhPT1iPyhT
KHRoaXMsInNldFByZWxvYWQiLGEpLHRoaXMuay5wcmVsb2FkPWEsdGhpcyk6Uih0aGlzLCJwcmVs
b2FkIil9OwpzLmF1dG9wbGF5PWZ1bmN0aW9uKGEpe3JldHVybiBhIT09Yj8oUyh0aGlzLCJzZXRB
dXRvcGxheSIsYSksdGhpcy5rLmF1dG9wbGF5PWEsdGhpcyk6Uih0aGlzLCJhdXRvcGxheSIpfTtz
Lmxvb3A9ZnVuY3Rpb24oYSl7cmV0dXJuIGEhPT1iPyhTKHRoaXMsInNldExvb3AiLGEpLHRoaXMu
ay5sb29wPWEsdGhpcyk6Uih0aGlzLCJsb29wIil9O3MucG9zdGVyPWZ1bmN0aW9uKGEpe2lmKGE9
PT1iKXJldHVybiB0aGlzLkNjO3RoaXMuQ2M9YTtTKHRoaXMsInNldFBvc3RlciIsYSk7dGhpcy5s
KCJwb3N0ZXJjaGFuZ2UiKX07CnMuY29udHJvbHM9ZnVuY3Rpb24oYSl7cmV0dXJuIGEhPT1iPyhh
PSEhYSx0aGlzLnliIT09YSYmKCh0aGlzLnliPWEpPyh0aGlzLnAoInZqcy1jb250cm9scy1kaXNh
YmxlZCIpLHRoaXMubigidmpzLWNvbnRyb2xzLWVuYWJsZWQiKSx0aGlzLmwoImNvbnRyb2xzZW5h
YmxlZCIpKToodGhpcy5wKCJ2anMtY29udHJvbHMtZW5hYmxlZCIpLHRoaXMubigidmpzLWNvbnRy
b2xzLWRpc2FibGVkIiksdGhpcy5sKCJjb250cm9sc2Rpc2FibGVkIikpKSx0aGlzKTp0aGlzLnli
fTt0LlBsYXllci5wcm90b3R5cGUuU2I7cz10LlBsYXllci5wcm90b3R5cGU7CnMudXNpbmdOYXRp
dmVDb250cm9scz1mdW5jdGlvbihhKXtyZXR1cm4gYSE9PWI/KGE9ISFhLHRoaXMuU2IhPT1hJiYo
KHRoaXMuU2I9YSk/KHRoaXMubigidmpzLXVzaW5nLW5hdGl2ZS1jb250cm9scyIpLHRoaXMubCgi
dXNpbmduYXRpdmVjb250cm9scyIpKToodGhpcy5wKCJ2anMtdXNpbmctbmF0aXZlLWNvbnRyb2xz
IiksdGhpcy5sKCJ1c2luZ2N1c3RvbWNvbnRyb2xzIikpKSx0aGlzKTp0aGlzLlNifTtzLmNhPWs7
cy5lcnJvcj1mdW5jdGlvbihhKXtpZihhPT09YilyZXR1cm4gdGhpcy5jYTtpZihhPT09aylyZXR1
cm4gdGhpcy5jYT1hLHRoaXMucCgidmpzLWVycm9yIiksdGhpczt0aGlzLmNhPWEgaW5zdGFuY2Vv
ZiB0LkQ/YTpuZXcgdC5EKGEpO3RoaXMubCgiZXJyb3IiKTt0aGlzLm4oInZqcy1lcnJvciIpO3Qu
bG9nLmVycm9yKCIoQ09ERToiK3RoaXMuY2EuY29kZSsiICIrdC5ELlNhW3RoaXMuY2EuY29kZV0r
IikiLHRoaXMuY2EubWVzc2FnZSx0aGlzLmNhKTtyZXR1cm4gdGhpc307CnMuZW5kZWQ9ZnVuY3Rp
b24oKXtyZXR1cm4gUih0aGlzLCJlbmRlZCIpfTtzLnNlZWtpbmc9ZnVuY3Rpb24oKXtyZXR1cm4g
Uih0aGlzLCJzZWVraW5nIil9O3MucGE9ZjtzLnJlcG9ydFVzZXJBY3Rpdml0eT1mdW5jdGlvbigp
e3RoaXMucGE9Zn07cy5SYj1mO3MudXNlckFjdGl2ZT1mdW5jdGlvbihhKXtyZXR1cm4gYSE9PWI/
KGE9ISFhLGEhPT10aGlzLlJiJiYoKHRoaXMuUmI9YSk/KHRoaXMucGE9Zix0aGlzLnAoInZqcy11
c2VyLWluYWN0aXZlIiksdGhpcy5uKCJ2anMtdXNlci1hY3RpdmUiKSx0aGlzLmwoInVzZXJhY3Rp
dmUiKSk6KHRoaXMucGE9bCx0aGlzLm0mJnRoaXMubS5XKCJtb3VzZW1vdmUiLGZ1bmN0aW9uKGEp
e2Euc3RvcFByb3BhZ2F0aW9uKCk7YS5wcmV2ZW50RGVmYXVsdCgpfSksdGhpcy5wKCJ2anMtdXNl
ci1hY3RpdmUiKSx0aGlzLm4oInZqcy11c2VyLWluYWN0aXZlIiksdGhpcy5sKCJ1c2VyaW5hY3Rp
dmUiKSkpLHRoaXMpOnRoaXMuUmJ9OwpzLnBsYXliYWNrUmF0ZT1mdW5jdGlvbihhKXtyZXR1cm4g
YSE9PWI/KFModGhpcywic2V0UGxheWJhY2tSYXRlIixhKSx0aGlzKTp0aGlzLm0mJnRoaXMubS5m
ZWF0dXJlc1BsYXliYWNrUmF0ZT9SKHRoaXMsInBsYXliYWNrUmF0ZSIpOjF9O3QuSWE9dC5hLmV4
dGVuZCgpO3QuSWEucHJvdG90eXBlLms9e3NlOiJwbGF5IixjaGlsZHJlbjp7cGxheVRvZ2dsZTp7
fSxjdXJyZW50VGltZURpc3BsYXk6e30sdGltZURpdmlkZXI6e30sZHVyYXRpb25EaXNwbGF5Ont9
LHJlbWFpbmluZ1RpbWVEaXNwbGF5Ont9LGxpdmVEaXNwbGF5Ont9LHByb2dyZXNzQ29udHJvbDp7
fSxmdWxsc2NyZWVuVG9nZ2xlOnt9LHZvbHVtZUNvbnRyb2w6e30sbXV0ZVRvZ2dsZTp7fSxwbGF5
YmFja1JhdGVNZW51QnV0dG9uOnt9fX07dC5JYS5wcm90b3R5cGUuZT1mdW5jdGlvbigpe3JldHVy
biB0LmUoImRpdiIse2NsYXNzTmFtZToidmpzLWNvbnRyb2wtYmFyIn0pfTsKdC5YYj10LmEuZXh0
ZW5kKHtpOmZ1bmN0aW9uKGEsYyl7dC5hLmNhbGwodGhpcyxhLGMpfX0pO3QuWGIucHJvdG90eXBl
LmU9ZnVuY3Rpb24oKXt2YXIgYT10LmEucHJvdG90eXBlLmUuY2FsbCh0aGlzLCJkaXYiLHtjbGFz
c05hbWU6InZqcy1saXZlLWNvbnRyb2xzIHZqcy1jb250cm9sIn0pO3RoaXMudT10LmUoImRpdiIs
e2NsYXNzTmFtZToidmpzLWxpdmUtZGlzcGxheSIsaW5uZXJIVE1MOic8c3BhbiBjbGFzcz0idmpz
LWNvbnRyb2wtdGV4dCI+Jyt0aGlzLnMoIlN0cmVhbSBUeXBlIikrIjwvc3Bhbj4iK3RoaXMucygi
TElWRSIpLCJhcmlhLWxpdmUiOiJvZmYifSk7YS5hcHBlbmRDaGlsZCh0aGlzLnUpO3JldHVybiBh
fTt0LiRiPXQudC5leHRlbmQoe2k6ZnVuY3Rpb24oYSxjKXt0LnQuY2FsbCh0aGlzLGEsYyk7YS5k
KCJwbGF5Iix0LmJpbmQodGhpcyx0aGlzLk5iKSk7YS5kKCJwYXVzZSIsdC5iaW5kKHRoaXMsdGhp
cy5NYikpfX0pO3M9dC4kYi5wcm90b3R5cGU7cy50YT0iUGxheSI7CnMuUz1mdW5jdGlvbigpe3Jl
dHVybiJ2anMtcGxheS1jb250cm9sICIrdC50LnByb3RvdHlwZS5TLmNhbGwodGhpcyl9O3Mucj1m
dW5jdGlvbigpe3RoaXMuYy5wYXVzZWQoKT90aGlzLmMucGxheSgpOnRoaXMuYy5wYXVzZSgpfTtz
Lk5iPWZ1bmN0aW9uKCl7dC5wKHRoaXMuYiwidmpzLXBhdXNlZCIpO3Qubih0aGlzLmIsInZqcy1w
bGF5aW5nIik7dGhpcy5iLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdLmlubmVySFRNTD10aGlzLnMo
IlBhdXNlIil9O3MuTWI9ZnVuY3Rpb24oKXt0LnAodGhpcy5iLCJ2anMtcGxheWluZyIpO3Qubih0
aGlzLmIsInZqcy1wYXVzZWQiKTt0aGlzLmIuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMF0uaW5uZXJI
VE1MPXRoaXMucygiUGxheSIpfTt0LmhiPXQuYS5leHRlbmQoe2k6ZnVuY3Rpb24oYSxjKXt0LmEu
Y2FsbCh0aGlzLGEsYyk7YS5kKCJ0aW1ldXBkYXRlIix0LmJpbmQodGhpcyx0aGlzLmZhKSl9fSk7
CnQuaGIucHJvdG90eXBlLmU9ZnVuY3Rpb24oKXt2YXIgYT10LmEucHJvdG90eXBlLmUuY2FsbCh0
aGlzLCJkaXYiLHtjbGFzc05hbWU6InZqcy1jdXJyZW50LXRpbWUgdmpzLXRpbWUtY29udHJvbHMg
dmpzLWNvbnRyb2wifSk7dGhpcy51PXQuZSgiZGl2Iix7Y2xhc3NOYW1lOiJ2anMtY3VycmVudC10
aW1lLWRpc3BsYXkiLGlubmVySFRNTDonPHNwYW4gY2xhc3M9InZqcy1jb250cm9sLXRleHQiPkN1
cnJlbnQgVGltZSA8L3NwYW4+MDowMCcsImFyaWEtbGl2ZSI6Im9mZiJ9KTthLmFwcGVuZENoaWxk
KHRoaXMudSk7cmV0dXJuIGF9O3QuaGIucHJvdG90eXBlLmZhPWZ1bmN0aW9uKCl7dmFyIGE9dGhp
cy5jLmJiP3RoaXMuYy5GLmN1cnJlbnRUaW1lOnRoaXMuYy5jdXJyZW50VGltZSgpO3RoaXMudS5p
bm5lckhUTUw9JzxzcGFuIGNsYXNzPSJ2anMtY29udHJvbC10ZXh0Ij4nK3RoaXMucygiQ3VycmVu
dCBUaW1lIikrIjwvc3Bhbj4gIit0LnlhKGEsdGhpcy5jLmR1cmF0aW9uKCkpfTsKdC5pYj10LmEu
ZXh0ZW5kKHtpOmZ1bmN0aW9uKGEsYyl7dC5hLmNhbGwodGhpcyxhLGMpO2EuZCgidGltZXVwZGF0
ZSIsdC5iaW5kKHRoaXMsdGhpcy5mYSkpfX0pO3QuaWIucHJvdG90eXBlLmU9ZnVuY3Rpb24oKXt2
YXIgYT10LmEucHJvdG90eXBlLmUuY2FsbCh0aGlzLCJkaXYiLHtjbGFzc05hbWU6InZqcy1kdXJh
dGlvbiB2anMtdGltZS1jb250cm9scyB2anMtY29udHJvbCJ9KTt0aGlzLnU9dC5lKCJkaXYiLHtj
bGFzc05hbWU6InZqcy1kdXJhdGlvbi1kaXNwbGF5Iixpbm5lckhUTUw6JzxzcGFuIGNsYXNzPSJ2
anMtY29udHJvbC10ZXh0Ij4nK3RoaXMucygiRHVyYXRpb24gVGltZSIpKyI8L3NwYW4+IDA6MDAi
LCJhcmlhLWxpdmUiOiJvZmYifSk7YS5hcHBlbmRDaGlsZCh0aGlzLnUpO3JldHVybiBhfTsKdC5p
Yi5wcm90b3R5cGUuZmE9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmMuZHVyYXRpb24oKTthJiYodGhp
cy51LmlubmVySFRNTD0nPHNwYW4gY2xhc3M9InZqcy1jb250cm9sLXRleHQiPicrdGhpcy5zKCJE
dXJhdGlvbiBUaW1lIikrIjwvc3Bhbj4gIit0LnlhKGEpKX07dC5mYz10LmEuZXh0ZW5kKHtpOmZ1
bmN0aW9uKGEsYyl7dC5hLmNhbGwodGhpcyxhLGMpfX0pO3QuZmMucHJvdG90eXBlLmU9ZnVuY3Rp
b24oKXtyZXR1cm4gdC5hLnByb3RvdHlwZS5lLmNhbGwodGhpcywiZGl2Iix7Y2xhc3NOYW1lOiJ2
anMtdGltZS1kaXZpZGVyIixpbm5lckhUTUw6IjxkaXY+PHNwYW4+Lzwvc3Bhbj48L2Rpdj4ifSl9
O3QucGI9dC5hLmV4dGVuZCh7aTpmdW5jdGlvbihhLGMpe3QuYS5jYWxsKHRoaXMsYSxjKTthLmQo
InRpbWV1cGRhdGUiLHQuYmluZCh0aGlzLHRoaXMuZmEpKX19KTsKdC5wYi5wcm90b3R5cGUuZT1m
dW5jdGlvbigpe3ZhciBhPXQuYS5wcm90b3R5cGUuZS5jYWxsKHRoaXMsImRpdiIse2NsYXNzTmFt
ZToidmpzLXJlbWFpbmluZy10aW1lIHZqcy10aW1lLWNvbnRyb2xzIHZqcy1jb250cm9sIn0pO3Ro
aXMudT10LmUoImRpdiIse2NsYXNzTmFtZToidmpzLXJlbWFpbmluZy10aW1lLWRpc3BsYXkiLGlu
bmVySFRNTDonPHNwYW4gY2xhc3M9InZqcy1jb250cm9sLXRleHQiPicrdGhpcy5zKCJSZW1haW5p
bmcgVGltZSIpKyI8L3NwYW4+IC0wOjAwIiwiYXJpYS1saXZlIjoib2ZmIn0pO2EuYXBwZW5kQ2hp
bGQodGhpcy51KTtyZXR1cm4gYX07dC5wYi5wcm90b3R5cGUuZmE9ZnVuY3Rpb24oKXt0aGlzLmMu
ZHVyYXRpb24oKSYmKHRoaXMudS5pbm5lckhUTUw9JzxzcGFuIGNsYXNzPSJ2anMtY29udHJvbC10
ZXh0Ij4nK3RoaXMucygiUmVtYWluaW5nIFRpbWUiKSsiPC9zcGFuPiAtIit0LnlhKHRoaXMuYy5y
ZW1haW5pbmdUaW1lKCkpKX07CnQuSmE9dC50LmV4dGVuZCh7aTpmdW5jdGlvbihhLGMpe3QudC5j
YWxsKHRoaXMsYSxjKX19KTt0LkphLnByb3RvdHlwZS50YT0iRnVsbHNjcmVlbiI7dC5KYS5wcm90
b3R5cGUuUz1mdW5jdGlvbigpe3JldHVybiJ2anMtZnVsbHNjcmVlbi1jb250cm9sICIrdC50LnBy
b3RvdHlwZS5TLmNhbGwodGhpcyl9O3QuSmEucHJvdG90eXBlLnI9ZnVuY3Rpb24oKXt0aGlzLmMu
aXNGdWxsc2NyZWVuKCk/KHRoaXMuYy5leGl0RnVsbHNjcmVlbigpLHRoaXMueGIuaW5uZXJIVE1M
PXRoaXMucygiRnVsbHNjcmVlbiIpKToodGhpcy5jLnJlcXVlc3RGdWxsc2NyZWVuKCksdGhpcy54
Yi5pbm5lckhUTUw9dGhpcy5zKCJOb24tRnVsbHNjcmVlbiIpKX07dC5vYj10LmEuZXh0ZW5kKHtp
OmZ1bmN0aW9uKGEsYyl7dC5hLmNhbGwodGhpcyxhLGMpfX0pO3Qub2IucHJvdG90eXBlLms9e2No
aWxkcmVuOntzZWVrQmFyOnt9fX07CnQub2IucHJvdG90eXBlLmU9ZnVuY3Rpb24oKXtyZXR1cm4g
dC5hLnByb3RvdHlwZS5lLmNhbGwodGhpcywiZGl2Iix7Y2xhc3NOYW1lOiJ2anMtcHJvZ3Jlc3Mt
Y29udHJvbCB2anMtY29udHJvbCJ9KX07dC5iYz10LlAuZXh0ZW5kKHtpOmZ1bmN0aW9uKGEsYyl7
dC5QLmNhbGwodGhpcyxhLGMpO2EuZCgidGltZXVwZGF0ZSIsdC5iaW5kKHRoaXMsdGhpcy5vYSkp
O2EuSSh0LmJpbmQodGhpcyx0aGlzLm9hKSl9fSk7cz10LmJjLnByb3RvdHlwZTtzLms9e2NoaWxk
cmVuOntsb2FkUHJvZ3Jlc3NCYXI6e30scGxheVByb2dyZXNzQmFyOnt9LHNlZWtIYW5kbGU6e319
LGJhck5hbWU6InBsYXlQcm9ncmVzc0JhciIsaGFuZGxlTmFtZToic2Vla0hhbmRsZSJ9O3MuQmM9
InRpbWV1cGRhdGUiO3MuZT1mdW5jdGlvbigpe3JldHVybiB0LlAucHJvdG90eXBlLmUuY2FsbCh0
aGlzLCJkaXYiLHtjbGFzc05hbWU6InZqcy1wcm9ncmVzcy1ob2xkZXIiLCJhcmlhLWxhYmVsIjoi
dmlkZW8gcHJvZ3Jlc3MgYmFyIn0pfTsKcy5vYT1mdW5jdGlvbigpe3ZhciBhPXRoaXMuYy5iYj90
aGlzLmMuRi5jdXJyZW50VGltZTp0aGlzLmMuY3VycmVudFRpbWUoKTt0aGlzLmIuc2V0QXR0cmli
dXRlKCJhcmlhLXZhbHVlbm93Iix0LnJvdW5kKDEwMCp0aGlzLkZiKCksMikpO3RoaXMuYi5zZXRB
dHRyaWJ1dGUoImFyaWEtdmFsdWV0ZXh0Iix0LnlhKGEsdGhpcy5jLmR1cmF0aW9uKCkpKX07cy5G
Yj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmMuY3VycmVudFRpbWUoKS90aGlzLmMuZHVyYXRpb24o
KX07cy5aYT1mdW5jdGlvbihhKXt0LlAucHJvdG90eXBlLlphLmNhbGwodGhpcyxhKTt0aGlzLmMu
YmI9Zjt0aGlzLmllPSF0aGlzLmMucGF1c2VkKCk7dGhpcy5jLnBhdXNlKCl9O3MuJGE9ZnVuY3Rp
b24oYSl7YT1IKHRoaXMsYSkqdGhpcy5jLmR1cmF0aW9uKCk7YT09dGhpcy5jLmR1cmF0aW9uKCkm
JihhLT0wLjEpO3RoaXMuYy5jdXJyZW50VGltZShhKX07CnMuTGI9ZnVuY3Rpb24oYSl7dC5QLnBy
b3RvdHlwZS5MYi5jYWxsKHRoaXMsYSk7dGhpcy5jLmJiPWw7dGhpcy5pZSYmdGhpcy5jLnBsYXko
KX07cy5MYz1mdW5jdGlvbigpe3RoaXMuYy5jdXJyZW50VGltZSh0aGlzLmMuY3VycmVudFRpbWUo
KSs1KX07cy5LYz1mdW5jdGlvbigpe3RoaXMuYy5jdXJyZW50VGltZSh0aGlzLmMuY3VycmVudFRp
bWUoKS01KX07dC5sYj10LmEuZXh0ZW5kKHtpOmZ1bmN0aW9uKGEsYyl7dC5hLmNhbGwodGhpcyxh
LGMpO2EuZCgicHJvZ3Jlc3MiLHQuYmluZCh0aGlzLHRoaXMudXBkYXRlKSl9fSk7dC5sYi5wcm90
b3R5cGUuZT1mdW5jdGlvbigpe3JldHVybiB0LmEucHJvdG90eXBlLmUuY2FsbCh0aGlzLCJkaXYi
LHtjbGFzc05hbWU6InZqcy1sb2FkLXByb2dyZXNzIixpbm5lckhUTUw6JzxzcGFuIGNsYXNzPSJ2
anMtY29udHJvbC10ZXh0Ij48c3Bhbj4nK3RoaXMucygiTG9hZGVkIikrIjwvc3Bhbj46IDAlPC9z
cGFuPiJ9KX07CnQubGIucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe3ZhciBhLGMsZCxlLGc9
dGhpcy5jLmJ1ZmZlcmVkKCk7YT10aGlzLmMuZHVyYXRpb24oKTt2YXIgaCxqPXRoaXMuYztoPWou
YnVmZmVyZWQoKTtqPWouZHVyYXRpb24oKTtoPWguZW5kKGgubGVuZ3RoLTEpO2g+aiYmKGg9aik7
aj10aGlzLmIuY2hpbGRyZW47dGhpcy5iLnN0eWxlLndpZHRoPTEwMCooaC9hfHwwKSsiJSI7Zm9y
KGE9MDthPGcubGVuZ3RoO2ErKyljPWcuc3RhcnQoYSksZD1nLmVuZChhKSwoZT1qW2FdKXx8KGU9
dGhpcy5iLmFwcGVuZENoaWxkKHQuZSgpKSksZS5zdHlsZS5sZWZ0PTEwMCooYy9ofHwwKSsiJSIs
ZS5zdHlsZS53aWR0aD0xMDAqKChkLWMpL2h8fDApKyIlIjtmb3IoYT1qLmxlbmd0aDthPmcubGVu
Z3RoO2EtLSl0aGlzLmIucmVtb3ZlQ2hpbGQoalthLTFdKX07dC5aYj10LmEuZXh0ZW5kKHtpOmZ1
bmN0aW9uKGEsYyl7dC5hLmNhbGwodGhpcyxhLGMpfX0pOwp0LlpiLnByb3RvdHlwZS5lPWZ1bmN0
aW9uKCl7cmV0dXJuIHQuYS5wcm90b3R5cGUuZS5jYWxsKHRoaXMsImRpdiIse2NsYXNzTmFtZToi
dmpzLXBsYXktcHJvZ3Jlc3MiLGlubmVySFRNTDonPHNwYW4gY2xhc3M9InZqcy1jb250cm9sLXRl
eHQiPjxzcGFuPicrdGhpcy5zKCJQcm9ncmVzcyIpKyI8L3NwYW4+OiAwJTwvc3Bhbj4ifSl9O3Qu
TGE9dC5aLmV4dGVuZCh7aTpmdW5jdGlvbihhLGMpe3QuWi5jYWxsKHRoaXMsYSxjKTthLmQoInRp
bWV1cGRhdGUiLHQuYmluZCh0aGlzLHRoaXMuZmEpKX19KTt0LkxhLnByb3RvdHlwZS5kZWZhdWx0
VmFsdWU9IjAwOjAwIjt0LkxhLnByb3RvdHlwZS5lPWZ1bmN0aW9uKCl7cmV0dXJuIHQuWi5wcm90
b3R5cGUuZS5jYWxsKHRoaXMsImRpdiIse2NsYXNzTmFtZToidmpzLXNlZWstaGFuZGxlIiwiYXJp
YS1saXZlIjoib2ZmIn0pfTsKdC5MYS5wcm90b3R5cGUuZmE9ZnVuY3Rpb24oKXt2YXIgYT10aGlz
LmMuYmI/dGhpcy5jLkYuY3VycmVudFRpbWU6dGhpcy5jLmN1cnJlbnRUaW1lKCk7dGhpcy5iLmlu
bmVySFRNTD0nPHNwYW4gY2xhc3M9InZqcy1jb250cm9sLXRleHQiPicrdC55YShhLHRoaXMuYy5k
dXJhdGlvbigpKSsiPC9zcGFuPiJ9O3QucmI9dC5hLmV4dGVuZCh7aTpmdW5jdGlvbihhLGMpe3Qu
YS5jYWxsKHRoaXMsYSxjKTthLm0mJmEubS5mZWF0dXJlc1ZvbHVtZUNvbnRyb2w9PT1sJiZ0aGlz
Lm4oInZqcy1oaWRkZW4iKTthLmQoImxvYWRzdGFydCIsdC5iaW5kKHRoaXMsZnVuY3Rpb24oKXth
Lm0uZmVhdHVyZXNWb2x1bWVDb250cm9sPT09bD90aGlzLm4oInZqcy1oaWRkZW4iKTp0aGlzLnAo
InZqcy1oaWRkZW4iKX0pKX19KTt0LnJiLnByb3RvdHlwZS5rPXtjaGlsZHJlbjp7dm9sdW1lQmFy
Ont9fX07CnQucmIucHJvdG90eXBlLmU9ZnVuY3Rpb24oKXtyZXR1cm4gdC5hLnByb3RvdHlwZS5l
LmNhbGwodGhpcywiZGl2Iix7Y2xhc3NOYW1lOiJ2anMtdm9sdW1lLWNvbnRyb2wgdmpzLWNvbnRy
b2wifSl9O3QucWI9dC5QLmV4dGVuZCh7aTpmdW5jdGlvbihhLGMpe3QuUC5jYWxsKHRoaXMsYSxj
KTthLmQoInZvbHVtZWNoYW5nZSIsdC5iaW5kKHRoaXMsdGhpcy5vYSkpO2EuSSh0LmJpbmQodGhp
cyx0aGlzLm9hKSl9fSk7cz10LnFiLnByb3RvdHlwZTtzLm9hPWZ1bmN0aW9uKCl7dGhpcy5iLnNl
dEF0dHJpYnV0ZSgiYXJpYS12YWx1ZW5vdyIsdC5yb3VuZCgxMDAqdGhpcy5jLnZvbHVtZSgpLDIp
KTt0aGlzLmIuc2V0QXR0cmlidXRlKCJhcmlhLXZhbHVldGV4dCIsdC5yb3VuZCgxMDAqdGhpcy5j
LnZvbHVtZSgpLDIpKyIlIil9O3Muaz17Y2hpbGRyZW46e3ZvbHVtZUxldmVsOnt9LHZvbHVtZUhh
bmRsZTp7fX0sYmFyTmFtZToidm9sdW1lTGV2ZWwiLGhhbmRsZU5hbWU6InZvbHVtZUhhbmRsZSJ9
OwpzLkJjPSJ2b2x1bWVjaGFuZ2UiO3MuZT1mdW5jdGlvbigpe3JldHVybiB0LlAucHJvdG90eXBl
LmUuY2FsbCh0aGlzLCJkaXYiLHtjbGFzc05hbWU6InZqcy12b2x1bWUtYmFyIiwiYXJpYS1sYWJl
bCI6InZvbHVtZSBsZXZlbCJ9KX07cy4kYT1mdW5jdGlvbihhKXt0aGlzLmMubXV0ZWQoKSYmdGhp
cy5jLm11dGVkKGwpO3RoaXMuYy52b2x1bWUoSCh0aGlzLGEpKX07cy5GYj1mdW5jdGlvbigpe3Jl
dHVybiB0aGlzLmMubXV0ZWQoKT8wOnRoaXMuYy52b2x1bWUoKX07cy5MYz1mdW5jdGlvbigpe3Ro
aXMuYy52b2x1bWUodGhpcy5jLnZvbHVtZSgpKzAuMSl9O3MuS2M9ZnVuY3Rpb24oKXt0aGlzLmMu
dm9sdW1lKHRoaXMuYy52b2x1bWUoKS0wLjEpfTt0LmdjPXQuYS5leHRlbmQoe2k6ZnVuY3Rpb24o
YSxjKXt0LmEuY2FsbCh0aGlzLGEsYyl9fSk7CnQuZ2MucHJvdG90eXBlLmU9ZnVuY3Rpb24oKXty
ZXR1cm4gdC5hLnByb3RvdHlwZS5lLmNhbGwodGhpcywiZGl2Iix7Y2xhc3NOYW1lOiJ2anMtdm9s
dW1lLWxldmVsIixpbm5lckhUTUw6JzxzcGFuIGNsYXNzPSJ2anMtY29udHJvbC10ZXh0Ij48L3Nw
YW4+J30pfTt0LnNiPXQuWi5leHRlbmQoKTt0LnNiLnByb3RvdHlwZS5kZWZhdWx0VmFsdWU9IjAw
OjAwIjt0LnNiLnByb3RvdHlwZS5lPWZ1bmN0aW9uKCl7cmV0dXJuIHQuWi5wcm90b3R5cGUuZS5j
YWxsKHRoaXMsImRpdiIse2NsYXNzTmFtZToidmpzLXZvbHVtZS1oYW5kbGUifSl9Owp0LmlhPXQu
dC5leHRlbmQoe2k6ZnVuY3Rpb24oYSxjKXt0LnQuY2FsbCh0aGlzLGEsYyk7YS5kKCJ2b2x1bWVj
aGFuZ2UiLHQuYmluZCh0aGlzLHRoaXMudXBkYXRlKSk7YS5tJiZhLm0uZmVhdHVyZXNWb2x1bWVD
b250cm9sPT09bCYmdGhpcy5uKCJ2anMtaGlkZGVuIik7YS5kKCJsb2Fkc3RhcnQiLHQuYmluZCh0
aGlzLGZ1bmN0aW9uKCl7YS5tLmZlYXR1cmVzVm9sdW1lQ29udHJvbD09PWw/dGhpcy5uKCJ2anMt
aGlkZGVuIik6dGhpcy5wKCJ2anMtaGlkZGVuIil9KSl9fSk7dC5pYS5wcm90b3R5cGUuZT1mdW5j
dGlvbigpe3JldHVybiB0LnQucHJvdG90eXBlLmUuY2FsbCh0aGlzLCJkaXYiLHtjbGFzc05hbWU6
InZqcy1tdXRlLWNvbnRyb2wgdmpzLWNvbnRyb2wiLGlubmVySFRNTDonPGRpdj48c3BhbiBjbGFz
cz0idmpzLWNvbnRyb2wtdGV4dCI+Jyt0aGlzLnMoIk11dGUiKSsiPC9zcGFuPjwvZGl2PiJ9KX07
CnQuaWEucHJvdG90eXBlLnI9ZnVuY3Rpb24oKXt0aGlzLmMubXV0ZWQodGhpcy5jLm11dGVkKCk/
bDpmKX07dC5pYS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5jLnZvbHVt
ZSgpLGM9MzswPT09YXx8dGhpcy5jLm11dGVkKCk/Yz0wOjAuMzM+YT9jPTE6MC42Nz5hJiYoYz0y
KTt0aGlzLmMubXV0ZWQoKT90aGlzLmIuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMF0uaW5uZXJIVE1M
IT10aGlzLnMoIlVubXV0ZSIpJiYodGhpcy5iLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdLmlubmVy
SFRNTD10aGlzLnMoIlVubXV0ZSIpKTp0aGlzLmIuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMF0uaW5u
ZXJIVE1MIT10aGlzLnMoIk11dGUiKSYmKHRoaXMuYi5jaGlsZHJlblswXS5jaGlsZHJlblswXS5p
bm5lckhUTUw9dGhpcy5zKCJNdXRlIikpO2ZvcihhPTA7ND5hO2ErKyl0LnAodGhpcy5iLCJ2anMt
dm9sLSIrYSk7dC5uKHRoaXMuYiwidmpzLXZvbC0iK2MpfTsKdC5yYT10LksuZXh0ZW5kKHtpOmZ1
bmN0aW9uKGEsYyl7dC5LLmNhbGwodGhpcyxhLGMpO2EuZCgidm9sdW1lY2hhbmdlIix0LmJpbmQo
dGhpcyx0aGlzLnVwZGF0ZSkpO2EubSYmYS5tLmZlYXR1cmVzVm9sdW1lQ29udHJvbD09PWwmJnRo
aXMubigidmpzLWhpZGRlbiIpO2EuZCgibG9hZHN0YXJ0Iix0LmJpbmQodGhpcyxmdW5jdGlvbigp
e2EubS5mZWF0dXJlc1ZvbHVtZUNvbnRyb2w9PT1sP3RoaXMubigidmpzLWhpZGRlbiIpOnRoaXMu
cCgidmpzLWhpZGRlbiIpfSkpO3RoaXMubigidmpzLW1lbnUtYnV0dG9uIil9fSk7dC5yYS5wcm90
b3R5cGUud2E9ZnVuY3Rpb24oKXt2YXIgYT1uZXcgdC5oYSh0aGlzLmMse2tjOiJkaXYifSksYz1u
ZXcgdC5xYih0aGlzLmMsdC5oLnooe3ZlcnRpY2FsOmZ9LHRoaXMuay53ZSkpO2EuUShjKTtyZXR1
cm4gYX07dC5yYS5wcm90b3R5cGUucj1mdW5jdGlvbigpe3QuaWEucHJvdG90eXBlLnIuY2FsbCh0
aGlzKTt0LksucHJvdG90eXBlLnIuY2FsbCh0aGlzKX07CnQucmEucHJvdG90eXBlLmU9ZnVuY3Rp
b24oKXtyZXR1cm4gdC50LnByb3RvdHlwZS5lLmNhbGwodGhpcywiZGl2Iix7Y2xhc3NOYW1lOiJ2
anMtdm9sdW1lLW1lbnUtYnV0dG9uIHZqcy1tZW51LWJ1dHRvbiB2anMtY29udHJvbCIsaW5uZXJI
VE1MOic8ZGl2PjxzcGFuIGNsYXNzPSJ2anMtY29udHJvbC10ZXh0Ij4nK3RoaXMucygiTXV0ZSIp
KyI8L3NwYW4+PC9kaXY+In0pfTt0LnJhLnByb3RvdHlwZS51cGRhdGU9dC5pYS5wcm90b3R5cGUu
dXBkYXRlO3QuYWM9dC5LLmV4dGVuZCh7aTpmdW5jdGlvbihhLGMpe3QuSy5jYWxsKHRoaXMsYSxj
KTt0aGlzLlFjKCk7dGhpcy5QYygpO2EuZCgibG9hZHN0YXJ0Iix0LmJpbmQodGhpcyx0aGlzLlFj
KSk7YS5kKCJyYXRlY2hhbmdlIix0LmJpbmQodGhpcyx0aGlzLlBjKSl9fSk7cz10LmFjLnByb3Rv
dHlwZTsKcy5lPWZ1bmN0aW9uKCl7dmFyIGE9dC5hLnByb3RvdHlwZS5lLmNhbGwodGhpcywiZGl2
Iix7Y2xhc3NOYW1lOiJ2anMtcGxheWJhY2stcmF0ZSB2anMtbWVudS1idXR0b24gdmpzLWNvbnRy
b2wiLGlubmVySFRNTDonPGRpdiBjbGFzcz0idmpzLWNvbnRyb2wtY29udGVudCI+PHNwYW4gY2xh
c3M9InZqcy1jb250cm9sLXRleHQiPicrdGhpcy5zKCJQbGF5YmFjayBSYXRlIikrIjwvc3Bhbj48
L2Rpdj4ifSk7dGhpcy54Yz10LmUoImRpdiIse2NsYXNzTmFtZToidmpzLXBsYXliYWNrLXJhdGUt
dmFsdWUiLGlubmVySFRNTDoxfSk7YS5hcHBlbmRDaGlsZCh0aGlzLnhjKTtyZXR1cm4gYX07cy53
YT1mdW5jdGlvbigpe3ZhciBhPW5ldyB0LmhhKHRoaXMuaigpKSxjPXRoaXMuaigpLm9wdGlvbnMo
KS5wbGF5YmFja1JhdGVzO2lmKGMpZm9yKHZhciBkPWMubGVuZ3RoLTE7MDw9ZDtkLS0pYS5RKG5l
dyB0Lm5iKHRoaXMuaigpLHtyYXRlOmNbZF0rIngifSkpO3JldHVybiBhfTsKcy5vYT1mdW5jdGlv
bigpe3RoaXMudigpLnNldEF0dHJpYnV0ZSgiYXJpYS12YWx1ZW5vdyIsdGhpcy5qKCkucGxheWJh
Y2tSYXRlKCkpfTtzLnI9ZnVuY3Rpb24oKXtmb3IodmFyIGE9dGhpcy5qKCkucGxheWJhY2tSYXRl
KCksYz10aGlzLmooKS5vcHRpb25zKCkucGxheWJhY2tSYXRlcyxkPWNbMF0sZT0wO2U8Yy5sZW5n
dGg7ZSsrKWlmKGNbZV0+YSl7ZD1jW2VdO2JyZWFrfXRoaXMuaigpLnBsYXliYWNrUmF0ZShkKX07
ZnVuY3Rpb24gVShhKXtyZXR1cm4gYS5qKCkubSYmYS5qKCkubS5mZWF0dXJlc1BsYXliYWNrUmF0
ZSYmYS5qKCkub3B0aW9ucygpLnBsYXliYWNrUmF0ZXMmJjA8YS5qKCkub3B0aW9ucygpLnBsYXli
YWNrUmF0ZXMubGVuZ3RofXMuUWM9ZnVuY3Rpb24oKXtVKHRoaXMpP3RoaXMucCgidmpzLWhpZGRl
biIpOnRoaXMubigidmpzLWhpZGRlbiIpfTsKcy5QYz1mdW5jdGlvbigpe1UodGhpcykmJih0aGlz
LnhjLmlubmVySFRNTD10aGlzLmooKS5wbGF5YmFja1JhdGUoKSsieCIpfTt0Lm5iPXQuSC5leHRl
bmQoe2tjOiJidXR0b24iLGk6ZnVuY3Rpb24oYSxjKXt2YXIgZD10aGlzLmxhYmVsPWMucmF0ZSxl
PXRoaXMuRWM9cGFyc2VGbG9hdChkLDEwKTtjLmxhYmVsPWQ7Yy5zZWxlY3RlZD0xPT09ZTt0Lkgu
Y2FsbCh0aGlzLGEsYyk7dGhpcy5qKCkuZCgicmF0ZWNoYW5nZSIsdC5iaW5kKHRoaXMsdGhpcy51
cGRhdGUpKX19KTt0Lm5iLnByb3RvdHlwZS5yPWZ1bmN0aW9uKCl7dC5ILnByb3RvdHlwZS5yLmNh
bGwodGhpcyk7dGhpcy5qKCkucGxheWJhY2tSYXRlKHRoaXMuRWMpfTt0Lm5iLnByb3RvdHlwZS51
cGRhdGU9ZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGVkKHRoaXMuaigpLnBsYXliYWNrUmF0ZSgpPT10
aGlzLkVjKX07CnQuS2E9dC50LmV4dGVuZCh7aTpmdW5jdGlvbihhLGMpe3QudC5jYWxsKHRoaXMs
YSxjKTthLnBvc3RlcigpJiZ0aGlzLnNyYyhhLnBvc3RlcigpKTsoIWEucG9zdGVyKCl8fCFhLmNv
bnRyb2xzKCkpJiZ0aGlzLlYoKTthLmQoInBvc3RlcmNoYW5nZSIsdC5iaW5kKHRoaXMsZnVuY3Rp
b24oKXt0aGlzLnNyYyhhLnBvc3RlcigpKX0pKTthLmQoInBsYXkiLHQuYmluZCh0aGlzLHRoaXMu
VikpfX0pO3ZhciBlYT0iYmFja2dyb3VuZFNpemUiaW4gdC5BLnN0eWxlO3QuS2EucHJvdG90eXBl
LmU9ZnVuY3Rpb24oKXt2YXIgYT10LmUoImRpdiIse2NsYXNzTmFtZToidmpzLXBvc3RlciIsdGFi
SW5kZXg6LTF9KTtlYXx8YS5hcHBlbmRDaGlsZCh0LmUoImltZyIpKTtyZXR1cm4gYX07dC5LYS5w
cm90b3R5cGUuc3JjPWZ1bmN0aW9uKGEpe3ZhciBjPXRoaXMudigpO2EhPT1iJiYoZWE/Yy5zdHls
ZS5iYWNrZ3JvdW5kSW1hZ2U9J3VybCgiJythKyciKSc6Yy5maXJzdENoaWxkLnNyYz1hKX07CnQu
S2EucHJvdG90eXBlLnI9ZnVuY3Rpb24oKXt0aGlzLmooKS5jb250cm9scygpJiZ0aGlzLmMucGxh
eSgpfTt0LlliPXQuYS5leHRlbmQoe2k6ZnVuY3Rpb24oYSxjKXt0LmEuY2FsbCh0aGlzLGEsYyl9
fSk7dC5ZYi5wcm90b3R5cGUuZT1mdW5jdGlvbigpe3JldHVybiB0LmEucHJvdG90eXBlLmUuY2Fs
bCh0aGlzLCJkaXYiLHtjbGFzc05hbWU6InZqcy1sb2FkaW5nLXNwaW5uZXIifSl9O3QuZmI9dC50
LmV4dGVuZCgpO3QuZmIucHJvdG90eXBlLmU9ZnVuY3Rpb24oKXtyZXR1cm4gdC50LnByb3RvdHlw
ZS5lLmNhbGwodGhpcywiZGl2Iix7Y2xhc3NOYW1lOiJ2anMtYmlnLXBsYXktYnV0dG9uIixpbm5l
ckhUTUw6JzxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+JywiYXJpYS1sYWJlbCI6InBs
YXkgdmlkZW8ifSl9O3QuZmIucHJvdG90eXBlLnI9ZnVuY3Rpb24oKXt0aGlzLmMucGxheSgpfTsK
dC5qYj10LmEuZXh0ZW5kKHtpOmZ1bmN0aW9uKGEsYyl7dC5hLmNhbGwodGhpcyxhLGMpO3RoaXMu
dXBkYXRlKCk7YS5kKCJlcnJvciIsdC5iaW5kKHRoaXMsdGhpcy51cGRhdGUpKX19KTt0LmpiLnBy
b3RvdHlwZS5lPWZ1bmN0aW9uKCl7dmFyIGE9dC5hLnByb3RvdHlwZS5lLmNhbGwodGhpcywiZGl2
Iix7Y2xhc3NOYW1lOiJ2anMtZXJyb3ItZGlzcGxheSJ9KTt0aGlzLnU9dC5lKCJkaXYiKTthLmFw
cGVuZENoaWxkKHRoaXMudSk7cmV0dXJuIGF9O3QuamIucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlv
bigpe3RoaXMuaigpLmVycm9yKCkmJih0aGlzLnUuaW5uZXJIVE1MPXRoaXMucyh0aGlzLmooKS5l
cnJvcigpLm1lc3NhZ2UpKX07CnQucT10LmEuZXh0ZW5kKHtpOmZ1bmN0aW9uKGEsYyxkKXtjPWN8
fHt9O2MuR2M9bDt0LmEuY2FsbCh0aGlzLGEsYyxkKTt0aGlzLmZlYXR1cmVzUHJvZ3Jlc3NFdmVu
dHN8fCh0aGlzLnljPWYsdGhpcy5EYz1zZXRJbnRlcnZhbCh0LmJpbmQodGhpcyxmdW5jdGlvbigp
e3ZhciBhPXRoaXMuaigpLmJ1ZmZlcmVkUGVyY2VudCgpO3RoaXMuaGQhPWEmJnRoaXMuaigpLmwo
InByb2dyZXNzIik7dGhpcy5oZD1hOzE9PT1hJiZjbGVhckludGVydmFsKHRoaXMuRGMpfSksNTAw
KSk7dGhpcy5mZWF0dXJlc1RpbWV1cGRhdGVFdmVudHN8fCh0aGlzLktiPWYsdGhpcy5qKCkuZCgi
cGxheSIsdC5iaW5kKHRoaXMsdGhpcy5PYykpLHRoaXMuaigpLmQoInBhdXNlIix0LmJpbmQodGhp
cyx0aGlzLmNiKSksdGhpcy5XKCJ0aW1ldXBkYXRlIixmdW5jdGlvbigpe3RoaXMuZmVhdHVyZXNU
aW1ldXBkYXRlRXZlbnRzPWY7ZmEodGhpcyl9KSk7dmFyIGUsZztnPXRoaXM7ZT10aGlzLmooKTth
PWZ1bmN0aW9uKCl7aWYoZS5jb250cm9scygpJiYKIWUudXNpbmdOYXRpdmVDb250cm9scygpKXt2
YXIgYTtnLmQoIm1vdXNlZG93biIsZy5yKTtnLmQoInRvdWNoc3RhcnQiLGZ1bmN0aW9uKCl7YT10
aGlzLmMudXNlckFjdGl2ZSgpfSk7Zy5kKCJ0b3VjaG1vdmUiLGZ1bmN0aW9uKCl7YSYmdGhpcy5q
KCkucmVwb3J0VXNlckFjdGl2aXR5KCl9KTtnLmQoInRvdWNoZW5kIixmdW5jdGlvbihhKXthLnBy
ZXZlbnREZWZhdWx0KCl9KTtHKGcpO2cuZCgidGFwIixnLlBkKX19O2M9dC5iaW5kKGcsZy5WZCk7
dGhpcy5JKGEpO2UuZCgiY29udHJvbHNlbmFibGVkIixhKTtlLmQoImNvbnRyb2xzZGlzYWJsZWQi
LGMpO3RoaXMuSShmdW5jdGlvbigpe3RoaXMubmV0d29ya1N0YXRlJiYwPHRoaXMubmV0d29ya1N0
YXRlKCkmJnRoaXMuaigpLmwoImxvYWRzdGFydCIpfSl9fSk7cz10LnEucHJvdG90eXBlOwpzLlZk
PWZ1bmN0aW9uKCl7dGhpcy5vKCJ0YXAiKTt0aGlzLm8oInRvdWNoc3RhcnQiKTt0aGlzLm8oInRv
dWNobW92ZSIpO3RoaXMubygidG91Y2hsZWF2ZSIpO3RoaXMubygidG91Y2hjYW5jZWwiKTt0aGlz
Lm8oInRvdWNoZW5kIik7dGhpcy5vKCJjbGljayIpO3RoaXMubygibW91c2Vkb3duIil9O3Mucj1m
dW5jdGlvbihhKXswPT09YS5idXR0b24mJnRoaXMuaigpLmNvbnRyb2xzKCkmJih0aGlzLmooKS5w
YXVzZWQoKT90aGlzLmooKS5wbGF5KCk6dGhpcy5qKCkucGF1c2UoKSl9O3MuUGQ9ZnVuY3Rpb24o
KXt0aGlzLmooKS51c2VyQWN0aXZlKCF0aGlzLmooKS51c2VyQWN0aXZlKCkpfTtmdW5jdGlvbiBm
YShhKXthLktiPWw7YS5jYigpO2EubygicGxheSIsYS5PYyk7YS5vKCJwYXVzZSIsYS5jYil9CnMu
T2M9ZnVuY3Rpb24oKXt0aGlzLmxjJiZ0aGlzLmNiKCk7dGhpcy5sYz1zZXRJbnRlcnZhbCh0LmJp
bmQodGhpcyxmdW5jdGlvbigpe3RoaXMuaigpLmwoInRpbWV1cGRhdGUiKX0pLDI1MCl9O3MuY2I9
ZnVuY3Rpb24oKXtjbGVhckludGVydmFsKHRoaXMubGMpO3RoaXMuaigpLmwoInRpbWV1cGRhdGUi
KX07cy5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy55YyYmKHRoaXMueWM9bCxjbGVhckludGVydmFs
KHRoaXMuRGMpKTt0aGlzLktiJiZmYSh0aGlzKTt0LmEucHJvdG90eXBlLmRpc3Bvc2UuY2FsbCh0
aGlzKX07cy5QYj1mdW5jdGlvbigpe3RoaXMuS2ImJnRoaXMuaigpLmwoInRpbWV1cGRhdGUiKX07
cy5JYz1tKCk7dC5xLnByb3RvdHlwZS5mZWF0dXJlc1ZvbHVtZUNvbnRyb2w9Zjt0LnEucHJvdG90
eXBlLmZlYXR1cmVzRnVsbHNjcmVlblJlc2l6ZT1sO3QucS5wcm90b3R5cGUuZmVhdHVyZXNQbGF5
YmFja1JhdGU9bDsKdC5xLnByb3RvdHlwZS5mZWF0dXJlc1Byb2dyZXNzRXZlbnRzPWw7dC5xLnBy
b3RvdHlwZS5mZWF0dXJlc1RpbWV1cGRhdGVFdmVudHM9bDt0Lm1lZGlhPXt9Owp0Lmc9dC5xLmV4
dGVuZCh7aTpmdW5jdGlvbihhLGMsZCl7dGhpcy5mZWF0dXJlc1ZvbHVtZUNvbnRyb2w9dC5nLmtk
KCk7dGhpcy5mZWF0dXJlc1BsYXliYWNrUmF0ZT10LmcuamQoKTt0aGlzLm1vdmluZ01lZGlhRWxl
bWVudEluRE9NPSF0LldjO3RoaXMuZmVhdHVyZXNQcm9ncmVzc0V2ZW50cz10aGlzLmZlYXR1cmVz
RnVsbHNjcmVlblJlc2l6ZT1mO3QucS5jYWxsKHRoaXMsYSxjLGQpO2ZvcihkPXQuZy5rYi5sZW5n
dGgtMTswPD1kO2QtLSl0LmQodGhpcy5iLHQuZy5rYltkXSx0LmJpbmQodGhpcyx0aGlzLnNkKSk7
aWYoKGM9Yy5zb3VyY2UpJiZ0aGlzLmIuY3VycmVudFNyYyE9PWMuc3JjKXRoaXMuYi5zcmM9Yy5z
cmM7aWYodC5kYyYmYS5vcHRpb25zKCkubmF0aXZlQ29udHJvbHNGb3JUb3VjaCE9PWwpe3ZhciBl
LGcsaCxqO2U9dGhpcztnPXRoaXMuaigpO2M9Zy5jb250cm9scygpO2UuYi5jb250cm9scz0hIWM7
aD1mdW5jdGlvbigpe2UuYi5jb250cm9scz1mfTtqPWZ1bmN0aW9uKCl7ZS5iLmNvbnRyb2xzPQps
fTtnLmQoImNvbnRyb2xzZW5hYmxlZCIsaCk7Zy5kKCJjb250cm9sc2Rpc2FibGVkIixqKTtjPWZ1
bmN0aW9uKCl7Zy5vKCJjb250cm9sc2VuYWJsZWQiLGgpO2cubygiY29udHJvbHNkaXNhYmxlZCIs
ail9O2UuZCgiZGlzcG9zZSIsYyk7Zy5kKCJ1c2luZ2N1c3RvbWNvbnRyb2xzIixjKTtnLnVzaW5n
TmF0aXZlQ29udHJvbHMoZil9YS5JKGZ1bmN0aW9uKCl7dGhpcy5PJiYodGhpcy5rLmF1dG9wbGF5
JiZ0aGlzLnBhdXNlZCgpKSYmKGRlbGV0ZSB0aGlzLk8ucG9zdGVyLHRoaXMucGxheSgpKX0pO3Ro
aXMuRmEoKX19KTtzPXQuZy5wcm90b3R5cGU7cy5kaXNwb3NlPWZ1bmN0aW9uKCl7dC5nLkJiKHRo
aXMuYik7dC5xLnByb3RvdHlwZS5kaXNwb3NlLmNhbGwodGhpcyl9OwpzLmU9ZnVuY3Rpb24oKXt2
YXIgYT10aGlzLmMsYz1hLk8sZDtpZighY3x8dGhpcy5tb3ZpbmdNZWRpYUVsZW1lbnRJbkRPTT09
PWwpYz8oZD1jLmNsb25lTm9kZShsKSx0LmcuQmIoYyksYz1kLGEuTz1rKTooYz10LmUoInZpZGVv
IiksdC5IYyhjLHQuaC56KGEuZWV8fHt9LHtpZDphLmlkKCkrIl9odG1sNV9hcGkiLCJjbGFzcyI6
InZqcy10ZWNoIn0pKSksYy5wbGF5ZXI9YSx0LkdiKGMsYS52KCkpO2Q9WyJhdXRvcGxheSIsInBy
ZWxvYWQiLCJsb29wIiwibXV0ZWQiXTtmb3IodmFyIGU9ZC5sZW5ndGgtMTswPD1lO2UtLSl7dmFy
IGc9ZFtlXSxoPXt9OyJ1bmRlZmluZWQiIT09dHlwZW9mIGEua1tnXSYmKGhbZ109YS5rW2ddKTt0
LkhjKGMsaCl9cmV0dXJuIGN9O3Muc2Q9ZnVuY3Rpb24oYSl7ImVycm9yIj09YS50eXBlJiZ0aGlz
LmVycm9yKCk/dGhpcy5qKCkuZXJyb3IodGhpcy5lcnJvcigpLmNvZGUpOihhLmJ1YmJsZXM9bCx0
aGlzLmooKS5sKGEpKX07cy5wbGF5PWZ1bmN0aW9uKCl7dGhpcy5iLnBsYXkoKX07CnMucGF1c2U9
ZnVuY3Rpb24oKXt0aGlzLmIucGF1c2UoKX07cy5wYXVzZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhp
cy5iLnBhdXNlZH07cy5jdXJyZW50VGltZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmIuY3VycmVu
dFRpbWV9O3MuUGI9ZnVuY3Rpb24oYSl7dHJ5e3RoaXMuYi5jdXJyZW50VGltZT1hfWNhdGNoKGMp
e3QubG9nKGMsIlZpZGVvIGlzIG5vdCByZWFkeS4gKFZpZGVvLmpzKSIpfX07cy5kdXJhdGlvbj1m
dW5jdGlvbigpe3JldHVybiB0aGlzLmIuZHVyYXRpb258fDB9O3MuYnVmZmVyZWQ9ZnVuY3Rpb24o
KXtyZXR1cm4gdGhpcy5iLmJ1ZmZlcmVkfTtzLnZvbHVtZT1mdW5jdGlvbigpe3JldHVybiB0aGlz
LmIudm9sdW1lfTtzLmJlPWZ1bmN0aW9uKGEpe3RoaXMuYi52b2x1bWU9YX07cy5tdXRlZD1mdW5j
dGlvbigpe3JldHVybiB0aGlzLmIubXV0ZWR9O3MuWmQ9ZnVuY3Rpb24oYSl7dGhpcy5iLm11dGVk
PWF9O3Mud2lkdGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5iLm9mZnNldFdpZHRofTsKcy5oZWln
aHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5iLm9mZnNldEhlaWdodH07cy5EYT1mdW5jdGlvbigp
e3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLmIud2Via2l0RW50ZXJGdWxsU2NyZWVuJiYo
L0FuZHJvaWQvLnRlc3QodC5MKXx8IS9DaHJvbWV8TWFjIE9TIFggMTAuNS8udGVzdCh0LkwpKT9m
Omx9O3MubmM9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmI7YS5wYXVzZWQmJmEubmV0d29ya1N0YXRl
PD1hLmplPyh0aGlzLmIucGxheSgpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXthLnBhdXNlKCk7YS53
ZWJraXRFbnRlckZ1bGxTY3JlZW4oKX0sMCkpOmEud2Via2l0RW50ZXJGdWxsU2NyZWVuKCl9O3Mu
dGQ9ZnVuY3Rpb24oKXt0aGlzLmIud2Via2l0RXhpdEZ1bGxTY3JlZW4oKX07cy5zcmM9ZnVuY3Rp
b24oYSl7aWYoYT09PWIpcmV0dXJuIHRoaXMuYi5zcmM7dGhpcy5iLnNyYz1hfTtzLmxvYWQ9ZnVu
Y3Rpb24oKXt0aGlzLmIubG9hZCgpfTtzLmN1cnJlbnRTcmM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhp
cy5iLmN1cnJlbnRTcmN9OwpzLnBvc3Rlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmIucG9zdGVy
fTtzLkljPWZ1bmN0aW9uKGEpe3RoaXMuYi5wb3N0ZXI9YX07cy5DYT1mdW5jdGlvbigpe3JldHVy
biB0aGlzLmIuQ2F9O3MuYWU9ZnVuY3Rpb24oYSl7dGhpcy5iLkNhPWF9O3MuYXV0b3BsYXk9ZnVu
Y3Rpb24oKXtyZXR1cm4gdGhpcy5iLmF1dG9wbGF5fTtzLldkPWZ1bmN0aW9uKGEpe3RoaXMuYi5h
dXRvcGxheT1hfTtzLmNvbnRyb2xzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYi5jb250cm9sc307
cy5sb29wPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYi5sb29wfTtzLllkPWZ1bmN0aW9uKGEpe3Ro
aXMuYi5sb29wPWF9O3MuZXJyb3I9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5iLmVycm9yfTtzLnNl
ZWtpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5iLnNlZWtpbmd9O3MuZW5kZWQ9ZnVuY3Rpb24o
KXtyZXR1cm4gdGhpcy5iLmVuZGVkfTtzLnBsYXliYWNrUmF0ZT1mdW5jdGlvbigpe3JldHVybiB0
aGlzLmIucGxheWJhY2tSYXRlfTsKcy4kZD1mdW5jdGlvbihhKXt0aGlzLmIucGxheWJhY2tSYXRl
PWF9O3MubmV0d29ya1N0YXRlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYi5uZXR3b3JrU3RhdGV9
O3QuZy5pc1N1cHBvcnRlZD1mdW5jdGlvbigpe3RyeXt0LkEudm9sdW1lPTAuNX1jYXRjaChhKXty
ZXR1cm4gbH1yZXR1cm4hIXQuQS5jYW5QbGF5VHlwZX07dC5nLnZiPWZ1bmN0aW9uKGEpe3RyeXty
ZXR1cm4hIXQuQS5jYW5QbGF5VHlwZShhLnR5cGUpfWNhdGNoKGMpe3JldHVybiIifX07dC5nLmtk
PWZ1bmN0aW9uKCl7dmFyIGE9dC5BLnZvbHVtZTt0LkEudm9sdW1lPWEvMiswLjE7cmV0dXJuIGEh
PT10LkEudm9sdW1lfTt0LmcuamQ9ZnVuY3Rpb24oKXt2YXIgYT10LkEucGxheWJhY2tSYXRlO3Qu
QS5wbGF5YmFja1JhdGU9YS8yKzAuMTtyZXR1cm4gYSE9PXQuQS5wbGF5YmFja1JhdGV9O3ZhciBW
LGdhPS9eYXBwbGljYXRpb25cLyg/OngtfHZuZFwuYXBwbGVcLiltcGVndXJsL2ksaGE9L152aWRl
b1wvbXA0L2k7CnQuZy5BYz1mdW5jdGlvbigpezQ8PXQuVGImJihWfHwoVj10LkEuY29uc3RydWN0
b3IucHJvdG90eXBlLmNhblBsYXlUeXBlKSx0LkEuY29uc3RydWN0b3IucHJvdG90eXBlLmNhblBs
YXlUeXBlPWZ1bmN0aW9uKGEpe3JldHVybiBhJiZnYS50ZXN0KGEpPyJtYXliZSI6Vi5jYWxsKHRo
aXMsYSl9KTt0LiRjJiYoVnx8KFY9dC5BLmNvbnN0cnVjdG9yLnByb3RvdHlwZS5jYW5QbGF5VHlw
ZSksdC5BLmNvbnN0cnVjdG9yLnByb3RvdHlwZS5jYW5QbGF5VHlwZT1mdW5jdGlvbihhKXtyZXR1
cm4gYSYmaGEudGVzdChhKT8ibWF5YmUiOlYuY2FsbCh0aGlzLGEpfSl9O3QuZy5oZT1mdW5jdGlv
bigpe3ZhciBhPXQuQS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUuY2FuUGxheVR5cGU7dC5BLmNvbnN0
cnVjdG9yLnByb3RvdHlwZS5jYW5QbGF5VHlwZT1WO1Y9aztyZXR1cm4gYX07dC5nLkFjKCk7dC5n
LmtiPSJsb2Fkc3RhcnQgc3VzcGVuZCBhYm9ydCBlcnJvciBlbXB0aWVkIHN0YWxsZWQgbG9hZGVk
bWV0YWRhdGEgbG9hZGVkZGF0YSBjYW5wbGF5IGNhbnBsYXl0aHJvdWdoIHBsYXlpbmcgd2FpdGlu
ZyBzZWVraW5nIHNlZWtlZCBlbmRlZCBkdXJhdGlvbmNoYW5nZSB0aW1ldXBkYXRlIHByb2dyZXNz
IHBsYXkgcGF1c2UgcmF0ZWNoYW5nZSB2b2x1bWVjaGFuZ2UiLnNwbGl0KCIgIik7CnQuZy5CYj1m
dW5jdGlvbihhKXtpZihhKXthLnBsYXllcj1rO2ZvcihhLnBhcmVudE5vZGUmJmEucGFyZW50Tm9k
ZS5yZW1vdmVDaGlsZChhKTthLmhhc0NoaWxkTm9kZXMoKTspYS5yZW1vdmVDaGlsZChhLmZpcnN0
Q2hpbGQpO2EucmVtb3ZlQXR0cmlidXRlKCJzcmMiKTtpZigiZnVuY3Rpb24iPT09dHlwZW9mIGEu
bG9hZCl0cnl7YS5sb2FkKCl9Y2F0Y2goYyl7fX19Owp0LmY9dC5xLmV4dGVuZCh7aTpmdW5jdGlv
bihhLGMsZCl7dC5xLmNhbGwodGhpcyxhLGMsZCk7dmFyIGU9Yy5zb3VyY2U7ZD1jLnBhcmVudEVs
O3ZhciBnPXRoaXMuYj10LmUoImRpdiIse2lkOmEuaWQoKSsiX3RlbXBfZmxhc2gifSksaD1hLmlk
KCkrIl9mbGFzaF9hcGkiLGo9YS5rLGo9dC5oLnooe3JlYWR5RnVuY3Rpb246InZpZGVvanMuRmxh
c2gub25SZWFkeSIsZXZlbnRQcm94eUZ1bmN0aW9uOiJ2aWRlb2pzLkZsYXNoLm9uRXZlbnQiLGVy
cm9yRXZlbnRQcm94eUZ1bmN0aW9uOiJ2aWRlb2pzLkZsYXNoLm9uRXJyb3IiLGF1dG9wbGF5Omou
YXV0b3BsYXkscHJlbG9hZDpqLkNhLGxvb3A6ai5sb29wLG11dGVkOmoubXV0ZWR9LGMuZmxhc2hW
YXJzKSxuPXQuaC56KHt3bW9kZToib3BhcXVlIixiZ2NvbG9yOiIjMDAwMDAwIn0sYy5wYXJhbXMp
LGg9dC5oLnooe2lkOmgsbmFtZTpoLCJjbGFzcyI6InZqcy10ZWNoIn0sYy5hdHRyaWJ1dGVzKTtl
JiYoZS50eXBlJiZ0LmYuQ2QoZS50eXBlKT8KKGU9dC5mLk1jKGUuc3JjKSxqLnJ0bXBDb25uZWN0
aW9uPWVuY29kZVVSSUNvbXBvbmVudChlLndiKSxqLnJ0bXBTdHJlYW09ZW5jb2RlVVJJQ29tcG9u
ZW50KGUuUWIpKTpqLnNyYz1lbmNvZGVVUklDb21wb25lbnQodC5yYyhlLnNyYykpKTt0LkdiKGcs
ZCk7Yy5zdGFydFRpbWUmJnRoaXMuSShmdW5jdGlvbigpe3RoaXMubG9hZCgpO3RoaXMucGxheSgp
O3RoaXMuY3VycmVudFRpbWUoYy5zdGFydFRpbWUpfSk7dC5WYyYmdGhpcy5JKGZ1bmN0aW9uKCl7
dC5kKHRoaXMudigpLCJtb3VzZW1vdmUiLHQuYmluZCh0aGlzLGZ1bmN0aW9uKCl7dGhpcy5qKCku
bCh7dHlwZToibW91c2Vtb3ZlIixidWJibGVzOmx9KX0pKX0pO2EuZCgic3RhZ2VjbGljayIsYS5y
ZXBvcnRVc2VyQWN0aXZpdHkpO3RoaXMuYj10LmYucmQoYy5zd2YsZyxqLG4saCl9fSk7dC5mLnBy
b3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dC5xLnByb3RvdHlwZS5kaXNwb3NlLmNhbGwodGhp
cyl9Owp0LmYucHJvdG90eXBlLnBsYXk9ZnVuY3Rpb24oKXt0aGlzLmIudmpzX3BsYXkoKX07dC5m
LnByb3RvdHlwZS5wYXVzZT1mdW5jdGlvbigpe3RoaXMuYi52anNfcGF1c2UoKX07dC5mLnByb3Rv
dHlwZS5zcmM9ZnVuY3Rpb24oYSl7aWYoYT09PWIpcmV0dXJuIHRoaXMuY3VycmVudFNyYygpO3Qu
Zi5CZChhKT8oYT10LmYuTWMoYSksdGhpcy50ZShhLndiKSx0aGlzLnVlKGEuUWIpKTooYT10LnJj
KGEpLHRoaXMuYi52anNfc3JjKGEpKTtpZih0aGlzLmMuYXV0b3BsYXkoKSl7dmFyIGM9dGhpcztz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5wbGF5KCl9LDApfX07dC5mLnByb3RvdHlwZS5zZXRDdXJy
ZW50VGltZT1mdW5jdGlvbihhKXt0aGlzLkZkPWE7dGhpcy5iLnZqc19zZXRQcm9wZXJ0eSgiY3Vy
cmVudFRpbWUiLGEpO3QucS5wcm90b3R5cGUuUGIuY2FsbCh0aGlzKX07CnQuZi5wcm90b3R5cGUu
Y3VycmVudFRpbWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZWVraW5nKCk/dGhpcy5GZHx8MDp0
aGlzLmIudmpzX2dldFByb3BlcnR5KCJjdXJyZW50VGltZSIpfTt0LmYucHJvdG90eXBlLmN1cnJl
bnRTcmM9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmIudmpzX2dldFByb3BlcnR5KCJjdXJyZW50U3Jj
Iik7aWYoYT09ayl7dmFyIGM9dGhpcy5ydG1wQ29ubmVjdGlvbigpLGQ9dGhpcy5ydG1wU3RyZWFt
KCk7YyYmZCYmKGE9dC5mLmNlKGMsZCkpfXJldHVybiBhfTt0LmYucHJvdG90eXBlLmxvYWQ9ZnVu
Y3Rpb24oKXt0aGlzLmIudmpzX2xvYWQoKX07dC5mLnByb3RvdHlwZS5wb3N0ZXI9ZnVuY3Rpb24o
KXt0aGlzLmIudmpzX2dldFByb3BlcnR5KCJwb3N0ZXIiKX07dC5mLnByb3RvdHlwZS5zZXRQb3N0
ZXI9bSgpO3QuZi5wcm90b3R5cGUuYnVmZmVyZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdC56YigwLHRo
aXMuYi52anNfZ2V0UHJvcGVydHkoImJ1ZmZlcmVkIikpfTsKdC5mLnByb3RvdHlwZS5EYT1yKGwp
O3QuZi5wcm90b3R5cGUubmM9cihsKTtmdW5jdGlvbiBpYSgpe3ZhciBhPVdbWF0sYz1hLmNoYXJB
dCgwKS50b1VwcGVyQ2FzZSgpK2Euc2xpY2UoMSk7amFbInNldCIrY109ZnVuY3Rpb24oYyl7cmV0
dXJuIHRoaXMuYi52anNfc2V0UHJvcGVydHkoYSxjKX19ZnVuY3Rpb24ga2EoYSl7amFbYV09ZnVu
Y3Rpb24oKXtyZXR1cm4gdGhpcy5iLnZqc19nZXRQcm9wZXJ0eShhKX19CnZhciBqYT10LmYucHJv
dG90eXBlLFc9InJ0bXBDb25uZWN0aW9uIHJ0bXBTdHJlYW0gcHJlbG9hZCBkZWZhdWx0UGxheWJh
Y2tSYXRlIHBsYXliYWNrUmF0ZSBhdXRvcGxheSBsb29wIG1lZGlhR3JvdXAgY29udHJvbGxlciBj
b250cm9scyB2b2x1bWUgbXV0ZWQgZGVmYXVsdE11dGVkIi5zcGxpdCgiICIpLGxhPSJlcnJvciBu
ZXR3b3JrU3RhdGUgcmVhZHlTdGF0ZSBzZWVraW5nIGluaXRpYWxUaW1lIGR1cmF0aW9uIHN0YXJ0
T2Zmc2V0VGltZSBwYXVzZWQgcGxheWVkIHNlZWthYmxlIGVuZGVkIHZpZGVvVHJhY2tzIGF1ZGlv
VHJhY2tzIHZpZGVvV2lkdGggdmlkZW9IZWlnaHQgdGV4dFRyYWNrcyIuc3BsaXQoIiAiKSxYO2Zv
cihYPTA7WDxXLmxlbmd0aDtYKyspa2EoV1tYXSksaWEoKTtmb3IoWD0wO1g8bGEubGVuZ3RoO1gr
KylrYShsYVtYXSk7dC5mLmlzU3VwcG9ydGVkPWZ1bmN0aW9uKCl7cmV0dXJuIDEwPD10LmYudmVy
c2lvbigpWzBdfTsKdC5mLnZiPWZ1bmN0aW9uKGEpe2lmKCFhLnR5cGUpcmV0dXJuIiI7YT1hLnR5
cGUucmVwbGFjZSgvOy4qLywiIikudG9Mb3dlckNhc2UoKTtpZihhIGluIHQuZi52ZHx8YSBpbiB0
LmYuTmMpcmV0dXJuIm1heWJlIn07dC5mLnZkPXsidmlkZW8vZmx2IjoiRkxWIiwidmlkZW8veC1m
bHYiOiJGTFYiLCJ2aWRlby9tcDQiOiJNUDQiLCJ2aWRlby9tNHYiOiJNUDQifTt0LmYuTmM9eyJy
dG1wL21wNCI6Ik1QNCIsInJ0bXAvZmx2IjoiRkxWIn07dC5mLm9uUmVhZHk9ZnVuY3Rpb24oYSl7
dmFyIGM7aWYoYz0oYT10LnYoYSkpJiZhLnBhcmVudE5vZGUmJmEucGFyZW50Tm9kZS5wbGF5ZXIp
YS5wbGF5ZXI9Yyx0LmYuY2hlY2tSZWFkeShjLm0pfTt0LmYuY2hlY2tSZWFkeT1mdW5jdGlvbihh
KXthLnYoKSYmKGEudigpLnZqc19nZXRQcm9wZXJ0eT9hLkZhKCk6c2V0VGltZW91dChmdW5jdGlv
bigpe3QuZi5jaGVja1JlYWR5KGEpfSw1MCkpfTt0LmYub25FdmVudD1mdW5jdGlvbihhLGMpe3Qu
dihhKS5wbGF5ZXIubChjKX07CnQuZi5vbkVycm9yPWZ1bmN0aW9uKGEsYyl7dmFyIGQ9dC52KGEp
LnBsYXllcixlPSJGTEFTSDogIitjOyJzcmNub3Rmb3VuZCI9PWM/ZC5lcnJvcih7Y29kZTo0LG1l
c3NhZ2U6ZX0pOmQuZXJyb3IoZSl9O3QuZi52ZXJzaW9uPWZ1bmN0aW9uKCl7dmFyIGE9IjAsMCww
Ijt0cnl7YT0obmV3IHdpbmRvdy5BY3RpdmVYT2JqZWN0KCJTaG9ja3dhdmVGbGFzaC5TaG9ja3dh
dmVGbGFzaCIpKS5HZXRWYXJpYWJsZSgiJHZlcnNpb24iKS5yZXBsYWNlKC9cRCsvZywiLCIpLm1h
dGNoKC9eLD8oLispLD8kLylbMV19Y2F0Y2goYyl7dHJ5e25hdmlnYXRvci5taW1lVHlwZXNbImFw
cGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoIl0uZW5hYmxlZFBsdWdpbiYmKGE9KG5hdmlnYXRv
ci5wbHVnaW5zWyJTaG9ja3dhdmUgRmxhc2ggMi4wIl18fG5hdmlnYXRvci5wbHVnaW5zWyJTaG9j
a3dhdmUgRmxhc2giXSkuZGVzY3JpcHRpb24ucmVwbGFjZSgvXEQrL2csIiwiKS5tYXRjaCgvXiw/
KC4rKSw/JC8pWzFdKX1jYXRjaChkKXt9fXJldHVybiBhLnNwbGl0KCIsIil9Owp0LmYucmQ9ZnVu
Y3Rpb24oYSxjLGQsZSxnKXthPXQuZi54ZChhLGQsZSxnKTthPXQuZSgiZGl2Iix7aW5uZXJIVE1M
OmF9KS5jaGlsZE5vZGVzWzBdO2Q9Yy5wYXJlbnROb2RlO2MucGFyZW50Tm9kZS5yZXBsYWNlQ2hp
bGQoYSxjKTt2YXIgaD1kLmNoaWxkTm9kZXNbMF07c2V0VGltZW91dChmdW5jdGlvbigpe2guc3R5
bGUuZGlzcGxheT0iYmxvY2sifSwxRTMpO3JldHVybiBhfTsKdC5mLnhkPWZ1bmN0aW9uKGEsYyxk
LGUpe3ZhciBnPSIiLGg9IiIsaj0iIjtjJiZ0LmguWShjLGZ1bmN0aW9uKGEsYyl7Zys9YSsiPSIr
YysiJmFtcDsifSk7ZD10Lmgueih7bW92aWU6YSxmbGFzaHZhcnM6ZyxhbGxvd1NjcmlwdEFjY2Vz
czoiYWx3YXlzIixhbGxvd05ldHdvcmtpbmc6ImFsbCJ9LGQpO3QuaC5ZKGQsZnVuY3Rpb24oYSxj
KXtoKz0nPHBhcmFtIG5hbWU9IicrYSsnIiB2YWx1ZT0iJytjKyciIC8+J30pO2U9dC5oLnooe2Rh
dGE6YSx3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIn0sZSk7dC5oLlkoZSxmdW5jdGlvbihhLGMp
e2orPWErJz0iJytjKyciICd9KTtyZXR1cm4nPG9iamVjdCB0eXBlPSJhcHBsaWNhdGlvbi94LXNo
b2Nrd2F2ZS1mbGFzaCInK2orIj4iK2grIjwvb2JqZWN0PiJ9O3QuZi5jZT1mdW5jdGlvbihhLGMp
e3JldHVybiBhKyImIitjfTsKdC5mLk1jPWZ1bmN0aW9uKGEpe3ZhciBjPXt3YjoiIixRYjoiIn07
aWYoIWEpcmV0dXJuIGM7dmFyIGQ9YS5pbmRleE9mKCImIiksZTstMSE9PWQ/ZT1kKzE6KGQ9ZT1h
Lmxhc3RJbmRleE9mKCIvIikrMSwwPT09ZCYmKGQ9ZT1hLmxlbmd0aCkpO2Mud2I9YS5zdWJzdHJp
bmcoMCxkKTtjLlFiPWEuc3Vic3RyaW5nKGUsYS5sZW5ndGgpO3JldHVybiBjfTt0LmYuQ2Q9ZnVu
Y3Rpb24oYSl7cmV0dXJuIGEgaW4gdC5mLk5jfTt0LmYuYmQ9L15ydG1wW3NldF0/OlwvXC8vaTt0
LmYuQmQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHQuZi5iZC50ZXN0KGEpfTsKdC5hZD10LmEuZXh0ZW5k
KHtpOmZ1bmN0aW9uKGEsYyxkKXt0LmEuY2FsbCh0aGlzLGEsYyxkKTtpZighYS5rLnNvdXJjZXN8
fDA9PT1hLmsuc291cmNlcy5sZW5ndGgpe2M9MDtmb3IoZD1hLmsudGVjaE9yZGVyO2M8ZC5sZW5n
dGg7YysrKXt2YXIgZT10LmFhKGRbY10pLGc9d2luZG93LnZpZGVvanNbZV07aWYoZyYmZy5pc1N1
cHBvcnRlZCgpKXtQKGEsZSk7YnJlYWt9fX1lbHNlIGEuc3JjKGEuay5zb3VyY2VzKX19KTt0LlBs
YXllci5wcm90b3R5cGUudGV4dFRyYWNrcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkVhPXRoaXMu
RWF8fFtdfTsKZnVuY3Rpb24gbWEoYSxjLGQsZSxnKXt2YXIgaD1hLkVhPWEuRWF8fFtdO2c9Z3x8
e307Zy5raW5kPWM7Zy5sYWJlbD1kO2cubGFuZ3VhZ2U9ZTtjPXQuYWEoY3x8InN1YnRpdGxlcyIp
O3ZhciBqPW5ldyB3aW5kb3cudmlkZW9qc1tjKyJUcmFjayJdKGEsZyk7aC5wdXNoKGopO2ouQWIo
KSYmYS5JKGZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpe1koai5qKCksai5pZCgpKX0s
MCl9KX1mdW5jdGlvbiBZKGEsYyxkKXtmb3IodmFyIGU9YS5FYSxnPTAsaD1lLmxlbmd0aCxqLG47
ZzxoO2crKylqPWVbZ10sai5pZCgpPT09Yz8oai5zaG93KCksbj1qKTpkJiYoai5KKCk9PWQmJjA8
ai5tb2RlKCkpJiZqLmRpc2FibGUoKTsoYz1uP24uSigpOmQ/ZDpsKSYmYS5sKGMrInRyYWNrY2hh
bmdlIil9CnQuQj10LmEuZXh0ZW5kKHtpOmZ1bmN0aW9uKGEsYyl7dC5hLmNhbGwodGhpcyxhLGMp
O3RoaXMuVD1jLmlkfHwidmpzXyIrYy5raW5kKyJfIitjLmxhbmd1YWdlKyJfIit0LncrKzt0aGlz
LkpjPWMuc3JjO3RoaXMub2Q9Y1siZGVmYXVsdCJdfHxjLmRmbHQ7dGhpcy5mZT1jLnRpdGxlO3Ro
aXMuVWE9Yy5zcmNsYW5nO3RoaXMuRGQ9Yy5sYWJlbDt0aGlzLmJhPVtdO3RoaXMudGI9W107dGhp
cy5tYT10aGlzLm5hPTA7dGhpcy5jLmQoImZ1bGxzY3JlZW5jaGFuZ2UiLHQuYmluZCh0aGlzLHRo
aXMuZWQpKX19KTtzPXQuQi5wcm90b3R5cGU7cy5KPXAoIkciKTtzLnNyYz1wKCJKYyIpO3MuQWI9
cCgib2QiKTtzLnRpdGxlPXAoImZlIik7cy5sYW5ndWFnZT1wKCJVYSIpO3MubGFiZWw9cCgiRGQi
KTtzLmxkPXAoImJhIik7cy5jZD1wKCJ0YiIpO3MucmVhZHlTdGF0ZT1wKCJuYSIpO3MubW9kZT1w
KCJtYSIpOwpzLmVkPWZ1bmN0aW9uKCl7dGhpcy5iLnN0eWxlLmZvbnRTaXplPXRoaXMuYy5pc0Z1
bGxzY3JlZW4oKT8xNDAqKHNjcmVlbi53aWR0aC90aGlzLmMud2lkdGgoKSkrIiUiOiIifTtzLmU9
ZnVuY3Rpb24oKXtyZXR1cm4gdC5hLnByb3RvdHlwZS5lLmNhbGwodGhpcywiZGl2Iix7Y2xhc3NO
YW1lOiJ2anMtIit0aGlzLkcrIiB2anMtdGV4dC10cmFjayJ9KX07cy5zaG93PWZ1bmN0aW9uKCl7
bmEodGhpcyk7dGhpcy5tYT0yO3QuYS5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMpfTtzLlY9ZnVu
Y3Rpb24oKXtuYSh0aGlzKTt0aGlzLm1hPTE7dC5hLnByb3RvdHlwZS5WLmNhbGwodGhpcyl9Owpz
LmRpc2FibGU9ZnVuY3Rpb24oKXsyPT10aGlzLm1hJiZ0aGlzLlYoKTt0aGlzLmMubygidGltZXVw
ZGF0ZSIsdC5iaW5kKHRoaXMsdGhpcy51cGRhdGUsdGhpcy5UKSk7dGhpcy5jLm8oImVuZGVkIix0
LmJpbmQodGhpcyx0aGlzLnJlc2V0LHRoaXMuVCkpO3RoaXMucmVzZXQoKTt0aGlzLmMua2EoInRl
eHRUcmFja0Rpc3BsYXkiKS5yZW1vdmVDaGlsZCh0aGlzKTt0aGlzLm1hPTB9O2Z1bmN0aW9uIG5h
KGEpezA9PT1hLm5hJiZhLmxvYWQoKTswPT09YS5tYSYmKGEuYy5kKCJ0aW1ldXBkYXRlIix0LmJp
bmQoYSxhLnVwZGF0ZSxhLlQpKSxhLmMuZCgiZW5kZWQiLHQuYmluZChhLGEucmVzZXQsYS5UKSks
KCJjYXB0aW9ucyI9PT1hLkd8fCJzdWJ0aXRsZXMiPT09YS5HKSYmYS5jLmthKCJ0ZXh0VHJhY2tE
aXNwbGF5IikuUShhKSl9CnMubG9hZD1mdW5jdGlvbigpezA9PT10aGlzLm5hJiYodGhpcy5uYT0x
LHQuZ2V0KHRoaXMuSmMsdC5iaW5kKHRoaXMsdGhpcy5TZCksdC5iaW5kKHRoaXMsdGhpcy5JZCkp
KX07cy5JZD1mdW5jdGlvbihhKXt0aGlzLmVycm9yPWE7dGhpcy5uYT0zO3RoaXMubCgiZXJyb3Ii
KX07cy5TZD1mdW5jdGlvbihhKXt2YXIgYyxkO2E9YS5zcGxpdCgiXG4iKTtmb3IodmFyIGU9IiIs
Zz0xLGg9YS5sZW5ndGg7ZzxoO2crKylpZihlPXQudHJpbShhW2ddKSl7LTE9PWUuaW5kZXhPZigi
LS1ceDNlIik/KGM9ZSxlPXQudHJpbShhWysrZ10pKTpjPXRoaXMuYmEubGVuZ3RoO2M9e2lkOmMs
aW5kZXg6dGhpcy5iYS5sZW5ndGh9O2Q9ZS5zcGxpdCgvW1x0IF0rLyk7Yy5zdGFydFRpbWU9b2Eo
ZFswXSk7Yy54YT1vYShkWzJdKTtmb3IoZD1bXTthWysrZ10mJihlPXQudHJpbShhW2ddKSk7KWQu
cHVzaChlKTtjLnRleHQ9ZC5qb2luKCI8YnIvPiIpO3RoaXMuYmEucHVzaChjKX10aGlzLm5hPTI7
dGhpcy5sKCJsb2FkZWQiKX07CmZ1bmN0aW9uIG9hKGEpe3ZhciBjPWEuc3BsaXQoIjoiKTthPTA7
dmFyIGQsZSxnOzM9PWMubGVuZ3RoPyhkPWNbMF0sZT1jWzFdLGM9Y1syXSk6KGQ9MCxlPWNbMF0s
Yz1jWzFdKTtjPWMuc3BsaXQoL1xzKy8pO2M9Yy5zcGxpY2UoMCwxKVswXTtjPWMuc3BsaXQoL1wu
fCwvKTtnPXBhcnNlRmxvYXQoY1sxXSk7Yz1jWzBdO2ErPTM2MDAqcGFyc2VGbG9hdChkKTthKz02
MCpwYXJzZUZsb2F0KGUpO2ErPXBhcnNlRmxvYXQoYyk7ZyYmKGErPWcvMUUzKTtyZXR1cm4gYX0K
cy51cGRhdGU9ZnVuY3Rpb24oKXtpZigwPHRoaXMuYmEubGVuZ3RoKXt2YXIgYT10aGlzLmMub3B0
aW9ucygpLnRyYWNrVGltZU9mZnNldHx8MCxhPXRoaXMuYy5jdXJyZW50VGltZSgpK2E7aWYodGhp
cy5PYj09PWJ8fGE8dGhpcy5PYnx8dGhpcy5XYTw9YSl7dmFyIGM9dGhpcy5iYSxkPXRoaXMuYy5k
dXJhdGlvbigpLGU9MCxnPWwsaD1bXSxqLG4scSx3O2E+PXRoaXMuV2F8fHRoaXMuV2E9PT1iP3c9
dGhpcy5EYiE9PWI/dGhpcy5EYjowOihnPWYsdz10aGlzLkpiIT09Yj90aGlzLkpiOmMubGVuZ3Ro
LTEpO2Zvcig7Oyl7cT1jW3ddO2lmKHEueGE8PWEpZT1NYXRoLm1heChlLHEueGEpLHEuTmEmJihx
Lk5hPWwpO2Vsc2UgaWYoYTxxLnN0YXJ0VGltZSl7aWYoZD1NYXRoLm1pbihkLHEuc3RhcnRUaW1l
KSxxLk5hJiYocS5OYT1sKSwhZylicmVha31lbHNlIGc/KGguc3BsaWNlKDAsMCxxKSxuPT09YiYm
KG49dyksaj13KTooaC5wdXNoKHEpLGo9PT1iJiYoaj13KSxuPXcpLGQ9TWF0aC5taW4oZCwKcS54
YSksZT1NYXRoLm1heChlLHEuc3RhcnRUaW1lKSxxLk5hPWY7aWYoZylpZigwPT09dylicmVhaztl
bHNlIHctLTtlbHNlIGlmKHc9PT1jLmxlbmd0aC0xKWJyZWFrO2Vsc2UgdysrfXRoaXMudGI9aDt0
aGlzLldhPWQ7dGhpcy5PYj1lO3RoaXMuRGI9ajt0aGlzLkpiPW47aj10aGlzLnRiO249IiI7YT0w
O2ZvcihjPWoubGVuZ3RoO2E8YzthKyspbis9JzxzcGFuIGNsYXNzPSJ2anMtdHQtY3VlIj4nK2pb
YV0udGV4dCsiPC9zcGFuPiI7dGhpcy5iLmlubmVySFRNTD1uO3RoaXMubCgiY3VlY2hhbmdlIil9
fX07cy5yZXNldD1mdW5jdGlvbigpe3RoaXMuV2E9MDt0aGlzLk9iPXRoaXMuYy5kdXJhdGlvbigp
O3RoaXMuSmI9dGhpcy5EYj0wfTt0LlZiPXQuQi5leHRlbmQoKTt0LlZiLnByb3RvdHlwZS5HPSJj
YXB0aW9ucyI7dC5jYz10LkIuZXh0ZW5kKCk7dC5jYy5wcm90b3R5cGUuRz0ic3VidGl0bGVzIjt0
LldiPXQuQi5leHRlbmQoKTt0LldiLnByb3RvdHlwZS5HPSJjaGFwdGVycyI7CnQuZWM9dC5hLmV4
dGVuZCh7aTpmdW5jdGlvbihhLGMsZCl7dC5hLmNhbGwodGhpcyxhLGMsZCk7aWYoYS5rLnRyYWNr
cyYmMDxhLmsudHJhY2tzLmxlbmd0aCl7Yz10aGlzLmM7YT1hLmsudHJhY2tzO2Zvcih2YXIgZT0w
O2U8YS5sZW5ndGg7ZSsrKWQ9YVtlXSxtYShjLGQua2luZCxkLmxhYmVsLGQubGFuZ3VhZ2UsZCl9
fX0pO3QuZWMucHJvdG90eXBlLmU9ZnVuY3Rpb24oKXtyZXR1cm4gdC5hLnByb3RvdHlwZS5lLmNh
bGwodGhpcywiZGl2Iix7Y2xhc3NOYW1lOiJ2anMtdGV4dC10cmFjay1kaXNwbGF5In0pfTt0LiQ9
dC5ILmV4dGVuZCh7aTpmdW5jdGlvbihhLGMpe3ZhciBkPXRoaXMuZWE9Yy50cmFjaztjLmxhYmVs
PWQubGFiZWwoKTtjLnNlbGVjdGVkPWQuQWIoKTt0LkguY2FsbCh0aGlzLGEsYyk7dGhpcy5jLmQo
ZC5KKCkrInRyYWNrY2hhbmdlIix0LmJpbmQodGhpcyx0aGlzLnVwZGF0ZSkpfX0pOwp0LiQucHJv
dG90eXBlLnI9ZnVuY3Rpb24oKXt0LkgucHJvdG90eXBlLnIuY2FsbCh0aGlzKTtZKHRoaXMuYyx0
aGlzLmVhLlQsdGhpcy5lYS5KKCkpfTt0LiQucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe3Ro
aXMuc2VsZWN0ZWQoMj09dGhpcy5lYS5tb2RlKCkpfTt0Lm1iPXQuJC5leHRlbmQoe2k6ZnVuY3Rp
b24oYSxjKXtjLnRyYWNrPXtKOmZ1bmN0aW9uKCl7cmV0dXJuIGMua2luZH0sajphLGxhYmVsOmZ1
bmN0aW9uKCl7cmV0dXJuIGMua2luZCsiIG9mZiJ9LEFiOnIobCksbW9kZTpyKGwpfTt0LiQuY2Fs
bCh0aGlzLGEsYyk7dGhpcy5zZWxlY3RlZChmKX19KTt0Lm1iLnByb3RvdHlwZS5yPWZ1bmN0aW9u
KCl7dC4kLnByb3RvdHlwZS5yLmNhbGwodGhpcyk7WSh0aGlzLmMsdGhpcy5lYS5ULHRoaXMuZWEu
SigpKX07CnQubWIucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe2Zvcih2YXIgYT10aGlzLmMu
dGV4dFRyYWNrcygpLGM9MCxkPWEubGVuZ3RoLGUsZz1mO2M8ZDtjKyspZT1hW2NdLGUuSigpPT10
aGlzLmVhLkooKSYmMj09ZS5tb2RlKCkmJihnPWwpO3RoaXMuc2VsZWN0ZWQoZyl9O3QuVT10Lksu
ZXh0ZW5kKHtpOmZ1bmN0aW9uKGEsYyl7dC5LLmNhbGwodGhpcyxhLGMpOzE+PXRoaXMuTi5sZW5n
dGgmJnRoaXMuVigpfX0pO3QuVS5wcm90b3R5cGUudmE9ZnVuY3Rpb24oKXt2YXIgYT1bXSxjO2Eu
cHVzaChuZXcgdC5tYih0aGlzLmMse2tpbmQ6dGhpcy5HfSkpO2Zvcih2YXIgZD0wO2Q8dGhpcy5j
LnRleHRUcmFja3MoKS5sZW5ndGg7ZCsrKWM9dGhpcy5jLnRleHRUcmFja3MoKVtkXSxjLkooKT09
PXRoaXMuRyYmYS5wdXNoKG5ldyB0LiQodGhpcy5jLHt0cmFjazpjfSkpO3JldHVybiBhfTsKdC5H
YT10LlUuZXh0ZW5kKHtpOmZ1bmN0aW9uKGEsYyxkKXt0LlUuY2FsbCh0aGlzLGEsYyxkKTt0aGlz
LmIuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIiwiQ2FwdGlvbnMgTWVudSIpfX0pO3QuR2EucHJv
dG90eXBlLkc9ImNhcHRpb25zIjt0LkdhLnByb3RvdHlwZS50YT0iQ2FwdGlvbnMiO3QuR2EucHJv
dG90eXBlLmNsYXNzTmFtZT0idmpzLWNhcHRpb25zLWJ1dHRvbiI7dC5NYT10LlUuZXh0ZW5kKHtp
OmZ1bmN0aW9uKGEsYyxkKXt0LlUuY2FsbCh0aGlzLGEsYyxkKTt0aGlzLmIuc2V0QXR0cmlidXRl
KCJhcmlhLWxhYmVsIiwiU3VidGl0bGVzIE1lbnUiKX19KTt0Lk1hLnByb3RvdHlwZS5HPSJzdWJ0
aXRsZXMiO3QuTWEucHJvdG90eXBlLnRhPSJTdWJ0aXRsZXMiO3QuTWEucHJvdG90eXBlLmNsYXNz
TmFtZT0idmpzLXN1YnRpdGxlcy1idXR0b24iOwp0LkhhPXQuVS5leHRlbmQoe2k6ZnVuY3Rpb24o
YSxjLGQpe3QuVS5jYWxsKHRoaXMsYSxjLGQpO3RoaXMuYi5zZXRBdHRyaWJ1dGUoImFyaWEtbGFi
ZWwiLCJDaGFwdGVycyBNZW51Iil9fSk7cz10LkhhLnByb3RvdHlwZTtzLkc9ImNoYXB0ZXJzIjtz
LnRhPSJDaGFwdGVycyI7cy5jbGFzc05hbWU9InZqcy1jaGFwdGVycy1idXR0b24iO3MudmE9ZnVu
Y3Rpb24oKXtmb3IodmFyIGE9W10sYyxkPTA7ZDx0aGlzLmMudGV4dFRyYWNrcygpLmxlbmd0aDtk
KyspYz10aGlzLmMudGV4dFRyYWNrcygpW2RdLGMuSigpPT09dGhpcy5HJiZhLnB1c2gobmV3IHQu
JCh0aGlzLmMse3RyYWNrOmN9KSk7cmV0dXJuIGF9OwpzLndhPWZ1bmN0aW9uKCl7Zm9yKHZhciBh
PXRoaXMuYy50ZXh0VHJhY2tzKCksYz0wLGQ9YS5sZW5ndGgsZSxnLGg9dGhpcy5OPVtdO2M8ZDtj
KyspaWYoZT1hW2NdLGUuSigpPT10aGlzLkcpaWYoMD09PWUucmVhZHlTdGF0ZSgpKWUubG9hZCgp
LGUuZCgibG9hZGVkIix0LmJpbmQodGhpcyx0aGlzLndhKSk7ZWxzZXtnPWU7YnJlYWt9YT10aGlz
LkFhO2E9PT1iJiYoYT1uZXcgdC5oYSh0aGlzLmMpLGEuamEoKS5hcHBlbmRDaGlsZCh0LmUoImxp
Iix7Y2xhc3NOYW1lOiJ2anMtbWVudS10aXRsZSIsaW5uZXJIVE1MOnQuYWEodGhpcy5HKSxkZTot
MX0pKSk7aWYoZyl7ZT1nLmJhO2Zvcih2YXIgaixjPTAsZD1lLmxlbmd0aDtjPGQ7YysrKWo9ZVtj
XSxqPW5ldyB0LmdiKHRoaXMuYyx7dHJhY2s6ZyxjdWU6an0pLGgucHVzaChqKSxhLlEoaik7dGhp
cy5RKGEpfTA8dGhpcy5OLmxlbmd0aCYmdGhpcy5zaG93KCk7cmV0dXJuIGF9Owp0LmdiPXQuSC5l
eHRlbmQoe2k6ZnVuY3Rpb24oYSxjKXt2YXIgZD10aGlzLmVhPWMudHJhY2ssZT10aGlzLmN1ZT1j
LmN1ZSxnPWEuY3VycmVudFRpbWUoKTtjLmxhYmVsPWUudGV4dDtjLnNlbGVjdGVkPWUuc3RhcnRU
aW1lPD1nJiZnPGUueGE7dC5ILmNhbGwodGhpcyxhLGMpO2QuZCgiY3VlY2hhbmdlIix0LmJpbmQo
dGhpcyx0aGlzLnVwZGF0ZSkpfX0pO3QuZ2IucHJvdG90eXBlLnI9ZnVuY3Rpb24oKXt0LkgucHJv
dG90eXBlLnIuY2FsbCh0aGlzKTt0aGlzLmMuY3VycmVudFRpbWUodGhpcy5jdWUuc3RhcnRUaW1l
KTt0aGlzLnVwZGF0ZSh0aGlzLmN1ZS5zdGFydFRpbWUpfTt0LmdiLnByb3RvdHlwZS51cGRhdGU9
ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmN1ZSxjPXRoaXMuYy5jdXJyZW50VGltZSgpO3RoaXMuc2Vs
ZWN0ZWQoYS5zdGFydFRpbWU8PWMmJmM8YS54YSl9Owp0Lmgueih0LklhLnByb3RvdHlwZS5rLmNo
aWxkcmVuLHtzdWJ0aXRsZXNCdXR0b246e30sY2FwdGlvbnNCdXR0b246e30sY2hhcHRlcnNCdXR0
b246e319KTsKaWYoInVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93LkpTT04mJiJmdW5jdGlvbiI9
PT13aW5kb3cuSlNPTi5wYXJzZSl0LkpTT049d2luZG93LkpTT047ZWxzZXt0LkpTT049e307dmFy
IFo9L1tcdTAwMDBcdTAwYWRcdTA2MDAtXHUwNjA0XHUwNzBmXHUxN2I0XHUxN2I1XHUyMDBjLVx1
MjAwZlx1MjAyOC1cdTIwMmZcdTIwNjAtXHUyMDZmXHVmZWZmXHVmZmYwLVx1ZmZmZl0vZzt0LkpT
T04ucGFyc2U9ZnVuY3Rpb24oYSxjKXtmdW5jdGlvbiBkKGEsZSl7dmFyIGosbixxPWFbZV07aWYo
cSYmIm9iamVjdCI9PT10eXBlb2YgcSlmb3IoaiBpbiBxKU9iamVjdC5wcm90b3R5cGUuaGFzT3du
UHJvcGVydHkuY2FsbChxLGopJiYobj1kKHEsaiksbiE9PWI/cVtqXT1uOmRlbGV0ZSBxW2pdKTty
ZXR1cm4gYy5jYWxsKGEsZSxxKX12YXIgZTthPVN0cmluZyhhKTtaLmxhc3RJbmRleD0wO1oudGVz
dChhKSYmKGE9YS5yZXBsYWNlKFosZnVuY3Rpb24oYSl7cmV0dXJuIlxcdSIrKCIwMDAwIithLmNo
YXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpKS5zbGljZSgtNCl9KSk7CmlmKC9eW1xdLDp7fVxzXSok
Ly50ZXN0KGEucmVwbGFjZSgvXFwoPzpbIlxcXC9iZm5ydF18dVswLTlhLWZBLUZdezR9KS9nLCJA
IikucmVwbGFjZSgvIlteIlxcXG5ccl0qInx0cnVlfGZhbHNlfG51bGx8LT9cZCsoPzpcLlxkKik/
KD86W2VFXVsrXC1dP1xkKyk/L2csIl0iKS5yZXBsYWNlKC8oPzpefDp8LCkoPzpccypcWykrL2cs
IiIpKSlyZXR1cm4gZT1ldmFsKCIoIithKyIpIiksImZ1bmN0aW9uIj09PXR5cGVvZiBjP2QoeyIi
OmV9LCIiKTplO3Rocm93IG5ldyBTeW50YXhFcnJvcigiSlNPTi5wYXJzZSgpOiBpbnZhbGlkIG9y
IG1hbGZvcm1lZCBKU09OIGRhdGEiKTt9fQp0LmljPWZ1bmN0aW9uKCl7dmFyIGEsYyxkPWRvY3Vt
ZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ2aWRlbyIpO2lmKGQmJjA8ZC5sZW5ndGgpZm9yKHZh
ciBlPTAsZz1kLmxlbmd0aDtlPGc7ZSsrKWlmKChjPWRbZV0pJiZjLmdldEF0dHJpYnV0ZSljLnBs
YXllcj09PWImJihhPWMuZ2V0QXR0cmlidXRlKCJkYXRhLXNldHVwIiksYSE9PWsmJihhPXQuSlNP
Ti5wYXJzZShhfHwie30iKSx2aWRlb2pzKGMsYSkpKTtlbHNle3QudWIoKTticmVha31lbHNlIHQu
UmN8fHQudWIoKX07dC51Yj1mdW5jdGlvbigpe3NldFRpbWVvdXQodC5pYywxKX07ImNvbXBsZXRl
Ij09PWRvY3VtZW50LnJlYWR5U3RhdGU/dC5SYz1mOnQuVyh3aW5kb3csImxvYWQiLGZ1bmN0aW9u
KCl7dC5SYz1mfSk7dC51YigpO3QuVWQ9ZnVuY3Rpb24oYSxjKXt0LlBsYXllci5wcm90b3R5cGVb
YV09Y307dmFyIHBhPXRoaXM7ZnVuY3Rpb24gJChhLGMpe3ZhciBkPWEuc3BsaXQoIi4iKSxlPXBh
OyEoZFswXWluIGUpJiZlLmV4ZWNTY3JpcHQmJmUuZXhlY1NjcmlwdCgidmFyICIrZFswXSk7Zm9y
KHZhciBnO2QubGVuZ3RoJiYoZz1kLnNoaWZ0KCkpOykhZC5sZW5ndGgmJmMhPT1iP2VbZ109Yzpl
PWVbZ10/ZVtnXTplW2ddPXt9fTskKCJ2aWRlb2pzIix0KTskKCJfVl8iLHQpOyQoInZpZGVvanMu
b3B0aW9ucyIsdC5vcHRpb25zKTskKCJ2aWRlb2pzLnBsYXllcnMiLHQuQmEpOyQoInZpZGVvanMu
VE9VQ0hfRU5BQkxFRCIsdC5kYyk7JCgidmlkZW9qcy5jYWNoZSIsdC51YSk7JCgidmlkZW9qcy5D
b21wb25lbnQiLHQuYSk7dC5hLnByb3RvdHlwZS5wbGF5ZXI9dC5hLnByb3RvdHlwZS5qO3QuYS5w
cm90b3R5cGUub3B0aW9ucz10LmEucHJvdG90eXBlLm9wdGlvbnM7dC5hLnByb3RvdHlwZS5pbml0
PXQuYS5wcm90b3R5cGUuaTt0LmEucHJvdG90eXBlLmRpc3Bvc2U9dC5hLnByb3RvdHlwZS5kaXNw
b3NlO3QuYS5wcm90b3R5cGUuY3JlYXRlRWw9dC5hLnByb3RvdHlwZS5lO3QuYS5wcm90b3R5cGUu
Y29udGVudEVsPXQuYS5wcm90b3R5cGUuamE7dC5hLnByb3RvdHlwZS5lbD10LmEucHJvdG90eXBl
LnY7dC5hLnByb3RvdHlwZS5hZGRDaGlsZD10LmEucHJvdG90eXBlLlE7CnQuYS5wcm90b3R5cGUu
Z2V0Q2hpbGQ9dC5hLnByb3RvdHlwZS5rYTt0LmEucHJvdG90eXBlLmdldENoaWxkQnlJZD10LmEu
cHJvdG90eXBlLndkO3QuYS5wcm90b3R5cGUuY2hpbGRyZW49dC5hLnByb3RvdHlwZS5jaGlsZHJl
bjt0LmEucHJvdG90eXBlLmluaXRDaGlsZHJlbj10LmEucHJvdG90eXBlLnVjO3QuYS5wcm90b3R5
cGUucmVtb3ZlQ2hpbGQ9dC5hLnByb3RvdHlwZS5yZW1vdmVDaGlsZDt0LmEucHJvdG90eXBlLm9u
PXQuYS5wcm90b3R5cGUuZDt0LmEucHJvdG90eXBlLm9mZj10LmEucHJvdG90eXBlLm87dC5hLnBy
b3RvdHlwZS5vbmU9dC5hLnByb3RvdHlwZS5XO3QuYS5wcm90b3R5cGUudHJpZ2dlcj10LmEucHJv
dG90eXBlLmw7dC5hLnByb3RvdHlwZS50cmlnZ2VyUmVhZHk9dC5hLnByb3RvdHlwZS5GYTt0LmEu
cHJvdG90eXBlLnNob3c9dC5hLnByb3RvdHlwZS5zaG93O3QuYS5wcm90b3R5cGUuaGlkZT10LmEu
cHJvdG90eXBlLlY7CnQuYS5wcm90b3R5cGUud2lkdGg9dC5hLnByb3RvdHlwZS53aWR0aDt0LmEu
cHJvdG90eXBlLmhlaWdodD10LmEucHJvdG90eXBlLmhlaWdodDt0LmEucHJvdG90eXBlLmRpbWVu
c2lvbnM9dC5hLnByb3RvdHlwZS5wZDt0LmEucHJvdG90eXBlLnJlYWR5PXQuYS5wcm90b3R5cGUu
STt0LmEucHJvdG90eXBlLmFkZENsYXNzPXQuYS5wcm90b3R5cGUubjt0LmEucHJvdG90eXBlLnJl
bW92ZUNsYXNzPXQuYS5wcm90b3R5cGUucDt0LmEucHJvdG90eXBlLmJ1aWxkQ1NTQ2xhc3M9dC5h
LnByb3RvdHlwZS5TO3QuYS5wcm90b3R5cGUubG9jYWxpemU9dC5hLnByb3RvdHlwZS5zO3QuUGxh
eWVyLnByb3RvdHlwZS5lbmRlZD10LlBsYXllci5wcm90b3R5cGUuZW5kZWQ7dC5QbGF5ZXIucHJv
dG90eXBlLmVudGVyRnVsbFdpbmRvdz10LlBsYXllci5wcm90b3R5cGUub2M7dC5QbGF5ZXIucHJv
dG90eXBlLmV4aXRGdWxsV2luZG93PXQuUGxheWVyLnByb3RvdHlwZS5DYjsKdC5QbGF5ZXIucHJv
dG90eXBlLnByZWxvYWQ9dC5QbGF5ZXIucHJvdG90eXBlLkNhO3QuUGxheWVyLnByb3RvdHlwZS5y
ZW1haW5pbmdUaW1lPXQuUGxheWVyLnByb3RvdHlwZS5yZW1haW5pbmdUaW1lO3QuUGxheWVyLnBy
b3RvdHlwZS5zdXBwb3J0c0Z1bGxTY3JlZW49dC5QbGF5ZXIucHJvdG90eXBlLkRhO3QuUGxheWVy
LnByb3RvdHlwZS5jdXJyZW50VHlwZT10LlBsYXllci5wcm90b3R5cGUuUmE7dC5QbGF5ZXIucHJv
dG90eXBlLnJlcXVlc3RGdWxsU2NyZWVuPXQuUGxheWVyLnByb3RvdHlwZS5SYTt0LlBsYXllci5w
cm90b3R5cGUuY2FuY2VsRnVsbFNjcmVlbj10LlBsYXllci5wcm90b3R5cGUuUmE7dC5QbGF5ZXIu
cHJvdG90eXBlLmlzRnVsbFNjcmVlbj10LlBsYXllci5wcm90b3R5cGUuUmE7JCgidmlkZW9qcy5N
ZWRpYUxvYWRlciIsdC5hZCk7JCgidmlkZW9qcy5UZXh0VHJhY2tEaXNwbGF5Iix0LmVjKTskKCJ2
aWRlb2pzLkNvbnRyb2xCYXIiLHQuSWEpOwokKCJ2aWRlb2pzLkJ1dHRvbiIsdC50KTskKCJ2aWRl
b2pzLlBsYXlUb2dnbGUiLHQuJGIpOyQoInZpZGVvanMuRnVsbHNjcmVlblRvZ2dsZSIsdC5KYSk7
JCgidmlkZW9qcy5CaWdQbGF5QnV0dG9uIix0LmZiKTskKCJ2aWRlb2pzLkxvYWRpbmdTcGlubmVy
Iix0LlliKTskKCJ2aWRlb2pzLkN1cnJlbnRUaW1lRGlzcGxheSIsdC5oYik7JCgidmlkZW9qcy5E
dXJhdGlvbkRpc3BsYXkiLHQuaWIpOyQoInZpZGVvanMuVGltZURpdmlkZXIiLHQuZmMpOyQoInZp
ZGVvanMuUmVtYWluaW5nVGltZURpc3BsYXkiLHQucGIpOyQoInZpZGVvanMuTGl2ZURpc3BsYXki
LHQuWGIpOyQoInZpZGVvanMuRXJyb3JEaXNwbGF5Iix0LmpiKTskKCJ2aWRlb2pzLlNsaWRlciIs
dC5QKTskKCJ2aWRlb2pzLlByb2dyZXNzQ29udHJvbCIsdC5vYik7JCgidmlkZW9qcy5TZWVrQmFy
Iix0LmJjKTskKCJ2aWRlb2pzLkxvYWRQcm9ncmVzc0JhciIsdC5sYik7JCgidmlkZW9qcy5QbGF5
UHJvZ3Jlc3NCYXIiLHQuWmIpOwokKCJ2aWRlb2pzLlNlZWtIYW5kbGUiLHQuTGEpOyQoInZpZGVv
anMuVm9sdW1lQ29udHJvbCIsdC5yYik7JCgidmlkZW9qcy5Wb2x1bWVCYXIiLHQucWIpOyQoInZp
ZGVvanMuVm9sdW1lTGV2ZWwiLHQuZ2MpOyQoInZpZGVvanMuVm9sdW1lTWVudUJ1dHRvbiIsdC5y
YSk7JCgidmlkZW9qcy5Wb2x1bWVIYW5kbGUiLHQuc2IpOyQoInZpZGVvanMuTXV0ZVRvZ2dsZSIs
dC5pYSk7JCgidmlkZW9qcy5Qb3N0ZXJJbWFnZSIsdC5LYSk7JCgidmlkZW9qcy5NZW51Iix0Lmhh
KTskKCJ2aWRlb2pzLk1lbnVJdGVtIix0LkgpOyQoInZpZGVvanMuTWVudUJ1dHRvbiIsdC5LKTsk
KCJ2aWRlb2pzLlBsYXliYWNrUmF0ZU1lbnVCdXR0b24iLHQuYWMpO3QuSy5wcm90b3R5cGUuY3Jl
YXRlSXRlbXM9dC5LLnByb3RvdHlwZS52YTt0LlUucHJvdG90eXBlLmNyZWF0ZUl0ZW1zPXQuVS5w
cm90b3R5cGUudmE7dC5IYS5wcm90b3R5cGUuY3JlYXRlSXRlbXM9dC5IYS5wcm90b3R5cGUudmE7
CiQoInZpZGVvanMuU3VidGl0bGVzQnV0dG9uIix0Lk1hKTskKCJ2aWRlb2pzLkNhcHRpb25zQnV0
dG9uIix0LkdhKTskKCJ2aWRlb2pzLkNoYXB0ZXJzQnV0dG9uIix0LkhhKTskKCJ2aWRlb2pzLk1l
ZGlhVGVjaENvbnRyb2xsZXIiLHQucSk7dC5xLnByb3RvdHlwZS5mZWF0dXJlc1ZvbHVtZUNvbnRy
b2w9dC5xLnByb3RvdHlwZS5xZTt0LnEucHJvdG90eXBlLmZlYXR1cmVzRnVsbHNjcmVlblJlc2l6
ZT10LnEucHJvdG90eXBlLm1lO3QucS5wcm90b3R5cGUuZmVhdHVyZXNQbGF5YmFja1JhdGU9dC5x
LnByb3RvdHlwZS5uZTt0LnEucHJvdG90eXBlLmZlYXR1cmVzUHJvZ3Jlc3NFdmVudHM9dC5xLnBy
b3RvdHlwZS5vZTt0LnEucHJvdG90eXBlLmZlYXR1cmVzVGltZXVwZGF0ZUV2ZW50cz10LnEucHJv
dG90eXBlLnBlO3QucS5wcm90b3R5cGUuc2V0UG9zdGVyPXQucS5wcm90b3R5cGUuSWM7JCgidmlk
ZW9qcy5IdG1sNSIsdC5nKTt0LmcuRXZlbnRzPXQuZy5rYjsKdC5nLmlzU3VwcG9ydGVkPXQuZy5p
c1N1cHBvcnRlZDt0LmcuY2FuUGxheVNvdXJjZT10LmcudmI7dC5nLnBhdGNoQ2FuUGxheVR5cGU9
dC5nLkFjO3QuZy51bnBhdGNoQ2FuUGxheVR5cGU9dC5nLmhlO3QuZy5wcm90b3R5cGUuc2V0Q3Vy
cmVudFRpbWU9dC5nLnByb3RvdHlwZS5QYjt0LmcucHJvdG90eXBlLnNldFZvbHVtZT10LmcucHJv
dG90eXBlLmJlO3QuZy5wcm90b3R5cGUuc2V0TXV0ZWQ9dC5nLnByb3RvdHlwZS5aZDt0LmcucHJv
dG90eXBlLnNldFByZWxvYWQ9dC5nLnByb3RvdHlwZS5hZTt0LmcucHJvdG90eXBlLnNldEF1dG9w
bGF5PXQuZy5wcm90b3R5cGUuV2Q7dC5nLnByb3RvdHlwZS5zZXRMb29wPXQuZy5wcm90b3R5cGUu
WWQ7dC5nLnByb3RvdHlwZS5lbnRlckZ1bGxTY3JlZW49dC5nLnByb3RvdHlwZS5uYzt0LmcucHJv
dG90eXBlLmV4aXRGdWxsU2NyZWVuPXQuZy5wcm90b3R5cGUudGQ7dC5nLnByb3RvdHlwZS5wbGF5
YmFja1JhdGU9dC5nLnByb3RvdHlwZS5wbGF5YmFja1JhdGU7CnQuZy5wcm90b3R5cGUuc2V0UGxh
eWJhY2tSYXRlPXQuZy5wcm90b3R5cGUuJGQ7JCgidmlkZW9qcy5GbGFzaCIsdC5mKTt0LmYuaXNT
dXBwb3J0ZWQ9dC5mLmlzU3VwcG9ydGVkO3QuZi5jYW5QbGF5U291cmNlPXQuZi52Yjt0LmYub25S
ZWFkeT10LmYub25SZWFkeTskKCJ2aWRlb2pzLlRleHRUcmFjayIsdC5CKTt0LkIucHJvdG90eXBl
LmxhYmVsPXQuQi5wcm90b3R5cGUubGFiZWw7dC5CLnByb3RvdHlwZS5raW5kPXQuQi5wcm90b3R5
cGUuSjt0LkIucHJvdG90eXBlLm1vZGU9dC5CLnByb3RvdHlwZS5tb2RlO3QuQi5wcm90b3R5cGUu
Y3Vlcz10LkIucHJvdG90eXBlLmxkO3QuQi5wcm90b3R5cGUuYWN0aXZlQ3Vlcz10LkIucHJvdG90
eXBlLmNkOyQoInZpZGVvanMuQ2FwdGlvbnNUcmFjayIsdC5WYik7JCgidmlkZW9qcy5TdWJ0aXRs
ZXNUcmFjayIsdC5jYyk7JCgidmlkZW9qcy5DaGFwdGVyc1RyYWNrIix0LldiKTskKCJ2aWRlb2pz
LmF1dG9TZXR1cCIsdC5pYyk7CiQoInZpZGVvanMucGx1Z2luIix0LlVkKTskKCJ2aWRlb2pzLmNy
ZWF0ZVRpbWVSYW5nZSIsdC56Yik7JCgidmlkZW9qcy51dGlsIix0LmdhKTt0LmdhLm1lcmdlT3B0
aW9ucz10LmdhLlZhO3QuYWRkTGFuZ3VhZ2U9dC5kZDt9KSgpOwo=
|
|
58 | /video/js/videojs.ads.js | application/javascript | videojs.ads.js | 200 OK | TEXT | 15.1 KB | 06/01/79 05:59:11 |
Download
|
|
SHA256
|
eca97cee510fb7300f140b9f049907262736dda14235c025d21a034e973cdf42
|
Referer
|
http://cdn.bitmedianetwork.com/video/adplayer.html?timestamp=1481644853337&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t
|
Magic
|
Inconclusive. Probably text (TEXT)
|
Request
|
GET /video/js/videojs.ads.js HTTP/1.1
Accept: */*
Referer: http://cdn.bitmedianetwork.com/video/adplayer.html?timestamp=1481644853337&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: 4h2xGWi07q0A+vc2JPhn+d1/zdX+Axa5fsNa1wNm2DJTtq4CYNPN+ZGLw2li3ET35FyIS8hmg0w=
x-amz-request-id: B580933E1E552D86
x-amz-meta-cache-control: max-age=86400
Content-Type: application/javascript
Server: AmazonS3
Age: 44440
Date: Tue, 13 Dec 2016 16:01:06 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:49 GMT
Expires: Wed, 14 Dec 2016 03:40:26 GMT
Content-Length: 15448
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
/**
* Basic Ad support plugin for video.js.
*
* Common code to support ad integrations.
*/
(function(window, document, vjs, ...
|
LyoqCiAqIEJhc2ljIEFkIHN1cHBvcnQgcGx1Z2luIGZvciB2aWRlby5qcy4KICoKICogQ29tbW9u
IGNvZGUgdG8gc3VwcG9ydCBhZCBpbnRlZ3JhdGlvbnMuCiAqLwooZnVuY3Rpb24od2luZG93LCBk
b2N1bWVudCwgdmpzLCB1bmRlZmluZWQpIHsKInVzZSBzdHJpY3QiOwoKdmFyCiAgCiAgLyoqCiAg
ICogQ29waWVzIHByb3BlcnRpZXMgZnJvbSBvbmUgb3IgbW9yZSBvYmplY3RzIG9udG8gYW4gb3Jp
Z2luYWwuCiAgICovCiAgZXh0ZW5kID0gZnVuY3Rpb24ob2JqIC8qLCBhcmcxLCBhcmcyLCAuLi4g
Ki8pIHsKICAgIHZhciBhcmcsIGksIGs7CiAgICBmb3IgKGk9MTsgaTxhcmd1bWVudHMubGVuZ3Ro
OyBpKyspIHsKICAgICAgYXJnID0gYXJndW1lbnRzW2ldOwogICAgICBmb3IgKGsgaW4gYXJnKSB7
CiAgICAgICAgaWYgKGFyZy5oYXNPd25Qcm9wZXJ0eShrKSkgewogICAgICAgICAgb2JqW2tdID0g
YXJnW2tdOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmV0dXJuIG9iajsKICB9LAogIAog
IC8qKgogICAqIEFkZCBhIGhhbmRsZXIgZm9yIG11bHRpcGxlIGxpc3RlbmVycyB0byBhbiBvYmpl
Y3QgdGhhdCBzdXBwb3J0cyBhZGRFdmVudExpc3RlbmVyKCkgb3Igb24oKS4KICAgKgogICAqIEBw
YXJhbSB7b2JqZWN0fSBvYmogVGhlIG9iamVjdCB0byB3aGljaCB0aGUgaGFuZGxlciB3aWxsIGJl
IGFzc2lnbmVkLgogICAqIEBwYXJhbSB7bWl4ZWR9IGV2ZW50cyBBIHN0cmluZywgYXJyYXkgb2Yg
c3RyaW5ncywgb3IgaGFzaCBvZiBzdHJpbmcvY2FsbGJhY2sgcGFpcnMuCiAgICogQHBhcmFtIHtm
dW5jdGlvbn0gY2FsbGJhY2sgSW52b2tlZCB3aGVuIHNwZWNpZmllZCBldmVudHMgb2NjdXIsIGlm
IGV2ZW50cyBwYXJhbSBpcyBub3QgYSBoYXNoLgogICAqCiAgICogQHJldHVybiB7b2JqZWN0fSBv
YmogVGhlIG9iamVjdCBwYXNzZWQgaW4uCiAgICovCiAgb24gPSBmdW5jdGlvbihvYmosIGV2ZW50
cywgaGFuZGxlcikgewogICAgCiAgICB2YXIKICAgICAgCiAgICAgIHR5cGUgPSBPYmplY3QucHJv
dG90eXBlLnRvU3RyaW5nLmNhbGwoZXZlbnRzKSwKICAgICAgCiAgICAgIHJlZ2lzdGVyID0gZnVu
Y3Rpb24ob2JqLCBldmVudCwgaGFuZGxlcikgewogICAgICAgIGlmIChvYmouYWRkRXZlbnRMaXN0
ZW5lcikgewogICAgICAgICAgb2JqLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnQsIGhhbmRsZXIpOwog
ICAgICAgIH0gZWxzZSBpZiAob2JqLm9uKSB7CiAgICAgICAgICBvYmoub24oZXZlbnQsIGhhbmRs
ZXIpOwogICAgICAgIH0gZWxzZSBpZiAob2JqLmF0dGFjaEV2ZW50KSB7CiAgICAgICAgICBvYmou
YXR0YWNoRXZlbnQoJ29uJyArIGV2ZW50LCBoYW5kbGVyKTsKICAgICAgICB9IGVsc2UgewogICAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCdvYmplY3QgaGFzIG5vIG1lY2hhbmlzbSBmb3IgYWRkaW5n
IGV2ZW50IGxpc3RlbmVycycpOwogICAgICAgIH0KICAgICAgfSwKICAgICAgCiAgICAgIGksCiAg
ICAgIGlpOwogICAgCiAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgY2FzZSAnW29iamVjdCBTdHJp
bmddJzoKICAgICAgICByZWdpc3RlcihvYmosIGV2ZW50cywgaGFuZGxlcik7CiAgICAgICAgYnJl
YWs7CiAgICAgIGNhc2UgJ1tvYmplY3QgQXJyYXldJzoKICAgICAgICBmb3IgKGkgPSAwLCBpaSA9
IGV2ZW50cy5sZW5ndGg7IGk8aWk7IGkrKykgewogICAgICAgICAgcmVnaXN0ZXIob2JqLCBldmVu
dHNbaV0sIGhhbmRsZXIpOwogICAgICAgIH0KICAgICAgICBicmVhazsKICAgICAgY2FzZSAnW29i
amVjdCBPYmplY3RdJzoKICAgICAgICBmb3IgKGkgaW4gZXZlbnRzKSB7CiAgICAgICAgICBpZiAo
ZXZlbnRzLmhhc093blByb3BlcnR5KGkpKSB7CiAgICAgICAgICAgIHJlZ2lzdGVyKG9iaiwgaSwg
ZXZlbnRzW2ldKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgYnJlYWs7CiAgICAgIGRl
ZmF1bHQ6CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbnJlY29nbml6ZWQgZXZlbnRzIHBhcmFt
ZXRlciB0eXBlOiAnICsgdHlwZSk7CiAgICB9CiAgICAKICAgIHJldHVybiBvYmo7CiAgICAKICB9
LAogIAogIC8qKgogICAqIFJ1bnMgdGhlIGNhbGxiYWNrIGF0IHRoZSBuZXh0IGF2YWlsYWJsZSBv
cHBvcnR1bml0eS4KICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVT
L2RvY3MvV2ViL0FQSS93aW5kb3cuc2V0SW1tZWRpYXRlCiAgICovCiAgc2V0SW1tZWRpYXRlID0g
ZnVuY3Rpb24oY2FsbGJhY2spIHsKICAgIHJldHVybiAoCiAgICAgIHdpbmRvdy5zZXRJbW1lZGlh
dGUgfHwKICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSB8fAogICAgICB3aW5kb3cu
bW96UmVxdWVzdEFuaW1hdGlvbkZyYW1lIHx8CiAgICAgIHdpbmRvdy53ZWJraXRSZXF1ZXN0QW5p
bWF0aW9uRnJhbWUgfHwKICAgICAgd2luZG93LnNldFRpbWVvdXQKICAgICkoY2FsbGJhY2ssIDAp
OwogIH0sCgogIC8qKgogICAqIENsZWFycyBhIGNhbGxiYWNrIHByZXZpb3VzbHkgcmVnaXN0ZXJl
ZCB3aXRoIGBzZXRJbW1lZGlhdGVgLgogICAqIEBwYXJhbSB7aWR9IGlkIFRoZSBpZGVudGlmaWVy
IG9mIHRoZSBjYWxsYmFjayB0byBhYm9ydAogICAqLwogIGNsZWFySW1tZWRpYXRlID0gZnVuY3Rp
b24oaWQpIHsKICAgIHJldHVybiAod2luZG93LmNsZWFySW1tZWRpYXRlIHx8CiAgICAgICAgICAg
IHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZSB8fAogICAgICAgICAgICB3aW5kb3cud2Via2l0
Q2FuY2VsQW5pbWF0aW9uRnJhbWUgfHwKICAgICAgICAgICAgd2luZG93Lm1vekNhbmNlbEFuaW1h
dGlvbkZyYW1lIHx8CiAgICAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQpKGlkKTsKICB9LAoK
ICAvKioKICAgKiBJZiBhZHMgYXJlIG5vdCBwbGF5aW5nLCBwYXVzZXMgdGhlIHBsYXllciBhdCB0
aGUgbmV4dCBhdmFpbGFibGUKICAgKiBvcHBvcnR1bml0eS4gSGFzIG5vIGVmZmVjdCBpZiBhZHMg
aGF2ZSBzdGFydGVkLiBUaGlzIGZ1bmN0aW9uIGlzIG5lY2Vzc2FyeQogICAqIGJlY2F1c2UgcGF1
c2luZyBhIHZpZGVvIGVsZW1lbnQgd2hpbGUgcHJvY2Vzc2luZyBhIGBwbGF5YCBldmVudCBvbiBp
T1MgY2FuCiAgICogY2F1c2UgdGhlIHZpZGVvIGVsZW1lbnQgdG8gY29udGludW91c2x5IHRvZ2ds
ZSBiZXR3ZWVuIHBsYXlpbmcgYW5kIHBhdXNlZAogICAqIHN0YXRlcy4KICAgKgogICAqIEBwYXJh
bSB7b2JqZWN0fSBwbGF5ZXIgVGhlIHZpZGVvIHBsYXllcgogICAqLwogIGNhbmNlbENvbnRlbnRQ
bGF5ID0gZnVuY3Rpb24ocGxheWVyKSB7CiAgICBpZiAocGxheWVyLmFkcy5jYW5jZWxQbGF5VGlt
ZW91dCkgewogICAgICAvLyBhbm90aGVyIGNhbmNlbGxhdGlvbiBpcyBhbHJlYWR5IGluIGZsaWdo
dCwgc28gZG8gbm90aGluZwogICAgICByZXR1cm47CiAgICB9CgogICAgcGxheWVyLmFkcy5jYW5j
ZWxQbGF5VGltZW91dCA9IHNldEltbWVkaWF0ZShmdW5jdGlvbigpIHsKCiAgICAgIC8vIGRlcmVn
aXN0ZXIgdGhlIGNhbmNlbCB0aW1lb3V0IHNvIHN1YnNlcXVlbnQgY2FuY2VscyBhcmUgc2NoZWR1
bGVkCiAgICAgIHBsYXllci5hZHMuY2FuY2VsUGxheVRpbWVvdXQgPSBudWxsOwoKICAgICAgaWYg
KCFwbGF5ZXIucGF1c2VkKCkpIHsKICAgICAgICBwbGF5ZXIucGF1c2UoKTsKICAgICAgfQogICAg
fSk7CiAgfSwKICAKICAvKioKICAgKiBSZXR1cm5zIGFuIG9iamVjdCB0aGF0IGNhcHR1cmVzIHRo
ZSBwb3J0aW9ucyBvZiBwbGF5ZXIgc3RhdGUgcmVsZXZhbnQgdG8KICAgKiB2aWRlbyBwbGF5YmFj
ay4gVGhlIHJlc3VsdCBvZiB0aGlzIGZ1bmN0aW9uIGNhbiBiZSBwYXNzZWQgdG8KICAgKiByZXN0
b3JlUGxheWVyU25hcHNob3Qgd2l0aCBhIHBsYXllciB0byByZXR1cm4gdGhlIHBsYXllciB0byB0
aGUgc3RhdGUgaXQKICAgKiB3YXMgaW4gd2hlbiB0aGlzIGZ1bmN0aW9uIHdhcyBpbnZva2VkLgog
ICAqIEBwYXJhbSB7b2JqZWN0fSBwbGF5ZXIgVGhlIHZpZGVvanMgcGxheWVyIG9iamVjdAogICAq
LwogIGdldFBsYXllclNuYXBzaG90ID0gZnVuY3Rpb24ocGxheWVyKSB7CiAgICB2YXIKICAgICAg
dGVjaCA9IHBsYXllci5lbCgpLnF1ZXJ5U2VsZWN0b3IoJy52anMtdGVjaCcpLAogICAgICBzbmFw
c2hvdCA9IHsKICAgICAgICBzcmM6IHBsYXllci5jdXJyZW50U3JjKCksCiAgICAgICAgY3VycmVu
dFRpbWU6IHBsYXllci5jdXJyZW50VGltZSgpLAoKICAgICAgICAvLyBvbiBzbG93IGNvbm5lY3Rp
b25zLCBwbGF5ZXIucGF1c2VkKCkgbWF5IGJlIHRydWUgd2hlbiBzdGFydGluZyBhbmQKICAgICAg
ICAvLyBzdG9wcGluZyBhZHMgZXZlbiB0aG91Z2ggcGxheSBoYXMgYmVlbiByZXF1ZXN0ZWQuIEhh
cmQtY29kaW5nIHRoZQogICAgICAgIC8vIHBsYXliYWNrIHN0YXRlIHdvcmtzIGZvciB0aGUgcHVy
cG9zZXMgb2YgYWQgcGxheWJhY2sgYnV0IG1ha2VzIHRoaXMKICAgICAgICAvLyBhbiBpbmFjY3Vy
YXRlIHNuYXBzaG90LgogICAgICAgIHBsYXk6IHRydWUKICAgICAgfTsKICAgIGlmICh0ZWNoKSB7
CiAgICAgIHNuYXBzaG90Lm5hdGl2ZVBvc3RlciA9IHRlY2gucG9zdGVyOwogICAgfQogICAgcmV0
dXJuIHNuYXBzaG90OwogIH0sCgogIHJlbW92ZUNsYXNzID0gZnVuY3Rpb24oZWxlbWVudCwgY2xh
c3NOYW1lKSB7CiAgICB2YXIKICAgICAgY2xhc3NlcyA9IGVsZW1lbnQuY2xhc3NOYW1lLnNwbGl0
KC9ccysvKSwKICAgICAgaSA9IGNsYXNzZXMubGVuZ3RoLAogICAgICBuZXdDbGFzc2VzID0gW107
CiAgICB3aGlsZSAoaS0tKSB7CiAgICAgIGlmIChjbGFzc2VzW2ldICE9PSBjbGFzc05hbWUpIHsK
ICAgICAgICBuZXdDbGFzc2VzLnB1c2goY2xhc3Nlc1tpXSk7CiAgICAgIH0KICAgIH0KICAgIGVs
ZW1lbnQuY2xhc3NOYW1lID0gbmV3Q2xhc3Nlcy5qb2luKCcgJyk7CiAgfSwKCiAgLyoqCiAgICog
QXR0ZW1wdHMgdG8gbW9kaWZ5IHRoZSBzcGVjaWZpZWQgcGxheWVyIHNvIHRoYXQgaXRzIHN0YXRl
IGlzIGVxdWl2YWxlbnQgdG8KICAgKiB0aGUgc3RhdGUgb2YgdGhlIHNuYXBzaG90LgogICAqIEBw
YXJhbSB7b2JqZWN0fSBzbmFwc2hvdCAtIHRoZSBwbGF5ZXIgc3RhdGUgdG8gYXBwbHkKICAgKi8K
ICByZXN0b3JlUGxheWVyU25hcHNob3QgPSBmdW5jdGlvbihwbGF5ZXIsIHNuYXBzaG90KSB7CiAg
ICB2YXIKICAgICAgLy8gdGhlIHBsYXliYWNrIHRlY2gKICAgICAgdGVjaCA9IHBsYXllci5lbCgp
LnF1ZXJ5U2VsZWN0b3IoJy52anMtdGVjaCcpLAoKICAgICAgLy8gdGhlIG51bWJlciBvZiByZW1h
aW5pbmcgYXR0ZW1wdHMgdG8gcmVzdG9yZSB0aGUgc25hcHNob3QKICAgICAgYXR0ZW1wdHMgPSAy
MCwKCiAgICAgIC8vIGZpbmlzaCByZXN0b3JpbmcgdGhlIHBsYXliYWNrIHN0YXRlCiAgICAgIHJl
c3VtZSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHBsYXllci5jdXJyZW50VGltZShzbmFwc2hvdC5j
dXJyZW50VGltZSk7CiAgICAgICAgaWYgKHNuYXBzaG90LnBsYXkpIHsKICAgICAgICAgIHBsYXll
ci5wbGF5KCk7CiAgICAgICAgfQogICAgICB9LAoKICAgICAgLy8gZGV0ZXJtaW5lIGlmIHRoZSB2
aWRlbyBlbGVtZW50IGhhcyBsb2FkZWQgZW5vdWdoIG9mIHRoZSBzbmFwc2hvdCBzb3VyY2UKICAg
ICAgLy8gdG8gYmUgcmVhZHkgdG8gYXBwbHkgdGhlIHJlc3Qgb2YgdGhlIHN0YXRlCiAgICAgIHRy
eVRvUmVzdW1lID0gZnVuY3Rpb24oKSB7CiAgICAgICAgaWYgKHRlY2guc2Vla2FibGUgPT09IHVu
ZGVmaW5lZCkgewogICAgICAgICAgLy8gaWYgdGhlIHRlY2ggZG9lc24ndCBleHBvc2UgdGhlIHNl
ZWthYmxlIHRpbWUgcmFuZ2VzLCB0cnkgdG8KICAgICAgICAgIC8vIHJlc3VtZSBwbGF5YmFjayBp
bW1lZGlhdGVseQogICAgICAgICAgcmVzdW1lKCk7CiAgICAgICAgICByZXR1cm47CiAgICAgICAg
fQogICAgICAgIGlmICh0ZWNoLnNlZWthYmxlLmxlbmd0aCA+IDApIHsKICAgICAgICAgIC8vIGlm
IHNvbWUgcGVyaW9kIG9mIHRoZSB2aWRlbyBpcyBzZWVrYWJsZSwgcmVzdW1lIHBsYXliYWNrCiAg
ICAgICAgICByZXN1bWUoKTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgCiAg
ICAgICAgLy8gZGVsYXkgYSBiaXQgYW5kIHRoZW4gY2hlY2sgYWdhaW4gdW5sZXNzIHdlJ3JlIG91
dCBvZiBhdHRlbXB0cwogICAgICAgIGlmIChhdHRlbXB0cy0tKSB7CiAgICAgICAgICBzZXRUaW1l
b3V0KHRyeVRvUmVzdW1lLCA1MCk7CiAgICAgICAgfQogICAgICB9OwoKICAgIGlmIChzbmFwc2hv
dC5uYXRpdmVQb3N0ZXIpIHsKICAgICAgdGVjaC5wb3N0ZXIgPSBzbmFwc2hvdC5uYXRpdmVQb3N0
ZXI7CiAgICB9CgogICAgLy8gd2l0aCBhIGN1c3RvbSBhZCBkaXNwbGF5IG9yIGJ1cm5lZC1pbiBh
ZHMsIHRoZSBjb250ZW50IHBsYXllciBzdGF0ZQogICAgLy8gaGFzbid0IGJlZW4gbW9kaWZpZWQg
YW5kIHNvIG5vIHJlc3RvcmF0aW9uIGlzIHJlcXVpcmVkCiAgICBpZiAocGxheWVyLmN1cnJlbnRT
cmMoKSA9PT0gc25hcHNob3Quc3JjKSB7CiAgICAgIHBsYXllci5wbGF5KCk7CiAgICAgIHJldHVy
bjsKICAgIH0KCiAgICBwbGF5ZXIuc3JjKHNuYXBzaG90LnNyYyk7CiAgICAvLyBzYWZhcmkgcmVx
dWlyZXMgYSBjYWxsIHRvIGBsb2FkYCB0byBwaWNrIHVwIGEgY2hhbmdlZCBzb3VyY2UKICAgIHBs
YXllci5sb2FkKCk7CgogICAgcGxheWVyLm9uZSgnbG9hZGVkbWV0YWRhdGEnLCB0cnlUb1Jlc3Vt
ZSk7CiAgfSwKCiAgLyoqCiAgICogUmVtb3ZlIHRoZSBwb3N0ZXIgYXR0cmlidXRlIGZyb20gdGhl
IHZpZGVvIGVsZW1lbnQgdGVjaCwgaWYgcHJlc2VudC4gV2hlbgogICAqIHJldXNpbmcgYSB2aWRl
byBlbGVtZW50IGZvciBtdWx0aXBsZSB2aWRlb3MsIHRoZSBwb3N0ZXIgaW1hZ2Ugd2lsbCBicmll
Zmx5CiAgICogcmVhcHBlYXIgd2hpbGUgdGhlIG5ldyBzb3VyY2UgbG9hZHMuIFJlbW92aW5nIHRo
ZSBhdHRyaWJ1dGUgYWhlYWQgb2YgdGltZQogICAqIHByZXZlbnRzIHRoZSBwb3N0ZXIgZnJvbSBz
aG93aW5nIHVwIGJldHdlZW4gdmlkZW9zLgogICAqIEBwYXJhbSB7b2JqZWN0fSBwbGF5ZXIgVGhl
IHZpZGVvanMgcGxheWVyIG9iamVjdAogICAqLwogIHJlbW92ZU5hdGl2ZVBvc3RlciA9IGZ1bmN0
aW9uKHBsYXllcikgewogICAgdmFyIHRlY2ggPSBwbGF5ZXIuZWwoKS5xdWVyeVNlbGVjdG9yKCcu
dmpzLXRlY2gnKTsKICAgIGlmICh0ZWNoKSB7CiAgICAgIC8vIHRlY2gucG9zdGVyID0gbnVsbDsK
ICAgICAgdGVjaC5yZW1vdmVBdHRyaWJ1dGUoJ3Bvc3RlcicpOwogICAgfQogIH0sCgogIC8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogIC8vIEFkIEZyYW1ld29yawogIC8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQoKICAvLyBkZWZhdWx0IGZyYW1ld29yayBzZXR0aW5ncwogIGRlZmF1bHRzID0gewogICAgLy8g
bWF4aW11bSBhbW91bnQgb2YgdGltZSBpbiBtcyB0byB3YWl0IHRvIHJlY2VpdmUgYGFkc3JlYWR5
YCBmcm9tIHRoZSBhZAogICAgLy8gaW1wbGVtZW50YXRpb24gYWZ0ZXIgcGxheSBoYXMgYmVlbiBy
ZXF1ZXN0ZWQuIEFkIGltcGxlbWVudGF0aW9ucyBhcmUKICAgIC8vIGV4cGVjdGVkIHRvIGxvYWQg
YW55IGR5bmFtaWMgbGlicmFyaWVzIGFuZCBtYWtlIGFueSByZXF1ZXN0cyB0byBkZXRlcm1pbmUK
ICAgIC8vIGFkIHBvbGljaWVzIGZvciBhIHZpZGVvIGR1cmluZyB0aGlzIHRpbWUuCiAgICB0aW1l
b3V0OiA1MDAwLAoKICAgIC8vIG1heGltdW0gYW1vdW50IG9mIHRpbWUgaW4gbXMgdG8gd2FpdCBm
b3IgdGhlIGFkIGltcGxlbWVudGF0aW9uIHRvIHN0YXJ0CiAgICAvLyBsaW5lYXIgYWQgbW9kZSBh
ZnRlciBgcmVhZHlmb3JwcmVyb2xsYCBoYXMgZmlyZWQuIFRoaXMgaXMgaW4gYWRkaXRpb24gdG8K
ICAgIC8vIHRoZSBzdGFuZGFyZCB0aW1lb3V0LgogICAgcHJlcm9sbFRpbWVvdXQ6IDEwMCwKCiAg
ICAvLyB3aGVuIHRydXRoeSwgaW5zdHJ1Y3RzIHRoZSBwbHVnaW4gdG8gb3V0cHV0IGFkZGl0aW9u
YWwgaW5mb3JtYXRpb24gYWJvdXQKICAgIC8vIHBsdWdpbiBzdGF0ZSB0byB0aGUgdmlkZW8uanMg
bG9nLiBPbiBtb3N0IGRldmljZXMsIHRoZSB2aWRlby5qcyBsb2cgaXMKICAgIC8vIHRoZSBzYW1l
IGFzIHRoZSBkZXZlbG9wZXIgY29uc29sZS4KICAgIGRlYnVnOiBmYWxzZQogIH0sCgogIGFkRnJh
bWV3b3JrID0gZnVuY3Rpb24ob3B0aW9ucykgewogICAgdmFyCiAgICAgIHBsYXllciA9IHRoaXMs
CgogICAgICAvLyBtZXJnZSBvcHRpb25zIGFuZCBkZWZhdWx0cwogICAgICBzZXR0aW5ncyA9IGV4
dGVuZCh7fSwgZGVmYXVsdHMsIG9wdGlvbnMgfHwge30pLAogICAgICAKICAgICAgZnNtSGFuZGxl
cjsKICAgIAogICAgLy8gcmVwbGFjZSB0aGUgYWQgaW5pdGlhbGl6ZXIgd2l0aCB0aGUgYWQgbmFt
ZXNwYWNlCiAgICBwbGF5ZXIuYWRzID0gewogICAgICBzdGF0ZTogJ2NvbnRlbnQtc2V0JywKCiAg
ICAgIHN0YXJ0TGluZWFyQWRNb2RlOiBmdW5jdGlvbigpIHsKICAgICAgICBwbGF5ZXIudHJpZ2dl
cignYWRzdGFydCcpOwogICAgICB9LAoKICAgICAgZW5kTGluZWFyQWRNb2RlOiBmdW5jdGlvbigp
IHsKICAgICAgICBwbGF5ZXIudHJpZ2dlcignYWRlbmQnKTsKICAgICAgfQogICAgfTsKICAgIAog
ICAgZnNtSGFuZGxlciA9IGZ1bmN0aW9uKGV2ZW50KSB7CgogICAgICAvLyBBZCBQbGF5YmFjayBT
dGF0ZSBNYWNoaW5lCiAgICAgIHZhcgogICAgICAgIGZzbSA9IHsKICAgICAgICAgICdjb250ZW50
LXNldCc6IHsKICAgICAgICAgICAgZXZlbnRzOiB7CiAgICAgICAgICAgICAgJ2Fkc3JlYWR5Jzog
ZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gJ2Fkcy1yZWFkeSc7CiAg
ICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAncGxheSc6IGZ1bmN0aW9uKCkgewogICAgICAg
ICAgICAgICAgdGhpcy5zdGF0ZSA9ICdhZHMtcmVhZHk/JzsKICAgICAgICAgICAgICAgIHRoaXMu
c25hcHNob3QgPSBnZXRQbGF5ZXJTbmFwc2hvdChwbGF5ZXIpOwogICAgICAgICAgICAgICAgY2Fu
Y2VsQ29udGVudFBsYXkocGxheWVyKTsKCiAgICAgICAgICAgICAgICAvLyByZW1vdmUgdGhlIHBv
c3RlciBzbyBpdCBkb2Vzbid0IGZsYXNoIGJldHdlZW4gdmlkZW9zCiAgICAgICAgICAgICAgICBy
ZW1vdmVOYXRpdmVQb3N0ZXIocGxheWVyKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0K
ICAgICAgICAgIH0sCiAgICAgICAgICAnYWRzLXJlYWR5JzogewogICAgICAgICAgICBldmVudHM6
IHsKICAgICAgICAgICAgICAncGxheSc6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgdGhp
cy5zdGF0ZSA9ICdwcmVyb2xsPyc7CiAgICAgICAgICAgICAgICBjYW5jZWxDb250ZW50UGxheShw
bGF5ZXIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAg
ICAgICdwcmVyb2xsPyc6IHsKICAgICAgICAgICAgZW50ZXI6IGZ1bmN0aW9uKCkgewogICAgICAg
ICAgICAgIAogICAgICAgICAgICAgIC8vIGNhcHR1cmUgY3VycmVudCBwbGF5ZXIgc3RhdGUgc25h
cHNob3QgKHBsYXlpbmcsIGN1cnJlbnRUaW1lLCBzcmMpCiAgICAgICAgICAgICAgdGhpcy5zbmFw
c2hvdCA9IGdldFBsYXllclNuYXBzaG90KHBsYXllcik7CgogICAgICAgICAgICAgIC8vIHJlbW92
ZSB0aGUgcG9zdGVyIHNvIGl0IGRvZXNuJ3QgZmxhc2ggYmV0d2VlbiB2aWRlb3MKICAgICAgICAg
ICAgICByZW1vdmVOYXRpdmVQb3N0ZXIocGxheWVyKTsKICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAvLyBjaGFuZ2UgY2xhc3MgdG8gc2hvdyB0aGF0IHdlJ3JlIHdhaXRpbmcgb24gYWRzCiAg
ICAgICAgICAgICAgcGxheWVyLmVsKCkuY2xhc3NOYW1lICs9ICcgdmpzLWFkLWxvYWRpbmcnOwog
ICAgICAgICAgICAgIAogICAgICAgICAgICAgIC8vIHNjaGVkdWxlIGFuIGFkdGltZW91dCBldmVu
dCB0byBmaXJlIGlmIHdlIHdhaXRlZCB0b28gbG9uZwogICAgICAgICAgICAgIHBsYXllci5hZHMu
dGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAg
cGxheWVyLnRyaWdnZXIoJ2FkdGltZW91dCcpOwogICAgICAgICAgICAgIH0sIHNldHRpbmdzLnBy
ZXJvbGxUaW1lb3V0KTsKICAgICAgICAgICAgICAKICAgICAgICAgICAgICAvLyBzaWduYWwgdG8g
YWQgcGx1Z2luIHRoYXQgaXQncyB0aGVpciBvcHBvcnR1bml0eSB0byBwbGF5IGEgcHJlcm9sbAog
ICAgICAgICAgICAgIHBsYXllci50cmlnZ2VyKCdyZWFkeWZvcnByZXJvbGwnKTsKICAgICAgICAg
ICAgICAKICAgICAgICAgICAgfSwKICAgICAgICAgICAgbGVhdmU6IGZ1bmN0aW9uKCkgewogICAg
ICAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQocGxheWVyLmFkcy50aW1lb3V0KTsKCiAgICAg
ICAgICAgICAgY2xlYXJJbW1lZGlhdGUocGxheWVyLmFkcy5jYW5jZWxQbGF5VGltZW91dCk7CiAg
ICAgICAgICAgICAgcGxheWVyLmFkcy5jYW5jZWxQbGF5VGltZW91dCA9IG51bGw7CgogICAgICAg
ICAgICAgIHJlbW92ZUNsYXNzKHBsYXllci5lbCgpLCAndmpzLWFkLWxvYWRpbmcnKTsKICAgICAg
ICAgICAgfSwKICAgICAgICAgICAgZXZlbnRzOiB7CiAgICAgICAgICAgICAgJ3BsYXknOiBmdW5j
dGlvbigpIHsKICAgICAgICAgICAgICAgIGNhbmNlbENvbnRlbnRQbGF5KHBsYXllcik7CiAgICAg
ICAgICAgICAgfSwKICAgICAgICAgICAgICAnYWRzdGFydCc6IGZ1bmN0aW9uKCkgewogICAgICAg
ICAgICAgICAgdGhpcy5zdGF0ZSA9ICdhZC1wbGF5YmFjayc7CiAgICAgICAgICAgICAgICBwbGF5
ZXIuZWwoKS5jbGFzc05hbWUgKz0gJyB2anMtYWQtcGxheWluZyc7CiAgICAgICAgICAgICAgfSwK
ICAgICAgICAgICAgICAnYWR0aW1lb3V0JzogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICB0
aGlzLnN0YXRlID0gJ2NvbnRlbnQtcGxheWJhY2snOwogICAgICAgICAgICAgICAgcGxheWVyLnBs
YXkoKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAg
ICAnYWRzLXJlYWR5Pyc6IHsKICAgICAgICAgICAgZW50ZXI6IGZ1bmN0aW9uKCkgewogICAgICAg
ICAgICAgIHBsYXllci5lbCgpLmNsYXNzTmFtZSArPSAnIHZqcy1hZC1sb2FkaW5nJzsKICAgICAg
ICAgICAgICBwbGF5ZXIuYWRzLnRpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigp
IHsKICAgICAgICAgICAgICAgIHBsYXllci50cmlnZ2VyKCdhZHRpbWVvdXQnKTsKICAgICAgICAg
ICAgICB9LCBzZXR0aW5ncy50aW1lb3V0KTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgbGVh
dmU6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQocGxheWVy
LmFkcy50aW1lb3V0KTsKICAgICAgICAgICAgICByZW1vdmVDbGFzcyhwbGF5ZXIuZWwoKSwgJ3Zq
cy1hZC1sb2FkaW5nJyk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGV2ZW50czogewogICAg
ICAgICAgICAgICdwbGF5JzogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBjYW5jZWxDb250
ZW50UGxheShwbGF5ZXIpOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgJ2Fkc3JlYWR5
JzogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gJ3ByZXJvbGw/JzsK
ICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICdhZHRpbWVvdXQnOiBmdW5jdGlvbigpIHsK
ICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSAnYWQtdGltZW91dC1wbGF5YmFjayc7CiAgICAg
ICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgJ2FkLXRpbWVv
dXQtcGxheWJhY2snOiB7CiAgICAgICAgICAgIGVudGVyOiBmdW5jdGlvbigpIHsKICAgICAgICAg
ICAgICByZXN0b3JlUGxheWVyU25hcHNob3QocGxheWVyLCB0aGlzLnNuYXBzaG90KTsKICAgICAg
ICAgICAgfSwKICAgICAgICAgICAgZXZlbnRzOiB7CiAgICAgICAgICAgICAgJ2Fkc3JlYWR5Jzog
ZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBpZiAocGxheWVyLnBhdXNlZCgpKSB7CiAgICAg
ICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSAnYWRzLXJlYWR5JzsKICAgICAgICAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSAncHJlcm9sbD8nOwogICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgJ2NvbnRlbnR1cGRhdGUn
OiBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIGlmIChwbGF5ZXIucGF1c2VkKCkpIHsKICAg
ICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9ICdjb250ZW50LXNldCc7CiAgICAgICAgICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gJ2Fkcy1yZWFkeT8nOwog
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAg
fSwKICAgICAgICAgICdhZC1wbGF5YmFjayc6IHsKICAgICAgICAgICAgZXZlbnRzOiB7CiAgICAg
ICAgICAgICAgJ2FkZW5kJzogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICB0aGlzLnN0YXRl
ID0gJ2NvbnRlbnQtcGxheWJhY2snOwogICAgICAgICAgICAgICAgcmVtb3ZlQ2xhc3MocGxheWVy
LmVsKCksICd2anMtYWQtcGxheWluZycpOwogICAgICAgICAgICAgICAgcmVzdG9yZVBsYXllclNu
YXBzaG90KHBsYXllciwgdGhpcy5zbmFwc2hvdCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAg
ICB9CiAgICAgICAgICB9LAogICAgICAgICAgJ2NvbnRlbnQtcGxheWJhY2snOiB7CiAgICAgICAg
ICAgIGV2ZW50czogewogICAgICAgICAgICAgICdhZHN0YXJ0JzogZnVuY3Rpb24oKSB7CiAgICAg
ICAgICAgICAgICB0aGlzLnN0YXRlID0gJ2FkLXBsYXliYWNrJzsKICAgICAgICAgICAgICAgIHRo
aXMuc25hcHNob3QgPSBnZXRQbGF5ZXJTbmFwc2hvdChwbGF5ZXIpOwogICAgICAgICAgICAgICAg
cGxheWVyLmVsKCkuY2xhc3NOYW1lICs9ICcgdmpzLWFkLXBsYXlpbmcnOwoKICAgICAgICAgICAg
ICAgIC8vIHJlbW92ZSB0aGUgcG9zdGVyIHNvIGl0IGRvZXNuJ3QgZmxhc2ggYmV0d2VlbiB2aWRl
b3MKICAgICAgICAgICAgICAgIHJlbW92ZU5hdGl2ZVBvc3RlcihwbGF5ZXIpOwogICAgICAgICAg
ICAgIH0sCiAgICAgICAgICAgICAgJ2NvbnRlbnR1cGRhdGUnOiBmdW5jdGlvbigpIHsKICAgICAg
ICAgICAgICAgIGlmIChwbGF5ZXIucGF1c2VkKCkpIHsKICAgICAgICAgICAgICAgICAgdGhpcy5z
dGF0ZSA9ICdjb250ZW50LXNldCc7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgICAgICB0aGlzLnN0YXRlID0gJ2Fkcy1yZWFkeT8nOwogICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH07CgogICAgICAo
ZnVuY3Rpb24oc3RhdGUpIHsKICAgICAgICAKICAgICAgICB2YXIgbm9vcCA9IGZ1bmN0aW9uKCkg
e307CiAgICAgICAgCiAgICAgICAgLy8gcHJvY2VzcyB0aGUgY3VycmVudCBldmVudCB3aXRoIGEg
bm9vcCBkZWZhdWx0IGhhbmRsZXIKICAgICAgICAoZnNtW3N0YXRlXS5ldmVudHNbZXZlbnQudHlw
ZV0gfHwgbm9vcCkuYXBwbHkocGxheWVyLmFkcyk7CiAgICAgICAgCiAgICAgICAgLy8gZXhlY3V0
ZSBsZWF2ZS9lbnRlciBjYWxsYmFja3MgaWYgcHJlc2VudAogICAgICAgIGlmIChzdGF0ZSAhPT0g
cGxheWVyLmFkcy5zdGF0ZSkgewogICAgICAgICAgKGZzbVtzdGF0ZV0ubGVhdmUgfHwgbm9vcCku
YXBwbHkocGxheWVyLmFkcyk7CiAgICAgICAgICAoZnNtW3BsYXllci5hZHMuc3RhdGVdLmVudGVy
IHx8IG5vb3ApLmFwcGx5KHBsYXllci5hZHMpOwoKICAgICAgICAgIGlmIChzZXR0aW5ncy5kZWJ1
ZykgewogICAgICAgICAgICB2aWRlb2pzLmxvZygnYWRzJywgc3RhdGUgKyAnIC0+ICcgKyBwbGF5
ZXIuYWRzLnN0YXRlKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgIH0pKHBs
YXllci5hZHMuc3RhdGUpOwoKICAgIH07CgogICAgLy8gcmVnaXN0ZXIgZm9yIHRoZSBldmVudHMg
d2UncmUgaW50ZXJlc3RlZCBpbgogICAgb24ocGxheWVyLCB2anMuSHRtbDUuRXZlbnRzLmNvbmNh
dChbCiAgICAgIC8vIGV2ZW50cyBlbWl0dGVkIGJ5IGFkIHBsdWdpbgogICAgICAnYWR0aW1lb3V0
JywKICAgICAgJ2NvbnRlbnR1cGRhdGUnLAogICAgICAvLyBldmVudHMgZW1pdHRlZCBieSB0aGly
ZCBwYXJ0eSBhZCBpbXBsZW1lbnRvcnMKICAgICAgJ2Fkc3JlYWR5JywKICAgICAgJ2Fkc3RhcnQn
LCAgLy8gc3RhcnRMaW5lYXJBZE1vZGUoKQogICAgICAnYWRlbmQnLCAgICAvLyBlbmRMaW5lYXJB
ZE1vZGUoKQogICAgXSksIGZzbUhhbmRsZXIpOwogICAgCiAgICAvLyBpbXBsZW1lbnQgJ2NvbnRl
bnR1cGRhdGUnIGV2ZW50LgogICAgKGZ1bmN0aW9uKCl7CiAgICAgIHZhcgogICAgICAgIC8vIGtl
ZXAgdHJhY2sgb2YgbGFzdCBzcmMKICAgICAgICBsYXN0U3JjLAogICAgICAgIC8vIGNoZWNrIGlm
IGEgbmV3IHNyYyBoYXMgYmVlbiBzZXQsIGlmIHNvLCB0cmlnZ2VyIGNvbnRlbnR1cGRhdGUKICAg
ICAgICBjaGVja1NyYyA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgdmFyIHNyYzsKICAgICAgICAg
IGlmIChwbGF5ZXIuYWRzLnN0YXRlICE9PSAnYWQtcGxheWJhY2snKSB7CiAgICAgICAgICAgIHNy
YyA9IHBsYXllci5jdXJyZW50U3JjKCk7CiAgICAgICAgICAgIGlmIChzcmMgIT09IGxhc3RTcmMp
IHsKICAgICAgICAgICAgICBwbGF5ZXIudHJpZ2dlcih7CiAgICAgICAgICAgICAgICB0eXBlOiAn
Y29udGVudHVwZGF0ZScsCiAgICAgICAgICAgICAgICBvbGRWYWx1ZTogbGFzdFNyYywKICAgICAg
ICAgICAgICAgIG5ld1ZhbHVlOiBzcmMKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICBs
YXN0U3JjID0gc3JjOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAg
Ly8gbG9hZHN0YXJ0IHJlbGlhYmx5IGluZGljYXRlcyBhIG5ldyBzcmMgaGFzIGJlZW4gc2V0CiAg
ICAgIHBsYXllci5vbignbG9hZHN0YXJ0JywgY2hlY2tTcmMpOwogICAgICAvLyBjaGVjayBpbW1l
ZGlhdGVseSBpbiBjYXNlIHdlIG1pc3NlZCB0aGUgbG9hZHN0YXJ0CiAgICAgIHNldEltbWVkaWF0
ZShjaGVja1NyYyk7CiAgICB9KSgpOwogICAgCiAgICAvLyBraWNrIG9mZiB0aGUgZnNtCiAgICBp
ZiAoIXBsYXllci5wYXVzZWQoKSkgewogICAgICAvLyBzaW11bGF0ZSBhIHBsYXkgZXZlbnQgaWYg
d2UncmUgYXV0b3BsYXlpbmcKICAgICAgZnNtSGFuZGxlcih7dHlwZToncGxheSd9KTsKICAgIH0K
ICAgIAogIH07CgogIC8vIHJlZ2lzdGVyIHRoZSBhZCBwbHVnaW4gZnJhbWV3b3JrCiAgdmpzLnBs
dWdpbignYWRzJywgYWRGcmFtZXdvcmspOwoKfSkod2luZG93LCBkb2N1bWVudCwgdmlkZW9qcyk7
Cg==
|
|
59 | /video/js/vast-client.js | application/javascript | vast-client.js | 200 OK | TEXT | 41.3 KB | 06/18/79 11:54:51 |
Download
|
|
SHA256
|
64f7b54f1a3fba3c011e07a6e852c6c40b5994371068239c4501f609d5ca216c
|
Referer
|
http://cdn.bitmedianetwork.com/video/adplayer.html?timestamp=1481644853337&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t
|
Magic
|
Inconclusive. Probably text (TEXT)
|
Request
|
GET /video/js/vast-client.js HTTP/1.1
Accept: */*
Referer: http://cdn.bitmedianetwork.com/video/adplayer.html?timestamp=1481644853337&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: EB2urCP0iXXvLKS6KS8UU1jRRRTZb8M1RaGl2tZKRvQDuMmLJ4yi1cG7QvrICxVh3bFMYL8LLzA=
x-amz-request-id: 76BEB235E3809784
x-amz-meta-cache-control: max-age=86400
Content-Type: application/javascript
Server: AmazonS3
Age: 44383
Date: Tue, 13 Dec 2016 16:01:07 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:46 GMT
Expires: Wed, 14 Dec 2016 03:41:24 GMT
Content-Length: 42317
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
!function(e){if("object"==typeof exports)module.exports=e();else if("function"==typeof define&&define.amd)define(e);else{var f;"...
|
IWZ1bmN0aW9uKGUpe2lmKCJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyltb2R1bGUuZXhwb3J0cz1l
KCk7ZWxzZSBpZigiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kKWRlZmluZShl
KTtlbHNle3ZhciBmOyJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P2Y9d2luZG93OiJ1bmRlZmlu
ZWQiIT10eXBlb2YgZ2xvYmFsP2Y9Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmKGY9
c2VsZiksZi5ETVZBU1Q9ZSgpfX0oZnVuY3Rpb24oKXt2YXIgZGVmaW5lLG1vZHVsZSxleHBvcnRz
O3JldHVybiAoZnVuY3Rpb24gZSh0LG4scil7ZnVuY3Rpb24gcyhvLHUpe2lmKCFuW29dKXtpZigh
dFtvXSl7dmFyIGE9dHlwZW9mIHJlcXVpcmU9PSJmdW5jdGlvbiImJnJlcXVpcmU7aWYoIXUmJmEp
cmV0dXJuIGEobywhMCk7aWYoaSlyZXR1cm4gaShvLCEwKTt0aHJvdyBuZXcgRXJyb3IoIkNhbm5v
dCBmaW5kIG1vZHVsZSAnIitvKyInIil9dmFyIGY9bltvXT17ZXhwb3J0czp7fX07dFtvXVswXS5j
YWxsKGYuZXhwb3J0cyxmdW5jdGlvbihlKXt2YXIgbj10W29dWzFdW2VdO3JldHVybiBzKG4/bjpl
KX0sZixmLmV4cG9ydHMsZSx0LG4scil9cmV0dXJuIG5bb10uZXhwb3J0c312YXIgaT10eXBlb2Yg
cmVxdWlyZT09ImZ1bmN0aW9uIiYmcmVxdWlyZTtmb3IodmFyIG89MDtvPHIubGVuZ3RoO28rKylz
KHJbb10pO3JldHVybiBzfSkoezE6W2Z1bmN0aW9uKF9kZXJlcV8sbW9kdWxlLGV4cG9ydHMpewov
LyBDb3B5cmlnaHQgSm95ZW50LCBJbmMuIGFuZCBvdGhlciBOb2RlIGNvbnRyaWJ1dG9ycy4KLy8K
Ly8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBw
ZXJzb24gb2J0YWluaW5nIGEKLy8gY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVk
IGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQovLyAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUg
U29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi8vIHdpdGhvdXQgbGltaXRh
dGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLy8g
ZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2Fy
ZSwgYW5kIHRvIHBlcm1pdAovLyBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5p
c2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUKLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci8v
Ci8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNl
IHNoYWxsIGJlIGluY2x1ZGVkCi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlv
bnMgb2YgdGhlIFNvZnR3YXJlLgovLwovLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElT
IiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUwovLyBPUiBJTVBMSUVELCBJ
TkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi8vIE1FUkNIQU5U
QUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdF
TUVOVC4gSU4KLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERF
UlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sCi8vIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZ
LCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUgovLyBPVEhFUldJU0Us
IEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUg
T1IgVEhFCi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCgpmdW5jdGlv
biBFdmVudEVtaXR0ZXIoKSB7CiAgdGhpcy5fZXZlbnRzID0gdGhpcy5fZXZlbnRzIHx8IHt9Owog
IHRoaXMuX21heExpc3RlbmVycyA9IHRoaXMuX21heExpc3RlbmVycyB8fCB1bmRlZmluZWQ7Cn0K
bW9kdWxlLmV4cG9ydHMgPSBFdmVudEVtaXR0ZXI7CgovLyBCYWNrd2FyZHMtY29tcGF0IHdpdGgg
bm9kZSAwLjEwLngKRXZlbnRFbWl0dGVyLkV2ZW50RW1pdHRlciA9IEV2ZW50RW1pdHRlcjsKCkV2
ZW50RW1pdHRlci5wcm90b3R5cGUuX2V2ZW50cyA9IHVuZGVmaW5lZDsKRXZlbnRFbWl0dGVyLnBy
b3RvdHlwZS5fbWF4TGlzdGVuZXJzID0gdW5kZWZpbmVkOwoKLy8gQnkgZGVmYXVsdCBFdmVudEVt
aXR0ZXJzIHdpbGwgcHJpbnQgYSB3YXJuaW5nIGlmIG1vcmUgdGhhbiAxMCBsaXN0ZW5lcnMgYXJl
Ci8vIGFkZGVkIHRvIGl0LiBUaGlzIGlzIGEgdXNlZnVsIGRlZmF1bHQgd2hpY2ggaGVscHMgZmlu
ZGluZyBtZW1vcnkgbGVha3MuCkV2ZW50RW1pdHRlci5kZWZhdWx0TWF4TGlzdGVuZXJzID0gMTA7
CgovLyBPYnZpb3VzbHkgbm90IGFsbCBFbWl0dGVycyBzaG91bGQgYmUgbGltaXRlZCB0byAxMC4g
VGhpcyBmdW5jdGlvbiBhbGxvd3MKLy8gdGhhdCB0byBiZSBpbmNyZWFzZWQuIFNldCB0byB6ZXJv
IGZvciB1bmxpbWl0ZWQuCkV2ZW50RW1pdHRlci5wcm90b3R5cGUuc2V0TWF4TGlzdGVuZXJzID0g
ZnVuY3Rpb24obikgewogIGlmICghaXNOdW1iZXIobikgfHwgbiA8IDAgfHwgaXNOYU4obikpCiAg
ICB0aHJvdyBUeXBlRXJyb3IoJ24gbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlcicpOwogIHRoaXMu
X21heExpc3RlbmVycyA9IG47CiAgcmV0dXJuIHRoaXM7Cn07CgpFdmVudEVtaXR0ZXIucHJvdG90
eXBlLmVtaXQgPSBmdW5jdGlvbih0eXBlKSB7CiAgdmFyIGVyLCBoYW5kbGVyLCBsZW4sIGFyZ3Ms
IGksIGxpc3RlbmVyczsKCiAgaWYgKCF0aGlzLl9ldmVudHMpCiAgICB0aGlzLl9ldmVudHMgPSB7
fTsKCiAgLy8gSWYgdGhlcmUgaXMgbm8gJ2Vycm9yJyBldmVudCBsaXN0ZW5lciB0aGVuIHRocm93
LgogIGlmICh0eXBlID09PSAnZXJyb3InKSB7CiAgICBpZiAoIXRoaXMuX2V2ZW50cy5lcnJvciB8
fAogICAgICAgIChpc09iamVjdCh0aGlzLl9ldmVudHMuZXJyb3IpICYmICF0aGlzLl9ldmVudHMu
ZXJyb3IubGVuZ3RoKSkgewogICAgICBlciA9IGFyZ3VtZW50c1sxXTsKICAgICAgaWYgKGVyIGlu
c3RhbmNlb2YgRXJyb3IpIHsKICAgICAgICB0aHJvdyBlcjsgLy8gVW5oYW5kbGVkICdlcnJvcicg
ZXZlbnQKICAgICAgfSBlbHNlIHsKICAgICAgICB0aHJvdyBUeXBlRXJyb3IoJ1VuY2F1Z2h0LCB1
bnNwZWNpZmllZCAiZXJyb3IiIGV2ZW50LicpOwogICAgICB9CiAgICAgIHJldHVybiBmYWxzZTsK
ICAgIH0KICB9CgogIGhhbmRsZXIgPSB0aGlzLl9ldmVudHNbdHlwZV07CgogIGlmIChpc1VuZGVm
aW5lZChoYW5kbGVyKSkKICAgIHJldHVybiBmYWxzZTsKCiAgaWYgKGlzRnVuY3Rpb24oaGFuZGxl
cikpIHsKICAgIHN3aXRjaCAoYXJndW1lbnRzLmxlbmd0aCkgewogICAgICAvLyBmYXN0IGNhc2Vz
CiAgICAgIGNhc2UgMToKICAgICAgICBoYW5kbGVyLmNhbGwodGhpcyk7CiAgICAgICAgYnJlYWs7
CiAgICAgIGNhc2UgMjoKICAgICAgICBoYW5kbGVyLmNhbGwodGhpcywgYXJndW1lbnRzWzFdKTsK
ICAgICAgICBicmVhazsKICAgICAgY2FzZSAzOgogICAgICAgIGhhbmRsZXIuY2FsbCh0aGlzLCBh
cmd1bWVudHNbMV0sIGFyZ3VtZW50c1syXSk7CiAgICAgICAgYnJlYWs7CiAgICAgIC8vIHNsb3dl
cgogICAgICBkZWZhdWx0OgogICAgICAgIGxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7CiAgICAgICAg
YXJncyA9IG5ldyBBcnJheShsZW4gLSAxKTsKICAgICAgICBmb3IgKGkgPSAxOyBpIDwgbGVuOyBp
KyspCiAgICAgICAgICBhcmdzW2kgLSAxXSA9IGFyZ3VtZW50c1tpXTsKICAgICAgICBoYW5kbGVy
LmFwcGx5KHRoaXMsIGFyZ3MpOwogICAgfQogIH0gZWxzZSBpZiAoaXNPYmplY3QoaGFuZGxlcikp
IHsKICAgIGxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7CiAgICBhcmdzID0gbmV3IEFycmF5KGxlbiAt
IDEpOwogICAgZm9yIChpID0gMTsgaSA8IGxlbjsgaSsrKQogICAgICBhcmdzW2kgLSAxXSA9IGFy
Z3VtZW50c1tpXTsKCiAgICBsaXN0ZW5lcnMgPSBoYW5kbGVyLnNsaWNlKCk7CiAgICBsZW4gPSBs
aXN0ZW5lcnMubGVuZ3RoOwogICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKQogICAgICBsaXN0
ZW5lcnNbaV0uYXBwbHkodGhpcywgYXJncyk7CiAgfQoKICByZXR1cm4gdHJ1ZTsKfTsKCkV2ZW50
RW1pdHRlci5wcm90b3R5cGUuYWRkTGlzdGVuZXIgPSBmdW5jdGlvbih0eXBlLCBsaXN0ZW5lcikg
ewogIHZhciBtOwoKICBpZiAoIWlzRnVuY3Rpb24obGlzdGVuZXIpKQogICAgdGhyb3cgVHlwZUVy
cm9yKCdsaXN0ZW5lciBtdXN0IGJlIGEgZnVuY3Rpb24nKTsKCiAgaWYgKCF0aGlzLl9ldmVudHMp
CiAgICB0aGlzLl9ldmVudHMgPSB7fTsKCiAgLy8gVG8gYXZvaWQgcmVjdXJzaW9uIGluIHRoZSBj
YXNlIHRoYXQgdHlwZSA9PT0gIm5ld0xpc3RlbmVyIiEgQmVmb3JlCiAgLy8gYWRkaW5nIGl0IHRv
IHRoZSBsaXN0ZW5lcnMsIGZpcnN0IGVtaXQgIm5ld0xpc3RlbmVyIi4KICBpZiAodGhpcy5fZXZl
bnRzLm5ld0xpc3RlbmVyKQogICAgdGhpcy5lbWl0KCduZXdMaXN0ZW5lcicsIHR5cGUsCiAgICAg
ICAgICAgICAgaXNGdW5jdGlvbihsaXN0ZW5lci5saXN0ZW5lcikgPwogICAgICAgICAgICAgIGxp
c3RlbmVyLmxpc3RlbmVyIDogbGlzdGVuZXIpOwoKICBpZiAoIXRoaXMuX2V2ZW50c1t0eXBlXSkK
ICAgIC8vIE9wdGltaXplIHRoZSBjYXNlIG9mIG9uZSBsaXN0ZW5lci4gRG9uJ3QgbmVlZCB0aGUg
ZXh0cmEgYXJyYXkgb2JqZWN0LgogICAgdGhpcy5fZXZlbnRzW3R5cGVdID0gbGlzdGVuZXI7CiAg
ZWxzZSBpZiAoaXNPYmplY3QodGhpcy5fZXZlbnRzW3R5cGVdKSkKICAgIC8vIElmIHdlJ3ZlIGFs
cmVhZHkgZ290IGFuIGFycmF5LCBqdXN0IGFwcGVuZC4KICAgIHRoaXMuX2V2ZW50c1t0eXBlXS5w
dXNoKGxpc3RlbmVyKTsKICBlbHNlCiAgICAvLyBBZGRpbmcgdGhlIHNlY29uZCBlbGVtZW50LCBu
ZWVkIHRvIGNoYW5nZSB0byBhcnJheS4KICAgIHRoaXMuX2V2ZW50c1t0eXBlXSA9IFt0aGlzLl9l
dmVudHNbdHlwZV0sIGxpc3RlbmVyXTsKCiAgLy8gQ2hlY2sgZm9yIGxpc3RlbmVyIGxlYWsKICBp
ZiAoaXNPYmplY3QodGhpcy5fZXZlbnRzW3R5cGVdKSAmJiAhdGhpcy5fZXZlbnRzW3R5cGVdLndh
cm5lZCkgewogICAgdmFyIG07CiAgICBpZiAoIWlzVW5kZWZpbmVkKHRoaXMuX21heExpc3RlbmVy
cykpIHsKICAgICAgbSA9IHRoaXMuX21heExpc3RlbmVyczsKICAgIH0gZWxzZSB7CiAgICAgIG0g
PSBFdmVudEVtaXR0ZXIuZGVmYXVsdE1heExpc3RlbmVyczsKICAgIH0KCiAgICBpZiAobSAmJiBt
ID4gMCAmJiB0aGlzLl9ldmVudHNbdHlwZV0ubGVuZ3RoID4gbSkgewogICAgICB0aGlzLl9ldmVu
dHNbdHlwZV0ud2FybmVkID0gdHJ1ZTsKICAgICAgY29uc29sZS5lcnJvcignKG5vZGUpIHdhcm5p
bmc6IHBvc3NpYmxlIEV2ZW50RW1pdHRlciBtZW1vcnkgJyArCiAgICAgICAgICAgICAgICAgICAg
J2xlYWsgZGV0ZWN0ZWQuICVkIGxpc3RlbmVycyBhZGRlZC4gJyArCiAgICAgICAgICAgICAgICAg
ICAgJ1VzZSBlbWl0dGVyLnNldE1heExpc3RlbmVycygpIHRvIGluY3JlYXNlIGxpbWl0LicsCiAg
ICAgICAgICAgICAgICAgICAgdGhpcy5fZXZlbnRzW3R5cGVdLmxlbmd0aCk7CiAgICAgIGNvbnNv
bGUudHJhY2UoKTsKICAgIH0KICB9CgogIHJldHVybiB0aGlzOwp9OwoKRXZlbnRFbWl0dGVyLnBy
b3RvdHlwZS5vbiA9IEV2ZW50RW1pdHRlci5wcm90b3R5cGUuYWRkTGlzdGVuZXI7CgpFdmVudEVt
aXR0ZXIucHJvdG90eXBlLm9uY2UgPSBmdW5jdGlvbih0eXBlLCBsaXN0ZW5lcikgewogIGlmICgh
aXNGdW5jdGlvbihsaXN0ZW5lcikpCiAgICB0aHJvdyBUeXBlRXJyb3IoJ2xpc3RlbmVyIG11c3Qg
YmUgYSBmdW5jdGlvbicpOwoKICB2YXIgZmlyZWQgPSBmYWxzZTsKCiAgZnVuY3Rpb24gZygpIHsK
ICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIodHlwZSwgZyk7CgogICAgaWYgKCFmaXJlZCkgewogICAg
ICBmaXJlZCA9IHRydWU7CiAgICAgIGxpc3RlbmVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAg
ICB9CiAgfQoKICBnLmxpc3RlbmVyID0gbGlzdGVuZXI7CiAgdGhpcy5vbih0eXBlLCBnKTsKCiAg
cmV0dXJuIHRoaXM7Cn07CgovLyBlbWl0cyBhICdyZW1vdmVMaXN0ZW5lcicgZXZlbnQgaWZmIHRo
ZSBsaXN0ZW5lciB3YXMgcmVtb3ZlZApFdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUxpc3Rl
bmVyID0gZnVuY3Rpb24odHlwZSwgbGlzdGVuZXIpIHsKICB2YXIgbGlzdCwgcG9zaXRpb24sIGxl
bmd0aCwgaTsKCiAgaWYgKCFpc0Z1bmN0aW9uKGxpc3RlbmVyKSkKICAgIHRocm93IFR5cGVFcnJv
cignbGlzdGVuZXIgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7CgogIGlmICghdGhpcy5fZXZlbnRzIHx8
ICF0aGlzLl9ldmVudHNbdHlwZV0pCiAgICByZXR1cm4gdGhpczsKCiAgbGlzdCA9IHRoaXMuX2V2
ZW50c1t0eXBlXTsKICBsZW5ndGggPSBsaXN0Lmxlbmd0aDsKICBwb3NpdGlvbiA9IC0xOwoKICBp
ZiAobGlzdCA9PT0gbGlzdGVuZXIgfHwKICAgICAgKGlzRnVuY3Rpb24obGlzdC5saXN0ZW5lcikg
JiYgbGlzdC5saXN0ZW5lciA9PT0gbGlzdGVuZXIpKSB7CiAgICBkZWxldGUgdGhpcy5fZXZlbnRz
W3R5cGVdOwogICAgaWYgKHRoaXMuX2V2ZW50cy5yZW1vdmVMaXN0ZW5lcikKICAgICAgdGhpcy5l
bWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIGxpc3RlbmVyKTsKCiAgfSBlbHNlIGlmIChpc09i
amVjdChsaXN0KSkgewogICAgZm9yIChpID0gbGVuZ3RoOyBpLS0gPiAwOykgewogICAgICBpZiAo
bGlzdFtpXSA9PT0gbGlzdGVuZXIgfHwKICAgICAgICAgIChsaXN0W2ldLmxpc3RlbmVyICYmIGxp
c3RbaV0ubGlzdGVuZXIgPT09IGxpc3RlbmVyKSkgewogICAgICAgIHBvc2l0aW9uID0gaTsKICAg
ICAgICBicmVhazsKICAgICAgfQogICAgfQoKICAgIGlmIChwb3NpdGlvbiA8IDApCiAgICAgIHJl
dHVybiB0aGlzOwoKICAgIGlmIChsaXN0Lmxlbmd0aCA9PT0gMSkgewogICAgICBsaXN0Lmxlbmd0
aCA9IDA7CiAgICAgIGRlbGV0ZSB0aGlzLl9ldmVudHNbdHlwZV07CiAgICB9IGVsc2UgewogICAg
ICBsaXN0LnNwbGljZShwb3NpdGlvbiwgMSk7CiAgICB9CgogICAgaWYgKHRoaXMuX2V2ZW50cy5y
ZW1vdmVMaXN0ZW5lcikKICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIGxp
c3RlbmVyKTsKICB9CgogIHJldHVybiB0aGlzOwp9OwoKRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5y
ZW1vdmVBbGxMaXN0ZW5lcnMgPSBmdW5jdGlvbih0eXBlKSB7CiAgdmFyIGtleSwgbGlzdGVuZXJz
OwoKICBpZiAoIXRoaXMuX2V2ZW50cykKICAgIHJldHVybiB0aGlzOwoKICAvLyBub3QgbGlzdGVu
aW5nIGZvciByZW1vdmVMaXN0ZW5lciwgbm8gbmVlZCB0byBlbWl0CiAgaWYgKCF0aGlzLl9ldmVu
dHMucmVtb3ZlTGlzdGVuZXIpIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKQogICAg
ICB0aGlzLl9ldmVudHMgPSB7fTsKICAgIGVsc2UgaWYgKHRoaXMuX2V2ZW50c1t0eXBlXSkKICAg
ICAgZGVsZXRlIHRoaXMuX2V2ZW50c1t0eXBlXTsKICAgIHJldHVybiB0aGlzOwogIH0KCiAgLy8g
ZW1pdCByZW1vdmVMaXN0ZW5lciBmb3IgYWxsIGxpc3RlbmVycyBvbiBhbGwgZXZlbnRzCiAgaWYg
KGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHsKICAgIGZvciAoa2V5IGluIHRoaXMuX2V2ZW50cykg
ewogICAgICBpZiAoa2V5ID09PSAncmVtb3ZlTGlzdGVuZXInKSBjb250aW51ZTsKICAgICAgdGhp
cy5yZW1vdmVBbGxMaXN0ZW5lcnMoa2V5KTsKICAgIH0KICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVu
ZXJzKCdyZW1vdmVMaXN0ZW5lcicpOwogICAgdGhpcy5fZXZlbnRzID0ge307CiAgICByZXR1cm4g
dGhpczsKICB9CgogIGxpc3RlbmVycyA9IHRoaXMuX2V2ZW50c1t0eXBlXTsKCiAgaWYgKGlzRnVu
Y3Rpb24obGlzdGVuZXJzKSkgewogICAgdGhpcy5yZW1vdmVMaXN0ZW5lcih0eXBlLCBsaXN0ZW5l
cnMpOwogIH0gZWxzZSB7CiAgICAvLyBMSUZPIG9yZGVyCiAgICB3aGlsZSAobGlzdGVuZXJzLmxl
bmd0aCkKICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcnNbbGlzdGVuZXJz
Lmxlbmd0aCAtIDFdKTsKICB9CiAgZGVsZXRlIHRoaXMuX2V2ZW50c1t0eXBlXTsKCiAgcmV0dXJu
IHRoaXM7Cn07CgpFdmVudEVtaXR0ZXIucHJvdG90eXBlLmxpc3RlbmVycyA9IGZ1bmN0aW9uKHR5
cGUpIHsKICB2YXIgcmV0OwogIGlmICghdGhpcy5fZXZlbnRzIHx8ICF0aGlzLl9ldmVudHNbdHlw
ZV0pCiAgICByZXQgPSBbXTsKICBlbHNlIGlmIChpc0Z1bmN0aW9uKHRoaXMuX2V2ZW50c1t0eXBl
XSkpCiAgICByZXQgPSBbdGhpcy5fZXZlbnRzW3R5cGVdXTsKICBlbHNlCiAgICByZXQgPSB0aGlz
Ll9ldmVudHNbdHlwZV0uc2xpY2UoKTsKICByZXR1cm4gcmV0Owp9OwoKRXZlbnRFbWl0dGVyLmxp
c3RlbmVyQ291bnQgPSBmdW5jdGlvbihlbWl0dGVyLCB0eXBlKSB7CiAgdmFyIHJldDsKICBpZiAo
IWVtaXR0ZXIuX2V2ZW50cyB8fCAhZW1pdHRlci5fZXZlbnRzW3R5cGVdKQogICAgcmV0ID0gMDsK
ICBlbHNlIGlmIChpc0Z1bmN0aW9uKGVtaXR0ZXIuX2V2ZW50c1t0eXBlXSkpCiAgICByZXQgPSAx
OwogIGVsc2UKICAgIHJldCA9IGVtaXR0ZXIuX2V2ZW50c1t0eXBlXS5sZW5ndGg7CiAgcmV0dXJu
IHJldDsKfTsKCmZ1bmN0aW9uIGlzRnVuY3Rpb24oYXJnKSB7CiAgcmV0dXJuIHR5cGVvZiBhcmcg
PT09ICdmdW5jdGlvbic7Cn0KCmZ1bmN0aW9uIGlzTnVtYmVyKGFyZykgewogIHJldHVybiB0eXBl
b2YgYXJnID09PSAnbnVtYmVyJzsKfQoKZnVuY3Rpb24gaXNPYmplY3QoYXJnKSB7CiAgcmV0dXJu
IHR5cGVvZiBhcmcgPT09ICdvYmplY3QnICYmIGFyZyAhPT0gbnVsbDsKfQoKZnVuY3Rpb24gaXNV
bmRlZmluZWQoYXJnKSB7CiAgcmV0dXJuIGFyZyA9PT0gdm9pZCAwOwp9Cgp9LHt9XSwyOltmdW5j
dGlvbihfZGVyZXFfLG1vZHVsZSxleHBvcnRzKXsKLy8gR2VuZXJhdGVkIGJ5IENvZmZlZVNjcmlw
dCAxLjcuMQp2YXIgVkFTVEFkOwoKVkFTVEFkID0gKGZ1bmN0aW9uKCkgewogIGZ1bmN0aW9uIFZB
U1RBZCgpIHsKICAgIHRoaXMuZXJyb3JVUkxUZW1wbGF0ZXMgPSBbXTsKICAgIHRoaXMuaW1wcmVz
c2lvblVSTFRlbXBsYXRlcyA9IFtdOwogICAgdGhpcy5jcmVhdGl2ZXMgPSBbXTsKICB9CgogIHJl
dHVybiBWQVNUQWQ7Cgp9KSgpOwoKbW9kdWxlLmV4cG9ydHMgPSBWQVNUQWQ7Cgp9LHt9XSwzOltm
dW5jdGlvbihfZGVyZXFfLG1vZHVsZSxleHBvcnRzKXsKLy8gR2VuZXJhdGVkIGJ5IENvZmZlZVNj
cmlwdCAxLjcuMQp2YXIgVkFTVENsaWVudCwgVkFTVFBhcnNlciwgVkFTVFV0aWw7CgpWQVNUUGFy
c2VyID0gX2RlcmVxXygnLi9wYXJzZXIuY29mZmVlJyk7CgpWQVNUVXRpbCA9IF9kZXJlcV8oJy4v
dXRpbC5jb2ZmZWUnKTsKClZBU1RDbGllbnQgPSAoZnVuY3Rpb24oKSB7CiAgZnVuY3Rpb24gVkFT
VENsaWVudCgpIHt9CgogIFZBU1RDbGllbnQuY2FwcGluZ0ZyZWVMdW5jaCA9IDA7CgogIFZBU1RD
bGllbnQuY2FwcGluZ01pbmltdW1UaW1lSW50ZXJ2YWwgPSAwOwoKICBWQVNUQ2xpZW50LnRpbWVv
dXQgPSAwOwoKICBWQVNUQ2xpZW50LmdldCA9IGZ1bmN0aW9uKHVybCwgY2IpIHsKICAgIHZhciBu
b3c7CiAgICBub3cgPSArbmV3IERhdGUoKTsKICAgIGlmICh0aGlzLnRvdGFsQ2FsbHNUaW1lb3V0
IDwgbm93KSB7CiAgICAgIHRoaXMudG90YWxDYWxscyA9IDE7CiAgICAgIHRoaXMudG90YWxDYWxs
c1RpbWVvdXQgPSBub3cgKyAoNjAgKiA2MCAqIDEwMDApOwogICAgfSBlbHNlIHsKICAgICAgdGhp
cy50b3RhbENhbGxzKys7CiAgICB9CiAgICBpZiAodGhpcy5jYXBwaW5nRnJlZUx1bmNoID49IHRo
aXMudG90YWxDYWxscykgewogICAgICBjYihudWxsKTsKICAgICAgcmV0dXJuOwogICAgfQogICAg
aWYgKG5vdyAtIHRoaXMubGFzdFN1Y2Nlc3NmdWxsQWQgPCB0aGlzLmNhcHBpbmdNaW5pbXVtVGlt
ZUludGVydmFsKSB7CiAgICAgIGNiKG51bGwpOwogICAgICByZXR1cm47CiAgICB9CiAgICByZXR1
cm4gVkFTVFBhcnNlci5wYXJzZSh1cmwsIChmdW5jdGlvbihfdGhpcykgewogICAgICByZXR1cm4g
ZnVuY3Rpb24ocmVzcG9uc2UpIHsKICAgICAgICByZXR1cm4gY2IocmVzcG9uc2UpOwogICAgICB9
OwogICAgfSkodGhpcykpOwogIH07CgogIChmdW5jdGlvbigpIHsKICAgIHZhciBkZWZpbmVQcm9w
ZXJ0eSwgc3RvcmFnZTsKICAgIHN0b3JhZ2UgPSBWQVNUVXRpbC5zdG9yYWdlOwogICAgZGVmaW5l
UHJvcGVydHkgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7CiAgICBbJ2xhc3RTdWNjZXNzZnVsbEFk
JywgJ3RvdGFsQ2FsbHMnLCAndG90YWxDYWxsc1RpbWVvdXQnXS5mb3JFYWNoKGZ1bmN0aW9uKHBy
b3BlcnR5KSB7CiAgICAgIGRlZmluZVByb3BlcnR5KFZBU1RDbGllbnQsIHByb3BlcnR5LCB7CiAg
ICAgICAgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBzdG9yYWdlLmdldEl0ZW0o
cHJvcGVydHkpOwogICAgICAgIH0sCiAgICAgICAgc2V0OiBmdW5jdGlvbih2YWx1ZSkgewogICAg
ICAgICAgcmV0dXJuIHN0b3JhZ2Uuc2V0SXRlbShwcm9wZXJ0eSwgdmFsdWUpOwogICAgICAgIH0s
CiAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSwKICAgICAgICBlbnVtZXJhYmxlOiB0cnVlCiAg
ICAgIH0pOwogICAgfSk7CiAgICBpZiAoVkFTVENsaWVudC50b3RhbENhbGxzID09IG51bGwpIHsK
ICAgICAgVkFTVENsaWVudC50b3RhbENhbGxzID0gMDsKICAgIH0KICAgIGlmIChWQVNUQ2xpZW50
LnRvdGFsQ2FsbHNUaW1lb3V0ID09IG51bGwpIHsKICAgICAgVkFTVENsaWVudC50b3RhbENhbGxz
VGltZW91dCA9IDA7CiAgICB9CiAgfSkoKTsKCiAgcmV0dXJuIFZBU1RDbGllbnQ7Cgp9KSgpOwoK
bW9kdWxlLmV4cG9ydHMgPSBWQVNUQ2xpZW50OwoKfSx7Ii4vcGFyc2VyLmNvZmZlZSI6OCwiLi91
dGlsLmNvZmZlZSI6MTR9XSw0OltmdW5jdGlvbihfZGVyZXFfLG1vZHVsZSxleHBvcnRzKXsKLy8g
R2VuZXJhdGVkIGJ5IENvZmZlZVNjcmlwdCAxLjcuMQp2YXIgVkFTVENvbXBhbmlvbkFkOwoKVkFT
VENvbXBhbmlvbkFkID0gKGZ1bmN0aW9uKCkgewogIGZ1bmN0aW9uIFZBU1RDb21wYW5pb25BZCgp
IHsKICAgIHRoaXMuaWQgPSBudWxsOwogICAgdGhpcy53aWR0aCA9IDA7CiAgICB0aGlzLmhlaWdo
dCA9IDA7CiAgICB0aGlzLnR5cGUgPSBudWxsOwogICAgdGhpcy5zdGF0aWNSZXNvdXJjZSA9IG51
bGw7CiAgICB0aGlzLmNvbXBhbmlvbkNsaWNrVGhyb3VnaFVSTFRlbXBsYXRlID0gbnVsbDsKICAg
IHRoaXMudHJhY2tpbmdFdmVudHMgPSB7fTsKICB9CgogIHJldHVybiBWQVNUQ29tcGFuaW9uQWQ7
Cgp9KSgpOwoKbW9kdWxlLmV4cG9ydHMgPSBWQVNUQ29tcGFuaW9uQWQ7Cgp9LHt9XSw1OltmdW5j
dGlvbihfZGVyZXFfLG1vZHVsZSxleHBvcnRzKXsKLy8gR2VuZXJhdGVkIGJ5IENvZmZlZVNjcmlw
dCAxLjcuMQp2YXIgVkFTVENyZWF0aXZlLCBWQVNUQ3JlYXRpdmVDb21wYW5pb24sIFZBU1RDcmVh
dGl2ZUxpbmVhciwgVkFTVENyZWF0aXZlTm9uTGluZWFyLAogIF9faGFzUHJvcCA9IHt9Lmhhc093
blByb3BlcnR5LAogIF9fZXh0ZW5kcyA9IGZ1bmN0aW9uKGNoaWxkLCBwYXJlbnQpIHsgZm9yICh2
YXIga2V5IGluIHBhcmVudCkgeyBpZiAoX19oYXNQcm9wLmNhbGwocGFyZW50LCBrZXkpKSBjaGls
ZFtrZXldID0gcGFyZW50W2tleV07IH0gZnVuY3Rpb24gY3RvcigpIHsgdGhpcy5jb25zdHJ1Y3Rv
ciA9IGNoaWxkOyB9IGN0b3IucHJvdG90eXBlID0gcGFyZW50LnByb3RvdHlwZTsgY2hpbGQucHJv
dG90eXBlID0gbmV3IGN0b3IoKTsgY2hpbGQuX19zdXBlcl9fID0gcGFyZW50LnByb3RvdHlwZTsg
cmV0dXJuIGNoaWxkOyB9OwoKVkFTVENyZWF0aXZlID0gKGZ1bmN0aW9uKCkgewogIGZ1bmN0aW9u
IFZBU1RDcmVhdGl2ZSgpIHsKICAgIHRoaXMudHJhY2tpbmdFdmVudHMgPSB7fTsKICB9CgogIHJl
dHVybiBWQVNUQ3JlYXRpdmU7Cgp9KSgpOwoKVkFTVENyZWF0aXZlTGluZWFyID0gKGZ1bmN0aW9u
KF9zdXBlcikgewogIF9fZXh0ZW5kcyhWQVNUQ3JlYXRpdmVMaW5lYXIsIF9zdXBlcik7CgogIGZ1
bmN0aW9uIFZBU1RDcmVhdGl2ZUxpbmVhcigpIHsKICAgIFZBU1RDcmVhdGl2ZUxpbmVhci5fX3N1
cGVyX18uY29uc3RydWN0b3IuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgIHRoaXMudHlwZSA9
ICJsaW5lYXIiOwogICAgdGhpcy5kdXJhdGlvbiA9IDA7CiAgICB0aGlzLnNraXBEZWxheSA9IG51
bGw7CiAgICB0aGlzLm1lZGlhRmlsZXMgPSBbXTsKICAgIHRoaXMudmlkZW9DbGlja1Rocm91Z2hV
UkxUZW1wbGF0ZSA9IG51bGw7CiAgICB0aGlzLnZpZGVvQ2xpY2tUcmFja2luZ1VSTFRlbXBsYXRl
ID0gbnVsbDsKICB9CgogIHJldHVybiBWQVNUQ3JlYXRpdmVMaW5lYXI7Cgp9KShWQVNUQ3JlYXRp
dmUpOwoKVkFTVENyZWF0aXZlTm9uTGluZWFyID0gKGZ1bmN0aW9uKF9zdXBlcikgewogIF9fZXh0
ZW5kcyhWQVNUQ3JlYXRpdmVOb25MaW5lYXIsIF9zdXBlcik7CgogIGZ1bmN0aW9uIFZBU1RDcmVh
dGl2ZU5vbkxpbmVhcigpIHsKICAgIHJldHVybiBWQVNUQ3JlYXRpdmVOb25MaW5lYXIuX19zdXBl
cl9fLmNvbnN0cnVjdG9yLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgfQoKICByZXR1cm4gVkFT
VENyZWF0aXZlTm9uTGluZWFyOwoKfSkoVkFTVENyZWF0aXZlKTsKClZBU1RDcmVhdGl2ZUNvbXBh
bmlvbiA9IChmdW5jdGlvbigpIHsKICBmdW5jdGlvbiBWQVNUQ3JlYXRpdmVDb21wYW5pb24oKSB7
CiAgICB0aGlzLnR5cGUgPSAiY29tcGFuaW9uIjsKICAgIHRoaXMudmFyaWF0aW9ucyA9IFtdOwog
IH0KCiAgcmV0dXJuIFZBU1RDcmVhdGl2ZUNvbXBhbmlvbjsKCn0pKCk7Cgptb2R1bGUuZXhwb3J0
cyA9IHsKICBWQVNUQ3JlYXRpdmVMaW5lYXI6IFZBU1RDcmVhdGl2ZUxpbmVhciwKICBWQVNUQ3Jl
YXRpdmVOb25MaW5lYXI6IFZBU1RDcmVhdGl2ZU5vbkxpbmVhciwKICBWQVNUQ3JlYXRpdmVDb21w
YW5pb246IFZBU1RDcmVhdGl2ZUNvbXBhbmlvbgp9OwoKfSx7fV0sNjpbZnVuY3Rpb24oX2RlcmVx
Xyxtb2R1bGUsZXhwb3J0cyl7Ci8vIEdlbmVyYXRlZCBieSBDb2ZmZWVTY3JpcHQgMS43LjEKbW9k
dWxlLmV4cG9ydHMgPSB7CiAgY2xpZW50OiBfZGVyZXFfKCcuL2NsaWVudC5jb2ZmZWUnKSwKICB0
cmFja2VyOiBfZGVyZXFfKCcuL3RyYWNrZXIuY29mZmVlJyksCiAgcGFyc2VyOiBfZGVyZXFfKCcu
L3BhcnNlci5jb2ZmZWUnKSwKICB1dGlsOiBfZGVyZXFfKCcuL3V0aWwuY29mZmVlJykKfTsKCn0s
eyIuL2NsaWVudC5jb2ZmZWUiOjMsIi4vcGFyc2VyLmNvZmZlZSI6OCwiLi90cmFja2VyLmNvZmZl
ZSI6MTAsIi4vdXRpbC5jb2ZmZWUiOjE0fV0sNzpbZnVuY3Rpb24oX2RlcmVxXyxtb2R1bGUsZXhw
b3J0cyl7Ci8vIEdlbmVyYXRlZCBieSBDb2ZmZWVTY3JpcHQgMS43LjEKdmFyIFZBU1RNZWRpYUZp
bGU7CgpWQVNUTWVkaWFGaWxlID0gKGZ1bmN0aW9uKCkgewogIGZ1bmN0aW9uIFZBU1RNZWRpYUZp
bGUoKSB7CiAgICB0aGlzLmZpbGVVUkwgPSBudWxsOwogICAgdGhpcy5kZWxpdmVyeVR5cGUgPSAi
cHJvZ3Jlc3NpdmUiOwogICAgdGhpcy5taW1lVHlwZSA9IG51bGw7CiAgICB0aGlzLmNvZGVjID0g
bnVsbDsKICAgIHRoaXMuYml0cmF0ZSA9IDA7CiAgICB0aGlzLm1pbkJpdHJhdGUgPSAwOwogICAg
dGhpcy5tYXhCaXRyYXRlID0gMDsKICAgIHRoaXMud2lkdGggPSAwOwogICAgdGhpcy5oZWlnaHQg
PSAwOwogIH0KCiAgcmV0dXJuIFZBU1RNZWRpYUZpbGU7Cgp9KSgpOwoKbW9kdWxlLmV4cG9ydHMg
PSBWQVNUTWVkaWFGaWxlOwoKfSx7fV0sODpbZnVuY3Rpb24oX2RlcmVxXyxtb2R1bGUsZXhwb3J0
cyl7Ci8vIEdlbmVyYXRlZCBieSBDb2ZmZWVTY3JpcHQgMS43LjEKdmFyIFVSTEhhbmRsZXIsIFZB
U1RBZCwgVkFTVENvbXBhbmlvbkFkLCBWQVNUQ3JlYXRpdmVDb21wYW5pb24sIFZBU1RDcmVhdGl2
ZUxpbmVhciwgVkFTVE1lZGlhRmlsZSwgVkFTVFBhcnNlciwgVkFTVFJlc3BvbnNlLCBWQVNUVXRp
bCwKICBfX2luZGV4T2YgPSBbXS5pbmRleE9mIHx8IGZ1bmN0aW9uKGl0ZW0pIHsgZm9yICh2YXIg
aSA9IDAsIGwgPSB0aGlzLmxlbmd0aDsgaSA8IGw7IGkrKykgeyBpZiAoaSBpbiB0aGlzICYmIHRo
aXNbaV0gPT09IGl0ZW0pIHJldHVybiBpOyB9IHJldHVybiAtMTsgfTsKClVSTEhhbmRsZXIgPSBf
ZGVyZXFfKCcuL3VybGhhbmRsZXIuY29mZmVlJyk7CgpWQVNUUmVzcG9uc2UgPSBfZGVyZXFfKCcu
L3Jlc3BvbnNlLmNvZmZlZScpOwoKVkFTVEFkID0gX2RlcmVxXygnLi9hZC5jb2ZmZWUnKTsKClZB
U1RVdGlsID0gX2RlcmVxXygnLi91dGlsLmNvZmZlZScpOwoKVkFTVENyZWF0aXZlTGluZWFyID0g
X2RlcmVxXygnLi9jcmVhdGl2ZS5jb2ZmZWUnKS5WQVNUQ3JlYXRpdmVMaW5lYXI7CgpWQVNUQ3Jl
YXRpdmVDb21wYW5pb24gPSBfZGVyZXFfKCcuL2NyZWF0aXZlLmNvZmZlZScpLlZBU1RDcmVhdGl2
ZUNvbXBhbmlvbjsKClZBU1RNZWRpYUZpbGUgPSBfZGVyZXFfKCcuL21lZGlhZmlsZS5jb2ZmZWUn
KTsKClZBU1RDb21wYW5pb25BZCA9IF9kZXJlcV8oJy4vY29tcGFuaW9uYWQuY29mZmVlJyk7CgpW
QVNUUGFyc2VyID0gKGZ1bmN0aW9uKCkgewogIHZhciBVUkxUZW1wbGF0ZUZpbHRlcnM7CgogIGZ1
bmN0aW9uIFZBU1RQYXJzZXIoKSB7fQoKICBVUkxUZW1wbGF0ZUZpbHRlcnMgPSBbXTsKCiAgVkFT
VFBhcnNlci5hZGRVUkxUZW1wbGF0ZUZpbHRlciA9IGZ1bmN0aW9uKGZ1bmMpIHsKICAgIGlmICh0
eXBlb2YgZnVuYyA9PT0gJ2Z1bmN0aW9uJykgewogICAgICBVUkxUZW1wbGF0ZUZpbHRlcnMucHVz
aChmdW5jKTsKICAgIH0KICB9OwoKICBWQVNUUGFyc2VyLnJlbW92ZVVSTFRlbXBsYXRlRmlsdGVy
ID0gZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gVVJMVGVtcGxhdGVGaWx0ZXJzLnBvcCgpOwogIH07
CgogIFZBU1RQYXJzZXIuY291bnRVUkxUZW1wbGF0ZUZpbHRlcnMgPSBmdW5jdGlvbigpIHsKICAg
IHJldHVybiBVUkxUZW1wbGF0ZUZpbHRlcnMubGVuZ3RoOwogIH07CgogIFZBU1RQYXJzZXIuY2xl
YXJVcmxUZW1wbGF0ZUZpbHRlcnMgPSBmdW5jdGlvbigpIHsKICAgIHJldHVybiBVUkxUZW1wbGF0
ZUZpbHRlcnMgPSBbXTsKICB9OwoKICBWQVNUUGFyc2VyLnBhcnNlID0gZnVuY3Rpb24odXJsLCBj
YikgewogICAgcmV0dXJuIHRoaXMuX3BhcnNlKHVybCwgbnVsbCwgZnVuY3Rpb24oZXJyLCByZXNw
b25zZSkgewogICAgICByZXR1cm4gY2IocmVzcG9uc2UpOwogICAgfSk7CiAgfTsKCiAgVkFTVFBh
cnNlci5fcGFyc2UgPSBmdW5jdGlvbih1cmwsIHBhcmVudFVSTHMsIGNiKSB7CiAgICB2YXIgZmls
dGVyLCBfaSwgX2xlbjsKICAgIGZvciAoX2kgPSAwLCBfbGVuID0gVVJMVGVtcGxhdGVGaWx0ZXJz
Lmxlbmd0aDsgX2kgPCBfbGVuOyBfaSsrKSB7CiAgICAgIGZpbHRlciA9IFVSTFRlbXBsYXRlRmls
dGVyc1tfaV07CiAgICAgIHVybCA9IGZpbHRlcih1cmwpOwogICAgfQogICAgaWYgKHBhcmVudFVS
THMgPT0gbnVsbCkgewogICAgICBwYXJlbnRVUkxzID0gW107CiAgICB9CiAgICBwYXJlbnRVUkxz
LnB1c2godXJsKTsKICAgIHJldHVybiBVUkxIYW5kbGVyLmdldCh1cmwsIChmdW5jdGlvbihfdGhp
cykgewogICAgICByZXR1cm4gZnVuY3Rpb24oZXJyLCB4bWwpIHsKICAgICAgICB2YXIgYWQsIGNv
bXBsZXRlLCBsb29wSW5kZXgsIG5vZGUsIHJlc3BvbnNlLCBfaiwgX2ssIF9sZW4xLCBfbGVuMiwg
X3JlZiwgX3JlZjE7CiAgICAgICAgaWYgKGVyciAhPSBudWxsKSB7CiAgICAgICAgICByZXR1cm4g
Y2IoZXJyKTsKICAgICAgICB9CiAgICAgICAgcmVzcG9uc2UgPSBuZXcgVkFTVFJlc3BvbnNlKCk7
CiAgICAgICAgaWYgKCEoKCh4bWwgIT0gbnVsbCA/IHhtbC5kb2N1bWVudEVsZW1lbnQgOiB2b2lk
IDApICE9IG51bGwpICYmIHhtbC5kb2N1bWVudEVsZW1lbnQubm9kZU5hbWUgPT09ICJWQVNUIikp
IHsKICAgICAgICAgIHJldHVybiBjYigpOwogICAgICAgIH0KICAgICAgICBfcmVmID0geG1sLmRv
Y3VtZW50RWxlbWVudC5jaGlsZE5vZGVzOwogICAgICAgIGZvciAoX2ogPSAwLCBfbGVuMSA9IF9y
ZWYubGVuZ3RoOyBfaiA8IF9sZW4xOyBfaisrKSB7CiAgICAgICAgICBub2RlID0gX3JlZltfal07
CiAgICAgICAgICBpZiAobm9kZS5ub2RlTmFtZSA9PT0gJ0Vycm9yJykgewogICAgICAgICAgICBy
ZXNwb25zZS5lcnJvclVSTFRlbXBsYXRlcy5wdXNoKF90aGlzLnBhcnNlTm9kZVRleHQobm9kZSkp
OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBfcmVmMSA9IHhtbC5kb2N1bWVudEVsZW1l
bnQuY2hpbGROb2RlczsKICAgICAgICBmb3IgKF9rID0gMCwgX2xlbjIgPSBfcmVmMS5sZW5ndGg7
IF9rIDwgX2xlbjI7IF9rKyspIHsKICAgICAgICAgIG5vZGUgPSBfcmVmMVtfa107CiAgICAgICAg
ICBpZiAobm9kZS5ub2RlTmFtZSA9PT0gJ0FkJykgewogICAgICAgICAgICBhZCA9IF90aGlzLnBh
cnNlQWRFbGVtZW50KG5vZGUpOwogICAgICAgICAgICBpZiAoYWQgIT0gbnVsbCkgewogICAgICAg
ICAgICAgIHJlc3BvbnNlLmFkcy5wdXNoKGFkKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgICBWQVNUVXRpbC50cmFjayhyZXNwb25zZS5lcnJvclVSTFRlbXBsYXRlcywgewogICAg
ICAgICAgICAgICAgRVJST1JDT0RFOiAxMDEKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAg
fQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjb21wbGV0ZSA9IGZ1bmN0aW9uKCkgewog
ICAgICAgICAgdmFyIF9sLCBfbGVuMywgX3JlZjI7CiAgICAgICAgICBpZiAoIXJlc3BvbnNlKSB7
CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIF9yZWYyID0gcmVzcG9u
c2UuYWRzOwogICAgICAgICAgZm9yIChfbCA9IDAsIF9sZW4zID0gX3JlZjIubGVuZ3RoOyBfbCA8
IF9sZW4zOyBfbCsrKSB7CiAgICAgICAgICAgIGFkID0gX3JlZjJbX2xdOwogICAgICAgICAgICBp
ZiAoYWQubmV4dFdyYXBwZXJVUkwgIT0gbnVsbCkgewogICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKHJlc3BvbnNlLmFkcy5sZW5ndGgg
PT09IDApIHsKICAgICAgICAgICAgVkFTVFV0aWwudHJhY2socmVzcG9uc2UuZXJyb3JVUkxUZW1w
bGF0ZXMsIHsKICAgICAgICAgICAgICBFUlJPUkNPREU6IDMwMwogICAgICAgICAgICB9KTsKICAg
ICAgICAgICAgcmVzcG9uc2UgPSBudWxsOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIGNi
KG51bGwsIHJlc3BvbnNlKTsKICAgICAgICB9OwogICAgICAgIGxvb3BJbmRleCA9IHJlc3BvbnNl
LmFkcy5sZW5ndGg7CiAgICAgICAgd2hpbGUgKGxvb3BJbmRleC0tKSB7CiAgICAgICAgICBhZCA9
IHJlc3BvbnNlLmFkc1tsb29wSW5kZXhdOwogICAgICAgICAgaWYgKGFkLm5leHRXcmFwcGVyVVJM
ID09IG51bGwpIHsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICAo
ZnVuY3Rpb24oYWQpIHsKICAgICAgICAgICAgdmFyIGJhc2VVUkwsIF9yZWYyOwogICAgICAgICAg
ICBpZiAocGFyZW50VVJMcy5sZW5ndGggPj0gMTAgfHwgKF9yZWYyID0gYWQubmV4dFdyYXBwZXJV
UkwsIF9faW5kZXhPZi5jYWxsKHBhcmVudFVSTHMsIF9yZWYyKSA+PSAwKSkgewogICAgICAgICAg
ICAgIFZBU1RVdGlsLnRyYWNrKGFkLmVycm9yVVJMVGVtcGxhdGVzLCB7CiAgICAgICAgICAgICAg
ICBFUlJPUkNPREU6IDMwMgogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIHJlc3BvbnNl
LmFkcy5zcGxpY2UocmVzcG9uc2UuYWRzLmluZGV4T2YoYWQpLCAxKTsKICAgICAgICAgICAgICBj
b21wbGV0ZSgpOwogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAg
ICBpZiAoYWQubmV4dFdyYXBwZXJVUkwuaW5kZXhPZignOi8vJykgPT09IC0xKSB7CiAgICAgICAg
ICAgICAgYmFzZVVSTCA9IHVybC5zbGljZSgwLCB1cmwubGFzdEluZGV4T2YoJy8nKSk7CiAgICAg
ICAgICAgICAgYWQubmV4dFdyYXBwZXJVUkwgPSAiIiArIGJhc2VVUkwgKyAiLyIgKyBhZC5uZXh0
V3JhcHBlclVSTDsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gX3RoaXMuX3BhcnNl
KGFkLm5leHRXcmFwcGVyVVJMLCBwYXJlbnRVUkxzLCBmdW5jdGlvbihlcnIsIHdyYXBwZWRSZXNw
b25zZSkgewogICAgICAgICAgICAgIHZhciBjcmVhdGl2ZSwgZXZlbnROYW1lLCBpbmRleCwgd3Jh
cHBlZEFkLCBfYmFzZSwgX2wsIF9sZW4zLCBfbGVuNCwgX2xlbjUsIF9tLCBfbiwgX3JlZjMsIF9y
ZWY0LCBfcmVmNTsKICAgICAgICAgICAgICBpZiAoZXJyICE9IG51bGwpIHsKICAgICAgICAgICAg
ICAgIFZBU1RVdGlsLnRyYWNrKGFkLmVycm9yVVJMVGVtcGxhdGVzLCB7CiAgICAgICAgICAgICAg
ICAgIEVSUk9SQ09ERTogMzAxCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIHJl
c3BvbnNlLmFkcy5zcGxpY2UocmVzcG9uc2UuYWRzLmluZGV4T2YoYWQpLCAxKTsKICAgICAgICAg
ICAgICB9IGVsc2UgaWYgKHdyYXBwZWRSZXNwb25zZSA9PSBudWxsKSB7CiAgICAgICAgICAgICAg
ICBWQVNUVXRpbC50cmFjayhhZC5lcnJvclVSTFRlbXBsYXRlcywgewogICAgICAgICAgICAgICAg
ICBFUlJPUkNPREU6IDMwMwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICByZXNw
b25zZS5hZHMuc3BsaWNlKHJlc3BvbnNlLmFkcy5pbmRleE9mKGFkKSwgMSk7CiAgICAgICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHJlc3BvbnNlLmVycm9yVVJMVGVtcGxhdGVzID0g
cmVzcG9uc2UuZXJyb3JVUkxUZW1wbGF0ZXMuY29uY2F0KHdyYXBwZWRSZXNwb25zZS5lcnJvclVS
TFRlbXBsYXRlcyk7CiAgICAgICAgICAgICAgICBpbmRleCA9IHJlc3BvbnNlLmFkcy5pbmRleE9m
KGFkKTsKICAgICAgICAgICAgICAgIHJlc3BvbnNlLmFkcy5zcGxpY2UoaW5kZXgsIDEpOwogICAg
ICAgICAgICAgICAgX3JlZjMgPSB3cmFwcGVkUmVzcG9uc2UuYWRzOwogICAgICAgICAgICAgICAg
Zm9yIChfbCA9IDAsIF9sZW4zID0gX3JlZjMubGVuZ3RoOyBfbCA8IF9sZW4zOyBfbCsrKSB7CiAg
ICAgICAgICAgICAgICAgIHdyYXBwZWRBZCA9IF9yZWYzW19sXTsKICAgICAgICAgICAgICAgICAg
d3JhcHBlZEFkLmVycm9yVVJMVGVtcGxhdGVzID0gYWQuZXJyb3JVUkxUZW1wbGF0ZXMuY29uY2F0
KHdyYXBwZWRBZC5lcnJvclVSTFRlbXBsYXRlcyk7CiAgICAgICAgICAgICAgICAgIHdyYXBwZWRB
ZC5pbXByZXNzaW9uVVJMVGVtcGxhdGVzID0gYWQuaW1wcmVzc2lvblVSTFRlbXBsYXRlcy5jb25j
YXQod3JhcHBlZEFkLmltcHJlc3Npb25VUkxUZW1wbGF0ZXMpOwogICAgICAgICAgICAgICAgICBp
ZiAoYWQudHJhY2tpbmdFdmVudHMgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgIF9yZWY0
ID0gd3JhcHBlZEFkLmNyZWF0aXZlczsKICAgICAgICAgICAgICAgICAgICBmb3IgKF9tID0gMCwg
X2xlbjQgPSBfcmVmNC5sZW5ndGg7IF9tIDwgX2xlbjQ7IF9tKyspIHsKICAgICAgICAgICAgICAg
ICAgICAgIGNyZWF0aXZlID0gX3JlZjRbX21dOwogICAgICAgICAgICAgICAgICAgICAgaWYgKGNy
ZWF0aXZlLnR5cGUgPT09ICdsaW5lYXInKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIF9yZWY1
ID0gT2JqZWN0LmtleXMoYWQudHJhY2tpbmdFdmVudHMpOwogICAgICAgICAgICAgICAgICAgICAg
ICBmb3IgKF9uID0gMCwgX2xlbjUgPSBfcmVmNS5sZW5ndGg7IF9uIDwgX2xlbjU7IF9uKyspIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudE5hbWUgPSBfcmVmNVtfbl07CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgKF9iYXNlID0gY3JlYXRpdmUudHJhY2tpbmdFdmVudHMpW2V2ZW50
TmFtZV0gfHwgKF9iYXNlW2V2ZW50TmFtZV0gPSBbXSk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgY3JlYXRpdmUudHJhY2tpbmdFdmVudHNbZXZlbnROYW1lXSA9IGNyZWF0aXZlLnRyYWNraW5n
RXZlbnRzW2V2ZW50TmFtZV0uY29uY2F0KGFkLnRyYWNraW5nRXZlbnRzW2V2ZW50TmFtZV0pOwog
ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIHJlc3Bv
bnNlLmFkcy5zcGxpY2UoaW5kZXgsIDAsIHdyYXBwZWRBZCk7CiAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgIGRlbGV0ZSBhZC5uZXh0V3JhcHBlclVSTDsKICAg
ICAgICAgICAgICByZXR1cm4gY29tcGxldGUoKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9
KShhZCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBjb21wbGV0ZSgpOwogICAgICB9OwogICAg
fSkodGhpcykpOwogIH07CgogIFZBU1RQYXJzZXIuY2hpbGRCeU5hbWUgPSBmdW5jdGlvbihub2Rl
LCBuYW1lKSB7CiAgICB2YXIgY2hpbGQsIF9pLCBfbGVuLCBfcmVmOwogICAgX3JlZiA9IG5vZGUu
Y2hpbGROb2RlczsKICAgIGZvciAoX2kgPSAwLCBfbGVuID0gX3JlZi5sZW5ndGg7IF9pIDwgX2xl
bjsgX2krKykgewogICAgICBjaGlsZCA9IF9yZWZbX2ldOwogICAgICBpZiAoY2hpbGQubm9kZU5h
bWUgPT09IG5hbWUpIHsKICAgICAgICByZXR1cm4gY2hpbGQ7CiAgICAgIH0KICAgIH0KICB9OwoK
ICBWQVNUUGFyc2VyLmNoaWxkc0J5TmFtZSA9IGZ1bmN0aW9uKG5vZGUsIG5hbWUpIHsKICAgIHZh
ciBjaGlsZCwgY2hpbGRzLCBfaSwgX2xlbiwgX3JlZjsKICAgIGNoaWxkcyA9IFtdOwogICAgX3Jl
ZiA9IG5vZGUuY2hpbGROb2RlczsKICAgIGZvciAoX2kgPSAwLCBfbGVuID0gX3JlZi5sZW5ndGg7
IF9pIDwgX2xlbjsgX2krKykgewogICAgICBjaGlsZCA9IF9yZWZbX2ldOwogICAgICBpZiAoY2hp
bGQubm9kZU5hbWUgPT09IG5hbWUpIHsKICAgICAgICBjaGlsZHMucHVzaChjaGlsZCk7CiAgICAg
IH0KICAgIH0KICAgIHJldHVybiBjaGlsZHM7CiAgfTsKCiAgVkFTVFBhcnNlci5wYXJzZUFkRWxl
bWVudCA9IGZ1bmN0aW9uKGFkRWxlbWVudCkgewogICAgdmFyIGFkVHlwZUVsZW1lbnQsIF9pLCBf
bGVuLCBfcmVmOwogICAgX3JlZiA9IGFkRWxlbWVudC5jaGlsZE5vZGVzOwogICAgZm9yIChfaSA9
IDAsIF9sZW4gPSBfcmVmLmxlbmd0aDsgX2kgPCBfbGVuOyBfaSsrKSB7CiAgICAgIGFkVHlwZUVs
ZW1lbnQgPSBfcmVmW19pXTsKICAgICAgaWYgKGFkVHlwZUVsZW1lbnQubm9kZU5hbWUgPT09ICJX
cmFwcGVyIikgewogICAgICAgIHJldHVybiB0aGlzLnBhcnNlV3JhcHBlckVsZW1lbnQoYWRUeXBl
RWxlbWVudCk7CiAgICAgIH0gZWxzZSBpZiAoYWRUeXBlRWxlbWVudC5ub2RlTmFtZSA9PT0gIklu
TGluZSIpIHsKICAgICAgICByZXR1cm4gdGhpcy5wYXJzZUluTGluZUVsZW1lbnQoYWRUeXBlRWxl
bWVudCk7CiAgICAgIH0KICAgIH0KICB9OwoKICBWQVNUUGFyc2VyLnBhcnNlV3JhcHBlckVsZW1l
bnQgPSBmdW5jdGlvbih3cmFwcGVyRWxlbWVudCkgewogICAgdmFyIGFkLCBjcmVhdGl2ZSwgd3Jh
cHBlckNyZWF0aXZlRWxlbWVudCwgd3JhcHBlclVSTEVsZW1lbnQsIF9pLCBfbGVuLCBfcmVmOwog
ICAgYWQgPSB0aGlzLnBhcnNlSW5MaW5lRWxlbWVudCh3cmFwcGVyRWxlbWVudCk7CiAgICB3cmFw
cGVyVVJMRWxlbWVudCA9IHRoaXMuY2hpbGRCeU5hbWUod3JhcHBlckVsZW1lbnQsICJWQVNUQWRU
YWdVUkkiKTsKICAgIGlmICh3cmFwcGVyVVJMRWxlbWVudCAhPSBudWxsKSB7CiAgICAgIGFkLm5l
eHRXcmFwcGVyVVJMID0gdGhpcy5wYXJzZU5vZGVUZXh0KHdyYXBwZXJVUkxFbGVtZW50KTsKICAg
IH0KICAgIHdyYXBwZXJDcmVhdGl2ZUVsZW1lbnQgPSBudWxsOwogICAgX3JlZiA9IGFkLmNyZWF0
aXZlczsKICAgIGZvciAoX2kgPSAwLCBfbGVuID0gX3JlZi5sZW5ndGg7IF9pIDwgX2xlbjsgX2kr
KykgewogICAgICBjcmVhdGl2ZSA9IF9yZWZbX2ldOwogICAgICBpZiAoY3JlYXRpdmUudHlwZSA9
PT0gJ2xpbmVhcicpIHsKICAgICAgICB3cmFwcGVyQ3JlYXRpdmVFbGVtZW50ID0gY3JlYXRpdmU7
CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0KICAgIGlmICgod3JhcHBlckNyZWF0aXZlRWxl
bWVudCAhPSBudWxsKSAmJiAod3JhcHBlckNyZWF0aXZlRWxlbWVudC50cmFja2luZ0V2ZW50cyAh
PSBudWxsKSkgewogICAgICBhZC50cmFja2luZ0V2ZW50cyA9IHdyYXBwZXJDcmVhdGl2ZUVsZW1l
bnQudHJhY2tpbmdFdmVudHM7CiAgICB9CiAgICBpZiAoYWQubmV4dFdyYXBwZXJVUkwgIT0gbnVs
bCkgewogICAgICByZXR1cm4gYWQ7CiAgICB9CiAgfTsKCiAgVkFTVFBhcnNlci5wYXJzZUluTGlu
ZUVsZW1lbnQgPSBmdW5jdGlvbihpbkxpbmVFbGVtZW50KSB7CiAgICB2YXIgYWQsIGNyZWF0aXZl
LCBjcmVhdGl2ZUVsZW1lbnQsIGNyZWF0aXZlVHlwZUVsZW1lbnQsIG5vZGUsIF9pLCBfaiwgX2ss
IF9sZW4sIF9sZW4xLCBfbGVuMiwgX3JlZiwgX3JlZjEsIF9yZWYyOwogICAgYWQgPSBuZXcgVkFT
VEFkKCk7CiAgICBfcmVmID0gaW5MaW5lRWxlbWVudC5jaGlsZE5vZGVzOwogICAgZm9yIChfaSA9
IDAsIF9sZW4gPSBfcmVmLmxlbmd0aDsgX2kgPCBfbGVuOyBfaSsrKSB7CiAgICAgIG5vZGUgPSBf
cmVmW19pXTsKICAgICAgc3dpdGNoIChub2RlLm5vZGVOYW1lKSB7CiAgICAgICAgY2FzZSAiRXJy
b3IiOgogICAgICAgICAgYWQuZXJyb3JVUkxUZW1wbGF0ZXMucHVzaCh0aGlzLnBhcnNlTm9kZVRl
eHQobm9kZSkpOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiSW1wcmVzc2lvbiI6CiAg
ICAgICAgICBhZC5pbXByZXNzaW9uVVJMVGVtcGxhdGVzLnB1c2godGhpcy5wYXJzZU5vZGVUZXh0
KG5vZGUpKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIkNyZWF0aXZlcyI6CiAgICAg
ICAgICBfcmVmMSA9IHRoaXMuY2hpbGRzQnlOYW1lKG5vZGUsICJDcmVhdGl2ZSIpOwogICAgICAg
ICAgZm9yIChfaiA9IDAsIF9sZW4xID0gX3JlZjEubGVuZ3RoOyBfaiA8IF9sZW4xOyBfaisrKSB7
CiAgICAgICAgICAgIGNyZWF0aXZlRWxlbWVudCA9IF9yZWYxW19qXTsKICAgICAgICAgICAgX3Jl
ZjIgPSBjcmVhdGl2ZUVsZW1lbnQuY2hpbGROb2RlczsKICAgICAgICAgICAgZm9yIChfayA9IDAs
IF9sZW4yID0gX3JlZjIubGVuZ3RoOyBfayA8IF9sZW4yOyBfaysrKSB7CiAgICAgICAgICAgICAg
Y3JlYXRpdmVUeXBlRWxlbWVudCA9IF9yZWYyW19rXTsKICAgICAgICAgICAgICBzd2l0Y2ggKGNy
ZWF0aXZlVHlwZUVsZW1lbnQubm9kZU5hbWUpIHsKICAgICAgICAgICAgICAgIGNhc2UgIkxpbmVh
ciI6CiAgICAgICAgICAgICAgICAgIGNyZWF0aXZlID0gdGhpcy5wYXJzZUNyZWF0aXZlTGluZWFy
RWxlbWVudChjcmVhdGl2ZVR5cGVFbGVtZW50KTsKICAgICAgICAgICAgICAgICAgaWYgKGNyZWF0
aXZlKSB7CiAgICAgICAgICAgICAgICAgICAgYWQuY3JlYXRpdmVzLnB1c2goY3JlYXRpdmUpOwog
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
ICAgY2FzZSAiQ29tcGFuaW9uQWRzIjoKICAgICAgICAgICAgICAgICAgY3JlYXRpdmUgPSB0aGlz
LnBhcnNlQ29tcGFuaW9uQWQoY3JlYXRpdmVUeXBlRWxlbWVudCk7CiAgICAgICAgICAgICAgICAg
IGlmIChjcmVhdGl2ZSkgewogICAgICAgICAgICAgICAgICAgIGFkLmNyZWF0aXZlcy5wdXNoKGNy
ZWF0aXZlKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAg
fQogICAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gYWQ7CiAgfTsKCiAgVkFTVFBh
cnNlci5wYXJzZUNyZWF0aXZlTGluZWFyRWxlbWVudCA9IGZ1bmN0aW9uKGNyZWF0aXZlRWxlbWVu
dCkgewogICAgdmFyIGNyZWF0aXZlLCBldmVudE5hbWUsIG1lZGlhRmlsZSwgbWVkaWFGaWxlRWxl
bWVudCwgbWVkaWFGaWxlc0VsZW1lbnQsIHBlcmNlbnQsIHNraXBPZmZzZXQsIHRyYWNraW5nRWxl
bWVudCwgdHJhY2tpbmdFdmVudHNFbGVtZW50LCB0cmFja2luZ1VSTFRlbXBsYXRlLCB2aWRlb0Ns
aWNrc0VsZW1lbnQsIF9iYXNlLCBfaSwgX2osIF9rLCBfbCwgX2xlbiwgX2xlbjEsIF9sZW4yLCBf
bGVuMywgX3JlZiwgX3JlZjEsIF9yZWYyLCBfcmVmMzsKICAgIGNyZWF0aXZlID0gbmV3IFZBU1RD
cmVhdGl2ZUxpbmVhcigpOwogICAgY3JlYXRpdmUuZHVyYXRpb24gPSB0aGlzLnBhcnNlRHVyYXRp
b24odGhpcy5wYXJzZU5vZGVUZXh0KHRoaXMuY2hpbGRCeU5hbWUoY3JlYXRpdmVFbGVtZW50LCAi
RHVyYXRpb24iKSkpOwogICAgaWYgKGNyZWF0aXZlLmR1cmF0aW9uID09PSAtMSAmJiBjcmVhdGl2
ZUVsZW1lbnQucGFyZW50Tm9kZS5wYXJlbnROb2RlLnBhcmVudE5vZGUubm9kZU5hbWUgIT09ICdX
cmFwcGVyJykgewogICAgICByZXR1cm4gbnVsbDsKICAgIH0KICAgIHNraXBPZmZzZXQgPSBjcmVh
dGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJza2lwb2Zmc2V0Iik7CiAgICBpZiAoc2tpcE9mZnNl
dCA9PSBudWxsKSB7CiAgICAgIGNyZWF0aXZlLnNraXBEZWxheSA9IG51bGw7CiAgICB9IGVsc2Ug
aWYgKHNraXBPZmZzZXQuY2hhckF0KHNraXBPZmZzZXQubGVuZ3RoIC0gMSkgPT09ICIlIikgewog
ICAgICBwZXJjZW50ID0gcGFyc2VJbnQoc2tpcE9mZnNldCwgMTApOwogICAgICBjcmVhdGl2ZS5z
a2lwRGVsYXkgPSBjcmVhdGl2ZS5kdXJhdGlvbiAqIChwZXJjZW50IC8gMTAwKTsKICAgIH0gZWxz
ZSB7CiAgICAgIGNyZWF0aXZlLnNraXBEZWxheSA9IHRoaXMucGFyc2VEdXJhdGlvbihza2lwT2Zm
c2V0KTsKICAgIH0KICAgIHZpZGVvQ2xpY2tzRWxlbWVudCA9IHRoaXMuY2hpbGRCeU5hbWUoY3Jl
YXRpdmVFbGVtZW50LCAiVmlkZW9DbGlja3MiKTsKICAgIGlmICh2aWRlb0NsaWNrc0VsZW1lbnQg
IT0gbnVsbCkgewogICAgICBjcmVhdGl2ZS52aWRlb0NsaWNrVGhyb3VnaFVSTFRlbXBsYXRlID0g
dGhpcy5wYXJzZU5vZGVUZXh0KHRoaXMuY2hpbGRCeU5hbWUodmlkZW9DbGlja3NFbGVtZW50LCAi
Q2xpY2tUaHJvdWdoIikpOwogICAgICBjcmVhdGl2ZS52aWRlb0NsaWNrVHJhY2tpbmdVUkxUZW1w
bGF0ZSA9IHRoaXMucGFyc2VOb2RlVGV4dCh0aGlzLmNoaWxkQnlOYW1lKHZpZGVvQ2xpY2tzRWxl
bWVudCwgIkNsaWNrVHJhY2tpbmciKSk7CiAgICB9CiAgICBfcmVmID0gdGhpcy5jaGlsZHNCeU5h
bWUoY3JlYXRpdmVFbGVtZW50LCAiVHJhY2tpbmdFdmVudHMiKTsKICAgIGZvciAoX2kgPSAwLCBf
bGVuID0gX3JlZi5sZW5ndGg7IF9pIDwgX2xlbjsgX2krKykgewogICAgICB0cmFja2luZ0V2ZW50
c0VsZW1lbnQgPSBfcmVmW19pXTsKICAgICAgX3JlZjEgPSB0aGlzLmNoaWxkc0J5TmFtZSh0cmFj
a2luZ0V2ZW50c0VsZW1lbnQsICJUcmFja2luZyIpOwogICAgICBmb3IgKF9qID0gMCwgX2xlbjEg
PSBfcmVmMS5sZW5ndGg7IF9qIDwgX2xlbjE7IF9qKyspIHsKICAgICAgICB0cmFja2luZ0VsZW1l
bnQgPSBfcmVmMVtfal07CiAgICAgICAgZXZlbnROYW1lID0gdHJhY2tpbmdFbGVtZW50LmdldEF0
dHJpYnV0ZSgiZXZlbnQiKTsKICAgICAgICB0cmFja2luZ1VSTFRlbXBsYXRlID0gdGhpcy5wYXJz
ZU5vZGVUZXh0KHRyYWNraW5nRWxlbWVudCk7CiAgICAgICAgaWYgKChldmVudE5hbWUgIT0gbnVs
bCkgJiYgKHRyYWNraW5nVVJMVGVtcGxhdGUgIT0gbnVsbCkpIHsKICAgICAgICAgIGlmICgoX2Jh
c2UgPSBjcmVhdGl2ZS50cmFja2luZ0V2ZW50cylbZXZlbnROYW1lXSA9PSBudWxsKSB7CiAgICAg
ICAgICAgIF9iYXNlW2V2ZW50TmFtZV0gPSBbXTsKICAgICAgICAgIH0KICAgICAgICAgIGNyZWF0
aXZlLnRyYWNraW5nRXZlbnRzW2V2ZW50TmFtZV0ucHVzaCh0cmFja2luZ1VSTFRlbXBsYXRlKTsK
ICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIF9yZWYyID0gdGhpcy5jaGlsZHNCeU5hbWUoY3Jl
YXRpdmVFbGVtZW50LCAiTWVkaWFGaWxlcyIpOwogICAgZm9yIChfayA9IDAsIF9sZW4yID0gX3Jl
ZjIubGVuZ3RoOyBfayA8IF9sZW4yOyBfaysrKSB7CiAgICAgIG1lZGlhRmlsZXNFbGVtZW50ID0g
X3JlZjJbX2tdOwogICAgICBfcmVmMyA9IHRoaXMuY2hpbGRzQnlOYW1lKG1lZGlhRmlsZXNFbGVt
ZW50LCAiTWVkaWFGaWxlIik7CiAgICAgIGZvciAoX2wgPSAwLCBfbGVuMyA9IF9yZWYzLmxlbmd0
aDsgX2wgPCBfbGVuMzsgX2wrKykgewogICAgICAgIG1lZGlhRmlsZUVsZW1lbnQgPSBfcmVmM1tf
bF07CiAgICAgICAgbWVkaWFGaWxlID0gbmV3IFZBU1RNZWRpYUZpbGUoKTsKICAgICAgICBtZWRp
YUZpbGUuZmlsZVVSTCA9IHRoaXMucGFyc2VOb2RlVGV4dChtZWRpYUZpbGVFbGVtZW50KTsKICAg
ICAgICBtZWRpYUZpbGUuZGVsaXZlcnlUeXBlID0gbWVkaWFGaWxlRWxlbWVudC5nZXRBdHRyaWJ1
dGUoImRlbGl2ZXJ5Iik7CiAgICAgICAgbWVkaWFGaWxlLmNvZGVjID0gbWVkaWFGaWxlRWxlbWVu
dC5nZXRBdHRyaWJ1dGUoImNvZGVjIik7CiAgICAgICAgbWVkaWFGaWxlLm1pbWVUeXBlID0gbWVk
aWFGaWxlRWxlbWVudC5nZXRBdHRyaWJ1dGUoInR5cGUiKTsKICAgICAgICBtZWRpYUZpbGUuYml0
cmF0ZSA9IHBhcnNlSW50KG1lZGlhRmlsZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJiaXRyYXRlIikg
fHwgMCk7CiAgICAgICAgbWVkaWFGaWxlLm1pbkJpdHJhdGUgPSBwYXJzZUludChtZWRpYUZpbGVF
bGVtZW50LmdldEF0dHJpYnV0ZSgibWluQml0cmF0ZSIpIHx8IDApOwogICAgICAgIG1lZGlhRmls
ZS5tYXhCaXRyYXRlID0gcGFyc2VJbnQobWVkaWFGaWxlRWxlbWVudC5nZXRBdHRyaWJ1dGUoIm1h
eEJpdHJhdGUiKSB8fCAwKTsKICAgICAgICBtZWRpYUZpbGUud2lkdGggPSBwYXJzZUludChtZWRp
YUZpbGVFbGVtZW50LmdldEF0dHJpYnV0ZSgid2lkdGgiKSB8fCAwKTsKICAgICAgICBtZWRpYUZp
bGUuaGVpZ2h0ID0gcGFyc2VJbnQobWVkaWFGaWxlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImhlaWdo
dCIpIHx8IDApOwogICAgICAgIGNyZWF0aXZlLm1lZGlhRmlsZXMucHVzaChtZWRpYUZpbGUpOwog
ICAgICB9CiAgICB9CiAgICByZXR1cm4gY3JlYXRpdmU7CiAgfTsKCiAgVkFTVFBhcnNlci5wYXJz
ZUNvbXBhbmlvbkFkID0gZnVuY3Rpb24oY3JlYXRpdmVFbGVtZW50KSB7CiAgICB2YXIgY29tcGFu
aW9uQWQsIGNvbXBhbmlvblJlc291cmNlLCBjcmVhdGl2ZSwgZXZlbnROYW1lLCBzdGF0aWNFbGVt
ZW50LCB0cmFja2luZ0VsZW1lbnQsIHRyYWNraW5nRXZlbnRzRWxlbWVudCwgdHJhY2tpbmdVUkxU
ZW1wbGF0ZSwgX2Jhc2UsIF9pLCBfaiwgX2ssIF9sLCBfbGVuLCBfbGVuMSwgX2xlbjIsIF9sZW4z
LCBfcmVmLCBfcmVmMSwgX3JlZjIsIF9yZWYzOwogICAgY3JlYXRpdmUgPSBuZXcgVkFTVENyZWF0
aXZlQ29tcGFuaW9uKCk7CiAgICBfcmVmID0gdGhpcy5jaGlsZHNCeU5hbWUoY3JlYXRpdmVFbGVt
ZW50LCAiQ29tcGFuaW9uIik7CiAgICBmb3IgKF9pID0gMCwgX2xlbiA9IF9yZWYubGVuZ3RoOyBf
aSA8IF9sZW47IF9pKyspIHsKICAgICAgY29tcGFuaW9uUmVzb3VyY2UgPSBfcmVmW19pXTsKICAg
ICAgY29tcGFuaW9uQWQgPSBuZXcgVkFTVENvbXBhbmlvbkFkKCk7CiAgICAgIGNvbXBhbmlvbkFk
LmlkID0gY29tcGFuaW9uUmVzb3VyY2UuZ2V0QXR0cmlidXRlKCJpZCIpIHx8IG51bGw7CiAgICAg
IGNvbXBhbmlvbkFkLndpZHRoID0gY29tcGFuaW9uUmVzb3VyY2UuZ2V0QXR0cmlidXRlKCJ3aWR0
aCIpOwogICAgICBjb21wYW5pb25BZC5oZWlnaHQgPSBjb21wYW5pb25SZXNvdXJjZS5nZXRBdHRy
aWJ1dGUoImhlaWdodCIpOwogICAgICBfcmVmMSA9IHRoaXMuY2hpbGRzQnlOYW1lKGNvbXBhbmlv
blJlc291cmNlLCAiU3RhdGljUmVzb3VyY2UiKTsKICAgICAgZm9yIChfaiA9IDAsIF9sZW4xID0g
X3JlZjEubGVuZ3RoOyBfaiA8IF9sZW4xOyBfaisrKSB7CiAgICAgICAgc3RhdGljRWxlbWVudCA9
IF9yZWYxW19qXTsKICAgICAgICBjb21wYW5pb25BZC50eXBlID0gc3RhdGljRWxlbWVudC5nZXRB
dHRyaWJ1dGUoImNyZWF0aXZlVHlwZSIpIHx8IDA7CiAgICAgICAgY29tcGFuaW9uQWQuc3RhdGlj
UmVzb3VyY2UgPSB0aGlzLnBhcnNlTm9kZVRleHQoc3RhdGljRWxlbWVudCk7CiAgICAgIH0KICAg
ICAgX3JlZjIgPSB0aGlzLmNoaWxkc0J5TmFtZShjb21wYW5pb25SZXNvdXJjZSwgIlRyYWNraW5n
RXZlbnRzIik7CiAgICAgIGZvciAoX2sgPSAwLCBfbGVuMiA9IF9yZWYyLmxlbmd0aDsgX2sgPCBf
bGVuMjsgX2srKykgewogICAgICAgIHRyYWNraW5nRXZlbnRzRWxlbWVudCA9IF9yZWYyW19rXTsK
ICAgICAgICBfcmVmMyA9IHRoaXMuY2hpbGRzQnlOYW1lKHRyYWNraW5nRXZlbnRzRWxlbWVudCwg
IlRyYWNraW5nIik7CiAgICAgICAgZm9yIChfbCA9IDAsIF9sZW4zID0gX3JlZjMubGVuZ3RoOyBf
bCA8IF9sZW4zOyBfbCsrKSB7CiAgICAgICAgICB0cmFja2luZ0VsZW1lbnQgPSBfcmVmM1tfbF07
CiAgICAgICAgICBldmVudE5hbWUgPSB0cmFja2luZ0VsZW1lbnQuZ2V0QXR0cmlidXRlKCJldmVu
dCIpOwogICAgICAgICAgdHJhY2tpbmdVUkxUZW1wbGF0ZSA9IHRoaXMucGFyc2VOb2RlVGV4dCh0
cmFja2luZ0VsZW1lbnQpOwogICAgICAgICAgaWYgKChldmVudE5hbWUgIT0gbnVsbCkgJiYgKHRy
YWNraW5nVVJMVGVtcGxhdGUgIT0gbnVsbCkpIHsKICAgICAgICAgICAgaWYgKChfYmFzZSA9IGNv
bXBhbmlvbkFkLnRyYWNraW5nRXZlbnRzKVtldmVudE5hbWVdID09IG51bGwpIHsKICAgICAgICAg
ICAgICBfYmFzZVtldmVudE5hbWVdID0gW107CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29t
cGFuaW9uQWQudHJhY2tpbmdFdmVudHNbZXZlbnROYW1lXS5wdXNoKHRyYWNraW5nVVJMVGVtcGxh
dGUpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICBjb21wYW5pb25BZC5jb21w
YW5pb25DbGlja1Rocm91Z2hVUkxUZW1wbGF0ZSA9IHRoaXMucGFyc2VOb2RlVGV4dCh0aGlzLmNo
aWxkQnlOYW1lKGNvbXBhbmlvblJlc291cmNlLCAiQ29tcGFuaW9uQ2xpY2tUaHJvdWdoIikpOwog
ICAgICBjcmVhdGl2ZS52YXJpYXRpb25zLnB1c2goY29tcGFuaW9uQWQpOwogICAgfQogICAgcmV0
dXJuIGNyZWF0aXZlOwogIH07CgogIFZBU1RQYXJzZXIucGFyc2VEdXJhdGlvbiA9IGZ1bmN0aW9u
KGR1cmF0aW9uU3RyaW5nKSB7CiAgICB2YXIgZHVyYXRpb25Db21wb25lbnRzLCBob3VycywgbWlu
dXRlcywgc2Vjb25kcywgc2Vjb25kc0FuZE1TOwogICAgaWYgKCEoZHVyYXRpb25TdHJpbmcgIT0g
bnVsbCkpIHsKICAgICAgcmV0dXJuIC0xOwogICAgfQogICAgZHVyYXRpb25Db21wb25lbnRzID0g
ZHVyYXRpb25TdHJpbmcuc3BsaXQoIjoiKTsKICAgIGlmIChkdXJhdGlvbkNvbXBvbmVudHMubGVu
Z3RoICE9PSAzKSB7CiAgICAgIHJldHVybiAtMTsKICAgIH0KICAgIHNlY29uZHNBbmRNUyA9IGR1
cmF0aW9uQ29tcG9uZW50c1syXS5zcGxpdCgiLiIpOwogICAgc2Vjb25kcyA9IHBhcnNlSW50KHNl
Y29uZHNBbmRNU1swXSk7CiAgICBpZiAoc2Vjb25kc0FuZE1TLmxlbmd0aCA9PT0gMikgewogICAg
ICBzZWNvbmRzICs9IHBhcnNlRmxvYXQoIjAuIiArIHNlY29uZHNBbmRNU1sxXSk7CiAgICB9CiAg
ICBtaW51dGVzID0gcGFyc2VJbnQoZHVyYXRpb25Db21wb25lbnRzWzFdICogNjApOwogICAgaG91
cnMgPSBwYXJzZUludChkdXJhdGlvbkNvbXBvbmVudHNbMF0gKiA2MCAqIDYwKTsKICAgIGlmIChp
c05hTihob3VycyB8fCBpc05hTihtaW51dGVzIHx8IGlzTmFOKHNlY29uZHMgfHwgbWludXRlcyA+
IDYwICogNjAgfHwgc2Vjb25kcyA+IDYwKSkpKSB7CiAgICAgIHJldHVybiAtMTsKICAgIH0KICAg
IHJldHVybiBob3VycyArIG1pbnV0ZXMgKyBzZWNvbmRzOwogIH07CgogIFZBU1RQYXJzZXIucGFy
c2VOb2RlVGV4dCA9IGZ1bmN0aW9uKG5vZGUpIHsKICAgIHJldHVybiBub2RlICYmIChub2RlLnRl
eHRDb250ZW50IHx8IG5vZGUudGV4dCk7CiAgfTsKCiAgcmV0dXJuIFZBU1RQYXJzZXI7Cgp9KSgp
OwoKbW9kdWxlLmV4cG9ydHMgPSBWQVNUUGFyc2VyOwoKfSx7Ii4vYWQuY29mZmVlIjoyLCIuL2Nv
bXBhbmlvbmFkLmNvZmZlZSI6NCwiLi9jcmVhdGl2ZS5jb2ZmZWUiOjUsIi4vbWVkaWFmaWxlLmNv
ZmZlZSI6NywiLi9yZXNwb25zZS5jb2ZmZWUiOjksIi4vdXJsaGFuZGxlci5jb2ZmZWUiOjExLCIu
L3V0aWwuY29mZmVlIjoxNH1dLDk6W2Z1bmN0aW9uKF9kZXJlcV8sbW9kdWxlLGV4cG9ydHMpewov
LyBHZW5lcmF0ZWQgYnkgQ29mZmVlU2NyaXB0IDEuNy4xCnZhciBWQVNUUmVzcG9uc2U7CgpWQVNU
UmVzcG9uc2UgPSAoZnVuY3Rpb24oKSB7CiAgZnVuY3Rpb24gVkFTVFJlc3BvbnNlKCkgewogICAg
dGhpcy5hZHMgPSBbXTsKICAgIHRoaXMuZXJyb3JVUkxUZW1wbGF0ZXMgPSBbXTsKICB9CgogIHJl
dHVybiBWQVNUUmVzcG9uc2U7Cgp9KSgpOwoKbW9kdWxlLmV4cG9ydHMgPSBWQVNUUmVzcG9uc2U7
Cgp9LHt9XSwxMDpbZnVuY3Rpb24oX2RlcmVxXyxtb2R1bGUsZXhwb3J0cyl7Ci8vIEdlbmVyYXRl
ZCBieSBDb2ZmZWVTY3JpcHQgMS43LjEKdmFyIEV2ZW50RW1pdHRlciwgVkFTVENsaWVudCwgVkFT
VENyZWF0aXZlTGluZWFyLCBWQVNUVHJhY2tlciwgVkFTVFV0aWwsCiAgX19oYXNQcm9wID0ge30u
aGFzT3duUHJvcGVydHksCiAgX19leHRlbmRzID0gZnVuY3Rpb24oY2hpbGQsIHBhcmVudCkgeyBm
b3IgKHZhciBrZXkgaW4gcGFyZW50KSB7IGlmIChfX2hhc1Byb3AuY2FsbChwYXJlbnQsIGtleSkp
IGNoaWxkW2tleV0gPSBwYXJlbnRba2V5XTsgfSBmdW5jdGlvbiBjdG9yKCkgeyB0aGlzLmNvbnN0
cnVjdG9yID0gY2hpbGQ7IH0gY3Rvci5wcm90b3R5cGUgPSBwYXJlbnQucHJvdG90eXBlOyBjaGls
ZC5wcm90b3R5cGUgPSBuZXcgY3RvcigpOyBjaGlsZC5fX3N1cGVyX18gPSBwYXJlbnQucHJvdG90
eXBlOyByZXR1cm4gY2hpbGQ7IH07CgpWQVNUQ2xpZW50ID0gX2RlcmVxXygnLi9jbGllbnQuY29m
ZmVlJyk7CgpWQVNUVXRpbCA9IF9kZXJlcV8oJy4vdXRpbC5jb2ZmZWUnKTsKClZBU1RDcmVhdGl2
ZUxpbmVhciA9IF9kZXJlcV8oJy4vY3JlYXRpdmUuY29mZmVlJykuVkFTVENyZWF0aXZlTGluZWFy
OwoKRXZlbnRFbWl0dGVyID0gX2RlcmVxXygnZXZlbnRzJykuRXZlbnRFbWl0dGVyOwoKVkFTVFRy
YWNrZXIgPSAoZnVuY3Rpb24oX3N1cGVyKSB7CiAgX19leHRlbmRzKFZBU1RUcmFja2VyLCBfc3Vw
ZXIpOwoKICBmdW5jdGlvbiBWQVNUVHJhY2tlcihhZCwgY3JlYXRpdmUpIHsKICAgIHZhciBldmVu
dE5hbWUsIGV2ZW50cywgX3JlZjsKICAgIHRoaXMuYWQgPSBhZDsKICAgIHRoaXMuY3JlYXRpdmUg
PSBjcmVhdGl2ZTsKICAgIHRoaXMubXV0ZWQgPSBmYWxzZTsKICAgIHRoaXMuaW1wcmVzc2VkID0g
ZmFsc2U7CiAgICB0aGlzLnNraXBhYmxlID0gZmFsc2U7CiAgICB0aGlzLnNraXBEZWxheURlZmF1
bHQgPSAtMTsKICAgIHRoaXMudHJhY2tpbmdFdmVudHMgPSB7fTsKICAgIHRoaXMuZW1pdEFsd2F5
c0V2ZW50cyA9IFsnY3JlYXRpdmVWaWV3JywgJ3N0YXJ0JywgJ2ZpcnN0UXVhcnRpbGUnLCAnbWlk
cG9pbnQnLCAndGhpcmRRdWFydGlsZScsICdjb21wbGV0ZScsICdyZXN1bWUnLCAncGF1c2UnLCAn
cmV3aW5kJywgJ3NraXAnLCAnY2xvc2VMaW5lYXInLCAnY2xvc2UnXTsKICAgIF9yZWYgPSBjcmVh
dGl2ZS50cmFja2luZ0V2ZW50czsKICAgIGZvciAoZXZlbnROYW1lIGluIF9yZWYpIHsKICAgICAg
ZXZlbnRzID0gX3JlZltldmVudE5hbWVdOwogICAgICB0aGlzLnRyYWNraW5nRXZlbnRzW2V2ZW50
TmFtZV0gPSBldmVudHMuc2xpY2UoMCk7CiAgICB9CiAgICBpZiAoY3JlYXRpdmUgaW5zdGFuY2Vv
ZiBWQVNUQ3JlYXRpdmVMaW5lYXIpIHsKICAgICAgdGhpcy5hc3NldER1cmF0aW9uID0gY3JlYXRp
dmUuZHVyYXRpb247CiAgICAgIHRoaXMucXVhcnRpbGVzID0gewogICAgICAgICdmaXJzdFF1YXJ0
aWxlJzogTWF0aC5yb3VuZCgyNSAqIHRoaXMuYXNzZXREdXJhdGlvbikgLyAxMDAsCiAgICAgICAg
J21pZHBvaW50JzogTWF0aC5yb3VuZCg1MCAqIHRoaXMuYXNzZXREdXJhdGlvbikgLyAxMDAsCiAg
ICAgICAgJ3RoaXJkUXVhcnRpbGUnOiBNYXRoLnJvdW5kKDc1ICogdGhpcy5hc3NldER1cmF0aW9u
KSAvIDEwMAogICAgICB9OwogICAgICB0aGlzLnNraXBEZWxheSA9IGNyZWF0aXZlLnNraXBEZWxh
eTsKICAgICAgdGhpcy5saW5lYXIgPSB0cnVlOwogICAgICB0aGlzLmNsaWNrVGhyb3VnaFVSTFRl
bXBsYXRlID0gY3JlYXRpdmUudmlkZW9DbGlja1Rocm91Z2hVUkxUZW1wbGF0ZTsKICAgICAgdGhp
cy5jbGlja1RyYWNraW5nVVJMVGVtcGxhdGUgPSBjcmVhdGl2ZS52aWRlb0NsaWNrVHJhY2tpbmdV
UkxUZW1wbGF0ZTsKICAgIH0gZWxzZSB7CiAgICAgIHRoaXMuc2tpcERlbGF5ID0gLTE7CiAgICAg
IHRoaXMubGluZWFyID0gZmFsc2U7CiAgICB9CiAgICB0aGlzLm9uKCdzdGFydCcsIGZ1bmN0aW9u
KCkgewogICAgICBWQVNUQ2xpZW50Lmxhc3RTdWNjZXNzZnVsbEFkID0gK25ldyBEYXRlKCk7CiAg
ICB9KTsKICB9CgogIFZBU1RUcmFja2VyLnByb3RvdHlwZS5zZXRQcm9ncmVzcyA9IGZ1bmN0aW9u
KHByb2dyZXNzKSB7CiAgICB2YXIgZXZlbnROYW1lLCBldmVudHMsIHBlcmNlbnQsIHF1YXJ0aWxl
LCBza2lwRGVsYXksIHRpbWUsIF9pLCBfbGVuLCBfcmVmOwogICAgc2tpcERlbGF5ID0gdGhpcy5z
a2lwRGVsYXkgPT09IG51bGwgPyB0aGlzLnNraXBEZWxheURlZmF1bHQgOiB0aGlzLnNraXBEZWxh
eTsKICAgIGlmIChza2lwRGVsYXkgIT09IC0xICYmICF0aGlzLnNraXBhYmxlKSB7CiAgICAgIGlm
IChza2lwRGVsYXkgPiBwcm9ncmVzcykgewogICAgICAgIHRoaXMuZW1pdCgnc2tpcC1jb3VudGRv
d24nLCBza2lwRGVsYXkgLSBwcm9ncmVzcyk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5z
a2lwYWJsZSA9IHRydWU7CiAgICAgICAgdGhpcy5lbWl0KCdza2lwLWNvdW50ZG93bicsIDApOwog
ICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW5lYXIgJiYgdGhpcy5hc3NldER1cmF0aW9uID4g
MCkgewogICAgICBldmVudHMgPSBbXTsKICAgICAgaWYgKHByb2dyZXNzID4gMCkgewogICAgICAg
IGV2ZW50cy5wdXNoKCJzdGFydCIpOwogICAgICAgIHBlcmNlbnQgPSBNYXRoLnJvdW5kKHByb2dy
ZXNzIC8gdGhpcy5hc3NldER1cmF0aW9uICogMTAwKTsKICAgICAgICBldmVudHMucHVzaCgicHJv
Z3Jlc3MtIiArIHBlcmNlbnQgKyAiJSIpOwogICAgICAgIF9yZWYgPSB0aGlzLnF1YXJ0aWxlczsK
ICAgICAgICBmb3IgKHF1YXJ0aWxlIGluIF9yZWYpIHsKICAgICAgICAgIHRpbWUgPSBfcmVmW3F1
YXJ0aWxlXTsKICAgICAgICAgIGlmICgodGltZSA8PSBwcm9ncmVzcyAmJiBwcm9ncmVzcyA8PSAo
dGltZSArIDEpKSkgewogICAgICAgICAgICBldmVudHMucHVzaChxdWFydGlsZSk7CiAgICAgICAg
ICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIGZvciAoX2kgPSAwLCBfbGVuID0gZXZlbnRzLmxl
bmd0aDsgX2kgPCBfbGVuOyBfaSsrKSB7CiAgICAgICAgZXZlbnROYW1lID0gZXZlbnRzW19pXTsK
ICAgICAgICB0aGlzLnRyYWNrKGV2ZW50TmFtZSwgdHJ1ZSk7CiAgICAgIH0KICAgICAgaWYgKHBy
b2dyZXNzIDwgdGhpcy5wcm9ncmVzcykgewogICAgICAgIHRoaXMudHJhY2soInJld2luZCIpOwog
ICAgICB9CiAgICB9CiAgICByZXR1cm4gdGhpcy5wcm9ncmVzcyA9IHByb2dyZXNzOwogIH07Cgog
IFZBU1RUcmFja2VyLnByb3RvdHlwZS5zZXRNdXRlZCA9IGZ1bmN0aW9uKG11dGVkKSB7CiAgICBp
ZiAodGhpcy5tdXRlZCAhPT0gbXV0ZWQpIHsKICAgICAgdGhpcy50cmFjayhtdXRlZCA/ICJtdXRl
ZCIgOiAidW5tdXRlZCIpOwogICAgfQogICAgcmV0dXJuIHRoaXMubXV0ZWQgPSBtdXRlZDsKICB9
OwoKICBWQVNUVHJhY2tlci5wcm90b3R5cGUuc2V0UGF1c2VkID0gZnVuY3Rpb24ocGF1c2VkKSB7
CiAgICBpZiAodGhpcy5wYXVzZWQgIT09IHBhdXNlZCkgewogICAgICB0aGlzLnRyYWNrKHBhdXNl
ZCA/ICJwYXVzZSIgOiAicmVzdW1lIik7CiAgICB9CiAgICByZXR1cm4gdGhpcy5wYXVzZWQgPSBw
YXVzZWQ7CiAgfTsKCiAgVkFTVFRyYWNrZXIucHJvdG90eXBlLnNldEZ1bGxzY3JlZW4gPSBmdW5j
dGlvbihmdWxsc2NyZWVuKSB7CiAgICBpZiAodGhpcy5mdWxsc2NyZWVuICE9PSBmdWxsc2NyZWVu
KSB7CiAgICAgIHRoaXMudHJhY2soZnVsbHNjcmVlbiA/ICJmdWxsc2NyZWVuIiA6ICJleGl0RnVs
bHNjcmVlbiIpOwogICAgfQogICAgcmV0dXJuIHRoaXMuZnVsbHNjcmVlbiA9IGZ1bGxzY3JlZW47
CiAgfTsKCiAgVkFTVFRyYWNrZXIucHJvdG90eXBlLnNldFNraXBEZWxheSA9IGZ1bmN0aW9uKGR1
cmF0aW9uKSB7CiAgICBpZiAodHlwZW9mIGR1cmF0aW9uID09PSAnbnVtYmVyJykgewogICAgICBy
ZXR1cm4gdGhpcy5za2lwRGVsYXkgPSBkdXJhdGlvbjsKICAgIH0KICB9OwoKICBWQVNUVHJhY2tl
ci5wcm90b3R5cGUubG9hZCA9IGZ1bmN0aW9uKCkgewogICAgaWYgKCF0aGlzLmltcHJlc3NlZCkg
ewogICAgICB0aGlzLmltcHJlc3NlZCA9IHRydWU7CiAgICAgIHRoaXMudHJhY2tVUkxzKHRoaXMu
YWQuaW1wcmVzc2lvblVSTFRlbXBsYXRlcyk7CiAgICAgIHJldHVybiB0aGlzLnRyYWNrKCJjcmVh
dGl2ZVZpZXciKTsKICAgIH0KICB9OwoKICBWQVNUVHJhY2tlci5wcm90b3R5cGUuZXJyb3JXaXRo
Q29kZSA9IGZ1bmN0aW9uKGVycm9yQ29kZSkgewogICAgcmV0dXJuIHRoaXMudHJhY2tVUkxzKHRo
aXMuYWQuZXJyb3JVUkxUZW1wbGF0ZXMsIHsKICAgICAgRVJST1JDT0RFOiBlcnJvckNvZGUKICAg
IH0pOwogIH07CgogIFZBU1RUcmFja2VyLnByb3RvdHlwZS5jb21wbGV0ZSA9IGZ1bmN0aW9uKCkg
ewogICAgcmV0dXJuIHRoaXMudHJhY2soImNvbXBsZXRlIik7CiAgfTsKCiAgVkFTVFRyYWNrZXIu
cHJvdG90eXBlLnN0b3AgPSBmdW5jdGlvbigpIHsKICAgIHJldHVybiB0aGlzLnRyYWNrKHRoaXMu
bGluZWFyID8gImNsb3NlTGluZWFyIiA6ICJjbG9zZSIpOwogIH07CgogIFZBU1RUcmFja2VyLnBy
b3RvdHlwZS5za2lwID0gZnVuY3Rpb24oKSB7CiAgICB0aGlzLnRyYWNrKCJza2lwIik7CiAgICBy
ZXR1cm4gdGhpcy50cmFja2luZ0V2ZW50cyA9IFtdOwogIH07CgogIFZBU1RUcmFja2VyLnByb3Rv
dHlwZS5jbGljayA9IGZ1bmN0aW9uKCkgewogICAgdmFyIGNsaWNrVGhyb3VnaFVSTCwgdmFyaWFi
bGVzOwogICAgaWYgKHRoaXMuY2xpY2tUcmFja2luZ1VSTFRlbXBsYXRlICE9IG51bGwpIHsKICAg
ICAgdGhpcy50cmFja1VSTHMoW3RoaXMuY2xpY2tUcmFja2luZ1VSTFRlbXBsYXRlXSk7CiAgICB9
CiAgICBpZiAodGhpcy5jbGlja1Rocm91Z2hVUkxUZW1wbGF0ZSAhPSBudWxsKSB7CiAgICAgIGlm
ICh0aGlzLmxpbmVhcikgewogICAgICAgIHZhcmlhYmxlcyA9IHsKICAgICAgICAgIENPTlRFTlRQ
TEFZSEVBRDogdGhpcy5wcm9ncmVzc0Zvcm1hdGVkKCkKICAgICAgICB9OwogICAgICB9CiAgICAg
IGNsaWNrVGhyb3VnaFVSTCA9IFZBU1RVdGlsLnJlc29sdmVVUkxUZW1wbGF0ZXMoW3RoaXMuY2xp
Y2tUaHJvdWdoVVJMVGVtcGxhdGVdLCB2YXJpYWJsZXMpWzBdOwogICAgICByZXR1cm4gdGhpcy5l
bWl0KCJjbGlja3Rocm91Z2giLCBjbGlja1Rocm91Z2hVUkwpOwogICAgfQogIH07CgogIFZBU1RU
cmFja2VyLnByb3RvdHlwZS50cmFjayA9IGZ1bmN0aW9uKGV2ZW50TmFtZSwgb25jZSkgewogICAg
dmFyIGlkeCwgdHJhY2tpbmdVUkxUZW1wbGF0ZXM7CiAgICBpZiAob25jZSA9PSBudWxsKSB7CiAg
ICAgIG9uY2UgPSBmYWxzZTsKICAgIH0KICAgIGlmIChldmVudE5hbWUgPT09ICdjbG9zZUxpbmVh
cicgJiYgKCh0aGlzLnRyYWNraW5nRXZlbnRzW2V2ZW50TmFtZV0gPT0gbnVsbCkgJiYgKHRoaXMu
dHJhY2tpbmdFdmVudHNbJ2Nsb3NlJ10gIT0gbnVsbCkpKSB7CiAgICAgIGV2ZW50TmFtZSA9ICdj
bG9zZSc7CiAgICB9CiAgICB0cmFja2luZ1VSTFRlbXBsYXRlcyA9IHRoaXMudHJhY2tpbmdFdmVu
dHNbZXZlbnROYW1lXTsKICAgIGlkeCA9IHRoaXMuZW1pdEFsd2F5c0V2ZW50cy5pbmRleE9mKGV2
ZW50TmFtZSk7CiAgICBpZiAodHJhY2tpbmdVUkxUZW1wbGF0ZXMgIT0gbnVsbCkgewogICAgICB0
aGlzLmVtaXQoZXZlbnROYW1lLCAnJyk7CiAgICAgIHRoaXMudHJhY2tVUkxzKHRyYWNraW5nVVJM
VGVtcGxhdGVzKTsKICAgIH0gZWxzZSBpZiAoaWR4ICE9PSAtMSkgewogICAgICB0aGlzLmVtaXQo
ZXZlbnROYW1lLCAnJyk7CiAgICB9CiAgICBpZiAob25jZSA9PT0gdHJ1ZSkgewogICAgICBkZWxl
dGUgdGhpcy50cmFja2luZ0V2ZW50c1tldmVudE5hbWVdOwogICAgICBpZiAoaWR4ID4gLTEpIHsK
ICAgICAgICB0aGlzLmVtaXRBbHdheXNFdmVudHMuc3BsaWNlKGlkeCwgMSk7CiAgICAgIH0KICAg
IH0KICB9OwoKICBWQVNUVHJhY2tlci5wcm90b3R5cGUudHJhY2tVUkxzID0gZnVuY3Rpb24oVVJM
VGVtcGxhdGVzLCB2YXJpYWJsZXMpIHsKICAgIGlmICh2YXJpYWJsZXMgPT0gbnVsbCkgewogICAg
ICB2YXJpYWJsZXMgPSB7fTsKICAgIH0KICAgIGlmICh0aGlzLmxpbmVhcikgewogICAgICB2YXJp
YWJsZXNbIkNPTlRFTlRQTEFZSEVBRCJdID0gdGhpcy5wcm9ncmVzc0Zvcm1hdGVkKCk7CiAgICB9
CiAgICByZXR1cm4gVkFTVFV0aWwudHJhY2soVVJMVGVtcGxhdGVzLCB2YXJpYWJsZXMpOwogIH07
CgogIFZBU1RUcmFja2VyLnByb3RvdHlwZS5wcm9ncmVzc0Zvcm1hdGVkID0gZnVuY3Rpb24oKSB7
CiAgICB2YXIgaCwgbSwgbXMsIHMsIHNlY29uZHM7CiAgICBzZWNvbmRzID0gcGFyc2VJbnQodGhp
cy5wcm9ncmVzcyk7CiAgICBoID0gc2Vjb25kcyAvICg2MCAqIDYwKTsKICAgIGlmIChoLmxlbmd0
aCA8IDIpIHsKICAgICAgaCA9ICIwIiArIGg7CiAgICB9CiAgICBtID0gc2Vjb25kcyAvIDYwICUg
NjA7CiAgICBpZiAobS5sZW5ndGggPCAyKSB7CiAgICAgIG0gPSAiMCIgKyBtOwogICAgfQogICAg
cyA9IHNlY29uZHMgJSA2MDsKICAgIGlmIChzLmxlbmd0aCA8IDIpIHsKICAgICAgcyA9ICIwIiAr
IG07CiAgICB9CiAgICBtcyA9IHBhcnNlSW50KCh0aGlzLnByb2dyZXNzIC0gc2Vjb25kcykgKiAx
MDApOwogICAgcmV0dXJuICIiICsgaCArICI6IiArIG0gKyAiOiIgKyBzICsgIi4iICsgbXM7CiAg
fTsKCiAgcmV0dXJuIFZBU1RUcmFja2VyOwoKfSkoRXZlbnRFbWl0dGVyKTsKCm1vZHVsZS5leHBv
cnRzID0gVkFTVFRyYWNrZXI7Cgp9LHsiLi9jbGllbnQuY29mZmVlIjozLCIuL2NyZWF0aXZlLmNv
ZmZlZSI6NSwiLi91dGlsLmNvZmZlZSI6MTQsImV2ZW50cyI6MX1dLDExOltmdW5jdGlvbihfZGVy
ZXFfLG1vZHVsZSxleHBvcnRzKXsKLy8gR2VuZXJhdGVkIGJ5IENvZmZlZVNjcmlwdCAxLjcuMQp2
YXIgVVJMSGFuZGxlciwgZmxhc2gsIHhocjsKCnhociA9IF9kZXJlcV8oJy4vdXJsaGFuZGxlcnMv
eG1saHR0cHJlcXVlc3QuY29mZmVlJyk7CgpmbGFzaCA9IF9kZXJlcV8oJy4vdXJsaGFuZGxlcnMv
Zmxhc2guY29mZmVlJyk7CgpVUkxIYW5kbGVyID0gKGZ1bmN0aW9uKCkgewogIGZ1bmN0aW9uIFVS
TEhhbmRsZXIoKSB7fQoKICBVUkxIYW5kbGVyLmdldCA9IGZ1bmN0aW9uKHVybCwgY2IpIHsKICAg
IGlmICh0eXBlb2Ygd2luZG93ID09PSAidW5kZWZpbmVkIiB8fCB3aW5kb3cgPT09IG51bGwpIHsK
ICAgICAgcmV0dXJuIF9kZXJlcV8oJy4vdXJsaGFuZGxlcnMvJyArICdub2RlLmNvZmZlZScpLmdl
dCh1cmwsIGNiKTsKICAgIH0gZWxzZSBpZiAoeGhyLnN1cHBvcnRlZCgpKSB7CiAgICAgIHJldHVy
biB4aHIuZ2V0KHVybCwgY2IpOwogICAgfSBlbHNlIGlmIChmbGFzaC5zdXBwb3J0ZWQoKSkgewog
ICAgICByZXR1cm4gZmxhc2guZ2V0KHVybCwgY2IpOwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJu
IGNiKCk7CiAgICB9CiAgfTsKCiAgcmV0dXJuIFVSTEhhbmRsZXI7Cgp9KSgpOwoKbW9kdWxlLmV4
cG9ydHMgPSBVUkxIYW5kbGVyOwoKfSx7Ii4vdXJsaGFuZGxlcnMvZmxhc2guY29mZmVlIjoxMiwi
Li91cmxoYW5kbGVycy94bWxodHRwcmVxdWVzdC5jb2ZmZWUiOjEzfV0sMTI6W2Z1bmN0aW9uKF9k
ZXJlcV8sbW9kdWxlLGV4cG9ydHMpewovLyBHZW5lcmF0ZWQgYnkgQ29mZmVlU2NyaXB0IDEuNy4x
CnZhciBGbGFzaFVSTEhhbmRsZXI7CgpGbGFzaFVSTEhhbmRsZXIgPSAoZnVuY3Rpb24oKSB7CiAg
ZnVuY3Rpb24gRmxhc2hVUkxIYW5kbGVyKCkge30KCiAgRmxhc2hVUkxIYW5kbGVyLnhkciA9IGZ1
bmN0aW9uKCkgewogICAgdmFyIHhkcjsKICAgIGlmICh3aW5kb3cuWERvbWFpblJlcXVlc3QpIHsK
ICAgICAgeGRyID0gbmV3IFhEb21haW5SZXF1ZXN0KCk7CiAgICB9CiAgICByZXR1cm4geGRyOwog
IH07CgogIEZsYXNoVVJMSGFuZGxlci5zdXBwb3J0ZWQgPSBmdW5jdGlvbigpIHsKICAgIHJldHVy
biAhIXRoaXMueGRyKCk7CiAgfTsKCiAgRmxhc2hVUkxIYW5kbGVyLmdldCA9IGZ1bmN0aW9uKHVy
bCwgY2IpIHsKICAgIHZhciB4ZHIsIHhtbERvY3VtZW50OwogICAgaWYgKHhtbERvY3VtZW50ID0g
dHlwZW9mIHdpbmRvdy5BY3RpdmVYT2JqZWN0ID09PSAiZnVuY3Rpb24iID8gbmV3IHdpbmRvdy5B
Y3RpdmVYT2JqZWN0KCJNaWNyb3NvZnQuWE1MRE9NIikgOiB2b2lkIDApIHsKICAgICAgeG1sRG9j
dW1lbnQuYXN5bmMgPSBmYWxzZTsKICAgIH0gZWxzZSB7CiAgICAgIHJldHVybiBjYigpOwogICAg
fQogICAgeGRyID0gdGhpcy54ZHIoKTsKICAgIHhkci5vcGVuKCdHRVQnLCB1cmwpOwogICAgeGRy
LnNlbmQoKTsKICAgIHJldHVybiB4ZHIub25sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgIHhtbERv
Y3VtZW50LmxvYWRYTUwoeGRyLnJlc3BvbnNlVGV4dCk7CiAgICAgIHJldHVybiBjYihudWxsLCB4
bWxEb2N1bWVudCk7CiAgICB9OwogIH07CgogIHJldHVybiBGbGFzaFVSTEhhbmRsZXI7Cgp9KSgp
OwoKbW9kdWxlLmV4cG9ydHMgPSBGbGFzaFVSTEhhbmRsZXI7Cgp9LHt9XSwxMzpbZnVuY3Rpb24o
X2RlcmVxXyxtb2R1bGUsZXhwb3J0cyl7Ci8vIEdlbmVyYXRlZCBieSBDb2ZmZWVTY3JpcHQgMS43
LjEKdmFyIFhIUlVSTEhhbmRsZXI7CgpYSFJVUkxIYW5kbGVyID0gKGZ1bmN0aW9uKCkgewogIGZ1
bmN0aW9uIFhIUlVSTEhhbmRsZXIoKSB7fQoKICBYSFJVUkxIYW5kbGVyLnhociA9IGZ1bmN0aW9u
KCkgewogICAgdmFyIHhocjsKICAgIHhociA9IG5ldyB3aW5kb3cuWE1MSHR0cFJlcXVlc3QoKTsK
ICAgIGlmICgnd2l0aENyZWRlbnRpYWxzJyBpbiB4aHIpIHsKICAgICAgcmV0dXJuIHhocjsKICAg
IH0KICB9OwoKICBYSFJVUkxIYW5kbGVyLnN1cHBvcnRlZCA9IGZ1bmN0aW9uKCkgewogICAgcmV0
dXJuICEhdGhpcy54aHIoKTsKICB9OwoKICBYSFJVUkxIYW5kbGVyLmdldCA9IGZ1bmN0aW9uKHVy
bCwgY2IpIHsKICAgIHZhciB4aHI7CiAgICB4aHIgPSB0aGlzLnhocigpOwogICAgeGhyLm9wZW4o
J0dFVCcsIHVybCk7CiAgICB4aHIuc2VuZCgpOwogICAgcmV0dXJuIHhoci5vbnJlYWR5c3RhdGVj
aGFuZ2UgPSBmdW5jdGlvbigpIHsKICAgICAgaWYgKHhoci5yZWFkeVN0YXRlID09PSA0KSB7CiAg
ICAgICAgcmV0dXJuIGNiKG51bGwsIHhoci5yZXNwb25zZVhNTCk7CiAgICAgIH0KICAgIH07CiAg
fTsKCiAgcmV0dXJuIFhIUlVSTEhhbmRsZXI7Cgp9KSgpOwoKbW9kdWxlLmV4cG9ydHMgPSBYSFJV
UkxIYW5kbGVyOwoKfSx7fV0sMTQ6W2Z1bmN0aW9uKF9kZXJlcV8sbW9kdWxlLGV4cG9ydHMpewov
LyBHZW5lcmF0ZWQgYnkgQ29mZmVlU2NyaXB0IDEuNy4xCnZhciBWQVNUVXRpbDsKClZBU1RVdGls
ID0gKGZ1bmN0aW9uKCkgewogIGZ1bmN0aW9uIFZBU1RVdGlsKCkge30KCiAgVkFTVFV0aWwudHJh
Y2sgPSBmdW5jdGlvbihVUkxUZW1wbGF0ZXMsIHZhcmlhYmxlcykgewogICAgdmFyIFVSTCwgVVJM
cywgaSwgX2ksIF9sZW4sIF9yZXN1bHRzOwogICAgVVJMcyA9IHRoaXMucmVzb2x2ZVVSTFRlbXBs
YXRlcyhVUkxUZW1wbGF0ZXMsIHZhcmlhYmxlcyk7CiAgICBfcmVzdWx0cyA9IFtdOwogICAgZm9y
IChfaSA9IDAsIF9sZW4gPSBVUkxzLmxlbmd0aDsgX2kgPCBfbGVuOyBfaSsrKSB7CiAgICAgIFVS
TCA9IFVSTHNbX2ldOwogICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gInVuZGVmaW5lZCIgJiYg
d2luZG93ICE9PSBudWxsKSB7CiAgICAgICAgaSA9IG5ldyBJbWFnZSgpOwogICAgICAgIF9yZXN1
bHRzLnB1c2goaS5zcmMgPSBVUkwpOwogICAgICB9IGVsc2UgewoKICAgICAgfQogICAgfQogICAg
cmV0dXJuIF9yZXN1bHRzOwogIH07CgogIFZBU1RVdGlsLnJlc29sdmVVUkxUZW1wbGF0ZXMgPSBm
dW5jdGlvbihVUkxUZW1wbGF0ZXMsIHZhcmlhYmxlcykgewogICAgdmFyIFVSTFRlbXBsYXRlLCBV
UkxzLCBrZXksIG1hY3JvMSwgbWFjcm8yLCByZXNvbHZlVVJMLCB2YWx1ZSwgX2ksIF9sZW47CiAg
ICBVUkxzID0gW107CiAgICBpZiAodmFyaWFibGVzID09IG51bGwpIHsKICAgICAgdmFyaWFibGVz
ID0ge307CiAgICB9CiAgICBpZiAoISgiQ0FDSEVCVVNUSU5HIiBpbiB2YXJpYWJsZXMpKSB7CiAg
ICAgIHZhcmlhYmxlc1siQ0FDSEVCVVNUSU5HIl0gPSBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkg
KiAxLjBlKzEwKTsKICAgIH0KICAgIHZhcmlhYmxlc1sicmFuZG9tIl0gPSB2YXJpYWJsZXNbIkNB
Q0hFQlVTVElORyJdOwogICAgZm9yIChfaSA9IDAsIF9sZW4gPSBVUkxUZW1wbGF0ZXMubGVuZ3Ro
OyBfaSA8IF9sZW47IF9pKyspIHsKICAgICAgVVJMVGVtcGxhdGUgPSBVUkxUZW1wbGF0ZXNbX2ld
OwogICAgICByZXNvbHZlVVJMID0gVVJMVGVtcGxhdGU7CiAgICAgIGZvciAoa2V5IGluIHZhcmlh
YmxlcykgewogICAgICAgIHZhbHVlID0gdmFyaWFibGVzW2tleV07CiAgICAgICAgbWFjcm8xID0g
IlsiICsga2V5ICsgIl0iOwogICAgICAgIG1hY3JvMiA9ICIlJSIgKyBrZXkgKyAiJSUiOwogICAg
ICAgIHJlc29sdmVVUkwgPSByZXNvbHZlVVJMLnJlcGxhY2UobWFjcm8xLCB2YWx1ZSk7CiAgICAg
ICAgcmVzb2x2ZVVSTCA9IHJlc29sdmVVUkwucmVwbGFjZShtYWNybzIsIHZhbHVlKTsKICAgICAg
fQogICAgICBVUkxzLnB1c2gocmVzb2x2ZVVSTCk7CiAgICB9CiAgICByZXR1cm4gVVJMczsKICB9
OwoKICBWQVNUVXRpbC5zdG9yYWdlID0gKGZ1bmN0aW9uKCkgewogICAgdmFyIGRhdGEsIGlzRGlz
YWJsZWQsIHN0b3JhZ2UsIHN0b3JhZ2VFcnJvcjsKICAgIHRyeSB7CiAgICAgIHN0b3JhZ2UgPSB0
eXBlb2Ygd2luZG93ICE9PSAidW5kZWZpbmVkIiAmJiB3aW5kb3cgIT09IG51bGwgPyB3aW5kb3cu
bG9jYWxTdG9yYWdlIHx8IHdpbmRvdy5zZXNzaW9uU3RvcmFnZSA6IG51bGw7CiAgICB9IGNhdGNo
IChfZXJyb3IpIHsKICAgICAgc3RvcmFnZUVycm9yID0gX2Vycm9yOwogICAgICBzdG9yYWdlID0g
bnVsbDsKICAgIH0KICAgIGlzRGlzYWJsZWQgPSBmdW5jdGlvbihzdG9yZSkgewogICAgICB2YXIg
ZSwgdGVzdFZhbHVlOwogICAgICB0cnkgewogICAgICAgIHRlc3RWYWx1ZSA9ICdfX1ZBU1RVdGls
X18nOwogICAgICAgIHN0b3JlLnNldEl0ZW0odGVzdFZhbHVlLCB0ZXN0VmFsdWUpOwogICAgICAg
IGlmIChzdG9yZS5nZXRJdGVtKHRlc3RWYWx1ZSkgIT09IHRlc3RWYWx1ZSkgewogICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICB9IGNhdGNoIChfZXJyb3IpIHsKICAgICAgICBl
ID0gX2Vycm9yOwogICAgICAgIHJldHVybiB0cnVlOwogICAgICB9CiAgICAgIHJldHVybiBmYWxz
ZTsKICAgIH07CiAgICBpZiAoKHN0b3JhZ2UgPT0gbnVsbCkgfHwgaXNEaXNhYmxlZChzdG9yYWdl
KSkgewogICAgICBkYXRhID0ge307CiAgICAgIHN0b3JhZ2UgPSB7CiAgICAgICAgbGVuZ3RoOiAw
LAogICAgICAgIGdldEl0ZW06IGZ1bmN0aW9uKGtleSkgewogICAgICAgICAgcmV0dXJuIGRhdGFb
a2V5XTsKICAgICAgICB9LAogICAgICAgIHNldEl0ZW06IGZ1bmN0aW9uKGtleSwgdmFsdWUpIHsK
ICAgICAgICAgIGRhdGFba2V5XSA9IHZhbHVlOwogICAgICAgICAgdGhpcy5sZW5ndGggPSBPYmpl
Y3Qua2V5cyhkYXRhKS5sZW5ndGg7CiAgICAgICAgfSwKICAgICAgICByZW1vdmVJdGVtOiBmdW5j
dGlvbihrZXkpIHsKICAgICAgICAgIGRlbGV0ZSBkYXRhW2tleV07CiAgICAgICAgICB0aGlzLmxl
bmd0aCA9IE9iamVjdC5rZXlzKGRhdGEpLmxlbmd0aDsKICAgICAgICB9LAogICAgICAgIGNsZWFy
OiBmdW5jdGlvbigpIHsKICAgICAgICAgIGRhdGEgPSB7fTsKICAgICAgICAgIHRoaXMubGVuZ3Ro
ID0gMDsKICAgICAgICB9CiAgICAgIH07CiAgICB9CiAgICByZXR1cm4gc3RvcmFnZTsKICB9KSgp
OwoKICByZXR1cm4gVkFTVFV0aWw7Cgp9KSgpOwoKbW9kdWxlLmV4cG9ydHMgPSBWQVNUVXRpbDsK
Cn0se31dfSx7fSxbNl0pCig2KQp9KTs=
|
|
60 | /video/js/videojs.vast.js | application/javascript | videojs.vast.js | 200 OK | TEXT | 7.9 KB | 08/02/79 17:31:49 |
Download
|
|
SHA256
|
f9f11596a183eebf07662f9497534af8abbd37983275d37284157d0eac6a7fb3
|
Referer
|
http://cdn.bitmedianetwork.com/video/adplayer.html?timestamp=1481644853337&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t
|
Magic
|
Inconclusive. Probably text (TEXT)
|
Request
|
GET /video/js/videojs.vast.js HTTP/1.1
Accept: */*
Referer: http://cdn.bitmedianetwork.com/video/adplayer.html?timestamp=1481644853337&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: u2ZWHwmHEDybXqyXHS9qi1UKuxHCLX5qx1ZfyBL4/BZ+ZCNfi2tXhiPh3amJc7B9K4T+wlk7o84=
x-amz-request-id: C68A70FD96A6D554
x-amz-meta-cache-control: max-age=86400
Content-Type: application/javascript
Server: AmazonS3
Age: 44492
Date: Tue, 13 Dec 2016 16:01:11 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:50 GMT
Expires: Wed, 14 Dec 2016 03:39:39 GMT
Content-Length: 8083
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
(function(vjs, vast) {
"use strict";
var
extend = function(obj) {
var arg, i, k;
for (i = 1; i < arguments.length; i...
|
KGZ1bmN0aW9uKHZqcywgdmFzdCkgewoidXNlIHN0cmljdCI7CiAgdmFyCiAgZXh0ZW5kID0gZnVu
Y3Rpb24ob2JqKSB7CiAgICB2YXIgYXJnLCBpLCBrOwogICAgZm9yIChpID0gMTsgaSA8IGFyZ3Vt
ZW50cy5sZW5ndGg7IGkrKykgewogICAgICBhcmcgPSBhcmd1bWVudHNbaV07CiAgICAgIGZvciAo
ayBpbiBhcmcpIHsKICAgICAgICBpZiAoYXJnLmhhc093blByb3BlcnR5KGspKSB7CiAgICAgICAg
ICBvYmpba10gPSBhcmdba107CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gb2Jq
OwogIH0sCgogIGRlZmF1bHRzID0gewogICAgc2tpcDogNSAvLyBuZWdhdGl2ZSBkaXNhYmxlcwog
IH0sCgogIHZhc3RQbHVnaW4gPSBmdW5jdGlvbihvcHRpb25zKSB7CiAgICB2YXIgcGxheWVyID0g
dGhpczsKICAgIHZhciBzZXR0aW5ncyA9IGV4dGVuZCh7fSwgZGVmYXVsdHMsIG9wdGlvbnMgfHwg
e30pOwoKICAgIGlmIChwbGF5ZXIuYWRzID09PSB1bmRlZmluZWQpIHsKICAgICAgICByZXR1cm47
CiAgICB9CgogICAgLy8gSWYgd2UgZG9uJ3QgaGF2ZSBhIFZBU1QgdXJsLCBqdXN0IGJhaWwgb3V0
LgogICAgaWYoc2V0dGluZ3MudXJsID09PSB1bmRlZmluZWQpIHsKICAgICAgcGxheWVyLnRyaWdn
ZXIoJ2FkdGltZW91dCcpOwogICAgICByZXR1cm47CiAgICB9CgogICAgLy8gdmlkZW9qcy1hZHMg
dHJpZ2dlcnMgdGhpcyB3aGVuIHNyYyBjaGFuZ2VzCiAgICBwbGF5ZXIub24oJ2NvbnRlbnR1cGRh
dGUnLCBmdW5jdGlvbigpewogICAgICBwbGF5ZXIudmFzdC5nZXRDb250ZW50KHNldHRpbmdzLnVy
bCk7CiAgICB9KTsKCiAgICBwbGF5ZXIub24oJ3JlYWR5Zm9ycHJlcm9sbCcsIGZ1bmN0aW9uKCkg
ewogICAgICBwbGF5ZXIudmFzdC5wcmVyb2xsKCk7CiAgICB9KTsKCiAgICBwbGF5ZXIudmFzdC5n
ZXRDb250ZW50ID0gZnVuY3Rpb24odXJsKSB7CiAgICAgIHZhc3QuY2xpZW50LmdldCh1cmwsIGZ1
bmN0aW9uKHJlc3BvbnNlKSB7CiAgICAgICAgaWYgKHJlc3BvbnNlKSB7CiAgICAgICAgICBmb3Ig
KHZhciBhZElkeCA9IDA7IGFkSWR4IDwgcmVzcG9uc2UuYWRzLmxlbmd0aDsgYWRJZHgrKykgewog
ICAgICAgICAgICB2YXIgYWQgPSByZXNwb25zZS5hZHNbYWRJZHhdOwogICAgICAgICAgICBwbGF5
ZXIudmFzdC5jb21wYW5pb24gPSB1bmRlZmluZWQ7CiAgICAgICAgICAgIGZvciAodmFyIGNyZWFJ
ZHggPSAwOyBjcmVhSWR4IDwgYWQuY3JlYXRpdmVzLmxlbmd0aDsgY3JlYUlkeCsrKSB7CiAgICAg
ICAgICAgICAgdmFyIGNyZWF0aXZlID0gYWQuY3JlYXRpdmVzW2NyZWFJZHhdLCBmb3VuZENyZWF0
aXZlID0gZmFsc2UsIGZvdW5kQ29tcGFuaW9uID0gZmFsc2U7CiAgICAgICAgICAgICAgaWYgKGNy
ZWF0aXZlLnR5cGUgPT09ICJsaW5lYXIiICYmICFmb3VuZENyZWF0aXZlKSB7CgogICAgICAgICAg
ICAgICAgaWYgKGNyZWF0aXZlLm1lZGlhRmlsZXMubGVuZ3RoKSB7CgogICAgICAgICAgICAgICAg
ICBwbGF5ZXIudmFzdC5zb3VyY2VzID0gcGxheWVyLnZhc3QuY3JlYXRlU291cmNlT2JqZWN0cyhj
cmVhdGl2ZS5tZWRpYUZpbGVzKTsKCiAgICAgICAgICAgICAgICAgIGlmICghcGxheWVyLnZhc3Qu
c291cmNlcy5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICBwbGF5ZXIudHJpZ2dlcignYWR0
aW1lb3V0Jyk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICB9
CgogICAgICAgICAgICAgICAgICBwbGF5ZXIudmFzdFRyYWNrZXIgPSBuZXcgdmFzdC50cmFja2Vy
KGFkLCBjcmVhdGl2ZSk7CgogICAgICAgICAgICAgICAgICB2YXIgZXJyb3JPY2N1cnJlZCA9IGZh
bHNlLAogICAgICAgICAgICAgICAgICAgICAgY2FucGxheUZuID0gZnVuY3Rpb24oKSB7CiAgICAg
ICAgICAgICAgICAgICAgICAgIHRoaXMudmFzdFRyYWNrZXIubG9hZCgpOwogICAgICAgICAgICAg
ICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgIHRpbWV1cGRhdGVGbiA9IGZ1bmN0aW9u
KCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNOYU4odGhpcy52YXN0VHJhY2tlci5h
c3NldER1cmF0aW9uKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFzdFRyYWNr
ZXIuYXNzZXREdXJhdGlvbiA9IHRoaXMuZHVyYXRpb24oKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZhc3RUcmFja2VyLnNldFByb2dyZXNz
KHRoaXMuY3VycmVudFRpbWUoKSk7CiAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAg
ICAgICAgICAgICAgcGxheUZuID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgICAg
IHRoaXMudmFzdFRyYWNrZXIuc2V0UGF1c2VkKGZhbHNlKTsKICAgICAgICAgICAgICAgICAgICAg
IH0sCiAgICAgICAgICAgICAgICAgICAgICBwYXVzZUZuID0gZnVuY3Rpb24oKSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgIHRoaXMudmFzdFRyYWNrZXIuc2V0UGF1c2VkKHRydWUpOwogICAgICAg
ICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgIGVycm9yRm4gPSBmdW5jdGlv
bigpIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW5mb3JtIGFkIHNlcnZlciB3ZSBjb3Vs
ZG4ndCBwbGF5IHRoZSBtZWRpYSBmaWxlIGZvciB0aGlzIGFkCiAgICAgICAgICAgICAgICAgICAg
ICAgIHZhc3QudXRpbC50cmFjayhhZC5lcnJvclVSTFRlbXBsYXRlcywge0VSUk9SQ09ERTogNDA1
fSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yT2NjdXJyZWQgPSB0cnVlOwogICAgICAg
ICAgICAgICAgICAgICAgICBwbGF5ZXIudHJpZ2dlcignZW5kZWQnKTsKICAgICAgICAgICAgICAg
ICAgICAgIH07CgogICAgICAgICAgICAgICAgICBwbGF5ZXIub24oJ2NhbnBsYXknLCBjYW5wbGF5
Rm4pOwogICAgICAgICAgICAgICAgICBwbGF5ZXIub24oJ3RpbWV1cGRhdGUnLCB0aW1ldXBkYXRl
Rm4pOwogICAgICAgICAgICAgICAgICBwbGF5ZXIub24oJ3BsYXknLCBwbGF5Rm4pOwogICAgICAg
ICAgICAgICAgICBwbGF5ZXIub24oJ3BhdXNlJywgcGF1c2VGbik7CiAgICAgICAgICAgICAgICAg
IHBsYXllci5vbignZXJyb3InLCBlcnJvckZuKTsKCiAgICAgICAgICAgICAgICAgIHBsYXllci5v
bmUoJ2VuZGVkJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgcGxheWVyLm9mZign
Y2FucGxheScsIGNhbnBsYXlGbik7CiAgICAgICAgICAgICAgICAgICAgcGxheWVyLm9mZigndGlt
ZXVwZGF0ZScsIHRpbWV1cGRhdGVGbik7CiAgICAgICAgICAgICAgICAgICAgcGxheWVyLm9mZign
cGxheScsIHBsYXlGbik7CiAgICAgICAgICAgICAgICAgICAgcGxheWVyLm9mZigncGF1c2UnLCBw
YXVzZUZuKTsKICAgICAgICAgICAgICAgICAgICBwbGF5ZXIub2ZmKCdlcnJvcicsIGVycm9yRm4p
OwogICAgICAgICAgICAgICAgICAgIGlmICghZXJyb3JPY2N1cnJlZCkgewogICAgICAgICAgICAg
ICAgICAgICAgdGhpcy52YXN0VHJhY2tlci5jb21wbGV0ZSgpOwogICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgICBmb3VuZENyZWF0aXZl
ID0gdHJ1ZTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgfSBlbHNlIGlmIChjcmVh
dGl2ZS50eXBlID09PSAiY29tcGFuaW9uIiAmJiAhZm91bmRDb21wYW5pb24pIHsKCiAgICAgICAg
ICAgICAgICBwbGF5ZXIudmFzdC5jb21wYW5pb24gPSBjcmVhdGl2ZTsKCiAgICAgICAgICAgICAg
ICBmb3VuZENvbXBhbmlvbiA9IHRydWU7CgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgaWYgKHBsYXllci52YXN0VHJhY2tlcikgewogICAgICAgICAgICAgIHBsYXll
ci50cmlnZ2VyKCJhZHNyZWFkeSIpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgIC8vIEluZm9ybSBhZCBzZXJ2ZXIgd2UgY2FuJ3QgZmluZCBz
dWl0YWJsZSBtZWRpYSBmaWxlIGZvciB0aGlzIGFkCiAgICAgICAgICAgICAgdmFzdC51dGlsLnRy
YWNrKGFkLmVycm9yVVJMVGVtcGxhdGVzLCB7RVJST1JDT0RFOiA0MDN9KTsKICAgICAgICAgICAg
fQogICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKCFwbGF5ZXIudmFzdFRyYWNrZXIp
IHsKICAgICAgICAgIC8vIE5vIHByZS1yb2xsLCBzdGFydCB2aWRlbwogICAgICAgICAgcGxheWVy
LnRyaWdnZXIoJ2FkdGltZW91dCcpOwogICAgICAgIH0KICAgICAgfSk7ICAgICAgCiAgICB9OwoK
ICAgIHBsYXllci52YXN0LnByZXJvbGwgPSBmdW5jdGlvbigpIHsKICAgICAgcGxheWVyLmFkcy5z
dGFydExpbmVhckFkTW9kZSgpOwoKICAgICAgcGxheWVyLmF1dG9wbGF5KHRydWUpOwogICAgICAv
LyBwbGF5IHlvdXIgbGluZWFyIGFkIGNvbnRlbnQKICAgICAgdmFyIGFkU291cmNlcyA9IHBsYXll
ci52YXN0LnNvdXJjZXM7CiAgICAgIHBsYXllci5zcmMoYWRTb3VyY2VzKTsKCiAgICAgIHZhciBj
bGlja3Rocm91Z2g7CiAgICAgIGlmIChwbGF5ZXIudmFzdFRyYWNrZXIuY2xpY2tUaHJvdWdoVVJM
VGVtcGxhdGUpIHsKICAgICAgICBjbGlja3Rocm91Z2ggPSB2YXN0LnV0aWwucmVzb2x2ZVVSTFRl
bXBsYXRlcygKICAgICAgICAgIFtwbGF5ZXIudmFzdFRyYWNrZXIuY2xpY2tUaHJvdWdoVVJMVGVt
cGxhdGVdLAogICAgICAgICAgewogICAgICAgICAgICBDQUNIRUJVU1RFUjogTWF0aC5yb3VuZChN
YXRoLnJhbmRvbSgpICogMS4wZSsxMCksCiAgICAgICAgICAgIENPTlRFTlRQTEFZSEVBRDogcGxh
eWVyLnZhc3RUcmFja2VyLnByb2dyZXNzRm9ybWF0ZWQoKQogICAgICAgICAgfQogICAgICAgIClb
MF07CiAgICAgIH0KICAgICAgdmFyIGJsb2NrZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJh
Iik7CiAgICAgIGJsb2NrZXIuY2xhc3NOYW1lID0gInZhc3QtYmxvY2tlciI7CiAgICAgIGJsb2Nr
ZXIuaHJlZiA9IGNsaWNrdGhyb3VnaCB8fCAiIyI7CiAgICAgIGJsb2NrZXIudGFyZ2V0ID0gIl9i
bGFuayI7CiAgICAgIGJsb2NrZXIub25jbGljayA9IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBj
bGlja3RyYWNrZXJzID0gcGxheWVyLnZhc3RUcmFja2VyLmNsaWNrVHJhY2tpbmdVUkxUZW1wbGF0
ZTsKICAgICAgICBpZiAoY2xpY2t0cmFja2VycykgewogICAgICAgICAgcGxheWVyLnZhc3RUcmFj
a2VyLnRyYWNrVVJMcyhbY2xpY2t0cmFja2Vyc10pOwogICAgICAgIH0KICAgICAgICBwbGF5ZXIu
dHJpZ2dlcigiYWRjbGljayIpOwogICAgICB9OwogICAgICBwbGF5ZXIudmFzdC5ibG9ja2VyID0g
YmxvY2tlcjsKICAgICAgcGxheWVyLmVsKCkuaW5zZXJ0QmVmb3JlKGJsb2NrZXIsIHBsYXllci5j
b250cm9sQmFyLmVsKCkpOwoKICAgICAgdmFyIHNraXBCdXR0b24gPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJkaXYiKTsKICAgICAgc2tpcEJ1dHRvbi5jbGFzc05hbWUgPSAidmFzdC1za2lwLWJ1
dHRvbiI7CiAgICAgIGlmIChzZXR0aW5ncy5za2lwIDwgMCkgewogICAgICAgIHNraXBCdXR0b24u
c3R5bGUuZGlzcGxheSA9ICJub25lIjsKICAgICAgfQogICAgICBwbGF5ZXIudmFzdC5za2lwQnV0
dG9uID0gc2tpcEJ1dHRvbjsKICAgICAgcGxheWVyLmVsKCkuYXBwZW5kQ2hpbGQoc2tpcEJ1dHRv
bik7CgogICAgICBwbGF5ZXIub24oInRpbWV1cGRhdGUiLCBwbGF5ZXIudmFzdC50aW1ldXBkYXRl
KTsKCiAgICAgIHNraXBCdXR0b24ub25jbGljayA9IGZ1bmN0aW9uKGUpIHsKICAgICAgICBpZigo
JyAnICsgcGxheWVyLnZhc3Quc2tpcEJ1dHRvbi5jbGFzc05hbWUgKyAnICcpLmluZGV4T2YoJyBl
bmFibGVkICcpID49IDApIHsKICAgICAgICAgIHBsYXllci52YXN0LnRlYXJEb3duKCk7CiAgICAg
ICAgfQogICAgICAgIGlmKEV2ZW50LnByb3RvdHlwZS5zdG9wUHJvcGFnYXRpb24gIT09IHVuZGVm
aW5lZCkgewogICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgICB9IGVsc2Ugewog
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgfTsKCiAgICAgIHBsYXllci5v
bmUoImVuZGVkIiwgcGxheWVyLnZhc3QudGVhckRvd24pOwogICAgfTsKCiAgICBwbGF5ZXIudmFz
dC50ZWFyRG93biA9IGZ1bmN0aW9uKCkgewogICAgICBwbGF5ZXIudmFzdC5za2lwQnV0dG9uLnBh
cmVudE5vZGUucmVtb3ZlQ2hpbGQocGxheWVyLnZhc3Quc2tpcEJ1dHRvbik7CiAgICAgIHBsYXll
ci52YXN0LmJsb2NrZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChwbGF5ZXIudmFzdC5ibG9ja2Vy
KTsKICAgICAgcGxheWVyLm9mZigndGltZXVwZGF0ZScsIHBsYXllci52YXN0LnRpbWV1cGRhdGUp
OwogICAgICBwbGF5ZXIub2ZmKCdlbmRlZCcsIHBsYXllci52YXN0LnRlYXJEb3duKTsKICAgICAg
cGxheWVyLmFkcy5lbmRMaW5lYXJBZE1vZGUoKTsKICAgIH07CgogICAgcGxheWVyLnZhc3QudGlt
ZXVwZGF0ZSA9IGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyLmxvYWRpbmdTcGlubmVyLmVsKCku
c3R5bGUuZGlzcGxheSA9ICJub25lIjsKICAgICAgdmFyIHRpbWVMZWZ0ID0gTWF0aC5jZWlsKHNl
dHRpbmdzLnNraXAgLSBwbGF5ZXIuY3VycmVudFRpbWUoKSk7CiAgICAgIGlmKHRpbWVMZWZ0ID4g
MCkgewogICAgICAgIHBsYXllci52YXN0LnNraXBCdXR0b24uaW5uZXJIVE1MID0gIlNraXAgaW4g
IiArIHRpbWVMZWZ0ICsgIi4uLiI7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaWYoKCcgJyArIHBs
YXllci52YXN0LnNraXBCdXR0b24uY2xhc3NOYW1lICsgJyAnKS5pbmRleE9mKCcgZW5hYmxlZCAn
KSA9PT0gLTEpewogICAgICAgICAgcGxheWVyLnZhc3Quc2tpcEJ1dHRvbi5jbGFzc05hbWUgKz0g
IiBlbmFibGVkIjsKICAgICAgICAgIHBsYXllci52YXN0LnNraXBCdXR0b24uaW5uZXJIVE1MID0g
IlNraXAiOwogICAgICAgIH0KICAgICAgfQogICAgfTsKICAgIHBsYXllci52YXN0LmNyZWF0ZVNv
dXJjZU9iamVjdHMgPSBmdW5jdGlvbihtZWRpYV9maWxlcykgewogICAgICB2YXIgc291cmNlc0J5
Rm9ybWF0ID0ge30sIGZvcm1hdCwgaTsKICAgICAgdmFyIHZpZEZvcm1hdHMgPSBbJ3ZpZGVvL21w
NCcsICd2aWRlby93ZWJtJywgJ3ZpZGVvL29ndiddOwogICAgICAvLyBnZXQgYSBsaXN0IG9mIGZp
bGVzIHdpdGggdW5pcXVlIGZvcm1hdHMKICAgICAgZm9yIChpID0gMDsgaSA8IG1lZGlhX2ZpbGVz
Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgZm9ybWF0ID0gbWVkaWFfZmlsZXNbaV0ubWltZVR5cGU7
CgogICAgICAgIGlmICh2aWRGb3JtYXRzLmluZGV4T2YoZm9ybWF0KSA+PSAwKSB7CiAgICAgICAg
ICBpZihzb3VyY2VzQnlGb3JtYXRbZm9ybWF0XSA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAg
IHNvdXJjZXNCeUZvcm1hdFtmb3JtYXRdID0gW107CiAgICAgICAgICB9CiAgICAgICAgICBzb3Vy
Y2VzQnlGb3JtYXRbZm9ybWF0XS5wdXNoKHsKICAgICAgICAgICAgdHlwZTogZm9ybWF0LAogICAg
ICAgICAgICBzcmM6IG1lZGlhX2ZpbGVzW2ldLmZpbGVVUkwsCiAgICAgICAgICAgIHdpZHRoOiBt
ZWRpYV9maWxlc1tpXS53aWR0aCwKICAgICAgICAgICAgaGVpZ2h0OiBtZWRpYV9maWxlc1tpXS5o
ZWlnaHQKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLy8gQ3JlYXRlIHNv
dXJjZXMgaW4gcHJlZmVycmVkIGZvcm1hdCBvcmRlcgogICAgICB2YXIgc291cmNlcyA9IFtdOwog
ICAgICBmb3IgKHZhciBqPTA7IGogPCB2aWRGb3JtYXRzLmxlbmd0aDsgaisrKSB7CiAgICAgICAg
Zm9ybWF0ID0gdmlkRm9ybWF0c1tqXTsKICAgICAgICBpZiAoc291cmNlc0J5Rm9ybWF0W2Zvcm1h
dF0gIT09IHVuZGVmaW5lZCkgewogICAgICAgICAgZm9yIChpID0gMDsgaSA8IHNvdXJjZXNCeUZv
cm1hdFtmb3JtYXRdLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIHNvdXJjZXMucHVzaChzb3Vy
Y2VzQnlGb3JtYXRbZm9ybWF0XVtpXSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAg
ICAgIHJldHVybiBzb3VyY2VzOwogICAgfTsKCiAgfTsKCiAgdmpzLnBsdWdpbigndmFzdCcsIHZh
c3RQbHVnaW4pOwp9KHdpbmRvdy52aWRlb2pzLCB3aW5kb3cuRE1WQVNUKSk7Cg==
|
|
61 | /assets/js/jquery-1.11.2.js | application/javascript | jquery-1.11.2.js | 200 OK | TEXT | 277.5 KB | 02/24/79 01:50:43 |
Download
|
|
SHA256
|
dbaaa9ef303e2f0d82cfb6448faa744f05aed58449d8ed698a74ae3d00aa4569
|
Referer
|
http://cdn.bitmedianetwork.com/video/adplayer.html?timestamp=1481644853337&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t
|
Magic
|
Inconclusive. Probably text (TEXT)
|
Request
|
GET /assets/js/jquery-1.11.2.js HTTP/1.1
Accept: */*
Referer: http://cdn.bitmedianetwork.com/video/adplayer.html?timestamp=1481644853337&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: /PY/Tuim+AExyWSWiimAlQxpD5nCYhbvnK3ZQSjQiZP0aYpaLCHezZYK8bznVD7Y6YBdEwCM3Ps=
x-amz-request-id: FBD5CB7740662673
x-amz-meta-cache-control: max-age=86400
Content-Type: application/javascript
Server: AmazonS3
Age: 145983
Date: Tue, 13 Dec 2016 16:00:57 GMT
Last-Modified: Fri, 11 Nov 2016 20:42:24 GMT
Expires: Mon, 12 Dec 2016 23:27:54 GMT
Content-Length: 284183
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
/*!
* jQuery JavaScript Library v1.11.2
* http://jquery.com/
*
* Includes Sizzle.js
* http://sizzlejs.com/
*
* Copyright ...
|
LyohCiAqIGpRdWVyeSBKYXZhU2NyaXB0IExpYnJhcnkgdjEuMTEuMgogKiBodHRwOi8vanF1ZXJ5
LmNvbS8KICoKICogSW5jbHVkZXMgU2l6emxlLmpzCiAqIGh0dHA6Ly9zaXp6bGVqcy5jb20vCiAq
CiAqIENvcHlyaWdodCAyMDA1LCAyMDE0IGpRdWVyeSBGb3VuZGF0aW9uLCBJbmMuIGFuZCBvdGhl
ciBjb250cmlidXRvcnMKICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlCiAqIGh0dHA6
Ly9qcXVlcnkub3JnL2xpY2Vuc2UKICoKICogRGF0ZTogMjAxNC0xMi0xN1QxNToyN1oKICovCgoo
ZnVuY3Rpb24oIGdsb2JhbCwgZmFjdG9yeSApIHsKCglpZiAoIHR5cGVvZiBtb2R1bGUgPT09ICJv
YmplY3QiICYmIHR5cGVvZiBtb2R1bGUuZXhwb3J0cyA9PT0gIm9iamVjdCIgKSB7CgkJLy8gRm9y
IENvbW1vbkpTIGFuZCBDb21tb25KUy1saWtlIGVudmlyb25tZW50cyB3aGVyZSBhIHByb3BlciB3
aW5kb3cgaXMgcHJlc2VudCwKCQkvLyBleGVjdXRlIHRoZSBmYWN0b3J5IGFuZCBnZXQgalF1ZXJ5
CgkJLy8gRm9yIGVudmlyb25tZW50cyB0aGF0IGRvIG5vdCBpbmhlcmVudGx5IHBvc3NlcyBhIHdp
bmRvdyB3aXRoIGEgZG9jdW1lbnQKCQkvLyAoc3VjaCBhcyBOb2RlLmpzKSwgZXhwb3NlIGEgalF1
ZXJ5LW1ha2luZyBmYWN0b3J5IGFzIG1vZHVsZS5leHBvcnRzCgkJLy8gVGhpcyBhY2NlbnR1YXRl
cyB0aGUgbmVlZCBmb3IgdGhlIGNyZWF0aW9uIG9mIGEgcmVhbCB3aW5kb3cKCQkvLyBlLmcuIHZh
ciBqUXVlcnkgPSByZXF1aXJlKCJqcXVlcnkiKSh3aW5kb3cpOwoJCS8vIFNlZSB0aWNrZXQgIzE0
NTQ5IGZvciBtb3JlIGluZm8KCQltb2R1bGUuZXhwb3J0cyA9IGdsb2JhbC5kb2N1bWVudCA/CgkJ
CWZhY3RvcnkoIGdsb2JhbCwgdHJ1ZSApIDoKCQkJZnVuY3Rpb24oIHcgKSB7CgkJCQlpZiAoICF3
LmRvY3VtZW50ICkgewoJCQkJCXRocm93IG5ldyBFcnJvciggImpRdWVyeSByZXF1aXJlcyBhIHdp
bmRvdyB3aXRoIGEgZG9jdW1lbnQiICk7CgkJCQl9CgkJCQlyZXR1cm4gZmFjdG9yeSggdyApOwoJ
CQl9OwoJfSBlbHNlIHsKCQlmYWN0b3J5KCBnbG9iYWwgKTsKCX0KCi8vIFBhc3MgdGhpcyBpZiB3
aW5kb3cgaXMgbm90IGRlZmluZWQgeWV0Cn0odHlwZW9mIHdpbmRvdyAhPT0gInVuZGVmaW5lZCIg
PyB3aW5kb3cgOiB0aGlzLCBmdW5jdGlvbiggd2luZG93LCBub0dsb2JhbCApIHsKCi8vIENhbid0
IGRvIHRoaXMgYmVjYXVzZSBzZXZlcmFsIGFwcHMgaW5jbHVkaW5nIEFTUC5ORVQgdHJhY2UKLy8g
dGhlIHN0YWNrIHZpYSBhcmd1bWVudHMuY2FsbGVyLmNhbGxlZSBhbmQgRmlyZWZveCBkaWVzIGlm
Ci8vIHlvdSB0cnkgdG8gdHJhY2UgdGhyb3VnaCAidXNlIHN0cmljdCIgY2FsbCBjaGFpbnMuICgj
MTMzMzUpCi8vIFN1cHBvcnQ6IEZpcmVmb3ggMTgrCi8vCgp2YXIgZGVsZXRlZElkcyA9IFtdOwoK
dmFyIHNsaWNlID0gZGVsZXRlZElkcy5zbGljZTsKCnZhciBjb25jYXQgPSBkZWxldGVkSWRzLmNv
bmNhdDsKCnZhciBwdXNoID0gZGVsZXRlZElkcy5wdXNoOwoKdmFyIGluZGV4T2YgPSBkZWxldGVk
SWRzLmluZGV4T2Y7Cgp2YXIgY2xhc3MydHlwZSA9IHt9OwoKdmFyIHRvU3RyaW5nID0gY2xhc3My
dHlwZS50b1N0cmluZzsKCnZhciBoYXNPd24gPSBjbGFzczJ0eXBlLmhhc093blByb3BlcnR5OwoK
dmFyIHN1cHBvcnQgPSB7fTsKCgoKdmFyCgl2ZXJzaW9uID0gIjEuMTEuMiIsCgoJLy8gRGVmaW5l
IGEgbG9jYWwgY29weSBvZiBqUXVlcnkKCWpRdWVyeSA9IGZ1bmN0aW9uKCBzZWxlY3RvciwgY29u
dGV4dCApIHsKCQkvLyBUaGUgalF1ZXJ5IG9iamVjdCBpcyBhY3R1YWxseSBqdXN0IHRoZSBpbml0
IGNvbnN0cnVjdG9yICdlbmhhbmNlZCcKCQkvLyBOZWVkIGluaXQgaWYgalF1ZXJ5IGlzIGNhbGxl
ZCAoanVzdCBhbGxvdyBlcnJvciB0byBiZSB0aHJvd24gaWYgbm90IGluY2x1ZGVkKQoJCXJldHVy
biBuZXcgalF1ZXJ5LmZuLmluaXQoIHNlbGVjdG9yLCBjb250ZXh0ICk7Cgl9LAoKCS8vIFN1cHBv
cnQ6IEFuZHJvaWQ8NC4xLCBJRTw5CgkvLyBNYWtlIHN1cmUgd2UgdHJpbSBCT00gYW5kIE5CU1AK
CXJ0cmltID0gL15bXHNcdUZFRkZceEEwXSt8W1xzXHVGRUZGXHhBMF0rJC9nLAoKCS8vIE1hdGNo
ZXMgZGFzaGVkIHN0cmluZyBmb3IgY2FtZWxpemluZwoJcm1zUHJlZml4ID0gL14tbXMtLywKCXJk
YXNoQWxwaGEgPSAvLShbXGRhLXpdKS9naSwKCgkvLyBVc2VkIGJ5IGpRdWVyeS5jYW1lbENhc2Ug
YXMgY2FsbGJhY2sgdG8gcmVwbGFjZSgpCglmY2FtZWxDYXNlID0gZnVuY3Rpb24oIGFsbCwgbGV0
dGVyICkgewoJCXJldHVybiBsZXR0ZXIudG9VcHBlckNhc2UoKTsKCX07CgpqUXVlcnkuZm4gPSBq
UXVlcnkucHJvdG90eXBlID0gewoJLy8gVGhlIGN1cnJlbnQgdmVyc2lvbiBvZiBqUXVlcnkgYmVp
bmcgdXNlZAoJanF1ZXJ5OiB2ZXJzaW9uLAoKCWNvbnN0cnVjdG9yOiBqUXVlcnksCgoJLy8gU3Rh
cnQgd2l0aCBhbiBlbXB0eSBzZWxlY3RvcgoJc2VsZWN0b3I6ICIiLAoKCS8vIFRoZSBkZWZhdWx0
IGxlbmd0aCBvZiBhIGpRdWVyeSBvYmplY3QgaXMgMAoJbGVuZ3RoOiAwLAoKCXRvQXJyYXk6IGZ1
bmN0aW9uKCkgewoJCXJldHVybiBzbGljZS5jYWxsKCB0aGlzICk7Cgl9LAoKCS8vIEdldCB0aGUg
TnRoIGVsZW1lbnQgaW4gdGhlIG1hdGNoZWQgZWxlbWVudCBzZXQgT1IKCS8vIEdldCB0aGUgd2hv
bGUgbWF0Y2hlZCBlbGVtZW50IHNldCBhcyBhIGNsZWFuIGFycmF5CglnZXQ6IGZ1bmN0aW9uKCBu
dW0gKSB7CgkJcmV0dXJuIG51bSAhPSBudWxsID8KCgkJCS8vIFJldHVybiBqdXN0IHRoZSBvbmUg
ZWxlbWVudCBmcm9tIHRoZSBzZXQKCQkJKCBudW0gPCAwID8gdGhpc1sgbnVtICsgdGhpcy5sZW5n
dGggXSA6IHRoaXNbIG51bSBdICkgOgoKCQkJLy8gUmV0dXJuIGFsbCB0aGUgZWxlbWVudHMgaW4g
YSBjbGVhbiBhcnJheQoJCQlzbGljZS5jYWxsKCB0aGlzICk7Cgl9LAoKCS8vIFRha2UgYW4gYXJy
YXkgb2YgZWxlbWVudHMgYW5kIHB1c2ggaXQgb250byB0aGUgc3RhY2sKCS8vIChyZXR1cm5pbmcg
dGhlIG5ldyBtYXRjaGVkIGVsZW1lbnQgc2V0KQoJcHVzaFN0YWNrOiBmdW5jdGlvbiggZWxlbXMg
KSB7CgoJCS8vIEJ1aWxkIGEgbmV3IGpRdWVyeSBtYXRjaGVkIGVsZW1lbnQgc2V0CgkJdmFyIHJl
dCA9IGpRdWVyeS5tZXJnZSggdGhpcy5jb25zdHJ1Y3RvcigpLCBlbGVtcyApOwoKCQkvLyBBZGQg
dGhlIG9sZCBvYmplY3Qgb250byB0aGUgc3RhY2sgKGFzIGEgcmVmZXJlbmNlKQoJCXJldC5wcmV2
T2JqZWN0ID0gdGhpczsKCQlyZXQuY29udGV4dCA9IHRoaXMuY29udGV4dDsKCgkJLy8gUmV0dXJu
IHRoZSBuZXdseS1mb3JtZWQgZWxlbWVudCBzZXQKCQlyZXR1cm4gcmV0OwoJfSwKCgkvLyBFeGVj
dXRlIGEgY2FsbGJhY2sgZm9yIGV2ZXJ5IGVsZW1lbnQgaW4gdGhlIG1hdGNoZWQgc2V0LgoJLy8g
KFlvdSBjYW4gc2VlZCB0aGUgYXJndW1lbnRzIHdpdGggYW4gYXJyYXkgb2YgYXJncywgYnV0IHRo
aXMgaXMKCS8vIG9ubHkgdXNlZCBpbnRlcm5hbGx5LikKCWVhY2g6IGZ1bmN0aW9uKCBjYWxsYmFj
aywgYXJncyApIHsKCQlyZXR1cm4galF1ZXJ5LmVhY2goIHRoaXMsIGNhbGxiYWNrLCBhcmdzICk7
Cgl9LAoKCW1hcDogZnVuY3Rpb24oIGNhbGxiYWNrICkgewoJCXJldHVybiB0aGlzLnB1c2hTdGFj
ayggalF1ZXJ5Lm1hcCh0aGlzLCBmdW5jdGlvbiggZWxlbSwgaSApIHsKCQkJcmV0dXJuIGNhbGxi
YWNrLmNhbGwoIGVsZW0sIGksIGVsZW0gKTsKCQl9KSk7Cgl9LAoKCXNsaWNlOiBmdW5jdGlvbigp
IHsKCQlyZXR1cm4gdGhpcy5wdXNoU3RhY2soIHNsaWNlLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMg
KSApOwoJfSwKCglmaXJzdDogZnVuY3Rpb24oKSB7CgkJcmV0dXJuIHRoaXMuZXEoIDAgKTsKCX0s
CgoJbGFzdDogZnVuY3Rpb24oKSB7CgkJcmV0dXJuIHRoaXMuZXEoIC0xICk7Cgl9LAoKCWVxOiBm
dW5jdGlvbiggaSApIHsKCQl2YXIgbGVuID0gdGhpcy5sZW5ndGgsCgkJCWogPSAraSArICggaSA8
IDAgPyBsZW4gOiAwICk7CgkJcmV0dXJuIHRoaXMucHVzaFN0YWNrKCBqID49IDAgJiYgaiA8IGxl
biA/IFsgdGhpc1tqXSBdIDogW10gKTsKCX0sCgoJZW5kOiBmdW5jdGlvbigpIHsKCQlyZXR1cm4g
dGhpcy5wcmV2T2JqZWN0IHx8IHRoaXMuY29uc3RydWN0b3IobnVsbCk7Cgl9LAoKCS8vIEZvciBp
bnRlcm5hbCB1c2Ugb25seS4KCS8vIEJlaGF2ZXMgbGlrZSBhbiBBcnJheSdzIG1ldGhvZCwgbm90
IGxpa2UgYSBqUXVlcnkgbWV0aG9kLgoJcHVzaDogcHVzaCwKCXNvcnQ6IGRlbGV0ZWRJZHMuc29y
dCwKCXNwbGljZTogZGVsZXRlZElkcy5zcGxpY2UKfTsKCmpRdWVyeS5leHRlbmQgPSBqUXVlcnku
Zm4uZXh0ZW5kID0gZnVuY3Rpb24oKSB7Cgl2YXIgc3JjLCBjb3B5SXNBcnJheSwgY29weSwgbmFt
ZSwgb3B0aW9ucywgY2xvbmUsCgkJdGFyZ2V0ID0gYXJndW1lbnRzWzBdIHx8IHt9LAoJCWkgPSAx
LAoJCWxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGgsCgkJZGVlcCA9IGZhbHNlOwoKCS8vIEhhbmRs
ZSBhIGRlZXAgY29weSBzaXR1YXRpb24KCWlmICggdHlwZW9mIHRhcmdldCA9PT0gImJvb2xlYW4i
ICkgewoJCWRlZXAgPSB0YXJnZXQ7CgoJCS8vIHNraXAgdGhlIGJvb2xlYW4gYW5kIHRoZSB0YXJn
ZXQKCQl0YXJnZXQgPSBhcmd1bWVudHNbIGkgXSB8fCB7fTsKCQlpKys7Cgl9CgoJLy8gSGFuZGxl
IGNhc2Ugd2hlbiB0YXJnZXQgaXMgYSBzdHJpbmcgb3Igc29tZXRoaW5nIChwb3NzaWJsZSBpbiBk
ZWVwIGNvcHkpCglpZiAoIHR5cGVvZiB0YXJnZXQgIT09ICJvYmplY3QiICYmICFqUXVlcnkuaXNG
dW5jdGlvbih0YXJnZXQpICkgewoJCXRhcmdldCA9IHt9OwoJfQoKCS8vIGV4dGVuZCBqUXVlcnkg
aXRzZWxmIGlmIG9ubHkgb25lIGFyZ3VtZW50IGlzIHBhc3NlZAoJaWYgKCBpID09PSBsZW5ndGgg
KSB7CgkJdGFyZ2V0ID0gdGhpczsKCQlpLS07Cgl9CgoJZm9yICggOyBpIDwgbGVuZ3RoOyBpKysg
KSB7CgkJLy8gT25seSBkZWFsIHdpdGggbm9uLW51bGwvdW5kZWZpbmVkIHZhbHVlcwoJCWlmICgg
KG9wdGlvbnMgPSBhcmd1bWVudHNbIGkgXSkgIT0gbnVsbCApIHsKCQkJLy8gRXh0ZW5kIHRoZSBi
YXNlIG9iamVjdAoJCQlmb3IgKCBuYW1lIGluIG9wdGlvbnMgKSB7CgkJCQlzcmMgPSB0YXJnZXRb
IG5hbWUgXTsKCQkJCWNvcHkgPSBvcHRpb25zWyBuYW1lIF07CgoJCQkJLy8gUHJldmVudCBuZXZl
ci1lbmRpbmcgbG9vcAoJCQkJaWYgKCB0YXJnZXQgPT09IGNvcHkgKSB7CgkJCQkJY29udGludWU7
CgkJCQl9CgoJCQkJLy8gUmVjdXJzZSBpZiB3ZSdyZSBtZXJnaW5nIHBsYWluIG9iamVjdHMgb3Ig
YXJyYXlzCgkJCQlpZiAoIGRlZXAgJiYgY29weSAmJiAoIGpRdWVyeS5pc1BsYWluT2JqZWN0KGNv
cHkpIHx8IChjb3B5SXNBcnJheSA9IGpRdWVyeS5pc0FycmF5KGNvcHkpKSApICkgewoJCQkJCWlm
ICggY29weUlzQXJyYXkgKSB7CgkJCQkJCWNvcHlJc0FycmF5ID0gZmFsc2U7CgkJCQkJCWNsb25l
ID0gc3JjICYmIGpRdWVyeS5pc0FycmF5KHNyYykgPyBzcmMgOiBbXTsKCgkJCQkJfSBlbHNlIHsK
CQkJCQkJY2xvbmUgPSBzcmMgJiYgalF1ZXJ5LmlzUGxhaW5PYmplY3Qoc3JjKSA/IHNyYyA6IHt9
OwoJCQkJCX0KCgkJCQkJLy8gTmV2ZXIgbW92ZSBvcmlnaW5hbCBvYmplY3RzLCBjbG9uZSB0aGVt
CgkJCQkJdGFyZ2V0WyBuYW1lIF0gPSBqUXVlcnkuZXh0ZW5kKCBkZWVwLCBjbG9uZSwgY29weSAp
OwoKCQkJCS8vIERvbid0IGJyaW5nIGluIHVuZGVmaW5lZCB2YWx1ZXMKCQkJCX0gZWxzZSBpZiAo
IGNvcHkgIT09IHVuZGVmaW5lZCApIHsKCQkJCQl0YXJnZXRbIG5hbWUgXSA9IGNvcHk7CgkJCQl9
CgkJCX0KCQl9Cgl9CgoJLy8gUmV0dXJuIHRoZSBtb2RpZmllZCBvYmplY3QKCXJldHVybiB0YXJn
ZXQ7Cn07CgpqUXVlcnkuZXh0ZW5kKHsKCS8vIFVuaXF1ZSBmb3IgZWFjaCBjb3B5IG9mIGpRdWVy
eSBvbiB0aGUgcGFnZQoJZXhwYW5kbzogImpRdWVyeSIgKyAoIHZlcnNpb24gKyBNYXRoLnJhbmRv
bSgpICkucmVwbGFjZSggL1xEL2csICIiICksCgoJLy8gQXNzdW1lIGpRdWVyeSBpcyByZWFkeSB3
aXRob3V0IHRoZSByZWFkeSBtb2R1bGUKCWlzUmVhZHk6IHRydWUsCgoJZXJyb3I6IGZ1bmN0aW9u
KCBtc2cgKSB7CgkJdGhyb3cgbmV3IEVycm9yKCBtc2cgKTsKCX0sCgoJbm9vcDogZnVuY3Rpb24o
KSB7fSwKCgkvLyBTZWUgdGVzdC91bml0L2NvcmUuanMgZm9yIGRldGFpbHMgY29uY2VybmluZyBp
c0Z1bmN0aW9uLgoJLy8gU2luY2UgdmVyc2lvbiAxLjMsIERPTSBtZXRob2RzIGFuZCBmdW5jdGlv
bnMgbGlrZSBhbGVydAoJLy8gYXJlbid0IHN1cHBvcnRlZC4gVGhleSByZXR1cm4gZmFsc2Ugb24g
SUUgKCMyOTY4KS4KCWlzRnVuY3Rpb246IGZ1bmN0aW9uKCBvYmogKSB7CgkJcmV0dXJuIGpRdWVy
eS50eXBlKG9iaikgPT09ICJmdW5jdGlvbiI7Cgl9LAoKCWlzQXJyYXk6IEFycmF5LmlzQXJyYXkg
fHwgZnVuY3Rpb24oIG9iaiApIHsKCQlyZXR1cm4galF1ZXJ5LnR5cGUob2JqKSA9PT0gImFycmF5
IjsKCX0sCgoJaXNXaW5kb3c6IGZ1bmN0aW9uKCBvYmogKSB7CgkJLyoganNoaW50IGVxZXFlcTog
ZmFsc2UgKi8KCQlyZXR1cm4gb2JqICE9IG51bGwgJiYgb2JqID09IG9iai53aW5kb3c7Cgl9LAoK
CWlzTnVtZXJpYzogZnVuY3Rpb24oIG9iaiApIHsKCQkvLyBwYXJzZUZsb2F0IE5hTnMgbnVtZXJp
Yy1jYXN0IGZhbHNlIHBvc2l0aXZlcyAobnVsbHx0cnVlfGZhbHNlfCIiKQoJCS8vIC4uLmJ1dCBt
aXNpbnRlcnByZXRzIGxlYWRpbmctbnVtYmVyIHN0cmluZ3MsIHBhcnRpY3VsYXJseSBoZXggbGl0
ZXJhbHMgKCIweC4uLiIpCgkJLy8gc3VidHJhY3Rpb24gZm9yY2VzIGluZmluaXRpZXMgdG8gTmFO
CgkJLy8gYWRkaW5nIDEgY29ycmVjdHMgbG9zcyBvZiBwcmVjaXNpb24gZnJvbSBwYXJzZUZsb2F0
ICgjMTUxMDApCgkJcmV0dXJuICFqUXVlcnkuaXNBcnJheSggb2JqICkgJiYgKG9iaiAtIHBhcnNl
RmxvYXQoIG9iaiApICsgMSkgPj0gMDsKCX0sCgoJaXNFbXB0eU9iamVjdDogZnVuY3Rpb24oIG9i
aiApIHsKCQl2YXIgbmFtZTsKCQlmb3IgKCBuYW1lIGluIG9iaiApIHsKCQkJcmV0dXJuIGZhbHNl
OwoJCX0KCQlyZXR1cm4gdHJ1ZTsKCX0sCgoJaXNQbGFpbk9iamVjdDogZnVuY3Rpb24oIG9iaiAp
IHsKCQl2YXIga2V5OwoKCQkvLyBNdXN0IGJlIGFuIE9iamVjdC4KCQkvLyBCZWNhdXNlIG9mIElF
LCB3ZSBhbHNvIGhhdmUgdG8gY2hlY2sgdGhlIHByZXNlbmNlIG9mIHRoZSBjb25zdHJ1Y3RvciBw
cm9wZXJ0eS4KCQkvLyBNYWtlIHN1cmUgdGhhdCBET00gbm9kZXMgYW5kIHdpbmRvdyBvYmplY3Rz
IGRvbid0IHBhc3MgdGhyb3VnaCwgYXMgd2VsbAoJCWlmICggIW9iaiB8fCBqUXVlcnkudHlwZShv
YmopICE9PSAib2JqZWN0IiB8fCBvYmoubm9kZVR5cGUgfHwgalF1ZXJ5LmlzV2luZG93KCBvYmog
KSApIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCgkJdHJ5IHsKCQkJLy8gTm90IG93biBjb25zdHJ1
Y3RvciBwcm9wZXJ0eSBtdXN0IGJlIE9iamVjdAoJCQlpZiAoIG9iai5jb25zdHJ1Y3RvciAmJgoJ
CQkJIWhhc093bi5jYWxsKG9iaiwgImNvbnN0cnVjdG9yIikgJiYKCQkJCSFoYXNPd24uY2FsbChv
YmouY29uc3RydWN0b3IucHJvdG90eXBlLCAiaXNQcm90b3R5cGVPZiIpICkgewoJCQkJcmV0dXJu
IGZhbHNlOwoJCQl9CgkJfSBjYXRjaCAoIGUgKSB7CgkJCS8vIElFOCw5IFdpbGwgdGhyb3cgZXhj
ZXB0aW9ucyBvbiBjZXJ0YWluIGhvc3Qgb2JqZWN0cyAjOTg5NwoJCQlyZXR1cm4gZmFsc2U7CgkJ
fQoKCQkvLyBTdXBwb3J0OiBJRTw5CgkJLy8gSGFuZGxlIGl0ZXJhdGlvbiBvdmVyIGluaGVyaXRl
ZCBwcm9wZXJ0aWVzIGJlZm9yZSBvd24gcHJvcGVydGllcy4KCQlpZiAoIHN1cHBvcnQub3duTGFz
dCApIHsKCQkJZm9yICgga2V5IGluIG9iaiApIHsKCQkJCXJldHVybiBoYXNPd24uY2FsbCggb2Jq
LCBrZXkgKTsKCQkJfQoJCX0KCgkJLy8gT3duIHByb3BlcnRpZXMgYXJlIGVudW1lcmF0ZWQgZmly
c3RseSwgc28gdG8gc3BlZWQgdXAsCgkJLy8gaWYgbGFzdCBvbmUgaXMgb3duLCB0aGVuIGFsbCBw
cm9wZXJ0aWVzIGFyZSBvd24uCgkJZm9yICgga2V5IGluIG9iaiApIHt9CgoJCXJldHVybiBrZXkg
PT09IHVuZGVmaW5lZCB8fCBoYXNPd24uY2FsbCggb2JqLCBrZXkgKTsKCX0sCgoJdHlwZTogZnVu
Y3Rpb24oIG9iaiApIHsKCQlpZiAoIG9iaiA9PSBudWxsICkgewoJCQlyZXR1cm4gb2JqICsgIiI7
CgkJfQoJCXJldHVybiB0eXBlb2Ygb2JqID09PSAib2JqZWN0IiB8fCB0eXBlb2Ygb2JqID09PSAi
ZnVuY3Rpb24iID8KCQkJY2xhc3MydHlwZVsgdG9TdHJpbmcuY2FsbChvYmopIF0gfHwgIm9iamVj
dCIgOgoJCQl0eXBlb2Ygb2JqOwoJfSwKCgkvLyBFdmFsdWF0ZXMgYSBzY3JpcHQgaW4gYSBnbG9i
YWwgY29udGV4dAoJLy8gV29ya2Fyb3VuZHMgYmFzZWQgb24gZmluZGluZ3MgYnkgSmltIERyaXNj
b2xsCgkvLyBodHRwOi8vd2VibG9ncy5qYXZhLm5ldC9ibG9nL2RyaXNjb2xsL2FyY2hpdmUvMjAw
OS8wOS8wOC9ldmFsLWphdmFzY3JpcHQtZ2xvYmFsLWNvbnRleHQKCWdsb2JhbEV2YWw6IGZ1bmN0
aW9uKCBkYXRhICkgewoJCWlmICggZGF0YSAmJiBqUXVlcnkudHJpbSggZGF0YSApICkgewoJCQkv
LyBXZSB1c2UgZXhlY1NjcmlwdCBvbiBJbnRlcm5ldCBFeHBsb3JlcgoJCQkvLyBXZSB1c2UgYW4g
YW5vbnltb3VzIGZ1bmN0aW9uIHNvIHRoYXQgY29udGV4dCBpcyB3aW5kb3cKCQkJLy8gcmF0aGVy
IHRoYW4galF1ZXJ5IGluIEZpcmVmb3gKCQkJKCB3aW5kb3cuZXhlY1NjcmlwdCB8fCBmdW5jdGlv
biggZGF0YSApIHsKCQkJCXdpbmRvd1sgImV2YWwiIF0uY2FsbCggd2luZG93LCBkYXRhICk7CgkJ
CX0gKSggZGF0YSApOwoJCX0KCX0sCgoJLy8gQ29udmVydCBkYXNoZWQgdG8gY2FtZWxDYXNlOyB1
c2VkIGJ5IHRoZSBjc3MgYW5kIGRhdGEgbW9kdWxlcwoJLy8gTWljcm9zb2Z0IGZvcmdvdCB0byBo
dW1wIHRoZWlyIHZlbmRvciBwcmVmaXggKCM5NTcyKQoJY2FtZWxDYXNlOiBmdW5jdGlvbiggc3Ry
aW5nICkgewoJCXJldHVybiBzdHJpbmcucmVwbGFjZSggcm1zUHJlZml4LCAibXMtIiApLnJlcGxh
Y2UoIHJkYXNoQWxwaGEsIGZjYW1lbENhc2UgKTsKCX0sCgoJbm9kZU5hbWU6IGZ1bmN0aW9uKCBl
bGVtLCBuYW1lICkgewoJCXJldHVybiBlbGVtLm5vZGVOYW1lICYmIGVsZW0ubm9kZU5hbWUudG9M
b3dlckNhc2UoKSA9PT0gbmFtZS50b0xvd2VyQ2FzZSgpOwoJfSwKCgkvLyBhcmdzIGlzIGZvciBp
bnRlcm5hbCB1c2FnZSBvbmx5CgllYWNoOiBmdW5jdGlvbiggb2JqLCBjYWxsYmFjaywgYXJncyAp
IHsKCQl2YXIgdmFsdWUsCgkJCWkgPSAwLAoJCQlsZW5ndGggPSBvYmoubGVuZ3RoLAoJCQlpc0Fy
cmF5ID0gaXNBcnJheWxpa2UoIG9iaiApOwoKCQlpZiAoIGFyZ3MgKSB7CgkJCWlmICggaXNBcnJh
eSApIHsKCQkJCWZvciAoIDsgaSA8IGxlbmd0aDsgaSsrICkgewoJCQkJCXZhbHVlID0gY2FsbGJh
Y2suYXBwbHkoIG9ialsgaSBdLCBhcmdzICk7CgoJCQkJCWlmICggdmFsdWUgPT09IGZhbHNlICkg
ewoJCQkJCQlicmVhazsKCQkJCQl9CgkJCQl9CgkJCX0gZWxzZSB7CgkJCQlmb3IgKCBpIGluIG9i
aiApIHsKCQkJCQl2YWx1ZSA9IGNhbGxiYWNrLmFwcGx5KCBvYmpbIGkgXSwgYXJncyApOwoKCQkJ
CQlpZiAoIHZhbHVlID09PSBmYWxzZSApIHsKCQkJCQkJYnJlYWs7CgkJCQkJfQoJCQkJfQoJCQl9
CgoJCS8vIEEgc3BlY2lhbCwgZmFzdCwgY2FzZSBmb3IgdGhlIG1vc3QgY29tbW9uIHVzZSBvZiBl
YWNoCgkJfSBlbHNlIHsKCQkJaWYgKCBpc0FycmF5ICkgewoJCQkJZm9yICggOyBpIDwgbGVuZ3Ro
OyBpKysgKSB7CgkJCQkJdmFsdWUgPSBjYWxsYmFjay5jYWxsKCBvYmpbIGkgXSwgaSwgb2JqWyBp
IF0gKTsKCgkJCQkJaWYgKCB2YWx1ZSA9PT0gZmFsc2UgKSB7CgkJCQkJCWJyZWFrOwoJCQkJCX0K
CQkJCX0KCQkJfSBlbHNlIHsKCQkJCWZvciAoIGkgaW4gb2JqICkgewoJCQkJCXZhbHVlID0gY2Fs
bGJhY2suY2FsbCggb2JqWyBpIF0sIGksIG9ialsgaSBdICk7CgoJCQkJCWlmICggdmFsdWUgPT09
IGZhbHNlICkgewoJCQkJCQlicmVhazsKCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgoJCXJldHVybiBv
Ymo7Cgl9LAoKCS8vIFN1cHBvcnQ6IEFuZHJvaWQ8NC4xLCBJRTw5Cgl0cmltOiBmdW5jdGlvbigg
dGV4dCApIHsKCQlyZXR1cm4gdGV4dCA9PSBudWxsID8KCQkJIiIgOgoJCQkoIHRleHQgKyAiIiAp
LnJlcGxhY2UoIHJ0cmltLCAiIiApOwoJfSwKCgkvLyByZXN1bHRzIGlzIGZvciBpbnRlcm5hbCB1
c2FnZSBvbmx5CgltYWtlQXJyYXk6IGZ1bmN0aW9uKCBhcnIsIHJlc3VsdHMgKSB7CgkJdmFyIHJl
dCA9IHJlc3VsdHMgfHwgW107CgoJCWlmICggYXJyICE9IG51bGwgKSB7CgkJCWlmICggaXNBcnJh
eWxpa2UoIE9iamVjdChhcnIpICkgKSB7CgkJCQlqUXVlcnkubWVyZ2UoIHJldCwKCQkJCQl0eXBl
b2YgYXJyID09PSAic3RyaW5nIiA/CgkJCQkJWyBhcnIgXSA6IGFycgoJCQkJKTsKCQkJfSBlbHNl
IHsKCQkJCXB1c2guY2FsbCggcmV0LCBhcnIgKTsKCQkJfQoJCX0KCgkJcmV0dXJuIHJldDsKCX0s
CgoJaW5BcnJheTogZnVuY3Rpb24oIGVsZW0sIGFyciwgaSApIHsKCQl2YXIgbGVuOwoKCQlpZiAo
IGFyciApIHsKCQkJaWYgKCBpbmRleE9mICkgewoJCQkJcmV0dXJuIGluZGV4T2YuY2FsbCggYXJy
LCBlbGVtLCBpICk7CgkJCX0KCgkJCWxlbiA9IGFyci5sZW5ndGg7CgkJCWkgPSBpID8gaSA8IDAg
PyBNYXRoLm1heCggMCwgbGVuICsgaSApIDogaSA6IDA7CgoJCQlmb3IgKCA7IGkgPCBsZW47IGkr
KyApIHsKCQkJCS8vIFNraXAgYWNjZXNzaW5nIGluIHNwYXJzZSBhcnJheXMKCQkJCWlmICggaSBp
biBhcnIgJiYgYXJyWyBpIF0gPT09IGVsZW0gKSB7CgkJCQkJcmV0dXJuIGk7CgkJCQl9CgkJCX0K
CQl9CgoJCXJldHVybiAtMTsKCX0sCgoJbWVyZ2U6IGZ1bmN0aW9uKCBmaXJzdCwgc2Vjb25kICkg
ewoJCXZhciBsZW4gPSArc2Vjb25kLmxlbmd0aCwKCQkJaiA9IDAsCgkJCWkgPSBmaXJzdC5sZW5n
dGg7CgoJCXdoaWxlICggaiA8IGxlbiApIHsKCQkJZmlyc3RbIGkrKyBdID0gc2Vjb25kWyBqKysg
XTsKCQl9CgoJCS8vIFN1cHBvcnQ6IElFPDkKCQkvLyBXb3JrYXJvdW5kIGNhc3Rpbmcgb2YgLmxl
bmd0aCB0byBOYU4gb24gb3RoZXJ3aXNlIGFycmF5bGlrZSBvYmplY3RzIChlLmcuLCBOb2RlTGlz
dHMpCgkJaWYgKCBsZW4gIT09IGxlbiApIHsKCQkJd2hpbGUgKCBzZWNvbmRbal0gIT09IHVuZGVm
aW5lZCApIHsKCQkJCWZpcnN0WyBpKysgXSA9IHNlY29uZFsgaisrIF07CgkJCX0KCQl9CgoJCWZp
cnN0Lmxlbmd0aCA9IGk7CgoJCXJldHVybiBmaXJzdDsKCX0sCgoJZ3JlcDogZnVuY3Rpb24oIGVs
ZW1zLCBjYWxsYmFjaywgaW52ZXJ0ICkgewoJCXZhciBjYWxsYmFja0ludmVyc2UsCgkJCW1hdGNo
ZXMgPSBbXSwKCQkJaSA9IDAsCgkJCWxlbmd0aCA9IGVsZW1zLmxlbmd0aCwKCQkJY2FsbGJhY2tF
eHBlY3QgPSAhaW52ZXJ0OwoKCQkvLyBHbyB0aHJvdWdoIHRoZSBhcnJheSwgb25seSBzYXZpbmcg
dGhlIGl0ZW1zCgkJLy8gdGhhdCBwYXNzIHRoZSB2YWxpZGF0b3IgZnVuY3Rpb24KCQlmb3IgKCA7
IGkgPCBsZW5ndGg7IGkrKyApIHsKCQkJY2FsbGJhY2tJbnZlcnNlID0gIWNhbGxiYWNrKCBlbGVt
c1sgaSBdLCBpICk7CgkJCWlmICggY2FsbGJhY2tJbnZlcnNlICE9PSBjYWxsYmFja0V4cGVjdCAp
IHsKCQkJCW1hdGNoZXMucHVzaCggZWxlbXNbIGkgXSApOwoJCQl9CgkJfQoKCQlyZXR1cm4gbWF0
Y2hlczsKCX0sCgoJLy8gYXJnIGlzIGZvciBpbnRlcm5hbCB1c2FnZSBvbmx5CgltYXA6IGZ1bmN0
aW9uKCBlbGVtcywgY2FsbGJhY2ssIGFyZyApIHsKCQl2YXIgdmFsdWUsCgkJCWkgPSAwLAoJCQls
ZW5ndGggPSBlbGVtcy5sZW5ndGgsCgkJCWlzQXJyYXkgPSBpc0FycmF5bGlrZSggZWxlbXMgKSwK
CQkJcmV0ID0gW107CgoJCS8vIEdvIHRocm91Z2ggdGhlIGFycmF5LCB0cmFuc2xhdGluZyBlYWNo
IG9mIHRoZSBpdGVtcyB0byB0aGVpciBuZXcgdmFsdWVzCgkJaWYgKCBpc0FycmF5ICkgewoJCQlm
b3IgKCA7IGkgPCBsZW5ndGg7IGkrKyApIHsKCQkJCXZhbHVlID0gY2FsbGJhY2soIGVsZW1zWyBp
IF0sIGksIGFyZyApOwoKCQkJCWlmICggdmFsdWUgIT0gbnVsbCApIHsKCQkJCQlyZXQucHVzaCgg
dmFsdWUgKTsKCQkJCX0KCQkJfQoKCQkvLyBHbyB0aHJvdWdoIGV2ZXJ5IGtleSBvbiB0aGUgb2Jq
ZWN0LAoJCX0gZWxzZSB7CgkJCWZvciAoIGkgaW4gZWxlbXMgKSB7CgkJCQl2YWx1ZSA9IGNhbGxi
YWNrKCBlbGVtc1sgaSBdLCBpLCBhcmcgKTsKCgkJCQlpZiAoIHZhbHVlICE9IG51bGwgKSB7CgkJ
CQkJcmV0LnB1c2goIHZhbHVlICk7CgkJCQl9CgkJCX0KCQl9CgoJCS8vIEZsYXR0ZW4gYW55IG5l
c3RlZCBhcnJheXMKCQlyZXR1cm4gY29uY2F0LmFwcGx5KCBbXSwgcmV0ICk7Cgl9LAoKCS8vIEEg
Z2xvYmFsIEdVSUQgY291bnRlciBmb3Igb2JqZWN0cwoJZ3VpZDogMSwKCgkvLyBCaW5kIGEgZnVu
Y3Rpb24gdG8gYSBjb250ZXh0LCBvcHRpb25hbGx5IHBhcnRpYWxseSBhcHBseWluZyBhbnkKCS8v
IGFyZ3VtZW50cy4KCXByb3h5OiBmdW5jdGlvbiggZm4sIGNvbnRleHQgKSB7CgkJdmFyIGFyZ3Ms
IHByb3h5LCB0bXA7CgoJCWlmICggdHlwZW9mIGNvbnRleHQgPT09ICJzdHJpbmciICkgewoJCQl0
bXAgPSBmblsgY29udGV4dCBdOwoJCQljb250ZXh0ID0gZm47CgkJCWZuID0gdG1wOwoJCX0KCgkJ
Ly8gUXVpY2sgY2hlY2sgdG8gZGV0ZXJtaW5lIGlmIHRhcmdldCBpcyBjYWxsYWJsZSwgaW4gdGhl
IHNwZWMKCQkvLyB0aGlzIHRocm93cyBhIFR5cGVFcnJvciwgYnV0IHdlIHdpbGwganVzdCByZXR1
cm4gdW5kZWZpbmVkLgoJCWlmICggIWpRdWVyeS5pc0Z1bmN0aW9uKCBmbiApICkgewoJCQlyZXR1
cm4gdW5kZWZpbmVkOwoJCX0KCgkJLy8gU2ltdWxhdGVkIGJpbmQKCQlhcmdzID0gc2xpY2UuY2Fs
bCggYXJndW1lbnRzLCAyICk7CgkJcHJveHkgPSBmdW5jdGlvbigpIHsKCQkJcmV0dXJuIGZuLmFw
cGx5KCBjb250ZXh0IHx8IHRoaXMsIGFyZ3MuY29uY2F0KCBzbGljZS5jYWxsKCBhcmd1bWVudHMg
KSApICk7CgkJfTsKCgkJLy8gU2V0IHRoZSBndWlkIG9mIHVuaXF1ZSBoYW5kbGVyIHRvIHRoZSBz
YW1lIG9mIG9yaWdpbmFsIGhhbmRsZXIsIHNvIGl0IGNhbiBiZSByZW1vdmVkCgkJcHJveHkuZ3Vp
ZCA9IGZuLmd1aWQgPSBmbi5ndWlkIHx8IGpRdWVyeS5ndWlkKys7CgoJCXJldHVybiBwcm94eTsK
CX0sCgoJbm93OiBmdW5jdGlvbigpIHsKCQlyZXR1cm4gKyggbmV3IERhdGUoKSApOwoJfSwKCgkv
LyBqUXVlcnkuc3VwcG9ydCBpcyBub3QgdXNlZCBpbiBDb3JlIGJ1dCBvdGhlciBwcm9qZWN0cyBh
dHRhY2ggdGhlaXIKCS8vIHByb3BlcnRpZXMgdG8gaXQgc28gaXQgbmVlZHMgdG8gZXhpc3QuCglz
dXBwb3J0OiBzdXBwb3J0Cn0pOwoKLy8gUG9wdWxhdGUgdGhlIGNsYXNzMnR5cGUgbWFwCmpRdWVy
eS5lYWNoKCJCb29sZWFuIE51bWJlciBTdHJpbmcgRnVuY3Rpb24gQXJyYXkgRGF0ZSBSZWdFeHAg
T2JqZWN0IEVycm9yIi5zcGxpdCgiICIpLCBmdW5jdGlvbihpLCBuYW1lKSB7CgljbGFzczJ0eXBl
WyAiW29iamVjdCAiICsgbmFtZSArICJdIiBdID0gbmFtZS50b0xvd2VyQ2FzZSgpOwp9KTsKCmZ1
bmN0aW9uIGlzQXJyYXlsaWtlKCBvYmogKSB7Cgl2YXIgbGVuZ3RoID0gb2JqLmxlbmd0aCwKCQl0
eXBlID0galF1ZXJ5LnR5cGUoIG9iaiApOwoKCWlmICggdHlwZSA9PT0gImZ1bmN0aW9uIiB8fCBq
UXVlcnkuaXNXaW5kb3coIG9iaiApICkgewoJCXJldHVybiBmYWxzZTsKCX0KCglpZiAoIG9iai5u
b2RlVHlwZSA9PT0gMSAmJiBsZW5ndGggKSB7CgkJcmV0dXJuIHRydWU7Cgl9CgoJcmV0dXJuIHR5
cGUgPT09ICJhcnJheSIgfHwgbGVuZ3RoID09PSAwIHx8CgkJdHlwZW9mIGxlbmd0aCA9PT0gIm51
bWJlciIgJiYgbGVuZ3RoID4gMCAmJiAoIGxlbmd0aCAtIDEgKSBpbiBvYmo7Cn0KdmFyIFNpenps
ZSA9Ci8qIQogKiBTaXp6bGUgQ1NTIFNlbGVjdG9yIEVuZ2luZSB2Mi4yLjAtcHJlCiAqIGh0dHA6
Ly9zaXp6bGVqcy5jb20vCiAqCiAqIENvcHlyaWdodCAyMDA4LCAyMDE0IGpRdWVyeSBGb3VuZGF0
aW9uLCBJbmMuIGFuZCBvdGhlciBjb250cmlidXRvcnMKICogUmVsZWFzZWQgdW5kZXIgdGhlIE1J
VCBsaWNlbnNlCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKICoKICogRGF0ZTogMjAxNC0x
Mi0xNgogKi8KKGZ1bmN0aW9uKCB3aW5kb3cgKSB7Cgp2YXIgaSwKCXN1cHBvcnQsCglFeHByLAoJ
Z2V0VGV4dCwKCWlzWE1MLAoJdG9rZW5pemUsCgljb21waWxlLAoJc2VsZWN0LAoJb3V0ZXJtb3N0
Q29udGV4dCwKCXNvcnRJbnB1dCwKCWhhc0R1cGxpY2F0ZSwKCgkvLyBMb2NhbCBkb2N1bWVudCB2
YXJzCglzZXREb2N1bWVudCwKCWRvY3VtZW50LAoJZG9jRWxlbSwKCWRvY3VtZW50SXNIVE1MLAoJ
cmJ1Z2d5UVNBLAoJcmJ1Z2d5TWF0Y2hlcywKCW1hdGNoZXMsCgljb250YWlucywKCgkvLyBJbnN0
YW5jZS1zcGVjaWZpYyBkYXRhCglleHBhbmRvID0gInNpenpsZSIgKyAxICogbmV3IERhdGUoKSwK
CXByZWZlcnJlZERvYyA9IHdpbmRvdy5kb2N1bWVudCwKCWRpcnJ1bnMgPSAwLAoJZG9uZSA9IDAs
CgljbGFzc0NhY2hlID0gY3JlYXRlQ2FjaGUoKSwKCXRva2VuQ2FjaGUgPSBjcmVhdGVDYWNoZSgp
LAoJY29tcGlsZXJDYWNoZSA9IGNyZWF0ZUNhY2hlKCksCglzb3J0T3JkZXIgPSBmdW5jdGlvbigg
YSwgYiApIHsKCQlpZiAoIGEgPT09IGIgKSB7CgkJCWhhc0R1cGxpY2F0ZSA9IHRydWU7CgkJfQoJ
CXJldHVybiAwOwoJfSwKCgkvLyBHZW5lcmFsLXB1cnBvc2UgY29uc3RhbnRzCglNQVhfTkVHQVRJ
VkUgPSAxIDw8IDMxLAoKCS8vIEluc3RhbmNlIG1ldGhvZHMKCWhhc093biA9ICh7fSkuaGFzT3du
UHJvcGVydHksCglhcnIgPSBbXSwKCXBvcCA9IGFyci5wb3AsCglwdXNoX25hdGl2ZSA9IGFyci5w
dXNoLAoJcHVzaCA9IGFyci5wdXNoLAoJc2xpY2UgPSBhcnIuc2xpY2UsCgkvLyBVc2UgYSBzdHJp
cHBlZC1kb3duIGluZGV4T2YgYXMgaXQncyBmYXN0ZXIgdGhhbiBuYXRpdmUKCS8vIGh0dHA6Ly9q
c3BlcmYuY29tL3Rob3ItaW5kZXhvZi12cy1mb3IvNQoJaW5kZXhPZiA9IGZ1bmN0aW9uKCBsaXN0
LCBlbGVtICkgewoJCXZhciBpID0gMCwKCQkJbGVuID0gbGlzdC5sZW5ndGg7CgkJZm9yICggOyBp
IDwgbGVuOyBpKysgKSB7CgkJCWlmICggbGlzdFtpXSA9PT0gZWxlbSApIHsKCQkJCXJldHVybiBp
OwoJCQl9CgkJfQoJCXJldHVybiAtMTsKCX0sCgoJYm9vbGVhbnMgPSAiY2hlY2tlZHxzZWxlY3Rl
ZHxhc3luY3xhdXRvZm9jdXN8YXV0b3BsYXl8Y29udHJvbHN8ZGVmZXJ8ZGlzYWJsZWR8aGlkZGVu
fGlzbWFwfGxvb3B8bXVsdGlwbGV8b3BlbnxyZWFkb25seXxyZXF1aXJlZHxzY29wZWQiLAoKCS8v
IFJlZ3VsYXIgZXhwcmVzc2lvbnMKCgkvLyBXaGl0ZXNwYWNlIGNoYXJhY3RlcnMgaHR0cDovL3d3
dy53My5vcmcvVFIvY3NzMy1zZWxlY3RvcnMvI3doaXRlc3BhY2UKCXdoaXRlc3BhY2UgPSAiW1xc
eDIwXFx0XFxyXFxuXFxmXSIsCgkvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLXN5bnRheC8j
Y2hhcmFjdGVycwoJY2hhcmFjdGVyRW5jb2RpbmcgPSAiKD86XFxcXC58W1xcdy1dfFteXFx4MDAt
XFx4YTBdKSsiLAoKCS8vIExvb3NlbHkgbW9kZWxlZCBvbiBDU1MgaWRlbnRpZmllciBjaGFyYWN0
ZXJzCgkvLyBBbiB1bnF1b3RlZCB2YWx1ZSBzaG91bGQgYmUgYSBDU1MgaWRlbnRpZmllciBodHRw
Oi8vd3d3LnczLm9yZy9UUi9jc3MzLXNlbGVjdG9ycy8jYXR0cmlidXRlLXNlbGVjdG9ycwoJLy8g
UHJvcGVyIHN5bnRheDogaHR0cDovL3d3dy53My5vcmcvVFIvQ1NTMjEvc3luZGF0YS5odG1sI3Zh
bHVlLWRlZi1pZGVudGlmaWVyCglpZGVudGlmaWVyID0gY2hhcmFjdGVyRW5jb2RpbmcucmVwbGFj
ZSggInciLCAidyMiICksCgoJLy8gQXR0cmlidXRlIHNlbGVjdG9yczogaHR0cDovL3d3dy53My5v
cmcvVFIvc2VsZWN0b3JzLyNhdHRyaWJ1dGUtc2VsZWN0b3JzCglhdHRyaWJ1dGVzID0gIlxcWyIg
KyB3aGl0ZXNwYWNlICsgIiooIiArIGNoYXJhY3RlckVuY29kaW5nICsgIikoPzoiICsgd2hpdGVz
cGFjZSArCgkJLy8gT3BlcmF0b3IgKGNhcHR1cmUgMikKCQkiKihbKl4kfCF+XT89KSIgKyB3aGl0
ZXNwYWNlICsKCQkvLyAiQXR0cmlidXRlIHZhbHVlcyBtdXN0IGJlIENTUyBpZGVudGlmaWVycyBb
Y2FwdHVyZSA1XSBvciBzdHJpbmdzIFtjYXB0dXJlIDMgb3IgY2FwdHVyZSA0XSIKCQkiKig/Oico
KD86XFxcXC58W15cXFxcJ10pKiknfFwiKCg/OlxcXFwufFteXFxcXFwiXSkqKVwifCgiICsgaWRl
bnRpZmllciArICIpKXwpIiArIHdoaXRlc3BhY2UgKwoJCSIqXFxdIiwKCglwc2V1ZG9zID0gIjoo
IiArIGNoYXJhY3RlckVuY29kaW5nICsgIikoPzpcXCgoIiArCgkJLy8gVG8gcmVkdWNlIHRoZSBu
dW1iZXIgb2Ygc2VsZWN0b3JzIG5lZWRpbmcgdG9rZW5pemUgaW4gdGhlIHByZUZpbHRlciwgcHJl
ZmVyIGFyZ3VtZW50czoKCQkvLyAxLiBxdW90ZWQgKGNhcHR1cmUgMzsgY2FwdHVyZSA0IG9yIGNh
cHR1cmUgNSkKCQkiKCcoKD86XFxcXC58W15cXFxcJ10pKiknfFwiKCg/OlxcXFwufFteXFxcXFwi
XSkqKVwiKXwiICsKCQkvLyAyLiBzaW1wbGUgKGNhcHR1cmUgNikKCQkiKCg/OlxcXFwufFteXFxc
XCgpW1xcXV18IiArIGF0dHJpYnV0ZXMgKyAiKSopfCIgKwoJCS8vIDMuIGFueXRoaW5nIGVsc2Ug
KGNhcHR1cmUgMikKCQkiLioiICsKCQkiKVxcKXwpIiwKCgkvLyBMZWFkaW5nIGFuZCBub24tZXNj
YXBlZCB0cmFpbGluZyB3aGl0ZXNwYWNlLCBjYXB0dXJpbmcgc29tZSBub24td2hpdGVzcGFjZSBj
aGFyYWN0ZXJzIHByZWNlZGluZyB0aGUgbGF0dGVyCglyd2hpdGVzcGFjZSA9IG5ldyBSZWdFeHAo
IHdoaXRlc3BhY2UgKyAiKyIsICJnIiApLAoJcnRyaW0gPSBuZXcgUmVnRXhwKCAiXiIgKyB3aGl0
ZXNwYWNlICsgIit8KCg/Ol58W15cXFxcXSkoPzpcXFxcLikqKSIgKyB3aGl0ZXNwYWNlICsgIisk
IiwgImciICksCgoJcmNvbW1hID0gbmV3IFJlZ0V4cCggIl4iICsgd2hpdGVzcGFjZSArICIqLCIg
KyB3aGl0ZXNwYWNlICsgIioiICksCglyY29tYmluYXRvcnMgPSBuZXcgUmVnRXhwKCAiXiIgKyB3
aGl0ZXNwYWNlICsgIiooWz4rfl18IiArIHdoaXRlc3BhY2UgKyAiKSIgKyB3aGl0ZXNwYWNlICsg
IioiICksCgoJcmF0dHJpYnV0ZVF1b3RlcyA9IG5ldyBSZWdFeHAoICI9IiArIHdoaXRlc3BhY2Ug
KyAiKihbXlxcXSdcIl0qPykiICsgd2hpdGVzcGFjZSArICIqXFxdIiwgImciICksCgoJcnBzZXVk
byA9IG5ldyBSZWdFeHAoIHBzZXVkb3MgKSwKCXJpZGVudGlmaWVyID0gbmV3IFJlZ0V4cCggIl4i
ICsgaWRlbnRpZmllciArICIkIiApLAoKCW1hdGNoRXhwciA9IHsKCQkiSUQiOiBuZXcgUmVnRXhw
KCAiXiMoIiArIGNoYXJhY3RlckVuY29kaW5nICsgIikiICksCgkJIkNMQVNTIjogbmV3IFJlZ0V4
cCggIl5cXC4oIiArIGNoYXJhY3RlckVuY29kaW5nICsgIikiICksCgkJIlRBRyI6IG5ldyBSZWdF
eHAoICJeKCIgKyBjaGFyYWN0ZXJFbmNvZGluZy5yZXBsYWNlKCAidyIsICJ3KiIgKSArICIpIiAp
LAoJCSJBVFRSIjogbmV3IFJlZ0V4cCggIl4iICsgYXR0cmlidXRlcyApLAoJCSJQU0VVRE8iOiBu
ZXcgUmVnRXhwKCAiXiIgKyBwc2V1ZG9zICksCgkJIkNISUxEIjogbmV3IFJlZ0V4cCggIl46KG9u
bHl8Zmlyc3R8bGFzdHxudGh8bnRoLWxhc3QpLShjaGlsZHxvZi10eXBlKSg/OlxcKCIgKyB3aGl0
ZXNwYWNlICsKCQkJIiooZXZlbnxvZGR8KChbKy1dfCkoXFxkKilufCkiICsgd2hpdGVzcGFjZSAr
ICIqKD86KFsrLV18KSIgKyB3aGl0ZXNwYWNlICsKCQkJIiooXFxkKyl8KSkiICsgd2hpdGVzcGFj
ZSArICIqXFwpfCkiLCAiaSIgKSwKCQkiYm9vbCI6IG5ldyBSZWdFeHAoICJeKD86IiArIGJvb2xl
YW5zICsgIikkIiwgImkiICksCgkJLy8gRm9yIHVzZSBpbiBsaWJyYXJpZXMgaW1wbGVtZW50aW5n
IC5pcygpCgkJLy8gV2UgdXNlIHRoaXMgZm9yIFBPUyBtYXRjaGluZyBpbiBgc2VsZWN0YAoJCSJu
ZWVkc0NvbnRleHQiOiBuZXcgUmVnRXhwKCAiXiIgKyB3aGl0ZXNwYWNlICsgIipbPit+XXw6KGV2
ZW58b2RkfGVxfGd0fGx0fG50aHxmaXJzdHxsYXN0KSg/OlxcKCIgKwoJCQl3aGl0ZXNwYWNlICsg
IiooKD86LVxcZCk/XFxkKikiICsgd2hpdGVzcGFjZSArICIqXFwpfCkoPz1bXi1dfCQpIiwgImki
ICkKCX0sCgoJcmlucHV0cyA9IC9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGJ1dHRvbikkL2ks
CglyaGVhZGVyID0gL15oXGQkL2ksCgoJcm5hdGl2ZSA9IC9eW157XStce1xzKlxbbmF0aXZlIFx3
LywKCgkvLyBFYXNpbHktcGFyc2VhYmxlL3JldHJpZXZhYmxlIElEIG9yIFRBRyBvciBDTEFTUyBz
ZWxlY3RvcnMKCXJxdWlja0V4cHIgPSAvXig/OiMoW1x3LV0rKXwoXHcrKXxcLihbXHctXSspKSQv
LAoKCXJzaWJsaW5nID0gL1srfl0vLAoJcmVzY2FwZSA9IC8nfFxcL2csCgoJLy8gQ1NTIGVzY2Fw
ZXMgaHR0cDovL3d3dy53My5vcmcvVFIvQ1NTMjEvc3luZGF0YS5odG1sI2VzY2FwZWQtY2hhcmFj
dGVycwoJcnVuZXNjYXBlID0gbmV3IFJlZ0V4cCggIlxcXFwoW1xcZGEtZl17MSw2fSIgKyB3aGl0
ZXNwYWNlICsgIj98KCIgKyB3aGl0ZXNwYWNlICsgIil8LikiLCAiaWciICksCglmdW5lc2NhcGUg
PSBmdW5jdGlvbiggXywgZXNjYXBlZCwgZXNjYXBlZFdoaXRlc3BhY2UgKSB7CgkJdmFyIGhpZ2gg
PSAiMHgiICsgZXNjYXBlZCAtIDB4MTAwMDA7CgkJLy8gTmFOIG1lYW5zIG5vbi1jb2RlcG9pbnQK
CQkvLyBTdXBwb3J0OiBGaXJlZm94PDI0CgkJLy8gV29ya2Fyb3VuZCBlcnJvbmVvdXMgbnVtZXJp
YyBpbnRlcnByZXRhdGlvbiBvZiArIjB4IgoJCXJldHVybiBoaWdoICE9PSBoaWdoIHx8IGVzY2Fw
ZWRXaGl0ZXNwYWNlID8KCQkJZXNjYXBlZCA6CgkJCWhpZ2ggPCAwID8KCQkJCS8vIEJNUCBjb2Rl
cG9pbnQKCQkJCVN0cmluZy5mcm9tQ2hhckNvZGUoIGhpZ2ggKyAweDEwMDAwICkgOgoJCQkJLy8g
U3VwcGxlbWVudGFsIFBsYW5lIGNvZGVwb2ludCAoc3Vycm9nYXRlIHBhaXIpCgkJCQlTdHJpbmcu
ZnJvbUNoYXJDb2RlKCBoaWdoID4+IDEwIHwgMHhEODAwLCBoaWdoICYgMHgzRkYgfCAweERDMDAg
KTsKCX0sCgoJLy8gVXNlZCBmb3IgaWZyYW1lcwoJLy8gU2VlIHNldERvY3VtZW50KCkKCS8vIFJl
bW92aW5nIHRoZSBmdW5jdGlvbiB3cmFwcGVyIGNhdXNlcyBhICJQZXJtaXNzaW9uIERlbmllZCIK
CS8vIGVycm9yIGluIElFCgl1bmxvYWRIYW5kbGVyID0gZnVuY3Rpb24oKSB7CgkJc2V0RG9jdW1l
bnQoKTsKCX07CgovLyBPcHRpbWl6ZSBmb3IgcHVzaC5hcHBseSggXywgTm9kZUxpc3QgKQp0cnkg
ewoJcHVzaC5hcHBseSgKCQkoYXJyID0gc2xpY2UuY2FsbCggcHJlZmVycmVkRG9jLmNoaWxkTm9k
ZXMgKSksCgkJcHJlZmVycmVkRG9jLmNoaWxkTm9kZXMKCSk7CgkvLyBTdXBwb3J0OiBBbmRyb2lk
PDQuMAoJLy8gRGV0ZWN0IHNpbGVudGx5IGZhaWxpbmcgcHVzaC5hcHBseQoJYXJyWyBwcmVmZXJy
ZWREb2MuY2hpbGROb2Rlcy5sZW5ndGggXS5ub2RlVHlwZTsKfSBjYXRjaCAoIGUgKSB7CglwdXNo
ID0geyBhcHBseTogYXJyLmxlbmd0aCA/CgoJCS8vIExldmVyYWdlIHNsaWNlIGlmIHBvc3NpYmxl
CgkJZnVuY3Rpb24oIHRhcmdldCwgZWxzICkgewoJCQlwdXNoX25hdGl2ZS5hcHBseSggdGFyZ2V0
LCBzbGljZS5jYWxsKGVscykgKTsKCQl9IDoKCgkJLy8gU3VwcG9ydDogSUU8OQoJCS8vIE90aGVy
d2lzZSBhcHBlbmQgZGlyZWN0bHkKCQlmdW5jdGlvbiggdGFyZ2V0LCBlbHMgKSB7CgkJCXZhciBq
ID0gdGFyZ2V0Lmxlbmd0aCwKCQkJCWkgPSAwOwoJCQkvLyBDYW4ndCB0cnVzdCBOb2RlTGlzdC5s
ZW5ndGgKCQkJd2hpbGUgKCAodGFyZ2V0W2orK10gPSBlbHNbaSsrXSkgKSB7fQoJCQl0YXJnZXQu
bGVuZ3RoID0gaiAtIDE7CgkJfQoJfTsKfQoKZnVuY3Rpb24gU2l6emxlKCBzZWxlY3RvciwgY29u
dGV4dCwgcmVzdWx0cywgc2VlZCApIHsKCXZhciBtYXRjaCwgZWxlbSwgbSwgbm9kZVR5cGUsCgkJ
Ly8gUVNBIHZhcnMKCQlpLCBncm91cHMsIG9sZCwgbmlkLCBuZXdDb250ZXh0LCBuZXdTZWxlY3Rv
cjsKCglpZiAoICggY29udGV4dCA/IGNvbnRleHQub3duZXJEb2N1bWVudCB8fCBjb250ZXh0IDog
cHJlZmVycmVkRG9jICkgIT09IGRvY3VtZW50ICkgewoJCXNldERvY3VtZW50KCBjb250ZXh0ICk7
Cgl9CgoJY29udGV4dCA9IGNvbnRleHQgfHwgZG9jdW1lbnQ7CglyZXN1bHRzID0gcmVzdWx0cyB8
fCBbXTsKCW5vZGVUeXBlID0gY29udGV4dC5ub2RlVHlwZTsKCglpZiAoIHR5cGVvZiBzZWxlY3Rv
ciAhPT0gInN0cmluZyIgfHwgIXNlbGVjdG9yIHx8CgkJbm9kZVR5cGUgIT09IDEgJiYgbm9kZVR5
cGUgIT09IDkgJiYgbm9kZVR5cGUgIT09IDExICkgewoKCQlyZXR1cm4gcmVzdWx0czsKCX0KCglp
ZiAoICFzZWVkICYmIGRvY3VtZW50SXNIVE1MICkgewoKCQkvLyBUcnkgdG8gc2hvcnRjdXQgZmlu
ZCBvcGVyYXRpb25zIHdoZW4gcG9zc2libGUgKGUuZy4sIG5vdCB1bmRlciBEb2N1bWVudEZyYWdt
ZW50KQoJCWlmICggbm9kZVR5cGUgIT09IDExICYmIChtYXRjaCA9IHJxdWlja0V4cHIuZXhlYygg
c2VsZWN0b3IgKSkgKSB7CgkJCS8vIFNwZWVkLXVwOiBTaXp6bGUoIiNJRCIpCgkJCWlmICggKG0g
PSBtYXRjaFsxXSkgKSB7CgkJCQlpZiAoIG5vZGVUeXBlID09PSA5ICkgewoJCQkJCWVsZW0gPSBj
b250ZXh0LmdldEVsZW1lbnRCeUlkKCBtICk7CgkJCQkJLy8gQ2hlY2sgcGFyZW50Tm9kZSB0byBj
YXRjaCB3aGVuIEJsYWNrYmVycnkgNC42IHJldHVybnMKCQkJCQkvLyBub2RlcyB0aGF0IGFyZSBu
byBsb25nZXIgaW4gdGhlIGRvY3VtZW50IChqUXVlcnkgIzY5NjMpCgkJCQkJaWYgKCBlbGVtICYm
IGVsZW0ucGFyZW50Tm9kZSApIHsKCQkJCQkJLy8gSGFuZGxlIHRoZSBjYXNlIHdoZXJlIElFLCBP
cGVyYSwgYW5kIFdlYmtpdCByZXR1cm4gaXRlbXMKCQkJCQkJLy8gYnkgbmFtZSBpbnN0ZWFkIG9m
IElECgkJCQkJCWlmICggZWxlbS5pZCA9PT0gbSApIHsKCQkJCQkJCXJlc3VsdHMucHVzaCggZWxl
bSApOwoJCQkJCQkJcmV0dXJuIHJlc3VsdHM7CgkJCQkJCX0KCQkJCQl9IGVsc2UgewoJCQkJCQly
ZXR1cm4gcmVzdWx0czsKCQkJCQl9CgkJCQl9IGVsc2UgewoJCQkJCS8vIENvbnRleHQgaXMgbm90
IGEgZG9jdW1lbnQKCQkJCQlpZiAoIGNvbnRleHQub3duZXJEb2N1bWVudCAmJiAoZWxlbSA9IGNv
bnRleHQub3duZXJEb2N1bWVudC5nZXRFbGVtZW50QnlJZCggbSApKSAmJgoJCQkJCQljb250YWlu
cyggY29udGV4dCwgZWxlbSApICYmIGVsZW0uaWQgPT09IG0gKSB7CgkJCQkJCXJlc3VsdHMucHVz
aCggZWxlbSApOwoJCQkJCQlyZXR1cm4gcmVzdWx0czsKCQkJCQl9CgkJCQl9CgoJCQkvLyBTcGVl
ZC11cDogU2l6emxlKCJUQUciKQoJCQl9IGVsc2UgaWYgKCBtYXRjaFsyXSApIHsKCQkJCXB1c2gu
YXBwbHkoIHJlc3VsdHMsIGNvbnRleHQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIHNlbGVjdG9yICkg
KTsKCQkJCXJldHVybiByZXN1bHRzOwoKCQkJLy8gU3BlZWQtdXA6IFNpenpsZSgiLkNMQVNTIikK
CQkJfSBlbHNlIGlmICggKG0gPSBtYXRjaFszXSkgJiYgc3VwcG9ydC5nZXRFbGVtZW50c0J5Q2xh
c3NOYW1lICkgewoJCQkJcHVzaC5hcHBseSggcmVzdWx0cywgY29udGV4dC5nZXRFbGVtZW50c0J5
Q2xhc3NOYW1lKCBtICkgKTsKCQkJCXJldHVybiByZXN1bHRzOwoJCQl9CgkJfQoKCQkvLyBRU0Eg
cGF0aAoJCWlmICggc3VwcG9ydC5xc2EgJiYgKCFyYnVnZ3lRU0EgfHwgIXJidWdneVFTQS50ZXN0
KCBzZWxlY3RvciApKSApIHsKCQkJbmlkID0gb2xkID0gZXhwYW5kbzsKCQkJbmV3Q29udGV4dCA9
IGNvbnRleHQ7CgkJCW5ld1NlbGVjdG9yID0gbm9kZVR5cGUgIT09IDEgJiYgc2VsZWN0b3I7CgoJ
CQkvLyBxU0Egd29ya3Mgc3RyYW5nZWx5IG9uIEVsZW1lbnQtcm9vdGVkIHF1ZXJpZXMKCQkJLy8g
V2UgY2FuIHdvcmsgYXJvdW5kIHRoaXMgYnkgc3BlY2lmeWluZyBhbiBleHRyYSBJRCBvbiB0aGUg
cm9vdAoJCQkvLyBhbmQgd29ya2luZyB1cCBmcm9tIHRoZXJlIChUaGFua3MgdG8gQW5kcmV3IER1
cG9udCBmb3IgdGhlIHRlY2huaXF1ZSkKCQkJLy8gSUUgOCBkb2Vzbid0IHdvcmsgb24gb2JqZWN0
IGVsZW1lbnRzCgkJCWlmICggbm9kZVR5cGUgPT09IDEgJiYgY29udGV4dC5ub2RlTmFtZS50b0xv
d2VyQ2FzZSgpICE9PSAib2JqZWN0IiApIHsKCQkJCWdyb3VwcyA9IHRva2VuaXplKCBzZWxlY3Rv
ciApOwoKCQkJCWlmICggKG9sZCA9IGNvbnRleHQuZ2V0QXR0cmlidXRlKCJpZCIpKSApIHsKCQkJ
CQluaWQgPSBvbGQucmVwbGFjZSggcmVzY2FwZSwgIlxcJCYiICk7CgkJCQl9IGVsc2UgewoJCQkJ
CWNvbnRleHQuc2V0QXR0cmlidXRlKCAiaWQiLCBuaWQgKTsKCQkJCX0KCQkJCW5pZCA9ICJbaWQ9
JyIgKyBuaWQgKyAiJ10gIjsKCgkJCQlpID0gZ3JvdXBzLmxlbmd0aDsKCQkJCXdoaWxlICggaS0t
ICkgewoJCQkJCWdyb3Vwc1tpXSA9IG5pZCArIHRvU2VsZWN0b3IoIGdyb3Vwc1tpXSApOwoJCQkJ
fQoJCQkJbmV3Q29udGV4dCA9IHJzaWJsaW5nLnRlc3QoIHNlbGVjdG9yICkgJiYgdGVzdENvbnRl
eHQoIGNvbnRleHQucGFyZW50Tm9kZSApIHx8IGNvbnRleHQ7CgkJCQluZXdTZWxlY3RvciA9IGdy
b3Vwcy5qb2luKCIsIik7CgkJCX0KCgkJCWlmICggbmV3U2VsZWN0b3IgKSB7CgkJCQl0cnkgewoJ
CQkJCXB1c2guYXBwbHkoIHJlc3VsdHMsCgkJCQkJCW5ld0NvbnRleHQucXVlcnlTZWxlY3RvckFs
bCggbmV3U2VsZWN0b3IgKQoJCQkJCSk7CgkJCQkJcmV0dXJuIHJlc3VsdHM7CgkJCQl9IGNhdGNo
KHFzYUVycm9yKSB7CgkJCQl9IGZpbmFsbHkgewoJCQkJCWlmICggIW9sZCApIHsKCQkJCQkJY29u
dGV4dC5yZW1vdmVBdHRyaWJ1dGUoImlkIik7CgkJCQkJfQoJCQkJfQoJCQl9CgkJfQoJfQoKCS8v
IEFsbCBvdGhlcnMKCXJldHVybiBzZWxlY3QoIHNlbGVjdG9yLnJlcGxhY2UoIHJ0cmltLCAiJDEi
ICksIGNvbnRleHQsIHJlc3VsdHMsIHNlZWQgKTsKfQoKLyoqCiAqIENyZWF0ZSBrZXktdmFsdWUg
Y2FjaGVzIG9mIGxpbWl0ZWQgc2l6ZQogKiBAcmV0dXJucyB7RnVuY3Rpb24oc3RyaW5nLCBPYmpl
Y3QpfSBSZXR1cm5zIHRoZSBPYmplY3QgZGF0YSBhZnRlciBzdG9yaW5nIGl0IG9uIGl0c2VsZiB3
aXRoCiAqCXByb3BlcnR5IG5hbWUgdGhlIChzcGFjZS1zdWZmaXhlZCkgc3RyaW5nIGFuZCAoaWYg
dGhlIGNhY2hlIGlzIGxhcmdlciB0aGFuIEV4cHIuY2FjaGVMZW5ndGgpCiAqCWRlbGV0aW5nIHRo
ZSBvbGRlc3QgZW50cnkKICovCmZ1bmN0aW9uIGNyZWF0ZUNhY2hlKCkgewoJdmFyIGtleXMgPSBb
XTsKCglmdW5jdGlvbiBjYWNoZSgga2V5LCB2YWx1ZSApIHsKCQkvLyBVc2UgKGtleSArICIgIikg
dG8gYXZvaWQgY29sbGlzaW9uIHdpdGggbmF0aXZlIHByb3RvdHlwZSBwcm9wZXJ0aWVzIChzZWUg
SXNzdWUgIzE1NykKCQlpZiAoIGtleXMucHVzaCgga2V5ICsgIiAiICkgPiBFeHByLmNhY2hlTGVu
Z3RoICkgewoJCQkvLyBPbmx5IGtlZXAgdGhlIG1vc3QgcmVjZW50IGVudHJpZXMKCQkJZGVsZXRl
IGNhY2hlWyBrZXlzLnNoaWZ0KCkgXTsKCQl9CgkJcmV0dXJuIChjYWNoZVsga2V5ICsgIiAiIF0g
PSB2YWx1ZSk7Cgl9CglyZXR1cm4gY2FjaGU7Cn0KCi8qKgogKiBNYXJrIGEgZnVuY3Rpb24gZm9y
IHNwZWNpYWwgdXNlIGJ5IFNpenpsZQogKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbiBUaGUgZnVuY3Rp
b24gdG8gbWFyawogKi8KZnVuY3Rpb24gbWFya0Z1bmN0aW9uKCBmbiApIHsKCWZuWyBleHBhbmRv
IF0gPSB0cnVlOwoJcmV0dXJuIGZuOwp9CgovKioKICogU3VwcG9ydCB0ZXN0aW5nIHVzaW5nIGFu
IGVsZW1lbnQKICogQHBhcmFtIHtGdW5jdGlvbn0gZm4gUGFzc2VkIHRoZSBjcmVhdGVkIGRpdiBh
bmQgZXhwZWN0cyBhIGJvb2xlYW4gcmVzdWx0CiAqLwpmdW5jdGlvbiBhc3NlcnQoIGZuICkgewoJ
dmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwoKCXRyeSB7CgkJcmV0dXJu
ICEhZm4oIGRpdiApOwoJfSBjYXRjaCAoZSkgewoJCXJldHVybiBmYWxzZTsKCX0gZmluYWxseSB7
CgkJLy8gUmVtb3ZlIGZyb20gaXRzIHBhcmVudCBieSBkZWZhdWx0CgkJaWYgKCBkaXYucGFyZW50
Tm9kZSApIHsKCQkJZGl2LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoIGRpdiApOwoJCX0KCQkvLyBy
ZWxlYXNlIG1lbW9yeSBpbiBJRQoJCWRpdiA9IG51bGw7Cgl9Cn0KCi8qKgogKiBBZGRzIHRoZSBz
YW1lIGhhbmRsZXIgZm9yIGFsbCBvZiB0aGUgc3BlY2lmaWVkIGF0dHJzCiAqIEBwYXJhbSB7U3Ry
aW5nfSBhdHRycyBQaXBlLXNlcGFyYXRlZCBsaXN0IG9mIGF0dHJpYnV0ZXMKICogQHBhcmFtIHtG
dW5jdGlvbn0gaGFuZGxlciBUaGUgbWV0aG9kIHRoYXQgd2lsbCBiZSBhcHBsaWVkCiAqLwpmdW5j
dGlvbiBhZGRIYW5kbGUoIGF0dHJzLCBoYW5kbGVyICkgewoJdmFyIGFyciA9IGF0dHJzLnNwbGl0
KCJ8IiksCgkJaSA9IGF0dHJzLmxlbmd0aDsKCgl3aGlsZSAoIGktLSApIHsKCQlFeHByLmF0dHJI
YW5kbGVbIGFycltpXSBdID0gaGFuZGxlcjsKCX0KfQoKLyoqCiAqIENoZWNrcyBkb2N1bWVudCBv
cmRlciBvZiB0d28gc2libGluZ3MKICogQHBhcmFtIHtFbGVtZW50fSBhCiAqIEBwYXJhbSB7RWxl
bWVudH0gYgogKiBAcmV0dXJucyB7TnVtYmVyfSBSZXR1cm5zIGxlc3MgdGhhbiAwIGlmIGEgcHJl
Y2VkZXMgYiwgZ3JlYXRlciB0aGFuIDAgaWYgYSBmb2xsb3dzIGIKICovCmZ1bmN0aW9uIHNpYmxp
bmdDaGVjayggYSwgYiApIHsKCXZhciBjdXIgPSBiICYmIGEsCgkJZGlmZiA9IGN1ciAmJiBhLm5v
ZGVUeXBlID09PSAxICYmIGIubm9kZVR5cGUgPT09IDEgJiYKCQkJKCB+Yi5zb3VyY2VJbmRleCB8
fCBNQVhfTkVHQVRJVkUgKSAtCgkJCSggfmEuc291cmNlSW5kZXggfHwgTUFYX05FR0FUSVZFICk7
CgoJLy8gVXNlIElFIHNvdXJjZUluZGV4IGlmIGF2YWlsYWJsZSBvbiBib3RoIG5vZGVzCglpZiAo
IGRpZmYgKSB7CgkJcmV0dXJuIGRpZmY7Cgl9CgoJLy8gQ2hlY2sgaWYgYiBmb2xsb3dzIGEKCWlm
ICggY3VyICkgewoJCXdoaWxlICggKGN1ciA9IGN1ci5uZXh0U2libGluZykgKSB7CgkJCWlmICgg
Y3VyID09PSBiICkgewoJCQkJcmV0dXJuIC0xOwoJCQl9CgkJfQoJfQoKCXJldHVybiBhID8gMSA6
IC0xOwp9CgovKioKICogUmV0dXJucyBhIGZ1bmN0aW9uIHRvIHVzZSBpbiBwc2V1ZG9zIGZvciBp
bnB1dCB0eXBlcwogKiBAcGFyYW0ge1N0cmluZ30gdHlwZQogKi8KZnVuY3Rpb24gY3JlYXRlSW5w
dXRQc2V1ZG8oIHR5cGUgKSB7CglyZXR1cm4gZnVuY3Rpb24oIGVsZW0gKSB7CgkJdmFyIG5hbWUg
PSBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7CgkJcmV0dXJuIG5hbWUgPT09ICJpbnB1dCIg
JiYgZWxlbS50eXBlID09PSB0eXBlOwoJfTsKfQoKLyoqCiAqIFJldHVybnMgYSBmdW5jdGlvbiB0
byB1c2UgaW4gcHNldWRvcyBmb3IgYnV0dG9ucwogKiBAcGFyYW0ge1N0cmluZ30gdHlwZQogKi8K
ZnVuY3Rpb24gY3JlYXRlQnV0dG9uUHNldWRvKCB0eXBlICkgewoJcmV0dXJuIGZ1bmN0aW9uKCBl
bGVtICkgewoJCXZhciBuYW1lID0gZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpOwoJCXJldHVy
biAobmFtZSA9PT0gImlucHV0IiB8fCBuYW1lID09PSAiYnV0dG9uIikgJiYgZWxlbS50eXBlID09
PSB0eXBlOwoJfTsKfQoKLyoqCiAqIFJldHVybnMgYSBmdW5jdGlvbiB0byB1c2UgaW4gcHNldWRv
cyBmb3IgcG9zaXRpb25hbHMKICogQHBhcmFtIHtGdW5jdGlvbn0gZm4KICovCmZ1bmN0aW9uIGNy
ZWF0ZVBvc2l0aW9uYWxQc2V1ZG8oIGZuICkgewoJcmV0dXJuIG1hcmtGdW5jdGlvbihmdW5jdGlv
biggYXJndW1lbnQgKSB7CgkJYXJndW1lbnQgPSArYXJndW1lbnQ7CgkJcmV0dXJuIG1hcmtGdW5j
dGlvbihmdW5jdGlvbiggc2VlZCwgbWF0Y2hlcyApIHsKCQkJdmFyIGosCgkJCQltYXRjaEluZGV4
ZXMgPSBmbiggW10sIHNlZWQubGVuZ3RoLCBhcmd1bWVudCApLAoJCQkJaSA9IG1hdGNoSW5kZXhl
cy5sZW5ndGg7CgoJCQkvLyBNYXRjaCBlbGVtZW50cyBmb3VuZCBhdCB0aGUgc3BlY2lmaWVkIGlu
ZGV4ZXMKCQkJd2hpbGUgKCBpLS0gKSB7CgkJCQlpZiAoIHNlZWRbIChqID0gbWF0Y2hJbmRleGVz
W2ldKSBdICkgewoJCQkJCXNlZWRbal0gPSAhKG1hdGNoZXNbal0gPSBzZWVkW2pdKTsKCQkJCX0K
CQkJfQoJCX0pOwoJfSk7Cn0KCi8qKgogKiBDaGVja3MgYSBub2RlIGZvciB2YWxpZGl0eSBhcyBh
IFNpenpsZSBjb250ZXh0CiAqIEBwYXJhbSB7RWxlbWVudHxPYmplY3Q9fSBjb250ZXh0CiAqIEBy
ZXR1cm5zIHtFbGVtZW50fE9iamVjdHxCb29sZWFufSBUaGUgaW5wdXQgbm9kZSBpZiBhY2NlcHRh
YmxlLCBvdGhlcndpc2UgYSBmYWxzeSB2YWx1ZQogKi8KZnVuY3Rpb24gdGVzdENvbnRleHQoIGNv
bnRleHQgKSB7CglyZXR1cm4gY29udGV4dCAmJiB0eXBlb2YgY29udGV4dC5nZXRFbGVtZW50c0J5
VGFnTmFtZSAhPT0gInVuZGVmaW5lZCIgJiYgY29udGV4dDsKfQoKLy8gRXhwb3NlIHN1cHBvcnQg
dmFycyBmb3IgY29udmVuaWVuY2UKc3VwcG9ydCA9IFNpenpsZS5zdXBwb3J0ID0ge307CgovKioK
ICogRGV0ZWN0cyBYTUwgbm9kZXMKICogQHBhcmFtIHtFbGVtZW50fE9iamVjdH0gZWxlbSBBbiBl
bGVtZW50IG9yIGEgZG9jdW1lbnQKICogQHJldHVybnMge0Jvb2xlYW59IFRydWUgaWZmIGVsZW0g
aXMgYSBub24tSFRNTCBYTUwgbm9kZQogKi8KaXNYTUwgPSBTaXp6bGUuaXNYTUwgPSBmdW5jdGlv
biggZWxlbSApIHsKCS8vIGRvY3VtZW50RWxlbWVudCBpcyB2ZXJpZmllZCBmb3IgY2FzZXMgd2hl
cmUgaXQgZG9lc24ndCB5ZXQgZXhpc3QKCS8vIChzdWNoIGFzIGxvYWRpbmcgaWZyYW1lcyBpbiBJ
RSAtICM0ODMzKQoJdmFyIGRvY3VtZW50RWxlbWVudCA9IGVsZW0gJiYgKGVsZW0ub3duZXJEb2N1
bWVudCB8fCBlbGVtKS5kb2N1bWVudEVsZW1lbnQ7CglyZXR1cm4gZG9jdW1lbnRFbGVtZW50ID8g
ZG9jdW1lbnRFbGVtZW50Lm5vZGVOYW1lICE9PSAiSFRNTCIgOiBmYWxzZTsKfTsKCi8qKgogKiBT
ZXRzIGRvY3VtZW50LXJlbGF0ZWQgdmFyaWFibGVzIG9uY2UgYmFzZWQgb24gdGhlIGN1cnJlbnQg
ZG9jdW1lbnQKICogQHBhcmFtIHtFbGVtZW50fE9iamVjdH0gW2RvY10gQW4gZWxlbWVudCBvciBk
b2N1bWVudCBvYmplY3QgdG8gdXNlIHRvIHNldCB0aGUgZG9jdW1lbnQKICogQHJldHVybnMge09i
amVjdH0gUmV0dXJucyB0aGUgY3VycmVudCBkb2N1bWVudAogKi8Kc2V0RG9jdW1lbnQgPSBTaXp6
bGUuc2V0RG9jdW1lbnQgPSBmdW5jdGlvbiggbm9kZSApIHsKCXZhciBoYXNDb21wYXJlLCBwYXJl
bnQsCgkJZG9jID0gbm9kZSA/IG5vZGUub3duZXJEb2N1bWVudCB8fCBub2RlIDogcHJlZmVycmVk
RG9jOwoKCS8vIElmIG5vIGRvY3VtZW50IGFuZCBkb2N1bWVudEVsZW1lbnQgaXMgYXZhaWxhYmxl
LCByZXR1cm4KCWlmICggZG9jID09PSBkb2N1bWVudCB8fCBkb2Mubm9kZVR5cGUgIT09IDkgfHwg
IWRvYy5kb2N1bWVudEVsZW1lbnQgKSB7CgkJcmV0dXJuIGRvY3VtZW50OwoJfQoKCS8vIFNldCBv
dXIgZG9jdW1lbnQKCWRvY3VtZW50ID0gZG9jOwoJZG9jRWxlbSA9IGRvYy5kb2N1bWVudEVsZW1l
bnQ7CglwYXJlbnQgPSBkb2MuZGVmYXVsdFZpZXc7CgoJLy8gU3VwcG9ydDogSUU+OAoJLy8gSWYg
aWZyYW1lIGRvY3VtZW50IGlzIGFzc2lnbmVkIHRvICJkb2N1bWVudCIgdmFyaWFibGUgYW5kIGlm
IGlmcmFtZSBoYXMgYmVlbiByZWxvYWRlZCwKCS8vIElFIHdpbGwgdGhyb3cgInBlcm1pc3Npb24g
ZGVuaWVkIiBlcnJvciB3aGVuIGFjY2Vzc2luZyAiZG9jdW1lbnQiIHZhcmlhYmxlLCBzZWUgalF1
ZXJ5ICMxMzkzNgoJLy8gSUU2LTggZG8gbm90IHN1cHBvcnQgdGhlIGRlZmF1bHRWaWV3IHByb3Bl
cnR5IHNvIHBhcmVudCB3aWxsIGJlIHVuZGVmaW5lZAoJaWYgKCBwYXJlbnQgJiYgcGFyZW50ICE9
PSBwYXJlbnQudG9wICkgewoJCS8vIElFMTEgZG9lcyBub3QgaGF2ZSBhdHRhY2hFdmVudCwgc28g
YWxsIG11c3Qgc3VmZmVyCgkJaWYgKCBwYXJlbnQuYWRkRXZlbnRMaXN0ZW5lciApIHsKCQkJcGFy
ZW50LmFkZEV2ZW50TGlzdGVuZXIoICJ1bmxvYWQiLCB1bmxvYWRIYW5kbGVyLCBmYWxzZSApOwoJ
CX0gZWxzZSBpZiAoIHBhcmVudC5hdHRhY2hFdmVudCApIHsKCQkJcGFyZW50LmF0dGFjaEV2ZW50
KCAib251bmxvYWQiLCB1bmxvYWRIYW5kbGVyICk7CgkJfQoJfQoKCS8qIFN1cHBvcnQgdGVzdHMK
CS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gKi8KCWRvY3VtZW50SXNIVE1MID0gIWlzWE1MKCBkb2MgKTsKCgkvKiBB
dHRyaWJ1dGVzCgktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCgoJLy8gU3VwcG9ydDogSUU8OAoJLy8gVmVyaWZ5
IHRoYXQgZ2V0QXR0cmlidXRlIHJlYWxseSByZXR1cm5zIGF0dHJpYnV0ZXMgYW5kIG5vdCBwcm9w
ZXJ0aWVzCgkvLyAoZXhjZXB0aW5nIElFOCBib29sZWFucykKCXN1cHBvcnQuYXR0cmlidXRlcyA9
IGFzc2VydChmdW5jdGlvbiggZGl2ICkgewoJCWRpdi5jbGFzc05hbWUgPSAiaSI7CgkJcmV0dXJu
ICFkaXYuZ2V0QXR0cmlidXRlKCJjbGFzc05hbWUiKTsKCX0pOwoKCS8qIGdldEVsZW1lbnQocylC
eSoKCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gKi8KCgkvLyBDaGVjayBpZiBnZXRFbGVtZW50c0J5VGFnTmFtZSgi
KiIpIHJldHVybnMgb25seSBlbGVtZW50cwoJc3VwcG9ydC5nZXRFbGVtZW50c0J5VGFnTmFtZSA9
IGFzc2VydChmdW5jdGlvbiggZGl2ICkgewoJCWRpdi5hcHBlbmRDaGlsZCggZG9jLmNyZWF0ZUNv
bW1lbnQoIiIpICk7CgkJcmV0dXJuICFkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKS5sZW5n
dGg7Cgl9KTsKCgkvLyBTdXBwb3J0OiBJRTw5CglzdXBwb3J0LmdldEVsZW1lbnRzQnlDbGFzc05h
bWUgPSBybmF0aXZlLnRlc3QoIGRvYy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lICk7CgoJLy8gU3Vw
cG9ydDogSUU8MTAKCS8vIENoZWNrIGlmIGdldEVsZW1lbnRCeUlkIHJldHVybnMgZWxlbWVudHMg
YnkgbmFtZQoJLy8gVGhlIGJyb2tlbiBnZXRFbGVtZW50QnlJZCBtZXRob2RzIGRvbid0IHBpY2sg
dXAgcHJvZ3JhbWF0aWNhbGx5LXNldCBuYW1lcywKCS8vIHNvIHVzZSBhIHJvdW5kYWJvdXQgZ2V0
RWxlbWVudHNCeU5hbWUgdGVzdAoJc3VwcG9ydC5nZXRCeUlkID0gYXNzZXJ0KGZ1bmN0aW9uKCBk
aXYgKSB7CgkJZG9jRWxlbS5hcHBlbmRDaGlsZCggZGl2ICkuaWQgPSBleHBhbmRvOwoJCXJldHVy
biAhZG9jLmdldEVsZW1lbnRzQnlOYW1lIHx8ICFkb2MuZ2V0RWxlbWVudHNCeU5hbWUoIGV4cGFu
ZG8gKS5sZW5ndGg7Cgl9KTsKCgkvLyBJRCBmaW5kIGFuZCBmaWx0ZXIKCWlmICggc3VwcG9ydC5n
ZXRCeUlkICkgewoJCUV4cHIuZmluZFsiSUQiXSA9IGZ1bmN0aW9uKCBpZCwgY29udGV4dCApIHsK
CQkJaWYgKCB0eXBlb2YgY29udGV4dC5nZXRFbGVtZW50QnlJZCAhPT0gInVuZGVmaW5lZCIgJiYg
ZG9jdW1lbnRJc0hUTUwgKSB7CgkJCQl2YXIgbSA9IGNvbnRleHQuZ2V0RWxlbWVudEJ5SWQoIGlk
ICk7CgkJCQkvLyBDaGVjayBwYXJlbnROb2RlIHRvIGNhdGNoIHdoZW4gQmxhY2tiZXJyeSA0LjYg
cmV0dXJucwoJCQkJLy8gbm9kZXMgdGhhdCBhcmUgbm8gbG9uZ2VyIGluIHRoZSBkb2N1bWVudCAj
Njk2MwoJCQkJcmV0dXJuIG0gJiYgbS5wYXJlbnROb2RlID8gWyBtIF0gOiBbXTsKCQkJfQoJCX07
CgkJRXhwci5maWx0ZXJbIklEIl0gPSBmdW5jdGlvbiggaWQgKSB7CgkJCXZhciBhdHRySWQgPSBp
ZC5yZXBsYWNlKCBydW5lc2NhcGUsIGZ1bmVzY2FwZSApOwoJCQlyZXR1cm4gZnVuY3Rpb24oIGVs
ZW0gKSB7CgkJCQlyZXR1cm4gZWxlbS5nZXRBdHRyaWJ1dGUoImlkIikgPT09IGF0dHJJZDsKCQkJ
fTsKCQl9OwoJfSBlbHNlIHsKCQkvLyBTdXBwb3J0OiBJRTYvNwoJCS8vIGdldEVsZW1lbnRCeUlk
IGlzIG5vdCByZWxpYWJsZSBhcyBhIGZpbmQgc2hvcnRjdXQKCQlkZWxldGUgRXhwci5maW5kWyJJ
RCJdOwoKCQlFeHByLmZpbHRlclsiSUQiXSA9ICBmdW5jdGlvbiggaWQgKSB7CgkJCXZhciBhdHRy
SWQgPSBpZC5yZXBsYWNlKCBydW5lc2NhcGUsIGZ1bmVzY2FwZSApOwoJCQlyZXR1cm4gZnVuY3Rp
b24oIGVsZW0gKSB7CgkJCQl2YXIgbm9kZSA9IHR5cGVvZiBlbGVtLmdldEF0dHJpYnV0ZU5vZGUg
IT09ICJ1bmRlZmluZWQiICYmIGVsZW0uZ2V0QXR0cmlidXRlTm9kZSgiaWQiKTsKCQkJCXJldHVy
biBub2RlICYmIG5vZGUudmFsdWUgPT09IGF0dHJJZDsKCQkJfTsKCQl9OwoJfQoKCS8vIFRhZwoJ
RXhwci5maW5kWyJUQUciXSA9IHN1cHBvcnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUgPwoJCWZ1bmN0
aW9uKCB0YWcsIGNvbnRleHQgKSB7CgkJCWlmICggdHlwZW9mIGNvbnRleHQuZ2V0RWxlbWVudHNC
eVRhZ05hbWUgIT09ICJ1bmRlZmluZWQiICkgewoJCQkJcmV0dXJuIGNvbnRleHQuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoIHRhZyApOwoKCQkJLy8gRG9jdW1lbnRGcmFnbWVudCBub2RlcyBkb24ndCBo
YXZlIGdFQlROCgkJCX0gZWxzZSBpZiAoIHN1cHBvcnQucXNhICkgewoJCQkJcmV0dXJuIGNvbnRl
eHQucXVlcnlTZWxlY3RvckFsbCggdGFnICk7CgkJCX0KCQl9IDoKCgkJZnVuY3Rpb24oIHRhZywg
Y29udGV4dCApIHsKCQkJdmFyIGVsZW0sCgkJCQl0bXAgPSBbXSwKCQkJCWkgPSAwLAoJCQkJLy8g
QnkgaGFwcHkgY29pbmNpZGVuY2UsIGEgKGJyb2tlbikgZ0VCVE4gYXBwZWFycyBvbiBEb2N1bWVu
dEZyYWdtZW50IG5vZGVzIHRvbwoJCQkJcmVzdWx0cyA9IGNvbnRleHQuZ2V0RWxlbWVudHNCeVRh
Z05hbWUoIHRhZyApOwoKCQkJLy8gRmlsdGVyIG91dCBwb3NzaWJsZSBjb21tZW50cwoJCQlpZiAo
IHRhZyA9PT0gIioiICkgewoJCQkJd2hpbGUgKCAoZWxlbSA9IHJlc3VsdHNbaSsrXSkgKSB7CgkJ
CQkJaWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICkgewoJCQkJCQl0bXAucHVzaCggZWxlbSApOwoJ
CQkJCX0KCQkJCX0KCgkJCQlyZXR1cm4gdG1wOwoJCQl9CgkJCXJldHVybiByZXN1bHRzOwoJCX07
CgoJLy8gQ2xhc3MKCUV4cHIuZmluZFsiQ0xBU1MiXSA9IHN1cHBvcnQuZ2V0RWxlbWVudHNCeUNs
YXNzTmFtZSAmJiBmdW5jdGlvbiggY2xhc3NOYW1lLCBjb250ZXh0ICkgewoJCWlmICggZG9jdW1l
bnRJc0hUTUwgKSB7CgkJCXJldHVybiBjb250ZXh0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoIGNs
YXNzTmFtZSApOwoJCX0KCX07CgoJLyogUVNBL21hdGNoZXNTZWxlY3RvcgoJLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAqLwoKCS8vIFFTQSBhbmQgbWF0Y2hlc1NlbGVjdG9yIHN1cHBvcnQKCgkvLyBtYXRjaGVzU2Vs
ZWN0b3IoOmFjdGl2ZSkgcmVwb3J0cyBmYWxzZSB3aGVuIHRydWUgKElFOS9PcGVyYSAxMS41KQoJ
cmJ1Z2d5TWF0Y2hlcyA9IFtdOwoKCS8vIHFTYSg6Zm9jdXMpIHJlcG9ydHMgZmFsc2Ugd2hlbiB0
cnVlIChDaHJvbWUgMjEpCgkvLyBXZSBhbGxvdyB0aGlzIGJlY2F1c2Ugb2YgYSBidWcgaW4gSUU4
LzkgdGhhdCB0aHJvd3MgYW4gZXJyb3IKCS8vIHdoZW5ldmVyIGBkb2N1bWVudC5hY3RpdmVFbGVt
ZW50YCBpcyBhY2Nlc3NlZCBvbiBhbiBpZnJhbWUKCS8vIFNvLCB3ZSBhbGxvdyA6Zm9jdXMgdG8g
cGFzcyB0aHJvdWdoIFFTQSBhbGwgdGhlIHRpbWUgdG8gYXZvaWQgdGhlIElFIGVycm9yCgkvLyBT
ZWUgaHR0cDovL2J1Z3MuanF1ZXJ5LmNvbS90aWNrZXQvMTMzNzgKCXJidWdneVFTQSA9IFtdOwoK
CWlmICggKHN1cHBvcnQucXNhID0gcm5hdGl2ZS50ZXN0KCBkb2MucXVlcnlTZWxlY3RvckFsbCAp
KSApIHsKCQkvLyBCdWlsZCBRU0EgcmVnZXgKCQkvLyBSZWdleCBzdHJhdGVneSBhZG9wdGVkIGZy
b20gRGllZ28gUGVyaW5pCgkJYXNzZXJ0KGZ1bmN0aW9uKCBkaXYgKSB7CgkJCS8vIFNlbGVjdCBp
cyBzZXQgdG8gZW1wdHkgc3RyaW5nIG9uIHB1cnBvc2UKCQkJLy8gVGhpcyBpcyB0byB0ZXN0IElF
J3MgdHJlYXRtZW50IG9mIG5vdCBleHBsaWNpdGx5CgkJCS8vIHNldHRpbmcgYSBib29sZWFuIGNv
bnRlbnQgYXR0cmlidXRlLAoJCQkvLyBzaW5jZSBpdHMgcHJlc2VuY2Ugc2hvdWxkIGJlIGVub3Vn
aAoJCQkvLyBodHRwOi8vYnVncy5qcXVlcnkuY29tL3RpY2tldC8xMjM1OQoJCQlkb2NFbGVtLmFw
cGVuZENoaWxkKCBkaXYgKS5pbm5lckhUTUwgPSAiPGEgaWQ9JyIgKyBleHBhbmRvICsgIic+PC9h
PiIgKwoJCQkJIjxzZWxlY3QgaWQ9JyIgKyBleHBhbmRvICsgIi1cZl0nIG1zYWxsb3djYXB0dXJl
PScnPiIgKwoJCQkJIjxvcHRpb24gc2VsZWN0ZWQ9Jyc+PC9vcHRpb24+PC9zZWxlY3Q+IjsKCgkJ
CS8vIFN1cHBvcnQ6IElFOCwgT3BlcmEgMTEtMTIuMTYKCQkJLy8gTm90aGluZyBzaG91bGQgYmUg
c2VsZWN0ZWQgd2hlbiBlbXB0eSBzdHJpbmdzIGZvbGxvdyBePSBvciAkPSBvciAqPQoJCQkvLyBU
aGUgdGVzdCBhdHRyaWJ1dGUgbXVzdCBiZSB1bmtub3duIGluIE9wZXJhIGJ1dCAic2FmZSIgZm9y
IFdpblJUCgkJCS8vIGh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9pZS9o
aDQ2NTM4OC5hc3B4I2F0dHJpYnV0ZV9zZWN0aW9uCgkJCWlmICggZGl2LnF1ZXJ5U2VsZWN0b3JB
bGwoIlttc2FsbG93Y2FwdHVyZV49JyddIikubGVuZ3RoICkgewoJCQkJcmJ1Z2d5UVNBLnB1c2go
ICJbKl4kXT0iICsgd2hpdGVzcGFjZSArICIqKD86Jyd8XCJcIikiICk7CgkJCX0KCgkJCS8vIFN1
cHBvcnQ6IElFOAoJCQkvLyBCb29sZWFuIGF0dHJpYnV0ZXMgYW5kICJ2YWx1ZSIgYXJlIG5vdCB0
cmVhdGVkIGNvcnJlY3RseQoJCQlpZiAoICFkaXYucXVlcnlTZWxlY3RvckFsbCgiW3NlbGVjdGVk
XSIpLmxlbmd0aCApIHsKCQkJCXJidWdneVFTQS5wdXNoKCAiXFxbIiArIHdoaXRlc3BhY2UgKyAi
Kig/OnZhbHVlfCIgKyBib29sZWFucyArICIpIiApOwoJCQl9CgoJCQkvLyBTdXBwb3J0OiBDaHJv
bWU8MjksIEFuZHJvaWQ8NC4yKywgU2FmYXJpPDcuMCssIGlPUzw3LjArLCBQaGFudG9tSlM8MS45
LjcrCgkJCWlmICggIWRpdi5xdWVyeVNlbGVjdG9yQWxsKCAiW2lkfj0iICsgZXhwYW5kbyArICIt
XSIgKS5sZW5ndGggKSB7CgkJCQlyYnVnZ3lRU0EucHVzaCgifj0iKTsKCQkJfQoKCQkJLy8gV2Vi
a2l0L09wZXJhIC0gOmNoZWNrZWQgc2hvdWxkIHJldHVybiBzZWxlY3RlZCBvcHRpb24gZWxlbWVu
dHMKCQkJLy8gaHR0cDovL3d3dy53My5vcmcvVFIvMjAxMS9SRUMtY3NzMy1zZWxlY3RvcnMtMjAx
MTA5MjkvI2NoZWNrZWQKCQkJLy8gSUU4IHRocm93cyBlcnJvciBoZXJlIGFuZCB3aWxsIG5vdCBz
ZWUgbGF0ZXIgdGVzdHMKCQkJaWYgKCAhZGl2LnF1ZXJ5U2VsZWN0b3JBbGwoIjpjaGVja2VkIiku
bGVuZ3RoICkgewoJCQkJcmJ1Z2d5UVNBLnB1c2goIjpjaGVja2VkIik7CgkJCX0KCgkJCS8vIFN1
cHBvcnQ6IFNhZmFyaSA4KywgaU9TIDgrCgkJCS8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzY4NTEKCQkJLy8gSW4tcGFnZSBgc2VsZWN0b3IjaWQgc2liaW5nLWNv
bWJpbmF0b3Igc2VsZWN0b3JgIGZhaWxzCgkJCWlmICggIWRpdi5xdWVyeVNlbGVjdG9yQWxsKCAi
YSMiICsgZXhwYW5kbyArICIrKiIgKS5sZW5ndGggKSB7CgkJCQlyYnVnZ3lRU0EucHVzaCgiLiMu
K1srfl0iKTsKCQkJfQoJCX0pOwoKCQlhc3NlcnQoZnVuY3Rpb24oIGRpdiApIHsKCQkJLy8gU3Vw
cG9ydDogV2luZG93cyA4IE5hdGl2ZSBBcHBzCgkJCS8vIFRoZSB0eXBlIGFuZCBuYW1lIGF0dHJp
YnV0ZXMgYXJlIHJlc3RyaWN0ZWQgZHVyaW5nIC5pbm5lckhUTUwgYXNzaWdubWVudAoJCQl2YXIg
aW5wdXQgPSBkb2MuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKCQkJaW5wdXQuc2V0QXR0cmlidXRl
KCAidHlwZSIsICJoaWRkZW4iICk7CgkJCWRpdi5hcHBlbmRDaGlsZCggaW5wdXQgKS5zZXRBdHRy
aWJ1dGUoICJuYW1lIiwgIkQiICk7CgoJCQkvLyBTdXBwb3J0OiBJRTgKCQkJLy8gRW5mb3JjZSBj
YXNlLXNlbnNpdGl2aXR5IG9mIG5hbWUgYXR0cmlidXRlCgkJCWlmICggZGl2LnF1ZXJ5U2VsZWN0
b3JBbGwoIltuYW1lPWRdIikubGVuZ3RoICkgewoJCQkJcmJ1Z2d5UVNBLnB1c2goICJuYW1lIiAr
IHdoaXRlc3BhY2UgKyAiKlsqXiR8IX5dPz0iICk7CgkJCX0KCgkJCS8vIEZGIDMuNSAtIDplbmFi
bGVkLzpkaXNhYmxlZCBhbmQgaGlkZGVuIGVsZW1lbnRzIChoaWRkZW4gZWxlbWVudHMgYXJlIHN0
aWxsIGVuYWJsZWQpCgkJCS8vIElFOCB0aHJvd3MgZXJyb3IgaGVyZSBhbmQgd2lsbCBub3Qgc2Vl
IGxhdGVyIHRlc3RzCgkJCWlmICggIWRpdi5xdWVyeVNlbGVjdG9yQWxsKCI6ZW5hYmxlZCIpLmxl
bmd0aCApIHsKCQkJCXJidWdneVFTQS5wdXNoKCAiOmVuYWJsZWQiLCAiOmRpc2FibGVkIiApOwoJ
CQl9CgoJCQkvLyBPcGVyYSAxMC0xMSBkb2VzIG5vdCB0aHJvdyBvbiBwb3N0LWNvbW1hIGludmFs
aWQgcHNldWRvcwoJCQlkaXYucXVlcnlTZWxlY3RvckFsbCgiKiw6eCIpOwoJCQlyYnVnZ3lRU0Eu
cHVzaCgiLC4qOiIpOwoJCX0pOwoJfQoKCWlmICggKHN1cHBvcnQubWF0Y2hlc1NlbGVjdG9yID0g
cm5hdGl2ZS50ZXN0KCAobWF0Y2hlcyA9IGRvY0VsZW0ubWF0Y2hlcyB8fAoJCWRvY0VsZW0ud2Vi
a2l0TWF0Y2hlc1NlbGVjdG9yIHx8CgkJZG9jRWxlbS5tb3pNYXRjaGVzU2VsZWN0b3IgfHwKCQlk
b2NFbGVtLm9NYXRjaGVzU2VsZWN0b3IgfHwKCQlkb2NFbGVtLm1zTWF0Y2hlc1NlbGVjdG9yKSAp
KSApIHsKCgkJYXNzZXJ0KGZ1bmN0aW9uKCBkaXYgKSB7CgkJCS8vIENoZWNrIHRvIHNlZSBpZiBp
dCdzIHBvc3NpYmxlIHRvIGRvIG1hdGNoZXNTZWxlY3RvcgoJCQkvLyBvbiBhIGRpc2Nvbm5lY3Rl
ZCBub2RlIChJRSA5KQoJCQlzdXBwb3J0LmRpc2Nvbm5lY3RlZE1hdGNoID0gbWF0Y2hlcy5jYWxs
KCBkaXYsICJkaXYiICk7CgoJCQkvLyBUaGlzIHNob3VsZCBmYWlsIHdpdGggYW4gZXhjZXB0aW9u
CgkJCS8vIEdlY2tvIGRvZXMgbm90IGVycm9yLCByZXR1cm5zIGZhbHNlIGluc3RlYWQKCQkJbWF0
Y2hlcy5jYWxsKCBkaXYsICJbcyE9JyddOngiICk7CgkJCXJidWdneU1hdGNoZXMucHVzaCggIiE9
IiwgcHNldWRvcyApOwoJCX0pOwoJfQoKCXJidWdneVFTQSA9IHJidWdneVFTQS5sZW5ndGggJiYg
bmV3IFJlZ0V4cCggcmJ1Z2d5UVNBLmpvaW4oInwiKSApOwoJcmJ1Z2d5TWF0Y2hlcyA9IHJidWdn
eU1hdGNoZXMubGVuZ3RoICYmIG5ldyBSZWdFeHAoIHJidWdneU1hdGNoZXMuam9pbigifCIpICk7
CgoJLyogQ29udGFpbnMKCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KCWhhc0NvbXBhcmUgPSBybmF0aXZlLnRl
c3QoIGRvY0VsZW0uY29tcGFyZURvY3VtZW50UG9zaXRpb24gKTsKCgkvLyBFbGVtZW50IGNvbnRh
aW5zIGFub3RoZXIKCS8vIFB1cnBvc2VmdWxseSBkb2VzIG5vdCBpbXBsZW1lbnQgaW5jbHVzaXZl
IGRlc2NlbmRlbnQKCS8vIEFzIGluLCBhbiBlbGVtZW50IGRvZXMgbm90IGNvbnRhaW4gaXRzZWxm
Cgljb250YWlucyA9IGhhc0NvbXBhcmUgfHwgcm5hdGl2ZS50ZXN0KCBkb2NFbGVtLmNvbnRhaW5z
ICkgPwoJCWZ1bmN0aW9uKCBhLCBiICkgewoJCQl2YXIgYWRvd24gPSBhLm5vZGVUeXBlID09PSA5
ID8gYS5kb2N1bWVudEVsZW1lbnQgOiBhLAoJCQkJYnVwID0gYiAmJiBiLnBhcmVudE5vZGU7CgkJ
CXJldHVybiBhID09PSBidXAgfHwgISEoIGJ1cCAmJiBidXAubm9kZVR5cGUgPT09IDEgJiYgKAoJ
CQkJYWRvd24uY29udGFpbnMgPwoJCQkJCWFkb3duLmNvbnRhaW5zKCBidXAgKSA6CgkJCQkJYS5j
b21wYXJlRG9jdW1lbnRQb3NpdGlvbiAmJiBhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKCBidXAg
KSAmIDE2CgkJCSkpOwoJCX0gOgoJCWZ1bmN0aW9uKCBhLCBiICkgewoJCQlpZiAoIGIgKSB7CgkJ
CQl3aGlsZSAoIChiID0gYi5wYXJlbnROb2RlKSApIHsKCQkJCQlpZiAoIGIgPT09IGEgKSB7CgkJ
CQkJCXJldHVybiB0cnVlOwoJCQkJCX0KCQkJCX0KCQkJfQoJCQlyZXR1cm4gZmFsc2U7CgkJfTsK
CgkvKiBTb3J0aW5nCgktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCgoJLy8gRG9jdW1lbnQgb3JkZXIgc29ydGlu
ZwoJc29ydE9yZGVyID0gaGFzQ29tcGFyZSA/CglmdW5jdGlvbiggYSwgYiApIHsKCgkJLy8gRmxh
ZyBmb3IgZHVwbGljYXRlIHJlbW92YWwKCQlpZiAoIGEgPT09IGIgKSB7CgkJCWhhc0R1cGxpY2F0
ZSA9IHRydWU7CgkJCXJldHVybiAwOwoJCX0KCgkJLy8gU29ydCBvbiBtZXRob2QgZXhpc3RlbmNl
IGlmIG9ubHkgb25lIGlucHV0IGhhcyBjb21wYXJlRG9jdW1lbnRQb3NpdGlvbgoJCXZhciBjb21w
YXJlID0gIWEuY29tcGFyZURvY3VtZW50UG9zaXRpb24gLSAhYi5jb21wYXJlRG9jdW1lbnRQb3Np
dGlvbjsKCQlpZiAoIGNvbXBhcmUgKSB7CgkJCXJldHVybiBjb21wYXJlOwoJCX0KCgkJLy8gQ2Fs
Y3VsYXRlIHBvc2l0aW9uIGlmIGJvdGggaW5wdXRzIGJlbG9uZyB0byB0aGUgc2FtZSBkb2N1bWVu
dAoJCWNvbXBhcmUgPSAoIGEub3duZXJEb2N1bWVudCB8fCBhICkgPT09ICggYi5vd25lckRvY3Vt
ZW50IHx8IGIgKSA/CgkJCWEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oIGIgKSA6CgoJCQkvLyBP
dGhlcndpc2Ugd2Uga25vdyB0aGV5IGFyZSBkaXNjb25uZWN0ZWQKCQkJMTsKCgkJLy8gRGlzY29u
bmVjdGVkIG5vZGVzCgkJaWYgKCBjb21wYXJlICYgMSB8fAoJCQkoIXN1cHBvcnQuc29ydERldGFj
aGVkICYmIGIuY29tcGFyZURvY3VtZW50UG9zaXRpb24oIGEgKSA9PT0gY29tcGFyZSkgKSB7CgoJ
CQkvLyBDaG9vc2UgdGhlIGZpcnN0IGVsZW1lbnQgdGhhdCBpcyByZWxhdGVkIHRvIG91ciBwcmVm
ZXJyZWQgZG9jdW1lbnQKCQkJaWYgKCBhID09PSBkb2MgfHwgYS5vd25lckRvY3VtZW50ID09PSBw
cmVmZXJyZWREb2MgJiYgY29udGFpbnMocHJlZmVycmVkRG9jLCBhKSApIHsKCQkJCXJldHVybiAt
MTsKCQkJfQoJCQlpZiAoIGIgPT09IGRvYyB8fCBiLm93bmVyRG9jdW1lbnQgPT09IHByZWZlcnJl
ZERvYyAmJiBjb250YWlucyhwcmVmZXJyZWREb2MsIGIpICkgewoJCQkJcmV0dXJuIDE7CgkJCX0K
CgkJCS8vIE1haW50YWluIG9yaWdpbmFsIG9yZGVyCgkJCXJldHVybiBzb3J0SW5wdXQgPwoJCQkJ
KCBpbmRleE9mKCBzb3J0SW5wdXQsIGEgKSAtIGluZGV4T2YoIHNvcnRJbnB1dCwgYiApICkgOgoJ
CQkJMDsKCQl9CgoJCXJldHVybiBjb21wYXJlICYgNCA/IC0xIDogMTsKCX0gOgoJZnVuY3Rpb24o
IGEsIGIgKSB7CgkJLy8gRXhpdCBlYXJseSBpZiB0aGUgbm9kZXMgYXJlIGlkZW50aWNhbAoJCWlm
ICggYSA9PT0gYiApIHsKCQkJaGFzRHVwbGljYXRlID0gdHJ1ZTsKCQkJcmV0dXJuIDA7CgkJfQoK
CQl2YXIgY3VyLAoJCQlpID0gMCwKCQkJYXVwID0gYS5wYXJlbnROb2RlLAoJCQlidXAgPSBiLnBh
cmVudE5vZGUsCgkJCWFwID0gWyBhIF0sCgkJCWJwID0gWyBiIF07CgoJCS8vIFBhcmVudGxlc3Mg
bm9kZXMgYXJlIGVpdGhlciBkb2N1bWVudHMgb3IgZGlzY29ubmVjdGVkCgkJaWYgKCAhYXVwIHx8
ICFidXAgKSB7CgkJCXJldHVybiBhID09PSBkb2MgPyAtMSA6CgkJCQliID09PSBkb2MgPyAxIDoK
CQkJCWF1cCA/IC0xIDoKCQkJCWJ1cCA/IDEgOgoJCQkJc29ydElucHV0ID8KCQkJCSggaW5kZXhP
Ziggc29ydElucHV0LCBhICkgLSBpbmRleE9mKCBzb3J0SW5wdXQsIGIgKSApIDoKCQkJCTA7CgoJ
CS8vIElmIHRoZSBub2RlcyBhcmUgc2libGluZ3MsIHdlIGNhbiBkbyBhIHF1aWNrIGNoZWNrCgkJ
fSBlbHNlIGlmICggYXVwID09PSBidXAgKSB7CgkJCXJldHVybiBzaWJsaW5nQ2hlY2soIGEsIGIg
KTsKCQl9CgoJCS8vIE90aGVyd2lzZSB3ZSBuZWVkIGZ1bGwgbGlzdHMgb2YgdGhlaXIgYW5jZXN0
b3JzIGZvciBjb21wYXJpc29uCgkJY3VyID0gYTsKCQl3aGlsZSAoIChjdXIgPSBjdXIucGFyZW50
Tm9kZSkgKSB7CgkJCWFwLnVuc2hpZnQoIGN1ciApOwoJCX0KCQljdXIgPSBiOwoJCXdoaWxlICgg
KGN1ciA9IGN1ci5wYXJlbnROb2RlKSApIHsKCQkJYnAudW5zaGlmdCggY3VyICk7CgkJfQoKCQkv
LyBXYWxrIGRvd24gdGhlIHRyZWUgbG9va2luZyBmb3IgYSBkaXNjcmVwYW5jeQoJCXdoaWxlICgg
YXBbaV0gPT09IGJwW2ldICkgewoJCQlpKys7CgkJfQoKCQlyZXR1cm4gaSA/CgkJCS8vIERvIGEg
c2libGluZyBjaGVjayBpZiB0aGUgbm9kZXMgaGF2ZSBhIGNvbW1vbiBhbmNlc3RvcgoJCQlzaWJs
aW5nQ2hlY2soIGFwW2ldLCBicFtpXSApIDoKCgkJCS8vIE90aGVyd2lzZSBub2RlcyBpbiBvdXIg
ZG9jdW1lbnQgc29ydCBmaXJzdAoJCQlhcFtpXSA9PT0gcHJlZmVycmVkRG9jID8gLTEgOgoJCQli
cFtpXSA9PT0gcHJlZmVycmVkRG9jID8gMSA6CgkJCTA7Cgl9OwoKCXJldHVybiBkb2M7Cn07CgpT
aXp6bGUubWF0Y2hlcyA9IGZ1bmN0aW9uKCBleHByLCBlbGVtZW50cyApIHsKCXJldHVybiBTaXp6
bGUoIGV4cHIsIG51bGwsIG51bGwsIGVsZW1lbnRzICk7Cn07CgpTaXp6bGUubWF0Y2hlc1NlbGVj
dG9yID0gZnVuY3Rpb24oIGVsZW0sIGV4cHIgKSB7CgkvLyBTZXQgZG9jdW1lbnQgdmFycyBpZiBu
ZWVkZWQKCWlmICggKCBlbGVtLm93bmVyRG9jdW1lbnQgfHwgZWxlbSApICE9PSBkb2N1bWVudCAp
IHsKCQlzZXREb2N1bWVudCggZWxlbSApOwoJfQoKCS8vIE1ha2Ugc3VyZSB0aGF0IGF0dHJpYnV0
ZSBzZWxlY3RvcnMgYXJlIHF1b3RlZAoJZXhwciA9IGV4cHIucmVwbGFjZSggcmF0dHJpYnV0ZVF1
b3RlcywgIj0nJDEnXSIgKTsKCglpZiAoIHN1cHBvcnQubWF0Y2hlc1NlbGVjdG9yICYmIGRvY3Vt
ZW50SXNIVE1MICYmCgkJKCAhcmJ1Z2d5TWF0Y2hlcyB8fCAhcmJ1Z2d5TWF0Y2hlcy50ZXN0KCBl
eHByICkgKSAmJgoJCSggIXJidWdneVFTQSAgICAgfHwgIXJidWdneVFTQS50ZXN0KCBleHByICkg
KSApIHsKCgkJdHJ5IHsKCQkJdmFyIHJldCA9IG1hdGNoZXMuY2FsbCggZWxlbSwgZXhwciApOwoK
CQkJLy8gSUUgOSdzIG1hdGNoZXNTZWxlY3RvciByZXR1cm5zIGZhbHNlIG9uIGRpc2Nvbm5lY3Rl
ZCBub2RlcwoJCQlpZiAoIHJldCB8fCBzdXBwb3J0LmRpc2Nvbm5lY3RlZE1hdGNoIHx8CgkJCQkJ
Ly8gQXMgd2VsbCwgZGlzY29ubmVjdGVkIG5vZGVzIGFyZSBzYWlkIHRvIGJlIGluIGEgZG9jdW1l
bnQKCQkJCQkvLyBmcmFnbWVudCBpbiBJRSA5CgkJCQkJZWxlbS5kb2N1bWVudCAmJiBlbGVtLmRv
Y3VtZW50Lm5vZGVUeXBlICE9PSAxMSApIHsKCQkJCXJldHVybiByZXQ7CgkJCX0KCQl9IGNhdGNo
IChlKSB7fQoJfQoKCXJldHVybiBTaXp6bGUoIGV4cHIsIGRvY3VtZW50LCBudWxsLCBbIGVsZW0g
XSApLmxlbmd0aCA+IDA7Cn07CgpTaXp6bGUuY29udGFpbnMgPSBmdW5jdGlvbiggY29udGV4dCwg
ZWxlbSApIHsKCS8vIFNldCBkb2N1bWVudCB2YXJzIGlmIG5lZWRlZAoJaWYgKCAoIGNvbnRleHQu
b3duZXJEb2N1bWVudCB8fCBjb250ZXh0ICkgIT09IGRvY3VtZW50ICkgewoJCXNldERvY3VtZW50
KCBjb250ZXh0ICk7Cgl9CglyZXR1cm4gY29udGFpbnMoIGNvbnRleHQsIGVsZW0gKTsKfTsKClNp
enpsZS5hdHRyID0gZnVuY3Rpb24oIGVsZW0sIG5hbWUgKSB7CgkvLyBTZXQgZG9jdW1lbnQgdmFy
cyBpZiBuZWVkZWQKCWlmICggKCBlbGVtLm93bmVyRG9jdW1lbnQgfHwgZWxlbSApICE9PSBkb2N1
bWVudCApIHsKCQlzZXREb2N1bWVudCggZWxlbSApOwoJfQoKCXZhciBmbiA9IEV4cHIuYXR0ckhh
bmRsZVsgbmFtZS50b0xvd2VyQ2FzZSgpIF0sCgkJLy8gRG9uJ3QgZ2V0IGZvb2xlZCBieSBPYmpl
Y3QucHJvdG90eXBlIHByb3BlcnRpZXMgKGpRdWVyeSAjMTM4MDcpCgkJdmFsID0gZm4gJiYgaGFz
T3duLmNhbGwoIEV4cHIuYXR0ckhhbmRsZSwgbmFtZS50b0xvd2VyQ2FzZSgpICkgPwoJCQlmbigg
ZWxlbSwgbmFtZSwgIWRvY3VtZW50SXNIVE1MICkgOgoJCQl1bmRlZmluZWQ7CgoJcmV0dXJuIHZh
bCAhPT0gdW5kZWZpbmVkID8KCQl2YWwgOgoJCXN1cHBvcnQuYXR0cmlidXRlcyB8fCAhZG9jdW1l
bnRJc0hUTUwgPwoJCQllbGVtLmdldEF0dHJpYnV0ZSggbmFtZSApIDoKCQkJKHZhbCA9IGVsZW0u
Z2V0QXR0cmlidXRlTm9kZShuYW1lKSkgJiYgdmFsLnNwZWNpZmllZCA/CgkJCQl2YWwudmFsdWUg
OgoJCQkJbnVsbDsKfTsKClNpenpsZS5lcnJvciA9IGZ1bmN0aW9uKCBtc2cgKSB7Cgl0aHJvdyBu
ZXcgRXJyb3IoICJTeW50YXggZXJyb3IsIHVucmVjb2duaXplZCBleHByZXNzaW9uOiAiICsgbXNn
ICk7Cn07CgovKioKICogRG9jdW1lbnQgc29ydGluZyBhbmQgcmVtb3ZpbmcgZHVwbGljYXRlcwog
KiBAcGFyYW0ge0FycmF5TGlrZX0gcmVzdWx0cwogKi8KU2l6emxlLnVuaXF1ZVNvcnQgPSBmdW5j
dGlvbiggcmVzdWx0cyApIHsKCXZhciBlbGVtLAoJCWR1cGxpY2F0ZXMgPSBbXSwKCQlqID0gMCwK
CQlpID0gMDsKCgkvLyBVbmxlc3Mgd2UgKmtub3cqIHdlIGNhbiBkZXRlY3QgZHVwbGljYXRlcywg
YXNzdW1lIHRoZWlyIHByZXNlbmNlCgloYXNEdXBsaWNhdGUgPSAhc3VwcG9ydC5kZXRlY3REdXBs
aWNhdGVzOwoJc29ydElucHV0ID0gIXN1cHBvcnQuc29ydFN0YWJsZSAmJiByZXN1bHRzLnNsaWNl
KCAwICk7CglyZXN1bHRzLnNvcnQoIHNvcnRPcmRlciApOwoKCWlmICggaGFzRHVwbGljYXRlICkg
ewoJCXdoaWxlICggKGVsZW0gPSByZXN1bHRzW2krK10pICkgewoJCQlpZiAoIGVsZW0gPT09IHJl
c3VsdHNbIGkgXSApIHsKCQkJCWogPSBkdXBsaWNhdGVzLnB1c2goIGkgKTsKCQkJfQoJCX0KCQl3
aGlsZSAoIGotLSApIHsKCQkJcmVzdWx0cy5zcGxpY2UoIGR1cGxpY2F0ZXNbIGogXSwgMSApOwoJ
CX0KCX0KCgkvLyBDbGVhciBpbnB1dCBhZnRlciBzb3J0aW5nIHRvIHJlbGVhc2Ugb2JqZWN0cwoJ
Ly8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9qcXVlcnkvc2l6emxlL3B1bGwvMjI1Cglzb3J0SW5w
dXQgPSBudWxsOwoKCXJldHVybiByZXN1bHRzOwp9OwoKLyoqCiAqIFV0aWxpdHkgZnVuY3Rpb24g
Zm9yIHJldHJpZXZpbmcgdGhlIHRleHQgdmFsdWUgb2YgYW4gYXJyYXkgb2YgRE9NIG5vZGVzCiAq
IEBwYXJhbSB7QXJyYXl8RWxlbWVudH0gZWxlbQogKi8KZ2V0VGV4dCA9IFNpenpsZS5nZXRUZXh0
ID0gZnVuY3Rpb24oIGVsZW0gKSB7Cgl2YXIgbm9kZSwKCQlyZXQgPSAiIiwKCQlpID0gMCwKCQlu
b2RlVHlwZSA9IGVsZW0ubm9kZVR5cGU7CgoJaWYgKCAhbm9kZVR5cGUgKSB7CgkJLy8gSWYgbm8g
bm9kZVR5cGUsIHRoaXMgaXMgZXhwZWN0ZWQgdG8gYmUgYW4gYXJyYXkKCQl3aGlsZSAoIChub2Rl
ID0gZWxlbVtpKytdKSApIHsKCQkJLy8gRG8gbm90IHRyYXZlcnNlIGNvbW1lbnQgbm9kZXMKCQkJ
cmV0ICs9IGdldFRleHQoIG5vZGUgKTsKCQl9Cgl9IGVsc2UgaWYgKCBub2RlVHlwZSA9PT0gMSB8
fCBub2RlVHlwZSA9PT0gOSB8fCBub2RlVHlwZSA9PT0gMTEgKSB7CgkJLy8gVXNlIHRleHRDb250
ZW50IGZvciBlbGVtZW50cwoJCS8vIGlubmVyVGV4dCB1c2FnZSByZW1vdmVkIGZvciBjb25zaXN0
ZW5jeSBvZiBuZXcgbGluZXMgKGpRdWVyeSAjMTExNTMpCgkJaWYgKCB0eXBlb2YgZWxlbS50ZXh0
Q29udGVudCA9PT0gInN0cmluZyIgKSB7CgkJCXJldHVybiBlbGVtLnRleHRDb250ZW50OwoJCX0g
ZWxzZSB7CgkJCS8vIFRyYXZlcnNlIGl0cyBjaGlsZHJlbgoJCQlmb3IgKCBlbGVtID0gZWxlbS5m
aXJzdENoaWxkOyBlbGVtOyBlbGVtID0gZWxlbS5uZXh0U2libGluZyApIHsKCQkJCXJldCArPSBn
ZXRUZXh0KCBlbGVtICk7CgkJCX0KCQl9Cgl9IGVsc2UgaWYgKCBub2RlVHlwZSA9PT0gMyB8fCBu
b2RlVHlwZSA9PT0gNCApIHsKCQlyZXR1cm4gZWxlbS5ub2RlVmFsdWU7Cgl9CgkvLyBEbyBub3Qg
aW5jbHVkZSBjb21tZW50IG9yIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24gbm9kZXMKCglyZXR1cm4g
cmV0Owp9OwoKRXhwciA9IFNpenpsZS5zZWxlY3RvcnMgPSB7CgoJLy8gQ2FuIGJlIGFkanVzdGVk
IGJ5IHRoZSB1c2VyCgljYWNoZUxlbmd0aDogNTAsCgoJY3JlYXRlUHNldWRvOiBtYXJrRnVuY3Rp
b24sCgoJbWF0Y2g6IG1hdGNoRXhwciwKCglhdHRySGFuZGxlOiB7fSwKCglmaW5kOiB7fSwKCgly
ZWxhdGl2ZTogewoJCSI+IjogeyBkaXI6ICJwYXJlbnROb2RlIiwgZmlyc3Q6IHRydWUgfSwKCQki
ICI6IHsgZGlyOiAicGFyZW50Tm9kZSIgfSwKCQkiKyI6IHsgZGlyOiAicHJldmlvdXNTaWJsaW5n
IiwgZmlyc3Q6IHRydWUgfSwKCQkifiI6IHsgZGlyOiAicHJldmlvdXNTaWJsaW5nIiB9Cgl9LAoK
CXByZUZpbHRlcjogewoJCSJBVFRSIjogZnVuY3Rpb24oIG1hdGNoICkgewoJCQltYXRjaFsxXSA9
IG1hdGNoWzFdLnJlcGxhY2UoIHJ1bmVzY2FwZSwgZnVuZXNjYXBlICk7CgoJCQkvLyBNb3ZlIHRo
ZSBnaXZlbiB2YWx1ZSB0byBtYXRjaFszXSB3aGV0aGVyIHF1b3RlZCBvciB1bnF1b3RlZAoJCQlt
YXRjaFszXSA9ICggbWF0Y2hbM10gfHwgbWF0Y2hbNF0gfHwgbWF0Y2hbNV0gfHwgIiIgKS5yZXBs
YWNlKCBydW5lc2NhcGUsIGZ1bmVzY2FwZSApOwoKCQkJaWYgKCBtYXRjaFsyXSA9PT0gIn49IiAp
IHsKCQkJCW1hdGNoWzNdID0gIiAiICsgbWF0Y2hbM10gKyAiICI7CgkJCX0KCgkJCXJldHVybiBt
YXRjaC5zbGljZSggMCwgNCApOwoJCX0sCgoJCSJDSElMRCI6IGZ1bmN0aW9uKCBtYXRjaCApIHsK
CQkJLyogbWF0Y2hlcyBmcm9tIG1hdGNoRXhwclsiQ0hJTEQiXQoJCQkJMSB0eXBlIChvbmx5fG50
aHwuLi4pCgkJCQkyIHdoYXQgKGNoaWxkfG9mLXR5cGUpCgkJCQkzIGFyZ3VtZW50IChldmVufG9k
ZHxcZCp8XGQqbihbKy1dXGQrKT98Li4uKQoJCQkJNCB4bi1jb21wb25lbnQgb2YgeG4reSBhcmd1
bWVudCAoWystXT9cZCpufCkKCQkJCTUgc2lnbiBvZiB4bi1jb21wb25lbnQKCQkJCTYgeCBvZiB4
bi1jb21wb25lbnQKCQkJCTcgc2lnbiBvZiB5LWNvbXBvbmVudAoJCQkJOCB5IG9mIHktY29tcG9u
ZW50CgkJCSovCgkJCW1hdGNoWzFdID0gbWF0Y2hbMV0udG9Mb3dlckNhc2UoKTsKCgkJCWlmICgg
bWF0Y2hbMV0uc2xpY2UoIDAsIDMgKSA9PT0gIm50aCIgKSB7CgkJCQkvLyBudGgtKiByZXF1aXJl
cyBhcmd1bWVudAoJCQkJaWYgKCAhbWF0Y2hbM10gKSB7CgkJCQkJU2l6emxlLmVycm9yKCBtYXRj
aFswXSApOwoJCQkJfQoKCQkJCS8vIG51bWVyaWMgeCBhbmQgeSBwYXJhbWV0ZXJzIGZvciBFeHBy
LmZpbHRlci5DSElMRAoJCQkJLy8gcmVtZW1iZXIgdGhhdCBmYWxzZS90cnVlIGNhc3QgcmVzcGVj
dGl2ZWx5IHRvIDAvMQoJCQkJbWF0Y2hbNF0gPSArKCBtYXRjaFs0XSA/IG1hdGNoWzVdICsgKG1h
dGNoWzZdIHx8IDEpIDogMiAqICggbWF0Y2hbM10gPT09ICJldmVuIiB8fCBtYXRjaFszXSA9PT0g
Im9kZCIgKSApOwoJCQkJbWF0Y2hbNV0gPSArKCAoIG1hdGNoWzddICsgbWF0Y2hbOF0gKSB8fCBt
YXRjaFszXSA9PT0gIm9kZCIgKTsKCgkJCS8vIG90aGVyIHR5cGVzIHByb2hpYml0IGFyZ3VtZW50
cwoJCQl9IGVsc2UgaWYgKCBtYXRjaFszXSApIHsKCQkJCVNpenpsZS5lcnJvciggbWF0Y2hbMF0g
KTsKCQkJfQoKCQkJcmV0dXJuIG1hdGNoOwoJCX0sCgoJCSJQU0VVRE8iOiBmdW5jdGlvbiggbWF0
Y2ggKSB7CgkJCXZhciBleGNlc3MsCgkJCQl1bnF1b3RlZCA9ICFtYXRjaFs2XSAmJiBtYXRjaFsy
XTsKCgkJCWlmICggbWF0Y2hFeHByWyJDSElMRCJdLnRlc3QoIG1hdGNoWzBdICkgKSB7CgkJCQly
ZXR1cm4gbnVsbDsKCQkJfQoKCQkJLy8gQWNjZXB0IHF1b3RlZCBhcmd1bWVudHMgYXMtaXMKCQkJ
aWYgKCBtYXRjaFszXSApIHsKCQkJCW1hdGNoWzJdID0gbWF0Y2hbNF0gfHwgbWF0Y2hbNV0gfHwg
IiI7CgoJCQkvLyBTdHJpcCBleGNlc3MgY2hhcmFjdGVycyBmcm9tIHVucXVvdGVkIGFyZ3VtZW50
cwoJCQl9IGVsc2UgaWYgKCB1bnF1b3RlZCAmJiBycHNldWRvLnRlc3QoIHVucXVvdGVkICkgJiYK
CQkJCS8vIEdldCBleGNlc3MgZnJvbSB0b2tlbml6ZSAocmVjdXJzaXZlbHkpCgkJCQkoZXhjZXNz
ID0gdG9rZW5pemUoIHVucXVvdGVkLCB0cnVlICkpICYmCgkJCQkvLyBhZHZhbmNlIHRvIHRoZSBu
ZXh0IGNsb3NpbmcgcGFyZW50aGVzaXMKCQkJCShleGNlc3MgPSB1bnF1b3RlZC5pbmRleE9mKCAi
KSIsIHVucXVvdGVkLmxlbmd0aCAtIGV4Y2VzcyApIC0gdW5xdW90ZWQubGVuZ3RoKSApIHsKCgkJ
CQkvLyBleGNlc3MgaXMgYSBuZWdhdGl2ZSBpbmRleAoJCQkJbWF0Y2hbMF0gPSBtYXRjaFswXS5z
bGljZSggMCwgZXhjZXNzICk7CgkJCQltYXRjaFsyXSA9IHVucXVvdGVkLnNsaWNlKCAwLCBleGNl
c3MgKTsKCQkJfQoKCQkJLy8gUmV0dXJuIG9ubHkgY2FwdHVyZXMgbmVlZGVkIGJ5IHRoZSBwc2V1
ZG8gZmlsdGVyIG1ldGhvZCAodHlwZSBhbmQgYXJndW1lbnQpCgkJCXJldHVybiBtYXRjaC5zbGlj
ZSggMCwgMyApOwoJCX0KCX0sCgoJZmlsdGVyOiB7CgoJCSJUQUciOiBmdW5jdGlvbiggbm9kZU5h
bWVTZWxlY3RvciApIHsKCQkJdmFyIG5vZGVOYW1lID0gbm9kZU5hbWVTZWxlY3Rvci5yZXBsYWNl
KCBydW5lc2NhcGUsIGZ1bmVzY2FwZSApLnRvTG93ZXJDYXNlKCk7CgkJCXJldHVybiBub2RlTmFt
ZVNlbGVjdG9yID09PSAiKiIgPwoJCQkJZnVuY3Rpb24oKSB7IHJldHVybiB0cnVlOyB9IDoKCQkJ
CWZ1bmN0aW9uKCBlbGVtICkgewoJCQkJCXJldHVybiBlbGVtLm5vZGVOYW1lICYmIGVsZW0ubm9k
ZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gbm9kZU5hbWU7CgkJCQl9OwoJCX0sCgoJCSJDTEFTUyI6
IGZ1bmN0aW9uKCBjbGFzc05hbWUgKSB7CgkJCXZhciBwYXR0ZXJuID0gY2xhc3NDYWNoZVsgY2xh
c3NOYW1lICsgIiAiIF07CgoJCQlyZXR1cm4gcGF0dGVybiB8fAoJCQkJKHBhdHRlcm4gPSBuZXcg
UmVnRXhwKCAiKF58IiArIHdoaXRlc3BhY2UgKyAiKSIgKyBjbGFzc05hbWUgKyAiKCIgKyB3aGl0
ZXNwYWNlICsgInwkKSIgKSkgJiYKCQkJCWNsYXNzQ2FjaGUoIGNsYXNzTmFtZSwgZnVuY3Rpb24o
IGVsZW0gKSB7CgkJCQkJcmV0dXJuIHBhdHRlcm4udGVzdCggdHlwZW9mIGVsZW0uY2xhc3NOYW1l
ID09PSAic3RyaW5nIiAmJiBlbGVtLmNsYXNzTmFtZSB8fCB0eXBlb2YgZWxlbS5nZXRBdHRyaWJ1
dGUgIT09ICJ1bmRlZmluZWQiICYmIGVsZW0uZ2V0QXR0cmlidXRlKCJjbGFzcyIpIHx8ICIiICk7
CgkJCQl9KTsKCQl9LAoKCQkiQVRUUiI6IGZ1bmN0aW9uKCBuYW1lLCBvcGVyYXRvciwgY2hlY2sg
KSB7CgkJCXJldHVybiBmdW5jdGlvbiggZWxlbSApIHsKCQkJCXZhciByZXN1bHQgPSBTaXp6bGUu
YXR0ciggZWxlbSwgbmFtZSApOwoKCQkJCWlmICggcmVzdWx0ID09IG51bGwgKSB7CgkJCQkJcmV0
dXJuIG9wZXJhdG9yID09PSAiIT0iOwoJCQkJfQoJCQkJaWYgKCAhb3BlcmF0b3IgKSB7CgkJCQkJ
cmV0dXJuIHRydWU7CgkJCQl9CgoJCQkJcmVzdWx0ICs9ICIiOwoKCQkJCXJldHVybiBvcGVyYXRv
ciA9PT0gIj0iID8gcmVzdWx0ID09PSBjaGVjayA6CgkJCQkJb3BlcmF0b3IgPT09ICIhPSIgPyBy
ZXN1bHQgIT09IGNoZWNrIDoKCQkJCQlvcGVyYXRvciA9PT0gIl49IiA/IGNoZWNrICYmIHJlc3Vs
dC5pbmRleE9mKCBjaGVjayApID09PSAwIDoKCQkJCQlvcGVyYXRvciA9PT0gIio9IiA/IGNoZWNr
ICYmIHJlc3VsdC5pbmRleE9mKCBjaGVjayApID4gLTEgOgoJCQkJCW9wZXJhdG9yID09PSAiJD0i
ID8gY2hlY2sgJiYgcmVzdWx0LnNsaWNlKCAtY2hlY2subGVuZ3RoICkgPT09IGNoZWNrIDoKCQkJ
CQlvcGVyYXRvciA9PT0gIn49IiA/ICggIiAiICsgcmVzdWx0LnJlcGxhY2UoIHJ3aGl0ZXNwYWNl
LCAiICIgKSArICIgIiApLmluZGV4T2YoIGNoZWNrICkgPiAtMSA6CgkJCQkJb3BlcmF0b3IgPT09
ICJ8PSIgPyByZXN1bHQgPT09IGNoZWNrIHx8IHJlc3VsdC5zbGljZSggMCwgY2hlY2subGVuZ3Ro
ICsgMSApID09PSBjaGVjayArICItIiA6CgkJCQkJZmFsc2U7CgkJCX07CgkJfSwKCgkJIkNISUxE
IjogZnVuY3Rpb24oIHR5cGUsIHdoYXQsIGFyZ3VtZW50LCBmaXJzdCwgbGFzdCApIHsKCQkJdmFy
IHNpbXBsZSA9IHR5cGUuc2xpY2UoIDAsIDMgKSAhPT0gIm50aCIsCgkJCQlmb3J3YXJkID0gdHlw
ZS5zbGljZSggLTQgKSAhPT0gImxhc3QiLAoJCQkJb2ZUeXBlID0gd2hhdCA9PT0gIm9mLXR5cGUi
OwoKCQkJcmV0dXJuIGZpcnN0ID09PSAxICYmIGxhc3QgPT09IDAgPwoKCQkJCS8vIFNob3J0Y3V0
IGZvciA6bnRoLSoobikKCQkJCWZ1bmN0aW9uKCBlbGVtICkgewoJCQkJCXJldHVybiAhIWVsZW0u
cGFyZW50Tm9kZTsKCQkJCX0gOgoKCQkJCWZ1bmN0aW9uKCBlbGVtLCBjb250ZXh0LCB4bWwgKSB7
CgkJCQkJdmFyIGNhY2hlLCBvdXRlckNhY2hlLCBub2RlLCBkaWZmLCBub2RlSW5kZXgsIHN0YXJ0
LAoJCQkJCQlkaXIgPSBzaW1wbGUgIT09IGZvcndhcmQgPyAibmV4dFNpYmxpbmciIDogInByZXZp
b3VzU2libGluZyIsCgkJCQkJCXBhcmVudCA9IGVsZW0ucGFyZW50Tm9kZSwKCQkJCQkJbmFtZSA9
IG9mVHlwZSAmJiBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksCgkJCQkJCXVzZUNhY2hlID0g
IXhtbCAmJiAhb2ZUeXBlOwoKCQkJCQlpZiAoIHBhcmVudCApIHsKCgkJCQkJCS8vIDooZmlyc3R8
bGFzdHxvbmx5KS0oY2hpbGR8b2YtdHlwZSkKCQkJCQkJaWYgKCBzaW1wbGUgKSB7CgkJCQkJCQl3
aGlsZSAoIGRpciApIHsKCQkJCQkJCQlub2RlID0gZWxlbTsKCQkJCQkJCQl3aGlsZSAoIChub2Rl
ID0gbm9kZVsgZGlyIF0pICkgewoJCQkJCQkJCQlpZiAoIG9mVHlwZSA/IG5vZGUubm9kZU5hbWUu
dG9Mb3dlckNhc2UoKSA9PT0gbmFtZSA6IG5vZGUubm9kZVR5cGUgPT09IDEgKSB7CgkJCQkJCQkJ
CQlyZXR1cm4gZmFsc2U7CgkJCQkJCQkJCX0KCQkJCQkJCQl9CgkJCQkJCQkJLy8gUmV2ZXJzZSBk
aXJlY3Rpb24gZm9yIDpvbmx5LSogKGlmIHdlIGhhdmVuJ3QgeWV0IGRvbmUgc28pCgkJCQkJCQkJ
c3RhcnQgPSBkaXIgPSB0eXBlID09PSAib25seSIgJiYgIXN0YXJ0ICYmICJuZXh0U2libGluZyI7
CgkJCQkJCQl9CgkJCQkJCQlyZXR1cm4gdHJ1ZTsKCQkJCQkJfQoKCQkJCQkJc3RhcnQgPSBbIGZv
cndhcmQgPyBwYXJlbnQuZmlyc3RDaGlsZCA6IHBhcmVudC5sYXN0Q2hpbGQgXTsKCgkJCQkJCS8v
IG5vbi14bWwgOm50aC1jaGlsZCguLi4pIHN0b3JlcyBjYWNoZSBkYXRhIG9uIGBwYXJlbnRgCgkJ
CQkJCWlmICggZm9yd2FyZCAmJiB1c2VDYWNoZSApIHsKCQkJCQkJCS8vIFNlZWsgYGVsZW1gIGZy
b20gYSBwcmV2aW91c2x5LWNhY2hlZCBpbmRleAoJCQkJCQkJb3V0ZXJDYWNoZSA9IHBhcmVudFsg
ZXhwYW5kbyBdIHx8IChwYXJlbnRbIGV4cGFuZG8gXSA9IHt9KTsKCQkJCQkJCWNhY2hlID0gb3V0
ZXJDYWNoZVsgdHlwZSBdIHx8IFtdOwoJCQkJCQkJbm9kZUluZGV4ID0gY2FjaGVbMF0gPT09IGRp
cnJ1bnMgJiYgY2FjaGVbMV07CgkJCQkJCQlkaWZmID0gY2FjaGVbMF0gPT09IGRpcnJ1bnMgJiYg
Y2FjaGVbMl07CgkJCQkJCQlub2RlID0gbm9kZUluZGV4ICYmIHBhcmVudC5jaGlsZE5vZGVzWyBu
b2RlSW5kZXggXTsKCgkJCQkJCQl3aGlsZSAoIChub2RlID0gKytub2RlSW5kZXggJiYgbm9kZSAm
JiBub2RlWyBkaXIgXSB8fAoKCQkJCQkJCQkvLyBGYWxsYmFjayB0byBzZWVraW5nIGBlbGVtYCBm
cm9tIHRoZSBzdGFydAoJCQkJCQkJCShkaWZmID0gbm9kZUluZGV4ID0gMCkgfHwgc3RhcnQucG9w
KCkpICkgewoKCQkJCQkJCQkvLyBXaGVuIGZvdW5kLCBjYWNoZSBpbmRleGVzIG9uIGBwYXJlbnRg
IGFuZCBicmVhawoJCQkJCQkJCWlmICggbm9kZS5ub2RlVHlwZSA9PT0gMSAmJiArK2RpZmYgJiYg
bm9kZSA9PT0gZWxlbSApIHsKCQkJCQkJCQkJb3V0ZXJDYWNoZVsgdHlwZSBdID0gWyBkaXJydW5z
LCBub2RlSW5kZXgsIGRpZmYgXTsKCQkJCQkJCQkJYnJlYWs7CgkJCQkJCQkJfQoJCQkJCQkJfQoK
CQkJCQkJLy8gVXNlIHByZXZpb3VzbHktY2FjaGVkIGVsZW1lbnQgaW5kZXggaWYgYXZhaWxhYmxl
CgkJCQkJCX0gZWxzZSBpZiAoIHVzZUNhY2hlICYmIChjYWNoZSA9IChlbGVtWyBleHBhbmRvIF0g
fHwgKGVsZW1bIGV4cGFuZG8gXSA9IHt9KSlbIHR5cGUgXSkgJiYgY2FjaGVbMF0gPT09IGRpcnJ1
bnMgKSB7CgkJCQkJCQlkaWZmID0gY2FjaGVbMV07CgoJCQkJCQkvLyB4bWwgOm50aC1jaGlsZCgu
Li4pIG9yIDpudGgtbGFzdC1jaGlsZCguLi4pIG9yIDpudGgoLWxhc3QpPy1vZi10eXBlKC4uLikK
CQkJCQkJfSBlbHNlIHsKCQkJCQkJCS8vIFVzZSB0aGUgc2FtZSBsb29wIGFzIGFib3ZlIHRvIHNl
ZWsgYGVsZW1gIGZyb20gdGhlIHN0YXJ0CgkJCQkJCQl3aGlsZSAoIChub2RlID0gKytub2RlSW5k
ZXggJiYgbm9kZSAmJiBub2RlWyBkaXIgXSB8fAoJCQkJCQkJCShkaWZmID0gbm9kZUluZGV4ID0g
MCkgfHwgc3RhcnQucG9wKCkpICkgewoKCQkJCQkJCQlpZiAoICggb2ZUeXBlID8gbm9kZS5ub2Rl
TmFtZS50b0xvd2VyQ2FzZSgpID09PSBuYW1lIDogbm9kZS5ub2RlVHlwZSA9PT0gMSApICYmICsr
ZGlmZiApIHsKCQkJCQkJCQkJLy8gQ2FjaGUgdGhlIGluZGV4IG9mIGVhY2ggZW5jb3VudGVyZWQg
ZWxlbWVudAoJCQkJCQkJCQlpZiAoIHVzZUNhY2hlICkgewoJCQkJCQkJCQkJKG5vZGVbIGV4cGFu
ZG8gXSB8fCAobm9kZVsgZXhwYW5kbyBdID0ge30pKVsgdHlwZSBdID0gWyBkaXJydW5zLCBkaWZm
IF07CgkJCQkJCQkJCX0KCgkJCQkJCQkJCWlmICggbm9kZSA9PT0gZWxlbSApIHsKCQkJCQkJCQkJ
CWJyZWFrOwoJCQkJCQkJCQl9CgkJCQkJCQkJfQoJCQkJCQkJfQoJCQkJCQl9CgoJCQkJCQkvLyBJ
bmNvcnBvcmF0ZSB0aGUgb2Zmc2V0LCB0aGVuIGNoZWNrIGFnYWluc3QgY3ljbGUgc2l6ZQoJCQkJ
CQlkaWZmIC09IGxhc3Q7CgkJCQkJCXJldHVybiBkaWZmID09PSBmaXJzdCB8fCAoIGRpZmYgJSBm
aXJzdCA9PT0gMCAmJiBkaWZmIC8gZmlyc3QgPj0gMCApOwoJCQkJCX0KCQkJCX07CgkJfSwKCgkJ
IlBTRVVETyI6IGZ1bmN0aW9uKCBwc2V1ZG8sIGFyZ3VtZW50ICkgewoJCQkvLyBwc2V1ZG8tY2xh
c3MgbmFtZXMgYXJlIGNhc2UtaW5zZW5zaXRpdmUKCQkJLy8gaHR0cDovL3d3dy53My5vcmcvVFIv
c2VsZWN0b3JzLyNwc2V1ZG8tY2xhc3NlcwoJCQkvLyBQcmlvcml0aXplIGJ5IGNhc2Ugc2Vuc2l0
aXZpdHkgaW4gY2FzZSBjdXN0b20gcHNldWRvcyBhcmUgYWRkZWQgd2l0aCB1cHBlcmNhc2UgbGV0
dGVycwoJCQkvLyBSZW1lbWJlciB0aGF0IHNldEZpbHRlcnMgaW5oZXJpdHMgZnJvbSBwc2V1ZG9z
CgkJCXZhciBhcmdzLAoJCQkJZm4gPSBFeHByLnBzZXVkb3NbIHBzZXVkbyBdIHx8IEV4cHIuc2V0
RmlsdGVyc1sgcHNldWRvLnRvTG93ZXJDYXNlKCkgXSB8fAoJCQkJCVNpenpsZS5lcnJvciggInVu
c3VwcG9ydGVkIHBzZXVkbzogIiArIHBzZXVkbyApOwoKCQkJLy8gVGhlIHVzZXIgbWF5IHVzZSBj
cmVhdGVQc2V1ZG8gdG8gaW5kaWNhdGUgdGhhdAoJCQkvLyBhcmd1bWVudHMgYXJlIG5lZWRlZCB0
byBjcmVhdGUgdGhlIGZpbHRlciBmdW5jdGlvbgoJCQkvLyBqdXN0IGFzIFNpenpsZSBkb2VzCgkJ
CWlmICggZm5bIGV4cGFuZG8gXSApIHsKCQkJCXJldHVybiBmbiggYXJndW1lbnQgKTsKCQkJfQoK
CQkJLy8gQnV0IG1haW50YWluIHN1cHBvcnQgZm9yIG9sZCBzaWduYXR1cmVzCgkJCWlmICggZm4u
bGVuZ3RoID4gMSApIHsKCQkJCWFyZ3MgPSBbIHBzZXVkbywgcHNldWRvLCAiIiwgYXJndW1lbnQg
XTsKCQkJCXJldHVybiBFeHByLnNldEZpbHRlcnMuaGFzT3duUHJvcGVydHkoIHBzZXVkby50b0xv
d2VyQ2FzZSgpICkgPwoJCQkJCW1hcmtGdW5jdGlvbihmdW5jdGlvbiggc2VlZCwgbWF0Y2hlcyAp
IHsKCQkJCQkJdmFyIGlkeCwKCQkJCQkJCW1hdGNoZWQgPSBmbiggc2VlZCwgYXJndW1lbnQgKSwK
CQkJCQkJCWkgPSBtYXRjaGVkLmxlbmd0aDsKCQkJCQkJd2hpbGUgKCBpLS0gKSB7CgkJCQkJCQlp
ZHggPSBpbmRleE9mKCBzZWVkLCBtYXRjaGVkW2ldICk7CgkJCQkJCQlzZWVkWyBpZHggXSA9ICEo
IG1hdGNoZXNbIGlkeCBdID0gbWF0Y2hlZFtpXSApOwoJCQkJCQl9CgkJCQkJfSkgOgoJCQkJCWZ1
bmN0aW9uKCBlbGVtICkgewoJCQkJCQlyZXR1cm4gZm4oIGVsZW0sIDAsIGFyZ3MgKTsKCQkJCQl9
OwoJCQl9CgoJCQlyZXR1cm4gZm47CgkJfQoJfSwKCglwc2V1ZG9zOiB7CgkJLy8gUG90ZW50aWFs
bHkgY29tcGxleCBwc2V1ZG9zCgkJIm5vdCI6IG1hcmtGdW5jdGlvbihmdW5jdGlvbiggc2VsZWN0
b3IgKSB7CgkJCS8vIFRyaW0gdGhlIHNlbGVjdG9yIHBhc3NlZCB0byBjb21waWxlCgkJCS8vIHRv
IGF2b2lkIHRyZWF0aW5nIGxlYWRpbmcgYW5kIHRyYWlsaW5nCgkJCS8vIHNwYWNlcyBhcyBjb21i
aW5hdG9ycwoJCQl2YXIgaW5wdXQgPSBbXSwKCQkJCXJlc3VsdHMgPSBbXSwKCQkJCW1hdGNoZXIg
PSBjb21waWxlKCBzZWxlY3Rvci5yZXBsYWNlKCBydHJpbSwgIiQxIiApICk7CgoJCQlyZXR1cm4g
bWF0Y2hlclsgZXhwYW5kbyBdID8KCQkJCW1hcmtGdW5jdGlvbihmdW5jdGlvbiggc2VlZCwgbWF0
Y2hlcywgY29udGV4dCwgeG1sICkgewoJCQkJCXZhciBlbGVtLAoJCQkJCQl1bm1hdGNoZWQgPSBt
YXRjaGVyKCBzZWVkLCBudWxsLCB4bWwsIFtdICksCgkJCQkJCWkgPSBzZWVkLmxlbmd0aDsKCgkJ
CQkJLy8gTWF0Y2ggZWxlbWVudHMgdW5tYXRjaGVkIGJ5IGBtYXRjaGVyYAoJCQkJCXdoaWxlICgg
aS0tICkgewoJCQkJCQlpZiAoIChlbGVtID0gdW5tYXRjaGVkW2ldKSApIHsKCQkJCQkJCXNlZWRb
aV0gPSAhKG1hdGNoZXNbaV0gPSBlbGVtKTsKCQkJCQkJfQoJCQkJCX0KCQkJCX0pIDoKCQkJCWZ1
bmN0aW9uKCBlbGVtLCBjb250ZXh0LCB4bWwgKSB7CgkJCQkJaW5wdXRbMF0gPSBlbGVtOwoJCQkJ
CW1hdGNoZXIoIGlucHV0LCBudWxsLCB4bWwsIHJlc3VsdHMgKTsKCQkJCQkvLyBEb24ndCBrZWVw
IHRoZSBlbGVtZW50IChpc3N1ZSAjMjk5KQoJCQkJCWlucHV0WzBdID0gbnVsbDsKCQkJCQlyZXR1
cm4gIXJlc3VsdHMucG9wKCk7CgkJCQl9OwoJCX0pLAoKCQkiaGFzIjogbWFya0Z1bmN0aW9uKGZ1
bmN0aW9uKCBzZWxlY3RvciApIHsKCQkJcmV0dXJuIGZ1bmN0aW9uKCBlbGVtICkgewoJCQkJcmV0
dXJuIFNpenpsZSggc2VsZWN0b3IsIGVsZW0gKS5sZW5ndGggPiAwOwoJCQl9OwoJCX0pLAoKCQki
Y29udGFpbnMiOiBtYXJrRnVuY3Rpb24oZnVuY3Rpb24oIHRleHQgKSB7CgkJCXRleHQgPSB0ZXh0
LnJlcGxhY2UoIHJ1bmVzY2FwZSwgZnVuZXNjYXBlICk7CgkJCXJldHVybiBmdW5jdGlvbiggZWxl
bSApIHsKCQkJCXJldHVybiAoIGVsZW0udGV4dENvbnRlbnQgfHwgZWxlbS5pbm5lclRleHQgfHwg
Z2V0VGV4dCggZWxlbSApICkuaW5kZXhPZiggdGV4dCApID4gLTE7CgkJCX07CgkJfSksCgoJCS8v
ICJXaGV0aGVyIGFuIGVsZW1lbnQgaXMgcmVwcmVzZW50ZWQgYnkgYSA6bGFuZygpIHNlbGVjdG9y
CgkJLy8gaXMgYmFzZWQgc29sZWx5IG9uIHRoZSBlbGVtZW50J3MgbGFuZ3VhZ2UgdmFsdWUKCQkv
LyBiZWluZyBlcXVhbCB0byB0aGUgaWRlbnRpZmllciBDLAoJCS8vIG9yIGJlZ2lubmluZyB3aXRo
IHRoZSBpZGVudGlmaWVyIEMgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkgIi0iLgoJCS8vIFRoZSBt
YXRjaGluZyBvZiBDIGFnYWluc3QgdGhlIGVsZW1lbnQncyBsYW5ndWFnZSB2YWx1ZSBpcyBwZXJm
b3JtZWQgY2FzZS1pbnNlbnNpdGl2ZWx5LgoJCS8vIFRoZSBpZGVudGlmaWVyIEMgZG9lcyBub3Qg
aGF2ZSB0byBiZSBhIHZhbGlkIGxhbmd1YWdlIG5hbWUuIgoJCS8vIGh0dHA6Ly93d3cudzMub3Jn
L1RSL3NlbGVjdG9ycy8jbGFuZy1wc2V1ZG8KCQkibGFuZyI6IG1hcmtGdW5jdGlvbiggZnVuY3Rp
b24oIGxhbmcgKSB7CgkJCS8vIGxhbmcgdmFsdWUgbXVzdCBiZSBhIHZhbGlkIGlkZW50aWZpZXIK
CQkJaWYgKCAhcmlkZW50aWZpZXIudGVzdChsYW5nIHx8ICIiKSApIHsKCQkJCVNpenpsZS5lcnJv
ciggInVuc3VwcG9ydGVkIGxhbmc6ICIgKyBsYW5nICk7CgkJCX0KCQkJbGFuZyA9IGxhbmcucmVw
bGFjZSggcnVuZXNjYXBlLCBmdW5lc2NhcGUgKS50b0xvd2VyQ2FzZSgpOwoJCQlyZXR1cm4gZnVu
Y3Rpb24oIGVsZW0gKSB7CgkJCQl2YXIgZWxlbUxhbmc7CgkJCQlkbyB7CgkJCQkJaWYgKCAoZWxl
bUxhbmcgPSBkb2N1bWVudElzSFRNTCA/CgkJCQkJCWVsZW0ubGFuZyA6CgkJCQkJCWVsZW0uZ2V0
QXR0cmlidXRlKCJ4bWw6bGFuZyIpIHx8IGVsZW0uZ2V0QXR0cmlidXRlKCJsYW5nIikpICkgewoK
CQkJCQkJZWxlbUxhbmcgPSBlbGVtTGFuZy50b0xvd2VyQ2FzZSgpOwoJCQkJCQlyZXR1cm4gZWxl
bUxhbmcgPT09IGxhbmcgfHwgZWxlbUxhbmcuaW5kZXhPZiggbGFuZyArICItIiApID09PSAwOwoJ
CQkJCX0KCQkJCX0gd2hpbGUgKCAoZWxlbSA9IGVsZW0ucGFyZW50Tm9kZSkgJiYgZWxlbS5ub2Rl
VHlwZSA9PT0gMSApOwoJCQkJcmV0dXJuIGZhbHNlOwoJCQl9OwoJCX0pLAoKCQkvLyBNaXNjZWxs
YW5lb3VzCgkJInRhcmdldCI6IGZ1bmN0aW9uKCBlbGVtICkgewoJCQl2YXIgaGFzaCA9IHdpbmRv
dy5sb2NhdGlvbiAmJiB3aW5kb3cubG9jYXRpb24uaGFzaDsKCQkJcmV0dXJuIGhhc2ggJiYgaGFz
aC5zbGljZSggMSApID09PSBlbGVtLmlkOwoJCX0sCgoJCSJyb290IjogZnVuY3Rpb24oIGVsZW0g
KSB7CgkJCXJldHVybiBlbGVtID09PSBkb2NFbGVtOwoJCX0sCgoJCSJmb2N1cyI6IGZ1bmN0aW9u
KCBlbGVtICkgewoJCQlyZXR1cm4gZWxlbSA9PT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAmJiAo
IWRvY3VtZW50Lmhhc0ZvY3VzIHx8IGRvY3VtZW50Lmhhc0ZvY3VzKCkpICYmICEhKGVsZW0udHlw
ZSB8fCBlbGVtLmhyZWYgfHwgfmVsZW0udGFiSW5kZXgpOwoJCX0sCgoJCS8vIEJvb2xlYW4gcHJv
cGVydGllcwoJCSJlbmFibGVkIjogZnVuY3Rpb24oIGVsZW0gKSB7CgkJCXJldHVybiBlbGVtLmRp
c2FibGVkID09PSBmYWxzZTsKCQl9LAoKCQkiZGlzYWJsZWQiOiBmdW5jdGlvbiggZWxlbSApIHsK
CQkJcmV0dXJuIGVsZW0uZGlzYWJsZWQgPT09IHRydWU7CgkJfSwKCgkJImNoZWNrZWQiOiBmdW5j
dGlvbiggZWxlbSApIHsKCQkJLy8gSW4gQ1NTMywgOmNoZWNrZWQgc2hvdWxkIHJldHVybiBib3Ro
IGNoZWNrZWQgYW5kIHNlbGVjdGVkIGVsZW1lbnRzCgkJCS8vIGh0dHA6Ly93d3cudzMub3JnL1RS
LzIwMTEvUkVDLWNzczMtc2VsZWN0b3JzLTIwMTEwOTI5LyNjaGVja2VkCgkJCXZhciBub2RlTmFt
ZSA9IGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKTsKCQkJcmV0dXJuIChub2RlTmFtZSA9PT0g
ImlucHV0IiAmJiAhIWVsZW0uY2hlY2tlZCkgfHwgKG5vZGVOYW1lID09PSAib3B0aW9uIiAmJiAh
IWVsZW0uc2VsZWN0ZWQpOwoJCX0sCgoJCSJzZWxlY3RlZCI6IGZ1bmN0aW9uKCBlbGVtICkgewoJ
CQkvLyBBY2Nlc3NpbmcgdGhpcyBwcm9wZXJ0eSBtYWtlcyBzZWxlY3RlZC1ieS1kZWZhdWx0CgkJ
CS8vIG9wdGlvbnMgaW4gU2FmYXJpIHdvcmsgcHJvcGVybHkKCQkJaWYgKCBlbGVtLnBhcmVudE5v
ZGUgKSB7CgkJCQllbGVtLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleDsKCQkJfQoKCQkJcmV0dXJu
IGVsZW0uc2VsZWN0ZWQgPT09IHRydWU7CgkJfSwKCgkJLy8gQ29udGVudHMKCQkiZW1wdHkiOiBm
dW5jdGlvbiggZWxlbSApIHsKCQkJLy8gaHR0cDovL3d3dy53My5vcmcvVFIvc2VsZWN0b3JzLyNl
bXB0eS1wc2V1ZG8KCQkJLy8gOmVtcHR5IGlzIG5lZ2F0ZWQgYnkgZWxlbWVudCAoMSkgb3IgY29u
dGVudCBub2RlcyAodGV4dDogMzsgY2RhdGE6IDQ7IGVudGl0eSByZWY6IDUpLAoJCQkvLyAgIGJ1
dCBub3QgYnkgb3RoZXJzIChjb21tZW50OiA4OyBwcm9jZXNzaW5nIGluc3RydWN0aW9uOiA3OyBl
dGMuKQoJCQkvLyBub2RlVHlwZSA8IDYgd29ya3MgYmVjYXVzZSBhdHRyaWJ1dGVzICgyKSBkbyBu
b3QgYXBwZWFyIGFzIGNoaWxkcmVuCgkJCWZvciAoIGVsZW0gPSBlbGVtLmZpcnN0Q2hpbGQ7IGVs
ZW07IGVsZW0gPSBlbGVtLm5leHRTaWJsaW5nICkgewoJCQkJaWYgKCBlbGVtLm5vZGVUeXBlIDwg
NiApIHsKCQkJCQlyZXR1cm4gZmFsc2U7CgkJCQl9CgkJCX0KCQkJcmV0dXJuIHRydWU7CgkJfSwK
CgkJInBhcmVudCI6IGZ1bmN0aW9uKCBlbGVtICkgewoJCQlyZXR1cm4gIUV4cHIucHNldWRvc1si
ZW1wdHkiXSggZWxlbSApOwoJCX0sCgoJCS8vIEVsZW1lbnQvaW5wdXQgdHlwZXMKCQkiaGVhZGVy
IjogZnVuY3Rpb24oIGVsZW0gKSB7CgkJCXJldHVybiByaGVhZGVyLnRlc3QoIGVsZW0ubm9kZU5h
bWUgKTsKCQl9LAoKCQkiaW5wdXQiOiBmdW5jdGlvbiggZWxlbSApIHsKCQkJcmV0dXJuIHJpbnB1
dHMudGVzdCggZWxlbS5ub2RlTmFtZSApOwoJCX0sCgoJCSJidXR0b24iOiBmdW5jdGlvbiggZWxl
bSApIHsKCQkJdmFyIG5hbWUgPSBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7CgkJCXJldHVy
biBuYW1lID09PSAiaW5wdXQiICYmIGVsZW0udHlwZSA9PT0gImJ1dHRvbiIgfHwgbmFtZSA9PT0g
ImJ1dHRvbiI7CgkJfSwKCgkJInRleHQiOiBmdW5jdGlvbiggZWxlbSApIHsKCQkJdmFyIGF0dHI7
CgkJCXJldHVybiBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICJpbnB1dCIgJiYKCQkJ
CWVsZW0udHlwZSA9PT0gInRleHQiICYmCgoJCQkJLy8gU3VwcG9ydDogSUU8OAoJCQkJLy8gTmV3
IEhUTUw1IGF0dHJpYnV0ZSB2YWx1ZXMgKGUuZy4sICJzZWFyY2giKSBhcHBlYXIgd2l0aCBlbGVt
LnR5cGUgPT09ICJ0ZXh0IgoJCQkJKCAoYXR0ciA9IGVsZW0uZ2V0QXR0cmlidXRlKCJ0eXBlIikp
ID09IG51bGwgfHwgYXR0ci50b0xvd2VyQ2FzZSgpID09PSAidGV4dCIgKTsKCQl9LAoKCQkvLyBQ
b3NpdGlvbi1pbi1jb2xsZWN0aW9uCgkJImZpcnN0IjogY3JlYXRlUG9zaXRpb25hbFBzZXVkbyhm
dW5jdGlvbigpIHsKCQkJcmV0dXJuIFsgMCBdOwoJCX0pLAoKCQkibGFzdCI6IGNyZWF0ZVBvc2l0
aW9uYWxQc2V1ZG8oZnVuY3Rpb24oIG1hdGNoSW5kZXhlcywgbGVuZ3RoICkgewoJCQlyZXR1cm4g
WyBsZW5ndGggLSAxIF07CgkJfSksCgoJCSJlcSI6IGNyZWF0ZVBvc2l0aW9uYWxQc2V1ZG8oZnVu
Y3Rpb24oIG1hdGNoSW5kZXhlcywgbGVuZ3RoLCBhcmd1bWVudCApIHsKCQkJcmV0dXJuIFsgYXJn
dW1lbnQgPCAwID8gYXJndW1lbnQgKyBsZW5ndGggOiBhcmd1bWVudCBdOwoJCX0pLAoKCQkiZXZl
biI6IGNyZWF0ZVBvc2l0aW9uYWxQc2V1ZG8oZnVuY3Rpb24oIG1hdGNoSW5kZXhlcywgbGVuZ3Ro
ICkgewoJCQl2YXIgaSA9IDA7CgkJCWZvciAoIDsgaSA8IGxlbmd0aDsgaSArPSAyICkgewoJCQkJ
bWF0Y2hJbmRleGVzLnB1c2goIGkgKTsKCQkJfQoJCQlyZXR1cm4gbWF0Y2hJbmRleGVzOwoJCX0p
LAoKCQkib2RkIjogY3JlYXRlUG9zaXRpb25hbFBzZXVkbyhmdW5jdGlvbiggbWF0Y2hJbmRleGVz
LCBsZW5ndGggKSB7CgkJCXZhciBpID0gMTsKCQkJZm9yICggOyBpIDwgbGVuZ3RoOyBpICs9IDIg
KSB7CgkJCQltYXRjaEluZGV4ZXMucHVzaCggaSApOwoJCQl9CgkJCXJldHVybiBtYXRjaEluZGV4
ZXM7CgkJfSksCgoJCSJsdCI6IGNyZWF0ZVBvc2l0aW9uYWxQc2V1ZG8oZnVuY3Rpb24oIG1hdGNo
SW5kZXhlcywgbGVuZ3RoLCBhcmd1bWVudCApIHsKCQkJdmFyIGkgPSBhcmd1bWVudCA8IDAgPyBh
cmd1bWVudCArIGxlbmd0aCA6IGFyZ3VtZW50OwoJCQlmb3IgKCA7IC0taSA+PSAwOyApIHsKCQkJ
CW1hdGNoSW5kZXhlcy5wdXNoKCBpICk7CgkJCX0KCQkJcmV0dXJuIG1hdGNoSW5kZXhlczsKCQl9
KSwKCgkJImd0IjogY3JlYXRlUG9zaXRpb25hbFBzZXVkbyhmdW5jdGlvbiggbWF0Y2hJbmRleGVz
LCBsZW5ndGgsIGFyZ3VtZW50ICkgewoJCQl2YXIgaSA9IGFyZ3VtZW50IDwgMCA/IGFyZ3VtZW50
ICsgbGVuZ3RoIDogYXJndW1lbnQ7CgkJCWZvciAoIDsgKytpIDwgbGVuZ3RoOyApIHsKCQkJCW1h
dGNoSW5kZXhlcy5wdXNoKCBpICk7CgkJCX0KCQkJcmV0dXJuIG1hdGNoSW5kZXhlczsKCQl9KQoJ
fQp9OwoKRXhwci5wc2V1ZG9zWyJudGgiXSA9IEV4cHIucHNldWRvc1siZXEiXTsKCi8vIEFkZCBi
dXR0b24vaW5wdXQgdHlwZSBwc2V1ZG9zCmZvciAoIGkgaW4geyByYWRpbzogdHJ1ZSwgY2hlY2ti
b3g6IHRydWUsIGZpbGU6IHRydWUsIHBhc3N3b3JkOiB0cnVlLCBpbWFnZTogdHJ1ZSB9ICkgewoJ
RXhwci5wc2V1ZG9zWyBpIF0gPSBjcmVhdGVJbnB1dFBzZXVkbyggaSApOwp9CmZvciAoIGkgaW4g
eyBzdWJtaXQ6IHRydWUsIHJlc2V0OiB0cnVlIH0gKSB7CglFeHByLnBzZXVkb3NbIGkgXSA9IGNy
ZWF0ZUJ1dHRvblBzZXVkbyggaSApOwp9CgovLyBFYXN5IEFQSSBmb3IgY3JlYXRpbmcgbmV3IHNl
dEZpbHRlcnMKZnVuY3Rpb24gc2V0RmlsdGVycygpIHt9CnNldEZpbHRlcnMucHJvdG90eXBlID0g
RXhwci5maWx0ZXJzID0gRXhwci5wc2V1ZG9zOwpFeHByLnNldEZpbHRlcnMgPSBuZXcgc2V0Rmls
dGVycygpOwoKdG9rZW5pemUgPSBTaXp6bGUudG9rZW5pemUgPSBmdW5jdGlvbiggc2VsZWN0b3Is
IHBhcnNlT25seSApIHsKCXZhciBtYXRjaGVkLCBtYXRjaCwgdG9rZW5zLCB0eXBlLAoJCXNvRmFy
LCBncm91cHMsIHByZUZpbHRlcnMsCgkJY2FjaGVkID0gdG9rZW5DYWNoZVsgc2VsZWN0b3IgKyAi
ICIgXTsKCglpZiAoIGNhY2hlZCApIHsKCQlyZXR1cm4gcGFyc2VPbmx5ID8gMCA6IGNhY2hlZC5z
bGljZSggMCApOwoJfQoKCXNvRmFyID0gc2VsZWN0b3I7Cglncm91cHMgPSBbXTsKCXByZUZpbHRl
cnMgPSBFeHByLnByZUZpbHRlcjsKCgl3aGlsZSAoIHNvRmFyICkgewoKCQkvLyBDb21tYSBhbmQg
Zmlyc3QgcnVuCgkJaWYgKCAhbWF0Y2hlZCB8fCAobWF0Y2ggPSByY29tbWEuZXhlYyggc29GYXIg
KSkgKSB7CgkJCWlmICggbWF0Y2ggKSB7CgkJCQkvLyBEb24ndCBjb25zdW1lIHRyYWlsaW5nIGNv
bW1hcyBhcyB2YWxpZAoJCQkJc29GYXIgPSBzb0Zhci5zbGljZSggbWF0Y2hbMF0ubGVuZ3RoICkg
fHwgc29GYXI7CgkJCX0KCQkJZ3JvdXBzLnB1c2goICh0b2tlbnMgPSBbXSkgKTsKCQl9CgoJCW1h
dGNoZWQgPSBmYWxzZTsKCgkJLy8gQ29tYmluYXRvcnMKCQlpZiAoIChtYXRjaCA9IHJjb21iaW5h
dG9ycy5leGVjKCBzb0ZhciApKSApIHsKCQkJbWF0Y2hlZCA9IG1hdGNoLnNoaWZ0KCk7CgkJCXRv
a2Vucy5wdXNoKHsKCQkJCXZhbHVlOiBtYXRjaGVkLAoJCQkJLy8gQ2FzdCBkZXNjZW5kYW50IGNv
bWJpbmF0b3JzIHRvIHNwYWNlCgkJCQl0eXBlOiBtYXRjaFswXS5yZXBsYWNlKCBydHJpbSwgIiAi
ICkKCQkJfSk7CgkJCXNvRmFyID0gc29GYXIuc2xpY2UoIG1hdGNoZWQubGVuZ3RoICk7CgkJfQoK
CQkvLyBGaWx0ZXJzCgkJZm9yICggdHlwZSBpbiBFeHByLmZpbHRlciApIHsKCQkJaWYgKCAobWF0
Y2ggPSBtYXRjaEV4cHJbIHR5cGUgXS5leGVjKCBzb0ZhciApKSAmJiAoIXByZUZpbHRlcnNbIHR5
cGUgXSB8fAoJCQkJKG1hdGNoID0gcHJlRmlsdGVyc1sgdHlwZSBdKCBtYXRjaCApKSkgKSB7CgkJ
CQltYXRjaGVkID0gbWF0Y2guc2hpZnQoKTsKCQkJCXRva2Vucy5wdXNoKHsKCQkJCQl2YWx1ZTog
bWF0Y2hlZCwKCQkJCQl0eXBlOiB0eXBlLAoJCQkJCW1hdGNoZXM6IG1hdGNoCgkJCQl9KTsKCQkJ
CXNvRmFyID0gc29GYXIuc2xpY2UoIG1hdGNoZWQubGVuZ3RoICk7CgkJCX0KCQl9CgoJCWlmICgg
IW1hdGNoZWQgKSB7CgkJCWJyZWFrOwoJCX0KCX0KCgkvLyBSZXR1cm4gdGhlIGxlbmd0aCBvZiB0
aGUgaW52YWxpZCBleGNlc3MKCS8vIGlmIHdlJ3JlIGp1c3QgcGFyc2luZwoJLy8gT3RoZXJ3aXNl
LCB0aHJvdyBhbiBlcnJvciBvciByZXR1cm4gdG9rZW5zCglyZXR1cm4gcGFyc2VPbmx5ID8KCQlz
b0Zhci5sZW5ndGggOgoJCXNvRmFyID8KCQkJU2l6emxlLmVycm9yKCBzZWxlY3RvciApIDoKCQkJ
Ly8gQ2FjaGUgdGhlIHRva2VucwoJCQl0b2tlbkNhY2hlKCBzZWxlY3RvciwgZ3JvdXBzICkuc2xp
Y2UoIDAgKTsKfTsKCmZ1bmN0aW9uIHRvU2VsZWN0b3IoIHRva2VucyApIHsKCXZhciBpID0gMCwK
CQlsZW4gPSB0b2tlbnMubGVuZ3RoLAoJCXNlbGVjdG9yID0gIiI7Cglmb3IgKCA7IGkgPCBsZW47
IGkrKyApIHsKCQlzZWxlY3RvciArPSB0b2tlbnNbaV0udmFsdWU7Cgl9CglyZXR1cm4gc2VsZWN0
b3I7Cn0KCmZ1bmN0aW9uIGFkZENvbWJpbmF0b3IoIG1hdGNoZXIsIGNvbWJpbmF0b3IsIGJhc2Ug
KSB7Cgl2YXIgZGlyID0gY29tYmluYXRvci5kaXIsCgkJY2hlY2tOb25FbGVtZW50cyA9IGJhc2Ug
JiYgZGlyID09PSAicGFyZW50Tm9kZSIsCgkJZG9uZU5hbWUgPSBkb25lKys7CgoJcmV0dXJuIGNv
bWJpbmF0b3IuZmlyc3QgPwoJCS8vIENoZWNrIGFnYWluc3QgY2xvc2VzdCBhbmNlc3Rvci9wcmVj
ZWRpbmcgZWxlbWVudAoJCWZ1bmN0aW9uKCBlbGVtLCBjb250ZXh0LCB4bWwgKSB7CgkJCXdoaWxl
ICggKGVsZW0gPSBlbGVtWyBkaXIgXSkgKSB7CgkJCQlpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEg
fHwgY2hlY2tOb25FbGVtZW50cyApIHsKCQkJCQlyZXR1cm4gbWF0Y2hlciggZWxlbSwgY29udGV4
dCwgeG1sICk7CgkJCQl9CgkJCX0KCQl9IDoKCgkJLy8gQ2hlY2sgYWdhaW5zdCBhbGwgYW5jZXN0
b3IvcHJlY2VkaW5nIGVsZW1lbnRzCgkJZnVuY3Rpb24oIGVsZW0sIGNvbnRleHQsIHhtbCApIHsK
CQkJdmFyIG9sZENhY2hlLCBvdXRlckNhY2hlLAoJCQkJbmV3Q2FjaGUgPSBbIGRpcnJ1bnMsIGRv
bmVOYW1lIF07CgoJCQkvLyBXZSBjYW4ndCBzZXQgYXJiaXRyYXJ5IGRhdGEgb24gWE1MIG5vZGVz
LCBzbyB0aGV5IGRvbid0IGJlbmVmaXQgZnJvbSBkaXIgY2FjaGluZwoJCQlpZiAoIHhtbCApIHsK
CQkJCXdoaWxlICggKGVsZW0gPSBlbGVtWyBkaXIgXSkgKSB7CgkJCQkJaWYgKCBlbGVtLm5vZGVU
eXBlID09PSAxIHx8IGNoZWNrTm9uRWxlbWVudHMgKSB7CgkJCQkJCWlmICggbWF0Y2hlciggZWxl
bSwgY29udGV4dCwgeG1sICkgKSB7CgkJCQkJCQlyZXR1cm4gdHJ1ZTsKCQkJCQkJfQoJCQkJCX0K
CQkJCX0KCQkJfSBlbHNlIHsKCQkJCXdoaWxlICggKGVsZW0gPSBlbGVtWyBkaXIgXSkgKSB7CgkJ
CQkJaWYgKCBlbGVtLm5vZGVUeXBlID09PSAxIHx8IGNoZWNrTm9uRWxlbWVudHMgKSB7CgkJCQkJ
CW91dGVyQ2FjaGUgPSBlbGVtWyBleHBhbmRvIF0gfHwgKGVsZW1bIGV4cGFuZG8gXSA9IHt9KTsK
CQkJCQkJaWYgKCAob2xkQ2FjaGUgPSBvdXRlckNhY2hlWyBkaXIgXSkgJiYKCQkJCQkJCW9sZENh
Y2hlWyAwIF0gPT09IGRpcnJ1bnMgJiYgb2xkQ2FjaGVbIDEgXSA9PT0gZG9uZU5hbWUgKSB7CgoJ
CQkJCQkJLy8gQXNzaWduIHRvIG5ld0NhY2hlIHNvIHJlc3VsdHMgYmFjay1wcm9wYWdhdGUgdG8g
cHJldmlvdXMgZWxlbWVudHMKCQkJCQkJCXJldHVybiAobmV3Q2FjaGVbIDIgXSA9IG9sZENhY2hl
WyAyIF0pOwoJCQkJCQl9IGVsc2UgewoJCQkJCQkJLy8gUmV1c2UgbmV3Y2FjaGUgc28gcmVzdWx0
cyBiYWNrLXByb3BhZ2F0ZSB0byBwcmV2aW91cyBlbGVtZW50cwoJCQkJCQkJb3V0ZXJDYWNoZVsg
ZGlyIF0gPSBuZXdDYWNoZTsKCgkJCQkJCQkvLyBBIG1hdGNoIG1lYW5zIHdlJ3JlIGRvbmU7IGEg
ZmFpbCBtZWFucyB3ZSBoYXZlIHRvIGtlZXAgY2hlY2tpbmcKCQkJCQkJCWlmICggKG5ld0NhY2hl
WyAyIF0gPSBtYXRjaGVyKCBlbGVtLCBjb250ZXh0LCB4bWwgKSkgKSB7CgkJCQkJCQkJcmV0dXJu
IHRydWU7CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCX0KCQl9Owp9CgpmdW5jdGlv
biBlbGVtZW50TWF0Y2hlciggbWF0Y2hlcnMgKSB7CglyZXR1cm4gbWF0Y2hlcnMubGVuZ3RoID4g
MSA/CgkJZnVuY3Rpb24oIGVsZW0sIGNvbnRleHQsIHhtbCApIHsKCQkJdmFyIGkgPSBtYXRjaGVy
cy5sZW5ndGg7CgkJCXdoaWxlICggaS0tICkgewoJCQkJaWYgKCAhbWF0Y2hlcnNbaV0oIGVsZW0s
IGNvbnRleHQsIHhtbCApICkgewoJCQkJCXJldHVybiBmYWxzZTsKCQkJCX0KCQkJfQoJCQlyZXR1
cm4gdHJ1ZTsKCQl9IDoKCQltYXRjaGVyc1swXTsKfQoKZnVuY3Rpb24gbXVsdGlwbGVDb250ZXh0
cyggc2VsZWN0b3IsIGNvbnRleHRzLCByZXN1bHRzICkgewoJdmFyIGkgPSAwLAoJCWxlbiA9IGNv
bnRleHRzLmxlbmd0aDsKCWZvciAoIDsgaSA8IGxlbjsgaSsrICkgewoJCVNpenpsZSggc2VsZWN0
b3IsIGNvbnRleHRzW2ldLCByZXN1bHRzICk7Cgl9CglyZXR1cm4gcmVzdWx0czsKfQoKZnVuY3Rp
b24gY29uZGVuc2UoIHVubWF0Y2hlZCwgbWFwLCBmaWx0ZXIsIGNvbnRleHQsIHhtbCApIHsKCXZh
ciBlbGVtLAoJCW5ld1VubWF0Y2hlZCA9IFtdLAoJCWkgPSAwLAoJCWxlbiA9IHVubWF0Y2hlZC5s
ZW5ndGgsCgkJbWFwcGVkID0gbWFwICE9IG51bGw7CgoJZm9yICggOyBpIDwgbGVuOyBpKysgKSB7
CgkJaWYgKCAoZWxlbSA9IHVubWF0Y2hlZFtpXSkgKSB7CgkJCWlmICggIWZpbHRlciB8fCBmaWx0
ZXIoIGVsZW0sIGNvbnRleHQsIHhtbCApICkgewoJCQkJbmV3VW5tYXRjaGVkLnB1c2goIGVsZW0g
KTsKCQkJCWlmICggbWFwcGVkICkgewoJCQkJCW1hcC5wdXNoKCBpICk7CgkJCQl9CgkJCX0KCQl9
Cgl9CgoJcmV0dXJuIG5ld1VubWF0Y2hlZDsKfQoKZnVuY3Rpb24gc2V0TWF0Y2hlciggcHJlRmls
dGVyLCBzZWxlY3RvciwgbWF0Y2hlciwgcG9zdEZpbHRlciwgcG9zdEZpbmRlciwgcG9zdFNlbGVj
dG9yICkgewoJaWYgKCBwb3N0RmlsdGVyICYmICFwb3N0RmlsdGVyWyBleHBhbmRvIF0gKSB7CgkJ
cG9zdEZpbHRlciA9IHNldE1hdGNoZXIoIHBvc3RGaWx0ZXIgKTsKCX0KCWlmICggcG9zdEZpbmRl
ciAmJiAhcG9zdEZpbmRlclsgZXhwYW5kbyBdICkgewoJCXBvc3RGaW5kZXIgPSBzZXRNYXRjaGVy
KCBwb3N0RmluZGVyLCBwb3N0U2VsZWN0b3IgKTsKCX0KCXJldHVybiBtYXJrRnVuY3Rpb24oZnVu
Y3Rpb24oIHNlZWQsIHJlc3VsdHMsIGNvbnRleHQsIHhtbCApIHsKCQl2YXIgdGVtcCwgaSwgZWxl
bSwKCQkJcHJlTWFwID0gW10sCgkJCXBvc3RNYXAgPSBbXSwKCQkJcHJlZXhpc3RpbmcgPSByZXN1
bHRzLmxlbmd0aCwKCgkJCS8vIEdldCBpbml0aWFsIGVsZW1lbnRzIGZyb20gc2VlZCBvciBjb250
ZXh0CgkJCWVsZW1zID0gc2VlZCB8fCBtdWx0aXBsZUNvbnRleHRzKCBzZWxlY3RvciB8fCAiKiIs
IGNvbnRleHQubm9kZVR5cGUgPyBbIGNvbnRleHQgXSA6IGNvbnRleHQsIFtdICksCgoJCQkvLyBQ
cmVmaWx0ZXIgdG8gZ2V0IG1hdGNoZXIgaW5wdXQsIHByZXNlcnZpbmcgYSBtYXAgZm9yIHNlZWQt
cmVzdWx0cyBzeW5jaHJvbml6YXRpb24KCQkJbWF0Y2hlckluID0gcHJlRmlsdGVyICYmICggc2Vl
ZCB8fCAhc2VsZWN0b3IgKSA/CgkJCQljb25kZW5zZSggZWxlbXMsIHByZU1hcCwgcHJlRmlsdGVy
LCBjb250ZXh0LCB4bWwgKSA6CgkJCQllbGVtcywKCgkJCW1hdGNoZXJPdXQgPSBtYXRjaGVyID8K
CQkJCS8vIElmIHdlIGhhdmUgYSBwb3N0RmluZGVyLCBvciBmaWx0ZXJlZCBzZWVkLCBvciBub24t
c2VlZCBwb3N0RmlsdGVyIG9yIHByZWV4aXN0aW5nIHJlc3VsdHMsCgkJCQlwb3N0RmluZGVyIHx8
ICggc2VlZCA/IHByZUZpbHRlciA6IHByZWV4aXN0aW5nIHx8IHBvc3RGaWx0ZXIgKSA/CgoJCQkJ
CS8vIC4uLmludGVybWVkaWF0ZSBwcm9jZXNzaW5nIGlzIG5lY2Vzc2FyeQoJCQkJCVtdIDoKCgkJ
CQkJLy8gLi4ub3RoZXJ3aXNlIHVzZSByZXN1bHRzIGRpcmVjdGx5CgkJCQkJcmVzdWx0cyA6CgkJ
CQltYXRjaGVySW47CgoJCS8vIEZpbmQgcHJpbWFyeSBtYXRjaGVzCgkJaWYgKCBtYXRjaGVyICkg
ewoJCQltYXRjaGVyKCBtYXRjaGVySW4sIG1hdGNoZXJPdXQsIGNvbnRleHQsIHhtbCApOwoJCX0K
CgkJLy8gQXBwbHkgcG9zdEZpbHRlcgoJCWlmICggcG9zdEZpbHRlciApIHsKCQkJdGVtcCA9IGNv
bmRlbnNlKCBtYXRjaGVyT3V0LCBwb3N0TWFwICk7CgkJCXBvc3RGaWx0ZXIoIHRlbXAsIFtdLCBj
b250ZXh0LCB4bWwgKTsKCgkJCS8vIFVuLW1hdGNoIGZhaWxpbmcgZWxlbWVudHMgYnkgbW92aW5n
IHRoZW0gYmFjayB0byBtYXRjaGVySW4KCQkJaSA9IHRlbXAubGVuZ3RoOwoJCQl3aGlsZSAoIGkt
LSApIHsKCQkJCWlmICggKGVsZW0gPSB0ZW1wW2ldKSApIHsKCQkJCQltYXRjaGVyT3V0WyBwb3N0
TWFwW2ldIF0gPSAhKG1hdGNoZXJJblsgcG9zdE1hcFtpXSBdID0gZWxlbSk7CgkJCQl9CgkJCX0K
CQl9CgoJCWlmICggc2VlZCApIHsKCQkJaWYgKCBwb3N0RmluZGVyIHx8IHByZUZpbHRlciApIHsK
CQkJCWlmICggcG9zdEZpbmRlciApIHsKCQkJCQkvLyBHZXQgdGhlIGZpbmFsIG1hdGNoZXJPdXQg
YnkgY29uZGVuc2luZyB0aGlzIGludGVybWVkaWF0ZSBpbnRvIHBvc3RGaW5kZXIgY29udGV4dHMK
CQkJCQl0ZW1wID0gW107CgkJCQkJaSA9IG1hdGNoZXJPdXQubGVuZ3RoOwoJCQkJCXdoaWxlICgg
aS0tICkgewoJCQkJCQlpZiAoIChlbGVtID0gbWF0Y2hlck91dFtpXSkgKSB7CgkJCQkJCQkvLyBS
ZXN0b3JlIG1hdGNoZXJJbiBzaW5jZSBlbGVtIGlzIG5vdCB5ZXQgYSBmaW5hbCBtYXRjaAoJCQkJ
CQkJdGVtcC5wdXNoKCAobWF0Y2hlckluW2ldID0gZWxlbSkgKTsKCQkJCQkJfQoJCQkJCX0KCQkJ
CQlwb3N0RmluZGVyKCBudWxsLCAobWF0Y2hlck91dCA9IFtdKSwgdGVtcCwgeG1sICk7CgkJCQl9
CgoJCQkJLy8gTW92ZSBtYXRjaGVkIGVsZW1lbnRzIGZyb20gc2VlZCB0byByZXN1bHRzIHRvIGtl
ZXAgdGhlbSBzeW5jaHJvbml6ZWQKCQkJCWkgPSBtYXRjaGVyT3V0Lmxlbmd0aDsKCQkJCXdoaWxl
ICggaS0tICkgewoJCQkJCWlmICggKGVsZW0gPSBtYXRjaGVyT3V0W2ldKSAmJgoJCQkJCQkodGVt
cCA9IHBvc3RGaW5kZXIgPyBpbmRleE9mKCBzZWVkLCBlbGVtICkgOiBwcmVNYXBbaV0pID4gLTEg
KSB7CgoJCQkJCQlzZWVkW3RlbXBdID0gIShyZXN1bHRzW3RlbXBdID0gZWxlbSk7CgkJCQkJfQoJ
CQkJfQoJCQl9CgoJCS8vIEFkZCBlbGVtZW50cyB0byByZXN1bHRzLCB0aHJvdWdoIHBvc3RGaW5k
ZXIgaWYgZGVmaW5lZAoJCX0gZWxzZSB7CgkJCW1hdGNoZXJPdXQgPSBjb25kZW5zZSgKCQkJCW1h
dGNoZXJPdXQgPT09IHJlc3VsdHMgPwoJCQkJCW1hdGNoZXJPdXQuc3BsaWNlKCBwcmVleGlzdGlu
ZywgbWF0Y2hlck91dC5sZW5ndGggKSA6CgkJCQkJbWF0Y2hlck91dAoJCQkpOwoJCQlpZiAoIHBv
c3RGaW5kZXIgKSB7CgkJCQlwb3N0RmluZGVyKCBudWxsLCByZXN1bHRzLCBtYXRjaGVyT3V0LCB4
bWwgKTsKCQkJfSBlbHNlIHsKCQkJCXB1c2guYXBwbHkoIHJlc3VsdHMsIG1hdGNoZXJPdXQgKTsK
CQkJfQoJCX0KCX0pOwp9CgpmdW5jdGlvbiBtYXRjaGVyRnJvbVRva2VucyggdG9rZW5zICkgewoJ
dmFyIGNoZWNrQ29udGV4dCwgbWF0Y2hlciwgaiwKCQlsZW4gPSB0b2tlbnMubGVuZ3RoLAoJCWxl
YWRpbmdSZWxhdGl2ZSA9IEV4cHIucmVsYXRpdmVbIHRva2Vuc1swXS50eXBlIF0sCgkJaW1wbGlj
aXRSZWxhdGl2ZSA9IGxlYWRpbmdSZWxhdGl2ZSB8fCBFeHByLnJlbGF0aXZlWyIgIl0sCgkJaSA9
IGxlYWRpbmdSZWxhdGl2ZSA/IDEgOiAwLAoKCQkvLyBUaGUgZm91bmRhdGlvbmFsIG1hdGNoZXIg
ZW5zdXJlcyB0aGF0IGVsZW1lbnRzIGFyZSByZWFjaGFibGUgZnJvbSB0b3AtbGV2ZWwgY29udGV4
dChzKQoJCW1hdGNoQ29udGV4dCA9IGFkZENvbWJpbmF0b3IoIGZ1bmN0aW9uKCBlbGVtICkgewoJ
CQlyZXR1cm4gZWxlbSA9PT0gY2hlY2tDb250ZXh0OwoJCX0sIGltcGxpY2l0UmVsYXRpdmUsIHRy
dWUgKSwKCQltYXRjaEFueUNvbnRleHQgPSBhZGRDb21iaW5hdG9yKCBmdW5jdGlvbiggZWxlbSAp
IHsKCQkJcmV0dXJuIGluZGV4T2YoIGNoZWNrQ29udGV4dCwgZWxlbSApID4gLTE7CgkJfSwgaW1w
bGljaXRSZWxhdGl2ZSwgdHJ1ZSApLAoJCW1hdGNoZXJzID0gWyBmdW5jdGlvbiggZWxlbSwgY29u
dGV4dCwgeG1sICkgewoJCQl2YXIgcmV0ID0gKCAhbGVhZGluZ1JlbGF0aXZlICYmICggeG1sIHx8
IGNvbnRleHQgIT09IG91dGVybW9zdENvbnRleHQgKSApIHx8ICgKCQkJCShjaGVja0NvbnRleHQg
PSBjb250ZXh0KS5ub2RlVHlwZSA/CgkJCQkJbWF0Y2hDb250ZXh0KCBlbGVtLCBjb250ZXh0LCB4
bWwgKSA6CgkJCQkJbWF0Y2hBbnlDb250ZXh0KCBlbGVtLCBjb250ZXh0LCB4bWwgKSApOwoJCQkv
LyBBdm9pZCBoYW5naW5nIG9udG8gZWxlbWVudCAoaXNzdWUgIzI5OSkKCQkJY2hlY2tDb250ZXh0
ID0gbnVsbDsKCQkJcmV0dXJuIHJldDsKCQl9IF07CgoJZm9yICggOyBpIDwgbGVuOyBpKysgKSB7
CgkJaWYgKCAobWF0Y2hlciA9IEV4cHIucmVsYXRpdmVbIHRva2Vuc1tpXS50eXBlIF0pICkgewoJ
CQltYXRjaGVycyA9IFsgYWRkQ29tYmluYXRvcihlbGVtZW50TWF0Y2hlciggbWF0Y2hlcnMgKSwg
bWF0Y2hlcikgXTsKCQl9IGVsc2UgewoJCQltYXRjaGVyID0gRXhwci5maWx0ZXJbIHRva2Vuc1tp
XS50eXBlIF0uYXBwbHkoIG51bGwsIHRva2Vuc1tpXS5tYXRjaGVzICk7CgoJCQkvLyBSZXR1cm4g
c3BlY2lhbCB1cG9uIHNlZWluZyBhIHBvc2l0aW9uYWwgbWF0Y2hlcgoJCQlpZiAoIG1hdGNoZXJb
IGV4cGFuZG8gXSApIHsKCQkJCS8vIEZpbmQgdGhlIG5leHQgcmVsYXRpdmUgb3BlcmF0b3IgKGlm
IGFueSkgZm9yIHByb3BlciBoYW5kbGluZwoJCQkJaiA9ICsraTsKCQkJCWZvciAoIDsgaiA8IGxl
bjsgaisrICkgewoJCQkJCWlmICggRXhwci5yZWxhdGl2ZVsgdG9rZW5zW2pdLnR5cGUgXSApIHsK
CQkJCQkJYnJlYWs7CgkJCQkJfQoJCQkJfQoJCQkJcmV0dXJuIHNldE1hdGNoZXIoCgkJCQkJaSA+
IDEgJiYgZWxlbWVudE1hdGNoZXIoIG1hdGNoZXJzICksCgkJCQkJaSA+IDEgJiYgdG9TZWxlY3Rv
cigKCQkJCQkJLy8gSWYgdGhlIHByZWNlZGluZyB0b2tlbiB3YXMgYSBkZXNjZW5kYW50IGNvbWJp
bmF0b3IsIGluc2VydCBhbiBpbXBsaWNpdCBhbnktZWxlbWVudCBgKmAKCQkJCQkJdG9rZW5zLnNs
aWNlKCAwLCBpIC0gMSApLmNvbmNhdCh7IHZhbHVlOiB0b2tlbnNbIGkgLSAyIF0udHlwZSA9PT0g
IiAiID8gIioiIDogIiIgfSkKCQkJCQkpLnJlcGxhY2UoIHJ0cmltLCAiJDEiICksCgkJCQkJbWF0
Y2hlciwKCQkJCQlpIDwgaiAmJiBtYXRjaGVyRnJvbVRva2VucyggdG9rZW5zLnNsaWNlKCBpLCBq
ICkgKSwKCQkJCQlqIDwgbGVuICYmIG1hdGNoZXJGcm9tVG9rZW5zKCAodG9rZW5zID0gdG9rZW5z
LnNsaWNlKCBqICkpICksCgkJCQkJaiA8IGxlbiAmJiB0b1NlbGVjdG9yKCB0b2tlbnMgKQoJCQkJ
KTsKCQkJfQoJCQltYXRjaGVycy5wdXNoKCBtYXRjaGVyICk7CgkJfQoJfQoKCXJldHVybiBlbGVt
ZW50TWF0Y2hlciggbWF0Y2hlcnMgKTsKfQoKZnVuY3Rpb24gbWF0Y2hlckZyb21Hcm91cE1hdGNo
ZXJzKCBlbGVtZW50TWF0Y2hlcnMsIHNldE1hdGNoZXJzICkgewoJdmFyIGJ5U2V0ID0gc2V0TWF0
Y2hlcnMubGVuZ3RoID4gMCwKCQlieUVsZW1lbnQgPSBlbGVtZW50TWF0Y2hlcnMubGVuZ3RoID4g
MCwKCQlzdXBlck1hdGNoZXIgPSBmdW5jdGlvbiggc2VlZCwgY29udGV4dCwgeG1sLCByZXN1bHRz
LCBvdXRlcm1vc3QgKSB7CgkJCXZhciBlbGVtLCBqLCBtYXRjaGVyLAoJCQkJbWF0Y2hlZENvdW50
ID0gMCwKCQkJCWkgPSAiMCIsCgkJCQl1bm1hdGNoZWQgPSBzZWVkICYmIFtdLAoJCQkJc2V0TWF0
Y2hlZCA9IFtdLAoJCQkJY29udGV4dEJhY2t1cCA9IG91dGVybW9zdENvbnRleHQsCgkJCQkvLyBX
ZSBtdXN0IGFsd2F5cyBoYXZlIGVpdGhlciBzZWVkIGVsZW1lbnRzIG9yIG91dGVybW9zdCBjb250
ZXh0CgkJCQllbGVtcyA9IHNlZWQgfHwgYnlFbGVtZW50ICYmIEV4cHIuZmluZFsiVEFHIl0oICIq
Iiwgb3V0ZXJtb3N0ICksCgkJCQkvLyBVc2UgaW50ZWdlciBkaXJydW5zIGlmZiB0aGlzIGlzIHRo
ZSBvdXRlcm1vc3QgbWF0Y2hlcgoJCQkJZGlycnVuc1VuaXF1ZSA9IChkaXJydW5zICs9IGNvbnRl
eHRCYWNrdXAgPT0gbnVsbCA/IDEgOiBNYXRoLnJhbmRvbSgpIHx8IDAuMSksCgkJCQlsZW4gPSBl
bGVtcy5sZW5ndGg7CgoJCQlpZiAoIG91dGVybW9zdCApIHsKCQkJCW91dGVybW9zdENvbnRleHQg
PSBjb250ZXh0ICE9PSBkb2N1bWVudCAmJiBjb250ZXh0OwoJCQl9CgoJCQkvLyBBZGQgZWxlbWVu
dHMgcGFzc2luZyBlbGVtZW50TWF0Y2hlcnMgZGlyZWN0bHkgdG8gcmVzdWx0cwoJCQkvLyBLZWVw
IGBpYCBhIHN0cmluZyBpZiB0aGVyZSBhcmUgbm8gZWxlbWVudHMgc28gYG1hdGNoZWRDb3VudGAg
d2lsbCBiZSAiMDAiIGJlbG93CgkJCS8vIFN1cHBvcnQ6IElFPDksIFNhZmFyaQoJCQkvLyBUb2xl
cmF0ZSBOb2RlTGlzdCBwcm9wZXJ0aWVzIChJRTogImxlbmd0aCI7IFNhZmFyaTogPG51bWJlcj4p
IG1hdGNoaW5nIGVsZW1lbnRzIGJ5IGlkCgkJCWZvciAoIDsgaSAhPT0gbGVuICYmIChlbGVtID0g
ZWxlbXNbaV0pICE9IG51bGw7IGkrKyApIHsKCQkJCWlmICggYnlFbGVtZW50ICYmIGVsZW0gKSB7
CgkJCQkJaiA9IDA7CgkJCQkJd2hpbGUgKCAobWF0Y2hlciA9IGVsZW1lbnRNYXRjaGVyc1tqKytd
KSApIHsKCQkJCQkJaWYgKCBtYXRjaGVyKCBlbGVtLCBjb250ZXh0LCB4bWwgKSApIHsKCQkJCQkJ
CXJlc3VsdHMucHVzaCggZWxlbSApOwoJCQkJCQkJYnJlYWs7CgkJCQkJCX0KCQkJCQl9CgkJCQkJ
aWYgKCBvdXRlcm1vc3QgKSB7CgkJCQkJCWRpcnJ1bnMgPSBkaXJydW5zVW5pcXVlOwoJCQkJCX0K
CQkJCX0KCgkJCQkvLyBUcmFjayB1bm1hdGNoZWQgZWxlbWVudHMgZm9yIHNldCBmaWx0ZXJzCgkJ
CQlpZiAoIGJ5U2V0ICkgewoJCQkJCS8vIFRoZXkgd2lsbCBoYXZlIGdvbmUgdGhyb3VnaCBhbGwg
cG9zc2libGUgbWF0Y2hlcnMKCQkJCQlpZiAoIChlbGVtID0gIW1hdGNoZXIgJiYgZWxlbSkgKSB7
CgkJCQkJCW1hdGNoZWRDb3VudC0tOwoJCQkJCX0KCgkJCQkJLy8gTGVuZ3RoZW4gdGhlIGFycmF5
IGZvciBldmVyeSBlbGVtZW50LCBtYXRjaGVkIG9yIG5vdAoJCQkJCWlmICggc2VlZCApIHsKCQkJ
CQkJdW5tYXRjaGVkLnB1c2goIGVsZW0gKTsKCQkJCQl9CgkJCQl9CgkJCX0KCgkJCS8vIEFwcGx5
IHNldCBmaWx0ZXJzIHRvIHVubWF0Y2hlZCBlbGVtZW50cwoJCQltYXRjaGVkQ291bnQgKz0gaTsK
CQkJaWYgKCBieVNldCAmJiBpICE9PSBtYXRjaGVkQ291bnQgKSB7CgkJCQlqID0gMDsKCQkJCXdo
aWxlICggKG1hdGNoZXIgPSBzZXRNYXRjaGVyc1tqKytdKSApIHsKCQkJCQltYXRjaGVyKCB1bm1h
dGNoZWQsIHNldE1hdGNoZWQsIGNvbnRleHQsIHhtbCApOwoJCQkJfQoKCQkJCWlmICggc2VlZCAp
IHsKCQkJCQkvLyBSZWludGVncmF0ZSBlbGVtZW50IG1hdGNoZXMgdG8gZWxpbWluYXRlIHRoZSBu
ZWVkIGZvciBzb3J0aW5nCgkJCQkJaWYgKCBtYXRjaGVkQ291bnQgPiAwICkgewoJCQkJCQl3aGls
ZSAoIGktLSApIHsKCQkJCQkJCWlmICggISh1bm1hdGNoZWRbaV0gfHwgc2V0TWF0Y2hlZFtpXSkg
KSB7CgkJCQkJCQkJc2V0TWF0Y2hlZFtpXSA9IHBvcC5jYWxsKCByZXN1bHRzICk7CgkJCQkJCQl9
CgkJCQkJCX0KCQkJCQl9CgoJCQkJCS8vIERpc2NhcmQgaW5kZXggcGxhY2Vob2xkZXIgdmFsdWVz
IHRvIGdldCBvbmx5IGFjdHVhbCBtYXRjaGVzCgkJCQkJc2V0TWF0Y2hlZCA9IGNvbmRlbnNlKCBz
ZXRNYXRjaGVkICk7CgkJCQl9CgoJCQkJLy8gQWRkIG1hdGNoZXMgdG8gcmVzdWx0cwoJCQkJcHVz
aC5hcHBseSggcmVzdWx0cywgc2V0TWF0Y2hlZCApOwoKCQkJCS8vIFNlZWRsZXNzIHNldCBtYXRj
aGVzIHN1Y2NlZWRpbmcgbXVsdGlwbGUgc3VjY2Vzc2Z1bCBtYXRjaGVycyBzdGlwdWxhdGUgc29y
dGluZwoJCQkJaWYgKCBvdXRlcm1vc3QgJiYgIXNlZWQgJiYgc2V0TWF0Y2hlZC5sZW5ndGggPiAw
ICYmCgkJCQkJKCBtYXRjaGVkQ291bnQgKyBzZXRNYXRjaGVycy5sZW5ndGggKSA+IDEgKSB7CgoJ
CQkJCVNpenpsZS51bmlxdWVTb3J0KCByZXN1bHRzICk7CgkJCQl9CgkJCX0KCgkJCS8vIE92ZXJy
aWRlIG1hbmlwdWxhdGlvbiBvZiBnbG9iYWxzIGJ5IG5lc3RlZCBtYXRjaGVycwoJCQlpZiAoIG91
dGVybW9zdCApIHsKCQkJCWRpcnJ1bnMgPSBkaXJydW5zVW5pcXVlOwoJCQkJb3V0ZXJtb3N0Q29u
dGV4dCA9IGNvbnRleHRCYWNrdXA7CgkJCX0KCgkJCXJldHVybiB1bm1hdGNoZWQ7CgkJfTsKCgly
ZXR1cm4gYnlTZXQgPwoJCW1hcmtGdW5jdGlvbiggc3VwZXJNYXRjaGVyICkgOgoJCXN1cGVyTWF0
Y2hlcjsKfQoKY29tcGlsZSA9IFNpenpsZS5jb21waWxlID0gZnVuY3Rpb24oIHNlbGVjdG9yLCBt
YXRjaCAvKiBJbnRlcm5hbCBVc2UgT25seSAqLyApIHsKCXZhciBpLAoJCXNldE1hdGNoZXJzID0g
W10sCgkJZWxlbWVudE1hdGNoZXJzID0gW10sCgkJY2FjaGVkID0gY29tcGlsZXJDYWNoZVsgc2Vs
ZWN0b3IgKyAiICIgXTsKCglpZiAoICFjYWNoZWQgKSB7CgkJLy8gR2VuZXJhdGUgYSBmdW5jdGlv
biBvZiByZWN1cnNpdmUgZnVuY3Rpb25zIHRoYXQgY2FuIGJlIHVzZWQgdG8gY2hlY2sgZWFjaCBl
bGVtZW50CgkJaWYgKCAhbWF0Y2ggKSB7CgkJCW1hdGNoID0gdG9rZW5pemUoIHNlbGVjdG9yICk7
CgkJfQoJCWkgPSBtYXRjaC5sZW5ndGg7CgkJd2hpbGUgKCBpLS0gKSB7CgkJCWNhY2hlZCA9IG1h
dGNoZXJGcm9tVG9rZW5zKCBtYXRjaFtpXSApOwoJCQlpZiAoIGNhY2hlZFsgZXhwYW5kbyBdICkg
ewoJCQkJc2V0TWF0Y2hlcnMucHVzaCggY2FjaGVkICk7CgkJCX0gZWxzZSB7CgkJCQllbGVtZW50
TWF0Y2hlcnMucHVzaCggY2FjaGVkICk7CgkJCX0KCQl9CgoJCS8vIENhY2hlIHRoZSBjb21waWxl
ZCBmdW5jdGlvbgoJCWNhY2hlZCA9IGNvbXBpbGVyQ2FjaGUoIHNlbGVjdG9yLCBtYXRjaGVyRnJv
bUdyb3VwTWF0Y2hlcnMoIGVsZW1lbnRNYXRjaGVycywgc2V0TWF0Y2hlcnMgKSApOwoKCQkvLyBT
YXZlIHNlbGVjdG9yIGFuZCB0b2tlbml6YXRpb24KCQljYWNoZWQuc2VsZWN0b3IgPSBzZWxlY3Rv
cjsKCX0KCXJldHVybiBjYWNoZWQ7Cn07CgovKioKICogQSBsb3ctbGV2ZWwgc2VsZWN0aW9uIGZ1
bmN0aW9uIHRoYXQgd29ya3Mgd2l0aCBTaXp6bGUncyBjb21waWxlZAogKiAgc2VsZWN0b3IgZnVu
Y3Rpb25zCiAqIEBwYXJhbSB7U3RyaW5nfEZ1bmN0aW9ufSBzZWxlY3RvciBBIHNlbGVjdG9yIG9y
IGEgcHJlLWNvbXBpbGVkCiAqICBzZWxlY3RvciBmdW5jdGlvbiBidWlsdCB3aXRoIFNpenpsZS5j
b21waWxlCiAqIEBwYXJhbSB7RWxlbWVudH0gY29udGV4dAogKiBAcGFyYW0ge0FycmF5fSBbcmVz
dWx0c10KICogQHBhcmFtIHtBcnJheX0gW3NlZWRdIEEgc2V0IG9mIGVsZW1lbnRzIHRvIG1hdGNo
IGFnYWluc3QKICovCnNlbGVjdCA9IFNpenpsZS5zZWxlY3QgPSBmdW5jdGlvbiggc2VsZWN0b3Is
IGNvbnRleHQsIHJlc3VsdHMsIHNlZWQgKSB7Cgl2YXIgaSwgdG9rZW5zLCB0b2tlbiwgdHlwZSwg
ZmluZCwKCQljb21waWxlZCA9IHR5cGVvZiBzZWxlY3RvciA9PT0gImZ1bmN0aW9uIiAmJiBzZWxl
Y3RvciwKCQltYXRjaCA9ICFzZWVkICYmIHRva2VuaXplKCAoc2VsZWN0b3IgPSBjb21waWxlZC5z
ZWxlY3RvciB8fCBzZWxlY3RvcikgKTsKCglyZXN1bHRzID0gcmVzdWx0cyB8fCBbXTsKCgkvLyBU
cnkgdG8gbWluaW1pemUgb3BlcmF0aW9ucyBpZiB0aGVyZSBpcyBubyBzZWVkIGFuZCBvbmx5IG9u
ZSBncm91cAoJaWYgKCBtYXRjaC5sZW5ndGggPT09IDEgKSB7CgoJCS8vIFRha2UgYSBzaG9ydGN1
dCBhbmQgc2V0IHRoZSBjb250ZXh0IGlmIHRoZSByb290IHNlbGVjdG9yIGlzIGFuIElECgkJdG9r
ZW5zID0gbWF0Y2hbMF0gPSBtYXRjaFswXS5zbGljZSggMCApOwoJCWlmICggdG9rZW5zLmxlbmd0
aCA+IDIgJiYgKHRva2VuID0gdG9rZW5zWzBdKS50eXBlID09PSAiSUQiICYmCgkJCQlzdXBwb3J0
LmdldEJ5SWQgJiYgY29udGV4dC5ub2RlVHlwZSA9PT0gOSAmJiBkb2N1bWVudElzSFRNTCAmJgoJ
CQkJRXhwci5yZWxhdGl2ZVsgdG9rZW5zWzFdLnR5cGUgXSApIHsKCgkJCWNvbnRleHQgPSAoIEV4
cHIuZmluZFsiSUQiXSggdG9rZW4ubWF0Y2hlc1swXS5yZXBsYWNlKHJ1bmVzY2FwZSwgZnVuZXNj
YXBlKSwgY29udGV4dCApIHx8IFtdIClbMF07CgkJCWlmICggIWNvbnRleHQgKSB7CgkJCQlyZXR1
cm4gcmVzdWx0czsKCgkJCS8vIFByZWNvbXBpbGVkIG1hdGNoZXJzIHdpbGwgc3RpbGwgdmVyaWZ5
IGFuY2VzdHJ5LCBzbyBzdGVwIHVwIGEgbGV2ZWwKCQkJfSBlbHNlIGlmICggY29tcGlsZWQgKSB7
CgkJCQljb250ZXh0ID0gY29udGV4dC5wYXJlbnROb2RlOwoJCQl9CgoJCQlzZWxlY3RvciA9IHNl
bGVjdG9yLnNsaWNlKCB0b2tlbnMuc2hpZnQoKS52YWx1ZS5sZW5ndGggKTsKCQl9CgoJCS8vIEZl
dGNoIGEgc2VlZCBzZXQgZm9yIHJpZ2h0LXRvLWxlZnQgbWF0Y2hpbmcKCQlpID0gbWF0Y2hFeHBy
WyJuZWVkc0NvbnRleHQiXS50ZXN0KCBzZWxlY3RvciApID8gMCA6IHRva2Vucy5sZW5ndGg7CgkJ
d2hpbGUgKCBpLS0gKSB7CgkJCXRva2VuID0gdG9rZW5zW2ldOwoKCQkJLy8gQWJvcnQgaWYgd2Ug
aGl0IGEgY29tYmluYXRvcgoJCQlpZiAoIEV4cHIucmVsYXRpdmVbICh0eXBlID0gdG9rZW4udHlw
ZSkgXSApIHsKCQkJCWJyZWFrOwoJCQl9CgkJCWlmICggKGZpbmQgPSBFeHByLmZpbmRbIHR5cGUg
XSkgKSB7CgkJCQkvLyBTZWFyY2gsIGV4cGFuZGluZyBjb250ZXh0IGZvciBsZWFkaW5nIHNpYmxp
bmcgY29tYmluYXRvcnMKCQkJCWlmICggKHNlZWQgPSBmaW5kKAoJCQkJCXRva2VuLm1hdGNoZXNb
MF0ucmVwbGFjZSggcnVuZXNjYXBlLCBmdW5lc2NhcGUgKSwKCQkJCQlyc2libGluZy50ZXN0KCB0
b2tlbnNbMF0udHlwZSApICYmIHRlc3RDb250ZXh0KCBjb250ZXh0LnBhcmVudE5vZGUgKSB8fCBj
b250ZXh0CgkJCQkpKSApIHsKCgkJCQkJLy8gSWYgc2VlZCBpcyBlbXB0eSBvciBubyB0b2tlbnMg
cmVtYWluLCB3ZSBjYW4gcmV0dXJuIGVhcmx5CgkJCQkJdG9rZW5zLnNwbGljZSggaSwgMSApOwoJ
CQkJCXNlbGVjdG9yID0gc2VlZC5sZW5ndGggJiYgdG9TZWxlY3RvciggdG9rZW5zICk7CgkJCQkJ
aWYgKCAhc2VsZWN0b3IgKSB7CgkJCQkJCXB1c2guYXBwbHkoIHJlc3VsdHMsIHNlZWQgKTsKCQkJ
CQkJcmV0dXJuIHJlc3VsdHM7CgkJCQkJfQoKCQkJCQlicmVhazsKCQkJCX0KCQkJfQoJCX0KCX0K
CgkvLyBDb21waWxlIGFuZCBleGVjdXRlIGEgZmlsdGVyaW5nIGZ1bmN0aW9uIGlmIG9uZSBpcyBu
b3QgcHJvdmlkZWQKCS8vIFByb3ZpZGUgYG1hdGNoYCB0byBhdm9pZCByZXRva2VuaXphdGlvbiBp
ZiB3ZSBtb2RpZmllZCB0aGUgc2VsZWN0b3IgYWJvdmUKCSggY29tcGlsZWQgfHwgY29tcGlsZSgg
c2VsZWN0b3IsIG1hdGNoICkgKSgKCQlzZWVkLAoJCWNvbnRleHQsCgkJIWRvY3VtZW50SXNIVE1M
LAoJCXJlc3VsdHMsCgkJcnNpYmxpbmcudGVzdCggc2VsZWN0b3IgKSAmJiB0ZXN0Q29udGV4dCgg
Y29udGV4dC5wYXJlbnROb2RlICkgfHwgY29udGV4dAoJKTsKCXJldHVybiByZXN1bHRzOwp9OwoK
Ly8gT25lLXRpbWUgYXNzaWdubWVudHMKCi8vIFNvcnQgc3RhYmlsaXR5CnN1cHBvcnQuc29ydFN0
YWJsZSA9IGV4cGFuZG8uc3BsaXQoIiIpLnNvcnQoIHNvcnRPcmRlciApLmpvaW4oIiIpID09PSBl
eHBhbmRvOwoKLy8gU3VwcG9ydDogQ2hyb21lIDE0LTM1KwovLyBBbHdheXMgYXNzdW1lIGR1cGxp
Y2F0ZXMgaWYgdGhleSBhcmVuJ3QgcGFzc2VkIHRvIHRoZSBjb21wYXJpc29uIGZ1bmN0aW9uCnN1
cHBvcnQuZGV0ZWN0RHVwbGljYXRlcyA9ICEhaGFzRHVwbGljYXRlOwoKLy8gSW5pdGlhbGl6ZSBh
Z2FpbnN0IHRoZSBkZWZhdWx0IGRvY3VtZW50CnNldERvY3VtZW50KCk7CgovLyBTdXBwb3J0OiBX
ZWJraXQ8NTM3LjMyIC0gU2FmYXJpIDYuMC4zL0Nocm9tZSAyNSAoZml4ZWQgaW4gQ2hyb21lIDI3
KQovLyBEZXRhY2hlZCBub2RlcyBjb25mb3VuZGluZ2x5IGZvbGxvdyAqZWFjaCBvdGhlcioKc3Vw
cG9ydC5zb3J0RGV0YWNoZWQgPSBhc3NlcnQoZnVuY3Rpb24oIGRpdjEgKSB7CgkvLyBTaG91bGQg
cmV0dXJuIDEsIGJ1dCByZXR1cm5zIDQgKGZvbGxvd2luZykKCXJldHVybiBkaXYxLmNvbXBhcmVE
b2N1bWVudFBvc2l0aW9uKCBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSApICYgMTsKfSk7
CgovLyBTdXBwb3J0OiBJRTw4Ci8vIFByZXZlbnQgYXR0cmlidXRlL3Byb3BlcnR5ICJpbnRlcnBv
bGF0aW9uIgovLyBodHRwOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvbXM1MzY0
MjklMjhWUy44NSUyOS5hc3B4CmlmICggIWFzc2VydChmdW5jdGlvbiggZGl2ICkgewoJZGl2Lmlu
bmVySFRNTCA9ICI8YSBocmVmPScjJz48L2E+IjsKCXJldHVybiBkaXYuZmlyc3RDaGlsZC5nZXRB
dHRyaWJ1dGUoImhyZWYiKSA9PT0gIiMiIDsKfSkgKSB7CglhZGRIYW5kbGUoICJ0eXBlfGhyZWZ8
aGVpZ2h0fHdpZHRoIiwgZnVuY3Rpb24oIGVsZW0sIG5hbWUsIGlzWE1MICkgewoJCWlmICggIWlz
WE1MICkgewoJCQlyZXR1cm4gZWxlbS5nZXRBdHRyaWJ1dGUoIG5hbWUsIG5hbWUudG9Mb3dlckNh
c2UoKSA9PT0gInR5cGUiID8gMSA6IDIgKTsKCQl9Cgl9KTsKfQoKLy8gU3VwcG9ydDogSUU8OQov
LyBVc2UgZGVmYXVsdFZhbHVlIGluIHBsYWNlIG9mIGdldEF0dHJpYnV0ZSgidmFsdWUiKQppZiAo
ICFzdXBwb3J0LmF0dHJpYnV0ZXMgfHwgIWFzc2VydChmdW5jdGlvbiggZGl2ICkgewoJZGl2Lmlu
bmVySFRNTCA9ICI8aW5wdXQvPiI7CglkaXYuZmlyc3RDaGlsZC5zZXRBdHRyaWJ1dGUoICJ2YWx1
ZSIsICIiICk7CglyZXR1cm4gZGl2LmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKCAidmFsdWUiICkg
PT09ICIiOwp9KSApIHsKCWFkZEhhbmRsZSggInZhbHVlIiwgZnVuY3Rpb24oIGVsZW0sIG5hbWUs
IGlzWE1MICkgewoJCWlmICggIWlzWE1MICYmIGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9
PT0gImlucHV0IiApIHsKCQkJcmV0dXJuIGVsZW0uZGVmYXVsdFZhbHVlOwoJCX0KCX0pOwp9Cgov
LyBTdXBwb3J0OiBJRTw5Ci8vIFVzZSBnZXRBdHRyaWJ1dGVOb2RlIHRvIGZldGNoIGJvb2xlYW5z
IHdoZW4gZ2V0QXR0cmlidXRlIGxpZXMKaWYgKCAhYXNzZXJ0KGZ1bmN0aW9uKCBkaXYgKSB7Cgly
ZXR1cm4gZGl2LmdldEF0dHJpYnV0ZSgiZGlzYWJsZWQiKSA9PSBudWxsOwp9KSApIHsKCWFkZEhh
bmRsZSggYm9vbGVhbnMsIGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCBpc1hNTCApIHsKCQl2YXIgdmFs
OwoJCWlmICggIWlzWE1MICkgewoJCQlyZXR1cm4gZWxlbVsgbmFtZSBdID09PSB0cnVlID8gbmFt
ZS50b0xvd2VyQ2FzZSgpIDoKCQkJCQkodmFsID0gZWxlbS5nZXRBdHRyaWJ1dGVOb2RlKCBuYW1l
ICkpICYmIHZhbC5zcGVjaWZpZWQgPwoJCQkJCXZhbC52YWx1ZSA6CgkJCQludWxsOwoJCX0KCX0p
Owp9CgpyZXR1cm4gU2l6emxlOwoKfSkoIHdpbmRvdyApOwoKCgpqUXVlcnkuZmluZCA9IFNpenps
ZTsKalF1ZXJ5LmV4cHIgPSBTaXp6bGUuc2VsZWN0b3JzOwpqUXVlcnkuZXhwclsiOiJdID0galF1
ZXJ5LmV4cHIucHNldWRvczsKalF1ZXJ5LnVuaXF1ZSA9IFNpenpsZS51bmlxdWVTb3J0OwpqUXVl
cnkudGV4dCA9IFNpenpsZS5nZXRUZXh0OwpqUXVlcnkuaXNYTUxEb2MgPSBTaXp6bGUuaXNYTUw7
CmpRdWVyeS5jb250YWlucyA9IFNpenpsZS5jb250YWluczsKCgoKdmFyIHJuZWVkc0NvbnRleHQg
PSBqUXVlcnkuZXhwci5tYXRjaC5uZWVkc0NvbnRleHQ7Cgp2YXIgcnNpbmdsZVRhZyA9ICgvXjwo
XHcrKVxzKlwvPz4oPzo8XC9cMT58KSQvKTsKCgoKdmFyIHJpc1NpbXBsZSA9IC9eLlteOiNcW1wu
LF0qJC87CgovLyBJbXBsZW1lbnQgdGhlIGlkZW50aWNhbCBmdW5jdGlvbmFsaXR5IGZvciBmaWx0
ZXIgYW5kIG5vdApmdW5jdGlvbiB3aW5ub3coIGVsZW1lbnRzLCBxdWFsaWZpZXIsIG5vdCApIHsK
CWlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHF1YWxpZmllciApICkgewoJCXJldHVybiBqUXVlcnku
Z3JlcCggZWxlbWVudHMsIGZ1bmN0aW9uKCBlbGVtLCBpICkgewoJCQkvKiBqc2hpbnQgLVcwMTgg
Ki8KCQkJcmV0dXJuICEhcXVhbGlmaWVyLmNhbGwoIGVsZW0sIGksIGVsZW0gKSAhPT0gbm90OwoJ
CX0pOwoKCX0KCglpZiAoIHF1YWxpZmllci5ub2RlVHlwZSApIHsKCQlyZXR1cm4galF1ZXJ5Lmdy
ZXAoIGVsZW1lbnRzLCBmdW5jdGlvbiggZWxlbSApIHsKCQkJcmV0dXJuICggZWxlbSA9PT0gcXVh
bGlmaWVyICkgIT09IG5vdDsKCQl9KTsKCgl9CgoJaWYgKCB0eXBlb2YgcXVhbGlmaWVyID09PSAi
c3RyaW5nIiApIHsKCQlpZiAoIHJpc1NpbXBsZS50ZXN0KCBxdWFsaWZpZXIgKSApIHsKCQkJcmV0
dXJuIGpRdWVyeS5maWx0ZXIoIHF1YWxpZmllciwgZWxlbWVudHMsIG5vdCApOwoJCX0KCgkJcXVh
bGlmaWVyID0galF1ZXJ5LmZpbHRlciggcXVhbGlmaWVyLCBlbGVtZW50cyApOwoJfQoKCXJldHVy
biBqUXVlcnkuZ3JlcCggZWxlbWVudHMsIGZ1bmN0aW9uKCBlbGVtICkgewoJCXJldHVybiAoIGpR
dWVyeS5pbkFycmF5KCBlbGVtLCBxdWFsaWZpZXIgKSA+PSAwICkgIT09IG5vdDsKCX0pOwp9Cgpq
UXVlcnkuZmlsdGVyID0gZnVuY3Rpb24oIGV4cHIsIGVsZW1zLCBub3QgKSB7Cgl2YXIgZWxlbSA9
IGVsZW1zWyAwIF07CgoJaWYgKCBub3QgKSB7CgkJZXhwciA9ICI6bm90KCIgKyBleHByICsgIiki
OwoJfQoKCXJldHVybiBlbGVtcy5sZW5ndGggPT09IDEgJiYgZWxlbS5ub2RlVHlwZSA9PT0gMSA/
CgkJalF1ZXJ5LmZpbmQubWF0Y2hlc1NlbGVjdG9yKCBlbGVtLCBleHByICkgPyBbIGVsZW0gXSA6
IFtdIDoKCQlqUXVlcnkuZmluZC5tYXRjaGVzKCBleHByLCBqUXVlcnkuZ3JlcCggZWxlbXMsIGZ1
bmN0aW9uKCBlbGVtICkgewoJCQlyZXR1cm4gZWxlbS5ub2RlVHlwZSA9PT0gMTsKCQl9KSk7Cn07
CgpqUXVlcnkuZm4uZXh0ZW5kKHsKCWZpbmQ6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHsKCQl2YXIg
aSwKCQkJcmV0ID0gW10sCgkJCXNlbGYgPSB0aGlzLAoJCQlsZW4gPSBzZWxmLmxlbmd0aDsKCgkJ
aWYgKCB0eXBlb2Ygc2VsZWN0b3IgIT09ICJzdHJpbmciICkgewoJCQlyZXR1cm4gdGhpcy5wdXNo
U3RhY2soIGpRdWVyeSggc2VsZWN0b3IgKS5maWx0ZXIoZnVuY3Rpb24oKSB7CgkJCQlmb3IgKCBp
ID0gMDsgaSA8IGxlbjsgaSsrICkgewoJCQkJCWlmICggalF1ZXJ5LmNvbnRhaW5zKCBzZWxmWyBp
IF0sIHRoaXMgKSApIHsKCQkJCQkJcmV0dXJuIHRydWU7CgkJCQkJfQoJCQkJfQoJCQl9KSApOwoJ
CX0KCgkJZm9yICggaSA9IDA7IGkgPCBsZW47IGkrKyApIHsKCQkJalF1ZXJ5LmZpbmQoIHNlbGVj
dG9yLCBzZWxmWyBpIF0sIHJldCApOwoJCX0KCgkJLy8gTmVlZGVkIGJlY2F1c2UgJCggc2VsZWN0
b3IsIGNvbnRleHQgKSBiZWNvbWVzICQoIGNvbnRleHQgKS5maW5kKCBzZWxlY3RvciApCgkJcmV0
ID0gdGhpcy5wdXNoU3RhY2soIGxlbiA+IDEgPyBqUXVlcnkudW5pcXVlKCByZXQgKSA6IHJldCAp
OwoJCXJldC5zZWxlY3RvciA9IHRoaXMuc2VsZWN0b3IgPyB0aGlzLnNlbGVjdG9yICsgIiAiICsg
c2VsZWN0b3IgOiBzZWxlY3RvcjsKCQlyZXR1cm4gcmV0OwoJfSwKCWZpbHRlcjogZnVuY3Rpb24o
IHNlbGVjdG9yICkgewoJCXJldHVybiB0aGlzLnB1c2hTdGFjayggd2lubm93KHRoaXMsIHNlbGVj
dG9yIHx8IFtdLCBmYWxzZSkgKTsKCX0sCglub3Q6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHsKCQly
ZXR1cm4gdGhpcy5wdXNoU3RhY2soIHdpbm5vdyh0aGlzLCBzZWxlY3RvciB8fCBbXSwgdHJ1ZSkg
KTsKCX0sCglpczogZnVuY3Rpb24oIHNlbGVjdG9yICkgewoJCXJldHVybiAhIXdpbm5vdygKCQkJ
dGhpcywKCgkJCS8vIElmIHRoaXMgaXMgYSBwb3NpdGlvbmFsL3JlbGF0aXZlIHNlbGVjdG9yLCBj
aGVjayBtZW1iZXJzaGlwIGluIHRoZSByZXR1cm5lZCBzZXQKCQkJLy8gc28gJCgicDpmaXJzdCIp
LmlzKCJwOmxhc3QiKSB3b24ndCByZXR1cm4gdHJ1ZSBmb3IgYSBkb2Mgd2l0aCB0d28gInAiLgoJ
CQl0eXBlb2Ygc2VsZWN0b3IgPT09ICJzdHJpbmciICYmIHJuZWVkc0NvbnRleHQudGVzdCggc2Vs
ZWN0b3IgKSA/CgkJCQlqUXVlcnkoIHNlbGVjdG9yICkgOgoJCQkJc2VsZWN0b3IgfHwgW10sCgkJ
CWZhbHNlCgkJKS5sZW5ndGg7Cgl9Cn0pOwoKCi8vIEluaXRpYWxpemUgYSBqUXVlcnkgb2JqZWN0
CgoKLy8gQSBjZW50cmFsIHJlZmVyZW5jZSB0byB0aGUgcm9vdCBqUXVlcnkoZG9jdW1lbnQpCnZh
ciByb290alF1ZXJ5LAoKCS8vIFVzZSB0aGUgY29ycmVjdCBkb2N1bWVudCBhY2NvcmRpbmdseSB3
aXRoIHdpbmRvdyBhcmd1bWVudCAoc2FuZGJveCkKCWRvY3VtZW50ID0gd2luZG93LmRvY3VtZW50
LAoKCS8vIEEgc2ltcGxlIHdheSB0byBjaGVjayBmb3IgSFRNTCBzdHJpbmdzCgkvLyBQcmlvcml0
aXplICNpZCBvdmVyIDx0YWc+IHRvIGF2b2lkIFhTUyB2aWEgbG9jYXRpb24uaGFzaCAoIzk1MjEp
CgkvLyBTdHJpY3QgSFRNTCByZWNvZ25pdGlvbiAoIzExMjkwOiBtdXN0IHN0YXJ0IHdpdGggPCkK
CXJxdWlja0V4cHIgPSAvXig/OlxzKig8W1x3XFddKz4pW14+XSp8IyhbXHctXSopKSQvLAoKCWlu
aXQgPSBqUXVlcnkuZm4uaW5pdCA9IGZ1bmN0aW9uKCBzZWxlY3RvciwgY29udGV4dCApIHsKCQl2
YXIgbWF0Y2gsIGVsZW07CgoJCS8vIEhBTkRMRTogJCgiIiksICQobnVsbCksICQodW5kZWZpbmVk
KSwgJChmYWxzZSkKCQlpZiAoICFzZWxlY3RvciApIHsKCQkJcmV0dXJuIHRoaXM7CgkJfQoKCQkv
LyBIYW5kbGUgSFRNTCBzdHJpbmdzCgkJaWYgKCB0eXBlb2Ygc2VsZWN0b3IgPT09ICJzdHJpbmci
ICkgewoJCQlpZiAoIHNlbGVjdG9yLmNoYXJBdCgwKSA9PT0gIjwiICYmIHNlbGVjdG9yLmNoYXJB
dCggc2VsZWN0b3IubGVuZ3RoIC0gMSApID09PSAiPiIgJiYgc2VsZWN0b3IubGVuZ3RoID49IDMg
KSB7CgkJCQkvLyBBc3N1bWUgdGhhdCBzdHJpbmdzIHRoYXQgc3RhcnQgYW5kIGVuZCB3aXRoIDw+
IGFyZSBIVE1MIGFuZCBza2lwIHRoZSByZWdleCBjaGVjawoJCQkJbWF0Y2ggPSBbIG51bGwsIHNl
bGVjdG9yLCBudWxsIF07CgoJCQl9IGVsc2UgewoJCQkJbWF0Y2ggPSBycXVpY2tFeHByLmV4ZWMo
IHNlbGVjdG9yICk7CgkJCX0KCgkJCS8vIE1hdGNoIGh0bWwgb3IgbWFrZSBzdXJlIG5vIGNvbnRl
eHQgaXMgc3BlY2lmaWVkIGZvciAjaWQKCQkJaWYgKCBtYXRjaCAmJiAobWF0Y2hbMV0gfHwgIWNv
bnRleHQpICkgewoKCQkJCS8vIEhBTkRMRTogJChodG1sKSAtPiAkKGFycmF5KQoJCQkJaWYgKCBt
YXRjaFsxXSApIHsKCQkJCQljb250ZXh0ID0gY29udGV4dCBpbnN0YW5jZW9mIGpRdWVyeSA/IGNv
bnRleHRbMF0gOiBjb250ZXh0OwoKCQkJCQkvLyBzY3JpcHRzIGlzIHRydWUgZm9yIGJhY2stY29t
cGF0CgkJCQkJLy8gSW50ZW50aW9uYWxseSBsZXQgdGhlIGVycm9yIGJlIHRocm93biBpZiBwYXJz
ZUhUTUwgaXMgbm90IHByZXNlbnQKCQkJCQlqUXVlcnkubWVyZ2UoIHRoaXMsIGpRdWVyeS5wYXJz
ZUhUTUwoCgkJCQkJCW1hdGNoWzFdLAoJCQkJCQljb250ZXh0ICYmIGNvbnRleHQubm9kZVR5cGUg
PyBjb250ZXh0Lm93bmVyRG9jdW1lbnQgfHwgY29udGV4dCA6IGRvY3VtZW50LAoJCQkJCQl0cnVl
CgkJCQkJKSApOwoKCQkJCQkvLyBIQU5ETEU6ICQoaHRtbCwgcHJvcHMpCgkJCQkJaWYgKCByc2lu
Z2xlVGFnLnRlc3QoIG1hdGNoWzFdICkgJiYgalF1ZXJ5LmlzUGxhaW5PYmplY3QoIGNvbnRleHQg
KSApIHsKCQkJCQkJZm9yICggbWF0Y2ggaW4gY29udGV4dCApIHsKCQkJCQkJCS8vIFByb3BlcnRp
ZXMgb2YgY29udGV4dCBhcmUgY2FsbGVkIGFzIG1ldGhvZHMgaWYgcG9zc2libGUKCQkJCQkJCWlm
ICggalF1ZXJ5LmlzRnVuY3Rpb24oIHRoaXNbIG1hdGNoIF0gKSApIHsKCQkJCQkJCQl0aGlzWyBt
YXRjaCBdKCBjb250ZXh0WyBtYXRjaCBdICk7CgoJCQkJCQkJLy8gLi4uYW5kIG90aGVyd2lzZSBz
ZXQgYXMgYXR0cmlidXRlcwoJCQkJCQkJfSBlbHNlIHsKCQkJCQkJCQl0aGlzLmF0dHIoIG1hdGNo
LCBjb250ZXh0WyBtYXRjaCBdICk7CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQl9CgoJCQkJCXJldHVy
biB0aGlzOwoKCQkJCS8vIEhBTkRMRTogJCgjaWQpCgkJCQl9IGVsc2UgewoJCQkJCWVsZW0gPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCggbWF0Y2hbMl0gKTsKCgkJCQkJLy8gQ2hlY2sgcGFyZW50
Tm9kZSB0byBjYXRjaCB3aGVuIEJsYWNrYmVycnkgNC42IHJldHVybnMKCQkJCQkvLyBub2RlcyB0
aGF0IGFyZSBubyBsb25nZXIgaW4gdGhlIGRvY3VtZW50ICM2OTYzCgkJCQkJaWYgKCBlbGVtICYm
IGVsZW0ucGFyZW50Tm9kZSApIHsKCQkJCQkJLy8gSGFuZGxlIHRoZSBjYXNlIHdoZXJlIElFIGFu
ZCBPcGVyYSByZXR1cm4gaXRlbXMKCQkJCQkJLy8gYnkgbmFtZSBpbnN0ZWFkIG9mIElECgkJCQkJ
CWlmICggZWxlbS5pZCAhPT0gbWF0Y2hbMl0gKSB7CgkJCQkJCQlyZXR1cm4gcm9vdGpRdWVyeS5m
aW5kKCBzZWxlY3RvciApOwoJCQkJCQl9CgoJCQkJCQkvLyBPdGhlcndpc2UsIHdlIGluamVjdCB0
aGUgZWxlbWVudCBkaXJlY3RseSBpbnRvIHRoZSBqUXVlcnkgb2JqZWN0CgkJCQkJCXRoaXMubGVu
Z3RoID0gMTsKCQkJCQkJdGhpc1swXSA9IGVsZW07CgkJCQkJfQoKCQkJCQl0aGlzLmNvbnRleHQg
PSBkb2N1bWVudDsKCQkJCQl0aGlzLnNlbGVjdG9yID0gc2VsZWN0b3I7CgkJCQkJcmV0dXJuIHRo
aXM7CgkJCQl9CgoJCQkvLyBIQU5ETEU6ICQoZXhwciwgJCguLi4pKQoJCQl9IGVsc2UgaWYgKCAh
Y29udGV4dCB8fCBjb250ZXh0LmpxdWVyeSApIHsKCQkJCXJldHVybiAoIGNvbnRleHQgfHwgcm9v
dGpRdWVyeSApLmZpbmQoIHNlbGVjdG9yICk7CgoJCQkvLyBIQU5ETEU6ICQoZXhwciwgY29udGV4
dCkKCQkJLy8gKHdoaWNoIGlzIGp1c3QgZXF1aXZhbGVudCB0bzogJChjb250ZXh0KS5maW5kKGV4
cHIpCgkJCX0gZWxzZSB7CgkJCQlyZXR1cm4gdGhpcy5jb25zdHJ1Y3RvciggY29udGV4dCApLmZp
bmQoIHNlbGVjdG9yICk7CgkJCX0KCgkJLy8gSEFORExFOiAkKERPTUVsZW1lbnQpCgkJfSBlbHNl
IGlmICggc2VsZWN0b3Iubm9kZVR5cGUgKSB7CgkJCXRoaXMuY29udGV4dCA9IHRoaXNbMF0gPSBz
ZWxlY3RvcjsKCQkJdGhpcy5sZW5ndGggPSAxOwoJCQlyZXR1cm4gdGhpczsKCgkJLy8gSEFORExF
OiAkKGZ1bmN0aW9uKQoJCS8vIFNob3J0Y3V0IGZvciBkb2N1bWVudCByZWFkeQoJCX0gZWxzZSBp
ZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCBzZWxlY3RvciApICkgewoJCQlyZXR1cm4gdHlwZW9mIHJv
b3RqUXVlcnkucmVhZHkgIT09ICJ1bmRlZmluZWQiID8KCQkJCXJvb3RqUXVlcnkucmVhZHkoIHNl
bGVjdG9yICkgOgoJCQkJLy8gRXhlY3V0ZSBpbW1lZGlhdGVseSBpZiByZWFkeSBpcyBub3QgcHJl
c2VudAoJCQkJc2VsZWN0b3IoIGpRdWVyeSApOwoJCX0KCgkJaWYgKCBzZWxlY3Rvci5zZWxlY3Rv
ciAhPT0gdW5kZWZpbmVkICkgewoJCQl0aGlzLnNlbGVjdG9yID0gc2VsZWN0b3Iuc2VsZWN0b3I7
CgkJCXRoaXMuY29udGV4dCA9IHNlbGVjdG9yLmNvbnRleHQ7CgkJfQoKCQlyZXR1cm4galF1ZXJ5
Lm1ha2VBcnJheSggc2VsZWN0b3IsIHRoaXMgKTsKCX07CgovLyBHaXZlIHRoZSBpbml0IGZ1bmN0
aW9uIHRoZSBqUXVlcnkgcHJvdG90eXBlIGZvciBsYXRlciBpbnN0YW50aWF0aW9uCmluaXQucHJv
dG90eXBlID0galF1ZXJ5LmZuOwoKLy8gSW5pdGlhbGl6ZSBjZW50cmFsIHJlZmVyZW5jZQpyb290
alF1ZXJ5ID0galF1ZXJ5KCBkb2N1bWVudCApOwoKCnZhciBycGFyZW50c3ByZXYgPSAvXig/OnBh
cmVudHN8cHJldig/OlVudGlsfEFsbCkpLywKCS8vIG1ldGhvZHMgZ3VhcmFudGVlZCB0byBwcm9k
dWNlIGEgdW5pcXVlIHNldCB3aGVuIHN0YXJ0aW5nIGZyb20gYSB1bmlxdWUgc2V0CglndWFyYW50
ZWVkVW5pcXVlID0gewoJCWNoaWxkcmVuOiB0cnVlLAoJCWNvbnRlbnRzOiB0cnVlLAoJCW5leHQ6
IHRydWUsCgkJcHJldjogdHJ1ZQoJfTsKCmpRdWVyeS5leHRlbmQoewoJZGlyOiBmdW5jdGlvbigg
ZWxlbSwgZGlyLCB1bnRpbCApIHsKCQl2YXIgbWF0Y2hlZCA9IFtdLAoJCQljdXIgPSBlbGVtWyBk
aXIgXTsKCgkJd2hpbGUgKCBjdXIgJiYgY3VyLm5vZGVUeXBlICE9PSA5ICYmICh1bnRpbCA9PT0g
dW5kZWZpbmVkIHx8IGN1ci5ub2RlVHlwZSAhPT0gMSB8fCAhalF1ZXJ5KCBjdXIgKS5pcyggdW50
aWwgKSkgKSB7CgkJCWlmICggY3VyLm5vZGVUeXBlID09PSAxICkgewoJCQkJbWF0Y2hlZC5wdXNo
KCBjdXIgKTsKCQkJfQoJCQljdXIgPSBjdXJbZGlyXTsKCQl9CgkJcmV0dXJuIG1hdGNoZWQ7Cgl9
LAoKCXNpYmxpbmc6IGZ1bmN0aW9uKCBuLCBlbGVtICkgewoJCXZhciByID0gW107CgoJCWZvciAo
IDsgbjsgbiA9IG4ubmV4dFNpYmxpbmcgKSB7CgkJCWlmICggbi5ub2RlVHlwZSA9PT0gMSAmJiBu
ICE9PSBlbGVtICkgewoJCQkJci5wdXNoKCBuICk7CgkJCX0KCQl9CgoJCXJldHVybiByOwoJfQp9
KTsKCmpRdWVyeS5mbi5leHRlbmQoewoJaGFzOiBmdW5jdGlvbiggdGFyZ2V0ICkgewoJCXZhciBp
LAoJCQl0YXJnZXRzID0galF1ZXJ5KCB0YXJnZXQsIHRoaXMgKSwKCQkJbGVuID0gdGFyZ2V0cy5s
ZW5ndGg7CgoJCXJldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbigpIHsKCQkJZm9yICggaSA9IDA7
IGkgPCBsZW47IGkrKyApIHsKCQkJCWlmICggalF1ZXJ5LmNvbnRhaW5zKCB0aGlzLCB0YXJnZXRz
W2ldICkgKSB7CgkJCQkJcmV0dXJuIHRydWU7CgkJCQl9CgkJCX0KCQl9KTsKCX0sCgoJY2xvc2Vz
dDogZnVuY3Rpb24oIHNlbGVjdG9ycywgY29udGV4dCApIHsKCQl2YXIgY3VyLAoJCQlpID0gMCwK
CQkJbCA9IHRoaXMubGVuZ3RoLAoJCQltYXRjaGVkID0gW10sCgkJCXBvcyA9IHJuZWVkc0NvbnRl
eHQudGVzdCggc2VsZWN0b3JzICkgfHwgdHlwZW9mIHNlbGVjdG9ycyAhPT0gInN0cmluZyIgPwoJ
CQkJalF1ZXJ5KCBzZWxlY3RvcnMsIGNvbnRleHQgfHwgdGhpcy5jb250ZXh0ICkgOgoJCQkJMDsK
CgkJZm9yICggOyBpIDwgbDsgaSsrICkgewoJCQlmb3IgKCBjdXIgPSB0aGlzW2ldOyBjdXIgJiYg
Y3VyICE9PSBjb250ZXh0OyBjdXIgPSBjdXIucGFyZW50Tm9kZSApIHsKCQkJCS8vIEFsd2F5cyBz
a2lwIGRvY3VtZW50IGZyYWdtZW50cwoJCQkJaWYgKCBjdXIubm9kZVR5cGUgPCAxMSAmJiAocG9z
ID8KCQkJCQlwb3MuaW5kZXgoY3VyKSA+IC0xIDoKCgkJCQkJLy8gRG9uJ3QgcGFzcyBub24tZWxl
bWVudHMgdG8gU2l6emxlCgkJCQkJY3VyLm5vZGVUeXBlID09PSAxICYmCgkJCQkJCWpRdWVyeS5m
aW5kLm1hdGNoZXNTZWxlY3RvcihjdXIsIHNlbGVjdG9ycykpICkgewoKCQkJCQltYXRjaGVkLnB1
c2goIGN1ciApOwoJCQkJCWJyZWFrOwoJCQkJfQoJCQl9CgkJfQoKCQlyZXR1cm4gdGhpcy5wdXNo
U3RhY2soIG1hdGNoZWQubGVuZ3RoID4gMSA/IGpRdWVyeS51bmlxdWUoIG1hdGNoZWQgKSA6IG1h
dGNoZWQgKTsKCX0sCgoJLy8gRGV0ZXJtaW5lIHRoZSBwb3NpdGlvbiBvZiBhbiBlbGVtZW50IHdp
dGhpbgoJLy8gdGhlIG1hdGNoZWQgc2V0IG9mIGVsZW1lbnRzCglpbmRleDogZnVuY3Rpb24oIGVs
ZW0gKSB7CgoJCS8vIE5vIGFyZ3VtZW50LCByZXR1cm4gaW5kZXggaW4gcGFyZW50CgkJaWYgKCAh
ZWxlbSApIHsKCQkJcmV0dXJuICggdGhpc1swXSAmJiB0aGlzWzBdLnBhcmVudE5vZGUgKSA/IHRo
aXMuZmlyc3QoKS5wcmV2QWxsKCkubGVuZ3RoIDogLTE7CgkJfQoKCQkvLyBpbmRleCBpbiBzZWxl
Y3RvcgoJCWlmICggdHlwZW9mIGVsZW0gPT09ICJzdHJpbmciICkgewoJCQlyZXR1cm4galF1ZXJ5
LmluQXJyYXkoIHRoaXNbMF0sIGpRdWVyeSggZWxlbSApICk7CgkJfQoKCQkvLyBMb2NhdGUgdGhl
IHBvc2l0aW9uIG9mIHRoZSBkZXNpcmVkIGVsZW1lbnQKCQlyZXR1cm4galF1ZXJ5LmluQXJyYXko
CgkJCS8vIElmIGl0IHJlY2VpdmVzIGEgalF1ZXJ5IG9iamVjdCwgdGhlIGZpcnN0IGVsZW1lbnQg
aXMgdXNlZAoJCQllbGVtLmpxdWVyeSA/IGVsZW1bMF0gOiBlbGVtLCB0aGlzICk7Cgl9LAoKCWFk
ZDogZnVuY3Rpb24oIHNlbGVjdG9yLCBjb250ZXh0ICkgewoJCXJldHVybiB0aGlzLnB1c2hTdGFj
aygKCQkJalF1ZXJ5LnVuaXF1ZSgKCQkJCWpRdWVyeS5tZXJnZSggdGhpcy5nZXQoKSwgalF1ZXJ5
KCBzZWxlY3RvciwgY29udGV4dCApICkKCQkJKQoJCSk7Cgl9LAoKCWFkZEJhY2s6IGZ1bmN0aW9u
KCBzZWxlY3RvciApIHsKCQlyZXR1cm4gdGhpcy5hZGQoIHNlbGVjdG9yID09IG51bGwgPwoJCQl0
aGlzLnByZXZPYmplY3QgOiB0aGlzLnByZXZPYmplY3QuZmlsdGVyKHNlbGVjdG9yKQoJCSk7Cgl9
Cn0pOwoKZnVuY3Rpb24gc2libGluZyggY3VyLCBkaXIgKSB7CglkbyB7CgkJY3VyID0gY3VyWyBk
aXIgXTsKCX0gd2hpbGUgKCBjdXIgJiYgY3VyLm5vZGVUeXBlICE9PSAxICk7CgoJcmV0dXJuIGN1
cjsKfQoKalF1ZXJ5LmVhY2goewoJcGFyZW50OiBmdW5jdGlvbiggZWxlbSApIHsKCQl2YXIgcGFy
ZW50ID0gZWxlbS5wYXJlbnROb2RlOwoJCXJldHVybiBwYXJlbnQgJiYgcGFyZW50Lm5vZGVUeXBl
ICE9PSAxMSA/IHBhcmVudCA6IG51bGw7Cgl9LAoJcGFyZW50czogZnVuY3Rpb24oIGVsZW0gKSB7
CgkJcmV0dXJuIGpRdWVyeS5kaXIoIGVsZW0sICJwYXJlbnROb2RlIiApOwoJfSwKCXBhcmVudHNV
bnRpbDogZnVuY3Rpb24oIGVsZW0sIGksIHVudGlsICkgewoJCXJldHVybiBqUXVlcnkuZGlyKCBl
bGVtLCAicGFyZW50Tm9kZSIsIHVudGlsICk7Cgl9LAoJbmV4dDogZnVuY3Rpb24oIGVsZW0gKSB7
CgkJcmV0dXJuIHNpYmxpbmcoIGVsZW0sICJuZXh0U2libGluZyIgKTsKCX0sCglwcmV2OiBmdW5j
dGlvbiggZWxlbSApIHsKCQlyZXR1cm4gc2libGluZyggZWxlbSwgInByZXZpb3VzU2libGluZyIg
KTsKCX0sCgluZXh0QWxsOiBmdW5jdGlvbiggZWxlbSApIHsKCQlyZXR1cm4galF1ZXJ5LmRpcigg
ZWxlbSwgIm5leHRTaWJsaW5nIiApOwoJfSwKCXByZXZBbGw6IGZ1bmN0aW9uKCBlbGVtICkgewoJ
CXJldHVybiBqUXVlcnkuZGlyKCBlbGVtLCAicHJldmlvdXNTaWJsaW5nIiApOwoJfSwKCW5leHRV
bnRpbDogZnVuY3Rpb24oIGVsZW0sIGksIHVudGlsICkgewoJCXJldHVybiBqUXVlcnkuZGlyKCBl
bGVtLCAibmV4dFNpYmxpbmciLCB1bnRpbCApOwoJfSwKCXByZXZVbnRpbDogZnVuY3Rpb24oIGVs
ZW0sIGksIHVudGlsICkgewoJCXJldHVybiBqUXVlcnkuZGlyKCBlbGVtLCAicHJldmlvdXNTaWJs
aW5nIiwgdW50aWwgKTsKCX0sCglzaWJsaW5nczogZnVuY3Rpb24oIGVsZW0gKSB7CgkJcmV0dXJu
IGpRdWVyeS5zaWJsaW5nKCAoIGVsZW0ucGFyZW50Tm9kZSB8fCB7fSApLmZpcnN0Q2hpbGQsIGVs
ZW0gKTsKCX0sCgljaGlsZHJlbjogZnVuY3Rpb24oIGVsZW0gKSB7CgkJcmV0dXJuIGpRdWVyeS5z
aWJsaW5nKCBlbGVtLmZpcnN0Q2hpbGQgKTsKCX0sCgljb250ZW50czogZnVuY3Rpb24oIGVsZW0g
KSB7CgkJcmV0dXJuIGpRdWVyeS5ub2RlTmFtZSggZWxlbSwgImlmcmFtZSIgKSA/CgkJCWVsZW0u
Y29udGVudERvY3VtZW50IHx8IGVsZW0uY29udGVudFdpbmRvdy5kb2N1bWVudCA6CgkJCWpRdWVy
eS5tZXJnZSggW10sIGVsZW0uY2hpbGROb2RlcyApOwoJfQp9LCBmdW5jdGlvbiggbmFtZSwgZm4g
KSB7CglqUXVlcnkuZm5bIG5hbWUgXSA9IGZ1bmN0aW9uKCB1bnRpbCwgc2VsZWN0b3IgKSB7CgkJ
dmFyIHJldCA9IGpRdWVyeS5tYXAoIHRoaXMsIGZuLCB1bnRpbCApOwoKCQlpZiAoIG5hbWUuc2xp
Y2UoIC01ICkgIT09ICJVbnRpbCIgKSB7CgkJCXNlbGVjdG9yID0gdW50aWw7CgkJfQoKCQlpZiAo
IHNlbGVjdG9yICYmIHR5cGVvZiBzZWxlY3RvciA9PT0gInN0cmluZyIgKSB7CgkJCXJldCA9IGpR
dWVyeS5maWx0ZXIoIHNlbGVjdG9yLCByZXQgKTsKCQl9CgoJCWlmICggdGhpcy5sZW5ndGggPiAx
ICkgewoJCQkvLyBSZW1vdmUgZHVwbGljYXRlcwoJCQlpZiAoICFndWFyYW50ZWVkVW5pcXVlWyBu
YW1lIF0gKSB7CgkJCQlyZXQgPSBqUXVlcnkudW5pcXVlKCByZXQgKTsKCQkJfQoKCQkJLy8gUmV2
ZXJzZSBvcmRlciBmb3IgcGFyZW50cyogYW5kIHByZXYtZGVyaXZhdGl2ZXMKCQkJaWYgKCBycGFy
ZW50c3ByZXYudGVzdCggbmFtZSApICkgewoJCQkJcmV0ID0gcmV0LnJldmVyc2UoKTsKCQkJfQoJ
CX0KCgkJcmV0dXJuIHRoaXMucHVzaFN0YWNrKCByZXQgKTsKCX07Cn0pOwp2YXIgcm5vdHdoaXRl
ID0gKC9cUysvZyk7CgoKCi8vIFN0cmluZyB0byBPYmplY3Qgb3B0aW9ucyBmb3JtYXQgY2FjaGUK
dmFyIG9wdGlvbnNDYWNoZSA9IHt9OwoKLy8gQ29udmVydCBTdHJpbmctZm9ybWF0dGVkIG9wdGlv
bnMgaW50byBPYmplY3QtZm9ybWF0dGVkIG9uZXMgYW5kIHN0b3JlIGluIGNhY2hlCmZ1bmN0aW9u
IGNyZWF0ZU9wdGlvbnMoIG9wdGlvbnMgKSB7Cgl2YXIgb2JqZWN0ID0gb3B0aW9uc0NhY2hlWyBv
cHRpb25zIF0gPSB7fTsKCWpRdWVyeS5lYWNoKCBvcHRpb25zLm1hdGNoKCBybm90d2hpdGUgKSB8
fCBbXSwgZnVuY3Rpb24oIF8sIGZsYWcgKSB7CgkJb2JqZWN0WyBmbGFnIF0gPSB0cnVlOwoJfSk7
CglyZXR1cm4gb2JqZWN0Owp9CgovKgogKiBDcmVhdGUgYSBjYWxsYmFjayBsaXN0IHVzaW5nIHRo
ZSBmb2xsb3dpbmcgcGFyYW1ldGVyczoKICoKICoJb3B0aW9uczogYW4gb3B0aW9uYWwgbGlzdCBv
ZiBzcGFjZS1zZXBhcmF0ZWQgb3B0aW9ucyB0aGF0IHdpbGwgY2hhbmdlIGhvdwogKgkJCXRoZSBj
YWxsYmFjayBsaXN0IGJlaGF2ZXMgb3IgYSBtb3JlIHRyYWRpdGlvbmFsIG9wdGlvbiBvYmplY3QK
ICoKICogQnkgZGVmYXVsdCBhIGNhbGxiYWNrIGxpc3Qgd2lsbCBhY3QgbGlrZSBhbiBldmVudCBj
YWxsYmFjayBsaXN0IGFuZCBjYW4gYmUKICogImZpcmVkIiBtdWx0aXBsZSB0aW1lcy4KICoKICog
UG9zc2libGUgb3B0aW9uczoKICoKICoJb25jZToJCQl3aWxsIGVuc3VyZSB0aGUgY2FsbGJhY2sg
bGlzdCBjYW4gb25seSBiZSBmaXJlZCBvbmNlIChsaWtlIGEgRGVmZXJyZWQpCiAqCiAqCW1lbW9y
eToJCQl3aWxsIGtlZXAgdHJhY2sgb2YgcHJldmlvdXMgdmFsdWVzIGFuZCB3aWxsIGNhbGwgYW55
IGNhbGxiYWNrIGFkZGVkCiAqCQkJCQlhZnRlciB0aGUgbGlzdCBoYXMgYmVlbiBmaXJlZCByaWdo
dCBhd2F5IHdpdGggdGhlIGxhdGVzdCAibWVtb3JpemVkIgogKgkJCQkJdmFsdWVzIChsaWtlIGEg
RGVmZXJyZWQpCiAqCiAqCXVuaXF1ZToJCQl3aWxsIGVuc3VyZSBhIGNhbGxiYWNrIGNhbiBvbmx5
IGJlIGFkZGVkIG9uY2UgKG5vIGR1cGxpY2F0ZSBpbiB0aGUgbGlzdCkKICoKICoJc3RvcE9uRmFs
c2U6CWludGVycnVwdCBjYWxsaW5ncyB3aGVuIGEgY2FsbGJhY2sgcmV0dXJucyBmYWxzZQogKgog
Ki8KalF1ZXJ5LkNhbGxiYWNrcyA9IGZ1bmN0aW9uKCBvcHRpb25zICkgewoKCS8vIENvbnZlcnQg
b3B0aW9ucyBmcm9tIFN0cmluZy1mb3JtYXR0ZWQgdG8gT2JqZWN0LWZvcm1hdHRlZCBpZiBuZWVk
ZWQKCS8vICh3ZSBjaGVjayBpbiBjYWNoZSBmaXJzdCkKCW9wdGlvbnMgPSB0eXBlb2Ygb3B0aW9u
cyA9PT0gInN0cmluZyIgPwoJCSggb3B0aW9uc0NhY2hlWyBvcHRpb25zIF0gfHwgY3JlYXRlT3B0
aW9ucyggb3B0aW9ucyApICkgOgoJCWpRdWVyeS5leHRlbmQoIHt9LCBvcHRpb25zICk7CgoJdmFy
IC8vIEZsYWcgdG8ga25vdyBpZiBsaXN0IGlzIGN1cnJlbnRseSBmaXJpbmcKCQlmaXJpbmcsCgkJ
Ly8gTGFzdCBmaXJlIHZhbHVlIChmb3Igbm9uLWZvcmdldHRhYmxlIGxpc3RzKQoJCW1lbW9yeSwK
CQkvLyBGbGFnIHRvIGtub3cgaWYgbGlzdCB3YXMgYWxyZWFkeSBmaXJlZAoJCWZpcmVkLAoJCS8v
IEVuZCBvZiB0aGUgbG9vcCB3aGVuIGZpcmluZwoJCWZpcmluZ0xlbmd0aCwKCQkvLyBJbmRleCBv
ZiBjdXJyZW50bHkgZmlyaW5nIGNhbGxiYWNrIChtb2RpZmllZCBieSByZW1vdmUgaWYgbmVlZGVk
KQoJCWZpcmluZ0luZGV4LAoJCS8vIEZpcnN0IGNhbGxiYWNrIHRvIGZpcmUgKHVzZWQgaW50ZXJu
YWxseSBieSBhZGQgYW5kIGZpcmVXaXRoKQoJCWZpcmluZ1N0YXJ0LAoJCS8vIEFjdHVhbCBjYWxs
YmFjayBsaXN0CgkJbGlzdCA9IFtdLAoJCS8vIFN0YWNrIG9mIGZpcmUgY2FsbHMgZm9yIHJlcGVh
dGFibGUgbGlzdHMKCQlzdGFjayA9ICFvcHRpb25zLm9uY2UgJiYgW10sCgkJLy8gRmlyZSBjYWxs
YmFja3MKCQlmaXJlID0gZnVuY3Rpb24oIGRhdGEgKSB7CgkJCW1lbW9yeSA9IG9wdGlvbnMubWVt
b3J5ICYmIGRhdGE7CgkJCWZpcmVkID0gdHJ1ZTsKCQkJZmlyaW5nSW5kZXggPSBmaXJpbmdTdGFy
dCB8fCAwOwoJCQlmaXJpbmdTdGFydCA9IDA7CgkJCWZpcmluZ0xlbmd0aCA9IGxpc3QubGVuZ3Ro
OwoJCQlmaXJpbmcgPSB0cnVlOwoJCQlmb3IgKCA7IGxpc3QgJiYgZmlyaW5nSW5kZXggPCBmaXJp
bmdMZW5ndGg7IGZpcmluZ0luZGV4KysgKSB7CgkJCQlpZiAoIGxpc3RbIGZpcmluZ0luZGV4IF0u
YXBwbHkoIGRhdGFbIDAgXSwgZGF0YVsgMSBdICkgPT09IGZhbHNlICYmIG9wdGlvbnMuc3RvcE9u
RmFsc2UgKSB7CgkJCQkJbWVtb3J5ID0gZmFsc2U7IC8vIFRvIHByZXZlbnQgZnVydGhlciBjYWxs
cyB1c2luZyBhZGQKCQkJCQlicmVhazsKCQkJCX0KCQkJfQoJCQlmaXJpbmcgPSBmYWxzZTsKCQkJ
aWYgKCBsaXN0ICkgewoJCQkJaWYgKCBzdGFjayApIHsKCQkJCQlpZiAoIHN0YWNrLmxlbmd0aCAp
IHsKCQkJCQkJZmlyZSggc3RhY2suc2hpZnQoKSApOwoJCQkJCX0KCQkJCX0gZWxzZSBpZiAoIG1l
bW9yeSApIHsKCQkJCQlsaXN0ID0gW107CgkJCQl9IGVsc2UgewoJCQkJCXNlbGYuZGlzYWJsZSgp
OwoJCQkJfQoJCQl9CgkJfSwKCQkvLyBBY3R1YWwgQ2FsbGJhY2tzIG9iamVjdAoJCXNlbGYgPSB7
CgkJCS8vIEFkZCBhIGNhbGxiYWNrIG9yIGEgY29sbGVjdGlvbiBvZiBjYWxsYmFja3MgdG8gdGhl
IGxpc3QKCQkJYWRkOiBmdW5jdGlvbigpIHsKCQkJCWlmICggbGlzdCApIHsKCQkJCQkvLyBGaXJz
dCwgd2Ugc2F2ZSB0aGUgY3VycmVudCBsZW5ndGgKCQkJCQl2YXIgc3RhcnQgPSBsaXN0Lmxlbmd0
aDsKCQkJCQkoZnVuY3Rpb24gYWRkKCBhcmdzICkgewoJCQkJCQlqUXVlcnkuZWFjaCggYXJncywg
ZnVuY3Rpb24oIF8sIGFyZyApIHsKCQkJCQkJCXZhciB0eXBlID0galF1ZXJ5LnR5cGUoIGFyZyAp
OwoJCQkJCQkJaWYgKCB0eXBlID09PSAiZnVuY3Rpb24iICkgewoJCQkJCQkJCWlmICggIW9wdGlv
bnMudW5pcXVlIHx8ICFzZWxmLmhhcyggYXJnICkgKSB7CgkJCQkJCQkJCWxpc3QucHVzaCggYXJn
ICk7CgkJCQkJCQkJfQoJCQkJCQkJfSBlbHNlIGlmICggYXJnICYmIGFyZy5sZW5ndGggJiYgdHlw
ZSAhPT0gInN0cmluZyIgKSB7CgkJCQkJCQkJLy8gSW5zcGVjdCByZWN1cnNpdmVseQoJCQkJCQkJ
CWFkZCggYXJnICk7CgkJCQkJCQl9CgkJCQkJCX0pOwoJCQkJCX0pKCBhcmd1bWVudHMgKTsKCQkJ
CQkvLyBEbyB3ZSBuZWVkIHRvIGFkZCB0aGUgY2FsbGJhY2tzIHRvIHRoZQoJCQkJCS8vIGN1cnJl
bnQgZmlyaW5nIGJhdGNoPwoJCQkJCWlmICggZmlyaW5nICkgewoJCQkJCQlmaXJpbmdMZW5ndGgg
PSBsaXN0Lmxlbmd0aDsKCQkJCQkvLyBXaXRoIG1lbW9yeSwgaWYgd2UncmUgbm90IGZpcmluZyB0
aGVuCgkJCQkJLy8gd2Ugc2hvdWxkIGNhbGwgcmlnaHQgYXdheQoJCQkJCX0gZWxzZSBpZiAoIG1l
bW9yeSApIHsKCQkJCQkJZmlyaW5nU3RhcnQgPSBzdGFydDsKCQkJCQkJZmlyZSggbWVtb3J5ICk7
CgkJCQkJfQoJCQkJfQoJCQkJcmV0dXJuIHRoaXM7CgkJCX0sCgkJCS8vIFJlbW92ZSBhIGNhbGxi
YWNrIGZyb20gdGhlIGxpc3QKCQkJcmVtb3ZlOiBmdW5jdGlvbigpIHsKCQkJCWlmICggbGlzdCAp
IHsKCQkJCQlqUXVlcnkuZWFjaCggYXJndW1lbnRzLCBmdW5jdGlvbiggXywgYXJnICkgewoJCQkJ
CQl2YXIgaW5kZXg7CgkJCQkJCXdoaWxlICggKCBpbmRleCA9IGpRdWVyeS5pbkFycmF5KCBhcmcs
IGxpc3QsIGluZGV4ICkgKSA+IC0xICkgewoJCQkJCQkJbGlzdC5zcGxpY2UoIGluZGV4LCAxICk7
CgkJCQkJCQkvLyBIYW5kbGUgZmlyaW5nIGluZGV4ZXMKCQkJCQkJCWlmICggZmlyaW5nICkgewoJ
CQkJCQkJCWlmICggaW5kZXggPD0gZmlyaW5nTGVuZ3RoICkgewoJCQkJCQkJCQlmaXJpbmdMZW5n
dGgtLTsKCQkJCQkJCQl9CgkJCQkJCQkJaWYgKCBpbmRleCA8PSBmaXJpbmdJbmRleCApIHsKCQkJ
CQkJCQkJZmlyaW5nSW5kZXgtLTsKCQkJCQkJCQl9CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQl9KTsK
CQkJCX0KCQkJCXJldHVybiB0aGlzOwoJCQl9LAoJCQkvLyBDaGVjayBpZiBhIGdpdmVuIGNhbGxi
YWNrIGlzIGluIHRoZSBsaXN0LgoJCQkvLyBJZiBubyBhcmd1bWVudCBpcyBnaXZlbiwgcmV0dXJu
IHdoZXRoZXIgb3Igbm90IGxpc3QgaGFzIGNhbGxiYWNrcyBhdHRhY2hlZC4KCQkJaGFzOiBmdW5j
dGlvbiggZm4gKSB7CgkJCQlyZXR1cm4gZm4gPyBqUXVlcnkuaW5BcnJheSggZm4sIGxpc3QgKSA+
IC0xIDogISEoIGxpc3QgJiYgbGlzdC5sZW5ndGggKTsKCQkJfSwKCQkJLy8gUmVtb3ZlIGFsbCBj
YWxsYmFja3MgZnJvbSB0aGUgbGlzdAoJCQllbXB0eTogZnVuY3Rpb24oKSB7CgkJCQlsaXN0ID0g
W107CgkJCQlmaXJpbmdMZW5ndGggPSAwOwoJCQkJcmV0dXJuIHRoaXM7CgkJCX0sCgkJCS8vIEhh
dmUgdGhlIGxpc3QgZG8gbm90aGluZyBhbnltb3JlCgkJCWRpc2FibGU6IGZ1bmN0aW9uKCkgewoJ
CQkJbGlzdCA9IHN0YWNrID0gbWVtb3J5ID0gdW5kZWZpbmVkOwoJCQkJcmV0dXJuIHRoaXM7CgkJ
CX0sCgkJCS8vIElzIGl0IGRpc2FibGVkPwoJCQlkaXNhYmxlZDogZnVuY3Rpb24oKSB7CgkJCQly
ZXR1cm4gIWxpc3Q7CgkJCX0sCgkJCS8vIExvY2sgdGhlIGxpc3QgaW4gaXRzIGN1cnJlbnQgc3Rh
dGUKCQkJbG9jazogZnVuY3Rpb24oKSB7CgkJCQlzdGFjayA9IHVuZGVmaW5lZDsKCQkJCWlmICgg
IW1lbW9yeSApIHsKCQkJCQlzZWxmLmRpc2FibGUoKTsKCQkJCX0KCQkJCXJldHVybiB0aGlzOwoJ
CQl9LAoJCQkvLyBJcyBpdCBsb2NrZWQ/CgkJCWxvY2tlZDogZnVuY3Rpb24oKSB7CgkJCQlyZXR1
cm4gIXN0YWNrOwoJCQl9LAoJCQkvLyBDYWxsIGFsbCBjYWxsYmFja3Mgd2l0aCB0aGUgZ2l2ZW4g
Y29udGV4dCBhbmQgYXJndW1lbnRzCgkJCWZpcmVXaXRoOiBmdW5jdGlvbiggY29udGV4dCwgYXJn
cyApIHsKCQkJCWlmICggbGlzdCAmJiAoICFmaXJlZCB8fCBzdGFjayApICkgewoJCQkJCWFyZ3Mg
PSBhcmdzIHx8IFtdOwoJCQkJCWFyZ3MgPSBbIGNvbnRleHQsIGFyZ3Muc2xpY2UgPyBhcmdzLnNs
aWNlKCkgOiBhcmdzIF07CgkJCQkJaWYgKCBmaXJpbmcgKSB7CgkJCQkJCXN0YWNrLnB1c2goIGFy
Z3MgKTsKCQkJCQl9IGVsc2UgewoJCQkJCQlmaXJlKCBhcmdzICk7CgkJCQkJfQoJCQkJfQoJCQkJ
cmV0dXJuIHRoaXM7CgkJCX0sCgkJCS8vIENhbGwgYWxsIHRoZSBjYWxsYmFja3Mgd2l0aCB0aGUg
Z2l2ZW4gYXJndW1lbnRzCgkJCWZpcmU6IGZ1bmN0aW9uKCkgewoJCQkJc2VsZi5maXJlV2l0aCgg
dGhpcywgYXJndW1lbnRzICk7CgkJCQlyZXR1cm4gdGhpczsKCQkJfSwKCQkJLy8gVG8ga25vdyBp
ZiB0aGUgY2FsbGJhY2tzIGhhdmUgYWxyZWFkeSBiZWVuIGNhbGxlZCBhdCBsZWFzdCBvbmNlCgkJ
CWZpcmVkOiBmdW5jdGlvbigpIHsKCQkJCXJldHVybiAhIWZpcmVkOwoJCQl9CgkJfTsKCglyZXR1
cm4gc2VsZjsKfTsKCgpqUXVlcnkuZXh0ZW5kKHsKCglEZWZlcnJlZDogZnVuY3Rpb24oIGZ1bmMg
KSB7CgkJdmFyIHR1cGxlcyA9IFsKCQkJCS8vIGFjdGlvbiwgYWRkIGxpc3RlbmVyLCBsaXN0ZW5l
ciBsaXN0LCBmaW5hbCBzdGF0ZQoJCQkJWyAicmVzb2x2ZSIsICJkb25lIiwgalF1ZXJ5LkNhbGxi
YWNrcygib25jZSBtZW1vcnkiKSwgInJlc29sdmVkIiBdLAoJCQkJWyAicmVqZWN0IiwgImZhaWwi
LCBqUXVlcnkuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLCAicmVqZWN0ZWQiIF0sCgkJCQlbICJu
b3RpZnkiLCAicHJvZ3Jlc3MiLCBqUXVlcnkuQ2FsbGJhY2tzKCJtZW1vcnkiKSBdCgkJCV0sCgkJ
CXN0YXRlID0gInBlbmRpbmciLAoJCQlwcm9taXNlID0gewoJCQkJc3RhdGU6IGZ1bmN0aW9uKCkg
ewoJCQkJCXJldHVybiBzdGF0ZTsKCQkJCX0sCgkJCQlhbHdheXM6IGZ1bmN0aW9uKCkgewoJCQkJ
CWRlZmVycmVkLmRvbmUoIGFyZ3VtZW50cyApLmZhaWwoIGFyZ3VtZW50cyApOwoJCQkJCXJldHVy
biB0aGlzOwoJCQkJfSwKCQkJCXRoZW46IGZ1bmN0aW9uKCAvKiBmbkRvbmUsIGZuRmFpbCwgZm5Q
cm9ncmVzcyAqLyApIHsKCQkJCQl2YXIgZm5zID0gYXJndW1lbnRzOwoJCQkJCXJldHVybiBqUXVl
cnkuRGVmZXJyZWQoZnVuY3Rpb24oIG5ld0RlZmVyICkgewoJCQkJCQlqUXVlcnkuZWFjaCggdHVw
bGVzLCBmdW5jdGlvbiggaSwgdHVwbGUgKSB7CgkJCQkJCQl2YXIgZm4gPSBqUXVlcnkuaXNGdW5j
dGlvbiggZm5zWyBpIF0gKSAmJiBmbnNbIGkgXTsKCQkJCQkJCS8vIGRlZmVycmVkWyBkb25lIHwg
ZmFpbCB8IHByb2dyZXNzIF0gZm9yIGZvcndhcmRpbmcgYWN0aW9ucyB0byBuZXdEZWZlcgoJCQkJ
CQkJZGVmZXJyZWRbIHR1cGxlWzFdIF0oZnVuY3Rpb24oKSB7CgkJCQkJCQkJdmFyIHJldHVybmVk
ID0gZm4gJiYgZm4uYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApOwoJCQkJCQkJCWlmICggcmV0dXJu
ZWQgJiYgalF1ZXJ5LmlzRnVuY3Rpb24oIHJldHVybmVkLnByb21pc2UgKSApIHsKCQkJCQkJCQkJ
cmV0dXJuZWQucHJvbWlzZSgpCgkJCQkJCQkJCQkuZG9uZSggbmV3RGVmZXIucmVzb2x2ZSApCgkJ
CQkJCQkJCQkuZmFpbCggbmV3RGVmZXIucmVqZWN0ICkKCQkJCQkJCQkJCS5wcm9ncmVzcyggbmV3
RGVmZXIubm90aWZ5ICk7CgkJCQkJCQkJfSBlbHNlIHsKCQkJCQkJCQkJbmV3RGVmZXJbIHR1cGxl
WyAwIF0gKyAiV2l0aCIgXSggdGhpcyA9PT0gcHJvbWlzZSA/IG5ld0RlZmVyLnByb21pc2UoKSA6
IHRoaXMsIGZuID8gWyByZXR1cm5lZCBdIDogYXJndW1lbnRzICk7CgkJCQkJCQkJfQoJCQkJCQkJ
fSk7CgkJCQkJCX0pOwoJCQkJCQlmbnMgPSBudWxsOwoJCQkJCX0pLnByb21pc2UoKTsKCQkJCX0s
CgkJCQkvLyBHZXQgYSBwcm9taXNlIGZvciB0aGlzIGRlZmVycmVkCgkJCQkvLyBJZiBvYmogaXMg
cHJvdmlkZWQsIHRoZSBwcm9taXNlIGFzcGVjdCBpcyBhZGRlZCB0byB0aGUgb2JqZWN0CgkJCQlw
cm9taXNlOiBmdW5jdGlvbiggb2JqICkgewoJCQkJCXJldHVybiBvYmogIT0gbnVsbCA/IGpRdWVy
eS5leHRlbmQoIG9iaiwgcHJvbWlzZSApIDogcHJvbWlzZTsKCQkJCX0KCQkJfSwKCQkJZGVmZXJy
ZWQgPSB7fTsKCgkJLy8gS2VlcCBwaXBlIGZvciBiYWNrLWNvbXBhdAoJCXByb21pc2UucGlwZSA9
IHByb21pc2UudGhlbjsKCgkJLy8gQWRkIGxpc3Qtc3BlY2lmaWMgbWV0aG9kcwoJCWpRdWVyeS5l
YWNoKCB0dXBsZXMsIGZ1bmN0aW9uKCBpLCB0dXBsZSApIHsKCQkJdmFyIGxpc3QgPSB0dXBsZVsg
MiBdLAoJCQkJc3RhdGVTdHJpbmcgPSB0dXBsZVsgMyBdOwoKCQkJLy8gcHJvbWlzZVsgZG9uZSB8
IGZhaWwgfCBwcm9ncmVzcyBdID0gbGlzdC5hZGQKCQkJcHJvbWlzZVsgdHVwbGVbMV0gXSA9IGxp
c3QuYWRkOwoKCQkJLy8gSGFuZGxlIHN0YXRlCgkJCWlmICggc3RhdGVTdHJpbmcgKSB7CgkJCQls
aXN0LmFkZChmdW5jdGlvbigpIHsKCQkJCQkvLyBzdGF0ZSA9IFsgcmVzb2x2ZWQgfCByZWplY3Rl
ZCBdCgkJCQkJc3RhdGUgPSBzdGF0ZVN0cmluZzsKCgkJCQkvLyBbIHJlamVjdF9saXN0IHwgcmVz
b2x2ZV9saXN0IF0uZGlzYWJsZTsgcHJvZ3Jlc3NfbGlzdC5sb2NrCgkJCQl9LCB0dXBsZXNbIGkg
XiAxIF1bIDIgXS5kaXNhYmxlLCB0dXBsZXNbIDIgXVsgMiBdLmxvY2sgKTsKCQkJfQoKCQkJLy8g
ZGVmZXJyZWRbIHJlc29sdmUgfCByZWplY3QgfCBub3RpZnkgXQoJCQlkZWZlcnJlZFsgdHVwbGVb
MF0gXSA9IGZ1bmN0aW9uKCkgewoJCQkJZGVmZXJyZWRbIHR1cGxlWzBdICsgIldpdGgiIF0oIHRo
aXMgPT09IGRlZmVycmVkID8gcHJvbWlzZSA6IHRoaXMsIGFyZ3VtZW50cyApOwoJCQkJcmV0dXJu
IHRoaXM7CgkJCX07CgkJCWRlZmVycmVkWyB0dXBsZVswXSArICJXaXRoIiBdID0gbGlzdC5maXJl
V2l0aDsKCQl9KTsKCgkJLy8gTWFrZSB0aGUgZGVmZXJyZWQgYSBwcm9taXNlCgkJcHJvbWlzZS5w
cm9taXNlKCBkZWZlcnJlZCApOwoKCQkvLyBDYWxsIGdpdmVuIGZ1bmMgaWYgYW55CgkJaWYgKCBm
dW5jICkgewoJCQlmdW5jLmNhbGwoIGRlZmVycmVkLCBkZWZlcnJlZCApOwoJCX0KCgkJLy8gQWxs
IGRvbmUhCgkJcmV0dXJuIGRlZmVycmVkOwoJfSwKCgkvLyBEZWZlcnJlZCBoZWxwZXIKCXdoZW46
IGZ1bmN0aW9uKCBzdWJvcmRpbmF0ZSAvKiAsIC4uLiwgc3Vib3JkaW5hdGVOICovICkgewoJCXZh
ciBpID0gMCwKCQkJcmVzb2x2ZVZhbHVlcyA9IHNsaWNlLmNhbGwoIGFyZ3VtZW50cyApLAoJCQls
ZW5ndGggPSByZXNvbHZlVmFsdWVzLmxlbmd0aCwKCgkJCS8vIHRoZSBjb3VudCBvZiB1bmNvbXBs
ZXRlZCBzdWJvcmRpbmF0ZXMKCQkJcmVtYWluaW5nID0gbGVuZ3RoICE9PSAxIHx8ICggc3Vib3Jk
aW5hdGUgJiYgalF1ZXJ5LmlzRnVuY3Rpb24oIHN1Ym9yZGluYXRlLnByb21pc2UgKSApID8gbGVu
Z3RoIDogMCwKCgkJCS8vIHRoZSBtYXN0ZXIgRGVmZXJyZWQuIElmIHJlc29sdmVWYWx1ZXMgY29u
c2lzdCBvZiBvbmx5IGEgc2luZ2xlIERlZmVycmVkLCBqdXN0IHVzZSB0aGF0LgoJCQlkZWZlcnJl
ZCA9IHJlbWFpbmluZyA9PT0gMSA/IHN1Ym9yZGluYXRlIDogalF1ZXJ5LkRlZmVycmVkKCksCgoJ
CQkvLyBVcGRhdGUgZnVuY3Rpb24gZm9yIGJvdGggcmVzb2x2ZSBhbmQgcHJvZ3Jlc3MgdmFsdWVz
CgkJCXVwZGF0ZUZ1bmMgPSBmdW5jdGlvbiggaSwgY29udGV4dHMsIHZhbHVlcyApIHsKCQkJCXJl
dHVybiBmdW5jdGlvbiggdmFsdWUgKSB7CgkJCQkJY29udGV4dHNbIGkgXSA9IHRoaXM7CgkJCQkJ
dmFsdWVzWyBpIF0gPSBhcmd1bWVudHMubGVuZ3RoID4gMSA/IHNsaWNlLmNhbGwoIGFyZ3VtZW50
cyApIDogdmFsdWU7CgkJCQkJaWYgKCB2YWx1ZXMgPT09IHByb2dyZXNzVmFsdWVzICkgewoJCQkJ
CQlkZWZlcnJlZC5ub3RpZnlXaXRoKCBjb250ZXh0cywgdmFsdWVzICk7CgoJCQkJCX0gZWxzZSBp
ZiAoICEoLS1yZW1haW5pbmcpICkgewoJCQkJCQlkZWZlcnJlZC5yZXNvbHZlV2l0aCggY29udGV4
dHMsIHZhbHVlcyApOwoJCQkJCX0KCQkJCX07CgkJCX0sCgoJCQlwcm9ncmVzc1ZhbHVlcywgcHJv
Z3Jlc3NDb250ZXh0cywgcmVzb2x2ZUNvbnRleHRzOwoKCQkvLyBhZGQgbGlzdGVuZXJzIHRvIERl
ZmVycmVkIHN1Ym9yZGluYXRlczsgdHJlYXQgb3RoZXJzIGFzIHJlc29sdmVkCgkJaWYgKCBsZW5n
dGggPiAxICkgewoJCQlwcm9ncmVzc1ZhbHVlcyA9IG5ldyBBcnJheSggbGVuZ3RoICk7CgkJCXBy
b2dyZXNzQ29udGV4dHMgPSBuZXcgQXJyYXkoIGxlbmd0aCApOwoJCQlyZXNvbHZlQ29udGV4dHMg
PSBuZXcgQXJyYXkoIGxlbmd0aCApOwoJCQlmb3IgKCA7IGkgPCBsZW5ndGg7IGkrKyApIHsKCQkJ
CWlmICggcmVzb2x2ZVZhbHVlc1sgaSBdICYmIGpRdWVyeS5pc0Z1bmN0aW9uKCByZXNvbHZlVmFs
dWVzWyBpIF0ucHJvbWlzZSApICkgewoJCQkJCXJlc29sdmVWYWx1ZXNbIGkgXS5wcm9taXNlKCkK
CQkJCQkJLmRvbmUoIHVwZGF0ZUZ1bmMoIGksIHJlc29sdmVDb250ZXh0cywgcmVzb2x2ZVZhbHVl
cyApICkKCQkJCQkJLmZhaWwoIGRlZmVycmVkLnJlamVjdCApCgkJCQkJCS5wcm9ncmVzcyggdXBk
YXRlRnVuYyggaSwgcHJvZ3Jlc3NDb250ZXh0cywgcHJvZ3Jlc3NWYWx1ZXMgKSApOwoJCQkJfSBl
bHNlIHsKCQkJCQktLXJlbWFpbmluZzsKCQkJCX0KCQkJfQoJCX0KCgkJLy8gaWYgd2UncmUgbm90
IHdhaXRpbmcgb24gYW55dGhpbmcsIHJlc29sdmUgdGhlIG1hc3RlcgoJCWlmICggIXJlbWFpbmlu
ZyApIHsKCQkJZGVmZXJyZWQucmVzb2x2ZVdpdGgoIHJlc29sdmVDb250ZXh0cywgcmVzb2x2ZVZh
bHVlcyApOwoJCX0KCgkJcmV0dXJuIGRlZmVycmVkLnByb21pc2UoKTsKCX0KfSk7CgoKLy8gVGhl
IGRlZmVycmVkIHVzZWQgb24gRE9NIHJlYWR5CnZhciByZWFkeUxpc3Q7CgpqUXVlcnkuZm4ucmVh
ZHkgPSBmdW5jdGlvbiggZm4gKSB7CgkvLyBBZGQgdGhlIGNhbGxiYWNrCglqUXVlcnkucmVhZHku
cHJvbWlzZSgpLmRvbmUoIGZuICk7CgoJcmV0dXJuIHRoaXM7Cn07CgpqUXVlcnkuZXh0ZW5kKHsK
CS8vIElzIHRoZSBET00gcmVhZHkgdG8gYmUgdXNlZD8gU2V0IHRvIHRydWUgb25jZSBpdCBvY2N1
cnMuCglpc1JlYWR5OiBmYWxzZSwKCgkvLyBBIGNvdW50ZXIgdG8gdHJhY2sgaG93IG1hbnkgaXRl
bXMgdG8gd2FpdCBmb3IgYmVmb3JlCgkvLyB0aGUgcmVhZHkgZXZlbnQgZmlyZXMuIFNlZSAjNjc4
MQoJcmVhZHlXYWl0OiAxLAoKCS8vIEhvbGQgKG9yIHJlbGVhc2UpIHRoZSByZWFkeSBldmVudAoJ
aG9sZFJlYWR5OiBmdW5jdGlvbiggaG9sZCApIHsKCQlpZiAoIGhvbGQgKSB7CgkJCWpRdWVyeS5y
ZWFkeVdhaXQrKzsKCQl9IGVsc2UgewoJCQlqUXVlcnkucmVhZHkoIHRydWUgKTsKCQl9Cgl9LAoK
CS8vIEhhbmRsZSB3aGVuIHRoZSBET00gaXMgcmVhZHkKCXJlYWR5OiBmdW5jdGlvbiggd2FpdCAp
IHsKCgkJLy8gQWJvcnQgaWYgdGhlcmUgYXJlIHBlbmRpbmcgaG9sZHMgb3Igd2UncmUgYWxyZWFk
eSByZWFkeQoJCWlmICggd2FpdCA9PT0gdHJ1ZSA/IC0talF1ZXJ5LnJlYWR5V2FpdCA6IGpRdWVy
eS5pc1JlYWR5ICkgewoJCQlyZXR1cm47CgkJfQoKCQkvLyBNYWtlIHN1cmUgYm9keSBleGlzdHMs
IGF0IGxlYXN0LCBpbiBjYXNlIElFIGdldHMgYSBsaXR0bGUgb3ZlcnplYWxvdXMgKHRpY2tldCAj
NTQ0MykuCgkJaWYgKCAhZG9jdW1lbnQuYm9keSApIHsKCQkJcmV0dXJuIHNldFRpbWVvdXQoIGpR
dWVyeS5yZWFkeSApOwoJCX0KCgkJLy8gUmVtZW1iZXIgdGhhdCB0aGUgRE9NIGlzIHJlYWR5CgkJ
alF1ZXJ5LmlzUmVhZHkgPSB0cnVlOwoKCQkvLyBJZiBhIG5vcm1hbCBET00gUmVhZHkgZXZlbnQg
ZmlyZWQsIGRlY3JlbWVudCwgYW5kIHdhaXQgaWYgbmVlZCBiZQoJCWlmICggd2FpdCAhPT0gdHJ1
ZSAmJiAtLWpRdWVyeS5yZWFkeVdhaXQgPiAwICkgewoJCQlyZXR1cm47CgkJfQoKCQkvLyBJZiB0
aGVyZSBhcmUgZnVuY3Rpb25zIGJvdW5kLCB0byBleGVjdXRlCgkJcmVhZHlMaXN0LnJlc29sdmVX
aXRoKCBkb2N1bWVudCwgWyBqUXVlcnkgXSApOwoKCQkvLyBUcmlnZ2VyIGFueSBib3VuZCByZWFk
eSBldmVudHMKCQlpZiAoIGpRdWVyeS5mbi50cmlnZ2VySGFuZGxlciApIHsKCQkJalF1ZXJ5KCBk
b2N1bWVudCApLnRyaWdnZXJIYW5kbGVyKCAicmVhZHkiICk7CgkJCWpRdWVyeSggZG9jdW1lbnQg
KS5vZmYoICJyZWFkeSIgKTsKCQl9Cgl9Cn0pOwoKLyoqCiAqIENsZWFuLXVwIG1ldGhvZCBmb3Ig
ZG9tIHJlYWR5IGV2ZW50cwogKi8KZnVuY3Rpb24gZGV0YWNoKCkgewoJaWYgKCBkb2N1bWVudC5h
ZGRFdmVudExpc3RlbmVyICkgewoJCWRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoICJET01D
b250ZW50TG9hZGVkIiwgY29tcGxldGVkLCBmYWxzZSApOwoJCXdpbmRvdy5yZW1vdmVFdmVudExp
c3RlbmVyKCAibG9hZCIsIGNvbXBsZXRlZCwgZmFsc2UgKTsKCgl9IGVsc2UgewoJCWRvY3VtZW50
LmRldGFjaEV2ZW50KCAib25yZWFkeXN0YXRlY2hhbmdlIiwgY29tcGxldGVkICk7CgkJd2luZG93
LmRldGFjaEV2ZW50KCAib25sb2FkIiwgY29tcGxldGVkICk7Cgl9Cn0KCi8qKgogKiBUaGUgcmVh
ZHkgZXZlbnQgaGFuZGxlciBhbmQgc2VsZiBjbGVhbnVwIG1ldGhvZAogKi8KZnVuY3Rpb24gY29t
cGxldGVkKCkgewoJLy8gcmVhZHlTdGF0ZSA9PT0gImNvbXBsZXRlIiBpcyBnb29kIGVub3VnaCBm
b3IgdXMgdG8gY2FsbCB0aGUgZG9tIHJlYWR5IGluIG9sZElFCglpZiAoIGRvY3VtZW50LmFkZEV2
ZW50TGlzdGVuZXIgfHwgZXZlbnQudHlwZSA9PT0gImxvYWQiIHx8IGRvY3VtZW50LnJlYWR5U3Rh
dGUgPT09ICJjb21wbGV0ZSIgKSB7CgkJZGV0YWNoKCk7CgkJalF1ZXJ5LnJlYWR5KCk7Cgl9Cn0K
CmpRdWVyeS5yZWFkeS5wcm9taXNlID0gZnVuY3Rpb24oIG9iaiApIHsKCWlmICggIXJlYWR5TGlz
dCApIHsKCgkJcmVhZHlMaXN0ID0galF1ZXJ5LkRlZmVycmVkKCk7CgoJCS8vIENhdGNoIGNhc2Vz
IHdoZXJlICQoZG9jdW1lbnQpLnJlYWR5KCkgaXMgY2FsbGVkIGFmdGVyIHRoZSBicm93c2VyIGV2
ZW50IGhhcyBhbHJlYWR5IG9jY3VycmVkLgoJCS8vIHdlIG9uY2UgdHJpZWQgdG8gdXNlIHJlYWR5
U3RhdGUgImludGVyYWN0aXZlIiBoZXJlLCBidXQgaXQgY2F1c2VkIGlzc3VlcyBsaWtlIHRoZSBv
bmUKCQkvLyBkaXNjb3ZlcmVkIGJ5IENocmlzUyBoZXJlOiBodHRwOi8vYnVncy5qcXVlcnkuY29t
L3RpY2tldC8xMjI4MiNjb21tZW50OjE1CgkJaWYgKCBkb2N1bWVudC5yZWFkeVN0YXRlID09PSAi
Y29tcGxldGUiICkgewoJCQkvLyBIYW5kbGUgaXQgYXN5bmNocm9ub3VzbHkgdG8gYWxsb3cgc2Ny
aXB0cyB0aGUgb3Bwb3J0dW5pdHkgdG8gZGVsYXkgcmVhZHkKCQkJc2V0VGltZW91dCggalF1ZXJ5
LnJlYWR5ICk7CgoJCS8vIFN0YW5kYXJkcy1iYXNlZCBicm93c2VycyBzdXBwb3J0IERPTUNvbnRl
bnRMb2FkZWQKCQl9IGVsc2UgaWYgKCBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyICkgewoJCQkv
LyBVc2UgdGhlIGhhbmR5IGV2ZW50IGNhbGxiYWNrCgkJCWRvY3VtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoICJET01Db250ZW50TG9hZGVkIiwgY29tcGxldGVkLCBmYWxzZSApOwoKCQkJLy8gQSBmYWxs
YmFjayB0byB3aW5kb3cub25sb2FkLCB0aGF0IHdpbGwgYWx3YXlzIHdvcmsKCQkJd2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoICJsb2FkIiwgY29tcGxldGVkLCBmYWxzZSApOwoKCQkvLyBJZiBJRSBl
dmVudCBtb2RlbCBpcyB1c2VkCgkJfSBlbHNlIHsKCQkJLy8gRW5zdXJlIGZpcmluZyBiZWZvcmUg
b25sb2FkLCBtYXliZSBsYXRlIGJ1dCBzYWZlIGFsc28gZm9yIGlmcmFtZXMKCQkJZG9jdW1lbnQu
YXR0YWNoRXZlbnQoICJvbnJlYWR5c3RhdGVjaGFuZ2UiLCBjb21wbGV0ZWQgKTsKCgkJCS8vIEEg
ZmFsbGJhY2sgdG8gd2luZG93Lm9ubG9hZCwgdGhhdCB3aWxsIGFsd2F5cyB3b3JrCgkJCXdpbmRv
dy5hdHRhY2hFdmVudCggIm9ubG9hZCIsIGNvbXBsZXRlZCApOwoKCQkJLy8gSWYgSUUgYW5kIG5v
dCBhIGZyYW1lCgkJCS8vIGNvbnRpbnVhbGx5IGNoZWNrIHRvIHNlZSBpZiB0aGUgZG9jdW1lbnQg
aXMgcmVhZHkKCQkJdmFyIHRvcCA9IGZhbHNlOwoKCQkJdHJ5IHsKCQkJCXRvcCA9IHdpbmRvdy5m
cmFtZUVsZW1lbnQgPT0gbnVsbCAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CgkJCX0gY2F0
Y2goZSkge30KCgkJCWlmICggdG9wICYmIHRvcC5kb1Njcm9sbCApIHsKCQkJCShmdW5jdGlvbiBk
b1Njcm9sbENoZWNrKCkgewoJCQkJCWlmICggIWpRdWVyeS5pc1JlYWR5ICkgewoKCQkJCQkJdHJ5
IHsKCQkJCQkJCS8vIFVzZSB0aGUgdHJpY2sgYnkgRGllZ28gUGVyaW5pCgkJCQkJCQkvLyBodHRw
Oi8vamF2YXNjcmlwdC5ud2JveC5jb20vSUVDb250ZW50TG9hZGVkLwoJCQkJCQkJdG9wLmRvU2Ny
b2xsKCJsZWZ0Iik7CgkJCQkJCX0gY2F0Y2goZSkgewoJCQkJCQkJcmV0dXJuIHNldFRpbWVvdXQo
IGRvU2Nyb2xsQ2hlY2ssIDUwICk7CgkJCQkJCX0KCgkJCQkJCS8vIGRldGFjaCBhbGwgZG9tIHJl
YWR5IGV2ZW50cwoJCQkJCQlkZXRhY2goKTsKCgkJCQkJCS8vIGFuZCBleGVjdXRlIGFueSB3YWl0
aW5nIGZ1bmN0aW9ucwoJCQkJCQlqUXVlcnkucmVhZHkoKTsKCQkJCQl9CgkJCQl9KSgpOwoJCQl9
CgkJfQoJfQoJcmV0dXJuIHJlYWR5TGlzdC5wcm9taXNlKCBvYmogKTsKfTsKCgp2YXIgc3RydW5k
ZWZpbmVkID0gdHlwZW9mIHVuZGVmaW5lZDsKCgoKLy8gU3VwcG9ydDogSUU8OQovLyBJdGVyYXRp
b24gb3ZlciBvYmplY3QncyBpbmhlcml0ZWQgcHJvcGVydGllcyBiZWZvcmUgaXRzIG93bgp2YXIg
aTsKZm9yICggaSBpbiBqUXVlcnkoIHN1cHBvcnQgKSApIHsKCWJyZWFrOwp9CnN1cHBvcnQub3du
TGFzdCA9IGkgIT09ICIwIjsKCi8vIE5vdGU6IG1vc3Qgc3VwcG9ydCB0ZXN0cyBhcmUgZGVmaW5l
ZCBpbiB0aGVpciByZXNwZWN0aXZlIG1vZHVsZXMuCi8vIGZhbHNlIHVudGlsIHRoZSB0ZXN0IGlz
IHJ1bgpzdXBwb3J0LmlubGluZUJsb2NrTmVlZHNMYXlvdXQgPSBmYWxzZTsKCi8vIEV4ZWN1dGUg
QVNBUCBpbiBjYXNlIHdlIG5lZWQgdG8gc2V0IGJvZHkuc3R5bGUuem9vbQpqUXVlcnkoZnVuY3Rp
b24oKSB7CgkvLyBNaW5pZmllZDogdmFyIGEsYixjLGQKCXZhciB2YWwsIGRpdiwgYm9keSwgY29u
dGFpbmVyOwoKCWJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSggImJvZHkiIClb
IDAgXTsKCWlmICggIWJvZHkgfHwgIWJvZHkuc3R5bGUgKSB7CgkJLy8gUmV0dXJuIGZvciBmcmFt
ZXNldCBkb2NzIHRoYXQgZG9uJ3QgaGF2ZSBhIGJvZHkKCQlyZXR1cm47Cgl9CgoJLy8gU2V0dXAK
CWRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICJkaXYiICk7Cgljb250YWluZXIgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCAiZGl2IiApOwoJY29udGFpbmVyLnN0eWxlLmNzc1RleHQgPSAi
cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyOjA7d2lkdGg6MDtoZWlnaHQ6MDt0b3A6MDtsZWZ0Oi05
OTk5cHgiOwoJYm9keS5hcHBlbmRDaGlsZCggY29udGFpbmVyICkuYXBwZW5kQ2hpbGQoIGRpdiAp
OwoKCWlmICggdHlwZW9mIGRpdi5zdHlsZS56b29tICE9PSBzdHJ1bmRlZmluZWQgKSB7CgkJLy8g
U3VwcG9ydDogSUU8OAoJCS8vIENoZWNrIGlmIG5hdGl2ZWx5IGJsb2NrLWxldmVsIGVsZW1lbnRz
IGFjdCBsaWtlIGlubGluZS1ibG9jawoJCS8vIGVsZW1lbnRzIHdoZW4gc2V0dGluZyB0aGVpciBk
aXNwbGF5IHRvICdpbmxpbmUnIGFuZCBnaXZpbmcKCQkvLyB0aGVtIGxheW91dAoJCWRpdi5zdHls
ZS5jc3NUZXh0ID0gImRpc3BsYXk6aW5saW5lO21hcmdpbjowO2JvcmRlcjowO3BhZGRpbmc6MXB4
O3dpZHRoOjFweDt6b29tOjEiOwoKCQlzdXBwb3J0LmlubGluZUJsb2NrTmVlZHNMYXlvdXQgPSB2
YWwgPSBkaXYub2Zmc2V0V2lkdGggPT09IDM7CgkJaWYgKCB2YWwgKSB7CgkJCS8vIFByZXZlbnQg
SUUgNiBmcm9tIGFmZmVjdGluZyBsYXlvdXQgZm9yIHBvc2l0aW9uZWQgZWxlbWVudHMgIzExMDQ4
CgkJCS8vIFByZXZlbnQgSUUgZnJvbSBzaHJpbmtpbmcgdGhlIGJvZHkgaW4gSUUgNyBtb2RlICMx
Mjg2OQoJCQkvLyBTdXBwb3J0OiBJRTw4CgkJCWJvZHkuc3R5bGUuem9vbSA9IDE7CgkJfQoJfQoK
CWJvZHkucmVtb3ZlQ2hpbGQoIGNvbnRhaW5lciApOwp9KTsKCgoKCihmdW5jdGlvbigpIHsKCXZh
ciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCAiZGl2IiApOwoKCS8vIEV4ZWN1dGUgdGhl
IHRlc3Qgb25seSBpZiBub3QgYWxyZWFkeSBleGVjdXRlZCBpbiBhbm90aGVyIG1vZHVsZS4KCWlm
IChzdXBwb3J0LmRlbGV0ZUV4cGFuZG8gPT0gbnVsbCkgewoJCS8vIFN1cHBvcnQ6IElFPDkKCQlz
dXBwb3J0LmRlbGV0ZUV4cGFuZG8gPSB0cnVlOwoJCXRyeSB7CgkJCWRlbGV0ZSBkaXYudGVzdDsK
CQl9IGNhdGNoKCBlICkgewoJCQlzdXBwb3J0LmRlbGV0ZUV4cGFuZG8gPSBmYWxzZTsKCQl9Cgl9
CgoJLy8gTnVsbCBlbGVtZW50cyB0byBhdm9pZCBsZWFrcyBpbiBJRS4KCWRpdiA9IG51bGw7Cn0p
KCk7CgoKLyoqCiAqIERldGVybWluZXMgd2hldGhlciBhbiBvYmplY3QgY2FuIGhhdmUgZGF0YQog
Ki8KalF1ZXJ5LmFjY2VwdERhdGEgPSBmdW5jdGlvbiggZWxlbSApIHsKCXZhciBub0RhdGEgPSBq
UXVlcnkubm9EYXRhWyAoZWxlbS5ub2RlTmFtZSArICIgIikudG9Mb3dlckNhc2UoKSBdLAoJCW5v
ZGVUeXBlID0gK2VsZW0ubm9kZVR5cGUgfHwgMTsKCgkvLyBEbyBub3Qgc2V0IGRhdGEgb24gbm9u
LWVsZW1lbnQgRE9NIG5vZGVzIGJlY2F1c2UgaXQgd2lsbCBub3QgYmUgY2xlYXJlZCAoIzgzMzUp
LgoJcmV0dXJuIG5vZGVUeXBlICE9PSAxICYmIG5vZGVUeXBlICE9PSA5ID8KCQlmYWxzZSA6CgoJ
CS8vIE5vZGVzIGFjY2VwdCBkYXRhIHVubGVzcyBvdGhlcndpc2Ugc3BlY2lmaWVkOyByZWplY3Rp
b24gY2FuIGJlIGNvbmRpdGlvbmFsCgkJIW5vRGF0YSB8fCBub0RhdGEgIT09IHRydWUgJiYgZWxl
bS5nZXRBdHRyaWJ1dGUoImNsYXNzaWQiKSA9PT0gbm9EYXRhOwp9OwoKCnZhciByYnJhY2UgPSAv
Xig/Olx7W1x3XFddKlx9fFxbW1x3XFddKlxdKSQvLAoJcm11bHRpRGFzaCA9IC8oW0EtWl0pL2c7
CgpmdW5jdGlvbiBkYXRhQXR0ciggZWxlbSwga2V5LCBkYXRhICkgewoJLy8gSWYgbm90aGluZyB3
YXMgZm91bmQgaW50ZXJuYWxseSwgdHJ5IHRvIGZldGNoIGFueQoJLy8gZGF0YSBmcm9tIHRoZSBI
VE1MNSBkYXRhLSogYXR0cmlidXRlCglpZiAoIGRhdGEgPT09IHVuZGVmaW5lZCAmJiBlbGVtLm5v
ZGVUeXBlID09PSAxICkgewoKCQl2YXIgbmFtZSA9ICJkYXRhLSIgKyBrZXkucmVwbGFjZSggcm11
bHRpRGFzaCwgIi0kMSIgKS50b0xvd2VyQ2FzZSgpOwoKCQlkYXRhID0gZWxlbS5nZXRBdHRyaWJ1
dGUoIG5hbWUgKTsKCgkJaWYgKCB0eXBlb2YgZGF0YSA9PT0gInN0cmluZyIgKSB7CgkJCXRyeSB7
CgkJCQlkYXRhID0gZGF0YSA9PT0gInRydWUiID8gdHJ1ZSA6CgkJCQkJZGF0YSA9PT0gImZhbHNl
IiA/IGZhbHNlIDoKCQkJCQlkYXRhID09PSAibnVsbCIgPyBudWxsIDoKCQkJCQkvLyBPbmx5IGNv
bnZlcnQgdG8gYSBudW1iZXIgaWYgaXQgZG9lc24ndCBjaGFuZ2UgdGhlIHN0cmluZwoJCQkJCStk
YXRhICsgIiIgPT09IGRhdGEgPyArZGF0YSA6CgkJCQkJcmJyYWNlLnRlc3QoIGRhdGEgKSA/IGpR
dWVyeS5wYXJzZUpTT04oIGRhdGEgKSA6CgkJCQkJZGF0YTsKCQkJfSBjYXRjaCggZSApIHt9CgoJ
CQkvLyBNYWtlIHN1cmUgd2Ugc2V0IHRoZSBkYXRhIHNvIGl0IGlzbid0IGNoYW5nZWQgbGF0ZXIK
CQkJalF1ZXJ5LmRhdGEoIGVsZW0sIGtleSwgZGF0YSApOwoKCQl9IGVsc2UgewoJCQlkYXRhID0g
dW5kZWZpbmVkOwoJCX0KCX0KCglyZXR1cm4gZGF0YTsKfQoKLy8gY2hlY2tzIGEgY2FjaGUgb2Jq
ZWN0IGZvciBlbXB0aW5lc3MKZnVuY3Rpb24gaXNFbXB0eURhdGFPYmplY3QoIG9iaiApIHsKCXZh
ciBuYW1lOwoJZm9yICggbmFtZSBpbiBvYmogKSB7CgoJCS8vIGlmIHRoZSBwdWJsaWMgZGF0YSBv
YmplY3QgaXMgZW1wdHksIHRoZSBwcml2YXRlIGlzIHN0aWxsIGVtcHR5CgkJaWYgKCBuYW1lID09
PSAiZGF0YSIgJiYgalF1ZXJ5LmlzRW1wdHlPYmplY3QoIG9ialtuYW1lXSApICkgewoJCQljb250
aW51ZTsKCQl9CgkJaWYgKCBuYW1lICE9PSAidG9KU09OIiApIHsKCQkJcmV0dXJuIGZhbHNlOwoJ
CX0KCX0KCglyZXR1cm4gdHJ1ZTsKfQoKZnVuY3Rpb24gaW50ZXJuYWxEYXRhKCBlbGVtLCBuYW1l
LCBkYXRhLCBwdnQgLyogSW50ZXJuYWwgVXNlIE9ubHkgKi8gKSB7CglpZiAoICFqUXVlcnkuYWNj
ZXB0RGF0YSggZWxlbSApICkgewoJCXJldHVybjsKCX0KCgl2YXIgcmV0LCB0aGlzQ2FjaGUsCgkJ
aW50ZXJuYWxLZXkgPSBqUXVlcnkuZXhwYW5kbywKCgkJLy8gV2UgaGF2ZSB0byBoYW5kbGUgRE9N
IG5vZGVzIGFuZCBKUyBvYmplY3RzIGRpZmZlcmVudGx5IGJlY2F1c2UgSUU2LTcKCQkvLyBjYW4n
dCBHQyBvYmplY3QgcmVmZXJlbmNlcyBwcm9wZXJseSBhY3Jvc3MgdGhlIERPTS1KUyBib3VuZGFy
eQoJCWlzTm9kZSA9IGVsZW0ubm9kZVR5cGUsCgoJCS8vIE9ubHkgRE9NIG5vZGVzIG5lZWQgdGhl
IGdsb2JhbCBqUXVlcnkgY2FjaGU7IEpTIG9iamVjdCBkYXRhIGlzCgkJLy8gYXR0YWNoZWQgZGly
ZWN0bHkgdG8gdGhlIG9iamVjdCBzbyBHQyBjYW4gb2NjdXIgYXV0b21hdGljYWxseQoJCWNhY2hl
ID0gaXNOb2RlID8galF1ZXJ5LmNhY2hlIDogZWxlbSwKCgkJLy8gT25seSBkZWZpbmluZyBhbiBJ
RCBmb3IgSlMgb2JqZWN0cyBpZiBpdHMgY2FjaGUgYWxyZWFkeSBleGlzdHMgYWxsb3dzCgkJLy8g
dGhlIGNvZGUgdG8gc2hvcnRjdXQgb24gdGhlIHNhbWUgcGF0aCBhcyBhIERPTSBub2RlIHdpdGgg
bm8gY2FjaGUKCQlpZCA9IGlzTm9kZSA/IGVsZW1bIGludGVybmFsS2V5IF0gOiBlbGVtWyBpbnRl
cm5hbEtleSBdICYmIGludGVybmFsS2V5OwoKCS8vIEF2b2lkIGRvaW5nIGFueSBtb3JlIHdvcmsg
dGhhbiB3ZSBuZWVkIHRvIHdoZW4gdHJ5aW5nIHRvIGdldCBkYXRhIG9uIGFuCgkvLyBvYmplY3Qg
dGhhdCBoYXMgbm8gZGF0YSBhdCBhbGwKCWlmICggKCFpZCB8fCAhY2FjaGVbaWRdIHx8ICghcHZ0
ICYmICFjYWNoZVtpZF0uZGF0YSkpICYmIGRhdGEgPT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgbmFt
ZSA9PT0gInN0cmluZyIgKSB7CgkJcmV0dXJuOwoJfQoKCWlmICggIWlkICkgewoJCS8vIE9ubHkg
RE9NIG5vZGVzIG5lZWQgYSBuZXcgdW5pcXVlIElEIGZvciBlYWNoIGVsZW1lbnQgc2luY2UgdGhl
aXIgZGF0YQoJCS8vIGVuZHMgdXAgaW4gdGhlIGdsb2JhbCBjYWNoZQoJCWlmICggaXNOb2RlICkg
ewoJCQlpZCA9IGVsZW1bIGludGVybmFsS2V5IF0gPSBkZWxldGVkSWRzLnBvcCgpIHx8IGpRdWVy
eS5ndWlkKys7CgkJfSBlbHNlIHsKCQkJaWQgPSBpbnRlcm5hbEtleTsKCQl9Cgl9CgoJaWYgKCAh
Y2FjaGVbIGlkIF0gKSB7CgkJLy8gQXZvaWQgZXhwb3NpbmcgalF1ZXJ5IG1ldGFkYXRhIG9uIHBs
YWluIEpTIG9iamVjdHMgd2hlbiB0aGUgb2JqZWN0CgkJLy8gaXMgc2VyaWFsaXplZCB1c2luZyBK
U09OLnN0cmluZ2lmeQoJCWNhY2hlWyBpZCBdID0gaXNOb2RlID8ge30gOiB7IHRvSlNPTjogalF1
ZXJ5Lm5vb3AgfTsKCX0KCgkvLyBBbiBvYmplY3QgY2FuIGJlIHBhc3NlZCB0byBqUXVlcnkuZGF0
YSBpbnN0ZWFkIG9mIGEga2V5L3ZhbHVlIHBhaXI7IHRoaXMgZ2V0cwoJLy8gc2hhbGxvdyBjb3Bp
ZWQgb3ZlciBvbnRvIHRoZSBleGlzdGluZyBjYWNoZQoJaWYgKCB0eXBlb2YgbmFtZSA9PT0gIm9i
amVjdCIgfHwgdHlwZW9mIG5hbWUgPT09ICJmdW5jdGlvbiIgKSB7CgkJaWYgKCBwdnQgKSB7CgkJ
CWNhY2hlWyBpZCBdID0galF1ZXJ5LmV4dGVuZCggY2FjaGVbIGlkIF0sIG5hbWUgKTsKCQl9IGVs
c2UgewoJCQljYWNoZVsgaWQgXS5kYXRhID0galF1ZXJ5LmV4dGVuZCggY2FjaGVbIGlkIF0uZGF0
YSwgbmFtZSApOwoJCX0KCX0KCgl0aGlzQ2FjaGUgPSBjYWNoZVsgaWQgXTsKCgkvLyBqUXVlcnkg
ZGF0YSgpIGlzIHN0b3JlZCBpbiBhIHNlcGFyYXRlIG9iamVjdCBpbnNpZGUgdGhlIG9iamVjdCdz
IGludGVybmFsIGRhdGEKCS8vIGNhY2hlIGluIG9yZGVyIHRvIGF2b2lkIGtleSBjb2xsaXNpb25z
IGJldHdlZW4gaW50ZXJuYWwgZGF0YSBhbmQgdXNlci1kZWZpbmVkCgkvLyBkYXRhLgoJaWYgKCAh
cHZ0ICkgewoJCWlmICggIXRoaXNDYWNoZS5kYXRhICkgewoJCQl0aGlzQ2FjaGUuZGF0YSA9IHt9
OwoJCX0KCgkJdGhpc0NhY2hlID0gdGhpc0NhY2hlLmRhdGE7Cgl9CgoJaWYgKCBkYXRhICE9PSB1
bmRlZmluZWQgKSB7CgkJdGhpc0NhY2hlWyBqUXVlcnkuY2FtZWxDYXNlKCBuYW1lICkgXSA9IGRh
dGE7Cgl9CgoJLy8gQ2hlY2sgZm9yIGJvdGggY29udmVydGVkLXRvLWNhbWVsIGFuZCBub24tY29u
dmVydGVkIGRhdGEgcHJvcGVydHkgbmFtZXMKCS8vIElmIGEgZGF0YSBwcm9wZXJ0eSB3YXMgc3Bl
Y2lmaWVkCglpZiAoIHR5cGVvZiBuYW1lID09PSAic3RyaW5nIiApIHsKCgkJLy8gRmlyc3QgVHJ5
IHRvIGZpbmQgYXMtaXMgcHJvcGVydHkgZGF0YQoJCXJldCA9IHRoaXNDYWNoZVsgbmFtZSBdOwoK
CQkvLyBUZXN0IGZvciBudWxsfHVuZGVmaW5lZCBwcm9wZXJ0eSBkYXRhCgkJaWYgKCByZXQgPT0g
bnVsbCApIHsKCgkJCS8vIFRyeSB0byBmaW5kIHRoZSBjYW1lbENhc2VkIHByb3BlcnR5CgkJCXJl
dCA9IHRoaXNDYWNoZVsgalF1ZXJ5LmNhbWVsQ2FzZSggbmFtZSApIF07CgkJfQoJfSBlbHNlIHsK
CQlyZXQgPSB0aGlzQ2FjaGU7Cgl9CgoJcmV0dXJuIHJldDsKfQoKZnVuY3Rpb24gaW50ZXJuYWxS
ZW1vdmVEYXRhKCBlbGVtLCBuYW1lLCBwdnQgKSB7CglpZiAoICFqUXVlcnkuYWNjZXB0RGF0YSgg
ZWxlbSApICkgewoJCXJldHVybjsKCX0KCgl2YXIgdGhpc0NhY2hlLCBpLAoJCWlzTm9kZSA9IGVs
ZW0ubm9kZVR5cGUsCgoJCS8vIFNlZSBqUXVlcnkuZGF0YSBmb3IgbW9yZSBpbmZvcm1hdGlvbgoJ
CWNhY2hlID0gaXNOb2RlID8galF1ZXJ5LmNhY2hlIDogZWxlbSwKCQlpZCA9IGlzTm9kZSA/IGVs
ZW1bIGpRdWVyeS5leHBhbmRvIF0gOiBqUXVlcnkuZXhwYW5kbzsKCgkvLyBJZiB0aGVyZSBpcyBh
bHJlYWR5IG5vIGNhY2hlIGVudHJ5IGZvciB0aGlzIG9iamVjdCwgdGhlcmUgaXMgbm8KCS8vIHB1
cnBvc2UgaW4gY29udGludWluZwoJaWYgKCAhY2FjaGVbIGlkIF0gKSB7CgkJcmV0dXJuOwoJfQoK
CWlmICggbmFtZSApIHsKCgkJdGhpc0NhY2hlID0gcHZ0ID8gY2FjaGVbIGlkIF0gOiBjYWNoZVsg
aWQgXS5kYXRhOwoKCQlpZiAoIHRoaXNDYWNoZSApIHsKCgkJCS8vIFN1cHBvcnQgYXJyYXkgb3Ig
c3BhY2Ugc2VwYXJhdGVkIHN0cmluZyBuYW1lcyBmb3IgZGF0YSBrZXlzCgkJCWlmICggIWpRdWVy
eS5pc0FycmF5KCBuYW1lICkgKSB7CgoJCQkJLy8gdHJ5IHRoZSBzdHJpbmcgYXMgYSBrZXkgYmVm
b3JlIGFueSBtYW5pcHVsYXRpb24KCQkJCWlmICggbmFtZSBpbiB0aGlzQ2FjaGUgKSB7CgkJCQkJ
bmFtZSA9IFsgbmFtZSBdOwoJCQkJfSBlbHNlIHsKCgkJCQkJLy8gc3BsaXQgdGhlIGNhbWVsIGNh
c2VkIHZlcnNpb24gYnkgc3BhY2VzIHVubGVzcyBhIGtleSB3aXRoIHRoZSBzcGFjZXMgZXhpc3Rz
CgkJCQkJbmFtZSA9IGpRdWVyeS5jYW1lbENhc2UoIG5hbWUgKTsKCQkJCQlpZiAoIG5hbWUgaW4g
dGhpc0NhY2hlICkgewoJCQkJCQluYW1lID0gWyBuYW1lIF07CgkJCQkJfSBlbHNlIHsKCQkJCQkJ
bmFtZSA9IG5hbWUuc3BsaXQoIiAiKTsKCQkJCQl9CgkJCQl9CgkJCX0gZWxzZSB7CgkJCQkvLyBJ
ZiAibmFtZSIgaXMgYW4gYXJyYXkgb2Yga2V5cy4uLgoJCQkJLy8gV2hlbiBkYXRhIGlzIGluaXRp
YWxseSBjcmVhdGVkLCB2aWEgKCJrZXkiLCAidmFsIikgc2lnbmF0dXJlLAoJCQkJLy8ga2V5cyB3
aWxsIGJlIGNvbnZlcnRlZCB0byBjYW1lbENhc2UuCgkJCQkvLyBTaW5jZSB0aGVyZSBpcyBubyB3
YXkgdG8gdGVsbCBfaG93XyBhIGtleSB3YXMgYWRkZWQsIHJlbW92ZQoJCQkJLy8gYm90aCBwbGFp
biBrZXkgYW5kIGNhbWVsQ2FzZSBrZXkuICMxMjc4NgoJCQkJLy8gVGhpcyB3aWxsIG9ubHkgcGVu
YWxpemUgdGhlIGFycmF5IGFyZ3VtZW50IHBhdGguCgkJCQluYW1lID0gbmFtZS5jb25jYXQoIGpR
dWVyeS5tYXAoIG5hbWUsIGpRdWVyeS5jYW1lbENhc2UgKSApOwoJCQl9CgoJCQlpID0gbmFtZS5s
ZW5ndGg7CgkJCXdoaWxlICggaS0tICkgewoJCQkJZGVsZXRlIHRoaXNDYWNoZVsgbmFtZVtpXSBd
OwoJCQl9CgoJCQkvLyBJZiB0aGVyZSBpcyBubyBkYXRhIGxlZnQgaW4gdGhlIGNhY2hlLCB3ZSB3
YW50IHRvIGNvbnRpbnVlCgkJCS8vIGFuZCBsZXQgdGhlIGNhY2hlIG9iamVjdCBpdHNlbGYgZ2V0
IGRlc3Ryb3llZAoJCQlpZiAoIHB2dCA/ICFpc0VtcHR5RGF0YU9iamVjdCh0aGlzQ2FjaGUpIDog
IWpRdWVyeS5pc0VtcHR5T2JqZWN0KHRoaXNDYWNoZSkgKSB7CgkJCQlyZXR1cm47CgkJCX0KCQl9
Cgl9CgoJLy8gU2VlIGpRdWVyeS5kYXRhIGZvciBtb3JlIGluZm9ybWF0aW9uCglpZiAoICFwdnQg
KSB7CgkJZGVsZXRlIGNhY2hlWyBpZCBdLmRhdGE7CgoJCS8vIERvbid0IGRlc3Ryb3kgdGhlIHBh
cmVudCBjYWNoZSB1bmxlc3MgdGhlIGludGVybmFsIGRhdGEgb2JqZWN0CgkJLy8gaGFkIGJlZW4g
dGhlIG9ubHkgdGhpbmcgbGVmdCBpbiBpdAoJCWlmICggIWlzRW1wdHlEYXRhT2JqZWN0KCBjYWNo
ZVsgaWQgXSApICkgewoJCQlyZXR1cm47CgkJfQoJfQoKCS8vIERlc3Ryb3kgdGhlIGNhY2hlCglp
ZiAoIGlzTm9kZSApIHsKCQlqUXVlcnkuY2xlYW5EYXRhKCBbIGVsZW0gXSwgdHJ1ZSApOwoKCS8v
IFVzZSBkZWxldGUgd2hlbiBzdXBwb3J0ZWQgZm9yIGV4cGFuZG9zIG9yIGBjYWNoZWAgaXMgbm90
IGEgd2luZG93IHBlciBpc1dpbmRvdyAoIzEwMDgwKQoJLyoganNoaW50IGVxZXFlcTogZmFsc2Ug
Ki8KCX0gZWxzZSBpZiAoIHN1cHBvcnQuZGVsZXRlRXhwYW5kbyB8fCBjYWNoZSAhPSBjYWNoZS53
aW5kb3cgKSB7CgkJLyoganNoaW50IGVxZXFlcTogdHJ1ZSAqLwoJCWRlbGV0ZSBjYWNoZVsgaWQg
XTsKCgkvLyBXaGVuIGFsbCBlbHNlIGZhaWxzLCBudWxsCgl9IGVsc2UgewoJCWNhY2hlWyBpZCBd
ID0gbnVsbDsKCX0KfQoKalF1ZXJ5LmV4dGVuZCh7CgljYWNoZToge30sCgoJLy8gVGhlIGZvbGxv
d2luZyBlbGVtZW50cyAoc3BhY2Utc3VmZml4ZWQgdG8gYXZvaWQgT2JqZWN0LnByb3RvdHlwZSBj
b2xsaXNpb25zKQoJLy8gdGhyb3cgdW5jYXRjaGFibGUgZXhjZXB0aW9ucyBpZiB5b3UgYXR0ZW1w
dCB0byBzZXQgZXhwYW5kbyBwcm9wZXJ0aWVzCglub0RhdGE6IHsKCQkiYXBwbGV0ICI6IHRydWUs
CgkJImVtYmVkICI6IHRydWUsCgkJLy8gLi4uYnV0IEZsYXNoIG9iamVjdHMgKHdoaWNoIGhhdmUg
dGhpcyBjbGFzc2lkKSAqY2FuKiBoYW5kbGUgZXhwYW5kb3MKCQkib2JqZWN0ICI6ICJjbHNpZDpE
MjdDREI2RS1BRTZELTExY2YtOTZCOC00NDQ1NTM1NDAwMDAiCgl9LAoKCWhhc0RhdGE6IGZ1bmN0
aW9uKCBlbGVtICkgewoJCWVsZW0gPSBlbGVtLm5vZGVUeXBlID8galF1ZXJ5LmNhY2hlWyBlbGVt
W2pRdWVyeS5leHBhbmRvXSBdIDogZWxlbVsgalF1ZXJ5LmV4cGFuZG8gXTsKCQlyZXR1cm4gISFl
bGVtICYmICFpc0VtcHR5RGF0YU9iamVjdCggZWxlbSApOwoJfSwKCglkYXRhOiBmdW5jdGlvbigg
ZWxlbSwgbmFtZSwgZGF0YSApIHsKCQlyZXR1cm4gaW50ZXJuYWxEYXRhKCBlbGVtLCBuYW1lLCBk
YXRhICk7Cgl9LAoKCXJlbW92ZURhdGE6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lICkgewoJCXJldHVy
biBpbnRlcm5hbFJlbW92ZURhdGEoIGVsZW0sIG5hbWUgKTsKCX0sCgoJLy8gRm9yIGludGVybmFs
IHVzZSBvbmx5LgoJX2RhdGE6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCBkYXRhICkgewoJCXJldHVy
biBpbnRlcm5hbERhdGEoIGVsZW0sIG5hbWUsIGRhdGEsIHRydWUgKTsKCX0sCgoJX3JlbW92ZURh
dGE6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lICkgewoJCXJldHVybiBpbnRlcm5hbFJlbW92ZURhdGEo
IGVsZW0sIG5hbWUsIHRydWUgKTsKCX0KfSk7CgpqUXVlcnkuZm4uZXh0ZW5kKHsKCWRhdGE6IGZ1
bmN0aW9uKCBrZXksIHZhbHVlICkgewoJCXZhciBpLCBuYW1lLCBkYXRhLAoJCQllbGVtID0gdGhp
c1swXSwKCQkJYXR0cnMgPSBlbGVtICYmIGVsZW0uYXR0cmlidXRlczsKCgkJLy8gU3BlY2lhbCBl
eHBlY3Rpb25zIG9mIC5kYXRhIGJhc2ljYWxseSB0aHdhcnQgalF1ZXJ5LmFjY2VzcywKCQkvLyBz
byBpbXBsZW1lbnQgdGhlIHJlbGV2YW50IGJlaGF2aW9yIG91cnNlbHZlcwoKCQkvLyBHZXRzIGFs
bCB2YWx1ZXMKCQlpZiAoIGtleSA9PT0gdW5kZWZpbmVkICkgewoJCQlpZiAoIHRoaXMubGVuZ3Ro
ICkgewoJCQkJZGF0YSA9IGpRdWVyeS5kYXRhKCBlbGVtICk7CgoJCQkJaWYgKCBlbGVtLm5vZGVU
eXBlID09PSAxICYmICFqUXVlcnkuX2RhdGEoIGVsZW0sICJwYXJzZWRBdHRycyIgKSApIHsKCQkJ
CQlpID0gYXR0cnMubGVuZ3RoOwoJCQkJCXdoaWxlICggaS0tICkgewoKCQkJCQkJLy8gU3VwcG9y
dDogSUUxMSsKCQkJCQkJLy8gVGhlIGF0dHJzIGVsZW1lbnRzIGNhbiBiZSBudWxsICgjMTQ4OTQp
CgkJCQkJCWlmICggYXR0cnNbIGkgXSApIHsKCQkJCQkJCW5hbWUgPSBhdHRyc1sgaSBdLm5hbWU7
CgkJCQkJCQlpZiAoIG5hbWUuaW5kZXhPZiggImRhdGEtIiApID09PSAwICkgewoJCQkJCQkJCW5h
bWUgPSBqUXVlcnkuY2FtZWxDYXNlKCBuYW1lLnNsaWNlKDUpICk7CgkJCQkJCQkJZGF0YUF0dHIo
IGVsZW0sIG5hbWUsIGRhdGFbIG5hbWUgXSApOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfQoJCQkJ
CWpRdWVyeS5fZGF0YSggZWxlbSwgInBhcnNlZEF0dHJzIiwgdHJ1ZSApOwoJCQkJfQoJCQl9CgoJ
CQlyZXR1cm4gZGF0YTsKCQl9CgoJCS8vIFNldHMgbXVsdGlwbGUgdmFsdWVzCgkJaWYgKCB0eXBl
b2Yga2V5ID09PSAib2JqZWN0IiApIHsKCQkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsK
CQkJCWpRdWVyeS5kYXRhKCB0aGlzLCBrZXkgKTsKCQkJfSk7CgkJfQoKCQlyZXR1cm4gYXJndW1l
bnRzLmxlbmd0aCA+IDEgPwoKCQkJLy8gU2V0cyBvbmUgdmFsdWUKCQkJdGhpcy5lYWNoKGZ1bmN0
aW9uKCkgewoJCQkJalF1ZXJ5LmRhdGEoIHRoaXMsIGtleSwgdmFsdWUgKTsKCQkJfSkgOgoKCQkJ
Ly8gR2V0cyBvbmUgdmFsdWUKCQkJLy8gVHJ5IHRvIGZldGNoIGFueSBpbnRlcm5hbGx5IHN0b3Jl
ZCBkYXRhIGZpcnN0CgkJCWVsZW0gPyBkYXRhQXR0ciggZWxlbSwga2V5LCBqUXVlcnkuZGF0YSgg
ZWxlbSwga2V5ICkgKSA6IHVuZGVmaW5lZDsKCX0sCgoJcmVtb3ZlRGF0YTogZnVuY3Rpb24oIGtl
eSApIHsKCQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkgewoJCQlqUXVlcnkucmVtb3ZlRGF0
YSggdGhpcywga2V5ICk7CgkJfSk7Cgl9Cn0pOwoKCmpRdWVyeS5leHRlbmQoewoJcXVldWU6IGZ1
bmN0aW9uKCBlbGVtLCB0eXBlLCBkYXRhICkgewoJCXZhciBxdWV1ZTsKCgkJaWYgKCBlbGVtICkg
ewoJCQl0eXBlID0gKCB0eXBlIHx8ICJmeCIgKSArICJxdWV1ZSI7CgkJCXF1ZXVlID0galF1ZXJ5
Ll9kYXRhKCBlbGVtLCB0eXBlICk7CgoJCQkvLyBTcGVlZCB1cCBkZXF1ZXVlIGJ5IGdldHRpbmcg
b3V0IHF1aWNrbHkgaWYgdGhpcyBpcyBqdXN0IGEgbG9va3VwCgkJCWlmICggZGF0YSApIHsKCQkJ
CWlmICggIXF1ZXVlIHx8IGpRdWVyeS5pc0FycmF5KGRhdGEpICkgewoJCQkJCXF1ZXVlID0galF1
ZXJ5Ll9kYXRhKCBlbGVtLCB0eXBlLCBqUXVlcnkubWFrZUFycmF5KGRhdGEpICk7CgkJCQl9IGVs
c2UgewoJCQkJCXF1ZXVlLnB1c2goIGRhdGEgKTsKCQkJCX0KCQkJfQoJCQlyZXR1cm4gcXVldWUg
fHwgW107CgkJfQoJfSwKCglkZXF1ZXVlOiBmdW5jdGlvbiggZWxlbSwgdHlwZSApIHsKCQl0eXBl
ID0gdHlwZSB8fCAiZngiOwoKCQl2YXIgcXVldWUgPSBqUXVlcnkucXVldWUoIGVsZW0sIHR5cGUg
KSwKCQkJc3RhcnRMZW5ndGggPSBxdWV1ZS5sZW5ndGgsCgkJCWZuID0gcXVldWUuc2hpZnQoKSwK
CQkJaG9va3MgPSBqUXVlcnkuX3F1ZXVlSG9va3MoIGVsZW0sIHR5cGUgKSwKCQkJbmV4dCA9IGZ1
bmN0aW9uKCkgewoJCQkJalF1ZXJ5LmRlcXVldWUoIGVsZW0sIHR5cGUgKTsKCQkJfTsKCgkJLy8g
SWYgdGhlIGZ4IHF1ZXVlIGlzIGRlcXVldWVkLCBhbHdheXMgcmVtb3ZlIHRoZSBwcm9ncmVzcyBz
ZW50aW5lbAoJCWlmICggZm4gPT09ICJpbnByb2dyZXNzIiApIHsKCQkJZm4gPSBxdWV1ZS5zaGlm
dCgpOwoJCQlzdGFydExlbmd0aC0tOwoJCX0KCgkJaWYgKCBmbiApIHsKCgkJCS8vIEFkZCBhIHBy
b2dyZXNzIHNlbnRpbmVsIHRvIHByZXZlbnQgdGhlIGZ4IHF1ZXVlIGZyb20gYmVpbmcKCQkJLy8g
YXV0b21hdGljYWxseSBkZXF1ZXVlZAoJCQlpZiAoIHR5cGUgPT09ICJmeCIgKSB7CgkJCQlxdWV1
ZS51bnNoaWZ0KCAiaW5wcm9ncmVzcyIgKTsKCQkJfQoKCQkJLy8gY2xlYXIgdXAgdGhlIGxhc3Qg
cXVldWUgc3RvcCBmdW5jdGlvbgoJCQlkZWxldGUgaG9va3Muc3RvcDsKCQkJZm4uY2FsbCggZWxl
bSwgbmV4dCwgaG9va3MgKTsKCQl9CgoJCWlmICggIXN0YXJ0TGVuZ3RoICYmIGhvb2tzICkgewoJ
CQlob29rcy5lbXB0eS5maXJlKCk7CgkJfQoJfSwKCgkvLyBub3QgaW50ZW5kZWQgZm9yIHB1Ymxp
YyBjb25zdW1wdGlvbiAtIGdlbmVyYXRlcyBhIHF1ZXVlSG9va3Mgb2JqZWN0LCBvciByZXR1cm5z
IHRoZSBjdXJyZW50IG9uZQoJX3F1ZXVlSG9va3M6IGZ1bmN0aW9uKCBlbGVtLCB0eXBlICkgewoJ
CXZhciBrZXkgPSB0eXBlICsgInF1ZXVlSG9va3MiOwoJCXJldHVybiBqUXVlcnkuX2RhdGEoIGVs
ZW0sIGtleSApIHx8IGpRdWVyeS5fZGF0YSggZWxlbSwga2V5LCB7CgkJCWVtcHR5OiBqUXVlcnku
Q2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLmFkZChmdW5jdGlvbigpIHsKCQkJCWpRdWVyeS5fcmVt
b3ZlRGF0YSggZWxlbSwgdHlwZSArICJxdWV1ZSIgKTsKCQkJCWpRdWVyeS5fcmVtb3ZlRGF0YSgg
ZWxlbSwga2V5ICk7CgkJCX0pCgkJfSk7Cgl9Cn0pOwoKalF1ZXJ5LmZuLmV4dGVuZCh7CglxdWV1
ZTogZnVuY3Rpb24oIHR5cGUsIGRhdGEgKSB7CgkJdmFyIHNldHRlciA9IDI7CgoJCWlmICggdHlw
ZW9mIHR5cGUgIT09ICJzdHJpbmciICkgewoJCQlkYXRhID0gdHlwZTsKCQkJdHlwZSA9ICJmeCI7
CgkJCXNldHRlci0tOwoJCX0KCgkJaWYgKCBhcmd1bWVudHMubGVuZ3RoIDwgc2V0dGVyICkgewoJ
CQlyZXR1cm4galF1ZXJ5LnF1ZXVlKCB0aGlzWzBdLCB0eXBlICk7CgkJfQoKCQlyZXR1cm4gZGF0
YSA9PT0gdW5kZWZpbmVkID8KCQkJdGhpcyA6CgkJCXRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJ
CXZhciBxdWV1ZSA9IGpRdWVyeS5xdWV1ZSggdGhpcywgdHlwZSwgZGF0YSApOwoKCQkJCS8vIGVu
c3VyZSBhIGhvb2tzIGZvciB0aGlzIHF1ZXVlCgkJCQlqUXVlcnkuX3F1ZXVlSG9va3MoIHRoaXMs
IHR5cGUgKTsKCgkJCQlpZiAoIHR5cGUgPT09ICJmeCIgJiYgcXVldWVbMF0gIT09ICJpbnByb2dy
ZXNzIiApIHsKCQkJCQlqUXVlcnkuZGVxdWV1ZSggdGhpcywgdHlwZSApOwoJCQkJfQoJCQl9KTsK
CX0sCglkZXF1ZXVlOiBmdW5jdGlvbiggdHlwZSApIHsKCQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0
aW9uKCkgewoJCQlqUXVlcnkuZGVxdWV1ZSggdGhpcywgdHlwZSApOwoJCX0pOwoJfSwKCWNsZWFy
UXVldWU6IGZ1bmN0aW9uKCB0eXBlICkgewoJCXJldHVybiB0aGlzLnF1ZXVlKCB0eXBlIHx8ICJm
eCIsIFtdICk7Cgl9LAoJLy8gR2V0IGEgcHJvbWlzZSByZXNvbHZlZCB3aGVuIHF1ZXVlcyBvZiBh
IGNlcnRhaW4gdHlwZQoJLy8gYXJlIGVtcHRpZWQgKGZ4IGlzIHRoZSB0eXBlIGJ5IGRlZmF1bHQp
Cglwcm9taXNlOiBmdW5jdGlvbiggdHlwZSwgb2JqICkgewoJCXZhciB0bXAsCgkJCWNvdW50ID0g
MSwKCQkJZGVmZXIgPSBqUXVlcnkuRGVmZXJyZWQoKSwKCQkJZWxlbWVudHMgPSB0aGlzLAoJCQlp
ID0gdGhpcy5sZW5ndGgsCgkJCXJlc29sdmUgPSBmdW5jdGlvbigpIHsKCQkJCWlmICggISggLS1j
b3VudCApICkgewoJCQkJCWRlZmVyLnJlc29sdmVXaXRoKCBlbGVtZW50cywgWyBlbGVtZW50cyBd
ICk7CgkJCQl9CgkJCX07CgoJCWlmICggdHlwZW9mIHR5cGUgIT09ICJzdHJpbmciICkgewoJCQlv
YmogPSB0eXBlOwoJCQl0eXBlID0gdW5kZWZpbmVkOwoJCX0KCQl0eXBlID0gdHlwZSB8fCAiZngi
OwoKCQl3aGlsZSAoIGktLSApIHsKCQkJdG1wID0galF1ZXJ5Ll9kYXRhKCBlbGVtZW50c1sgaSBd
LCB0eXBlICsgInF1ZXVlSG9va3MiICk7CgkJCWlmICggdG1wICYmIHRtcC5lbXB0eSApIHsKCQkJ
CWNvdW50Kys7CgkJCQl0bXAuZW1wdHkuYWRkKCByZXNvbHZlICk7CgkJCX0KCQl9CgkJcmVzb2x2
ZSgpOwoJCXJldHVybiBkZWZlci5wcm9taXNlKCBvYmogKTsKCX0KfSk7CnZhciBwbnVtID0gKC9b
Ky1dPyg/OlxkKlwufClcZCsoPzpbZUVdWystXT9cZCt8KS8pLnNvdXJjZTsKCnZhciBjc3NFeHBh
bmQgPSBbICJUb3AiLCAiUmlnaHQiLCAiQm90dG9tIiwgIkxlZnQiIF07Cgp2YXIgaXNIaWRkZW4g
PSBmdW5jdGlvbiggZWxlbSwgZWwgKSB7CgkJLy8gaXNIaWRkZW4gbWlnaHQgYmUgY2FsbGVkIGZy
b20galF1ZXJ5I2ZpbHRlciBmdW5jdGlvbjsKCQkvLyBpbiB0aGF0IGNhc2UsIGVsZW1lbnQgd2ls
bCBiZSBzZWNvbmQgYXJndW1lbnQKCQllbGVtID0gZWwgfHwgZWxlbTsKCQlyZXR1cm4galF1ZXJ5
LmNzcyggZWxlbSwgImRpc3BsYXkiICkgPT09ICJub25lIiB8fCAhalF1ZXJ5LmNvbnRhaW5zKCBl
bGVtLm93bmVyRG9jdW1lbnQsIGVsZW0gKTsKCX07CgoKCi8vIE11bHRpZnVuY3Rpb25hbCBtZXRo
b2QgdG8gZ2V0IGFuZCBzZXQgdmFsdWVzIG9mIGEgY29sbGVjdGlvbgovLyBUaGUgdmFsdWUvcyBj
YW4gb3B0aW9uYWxseSBiZSBleGVjdXRlZCBpZiBpdCdzIGEgZnVuY3Rpb24KdmFyIGFjY2VzcyA9
IGpRdWVyeS5hY2Nlc3MgPSBmdW5jdGlvbiggZWxlbXMsIGZuLCBrZXksIHZhbHVlLCBjaGFpbmFi
bGUsIGVtcHR5R2V0LCByYXcgKSB7Cgl2YXIgaSA9IDAsCgkJbGVuZ3RoID0gZWxlbXMubGVuZ3Ro
LAoJCWJ1bGsgPSBrZXkgPT0gbnVsbDsKCgkvLyBTZXRzIG1hbnkgdmFsdWVzCglpZiAoIGpRdWVy
eS50eXBlKCBrZXkgKSA9PT0gIm9iamVjdCIgKSB7CgkJY2hhaW5hYmxlID0gdHJ1ZTsKCQlmb3Ig
KCBpIGluIGtleSApIHsKCQkJalF1ZXJ5LmFjY2VzcyggZWxlbXMsIGZuLCBpLCBrZXlbaV0sIHRy
dWUsIGVtcHR5R2V0LCByYXcgKTsKCQl9CgoJLy8gU2V0cyBvbmUgdmFsdWUKCX0gZWxzZSBpZiAo
IHZhbHVlICE9PSB1bmRlZmluZWQgKSB7CgkJY2hhaW5hYmxlID0gdHJ1ZTsKCgkJaWYgKCAhalF1
ZXJ5LmlzRnVuY3Rpb24oIHZhbHVlICkgKSB7CgkJCXJhdyA9IHRydWU7CgkJfQoKCQlpZiAoIGJ1
bGsgKSB7CgkJCS8vIEJ1bGsgb3BlcmF0aW9ucyBydW4gYWdhaW5zdCB0aGUgZW50aXJlIHNldAoJ
CQlpZiAoIHJhdyApIHsKCQkJCWZuLmNhbGwoIGVsZW1zLCB2YWx1ZSApOwoJCQkJZm4gPSBudWxs
OwoKCQkJLy8gLi4uZXhjZXB0IHdoZW4gZXhlY3V0aW5nIGZ1bmN0aW9uIHZhbHVlcwoJCQl9IGVs
c2UgewoJCQkJYnVsayA9IGZuOwoJCQkJZm4gPSBmdW5jdGlvbiggZWxlbSwga2V5LCB2YWx1ZSAp
IHsKCQkJCQlyZXR1cm4gYnVsay5jYWxsKCBqUXVlcnkoIGVsZW0gKSwgdmFsdWUgKTsKCQkJCX07
CgkJCX0KCQl9CgoJCWlmICggZm4gKSB7CgkJCWZvciAoIDsgaSA8IGxlbmd0aDsgaSsrICkgewoJ
CQkJZm4oIGVsZW1zW2ldLCBrZXksIHJhdyA/IHZhbHVlIDogdmFsdWUuY2FsbCggZWxlbXNbaV0s
IGksIGZuKCBlbGVtc1tpXSwga2V5ICkgKSApOwoJCQl9CgkJfQoJfQoKCXJldHVybiBjaGFpbmFi
bGUgPwoJCWVsZW1zIDoKCgkJLy8gR2V0cwoJCWJ1bGsgPwoJCQlmbi5jYWxsKCBlbGVtcyApIDoK
CQkJbGVuZ3RoID8gZm4oIGVsZW1zWzBdLCBrZXkgKSA6IGVtcHR5R2V0Owp9Owp2YXIgcmNoZWNr
YWJsZVR5cGUgPSAoL14oPzpjaGVja2JveHxyYWRpbykkL2kpOwoKCgooZnVuY3Rpb24oKSB7Cgkv
LyBNaW5pZmllZDogdmFyIGEsYixjCgl2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCAiaW5wdXQiICksCgkJZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggImRpdiIgKSwKCQlm
cmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKCgkvLyBTZXR1cAoJ
ZGl2LmlubmVySFRNTCA9ICIgIDxsaW5rLz48dGFibGU+PC90YWJsZT48YSBocmVmPScvYSc+YTwv
YT48aW5wdXQgdHlwZT0nY2hlY2tib3gnLz4iOwoKCS8vIElFIHN0cmlwcyBsZWFkaW5nIHdoaXRl
c3BhY2Ugd2hlbiAuaW5uZXJIVE1MIGlzIHVzZWQKCXN1cHBvcnQubGVhZGluZ1doaXRlc3BhY2Ug
PSBkaXYuZmlyc3RDaGlsZC5ub2RlVHlwZSA9PT0gMzsKCgkvLyBNYWtlIHN1cmUgdGhhdCB0Ym9k
eSBlbGVtZW50cyBhcmVuJ3QgYXV0b21hdGljYWxseSBpbnNlcnRlZAoJLy8gSUUgd2lsbCBpbnNl
cnQgdGhlbSBpbnRvIGVtcHR5IHRhYmxlcwoJc3VwcG9ydC50Ym9keSA9ICFkaXYuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoICJ0Ym9keSIgKS5sZW5ndGg7CgoJLy8gTWFrZSBzdXJlIHRoYXQgbGluayBl
bGVtZW50cyBnZXQgc2VyaWFsaXplZCBjb3JyZWN0bHkgYnkgaW5uZXJIVE1MCgkvLyBUaGlzIHJl
cXVpcmVzIGEgd3JhcHBlciBlbGVtZW50IGluIElFCglzdXBwb3J0Lmh0bWxTZXJpYWxpemUgPSAh
IWRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSggImxpbmsiICkubGVuZ3RoOwoKCS8vIE1ha2VzIHN1
cmUgY2xvbmluZyBhbiBodG1sNSBlbGVtZW50IGRvZXMgbm90IGNhdXNlIHByb2JsZW1zCgkvLyBX
aGVyZSBvdXRlckhUTUwgaXMgdW5kZWZpbmVkLCB0aGlzIHN0aWxsIHdvcmtzCglzdXBwb3J0Lmh0
bWw1Q2xvbmUgPQoJCWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICJuYXYiICkuY2xvbmVOb2RlKCB0
cnVlICkub3V0ZXJIVE1MICE9PSAiPDpuYXY+PC86bmF2PiI7CgoJLy8gQ2hlY2sgaWYgYSBkaXNj
b25uZWN0ZWQgY2hlY2tib3ggd2lsbCByZXRhaW4gaXRzIGNoZWNrZWQKCS8vIHZhbHVlIG9mIHRy
dWUgYWZ0ZXIgYXBwZW5kZWQgdG8gdGhlIERPTSAoSUU2LzcpCglpbnB1dC50eXBlID0gImNoZWNr
Ym94IjsKCWlucHV0LmNoZWNrZWQgPSB0cnVlOwoJZnJhZ21lbnQuYXBwZW5kQ2hpbGQoIGlucHV0
ICk7CglzdXBwb3J0LmFwcGVuZENoZWNrZWQgPSBpbnB1dC5jaGVja2VkOwoKCS8vIE1ha2Ugc3Vy
ZSB0ZXh0YXJlYSAoYW5kIGNoZWNrYm94KSBkZWZhdWx0VmFsdWUgaXMgcHJvcGVybHkgY2xvbmVk
CgkvLyBTdXBwb3J0OiBJRTYtSUUxMSsKCWRpdi5pbm5lckhUTUwgPSAiPHRleHRhcmVhPng8L3Rl
eHRhcmVhPiI7CglzdXBwb3J0Lm5vQ2xvbmVDaGVja2VkID0gISFkaXYuY2xvbmVOb2RlKCB0cnVl
ICkubGFzdENoaWxkLmRlZmF1bHRWYWx1ZTsKCgkvLyAjMTEyMTcgLSBXZWJLaXQgbG9zZXMgY2hl
Y2sgd2hlbiB0aGUgbmFtZSBpcyBhZnRlciB0aGUgY2hlY2tlZCBhdHRyaWJ1dGUKCWZyYWdtZW50
LmFwcGVuZENoaWxkKCBkaXYgKTsKCWRpdi5pbm5lckhUTUwgPSAiPGlucHV0IHR5cGU9J3JhZGlv
JyBjaGVja2VkPSdjaGVja2VkJyBuYW1lPSd0Jy8+IjsKCgkvLyBTdXBwb3J0OiBTYWZhcmkgNS4x
LCBpT1MgNS4xLCBBbmRyb2lkIDQueCwgQW5kcm9pZCAyLjMKCS8vIG9sZCBXZWJLaXQgZG9lc24n
dCBjbG9uZSBjaGVja2VkIHN0YXRlIGNvcnJlY3RseSBpbiBmcmFnbWVudHMKCXN1cHBvcnQuY2hl
Y2tDbG9uZSA9IGRpdi5jbG9uZU5vZGUoIHRydWUgKS5jbG9uZU5vZGUoIHRydWUgKS5sYXN0Q2hp
bGQuY2hlY2tlZDsKCgkvLyBTdXBwb3J0OiBJRTw5CgkvLyBPcGVyYSBkb2VzIG5vdCBjbG9uZSBl
dmVudHMgKGFuZCB0eXBlb2YgZGl2LmF0dGFjaEV2ZW50ID09PSB1bmRlZmluZWQpLgoJLy8gSUU5
LTEwIGNsb25lcyBldmVudHMgYm91bmQgdmlhIGF0dGFjaEV2ZW50LCBidXQgdGhleSBkb24ndCB0
cmlnZ2VyIHdpdGggLmNsaWNrKCkKCXN1cHBvcnQubm9DbG9uZUV2ZW50ID0gdHJ1ZTsKCWlmICgg
ZGl2LmF0dGFjaEV2ZW50ICkgewoJCWRpdi5hdHRhY2hFdmVudCggIm9uY2xpY2siLCBmdW5jdGlv
bigpIHsKCQkJc3VwcG9ydC5ub0Nsb25lRXZlbnQgPSBmYWxzZTsKCQl9KTsKCgkJZGl2LmNsb25l
Tm9kZSggdHJ1ZSApLmNsaWNrKCk7Cgl9CgoJLy8gRXhlY3V0ZSB0aGUgdGVzdCBvbmx5IGlmIG5v
dCBhbHJlYWR5IGV4ZWN1dGVkIGluIGFub3RoZXIgbW9kdWxlLgoJaWYgKHN1cHBvcnQuZGVsZXRl
RXhwYW5kbyA9PSBudWxsKSB7CgkJLy8gU3VwcG9ydDogSUU8OQoJCXN1cHBvcnQuZGVsZXRlRXhw
YW5kbyA9IHRydWU7CgkJdHJ5IHsKCQkJZGVsZXRlIGRpdi50ZXN0OwoJCX0gY2F0Y2goIGUgKSB7
CgkJCXN1cHBvcnQuZGVsZXRlRXhwYW5kbyA9IGZhbHNlOwoJCX0KCX0KfSkoKTsKCgooZnVuY3Rp
b24oKSB7Cgl2YXIgaSwgZXZlbnROYW1lLAoJCWRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ICJkaXYiICk7CgoJLy8gU3VwcG9ydDogSUU8OSAobGFjayBzdWJtaXQvY2hhbmdlIGJ1YmJsZSks
IEZpcmVmb3ggMjMrIChsYWNrIGZvY3VzaW4gZXZlbnQpCglmb3IgKCBpIGluIHsgc3VibWl0OiB0
cnVlLCBjaGFuZ2U6IHRydWUsIGZvY3VzaW46IHRydWUgfSkgewoJCWV2ZW50TmFtZSA9ICJvbiIg
KyBpOwoKCQlpZiAoICEoc3VwcG9ydFsgaSArICJCdWJibGVzIiBdID0gZXZlbnROYW1lIGluIHdp
bmRvdykgKSB7CgkJCS8vIEJld2FyZSBvZiBDU1AgcmVzdHJpY3Rpb25zIChodHRwczovL2RldmVs
b3Blci5tb3ppbGxhLm9yZy9lbi9TZWN1cml0eS9DU1ApCgkJCWRpdi5zZXRBdHRyaWJ1dGUoIGV2
ZW50TmFtZSwgInQiICk7CgkJCXN1cHBvcnRbIGkgKyAiQnViYmxlcyIgXSA9IGRpdi5hdHRyaWJ1
dGVzWyBldmVudE5hbWUgXS5leHBhbmRvID09PSBmYWxzZTsKCQl9Cgl9CgoJLy8gTnVsbCBlbGVt
ZW50cyB0byBhdm9pZCBsZWFrcyBpbiBJRS4KCWRpdiA9IG51bGw7Cn0pKCk7CgoKdmFyIHJmb3Jt
RWxlbXMgPSAvXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYSkkL2ksCglya2V5RXZlbnQgPSAvXmtl
eS8sCglybW91c2VFdmVudCA9IC9eKD86bW91c2V8cG9pbnRlcnxjb250ZXh0bWVudSl8Y2xpY2sv
LAoJcmZvY3VzTW9ycGggPSAvXig/OmZvY3VzaW5mb2N1c3xmb2N1c291dGJsdXIpJC8sCglydHlw
ZW5hbWVzcGFjZSA9IC9eKFteLl0qKSg/OlwuKC4rKXwpJC87CgpmdW5jdGlvbiByZXR1cm5UcnVl
KCkgewoJcmV0dXJuIHRydWU7Cn0KCmZ1bmN0aW9uIHJldHVybkZhbHNlKCkgewoJcmV0dXJuIGZh
bHNlOwp9CgpmdW5jdGlvbiBzYWZlQWN0aXZlRWxlbWVudCgpIHsKCXRyeSB7CgkJcmV0dXJuIGRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQ7Cgl9IGNhdGNoICggZXJyICkgeyB9Cn0KCi8qCiAqIEhlbHBl
ciBmdW5jdGlvbnMgZm9yIG1hbmFnaW5nIGV2ZW50cyAtLSBub3QgcGFydCBvZiB0aGUgcHVibGlj
IGludGVyZmFjZS4KICogUHJvcHMgdG8gRGVhbiBFZHdhcmRzJyBhZGRFdmVudCBsaWJyYXJ5IGZv
ciBtYW55IG9mIHRoZSBpZGVhcy4KICovCmpRdWVyeS5ldmVudCA9IHsKCglnbG9iYWw6IHt9LAoK
CWFkZDogZnVuY3Rpb24oIGVsZW0sIHR5cGVzLCBoYW5kbGVyLCBkYXRhLCBzZWxlY3RvciApIHsK
CQl2YXIgdG1wLCBldmVudHMsIHQsIGhhbmRsZU9iakluLAoJCQlzcGVjaWFsLCBldmVudEhhbmRs
ZSwgaGFuZGxlT2JqLAoJCQloYW5kbGVycywgdHlwZSwgbmFtZXNwYWNlcywgb3JpZ1R5cGUsCgkJ
CWVsZW1EYXRhID0galF1ZXJ5Ll9kYXRhKCBlbGVtICk7CgoJCS8vIERvbid0IGF0dGFjaCBldmVu
dHMgdG8gbm9EYXRhIG9yIHRleHQvY29tbWVudCBub2RlcyAoYnV0IGFsbG93IHBsYWluIG9iamVj
dHMpCgkJaWYgKCAhZWxlbURhdGEgKSB7CgkJCXJldHVybjsKCQl9CgoJCS8vIENhbGxlciBjYW4g
cGFzcyBpbiBhbiBvYmplY3Qgb2YgY3VzdG9tIGRhdGEgaW4gbGlldSBvZiB0aGUgaGFuZGxlcgoJ
CWlmICggaGFuZGxlci5oYW5kbGVyICkgewoJCQloYW5kbGVPYmpJbiA9IGhhbmRsZXI7CgkJCWhh
bmRsZXIgPSBoYW5kbGVPYmpJbi5oYW5kbGVyOwoJCQlzZWxlY3RvciA9IGhhbmRsZU9iakluLnNl
bGVjdG9yOwoJCX0KCgkJLy8gTWFrZSBzdXJlIHRoYXQgdGhlIGhhbmRsZXIgaGFzIGEgdW5pcXVl
IElELCB1c2VkIHRvIGZpbmQvcmVtb3ZlIGl0IGxhdGVyCgkJaWYgKCAhaGFuZGxlci5ndWlkICkg
ewoJCQloYW5kbGVyLmd1aWQgPSBqUXVlcnkuZ3VpZCsrOwoJCX0KCgkJLy8gSW5pdCB0aGUgZWxl
bWVudCdzIGV2ZW50IHN0cnVjdHVyZSBhbmQgbWFpbiBoYW5kbGVyLCBpZiB0aGlzIGlzIHRoZSBm
aXJzdAoJCWlmICggIShldmVudHMgPSBlbGVtRGF0YS5ldmVudHMpICkgewoJCQlldmVudHMgPSBl
bGVtRGF0YS5ldmVudHMgPSB7fTsKCQl9CgkJaWYgKCAhKGV2ZW50SGFuZGxlID0gZWxlbURhdGEu
aGFuZGxlKSApIHsKCQkJZXZlbnRIYW5kbGUgPSBlbGVtRGF0YS5oYW5kbGUgPSBmdW5jdGlvbigg
ZSApIHsKCQkJCS8vIERpc2NhcmQgdGhlIHNlY29uZCBldmVudCBvZiBhIGpRdWVyeS5ldmVudC50
cmlnZ2VyKCkgYW5kCgkJCQkvLyB3aGVuIGFuIGV2ZW50IGlzIGNhbGxlZCBhZnRlciBhIHBhZ2Ug
aGFzIHVubG9hZGVkCgkJCQlyZXR1cm4gdHlwZW9mIGpRdWVyeSAhPT0gc3RydW5kZWZpbmVkICYm
ICghZSB8fCBqUXVlcnkuZXZlbnQudHJpZ2dlcmVkICE9PSBlLnR5cGUpID8KCQkJCQlqUXVlcnku
ZXZlbnQuZGlzcGF0Y2guYXBwbHkoIGV2ZW50SGFuZGxlLmVsZW0sIGFyZ3VtZW50cyApIDoKCQkJ
CQl1bmRlZmluZWQ7CgkJCX07CgkJCS8vIEFkZCBlbGVtIGFzIGEgcHJvcGVydHkgb2YgdGhlIGhh
bmRsZSBmbiB0byBwcmV2ZW50IGEgbWVtb3J5IGxlYWsgd2l0aCBJRSBub24tbmF0aXZlIGV2ZW50
cwoJCQlldmVudEhhbmRsZS5lbGVtID0gZWxlbTsKCQl9CgoJCS8vIEhhbmRsZSBtdWx0aXBsZSBl
dmVudHMgc2VwYXJhdGVkIGJ5IGEgc3BhY2UKCQl0eXBlcyA9ICggdHlwZXMgfHwgIiIgKS5tYXRj
aCggcm5vdHdoaXRlICkgfHwgWyAiIiBdOwoJCXQgPSB0eXBlcy5sZW5ndGg7CgkJd2hpbGUgKCB0
LS0gKSB7CgkJCXRtcCA9IHJ0eXBlbmFtZXNwYWNlLmV4ZWMoIHR5cGVzW3RdICkgfHwgW107CgkJ
CXR5cGUgPSBvcmlnVHlwZSA9IHRtcFsxXTsKCQkJbmFtZXNwYWNlcyA9ICggdG1wWzJdIHx8ICIi
ICkuc3BsaXQoICIuIiApLnNvcnQoKTsKCgkJCS8vIFRoZXJlICptdXN0KiBiZSBhIHR5cGUsIG5v
IGF0dGFjaGluZyBuYW1lc3BhY2Utb25seSBoYW5kbGVycwoJCQlpZiAoICF0eXBlICkgewoJCQkJ
Y29udGludWU7CgkJCX0KCgkJCS8vIElmIGV2ZW50IGNoYW5nZXMgaXRzIHR5cGUsIHVzZSB0aGUg
c3BlY2lhbCBldmVudCBoYW5kbGVycyBmb3IgdGhlIGNoYW5nZWQgdHlwZQoJCQlzcGVjaWFsID0g
alF1ZXJ5LmV2ZW50LnNwZWNpYWxbIHR5cGUgXSB8fCB7fTsKCgkJCS8vIElmIHNlbGVjdG9yIGRl
ZmluZWQsIGRldGVybWluZSBzcGVjaWFsIGV2ZW50IGFwaSB0eXBlLCBvdGhlcndpc2UgZ2l2ZW4g
dHlwZQoJCQl0eXBlID0gKCBzZWxlY3RvciA/IHNwZWNpYWwuZGVsZWdhdGVUeXBlIDogc3BlY2lh
bC5iaW5kVHlwZSApIHx8IHR5cGU7CgoJCQkvLyBVcGRhdGUgc3BlY2lhbCBiYXNlZCBvbiBuZXds
eSByZXNldCB0eXBlCgkJCXNwZWNpYWwgPSBqUXVlcnkuZXZlbnQuc3BlY2lhbFsgdHlwZSBdIHx8
IHt9OwoKCQkJLy8gaGFuZGxlT2JqIGlzIHBhc3NlZCB0byBhbGwgZXZlbnQgaGFuZGxlcnMKCQkJ
aGFuZGxlT2JqID0galF1ZXJ5LmV4dGVuZCh7CgkJCQl0eXBlOiB0eXBlLAoJCQkJb3JpZ1R5cGU6
IG9yaWdUeXBlLAoJCQkJZGF0YTogZGF0YSwKCQkJCWhhbmRsZXI6IGhhbmRsZXIsCgkJCQlndWlk
OiBoYW5kbGVyLmd1aWQsCgkJCQlzZWxlY3Rvcjogc2VsZWN0b3IsCgkJCQluZWVkc0NvbnRleHQ6
IHNlbGVjdG9yICYmIGpRdWVyeS5leHByLm1hdGNoLm5lZWRzQ29udGV4dC50ZXN0KCBzZWxlY3Rv
ciApLAoJCQkJbmFtZXNwYWNlOiBuYW1lc3BhY2VzLmpvaW4oIi4iKQoJCQl9LCBoYW5kbGVPYmpJ
biApOwoKCQkJLy8gSW5pdCB0aGUgZXZlbnQgaGFuZGxlciBxdWV1ZSBpZiB3ZSdyZSB0aGUgZmly
c3QKCQkJaWYgKCAhKGhhbmRsZXJzID0gZXZlbnRzWyB0eXBlIF0pICkgewoJCQkJaGFuZGxlcnMg
PSBldmVudHNbIHR5cGUgXSA9IFtdOwoJCQkJaGFuZGxlcnMuZGVsZWdhdGVDb3VudCA9IDA7CgoJ
CQkJLy8gT25seSB1c2UgYWRkRXZlbnRMaXN0ZW5lci9hdHRhY2hFdmVudCBpZiB0aGUgc3BlY2lh
bCBldmVudHMgaGFuZGxlciByZXR1cm5zIGZhbHNlCgkJCQlpZiAoICFzcGVjaWFsLnNldHVwIHx8
IHNwZWNpYWwuc2V0dXAuY2FsbCggZWxlbSwgZGF0YSwgbmFtZXNwYWNlcywgZXZlbnRIYW5kbGUg
KSA9PT0gZmFsc2UgKSB7CgkJCQkJLy8gQmluZCB0aGUgZ2xvYmFsIGV2ZW50IGhhbmRsZXIgdG8g
dGhlIGVsZW1lbnQKCQkJCQlpZiAoIGVsZW0uYWRkRXZlbnRMaXN0ZW5lciApIHsKCQkJCQkJZWxl
bS5hZGRFdmVudExpc3RlbmVyKCB0eXBlLCBldmVudEhhbmRsZSwgZmFsc2UgKTsKCgkJCQkJfSBl
bHNlIGlmICggZWxlbS5hdHRhY2hFdmVudCApIHsKCQkJCQkJZWxlbS5hdHRhY2hFdmVudCggIm9u
IiArIHR5cGUsIGV2ZW50SGFuZGxlICk7CgkJCQkJfQoJCQkJfQoJCQl9CgoJCQlpZiAoIHNwZWNp
YWwuYWRkICkgewoJCQkJc3BlY2lhbC5hZGQuY2FsbCggZWxlbSwgaGFuZGxlT2JqICk7CgoJCQkJ
aWYgKCAhaGFuZGxlT2JqLmhhbmRsZXIuZ3VpZCApIHsKCQkJCQloYW5kbGVPYmouaGFuZGxlci5n
dWlkID0gaGFuZGxlci5ndWlkOwoJCQkJfQoJCQl9CgoJCQkvLyBBZGQgdG8gdGhlIGVsZW1lbnQn
cyBoYW5kbGVyIGxpc3QsIGRlbGVnYXRlcyBpbiBmcm9udAoJCQlpZiAoIHNlbGVjdG9yICkgewoJ
CQkJaGFuZGxlcnMuc3BsaWNlKCBoYW5kbGVycy5kZWxlZ2F0ZUNvdW50KyssIDAsIGhhbmRsZU9i
aiApOwoJCQl9IGVsc2UgewoJCQkJaGFuZGxlcnMucHVzaCggaGFuZGxlT2JqICk7CgkJCX0KCgkJ
CS8vIEtlZXAgdHJhY2sgb2Ygd2hpY2ggZXZlbnRzIGhhdmUgZXZlciBiZWVuIHVzZWQsIGZvciBl
dmVudCBvcHRpbWl6YXRpb24KCQkJalF1ZXJ5LmV2ZW50Lmdsb2JhbFsgdHlwZSBdID0gdHJ1ZTsK
CQl9CgoJCS8vIE51bGxpZnkgZWxlbSB0byBwcmV2ZW50IG1lbW9yeSBsZWFrcyBpbiBJRQoJCWVs
ZW0gPSBudWxsOwoJfSwKCgkvLyBEZXRhY2ggYW4gZXZlbnQgb3Igc2V0IG9mIGV2ZW50cyBmcm9t
IGFuIGVsZW1lbnQKCXJlbW92ZTogZnVuY3Rpb24oIGVsZW0sIHR5cGVzLCBoYW5kbGVyLCBzZWxl
Y3RvciwgbWFwcGVkVHlwZXMgKSB7CgkJdmFyIGosIGhhbmRsZU9iaiwgdG1wLAoJCQlvcmlnQ291
bnQsIHQsIGV2ZW50cywKCQkJc3BlY2lhbCwgaGFuZGxlcnMsIHR5cGUsCgkJCW5hbWVzcGFjZXMs
IG9yaWdUeXBlLAoJCQllbGVtRGF0YSA9IGpRdWVyeS5oYXNEYXRhKCBlbGVtICkgJiYgalF1ZXJ5
Ll9kYXRhKCBlbGVtICk7CgoJCWlmICggIWVsZW1EYXRhIHx8ICEoZXZlbnRzID0gZWxlbURhdGEu
ZXZlbnRzKSApIHsKCQkJcmV0dXJuOwoJCX0KCgkJLy8gT25jZSBmb3IgZWFjaCB0eXBlLm5hbWVz
cGFjZSBpbiB0eXBlczsgdHlwZSBtYXkgYmUgb21pdHRlZAoJCXR5cGVzID0gKCB0eXBlcyB8fCAi
IiApLm1hdGNoKCBybm90d2hpdGUgKSB8fCBbICIiIF07CgkJdCA9IHR5cGVzLmxlbmd0aDsKCQl3
aGlsZSAoIHQtLSApIHsKCQkJdG1wID0gcnR5cGVuYW1lc3BhY2UuZXhlYyggdHlwZXNbdF0gKSB8
fCBbXTsKCQkJdHlwZSA9IG9yaWdUeXBlID0gdG1wWzFdOwoJCQluYW1lc3BhY2VzID0gKCB0bXBb
Ml0gfHwgIiIgKS5zcGxpdCggIi4iICkuc29ydCgpOwoKCQkJLy8gVW5iaW5kIGFsbCBldmVudHMg
KG9uIHRoaXMgbmFtZXNwYWNlLCBpZiBwcm92aWRlZCkgZm9yIHRoZSBlbGVtZW50CgkJCWlmICgg
IXR5cGUgKSB7CgkJCQlmb3IgKCB0eXBlIGluIGV2ZW50cyApIHsKCQkJCQlqUXVlcnkuZXZlbnQu
cmVtb3ZlKCBlbGVtLCB0eXBlICsgdHlwZXNbIHQgXSwgaGFuZGxlciwgc2VsZWN0b3IsIHRydWUg
KTsKCQkJCX0KCQkJCWNvbnRpbnVlOwoJCQl9CgoJCQlzcGVjaWFsID0galF1ZXJ5LmV2ZW50LnNw
ZWNpYWxbIHR5cGUgXSB8fCB7fTsKCQkJdHlwZSA9ICggc2VsZWN0b3IgPyBzcGVjaWFsLmRlbGVn
YXRlVHlwZSA6IHNwZWNpYWwuYmluZFR5cGUgKSB8fCB0eXBlOwoJCQloYW5kbGVycyA9IGV2ZW50
c1sgdHlwZSBdIHx8IFtdOwoJCQl0bXAgPSB0bXBbMl0gJiYgbmV3IFJlZ0V4cCggIihefFxcLiki
ICsgbmFtZXNwYWNlcy5qb2luKCJcXC4oPzouKlxcLnwpIikgKyAiKFxcLnwkKSIgKTsKCgkJCS8v
IFJlbW92ZSBtYXRjaGluZyBldmVudHMKCQkJb3JpZ0NvdW50ID0gaiA9IGhhbmRsZXJzLmxlbmd0
aDsKCQkJd2hpbGUgKCBqLS0gKSB7CgkJCQloYW5kbGVPYmogPSBoYW5kbGVyc1sgaiBdOwoKCQkJ
CWlmICggKCBtYXBwZWRUeXBlcyB8fCBvcmlnVHlwZSA9PT0gaGFuZGxlT2JqLm9yaWdUeXBlICkg
JiYKCQkJCQkoICFoYW5kbGVyIHx8IGhhbmRsZXIuZ3VpZCA9PT0gaGFuZGxlT2JqLmd1aWQgKSAm
JgoJCQkJCSggIXRtcCB8fCB0bXAudGVzdCggaGFuZGxlT2JqLm5hbWVzcGFjZSApICkgJiYKCQkJ
CQkoICFzZWxlY3RvciB8fCBzZWxlY3RvciA9PT0gaGFuZGxlT2JqLnNlbGVjdG9yIHx8IHNlbGVj
dG9yID09PSAiKioiICYmIGhhbmRsZU9iai5zZWxlY3RvciApICkgewoJCQkJCWhhbmRsZXJzLnNw
bGljZSggaiwgMSApOwoKCQkJCQlpZiAoIGhhbmRsZU9iai5zZWxlY3RvciApIHsKCQkJCQkJaGFu
ZGxlcnMuZGVsZWdhdGVDb3VudC0tOwoJCQkJCX0KCQkJCQlpZiAoIHNwZWNpYWwucmVtb3ZlICkg
ewoJCQkJCQlzcGVjaWFsLnJlbW92ZS5jYWxsKCBlbGVtLCBoYW5kbGVPYmogKTsKCQkJCQl9CgkJ
CQl9CgkJCX0KCgkJCS8vIFJlbW92ZSBnZW5lcmljIGV2ZW50IGhhbmRsZXIgaWYgd2UgcmVtb3Zl
ZCBzb21ldGhpbmcgYW5kIG5vIG1vcmUgaGFuZGxlcnMgZXhpc3QKCQkJLy8gKGF2b2lkcyBwb3Rl
bnRpYWwgZm9yIGVuZGxlc3MgcmVjdXJzaW9uIGR1cmluZyByZW1vdmFsIG9mIHNwZWNpYWwgZXZl
bnQgaGFuZGxlcnMpCgkJCWlmICggb3JpZ0NvdW50ICYmICFoYW5kbGVycy5sZW5ndGggKSB7CgkJ
CQlpZiAoICFzcGVjaWFsLnRlYXJkb3duIHx8IHNwZWNpYWwudGVhcmRvd24uY2FsbCggZWxlbSwg
bmFtZXNwYWNlcywgZWxlbURhdGEuaGFuZGxlICkgPT09IGZhbHNlICkgewoJCQkJCWpRdWVyeS5y
ZW1vdmVFdmVudCggZWxlbSwgdHlwZSwgZWxlbURhdGEuaGFuZGxlICk7CgkJCQl9CgoJCQkJZGVs
ZXRlIGV2ZW50c1sgdHlwZSBdOwoJCQl9CgkJfQoKCQkvLyBSZW1vdmUgdGhlIGV4cGFuZG8gaWYg
aXQncyBubyBsb25nZXIgdXNlZAoJCWlmICggalF1ZXJ5LmlzRW1wdHlPYmplY3QoIGV2ZW50cyAp
ICkgewoJCQlkZWxldGUgZWxlbURhdGEuaGFuZGxlOwoKCQkJLy8gcmVtb3ZlRGF0YSBhbHNvIGNo
ZWNrcyBmb3IgZW1wdGluZXNzIGFuZCBjbGVhcnMgdGhlIGV4cGFuZG8gaWYgZW1wdHkKCQkJLy8g
c28gdXNlIGl0IGluc3RlYWQgb2YgZGVsZXRlCgkJCWpRdWVyeS5fcmVtb3ZlRGF0YSggZWxlbSwg
ImV2ZW50cyIgKTsKCQl9Cgl9LAoKCXRyaWdnZXI6IGZ1bmN0aW9uKCBldmVudCwgZGF0YSwgZWxl
bSwgb25seUhhbmRsZXJzICkgewoJCXZhciBoYW5kbGUsIG9udHlwZSwgY3VyLAoJCQlidWJibGVU
eXBlLCBzcGVjaWFsLCB0bXAsIGksCgkJCWV2ZW50UGF0aCA9IFsgZWxlbSB8fCBkb2N1bWVudCBd
LAoJCQl0eXBlID0gaGFzT3duLmNhbGwoIGV2ZW50LCAidHlwZSIgKSA/IGV2ZW50LnR5cGUgOiBl
dmVudCwKCQkJbmFtZXNwYWNlcyA9IGhhc093bi5jYWxsKCBldmVudCwgIm5hbWVzcGFjZSIgKSA/
IGV2ZW50Lm5hbWVzcGFjZS5zcGxpdCgiLiIpIDogW107CgoJCWN1ciA9IHRtcCA9IGVsZW0gPSBl
bGVtIHx8IGRvY3VtZW50OwoKCQkvLyBEb24ndCBkbyBldmVudHMgb24gdGV4dCBhbmQgY29tbWVu
dCBub2RlcwoJCWlmICggZWxlbS5ub2RlVHlwZSA9PT0gMyB8fCBlbGVtLm5vZGVUeXBlID09PSA4
ICkgewoJCQlyZXR1cm47CgkJfQoKCQkvLyBmb2N1cy9ibHVyIG1vcnBocyB0byBmb2N1c2luL291
dDsgZW5zdXJlIHdlJ3JlIG5vdCBmaXJpbmcgdGhlbSByaWdodCBub3cKCQlpZiAoIHJmb2N1c01v
cnBoLnRlc3QoIHR5cGUgKyBqUXVlcnkuZXZlbnQudHJpZ2dlcmVkICkgKSB7CgkJCXJldHVybjsK
CQl9CgoJCWlmICggdHlwZS5pbmRleE9mKCIuIikgPj0gMCApIHsKCQkJLy8gTmFtZXNwYWNlZCB0
cmlnZ2VyOyBjcmVhdGUgYSByZWdleHAgdG8gbWF0Y2ggZXZlbnQgdHlwZSBpbiBoYW5kbGUoKQoJ
CQluYW1lc3BhY2VzID0gdHlwZS5zcGxpdCgiLiIpOwoJCQl0eXBlID0gbmFtZXNwYWNlcy5zaGlm
dCgpOwoJCQluYW1lc3BhY2VzLnNvcnQoKTsKCQl9CgkJb250eXBlID0gdHlwZS5pbmRleE9mKCI6
IikgPCAwICYmICJvbiIgKyB0eXBlOwoKCQkvLyBDYWxsZXIgY2FuIHBhc3MgaW4gYSBqUXVlcnku
RXZlbnQgb2JqZWN0LCBPYmplY3QsIG9yIGp1c3QgYW4gZXZlbnQgdHlwZSBzdHJpbmcKCQlldmVu
dCA9IGV2ZW50WyBqUXVlcnkuZXhwYW5kbyBdID8KCQkJZXZlbnQgOgoJCQluZXcgalF1ZXJ5LkV2
ZW50KCB0eXBlLCB0eXBlb2YgZXZlbnQgPT09ICJvYmplY3QiICYmIGV2ZW50ICk7CgoJCS8vIFRy
aWdnZXIgYml0bWFzazogJiAxIGZvciBuYXRpdmUgaGFuZGxlcnM7ICYgMiBmb3IgalF1ZXJ5IChh
bHdheXMgdHJ1ZSkKCQlldmVudC5pc1RyaWdnZXIgPSBvbmx5SGFuZGxlcnMgPyAyIDogMzsKCQll
dmVudC5uYW1lc3BhY2UgPSBuYW1lc3BhY2VzLmpvaW4oIi4iKTsKCQlldmVudC5uYW1lc3BhY2Vf
cmUgPSBldmVudC5uYW1lc3BhY2UgPwoJCQluZXcgUmVnRXhwKCAiKF58XFwuKSIgKyBuYW1lc3Bh
Y2VzLmpvaW4oIlxcLig/Oi4qXFwufCkiKSArICIoXFwufCQpIiApIDoKCQkJbnVsbDsKCgkJLy8g
Q2xlYW4gdXAgdGhlIGV2ZW50IGluIGNhc2UgaXQgaXMgYmVpbmcgcmV1c2VkCgkJZXZlbnQucmVz
dWx0ID0gdW5kZWZpbmVkOwoJCWlmICggIWV2ZW50LnRhcmdldCApIHsKCQkJZXZlbnQudGFyZ2V0
ID0gZWxlbTsKCQl9CgoJCS8vIENsb25lIGFueSBpbmNvbWluZyBkYXRhIGFuZCBwcmVwZW5kIHRo
ZSBldmVudCwgY3JlYXRpbmcgdGhlIGhhbmRsZXIgYXJnIGxpc3QKCQlkYXRhID0gZGF0YSA9PSBu
dWxsID8KCQkJWyBldmVudCBdIDoKCQkJalF1ZXJ5Lm1ha2VBcnJheSggZGF0YSwgWyBldmVudCBd
ICk7CgoJCS8vIEFsbG93IHNwZWNpYWwgZXZlbnRzIHRvIGRyYXcgb3V0c2lkZSB0aGUgbGluZXMK
CQlzcGVjaWFsID0galF1ZXJ5LmV2ZW50LnNwZWNpYWxbIHR5cGUgXSB8fCB7fTsKCQlpZiAoICFv
bmx5SGFuZGxlcnMgJiYgc3BlY2lhbC50cmlnZ2VyICYmIHNwZWNpYWwudHJpZ2dlci5hcHBseSgg
ZWxlbSwgZGF0YSApID09PSBmYWxzZSApIHsKCQkJcmV0dXJuOwoJCX0KCgkJLy8gRGV0ZXJtaW5l
IGV2ZW50IHByb3BhZ2F0aW9uIHBhdGggaW4gYWR2YW5jZSwgcGVyIFczQyBldmVudHMgc3BlYyAo
Izk5NTEpCgkJLy8gQnViYmxlIHVwIHRvIGRvY3VtZW50LCB0aGVuIHRvIHdpbmRvdzsgd2F0Y2gg
Zm9yIGEgZ2xvYmFsIG93bmVyRG9jdW1lbnQgdmFyICgjOTcyNCkKCQlpZiAoICFvbmx5SGFuZGxl
cnMgJiYgIXNwZWNpYWwubm9CdWJibGUgJiYgIWpRdWVyeS5pc1dpbmRvdyggZWxlbSApICkgewoK
CQkJYnViYmxlVHlwZSA9IHNwZWNpYWwuZGVsZWdhdGVUeXBlIHx8IHR5cGU7CgkJCWlmICggIXJm
b2N1c01vcnBoLnRlc3QoIGJ1YmJsZVR5cGUgKyB0eXBlICkgKSB7CgkJCQljdXIgPSBjdXIucGFy
ZW50Tm9kZTsKCQkJfQoJCQlmb3IgKCA7IGN1cjsgY3VyID0gY3VyLnBhcmVudE5vZGUgKSB7CgkJ
CQlldmVudFBhdGgucHVzaCggY3VyICk7CgkJCQl0bXAgPSBjdXI7CgkJCX0KCgkJCS8vIE9ubHkg
YWRkIHdpbmRvdyBpZiB3ZSBnb3QgdG8gZG9jdW1lbnQgKGUuZy4sIG5vdCBwbGFpbiBvYmogb3Ig
ZGV0YWNoZWQgRE9NKQoJCQlpZiAoIHRtcCA9PT0gKGVsZW0ub3duZXJEb2N1bWVudCB8fCBkb2N1
bWVudCkgKSB7CgkJCQlldmVudFBhdGgucHVzaCggdG1wLmRlZmF1bHRWaWV3IHx8IHRtcC5wYXJl
bnRXaW5kb3cgfHwgd2luZG93ICk7CgkJCX0KCQl9CgoJCS8vIEZpcmUgaGFuZGxlcnMgb24gdGhl
IGV2ZW50IHBhdGgKCQlpID0gMDsKCQl3aGlsZSAoIChjdXIgPSBldmVudFBhdGhbaSsrXSkgJiYg
IWV2ZW50LmlzUHJvcGFnYXRpb25TdG9wcGVkKCkgKSB7CgoJCQlldmVudC50eXBlID0gaSA+IDEg
PwoJCQkJYnViYmxlVHlwZSA6CgkJCQlzcGVjaWFsLmJpbmRUeXBlIHx8IHR5cGU7CgoJCQkvLyBq
UXVlcnkgaGFuZGxlcgoJCQloYW5kbGUgPSAoIGpRdWVyeS5fZGF0YSggY3VyLCAiZXZlbnRzIiAp
IHx8IHt9IClbIGV2ZW50LnR5cGUgXSAmJiBqUXVlcnkuX2RhdGEoIGN1ciwgImhhbmRsZSIgKTsK
CQkJaWYgKCBoYW5kbGUgKSB7CgkJCQloYW5kbGUuYXBwbHkoIGN1ciwgZGF0YSApOwoJCQl9CgoJ
CQkvLyBOYXRpdmUgaGFuZGxlcgoJCQloYW5kbGUgPSBvbnR5cGUgJiYgY3VyWyBvbnR5cGUgXTsK
CQkJaWYgKCBoYW5kbGUgJiYgaGFuZGxlLmFwcGx5ICYmIGpRdWVyeS5hY2NlcHREYXRhKCBjdXIg
KSApIHsKCQkJCWV2ZW50LnJlc3VsdCA9IGhhbmRsZS5hcHBseSggY3VyLCBkYXRhICk7CgkJCQlp
ZiAoIGV2ZW50LnJlc3VsdCA9PT0gZmFsc2UgKSB7CgkJCQkJZXZlbnQucHJldmVudERlZmF1bHQo
KTsKCQkJCX0KCQkJfQoJCX0KCQlldmVudC50eXBlID0gdHlwZTsKCgkJLy8gSWYgbm9ib2R5IHBy
ZXZlbnRlZCB0aGUgZGVmYXVsdCBhY3Rpb24sIGRvIGl0IG5vdwoJCWlmICggIW9ubHlIYW5kbGVy
cyAmJiAhZXZlbnQuaXNEZWZhdWx0UHJldmVudGVkKCkgKSB7CgoJCQlpZiAoICghc3BlY2lhbC5f
ZGVmYXVsdCB8fCBzcGVjaWFsLl9kZWZhdWx0LmFwcGx5KCBldmVudFBhdGgucG9wKCksIGRhdGEg
KSA9PT0gZmFsc2UpICYmCgkJCQlqUXVlcnkuYWNjZXB0RGF0YSggZWxlbSApICkgewoKCQkJCS8v
IENhbGwgYSBuYXRpdmUgRE9NIG1ldGhvZCBvbiB0aGUgdGFyZ2V0IHdpdGggdGhlIHNhbWUgbmFt
ZSBuYW1lIGFzIHRoZSBldmVudC4KCQkJCS8vIENhbid0IHVzZSBhbiAuaXNGdW5jdGlvbigpIGNo
ZWNrIGhlcmUgYmVjYXVzZSBJRTYvNyBmYWlscyB0aGF0IHRlc3QuCgkJCQkvLyBEb24ndCBkbyBk
ZWZhdWx0IGFjdGlvbnMgb24gd2luZG93LCB0aGF0J3Mgd2hlcmUgZ2xvYmFsIHZhcmlhYmxlcyBi
ZSAoIzYxNzApCgkJCQlpZiAoIG9udHlwZSAmJiBlbGVtWyB0eXBlIF0gJiYgIWpRdWVyeS5pc1dp
bmRvdyggZWxlbSApICkgewoKCQkJCQkvLyBEb24ndCByZS10cmlnZ2VyIGFuIG9uRk9PIGV2ZW50
IHdoZW4gd2UgY2FsbCBpdHMgRk9PKCkgbWV0aG9kCgkJCQkJdG1wID0gZWxlbVsgb250eXBlIF07
CgoJCQkJCWlmICggdG1wICkgewoJCQkJCQllbGVtWyBvbnR5cGUgXSA9IG51bGw7CgkJCQkJfQoK
CQkJCQkvLyBQcmV2ZW50IHJlLXRyaWdnZXJpbmcgb2YgdGhlIHNhbWUgZXZlbnQsIHNpbmNlIHdl
IGFscmVhZHkgYnViYmxlZCBpdCBhYm92ZQoJCQkJCWpRdWVyeS5ldmVudC50cmlnZ2VyZWQgPSB0
eXBlOwoJCQkJCXRyeSB7CgkJCQkJCWVsZW1bIHR5cGUgXSgpOwoJCQkJCX0gY2F0Y2ggKCBlICkg
ewoJCQkJCQkvLyBJRTw5IGRpZXMgb24gZm9jdXMvYmx1ciB0byBoaWRkZW4gZWxlbWVudCAoIzE0
ODYsIzEyNTE4KQoJCQkJCQkvLyBvbmx5IHJlcHJvZHVjaWJsZSBvbiB3aW5YUCBJRTggbmF0aXZl
LCBub3QgSUU5IGluIElFOCBtb2RlCgkJCQkJfQoJCQkJCWpRdWVyeS5ldmVudC50cmlnZ2VyZWQg
PSB1bmRlZmluZWQ7CgoJCQkJCWlmICggdG1wICkgewoJCQkJCQllbGVtWyBvbnR5cGUgXSA9IHRt
cDsKCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgoJCXJldHVybiBldmVudC5yZXN1bHQ7Cgl9LAoKCWRp
c3BhdGNoOiBmdW5jdGlvbiggZXZlbnQgKSB7CgoJCS8vIE1ha2UgYSB3cml0YWJsZSBqUXVlcnku
RXZlbnQgZnJvbSB0aGUgbmF0aXZlIGV2ZW50IG9iamVjdAoJCWV2ZW50ID0galF1ZXJ5LmV2ZW50
LmZpeCggZXZlbnQgKTsKCgkJdmFyIGksIHJldCwgaGFuZGxlT2JqLCBtYXRjaGVkLCBqLAoJCQlo
YW5kbGVyUXVldWUgPSBbXSwKCQkJYXJncyA9IHNsaWNlLmNhbGwoIGFyZ3VtZW50cyApLAoJCQlo
YW5kbGVycyA9ICggalF1ZXJ5Ll9kYXRhKCB0aGlzLCAiZXZlbnRzIiApIHx8IHt9IClbIGV2ZW50
LnR5cGUgXSB8fCBbXSwKCQkJc3BlY2lhbCA9IGpRdWVyeS5ldmVudC5zcGVjaWFsWyBldmVudC50
eXBlIF0gfHwge307CgoJCS8vIFVzZSB0aGUgZml4LWVkIGpRdWVyeS5FdmVudCByYXRoZXIgdGhh
biB0aGUgKHJlYWQtb25seSkgbmF0aXZlIGV2ZW50CgkJYXJnc1swXSA9IGV2ZW50OwoJCWV2ZW50
LmRlbGVnYXRlVGFyZ2V0ID0gdGhpczsKCgkJLy8gQ2FsbCB0aGUgcHJlRGlzcGF0Y2ggaG9vayBm
b3IgdGhlIG1hcHBlZCB0eXBlLCBhbmQgbGV0IGl0IGJhaWwgaWYgZGVzaXJlZAoJCWlmICggc3Bl
Y2lhbC5wcmVEaXNwYXRjaCAmJiBzcGVjaWFsLnByZURpc3BhdGNoLmNhbGwoIHRoaXMsIGV2ZW50
ICkgPT09IGZhbHNlICkgewoJCQlyZXR1cm47CgkJfQoKCQkvLyBEZXRlcm1pbmUgaGFuZGxlcnMK
CQloYW5kbGVyUXVldWUgPSBqUXVlcnkuZXZlbnQuaGFuZGxlcnMuY2FsbCggdGhpcywgZXZlbnQs
IGhhbmRsZXJzICk7CgoJCS8vIFJ1biBkZWxlZ2F0ZXMgZmlyc3Q7IHRoZXkgbWF5IHdhbnQgdG8g
c3RvcCBwcm9wYWdhdGlvbiBiZW5lYXRoIHVzCgkJaSA9IDA7CgkJd2hpbGUgKCAobWF0Y2hlZCA9
IGhhbmRsZXJRdWV1ZVsgaSsrIF0pICYmICFldmVudC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpICkg
ewoJCQlldmVudC5jdXJyZW50VGFyZ2V0ID0gbWF0Y2hlZC5lbGVtOwoKCQkJaiA9IDA7CgkJCXdo
aWxlICggKGhhbmRsZU9iaiA9IG1hdGNoZWQuaGFuZGxlcnNbIGorKyBdKSAmJiAhZXZlbnQuaXNJ
bW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQoKSApIHsKCgkJCQkvLyBUcmlnZ2VyZWQgZXZlbnQg
bXVzdCBlaXRoZXIgMSkgaGF2ZSBubyBuYW1lc3BhY2UsIG9yCgkJCQkvLyAyKSBoYXZlIG5hbWVz
cGFjZShzKSBhIHN1YnNldCBvciBlcXVhbCB0byB0aG9zZSBpbiB0aGUgYm91bmQgZXZlbnQgKGJv
dGggY2FuIGhhdmUgbm8gbmFtZXNwYWNlKS4KCQkJCWlmICggIWV2ZW50Lm5hbWVzcGFjZV9yZSB8
fCBldmVudC5uYW1lc3BhY2VfcmUudGVzdCggaGFuZGxlT2JqLm5hbWVzcGFjZSApICkgewoKCQkJ
CQlldmVudC5oYW5kbGVPYmogPSBoYW5kbGVPYmo7CgkJCQkJZXZlbnQuZGF0YSA9IGhhbmRsZU9i
ai5kYXRhOwoKCQkJCQlyZXQgPSAoIChqUXVlcnkuZXZlbnQuc3BlY2lhbFsgaGFuZGxlT2JqLm9y
aWdUeXBlIF0gfHwge30pLmhhbmRsZSB8fCBoYW5kbGVPYmouaGFuZGxlciApCgkJCQkJCQkuYXBw
bHkoIG1hdGNoZWQuZWxlbSwgYXJncyApOwoKCQkJCQlpZiAoIHJldCAhPT0gdW5kZWZpbmVkICkg
ewoJCQkJCQlpZiAoIChldmVudC5yZXN1bHQgPSByZXQpID09PSBmYWxzZSApIHsKCQkJCQkJCWV2
ZW50LnByZXZlbnREZWZhdWx0KCk7CgkJCQkJCQlldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKCQkJ
CQkJfQoJCQkJCX0KCQkJCX0KCQkJfQoJCX0KCgkJLy8gQ2FsbCB0aGUgcG9zdERpc3BhdGNoIGhv
b2sgZm9yIHRoZSBtYXBwZWQgdHlwZQoJCWlmICggc3BlY2lhbC5wb3N0RGlzcGF0Y2ggKSB7CgkJ
CXNwZWNpYWwucG9zdERpc3BhdGNoLmNhbGwoIHRoaXMsIGV2ZW50ICk7CgkJfQoKCQlyZXR1cm4g
ZXZlbnQucmVzdWx0OwoJfSwKCgloYW5kbGVyczogZnVuY3Rpb24oIGV2ZW50LCBoYW5kbGVycyAp
IHsKCQl2YXIgc2VsLCBoYW5kbGVPYmosIG1hdGNoZXMsIGksCgkJCWhhbmRsZXJRdWV1ZSA9IFtd
LAoJCQlkZWxlZ2F0ZUNvdW50ID0gaGFuZGxlcnMuZGVsZWdhdGVDb3VudCwKCQkJY3VyID0gZXZl
bnQudGFyZ2V0OwoKCQkvLyBGaW5kIGRlbGVnYXRlIGhhbmRsZXJzCgkJLy8gQmxhY2staG9sZSBT
VkcgPHVzZT4gaW5zdGFuY2UgdHJlZXMgKCMxMzE4MCkKCQkvLyBBdm9pZCBub24tbGVmdC1jbGlj
ayBidWJibGluZyBpbiBGaXJlZm94ICgjMzg2MSkKCQlpZiAoIGRlbGVnYXRlQ291bnQgJiYgY3Vy
Lm5vZGVUeXBlICYmICghZXZlbnQuYnV0dG9uIHx8IGV2ZW50LnR5cGUgIT09ICJjbGljayIpICkg
ewoKCQkJLyoganNoaW50IGVxZXFlcTogZmFsc2UgKi8KCQkJZm9yICggOyBjdXIgIT0gdGhpczsg
Y3VyID0gY3VyLnBhcmVudE5vZGUgfHwgdGhpcyApIHsKCQkJCS8qIGpzaGludCBlcWVxZXE6IHRy
dWUgKi8KCgkJCQkvLyBEb24ndCBjaGVjayBub24tZWxlbWVudHMgKCMxMzIwOCkKCQkJCS8vIERv
bid0IHByb2Nlc3MgY2xpY2tzIG9uIGRpc2FibGVkIGVsZW1lbnRzICgjNjkxMSwgIzgxNjUsICMx
MTM4MiwgIzExNzY0KQoJCQkJaWYgKCBjdXIubm9kZVR5cGUgPT09IDEgJiYgKGN1ci5kaXNhYmxl
ZCAhPT0gdHJ1ZSB8fCBldmVudC50eXBlICE9PSAiY2xpY2siKSApIHsKCQkJCQltYXRjaGVzID0g
W107CgkJCQkJZm9yICggaSA9IDA7IGkgPCBkZWxlZ2F0ZUNvdW50OyBpKysgKSB7CgkJCQkJCWhh
bmRsZU9iaiA9IGhhbmRsZXJzWyBpIF07CgoJCQkJCQkvLyBEb24ndCBjb25mbGljdCB3aXRoIE9i
amVjdC5wcm90b3R5cGUgcHJvcGVydGllcyAoIzEzMjAzKQoJCQkJCQlzZWwgPSBoYW5kbGVPYmou
c2VsZWN0b3IgKyAiICI7CgoJCQkJCQlpZiAoIG1hdGNoZXNbIHNlbCBdID09PSB1bmRlZmluZWQg
KSB7CgkJCQkJCQltYXRjaGVzWyBzZWwgXSA9IGhhbmRsZU9iai5uZWVkc0NvbnRleHQgPwoJCQkJ
CQkJCWpRdWVyeSggc2VsLCB0aGlzICkuaW5kZXgoIGN1ciApID49IDAgOgoJCQkJCQkJCWpRdWVy
eS5maW5kKCBzZWwsIHRoaXMsIG51bGwsIFsgY3VyIF0gKS5sZW5ndGg7CgkJCQkJCX0KCQkJCQkJ
aWYgKCBtYXRjaGVzWyBzZWwgXSApIHsKCQkJCQkJCW1hdGNoZXMucHVzaCggaGFuZGxlT2JqICk7
CgkJCQkJCX0KCQkJCQl9CgkJCQkJaWYgKCBtYXRjaGVzLmxlbmd0aCApIHsKCQkJCQkJaGFuZGxl
clF1ZXVlLnB1c2goeyBlbGVtOiBjdXIsIGhhbmRsZXJzOiBtYXRjaGVzIH0pOwoJCQkJCX0KCQkJ
CX0KCQkJfQoJCX0KCgkJLy8gQWRkIHRoZSByZW1haW5pbmcgKGRpcmVjdGx5LWJvdW5kKSBoYW5k
bGVycwoJCWlmICggZGVsZWdhdGVDb3VudCA8IGhhbmRsZXJzLmxlbmd0aCApIHsKCQkJaGFuZGxl
clF1ZXVlLnB1c2goeyBlbGVtOiB0aGlzLCBoYW5kbGVyczogaGFuZGxlcnMuc2xpY2UoIGRlbGVn
YXRlQ291bnQgKSB9KTsKCQl9CgoJCXJldHVybiBoYW5kbGVyUXVldWU7Cgl9LAoKCWZpeDogZnVu
Y3Rpb24oIGV2ZW50ICkgewoJCWlmICggZXZlbnRbIGpRdWVyeS5leHBhbmRvIF0gKSB7CgkJCXJl
dHVybiBldmVudDsKCQl9CgoJCS8vIENyZWF0ZSBhIHdyaXRhYmxlIGNvcHkgb2YgdGhlIGV2ZW50
IG9iamVjdCBhbmQgbm9ybWFsaXplIHNvbWUgcHJvcGVydGllcwoJCXZhciBpLCBwcm9wLCBjb3B5
LAoJCQl0eXBlID0gZXZlbnQudHlwZSwKCQkJb3JpZ2luYWxFdmVudCA9IGV2ZW50LAoJCQlmaXhI
b29rID0gdGhpcy5maXhIb29rc1sgdHlwZSBdOwoKCQlpZiAoICFmaXhIb29rICkgewoJCQl0aGlz
LmZpeEhvb2tzWyB0eXBlIF0gPSBmaXhIb29rID0KCQkJCXJtb3VzZUV2ZW50LnRlc3QoIHR5cGUg
KSA/IHRoaXMubW91c2VIb29rcyA6CgkJCQlya2V5RXZlbnQudGVzdCggdHlwZSApID8gdGhpcy5r
ZXlIb29rcyA6CgkJCQl7fTsKCQl9CgkJY29weSA9IGZpeEhvb2sucHJvcHMgPyB0aGlzLnByb3Bz
LmNvbmNhdCggZml4SG9vay5wcm9wcyApIDogdGhpcy5wcm9wczsKCgkJZXZlbnQgPSBuZXcgalF1
ZXJ5LkV2ZW50KCBvcmlnaW5hbEV2ZW50ICk7CgoJCWkgPSBjb3B5Lmxlbmd0aDsKCQl3aGlsZSAo
IGktLSApIHsKCQkJcHJvcCA9IGNvcHlbIGkgXTsKCQkJZXZlbnRbIHByb3AgXSA9IG9yaWdpbmFs
RXZlbnRbIHByb3AgXTsKCQl9CgoJCS8vIFN1cHBvcnQ6IElFPDkKCQkvLyBGaXggdGFyZ2V0IHBy
b3BlcnR5ICgjMTkyNSkKCQlpZiAoICFldmVudC50YXJnZXQgKSB7CgkJCWV2ZW50LnRhcmdldCA9
IG9yaWdpbmFsRXZlbnQuc3JjRWxlbWVudCB8fCBkb2N1bWVudDsKCQl9CgoJCS8vIFN1cHBvcnQ6
IENocm9tZSAyMyssIFNhZmFyaT8KCQkvLyBUYXJnZXQgc2hvdWxkIG5vdCBiZSBhIHRleHQgbm9k
ZSAoIzUwNCwgIzEzMTQzKQoJCWlmICggZXZlbnQudGFyZ2V0Lm5vZGVUeXBlID09PSAzICkgewoJ
CQlldmVudC50YXJnZXQgPSBldmVudC50YXJnZXQucGFyZW50Tm9kZTsKCQl9CgoJCS8vIFN1cHBv
cnQ6IElFPDkKCQkvLyBGb3IgbW91c2Uva2V5IGV2ZW50cywgbWV0YUtleT09ZmFsc2UgaWYgaXQn
cyB1bmRlZmluZWQgKCMzMzY4LCAjMTEzMjgpCgkJZXZlbnQubWV0YUtleSA9ICEhZXZlbnQubWV0
YUtleTsKCgkJcmV0dXJuIGZpeEhvb2suZmlsdGVyID8gZml4SG9vay5maWx0ZXIoIGV2ZW50LCBv
cmlnaW5hbEV2ZW50ICkgOiBldmVudDsKCX0sCgoJLy8gSW5jbHVkZXMgc29tZSBldmVudCBwcm9w
cyBzaGFyZWQgYnkgS2V5RXZlbnQgYW5kIE1vdXNlRXZlbnQKCXByb3BzOiAiYWx0S2V5IGJ1YmJs
ZXMgY2FuY2VsYWJsZSBjdHJsS2V5IGN1cnJlbnRUYXJnZXQgZXZlbnRQaGFzZSBtZXRhS2V5IHJl
bGF0ZWRUYXJnZXQgc2hpZnRLZXkgdGFyZ2V0IHRpbWVTdGFtcCB2aWV3IHdoaWNoIi5zcGxpdCgi
ICIpLAoKCWZpeEhvb2tzOiB7fSwKCglrZXlIb29rczogewoJCXByb3BzOiAiY2hhciBjaGFyQ29k
ZSBrZXkga2V5Q29kZSIuc3BsaXQoIiAiKSwKCQlmaWx0ZXI6IGZ1bmN0aW9uKCBldmVudCwgb3Jp
Z2luYWwgKSB7CgoJCQkvLyBBZGQgd2hpY2ggZm9yIGtleSBldmVudHMKCQkJaWYgKCBldmVudC53
aGljaCA9PSBudWxsICkgewoJCQkJZXZlbnQud2hpY2ggPSBvcmlnaW5hbC5jaGFyQ29kZSAhPSBu
dWxsID8gb3JpZ2luYWwuY2hhckNvZGUgOiBvcmlnaW5hbC5rZXlDb2RlOwoJCQl9CgoJCQlyZXR1
cm4gZXZlbnQ7CgkJfQoJfSwKCgltb3VzZUhvb2tzOiB7CgkJcHJvcHM6ICJidXR0b24gYnV0dG9u
cyBjbGllbnRYIGNsaWVudFkgZnJvbUVsZW1lbnQgb2Zmc2V0WCBvZmZzZXRZIHBhZ2VYIHBhZ2VZ
IHNjcmVlblggc2NyZWVuWSB0b0VsZW1lbnQiLnNwbGl0KCIgIiksCgkJZmlsdGVyOiBmdW5jdGlv
biggZXZlbnQsIG9yaWdpbmFsICkgewoJCQl2YXIgYm9keSwgZXZlbnREb2MsIGRvYywKCQkJCWJ1
dHRvbiA9IG9yaWdpbmFsLmJ1dHRvbiwKCQkJCWZyb21FbGVtZW50ID0gb3JpZ2luYWwuZnJvbUVs
ZW1lbnQ7CgoJCQkvLyBDYWxjdWxhdGUgcGFnZVgvWSBpZiBtaXNzaW5nIGFuZCBjbGllbnRYL1kg
YXZhaWxhYmxlCgkJCWlmICggZXZlbnQucGFnZVggPT0gbnVsbCAmJiBvcmlnaW5hbC5jbGllbnRY
ICE9IG51bGwgKSB7CgkJCQlldmVudERvYyA9IGV2ZW50LnRhcmdldC5vd25lckRvY3VtZW50IHx8
IGRvY3VtZW50OwoJCQkJZG9jID0gZXZlbnREb2MuZG9jdW1lbnRFbGVtZW50OwoJCQkJYm9keSA9
IGV2ZW50RG9jLmJvZHk7CgoJCQkJZXZlbnQucGFnZVggPSBvcmlnaW5hbC5jbGllbnRYICsgKCBk
b2MgJiYgZG9jLnNjcm9sbExlZnQgfHwgYm9keSAmJiBib2R5LnNjcm9sbExlZnQgfHwgMCApIC0g
KCBkb2MgJiYgZG9jLmNsaWVudExlZnQgfHwgYm9keSAmJiBib2R5LmNsaWVudExlZnQgfHwgMCAp
OwoJCQkJZXZlbnQucGFnZVkgPSBvcmlnaW5hbC5jbGllbnRZICsgKCBkb2MgJiYgZG9jLnNjcm9s
bFRvcCAgfHwgYm9keSAmJiBib2R5LnNjcm9sbFRvcCAgfHwgMCApIC0gKCBkb2MgJiYgZG9jLmNs
aWVudFRvcCAgfHwgYm9keSAmJiBib2R5LmNsaWVudFRvcCAgfHwgMCApOwoJCQl9CgoJCQkvLyBB
ZGQgcmVsYXRlZFRhcmdldCwgaWYgbmVjZXNzYXJ5CgkJCWlmICggIWV2ZW50LnJlbGF0ZWRUYXJn
ZXQgJiYgZnJvbUVsZW1lbnQgKSB7CgkJCQlldmVudC5yZWxhdGVkVGFyZ2V0ID0gZnJvbUVsZW1l
bnQgPT09IGV2ZW50LnRhcmdldCA/IG9yaWdpbmFsLnRvRWxlbWVudCA6IGZyb21FbGVtZW50OwoJ
CQl9CgoJCQkvLyBBZGQgd2hpY2ggZm9yIGNsaWNrOiAxID09PSBsZWZ0OyAyID09PSBtaWRkbGU7
IDMgPT09IHJpZ2h0CgkJCS8vIE5vdGU6IGJ1dHRvbiBpcyBub3Qgbm9ybWFsaXplZCwgc28gZG9u
J3QgdXNlIGl0CgkJCWlmICggIWV2ZW50LndoaWNoICYmIGJ1dHRvbiAhPT0gdW5kZWZpbmVkICkg
ewoJCQkJZXZlbnQud2hpY2ggPSAoIGJ1dHRvbiAmIDEgPyAxIDogKCBidXR0b24gJiAyID8gMyA6
ICggYnV0dG9uICYgNCA/IDIgOiAwICkgKSApOwoJCQl9CgoJCQlyZXR1cm4gZXZlbnQ7CgkJfQoJ
fSwKCglzcGVjaWFsOiB7CgkJbG9hZDogewoJCQkvLyBQcmV2ZW50IHRyaWdnZXJlZCBpbWFnZS5s
b2FkIGV2ZW50cyBmcm9tIGJ1YmJsaW5nIHRvIHdpbmRvdy5sb2FkCgkJCW5vQnViYmxlOiB0cnVl
CgkJfSwKCQlmb2N1czogewoJCQkvLyBGaXJlIG5hdGl2ZSBldmVudCBpZiBwb3NzaWJsZSBzbyBi
bHVyL2ZvY3VzIHNlcXVlbmNlIGlzIGNvcnJlY3QKCQkJdHJpZ2dlcjogZnVuY3Rpb24oKSB7CgkJ
CQlpZiAoIHRoaXMgIT09IHNhZmVBY3RpdmVFbGVtZW50KCkgJiYgdGhpcy5mb2N1cyApIHsKCQkJ
CQl0cnkgewoJCQkJCQl0aGlzLmZvY3VzKCk7CgkJCQkJCXJldHVybiBmYWxzZTsKCQkJCQl9IGNh
dGNoICggZSApIHsKCQkJCQkJLy8gU3VwcG9ydDogSUU8OQoJCQkJCQkvLyBJZiB3ZSBlcnJvciBv
biBmb2N1cyB0byBoaWRkZW4gZWxlbWVudCAoIzE0ODYsICMxMjUxOCksCgkJCQkJCS8vIGxldCAu
dHJpZ2dlcigpIHJ1biB0aGUgaGFuZGxlcnMKCQkJCQl9CgkJCQl9CgkJCX0sCgkJCWRlbGVnYXRl
VHlwZTogImZvY3VzaW4iCgkJfSwKCQlibHVyOiB7CgkJCXRyaWdnZXI6IGZ1bmN0aW9uKCkgewoJ
CQkJaWYgKCB0aGlzID09PSBzYWZlQWN0aXZlRWxlbWVudCgpICYmIHRoaXMuYmx1ciApIHsKCQkJ
CQl0aGlzLmJsdXIoKTsKCQkJCQlyZXR1cm4gZmFsc2U7CgkJCQl9CgkJCX0sCgkJCWRlbGVnYXRl
VHlwZTogImZvY3Vzb3V0IgoJCX0sCgkJY2xpY2s6IHsKCQkJLy8gRm9yIGNoZWNrYm94LCBmaXJl
IG5hdGl2ZSBldmVudCBzbyBjaGVja2VkIHN0YXRlIHdpbGwgYmUgcmlnaHQKCQkJdHJpZ2dlcjog
ZnVuY3Rpb24oKSB7CgkJCQlpZiAoIGpRdWVyeS5ub2RlTmFtZSggdGhpcywgImlucHV0IiApICYm
IHRoaXMudHlwZSA9PT0gImNoZWNrYm94IiAmJiB0aGlzLmNsaWNrICkgewoJCQkJCXRoaXMuY2xp
Y2soKTsKCQkJCQlyZXR1cm4gZmFsc2U7CgkJCQl9CgkJCX0sCgoJCQkvLyBGb3IgY3Jvc3MtYnJv
d3NlciBjb25zaXN0ZW5jeSwgZG9uJ3QgZmlyZSBuYXRpdmUgLmNsaWNrKCkgb24gbGlua3MKCQkJ
X2RlZmF1bHQ6IGZ1bmN0aW9uKCBldmVudCApIHsKCQkJCXJldHVybiBqUXVlcnkubm9kZU5hbWUo
IGV2ZW50LnRhcmdldCwgImEiICk7CgkJCX0KCQl9LAoKCQliZWZvcmV1bmxvYWQ6IHsKCQkJcG9z
dERpc3BhdGNoOiBmdW5jdGlvbiggZXZlbnQgKSB7CgoJCQkJLy8gU3VwcG9ydDogRmlyZWZveCAy
MCsKCQkJCS8vIEZpcmVmb3ggZG9lc24ndCBhbGVydCBpZiB0aGUgcmV0dXJuVmFsdWUgZmllbGQg
aXMgbm90IHNldC4KCQkJCWlmICggZXZlbnQucmVzdWx0ICE9PSB1bmRlZmluZWQgJiYgZXZlbnQu
b3JpZ2luYWxFdmVudCApIHsKCQkJCQlldmVudC5vcmlnaW5hbEV2ZW50LnJldHVyblZhbHVlID0g
ZXZlbnQucmVzdWx0OwoJCQkJfQoJCQl9CgkJfQoJfSwKCglzaW11bGF0ZTogZnVuY3Rpb24oIHR5
cGUsIGVsZW0sIGV2ZW50LCBidWJibGUgKSB7CgkJLy8gUGlnZ3liYWNrIG9uIGEgZG9ub3IgZXZl
bnQgdG8gc2ltdWxhdGUgYSBkaWZmZXJlbnQgb25lLgoJCS8vIEZha2Ugb3JpZ2luYWxFdmVudCB0
byBhdm9pZCBkb25vcidzIHN0b3BQcm9wYWdhdGlvbiwgYnV0IGlmIHRoZQoJCS8vIHNpbXVsYXRl
ZCBldmVudCBwcmV2ZW50cyBkZWZhdWx0IHRoZW4gd2UgZG8gdGhlIHNhbWUgb24gdGhlIGRvbm9y
LgoJCXZhciBlID0galF1ZXJ5LmV4dGVuZCgKCQkJbmV3IGpRdWVyeS5FdmVudCgpLAoJCQlldmVu
dCwKCQkJewoJCQkJdHlwZTogdHlwZSwKCQkJCWlzU2ltdWxhdGVkOiB0cnVlLAoJCQkJb3JpZ2lu
YWxFdmVudDoge30KCQkJfQoJCSk7CgkJaWYgKCBidWJibGUgKSB7CgkJCWpRdWVyeS5ldmVudC50
cmlnZ2VyKCBlLCBudWxsLCBlbGVtICk7CgkJfSBlbHNlIHsKCQkJalF1ZXJ5LmV2ZW50LmRpc3Bh
dGNoLmNhbGwoIGVsZW0sIGUgKTsKCQl9CgkJaWYgKCBlLmlzRGVmYXVsdFByZXZlbnRlZCgpICkg
ewoJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOwoJCX0KCX0KfTsKCmpRdWVyeS5yZW1vdmVFdmVu
dCA9IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIgPwoJZnVuY3Rpb24oIGVsZW0sIHR5cGUs
IGhhbmRsZSApIHsKCQlpZiAoIGVsZW0ucmVtb3ZlRXZlbnRMaXN0ZW5lciApIHsKCQkJZWxlbS5y
ZW1vdmVFdmVudExpc3RlbmVyKCB0eXBlLCBoYW5kbGUsIGZhbHNlICk7CgkJfQoJfSA6CglmdW5j
dGlvbiggZWxlbSwgdHlwZSwgaGFuZGxlICkgewoJCXZhciBuYW1lID0gIm9uIiArIHR5cGU7CgoJ
CWlmICggZWxlbS5kZXRhY2hFdmVudCApIHsKCgkJCS8vICM4NTQ1LCAjNzA1NCwgcHJldmVudGlu
ZyBtZW1vcnkgbGVha3MgZm9yIGN1c3RvbSBldmVudHMgaW4gSUU2LTgKCQkJLy8gZGV0YWNoRXZl
bnQgbmVlZGVkIHByb3BlcnR5IG9uIGVsZW1lbnQsIGJ5IG5hbWUgb2YgdGhhdCBldmVudCwgdG8g
cHJvcGVybHkgZXhwb3NlIGl0IHRvIEdDCgkJCWlmICggdHlwZW9mIGVsZW1bIG5hbWUgXSA9PT0g
c3RydW5kZWZpbmVkICkgewoJCQkJZWxlbVsgbmFtZSBdID0gbnVsbDsKCQkJfQoKCQkJZWxlbS5k
ZXRhY2hFdmVudCggbmFtZSwgaGFuZGxlICk7CgkJfQoJfTsKCmpRdWVyeS5FdmVudCA9IGZ1bmN0
aW9uKCBzcmMsIHByb3BzICkgewoJLy8gQWxsb3cgaW5zdGFudGlhdGlvbiB3aXRob3V0IHRoZSAn
bmV3JyBrZXl3b3JkCglpZiAoICEodGhpcyBpbnN0YW5jZW9mIGpRdWVyeS5FdmVudCkgKSB7CgkJ
cmV0dXJuIG5ldyBqUXVlcnkuRXZlbnQoIHNyYywgcHJvcHMgKTsKCX0KCgkvLyBFdmVudCBvYmpl
Y3QKCWlmICggc3JjICYmIHNyYy50eXBlICkgewoJCXRoaXMub3JpZ2luYWxFdmVudCA9IHNyYzsK
CQl0aGlzLnR5cGUgPSBzcmMudHlwZTsKCgkJLy8gRXZlbnRzIGJ1YmJsaW5nIHVwIHRoZSBkb2N1
bWVudCBtYXkgaGF2ZSBiZWVuIG1hcmtlZCBhcyBwcmV2ZW50ZWQKCQkvLyBieSBhIGhhbmRsZXIg
bG93ZXIgZG93biB0aGUgdHJlZTsgcmVmbGVjdCB0aGUgY29ycmVjdCB2YWx1ZS4KCQl0aGlzLmlz
RGVmYXVsdFByZXZlbnRlZCA9IHNyYy5kZWZhdWx0UHJldmVudGVkIHx8CgkJCQlzcmMuZGVmYXVs
dFByZXZlbnRlZCA9PT0gdW5kZWZpbmVkICYmCgkJCQkvLyBTdXBwb3J0OiBJRSA8IDksIEFuZHJv
aWQgPCA0LjAKCQkJCXNyYy5yZXR1cm5WYWx1ZSA9PT0gZmFsc2UgPwoJCQlyZXR1cm5UcnVlIDoK
CQkJcmV0dXJuRmFsc2U7CgoJLy8gRXZlbnQgdHlwZQoJfSBlbHNlIHsKCQl0aGlzLnR5cGUgPSBz
cmM7Cgl9CgoJLy8gUHV0IGV4cGxpY2l0bHkgcHJvdmlkZWQgcHJvcGVydGllcyBvbnRvIHRoZSBl
dmVudCBvYmplY3QKCWlmICggcHJvcHMgKSB7CgkJalF1ZXJ5LmV4dGVuZCggdGhpcywgcHJvcHMg
KTsKCX0KCgkvLyBDcmVhdGUgYSB0aW1lc3RhbXAgaWYgaW5jb21pbmcgZXZlbnQgZG9lc24ndCBo
YXZlIG9uZQoJdGhpcy50aW1lU3RhbXAgPSBzcmMgJiYgc3JjLnRpbWVTdGFtcCB8fCBqUXVlcnku
bm93KCk7CgoJLy8gTWFyayBpdCBhcyBmaXhlZAoJdGhpc1sgalF1ZXJ5LmV4cGFuZG8gXSA9IHRy
dWU7Cn07CgovLyBqUXVlcnkuRXZlbnQgaXMgYmFzZWQgb24gRE9NMyBFdmVudHMgYXMgc3BlY2lm
aWVkIGJ5IHRoZSBFQ01BU2NyaXB0IExhbmd1YWdlIEJpbmRpbmcKLy8gaHR0cDovL3d3dy53My5v
cmcvVFIvMjAwMy9XRC1ET00tTGV2ZWwtMy1FdmVudHMtMjAwMzAzMzEvZWNtYS1zY3JpcHQtYmlu
ZGluZy5odG1sCmpRdWVyeS5FdmVudC5wcm90b3R5cGUgPSB7Cglpc0RlZmF1bHRQcmV2ZW50ZWQ6
IHJldHVybkZhbHNlLAoJaXNQcm9wYWdhdGlvblN0b3BwZWQ6IHJldHVybkZhbHNlLAoJaXNJbW1l
ZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ6IHJldHVybkZhbHNlLAoKCXByZXZlbnREZWZhdWx0OiBm
dW5jdGlvbigpIHsKCQl2YXIgZSA9IHRoaXMub3JpZ2luYWxFdmVudDsKCgkJdGhpcy5pc0RlZmF1
bHRQcmV2ZW50ZWQgPSByZXR1cm5UcnVlOwoJCWlmICggIWUgKSB7CgkJCXJldHVybjsKCQl9CgoJ
CS8vIElmIHByZXZlbnREZWZhdWx0IGV4aXN0cywgcnVuIGl0IG9uIHRoZSBvcmlnaW5hbCBldmVu
dAoJCWlmICggZS5wcmV2ZW50RGVmYXVsdCApIHsKCQkJZS5wcmV2ZW50RGVmYXVsdCgpOwoKCQkv
LyBTdXBwb3J0OiBJRQoJCS8vIE90aGVyd2lzZSBzZXQgdGhlIHJldHVyblZhbHVlIHByb3BlcnR5
IG9mIHRoZSBvcmlnaW5hbCBldmVudCB0byBmYWxzZQoJCX0gZWxzZSB7CgkJCWUucmV0dXJuVmFs
dWUgPSBmYWxzZTsKCQl9Cgl9LAoJc3RvcFByb3BhZ2F0aW9uOiBmdW5jdGlvbigpIHsKCQl2YXIg
ZSA9IHRoaXMub3JpZ2luYWxFdmVudDsKCgkJdGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZCA9IHJl
dHVyblRydWU7CgkJaWYgKCAhZSApIHsKCQkJcmV0dXJuOwoJCX0KCQkvLyBJZiBzdG9wUHJvcGFn
YXRpb24gZXhpc3RzLCBydW4gaXQgb24gdGhlIG9yaWdpbmFsIGV2ZW50CgkJaWYgKCBlLnN0b3BQ
cm9wYWdhdGlvbiApIHsKCQkJZS5zdG9wUHJvcGFnYXRpb24oKTsKCQl9CgoJCS8vIFN1cHBvcnQ6
IElFCgkJLy8gU2V0IHRoZSBjYW5jZWxCdWJibGUgcHJvcGVydHkgb2YgdGhlIG9yaWdpbmFsIGV2
ZW50IHRvIHRydWUKCQllLmNhbmNlbEJ1YmJsZSA9IHRydWU7Cgl9LAoJc3RvcEltbWVkaWF0ZVBy
b3BhZ2F0aW9uOiBmdW5jdGlvbigpIHsKCQl2YXIgZSA9IHRoaXMub3JpZ2luYWxFdmVudDsKCgkJ
dGhpcy5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCA9IHJldHVyblRydWU7CgoJCWlmICgg
ZSAmJiBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbiApIHsKCQkJZS5zdG9wSW1tZWRpYXRlUHJv
cGFnYXRpb24oKTsKCQl9CgoJCXRoaXMuc3RvcFByb3BhZ2F0aW9uKCk7Cgl9Cn07CgovLyBDcmVh
dGUgbW91c2VlbnRlci9sZWF2ZSBldmVudHMgdXNpbmcgbW91c2VvdmVyL291dCBhbmQgZXZlbnQt
dGltZSBjaGVja3MKalF1ZXJ5LmVhY2goewoJbW91c2VlbnRlcjogIm1vdXNlb3ZlciIsCgltb3Vz
ZWxlYXZlOiAibW91c2VvdXQiLAoJcG9pbnRlcmVudGVyOiAicG9pbnRlcm92ZXIiLAoJcG9pbnRl
cmxlYXZlOiAicG9pbnRlcm91dCIKfSwgZnVuY3Rpb24oIG9yaWcsIGZpeCApIHsKCWpRdWVyeS5l
dmVudC5zcGVjaWFsWyBvcmlnIF0gPSB7CgkJZGVsZWdhdGVUeXBlOiBmaXgsCgkJYmluZFR5cGU6
IGZpeCwKCgkJaGFuZGxlOiBmdW5jdGlvbiggZXZlbnQgKSB7CgkJCXZhciByZXQsCgkJCQl0YXJn
ZXQgPSB0aGlzLAoJCQkJcmVsYXRlZCA9IGV2ZW50LnJlbGF0ZWRUYXJnZXQsCgkJCQloYW5kbGVP
YmogPSBldmVudC5oYW5kbGVPYmo7CgoJCQkvLyBGb3IgbW91c2VudGVyL2xlYXZlIGNhbGwgdGhl
IGhhbmRsZXIgaWYgcmVsYXRlZCBpcyBvdXRzaWRlIHRoZSB0YXJnZXQuCgkJCS8vIE5COiBObyBy
ZWxhdGVkVGFyZ2V0IGlmIHRoZSBtb3VzZSBsZWZ0L2VudGVyZWQgdGhlIGJyb3dzZXIgd2luZG93
CgkJCWlmICggIXJlbGF0ZWQgfHwgKHJlbGF0ZWQgIT09IHRhcmdldCAmJiAhalF1ZXJ5LmNvbnRh
aW5zKCB0YXJnZXQsIHJlbGF0ZWQgKSkgKSB7CgkJCQlldmVudC50eXBlID0gaGFuZGxlT2JqLm9y
aWdUeXBlOwoJCQkJcmV0ID0gaGFuZGxlT2JqLmhhbmRsZXIuYXBwbHkoIHRoaXMsIGFyZ3VtZW50
cyApOwoJCQkJZXZlbnQudHlwZSA9IGZpeDsKCQkJfQoJCQlyZXR1cm4gcmV0OwoJCX0KCX07Cn0p
OwoKLy8gSUUgc3VibWl0IGRlbGVnYXRpb24KaWYgKCAhc3VwcG9ydC5zdWJtaXRCdWJibGVzICkg
ewoKCWpRdWVyeS5ldmVudC5zcGVjaWFsLnN1Ym1pdCA9IHsKCQlzZXR1cDogZnVuY3Rpb24oKSB7
CgkJCS8vIE9ubHkgbmVlZCB0aGlzIGZvciBkZWxlZ2F0ZWQgZm9ybSBzdWJtaXQgZXZlbnRzCgkJ
CWlmICggalF1ZXJ5Lm5vZGVOYW1lKCB0aGlzLCAiZm9ybSIgKSApIHsKCQkJCXJldHVybiBmYWxz
ZTsKCQkJfQoKCQkJLy8gTGF6eS1hZGQgYSBzdWJtaXQgaGFuZGxlciB3aGVuIGEgZGVzY2VuZGFu
dCBmb3JtIG1heSBwb3RlbnRpYWxseSBiZSBzdWJtaXR0ZWQKCQkJalF1ZXJ5LmV2ZW50LmFkZCgg
dGhpcywgImNsaWNrLl9zdWJtaXQga2V5cHJlc3MuX3N1Ym1pdCIsIGZ1bmN0aW9uKCBlICkgewoJ
CQkJLy8gTm9kZSBuYW1lIGNoZWNrIGF2b2lkcyBhIFZNTC1yZWxhdGVkIGNyYXNoIGluIElFICgj
OTgwNykKCQkJCXZhciBlbGVtID0gZS50YXJnZXQsCgkJCQkJZm9ybSA9IGpRdWVyeS5ub2RlTmFt
ZSggZWxlbSwgImlucHV0IiApIHx8IGpRdWVyeS5ub2RlTmFtZSggZWxlbSwgImJ1dHRvbiIgKSA/
IGVsZW0uZm9ybSA6IHVuZGVmaW5lZDsKCQkJCWlmICggZm9ybSAmJiAhalF1ZXJ5Ll9kYXRhKCBm
b3JtLCAic3VibWl0QnViYmxlcyIgKSApIHsKCQkJCQlqUXVlcnkuZXZlbnQuYWRkKCBmb3JtLCAi
c3VibWl0Ll9zdWJtaXQiLCBmdW5jdGlvbiggZXZlbnQgKSB7CgkJCQkJCWV2ZW50Ll9zdWJtaXRf
YnViYmxlID0gdHJ1ZTsKCQkJCQl9KTsKCQkJCQlqUXVlcnkuX2RhdGEoIGZvcm0sICJzdWJtaXRC
dWJibGVzIiwgdHJ1ZSApOwoJCQkJfQoJCQl9KTsKCQkJLy8gcmV0dXJuIHVuZGVmaW5lZCBzaW5j
ZSB3ZSBkb24ndCBuZWVkIGFuIGV2ZW50IGxpc3RlbmVyCgkJfSwKCgkJcG9zdERpc3BhdGNoOiBm
dW5jdGlvbiggZXZlbnQgKSB7CgkJCS8vIElmIGZvcm0gd2FzIHN1Ym1pdHRlZCBieSB0aGUgdXNl
ciwgYnViYmxlIHRoZSBldmVudCB1cCB0aGUgdHJlZQoJCQlpZiAoIGV2ZW50Ll9zdWJtaXRfYnVi
YmxlICkgewoJCQkJZGVsZXRlIGV2ZW50Ll9zdWJtaXRfYnViYmxlOwoJCQkJaWYgKCB0aGlzLnBh
cmVudE5vZGUgJiYgIWV2ZW50LmlzVHJpZ2dlciApIHsKCQkJCQlqUXVlcnkuZXZlbnQuc2ltdWxh
dGUoICJzdWJtaXQiLCB0aGlzLnBhcmVudE5vZGUsIGV2ZW50LCB0cnVlICk7CgkJCQl9CgkJCX0K
CQl9LAoKCQl0ZWFyZG93bjogZnVuY3Rpb24oKSB7CgkJCS8vIE9ubHkgbmVlZCB0aGlzIGZvciBk
ZWxlZ2F0ZWQgZm9ybSBzdWJtaXQgZXZlbnRzCgkJCWlmICggalF1ZXJ5Lm5vZGVOYW1lKCB0aGlz
LCAiZm9ybSIgKSApIHsKCQkJCXJldHVybiBmYWxzZTsKCQkJfQoKCQkJLy8gUmVtb3ZlIGRlbGVn
YXRlZCBoYW5kbGVyczsgY2xlYW5EYXRhIGV2ZW50dWFsbHkgcmVhcHMgc3VibWl0IGhhbmRsZXJz
IGF0dGFjaGVkIGFib3ZlCgkJCWpRdWVyeS5ldmVudC5yZW1vdmUoIHRoaXMsICIuX3N1Ym1pdCIg
KTsKCQl9Cgl9Owp9CgovLyBJRSBjaGFuZ2UgZGVsZWdhdGlvbiBhbmQgY2hlY2tib3gvcmFkaW8g
Zml4CmlmICggIXN1cHBvcnQuY2hhbmdlQnViYmxlcyApIHsKCglqUXVlcnkuZXZlbnQuc3BlY2lh
bC5jaGFuZ2UgPSB7CgoJCXNldHVwOiBmdW5jdGlvbigpIHsKCgkJCWlmICggcmZvcm1FbGVtcy50
ZXN0KCB0aGlzLm5vZGVOYW1lICkgKSB7CgkJCQkvLyBJRSBkb2Vzbid0IGZpcmUgY2hhbmdlIG9u
IGEgY2hlY2svcmFkaW8gdW50aWwgYmx1cjsgdHJpZ2dlciBpdCBvbiBjbGljawoJCQkJLy8gYWZ0
ZXIgYSBwcm9wZXJ0eWNoYW5nZS4gRWF0IHRoZSBibHVyLWNoYW5nZSBpbiBzcGVjaWFsLmNoYW5n
ZS5oYW5kbGUuCgkJCQkvLyBUaGlzIHN0aWxsIGZpcmVzIG9uY2hhbmdlIGEgc2Vjb25kIHRpbWUg
Zm9yIGNoZWNrL3JhZGlvIGFmdGVyIGJsdXIuCgkJCQlpZiAoIHRoaXMudHlwZSA9PT0gImNoZWNr
Ym94IiB8fCB0aGlzLnR5cGUgPT09ICJyYWRpbyIgKSB7CgkJCQkJalF1ZXJ5LmV2ZW50LmFkZCgg
dGhpcywgInByb3BlcnR5Y2hhbmdlLl9jaGFuZ2UiLCBmdW5jdGlvbiggZXZlbnQgKSB7CgkJCQkJ
CWlmICggZXZlbnQub3JpZ2luYWxFdmVudC5wcm9wZXJ0eU5hbWUgPT09ICJjaGVja2VkIiApIHsK
CQkJCQkJCXRoaXMuX2p1c3RfY2hhbmdlZCA9IHRydWU7CgkJCQkJCX0KCQkJCQl9KTsKCQkJCQlq
UXVlcnkuZXZlbnQuYWRkKCB0aGlzLCAiY2xpY2suX2NoYW5nZSIsIGZ1bmN0aW9uKCBldmVudCAp
IHsKCQkJCQkJaWYgKCB0aGlzLl9qdXN0X2NoYW5nZWQgJiYgIWV2ZW50LmlzVHJpZ2dlciApIHsK
CQkJCQkJCXRoaXMuX2p1c3RfY2hhbmdlZCA9IGZhbHNlOwoJCQkJCQl9CgkJCQkJCS8vIEFsbG93
IHRyaWdnZXJlZCwgc2ltdWxhdGVkIGNoYW5nZSBldmVudHMgKCMxMTUwMCkKCQkJCQkJalF1ZXJ5
LmV2ZW50LnNpbXVsYXRlKCAiY2hhbmdlIiwgdGhpcywgZXZlbnQsIHRydWUgKTsKCQkJCQl9KTsK
CQkJCX0KCQkJCXJldHVybiBmYWxzZTsKCQkJfQoJCQkvLyBEZWxlZ2F0ZWQgZXZlbnQ7IGxhenkt
YWRkIGEgY2hhbmdlIGhhbmRsZXIgb24gZGVzY2VuZGFudCBpbnB1dHMKCQkJalF1ZXJ5LmV2ZW50
LmFkZCggdGhpcywgImJlZm9yZWFjdGl2YXRlLl9jaGFuZ2UiLCBmdW5jdGlvbiggZSApIHsKCQkJ
CXZhciBlbGVtID0gZS50YXJnZXQ7CgoJCQkJaWYgKCByZm9ybUVsZW1zLnRlc3QoIGVsZW0ubm9k
ZU5hbWUgKSAmJiAhalF1ZXJ5Ll9kYXRhKCBlbGVtLCAiY2hhbmdlQnViYmxlcyIgKSApIHsKCQkJ
CQlqUXVlcnkuZXZlbnQuYWRkKCBlbGVtLCAiY2hhbmdlLl9jaGFuZ2UiLCBmdW5jdGlvbiggZXZl
bnQgKSB7CgkJCQkJCWlmICggdGhpcy5wYXJlbnROb2RlICYmICFldmVudC5pc1NpbXVsYXRlZCAm
JiAhZXZlbnQuaXNUcmlnZ2VyICkgewoJCQkJCQkJalF1ZXJ5LmV2ZW50LnNpbXVsYXRlKCAiY2hh
bmdlIiwgdGhpcy5wYXJlbnROb2RlLCBldmVudCwgdHJ1ZSApOwoJCQkJCQl9CgkJCQkJfSk7CgkJ
CQkJalF1ZXJ5Ll9kYXRhKCBlbGVtLCAiY2hhbmdlQnViYmxlcyIsIHRydWUgKTsKCQkJCX0KCQkJ
fSk7CgkJfSwKCgkJaGFuZGxlOiBmdW5jdGlvbiggZXZlbnQgKSB7CgkJCXZhciBlbGVtID0gZXZl
bnQudGFyZ2V0OwoKCQkJLy8gU3dhbGxvdyBuYXRpdmUgY2hhbmdlIGV2ZW50cyBmcm9tIGNoZWNr
Ym94L3JhZGlvLCB3ZSBhbHJlYWR5IHRyaWdnZXJlZCB0aGVtIGFib3ZlCgkJCWlmICggdGhpcyAh
PT0gZWxlbSB8fCBldmVudC5pc1NpbXVsYXRlZCB8fCBldmVudC5pc1RyaWdnZXIgfHwgKGVsZW0u
dHlwZSAhPT0gInJhZGlvIiAmJiBlbGVtLnR5cGUgIT09ICJjaGVja2JveCIpICkgewoJCQkJcmV0
dXJuIGV2ZW50LmhhbmRsZU9iai5oYW5kbGVyLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTsKCQkJ
fQoJCX0sCgoJCXRlYXJkb3duOiBmdW5jdGlvbigpIHsKCQkJalF1ZXJ5LmV2ZW50LnJlbW92ZSgg
dGhpcywgIi5fY2hhbmdlIiApOwoKCQkJcmV0dXJuICFyZm9ybUVsZW1zLnRlc3QoIHRoaXMubm9k
ZU5hbWUgKTsKCQl9Cgl9Owp9CgovLyBDcmVhdGUgImJ1YmJsaW5nIiBmb2N1cyBhbmQgYmx1ciBl
dmVudHMKaWYgKCAhc3VwcG9ydC5mb2N1c2luQnViYmxlcyApIHsKCWpRdWVyeS5lYWNoKHsgZm9j
dXM6ICJmb2N1c2luIiwgYmx1cjogImZvY3Vzb3V0IiB9LCBmdW5jdGlvbiggb3JpZywgZml4ICkg
ewoKCQkvLyBBdHRhY2ggYSBzaW5nbGUgY2FwdHVyaW5nIGhhbmRsZXIgb24gdGhlIGRvY3VtZW50
IHdoaWxlIHNvbWVvbmUgd2FudHMgZm9jdXNpbi9mb2N1c291dAoJCXZhciBoYW5kbGVyID0gZnVu
Y3Rpb24oIGV2ZW50ICkgewoJCQkJalF1ZXJ5LmV2ZW50LnNpbXVsYXRlKCBmaXgsIGV2ZW50LnRh
cmdldCwgalF1ZXJ5LmV2ZW50LmZpeCggZXZlbnQgKSwgdHJ1ZSApOwoJCQl9OwoKCQlqUXVlcnku
ZXZlbnQuc3BlY2lhbFsgZml4IF0gPSB7CgkJCXNldHVwOiBmdW5jdGlvbigpIHsKCQkJCXZhciBk
b2MgPSB0aGlzLm93bmVyRG9jdW1lbnQgfHwgdGhpcywKCQkJCQlhdHRhY2hlcyA9IGpRdWVyeS5f
ZGF0YSggZG9jLCBmaXggKTsKCgkJCQlpZiAoICFhdHRhY2hlcyApIHsKCQkJCQlkb2MuYWRkRXZl
bnRMaXN0ZW5lciggb3JpZywgaGFuZGxlciwgdHJ1ZSApOwoJCQkJfQoJCQkJalF1ZXJ5Ll9kYXRh
KCBkb2MsIGZpeCwgKCBhdHRhY2hlcyB8fCAwICkgKyAxICk7CgkJCX0sCgkJCXRlYXJkb3duOiBm
dW5jdGlvbigpIHsKCQkJCXZhciBkb2MgPSB0aGlzLm93bmVyRG9jdW1lbnQgfHwgdGhpcywKCQkJ
CQlhdHRhY2hlcyA9IGpRdWVyeS5fZGF0YSggZG9jLCBmaXggKSAtIDE7CgoJCQkJaWYgKCAhYXR0
YWNoZXMgKSB7CgkJCQkJZG9jLnJlbW92ZUV2ZW50TGlzdGVuZXIoIG9yaWcsIGhhbmRsZXIsIHRy
dWUgKTsKCQkJCQlqUXVlcnkuX3JlbW92ZURhdGEoIGRvYywgZml4ICk7CgkJCQl9IGVsc2UgewoJ
CQkJCWpRdWVyeS5fZGF0YSggZG9jLCBmaXgsIGF0dGFjaGVzICk7CgkJCQl9CgkJCX0KCQl9OwoJ
fSk7Cn0KCmpRdWVyeS5mbi5leHRlbmQoewoKCW9uOiBmdW5jdGlvbiggdHlwZXMsIHNlbGVjdG9y
LCBkYXRhLCBmbiwgLypJTlRFUk5BTCovIG9uZSApIHsKCQl2YXIgdHlwZSwgb3JpZ0ZuOwoKCQkv
LyBUeXBlcyBjYW4gYmUgYSBtYXAgb2YgdHlwZXMvaGFuZGxlcnMKCQlpZiAoIHR5cGVvZiB0eXBl
cyA9PT0gIm9iamVjdCIgKSB7CgkJCS8vICggdHlwZXMtT2JqZWN0LCBzZWxlY3RvciwgZGF0YSAp
CgkJCWlmICggdHlwZW9mIHNlbGVjdG9yICE9PSAic3RyaW5nIiApIHsKCQkJCS8vICggdHlwZXMt
T2JqZWN0LCBkYXRhICkKCQkJCWRhdGEgPSBkYXRhIHx8IHNlbGVjdG9yOwoJCQkJc2VsZWN0b3Ig
PSB1bmRlZmluZWQ7CgkJCX0KCQkJZm9yICggdHlwZSBpbiB0eXBlcyApIHsKCQkJCXRoaXMub24o
IHR5cGUsIHNlbGVjdG9yLCBkYXRhLCB0eXBlc1sgdHlwZSBdLCBvbmUgKTsKCQkJfQoJCQlyZXR1
cm4gdGhpczsKCQl9CgoJCWlmICggZGF0YSA9PSBudWxsICYmIGZuID09IG51bGwgKSB7CgkJCS8v
ICggdHlwZXMsIGZuICkKCQkJZm4gPSBzZWxlY3RvcjsKCQkJZGF0YSA9IHNlbGVjdG9yID0gdW5k
ZWZpbmVkOwoJCX0gZWxzZSBpZiAoIGZuID09IG51bGwgKSB7CgkJCWlmICggdHlwZW9mIHNlbGVj
dG9yID09PSAic3RyaW5nIiApIHsKCQkJCS8vICggdHlwZXMsIHNlbGVjdG9yLCBmbiApCgkJCQlm
biA9IGRhdGE7CgkJCQlkYXRhID0gdW5kZWZpbmVkOwoJCQl9IGVsc2UgewoJCQkJLy8gKCB0eXBl
cywgZGF0YSwgZm4gKQoJCQkJZm4gPSBkYXRhOwoJCQkJZGF0YSA9IHNlbGVjdG9yOwoJCQkJc2Vs
ZWN0b3IgPSB1bmRlZmluZWQ7CgkJCX0KCQl9CgkJaWYgKCBmbiA9PT0gZmFsc2UgKSB7CgkJCWZu
ID0gcmV0dXJuRmFsc2U7CgkJfSBlbHNlIGlmICggIWZuICkgewoJCQlyZXR1cm4gdGhpczsKCQl9
CgoJCWlmICggb25lID09PSAxICkgewoJCQlvcmlnRm4gPSBmbjsKCQkJZm4gPSBmdW5jdGlvbigg
ZXZlbnQgKSB7CgkJCQkvLyBDYW4gdXNlIGFuIGVtcHR5IHNldCwgc2luY2UgZXZlbnQgY29udGFp
bnMgdGhlIGluZm8KCQkJCWpRdWVyeSgpLm9mZiggZXZlbnQgKTsKCQkJCXJldHVybiBvcmlnRm4u
YXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApOwoJCQl9OwoJCQkvLyBVc2Ugc2FtZSBndWlkIHNvIGNh
bGxlciBjYW4gcmVtb3ZlIHVzaW5nIG9yaWdGbgoJCQlmbi5ndWlkID0gb3JpZ0ZuLmd1aWQgfHwg
KCBvcmlnRm4uZ3VpZCA9IGpRdWVyeS5ndWlkKysgKTsKCQl9CgkJcmV0dXJuIHRoaXMuZWFjaCgg
ZnVuY3Rpb24oKSB7CgkJCWpRdWVyeS5ldmVudC5hZGQoIHRoaXMsIHR5cGVzLCBmbiwgZGF0YSwg
c2VsZWN0b3IgKTsKCQl9KTsKCX0sCglvbmU6IGZ1bmN0aW9uKCB0eXBlcywgc2VsZWN0b3IsIGRh
dGEsIGZuICkgewoJCXJldHVybiB0aGlzLm9uKCB0eXBlcywgc2VsZWN0b3IsIGRhdGEsIGZuLCAx
ICk7Cgl9LAoJb2ZmOiBmdW5jdGlvbiggdHlwZXMsIHNlbGVjdG9yLCBmbiApIHsKCQl2YXIgaGFu
ZGxlT2JqLCB0eXBlOwoJCWlmICggdHlwZXMgJiYgdHlwZXMucHJldmVudERlZmF1bHQgJiYgdHlw
ZXMuaGFuZGxlT2JqICkgewoJCQkvLyAoIGV2ZW50ICkgIGRpc3BhdGNoZWQgalF1ZXJ5LkV2ZW50
CgkJCWhhbmRsZU9iaiA9IHR5cGVzLmhhbmRsZU9iajsKCQkJalF1ZXJ5KCB0eXBlcy5kZWxlZ2F0
ZVRhcmdldCApLm9mZigKCQkJCWhhbmRsZU9iai5uYW1lc3BhY2UgPyBoYW5kbGVPYmoub3JpZ1R5
cGUgKyAiLiIgKyBoYW5kbGVPYmoubmFtZXNwYWNlIDogaGFuZGxlT2JqLm9yaWdUeXBlLAoJCQkJ
aGFuZGxlT2JqLnNlbGVjdG9yLAoJCQkJaGFuZGxlT2JqLmhhbmRsZXIKCQkJKTsKCQkJcmV0dXJu
IHRoaXM7CgkJfQoJCWlmICggdHlwZW9mIHR5cGVzID09PSAib2JqZWN0IiApIHsKCQkJLy8gKCB0
eXBlcy1vYmplY3QgWywgc2VsZWN0b3JdICkKCQkJZm9yICggdHlwZSBpbiB0eXBlcyApIHsKCQkJ
CXRoaXMub2ZmKCB0eXBlLCBzZWxlY3RvciwgdHlwZXNbIHR5cGUgXSApOwoJCQl9CgkJCXJldHVy
biB0aGlzOwoJCX0KCQlpZiAoIHNlbGVjdG9yID09PSBmYWxzZSB8fCB0eXBlb2Ygc2VsZWN0b3Ig
PT09ICJmdW5jdGlvbiIgKSB7CgkJCS8vICggdHlwZXMgWywgZm5dICkKCQkJZm4gPSBzZWxlY3Rv
cjsKCQkJc2VsZWN0b3IgPSB1bmRlZmluZWQ7CgkJfQoJCWlmICggZm4gPT09IGZhbHNlICkgewoJ
CQlmbiA9IHJldHVybkZhbHNlOwoJCX0KCQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkgewoJ
CQlqUXVlcnkuZXZlbnQucmVtb3ZlKCB0aGlzLCB0eXBlcywgZm4sIHNlbGVjdG9yICk7CgkJfSk7
Cgl9LAoKCXRyaWdnZXI6IGZ1bmN0aW9uKCB0eXBlLCBkYXRhICkgewoJCXJldHVybiB0aGlzLmVh
Y2goZnVuY3Rpb24oKSB7CgkJCWpRdWVyeS5ldmVudC50cmlnZ2VyKCB0eXBlLCBkYXRhLCB0aGlz
ICk7CgkJfSk7Cgl9LAoJdHJpZ2dlckhhbmRsZXI6IGZ1bmN0aW9uKCB0eXBlLCBkYXRhICkgewoJ
CXZhciBlbGVtID0gdGhpc1swXTsKCQlpZiAoIGVsZW0gKSB7CgkJCXJldHVybiBqUXVlcnkuZXZl
bnQudHJpZ2dlciggdHlwZSwgZGF0YSwgZWxlbSwgdHJ1ZSApOwoJCX0KCX0KfSk7CgoKZnVuY3Rp
b24gY3JlYXRlU2FmZUZyYWdtZW50KCBkb2N1bWVudCApIHsKCXZhciBsaXN0ID0gbm9kZU5hbWVz
LnNwbGl0KCAifCIgKSwKCQlzYWZlRnJhZyA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21l
bnQoKTsKCglpZiAoIHNhZmVGcmFnLmNyZWF0ZUVsZW1lbnQgKSB7CgkJd2hpbGUgKCBsaXN0Lmxl
bmd0aCApIHsKCQkJc2FmZUZyYWcuY3JlYXRlRWxlbWVudCgKCQkJCWxpc3QucG9wKCkKCQkJKTsK
CQl9Cgl9CglyZXR1cm4gc2FmZUZyYWc7Cn0KCnZhciBub2RlTmFtZXMgPSAiYWJicnxhcnRpY2xl
fGFzaWRlfGF1ZGlvfGJkaXxjYW52YXN8ZGF0YXxkYXRhbGlzdHxkZXRhaWxzfGZpZ2NhcHRpb258
ZmlndXJlfGZvb3RlcnwiICsKCQkiaGVhZGVyfGhncm91cHxtYXJrfG1ldGVyfG5hdnxvdXRwdXR8
cHJvZ3Jlc3N8c2VjdGlvbnxzdW1tYXJ5fHRpbWV8dmlkZW8iLAoJcmlubGluZWpRdWVyeSA9IC8g
alF1ZXJ5XGQrPSIoPzpudWxsfFxkKykiL2csCglybm9zaGltY2FjaGUgPSBuZXcgUmVnRXhwKCI8
KD86IiArIG5vZGVOYW1lcyArICIpW1xccy8+XSIsICJpIiksCglybGVhZGluZ1doaXRlc3BhY2Ug
PSAvXlxzKy8sCglyeGh0bWxUYWcgPSAvPCg/IWFyZWF8YnJ8Y29sfGVtYmVkfGhyfGltZ3xpbnB1
dHxsaW5rfG1ldGF8cGFyYW0pKChbXHc6XSspW14+XSopXC8+L2dpLAoJcnRhZ05hbWUgPSAvPChb
XHc6XSspLywKCXJ0Ym9keSA9IC88dGJvZHkvaSwKCXJodG1sID0gLzx8JiM/XHcrOy8sCglybm9J
bm5lcmh0bWwgPSAvPCg/OnNjcmlwdHxzdHlsZXxsaW5rKS9pLAoJLy8gY2hlY2tlZD0iY2hlY2tl
ZCIgb3IgY2hlY2tlZAoJcmNoZWNrZWQgPSAvY2hlY2tlZFxzKig/OltePV18PVxzKi5jaGVja2Vk
LikvaSwKCXJzY3JpcHRUeXBlID0gL14kfFwvKD86amF2YXxlY21hKXNjcmlwdC9pLAoJcnNjcmlw
dFR5cGVNYXNrZWQgPSAvXnRydWVcLyguKikvLAoJcmNsZWFuU2NyaXB0ID0gL15ccyo8ISg/Olxb
Q0RBVEFcW3wtLSl8KD86XF1cXXwtLSk+XHMqJC9nLAoKCS8vIFdlIGhhdmUgdG8gY2xvc2UgdGhl
c2UgdGFncyB0byBzdXBwb3J0IFhIVE1MICgjMTMyMDApCgl3cmFwTWFwID0gewoJCW9wdGlvbjog
WyAxLCAiPHNlbGVjdCBtdWx0aXBsZT0nbXVsdGlwbGUnPiIsICI8L3NlbGVjdD4iIF0sCgkJbGVn
ZW5kOiBbIDEsICI8ZmllbGRzZXQ+IiwgIjwvZmllbGRzZXQ+IiBdLAoJCWFyZWE6IFsgMSwgIjxt
YXA+IiwgIjwvbWFwPiIgXSwKCQlwYXJhbTogWyAxLCAiPG9iamVjdD4iLCAiPC9vYmplY3Q+IiBd
LAoJCXRoZWFkOiBbIDEsICI8dGFibGU+IiwgIjwvdGFibGU+IiBdLAoJCXRyOiBbIDIsICI8dGFi
bGU+PHRib2R5PiIsICI8L3Rib2R5PjwvdGFibGU+IiBdLAoJCWNvbDogWyAyLCAiPHRhYmxlPjx0
Ym9keT48L3Rib2R5Pjxjb2xncm91cD4iLCAiPC9jb2xncm91cD48L3RhYmxlPiIgXSwKCQl0ZDog
WyAzLCAiPHRhYmxlPjx0Ym9keT48dHI+IiwgIjwvdHI+PC90Ym9keT48L3RhYmxlPiIgXSwKCgkJ
Ly8gSUU2LTggY2FuJ3Qgc2VyaWFsaXplIGxpbmssIHNjcmlwdCwgc3R5bGUsIG9yIGFueSBodG1s
NSAoTm9TY29wZSkgdGFncywKCQkvLyB1bmxlc3Mgd3JhcHBlZCBpbiBhIGRpdiB3aXRoIG5vbi1i
cmVha2luZyBjaGFyYWN0ZXJzIGluIGZyb250IG9mIGl0LgoJCV9kZWZhdWx0OiBzdXBwb3J0Lmh0
bWxTZXJpYWxpemUgPyBbIDAsICIiLCAiIiBdIDogWyAxLCAiWDxkaXY+IiwgIjwvZGl2PiIgIF0K
CX0sCglzYWZlRnJhZ21lbnQgPSBjcmVhdGVTYWZlRnJhZ21lbnQoIGRvY3VtZW50ICksCglmcmFn
bWVudERpdiA9IHNhZmVGcmFnbWVudC5hcHBlbmRDaGlsZCggZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiZGl2IikgKTsKCndyYXBNYXAub3B0Z3JvdXAgPSB3cmFwTWFwLm9wdGlvbjsKd3JhcE1hcC50
Ym9keSA9IHdyYXBNYXAudGZvb3QgPSB3cmFwTWFwLmNvbGdyb3VwID0gd3JhcE1hcC5jYXB0aW9u
ID0gd3JhcE1hcC50aGVhZDsKd3JhcE1hcC50aCA9IHdyYXBNYXAudGQ7CgpmdW5jdGlvbiBnZXRB
bGwoIGNvbnRleHQsIHRhZyApIHsKCXZhciBlbGVtcywgZWxlbSwKCQlpID0gMCwKCQlmb3VuZCA9
IHR5cGVvZiBjb250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lICE9PSBzdHJ1bmRlZmluZWQgPyBj
b250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCB0YWcgfHwgIioiICkgOgoJCQl0eXBlb2YgY29u
dGV4dC5xdWVyeVNlbGVjdG9yQWxsICE9PSBzdHJ1bmRlZmluZWQgPyBjb250ZXh0LnF1ZXJ5U2Vs
ZWN0b3JBbGwoIHRhZyB8fCAiKiIgKSA6CgkJCXVuZGVmaW5lZDsKCglpZiAoICFmb3VuZCApIHsK
CQlmb3IgKCBmb3VuZCA9IFtdLCBlbGVtcyA9IGNvbnRleHQuY2hpbGROb2RlcyB8fCBjb250ZXh0
OyAoZWxlbSA9IGVsZW1zW2ldKSAhPSBudWxsOyBpKysgKSB7CgkJCWlmICggIXRhZyB8fCBqUXVl
cnkubm9kZU5hbWUoIGVsZW0sIHRhZyApICkgewoJCQkJZm91bmQucHVzaCggZWxlbSApOwoJCQl9
IGVsc2UgewoJCQkJalF1ZXJ5Lm1lcmdlKCBmb3VuZCwgZ2V0QWxsKCBlbGVtLCB0YWcgKSApOwoJ
CQl9CgkJfQoJfQoKCXJldHVybiB0YWcgPT09IHVuZGVmaW5lZCB8fCB0YWcgJiYgalF1ZXJ5Lm5v
ZGVOYW1lKCBjb250ZXh0LCB0YWcgKSA/CgkJalF1ZXJ5Lm1lcmdlKCBbIGNvbnRleHQgXSwgZm91
bmQgKSA6CgkJZm91bmQ7Cn0KCi8vIFVzZWQgaW4gYnVpbGRGcmFnbWVudCwgZml4ZXMgdGhlIGRl
ZmF1bHRDaGVja2VkIHByb3BlcnR5CmZ1bmN0aW9uIGZpeERlZmF1bHRDaGVja2VkKCBlbGVtICkg
ewoJaWYgKCByY2hlY2thYmxlVHlwZS50ZXN0KCBlbGVtLnR5cGUgKSApIHsKCQllbGVtLmRlZmF1
bHRDaGVja2VkID0gZWxlbS5jaGVja2VkOwoJfQp9CgovLyBTdXBwb3J0OiBJRTw4Ci8vIE1hbmlw
dWxhdGluZyB0YWJsZXMgcmVxdWlyZXMgYSB0Ym9keQpmdW5jdGlvbiBtYW5pcHVsYXRpb25UYXJn
ZXQoIGVsZW0sIGNvbnRlbnQgKSB7CglyZXR1cm4galF1ZXJ5Lm5vZGVOYW1lKCBlbGVtLCAidGFi
bGUiICkgJiYKCQlqUXVlcnkubm9kZU5hbWUoIGNvbnRlbnQubm9kZVR5cGUgIT09IDExID8gY29u
dGVudCA6IGNvbnRlbnQuZmlyc3RDaGlsZCwgInRyIiApID8KCgkJZWxlbS5nZXRFbGVtZW50c0J5
VGFnTmFtZSgidGJvZHkiKVswXSB8fAoJCQllbGVtLmFwcGVuZENoaWxkKCBlbGVtLm93bmVyRG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgidGJvZHkiKSApIDoKCQllbGVtOwp9CgovLyBSZXBsYWNlL3Jl
c3RvcmUgdGhlIHR5cGUgYXR0cmlidXRlIG9mIHNjcmlwdCBlbGVtZW50cyBmb3Igc2FmZSBET00g
bWFuaXB1bGF0aW9uCmZ1bmN0aW9uIGRpc2FibGVTY3JpcHQoIGVsZW0gKSB7CgllbGVtLnR5cGUg
PSAoalF1ZXJ5LmZpbmQuYXR0ciggZWxlbSwgInR5cGUiICkgIT09IG51bGwpICsgIi8iICsgZWxl
bS50eXBlOwoJcmV0dXJuIGVsZW07Cn0KZnVuY3Rpb24gcmVzdG9yZVNjcmlwdCggZWxlbSApIHsK
CXZhciBtYXRjaCA9IHJzY3JpcHRUeXBlTWFza2VkLmV4ZWMoIGVsZW0udHlwZSApOwoJaWYgKCBt
YXRjaCApIHsKCQllbGVtLnR5cGUgPSBtYXRjaFsxXTsKCX0gZWxzZSB7CgkJZWxlbS5yZW1vdmVB
dHRyaWJ1dGUoInR5cGUiKTsKCX0KCXJldHVybiBlbGVtOwp9CgovLyBNYXJrIHNjcmlwdHMgYXMg
aGF2aW5nIGFscmVhZHkgYmVlbiBldmFsdWF0ZWQKZnVuY3Rpb24gc2V0R2xvYmFsRXZhbCggZWxl
bXMsIHJlZkVsZW1lbnRzICkgewoJdmFyIGVsZW0sCgkJaSA9IDA7Cglmb3IgKCA7IChlbGVtID0g
ZWxlbXNbaV0pICE9IG51bGw7IGkrKyApIHsKCQlqUXVlcnkuX2RhdGEoIGVsZW0sICJnbG9iYWxF
dmFsIiwgIXJlZkVsZW1lbnRzIHx8IGpRdWVyeS5fZGF0YSggcmVmRWxlbWVudHNbaV0sICJnbG9i
YWxFdmFsIiApICk7Cgl9Cn0KCmZ1bmN0aW9uIGNsb25lQ29weUV2ZW50KCBzcmMsIGRlc3QgKSB7
CgoJaWYgKCBkZXN0Lm5vZGVUeXBlICE9PSAxIHx8ICFqUXVlcnkuaGFzRGF0YSggc3JjICkgKSB7
CgkJcmV0dXJuOwoJfQoKCXZhciB0eXBlLCBpLCBsLAoJCW9sZERhdGEgPSBqUXVlcnkuX2RhdGEo
IHNyYyApLAoJCWN1ckRhdGEgPSBqUXVlcnkuX2RhdGEoIGRlc3QsIG9sZERhdGEgKSwKCQlldmVu
dHMgPSBvbGREYXRhLmV2ZW50czsKCglpZiAoIGV2ZW50cyApIHsKCQlkZWxldGUgY3VyRGF0YS5o
YW5kbGU7CgkJY3VyRGF0YS5ldmVudHMgPSB7fTsKCgkJZm9yICggdHlwZSBpbiBldmVudHMgKSB7
CgkJCWZvciAoIGkgPSAwLCBsID0gZXZlbnRzWyB0eXBlIF0ubGVuZ3RoOyBpIDwgbDsgaSsrICkg
ewoJCQkJalF1ZXJ5LmV2ZW50LmFkZCggZGVzdCwgdHlwZSwgZXZlbnRzWyB0eXBlIF1bIGkgXSAp
OwoJCQl9CgkJfQoJfQoKCS8vIG1ha2UgdGhlIGNsb25lZCBwdWJsaWMgZGF0YSBvYmplY3QgYSBj
b3B5IGZyb20gdGhlIG9yaWdpbmFsCglpZiAoIGN1ckRhdGEuZGF0YSApIHsKCQljdXJEYXRhLmRh
dGEgPSBqUXVlcnkuZXh0ZW5kKCB7fSwgY3VyRGF0YS5kYXRhICk7Cgl9Cn0KCmZ1bmN0aW9uIGZp
eENsb25lTm9kZUlzc3Vlcyggc3JjLCBkZXN0ICkgewoJdmFyIG5vZGVOYW1lLCBlLCBkYXRhOwoK
CS8vIFdlIGRvIG5vdCBuZWVkIHRvIGRvIGFueXRoaW5nIGZvciBub24tRWxlbWVudHMKCWlmICgg
ZGVzdC5ub2RlVHlwZSAhPT0gMSApIHsKCQlyZXR1cm47Cgl9CgoJbm9kZU5hbWUgPSBkZXN0Lm5v
ZGVOYW1lLnRvTG93ZXJDYXNlKCk7CgoJLy8gSUU2LTggY29waWVzIGV2ZW50cyBib3VuZCB2aWEg
YXR0YWNoRXZlbnQgd2hlbiB1c2luZyBjbG9uZU5vZGUuCglpZiAoICFzdXBwb3J0Lm5vQ2xvbmVF
dmVudCAmJiBkZXN0WyBqUXVlcnkuZXhwYW5kbyBdICkgewoJCWRhdGEgPSBqUXVlcnkuX2RhdGEo
IGRlc3QgKTsKCgkJZm9yICggZSBpbiBkYXRhLmV2ZW50cyApIHsKCQkJalF1ZXJ5LnJlbW92ZUV2
ZW50KCBkZXN0LCBlLCBkYXRhLmhhbmRsZSApOwoJCX0KCgkJLy8gRXZlbnQgZGF0YSBnZXRzIHJl
ZmVyZW5jZWQgaW5zdGVhZCBvZiBjb3BpZWQgaWYgdGhlIGV4cGFuZG8gZ2V0cyBjb3BpZWQgdG9v
CgkJZGVzdC5yZW1vdmVBdHRyaWJ1dGUoIGpRdWVyeS5leHBhbmRvICk7Cgl9CgoJLy8gSUUgYmxh
bmtzIGNvbnRlbnRzIHdoZW4gY2xvbmluZyBzY3JpcHRzLCBhbmQgdHJpZXMgdG8gZXZhbHVhdGUg
bmV3bHktc2V0IHRleHQKCWlmICggbm9kZU5hbWUgPT09ICJzY3JpcHQiICYmIGRlc3QudGV4dCAh
PT0gc3JjLnRleHQgKSB7CgkJZGlzYWJsZVNjcmlwdCggZGVzdCApLnRleHQgPSBzcmMudGV4dDsK
CQlyZXN0b3JlU2NyaXB0KCBkZXN0ICk7CgoJLy8gSUU2LTEwIGltcHJvcGVybHkgY2xvbmVzIGNo
aWxkcmVuIG9mIG9iamVjdCBlbGVtZW50cyB1c2luZyBjbGFzc2lkLgoJLy8gSUUxMCB0aHJvd3Mg
Tm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgaWYgcGFyZW50IGlzIG51bGwsICMxMjEzMi4KCX0g
ZWxzZSBpZiAoIG5vZGVOYW1lID09PSAib2JqZWN0IiApIHsKCQlpZiAoIGRlc3QucGFyZW50Tm9k
ZSApIHsKCQkJZGVzdC5vdXRlckhUTUwgPSBzcmMub3V0ZXJIVE1MOwoJCX0KCgkJLy8gVGhpcyBw
YXRoIGFwcGVhcnMgdW5hdm9pZGFibGUgZm9yIElFOS4gV2hlbiBjbG9uaW5nIGFuIG9iamVjdAoJ
CS8vIGVsZW1lbnQgaW4gSUU5LCB0aGUgb3V0ZXJIVE1MIHN0cmF0ZWd5IGFib3ZlIGlzIG5vdCBz
dWZmaWNpZW50LgoJCS8vIElmIHRoZSBzcmMgaGFzIGlubmVySFRNTCBhbmQgdGhlIGRlc3RpbmF0
aW9uIGRvZXMgbm90LAoJCS8vIGNvcHkgdGhlIHNyYy5pbm5lckhUTUwgaW50byB0aGUgZGVzdC5p
bm5lckhUTUwuICMxMDMyNAoJCWlmICggc3VwcG9ydC5odG1sNUNsb25lICYmICggc3JjLmlubmVy
SFRNTCAmJiAhalF1ZXJ5LnRyaW0oZGVzdC5pbm5lckhUTUwpICkgKSB7CgkJCWRlc3QuaW5uZXJI
VE1MID0gc3JjLmlubmVySFRNTDsKCQl9CgoJfSBlbHNlIGlmICggbm9kZU5hbWUgPT09ICJpbnB1
dCIgJiYgcmNoZWNrYWJsZVR5cGUudGVzdCggc3JjLnR5cGUgKSApIHsKCQkvLyBJRTYtOCBmYWls
cyB0byBwZXJzaXN0IHRoZSBjaGVja2VkIHN0YXRlIG9mIGEgY2xvbmVkIGNoZWNrYm94CgkJLy8g
b3IgcmFkaW8gYnV0dG9uLiBXb3JzZSwgSUU2LTcgZmFpbCB0byBnaXZlIHRoZSBjbG9uZWQgZWxl
bWVudAoJCS8vIGEgY2hlY2tlZCBhcHBlYXJhbmNlIGlmIHRoZSBkZWZhdWx0Q2hlY2tlZCB2YWx1
ZSBpc24ndCBhbHNvIHNldAoKCQlkZXN0LmRlZmF1bHRDaGVja2VkID0gZGVzdC5jaGVja2VkID0g
c3JjLmNoZWNrZWQ7CgoJCS8vIElFNi03IGdldCBjb25mdXNlZCBhbmQgZW5kIHVwIHNldHRpbmcg
dGhlIHZhbHVlIG9mIGEgY2xvbmVkCgkJLy8gY2hlY2tib3gvcmFkaW8gYnV0dG9uIHRvIGFuIGVt
cHR5IHN0cmluZyBpbnN0ZWFkIG9mICJvbiIKCQlpZiAoIGRlc3QudmFsdWUgIT09IHNyYy52YWx1
ZSApIHsKCQkJZGVzdC52YWx1ZSA9IHNyYy52YWx1ZTsKCQl9CgoJLy8gSUU2LTggZmFpbHMgdG8g
cmV0dXJuIHRoZSBzZWxlY3RlZCBvcHRpb24gdG8gdGhlIGRlZmF1bHQgc2VsZWN0ZWQKCS8vIHN0
YXRlIHdoZW4gY2xvbmluZyBvcHRpb25zCgl9IGVsc2UgaWYgKCBub2RlTmFtZSA9PT0gIm9wdGlv
biIgKSB7CgkJZGVzdC5kZWZhdWx0U2VsZWN0ZWQgPSBkZXN0LnNlbGVjdGVkID0gc3JjLmRlZmF1
bHRTZWxlY3RlZDsKCgkvLyBJRTYtOCBmYWlscyB0byBzZXQgdGhlIGRlZmF1bHRWYWx1ZSB0byB0
aGUgY29ycmVjdCB2YWx1ZSB3aGVuCgkvLyBjbG9uaW5nIG90aGVyIHR5cGVzIG9mIGlucHV0IGZp
ZWxkcwoJfSBlbHNlIGlmICggbm9kZU5hbWUgPT09ICJpbnB1dCIgfHwgbm9kZU5hbWUgPT09ICJ0
ZXh0YXJlYSIgKSB7CgkJZGVzdC5kZWZhdWx0VmFsdWUgPSBzcmMuZGVmYXVsdFZhbHVlOwoJfQp9
CgpqUXVlcnkuZXh0ZW5kKHsKCWNsb25lOiBmdW5jdGlvbiggZWxlbSwgZGF0YUFuZEV2ZW50cywg
ZGVlcERhdGFBbmRFdmVudHMgKSB7CgkJdmFyIGRlc3RFbGVtZW50cywgbm9kZSwgY2xvbmUsIGks
IHNyY0VsZW1lbnRzLAoJCQlpblBhZ2UgPSBqUXVlcnkuY29udGFpbnMoIGVsZW0ub3duZXJEb2N1
bWVudCwgZWxlbSApOwoKCQlpZiAoIHN1cHBvcnQuaHRtbDVDbG9uZSB8fCBqUXVlcnkuaXNYTUxE
b2MoZWxlbSkgfHwgIXJub3NoaW1jYWNoZS50ZXN0KCAiPCIgKyBlbGVtLm5vZGVOYW1lICsgIj4i
ICkgKSB7CgkJCWNsb25lID0gZWxlbS5jbG9uZU5vZGUoIHRydWUgKTsKCgkJLy8gSUU8PTggZG9l
cyBub3QgcHJvcGVybHkgY2xvbmUgZGV0YWNoZWQsIHVua25vd24gZWxlbWVudCBub2RlcwoJCX0g
ZWxzZSB7CgkJCWZyYWdtZW50RGl2LmlubmVySFRNTCA9IGVsZW0ub3V0ZXJIVE1MOwoJCQlmcmFn
bWVudERpdi5yZW1vdmVDaGlsZCggY2xvbmUgPSBmcmFnbWVudERpdi5maXJzdENoaWxkICk7CgkJ
fQoKCQlpZiAoICghc3VwcG9ydC5ub0Nsb25lRXZlbnQgfHwgIXN1cHBvcnQubm9DbG9uZUNoZWNr
ZWQpICYmCgkJCQkoZWxlbS5ub2RlVHlwZSA9PT0gMSB8fCBlbGVtLm5vZGVUeXBlID09PSAxMSkg
JiYgIWpRdWVyeS5pc1hNTERvYyhlbGVtKSApIHsKCgkJCS8vIFdlIGVzY2hldyBTaXp6bGUgaGVy
ZSBmb3IgcGVyZm9ybWFuY2UgcmVhc29uczogaHR0cDovL2pzcGVyZi5jb20vZ2V0YWxsLXZzLXNp
enpsZS8yCgkJCWRlc3RFbGVtZW50cyA9IGdldEFsbCggY2xvbmUgKTsKCQkJc3JjRWxlbWVudHMg
PSBnZXRBbGwoIGVsZW0gKTsKCgkJCS8vIEZpeCBhbGwgSUUgY2xvbmluZyBpc3N1ZXMKCQkJZm9y
ICggaSA9IDA7IChub2RlID0gc3JjRWxlbWVudHNbaV0pICE9IG51bGw7ICsraSApIHsKCQkJCS8v
IEVuc3VyZSB0aGF0IHRoZSBkZXN0aW5hdGlvbiBub2RlIGlzIG5vdCBudWxsOyBGaXhlcyAjOTU4
NwoJCQkJaWYgKCBkZXN0RWxlbWVudHNbaV0gKSB7CgkJCQkJZml4Q2xvbmVOb2RlSXNzdWVzKCBu
b2RlLCBkZXN0RWxlbWVudHNbaV0gKTsKCQkJCX0KCQkJfQoJCX0KCgkJLy8gQ29weSB0aGUgZXZl
bnRzIGZyb20gdGhlIG9yaWdpbmFsIHRvIHRoZSBjbG9uZQoJCWlmICggZGF0YUFuZEV2ZW50cyAp
IHsKCQkJaWYgKCBkZWVwRGF0YUFuZEV2ZW50cyApIHsKCQkJCXNyY0VsZW1lbnRzID0gc3JjRWxl
bWVudHMgfHwgZ2V0QWxsKCBlbGVtICk7CgkJCQlkZXN0RWxlbWVudHMgPSBkZXN0RWxlbWVudHMg
fHwgZ2V0QWxsKCBjbG9uZSApOwoKCQkJCWZvciAoIGkgPSAwOyAobm9kZSA9IHNyY0VsZW1lbnRz
W2ldKSAhPSBudWxsOyBpKysgKSB7CgkJCQkJY2xvbmVDb3B5RXZlbnQoIG5vZGUsIGRlc3RFbGVt
ZW50c1tpXSApOwoJCQkJfQoJCQl9IGVsc2UgewoJCQkJY2xvbmVDb3B5RXZlbnQoIGVsZW0sIGNs
b25lICk7CgkJCX0KCQl9CgoJCS8vIFByZXNlcnZlIHNjcmlwdCBldmFsdWF0aW9uIGhpc3RvcnkK
CQlkZXN0RWxlbWVudHMgPSBnZXRBbGwoIGNsb25lLCAic2NyaXB0IiApOwoJCWlmICggZGVzdEVs
ZW1lbnRzLmxlbmd0aCA+IDAgKSB7CgkJCXNldEdsb2JhbEV2YWwoIGRlc3RFbGVtZW50cywgIWlu
UGFnZSAmJiBnZXRBbGwoIGVsZW0sICJzY3JpcHQiICkgKTsKCQl9CgoJCWRlc3RFbGVtZW50cyA9
IHNyY0VsZW1lbnRzID0gbm9kZSA9IG51bGw7CgoJCS8vIFJldHVybiB0aGUgY2xvbmVkIHNldAoJ
CXJldHVybiBjbG9uZTsKCX0sCgoJYnVpbGRGcmFnbWVudDogZnVuY3Rpb24oIGVsZW1zLCBjb250
ZXh0LCBzY3JpcHRzLCBzZWxlY3Rpb24gKSB7CgkJdmFyIGosIGVsZW0sIGNvbnRhaW5zLAoJCQl0
bXAsIHRhZywgdGJvZHksIHdyYXAsCgkJCWwgPSBlbGVtcy5sZW5ndGgsCgoJCQkvLyBFbnN1cmUg
YSBzYWZlIGZyYWdtZW50CgkJCXNhZmUgPSBjcmVhdGVTYWZlRnJhZ21lbnQoIGNvbnRleHQgKSwK
CgkJCW5vZGVzID0gW10sCgkJCWkgPSAwOwoKCQlmb3IgKCA7IGkgPCBsOyBpKysgKSB7CgkJCWVs
ZW0gPSBlbGVtc1sgaSBdOwoKCQkJaWYgKCBlbGVtIHx8IGVsZW0gPT09IDAgKSB7CgoJCQkJLy8g
QWRkIG5vZGVzIGRpcmVjdGx5CgkJCQlpZiAoIGpRdWVyeS50eXBlKCBlbGVtICkgPT09ICJvYmpl
Y3QiICkgewoJCQkJCWpRdWVyeS5tZXJnZSggbm9kZXMsIGVsZW0ubm9kZVR5cGUgPyBbIGVsZW0g
XSA6IGVsZW0gKTsKCgkJCQkvLyBDb252ZXJ0IG5vbi1odG1sIGludG8gYSB0ZXh0IG5vZGUKCQkJ
CX0gZWxzZSBpZiAoICFyaHRtbC50ZXN0KCBlbGVtICkgKSB7CgkJCQkJbm9kZXMucHVzaCggY29u
dGV4dC5jcmVhdGVUZXh0Tm9kZSggZWxlbSApICk7CgoJCQkJLy8gQ29udmVydCBodG1sIGludG8g
RE9NIG5vZGVzCgkJCQl9IGVsc2UgewoJCQkJCXRtcCA9IHRtcCB8fCBzYWZlLmFwcGVuZENoaWxk
KCBjb250ZXh0LmNyZWF0ZUVsZW1lbnQoImRpdiIpICk7CgoJCQkJCS8vIERlc2VyaWFsaXplIGEg
c3RhbmRhcmQgcmVwcmVzZW50YXRpb24KCQkJCQl0YWcgPSAocnRhZ05hbWUuZXhlYyggZWxlbSAp
IHx8IFsgIiIsICIiIF0pWyAxIF0udG9Mb3dlckNhc2UoKTsKCQkJCQl3cmFwID0gd3JhcE1hcFsg
dGFnIF0gfHwgd3JhcE1hcC5fZGVmYXVsdDsKCgkJCQkJdG1wLmlubmVySFRNTCA9IHdyYXBbMV0g
KyBlbGVtLnJlcGxhY2UoIHJ4aHRtbFRhZywgIjwkMT48LyQyPiIgKSArIHdyYXBbMl07CgoJCQkJ
CS8vIERlc2NlbmQgdGhyb3VnaCB3cmFwcGVycyB0byB0aGUgcmlnaHQgY29udGVudAoJCQkJCWog
PSB3cmFwWzBdOwoJCQkJCXdoaWxlICggai0tICkgewoJCQkJCQl0bXAgPSB0bXAubGFzdENoaWxk
OwoJCQkJCX0KCgkJCQkJLy8gTWFudWFsbHkgYWRkIGxlYWRpbmcgd2hpdGVzcGFjZSByZW1vdmVk
IGJ5IElFCgkJCQkJaWYgKCAhc3VwcG9ydC5sZWFkaW5nV2hpdGVzcGFjZSAmJiBybGVhZGluZ1do
aXRlc3BhY2UudGVzdCggZWxlbSApICkgewoJCQkJCQlub2Rlcy5wdXNoKCBjb250ZXh0LmNyZWF0
ZVRleHROb2RlKCBybGVhZGluZ1doaXRlc3BhY2UuZXhlYyggZWxlbSApWzBdICkgKTsKCQkJCQl9
CgoJCQkJCS8vIFJlbW92ZSBJRSdzIGF1dG9pbnNlcnRlZCA8dGJvZHk+IGZyb20gdGFibGUgZnJh
Z21lbnRzCgkJCQkJaWYgKCAhc3VwcG9ydC50Ym9keSApIHsKCgkJCQkJCS8vIFN0cmluZyB3YXMg
YSA8dGFibGU+LCAqbWF5KiBoYXZlIHNwdXJpb3VzIDx0Ym9keT4KCQkJCQkJZWxlbSA9IHRhZyA9
PT0gInRhYmxlIiAmJiAhcnRib2R5LnRlc3QoIGVsZW0gKSA/CgkJCQkJCQl0bXAuZmlyc3RDaGls
ZCA6CgoJCQkJCQkJLy8gU3RyaW5nIHdhcyBhIGJhcmUgPHRoZWFkPiBvciA8dGZvb3Q+CgkJCQkJ
CQl3cmFwWzFdID09PSAiPHRhYmxlPiIgJiYgIXJ0Ym9keS50ZXN0KCBlbGVtICkgPwoJCQkJCQkJ
CXRtcCA6CgkJCQkJCQkJMDsKCgkJCQkJCWogPSBlbGVtICYmIGVsZW0uY2hpbGROb2Rlcy5sZW5n
dGg7CgkJCQkJCXdoaWxlICggai0tICkgewoJCQkJCQkJaWYgKCBqUXVlcnkubm9kZU5hbWUoICh0
Ym9keSA9IGVsZW0uY2hpbGROb2Rlc1tqXSksICJ0Ym9keSIgKSAmJiAhdGJvZHkuY2hpbGROb2Rl
cy5sZW5ndGggKSB7CgkJCQkJCQkJZWxlbS5yZW1vdmVDaGlsZCggdGJvZHkgKTsKCQkJCQkJCX0K
CQkJCQkJfQoJCQkJCX0KCgkJCQkJalF1ZXJ5Lm1lcmdlKCBub2RlcywgdG1wLmNoaWxkTm9kZXMg
KTsKCgkJCQkJLy8gRml4ICMxMjM5MiBmb3IgV2ViS2l0IGFuZCBJRSA+IDkKCQkJCQl0bXAudGV4
dENvbnRlbnQgPSAiIjsKCgkJCQkJLy8gRml4ICMxMjM5MiBmb3Igb2xkSUUKCQkJCQl3aGlsZSAo
IHRtcC5maXJzdENoaWxkICkgewoJCQkJCQl0bXAucmVtb3ZlQ2hpbGQoIHRtcC5maXJzdENoaWxk
ICk7CgkJCQkJfQoKCQkJCQkvLyBSZW1lbWJlciB0aGUgdG9wLWxldmVsIGNvbnRhaW5lciBmb3Ig
cHJvcGVyIGNsZWFudXAKCQkJCQl0bXAgPSBzYWZlLmxhc3RDaGlsZDsKCQkJCX0KCQkJfQoJCX0K
CgkJLy8gRml4ICMxMTM1NjogQ2xlYXIgZWxlbWVudHMgZnJvbSBmcmFnbWVudAoJCWlmICggdG1w
ICkgewoJCQlzYWZlLnJlbW92ZUNoaWxkKCB0bXAgKTsKCQl9CgoJCS8vIFJlc2V0IGRlZmF1bHRD
aGVja2VkIGZvciBhbnkgcmFkaW9zIGFuZCBjaGVja2JveGVzCgkJLy8gYWJvdXQgdG8gYmUgYXBw
ZW5kZWQgdG8gdGhlIERPTSBpbiBJRSA2LzcgKCM4MDYwKQoJCWlmICggIXN1cHBvcnQuYXBwZW5k
Q2hlY2tlZCApIHsKCQkJalF1ZXJ5LmdyZXAoIGdldEFsbCggbm9kZXMsICJpbnB1dCIgKSwgZml4
RGVmYXVsdENoZWNrZWQgKTsKCQl9CgoJCWkgPSAwOwoJCXdoaWxlICggKGVsZW0gPSBub2Rlc1sg
aSsrIF0pICkgewoKCQkJLy8gIzQwODcgLSBJZiBvcmlnaW4gYW5kIGRlc3RpbmF0aW9uIGVsZW1l
bnRzIGFyZSB0aGUgc2FtZSwgYW5kIHRoaXMgaXMKCQkJLy8gdGhhdCBlbGVtZW50LCBkbyBub3Qg
ZG8gYW55dGhpbmcKCQkJaWYgKCBzZWxlY3Rpb24gJiYgalF1ZXJ5LmluQXJyYXkoIGVsZW0sIHNl
bGVjdGlvbiApICE9PSAtMSApIHsKCQkJCWNvbnRpbnVlOwoJCQl9CgoJCQljb250YWlucyA9IGpR
dWVyeS5jb250YWlucyggZWxlbS5vd25lckRvY3VtZW50LCBlbGVtICk7CgoJCQkvLyBBcHBlbmQg
dG8gZnJhZ21lbnQKCQkJdG1wID0gZ2V0QWxsKCBzYWZlLmFwcGVuZENoaWxkKCBlbGVtICksICJz
Y3JpcHQiICk7CgoJCQkvLyBQcmVzZXJ2ZSBzY3JpcHQgZXZhbHVhdGlvbiBoaXN0b3J5CgkJCWlm
ICggY29udGFpbnMgKSB7CgkJCQlzZXRHbG9iYWxFdmFsKCB0bXAgKTsKCQkJfQoKCQkJLy8gQ2Fw
dHVyZSBleGVjdXRhYmxlcwoJCQlpZiAoIHNjcmlwdHMgKSB7CgkJCQlqID0gMDsKCQkJCXdoaWxl
ICggKGVsZW0gPSB0bXBbIGorKyBdKSApIHsKCQkJCQlpZiAoIHJzY3JpcHRUeXBlLnRlc3QoIGVs
ZW0udHlwZSB8fCAiIiApICkgewoJCQkJCQlzY3JpcHRzLnB1c2goIGVsZW0gKTsKCQkJCQl9CgkJ
CQl9CgkJCX0KCQl9CgoJCXRtcCA9IG51bGw7CgoJCXJldHVybiBzYWZlOwoJfSwKCgljbGVhbkRh
dGE6IGZ1bmN0aW9uKCBlbGVtcywgLyogaW50ZXJuYWwgKi8gYWNjZXB0RGF0YSApIHsKCQl2YXIg
ZWxlbSwgdHlwZSwgaWQsIGRhdGEsCgkJCWkgPSAwLAoJCQlpbnRlcm5hbEtleSA9IGpRdWVyeS5l
eHBhbmRvLAoJCQljYWNoZSA9IGpRdWVyeS5jYWNoZSwKCQkJZGVsZXRlRXhwYW5kbyA9IHN1cHBv
cnQuZGVsZXRlRXhwYW5kbywKCQkJc3BlY2lhbCA9IGpRdWVyeS5ldmVudC5zcGVjaWFsOwoKCQlm
b3IgKCA7IChlbGVtID0gZWxlbXNbaV0pICE9IG51bGw7IGkrKyApIHsKCQkJaWYgKCBhY2NlcHRE
YXRhIHx8IGpRdWVyeS5hY2NlcHREYXRhKCBlbGVtICkgKSB7CgoJCQkJaWQgPSBlbGVtWyBpbnRl
cm5hbEtleSBdOwoJCQkJZGF0YSA9IGlkICYmIGNhY2hlWyBpZCBdOwoKCQkJCWlmICggZGF0YSAp
IHsKCQkJCQlpZiAoIGRhdGEuZXZlbnRzICkgewoJCQkJCQlmb3IgKCB0eXBlIGluIGRhdGEuZXZl
bnRzICkgewoJCQkJCQkJaWYgKCBzcGVjaWFsWyB0eXBlIF0gKSB7CgkJCQkJCQkJalF1ZXJ5LmV2
ZW50LnJlbW92ZSggZWxlbSwgdHlwZSApOwoKCQkJCQkJCS8vIFRoaXMgaXMgYSBzaG9ydGN1dCB0
byBhdm9pZCBqUXVlcnkuZXZlbnQucmVtb3ZlJ3Mgb3ZlcmhlYWQKCQkJCQkJCX0gZWxzZSB7CgkJ
CQkJCQkJalF1ZXJ5LnJlbW92ZUV2ZW50KCBlbGVtLCB0eXBlLCBkYXRhLmhhbmRsZSApOwoJCQkJ
CQkJfQoJCQkJCQl9CgkJCQkJfQoKCQkJCQkvLyBSZW1vdmUgY2FjaGUgb25seSBpZiBpdCB3YXMg
bm90IGFscmVhZHkgcmVtb3ZlZCBieSBqUXVlcnkuZXZlbnQucmVtb3ZlCgkJCQkJaWYgKCBjYWNo
ZVsgaWQgXSApIHsKCgkJCQkJCWRlbGV0ZSBjYWNoZVsgaWQgXTsKCgkJCQkJCS8vIElFIGRvZXMg
bm90IGFsbG93IHVzIHRvIGRlbGV0ZSBleHBhbmRvIHByb3BlcnRpZXMgZnJvbSBub2RlcywKCQkJ
CQkJLy8gbm9yIGRvZXMgaXQgaGF2ZSBhIHJlbW92ZUF0dHJpYnV0ZSBmdW5jdGlvbiBvbiBEb2N1
bWVudCBub2RlczsKCQkJCQkJLy8gd2UgbXVzdCBoYW5kbGUgYWxsIG9mIHRoZXNlIGNhc2VzCgkJ
CQkJCWlmICggZGVsZXRlRXhwYW5kbyApIHsKCQkJCQkJCWRlbGV0ZSBlbGVtWyBpbnRlcm5hbEtl
eSBdOwoKCQkJCQkJfSBlbHNlIGlmICggdHlwZW9mIGVsZW0ucmVtb3ZlQXR0cmlidXRlICE9PSBz
dHJ1bmRlZmluZWQgKSB7CgkJCQkJCQllbGVtLnJlbW92ZUF0dHJpYnV0ZSggaW50ZXJuYWxLZXkg
KTsKCgkJCQkJCX0gZWxzZSB7CgkJCQkJCQllbGVtWyBpbnRlcm5hbEtleSBdID0gbnVsbDsKCQkJ
CQkJfQoKCQkJCQkJZGVsZXRlZElkcy5wdXNoKCBpZCApOwoJCQkJCX0KCQkJCX0KCQkJfQoJCX0K
CX0KfSk7CgpqUXVlcnkuZm4uZXh0ZW5kKHsKCXRleHQ6IGZ1bmN0aW9uKCB2YWx1ZSApIHsKCQly
ZXR1cm4gYWNjZXNzKCB0aGlzLCBmdW5jdGlvbiggdmFsdWUgKSB7CgkJCXJldHVybiB2YWx1ZSA9
PT0gdW5kZWZpbmVkID8KCQkJCWpRdWVyeS50ZXh0KCB0aGlzICkgOgoJCQkJdGhpcy5lbXB0eSgp
LmFwcGVuZCggKCB0aGlzWzBdICYmIHRoaXNbMF0ub3duZXJEb2N1bWVudCB8fCBkb2N1bWVudCAp
LmNyZWF0ZVRleHROb2RlKCB2YWx1ZSApICk7CgkJfSwgbnVsbCwgdmFsdWUsIGFyZ3VtZW50cy5s
ZW5ndGggKTsKCX0sCgoJYXBwZW5kOiBmdW5jdGlvbigpIHsKCQlyZXR1cm4gdGhpcy5kb21NYW5p
cCggYXJndW1lbnRzLCBmdW5jdGlvbiggZWxlbSApIHsKCQkJaWYgKCB0aGlzLm5vZGVUeXBlID09
PSAxIHx8IHRoaXMubm9kZVR5cGUgPT09IDExIHx8IHRoaXMubm9kZVR5cGUgPT09IDkgKSB7CgkJ
CQl2YXIgdGFyZ2V0ID0gbWFuaXB1bGF0aW9uVGFyZ2V0KCB0aGlzLCBlbGVtICk7CgkJCQl0YXJn
ZXQuYXBwZW5kQ2hpbGQoIGVsZW0gKTsKCQkJfQoJCX0pOwoJfSwKCglwcmVwZW5kOiBmdW5jdGlv
bigpIHsKCQlyZXR1cm4gdGhpcy5kb21NYW5pcCggYXJndW1lbnRzLCBmdW5jdGlvbiggZWxlbSAp
IHsKCQkJaWYgKCB0aGlzLm5vZGVUeXBlID09PSAxIHx8IHRoaXMubm9kZVR5cGUgPT09IDExIHx8
IHRoaXMubm9kZVR5cGUgPT09IDkgKSB7CgkJCQl2YXIgdGFyZ2V0ID0gbWFuaXB1bGF0aW9uVGFy
Z2V0KCB0aGlzLCBlbGVtICk7CgkJCQl0YXJnZXQuaW5zZXJ0QmVmb3JlKCBlbGVtLCB0YXJnZXQu
Zmlyc3RDaGlsZCApOwoJCQl9CgkJfSk7Cgl9LAoKCWJlZm9yZTogZnVuY3Rpb24oKSB7CgkJcmV0
dXJuIHRoaXMuZG9tTWFuaXAoIGFyZ3VtZW50cywgZnVuY3Rpb24oIGVsZW0gKSB7CgkJCWlmICgg
dGhpcy5wYXJlbnROb2RlICkgewoJCQkJdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSggZWxl
bSwgdGhpcyApOwoJCQl9CgkJfSk7Cgl9LAoKCWFmdGVyOiBmdW5jdGlvbigpIHsKCQlyZXR1cm4g
dGhpcy5kb21NYW5pcCggYXJndW1lbnRzLCBmdW5jdGlvbiggZWxlbSApIHsKCQkJaWYgKCB0aGlz
LnBhcmVudE5vZGUgKSB7CgkJCQl0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKCBlbGVtLCB0
aGlzLm5leHRTaWJsaW5nICk7CgkJCX0KCQl9KTsKCX0sCgoJcmVtb3ZlOiBmdW5jdGlvbiggc2Vs
ZWN0b3IsIGtlZXBEYXRhIC8qIEludGVybmFsIFVzZSBPbmx5ICovICkgewoJCXZhciBlbGVtLAoJ
CQllbGVtcyA9IHNlbGVjdG9yID8galF1ZXJ5LmZpbHRlciggc2VsZWN0b3IsIHRoaXMgKSA6IHRo
aXMsCgkJCWkgPSAwOwoKCQlmb3IgKCA7IChlbGVtID0gZWxlbXNbaV0pICE9IG51bGw7IGkrKyAp
IHsKCgkJCWlmICggIWtlZXBEYXRhICYmIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7CgkJCQlqUXVl
cnkuY2xlYW5EYXRhKCBnZXRBbGwoIGVsZW0gKSApOwoJCQl9CgoJCQlpZiAoIGVsZW0ucGFyZW50
Tm9kZSApIHsKCQkJCWlmICgga2VlcERhdGEgJiYgalF1ZXJ5LmNvbnRhaW5zKCBlbGVtLm93bmVy
RG9jdW1lbnQsIGVsZW0gKSApIHsKCQkJCQlzZXRHbG9iYWxFdmFsKCBnZXRBbGwoIGVsZW0sICJz
Y3JpcHQiICkgKTsKCQkJCX0KCQkJCWVsZW0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCggZWxlbSAp
OwoJCQl9CgkJfQoKCQlyZXR1cm4gdGhpczsKCX0sCgoJZW1wdHk6IGZ1bmN0aW9uKCkgewoJCXZh
ciBlbGVtLAoJCQlpID0gMDsKCgkJZm9yICggOyAoZWxlbSA9IHRoaXNbaV0pICE9IG51bGw7IGkr
KyApIHsKCQkJLy8gUmVtb3ZlIGVsZW1lbnQgbm9kZXMgYW5kIHByZXZlbnQgbWVtb3J5IGxlYWtz
CgkJCWlmICggZWxlbS5ub2RlVHlwZSA9PT0gMSApIHsKCQkJCWpRdWVyeS5jbGVhbkRhdGEoIGdl
dEFsbCggZWxlbSwgZmFsc2UgKSApOwoJCQl9CgoJCQkvLyBSZW1vdmUgYW55IHJlbWFpbmluZyBu
b2RlcwoJCQl3aGlsZSAoIGVsZW0uZmlyc3RDaGlsZCApIHsKCQkJCWVsZW0ucmVtb3ZlQ2hpbGQo
IGVsZW0uZmlyc3RDaGlsZCApOwoJCQl9CgoJCQkvLyBJZiB0aGlzIGlzIGEgc2VsZWN0LCBlbnN1
cmUgdGhhdCBpdCBkaXNwbGF5cyBlbXB0eSAoIzEyMzM2KQoJCQkvLyBTdXBwb3J0OiBJRTw5CgkJ
CWlmICggZWxlbS5vcHRpb25zICYmIGpRdWVyeS5ub2RlTmFtZSggZWxlbSwgInNlbGVjdCIgKSAp
IHsKCQkJCWVsZW0ub3B0aW9ucy5sZW5ndGggPSAwOwoJCQl9CgkJfQoKCQlyZXR1cm4gdGhpczsK
CX0sCgoJY2xvbmU6IGZ1bmN0aW9uKCBkYXRhQW5kRXZlbnRzLCBkZWVwRGF0YUFuZEV2ZW50cyAp
IHsKCQlkYXRhQW5kRXZlbnRzID0gZGF0YUFuZEV2ZW50cyA9PSBudWxsID8gZmFsc2UgOiBkYXRh
QW5kRXZlbnRzOwoJCWRlZXBEYXRhQW5kRXZlbnRzID0gZGVlcERhdGFBbmRFdmVudHMgPT0gbnVs
bCA/IGRhdGFBbmRFdmVudHMgOiBkZWVwRGF0YUFuZEV2ZW50czsKCgkJcmV0dXJuIHRoaXMubWFw
KGZ1bmN0aW9uKCkgewoJCQlyZXR1cm4galF1ZXJ5LmNsb25lKCB0aGlzLCBkYXRhQW5kRXZlbnRz
LCBkZWVwRGF0YUFuZEV2ZW50cyApOwoJCX0pOwoJfSwKCglodG1sOiBmdW5jdGlvbiggdmFsdWUg
KSB7CgkJcmV0dXJuIGFjY2VzcyggdGhpcywgZnVuY3Rpb24oIHZhbHVlICkgewoJCQl2YXIgZWxl
bSA9IHRoaXNbIDAgXSB8fCB7fSwKCQkJCWkgPSAwLAoJCQkJbCA9IHRoaXMubGVuZ3RoOwoKCQkJ
aWYgKCB2YWx1ZSA9PT0gdW5kZWZpbmVkICkgewoJCQkJcmV0dXJuIGVsZW0ubm9kZVR5cGUgPT09
IDEgPwoJCQkJCWVsZW0uaW5uZXJIVE1MLnJlcGxhY2UoIHJpbmxpbmVqUXVlcnksICIiICkgOgoJ
CQkJCXVuZGVmaW5lZDsKCQkJfQoKCQkJLy8gU2VlIGlmIHdlIGNhbiB0YWtlIGEgc2hvcnRjdXQg
YW5kIGp1c3QgdXNlIGlubmVySFRNTAoJCQlpZiAoIHR5cGVvZiB2YWx1ZSA9PT0gInN0cmluZyIg
JiYgIXJub0lubmVyaHRtbC50ZXN0KCB2YWx1ZSApICYmCgkJCQkoIHN1cHBvcnQuaHRtbFNlcmlh
bGl6ZSB8fCAhcm5vc2hpbWNhY2hlLnRlc3QoIHZhbHVlICkgICkgJiYKCQkJCSggc3VwcG9ydC5s
ZWFkaW5nV2hpdGVzcGFjZSB8fCAhcmxlYWRpbmdXaGl0ZXNwYWNlLnRlc3QoIHZhbHVlICkgKSAm
JgoJCQkJIXdyYXBNYXBbIChydGFnTmFtZS5leGVjKCB2YWx1ZSApIHx8IFsgIiIsICIiIF0pWyAx
IF0udG9Mb3dlckNhc2UoKSBdICkgewoKCQkJCXZhbHVlID0gdmFsdWUucmVwbGFjZSggcnhodG1s
VGFnLCAiPCQxPjwvJDI+IiApOwoKCQkJCXRyeSB7CgkJCQkJZm9yICg7IGkgPCBsOyBpKysgKSB7
CgkJCQkJCS8vIFJlbW92ZSBlbGVtZW50IG5vZGVzIGFuZCBwcmV2ZW50IG1lbW9yeSBsZWFrcwoJ
CQkJCQllbGVtID0gdGhpc1tpXSB8fCB7fTsKCQkJCQkJaWYgKCBlbGVtLm5vZGVUeXBlID09PSAx
ICkgewoJCQkJCQkJalF1ZXJ5LmNsZWFuRGF0YSggZ2V0QWxsKCBlbGVtLCBmYWxzZSApICk7CgkJ
CQkJCQllbGVtLmlubmVySFRNTCA9IHZhbHVlOwoJCQkJCQl9CgkJCQkJfQoKCQkJCQllbGVtID0g
MDsKCgkJCQkvLyBJZiB1c2luZyBpbm5lckhUTUwgdGhyb3dzIGFuIGV4Y2VwdGlvbiwgdXNlIHRo
ZSBmYWxsYmFjayBtZXRob2QKCQkJCX0gY2F0Y2goZSkge30KCQkJfQoKCQkJaWYgKCBlbGVtICkg
ewoJCQkJdGhpcy5lbXB0eSgpLmFwcGVuZCggdmFsdWUgKTsKCQkJfQoJCX0sIG51bGwsIHZhbHVl
LCBhcmd1bWVudHMubGVuZ3RoICk7Cgl9LAoKCXJlcGxhY2VXaXRoOiBmdW5jdGlvbigpIHsKCQl2
YXIgYXJnID0gYXJndW1lbnRzWyAwIF07CgoJCS8vIE1ha2UgdGhlIGNoYW5nZXMsIHJlcGxhY2lu
ZyBlYWNoIGNvbnRleHQgZWxlbWVudCB3aXRoIHRoZSBuZXcgY29udGVudAoJCXRoaXMuZG9tTWFu
aXAoIGFyZ3VtZW50cywgZnVuY3Rpb24oIGVsZW0gKSB7CgkJCWFyZyA9IHRoaXMucGFyZW50Tm9k
ZTsKCgkJCWpRdWVyeS5jbGVhbkRhdGEoIGdldEFsbCggdGhpcyApICk7CgoJCQlpZiAoIGFyZyAp
IHsKCQkJCWFyZy5yZXBsYWNlQ2hpbGQoIGVsZW0sIHRoaXMgKTsKCQkJfQoJCX0pOwoKCQkvLyBG
b3JjZSByZW1vdmFsIGlmIHRoZXJlIHdhcyBubyBuZXcgY29udGVudCAoZS5nLiwgZnJvbSBlbXB0
eSBhcmd1bWVudHMpCgkJcmV0dXJuIGFyZyAmJiAoYXJnLmxlbmd0aCB8fCBhcmcubm9kZVR5cGUp
ID8gdGhpcyA6IHRoaXMucmVtb3ZlKCk7Cgl9LAoKCWRldGFjaDogZnVuY3Rpb24oIHNlbGVjdG9y
ICkgewoJCXJldHVybiB0aGlzLnJlbW92ZSggc2VsZWN0b3IsIHRydWUgKTsKCX0sCgoJZG9tTWFu
aXA6IGZ1bmN0aW9uKCBhcmdzLCBjYWxsYmFjayApIHsKCgkJLy8gRmxhdHRlbiBhbnkgbmVzdGVk
IGFycmF5cwoJCWFyZ3MgPSBjb25jYXQuYXBwbHkoIFtdLCBhcmdzICk7CgoJCXZhciBmaXJzdCwg
bm9kZSwgaGFzU2NyaXB0cywKCQkJc2NyaXB0cywgZG9jLCBmcmFnbWVudCwKCQkJaSA9IDAsCgkJ
CWwgPSB0aGlzLmxlbmd0aCwKCQkJc2V0ID0gdGhpcywKCQkJaU5vQ2xvbmUgPSBsIC0gMSwKCQkJ
dmFsdWUgPSBhcmdzWzBdLAoJCQlpc0Z1bmN0aW9uID0galF1ZXJ5LmlzRnVuY3Rpb24oIHZhbHVl
ICk7CgoJCS8vIFdlIGNhbid0IGNsb25lTm9kZSBmcmFnbWVudHMgdGhhdCBjb250YWluIGNoZWNr
ZWQsIGluIFdlYktpdAoJCWlmICggaXNGdW5jdGlvbiB8fAoJCQkJKCBsID4gMSAmJiB0eXBlb2Yg
dmFsdWUgPT09ICJzdHJpbmciICYmCgkJCQkJIXN1cHBvcnQuY2hlY2tDbG9uZSAmJiByY2hlY2tl
ZC50ZXN0KCB2YWx1ZSApICkgKSB7CgkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oIGluZGV4
ICkgewoJCQkJdmFyIHNlbGYgPSBzZXQuZXEoIGluZGV4ICk7CgkJCQlpZiAoIGlzRnVuY3Rpb24g
KSB7CgkJCQkJYXJnc1swXSA9IHZhbHVlLmNhbGwoIHRoaXMsIGluZGV4LCBzZWxmLmh0bWwoKSAp
OwoJCQkJfQoJCQkJc2VsZi5kb21NYW5pcCggYXJncywgY2FsbGJhY2sgKTsKCQkJfSk7CgkJfQoK
CQlpZiAoIGwgKSB7CgkJCWZyYWdtZW50ID0galF1ZXJ5LmJ1aWxkRnJhZ21lbnQoIGFyZ3MsIHRo
aXNbIDAgXS5vd25lckRvY3VtZW50LCBmYWxzZSwgdGhpcyApOwoJCQlmaXJzdCA9IGZyYWdtZW50
LmZpcnN0Q2hpbGQ7CgoJCQlpZiAoIGZyYWdtZW50LmNoaWxkTm9kZXMubGVuZ3RoID09PSAxICkg
ewoJCQkJZnJhZ21lbnQgPSBmaXJzdDsKCQkJfQoKCQkJaWYgKCBmaXJzdCApIHsKCQkJCXNjcmlw
dHMgPSBqUXVlcnkubWFwKCBnZXRBbGwoIGZyYWdtZW50LCAic2NyaXB0IiApLCBkaXNhYmxlU2Ny
aXB0ICk7CgkJCQloYXNTY3JpcHRzID0gc2NyaXB0cy5sZW5ndGg7CgoJCQkJLy8gVXNlIHRoZSBv
cmlnaW5hbCBmcmFnbWVudCBmb3IgdGhlIGxhc3QgaXRlbSBpbnN0ZWFkIG9mIHRoZSBmaXJzdCBi
ZWNhdXNlIGl0IGNhbiBlbmQgdXAKCQkJCS8vIGJlaW5nIGVtcHRpZWQgaW5jb3JyZWN0bHkgaW4g
Y2VydGFpbiBzaXR1YXRpb25zICgjODA3MCkuCgkJCQlmb3IgKCA7IGkgPCBsOyBpKysgKSB7CgkJ
CQkJbm9kZSA9IGZyYWdtZW50OwoKCQkJCQlpZiAoIGkgIT09IGlOb0Nsb25lICkgewoJCQkJCQlu
b2RlID0galF1ZXJ5LmNsb25lKCBub2RlLCB0cnVlLCB0cnVlICk7CgoJCQkJCQkvLyBLZWVwIHJl
ZmVyZW5jZXMgdG8gY2xvbmVkIHNjcmlwdHMgZm9yIGxhdGVyIHJlc3RvcmF0aW9uCgkJCQkJCWlm
ICggaGFzU2NyaXB0cyApIHsKCQkJCQkJCWpRdWVyeS5tZXJnZSggc2NyaXB0cywgZ2V0QWxsKCBu
b2RlLCAic2NyaXB0IiApICk7CgkJCQkJCX0KCQkJCQl9CgoJCQkJCWNhbGxiYWNrLmNhbGwoIHRo
aXNbaV0sIG5vZGUsIGkgKTsKCQkJCX0KCgkJCQlpZiAoIGhhc1NjcmlwdHMgKSB7CgkJCQkJZG9j
ID0gc2NyaXB0c1sgc2NyaXB0cy5sZW5ndGggLSAxIF0ub3duZXJEb2N1bWVudDsKCgkJCQkJLy8g
UmVlbmFibGUgc2NyaXB0cwoJCQkJCWpRdWVyeS5tYXAoIHNjcmlwdHMsIHJlc3RvcmVTY3JpcHQg
KTsKCgkJCQkJLy8gRXZhbHVhdGUgZXhlY3V0YWJsZSBzY3JpcHRzIG9uIGZpcnN0IGRvY3VtZW50
IGluc2VydGlvbgoJCQkJCWZvciAoIGkgPSAwOyBpIDwgaGFzU2NyaXB0czsgaSsrICkgewoJCQkJ
CQlub2RlID0gc2NyaXB0c1sgaSBdOwoJCQkJCQlpZiAoIHJzY3JpcHRUeXBlLnRlc3QoIG5vZGUu
dHlwZSB8fCAiIiApICYmCgkJCQkJCQkhalF1ZXJ5Ll9kYXRhKCBub2RlLCAiZ2xvYmFsRXZhbCIg
KSAmJiBqUXVlcnkuY29udGFpbnMoIGRvYywgbm9kZSApICkgewoKCQkJCQkJCWlmICggbm9kZS5z
cmMgKSB7CgkJCQkJCQkJLy8gT3B0aW9uYWwgQUpBWCBkZXBlbmRlbmN5LCBidXQgd29uJ3QgcnVu
IHNjcmlwdHMgaWYgbm90IHByZXNlbnQKCQkJCQkJCQlpZiAoIGpRdWVyeS5fZXZhbFVybCApIHsK
CQkJCQkJCQkJalF1ZXJ5Ll9ldmFsVXJsKCBub2RlLnNyYyApOwoJCQkJCQkJCX0KCQkJCQkJCX0g
ZWxzZSB7CgkJCQkJCQkJalF1ZXJ5Lmdsb2JhbEV2YWwoICggbm9kZS50ZXh0IHx8IG5vZGUudGV4
dENvbnRlbnQgfHwgbm9kZS5pbm5lckhUTUwgfHwgIiIgKS5yZXBsYWNlKCByY2xlYW5TY3JpcHQs
ICIiICkgKTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCX0KCQkJCX0KCgkJCQkvLyBGaXggIzExODA5
OiBBdm9pZCBsZWFraW5nIG1lbW9yeQoJCQkJZnJhZ21lbnQgPSBmaXJzdCA9IG51bGw7CgkJCX0K
CQl9CgoJCXJldHVybiB0aGlzOwoJfQp9KTsKCmpRdWVyeS5lYWNoKHsKCWFwcGVuZFRvOiAiYXBw
ZW5kIiwKCXByZXBlbmRUbzogInByZXBlbmQiLAoJaW5zZXJ0QmVmb3JlOiAiYmVmb3JlIiwKCWlu
c2VydEFmdGVyOiAiYWZ0ZXIiLAoJcmVwbGFjZUFsbDogInJlcGxhY2VXaXRoIgp9LCBmdW5jdGlv
biggbmFtZSwgb3JpZ2luYWwgKSB7CglqUXVlcnkuZm5bIG5hbWUgXSA9IGZ1bmN0aW9uKCBzZWxl
Y3RvciApIHsKCQl2YXIgZWxlbXMsCgkJCWkgPSAwLAoJCQlyZXQgPSBbXSwKCQkJaW5zZXJ0ID0g
alF1ZXJ5KCBzZWxlY3RvciApLAoJCQlsYXN0ID0gaW5zZXJ0Lmxlbmd0aCAtIDE7CgoJCWZvciAo
IDsgaSA8PSBsYXN0OyBpKysgKSB7CgkJCWVsZW1zID0gaSA9PT0gbGFzdCA/IHRoaXMgOiB0aGlz
LmNsb25lKHRydWUpOwoJCQlqUXVlcnkoIGluc2VydFtpXSApWyBvcmlnaW5hbCBdKCBlbGVtcyAp
OwoKCQkJLy8gTW9kZXJuIGJyb3dzZXJzIGNhbiBhcHBseSBqUXVlcnkgY29sbGVjdGlvbnMgYXMg
YXJyYXlzLCBidXQgb2xkSUUgbmVlZHMgYSAuZ2V0KCkKCQkJcHVzaC5hcHBseSggcmV0LCBlbGVt
cy5nZXQoKSApOwoJCX0KCgkJcmV0dXJuIHRoaXMucHVzaFN0YWNrKCByZXQgKTsKCX07Cn0pOwoK
CnZhciBpZnJhbWUsCgllbGVtZGlzcGxheSA9IHt9OwoKLyoqCiAqIFJldHJpZXZlIHRoZSBhY3R1
YWwgZGlzcGxheSBvZiBhIGVsZW1lbnQKICogQHBhcmFtIHtTdHJpbmd9IG5hbWUgbm9kZU5hbWUg
b2YgdGhlIGVsZW1lbnQKICogQHBhcmFtIHtPYmplY3R9IGRvYyBEb2N1bWVudCBvYmplY3QKICov
Ci8vIENhbGxlZCBvbmx5IGZyb20gd2l0aGluIGRlZmF1bHREaXNwbGF5CmZ1bmN0aW9uIGFjdHVh
bERpc3BsYXkoIG5hbWUsIGRvYyApIHsKCXZhciBzdHlsZSwKCQllbGVtID0galF1ZXJ5KCBkb2Mu
Y3JlYXRlRWxlbWVudCggbmFtZSApICkuYXBwZW5kVG8oIGRvYy5ib2R5ICksCgoJCS8vIGdldERl
ZmF1bHRDb21wdXRlZFN0eWxlIG1pZ2h0IGJlIHJlbGlhYmx5IHVzZWQgb25seSBvbiBhdHRhY2hl
ZCBlbGVtZW50CgkJZGlzcGxheSA9IHdpbmRvdy5nZXREZWZhdWx0Q29tcHV0ZWRTdHlsZSAmJiAo
IHN0eWxlID0gd2luZG93LmdldERlZmF1bHRDb21wdXRlZFN0eWxlKCBlbGVtWyAwIF0gKSApID8K
CgkJCS8vIFVzZSBvZiB0aGlzIG1ldGhvZCBpcyBhIHRlbXBvcmFyeSBmaXggKG1vcmUgbGlrZSBv
cHRtaXphdGlvbikgdW50aWwgc29tZXRoaW5nIGJldHRlciBjb21lcyBhbG9uZywKCQkJLy8gc2lu
Y2UgaXQgd2FzIHJlbW92ZWQgZnJvbSBzcGVjaWZpY2F0aW9uIGFuZCBzdXBwb3J0ZWQgb25seSBp
biBGRgoJCQlzdHlsZS5kaXNwbGF5IDogalF1ZXJ5LmNzcyggZWxlbVsgMCBdLCAiZGlzcGxheSIg
KTsKCgkvLyBXZSBkb24ndCBoYXZlIGFueSBkYXRhIHN0b3JlZCBvbiB0aGUgZWxlbWVudCwKCS8v
IHNvIHVzZSAiZGV0YWNoIiBtZXRob2QgYXMgZmFzdCB3YXkgdG8gZ2V0IHJpZCBvZiB0aGUgZWxl
bWVudAoJZWxlbS5kZXRhY2goKTsKCglyZXR1cm4gZGlzcGxheTsKfQoKLyoqCiAqIFRyeSB0byBk
ZXRlcm1pbmUgdGhlIGRlZmF1bHQgZGlzcGxheSB2YWx1ZSBvZiBhbiBlbGVtZW50CiAqIEBwYXJh
bSB7U3RyaW5nfSBub2RlTmFtZQogKi8KZnVuY3Rpb24gZGVmYXVsdERpc3BsYXkoIG5vZGVOYW1l
ICkgewoJdmFyIGRvYyA9IGRvY3VtZW50LAoJCWRpc3BsYXkgPSBlbGVtZGlzcGxheVsgbm9kZU5h
bWUgXTsKCglpZiAoICFkaXNwbGF5ICkgewoJCWRpc3BsYXkgPSBhY3R1YWxEaXNwbGF5KCBub2Rl
TmFtZSwgZG9jICk7CgoJCS8vIElmIHRoZSBzaW1wbGUgd2F5IGZhaWxzLCByZWFkIGZyb20gaW5z
aWRlIGFuIGlmcmFtZQoJCWlmICggZGlzcGxheSA9PT0gIm5vbmUiIHx8ICFkaXNwbGF5ICkgewoK
CQkJLy8gVXNlIHRoZSBhbHJlYWR5LWNyZWF0ZWQgaWZyYW1lIGlmIHBvc3NpYmxlCgkJCWlmcmFt
ZSA9IChpZnJhbWUgfHwgalF1ZXJ5KCAiPGlmcmFtZSBmcmFtZWJvcmRlcj0nMCcgd2lkdGg9JzAn
IGhlaWdodD0nMCcvPiIgKSkuYXBwZW5kVG8oIGRvYy5kb2N1bWVudEVsZW1lbnQgKTsKCgkJCS8v
IEFsd2F5cyB3cml0ZSBhIG5ldyBIVE1MIHNrZWxldG9uIHNvIFdlYmtpdCBhbmQgRmlyZWZveCBk
b24ndCBjaG9rZSBvbiByZXVzZQoJCQlkb2MgPSAoIGlmcmFtZVsgMCBdLmNvbnRlbnRXaW5kb3cg
fHwgaWZyYW1lWyAwIF0uY29udGVudERvY3VtZW50ICkuZG9jdW1lbnQ7CgoJCQkvLyBTdXBwb3J0
OiBJRQoJCQlkb2Mud3JpdGUoKTsKCQkJZG9jLmNsb3NlKCk7CgoJCQlkaXNwbGF5ID0gYWN0dWFs
RGlzcGxheSggbm9kZU5hbWUsIGRvYyApOwoJCQlpZnJhbWUuZGV0YWNoKCk7CgkJfQoKCQkvLyBT
dG9yZSB0aGUgY29ycmVjdCBkZWZhdWx0IGRpc3BsYXkKCQllbGVtZGlzcGxheVsgbm9kZU5hbWUg
XSA9IGRpc3BsYXk7Cgl9CgoJcmV0dXJuIGRpc3BsYXk7Cn0KCgooZnVuY3Rpb24oKSB7Cgl2YXIg
c2hyaW5rV3JhcEJsb2Nrc1ZhbDsKCglzdXBwb3J0LnNocmlua1dyYXBCbG9ja3MgPSBmdW5jdGlv
bigpIHsKCQlpZiAoIHNocmlua1dyYXBCbG9ja3NWYWwgIT0gbnVsbCApIHsKCQkJcmV0dXJuIHNo
cmlua1dyYXBCbG9ja3NWYWw7CgkJfQoKCQkvLyBXaWxsIGJlIGNoYW5nZWQgbGF0ZXIgaWYgbmVl
ZGVkLgoJCXNocmlua1dyYXBCbG9ja3NWYWwgPSBmYWxzZTsKCgkJLy8gTWluaWZpZWQ6IHZhciBi
LGMsZAoJCXZhciBkaXYsIGJvZHksIGNvbnRhaW5lcjsKCgkJYm9keSA9IGRvY3VtZW50LmdldEVs
ZW1lbnRzQnlUYWdOYW1lKCAiYm9keSIgKVsgMCBdOwoJCWlmICggIWJvZHkgfHwgIWJvZHkuc3R5
bGUgKSB7CgkJCS8vIFRlc3QgZmlyZWQgdG9vIGVhcmx5IG9yIGluIGFuIHVuc3VwcG9ydGVkIGVu
dmlyb25tZW50LCBleGl0LgoJCQlyZXR1cm47CgkJfQoKCQkvLyBTZXR1cAoJCWRpdiA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoICJkaXYiICk7CgkJY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCggImRpdiIgKTsKCQljb250YWluZXIuc3R5bGUuY3NzVGV4dCA9ICJwb3NpdGlvbjph
YnNvbHV0ZTtib3JkZXI6MDt3aWR0aDowO2hlaWdodDowO3RvcDowO2xlZnQ6LTk5OTlweCI7CgkJ
Ym9keS5hcHBlbmRDaGlsZCggY29udGFpbmVyICkuYXBwZW5kQ2hpbGQoIGRpdiApOwoKCQkvLyBT
dXBwb3J0OiBJRTYKCQkvLyBDaGVjayBpZiBlbGVtZW50cyB3aXRoIGxheW91dCBzaHJpbmstd3Jh
cCB0aGVpciBjaGlsZHJlbgoJCWlmICggdHlwZW9mIGRpdi5zdHlsZS56b29tICE9PSBzdHJ1bmRl
ZmluZWQgKSB7CgkJCS8vIFJlc2V0IENTUzogYm94LXNpemluZzsgZGlzcGxheTsgbWFyZ2luOyBi
b3JkZXIKCQkJZGl2LnN0eWxlLmNzc1RleHQgPQoJCQkJLy8gU3VwcG9ydDogRmlyZWZveDwyOSwg
QW5kcm9pZCAyLjMKCQkJCS8vIFZlbmRvci1wcmVmaXggYm94LXNpemluZwoJCQkJIi13ZWJraXQt
Ym94LXNpemluZzpjb250ZW50LWJveDstbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7IiArCgkJ
CQkiYm94LXNpemluZzpjb250ZW50LWJveDtkaXNwbGF5OmJsb2NrO21hcmdpbjowO2JvcmRlcjow
OyIgKwoJCQkJInBhZGRpbmc6MXB4O3dpZHRoOjFweDt6b29tOjEiOwoJCQlkaXYuYXBwZW5kQ2hp
bGQoIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICJkaXYiICkgKS5zdHlsZS53aWR0aCA9ICI1cHgi
OwoJCQlzaHJpbmtXcmFwQmxvY2tzVmFsID0gZGl2Lm9mZnNldFdpZHRoICE9PSAzOwoJCX0KCgkJ
Ym9keS5yZW1vdmVDaGlsZCggY29udGFpbmVyICk7CgoJCXJldHVybiBzaHJpbmtXcmFwQmxvY2tz
VmFsOwoJfTsKCn0pKCk7CnZhciBybWFyZ2luID0gKC9ebWFyZ2luLyk7Cgp2YXIgcm51bW5vbnB4
ID0gbmV3IFJlZ0V4cCggIl4oIiArIHBudW0gKyAiKSg/IXB4KVthLXolXSskIiwgImkiICk7CgoK
CnZhciBnZXRTdHlsZXMsIGN1ckNTUywKCXJwb3NpdGlvbiA9IC9eKHRvcHxyaWdodHxib3R0b218
bGVmdCkkLzsKCmlmICggd2luZG93LmdldENvbXB1dGVkU3R5bGUgKSB7CglnZXRTdHlsZXMgPSBm
dW5jdGlvbiggZWxlbSApIHsKCQkvLyBTdXBwb3J0OiBJRTw9MTErLCBGaXJlZm94PD0zMCsgKCMx
NTA5OCwgIzE0MTUwKQoJCS8vIElFIHRocm93cyBvbiBlbGVtZW50cyBjcmVhdGVkIGluIHBvcHVw
cwoJCS8vIEZGIG1lYW53aGlsZSB0aHJvd3Mgb24gZnJhbWUgZWxlbWVudHMgdGhyb3VnaCAiZGVm
YXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSIKCQlpZiAoIGVsZW0ub3duZXJEb2N1bWVudC5kZWZh
dWx0Vmlldy5vcGVuZXIgKSB7CgkJCXJldHVybiBlbGVtLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZp
ZXcuZ2V0Q29tcHV0ZWRTdHlsZSggZWxlbSwgbnVsbCApOwoJCX0KCgkJcmV0dXJuIHdpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKCBlbGVtLCBudWxsICk7Cgl9OwoKCWN1ckNTUyA9IGZ1bmN0aW9uKCBl
bGVtLCBuYW1lLCBjb21wdXRlZCApIHsKCQl2YXIgd2lkdGgsIG1pbldpZHRoLCBtYXhXaWR0aCwg
cmV0LAoJCQlzdHlsZSA9IGVsZW0uc3R5bGU7CgoJCWNvbXB1dGVkID0gY29tcHV0ZWQgfHwgZ2V0
U3R5bGVzKCBlbGVtICk7CgoJCS8vIGdldFByb3BlcnR5VmFsdWUgaXMgb25seSBuZWVkZWQgZm9y
IC5jc3MoJ2ZpbHRlcicpIGluIElFOSwgc2VlICMxMjUzNwoJCXJldCA9IGNvbXB1dGVkID8gY29t
cHV0ZWQuZ2V0UHJvcGVydHlWYWx1ZSggbmFtZSApIHx8IGNvbXB1dGVkWyBuYW1lIF0gOiB1bmRl
ZmluZWQ7CgoJCWlmICggY29tcHV0ZWQgKSB7CgoJCQlpZiAoIHJldCA9PT0gIiIgJiYgIWpRdWVy
eS5jb250YWlucyggZWxlbS5vd25lckRvY3VtZW50LCBlbGVtICkgKSB7CgkJCQlyZXQgPSBqUXVl
cnkuc3R5bGUoIGVsZW0sIG5hbWUgKTsKCQkJfQoKCQkJLy8gQSB0cmlidXRlIHRvIHRoZSAiYXdl
c29tZSBoYWNrIGJ5IERlYW4gRWR3YXJkcyIKCQkJLy8gQ2hyb21lIDwgMTcgYW5kIFNhZmFyaSA1
LjAgdXNlcyAiY29tcHV0ZWQgdmFsdWUiIGluc3RlYWQgb2YgInVzZWQgdmFsdWUiIGZvciBtYXJn
aW4tcmlnaHQKCQkJLy8gU2FmYXJpIDUuMS43IChhdCBsZWFzdCkgcmV0dXJucyBwZXJjZW50YWdl
IGZvciBhIGxhcmdlciBzZXQgb2YgdmFsdWVzLCBidXQgd2lkdGggc2VlbXMgdG8gYmUgcmVsaWFi
bHkgcGl4ZWxzCgkJCS8vIHRoaXMgaXMgYWdhaW5zdCB0aGUgQ1NTT00gZHJhZnQgc3BlYzogaHR0
cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20vI3Jlc29sdmVkLXZhbHVlcwoJCQlpZiAoIHJudW1u
b25weC50ZXN0KCByZXQgKSAmJiBybWFyZ2luLnRlc3QoIG5hbWUgKSApIHsKCgkJCQkvLyBSZW1l
bWJlciB0aGUgb3JpZ2luYWwgdmFsdWVzCgkJCQl3aWR0aCA9IHN0eWxlLndpZHRoOwoJCQkJbWlu
V2lkdGggPSBzdHlsZS5taW5XaWR0aDsKCQkJCW1heFdpZHRoID0gc3R5bGUubWF4V2lkdGg7CgoJ
CQkJLy8gUHV0IGluIHRoZSBuZXcgdmFsdWVzIHRvIGdldCBhIGNvbXB1dGVkIHZhbHVlIG91dAoJ
CQkJc3R5bGUubWluV2lkdGggPSBzdHlsZS5tYXhXaWR0aCA9IHN0eWxlLndpZHRoID0gcmV0OwoJ
CQkJcmV0ID0gY29tcHV0ZWQud2lkdGg7CgoJCQkJLy8gUmV2ZXJ0IHRoZSBjaGFuZ2VkIHZhbHVl
cwoJCQkJc3R5bGUud2lkdGggPSB3aWR0aDsKCQkJCXN0eWxlLm1pbldpZHRoID0gbWluV2lkdGg7
CgkJCQlzdHlsZS5tYXhXaWR0aCA9IG1heFdpZHRoOwoJCQl9CgkJfQoKCQkvLyBTdXBwb3J0OiBJ
RQoJCS8vIElFIHJldHVybnMgekluZGV4IHZhbHVlIGFzIGFuIGludGVnZXIuCgkJcmV0dXJuIHJl
dCA9PT0gdW5kZWZpbmVkID8KCQkJcmV0IDoKCQkJcmV0ICsgIiI7Cgl9Owp9IGVsc2UgaWYgKCBk
b2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY3VycmVudFN0eWxlICkgewoJZ2V0U3R5bGVzID0gZnVu
Y3Rpb24oIGVsZW0gKSB7CgkJcmV0dXJuIGVsZW0uY3VycmVudFN0eWxlOwoJfTsKCgljdXJDU1Mg
PSBmdW5jdGlvbiggZWxlbSwgbmFtZSwgY29tcHV0ZWQgKSB7CgkJdmFyIGxlZnQsIHJzLCByc0xl
ZnQsIHJldCwKCQkJc3R5bGUgPSBlbGVtLnN0eWxlOwoKCQljb21wdXRlZCA9IGNvbXB1dGVkIHx8
IGdldFN0eWxlcyggZWxlbSApOwoJCXJldCA9IGNvbXB1dGVkID8gY29tcHV0ZWRbIG5hbWUgXSA6
IHVuZGVmaW5lZDsKCgkJLy8gQXZvaWQgc2V0dGluZyByZXQgdG8gZW1wdHkgc3RyaW5nIGhlcmUK
CQkvLyBzbyB3ZSBkb24ndCBkZWZhdWx0IHRvIGF1dG8KCQlpZiAoIHJldCA9PSBudWxsICYmIHN0
eWxlICYmIHN0eWxlWyBuYW1lIF0gKSB7CgkJCXJldCA9IHN0eWxlWyBuYW1lIF07CgkJfQoKCQkv
LyBGcm9tIHRoZSBhd2Vzb21lIGhhY2sgYnkgRGVhbiBFZHdhcmRzCgkJLy8gaHR0cDovL2VyaWsu
ZWFlLm5ldC9hcmNoaXZlcy8yMDA3LzA3LzI3LzE4LjU0LjE1LyNjb21tZW50LTEwMjI5MQoKCQkv
LyBJZiB3ZSdyZSBub3QgZGVhbGluZyB3aXRoIGEgcmVndWxhciBwaXhlbCBudW1iZXIKCQkvLyBi
dXQgYSBudW1iZXIgdGhhdCBoYXMgYSB3ZWlyZCBlbmRpbmcsIHdlIG5lZWQgdG8gY29udmVydCBp
dCB0byBwaXhlbHMKCQkvLyBidXQgbm90IHBvc2l0aW9uIGNzcyBhdHRyaWJ1dGVzLCBhcyB0aG9z
ZSBhcmUgcHJvcG9ydGlvbmFsIHRvIHRoZSBwYXJlbnQgZWxlbWVudCBpbnN0ZWFkCgkJLy8gYW5k
IHdlIGNhbid0IG1lYXN1cmUgdGhlIHBhcmVudCBpbnN0ZWFkIGJlY2F1c2UgaXQgbWlnaHQgdHJp
Z2dlciBhICJzdGFja2luZyBkb2xscyIgcHJvYmxlbQoJCWlmICggcm51bW5vbnB4LnRlc3QoIHJl
dCApICYmICFycG9zaXRpb24udGVzdCggbmFtZSApICkgewoKCQkJLy8gUmVtZW1iZXIgdGhlIG9y
aWdpbmFsIHZhbHVlcwoJCQlsZWZ0ID0gc3R5bGUubGVmdDsKCQkJcnMgPSBlbGVtLnJ1bnRpbWVT
dHlsZTsKCQkJcnNMZWZ0ID0gcnMgJiYgcnMubGVmdDsKCgkJCS8vIFB1dCBpbiB0aGUgbmV3IHZh
bHVlcyB0byBnZXQgYSBjb21wdXRlZCB2YWx1ZSBvdXQKCQkJaWYgKCByc0xlZnQgKSB7CgkJCQly
cy5sZWZ0ID0gZWxlbS5jdXJyZW50U3R5bGUubGVmdDsKCQkJfQoJCQlzdHlsZS5sZWZ0ID0gbmFt
ZSA9PT0gImZvbnRTaXplIiA/ICIxZW0iIDogcmV0OwoJCQlyZXQgPSBzdHlsZS5waXhlbExlZnQg
KyAicHgiOwoKCQkJLy8gUmV2ZXJ0IHRoZSBjaGFuZ2VkIHZhbHVlcwoJCQlzdHlsZS5sZWZ0ID0g
bGVmdDsKCQkJaWYgKCByc0xlZnQgKSB7CgkJCQlycy5sZWZ0ID0gcnNMZWZ0OwoJCQl9CgkJfQoK
CQkvLyBTdXBwb3J0OiBJRQoJCS8vIElFIHJldHVybnMgekluZGV4IHZhbHVlIGFzIGFuIGludGVn
ZXIuCgkJcmV0dXJuIHJldCA9PT0gdW5kZWZpbmVkID8KCQkJcmV0IDoKCQkJcmV0ICsgIiIgfHwg
ImF1dG8iOwoJfTsKfQoKCgoKZnVuY3Rpb24gYWRkR2V0SG9va0lmKCBjb25kaXRpb25GbiwgaG9v
a0ZuICkgewoJLy8gRGVmaW5lIHRoZSBob29rLCB3ZSdsbCBjaGVjayBvbiB0aGUgZmlyc3QgcnVu
IGlmIGl0J3MgcmVhbGx5IG5lZWRlZC4KCXJldHVybiB7CgkJZ2V0OiBmdW5jdGlvbigpIHsKCQkJ
dmFyIGNvbmRpdGlvbiA9IGNvbmRpdGlvbkZuKCk7CgoJCQlpZiAoIGNvbmRpdGlvbiA9PSBudWxs
ICkgewoJCQkJLy8gVGhlIHRlc3Qgd2FzIG5vdCByZWFkeSBhdCB0aGlzIHBvaW50OyBzY3JldyB0
aGUgaG9vayB0aGlzIHRpbWUKCQkJCS8vIGJ1dCBjaGVjayBhZ2FpbiB3aGVuIG5lZWRlZCBuZXh0
IHRpbWUuCgkJCQlyZXR1cm47CgkJCX0KCgkJCWlmICggY29uZGl0aW9uICkgewoJCQkJLy8gSG9v
ayBub3QgbmVlZGVkIChvciBpdCdzIG5vdCBwb3NzaWJsZSB0byB1c2UgaXQgZHVlIHRvIG1pc3Np
bmcgZGVwZW5kZW5jeSksCgkJCQkvLyByZW1vdmUgaXQuCgkJCQkvLyBTaW5jZSB0aGVyZSBhcmUg
bm8gb3RoZXIgaG9va3MgZm9yIG1hcmdpblJpZ2h0LCByZW1vdmUgdGhlIHdob2xlIG9iamVjdC4K
CQkJCWRlbGV0ZSB0aGlzLmdldDsKCQkJCXJldHVybjsKCQkJfQoKCQkJLy8gSG9vayBuZWVkZWQ7
IHJlZGVmaW5lIGl0IHNvIHRoYXQgdGhlIHN1cHBvcnQgdGVzdCBpcyBub3QgZXhlY3V0ZWQgYWdh
aW4uCgoJCQlyZXR1cm4gKHRoaXMuZ2V0ID0gaG9va0ZuKS5hcHBseSggdGhpcywgYXJndW1lbnRz
ICk7CgkJfQoJfTsKfQoKCihmdW5jdGlvbigpIHsKCS8vIE1pbmlmaWVkOiB2YXIgYixjLGQsZSxm
LGcsIGgsaQoJdmFyIGRpdiwgc3R5bGUsIGEsIHBpeGVsUG9zaXRpb25WYWwsIGJveFNpemluZ1Jl
bGlhYmxlVmFsLAoJCXJlbGlhYmxlSGlkZGVuT2Zmc2V0c1ZhbCwgcmVsaWFibGVNYXJnaW5SaWdo
dFZhbDsKCgkvLyBTZXR1cAoJZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggImRpdiIgKTsK
CWRpdi5pbm5lckhUTUwgPSAiICA8bGluay8+PHRhYmxlPjwvdGFibGU+PGEgaHJlZj0nL2EnPmE8
L2E+PGlucHV0IHR5cGU9J2NoZWNrYm94Jy8+IjsKCWEgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoICJhIiApWyAwIF07CglzdHlsZSA9IGEgJiYgYS5zdHlsZTsKCgkvLyBGaW5pc2ggZWFybHkg
aW4gbGltaXRlZCAobm9uLWJyb3dzZXIpIGVudmlyb25tZW50cwoJaWYgKCAhc3R5bGUgKSB7CgkJ
cmV0dXJuOwoJfQoKCXN0eWxlLmNzc1RleHQgPSAiZmxvYXQ6bGVmdDtvcGFjaXR5Oi41IjsKCgkv
LyBTdXBwb3J0OiBJRTw5CgkvLyBNYWtlIHN1cmUgdGhhdCBlbGVtZW50IG9wYWNpdHkgZXhpc3Rz
IChhcyBvcHBvc2VkIHRvIGZpbHRlcikKCXN1cHBvcnQub3BhY2l0eSA9IHN0eWxlLm9wYWNpdHkg
PT09ICIwLjUiOwoKCS8vIFZlcmlmeSBzdHlsZSBmbG9hdCBleGlzdGVuY2UKCS8vIChJRSB1c2Vz
IHN0eWxlRmxvYXQgaW5zdGVhZCBvZiBjc3NGbG9hdCkKCXN1cHBvcnQuY3NzRmxvYXQgPSAhIXN0
eWxlLmNzc0Zsb2F0OwoKCWRpdi5zdHlsZS5iYWNrZ3JvdW5kQ2xpcCA9ICJjb250ZW50LWJveCI7
CglkaXYuY2xvbmVOb2RlKCB0cnVlICkuc3R5bGUuYmFja2dyb3VuZENsaXAgPSAiIjsKCXN1cHBv
cnQuY2xlYXJDbG9uZVN0eWxlID0gZGl2LnN0eWxlLmJhY2tncm91bmRDbGlwID09PSAiY29udGVu
dC1ib3giOwoKCS8vIFN1cHBvcnQ6IEZpcmVmb3g8MjksIEFuZHJvaWQgMi4zCgkvLyBWZW5kb3It
cHJlZml4IGJveC1zaXppbmcKCXN1cHBvcnQuYm94U2l6aW5nID0gc3R5bGUuYm94U2l6aW5nID09
PSAiIiB8fCBzdHlsZS5Nb3pCb3hTaXppbmcgPT09ICIiIHx8CgkJc3R5bGUuV2Via2l0Qm94U2l6
aW5nID09PSAiIjsKCglqUXVlcnkuZXh0ZW5kKHN1cHBvcnQsIHsKCQlyZWxpYWJsZUhpZGRlbk9m
ZnNldHM6IGZ1bmN0aW9uKCkgewoJCQlpZiAoIHJlbGlhYmxlSGlkZGVuT2Zmc2V0c1ZhbCA9PSBu
dWxsICkgewoJCQkJY29tcHV0ZVN0eWxlVGVzdHMoKTsKCQkJfQoJCQlyZXR1cm4gcmVsaWFibGVI
aWRkZW5PZmZzZXRzVmFsOwoJCX0sCgoJCWJveFNpemluZ1JlbGlhYmxlOiBmdW5jdGlvbigpIHsK
CQkJaWYgKCBib3hTaXppbmdSZWxpYWJsZVZhbCA9PSBudWxsICkgewoJCQkJY29tcHV0ZVN0eWxl
VGVzdHMoKTsKCQkJfQoJCQlyZXR1cm4gYm94U2l6aW5nUmVsaWFibGVWYWw7CgkJfSwKCgkJcGl4
ZWxQb3NpdGlvbjogZnVuY3Rpb24oKSB7CgkJCWlmICggcGl4ZWxQb3NpdGlvblZhbCA9PSBudWxs
ICkgewoJCQkJY29tcHV0ZVN0eWxlVGVzdHMoKTsKCQkJfQoJCQlyZXR1cm4gcGl4ZWxQb3NpdGlv
blZhbDsKCQl9LAoKCQkvLyBTdXBwb3J0OiBBbmRyb2lkIDIuMwoJCXJlbGlhYmxlTWFyZ2luUmln
aHQ6IGZ1bmN0aW9uKCkgewoJCQlpZiAoIHJlbGlhYmxlTWFyZ2luUmlnaHRWYWwgPT0gbnVsbCAp
IHsKCQkJCWNvbXB1dGVTdHlsZVRlc3RzKCk7CgkJCX0KCQkJcmV0dXJuIHJlbGlhYmxlTWFyZ2lu
UmlnaHRWYWw7CgkJfQoJfSk7CgoJZnVuY3Rpb24gY29tcHV0ZVN0eWxlVGVzdHMoKSB7CgkJLy8g
TWluaWZpZWQ6IHZhciBiLGMsZCxqCgkJdmFyIGRpdiwgYm9keSwgY29udGFpbmVyLCBjb250ZW50
czsKCgkJYm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCAiYm9keSIgKVsgMCBd
OwoJCWlmICggIWJvZHkgfHwgIWJvZHkuc3R5bGUgKSB7CgkJCS8vIFRlc3QgZmlyZWQgdG9vIGVh
cmx5IG9yIGluIGFuIHVuc3VwcG9ydGVkIGVudmlyb25tZW50LCBleGl0LgoJCQlyZXR1cm47CgkJ
fQoKCQkvLyBTZXR1cAoJCWRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICJkaXYiICk7CgkJ
Y29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggImRpdiIgKTsKCQljb250YWluZXIu
c3R5bGUuY3NzVGV4dCA9ICJwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXI6MDt3aWR0aDowO2hlaWdo
dDowO3RvcDowO2xlZnQ6LTk5OTlweCI7CgkJYm9keS5hcHBlbmRDaGlsZCggY29udGFpbmVyICku
YXBwZW5kQ2hpbGQoIGRpdiApOwoKCQlkaXYuc3R5bGUuY3NzVGV4dCA9CgkJCS8vIFN1cHBvcnQ6
IEZpcmVmb3g8MjksIEFuZHJvaWQgMi4zCgkJCS8vIFZlbmRvci1wcmVmaXggYm94LXNpemluZwoJ
CQkiLXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1i
b3g7IiArCgkJCSJib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpibG9jazttYXJnaW4tdG9w
OjElO3RvcDoxJTsiICsKCQkJImJvcmRlcjoxcHg7cGFkZGluZzoxcHg7d2lkdGg6NHB4O3Bvc2l0
aW9uOmFic29sdXRlIjsKCgkJLy8gU3VwcG9ydDogSUU8OQoJCS8vIEFzc3VtZSByZWFzb25hYmxl
IHZhbHVlcyBpbiB0aGUgYWJzZW5jZSBvZiBnZXRDb21wdXRlZFN0eWxlCgkJcGl4ZWxQb3NpdGlv
blZhbCA9IGJveFNpemluZ1JlbGlhYmxlVmFsID0gZmFsc2U7CgkJcmVsaWFibGVNYXJnaW5SaWdo
dFZhbCA9IHRydWU7CgoJCS8vIENoZWNrIGZvciBnZXRDb21wdXRlZFN0eWxlIHNvIHRoYXQgdGhp
cyBjb2RlIGlzIG5vdCBydW4gaW4gSUU8OS4KCQlpZiAoIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxl
ICkgewoJCQlwaXhlbFBvc2l0aW9uVmFsID0gKCB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSggZGl2
LCBudWxsICkgfHwge30gKS50b3AgIT09ICIxJSI7CgkJCWJveFNpemluZ1JlbGlhYmxlVmFsID0K
CQkJCSggd2luZG93LmdldENvbXB1dGVkU3R5bGUoIGRpdiwgbnVsbCApIHx8IHsgd2lkdGg6ICI0
cHgiIH0gKS53aWR0aCA9PT0gIjRweCI7CgoJCQkvLyBTdXBwb3J0OiBBbmRyb2lkIDIuMwoJCQkv
LyBEaXYgd2l0aCBleHBsaWNpdCB3aWR0aCBhbmQgbm8gbWFyZ2luLXJpZ2h0IGluY29ycmVjdGx5
CgkJCS8vIGdldHMgY29tcHV0ZWQgbWFyZ2luLXJpZ2h0IGJhc2VkIG9uIHdpZHRoIG9mIGNvbnRh
aW5lciAoIzMzMzMpCgkJCS8vIFdlYktpdCBCdWcgMTMzNDMgLSBnZXRDb21wdXRlZFN0eWxlIHJl
dHVybnMgd3JvbmcgdmFsdWUgZm9yIG1hcmdpbi1yaWdodAoJCQljb250ZW50cyA9IGRpdi5hcHBl
bmRDaGlsZCggZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggImRpdiIgKSApOwoKCQkJLy8gUmVzZXQg
Q1NTOiBib3gtc2l6aW5nOyBkaXNwbGF5OyBtYXJnaW47IGJvcmRlcjsgcGFkZGluZwoJCQljb250
ZW50cy5zdHlsZS5jc3NUZXh0ID0gZGl2LnN0eWxlLmNzc1RleHQgPQoJCQkJLy8gU3VwcG9ydDog
RmlyZWZveDwyOSwgQW5kcm9pZCAyLjMKCQkJCS8vIFZlbmRvci1wcmVmaXggYm94LXNpemluZwoJ
CQkJIi13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDstbW96LWJveC1zaXppbmc6Y29udGVu
dC1ib3g7IiArCgkJCQkiYm94LXNpemluZzpjb250ZW50LWJveDtkaXNwbGF5OmJsb2NrO21hcmdp
bjowO2JvcmRlcjowO3BhZGRpbmc6MCI7CgkJCWNvbnRlbnRzLnN0eWxlLm1hcmdpblJpZ2h0ID0g
Y29udGVudHMuc3R5bGUud2lkdGggPSAiMCI7CgkJCWRpdi5zdHlsZS53aWR0aCA9ICIxcHgiOwoK
CQkJcmVsaWFibGVNYXJnaW5SaWdodFZhbCA9CgkJCQkhcGFyc2VGbG9hdCggKCB3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZSggY29udGVudHMsIG51bGwgKSB8fCB7fSApLm1hcmdpblJpZ2h0ICk7CgoJ
CQlkaXYucmVtb3ZlQ2hpbGQoIGNvbnRlbnRzICk7CgkJfQoKCQkvLyBTdXBwb3J0OiBJRTgKCQkv
LyBDaGVjayBpZiB0YWJsZSBjZWxscyBzdGlsbCBoYXZlIG9mZnNldFdpZHRoL0hlaWdodCB3aGVu
IHRoZXkgYXJlIHNldAoJCS8vIHRvIGRpc3BsYXk6bm9uZSBhbmQgdGhlcmUgYXJlIHN0aWxsIG90
aGVyIHZpc2libGUgdGFibGUgY2VsbHMgaW4gYQoJCS8vIHRhYmxlIHJvdzsgaWYgc28sIG9mZnNl
dFdpZHRoL0hlaWdodCBhcmUgbm90IHJlbGlhYmxlIGZvciB1c2Ugd2hlbgoJCS8vIGRldGVybWlu
aW5nIGlmIGFuIGVsZW1lbnQgaGFzIGJlZW4gaGlkZGVuIGRpcmVjdGx5IHVzaW5nCgkJLy8gZGlz
cGxheTpub25lIChpdCBpcyBzdGlsbCBzYWZlIHRvIHVzZSBvZmZzZXRzIGlmIGEgcGFyZW50IGVs
ZW1lbnQgaXMKCQkvLyBoaWRkZW47IGRvbiBzYWZldHkgZ29nZ2xlcyBhbmQgc2VlIGJ1ZyAjNDUx
MiBmb3IgbW9yZSBpbmZvcm1hdGlvbikuCgkJZGl2LmlubmVySFRNTCA9ICI8dGFibGU+PHRyPjx0
ZD48L3RkPjx0ZD50PC90ZD48L3RyPjwvdGFibGU+IjsKCQljb250ZW50cyA9IGRpdi5nZXRFbGVt
ZW50c0J5VGFnTmFtZSggInRkIiApOwoJCWNvbnRlbnRzWyAwIF0uc3R5bGUuY3NzVGV4dCA9ICJt
YXJnaW46MDtib3JkZXI6MDtwYWRkaW5nOjA7ZGlzcGxheTpub25lIjsKCQlyZWxpYWJsZUhpZGRl
bk9mZnNldHNWYWwgPSBjb250ZW50c1sgMCBdLm9mZnNldEhlaWdodCA9PT0gMDsKCQlpZiAoIHJl
bGlhYmxlSGlkZGVuT2Zmc2V0c1ZhbCApIHsKCQkJY29udGVudHNbIDAgXS5zdHlsZS5kaXNwbGF5
ID0gIiI7CgkJCWNvbnRlbnRzWyAxIF0uc3R5bGUuZGlzcGxheSA9ICJub25lIjsKCQkJcmVsaWFi
bGVIaWRkZW5PZmZzZXRzVmFsID0gY29udGVudHNbIDAgXS5vZmZzZXRIZWlnaHQgPT09IDA7CgkJ
fQoKCQlib2R5LnJlbW92ZUNoaWxkKCBjb250YWluZXIgKTsKCX0KCn0pKCk7CgoKLy8gQSBtZXRo
b2QgZm9yIHF1aWNrbHkgc3dhcHBpbmcgaW4vb3V0IENTUyBwcm9wZXJ0aWVzIHRvIGdldCBjb3Jy
ZWN0IGNhbGN1bGF0aW9ucy4KalF1ZXJ5LnN3YXAgPSBmdW5jdGlvbiggZWxlbSwgb3B0aW9ucywg
Y2FsbGJhY2ssIGFyZ3MgKSB7Cgl2YXIgcmV0LCBuYW1lLAoJCW9sZCA9IHt9OwoKCS8vIFJlbWVt
YmVyIHRoZSBvbGQgdmFsdWVzLCBhbmQgaW5zZXJ0IHRoZSBuZXcgb25lcwoJZm9yICggbmFtZSBp
biBvcHRpb25zICkgewoJCW9sZFsgbmFtZSBdID0gZWxlbS5zdHlsZVsgbmFtZSBdOwoJCWVsZW0u
c3R5bGVbIG5hbWUgXSA9IG9wdGlvbnNbIG5hbWUgXTsKCX0KCglyZXQgPSBjYWxsYmFjay5hcHBs
eSggZWxlbSwgYXJncyB8fCBbXSApOwoKCS8vIFJldmVydCB0aGUgb2xkIHZhbHVlcwoJZm9yICgg
bmFtZSBpbiBvcHRpb25zICkgewoJCWVsZW0uc3R5bGVbIG5hbWUgXSA9IG9sZFsgbmFtZSBdOwoJ
fQoKCXJldHVybiByZXQ7Cn07CgoKdmFyCgkJcmFscGhhID0gL2FscGhhXChbXildKlwpL2ksCgly
b3BhY2l0eSA9IC9vcGFjaXR5XHMqPVxzKihbXildKikvLAoKCS8vIHN3YXBwYWJsZSBpZiBkaXNw
bGF5IGlzIG5vbmUgb3Igc3RhcnRzIHdpdGggdGFibGUgZXhjZXB0ICJ0YWJsZSIsICJ0YWJsZS1j
ZWxsIiwgb3IgInRhYmxlLWNhcHRpb24iCgkvLyBzZWUgaGVyZSBmb3IgZGlzcGxheSB2YWx1ZXM6
IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvQ1NTL2Rpc3BsYXkKCXJk
aXNwbGF5c3dhcCA9IC9eKG5vbmV8dGFibGUoPyEtY1tlYV0pLispLywKCXJudW1zcGxpdCA9IG5l
dyBSZWdFeHAoICJeKCIgKyBwbnVtICsgIikoLiopJCIsICJpIiApLAoJcnJlbE51bSA9IG5ldyBS
ZWdFeHAoICJeKFsrLV0pPSgiICsgcG51bSArICIpIiwgImkiICksCgoJY3NzU2hvdyA9IHsgcG9z
aXRpb246ICJhYnNvbHV0ZSIsIHZpc2liaWxpdHk6ICJoaWRkZW4iLCBkaXNwbGF5OiAiYmxvY2si
IH0sCgljc3NOb3JtYWxUcmFuc2Zvcm0gPSB7CgkJbGV0dGVyU3BhY2luZzogIjAiLAoJCWZvbnRX
ZWlnaHQ6ICI0MDAiCgl9LAoKCWNzc1ByZWZpeGVzID0gWyAiV2Via2l0IiwgIk8iLCAiTW96Iiwg
Im1zIiBdOwoKCi8vIHJldHVybiBhIGNzcyBwcm9wZXJ0eSBtYXBwZWQgdG8gYSBwb3RlbnRpYWxs
eSB2ZW5kb3IgcHJlZml4ZWQgcHJvcGVydHkKZnVuY3Rpb24gdmVuZG9yUHJvcE5hbWUoIHN0eWxl
LCBuYW1lICkgewoKCS8vIHNob3J0Y3V0IGZvciBuYW1lcyB0aGF0IGFyZSBub3QgdmVuZG9yIHBy
ZWZpeGVkCglpZiAoIG5hbWUgaW4gc3R5bGUgKSB7CgkJcmV0dXJuIG5hbWU7Cgl9CgoJLy8gY2hl
Y2sgZm9yIHZlbmRvciBwcmVmaXhlZCBuYW1lcwoJdmFyIGNhcE5hbWUgPSBuYW1lLmNoYXJBdCgw
KS50b1VwcGVyQ2FzZSgpICsgbmFtZS5zbGljZSgxKSwKCQlvcmlnTmFtZSA9IG5hbWUsCgkJaSA9
IGNzc1ByZWZpeGVzLmxlbmd0aDsKCgl3aGlsZSAoIGktLSApIHsKCQluYW1lID0gY3NzUHJlZml4
ZXNbIGkgXSArIGNhcE5hbWU7CgkJaWYgKCBuYW1lIGluIHN0eWxlICkgewoJCQlyZXR1cm4gbmFt
ZTsKCQl9Cgl9CgoJcmV0dXJuIG9yaWdOYW1lOwp9CgpmdW5jdGlvbiBzaG93SGlkZSggZWxlbWVu
dHMsIHNob3cgKSB7Cgl2YXIgZGlzcGxheSwgZWxlbSwgaGlkZGVuLAoJCXZhbHVlcyA9IFtdLAoJ
CWluZGV4ID0gMCwKCQlsZW5ndGggPSBlbGVtZW50cy5sZW5ndGg7CgoJZm9yICggOyBpbmRleCA8
IGxlbmd0aDsgaW5kZXgrKyApIHsKCQllbGVtID0gZWxlbWVudHNbIGluZGV4IF07CgkJaWYgKCAh
ZWxlbS5zdHlsZSApIHsKCQkJY29udGludWU7CgkJfQoKCQl2YWx1ZXNbIGluZGV4IF0gPSBqUXVl
cnkuX2RhdGEoIGVsZW0sICJvbGRkaXNwbGF5IiApOwoJCWRpc3BsYXkgPSBlbGVtLnN0eWxlLmRp
c3BsYXk7CgkJaWYgKCBzaG93ICkgewoJCQkvLyBSZXNldCB0aGUgaW5saW5lIGRpc3BsYXkgb2Yg
dGhpcyBlbGVtZW50IHRvIGxlYXJuIGlmIGl0IGlzCgkJCS8vIGJlaW5nIGhpZGRlbiBieSBjYXNj
YWRlZCBydWxlcyBvciBub3QKCQkJaWYgKCAhdmFsdWVzWyBpbmRleCBdICYmIGRpc3BsYXkgPT09
ICJub25lIiApIHsKCQkJCWVsZW0uc3R5bGUuZGlzcGxheSA9ICIiOwoJCQl9CgoJCQkvLyBTZXQg
ZWxlbWVudHMgd2hpY2ggaGF2ZSBiZWVuIG92ZXJyaWRkZW4gd2l0aCBkaXNwbGF5OiBub25lCgkJ
CS8vIGluIGEgc3R5bGVzaGVldCB0byB3aGF0ZXZlciB0aGUgZGVmYXVsdCBicm93c2VyIHN0eWxl
IGlzCgkJCS8vIGZvciBzdWNoIGFuIGVsZW1lbnQKCQkJaWYgKCBlbGVtLnN0eWxlLmRpc3BsYXkg
PT09ICIiICYmIGlzSGlkZGVuKCBlbGVtICkgKSB7CgkJCQl2YWx1ZXNbIGluZGV4IF0gPSBqUXVl
cnkuX2RhdGEoIGVsZW0sICJvbGRkaXNwbGF5IiwgZGVmYXVsdERpc3BsYXkoZWxlbS5ub2RlTmFt
ZSkgKTsKCQkJfQoJCX0gZWxzZSB7CgkJCWhpZGRlbiA9IGlzSGlkZGVuKCBlbGVtICk7CgoJCQlp
ZiAoIGRpc3BsYXkgJiYgZGlzcGxheSAhPT0gIm5vbmUiIHx8ICFoaWRkZW4gKSB7CgkJCQlqUXVl
cnkuX2RhdGEoIGVsZW0sICJvbGRkaXNwbGF5IiwgaGlkZGVuID8gZGlzcGxheSA6IGpRdWVyeS5j
c3MoIGVsZW0sICJkaXNwbGF5IiApICk7CgkJCX0KCQl9Cgl9CgoJLy8gU2V0IHRoZSBkaXNwbGF5
IG9mIG1vc3Qgb2YgdGhlIGVsZW1lbnRzIGluIGEgc2Vjb25kIGxvb3AKCS8vIHRvIGF2b2lkIHRo
ZSBjb25zdGFudCByZWZsb3cKCWZvciAoIGluZGV4ID0gMDsgaW5kZXggPCBsZW5ndGg7IGluZGV4
KysgKSB7CgkJZWxlbSA9IGVsZW1lbnRzWyBpbmRleCBdOwoJCWlmICggIWVsZW0uc3R5bGUgKSB7
CgkJCWNvbnRpbnVlOwoJCX0KCQlpZiAoICFzaG93IHx8IGVsZW0uc3R5bGUuZGlzcGxheSA9PT0g
Im5vbmUiIHx8IGVsZW0uc3R5bGUuZGlzcGxheSA9PT0gIiIgKSB7CgkJCWVsZW0uc3R5bGUuZGlz
cGxheSA9IHNob3cgPyB2YWx1ZXNbIGluZGV4IF0gfHwgIiIgOiAibm9uZSI7CgkJfQoJfQoKCXJl
dHVybiBlbGVtZW50czsKfQoKZnVuY3Rpb24gc2V0UG9zaXRpdmVOdW1iZXIoIGVsZW0sIHZhbHVl
LCBzdWJ0cmFjdCApIHsKCXZhciBtYXRjaGVzID0gcm51bXNwbGl0LmV4ZWMoIHZhbHVlICk7Cgly
ZXR1cm4gbWF0Y2hlcyA/CgkJLy8gR3VhcmQgYWdhaW5zdCB1bmRlZmluZWQgInN1YnRyYWN0Iiwg
ZS5nLiwgd2hlbiB1c2VkIGFzIGluIGNzc0hvb2tzCgkJTWF0aC5tYXgoIDAsIG1hdGNoZXNbIDEg
XSAtICggc3VidHJhY3QgfHwgMCApICkgKyAoIG1hdGNoZXNbIDIgXSB8fCAicHgiICkgOgoJCXZh
bHVlOwp9CgpmdW5jdGlvbiBhdWdtZW50V2lkdGhPckhlaWdodCggZWxlbSwgbmFtZSwgZXh0cmEs
IGlzQm9yZGVyQm94LCBzdHlsZXMgKSB7Cgl2YXIgaSA9IGV4dHJhID09PSAoIGlzQm9yZGVyQm94
ID8gImJvcmRlciIgOiAiY29udGVudCIgKSA/CgkJLy8gSWYgd2UgYWxyZWFkeSBoYXZlIHRoZSBy
aWdodCBtZWFzdXJlbWVudCwgYXZvaWQgYXVnbWVudGF0aW9uCgkJNCA6CgkJLy8gT3RoZXJ3aXNl
IGluaXRpYWxpemUgZm9yIGhvcml6b250YWwgb3IgdmVydGljYWwgcHJvcGVydGllcwoJCW5hbWUg
PT09ICJ3aWR0aCIgPyAxIDogMCwKCgkJdmFsID0gMDsKCglmb3IgKCA7IGkgPCA0OyBpICs9IDIg
KSB7CgkJLy8gYm90aCBib3ggbW9kZWxzIGV4Y2x1ZGUgbWFyZ2luLCBzbyBhZGQgaXQgaWYgd2Ug
d2FudCBpdAoJCWlmICggZXh0cmEgPT09ICJtYXJnaW4iICkgewoJCQl2YWwgKz0galF1ZXJ5LmNz
cyggZWxlbSwgZXh0cmEgKyBjc3NFeHBhbmRbIGkgXSwgdHJ1ZSwgc3R5bGVzICk7CgkJfQoKCQlp
ZiAoIGlzQm9yZGVyQm94ICkgewoJCQkvLyBib3JkZXItYm94IGluY2x1ZGVzIHBhZGRpbmcsIHNv
IHJlbW92ZSBpdCBpZiB3ZSB3YW50IGNvbnRlbnQKCQkJaWYgKCBleHRyYSA9PT0gImNvbnRlbnQi
ICkgewoJCQkJdmFsIC09IGpRdWVyeS5jc3MoIGVsZW0sICJwYWRkaW5nIiArIGNzc0V4cGFuZFsg
aSBdLCB0cnVlLCBzdHlsZXMgKTsKCQkJfQoKCQkJLy8gYXQgdGhpcyBwb2ludCwgZXh0cmEgaXNu
J3QgYm9yZGVyIG5vciBtYXJnaW4sIHNvIHJlbW92ZSBib3JkZXIKCQkJaWYgKCBleHRyYSAhPT0g
Im1hcmdpbiIgKSB7CgkJCQl2YWwgLT0galF1ZXJ5LmNzcyggZWxlbSwgImJvcmRlciIgKyBjc3NF
eHBhbmRbIGkgXSArICJXaWR0aCIsIHRydWUsIHN0eWxlcyApOwoJCQl9CgkJfSBlbHNlIHsKCQkJ
Ly8gYXQgdGhpcyBwb2ludCwgZXh0cmEgaXNuJ3QgY29udGVudCwgc28gYWRkIHBhZGRpbmcKCQkJ
dmFsICs9IGpRdWVyeS5jc3MoIGVsZW0sICJwYWRkaW5nIiArIGNzc0V4cGFuZFsgaSBdLCB0cnVl
LCBzdHlsZXMgKTsKCgkJCS8vIGF0IHRoaXMgcG9pbnQsIGV4dHJhIGlzbid0IGNvbnRlbnQgbm9y
IHBhZGRpbmcsIHNvIGFkZCBib3JkZXIKCQkJaWYgKCBleHRyYSAhPT0gInBhZGRpbmciICkgewoJ
CQkJdmFsICs9IGpRdWVyeS5jc3MoIGVsZW0sICJib3JkZXIiICsgY3NzRXhwYW5kWyBpIF0gKyAi
V2lkdGgiLCB0cnVlLCBzdHlsZXMgKTsKCQkJfQoJCX0KCX0KCglyZXR1cm4gdmFsOwp9CgpmdW5j
dGlvbiBnZXRXaWR0aE9ySGVpZ2h0KCBlbGVtLCBuYW1lLCBleHRyYSApIHsKCgkvLyBTdGFydCB3
aXRoIG9mZnNldCBwcm9wZXJ0eSwgd2hpY2ggaXMgZXF1aXZhbGVudCB0byB0aGUgYm9yZGVyLWJv
eCB2YWx1ZQoJdmFyIHZhbHVlSXNCb3JkZXJCb3ggPSB0cnVlLAoJCXZhbCA9IG5hbWUgPT09ICJ3
aWR0aCIgPyBlbGVtLm9mZnNldFdpZHRoIDogZWxlbS5vZmZzZXRIZWlnaHQsCgkJc3R5bGVzID0g
Z2V0U3R5bGVzKCBlbGVtICksCgkJaXNCb3JkZXJCb3ggPSBzdXBwb3J0LmJveFNpemluZyAmJiBq
UXVlcnkuY3NzKCBlbGVtLCAiYm94U2l6aW5nIiwgZmFsc2UsIHN0eWxlcyApID09PSAiYm9yZGVy
LWJveCI7CgoJLy8gc29tZSBub24taHRtbCBlbGVtZW50cyByZXR1cm4gdW5kZWZpbmVkIGZvciBv
ZmZzZXRXaWR0aCwgc28gY2hlY2sgZm9yIG51bGwvdW5kZWZpbmVkCgkvLyBzdmcgLSBodHRwczov
L2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD02NDkyODUKCS8vIE1hdGhNTCAt
IGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTQ5MTY2OAoJaWYg
KCB2YWwgPD0gMCB8fCB2YWwgPT0gbnVsbCApIHsKCQkvLyBGYWxsIGJhY2sgdG8gY29tcHV0ZWQg
dGhlbiB1bmNvbXB1dGVkIGNzcyBpZiBuZWNlc3NhcnkKCQl2YWwgPSBjdXJDU1MoIGVsZW0sIG5h
bWUsIHN0eWxlcyApOwoJCWlmICggdmFsIDwgMCB8fCB2YWwgPT0gbnVsbCApIHsKCQkJdmFsID0g
ZWxlbS5zdHlsZVsgbmFtZSBdOwoJCX0KCgkJLy8gQ29tcHV0ZWQgdW5pdCBpcyBub3QgcGl4ZWxz
LiBTdG9wIGhlcmUgYW5kIHJldHVybi4KCQlpZiAoIHJudW1ub25weC50ZXN0KHZhbCkgKSB7CgkJ
CXJldHVybiB2YWw7CgkJfQoKCQkvLyB3ZSBuZWVkIHRoZSBjaGVjayBmb3Igc3R5bGUgaW4gY2Fz
ZSBhIGJyb3dzZXIgd2hpY2ggcmV0dXJucyB1bnJlbGlhYmxlIHZhbHVlcwoJCS8vIGZvciBnZXRD
b21wdXRlZFN0eWxlIHNpbGVudGx5IGZhbGxzIGJhY2sgdG8gdGhlIHJlbGlhYmxlIGVsZW0uc3R5
bGUKCQl2YWx1ZUlzQm9yZGVyQm94ID0gaXNCb3JkZXJCb3ggJiYgKCBzdXBwb3J0LmJveFNpemlu
Z1JlbGlhYmxlKCkgfHwgdmFsID09PSBlbGVtLnN0eWxlWyBuYW1lIF0gKTsKCgkJLy8gTm9ybWFs
aXplICIiLCBhdXRvLCBhbmQgcHJlcGFyZSBmb3IgZXh0cmEKCQl2YWwgPSBwYXJzZUZsb2F0KCB2
YWwgKSB8fCAwOwoJfQoKCS8vIHVzZSB0aGUgYWN0aXZlIGJveC1zaXppbmcgbW9kZWwgdG8gYWRk
L3N1YnRyYWN0IGlycmVsZXZhbnQgc3R5bGVzCglyZXR1cm4gKCB2YWwgKwoJCWF1Z21lbnRXaWR0
aE9ySGVpZ2h0KAoJCQllbGVtLAoJCQluYW1lLAoJCQlleHRyYSB8fCAoIGlzQm9yZGVyQm94ID8g
ImJvcmRlciIgOiAiY29udGVudCIgKSwKCQkJdmFsdWVJc0JvcmRlckJveCwKCQkJc3R5bGVzCgkJ
KQoJKSArICJweCI7Cn0KCmpRdWVyeS5leHRlbmQoewoJLy8gQWRkIGluIHN0eWxlIHByb3BlcnR5
IGhvb2tzIGZvciBvdmVycmlkaW5nIHRoZSBkZWZhdWx0CgkvLyBiZWhhdmlvciBvZiBnZXR0aW5n
IGFuZCBzZXR0aW5nIGEgc3R5bGUgcHJvcGVydHkKCWNzc0hvb2tzOiB7CgkJb3BhY2l0eTogewoJ
CQlnZXQ6IGZ1bmN0aW9uKCBlbGVtLCBjb21wdXRlZCApIHsKCQkJCWlmICggY29tcHV0ZWQgKSB7
CgkJCQkJLy8gV2Ugc2hvdWxkIGFsd2F5cyBnZXQgYSBudW1iZXIgYmFjayBmcm9tIG9wYWNpdHkK
CQkJCQl2YXIgcmV0ID0gY3VyQ1NTKCBlbGVtLCAib3BhY2l0eSIgKTsKCQkJCQlyZXR1cm4gcmV0
ID09PSAiIiA/ICIxIiA6IHJldDsKCQkJCX0KCQkJfQoJCX0KCX0sCgoJLy8gRG9uJ3QgYXV0b21h
dGljYWxseSBhZGQgInB4IiB0byB0aGVzZSBwb3NzaWJseS11bml0bGVzcyBwcm9wZXJ0aWVzCglj
c3NOdW1iZXI6IHsKCQkiY29sdW1uQ291bnQiOiB0cnVlLAoJCSJmaWxsT3BhY2l0eSI6IHRydWUs
CgkJImZsZXhHcm93IjogdHJ1ZSwKCQkiZmxleFNocmluayI6IHRydWUsCgkJImZvbnRXZWlnaHQi
OiB0cnVlLAoJCSJsaW5lSGVpZ2h0IjogdHJ1ZSwKCQkib3BhY2l0eSI6IHRydWUsCgkJIm9yZGVy
IjogdHJ1ZSwKCQkib3JwaGFucyI6IHRydWUsCgkJIndpZG93cyI6IHRydWUsCgkJInpJbmRleCI6
IHRydWUsCgkJInpvb20iOiB0cnVlCgl9LAoKCS8vIEFkZCBpbiBwcm9wZXJ0aWVzIHdob3NlIG5h
bWVzIHlvdSB3aXNoIHRvIGZpeCBiZWZvcmUKCS8vIHNldHRpbmcgb3IgZ2V0dGluZyB0aGUgdmFs
dWUKCWNzc1Byb3BzOiB7CgkJLy8gbm9ybWFsaXplIGZsb2F0IGNzcyBwcm9wZXJ0eQoJCSJmbG9h
dCI6IHN1cHBvcnQuY3NzRmxvYXQgPyAiY3NzRmxvYXQiIDogInN0eWxlRmxvYXQiCgl9LAoKCS8v
IEdldCBhbmQgc2V0IHRoZSBzdHlsZSBwcm9wZXJ0eSBvbiBhIERPTSBOb2RlCglzdHlsZTogZnVu
Y3Rpb24oIGVsZW0sIG5hbWUsIHZhbHVlLCBleHRyYSApIHsKCQkvLyBEb24ndCBzZXQgc3R5bGVz
IG9uIHRleHQgYW5kIGNvbW1lbnQgbm9kZXMKCQlpZiAoICFlbGVtIHx8IGVsZW0ubm9kZVR5cGUg
PT09IDMgfHwgZWxlbS5ub2RlVHlwZSA9PT0gOCB8fCAhZWxlbS5zdHlsZSApIHsKCQkJcmV0dXJu
OwoJCX0KCgkJLy8gTWFrZSBzdXJlIHRoYXQgd2UncmUgd29ya2luZyB3aXRoIHRoZSByaWdodCBu
YW1lCgkJdmFyIHJldCwgdHlwZSwgaG9va3MsCgkJCW9yaWdOYW1lID0galF1ZXJ5LmNhbWVsQ2Fz
ZSggbmFtZSApLAoJCQlzdHlsZSA9IGVsZW0uc3R5bGU7CgoJCW5hbWUgPSBqUXVlcnkuY3NzUHJv
cHNbIG9yaWdOYW1lIF0gfHwgKCBqUXVlcnkuY3NzUHJvcHNbIG9yaWdOYW1lIF0gPSB2ZW5kb3JQ
cm9wTmFtZSggc3R5bGUsIG9yaWdOYW1lICkgKTsKCgkJLy8gZ2V0cyBob29rIGZvciB0aGUgcHJl
Zml4ZWQgdmVyc2lvbgoJCS8vIGZvbGxvd2VkIGJ5IHRoZSB1bnByZWZpeGVkIHZlcnNpb24KCQlo
b29rcyA9IGpRdWVyeS5jc3NIb29rc1sgbmFtZSBdIHx8IGpRdWVyeS5jc3NIb29rc1sgb3JpZ05h
bWUgXTsKCgkJLy8gQ2hlY2sgaWYgd2UncmUgc2V0dGluZyBhIHZhbHVlCgkJaWYgKCB2YWx1ZSAh
PT0gdW5kZWZpbmVkICkgewoJCQl0eXBlID0gdHlwZW9mIHZhbHVlOwoKCQkJLy8gY29udmVydCBy
ZWxhdGl2ZSBudW1iZXIgc3RyaW5ncyAoKz0gb3IgLT0pIHRvIHJlbGF0aXZlIG51bWJlcnMuICM3
MzQ1CgkJCWlmICggdHlwZSA9PT0gInN0cmluZyIgJiYgKHJldCA9IHJyZWxOdW0uZXhlYyggdmFs
dWUgKSkgKSB7CgkJCQl2YWx1ZSA9ICggcmV0WzFdICsgMSApICogcmV0WzJdICsgcGFyc2VGbG9h
dCggalF1ZXJ5LmNzcyggZWxlbSwgbmFtZSApICk7CgkJCQkvLyBGaXhlcyBidWcgIzkyMzcKCQkJ
CXR5cGUgPSAibnVtYmVyIjsKCQkJfQoKCQkJLy8gTWFrZSBzdXJlIHRoYXQgbnVsbCBhbmQgTmFO
IHZhbHVlcyBhcmVuJ3Qgc2V0LiBTZWU6ICM3MTE2CgkJCWlmICggdmFsdWUgPT0gbnVsbCB8fCB2
YWx1ZSAhPT0gdmFsdWUgKSB7CgkJCQlyZXR1cm47CgkJCX0KCgkJCS8vIElmIGEgbnVtYmVyIHdh
cyBwYXNzZWQgaW4sIGFkZCAncHgnIHRvIHRoZSAoZXhjZXB0IGZvciBjZXJ0YWluIENTUyBwcm9w
ZXJ0aWVzKQoJCQlpZiAoIHR5cGUgPT09ICJudW1iZXIiICYmICFqUXVlcnkuY3NzTnVtYmVyWyBv
cmlnTmFtZSBdICkgewoJCQkJdmFsdWUgKz0gInB4IjsKCQkJfQoKCQkJLy8gRml4ZXMgIzg5MDgs
IGl0IGNhbiBiZSBkb25lIG1vcmUgY29ycmVjdGx5IGJ5IHNwZWNpZmluZyBzZXR0ZXJzIGluIGNz
c0hvb2tzLAoJCQkvLyBidXQgaXQgd291bGQgbWVhbiB0byBkZWZpbmUgZWlnaHQgKGZvciBldmVy
eSBwcm9ibGVtYXRpYyBwcm9wZXJ0eSkgaWRlbnRpY2FsIGZ1bmN0aW9ucwoJCQlpZiAoICFzdXBw
b3J0LmNsZWFyQ2xvbmVTdHlsZSAmJiB2YWx1ZSA9PT0gIiIgJiYgbmFtZS5pbmRleE9mKCJiYWNr
Z3JvdW5kIikgPT09IDAgKSB7CgkJCQlzdHlsZVsgbmFtZSBdID0gImluaGVyaXQiOwoJCQl9CgoJ
CQkvLyBJZiBhIGhvb2sgd2FzIHByb3ZpZGVkLCB1c2UgdGhhdCB2YWx1ZSwgb3RoZXJ3aXNlIGp1
c3Qgc2V0IHRoZSBzcGVjaWZpZWQgdmFsdWUKCQkJaWYgKCAhaG9va3MgfHwgISgic2V0IiBpbiBo
b29rcykgfHwgKHZhbHVlID0gaG9va3Muc2V0KCBlbGVtLCB2YWx1ZSwgZXh0cmEgKSkgIT09IHVu
ZGVmaW5lZCApIHsKCgkJCQkvLyBTdXBwb3J0OiBJRQoJCQkJLy8gU3dhbGxvdyBlcnJvcnMgZnJv
bSAnaW52YWxpZCcgQ1NTIHZhbHVlcyAoIzU1MDkpCgkJCQl0cnkgewoJCQkJCXN0eWxlWyBuYW1l
IF0gPSB2YWx1ZTsKCQkJCX0gY2F0Y2goZSkge30KCQkJfQoKCQl9IGVsc2UgewoJCQkvLyBJZiBh
IGhvb2sgd2FzIHByb3ZpZGVkIGdldCB0aGUgbm9uLWNvbXB1dGVkIHZhbHVlIGZyb20gdGhlcmUK
CQkJaWYgKCBob29rcyAmJiAiZ2V0IiBpbiBob29rcyAmJiAocmV0ID0gaG9va3MuZ2V0KCBlbGVt
LCBmYWxzZSwgZXh0cmEgKSkgIT09IHVuZGVmaW5lZCApIHsKCQkJCXJldHVybiByZXQ7CgkJCX0K
CgkJCS8vIE90aGVyd2lzZSBqdXN0IGdldCB0aGUgdmFsdWUgZnJvbSB0aGUgc3R5bGUgb2JqZWN0
CgkJCXJldHVybiBzdHlsZVsgbmFtZSBdOwoJCX0KCX0sCgoJY3NzOiBmdW5jdGlvbiggZWxlbSwg
bmFtZSwgZXh0cmEsIHN0eWxlcyApIHsKCQl2YXIgbnVtLCB2YWwsIGhvb2tzLAoJCQlvcmlnTmFt
ZSA9IGpRdWVyeS5jYW1lbENhc2UoIG5hbWUgKTsKCgkJLy8gTWFrZSBzdXJlIHRoYXQgd2UncmUg
d29ya2luZyB3aXRoIHRoZSByaWdodCBuYW1lCgkJbmFtZSA9IGpRdWVyeS5jc3NQcm9wc1sgb3Jp
Z05hbWUgXSB8fCAoIGpRdWVyeS5jc3NQcm9wc1sgb3JpZ05hbWUgXSA9IHZlbmRvclByb3BOYW1l
KCBlbGVtLnN0eWxlLCBvcmlnTmFtZSApICk7CgoJCS8vIGdldHMgaG9vayBmb3IgdGhlIHByZWZp
eGVkIHZlcnNpb24KCQkvLyBmb2xsb3dlZCBieSB0aGUgdW5wcmVmaXhlZCB2ZXJzaW9uCgkJaG9v
a3MgPSBqUXVlcnkuY3NzSG9va3NbIG5hbWUgXSB8fCBqUXVlcnkuY3NzSG9va3NbIG9yaWdOYW1l
IF07CgoJCS8vIElmIGEgaG9vayB3YXMgcHJvdmlkZWQgZ2V0IHRoZSBjb21wdXRlZCB2YWx1ZSBm
cm9tIHRoZXJlCgkJaWYgKCBob29rcyAmJiAiZ2V0IiBpbiBob29rcyApIHsKCQkJdmFsID0gaG9v
a3MuZ2V0KCBlbGVtLCB0cnVlLCBleHRyYSApOwoJCX0KCgkJLy8gT3RoZXJ3aXNlLCBpZiBhIHdh
eSB0byBnZXQgdGhlIGNvbXB1dGVkIHZhbHVlIGV4aXN0cywgdXNlIHRoYXQKCQlpZiAoIHZhbCA9
PT0gdW5kZWZpbmVkICkgewoJCQl2YWwgPSBjdXJDU1MoIGVsZW0sIG5hbWUsIHN0eWxlcyApOwoJ
CX0KCgkJLy9jb252ZXJ0ICJub3JtYWwiIHRvIGNvbXB1dGVkIHZhbHVlCgkJaWYgKCB2YWwgPT09
ICJub3JtYWwiICYmIG5hbWUgaW4gY3NzTm9ybWFsVHJhbnNmb3JtICkgewoJCQl2YWwgPSBjc3NO
b3JtYWxUcmFuc2Zvcm1bIG5hbWUgXTsKCQl9CgoJCS8vIFJldHVybiwgY29udmVydGluZyB0byBu
dW1iZXIgaWYgZm9yY2VkIG9yIGEgcXVhbGlmaWVyIHdhcyBwcm92aWRlZCBhbmQgdmFsIGxvb2tz
IG51bWVyaWMKCQlpZiAoIGV4dHJhID09PSAiIiB8fCBleHRyYSApIHsKCQkJbnVtID0gcGFyc2VG
bG9hdCggdmFsICk7CgkJCXJldHVybiBleHRyYSA9PT0gdHJ1ZSB8fCBqUXVlcnkuaXNOdW1lcmlj
KCBudW0gKSA/IG51bSB8fCAwIDogdmFsOwoJCX0KCQlyZXR1cm4gdmFsOwoJfQp9KTsKCmpRdWVy
eS5lYWNoKFsgImhlaWdodCIsICJ3aWR0aCIgXSwgZnVuY3Rpb24oIGksIG5hbWUgKSB7CglqUXVl
cnkuY3NzSG9va3NbIG5hbWUgXSA9IHsKCQlnZXQ6IGZ1bmN0aW9uKCBlbGVtLCBjb21wdXRlZCwg
ZXh0cmEgKSB7CgkJCWlmICggY29tcHV0ZWQgKSB7CgkJCQkvLyBjZXJ0YWluIGVsZW1lbnRzIGNh
biBoYXZlIGRpbWVuc2lvbiBpbmZvIGlmIHdlIGludmlzaWJseSBzaG93IHRoZW0KCQkJCS8vIGhv
d2V2ZXIsIGl0IG11c3QgaGF2ZSBhIGN1cnJlbnQgZGlzcGxheSBzdHlsZSB0aGF0IHdvdWxkIGJl
bmVmaXQgZnJvbSB0aGlzCgkJCQlyZXR1cm4gcmRpc3BsYXlzd2FwLnRlc3QoIGpRdWVyeS5jc3Mo
IGVsZW0sICJkaXNwbGF5IiApICkgJiYgZWxlbS5vZmZzZXRXaWR0aCA9PT0gMCA/CgkJCQkJalF1
ZXJ5LnN3YXAoIGVsZW0sIGNzc1Nob3csIGZ1bmN0aW9uKCkgewoJCQkJCQlyZXR1cm4gZ2V0V2lk
dGhPckhlaWdodCggZWxlbSwgbmFtZSwgZXh0cmEgKTsKCQkJCQl9KSA6CgkJCQkJZ2V0V2lkdGhP
ckhlaWdodCggZWxlbSwgbmFtZSwgZXh0cmEgKTsKCQkJfQoJCX0sCgoJCXNldDogZnVuY3Rpb24o
IGVsZW0sIHZhbHVlLCBleHRyYSApIHsKCQkJdmFyIHN0eWxlcyA9IGV4dHJhICYmIGdldFN0eWxl
cyggZWxlbSApOwoJCQlyZXR1cm4gc2V0UG9zaXRpdmVOdW1iZXIoIGVsZW0sIHZhbHVlLCBleHRy
YSA/CgkJCQlhdWdtZW50V2lkdGhPckhlaWdodCgKCQkJCQllbGVtLAoJCQkJCW5hbWUsCgkJCQkJ
ZXh0cmEsCgkJCQkJc3VwcG9ydC5ib3hTaXppbmcgJiYgalF1ZXJ5LmNzcyggZWxlbSwgImJveFNp
emluZyIsIGZhbHNlLCBzdHlsZXMgKSA9PT0gImJvcmRlci1ib3giLAoJCQkJCXN0eWxlcwoJCQkJ
KSA6IDAKCQkJKTsKCQl9Cgl9Owp9KTsKCmlmICggIXN1cHBvcnQub3BhY2l0eSApIHsKCWpRdWVy
eS5jc3NIb29rcy5vcGFjaXR5ID0gewoJCWdldDogZnVuY3Rpb24oIGVsZW0sIGNvbXB1dGVkICkg
ewoJCQkvLyBJRSB1c2VzIGZpbHRlcnMgZm9yIG9wYWNpdHkKCQkJcmV0dXJuIHJvcGFjaXR5LnRl
c3QoIChjb21wdXRlZCAmJiBlbGVtLmN1cnJlbnRTdHlsZSA/IGVsZW0uY3VycmVudFN0eWxlLmZp
bHRlciA6IGVsZW0uc3R5bGUuZmlsdGVyKSB8fCAiIiApID8KCQkJCSggMC4wMSAqIHBhcnNlRmxv
YXQoIFJlZ0V4cC4kMSApICkgKyAiIiA6CgkJCQljb21wdXRlZCA/ICIxIiA6ICIiOwoJCX0sCgoJ
CXNldDogZnVuY3Rpb24oIGVsZW0sIHZhbHVlICkgewoJCQl2YXIgc3R5bGUgPSBlbGVtLnN0eWxl
LAoJCQkJY3VycmVudFN0eWxlID0gZWxlbS5jdXJyZW50U3R5bGUsCgkJCQlvcGFjaXR5ID0galF1
ZXJ5LmlzTnVtZXJpYyggdmFsdWUgKSA/ICJhbHBoYShvcGFjaXR5PSIgKyB2YWx1ZSAqIDEwMCAr
ICIpIiA6ICIiLAoJCQkJZmlsdGVyID0gY3VycmVudFN0eWxlICYmIGN1cnJlbnRTdHlsZS5maWx0
ZXIgfHwgc3R5bGUuZmlsdGVyIHx8ICIiOwoKCQkJLy8gSUUgaGFzIHRyb3VibGUgd2l0aCBvcGFj
aXR5IGlmIGl0IGRvZXMgbm90IGhhdmUgbGF5b3V0CgkJCS8vIEZvcmNlIGl0IGJ5IHNldHRpbmcg
dGhlIHpvb20gbGV2ZWwKCQkJc3R5bGUuem9vbSA9IDE7CgoJCQkvLyBpZiBzZXR0aW5nIG9wYWNp
dHkgdG8gMSwgYW5kIG5vIG90aGVyIGZpbHRlcnMgZXhpc3QgLSBhdHRlbXB0IHRvIHJlbW92ZSBm
aWx0ZXIgYXR0cmlidXRlICM2NjUyCgkJCS8vIGlmIHZhbHVlID09PSAiIiwgdGhlbiByZW1vdmUg
aW5saW5lIG9wYWNpdHkgIzEyNjg1CgkJCWlmICggKCB2YWx1ZSA+PSAxIHx8IHZhbHVlID09PSAi
IiApICYmCgkJCQkJalF1ZXJ5LnRyaW0oIGZpbHRlci5yZXBsYWNlKCByYWxwaGEsICIiICkgKSA9
PT0gIiIgJiYKCQkJCQlzdHlsZS5yZW1vdmVBdHRyaWJ1dGUgKSB7CgoJCQkJLy8gU2V0dGluZyBz
dHlsZS5maWx0ZXIgdG8gbnVsbCwgIiIgJiAiICIgc3RpbGwgbGVhdmUgImZpbHRlcjoiIGluIHRo
ZSBjc3NUZXh0CgkJCQkvLyBpZiAiZmlsdGVyOiIgaXMgcHJlc2VudCBhdCBhbGwsIGNsZWFyVHlw
ZSBpcyBkaXNhYmxlZCwgd2Ugd2FudCB0byBhdm9pZCB0aGlzCgkJCQkvLyBzdHlsZS5yZW1vdmVB
dHRyaWJ1dGUgaXMgSUUgT25seSwgYnV0IHNvIGFwcGFyZW50bHkgaXMgdGhpcyBjb2RlIHBhdGgu
Li4KCQkJCXN0eWxlLnJlbW92ZUF0dHJpYnV0ZSggImZpbHRlciIgKTsKCgkJCQkvLyBpZiB0aGVy
ZSBpcyBubyBmaWx0ZXIgc3R5bGUgYXBwbGllZCBpbiBhIGNzcyBydWxlIG9yIHVuc2V0IGlubGlu
ZSBvcGFjaXR5LCB3ZSBhcmUgZG9uZQoJCQkJaWYgKCB2YWx1ZSA9PT0gIiIgfHwgY3VycmVudFN0
eWxlICYmICFjdXJyZW50U3R5bGUuZmlsdGVyICkgewoJCQkJCXJldHVybjsKCQkJCX0KCQkJfQoK
CQkJLy8gb3RoZXJ3aXNlLCBzZXQgbmV3IGZpbHRlciB2YWx1ZXMKCQkJc3R5bGUuZmlsdGVyID0g
cmFscGhhLnRlc3QoIGZpbHRlciApID8KCQkJCWZpbHRlci5yZXBsYWNlKCByYWxwaGEsIG9wYWNp
dHkgKSA6CgkJCQlmaWx0ZXIgKyAiICIgKyBvcGFjaXR5OwoJCX0KCX07Cn0KCmpRdWVyeS5jc3NI
b29rcy5tYXJnaW5SaWdodCA9IGFkZEdldEhvb2tJZiggc3VwcG9ydC5yZWxpYWJsZU1hcmdpblJp
Z2h0LAoJZnVuY3Rpb24oIGVsZW0sIGNvbXB1dGVkICkgewoJCWlmICggY29tcHV0ZWQgKSB7CgkJ
CS8vIFdlYktpdCBCdWcgMTMzNDMgLSBnZXRDb21wdXRlZFN0eWxlIHJldHVybnMgd3JvbmcgdmFs
dWUgZm9yIG1hcmdpbi1yaWdodAoJCQkvLyBXb3JrIGFyb3VuZCBieSB0ZW1wb3JhcmlseSBzZXR0
aW5nIGVsZW1lbnQgZGlzcGxheSB0byBpbmxpbmUtYmxvY2sKCQkJcmV0dXJuIGpRdWVyeS5zd2Fw
KCBlbGVtLCB7ICJkaXNwbGF5IjogImlubGluZS1ibG9jayIgfSwKCQkJCWN1ckNTUywgWyBlbGVt
LCAibWFyZ2luUmlnaHQiIF0gKTsKCQl9Cgl9Cik7CgovLyBUaGVzZSBob29rcyBhcmUgdXNlZCBi
eSBhbmltYXRlIHRvIGV4cGFuZCBwcm9wZXJ0aWVzCmpRdWVyeS5lYWNoKHsKCW1hcmdpbjogIiIs
CglwYWRkaW5nOiAiIiwKCWJvcmRlcjogIldpZHRoIgp9LCBmdW5jdGlvbiggcHJlZml4LCBzdWZm
aXggKSB7CglqUXVlcnkuY3NzSG9va3NbIHByZWZpeCArIHN1ZmZpeCBdID0gewoJCWV4cGFuZDog
ZnVuY3Rpb24oIHZhbHVlICkgewoJCQl2YXIgaSA9IDAsCgkJCQlleHBhbmRlZCA9IHt9LAoKCQkJ
CS8vIGFzc3VtZXMgYSBzaW5nbGUgbnVtYmVyIGlmIG5vdCBhIHN0cmluZwoJCQkJcGFydHMgPSB0
eXBlb2YgdmFsdWUgPT09ICJzdHJpbmciID8gdmFsdWUuc3BsaXQoIiAiKSA6IFsgdmFsdWUgXTsK
CgkJCWZvciAoIDsgaSA8IDQ7IGkrKyApIHsKCQkJCWV4cGFuZGVkWyBwcmVmaXggKyBjc3NFeHBh
bmRbIGkgXSArIHN1ZmZpeCBdID0KCQkJCQlwYXJ0c1sgaSBdIHx8IHBhcnRzWyBpIC0gMiBdIHx8
IHBhcnRzWyAwIF07CgkJCX0KCgkJCXJldHVybiBleHBhbmRlZDsKCQl9Cgl9OwoKCWlmICggIXJt
YXJnaW4udGVzdCggcHJlZml4ICkgKSB7CgkJalF1ZXJ5LmNzc0hvb2tzWyBwcmVmaXggKyBzdWZm
aXggXS5zZXQgPSBzZXRQb3NpdGl2ZU51bWJlcjsKCX0KfSk7CgpqUXVlcnkuZm4uZXh0ZW5kKHsK
CWNzczogZnVuY3Rpb24oIG5hbWUsIHZhbHVlICkgewoJCXJldHVybiBhY2Nlc3MoIHRoaXMsIGZ1
bmN0aW9uKCBlbGVtLCBuYW1lLCB2YWx1ZSApIHsKCQkJdmFyIHN0eWxlcywgbGVuLAoJCQkJbWFw
ID0ge30sCgkJCQlpID0gMDsKCgkJCWlmICggalF1ZXJ5LmlzQXJyYXkoIG5hbWUgKSApIHsKCQkJ
CXN0eWxlcyA9IGdldFN0eWxlcyggZWxlbSApOwoJCQkJbGVuID0gbmFtZS5sZW5ndGg7CgoJCQkJ
Zm9yICggOyBpIDwgbGVuOyBpKysgKSB7CgkJCQkJbWFwWyBuYW1lWyBpIF0gXSA9IGpRdWVyeS5j
c3MoIGVsZW0sIG5hbWVbIGkgXSwgZmFsc2UsIHN0eWxlcyApOwoJCQkJfQoKCQkJCXJldHVybiBt
YXA7CgkJCX0KCgkJCXJldHVybiB2YWx1ZSAhPT0gdW5kZWZpbmVkID8KCQkJCWpRdWVyeS5zdHls
ZSggZWxlbSwgbmFtZSwgdmFsdWUgKSA6CgkJCQlqUXVlcnkuY3NzKCBlbGVtLCBuYW1lICk7CgkJ
fSwgbmFtZSwgdmFsdWUsIGFyZ3VtZW50cy5sZW5ndGggPiAxICk7Cgl9LAoJc2hvdzogZnVuY3Rp
b24oKSB7CgkJcmV0dXJuIHNob3dIaWRlKCB0aGlzLCB0cnVlICk7Cgl9LAoJaGlkZTogZnVuY3Rp
b24oKSB7CgkJcmV0dXJuIHNob3dIaWRlKCB0aGlzICk7Cgl9LAoJdG9nZ2xlOiBmdW5jdGlvbigg
c3RhdGUgKSB7CgkJaWYgKCB0eXBlb2Ygc3RhdGUgPT09ICJib29sZWFuIiApIHsKCQkJcmV0dXJu
IHN0YXRlID8gdGhpcy5zaG93KCkgOiB0aGlzLmhpZGUoKTsKCQl9CgoJCXJldHVybiB0aGlzLmVh
Y2goZnVuY3Rpb24oKSB7CgkJCWlmICggaXNIaWRkZW4oIHRoaXMgKSApIHsKCQkJCWpRdWVyeSgg
dGhpcyApLnNob3coKTsKCQkJfSBlbHNlIHsKCQkJCWpRdWVyeSggdGhpcyApLmhpZGUoKTsKCQkJ
fQoJCX0pOwoJfQp9KTsKCgpmdW5jdGlvbiBUd2VlbiggZWxlbSwgb3B0aW9ucywgcHJvcCwgZW5k
LCBlYXNpbmcgKSB7CglyZXR1cm4gbmV3IFR3ZWVuLnByb3RvdHlwZS5pbml0KCBlbGVtLCBvcHRp
b25zLCBwcm9wLCBlbmQsIGVhc2luZyApOwp9CmpRdWVyeS5Ud2VlbiA9IFR3ZWVuOwoKVHdlZW4u
cHJvdG90eXBlID0gewoJY29uc3RydWN0b3I6IFR3ZWVuLAoJaW5pdDogZnVuY3Rpb24oIGVsZW0s
IG9wdGlvbnMsIHByb3AsIGVuZCwgZWFzaW5nLCB1bml0ICkgewoJCXRoaXMuZWxlbSA9IGVsZW07
CgkJdGhpcy5wcm9wID0gcHJvcDsKCQl0aGlzLmVhc2luZyA9IGVhc2luZyB8fCAic3dpbmciOwoJ
CXRoaXMub3B0aW9ucyA9IG9wdGlvbnM7CgkJdGhpcy5zdGFydCA9IHRoaXMubm93ID0gdGhpcy5j
dXIoKTsKCQl0aGlzLmVuZCA9IGVuZDsKCQl0aGlzLnVuaXQgPSB1bml0IHx8ICggalF1ZXJ5LmNz
c051bWJlclsgcHJvcCBdID8gIiIgOiAicHgiICk7Cgl9LAoJY3VyOiBmdW5jdGlvbigpIHsKCQl2
YXIgaG9va3MgPSBUd2Vlbi5wcm9wSG9va3NbIHRoaXMucHJvcCBdOwoKCQlyZXR1cm4gaG9va3Mg
JiYgaG9va3MuZ2V0ID8KCQkJaG9va3MuZ2V0KCB0aGlzICkgOgoJCQlUd2Vlbi5wcm9wSG9va3Mu
X2RlZmF1bHQuZ2V0KCB0aGlzICk7Cgl9LAoJcnVuOiBmdW5jdGlvbiggcGVyY2VudCApIHsKCQl2
YXIgZWFzZWQsCgkJCWhvb2tzID0gVHdlZW4ucHJvcEhvb2tzWyB0aGlzLnByb3AgXTsKCgkJaWYg
KCB0aGlzLm9wdGlvbnMuZHVyYXRpb24gKSB7CgkJCXRoaXMucG9zID0gZWFzZWQgPSBqUXVlcnku
ZWFzaW5nWyB0aGlzLmVhc2luZyBdKAoJCQkJcGVyY2VudCwgdGhpcy5vcHRpb25zLmR1cmF0aW9u
ICogcGVyY2VudCwgMCwgMSwgdGhpcy5vcHRpb25zLmR1cmF0aW9uCgkJCSk7CgkJfSBlbHNlIHsK
CQkJdGhpcy5wb3MgPSBlYXNlZCA9IHBlcmNlbnQ7CgkJfQoJCXRoaXMubm93ID0gKCB0aGlzLmVu
ZCAtIHRoaXMuc3RhcnQgKSAqIGVhc2VkICsgdGhpcy5zdGFydDsKCgkJaWYgKCB0aGlzLm9wdGlv
bnMuc3RlcCApIHsKCQkJdGhpcy5vcHRpb25zLnN0ZXAuY2FsbCggdGhpcy5lbGVtLCB0aGlzLm5v
dywgdGhpcyApOwoJCX0KCgkJaWYgKCBob29rcyAmJiBob29rcy5zZXQgKSB7CgkJCWhvb2tzLnNl
dCggdGhpcyApOwoJCX0gZWxzZSB7CgkJCVR3ZWVuLnByb3BIb29rcy5fZGVmYXVsdC5zZXQoIHRo
aXMgKTsKCQl9CgkJcmV0dXJuIHRoaXM7Cgl9Cn07CgpUd2Vlbi5wcm90b3R5cGUuaW5pdC5wcm90
b3R5cGUgPSBUd2Vlbi5wcm90b3R5cGU7CgpUd2Vlbi5wcm9wSG9va3MgPSB7CglfZGVmYXVsdDog
ewoJCWdldDogZnVuY3Rpb24oIHR3ZWVuICkgewoJCQl2YXIgcmVzdWx0OwoKCQkJaWYgKCB0d2Vl
bi5lbGVtWyB0d2Vlbi5wcm9wIF0gIT0gbnVsbCAmJgoJCQkJKCF0d2Vlbi5lbGVtLnN0eWxlIHx8
IHR3ZWVuLmVsZW0uc3R5bGVbIHR3ZWVuLnByb3AgXSA9PSBudWxsKSApIHsKCQkJCXJldHVybiB0
d2Vlbi5lbGVtWyB0d2Vlbi5wcm9wIF07CgkJCX0KCgkJCS8vIHBhc3NpbmcgYW4gZW1wdHkgc3Ry
aW5nIGFzIGEgM3JkIHBhcmFtZXRlciB0byAuY3NzIHdpbGwgYXV0b21hdGljYWxseQoJCQkvLyBh
dHRlbXB0IGEgcGFyc2VGbG9hdCBhbmQgZmFsbGJhY2sgdG8gYSBzdHJpbmcgaWYgdGhlIHBhcnNl
IGZhaWxzCgkJCS8vIHNvLCBzaW1wbGUgdmFsdWVzIHN1Y2ggYXMgIjEwcHgiIGFyZSBwYXJzZWQg
dG8gRmxvYXQuCgkJCS8vIGNvbXBsZXggdmFsdWVzIHN1Y2ggYXMgInJvdGF0ZSgxcmFkKSIgYXJl
IHJldHVybmVkIGFzIGlzLgoJCQlyZXN1bHQgPSBqUXVlcnkuY3NzKCB0d2Vlbi5lbGVtLCB0d2Vl
bi5wcm9wLCAiIiApOwoJCQkvLyBFbXB0eSBzdHJpbmdzLCBudWxsLCB1bmRlZmluZWQgYW5kICJh
dXRvIiBhcmUgY29udmVydGVkIHRvIDAuCgkJCXJldHVybiAhcmVzdWx0IHx8IHJlc3VsdCA9PT0g
ImF1dG8iID8gMCA6IHJlc3VsdDsKCQl9LAoJCXNldDogZnVuY3Rpb24oIHR3ZWVuICkgewoJCQkv
LyB1c2Ugc3RlcCBob29rIGZvciBiYWNrIGNvbXBhdCAtIHVzZSBjc3NIb29rIGlmIGl0cyB0aGVy
ZSAtIHVzZSAuc3R5bGUgaWYgaXRzCgkJCS8vIGF2YWlsYWJsZSBhbmQgdXNlIHBsYWluIHByb3Bl
cnRpZXMgd2hlcmUgYXZhaWxhYmxlCgkJCWlmICggalF1ZXJ5LmZ4LnN0ZXBbIHR3ZWVuLnByb3Ag
XSApIHsKCQkJCWpRdWVyeS5meC5zdGVwWyB0d2Vlbi5wcm9wIF0oIHR3ZWVuICk7CgkJCX0gZWxz
ZSBpZiAoIHR3ZWVuLmVsZW0uc3R5bGUgJiYgKCB0d2Vlbi5lbGVtLnN0eWxlWyBqUXVlcnkuY3Nz
UHJvcHNbIHR3ZWVuLnByb3AgXSBdICE9IG51bGwgfHwgalF1ZXJ5LmNzc0hvb2tzWyB0d2Vlbi5w
cm9wIF0gKSApIHsKCQkJCWpRdWVyeS5zdHlsZSggdHdlZW4uZWxlbSwgdHdlZW4ucHJvcCwgdHdl
ZW4ubm93ICsgdHdlZW4udW5pdCApOwoJCQl9IGVsc2UgewoJCQkJdHdlZW4uZWxlbVsgdHdlZW4u
cHJvcCBdID0gdHdlZW4ubm93OwoJCQl9CgkJfQoJfQp9OwoKLy8gU3VwcG9ydDogSUUgPD05Ci8v
IFBhbmljIGJhc2VkIGFwcHJvYWNoIHRvIHNldHRpbmcgdGhpbmdzIG9uIGRpc2Nvbm5lY3RlZCBu
b2RlcwoKVHdlZW4ucHJvcEhvb2tzLnNjcm9sbFRvcCA9IFR3ZWVuLnByb3BIb29rcy5zY3JvbGxM
ZWZ0ID0gewoJc2V0OiBmdW5jdGlvbiggdHdlZW4gKSB7CgkJaWYgKCB0d2Vlbi5lbGVtLm5vZGVU
eXBlICYmIHR3ZWVuLmVsZW0ucGFyZW50Tm9kZSApIHsKCQkJdHdlZW4uZWxlbVsgdHdlZW4ucHJv
cCBdID0gdHdlZW4ubm93OwoJCX0KCX0KfTsKCmpRdWVyeS5lYXNpbmcgPSB7CglsaW5lYXI6IGZ1
bmN0aW9uKCBwICkgewoJCXJldHVybiBwOwoJfSwKCXN3aW5nOiBmdW5jdGlvbiggcCApIHsKCQly
ZXR1cm4gMC41IC0gTWF0aC5jb3MoIHAgKiBNYXRoLlBJICkgLyAyOwoJfQp9OwoKalF1ZXJ5LmZ4
ID0gVHdlZW4ucHJvdG90eXBlLmluaXQ7CgovLyBCYWNrIENvbXBhdCA8MS44IGV4dGVuc2lvbiBw
b2ludApqUXVlcnkuZnguc3RlcCA9IHt9OwoKCgoKdmFyCglmeE5vdywgdGltZXJJZCwKCXJmeHR5
cGVzID0gL14oPzp0b2dnbGV8c2hvd3xoaWRlKSQvLAoJcmZ4bnVtID0gbmV3IFJlZ0V4cCggIl4o
PzooWystXSk9fCkoIiArIHBudW0gKyAiKShbYS16JV0qKSQiLCAiaSIgKSwKCXJydW4gPSAvcXVl
dWVIb29rcyQvLAoJYW5pbWF0aW9uUHJlZmlsdGVycyA9IFsgZGVmYXVsdFByZWZpbHRlciBdLAoJ
dHdlZW5lcnMgPSB7CgkJIioiOiBbIGZ1bmN0aW9uKCBwcm9wLCB2YWx1ZSApIHsKCQkJdmFyIHR3
ZWVuID0gdGhpcy5jcmVhdGVUd2VlbiggcHJvcCwgdmFsdWUgKSwKCQkJCXRhcmdldCA9IHR3ZWVu
LmN1cigpLAoJCQkJcGFydHMgPSByZnhudW0uZXhlYyggdmFsdWUgKSwKCQkJCXVuaXQgPSBwYXJ0
cyAmJiBwYXJ0c1sgMyBdIHx8ICggalF1ZXJ5LmNzc051bWJlclsgcHJvcCBdID8gIiIgOiAicHgi
ICksCgoJCQkJLy8gU3RhcnRpbmcgdmFsdWUgY29tcHV0YXRpb24gaXMgcmVxdWlyZWQgZm9yIHBv
dGVudGlhbCB1bml0IG1pc21hdGNoZXMKCQkJCXN0YXJ0ID0gKCBqUXVlcnkuY3NzTnVtYmVyWyBw
cm9wIF0gfHwgdW5pdCAhPT0gInB4IiAmJiArdGFyZ2V0ICkgJiYKCQkJCQlyZnhudW0uZXhlYygg
alF1ZXJ5LmNzcyggdHdlZW4uZWxlbSwgcHJvcCApICksCgkJCQlzY2FsZSA9IDEsCgkJCQltYXhJ
dGVyYXRpb25zID0gMjA7CgoJCQlpZiAoIHN0YXJ0ICYmIHN0YXJ0WyAzIF0gIT09IHVuaXQgKSB7
CgkJCQkvLyBUcnVzdCB1bml0cyByZXBvcnRlZCBieSBqUXVlcnkuY3NzCgkJCQl1bml0ID0gdW5p
dCB8fCBzdGFydFsgMyBdOwoKCQkJCS8vIE1ha2Ugc3VyZSB3ZSB1cGRhdGUgdGhlIHR3ZWVuIHBy
b3BlcnRpZXMgbGF0ZXIgb24KCQkJCXBhcnRzID0gcGFydHMgfHwgW107CgoJCQkJLy8gSXRlcmF0
aXZlbHkgYXBwcm94aW1hdGUgZnJvbSBhIG5vbnplcm8gc3RhcnRpbmcgcG9pbnQKCQkJCXN0YXJ0
ID0gK3RhcmdldCB8fCAxOwoKCQkJCWRvIHsKCQkJCQkvLyBJZiBwcmV2aW91cyBpdGVyYXRpb24g
emVyb2VkIG91dCwgZG91YmxlIHVudGlsIHdlIGdldCAqc29tZXRoaW5nKgoJCQkJCS8vIFVzZSBh
IHN0cmluZyBmb3IgZG91YmxpbmcgZmFjdG9yIHNvIHdlIGRvbid0IGFjY2lkZW50YWxseSBzZWUg
c2NhbGUgYXMgdW5jaGFuZ2VkIGJlbG93CgkJCQkJc2NhbGUgPSBzY2FsZSB8fCAiLjUiOwoKCQkJ
CQkvLyBBZGp1c3QgYW5kIGFwcGx5CgkJCQkJc3RhcnQgPSBzdGFydCAvIHNjYWxlOwoJCQkJCWpR
dWVyeS5zdHlsZSggdHdlZW4uZWxlbSwgcHJvcCwgc3RhcnQgKyB1bml0ICk7CgoJCQkJLy8gVXBk
YXRlIHNjYWxlLCB0b2xlcmF0aW5nIHplcm8gb3IgTmFOIGZyb20gdHdlZW4uY3VyKCkKCQkJCS8v
IEFuZCBicmVha2luZyB0aGUgbG9vcCBpZiBzY2FsZSBpcyB1bmNoYW5nZWQgb3IgcGVyZmVjdCwg
b3IgaWYgd2UndmUganVzdCBoYWQgZW5vdWdoCgkJCQl9IHdoaWxlICggc2NhbGUgIT09IChzY2Fs
ZSA9IHR3ZWVuLmN1cigpIC8gdGFyZ2V0KSAmJiBzY2FsZSAhPT0gMSAmJiAtLW1heEl0ZXJhdGlv
bnMgKTsKCQkJfQoKCQkJLy8gVXBkYXRlIHR3ZWVuIHByb3BlcnRpZXMKCQkJaWYgKCBwYXJ0cyAp
IHsKCQkJCXN0YXJ0ID0gdHdlZW4uc3RhcnQgPSArc3RhcnQgfHwgK3RhcmdldCB8fCAwOwoJCQkJ
dHdlZW4udW5pdCA9IHVuaXQ7CgkJCQkvLyBJZiBhICs9Ly09IHRva2VuIHdhcyBwcm92aWRlZCwg
d2UncmUgZG9pbmcgYSByZWxhdGl2ZSBhbmltYXRpb24KCQkJCXR3ZWVuLmVuZCA9IHBhcnRzWyAx
IF0gPwoJCQkJCXN0YXJ0ICsgKCBwYXJ0c1sgMSBdICsgMSApICogcGFydHNbIDIgXSA6CgkJCQkJ
K3BhcnRzWyAyIF07CgkJCX0KCgkJCXJldHVybiB0d2VlbjsKCQl9IF0KCX07CgovLyBBbmltYXRp
b25zIGNyZWF0ZWQgc3luY2hyb25vdXNseSB3aWxsIHJ1biBzeW5jaHJvbm91c2x5CmZ1bmN0aW9u
IGNyZWF0ZUZ4Tm93KCkgewoJc2V0VGltZW91dChmdW5jdGlvbigpIHsKCQlmeE5vdyA9IHVuZGVm
aW5lZDsKCX0pOwoJcmV0dXJuICggZnhOb3cgPSBqUXVlcnkubm93KCkgKTsKfQoKLy8gR2VuZXJh
dGUgcGFyYW1ldGVycyB0byBjcmVhdGUgYSBzdGFuZGFyZCBhbmltYXRpb24KZnVuY3Rpb24gZ2Vu
RngoIHR5cGUsIGluY2x1ZGVXaWR0aCApIHsKCXZhciB3aGljaCwKCQlhdHRycyA9IHsgaGVpZ2h0
OiB0eXBlIH0sCgkJaSA9IDA7CgoJLy8gaWYgd2UgaW5jbHVkZSB3aWR0aCwgc3RlcCB2YWx1ZSBp
cyAxIHRvIGRvIGFsbCBjc3NFeHBhbmQgdmFsdWVzLAoJLy8gaWYgd2UgZG9uJ3QgaW5jbHVkZSB3
aWR0aCwgc3RlcCB2YWx1ZSBpcyAyIHRvIHNraXAgb3ZlciBMZWZ0IGFuZCBSaWdodAoJaW5jbHVk
ZVdpZHRoID0gaW5jbHVkZVdpZHRoID8gMSA6IDA7Cglmb3IgKCA7IGkgPCA0IDsgaSArPSAyIC0g
aW5jbHVkZVdpZHRoICkgewoJCXdoaWNoID0gY3NzRXhwYW5kWyBpIF07CgkJYXR0cnNbICJtYXJn
aW4iICsgd2hpY2ggXSA9IGF0dHJzWyAicGFkZGluZyIgKyB3aGljaCBdID0gdHlwZTsKCX0KCglp
ZiAoIGluY2x1ZGVXaWR0aCApIHsKCQlhdHRycy5vcGFjaXR5ID0gYXR0cnMud2lkdGggPSB0eXBl
OwoJfQoKCXJldHVybiBhdHRyczsKfQoKZnVuY3Rpb24gY3JlYXRlVHdlZW4oIHZhbHVlLCBwcm9w
LCBhbmltYXRpb24gKSB7Cgl2YXIgdHdlZW4sCgkJY29sbGVjdGlvbiA9ICggdHdlZW5lcnNbIHBy
b3AgXSB8fCBbXSApLmNvbmNhdCggdHdlZW5lcnNbICIqIiBdICksCgkJaW5kZXggPSAwLAoJCWxl
bmd0aCA9IGNvbGxlY3Rpb24ubGVuZ3RoOwoJZm9yICggOyBpbmRleCA8IGxlbmd0aDsgaW5kZXgr
KyApIHsKCQlpZiAoICh0d2VlbiA9IGNvbGxlY3Rpb25bIGluZGV4IF0uY2FsbCggYW5pbWF0aW9u
LCBwcm9wLCB2YWx1ZSApKSApIHsKCgkJCS8vIHdlJ3JlIGRvbmUgd2l0aCB0aGlzIHByb3BlcnR5
CgkJCXJldHVybiB0d2VlbjsKCQl9Cgl9Cn0KCmZ1bmN0aW9uIGRlZmF1bHRQcmVmaWx0ZXIoIGVs
ZW0sIHByb3BzLCBvcHRzICkgewoJLyoganNoaW50IHZhbGlkdGhpczogdHJ1ZSAqLwoJdmFyIHBy
b3AsIHZhbHVlLCB0b2dnbGUsIHR3ZWVuLCBob29rcywgb2xkZmlyZSwgZGlzcGxheSwgY2hlY2tE
aXNwbGF5LAoJCWFuaW0gPSB0aGlzLAoJCW9yaWcgPSB7fSwKCQlzdHlsZSA9IGVsZW0uc3R5bGUs
CgkJaGlkZGVuID0gZWxlbS5ub2RlVHlwZSAmJiBpc0hpZGRlbiggZWxlbSApLAoJCWRhdGFTaG93
ID0galF1ZXJ5Ll9kYXRhKCBlbGVtLCAiZnhzaG93IiApOwoKCS8vIGhhbmRsZSBxdWV1ZTogZmFs
c2UgcHJvbWlzZXMKCWlmICggIW9wdHMucXVldWUgKSB7CgkJaG9va3MgPSBqUXVlcnkuX3F1ZXVl
SG9va3MoIGVsZW0sICJmeCIgKTsKCQlpZiAoIGhvb2tzLnVucXVldWVkID09IG51bGwgKSB7CgkJ
CWhvb2tzLnVucXVldWVkID0gMDsKCQkJb2xkZmlyZSA9IGhvb2tzLmVtcHR5LmZpcmU7CgkJCWhv
b2tzLmVtcHR5LmZpcmUgPSBmdW5jdGlvbigpIHsKCQkJCWlmICggIWhvb2tzLnVucXVldWVkICkg
ewoJCQkJCW9sZGZpcmUoKTsKCQkJCX0KCQkJfTsKCQl9CgkJaG9va3MudW5xdWV1ZWQrKzsKCgkJ
YW5pbS5hbHdheXMoZnVuY3Rpb24oKSB7CgkJCS8vIGRvaW5nIHRoaXMgbWFrZXMgc3VyZSB0aGF0
IHRoZSBjb21wbGV0ZSBoYW5kbGVyIHdpbGwgYmUgY2FsbGVkCgkJCS8vIGJlZm9yZSB0aGlzIGNv
bXBsZXRlcwoJCQlhbmltLmFsd2F5cyhmdW5jdGlvbigpIHsKCQkJCWhvb2tzLnVucXVldWVkLS07
CgkJCQlpZiAoICFqUXVlcnkucXVldWUoIGVsZW0sICJmeCIgKS5sZW5ndGggKSB7CgkJCQkJaG9v
a3MuZW1wdHkuZmlyZSgpOwoJCQkJfQoJCQl9KTsKCQl9KTsKCX0KCgkvLyBoZWlnaHQvd2lkdGgg
b3ZlcmZsb3cgcGFzcwoJaWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICYmICggImhlaWdodCIgaW4g
cHJvcHMgfHwgIndpZHRoIiBpbiBwcm9wcyApICkgewoJCS8vIE1ha2Ugc3VyZSB0aGF0IG5vdGhp
bmcgc25lYWtzIG91dAoJCS8vIFJlY29yZCBhbGwgMyBvdmVyZmxvdyBhdHRyaWJ1dGVzIGJlY2F1
c2UgSUUgZG9lcyBub3QKCQkvLyBjaGFuZ2UgdGhlIG92ZXJmbG93IGF0dHJpYnV0ZSB3aGVuIG92
ZXJmbG93WCBhbmQKCQkvLyBvdmVyZmxvd1kgYXJlIHNldCB0byB0aGUgc2FtZSB2YWx1ZQoJCW9w
dHMub3ZlcmZsb3cgPSBbIHN0eWxlLm92ZXJmbG93LCBzdHlsZS5vdmVyZmxvd1gsIHN0eWxlLm92
ZXJmbG93WSBdOwoKCQkvLyBTZXQgZGlzcGxheSBwcm9wZXJ0eSB0byBpbmxpbmUtYmxvY2sgZm9y
IGhlaWdodC93aWR0aAoJCS8vIGFuaW1hdGlvbnMgb24gaW5saW5lIGVsZW1lbnRzIHRoYXQgYXJl
IGhhdmluZyB3aWR0aC9oZWlnaHQgYW5pbWF0ZWQKCQlkaXNwbGF5ID0galF1ZXJ5LmNzcyggZWxl
bSwgImRpc3BsYXkiICk7CgoJCS8vIFRlc3QgZGVmYXVsdCBkaXNwbGF5IGlmIGRpc3BsYXkgaXMg
Y3VycmVudGx5ICJub25lIgoJCWNoZWNrRGlzcGxheSA9IGRpc3BsYXkgPT09ICJub25lIiA/CgkJ
CWpRdWVyeS5fZGF0YSggZWxlbSwgIm9sZGRpc3BsYXkiICkgfHwgZGVmYXVsdERpc3BsYXkoIGVs
ZW0ubm9kZU5hbWUgKSA6IGRpc3BsYXk7CgoJCWlmICggY2hlY2tEaXNwbGF5ID09PSAiaW5saW5l
IiAmJiBqUXVlcnkuY3NzKCBlbGVtLCAiZmxvYXQiICkgPT09ICJub25lIiApIHsKCgkJCS8vIGlu
bGluZS1sZXZlbCBlbGVtZW50cyBhY2NlcHQgaW5saW5lLWJsb2NrOwoJCQkvLyBibG9jay1sZXZl
bCBlbGVtZW50cyBuZWVkIHRvIGJlIGlubGluZSB3aXRoIGxheW91dAoJCQlpZiAoICFzdXBwb3J0
LmlubGluZUJsb2NrTmVlZHNMYXlvdXQgfHwgZGVmYXVsdERpc3BsYXkoIGVsZW0ubm9kZU5hbWUg
KSA9PT0gImlubGluZSIgKSB7CgkJCQlzdHlsZS5kaXNwbGF5ID0gImlubGluZS1ibG9jayI7CgkJ
CX0gZWxzZSB7CgkJCQlzdHlsZS56b29tID0gMTsKCQkJfQoJCX0KCX0KCglpZiAoIG9wdHMub3Zl
cmZsb3cgKSB7CgkJc3R5bGUub3ZlcmZsb3cgPSAiaGlkZGVuIjsKCQlpZiAoICFzdXBwb3J0LnNo
cmlua1dyYXBCbG9ja3MoKSApIHsKCQkJYW5pbS5hbHdheXMoZnVuY3Rpb24oKSB7CgkJCQlzdHls
ZS5vdmVyZmxvdyA9IG9wdHMub3ZlcmZsb3dbIDAgXTsKCQkJCXN0eWxlLm92ZXJmbG93WCA9IG9w
dHMub3ZlcmZsb3dbIDEgXTsKCQkJCXN0eWxlLm92ZXJmbG93WSA9IG9wdHMub3ZlcmZsb3dbIDIg
XTsKCQkJfSk7CgkJfQoJfQoKCS8vIHNob3cvaGlkZSBwYXNzCglmb3IgKCBwcm9wIGluIHByb3Bz
ICkgewoJCXZhbHVlID0gcHJvcHNbIHByb3AgXTsKCQlpZiAoIHJmeHR5cGVzLmV4ZWMoIHZhbHVl
ICkgKSB7CgkJCWRlbGV0ZSBwcm9wc1sgcHJvcCBdOwoJCQl0b2dnbGUgPSB0b2dnbGUgfHwgdmFs
dWUgPT09ICJ0b2dnbGUiOwoJCQlpZiAoIHZhbHVlID09PSAoIGhpZGRlbiA/ICJoaWRlIiA6ICJz
aG93IiApICkgewoKCQkJCS8vIElmIHRoZXJlIGlzIGRhdGFTaG93IGxlZnQgb3ZlciBmcm9tIGEg
c3RvcHBlZCBoaWRlIG9yIHNob3cgYW5kIHdlIGFyZSBnb2luZyB0byBwcm9jZWVkIHdpdGggc2hv
dywgd2Ugc2hvdWxkIHByZXRlbmQgdG8gYmUgaGlkZGVuCgkJCQlpZiAoIHZhbHVlID09PSAic2hv
dyIgJiYgZGF0YVNob3cgJiYgZGF0YVNob3dbIHByb3AgXSAhPT0gdW5kZWZpbmVkICkgewoJCQkJ
CWhpZGRlbiA9IHRydWU7CgkJCQl9IGVsc2UgewoJCQkJCWNvbnRpbnVlOwoJCQkJfQoJCQl9CgkJ
CW9yaWdbIHByb3AgXSA9IGRhdGFTaG93ICYmIGRhdGFTaG93WyBwcm9wIF0gfHwgalF1ZXJ5LnN0
eWxlKCBlbGVtLCBwcm9wICk7CgoJCS8vIEFueSBub24tZnggdmFsdWUgc3RvcHMgdXMgZnJvbSBy
ZXN0b3JpbmcgdGhlIG9yaWdpbmFsIGRpc3BsYXkgdmFsdWUKCQl9IGVsc2UgewoJCQlkaXNwbGF5
ID0gdW5kZWZpbmVkOwoJCX0KCX0KCglpZiAoICFqUXVlcnkuaXNFbXB0eU9iamVjdCggb3JpZyAp
ICkgewoJCWlmICggZGF0YVNob3cgKSB7CgkJCWlmICggImhpZGRlbiIgaW4gZGF0YVNob3cgKSB7
CgkJCQloaWRkZW4gPSBkYXRhU2hvdy5oaWRkZW47CgkJCX0KCQl9IGVsc2UgewoJCQlkYXRhU2hv
dyA9IGpRdWVyeS5fZGF0YSggZWxlbSwgImZ4c2hvdyIsIHt9ICk7CgkJfQoKCQkvLyBzdG9yZSBz
dGF0ZSBpZiBpdHMgdG9nZ2xlIC0gZW5hYmxlcyAuc3RvcCgpLnRvZ2dsZSgpIHRvICJyZXZlcnNl
IgoJCWlmICggdG9nZ2xlICkgewoJCQlkYXRhU2hvdy5oaWRkZW4gPSAhaGlkZGVuOwoJCX0KCQlp
ZiAoIGhpZGRlbiApIHsKCQkJalF1ZXJ5KCBlbGVtICkuc2hvdygpOwoJCX0gZWxzZSB7CgkJCWFu
aW0uZG9uZShmdW5jdGlvbigpIHsKCQkJCWpRdWVyeSggZWxlbSApLmhpZGUoKTsKCQkJfSk7CgkJ
fQoJCWFuaW0uZG9uZShmdW5jdGlvbigpIHsKCQkJdmFyIHByb3A7CgkJCWpRdWVyeS5fcmVtb3Zl
RGF0YSggZWxlbSwgImZ4c2hvdyIgKTsKCQkJZm9yICggcHJvcCBpbiBvcmlnICkgewoJCQkJalF1
ZXJ5LnN0eWxlKCBlbGVtLCBwcm9wLCBvcmlnWyBwcm9wIF0gKTsKCQkJfQoJCX0pOwoJCWZvciAo
IHByb3AgaW4gb3JpZyApIHsKCQkJdHdlZW4gPSBjcmVhdGVUd2VlbiggaGlkZGVuID8gZGF0YVNo
b3dbIHByb3AgXSA6IDAsIHByb3AsIGFuaW0gKTsKCgkJCWlmICggISggcHJvcCBpbiBkYXRhU2hv
dyApICkgewoJCQkJZGF0YVNob3dbIHByb3AgXSA9IHR3ZWVuLnN0YXJ0OwoJCQkJaWYgKCBoaWRk
ZW4gKSB7CgkJCQkJdHdlZW4uZW5kID0gdHdlZW4uc3RhcnQ7CgkJCQkJdHdlZW4uc3RhcnQgPSBw
cm9wID09PSAid2lkdGgiIHx8IHByb3AgPT09ICJoZWlnaHQiID8gMSA6IDA7CgkJCQl9CgkJCX0K
CQl9CgoJLy8gSWYgdGhpcyBpcyBhIG5vb3AgbGlrZSAuaGlkZSgpLmhpZGUoKSwgcmVzdG9yZSBh
biBvdmVyd3JpdHRlbiBkaXNwbGF5IHZhbHVlCgl9IGVsc2UgaWYgKCAoZGlzcGxheSA9PT0gIm5v
bmUiID8gZGVmYXVsdERpc3BsYXkoIGVsZW0ubm9kZU5hbWUgKSA6IGRpc3BsYXkpID09PSAiaW5s
aW5lIiApIHsKCQlzdHlsZS5kaXNwbGF5ID0gZGlzcGxheTsKCX0KfQoKZnVuY3Rpb24gcHJvcEZp
bHRlciggcHJvcHMsIHNwZWNpYWxFYXNpbmcgKSB7Cgl2YXIgaW5kZXgsIG5hbWUsIGVhc2luZywg
dmFsdWUsIGhvb2tzOwoKCS8vIGNhbWVsQ2FzZSwgc3BlY2lhbEVhc2luZyBhbmQgZXhwYW5kIGNz
c0hvb2sgcGFzcwoJZm9yICggaW5kZXggaW4gcHJvcHMgKSB7CgkJbmFtZSA9IGpRdWVyeS5jYW1l
bENhc2UoIGluZGV4ICk7CgkJZWFzaW5nID0gc3BlY2lhbEVhc2luZ1sgbmFtZSBdOwoJCXZhbHVl
ID0gcHJvcHNbIGluZGV4IF07CgkJaWYgKCBqUXVlcnkuaXNBcnJheSggdmFsdWUgKSApIHsKCQkJ
ZWFzaW5nID0gdmFsdWVbIDEgXTsKCQkJdmFsdWUgPSBwcm9wc1sgaW5kZXggXSA9IHZhbHVlWyAw
IF07CgkJfQoKCQlpZiAoIGluZGV4ICE9PSBuYW1lICkgewoJCQlwcm9wc1sgbmFtZSBdID0gdmFs
dWU7CgkJCWRlbGV0ZSBwcm9wc1sgaW5kZXggXTsKCQl9CgoJCWhvb2tzID0galF1ZXJ5LmNzc0hv
b2tzWyBuYW1lIF07CgkJaWYgKCBob29rcyAmJiAiZXhwYW5kIiBpbiBob29rcyApIHsKCQkJdmFs
dWUgPSBob29rcy5leHBhbmQoIHZhbHVlICk7CgkJCWRlbGV0ZSBwcm9wc1sgbmFtZSBdOwoKCQkJ
Ly8gbm90IHF1aXRlICQuZXh0ZW5kLCB0aGlzIHdvbnQgb3ZlcndyaXRlIGtleXMgYWxyZWFkeSBw
cmVzZW50LgoJCQkvLyBhbHNvIC0gcmV1c2luZyAnaW5kZXgnIGZyb20gYWJvdmUgYmVjYXVzZSB3
ZSBoYXZlIHRoZSBjb3JyZWN0ICJuYW1lIgoJCQlmb3IgKCBpbmRleCBpbiB2YWx1ZSApIHsKCQkJ
CWlmICggISggaW5kZXggaW4gcHJvcHMgKSApIHsKCQkJCQlwcm9wc1sgaW5kZXggXSA9IHZhbHVl
WyBpbmRleCBdOwoJCQkJCXNwZWNpYWxFYXNpbmdbIGluZGV4IF0gPSBlYXNpbmc7CgkJCQl9CgkJ
CX0KCQl9IGVsc2UgewoJCQlzcGVjaWFsRWFzaW5nWyBuYW1lIF0gPSBlYXNpbmc7CgkJfQoJfQp9
CgpmdW5jdGlvbiBBbmltYXRpb24oIGVsZW0sIHByb3BlcnRpZXMsIG9wdGlvbnMgKSB7Cgl2YXIg
cmVzdWx0LAoJCXN0b3BwZWQsCgkJaW5kZXggPSAwLAoJCWxlbmd0aCA9IGFuaW1hdGlvblByZWZp
bHRlcnMubGVuZ3RoLAoJCWRlZmVycmVkID0galF1ZXJ5LkRlZmVycmVkKCkuYWx3YXlzKCBmdW5j
dGlvbigpIHsKCQkJLy8gZG9uJ3QgbWF0Y2ggZWxlbSBpbiB0aGUgOmFuaW1hdGVkIHNlbGVjdG9y
CgkJCWRlbGV0ZSB0aWNrLmVsZW07CgkJfSksCgkJdGljayA9IGZ1bmN0aW9uKCkgewoJCQlpZiAo
IHN0b3BwZWQgKSB7CgkJCQlyZXR1cm4gZmFsc2U7CgkJCX0KCQkJdmFyIGN1cnJlbnRUaW1lID0g
ZnhOb3cgfHwgY3JlYXRlRnhOb3coKSwKCQkJCXJlbWFpbmluZyA9IE1hdGgubWF4KCAwLCBhbmlt
YXRpb24uc3RhcnRUaW1lICsgYW5pbWF0aW9uLmR1cmF0aW9uIC0gY3VycmVudFRpbWUgKSwKCQkJ
CS8vIGFyY2hhaWMgY3Jhc2ggYnVnIHdvbid0IGFsbG93IHVzIHRvIHVzZSAxIC0gKCAwLjUgfHwg
MCApICgjMTI0OTcpCgkJCQl0ZW1wID0gcmVtYWluaW5nIC8gYW5pbWF0aW9uLmR1cmF0aW9uIHx8
IDAsCgkJCQlwZXJjZW50ID0gMSAtIHRlbXAsCgkJCQlpbmRleCA9IDAsCgkJCQlsZW5ndGggPSBh
bmltYXRpb24udHdlZW5zLmxlbmd0aDsKCgkJCWZvciAoIDsgaW5kZXggPCBsZW5ndGggOyBpbmRl
eCsrICkgewoJCQkJYW5pbWF0aW9uLnR3ZWVuc1sgaW5kZXggXS5ydW4oIHBlcmNlbnQgKTsKCQkJ
fQoKCQkJZGVmZXJyZWQubm90aWZ5V2l0aCggZWxlbSwgWyBhbmltYXRpb24sIHBlcmNlbnQsIHJl
bWFpbmluZyBdKTsKCgkJCWlmICggcGVyY2VudCA8IDEgJiYgbGVuZ3RoICkgewoJCQkJcmV0dXJu
IHJlbWFpbmluZzsKCQkJfSBlbHNlIHsKCQkJCWRlZmVycmVkLnJlc29sdmVXaXRoKCBlbGVtLCBb
IGFuaW1hdGlvbiBdICk7CgkJCQlyZXR1cm4gZmFsc2U7CgkJCX0KCQl9LAoJCWFuaW1hdGlvbiA9
IGRlZmVycmVkLnByb21pc2UoewoJCQllbGVtOiBlbGVtLAoJCQlwcm9wczogalF1ZXJ5LmV4dGVu
ZCgge30sIHByb3BlcnRpZXMgKSwKCQkJb3B0czogalF1ZXJ5LmV4dGVuZCggdHJ1ZSwgeyBzcGVj
aWFsRWFzaW5nOiB7fSB9LCBvcHRpb25zICksCgkJCW9yaWdpbmFsUHJvcGVydGllczogcHJvcGVy
dGllcywKCQkJb3JpZ2luYWxPcHRpb25zOiBvcHRpb25zLAoJCQlzdGFydFRpbWU6IGZ4Tm93IHx8
IGNyZWF0ZUZ4Tm93KCksCgkJCWR1cmF0aW9uOiBvcHRpb25zLmR1cmF0aW9uLAoJCQl0d2VlbnM6
IFtdLAoJCQljcmVhdGVUd2VlbjogZnVuY3Rpb24oIHByb3AsIGVuZCApIHsKCQkJCXZhciB0d2Vl
biA9IGpRdWVyeS5Ud2VlbiggZWxlbSwgYW5pbWF0aW9uLm9wdHMsIHByb3AsIGVuZCwKCQkJCQkJ
YW5pbWF0aW9uLm9wdHMuc3BlY2lhbEVhc2luZ1sgcHJvcCBdIHx8IGFuaW1hdGlvbi5vcHRzLmVh
c2luZyApOwoJCQkJYW5pbWF0aW9uLnR3ZWVucy5wdXNoKCB0d2VlbiApOwoJCQkJcmV0dXJuIHR3
ZWVuOwoJCQl9LAoJCQlzdG9wOiBmdW5jdGlvbiggZ290b0VuZCApIHsKCQkJCXZhciBpbmRleCA9
IDAsCgkJCQkJLy8gaWYgd2UgYXJlIGdvaW5nIHRvIHRoZSBlbmQsIHdlIHdhbnQgdG8gcnVuIGFs
bCB0aGUgdHdlZW5zCgkJCQkJLy8gb3RoZXJ3aXNlIHdlIHNraXAgdGhpcyBwYXJ0CgkJCQkJbGVu
Z3RoID0gZ290b0VuZCA/IGFuaW1hdGlvbi50d2VlbnMubGVuZ3RoIDogMDsKCQkJCWlmICggc3Rv
cHBlZCApIHsKCQkJCQlyZXR1cm4gdGhpczsKCQkJCX0KCQkJCXN0b3BwZWQgPSB0cnVlOwoJCQkJ
Zm9yICggOyBpbmRleCA8IGxlbmd0aCA7IGluZGV4KysgKSB7CgkJCQkJYW5pbWF0aW9uLnR3ZWVu
c1sgaW5kZXggXS5ydW4oIDEgKTsKCQkJCX0KCgkJCQkvLyByZXNvbHZlIHdoZW4gd2UgcGxheWVk
IHRoZSBsYXN0IGZyYW1lCgkJCQkvLyBvdGhlcndpc2UsIHJlamVjdAoJCQkJaWYgKCBnb3RvRW5k
ICkgewoJCQkJCWRlZmVycmVkLnJlc29sdmVXaXRoKCBlbGVtLCBbIGFuaW1hdGlvbiwgZ290b0Vu
ZCBdICk7CgkJCQl9IGVsc2UgewoJCQkJCWRlZmVycmVkLnJlamVjdFdpdGgoIGVsZW0sIFsgYW5p
bWF0aW9uLCBnb3RvRW5kIF0gKTsKCQkJCX0KCQkJCXJldHVybiB0aGlzOwoJCQl9CgkJfSksCgkJ
cHJvcHMgPSBhbmltYXRpb24ucHJvcHM7CgoJcHJvcEZpbHRlciggcHJvcHMsIGFuaW1hdGlvbi5v
cHRzLnNwZWNpYWxFYXNpbmcgKTsKCglmb3IgKCA7IGluZGV4IDwgbGVuZ3RoIDsgaW5kZXgrKyAp
IHsKCQlyZXN1bHQgPSBhbmltYXRpb25QcmVmaWx0ZXJzWyBpbmRleCBdLmNhbGwoIGFuaW1hdGlv
biwgZWxlbSwgcHJvcHMsIGFuaW1hdGlvbi5vcHRzICk7CgkJaWYgKCByZXN1bHQgKSB7CgkJCXJl
dHVybiByZXN1bHQ7CgkJfQoJfQoKCWpRdWVyeS5tYXAoIHByb3BzLCBjcmVhdGVUd2VlbiwgYW5p
bWF0aW9uICk7CgoJaWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggYW5pbWF0aW9uLm9wdHMuc3RhcnQg
KSApIHsKCQlhbmltYXRpb24ub3B0cy5zdGFydC5jYWxsKCBlbGVtLCBhbmltYXRpb24gKTsKCX0K
CglqUXVlcnkuZngudGltZXIoCgkJalF1ZXJ5LmV4dGVuZCggdGljaywgewoJCQllbGVtOiBlbGVt
LAoJCQlhbmltOiBhbmltYXRpb24sCgkJCXF1ZXVlOiBhbmltYXRpb24ub3B0cy5xdWV1ZQoJCX0p
CgkpOwoKCS8vIGF0dGFjaCBjYWxsYmFja3MgZnJvbSBvcHRpb25zCglyZXR1cm4gYW5pbWF0aW9u
LnByb2dyZXNzKCBhbmltYXRpb24ub3B0cy5wcm9ncmVzcyApCgkJLmRvbmUoIGFuaW1hdGlvbi5v
cHRzLmRvbmUsIGFuaW1hdGlvbi5vcHRzLmNvbXBsZXRlICkKCQkuZmFpbCggYW5pbWF0aW9uLm9w
dHMuZmFpbCApCgkJLmFsd2F5cyggYW5pbWF0aW9uLm9wdHMuYWx3YXlzICk7Cn0KCmpRdWVyeS5B
bmltYXRpb24gPSBqUXVlcnkuZXh0ZW5kKCBBbmltYXRpb24sIHsKCXR3ZWVuZXI6IGZ1bmN0aW9u
KCBwcm9wcywgY2FsbGJhY2sgKSB7CgkJaWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggcHJvcHMgKSAp
IHsKCQkJY2FsbGJhY2sgPSBwcm9wczsKCQkJcHJvcHMgPSBbICIqIiBdOwoJCX0gZWxzZSB7CgkJ
CXByb3BzID0gcHJvcHMuc3BsaXQoIiAiKTsKCQl9CgoJCXZhciBwcm9wLAoJCQlpbmRleCA9IDAs
CgkJCWxlbmd0aCA9IHByb3BzLmxlbmd0aDsKCgkJZm9yICggOyBpbmRleCA8IGxlbmd0aCA7IGlu
ZGV4KysgKSB7CgkJCXByb3AgPSBwcm9wc1sgaW5kZXggXTsKCQkJdHdlZW5lcnNbIHByb3AgXSA9
IHR3ZWVuZXJzWyBwcm9wIF0gfHwgW107CgkJCXR3ZWVuZXJzWyBwcm9wIF0udW5zaGlmdCggY2Fs
bGJhY2sgKTsKCQl9Cgl9LAoKCXByZWZpbHRlcjogZnVuY3Rpb24oIGNhbGxiYWNrLCBwcmVwZW5k
ICkgewoJCWlmICggcHJlcGVuZCApIHsKCQkJYW5pbWF0aW9uUHJlZmlsdGVycy51bnNoaWZ0KCBj
YWxsYmFjayApOwoJCX0gZWxzZSB7CgkJCWFuaW1hdGlvblByZWZpbHRlcnMucHVzaCggY2FsbGJh
Y2sgKTsKCQl9Cgl9Cn0pOwoKalF1ZXJ5LnNwZWVkID0gZnVuY3Rpb24oIHNwZWVkLCBlYXNpbmcs
IGZuICkgewoJdmFyIG9wdCA9IHNwZWVkICYmIHR5cGVvZiBzcGVlZCA9PT0gIm9iamVjdCIgPyBq
UXVlcnkuZXh0ZW5kKCB7fSwgc3BlZWQgKSA6IHsKCQljb21wbGV0ZTogZm4gfHwgIWZuICYmIGVh
c2luZyB8fAoJCQlqUXVlcnkuaXNGdW5jdGlvbiggc3BlZWQgKSAmJiBzcGVlZCwKCQlkdXJhdGlv
bjogc3BlZWQsCgkJZWFzaW5nOiBmbiAmJiBlYXNpbmcgfHwgZWFzaW5nICYmICFqUXVlcnkuaXNG
dW5jdGlvbiggZWFzaW5nICkgJiYgZWFzaW5nCgl9OwoKCW9wdC5kdXJhdGlvbiA9IGpRdWVyeS5m
eC5vZmYgPyAwIDogdHlwZW9mIG9wdC5kdXJhdGlvbiA9PT0gIm51bWJlciIgPyBvcHQuZHVyYXRp
b24gOgoJCW9wdC5kdXJhdGlvbiBpbiBqUXVlcnkuZnguc3BlZWRzID8galF1ZXJ5LmZ4LnNwZWVk
c1sgb3B0LmR1cmF0aW9uIF0gOiBqUXVlcnkuZnguc3BlZWRzLl9kZWZhdWx0OwoKCS8vIG5vcm1h
bGl6ZSBvcHQucXVldWUgLSB0cnVlL3VuZGVmaW5lZC9udWxsIC0+ICJmeCIKCWlmICggb3B0LnF1
ZXVlID09IG51bGwgfHwgb3B0LnF1ZXVlID09PSB0cnVlICkgewoJCW9wdC5xdWV1ZSA9ICJmeCI7
Cgl9CgoJLy8gUXVldWVpbmcKCW9wdC5vbGQgPSBvcHQuY29tcGxldGU7CgoJb3B0LmNvbXBsZXRl
ID0gZnVuY3Rpb24oKSB7CgkJaWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggb3B0Lm9sZCApICkgewoJ
CQlvcHQub2xkLmNhbGwoIHRoaXMgKTsKCQl9CgoJCWlmICggb3B0LnF1ZXVlICkgewoJCQlqUXVl
cnkuZGVxdWV1ZSggdGhpcywgb3B0LnF1ZXVlICk7CgkJfQoJfTsKCglyZXR1cm4gb3B0Owp9OwoK
alF1ZXJ5LmZuLmV4dGVuZCh7CglmYWRlVG86IGZ1bmN0aW9uKCBzcGVlZCwgdG8sIGVhc2luZywg
Y2FsbGJhY2sgKSB7CgoJCS8vIHNob3cgYW55IGhpZGRlbiBlbGVtZW50cyBhZnRlciBzZXR0aW5n
IG9wYWNpdHkgdG8gMAoJCXJldHVybiB0aGlzLmZpbHRlciggaXNIaWRkZW4gKS5jc3MoICJvcGFj
aXR5IiwgMCApLnNob3coKQoKCQkJLy8gYW5pbWF0ZSB0byB0aGUgdmFsdWUgc3BlY2lmaWVkCgkJ
CS5lbmQoKS5hbmltYXRlKHsgb3BhY2l0eTogdG8gfSwgc3BlZWQsIGVhc2luZywgY2FsbGJhY2sg
KTsKCX0sCglhbmltYXRlOiBmdW5jdGlvbiggcHJvcCwgc3BlZWQsIGVhc2luZywgY2FsbGJhY2sg
KSB7CgkJdmFyIGVtcHR5ID0galF1ZXJ5LmlzRW1wdHlPYmplY3QoIHByb3AgKSwKCQkJb3B0YWxs
ID0galF1ZXJ5LnNwZWVkKCBzcGVlZCwgZWFzaW5nLCBjYWxsYmFjayApLAoJCQlkb0FuaW1hdGlv
biA9IGZ1bmN0aW9uKCkgewoJCQkJLy8gT3BlcmF0ZSBvbiBhIGNvcHkgb2YgcHJvcCBzbyBwZXIt
cHJvcGVydHkgZWFzaW5nIHdvbid0IGJlIGxvc3QKCQkJCXZhciBhbmltID0gQW5pbWF0aW9uKCB0
aGlzLCBqUXVlcnkuZXh0ZW5kKCB7fSwgcHJvcCApLCBvcHRhbGwgKTsKCgkJCQkvLyBFbXB0eSBh
bmltYXRpb25zLCBvciBmaW5pc2hpbmcgcmVzb2x2ZXMgaW1tZWRpYXRlbHkKCQkJCWlmICggZW1w
dHkgfHwgalF1ZXJ5Ll9kYXRhKCB0aGlzLCAiZmluaXNoIiApICkgewoJCQkJCWFuaW0uc3RvcCgg
dHJ1ZSApOwoJCQkJfQoJCQl9OwoJCQlkb0FuaW1hdGlvbi5maW5pc2ggPSBkb0FuaW1hdGlvbjsK
CgkJcmV0dXJuIGVtcHR5IHx8IG9wdGFsbC5xdWV1ZSA9PT0gZmFsc2UgPwoJCQl0aGlzLmVhY2go
IGRvQW5pbWF0aW9uICkgOgoJCQl0aGlzLnF1ZXVlKCBvcHRhbGwucXVldWUsIGRvQW5pbWF0aW9u
ICk7Cgl9LAoJc3RvcDogZnVuY3Rpb24oIHR5cGUsIGNsZWFyUXVldWUsIGdvdG9FbmQgKSB7CgkJ
dmFyIHN0b3BRdWV1ZSA9IGZ1bmN0aW9uKCBob29rcyApIHsKCQkJdmFyIHN0b3AgPSBob29rcy5z
dG9wOwoJCQlkZWxldGUgaG9va3Muc3RvcDsKCQkJc3RvcCggZ290b0VuZCApOwoJCX07CgoJCWlm
ICggdHlwZW9mIHR5cGUgIT09ICJzdHJpbmciICkgewoJCQlnb3RvRW5kID0gY2xlYXJRdWV1ZTsK
CQkJY2xlYXJRdWV1ZSA9IHR5cGU7CgkJCXR5cGUgPSB1bmRlZmluZWQ7CgkJfQoJCWlmICggY2xl
YXJRdWV1ZSAmJiB0eXBlICE9PSBmYWxzZSApIHsKCQkJdGhpcy5xdWV1ZSggdHlwZSB8fCAiZngi
LCBbXSApOwoJCX0KCgkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJdmFyIGRlcXVl
dWUgPSB0cnVlLAoJCQkJaW5kZXggPSB0eXBlICE9IG51bGwgJiYgdHlwZSArICJxdWV1ZUhvb2tz
IiwKCQkJCXRpbWVycyA9IGpRdWVyeS50aW1lcnMsCgkJCQlkYXRhID0galF1ZXJ5Ll9kYXRhKCB0
aGlzICk7CgoJCQlpZiAoIGluZGV4ICkgewoJCQkJaWYgKCBkYXRhWyBpbmRleCBdICYmIGRhdGFb
IGluZGV4IF0uc3RvcCApIHsKCQkJCQlzdG9wUXVldWUoIGRhdGFbIGluZGV4IF0gKTsKCQkJCX0K
CQkJfSBlbHNlIHsKCQkJCWZvciAoIGluZGV4IGluIGRhdGEgKSB7CgkJCQkJaWYgKCBkYXRhWyBp
bmRleCBdICYmIGRhdGFbIGluZGV4IF0uc3RvcCAmJiBycnVuLnRlc3QoIGluZGV4ICkgKSB7CgkJ
CQkJCXN0b3BRdWV1ZSggZGF0YVsgaW5kZXggXSApOwoJCQkJCX0KCQkJCX0KCQkJfQoKCQkJZm9y
ICggaW5kZXggPSB0aW1lcnMubGVuZ3RoOyBpbmRleC0tOyApIHsKCQkJCWlmICggdGltZXJzWyBp
bmRleCBdLmVsZW0gPT09IHRoaXMgJiYgKHR5cGUgPT0gbnVsbCB8fCB0aW1lcnNbIGluZGV4IF0u
cXVldWUgPT09IHR5cGUpICkgewoJCQkJCXRpbWVyc1sgaW5kZXggXS5hbmltLnN0b3AoIGdvdG9F
bmQgKTsKCQkJCQlkZXF1ZXVlID0gZmFsc2U7CgkJCQkJdGltZXJzLnNwbGljZSggaW5kZXgsIDEg
KTsKCQkJCX0KCQkJfQoKCQkJLy8gc3RhcnQgdGhlIG5leHQgaW4gdGhlIHF1ZXVlIGlmIHRoZSBs
YXN0IHN0ZXAgd2Fzbid0IGZvcmNlZAoJCQkvLyB0aW1lcnMgY3VycmVudGx5IHdpbGwgY2FsbCB0
aGVpciBjb21wbGV0ZSBjYWxsYmFja3MsIHdoaWNoIHdpbGwgZGVxdWV1ZQoJCQkvLyBidXQgb25s
eSBpZiB0aGV5IHdlcmUgZ290b0VuZAoJCQlpZiAoIGRlcXVldWUgfHwgIWdvdG9FbmQgKSB7CgkJ
CQlqUXVlcnkuZGVxdWV1ZSggdGhpcywgdHlwZSApOwoJCQl9CgkJfSk7Cgl9LAoJZmluaXNoOiBm
dW5jdGlvbiggdHlwZSApIHsKCQlpZiAoIHR5cGUgIT09IGZhbHNlICkgewoJCQl0eXBlID0gdHlw
ZSB8fCAiZngiOwoJCX0KCQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkgewoJCQl2YXIgaW5k
ZXgsCgkJCQlkYXRhID0galF1ZXJ5Ll9kYXRhKCB0aGlzICksCgkJCQlxdWV1ZSA9IGRhdGFbIHR5
cGUgKyAicXVldWUiIF0sCgkJCQlob29rcyA9IGRhdGFbIHR5cGUgKyAicXVldWVIb29rcyIgXSwK
CQkJCXRpbWVycyA9IGpRdWVyeS50aW1lcnMsCgkJCQlsZW5ndGggPSBxdWV1ZSA/IHF1ZXVlLmxl
bmd0aCA6IDA7CgoJCQkvLyBlbmFibGUgZmluaXNoaW5nIGZsYWcgb24gcHJpdmF0ZSBkYXRhCgkJ
CWRhdGEuZmluaXNoID0gdHJ1ZTsKCgkJCS8vIGVtcHR5IHRoZSBxdWV1ZSBmaXJzdAoJCQlqUXVl
cnkucXVldWUoIHRoaXMsIHR5cGUsIFtdICk7CgoJCQlpZiAoIGhvb2tzICYmIGhvb2tzLnN0b3Ag
KSB7CgkJCQlob29rcy5zdG9wLmNhbGwoIHRoaXMsIHRydWUgKTsKCQkJfQoKCQkJLy8gbG9vayBm
b3IgYW55IGFjdGl2ZSBhbmltYXRpb25zLCBhbmQgZmluaXNoIHRoZW0KCQkJZm9yICggaW5kZXgg
PSB0aW1lcnMubGVuZ3RoOyBpbmRleC0tOyApIHsKCQkJCWlmICggdGltZXJzWyBpbmRleCBdLmVs
ZW0gPT09IHRoaXMgJiYgdGltZXJzWyBpbmRleCBdLnF1ZXVlID09PSB0eXBlICkgewoJCQkJCXRp
bWVyc1sgaW5kZXggXS5hbmltLnN0b3AoIHRydWUgKTsKCQkJCQl0aW1lcnMuc3BsaWNlKCBpbmRl
eCwgMSApOwoJCQkJfQoJCQl9CgoJCQkvLyBsb29rIGZvciBhbnkgYW5pbWF0aW9ucyBpbiB0aGUg
b2xkIHF1ZXVlIGFuZCBmaW5pc2ggdGhlbQoJCQlmb3IgKCBpbmRleCA9IDA7IGluZGV4IDwgbGVu
Z3RoOyBpbmRleCsrICkgewoJCQkJaWYgKCBxdWV1ZVsgaW5kZXggXSAmJiBxdWV1ZVsgaW5kZXgg
XS5maW5pc2ggKSB7CgkJCQkJcXVldWVbIGluZGV4IF0uZmluaXNoLmNhbGwoIHRoaXMgKTsKCQkJ
CX0KCQkJfQoKCQkJLy8gdHVybiBvZmYgZmluaXNoaW5nIGZsYWcKCQkJZGVsZXRlIGRhdGEuZmlu
aXNoOwoJCX0pOwoJfQp9KTsKCmpRdWVyeS5lYWNoKFsgInRvZ2dsZSIsICJzaG93IiwgImhpZGUi
IF0sIGZ1bmN0aW9uKCBpLCBuYW1lICkgewoJdmFyIGNzc0ZuID0galF1ZXJ5LmZuWyBuYW1lIF07
CglqUXVlcnkuZm5bIG5hbWUgXSA9IGZ1bmN0aW9uKCBzcGVlZCwgZWFzaW5nLCBjYWxsYmFjayAp
IHsKCQlyZXR1cm4gc3BlZWQgPT0gbnVsbCB8fCB0eXBlb2Ygc3BlZWQgPT09ICJib29sZWFuIiA/
CgkJCWNzc0ZuLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKSA6CgkJCXRoaXMuYW5pbWF0ZSggZ2Vu
RngoIG5hbWUsIHRydWUgKSwgc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKTsKCX07Cn0pOwoKLy8g
R2VuZXJhdGUgc2hvcnRjdXRzIGZvciBjdXN0b20gYW5pbWF0aW9ucwpqUXVlcnkuZWFjaCh7Cglz
bGlkZURvd246IGdlbkZ4KCJzaG93IiksCglzbGlkZVVwOiBnZW5GeCgiaGlkZSIpLAoJc2xpZGVU
b2dnbGU6IGdlbkZ4KCJ0b2dnbGUiKSwKCWZhZGVJbjogeyBvcGFjaXR5OiAic2hvdyIgfSwKCWZh
ZGVPdXQ6IHsgb3BhY2l0eTogImhpZGUiIH0sCglmYWRlVG9nZ2xlOiB7IG9wYWNpdHk6ICJ0b2dn
bGUiIH0KfSwgZnVuY3Rpb24oIG5hbWUsIHByb3BzICkgewoJalF1ZXJ5LmZuWyBuYW1lIF0gPSBm
dW5jdGlvbiggc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSB7CgkJcmV0dXJuIHRoaXMuYW5pbWF0
ZSggcHJvcHMsIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrICk7Cgl9Owp9KTsKCmpRdWVyeS50aW1l
cnMgPSBbXTsKalF1ZXJ5LmZ4LnRpY2sgPSBmdW5jdGlvbigpIHsKCXZhciB0aW1lciwKCQl0aW1l
cnMgPSBqUXVlcnkudGltZXJzLAoJCWkgPSAwOwoKCWZ4Tm93ID0galF1ZXJ5Lm5vdygpOwoKCWZv
ciAoIDsgaSA8IHRpbWVycy5sZW5ndGg7IGkrKyApIHsKCQl0aW1lciA9IHRpbWVyc1sgaSBdOwoJ
CS8vIENoZWNrcyB0aGUgdGltZXIgaGFzIG5vdCBhbHJlYWR5IGJlZW4gcmVtb3ZlZAoJCWlmICgg
IXRpbWVyKCkgJiYgdGltZXJzWyBpIF0gPT09IHRpbWVyICkgewoJCQl0aW1lcnMuc3BsaWNlKCBp
LS0sIDEgKTsKCQl9Cgl9CgoJaWYgKCAhdGltZXJzLmxlbmd0aCApIHsKCQlqUXVlcnkuZnguc3Rv
cCgpOwoJfQoJZnhOb3cgPSB1bmRlZmluZWQ7Cn07CgpqUXVlcnkuZngudGltZXIgPSBmdW5jdGlv
biggdGltZXIgKSB7CglqUXVlcnkudGltZXJzLnB1c2goIHRpbWVyICk7CglpZiAoIHRpbWVyKCkg
KSB7CgkJalF1ZXJ5LmZ4LnN0YXJ0KCk7Cgl9IGVsc2UgewoJCWpRdWVyeS50aW1lcnMucG9wKCk7
Cgl9Cn07CgpqUXVlcnkuZnguaW50ZXJ2YWwgPSAxMzsKCmpRdWVyeS5meC5zdGFydCA9IGZ1bmN0
aW9uKCkgewoJaWYgKCAhdGltZXJJZCApIHsKCQl0aW1lcklkID0gc2V0SW50ZXJ2YWwoIGpRdWVy
eS5meC50aWNrLCBqUXVlcnkuZnguaW50ZXJ2YWwgKTsKCX0KfTsKCmpRdWVyeS5meC5zdG9wID0g
ZnVuY3Rpb24oKSB7CgljbGVhckludGVydmFsKCB0aW1lcklkICk7Cgl0aW1lcklkID0gbnVsbDsK
fTsKCmpRdWVyeS5meC5zcGVlZHMgPSB7CglzbG93OiA2MDAsCglmYXN0OiAyMDAsCgkvLyBEZWZh
dWx0IHNwZWVkCglfZGVmYXVsdDogNDAwCn07CgoKLy8gQmFzZWQgb2ZmIG9mIHRoZSBwbHVnaW4g
YnkgQ2xpbnQgSGVsZmVycywgd2l0aCBwZXJtaXNzaW9uLgovLyBodHRwOi8vYmxpbmRzaWduYWxz
LmNvbS9pbmRleC5waHAvMjAwOS8wNy9qcXVlcnktZGVsYXkvCmpRdWVyeS5mbi5kZWxheSA9IGZ1
bmN0aW9uKCB0aW1lLCB0eXBlICkgewoJdGltZSA9IGpRdWVyeS5meCA/IGpRdWVyeS5meC5zcGVl
ZHNbIHRpbWUgXSB8fCB0aW1lIDogdGltZTsKCXR5cGUgPSB0eXBlIHx8ICJmeCI7CgoJcmV0dXJu
IHRoaXMucXVldWUoIHR5cGUsIGZ1bmN0aW9uKCBuZXh0LCBob29rcyApIHsKCQl2YXIgdGltZW91
dCA9IHNldFRpbWVvdXQoIG5leHQsIHRpbWUgKTsKCQlob29rcy5zdG9wID0gZnVuY3Rpb24oKSB7
CgkJCWNsZWFyVGltZW91dCggdGltZW91dCApOwoJCX07Cgl9KTsKfTsKCgooZnVuY3Rpb24oKSB7
CgkvLyBNaW5pZmllZDogdmFyIGEsYixjLGQsZQoJdmFyIGlucHV0LCBkaXYsIHNlbGVjdCwgYSwg
b3B0OwoKCS8vIFNldHVwCglkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCAiZGl2IiApOwoJ
ZGl2LnNldEF0dHJpYnV0ZSggImNsYXNzTmFtZSIsICJ0IiApOwoJZGl2LmlubmVySFRNTCA9ICIg
IDxsaW5rLz48dGFibGU+PC90YWJsZT48YSBocmVmPScvYSc+YTwvYT48aW5wdXQgdHlwZT0nY2hl
Y2tib3gnLz4iOwoJYSA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYSIpWyAwIF07CgoJLy8g
Rmlyc3QgYmF0Y2ggb2YgdGVzdHMuCglzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJz
ZWxlY3QiKTsKCW9wdCA9IHNlbGVjdC5hcHBlbmRDaGlsZCggZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgib3B0aW9uIikgKTsKCWlucHV0ID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIp
WyAwIF07CgoJYS5zdHlsZS5jc3NUZXh0ID0gInRvcDoxcHgiOwoKCS8vIFRlc3Qgc2V0QXR0cmli
dXRlIG9uIGNhbWVsQ2FzZSBjbGFzcy4gSWYgaXQgd29ya3MsIHdlIG5lZWQgYXR0ckZpeGVzIHdo
ZW4gZG9pbmcgZ2V0L3NldEF0dHJpYnV0ZSAoaWU2LzcpCglzdXBwb3J0LmdldFNldEF0dHJpYnV0
ZSA9IGRpdi5jbGFzc05hbWUgIT09ICJ0IjsKCgkvLyBHZXQgdGhlIHN0eWxlIGluZm9ybWF0aW9u
IGZyb20gZ2V0QXR0cmlidXRlCgkvLyAoSUUgdXNlcyAuY3NzVGV4dCBpbnN0ZWFkKQoJc3VwcG9y
dC5zdHlsZSA9IC90b3AvLnRlc3QoIGEuZ2V0QXR0cmlidXRlKCJzdHlsZSIpICk7CgoJLy8gTWFr
ZSBzdXJlIHRoYXQgVVJMcyBhcmVuJ3QgbWFuaXB1bGF0ZWQKCS8vIChJRSBub3JtYWxpemVzIGl0
IGJ5IGRlZmF1bHQpCglzdXBwb3J0LmhyZWZOb3JtYWxpemVkID0gYS5nZXRBdHRyaWJ1dGUoImhy
ZWYiKSA9PT0gIi9hIjsKCgkvLyBDaGVjayB0aGUgZGVmYXVsdCBjaGVja2JveC9yYWRpbyB2YWx1
ZSAoIiIgb24gV2ViS2l0OyAib24iIGVsc2V3aGVyZSkKCXN1cHBvcnQuY2hlY2tPbiA9ICEhaW5w
dXQudmFsdWU7CgoJLy8gTWFrZSBzdXJlIHRoYXQgYSBzZWxlY3RlZC1ieS1kZWZhdWx0IG9wdGlv
biBoYXMgYSB3b3JraW5nIHNlbGVjdGVkIHByb3BlcnR5LgoJLy8gKFdlYktpdCBkZWZhdWx0cyB0
byBmYWxzZSBpbnN0ZWFkIG9mIHRydWUsIElFIHRvbywgaWYgaXQncyBpbiBhbiBvcHRncm91cCkK
CXN1cHBvcnQub3B0U2VsZWN0ZWQgPSBvcHQuc2VsZWN0ZWQ7CgoJLy8gVGVzdHMgZm9yIGVuY3R5
cGUgc3VwcG9ydCBvbiBhIGZvcm0gKCM2NzQzKQoJc3VwcG9ydC5lbmN0eXBlID0gISFkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJmb3JtIikuZW5jdHlwZTsKCgkvLyBNYWtlIHN1cmUgdGhhdCB0aGUg
b3B0aW9ucyBpbnNpZGUgZGlzYWJsZWQgc2VsZWN0cyBhcmVuJ3QgbWFya2VkIGFzIGRpc2FibGVk
CgkvLyAoV2ViS2l0IG1hcmtzIHRoZW0gYXMgZGlzYWJsZWQpCglzZWxlY3QuZGlzYWJsZWQgPSB0
cnVlOwoJc3VwcG9ydC5vcHREaXNhYmxlZCA9ICFvcHQuZGlzYWJsZWQ7CgoJLy8gU3VwcG9ydDog
SUU4IG9ubHkKCS8vIENoZWNrIGlmIHdlIGNhbiB0cnVzdCBnZXRBdHRyaWJ1dGUoInZhbHVlIikK
CWlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggImlucHV0IiApOwoJaW5wdXQuc2V0QXR0
cmlidXRlKCAidmFsdWUiLCAiIiApOwoJc3VwcG9ydC5pbnB1dCA9IGlucHV0LmdldEF0dHJpYnV0
ZSggInZhbHVlIiApID09PSAiIjsKCgkvLyBDaGVjayBpZiBhbiBpbnB1dCBtYWludGFpbnMgaXRz
IHZhbHVlIGFmdGVyIGJlY29taW5nIGEgcmFkaW8KCWlucHV0LnZhbHVlID0gInQiOwoJaW5wdXQu
c2V0QXR0cmlidXRlKCAidHlwZSIsICJyYWRpbyIgKTsKCXN1cHBvcnQucmFkaW9WYWx1ZSA9IGlu
cHV0LnZhbHVlID09PSAidCI7Cn0pKCk7CgoKdmFyIHJyZXR1cm4gPSAvXHIvZzsKCmpRdWVyeS5m
bi5leHRlbmQoewoJdmFsOiBmdW5jdGlvbiggdmFsdWUgKSB7CgkJdmFyIGhvb2tzLCByZXQsIGlz
RnVuY3Rpb24sCgkJCWVsZW0gPSB0aGlzWzBdOwoKCQlpZiAoICFhcmd1bWVudHMubGVuZ3RoICkg
ewoJCQlpZiAoIGVsZW0gKSB7CgkJCQlob29rcyA9IGpRdWVyeS52YWxIb29rc1sgZWxlbS50eXBl
IF0gfHwgalF1ZXJ5LnZhbEhvb2tzWyBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgXTsKCgkJ
CQlpZiAoIGhvb2tzICYmICJnZXQiIGluIGhvb2tzICYmIChyZXQgPSBob29rcy5nZXQoIGVsZW0s
ICJ2YWx1ZSIgKSkgIT09IHVuZGVmaW5lZCApIHsKCQkJCQlyZXR1cm4gcmV0OwoJCQkJfQoKCQkJ
CXJldCA9IGVsZW0udmFsdWU7CgoJCQkJcmV0dXJuIHR5cGVvZiByZXQgPT09ICJzdHJpbmciID8K
CQkJCQkvLyBoYW5kbGUgbW9zdCBjb21tb24gc3RyaW5nIGNhc2VzCgkJCQkJcmV0LnJlcGxhY2Uo
cnJldHVybiwgIiIpIDoKCQkJCQkvLyBoYW5kbGUgY2FzZXMgd2hlcmUgdmFsdWUgaXMgbnVsbC91
bmRlZiBvciBudW1iZXIKCQkJCQlyZXQgPT0gbnVsbCA/ICIiIDogcmV0OwoJCQl9CgoJCQlyZXR1
cm47CgkJfQoKCQlpc0Z1bmN0aW9uID0galF1ZXJ5LmlzRnVuY3Rpb24oIHZhbHVlICk7CgoJCXJl
dHVybiB0aGlzLmVhY2goZnVuY3Rpb24oIGkgKSB7CgkJCXZhciB2YWw7CgoJCQlpZiAoIHRoaXMu
bm9kZVR5cGUgIT09IDEgKSB7CgkJCQlyZXR1cm47CgkJCX0KCgkJCWlmICggaXNGdW5jdGlvbiAp
IHsKCQkJCXZhbCA9IHZhbHVlLmNhbGwoIHRoaXMsIGksIGpRdWVyeSggdGhpcyApLnZhbCgpICk7
CgkJCX0gZWxzZSB7CgkJCQl2YWwgPSB2YWx1ZTsKCQkJfQoKCQkJLy8gVHJlYXQgbnVsbC91bmRl
ZmluZWQgYXMgIiI7IGNvbnZlcnQgbnVtYmVycyB0byBzdHJpbmcKCQkJaWYgKCB2YWwgPT0gbnVs
bCApIHsKCQkJCXZhbCA9ICIiOwoJCQl9IGVsc2UgaWYgKCB0eXBlb2YgdmFsID09PSAibnVtYmVy
IiApIHsKCQkJCXZhbCArPSAiIjsKCQkJfSBlbHNlIGlmICggalF1ZXJ5LmlzQXJyYXkoIHZhbCAp
ICkgewoJCQkJdmFsID0galF1ZXJ5Lm1hcCggdmFsLCBmdW5jdGlvbiggdmFsdWUgKSB7CgkJCQkJ
cmV0dXJuIHZhbHVlID09IG51bGwgPyAiIiA6IHZhbHVlICsgIiI7CgkJCQl9KTsKCQkJfQoKCQkJ
aG9va3MgPSBqUXVlcnkudmFsSG9va3NbIHRoaXMudHlwZSBdIHx8IGpRdWVyeS52YWxIb29rc1sg
dGhpcy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpIF07CgoJCQkvLyBJZiBzZXQgcmV0dXJucyB1bmRl
ZmluZWQsIGZhbGwgYmFjayB0byBub3JtYWwgc2V0dGluZwoJCQlpZiAoICFob29rcyB8fCAhKCJz
ZXQiIGluIGhvb2tzKSB8fCBob29rcy5zZXQoIHRoaXMsIHZhbCwgInZhbHVlIiApID09PSB1bmRl
ZmluZWQgKSB7CgkJCQl0aGlzLnZhbHVlID0gdmFsOwoJCQl9CgkJfSk7Cgl9Cn0pOwoKalF1ZXJ5
LmV4dGVuZCh7Cgl2YWxIb29rczogewoJCW9wdGlvbjogewoJCQlnZXQ6IGZ1bmN0aW9uKCBlbGVt
ICkgewoJCQkJdmFyIHZhbCA9IGpRdWVyeS5maW5kLmF0dHIoIGVsZW0sICJ2YWx1ZSIgKTsKCQkJ
CXJldHVybiB2YWwgIT0gbnVsbCA/CgkJCQkJdmFsIDoKCQkJCQkvLyBTdXBwb3J0OiBJRTEwLTEx
KwoJCQkJCS8vIG9wdGlvbi50ZXh0IHRocm93cyBleGNlcHRpb25zICgjMTQ2ODYsICMxNDg1OCkK
CQkJCQlqUXVlcnkudHJpbSggalF1ZXJ5LnRleHQoIGVsZW0gKSApOwoJCQl9CgkJfSwKCQlzZWxl
Y3Q6IHsKCQkJZ2V0OiBmdW5jdGlvbiggZWxlbSApIHsKCQkJCXZhciB2YWx1ZSwgb3B0aW9uLAoJ
CQkJCW9wdGlvbnMgPSBlbGVtLm9wdGlvbnMsCgkJCQkJaW5kZXggPSBlbGVtLnNlbGVjdGVkSW5k
ZXgsCgkJCQkJb25lID0gZWxlbS50eXBlID09PSAic2VsZWN0LW9uZSIgfHwgaW5kZXggPCAwLAoJ
CQkJCXZhbHVlcyA9IG9uZSA/IG51bGwgOiBbXSwKCQkJCQltYXggPSBvbmUgPyBpbmRleCArIDEg
OiBvcHRpb25zLmxlbmd0aCwKCQkJCQlpID0gaW5kZXggPCAwID8KCQkJCQkJbWF4IDoKCQkJCQkJ
b25lID8gaW5kZXggOiAwOwoKCQkJCS8vIExvb3AgdGhyb3VnaCBhbGwgdGhlIHNlbGVjdGVkIG9w
dGlvbnMKCQkJCWZvciAoIDsgaSA8IG1heDsgaSsrICkgewoJCQkJCW9wdGlvbiA9IG9wdGlvbnNb
IGkgXTsKCgkJCQkJLy8gb2xkSUUgZG9lc24ndCB1cGRhdGUgc2VsZWN0ZWQgYWZ0ZXIgZm9ybSBy
ZXNldCAoIzI1NTEpCgkJCQkJaWYgKCAoIG9wdGlvbi5zZWxlY3RlZCB8fCBpID09PSBpbmRleCAp
ICYmCgkJCQkJCQkvLyBEb24ndCByZXR1cm4gb3B0aW9ucyB0aGF0IGFyZSBkaXNhYmxlZCBvciBp
biBhIGRpc2FibGVkIG9wdGdyb3VwCgkJCQkJCQkoIHN1cHBvcnQub3B0RGlzYWJsZWQgPyAhb3B0
aW9uLmRpc2FibGVkIDogb3B0aW9uLmdldEF0dHJpYnV0ZSgiZGlzYWJsZWQiKSA9PT0gbnVsbCAp
ICYmCgkJCQkJCQkoICFvcHRpb24ucGFyZW50Tm9kZS5kaXNhYmxlZCB8fCAhalF1ZXJ5Lm5vZGVO
YW1lKCBvcHRpb24ucGFyZW50Tm9kZSwgIm9wdGdyb3VwIiApICkgKSB7CgoJCQkJCQkvLyBHZXQg
dGhlIHNwZWNpZmljIHZhbHVlIGZvciB0aGUgb3B0aW9uCgkJCQkJCXZhbHVlID0galF1ZXJ5KCBv
cHRpb24gKS52YWwoKTsKCgkJCQkJCS8vIFdlIGRvbid0IG5lZWQgYW4gYXJyYXkgZm9yIG9uZSBz
ZWxlY3RzCgkJCQkJCWlmICggb25lICkgewoJCQkJCQkJcmV0dXJuIHZhbHVlOwoJCQkJCQl9CgoJ
CQkJCQkvLyBNdWx0aS1TZWxlY3RzIHJldHVybiBhbiBhcnJheQoJCQkJCQl2YWx1ZXMucHVzaCgg
dmFsdWUgKTsKCQkJCQl9CgkJCQl9CgoJCQkJcmV0dXJuIHZhbHVlczsKCQkJfSwKCgkJCXNldDog
ZnVuY3Rpb24oIGVsZW0sIHZhbHVlICkgewoJCQkJdmFyIG9wdGlvblNldCwgb3B0aW9uLAoJCQkJ
CW9wdGlvbnMgPSBlbGVtLm9wdGlvbnMsCgkJCQkJdmFsdWVzID0galF1ZXJ5Lm1ha2VBcnJheSgg
dmFsdWUgKSwKCQkJCQlpID0gb3B0aW9ucy5sZW5ndGg7CgoJCQkJd2hpbGUgKCBpLS0gKSB7CgkJ
CQkJb3B0aW9uID0gb3B0aW9uc1sgaSBdOwoKCQkJCQlpZiAoIGpRdWVyeS5pbkFycmF5KCBqUXVl
cnkudmFsSG9va3Mub3B0aW9uLmdldCggb3B0aW9uICksIHZhbHVlcyApID49IDAgKSB7CgoJCQkJ
CQkvLyBTdXBwb3J0OiBJRTYKCQkJCQkJLy8gV2hlbiBuZXcgb3B0aW9uIGVsZW1lbnQgaXMgYWRk
ZWQgdG8gc2VsZWN0IGJveCB3ZSBuZWVkIHRvCgkJCQkJCS8vIGZvcmNlIHJlZmxvdyBvZiBuZXds
eSBhZGRlZCBub2RlIGluIG9yZGVyIHRvIHdvcmthcm91bmQgZGVsYXkKCQkJCQkJLy8gb2YgaW5p
dGlhbGl6YXRpb24gcHJvcGVydGllcwoJCQkJCQl0cnkgewoJCQkJCQkJb3B0aW9uLnNlbGVjdGVk
ID0gb3B0aW9uU2V0ID0gdHJ1ZTsKCgkJCQkJCX0gY2F0Y2ggKCBfICkgewoKCQkJCQkJCS8vIFdp
bGwgYmUgZXhlY3V0ZWQgb25seSBpbiBJRTYKCQkJCQkJCW9wdGlvbi5zY3JvbGxIZWlnaHQ7CgkJ
CQkJCX0KCgkJCQkJfSBlbHNlIHsKCQkJCQkJb3B0aW9uLnNlbGVjdGVkID0gZmFsc2U7CgkJCQkJ
fQoJCQkJfQoKCQkJCS8vIEZvcmNlIGJyb3dzZXJzIHRvIGJlaGF2ZSBjb25zaXN0ZW50bHkgd2hl
biBub24tbWF0Y2hpbmcgdmFsdWUgaXMgc2V0CgkJCQlpZiAoICFvcHRpb25TZXQgKSB7CgkJCQkJ
ZWxlbS5zZWxlY3RlZEluZGV4ID0gLTE7CgkJCQl9CgoJCQkJcmV0dXJuIG9wdGlvbnM7CgkJCX0K
CQl9Cgl9Cn0pOwoKLy8gUmFkaW9zIGFuZCBjaGVja2JveGVzIGdldHRlci9zZXR0ZXIKalF1ZXJ5
LmVhY2goWyAicmFkaW8iLCAiY2hlY2tib3giIF0sIGZ1bmN0aW9uKCkgewoJalF1ZXJ5LnZhbEhv
b2tzWyB0aGlzIF0gPSB7CgkJc2V0OiBmdW5jdGlvbiggZWxlbSwgdmFsdWUgKSB7CgkJCWlmICgg
alF1ZXJ5LmlzQXJyYXkoIHZhbHVlICkgKSB7CgkJCQlyZXR1cm4gKCBlbGVtLmNoZWNrZWQgPSBq
UXVlcnkuaW5BcnJheSggalF1ZXJ5KGVsZW0pLnZhbCgpLCB2YWx1ZSApID49IDAgKTsKCQkJfQoJ
CX0KCX07CglpZiAoICFzdXBwb3J0LmNoZWNrT24gKSB7CgkJalF1ZXJ5LnZhbEhvb2tzWyB0aGlz
IF0uZ2V0ID0gZnVuY3Rpb24oIGVsZW0gKSB7CgkJCS8vIFN1cHBvcnQ6IFdlYmtpdAoJCQkvLyAi
IiBpcyByZXR1cm5lZCBpbnN0ZWFkIG9mICJvbiIgaWYgYSB2YWx1ZSBpc24ndCBzcGVjaWZpZWQK
CQkJcmV0dXJuIGVsZW0uZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpID09PSBudWxsID8gIm9uIiA6IGVs
ZW0udmFsdWU7CgkJfTsKCX0KfSk7CgoKCgp2YXIgbm9kZUhvb2ssIGJvb2xIb29rLAoJYXR0ckhh
bmRsZSA9IGpRdWVyeS5leHByLmF0dHJIYW5kbGUsCglydXNlRGVmYXVsdCA9IC9eKD86Y2hlY2tl
ZHxzZWxlY3RlZCkkL2ksCglnZXRTZXRBdHRyaWJ1dGUgPSBzdXBwb3J0LmdldFNldEF0dHJpYnV0
ZSwKCWdldFNldElucHV0ID0gc3VwcG9ydC5pbnB1dDsKCmpRdWVyeS5mbi5leHRlbmQoewoJYXR0
cjogZnVuY3Rpb24oIG5hbWUsIHZhbHVlICkgewoJCXJldHVybiBhY2Nlc3MoIHRoaXMsIGpRdWVy
eS5hdHRyLCBuYW1lLCB2YWx1ZSwgYXJndW1lbnRzLmxlbmd0aCA+IDEgKTsKCX0sCgoJcmVtb3Zl
QXR0cjogZnVuY3Rpb24oIG5hbWUgKSB7CgkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsK
CQkJalF1ZXJ5LnJlbW92ZUF0dHIoIHRoaXMsIG5hbWUgKTsKCQl9KTsKCX0KfSk7CgpqUXVlcnku
ZXh0ZW5kKHsKCWF0dHI6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCB2YWx1ZSApIHsKCQl2YXIgaG9v
a3MsIHJldCwKCQkJblR5cGUgPSBlbGVtLm5vZGVUeXBlOwoKCQkvLyBkb24ndCBnZXQvc2V0IGF0
dHJpYnV0ZXMgb24gdGV4dCwgY29tbWVudCBhbmQgYXR0cmlidXRlIG5vZGVzCgkJaWYgKCAhZWxl
bSB8fCBuVHlwZSA9PT0gMyB8fCBuVHlwZSA9PT0gOCB8fCBuVHlwZSA9PT0gMiApIHsKCQkJcmV0
dXJuOwoJCX0KCgkJLy8gRmFsbGJhY2sgdG8gcHJvcCB3aGVuIGF0dHJpYnV0ZXMgYXJlIG5vdCBz
dXBwb3J0ZWQKCQlpZiAoIHR5cGVvZiBlbGVtLmdldEF0dHJpYnV0ZSA9PT0gc3RydW5kZWZpbmVk
ICkgewoJCQlyZXR1cm4galF1ZXJ5LnByb3AoIGVsZW0sIG5hbWUsIHZhbHVlICk7CgkJfQoKCQkv
LyBBbGwgYXR0cmlidXRlcyBhcmUgbG93ZXJjYXNlCgkJLy8gR3JhYiBuZWNlc3NhcnkgaG9vayBp
ZiBvbmUgaXMgZGVmaW5lZAoJCWlmICggblR5cGUgIT09IDEgfHwgIWpRdWVyeS5pc1hNTERvYygg
ZWxlbSApICkgewoJCQluYW1lID0gbmFtZS50b0xvd2VyQ2FzZSgpOwoJCQlob29rcyA9IGpRdWVy
eS5hdHRySG9va3NbIG5hbWUgXSB8fAoJCQkJKCBqUXVlcnkuZXhwci5tYXRjaC5ib29sLnRlc3Qo
IG5hbWUgKSA/IGJvb2xIb29rIDogbm9kZUhvb2sgKTsKCQl9CgoJCWlmICggdmFsdWUgIT09IHVu
ZGVmaW5lZCApIHsKCgkJCWlmICggdmFsdWUgPT09IG51bGwgKSB7CgkJCQlqUXVlcnkucmVtb3Zl
QXR0ciggZWxlbSwgbmFtZSApOwoKCQkJfSBlbHNlIGlmICggaG9va3MgJiYgInNldCIgaW4gaG9v
a3MgJiYgKHJldCA9IGhvb2tzLnNldCggZWxlbSwgdmFsdWUsIG5hbWUgKSkgIT09IHVuZGVmaW5l
ZCApIHsKCQkJCXJldHVybiByZXQ7CgoJCQl9IGVsc2UgewoJCQkJZWxlbS5zZXRBdHRyaWJ1dGUo
IG5hbWUsIHZhbHVlICsgIiIgKTsKCQkJCXJldHVybiB2YWx1ZTsKCQkJfQoKCQl9IGVsc2UgaWYg
KCBob29rcyAmJiAiZ2V0IiBpbiBob29rcyAmJiAocmV0ID0gaG9va3MuZ2V0KCBlbGVtLCBuYW1l
ICkpICE9PSBudWxsICkgewoJCQlyZXR1cm4gcmV0OwoKCQl9IGVsc2UgewoJCQlyZXQgPSBqUXVl
cnkuZmluZC5hdHRyKCBlbGVtLCBuYW1lICk7CgoJCQkvLyBOb24tZXhpc3RlbnQgYXR0cmlidXRl
cyByZXR1cm4gbnVsbCwgd2Ugbm9ybWFsaXplIHRvIHVuZGVmaW5lZAoJCQlyZXR1cm4gcmV0ID09
IG51bGwgPwoJCQkJdW5kZWZpbmVkIDoKCQkJCXJldDsKCQl9Cgl9LAoKCXJlbW92ZUF0dHI6IGZ1
bmN0aW9uKCBlbGVtLCB2YWx1ZSApIHsKCQl2YXIgbmFtZSwgcHJvcE5hbWUsCgkJCWkgPSAwLAoJ
CQlhdHRyTmFtZXMgPSB2YWx1ZSAmJiB2YWx1ZS5tYXRjaCggcm5vdHdoaXRlICk7CgoJCWlmICgg
YXR0ck5hbWVzICYmIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7CgkJCXdoaWxlICggKG5hbWUgPSBh
dHRyTmFtZXNbaSsrXSkgKSB7CgkJCQlwcm9wTmFtZSA9IGpRdWVyeS5wcm9wRml4WyBuYW1lIF0g
fHwgbmFtZTsKCgkJCQkvLyBCb29sZWFuIGF0dHJpYnV0ZXMgZ2V0IHNwZWNpYWwgdHJlYXRtZW50
ICgjMTA4NzApCgkJCQlpZiAoIGpRdWVyeS5leHByLm1hdGNoLmJvb2wudGVzdCggbmFtZSApICkg
ewoJCQkJCS8vIFNldCBjb3JyZXNwb25kaW5nIHByb3BlcnR5IHRvIGZhbHNlCgkJCQkJaWYgKCBn
ZXRTZXRJbnB1dCAmJiBnZXRTZXRBdHRyaWJ1dGUgfHwgIXJ1c2VEZWZhdWx0LnRlc3QoIG5hbWUg
KSApIHsKCQkJCQkJZWxlbVsgcHJvcE5hbWUgXSA9IGZhbHNlOwoJCQkJCS8vIFN1cHBvcnQ6IElF
PDkKCQkJCQkvLyBBbHNvIGNsZWFyIGRlZmF1bHRDaGVja2VkL2RlZmF1bHRTZWxlY3RlZCAoaWYg
YXBwcm9wcmlhdGUpCgkJCQkJfSBlbHNlIHsKCQkJCQkJZWxlbVsgalF1ZXJ5LmNhbWVsQ2FzZSgg
ImRlZmF1bHQtIiArIG5hbWUgKSBdID0KCQkJCQkJCWVsZW1bIHByb3BOYW1lIF0gPSBmYWxzZTsK
CQkJCQl9CgoJCQkJLy8gU2VlICM5Njk5IGZvciBleHBsYW5hdGlvbiBvZiB0aGlzIGFwcHJvYWNo
IChzZXR0aW5nIGZpcnN0LCB0aGVuIHJlbW92YWwpCgkJCQl9IGVsc2UgewoJCQkJCWpRdWVyeS5h
dHRyKCBlbGVtLCBuYW1lLCAiIiApOwoJCQkJfQoKCQkJCWVsZW0ucmVtb3ZlQXR0cmlidXRlKCBn
ZXRTZXRBdHRyaWJ1dGUgPyBuYW1lIDogcHJvcE5hbWUgKTsKCQkJfQoJCX0KCX0sCgoJYXR0ckhv
b2tzOiB7CgkJdHlwZTogewoJCQlzZXQ6IGZ1bmN0aW9uKCBlbGVtLCB2YWx1ZSApIHsKCQkJCWlm
ICggIXN1cHBvcnQucmFkaW9WYWx1ZSAmJiB2YWx1ZSA9PT0gInJhZGlvIiAmJiBqUXVlcnkubm9k
ZU5hbWUoZWxlbSwgImlucHV0IikgKSB7CgkJCQkJLy8gU2V0dGluZyB0aGUgdHlwZSBvbiBhIHJh
ZGlvIGJ1dHRvbiBhZnRlciB0aGUgdmFsdWUgcmVzZXRzIHRoZSB2YWx1ZSBpbiBJRTYtOQoJCQkJ
CS8vIFJlc2V0IHZhbHVlIHRvIGRlZmF1bHQgaW4gY2FzZSB0eXBlIGlzIHNldCBhZnRlciB2YWx1
ZSBkdXJpbmcgY3JlYXRpb24KCQkJCQl2YXIgdmFsID0gZWxlbS52YWx1ZTsKCQkJCQllbGVtLnNl
dEF0dHJpYnV0ZSggInR5cGUiLCB2YWx1ZSApOwoJCQkJCWlmICggdmFsICkgewoJCQkJCQllbGVt
LnZhbHVlID0gdmFsOwoJCQkJCX0KCQkJCQlyZXR1cm4gdmFsdWU7CgkJCQl9CgkJCX0KCQl9Cgl9
Cn0pOwoKLy8gSG9vayBmb3IgYm9vbGVhbiBhdHRyaWJ1dGVzCmJvb2xIb29rID0gewoJc2V0OiBm
dW5jdGlvbiggZWxlbSwgdmFsdWUsIG5hbWUgKSB7CgkJaWYgKCB2YWx1ZSA9PT0gZmFsc2UgKSB7
CgkJCS8vIFJlbW92ZSBib29sZWFuIGF0dHJpYnV0ZXMgd2hlbiBzZXQgdG8gZmFsc2UKCQkJalF1
ZXJ5LnJlbW92ZUF0dHIoIGVsZW0sIG5hbWUgKTsKCQl9IGVsc2UgaWYgKCBnZXRTZXRJbnB1dCAm
JiBnZXRTZXRBdHRyaWJ1dGUgfHwgIXJ1c2VEZWZhdWx0LnRlc3QoIG5hbWUgKSApIHsKCQkJLy8g
SUU8OCBuZWVkcyB0aGUgKnByb3BlcnR5KiBuYW1lCgkJCWVsZW0uc2V0QXR0cmlidXRlKCAhZ2V0
U2V0QXR0cmlidXRlICYmIGpRdWVyeS5wcm9wRml4WyBuYW1lIF0gfHwgbmFtZSwgbmFtZSApOwoK
CQkvLyBVc2UgZGVmYXVsdENoZWNrZWQgYW5kIGRlZmF1bHRTZWxlY3RlZCBmb3Igb2xkSUUKCQl9
IGVsc2UgewoJCQllbGVtWyBqUXVlcnkuY2FtZWxDYXNlKCAiZGVmYXVsdC0iICsgbmFtZSApIF0g
PSBlbGVtWyBuYW1lIF0gPSB0cnVlOwoJCX0KCgkJcmV0dXJuIG5hbWU7Cgl9Cn07CgovLyBSZXRy
aWV2ZSBib29sZWFucyBzcGVjaWFsbHkKalF1ZXJ5LmVhY2goIGpRdWVyeS5leHByLm1hdGNoLmJv
b2wuc291cmNlLm1hdGNoKCAvXHcrL2cgKSwgZnVuY3Rpb24oIGksIG5hbWUgKSB7CgoJdmFyIGdl
dHRlciA9IGF0dHJIYW5kbGVbIG5hbWUgXSB8fCBqUXVlcnkuZmluZC5hdHRyOwoKCWF0dHJIYW5k
bGVbIG5hbWUgXSA9IGdldFNldElucHV0ICYmIGdldFNldEF0dHJpYnV0ZSB8fCAhcnVzZURlZmF1
bHQudGVzdCggbmFtZSApID8KCQlmdW5jdGlvbiggZWxlbSwgbmFtZSwgaXNYTUwgKSB7CgkJCXZh
ciByZXQsIGhhbmRsZTsKCQkJaWYgKCAhaXNYTUwgKSB7CgkJCQkvLyBBdm9pZCBhbiBpbmZpbml0
ZSBsb29wIGJ5IHRlbXBvcmFyaWx5IHJlbW92aW5nIHRoaXMgZnVuY3Rpb24gZnJvbSB0aGUgZ2V0
dGVyCgkJCQloYW5kbGUgPSBhdHRySGFuZGxlWyBuYW1lIF07CgkJCQlhdHRySGFuZGxlWyBuYW1l
IF0gPSByZXQ7CgkJCQlyZXQgPSBnZXR0ZXIoIGVsZW0sIG5hbWUsIGlzWE1MICkgIT0gbnVsbCA/
CgkJCQkJbmFtZS50b0xvd2VyQ2FzZSgpIDoKCQkJCQludWxsOwoJCQkJYXR0ckhhbmRsZVsgbmFt
ZSBdID0gaGFuZGxlOwoJCQl9CgkJCXJldHVybiByZXQ7CgkJfSA6CgkJZnVuY3Rpb24oIGVsZW0s
IG5hbWUsIGlzWE1MICkgewoJCQlpZiAoICFpc1hNTCApIHsKCQkJCXJldHVybiBlbGVtWyBqUXVl
cnkuY2FtZWxDYXNlKCAiZGVmYXVsdC0iICsgbmFtZSApIF0gPwoJCQkJCW5hbWUudG9Mb3dlckNh
c2UoKSA6CgkJCQkJbnVsbDsKCQkJfQoJCX07Cn0pOwoKLy8gZml4IG9sZElFIGF0dHJvcGVydGll
cwppZiAoICFnZXRTZXRJbnB1dCB8fCAhZ2V0U2V0QXR0cmlidXRlICkgewoJalF1ZXJ5LmF0dHJI
b29rcy52YWx1ZSA9IHsKCQlzZXQ6IGZ1bmN0aW9uKCBlbGVtLCB2YWx1ZSwgbmFtZSApIHsKCQkJ
aWYgKCBqUXVlcnkubm9kZU5hbWUoIGVsZW0sICJpbnB1dCIgKSApIHsKCQkJCS8vIERvZXMgbm90
IHJldHVybiBzbyB0aGF0IHNldEF0dHJpYnV0ZSBpcyBhbHNvIHVzZWQKCQkJCWVsZW0uZGVmYXVs
dFZhbHVlID0gdmFsdWU7CgkJCX0gZWxzZSB7CgkJCQkvLyBVc2Ugbm9kZUhvb2sgaWYgZGVmaW5l
ZCAoIzE5NTQpOyBvdGhlcndpc2Ugc2V0QXR0cmlidXRlIGlzIGZpbmUKCQkJCXJldHVybiBub2Rl
SG9vayAmJiBub2RlSG9vay5zZXQoIGVsZW0sIHZhbHVlLCBuYW1lICk7CgkJCX0KCQl9Cgl9Owp9
CgovLyBJRTYvNyBkbyBub3Qgc3VwcG9ydCBnZXR0aW5nL3NldHRpbmcgc29tZSBhdHRyaWJ1dGVz
IHdpdGggZ2V0L3NldEF0dHJpYnV0ZQppZiAoICFnZXRTZXRBdHRyaWJ1dGUgKSB7CgoJLy8gVXNl
IHRoaXMgZm9yIGFueSBhdHRyaWJ1dGUgaW4gSUU2LzcKCS8vIFRoaXMgZml4ZXMgYWxtb3N0IGV2
ZXJ5IElFNi83IGlzc3VlCglub2RlSG9vayA9IHsKCQlzZXQ6IGZ1bmN0aW9uKCBlbGVtLCB2YWx1
ZSwgbmFtZSApIHsKCQkJLy8gU2V0IHRoZSBleGlzdGluZyBvciBjcmVhdGUgYSBuZXcgYXR0cmli
dXRlIG5vZGUKCQkJdmFyIHJldCA9IGVsZW0uZ2V0QXR0cmlidXRlTm9kZSggbmFtZSApOwoJCQlp
ZiAoICFyZXQgKSB7CgkJCQllbGVtLnNldEF0dHJpYnV0ZU5vZGUoCgkJCQkJKHJldCA9IGVsZW0u
b3duZXJEb2N1bWVudC5jcmVhdGVBdHRyaWJ1dGUoIG5hbWUgKSkKCQkJCSk7CgkJCX0KCgkJCXJl
dC52YWx1ZSA9IHZhbHVlICs9ICIiOwoKCQkJLy8gQnJlYWsgYXNzb2NpYXRpb24gd2l0aCBjbG9u
ZWQgZWxlbWVudHMgYnkgYWxzbyB1c2luZyBzZXRBdHRyaWJ1dGUgKCM5NjQ2KQoJCQlpZiAoIG5h
bWUgPT09ICJ2YWx1ZSIgfHwgdmFsdWUgPT09IGVsZW0uZ2V0QXR0cmlidXRlKCBuYW1lICkgKSB7
CgkJCQlyZXR1cm4gdmFsdWU7CgkJCX0KCQl9Cgl9OwoKCS8vIFNvbWUgYXR0cmlidXRlcyBhcmUg
Y29uc3RydWN0ZWQgd2l0aCBlbXB0eS1zdHJpbmcgdmFsdWVzIHdoZW4gbm90IGRlZmluZWQKCWF0
dHJIYW5kbGUuaWQgPSBhdHRySGFuZGxlLm5hbWUgPSBhdHRySGFuZGxlLmNvb3JkcyA9CgkJZnVu
Y3Rpb24oIGVsZW0sIG5hbWUsIGlzWE1MICkgewoJCQl2YXIgcmV0OwoJCQlpZiAoICFpc1hNTCAp
IHsKCQkJCXJldHVybiAocmV0ID0gZWxlbS5nZXRBdHRyaWJ1dGVOb2RlKCBuYW1lICkpICYmIHJl
dC52YWx1ZSAhPT0gIiIgPwoJCQkJCXJldC52YWx1ZSA6CgkJCQkJbnVsbDsKCQkJfQoJCX07CgoJ
Ly8gRml4aW5nIHZhbHVlIHJldHJpZXZhbCBvbiBhIGJ1dHRvbiByZXF1aXJlcyB0aGlzIG1vZHVs
ZQoJalF1ZXJ5LnZhbEhvb2tzLmJ1dHRvbiA9IHsKCQlnZXQ6IGZ1bmN0aW9uKCBlbGVtLCBuYW1l
ICkgewoJCQl2YXIgcmV0ID0gZWxlbS5nZXRBdHRyaWJ1dGVOb2RlKCBuYW1lICk7CgkJCWlmICgg
cmV0ICYmIHJldC5zcGVjaWZpZWQgKSB7CgkJCQlyZXR1cm4gcmV0LnZhbHVlOwoJCQl9CgkJfSwK
CQlzZXQ6IG5vZGVIb29rLnNldAoJfTsKCgkvLyBTZXQgY29udGVudGVkaXRhYmxlIHRvIGZhbHNl
IG9uIHJlbW92YWxzKCMxMDQyOSkKCS8vIFNldHRpbmcgdG8gZW1wdHkgc3RyaW5nIHRocm93cyBh
biBlcnJvciBhcyBhbiBpbnZhbGlkIHZhbHVlCglqUXVlcnkuYXR0ckhvb2tzLmNvbnRlbnRlZGl0
YWJsZSA9IHsKCQlzZXQ6IGZ1bmN0aW9uKCBlbGVtLCB2YWx1ZSwgbmFtZSApIHsKCQkJbm9kZUhv
b2suc2V0KCBlbGVtLCB2YWx1ZSA9PT0gIiIgPyBmYWxzZSA6IHZhbHVlLCBuYW1lICk7CgkJfQoJ
fTsKCgkvLyBTZXQgd2lkdGggYW5kIGhlaWdodCB0byBhdXRvIGluc3RlYWQgb2YgMCBvbiBlbXB0
eSBzdHJpbmcoIEJ1ZyAjODE1MCApCgkvLyBUaGlzIGlzIGZvciByZW1vdmFscwoJalF1ZXJ5LmVh
Y2goWyAid2lkdGgiLCAiaGVpZ2h0IiBdLCBmdW5jdGlvbiggaSwgbmFtZSApIHsKCQlqUXVlcnku
YXR0ckhvb2tzWyBuYW1lIF0gPSB7CgkJCXNldDogZnVuY3Rpb24oIGVsZW0sIHZhbHVlICkgewoJ
CQkJaWYgKCB2YWx1ZSA9PT0gIiIgKSB7CgkJCQkJZWxlbS5zZXRBdHRyaWJ1dGUoIG5hbWUsICJh
dXRvIiApOwoJCQkJCXJldHVybiB2YWx1ZTsKCQkJCX0KCQkJfQoJCX07Cgl9KTsKfQoKaWYgKCAh
c3VwcG9ydC5zdHlsZSApIHsKCWpRdWVyeS5hdHRySG9va3Muc3R5bGUgPSB7CgkJZ2V0OiBmdW5j
dGlvbiggZWxlbSApIHsKCQkJLy8gUmV0dXJuIHVuZGVmaW5lZCBpbiB0aGUgY2FzZSBvZiBlbXB0
eSBzdHJpbmcKCQkJLy8gTm90ZTogSUUgdXBwZXJjYXNlcyBjc3MgcHJvcGVydHkgbmFtZXMsIGJ1
dCBpZiB3ZSB3ZXJlIHRvIC50b0xvd2VyQ2FzZSgpCgkJCS8vIC5jc3NUZXh0LCB0aGF0IHdvdWxk
IGRlc3Ryb3kgY2FzZSBzZW5zdGl0aXZpdHkgaW4gVVJMJ3MsIGxpa2UgaW4gImJhY2tncm91bmQi
CgkJCXJldHVybiBlbGVtLnN0eWxlLmNzc1RleHQgfHwgdW5kZWZpbmVkOwoJCX0sCgkJc2V0OiBm
dW5jdGlvbiggZWxlbSwgdmFsdWUgKSB7CgkJCXJldHVybiAoIGVsZW0uc3R5bGUuY3NzVGV4dCA9
IHZhbHVlICsgIiIgKTsKCQl9Cgl9Owp9CgoKCgp2YXIgcmZvY3VzYWJsZSA9IC9eKD86aW5wdXR8
c2VsZWN0fHRleHRhcmVhfGJ1dHRvbnxvYmplY3QpJC9pLAoJcmNsaWNrYWJsZSA9IC9eKD86YXxh
cmVhKSQvaTsKCmpRdWVyeS5mbi5leHRlbmQoewoJcHJvcDogZnVuY3Rpb24oIG5hbWUsIHZhbHVl
ICkgewoJCXJldHVybiBhY2Nlc3MoIHRoaXMsIGpRdWVyeS5wcm9wLCBuYW1lLCB2YWx1ZSwgYXJn
dW1lbnRzLmxlbmd0aCA+IDEgKTsKCX0sCgoJcmVtb3ZlUHJvcDogZnVuY3Rpb24oIG5hbWUgKSB7
CgkJbmFtZSA9IGpRdWVyeS5wcm9wRml4WyBuYW1lIF0gfHwgbmFtZTsKCQlyZXR1cm4gdGhpcy5l
YWNoKGZ1bmN0aW9uKCkgewoJCQkvLyB0cnkvY2F0Y2ggaGFuZGxlcyBjYXNlcyB3aGVyZSBJRSBi
YWxrcyAoc3VjaCBhcyByZW1vdmluZyBhIHByb3BlcnR5IG9uIHdpbmRvdykKCQkJdHJ5IHsKCQkJ
CXRoaXNbIG5hbWUgXSA9IHVuZGVmaW5lZDsKCQkJCWRlbGV0ZSB0aGlzWyBuYW1lIF07CgkJCX0g
Y2F0Y2goIGUgKSB7fQoJCX0pOwoJfQp9KTsKCmpRdWVyeS5leHRlbmQoewoJcHJvcEZpeDogewoJ
CSJmb3IiOiAiaHRtbEZvciIsCgkJImNsYXNzIjogImNsYXNzTmFtZSIKCX0sCgoJcHJvcDogZnVu
Y3Rpb24oIGVsZW0sIG5hbWUsIHZhbHVlICkgewoJCXZhciByZXQsIGhvb2tzLCBub3R4bWwsCgkJ
CW5UeXBlID0gZWxlbS5ub2RlVHlwZTsKCgkJLy8gZG9uJ3QgZ2V0L3NldCBwcm9wZXJ0aWVzIG9u
IHRleHQsIGNvbW1lbnQgYW5kIGF0dHJpYnV0ZSBub2RlcwoJCWlmICggIWVsZW0gfHwgblR5cGUg
PT09IDMgfHwgblR5cGUgPT09IDggfHwgblR5cGUgPT09IDIgKSB7CgkJCXJldHVybjsKCQl9CgoJ
CW5vdHhtbCA9IG5UeXBlICE9PSAxIHx8ICFqUXVlcnkuaXNYTUxEb2MoIGVsZW0gKTsKCgkJaWYg
KCBub3R4bWwgKSB7CgkJCS8vIEZpeCBuYW1lIGFuZCBhdHRhY2ggaG9va3MKCQkJbmFtZSA9IGpR
dWVyeS5wcm9wRml4WyBuYW1lIF0gfHwgbmFtZTsKCQkJaG9va3MgPSBqUXVlcnkucHJvcEhvb2tz
WyBuYW1lIF07CgkJfQoKCQlpZiAoIHZhbHVlICE9PSB1bmRlZmluZWQgKSB7CgkJCXJldHVybiBo
b29rcyAmJiAic2V0IiBpbiBob29rcyAmJiAocmV0ID0gaG9va3Muc2V0KCBlbGVtLCB2YWx1ZSwg
bmFtZSApKSAhPT0gdW5kZWZpbmVkID8KCQkJCXJldCA6CgkJCQkoIGVsZW1bIG5hbWUgXSA9IHZh
bHVlICk7CgoJCX0gZWxzZSB7CgkJCXJldHVybiBob29rcyAmJiAiZ2V0IiBpbiBob29rcyAmJiAo
cmV0ID0gaG9va3MuZ2V0KCBlbGVtLCBuYW1lICkpICE9PSBudWxsID8KCQkJCXJldCA6CgkJCQll
bGVtWyBuYW1lIF07CgkJfQoJfSwKCglwcm9wSG9va3M6IHsKCQl0YWJJbmRleDogewoJCQlnZXQ6
IGZ1bmN0aW9uKCBlbGVtICkgewoJCQkJLy8gZWxlbS50YWJJbmRleCBkb2Vzbid0IGFsd2F5cyBy
ZXR1cm4gdGhlIGNvcnJlY3QgdmFsdWUgd2hlbiBpdCBoYXNuJ3QgYmVlbiBleHBsaWNpdGx5IHNl
dAoJCQkJLy8gaHR0cDovL2ZsdWlkcHJvamVjdC5vcmcvYmxvZy8yMDA4LzAxLzA5L2dldHRpbmct
c2V0dGluZy1hbmQtcmVtb3ZpbmctdGFiaW5kZXgtdmFsdWVzLXdpdGgtamF2YXNjcmlwdC8KCQkJ
CS8vIFVzZSBwcm9wZXIgYXR0cmlidXRlIHJldHJpZXZhbCgjMTIwNzIpCgkJCQl2YXIgdGFiaW5k
ZXggPSBqUXVlcnkuZmluZC5hdHRyKCBlbGVtLCAidGFiaW5kZXgiICk7CgoJCQkJcmV0dXJuIHRh
YmluZGV4ID8KCQkJCQlwYXJzZUludCggdGFiaW5kZXgsIDEwICkgOgoJCQkJCXJmb2N1c2FibGUu
dGVzdCggZWxlbS5ub2RlTmFtZSApIHx8IHJjbGlja2FibGUudGVzdCggZWxlbS5ub2RlTmFtZSAp
ICYmIGVsZW0uaHJlZiA/CgkJCQkJCTAgOgoJCQkJCQktMTsKCQkJfQoJCX0KCX0KfSk7CgovLyBT
b21lIGF0dHJpYnV0ZXMgcmVxdWlyZSBhIHNwZWNpYWwgY2FsbCBvbiBJRQovLyBodHRwOi8vbXNk
bi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvbXM1MzY0MjklMjhWUy44NSUyOS5hc3B4Cmlm
ICggIXN1cHBvcnQuaHJlZk5vcm1hbGl6ZWQgKSB7CgkvLyBocmVmL3NyYyBwcm9wZXJ0eSBzaG91
bGQgZ2V0IHRoZSBmdWxsIG5vcm1hbGl6ZWQgVVJMICgjMTAyOTkvIzEyOTE1KQoJalF1ZXJ5LmVh
Y2goWyAiaHJlZiIsICJzcmMiIF0sIGZ1bmN0aW9uKCBpLCBuYW1lICkgewoJCWpRdWVyeS5wcm9w
SG9va3NbIG5hbWUgXSA9IHsKCQkJZ2V0OiBmdW5jdGlvbiggZWxlbSApIHsKCQkJCXJldHVybiBl
bGVtLmdldEF0dHJpYnV0ZSggbmFtZSwgNCApOwoJCQl9CgkJfTsKCX0pOwp9CgovLyBTdXBwb3J0
OiBTYWZhcmksIElFOSsKLy8gbWlzLXJlcG9ydHMgdGhlIGRlZmF1bHQgc2VsZWN0ZWQgcHJvcGVy
dHkgb2YgYW4gb3B0aW9uCi8vIEFjY2Vzc2luZyB0aGUgcGFyZW50J3Mgc2VsZWN0ZWRJbmRleCBw
cm9wZXJ0eSBmaXhlcyBpdAppZiAoICFzdXBwb3J0Lm9wdFNlbGVjdGVkICkgewoJalF1ZXJ5LnBy
b3BIb29rcy5zZWxlY3RlZCA9IHsKCQlnZXQ6IGZ1bmN0aW9uKCBlbGVtICkgewoJCQl2YXIgcGFy
ZW50ID0gZWxlbS5wYXJlbnROb2RlOwoKCQkJaWYgKCBwYXJlbnQgKSB7CgkJCQlwYXJlbnQuc2Vs
ZWN0ZWRJbmRleDsKCgkJCQkvLyBNYWtlIHN1cmUgdGhhdCBpdCBhbHNvIHdvcmtzIHdpdGggb3B0
Z3JvdXBzLCBzZWUgIzU3MDEKCQkJCWlmICggcGFyZW50LnBhcmVudE5vZGUgKSB7CgkJCQkJcGFy
ZW50LnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleDsKCQkJCX0KCQkJfQoJCQlyZXR1cm4gbnVsbDsK
CQl9Cgl9Owp9CgpqUXVlcnkuZWFjaChbCgkidGFiSW5kZXgiLAoJInJlYWRPbmx5IiwKCSJtYXhM
ZW5ndGgiLAoJImNlbGxTcGFjaW5nIiwKCSJjZWxsUGFkZGluZyIsCgkicm93U3BhbiIsCgkiY29s
U3BhbiIsCgkidXNlTWFwIiwKCSJmcmFtZUJvcmRlciIsCgkiY29udGVudEVkaXRhYmxlIgpdLCBm
dW5jdGlvbigpIHsKCWpRdWVyeS5wcm9wRml4WyB0aGlzLnRvTG93ZXJDYXNlKCkgXSA9IHRoaXM7
Cn0pOwoKLy8gSUU2LzcgY2FsbCBlbmN0eXBlIGVuY29kaW5nCmlmICggIXN1cHBvcnQuZW5jdHlw
ZSApIHsKCWpRdWVyeS5wcm9wRml4LmVuY3R5cGUgPSAiZW5jb2RpbmciOwp9CgoKCgp2YXIgcmNs
YXNzID0gL1tcdFxyXG5cZl0vZzsKCmpRdWVyeS5mbi5leHRlbmQoewoJYWRkQ2xhc3M6IGZ1bmN0
aW9uKCB2YWx1ZSApIHsKCQl2YXIgY2xhc3NlcywgZWxlbSwgY3VyLCBjbGF6eiwgaiwgZmluYWxW
YWx1ZSwKCQkJaSA9IDAsCgkJCWxlbiA9IHRoaXMubGVuZ3RoLAoJCQlwcm9jZWVkID0gdHlwZW9m
IHZhbHVlID09PSAic3RyaW5nIiAmJiB2YWx1ZTsKCgkJaWYgKCBqUXVlcnkuaXNGdW5jdGlvbigg
dmFsdWUgKSApIHsKCQkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiggaiApIHsKCQkJCWpRdWVy
eSggdGhpcyApLmFkZENsYXNzKCB2YWx1ZS5jYWxsKCB0aGlzLCBqLCB0aGlzLmNsYXNzTmFtZSAp
ICk7CgkJCX0pOwoJCX0KCgkJaWYgKCBwcm9jZWVkICkgewoJCQkvLyBUaGUgZGlzanVuY3Rpb24g
aGVyZSBpcyBmb3IgYmV0dGVyIGNvbXByZXNzaWJpbGl0eSAoc2VlIHJlbW92ZUNsYXNzKQoJCQlj
bGFzc2VzID0gKCB2YWx1ZSB8fCAiIiApLm1hdGNoKCBybm90d2hpdGUgKSB8fCBbXTsKCgkJCWZv
ciAoIDsgaSA8IGxlbjsgaSsrICkgewoJCQkJZWxlbSA9IHRoaXNbIGkgXTsKCQkJCWN1ciA9IGVs
ZW0ubm9kZVR5cGUgPT09IDEgJiYgKCBlbGVtLmNsYXNzTmFtZSA/CgkJCQkJKCAiICIgKyBlbGVt
LmNsYXNzTmFtZSArICIgIiApLnJlcGxhY2UoIHJjbGFzcywgIiAiICkgOgoJCQkJCSIgIgoJCQkJ
KTsKCgkJCQlpZiAoIGN1ciApIHsKCQkJCQlqID0gMDsKCQkJCQl3aGlsZSAoIChjbGF6eiA9IGNs
YXNzZXNbaisrXSkgKSB7CgkJCQkJCWlmICggY3VyLmluZGV4T2YoICIgIiArIGNsYXp6ICsgIiAi
ICkgPCAwICkgewoJCQkJCQkJY3VyICs9IGNsYXp6ICsgIiAiOwoJCQkJCQl9CgkJCQkJfQoKCQkJ
CQkvLyBvbmx5IGFzc2lnbiBpZiBkaWZmZXJlbnQgdG8gYXZvaWQgdW5uZWVkZWQgcmVuZGVyaW5n
LgoJCQkJCWZpbmFsVmFsdWUgPSBqUXVlcnkudHJpbSggY3VyICk7CgkJCQkJaWYgKCBlbGVtLmNs
YXNzTmFtZSAhPT0gZmluYWxWYWx1ZSApIHsKCQkJCQkJZWxlbS5jbGFzc05hbWUgPSBmaW5hbFZh
bHVlOwoJCQkJCX0KCQkJCX0KCQkJfQoJCX0KCgkJcmV0dXJuIHRoaXM7Cgl9LAoKCXJlbW92ZUNs
YXNzOiBmdW5jdGlvbiggdmFsdWUgKSB7CgkJdmFyIGNsYXNzZXMsIGVsZW0sIGN1ciwgY2xhenos
IGosIGZpbmFsVmFsdWUsCgkJCWkgPSAwLAoJCQlsZW4gPSB0aGlzLmxlbmd0aCwKCQkJcHJvY2Vl
ZCA9IGFyZ3VtZW50cy5sZW5ndGggPT09IDAgfHwgdHlwZW9mIHZhbHVlID09PSAic3RyaW5nIiAm
JiB2YWx1ZTsKCgkJaWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggdmFsdWUgKSApIHsKCQkJcmV0dXJu
IHRoaXMuZWFjaChmdW5jdGlvbiggaiApIHsKCQkJCWpRdWVyeSggdGhpcyApLnJlbW92ZUNsYXNz
KCB2YWx1ZS5jYWxsKCB0aGlzLCBqLCB0aGlzLmNsYXNzTmFtZSApICk7CgkJCX0pOwoJCX0KCQlp
ZiAoIHByb2NlZWQgKSB7CgkJCWNsYXNzZXMgPSAoIHZhbHVlIHx8ICIiICkubWF0Y2goIHJub3R3
aGl0ZSApIHx8IFtdOwoKCQkJZm9yICggOyBpIDwgbGVuOyBpKysgKSB7CgkJCQllbGVtID0gdGhp
c1sgaSBdOwoJCQkJLy8gVGhpcyBleHByZXNzaW9uIGlzIGhlcmUgZm9yIGJldHRlciBjb21wcmVz
c2liaWxpdHkgKHNlZSBhZGRDbGFzcykKCQkJCWN1ciA9IGVsZW0ubm9kZVR5cGUgPT09IDEgJiYg
KCBlbGVtLmNsYXNzTmFtZSA/CgkJCQkJKCAiICIgKyBlbGVtLmNsYXNzTmFtZSArICIgIiApLnJl
cGxhY2UoIHJjbGFzcywgIiAiICkgOgoJCQkJCSIiCgkJCQkpOwoKCQkJCWlmICggY3VyICkgewoJ
CQkJCWogPSAwOwoJCQkJCXdoaWxlICggKGNsYXp6ID0gY2xhc3Nlc1tqKytdKSApIHsKCQkJCQkJ
Ly8gUmVtb3ZlICphbGwqIGluc3RhbmNlcwoJCQkJCQl3aGlsZSAoIGN1ci5pbmRleE9mKCAiICIg
KyBjbGF6eiArICIgIiApID49IDAgKSB7CgkJCQkJCQljdXIgPSBjdXIucmVwbGFjZSggIiAiICsg
Y2xhenogKyAiICIsICIgIiApOwoJCQkJCQl9CgkJCQkJfQoKCQkJCQkvLyBvbmx5IGFzc2lnbiBp
ZiBkaWZmZXJlbnQgdG8gYXZvaWQgdW5uZWVkZWQgcmVuZGVyaW5nLgoJCQkJCWZpbmFsVmFsdWUg
PSB2YWx1ZSA/IGpRdWVyeS50cmltKCBjdXIgKSA6ICIiOwoJCQkJCWlmICggZWxlbS5jbGFzc05h
bWUgIT09IGZpbmFsVmFsdWUgKSB7CgkJCQkJCWVsZW0uY2xhc3NOYW1lID0gZmluYWxWYWx1ZTsK
CQkJCQl9CgkJCQl9CgkJCX0KCQl9CgoJCXJldHVybiB0aGlzOwoJfSwKCgl0b2dnbGVDbGFzczog
ZnVuY3Rpb24oIHZhbHVlLCBzdGF0ZVZhbCApIHsKCQl2YXIgdHlwZSA9IHR5cGVvZiB2YWx1ZTsK
CgkJaWYgKCB0eXBlb2Ygc3RhdGVWYWwgPT09ICJib29sZWFuIiAmJiB0eXBlID09PSAic3RyaW5n
IiApIHsKCQkJcmV0dXJuIHN0YXRlVmFsID8gdGhpcy5hZGRDbGFzcyggdmFsdWUgKSA6IHRoaXMu
cmVtb3ZlQ2xhc3MoIHZhbHVlICk7CgkJfQoKCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCB2YWx1
ZSApICkgewoJCQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCBpICkgewoJCQkJalF1ZXJ5KCB0
aGlzICkudG9nZ2xlQ2xhc3MoIHZhbHVlLmNhbGwodGhpcywgaSwgdGhpcy5jbGFzc05hbWUsIHN0
YXRlVmFsKSwgc3RhdGVWYWwgKTsKCQkJfSk7CgkJfQoKCQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0
aW9uKCkgewoJCQlpZiAoIHR5cGUgPT09ICJzdHJpbmciICkgewoJCQkJLy8gdG9nZ2xlIGluZGl2
aWR1YWwgY2xhc3MgbmFtZXMKCQkJCXZhciBjbGFzc05hbWUsCgkJCQkJaSA9IDAsCgkJCQkJc2Vs
ZiA9IGpRdWVyeSggdGhpcyApLAoJCQkJCWNsYXNzTmFtZXMgPSB2YWx1ZS5tYXRjaCggcm5vdHdo
aXRlICkgfHwgW107CgoJCQkJd2hpbGUgKCAoY2xhc3NOYW1lID0gY2xhc3NOYW1lc1sgaSsrIF0p
ICkgewoJCQkJCS8vIGNoZWNrIGVhY2ggY2xhc3NOYW1lIGdpdmVuLCBzcGFjZSBzZXBhcmF0ZWQg
bGlzdAoJCQkJCWlmICggc2VsZi5oYXNDbGFzcyggY2xhc3NOYW1lICkgKSB7CgkJCQkJCXNlbGYu
cmVtb3ZlQ2xhc3MoIGNsYXNzTmFtZSApOwoJCQkJCX0gZWxzZSB7CgkJCQkJCXNlbGYuYWRkQ2xh
c3MoIGNsYXNzTmFtZSApOwoJCQkJCX0KCQkJCX0KCgkJCS8vIFRvZ2dsZSB3aG9sZSBjbGFzcyBu
YW1lCgkJCX0gZWxzZSBpZiAoIHR5cGUgPT09IHN0cnVuZGVmaW5lZCB8fCB0eXBlID09PSAiYm9v
bGVhbiIgKSB7CgkJCQlpZiAoIHRoaXMuY2xhc3NOYW1lICkgewoJCQkJCS8vIHN0b3JlIGNsYXNz
TmFtZSBpZiBzZXQKCQkJCQlqUXVlcnkuX2RhdGEoIHRoaXMsICJfX2NsYXNzTmFtZV9fIiwgdGhp
cy5jbGFzc05hbWUgKTsKCQkJCX0KCgkJCQkvLyBJZiB0aGUgZWxlbWVudCBoYXMgYSBjbGFzcyBu
YW1lIG9yIGlmIHdlJ3JlIHBhc3NlZCAiZmFsc2UiLAoJCQkJLy8gdGhlbiByZW1vdmUgdGhlIHdo
b2xlIGNsYXNzbmFtZSAoaWYgdGhlcmUgd2FzIG9uZSwgdGhlIGFib3ZlIHNhdmVkIGl0KS4KCQkJ
CS8vIE90aGVyd2lzZSBicmluZyBiYWNrIHdoYXRldmVyIHdhcyBwcmV2aW91c2x5IHNhdmVkIChp
ZiBhbnl0aGluZyksCgkJCQkvLyBmYWxsaW5nIGJhY2sgdG8gdGhlIGVtcHR5IHN0cmluZyBpZiBu
b3RoaW5nIHdhcyBzdG9yZWQuCgkJCQl0aGlzLmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lIHx8
IHZhbHVlID09PSBmYWxzZSA/ICIiIDogalF1ZXJ5Ll9kYXRhKCB0aGlzLCAiX19jbGFzc05hbWVf
XyIgKSB8fCAiIjsKCQkJfQoJCX0pOwoJfSwKCgloYXNDbGFzczogZnVuY3Rpb24oIHNlbGVjdG9y
ICkgewoJCXZhciBjbGFzc05hbWUgPSAiICIgKyBzZWxlY3RvciArICIgIiwKCQkJaSA9IDAsCgkJ
CWwgPSB0aGlzLmxlbmd0aDsKCQlmb3IgKCA7IGkgPCBsOyBpKysgKSB7CgkJCWlmICggdGhpc1tp
XS5ub2RlVHlwZSA9PT0gMSAmJiAoIiAiICsgdGhpc1tpXS5jbGFzc05hbWUgKyAiICIpLnJlcGxh
Y2UocmNsYXNzLCAiICIpLmluZGV4T2YoIGNsYXNzTmFtZSApID49IDAgKSB7CgkJCQlyZXR1cm4g
dHJ1ZTsKCQkJfQoJCX0KCgkJcmV0dXJuIGZhbHNlOwoJfQp9KTsKCgoKCi8vIFJldHVybiBqUXVl
cnkgZm9yIGF0dHJpYnV0ZXMtb25seSBpbmNsdXNpb24KCgpqUXVlcnkuZWFjaCggKCJibHVyIGZv
Y3VzIGZvY3VzaW4gZm9jdXNvdXQgbG9hZCByZXNpemUgc2Nyb2xsIHVubG9hZCBjbGljayBkYmxj
bGljayAiICsKCSJtb3VzZWRvd24gbW91c2V1cCBtb3VzZW1vdmUgbW91c2VvdmVyIG1vdXNlb3V0
IG1vdXNlZW50ZXIgbW91c2VsZWF2ZSAiICsKCSJjaGFuZ2Ugc2VsZWN0IHN1Ym1pdCBrZXlkb3du
IGtleXByZXNzIGtleXVwIGVycm9yIGNvbnRleHRtZW51Iikuc3BsaXQoIiAiKSwgZnVuY3Rpb24o
IGksIG5hbWUgKSB7CgoJLy8gSGFuZGxlIGV2ZW50IGJpbmRpbmcKCWpRdWVyeS5mblsgbmFtZSBd
ID0gZnVuY3Rpb24oIGRhdGEsIGZuICkgewoJCXJldHVybiBhcmd1bWVudHMubGVuZ3RoID4gMCA/
CgkJCXRoaXMub24oIG5hbWUsIG51bGwsIGRhdGEsIGZuICkgOgoJCQl0aGlzLnRyaWdnZXIoIG5h
bWUgKTsKCX07Cn0pOwoKalF1ZXJ5LmZuLmV4dGVuZCh7Cglob3ZlcjogZnVuY3Rpb24oIGZuT3Zl
ciwgZm5PdXQgKSB7CgkJcmV0dXJuIHRoaXMubW91c2VlbnRlciggZm5PdmVyICkubW91c2VsZWF2
ZSggZm5PdXQgfHwgZm5PdmVyICk7Cgl9LAoKCWJpbmQ6IGZ1bmN0aW9uKCB0eXBlcywgZGF0YSwg
Zm4gKSB7CgkJcmV0dXJuIHRoaXMub24oIHR5cGVzLCBudWxsLCBkYXRhLCBmbiApOwoJfSwKCXVu
YmluZDogZnVuY3Rpb24oIHR5cGVzLCBmbiApIHsKCQlyZXR1cm4gdGhpcy5vZmYoIHR5cGVzLCBu
dWxsLCBmbiApOwoJfSwKCglkZWxlZ2F0ZTogZnVuY3Rpb24oIHNlbGVjdG9yLCB0eXBlcywgZGF0
YSwgZm4gKSB7CgkJcmV0dXJuIHRoaXMub24oIHR5cGVzLCBzZWxlY3RvciwgZGF0YSwgZm4gKTsK
CX0sCgl1bmRlbGVnYXRlOiBmdW5jdGlvbiggc2VsZWN0b3IsIHR5cGVzLCBmbiApIHsKCQkvLyAo
IG5hbWVzcGFjZSApIG9yICggc2VsZWN0b3IsIHR5cGVzIFssIGZuXSApCgkJcmV0dXJuIGFyZ3Vt
ZW50cy5sZW5ndGggPT09IDEgPyB0aGlzLm9mZiggc2VsZWN0b3IsICIqKiIgKSA6IHRoaXMub2Zm
KCB0eXBlcywgc2VsZWN0b3IgfHwgIioqIiwgZm4gKTsKCX0KfSk7CgoKdmFyIG5vbmNlID0galF1
ZXJ5Lm5vdygpOwoKdmFyIHJxdWVyeSA9ICgvXD8vKTsKCgoKdmFyIHJ2YWxpZHRva2VucyA9IC8o
LCl8KFxbfHspfCh9fF0pfCIoPzpbXiJcXFxyXG5dfFxcWyJcXFwvYmZucnRdfFxcdVtcZGEtZkEt
Rl17NH0pKiJccyo6P3x0cnVlfGZhbHNlfG51bGx8LT8oPyEwXGQpXGQrKD86XC5cZCt8KSg/Oltl
RV1bKy1dP1xkK3wpL2c7CgpqUXVlcnkucGFyc2VKU09OID0gZnVuY3Rpb24oIGRhdGEgKSB7Cgkv
LyBBdHRlbXB0IHRvIHBhcnNlIHVzaW5nIHRoZSBuYXRpdmUgSlNPTiBwYXJzZXIgZmlyc3QKCWlm
ICggd2luZG93LkpTT04gJiYgd2luZG93LkpTT04ucGFyc2UgKSB7CgkJLy8gU3VwcG9ydDogQW5k
cm9pZCAyLjMKCQkvLyBXb3JrYXJvdW5kIGZhaWx1cmUgdG8gc3RyaW5nLWNhc3QgbnVsbCBpbnB1
dAoJCXJldHVybiB3aW5kb3cuSlNPTi5wYXJzZSggZGF0YSArICIiICk7Cgl9CgoJdmFyIHJlcXVp
cmVOb25Db21tYSwKCQlkZXB0aCA9IG51bGwsCgkJc3RyID0galF1ZXJ5LnRyaW0oIGRhdGEgKyAi
IiApOwoKCS8vIEd1YXJkIGFnYWluc3QgaW52YWxpZCAoYW5kIHBvc3NpYmx5IGRhbmdlcm91cykg
aW5wdXQgYnkgZW5zdXJpbmcgdGhhdCBub3RoaW5nIHJlbWFpbnMKCS8vIGFmdGVyIHJlbW92aW5n
IHZhbGlkIHRva2VucwoJcmV0dXJuIHN0ciAmJiAhalF1ZXJ5LnRyaW0oIHN0ci5yZXBsYWNlKCBy
dmFsaWR0b2tlbnMsIGZ1bmN0aW9uKCB0b2tlbiwgY29tbWEsIG9wZW4sIGNsb3NlICkgewoKCQkv
LyBGb3JjZSB0ZXJtaW5hdGlvbiBpZiB3ZSBzZWUgYSBtaXNwbGFjZWQgY29tbWEKCQlpZiAoIHJl
cXVpcmVOb25Db21tYSAmJiBjb21tYSApIHsKCQkJZGVwdGggPSAwOwoJCX0KCgkJLy8gUGVyZm9y
bSBubyBtb3JlIHJlcGxhY2VtZW50cyBhZnRlciByZXR1cm5pbmcgdG8gb3V0ZXJtb3N0IGRlcHRo
CgkJaWYgKCBkZXB0aCA9PT0gMCApIHsKCQkJcmV0dXJuIHRva2VuOwoJCX0KCgkJLy8gQ29tbWFz
IG11c3Qgbm90IGZvbGxvdyAiWyIsICJ7Iiwgb3IgIiwiCgkJcmVxdWlyZU5vbkNvbW1hID0gb3Bl
biB8fCBjb21tYTsKCgkJLy8gRGV0ZXJtaW5lIG5ldyBkZXB0aAoJCS8vIGFycmF5L29iamVjdCBv
cGVuICgiWyIgb3IgInsiKTogZGVwdGggKz0gdHJ1ZSAtIGZhbHNlIChpbmNyZW1lbnQpCgkJLy8g
YXJyYXkvb2JqZWN0IGNsb3NlICgiXSIgb3IgIn0iKTogZGVwdGggKz0gZmFsc2UgLSB0cnVlIChk
ZWNyZW1lbnQpCgkJLy8gb3RoZXIgY2FzZXMgKCIsIiBvciBwcmltaXRpdmUpOiBkZXB0aCArPSB0
cnVlIC0gdHJ1ZSAobnVtZXJpYyBjYXN0KQoJCWRlcHRoICs9ICFjbG9zZSAtICFvcGVuOwoKCQkv
LyBSZW1vdmUgdGhpcyB0b2tlbgoJCXJldHVybiAiIjsKCX0pICkgPwoJCSggRnVuY3Rpb24oICJy
ZXR1cm4gIiArIHN0ciApICkoKSA6CgkJalF1ZXJ5LmVycm9yKCAiSW52YWxpZCBKU09OOiAiICsg
ZGF0YSApOwp9OwoKCi8vIENyb3NzLWJyb3dzZXIgeG1sIHBhcnNpbmcKalF1ZXJ5LnBhcnNlWE1M
ID0gZnVuY3Rpb24oIGRhdGEgKSB7Cgl2YXIgeG1sLCB0bXA7CglpZiAoICFkYXRhIHx8IHR5cGVv
ZiBkYXRhICE9PSAic3RyaW5nIiApIHsKCQlyZXR1cm4gbnVsbDsKCX0KCXRyeSB7CgkJaWYgKCB3
aW5kb3cuRE9NUGFyc2VyICkgeyAvLyBTdGFuZGFyZAoJCQl0bXAgPSBuZXcgRE9NUGFyc2VyKCk7
CgkJCXhtbCA9IHRtcC5wYXJzZUZyb21TdHJpbmcoIGRhdGEsICJ0ZXh0L3htbCIgKTsKCQl9IGVs
c2UgeyAvLyBJRQoJCQl4bWwgPSBuZXcgQWN0aXZlWE9iamVjdCggIk1pY3Jvc29mdC5YTUxET00i
ICk7CgkJCXhtbC5hc3luYyA9ICJmYWxzZSI7CgkJCXhtbC5sb2FkWE1MKCBkYXRhICk7CgkJfQoJ
fSBjYXRjaCggZSApIHsKCQl4bWwgPSB1bmRlZmluZWQ7Cgl9CglpZiAoICF4bWwgfHwgIXhtbC5k
b2N1bWVudEVsZW1lbnQgfHwgeG1sLmdldEVsZW1lbnRzQnlUYWdOYW1lKCAicGFyc2VyZXJyb3Ii
ICkubGVuZ3RoICkgewoJCWpRdWVyeS5lcnJvciggIkludmFsaWQgWE1MOiAiICsgZGF0YSApOwoJ
fQoJcmV0dXJuIHhtbDsKfTsKCgp2YXIKCS8vIERvY3VtZW50IGxvY2F0aW9uCglhamF4TG9jUGFy
dHMsCglhamF4TG9jYXRpb24sCgoJcmhhc2ggPSAvIy4qJC8sCglydHMgPSAvKFs/Jl0pXz1bXiZd
Ki8sCglyaGVhZGVycyA9IC9eKC4qPyk6WyBcdF0qKFteXHJcbl0qKVxyPyQvbWcsIC8vIElFIGxl
YXZlcyBhbiBcciBjaGFyYWN0ZXIgYXQgRU9MCgkvLyAjNzY1MywgIzgxMjUsICM4MTUyOiBsb2Nh
bCBwcm90b2NvbCBkZXRlY3Rpb24KCXJsb2NhbFByb3RvY29sID0gL14oPzphYm91dHxhcHB8YXBw
LXN0b3JhZ2V8ListZXh0ZW5zaW9ufGZpbGV8cmVzfHdpZGdldCk6JC8sCglybm9Db250ZW50ID0g
L14oPzpHRVR8SEVBRCkkLywKCXJwcm90b2NvbCA9IC9eXC9cLy8sCglydXJsID0gL14oW1x3List
XSs6KSg/OlwvXC8oPzpbXlwvPyNdKkB8KShbXlwvPyM6XSopKD86OihcZCspfCl8KS8sCgoJLyog
UHJlZmlsdGVycwoJICogMSkgVGhleSBhcmUgdXNlZnVsIHRvIGludHJvZHVjZSBjdXN0b20gZGF0
YVR5cGVzIChzZWUgYWpheC9qc29ucC5qcyBmb3IgYW4gZXhhbXBsZSkKCSAqIDIpIFRoZXNlIGFy
ZSBjYWxsZWQ6CgkgKiAgICAtIEJFRk9SRSBhc2tpbmcgZm9yIGEgdHJhbnNwb3J0CgkgKiAgICAt
IEFGVEVSIHBhcmFtIHNlcmlhbGl6YXRpb24gKHMuZGF0YSBpcyBhIHN0cmluZyBpZiBzLnByb2Nl
c3NEYXRhIGlzIHRydWUpCgkgKiAzKSBrZXkgaXMgdGhlIGRhdGFUeXBlCgkgKiA0KSB0aGUgY2F0
Y2hhbGwgc3ltYm9sICIqIiBjYW4gYmUgdXNlZAoJICogNSkgZXhlY3V0aW9uIHdpbGwgc3RhcnQg
d2l0aCB0cmFuc3BvcnQgZGF0YVR5cGUgYW5kIFRIRU4gY29udGludWUgZG93biB0byAiKiIgaWYg
bmVlZGVkCgkgKi8KCXByZWZpbHRlcnMgPSB7fSwKCgkvKiBUcmFuc3BvcnRzIGJpbmRpbmdzCgkg
KiAxKSBrZXkgaXMgdGhlIGRhdGFUeXBlCgkgKiAyKSB0aGUgY2F0Y2hhbGwgc3ltYm9sICIqIiBj
YW4gYmUgdXNlZAoJICogMykgc2VsZWN0aW9uIHdpbGwgc3RhcnQgd2l0aCB0cmFuc3BvcnQgZGF0
YVR5cGUgYW5kIFRIRU4gZ28gdG8gIioiIGlmIG5lZWRlZAoJICovCgl0cmFuc3BvcnRzID0ge30s
CgoJLy8gQXZvaWQgY29tbWVudC1wcm9sb2cgY2hhciBzZXF1ZW5jZSAoIzEwMDk4KTsgbXVzdCBh
cHBlYXNlIGxpbnQgYW5kIGV2YWRlIGNvbXByZXNzaW9uCglhbGxUeXBlcyA9ICIqLyIuY29uY2F0
KCIqIik7CgovLyAjODEzOCwgSUUgbWF5IHRocm93IGFuIGV4Y2VwdGlvbiB3aGVuIGFjY2Vzc2lu
ZwovLyBhIGZpZWxkIGZyb20gd2luZG93LmxvY2F0aW9uIGlmIGRvY3VtZW50LmRvbWFpbiBoYXMg
YmVlbiBzZXQKdHJ5IHsKCWFqYXhMb2NhdGlvbiA9IGxvY2F0aW9uLmhyZWY7Cn0gY2F0Y2goIGUg
KSB7CgkvLyBVc2UgdGhlIGhyZWYgYXR0cmlidXRlIG9mIGFuIEEgZWxlbWVudAoJLy8gc2luY2Ug
SUUgd2lsbCBtb2RpZnkgaXQgZ2l2ZW4gZG9jdW1lbnQubG9jYXRpb24KCWFqYXhMb2NhdGlvbiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICJhIiApOwoJYWpheExvY2F0aW9uLmhyZWYgPSAiIjsK
CWFqYXhMb2NhdGlvbiA9IGFqYXhMb2NhdGlvbi5ocmVmOwp9CgovLyBTZWdtZW50IGxvY2F0aW9u
IGludG8gcGFydHMKYWpheExvY1BhcnRzID0gcnVybC5leGVjKCBhamF4TG9jYXRpb24udG9Mb3dl
ckNhc2UoKSApIHx8IFtdOwoKLy8gQmFzZSAiY29uc3RydWN0b3IiIGZvciBqUXVlcnkuYWpheFBy
ZWZpbHRlciBhbmQgalF1ZXJ5LmFqYXhUcmFuc3BvcnQKZnVuY3Rpb24gYWRkVG9QcmVmaWx0ZXJz
T3JUcmFuc3BvcnRzKCBzdHJ1Y3R1cmUgKSB7CgoJLy8gZGF0YVR5cGVFeHByZXNzaW9uIGlzIG9w
dGlvbmFsIGFuZCBkZWZhdWx0cyB0byAiKiIKCXJldHVybiBmdW5jdGlvbiggZGF0YVR5cGVFeHBy
ZXNzaW9uLCBmdW5jICkgewoKCQlpZiAoIHR5cGVvZiBkYXRhVHlwZUV4cHJlc3Npb24gIT09ICJz
dHJpbmciICkgewoJCQlmdW5jID0gZGF0YVR5cGVFeHByZXNzaW9uOwoJCQlkYXRhVHlwZUV4cHJl
c3Npb24gPSAiKiI7CgkJfQoKCQl2YXIgZGF0YVR5cGUsCgkJCWkgPSAwLAoJCQlkYXRhVHlwZXMg
PSBkYXRhVHlwZUV4cHJlc3Npb24udG9Mb3dlckNhc2UoKS5tYXRjaCggcm5vdHdoaXRlICkgfHwg
W107CgoJCWlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIGZ1bmMgKSApIHsKCQkJLy8gRm9yIGVhY2gg
ZGF0YVR5cGUgaW4gdGhlIGRhdGFUeXBlRXhwcmVzc2lvbgoJCQl3aGlsZSAoIChkYXRhVHlwZSA9
IGRhdGFUeXBlc1tpKytdKSApIHsKCQkJCS8vIFByZXBlbmQgaWYgcmVxdWVzdGVkCgkJCQlpZiAo
IGRhdGFUeXBlLmNoYXJBdCggMCApID09PSAiKyIgKSB7CgkJCQkJZGF0YVR5cGUgPSBkYXRhVHlw
ZS5zbGljZSggMSApIHx8ICIqIjsKCQkJCQkoc3RydWN0dXJlWyBkYXRhVHlwZSBdID0gc3RydWN0
dXJlWyBkYXRhVHlwZSBdIHx8IFtdKS51bnNoaWZ0KCBmdW5jICk7CgoJCQkJLy8gT3RoZXJ3aXNl
IGFwcGVuZAoJCQkJfSBlbHNlIHsKCQkJCQkoc3RydWN0dXJlWyBkYXRhVHlwZSBdID0gc3RydWN0
dXJlWyBkYXRhVHlwZSBdIHx8IFtdKS5wdXNoKCBmdW5jICk7CgkJCQl9CgkJCX0KCQl9Cgl9Owp9
CgovLyBCYXNlIGluc3BlY3Rpb24gZnVuY3Rpb24gZm9yIHByZWZpbHRlcnMgYW5kIHRyYW5zcG9y
dHMKZnVuY3Rpb24gaW5zcGVjdFByZWZpbHRlcnNPclRyYW5zcG9ydHMoIHN0cnVjdHVyZSwgb3B0
aW9ucywgb3JpZ2luYWxPcHRpb25zLCBqcVhIUiApIHsKCgl2YXIgaW5zcGVjdGVkID0ge30sCgkJ
c2Vla2luZ1RyYW5zcG9ydCA9ICggc3RydWN0dXJlID09PSB0cmFuc3BvcnRzICk7CgoJZnVuY3Rp
b24gaW5zcGVjdCggZGF0YVR5cGUgKSB7CgkJdmFyIHNlbGVjdGVkOwoJCWluc3BlY3RlZFsgZGF0
YVR5cGUgXSA9IHRydWU7CgkJalF1ZXJ5LmVhY2goIHN0cnVjdHVyZVsgZGF0YVR5cGUgXSB8fCBb
XSwgZnVuY3Rpb24oIF8sIHByZWZpbHRlck9yRmFjdG9yeSApIHsKCQkJdmFyIGRhdGFUeXBlT3JU
cmFuc3BvcnQgPSBwcmVmaWx0ZXJPckZhY3RvcnkoIG9wdGlvbnMsIG9yaWdpbmFsT3B0aW9ucywg
anFYSFIgKTsKCQkJaWYgKCB0eXBlb2YgZGF0YVR5cGVPclRyYW5zcG9ydCA9PT0gInN0cmluZyIg
JiYgIXNlZWtpbmdUcmFuc3BvcnQgJiYgIWluc3BlY3RlZFsgZGF0YVR5cGVPclRyYW5zcG9ydCBd
ICkgewoJCQkJb3B0aW9ucy5kYXRhVHlwZXMudW5zaGlmdCggZGF0YVR5cGVPclRyYW5zcG9ydCAp
OwoJCQkJaW5zcGVjdCggZGF0YVR5cGVPclRyYW5zcG9ydCApOwoJCQkJcmV0dXJuIGZhbHNlOwoJ
CQl9IGVsc2UgaWYgKCBzZWVraW5nVHJhbnNwb3J0ICkgewoJCQkJcmV0dXJuICEoIHNlbGVjdGVk
ID0gZGF0YVR5cGVPclRyYW5zcG9ydCApOwoJCQl9CgkJfSk7CgkJcmV0dXJuIHNlbGVjdGVkOwoJ
fQoKCXJldHVybiBpbnNwZWN0KCBvcHRpb25zLmRhdGFUeXBlc1sgMCBdICkgfHwgIWluc3BlY3Rl
ZFsgIioiIF0gJiYgaW5zcGVjdCggIioiICk7Cn0KCi8vIEEgc3BlY2lhbCBleHRlbmQgZm9yIGFq
YXggb3B0aW9ucwovLyB0aGF0IHRha2VzICJmbGF0IiBvcHRpb25zIChub3QgdG8gYmUgZGVlcCBl
eHRlbmRlZCkKLy8gRml4ZXMgIzk4ODcKZnVuY3Rpb24gYWpheEV4dGVuZCggdGFyZ2V0LCBzcmMg
KSB7Cgl2YXIgZGVlcCwga2V5LAoJCWZsYXRPcHRpb25zID0galF1ZXJ5LmFqYXhTZXR0aW5ncy5m
bGF0T3B0aW9ucyB8fCB7fTsKCglmb3IgKCBrZXkgaW4gc3JjICkgewoJCWlmICggc3JjWyBrZXkg
XSAhPT0gdW5kZWZpbmVkICkgewoJCQkoIGZsYXRPcHRpb25zWyBrZXkgXSA/IHRhcmdldCA6ICgg
ZGVlcCB8fCAoZGVlcCA9IHt9KSApIClbIGtleSBdID0gc3JjWyBrZXkgXTsKCQl9Cgl9CglpZiAo
IGRlZXAgKSB7CgkJalF1ZXJ5LmV4dGVuZCggdHJ1ZSwgdGFyZ2V0LCBkZWVwICk7Cgl9CgoJcmV0
dXJuIHRhcmdldDsKfQoKLyogSGFuZGxlcyByZXNwb25zZXMgdG8gYW4gYWpheCByZXF1ZXN0Ogog
KiAtIGZpbmRzIHRoZSByaWdodCBkYXRhVHlwZSAobWVkaWF0ZXMgYmV0d2VlbiBjb250ZW50LXR5
cGUgYW5kIGV4cGVjdGVkIGRhdGFUeXBlKQogKiAtIHJldHVybnMgdGhlIGNvcnJlc3BvbmRpbmcg
cmVzcG9uc2UKICovCmZ1bmN0aW9uIGFqYXhIYW5kbGVSZXNwb25zZXMoIHMsIGpxWEhSLCByZXNw
b25zZXMgKSB7Cgl2YXIgZmlyc3REYXRhVHlwZSwgY3QsIGZpbmFsRGF0YVR5cGUsIHR5cGUsCgkJ
Y29udGVudHMgPSBzLmNvbnRlbnRzLAoJCWRhdGFUeXBlcyA9IHMuZGF0YVR5cGVzOwoKCS8vIFJl
bW92ZSBhdXRvIGRhdGFUeXBlIGFuZCBnZXQgY29udGVudC10eXBlIGluIHRoZSBwcm9jZXNzCgl3
aGlsZSAoIGRhdGFUeXBlc1sgMCBdID09PSAiKiIgKSB7CgkJZGF0YVR5cGVzLnNoaWZ0KCk7CgkJ
aWYgKCBjdCA9PT0gdW5kZWZpbmVkICkgewoJCQljdCA9IHMubWltZVR5cGUgfHwganFYSFIuZ2V0
UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtVHlwZSIpOwoJCX0KCX0KCgkvLyBDaGVjayBpZiB3ZSdy
ZSBkZWFsaW5nIHdpdGggYSBrbm93biBjb250ZW50LXR5cGUKCWlmICggY3QgKSB7CgkJZm9yICgg
dHlwZSBpbiBjb250ZW50cyApIHsKCQkJaWYgKCBjb250ZW50c1sgdHlwZSBdICYmIGNvbnRlbnRz
WyB0eXBlIF0udGVzdCggY3QgKSApIHsKCQkJCWRhdGFUeXBlcy51bnNoaWZ0KCB0eXBlICk7CgkJ
CQlicmVhazsKCQkJfQoJCX0KCX0KCgkvLyBDaGVjayB0byBzZWUgaWYgd2UgaGF2ZSBhIHJlc3Bv
bnNlIGZvciB0aGUgZXhwZWN0ZWQgZGF0YVR5cGUKCWlmICggZGF0YVR5cGVzWyAwIF0gaW4gcmVz
cG9uc2VzICkgewoJCWZpbmFsRGF0YVR5cGUgPSBkYXRhVHlwZXNbIDAgXTsKCX0gZWxzZSB7CgkJ
Ly8gVHJ5IGNvbnZlcnRpYmxlIGRhdGFUeXBlcwoJCWZvciAoIHR5cGUgaW4gcmVzcG9uc2VzICkg
ewoJCQlpZiAoICFkYXRhVHlwZXNbIDAgXSB8fCBzLmNvbnZlcnRlcnNbIHR5cGUgKyAiICIgKyBk
YXRhVHlwZXNbMF0gXSApIHsKCQkJCWZpbmFsRGF0YVR5cGUgPSB0eXBlOwoJCQkJYnJlYWs7CgkJ
CX0KCQkJaWYgKCAhZmlyc3REYXRhVHlwZSApIHsKCQkJCWZpcnN0RGF0YVR5cGUgPSB0eXBlOwoJ
CQl9CgkJfQoJCS8vIE9yIGp1c3QgdXNlIGZpcnN0IG9uZQoJCWZpbmFsRGF0YVR5cGUgPSBmaW5h
bERhdGFUeXBlIHx8IGZpcnN0RGF0YVR5cGU7Cgl9CgoJLy8gSWYgd2UgZm91bmQgYSBkYXRhVHlw
ZQoJLy8gV2UgYWRkIHRoZSBkYXRhVHlwZSB0byB0aGUgbGlzdCBpZiBuZWVkZWQKCS8vIGFuZCBy
ZXR1cm4gdGhlIGNvcnJlc3BvbmRpbmcgcmVzcG9uc2UKCWlmICggZmluYWxEYXRhVHlwZSApIHsK
CQlpZiAoIGZpbmFsRGF0YVR5cGUgIT09IGRhdGFUeXBlc1sgMCBdICkgewoJCQlkYXRhVHlwZXMu
dW5zaGlmdCggZmluYWxEYXRhVHlwZSApOwoJCX0KCQlyZXR1cm4gcmVzcG9uc2VzWyBmaW5hbERh
dGFUeXBlIF07Cgl9Cn0KCi8qIENoYWluIGNvbnZlcnNpb25zIGdpdmVuIHRoZSByZXF1ZXN0IGFu
ZCB0aGUgb3JpZ2luYWwgcmVzcG9uc2UKICogQWxzbyBzZXRzIHRoZSByZXNwb25zZVhYWCBmaWVs
ZHMgb24gdGhlIGpxWEhSIGluc3RhbmNlCiAqLwpmdW5jdGlvbiBhamF4Q29udmVydCggcywgcmVz
cG9uc2UsIGpxWEhSLCBpc1N1Y2Nlc3MgKSB7Cgl2YXIgY29udjIsIGN1cnJlbnQsIGNvbnYsIHRt
cCwgcHJldiwKCQljb252ZXJ0ZXJzID0ge30sCgkJLy8gV29yayB3aXRoIGEgY29weSBvZiBkYXRh
VHlwZXMgaW4gY2FzZSB3ZSBuZWVkIHRvIG1vZGlmeSBpdCBmb3IgY29udmVyc2lvbgoJCWRhdGFU
eXBlcyA9IHMuZGF0YVR5cGVzLnNsaWNlKCk7CgoJLy8gQ3JlYXRlIGNvbnZlcnRlcnMgbWFwIHdp
dGggbG93ZXJjYXNlZCBrZXlzCglpZiAoIGRhdGFUeXBlc1sgMSBdICkgewoJCWZvciAoIGNvbnYg
aW4gcy5jb252ZXJ0ZXJzICkgewoJCQljb252ZXJ0ZXJzWyBjb252LnRvTG93ZXJDYXNlKCkgXSA9
IHMuY29udmVydGVyc1sgY29udiBdOwoJCX0KCX0KCgljdXJyZW50ID0gZGF0YVR5cGVzLnNoaWZ0
KCk7CgoJLy8gQ29udmVydCB0byBlYWNoIHNlcXVlbnRpYWwgZGF0YVR5cGUKCXdoaWxlICggY3Vy
cmVudCApIHsKCgkJaWYgKCBzLnJlc3BvbnNlRmllbGRzWyBjdXJyZW50IF0gKSB7CgkJCWpxWEhS
WyBzLnJlc3BvbnNlRmllbGRzWyBjdXJyZW50IF0gXSA9IHJlc3BvbnNlOwoJCX0KCgkJLy8gQXBw
bHkgdGhlIGRhdGFGaWx0ZXIgaWYgcHJvdmlkZWQKCQlpZiAoICFwcmV2ICYmIGlzU3VjY2VzcyAm
JiBzLmRhdGFGaWx0ZXIgKSB7CgkJCXJlc3BvbnNlID0gcy5kYXRhRmlsdGVyKCByZXNwb25zZSwg
cy5kYXRhVHlwZSApOwoJCX0KCgkJcHJldiA9IGN1cnJlbnQ7CgkJY3VycmVudCA9IGRhdGFUeXBl
cy5zaGlmdCgpOwoKCQlpZiAoIGN1cnJlbnQgKSB7CgoJCQkvLyBUaGVyZSdzIG9ubHkgd29yayB0
byBkbyBpZiBjdXJyZW50IGRhdGFUeXBlIGlzIG5vbi1hdXRvCgkJCWlmICggY3VycmVudCA9PT0g
IioiICkgewoKCQkJCWN1cnJlbnQgPSBwcmV2OwoKCQkJLy8gQ29udmVydCByZXNwb25zZSBpZiBw
cmV2IGRhdGFUeXBlIGlzIG5vbi1hdXRvIGFuZCBkaWZmZXJzIGZyb20gY3VycmVudAoJCQl9IGVs
c2UgaWYgKCBwcmV2ICE9PSAiKiIgJiYgcHJldiAhPT0gY3VycmVudCApIHsKCgkJCQkvLyBTZWVr
IGEgZGlyZWN0IGNvbnZlcnRlcgoJCQkJY29udiA9IGNvbnZlcnRlcnNbIHByZXYgKyAiICIgKyBj
dXJyZW50IF0gfHwgY29udmVydGVyc1sgIiogIiArIGN1cnJlbnQgXTsKCgkJCQkvLyBJZiBub25l
IGZvdW5kLCBzZWVrIGEgcGFpcgoJCQkJaWYgKCAhY29udiApIHsKCQkJCQlmb3IgKCBjb252MiBp
biBjb252ZXJ0ZXJzICkgewoKCQkJCQkJLy8gSWYgY29udjIgb3V0cHV0cyBjdXJyZW50CgkJCQkJ
CXRtcCA9IGNvbnYyLnNwbGl0KCAiICIgKTsKCQkJCQkJaWYgKCB0bXBbIDEgXSA9PT0gY3VycmVu
dCApIHsKCgkJCQkJCQkvLyBJZiBwcmV2IGNhbiBiZSBjb252ZXJ0ZWQgdG8gYWNjZXB0ZWQgaW5w
dXQKCQkJCQkJCWNvbnYgPSBjb252ZXJ0ZXJzWyBwcmV2ICsgIiAiICsgdG1wWyAwIF0gXSB8fAoJ
CQkJCQkJCWNvbnZlcnRlcnNbICIqICIgKyB0bXBbIDAgXSBdOwoJCQkJCQkJaWYgKCBjb252ICkg
ewoJCQkJCQkJCS8vIENvbmRlbnNlIGVxdWl2YWxlbmNlIGNvbnZlcnRlcnMKCQkJCQkJCQlpZiAo
IGNvbnYgPT09IHRydWUgKSB7CgkJCQkJCQkJCWNvbnYgPSBjb252ZXJ0ZXJzWyBjb252MiBdOwoK
CQkJCQkJCQkvLyBPdGhlcndpc2UsIGluc2VydCB0aGUgaW50ZXJtZWRpYXRlIGRhdGFUeXBlCgkJ
CQkJCQkJfSBlbHNlIGlmICggY29udmVydGVyc1sgY29udjIgXSAhPT0gdHJ1ZSApIHsKCQkJCQkJ
CQkJY3VycmVudCA9IHRtcFsgMCBdOwoJCQkJCQkJCQlkYXRhVHlwZXMudW5zaGlmdCggdG1wWyAx
IF0gKTsKCQkJCQkJCQl9CgkJCQkJCQkJYnJlYWs7CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQl9CgkJ
CQl9CgoJCQkJLy8gQXBwbHkgY29udmVydGVyIChpZiBub3QgYW4gZXF1aXZhbGVuY2UpCgkJCQlp
ZiAoIGNvbnYgIT09IHRydWUgKSB7CgoJCQkJCS8vIFVubGVzcyBlcnJvcnMgYXJlIGFsbG93ZWQg
dG8gYnViYmxlLCBjYXRjaCBhbmQgcmV0dXJuIHRoZW0KCQkJCQlpZiAoIGNvbnYgJiYgc1sgInRo
cm93cyIgXSApIHsKCQkJCQkJcmVzcG9uc2UgPSBjb252KCByZXNwb25zZSApOwoJCQkJCX0gZWxz
ZSB7CgkJCQkJCXRyeSB7CgkJCQkJCQlyZXNwb25zZSA9IGNvbnYoIHJlc3BvbnNlICk7CgkJCQkJ
CX0gY2F0Y2ggKCBlICkgewoJCQkJCQkJcmV0dXJuIHsgc3RhdGU6ICJwYXJzZXJlcnJvciIsIGVy
cm9yOiBjb252ID8gZSA6ICJObyBjb252ZXJzaW9uIGZyb20gIiArIHByZXYgKyAiIHRvICIgKyBj
dXJyZW50IH07CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCX0KCQl9Cgl9CgoJcmV0dXJuIHsgc3Rh
dGU6ICJzdWNjZXNzIiwgZGF0YTogcmVzcG9uc2UgfTsKfQoKalF1ZXJ5LmV4dGVuZCh7CgoJLy8g
Q291bnRlciBmb3IgaG9sZGluZyB0aGUgbnVtYmVyIG9mIGFjdGl2ZSBxdWVyaWVzCglhY3RpdmU6
IDAsCgoJLy8gTGFzdC1Nb2RpZmllZCBoZWFkZXIgY2FjaGUgZm9yIG5leHQgcmVxdWVzdAoJbGFz
dE1vZGlmaWVkOiB7fSwKCWV0YWc6IHt9LAoKCWFqYXhTZXR0aW5nczogewoJCXVybDogYWpheExv
Y2F0aW9uLAoJCXR5cGU6ICJHRVQiLAoJCWlzTG9jYWw6IHJsb2NhbFByb3RvY29sLnRlc3QoIGFq
YXhMb2NQYXJ0c1sgMSBdICksCgkJZ2xvYmFsOiB0cnVlLAoJCXByb2Nlc3NEYXRhOiB0cnVlLAoJ
CWFzeW5jOiB0cnVlLAoJCWNvbnRlbnRUeXBlOiAiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxl
bmNvZGVkOyBjaGFyc2V0PVVURi04IiwKCQkvKgoJCXRpbWVvdXQ6IDAsCgkJZGF0YTogbnVsbCwK
CQlkYXRhVHlwZTogbnVsbCwKCQl1c2VybmFtZTogbnVsbCwKCQlwYXNzd29yZDogbnVsbCwKCQlj
YWNoZTogbnVsbCwKCQl0aHJvd3M6IGZhbHNlLAoJCXRyYWRpdGlvbmFsOiBmYWxzZSwKCQloZWFk
ZXJzOiB7fSwKCQkqLwoKCQlhY2NlcHRzOiB7CgkJCSIqIjogYWxsVHlwZXMsCgkJCXRleHQ6ICJ0
ZXh0L3BsYWluIiwKCQkJaHRtbDogInRleHQvaHRtbCIsCgkJCXhtbDogImFwcGxpY2F0aW9uL3ht
bCwgdGV4dC94bWwiLAoJCQlqc29uOiAiYXBwbGljYXRpb24vanNvbiwgdGV4dC9qYXZhc2NyaXB0
IgoJCX0sCgoJCWNvbnRlbnRzOiB7CgkJCXhtbDogL3htbC8sCgkJCWh0bWw6IC9odG1sLywKCQkJ
anNvbjogL2pzb24vCgkJfSwKCgkJcmVzcG9uc2VGaWVsZHM6IHsKCQkJeG1sOiAicmVzcG9uc2VY
TUwiLAoJCQl0ZXh0OiAicmVzcG9uc2VUZXh0IiwKCQkJanNvbjogInJlc3BvbnNlSlNPTiIKCQl9
LAoKCQkvLyBEYXRhIGNvbnZlcnRlcnMKCQkvLyBLZXlzIHNlcGFyYXRlIHNvdXJjZSAob3IgY2F0
Y2hhbGwgIioiKSBhbmQgZGVzdGluYXRpb24gdHlwZXMgd2l0aCBhIHNpbmdsZSBzcGFjZQoJCWNv
bnZlcnRlcnM6IHsKCgkJCS8vIENvbnZlcnQgYW55dGhpbmcgdG8gdGV4dAoJCQkiKiB0ZXh0Ijog
U3RyaW5nLAoKCQkJLy8gVGV4dCB0byBodG1sICh0cnVlID0gbm8gdHJhbnNmb3JtYXRpb24pCgkJ
CSJ0ZXh0IGh0bWwiOiB0cnVlLAoKCQkJLy8gRXZhbHVhdGUgdGV4dCBhcyBhIGpzb24gZXhwcmVz
c2lvbgoJCQkidGV4dCBqc29uIjogalF1ZXJ5LnBhcnNlSlNPTiwKCgkJCS8vIFBhcnNlIHRleHQg
YXMgeG1sCgkJCSJ0ZXh0IHhtbCI6IGpRdWVyeS5wYXJzZVhNTAoJCX0sCgoJCS8vIEZvciBvcHRp
b25zIHRoYXQgc2hvdWxkbid0IGJlIGRlZXAgZXh0ZW5kZWQ6CgkJLy8geW91IGNhbiBhZGQgeW91
ciBvd24gY3VzdG9tIG9wdGlvbnMgaGVyZSBpZgoJCS8vIGFuZCB3aGVuIHlvdSBjcmVhdGUgb25l
IHRoYXQgc2hvdWxkbid0IGJlCgkJLy8gZGVlcCBleHRlbmRlZCAoc2VlIGFqYXhFeHRlbmQpCgkJ
ZmxhdE9wdGlvbnM6IHsKCQkJdXJsOiB0cnVlLAoJCQljb250ZXh0OiB0cnVlCgkJfQoJfSwKCgkv
LyBDcmVhdGVzIGEgZnVsbCBmbGVkZ2VkIHNldHRpbmdzIG9iamVjdCBpbnRvIHRhcmdldAoJLy8g
d2l0aCBib3RoIGFqYXhTZXR0aW5ncyBhbmQgc2V0dGluZ3MgZmllbGRzLgoJLy8gSWYgdGFyZ2V0
IGlzIG9taXR0ZWQsIHdyaXRlcyBpbnRvIGFqYXhTZXR0aW5ncy4KCWFqYXhTZXR1cDogZnVuY3Rp
b24oIHRhcmdldCwgc2V0dGluZ3MgKSB7CgkJcmV0dXJuIHNldHRpbmdzID8KCgkJCS8vIEJ1aWxk
aW5nIGEgc2V0dGluZ3Mgb2JqZWN0CgkJCWFqYXhFeHRlbmQoIGFqYXhFeHRlbmQoIHRhcmdldCwg
alF1ZXJ5LmFqYXhTZXR0aW5ncyApLCBzZXR0aW5ncyApIDoKCgkJCS8vIEV4dGVuZGluZyBhamF4
U2V0dGluZ3MKCQkJYWpheEV4dGVuZCggalF1ZXJ5LmFqYXhTZXR0aW5ncywgdGFyZ2V0ICk7Cgl9
LAoKCWFqYXhQcmVmaWx0ZXI6IGFkZFRvUHJlZmlsdGVyc09yVHJhbnNwb3J0cyggcHJlZmlsdGVy
cyApLAoJYWpheFRyYW5zcG9ydDogYWRkVG9QcmVmaWx0ZXJzT3JUcmFuc3BvcnRzKCB0cmFuc3Bv
cnRzICksCgoJLy8gTWFpbiBtZXRob2QKCWFqYXg6IGZ1bmN0aW9uKCB1cmwsIG9wdGlvbnMgKSB7
CgoJCS8vIElmIHVybCBpcyBhbiBvYmplY3QsIHNpbXVsYXRlIHByZS0xLjUgc2lnbmF0dXJlCgkJ
aWYgKCB0eXBlb2YgdXJsID09PSAib2JqZWN0IiApIHsKCQkJb3B0aW9ucyA9IHVybDsKCQkJdXJs
ID0gdW5kZWZpbmVkOwoJCX0KCgkJLy8gRm9yY2Ugb3B0aW9ucyB0byBiZSBhbiBvYmplY3QKCQlv
cHRpb25zID0gb3B0aW9ucyB8fCB7fTsKCgkJdmFyIC8vIENyb3NzLWRvbWFpbiBkZXRlY3Rpb24g
dmFycwoJCQlwYXJ0cywKCQkJLy8gTG9vcCB2YXJpYWJsZQoJCQlpLAoJCQkvLyBVUkwgd2l0aG91
dCBhbnRpLWNhY2hlIHBhcmFtCgkJCWNhY2hlVVJMLAoJCQkvLyBSZXNwb25zZSBoZWFkZXJzIGFz
IHN0cmluZwoJCQlyZXNwb25zZUhlYWRlcnNTdHJpbmcsCgkJCS8vIHRpbWVvdXQgaGFuZGxlCgkJ
CXRpbWVvdXRUaW1lciwKCgkJCS8vIFRvIGtub3cgaWYgZ2xvYmFsIGV2ZW50cyBhcmUgdG8gYmUg
ZGlzcGF0Y2hlZAoJCQlmaXJlR2xvYmFscywKCgkJCXRyYW5zcG9ydCwKCQkJLy8gUmVzcG9uc2Ug
aGVhZGVycwoJCQlyZXNwb25zZUhlYWRlcnMsCgkJCS8vIENyZWF0ZSB0aGUgZmluYWwgb3B0aW9u
cyBvYmplY3QKCQkJcyA9IGpRdWVyeS5hamF4U2V0dXAoIHt9LCBvcHRpb25zICksCgkJCS8vIENh
bGxiYWNrcyBjb250ZXh0CgkJCWNhbGxiYWNrQ29udGV4dCA9IHMuY29udGV4dCB8fCBzLAoJCQkv
LyBDb250ZXh0IGZvciBnbG9iYWwgZXZlbnRzIGlzIGNhbGxiYWNrQ29udGV4dCBpZiBpdCBpcyBh
IERPTSBub2RlIG9yIGpRdWVyeSBjb2xsZWN0aW9uCgkJCWdsb2JhbEV2ZW50Q29udGV4dCA9IHMu
Y29udGV4dCAmJiAoIGNhbGxiYWNrQ29udGV4dC5ub2RlVHlwZSB8fCBjYWxsYmFja0NvbnRleHQu
anF1ZXJ5ICkgPwoJCQkJalF1ZXJ5KCBjYWxsYmFja0NvbnRleHQgKSA6CgkJCQlqUXVlcnkuZXZl
bnQsCgkJCS8vIERlZmVycmVkcwoJCQlkZWZlcnJlZCA9IGpRdWVyeS5EZWZlcnJlZCgpLAoJCQlj
b21wbGV0ZURlZmVycmVkID0galF1ZXJ5LkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSwKCQkJLy8g
U3RhdHVzLWRlcGVuZGVudCBjYWxsYmFja3MKCQkJc3RhdHVzQ29kZSA9IHMuc3RhdHVzQ29kZSB8
fCB7fSwKCQkJLy8gSGVhZGVycyAodGhleSBhcmUgc2VudCBhbGwgYXQgb25jZSkKCQkJcmVxdWVz
dEhlYWRlcnMgPSB7fSwKCQkJcmVxdWVzdEhlYWRlcnNOYW1lcyA9IHt9LAoJCQkvLyBUaGUganFY
SFIgc3RhdGUKCQkJc3RhdGUgPSAwLAoJCQkvLyBEZWZhdWx0IGFib3J0IG1lc3NhZ2UKCQkJc3Ry
QWJvcnQgPSAiY2FuY2VsZWQiLAoJCQkvLyBGYWtlIHhocgoJCQlqcVhIUiA9IHsKCQkJCXJlYWR5
U3RhdGU6IDAsCgoJCQkJLy8gQnVpbGRzIGhlYWRlcnMgaGFzaHRhYmxlIGlmIG5lZWRlZAoJCQkJ
Z2V0UmVzcG9uc2VIZWFkZXI6IGZ1bmN0aW9uKCBrZXkgKSB7CgkJCQkJdmFyIG1hdGNoOwoJCQkJ
CWlmICggc3RhdGUgPT09IDIgKSB7CgkJCQkJCWlmICggIXJlc3BvbnNlSGVhZGVycyApIHsKCQkJ
CQkJCXJlc3BvbnNlSGVhZGVycyA9IHt9OwoJCQkJCQkJd2hpbGUgKCAobWF0Y2ggPSByaGVhZGVy
cy5leGVjKCByZXNwb25zZUhlYWRlcnNTdHJpbmcgKSkgKSB7CgkJCQkJCQkJcmVzcG9uc2VIZWFk
ZXJzWyBtYXRjaFsxXS50b0xvd2VyQ2FzZSgpIF0gPSBtYXRjaFsgMiBdOwoJCQkJCQkJfQoJCQkJ
CQl9CgkJCQkJCW1hdGNoID0gcmVzcG9uc2VIZWFkZXJzWyBrZXkudG9Mb3dlckNhc2UoKSBdOwoJ
CQkJCX0KCQkJCQlyZXR1cm4gbWF0Y2ggPT0gbnVsbCA/IG51bGwgOiBtYXRjaDsKCQkJCX0sCgoJ
CQkJLy8gUmF3IHN0cmluZwoJCQkJZ2V0QWxsUmVzcG9uc2VIZWFkZXJzOiBmdW5jdGlvbigpIHsK
CQkJCQlyZXR1cm4gc3RhdGUgPT09IDIgPyByZXNwb25zZUhlYWRlcnNTdHJpbmcgOiBudWxsOwoJ
CQkJfSwKCgkJCQkvLyBDYWNoZXMgdGhlIGhlYWRlcgoJCQkJc2V0UmVxdWVzdEhlYWRlcjogZnVu
Y3Rpb24oIG5hbWUsIHZhbHVlICkgewoJCQkJCXZhciBsbmFtZSA9IG5hbWUudG9Mb3dlckNhc2Uo
KTsKCQkJCQlpZiAoICFzdGF0ZSApIHsKCQkJCQkJbmFtZSA9IHJlcXVlc3RIZWFkZXJzTmFtZXNb
IGxuYW1lIF0gPSByZXF1ZXN0SGVhZGVyc05hbWVzWyBsbmFtZSBdIHx8IG5hbWU7CgkJCQkJCXJl
cXVlc3RIZWFkZXJzWyBuYW1lIF0gPSB2YWx1ZTsKCQkJCQl9CgkJCQkJcmV0dXJuIHRoaXM7CgkJ
CQl9LAoKCQkJCS8vIE92ZXJyaWRlcyByZXNwb25zZSBjb250ZW50LXR5cGUgaGVhZGVyCgkJCQlv
dmVycmlkZU1pbWVUeXBlOiBmdW5jdGlvbiggdHlwZSApIHsKCQkJCQlpZiAoICFzdGF0ZSApIHsK
CQkJCQkJcy5taW1lVHlwZSA9IHR5cGU7CgkJCQkJfQoJCQkJCXJldHVybiB0aGlzOwoJCQkJfSwK
CgkJCQkvLyBTdGF0dXMtZGVwZW5kZW50IGNhbGxiYWNrcwoJCQkJc3RhdHVzQ29kZTogZnVuY3Rp
b24oIG1hcCApIHsKCQkJCQl2YXIgY29kZTsKCQkJCQlpZiAoIG1hcCApIHsKCQkJCQkJaWYgKCBz
dGF0ZSA8IDIgKSB7CgkJCQkJCQlmb3IgKCBjb2RlIGluIG1hcCApIHsKCQkJCQkJCQkvLyBMYXp5
LWFkZCB0aGUgbmV3IGNhbGxiYWNrIGluIGEgd2F5IHRoYXQgcHJlc2VydmVzIG9sZCBvbmVzCgkJ
CQkJCQkJc3RhdHVzQ29kZVsgY29kZSBdID0gWyBzdGF0dXNDb2RlWyBjb2RlIF0sIG1hcFsgY29k
ZSBdIF07CgkJCQkJCQl9CgkJCQkJCX0gZWxzZSB7CgkJCQkJCQkvLyBFeGVjdXRlIHRoZSBhcHBy
b3ByaWF0ZSBjYWxsYmFja3MKCQkJCQkJCWpxWEhSLmFsd2F5cyggbWFwWyBqcVhIUi5zdGF0dXMg
XSApOwoJCQkJCQl9CgkJCQkJfQoJCQkJCXJldHVybiB0aGlzOwoJCQkJfSwKCgkJCQkvLyBDYW5j
ZWwgdGhlIHJlcXVlc3QKCQkJCWFib3J0OiBmdW5jdGlvbiggc3RhdHVzVGV4dCApIHsKCQkJCQl2
YXIgZmluYWxUZXh0ID0gc3RhdHVzVGV4dCB8fCBzdHJBYm9ydDsKCQkJCQlpZiAoIHRyYW5zcG9y
dCApIHsKCQkJCQkJdHJhbnNwb3J0LmFib3J0KCBmaW5hbFRleHQgKTsKCQkJCQl9CgkJCQkJZG9u
ZSggMCwgZmluYWxUZXh0ICk7CgkJCQkJcmV0dXJuIHRoaXM7CgkJCQl9CgkJCX07CgoJCS8vIEF0
dGFjaCBkZWZlcnJlZHMKCQlkZWZlcnJlZC5wcm9taXNlKCBqcVhIUiApLmNvbXBsZXRlID0gY29t
cGxldGVEZWZlcnJlZC5hZGQ7CgkJanFYSFIuc3VjY2VzcyA9IGpxWEhSLmRvbmU7CgkJanFYSFIu
ZXJyb3IgPSBqcVhIUi5mYWlsOwoKCQkvLyBSZW1vdmUgaGFzaCBjaGFyYWN0ZXIgKCM3NTMxOiBh
bmQgc3RyaW5nIHByb21vdGlvbikKCQkvLyBBZGQgcHJvdG9jb2wgaWYgbm90IHByb3ZpZGVkICgj
NTg2NjogSUU3IGlzc3VlIHdpdGggcHJvdG9jb2wtbGVzcyB1cmxzKQoJCS8vIEhhbmRsZSBmYWxz
eSB1cmwgaW4gdGhlIHNldHRpbmdzIG9iamVjdCAoIzEwMDkzOiBjb25zaXN0ZW5jeSB3aXRoIG9s
ZCBzaWduYXR1cmUpCgkJLy8gV2UgYWxzbyB1c2UgdGhlIHVybCBwYXJhbWV0ZXIgaWYgYXZhaWxh
YmxlCgkJcy51cmwgPSAoICggdXJsIHx8IHMudXJsIHx8IGFqYXhMb2NhdGlvbiApICsgIiIgKS5y
ZXBsYWNlKCByaGFzaCwgIiIgKS5yZXBsYWNlKCBycHJvdG9jb2wsIGFqYXhMb2NQYXJ0c1sgMSBd
ICsgIi8vIiApOwoKCQkvLyBBbGlhcyBtZXRob2Qgb3B0aW9uIHRvIHR5cGUgYXMgcGVyIHRpY2tl
dCAjMTIwMDQKCQlzLnR5cGUgPSBvcHRpb25zLm1ldGhvZCB8fCBvcHRpb25zLnR5cGUgfHwgcy5t
ZXRob2QgfHwgcy50eXBlOwoKCQkvLyBFeHRyYWN0IGRhdGFUeXBlcyBsaXN0CgkJcy5kYXRhVHlw
ZXMgPSBqUXVlcnkudHJpbSggcy5kYXRhVHlwZSB8fCAiKiIgKS50b0xvd2VyQ2FzZSgpLm1hdGNo
KCBybm90d2hpdGUgKSB8fCBbICIiIF07CgoJCS8vIEEgY3Jvc3MtZG9tYWluIHJlcXVlc3QgaXMg
aW4gb3JkZXIgd2hlbiB3ZSBoYXZlIGEgcHJvdG9jb2w6aG9zdDpwb3J0IG1pc21hdGNoCgkJaWYg
KCBzLmNyb3NzRG9tYWluID09IG51bGwgKSB7CgkJCXBhcnRzID0gcnVybC5leGVjKCBzLnVybC50
b0xvd2VyQ2FzZSgpICk7CgkJCXMuY3Jvc3NEb21haW4gPSAhISggcGFydHMgJiYKCQkJCSggcGFy
dHNbIDEgXSAhPT0gYWpheExvY1BhcnRzWyAxIF0gfHwgcGFydHNbIDIgXSAhPT0gYWpheExvY1Bh
cnRzWyAyIF0gfHwKCQkJCQkoIHBhcnRzWyAzIF0gfHwgKCBwYXJ0c1sgMSBdID09PSAiaHR0cDoi
ID8gIjgwIiA6ICI0NDMiICkgKSAhPT0KCQkJCQkJKCBhamF4TG9jUGFydHNbIDMgXSB8fCAoIGFq
YXhMb2NQYXJ0c1sgMSBdID09PSAiaHR0cDoiID8gIjgwIiA6ICI0NDMiICkgKSApCgkJCSk7CgkJ
fQoKCQkvLyBDb252ZXJ0IGRhdGEgaWYgbm90IGFscmVhZHkgYSBzdHJpbmcKCQlpZiAoIHMuZGF0
YSAmJiBzLnByb2Nlc3NEYXRhICYmIHR5cGVvZiBzLmRhdGEgIT09ICJzdHJpbmciICkgewoJCQlz
LmRhdGEgPSBqUXVlcnkucGFyYW0oIHMuZGF0YSwgcy50cmFkaXRpb25hbCApOwoJCX0KCgkJLy8g
QXBwbHkgcHJlZmlsdGVycwoJCWluc3BlY3RQcmVmaWx0ZXJzT3JUcmFuc3BvcnRzKCBwcmVmaWx0
ZXJzLCBzLCBvcHRpb25zLCBqcVhIUiApOwoKCQkvLyBJZiByZXF1ZXN0IHdhcyBhYm9ydGVkIGlu
c2lkZSBhIHByZWZpbHRlciwgc3RvcCB0aGVyZQoJCWlmICggc3RhdGUgPT09IDIgKSB7CgkJCXJl
dHVybiBqcVhIUjsKCQl9CgoJCS8vIFdlIGNhbiBmaXJlIGdsb2JhbCBldmVudHMgYXMgb2Ygbm93
IGlmIGFza2VkIHRvCgkJLy8gRG9uJ3QgZmlyZSBldmVudHMgaWYgalF1ZXJ5LmV2ZW50IGlzIHVu
ZGVmaW5lZCBpbiBhbiBBTUQtdXNhZ2Ugc2NlbmFyaW8gKCMxNTExOCkKCQlmaXJlR2xvYmFscyA9
IGpRdWVyeS5ldmVudCAmJiBzLmdsb2JhbDsKCgkJLy8gV2F0Y2ggZm9yIGEgbmV3IHNldCBvZiBy
ZXF1ZXN0cwoJCWlmICggZmlyZUdsb2JhbHMgJiYgalF1ZXJ5LmFjdGl2ZSsrID09PSAwICkgewoJ
CQlqUXVlcnkuZXZlbnQudHJpZ2dlcigiYWpheFN0YXJ0Iik7CgkJfQoKCQkvLyBVcHBlcmNhc2Ug
dGhlIHR5cGUKCQlzLnR5cGUgPSBzLnR5cGUudG9VcHBlckNhc2UoKTsKCgkJLy8gRGV0ZXJtaW5l
IGlmIHJlcXVlc3QgaGFzIGNvbnRlbnQKCQlzLmhhc0NvbnRlbnQgPSAhcm5vQ29udGVudC50ZXN0
KCBzLnR5cGUgKTsKCgkJLy8gU2F2ZSB0aGUgVVJMIGluIGNhc2Ugd2UncmUgdG95aW5nIHdpdGgg
dGhlIElmLU1vZGlmaWVkLVNpbmNlCgkJLy8gYW5kL29yIElmLU5vbmUtTWF0Y2ggaGVhZGVyIGxh
dGVyIG9uCgkJY2FjaGVVUkwgPSBzLnVybDsKCgkJLy8gTW9yZSBvcHRpb25zIGhhbmRsaW5nIGZv
ciByZXF1ZXN0cyB3aXRoIG5vIGNvbnRlbnQKCQlpZiAoICFzLmhhc0NvbnRlbnQgKSB7CgoJCQkv
LyBJZiBkYXRhIGlzIGF2YWlsYWJsZSwgYXBwZW5kIGRhdGEgdG8gdXJsCgkJCWlmICggcy5kYXRh
ICkgewoJCQkJY2FjaGVVUkwgPSAoIHMudXJsICs9ICggcnF1ZXJ5LnRlc3QoIGNhY2hlVVJMICkg
PyAiJiIgOiAiPyIgKSArIHMuZGF0YSApOwoJCQkJLy8gIzk2ODI6IHJlbW92ZSBkYXRhIHNvIHRo
YXQgaXQncyBub3QgdXNlZCBpbiBhbiBldmVudHVhbCByZXRyeQoJCQkJZGVsZXRlIHMuZGF0YTsK
CQkJfQoKCQkJLy8gQWRkIGFudGktY2FjaGUgaW4gdXJsIGlmIG5lZWRlZAoJCQlpZiAoIHMuY2Fj
aGUgPT09IGZhbHNlICkgewoJCQkJcy51cmwgPSBydHMudGVzdCggY2FjaGVVUkwgKSA/CgoJCQkJ
CS8vIElmIHRoZXJlIGlzIGFscmVhZHkgYSAnXycgcGFyYW1ldGVyLCBzZXQgaXRzIHZhbHVlCgkJ
CQkJY2FjaGVVUkwucmVwbGFjZSggcnRzLCAiJDFfPSIgKyBub25jZSsrICkgOgoKCQkJCQkvLyBP
dGhlcndpc2UgYWRkIG9uZSB0byB0aGUgZW5kCgkJCQkJY2FjaGVVUkwgKyAoIHJxdWVyeS50ZXN0
KCBjYWNoZVVSTCApID8gIiYiIDogIj8iICkgKyAiXz0iICsgbm9uY2UrKzsKCQkJfQoJCX0KCgkJ
Ly8gU2V0IHRoZSBJZi1Nb2RpZmllZC1TaW5jZSBhbmQvb3IgSWYtTm9uZS1NYXRjaCBoZWFkZXIs
IGlmIGluIGlmTW9kaWZpZWQgbW9kZS4KCQlpZiAoIHMuaWZNb2RpZmllZCApIHsKCQkJaWYgKCBq
UXVlcnkubGFzdE1vZGlmaWVkWyBjYWNoZVVSTCBdICkgewoJCQkJanFYSFIuc2V0UmVxdWVzdEhl
YWRlciggIklmLU1vZGlmaWVkLVNpbmNlIiwgalF1ZXJ5Lmxhc3RNb2RpZmllZFsgY2FjaGVVUkwg
XSApOwoJCQl9CgkJCWlmICggalF1ZXJ5LmV0YWdbIGNhY2hlVVJMIF0gKSB7CgkJCQlqcVhIUi5z
ZXRSZXF1ZXN0SGVhZGVyKCAiSWYtTm9uZS1NYXRjaCIsIGpRdWVyeS5ldGFnWyBjYWNoZVVSTCBd
ICk7CgkJCX0KCQl9CgoJCS8vIFNldCB0aGUgY29ycmVjdCBoZWFkZXIsIGlmIGRhdGEgaXMgYmVp
bmcgc2VudAoJCWlmICggcy5kYXRhICYmIHMuaGFzQ29udGVudCAmJiBzLmNvbnRlbnRUeXBlICE9
PSBmYWxzZSB8fCBvcHRpb25zLmNvbnRlbnRUeXBlICkgewoJCQlqcVhIUi5zZXRSZXF1ZXN0SGVh
ZGVyKCAiQ29udGVudC1UeXBlIiwgcy5jb250ZW50VHlwZSApOwoJCX0KCgkJLy8gU2V0IHRoZSBB
Y2NlcHRzIGhlYWRlciBmb3IgdGhlIHNlcnZlciwgZGVwZW5kaW5nIG9uIHRoZSBkYXRhVHlwZQoJ
CWpxWEhSLnNldFJlcXVlc3RIZWFkZXIoCgkJCSJBY2NlcHQiLAoJCQlzLmRhdGFUeXBlc1sgMCBd
ICYmIHMuYWNjZXB0c1sgcy5kYXRhVHlwZXNbMF0gXSA/CgkJCQlzLmFjY2VwdHNbIHMuZGF0YVR5
cGVzWzBdIF0gKyAoIHMuZGF0YVR5cGVzWyAwIF0gIT09ICIqIiA/ICIsICIgKyBhbGxUeXBlcyAr
ICI7IHE9MC4wMSIgOiAiIiApIDoKCQkJCXMuYWNjZXB0c1sgIioiIF0KCQkpOwoKCQkvLyBDaGVj
ayBmb3IgaGVhZGVycyBvcHRpb24KCQlmb3IgKCBpIGluIHMuaGVhZGVycyApIHsKCQkJanFYSFIu
c2V0UmVxdWVzdEhlYWRlciggaSwgcy5oZWFkZXJzWyBpIF0gKTsKCQl9CgoJCS8vIEFsbG93IGN1
c3RvbSBoZWFkZXJzL21pbWV0eXBlcyBhbmQgZWFybHkgYWJvcnQKCQlpZiAoIHMuYmVmb3JlU2Vu
ZCAmJiAoIHMuYmVmb3JlU2VuZC5jYWxsKCBjYWxsYmFja0NvbnRleHQsIGpxWEhSLCBzICkgPT09
IGZhbHNlIHx8IHN0YXRlID09PSAyICkgKSB7CgkJCS8vIEFib3J0IGlmIG5vdCBkb25lIGFscmVh
ZHkgYW5kIHJldHVybgoJCQlyZXR1cm4ganFYSFIuYWJvcnQoKTsKCQl9CgoJCS8vIGFib3J0aW5n
IGlzIG5vIGxvbmdlciBhIGNhbmNlbGxhdGlvbgoJCXN0ckFib3J0ID0gImFib3J0IjsKCgkJLy8g
SW5zdGFsbCBjYWxsYmFja3Mgb24gZGVmZXJyZWRzCgkJZm9yICggaSBpbiB7IHN1Y2Nlc3M6IDEs
IGVycm9yOiAxLCBjb21wbGV0ZTogMSB9ICkgewoJCQlqcVhIUlsgaSBdKCBzWyBpIF0gKTsKCQl9
CgoJCS8vIEdldCB0cmFuc3BvcnQKCQl0cmFuc3BvcnQgPSBpbnNwZWN0UHJlZmlsdGVyc09yVHJh
bnNwb3J0cyggdHJhbnNwb3J0cywgcywgb3B0aW9ucywganFYSFIgKTsKCgkJLy8gSWYgbm8gdHJh
bnNwb3J0LCB3ZSBhdXRvLWFib3J0CgkJaWYgKCAhdHJhbnNwb3J0ICkgewoJCQlkb25lKCAtMSwg
Ik5vIFRyYW5zcG9ydCIgKTsKCQl9IGVsc2UgewoJCQlqcVhIUi5yZWFkeVN0YXRlID0gMTsKCgkJ
CS8vIFNlbmQgZ2xvYmFsIGV2ZW50CgkJCWlmICggZmlyZUdsb2JhbHMgKSB7CgkJCQlnbG9iYWxF
dmVudENvbnRleHQudHJpZ2dlciggImFqYXhTZW5kIiwgWyBqcVhIUiwgcyBdICk7CgkJCX0KCQkJ
Ly8gVGltZW91dAoJCQlpZiAoIHMuYXN5bmMgJiYgcy50aW1lb3V0ID4gMCApIHsKCQkJCXRpbWVv
dXRUaW1lciA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CgkJCQkJanFYSFIuYWJvcnQoInRpbWVv
dXQiKTsKCQkJCX0sIHMudGltZW91dCApOwoJCQl9CgoJCQl0cnkgewoJCQkJc3RhdGUgPSAxOwoJ
CQkJdHJhbnNwb3J0LnNlbmQoIHJlcXVlc3RIZWFkZXJzLCBkb25lICk7CgkJCX0gY2F0Y2ggKCBl
ICkgewoJCQkJLy8gUHJvcGFnYXRlIGV4Y2VwdGlvbiBhcyBlcnJvciBpZiBub3QgZG9uZQoJCQkJ
aWYgKCBzdGF0ZSA8IDIgKSB7CgkJCQkJZG9uZSggLTEsIGUgKTsKCQkJCS8vIFNpbXBseSByZXRo
cm93IG90aGVyd2lzZQoJCQkJfSBlbHNlIHsKCQkJCQl0aHJvdyBlOwoJCQkJfQoJCQl9CgkJfQoK
CQkvLyBDYWxsYmFjayBmb3Igd2hlbiBldmVyeXRoaW5nIGlzIGRvbmUKCQlmdW5jdGlvbiBkb25l
KCBzdGF0dXMsIG5hdGl2ZVN0YXR1c1RleHQsIHJlc3BvbnNlcywgaGVhZGVycyApIHsKCQkJdmFy
IGlzU3VjY2Vzcywgc3VjY2VzcywgZXJyb3IsIHJlc3BvbnNlLCBtb2RpZmllZCwKCQkJCXN0YXR1
c1RleHQgPSBuYXRpdmVTdGF0dXNUZXh0OwoKCQkJLy8gQ2FsbGVkIG9uY2UKCQkJaWYgKCBzdGF0
ZSA9PT0gMiApIHsKCQkJCXJldHVybjsKCQkJfQoKCQkJLy8gU3RhdGUgaXMgImRvbmUiIG5vdwoJ
CQlzdGF0ZSA9IDI7CgoJCQkvLyBDbGVhciB0aW1lb3V0IGlmIGl0IGV4aXN0cwoJCQlpZiAoIHRp
bWVvdXRUaW1lciApIHsKCQkJCWNsZWFyVGltZW91dCggdGltZW91dFRpbWVyICk7CgkJCX0KCgkJ
CS8vIERlcmVmZXJlbmNlIHRyYW5zcG9ydCBmb3IgZWFybHkgZ2FyYmFnZSBjb2xsZWN0aW9uCgkJ
CS8vIChubyBtYXR0ZXIgaG93IGxvbmcgdGhlIGpxWEhSIG9iamVjdCB3aWxsIGJlIHVzZWQpCgkJ
CXRyYW5zcG9ydCA9IHVuZGVmaW5lZDsKCgkJCS8vIENhY2hlIHJlc3BvbnNlIGhlYWRlcnMKCQkJ
cmVzcG9uc2VIZWFkZXJzU3RyaW5nID0gaGVhZGVycyB8fCAiIjsKCgkJCS8vIFNldCByZWFkeVN0
YXRlCgkJCWpxWEhSLnJlYWR5U3RhdGUgPSBzdGF0dXMgPiAwID8gNCA6IDA7CgoJCQkvLyBEZXRl
cm1pbmUgaWYgc3VjY2Vzc2Z1bAoJCQlpc1N1Y2Nlc3MgPSBzdGF0dXMgPj0gMjAwICYmIHN0YXR1
cyA8IDMwMCB8fCBzdGF0dXMgPT09IDMwNDsKCgkJCS8vIEdldCByZXNwb25zZSBkYXRhCgkJCWlm
ICggcmVzcG9uc2VzICkgewoJCQkJcmVzcG9uc2UgPSBhamF4SGFuZGxlUmVzcG9uc2VzKCBzLCBq
cVhIUiwgcmVzcG9uc2VzICk7CgkJCX0KCgkJCS8vIENvbnZlcnQgbm8gbWF0dGVyIHdoYXQgKHRo
YXQgd2F5IHJlc3BvbnNlWFhYIGZpZWxkcyBhcmUgYWx3YXlzIHNldCkKCQkJcmVzcG9uc2UgPSBh
amF4Q29udmVydCggcywgcmVzcG9uc2UsIGpxWEhSLCBpc1N1Y2Nlc3MgKTsKCgkJCS8vIElmIHN1
Y2Nlc3NmdWwsIGhhbmRsZSB0eXBlIGNoYWluaW5nCgkJCWlmICggaXNTdWNjZXNzICkgewoKCQkJ
CS8vIFNldCB0aGUgSWYtTW9kaWZpZWQtU2luY2UgYW5kL29yIElmLU5vbmUtTWF0Y2ggaGVhZGVy
LCBpZiBpbiBpZk1vZGlmaWVkIG1vZGUuCgkJCQlpZiAoIHMuaWZNb2RpZmllZCApIHsKCQkJCQlt
b2RpZmllZCA9IGpxWEhSLmdldFJlc3BvbnNlSGVhZGVyKCJMYXN0LU1vZGlmaWVkIik7CgkJCQkJ
aWYgKCBtb2RpZmllZCApIHsKCQkJCQkJalF1ZXJ5Lmxhc3RNb2RpZmllZFsgY2FjaGVVUkwgXSA9
IG1vZGlmaWVkOwoJCQkJCX0KCQkJCQltb2RpZmllZCA9IGpxWEhSLmdldFJlc3BvbnNlSGVhZGVy
KCJldGFnIik7CgkJCQkJaWYgKCBtb2RpZmllZCApIHsKCQkJCQkJalF1ZXJ5LmV0YWdbIGNhY2hl
VVJMIF0gPSBtb2RpZmllZDsKCQkJCQl9CgkJCQl9CgoJCQkJLy8gaWYgbm8gY29udGVudAoJCQkJ
aWYgKCBzdGF0dXMgPT09IDIwNCB8fCBzLnR5cGUgPT09ICJIRUFEIiApIHsKCQkJCQlzdGF0dXNU
ZXh0ID0gIm5vY29udGVudCI7CgoJCQkJLy8gaWYgbm90IG1vZGlmaWVkCgkJCQl9IGVsc2UgaWYg
KCBzdGF0dXMgPT09IDMwNCApIHsKCQkJCQlzdGF0dXNUZXh0ID0gIm5vdG1vZGlmaWVkIjsKCgkJ
CQkvLyBJZiB3ZSBoYXZlIGRhdGEsIGxldCdzIGNvbnZlcnQgaXQKCQkJCX0gZWxzZSB7CgkJCQkJ
c3RhdHVzVGV4dCA9IHJlc3BvbnNlLnN0YXRlOwoJCQkJCXN1Y2Nlc3MgPSByZXNwb25zZS5kYXRh
OwoJCQkJCWVycm9yID0gcmVzcG9uc2UuZXJyb3I7CgkJCQkJaXNTdWNjZXNzID0gIWVycm9yOwoJ
CQkJfQoJCQl9IGVsc2UgewoJCQkJLy8gV2UgZXh0cmFjdCBlcnJvciBmcm9tIHN0YXR1c1RleHQK
CQkJCS8vIHRoZW4gbm9ybWFsaXplIHN0YXR1c1RleHQgYW5kIHN0YXR1cyBmb3Igbm9uLWFib3J0
cwoJCQkJZXJyb3IgPSBzdGF0dXNUZXh0OwoJCQkJaWYgKCBzdGF0dXMgfHwgIXN0YXR1c1RleHQg
KSB7CgkJCQkJc3RhdHVzVGV4dCA9ICJlcnJvciI7CgkJCQkJaWYgKCBzdGF0dXMgPCAwICkgewoJ
CQkJCQlzdGF0dXMgPSAwOwoJCQkJCX0KCQkJCX0KCQkJfQoKCQkJLy8gU2V0IGRhdGEgZm9yIHRo
ZSBmYWtlIHhociBvYmplY3QKCQkJanFYSFIuc3RhdHVzID0gc3RhdHVzOwoJCQlqcVhIUi5zdGF0
dXNUZXh0ID0gKCBuYXRpdmVTdGF0dXNUZXh0IHx8IHN0YXR1c1RleHQgKSArICIiOwoKCQkJLy8g
U3VjY2Vzcy9FcnJvcgoJCQlpZiAoIGlzU3VjY2VzcyApIHsKCQkJCWRlZmVycmVkLnJlc29sdmVX
aXRoKCBjYWxsYmFja0NvbnRleHQsIFsgc3VjY2Vzcywgc3RhdHVzVGV4dCwganFYSFIgXSApOwoJ
CQl9IGVsc2UgewoJCQkJZGVmZXJyZWQucmVqZWN0V2l0aCggY2FsbGJhY2tDb250ZXh0LCBbIGpx
WEhSLCBzdGF0dXNUZXh0LCBlcnJvciBdICk7CgkJCX0KCgkJCS8vIFN0YXR1cy1kZXBlbmRlbnQg
Y2FsbGJhY2tzCgkJCWpxWEhSLnN0YXR1c0NvZGUoIHN0YXR1c0NvZGUgKTsKCQkJc3RhdHVzQ29k
ZSA9IHVuZGVmaW5lZDsKCgkJCWlmICggZmlyZUdsb2JhbHMgKSB7CgkJCQlnbG9iYWxFdmVudENv
bnRleHQudHJpZ2dlciggaXNTdWNjZXNzID8gImFqYXhTdWNjZXNzIiA6ICJhamF4RXJyb3IiLAoJ
CQkJCVsganFYSFIsIHMsIGlzU3VjY2VzcyA/IHN1Y2Nlc3MgOiBlcnJvciBdICk7CgkJCX0KCgkJ
CS8vIENvbXBsZXRlCgkJCWNvbXBsZXRlRGVmZXJyZWQuZmlyZVdpdGgoIGNhbGxiYWNrQ29udGV4
dCwgWyBqcVhIUiwgc3RhdHVzVGV4dCBdICk7CgoJCQlpZiAoIGZpcmVHbG9iYWxzICkgewoJCQkJ
Z2xvYmFsRXZlbnRDb250ZXh0LnRyaWdnZXIoICJhamF4Q29tcGxldGUiLCBbIGpxWEhSLCBzIF0g
KTsKCQkJCS8vIEhhbmRsZSB0aGUgZ2xvYmFsIEFKQVggY291bnRlcgoJCQkJaWYgKCAhKCAtLWpR
dWVyeS5hY3RpdmUgKSApIHsKCQkJCQlqUXVlcnkuZXZlbnQudHJpZ2dlcigiYWpheFN0b3AiKTsK
CQkJCX0KCQkJfQoJCX0KCgkJcmV0dXJuIGpxWEhSOwoJfSwKCglnZXRKU09OOiBmdW5jdGlvbigg
dXJsLCBkYXRhLCBjYWxsYmFjayApIHsKCQlyZXR1cm4galF1ZXJ5LmdldCggdXJsLCBkYXRhLCBj
YWxsYmFjaywgImpzb24iICk7Cgl9LAoKCWdldFNjcmlwdDogZnVuY3Rpb24oIHVybCwgY2FsbGJh
Y2sgKSB7CgkJcmV0dXJuIGpRdWVyeS5nZXQoIHVybCwgdW5kZWZpbmVkLCBjYWxsYmFjaywgInNj
cmlwdCIgKTsKCX0KfSk7CgpqUXVlcnkuZWFjaCggWyAiZ2V0IiwgInBvc3QiIF0sIGZ1bmN0aW9u
KCBpLCBtZXRob2QgKSB7CglqUXVlcnlbIG1ldGhvZCBdID0gZnVuY3Rpb24oIHVybCwgZGF0YSwg
Y2FsbGJhY2ssIHR5cGUgKSB7CgkJLy8gc2hpZnQgYXJndW1lbnRzIGlmIGRhdGEgYXJndW1lbnQg
d2FzIG9taXR0ZWQKCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCBkYXRhICkgKSB7CgkJCXR5cGUg
PSB0eXBlIHx8IGNhbGxiYWNrOwoJCQljYWxsYmFjayA9IGRhdGE7CgkJCWRhdGEgPSB1bmRlZmlu
ZWQ7CgkJfQoKCQlyZXR1cm4galF1ZXJ5LmFqYXgoewoJCQl1cmw6IHVybCwKCQkJdHlwZTogbWV0
aG9kLAoJCQlkYXRhVHlwZTogdHlwZSwKCQkJZGF0YTogZGF0YSwKCQkJc3VjY2VzczogY2FsbGJh
Y2sKCQl9KTsKCX07Cn0pOwoKCmpRdWVyeS5fZXZhbFVybCA9IGZ1bmN0aW9uKCB1cmwgKSB7Cgly
ZXR1cm4galF1ZXJ5LmFqYXgoewoJCXVybDogdXJsLAoJCXR5cGU6ICJHRVQiLAoJCWRhdGFUeXBl
OiAic2NyaXB0IiwKCQlhc3luYzogZmFsc2UsCgkJZ2xvYmFsOiBmYWxzZSwKCQkidGhyb3dzIjog
dHJ1ZQoJfSk7Cn07CgoKalF1ZXJ5LmZuLmV4dGVuZCh7Cgl3cmFwQWxsOiBmdW5jdGlvbiggaHRt
bCApIHsKCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCBodG1sICkgKSB7CgkJCXJldHVybiB0aGlz
LmVhY2goZnVuY3Rpb24oaSkgewoJCQkJalF1ZXJ5KHRoaXMpLndyYXBBbGwoIGh0bWwuY2FsbCh0
aGlzLCBpKSApOwoJCQl9KTsKCQl9CgoJCWlmICggdGhpc1swXSApIHsKCQkJLy8gVGhlIGVsZW1l
bnRzIHRvIHdyYXAgdGhlIHRhcmdldCBhcm91bmQKCQkJdmFyIHdyYXAgPSBqUXVlcnkoIGh0bWws
IHRoaXNbMF0ub3duZXJEb2N1bWVudCApLmVxKDApLmNsb25lKHRydWUpOwoKCQkJaWYgKCB0aGlz
WzBdLnBhcmVudE5vZGUgKSB7CgkJCQl3cmFwLmluc2VydEJlZm9yZSggdGhpc1swXSApOwoJCQl9
CgoJCQl3cmFwLm1hcChmdW5jdGlvbigpIHsKCQkJCXZhciBlbGVtID0gdGhpczsKCgkJCQl3aGls
ZSAoIGVsZW0uZmlyc3RDaGlsZCAmJiBlbGVtLmZpcnN0Q2hpbGQubm9kZVR5cGUgPT09IDEgKSB7
CgkJCQkJZWxlbSA9IGVsZW0uZmlyc3RDaGlsZDsKCQkJCX0KCgkJCQlyZXR1cm4gZWxlbTsKCQkJ
fSkuYXBwZW5kKCB0aGlzICk7CgkJfQoKCQlyZXR1cm4gdGhpczsKCX0sCgoJd3JhcElubmVyOiBm
dW5jdGlvbiggaHRtbCApIHsKCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCBodG1sICkgKSB7CgkJ
CXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oaSkgewoJCQkJalF1ZXJ5KHRoaXMpLndyYXBJbm5l
ciggaHRtbC5jYWxsKHRoaXMsIGkpICk7CgkJCX0pOwoJCX0KCgkJcmV0dXJuIHRoaXMuZWFjaChm
dW5jdGlvbigpIHsKCQkJdmFyIHNlbGYgPSBqUXVlcnkoIHRoaXMgKSwKCQkJCWNvbnRlbnRzID0g
c2VsZi5jb250ZW50cygpOwoKCQkJaWYgKCBjb250ZW50cy5sZW5ndGggKSB7CgkJCQljb250ZW50
cy53cmFwQWxsKCBodG1sICk7CgoJCQl9IGVsc2UgewoJCQkJc2VsZi5hcHBlbmQoIGh0bWwgKTsK
CQkJfQoJCX0pOwoJfSwKCgl3cmFwOiBmdW5jdGlvbiggaHRtbCApIHsKCQl2YXIgaXNGdW5jdGlv
biA9IGpRdWVyeS5pc0Z1bmN0aW9uKCBodG1sICk7CgoJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rp
b24oaSkgewoJCQlqUXVlcnkoIHRoaXMgKS53cmFwQWxsKCBpc0Z1bmN0aW9uID8gaHRtbC5jYWxs
KHRoaXMsIGkpIDogaHRtbCApOwoJCX0pOwoJfSwKCgl1bndyYXA6IGZ1bmN0aW9uKCkgewoJCXJl
dHVybiB0aGlzLnBhcmVudCgpLmVhY2goZnVuY3Rpb24oKSB7CgkJCWlmICggIWpRdWVyeS5ub2Rl
TmFtZSggdGhpcywgImJvZHkiICkgKSB7CgkJCQlqUXVlcnkoIHRoaXMgKS5yZXBsYWNlV2l0aCgg
dGhpcy5jaGlsZE5vZGVzICk7CgkJCX0KCQl9KS5lbmQoKTsKCX0KfSk7CgoKalF1ZXJ5LmV4cHIu
ZmlsdGVycy5oaWRkZW4gPSBmdW5jdGlvbiggZWxlbSApIHsKCS8vIFN1cHBvcnQ6IE9wZXJhIDw9
IDEyLjEyCgkvLyBPcGVyYSByZXBvcnRzIG9mZnNldFdpZHRocyBhbmQgb2Zmc2V0SGVpZ2h0cyBs
ZXNzIHRoYW4gemVybyBvbiBzb21lIGVsZW1lbnRzCglyZXR1cm4gZWxlbS5vZmZzZXRXaWR0aCA8
PSAwICYmIGVsZW0ub2Zmc2V0SGVpZ2h0IDw9IDAgfHwKCQkoIXN1cHBvcnQucmVsaWFibGVIaWRk
ZW5PZmZzZXRzKCkgJiYKCQkJKChlbGVtLnN0eWxlICYmIGVsZW0uc3R5bGUuZGlzcGxheSkgfHwg
alF1ZXJ5LmNzcyggZWxlbSwgImRpc3BsYXkiICkpID09PSAibm9uZSIpOwp9OwoKalF1ZXJ5LmV4
cHIuZmlsdGVycy52aXNpYmxlID0gZnVuY3Rpb24oIGVsZW0gKSB7CglyZXR1cm4gIWpRdWVyeS5l
eHByLmZpbHRlcnMuaGlkZGVuKCBlbGVtICk7Cn07CgoKCgp2YXIgcjIwID0gLyUyMC9nLAoJcmJy
YWNrZXQgPSAvXFtcXSQvLAoJckNSTEYgPSAvXHI/XG4vZywKCXJzdWJtaXR0ZXJUeXBlcyA9IC9e
KD86c3VibWl0fGJ1dHRvbnxpbWFnZXxyZXNldHxmaWxlKSQvaSwKCXJzdWJtaXR0YWJsZSA9IC9e
KD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGtleWdlbikvaTsKCmZ1bmN0aW9uIGJ1aWxkUGFyYW1z
KCBwcmVmaXgsIG9iaiwgdHJhZGl0aW9uYWwsIGFkZCApIHsKCXZhciBuYW1lOwoKCWlmICggalF1
ZXJ5LmlzQXJyYXkoIG9iaiApICkgewoJCS8vIFNlcmlhbGl6ZSBhcnJheSBpdGVtLgoJCWpRdWVy
eS5lYWNoKCBvYmosIGZ1bmN0aW9uKCBpLCB2ICkgewoJCQlpZiAoIHRyYWRpdGlvbmFsIHx8IHJi
cmFja2V0LnRlc3QoIHByZWZpeCApICkgewoJCQkJLy8gVHJlYXQgZWFjaCBhcnJheSBpdGVtIGFz
IGEgc2NhbGFyLgoJCQkJYWRkKCBwcmVmaXgsIHYgKTsKCgkJCX0gZWxzZSB7CgkJCQkvLyBJdGVt
IGlzIG5vbi1zY2FsYXIgKGFycmF5IG9yIG9iamVjdCksIGVuY29kZSBpdHMgbnVtZXJpYyBpbmRl
eC4KCQkJCWJ1aWxkUGFyYW1zKCBwcmVmaXggKyAiWyIgKyAoIHR5cGVvZiB2ID09PSAib2JqZWN0
IiA/IGkgOiAiIiApICsgIl0iLCB2LCB0cmFkaXRpb25hbCwgYWRkICk7CgkJCX0KCQl9KTsKCgl9
IGVsc2UgaWYgKCAhdHJhZGl0aW9uYWwgJiYgalF1ZXJ5LnR5cGUoIG9iaiApID09PSAib2JqZWN0
IiApIHsKCQkvLyBTZXJpYWxpemUgb2JqZWN0IGl0ZW0uCgkJZm9yICggbmFtZSBpbiBvYmogKSB7
CgkJCWJ1aWxkUGFyYW1zKCBwcmVmaXggKyAiWyIgKyBuYW1lICsgIl0iLCBvYmpbIG5hbWUgXSwg
dHJhZGl0aW9uYWwsIGFkZCApOwoJCX0KCgl9IGVsc2UgewoJCS8vIFNlcmlhbGl6ZSBzY2FsYXIg
aXRlbS4KCQlhZGQoIHByZWZpeCwgb2JqICk7Cgl9Cn0KCi8vIFNlcmlhbGl6ZSBhbiBhcnJheSBv
ZiBmb3JtIGVsZW1lbnRzIG9yIGEgc2V0IG9mCi8vIGtleS92YWx1ZXMgaW50byBhIHF1ZXJ5IHN0
cmluZwpqUXVlcnkucGFyYW0gPSBmdW5jdGlvbiggYSwgdHJhZGl0aW9uYWwgKSB7Cgl2YXIgcHJl
Zml4LAoJCXMgPSBbXSwKCQlhZGQgPSBmdW5jdGlvbigga2V5LCB2YWx1ZSApIHsKCQkJLy8gSWYg
dmFsdWUgaXMgYSBmdW5jdGlvbiwgaW52b2tlIGl0IGFuZCByZXR1cm4gaXRzIHZhbHVlCgkJCXZh
bHVlID0galF1ZXJ5LmlzRnVuY3Rpb24oIHZhbHVlICkgPyB2YWx1ZSgpIDogKCB2YWx1ZSA9PSBu
dWxsID8gIiIgOiB2YWx1ZSApOwoJCQlzWyBzLmxlbmd0aCBdID0gZW5jb2RlVVJJQ29tcG9uZW50
KCBrZXkgKSArICI9IiArIGVuY29kZVVSSUNvbXBvbmVudCggdmFsdWUgKTsKCQl9OwoKCS8vIFNl
dCB0cmFkaXRpb25hbCB0byB0cnVlIGZvciBqUXVlcnkgPD0gMS4zLjIgYmVoYXZpb3IuCglpZiAo
IHRyYWRpdGlvbmFsID09PSB1bmRlZmluZWQgKSB7CgkJdHJhZGl0aW9uYWwgPSBqUXVlcnkuYWph
eFNldHRpbmdzICYmIGpRdWVyeS5hamF4U2V0dGluZ3MudHJhZGl0aW9uYWw7Cgl9CgoJLy8gSWYg
YW4gYXJyYXkgd2FzIHBhc3NlZCBpbiwgYXNzdW1lIHRoYXQgaXQgaXMgYW4gYXJyYXkgb2YgZm9y
bSBlbGVtZW50cy4KCWlmICggalF1ZXJ5LmlzQXJyYXkoIGEgKSB8fCAoIGEuanF1ZXJ5ICYmICFq
UXVlcnkuaXNQbGFpbk9iamVjdCggYSApICkgKSB7CgkJLy8gU2VyaWFsaXplIHRoZSBmb3JtIGVs
ZW1lbnRzCgkJalF1ZXJ5LmVhY2goIGEsIGZ1bmN0aW9uKCkgewoJCQlhZGQoIHRoaXMubmFtZSwg
dGhpcy52YWx1ZSApOwoJCX0pOwoKCX0gZWxzZSB7CgkJLy8gSWYgdHJhZGl0aW9uYWwsIGVuY29k
ZSB0aGUgIm9sZCIgd2F5ICh0aGUgd2F5IDEuMy4yIG9yIG9sZGVyCgkJLy8gZGlkIGl0KSwgb3Ro
ZXJ3aXNlIGVuY29kZSBwYXJhbXMgcmVjdXJzaXZlbHkuCgkJZm9yICggcHJlZml4IGluIGEgKSB7
CgkJCWJ1aWxkUGFyYW1zKCBwcmVmaXgsIGFbIHByZWZpeCBdLCB0cmFkaXRpb25hbCwgYWRkICk7
CgkJfQoJfQoKCS8vIFJldHVybiB0aGUgcmVzdWx0aW5nIHNlcmlhbGl6YXRpb24KCXJldHVybiBz
LmpvaW4oICImIiApLnJlcGxhY2UoIHIyMCwgIisiICk7Cn07CgpqUXVlcnkuZm4uZXh0ZW5kKHsK
CXNlcmlhbGl6ZTogZnVuY3Rpb24oKSB7CgkJcmV0dXJuIGpRdWVyeS5wYXJhbSggdGhpcy5zZXJp
YWxpemVBcnJheSgpICk7Cgl9LAoJc2VyaWFsaXplQXJyYXk6IGZ1bmN0aW9uKCkgewoJCXJldHVy
biB0aGlzLm1hcChmdW5jdGlvbigpIHsKCQkJLy8gQ2FuIGFkZCBwcm9wSG9vayBmb3IgImVsZW1l
bnRzIiB0byBmaWx0ZXIgb3IgYWRkIGZvcm0gZWxlbWVudHMKCQkJdmFyIGVsZW1lbnRzID0galF1
ZXJ5LnByb3AoIHRoaXMsICJlbGVtZW50cyIgKTsKCQkJcmV0dXJuIGVsZW1lbnRzID8galF1ZXJ5
Lm1ha2VBcnJheSggZWxlbWVudHMgKSA6IHRoaXM7CgkJfSkKCQkuZmlsdGVyKGZ1bmN0aW9uKCkg
ewoJCQl2YXIgdHlwZSA9IHRoaXMudHlwZTsKCQkJLy8gVXNlIC5pcygiOmRpc2FibGVkIikgc28g
dGhhdCBmaWVsZHNldFtkaXNhYmxlZF0gd29ya3MKCQkJcmV0dXJuIHRoaXMubmFtZSAmJiAhalF1
ZXJ5KCB0aGlzICkuaXMoICI6ZGlzYWJsZWQiICkgJiYKCQkJCXJzdWJtaXR0YWJsZS50ZXN0KCB0
aGlzLm5vZGVOYW1lICkgJiYgIXJzdWJtaXR0ZXJUeXBlcy50ZXN0KCB0eXBlICkgJiYKCQkJCSgg
dGhpcy5jaGVja2VkIHx8ICFyY2hlY2thYmxlVHlwZS50ZXN0KCB0eXBlICkgKTsKCQl9KQoJCS5t
YXAoZnVuY3Rpb24oIGksIGVsZW0gKSB7CgkJCXZhciB2YWwgPSBqUXVlcnkoIHRoaXMgKS52YWwo
KTsKCgkJCXJldHVybiB2YWwgPT0gbnVsbCA/CgkJCQludWxsIDoKCQkJCWpRdWVyeS5pc0FycmF5
KCB2YWwgKSA/CgkJCQkJalF1ZXJ5Lm1hcCggdmFsLCBmdW5jdGlvbiggdmFsICkgewoJCQkJCQly
ZXR1cm4geyBuYW1lOiBlbGVtLm5hbWUsIHZhbHVlOiB2YWwucmVwbGFjZSggckNSTEYsICJcclxu
IiApIH07CgkJCQkJfSkgOgoJCQkJCXsgbmFtZTogZWxlbS5uYW1lLCB2YWx1ZTogdmFsLnJlcGxh
Y2UoIHJDUkxGLCAiXHJcbiIgKSB9OwoJCX0pLmdldCgpOwoJfQp9KTsKCgovLyBDcmVhdGUgdGhl
IHJlcXVlc3Qgb2JqZWN0Ci8vIChUaGlzIGlzIHN0aWxsIGF0dGFjaGVkIHRvIGFqYXhTZXR0aW5n
cyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSkKalF1ZXJ5LmFqYXhTZXR0aW5ncy54aHIgPSB3
aW5kb3cuQWN0aXZlWE9iamVjdCAhPT0gdW5kZWZpbmVkID8KCS8vIFN1cHBvcnQ6IElFNisKCWZ1
bmN0aW9uKCkgewoKCQkvLyBYSFIgY2Fubm90IGFjY2VzcyBsb2NhbCBmaWxlcywgYWx3YXlzIHVz
ZSBBY3RpdmVYIGZvciB0aGF0IGNhc2UKCQlyZXR1cm4gIXRoaXMuaXNMb2NhbCAmJgoKCQkJLy8g
U3VwcG9ydDogSUU3LTgKCQkJLy8gb2xkSUUgWEhSIGRvZXMgbm90IHN1cHBvcnQgbm9uLVJGQzI2
MTYgbWV0aG9kcyAoIzEzMjQwKQoJCQkvLyBTZWUgaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS9l
bi11cy9saWJyYXJ5L2llL21zNTM2NjQ4KHY9dnMuODUpLmFzcHgKCQkJLy8gYW5kIGh0dHA6Ly93
d3cudzMub3JnL1Byb3RvY29scy9yZmMyNjE2L3JmYzI2MTYtc2VjOS5odG1sI3NlYzkKCQkJLy8g
QWx0aG91Z2ggdGhpcyBjaGVjayBmb3Igc2l4IG1ldGhvZHMgaW5zdGVhZCBvZiBlaWdodAoJCQkv
LyBzaW5jZSBJRSBhbHNvIGRvZXMgbm90IHN1cHBvcnQgInRyYWNlIiBhbmQgImNvbm5lY3QiCgkJ
CS9eKGdldHxwb3N0fGhlYWR8cHV0fGRlbGV0ZXxvcHRpb25zKSQvaS50ZXN0KCB0aGlzLnR5cGUg
KSAmJgoKCQkJY3JlYXRlU3RhbmRhcmRYSFIoKSB8fCBjcmVhdGVBY3RpdmVYSFIoKTsKCX0gOgoJ
Ly8gRm9yIGFsbCBvdGhlciBicm93c2VycywgdXNlIHRoZSBzdGFuZGFyZCBYTUxIdHRwUmVxdWVz
dCBvYmplY3QKCWNyZWF0ZVN0YW5kYXJkWEhSOwoKdmFyIHhocklkID0gMCwKCXhockNhbGxiYWNr
cyA9IHt9LAoJeGhyU3VwcG9ydGVkID0galF1ZXJ5LmFqYXhTZXR0aW5ncy54aHIoKTsKCi8vIFN1
cHBvcnQ6IElFPDEwCi8vIE9wZW4gcmVxdWVzdHMgbXVzdCBiZSBtYW51YWxseSBhYm9ydGVkIG9u
IHVubG9hZCAoIzUyODApCi8vIFNlZSBodHRwczovL3N1cHBvcnQubWljcm9zb2Z0LmNvbS9rYi8y
ODU2NzQ2IGZvciBtb3JlIGluZm8KaWYgKCB3aW5kb3cuYXR0YWNoRXZlbnQgKSB7Cgl3aW5kb3cu
YXR0YWNoRXZlbnQoICJvbnVubG9hZCIsIGZ1bmN0aW9uKCkgewoJCWZvciAoIHZhciBrZXkgaW4g
eGhyQ2FsbGJhY2tzICkgewoJCQl4aHJDYWxsYmFja3NbIGtleSBdKCB1bmRlZmluZWQsIHRydWUg
KTsKCQl9Cgl9KTsKfQoKLy8gRGV0ZXJtaW5lIHN1cHBvcnQgcHJvcGVydGllcwpzdXBwb3J0LmNv
cnMgPSAhIXhoclN1cHBvcnRlZCAmJiAoICJ3aXRoQ3JlZGVudGlhbHMiIGluIHhoclN1cHBvcnRl
ZCApOwp4aHJTdXBwb3J0ZWQgPSBzdXBwb3J0LmFqYXggPSAhIXhoclN1cHBvcnRlZDsKCi8vIENy
ZWF0ZSB0cmFuc3BvcnQgaWYgdGhlIGJyb3dzZXIgY2FuIHByb3ZpZGUgYW4geGhyCmlmICggeGhy
U3VwcG9ydGVkICkgewoKCWpRdWVyeS5hamF4VHJhbnNwb3J0KGZ1bmN0aW9uKCBvcHRpb25zICkg
ewoJCS8vIENyb3NzIGRvbWFpbiBvbmx5IGFsbG93ZWQgaWYgc3VwcG9ydGVkIHRocm91Z2ggWE1M
SHR0cFJlcXVlc3QKCQlpZiAoICFvcHRpb25zLmNyb3NzRG9tYWluIHx8IHN1cHBvcnQuY29ycyAp
IHsKCgkJCXZhciBjYWxsYmFjazsKCgkJCXJldHVybiB7CgkJCQlzZW5kOiBmdW5jdGlvbiggaGVh
ZGVycywgY29tcGxldGUgKSB7CgkJCQkJdmFyIGksCgkJCQkJCXhociA9IG9wdGlvbnMueGhyKCks
CgkJCQkJCWlkID0gKyt4aHJJZDsKCgkJCQkJLy8gT3BlbiB0aGUgc29ja2V0CgkJCQkJeGhyLm9w
ZW4oIG9wdGlvbnMudHlwZSwgb3B0aW9ucy51cmwsIG9wdGlvbnMuYXN5bmMsIG9wdGlvbnMudXNl
cm5hbWUsIG9wdGlvbnMucGFzc3dvcmQgKTsKCgkJCQkJLy8gQXBwbHkgY3VzdG9tIGZpZWxkcyBp
ZiBwcm92aWRlZAoJCQkJCWlmICggb3B0aW9ucy54aHJGaWVsZHMgKSB7CgkJCQkJCWZvciAoIGkg
aW4gb3B0aW9ucy54aHJGaWVsZHMgKSB7CgkJCQkJCQl4aHJbIGkgXSA9IG9wdGlvbnMueGhyRmll
bGRzWyBpIF07CgkJCQkJCX0KCQkJCQl9CgoJCQkJCS8vIE92ZXJyaWRlIG1pbWUgdHlwZSBpZiBu
ZWVkZWQKCQkJCQlpZiAoIG9wdGlvbnMubWltZVR5cGUgJiYgeGhyLm92ZXJyaWRlTWltZVR5cGUg
KSB7CgkJCQkJCXhoci5vdmVycmlkZU1pbWVUeXBlKCBvcHRpb25zLm1pbWVUeXBlICk7CgkJCQkJ
fQoKCQkJCQkvLyBYLVJlcXVlc3RlZC1XaXRoIGhlYWRlcgoJCQkJCS8vIEZvciBjcm9zcy1kb21h
aW4gcmVxdWVzdHMsIHNlZWluZyBhcyBjb25kaXRpb25zIGZvciBhIHByZWZsaWdodCBhcmUKCQkJ
CQkvLyBha2luIHRvIGEgamlnc2F3IHB1enpsZSwgd2Ugc2ltcGx5IG5ldmVyIHNldCBpdCB0byBi
ZSBzdXJlLgoJCQkJCS8vIChpdCBjYW4gYWx3YXlzIGJlIHNldCBvbiBhIHBlci1yZXF1ZXN0IGJh
c2lzIG9yIGV2ZW4gdXNpbmcgYWpheFNldHVwKQoJCQkJCS8vIEZvciBzYW1lLWRvbWFpbiByZXF1
ZXN0cywgd29uJ3QgY2hhbmdlIGhlYWRlciBpZiBhbHJlYWR5IHByb3ZpZGVkLgoJCQkJCWlmICgg
IW9wdGlvbnMuY3Jvc3NEb21haW4gJiYgIWhlYWRlcnNbIlgtUmVxdWVzdGVkLVdpdGgiXSApIHsK
CQkJCQkJaGVhZGVyc1siWC1SZXF1ZXN0ZWQtV2l0aCJdID0gIlhNTEh0dHBSZXF1ZXN0IjsKCQkJ
CQl9CgoJCQkJCS8vIFNldCBoZWFkZXJzCgkJCQkJZm9yICggaSBpbiBoZWFkZXJzICkgewoJCQkJ
CQkvLyBTdXBwb3J0OiBJRTw5CgkJCQkJCS8vIElFJ3MgQWN0aXZlWE9iamVjdCB0aHJvd3MgYSAn
VHlwZSBNaXNtYXRjaCcgZXhjZXB0aW9uIHdoZW4gc2V0dGluZwoJCQkJCQkvLyByZXF1ZXN0IGhl
YWRlciB0byBhIG51bGwtdmFsdWUuCgkJCQkJCS8vCgkJCQkJCS8vIFRvIGtlZXAgY29uc2lzdGVu
dCB3aXRoIG90aGVyIFhIUiBpbXBsZW1lbnRhdGlvbnMsIGNhc3QgdGhlIHZhbHVlCgkJCQkJCS8v
IHRvIHN0cmluZyBhbmQgaWdub3JlIGB1bmRlZmluZWRgLgoJCQkJCQlpZiAoIGhlYWRlcnNbIGkg
XSAhPT0gdW5kZWZpbmVkICkgewoJCQkJCQkJeGhyLnNldFJlcXVlc3RIZWFkZXIoIGksIGhlYWRl
cnNbIGkgXSArICIiICk7CgkJCQkJCX0KCQkJCQl9CgoJCQkJCS8vIERvIHNlbmQgdGhlIHJlcXVl
c3QKCQkJCQkvLyBUaGlzIG1heSByYWlzZSBhbiBleGNlcHRpb24gd2hpY2ggaXMgYWN0dWFsbHkK
CQkJCQkvLyBoYW5kbGVkIGluIGpRdWVyeS5hamF4IChzbyBubyB0cnkvY2F0Y2ggaGVyZSkKCQkJ
CQl4aHIuc2VuZCggKCBvcHRpb25zLmhhc0NvbnRlbnQgJiYgb3B0aW9ucy5kYXRhICkgfHwgbnVs
bCApOwoKCQkJCQkvLyBMaXN0ZW5lcgoJCQkJCWNhbGxiYWNrID0gZnVuY3Rpb24oIF8sIGlzQWJv
cnQgKSB7CgkJCQkJCXZhciBzdGF0dXMsIHN0YXR1c1RleHQsIHJlc3BvbnNlczsKCgkJCQkJCS8v
IFdhcyBuZXZlciBjYWxsZWQgYW5kIGlzIGFib3J0ZWQgb3IgY29tcGxldGUKCQkJCQkJaWYgKCBj
YWxsYmFjayAmJiAoIGlzQWJvcnQgfHwgeGhyLnJlYWR5U3RhdGUgPT09IDQgKSApIHsKCQkJCQkJ
CS8vIENsZWFuIHVwCgkJCQkJCQlkZWxldGUgeGhyQ2FsbGJhY2tzWyBpZCBdOwoJCQkJCQkJY2Fs
bGJhY2sgPSB1bmRlZmluZWQ7CgkJCQkJCQl4aHIub25yZWFkeXN0YXRlY2hhbmdlID0galF1ZXJ5
Lm5vb3A7CgoJCQkJCQkJLy8gQWJvcnQgbWFudWFsbHkgaWYgbmVlZGVkCgkJCQkJCQlpZiAoIGlz
QWJvcnQgKSB7CgkJCQkJCQkJaWYgKCB4aHIucmVhZHlTdGF0ZSAhPT0gNCApIHsKCQkJCQkJCQkJ
eGhyLmFib3J0KCk7CgkJCQkJCQkJfQoJCQkJCQkJfSBlbHNlIHsKCQkJCQkJCQlyZXNwb25zZXMg
PSB7fTsKCQkJCQkJCQlzdGF0dXMgPSB4aHIuc3RhdHVzOwoKCQkJCQkJCQkvLyBTdXBwb3J0OiBJ
RTwxMAoJCQkJCQkJCS8vIEFjY2Vzc2luZyBiaW5hcnktZGF0YSByZXNwb25zZVRleHQgdGhyb3dz
IGFuIGV4Y2VwdGlvbgoJCQkJCQkJCS8vICgjMTE0MjYpCgkJCQkJCQkJaWYgKCB0eXBlb2YgeGhy
LnJlc3BvbnNlVGV4dCA9PT0gInN0cmluZyIgKSB7CgkJCQkJCQkJCXJlc3BvbnNlcy50ZXh0ID0g
eGhyLnJlc3BvbnNlVGV4dDsKCQkJCQkJCQl9CgoJCQkJCQkJCS8vIEZpcmVmb3ggdGhyb3dzIGFu
IGV4Y2VwdGlvbiB3aGVuIGFjY2Vzc2luZwoJCQkJCQkJCS8vIHN0YXR1c1RleHQgZm9yIGZhdWx0
eSBjcm9zcy1kb21haW4gcmVxdWVzdHMKCQkJCQkJCQl0cnkgewoJCQkJCQkJCQlzdGF0dXNUZXh0
ID0geGhyLnN0YXR1c1RleHQ7CgkJCQkJCQkJfSBjYXRjaCggZSApIHsKCQkJCQkJCQkJLy8gV2Ug
bm9ybWFsaXplIHdpdGggV2Via2l0IGdpdmluZyBhbiBlbXB0eSBzdGF0dXNUZXh0CgkJCQkJCQkJ
CXN0YXR1c1RleHQgPSAiIjsKCQkJCQkJCQl9CgoJCQkJCQkJCS8vIEZpbHRlciBzdGF0dXMgZm9y
IG5vbiBzdGFuZGFyZCBiZWhhdmlvcnMKCgkJCQkJCQkJLy8gSWYgdGhlIHJlcXVlc3QgaXMgbG9j
YWwgYW5kIHdlIGhhdmUgZGF0YTogYXNzdW1lIGEgc3VjY2VzcwoJCQkJCQkJCS8vIChzdWNjZXNz
IHdpdGggbm8gZGF0YSB3b24ndCBnZXQgbm90aWZpZWQsIHRoYXQncyB0aGUgYmVzdCB3ZQoJCQkJ
CQkJCS8vIGNhbiBkbyBnaXZlbiBjdXJyZW50IGltcGxlbWVudGF0aW9ucykKCQkJCQkJCQlpZiAo
ICFzdGF0dXMgJiYgb3B0aW9ucy5pc0xvY2FsICYmICFvcHRpb25zLmNyb3NzRG9tYWluICkgewoJ
CQkJCQkJCQlzdGF0dXMgPSByZXNwb25zZXMudGV4dCA/IDIwMCA6IDQwNDsKCQkJCQkJCQkvLyBJ
RSAtICMxNDUwOiBzb21ldGltZXMgcmV0dXJucyAxMjIzIHdoZW4gaXQgc2hvdWxkIGJlIDIwNAoJ
CQkJCQkJCX0gZWxzZSBpZiAoIHN0YXR1cyA9PT0gMTIyMyApIHsKCQkJCQkJCQkJc3RhdHVzID0g
MjA0OwoJCQkJCQkJCX0KCQkJCQkJCX0KCQkJCQkJfQoKCQkJCQkJLy8gQ2FsbCBjb21wbGV0ZSBp
ZiBuZWVkZWQKCQkJCQkJaWYgKCByZXNwb25zZXMgKSB7CgkJCQkJCQljb21wbGV0ZSggc3RhdHVz
LCBzdGF0dXNUZXh0LCByZXNwb25zZXMsIHhoci5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSApOwoJ
CQkJCQl9CgkJCQkJfTsKCgkJCQkJaWYgKCAhb3B0aW9ucy5hc3luYyApIHsKCQkJCQkJLy8gaWYg
d2UncmUgaW4gc3luYyBtb2RlIHdlIGZpcmUgdGhlIGNhbGxiYWNrCgkJCQkJCWNhbGxiYWNrKCk7
CgkJCQkJfSBlbHNlIGlmICggeGhyLnJlYWR5U3RhdGUgPT09IDQgKSB7CgkJCQkJCS8vIChJRTYg
JiBJRTcpIGlmIGl0J3MgaW4gY2FjaGUgYW5kIGhhcyBiZWVuCgkJCQkJCS8vIHJldHJpZXZlZCBk
aXJlY3RseSB3ZSBuZWVkIHRvIGZpcmUgdGhlIGNhbGxiYWNrCgkJCQkJCXNldFRpbWVvdXQoIGNh
bGxiYWNrICk7CgkJCQkJfSBlbHNlIHsKCQkJCQkJLy8gQWRkIHRvIHRoZSBsaXN0IG9mIGFjdGl2
ZSB4aHIgY2FsbGJhY2tzCgkJCQkJCXhoci5vbnJlYWR5c3RhdGVjaGFuZ2UgPSB4aHJDYWxsYmFj
a3NbIGlkIF0gPSBjYWxsYmFjazsKCQkJCQl9CgkJCQl9LAoKCQkJCWFib3J0OiBmdW5jdGlvbigp
IHsKCQkJCQlpZiAoIGNhbGxiYWNrICkgewoJCQkJCQljYWxsYmFjayggdW5kZWZpbmVkLCB0cnVl
ICk7CgkJCQkJfQoJCQkJfQoJCQl9OwoJCX0KCX0pOwp9CgovLyBGdW5jdGlvbnMgdG8gY3JlYXRl
IHhocnMKZnVuY3Rpb24gY3JlYXRlU3RhbmRhcmRYSFIoKSB7Cgl0cnkgewoJCXJldHVybiBuZXcg
d2luZG93LlhNTEh0dHBSZXF1ZXN0KCk7Cgl9IGNhdGNoKCBlICkge30KfQoKZnVuY3Rpb24gY3Jl
YXRlQWN0aXZlWEhSKCkgewoJdHJ5IHsKCQlyZXR1cm4gbmV3IHdpbmRvdy5BY3RpdmVYT2JqZWN0
KCAiTWljcm9zb2Z0LlhNTEhUVFAiICk7Cgl9IGNhdGNoKCBlICkge30KfQoKCgoKLy8gSW5zdGFs
bCBzY3JpcHQgZGF0YVR5cGUKalF1ZXJ5LmFqYXhTZXR1cCh7CglhY2NlcHRzOiB7CgkJc2NyaXB0
OiAidGV4dC9qYXZhc2NyaXB0LCBhcHBsaWNhdGlvbi9qYXZhc2NyaXB0LCBhcHBsaWNhdGlvbi9l
Y21hc2NyaXB0LCBhcHBsaWNhdGlvbi94LWVjbWFzY3JpcHQiCgl9LAoJY29udGVudHM6IHsKCQlz
Y3JpcHQ6IC8oPzpqYXZhfGVjbWEpc2NyaXB0LwoJfSwKCWNvbnZlcnRlcnM6IHsKCQkidGV4dCBz
Y3JpcHQiOiBmdW5jdGlvbiggdGV4dCApIHsKCQkJalF1ZXJ5Lmdsb2JhbEV2YWwoIHRleHQgKTsK
CQkJcmV0dXJuIHRleHQ7CgkJfQoJfQp9KTsKCi8vIEhhbmRsZSBjYWNoZSdzIHNwZWNpYWwgY2Fz
ZSBhbmQgZ2xvYmFsCmpRdWVyeS5hamF4UHJlZmlsdGVyKCAic2NyaXB0IiwgZnVuY3Rpb24oIHMg
KSB7CglpZiAoIHMuY2FjaGUgPT09IHVuZGVmaW5lZCApIHsKCQlzLmNhY2hlID0gZmFsc2U7Cgl9
CglpZiAoIHMuY3Jvc3NEb21haW4gKSB7CgkJcy50eXBlID0gIkdFVCI7CgkJcy5nbG9iYWwgPSBm
YWxzZTsKCX0KfSk7CgovLyBCaW5kIHNjcmlwdCB0YWcgaGFjayB0cmFuc3BvcnQKalF1ZXJ5LmFq
YXhUcmFuc3BvcnQoICJzY3JpcHQiLCBmdW5jdGlvbihzKSB7CgoJLy8gVGhpcyB0cmFuc3BvcnQg
b25seSBkZWFscyB3aXRoIGNyb3NzIGRvbWFpbiByZXF1ZXN0cwoJaWYgKCBzLmNyb3NzRG9tYWlu
ICkgewoKCQl2YXIgc2NyaXB0LAoJCQloZWFkID0gZG9jdW1lbnQuaGVhZCB8fCBqUXVlcnkoImhl
YWQiKVswXSB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CgoJCXJldHVybiB7CgoJCQlzZW5k
OiBmdW5jdGlvbiggXywgY2FsbGJhY2sgKSB7CgoJCQkJc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgic2NyaXB0Iik7CgoJCQkJc2NyaXB0LmFzeW5jID0gdHJ1ZTsKCgkJCQlpZiAoIHMu
c2NyaXB0Q2hhcnNldCApIHsKCQkJCQlzY3JpcHQuY2hhcnNldCA9IHMuc2NyaXB0Q2hhcnNldDsK
CQkJCX0KCgkJCQlzY3JpcHQuc3JjID0gcy51cmw7CgoJCQkJLy8gQXR0YWNoIGhhbmRsZXJzIGZv
ciBhbGwgYnJvd3NlcnMKCQkJCXNjcmlwdC5vbmxvYWQgPSBzY3JpcHQub25yZWFkeXN0YXRlY2hh
bmdlID0gZnVuY3Rpb24oIF8sIGlzQWJvcnQgKSB7CgoJCQkJCWlmICggaXNBYm9ydCB8fCAhc2Ny
aXB0LnJlYWR5U3RhdGUgfHwgL2xvYWRlZHxjb21wbGV0ZS8udGVzdCggc2NyaXB0LnJlYWR5U3Rh
dGUgKSApIHsKCgkJCQkJCS8vIEhhbmRsZSBtZW1vcnkgbGVhayBpbiBJRQoJCQkJCQlzY3JpcHQu
b25sb2FkID0gc2NyaXB0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IG51bGw7CgoJCQkJCQkvLyBSZW1v
dmUgdGhlIHNjcmlwdAoJCQkJCQlpZiAoIHNjcmlwdC5wYXJlbnROb2RlICkgewoJCQkJCQkJc2Ny
aXB0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoIHNjcmlwdCApOwoJCQkJCQl9CgoJCQkJCQkvLyBE
ZXJlZmVyZW5jZSB0aGUgc2NyaXB0CgkJCQkJCXNjcmlwdCA9IG51bGw7CgoJCQkJCQkvLyBDYWxs
YmFjayBpZiBub3QgYWJvcnQKCQkJCQkJaWYgKCAhaXNBYm9ydCApIHsKCQkJCQkJCWNhbGxiYWNr
KCAyMDAsICJzdWNjZXNzIiApOwoJCQkJCQl9CgkJCQkJfQoJCQkJfTsKCgkJCQkvLyBDaXJjdW12
ZW50IElFNiBidWdzIHdpdGggYmFzZSBlbGVtZW50cyAoIzI3MDkgYW5kICM0Mzc4KSBieSBwcmVw
ZW5kaW5nCgkJCQkvLyBVc2UgbmF0aXZlIERPTSBtYW5pcHVsYXRpb24gdG8gYXZvaWQgb3VyIGRv
bU1hbmlwIEFKQVggdHJpY2tlcnkKCQkJCWhlYWQuaW5zZXJ0QmVmb3JlKCBzY3JpcHQsIGhlYWQu
Zmlyc3RDaGlsZCApOwoJCQl9LAoKCQkJYWJvcnQ6IGZ1bmN0aW9uKCkgewoJCQkJaWYgKCBzY3Jp
cHQgKSB7CgkJCQkJc2NyaXB0Lm9ubG9hZCggdW5kZWZpbmVkLCB0cnVlICk7CgkJCQl9CgkJCX0K
CQl9OwoJfQp9KTsKCgoKCnZhciBvbGRDYWxsYmFja3MgPSBbXSwKCXJqc29ucCA9IC8oPSlcPyg/
PSZ8JCl8XD9cPy87CgovLyBEZWZhdWx0IGpzb25wIHNldHRpbmdzCmpRdWVyeS5hamF4U2V0dXAo
ewoJanNvbnA6ICJjYWxsYmFjayIsCglqc29ucENhbGxiYWNrOiBmdW5jdGlvbigpIHsKCQl2YXIg
Y2FsbGJhY2sgPSBvbGRDYWxsYmFja3MucG9wKCkgfHwgKCBqUXVlcnkuZXhwYW5kbyArICJfIiAr
ICggbm9uY2UrKyApICk7CgkJdGhpc1sgY2FsbGJhY2sgXSA9IHRydWU7CgkJcmV0dXJuIGNhbGxi
YWNrOwoJfQp9KTsKCi8vIERldGVjdCwgbm9ybWFsaXplIG9wdGlvbnMgYW5kIGluc3RhbGwgY2Fs
bGJhY2tzIGZvciBqc29ucCByZXF1ZXN0cwpqUXVlcnkuYWpheFByZWZpbHRlciggImpzb24ganNv
bnAiLCBmdW5jdGlvbiggcywgb3JpZ2luYWxTZXR0aW5ncywganFYSFIgKSB7CgoJdmFyIGNhbGxi
YWNrTmFtZSwgb3ZlcndyaXR0ZW4sIHJlc3BvbnNlQ29udGFpbmVyLAoJCWpzb25Qcm9wID0gcy5q
c29ucCAhPT0gZmFsc2UgJiYgKCByanNvbnAudGVzdCggcy51cmwgKSA/CgkJCSJ1cmwiIDoKCQkJ
dHlwZW9mIHMuZGF0YSA9PT0gInN0cmluZyIgJiYgISggcy5jb250ZW50VHlwZSB8fCAiIiApLmlu
ZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpICYmIHJqc29ucC50ZXN0
KCBzLmRhdGEgKSAmJiAiZGF0YSIKCQkpOwoKCS8vIEhhbmRsZSBpZmYgdGhlIGV4cGVjdGVkIGRh
dGEgdHlwZSBpcyAianNvbnAiIG9yIHdlIGhhdmUgYSBwYXJhbWV0ZXIgdG8gc2V0CglpZiAoIGpz
b25Qcm9wIHx8IHMuZGF0YVR5cGVzWyAwIF0gPT09ICJqc29ucCIgKSB7CgoJCS8vIEdldCBjYWxs
YmFjayBuYW1lLCByZW1lbWJlcmluZyBwcmVleGlzdGluZyB2YWx1ZSBhc3NvY2lhdGVkIHdpdGgg
aXQKCQljYWxsYmFja05hbWUgPSBzLmpzb25wQ2FsbGJhY2sgPSBqUXVlcnkuaXNGdW5jdGlvbigg
cy5qc29ucENhbGxiYWNrICkgPwoJCQlzLmpzb25wQ2FsbGJhY2soKSA6CgkJCXMuanNvbnBDYWxs
YmFjazsKCgkJLy8gSW5zZXJ0IGNhbGxiYWNrIGludG8gdXJsIG9yIGZvcm0gZGF0YQoJCWlmICgg
anNvblByb3AgKSB7CgkJCXNbIGpzb25Qcm9wIF0gPSBzWyBqc29uUHJvcCBdLnJlcGxhY2UoIHJq
c29ucCwgIiQxIiArIGNhbGxiYWNrTmFtZSApOwoJCX0gZWxzZSBpZiAoIHMuanNvbnAgIT09IGZh
bHNlICkgewoJCQlzLnVybCArPSAoIHJxdWVyeS50ZXN0KCBzLnVybCApID8gIiYiIDogIj8iICkg
KyBzLmpzb25wICsgIj0iICsgY2FsbGJhY2tOYW1lOwoJCX0KCgkJLy8gVXNlIGRhdGEgY29udmVy
dGVyIHRvIHJldHJpZXZlIGpzb24gYWZ0ZXIgc2NyaXB0IGV4ZWN1dGlvbgoJCXMuY29udmVydGVy
c1sic2NyaXB0IGpzb24iXSA9IGZ1bmN0aW9uKCkgewoJCQlpZiAoICFyZXNwb25zZUNvbnRhaW5l
ciApIHsKCQkJCWpRdWVyeS5lcnJvciggY2FsbGJhY2tOYW1lICsgIiB3YXMgbm90IGNhbGxlZCIg
KTsKCQkJfQoJCQlyZXR1cm4gcmVzcG9uc2VDb250YWluZXJbIDAgXTsKCQl9OwoKCQkvLyBmb3Jj
ZSBqc29uIGRhdGFUeXBlCgkJcy5kYXRhVHlwZXNbIDAgXSA9ICJqc29uIjsKCgkJLy8gSW5zdGFs
bCBjYWxsYmFjawoJCW92ZXJ3cml0dGVuID0gd2luZG93WyBjYWxsYmFja05hbWUgXTsKCQl3aW5k
b3dbIGNhbGxiYWNrTmFtZSBdID0gZnVuY3Rpb24oKSB7CgkJCXJlc3BvbnNlQ29udGFpbmVyID0g
YXJndW1lbnRzOwoJCX07CgoJCS8vIENsZWFuLXVwIGZ1bmN0aW9uIChmaXJlcyBhZnRlciBjb252
ZXJ0ZXJzKQoJCWpxWEhSLmFsd2F5cyhmdW5jdGlvbigpIHsKCQkJLy8gUmVzdG9yZSBwcmVleGlz
dGluZyB2YWx1ZQoJCQl3aW5kb3dbIGNhbGxiYWNrTmFtZSBdID0gb3ZlcndyaXR0ZW47CgoJCQkv
LyBTYXZlIGJhY2sgYXMgZnJlZQoJCQlpZiAoIHNbIGNhbGxiYWNrTmFtZSBdICkgewoJCQkJLy8g
bWFrZSBzdXJlIHRoYXQgcmUtdXNpbmcgdGhlIG9wdGlvbnMgZG9lc24ndCBzY3JldyB0aGluZ3Mg
YXJvdW5kCgkJCQlzLmpzb25wQ2FsbGJhY2sgPSBvcmlnaW5hbFNldHRpbmdzLmpzb25wQ2FsbGJh
Y2s7CgoJCQkJLy8gc2F2ZSB0aGUgY2FsbGJhY2sgbmFtZSBmb3IgZnV0dXJlIHVzZQoJCQkJb2xk
Q2FsbGJhY2tzLnB1c2goIGNhbGxiYWNrTmFtZSApOwoJCQl9CgoJCQkvLyBDYWxsIGlmIGl0IHdh
cyBhIGZ1bmN0aW9uIGFuZCB3ZSBoYXZlIGEgcmVzcG9uc2UKCQkJaWYgKCByZXNwb25zZUNvbnRh
aW5lciAmJiBqUXVlcnkuaXNGdW5jdGlvbiggb3ZlcndyaXR0ZW4gKSApIHsKCQkJCW92ZXJ3cml0
dGVuKCByZXNwb25zZUNvbnRhaW5lclsgMCBdICk7CgkJCX0KCgkJCXJlc3BvbnNlQ29udGFpbmVy
ID0gb3ZlcndyaXR0ZW4gPSB1bmRlZmluZWQ7CgkJfSk7CgoJCS8vIERlbGVnYXRlIHRvIHNjcmlw
dAoJCXJldHVybiAic2NyaXB0IjsKCX0KfSk7CgoKCgovLyBkYXRhOiBzdHJpbmcgb2YgaHRtbAov
LyBjb250ZXh0IChvcHRpb25hbCk6IElmIHNwZWNpZmllZCwgdGhlIGZyYWdtZW50IHdpbGwgYmUg
Y3JlYXRlZCBpbiB0aGlzIGNvbnRleHQsIGRlZmF1bHRzIHRvIGRvY3VtZW50Ci8vIGtlZXBTY3Jp
cHRzIChvcHRpb25hbCk6IElmIHRydWUsIHdpbGwgaW5jbHVkZSBzY3JpcHRzIHBhc3NlZCBpbiB0
aGUgaHRtbCBzdHJpbmcKalF1ZXJ5LnBhcnNlSFRNTCA9IGZ1bmN0aW9uKCBkYXRhLCBjb250ZXh0
LCBrZWVwU2NyaXB0cyApIHsKCWlmICggIWRhdGEgfHwgdHlwZW9mIGRhdGEgIT09ICJzdHJpbmci
ICkgewoJCXJldHVybiBudWxsOwoJfQoJaWYgKCB0eXBlb2YgY29udGV4dCA9PT0gImJvb2xlYW4i
ICkgewoJCWtlZXBTY3JpcHRzID0gY29udGV4dDsKCQljb250ZXh0ID0gZmFsc2U7Cgl9Cgljb250
ZXh0ID0gY29udGV4dCB8fCBkb2N1bWVudDsKCgl2YXIgcGFyc2VkID0gcnNpbmdsZVRhZy5leGVj
KCBkYXRhICksCgkJc2NyaXB0cyA9ICFrZWVwU2NyaXB0cyAmJiBbXTsKCgkvLyBTaW5nbGUgdGFn
CglpZiAoIHBhcnNlZCApIHsKCQlyZXR1cm4gWyBjb250ZXh0LmNyZWF0ZUVsZW1lbnQoIHBhcnNl
ZFsxXSApIF07Cgl9CgoJcGFyc2VkID0galF1ZXJ5LmJ1aWxkRnJhZ21lbnQoIFsgZGF0YSBdLCBj
b250ZXh0LCBzY3JpcHRzICk7CgoJaWYgKCBzY3JpcHRzICYmIHNjcmlwdHMubGVuZ3RoICkgewoJ
CWpRdWVyeSggc2NyaXB0cyApLnJlbW92ZSgpOwoJfQoKCXJldHVybiBqUXVlcnkubWVyZ2UoIFtd
LCBwYXJzZWQuY2hpbGROb2RlcyApOwp9OwoKCi8vIEtlZXAgYSBjb3B5IG9mIHRoZSBvbGQgbG9h
ZCBtZXRob2QKdmFyIF9sb2FkID0galF1ZXJ5LmZuLmxvYWQ7CgovKioKICogTG9hZCBhIHVybCBp
bnRvIGEgcGFnZQogKi8KalF1ZXJ5LmZuLmxvYWQgPSBmdW5jdGlvbiggdXJsLCBwYXJhbXMsIGNh
bGxiYWNrICkgewoJaWYgKCB0eXBlb2YgdXJsICE9PSAic3RyaW5nIiAmJiBfbG9hZCApIHsKCQly
ZXR1cm4gX2xvYWQuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApOwoJfQoKCXZhciBzZWxlY3Rvciwg
cmVzcG9uc2UsIHR5cGUsCgkJc2VsZiA9IHRoaXMsCgkJb2ZmID0gdXJsLmluZGV4T2YoIiAiKTsK
CglpZiAoIG9mZiA+PSAwICkgewoJCXNlbGVjdG9yID0galF1ZXJ5LnRyaW0oIHVybC5zbGljZSgg
b2ZmLCB1cmwubGVuZ3RoICkgKTsKCQl1cmwgPSB1cmwuc2xpY2UoIDAsIG9mZiApOwoJfQoKCS8v
IElmIGl0J3MgYSBmdW5jdGlvbgoJaWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggcGFyYW1zICkgKSB7
CgoJCS8vIFdlIGFzc3VtZSB0aGF0IGl0J3MgdGhlIGNhbGxiYWNrCgkJY2FsbGJhY2sgPSBwYXJh
bXM7CgkJcGFyYW1zID0gdW5kZWZpbmVkOwoKCS8vIE90aGVyd2lzZSwgYnVpbGQgYSBwYXJhbSBz
dHJpbmcKCX0gZWxzZSBpZiAoIHBhcmFtcyAmJiB0eXBlb2YgcGFyYW1zID09PSAib2JqZWN0IiAp
IHsKCQl0eXBlID0gIlBPU1QiOwoJfQoKCS8vIElmIHdlIGhhdmUgZWxlbWVudHMgdG8gbW9kaWZ5
LCBtYWtlIHRoZSByZXF1ZXN0CglpZiAoIHNlbGYubGVuZ3RoID4gMCApIHsKCQlqUXVlcnkuYWph
eCh7CgkJCXVybDogdXJsLAoKCQkJLy8gaWYgInR5cGUiIHZhcmlhYmxlIGlzIHVuZGVmaW5lZCwg
dGhlbiAiR0VUIiBtZXRob2Qgd2lsbCBiZSB1c2VkCgkJCXR5cGU6IHR5cGUsCgkJCWRhdGFUeXBl
OiAiaHRtbCIsCgkJCWRhdGE6IHBhcmFtcwoJCX0pLmRvbmUoZnVuY3Rpb24oIHJlc3BvbnNlVGV4
dCApIHsKCgkJCS8vIFNhdmUgcmVzcG9uc2UgZm9yIHVzZSBpbiBjb21wbGV0ZSBjYWxsYmFjawoJ
CQlyZXNwb25zZSA9IGFyZ3VtZW50czsKCgkJCXNlbGYuaHRtbCggc2VsZWN0b3IgPwoKCQkJCS8v
IElmIGEgc2VsZWN0b3Igd2FzIHNwZWNpZmllZCwgbG9jYXRlIHRoZSByaWdodCBlbGVtZW50cyBp
biBhIGR1bW15IGRpdgoJCQkJLy8gRXhjbHVkZSBzY3JpcHRzIHRvIGF2b2lkIElFICdQZXJtaXNz
aW9uIERlbmllZCcgZXJyb3JzCgkJCQlqUXVlcnkoIjxkaXY+IikuYXBwZW5kKCBqUXVlcnkucGFy
c2VIVE1MKCByZXNwb25zZVRleHQgKSApLmZpbmQoIHNlbGVjdG9yICkgOgoKCQkJCS8vIE90aGVy
d2lzZSB1c2UgdGhlIGZ1bGwgcmVzdWx0CgkJCQlyZXNwb25zZVRleHQgKTsKCgkJfSkuY29tcGxl
dGUoIGNhbGxiYWNrICYmIGZ1bmN0aW9uKCBqcVhIUiwgc3RhdHVzICkgewoJCQlzZWxmLmVhY2go
IGNhbGxiYWNrLCByZXNwb25zZSB8fCBbIGpxWEhSLnJlc3BvbnNlVGV4dCwgc3RhdHVzLCBqcVhI
UiBdICk7CgkJfSk7Cgl9CgoJcmV0dXJuIHRoaXM7Cn07CgoKCgovLyBBdHRhY2ggYSBidW5jaCBv
ZiBmdW5jdGlvbnMgZm9yIGhhbmRsaW5nIGNvbW1vbiBBSkFYIGV2ZW50cwpqUXVlcnkuZWFjaCgg
WyAiYWpheFN0YXJ0IiwgImFqYXhTdG9wIiwgImFqYXhDb21wbGV0ZSIsICJhamF4RXJyb3IiLCAi
YWpheFN1Y2Nlc3MiLCAiYWpheFNlbmQiIF0sIGZ1bmN0aW9uKCBpLCB0eXBlICkgewoJalF1ZXJ5
LmZuWyB0eXBlIF0gPSBmdW5jdGlvbiggZm4gKSB7CgkJcmV0dXJuIHRoaXMub24oIHR5cGUsIGZu
ICk7Cgl9Owp9KTsKCgoKCmpRdWVyeS5leHByLmZpbHRlcnMuYW5pbWF0ZWQgPSBmdW5jdGlvbigg
ZWxlbSApIHsKCXJldHVybiBqUXVlcnkuZ3JlcChqUXVlcnkudGltZXJzLCBmdW5jdGlvbiggZm4g
KSB7CgkJcmV0dXJuIGVsZW0gPT09IGZuLmVsZW07Cgl9KS5sZW5ndGg7Cn07CgoKCgoKdmFyIGRv
Y0VsZW0gPSB3aW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OwoKLyoqCiAqIEdldHMgYSB3
aW5kb3cgZnJvbSBhbiBlbGVtZW50CiAqLwpmdW5jdGlvbiBnZXRXaW5kb3coIGVsZW0gKSB7Cgly
ZXR1cm4galF1ZXJ5LmlzV2luZG93KCBlbGVtICkgPwoJCWVsZW0gOgoJCWVsZW0ubm9kZVR5cGUg
PT09IDkgPwoJCQllbGVtLmRlZmF1bHRWaWV3IHx8IGVsZW0ucGFyZW50V2luZG93IDoKCQkJZmFs
c2U7Cn0KCmpRdWVyeS5vZmZzZXQgPSB7CglzZXRPZmZzZXQ6IGZ1bmN0aW9uKCBlbGVtLCBvcHRp
b25zLCBpICkgewoJCXZhciBjdXJQb3NpdGlvbiwgY3VyTGVmdCwgY3VyQ1NTVG9wLCBjdXJUb3As
IGN1ck9mZnNldCwgY3VyQ1NTTGVmdCwgY2FsY3VsYXRlUG9zaXRpb24sCgkJCXBvc2l0aW9uID0g
alF1ZXJ5LmNzcyggZWxlbSwgInBvc2l0aW9uIiApLAoJCQljdXJFbGVtID0galF1ZXJ5KCBlbGVt
ICksCgkJCXByb3BzID0ge307CgoJCS8vIHNldCBwb3NpdGlvbiBmaXJzdCwgaW4tY2FzZSB0b3Av
bGVmdCBhcmUgc2V0IGV2ZW4gb24gc3RhdGljIGVsZW0KCQlpZiAoIHBvc2l0aW9uID09PSAic3Rh
dGljIiApIHsKCQkJZWxlbS5zdHlsZS5wb3NpdGlvbiA9ICJyZWxhdGl2ZSI7CgkJfQoKCQljdXJP
ZmZzZXQgPSBjdXJFbGVtLm9mZnNldCgpOwoJCWN1ckNTU1RvcCA9IGpRdWVyeS5jc3MoIGVsZW0s
ICJ0b3AiICk7CgkJY3VyQ1NTTGVmdCA9IGpRdWVyeS5jc3MoIGVsZW0sICJsZWZ0IiApOwoJCWNh
bGN1bGF0ZVBvc2l0aW9uID0gKCBwb3NpdGlvbiA9PT0gImFic29sdXRlIiB8fCBwb3NpdGlvbiA9
PT0gImZpeGVkIiApICYmCgkJCWpRdWVyeS5pbkFycmF5KCJhdXRvIiwgWyBjdXJDU1NUb3AsIGN1
ckNTU0xlZnQgXSApID4gLTE7CgoJCS8vIG5lZWQgdG8gYmUgYWJsZSB0byBjYWxjdWxhdGUgcG9z
aXRpb24gaWYgZWl0aGVyIHRvcCBvciBsZWZ0IGlzIGF1dG8gYW5kIHBvc2l0aW9uIGlzIGVpdGhl
ciBhYnNvbHV0ZSBvciBmaXhlZAoJCWlmICggY2FsY3VsYXRlUG9zaXRpb24gKSB7CgkJCWN1clBv
c2l0aW9uID0gY3VyRWxlbS5wb3NpdGlvbigpOwoJCQljdXJUb3AgPSBjdXJQb3NpdGlvbi50b3A7
CgkJCWN1ckxlZnQgPSBjdXJQb3NpdGlvbi5sZWZ0OwoJCX0gZWxzZSB7CgkJCWN1clRvcCA9IHBh
cnNlRmxvYXQoIGN1ckNTU1RvcCApIHx8IDA7CgkJCWN1ckxlZnQgPSBwYXJzZUZsb2F0KCBjdXJD
U1NMZWZ0ICkgfHwgMDsKCQl9CgoJCWlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIG9wdGlvbnMgKSAp
IHsKCQkJb3B0aW9ucyA9IG9wdGlvbnMuY2FsbCggZWxlbSwgaSwgY3VyT2Zmc2V0ICk7CgkJfQoK
CQlpZiAoIG9wdGlvbnMudG9wICE9IG51bGwgKSB7CgkJCXByb3BzLnRvcCA9ICggb3B0aW9ucy50
b3AgLSBjdXJPZmZzZXQudG9wICkgKyBjdXJUb3A7CgkJfQoJCWlmICggb3B0aW9ucy5sZWZ0ICE9
IG51bGwgKSB7CgkJCXByb3BzLmxlZnQgPSAoIG9wdGlvbnMubGVmdCAtIGN1ck9mZnNldC5sZWZ0
ICkgKyBjdXJMZWZ0OwoJCX0KCgkJaWYgKCAidXNpbmciIGluIG9wdGlvbnMgKSB7CgkJCW9wdGlv
bnMudXNpbmcuY2FsbCggZWxlbSwgcHJvcHMgKTsKCQl9IGVsc2UgewoJCQljdXJFbGVtLmNzcygg
cHJvcHMgKTsKCQl9Cgl9Cn07CgpqUXVlcnkuZm4uZXh0ZW5kKHsKCW9mZnNldDogZnVuY3Rpb24o
IG9wdGlvbnMgKSB7CgkJaWYgKCBhcmd1bWVudHMubGVuZ3RoICkgewoJCQlyZXR1cm4gb3B0aW9u
cyA9PT0gdW5kZWZpbmVkID8KCQkJCXRoaXMgOgoJCQkJdGhpcy5lYWNoKGZ1bmN0aW9uKCBpICkg
ewoJCQkJCWpRdWVyeS5vZmZzZXQuc2V0T2Zmc2V0KCB0aGlzLCBvcHRpb25zLCBpICk7CgkJCQl9
KTsKCQl9CgoJCXZhciBkb2NFbGVtLCB3aW4sCgkJCWJveCA9IHsgdG9wOiAwLCBsZWZ0OiAwIH0s
CgkJCWVsZW0gPSB0aGlzWyAwIF0sCgkJCWRvYyA9IGVsZW0gJiYgZWxlbS5vd25lckRvY3VtZW50
OwoKCQlpZiAoICFkb2MgKSB7CgkJCXJldHVybjsKCQl9CgoJCWRvY0VsZW0gPSBkb2MuZG9jdW1l
bnRFbGVtZW50OwoKCQkvLyBNYWtlIHN1cmUgaXQncyBub3QgYSBkaXNjb25uZWN0ZWQgRE9NIG5v
ZGUKCQlpZiAoICFqUXVlcnkuY29udGFpbnMoIGRvY0VsZW0sIGVsZW0gKSApIHsKCQkJcmV0dXJu
IGJveDsKCQl9CgoJCS8vIElmIHdlIGRvbid0IGhhdmUgZ0JDUiwganVzdCB1c2UgMCwwIHJhdGhl
ciB0aGFuIGVycm9yCgkJLy8gQmxhY2tCZXJyeSA1LCBpT1MgMyAob3JpZ2luYWwgaVBob25lKQoJ
CWlmICggdHlwZW9mIGVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0ICE9PSBzdHJ1bmRlZmluZWQg
KSB7CgkJCWJveCA9IGVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CgkJfQoJCXdpbiA9IGdl
dFdpbmRvdyggZG9jICk7CgkJcmV0dXJuIHsKCQkJdG9wOiBib3gudG9wICArICggd2luLnBhZ2VZ
T2Zmc2V0IHx8IGRvY0VsZW0uc2Nyb2xsVG9wICkgIC0gKCBkb2NFbGVtLmNsaWVudFRvcCAgfHwg
MCApLAoJCQlsZWZ0OiBib3gubGVmdCArICggd2luLnBhZ2VYT2Zmc2V0IHx8IGRvY0VsZW0uc2Ny
b2xsTGVmdCApIC0gKCBkb2NFbGVtLmNsaWVudExlZnQgfHwgMCApCgkJfTsKCX0sCgoJcG9zaXRp
b246IGZ1bmN0aW9uKCkgewoJCWlmICggIXRoaXNbIDAgXSApIHsKCQkJcmV0dXJuOwoJCX0KCgkJ
dmFyIG9mZnNldFBhcmVudCwgb2Zmc2V0LAoJCQlwYXJlbnRPZmZzZXQgPSB7IHRvcDogMCwgbGVm
dDogMCB9LAoJCQllbGVtID0gdGhpc1sgMCBdOwoKCQkvLyBmaXhlZCBlbGVtZW50cyBhcmUgb2Zm
c2V0IGZyb20gd2luZG93IChwYXJlbnRPZmZzZXQgPSB7dG9wOjAsIGxlZnQ6IDB9LCBiZWNhdXNl
IGl0IGlzIGl0cyBvbmx5IG9mZnNldCBwYXJlbnQKCQlpZiAoIGpRdWVyeS5jc3MoIGVsZW0sICJw
b3NpdGlvbiIgKSA9PT0gImZpeGVkIiApIHsKCQkJLy8gd2UgYXNzdW1lIHRoYXQgZ2V0Qm91bmRp
bmdDbGllbnRSZWN0IGlzIGF2YWlsYWJsZSB3aGVuIGNvbXB1dGVkIHBvc2l0aW9uIGlzIGZpeGVk
CgkJCW9mZnNldCA9IGVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CgkJfSBlbHNlIHsKCQkJ
Ly8gR2V0ICpyZWFsKiBvZmZzZXRQYXJlbnQKCQkJb2Zmc2V0UGFyZW50ID0gdGhpcy5vZmZzZXRQ
YXJlbnQoKTsKCgkJCS8vIEdldCBjb3JyZWN0IG9mZnNldHMKCQkJb2Zmc2V0ID0gdGhpcy5vZmZz
ZXQoKTsKCQkJaWYgKCAhalF1ZXJ5Lm5vZGVOYW1lKCBvZmZzZXRQYXJlbnRbIDAgXSwgImh0bWwi
ICkgKSB7CgkJCQlwYXJlbnRPZmZzZXQgPSBvZmZzZXRQYXJlbnQub2Zmc2V0KCk7CgkJCX0KCgkJ
CS8vIEFkZCBvZmZzZXRQYXJlbnQgYm9yZGVycwoJCQlwYXJlbnRPZmZzZXQudG9wICArPSBqUXVl
cnkuY3NzKCBvZmZzZXRQYXJlbnRbIDAgXSwgImJvcmRlclRvcFdpZHRoIiwgdHJ1ZSApOwoJCQlw
YXJlbnRPZmZzZXQubGVmdCArPSBqUXVlcnkuY3NzKCBvZmZzZXRQYXJlbnRbIDAgXSwgImJvcmRl
ckxlZnRXaWR0aCIsIHRydWUgKTsKCQl9CgoJCS8vIFN1YnRyYWN0IHBhcmVudCBvZmZzZXRzIGFu
ZCBlbGVtZW50IG1hcmdpbnMKCQkvLyBub3RlOiB3aGVuIGFuIGVsZW1lbnQgaGFzIG1hcmdpbjog
YXV0byB0aGUgb2Zmc2V0TGVmdCBhbmQgbWFyZ2luTGVmdAoJCS8vIGFyZSB0aGUgc2FtZSBpbiBT
YWZhcmkgY2F1c2luZyBvZmZzZXQubGVmdCB0byBpbmNvcnJlY3RseSBiZSAwCgkJcmV0dXJuIHsK
CQkJdG9wOiAgb2Zmc2V0LnRvcCAgLSBwYXJlbnRPZmZzZXQudG9wIC0galF1ZXJ5LmNzcyggZWxl
bSwgIm1hcmdpblRvcCIsIHRydWUgKSwKCQkJbGVmdDogb2Zmc2V0LmxlZnQgLSBwYXJlbnRPZmZz
ZXQubGVmdCAtIGpRdWVyeS5jc3MoIGVsZW0sICJtYXJnaW5MZWZ0IiwgdHJ1ZSkKCQl9OwoJfSwK
CglvZmZzZXRQYXJlbnQ6IGZ1bmN0aW9uKCkgewoJCXJldHVybiB0aGlzLm1hcChmdW5jdGlvbigp
IHsKCQkJdmFyIG9mZnNldFBhcmVudCA9IHRoaXMub2Zmc2V0UGFyZW50IHx8IGRvY0VsZW07CgoJ
CQl3aGlsZSAoIG9mZnNldFBhcmVudCAmJiAoICFqUXVlcnkubm9kZU5hbWUoIG9mZnNldFBhcmVu
dCwgImh0bWwiICkgJiYgalF1ZXJ5LmNzcyggb2Zmc2V0UGFyZW50LCAicG9zaXRpb24iICkgPT09
ICJzdGF0aWMiICkgKSB7CgkJCQlvZmZzZXRQYXJlbnQgPSBvZmZzZXRQYXJlbnQub2Zmc2V0UGFy
ZW50OwoJCQl9CgkJCXJldHVybiBvZmZzZXRQYXJlbnQgfHwgZG9jRWxlbTsKCQl9KTsKCX0KfSk7
CgovLyBDcmVhdGUgc2Nyb2xsTGVmdCBhbmQgc2Nyb2xsVG9wIG1ldGhvZHMKalF1ZXJ5LmVhY2go
IHsgc2Nyb2xsTGVmdDogInBhZ2VYT2Zmc2V0Iiwgc2Nyb2xsVG9wOiAicGFnZVlPZmZzZXQiIH0s
IGZ1bmN0aW9uKCBtZXRob2QsIHByb3AgKSB7Cgl2YXIgdG9wID0gL1kvLnRlc3QoIHByb3AgKTsK
CglqUXVlcnkuZm5bIG1ldGhvZCBdID0gZnVuY3Rpb24oIHZhbCApIHsKCQlyZXR1cm4gYWNjZXNz
KCB0aGlzLCBmdW5jdGlvbiggZWxlbSwgbWV0aG9kLCB2YWwgKSB7CgkJCXZhciB3aW4gPSBnZXRX
aW5kb3coIGVsZW0gKTsKCgkJCWlmICggdmFsID09PSB1bmRlZmluZWQgKSB7CgkJCQlyZXR1cm4g
d2luID8gKHByb3AgaW4gd2luKSA/IHdpblsgcHJvcCBdIDoKCQkJCQl3aW4uZG9jdW1lbnQuZG9j
dW1lbnRFbGVtZW50WyBtZXRob2QgXSA6CgkJCQkJZWxlbVsgbWV0aG9kIF07CgkJCX0KCgkJCWlm
ICggd2luICkgewoJCQkJd2luLnNjcm9sbFRvKAoJCQkJCSF0b3AgPyB2YWwgOiBqUXVlcnkoIHdp
biApLnNjcm9sbExlZnQoKSwKCQkJCQl0b3AgPyB2YWwgOiBqUXVlcnkoIHdpbiApLnNjcm9sbFRv
cCgpCgkJCQkpOwoKCQkJfSBlbHNlIHsKCQkJCWVsZW1bIG1ldGhvZCBdID0gdmFsOwoJCQl9CgkJ
fSwgbWV0aG9kLCB2YWwsIGFyZ3VtZW50cy5sZW5ndGgsIG51bGwgKTsKCX07Cn0pOwoKLy8gQWRk
IHRoZSB0b3AvbGVmdCBjc3NIb29rcyB1c2luZyBqUXVlcnkuZm4ucG9zaXRpb24KLy8gV2Via2l0
IGJ1ZzogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5MDg0Ci8vIGdl
dENvbXB1dGVkU3R5bGUgcmV0dXJucyBwZXJjZW50IHdoZW4gc3BlY2lmaWVkIGZvciB0b3AvbGVm
dC9ib3R0b20vcmlnaHQKLy8gcmF0aGVyIHRoYW4gbWFrZSB0aGUgY3NzIG1vZHVsZSBkZXBlbmQg
b24gdGhlIG9mZnNldCBtb2R1bGUsIHdlIGp1c3QgY2hlY2sgZm9yIGl0IGhlcmUKalF1ZXJ5LmVh
Y2goIFsgInRvcCIsICJsZWZ0IiBdLCBmdW5jdGlvbiggaSwgcHJvcCApIHsKCWpRdWVyeS5jc3NI
b29rc1sgcHJvcCBdID0gYWRkR2V0SG9va0lmKCBzdXBwb3J0LnBpeGVsUG9zaXRpb24sCgkJZnVu
Y3Rpb24oIGVsZW0sIGNvbXB1dGVkICkgewoJCQlpZiAoIGNvbXB1dGVkICkgewoJCQkJY29tcHV0
ZWQgPSBjdXJDU1MoIGVsZW0sIHByb3AgKTsKCQkJCS8vIGlmIGN1ckNTUyByZXR1cm5zIHBlcmNl
bnRhZ2UsIGZhbGxiYWNrIHRvIG9mZnNldAoJCQkJcmV0dXJuIHJudW1ub25weC50ZXN0KCBjb21w
dXRlZCApID8KCQkJCQlqUXVlcnkoIGVsZW0gKS5wb3NpdGlvbigpWyBwcm9wIF0gKyAicHgiIDoK
CQkJCQljb21wdXRlZDsKCQkJfQoJCX0KCSk7Cn0pOwoKCi8vIENyZWF0ZSBpbm5lckhlaWdodCwg
aW5uZXJXaWR0aCwgaGVpZ2h0LCB3aWR0aCwgb3V0ZXJIZWlnaHQgYW5kIG91dGVyV2lkdGggbWV0
aG9kcwpqUXVlcnkuZWFjaCggeyBIZWlnaHQ6ICJoZWlnaHQiLCBXaWR0aDogIndpZHRoIiB9LCBm
dW5jdGlvbiggbmFtZSwgdHlwZSApIHsKCWpRdWVyeS5lYWNoKCB7IHBhZGRpbmc6ICJpbm5lciIg
KyBuYW1lLCBjb250ZW50OiB0eXBlLCAiIjogIm91dGVyIiArIG5hbWUgfSwgZnVuY3Rpb24oIGRl
ZmF1bHRFeHRyYSwgZnVuY05hbWUgKSB7CgkJLy8gbWFyZ2luIGlzIG9ubHkgZm9yIG91dGVySGVp
Z2h0LCBvdXRlcldpZHRoCgkJalF1ZXJ5LmZuWyBmdW5jTmFtZSBdID0gZnVuY3Rpb24oIG1hcmdp
biwgdmFsdWUgKSB7CgkJCXZhciBjaGFpbmFibGUgPSBhcmd1bWVudHMubGVuZ3RoICYmICggZGVm
YXVsdEV4dHJhIHx8IHR5cGVvZiBtYXJnaW4gIT09ICJib29sZWFuIiApLAoJCQkJZXh0cmEgPSBk
ZWZhdWx0RXh0cmEgfHwgKCBtYXJnaW4gPT09IHRydWUgfHwgdmFsdWUgPT09IHRydWUgPyAibWFy
Z2luIiA6ICJib3JkZXIiICk7CgoJCQlyZXR1cm4gYWNjZXNzKCB0aGlzLCBmdW5jdGlvbiggZWxl
bSwgdHlwZSwgdmFsdWUgKSB7CgkJCQl2YXIgZG9jOwoKCQkJCWlmICggalF1ZXJ5LmlzV2luZG93
KCBlbGVtICkgKSB7CgkJCQkJLy8gQXMgb2YgNS84LzIwMTIgdGhpcyB3aWxsIHlpZWxkIGluY29y
cmVjdCByZXN1bHRzIGZvciBNb2JpbGUgU2FmYXJpLCBidXQgdGhlcmUKCQkJCQkvLyBpc24ndCBh
IHdob2xlIGxvdCB3ZSBjYW4gZG8uIFNlZSBwdWxsIHJlcXVlc3QgYXQgdGhpcyBVUkwgZm9yIGRp
c2N1c3Npb246CgkJCQkJLy8gaHR0cHM6Ly9naXRodWIuY29tL2pxdWVyeS9qcXVlcnkvcHVsbC83
NjQKCQkJCQlyZXR1cm4gZWxlbS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbICJjbGllbnQiICsg
bmFtZSBdOwoJCQkJfQoKCQkJCS8vIEdldCBkb2N1bWVudCB3aWR0aCBvciBoZWlnaHQKCQkJCWlm
ICggZWxlbS5ub2RlVHlwZSA9PT0gOSApIHsKCQkJCQlkb2MgPSBlbGVtLmRvY3VtZW50RWxlbWVu
dDsKCgkJCQkJLy8gRWl0aGVyIHNjcm9sbFtXaWR0aC9IZWlnaHRdIG9yIG9mZnNldFtXaWR0aC9I
ZWlnaHRdIG9yIGNsaWVudFtXaWR0aC9IZWlnaHRdLCB3aGljaGV2ZXIgaXMgZ3JlYXRlc3QKCQkJ
CQkvLyB1bmZvcnR1bmF0ZWx5LCB0aGlzIGNhdXNlcyBidWcgIzM4MzggaW4gSUU2Lzggb25seSwg
YnV0IHRoZXJlIGlzIGN1cnJlbnRseSBubyBnb29kLCBzbWFsbCB3YXkgdG8gZml4IGl0LgoJCQkJ
CXJldHVybiBNYXRoLm1heCgKCQkJCQkJZWxlbS5ib2R5WyAic2Nyb2xsIiArIG5hbWUgXSwgZG9j
WyAic2Nyb2xsIiArIG5hbWUgXSwKCQkJCQkJZWxlbS5ib2R5WyAib2Zmc2V0IiArIG5hbWUgXSwg
ZG9jWyAib2Zmc2V0IiArIG5hbWUgXSwKCQkJCQkJZG9jWyAiY2xpZW50IiArIG5hbWUgXQoJCQkJ
CSk7CgkJCQl9CgoJCQkJcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgPwoJCQkJCS8vIEdldCB3
aWR0aCBvciBoZWlnaHQgb24gdGhlIGVsZW1lbnQsIHJlcXVlc3RpbmcgYnV0IG5vdCBmb3JjaW5n
IHBhcnNlRmxvYXQKCQkJCQlqUXVlcnkuY3NzKCBlbGVtLCB0eXBlLCBleHRyYSApIDoKCgkJCQkJ
Ly8gU2V0IHdpZHRoIG9yIGhlaWdodCBvbiB0aGUgZWxlbWVudAoJCQkJCWpRdWVyeS5zdHlsZSgg
ZWxlbSwgdHlwZSwgdmFsdWUsIGV4dHJhICk7CgkJCX0sIHR5cGUsIGNoYWluYWJsZSA/IG1hcmdp
biA6IHVuZGVmaW5lZCwgY2hhaW5hYmxlLCBudWxsICk7CgkJfTsKCX0pOwp9KTsKCgovLyBUaGUg
bnVtYmVyIG9mIGVsZW1lbnRzIGNvbnRhaW5lZCBpbiB0aGUgbWF0Y2hlZCBlbGVtZW50IHNldApq
UXVlcnkuZm4uc2l6ZSA9IGZ1bmN0aW9uKCkgewoJcmV0dXJuIHRoaXMubGVuZ3RoOwp9OwoKalF1
ZXJ5LmZuLmFuZFNlbGYgPSBqUXVlcnkuZm4uYWRkQmFjazsKCgoKCi8vIFJlZ2lzdGVyIGFzIGEg
bmFtZWQgQU1EIG1vZHVsZSwgc2luY2UgalF1ZXJ5IGNhbiBiZSBjb25jYXRlbmF0ZWQgd2l0aCBv
dGhlcgovLyBmaWxlcyB0aGF0IG1heSB1c2UgZGVmaW5lLCBidXQgbm90IHZpYSBhIHByb3BlciBj
b25jYXRlbmF0aW9uIHNjcmlwdCB0aGF0Ci8vIHVuZGVyc3RhbmRzIGFub255bW91cyBBTUQgbW9k
dWxlcy4gQSBuYW1lZCBBTUQgaXMgc2FmZXN0IGFuZCBtb3N0IHJvYnVzdAovLyB3YXkgdG8gcmVn
aXN0ZXIuIExvd2VyY2FzZSBqcXVlcnkgaXMgdXNlZCBiZWNhdXNlIEFNRCBtb2R1bGUgbmFtZXMg
YXJlCi8vIGRlcml2ZWQgZnJvbSBmaWxlIG5hbWVzLCBhbmQgalF1ZXJ5IGlzIG5vcm1hbGx5IGRl
bGl2ZXJlZCBpbiBhIGxvd2VyY2FzZQovLyBmaWxlIG5hbWUuIERvIHRoaXMgYWZ0ZXIgY3JlYXRp
bmcgdGhlIGdsb2JhbCBzbyB0aGF0IGlmIGFuIEFNRCBtb2R1bGUgd2FudHMKLy8gdG8gY2FsbCBu
b0NvbmZsaWN0IHRvIGhpZGUgdGhpcyB2ZXJzaW9uIG9mIGpRdWVyeSwgaXQgd2lsbCB3b3JrLgoK
Ly8gTm90ZSB0aGF0IGZvciBtYXhpbXVtIHBvcnRhYmlsaXR5LCBsaWJyYXJpZXMgdGhhdCBhcmUg
bm90IGpRdWVyeSBzaG91bGQKLy8gZGVjbGFyZSB0aGVtc2VsdmVzIGFzIGFub255bW91cyBtb2R1
bGVzLCBhbmQgYXZvaWQgc2V0dGluZyBhIGdsb2JhbCBpZiBhbgovLyBBTUQgbG9hZGVyIGlzIHBy
ZXNlbnQuIGpRdWVyeSBpcyBhIHNwZWNpYWwgY2FzZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNl
ZQovLyBodHRwczovL2dpdGh1Yi5jb20vanJidXJrZS9yZXF1aXJlanMvd2lraS9VcGRhdGluZy1l
eGlzdGluZy1saWJyYXJpZXMjd2lraS1hbm9uCgppZiAoIHR5cGVvZiBkZWZpbmUgPT09ICJmdW5j
dGlvbiIgJiYgZGVmaW5lLmFtZCApIHsKCWRlZmluZSggImpxdWVyeSIsIFtdLCBmdW5jdGlvbigp
IHsKCQlyZXR1cm4galF1ZXJ5OwoJfSk7Cn0KCgoKCnZhcgoJLy8gTWFwIG92ZXIgalF1ZXJ5IGlu
IGNhc2Ugb2Ygb3ZlcndyaXRlCglfalF1ZXJ5ID0gd2luZG93LmpRdWVyeSwKCgkvLyBNYXAgb3Zl
ciB0aGUgJCBpbiBjYXNlIG9mIG92ZXJ3cml0ZQoJXyQgPSB3aW5kb3cuJDsKCmpRdWVyeS5ub0Nv
bmZsaWN0ID0gZnVuY3Rpb24oIGRlZXAgKSB7CglpZiAoIHdpbmRvdy4kID09PSBqUXVlcnkgKSB7
CgkJd2luZG93LiQgPSBfJDsKCX0KCglpZiAoIGRlZXAgJiYgd2luZG93LmpRdWVyeSA9PT0galF1
ZXJ5ICkgewoJCXdpbmRvdy5qUXVlcnkgPSBfalF1ZXJ5OwoJfQoKCXJldHVybiBqUXVlcnk7Cn07
CgovLyBFeHBvc2UgalF1ZXJ5IGFuZCAkIGlkZW50aWZpZXJzLCBldmVuIGluCi8vIEFNRCAoIzcx
MDIjY29tbWVudDoxMCwgaHR0cHM6Ly9naXRodWIuY29tL2pxdWVyeS9qcXVlcnkvcHVsbC81NTcp
Ci8vIGFuZCBDb21tb25KUyBmb3IgYnJvd3NlciBlbXVsYXRvcnMgKCMxMzU2NikKaWYgKCB0eXBl
b2Ygbm9HbG9iYWwgPT09IHN0cnVuZGVmaW5lZCApIHsKCXdpbmRvdy5qUXVlcnkgPSB3aW5kb3cu
JCA9IGpRdWVyeTsKfQoKCgoKcmV0dXJuIGpRdWVyeTsKCn0pKTs=
|
|
63 | /video/css/loading.gif | image/gif | loading.gif | 200 OK | GIF | 21.7 KB | 12/29/79 20:46:20 |
Download
|
|
SHA256
|
19a05972e2ec95e7654b59d10119a69e77ec8108fb8daa4dc052afeda193dd92
|
Referer
|
http://cdn.bitmedianetwork.com/video/adplayer.html?timestamp=1481644853337&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t
|
Magic
|
GIF file (GIF)
|
Request
|
GET /video/css/loading.gif HTTP/1.1
Accept: */*
Referer: http://cdn.bitmedianetwork.com/video/adplayer.html?timestamp=1481644853337&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: ATXkdhOYObrkKvM7GidbQtamFrRi3amm9YL8L2Rt0gYf/C0RlkKt0bUgh0H38KhSL3bwfea5r8k=
x-amz-request-id: 17684F6D5C94F912
x-amz-meta-cache-control: max-age=86400
Content-Type: image/gif
Server: AmazonS3
Age: 144718
Date: Tue, 13 Dec 2016 16:01:24 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:29 GMT
Expires: Mon, 12 Dec 2016 23:49:26 GMT
Content-Length: 22180
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
GIF89a2 2 ÷û ýýýüüüûûû÷÷÷ùùùøøøúúúöööóóóõõõôôôòòòñññðððîîîíííçççìììêêêëëëïïïèèèéééåååÓÓÓÜÜÜæææÝÝÝÞÞÞãããâââààà»»»ßßßØØØäääáááÕ...
|
R0lGODlhMgAyAPf7AP39/fz8/Pv7+/f39/n5+fj4+Pr6+vb29vPz8/X19fT09PLy8vHx8fDw8O7u
7u3t7efn5+zs7Orq6uvr6+/v7+jo6Onp6eXl5dPT09zc3Obm5t3d3d7e3uPj4+Li4uDg4Lu7u9/f
39jY2OTk5AYGBuHh4dXV1dnZ2cbGxtvb29LS0r29vdbW1tDQ0Li4uMzMzMjIyNfX19ra2tTU1MrK
ysTExL+/v9HR0c3NzcnJycvLy7y8vM/Pz7Kyso+Pj8DAwKKiogoKCsfHx8HBwc7Ozq2trbCwsIuL
iwgICLS0tKurq5KSkqmpqZ6engkJCV1dXWxsbEtLS0BAQGFhYT09Paenp7a2tqampsPDw5iYmJaW
lrGxsYGBgURERFtbWxMTEwwMDAUFBcLCwre3t5ycnA8PD6ysrHR0dGpqanBwcA0NDbq6ugsLC66u
rpSUlKWlpXl5eR8fH0VFRRISEg4ODrOzsxsbG7W1tYeHh3t7e25ubqGhoSwsLBkZGRQUFJqamo2N
jZeXl319fQQEBDQ0NCkpKYWFhZmZmTExMZ2dnbm5uQcHB1BQUJGRkRgYGENDQ0JCQhcXF3JycsXF
xYmJiXh4eHd3d2ZmZiIiIiMjI5OTk3x8fIODgzMzM0lJSaCgoIaGhkxMTCsrK09PTx4eHldXV1VV
Va+vrxAQEISEhKSkpCEhIU5OTiUlJSYmJmlpaRYWFqqqqhERETs7O76+vjAwMEhISC4uLjY2Nhoa
Gi0tLW1tbVJSUigoKH9/f46OjmRkZDc3N2hoaG9vb4CAgDk5OYyMjBwcHIqKilpaWoiIiBUVFXNz
c5CQkHZ2dkpKSmBgYC8vLz4+PioqKmtra2VlZXV1dV5eXn5+fkFBQTg4OIKCgjo6OlRUVEdHR5ub
m6OjoyAgIJWVlWJiYl9fX3p6eicnJ1xcXDIyMjw8PCQkJFZWVmNjY5+fn3FxcVhYWDU1NaioqFNT
U01NTR0dHWdnZz8/P0ZGRlFRUVlZWQMDA////wAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEA
AAAh+QQJAwD7ACwAAAAAMgAyAAAI/wD3CRxIsKDBgwgTKlzIsKHDhxAjPqzQxlmUXnMw1ZHIUSCC
N/P8BHGChESYQZEadISooNG0MnTAsCFpchCJECsbAriDbo4sVHTUsAmCZNFJKQJyLkTgrs+yL3NQ
lVEjM062ZHgeKFU4wpajSLD8fJE1J5umGAW2Mkwxy06ur8siXcOh1uEFKqSO2enjiMqQug4RsAoX
J6+dXQvqAgDAEACcTJhWxQkHiLFaAAEEBFgIolcryKt8AMYswIABywcTdDHnqpU6Zqi3AihNoHbC
RNMK9TLnCQFggQIIFBgwIKnBBI/4iJrGB8VvgQCGH5h+sEe0W7r4DHs+kMCBBAoUGP8nWA9RrWi1
MHCHHh7BggQFI3DrhA7Rk/UDEyxgwL/gDnjwEEKIKvgJREADDVBAgQEENaJNMBByUOA+AVDggAMP
wDdQGtwUU8wzBEy4D4YRRMAAQeukk84sr4i4TwMTSCCBVgN5Is2N2LjYgAUWVCABQY9kI4UUyOgI
wZEQECTHI0wa4yIFF0R5AUGjyHHPPZy4GEEHXE45EDS2hMmMixWUYKaXAuXxzDNReMHghCWEIGcF
BJERyjzzjOLBhARkkMEGG9AoUA2jjMIIPj1M6IAMMqSQgm8DOVAKL/LIA8eEIYggwgkpbEYQMd2Y
ss47GeB3gAkmsBDDngX9sE4p7yT/I9p6H6iAwQwmqFTQANQk48U50JjA3QIttHCDCiLENlAd5zxx
DTR5DPBbADPgQAQPLfx4UAHMkDPFOMA0oWxOGdCgwws4mDDuQDiwww4wlwiTRF0loABDDjS8QMFC
7VQTLxq7WLFVCFjUgIIQOUi40ACgCIMGFHqkcYW0HAlggg0/iGGwCp4u9AA2EKchyRmAlBpRBDWA
sALGYryQlkMVcCHyGc5UIkgVaC7kgA5WjKGIyjbkoOFDDvzCjDWWlLOJL5w0QUMEHQ8UQAMn0HLK
FnVY4cIaO+hAcUQDxFIJHHkIQsw2hihzRBaxjGHDECtYocQV8ShRhBE9JGGFIiaMacfRDEcszUUq
oFByxC+NuBHIIWS0A8QbVcRixtV12EDnVgRgAcg2qeBBiTE+JL5440CoUgUTSrThQqe/EXDDG8Yg
A4gPSyjOeBN7qHKFEkN84PdzCojwQxt7/JHFH3soAcILJXzt4nMBAQAh+QQJAwD7ACwAAAAAMgAy
AAAI/wD3CRxIsKDBgwgTKlzIsKHDhwIDDECgIADEiwgrJMkzr9aqSH76iLLlbAxGiAvMMIrjZw6q
MmrABHGChEQYEkBOMkQQCFGfSLBayoIp08kim4Mg6VQIggo9O7kcBf0ylE7Ro2H0AVt6EIGlTHFI
Hcv1c9kyV4+eoHnlRQo9OtxKcC14QZ46TKviPKVn65CMAQYJOLA4dyAHOa5aZcIUbtWUGwAKO7xg
q1CvxJm6wJD8MIEXPqIsuzqzgPNDLtFugZ7mJrLphjsIIap1S5e41w4L4CPUaTY217gXAgmGC16n
bgmCMxQwr5i2YPA2KxcIADjBO+lmcStWbvq+6gEIF/88I41KOioYvAcQwF5AwQaQpNiT9sr7vgAG
DBAgUHDII0iQZMOEfQEQUMCB1h0ihxxddMGBffsMIOEBBhBUiTcYvsOffQMckEACgA0EzDPPeMIM
hBEqoGJy1L0Tyot4oDjAAjQiMNAApoyioyYoHsDAjwwMdEA++BTpBooJUKBkAwMRMEU3UBqDIgIP
VEnBQADsss46peSBYgMTTBDBlQNxks+Zwmzo3QQStMnkQKp4cc4512hgnwAQVKCnjQPp8MQ15JCz
hn0IXKCBBhCEKBAF9UwxxTipWIebBR2MMMIFklLCDjDVvPLBdAWUUIIHHUxgkBDVXFLPK4FMZwEH
H3z/UIICBg3gzCtoUKNHCsElkMEGHITgAUIgUAOFHsPgoahkAIQgQwq/klkrF8Ok4Q4zVbx2AQsi
nCDDpwlhIIkkZ1hjyQ6cVYCBCSzEcAKfCTFxhjOWwLEJLYVB0MINGMzAAgQMFaBJJXDkIYgvPah5
UQAbvEDEvhhsIClCFBhjsC9cpPJHCBg1wEMOOjjcgggKLySBDxhzYogyyNRhZ0MLYFDDJEKA/IIJ
BVxEARkq40GJMb8sYUYLD4g3UAAIfJADLTYMUQMKMOTAQskOEZAEHsocAYgPS7gRyB9XWDEEDDQI
8YMLd4yhyA60/CAGzRsYjZEIfwDdjCbiZPFNIp+AX3MFE0q0sUUdVrgAwgpN6/CAZALQ8Ecjbmhx
yDdN7OE34G0YUccdLqyxwyQeyD0XACz0kMUhZFR+uRJFGNHDHWvQAIF70w3AQQ4utBELE0X04EIN
M0CQM4oFsSf6RQEBACH5BAkDAPsALAAAAAAyADIAAAj/APcJHEiwoMGDCBMqXMiwocOHAgUcUIDg
gACIGA9aWOMLX7BpmeKoQzcPjhEJGR8i2FKqUJxjufpEWvZlDqoyasDMiQJkQMqECcikU4cpXBx6
dmTStElHDZsgThZhMgbgZ0EQ93qZa5Vp1dGkM2uiavoUySISYUxVtZqASzRR03q5IhpuVS1b5HZB
efKoVRk2TpCgHcQG5c8K5Grd4jOtkLlejJps8FmQgIglUoKg1YepwE8OozohirZYFxQVaxUCEPJk
mboxPyF0w0VIdDRGQjIi8JzyQL1i2mijI5bA6k9j6WYBx/UntXGIP6RIozKLG5nnKQE8ySbFHhVK
2FMy/5HzCFK2KQfCYyRw7p6cLo9yqMcI4pknW944zce4KVSUZ1GwsN9DDXTDyjzznDHgQ0Lgwwgj
oxixoEOfdCMPL910MGFD26xjiinVXLThQACUmFoAabyj4iYjkhjAiwEMVIAwXniRzC8tChSAAAYY
IOI+A1zyxJB/5LiPAAQkSYCMr0Dj5HU5GlDAlLztQ8Aw47DDjhtGEnDAl5TtEwAc1VRziSFGDpDA
mmHuc4QwwrxiiQE5UoSAAm0qgQY11OhhQYsAMMDAAgtUuY8Ku+yixzBDtFgABQ00wACdAzFgTRru
SOJDiww44ACkBrkhCTNnWKLhhAZMEMEDDyxgEA7WOP9jSSXgbNiABRKoaqhABRhSCRzlYLPBggVA
UIEFFkSA0BDlbCIINuIsuZ8FF2hgbHEHEfALNr5wsU0S+z3gQQcjXGAYQixwwQUnhuBRg3oOhPDB
uCOkp1ASqbRLyREoYPdABhvIW4IDDBHwCR77AuLDDpRmBIAGJ8gAcAgQOMTAIUco3Igm8XigWwom
xHBCChl48CNDESTySzNLiBPIISv82ZACG9ygwgwsiHBCCNI+xAATS7ihRRbfJLLHGDEw4JxAAByg
AQY64MDDDRiYwMIHJz9kgA1D/0FGO3uockUsSfxAg8080DAJFpMIQcMLRLRwswZLY5RBFUV/AsQb
VcRfYsYpPdwxxho72CBGDSjkEDUPSat3AxN7gPNGPLEUAbjghNswBBYowHB2BXUbF0AGOzARjxJF
GBH4GIrsQMvmQpgQQYwbDtDBDViA4IIiINhQAw4ZPNCzkToK8OJzAQEAIfkECQMA+wAsAAAAADIA
MgAACP8A9wkcSLCgwYMIEypcyLChw4cCAwxIgOBAAIgYD04AAcqLlE66+ETTxkjQGAsZHyboAYzQ
tF6u1GEKR+pYrj6RltFjFU9ByoQF9niqdYvPy5gza+ZyBGvZlzmozPnw+ZPgCl7wOiGKpktUIXMy
adpk6ueLrDJ01NxqU3VfAkrctOEihI4oH1HFGFWTlGacJz6O/EAtowYMmyDUDqSEQI3KrGLBsnby
AoRDAYMHTgSS8yXtYSdIpJXA+OGJFGmOi2mrpKIhgBdewAQBvYhELw4PLUDrAul0uicwMu6Ah6R2
mEGSHBZw500ObymUqGZkIIzEcX16HGp65ql5l09tBRr/cqLvWIyGNeaFitJ9T/iBMdZEaFgAzShW
86I0e5/SiDxejIyySwL8YTRAPaZ0Iw8+PBSIkRjvlLKOKUc4iJEhXiSTTzIpWPhQA8A8cY4X2Hj4
EBHQkEPONWOY6FAV44wzxTgXuNgQMtUAA4w7BNi4EAB51CMkKD4uRIAzaKDxSiBFKlSAM7tAAQUQ
TQJVyTBYqlIlQgZsIsmXiWx5EACgnGGNNY1UCUAAAQAAAEFZWGJJJakI0KQAeApw0UBJwFFOHoJM
0CQBBhS6p0AmbCKIINgIUWQABRRAAAFvDoQAJ74Qw0WYPhYwwKeXFbTHNpykAkqNLgKQQAIHHNBj
QTek/2IIKHgYYeMBCCigQAJ2FkSAG3hQgowxH5goAAMMLIAAgQfBgMwRxvwCzqsOMkBBA8lSW5AA
ZADiQzNLrGAhAg84cO0CCp3QTCNLuKGFDgUqIMEEEZRrwEIraOJuFn/g8N4CEFgwbwTSJWRAEYHw
S0YTk9ybEgAOjKABBBVIQIFDC1Txx8KfAJEEBBkdcEEJHUgMQQSHMuRALE10rMoVTKDggEMDQLAB
Bx940MEFFvT6EAJ37AHOG/HEYoYRYnCAQMoCAVBABByIcEIKG4SQswRMOxQADG9UwYQSRRjRwx0u
/KADBifIcIIJN7SgwgwsiCBDBhyE8EB4JSRh9Clb1F1hhQsgrPADFpPAQAMOPNyAgQkxTF1CwVUJ
IMIdYicxhiIg0DJ44TS8kPjiMWwws4UCeICCC5fvoDnhQnRORAszhNBApS4WYIEILwiBghAwvNCC
CB004LOYa7YZXkAAIfkECQMA+wAsAAAAADIAMgAACP8A9wkcSLCgwYMIEypcyLChw4cCAxRQgGCA
AIgYDz7Y8atelHS4CAWDlG8bCAsAMjokcCeNtGCE0NW6xWdaL1fqMIXrJa/NApUKq/CiMqtYMHid
Ztbs1SrTqnCkjuWqJQ4B0IJDyD2SIi0dN21IEdGcZq7pqjj07PRxBAvenav7Bmiyda8LJHtEtQWT
c03SpnJQeAXLFDVXn0jL/CwbZjVjBWtRPHmTs1XaqyoZCBg8kIGMJ1Jsl32ZgwpSCYwdhLGaF4Vu
Fy4YGgK4Aa2PnzmyytDhI+KhBDS8GLEK9UwYjYxYuMlCRUcNGF0hGg4oZ6pbcFaNCgBdAKWMczZB
siX/YPgtX6nqvKrA3QfAkBrwTpBAWfjimhfz6+KtH5gqSPxFJJiR0ADOXPOEF8lkkdJ+7AmDBIBh
FJKQC1NAQ84TlhzA4EAHoENCGIMsEt1m1gDDzhTssLAhQTsEMYg+umhnUA71XFINMG6sWFAdtkCT
AkK/vPJKPa98oONDDDADBTVo4LHgkQxhMMwweuxiA5QOGSGJO2lIUgGWDWlxxhnMEKMZmAoFoIwl
zjizBJoLGcAJHHSqAqdCBWyzyZ5F3JlQAYZg44svp/iJkADIcMHFNkoYehAAbqQiaTuOHvQGKHjg
sUQAlRa0AiWUIHPEBJ0SJMIRxgACCA6lDqRAIz74/9BMo60K1EYjS2jiBgRoBgDArwexoKsWgYAA
ZgACBKDsQQF8EkgWh3zTAZQAEGCAAckixMMhf5CRiBEX6VhAAQRY+6RBsSTSRDt7CKEjAQcMMEAB
BijEQTufAAHOG7ExWAACCiQQ77kHCQGEKm9UwcQM+w3AwAIAJ3CmQgK4cIXCShRBRLgqKeBAAw8j
oGFDCNTBRManbPFDBBkR4EAED1AAsgIEK8SAFUW0YUQdd7jAw08NuQyBBRNE4AAFC9S8UAI2GNFD
Ela4AAItOFxwgNIEMFBBBxdoUIEEEzyQtEoCtJDEHWOssQMtQ2CBAg4sbOBBBx18sEEGHHzgwQga
DGotQWNXVTCEIiCsYMMQNaCQgw5EtKCCCTGckELeJXCtwQQyridACFjQ8oMYkwixeOOPR57CBiGU
4AEEgG8oQAUtoBA6DS+QPgMLJ8iQQQgVKAAnAQ98EIMKN6gwQwwZeDABApx2CoCv+wUEACH5BAkD
APsALAAAAAAyADIAAAj/APcJHEiwoMGDCBMqXMiwocOHAwMcSFAgAMSLByMMCXTmnadHkOQwqnZk
xwSMDweAgMOqCyR7VGYVw0UIXa1bfBA96aEAZcIBbaCF8uRNDiQp0mTStKlLVCFzrrgdSuCzIAw0
+EaFemZLziOkSgkhitb0aatMq6goAlD1wLd13XgxmhfF071Ho9BgM5Sq0jVI0ab1cqUOU7g4cST1
xBjBV7JSpuRlncesCIeDBTbs6VYIbRxSx3LZ8nBRw5knXvJB7oZMRMMAKuplIkXPTh9HuFI8jFBp
CjnU7yS1wIgim51cjiLB6jSi4QBDwMZNufYkywGfC4b1Ue7ni5wFDIEI/7sUfVybqgIBIIvUfY6s
YQtV7EIzvpoR9AMBUPLjHlWZLQkVsM0uUKDxSjts4ZceNf7RQcctixlEiztp6LELJ9cpOBACwdCh
Bhhg/ILZNsxI4o47MmhY0AplgMFGEJlQVRAPllhzBjNNqGjQOUEE4YQTQBj0BxyVWFJJBzoWlEMQ
SCCxiCcFIUBMHuWUI06CSaYnxSIkkICKBgSxgA02gmwySZYF+UBCGGEMYgVBinBBDDFcSIAmQSHQ
McggSJhAkCqpcMLJLwLcSdAV6mQSCEEAZAEKKIZ8YmhBBBgkwBKUUKLMfZMqRMASR4TqQqcKGeDG
L6iuQWpCjTbi6purIv8EhCaauGFGrAj1oIUWgbSD60EoZHHIIX888GtBHHzzDRmJYHAsQQns0UQ7
7cD6rECKfLIHEKqcdO0+GYCjyhtX1PDtPgK0cUUV8ShRwbksxMOEEmaAUOi1AlhhRhFtGMFDkgBg
udAIRZxiRA9JpKghAAIEILBCPGyBsBUuZKBgAAQY0PDDCAmARRIUK7IDC/eiZMAABWTcsEMH/OCC
IiCsYIMODWAkwEQHoExAyQ0pgEXMNgyBBQonRLiQAAkwgIACCRyQMkYH0EDLD2LUgEIOL4ggQQEd
J9DAAxQ0sMDSTvsUgAhiYDEJDDS8QEQLGJzwgQYSTDCBBRBAYMEEDzhm0AADCyhQKXoRvCBEDjrg
wMMNGLAgggwZcFBCBxdoYIEEETgQNgI8VxWABjwk3oIKMzgOueQejKBBBXU/0ADXSQbwgAwqkG56
5B+kvroEr3cqAAMQlMDBBhzkrsEEDAzA8arLYxQQACH5BAkDAPsALAAAAAAyADIAAAj/APcJHEiw
oMGDCBMqXMiwocOHAwUcCACxYkIHQpoIYrcOn6dQXiQtWTHB4sMDWLZ54cWIVRRP97pAskdlVjFp
1OocMJnwwB09yd6ZktcylCdvXbLR5KYNFyF0Xdol4FmQhyVoT7zkW9cN3yijSJWmYwqvE6JoumyB
oLpvAJB67KZcO5esVLdu56zh+WWMC5pQ3II9rXWLz7RpmxCYfEDp1SVg47A+yZPEA8WCATZcmYIO
rahCvVzhG1HRwjYoaIRdYgesUQaHGNzdmha6VSYpGx46MJRGD2phgmJYhBHKnG1M4ah0aDigETNJ
vaF8GsATgSV1mFbFIRVF8cIilqyd/5HkzgrbfQB8YNp+zA4zAApN5IFjydkZF+cH+iDVPpedMQkR
4IMgeZRTCRP5DQTAMLn04UgkuCyA0CTE+CLIJs1Ql6BACKTzICzLaHKQAc1swwUxxOS24UA15LKM
H1/wIWFBGIBiSCqcxLJiQeR88cUcssRjEBPK4AEKKBfsSBAOy8iCCiqhFKRAM0cgQwkQShb0SBll
0BEJBATJ8AsggBjzQpYEuUGHGmwaQZAYzTTjgw8RoDkQC2WAwQYblRC0hSZLLPENfHbuIwA9QSQa
BUFvaCGOOGYUOlA2TjiBRCEENZFFFoGsIalAXiwiah8ECARAIt9888cQn+5zCQmw+v8xowHgJGIr
Fq1WMsggYdAhgKlVfCLsD63qwIY++pBDUBtAgAMOfq3SkMchBRC0whtvXFEEoa0aREQV8cQTCwPd
HtRBLLEoYUYK5Ro0wClFtNEGse0WhMUpRmxRBwX1EuTBFj3UkQQO/Ua0wx1WjKHIAwULtMEYLiiy
BgqX9SuAGGuAsAItwjUswQor2PCDGCU0vE8MNgwhRg0oLFdwAESsjIIQNIRQcbsFvDBzDjrgEIN3
FQXArUUH8MDzC0S0gIEHOzUEgAEGCCA0VQWYgHQLKmDAgggeNFDqQU8PcEABBEQ9NU8BlMDDDRjM
EMMJKWwQwggWOMDAAgsw0AADCChicMAAZEs9tEkNiDCDCW/HHUIJHWgAgQUTPEDB3QokMDYBvyYI
wAQyiCBDBhx84MEIjkMueQMLIGB5ATdrzsAIHIQ+ugYVmO7A3ggM0LqSASjggAQVQFDBBBFQgMAB
BpicYEAAIfkECQMA+wAsAAAAADIAMgAACP8A9wkcSLCgwYMIEypcyLChw4cCAxgYMMAAAIgYDzYg
csWQO3bXkl2rlufbkAcZHxagceTVFHLnkpUyxYvRvCie7tlyNmZAyoQFduR5VQ/YOHJPZNK0GcXW
vS7Z7DECl+BnQQyphu1CI6waO2hJ39EcNe+ZLTmPpEhLx83UDqv7CphxJimNHmqvLrEbB2XTLy3i
KFnL560LJClUZhULFsxQ1YwUxFVydsbdMChQDIHQYOBgCCVQ7LHVhosQuicaMErwsamcJWvMmP3x
cJEhBmyL4XVCFC3KhocNNPkSlAeOpSMpMsJ4t7vWLT62LjQk0I4Tl+F5lPhMeYCLcz6iCnX/U8Bw
DChD1omtgLsPgJZb4XuZy7NQxBFleND/YD/QTaFerrTiyhoJEdCEMUdQgscd/BFUSYCZYGIPeQe9
0MwvgBzRRGcNCrSALRGuEk4WBwmQyBKN+PBLCB0SJEQr4cRBCjwUEiSCOG5osoQVLRbEDin0HHNM
GwYlkUUggKXW40AYxGFHLrnwUlACifxxSBanLElQALb00Ycj4VRAEAeJJELGNypoSdAfjkQCCyxj
EKTDJ+2004QDag4kgyPLLOPHJgSBAAQQezCR50AFFPLFoqwQtMUbqqjiwqEDQTKHLLKgI4BAALRR
xac1UCrQE6iUukoBAglQRCyxMEGDqPug/0HHrHYgkOoWZuT6AqxogKGGGpFQCEASpxSbA6xesKFs
HKgKtMMWW/QgBqzZOOFEENMEMBAKSXS7Q22HHoPEuM8QxIIVY4zhQo1qzkACCYss4gxBFrigyBpr
lEDpFWH0S4IZBBWwAgg7rKADpSDoM8ggYCg5EA4r0GLDELbmKQA7i4BxhEEV/DCEGFiwIOoIEhwU
AAxY1DCJEAzAitAIk6AgBAwqaOtyQQEQAUMONLzwwc0GOUCDDi8QwYOYQBP0AQ5EtHADBiUnHZEI
TmMwAwsQgAs0ASJYzYIIJ5RwgNRxycBCDCeksEEIEzQLtAEhnCBDBhx8UEIHEyiwKUIAaGvNHwAW
ZLB2CR6MoEEFEjzAQAIDFOA4AQQIEIDf/CHQgd0dXHC4BBE40AADCCRwQAEEGDC5lgAwcIHhEFgw
QeefI6DAAQOULjnlHSbwQAWuP+A56LM3boAAuPcIQAEKLMAAAwuEXjvxZLcYEAAh+QQJAwD7ACwA
AAAAMgAyAAAI/wD3CRxIsKDBgwgTKlzIsKHDhwIBEBhwwEAAiBgPMsBQxIcgSVDQUGOWCggMBhkf
FuARCE4aPdReXQI2hdy5ZKVMlfK1Q0DKhASwUILj7Iy7YVBk0rx2Ll+pbrxGzbsWK8HPgiwaYdsE
x9IZSUhf1VvqJd86efhGhXpmC9qQq/sI3Em1zZegPJWsMZNUTpmWRGQaCapXSh4jVlE8eZPz6JfP
jAzA4THEicvWPJrESCBg0ECHHpZYsb3XBZI9NBAwPkh0hNLkbVyujADQMAYe0pCkSEtX6sPDBXt8
AGoNKsuGjDSAZbNHZVYxU6kZAjCzpJlwZGM4/6TUvJg2XFOsLv8cosXNkkY+UMAV2ITbd0Kdti3k
cCiLFnGaYKwf+A0XfESIgJCQAUp880cWgdCyH0GcoINILbd4cgBCGLTTBBnfKLEgQQnwEs0tuvCR
yEHT7fFJO4l0sCFBQkTDhyjT2IOAQRuoAg4Qe/ywYkF6TFNIL+b0YJANVVzxxhsS7EjQDKKY40or
yRRUgBlMxFPFGkoSFIA8raiTCR8WEDSCGWYoEcsJWRLURCaYrLKKgAOpcEobRbSBUpoCcZBJOOHE
wQVBk2yxhRFj0IbnPgd0Qgop9HRDEC11RIrFoQM9c8wxdhRz0T4AgGCFFXfgQKlAU+RiKh8T7iPA
Di60qsKo++z/4sisrSggUAC0gKDrDLDuAsuv6ixwqxgrFPvqqNf4oawrBQwEgw0//CDqqF3MMccX
hDy2TwtiiIFFDobiWYArqMgiCysEcVDDJJOgMAClMchSxrzlEOQACkIIAUN0eC6hhhp00GEEQQbo
kAMNOrBAaTZsgAHGFxMUFIMOL+BAhHhZwgBGEEGwEYpBD1jMQwu+pekFEkg44QQ4BgUwQws3qDCD
rUrSQgIJiyCBiXYFSaACBjOYsEG4G54TRhg3G4MQACeYwEIMJ1Sg5Dv6DBJGIcIixEAMIpwgQwYO
7KgDLPqUccpCEJyQQgYbhNDAjhMMUbJCAHTAdggfeBA2rAYJc+AB3h50cMEEPPMtkAEXlNDBCBpU
YMEC2hougAWMQ2CBBBE4gAABRMPaAAQVSDDBAw40sAACBxRgUQCdZzlABJg/QIHpCiQwgOoCbDrq
AQ6UzsACtd9uQO6t40mAAqcrcIDwxBs+kAAEFFAAAcOz7vyhAQEAIfkECQMA+wAsAAAAADIAMgAA
CP8A9wkcSLCgwYMIEypcyLChw4cCARgYUMBAAIgYDyJgYYUMMmKb4MAh9osJjwYZHxLAoAoPMUF5
KjljlkYPtVeXgNXDU2NAyoQEaARSBooTMWx54MysSU3YJXZTrp2D0sPnT4IyPv06QglUKi7YQi7d
hUZYtXHQnnjJt24XiqsCf2hq5MMYMjyGtnFRJg5IlTd/lDm7NIXcuWSlTMnjJe5AygVGAolb0mwr
sk8wJAgwaEDDGl9P2HbjxYjVGQsYKcT6k0WLG8p1LjQEkAHQOtKsQj1jV+IhgjZNyLAWd6U3xhZ6
Rs2L4skbNAgNDbjY8yn4nx8XUyZYwtybnC56GtL/eAMOSHUccAWq8t4FkhRACzsw+asKSIv0A/c8
yibFHpUVCQngQixMxHOFEPgRdIQ90lAxSykJICRDG0UoEcsYBiQ4EAHkpDNLMdoAcZAAaxhxCoUV
aEhQDh8Gg0sUERY0Qh09bGFEDioWVA4u8BBCSBIGwXDHHUnUQUGOBGGASyfooHNJQQWA4MIYVtSA
ZEHkIFJLNMFIQJAEIKyhiCIfXEkQONHcoosuO2C1wg5wKmDmQBtEw4cooihDEA822EBLDQDMKVAB
6UxTSCHkEETDEIyiJ6hA3Zgj6SPZAQBDDZiy8KhAaLTiKS5WBUADCqSmsOk+1mSiai0LCBTACznE
/7rBqZKsYustcu4DAA869JrBqezEIWwtVu2DAQ44ECHCqc/Q42w6mwmUAg88tDDDpgPUYse28hB0
wQ0qqIBBAY/KYEcf6ApCEAMYzDCDCQ88eggskUTiyBgECRADCzHEYJyZAXSxzDKwkJIiQSWIcMIJ
KRSLJA5+fPGFH6MYxIAMKaSQAWpmnoOKLHN8wYRBAISQwQYcfOCwhiugUgYqqIiCwEEUcBDCByVA
l+MChKihBh1lNIMQACOU4EEHIxyp4itBsAGGGrXkelACR4+gAQRSp5cKEk40rcYpC1FwwdUVSBAj
XHiQsAjXQUDRUAQQlD1BBFlnhAEJYaiNhBQzM28UQAQSzO0ABQhEm9EY+gyStyhlOhSAAxE8QEED
DCBQQKAYSWBH4oVoChEADDhA+QIKJDAAAdk9xII7lnjw0wEMLICAAgecboAAmJ8qkAAKlH5AAQRY
lLvuAk1EEQECBDA88a4acLvyzCe0fPSPBgQAIfkECQMA+wAsAAAAADIAMgAACP8A9wkcSLCgwYMI
EypcyLChw4cDAxAoIAAAxIsHD8iwwSSQD0qglAH602MGA4wQRWxx4wMQMmWGthETlKeSNWbOGuko
gDKhgRuqAolb0gzQEZgyBZWzKSnNLmpwFA3oWfBDkUTfsmjR1OjXUUOcZpazdEbSMChohFWzRITq
PgE5gHxqQuZQIDeNfGgB16aHkStaODlzp4faq0vAxk1JdAClAhBXVAFpl+hPliJEJhw0YOEHMihq
2U25dk5QhIsLxjCp8gbcniYrKjQEUELLpSnknnjJN2zEwwNriihZ/abHBYwxyunOV8oUFNkMBYgx
cko4kxwCeh44lKx5N16Wpi7/VJHEb3UTbvcBiGVKHi9Go9wstODCSvktMdIPZIKPEat5UWCRkABY
KFLfHS3oR5AmrIQShSfjJIBQCTuAsIYLWGSnoEADoPGMLd7cw8RBAaBAywo77PDAhgThEKIcXaxz
kAVD/GADLSqwWBAnXTwCSTZjGKRCDViIMcQCOhI0QzZSSGEPMwUZkAMKk9TAQ5IFoSENFVRkQwFB
DuQAgxBCaIAlQfGkMws33KxAkAc60CBnY2cKtAE3xWijTTMEyYDDCy+0YFGd6tmCy6HUEMQCDzwQ
IQKhA01BCCGdsDLoPibcoGkIkArkDCKgQmKAQACYgMGpvnWKTTSscqMAqTGY/yDrcZ1uosutwbwq
UAoxiCACrZDqMY0ooqTDk0AcnCCDDB50uo8pvfRSyD0BDHRBChlk8EGnBXDjiivmPEFQBBtwwEEI
BECagSvqqNNKKgQpEMIHH5SAJKGJrIIJJpmAQFAAHgTcgQSEAhBKHOGEMw3BBE0wwggXaJDumSrE
QQ8pcZhyqUAJRKwBBA3UOYUddhxDzykzVlCBBRKMmmQNdvSRSy6E6FpQAixPEEHIOiKQDiyRONKH
Fgk9oPMDDki4YQBQ+LEMLLDAg0BCBCBNQQMMHKsfKHPM8YUfkVixUAJXM7AAAi67BQodqMji9TAN
IWA2AgockDZGCrwChhp0lHUhSxf3LgSAAnQnMEABdz8EAjpBsLE3HYh08BAAByRwwAAEGFDRQxNc
QwISTjQORjQnYFTA4ZkHsLFCAHgyCAmLgB6EFJyiJEDmAqjuUAJfDBIG7E5AMTVVAOS++kK26PP7
NG2weLxCJZSCyxGBO2v99dgrFBAAIfkECQMA+wAsAAAAADIAMgAACP8A9wkcSLCgwYMIEypcyLCh
w4cEDQgAALEiwgMcYNy58ieLG3HfqoCIocDiwwAbdqhqQuZPIDdLfABChsfQtlRNeBQwmTCAiC1X
VAFpl8iluJjGaKba5ktQOVA/BvAseMGFmVhV3gD5VDTQUR/GKIFKxQXbJjiWrIHCMHVfgBs9ThVR
Eu8KuD1NwJ1ysWJND3CNUhETlKeSM2bu0ryRavHApDt1trQxwySeIhMUKBYUMEFIlk2WzkhKowcK
HgcVE2BxYSVJDyNtUERw2OGTNXel0QgrB+FhARQgFLFOQkuCxRSgoOi+BKzShIYBXthYEdzFDQE8
B+x5xXzcFGKMFcr/EPNjOogMbfcBqFPNO7knZBY+QFFDzBAbHNIP3DLl2hMvXuTQUwtC0IeFCPoN
BMAf53iRzztQ7HQQBDTkAAMKRASQ4EADWPNOKet0Y8RBAajwgg4VMrAhQSq8Y4o8vExBgEEO8EAE
Di+ksGJBR/CCDyOj7GDQBje0wAMPCexI0Am8jMLKPJtsZgIGKtwgg5IFWRNKFFEwgtpAC5hgwgwz
zIblQG0844kttgxBkAUxxMACCxKeuc8H3txzjxyHENTBCYCiZ6dAAnTTxSOPWEJQCSk02sGgA+2S
zaTnEPTBBphWAKlAvthjjzSeaLZPCSGUaiakyqSjqjcHDNRBCbA+/7DpPqBwY+sj4V3Qwa6yblpO
MMFoIwd2AllwwQUanDroFPA0K4+oD0AgrXGQFiAHOp108gpBCFRggQUSEGvnBojUgggigBBUgAQT
TBBBeGcCocstt0QDAkEARBDBAw8sMCgA74jCBx+d9AqmAw5Q0ICGZ2IgSiHTTDOFQQQo3AADrZ4p
jCvm9FLIFgctwMACCCjA8I4ouKJOK65QURLFCJScALwJItDFKphkos43CSXg8wEDiKtfAGmQEkc4
q0iBQE9AD1AAASenB4gdxxiNyRoLGfA0ARLpB4AxfeRCNT3WiJqQAVwLEIDZFiEABSyRONKHHbYs
3ZAAarNdkQ3afG7hB9yOaHMBRGtPRcM5c6Ayh9+wBKPjpgKY0Ew2dIBBRxmyLN6FB7MekgkJizgR
BBhqlIHKF2m8DCkLiwwCOhJBsGH5LT3MKtAW+gwSxiJIOMEGJs0kafs+E/ShOwmoPAMOzbaboIc1
Smg6vJIBAQAh+QQJAwD7ACwAAAAAMgAyAAAI/wD3CRxIsKDBgwgTKlzIsKHDhwMBCDAAsWLCAiNa
2KgT640qIPGSTEqRwOJDASNQ9CiihMkVVXuakDkUyM0STUowCDCZUEAIG3fqGGljxiVMmYe0uGnk
wxiyJUIo8iQ4YdIaF1aSbDlVtMrRb0k1Nft1hBKoVEtYTN0X4MSPFSAUjbnT41SRHmvEoKixw0iT
Jc0AIVNmiBMXYkYImCTQAssQGyuujsGSYUEAgwEe4LiC7CwXX4LyuHFQcQCPvWJ+0FrBo4HDC0VS
EcOWB44lZRIeElCRQwhqGqQrbtC0qZwlZ2cMUWgIQMQLHb0nnbhssoCZSsglpTkygGEHHkSe5//o
sFYgiDPa9UBRtZABhhstiOC4UH6gojTq0aBpkRCAjBkYqNBCCfVFBAQ1aAhTTzkHIPRADCyYgMEJ
ABQ40ABc1HNJNeyMgdAGIogAoQIWEiRCPeyMM0Ua3RW0QAoyyHDCCCUWpMkU0JBzTQ0GQbBBBhmk
0GKNAnEwxRPnnGNIQQF8EAIHHNBHZES+eJFMPk+4NlACJZTwwQcMTEmQFe+UUso6MBDUQAcdeOCB
VGLuM0IppnTTTTsERXDBBSNoEOdABLDDCy/4YEOQBBBooEEEfw5kySiQClOhQBJUYKmWjSozzzyh
vEPdPhNIIOoCjQrUzDOo8lLAQA9E4CoCpe7/44M3ttjCS4MCUeDAriSWyokcwDIy6T4MUEBBA7CW
ugskjzxyDUEKMCBtsn8aMIoU2FpDUAELIODtsGJyQAUV0kgjDkECKKBuAjv9WQU3s8ySDi0FJZDA
AQco9icw2hRTjBQPFFTAAAMUsGqcGASDCy7B7IKZwQQY8CmRZ6DTCSHw1HGQARwLMHGJQqBTCyLo
3HNwQRJ5DK6FCrCiyy3R1PJJQgEEsHKBAMAxjSh86PLMkAfdXKAm5vRSiCi3gBArk42o04orRhu6
9EAIuLMKJpk8LU9JU+9TgxT0xHF1JpDQuHQAPFxzTC7HkCK2PRvEOoAIWsjhCCyO9GFH21H4a0nk
AcaMU48wXmSTiSyozPHFMpE4kgs9Z1Bb4xT6hEECEk6wAQYdqMjyhR+wRKKNC0IXKMsglmOuOR1l
yDKHH7qIQ2qcAQSD+uVOBAGGGmVEwgoTksepgjSff5HLLVFUskVuXbOFALsfVxQQACH5BAkDAPsA
LAAAAAAyADIAAAj/APcJHEiwoMGDCBMqXMiwocOHAwEIEAAAokWEBCSIyGHDRZ0tPZLQwvFhwMWH
ASTwGLJjzZg7PYwUURLvCrg9e1ycOKkwwAUdWIbYaOkCpkyaNj81+XZoDxECPAtSuAEDRQ0xNlaA
KFpHZqx4b4B8SvQtixZNe2RE3RfAAw4dOYRMwvKD1g4bk3QQeYFijRkg7cgcCuRmSbNfa6BeNJCi
xV4aVScR6aCgokEKM7aY1dTIhzFkQChYLCADww3HL2icQOAQgoslPgAdoYRHy4SHBjawmGGah4kF
Fz/smY3HECdNDRoC8HAixm4MHgLwNDCmOCcuvg4VYCghg4wTIlhY/1grUMx1X4I2tVmYgMOGDClO
3CYv0Ab6POXgmEgI4MKHEBxkMB59A7WRBxyVOIPHdgct4IEHJYQwAoEEFeCDJdacwQwtCEEwQgcQ
mkThQBk4w4wkafjCIEEHaKDBBSNEMGJBiaQxjB676HBZBRBAoIFiMwrkwTBQUEPNLwUBMIEEFljw
QJAEAaAMGq8Io0dyAxEQwQRLJgAlQSvUc8kl1fBAUAIPpBmBdF8KBMElwLAzzhUEIUABBQ5g2eY+
BqQxBTTQ4FEnAw00wNqeAhFzzaLMWLYPAgtEegCiAvngxaXCGDCQApwisOKeWeSTzzvQTCpQAqgm
AOSeWqzjKjmm7v8zwAEDDLBqm8bIo+s4mgpEQAHA9oqoM4zgg88rBBlAAAEGCNsmAE+wwsooghAU
gAETCUBpCFFEEUooZBQUwLiOtlmELZ548gwWSQJQbpt6yHGPN6HoSWlBGEDySBdywHEvQthIkY2+
ivxrUA7pUGGPPfIYXNAByXAzS8J0OjwQJ7hoU8wspXhp8T5ZdEIILsEUw6HFAGhRCyIi4yKoxQrk
ocst0bBcqsUwRFGIKHzcUgsrE/4LAAaXmOOKOTvrEgUH9KlsSzMzsEnQACl88wwmq2TSiiu9TPOO
BvQpos8gYSziRBzZPIEGNU/cw4cduRxDSjiYaF3IJoeSd8TYJCxdgkQQbKhRBipz+AGLI7nYQU8c
WUsBwog0OBFG304EAYbghBseSR+Kx6HNIXlTaMYzaiBR+eWDF77M5urIc4oCe0pQhCVR8LGKHXa0
0skom7hgwbuIAkAApAVIfVJAACH5BAkDAPsALAAAAAAyADIAAAj/APcJHEiwoMGDCBMqXMiwocOH
AwEEEBAAokWEBhyEwKBjkpgfNobAmKFhwMWHABzIwEFDyCQsQ2jtUDTmTg8jW4aEEHAyIYAJMVoQ
eUEDBgqYMmkm6XGqSKx4RmYY6FlwwQYTGG7wwKHDaI2YM60k2XLKTKwqb8C14UB1HwALMkSwmKFC
qA4aL1rMYGGCx6Q1PdooYXJF1Z52iWr0FHAhQ4oTMbDeOGFhAACDABakWBHvDZBPTcj8ObXAooEL
IThkiBvDQwKHE8QAaSc6ixZwDx4GgODhQ4gNGT4ouHihzTfbbpbsYQB7RIfeISRcPhlgiJbkjXxU
IcCQAQQNzj00/2grMMeSZj4AHVG0sICFCt8vMCcvEMYvY0coKYuh0MEECRZAMB59AymCjDJ4gKIF
dwcN8EAE/+VG4EAEkAGKIZxsMwlCDDjgwIMMTigQB6lswwUxgIQ4kAENNECBAwiIWBATxGAjyCY8
GHTAAgww0EBFMg40Ajab5FHOHwYpgAACC7wWJEHiwFGJJZuUNlAACSSggAJTPTkQFs44Y80ZMxBk
wAFoHjCdl/tYYA0zkkhyipkFDDBAAWyuiE0aaQyzhJkEBNplnvscscuhxAC5jwAGNMoToftkgcak
1oQ4kQACrJlnO8J0mgaeAgEgqqZ5NlHNqXocAGlCbozj6jAqrv9KEDHkQAONNaTKuo8BaJzzxBOg
6GrQCF4kk4wX4AhbUBLrlPJOPjQoSxAc3ZhiyhMOSCuQCLzgw4s8xGgrkDKsjMIIPjaIi0MUUczD
yjiqSkvAJbZ48kwoZohrTBf3eGMLMPEq24QUkHQhxz1DaJsIFdIQ/EgjFmVgTBOPXqSAIcXMwrAU
u1j0ASz6DFLLGhcJsQ48wWRMRTIQWKRFyGGQ4IQXOTQEgAruIIIOIbhow807IVx0yiAxL4JEEHRA
4oYIJhU0QAafmKKLLtEg0gk8uADT8knUkGC0E0GAoUYZfpgjBzR6DDNOKLi40kov0/BxSy07g+Jk
T0qIAjYbYNBiUYYsXywTSR920BPHKpm0Yk4holDNyg4ELmBMK2LTgQrggveRyzGkhIOJOq7A/UgT
AROIwBWhOILKHIEPvnnnn+vyxBZ3PwlBHeWMQkgh5vSiCxWlbLOGBMoGsKMCA1R8UkAAIfkECQMA
+wAsAAAAADIAMgAACP8A9wkcSLCgwYMIEypcyLChw4cDAQQIAACiRYQBFkDYEEMFDxwvcKjIMKHA
RYgLRpxgMUNFCyIvaAiZhOUHLRs6NAg4mRAAAw8bUpyIYQLDDZgyJ4mxCULRmB0ZAvAseABCiRAc
MsgQUfRoTCE1xNhYscaFlSRb1oyYKrDBhREePmTdykJECg4hNohoIeTHjjVj7vQw0saMjp0XAziA
oGFEh6scOjgwaRBAghJCxqA9VUQJkzUKLCqWUIEx3JIOG+gw0plJlTdbGjwE0CDCBNIQJAy4aGFN
rNfggLRB4BABhQe2JTCYKoDGFVVAPjWpU3HhAAYNKDiIkICtwBvRm5D/+SZmoQAEC7BTOOB9YItE
ZP5kCZRB4QEF6Bmwbz9QzKEsWogDDgEICXBAAgoo0B1/BDEhjhuaNPICQgUMcMCBUjE4UAmaLNGM
D39kSBAABBRQIYEaEmSFD78AYgwGBgVggAEEoJjiQBoAcgQylMQTowACGIDYjQOpQokyeCCzYEQT
UUQkQTmAYkgqqcRQGQDVPSnQBKlssw0XimjJkADGEOOLL+2IyVAWgmyyyS9ZqnmQKuWUAwcnQ8pp
UCyW9OkLZXoaVMUZhG4CaKAEJeKOO5IIYiOiAx2hxzDDbBMnpARUQg0UUDQDaUEVoPHKK2iY8SlB
IFRzST313HCqQABs/8MOO8BAIdurIUwBzRTjUPKqQD6c8wQ50KDwqwrJJOPFOXrsh9AFQNBy4wBp
rFNKPsnUoVAKfegTxjApisNLN6aUosehBhmizyBhkJAKg1ewwggv8pgCw0KasEvCIki8650qUYQi
Lz5aMGSAPfsi4UQQ1ITGEyDeeBIwK87sxlAJoigcBBtqwCOtRTCM84gcEUdxiQUPiaDLxmCoUcYc
T7QgokIYCEKFPdl0QTIwHlhUghQt04GKLF844s0fGzg7EAEbqDJOMdykI40UkHSRBsoXKQAFHWXI
Mocfy0TSBynohHKJNZZAUYoU6KBDCC7FzHJzNj7kedEWtRDtByyO9GFhBz1xrKKOK71Mo0s0iHSC
izZR52MDfwkswccyfOdyDCnhYDJ44Xzckjg8wbCiypL8LWAGI5hYjrnmhE/TeS3aoFGHAWJWoAgx
pkjTSS2daOPNFMiA4MCnAdyHQAF2WxQQACH5BAkDAPsALAAAAAAyADIAAAj/APcJHEiwoMGDCBMq
XMiwocOHBAEAgEgxYYAEDiCU2CDjRIwTGUZQMFAR4oEHFzx8CJFBhggWM1S0IPLihYkJAUoqPBCh
goYRHUqE2JDiBEyZOHTkEDIph4ecOgkSaBBBQgUIF4IOLXqUR1IYKGqI+YFCQlSBByg4iDDBAoSf
HjxcgODTQwoMOGjAmIRliI0dIGYI0JmAQQMKD6pWiICApEEAAyqomDR2BQhFY2ocoAjgAIIFhh08
WOCYIYIZf9e4sJJkxQKIAxIo+MyAdEUHKFYn6WFkTQKHBgYckI1gQFQBKnYbOVVkxeCFAQgUEJ6g
dFQRW9oUURJLB0MBBghI/39+VmCM7UziVSmhEEAA8AbIlxeoQ/0bVUasF5QY4P38ggLc8QY4QOyh
wkIS/WeQBgV+0kQV8ino0A9NJELGNydISFEFF/5xSBIaUmREFoFokcVvITrUgjhuuKFJCik6FMES
SzTSiBgxOnSIDz78YkaODVVhzJDfAMmQEZQkuQRURiJ0ByhQGqNfkwTVwUkqqSBDAJUIMcHFl8gw
ySVBWWBjZiMTjUmQAKDkkccmiahZkAVwVAIHHHcchMIMTYphjTXOWGJCQQjIoQ8J7gAJACCSMHNG
Oa8RdMoglJIgRI4epDFMGu6IY5ASYYRBAgle5BgINbvoMcwLBiVACgmLIP/hBAgpioDGK2hQs0kB
Bx0RqxNBEIKiggcIUs0lwrxC60EI8AEsG2BQk+Z/30zBDjCX5MErQkWAAa0adOChoBlPkDPFONXw
sBAUYIBbxhx4TKuTEsl48cQ10LRjWjZloCLLHF/swoBOBYhjSin52OuLcQx5gMi/XywDCxWTVETE
LvjIc3A+kkzw0AmdfOEHLJH0QcoUGMibkAl4RDEPI7x0s84wI1DUQRfLROJILnbQg8k87WSwbUEb
MLGLHN48EworMFficUUISJJLH3YcQ0o4mKhTSDrruOMLF5VUEwUV9kDSxT2euMyIFgzrNEYxx9AT
xyqZtGJOIaLoUgs68ARYw0060mTzCNLPVFPDfwoEggvWdd8tyi17913MLNJIYfY7sWwmoQJGvMOH
K71Mwwfk6BASzORUPOKMIm2nKMEOeEDjCRWzzCIHPrssQUsEckaXwAEEqExRQAAh+QQJAwD7ACwA
AAAAMgAyAAAI/wD3CRxIsKDBgwgTKlzIsKHDhxAjPgRAQAGFCRAujOjQQcMEBAIkQjRg8cEECxU0
jPDwgUMGGSJEhKAAQKRCkgsaUDApIeXKli9FsJihwkSFADYLAhiQQMECBhQcROipkqXLEzFMYLjB
A4cKB0kFCijAVAECBg2kRnhAYaeECxywmlDRgsgLGjkyIBUpwACBAQcSIFigoMBegwUebFDRVUcO
IZNaDJAIoC8BsgcMO0zAAQcNGChqiMmRICKAAJYJ1Iy44EZoMT9soJgM8bSAwxIDyMAyxMYKEDBC
1l4d9oNvEGtcYAgbdgMIRS6s3IHAPCmGMVaS1NkhvHpEAUPq9P/YckqGd5ETehhpUyRJ9/MPYRQx
oyRWCPgRH9RnEo8W/oggVHHFG/Ec8N9DMaiiCjhAfHCgQxQAsccnn9DwYEMAVNFEE4m4cGFDPXwj
IhMfMgTCIVlkkUiJC9mgxYtZEIeAIKE0896FK2ii4yEGDLSLPvoM0gyL+9zRzJGHHKZLGEw+QmQV
gPzyy4oDPUPClXbc+B8AmiBzxBGxEGTNIosg4YQJJU6gzJqU+DdQEWY64cQSJcKQiiGggCICQRDM
EUQQbEBS4jdcbMMJJQgUFAobYKhBxwsXduCLL8RwAYRBb6jhaBnnXKhKHpsIgk0LBiXgShlloPLF
EAdmAEcl5eT/gUwBBzWDiixzfMHNAvgVoMwZzlgCB6sHKYBIrn4sswtx1YGThiRnWEMJrQglscwy
sETSxxHnJQGFHmm4c8YMC7mTrSN90AMIsyJt8Qoa3w4TD0ML3ONILnYcQ4o7Cth0QCLAXCIMvEfQ
tlAHxeRLShyrdAGDRDNUAs04AQuDzQMPZTDLwqtgok4hUKjgUAqAeHHONVOwU00eFUTUQSjhYJJJ
K+YUcksy4GygZQAfGGFJN+u848UT5EzBSQQiIWBJK+q40ss0fNxSCzxdVCOIMshsM0wpUczDCC+m
lJLPyU0YmBQIj9Qsii7RINIJLtrMQoUUkMjhzTOhjIIP0O+kUKGDdwiQkQ0fbKNDCNxy092FN56E
wgoj8lSzhcHeKdADO9oYjksxctsDSRf3eBJFN9jYQO2DEqzgAxTyeGJLF6GQA8chWGBMJEEGJICb
TQEBACH5BAkDAPsALAAAAAAyADIAAAj/APcJHEiwoMGDCBMqXMiwocOHECNCDEDgAAIGFBxEeOCA
wYEAEiECMDDggIKLDRw8mGChgoYRHSwgCMlQgAECJRMgWJBypQUIFzp4+MDhgwMANA8GsEmgwAGd
PFWyBNqhRIgNKWRsWJC0IIClBgrkTEBWAYMHFS4M5YD1RAwTF5B2FQjApgGQCA0sgMAhgwwRLGao
SGFg7j4AchsOgODWBIYbPGYMMCxRQYbHLYi8UFGAckQAHTK/0JEDA17PDzXgIC0ERQrUES/kaF2j
RgTYEDNMqiFmCIzTuBcGwDHkhw1aH4I7pPCD1oodQ4ArT6hiB4g1ijRMZ8hgjYsxVmBs/2eIwsqd
JFY6ExTxRsR4gRzq9OixRfvALWD0BUnyfkEPI6ecogJBUQxi4CPvBXBHEUWYMQRBhZBAQhiQvLfP
CrFkaMVAAjiyyIdeWDhJPPFU0QZeCsCCxIr1WAjDGzDGUtg+CDgSxI2vWIgCEDxWIYBAA8TBxpBP
WPhDO598UsVAAUSjxpMVvtcDGYkkogRBodBBRxmtTDbeJ3/88c0YBJVTBiqo+OHedg9oEUggWaBA
UB2yyDLHHIGMx4MmboijRQYEWZDLF374cY90sDHRyBJLBKJAQawsswwsdrQwnQaA/OJDM20YZAYs
kTjSxxTTGYHMEZmaYBAC0fTRRy5xyP+JGwfKKEMJMoHMWJA4udhxDD2QcIUaAYGkYggeyoh3kALF
0ENKHOGckZhhpxDDBSepaKGrQYqsAi0m6jTi2Q6bCOILF9vEoBAAZ6yCSSat9KLJtCGtUQkceZhb
B0MKjAKvK71Mk8ejIQ1wxRnWWILvIeotNMIjABciii74CCHRCakM484ZzlRyRAMPbdCFxHzcUgsh
lmDQEAAhaEENNbukIckZykgQkQbvlBwNIp3gok098XBwEAEjuMBFNdXUgwYUeqThgwMhKcDFzp3A
E0wxs1AhBSPDgNKMJkfAcYkX51wzBTCXCEONHm80HNIOrBDiMzfpSJPNI/fYEgUrjMhas847XlwD
zThJC3IDZQfsEYU2WduTTRf3eLJ336a8k8wT5EzBjAtuGzbAHcPIYQ8kkEvOtzymlJLMFKAI4aVy
EdgQSCXQrFP5NdQQAwQNIFtIUAAlEUBvRAEBACH5BAkDAPsALAAAAAAyADIAAAj/APcJHEiwoMGD
CBMqXMiwocOHECNGBBDAAIEBBxIoSDDAAACJICkKMFAAowIEDBo4eMBgAEiIIi2aREnBQYQJFiQg
eOkQwMiLBxQsYEDhQQQJFSBcqJCA50KRPwskWFAUZwUNIzqUiOBUYoABFCwo7eDhA4cLBrpKNOBg
hIcSITZkCEFArcQBGkJwyCDjxIa0diNOyJDiRAwWHD4GhvjAMIsZGEYsFvwYw40bDSZDHKHiRgsi
MwIgfBGlSxHNAgGI4EHkhQ4IBwesGqQvCAvU+xa01kGDiOiCe0iECTPoCu59KWjAECJkgsFni0hI
v3FcAQwUk2qoKFihDJJFi6Qc/xfYogYWMTXqDmwTxIn7RuP3jRgy5IcN5wMrsWEThI2J+An8QAst
K8hAUBRgJLhKAfEFIMYOIICgw0AC6ELHhZDEJxAMiijiwhADDRBOGSQ+oeE+RFihIgi/LUCPLDBS
c2ILSdRRxxgCCLQAKV/0CMWJRGwh5B057nOAOn74sQw0J8LQRhunJPGbAITAAksk3py4ghJmmDEG
QaM4IuYtB8QHgBFMMBHLDwQJksubpKQQHwVXXFFFFTwQpMgxfNJDRnwmgAOOKm+UQJAF5pBCShzz
KIbbHZ/sAcQbZQ4EgClxhLOKKxgcVwEZiTTRzhoGGbEKJpmo88pxIBzyDagGFv+0ADfqtOLKNDCg
VoI4gWRxyBu/FfSNreYUwooCkwnwhibiaBFIngcpIEcvhYjCBzaOqqWID40s4YYqCu3Ah7W3RBNI
YDUcAYgPzSwhp0K+6FIuIp0cki1IQ+BBibq/rMBQAsnUQi8huBjCIEgFbMGJIfoecQVgC10QSicE
a8PNNblGtMESvnCxMB6HZOYQB4zgEkwxs1BhDxczNARAB3uUU44gHXMiDlebAYOyytk8IockbXwA
8UAEQGCDMWecYQkceWBDDBkiRzQAMulIIwUkXXjjSSijQAMHIFn8sQQnzKBBjR5pMGNNJeVgs4V6
L9GSTM9y2PIM1/h0U0oy55BfM0419aCxyzCSKH3EbXZVUco9tkQxzyi86M2338DU8woUerizzQ8H
B0aAIuUwwgojvJiyd99TAHPJK5I08oJLxzlQQxO+UMPOOMC8Yg0lTNzAwIkEBUDAAQcQECxIAQEA
IfkECQMA+wAsAAAAADIAMgAACP8A9wkcSLCgwYMIEypcyLChw4cQI0okCCBAAAECAEzcWLCiAAMF
BhwYIIDjRo8EQiZQgABBAZMRURY4kADBAgYUGhCA+RCAgJQHWDJoQOFBBAQ8Iwo4gACngwgTLDwI
kBRigAQOHkyQUAGChZIOJ4DKIwOmAQoSLEDQMAICVYYIpA3S16cCTwZrR3TwAKHhKxJh5hZJuuDC
3g8hJiw0g2QR4EEwqjLwgJjDBqQIB4hy0piEsKoCI1jOkCKExoO/2AThTIgB6H0AOqSQcULEg4MI
zIFhwwYMiNcCE9SOwULGaYJv6KhRA+Yc8IEjWJiYMYOCwXllytBBReO5wAMmMKj/ULGhYIVcslCh
euR9YIYbLVrcMEAwyZc5c2RpaS9QAg8iOOBg3UCb+GHgMmXxNwAOL+igQwkEjQILLMsUMgB/sPGQ
w4YmDBQAPI44EokcGAqEgRBCoEDEQJr14SI5Je4TQw005nBaAoXYoaMeMYogxo+TvIWAKPQUmUaM
MdigJBZvHYBIHFACE+MNK1QpxmkBSLPKlqPEKMQaa4CABUHvZJKJOsFcyB8AK4zhggvdDZRKK624
UkgGGCJwx55WsEDQDuaY00svn2CYwRY91JFEXwNNgEgh04iSD4Y2nGLEFkm8RNAUovChCyIYtBeB
GWYU0caYBfWgyy3R1MJMezUw/xGLEmZ8YFACXdSCCDqdCPGcBldcUQUTdYBVUDu8EgJPMgq8ZkAP
QKjyxhUxIHQAPvDgEkwxeLyGRROfAAHOFm8dtEMw2hQzSzpNVKXDH2Q00c4etiqkDDezUCGNFIXC
lIMWWcCbyCQMFVCPvlJA0gUgCWxEAAhLuAHwH3XQx1AFySTchRy2oLFiRCF88kszEWtxxQIPffDE
I3J440kUoyBzgkMXmKEMMsb40IgmqjgQUQVpuPzMPKPgs04eVmhgMUEGWDDJH5xwAooyRwDiQywo
S3RAI8+EwgojvJhSSjLX7LKNG5/s8Y0PXMBRjiDEbGMIHpQYA4KxE2FRTdHyrGvzjhdPQMPOJa9Q
o4c7Z1gCxya+cJEKKIeIkBQBbVzSTSn5nHPNFIMXfvgZzsCRBzbE+IDC0kkN8AMn0JxDzhTAEG64
O8w4UwkxTbSwU3sUvPCGMpVIIok15XDiRg8mZB2jQACANAABx00UEAAh+QQJAwD7ACwAAAAAMgAy
AAAI/wD3CRxIsKDBgwgTKlzIsKHDhxAjSpxIsSIAABUzFgQQQICBABoHYiliASIAjwQKFABZUQE1
EvrsbHDIEeWAAwkKUCwhhUSYQfq4PAxgIOWABAoQJMAIkYUuJIt8DvIRUcDNpAsYLGDZsIOoIE6g
kqDyQCKAAQqyNqDQgOlCBJDAsAGLRJiCigMYrHUQoUFDPXTUyGWTyi3FAhQeRJggYcHCOl/KBAZj
KKTAA4slVKgwIKECRHNkoSpDzbBGBBYqQNBQEqEmP19CB7treWAEDRoujHBscMGtZX78wPpRm2AB
3R08XDhoxlEkWMuuFS8YwUOJDx8QGMTXp4+jXESmG///EIIDBw0FLbSykyuXLdPTL2zYkCED131r
SNE7doyM+IIUpJCCDCdoNxAXccRBCiYz/TcQASeIIEIMrQm0ziqrhENIZw4OJAMLLJjwwUACSJFJ
Jpiw0iFBHMwwAwYnDHRAMK20oo4wKw70gQo33GACUwkQYs6QleQoUAk8JHkDkIQU4mQ5Ru7zAQ5U
tsDUALOIoqUeUcpAAw068MBUAM/oYqYXUWIAw5otEFRNNNHU0oUBOQJAwyQooDADQYAggg468HCQ
4wFYFFqDoAOt0AkhhMDzRo4d/PDDEGJEQJAD6eASTDDV5EjDCrTYIAYBBe2iTTHcUIFBhw2AAMIO
O+D/YNAd3MySDhXYdIjDGC4osgYEBhGADxXS2JNNDv9NcMcdVozxgwAHXWGPFNk8Us0B0wmwwhZ1
JHEHogYBcA4kXchxTzPTvVDEKUb0sAK0CP0ghxzeePLMFbVhwIQSRbSxBXoKNVJvFKGMEg98Ed1w
RRX7mhHeQgMwQzArjPCiBYcSGTDJHuC8wfC7DVlwCcW8dLPOGatG5IEZibQDhCpv1JHAQx7Uw4s8
pryTDDmNcICwQRC4EMghZDTxCRBb+AXRBHCYUko+XlwDTTWGrFABnQUFEIEOVTSiiThZ/FG0FbRF
dMAhySTzBDlTAHPJK3ps8ssn/FZBRjPKIGOMD0u4dqHFId9MAi9FNLgj9TjV1IPGLsNIYk0leWDD
BSegUGLML16Lc0WDGg1whzvsXCIMNbukwczjeQhCDOXKHAFIM008XNwBMBgzDBR6mO4M5KpvY4gy
vyhhwn3iMaBCG5qAwgUxXODRCBAgiDBzlAMBUFQBBvzsUEAAIfkECQMA+wAsAAAAADIAMgAACP8A
9wkcSLCgwYMIEypcyLChw4cQIz40ILFiQgN7PIU7Q9GixwPGwpEIM0hfFo8WT/FxgmTRSH27UEZU
AKUMmyAsR5Jw8RCAT4slHpVRA+YmEif2zEAEEECAAIkyOslCRYdoEC8wIjIVYIAAAYgdCH2ZI6sM
HXg7KgLgSqDAgAIOEXhb5mesLDQIPAYw4PZAggEN3TmKBMuPH2UAZAYY4FcBAsAK1xzrMxgWMpkD
BSRwvGBBx4MIZh2zk6sPlMSYBRZAsIBBgwUJD5EiNVoa7NQDFbim4AByQQTBwsUhFU4IboICeD94
4OCgkUyYVoVjd/z3gwgTJPge6EWdukyuVFT/R57dggUKBSXUcuWqFS/U4wU6qFABAgT4+0AU6tXL
3Kf4BCmggQYXXHAAQZSIMs00omwA4EAGXDBCBx2gNxA7uvDBhzTbAXiBBx6UYMFAAIQSTTS3ePEg
QRB88EEIIwxUACSI1HjGigNZwMGOHwyUABWdBLkNjgJZkEEGKWyA2gFUwAMPLqkQuU8FJ1SZAmoA
yKHNlnlIOUIMYKZAkCnclCmMlByYoKaYA6WRDhVUMPLVigCwoAIGGIRAkDjS2GOPFBzgOEALLdxw
gwYE/ZBNNpBAogSOFuBABBE8NEBQA11kKkcaOJqgwwsv8PCZQJXc4403z8TwoAI5tEqDCAYp/2KL
J89EocyDLEyCghAwRGCQAOdEEco8o/AQXwNiYFHDJC8EcJAZ87DCCD7DHHicADDYMESyMR5UQD2M
8CKPKYHgJxMGO6xgww85OIsQCt10Y0op+RSBWwourAHCCrT4qlAg69DrxTWnmCuRCElY4YIiILDA
0ACb5OPFE+RMQYa1EgmAgxE9JDwGDE8xJIEkFE/BTjW+yCARBC6Y0QbHSfyAMUManAHNOMBc8sou
f3jgkARiXBGPEkWcssUKeUEUASc5C4PGLsOcsUQNEowqUAAP3FDHJ0C8UQUTRP+QQEUD7CHMK1Do
kQYzzsCxCSVkmHGHC3XEkogWh5DRxB7gCG+txAshW3SDL1BLcoYlbvuyTSp4IANIM5pokcU3iXCt
Sh0dpDbACtgwY00l5QiiuCGNP76EOIH8kUg7sczgLm4D4JAFNnkIQsw2pDvuwxJupD6GDAYft4AJ
Y+zhhg+A/OJGO6fUkEGHUgpAgNUVBQQAIfkEBQMA+wAsAAAAADIAMgAACP8A9wkcSLCgwYMIEypc
yLChw4cQIz6s0MZZlF5zMNWRyFEggjfz/ARxgoREmEGRGnSEqKDRtDJ0wLAhaXIQiRArGwK4g26O
LFR01LAJgmTRSSkCci5E4K7Psi9zUJVRIzNOtmR4HihVOMKWo0iw/HyRNSebphgFtjJMMctOrq/L
Il3DodbhBSqkjtnp44jKkLoOEbAKFyevnV0L6gIAwBAAnEyYVsUJB4ixWgABBARYCKJXK8irfADG
LMCAAcsHE3Qx56qVOmaotwIoTaB2wkTTCvUy5wkBYIECCBQYMCCpwQSP+IiaxgfFb4EAhh+YfrBH
tFu6+Ax7PpDAgQQKFBj/J1gPUa1otTBwhx4ewYIEBSNw64QO0ZP1AxMsYMC/4A548BBCiCr4CURA
Aw1QQIEBBDWiTTAQclDgPgFQ4IADD8A3UBrcFFPMMwRMuA+GEUTAAEHrpJPOLK+IuE8DE0gggVYD
eSLNjdi42IAFFlQgAUGPZCOFFMjoCMGREBAkxyNMGuMiBRdEeQFBo8hxzz2cuBhBB1xOORA0toTJ
jIsVlGCmlwLl8cwzUXjB4IQlhCBnBQSREco884ziwYQEZJDBBhvQKFANo4zCCD49TOiADDKkkIJv
AzlQCi/yyAPHhCGIIMIJKWxGEDHdmLLOOxngd4AJJrAQw54F/bBOKe8k/yPaeh+ogMEMJqhU0ADU
JOPFOdCYwN0CLbRwgwoixDZQHec8cQ00eQzwWwAz4EAEDy38eFABzJAzxTjANKFsThnQoMMLOJgw
7kA4sMMOMJcIk0RdJaAAQw40vEDBQu1UEy8au1ixVQhY1ICCEDlIuNAAoAiDBhR6pHGFtBwJYIIN
P4hhsAqeLvQANhCnIckZgJQaUQQ1gLACxmK8kJZDFXAh8hnOVCJIFWgu5IAOVoyhiMo25KDhQw78
wow1lpSziS+cNEFDBB0PFEADJ9ByyhZ1WOHCGjvoQHFEA8RSCRx5CELMNoYoc0QWsYxhwxArWKHE
FfEoUYQRPSRhhSImjGnH0QxHLM1FKqBQcsQvjbgRyCFktAPEG1XEYsbVddhA51YEYAHINqngQYkx
PiS+eONAqFIFE0q04UKnvxFwwxvGIAOID0sozngTe6hyhRJDfOD3cwqI8EMbe/yRxR97KAHCCyV8
7eJzAQEAOw==
|
|
64 | /video/video-js.swf | application/x-shockwave-flash | video-js.swf | 200 OK | SWF | 16.8 KB | 12/30/79 22:37:57 |
Download
|
|
SHA256
|
c33f8c92c334cf983c6f67dfc30ccebf25abcc54fdf3db9ebd029df6ce4d1482
|
Referer
|
http://cdn.bitmedianetwork.com/video/adplayer.html?timestamp=1481644853337&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t
|
Magic
|
Compressed Flash File [ZLIB] (SWF)
|
Request
|
GET /video/video-js.swf HTTP/1.1
Accept: */*
Referer: http://cdn.bitmedianetwork.com/video/adplayer.html?timestamp=1481644853337&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: IpUdI30udTJoXb0CP3t9JrIrJ0ddUyW7whpVWXKmbwAgn9DPv0qkiF0w2GHb6HfyYlZFXI8E45E=
x-amz-request-id: 07A49C6BA2DB9EB0
x-amz-meta-cache-control: max-age=86400
Content-Type: application/x-shockwave-flash
Server: AmazonS3
Age: 143764
Date: Tue, 13 Dec 2016 16:01:25 GMT
Last-Modified: Fri, 11 Nov 2016 20:51:06 GMT
Expires: Tue, 13 Dec 2016 00:05:21 GMT
Content-Length: 17233
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
HEX Peek (128 B)
|
0000 43 57 53 0E 40 8B 00 00 78 DA DD BD 77 7C 94 45 CWS.@...x...w|.E
0010 13 38 BE BB CF 73 F7 DC 25 97 E4 52 08 A1 04 82 .8...s..%..R....
0020 5C 08 E0 11 22 88 05 11 09 29 40 04 0E 53 B0 A6 \..."....)@..S..
0030 5C 92 3B 2E 9A E4 E2 5D 42 D1 F7 7D A5 63 A3 08 \.;....]B..}.c..
0040 52 2C 48 13 14 B1 17 44 14 45 2C 28 A8 5C 82 80 R,H....D.E,(.\..
0050 BD 57 EC 5D D4 E4 7E 33 BB FB 5C 49 82 AF EF F7 .W.]..~3..\I....
0060 F7 FD FD F3 E3 E3 EC CC B6 D9 D9 9D D9 D9 D9 7D ...............}
0070 0E 9C 4D D4 07 09 89 B9 91 90 31 94 E4 27 F6 22 ..M.......1..'."
|
Q1dTDkCLAAB42t29d3yURRM4vrvPc/fcJZfkUgihBIJcCOARIogFEQkpQAQOU7CmXJI7Lprk4l1C
0fd9pWOjCFIsSBMUsRdEFEUsKKhcgoC9V+xd1OR+M7v7XEmCr+/39/398+Pj7My22dmd2dnZfQ6c
TdQHCYm5kZAxlOQn9iKEXJN8kELWV+seXZxfmDG7ob7RPxpy52Z5mpubRg8fPmvWrOxZI7O9vhnD
Tzv77LOH54wYPmLEMGgxzD+nsdk5e1ijf2DWWM4g3+Wv8dU1Ndd5GzMw76z2tjSfm5UludbWhJg2
tfjqOcvamuGueleDq7HZP/y07NOAUW3NaLfX1+BsHutsaqqvq3Eiu+Gzh/k93porZjlnuoa5651+
z5jh4YbYp7muud41NrfWW+3KKKx3zc44PSM33J+3Fk2wcW1Y0LER03Ri7+wab8PwJp+3tqUGZHID
K945sguyaGqprq/ze1y+sS2NVzR6Z4khwqXYpsbncjZ7o1voZVhf72yc0eKc4RpbMJXXhfJcRmez
a2yRszHjtNPtGSNyThslxMDSMcM7rbYsAQWOJfnWL5QxJI+Bbi+JUSA1AqjGTZcQ/mfLb+yrItD4
SzHT62pd3qIS8kxK7HWEQBFx+5wNrtOIlWQTAyVB+JOgECb6fXDenSpRZ3rrai18/bNdM1FphgJE
MaV1DS4fJ40lzb66xhnaeK+33uVsjJnibfG7eE0sLGz2TBz0cr9FDj7FW+uqNzqqL3fVNMcKvi3N
dfV+8/g5za5cn885J7ayMrdkZGVl9kxXjXE6NPP6lLrG5qQIZlKUJM5zWr1zTrWz5go+pD6MyExy
FPh8XiFmUomrpsVX1zwnXBRXAnLXu5q9jZPB0mKENDNc3gZzMQzrxDrj1JaGapdPStrgqq1zGvgQ
8VNdzSXNzuYWv2A1zeed4XP5RU6TUsSJbrV1/iYQ0ljSBOO7tOkFxSWTHFMNp2ePyh6hVoLR65oB
+02o9DeDQZTUXeXiS2zgqVrXWNfc0+eaUedvhmWfDUmjs36Kq9njrfUb3VDr98R7G3Nra121pd4S
5JDibSyJ4lRaV3NFnCwsdvmhGJrAiK7G2vEtbrfLl+esr3fVWryNBTUer8gkQ6ax1uEGFbucDaIM
eORWe33NoRYTXM0w+yaXr3lOqKykc5kVerU0e3EdREGPOn9oHiXCHsqKJ6dAn8bO5bHAz1cTEm+y
11kbykwLMQS5pjnB9EQOVgMm2dLgCrUsgdFFJsHbWNZY42yZ4WnmxmCRq5IHzuOK5Eg78zf70Cmk
6hKFbWcqbJyh3TQd3X3T1Iimo8Pa1ipb6qbXuWbFyiKkjZUNuEcMPO3f1epHR5q4oRL8g1PFJDE0
sj5o5t/Kp7cyjnf6XWecHrm/Rouint0IjRKauNSQTQJimhdNMs8LJ0Ndo8sXHyqa1ABLakRluXxx
UDoe9ugMn7elsTamHgpFowS0Q85LqDoG86IKrDPcJc9b7/WBUYEpiFqgU3SaG4S3oQm2sisxspDr
oFdkSZQT4LsBDRu072uO8TbChnLm41J6G/NhyzT6wdOWNaEHTuDLlQ8b2dlcA94+rZul4a4trrLB
iYNN99aD8cWXoPClPmejH0+ulEoY3QeMdJ9VOqfJlVDJ+RS7YAu6Gmtc8ZXgNJphfoKFuRKOJmzh
6xGpTr3Qb540TZIGbjgxwoGgB0usvFz4I2gxew43QywJGWao2FpZHb3SkQW59U0ep1Y5U0rjlLvY
BHK5UJGGynqvt0mt9Ptqkip9zQ1NYAuNMDquXfHkWF4kllmrbOKKUFFOa2fZenQrmjk0G4szwlfF
usJuyeBEd5TQaQoJnWYQH73KpgbQNW4bo5iYqbbFxwMHkz5BBSaU2GU+MeHpWKFBoc/bUIhOfqbT
5zeK6Zk8Tj94TVet2gxGZGhoaXbVan6X6wo4bSyNruZZXt8VeHS4YoBL7RxOanIxVVxLUzWfIzhN
ncDDEXnGVCNR6m121sfw+VxYV9vsieXkRFcdODQNRYeBjE3oC2vjq33AtQYMii9rWnRW9wX1c9LD
FSEdhGtVLhpyNnC2Rh93rXE4qfFzYE95G2v9MjfN5auBzqofVjHW45pd6hVHaLynpcHZWOqVYUJc
DaYFk0TwEMtzwgVY8KzTbTojcm9lO/22s88cHXVqZ57MQUaFBf273TqjQ1snlq8r91W1BhfqLg6m
6ednPKo6FlSd65eyOpubnTUePohSW+dKnFhaOk0MKblldT9al3ZKZWONWYQIYBZxMFrY1KDObw6N
b61s9oApz/A0tTTzwzxJ9ySlofLkStQSd2XYBPZNQ5MlXAa2wDO6o6wVdVzdMN1KrlhHI28rc9Ng
JWDCSZXeRrFbcL8U1vmwrx/bOdxuv6tZqxTtrKIX+FjXFdOd9S3gLPRNFlNZ558mDNOMJG9nAUrs
ZijGFiVij2hATq6b6YqrrHE2YlmuB/aJuVLfVglYjtzk3BMr9b3rmOny+WBlE6WrQKXm8uVMRKOK
WuA4WSIWOLnGWV/TUg87MbygPbyNUT1EuJfIS0PnBpRAu9Jo7WCoBcdJXgscZRC6mr2NF02ZhgeL
DFhEP0vkKZDR3Vkd2YCbWW5Lbd0/MbOodom6p54EM66DKdYaK/3oFw38dIoTmTyPEyZabymJyPQA
b4+MpBjSjrqUemG1a1OiS4WKE0ThJF21qdGNJkqNJori8eFNaI0o4e4uXhTkS03Lej4KX+PkSrD4
ugacnd7G36uToYSO79qkWq+MIrnSsTEEhXzqeiAfK/MOsKRkSUcGGnoZD0BlmTWiHd9YwGRS/kgx
pcTi0in/yE90aZfAz9BiV7NvDjevHuA3sJEo8YC0Hm99bbIszROOgVdacNPo62Gp9Lma4KTkSw7B
U5iFbrNgqOMvzPO4aq4wIZXvbXRBjFSYV9JSjTfPalcC5soa/Xo+xs/3waRGtzcGF8LlQ0fd72S2
LKpjS4rzKqc6SitLCkrN4Fgbvc3oRbD09JzTY0WJG9cxBUWszHNMnVqQV1pZmDtpcllxQRIuRo3Y
lW5nXX2Lz5U0rdgxraC49GLOttBRNjXf2iSvHzqvhGmOktKC4spJjsqC4mJHcZw4rOu8LlRUD1lb
UpBXVjwJGPE2yaKNXwaNvKW1bGpJ2bRpjuLSgvzKKY78goQWWI8mXFhXLQY2lpLS3AkFlcUFJZMu
KegVGaxnR9akjM/NO39CMcoKM5zswLFLB0Q1765FTEjQ0p5RjcPlcY6plbiYeRNzp04oABOEFa2B
DT3DhTWTHbn5lSBIcakZfQL34ybsgUVITMstKykwAwFylk0p4NwKCs4XDax6Ls8xZdrkgtICI576
cLZA+fiywkKQoLBs8mQe4btq0fUnhGsKpkwrvVib5QQv1DgjorxwclnJRM3V0NRcB4aJIkzOvRgn
HxolFgqnFJTm5ueW5sYL3vrRkgRV+WXFuaVwpZZTjtfPAzFr7JyXK7hq4BEwjkmOKKssnQiLPGFi
vKyTRy1OdbpjMiyBZGsRkaJg2hMXKNI6S8ry8gpKSuIirBOOVb1VcUFp8cVmrPPhjosXCw7GkDd5
Ut75MTzIrcHrp6WyFsKpWhd4YAgoBR2Pjjs/VAwnaCN0gCA2doareZKkLTijsoLKaY5JU0v7dw2B
siPrLXI9K3FBT9I4VI/rB+cXp/t131avxmWdWlBaUlpckDsFZ1haVjKo+y6dm/UUZXI5J4kFgvKh
J+3epWkCpzhPSPIvPqX7rpFNksN5dB28bNDfdgs1ixiNb42/H403ieiSN9lRUvD3XXiTtHAeFFI8
Ka+ksmwaLHXBqX/bN7ptxLh8d//9uLyJNXKh0A8M/C+LiW16Rsw30kkM/fuliWyaFslT+ge+dqf+
l/Ej26Z2U1EwNX/IP2MBLdEP8hOgT/ddeB36SLG+fbtvJSp7oR+ZlF/gqMyfNKVgKj79yRp79926
b6xiXJcYGRFmY4mK7iW6GEsMnImBH8KG3LL8SQ4DD5gMpcC22OqsreXDTcb3RHy1yc3Ph+Os1CG8
knzw9c+B2gaT/mZCh8bCZdA7K9/b4KxrTOY0eB+sdYky4fZ9GA4kt0S+sPHB/APky3v41T23ZOTw
ETk5Zwyvbqmrh1MhHsIVx6xG/ekwXj48y4to6IVrUiNgt7PGZXbOhAjAWV3vMsGU8jx19bUG7kuF
RxW3Y06K27FJvjjXJeCDFfCd4mpsmQST1M/pDH6Zz8CADoKfxuaMmafkeZvm+LBzxr7t+Cx/esZ4
nq3xznTZMyY11mTHRjCzeoDReJzNpEZk7I+taYGrcAOn1aYWvye2JqL1zMv9lVHvGjgNWFlUpgkr
4bjxJnAi/OBh5r34owdSM8JvrTzvD+ctvKV80NB4pa+G80VNcQJrOEN+eYtBStzueS3e4mOanPiZ
AAMhQ62rumVGStSz9mjxrG2LLswXWFzpQ6+D/aMbcT064XI10yUa9vkbJn0jv0KM7vQeZ4YIz+WG
IWpViDddcVHvfBrchv1gAwaei4H1wYjX29JMXUmu0GtTIVgsBg09XdGvUHq52ggWER/9IBTHX3D0
FiYvF3RSvgq3yXoDP9qNItqLF2/xUO7CENg0FXZaXu7kArNfL4rhLXLr62Y0mkod0yonFxSWGpyY
NfAYLdnnagCLi9q2MfIRoMRXE6u/B8DMYuv4Ra8e6WRYFmdLfejFsRhuSElRz0ri8TP8Whavv1GK
h5zU6npv9WiwhWH868cwuCxC+XCtDhZ8tsNtLHbNKJjd1Lei22aXDb+s9lSbCqM0p+kXgilYX8Kr
s/G1Px5CIq5MIWhclNITu5hIaveWZax3Nc5o9sTNQlssKy3kUzPN8DmbPHU1fnO1a0ZdY2EdaGUW
+gSjR7iDWp9zFr4tarC7eK2TP3bOrPPXgU8x+xu83mYPvk6UFU8udl3ZAvOIEy/acssn8s0MGgk5
PpN+kpn0m0Z89KXCCNsJP44JfXKfpU5xNnsMfPXpbDpHk0wN+CrmM46va25wNqk4HOyYmWATtRmh
N7AMZ00NWHd2RkaZ3xX9WhYRHA4eMiCG30yn1M0Gb++PepWOq4l84DSLKx1QcbVye4kvDfzjnBHa
1jibDfildg4daPBDzOpiObPpafGXVuQOu8Q57KqcYWdXZpezGXUaXDfrwUnTywygsbpmdtll6uVw
VzeKbaICb49FmOJkrrwYkeEmHPGCo+IVQ2nx1cN6eP0uA7gnV3OCeIULPcUosGtjICiUoaARgmn8
ECenZqlrFP4V3yFYIxiG8AH4Yc3tVTGyTo9668mWZHZJC1/fvt3XFsLp46rtHZIit/O7UwxsfxQK
QpyUUKts3IzZfN+Fu2ajaLwse6q3uc49p0e4SsieXdhSX5/apbQA7k1zkrsw9zb1iOYt2aZ3aYk0
1BWiUfQP13Jbyg59B8nj1x5TTYurCd9bTHA1ruMf6ru8N2XUel3+DLh3Z8h7cUbkCZf9D9pHnHWD
/wl7PApN04odE2C1S1THtIKpyqT8kfE84hEhCXh0cyUcbHwLx5fIO7XYqEpd7cjhXR5d/sss/kH7
yFn8E/Y4C3Po6ggGX2eoB89Yb+Dix0b8HqGzKRXjjshNpalKqjnVkhqfmmggqT1Te6f2T+sH1Ni0
cWm5BpJWCFCUNjltCuBKKHen3UXT7qYGYtpO0x4CnPoITXuDpr0FZNpPmMxlUHicmX5gqT+x1D8g
15P27td7ldL7ZqX3aqX3GqX3WgUKzb0nG0jvKb2Ba093b2TVG5n0/olaaS+LhQ6xD4vNHp5z2oiR
VDFl0dOVUUNSzqAGs04aKI1LVeiZo4b0OIs3M6dpCh0yqufZI6lGjeb+dHSvc4b0GzOSxpkG0nOB
PmWsOZOeB4Rt3MjrVY0yjakaM0BjjWoaM2lKjEZjNTVOMyRo1JoeAxljkmZM1liKxnpoWqpmStNo
L83cR2N9NZau0X5aTIZGB2iWgZpi0yyZmjpIs2RplsGaZYhmGapZTtUsds0yTLNka5bhmiVHs5ym
WUZolpGa5XTNMkqznKFZztQsZ2mWszXLaM1yjmYZo1nO1eLO06zjNSVPs+ZrtEBLmqDRiVrcJE05
X0udqqU6tNRpWswFWmqxlpqvpZZoqaVaapmWOl1LtWupF2qpF2mpF2upl2ipl2qpl2mp5Rqr0NKq
NLNTS6vW0mq0tFotzaX1mqGlebS0Oi3tci3tCi2tXktr0NIatTSvltakpV2ppfm0NL+W1qyltWh0
pkZnaXS2BqcNvUqjV2v0Xxr9t0b/o9FrNDoXVn0ewHyABQALARYBLAZYAnAtwHUA1wPcAHAjwFKA
ZQDLAVYA3ASwEmAVwM0AqwHWAKwFWAdwC8CtALcB3A6wHuAOgA0AGwE2AWwG2AJwJ9XStgJso1rf
CVo6sE+HodNBvPSrtPSrtfR/aekwdjrIkA7jpsO46fcAwNjpMGY6jJm+AwDkTL8XAOaXfh8AzCs9
S0sHEdJBhHQQIR1ESAcR0kGEdBAh/X6AB6jW60FqnkG1/g9TLeNRwI8B3gn4cYBdAE8A7AZ4EuAp
gD0ATwM8A7AX4FmAGq3/PkA+rf9zgJ4HeAHgRYD9AC8BvAxwAOAgwJVa/1cAgcm8CisAs6EwAwrS
U5CcZmkUJKMgWf/XAA4BBABaAdoADkPdZRp9HdARgKNUizsGk3iTagNB4oEg8UCQeCBIPBAkHggS
DwQ5Bvq0gSDawCu1gW8Deodq5ncBvwf4fcAfAHwI8BHAxwCfAHwK8BnA5wBfAHwJcBwgXxv4FSCQ
Y+DXAN8AfAvwHcD3AD+AMD9SLROWMxOWMvNngF8AfgUAATNBwEwQMBMEzAQBM0HATFjSTFjSzBot
06dlgpyZvwHAMmbCMmaC+JmwjJmwjJmwjJmwjJm/A8BSZl6pZeZrmbBOmbBOmbBOmScAYK0yYa0y
ca3+APgT4C+AdoAOWLAgbgIGGwBgEcASgOsAbgBYCrAc4CaAVQCrAdYC3AJwK8BtALcDrAfYALAJ
YAvAVoBtAHcD3ANwL8D9AA8CPAzwKNOydgJ+HGAX09KeALwb4EmAPQDPADwL8BzACwD7AV4GOAjw
KsAhgFaAwwBHAI4BvAnwNsC7AO8DfAjwMcCnAJ8DfAHwJdMGfwX4G4BvAb5j2pAfmTb0Z6B/AfgV
4DeA3wFOMO3UPwE6gA4CzFW0IfMUcBYACwFuUswrFShfB/StALcB3K5o6nrAdyjmmcy8QWHmjQAL
KDMvB7gWYCHAZihbDHgLdr8Tmm8F2AZwl6LF3A14O8A9QO8AfC/AfQD3AzygmHdhnydAlCchvwfa
PA3wDMBexWyDomcB9il9VHOCwZxg7KOZz4eC5wCeB3gB4EWA/QAvAbwMcADgoKJlvKJog18F+jWA
QwABgFaANoDDivkFxWR+UTHBXoP8EYCjAMcA3gB4E8Z/C5fDpI26A/JvK+Y8BTYVkO8BfAjwEYj8
McAnALsAPgP4SjF/o5jN3ynmPmZzjGJOjTEnxZrnU4tGf4QuPwH8DPCLYv5BsZh/VaD8N8j/DnAC
4A+APwH+AmgH6IDFnwtn5DzVPF+1aBmLgF6sguQWkNxifpBS8zEaB15bBX7x4K2hfjXAGlU7Zx3g
WwBuVc1vQrv5NAHGgxP1DtX8PuINqvkDJcG8UU0A3gnmzQA/Qrsgjdstf0dIxE8NKWEIlEIxpQom
nFJFtYlaLOHmKuShHitN0AUiCIpNYmIgqMBOMsFGknkUSNZGcvI/WphkRDWJ8U3dt6VmkINYuquJ
HDMOk/hQwnCyCUhZQ7V6EikGJYn4e025Ft0QSUjwxBwxZDIWJEcSKUik4Fp2W21AwvC3Q3UqNoju
4Z4IsRIiCwWRHFEb0Uo0YFKvAjqtXEhGzCXj+FzNqrQNPY36073WooRJ7rxmulTJ3UsZBSZ9JYBg
1GTozsqi5OZL342g3cgUMb5c906a/SfScclQxP9NuqgmPUKJIhl2Sk76p/OkwvP5P5hK14VmEv7b
VKTgqaE9H04SdLP7/0zs/xsaUP6ZGpLF1vlv2rH2TDPHEtq7l5Gop9DehPQhfQlJJ/1gNftTomQA
jwGUGE6hxDiQEs1GiSmTEvMgSmKyKIkdTIllCCVxQymJP5WSBDsl1mHgoLIpSRpOSXIOJSmnUdJj
BCWpIynpeTolaaNM5ngYp0+aOYH0U84g5ExyFjq2sxnpH8/MieQUNhqX6xxGBo4xmZPJIHKuyZxC
TiVnppl7kOzEsei6ziMkjYwjJJeMRyoPOeRTMryAkpxCSk6bQMmIiZSMnETJ6UWUjDqfkjMmU3Lm
FErOmkrJ2Q5KRmvTzD3J2LILCCkmJaiYUuRcBqtHlemEXEguwsKL0aNeQnAxL+XpZdCAKeU8reCN
K0HFMTFVkMbGOjldzVvW8LSWpy6euhk5z62QcTMYyZ2hkPEeRvI8CsmvY6SgTiGFl1My4QpKJtZT
MqmBkaIGhZzfyMjkRoVM8TIy1asQRxMj065k5IIrFVLsY6TEp5BSPyNlfoVMb2bkwmaFXNTCyMUt
CrlkJiOXzlTIZbMUUj6bkYrZCqmcw0jVVYw4r2ak+mqF1PyLkdp/M+L6DyPuaxiZcY1CPHNhJ9TN
BfO6fB5QV8yHpB6iL9IAYRdpXASJFwIv0rQEkiuvhVPVdx0k/ushab4BkpYbIZm5FJJZyyCZvRyS
OSsgueomSK5eCcm/VkHy75sh+c9qSK5ZA8lcmmgy9ybzwaSYuQ+BcdZSaQuL6YWwj+6m/dfBkNfB
jVAh18OdkJEb4FbIyI1wL6RkKdwMKVkGd0NKlsPtkJEVcD9k5Ca4ITKyEu6IjKyCWyIjN8M9kZHV
cFNkZA3dCulaug3SdfQuSG+hd0N6K90O6W1wl2LkdrhNKWQ93KcouQNuVJRsgAsVJRvhSkXJJgpB
EdlMH4J0C30Y0jvpI5BupY9Cuo0+BulddCedZu5HHwdOE3bBtJ6gZDegJyl5iuKm2wNpLFOeRkSe
odyO9gr0rED7BHpOoOcFeoFyS3xR5PZTtOGXsExRXuaLd4CnB0X9K5Rb6asi95pAhwQKCNQqUJtA
hwV6HTmSIxT3GRrHvRSt4z4KhnQ/BSt8gIIZPkjBhh6iYEwPwxWSkkco2POjFAz6MQoWvZOiMT1O
0Zp20WOQPkHRqHZTtKUnKRrTU/QNSPdQMMqn6ZtAPkPB3vdSMOpn6VuQ30ffBs7PUbSy5yma2QsU
7exFioa2n6KlvUTR1F6maGsH6DuQHqTvQvoKfQ/SV+n7kL5GP4D0EP0Q0gD9CNJW+jGkbfQTSA/T
TyF9nX4G6RH6OaRH6RfUZB5A3qTkSyBOAT2+Q8cd55r7Smjua665b8SCfSvQdwJ9L9APXBU/8vQn
UfSzQL8A+pWS3wD9TskJUfiHQH8K9JdA7QJ1iDGDAs1l3AjmCTSf8cIFjLdcyHSlvcuV9h4q7X1U
2georw9RXx+hpj5GTX2CmvqUa+ozrqnPuaa+4Jr6kmvqONfUV1xTX6OmvuGa+hY19R1X0veorx+4
pn7kmvqJa+pnrqlfuKZ+5Zr6jWvqd66pE1xTf3BN/Qk3aEr+ooshbYebNCUd9FpIg3CjBjfBrod0
HrsB0vnsRkgXsKVsmtkGSlnMzl/G+OZazvjmWsFQRTfhkqjKSrEyq3jZzSKzGhFZIxZrrUDrBLpF
oFsFuo3h3rqdofbW8/QOUbFBoI2M761NIrdZoC0C3SnQVoG2CXSXQHcLtD2kpyUM9XQtAz1dx0BP
1zPQ0w0M9HQjAz0tZaCnZawep4h6WsFQTzcx1NNKhnpaxVBPNzPU02qGelrDQE9rGeppHQM93cJA
Q7cyVNZtDPV0O0M9rWeopzsY6mkDQz1tZKinTQz1tJmhnrYw1NOdDPW0ld0Dq7+N7YD0LnYvpHez
+yDdzu6H9B72AKQ72IOQ3stwX93HcF/dz3BfPcBwXz3IHoLah9jDkD7MHoH0EfYopI+yxyB9jO1k
JvMgsgsDs97a48xI1fmM7mJGpi5k9AlmVFSwkd3MqKpgH08yo0EF23iKGY0q2MUeZtTUZYymkwHK
09h3BaPPYN+VjO7Fvjczmpn8LNasYXQf1qxj9DmsgePoeeQKR8kLyBUOlhc5V0r3I9c7GH2JGU3q
RkZfZkazupnRA8wYo97J6EFmjFV3UPoKM1rUuxh9lRnj1O2MvsaM8Sqs1CFmTFBhlQLMaFVhhVqZ
MVGFVWhjxiQVVuAwMyarMPvByusgmYUcYYnKkKMsUR06jIxhxyDO1cgbUHbuPEoW0qQ3UfynGH0L
xX+a0bdR/L2MvoPi72P0XRT/eUbfQ/FfZPR9FP8lRj9A8Q8w+iGK/wqjH6H4rzH6MYofYPQTFL+N
0U9R/NcZ/QzFP8ro5yj+G4x+geK/xeiXKP47jB5H8d9j9FpQPCVgdF+hYB8w+jUK9hEIRski8P+M
fYMVnzD6LVZ8xmhCL9pTpaQvHQUhUgbtoxJmo/EqVbLoGJWqdnquSgzn0DNVYgTr1lSiJcKNfwlc
jVVi3k7phSqJOUbhfFVJ7FsUHLVKLGAdXwKO28noUqaS+CcY3Qk4AfYyxMJmJZAzAaJihZpjhgdy
ApNIoDw98w9alE49fQPuvlWK+zsWcJ/i+J6x8u9ZFXP/ANkBmIVusLDmmC00kFP1I7N/zRw/MSqp
n4H6hdm/Z4W/MryDk6rfmPt3lgRBf8DRHwbpU9SHeHqXnwBuvR0nwAbcvd1nlyfZyNCqP5j7T4bp
X6woSXXWlbcz+1/QrtfGrKyidvDx7ewIlrWzUP5oeQcr6mBkbgc7dtgRZOSwe67S2uaYp7DAYed8
BWRVVDUm+Q8WyLlw6JEckMa+QAm4bY4FCsPMIshk6pnFkBmkZ5ZAJkvPXAuZwXrmOsgM0TPXQ2ao
nrkBMsP0zI2QydYzSyEzXM8sg0yOnlkOmdP0zArIjMCM9UZYsJzWnEvI0KNDc05twFV1L1Tci5Sq
xcqONUOT4gkZEiqz36LsSIL7W/kSxQVu0X2tUrREoUq6iVnzJR/6P/G5LsTnOsHHFrRmSE5s6NEc
KJl/zEasFkLMQ8yHTYpiC0JZH7xj/RoMluOqZNhGOK5X2ATF+ADEgkuUG5D4k16HxLPsBXRoqqLE
JDygSt0IKW5EyZKtMBhaRqjQ6Zbk0u7qlyrOGZJc1l39MsXpkeTybma+XMzcJDsNcvplxQrFvknp
rZdnOa+R5Td1w+QmxU53rEnqIRuXq6HyQpU6Z8vcym56rhQ94Q4XCJUUnkqTeklWGc5Z4QqHnVq7
jLGSjzHLejlsOFGyqptxVolxOq3NKsXZIsmbu+l0c7edblacMyW5mi/4DL7VI5usVgrhcoP7f43i
WKuETZH8vzPFCXS/8plyXEFDIgaFmWPGgSP6g1UZ3evA7E5HH4VZ5r4FsgP17K2K+zbFebuC9HrF
fYfi3ADVfR0bFQJewoh8zuZ8wAnZyANDk2JQHO6NIJvUG+ff13ETJZHecRP4GUc/ZKAZgcE54End
vTOSc3T9dOvXRFV8Vbz7aVZGiuKZAy6QE/DlVjHHpIIM57YWHmF0rvkob9nmuBxrzRQGgK3SOpGQ
GApuO5YP5j7bcQWOHxtVVI9FFuT3syGQYz0B3XmF2z1REn6dmEt16hqdaNIJn07M0AmPTjTrxFUR
hI0AhPjN0YkrdeJqnVgSavQvnfi3TvxHJ+ZRwVHk5oe6LAhRC0PUohDVohMzJ5qtcMdoPWqf2dbb
SAi4q8WU2BdQkaPW2ZBbIXPMCnGlfbnMKdbLIDdX5lTrVMjNlzmDdRzkNigiZ7SOgNxGmdOsNsg9
KHMmayrkHpI5s9UEuesllxjrH4TYH5Z1sdavIfeIzFms70Fuh2wZZw1Abp7MxVv3Qe4GmUuwPgq5
tTJntW6D3I0yl2hdB7mlMpdkvR5yy2Qu2fovyN0kcynWRsg9KkfvYa2C3EpZl2othtwqmeuJe9h+
s8ylWc+A3GqZ62UdDLnNkktvK2wY+2JZ1wcPCitSfa0MUzgqajuCfZvag3Pag/Pbgze2B1e3B+9o
D97VHnywPfhEe3Bfe/Bge/D19uAb7cF32oOftge/bQ/+1h6kHcGYjmAydO4IDuoIDu0Int4RHNsR
nNgRLO4IXtoRBL4ZsEXiVAhR5qHxl1Bp/OXJbYXJ1Omzepheorah33Rbp+slYscVrqLUOZdaz4sq
Fq0LV0JdAy+wUWejtU8nZjOs5k4lHutvtCt7f5eSa6yHaHTP2dY9WNLmGEatj0RPwwG3EuuGTmVw
R7He0M1YV1tbOi3CldaaTmO1WC/oVDLTep5eUjXKvZu1Oq6nzHoqJdYs2FbHYEcclvvqXdD1zMNy
W6G5rpBVjJvrY8phua3QXDfInMrNdaPMGbi5LpD9jNxcl8ucxs31WpkzcXNdKHNmbq4PSS4x3Fx3
ylwsN9cbZEsLN9d5MhcnzfWw3FbCXA/LbaWbq5Wbq9Wk9DnREbQ+3R4MtAc/ag+eaA+mdwSHdwRz
O4IlHcG6juDVHcFFHcFbOoL3dQSf6wge6Qh+3hGEPuCG4/FoSZGemSetwgCgLoFBXTw4dfvjSuFm
hdrIvWC7VlXhZ0nGoqNVWxT7bmU8bS28U6FJGiGti46idJIPHLDQBgLHp5S20EmLUW8iDjoUBm3F
QCIxFEg0B1oxgIgLBRCtqOlm6JGEB4hFP0DAiibg025k2Y28LCWqbCkv6xFVtoyXpUaV3cTLeuIZ
ZoLpOrbyUzcNp58o21SNcR9mjuv4UdiLwR1lUCDHRapMOVXTcqq2KTlVdwHcDZAG/11E0vkfT09o
3ZtRRR0fyKl4nNnnM8/jrGIXsy9knl2s4gmI6pnnCVaxG4J45tnNKp6EmJ15nmQVT0GIzjxPsYo9
EJEzzx682PShVDUY+X0Icn1BCiVBl8J0EU33jILi9PD9qR+DSQ4Q96cqrfANRjxnBcrPLDqTeM7g
d5wz8I4DDfvjaiBj91mg4AycXlYgp3y7crL5MTm/PtB5AAOp+sH8noYbAvM8zSqeYfaVzPMMq9jL
7Dczz16U/RRVMRjjUOWDsiYpgTbPaCgcSKnByMcdPRH3I8wvWZ8Qg/8uUmCMeGiYiWt4P1zpKp5l
9jXM8yyr2Mfs65hnH6t4Dkqo5zlW8Tyzr6ee51nFC8x+O/W8wCpehEWknhdZxX5mv4N59rOKl5h9
I/O8xCpeZvbNzPMyqzjA7HcyzwFWcZDBqeY5yCpeYfa7mOcVVvEqs29nnldZxWtQxTyvsYpDzH4f
8xxiFQFmf4B5AqyildkfYp5WVtHG7I8wTxurOMzsjzHPYZz0oCiFZXVSmJruGQPFg3FuVpja66z8
KCs8Clp6HTsPMcQocD8P5NjIURuB+0yNCmAAMLa671H8NVq5uchM5pqH1phaHTtwe9aYrX3BKVYB
p9hqU7Vx6N4ao/tepTCWQuo/2mYLpsBV10ooOUmTY4dlE/CZ1SZoYYZ6M1S22djWw7acu23qtu3O
exVex/vKjkNBuHNTYrBXtdl5DzSYKIZQIxoI1vM7sT5sSwC2W6tV25i7bexk7A3dszdENBDsB3Zi
D3yVu23GrdUGztlYrfV4pyMY5kPIUJUp6hrY6OX3Ke77larYEpo5l42nQ23EFnQ+oAy1UYmZxIrE
qsQGiY0SaxKbJDZLHCNxrMQWieMkjpc4QWKrxIkSJ0mcLHGKxD0kTpW4p8RpEveSuLfEfSTuK3G6
xP0k7i9xhsQDJD5F4oES2yTOlHiQxFkSD5Z4iMRDJT7VNpZju8wPkzhb4uG28zjOsZ3O8Wm2URyP
sJ3B8UjbmRyfbjuL41G2szk+wzaa4zNt53B8lm0Mx2fbzuV4tOR/jsRjJD5X4rESnyfxOIlzbYTj
8RBTIc6zMY7zbQrHBTaV40KbgeMJNiPHE20ax5NsJo6LbGaOz7fFcDzZFsvxFJuF46m2OI4dtniO
p9kSOL7AZuW42JbIcYktieNSWzLHZbYUjqfbenB8oS2V44tsPTm+2JbG8SW2XhxfKud1mcTlEldI
XClxlcROW2+Oq219OK6x9eW41pbOscvWj2O3rT/HM2wZHHtsAzius53C8eW2gRxfYbNxXG/L5LjB
NojjRlsWx17bYI6bbEM4vtI2lGOf7VSO/TY7x822YRy32LI5nmkbzvEsWw7Hs22ncTzHNoLjq2wj
Ob5azutfEv9b4v9IfI3AmXPlxs+cpxPzdWKBTizUiUU6sVgnlujEtTpxnU5crxM36MSNOrFUJ5bp
xHKdWKETN+nESp1YpRM368RqnVijE2t1Yp1O3KITt+rEbTpxu06s14k7dGKDTmzUiU06sVkntujE
nTqxVSe26cRdOnG3TmzXiXt0YodO3KsT9+nE/TrxgE48qBMP6cTDOvGITjyqE4/pxE6deFwndunE
EzqxWyee1ImndGKPTjytE8/oxF6deFYn9unEczrxvE68oBMv6sR+nXhJJ17WiQM6cVAnXtGJV3Xi
NZ04pBMBnWjViTadOKwTr+vEEZ04qhPHdOINnXhTJ97Sibd14h2deFcn3tOJ93XiA534UCc+0omP
deITnfhUJz7Tic914gud+FInjuvEVzrxtU58oxPf6sR3OvG9TvygEz/qxE868bNO/KITv+rEbzrx
u06c0Ik/dOJPnfhLJ9p1okMngoKYazmCz2mnRgWRdgwiIVosf1ARUaQh3XMulA8Lh/3ZBojmt7Go
uD8v4M6rinfvhaB/Er45iuwzgCeEs08Dnqhn49wQe7qnhLNvAZ4azh4H7ODZ8rSiNOIZH3CPdz+k
QKW7wUYdDytMFNjIUCyrcz+iCPyo4nhMUUWlY6cCV73xWNHofFzhl5Lx/MOLYHpeoDy3KJd4xgXc
47Kcu4DDeUBhA970PNE0pSiFeMYG3GP1gZw41lh9OOejmBvkfELwHys+7MCKjHV6YbmGK6rZ8hHc
LTLm7laOZMx9UjmKPWfbafIBvIiOy0iewLH7KaWKufcAsyL+tCpKEtxPQ8n5ESVW9zNQMlkv2aug
yM8qNJDhGVe+m6/C7KLdCsXhOs2v/Eml6EmFCBmiBuTrHjVguEQfUJS0tsH9mFnj8T37EjL0GH/N
TjcpE+iL9BA9zD9xkBxVM8ecoHi5OAL3C33h/Mf0RfNDvF5bY8Bsk3uf/tWiPFkvKEymfqwe64YD
kCSbcYWQhkLoZzxJv+dEP2Pnfouw8LD/SCvE54Ytm+GqUq3GWwhprVbbIHukWvWDjGNbhWLbhEar
nlfCljUW0k02tqXwBYU6X4yq5o0hDVXvxzeI01ST2fJaaAU63bBwZV9SMpLXoXzdrI2ox1JcBE5j
+X+fwzgxh3FiDuOi5jCu8xzGRc1hXPQcrAlSwzWaVLE2gfbcTZ8WGh5hYOaYArxb8432Mt9o/0cb
FBZrJDKb8n+DWcBRCFCATE/H9xYNmDryMTtKUWMS5lH83HY0x0VbG6hY2KoDyhLcvOILTVvYpuXX
mIPdfKE5ePIvNBE+hMsCUi6miRrf4YNgC06gsb3ScQXpKwqhjJyBb1XJOPW8qlHuJ1mr+1UFnxpB
4jOjqp6KrDoL345isIrvayg5OzRbPvnR0dlz9DeX10765mKUby5nTsB//hnOBOHtz1WA7BvIqTrG
MnrDElQcA4+cWJRIxlPnMQalcISMNTKDcTw/EFrXVCU+khTLF8b+jliUQNVO5v6GeS4KVH1B3V8x
T0mgvLiomHguCPBvRLbaoUVJqudiGO280IvNRcB3HFMMRk8gxzoAP+G0ei6yXqQTDiRgVfbwRzPr
ONgHR8Uw+ueOdEKw4Fumf/HQnzUZf9ZkJtbnmWCQ3RcM7gwGgYLRc0OjXwKjj1dgVviGF+BPjZ5L
oEVeqMWl0CK/U4tLoUVBqMXF0KKQQQtUQyuf3gTM8u9U01sdt/HHvonYnmtyuuN2/k44KaJkPS8p
CvG8DHierwKTwYGcVhuxoH+zEc9l/KNoq+eyQHkcP3fLSFGc/mVtcqh3OfSegiL0jOpdblV573Jo
PDXUuBQaO8Lil0LlNKzkBjk9iVv0dPd2OrGMQMsLQv0qIFeMC1PIB3lwaJIBNk6rjd7PPzG3eiqs
BhyXeioC7gugvfPKqkOway5wBpQAZD1lgaox7gBs+ApQLRp7Sddhb6UTbThsKQp4Cq+aORT5DwGq
aid9BD9gCnJJq9MHTMpCAlZCv+nhiVVC5YVYmRI1wj10YsBdDU0vwrlM5k2rA3bqqcGkNmzKIOyz
IGw1ChtwrMFPpJW4AVB991PCD0p3lWTruI8r9OKQMDUwwiVMmhEwroZhaqDFpaEWtdDiMnzdbMAQ
wnRUb1UbPbJ7egY6qVi+BCUo3ddsR1JfiOjeh8WtsX8AaW0ZQwbu6W3OHZQLJtrBLHTBUTXyrbsc
xRolJx6a7j+cYUVIfhfIX4lrmMpZuQL84+9eVhRPpYFWYdukqNXfRidmQT9nV83fIjVfzaDKzA3O
RnZAQQ06CzCFwUdbk5KwbVnLUbTuKwNtnjLc+GBcZZ4rYbzaruPdJcZzdR1vgxzP3bXqDlk1IzTX
Ksh5wqZVBYPVhSqdUHl5uNIJlVd0ZbpRMq3vWrVJVjV0rdoiqxqZbsilGcm8rhS/E/M6bzd1i2Rd
U9cluVMsyZVda7aKGp90ZuWtSqujVUFN+hWDwXhhIGfA/KMZc9uUY5hgMHMJBLvnhn4ONRKcdVWb
smQ+mOIl4sPNdNZWeBhCVugTOFy4mlLeEevWKhnVquN1BR1BM7Kf3pX9pcB+TIj9iAj2l/4D9ocl
9xacaWLkTKUtz+xacT+vmNW14gFeMbtrxYO8Yg6umVxN/sMaOAce4pvgqm5qHuY1V3dl9ghn9i8F
LH4sRpgtR1vtnyqFRxS42SWD8beGsnRj4VGFLjqCT/o2Y4oFY2X750rrRgiUW462gRr/jQPbQI38
axjGNUMT0YvI/BcQ58B5OYir/D949PQAv45f5r5U7MeV8cxOC48pGAVcYzAZjE/xi06bcnTAfFCP
qUYdML/G0FqlPoK/oWm1f60UvqFQ+7dK4ZsKnYhqeiTpHJCpTSlqg3sJ9OPfH+bXaNZkOOGrtWrj
wPnH2oTSHPMUOkIzJn4WDJo0k7FtonUS8Fxt/15JGQ88TEUmgiOGOPSRHPqBCNVqtSHQWm1wv6Ug
K+dbCnJ6T3CqVidiTIC34bkUXe0Kxn3tEVxy6egeA7eX4ZlufYj/mqRE+MOUbPCvP4BnrS6j2Lx8
Jy3aSYlnOvSA7eV4lFJUJPhLx71wZzoXWUnfnJLT1TUDg6WsaCk7KYOZMHjUeF/Soi/leKFGF0SH
RuNx0Iv+9+BoDwRHfYLBdcHgHh4czaOUKqoICufTqEeDBRQ/rQ0AG3pbDy+nXaRBLKmVvyOfEUzp
nkRouRD/mqZhK35pe5PZn2KeN1nFW8z+NPO8xSreZva9zPM2q3iH2fcxzzus4l1mf5553mUV7zH7
i8zzHqt4n9lfYp73WcUHzH6AeT5gFR8y+yvM8yGr+IjZX2Oej1jFx8weYJ6PWcUnzN7GPJ+wik+Z
/XXm+ZRVfMbsR5nnM1bxObO/wTyfs4ovmP0t5vmCVXzJ7O8wz5es4jizv8c8x9ElLOLWEB/xWXEt
7sjFFLckunH3WgpGs4TPH1xr+btK6NuiGeYfB42vpYQq3Dtux2YMPebjNOOiGM+FUHYPDYfaO6hK
xYkbflg5QgNlxHOAih+o2khROvPAHnM/ReXPsD6m8mep94aFOoxC3UdxY5v4WXMYh7+f4gEwDBvs
phnJ/dEu8OUv2SAoiHdeoFjnvmrjRKuCdgJsHuC9irDXAcpDjDgeYhyg7vfEzQgL8ALOS8CtAJ/X
aSgae53iD8j4EK/Lw+bBCMleR8ke4mNc9HdjnIEMDtKkLMRtNAnFUydyaXETAfpAScBCZaKNCelp
eBIP87UZhAM8QxNFacC9V7BBgZ8VJO9MyCNcwBSxUkn8DWE3bXUc5e74UaqHa7zwQ67ax/gMcEqD
PC9iwU5eEC9aBdxXOT7i7R7nxVNF8UzxM7uA+2Xq/ljJ2JGUgiNJHbyvbNR1EXD7bCQ+RYjhPibq
F9AtUL5ZrOguPr8eYn7i+OAtRe0TvNaABwXkdkflngxbzUG0mqfC+Vcwvyecb8X80+H8a5h/hufV
QM4gyOwNVx7Aymcpxn14lWnNcrzNY/l9fAEwFIRZZyRzUWH6nygT7djjOYpR3KlQneV5noJ9vEyB
ehaTZzDZC5M/Qt3XiDj1PX4MPs9Z9uRrvw8bHaRAvUL1+hf4trqWSu33g55ZoYZZ2FDsMGxurUSB
Wile7aGula+1jaD2IPscz+JPPEQ/EAVi8Be4nw24X6WJ/JclvPA5WXiEwo0M3zojb2QvcokvFlaA
vyLBxQdrMHJreIWuSRoIjAaFh3g+NASf+CCQxNrzpJLCCPv5CIVCrRGcZyYNF8bxP0wC2L3Ebf5S
wS6pHxfhNe6FxG9CXxFytXpeotYkKVcMb8WXuBUV8irVDR2PHGj7Ap0gtpAQ+WVuLLNDIndxAZfI
YfHmGi9mIebLb/82Go+/0Q6JBIxttVskg828Wa9O9ZGVIMABbie5cpJnyHX6VCG6SbWG9flhWJ9h
loA/489ZByMc3H5k/QrOzeRD1vulQ9lPMxyfK1xrSf0jxsrw7Kahx9Uj8uUNmu2SzXbpzXbpzWhk
s6fk9peysD6D7dcpXyjjHSWIyKtckKv5XnlG1/0+qftdVP54V4zRvRRVPdxfgsP9kPL3ZxQjUP4E
LXoCopBdvEHAeVyJbsjfjYG54ytYZ5qeOYSL8ho1wHI/TPXzqF/EIgCW3T/SxwEvWv4kH6AIfBZm
odEg59dKdGM+1m4pxG46nDo/UIQL5rYHV1sa3nT7Bc3VIE1T314hTUPkEeQcymh4Ax+iGAiDJ84Z
fIRr8EBn55xyKmfUhnazt4uNyIU/JCK0pbLzAsp/em2Sht/9QVjFL7J8qPJvlMJvkNnTdFPmF9qW
LZ49+vCyxaaAew/d3HJEN/W4UyK3gJSFSxkpEH6OoAbwwzMDOdYUjCYd74NrLALKWoAJ7jf3txB/
KEftC1Q9psQfES5UTx5QvgwB5e5g8PlgEKjQ+kKIN09FbpHr20o1GH4jnCTWN/D3pLYgeBYwggPo
TdoiXQpc8GHSciU8T9PwCgPeiHgfXTM0UawpnBz+mUk5ER4w2vmFnHVnkay/81+1ShvBG0HV94r7
BwVDAsnjRaHLQ7whL3lNcBWyc0/ofo4mpXJ3/VzYCtHNi7/TAN69ywGSBZO0XsWZHqSJlBDwmS/S
pIs5lxcjT7tO/qnzFDqdJDxzUEpIwBdjCt47gRHpq3mLl8WsTvCfwh6miRMJ+b8xpDUm0n93tkjr
9TicPDteC4/w6clG2B85wsuhSf2tYVgzxSDPin6j3LuY43qQLJ4KBfIR4SpwM0U/4V5I7asFtYiW
sYjh3U2h43U/HK8ZQoHuJtnL+aMSkV9EnT8p1h24h7ZF7KEloT2EP+69NrSH8Me916n6b/Txx73X
q/pv9PmPe1X9N/r4494bVf03+vjj3qWq/ht93JfLVP03+vq+NPF9aYJ92QKX4M1/BQe3By9oD25r
D2Z1BNd0BP/sCCYFgy0RO/Wd7nZqG9xoxFHn+IBHW4epAQoWc7f+PE3iFtsKG7dVeLDkU7gFHULj
Cegqe5VJ/4QvmVYROBxC5QfCyodb4lyKzTor/xXeWbyB8oKXhAEMggAS5Hmdy9MHxZGc4OK5XG2N
nMSRLm3e7tLmKJ+ouKgd4/c9CLfLfw7fd2PhvrcTW75B8ReXUFvxFbN/wDxfsYqvmf0j5vkaA+A3
o6/ObyErBX8c+Iu8KVvSPV8gm7cj7tvvQGiiGqJvhgsZxq0/Rt0Mj8OiHNdvhouZvBm+y4fkYflP
GGS/B+GJahDhyU841Pv8Vj4EG5yg+GYccP8GJ7JFEO5fFTxd8C4RulB9wHvwLxlzGa8l5ENeNhLL
FrDQBe2EfrMKuL8RJANyPrMZEsTli/P7iIvINfBdNx1sKPbHoAG+cvabVCj+RF9I+0rMfhrKrsLs
Z1yYvsgQL088XsTDOera9Hl4YTpwhC865b8M54OYPx7On8D8V+H8n5j/Opxvx/w34fxfmP+W5+Gy
hG9p34Urf8TK77nE+Kt19w+RZ/8P1P2bPPt5ZMfz4rb0Q4Qif0BF/gjXJ9UwQBbABvoOk28w+Za2
RT7u/0QVxRDzgvyboS6KP05owE3zM8Uh7DQ5Cx0yaG+AsALuoDM8v3ELE976uPDWddjgF5qRgqFJ
+a+06FeIBX+hWCZ/THADE3EZFKS6f4eCJeEC8QOE6yILTkDBtZEFf0DBjaIgy3MCZ/MHJn9i0s5d
fQdPgzydyzCdx9P52GMB4yvhovzXEXz95O8jGriULlpPHTeA7+/d+e/oLWT2tSoeC+kmkGUhiwiW
eUacNRPoXHYjW8H4V90/FUJ3K+Rnvr6rlE7rK5b2Kly9n2nSIO4LYcVRikJQDF/e33DKf4Gk1/Mp
WydLRYzAdf5TXB8weMFHvL/XzP/PFfJ3q/Z32nqI7WHPRmnrF773cqQDzOQhNnd8KLW+xINwfoLT
83qc/CvFz+OFomMoEPhT3rNRwIB7HgMhKQqZFebwQqRgoXv2b3AQqYYJwq2C2xodoWFkVh7bCs52
c2Es1VkOEsvfHsV8v87vd7inqAZHSDwRBs/lf6fzjE68W7Fi8z/je4Kv1ylyvXpGcOLmMEg3B2j6
B/fa4hj7E26fqsZfv34T50zIdru7bB6XV97juokf7+bKO4HFpKThhTL7nPP4vfIvqhpVw2qGd7PB
Rwcfw7lx1/8Lv5dN4NHFt2LPue9R0Do77Rs5W4xK5jIeWAxCkxWl8s72iHB6YcZbWo7oLG20dctm
5Du0RoWTbq/4+uCcz0wGkyrOvhQe8HcaxlqBhVgdXxpiH7rkfS0veS1H5Yiywaa2LS3H8MiFE0MD
/R5GdvfxT6BdxIbJt3N98IBtEcOToIMfIv3wzABuuHFbgTlu3fAKQbMgbzYYmukx9dfC4WzkV8gT
XWx5LsOB0lDZnZZXDjyPgTUYzhdhSWIfEjKedp2XvCzgfhT7oU8nm7WRSHvFDxMMpezB3ze+E2z0
yB6/U/ARbfil/VaVz64dglmMocR4GEr+SOWvDhYyPTLrkJFZXLrnS2SziIXf7BczfDQqiYrMtvPI
bD2DyMzWy0YxMFsBnFcwGZjdJzxURNy2CkpX6dUP6nHbEhZ6Tr0bn6WvZeFnpbuxwXWM6c++y5n8
prucua8S0c31vBb/fQv3ehYRUKxn7mD0yz0vwZd73u8GFnqNP1k/7js2MPEaf1c42IPB8TUe0N+9
xt/IQq/xa1joNX4tC73Gr2ORr/FLGUbeGNndhpHdMia/qNtvx+zyUHY9Zldw4ZP0uA9/2OL2iXnd
xEKP5GuYiKVAUP2RfCWLfBZfFZW7OayIDSjR6nB+I+bXhPPbML82nN+M+XUs4pH8lnDleqy8leG7
5xj+5H0H48uaKWSTb4/r8LRcg8laBpq/nQUc9zBiRW2HntVvY6Fn9duZfFa/nbnnqiJQvJ3hs7qI
C29nnXhGxYXrWfgx/Ras34Deb6MYE+rv4PZ+L5XKE4/pesMsbChMn4u4AMXYyELn4ja2JulM3uNW
xicoHqGhk3t75KG4nXV+NLeehay2MvF4s5zJh4NBoVGzPFsx2YbSbormB1Jv4LPyCAWGxNkI4pwq
l1q8xIQk0d8sNjH54H4rsw4SIkR1F162UzcYcCMf8LQuA84U/5TCyaYOPTfxTX6Z6MnPv0Gezdw9
CB+6nLXKqW9i1hFyVYaSqJoN/209NrPQWzsXr8sGv0SOG3pr15c86q09Qib+1s4ZRLy1R9RHVoIA
W7gZFcpZnhNl79zitmKyjYVsIerBXecLWDy43xnhGW/D/bAVJ2h6kJvpbUy8uN/G5Iv7crGu+ogZ
nuWsu/BjmWy2TG+2jHX34r5KNpNCZYAzl81YZLMVstkKvdkKvZkSEcyo0e/1dTOvQrSCrqebKI9u
tjGFSs0tYxkpNozw5fP7MoZl4uV7GZNP4vfLaHgZc89Tk7KlX5iv8pIFanKymKEsxRd6/us8xw7Y
vgld6mBl72L4bL+G6odOqlhJOdwDTD7XL2fiuX4Z48/1y1l0Iy7Tciks2JZ4pl8uxlqoimf624ST
4DrbHhnNS5uQT/PLWeQ7zd0Mn+YPyad57uA5Cj3J34WWtZZ1tiI5ROSTPO8V8SR/stNQPMnzoULR
2momn+RvZpKRbLEp4L6ZiSd5zkI8yXeShUsZKRD+eoCFXtqEK76HGVSDEYKXHOsK/qMU3r5VrBFX
4BO8eCWwuolZRsI4Q49Cbu+xtsPOlcykmMQYo9xP8ACJ2+bG0Eq0iZVoAR78oXKRat+kpvCvNNsZ
L1msim4yu4Rn8WEy9IFgsfq/fCC4JRhkY4PBsmDwFnx2lFru9gPBDobfJ77Ef+FiBCNm6z58Ic/C
Vevk+ODKCRrQQ9bVLKzuVZGTlY/G7lvQG2pcwWtY1g7xbwdEHA/WHBH5iI+k3R9aXR6pB8FJa80Q
Em5iwj+Lvi+F+oa/F4iM/v34VsbPmNCJGRIkwN+pwfdfgJLczRLPIX/jPLs+nG9nnV7jQx5enGmh
Q0N+AqgSz+Vbu2wca6Go4YfO5vCgn55s0P2R8wy/1v+tmqwfEj7IOt1k5Wv9gf/VOm8Bq1sdYZ1b
QtaJj+1LQtZZHPX0nh/19H5G1NP74Kin995RT++6jWvcxjWw8ZJgUJveHry0PdjeHpzSEdzTETzW
ERwTDJZEmHy3L+33hvf/vXz/38cM8hBvhYirVbij5OHcDLagBdwJi3UHS+zF9XmHrk+8b3LPE/HY
vgV1d2dYd/KxfT3rrLtXeGd5Q7qfhZ7NZb+uT+sPdGnT9Wn9QRZ+Wn+I03rg/XBEzSMR9KMR9GMR
9E6mP8xfq4Ye5uPT0z1LUd7Hmf4w/w2zf8I837CKb5n9M+b5Fmt3saiH+SdC17/rVHH9S0j37MSG
lmT897jl/zwN/xVq8v8Ac4Y7Hg==
|
|
67 | /network/index-edge.html?tag=ant&adt=4&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en | text/html | index-edge.html | 200 OK | HTML | 483.0 B | 03/03/82 00:02:33 |
Download
|
|
SHA256
|
9a8730318c996dff2167edfc05b8fed3d3ec6fe4772f2a8902692ff2de8dbc20
|
Referer
|
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /network/index-edge.html?tag=ant&adt=4&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: YxJxa6ZPlI4VJOCUUeunzwtfq2/KbmWIUfIr8X4/pMfUMkDDWC0DJAv+qrIEKezg21UWx39Ylko=
x-amz-request-id: E43227E0565F5FCF
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 146847
Date: Tue, 13 Dec 2016 16:02:33 GMT
Last-Modified: Fri, 11 Nov 2016 20:47:15 GMT
Expires: Mon, 12 Dec 2016 23:15:06 GMT
Content-Length: 483
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<link href="assets/css/index.css"...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPG1ldGEgaHR0cC1lcXVpdj0ieC11
YS1jb21wYXRpYmxlIiBjb250ZW50PSJJRT1FZGdlIi8+CiAgICA8bGluayBocmVmPSJhc3NldHMv
Y3NzL2luZGV4LmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+CiAgICA8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwOi8vc3RhdGljLmFwLmJpdHRvcnJl
bnQuY29tL2Fkb3MuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9ImFzc2V0cy9qcy9pbmRl
eC1vcHQtaGVhZC5qcyI+PC9zY3JpcHQ+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPGRpdiBpZD0i
YnRfYXBfZGl2Ij48L2Rpdj4KICAgIDxzY3JpcHQgc3JjPSJhc3NldHMvanMvaW5kZXgtb3B0LWJv
ZHkuanMiPjwvc2NyaXB0PgogIDwvYm9keT4KPC9odG1sPgo8IS0tIGYwZWE4NmMgLS0+CgogCjwh
LS0gSW5kZXgtZWRnZS1vcHRpbWl6ZWQgLS0+
|
|
77 | /video/adplayer.html?timestamp=1481644953474&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 03/17/82 17:05:46 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481644953474&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: UvIXtasOuWWBogCfqpwjI3BU9gAY80kScdpGDYXq1/Lw2MTtyfv6MpGgkLJky3Ga6PRNmS+bMhg=
x-amz-request-id: FE8F000B7FBDFB12
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 59156
Date: Tue, 13 Dec 2016 16:02:34 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Tue, 13 Dec 2016 23:36:38 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
91 | /video/adplayer.html?timestamp=1481645074066&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 01/04/86 21:54:04 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481645074066&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: UvIXtasOuWWBogCfqpwjI3BU9gAY80kScdpGDYXq1/Lw2MTtyfv6MpGgkLJky3Ga6PRNmS+bMhg=
x-amz-request-id: FE8F000B7FBDFB12
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 59283
Date: Tue, 13 Dec 2016 16:04:34 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Tue, 13 Dec 2016 23:36:31 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
108 | /video/adplayer.html?timestamp=1481645195197&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 11/09/89 06:15:22 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481645195197&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: vrw2yDTwsbsftlCYwHOGB2uY9eWU0s1AK3NrkWhha5P7wX8OhORSFA8BWGvKfYOaIy6swJdHbxA=
x-amz-request-id: 6EE465A008C97B36
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 59378
Date: Tue, 13 Dec 2016 16:06:35 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Tue, 13 Dec 2016 23:36:57 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
119 | /video/adplayer.html?timestamp=1481645315257&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 08/28/93 02:42:53 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481645315257&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: yy3OsZD5ftYYwj2xRWDuEPqCxucXmYy0S04rteE37xlzV8v1Um39utlrFlyfrfowfZBfN2O5GGA=
x-amz-request-id: 5B9C799C3CE60195
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 59542
Date: Tue, 13 Dec 2016 16:08:35 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Tue, 13 Dec 2016 23:36:13 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
136 | /video/adplayer.html?timestamp=1481645435048&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 06/14/97 14:48:56 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481645435048&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: UvIXtasOuWWBogCfqpwjI3BU9gAY80kScdpGDYXq1/Lw2MTtyfv6MpGgkLJky3Ga6PRNmS+bMhg=
x-amz-request-id: FE8F000B7FBDFB12
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 59682
Date: Tue, 13 Dec 2016 16:10:35 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Tue, 13 Dec 2016 23:35:53 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
150 | /video/adplayer.html?timestamp=1481645556407&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 04/18/01 22:27:40 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481645556407&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: UvIXtasOuWWBogCfqpwjI3BU9gAY80kScdpGDYXq1/Lw2MTtyfv6MpGgkLJky3Ga6PRNmS+bMhg=
x-amz-request-id: FE8F000B7FBDFB12
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 56777
Date: Tue, 13 Dec 2016 16:12:36 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Wed, 14 Dec 2016 00:26:19 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
159 | /video/adplayer.html?timestamp=1481645674832&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 01/21/05 12:55:11 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481645674832&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: UvIXtasOuWWBogCfqpwjI3BU9gAY80kScdpGDYXq1/Lw2MTtyfv6MpGgkLJky3Ga6PRNmS+bMhg=
x-amz-request-id: FE8F000B7FBDFB12
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 56896
Date: Tue, 13 Dec 2016 16:14:35 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Wed, 14 Dec 2016 00:26:19 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
166 | /video/adplayer.html?timestamp=1481645795293&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 11/17/08 18:21:36 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481645795293&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: UvIXtasOuWWBogCfqpwjI3BU9gAY80kScdpGDYXq1/Lw2MTtyfv6MpGgkLJky3Ga6PRNmS+bMhg=
x-amz-request-id: FE8F000B7FBDFB12
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 57016
Date: Tue, 13 Dec 2016 16:16:35 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Wed, 14 Dec 2016 00:26:19 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
175 | /video/adplayer.html?timestamp=1481645915644&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 09/05/12 18:42:40 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481645915644&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: UvIXtasOuWWBogCfqpwjI3BU9gAY80kScdpGDYXq1/Lw2MTtyfv6MpGgkLJky3Ga6PRNmS+bMhg=
x-amz-request-id: FE8F000B7FBDFB12
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 60157
Date: Tue, 13 Dec 2016 16:18:35 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Tue, 13 Dec 2016 23:35:58 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
183 | /video/adplayer.html?timestamp=1481646035837&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 06/27/16 16:08:03 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481646035837&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: UvIXtasOuWWBogCfqpwjI3BU9gAY80kScdpGDYXq1/Lw2MTtyfv6MpGgkLJky3Ga6PRNmS+bMhg=
x-amz-request-id: FE8F000B7FBDFB12
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 60252
Date: Tue, 13 Dec 2016 16:20:36 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Tue, 13 Dec 2016 23:36:24 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
191 | /video/adplayer.html?timestamp=1481646155509&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 04/15/20 07:09:51 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481646155509&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: UvIXtasOuWWBogCfqpwjI3BU9gAY80kScdpGDYXq1/Lw2MTtyfv6MpGgkLJky3Ga6PRNmS+bMhg=
x-amz-request-id: FE8F000B7FBDFB12
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 60382
Date: Tue, 13 Dec 2016 16:22:35 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Tue, 13 Dec 2016 23:36:13 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
200 | /video/adplayer.html?timestamp=1481646276830&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 02/16/24 01:51:31 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481646276830&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: UvIXtasOuWWBogCfqpwjI3BU9gAY80kScdpGDYXq1/Lw2MTtyfv6MpGgkLJky3Ga6PRNmS+bMhg=
x-amz-request-id: FE8F000B7FBDFB12
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 60483
Date: Tue, 13 Dec 2016 16:24:37 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Tue, 13 Dec 2016 23:36:34 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
208 | /video/adplayer.html?timestamp=1481646396985&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 12/07/27 17:48:21 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481646396985&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: UvIXtasOuWWBogCfqpwjI3BU9gAY80kScdpGDYXq1/Lw2MTtyfv6MpGgkLJky3Ga6PRNmS+bMhg=
x-amz-request-id: FE8F000B7FBDFB12
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 60603
Date: Tue, 13 Dec 2016 16:26:37 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Tue, 13 Dec 2016 23:36:34 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
216 | /video/adplayer.html?timestamp=1481646516202&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 09/17/31 06:40:40 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481646516202&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: UvIXtasOuWWBogCfqpwjI3BU9gAY80kScdpGDYXq1/Lw2MTtyfv6MpGgkLJky3Ga6PRNmS+bMhg=
x-amz-request-id: FE8F000B7FBDFB12
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 60763
Date: Tue, 13 Dec 2016 16:28:36 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Tue, 13 Dec 2016 23:35:53 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
224 | /video/adplayer.html?timestamp=1481646636217&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 07/13/35 05:24:12 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481646636217&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: UvIXtasOuWWBogCfqpwjI3BU9gAY80kScdpGDYXq1/Lw2MTtyfv6MpGgkLJky3Ga6PRNmS+bMhg=
x-amz-request-id: FE8F000B7FBDFB12
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 60842
Date: Tue, 13 Dec 2016 16:30:36 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Tue, 13 Dec 2016 23:36:34 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
232 | /video/adplayer.html?timestamp=1481646756660&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 05/01/39 05:15:28 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481646756660&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: UvIXtasOuWWBogCfqpwjI3BU9gAY80kScdpGDYXq1/Lw2MTtyfv6MpGgkLJky3Ga6PRNmS+bMhg=
x-amz-request-id: FE8F000B7FBDFB12
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 60985
Date: Tue, 13 Dec 2016 16:32:36 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Tue, 13 Dec 2016 23:36:11 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
240 | /video/adplayer.html?timestamp=1481646876883&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 02/21/43 14:34:56 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481646876883&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: UvIXtasOuWWBogCfqpwjI3BU9gAY80kScdpGDYXq1/Lw2MTtyfv6MpGgkLJky3Ga6PRNmS+bMhg=
x-amz-request-id: FE8F000B7FBDFB12
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 61101
Date: Tue, 13 Dec 2016 16:34:37 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Tue, 13 Dec 2016 23:36:16 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
248 | /video/adplayer.html?timestamp=1481646996996&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 12/12/46 01:57:01 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481646996996&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: UvIXtasOuWWBogCfqpwjI3BU9gAY80kScdpGDYXq1/Lw2MTtyfv6MpGgkLJky3Ga6PRNmS+bMhg=
x-amz-request-id: FE8F000B7FBDFB12
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 61222
Date: Tue, 13 Dec 2016 16:36:37 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Tue, 13 Dec 2016 23:36:15 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
255 | /video/adplayer.html?timestamp=1481647117087&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 10/02/50 18:25:43 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481647117087&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: UvIXtasOuWWBogCfqpwjI3BU9gAY80kScdpGDYXq1/Lw2MTtyfv6MpGgkLJky3Ga6PRNmS+bMhg=
x-amz-request-id: FE8F000B7FBDFB12
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 61320
Date: Tue, 13 Dec 2016 16:38:37 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Tue, 13 Dec 2016 23:36:37 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
264 | /video/adplayer.html?timestamp=1481647237435&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 07/26/54 09:30:00 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481647237435&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: UvIXtasOuWWBogCfqpwjI3BU9gAY80kScdpGDYXq1/Lw2MTtyfv6MpGgkLJky3Ga6PRNmS+bMhg=
x-amz-request-id: FE8F000B7FBDFB12
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 61464
Date: Tue, 13 Dec 2016 16:40:37 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Tue, 13 Dec 2016 23:36:13 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
272 | /video/adplayer.html?timestamp=1481647357588&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 05/16/58 16:44:16 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481647357588&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: UvIXtasOuWWBogCfqpwjI3BU9gAY80kScdpGDYXq1/Lw2MTtyfv6MpGgkLJky3Ga6PRNmS+bMhg=
x-amz-request-id: FE8F000B7FBDFB12
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 58578
Date: Tue, 13 Dec 2016 16:42:37 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Wed, 14 Dec 2016 00:26:19 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
280 | /video/adplayer.html?timestamp=1481647477684&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 03/06/62 18:46:30 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481647477684&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: UvIXtasOuWWBogCfqpwjI3BU9gAY80kScdpGDYXq1/Lw2MTtyfv6MpGgkLJky3Ga6PRNmS+bMhg=
x-amz-request-id: FE8F000B7FBDFB12
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 61706
Date: Tue, 13 Dec 2016 16:44:37 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Tue, 13 Dec 2016 23:36:11 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
288 | /video/adplayer.html?timestamp=1481647598844&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 01/07/66 14:02:24 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481647598844&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: UvIXtasOuWWBogCfqpwjI3BU9gAY80kScdpGDYXq1/Lw2MTtyfv6MpGgkLJky3Ga6PRNmS+bMhg=
x-amz-request-id: FE8F000B7FBDFB12
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 61841
Date: Tue, 13 Dec 2016 16:46:39 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Tue, 13 Dec 2016 23:35:58 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
296 | /video/adplayer.html?timestamp=1481647718577&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 10/23/69 21:20:50 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481647718577&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: UvIXtasOuWWBogCfqpwjI3BU9gAY80kScdpGDYXq1/Lw2MTtyfv6MpGgkLJky3Ga6PRNmS+bMhg=
x-amz-request-id: FE8F000B7FBDFB12
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 61946
Date: Tue, 13 Dec 2016 16:48:38 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Tue, 13 Dec 2016 23:36:12 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
304 | /video/adplayer.html?timestamp=1481647838198&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 08/10/73 21:18:35 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481647838198&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: UvIXtasOuWWBogCfqpwjI3BU9gAY80kScdpGDYXq1/Lw2MTtyfv6MpGgkLJky3Ga6PRNmS+bMhg=
x-amz-request-id: FE8F000B7FBDFB12
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 62067
Date: Tue, 13 Dec 2016 16:50:38 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Tue, 13 Dec 2016 23:36:11 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
312 | /video/adplayer.html?timestamp=1481647959441&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 06/11/77 13:18:55 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481647959441&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: UvIXtasOuWWBogCfqpwjI3BU9gAY80kScdpGDYXq1/Lw2MTtyfv6MpGgkLJky3Ga6PRNmS+bMhg=
x-amz-request-id: FE8F000B7FBDFB12
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 62184
Date: Tue, 13 Dec 2016 16:52:39 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Tue, 13 Dec 2016 23:36:15 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
321 | /video/adplayer.html?timestamp=1481648079486&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 04/01/81 07:58:34 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481648079486&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: UvIXtasOuWWBogCfqpwjI3BU9gAY80kScdpGDYXq1/Lw2MTtyfv6MpGgkLJky3Ga6PRNmS+bMhg=
x-amz-request-id: FE8F000B7FBDFB12
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 62306
Date: Tue, 13 Dec 2016 16:54:39 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Tue, 13 Dec 2016 23:36:13 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
328 | /video/adplayer.html?timestamp=1481648198663&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 01/10/85 00:57:49 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481648198663&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: UvIXtasOuWWBogCfqpwjI3BU9gAY80kScdpGDYXq1/Lw2MTtyfv6MpGgkLJky3Ga6PRNmS+bMhg=
x-amz-request-id: FE8F000B7FBDFB12
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 62401
Date: Tue, 13 Dec 2016 16:56:39 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Tue, 13 Dec 2016 23:36:38 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
336 | /video/adplayer.html?timestamp=1481648318942&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 11/02/88 01:14:55 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481648318942&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: UvIXtasOuWWBogCfqpwjI3BU9gAY80kScdpGDYXq1/Lw2MTtyfv6MpGgkLJky3Ga6PRNmS+bMhg=
x-amz-request-id: FE8F000B7FBDFB12
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 62560
Date: Tue, 13 Dec 2016 16:58:39 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Tue, 13 Dec 2016 23:35:59 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
384 | /video/adplayer.html?timestamp=1481653721520&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 01/17/60 04:09:31 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481653721520&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: UvIXtasOuWWBogCfqpwjI3BU9gAY80kScdpGDYXq1/Lw2MTtyfv6MpGgkLJky3Ga6PRNmS+bMhg=
x-amz-request-id: FE8F000B7FBDFB12
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 67930
Date: Tue, 13 Dec 2016 18:28:41 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Tue, 13 Dec 2016 23:36:31 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
410 | /video/adplayer.html?timestamp=1481657322958&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 06/02/10 03:37:39 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481657322958&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: UvIXtasOuWWBogCfqpwjI3BU9gAY80kScdpGDYXq1/Lw2MTtyfv6MpGgkLJky3Ga6PRNmS+bMhg=
x-amz-request-id: FE8F000B7FBDFB12
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 71547
Date: Tue, 13 Dec 2016 19:28:43 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Tue, 13 Dec 2016 23:36:16 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
451 | /video/adplayer.html?timestamp=1481662724566&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 07/15/27 07:00:43 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481662724566&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: UvIXtasOuWWBogCfqpwjI3BU9gAY80kScdpGDYXq1/Lw2MTtyfv6MpGgkLJky3Ga6PRNmS+bMhg=
x-amz-request-id: FE8F000B7FBDFB12
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 76928
Date: Tue, 13 Dec 2016 20:58:45 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Tue, 13 Dec 2016 23:36:37 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
564 | /video/adplayer.html?timestamp=1481677129345&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 03/06/73 22:03:26 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481677129345&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: UvIXtasOuWWBogCfqpwjI3BU9gAY80kScdpGDYXq1/Lw2MTtyfv6MpGgkLJky3Ga6PRNmS+bMhg=
x-amz-request-id: FE8F000B7FBDFB12
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 4958
Date: Wed, 14 Dec 2016 00:58:49 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Wed, 14 Dec 2016 23:36:11 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
621 | /video/adplayer.html?timestamp=1481684331890&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 01/02/96 13:12:13 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481684331890&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: UvIXtasOuWWBogCfqpwjI3BU9gAY80kScdpGDYXq1/Lw2MTtyfv6MpGgkLJky3Ga6PRNmS+bMhg=
x-amz-request-id: FE8F000B7FBDFB12
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 12138
Date: Wed, 14 Dec 2016 02:58:52 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Wed, 14 Dec 2016 23:36:34 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
749 | /video/adplayer.html?timestamp=1481700537894&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 05/12/47 04:21:59 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481700537894&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: UvIXtasOuWWBogCfqpwjI3BU9gAY80kScdpGDYXq1/Lw2MTtyfv6MpGgkLJky3Ga6PRNmS+bMhg=
x-amz-request-id: FE8F000B7FBDFB12
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 28344
Date: Wed, 14 Dec 2016 07:28:58 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Wed, 14 Dec 2016 23:36:34 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
764 | /video/adplayer.html?timestamp=1481702337933&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 01/23/53 11:11:38 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481702337933&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: UvIXtasOuWWBogCfqpwjI3BU9gAY80kScdpGDYXq1/Lw2MTtyfv6MpGgkLJky3Ga6PRNmS+bMhg=
x-amz-request-id: FE8F000B7FBDFB12
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 30164
Date: Wed, 14 Dec 2016 07:58:58 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Wed, 14 Dec 2016 23:36:14 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|
|
788 | /video/adplayer.html?timestamp=1481705940246&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t | text/html | adplayer.html | 200 OK | HTML | 11.1 KB | 06/23/64 18:50:43 |
Download
|
|
SHA256
|
d64fc7c4f7acfebf9b78478758f023a582dc1dd0f5c92bb51e78ea37d5d8edfa
|
Referer
|
http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
|
Magic
|
HyperText Markup Language (HTML)
|
Request
|
GET /video/adplayer.html?timestamp=1481705940246&flightid=1618433&tag=aHR0cDovL3ZwYWlkLnB1Ym1hdGljLmNvbS9hZHMvdmlkZW8vdmFkdGFnLmh0bWw/YWR0eXBlPTEzJnB1YklkPTU0MTE5JnNpdGVJZD0xNTA2OTQmYWRJZD03NTUzMjMmdmFkRm10PTImdm1pbmw9MSZ2bWF4bD0xMjAmdnR5cGU9MSZ2cG9zPTEmdmg9MjUwJnZ3PTMwMCZ2Zm10PTErMiszKzQrNSs2KzcrOCZrYWRwYWdldXJsPXd3dy5iaXRtZWRpYW5ldHdvcmsuY29t HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: http://cdn.bitmedianetwork.com/network/index-edge.html?tag=ant&adt=5&browser=ie&clientdata=utorrent%7c3%2e4%2e9%2e42973%7c0&geo=cz&ie=8&page=torrent&site=33049&w=498073862&langs=en
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: cdn.bitmedianetwork.com
Connection: Keep-Alive
Cookie: __qca=P0-181676054-1481644846442
|
Response Header
|
HTTP/1.1 200 OK
x-amz-id-2: UvIXtasOuWWBogCfqpwjI3BU9gAY80kScdpGDYXq1/Lw2MTtyfv6MpGgkLJky3Ga6PRNmS+bMhg=
x-amz-request-id: FE8F000B7FBDFB12
x-amz-meta-cache-control: max-age=86400
Content-Type: text/html
Server: AmazonS3
Age: 33746
Date: Wed, 14 Dec 2016 08:59:00 GMT
Last-Modified: Fri, 11 Nov 2016 20:50:04 GMT
Expires: Wed, 14 Dec 2016 23:36:34 GMT
Content-Length: 11375
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: max-age=86400
|
Response Peek (128 B)
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
<meta http-equiv="content-type" content=...
|
PCFET0NUWVBFIGh0bWw+CjxodG1sPjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29t
cGF0aWJsZSIgY29udGVudD0iSUU9RWRnZSIvPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KICA8bGluayBocmVmPSJj
c3MvdmlkZW8tanMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KICA8bGlu
ayBocmVmPSJjc3MvdmlkZW8uYWRzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgPGxpbmsgaHJlZj0iY3NzL3ZpZGVvanMudmFzdC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiPgoKICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgaHRtbCwgYm9k
eSwgI2ZyYW1lLXdyYXBwZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDog
MDsKICAgICAgbGVmdDogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgbWFyZ2luOiAwOwogICAg
ICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OwogICAgfQoKICAgIC52aWRlby1qcyAu
dmpzLWJpZy1wbGF5LWJ1dHRvbiwKICAgIC52aWRlby1qcyAudmpzLWxpdmUtY29udHJvbHMsCiAg
ICAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25l
OwogICAgfQoKICAgIC5uby1zY3J1YmJlciAudmpzLXByb2dyZXNzLWNvbnRyb2wsCiAgICAubm8t
c2NydWJiZXIgLnZqcy1wbGF5LWNvbnRyb2wgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoK
ICAgIC52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHsKICAgICAgcGFkZGluZy1yaWdodDog
MTBweDsKICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIH0KCiAgICAuY29udGVudC1sb2Fk
aW5nIHsKICAgICAgYmFja2dyb3VuZDogdXJsKCdjc3MvbG9hZGluZy5naWYnKSBuby1yZXBlYXQg
Y2VudGVyIGNlbnRlciBmaXhlZDsKICAgIH0KCiAgICAuY29udGVudC1vdmVyIHsKICAgICAgYmFj
a2dyb3VuZDogdXJsKCJhYm91dDpibGFuayIpIGJsYWNrOwogICAgfQoKICAgICNsb2FkaW5nLXdy
YXBwZXIgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgfQoK
ICAgICNhZC13cmFwcGVyIHsKICAgICAgcG9zaXRpb246IGluaGVyaXQ7CiAgICB9CgogICAgI3Zw
YWlkLWFkIHsKICAgICAgei1pbmRleDogMTAwMDsKICAgIH0KCiAgICAudmFzdC1ibG9ja2VyIHsK
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJhYm91dDpibGFuayIpOwogICAgfQogIDwvc3R5
bGU+CgogIDwhLS1baWYgbHQgSUUgOV0+PHNjcmlwdCBzcmM9ImpzL2VzNS5qcyI+PC9zY3JpcHQ+
PCFbZW5kaWZdLS0+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvanF1ZXJ5LTEuMTEuMi5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii9hc3NldHMvanMvYmFzZTY0LmpzIj48L3NjcmlwdD4K
ICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9iZW5jaC5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBz
cmM9Ii9hc3NldHMvanMvc3dmb2JqZWN0LmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iL2Fz
c2V0cy9qcy92cGFpZC5qcyI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJqcy92aWRlby5qcyI+
PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9ImpzL3ZpZGVvanMuYWRzLmpzIj48L3NjcmlwdD4KICA8
c2NyaXB0IHNyYz0ianMvdmFzdC1jbGllbnQuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgc3JjPSJq
cy92aWRlb2pzLnZhc3QuanMiPjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICB2aWRlb2pzLm9wdGlvbnMudGVjaE9yZGVyID0gWyJmbGFzaCJdOwogICAgdmlk
ZW9qcy5vcHRpb25zLmZsYXNoLnN3ZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KC9bXlwvXSokLywgJycpICsgInZpZGVvLWpzLnN3ZiI7ICAgLy92LmpzIHJlcXVpcmVzIGV4YWN0
IHBhdGgKCiAgICBCZW5jaC5pID0gMTAwNjsKICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJhZHBsYXllcmxvYWRlZCIpOwoKICAgIHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0
aCgpOwogICAgdmFyIHdpbmRvd0hlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAvLyBn
ZXQgdXNlciBwYXJhbXMgaGVscGVyIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiB1cmxQYXJhbShrZXkp
IHsKICAgICAgdmFyIHBhaXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSku
c3BsaXQoIiYiKTsKCiAgICAgIGZvciAodmFyIGkgaW4gcGFpcnMpIHsKICAgICAgICB2YXIgcGFy
dHMgPSBkZWNvZGVVUklDb21wb25lbnQocGFpcnNbaV0pLnNwbGl0KCI9Iik7CiAgICAgICAgaWYg
KHBhcnRzWzBdID09IGtleSAmJiBwYXJ0c1sxXSkgewogICAgICAgICAgcmV0dXJuIHBhcnRzWzFd
OwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gIiI7CiAgICB9CgogICAgLy8gY3Jvc3Mt
YnJvd3NlciBiYXNlNjQtZGVjb2RpbmcKICAgIGZ1bmN0aW9uIHBhcnNlQmFzZTY0KGJhc2U2NFN0
cmluZykgewogICAgICB2YXIgcmF3U3RyaW5nID0gIiI7CgogICAgICBpZih0eXBlb2YgYXRvYiA9
PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJhd1N0cmluZyA9IGF0b2IoYmFzZTY0U3RyaW5nKTsK
ICAgICAgfSBlbHNlIHsKICAgICAgICByYXdTdHJpbmcgPSBCYXNlNjQuZGVjb2RlKGJhc2U2NFN0
cmluZykucmVwbGFjZSgvW14gLX5dL2csIiIpOwogICAgICB9CiAgICAgIHJldHVybiByYXdTdHJp
bmc7CiAgICB9CgogICAgdmFyIGFkVGFnVXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oInRhZyIp
KSwKICAgICAgICBjb250ZW50VXJsID0gcGFyc2VCYXNlNjQodXJsUGFyYW0oImNvbnRlbnQiKSks
CiAgICAgICAgdnBhaWRBZCA9IHt9LAogICAgICAgIHBsYXllclZvbHVtZSA9IDAsCiAgICAgICAg
YWRTdGFydGVkID0gZmFsc2UsCiAgICAgICAgYWRFbmRlZCA9IGZhbHNlLAogICAgICAgIGNvbnRl
bnRFbmRlZCA9IGZhbHNlOwoKICAgIC8vIHdhcm5pbmc6IHZvbHVtZSB1cmwgcGFyYW1ldGVyIG92
ZXJ3cml0ZXMgZXhpc3Rpbmcgdm9sdW1lIHNldHRpbmcKICAgIGlmICh1cmxQYXJhbSgidm9sdW1l
IikgIT0gIiIpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGFyc2VGbG9hdCh1cmxQYXJhbSgidm9s
dW1lIikpCiAgICB9CgogICAgZnVuY3Rpb24gZ2V0TWVkaWFGaWxlKGFkcykgewogICAgICBpZiAo
YWRzLmxlbmd0aCAmJiBhZHNbMF0ubGluZWFyQWQubWVkaWFGaWxlcy5sZW5ndGgpIHsKICAgICAg
ICBmb3IgKHZhciBpIGluIGFkc1swXS5saW5lYXJBZC5tZWRpYUZpbGVzKSB7CiAgICAgICAgICB2
YXIgbWVkaWFGaWxlID0gYWRzWzBdLmxpbmVhckFkLm1lZGlhRmlsZXNbaV0ubWltZVR5cGUudG9M
b3dlckNhc2UoKTsKCiAgICAgICAgICBpZiAobWVkaWFGaWxlLmluZGV4T2YoImZsYXNoIikgPiAt
MSkgewogICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2cGFpZCIsICJpbmRleCI6IGkgfTsK
ICAgICAgICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLmluZGV4T2YoInZpZGVvIikgPiAtMSkgewog
ICAgICAgICAgICByZXR1cm4geyAidHlwZSI6ICJ2YXN0IiwgImluZGV4IjogaSB9OwogICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIHJldHVybiB7ICJ0eXBlIjogIm5vbmUiLCAi
aW5kZXgiOiAtMX07CiAgICB9CgogICAgLy8gc2V0cyB2b2x1bWVzIGZvciBhbGwgcGxheWVycyBh
bmQgZG9uJ3QgY2hva2UgaWYgb2JqZWN0IGlzbid0IHByZXNlbnQKICAgIGZ1bmN0aW9uIHNldFZv
bHVtZShsZXZlbCkgewogICAgICBpZiAodHlwZW9mIHZwYWlkQWQgIT0gInVuZGVmaW5lZCIgJiYg
dHlwZW9mIHZwYWlkQWQuYWQudm9sdW1lID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2cGFpZEFk
LnZvbHVtZShsZXZlbCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBwbGF5ZXIudm9sdW1lID09
ICJmdW5jdGlvbiIpIHsKICAgICAgICBwbGF5ZXIudm9sdW1lKGxldmVsKTsKICAgICAgfQogICAg
ICBwbGF5ZXJWb2x1bWUgPSBsZXZlbDsKICAgIH0KCiAgICAvLyB0aGUgZm9sbG93aW5nIE9WQSBj
YWxsYmFja3MgbXVzdCBiZSBpbiB0aGUgZ2xvYmFsIHNjb3BlCiAgICBmdW5jdGlvbiBvbkFkU2No
ZWR1bGluZ0NvbXBsZXRlKGFkcykgewogICAgICB2YXIgbWVkaWFGaWxlID0gZ2V0TWVkaWFGaWxl
KGFkcyk7CgogICAgICBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2cGFpZCIpIHsKICAgICAgICAv
LyBmb3JjZS1yZXNpemUgYWQgcGxhY2VtZW50IGluIGNhc2UgYSBwYXJ0bmVyJ3MgaW50ZXJtZWRp
YXJ5IHN3ZiB0d2Vha3MgYWQgc2l6ZQogICAgICAgIHZwYWlkQWQucmVzaXplQWQod2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCk7CiAgICAgICAgJCgiI3BsYXllciIpLmNzcygidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKCiAgICAgICAgdnBhaWRBZC5zdGFydEFkKG1lZGlhRmlsZS5pbmRleCk7CiAg
ICAgIH0gZWxzZSBpZiAobWVkaWFGaWxlLnR5cGUgPT09ICJ2YXN0IikgewogICAgICAgIC8vIFZB
U1QgZmFsbGJhY2sKICAgICAgICAkKCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAgIHBs
YXllci5hZHMoKTsKICAgICAgICBwbGF5ZXIudmFzdCh7CiAgICAgICAgICAidXJsIjogYWRUYWdV
cmwsCiAgICAgICAgICAic2tpcCI6IC0xCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkludmFsaWRBZFR5cGUiKTsKICAgICAgICBy
ZXR1cm4gb25WUEFJREFkQ29tcGxldGUoe30sIHt9KTsKICAgICAgfQogICAgfQoKICAgIGZ1bmN0
aW9uIG9uVlBBSURBZFN0YXJ0KGFkLCBzdGF0ZSkgewogICAgICAkKCIjbG9hZGluZy13cmFwcGVy
IikucmVtb3ZlQ2xhc3MoImNvbnRlbnQtbG9hZGluZyIpOwogICAgICB2cGFpZEFkLnZvbHVtZSgw
KTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRJbXByZXNzaW9uKGFkLCBzdGF0ZSkgewog
ICAgICBhZFN0YXJ0ZWQgPSB0cnVlOwoKICAgICAgdmFyIGFkRGF0YSA9IHsKICAgICAgICAiYWRT
eXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRUaXRsZSI6IGFkLmFkVGl0bGUg
fHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIsICJBZEltcHJl
c3Npb24iLCBhZERhdGEpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uVlBBSURBZENsaWNrVGhydShh
ZCwgc3RhdGUpIHsKICAgICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkQ2xpY2tUaHJ1
Iik7CiAgICB9CgogICAgZnVuY3Rpb24gb25WUEFJREFkVmlkZW9TdGFydChhZCwgc3RhdGUpIHsK
ICAgICAgdnBhaWRBZC52b2x1bWUoMCk7CiAgICAgIEJlbmNoLnNlbmRQaW5nKCJhcC52aWRlbyIs
ICJBZFZpZGVvU3RhcnQiKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvblZQQUlEQWRDb21wbGV0ZShh
ZCwgc3RhdGUpIHsKICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICB9CgogICAgZnVu
Y3Rpb24gb25WUEFJREFkVmlkZW9Db21wbGV0ZShhZCwgc3RhdGUpIHsKICAgICAgaWYgKHR5cGVv
ZiB3aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICB3
aW5kb3cuZXh0ZXJuYWwuYWRDb21wbGV0ZSgpOwogICAgICB9CgogICAgICBCZW5jaC5zZW5kUGlu
ZygiYXAudmlkZW8iLCAiQWRWaWRlb0NvbXBsZXRlIik7CiAgICB9CgogICAgZnVuY3Rpb24gb25W
UEFJREFkRXJyb3IoYWQsIHN0YXRlKSB7CiAgICAgIG9uVlBBSURBZENvbXBsZXRlKGFkLCBzdGF0
ZSk7CgogICAgICB2YXIgYWREYXRhID0gewogICAgICAgICJhZFN5c3RlbSI6IGFkLmFkU3lzdGVt
IHx8ICcnLAogICAgICAgICJhZFRpdGxlIjogYWQuYWRUaXRsZSB8fCAnJwogICAgICB9OwoKICAg
ICAgQmVuY2guc2VuZFBpbmcoImFwLnZpZGVvIiwgIkFkRXJyb3IiLCBhZERhdGEpOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG9uVlBBSURBZExvYWRlZChhZCwgc3RhdGUpIHsKICAgICAgdmFyIGFkRGF0
YSA9IHsKICAgICAgICAiYWRTeXN0ZW0iOiBhZC5hZFN5c3RlbSB8fCAnJywKICAgICAgICAiYWRU
aXRsZSI6IGFkLmFkVGl0bGUgfHwgJycKICAgICAgfTsKCiAgICAgIEJlbmNoLnNlbmRQaW5nKCJh
cC52aWRlbyIsICJBZExvYWRlZCIsIGFkRGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gc2FmZUFk
emVya1Bhc3NiYWNrKGZsaWdodElkKSB7CiAgICAgIHZhciBhZG9zV2luZG93ID0gd2luZG93OwoK
ICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoIWFkb3NXaW5kb3cuZGl2TmFtZSkgewogICAgICAg
ICAgaWYgKGFkb3NXaW5kb3cgPT0gYWRvc1dpbmRvdy5wYXJlbnQpCiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgYWRvc1dpbmRvdyA9IGFkb3NXaW5kb3cucGFyZW50CiAgICAgICAgfQogICAg
ICAgIGlmIChhZG9zV2luZG93LmRpdk5hbWUpIHsKICAgICAgICAgIHZhciBmdW5jID0gYWRvc1dp
bmRvdy5hemtfcGFzc2JhY2sgfHwgYWRvc1dpbmRvdy5wYXJlbnQuYXprX3Bhc3NiYWNrOwogICAg
ICAgICAgZnVuYyhhZG9zV2luZG93LmRpdk5hbWUsIFtmbGlnaHRJZF0pOwogICAgICAgIH0KICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgIHdpbmRvd3MgPSBbXTsKICAgICAgICBjdXJyZW50V2lu
ZG93ID0gd2luZG93OwoKICAgICAgICB3aGlsZShjdXJyZW50V2luZG93ICE9IGN1cnJlbnRXaW5k
b3cucGFyZW50KSB7CiAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJl
bnQ7CiAgICAgICAgICB3aW5kb3dzLnB1c2goY3VycmVudFdpbmRvdyk7CiAgICAgICAgfQoKICAg
ICAgICBmb3IodmFyIGk9MDsgaSA8IHdpbmRvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdp
bmRvd3NbaV0ucG9zdE1lc3NhZ2Uoe2ZsaWdodElkczogW2ZsaWdodElkXX0sICcqJykKICAgICAg
ICB9CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpc0luQ2xpZW50QWRGcmFtZSgpIHsKICAg
ICAgdHJ5IHsKICAgICAgICB2YXIgZXhwZWN0ZWRQYXJlbnRQYWdlID0gd2luZG93LmxvY2F0aW9u
Lm9yaWdpbiArIHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgICAgaWYgKHdp
bmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKGV4cGVjdGVkUGFyZW50UGFnZSkgPiAt
MSAmJiAgICAgLy8gcGFnZSBvbiBzYW1lIGRvbWFpbiBhcyBwYXJlbnQgZnJhbWUKICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmID09PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhy
ZWYgJiYgICAgICAgICAvLyBwYXJlbnQgZnJhbWUgaXMgdG9wIGZyYW1lCiAgICAgICAgICAgIHdp
bmRvdy50b3AuYWRvcyAhPT0gdW5kZWZpbmVkKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gYWR6ZXJrIGZyYW1ld29yayBwcmVzZW50IGluIHBhcmVudAoKICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgY29uc29s
ZS5sb2coInZpZGVvIGNvdWxkIG5vdCBhY2Nlc3MgY2xpZW50IGFkIGZyYW1lLiIpOwogICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQoKICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4K
ICA8ZGl2IGlkPSJsb2FkaW5nLXdyYXBwZXIiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1z
a2luIHZqcy1mdWxsc2NyZWVuIGNvbnRlbnQtbG9hZGluZyI+CiAgICA8ZGl2IGlkPSJhZC13cmFw
cGVyIj4KICAgICAgPGRpdiBpZD0idnBhaWQtYWQiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2
IGlkPSJwbGF5ZXItd3JhcHBlciI+CiAgICAgIDx2aWRlbyBpZD0icGxheWVyIiBjbGFzcz0idmpz
LXRlY2ggdmlkZW8tanMgdmpzLWRlZmF1bHQtc2tpbiIKICAgICAgICAgIGNvbnRyb2xzIGF1dG9w
bGF5PSJmYWxzZSIgcHJlbG9hZD0ibm9uZSIgZGF0YS1zZXR1cD0ne30nCiAgICAgICAgICB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+CiAgICAg
IDwvdmlkZW8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgICAkKCIjYWQtd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQpLndpZHRoKHdp
bmRvd1dpZHRoKTsKICAgICQoIiNwbGF5ZXItd3JhcHBlciIpLmhlaWdodCh3aW5kb3dIZWlnaHQp
LndpZHRoKHdpbmRvd1dpZHRoKTsKCiAgICB2YXIgcGxheWVyID0gdmlkZW9qcygicGxheWVyIik7
CgogICAgLy8gdmlkZW8uanMtb25seSB2b2x1bWUgY2hhbmdlciBoYW5kbGVyCiAgICBwbGF5ZXIu
b24oInZvbHVtZWNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKICAgICAgcGxheWVyVm9sdW1lID0gcGxh
eWVyLnZvbHVtZSgpOwogICAgfSk7CgogICAgLy8ga2VlcHMgdGhlIHBsYXllciBoaWRkZW4gdW50
aWwgdmlkZW8gaXMgZnVsbHkgcmVhZHkKICAgIHBsYXllci5vbigicGxheSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKHdpbmRvdy5pbm5lcldpZHRoKS5oZWlnaHQod2lu
ZG93LmlubmVySGVpZ2h0KTsKICAgICAgc2V0Vm9sdW1lKHBsYXllclZvbHVtZSk7CiAgICB9KTsK
CiAgICBwbGF5ZXIub24oImFkc3RhcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFkU3RhcnRlZCA9
IHRydWU7CiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xh
c3MoIm5vLXNjcnViYmVyIik7CiAgICB9KTsKCiAgICAvLyBhc3N1bWluZyBvbmUgYWQgb25seQog
ICAgcGxheWVyLm9uZSgiYWRlbmQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICQoIiNsb2FkaW5nLXdy
YXBwZXIiKS5yZW1vdmVDbGFzcygiY29udGVudC1sb2FkaW5nIikuYWRkQ2xhc3MoImNvbnRlbnQt
b3ZlciIpOzsKCiAgICAgIHRyeSB7CiAgICAgICAgdnBhaWRBZC5kZXN0cm95KCk7CiAgICAgIH0g
Y2F0Y2goZSkge30KCiAgICAgIGFkRW5kZWQgPSB0cnVlOwogICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgIGNvbnNvbGUud2FybigidmlkZW8gYWQgYXR0ZW1wdCBlbmRpbmc7IG5vIHBsYXli
YWNrIG9jY3VycmVkLiIpOwoKICAgICAgICBzYWZlQWR6ZXJrUGFzc2JhY2socGFyc2VJbnQodXJs
UGFyYW0oImZsaWdodGlkIikpKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmIChp
c0luQ2xpZW50QWRGcmFtZSgpKSB7CiAgICAgICAgd2luZG93LnRvcC5sb2NhdGlvbi5yZWxvYWQo
KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHBsYXllci5yZW1vdmVDbGFzcygibm8t
c2NydWJiZXIiKTsKICAgICAgaWYgKCFjb250ZW50VXJsKSB7CiAgICAgICAgY29udGVudEVuZGVk
ID0gdHJ1ZTsKICAgICAgICBwbGF5ZXIudHJpZ2dlcigiZW5kZWQiKTsKICAgICAgfQogICAgICAk
KCIjYWQtd3JhcHBlciIpLnJlbW92ZSgpOwogICAgICAkKCIjcGxheWVyIikuY3NzKCJ2aXNpYmls
aXR5IiwgInZpc2libGUiKTsKCiAgICAgIHBsYXllci5zcmMoY29udGVudFVybCkucGxheSgpOwog
ICAgfSk7CgogICAgLy8gY2xldmVyIGhhY2tzIHRvIGhpZGUgYWxsIHRyYWNlcyBvZiBwbGF5ZXIg
dW50aWwgaXRzIGZ1bGx5IHJlYWR5CiAgICBwbGF5ZXIub25lKCdhZHNyZWFkeScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgJCgiI3BsYXllciIpLndpZHRoKDEpLmhlaWdodCgxKS5jc3MoInZpc2liaWxp
dHkiLCAidmlzaWJsZSIpOwogICAgICBwbGF5ZXIuc3JjKGNvbnRlbnRVcmwpLnBhdXNlKCk7CiAg
ICB9KTsKCiAgICAvLyBhbGwgcm91dGVzIHNob3VsZCBlbmQgdGhyb3VnaCBoZXJlCiAgICBwbGF5
ZXIub24oImVuZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAvLyB3aXRob3V0IGEgdmFsaWQgY29u
dGVudCBVUkwsIG1hcmsgdGhlIGNvbnRlbnQgcGxheWJhY2sgc3RlcCBvdmVyCiAgICAgIGlmIChh
ZEVuZGVkICYmIHBsYXllci5jdXJyZW50U3JjKCkgPT0gY29udGVudFVybCkgewogICAgICAgIGNv
bnRlbnRFbmRlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIC8vIGRvbid0IG5lZWQgcGxheWVyIGVs
ZW1lbnRzIG9uY2Ugd2UncmUgZG9uZTsganVzdCBnbyB0byBibGFjayBiYWNrZ3JvdW5kCiAgICAg
IGlmIChhZEVuZGVkICYmIGNvbnRlbnRFbmRlZCkgewogICAgICAgICQoIiNsb2FkaW5nLXdyYXBw
ZXIiKS5hZGRDbGFzcygiY29udGVudC1vdmVyIik7CgogICAgICAgIHBsYXllci5kaXNwb3NlKCk7
CiAgICAgICAgJCgiI3BsYXllci13cmFwcGVyIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0pOwoK
ICAgIHBsYXllci5vbigiZXJyb3IiLCBmdW5jdGlvbiAoZSkgewogICAgICBhZEVuZGVkID0gY29u
dGVudEVuZGVkID0gdHJ1ZTsKICAgICAgcGxheWVyLnRyaWdnZXIoImVuZGVkIik7CiAgICB9KTsK
CiAgICAvLyBzZXQgYmFzZSB2b2x1bWVzIGFuZCBpbi1jbGllbnQga2V5LXZhbCBzdG9yYWdlIG9u
IHVzZXIncyB2ZXJ5IGZpcnN0IGFjdGlvbiBvbiBhbiBhZAogICAgJCgiYm9keSIpLm9uZSgibW91
c2VlbnRlciIsIGZ1bmN0aW9uICgpIHsKICAgICAgc2V0Vm9sdW1lKDAuOCk7ICAgICAvLyBkZWZh
dWx0IGJhc2Ugdm9sdW1lCiAgICAgIGlmICghYWRFbmRlZCkgewogICAgICAgIEJlbmNoLnNlbmRQ
aW5nKCJhcC52aWRlbyIsICJVc2VyQWN0aXZlIik7CiAgICAgIH0KICAgIH0pOwoKICAgICQoZnVu
Y3Rpb24oKSB7CiAgICAgIGlmIChhZFRhZ1VybCkgewogICAgICAgIC8vIHNldCBhIGhhcmQgdGlt
ZW91dCB0byBjYXRjaCBhZHMgdGhhdCBmYWlsIHRvIHBsYXkgZm9yIHVua25vd24gcmVhc29ucwog
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIWFkU3RhcnRlZCkg
ewogICAgICAgICAgICBjb25zb2xlLndhcm4oInZpZGVvIGFkIHBsYXliYWNrIHRpbWluZyBvdXQi
KTsKICAgICAgICAgICAgcGxheWVyLnRyaWdnZXIoImFkZW5kIik7CiAgICAgICAgICB9CiAgICAg
ICAgfSwgODAwMCk7CgogICAgICAgIHZwYWlkanMub3B0aW9ucy5zd2ZQYXRoID0gIi9hc3NldHMv
c3dmL3ZwYWlkanMuc3dmIjsKCiAgICAgICAgdnBhaWRBZCA9IG5ldyBWUEFJRCgidnBhaWQtYWQi
LCB7CiAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEJlbmNoLnNl
bmRQaW5nKCJhcC52aWRlbyIsICJBZEF0dGVtcHQiKTsKICAgICAgICAgICAgdnBhaWRBZC5pbml0
QWQoYWRUYWdVcmwpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAg
ICAgIHBsYXllci50cmlnZ2VyKCJhZGVuZCIpOwogICAgICB9CiAgICB9KTsKICA8L3NjcmlwdD4K
PC9ib2R5PjwvaHRtbD4KPCEtLSBmMGVhODZjIC0tPgo=
|