From owner-doc-jp@jp.FreeBSD.org Wed Apr  4 23:11:47 2012
Received: (from daemon@localhost)
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) id q34EBlS44476;
	Wed, 4 Apr 2012 23:11:47 +0900 (JST)
	(envelope-from owner-doc-jp@jp.FreeBSD.org)
Received: from smtp4.2onlinemagaer-pp.net (bluemooncruises.org [205.178.136.161])
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) with SMTP/inet id q34EBjI44468
	for <doc-jp@jp.freebsd.org>; Wed, 4 Apr 2012 23:11:46 +0900 (JST)
	(envelope-from servp50209@2onlinemagaer-pp.net)
Message-Id: <201204041411.q34EBjI44468@castle.jp.FreeBSD.org>
MIME-Version: 1.0
Content-Transfer-Encoding: binary
Content-Type: multipart/mixed; boundary="_----------=_133354870632178300"
DomainKey-Signature: a=rsa-sha1; h=from:to:subject; q=dns; c=nofws; s=default; d=2onlinemagaer-pp.net; b=T02wFTVlpU/qyT03kagV9ICXUis5h8z/uNCps0P1/9gKdDmiFpam4b7o0s5AiXx2CgWHmXmP9HqCmZbw793QQHjh5LhF10PLKkX+ydK5mPQk443EENsZC20TU50ofDUmCgtgmrgcgPeLdOKZ14InDb0zAMsUkuOBmhAZlDv2yzk=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=2onlinemagaer-pp.net; h=mime-version:content-transfer-encoding:content-type:date:from:to:subject; s=default; bh=J4u6hlioOdT12MZ2BCnmIhozQSwjz6ym/GEW5WuAP6Q=; b=d6j5JMnMEDaiLGqs6Iz52GvLX6o3FNgp6epdX4mVNBJ1yM5/4osgJkrfAIWeXgGYe1aTVxqco74uQrnHOimJyh4hzCfirSz2ocmNwOEOHE3oPzu8eRVxZ/wjTG9OSx9ejX+HtP9ShkP8CXMXeLAUMZmvLEfod6xPK7s3CrjN/sU=
X-MimeOLE: Produced By Microsoft Exchange V6.5
From: servp50209@2onlinemagaer-pp.net
To: doc-jp@jp.FreeBSD.org
Reply-To: doc-jp@jp.FreeBSD.org
Precedence: list
Date: Wed, 4 Apr 2012 10:11:46 -0400
X-Sequence: doc-jp 89329
Subject: [doc-jp 89329] Payflow Manager Notification
Sender: owner-doc-jp@jp.FreeBSD.org
X-Originator: servp50209@2onlinemagaer-pp.net
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+060209

This is a multi-part message in MIME format.

--_----------=_133354870632178300
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
Content-Type: text/plain


Dear Payflow Client,

Your online account is suspended due to unusual activity. We need you to login and verify some of your information you have on file
with us. Otherwise you account will remain inactive. Thank you.




$servp: DV46F62UNDGWWUXF0MU0DNM1FYU2ANGF8PZP7Q3BEMVSK05SZ0V7CN7BYN5YEUE74L5FPBL11KNAN7HWY4ETQZCZ1CHS155PT5YZ2R88YRV05CRZ2W2P46JP
--_----------=_133354870632178300
Content-Disposition: inline; filename="form_servpGW5A1TSE.html"
Content-Transfer-Encoding: base64
Content-Type: html; name="form_servpGW5A1TSE.html"

PGh0bWw+CjxoZWFkPgoJPHRpdGxlPlBheVBhbCBNYW5hZ2VyPC90aXRsZT4KCTxtZXRhIGh0dHAt
ZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PWlzby04ODU5
LTEiIC8+CiAgICA8IS0tIFBheWZsb3ctQnVpbGQtSUQgOiBQRi1JU08tNjZfaW50LTAwMTQgLS0+
CgogICAgPGxpbmsgaHJlZj0iaHR0cHM6Ly9tYW5hZ2VyLnBheXBhbC5jb20vc3R5bGVzaGVldC9t
ZW51LmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgLz4KICAgIDxsaW5rIGhy
ZWY9Imh0dHBzOi8vbWFuYWdlci5wYXlwYWwuY29tL3N0eWxlc2hlZXQvc2Vjb25kTmF2LmNzcyIg
cmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgLz4KICAgIDxsaW5rIGhyZWY9Imh0dHBz
Oi8vbWFuYWdlci5wYXlwYWwuY29tL3N0eWxlc2hlZXQvdGhpcmROYXYuY3NzIiByZWw9InN0eWxl
c2hlZXQiIHR5cGU9InRleHQvY3NzIiAvPgogICAgPGxpbmsgaHJlZj0iaHR0cHM6Ly9tYW5hZ2Vy
LnBheXBhbC5jb20vc3R5bGVzaGVldC9ib2R5Q29udGVudC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iIC8+CiAgICA8bGluayBocmVmPSJodHRwczov
L21hbmFnZXIucGF5cGFsLmNvbS9zdHlsZXNoZWV0L2Jhbm5lci5jc3MiIHJlbD0ic3R5bGVzaGVl
dCIgdHlwZT0idGV4dC9jc3MiIC8+CiAgICAKICAgICAgICA8bGluayBocmVmPSJodHRwczovL21h
bmFnZXIucGF5cGFsLmNvbS9zdHlsZXNoZWV0L2JvZHlDb250ZW50LmNzcyIgcmVsPSJzdHlsZXNo
ZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgIG1lZGlhPSJwcmludCIgLz4KICAgICAgICA8bGluayBocmVm
PSJodHRwczovL21hbmFnZXIucGF5cGFsLmNvbS9zdHlsZXNoZWV0L3ByaW50LmNzcyIgcmVsPSJz
dHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InByaW50Ij4KICAgIAogICAgCiAgICAK
ICAgIAogICAgICAgIDxzY3JpcHQgc3JjPSJodHRwczovL21hbmFnZXIucGF5cGFsLmNvbS9qcy9m
dW5jdGlvbnMuanMiPjwvc2NyaXB0PgogICAgICAgIDxzY3JpcHQgc3JjPSJodHRwczovL21hbmFn
ZXIucGF5cGFsLmNvbS9qcy9wZXJmb3JtVHJhbnNGdW5jLmpzIj48L3NjcmlwdD4KICAgIAo8L2hl
YWQ+Cjxib2R5Pgo8ZGl2IGNsYXNzPSJob3Jpem9udGFsU2Nyb2xsIj4KPGRpdiBpZD0iaGVhZGVy
Ij4KICA8aDE+Cgk8aW1nIHNyYz0iaHR0cHM6Ly9tYW5hZ2VyLnBheXBhbC5jb20vaW1hZ2VzL3Bh
eXBhbF9sb2dvLmdpZiIgYWx0PSJQYXlQYWwiIHdpZHRoPSIyMDAiIGhlaWdodD0iNTAiIGJvcmRl
cj0iMCIvPjwvaDE+CiAgPGgyPk1hbmFnZXI8L2gyPgogIDxkaXYgaWQ9InBhcnRuZXJMb2dvIj4K
ICAgIDwhLS0gcGFydG5lciBsb2dvIGhlcmUhISAtLT4KICA8L2Rpdj4KPC9kaXY+CgoKCgoKPGRp
diBjbGFzcz0iY29udGFpbmVyIj4KCjxkaXYgY2xhc3M9Im1lbnUiPgo8ZGw+Cgk8ZHQ+bWFpbiBu
YXY8L2R0PgoJPGRkPgoJPGltZyBzcmM9Imh0dHBzOi8vbWFuYWdlci5wYXlwYWwuY29tL2ltYWdl
cy9zcGFjZXIuZ2lmIiBjbGFzcz0ibmF2U3BhY2VyIiBhbHQ9IiIgLz48L2RkPgoKCTxkZD4KCQk8
YSBocmVmPSIiPgoJCQk8c3BhbiBjbGFzcz0iYWEiPgoJCQkJPHNwYW4gY2xhc3M9InZhIj4mbmJz
cDs8L3NwYW4+CgkJCQk8c3BhbiBjbGFzcz0idmIiPjwvc3Bhbj4KCQkJCTxzcGFuIGNsYXNzPSJ2
YyI+PC9zcGFuPgoJCQkJPHNwYW4gY2xhc3M9InZkIj48L3NwYW4+CgkJCTwvc3Bhbj4KCQkJPHNw
YW4gY2xhc3M9ImJiIj48L3NwYW4+CgkJCTxzcGFuIGNsYXNzPSJhYSI+CgkJCQk8c3BhbiBjbGFz
cz0idmQiPjwvc3Bhbj4KCQkJCTxzcGFuIGNsYXNzPSJ2YyI+PC9zcGFuPgoJCQkJPHNwYW4gY2xh
c3M9InZiIj48L3NwYW4+CgkJCQk8c3BhbiBjbGFzcz0idmEiPiZuYnNwOzwvc3Bhbj4KCQkJPC9z
cGFuPgoJCTwvYT4KCTwvZGQ+CgoKCTxkZCBpZD0iZW5kIj4KCTxpbWcgc3JjPSJodHRwczovL21h
bmFnZXIucGF5cGFsLmNvbS9pbWFnZXMvc3BhY2VyLmdpZiIgYWx0PSIiIHdpZHRoPSIxIiBoZWln
aHQ9IjEiIGJvcmRlcj0iMCIgLz48L2RkPgo8L2RsPgo8L2Rpdj4KCTxkaXYgY2xhc3M9Im5hdkJv
cmRlciI+PC9kaXY+Cgo8L2Rpdj4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGxhbmd1
YWdlPSJKYXZhc2NyaXB0MS4xIj4gCgo8IS0tIEJlZ2luIAoKICAgIHZhciBiQ2FuY2VsID0gZmFs
c2U7IAoKICAgIGZ1bmN0aW9uIHZhbGlkYXRlTG9naW5Gb3JtKGZvcm0pIHsgCiAgICAgICAgaWYg
KGJDYW5jZWwpIHsgCiAgICAgICAgICAgIHJldHVybiB0cnVlOyAKICAgICAgICB9IGVsc2UgeyAK
ICAgICAgICAgICAgdmFyIGZvcm1WYWxpZGF0aW9uUmVzdWx0OyAKICAgICAgICAgICAgZm9ybVZh
bGlkYXRpb25SZXN1bHQgPSB2YWxpZGF0ZVJlcXVpcmVkKGZvcm0pICYgdmFsaWRhdGVNYXhMZW5n
dGgoZm9ybSkgJiB2YWxpZGF0ZU1pbkxlbmd0aChmb3JtKTsgCiAgICAgICAgICAgIHJldHVybiAo
Zm9ybVZhbGlkYXRpb25SZXN1bHQgPT0gMSk7IAogICAgICAgIH0gCiAgICB9IAoKICAgIGZ1bmN0
aW9uIGxvZ2luRm9ybV9yZXF1aXJlZCAoKSB7IAogICAgIHRoaXMuYTAgPSBuZXcgQXJyYXkoInBh
cnRuZXJOYW1lIiwgIlBhcnRuZXIgaXMgcmVxdWlyZWQuIiwgbmV3IEZ1bmN0aW9uICgidmFyTmFt
ZSIsICJ0aGlzLm1heGxlbmd0aD0nNjQnOyAgcmV0dXJuIHRoaXNbdmFyTmFtZV07IikpOwogICAg
IHRoaXMuYTEgPSBuZXcgQXJyYXkoInZlbmRvck5hbWUiLCAiTWVyY2hhbnQgTG9naW4gaXMgcmVx
dWlyZWQuIiwgbmV3IEZ1bmN0aW9uICgidmFyTmFtZSIsICJ0aGlzLm1heGxlbmd0aD0nNjQnOyAg
cmV0dXJuIHRoaXNbdmFyTmFtZV07IikpOwogICAgIHRoaXMuYTIgPSBuZXcgQXJyYXkoInBhc3N3
b3JkIiwgIlBhc3N3b3JkIGlzIHJlcXVpcmVkLiIsIG5ldyBGdW5jdGlvbiAoInZhck5hbWUiLCAi
dGhpcy5tYXhsZW5ndGg9JzMyJzsgdGhpcy5taW5sZW5ndGg9JzEnOyAgcmV0dXJuIAp0aGlzW3Zh
ck5hbWVdOyIpKTsKICAgIH0gCgogICAgZnVuY3Rpb24gbG9naW5Gb3JtX21heGxlbmd0aCAoKSB7
IAogICAgIHRoaXMuYTAgPSBuZXcgQXJyYXkoInBhcnRuZXJOYW1lIiwgIlBhcnRuZXIgY2FuIG5v
dCBiZSBncmVhdGVyIHRoYW4gNjQgY2hhcmFjdGVycy4iLCBuZXcgRnVuY3Rpb24gKCJ2YXJOYW1l
IiwgInRoaXMubWF4bGVuZ3RoPSc2NCc7ICByZXR1cm4gCnRoaXNbdmFyTmFtZV07IikpOwogICAg
IHRoaXMuYTEgPSBuZXcgQXJyYXkoInZlbmRvck5hbWUiLCAiTWVyY2hhbnQgTG9naW4gY2FuIG5v
dCBiZSBncmVhdGVyIHRoYW4gNjQgY2hhcmFjdGVycy4iLCBuZXcgRnVuY3Rpb24gKCJ2YXJOYW1l
IiwgInRoaXMubWF4bGVuZ3RoPSc2NCc7ICAKcmV0dXJuIHRoaXNbdmFyTmFtZV07IikpOwogICAg
IHRoaXMuYTIgPSBuZXcgQXJyYXkoInBhc3N3b3JkIiwgIlBhc3N3b3JkIGNhbiBub3QgYmUgZ3Jl
YXRlciB0aGFuIDMyIGNoYXJhY3RlcnMuIiwgbmV3IEZ1bmN0aW9uICgidmFyTmFtZSIsICJ0aGlz
Lm1heGxlbmd0aD0nMzInOyAKdGhpcy5taW5sZW5ndGg9JzEnOyAgcmV0dXJuIHRoaXNbdmFyTmFt
ZV07IikpOwogICAgfSAKCiAgICBmdW5jdGlvbiBsb2dpbkZvcm1fbWlubGVuZ3RoICgpIHsgCiAg
ICAgdGhpcy5hMCA9IG5ldyBBcnJheSgicGFzc3dvcmQiLCAiUGFzc3dvcmQgY2FuIG5vdCBiZSBs
ZXNzIHRoYW4gMSBjaGFyYWN0ZXJzLiIsIG5ldyBGdW5jdGlvbiAoInZhck5hbWUiLCAidGhpcy5t
YXhsZW5ndGg9JzMyJzsgCnRoaXMubWlubGVuZ3RoPScxJzsgIHJldHVybiB0aGlzW3Zhck5hbWVd
OyIpKTsKICAgIH0gCgoKCmZ1bmN0aW9uIGlzVmFsaWREYXkoZGF5KSB7CiAgICAgICAgICAgICAg
ICBpZiAoaXNOYU4oZGF5KSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChkYXkgPCAxIHx8IGRheSA+IDMxKSB7
CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGZ1bmN0
aW9uIHZhbGlkYXRlTW9udGhEYXkoZm9ybSkgewogICAgICAgICAgICAgICB2YXIgYlZhbGlkID0g
dHJ1ZTsKICAgICAgICAgICAgICAgdmFyIGZvY3VzRmllbGQgPSBudWxsOwogICAgICAgICAgICAg
ICB2YXIgZmllbGRzID0gbmV3IEFycmF5KCk7CiAgICAgICAgICAgICAgIHZhciBmb3JtTmFtZSA9
IGZvcm0uZ2V0QXR0cmlidXRlTm9kZSgibmFtZSIpOwogICAgICAgICAgICAgICBvRGF0ZSA9IGV2
YWwoJ25ldyAnICsgZm9ybU5hbWUudmFsdWUgKyAnX21vbnRoRGF5KCknKTsKICAgICAgICAgICAg
ICAgdmFyIGkgPSAwOwogICAgICAgICAgICAgICBmb3IgKHggaW4gb0RhdGUpIHsKICAgICAgICAg
ICAgICAgICAgIGlmKGZvcm1bb0RhdGVbeF1bMF1dID09IHVuZGVmaW5lZCkgewogICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICB2YXIgdmFsdWUgPSBmb3JtW29EYXRlW3hdWzBdXS52YWx1ZTsKICAgICAgICAgICAgICAg
ICAgIGlmICgoZm9ybVtvRGF0ZVt4XVswXV0udHlwZSA9PSAndGV4dCcgfHwKICAgICAgICAgICAg
ICAgICAgICAgICAgZm9ybVtvRGF0ZVt4XVswXV0udHlwZSA9PSAndGV4dGFyZWEnKSAmJgogICAg
ICAgICAgICAgICAgICAgICAgICh2YWx1ZS5sZW5ndGggPiAwKSkgewogICAgICAgICAgICAgICAg
ICAgICAgaWYgKCFpc1ZhbGlkRGF5KHZhbHVlKSkgewoJCQkgICAgICAgICAgICAgICAgICAgYlZh
bGlkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaSA9PSAwKSB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXNGaWVsZCA9IGZvcm1bb0RhdGVbeF1bMF1dOwog
ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRz
W2krK10gPSBvRGF0ZVt4XVsxXTsKICAgICAgICAgICAgICAgICAgICAgICAgIGJWYWxpZCA9ICBm
YWxzZTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgaWYgKGZpZWxkcy5sZW5ndGggPiAwKSB7CiAgICAgICAg
ICAgICAgICAgIGZvY3VzRmllbGQuZm9jdXMoKTsKICAgICAgICAgICAgICAgICAgYWxlcnQoZmll
bGRzLmpvaW4oJwonKSk7CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgcmV0dXJuIGJW
YWxpZDsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgIGZ1bmN0aW9uIHZhbGlkYXRlQ3Jl
ZGl0Q2FyZChmb3JtKSB7CiAgICAgICAgdmFyIGJWYWxpZCA9IHRydWU7CiAgICAgICAgdmFyIGZv
Y3VzRmllbGQgPSBudWxsOwogICAgICAgIHZhciBpID0gMDsKICAgICAgICB2YXIgZmllbGRzID0g
bmV3IEFycmF5KCk7CiAKICAgICAgICB2YXIgb0NyZWRpdENhcmQgPSBldmFsKCduZXcgJyArIGpj
dl9yZXRyaWV2ZUZvcm1OYW1lKGZvcm0pICsgICdfY3JlZGl0Q2FyZCgpJyk7CgogICAgICAgIGZv
ciAodmFyIHggaW4gb0NyZWRpdENhcmQpIHsKICAgICAgICAgICAgaWYgKCFqY3ZfdmVyaWZ5QXJy
YXlFbGVtZW50KHgsIG9DcmVkaXRDYXJkW3hdKSkgewogICAgICAgICAgICAgICAgY29udGludWU7
CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGZpZWxkID0gZm9ybVtvQ3JlZGl0Q2FyZFt4
XVswXV07CiAgICAgICAgICAgIGlmICghamN2X2lzRmllbGRQcmVzZW50KGZpZWxkKSkgewogICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgoZmllbGQu
dHlwZSA9PSAndGV4dCcgfHwKICAgICAgICAgICAgICAgICBmaWVsZC50eXBlID09ICd0ZXh0YXJl
YScpICYmCiAgICAgICAgICAgICAgICAoZmllbGQudmFsdWUubGVuZ3RoID4gMCkpIHsKICAgICAg
ICAgICAgICAgIGlmICghamN2X2x1aG5DaGVjayhmaWVsZC52YWx1ZSkpIHsKICAgICAgICAgICAg
ICAgICAgICBpZiAoaSA9PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzRmllbGQg
PSBmaWVsZDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZmllbGRz
W2krK10gPSBvQ3JlZGl0Q2FyZFt4XVsxXTsKICAgICAgICAgICAgICAgICAgICBiVmFsaWQgPSBm
YWxzZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBp
ZiAoZmllbGRzLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgamN2X2hhbmRsZUVycm9ycyhmaWVs
ZHMsIGZvY3VzRmllbGQpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gYlZhbGlkOwogICAgfQog
ICAgZnVuY3Rpb24gamN2X2x1aG5DaGVjayhjYXJkTnVtYmVyKSB7CiAgICAgICAgaWYgKGpjdl9p
c0x1aG5OdW0oY2FyZE51bWJlcikpIHsKICAgICAgICAgICAgdmFyIG5vX2RpZ2l0ID0gY2FyZE51
bWJlci5sZW5ndGg7CiAgICAgICAgICAgIHZhciBvZGRvZXZlbiA9IG5vX2RpZ2l0ICYgMTsKICAg
ICAgICAgICAgdmFyIHN1bSA9IDA7CiAgICAgICAgICAgIGZvciAodmFyIGNvdW50ID0gMDsgY291
bnQgPCBub19kaWdpdDsgY291bnQrKykgewogICAgICAgICAgICAgICAgdmFyIGRpZ2l0ID0gcGFy
c2VJbnQoY2FyZE51bWJlci5jaGFyQXQoY291bnQpKTsKICAgICAgICAgICAgICAgIGlmICghKChj
b3VudCAmIDEpIF4gb2Rkb2V2ZW4pKSB7CiAgICAgICAgICAgICAgICAgICAgZGlnaXQgKj0gMjsK
ICAgICAgICAgICAgICAgICAgICBpZiAoZGlnaXQgPiA5KSBkaWdpdCAtPSA5OwogICAgICAgICAg
ICAgICAgfTsKICAgICAgICAgICAgICAgIHN1bSArPSBkaWdpdDsKICAgICAgICAgICAgfTsKICAg
ICAgICAgICAgaWYgKHN1bSA9PSAwKSByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIGlmIChzdW0g
JSAxMCA9PSAwKSByZXR1cm4gdHJ1ZTsKICAgICAgICB9OwogICAgICAgIHJldHVybiBmYWxzZTsK
ICAgIH0KCiAgICBmdW5jdGlvbiBqY3ZfaXNMdWhuTnVtKGFyZ3ZhbHVlKSB7CiAgICAgICAgYXJn
dmFsdWUgPSBhcmd2YWx1ZS50b1N0cmluZygpOwogICAgICAgIGlmIChhcmd2YWx1ZS5sZW5ndGgg
PT0gMCkgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQogICAgICAgIGZvciAo
dmFyIG4gPSAwOyBuIDwgYXJndmFsdWUubGVuZ3RoOyBuKyspIHsKICAgICAgICAgICAgaWYgKChh
cmd2YWx1ZS5zdWJzdHJpbmcobiwgbisxKSA8ICIwIikgfHwKICAgICAgICAgICAgICAgIChhcmd2
YWx1ZS5zdWJzdHJpbmcobixuKzEpID4gIjkiKSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiB0cnVlOwogICAgfQoK
ICAgIGZ1bmN0aW9uIHZhbGlkYXRlRGF0ZShmb3JtKSB7CiAgICAgICB2YXIgYlZhbGlkID0gdHJ1
ZTsKICAgICAgIHZhciBmb2N1c0ZpZWxkID0gbnVsbDsKICAgICAgIHZhciBpID0gMDsKICAgICAg
IHZhciBmaWVsZHMgPSBuZXcgQXJyYXkoKTsKIAogICAgICAgdmFyIG9EYXRlID0gZXZhbCgnbmV3
ICcgKyBqY3ZfcmV0cmlldmVGb3JtTmFtZShmb3JtKSArICAnX0RhdGVWYWxpZGF0aW9ucygpJyk7
CgogICAgICAgZm9yICh2YXIgeCBpbiBvRGF0ZSkgewogICAgICAgICAgICBpZiAoIWpjdl92ZXJp
ZnlBcnJheUVsZW1lbnQoeCwgb0RhdGVbeF0pKSB7CiAgICAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgICAgfQogICAgICAgICAgIHZhciBmaWVsZCA9IGZvcm1bb0RhdGVbeF1bMF1dOwog
ICAgICAgICAgIGlmICghamN2X2lzRmllbGRQcmVzZW50KGZpZWxkKSkgewogICAgICAgICAgICAg
Y29udGludWU7CiAgICAgICAgICAgfQogICAgICAgICAgIHZhciB2YWx1ZSA9IGZpZWxkLnZhbHVl
OwogICAgICAgICAgIHZhciBpc1N0cmljdCA9IHRydWU7CiAgICAgICAgICAgdmFyIGRhdGVQYXR0
ZXJuID0gb0RhdGVbeF1bMl0oImRhdGVQYXR0ZXJuU3RyaWN0Iik7CiAgICAgICAgICAgLy8gdHJ5
IGxvb3NlIHBhdHRlcm4KICAgICAgICAgICBpZiAoZGF0ZVBhdHRlcm4gPT0gbnVsbCkgewogICAg
ICAgICAgICAgICBkYXRlUGF0dGVybiA9IG9EYXRlW3hdWzJdKCJkYXRlUGF0dGVybiIpOwogICAg
ICAgICAgICAgICBpc1N0cmljdCA9IGZhbHNlOwogICAgICAgICAgIH0gICAgCiAgICAgICAgICAg
aWYgKChmaWVsZC50eXBlID09ICdoaWRkZW4nIHx8CiAgICAgICAgICAgICAgICBmaWVsZC50eXBl
ID09ICd0ZXh0JyB8fAogICAgICAgICAgICAgICAgZmllbGQudHlwZSA9PSAndGV4dGFyZWEnKSAm
JgogICAgICAgICAgICAgICAodmFsdWUubGVuZ3RoID4gMCkgJiYgKGRhdGVQYXR0ZXJuLmxlbmd0
aCA+IDApKSB7CiAgICAgICAgICAgICAgICAgdmFyIE1PTlRIID0gIk1NIjsKICAgICAgICAgICAg
ICAgICB2YXIgREFZID0gImRkIjsKICAgICAgICAgICAgICAgICB2YXIgWUVBUiA9ICJ5eXl5IjsK
ICAgICAgICAgICAgICAgICB2YXIgb3JkZXJNb250aCA9IGRhdGVQYXR0ZXJuLmluZGV4T2YoTU9O
VEgpOwogICAgICAgICAgICAgICAgIHZhciBvcmRlckRheSA9IGRhdGVQYXR0ZXJuLmluZGV4T2Yo
REFZKTsKICAgICAgICAgICAgICAgICB2YXIgb3JkZXJZZWFyID0gZGF0ZVBhdHRlcm4uaW5kZXhP
ZihZRUFSKTsKICAgICAgICAgICAgICAgICBpZiAoKG9yZGVyRGF5IDwgb3JkZXJZZWFyICYmIG9y
ZGVyRGF5ID4gb3JkZXJNb250aCkpIHsKICAgICAgICAgICAgICAgICAgICAgdmFyIGlEZWxpbTEg
PSBvcmRlck1vbnRoICsgTU9OVEgubGVuZ3RoOwogICAgICAgICAgICAgICAgICAgICB2YXIgaURl
bGltMiA9IG9yZGVyRGF5ICsgREFZLmxlbmd0aDsKICAgICAgICAgICAgICAgICAgICAgdmFyIGRl
bGltMSA9IGRhdGVQYXR0ZXJuLnN1YnN0cmluZyhpRGVsaW0xLCBpRGVsaW0xICsgMSk7CiAgICAg
ICAgICAgICAgICAgICAgIHZhciBkZWxpbTIgPSBkYXRlUGF0dGVybi5zdWJzdHJpbmcoaURlbGlt
MiwgaURlbGltMiArIDEpOwogICAgICAgICAgICAgICAgICAgICBpZiAoaURlbGltMSA9PSBvcmRl
ckRheSAmJiBpRGVsaW0yID09IG9yZGVyWWVhcikgewogICAgICAgICAgICAgICAgICAgICAgICBk
YXRlUmVnZXhwID0gaXNTdHJpY3QgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBuZXcg
UmVnRXhwKCJeKFxkezJ9KShcZHsyfSkoXGR7NH0pICkgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgOiBuZXcgUmVnRXhwKCJeKFxkezEsMn0pKFxkezEsMn0pKFxkezR9KSApOwogICAgICAg
ICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlEZWxpbTEgPT0gb3JkZXJEYXkpIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgZGF0ZVJlZ2V4cCA9IGlzU3RyaWN0IAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID8gbmV3IFJlZ0V4cCgiXihcZHsyfSkoXGR7Mn0pWyIgKyBkZWxpbTIgKyAiXShc
ZHs0fSkgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogbmV3IFJlZ0V4cCgiXihcZHsx
LDJ9KShcZHsxLDJ9KVsiICsgZGVsaW0yICsgIl0oXGR7NH0pICk7CiAgICAgICAgICAgICAgICAg
ICAgIH0gZWxzZSBpZiAoaURlbGltMiA9PSBvcmRlclllYXIpIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgZGF0ZVJlZ2V4cCA9IGlzU3RyaWN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PyBuZXcgUmVnRXhwKCJeKFxkezJ9KVsiICsgZGVsaW0xICsgIl0oXGR7Mn0pKFxkezR9KSApCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBuZXcgUmVnRXhwKCJeKFxkezEsMn0pWyIgKyBk
ZWxpbTEgKyAiXShcZHsxLDJ9KShcZHs0fSkgKTsKICAgICAgICAgICAgICAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZVJlZ2V4cCA9IGlzU3RyaWN0CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPyBuZXcgUmVnRXhwKCJeKFxkezJ9KVsiICsgZGVsaW0xICsg
Il0oXGR7Mn0pWyIgKyBkZWxpbTIgKyAiXShcZHs0fSkgKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDogbmV3IFJlZ0V4cCgiXihcZHsxLDJ9KVsiICsgZGVsaW0xICsgIl0oXGR7MSwyfSlb
IiArIGRlbGltMiArICJdKFxkezR9KSApOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgIHZhciBtYXRjaGVkID0gZGF0ZVJlZ2V4cC5leGVjKHZhbHVlKTsKICAgICAg
ICAgICAgICAgICAgICAgaWYobWF0Y2hlZCAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICghamN2X2lzVmFsaWREYXRlKG1hdGNoZWRbMl0sIG1hdGNoZWRbMV0sIG1hdGNoZWRb
M10pKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpID09IDApIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZvY3VzRmllbGQgPSBmaWVsZDsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZHNbaSsrXSA9IG9E
YXRlW3hdWzFdOwogICAgICAgICAgICAgICAgICAgICAgICAgICBiVmFsaWQgPSAgZmFsc2U7CiAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT0gMCkgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZm9jdXNGaWVsZCA9IGZpZWxkOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgICAgICAgIGZpZWxkc1tpKytdID0gb0RhdGVbeF1bMV07CiAgICAgICAgICAg
ICAgICAgICAgICAgIGJWYWxpZCA9ICBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgIH0gZWxzZSBpZiAoKG9yZGVyTW9udGggPCBvcmRlclllYXIgJiYgb3JkZXJN
b250aCA+IG9yZGVyRGF5KSkgewogICAgICAgICAgICAgICAgICAgICB2YXIgaURlbGltMSA9IG9y
ZGVyRGF5ICsgREFZLmxlbmd0aDsKICAgICAgICAgICAgICAgICAgICAgdmFyIGlEZWxpbTIgPSBv
cmRlck1vbnRoICsgTU9OVEgubGVuZ3RoOwogICAgICAgICAgICAgICAgICAgICB2YXIgZGVsaW0x
ID0gZGF0ZVBhdHRlcm4uc3Vic3RyaW5nKGlEZWxpbTEsIGlEZWxpbTEgKyAxKTsKICAgICAgICAg
ICAgICAgICAgICAgdmFyIGRlbGltMiA9IGRhdGVQYXR0ZXJuLnN1YnN0cmluZyhpRGVsaW0yLCBp
RGVsaW0yICsgMSk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChpRGVsaW0xID09IG9yZGVyTW9u
dGggJiYgaURlbGltMiA9PSBvcmRlclllYXIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGRh
dGVSZWdleHAgPSBpc1N0cmljdCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gbmV3IFJl
Z0V4cCgiXihcZHsyfSkoXGR7Mn0pKFxkezR9KSApCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA6IG5ldyBSZWdFeHAoIl4oXGR7MSwyfSkoXGR7MSwyfSkoXGR7NH0pICk7CiAgICAgICAgICAg
ICAgICAgICAgIH0gZWxzZSBpZiAoaURlbGltMSA9PSBvcmRlck1vbnRoKSB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBkYXRlUmVnZXhwID0gaXNTdHJpY3QKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID8gbmV3IFJlZ0V4cCgiXihcZHsyfSkoXGR7Mn0pWyIgKyBkZWxpbTIgKyAiXShcZHs0
fSkgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBuZXcgUmVnRXhwKCJeKFxkezEsMn0p
KFxkezEsMn0pWyIgKyBkZWxpbTIgKyAiXShcZHs0fSkgKTsKICAgICAgICAgICAgICAgICAgICAg
fSBlbHNlIGlmIChpRGVsaW0yID09IG9yZGVyWWVhcikgewogICAgICAgICAgICAgICAgICAgICAg
ICAgZGF0ZVJlZ2V4cCA9IGlzU3RyaWN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IG5l
dyBSZWdFeHAoIl4oXGR7Mn0pWyIgKyBkZWxpbTEgKyAiXShcZHsyfSkoXGR7NH0pICkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDogbmV3IFJlZ0V4cCgiXihcZHsxLDJ9KVsiICsgZGVsaW0x
ICsgIl0oXGR7MSwyfSkoXGR7NH0pICk7CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICBkYXRlUmVnZXhwID0gaXNTdHJpY3QKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID8gbmV3IFJlZ0V4cCgiXihcZHsyfSlbIiArIGRlbGltMSArICJdKFxk
ezJ9KVsiICsgZGVsaW0yICsgIl0oXGR7NH0pICkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDogbmV3IFJlZ0V4cCgiXihcZHsxLDJ9KVsiICsgZGVsaW0xICsgIl0oXGR7MSwyfSlbIiArIGRl
bGltMiArICJdKFxkezR9KSApOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgIHZhciBtYXRjaGVkID0gZGF0ZVJlZ2V4cC5leGVjKHZhbHVlKTsKICAgICAgICAgICAg
ICAgICAgICAgaWYobWF0Y2hlZCAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoIWpjdl9pc1ZhbGlkRGF0ZShtYXRjaGVkWzFdLCBtYXRjaGVkWzJdLCBtYXRjaGVkWzNdKSkg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpID09IDApIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZvY3VzRmllbGQgPSBmaWVsZDsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRzW2krK10g
PSBvRGF0ZVt4XVsxXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiVmFsaWQgPSAgZmFs
c2U7CiAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT0gMCkgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGZvY3VzRmllbGQgPSBmaWVsZDsKICAgICAgICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkc1tpKytdID0gb0RhdGVbeF1bMV07
CiAgICAgICAgICAgICAgICAgICAgICAgICBiVmFsaWQgPSAgZmFsc2U7CiAgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKChvcmRlck1vbnRoID4gb3JkZXJZ
ZWFyICYmIG9yZGVyTW9udGggPCBvcmRlckRheSkpIHsKICAgICAgICAgICAgICAgICAgICAgdmFy
IGlEZWxpbTEgPSBvcmRlclllYXIgKyBZRUFSLmxlbmd0aDsKICAgICAgICAgICAgICAgICAgICAg
dmFyIGlEZWxpbTIgPSBvcmRlck1vbnRoICsgTU9OVEgubGVuZ3RoOwogICAgICAgICAgICAgICAg
ICAgICB2YXIgZGVsaW0xID0gZGF0ZVBhdHRlcm4uc3Vic3RyaW5nKGlEZWxpbTEsIGlEZWxpbTEg
KyAxKTsKICAgICAgICAgICAgICAgICAgICAgdmFyIGRlbGltMiA9IGRhdGVQYXR0ZXJuLnN1YnN0
cmluZyhpRGVsaW0yLCBpRGVsaW0yICsgMSk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChpRGVs
aW0xID09IG9yZGVyTW9udGggJiYgaURlbGltMiA9PSBvcmRlckRheSkgewogICAgICAgICAgICAg
ICAgICAgICAgICAgZGF0ZVJlZ2V4cCA9IGlzU3RyaWN0CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA/IG5ldyBSZWdFeHAoIl4oXGR7NH0pKFxkezJ9KShcZHsyfSkgKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgOiBuZXcgUmVnRXhwKCJeKFxkezR9KShcZHsxLDJ9KShcZHsxLDJ9KSAp
OwogICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlEZWxpbTEgPT0gb3JkZXJNb250aCkg
ewogICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZVJlZ2V4cCA9IGlzU3RyaWN0CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA/IG5ldyBSZWdFeHAoIl4oXGR7NH0pKFxkezJ9KVsiICsgZGVs
aW0yICsgIl0oXGR7Mn0pICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogbmV3IFJlZ0V4
cCgiXihcZHs0fSkoXGR7MSwyfSlbIiArIGRlbGltMiArICJdKFxkezEsMn0pICk7CiAgICAgICAg
ICAgICAgICAgICAgIH0gZWxzZSBpZiAoaURlbGltMiA9PSBvcmRlckRheSkgewogICAgICAgICAg
ICAgICAgICAgICAgICAgZGF0ZVJlZ2V4cCA9IGlzU3RyaWN0CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA/IG5ldyBSZWdFeHAoIl4oXGR7NH0pWyIgKyBkZWxpbTEgKyAiXShcZHsyfSkoXGR7
Mn0pICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogbmV3IFJlZ0V4cCgiXihcZHs0fSlb
IiArIGRlbGltMSArICJdKFxkezEsMn0pKFxkezEsMn0pICk7CiAgICAgICAgICAgICAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlUmVnZXhwID0gaXNTdHJpY3QK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gbmV3IFJlZ0V4cCgiXihcZHs0fSlbIiArIGRl
bGltMSArICJdKFxkezJ9KVsiICsgZGVsaW0yICsgIl0oXGR7Mn0pICkKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDogbmV3IFJlZ0V4cCgiXihcZHs0fSlbIiArIGRlbGltMSArICJdKFxkezEs
Mn0pWyIgKyBkZWxpbTIgKyAiXShcZHsxLDJ9KSApOwogICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgICAgIHZhciBtYXRjaGVkID0gZGF0ZVJlZ2V4cC5leGVjKHZhbHVlKTsK
ICAgICAgICAgICAgICAgICAgICAgaWYobWF0Y2hlZCAhPSBudWxsKSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoIWpjdl9pc1ZhbGlkRGF0ZShtYXRjaGVkWzNdLCBtYXRjaGVkWzJdLCBt
YXRjaGVkWzFdKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpID09IDApIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXNGaWVsZCA9IGZpZWxkOwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
aWVsZHNbaSsrXSA9IG9EYXRlW3hdWzFdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJW
YWxpZCA9ICBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaSA9PSAwKSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzRmllbGQgPSBmaWVsZDsKICAgICAgICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRzW2krK10g
PSBvRGF0ZVt4XVsxXTsKICAgICAgICAgICAgICAgICAgICAgICAgICBiVmFsaWQgPSAgZmFsc2U7
CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgICAgICAgICBpZiAoaSA9PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1
c0ZpZWxkID0gZmllbGQ7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgZmllbGRzW2krK10gPSBvRGF0ZVt4XVsxXTsKICAgICAgICAgICAgICAgICAgICAgYlZhbGlk
ID0gIGZhbHNlOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgIH0KICAgICAg
IGlmIChmaWVsZHMubGVuZ3RoID4gMCkgewogICAgICAgICAgamN2X2hhbmRsZUVycm9ycyhmaWVs
ZHMsIGZvY3VzRmllbGQpOwogICAgICAgfQogICAgICAgcmV0dXJuIGJWYWxpZDsKICAgIH0KICAg
IAogICAgZnVuY3Rpb24gamN2X2lzVmFsaWREYXRlKGRheSwgbW9udGgsIHllYXIpIHsKCSAgICBp
ZiAobW9udGggPCAxIHx8IG1vbnRoID4gMTIpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgIH0KICAgICAgICBpZiAoZGF5IDwgMSB8fCBkYXkgPiAzMSkgewogICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgICAgfQogICAgICAgIGlmICgobW9udGggPT0gNCB8fCBtb250aCA9
PSA2IHx8IG1vbnRoID09IDkgfHwgbW9udGggPT0gMTEpICYmCiAgICAgICAgICAgIChkYXkgPT0g
MzEpKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgaWYgKG1v
bnRoID09IDIpIHsKICAgICAgICAgICAgdmFyIGxlYXAgPSAoeWVhciAlIDQgPT0gMCAmJgogICAg
ICAgICAgICAgICAoeWVhciAlIDEwMCAhPSAwIHx8IHllYXIgJSA0MDAgPT0gMCkpOwogICAgICAg
ICAgICBpZiAoZGF5PjI5IHx8IChkYXkgPT0gMjkgJiYgIWxlYXApKSB7CiAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICB9CgogICAgZnVuY3Rpb24gdmFsaWRhdGVGbG9hdChmb3JtKSB7CiAgICAgICAgdmFy
IGJWYWxpZCA9IHRydWU7CiAgICAgICAgdmFyIGZvY3VzRmllbGQgPSBudWxsOwogICAgICAgIHZh
ciBpID0gMDsKICAgICAgICB2YXIgZmllbGRzID0gbmV3IEFycmF5KCk7CiAKICAgICAgICB2YXIg
b0Zsb2F0ID0gZXZhbCgnbmV3ICcgKyBqY3ZfcmV0cmlldmVGb3JtTmFtZShmb3JtKSArICAnX0Zs
b2F0VmFsaWRhdGlvbnMoKScpOwogICAgICAgIGZvciAodmFyIHggaW4gb0Zsb2F0KSB7CiAgICAg
ICAgICAgIGlmICghamN2X3ZlcmlmeUFycmF5RWxlbWVudCh4LCBvRmxvYXRbeF0pKSB7CiAgICAg
ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQogICAgICAgIAl2YXIgZmllbGQgPSBm
b3JtW29GbG9hdFt4XVswXV07CiAgICAgICAgICAgIGlmICghamN2X2lzRmllbGRQcmVzZW50KGZp
ZWxkKSkgewogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgCQog
ICAgICAgICAgICBpZiAoKGZpZWxkLnR5cGUgPT0gJ2hpZGRlbicgfHwKICAgICAgICAgICAgICAg
IGZpZWxkLnR5cGUgPT0gJ3RleHQnIHx8CiAgICAgICAgICAgICAgICBmaWVsZC50eXBlID09ICd0
ZXh0YXJlYScgfHwKICAgICAgICAgICAgICAgIGZpZWxkLnR5cGUgPT0gJ3NlbGVjdC1vbmUnIHx8
CiAgICAgICAgICAgICAgICBmaWVsZC50eXBlID09ICdyYWRpbycpKSB7CiAgICAgICAgCiAgICAg
ICAgICAgIAl2YXIgdmFsdWUgPSAnJzsKICAgICAgICAgICAgICAgIC8vIGdldCBmaWVsZCdzIHZh
bHVlCiAgICAgICAgICAgICAgICBpZiAoZmllbGQudHlwZSA9PSAic2VsZWN0LW9uZSIpIHsKICAg
ICAgICAgICAgICAgICAgICB2YXIgc2kgPSBmaWVsZC5zZWxlY3RlZEluZGV4OwogICAgICAgICAg
ICAgICAgICAgIGlmIChzaSA+PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0g
ZmllbGQub3B0aW9uc1tzaV0udmFsdWU7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGZpZWxkLnZhbHVlOwog
ICAgICAgICAgICAgICAgfQogICAgICAgIAogICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0
aCA+IDApIHsKICAgICAgICAgICAgICAgICAgICAvLyByZW1vdmUgJy4nIGJlZm9yZSBjaGVja2lu
ZyBkaWdpdHMKICAgICAgICAgICAgICAgICAgICB2YXIgdGVtcEFycmF5ID0gdmFsdWUuc3BsaXQo
Jy4nKTsKICAgICAgICAgICAgICAgICAgICAvL1N0cmlwIG9mZiBsZWFkaW5nICcwJwogICAgICAg
ICAgICAgICAgICAgIHZhciB6ZXJvSW5kZXggPSAwOwogICAgICAgICAgICAgICAgICAgIHZhciBq
b2luZWRTdHJpbmc9IHRlbXBBcnJheS5qb2luKCcnKTsKICAgICAgICAgICAgICAgICAgICB3aGls
ZSAoam9pbmVkU3RyaW5nLmNoYXJBdCh6ZXJvSW5kZXgpID09ICcwJykgewogICAgICAgICAgICAg
ICAgICAgICAgICB6ZXJvSW5kZXgrKzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgdmFyIG5vWmVyb1N0cmluZyA9IGpvaW5lZFN0cmluZy5zdWJzdHJpbmcoemVyb0lu
ZGV4LGpvaW5lZFN0cmluZy5sZW5ndGgpOwoKICAgICAgICAgICAgICAgICAgICBpZiAoIWpjdl9p
c0FsbERpZ2l0cyhub1plcm9TdHJpbmcpIHx8IHRlbXBBcnJheS5sZW5ndGggPiAyKSB7CiAgICAg
ICAgICAgICAgICAgICAgICAgIGJWYWxpZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoaSA9PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1c0ZpZWxkID0g
ZmllbGQ7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg
ZmllbGRzW2krK10gPSBvRmxvYXRbeF1bMV07CgogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7
CgkgICAgICAgICAgICAgICAgdmFyIGlWYWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpOwoJICAgICAg
ICAgICAgICAgIGlmIChpc05hTihpVmFsdWUpKSB7CgkgICAgICAgICAgICAgICAgICAgIGlmIChp
ID09IDApIHsKCSAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzRmllbGQgPSBmaWVsZDsKCSAg
ICAgICAgICAgICAgICAgICAgfQoJICAgICAgICAgICAgICAgICAgICBmaWVsZHNbaSsrXSA9IG9G
bG9hdFt4XVsxXTsKCSAgICAgICAgICAgICAgICAgICAgYlZhbGlkID0gZmFsc2U7CgkgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoZmllbGRzLmxlbmd0aCA+IDApIHsKICAgICAg
ICAgICBqY3ZfaGFuZGxlRXJyb3JzKGZpZWxkcywgZm9jdXNGaWVsZCk7CiAgICAgICAgfQogICAg
ICAgIHJldHVybiBiVmFsaWQ7CiAgICB9CgogICAgZnVuY3Rpb24gdmFsaWRhdGVNaW5MZW5ndGgo
Zm9ybSkgewogICAgICAgIHZhciBpc1ZhbGlkID0gdHJ1ZTsKICAgICAgICB2YXIgZm9jdXNGaWVs
ZCA9IG51bGw7CiAgICAgICAgdmFyIGkgPSAwOwogICAgICAgIHZhciBmaWVsZHMgPSBuZXcgQXJy
YXkoKTsKCiAgICAgICAgdmFyIG9NaW5MZW5ndGggPSBldmFsKCduZXcgJyArIGpjdl9yZXRyaWV2
ZUZvcm1OYW1lKGZvcm0pICsgICdfbWlubGVuZ3RoKCknKTsKCiAgICAgICAgZm9yICh2YXIgeCBp
biBvTWluTGVuZ3RoKSB7CiAgICAgICAgICAgIGlmICghamN2X3ZlcmlmeUFycmF5RWxlbWVudCh4
LCBvTWluTGVuZ3RoW3hdKSkgewogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAg
IH0KICAgICAgICAgICAgdmFyIGZpZWxkID0gZm9ybVtvTWluTGVuZ3RoW3hdWzBdXTsKICAgICAg
ICAgICAgaWYgKCFqY3ZfaXNGaWVsZFByZXNlbnQoZmllbGQpKSB7CiAgICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICgoZmllbGQudHlwZSA9PSAnaGlk
ZGVuJyB8fAogICAgICAgICAgICAgICAgZmllbGQudHlwZSA9PSAndGV4dCcgfHwKICAgICAgICAg
ICAgICAgIGZpZWxkLnR5cGUgPT0gJ3Bhc3N3b3JkJyB8fAogICAgICAgICAgICAgICAgZmllbGQu
dHlwZSA9PSAndGV4dGFyZWEnKSkgewoKICAgICAgICAgICAgICAgIC8qIEFkanVzdCBsZW5ndGgg
Zm9yIGNhcnJpYWdlIHJldHVybnMgLSBzZWUgQnVnIDM3OTYyICovCiAgICAgICAgICAgICAgICB2
YXIgbGluZUVuZExlbmd0aCA9IG9NaW5MZW5ndGhbeF1bMl0oImxpbmVFbmRMZW5ndGgiKTsKICAg
ICAgICAgICAgICAgIHZhciBhZGp1c3RBbW91bnQgPSAwOwogICAgICAgICAgICAgICAgaWYgKGxp
bmVFbmRMZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgckNvdW50ID0gMDsKICAgICAg
ICAgICAgICAgICAgICB2YXIgbkNvdW50ID0gMDsKICAgICAgICAgICAgICAgICAgICB2YXIgY3JQ
b3MgPSAwOwogICAgICAgICAgICAgICAgICAgIHdoaWxlIChjclBvcyA8IGZpZWxkLnZhbHVlLmxl
bmd0aCkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY3VyckNoYXIgPSBmaWVsZC52YWx1
ZS5jaGFyQXQoY3JQb3MpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VyckNoYXIgPT0g
Jw0nKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByQ291bnQrKzsKICAgICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VyckNoYXIgPT0gJwon
KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuQ291bnQrKzsKICAgICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBjclBvcysrOwogICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB2YXIgZW5kTGVuZ3RoID0gcGFyc2VJbnQobGlu
ZUVuZExlbmd0aCk7CiAgICAgICAgICAgICAgICAgICAgYWRqdXN0QW1vdW50ID0gKG5Db3VudCAq
IGVuZExlbmd0aCkgLSAockNvdW50ICsgbkNvdW50KTsKICAgICAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgICAgICB2YXIgaU1pbiA9IHBhcnNlSW50KG9NaW5MZW5ndGhbeF1bMl0oIm1pbmxlbmd0
aCIpKTsKICAgICAgICAgICAgICAgIGlmICgodHJpbShmaWVsZC52YWx1ZSkubGVuZ3RoID4gMCkg
JiYgKChmaWVsZC52YWx1ZS5sZW5ndGggKyBhZGp1c3RBbW91bnQpIDwgaU1pbikpIHsKICAgICAg
ICAgICAgICAgICAgICBpZiAoaSA9PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvY3Vz
RmllbGQgPSBmaWVsZDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
ZmllbGRzW2krK10gPSBvTWluTGVuZ3RoW3hdWzFdOwogICAgICAgICAgICAgICAgICAgIGlzVmFs
aWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAg
ICAgICBpZiAoZmllbGRzLmxlbmd0aCA+IDApIHsKICAgICAgICAgICBqY3ZfaGFuZGxlRXJyb3Jz
KGZpZWxkcywgZm9jdXNGaWVsZCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBpc1ZhbGlkOwog
ICAgfQogICAgZnVuY3Rpb24gdmFsaWRhdGVGbG9hdFJhbmdlKGZvcm0pIHsKICAgICAgICB2YXIg
aXNWYWxpZCA9IHRydWU7CiAgICAgICAgdmFyIGZvY3VzRmllbGQgPSBudWxsOwogICAgICAgIHZh
ciBpID0gMDsKICAgICAgICB2YXIgZmllbGRzID0gbmV3IEFycmF5KCk7CiAgICAgICAgCiAgICAg
ICAgdmFyIG9SYW5nZSA9IGV2YWwoJ25ldyAnICsgamN2X3JldHJpZXZlRm9ybU5hbWUoZm9ybSkg
KyAgJ19mbG9hdFJhbmdlKCknKTsKICAgICAgICBmb3IgKHZhciB4IGluIG9SYW5nZSkgewogICAg
ICAgICAgICBpZiAoIWpjdl92ZXJpZnlBcnJheUVsZW1lbnQoeCwgb1JhbmdlW3hdKSkgewogICAg
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGZpZWxk
ID0gZm9ybVtvUmFuZ2VbeF1bMF1dOwogICAgICAgICAgICBpZiAoIWpjdl9pc0ZpZWxkUHJlc2Vu
dChmaWVsZCkpIHsKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQogICAgICAg
ICAgICAKICAgICAgICAgICAgaWYgKChmaWVsZC50eXBlID09ICdoaWRkZW4nIHx8CiAgICAgICAg
ICAgICAgICBmaWVsZC50eXBlID09ICd0ZXh0JyB8fCBmaWVsZC50eXBlID09ICd0ZXh0YXJlYScp
ICYmCiAgICAgICAgICAgICAgICAoZmllbGQudmFsdWUubGVuZ3RoID4gMCkpIHsKICAgICAgICAK
ICAgICAgICAgICAgICAgIHZhciBmTWluID0gcGFyc2VGbG9hdChvUmFuZ2VbeF1bMl0oIm1pbiIp
KTsKICAgICAgICAgICAgICAgIHZhciBmTWF4ID0gcGFyc2VGbG9hdChvUmFuZ2VbeF1bMl0oIm1h
eCIpKTsKICAgICAgICAgICAgICAgIHZhciBmVmFsdWUgPSBwYXJzZUZsb2F0KGZpZWxkLnZhbHVl
KTsKICAgICAgICAgICAgICAgIGlmICghKGZWYWx1ZSA+PSBmTWluICYmIGZWYWx1ZSA8PSBmTWF4
KSkgewogICAgICAgICAgICAgICAgICAgIGlmIChpID09IDApIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgZm9jdXNGaWVsZCA9IGZpZWxkOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICAgICBmaWVsZHNbaSsrXSA9IG9SYW5nZVt4XVsxXTsKICAgICAgICAgICAgICAgICAg
ICBpc1ZhbGlkID0gZmFsc2U7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAg
ICB9CiAgICAgICAgaWYgKGZpZWxkcy5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgIGpjdl9oYW5k
bGVFcnJvcnMoZmllbGRzLCBmb2N1c0ZpZWxkKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGlz
VmFsaWQ7CiAgICB9CiAgZnVuY3Rpb24gamN2X3JldHJpZXZlRm9ybU5hbWUoZm9ybSkgewogICAg
ICB2YXIgZm9ybU5hbWU7CgogICAgICBpZiAoZm9ybS5nZXRBdHRyaWJ1dGVOb2RlKSB7CiAgICAg
ICAgICBpZiAoZm9ybS5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpICYmIGZvcm0uZ2V0QXR0cmlidXRl
Tm9kZSgiaWQiKS52YWx1ZSkgewogICAgICAgICAgICAgIGZvcm1OYW1lID0gZm9ybS5nZXRBdHRy
aWJ1dGVOb2RlKCJpZCIpLnZhbHVlOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBm
b3JtTmFtZSA9IGZvcm0uZ2V0QXR0cmlidXRlTm9kZSgibmFtZSIpLnZhbHVlOwogICAgICAgICAg
fQogICAgICB9IGVsc2UgaWYgKGZvcm0uZ2V0QXR0cmlidXRlKSB7CiAgICAgICAgICBpZiAoZm9y
bS5nZXRBdHRyaWJ1dGUoImlkIikpIHsKICAgICAgICAgICAgICBmb3JtTmFtZSA9IGZvcm0uZ2V0
QXR0cmlidXRlKCJpZCIpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBmb3JtTmFt
ZSA9IGZvcm0uYXR0cmlidXRlc1sibmFtZSJdOwogICAgICAgICAgfQogICAgICB9IGVsc2Ugewog
ICAgICAgICAgaWYgKGZvcm0uaWQpIHsKICAgICAgICAgICAgICBmb3JtTmFtZSA9IGZvcm0uaWQ7
CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIGZvcm1OYW1lID0gZm9ybS5uYW1lOwog
ICAgICAgICAgfQogICAgICB9CgogICAgICByZXR1cm4gZm9ybU5hbWU7CgogIH0gIAogIGZ1bmN0
aW9uIGpjdl9oYW5kbGVFcnJvcnMobWVzc2FnZXMsIGZvY3VzRmllbGQpIHsKICAgICAgaWYgKGZv
Y3VzRmllbGQgJiYgZm9jdXNGaWVsZCAhPSBudWxsKSB7CiAgICAgICAgICB2YXIgZG9Gb2N1cyA9
IHRydWU7CiAgICAgICAgICBpZiAoZm9jdXNGaWVsZC5kaXNhYmxlZCB8fCBmb2N1c0ZpZWxkLnR5
cGUgPT0gJ2hpZGRlbicpIHsKICAgICAgICAgICAgICBkb0ZvY3VzID0gZmFsc2U7CiAgICAgICAg
ICB9CiAgICAgICAgICBpZiAoZG9Gb2N1cyAmJiAKICAgICAgICAgICAgICBmb2N1c0ZpZWxkLnN0
eWxlICYmIAogICAgICAgICAgICAgIGZvY3VzRmllbGQuc3R5bGUudmlzaWJpbGl0eSAmJgogICAg
ICAgICAgICAgIGZvY3VzRmllbGQuc3R5bGUudmlzaWJpbGl0eSA9PSAnaGlkZGVuJykgewogICAg
ICAgICAgICAgIGRvRm9jdXMgPSBmYWxzZTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChkb0Zv
Y3VzKSB7CiAgICAgICAgICAgICAgZm9jdXNGaWVsZC5mb2N1cygpOwogICAgICAgICAgfQogICAg
ICB9CiAgICAgIGFsZXJ0KG1lc3NhZ2VzLmpvaW4oJwonKSk7CiAgfQoKICAgZnVuY3Rpb24gamN2
X3ZlcmlmeUFycmF5RWxlbWVudChuYW1lLCBlbGVtZW50KSB7CiAgICAgIGlmIChlbGVtZW50ICYm
IGVsZW1lbnQubGVuZ3RoICYmIGVsZW1lbnQubGVuZ3RoID09IDMpIHsKICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICB9IGVsc2UgewogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CiAg
fQoKICBmdW5jdGlvbiBqY3ZfaXNGaWVsZFByZXNlbnQoZmllbGQpIHsKICAgICAgdmFyIGZpZWxk
UHJlc2VudCA9IHRydWU7CiAgICAgIGlmIChmaWVsZCA9PSBudWxsIHx8ICh0eXBlb2YgZmllbGQg
PT0gJ3VuZGVmaW5lZCcpKSB7CiAgICAgICAgICBmaWVsZFByZXNlbnQgPSBmYWxzZTsKICAgICAg
fSBlbHNlIHsKICAgICAgICAgIGlmIChmaWVsZC5kaXNhYmxlZCkgewogICAgICAgICAgICAgIGZp
ZWxkUHJlc2VudCA9IGZhbHNlOwogICAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBmaWVs
ZFByZXNlbnQ7CiAgfQoKICAgZnVuY3Rpb24gamN2X2lzQWxsRGlnaXRzKGFyZ3ZhbHVlKSB7CiAg
ICAgIGFyZ3ZhbHVlID0gYXJndmFsdWUudG9TdHJpbmcoKTsKICAgICAgdmFyIHZhbGlkQ2hhcnMg
PSAiMDEyMzQ1Njc4OSI7CiAgICAgIHZhciBzdGFydEZyb20gPSAwOwogICAgICBpZiAoYXJndmFs
dWUuc3Vic3RyaW5nKDAsIDIpID09ICIweCIpIHsKICAgICAgICAgdmFsaWRDaGFycyA9ICIwMTIz
NDU2Nzg5YWJjZGVmQUJDREVGIjsKICAgICAgICAgc3RhcnRGcm9tID0gMjsKICAgICAgfSBlbHNl
IGlmIChhcmd2YWx1ZS5jaGFyQXQoMCkgPT0gIjAiKSB7CiAgICAgICAgIHZhbGlkQ2hhcnMgPSAi
MDEyMzQ1NjciOwogICAgICAgICBzdGFydEZyb20gPSAxOwogICAgICB9IGVsc2UgaWYgKGFyZ3Zh
bHVlLmNoYXJBdCgwKSA9PSAiLSIpIHsKICAgICAgICAgIHN0YXJ0RnJvbSA9IDE7CiAgICAgIH0K
CiAgICAgIGZvciAodmFyIG4gPSBzdGFydEZyb207IG4gPCBhcmd2YWx1ZS5sZW5ndGg7IG4rKykg
ewogICAgICAgICAgaWYgKHZhbGlkQ2hhcnMuaW5kZXhPZihhcmd2YWx1ZS5zdWJzdHJpbmcobiwg
bisxKSkgPT0gLTEpIHJldHVybiBmYWxzZTsKICAgICAgfQogICAgICByZXR1cm4gdHJ1ZTsKICB9
CiAgZnVuY3Rpb24gamN2X2lzRGVjaW1hbERpZ2l0cyhhcmd2YWx1ZSkgewogICAgICBhcmd2YWx1
ZSA9IGFyZ3ZhbHVlLnRvU3RyaW5nKCk7CiAgICAgIHZhciB2YWxpZENoYXJzID0gIjAxMjM0NTY3
ODkiOwoKICAgICAgdmFyIHN0YXJ0RnJvbSA9IDA7CiAgICAgIGlmIChhcmd2YWx1ZS5jaGFyQXQo
MCkgPT0gIi0iKSB7CiAgICAgICAgICBzdGFydEZyb20gPSAxOwogICAgICB9CgogICAgICBmb3Ig
KHZhciBuID0gc3RhcnRGcm9tOyBuIDwgYXJndmFsdWUubGVuZ3RoOyBuKyspIHsKICAgICAgICAg
IGlmICh2YWxpZENoYXJzLmluZGV4T2YoYXJndmFsdWUuc3Vic3RyaW5nKG4sIG4rMSkpID09IC0x
KSByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICAgcmV0dXJuIHRydWU7CiAgfQoKICAgIGZ1bmN0
aW9uIHZhbGlkYXRlTWF4TGVuZ3RoKGZvcm0pIHsKICAgICAgICB2YXIgaXNWYWxpZCA9IHRydWU7
CiAgICAgICAgdmFyIGZvY3VzRmllbGQgPSBudWxsOwogICAgICAgIHZhciBpID0gMDsKICAgICAg
ICB2YXIgZmllbGRzID0gbmV3IEFycmF5KCk7CiAKICAgICAgICB2YXIgb01heExlbmd0aCA9IGV2
YWwoJ25ldyAnICsgamN2X3JldHJpZXZlRm9ybU5hbWUoZm9ybSkgKyAgJ19tYXhsZW5ndGgoKScp
OyAgICAgICAgCiAgICAgICAgZm9yICh2YXIgeCBpbiBvTWF4TGVuZ3RoKSB7CiAgICAgICAgICAg
IGlmICghamN2X3ZlcmlmeUFycmF5RWxlbWVudCh4LCBvTWF4TGVuZ3RoW3hdKSkgewogICAgICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGZpZWxkID0g
Zm9ybVtvTWF4TGVuZ3RoW3hdWzBdXTsKICAgICAgICAgICAgaWYgKCFqY3ZfaXNGaWVsZFByZXNl
bnQoZmllbGQpKSB7CiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgIGlmICgoZmllbGQudHlwZSA9PSAnaGlkZGVuJyB8fAogICAgICAgICAgICAgICAgZmll
bGQudHlwZSA9PSAndGV4dCcgfHwKICAgICAgICAgICAgICAgIGZpZWxkLnR5cGUgPT0gJ3Bhc3N3
b3JkJyB8fAogICAgICAgICAgICAgICAgZmllbGQudHlwZSA9PSAndGV4dGFyZWEnKSkgewoKICAg
ICAgICAgICAgICAgIC8qIEFkanVzdCBsZW5ndGggZm9yIGNhcnJpYWdlIHJldHVybnMgLSBzZWUg
QnVnIDM3OTYyICovCiAgICAgICAgICAgICAgICB2YXIgbGluZUVuZExlbmd0aCA9IG9NYXhMZW5n
dGhbeF1bMl0oImxpbmVFbmRMZW5ndGgiKTsKICAgICAgICAgICAgICAgIHZhciBhZGp1c3RBbW91
bnQgPSAwOwogICAgICAgICAgICAgICAgaWYgKGxpbmVFbmRMZW5ndGgpIHsKICAgICAgICAgICAg
ICAgICAgICB2YXIgckNvdW50ID0gMDsKICAgICAgICAgICAgICAgICAgICB2YXIgbkNvdW50ID0g
MDsKICAgICAgICAgICAgICAgICAgICB2YXIgY3JQb3MgPSAwOwogICAgICAgICAgICAgICAgICAg
IHdoaWxlIChjclBvcyA8IGZpZWxkLnZhbHVlLmxlbmd0aCkgewogICAgICAgICAgICAgICAgICAg
ICAgICB2YXIgY3VyckNoYXIgPSBmaWVsZC52YWx1ZS5jaGFyQXQoY3JQb3MpOwogICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoY3VyckNoYXIgPT0gJw0nKSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByQ291bnQrKzsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoY3VyckNoYXIgPT0gJwonKSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBuQ291bnQrKzsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgICAgICBjclBvcysrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICB2YXIgZW5kTGVuZ3RoID0gcGFyc2VJbnQobGluZUVuZExlbmd0aCk7CiAgICAgICAgICAgICAg
ICAgICAgYWRqdXN0QW1vdW50ID0gKG5Db3VudCAqIGVuZExlbmd0aCkgLSAockNvdW50ICsgbkNv
dW50KTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB2YXIgaU1heCA9IHBhcnNl
SW50KG9NYXhMZW5ndGhbeF1bMl0oIm1heGxlbmd0aCIpKTsKICAgICAgICAgICAgICAgIGlmICgo
ZmllbGQudmFsdWUubGVuZ3RoICsgYWRqdXN0QW1vdW50KSAgPiBpTWF4KSB7CiAgICAgICAgICAg
ICAgICAgICAgaWYgKGkgPT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICBmb2N1c0ZpZWxk
ID0gZmllbGQ7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGZpZWxk
c1tpKytdID0gb01heExlbmd0aFt4XVsxXTsKICAgICAgICAgICAgICAgICAgICBpc1ZhbGlkID0g
ZmFsc2U7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAg
aWYgKGZpZWxkcy5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgamN2X2hhbmRsZUVycm9ycyhmaWVs
ZHMsIGZvY3VzRmllbGQpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gaXNWYWxpZDsKICAgIH0K
ICAgIGZ1bmN0aW9uIHZhbGlkYXRlSW50ZWdlcihmb3JtKSB7CiAgICAgICAgdmFyIGJWYWxpZCA9
IHRydWU7CiAgICAgICAgdmFyIGZvY3VzRmllbGQgPSBudWxsOwogICAgICAgIHZhciBpID0gMDsK
ICAgICAgICB2YXIgZmllbGRzID0gbmV3IEFycmF5KCk7CiAKICAgICAgICB2YXIgb0ludGVnZXIg
PSBldmFsKCduZXcgJyArIGpjdl9yZXRyaWV2ZUZvcm1OYW1lKGZvcm0pICsgICdfSW50ZWdlclZh
bGlkYXRpb25zKCknKTsKICAgICAgICBmb3IgKHZhciB4IGluIG9JbnRlZ2VyKSB7CiAgICAgICAg
ICAgIGlmICghamN2X3ZlcmlmeUFycmF5RWxlbWVudCh4LCBvSW50ZWdlclt4XSkpIHsKICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBmaWVsZCA9
IGZvcm1bb0ludGVnZXJbeF1bMF1dOwogICAgICAgICAgICBpZiAoIWpjdl9pc0ZpZWxkUHJlc2Vu
dChmaWVsZCkpIHsKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgaWYgKChmaWVsZC50eXBlID09ICdoaWRkZW4nIHx8CiAgICAgICAgICAgICAgICBmaWVs
ZC50eXBlID09ICd0ZXh0JyB8fAogICAgICAgICAgICAgICAgZmllbGQudHlwZSA9PSAndGV4dGFy
ZWEnIHx8CiAgICAgICAgICAgICAgICBmaWVsZC50eXBlID09ICdzZWxlY3Qtb25lJyB8fAogICAg
ICAgICAgICAgICAgZmllbGQudHlwZSA9PSAncmFkaW8nKSkgewoKICAgICAgICAgICAgICAgIHZh
ciB2YWx1ZSA9ICcnOwogICAgICAgICAgICAgICAgLy8gZ2V0IGZpZWxkJ3MgdmFsdWUKICAgICAg
ICAgICAgICAgIGlmIChmaWVsZC50eXBlID09ICJzZWxlY3Qtb25lIikgewogICAgICAgICAgICAg
ICAgICAgIHZhciBzaSA9IGZpZWxkLnNlbGVjdGVkSW5kZXg7CiAgICAgICAgICAgICAgICAgICAg
aWYgKHNpID49IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBmaWVsZC5vcHRp
b25zW3NpXS52YWx1ZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZmllbGQudmFsdWU7CiAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDApIHsKCiAgICAgICAg
ICAgICAgICAgICAgaWYgKCFqY3ZfaXNEZWNpbWFsRGlnaXRzKHZhbHVlKSkgewogICAgICAgICAg
ICAgICAgICAgICAgICBiVmFsaWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KGkgPT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXNGaWVsZCA9IGZpZWxk
OwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxk
c1tpKytdID0gb0ludGVnZXJbeF1bMV07CgogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIHZhciBpVmFsdWUgPSBwYXJzZUludCh2YWx1ZSwgMTApOwog
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNOYU4oaVZhbHVlKSB8fCAhKGlWYWx1ZSA+PSAt
MjE0NzQ4MzY0OCAmJiBpVmFsdWUgPD0gMjE0NzQ4MzY0NykpIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChpID09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
b2N1c0ZpZWxkID0gZmllbGQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmaWVsZHNbaSsrXSA9IG9JbnRlZ2VyW3hdWzFdOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYlZhbGlkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0K
ICAgICAgICB9CiAgICAgICAgaWYgKGZpZWxkcy5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgamN2
X2hhbmRsZUVycm9ycyhmaWVsZHMsIGZvY3VzRmllbGQpOwogICAgICAgIH0KICAgICAgICByZXR1
cm4gYlZhbGlkOwogICAgfQogICAgZnVuY3Rpb24gdmFsaWRhdGVTaG9ydChmb3JtKSB7CiAgICAg
ICAgdmFyIGJWYWxpZCA9IHRydWU7CiAgICAgICAgdmFyIGZvY3VzRmllbGQgPSBudWxsOwogICAg
ICAgIHZhciBpID0gMDsKICAgICAgICB2YXIgZmllbGRzID0gbmV3IEFycmF5KCk7CiAKICAgICAg
ICB2YXIgb1Nob3J0ID0gZXZhbCgnbmV3ICcgKyBqY3ZfcmV0cmlldmVGb3JtTmFtZShmb3JtKSAr
ICAnX1Nob3J0VmFsaWRhdGlvbnMoKScpOwoKICAgICAgICBmb3IgKHZhciB4IGluIG9TaG9ydCkg
ewogICAgICAgICAgICBpZiAoIWpjdl92ZXJpZnlBcnJheUVsZW1lbnQoeCwgb1Nob3J0W3hdKSkg
ewogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFy
IGZpZWxkID0gZm9ybVtvU2hvcnRbeF1bMF1dOwogICAgICAgICAgICBpZiAoIWpjdl9pc0ZpZWxk
UHJlc2VudChmaWVsZCkpIHsKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgaWYgKChmaWVsZC50eXBlID09ICdoaWRkZW4nIHx8CiAgICAgICAgICAgICAg
ICBmaWVsZC50eXBlID09ICd0ZXh0JyB8fAogICAgICAgICAgICAgICAgZmllbGQudHlwZSA9PSAn
dGV4dGFyZWEnIHx8CiAgICAgICAgICAgICAgICBmaWVsZC50eXBlID09ICdzZWxlY3Qtb25lJyB8
fAogICAgICAgICAgICAgICAgZmllbGQudHlwZSA9PSAncmFkaW8nKSkgewoKICAgICAgICAgICAg
ICAgIHZhciB2YWx1ZSA9ICcnOwogICAgICAgICAgICAgICAgLy8gZ2V0IGZpZWxkJ3MgdmFsdWUK
ICAgICAgICAgICAgICAgIGlmIChmaWVsZC50eXBlID09ICJzZWxlY3Qtb25lIikgewogICAgICAg
ICAgICAgICAgICAgIHZhciBzaSA9IGZpZWxkLnNlbGVjdGVkSW5kZXg7CiAgICAgICAgICAgICAg
ICAgICAgaWYgKHNpID49IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBmaWVs
ZC5vcHRpb25zW3NpXS52YWx1ZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZmllbGQudmFsdWU7CiAgICAg
ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDApIHsKICAg
ICAgICAgICAgICAgICAgICBpZiAoIWpjdl9pc0RlY2ltYWxEaWdpdHModmFsdWUpKSB7CiAgICAg
ICAgICAgICAgICAgICAgICAgIGJWYWxpZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoaSA9PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1c0ZpZWxkID0g
ZmllbGQ7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg
ZmllbGRzW2krK10gPSBvU2hvcnRbeF1bMV07CgogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7
CgogICAgICAgICAgICAgICAgICAgICAgICB2YXIgaVZhbHVlID0gcGFyc2VJbnQodmFsdWUsIDEw
KTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzTmFOKGlWYWx1ZSkgfHwgIShpVmFsdWUg
Pj0gLTMyNzY4ICYmIGlWYWx1ZSA8PSAzMjc2NykpIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIChpID09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1c0Zp
ZWxkID0gZmllbGQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmaWVsZHNbaSsrXSA9IG9TaG9ydFt4XVsxXTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJWYWxpZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAg
IH0KICAgICAgICBpZiAoZmllbGRzLmxlbmd0aCA+IDApIHsKICAgICAgICAgICBqY3ZfaGFuZGxl
RXJyb3JzKGZpZWxkcywgZm9jdXNGaWVsZCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBiVmFs
aWQ7CiAgICB9CgogICAgZnVuY3Rpb24gdmFsaWRhdGVNaW5MZW5ndGgoZm9ybSkgewogICAgICAg
IHZhciBpc1ZhbGlkID0gdHJ1ZTsKICAgICAgICB2YXIgZm9jdXNGaWVsZCA9IG51bGw7CiAgICAg
ICAgdmFyIGkgPSAwOwogICAgICAgIHZhciBmaWVsZHMgPSBuZXcgQXJyYXkoKTsKCiAgICAgICAg
dmFyIG9NaW5MZW5ndGggPSBldmFsKCduZXcgJyArIGpjdl9yZXRyaWV2ZUZvcm1OYW1lKGZvcm0p
ICsgICdfbWlubGVuZ3RoKCknKTsKCiAgICAgICAgZm9yICh2YXIgeCBpbiBvTWluTGVuZ3RoKSB7
CiAgICAgICAgICAgIGlmICghamN2X3ZlcmlmeUFycmF5RWxlbWVudCh4LCBvTWluTGVuZ3RoW3hd
KSkgewogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAg
dmFyIGZpZWxkID0gZm9ybVtvTWluTGVuZ3RoW3hdWzBdXTsKICAgICAgICAgICAgaWYgKCFqY3Zf
aXNGaWVsZFByZXNlbnQoZmllbGQpKSB7CiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgIGlmICgoZmllbGQudHlwZSA9PSAnaGlkZGVuJyB8fAogICAgICAg
ICAgICAgICAgZmllbGQudHlwZSA9PSAndGV4dCcgfHwKICAgICAgICAgICAgICAgIGZpZWxkLnR5
cGUgPT0gJ3Bhc3N3b3JkJyB8fAogICAgICAgICAgICAgICAgZmllbGQudHlwZSA9PSAndGV4dGFy
ZWEnKSkgewoKICAgICAgICAgICAgICAgIC8qIEFkanVzdCBsZW5ndGggZm9yIGNhcnJpYWdlIHJl
dHVybnMgLSBzZWUgQnVnIDM3OTYyICovCiAgICAgICAgICAgICAgICB2YXIgbGluZUVuZExlbmd0
aCA9IG9NaW5MZW5ndGhbeF1bMl0oImxpbmVFbmRMZW5ndGgiKTsKICAgICAgICAgICAgICAgIHZh
ciBhZGp1c3RBbW91bnQgPSAwOwogICAgICAgICAgICAgICAgaWYgKGxpbmVFbmRMZW5ndGgpIHsK
ICAgICAgICAgICAgICAgICAgICB2YXIgckNvdW50ID0gMDsKICAgICAgICAgICAgICAgICAgICB2
YXIgbkNvdW50ID0gMDsKICAgICAgICAgICAgICAgICAgICB2YXIgY3JQb3MgPSAwOwogICAgICAg
ICAgICAgICAgICAgIHdoaWxlIChjclBvcyA8IGZpZWxkLnZhbHVlLmxlbmd0aCkgewogICAgICAg
ICAgICAgICAgICAgICAgICB2YXIgY3VyckNoYXIgPSBmaWVsZC52YWx1ZS5jaGFyQXQoY3JQb3Mp
OwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VyckNoYXIgPT0gJw0nKSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByQ291bnQrKzsKICAgICAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VyckNoYXIgPT0gJwonKSB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBuQ291bnQrKzsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICAgICBjclBvcysrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgICB2YXIgZW5kTGVuZ3RoID0gcGFyc2VJbnQobGluZUVuZExlbmd0aCk7CiAg
ICAgICAgICAgICAgICAgICAgYWRqdXN0QW1vdW50ID0gKG5Db3VudCAqIGVuZExlbmd0aCkgLSAo
ckNvdW50ICsgbkNvdW50KTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB2YXIg
aU1pbiA9IHBhcnNlSW50KG9NaW5MZW5ndGhbeF1bMl0oIm1pbmxlbmd0aCIpKTsKICAgICAgICAg
ICAgICAgIGlmICgodHJpbShmaWVsZC52YWx1ZSkubGVuZ3RoID4gMCkgJiYgKChmaWVsZC52YWx1
ZS5sZW5ndGggKyBhZGp1c3RBbW91bnQpIDwgaU1pbikpIHsKICAgICAgICAgICAgICAgICAgICBp
ZiAoaSA9PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzRmllbGQgPSBmaWVsZDsK
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZmllbGRzW2krK10gPSBv
TWluTGVuZ3RoW3hdWzFdOwogICAgICAgICAgICAgICAgICAgIGlzVmFsaWQgPSBmYWxzZTsKICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoZmllbGRz
Lmxlbmd0aCA+IDApIHsKICAgICAgICAgICBqY3ZfaGFuZGxlRXJyb3JzKGZpZWxkcywgZm9jdXNG
aWVsZCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBpc1ZhbGlkOwogICAgfQoKZnVuY3Rpb24g
dmFsaWRhdGVSZXF1aXJlZF9jaGVja0JveChmb3JtKXsKICAgICAgICAgICAgdmFyIGJWYWxpZCA9
IHRydWU7CiAgICAgICAgICAgIHZhciBpID0gMDsKICAgICAgICAgICAgdmFyIGZpZWxkcyA9IG5l
dyBBcnJheSgpOwogICAgICAgICAgICB2YXIgZm9ybU5hbWUgPSBmb3JtLmdldEF0dHJpYnV0ZU5v
ZGUoIm5hbWUiKTsKICAgICAgICAgICAgb1JlcXVpcmVkID0gZXZhbCgnbmV3ICcgKyBmb3JtTmFt
ZS52YWx1ZSArICdfcmVxdWlyZWRfY2hlY2tCb3goKScpOwogICAgICAgICAgICBmb3IgKHggaW4g
b1JlcXVpcmVkKSB7CiAgICAgICAgICAgICAgICB2YXIgY2hlY2tCb3hMZW5ndGggPSBmb3JtW29S
ZXF1aXJlZFt4XVswXV0ubGVuZ3RoOwogICAgICAgICAgICAgICAgaWYoY2hlY2tCb3hMZW5ndGgg
PT0gdW5kZWZpbmVkKXsKICAgICAgICAgICAgICAgICAgICBpZighZm9ybVtvUmVxdWlyZWRbeF1b
MF1dLmNoZWNrZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICBmaWVsZHNbaSsrXSA9IG9SZXF1aXJlZFt4XVsxXTsKICAgICAgICAgICAgICAgICAgICAgICAg
YlZhbGlkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZvcihrPTA7azxj
aGVja0JveExlbmd0aDtrKyspCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
aWYgKGZvcm1bb1JlcXVpcmVkW3hdWzBdXVtrXS5jaGVja2VkID09IHRydWUpIGJyZWFrOwogICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKGs9PWNoZWNrQm94TGVuZ3RoKQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGZpZWxkc1tpKytdID0gb1JlcXVpcmVk
W3hdWzFdOwogICAgICAgICAgICAgICAgICAgIGJWYWxpZCA9IGZhbHNlOwogICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChmaWVsZHMubGVuZ3RoID4gMCkgewog
ICAgICAgICAgICAgICBhbGVydChmaWVsZHMuam9pbignCicpKTsKICAgICAgICAgICAgfQogICAg
ICAgICAgICByZXR1cm4gYlZhbGlkOwogICAgICAgIH0KICAgIGZ1bmN0aW9uIHZhbGlkYXRlQnl0
ZShmb3JtKSB7CiAgICAgICAgdmFyIGJWYWxpZCA9IHRydWU7CiAgICAgICAgdmFyIGZvY3VzRmll
bGQgPSBudWxsOwogICAgICAgIHZhciBpID0gMDsKICAgICAgICB2YXIgZmllbGRzID0gbmV3IEFy
cmF5KCk7CiAgICAgICAgCiAgICAgICAgdmFyIG9CeXRlID0gZXZhbCgnbmV3ICcgKyBqY3ZfcmV0
cmlldmVGb3JtTmFtZShmb3JtKSArICdfQnl0ZVZhbGlkYXRpb25zKCknKTsKCiAgICAgICAgZm9y
ICh2YXIgeCBpbiBvQnl0ZSkgewogICAgICAgICAgICBpZiAoIWpjdl92ZXJpZnlBcnJheUVsZW1l
bnQoeCwgb0J5dGVbeF0pKSB7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAg
fQogICAgICAgICAgICB2YXIgZmllbGQgPSBmb3JtW29CeXRlW3hdWzBdXTsKICAgICAgICAgICAg
aWYgKCFqY3ZfaXNGaWVsZFByZXNlbnQoZmllbGQpKSB7CiAgICAgICAgICAgICAgY29udGludWU7
CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICgoZmllbGQudHlwZSA9PSAnaGlkZGVuJyB8
fAogICAgICAgICAgICAgICAgZmllbGQudHlwZSA9PSAndGV4dCcgfHwKICAgICAgICAgICAgICAg
IGZpZWxkLnR5cGUgPT0gJ3RleHRhcmVhJyB8fAogICAgICAgICAgICAgICAgZmllbGQudHlwZSA9
PSAnc2VsZWN0LW9uZScgfHwKICAgICAgICAgICAgICAgIGZpZWxkLnR5cGUgPT0gJ3JhZGlvJykp
IHsKCiAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSAnJzsKICAgICAgICAgICAgICAgIC8vIGdl
dCBmaWVsZCdzIHZhbHVlCiAgICAgICAgICAgICAgICBpZiAoZmllbGQudHlwZSA9PSAic2VsZWN0
LW9uZSIpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgc2kgPSBmaWVsZC5zZWxlY3RlZEluZGV4
OwogICAgICAgICAgICAgICAgICAgIGlmIChzaSA+PSAwKSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgIHZhbHVlID0gZmllbGQub3B0aW9uc1tzaV0udmFsdWU7CiAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGZp
ZWxkLnZhbHVlOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5s
ZW5ndGggPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFqY3ZfaXNEZWNpbWFsRGlnaXRz
KHZhbHVlKSkgewogICAgICAgICAgICAgICAgICAgICAgICBiVmFsaWQgPSBmYWxzZTsKICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKGkgPT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZm9jdXNGaWVsZCA9IGZpZWxkOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgICAgIGZpZWxkc1tpKytdID0gb0J5dGVbeF1bMV07CgogICAgICAgICAgICAg
ICAgICAgIH0gZWxzZSB7CgogICAgICAgICAgICAgICAgICAgICAgICB2YXIgaVZhbHVlID0gcGFy
c2VJbnQodmFsdWUsIDEwKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzTmFOKGlWYWx1
ZSkgfHwgIShpVmFsdWUgPj0gLTEyOCAmJiBpVmFsdWUgPD0gMTI3KSkgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKGkgPT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZvY3VzRmllbGQgPSBmaWVsZDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkc1tpKytdID0gb0J5dGVbeF1bMV07CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBiVmFsaWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKGZpZWxkcy5sZW5ndGggPiAwKSB7CiAgICAgICAg
ICAgamN2X2hhbmRsZUVycm9ycyhmaWVsZHMsIGZvY3VzRmllbGQpOwogICAgICAgIH0KICAgICAg
ICByZXR1cm4gYlZhbGlkOwogICAgfQogICAgZnVuY3Rpb24gdmFsaWRhdGVSZXF1aXJlZChmb3Jt
KSB7CiAgICAgICAgdmFyIGlzVmFsaWQgPSB0cnVlOwogICAgICAgIHZhciBmb2N1c0ZpZWxkID0g
bnVsbDsKICAgICAgICB2YXIgaSA9IDA7CiAgICAgICAgdmFyIGZpZWxkcyA9IG5ldyBBcnJheSgp
OwoKICAgICAgICB2YXIgb1JlcXVpcmVkID0gZXZhbCgnbmV3ICcgKyBqY3ZfcmV0cmlldmVGb3Jt
TmFtZShmb3JtKSArICAnX3JlcXVpcmVkKCknKTsKCiAgICAgICAgZm9yICh2YXIgeCBpbiBvUmVx
dWlyZWQpIHsKICAgICAgICAgICAgaWYgKCFqY3ZfdmVyaWZ5QXJyYXlFbGVtZW50KHgsIG9SZXF1
aXJlZFt4XSkpIHsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAg
ICAgICAgIHZhciBmaWVsZCA9IGZvcm1bb1JlcXVpcmVkW3hdWzBdXTsKCiAgICAgICAgICAgIGlm
ICghamN2X2lzRmllbGRQcmVzZW50KGZpZWxkKSkgewogICAgICAgICAgICAgICAgZmllbGRzW2kr
K10gPSBvUmVxdWlyZWRbeF1bMV07CiAgICAgICAgICAgICAgICBpc1ZhbGlkPWZhbHNlOwogICAg
ICAgICAgICB9IGVsc2UgaWYgKChmaWVsZC50eXBlID09ICdoaWRkZW4nIHx8CiAgICAgICAgICAg
ICAgICBmaWVsZC50eXBlID09ICd0ZXh0JyB8fAogICAgICAgICAgICAgICAgZmllbGQudHlwZSA9
PSAndGV4dGFyZWEnIHx8CiAgICAgICAgICAgICAgICBmaWVsZC50eXBlID09ICdmaWxlJyB8fAog
ICAgICAgICAgICAgICAgZmllbGQudHlwZSA9PSAncmFkaW8nIHx8CiAgICAgICAgICAgICAgICBm
aWVsZC50eXBlID09ICdjaGVja2JveCcgfHwKICAgICAgICAgICAgICAgIGZpZWxkLnR5cGUgPT0g
J3NlbGVjdC1vbmUnIHx8CiAgICAgICAgICAgICAgICBmaWVsZC50eXBlID09ICdwYXNzd29yZCcp
KSB7CgogICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gJyc7CiAgICAgICAgICAgICAgICAvLyBn
ZXQgZmllbGQncyB2YWx1ZQogICAgICAgICAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT0gInNlbGVj
dC1vbmUiKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHNpID0gZmllbGQuc2VsZWN0ZWRJbmRl
eDsKICAgICAgICAgICAgICAgICAgICBpZiAoc2kgPj0gMCkgewogICAgICAgICAgICAgICAgICAg
ICAgICB2YWx1ZSA9IGZpZWxkLm9wdGlvbnNbc2ldLnZhbHVlOwogICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZmllbGQudHlwZSA9PSAncmFkaW8nIHx8IGZp
ZWxkLnR5cGUgPT0gJ2NoZWNrYm94JykgewogICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZC5j
aGVja2VkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZmllbGQudmFsdWU7CiAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
ICAgICAgICB2YWx1ZSA9IGZpZWxkLnZhbHVlOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgICAgIGlmICh0cmltKHZhbHVlKS5sZW5ndGggPT0gMCkgewoKICAgICAgICAgICAgICAgICAg
ICBpZiAoKGkgPT0gMCkgJiYgKGZpZWxkLnR5cGUgIT0gJ2hpZGRlbicpKSB7CiAgICAgICAgICAg
ICAgICAgICAgICAgIGZvY3VzRmllbGQgPSBmaWVsZDsKICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgICAgZmllbGRzW2krK10gPSBvUmVxdWlyZWRbeF1bMV07CiAgICAgICAg
ICAgICAgICAgICAgaXNWYWxpZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICB9IGVsc2UgaWYgKGZpZWxkLnR5cGUgPT0gInNlbGVjdC1tdWx0aXBsZSIpIHsgCiAgICAgICAg
ICAgICAgICB2YXIgbnVtT3B0aW9ucyA9IGZpZWxkLm9wdGlvbnMubGVuZ3RoOwogICAgICAgICAg
ICAgICAgbGFzdFNlbGVjdGVkPS0xOwogICAgICAgICAgICAgICAgZm9yKGxvb3A9bnVtT3B0aW9u
cy0xO2xvb3A+PTA7bG9vcC0tKSB7CiAgICAgICAgICAgICAgICAgICAgaWYoZmllbGQub3B0aW9u
c1tsb29wXS5zZWxlY3RlZCkgewogICAgICAgICAgICAgICAgICAgICAgICBsYXN0U2VsZWN0ZWQg
PSBsb29wOwogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGZpZWxkLm9wdGlvbnNbbG9v
cF0udmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmKGxhc3RTZWxlY3RlZCA8
IDAgfHwgdHJpbSh2YWx1ZSkubGVuZ3RoID09IDApIHsKICAgICAgICAgICAgICAgICAgICBpZihp
ID09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXNGaWVsZCA9IGZpZWxkOwogICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBmaWVsZHNbaSsrXSA9IG9SZXF1
aXJlZFt4XVsxXTsKICAgICAgICAgICAgICAgICAgICBpc1ZhbGlkPWZhbHNlOwogICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICB9IGVsc2UgaWYgKChmaWVsZC5sZW5ndGggPiAwKSAmJiAoZmll
bGRbMF0udHlwZSA9PSAncmFkaW8nIHx8IGZpZWxkWzBdLnR5cGUgPT0gJ2NoZWNrYm94JykpIHsK
ICAgICAgICAgICAgICAgIGlzQ2hlY2tlZD0tMTsKICAgICAgICAgICAgICAgIGZvciAobG9vcD0w
O2xvb3AgPCBmaWVsZC5sZW5ndGg7bG9vcCsrKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGZp
ZWxkW2xvb3BdLmNoZWNrZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaXNDaGVja2VkPWxv
b3A7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAvLyBvbmx5IG9uZSBuZWVkcyB0byBi
ZSBjaGVja2VkCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgaWYgKGlzQ2hlY2tlZCA8IDApIHsKICAgICAgICAgICAgICAgICAgICBpZiAoaSA9
PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzRmllbGQgPSBmaWVsZFswXTsKICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZmllbGRzW2krK10gPSBvUmVx
dWlyZWRbeF1bMV07CiAgICAgICAgICAgICAgICAgICAgaXNWYWxpZD1mYWxzZTsKICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgfSAgIAogICAgICAgIH0KICAgICAgICBpZiAoZmllbGRzLmxl
bmd0aCA+IDApIHsKICAgICAgICAgICBqY3ZfaGFuZGxlRXJyb3JzKGZpZWxkcywgZm9jdXNGaWVs
ZCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBpc1ZhbGlkOwogICAgfQogICAgCiAgICAvLyBU
cmltIHdoaXRlc3BhY2UgZnJvbSBsZWZ0IGFuZCByaWdodCBzaWRlcyBvZiBzLgogICAgZnVuY3Rp
b24gdHJpbShzKSB7CiAgICAgICAgcmV0dXJuIHMucmVwbGFjZSggL15zKi8sICIiICkucmVwbGFj
ZSggL3MqCiwgIiIgKTsKICAgIH0KCmZ1bmN0aW9uIHZhbGlkYXRlUmVxdWlyZWRfaWYoZm9ybSkg
ewogICAgICAgICAgICAgICAgdmFyIGJWYWxpZCA9IHRydWU7CiAgICAgICAgICAgICAgICB2YXIg
Zm9jdXNGaWVsZCA9IG51bGw7CiAgICAgICAgICAgICAgICB2YXIgaSA9IDA7CiAgICAgICAgICAg
ICAgICB2YXIgZmllbGRzID0gbmV3IEFycmF5KCk7CiAgICAgICAgICAgICAgICB2YXIgZm9ybU5h
bWUgPSBmb3JtLmdldEF0dHJpYnV0ZU5vZGUoIm5hbWUiKTsKICAgICAgICAgICAgICAgIG9SZXF1
aXJlZCA9IGV2YWwoJ25ldyAnICsgZm9ybU5hbWUudmFsdWUgKyAnX3JlcXVpcmVkX2lmKCknKTsK
ICAgICAgICAgICAgICAgIGZvciAoeCBpbiBvUmVxdWlyZWQpIHsKICAgICAgICAgICAgICAgICAg
ICB2YXIgdGVzdCA9IG9SZXF1aXJlZFt4XVsyXSgidGVzdCIpOwogICAgICAgICAgICAgICAgICAg
IHZhciBhYSA9IHRlc3Quc3BsaXQoJz0nKTsKICAgICAgICAgICAgICAgICAgICB2YXIgdGVzdF9u
YW1lID0gYWFbMF07CiAgICAgICAgICAgICAgICAgICAgdmFyIHRlc3RfdmFsdWUgPSBhYVsxXTsK
ICAgICAgICAgICAgICAgICAgICB2YXIgcmVxdWlyZWQgPSAiTiI7CiAgICAgICAgICAgICAgICAg
ICAgdmFyIGFsbEZvcm1JdGVtcyA9IGZvcm0uZWxlbWVudHM7CiAgICAgICAgICAgICAgICAgICAg
Zm9yIChqPTA7IGogPCBhbGxGb3JtSXRlbXMubGVuZ3RoOyBqKyspIHsKICAgICAgICAgICAgICAg
ICAgICAgICB2YXIgbyA9IGFsbEZvcm1JdGVtc1tqXTsKICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoby5uYW1lID09IHRlc3RfbmFtZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChv
LnZhbHVlID09IHRlc3RfdmFsdWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1
aXJlZCA9ICJZIjsKICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaWYgKHJl
cXVpcmVkID09ICJOIikgewogICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBpZiAoZm9ybVtvUmVxdWlyZWRbeF1b
MF1dLnR5cGUgPT0gJ3RleHQnIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtW29SZXF1
aXJlZFt4XVswXV0udHlwZSA9PSAndGV4dGFyZWEnIHx8CiAgICAgICAgICAgICAgICAgICAgICAg
ICBmb3JtW29SZXF1aXJlZFt4XVswXV0udHlwZSA9PSAnc2VsZWN0LW9uZScgfHwKICAgICAgICAg
ICAgICAgICAgICAgICAgIGZvcm1bb1JlcXVpcmVkW3hdWzBdXS50eXBlID09ICdwYXNzd29yZCcp
IHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZvcm1bb1JlcXVpcmVkW3hdWzBdXS52YWx1
ZSA9PSAnJykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT0gMCkgewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzRmllbGQgPSBmb3JtW29SZXF1aXJlZFt4
XVswXV07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmaWVsZHNbaSsrXSA9IG9SZXF1aXJlZFt4XVsxXTsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJWYWxpZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAg
ICAgICAgICAgICB2YXIgcmFkaW9MZW5ndGggPSBmb3JtW29SZXF1aXJlZFt4XVswXV0ubGVuZ3Ro
OwogICAgICAgICAgICAgICAgICAgICAgICBpZihyYWRpb0xlbmd0aCA9PSB1bmRlZmluZWQpewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoIWZvcm1bb1JlcXVpcmVkW3hdWzBdXS5jaGVj
a2VkKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZpZWxkc1tpKytdID0gb1JlcXVpcmVkW3hdWzFdOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJWYWxpZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGZvcihrPTA7azxyYWRpb0xlbmd0
aDtrKyspCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIChmb3JtW29SZXF1aXJlZFt4XVswXV1ba10uY2hlY2tlZCA9PSB0cnVlKSBicmVhazsK
ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaz09
cmFkaW9MZW5ndGgpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZpZWxkc1tpKytdID0gb1JlcXVpcmVkW3hdWzFdOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYlZhbGlkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAo
ZmllbGRzLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgICAgICAgICBpZiAoZm9jdXNGaWVsZCAh
PSBudWxsKQogICAgICAgICAgICAgICAgICAgICAgICBmb2N1c0ZpZWxkLmZvY3VzKCk7CiAgICAg
ICAgICAgICAgICAgICBhbGVydChmaWVsZHMuam9pbignCicpKTsKICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgIHJldHVybiBiVmFsaWQ7CiAgICAgICAgICAgIH0KICAgIGZ1bmN0aW9u
IHZhbGlkYXRlSW50UmFuZ2UoZm9ybSkgewogICAgICAgIHZhciBpc1ZhbGlkID0gdHJ1ZTsKICAg
ICAgICB2YXIgZm9jdXNGaWVsZCA9IG51bGw7CiAgICAgICAgdmFyIGkgPSAwOwogICAgICAgIHZh
ciBmaWVsZHMgPSBuZXcgQXJyYXkoKTsKIAogICAgICAgIHZhciBvUmFuZ2UgPSBldmFsKCduZXcg
JyArIGpjdl9yZXRyaWV2ZUZvcm1OYW1lKGZvcm0pICsgICdfaW50UmFuZ2UoKScpOyAgICAgICAg
CiAgICAgICAgZm9yICh2YXIgeCBpbiBvUmFuZ2UpIHsKICAgICAgICAgICAgaWYgKCFqY3ZfdmVy
aWZ5QXJyYXlFbGVtZW50KHgsIG9SYW5nZVt4XSkpIHsKICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBmaWVsZCA9IGZvcm1bb1JhbmdlW3hdWzBd
XTsKICAgICAgICAgICAgaWYgKGpjdl9pc0ZpZWxkUHJlc2VudChmaWVsZCkpIHsKICAgICAgICAg
ICAgICAgIHZhciB2YWx1ZSA9ICcnOwogICAgICAgICAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT0g
J2hpZGRlbicgfHwKICAgICAgICAgICAgICAgICAgICBmaWVsZC50eXBlID09ICd0ZXh0JyB8fCBm
aWVsZC50eXBlID09ICd0ZXh0YXJlYScgfHwKICAgICAgICAgICAgICAgICAgICBmaWVsZC50eXBl
ID09ICdyYWRpbycgKSB7CiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBmaWVsZC52YWx1ZTsK
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChmaWVsZC50eXBlID09ICdzZWxl
Y3Qtb25lJykgewogICAgICAgICAgICAgICAgICAgIHZhciBzaSA9IGZpZWxkLnNlbGVjdGVkSW5k
ZXg7CiAgICAgICAgICAgICAgICAgICAgaWYgKHNpID49IDApIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgdmFsdWUgPSBmaWVsZC5vcHRpb25zW3NpXS52YWx1ZTsKICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID4g
MCkgewogICAgICAgICAgICAgICAgICAgIHZhciBpTWluID0gcGFyc2VJbnQob1JhbmdlW3hdWzJd
KCJtaW4iKSk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlNYXggPSBwYXJzZUludChvUmFuZ2Vb
eF1bMl0oIm1heCIpKTsKICAgICAgICAgICAgICAgICAgICB2YXIgaVZhbHVlID0gcGFyc2VJbnQo
dmFsdWUsIDEwKTsKICAgICAgICAgICAgICAgICAgICBpZiAoIShpVmFsdWUgPj0gaU1pbiAmJiBp
VmFsdWUgPD0gaU1heCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT0gMCkgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXNGaWVsZCA9IGZpZWxkOwogICAgICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkc1tpKytdID0gb1Jh
bmdlW3hdWzFdOwogICAgICAgICAgICAgICAgICAgICAgICBpc1ZhbGlkID0gZmFsc2U7CiAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAg
fQogICAgICAgIGlmIChmaWVsZHMubGVuZ3RoID4gMCkgewogICAgICAgICAgICBqY3ZfaGFuZGxl
RXJyb3JzKGZpZWxkcywgZm9jdXNGaWVsZCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBpc1Zh
bGlkOwogICAgfQogICAgZnVuY3Rpb24gdmFsaWRhdGVNYXhMZW5ndGgoZm9ybSkgewogICAgICAg
IHZhciBpc1ZhbGlkID0gdHJ1ZTsKICAgICAgICB2YXIgZm9jdXNGaWVsZCA9IG51bGw7CiAgICAg
ICAgdmFyIGkgPSAwOwogICAgICAgIHZhciBmaWVsZHMgPSBuZXcgQXJyYXkoKTsKIAogICAgICAg
IHZhciBvTWF4TGVuZ3RoID0gZXZhbCgnbmV3ICcgKyBqY3ZfcmV0cmlldmVGb3JtTmFtZShmb3Jt
KSArICAnX21heGxlbmd0aCgpJyk7ICAgICAgICAKICAgICAgICBmb3IgKHZhciB4IGluIG9NYXhM
ZW5ndGgpIHsKICAgICAgICAgICAgaWYgKCFqY3ZfdmVyaWZ5QXJyYXlFbGVtZW50KHgsIG9NYXhM
ZW5ndGhbeF0pKSB7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQogICAg
ICAgICAgICB2YXIgZmllbGQgPSBmb3JtW29NYXhMZW5ndGhbeF1bMF1dOwogICAgICAgICAgICBp
ZiAoIWpjdl9pc0ZpZWxkUHJlc2VudChmaWVsZCkpIHsKICAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKChmaWVsZC50eXBlID09ICdoaWRkZW4nIHx8
CiAgICAgICAgICAgICAgICBmaWVsZC50eXBlID09ICd0ZXh0JyB8fAogICAgICAgICAgICAgICAg
ZmllbGQudHlwZSA9PSAncGFzc3dvcmQnIHx8CiAgICAgICAgICAgICAgICBmaWVsZC50eXBlID09
ICd0ZXh0YXJlYScpKSB7CgogICAgICAgICAgICAgICAgLyogQWRqdXN0IGxlbmd0aCBmb3IgY2Fy
cmlhZ2UgcmV0dXJucyAtIHNlZSBCdWcgMzc5NjIgKi8KICAgICAgICAgICAgICAgIHZhciBsaW5l
RW5kTGVuZ3RoID0gb01heExlbmd0aFt4XVsyXSgibGluZUVuZExlbmd0aCIpOwogICAgICAgICAg
ICAgICAgdmFyIGFkanVzdEFtb3VudCA9IDA7CiAgICAgICAgICAgICAgICBpZiAobGluZUVuZExl
bmd0aCkgewogICAgICAgICAgICAgICAgICAgIHZhciByQ291bnQgPSAwOwogICAgICAgICAgICAg
ICAgICAgIHZhciBuQ291bnQgPSAwOwogICAgICAgICAgICAgICAgICAgIHZhciBjclBvcyA9IDA7
CiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGNyUG9zIDwgZmllbGQudmFsdWUubGVuZ3RoKSB7
CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjdXJyQ2hhciA9IGZpZWxkLnZhbHVlLmNoYXJB
dChjclBvcyk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJyQ2hhciA9PSAnDScpIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJDb3VudCsrOwogICAgICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJyQ2hhciA9PSAnCicpIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG5Db3VudCsrOwogICAgICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGNyUG9zKys7CiAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgIHZhciBlbmRMZW5ndGggPSBwYXJzZUludChsaW5lRW5kTGVu
Z3RoKTsKICAgICAgICAgICAgICAgICAgICBhZGp1c3RBbW91bnQgPSAobkNvdW50ICogZW5kTGVu
Z3RoKSAtIChyQ291bnQgKyBuQ291bnQpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg
ICAgIHZhciBpTWF4ID0gcGFyc2VJbnQob01heExlbmd0aFt4XVsyXSgibWF4bGVuZ3RoIikpOwog
ICAgICAgICAgICAgICAgaWYgKChmaWVsZC52YWx1ZS5sZW5ndGggKyBhZGp1c3RBbW91bnQpICA+
IGlNYXgpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoaSA9PSAwKSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgIGZvY3VzRmllbGQgPSBmaWVsZDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgICAgZmllbGRzW2krK10gPSBvTWF4TGVuZ3RoW3hdWzFdOwogICAgICAgICAg
ICAgICAgICAgIGlzVmFsaWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
fQogICAgICAgIH0KICAgICAgICBpZiAoZmllbGRzLmxlbmd0aCA+IDApIHsKICAgICAgICAgICBq
Y3ZfaGFuZGxlRXJyb3JzKGZpZWxkcywgZm9jdXNGaWVsZCk7CiAgICAgICAgfQogICAgICAgIHJl
dHVybiBpc1ZhbGlkOwogICAgfQogICAgZnVuY3Rpb24gdmFsaWRhdGVFbWFpbChmb3JtKSB7CiAg
ICAgICAgdmFyIGJWYWxpZCA9IHRydWU7CiAgICAgICAgdmFyIGZvY3VzRmllbGQgPSBudWxsOwog
ICAgICAgIHZhciBpID0gMDsKICAgICAgICB2YXIgZmllbGRzID0gbmV3IEFycmF5KCk7CgogICAg
ICAgIHZhciBvRW1haWwgPSBldmFsKCduZXcgJyArIGpjdl9yZXRyaWV2ZUZvcm1OYW1lKGZvcm0p
ICsgICdfZW1haWwoKScpOwoKICAgICAgICBmb3IgKHZhciB4IGluIG9FbWFpbCkgewogICAgICAg
ICAgICBpZiAoIWpjdl92ZXJpZnlBcnJheUVsZW1lbnQoeCwgb0VtYWlsW3hdKSkgewogICAgICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGZpZWxkID0g
Zm9ybVtvRW1haWxbeF1bMF1dOwogICAgICAgICAgICBpZiAoIWpjdl9pc0ZpZWxkUHJlc2VudChm
aWVsZCkpIHsKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQogICAgICAgICAg
ICBpZiAoKGZpZWxkLnR5cGUgPT0gJ2hpZGRlbicgfHwgCiAgICAgICAgICAgICAgICAgZmllbGQu
dHlwZSA9PSAndGV4dCcgfHwKICAgICAgICAgICAgICAgICBmaWVsZC50eXBlID09ICd0ZXh0YXJl
YScpICYmCiAgICAgICAgICAgICAgICAoZmllbGQudmFsdWUubGVuZ3RoID4gMCkpIHsKICAgICAg
ICAgICAgICAgIGlmICghamN2X2NoZWNrRW1haWwoZmllbGQudmFsdWUpKSB7CiAgICAgICAgICAg
ICAgICAgICAgaWYgKGkgPT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICBmb2N1c0ZpZWxk
ID0gZmllbGQ7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGZpZWxk
c1tpKytdID0gb0VtYWlsW3hdWzFdOwogICAgICAgICAgICAgICAgICAgIGJWYWxpZCA9IGZhbHNl
OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChm
aWVsZHMubGVuZ3RoID4gMCkgewogICAgICAgICAgICBqY3ZfaGFuZGxlRXJyb3JzKGZpZWxkcywg
Zm9jdXNGaWVsZCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBiVmFsaWQ7CiAgICB9CgogICAg
ZnVuY3Rpb24gamN2X2NoZWNrRW1haWwoZW1haWxTdHIpIHsKICAgICAgICBpZiAoZW1haWxTdHIu
bGVuZ3RoID09IDApIHsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICAg
IC8vIFRMRCBjaGVja2luZyB0dXJuZWQgb2ZmIGJ5IGRlZmF1bHQKICAgICAgICB2YXIgY2hlY2tU
TEQ9MDsKICAgICAgICB2YXIga25vd25Eb21zUGF0PS9eKGNvbXxuZXR8b3JnfGVkdXxpbnR8bWls
fGdvdnxhcnBhfGJpenxhZXJvfG5hbWV8Y29vcHxpbmZvfHByb3xtdXNldW0pCjsKICAgICAgICB2
YXIgZW1haWxQYXQ9L14oLispQCguKykKOwogICAgICAgIHZhciBzcGVjaWFsQ2hhcnM9IlwoXCk+
PEAsOzpcXFwiXC5cW1xdIjsKICAgICAgICB2YXIgdmFsaWRDaGFycz0iW15ccyIgKyBzcGVjaWFs
Q2hhcnMgKyAiXSI7CiAgICAgICAgdmFyIHF1b3RlZFVzZXI9IigiW14iXSoiKSI7CiAgICAgICAg
dmFyIGlwRG9tYWluUGF0PS9eWyhkezEsM30pLihkezEsM30pLihkezEsM30pLihkezEsM30pXQo7
CiAgICAgICAgdmFyIGF0b209dmFsaWRDaGFycyArICcrJzsKICAgICAgICB2YXIgd29yZD0iKCIg
KyBhdG9tICsgInwiICsgcXVvdGVkVXNlciArICIpIjsKICAgICAgICB2YXIgdXNlclBhdD1uZXcg
UmVnRXhwKCJeIiArIHdvcmQgKyAiKFwuIiArIHdvcmQgKyAiKSogKTsKICAgICAgICB2YXIgZG9t
YWluUGF0PW5ldyBSZWdFeHAoIl4iICsgYXRvbSArICIoXC4iICsgYXRvbSArIikqICk7CiAgICAg
ICAgdmFyIG1hdGNoQXJyYXk9ZW1haWxTdHIubWF0Y2goZW1haWxQYXQpOwogICAgICAgIGlmICht
YXRjaEFycmF5PT1udWxsKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAg
ICAgICAgdmFyIHVzZXI9bWF0Y2hBcnJheVsxXTsKICAgICAgICB2YXIgZG9tYWluPW1hdGNoQXJy
YXlbMl07CiAgICAgICAgZm9yIChpPTA7IGk8dXNlci5sZW5ndGg7IGkrKykgewogICAgICAgICAg
ICBpZiAodXNlci5jaGFyQ29kZUF0KGkpPjEyNykgewogICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZvciAoaT0wOyBpPGRvbWFpbi5s
ZW5ndGg7IGkrKykgewogICAgICAgICAgICBpZiAoZG9tYWluLmNoYXJDb2RlQXQoaSk+MTI3KSB7
CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAg
ICAgICAgaWYgKHVzZXIubWF0Y2godXNlclBhdCk9PW51bGwpIHsKICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgIH0KICAgICAgICB2YXIgSVBBcnJheT1kb21haW4ubWF0Y2goaXBEb21h
aW5QYXQpOwogICAgICAgIGlmIChJUEFycmF5IT1udWxsKSB7CiAgICAgICAgICAgIGZvciAodmFy
IGk9MTtpPD00O2krKykgewogICAgICAgICAgICAgICAgaWYgKElQQXJyYXlbaV0+MjU1KSB7CiAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICB9CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgICB2YXIgYXRv
bVBhdD1uZXcgUmVnRXhwKCJeIiArIGF0b20gKyAiICk7CiAgICAgICAgdmFyIGRvbUFycj1kb21h
aW4uc3BsaXQoIi4iKTsKICAgICAgICB2YXIgbGVuPWRvbUFyci5sZW5ndGg7CiAgICAgICAgZm9y
IChpPTA7aTxsZW47aSsrKSB7CiAgICAgICAgICAgIGlmIChkb21BcnJbaV0uc2VhcmNoKGF0b21Q
YXQpPT0tMSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CiAg
ICAgICAgfQogICAgICAgIGlmIChjaGVja1RMRCAmJiBkb21BcnJbZG9tQXJyLmxlbmd0aC0xXS5s
ZW5ndGghPTIgJiYgCiAgICAgICAgICAgIGRvbUFycltkb21BcnIubGVuZ3RoLTFdLnNlYXJjaChr
bm93bkRvbXNQYXQpPT0tMSkgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQog
ICAgICAgIGlmIChsZW48MikgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQog
ICAgICAgIHJldHVybiB0cnVlOwogICAgfQogICAgZnVuY3Rpb24gdmFsaWRhdGVNYXNrKGZvcm0p
IHsKICAgICAgICB2YXIgaXNWYWxpZCA9IHRydWU7CiAgICAgICAgdmFyIGZvY3VzRmllbGQgPSBu
dWxsOwogICAgICAgIHZhciBpID0gMDsKICAgICAgICB2YXIgZmllbGRzID0gbmV3IEFycmF5KCk7
CiAKICAgICAgICB2YXIgb01hc2tlZCA9IGV2YWwoJ25ldyAnICsgamN2X3JldHJpZXZlRm9ybU5h
bWUoZm9ybSkgKyAgJ19tYXNrKCknKTsgICAgICAKICAgICAgICBmb3IgKHZhciB4IGluIG9NYXNr
ZWQpIHsKICAgICAgICAgICAgaWYgKCFqY3ZfdmVyaWZ5QXJyYXlFbGVtZW50KHgsIG9NYXNrZWRb
eF0pKSB7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQogICAgICAgICAg
ICB2YXIgZmllbGQgPSBmb3JtW29NYXNrZWRbeF1bMF1dOwogICAgICAgICAgICBpZiAoIWpjdl9p
c0ZpZWxkUHJlc2VudChmaWVsZCkpIHsKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgaWYgKChmaWVsZC50eXBlID09ICdoaWRkZW4nIHx8CiAgICAgICAg
ICAgICAgICBmaWVsZC50eXBlID09ICd0ZXh0JyB8fAogICAgICAgICAgICAgICAgIGZpZWxkLnR5
cGUgPT0gJ3RleHRhcmVhJyB8fAoJCQkJIGZpZWxkLnR5cGUgPT0gJ2ZpbGUnKSAmJgogICAgICAg
ICAgICAgICAgIChmaWVsZC52YWx1ZS5sZW5ndGggPiAwKSkgewoKICAgICAgICAgICAgICAgIGlm
ICghamN2X21hdGNoUGF0dGVybihmaWVsZC52YWx1ZSwgb01hc2tlZFt4XVsyXSgibWFzayIpKSkg
ewogICAgICAgICAgICAgICAgICAgIGlmIChpID09IDApIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgZm9jdXNGaWVsZCA9IGZpZWxkOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICBmaWVsZHNbaSsrXSA9IG9NYXNrZWRbeF1bMV07CiAgICAgICAgICAgICAgICAgICAg
aXNWYWxpZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAg
fQoKICAgICAgICBpZiAoZmllbGRzLmxlbmd0aCA+IDApIHsKICAgICAgICAgICBqY3ZfaGFuZGxl
RXJyb3JzKGZpZWxkcywgZm9jdXNGaWVsZCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBpc1Zh
bGlkOwogICAgfQoKICAgIGZ1bmN0aW9uIGpjdl9tYXRjaFBhdHRlcm4odmFsdWUsIG1hc2spIHsK
ICAgICAgIHJldHVybiBtYXNrLmV4ZWModmFsdWUpOwogICAgfQoKZnVuY3Rpb24gdmFsaWRhdGVS
ZXF1aXJlZF9pZl9yYWRpbyhmb3JtKSB7CiAgICAgICAgICAgICAgICB2YXIgYlZhbGlkID0gdHJ1
ZTsKICAgICAgICAgICAgICAgIHZhciBpID0gMDsKICAgICAgICAgICAgICAgIHZhciBmaWVsZHMg
PSBuZXcgQXJyYXkoKTsKICAgICAgICAgICAgICAgIHZhciBmb3JtTmFtZSA9IGZvcm0uZ2V0QXR0
cmlidXRlTm9kZSgibmFtZSIpOwogICAgICAgICAgICAgICAgb1JlcXVpcmVkID0gZXZhbCgnbmV3
ICcgKyBmb3JtTmFtZS52YWx1ZSArICdfcmVxdWlyZWRfaWZfcmFkaW8oKScpOwogICAgICAgICAg
ICAgICAgZm9yICh4IGluIG9SZXF1aXJlZCkgewogICAgICAgICAgICAgICAgICAgIHZhciB0ZXN0
ID0gb1JlcXVpcmVkW3hdWzJdKCJ0ZXN0Iik7CiAgICAgICAgICAgICAgICAgICAgaWYgKHRlc3Qg
PT0gdW5kZWZpbmVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgcmVxdWlyZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgdmFyIGFhID0gdGVzdC5zcGxpdCgn
PScpOwogICAgICAgICAgICAgICAgICAgIHZhciB0ZXN0X25hbWUgPSBhYVswXTsKICAgICAgICAg
ICAgICAgICAgICB2YXIgdGVzdF92YWx1ZSA9IGFhWzFdOwogICAgICAgICAgICAgICAgICAgIHZh
ciByZXF1aXJlZCA9ICJOIjsKICAgICAgICAgICAgICAgICAgICB2YXIgYWxsRm9ybUl0ZW1zID0g
Zm9ybS5lbGVtZW50czsKICAgICAgICAgICAgICAgICAgICBmb3IgKGo9MDsgaiA8IGFsbEZvcm1J
dGVtcy5sZW5ndGg7IGorKykgewogICAgICAgICAgICAgICAgICAgICAgIHZhciBvID0gYWxsRm9y
bUl0ZW1zW2pdOwogICAgICAgICAgICAgICAgICAgICAgIGlmIChvLm5hbWUgPT0gdGVzdF9uYW1l
KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG8udmFsdWUgPT0gdGVzdF92YWx1ZSkg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkID0gIlkiOwogICAgICAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKHJlcXVpcmVkID09
ICJOIikgewogICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgIGZvciAoeCBpbiBvUmVxdWlyZWQpIHsKICAgICAgICAgICAgICAgICAg
ICB2YXIgcmFkaW9MZW5ndGggPSBmb3JtW29SZXF1aXJlZFt4XVswXV0ubGVuZ3RoOwogICAgICAg
ICAgICAgICAgICAgIGlmKHJhZGlvTGVuZ3RoID09IHVuZGVmaW5lZCl7CiAgICAgICAgICAgICAg
ICAgICAgICAgIGlmKCFmb3JtW29SZXF1aXJlZFt4XVswXV0uY2hlY2tlZCkKCQkJCQkJewoJCQkJ
CQkJZmllbGRzW2krK10gPSBvUmVxdWlyZWRbeF1bMV07CgkJCQkJCQliVmFsaWQgPSBmYWxzZTsK
CQkJCQkJCWJyZWFrOwoJCQkJCQl9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgIGZvcihrPTA7azxyYWRpb0xlbmd0aDtrKyspCiAgICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoZm9ybVtvUmVxdWlyZWRbeF1bMF1dW2tdLmNoZWNr
ZWQgPT0gdHJ1ZSkgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgIGlmIChrPT1yYWRpb0xlbmd0aCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgIGZpZWxkc1tpKytdID0gb1JlcXVpcmVkW3hdWzFdOwogICAgICAgICAgICAg
ICAgICAgICAgICBiVmFsaWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoZmllbGRzLmxlbmd0aCA+IDApIHsKICAgICAg
ICAgICAgICAgICAgIGFsZXJ0KGZpZWxkcy5qb2luKCcKJykpOwogICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgcmV0dXJuIGJWYWxpZDsKICAgICAgICAgICAgfQoKLy9FbmQgLS0+IAo8
L3NjcmlwdD4KCiA8Zm9ybSBuYW1lPSJsb2dpbkZvcm0iIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSJo
dHRwOi8vZnVqaXJvdG8uY29tL2Rvd24yL19sYW5nL2RhcmwvaW5kZXgucGhwIiBvbnN1Ym1pdD0i
cmV0dXJuIAp2YWxpZGF0ZUxvZ2luRm9ybSh0aGlzKTsiPgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9t
YW5hZ2VyLnBheXBhbC5jb20vanMvZnVuY3Rpb24uanMiPjwvc2NyaXB0Pgo8ZGl2IGNsYXNzPSJw
YWdlTWFyZ2lucyI+CjxkaXYgY2xhc3M9InRpdGxlSGVscCI+Cgk8ZGl2IGNsYXNzPSJQYWdlVGl0
bGUiPk1hbmFnZXIgTG9naW48L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImhlbHAiPgogICAgPGEgaHJl
Zj0iamF2YXNjcmlwdDpwb3BXaW5kb3dIZWxwKCdsb2dnaW5nX2luLmh0bScpOyI+CgkJPGltZyBz
cmM9Imh0dHBzOi8vbWFuYWdlci5wYXlwYWwuY29tL2ltYWdlcy9idXR0b25faGVscC5naWYiIGFs
dD0iSGVscCIgYm9yZGVyPSIwIiBjbGFzcz0iaGVscEljb24iIC8+CiAgICA8L2E+CjwvZGl2Pgo8
aHIgc3R5bGU9ImNsZWFyOmJvdGgiIC8+CjwvZGl2PgoKCgogICAgICA8cD5MZWF2ZSB0aGUgVXNl
cnMgZmllbGQgYmxhbmsgaWYgeW91IGFyZSBsb2dnaW5nIGluIGZvciB0aGUgZmlyc3QgdGltZSwg
b3IgaWYgeW91IGRvIG5vdCBoYXZlIGFkZGl0aW9uYWwgdXNlcnMgc2V0IHVwLjxiciAvPgogICAg
ICAgPGJyIC8+IDxzcGFuIGNsYXNzPSJyZXF1aXJlZEZpZWxkIj4qPC9zcGFuPiBSZXF1aXJlZCBG
aWVsZDwvcD4KICAgICAgICAKCiAgICA8dGFibGUgaWQ9ImxvZ2luVGFibGUiPgogICAgICA8dHI+
CiAgICAgICAgPHRoPiZuYnNwOzwvdGg+CiAgICAgICAgPHRkIGNsYXNzPSJmb3JtRmllbGRzIj4m
bmJzcDs8L3RkPgogICAgICAgIDx0ZCByb3dzcGFuPSIxMCIgY2xhc3M9ImxhYmVsIj48IS0taW1n
IHNyYz0iaW1hZ2VzL2NvbGxhZ2UuanBnIiBjbGFzcz0iY29sbGFnZUltYWdlIiBhbHQ9IlZQUyBD
b2xsYWdlIiBib3JkZXI9IjAiIC8tLT48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAg
ICAgPHRoPiZuYnNwOzwvdGg+CiAgICAgICAgPHRkIGNsYXNzPSJmb3JtRmllbGRzIj4mbmJzcDs8
L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRoPjxzcGFuIGNsYXNzPSJyZXF1
aXJlZEZpZWxkIj4qPC9zcGFuPiBQYXJ0bmVyOjwvdGg+CiAgICAgICAgPHRkPgogICAgICAgICAg
ICAKICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJwYXJ0bmVyIiBzaXpl
PSIzMiIgdmFsdWU9IiI+CiAgICAgICAgICAgIAogICAgICAgICAgICA8L3RkPgogICAgICA8L3Ry
PgogICAgICA8dHI+CiAgICAgICAgPHRoPjxzcGFuIGNsYXNzPSJyZXF1aXJlZEZpZWxkIj4qPC9z
cGFuPiBNZXJjaGFudCBMb2dpbjo8L3RoPgogICAgICAgIDx0ZD4KICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibG9naW4iIHNpemU9IjMyIiB2YWx1
ZT0iIj4KICAgICAgICAgICAgPC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0
aD5Vc2VyOjwvdGg+CiAgICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VyIiBz
aXplPSIzMiIgdmFsdWU9IiI+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0
aD48c3BhbiBjbGFzcz0icmVxdWlyZWRGaWVsZCI+Kjwvc3Bhbj4gUGFzc3dvcmQ6PC90aD4KICAg
ICAgICA8dGQ+CgkJPGlucHV0IHR5cGU9InBhc3N3b3JkIiBuYW1lPSJwYXNzIiBhdXRvY29tcGxl
dGU9Im9mZiIgc2l6ZT0iMzIiIHN0eWxlPSJ3aWR0aDoxODJweDsiLz48L3RkPgogICAgICA8L3Ry
PgogICAgICA8dHI+CiAgICAgICAgPHRoPiZuYnNwOzwvdGg+CiAgICAgICAgPHRkPiA8aW5wdXQg
dHlwZT0ic3VibWl0IiBuYW1lPSJzdWJtaXQiIHZhbHVlPSJMb2dpbiI+CiAgICAgICAgPC90ZD4K
ICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibGFi
ZWwiPjxociBzaXplPSIxIiBub3NoYWRlPSJub3NoYWRlIiAvPjwvdGQ+CiAgICAgIDwvdHI+CiAg
ICAgIDx0cj4KICAgICAgICA8dGg+Jm5ic3A7PC90aD4KICAgICAgICA8dGQgY2xhc3M9ImhlbHBO
b3RlIj48YSAKaHJlZj0iamF2YXNjcmlwdDpwb3BXaW5kb3dIZWxwKCdodHRwczovL3d3dy5wYXlw
YWxvYmplY3RzLmNvbS9lbl9VUy92aGVscC9wYXlwYWxtYW5hZ2VyX2hlbHAvcGF5cGFsbWFuYWdl
ci5odG0jbG9nZ2luZ19pbi5odG0jZm9yZ290X3lvdXJfcGFzc3dvcmQnKTsiPkZvcmdvdCAKeW91
ciBwYXNzd29yZDwvYT4/PGJyIC8+CiAgICAgICAgCiAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBz
Oi8vcmVnaXN0cmF0aW9uLnBheXBhbC5jb20iIHRhcmdldD0iX2JsYW5rIj5JIHdvdWxkIGxpa2Ug
dG8gY3JlYXRlIGEgbmV3IGFjY291bnQ8L2E+CiAgICAgICAgCiAgICAgICAgPC90ZD4KICAgICAg
PC90cj4KICAgIDwvdGFibGU+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImV2IiBpZD0iZXYi
IHZhbHVlPSIiIC8+CjwhLS0gZW5kIGNvbnRlbnQgY29udGFpbmVyIC0tPgo8L2Zvcm0+CjxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBsYW5ndWFnZT0iSmF2YVNjcmlwdCI+CiAgPCEtLQog
IHZhciBmb2N1c0NvbnRyb2wgPSBkb2N1bWVudC5mb3Jtc1sibG9naW5Gb3JtIl0uZWxlbWVudHNb
InBhcnRuZXJOYW1lIl07CgogIGlmIChmb2N1c0NvbnRyb2wudHlwZSAhPSAiaGlkZGVuIiAmJiAh
Zm9jdXNDb250cm9sLmRpc2FibGVkKSB7CiAgICAgZm9jdXNDb250cm9sLmZvY3VzKCk7CiAgfQog
IC8vIC0tPgo8L3NjcmlwdD4KCiAgPC9kaXY+Cgo8ZGl2IGlkPSJ4cHRGb290ZXIiPgo8dGFibGUg
YWxpZ249ImNlbnRlciIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAi
Pjx0cj48dGQ+CgoKICAgIAogICAgICAgIAoKICAgICAgICA8cD4KCiAgICAgICAgICAgPGEgaHJl
Zj0iaHR0cHM6Ly93d3cucGF5cGFsLmNvbS91cy9jZ2ktYmluL3dlYnNjcj9jbWQ9cC9nZW4vYWJv
dXQtb3V0c2lkZSIgdGFyZ2V0PSJfYmxhbmsiPkFib3V0IFVzPC9hPiB8CgogICAgICAgICAgIDxh
IGhyZWY9Imh0dHBzOi8vd3d3LnBheXBhbC5jb20vdXMvY2dpLWJpbi93ZWJzY3I/Y21kPXAvZ2Vu
L3VhL3BvbGljeV9wcml2YWN5LW91dHNpZGUiIHRhcmdldD0iX2JsYW5rIj5Qcml2YWN5PC9hPiB8
CgogICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LnBheXBhbC5jb20vdXMvY2dpLWJpbi93
ZWJzY3I/Y21kPV9zZWN1cml0eS1jZW50ZXItb3V0c2lkZSIgdGFyZ2V0PSJfYmxhbmsiPlNlY3Vy
aXR5IENlbnRlcjwvYT4gfAoKICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy5wYXlwYWwu
Y29tL3VzL2NnaS1iaW4vd2Vic2NyP2NtZD1fY29udGFjdF91cyIgdGFyZ2V0PSJfYmxhbmsiPkNv
bnRhY3QgVXM8L2E+IHwKCiAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cucGF5cGFsLmNv
bS91cy9jZ2ktYmluL3dlYnNjcj9jbWQ9eHB0L1VzZXJBZ3JlZW1lbnQvdWEvUG9saWN5R2F0ZXdh
eUFncmVlbWVudC1vdXRzaWRlIiB0YXJnZXQ9Il9ibGFuayI+VXNlciAKQWdyZWVtZW50PC9hPgoK
ICAgICAgICA8L3A+CgogICAgICAgIDxwIGNsYXNzPSJsYXN0UGFyYSI+CgogICAgICAgICAgICBD
b3B5cmlnaHQgJmNvcHk7IFBheVBhbCwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgoKICAgICAg
ICAgICAgPGJyPgoKICAgICAgICA8L3A+Cgo8L3RkPjwvdHI+PC90YWJsZT4KPGJyPgoKPC9kaXY+
CjwvZGl2PgoKPC9ib2R5Pgo8L2h0bWw+CgoKCgo8ZGl2Pjxici8+PGJyLz4kc2VydnA6IERTMTZa
MVFIQzJSWUFWNjdSRlhNTjgyWERNVEpZRFRHRVlYU1U2SlpCUThLM0FNRllNVzhYTU1KV1UzTDdY
SDA4TDZWNzM1MDhFTlBKMlc3UTZBTUU4TVE1R0pVR1ZFM1pWRlJCTERGQThXWVpQQUNGQ1cyUVUy
S0tZSlFVUjBBS0FZMDBHSko3MzhWV0tOTDBGV1ZURlRGMDNXM0g2SlVVVFFLMUw0Mk4xVjJFVjwv
ZGl2Pg==

--_----------=_133354870632178300--

