# nhn_livecommentpreview v0.3.1
# live comment preview
# Nils Hrrmann
# http://www.nilshoerrmann.de/

# ......................................................................
# This is a plugin for Textpattern - http://textpattern.com/
# To install: textpattern > admin > plugins
# Paste the following text into the 'Install plugin' box:
# ......................................................................

YTo5OntzOjQ6Im5hbWUiO3M6MjI6Im5obl9saXZlY29tbWVudHByZXZpZXciO3M6NzoidmVy
c2lvbiI7czo1OiIwLjMuMSI7czo2OiJhdXRob3IiO3M6MTQ6Ik5pbHMgSMO2cnJtYW5uIjtz
OjEwOiJhdXRob3JfdXJpIjtzOjI4OiJodHRwOi8vd3d3Lm5pbHNob2Vycm1hbm4uZGUvIjtz
OjExOiJkZXNjcmlwdGlvbiI7czoyMDoibGl2ZSBjb21tZW50IHByZXZpZXciO3M6NDoidHlw
ZSI7aToxO3M6NDoiaGVscCI7czoyMzgwOiIKCTxoMT5uaG5fbGl2ZWNvbW1lbnRwcmV2aWV3
OiBMaXZlIGNvbW1lbnQgcHJldmlldzwvaDE+CgoJPHA+VGhpcyBwbHVnaW4gaXMgaGVhdmls
eSBiYXNlZCBvbiB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5oaWNrc2Rlc2lnbi5jby51ay9q
b3VybmFsL2xpdmUtY29tbWVudC1wcmV2aWV3cyI+bGl2ZSBjb21tZW50IGhhY2s8L2E+IGRl
c2NyaWJlZCBieSA8YSBocmVmPSJodHRwOi8vd3d3LmhpY2tzZGVzaWduLmNvLnVrIj5Kb24g
SGlja3M8L2E+IHVzaW5nIGNvZGUgYnkgPGEgaHJlZj0iaHR0cDovL3d3dy5rcnlvZ2VuaXgu
b3JnLyI+U3R1YXJ0IExhbmdyaWRnZTwvYT4gYW5kIDxhIGhyZWY9Imh0dHA6Ly93d3cuanJt
LmNjLyI+SmVmZiBNaW5hcmQ8L2E+LjxiciAvPgo8YnIvPjwvcD4KCgk8aDI+V2hhdCBkb2Vz
IGl0IGRvPzwvaDI+CgoJPHA+VGhlIHBsdWdpbiBnZW5lcmF0ZXMgYSBqYXZhc2NyaXB0LWJh
c2VkIGxpdmUgcHJldmlldyBvZiBjb21tZW50cy4gSXQgYXV0b21hdGljYWxseSBjcmVhdGVz
IGEgbmV3IGZvcm0gY2FsbGVkIG5obl9saXZlY29tbWVudHByZXZpZXcgd2hlcmUgeW91IGNh
biBjaGFuZ2UgdGhlIGFwcGVhcmFuY2Ugb2YgdGhlIGxpdmUgcHJldmlldy48YnIgLz4KVGhl
cmUgYXJlIHNvbWUgbmV3IHRhZ3MgeW91IGNhbiB1c2UgaW4gdGhpcyBmb3JtOjwvcD4KCgk8
aDM+JiM2MDt0eHA6bmhuJiM5NTtsY3AmIzk1O2F1dGhvciAvJiM2Mjs8L2gzPgoKCTxwPlRo
ZSBuYW1lIG9mIHRoZSBhdXRob3Igd2hvc2UgY29tbWVudCBpcyBwcmV2aWV3ZWQuPC9wPgoK
CTxoMz4mIzYwO3R4cDpuaG4mIzk1O2xjcCYjOTU7cHJldmlldyAvJiM2Mjs8L2gzPgoKCTxw
PlRoZSBsaXZlIGNvbW1lbnQgcHJldmlldyBpdHNlbGYuPC9wPgoKCTxoMz4mIzYwO3R4cDpu
aG4mIzk1O2xjcCYjOTU7ZGF0ZSAvJiM2Mjs8L2gzPgoKCTxwPlRoZSBkYXRlLCB1c2luZyB0
aGUgc3RhbmRhcmQgY29tbWVudHMgZGF0ZWZvcm1hdDwvcD4KCgk8cD48YnIvPjwvcD4KCgk8
aDI+VGhpbmdzIHRvIGRvOjwvaDI+CgoJPGgzPiYjNjA7dHhwOm5obiYjOTU7bGl2ZWNvbW1l
bnRwcmV2aWV3JiM5NTtqcyAvJiM2Mjs8L2gzPgoKCTxwPlBsYWNlIHRoaXMgdGFnIGluIHRo
ZSA8Y29kZT4mbHQ7aGVhZCZndDs8L2NvZGU+IG9mIHlvdXIgd2Vic2l0ZS4gSXQgY29udGFp
bnMgdGhlIGphdmFzY3JpcHQgdXNlZCBmb3IgdGhlIGxpdmUgcHJldmlldy48L3A+CgoJPGgz
PiYjNjA7dHhwOm5obiYjOTU7bGl2ZWNvbW1lbnRwcmV2aWV3IC8mIzYyOzwvaDM+CgoJPHA+
UGxhY2UgdGhpcyB0YWcgaW4gdGhlIGZvcm0gPGk+Y29tbWVudF9mb3JtPC9pPi4gSXQgbWFy
a3MgdGhlIHNwb3Qgd2hlcmUgdGhlIGxpdmUgcHJldmlldyB3aWxsIGJlIHBsYWNlZC48L3A+
CgoJPGgzPiYjNjA7dHhwOm5obiYjOTU7Y29tbWVudHMmIzk1O2Zvcm0gLyYjNjI7PC9oMz4K
Cgk8cD5SZXBsYWNlIDxjb2RlPiZsdDt0eHA6Y29tbWVudHNfZm9ybSAvJmd0OzwvY29kZT4g
aW4gPGk+Y29tbWVudHNfZGlzcGxheTwvaT4gdW5kZXIgJiM4MjIwO3ByZXNlbnRhdGlvbiYj
ODIyMTsgPiAmIzgyMjA7Zm9ybXMmIzgyMjE7IHdpdGggPGNvZGU+Jmx0O3R4cDpuaG5fY29t
bWVudHNfZm9ybSAvJmd0OzwvY29kZT4uPC9wPgoKCTxwPjxici8+PC9wPgoKCTxoMj5PcHRp
b25hbCB0aGluZ3M6PC9oMj4KCgk8aDM+JiM2MDt0eHA6bmhuJiM5NTtjb21tZW50JiM5NTtz
dWJtaXQgLyYjNjI7PC9oMz4KCgk8cD5JZiB5b3UgZG9uJiM4MjE3O3QgbGlrZSB0byB1c2Ug
dGhlIHN0YW5kYXJkIGNvbW1lbnQgcHJldmlldywgeW91IGNhbiBza2lwIGl0IGJ5IGRlbGV0
aW5nIDxjb2RlPiZsdDt0eHA6Y29tbWVudF9wcmV2aWV3IC8mZ3Q7PC9jb2RlPiBhbmQgPGNv
ZGU+Jmx0O3R4cDpjb21tZW50X3N1Ym1pdCAvJmd0OzwvY29kZT4gYW5kIHJlcGxhY2luZyBp
dCB3aXRoIDxjb2RlPiZsdDt0eHA6bmhuX2NvbW1pdF9zdWJtaXQgLyZndDs8L2NvZGU+LiA8
Y29kZT4mbHQ7dHhwOm5obl9jb21tZW50X3N1Ym1pdCAvJmd0OzwvY29kZT4gcmVxdWlyZXMg
PGNvZGU+Jmx0O3R4cDpuaG5fY29tbWVudF9zcGFtc2F2ZSAvJmd0OzwvY29kZT4uPC9wPgoK
CTxoMz4mIzYwO3R4cDpuaG4mIzk1O2NvbW1lbnQmIzk1O3NwYW1zYXZlIC8mIzYyOzwvaDM+
CgoJPHA+VGhpcyBpcyBhIHZlcnkgYmFzaWMgc3BhbSBjaGVja2VyIHdoZW4gdXNpbmcgPGNv
ZGU+Jmx0O3R4cDpuaG5fY29tbWVudF9zdWJtaXQgLyZndDs8L2NvZGU+LiBJdCBpbnNlcnRz
IGEgY2hlY2tib3ggdGhhdCBoYXMgdG8gYmUgY2hlY2tlZCBiZWZvcmUgdGhlIGNvbW1lbnQg
Y2FuIGJlIHN1Ym1pdHRlZC4gVGhpcyB0YWcgaGFzIHRvIGJlIHBsYWNlZCBpbnNpZGUgdGhl
IDxpPmNvbW1lbnRfZm9ybTwvaT4uPC9wPgoKCgogIjtzOjQ6ImNvZGUiO3M6MTM2NzM6Igpp
ZiAoQHR4cGludGVyZmFjZSA9PSAnYWRtaW4nKSB7CglyZWdpc3Rlcl9jYWxsYmFjaygibmhu
X3NhdmVfZm9ybSIsImZvcm0iKTsKfQoKZnVuY3Rpb24gbmhuX3NhdmVfZm9ybSgpIHsKLy8g
Y3JlYXRlcyB0aGUgbGl2ZSBwcmV2aWV3IDxkaXY+CglpZighc2FmZV9yb3coIm5hbWUiLCAi
dHhwX2Zvcm0iLCAiJ25hbWUnIExJS0UgJ25obl9saXZlY29tbWVudHByZXZpZXcnIikpIHsK
CQkkRm9ybSA9ICc8aDM+Jy5nVHh0KCdwcmV2aWV3JykuJzwvaDM+XG48dHhwOm5obl9sY3Bf
YXV0aG9yIC8+OlxuPHR4cDpuaG5fbGNwX3ByZXZpZXcgLz5cbjxwIGNsYXNzPSJwb3N0ZWQi
Pjx0eHA6bmhuX2xjcF9kYXRlIC8+PC9wPic7CgkJc2FmZV9pbnNlcnQoInR4cF9mb3JtIiwg
IkZvcm09JyRGb3JtJywgdHlwZT0nY29tbWVudCcsIG5hbWU9J25obl9saXZlY29tbWVudHBy
ZXZpZXcnIik7Cgl9Cn0KCmZ1bmN0aW9uIG5obl9jb21tZW50c19mb3JtKCRhdHRzKSB7Ci8v
IFRoaXMgaXMgYSBoYWNrZWQgY29weSBvZiB0aGUgZnVuY3Rpb24gY29tbWVudHNfZm9ybSAo
dmVyc2lvbiA0LjAuMSkKCglnbG9iYWwgJHRoaXNhcnRpY2xlLCAkY29tbWVudF9wcmV2aWV3
LCAkcHJldGV4dDsKCglleHRyYWN0KGxBdHRzKGFycmF5KAoJCSdpZCcJCSAgID0+IEAkcHJl
dGV4dFsnaWQnXSwKCQknY2xhc3MnCQk9PiBfX0ZVTkNUSU9OX18sCgkJJ2Zvcm0nCQk9PiAn
Y29tbWVudF9mb3JtJywKCQknd3JhcHRhZycJPT4gJycKCSksJGF0dHMpKTsKCgkjIGRvbid0
IGRpc3BsYXkgdGhlIGNvbW1lbnQgZm9ybSBhdCB0aGUgYm90dG9tLCBzaW5jZSBpdCdzCgkj
IGFscmVhZHkgc2hvd24gYXQgdGhlIHRvcAoJaWYgKHBzKCdwcmV2aWV3JykgYW5kIGVtcHR5
KCRjb21tZW50X3ByZXZpZXcpKQoJCXJldHVybiAnJzsKCglpZiAoaXNfYXJyYXkoJHRoaXNh
cnRpY2xlKSkgZXh0cmFjdCgkdGhpc2FydGljbGUpOwoKCWlmIChAJHRoaXNpZCkgJGlkID0g
JHRoaXNpZDsKCglpZiAoJGlkKSB7CgkJaWYgKCFjaGVja0NvbW1lbnRzQWxsb3dlZCgkaWQp
KSB7CgkJCSRvdXQgPSBncmFmKGdUeHQoImNvbW1lbnRzX2Nsb3NlZCIpKTsKCQl9IGVsc2Vp
ZiAoZ3BzKCdjb21tZW50ZWQnKSkgewoJCQkkb3V0ID0gZ1R4dCgiY29tbWVudF9wb3N0ZWQi
KTsKCQkJaWYgKEAkR0xPQkFMU1sncHJlZnMnXVsnY29tbWVudHNfbW9kZXJhdGUnXSkKCQkJ
CSRvdXQgLj0gIiAiLiBnVHh0KCJjb21tZW50X21vZGVyYXRlZCIpOwoJCQkkb3V0ID0gZ3Jh
Zigkb3V0LCAnIGlkPSJ0eHBDb21tZW50SW5wdXRGb3JtIicpOwoJCX0gZWxzZSB7CgkJCSRv
dXQgPSBuaG5fY29tbWVudEZvcm0oJGlkLCRhdHRzKTsKCQl9CgkJCXJldHVybiAoISR3cmFw
dGFnID8gJG91dCA6IGRvVGFnKCRvdXQsJHdyYXB0YWcsJGNsYXNzKSApOwoJfQp9CgpmdW5j
dGlvbiBuaG5fY29tbWVudEZvcm0oJGlkLCAkYXR0cz1OVUxMKSB7Ci8vIFRoaXMgaXMgYSBo
YWNrZWQgY29weSBvZiB0aGUgZnVuY3Rpb24gY29tbWVudEZvcm0gKHZlcnNpb24gNC4wLjEp
CgoJZ2xvYmFsICRwcmVmczsKCWV4dHJhY3QoJHByZWZzKTsKCglleHRyYWN0KGxBdHRzKGFy
cmF5KAoJCSdpc2l6ZScJICA9PiAnMjUnLAoJCSdtc2dyb3dzJyAgID0+ICc1JywKCQknbXNn
Y29scycgICA9PiAnMjUnLAoJCSdtc2dzdHlsZScgID0+ICcnLAoJCSdmb3JtJyAgID0+ICdj
b21tZW50X2Zvcm0nLAoJKSwkYXR0cykpOwoKCSRuYW1ld2FybiA9ICcnOwoJJGVtYWlsd2Fy
biA9ICcnOwoJJGNvbW1lbnR3YXJuID0gJyc7Cgkkc3BhbXdhcm4gPSAnJzsKCSRuYW1lPSBw
Y3MoJ25hbWUnKTsKCSRlbWFpbD0gcGNzKCdlbWFpbCcpOwoJJHdlYj0gcGNzKCd3ZWInKTsK
CSRzcGFtPSBwY3MoJ25obl9jb21tZW50X3NwYW1zYXZlJyk7CglleHRyYWN0KCBkb1N0cmlw
VGFncyggZG9EZUVudCAoIHBzYSggYXJyYXkoCgkJJ3JlbWVtYmVyJywKCQknZm9yZ2V0JywK
CQkncGFyZW50aWQnLAoJCSdwcmV2aWV3JywKCQknbWVzc2FnZScsCgkJJ3N1Ym1pdCcsCgkJ
J25obl9zdWJtaXQnLAoJCSduaG5fY29tbWVudF9zcGFtc2F2ZScsCgkJJ2JhY2twYWdlJwoJ
KSApICkgKSApOwoKCWlmKHBzKCduaG5fc3VibWl0JykpIHsKCi8vCWVjaG8gIm5obl9zdWJt
aXQiLiI8YnIvPiI7CgoJCSRuYW1lICA9IHBzKCAnbmFtZScgKTsKCQkkZW1haWwgPSBwcygg
J2VtYWlsJyApOwoJCSR3ZWIJID0gcHMoICd3ZWInICk7CgkJJHNwYW0gID0gcHMoICduaG5f
Y29tbWVudF9zcGFtc2F2ZScgKTsKCi8vCWVjaG8gIk5hbWU6ICIudHJpbSgkbmFtZSkuIjxi
ci8+IjsKLy8JZWNobyAiRW1haWw6ICIudHJpbSgkZW1haWwpLiI8YnIvPiI7Ci8vCWVjaG8g
IldlYjogIi50cmltKCR3ZWIpLiI8YnIvPiI7Ci8vCWVjaG8gIlNwYW06ICIudHJpbSgkbmhu
X2NvbW1lbnRfc3BhbXNhdmUpLiI8YnIvPiI7CgoJCSRuYW1ld2FybiA9ICgkY29tbWVudHNf
cmVxdWlyZV9uYW1lKQoJCT8JKCF0cmltKCRuYW1lKSkKCQkJPwlnVHh0KCdjb21tZW50X25h
bWVfcmVxdWlyZWQnKS5icgoJCQk6CScnCgkJOgknJzsKCgkJJGVtYWlsd2FybiA9ICgkY29t
bWVudHNfcmVxdWlyZV9lbWFpbCkKCQk/CSghdHJpbSgkZW1haWwpKQoJCQk/CWdUeHQoJ2Nv
bW1lbnRfZW1haWxfcmVxdWlyZWQnKS5icgoJCQk6CScnCgkJOgknJzsKCgkJJGNvbW1lbnR3
YXJuID0gKCF0cmltKCRtZXNzYWdlKSkgPyBnVHh0KCdjb21tZW50X3JlcXVpcmVkJykuYnIg
OiAnJzsKCgkJJHNwYW13YXJuID0gKCF0cmltKCRzcGFtKSkgPyAnUGxlYXNlIGNvbmZpcm0g
dGhhdC4uLicuYnIgOiAnJzsKLy8JCWVjaG8gIlNwYW13YXJuOiAiLiRzcGFtd2Fybi4iPGJy
Lz4iOwoKCQlpZigkbmFtZXdhcm49PSIiICYmICRlbWFpbHdhcm49PSIiICYmICRjb21tZW50
d2Fybj09IiIgJiYgJHNwYW13YXJuPT0iIiApIHsKLy8JCWVjaG8gIi4uLiBnZXNwZWljaGVy
dCEiOwoJCQlnbG9iYWwgJHNpdGV1cmwsJGNvbW1lbnRzX21vZGVyYXRlLCRjb21tZW50c19z
ZW5kbWFpbCwkdHhwY2ZnLAoJCQkkY29tbWVudHNfZGlzYWxsb3dfaW1hZ2VzLCRwcmVmczsK
CgkJCSRyZWYgPSBzZXJ2ZXJzZXQoJ0hUVFBfUkVGRVJSRVInKTsKCgkJCSRpbiA9IHBzYSgg
YXJyYXkoCgkJCQkncGFyZW50aWQnLAoJCQkJJ25hbWUnLAoJCQkJJ2VtYWlsJywKCQkJCSd3
ZWInLAoJCQkJJ21lc3NhZ2UnLAoJCQkJJ2JhY2twYWdlJywKCQkJCSdub25jZScsCgkJCQkn
cmVtZW1iZXInCgkJCSkgKTsKCgkJCWV4dHJhY3QoJGluKTsKCgkJCWlmICghY2hlY2tDb21t
ZW50c0FsbG93ZWQoJHBhcmVudGlkKSkKCQkJCWV4aXQgKCBncmFmKGdUeHQoJ2NvbW1lbnRz
X2Nsb3NlZCcpKSk7CgoJCQkkaXAgPSBzZXJ2ZXJzZXQoJ1JFTU9URV9BRERSJyk7CgkJCSRt
ZXNzYWdlID0gdHJpbSgkbWVzc2FnZSk7CgkJCSRibGFja2xpc3RlZCA9IGlzX2JsYWNrbGlz
dGVkKCRpcCk7CgoJCQkkbmFtZSA9IGRvU2xhc2goc3RyaXBfdGFncyhkZUVudEJyYWNrZXRz
KCRuYW1lKSkpOwoJCQkkd2ViID0gZG9TbGFzaChjbGVhbl91cmwoc3RyaXBfdGFncyhkZUVu
dEJyYWNrZXRzKCR3ZWIpKSkpOwoJCQkkZW1haWwgPSBkb1NsYXNoKGNsZWFuX3VybChzdHJp
cF90YWdzKGRlRW50QnJhY2tldHMoJGVtYWlsKSkpKTsKCgkJCSRtZXNzYWdlMmRiID0gZG9T
bGFzaChtYXJrdXBfY29tbWVudCgkbWVzc2FnZSkpOwoKCQkJJGlzZHVwID0gc2FmZV9yb3co
Im1lc3NhZ2UsbmFtZSIsICJ0eHBfZGlzY3VzcyIsCgkJCQkibmFtZT0nJG5hbWUnIGFuZCBt
ZXNzYWdlPSckbWVzc2FnZTJkYicgYW5kIGlwPSckaXAnIik7CgoJCQlpZiAoY2hlY2tCYW4o
JGlwKSkgewoJCQkJaWYoJGJsYWNrbGlzdGVkID09IGZhbHNlKSB7CgkJCQkJaWYgKCEkaXNk
dXApIHsKCQkJCQkJJHZpc2libGUgPSAoJGNvbW1lbnRzX21vZGVyYXRlKSA/IDAgOiAxOwoJ
CQkJCQkkcnMgPSBzYWZlX2luc2VydCgKCQkJCQkJCSJ0eHBfZGlzY3VzcyIsCgkJCQkJCQki
cGFyZW50aWQgID0gJyRwYXJlbnRpZCcsCgkJCQkJCQkgbmFtZQkJICA9ICckbmFtZScsCgkJ
CQkJCQkgZW1haWwJICA9ICckZW1haWwnLAoJCQkJCQkJIHdlYgkJICA9ICckd2ViJywKCQkJ
CQkJCSBpcAkJICA9ICckaXAnLAoJCQkJCQkJIG1lc3NhZ2UgICA9ICckbWVzc2FnZTJkYics
CgkJCQkJCQkgdmlzaWJsZSAgID0gJHZpc2libGUsCgkJCQkJCQkgcG9zdGVkCSAgPSBub3co
KSIKCQkJCQkJKTsKCgkJCQkJCWlmICgkcnMpIHsKCQkJCQkJCWlmICgkcHJlZnNbJ2NvbW1l
bnRfbWVhbnNfc2l0ZV91cGRhdGVkJ10pIHsKCQkJCQkJCQlzYWZlX3VwZGF0ZSgidHhwX3By
ZWZzIiwgInZhbD1ub3coKSIsICJuYW1lPSdsYXN0bW9kJyIpOwoJCQkJCQkJfQoJCQkJCQkJ
aWYgKCRjb21tZW50c19zZW5kbWFpbCkgewoJCQkJCQkJCW1haWxfY29tbWVudCgkbWVzc2Fn
ZSwkbmFtZSwkZW1haWwsJHdlYiwkcGFyZW50aWQpOwoJCQkJCQkJfQoKCQkJCQkJCSR1cGRh
dGVkID0gdXBkYXRlX2NvbW1lbnRzX2NvdW50KCRwYXJlbnRpZCk7CgoJCQkJCQkJb2Jfc3Rh
cnQoKTsKCQkJCQkJCSRiYWNrcGFnZSA9IHN1YnN0cigkYmFja3BhZ2UsIDAsICRwcmVmc1sn
bWF4X3VybF9sZW4nXSk7CgkJCQkJCQkkYmFja3BhZ2UgPSBwcmVnX3JlcGxhY2UoIi9bXHgw
YVx4MGQjXS4qJC9zIiwnJywkYmFja3BhZ2UpOwoJCQkJCQkJJGJhY2twYWdlIC49ICgoc3Ry
c3RyKCRiYWNrcGFnZSwnPycpKSA/ICcmJyA6ICc/JykgLiAnY29tbWVudGVkPTEnOwoJCQkJ
CQkJaWYoJGNvbW1lbnRzX21vZGVyYXRlKSB7CgkJCQkJCQkJaGVhZGVyKCdMb2NhdGlvbjog
Jy4kYmFja3BhZ2UuJyN0eHBDb21tZW50SW5wdXRGb3JtJyk7CgkJCQkJCQl9CgkJCQkJCQll
bHNlIHsKCQkJCQkJCQloZWFkZXIoJ0xvY2F0aW9uOiAnLiRiYWNrcGFnZS4nI2MnLnNwcmlu
dGYoIiUwNnMiLCRycykpOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQkJZWxz
ZSBleGl0KGdUeHQoJ3lvdXJfaXBfaXNfYmxhY2tsaXN0ZWRfYnknLicgJy4kYmxhY2tsaXN0
ZWQpKTsKCQkJfQoJCQllbHNlIGV4aXQoZ1R4dCgneW91X2hhdmVfYmVlbl9iYW5uZWQnKSk7
CgkJfQoJfQoKCWlmICgkcHJldmlldykgewoJCSRuYW1lICA9IHBzKCAnbmFtZScgKTsKCQkk
ZW1haWwgPSBwcyggJ2VtYWlsJyApOwoJCSR3ZWIJID0gcHMoICd3ZWInICk7CgkJJG5vbmNl
ID0gbWQ1KCB1bmlxaWQoIHJhbmQoKSwgdHJ1ZSApICk7CgkJJHNlY3JldCA9IG1kNSggdW5p
cWlkKCByYW5kKCksIHRydWUgKSApOwoJCXNhZmVfaW5zZXJ0KCJ0eHBfZGlzY3Vzc19ub25j
ZSIsICJpc3N1ZV90aW1lPW5vdygpLCBub25jZT0nJG5vbmNlJywgc2VjcmV0PSckc2VjcmV0
JyIpOwoKCQkkbmFtZXdhcm4gPSAoJGNvbW1lbnRzX3JlcXVpcmVfbmFtZSkKCQk/CSghdHJp
bSgkbmFtZSkpCgkJCT8JZ1R4dCgnY29tbWVudF9uYW1lX3JlcXVpcmVkJykuYnIKCQkJOgkn
JwoJCToJJyc7CgoJCSRlbWFpbHdhcm4gPSAoJGNvbW1lbnRzX3JlcXVpcmVfZW1haWwpCgkJ
PwkoIXRyaW0oJGVtYWlsKSkKCQkJPwlnVHh0KCdjb21tZW50X2VtYWlsX3JlcXVpcmVkJyku
YnIKCQkJOgknJwoJCToJJyc7CgoJCSRjb21tZW50d2FybiA9ICghdHJpbSgkbWVzc2FnZSkp
ID8gZ1R4dCgnY29tbWVudF9yZXF1aXJlZCcpLmJyIDogJyc7Cgl9CgoJLy8gSWYgdGhlIGZv
cm0gZmllbGRzIGFyZSBmaWxsZWQgKGFueXRoaW5nIG90aGVyIHRoYW4gYmxhbmspLCBwYWdl
cwoJLy8gcmVhbGx5IHNob3VsZCBub3QgYmUgc2F2ZWQgYnkgYSBwdWJsaWMgY2FjaGUuIHJm
YzI2MTYvMTQuOS4xCglpZiAoJG5hbWUgfHwgJGVtYWlsIHx8ICR3ZWIpIHsKCQloZWFkZXIo
J0NhY2hlLUNvbnRyb2w6IHByaXZhdGUnKTsKCX0KCgkkcGFyZW50aWQgPSAoISRwYXJlbnRp
ZCkgPyAkaWQgOiAkcGFyZW50aWQ7CgoJaWYgKHBjcygnbmFtZScpIHx8IHBjcygnZW1haWwn
KSB8fCBwY3MoJ3dlYicpKSB7CgkJLy8gRm9ybS1pbnB1dCBkaWZmZXJlbnQgZnJvbSBDb29r
aWUsIGxldCdzIHVwZGF0ZSB0aGUgQ29va2llLgoJCWlmICggY3MoJ25hbWUnKSAhPSBwcygn
bmFtZScpCgkJCU9SIGNzKCdlbWFpbCcpIT0gcHMoJ2VtYWlsJykKCQkJT1IgY3MoJ3dlYicp
ICE9IHBzKCd3ZWInKSk7CgkJCSRyZW1lbWJlciA9IDE7Cgl9CgoJaWYgKCRyZW1lbWJlcj09
MSkgeyBzZXRDb29raWVzKCRuYW1lLCRlbWFpbCwkd2ViKTsgfQoJaWYgKCRmb3JnZXQ9PTEp
IHsgZGVzdHJveUNvb2tpZXMoKTsgfQoKCSRGb3JtID0gZmV0Y2goJ0Zvcm0nLCd0eHBfZm9y
bScsJ25hbWUnLCRmb3JtKTsKCSRtc2dzdHlsZSA9ICgkbXNnc3R5bGUgPyAnIHN0eWxlPSIn
LiRtc2dzdHlsZS4nIicgOiAnJyk7CgkkbXNncm93cyA9ICgkbXNncm93cyBhbmQgaXNfbnVt
ZXJpYygkbXNncm93cykpID8gJyByb3dzPSInLmludHZhbCgkbXNncm93cykuJyInIDogJyc7
CgkkbXNnY29scyA9ICgkbXNnY29scyBhbmQgaXNfbnVtZXJpYygkbXNnY29scykpID8gJyBj
b2xzPSInLmludHZhbCgkbXNnY29scykuJyInIDogJyc7CgkkdGV4dGFyZWEgPSAnPHRleHRh
cmVhIGNsYXNzPSJ0eHBDb21tZW50SW5wdXRNZXNzYWdlIiBuYW1lPSJtZXNzYWdlIicuJG1z
Z2NvbHMuJG1zZ3Jvd3MuJG1zZ3N0eWxlLicgdGFiaW5kZXg9IjEiIGlkPSJuaG5fbWVzc2Fn
ZSIgb25rZXl1cD0iUmVsb2FkVGV4dERpdigpOyI+Jy5odG1sc3BlY2lhbGNoYXJzKCRtZXNz
YWdlKS4nPC90ZXh0YXJlYT4nOwoKCSRjb21tZW50X3N1Ym1pdF9idXR0b24gPSAoJHByZXZp
ZXcpCgk/CWZJbnB1dCgnc3VibWl0Jywnc3VibWl0JyxnVHh0KCdzdWJtaXQnKSwnYnV0dG9u
JykKCToJJyc7CgoJJG5obl9jb21tZW50X3N1Ym1pdF9idXR0b24gPSBmSW5wdXQoJ3N1Ym1p
dCcsJ25obl9zdWJtaXQnLGdUeHQoJ3N1Ym1pdCcpLCdidXR0b24nKTsKCgkkY2hlY2tib3gg
PSAoIWVtcHR5KCRfQ09PS0lFWyd0eHBfbmFtZSddKSkKCT8JY2hlY2tib3goJ2ZvcmdldCcs
MSwwKS5nVHh0KCdmb3JnZXQnKQoJOgljaGVja2JveCgncmVtZW1iZXInLDEsMSkuZ1R4dCgn
cmVtZW1iZXInKTsKCgkkdmFscyA9IGFycmF5KAoJCSdjb21tZW50X25hbWVfaW5wdXQnICAg
ID0+ICRuYW1ld2Fybi4nPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Im5hbWUiIHZhbHVlPSIn
LiRuYW1lLiciIHNpemU9IicuJGlzaXplLiciIGNsYXNzPSJjb21tZW50X25hbWVfaW5wdXQi
IHRhYmluZGV4PSIyIiBpZD0ibmhuX25hbWUiIG9ua2V5dXA9IlJlbG9hZE5hbWVEaXYoKTsi
Lz4nLAoJCSdjb21tZW50X2VtYWlsX2lucHV0JyAgID0+ICRlbWFpbHdhcm4uaW5wdXQoJ3Rl
eHQnLCdlbWFpbCcsICRlbWFpbCwkaXNpemUsJ2NvbW1lbnRfZW1haWxfaW5wdXQnLCIzIiks
CgkJJ2NvbW1lbnRfd2ViX2lucHV0JyAgICAgPT4gaW5wdXQoJ3RleHQnLCd3ZWInLCAgICR3
ZWIsICRpc2l6ZSwnY29tbWVudF93ZWJfaW5wdXQnLCI0IiksCgkJJ2NvbW1lbnRfbWVzc2Fn
ZV9pbnB1dCcgPT4gJGNvbW1lbnR3YXJuLiR0ZXh0YXJlYSwKCQknY29tbWVudF9yZW1lbWJl
cicgICAgICA9PiAkY2hlY2tib3gsCgkJJ2NvbW1lbnRfcHJldmlldycgICAgICAgPT4gaW5w
dXQoJ3N1Ym1pdCcsJ3ByZXZpZXcnLGdUeHQoJ3ByZXZpZXcnKSwnJywnYnV0dG9uJyksCgkJ
J2NvbW1lbnRfc3VibWl0JyAgICAgICAgPT4gJGNvbW1lbnRfc3VibWl0X2J1dHRvbiwKCQkn
bmhuX2NvbW1lbnRfc3VibWl0JyAgICA9PiAkbmhuX2NvbW1lbnRfc3VibWl0X2J1dHRvbiwK
CQknbmhuX2NvbW1lbnRfc3BhbXNhdmUnICA9PiAkc3BhbXdhcm4uY2hlY2tib3goJ25obl9j
b21tZW50X3NwYW1zYXZlJywnc3BhbXNhdmUnLDApLid0aGlzIGlzIG5vdCBTcGFtLicKCSk7
CgoJJG5obl9hbmNob3IgPSAnYWN0aW9uPSIjY3ByZXZpZXciICc7CgkkbmhuX3N1Ym1pdF9l
eGlzdCA9IHN0cnBvcygkRm9ybSwgIjx0eHA6bmhuX2NvbW1lbnRfc3VibWl0IC8+Iik7Cglp
ZiAoJG5obl9zdWJtaXRfZXhpc3QhPSIiKSB7CgkJJG5obl9hbmNob3IgPSAnYWN0aW9uPSIj
dHhwQ29tbWVudElucHV0Rm9ybSIgJzsKCX0KCglmb3JlYWNoICgkdmFscyBhcyAkYT0+JGIp
IHsKCQkkRm9ybSA9IHN0cl9yZXBsYWNlKCc8dHhwOicuJGEuJyAvPicsJGIsJEZvcm0pOwoJ
fQoKCSRmb3JtID0gcGFyc2UoJEZvcm0pOwoKCSRvdXQgLj0gJGZvcm07Cgkkb3V0IC49IGdy
YWYoZklucHV0KCdoaWRkZW4nLCdwYXJlbnRpZCcsJHBhcmVudGlkKSk7Cgkkb3V0IC49ICgk
cHJldmlldykgPyBoSW5wdXQoJ25vbmNlJywkbm9uY2UpIDogJyc7CgoJJG91dCAuPSAoISRw
cmV2aWV3KQoJCT8JZ3JhZihmSW5wdXQoJ2hpZGRlbicsJ2JhY2twYWdlJyxzZXJ2ZXJzZXQo
IlJFUVVFU1RfVVJJIikpKQoJCToJZ3JhZihmSW5wdXQoJ2hpZGRlbicsJ2JhY2twYWdlJywk
YmFja3BhZ2UpKTsKCgoJJG91dCA9IAknPGZvcm0gbWV0aG9kPSJwb3N0IiAnLiRuaG5fYW5j
aG9yLidpZD0idHhwQ29tbWVudElucHV0Rm9ybSI+Jy4kb3V0Lic8L2Zvcm0+JzsKCXJldHVy
biAkb3V0Owp9CgpmdW5jdGlvbiBuaG5fbGl2ZWNvbW1lbnRwcmV2aWV3KCRhdHRzKSB7Cgkv
LyBjcmVhdGUgPGRpdj4gZm9yIGxpdmUgcHJldmlldyBpZiBpdCBoYXMgbm90IGJlZW4gY3Jl
YXRlZCB5ZXQKCW5obl9zYXZlX2Zvcm0oKTsKCgkvLyBpbnNlcnQgPGRpdj4gZm9yIGxpdmUg
cHJldmlldyBpZiBub3Qgdmlld2luZyBjb21tZW50IHByZXZpZXcKCWlmKCFwcygncHJldmll
dycpKSB7CgkJJG5obl9mb3JtID0gcGFyc2UoZmV0Y2goJ2Zvcm0nLCd0eHBfZm9ybScsJ25h
bWUnLGRvU2xhc2goJ25obl9saXZlY29tbWVudHByZXZpZXcnKSkpOwoJCXJldHVybiAnPGRp
diBjbGFzcz0iY29tbWVudCI+Jy4kbmhuX2Zvcm0uJzwvZGl2Pic7Cgl9Cn0KCmZ1bmN0aW9u
IG5obl9sY3BfYXV0aG9yKCkgewovLyBsaXZlIHByZXZpZXcgb2YgdGhlIGNvbW1lbnQgYXV0
aG9yLCB1c2UgbmFtZSBpbiBjb29raWUgaWYgY29va2llIGV4aXN0cwoJcmV0dXJuICc8cCBj
bGFzcz0iYXV0aG9yIj48YSBocmVmPSIjIiBpZD0iTmFtZURpc3BsYXkiPicucGNzKCduYW1l
JykuJzwvYT4nOwp9CgpmdW5jdGlvbiBuaG5fbGNwX3ByZXZpZXcoKSB7Ci8vIGxpdmUgcHJl
dmlldyA8ZGl2PgoJcmV0dXJuICc8ZGl2IGlkPSJUZXh0RGlzcGxheSI+PC9kaXY+JzsKfQoK
ZnVuY3Rpb24gbmhuX2xjcF9kYXRlKCkgewovLyBjb21tZW50IGRhdGUsIHVzaW5nIGNvbW1l
bnRzIGRhdGVmb3JtYXQgaW4gcHJlZnMKCWdsb2JhbCAkY29tbWVudHNfZGF0ZWZvcm1hdDsK
CXJldHVybiBzYWZlX3N0cmZ0aW1lKCRjb21tZW50c19kYXRlZm9ybWF0LDApOwp9CgpmdW5j
dGlvbiBuaG5fbGl2ZWNvbW1lbnRwcmV2aWV3X2pzKCkgewovLyBsaXZlIHByZXZpZXcgamF2
YXNjcmlwdAoKJG91dCA9ICI8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+CjwhLS0K
LyogSElDS1MgTElWRSBQUkVWSUVXIEZPUiBURVhUUEFUVEVSTiAqLwovKgogKiBUaGlzIHdh
cyBvcmlnaW5hbGx5IGEgaGFjayBieSBKb24gSGlja3MKICogZGVzY3JpYmVkIGF0IGh0dHA6
Ly93d3cuaGlja3NkZXNpZ24uY28udWsvam91cm5hbC9saXZlLWNvbW1lbnQtcHJldmlld3MK
ICovCgovKiBsaXZlIHByZXZpZXcgb2YgdGhlIGNvbW1lbnQgKi8KZnVuY3Rpb24gUmVsb2Fk
VGV4dERpdigpIHsKCXZhciBjb21tZW50U3RyaW5nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ25obl9tZXNzYWdlJykudmFsdWU7Cgl2YXIgY29uID0gc3VwZXJUZXh0aWxlKGNvbW1l
bnRTdHJpbmcpOwoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ1RleHREaXNwbGF5JykuaW5u
ZXJIVE1MID0gY29uOwp9CgovKiBsaXZlIHByZXZpZXcgb2YgdGhlIG5hbWUgKi8KZnVuY3Rp
b24gUmVsb2FkTmFtZURpdigpIHsKCXZhciBOZXdUZXh0ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ25obl9uYW1lJykudmFsdWU7Cgl2YXIgRGl2RWxlbWVudCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdOYW1lRGlzcGxheScpOwoJRGl2RWxlbWVudC5pbm5lckhUTUwgPSBO
ZXdUZXh0Owp9CgoKLyogTElWRSBURVhUSUxFIFBSRVZJRVcgKi8KLyoKICogVGhpcyBpcyB0
aGUgb3JnaW5pYWwgZnVuY3Rpb24gZnJvbSBTdHVhcnQgTGFuZ3JpZGdlIGF0IGh0dHA6Ly93
d3cua3J5b2dlbml4Lm9yZy8KICogdXBkYXRlZCBieSBKZWZmIE1pbmFyZCAtIGh0dHA6Ly93
d3cuanJtLmNjLwogKi8KCmZ1bmN0aW9uIHN1cGVyVGV4dGlsZShzKSB7CiAgICB2YXIgciA9
IHM7CiAgICAvLyBxdWljayB0YWdzIGZpcnN0CiAgICBxdGFncyA9IFtbJ1xcXFwqJywgJ3N0
cm9uZyddLAogICAgICAgICAgICAgWydcXFxcP1xcXFw/JywgJ2NpdGUnXSwKICAgICAgICAg
ICAgIFsnXFxcXCsnLCAnaW5zJ10sICAvL2ZpeGVkCiAgICAgICAgICAgICBbJ34nLCAnc3Vi
J10sCiAgICAgICAgICAgICBbJ1xcXFxeJywgJ3N1cCddLCAvLyBtZQogICAgICAgICAgICAg
WydAJywgJ2NvZGUnXV07CiAgICBmb3IgKHZhciBpPTA7aTxxdGFncy5sZW5ndGg7aSsrKSB7
CiAgICAgICAgdHRhZyA9IHF0YWdzW2ldWzBdOyBodGFnID0gcXRhZ3NbaV1bMV07CiAgICAg
ICAgcmUgPSBuZXcgUmVnRXhwKHR0YWcrJ1xcXFxiKC4rPylcXFxcYicrdHRhZywnZycpOwog
ICAgICAgIHIgPSByLnJlcGxhY2UocmUsJzwnK2h0YWcrJz4nKyckMScrJzwvJytodGFnKyc+
Jyk7CiAgICB9CiAgICAvLyB1bmRlcnNjb3JlcyBjb3VudCBhcyBwYXJ0IG9mIGEgd29yZCwg
c28gZG8gdGhlbSBzZXBhcmF0ZWx5CiAgICByZSA9IG5ldyBSZWdFeHAoJ1xcXFxiXyguKz8p
X1xcXFxiJywnZycpOwogICAgciA9IHIucmVwbGFjZShyZSwnPGVtPiQxPC9lbT4nKTsKCgkv
L2plZmY6IHNvIGRvIGRhc2hlcwogICAgcmUgPSBuZXcgUmVnRXhwKCdbXFxzXFxuXS0oLis/
KS1bXFxzXFxuXScsJ2cnKTsKICAgIHIgPSByLnJlcGxhY2UocmUsJzxkZWw+JDE8L2RlbD4n
KTsKCiAgICAvLyBsaW5rcwogICAgcmUgPSBuZXcgUmVnRXhwKCdcXFwiXFxcXGIoLis/KVxc
XFwoXFxcXGIoLis/KVxcXFxiXFxcXClcXFwiOihbXlxcXFxzXSspJywnZycpOwogICAgciA9
IHIucmVwbGFjZShyZSwnPGEgaHJlZj1cXFwiJDNcXFwiIHRpdGxlPVxcXCIkMlxcXCI+JDE8
L2E+Jyk7CiAgICByZSA9IG5ldyBSZWdFeHAoJ1xcXCJcXFxcYiguKz8pXFxcXGJcXFwiOihb
XlxcXFxzXSspJywnZycpOwogICAgciA9IHIucmVwbGFjZShyZSwnPGEgaHJlZj1cXFwiJDJc
XFwiPiQxPC9hPicpOwoKICAgIC8vIGltYWdlcwogICAgcmUgPSBuZXcgUmVnRXhwKCchXFxc
XGIoLis/KVxcXFwoXFxcXGIoLis/KVxcXFxiXFxcXCkhJywnZycpOwogICAgciA9IHIucmVw
bGFjZShyZSwnPGltZyBzcmM9XFxcIiQxXFxcIiBhbHQ9XFxcIiQyXFxcIj4nKTsKICAgIHJl
ID0gbmV3IFJlZ0V4cCgnIVxcXFxiKC4rPylcXFxcYiEnLCdnJyk7CiAgICByID0gci5yZXBs
YWNlKHJlLCc8aW1nIHNyYz1cXFwiJDFcXFwiPicpOwoKICAgIC8vIGJsb2NrIGxldmVsIGZv
cm1hdHRpbmcKCgkJLy8gSmVmZidzIGhhY2sgdG8gc2hvdyBzaW5nbGUgbGluZSBicmVha3Mg
YXMgdGhleSBzaG91bGQuCgkJLy8gaW5zZXJ0IGJyZWFrcyAtIGJ1dCB5b3UgZ2V0IHNvbWUu
Li4uc3R1cGlkIG9uZXMKCSAgICByZSA9IG5ldyBSZWdFeHAoJyguKilcXG4oW14jXFwqXFxu
XS4qKScsJ2cnKTsKCSAgICByID0gci5yZXBsYWNlKHJlLCckMTxiciAvPiQyJyk7CgkJLy8g
cmVtb3ZlIHRoZSBzdHVwaWQgYnJlYWtzLgoJICAgIHJlID0gbmV3IFJlZ0V4cCgnXFxuPGJy
IC8+JywnZycpOwoJICAgIHIgPSByLnJlcGxhY2UocmUsJ1xcbicpOwoKICAgIGxpbmVzID0g
ci5zcGxpdCgnXFxuJyk7CiAgICBuciA9ICcnOwogICAgZm9yICh2YXIgaT0wO2k8bGluZXMu
bGVuZ3RoO2krKykgewogICAgICAgIGxpbmUgPSBsaW5lc1tpXS5yZXBsYWNlKC9cXHMqJC8s
JycpOwogICAgICAgIGNoYW5nZWQgPSAwOwogICAgICAgIGlmIChsaW5lLnNlYXJjaCgvXlxc
cypicVxcLlxccysvKSAhPSAtMSkgeyBsaW5lID0gbGluZS5yZXBsYWNlKC9eXFxzKmJxXFwu
XFxzKy8sJ1xcdDxibG9ja3F1b3RlPicpKyc8L2Jsb2NrcXVvdGU+JzsgY2hhbmdlZCA9IDE7
IH0KCgkJLy8gamVmZiBhZGRzIGgjLgogICAgICAgIGlmIChsaW5lLnNlYXJjaCgvXlxccypo
WzEtNl1cXC5cXHMrLykgIT0gLTEpIHsKCSAgICAJcmUgPSBuZXcgUmVnRXhwKCdoKFsxLTZd
KVxcLiguKyknLCdnJyk7CgkgICAgCWxpbmUgPSBsaW5lLnJlcGxhY2UocmUsJzxoJDE+JDI8
L2gkMT4nKTsKCQkJY2hhbmdlZCA9IDE7CgkJfQoKCQlpZiAobGluZS5zZWFyY2goL15cXHMq
XFwqXFxzKy8pICE9IC0xKSB7IGxpbmUgPSBsaW5lLnJlcGxhY2UoL15cXHMqXFwqXFxzKy8s
J1xcdDxsaXU+JykgKyAnPC9saXU+JzsgY2hhbmdlZCA9IDE7IH0gLy8gKiBmb3IgYnVsbGV0
IGxpc3Q7IG1ha2UgdXAgYW4gbGl1IHRhZyB0byBiZSBmaXhlZCBsYXRlcgogICAgICAgIGlm
IChsaW5lLnNlYXJjaCgvXlxccyojXFxzKy8pICE9IC0xKSB7IGxpbmUgPSBsaW5lLnJlcGxh
Y2UoL15cXHMqI1xccysvLCdcXHQ8bGlvPicpICsgJzwvbGlvPic7IGNoYW5nZWQgPSAxOyB9
IC8vICMgZm9yIG51bWVyaWMgbGlzdDsgbWFrZSB1cCBhbiBsaW8gdGFnIHRvIGJlIGZpeGVk
IGxhdGVyCiAgICAgICAgaWYgKCFjaGFuZ2VkICYmIChsaW5lLnJlcGxhY2UoL1xccy9nLCcn
KS5sZW5ndGggPiAwKSkgbGluZSA9ICc8cD4nK2xpbmUrJzwvcD4nOwogICAgICAgIGxpbmVz
W2ldID0gbGluZSArICdcXG4nOwogICAgfQoKICAgIC8vIFNlY29uZCBwYXNzIHRvIGRvIGxp
c3RzCiAgICBpbmxpc3QgPSAwOwoJbGlzdHR5cGUgPSAnJzsKICAgIGZvciAodmFyIGk9MDtp
PGxpbmVzLmxlbmd0aDtpKyspIHsKICAgICAgICBsaW5lID0gbGluZXNbaV07CiAgICAgICAg
aWYgKGlubGlzdCAmJiBsaXN0dHlwZSA9PSAndWwnICYmICFsaW5lLm1hdGNoKC9eXFx0PGxp
dS8pKSB7IGxpbmUgPSAnPC91bD5cXG4nICsgbGluZTsgaW5saXN0ID0gMDsgfQogICAgICAg
IGlmIChpbmxpc3QgJiYgbGlzdHR5cGUgPT0gJ29sJyAmJiAhbGluZS5tYXRjaCgvXlxcdDxs
aW8vKSkgeyBsaW5lID0gJzwvb2w+XFxuJyArIGxpbmU7IGlubGlzdCA9IDA7IH0KICAgICAg
ICBpZiAoIWlubGlzdCAmJiBsaW5lLm1hdGNoKC9eXFx0PGxpdS8pKSB7IGxpbmUgPSAnPHVs
PicgKyBsaW5lOyBpbmxpc3QgPSAxOyBsaXN0dHlwZSA9ICd1bCc7IH0KICAgICAgICBpZiAo
IWlubGlzdCAmJiBsaW5lLm1hdGNoKC9eXFx0PGxpby8pKSB7IGxpbmUgPSAnPG9sPicgKyBs
aW5lOyBpbmxpc3QgPSAxOyBsaXN0dHlwZSA9ICdvbCc7IH0KICAgICAgICBsaW5lc1tpXSA9
IGxpbmU7CiAgICB9CgogICAgciA9IGxpbmVzLmpvaW4oJ1xcbicpOwoJLy8gamVmZiBhZGRl
ZCA6IHdpbGwgY29ycmVjdGx5IHJlcGxhY2UgPGxpKG98dSk+IEFORCA8L2xpKG98dSk+CiAg
ICByID0gci5yZXBsYWNlKC9saVtvfHVdPi9nLCdsaT4nKTsKCgkvLyBOaWxzIGFkZGVkOiBt
YWdpYyBxdW90ZXMKICAgIHJlID0gbmV3IFJlZ0V4cCgnXCJcXFxcYicsJ2cnKTsKICAgIHIg
PSByLnJlcGxhY2UocmUsJ+KAnCcpOwogICAgcmUgPSBuZXcgUmVnRXhwKCdcXFxcYlwiJywn
ZycpOwogICAgciA9IHIucmVwbGFjZShyZSwn4oCdJyk7CgkJciA9IHIucmVwbGFjZSgnXCJc
IicsJ+KAnOKAnScpOwoKCS8vIE5pbHMgYWRkZWQ6IG5kYXNoCgkJciA9IHIucmVwbGFjZSgn
LS0nLCfigJMnKTsKCiAgICByZXR1cm4gcjsKfQovLy0tPgo8L3NjcmlwdD4iOwoKcmV0dXJu
ICRvdXQ7Cn0KIjtzOjM6Im1kNSI7czozMjoiN2UzYjQ0NGMyYmE3ZTZhNjQ1ZjhlNDliNmI3
NTBkOGEiO30=
